From b5db2f2ba5a9c73345cf5e7f61899cfbedddc31f Mon Sep 17 00:00:00 2001 From: Abdulrahman <62434076+Raayib@users.noreply.github.com> Date: Thu, 10 Dec 2020 20:56:59 +0300 Subject: [PATCH 0001/1224] Update messages.json --- unstable/_locales/ar/messages.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unstable/_locales/ar/messages.json b/unstable/_locales/ar/messages.json index b7bbca2e8..937e54cee 100644 --- a/unstable/_locales/ar/messages.json +++ b/unstable/_locales/ar/messages.json @@ -792,7 +792,7 @@ "message": "لغة اليوتيوب" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "يحد اليوتيوب من جودة الفيديو الى ١٠٨٠ لـ الترميز h.264" + "message": "h.264 يحد اليوتيوب من جودة الفيديو الى ١٠٨٠ لـ الترميز" }, "redDislikeButton": { "message": "إظهار زر لم يعجبني باللون الأحمر" @@ -804,6 +804,6 @@ "message": "عرض الإحصاءات المفصلة" }, "toggleCards": { - "message": "Toggle cards" + "message": "تبديل وضع البطاقات" } } From e56df5f56ca5ddd22387290698bb8f57b7a87ac0 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 10 Dec 2020 22:19:50 +0300 Subject: [PATCH 0002/1224] Some fixes & updates --- stable/_locales/ar/messages.json | 1609 +++++++------- stable/_locales/bn/messages.json | 809 +++++++ stable/_locales/de/messages.json | 1609 +++++++------- stable/_locales/el/messages.json | 809 +++++++ stable/_locales/en/messages.json | 1610 +++++++------- stable/_locales/es/messages.json | 1607 +++++++------- stable/_locales/fr/messages.json | 1607 +++++++------- stable/_locales/hin/messages.json | 809 +++++++ stable/_locales/id/messages.json | 1603 +++++++------- stable/_locales/it/messages.json | 1601 +++++++------- stable/_locales/ja/messages.json | 1609 +++++++------- stable/_locales/ko/messages.json | 1603 +++++++------- stable/_locales/nb_NO/messages.json | 812 +++++++ stable/_locales/nl/messages.json | 1609 +++++++------- stable/_locales/no/messages.json | 20 +- stable/_locales/pt_BR/messages.json | 1607 +++++++------- stable/_locales/pt_PT/messages.json | 1609 +++++++------- stable/_locales/ru/messages.json | 1607 +++++++------- stable/_locales/sk/messages.json | 1609 +++++++------- stable/_locales/tr/messages.json | 1609 +++++++------- stable/_locales/zh_CN/messages.json | 1619 +++++++------- stable/_locales/zh_TW/messages.json | 1607 +++++++------- stable/content-scripts.js | 2 - stable/manifest.json | 4 +- stable/popup.js | 301 ++- stable/satus.js | 327 +-- unstable/satus.css | 2067 ------------------ unstable/satus.js | 3020 +-------------------------- 28 files changed, 17348 insertions(+), 18966 deletions(-) create mode 100644 stable/_locales/bn/messages.json create mode 100644 stable/_locales/el/messages.json create mode 100644 stable/_locales/hin/messages.json create mode 100644 stable/_locales/nb_NO/messages.json diff --git a/stable/_locales/ar/messages.json b/stable/_locales/ar/messages.json index 0cc3feda0..b1905a290 100644 --- a/stable/_locales/ar/messages.json +++ b/stable/_locales/ar/messages.json @@ -1,800 +1,809 @@ -{ - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "حول" - }, - "accept": { - "message": "قبول" - }, - "activate": { - "message": "تفعيل" - }, - "activateCaptions": { - "message": "تفعيل الترجمة" - }, - "activateFullscreen": { - "message": "تفعيل ملء الشاشة" - }, - "activated": { - "message": "مفعل" - }, - "activatedFeatures": { - "message": "الميزات المفعلة" - }, - "activeFeatures": { - "message": "الميزات النشطة" - }, - "addScrollToTop": { - "message": "آضف الصعود لأعلى" - }, - "ads": { - "message": "الاعلانات" - }, - "all": { - "message": "الكل" - }, - "allow": { - "message": "سماح" - }, - "allow60fps": { - "message": "السماح لـ60إطار" - }, - "alwaysActive": { - "message": "دائما نشط" - }, - "alwaysShowProgressBar": { - "message": "إظهار شريط التقدم دائمًا" - }, - "amber": { - "message": "العنبر" - }, - "analyzer": { - "message": "المحلل" - }, - "appearance": { - "message": "المظهر العام" - }, - "audio": { - "message": "الصوت" - }, - "audioFormats": { - "message": "تنسيقات الصوت" - }, - "auto": { - "message": "تلقائي" - }, - "autoFullscreen": { - "message": "ملء تلقائي للشاشة" - }, - "autopauseWhenSwitchingTabs": { - "message": "إيقاف تلقائي عند التبديل بين التبويبات" - }, - "autoplay": { - "message": "تشغيل تلقائي" - }, - "backupAndReset": { - "message": "إعادة تعيين والنسخ الاحتياطي" - }, - "baseOnSystemColorScheme": { - "message": "يناء على نظام ألوان النظام" - }, - "belowPlayer": { - "message": "اسفل المشغل" - }, - "black": { - "message": "اسود" - }, - "blacklist": { - "message": "القائمة السوداء" - }, - "blockAll": { - "message": "حظر الكل" - }, - "blue": { - "message": "ازرق" - }, - "blueGray": { - "message": "ازرق رمادي" - }, - "bluelight": { - "message": "الضوء الأزرق" - }, - "brown": { - "message": "بنى" - }, - "browser": { - "message": "المتصفح" - }, - "browserVersion": { - "message": "إصدار المتصفح" - }, - "bubbles": { - "message": "فقاعات" - }, - "bug": { - "message": "خلل برمجي" - }, - "buttons": { - "message": "أزرار" - }, - "cancel": { - "message": "إلغاء" - }, - "categories": { - "message": "التصنيفات" - }, - "channel": { - "message": "قناة" - }, - "channels": { - "message": "القنوات" - }, - "clipboard": { - "message": "الحافظة" - }, - "codecH264": { - "message": "h.الترميز 264" - }, - "collapseOfSubscriptionSections": { - "message": "ضغط قسم الاشتراكات" - }, - "collapsed": { - "message": "ضغط" - }, - "comments": { - "message": "التعليقات" - }, - "confirmationBeforeClosing": { - "message": "التأكيد قبل الإغلاق" - }, - "cookies": { - "message": "ملفات تعريف الارتباط" - }, - "cores": { - "message": "النواه" - }, - "cropChapterTitles": { - "message": "اقتطاع عناوين الفصول" - }, - "customCss": { - "message": "مخصص CSS" - }, - "customJs": { - "message": "مخصص JS" - }, - "customMiniPlayer": { - "message": "المشغل الصغير المخصص" - }, - "cyan": { - "message": "ازرق سماوي" - }, - "dark": { - "message": "داكن" - }, - "darkTheme": { - "message": "مظهر داكن" - }, - "dateAndTime": { - "message": "التاريخ والوقت" - }, - "dawn": { - "message": "فجر" - }, - "decreasePlaybackSpeed": { - "message": "تقليل سرعة التشغيل" - }, - "decreaseVolume5": { - "message": "5% خفض الصوت" - }, - "deepOrange": { - "message": "برتقالي غامق" - }, - "deepPurple": { - "message": "أرجواني داكن" - }, - "defaultChannelTab": { - "message": "علامة تبويب القناة الافتراضية" - }, - "deleteYoutubeCookies": { - "message": "حذف ملفات تعريف الارتباط من اليوتيوب" - }, - "description": { - "message": "الوصف" - }, - "desert": { - "message": "صحراء" - }, - "details": { - "message": "التفاصيل" - }, - "developerOptions": { - "message": "خيارات المطور" - }, - "device": { - "message": "الجهاز" - }, - "dim": { - "message": "قاتمة" - }, - "disabled": { - "message": "معطل" - }, - "dislike": { - "message": "لم يعجبنى" - }, - "doNotChange": { - "message": "الإفتراضي" - }, - "donate": { - "message": "تبرع" - }, - "draggable": { - "message": "قابل للسحب" - }, - "email": { - "message": "البريد الإلكتروني" - }, - "empty": { - "message": "فارغة" - }, - "enabled": { - "message": "ممكّن" - }, - "enabledForced": { - "message": "ممكّن (إجباري)" - }, - "expanded": { - "message": "موسع" - }, - "exportSettings": { - "message": "تصدير الإعدادات" - }, - "extension": { - "message": "الإضافة" - }, - "file": { - "message": "ملف" - }, - "filters": { - "message": "مرشحات" - }, - "fitToWindow": { - "message": "مناسب للنافذة" - }, - "flash": { - "message": "فلاش" - }, - "font": { - "message": "الخط" - }, - "footer": { - "message": "الحزء السفلي" - }, - "forcedPlaybackSpeed": { - "message": "تثبيت سرعة التشغيل" - }, - "forcedTheaterMode": { - "message": "فرض وضع المسرح" - }, - "forcedVolume": { - "message": "تثبيت مستوى الصوت" - }, - "foundABug": { - "message": "وجدت خطأ؟" - }, - "fullWindow": { - "message": "نافذة كاملة" - }, - "general": { - "message": "عام" - }, - "github": { - "message": "جيتهب" - }, - "goToSearchBox": { - "message": "انتقل إلى مربع البحث" - }, - "gpu": { - "message": "كرت الشاشة" - }, - "green": { - "message": "أخضر" - }, - "hdThumbnail": { - "message": "صورة مصغرة عالية الدقة" - }, - "hdThumbnails": { - "message": "صور مصغرة عالية الدقة" - }, - "header": { - "message": "الجزء العلوي" - }, - "hidden": { - "message": "إخفاء" - }, - "hiddenOnVideoPage": { - "message": "مخفي على صفحة الفيديو" - }, - "hideAnimatedThumbnails": { - "message": "إخفاء الصور المصغرة المتحركة" - }, - "hideAnnotations": { - "message": "إخفاء التعليقات التوضيحية" - }, - "hideCards": { - "message": "إخفاء البطاقات" - }, - "hideDetails": { - "message": "إخفاء التفاصيل" - }, - "hideEndscreen": { - "message": "إخفاء شاشة النهاية" - }, - "hideFeaturedContent": { - "message": "إخفاء المحتوى المميز" - }, - "hideFooter": { - "message": "إخفاء الجزء السفلي" - }, - "hidePlaylist": { - "message": "إخفاء قائمة التشغيل" - }, - "hideRightButtons": { - "message": "إخفاء الأزرار اليسرى" - }, - "hideScrollForDetails": { - "message": "«إخفاء «التمرير للحصول على التفاصيل" - }, - "hideViewsCount": { - "message": "إخفاء عدد المشاهدات" - }, - "history": { - "message": "السجلّ" - }, - "home": { - "message": "الصفحة الرئيسية" - }, - "hover": { - "message": "تمرير" - }, - "hoverOnVideoPage": { - "message": "تمرير فوق صفحة الفيديو" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "منذ متى تم تحميل الفيديو" - }, - "icons": { - "message": "أيقونات" - }, - "iconsOnly": { - "message": "أيقونات فقط" - }, - "importSettings": { - "message": "استيراد الاعدادات" - }, - "improveLogo": { - "message": "تحسين الشعار" - }, - "improvedtubeIconInBrowser": { - "message": "في المتصفح ImprovedTube ايقونة" - }, - "improvedtubeIconOnYoutube": { - "message": "في اليوتيوب ImprovedTube ايقونة" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube لغة" - }, - "improvedtubeVersion": { - "message": "ImprovedTube اصدار" - }, - "increasePlaybackSpeed": { - "message": "زيادة سرعة التشغيل" - }, - "increaseVolume5": { - "message": "5% زيادة الصوت" - }, - "indigo": { - "message": "نيلي" - }, - "items": { - "message": "العناصر" - }, - "languages": { - "message": "اللغات" - }, - "legacyYoutube": { - "message": "اليوتيوب القديم" - }, - "light": { - "message": "ضوء" - }, - "lightBlue": { - "message": "أزرق فاتح" - }, - "lightGreen": { - "message": "اخضر فاتح" - }, - "like": { - "message": "اعحبني" - }, - "likes": { - "message": "الإعجابات" - }, - "lime": { - "message": "جير" - }, - "list": { - "message": "قائمة" - }, - "liveChat": { - "message": "محادثة مباشرة" - }, - "liveChatType": { - "message": "نوع المحادثة مباشرة" - }, - "loudnessNormalization": { - "message": "تطبيع الإزعاج" - }, - "markWatchedVideos": { - "message": "التعليم على الفيديو المشاهد" - }, - "mixer": { - "message": "مهندس الصوت" - }, - "myColors": { - "message": "ألواني" - }, - "name": { - "message": "الاسم" - }, - "nativeMiniPlayer": { - "message": "المشغل الافتراضي الصغير" - }, - "new": { - "message": "جديد" - }, - "nextVideo": { - "message": "الفيديو التالي" - }, - "night": { - "message": "ليل" - }, - "noActiveFeatures": { - "message": "لا يوجد ميزات نشطة" - }, - "noOpenVideoTabs": { - "message": "لا توجد علامات تبويب فيديو مفتوحة" - }, - "none": { - "message": "لاشيء" - }, - "normal": { - "message": "عادي" - }, - "old": { - "message": "قديم" - }, - "onAllVideos": { - "message": "على جميع مقاطع الفيديو" - }, - "onSubscribedChannels": { - "message": "على القنوات المشتركة" - }, - "onlyActiveOnYoutube": { - "message": "نشط فقط على اليوتيوب" - }, - "onlyOnePlayerInstancePlaying": { - "message": "تشغيل مشغل واحد فقط" - }, - "orange": { - "message": "برتقالي" - }, - "os": { - "message": "نظام التشغيل" - }, - "other": { - "message": "آخر" - }, - "permissions": { - "message": "الأذونات" - }, - "pictureInPicture": { - "message": "فيديو عائم" - }, - "pink": { - "message": "زهري" - }, - "plain": { - "message": "عادي" - }, - "platform": { - "message": "المنصة" - }, - "playPause": { - "message": "تشغيل / ايقاف" - }, - "playbackSpeed": { - "message": "سرعة التشغيل" - }, - "player": { - "message": "المشغل" - }, - "playerColor": { - "message": "لون المشغل" - }, - "playerSize": { - "message": "حجم المشغل" - }, - "playlist": { - "message": "قائمة التشغيل" - }, - "playlists": { - "message": "قوائم التشغيل" - }, - "popupPlayer": { - "message": "مشفل منبثق" - }, - "position": { - "message": "التموضع" - }, - "pressAnyKeyOrScroll": { - "message": ".اضغط على أي مفتاح أو استخدم عجلة الماوس" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "اضغط على أي مفتاح أو استخدم عجلة الماوس" - }, - "previousVideo": { - "message": "الفيديو السابق" - }, - "primaryColor": { - "message": "اللون الأصلي" - }, - "purple": { - "message": "أرجواني" - }, - "quality": { - "message": "الجودة" - }, - "ram": { - "message": "الذاكرة العشوائية" - }, - "rateUs": { - "message": "قيمنا" - }, - "red": { - "message": "احمر" - }, - "redDislikeButton": { - "message": "إظهار زر لم يعجبني باللون الأحمر" - }, - "relatedVideos": { - "message": "فيديوهات ذات علاقة" - }, - "removeRelatedSearchResults": { - "message": "إزالة عمليات بحث مرتبطة بـ" - }, - "repeat": { - "message": "تكرار" - }, - "reset": { - "message": "إعادة تعيين" - }, - "resetAllSettings": { - "message": "إعادة تعيين كافة الإعدادات" - }, - "resetAllShortcuts": { - "message": "إعادة تعيين جميع الاختصارات" - }, - "reverse": { - "message": "عكس" - }, - "rotate": { - "message": "استدارة" - }, - "save": { - "message": "حفظ" - }, - "saveAs": { - "message": "حفظ باسم" - }, - "schedule": { - "message": "جدوله" - }, - "screen": { - "message": "الشاشة" - }, - "screenshot": { - "message": "لقطة شاشة" - }, - "search": { - "message": "بحث" - }, - "searchBarOnly": { - "message": "شريط البحث فقط" - }, - "seekBackward10Seconds": { - "message": "إرجاع بمقدار 10 ثوانٍ" - }, - "seekForward10Seconds": { - "message": "تقديم 10 ثوانٍ إلى الأمام" - }, - "settings": { - "message": "الإعدادات" - }, - "settingsSuccessfullyImported": { - "message": "تم استيراد الإعدادات بنجاح" - }, - "shortcuts": { - "message": "اختصارات" - }, - "showCardsOnMouseHover": { - "message": "عرض البطاقات عند تمرير الماوس" - }, - "showChannelVideosCount": { - "message": "إظهار عدد مقاطع الفيديو للقناة" - }, - "shuffle": { - "message": "عشوائي" - }, - "sidebar": { - "message": "الشريط الجانبي" - }, - "spacebar": { - "message": "مفتاح المسافة" - }, - "squaredUserImages": { - "message": "صور المستخدمين مربعة" - }, - "static": { - "message": "ثابت" - }, - "step": { - "message": "خطوة" - }, - "stop": { - "message": "ايقاف" - }, - "style": { - "message": "نمط" - }, - "styles": { - "message": "الأنماط" - }, - "subscriptions": { - "message": "الاشتراكات" - }, - "subtitles": { - "message": "الترجمات" - }, - "sunset": { - "message": "غروب الشمس" - }, - "sunsetToSunrise": { - "message": "من غروب الشمس إلى شروقها" - }, - "systemPeferenceDark": { - "message": "تفضيل النظام: داكن" - }, - "systemPeferenceLight": { - "message": "تفضيل النظام: فاتح" - }, - "teal": { - "message": "أزرق مخضر" - }, - "textColor": { - "message": "لون النص" - }, - "themes": { - "message": "المظاهر" - }, - "thisWillRemoveAllCookies": { - "message": ".سيؤدي هذا إلى إزالة كافة ملفات تعريف الارتباط" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "سيؤدي هذا إلى إزالة جميع ملفات تعريف ارتباط اليوتيوب" - }, - "thisWillResetAllSettings": { - "message": ".سيؤدي هذا إلى إعادة تعيين جميع الإعدادات" - }, - "thisWillResetAllShortcuts": { - "message": "سيؤدي هذا إلى إعادة تعيين جميع الاختصارات" - }, - "thumbnails": { - "message": "الصور المصغرة" - }, - "timeFrom": { - "message": "الوقت من" - }, - "timeTo": { - "message": "وقت ل" - }, - "todayAt": { - "message": "اليوم عند الساعة" - }, - "topChat": { - "message": "رسائل المحادثة الهامّة" - }, - "trailerAutoplay": { - "message": "التشغيل التلقائي للفيديو الدعائي" - }, - "translations": { - "message": "الترجمات" - }, - "transparentBackground": { - "message": "خلفية شفافة" - }, - "trending": { - "message": "المحتوى الرائج" - }, - "tryToReloadThePage": { - "message": "حاول إعادة تحميل الصفحة" - }, - "type": { - "message": "النوع" - }, - "upNextAutoplay": { - "message": "تشغيل التالي تلقائيا" - }, - "use24HourFormat": { - "message": "استخدم تنسيق 24 ساعة" - }, - "version": { - "message": "الإصدار" - }, - "video": { - "message": "الفيديو" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "سيتم توسيع وصف الفيديو للحصول على اسم الفئة" - }, - "videoFormats": { - "message": "تنسيقات الفيديو" - }, - "videos": { - "message": "الفيديوهات" - }, - "volume": { - "message": "الصوت" - }, - "watchLater": { - "message": "المشاهدة لاحقا" - }, - "watchTime": { - "message": "وقت المشاهدة" - }, - "whenTabIsChanged": { - "message": "عندما يتم تغيير علامة التبويب" - }, - "white": { - "message": "أبيض" - }, - "yellow": { - "message": "أصفر" - }, - "youtubeHeaderLeft": { - "message": "جزء اليوتيوب العلوي (يسار) " - }, - "youtubeHeaderRight": { - "message": "جزء اليوتيوب العلوي (يمين)" - }, - "youtubeHomePage": { - "message": "صفحة اليوتيوب الرئيسية" - }, - "youtubeLanguage": { - "message": "لغة اليوتيوب" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "يحد اليوتيوب من جودة الفيديو الى ١٠٨٠ لـ الترميز h.264" - } -} +{ + "about": { + "message": "حول" + }, + "accept": { + "message": "قبول" + }, + "activate": { + "message": "تفعيل" + }, + "activateCaptions": { + "message": "تفعيل الترجمة" + }, + "activated": { + "message": "مفعل" + }, + "activatedFeatures": { + "message": "الميزات المفعلة" + }, + "activateFullscreen": { + "message": "تفعيل ملء الشاشة" + }, + "activeFeatures": { + "message": "الميزات النشطة" + }, + "addScrollToTop": { + "message": "آضف الصعود لأعلى" + }, + "ads": { + "message": "الاعلانات" + }, + "all": { + "message": "الكل" + }, + "allow": { + "message": "سماح" + }, + "allow60fps": { + "message": "السماح لـ60إطار" + }, + "alwaysActive": { + "message": "دائما نشط" + }, + "alwaysShowProgressBar": { + "message": "إظهار شريط التقدم دائمًا" + }, + "amber": { + "message": "العنبر" + }, + "analyzer": { + "message": "المحلل" + }, + "appearance": { + "message": "المظهر العام" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "الصوت" + }, + "audioFormats": { + "message": "تنسيقات الصوت" + }, + "auto": { + "message": "تلقائي" + }, + "autoFullscreen": { + "message": "ملء تلقائي للشاشة" + }, + "autopauseWhenSwitchingTabs": { + "message": "إيقاف تلقائي عند التبديل بين التبويبات" + }, + "autoplay": { + "message": "تشغيل تلقائي" + }, + "backupAndReset": { + "message": "إعادة تعيين والنسخ الاحتياطي" + }, + "baseOnSystemColorScheme": { + "message": "يناء على ألوان النظام" + }, + "belowPlayer": { + "message": "اسفل المشغل" + }, + "black": { + "message": "اسود" + }, + "blacklist": { + "message": "القائمة السوداء" + }, + "blockAll": { + "message": "حظر الكل" + }, + "blue": { + "message": "ازرق" + }, + "blueGray": { + "message": "ازرق رمادي" + }, + "bluelight": { + "message": "الضوء الأزرق" + }, + "brown": { + "message": "بنى" + }, + "browser": { + "message": "المتصفح" + }, + "browserVersion": { + "message": "إصدار المتصفح" + }, + "bubbles": { + "message": "فقاعات" + }, + "bug": { + "message": "خلل برمجي" + }, + "buttons": { + "message": "أزرار" + }, + "cancel": { + "message": "إلغاء" + }, + "categories": { + "message": "التصنيفات" + }, + "channel": { + "message": "قناة" + }, + "channels": { + "message": "القنوات" + }, + "clipboard": { + "message": "الحافظة" + }, + "codecH264": { + "message": "h.الترميز 264" + }, + "collapsed": { + "message": "ضغط" + }, + "collapseOfSubscriptionSections": { + "message": "ضغط قسم الاشتراكات" + }, + "comments": { + "message": "التعليقات" + }, + "confirmationBeforeClosing": { + "message": "التأكيد قبل الإغلاق" + }, + "cookies": { + "message": "ملفات تعريف الارتباط" + }, + "cores": { + "message": "النواه" + }, + "cropChapterTitles": { + "message": "اقتطاع عناوين الفصول" + }, + "customCss": { + "message": "مخصص CSS" + }, + "customJs": { + "message": "مخصص JS" + }, + "customMiniPlayer": { + "message": "المشغل الصغير المخصص" + }, + "cyan": { + "message": "ازرق سماوي" + }, + "dark": { + "message": "داكن" + }, + "darkTheme": { + "message": "مظهر داكن" + }, + "dateAndTime": { + "message": "التاريخ والوقت" + }, + "dawn": { + "message": "فجر" + }, + "decreasePlaybackSpeed": { + "message": "تقليل سرعة التشغيل" + }, + "decreaseVolume5": { + "message": "5% خفض الصوت" + }, + "deepOrange": { + "message": "برتقالي داكن" + }, + "deepPurple": { + "message": "أرجواني داكن" + }, + "defaultChannelTab": { + "message": "علامة تبويب القناة الافتراضية" + }, + "deleteYoutubeCookies": { + "message": "حذف ملفات تعريف الارتباط من اليوتيوب" + }, + "description": { + "message": "الوصف" + }, + "desert": { + "message": "صحراء" + }, + "details": { + "message": "التفاصيل" + }, + "developerOptions": { + "message": "خيارات المطور" + }, + "device": { + "message": "الجهاز" + }, + "dim": { + "message": "داكن" + }, + "disabled": { + "message": "معطل" + }, + "dislike": { + "message": "لم يعجبنى" + }, + "donate": { + "message": "تبرع" + }, + "doNotChange": { + "message": "الإفتراضي" + }, + "draggable": { + "message": "قابل للسحب" + }, + "email": { + "message": "البريد الإلكتروني" + }, + "empty": { + "message": "فارغة" + }, + "enabled": { + "message": "ممكّن" + }, + "enabledForced": { + "message": "ممكّن (إجباري)" + }, + "expanded": { + "message": "موسع" + }, + "exportSettings": { + "message": "تصدير الإعدادات" + }, + "extension": { + "message": "الإضافة" + }, + "file": { + "message": "ملف" + }, + "filters": { + "message": "مرشحات" + }, + "fitToWindow": { + "message": "مناسب للنافذة" + }, + "flash": { + "message": "فلاش" + }, + "font": { + "message": "الخط" + }, + "footer": { + "message": "الحزء السفلي" + }, + "forcedPlaybackSpeed": { + "message": "تثبيت سرعة التشغيل" + }, + "forcedTheaterMode": { + "message": "فرض وضع المسرح" + }, + "forcedVolume": { + "message": "تثبيت مستوى الصوت" + }, + "foundABug": { + "message": "وجدت خطأ؟" + }, + "fullWindow": { + "message": "نافذة كاملة" + }, + "general": { + "message": "عام" + }, + "github": { + "message": "جيتهب" + }, + "goToSearchBox": { + "message": "انتقل إلى مربع البحث" + }, + "gpu": { + "message": "كرت الشاشة" + }, + "green": { + "message": "أخضر" + }, + "hdThumbnail": { + "message": "صورة مصغرة عالية الدقة" + }, + "hdThumbnails": { + "message": "صور مصغرة عالية الدقة" + }, + "header": { + "message": "الجزء العلوي" + }, + "hidden": { + "message": "مخفي" + }, + "hiddenOnVideoPage": { + "message": "مخفي على صفحة الفيديو" + }, + "hideAnimatedThumbnails": { + "message": "إخفاء الصور المصغرة المتحركة" + }, + "hideAnnotations": { + "message": "إخفاء التعليقات التوضيحية" + }, + "hideCards": { + "message": "إخفاء البطاقات" + }, + "hideDetails": { + "message": "إخفاء التفاصيل" + }, + "hideEndscreen": { + "message": "إخفاء شاشة النهاية" + }, + "hideFeaturedContent": { + "message": "إخفاء المحتوى المميز" + }, + "hideFooter": { + "message": "إخفاء الجزء السفلي" + }, + "hideGradientBottom": { + "message": "إخفاء التدرج الأسود السفلي" + }, + "hidePlaylist": { + "message": "إخفاء قائمة التشغيل" + }, + "hideRightButtons": { + "message": "إخفاء الأزرار اليسرى" + }, + "hideScrollForDetails": { + "message": "«إخفاء «التمرير للحصول على التفاصيل" + }, + "hideViewsCount": { + "message": "إخفاء عدد المشاهدات" + }, + "history": { + "message": "السجلّ" + }, + "home": { + "message": "الصفحة الرئيسية" + }, + "hover": { + "message": "تمرير" + }, + "hoverOnVideoPage": { + "message": "تمرير فوق صفحة الفيديو" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "منذ متى تم تحميل الفيديو" + }, + "icons": { + "message": "أيقونات" + }, + "iconsOnly": { + "message": "أيقونات فقط" + }, + "importSettings": { + "message": "استيراد الاعدادات" + }, + "improvedtubeIconInBrowser": { + "message": "في المتصفح ImprovedTube ايقونة" + }, + "improvedtubeIconOnYoutube": { + "message": "في اليوتيوب ImprovedTube ايقونة" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube لغة" + }, + "improvedtubeVersion": { + "message": "ImprovedTube اصدار" + }, + "improveLogo": { + "message": "تحسين الشعار" + }, + "increasePlaybackSpeed": { + "message": "زيادة سرعة التشغيل" + }, + "increaseVolume5": { + "message": "5% زيادة الصوت" + }, + "indigo": { + "message": "نيلي" + }, + "items": { + "message": "العناصر" + }, + "languages": { + "message": "اللغات" + }, + "legacyYoutube": { + "message": "اليوتيوب القديم" + }, + "light": { + "message": "ضوء" + }, + "lightBlue": { + "message": "أزرق فاتح" + }, + "lightGreen": { + "message": "اخضر فاتح" + }, + "like": { + "message": "اعحبني" + }, + "likes": { + "message": "الإعجابات" + }, + "lime": { + "message": "جير" + }, + "list": { + "message": "قائمة" + }, + "liveChat": { + "message": "محادثة مباشرة" + }, + "liveChatType": { + "message": "نوع المحادثة مباشرة" + }, + "loudnessNormalization": { + "message": "تطبيع الإزعاج" + }, + "markWatchedVideos": { + "message": "التعليم على الفيديو المشاهد" + }, + "mixer": { + "message": "مهندس الصوت" + }, + "myColors": { + "message": "ألواني" + }, + "name": { + "message": "الاسم" + }, + "nativeMiniPlayer": { + "message": "المشغل الافتراضي الصغير" + }, + "new": { + "message": "جديد" + }, + "nextVideo": { + "message": "الفيديو التالي" + }, + "night": { + "message": "ليل" + }, + "noActiveFeatures": { + "message": "لا يوجد ميزات نشطة" + }, + "none": { + "message": "لاشيء" + }, + "noOpenVideoTabs": { + "message": "لا توجد علامات تبويب فيديو مفتوحة" + }, + "normal": { + "message": "عادي" + }, + "old": { + "message": "قديم" + }, + "onAllVideos": { + "message": "على جميع مقاطع الفيديو" + }, + "onlyActiveOnYoutube": { + "message": "نشط فقط على اليوتيوب" + }, + "onlyOnePlayerInstancePlaying": { + "message": "تشغيل مشغل واحد فقط" + }, + "onSubscribedChannels": { + "message": "على القنوات المشتركة" + }, + "orange": { + "message": "برتقالي" + }, + "os": { + "message": "نظام التشغيل" + }, + "other": { + "message": "آخر" + }, + "permissions": { + "message": "الأذونات" + }, + "pictureInPicture": { + "message": "فيديو عائم" + }, + "pink": { + "message": "زهري" + }, + "plain": { + "message": "عادي" + }, + "platform": { + "message": "المنصة" + }, + "playbackSpeed": { + "message": "سرعة التشغيل" + }, + "player": { + "message": "المشغل" + }, + "playerColor": { + "message": "لون المشغل" + }, + "playerSize": { + "message": "حجم المشغل" + }, + "playlist": { + "message": "قائمة التشغيل" + }, + "playlists": { + "message": "قوائم التشغيل" + }, + "playPause": { + "message": "تشغيل / ايقاف" + }, + "popupPlayer": { + "message": "مشفل منبثق" + }, + "position": { + "message": "التموضع" + }, + "pressAnyKeyOrScroll": { + "message": ".اضغط على أي مفتاح أو استخدم عجلة الماوس" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "اضغط على أي مفتاح أو استخدم عجلة الماوس" + }, + "previousVideo": { + "message": "الفيديو السابق" + }, + "primaryColor": { + "message": "اللون الأصلي" + }, + "purple": { + "message": "أرجواني" + }, + "quality": { + "message": "الجودة" + }, + "ram": { + "message": "الذاكرة العشوائية" + }, + "rateUs": { + "message": "قيمنا" + }, + "red": { + "message": "احمر" + }, + "redDislikeButton": { + "message": "إظهار زر لم يعجبني باللون الأحمر" + }, + "relatedVideos": { + "message": "فيديوهات ذات علاقة" + }, + "removeRelatedSearchResults": { + "message": "إزالة عمليات بحث مرتبطة بـ" + }, + "repeat": { + "message": "تكرار" + }, + "reset": { + "message": "إعادة تعيين" + }, + "resetAllSettings": { + "message": "إعادة تعيين كافة الإعدادات" + }, + "resetAllShortcuts": { + "message": "إعادة تعيين جميع الاختصارات" + }, + "reverse": { + "message": "عكس" + }, + "rotate": { + "message": "استدارة" + }, + "save": { + "message": "حفظ" + }, + "saveAs": { + "message": "حفظ باسم" + }, + "schedule": { + "message": "جدوله" + }, + "screen": { + "message": "الشاشة" + }, + "screenshot": { + "message": "لقطة شاشة" + }, + "search": { + "message": "بحث" + }, + "searchBarOnly": { + "message": "شريط البحث فقط" + }, + "seekBackward10Seconds": { + "message": "إرجاع بمقدار 10 ثوانٍ" + }, + "seekForward10Seconds": { + "message": "تقديم 10 ثوانٍ إلى الأمام" + }, + "settings": { + "message": "الإعدادات" + }, + "settingsSuccessfullyImported": { + "message": "تم استيراد الإعدادات بنجاح" + }, + "shortcuts": { + "message": "اختصارات" + }, + "showCardsOnMouseHover": { + "message": "عرض البطاقات عند تمرير الماوس" + }, + "showChannelVideosCount": { + "message": "إظهار عدد مقاطع الفيديو للقناة" + }, + "shuffle": { + "message": "عشوائي" + }, + "sidebar": { + "message": "الشريط الجانبي" + }, + "spacebar": { + "message": "مفتاح المسافة" + }, + "squaredUserImages": { + "message": "صور المستخدمين مربعة" + }, + "static": { + "message": "ثابت" + }, + "statsForNerds": { + "message": "عرض الإحصاءات المفصلة" + }, + "step": { + "message": "خطوة" + }, + "stop": { + "message": "ايقاف" + }, + "style": { + "message": "نمط" + }, + "styles": { + "message": "الأنماط" + }, + "subscriptions": { + "message": "الاشتراكات" + }, + "subtitles": { + "message": "الترجمات" + }, + "sunset": { + "message": "غروب الشمس" + }, + "sunsetToSunrise": { + "message": "من غروب الشمس إلى شروقها" + }, + "systemPeferenceDark": { + "message": "تفضيل النظام: داكن" + }, + "systemPeferenceLight": { + "message": "تفضيل النظام: فاتح" + }, + "teal": { + "message": "أزرق مخضر" + }, + "textColor": { + "message": "لون النص" + }, + "themes": { + "message": "المظاهر" + }, + "thisWillRemoveAllCookies": { + "message": ".سيؤدي هذا إلى إزالة كافة ملفات تعريف الارتباط" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "سيؤدي هذا إلى إزالة جميع ملفات تعريف ارتباط اليوتيوب" + }, + "thisWillResetAllSettings": { + "message": ".سيؤدي هذا إلى إعادة تعيين جميع الإعدادات" + }, + "thisWillResetAllShortcuts": { + "message": "سيؤدي هذا إلى إعادة تعيين جميع الاختصارات" + }, + "thumbnails": { + "message": "الصور المصغرة" + }, + "timeFrom": { + "message": "الوقت من" + }, + "timeTo": { + "message": "وقت ل" + }, + "todayAt": { + "message": "اليوم عند الساعة" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "رسائل المحادثة الهامّة" + }, + "trailerAutoplay": { + "message": "التشغيل التلقائي للفيديو الدعائي" + }, + "translations": { + "message": "الترجمات" + }, + "transparentBackground": { + "message": "خلفية شفافة" + }, + "trending": { + "message": "المحتوى الرائج" + }, + "tryToReloadThePage": { + "message": "حاول إعادة تحميل الصفحة" + }, + "type": { + "message": "النوع" + }, + "upNextAutoplay": { + "message": "تشغيل التالي تلقائيا" + }, + "use24HourFormat": { + "message": "استخدم تنسيق 24 ساعة" + }, + "version": { + "message": "الإصدار" + }, + "video": { + "message": "الفيديو" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "سيتم توسيع وصف الفيديو للحصول على اسم الفئة" + }, + "videoFormats": { + "message": "تنسيقات الفيديو" + }, + "videos": { + "message": "الفيديوهات" + }, + "volume": { + "message": "الصوت" + }, + "watchLater": { + "message": "المشاهدة لاحقا" + }, + "watchTime": { + "message": "وقت المشاهدة" + }, + "whenTabIsChanged": { + "message": "عندما يتم تغيير علامة التبويب" + }, + "white": { + "message": "أبيض" + }, + "yellow": { + "message": "أصفر" + }, + "youtubeHeaderLeft": { + "message": "جزء اليوتيوب العلوي (يسار) " + }, + "youtubeHeaderRight": { + "message": "جزء اليوتيوب العلوي (يمين)" + }, + "youtubeHomePage": { + "message": "صفحة اليوتيوب الرئيسية" + }, + "youtubeLanguage": { + "message": "لغة اليوتيوب" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "يحد اليوتيوب من جودة الفيديو الى ١٠٨٠ لـ الترميز h.264" + } +} \ No newline at end of file diff --git a/stable/_locales/bn/messages.json b/stable/_locales/bn/messages.json new file mode 100644 index 000000000..733d62819 --- /dev/null +++ b/stable/_locales/bn/messages.json @@ -0,0 +1,809 @@ +{ + "about": { + "message": "সম্পর্কিত" + }, + "accept": { + "message": "গ্রহণ করুন" + }, + "activate": { + "message": "সক্রিয় করুন" + }, + "activateCaptions": { + "message": "ক্যাপশন সক্রিয় করুন" + }, + "activated": { + "message": "সক্রিয়" + }, + "activatedFeatures": { + "message": "বৈশিষ্ট্য সক্রিয় করুন" + }, + "activateFullscreen": { + "message": "পূর্ণ পর্দা সক্রিয় করুন" + }, + "activeFeatures": { + "message": "সক্রিয় বৈশিষ্" + }, + "addScrollToTop": { + "message": "«উপরে যাবার বাটন» যোগ করুন" + }, + "ads": { + "message": "বিজ্ঞাপন" + }, + "all": { + "message": "সব" + }, + "allow": { + "message": "অনুমতি দিন" + }, + "allow60fps": { + "message": "60 ফ্রেম প্রতি সেকেন্ অনুমতি দিনড" + }, + "alwaysActive": { + "message": "সর্বদা সক্রিয়" + }, + "alwaysShowProgressBar": { + "message": "সর্বদা অগ্রগতি বার প্রদর্শন করুন" + }, + "amber": { + "message": "অ্যাম্বার" + }, + "analyzer": { + "message": "বিশ্লেষক" + }, + "appearance": { + "message": "উপস্থিতি" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "শ্রুতি" + }, + "audioFormats": { + "message": "শ্রুতি ফর্ম্যাট" + }, + "auto": { + "message": "অটো" + }, + "autoFullscreen": { + "message": "স্বতঃ পূর্ণস্ক্রীন" + }, + "autopauseWhenSwitchingTabs": { + "message": "ট্যাবগুলি স্যুইচ করার সময় অটো বিরাম দিন" + }, + "autoplay": { + "message": "স্বয়ংক্রিয় চালু" + }, + "backupAndReset": { + "message": "ব্যাকআপ এবং পুনরায় সেট করুন" + }, + "baseOnSystemColorScheme": { + "message": "সিস্টেম রঙের স্কিমের ভিত্তিতে" + }, + "belowPlayer": { + "message": "প্লেয়ারের নিচে" + }, + "black": { + "message": "কালো" + }, + "blacklist": { + "message": "কালো তালিকা" + }, + "blockAll": { + "message": "সবাইকে ব্লক" + }, + "blue": { + "message": "নীল" + }, + "blueGray": { + "message": "নীল ধূসর" + }, + "bluelight": { + "message": "নীল আলো" + }, + "brown": { + "message": "বাদামী" + }, + "browser": { + "message": "ব্রাউজার" + }, + "browserVersion": { + "message": "ব্রাউজার মারজান" + }, + "bubbles": { + "message": "বুলবুলা" + }, + "bug": { + "message": "বাগ" + }, + "buttons": { + "message": "বোতাম" + }, + "cancel": { + "message": "বাতিল" + }, + "categories": { + "message": "বিভাগসমূহ" + }, + "channel": { + "message": "চ্যানেল" + }, + "channels": { + "message": "চ্যানেলগুলি" + }, + "clipboard": { + "message": "ক্লিপবোর্ড" + }, + "codecH264": { + "message": "কোডেক h.264" + }, + "collapsed": { + "message": "ভেঙে দেবো" + }, + "collapseOfSubscriptionSections": { + "message": "সাবস্ক্রিপশন বিভাগ ভেঙে দেবো" + }, + "comments": { + "message": "মন্তব্য" + }, + "confirmationBeforeClosing": { + "message": "বন্ধ হওয়ার আগে নিশ্চিতকরণ" + }, + "cookies": { + "message": "কুকিজ" + }, + "cores": { + "message": "কোর" + }, + "cropChapterTitles": { + "message": "অধ্যায়ের শিরোনাম হ্রাস করুন" + }, + "customCss": { + "message": "কাস্টম CSS" + }, + "customJs": { + "message": "কাস্টম JS" + }, + "customMiniPlayer": { + "message": "কাস্টম মিনি প্লেয়ার" + }, + "cyan": { + "message": "হালকা নীল" + }, + "dark": { + "message": "গা .়" + }, + "darkTheme": { + "message": "গা .় থিম" + }, + "dateAndTime": { + "message": "তারিখ আর সময়" + }, + "dawn": { + "message": "ভোর" + }, + "decreasePlaybackSpeed": { + "message": "প্লেব্যাকের গতি হ্রাস করুন" + }, + "decreaseVolume": { + "message": "শব্দ হ্রাস করুন" + }, + "deepOrange": { + "message": "গভীর কমলা" + }, + "deepPurple": { + "message": "গভীর বেগুনি" + }, + "defaultChannelTab": { + "message": "ডিফল্ট চ্যানেল ট্যাব" + }, + "deleteYoutubeCookies": { + "message": "ইউটিউব এর কুকি ডিলিট করুন" + }, + "description": { + "message": "বর্ণনা" + }, + "desert": { + "message": "মরুভূমি" + }, + "details": { + "message": "বিশদ" + }, + "developerOptions": { + "message": "বিকাশকারী বিকল্পসমূহ" + }, + "device": { + "message": "যন্ত্র" + }, + "dim": { + "message": "ম্লান" + }, + "disabled": { + "message": "অক্ষম" + }, + "dislike": { + "message": "অপছন্দ" + }, + "donate": { + "message": "দান করুন" + }, + "doNotChange": { + "message": "পরিবর্তন করবেন না" + }, + "draggable": { + "message": "টেনে আনে" + }, + "email": { + "message": "ইমেল" + }, + "empty": { + "message": "খালি" + }, + "enabled": { + "message": "সক্ষম" + }, + "enabledForced": { + "message": "সক্ষম (জোরপূর্বক)" + }, + "expanded": { + "message": "প্রসারিত" + }, + "exportSettings": { + "message": "সেটিংস রফতানি করুন" + }, + "extension": { + "message": "এক্সটেনশন" + }, + "file": { + "message": "ফাইল" + }, + "filters": { + "message": "ফিল্টার" + }, + "fitToWindow": { + "message": "উইন্ডোতে ফিট করুন" + }, + "flash": { + "message": "ফ্ল্যাশ" + }, + "font": { + "message": "হরফ" + }, + "footer": { + "message": "পাদচরণ" + }, + "forcedPlaybackSpeed": { + "message": "জোর করে প্লেব্যাক গতি" + }, + "forcedTheaterMode": { + "message": "জোর করে থিয়েটার মোড" + }, + "forcedVolume": { + "message": "জোর করে শব্দ" + }, + "foundABug": { + "message": "একটি বাগ খুঁজে পেয়েছি?" + }, + "fullWindow": { + "message": "পুরো উইন্ডো" + }, + "general": { + "message": "সাধারণ" + }, + "github": { + "message": "গিটহাব" + }, + "goToSearchBox": { + "message": "অনুসন্ধান বাক্সে যান" + }, + "gpu": { + "message": "জিপিইউ" + }, + "green": { + "message": "সবুজ" + }, + "hdThumbnail": { + "message": "এইচডি থাম্বনেল" + }, + "hdThumbnails": { + "message": "এইচডি থামনেল গুলি" + }, + "header": { + "message": "শিরোনাম" + }, + "hidden": { + "message": "গোপন" + }, + "hiddenOnVideoPage": { + "message": "ভিডিও পৃষ্ঠায় লুকানো" + }, + "hideAnimatedThumbnails": { + "message": "অ্যানিমেটেড থাম্বনেলগুলি লুকান" + }, + "hideAnnotations": { + "message": "টীকাগুলি লুকান" + }, + "hideCards": { + "message": "কার্ড লুকান" + }, + "hideDetails": { + "message": "আড়াল বিস্তারিত" + }, + "hideEndscreen": { + "message": "এন্ডস্ক্রিন লুকান" + }, + "hideFeaturedContent": { + "message": "বৈশিষ্ট্যযুক্ত সামগ্রী লুকান" + }, + "hideFooter": { + "message": "পাদলেখ লুকান" + }, + "hideGradientBottom": { + "message": "গ্রেডিয়েন্ট নীচে লুকান" + }, + "hidePlaylist": { + "message": "প্লেলিস্ট লুকান" + }, + "hideRightButtons": { + "message": "ডান বোতামগুলি লুকান" + }, + "hideScrollForDetails": { + "message": "«বিশদ জন্য স্ক্রোলs» লুকান" + }, + "hideViewsCount": { + "message": "দর্শন গণনা লুকান" + }, + "history": { + "message": "ইতিহাস" + }, + "home": { + "message": "প্রধান" + }, + "hover": { + "message": "ঘোরা" + }, + "hoverOnVideoPage": { + "message": "ভিডিও পৃষ্ঠায় ঘোরা" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "ভিডিওটি কত আগে আপলোড হয়েছিল" + }, + "icons": { + "message": "আইকন" + }, + "iconsOnly": { + "message": "আইকন" + }, + "importSettings": { + "message": "সেটিংস আমদানি করুন" + }, + "improvedtubeIconInBrowser": { + "message": "ব্রাউজারে উন্নত YouTube আইকন" + }, + "improvedtubeIconOnYoutube": { + "message": "ইউটিউবে উন্নত আইকন" + }, + "improvedtubeLanguage": { + "message": "উন্নত ইউটিউব ভাষা" + }, + "improvedtubeVersion": { + "message": "উন্নত YouTube সংস্করণ" + }, + "improveLogo": { + "message": "লোগো উন্নত করুন" + }, + "increasePlaybackSpeed": { + "message": "প্লেব্যাকের গতি বাড়ান" + }, + "increaseVolume": { + "message": "শব্দ বৃদ্ধি" + }, + "indigo": { + "message": "নীল" + }, + "items": { + "message": "আইটেম" + }, + "languages": { + "message": "Languages" + }, + "legacyYoutube": { + "message": "উত্তরাধিকার ইউটিউব" + }, + "light": { + "message": "হালকাো" + }, + "lightBlue": { + "message": "হালকা নীল" + }, + "lightGreen": { + "message": "হালকা সবুজ" + }, + "like": { + "message": "লাইক" + }, + "likes": { + "message": "লাইক গুলি" + }, + "lime": { + "message": "চুন" + }, + "list": { + "message": "তালিকা" + }, + "liveChat": { + "message": "সরাসরি কথোপকথন" + }, + "liveChatType": { + "message": "লাইভ চ্যাট টাইপ" + }, + "loudnessNormalization": { + "message": "আওয়াজের স্বাভাবিককরণ" + }, + "markWatchedVideos": { + "message": "দেখা ভিডিওগুলি চিহ্নিত করুন" + }, + "mixer": { + "message": "মিক্সার" + }, + "myColors": { + "message": "আমার রং" + }, + "name": { + "message": "নাম" + }, + "nativeMiniPlayer": { + "message": "নেটিভ মিনি প্লেয়ার" + }, + "new": { + "message": "নতুন" + }, + "nextVideo": { + "message": "পরবর্তী ভিডিও" + }, + "night": { + "message": "রাত" + }, + "noActiveFeatures": { + "message": "কোনও সক্রিয় বৈশিষ্ট্য নেই" + }, + "none": { + "message": "কিছুই না" + }, + "noOpenVideoTabs": { + "message": "কোনও খোলা ভিডিও ট্যাব নেই" + }, + "normal": { + "message": "সাধারণ" + }, + "old": { + "message": "পুরাতন" + }, + "onAllVideos": { + "message": "সমস্ত ভিডিওতে" + }, + "onlyActiveOnYoutube": { + "message": "শুধুমাত্র ইউটিউবে সক্রিয়" + }, + "onlyOnePlayerInstancePlaying": { + "message": "কেবলমাত্র একজন খেলোয়াড় খেলছে" + }, + "onSubscribedChannels": { + "message": "সাবস্ক্রাইব করা চ্যানেলগুলিতে" + }, + "orange": { + "message": "কমলা" + }, + "os": { + "message": "ওএস" + }, + "other": { + "message": "অন্যান্য" + }, + "permissions": { + "message": "অনুমতি" + }, + "pictureInPicture": { + "message": "পিকচার ইন পিকচার" + }, + "pink": { + "message": "গোলাপী" + }, + "plain": { + "message": "সরল" + }, + "platform": { + "message": "প্ল্যাটফর্ম" + }, + "playbackSpeed": { + "message": "প্লেব্যাক গতি" + }, + "player": { + "message": "প্লেয়ার" + }, + "playerColor": { + "message": "প্লেয়ারের রঙ" + }, + "playerSize": { + "message": "খেলোয়াড়ের আকার" + }, + "playlist": { + "message": "প্লেলিস্ট" + }, + "playlists": { + "message": "প্লেলিস্ট" + }, + "playPause": { + "message": "খেলার / বিরতি" + }, + "popupPlayer": { + "message": "পপআপ প্লেয়ার" + }, + "position": { + "message": "অবস্থান" + }, + "pressAnyKeyOrScroll": { + "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" + }, + "previousVideo": { + "message": "পূর্ববর্তী ভিডিও" + }, + "primaryColor": { + "message": "মৌলিক রঙ" + }, + "purple": { + "message": "বেগুনি" + }, + "quality": { + "message": "গুণ" + }, + "ram": { + "message": "র্যাম" + }, + "rateUs": { + "message": "মতামত দিন" + }, + "red": { + "message": "লাল" + }, + "redDislikeButton": { + "message": "অপছন্দ বাটন লাল রঙ দেখান" + }, + "relatedVideos": { + "message": "সংশ্লিষ্ট ভিডিও" + }, + "removeRelatedSearchResults": { + "message": "সম্পর্কিত অনুসন্ধান ফলাফল সরান" + }, + "repeat": { + "message": "পুনরাবৃত্তি" + }, + "reset": { + "message": "রিসেট" + }, + "resetAllSettings": { + "message": "সমস্ত সেটিংস পুনরায় সেট করুন" + }, + "resetAllShortcuts": { + "message": "সমস্ত শর্টকাট পুনরায় সেট করুন" + }, + "reverse": { + "message": "বিপরীত" + }, + "rotate": { + "message": "ঘুরান" + }, + "save": { + "message": "সংরক্ষণ" + }, + "saveAs": { + "message": "সংরক্ষণ করুন" + }, + "schedule": { + "message": "সময়সূচী" + }, + "screen": { + "message": "পর্দা" + }, + "screenshot": { + "message": "স্ক্রিনশট" + }, + "search": { + "message": "অনুসন্ধান করুন" + }, + "searchBarOnly": { + "message": "অনুসন্ধান বার কেবল" + }, + "seekBackward10Seconds": { + "message": "পিছনে 10 সেকেন্ড সন্ধান করুন" + }, + "seekForward10Seconds": { + "message": "10 সেকেন্ড এগিয়ে যান" + }, + "settings": { + "message": "সেটিংস" + }, + "settingsSuccessfullyImported": { + "message": "সেটিংস সফলভাবে আমদানি করা হয়েছে" + }, + "shortcuts": { + "message": "শর্টকাটস" + }, + "showCardsOnMouseHover": { + "message": "মাউস হোভারে কার্ডগুলি দেখান" + }, + "showChannelVideosCount": { + "message": "চ্যানেল ভিডিও গণনা দেখান" + }, + "shuffle": { + "message": "অদলবদল" + }, + "sidebar": { + "message": "সাইডবার" + }, + "spacebar": { + "message": "স্পেসবার" + }, + "squaredUserImages": { + "message": "স্কোয়ার ব্যবহারকারীর চিত্রসমূহ" + }, + "static": { + "message": "স্থির" + }, + "statsForNerds": { + "message": "ডেভলপারের জন্য পরিসংখ্যান দেখান" + }, + "step": { + "message": "পদক্ষেপ" + }, + "stop": { + "message": "থামো" + }, + "style": { + "message": "স্টাইল" + }, + "styles": { + "message": "শৈলী" + }, + "subscriptions": { + "message": "সাবস্ক্রিপশন" + }, + "subtitles": { + "message": "সাবটাইটেল" + }, + "sunset": { + "message": "সূর্যাস্ত" + }, + "sunsetToSunrise": { + "message": "সূর্যোদয় সূর্যোদয়" + }, + "systemPeferenceDark": { + "message": "সিস্টেমের পছন্দসমূহ : dark" + }, + "systemPeferenceLight": { + "message": "সিস্টেমের পছন্দসমূহ : light" + }, + "teal": { + "message": "টিল" + }, + "textColor": { + "message": "লেখার রঙ" + }, + "themes": { + "message": "থিমস" + }, + "thisWillRemoveAllCookies": { + "message": "এটি সমস্ত কুকি মুছে ফেলবে।" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "এটি সমস্ত ইউটিউব কুকিজ অপসারণ করবে" + }, + "thisWillResetAllSettings": { + "message": "এটি সমস্ত সেটিংস পুনরায় সেট করবে।" + }, + "thisWillResetAllShortcuts": { + "message": "এটি সমস্ত শর্টকাট পুনরায় সেট করবে" + }, + "thumbnails": { + "message": "থাম্বনেইলস" + }, + "timeFrom": { + "message": "সময় থেকে" + }, + "timeTo": { + "message": "সময়" + }, + "todayAt": { + "message": "আজ এ" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "শীর্ষ চ্যাট" + }, + "trailerAutoplay": { + "message": "ট্রেলার অটোপ্লে" + }, + "translations": { + "message": "অনুবাদ" + }, + "transparentBackground": { + "message": "স্বচ্ছ পটভূমি" + }, + "trending": { + "message": "চলমান" + }, + "tryToReloadThePage": { + "message": "পৃষ্ঠাটি পুনরায় লোড করার চেষ্টা করুন" + }, + "type": { + "message": "প্রকার" + }, + "upNextAutoplay": { + "message": "পরবর্তী অটোপ্লে" + }, + "use24HourFormat": { + "message": "24 ঘন্টা বিন্যাস ব্যবহার করুন" + }, + "version": { + "message": "সংস্করণ" + }, + "video": { + "message": "ভিডিও" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "বিভাগটির নাম পেতে ভিডিওর বর্ণনাটি প্রসারিত হবে" + }, + "videoFormats": { + "message": "ভিডিও ফর্ম্যাট" + }, + "videos": { + "message": "ভিডিও" + }, + "volume": { + "message": "শব্দ" + }, + "watchLater": { + "message": "পরে দেখুন" + }, + "watchTime": { + "message": "দেখার সময়" + }, + "whenTabIsChanged": { + "message": "ট্যাব পরিবর্তন করা হয়" + }, + "white": { + "message": "সাদা" + }, + "yellow": { + "message": "হলুদ" + }, + "youtubeHeaderLeft": { + "message": "YouTube শিরোনাম (বাম)" + }, + "youtubeHeaderRight": { + "message": "YouTube শিরোনাম (ডানদিকে)" + }, + "youtubeHomePage": { + "message": "ইউটিউব হোম পৃষ্ঠা" + }, + "youtubeLanguage": { + "message": "ইউটিউব ভাষা" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "ইউটিউব h.264 কোডেকের জন্য ভিডিও গুণমানকে 1080p এর মধ্যে সীমাবদ্ধ করে" + } +} \ No newline at end of file diff --git a/stable/_locales/de/messages.json b/stable/_locales/de/messages.json index c51eb474d..efe0f75fd 100644 --- a/stable/_locales/de/messages.json +++ b/stable/_locales/de/messages.json @@ -1,800 +1,809 @@ -{ - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Info" - }, - "accept": { - "message": "Akzeptieren" - }, - "activate": { - "message": "Aktivieren" - }, - "activateCaptions": { - "message": "Untertitel aktivieren" - }, - "activateFullscreen": { - "message": "Vollbild aktivieren" - }, - "activated": { - "message": "Aktiviert" - }, - "activatedFeatures": { - "message": "Aktivierte Features" - }, - "activeFeatures": { - "message": "Meine aktiven Funktionen" - }, - "addScrollToTop": { - "message": "«Nach Oben»-Button" - }, - "ads": { - "message": "Werbung" - }, - "all": { - "message": "Alles" - }, - "allow": { - "message": "zulassen" - }, - "allow60fps": { - "message": "60 fps zulassen" - }, - "alwaysActive": { - "message": "Immer aktiv" - }, - "alwaysShowProgressBar": { - "message": "Steuerunsleiste immer anzeigen" - }, - "amber": { - "message": "Bernstein" - }, - "analyzer": { - "message": "Analyzer" - }, - "appearance": { - "message": "Aussehen" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio Formate" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-Vollbild" - }, - "autopauseWhenSwitchingTabs": { - "message": "Video pausieren beim Tab-Wechsel" - }, - "autoplay": { - "message": "Autoplay" - }, - "backupAndReset": { - "message": "Sichern oder zurücksetzen" - }, - "baseOnSystemColorScheme": { - "message": "auf Systemfarben basieren" - }, - "belowPlayer": { - "message": "Unterm Player" - }, - "black": { - "message": "Schwarz" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "immer blockieren" - }, - "blue": { - "message": "Blau" - }, - "blueGray": { - "message": "Blau grau" - }, - "bluelight": { - "message": "Blaues Licht" - }, - "brown": { - "message": "Braun" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser Version" - }, - "bubbles": { - "message": "Blasen" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Buttons" - }, - "cancel": { - "message": "Abbrechen" - }, - "categories": { - "message": "Kategorien" - }, - "channel": { - "message": "Channel" - }, - "channels": { - "message": "Channels" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Abos einklappen" - }, - "collapsed": { - "message": "Eingeklappt" - }, - "comments": { - "message": "Kommentar" - }, - "confirmationBeforeClosing": { - "message": "Bestätigung beim Schließen" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Kerne" - }, - "cropChapterTitles": { - "message": "Kapitel abschneiden" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Custom JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Dunkel" - }, - "darkTheme": { - "message": "Dark theme" - }, - "dateAndTime": { - "message": "Datum & Uhrzeit" - }, - "dawn": { - "message": "Morgendämmerung" - }, - "decreasePlaybackSpeed": { - "message": "Abspielgeschwindigkeit verringern" - }, - "decreaseVolume": { - "message": "Lautstärke reduzieren" - }, - "deepOrange": { - "message": "dunkel-Orange" - }, - "deepPurple": { - "message": "dunkel-Lila" - }, - "defaultChannelTab": { - "message": "Standard Channel Tab" - }, - "deleteYoutubeCookies": { - "message": "YouTube Cookies löschen" - }, - "description": { - "message": "Beschreibung" - }, - "desert": { - "message": "Wüste" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Entwickleroptionen" - }, - "device": { - "message": "Gerät" - }, - "dim": { - "message": "dimmen" - }, - "disabled": { - "message": "ausgeschaltet" - }, - "dislike": { - "message": "Dislike" - }, - "doNotChange": { - "message": "Nicht ändern" - }, - "donate": { - "message": "Spenden" - }, - "draggable": { - "message": "Verschiebbar" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Leer" - }, - "enabled": { - "message": "aktiviert" - }, - "enabledForced": { - "message": "aktiviert (erzwungen)" - }, - "expanded": { - "message": "ausgeklappt" - }, - "exportSettings": { - "message": "Einstellungen als Datei speichern" - }, - "extension": { - "message": "Extension" - }, - "file": { - "message": "Datei" - }, - "filters": { - "message": "Filter" - }, - "fitToWindow": { - "message": "Ans Fenster anpassen" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Fußzeile" - }, - "forcedPlaybackSpeed": { - "message": "erzwungene Abspielgeschwindigkeit" - }, - "forcedTheaterMode": { - "message": "Kinomodus erzwingen" - }, - "forcedVolume": { - "message": "Fixe Lautstärke" - }, - "foundABug": { - "message": "Fehler gefunden?" - }, - "fullWindow": { - "message": "Ganzes Fenster" - }, - "general": { - "message": "Allgemein" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "YouTube Suche" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Grün" - }, - "hdThumbnail": { - "message": "HD Vorschaubild" - }, - "hdThumbnails": { - "message": "HD Vorschaubilder" - }, - "header": { - "message": "Header / 'Kopfzeile'" - }, - "hidden": { - "message": "Ausblenden" - }, - "hiddenOnVideoPage": { - "message": "Ausblenden auf Video Seiten" - }, - "hideAnimatedThumbnails": { - "message": "Keine animierten Vorschaubilder" - }, - "hideAnnotations": { - "message": "Anmerkungen ausblenden" - }, - "hideCards": { - "message": "Karten ausblenden" - }, - "hideDetails": { - "message": "Details ausblenden" - }, - "hideEndscreen": { - "message": "Schlussbildschirme ausblenden" - }, - "hideFeaturedContent": { - "message": "'Empfohlene Inhalte' ausblenden" - }, - "hideFooter": { - "message": "Fußzeile ausblenden" - }, - "hidePlaylist": { - "message": "Playlists ausblenden" - }, - "hideRightButtons": { - "message": "Rechte Buttons ausblenden" - }, - "hideScrollForDetails": { - "message": "«Für Details scrollen» ausblenden" - }, - "hideViewsCount": { - "message": "Zuschauerzähler ausblenden" - }, - "history": { - "message": "Verlauf" - }, - "home": { - "message": "Standard" - }, - "hover": { - "message": "Nur anzeigen wenn die Maus darauf zeigt" - }, - "hoverOnVideoPage": { - "message": "auf Video-Seiten nur wenn die Maus..." - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Alter des Videos (seit Hochlade-Datum)" - }, - "icons": { - "message": "Icons" - }, - "iconsOnly": { - "message": "nur Icons" - }, - "importSettings": { - "message": "Einstellungen importieren" - }, - "improveLogo": { - "message": "Logo verbessern" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube icon im Browser" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icon auf YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube Sprache" - }, - "improvedtubeVersion": { - "message": "ImprovedTube Version" - }, - "increasePlaybackSpeed": { - "message": "Abspiel Geschwingkeit erhöhen" - }, - "increaseVolume": { - "message": "Lautstärke erhöhen" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Sprachen" - }, - "legacyYoutube": { - "message": "Klassiches YouTube" - }, - "light": { - "message": "Hell" - }, - "lightBlue": { - "message": "Hellblau" - }, - "lightGreen": { - "message": "Hellgrün" - }, - "like": { - "message": "Like" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Limette" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Live Chat" - }, - "liveChatType": { - "message": "Live Chat Typ" - }, - "loudnessNormalization": { - "message": "Lautstärke normalisieren" - }, - "markWatchedVideos": { - "message": "gesehene Videos markieren" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "Meine Farben" - }, - "name": { - "message": "Name" - }, - "nativeMiniPlayer": { - "message": "Standard Mini-Player" - }, - "new": { - "message": "Neu" - }, - "nextVideo": { - "message": "Nächstes Video" - }, - "night": { - "message": "Nacht" - }, - "noActiveFeatures": { - "message": "Keine aktiven Features" - }, - "noOpenVideoTabs": { - "message": "Keine YouTube Videos geöffnet" - }, - "none": { - "message": "Keine" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Alt" - }, - "onAllVideos": { - "message": "in allen Videos" - }, - "onSubscribedChannels": { - "message": "nur in abonnierten Channels" - }, - "onlyActiveOnYoutube": { - "message": "nur auf YouTube rot färben" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Nur ein Video gleichzeitig" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "Betriebsystem" - }, - "other": { - "message": "Andere" - }, - "permissions": { - "message": "Berechtigungen" - }, - "pictureInPicture": { - "message": "Bild-in-Bild" - }, - "pink": { - "message": "Pink" - }, - "plain": { - "message": "Schlicht" - }, - "platform": { - "message": "Plattform" - }, - "playPause": { - "message": "Play / Pause" - }, - "playbackSpeed": { - "message": "Abspiel-Geschwindigkeit" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Player Farbe" - }, - "playerSize": { - "message": "Player Größe" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "popupPlayer": { - "message": "Player in eigenem Fenster" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Eine Taste drücken oder scrollen!" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Eine Taste drücken oder scrollen!" - }, - "previousVideo": { - "message": "Letztes Video" - }, - "primaryColor": { - "message": "Primäre Farbe" - }, - "purple": { - "message": "Lila" - }, - "quality": { - "message": "Qualität" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Bewerte mich" - }, - "red": { - "message": "Rot" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Verwandte Videos" - }, - "removeRelatedSearchResults": { - "message": "Verwandte Suchergebnisse entfernen" - }, - "repeat": { - "message": "Repeat" - }, - "reset": { - "message": "Zurücksetzen" - }, - "resetAllSettings": { - "message": "Alle Einstellungen zurücksetzen" - }, - "resetAllShortcuts": { - "message": "Alle Shortcuts zurücksetzen" - }, - "reverse": { - "message": "Rückwärts" - }, - "rotate": { - "message": "Drehen" - }, - "save": { - "message": "Speicher" - }, - "saveAs": { - "message": "Speichern unter" - }, - "schedule": { - "message": "Nachtschaltung" - }, - "screen": { - "message": "Bildschirm" - }, - "screenshot": { - "message": "Screenshot" - }, - "search": { - "message": "Suche" - }, - "searchBarOnly": { - "message": "Nur die Suchleiste" - }, - "seekBackward10Seconds": { - "message": "10 Sekunden zurück" - }, - "seekForward10Seconds": { - "message": "10 Sekunden überspringen" - }, - "settings": { - "message": "Einstellungen" - }, - "settingsSuccessfullyImported": { - "message": "Einstellungen erfolgreich importiert!" - }, - "shortcuts": { - "message": "Hotkeys" - }, - "showCardsOnMouseHover": { - "message": "Infokarten bei Mausover anzeigen" - }, - "showChannelVideosCount": { - "message": "Anzahl Videos je Channel anzeigen" - }, - "shuffle": { - "message": "Zufallswiedergabe" - }, - "sidebar": { - "message": "Seitenleiste" - }, - "spacebar": { - "message": "Leertaste" - }, - "squaredUserImages": { - "message": "Quadratische Profilbilder" - }, - "static": { - "message": "Statisch" - }, - "step": { - "message": "Schritt" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscriptions": { - "message": "Abonnements" - }, - "subtitles": { - "message": "Untertitel" - }, - "sunset": { - "message": "Sonnenuntergang" - }, - "sunsetToSunrise": { - "message": "Abends bis Morgens" - }, - "systemPeferenceDark": { - "message": "System Einstellungen: dunkel" - }, - "systemPeferenceLight": { - "message": "System Einstellungen: hell" - }, - "teal": { - "message": "Blaugrün" - }, - "textColor": { - "message": "Textfarbe" - }, - "themes": { - "message": "Farbschemen" - }, - "thisWillRemoveAllCookies": { - "message": "Alle Cookies werden gelöscht" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Alle YouTube Cookies werden gelöscht" - }, - "thisWillResetAllSettings": { - "message": "Alle Einstellungen werden entfernt" - }, - "thisWillResetAllShortcuts": { - "message": "Alle Shortcuts werden entfernt" - }, - "thumbnails": { - "message": "Vorschaubilder" - }, - "timeFrom": { - "message": "Start" - }, - "timeTo": { - "message": "Stop" - }, - "todayAt": { - "message": "Heute um" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Trailer autoplay" - }, - "translations": { - "message": "Übersetzungen" - }, - "transparentBackground": { - "message": "Transparenter Hintergrund" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Versuche die Seite neu zu laden" - }, - "type": { - "message": "Typ" - }, - "upNextAutoplay": { - "message": "Nächstes Video automatisch abspielen" - }, - "use24HourFormat": { - "message": "24-Stunden Format" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Die Video-Beschreibung wird um den Kategorienamen erweitert" - }, - "videoFormats": { - "message": "Video Formate" - }, - "videos": { - "message": "Videos" - }, - "volume": { - "message": "Lautstärke" - }, - "watchLater": { - "message": "Später ansehen" - }, - "watchTime": { - "message": "Verbrauchte Zeit" - }, - "whenTabIsChanged": { - "message": "Beim Tab-Wechsel" - }, - "white": { - "message": "Weiß" - }, - "yellow": { - "message": "Gelb" - }, - "youtubeHeaderLeft": { - "message": "YouTube Kopfzeile (Links)" - }, - "youtubeHeaderRight": { - "message": "YouTube Kopfzeile (Rechts)" - }, - "youtubeHomePage": { - "message": "YouTube Startseite" - }, - "youtubeLanguage": { - "message": "YouTube Sprache" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube begrenzt die Qualität auf 1080p für den h.264 Codec" - } -} +{ + "about": { + "message": "Info" + }, + "accept": { + "message": "Akzeptieren" + }, + "activate": { + "message": "Aktivieren" + }, + "activateCaptions": { + "message": "Untertitel aktivieren" + }, + "activated": { + "message": "Aktiviert" + }, + "activatedFeatures": { + "message": "Aktivierte Features" + }, + "activateFullscreen": { + "message": "Vollbild aktivieren" + }, + "activeFeatures": { + "message": "Aktive Funktionen" + }, + "addScrollToTop": { + "message": "«Nach Oben»-Button" + }, + "ads": { + "message": "Werbung" + }, + "all": { + "message": "Alles" + }, + "allow": { + "message": "zulassen" + }, + "allow60fps": { + "message": "60fps zulassen" + }, + "alwaysActive": { + "message": "Immer aktiv" + }, + "alwaysShowProgressBar": { + "message": "Zeitleiste immer anzeigen" + }, + "amber": { + "message": "Bernstein" + }, + "analyzer": { + "message": "Analyse" + }, + "appearance": { + "message": "Aussehen" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio-Formate" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-Vollbild" + }, + "autopauseWhenSwitchingTabs": { + "message": "Video pausieren beim Tab-Wechsel" + }, + "autoplay": { + "message": "Autoplay" + }, + "backupAndReset": { + "message": "Sichern oder zurücksetzen" + }, + "baseOnSystemColorScheme": { + "message": "Basierend von Systemfarben" + }, + "belowPlayer": { + "message": "Unter dem Player" + }, + "black": { + "message": "Schwarz" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "immer blockieren" + }, + "blue": { + "message": "Blau" + }, + "blueGray": { + "message": "Blau grau" + }, + "bluelight": { + "message": "Blaues Licht" + }, + "brown": { + "message": "Braun" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser Version" + }, + "bubbles": { + "message": "Blasen" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Buttons" + }, + "cancel": { + "message": "Abbrechen" + }, + "categories": { + "message": "Kategorien" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanäle" + }, + "clipboard": { + "message": "Zwischenablage" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapsed": { + "message": "Eingeklappt" + }, + "collapseOfSubscriptionSections": { + "message": "Abos einklappen" + }, + "comments": { + "message": "Kommentare" + }, + "confirmationBeforeClosing": { + "message": "Bestätigung beim Schließen" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Kerne" + }, + "cropChapterTitles": { + "message": "Kapitel abschneiden" + }, + "customCss": { + "message": "CSS hinzufügen" + }, + "customJs": { + "message": "JS hinzufügen" + }, + "customMiniPlayer": { + "message": "Benutzerdefinierter Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Dunkel" + }, + "darkTheme": { + "message": "Dark-Theme" + }, + "dateAndTime": { + "message": "Datum & Uhrzeit" + }, + "dawn": { + "message": "Morgendämmerung" + }, + "decreasePlaybackSpeed": { + "message": "Abspielgeschwindigkeit verringern" + }, + "decreaseVolume": { + "message": "Lautstärke reduzieren" + }, + "deepOrange": { + "message": "Dunkel-Orange" + }, + "deepPurple": { + "message": "Dunkel-Lila" + }, + "defaultChannelTab": { + "message": "Standard-Kanal Tab" + }, + "deleteYoutubeCookies": { + "message": "YouTube-Cookies löschen" + }, + "description": { + "message": "Beschreibung" + }, + "desert": { + "message": "Wüste" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Entwickleroptionen" + }, + "device": { + "message": "Gerät" + }, + "dim": { + "message": "dimmen" + }, + "disabled": { + "message": "ausgeschaltet" + }, + "dislike": { + "message": "'Mag ich nicht'" + }, + "donate": { + "message": "Spenden" + }, + "doNotChange": { + "message": "Nicht ändern" + }, + "draggable": { + "message": "Verschiebbar" + }, + "email": { + "message": "E-Mail" + }, + "empty": { + "message": "leer" + }, + "enabled": { + "message": "aktiviert" + }, + "enabledForced": { + "message": "aktiviert (erzwungen)" + }, + "expanded": { + "message": "ausgeklappt" + }, + "exportSettings": { + "message": "Einstellungen als Datei exportieren" + }, + "extension": { + "message": "Erweiterung" + }, + "file": { + "message": "Datei" + }, + "filters": { + "message": "Filter" + }, + "fitToWindow": { + "message": "Ans Fenster anpassen" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Schriftart" + }, + "footer": { + "message": "Fußzeile" + }, + "forcedPlaybackSpeed": { + "message": "erzwungene Abspielgeschwindigkeit" + }, + "forcedTheaterMode": { + "message": "Kinomodus erzwingen" + }, + "forcedVolume": { + "message": "Fixe Lautstärke" + }, + "foundABug": { + "message": "Fehler gefunden?" + }, + "fullWindow": { + "message": "Ganzes Fenster" + }, + "general": { + "message": "Allgemein" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "YouTube Suche" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Grün" + }, + "hdThumbnail": { + "message": "HD-Vorschaubild" + }, + "hdThumbnails": { + "message": "HD-Vorschaubilder" + }, + "header": { + "message": "Header / 'Kopfzeile'" + }, + "hidden": { + "message": "Ausblenden" + }, + "hiddenOnVideoPage": { + "message": "Auf Videoseiten ausblenden" + }, + "hideAnimatedThumbnails": { + "message": "Keine animierten Vorschaubilder" + }, + "hideAnnotations": { + "message": "Anmerkungen ausblenden" + }, + "hideCards": { + "message": "Karten ausblenden" + }, + "hideDetails": { + "message": "Details ausblenden" + }, + "hideEndscreen": { + "message": "Endkarten ausblenden (Schlussbildschirme)" + }, + "hideFeaturedContent": { + "message": "'Empfohlene Inhalte' ausblenden" + }, + "hideFooter": { + "message": "Fußzeile ausblenden" + }, + "hideGradientBottom": { + "message": "Farbverlauf ausblenden" + }, + "hidePlaylist": { + "message": "Playlists ausblenden" + }, + "hideRightButtons": { + "message": "Rechte Buttons ausblenden" + }, + "hideScrollForDetails": { + "message": "«Für Details scrollen» ausblenden" + }, + "hideViewsCount": { + "message": "Videoaufrufe ausblenden" + }, + "history": { + "message": "Verlauf" + }, + "home": { + "message": "Standard" + }, + "hover": { + "message": "Nur anzeigen wenn die Maus darauf zeigt" + }, + "hoverOnVideoPage": { + "message": "auf Video-Seiten nur wenn die Maus..." + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Alter des Videos (seit Hochlade-Datum)" + }, + "icons": { + "message": "Icons" + }, + "iconsOnly": { + "message": "nur Icons" + }, + "importSettings": { + "message": "Einstellungen importieren" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube Icon im Browser" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube Icon auf YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube Sprache" + }, + "improvedtubeVersion": { + "message": "ImprovedTube Version" + }, + "improveLogo": { + "message": "Logo verbessern" + }, + "increasePlaybackSpeed": { + "message": "Abspiel Geschwingkeit erhöhen" + }, + "increaseVolume": { + "message": "Lautstärke erhöhen" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "Sprachen" + }, + "legacyYoutube": { + "message": "Klassiches YouTube" + }, + "light": { + "message": "Hell" + }, + "lightBlue": { + "message": "Hellblau" + }, + "lightGreen": { + "message": "Hellgrün" + }, + "like": { + "message": "Like" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Limette" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Live-Chat" + }, + "liveChatType": { + "message": "Live-Chat Typ" + }, + "loudnessNormalization": { + "message": "Lautstärke normalisieren" + }, + "markWatchedVideos": { + "message": "gesehene Videos markieren" + }, + "mixer": { + "message": "Mischpult" + }, + "myColors": { + "message": "Meine Farben" + }, + "name": { + "message": "Name" + }, + "nativeMiniPlayer": { + "message": "Standard Mini-Player" + }, + "new": { + "message": "Neu" + }, + "nextVideo": { + "message": "Nächstes Video" + }, + "night": { + "message": "Nacht" + }, + "noActiveFeatures": { + "message": "Keine aktiven Features" + }, + "none": { + "message": "Keine" + }, + "noOpenVideoTabs": { + "message": "Keine YouTube Videos geöffnet" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Alt" + }, + "onAllVideos": { + "message": "in allen Videos" + }, + "onlyActiveOnYoutube": { + "message": "nur auf YouTube rot färben" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Nur ein Video gleichzeitig" + }, + "onSubscribedChannels": { + "message": "nur in abonnierten Kanälen" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "Betriebsystem" + }, + "other": { + "message": "Andere" + }, + "permissions": { + "message": "Berechtigungen" + }, + "pictureInPicture": { + "message": "Bild-in-Bild" + }, + "pink": { + "message": "Pink" + }, + "plain": { + "message": "Schlicht" + }, + "platform": { + "message": "Plattform" + }, + "playbackSpeed": { + "message": "Abspiel-Geschwindigkeit" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Playerfarbe" + }, + "playerSize": { + "message": "Playergröße" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "playPause": { + "message": "Play / Pause" + }, + "popupPlayer": { + "message": "Player in eigenem Fenster" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Eine Taste drücken oder scrollen!" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Eine Taste drücken oder scrollen!" + }, + "previousVideo": { + "message": "Letztes Video" + }, + "primaryColor": { + "message": "Primäre Farbe" + }, + "purple": { + "message": "Lila" + }, + "quality": { + "message": "Qualität" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Bewerte mich!" + }, + "red": { + "message": "Rot" + }, + "redDislikeButton": { + "message": "Zeige 'Mag ich nicht' Button rot" + }, + "relatedVideos": { + "message": "Verwandte Videos" + }, + "removeRelatedSearchResults": { + "message": "Verwandte Suchergebnisse entfernen" + }, + "repeat": { + "message": "Repeat(Wiederholen)" + }, + "reset": { + "message": "Zurücksetzen" + }, + "resetAllSettings": { + "message": "Alle Einstellungen zurücksetzen" + }, + "resetAllShortcuts": { + "message": "Alle Shortcuts zurücksetzen" + }, + "reverse": { + "message": "Rückwärts" + }, + "rotate": { + "message": "Drehen" + }, + "save": { + "message": "Speichern" + }, + "saveAs": { + "message": "Speichern als" + }, + "schedule": { + "message": "Nachtschaltung planen" + }, + "screen": { + "message": "Bildschirm" + }, + "screenshot": { + "message": "Screenshot" + }, + "search": { + "message": "Suche" + }, + "searchBarOnly": { + "message": "Nur die Suchleiste" + }, + "seekBackward10Seconds": { + "message": "10 Sekunden zurück" + }, + "seekForward10Seconds": { + "message": "10 Sekunden überspringen" + }, + "settings": { + "message": "Einstellungen" + }, + "settingsSuccessfullyImported": { + "message": "Einstellungen erfolgreich importiert!" + }, + "shortcuts": { + "message": "Hotkeys" + }, + "showCardsOnMouseHover": { + "message": "Infokarten bei Mausover anzeigen" + }, + "showChannelVideosCount": { + "message": "Anzahl Videos je Channel anzeigen" + }, + "shuffle": { + "message": "Zufallswiedergabe" + }, + "sidebar": { + "message": "Seitenleiste" + }, + "spacebar": { + "message": "Leertaste" + }, + "squaredUserImages": { + "message": "Quadratische Profilbilder" + }, + "static": { + "message": "Statisch" + }, + "statsForNerds": { + "message": "Statistiken für Nerds" + }, + "step": { + "message": "Schritt" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscriptions": { + "message": "Abonnements" + }, + "subtitles": { + "message": "Untertitel" + }, + "sunset": { + "message": "Sonnenuntergang" + }, + "sunsetToSunrise": { + "message": "Abends bis Morgens" + }, + "systemPeferenceDark": { + "message": "System Einstellungen: dunkel" + }, + "systemPeferenceLight": { + "message": "System Einstellungen: hell" + }, + "teal": { + "message": "Blaugrün" + }, + "textColor": { + "message": "Textfarbe" + }, + "themes": { + "message": "Farbschemen" + }, + "thisWillRemoveAllCookies": { + "message": "Alle Cookies werden gelöscht" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Alle YouTube Cookies werden gelöscht" + }, + "thisWillResetAllSettings": { + "message": "Alle Einstellungen werden entfernt" + }, + "thisWillResetAllShortcuts": { + "message": "Alle Shortcuts werden entfernt" + }, + "thumbnails": { + "message": "Vorschaubilder" + }, + "timeFrom": { + "message": "Start" + }, + "timeTo": { + "message": "Stop" + }, + "todayAt": { + "message": "Heute um" + }, + "toggleCards": { + "message": "Karten ausblenden" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Trailer autoplay (Kanal-Intro automatisch losspielen)" + }, + "translations": { + "message": "Übersetzungen" + }, + "transparentBackground": { + "message": "Transparenter Hintergrund" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Versuche die Seite neu zu laden" + }, + "type": { + "message": "Typ" + }, + "upNextAutoplay": { + "message": "Nächstes Video automatisch abspielen" + }, + "use24HourFormat": { + "message": "24-Stunden Format" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Die Video-Beschreibung wird um den Kategorienamen erweitert" + }, + "videoFormats": { + "message": "Video Formate" + }, + "videos": { + "message": "Videos" + }, + "volume": { + "message": "Lautstärke" + }, + "watchLater": { + "message": "Später ansehen" + }, + "watchTime": { + "message": "Verbrauchte Zeit" + }, + "whenTabIsChanged": { + "message": "Beim Tab-Wechsel" + }, + "white": { + "message": "Weiß" + }, + "yellow": { + "message": "Gelb" + }, + "youtubeHeaderLeft": { + "message": "YouTube Kopfzeile (Links)" + }, + "youtubeHeaderRight": { + "message": "YouTube Kopfzeile (Rechts)" + }, + "youtubeHomePage": { + "message": "YouTube Startseite" + }, + "youtubeLanguage": { + "message": "YouTube Sprache" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube begrenzt die Qualität auf 1080p für den h.264 Codec" + } +} \ No newline at end of file diff --git a/stable/_locales/el/messages.json b/stable/_locales/el/messages.json new file mode 100644 index 000000000..c1c9dc02c --- /dev/null +++ b/stable/_locales/el/messages.json @@ -0,0 +1,809 @@ +{ + "about": { + "message": "Σχετικά" + }, + "accept": { + "message": "Αποδοχή" + }, + "activate": { + "message": "Ενεργοποίηση" + }, + "activateCaptions": { + "message": "Ενεργοποίηση Υπότιτλων" + }, + "activated": { + "message": "Ενεργοποιήθηκε" + }, + "activatedFeatures": { + "message": "Ενεργοποιημένες Λειτουργίες" + }, + "activateFullscreen": { + "message": "Ενεργοποίηση Πλήρους Οθόνη" + }, + "activeFeatures": { + "message": "Ενεργές λειτουργίες" + }, + "addScrollToTop": { + "message": "Πρόσθεσε συντόμευση για την κορυφή της σελίδας" + }, + "ads": { + "message": "Διαφημίσεις" + }, + "all": { + "message": "Όλα" + }, + "allow": { + "message": "Αποδοχή" + }, + "allow60fps": { + "message": "Επίτρεψε 60fps" + }, + "alwaysActive": { + "message": "Πάντοτε ενεργό" + }, + "alwaysShowProgressBar": { + "message": "Πάντα ορατός ο ενδείκτης προόδου" + }, + "amber": { + "message": "Κεχρί" + }, + "analyzer": { + "message": "Αναλυτής" + }, + "appearance": { + "message": "Εμφάνιση" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Ήχος" + }, + "audioFormats": { + "message": "Μορφές ήχου" + }, + "auto": { + "message": "Αυτόματο" + }, + "autoFullscreen": { + "message": "Αυτόματη Πλήρης Οθόνη" + }, + "autopauseWhenSwitchingTabs": { + "message": "Αυτόματη παύση όταν αλλάζετε καρτέλα" + }, + "autoplay": { + "message": "Αυτόματη αναπαραγωγή" + }, + "backupAndReset": { + "message": "Αντίγραφα ασφαλείας & reset" + }, + "baseOnSystemColorScheme": { + "message": "Με βάση τις ρυθμίσεις χρώματος του συστήματος" + }, + "belowPlayer": { + "message": "Κάτω από το Player" + }, + "black": { + "message": "Μαύρο" + }, + "blacklist": { + "message": "Λίστα αποκλεισμού" + }, + "blockAll": { + "message": "Αποκλείστε όλα" + }, + "blue": { + "message": "Μπλε" + }, + "blueGray": { + "message": "Μπλε γκρίζο" + }, + "bluelight": { + "message": "Μπλε φως" + }, + "brown": { + "message": "Καφέ" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Έκδοση browser" + }, + "bubbles": { + "message": "Φούσκες" + }, + "bug": { + "message": "Σφάλμα κώδικα" + }, + "buttons": { + "message": "Κουμπιά" + }, + "cancel": { + "message": "Ακύρωση" + }, + "categories": { + "message": "Κατηγορίες" + }, + "channel": { + "message": "Κανάλι" + }, + "channels": { + "message": "Κανάλια" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapsed": { + "message": "Κλειστό" + }, + "collapseOfSubscriptionSections": { + "message": "Κλείσε το μενού συνδρομών" + }, + "comments": { + "message": "Σχόλιο" + }, + "confirmationBeforeClosing": { + "message": "Επιβεβαίωση πρωτού κλείσεις" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Πυρήνες" + }, + "cropChapterTitles": { + "message": "Περίκοψε τους τίτλους των κεφαλαίων" + }, + "customCss": { + "message": "Εξατομίκευση CSS" + }, + "customJs": { + "message": "Εξατομίκευση JS" + }, + "customMiniPlayer": { + "message": "Εξατομικευμένο Mini-Player" + }, + "cyan": { + "message": "Κυανό" + }, + "dark": { + "message": "Σκούρο" + }, + "darkTheme": { + "message": "Σκούρο θέμα" + }, + "dateAndTime": { + "message": "Ημερομηνία & ώρα" + }, + "dawn": { + "message": "Αυγή" + }, + "decreasePlaybackSpeed": { + "message": "Μείωσε ταχύτητα αναπαραγωγής" + }, + "decreaseVolume": { + "message": "Μειώστε ένταση" + }, + "deepOrange": { + "message": "Βαθύ πορτοκαλί" + }, + "deepPurple": { + "message": "Βαθύ μοβ" + }, + "defaultChannelTab": { + "message": "Προεπιλεγμένη καρτέλα καναλιού" + }, + "deleteYoutubeCookies": { + "message": "Κατάργησε τα cookies του YouTube" + }, + "description": { + "message": "Περιγραφή" + }, + "desert": { + "message": "Έρημος" + }, + "details": { + "message": "Λεπτομέρειες" + }, + "developerOptions": { + "message": "Επιλογές για προγραμματιστές" + }, + "device": { + "message": "Συσκευή" + }, + "dim": { + "message": "Σκοτεινό" + }, + "disabled": { + "message": "Απενεργοποιημένο" + }, + "dislike": { + "message": "Δε μου αρέσει" + }, + "donate": { + "message": "Συνεισφέρετε οικονομικά" + }, + "doNotChange": { + "message": "Να μην αλλάξει" + }, + "draggable": { + "message": "Μετακινήσιμο με σύρση" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Κενό" + }, + "enabled": { + "message": "Ενεργοποιημένο" + }, + "enabledForced": { + "message": "Ενεργοποιημένο (Υποχρεωτικά)" + }, + "expanded": { + "message": "Ανοικτό" + }, + "exportSettings": { + "message": "Εξαγωγή ρυθμίσεων" + }, + "extension": { + "message": "Επέκταση" + }, + "file": { + "message": "Αρχείο" + }, + "filters": { + "message": "Φίλτρα" + }, + "fitToWindow": { + "message": "Να χωράει στο παράθυρο" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Γραμματοσειρά" + }, + "footer": { + "message": "Υποσέλιδο" + }, + "forcedPlaybackSpeed": { + "message": "Υποχρεωτική ταχύτητα αναπαραγωγής" + }, + "forcedTheaterMode": { + "message": "Υποχρεωτική λειτουργία κινηματογράφου" + }, + "forcedVolume": { + "message": "Υποχρεωτική ένταση" + }, + "foundABug": { + "message": "Εντοπίσατε κάποιο σφάλμα;" + }, + "fullWindow": { + "message": "Πλήρες παράθυρο" + }, + "general": { + "message": "Γενικά" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Πήγαινε στο πεδίο αναζήτησης" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Πράσινο" + }, + "hdThumbnail": { + "message": "HD Εικονίδιο βίντεο" + }, + "hdThumbnails": { + "message": "HD Εικονίδια βίντεο" + }, + "header": { + "message": "Κεφαλίδα" + }, + "hidden": { + "message": "Κρυμμένο" + }, + "hiddenOnVideoPage": { + "message": "Κρυμμένο στη σελίδα βίντεο" + }, + "hideAnimatedThumbnails": { + "message": "Απόκρυψε τα κινούμενα εικονίδια βίντεο" + }, + "hideAnnotations": { + "message": "Απόκρυψε τα annotations" + }, + "hideCards": { + "message": "Απόκρυψε τις κάρτες" + }, + "hideDetails": { + "message": "Απόκρυψε τις λεπτομέρειες" + }, + "hideEndscreen": { + "message": "Απόκρυψε την κάρτα τέλους" + }, + "hideFeaturedContent": { + "message": "Απόκρυψε το προτεινόμενο περιεχόμενο" + }, + "hideFooter": { + "message": "Απόκρυψε το υποσέλιδο" + }, + "hideGradientBottom": { + "message": "Απόκρυψε το κάτω μέρος της χρωματικής διαβάθμισης" + }, + "hidePlaylist": { + "message": "Απόκρυψε τα playlists" + }, + "hideRightButtons": { + "message": "Απόκρυψε τα κουμπιά στα δεξιά" + }, + "hideScrollForDetails": { + "message": "Απόκρυψε το «Scroll for details»" + }, + "hideViewsCount": { + "message": "Απόκρυψε τον αριθμό προβολών" + }, + "history": { + "message": "Ιστορικό" + }, + "home": { + "message": "Αρχική σελίδα" + }, + "hover": { + "message": "Κέρσορας από πάνω" + }, + "hoverOnVideoPage": { + "message": "Κέρσορας πάνω στη σελίδα βίντεο" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Πριν από πόσο ανέβηκε το βίντεο" + }, + "icons": { + "message": "Εικονίδια" + }, + "iconsOnly": { + "message": "Εικονίδια μόνο" + }, + "importSettings": { + "message": "Εισαγωγή ρυθμίσεων" + }, + "improvedtubeIconInBrowser": { + "message": "Εικονίδιο ImprovedTube στο Browser" + }, + "improvedtubeIconOnYoutube": { + "message": "Εικονίδιο ImprovedTube στο YouTube" + }, + "improvedtubeLanguage": { + "message": "Γλώσσα ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Έκδοση ImprovedTube" + }, + "improveLogo": { + "message": "Λογότυπο Improve" + }, + "increasePlaybackSpeed": { + "message": "Αύξησε την ταχύτητα αναπαραγωγής" + }, + "increaseVolume": { + "message": "Αύξησε την ένταση" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Αντικείμενα" + }, + "languages": { + "message": "Γλώσσες" + }, + "legacyYoutube": { + "message": "Παλιά έκδοση YouTube" + }, + "light": { + "message": "Ανοιχτόχρωμο" + }, + "lightBlue": { + "message": "Ανοικτό μπλε" + }, + "lightGreen": { + "message": "Ανοικτό πράσινο" + }, + "like": { + "message": "Μου αρέσει" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Μοσχολέμονο" + }, + "list": { + "message": "Λίστα" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Τύπος live chat" + }, + "loudnessNormalization": { + "message": "Κανονικοποίηση έντασης" + }, + "markWatchedVideos": { + "message": "Επισήμανση βίντεο που προβλήθηκαν" + }, + "mixer": { + "message": "Mixer" + }, + "myColors": { + "message": "Τα χρώματά μου" + }, + "name": { + "message": "Όνομα" + }, + "nativeMiniPlayer": { + "message": "Mini player συστήματος" + }, + "new": { + "message": "Νέο" + }, + "nextVideo": { + "message": "Επόμενο βίντεο" + }, + "night": { + "message": "Νύχτα" + }, + "noActiveFeatures": { + "message": "Καμία λειτουργία ενεργή" + }, + "none": { + "message": "Κανένα" + }, + "noOpenVideoTabs": { + "message": "Καμία καρτέλα βίντεο ανοικτή" + }, + "normal": { + "message": "Κανονικό" + }, + "old": { + "message": "Παλιό" + }, + "onAllVideos": { + "message": "Σε όλα τα βίντεο" + }, + "onlyActiveOnYoutube": { + "message": "Μόνο ενεργό στο YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Μόνο ένα player λειτουργεί" + }, + "onSubscribedChannels": { + "message": "Σε κανάλια που έχει γίνει συνδρομή" + }, + "orange": { + "message": "Πορτοκαλί" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Άλλο" + }, + "permissions": { + "message": "Άδεια" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Ροζ" + }, + "plain": { + "message": "Σκέτο" + }, + "platform": { + "message": "Πλατφόρμα" + }, + "playbackSpeed": { + "message": "Ταχύτητα αναπαραγωγής" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Χρώμσ player" + }, + "playerSize": { + "message": "Μέγεθος player" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "playPause": { + "message": "Play / Pause" + }, + "popupPlayer": { + "message": "Popup player" + }, + "position": { + "message": "Θέση" + }, + "pressAnyKeyOrScroll": { + "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." + }, + "previousVideo": { + "message": "Προηγούμενο βίντεο" + }, + "primaryColor": { + "message": "Πρωτεύον χρώμα" + }, + "purple": { + "message": "Μοβ" + }, + "quality": { + "message": "Ποιότητα" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Αξιολόγησέ μας" + }, + "red": { + "message": "Κόκκινο" + }, + "redDislikeButton": { + "message": "Δείξτε το πλήκτρο «Δε μου αρέσει» σε κόκκινο" + }, + "relatedVideos": { + "message": "Σχετικά videos" + }, + "removeRelatedSearchResults": { + "message": "Αφαίρεσε σχετικά αποτελέσματα αναζήτησης" + }, + "repeat": { + "message": "Επανάληψη" + }, + "reset": { + "message": "Επαναφορά" + }, + "resetAllSettings": { + "message": "Επαναφορά όλων των ρυθμίσεων" + }, + "resetAllShortcuts": { + "message": "Επαναφορά όλων των συντομεύσεων" + }, + "reverse": { + "message": "Ανάποδα" + }, + "rotate": { + "message": "Περιστροφή" + }, + "save": { + "message": "Αποθήκευση" + }, + "saveAs": { + "message": "Αποθήκευση ως" + }, + "schedule": { + "message": "Πρόγραμμα" + }, + "screen": { + "message": "Οθόνη" + }, + "screenshot": { + "message": "Στιγμιότυπο" + }, + "search": { + "message": "Αναζήτηση" + }, + "searchBarOnly": { + "message": "Πεδίο αναζήτησης μόνο" + }, + "seekBackward10Seconds": { + "message": "Πίσω 10 δευτερόλεπτα" + }, + "seekForward10Seconds": { + "message": "Μπροστά 10 δευτερόλεπτα" + }, + "settings": { + "message": "Ρυθμίσεις" + }, + "settingsSuccessfullyImported": { + "message": "Επιτυχής εισαγωγή ρυθμίσεων" + }, + "shortcuts": { + "message": "Συντομεύσεις" + }, + "showCardsOnMouseHover": { + "message": "Δείξε τις κάρτες όταν ο κέρσορας είναι από πάνω" + }, + "showChannelVideosCount": { + "message": "Δείξε τις συνολικές προβολές του καναλιού" + }, + "shuffle": { + "message": "Τυχαία αναπαραγωγή" + }, + "sidebar": { + "message": "Sidebar" + }, + "spacebar": { + "message": "Spacebar" + }, + "squaredUserImages": { + "message": "Τετράγωνες εικόνες χρήστη" + }, + "static": { + "message": "Στατικό" + }, + "statsForNerds": { + "message": "Δείξε τα Στατιστικά για Σπασίκλες" + }, + "step": { + "message": "Βήμα" + }, + "stop": { + "message": "Στοπ" + }, + "style": { + "message": "Στυλ" + }, + "styles": { + "message": "Στυλ" + }, + "subscriptions": { + "message": "Συνδρομές" + }, + "subtitles": { + "message": "Υπότιτλοι" + }, + "sunset": { + "message": "Ηλιοβασίλεμα" + }, + "sunsetToSunrise": { + "message": "Από δύση έως ανατολή" + }, + "systemPeferenceDark": { + "message": "Προτίμηση συστήματος: Σκούρο" + }, + "systemPeferenceLight": { + "message": "Προτίμηση συστήματος: Ανοικτόχρωμο" + }, + "teal": { + "message": "Γαλαζιοπράσινο" + }, + "textColor": { + "message": "Χρώμα κειμένου" + }, + "themes": { + "message": "Θέματα" + }, + "thisWillRemoveAllCookies": { + "message": "Αυτό αφαιρεί όλα τα cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Αυτό αφαιρεί όλα τα cookies του YouTube." + }, + "thisWillResetAllSettings": { + "message": "Αυτό επαναφέρει όλες τις ρυθμίσεις." + }, + "thisWillResetAllShortcuts": { + "message": "Αυτό επαναφέρει όλες τις συντομεύσεις." + }, + "thumbnails": { + "message": "Εικονίδια" + }, + "timeFrom": { + "message": "Χρόνος από" + }, + "timeTo": { + "message": "Χρόνος έως" + }, + "todayAt": { + "message": "Σήμερα στις" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Trailer autoplay" + }, + "translations": { + "message": "Μεταφράσεις" + }, + "transparentBackground": { + "message": "Διαφανές υπόβαθρο" + }, + "trending": { + "message": "Τάσεις" + }, + "tryToReloadThePage": { + "message": "Προσπάθησε να επαναφορτώσεις τη σελίδα" + }, + "type": { + "message": "Τύπος" + }, + "upNextAutoplay": { + "message": "Επόμενο στο autoplay" + }, + "use24HourFormat": { + "message": "Χρησιμοποίησε 24ωρη μορφή ώρας" + }, + "version": { + "message": "Έκδοση" + }, + "video": { + "message": "Βίντεο" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Η περιγραφή του βίντεο θα επεκταθεί ωστε να συμπεριληφθεί το όνομα της κατηγορίας." + }, + "videoFormats": { + "message": "Μορφές βίντεο" + }, + "videos": { + "message": "Βίντεο" + }, + "volume": { + "message": "Ένταση" + }, + "watchLater": { + "message": "Δες αργότερα" + }, + "watchTime": { + "message": "Χρόνος προβολής" + }, + "whenTabIsChanged": { + "message": "Όταν αλλάζεις καρτέλα" + }, + "white": { + "message": "Λευκό" + }, + "yellow": { + "message": "Κίτρινο" + }, + "youtubeHeaderLeft": { + "message": "Κεφαλίδα YouTube (αριστερά)" + }, + "youtubeHeaderRight": { + "message": "Κεφαλίδα YouTube (δεξιά)" + }, + "youtubeHomePage": { + "message": "Αρχική σελίδα YouTube" + }, + "youtubeLanguage": { + "message": "Γλώσσα YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "Το YouTube περιορίζει την ποιότητα σε 1080p για το h.264 codec" + } +} \ No newline at end of file diff --git a/stable/_locales/en/messages.json b/stable/_locales/en/messages.json index ed7a9e0ba..873cf124f 100644 --- a/stable/_locales/en/messages.json +++ b/stable/_locales/en/messages.json @@ -1,800 +1,812 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "About" - }, - "accept": { - "message": "Accept" - }, - "activate": { - "message": "Activate" - }, - "activateCaptions": { - "message": "Activate captions" - }, - "activateFullscreen": { - "message": "Activate fullscreen" - }, - "activated": { - "message": "Activated" - }, - "activatedFeatures": { - "message": "Activated features" - }, - "activeFeatures": { - "message": "Active features" - }, - "addScrollToTop": { - "message": "Add «Scroll to top»" - }, - "ads": { - "message": "Ads" - }, - "all": { - "message": "All" - }, - "allow": { - "message": "Allow" - }, - "allow60fps": { - "message": "Allow 60fps" - }, - "alwaysActive": { - "message": "Always active" - }, - "alwaysShowProgressBar": { - "message": "Always show progress bar" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analyzer" - }, - "appearance": { - "message": "Appearance" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio formats" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-fullscreen" - }, - "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" - }, - "autoplay": { - "message": "Autoplay" - }, - "backupAndReset": { - "message": "Backup & reset" - }, - "baseOnSystemColorScheme": { - "message": "Base on system color scheme" - }, - "belowPlayer": { - "message": "Below player" - }, - "black": { - "message": "Black" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "Block all" - }, - "blue": { - "message": "Blue" - }, - "blueGray": { - "message": "Blue gray" - }, - "bluelight": { - "message": "Bluelight" - }, - "brown": { - "message": "Brown" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser version" - }, - "bubbles": { - "message": "Bubbles" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Buttons" - }, - "cancel": { - "message": "Cancel" - }, - "categories": { - "message": "Categories" - }, - "channel": { - "message": "Channel" - }, - "channels": { - "message": "Channels" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" - }, - "collapsed": { - "message": "Collapsed" - }, - "comments": { - "message": "Comments" - }, - "confirmationBeforeClosing": { - "message": "Confirmation before closing" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Custom JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Dark" - }, - "darkTheme": { - "message": "Dark theme" - }, - "dateAndTime": { - "message": "Date & time" - }, - "dawn": { - "message": "Dawn" - }, - "decreasePlaybackSpeed": { - "message": "Decrease playback speed" - }, - "decreaseVolume": { - "message": "Decrease volume" - }, - "deepOrange": { - "message": "Deep orange" - }, - "deepPurple": { - "message": "Deep purple" - }, - "defaultChannelTab": { - "message": "Default channel tab" - }, - "deleteYoutubeCookies": { - "message": "Delete YouTube cookies" - }, - "description": { - "message": "Description" - }, - "desert": { - "message": "Desert" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Developer options" - }, - "device": { - "message": "Device" - }, - "dim": { - "message": "Dim" - }, - "disabled": { - "message": "Disabled" - }, - "dislike": { - "message": "Dislike" - }, - "doNotChange": { - "message": "Don't change" - }, - "donate": { - "message": "Donate" - }, - "draggable": { - "message": "Draggable" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Empty" - }, - "enabled": { - "message": "Enabled" - }, - "enabledForced": { - "message": "Enabled (forced)" - }, - "expanded": { - "message": "Expanded" - }, - "exportSettings": { - "message": "Export settings" - }, - "extension": { - "message": "Extension" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filters" - }, - "fitToWindow": { - "message": "Fit to window" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Footer" - }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, - "forcedTheaterMode": { - "message": "Forced theater mode" - }, - "forcedVolume": { - "message": "Forced volume" - }, - "foundABug": { - "message": "Found a bug?" - }, - "fullWindow": { - "message": "Full window" - }, - "general": { - "message": "General" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Go to search box" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Green" - }, - "hdThumbnail": { - "message": "HD thumbnail" - }, - "hdThumbnails": { - "message": "HD thumbnails" - }, - "header": { - "message": "Header" - }, - "hidden": { - "message": "Hidden" - }, - "hiddenOnVideoPage": { - "message": "Hidden on video page" - }, - "hideAnimatedThumbnails": { - "message": "Hide animated thumbnails" - }, - "hideAnnotations": { - "message": "Hide annotations" - }, - "hideCards": { - "message": "Hide cards" - }, - "hideDetails": { - "message": "Hide details" - }, - "hideEndscreen": { - "message": "Hide endscreen" - }, - "hideFeaturedContent": { - "message": "Hide featured content" - }, - "hideFooter": { - "message": "Hide footer" - }, - "hidePlaylist": { - "message": "Hide playlist" - }, - "hideRightButtons": { - "message": "Hide right buttons" - }, - "hideScrollForDetails": { - "message": "Hide «Scroll for details»" - }, - "hideViewsCount": { - "message": "Hide views count" - }, - "history": { - "message": "History" - }, - "home": { - "message": "Home" - }, - "hover": { - "message": "Hover" - }, - "hoverOnVideoPage": { - "message": "Hover on video page" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" - }, - "icons": { - "message": "Icons" - }, - "iconsOnly": { - "message": "Icons only" - }, - "importSettings": { - "message": "Import settings" - }, - "improveLogo": { - "message": "Improve logo" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube icon in Browser" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icon on YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube language" - }, - "improvedtubeVersion": { - "message": "ImprovedTube version" - }, - "increasePlaybackSpeed": { - "message": "Increase playback speed" - }, - "increaseVolume": { - "message": "Increase volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Languages" - }, - "legacyYoutube": { - "message": "Legacy YouTube" - }, - "light": { - "message": "Light" - }, - "lightBlue": { - "message": "Light blue" - }, - "lightGreen": { - "message": "Light green" - }, - "like": { - "message": "Like" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Lime" - }, - "list": { - "message": "List" - }, - "liveChat": { - "message": "Live chat" - }, - "liveChatType": { - "message": "Live chat type" - }, - "loudnessNormalization": { - "message": "Loudness normalization" - }, - "markWatchedVideos": { - "message": "Mark watched videos" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "My colors" - }, - "name": { - "message": "Name" - }, - "nativeMiniPlayer": { - "message": "Native mini player" - }, - "new": { - "message": "New" - }, - "nextVideo": { - "message": "Next video" - }, - "night": { - "message": "Night" - }, - "noActiveFeatures": { - "message": "No active features" - }, - "noOpenVideoTabs": { - "message": "No open video tabs" - }, - "none": { - "message": "None" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Old" - }, - "onAllVideos": { - "message": "On all videos" - }, - "onSubscribedChannels": { - "message": "On subscribed channels" - }, - "onlyActiveOnYoutube": { - "message": "Only active on YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Other" - }, - "permissions": { - "message": "Permissions" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Pink" - }, - "plain": { - "message": "Plain" - }, - "platform": { - "message": "Platform" - }, - "playPause": { - "message": "Play / Pause" - }, - "playbackSpeed": { - "message": "Playback speed" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Player color" - }, - "playerSize": { - "message": "Player size" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "popupPlayer": { - "message": "Popup player" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Press any key or use mouse wheel." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Press any key or use mouse wheel" - }, - "previousVideo": { - "message": "Previous video" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "Purple" - }, - "quality": { - "message": "Quality" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Rate us" - }, - "red": { - "message": "Red" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Related videos" - }, - "removeRelatedSearchResults": { - "message": "Remove related search results" - }, - "repeat": { - "message": "Repeat" - }, - "reset": { - "message": "Reset" - }, - "resetAllSettings": { - "message": "Reset all settings" - }, - "resetAllShortcuts": { - "message": "Reset all shortcuts" - }, - "reverse": { - "message": "Reverse" - }, - "rotate": { - "message": "Rotate" - }, - "save": { - "message": "Save" - }, - "saveAs": { - "message": "Save as" - }, - "schedule": { - "message": "Schedule" - }, - "screen": { - "message": "Screen" - }, - "screenshot": { - "message": "Screenshot" - }, - "search": { - "message": "Search" - }, - "searchBarOnly": { - "message": "Search bar only" - }, - "seekBackward10Seconds": { - "message": "Seek backward 10 seconds" - }, - "seekForward10Seconds": { - "message": "Seek forward 10 seconds" - }, - "settings": { - "message": "Settings" - }, - "settingsSuccessfullyImported": { - "message": "Settings successfully imported" - }, - "shortcuts": { - "message": "Shortcuts" - }, - "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" - }, - "showChannelVideosCount": { - "message": "Show channel videos count" - }, - "shuffle": { - "message": "Shuffle" - }, - "sidebar": { - "message": "Sidebar" - }, - "spacebar": { - "message": "Spacebar" - }, - "squaredUserImages": { - "message": "Squared user images" - }, - "static": { - "message": "Static" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscriptions": { - "message": "Subscriptions" - }, - "subtitles": { - "message": "Subtitles" - }, - "sunset": { - "message": "Sunset" - }, - "sunsetToSunrise": { - "message": "Sunset to sunrise" - }, - "systemPeferenceDark": { - "message": "System peference: dark" - }, - "systemPeferenceLight": { - "message": "System peference: light" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Text color" - }, - "themes": { - "message": "Themes" - }, - "thisWillRemoveAllCookies": { - "message": "This will remove all cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "This will remove all YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "This will reset all settings." - }, - "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" - }, - "thumbnails": { - "message": "Thumbnails" - }, - "timeFrom": { - "message": "Time from" - }, - "timeTo": { - "message": "Time to" - }, - "todayAt": { - "message": "Today at" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Trailer autoplay" - }, - "translations": { - "message": "Translations" - }, - "transparentBackground": { - "message": "Transparent background" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Try to reload the page" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "Up next autoplay" - }, - "use24HourFormat": { - "message": "Use 24-hour format" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" - }, - "videoFormats": { - "message": "Video formats" - }, - "videos": { - "message": "Videos" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Watch later" - }, - "watchTime": { - "message": "Watch time" - }, - "whenTabIsChanged": { - "message": "When tab is changed" - }, - "white": { - "message": "White" - }, - "yellow": { - "message": "Yellow" - }, - "youtubeHeaderLeft": { - "message": "YouTube Header (left)" - }, - "youtubeHeaderRight": { - "message": "YouTube Header (right)" - }, - "youtubeHomePage": { - "message": "YouTube home page" - }, - "youtubeLanguage": { - "message": "YouTube language" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limits video quality to 1080p for h.264 codec" - } -} + "about": { + "message": "About" + }, + "accept": { + "message": "Accept" + }, + "activate": { + "message": "Activate" + }, + "activateCaptions": { + "message": "Activate captions" + }, + "activated": { + "message": "Activated" + }, + "activatedFeatures": { + "message": "Activated features" + }, + "activateFullscreen": { + "message": "Activate fullscreen" + }, + "activeFeatures": { + "message": "Active features" + }, + "addScrollToTop": { + "message": "Add «Scroll to top»" + }, + "ads": { + "message": "Ads" + }, + "all": { + "message": "All" + }, + "allow": { + "message": "Allow" + }, + "allow60fps": { + "message": "Allow 60fps" + }, + "alwaysActive": { + "message": "Always active" + }, + "alwaysShowProgressBar": { + "message": "Always show progress bar" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analyzer" + }, + "appearance": { + "message": "Appearance" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formats" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullscreen" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause when switching tabs" + }, + "autoplay": { + "message": "Autoplay" + }, + "backupAndReset": { + "message": "Backup & reset" + }, + "baseOnSystemColorScheme": { + "message": "Base on system color scheme" + }, + "belowPlayer": { + "message": "Below player" + }, + "black": { + "message": "Black" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "Block all" + }, + "blue": { + "message": "Blue" + }, + "blueGray": { + "message": "Blue gray" + }, + "bluelight": { + "message": "Bluelight" + }, + "brown": { + "message": "Brown" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser version" + }, + "bubbles": { + "message": "Bubbles" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Buttons" + }, + "cancel": { + "message": "Cancel" + }, + "categories": { + "message": "Categories" + }, + "channel": { + "message": "Channel" + }, + "channels": { + "message": "Channels" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapsed": { + "message": "Collapsed" + }, + "collapseOfSubscriptionSections": { + "message": "Collapse of subscription sections" + }, + "comments": { + "message": "Comments" + }, + "confirmationBeforeClosing": { + "message": "Confirmation before closing" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Custom JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Dark" + }, + "darkTheme": { + "message": "Dark theme" + }, + "dateAndTime": { + "message": "Date & time" + }, + "dawn": { + "message": "Dawn" + }, + "decreasePlaybackSpeed": { + "message": "Decrease playback speed" + }, + "decreaseVolume": { + "message": "Decrease volume" + }, + "deepOrange": { + "message": "Deep orange" + }, + "deepPurple": { + "message": "Deep purple" + }, + "defaultChannelTab": { + "message": "Default channel tab" + }, + "deleteYoutubeCookies": { + "message": "Delete YouTube cookies" + }, + "description": { + "message": "Description" + }, + "desert": { + "message": "Desert" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Developer options" + }, + "device": { + "message": "Device" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Disabled" + }, + "dislike": { + "message": "Dislike" + }, + "donate": { + "message": "Donate" + }, + "doNotChange": { + "message": "Don't change" + }, + "draggable": { + "message": "Draggable" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Empty" + }, + "enabled": { + "message": "Enabled" + }, + "enabledForced": { + "message": "Enabled (forced)" + }, + "expanded": { + "message": "Expanded" + }, + "exportSettings": { + "message": "Export settings" + }, + "extension": { + "message": "Extension" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filters" + }, + "fitToWindow": { + "message": "Fit to window" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "footer": { + "message": "Footer" + }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, + "forcedTheaterMode": { + "message": "Forced theater mode" + }, + "forcedVolume": { + "message": "Forced volume" + }, + "foundABug": { + "message": "Found a bug?" + }, + "fullWindow": { + "message": "Full window" + }, + "general": { + "message": "General" + }, + "geoPreference": { + "message": "Geo Preference" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Go to search box" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Green" + }, + "hdThumbnail": { + "message": "HD thumbnail" + }, + "hdThumbnails": { + "message": "HD thumbnails" + }, + "header": { + "message": "Header" + }, + "hidden": { + "message": "Hidden" + }, + "hiddenOnVideoPage": { + "message": "Hidden on video page" + }, + "hideAnimatedThumbnails": { + "message": "Hide animated thumbnails" + }, + "hideAnnotations": { + "message": "Hide annotations" + }, + "hideCards": { + "message": "Hide cards" + }, + "hideDetails": { + "message": "Hide details" + }, + "hideEndscreen": { + "message": "Hide endscreen" + }, + "hideFeaturedContent": { + "message": "Hide featured content" + }, + "hideFooter": { + "message": "Hide footer" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hidePlaylist": { + "message": "Hide playlist" + }, + "hideRightButtons": { + "message": "Hide right buttons" + }, + "hideScrollForDetails": { + "message": "Hide «Scroll for details»" + }, + "hideViewsCount": { + "message": "Hide views count" + }, + "history": { + "message": "History" + }, + "home": { + "message": "Home" + }, + "hover": { + "message": "Hover" + }, + "hoverOnVideoPage": { + "message": "Hover on video page" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "How long ago the video was uploaded" + }, + "icons": { + "message": "Icons" + }, + "iconsOnly": { + "message": "Icons only" + }, + "importSettings": { + "message": "Import settings" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube icon in Browser" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube icon on YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube language" + }, + "improvedtubeVersion": { + "message": "ImprovedTube version" + }, + "improveLogo": { + "message": "Improve logo" + }, + "increasePlaybackSpeed": { + "message": "Increase playback speed" + }, + "increaseVolume": { + "message": "Increase volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "Languages" + }, + "legacyYoutube": { + "message": "Legacy YouTube" + }, + "light": { + "message": "Light" + }, + "lightBlue": { + "message": "Light blue" + }, + "lightGreen": { + "message": "Light green" + }, + "like": { + "message": "Like" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Lime" + }, + "list": { + "message": "List" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Live chat type" + }, + "loudnessNormalization": { + "message": "Loudness normalization" + }, + "markWatchedVideos": { + "message": "Mark watched videos" + }, + "mixer": { + "message": "Mixer" + }, + "myColors": { + "message": "My colors" + }, + "name": { + "message": "Name" + }, + "nativeMiniPlayer": { + "message": "Native mini player" + }, + "new": { + "message": "New" + }, + "nextVideo": { + "message": "Next video" + }, + "night": { + "message": "Night" + }, + "noActiveFeatures": { + "message": "No active features" + }, + "none": { + "message": "None" + }, + "noOpenVideoTabs": { + "message": "No open video tabs" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Old" + }, + "onAllVideos": { + "message": "On all videos" + }, + "onlyActiveOnYoutube": { + "message": "Only active on YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "onSubscribedChannels": { + "message": "On subscribed channels" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Other" + }, + "permissions": { + "message": "Permissions" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Pink" + }, + "plain": { + "message": "Plain" + }, + "platform": { + "message": "Platform" + }, + "playbackSpeed": { + "message": "Playback speed" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Player color" + }, + "playerSize": { + "message": "Player size" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "playPause": { + "message": "Play / Pause" + }, + "popupPlayer": { + "message": "Popup player" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Press any key or use mouse wheel." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Press any key or use mouse wheel" + }, + "previousVideo": { + "message": "Previous video" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "Purple" + }, + "quality": { + "message": "Quality" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Rate us" + }, + "red": { + "message": "Red" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Related videos" + }, + "removeRelatedSearchResults": { + "message": "Remove related search results" + }, + "repeat": { + "message": "Repeat" + }, + "reset": { + "message": "Reset" + }, + "resetAllSettings": { + "message": "Reset all settings" + }, + "resetAllShortcuts": { + "message": "Reset all shortcuts" + }, + "reverse": { + "message": "Reverse" + }, + "rotate": { + "message": "Rotate" + }, + "save": { + "message": "Save" + }, + "saveAs": { + "message": "Save as" + }, + "schedule": { + "message": "Schedule" + }, + "screen": { + "message": "Screen" + }, + "screenshot": { + "message": "Screenshot" + }, + "search": { + "message": "Search" + }, + "searchBarOnly": { + "message": "Search bar only" + }, + "seekBackward10Seconds": { + "message": "Seek backward 10 seconds" + }, + "seekForward10Seconds": { + "message": "Seek forward 10 seconds" + }, + "settings": { + "message": "Settings" + }, + "settingsSuccessfullyImported": { + "message": "Settings successfully imported" + }, + "shortcuts": { + "message": "Shortcuts" + }, + "showCardsOnMouseHover": { + "message": "Show cards on mouse hover" + }, + "showChannelVideosCount": { + "message": "Show channel videos count" + }, + "shuffle": { + "message": "Shuffle" + }, + "sidebar": { + "message": "Sidebar" + }, + "spacebar": { + "message": "Spacebar" + }, + "squaredUserImages": { + "message": "Squared user images" + }, + "static": { + "message": "Static" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscriptions": { + "message": "Subscriptions" + }, + "subtitles": { + "message": "Subtitles" + }, + "sunset": { + "message": "Sunset" + }, + "sunsetToSunrise": { + "message": "Sunset to sunrise" + }, + "systemPeferenceDark": { + "message": "System peference: dark" + }, + "systemPeferenceLight": { + "message": "System peference: light" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Text color" + }, + "themes": { + "message": "Themes" + }, + "thisWillRemoveAllCookies": { + "message": "This will remove all cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "This will remove all YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "This will reset all settings." + }, + "thisWillResetAllShortcuts": { + "message": "This will reset all shortcuts" + }, + "thumbnails": { + "message": "Thumbnails" + }, + "timeFrom": { + "message": "Time from" + }, + "timeTo": { + "message": "Time to" + }, + "todayAt": { + "message": "Today at" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Trailer autoplay" + }, + "translations": { + "message": "Translations" + }, + "transparentBackground": { + "message": "Transparent background" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Try to reload the page" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Up next autoplay" + }, + "use24HourFormat": { + "message": "Use 24-hour format" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video description will be expanded to get the name of the category" + }, + "videoFormats": { + "message": "Video formats" + }, + "videos": { + "message": "Videos" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Watch later" + }, + "watchTime": { + "message": "Watch time" + }, + "whenTabIsChanged": { + "message": "When tab is changed" + }, + "white": { + "message": "White" + }, + "yellow": { + "message": "Yellow" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (left)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (right)" + }, + "youtubeHomePage": { + "message": "YouTube home page" + }, + "youtubeLanguage": { + "message": "YouTube language" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limits video quality to 1080p for h.264 codec" + } +} \ No newline at end of file diff --git a/stable/_locales/es/messages.json b/stable/_locales/es/messages.json index 3c699f9bc..c2ec8e487 100644 --- a/stable/_locales/es/messages.json +++ b/stable/_locales/es/messages.json @@ -1,800 +1,809 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Acerca de" - }, - "accept": { - "message": "Aceptar" - }, - "activate": { - "message": "Activar" - }, - "activateCaptions": { - "message": "Activar subtítulos" - }, - "activateFullscreen": { - "message": "Activar pantalla completa" - }, - "activated": { - "message": "Activado" - }, - "activatedFeatures": { - "message": "Características activadas" - }, - "activeFeatures": { - "message": "Activar características" - }, - "addScrollToTop": { - "message": "Botón ir arriba" - }, - "ads": { - "message": "Ads" - }, - "all": { - "message": "Todo" - }, - "allow": { - "message": "Permitir" - }, - "allow60fps": { - "message": "Permitir 60fps" - }, - "alwaysActive": { - "message": "Siempre activo" - }, - "alwaysShowProgressBar": { - "message": "Siempre mostrar barra de progreso" - }, - "amber": { - "message": "Ambar" - }, - "analyzer": { - "message": "Analizador" - }, - "appearance": { - "message": "Apariencia" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formatos de audio" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto Pantalla completa" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausar cuando cambio de pestaña" - }, - "autoplay": { - "message": "Reproducción automática" - }, - "backupAndReset": { - "message": "Backup & reset" - }, - "baseOnSystemColorScheme": { - "message": "Según tema del sistema" - }, - "belowPlayer": { - "message": "Debajo del reproductor" - }, - "black": { - "message": "Negro" - }, - "blacklist": { - "message": "Lista negra" - }, - "blockAll": { - "message": "Bloquear todo" - }, - "blue": { - "message": "Azul" - }, - "blueGray": { - "message": "Gris azulado" - }, - "bluelight": { - "message": "Luz Azul" - }, - "brown": { - "message": "Marron" - }, - "browser": { - "message": "Navegador" - }, - "browserVersion": { - "message": "Version del navegador" - }, - "bubbles": { - "message": "Burbujas" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Botones" - }, - "cancel": { - "message": "Cancelar" - }, - "categories": { - "message": "Categorias" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canales" - }, - "clipboard": { - "message": "Portapapeles" - }, - "codecH264": { - "message": "Códec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Compactar seccion de suscripciones" - }, - "collapsed": { - "message": "Compacto" - }, - "comments": { - "message": "Comentarios" - }, - "confirmationBeforeClosing": { - "message": "Confirmar antes de cerrar" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Núcleos" - }, - "cropChapterTitles": { - "message": "Cortar título de capítulos" - }, - "customCss": { - "message": "CSS personalizado" - }, - "customJs": { - "message": "JS personalizado" - }, - "customMiniPlayer": { - "message": "Mini-Reproductor" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Oscuro" - }, - "darkTheme": { - "message": "Tema oscuro" - }, - "dateAndTime": { - "message": "Fecha y hora" - }, - "dawn": { - "message": "Amanecer" - }, - "decreasePlaybackSpeed": { - "message": "Bajar velocidad de reproducción" - }, - "decreaseVolume": { - "message": "Bajar volumen" - }, - "deepOrange": { - "message": "Naranja profundo" - }, - "deepPurple": { - "message": "Violeta profundo" - }, - "defaultChannelTab": { - "message": "Pestaña del canal por defecto" - }, - "deleteYoutubeCookies": { - "message": "Borrar cookies de YouTube" - }, - "description": { - "message": "Descripción" - }, - "desert": { - "message": "Desierto" - }, - "details": { - "message": "Detalles" - }, - "developerOptions": { - "message": "Options de desarrollador" - }, - "device": { - "message": "Dispositivo" - }, - "dim": { - "message": "Oscuro" - }, - "disabled": { - "message": "Desactivado" - }, - "dislike": { - "message": "Dislike" - }, - "doNotChange": { - "message": "No cambiar" - }, - "donate": { - "message": "Donar" - }, - "draggable": { - "message": "Arrastrable" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Empty" - }, - "enabled": { - "message": "Activado" - }, - "enabledForced": { - "message": "Activado (forzado)" - }, - "expanded": { - "message": "Expandido" - }, - "exportSettings": { - "message": "Exportar configuración" - }, - "extension": { - "message": "Extensión" - }, - "file": { - "message": "Archivo" - }, - "filters": { - "message": "Filtros" - }, - "fitToWindow": { - "message": "Ajustar a la ventana" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Fuente" - }, - "footer": { - "message": "Pie" - }, - "forcedPlaybackSpeed": { - "message": "Velocidad de reproducción forzada" - }, - "forcedTheaterMode": { - "message": "Forzar modo teatro" - }, - "forcedVolume": { - "message": "Forzar volumen" - }, - "foundABug": { - "message": "Encontraste un bug?" - }, - "fullWindow": { - "message": "Pantalla completa" - }, - "general": { - "message": "General" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Ir a barra de búsqueda" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura HD" - }, - "hdThumbnails": { - "message": "Miniaturas HD" - }, - "header": { - "message": "Encabezado" - }, - "hidden": { - "message": "Oculto" - }, - "hiddenOnVideoPage": { - "message": "Oculto en la página de video" - }, - "hideAnimatedThumbnails": { - "message": "Ocultar miniaturas animadas" - }, - "hideAnnotations": { - "message": "Ocultar anotaciones" - }, - "hideCards": { - "message": "Ocultar tarjetas" - }, - "hideDetails": { - "message": "Ocultar detalles" - }, - "hideEndscreen": { - "message": "Ocultar pantalla final" - }, - "hideFeaturedContent": { - "message": "Ocultar contenido destacado" - }, - "hideFooter": { - "message": "Ocultar pie de página" - }, - "hidePlaylist": { - "message": "Ocultar playlist" - }, - "hideRightButtons": { - "message": "Ocultar botones a la derecha" - }, - "hideScrollForDetails": { - "message": "Ocultar «Desliza hacia abajo para ver mas detalles»" - }, - "hideViewsCount": { - "message": "Ocultar contador de visitas" - }, - "history": { - "message": "Historial" - }, - "home": { - "message": "Inicio" - }, - "hover": { - "message": "Cursor sobre" - }, - "hoverOnVideoPage": { - "message": "Cursor sobre la página de video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Hace cuánto tiempo se subió el video" - }, - "icons": { - "message": "Iconos" - }, - "iconsOnly": { - "message": "Solo iconos" - }, - "importSettings": { - "message": "Importar configuración" - }, - "improveLogo": { - "message": "Mejorar logo de YouTube" - }, - "improvedtubeIconInBrowser": { - "message": "Icono ImprovedTube en navegador" - }, - "improvedtubeIconOnYoutube": { - "message": "Icono ImprovedTube en YouTube" - }, - "improvedtubeLanguage": { - "message": "Idioma ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Version ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Aumentar velocidad de reproducción" - }, - "increaseVolume": { - "message": "Aumentar volumen" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Lenguajes" - }, - "legacyYoutube": { - "message": " YouTube antiguo" - }, - "light": { - "message": "Claro" - }, - "lightBlue": { - "message": "Azul claro" - }, - "lightGreen": { - "message": "Verde claro" - }, - "like": { - "message": "Like" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Lima" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Chat en directo" - }, - "liveChatType": { - "message": "Tipo de chat en directo" - }, - "loudnessNormalization": { - "message": "Permitir normalización de volumen" - }, - "markWatchedVideos": { - "message": "Marcar videos vistos" - }, - "mixer": { - "message": "Mezclador" - }, - "myColors": { - "message": "Mis colores" - }, - "name": { - "message": "Nombre" - }, - "nativeMiniPlayer": { - "message": "Mini reproductor nativo" - }, - "new": { - "message": "Nuevo" - }, - "nextVideo": { - "message": "Reproducir el siguiente video" - }, - "night": { - "message": "Noche" - }, - "noActiveFeatures": { - "message": "Sin características activas" - }, - "noOpenVideoTabs": { - "message": "Sin pestañas abiertas" - }, - "none": { - "message": "Ninguno" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Viejo" - }, - "onAllVideos": { - "message": "En todos los videos" - }, - "onSubscribedChannels": { - "message": "En canales suscritos" - }, - "onlyActiveOnYoutube": { - "message": "Solo activo en YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Solo una pestaña reproduciendo" - }, - "orange": { - "message": "Naranja" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Otro" - }, - "permissions": { - "message": "Permisos" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Plano" - }, - "platform": { - "message": "Plataforma" - }, - "playPause": { - "message": "Reproducir/pausar video" - }, - "playbackSpeed": { - "message": "Velocidad de reproducción" - }, - "player": { - "message": "Reproductor" - }, - "playerColor": { - "message": "Color del reproductor" - }, - "playerSize": { - "message": "Tamaño del reproductor" - }, - "playlist": { - "message": "Listas de reproducción" - }, - "playlists": { - "message": "Listas de reproducción" - }, - "popupPlayer": { - "message": "Reproductor emergente" - }, - "position": { - "message": "Posición" - }, - "pressAnyKeyOrScroll": { - "message": "Apretar una tecla o mover el mouse" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Apretar una tecla o mover la rueda del mouse" - }, - "previousVideo": { - "message": "Reproducir video anterior" - }, - "primaryColor": { - "message": "Color Primario" - }, - "purple": { - "message": "Violeta" - }, - "quality": { - "message": "Calidad" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Calificanos" - }, - "red": { - "message": "Rojo" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Vídeos relacionados" - }, - "removeRelatedSearchResults": { - "message": "Quitar resultados relacionados" - }, - "repeat": { - "message": "Repetir" - }, - "reset": { - "message": "Reset" - }, - "resetAllSettings": { - "message": "Restablecer todos los ajustes" - }, - "resetAllShortcuts": { - "message": "Restablecer todos los atajos" - }, - "reverse": { - "message": "Reversa" - }, - "rotate": { - "message": "Rotar" - }, - "save": { - "message": "Guardar" - }, - "saveAs": { - "message": "Guardar como" - }, - "schedule": { - "message": "Programar" - }, - "screen": { - "message": "Pantalla" - }, - "screenshot": { - "message": "Captura de pantalla" - }, - "search": { - "message": "Búsqueda" - }, - "searchBarOnly": { - "message": "Solo barra de búsqueda" - }, - "seekBackward10Seconds": { - "message": "Retroceder 10 segundos" - }, - "seekForward10Seconds": { - "message": "Adelantar 10 segundos" - }, - "settings": { - "message": "Ajustes" - }, - "settingsSuccessfullyImported": { - "message": "Ajustes importados correctamente" - }, - "shortcuts": { - "message": "Atajos" - }, - "showCardsOnMouseHover": { - "message": "Mostrar tarjetas al pasar el mouse" - }, - "showChannelVideosCount": { - "message": "Mostrar recuento de videos del canal" - }, - "shuffle": { - "message": "Al azar" - }, - "sidebar": { - "message": "Barra lateral" - }, - "spacebar": { - "message": "Espacio" - }, - "squaredUserImages": { - "message": "Fotos de perfil cuadradas" - }, - "static": { - "message": "Estatico" - }, - "step": { - "message": "Paso" - }, - "stop": { - "message": "Detener" - }, - "style": { - "message": "Estilo" - }, - "styles": { - "message": "Estilos" - }, - "subscriptions": { - "message": "Suscripciones" - }, - "subtitles": { - "message": "Permitir subtítulos" - }, - "sunset": { - "message": "Atardecer" - }, - "sunsetToSunrise": { - "message": "Atardecer al amanecer" - }, - "systemPeferenceDark": { - "message": "Según sistema: Oscuro" - }, - "systemPeferenceLight": { - "message": "Según sistema: Claro" - }, - "teal": { - "message": "Verde azulado" - }, - "textColor": { - "message": "Color de texto" - }, - "themes": { - "message": "Temas" - }, - "thisWillRemoveAllCookies": { - "message": "Esto borrará todas las cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Esto borrará todas las cookies de YouTube" - }, - "thisWillResetAllSettings": { - "message": "Esto restablecerá todos los ajustes" - }, - "thisWillResetAllShortcuts": { - "message": "Esto restablecerá todos los atajos" - }, - "thumbnails": { - "message": "Miniaturas" - }, - "timeFrom": { - "message": "Desde" - }, - "timeTo": { - "message": "Hasta" - }, - "todayAt": { - "message": "Hoy a las" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Reproducción automática del trailer" - }, - "translations": { - "message": "Traducciones" - }, - "transparentBackground": { - "message": "Fondo transparente" - }, - "trending": { - "message": "Tendencias" - }, - "tryToReloadThePage": { - "message": "Trata de recargar la página" - }, - "type": { - "message": "Tipo" - }, - "upNextAutoplay": { - "message": "Hasta la próxima reproducción automática" - }, - "use24HourFormat": { - "message": "Usar formato 24hs" - }, - "version": { - "message": "Versión" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La descripción del video se ampliará para obtener el nombre de la categoría." - }, - "videoFormats": { - "message": "Formatos de video " - }, - "videos": { - "message": "Videos" - }, - "volume": { - "message": "Volumen" - }, - "watchLater": { - "message": "Ver más tarde" - }, - "watchTime": { - "message": "Visualizaciones" - }, - "whenTabIsChanged": { - "message": "Cuando cambia de pestaña" - }, - "white": { - "message": "Blanco" - }, - "yellow": { - "message": "Amarillo" - }, - "youtubeHeaderLeft": { - "message": "Encabezado YouTube (izq)" - }, - "youtubeHeaderRight": { - "message": "Encabezado YouTube (der)" - }, - "youtubeHomePage": { - "message": "Página de inicio de YouTube" - }, - "youtubeLanguage": { - "message": "Idioma de YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limita calidad de video a 1080p para el codec h.264" - } -} + "about": { + "message": "Acerca de" + }, + "accept": { + "message": "Aceptar" + }, + "activate": { + "message": "Activar" + }, + "activateCaptions": { + "message": "Activar subtítulos" + }, + "activated": { + "message": "Activado" + }, + "activatedFeatures": { + "message": "Características activadas" + }, + "activateFullscreen": { + "message": "Activar pantalla completa" + }, + "activeFeatures": { + "message": "Activar características" + }, + "addScrollToTop": { + "message": "Añadir «Volver arriba»" + }, + "ads": { + "message": "Ads" + }, + "all": { + "message": "Todo" + }, + "allow": { + "message": "Permitir" + }, + "allow60fps": { + "message": "Permitir 60fps" + }, + "alwaysActive": { + "message": "Siempre activo" + }, + "alwaysShowProgressBar": { + "message": "Siempre mostrar barra de progreso" + }, + "amber": { + "message": "Ámbar" + }, + "analyzer": { + "message": "Analizador" + }, + "appearance": { + "message": "Apariencia" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formatos de audio" + }, + "auto": { + "message": "Automático" + }, + "autoFullscreen": { + "message": "Pantalla completa automática" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausar al cambiar de pestaña" + }, + "autoplay": { + "message": "Reproducción automática" + }, + "backupAndReset": { + "message": "Backup & reset" + }, + "baseOnSystemColorScheme": { + "message": "Según tema del sistema" + }, + "belowPlayer": { + "message": "Debajo del reproductor" + }, + "black": { + "message": "Negro" + }, + "blacklist": { + "message": "Lista negra" + }, + "blockAll": { + "message": "Bloquear todo" + }, + "blue": { + "message": "Azul" + }, + "blueGray": { + "message": "Gris azulado" + }, + "bluelight": { + "message": "Luz azul" + }, + "brown": { + "message": "Marrón" + }, + "browser": { + "message": "Navegador" + }, + "browserVersion": { + "message": "Version del navegador" + }, + "bubbles": { + "message": "Burbujas" + }, + "bug": { + "message": "Error (Bug)" + }, + "buttons": { + "message": "Botones" + }, + "cancel": { + "message": "Cancelar" + }, + "categories": { + "message": "Categorías" + }, + "channel": { + "message": "Canal" + }, + "channels": { + "message": "Canales" + }, + "clipboard": { + "message": "Portapapeles" + }, + "codecH264": { + "message": "Códec h.264" + }, + "collapsed": { + "message": "Compacto" + }, + "collapseOfSubscriptionSections": { + "message": "Compactar sección de suscripciones" + }, + "comments": { + "message": "Comentarios" + }, + "confirmationBeforeClosing": { + "message": "Confirmar antes de cerrar" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Núcleos" + }, + "cropChapterTitles": { + "message": "Recortar título de capítulos" + }, + "customCss": { + "message": "CSS personalizado" + }, + "customJs": { + "message": "JS personalizado" + }, + "customMiniPlayer": { + "message": "Mini-Reproductor personalizado" + }, + "cyan": { + "message": "Cian" + }, + "dark": { + "message": "Oscuro" + }, + "darkTheme": { + "message": "Tema oscuro" + }, + "dateAndTime": { + "message": "Fecha y hora" + }, + "dawn": { + "message": "Amanecer" + }, + "decreasePlaybackSpeed": { + "message": "Disminuir velocidad de reproducción" + }, + "decreaseVolume": { + "message": "Bajar volumen" + }, + "deepOrange": { + "message": "Naranja profundo" + }, + "deepPurple": { + "message": "Violeta profundo" + }, + "defaultChannelTab": { + "message": "Pestaña del canal por defecto" + }, + "deleteYoutubeCookies": { + "message": "Borrar cookies de YouTube" + }, + "description": { + "message": "Descripción" + }, + "desert": { + "message": "Desierto" + }, + "details": { + "message": "Detalles" + }, + "developerOptions": { + "message": "Opciones de desarrollador" + }, + "device": { + "message": "Dispositivo" + }, + "dim": { + "message": "Oscuro" + }, + "disabled": { + "message": "Desactivado" + }, + "dislike": { + "message": "Dislike" + }, + "donate": { + "message": "Donar" + }, + "doNotChange": { + "message": "No cambiar" + }, + "draggable": { + "message": "Arrastrable" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Vacío" + }, + "enabled": { + "message": "Activado" + }, + "enabledForced": { + "message": "Activado (forzado)" + }, + "expanded": { + "message": "Expandido" + }, + "exportSettings": { + "message": "Exportar configuración" + }, + "extension": { + "message": "Extensión" + }, + "file": { + "message": "Archivo" + }, + "filters": { + "message": "Filtros" + }, + "fitToWindow": { + "message": "Ajustar a la ventana" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Fuente" + }, + "footer": { + "message": "Pie" + }, + "forcedPlaybackSpeed": { + "message": "Forzar velocidad de reproducción" + }, + "forcedTheaterMode": { + "message": "Forzar modo teatro" + }, + "forcedVolume": { + "message": "Forzar volumen" + }, + "foundABug": { + "message": "¿Encontraste un error (bug)?" + }, + "fullWindow": { + "message": "Pantalla completa" + }, + "general": { + "message": "General" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Ir a barra de búsqueda" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hdThumbnail": { + "message": "Miniatura HD" + }, + "hdThumbnails": { + "message": "Miniaturas HD" + }, + "header": { + "message": "Encabezado" + }, + "hidden": { + "message": "Oculto" + }, + "hiddenOnVideoPage": { + "message": "Oculto en la página de video" + }, + "hideAnimatedThumbnails": { + "message": "Ocultar miniaturas animadas" + }, + "hideAnnotations": { + "message": "Ocultar anotaciones" + }, + "hideCards": { + "message": "Ocultar tarjetas" + }, + "hideDetails": { + "message": "Ocultar detalles" + }, + "hideEndscreen": { + "message": "Ocultar pantalla final" + }, + "hideFeaturedContent": { + "message": "Ocultar contenido destacado" + }, + "hideFooter": { + "message": "Ocultar pie de página" + }, + "hideGradientBottom": { + "message": "Ocultar parte inferior degradada" + }, + "hidePlaylist": { + "message": "Ocultar playlist" + }, + "hideRightButtons": { + "message": "Ocultar botones de la derecha" + }, + "hideScrollForDetails": { + "message": "Ocultar «Desliza hacia abajo para ver más detalles»" + }, + "hideViewsCount": { + "message": "Ocultar contador de visitas" + }, + "history": { + "message": "Historial" + }, + "home": { + "message": "Inicio" + }, + "hover": { + "message": "Cursor sobre (hover)" + }, + "hoverOnVideoPage": { + "message": "Cursor sobre (hover) en página de video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Hace cuánto tiempo se subió el video" + }, + "icons": { + "message": "Iconos" + }, + "iconsOnly": { + "message": "Solo iconos" + }, + "importSettings": { + "message": "Importar configuración" + }, + "improvedtubeIconInBrowser": { + "message": "Icono ImprovedTube en el navegador" + }, + "improvedtubeIconOnYoutube": { + "message": "Icono ImprovedTube en YouTube" + }, + "improvedtubeLanguage": { + "message": "Idioma de ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Version de ImprovedTube" + }, + "improveLogo": { + "message": "Mejorar logo" + }, + "increasePlaybackSpeed": { + "message": "Aumentar velocidad de reproducción" + }, + "increaseVolume": { + "message": "Subir volumen" + }, + "indigo": { + "message": "Índigo" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "Idiomas" + }, + "legacyYoutube": { + "message": " YouTube antiguo" + }, + "light": { + "message": "Claro" + }, + "lightBlue": { + "message": "Azul claro" + }, + "lightGreen": { + "message": "Verde claro" + }, + "like": { + "message": "Like" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Lima" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Chat en directo" + }, + "liveChatType": { + "message": "Tipo de chat en directo" + }, + "loudnessNormalization": { + "message": "Normalización de volumen" + }, + "markWatchedVideos": { + "message": "Marcar videos vistos" + }, + "mixer": { + "message": "Mezclador" + }, + "myColors": { + "message": "Mis colores" + }, + "name": { + "message": "Nombre" + }, + "nativeMiniPlayer": { + "message": "Mini-Reproductor nativo" + }, + "new": { + "message": "Nuevo" + }, + "nextVideo": { + "message": "Siguiente video" + }, + "night": { + "message": "Noche" + }, + "noActiveFeatures": { + "message": "Sin características activas" + }, + "none": { + "message": "Ninguno" + }, + "noOpenVideoTabs": { + "message": "Sin pestañas de video abiertas" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Viejo" + }, + "onAllVideos": { + "message": "En todos los videos" + }, + "onlyActiveOnYoutube": { + "message": "Solo activo en YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Solo una pestaña reproduciendo" + }, + "onSubscribedChannels": { + "message": "En canales suscritos" + }, + "orange": { + "message": "Naranja" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Otro" + }, + "permissions": { + "message": "Permisos" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Plano" + }, + "platform": { + "message": "Plataforma" + }, + "playbackSpeed": { + "message": "Velocidad de reproducción" + }, + "player": { + "message": "Reproductor" + }, + "playerColor": { + "message": "Color del reproductor" + }, + "playerSize": { + "message": "Tamaño del reproductor" + }, + "playlist": { + "message": "Lista de reproducción" + }, + "playlists": { + "message": "Listas de reproducción" + }, + "playPause": { + "message": "Reproducir / pausar" + }, + "popupPlayer": { + "message": "Reproductor emergente" + }, + "position": { + "message": "Posición" + }, + "pressAnyKeyOrScroll": { + "message": "Aprieta una tecla o haz scroll" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Aprieta una tecla o usa la rueda del ratón" + }, + "previousVideo": { + "message": "Reproducir video anterior" + }, + "primaryColor": { + "message": "Color Primario" + }, + "purple": { + "message": "Morado" + }, + "quality": { + "message": "Calidad" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Califíquenos" + }, + "red": { + "message": "Rojo" + }, + "redDislikeButton": { + "message": "Mostrar el botón de dislike de color rojo" + }, + "relatedVideos": { + "message": "Vídeos relacionados" + }, + "removeRelatedSearchResults": { + "message": "Quitar resultados relacionados" + }, + "repeat": { + "message": "Repetir" + }, + "reset": { + "message": "Reiniciar" + }, + "resetAllSettings": { + "message": "Restablecer todos los ajustes" + }, + "resetAllShortcuts": { + "message": "Restablecer todos los atajos" + }, + "reverse": { + "message": "Revertir" + }, + "rotate": { + "message": "Rotar" + }, + "save": { + "message": "Guardar" + }, + "saveAs": { + "message": "Guardar como" + }, + "schedule": { + "message": "Programar" + }, + "screen": { + "message": "Pantalla" + }, + "screenshot": { + "message": "Captura de pantalla" + }, + "search": { + "message": "Búsqueda" + }, + "searchBarOnly": { + "message": "Solo barra de búsqueda" + }, + "seekBackward10Seconds": { + "message": "Retroceder 10 segundos" + }, + "seekForward10Seconds": { + "message": "Adelantar 10 segundos" + }, + "settings": { + "message": "Ajustes" + }, + "settingsSuccessfullyImported": { + "message": "Ajustes importados correctamente" + }, + "shortcuts": { + "message": "Atajos" + }, + "showCardsOnMouseHover": { + "message": "Mostrar tarjetas al pasar el ratón" + }, + "showChannelVideosCount": { + "message": "Mostrar recuento de videos del canal" + }, + "shuffle": { + "message": "Aleatorio" + }, + "sidebar": { + "message": "Barra lateral" + }, + "spacebar": { + "message": "Espacio" + }, + "squaredUserImages": { + "message": "Fotos de perfil cuadradas" + }, + "static": { + "message": "Estático" + }, + "statsForNerds": { + "message": "Mostrar estadísticas para Nerds" + }, + "step": { + "message": "Paso" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Estilo" + }, + "styles": { + "message": "Estilos" + }, + "subscriptions": { + "message": "Suscripciones" + }, + "subtitles": { + "message": "Subtítulos" + }, + "sunset": { + "message": "Atardecer" + }, + "sunsetToSunrise": { + "message": "De atardecer a amanecer" + }, + "systemPeferenceDark": { + "message": "Preferencia del sistema: Oscuro" + }, + "systemPeferenceLight": { + "message": "Preferencia del sistema: Claro" + }, + "teal": { + "message": "Verde azulado" + }, + "textColor": { + "message": "Color del texto" + }, + "themes": { + "message": "Temas" + }, + "thisWillRemoveAllCookies": { + "message": "Esto borrará todas las cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Esto borrará todas las cookies de YouTube" + }, + "thisWillResetAllSettings": { + "message": "Esto restablecerá todos los ajustes" + }, + "thisWillResetAllShortcuts": { + "message": "Esto restablecerá todos los atajos" + }, + "thumbnails": { + "message": "Miniaturas" + }, + "timeFrom": { + "message": "Desde" + }, + "timeTo": { + "message": "Hasta" + }, + "todayAt": { + "message": "Hoy a las" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Reproducción automática de trailer" + }, + "translations": { + "message": "Traducciones" + }, + "transparentBackground": { + "message": "Fondo transparente" + }, + "trending": { + "message": "Tendencias" + }, + "tryToReloadThePage": { + "message": "Trata de recargar la página" + }, + "type": { + "message": "Tipo" + }, + "upNextAutoplay": { + "message": "Siguiente reproducción automática" + }, + "use24HourFormat": { + "message": "Usar formato 24 horas" + }, + "version": { + "message": "Versión" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "La descripción del video se expandirá para obtener el nombre de la categoría." + }, + "videoFormats": { + "message": "Formatos de video" + }, + "videos": { + "message": "Videos" + }, + "volume": { + "message": "Volumen" + }, + "watchLater": { + "message": "Ver más tarde" + }, + "watchTime": { + "message": "Visualizaciones" + }, + "whenTabIsChanged": { + "message": "Al cambiar de pestaña" + }, + "white": { + "message": "Blanco" + }, + "yellow": { + "message": "Amarillo" + }, + "youtubeHeaderLeft": { + "message": "Encabezado YouTube (izq)" + }, + "youtubeHeaderRight": { + "message": "Encabezado YouTube (der)" + }, + "youtubeHomePage": { + "message": "Página de inicio de YouTube" + }, + "youtubeLanguage": { + "message": "Idioma de YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limita calidad de video a 1080p para el codec h.264" + } +} \ No newline at end of file diff --git a/stable/_locales/fr/messages.json b/stable/_locales/fr/messages.json index e0d23aa61..76019e5f4 100644 --- a/stable/_locales/fr/messages.json +++ b/stable/_locales/fr/messages.json @@ -1,800 +1,809 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "À propos" - }, - "accept": { - "message": "Accept" - }, - "activate": { - "message": "Activate" - }, - "activateCaptions": { - "message": "Activate captions" - }, - "activateFullscreen": { - "message": "Activate fullscreen" - }, - "activated": { - "message": "Activated" - }, - "activatedFeatures": { - "message": "Activated features" - }, - "activeFeatures": { - "message": "Active features" - }, - "addScrollToTop": { - "message": "Add «Scroll to top»" - }, - "ads": { - "message": "Ads" - }, - "all": { - "message": "All" - }, - "allow": { - "message": "Allow" - }, - "allow60fps": { - "message": "Permettre 60fps" - }, - "alwaysActive": { - "message": "Toujour Allumer" - }, - "alwaysShowProgressBar": { - "message": "Always show progress bar" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analyzer" - }, - "appearance": { - "message": "Apparence" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio formats" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-plein écran" - }, - "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" - }, - "autoplay": { - "message": "Lecture automatique" - }, - "backupAndReset": { - "message": "Sauvegarde & Réinitialiser" - }, - "baseOnSystemColorScheme": { - "message": "Base on system color scheme" - }, - "belowPlayer": { - "message": "Below player" - }, - "black": { - "message": "Black" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "Block all" - }, - "blue": { - "message": "Blue" - }, - "blueGray": { - "message": "Blue gray" - }, - "bluelight": { - "message": "Lumière bleue" - }, - "brown": { - "message": "Brown" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser version" - }, - "bubbles": { - "message": "Bubbles" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Buttons" - }, - "cancel": { - "message": "Cancel" - }, - "categories": { - "message": "Categories" - }, - "channel": { - "message": "chaîne" - }, - "channels": { - "message": "chaînes" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" - }, - "collapsed": { - "message": "Collapsed" - }, - "comments": { - "message": "Comments" - }, - "confirmationBeforeClosing": { - "message": "Confirmation before closing" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Custom JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Dark" - }, - "darkTheme": { - "message": "Dark theme" - }, - "dateAndTime": { - "message": "Date & time" - }, - "dawn": { - "message": "Dawn" - }, - "decreasePlaybackSpeed": { - "message": "Decrease playback speed" - }, - "decreaseVolume": { - "message": "Decrease volume" - }, - "deepOrange": { - "message": "Deep orange" - }, - "deepPurple": { - "message": "Deep purple" - }, - "defaultChannelTab": { - "message": "Onglet d'accueil d'une chaîne" - }, - "deleteYoutubeCookies": { - "message": "Supprimer les cookies YouTube" - }, - "description": { - "message": "Description" - }, - "desert": { - "message": "Desert" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Developer options" - }, - "device": { - "message": "Device" - }, - "dim": { - "message": "Assombrir" - }, - "disabled": { - "message": "Désactivé" - }, - "dislike": { - "message": "Dislike" - }, - "doNotChange": { - "message": "Ne pas changez" - }, - "donate": { - "message": "Donate" - }, - "draggable": { - "message": "Draggable" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Empty" - }, - "enabled": { - "message": "Activé" - }, - "enabledForced": { - "message": "Enabled (forced)" - }, - "expanded": { - "message": "Expanded" - }, - "exportSettings": { - "message": "Exporter réglages" - }, - "extension": { - "message": "Extension" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filters" - }, - "fitToWindow": { - "message": "Fit to window" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Footer" - }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, - "forcedTheaterMode": { - "message": "Forced theater mode" - }, - "forcedVolume": { - "message": "Forced volume" - }, - "foundABug": { - "message": "Found a bug?" - }, - "fullWindow": { - "message": "Full window" - }, - "general": { - "message": "Général" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Go to search box" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Green" - }, - "hdThumbnail": { - "message": "HD thumbnail" - }, - "hdThumbnails": { - "message": "HD vignettes" - }, - "header": { - "message": "Header" - }, - "hidden": { - "message": "Hidden" - }, - "hiddenOnVideoPage": { - "message": "Hidden on video page" - }, - "hideAnimatedThumbnails": { - "message": "Vignettes sans animation" - }, - "hideAnnotations": { - "message": "Hide annotations" - }, - "hideCards": { - "message": "Hide cards" - }, - "hideDetails": { - "message": "Hide details" - }, - "hideEndscreen": { - "message": "Hide endscreen" - }, - "hideFeaturedContent": { - "message": "Hide featured content" - }, - "hideFooter": { - "message": "Hide footer" - }, - "hidePlaylist": { - "message": "Hide playlist" - }, - "hideRightButtons": { - "message": "Hide right buttons" - }, - "hideScrollForDetails": { - "message": "Hide «Scroll for details»" - }, - "hideViewsCount": { - "message": "Hide views count" - }, - "history": { - "message": "Historique" - }, - "home": { - "message": "Accueil" - }, - "hover": { - "message": "Hover" - }, - "hoverOnVideoPage": { - "message": "Hover on video page" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" - }, - "icons": { - "message": "Icons" - }, - "iconsOnly": { - "message": "Icons only" - }, - "importSettings": { - "message": "Importer réglages" - }, - "improveLogo": { - "message": "Improve logo" - }, - "improvedtubeIconInBrowser": { - "message": "Icône ImprovedTube dans le navigateur" - }, - "improvedtubeIconOnYoutube": { - "message": "Icône ImprovedTube sur YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube language" - }, - "improvedtubeVersion": { - "message": "ImprovedTube version" - }, - "increasePlaybackSpeed": { - "message": "Increase playback speed" - }, - "increaseVolume": { - "message": "Increase volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Languages" - }, - "legacyYoutube": { - "message": "Legacy YouTube" - }, - "light": { - "message": "Light" - }, - "lightBlue": { - "message": "Light blue" - }, - "lightGreen": { - "message": "Light green" - }, - "like": { - "message": "Like" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Lime" - }, - "list": { - "message": "List" - }, - "liveChat": { - "message": "Live chat" - }, - "liveChatType": { - "message": "Live chat type" - }, - "loudnessNormalization": { - "message": "Loudness normalization" - }, - "markWatchedVideos": { - "message": "Mark watched videos" - }, - "mixer": { - "message": "Mélangeur de volume" - }, - "myColors": { - "message": "My colors" - }, - "name": { - "message": "Name" - }, - "nativeMiniPlayer": { - "message": "Native mini player" - }, - "new": { - "message": "New" - }, - "nextVideo": { - "message": "Next video" - }, - "night": { - "message": "Night" - }, - "noActiveFeatures": { - "message": "No active features" - }, - "noOpenVideoTabs": { - "message": "No open video tabs" - }, - "none": { - "message": "None" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Old" - }, - "onAllVideos": { - "message": "On all videos" - }, - "onSubscribedChannels": { - "message": "On subscribed channels" - }, - "onlyActiveOnYoutube": { - "message": "Allumer uniquement sur YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Other" - }, - "permissions": { - "message": "Permissions" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Pink" - }, - "plain": { - "message": "Plain" - }, - "platform": { - "message": "Platform" - }, - "playPause": { - "message": "Play / Pause" - }, - "playbackSpeed": { - "message": "Vitesse de lecture" - }, - "player": { - "message": "Lecteur" - }, - "playerColor": { - "message": "Couleur du lecteur" - }, - "playerSize": { - "message": "Player size" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "popupPlayer": { - "message": "Détacher le lecteur" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Press any key or use mouse wheel." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Press any key or use mouse wheel" - }, - "previousVideo": { - "message": "Previous video" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "Purple" - }, - "quality": { - "message": "Quality" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Rate us" - }, - "red": { - "message": "Red" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Related videos" - }, - "removeRelatedSearchResults": { - "message": "Remove related search results" - }, - "repeat": { - "message": "Lire en boucle" - }, - "reset": { - "message": "Reset" - }, - "resetAllSettings": { - "message": "Réinitialiser réglages" - }, - "resetAllShortcuts": { - "message": "Reset all shortcuts" - }, - "reverse": { - "message": "Inverser" - }, - "rotate": { - "message": "Faire pivoté la video" - }, - "save": { - "message": "Save" - }, - "saveAs": { - "message": "Save as" - }, - "schedule": { - "message": "Planifier" - }, - "screen": { - "message": "Screen" - }, - "screenshot": { - "message": "Capture d'écran" - }, - "search": { - "message": "Search" - }, - "searchBarOnly": { - "message": "Search bar only" - }, - "seekBackward10Seconds": { - "message": "Seek backward 10 seconds" - }, - "seekForward10Seconds": { - "message": "Seek forward 10 seconds" - }, - "settings": { - "message": "Réglages" - }, - "settingsSuccessfullyImported": { - "message": "Settings successfully imported" - }, - "shortcuts": { - "message": "Raccourcis" - }, - "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" - }, - "showChannelVideosCount": { - "message": "Show channel videos count" - }, - "shuffle": { - "message": "Aléatoire" - }, - "sidebar": { - "message": "Sidebar" - }, - "spacebar": { - "message": "Spacebar" - }, - "squaredUserImages": { - "message": "Squared user images" - }, - "static": { - "message": "Static" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscriptions": { - "message": "Abonnements" - }, - "subtitles": { - "message": "Permettre sous-titres" - }, - "sunset": { - "message": "Sunset" - }, - "sunsetToSunrise": { - "message": "Sunset to sunrise" - }, - "systemPeferenceDark": { - "message": "System peference: dark" - }, - "systemPeferenceLight": { - "message": "System peference: light" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Text color" - }, - "themes": { - "message": "Thèmes" - }, - "thisWillRemoveAllCookies": { - "message": "This will remove all cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "This will remove all YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "This will reset all settings." - }, - "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" - }, - "thumbnails": { - "message": "Vignettes" - }, - "timeFrom": { - "message": "Time from" - }, - "timeTo": { - "message": "Time to" - }, - "todayAt": { - "message": "Today at" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Démarrage automatique des annonces" - }, - "translations": { - "message": "Translations" - }, - "transparentBackground": { - "message": "Transparent background" - }, - "trending": { - "message": "Tendances" - }, - "tryToReloadThePage": { - "message": "Try to reload the page" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "Cocher LECTURE AUTOMATIQUE" - }, - "use24HourFormat": { - "message": "Use 24-hour format" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" - }, - "videoFormats": { - "message": "Video formats" - }, - "videos": { - "message": "Videos" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "À regarder plus tard" - }, - "watchTime": { - "message": "Watch time" - }, - "whenTabIsChanged": { - "message": "When tab is changed" - }, - "white": { - "message": "White" - }, - "yellow": { - "message": "Yellow" - }, - "youtubeHeaderLeft": { - "message": "YouTube Header (left)" - }, - "youtubeHeaderRight": { - "message": "YouTube Header (right)" - }, - "youtubeHomePage": { - "message": "Page d'accueil YouTube" - }, - "youtubeLanguage": { - "message": "YouTube language" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limits video quality to 1080p for h.264 codec" - } -} + "about": { + "message": "À propos" + }, + "accept": { + "message": "Accepter" + }, + "activate": { + "message": "Activer" + }, + "activateCaptions": { + "message": "Activer les sous-titres" + }, + "activated": { + "message": "Activé" + }, + "activatedFeatures": { + "message": "Fonctionnalités activées" + }, + "activateFullscreen": { + "message": "Activer le plein écran" + }, + "activeFeatures": { + "message": "Fonctionnalités actives" + }, + "addScrollToTop": { + "message": "Ajouter « Remonter en haut »" + }, + "ads": { + "message": "Publicités" + }, + "all": { + "message": "Voir tout" + }, + "allow": { + "message": "Permettre" + }, + "allow60fps": { + "message": "Jouer à 60 fps" + }, + "alwaysActive": { + "message": "Toujours activé" + }, + "alwaysShowProgressBar": { + "message": "Toujours afficher la barre de progression" + }, + "amber": { + "message": "Ambre" + }, + "analyzer": { + "message": "Analyser" + }, + "appearance": { + "message": "Apparence" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formats de fichier audio" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Plein écran automatique" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pause automatique lors d'un changement d'onglet" + }, + "autoplay": { + "message": "Lecture automatique" + }, + "backupAndReset": { + "message": "Sauvegarde et réinitialisation" + }, + "baseOnSystemColorScheme": { + "message": "Selon les paramètres du système" + }, + "belowPlayer": { + "message": "Sous le player" + }, + "black": { + "message": "Noir" + }, + "blacklist": { + "message": "Liste noire" + }, + "blockAll": { + "message": "Tout bloquer" + }, + "blue": { + "message": "Bleu" + }, + "blueGray": { + "message": "Gris-bleu" + }, + "bluelight": { + "message": "Bleu pâle" + }, + "brown": { + "message": "Brun" + }, + "browser": { + "message": "Navigateur web" + }, + "browserVersion": { + "message": "Version du navigateur web" + }, + "bubbles": { + "message": "Bulles" + }, + "bug": { + "message": "Bogue" + }, + "buttons": { + "message": "Boutons" + }, + "cancel": { + "message": "Annuler" + }, + "categories": { + "message": "Catégories" + }, + "channel": { + "message": "Chaîne" + }, + "channels": { + "message": "Chaînes" + }, + "clipboard": { + "message": "Presse-papiers" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapsed": { + "message": "Réduire" + }, + "collapseOfSubscriptionSections": { + "message": "Réduire la section des abonnements" + }, + "comments": { + "message": "Commentaires" + }, + "confirmationBeforeClosing": { + "message": "Confirmation avant la fermeture" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Noyaux" + }, + "cropChapterTitles": { + "message": "Couper les titres des chapitres" + }, + "customCss": { + "message": "CSS customisé" + }, + "customJs": { + "message": "JS customisé" + }, + "customMiniPlayer": { + "message": "Mini-lecteur personnalisé" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Sombre" + }, + "darkTheme": { + "message": "Thème sombre" + }, + "dateAndTime": { + "message": "Date et temps" + }, + "dawn": { + "message": "Aube" + }, + "decreasePlaybackSpeed": { + "message": "Réduire la vitesse de lecture" + }, + "decreaseVolume": { + "message": "Réduire le volume" + }, + "deepOrange": { + "message": "Orange foncé" + }, + "deepPurple": { + "message": "Violet foncé" + }, + "defaultChannelTab": { + "message": "Onglet par défaut d'une chaîne" + }, + "deleteYoutubeCookies": { + "message": "Supprimer les cookies YouTube" + }, + "description": { + "message": "Description" + }, + "desert": { + "message": "Desert" + }, + "details": { + "message": "Détails" + }, + "developerOptions": { + "message": "Options de développeur" + }, + "device": { + "message": "Appareil" + }, + "dim": { + "message": "Assombrir" + }, + "disabled": { + "message": "Désactivé" + }, + "dislike": { + "message": "Je n'aime pas" + }, + "donate": { + "message": "Donner" + }, + "doNotChange": { + "message": "Ne pas changer" + }, + "draggable": { + "message": "Draggable" + }, + "email": { + "message": "Courriel" + }, + "empty": { + "message": "Vide" + }, + "enabled": { + "message": "Activé" + }, + "enabledForced": { + "message": "Activé (forcé)" + }, + "expanded": { + "message": "Étendu" + }, + "exportSettings": { + "message": "Exporter les réglages" + }, + "extension": { + "message": "Extension" + }, + "file": { + "message": "Fichier" + }, + "filters": { + "message": "Filtres" + }, + "fitToWindow": { + "message": "Ajuster à la fenêtre" + }, + "flash": { + "message": "Clignoter" + }, + "font": { + "message": "Police" + }, + "footer": { + "message": "Bas de page" + }, + "forcedPlaybackSpeed": { + "message": "Vitesse de lecture forcée" + }, + "forcedTheaterMode": { + "message": "Forcer le mode théâtre" + }, + "forcedVolume": { + "message": "Forcer le volume" + }, + "foundABug": { + "message": "Un bogue?" + }, + "fullWindow": { + "message": "Fenêtre pleine" + }, + "general": { + "message": "Général" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Aller à la barre de recherche" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Vert" + }, + "hdThumbnail": { + "message": "Vignette HD" + }, + "hdThumbnails": { + "message": "Vignettes HD" + }, + "header": { + "message": "Tête de page" + }, + "hidden": { + "message": "Caché" + }, + "hiddenOnVideoPage": { + "message": "Caché sur la page de la vidéo" + }, + "hideAnimatedThumbnails": { + "message": "Vignettes sans animation" + }, + "hideAnnotations": { + "message": "Cacher les annotations" + }, + "hideCards": { + "message": "Cacher les cartes" + }, + "hideDetails": { + "message": "Cacher les détails" + }, + "hideEndscreen": { + "message": "Cacher l'écran de fin" + }, + "hideFeaturedContent": { + "message": "Cacher le contenu recommandé" + }, + "hideFooter": { + "message": "Cacher le pied de page" + }, + "hideGradientBottom": { + "message": "Masquer le dégradé du bas" + }, + "hidePlaylist": { + "message": "Cacher la liste de lecture" + }, + "hideRightButtons": { + "message": "Cacher les boutons à droite" + }, + "hideScrollForDetails": { + "message": "Cacher « Faire défiler pour les détails »" + }, + "hideViewsCount": { + "message": "Voir le compte des vues" + }, + "history": { + "message": "Historique" + }, + "home": { + "message": "Accueil" + }, + "hover": { + "message": "Survoler" + }, + "hoverOnVideoPage": { + "message": "Survoler la page de la vidéo" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Depuis combien de temps la vidéo a été téléversé?" + }, + "icons": { + "message": "Icônes" + }, + "iconsOnly": { + "message": "Uniquement les icônes" + }, + "importSettings": { + "message": "Importer les réglages" + }, + "improvedtubeIconInBrowser": { + "message": "Afficher l'icône ImprovedTube dans le navigateur web" + }, + "improvedtubeIconOnYoutube": { + "message": "Afficher l'icône ImprovedTube sur YouTube" + }, + "improvedtubeLanguage": { + "message": "Langue d'ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Version d'ImprovedTube" + }, + "improveLogo": { + "message": "Améliorer le logo" + }, + "increasePlaybackSpeed": { + "message": "Accélérer la vitesse de lecture" + }, + "increaseVolume": { + "message": "Augmenter le volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Objets" + }, + "languages": { + "message": "Langues" + }, + "legacyYoutube": { + "message": "Ancienne version de Youtube" + }, + "light": { + "message": "Clair" + }, + "lightBlue": { + "message": "Bleu clair" + }, + "lightGreen": { + "message": "Vert clair" + }, + "like": { + "message": "J'aime" + }, + "likes": { + "message": "J'aime" + }, + "lime": { + "message": "Citron vert" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Chat en direct" + }, + "liveChatType": { + "message": "Type de chat en direct" + }, + "loudnessNormalization": { + "message": "Normalisation de l'intensité sonore" + }, + "markWatchedVideos": { + "message": "Marquer les vidéos déjà visionnées" + }, + "mixer": { + "message": "Mélangeur de volume" + }, + "myColors": { + "message": "Mes couleurs" + }, + "name": { + "message": "Nom" + }, + "nativeMiniPlayer": { + "message": "Mini-lecteur natif" + }, + "new": { + "message": "Nouveau" + }, + "nextVideo": { + "message": "Prochaine vidéo" + }, + "night": { + "message": "Nuit" + }, + "noActiveFeatures": { + "message": "Pas de fonctionalité active" + }, + "none": { + "message": "Aucun" + }, + "noOpenVideoTabs": { + "message": "Aucun onglet de vidéo ouvert" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Vieux" + }, + "onAllVideos": { + "message": "Pour toutes les vidéos" + }, + "onlyActiveOnYoutube": { + "message": "Uniquement actif sur YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Une seule instance à la fois" + }, + "onSubscribedChannels": { + "message": "Sur les chaînes auxquelles je suis abonné" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Autres" + }, + "permissions": { + "message": "Permissions" + }, + "pictureInPicture": { + "message": "Image dans l'image" + }, + "pink": { + "message": "Rose" + }, + "plain": { + "message": "Ordinaire" + }, + "platform": { + "message": "Platforme" + }, + "playbackSpeed": { + "message": "Vitesse de lecture" + }, + "player": { + "message": "Lecteur" + }, + "playerColor": { + "message": "Couleur du lecteur" + }, + "playerSize": { + "message": "Taille du lecteur" + }, + "playlist": { + "message": "Liste de lecture" + }, + "playlists": { + "message": "Listes de lecture" + }, + "playPause": { + "message": "Jouer / Pause" + }, + "popupPlayer": { + "message": "Détacher le lecteur" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." + }, + "previousVideo": { + "message": "Vidéo précédente" + }, + "primaryColor": { + "message": "Couleur primaire" + }, + "purple": { + "message": "Violet" + }, + "quality": { + "message": "Qualité" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Nous évaluer" + }, + "red": { + "message": "Rouge" + }, + "redDislikeButton": { + "message": "Afficher la couleur rouge du bouton Je n'aime pas" + }, + "relatedVideos": { + "message": "Vidéos associés" + }, + "removeRelatedSearchResults": { + "message": "Supprimer les résultats de recherche associés" + }, + "repeat": { + "message": "Lire en boucle" + }, + "reset": { + "message": "Réintialiser" + }, + "resetAllSettings": { + "message": "Réinitialiser les réglages" + }, + "resetAllShortcuts": { + "message": "Réinitialiser les raccourcis" + }, + "reverse": { + "message": "Inverser" + }, + "rotate": { + "message": "Faire pivoter la vidéo" + }, + "save": { + "message": "Sauvegarder" + }, + "saveAs": { + "message": "Sauvegarder sous" + }, + "schedule": { + "message": "Planifier" + }, + "screen": { + "message": "Écran" + }, + "screenshot": { + "message": "Capture d'écran" + }, + "search": { + "message": "Rechercher" + }, + "searchBarOnly": { + "message": "Uniquement la barre de recherche" + }, + "seekBackward10Seconds": { + "message": "Reculer de 10 secondes" + }, + "seekForward10Seconds": { + "message": "Avancer de 10 secondes" + }, + "settings": { + "message": "Réglages" + }, + "settingsSuccessfullyImported": { + "message": "Importation des réglages réussie" + }, + "shortcuts": { + "message": "Raccourcis" + }, + "showCardsOnMouseHover": { + "message": "Afficher les cartes au survol de la souris" + }, + "showChannelVideosCount": { + "message": "Afficher le nombre de vidéos de la chaîne" + }, + "shuffle": { + "message": "Aléatoire" + }, + "sidebar": { + "message": "Barre latérale" + }, + "spacebar": { + "message": "Barre d'espace" + }, + "squaredUserImages": { + "message": "Images des utilisateurs carrées" + }, + "static": { + "message": "Statique" + }, + "statsForNerds": { + "message": "Statistiques pour nerd" + }, + "step": { + "message": "Étape" + }, + "stop": { + "message": "Arrêter" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscriptions": { + "message": "Abonnements" + }, + "subtitles": { + "message": "Activer les sous-titres" + }, + "sunset": { + "message": "Coucher de soleil" + }, + "sunsetToSunrise": { + "message": "Du coucher au lever du Soleil" + }, + "systemPeferenceDark": { + "message": "Préférence système : sombre" + }, + "systemPeferenceLight": { + "message": "Préférence système : clair" + }, + "teal": { + "message": "Sarcelle" + }, + "textColor": { + "message": "Couleur du texte" + }, + "themes": { + "message": "Thèmes" + }, + "thisWillRemoveAllCookies": { + "message": "Supprimer tous les cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Supprimer tous les cookies Youtube." + }, + "thisWillResetAllSettings": { + "message": "Réintialiser les réglages." + }, + "thisWillResetAllShortcuts": { + "message": "Réintialiser les raccourcis." + }, + "thumbnails": { + "message": "Vignettes" + }, + "timeFrom": { + "message": "Temps de" + }, + "timeTo": { + "message": "Temps au" + }, + "todayAt": { + "message": "Aujourd'hui à" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Démarrage automatique des annonces" + }, + "translations": { + "message": "Traductions" + }, + "transparentBackground": { + "message": "Arrière-plan transparent" + }, + "trending": { + "message": "Tendances" + }, + "tryToReloadThePage": { + "message": "Essayez de rafraîchir la page" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Prochaine lecture automatique" + }, + "use24HourFormat": { + "message": "Utiliser le format 24 h" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Vidéo" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "La description de la vidéo sera développée pour obtenir le nom de la catégorie" + }, + "videoFormats": { + "message": "Formats de vidéo" + }, + "videos": { + "message": "Videos" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "À regarder plus tard" + }, + "watchTime": { + "message": "Temps de visionnage" + }, + "whenTabIsChanged": { + "message": "Quand l'onglet change" + }, + "white": { + "message": "Blanc" + }, + "yellow": { + "message": "Jaune" + }, + "youtubeHeaderLeft": { + "message": "En-tête YouTube (à gauche)" + }, + "youtubeHeaderRight": { + "message": "En-tête YouTube (à droite)" + }, + "youtubeHomePage": { + "message": "Page d'accueil de YouTube" + }, + "youtubeLanguage": { + "message": "Langue de YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limite la qualité vidéo à 1080p pour le codec h.264" + } +} \ No newline at end of file diff --git a/stable/_locales/hin/messages.json b/stable/_locales/hin/messages.json new file mode 100644 index 000000000..633e8f335 --- /dev/null +++ b/stable/_locales/hin/messages.json @@ -0,0 +1,809 @@ +{ + "about": { + "message": "के बारे में" + }, + "accept": { + "message": "स्वीकार" + }, + "activate": { + "message": "सक्रिय" + }, + "activateCaptions": { + "message": "कैप्शन सक्रिय करें" + }, + "activated": { + "message": "सक्रिय" + }, + "activatedFeatures": { + "message": "सक्रिय विशेषताएं" + }, + "activateFullscreen": { + "message": "पूर्णस्क्रीन सक्रिय करें" + }, + "activeFeatures": { + "message": "सक्रिय विशेषताएं" + }, + "addScrollToTop": { + "message": "«शीर्ष पर स्क्रॉल करें» जोड़ें" + }, + "ads": { + "message": "विज्ञापन" + }, + "all": { + "message": "सब" + }, + "allow": { + "message": "अनुमति" + }, + "allow60fps": { + "message": "60fps की अनुमति दें" + }, + "alwaysActive": { + "message": "हमेशा सक्रिय" + }, + "alwaysShowProgressBar": { + "message": "हमेशा प्रगति बार दिखाएं" + }, + "amber": { + "message": "अंबर" + }, + "analyzer": { + "message": "विश्लेषक" + }, + "appearance": { + "message": "दिखावट" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "ऑडियो" + }, + "audioFormats": { + "message": "ऑडियो प्रारूप" + }, + "auto": { + "message": "खुद ब खुद" + }, + "autoFullscreen": { + "message": "स्वत: पूर्ण स्क्रीन" + }, + "autopauseWhenSwitchingTabs": { + "message": "टैब स्विच करते समय ऑटोपॉज" + }, + "autoplay": { + "message": "स्वत: प्ले" + }, + "backupAndReset": { + "message": "बैकअप पुनर्स्थापित करना" + }, + "baseOnSystemColorScheme": { + "message": "सिस्टम रंग योजना के आधार पर" + }, + "belowPlayer": { + "message": "प्लेयर के नीचे" + }, + "black": { + "message": "काला" + }, + "blacklist": { + "message": "काला सूची में डालना" + }, + "blockAll": { + "message": "सभी को अवरोधित करें" + }, + "blue": { + "message": "नीला" + }, + "blueGray": { + "message": "नीला स्लेटी" + }, + "bluelight": { + "message": "नीली बत्ती" + }, + "brown": { + "message": "भूरा" + }, + "browser": { + "message": "ब्राउज़र" + }, + "browserVersion": { + "message": "ब्राउज़र संस्करण" + }, + "bubbles": { + "message": "बुलबुले" + }, + "bug": { + "message": "बग" + }, + "buttons": { + "message": "बटन" + }, + "cancel": { + "message": "रद्द" + }, + "categories": { + "message": "श्रेणियाँ" + }, + "channel": { + "message": "चैनल" + }, + "channels": { + "message": "चैनल" + }, + "clipboard": { + "message": "क्लिपबोर्ड" + }, + "codecH264": { + "message": "कोडक ज 64२६४ 64" + }, + "collapsed": { + "message": "संक्षिप्त" + }, + "collapseOfSubscriptionSections": { + "message": "सदस्यता वर्गों का पतन" + }, + "comments": { + "message": "टिप्पणियाँ" + }, + "confirmationBeforeClosing": { + "message": "बंद करने से पहले पुष्टि" + }, + "cookies": { + "message": "कुकीज़" + }, + "cores": { + "message": "कोर" + }, + "cropChapterTitles": { + "message": "फसल अध्याय के शीर्षक" + }, + "customCss": { + "message": "कस्टम सीएसएस" + }, + "customJs": { + "message": "कस्टम जेएस" + }, + "customMiniPlayer": { + "message": "कस्टम मिनी प्लेयर" + }, + "cyan": { + "message": "सियान" + }, + "dark": { + "message": "अंधेरा" + }, + "darkTheme": { + "message": "डार्क थीम" + }, + "dateAndTime": { + "message": "दिनांक और समय" + }, + "dawn": { + "message": "भोर" + }, + "decreasePlaybackSpeed": { + "message": "पार्श्व गति में कमी" + }, + "decreaseVolume": { + "message": "ध्वनि कम" + }, + "deepOrange": { + "message": "गहरा नारंगी" + }, + "deepPurple": { + "message": "गहरा बैंगनी" + }, + "defaultChannelTab": { + "message": "डिफ़ॉल्ट चैनल टैब" + }, + "deleteYoutubeCookies": { + "message": "यूट्यूब कुकीज़ हटाएं" + }, + "description": { + "message": "विवरण" + }, + "desert": { + "message": "रेगिस्तान" + }, + "details": { + "message": "विवरण" + }, + "developerOptions": { + "message": "डेवलपर विकल्प" + }, + "device": { + "message": "युक्ति" + }, + "dim": { + "message": "मंद" + }, + "disabled": { + "message": "विकलांग" + }, + "dislike": { + "message": "नापसन्द" + }, + "donate": { + "message": "दान" + }, + "doNotChange": { + "message": "मत बदलो" + }, + "draggable": { + "message": "खींचने योग्य" + }, + "email": { + "message": "ईमेल" + }, + "empty": { + "message": "खाली" + }, + "enabled": { + "message": "सक्रिय" + }, + "enabledForced": { + "message": "सक्रिय(मजबूर)" + }, + "expanded": { + "message": "विस्तारित" + }, + "exportSettings": { + "message": "निर्यात सेटिंग्स" + }, + "extension": { + "message": "एक्सटेंशन" + }, + "file": { + "message": "फ़ाइल" + }, + "filters": { + "message": "फिल्टर" + }, + "fitToWindow": { + "message": "स्क्रीन फिट" + }, + "flash": { + "message": "चमक" + }, + "font": { + "message": "फ़ॉन्ट" + }, + "footer": { + "message": "पाद लेख" + }, + "forcedPlaybackSpeed": { + "message": "जबरन पार्श्व गति" + }, + "forcedTheaterMode": { + "message": "जबरन थिएटर मोड" + }, + "forcedVolume": { + "message": "जबरन ध्वनि" + }, + "foundABug": { + "message": "बग मिला?" + }, + "fullWindow": { + "message": "पूर्ण स्क्रीन" + }, + "general": { + "message": "सामान्य" + }, + "github": { + "message": "गिटहब" + }, + "goToSearchBox": { + "message": "सर्च बॉक्स पर जाएं" + }, + "gpu": { + "message": "जी पी यू" + }, + "green": { + "message": "हरा" + }, + "hdThumbnail": { + "message": "एच डी थंबनेल" + }, + "hdThumbnails": { + "message": "एच डी थंबनेल" + }, + "header": { + "message": "हैडर" + }, + "hidden": { + "message": "छिपा हुआ" + }, + "hiddenOnVideoPage": { + "message": "वीडियो पेज पर छिपा हुआ" + }, + "hideAnimatedThumbnails": { + "message": "वीडियो पेज पर छिपा हुआ" + }, + "hideAnnotations": { + "message": "एनोटेशन छुपाएं" + }, + "hideCards": { + "message": "पत्ते छिपाओ" + }, + "hideDetails": { + "message": "जानकारी छिपाएँ" + }, + "hideEndscreen": { + "message": "अंत स्क्रीन छिपाएँ" + }, + "hideFeaturedContent": { + "message": "विशेषताओं को छिपाएँ" + }, + "hideFooter": { + "message": "पाद छिपाएँ" + }, + "hideGradientBottom": { + "message": "ग्रेडिएंट बॉटम छुपाएं" + }, + "hidePlaylist": { + "message": "प्लेलिस्ट छिपाएं" + }, + "hideRightButtons": { + "message": "दाएं बटन छुपाएं" + }, + "hideScrollForDetails": { + "message": "छिपाएँ «विवरण के लिए स्क्रॉल»" + }, + "hideViewsCount": { + "message": "व्यू काउंट छिपाएं" + }, + "history": { + "message": "इतिहास" + }, + "home": { + "message": "घर" + }, + "hover": { + "message": "होवर" + }, + "hoverOnVideoPage": { + "message": "वीडियो पेज पर होवर" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "वीडियो कितनी देर पहले अपलोड किया गया था" + }, + "icons": { + "message": "प्रतीक" + }, + "iconsOnly": { + "message": "केवल प्रतीक" + }, + "importSettings": { + "message": "सेटिंग आयात करना" + }, + "improvedtubeIconInBrowser": { + "message": "ब्राउज़र में बेहतर आइकन" + }, + "improvedtubeIconOnYoutube": { + "message": "यूट्यूब पर बेहतर आइकन" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube भाषा" + }, + "improvedtubeVersion": { + "message": "ImprovedTube संस्करण" + }, + "improveLogo": { + "message": "लोगो सुधारो" + }, + "increasePlaybackSpeed": { + "message": "प्लेबैक स्पीड बढ़ाएं" + }, + "increaseVolume": { + "message": "ध्वनि बढ़ाएं" + }, + "indigo": { + "message": "नील" + }, + "items": { + "message": "आइटम" + }, + "languages": { + "message": "बोली" + }, + "legacyYoutube": { + "message": "विरासत यूट्यूब" + }, + "light": { + "message": "हलका" + }, + "lightBlue": { + "message": "हल्का नीला" + }, + "lightGreen": { + "message": "हल्का हरा" + }, + "like": { + "message": "पसंद" + }, + "likes": { + "message": "को यह पसंद है" + }, + "lime": { + "message": "पीला हरा रंग" + }, + "list": { + "message": "सूची" + }, + "liveChat": { + "message": "सीधी बातचीत" + }, + "liveChatType": { + "message": "लाइव चैट प्रकार" + }, + "loudnessNormalization": { + "message": "जोर से सामान्य होना" + }, + "markWatchedVideos": { + "message": "चिह्नित वीडियो देखे गए" + }, + "mixer": { + "message": "मिक्सर" + }, + "myColors": { + "message": "मेरे रंग" + }, + "name": { + "message": "नाम" + }, + "nativeMiniPlayer": { + "message": "मूल निवासी मिनी प्लेयर" + }, + "new": { + "message": "नया" + }, + "nextVideo": { + "message": "अगला वीडियो" + }, + "night": { + "message": "रात" + }, + "noActiveFeatures": { + "message": "कोई सक्रिय सुविधाएँ नहीं" + }, + "none": { + "message": "कोई नहीं" + }, + "noOpenVideoTabs": { + "message": "कोई खुला वीडियो टैब नहीं" + }, + "normal": { + "message": "साधारण" + }, + "old": { + "message": "पुराना" + }, + "onAllVideos": { + "message": "सभी वीडियो पर" + }, + "onlyActiveOnYoutube": { + "message": "केवल यूट्यूब पर सक्रिय है" + }, + "onlyOnePlayerInstancePlaying": { + "message": "केवल एक प्लेयर का चल रहा है" + }, + "onSubscribedChannels": { + "message": "सदस्यता प्राप्त चैनलों पर" + }, + "orange": { + "message": "नारंगी रंग" + }, + "os": { + "message": "ओ एस" + }, + "other": { + "message": "अन्य" + }, + "permissions": { + "message": "अनुमतियां" + }, + "pictureInPicture": { + "message": "चित्र में चित्र" + }, + "pink": { + "message": "गुलाबी" + }, + "plain": { + "message": "सादा" + }, + "platform": { + "message": "मंच" + }, + "playbackSpeed": { + "message": "प्लेबैक स्पीड" + }, + "player": { + "message": "प्लेयर" + }, + "playerColor": { + "message": "प्लेयर रंग" + }, + "playerSize": { + "message": "प्लेयर आकार" + }, + "playlist": { + "message": "प्लेलिस्ट" + }, + "playlists": { + "message": "प्लेलिस्ट" + }, + "playPause": { + "message": "प्ले / ठहराव" + }, + "popupPlayer": { + "message": "पॉप अप प्लेयर" + }, + "position": { + "message": "स्थान" + }, + "pressAnyKeyOrScroll": { + "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" + }, + "previousVideo": { + "message": "पिछला वीडियो" + }, + "primaryColor": { + "message": "प्राथमिक रंग" + }, + "purple": { + "message": "बैंगनी" + }, + "quality": { + "message": "गुणवत्ता" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "हमें रेटिंग दें" + }, + "red": { + "message": "लाल" + }, + "redDislikeButton": { + "message": "नापसंद बटन लाल रंग दिखाएं" + }, + "relatedVideos": { + "message": "संबंधित वीडियो" + }, + "removeRelatedSearchResults": { + "message": "संबंधित खोज परिणाम निकालें" + }, + "repeat": { + "message": "दोहराना" + }, + "reset": { + "message": "रीसेट" + }, + "resetAllSettings": { + "message": "सभी सेटिंग्स को रीसेट" + }, + "resetAllShortcuts": { + "message": "सभी शॉर्टकट रीसेट करें" + }, + "reverse": { + "message": "उलटना" + }, + "rotate": { + "message": "घुमाएँ" + }, + "save": { + "message": "सहेजें" + }, + "saveAs": { + "message": "के रूप रक्षित करें" + }, + "schedule": { + "message": "अनुसूची" + }, + "screen": { + "message": "स्क्रीन" + }, + "screenshot": { + "message": "स्क्रीनशॉट" + }, + "search": { + "message": "खोज" + }, + "searchBarOnly": { + "message": "केवल बार खोजें" + }, + "seekBackward10Seconds": { + "message": "पिछड़े 10 सेकंड की तलाश करें" + }, + "seekForward10Seconds": { + "message": "पिछड़े 10 सेकंड की तलाश करें" + }, + "settings": { + "message": "समायोजन" + }, + "settingsSuccessfullyImported": { + "message": "सेटिंग्स सफलतापूर्वक आयात की गईं" + }, + "shortcuts": { + "message": "शॉर्टकट" + }, + "showCardsOnMouseHover": { + "message": "माउस होवर पर कार्ड दिखाएं" + }, + "showChannelVideosCount": { + "message": "चैनल वीडियो काउंट दिखाएं" + }, + "shuffle": { + "message": "मिश्रण" + }, + "sidebar": { + "message": "साइडबार" + }, + "spacebar": { + "message": "स्पेस बार" + }, + "squaredUserImages": { + "message": "चुकता उपयोगकर्ता चित्र" + }, + "static": { + "message": "स्थिर" + }, + "statsForNerds": { + "message": "डेवलपर के लिए आँकड़े दिखाएँ" + }, + "step": { + "message": "चरण" + }, + "stop": { + "message": "रुकें" + }, + "style": { + "message": "अंदाज" + }, + "styles": { + "message": "शैलियाँ" + }, + "subscriptions": { + "message": "सदस्यता" + }, + "subtitles": { + "message": "उपशीर्षक" + }, + "sunset": { + "message": "सूर्यास्त" + }, + "sunsetToSunrise": { + "message": "सूर्योदय से सूर्यास्त" + }, + "systemPeferenceDark": { + "message": "सिस्टम प्राथमिकताएं: अंधेरा" + }, + "systemPeferenceLight": { + "message": "सिस्टम वरीयताएँ: प्रकाश" + }, + "teal": { + "message": "टील रंग" + }, + "textColor": { + "message": "लिखावट का रंग" + }, + "themes": { + "message": "विषय-वस्तु" + }, + "thisWillRemoveAllCookies": { + "message": "यह सभी कुकीज़ को हटा देगा।" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "यह सभी यूट्यूब कुकीज़ को हटा देगा।" + }, + "thisWillResetAllSettings": { + "message": "यह सभी सेटिंग्स को रीसेट कर देगा।" + }, + "thisWillResetAllShortcuts": { + "message": "यह सभी शॉर्टकट रीसेट कर देगा।" + }, + "thumbnails": { + "message": "थंबनेल" + }, + "timeFrom": { + "message": "से समय" + }, + "timeTo": { + "message": "समय पर" + }, + "todayAt": { + "message": "आज इस समय" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "शीर्ष चैट" + }, + "trailerAutoplay": { + "message": "ट्रेलर ऑटोप्ले" + }, + "translations": { + "message": "अनुवाद" + }, + "transparentBackground": { + "message": "पारदर्शी पृष्ठभूमि" + }, + "trending": { + "message": "रुझान" + }, + "tryToReloadThePage": { + "message": "पृष्ठ को पुनः लोड करने का प्रयास करें" + }, + "type": { + "message": "टाइप" + }, + "upNextAutoplay": { + "message": "अगले ऑटोप्ले पर" + }, + "use24HourFormat": { + "message": "24-घंटे के प्रारूप का उपयोग करें" + }, + "version": { + "message": "संस्करण" + }, + "video": { + "message": "वीडियो" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "श्रेणी का नाम प्राप्त करने के लिए वीडियो विवरण का विस्तार किया जाएगा।" + }, + "videoFormats": { + "message": "वीडियो प्रारूप" + }, + "videos": { + "message": "वीडियो" + }, + "volume": { + "message": "ध्वनि" + }, + "watchLater": { + "message": "बाद में देखना" + }, + "watchTime": { + "message": "समय देखें" + }, + "whenTabIsChanged": { + "message": "जब टैब बदला जाता है" + }, + "white": { + "message": "सफेद" + }, + "yellow": { + "message": "पीला" + }, + "youtubeHeaderLeft": { + "message": "यूट्यूब हैडर (बाएं)" + }, + "youtubeHeaderRight": { + "message": "यूट्यूब हैडर (दाएं)" + }, + "youtubeHomePage": { + "message": "यूट्यूब होम पेज" + }, + "youtubeLanguage": { + "message": "यूट्यूब भाषा" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "यूट्यूब h.264 कोडेक के लिए वीडियो की गुणवत्ता 1080 पी तक सीमित है" + } +} \ No newline at end of file diff --git a/stable/_locales/id/messages.json b/stable/_locales/id/messages.json index 97397aaa9..75f9af70b 100644 --- a/stable/_locales/id/messages.json +++ b/stable/_locales/id/messages.json @@ -1,797 +1,806 @@ -{ - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Tentang" - }, - "accept": { - "message": "Terima" - }, - "activate": { - "message": "Aktifkan" - }, - "activateCaptions": { - "message": "Aktifkan keterangan" - }, - "activateFullscreen": { - "message": "Aktifkan layar penuh" - }, - "activated": { - "message": "Diaktifkan" - }, - "activatedFeatures": { - "message": "Fitur diaktifkan" - }, - "activeFeatures": { - "message": "Fitur yang aktif" - }, - "addScrollToTop": { - "message": "Tambah «Gulir ke atas»" - }, - "ads": { - "message": "Tampilkan iklan" - }, - "all": { - "message": "Semua" - }, - "allow": { - "message": "Izinkan" - }, - "allow60fps": { - "message": "Izinkan 60fps" - }, - "alwaysActive": { - "message": "Selalu aktif" - }, - "alwaysShowProgressBar": { - "message": "Selalu tampilkan progress bar" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analisa" - }, - "appearance": { - "message": "Tampilan" - }, - "audio": { - "message": "Suara" - }, - "audioFormats": { - "message": "Format suara" - }, - "auto": { - "message": "Otomatis" - }, - "autoFullscreen": { - "message": "Layar penuh otomatis" - }, - "autopauseWhenSwitchingTabs": { - "message": "Jeda saat mengganti tab" - }, - "autoplay": { - "message": "Putar secara otomatis" - }, - "backupAndReset": { - "message": "Cadangkan & setel ulang" - }, - "baseOnSystemColorScheme": { - "message": "Berdasarkan skema warna sistem" - }, - "belowPlayer": { - "message": "Dibawah pemutar" - }, - "black": { - "message": "Hitam" - }, - "blacklist": { - "message": "Blokir" - }, - "blockAll": { - "message": "Blokir semua" - }, - "blue": { - "message": "Biru" - }, - "blueGray": { - "message": "Abu-abu biru" - }, - "bluelight": { - "message": "Cahaya biru" - }, - "brown": { - "message": "Coklat" - }, - "browser": { - "message": "Peramban" - }, - "browserVersion": { - "message": "Versi peramban" - }, - "bubbles": { - "message": "Gelembung" - }, - "bug": { - "message": "Masalah" - }, - "buttons": { - "message": "Tombol" - }, - "cancel": { - "message": "Batalkan" - }, - "categories": { - "message": "Kategori" - }, - "channel": { - "message": "Saluran" - }, - "channels": { - "message": "Saluran" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Tutup bagian berlangganan" - }, - "collapsed": { - "message": "Tutup" - }, - "comments": { - "message": "Komentar" - }, - "confirmationBeforeClosing": { - "message": "Konfirmasi sebelum ditutup" - }, - "cookies": { - "message": "Kuki" - }, - "cores": { - "message": "Inti" - }, - "cropChapterTitles": { - "message": "Hilangkan judul babak" - }, - "customCss": { - "message": "Kostum CSS" - }, - "customJs": { - "message": "Kostum JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Gelap" - }, - "darkTheme": { - "message": "Tema gelap" - }, - "dateAndTime": { - "message": "Tanggal dan waktu" - }, - "dawn": { - "message": "Fajar" - }, - "decreasePlaybackSpeed": { - "message": "Kurangi kecepatan pemutaran" - }, - "decreaseVolume": { - "message": "Kurangi suara" - }, - "deepOrange": { - "message": "Oranye tua" - }, - "deepPurple": { - "message": "Ungu tua" - }, - "defaultChannelTab": { - "message": "Tab saluran standar" - }, - "deleteYoutubeCookies": { - "message": "Hapus kuki youtube" - }, - "description": { - "message": "Deskripsi" - }, - "desert": { - "message": "Gurun" - }, - "details": { - "message": "Detail" - }, - "developerOptions": { - "message": "Opsi pengembang" - }, - "device": { - "message": "Perangkat" - }, - "dim": { - "message": "Redupkan" - }, - "disabled": { - "message": "Dinonaktifkan" - }, - "dislike": { - "message": "Tidak Suka" - }, - "doNotChange": { - "message": "Jangan ubah" - }, - "donate": { - "message": "Donasi" - }, - "draggable": { - "message": "Dapat diseret" - }, - "email": { - "message": "Surel" - }, - "empty": { - "message": "Kosong" - }, - "enabled": { - "message": "Aktifkan" - }, - "enabledForced": { - "message": "Aktifkan (paksa)" - }, - "expanded": { - "message": "Perluas" - }, - "exportSettings": { - "message": "Ekspor pengaturan" - }, - "extension": { - "message": "Ekstensi" - }, - "file": { - "message": "Berkas" - }, - "filters": { - "message": "Saringan" - }, - "fitToWindow": { - "message": "Sesuaikan dengan layar" - }, - "flash": { - "message": "Cahaya" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Catatan kaki" - }, - "forcedPlaybackSpeed": { - "message": "Paksa kecepatan pemutaran" - }, - "forcedTheaterMode": { - "message": "Paksa mode teater" - }, - "forcedVolume": { - "message": "Paksa suara" - }, - "foundABug": { - "message": "Menemukan masalah?" - }, - "fullWindow": { - "message": "Layar penuh" - }, - "general": { - "message": "Umum" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Ke kotak pencarian" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Hijau" - }, - "hdThumbnail": { - "message": "Gambar kecil HD" - }, - "hdThumbnails": { - "message": "Gambar kecil HD" - }, - "header": { - "message": "Kepala" - }, - "hidden": { - "message": "Sembunyikan" - }, - "hiddenOnVideoPage": { - "message": "Tersembunyi di halaman video" - }, - "hideAnimatedThumbnails": { - "message": "Sembunyikan animasi gambar kecil" - }, - "hideAnnotations": { - "message": "Sembunyikan penjelasan" - }, - "hideCards": { - "message": "Sembunyikan kartu" - }, - "hideDetails": { - "message": "Sembunyikan detail" - }, - "hideEndscreen": { - "message": "Sembunyikan layar akhir" - }, - "hideFeaturedContent": { - "message": "Sembunyikan konten unggulan" - }, - "hideFooter": { - "message": "Sembunyikan catatan kaki" - }, - "hidePlaylist": { - "message": "Sembunyikan daftar putar" - }, - "hideRightButtons": { - "message": "Sembunyikan tombol kanan" - }, - "hideScrollForDetails": { - "message": "Sembunyikan «gulir untuk detail»" - }, - "hideViewsCount": { - "message": "Sembunyikan jumlah penayangan" - }, - "history": { - "message": "Sejarah" - }, - "home": { - "message": "Beranda" - }, - "hover": { - "message": "Arahkan" - }, - "hoverOnVideoPage": { - "message": "Arahkan pada halaman video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Berapa lama video itu diunggah" - }, - "icons": { - "message": "Ikon" - }, - "iconsOnly": { - "message": "Ikon saja" - }, - "importSettings": { - "message": "Impor pengaturan" - }, - "improveLogo": { - "message": "Tingkatkan kualitas logo" - }, - "improvedtubeIconInBrowser": { - "message": "Ikon ImprovedTube di peramban" - }, - "improvedtubeIconOnYoutube": { - "message": "Ikon ImprovedTube di YouTube" - }, - "improvedtubeLanguage": { - "message": "Bahasa ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versi ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Tingkatkan kecepatan pemutaran" - }, - "increaseVolume": { - "message": "Tingkatkan suara" - }, - "indigo": { - "message": "Nila" - }, - "items": { - "message": "Item" - }, - "languages": { - "message": "Bahasa" - }, - "legacyYoutube": { - "message": "YouTube lama" - }, - "light": { - "message": "Terang" - }, - "lightBlue": { - "message": "Biru terang" - }, - "lightGreen": { - "message": "Hijau terang" - }, - "like": { - "message": "Suka" - }, - "likes": { - "message": "Suka" - }, - "lime": { - "message": "Limau" - }, - "list": { - "message": "Daftar" - }, - "liveChat": { - "message": "Obrolan langsung" - }, - "liveChatType": { - "message": "Jenis obrolan langsung" - }, - "loudnessNormalization": { - "message": "Normalkan suara" - }, - "markWatchedVideos": { - "message": "Tandai video yang ditonton" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "Warna saya" - }, - "name": { - "message": "Nama" - }, - "nativeMiniPlayer": { - "message": "Pemutar kecil bawaan" - }, - "new": { - "message": "Baru" - }, - "nextVideo": { - "message": "Video selanjutnya" - }, - "night": { - "message": "Malam" - }, - "noActiveFeatures": { - "message": "Tidak ada fitur aktif" - }, - "noOpenVideoTabs": { - "message": "Tidak ada tab video terbuka" - }, - "none": { - "message": "Tidak ada" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Lama" - }, - "onAllVideos": { - "message": "Disetiap video" - }, - "onSubscribedChannels": { - "message": "Di saluran berlangganan" - }, - "onlyActiveOnYoutube": { - "message": "Hanya aktif di YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Hanya mainkan satu pemutar" - }, - "orange": { - "message": "Oranye" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Lainnya" - }, - "permissions": { - "message": "Perizinan" - }, - "pictureInPicture": { - "message": "Gambar di dalam gambar" - }, - "pink": { - "message": "Merah jambu" - }, - "plain": { - "message": "Dataran" - }, - "platform": { - "message": "Platform" - }, - "playPause": { - "message": "Mulai / Jeda" - }, - "playbackSpeed": { - "message": "Kecepatan pemutar" - }, - "player": { - "message": "Pemutar" - }, - "playerColor": { - "message": "Warna pemutar" - }, - "playerSize": { - "message": "Ukuran pemutar" - }, - "playlist": { - "message": "Daftar putar" - }, - "playlists": { - "message": "Daftar putar" - }, - "popupPlayer": { - "message": "Pemutar sembulan" - }, - "position": { - "message": "Posisi" - }, - "pressAnyKeyOrScroll": { - "message": "Tekan tombol apa saja atau gunakan roda mouse." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Tekan tombol apa saja atau gunakan roda mouse" - }, - "previousVideo": { - "message": "Video sebelumnya" - }, - "primaryColor": { - "message": "Warna utama" - }, - "purple": { - "message": "Ungu" - }, - "quality": { - "message": "Kualitas video" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Nilai Kami" - }, - "red": { - "message": "Merah" - }, - "relatedVideos": { - "message": "Video terkait" - }, - "removeRelatedSearchResults": { - "message": "Hapus hasil pencarian terkait" - }, - "repeat": { - "message": "Putar ulang" - }, - "reset": { - "message": "Setel ulang" - }, - "resetAllSettings": { - "message": "Setel ulang semua pengaturan" - }, - "resetAllShortcuts": { - "message": "Setel ulang semua pintasan" - }, - "reverse": { - "message": "Putar secara terbalik" - }, - "rotate": { - "message": "Putar" - }, - "save": { - "message": "Simpan" - }, - "saveAs": { - "message": "Simpan dengan" - }, - "schedule": { - "message": "Jadwal" - }, - "screen": { - "message": "Layar" - }, - "screenshot": { - "message": "Tangkapan layar" - }, - "search": { - "message": "Cari" - }, - "searchBarOnly": { - "message": "Hanya bilah pencarian" - }, - "seekBackward10Seconds": { - "message": "Mundur 10 detik" - }, - "seekForward10Seconds": { - "message": "Maju 10 detik" - }, - "settings": { - "message": "Pengaturan" - }, - "settingsSuccessfullyImported": { - "message": "Berhasil mengimpor pengaturan" - }, - "shortcuts": { - "message": "Pintasan" - }, - "showCardsOnMouseHover": { - "message": "Tunjukkan kartu pada arah mouse" - }, - "showChannelVideosCount": { - "message": "Tampilkan jumlah video saluran" - }, - "shuffle": { - "message": "Putar secara acak" - }, - "sidebar": { - "message": "Bilah samping" - }, - "spacebar": { - "message": "Bilah spasi" - }, - "squaredUserImages": { - "message": "Gambar pengguna kotak" - }, - "static": { - "message": "Statis" - }, - "step": { - "message": "Langkah" - }, - "stop": { - "message": "Berhenti" - }, - "style": { - "message": "Mode" - }, - "styles": { - "message": "Mode" - }, - "subscriptions": { - "message": "Berlangganan" - }, - "subtitles": { - "message": "Teks" - }, - "sunset": { - "message": "Senja" - }, - "sunsetToSunrise": { - "message": "Matahari terbenam hingga matahari terbit" - }, - "systemPeferenceDark": { - "message": "Preferensi sistem: gelap" - }, - "systemPeferenceLight": { - "message": "Preferensi sistem: terang" - }, - "teal": { - "message": "Hijau kebiruan" - }, - "textColor": { - "message": "Warna teks" - }, - "themes": { - "message": "Tema" - }, - "thisWillRemoveAllCookies": { - "message": "Ini akan menghapus semua kuki." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Ini akan menghapus semua kuki YouTube" - }, - "thisWillResetAllSettings": { - "message": "Ini akan mengatur ulang semua pengaturan." - }, - "thisWillResetAllShortcuts": { - "message": "Ini akan mengatur ulang semua pintasan" - }, - "thumbnails": { - "message": "Gambar kecil" - }, - "timeFrom": { - "message": "Waktu dari" - }, - "timeTo": { - "message": "Waktu ke" - }, - "todayAt": { - "message": "Hari ini di" - }, - "topChat": { - "message": "Obrolan teratas" - }, - "trailerAutoplay": { - "message": "Putar otomatis cuplikan" - }, - "translations": { - "message": "Terjemahan" - }, - "transparentBackground": { - "message": "Latar belakang transparan" - }, - "trending": { - "message": "Populer" - }, - "tryToReloadThePage": { - "message": "Coba muat ulang halaman" - }, - "type": { - "message": "Tipe" - }, - "upNextAutoplay": { - "message": "Putar otomatis berikutnya" - }, - "use24HourFormat": { - "message": "Gunakan format 24 jam" - }, - "version": { - "message": "Versi" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Deskripsi video akan diperluas untuk mendapatkan nama kategori" - }, - "videoFormats": { - "message": "Format video" - }, - "videos": { - "message": "Video" - }, - "volume": { - "message": "Suara" - }, - "watchLater": { - "message": "Tonton nanti" - }, - "watchTime": { - "message": "Waktu tayang" - }, - "whenTabIsChanged": { - "message": "Saat tab berubah" - }, - "white": { - "message": "Putih" - }, - "yellow": { - "message": "Kuning" - }, - "youtubeHeaderLeft": { - "message": "Kepala YouTube (kiri)" - }, - "youtubeHeaderRight": { - "message": "Kepala YouTube (kanan)" - }, - "youtubeHomePage": { - "message": "Beranda YouTube" - }, - "youtubeLanguage": { - "message": "Bahasa YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube membatasi kualitas video hingga 1080p untuk codec h.264" - } -} +{ + "cropChapterTitles": { + "message": "Hilangkan judul babak" + }, + "about": { + "message": "Tentang" + }, + "accept": { + "message": "Terima" + }, + "activate": { + "message": "Aktifkan" + }, + "activateCaptions": { + "message": "Aktifkan keterangan" + }, + "activated": { + "message": "Diaktifkan" + }, + "activatedFeatures": { + "message": "Fitur diaktifkan" + }, + "activateFullscreen": { + "message": "Aktifkan layar penuh" + }, + "activeFeatures": { + "message": "Fitur yang aktif" + }, + "addScrollToTop": { + "message": "Tambah «Gulir ke atas»" + }, + "ads": { + "message": "Tampilkan iklan" + }, + "all": { + "message": "Semua" + }, + "allow": { + "message": "Izinkan" + }, + "allow60fps": { + "message": "Izinkan 60fps" + }, + "alwaysActive": { + "message": "Selalu aktif" + }, + "alwaysShowProgressBar": { + "message": "Selalu tampilkan progress bar" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analisa" + }, + "appearance": { + "message": "Tampilan" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Suara" + }, + "audioFormats": { + "message": "Format suara" + }, + "auto": { + "message": "Otomatis" + }, + "autoFullscreen": { + "message": "Layar penuh otomatis" + }, + "autopauseWhenSwitchingTabs": { + "message": "Jeda saat mengganti tab" + }, + "autoplay": { + "message": "Putar secara otomatis" + }, + "backupAndReset": { + "message": "Cadangkan & setel ulang" + }, + "baseOnSystemColorScheme": { + "message": "Berdasarkan skema warna sistem" + }, + "belowPlayer": { + "message": "Dibawah pemutar" + }, + "black": { + "message": "Hitam" + }, + "blacklist": { + "message": "Blokir" + }, + "blockAll": { + "message": "Blokir semua" + }, + "blue": { + "message": "Biru" + }, + "blueGray": { + "message": "Abu-abu biru" + }, + "bluelight": { + "message": "Cahaya biru" + }, + "brown": { + "message": "Coklat" + }, + "browser": { + "message": "Peramban" + }, + "browserVersion": { + "message": "Versi peramban" + }, + "bubbles": { + "message": "Gelembung" + }, + "bug": { + "message": "Masalah" + }, + "buttons": { + "message": "Tombol" + }, + "cancel": { + "message": "Batalkan" + }, + "categories": { + "message": "Kategori" + }, + "channel": { + "message": "Saluran" + }, + "channels": { + "message": "Saluran" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapsed": { + "message": "Tutup" + }, + "collapseOfSubscriptionSections": { + "message": "Tutup bagian berlangganan" + }, + "comments": { + "message": "Komentar" + }, + "confirmationBeforeClosing": { + "message": "Konfirmasi sebelum ditutup" + }, + "cookies": { + "message": "Kuki" + }, + "cores": { + "message": "Inti" + }, + "customCss": { + "message": "Kostum CSS" + }, + "customJs": { + "message": "Kostum JS" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Gelap" + }, + "darkTheme": { + "message": "Tema gelap" + }, + "dateAndTime": { + "message": "Tanggal dan waktu" + }, + "dawn": { + "message": "Fajar" + }, + "decreasePlaybackSpeed": { + "message": "Kurangi kecepatan pemutaran" + }, + "decreaseVolume": { + "message": "Kurangi suara" + }, + "deepOrange": { + "message": "Oranye tua" + }, + "deepPurple": { + "message": "Ungu tua" + }, + "defaultChannelTab": { + "message": "Tab saluran standar" + }, + "deleteYoutubeCookies": { + "message": "Hapus kuki youtube" + }, + "description": { + "message": "Deskripsi" + }, + "desert": { + "message": "Gurun" + }, + "details": { + "message": "Detail" + }, + "developerOptions": { + "message": "Opsi pengembang" + }, + "device": { + "message": "Perangkat" + }, + "dim": { + "message": "Redupkan" + }, + "disabled": { + "message": "Dinonaktifkan" + }, + "dislike": { + "message": "Tidak Suka" + }, + "donate": { + "message": "Donasi" + }, + "doNotChange": { + "message": "Jangan ubah" + }, + "draggable": { + "message": "Dapat diseret" + }, + "email": { + "message": "Surel" + }, + "empty": { + "message": "Kosong" + }, + "enabled": { + "message": "Aktifkan" + }, + "enabledForced": { + "message": "Aktifkan (paksa)" + }, + "expanded": { + "message": "Perluas" + }, + "exportSettings": { + "message": "Ekspor pengaturan" + }, + "extension": { + "message": "Ekstensi" + }, + "file": { + "message": "Berkas" + }, + "filters": { + "message": "Saringan" + }, + "fitToWindow": { + "message": "Sesuaikan dengan layar" + }, + "flash": { + "message": "Cahaya" + }, + "font": { + "message": "Font" + }, + "footer": { + "message": "Catatan kaki" + }, + "forcedPlaybackSpeed": { + "message": "Paksa kecepatan pemutaran" + }, + "forcedTheaterMode": { + "message": "Paksa mode teater" + }, + "forcedVolume": { + "message": "Paksa suara" + }, + "foundABug": { + "message": "Menemukan masalah?" + }, + "fullWindow": { + "message": "Layar penuh" + }, + "general": { + "message": "Umum" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Ke kotak pencarian" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Hijau" + }, + "hdThumbnail": { + "message": "Gambar kecil HD" + }, + "hdThumbnails": { + "message": "Gambar kecil HD" + }, + "header": { + "message": "Kepala" + }, + "hidden": { + "message": "Sembunyikan" + }, + "hiddenOnVideoPage": { + "message": "Tersembunyi di halaman video" + }, + "hideAnimatedThumbnails": { + "message": "Sembunyikan animasi gambar kecil" + }, + "hideAnnotations": { + "message": "Sembunyikan penjelasan" + }, + "hideCards": { + "message": "Sembunyikan kartu" + }, + "hideDetails": { + "message": "Sembunyikan detail" + }, + "hideEndscreen": { + "message": "Sembunyikan layar akhir" + }, + "hideFeaturedContent": { + "message": "Sembunyikan konten unggulan" + }, + "hideFooter": { + "message": "Sembunyikan catatan kaki" + }, + "hidePlaylist": { + "message": "Sembunyikan daftar putar" + }, + "hideRightButtons": { + "message": "Sembunyikan tombol kanan" + }, + "hideScrollForDetails": { + "message": "Sembunyikan «gulir untuk detail»" + }, + "hideViewsCount": { + "message": "Sembunyikan jumlah penayangan" + }, + "history": { + "message": "Sejarah" + }, + "home": { + "message": "Beranda" + }, + "hover": { + "message": "Arahkan" + }, + "hoverOnVideoPage": { + "message": "Arahkan pada halaman video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Berapa lama video itu diunggah" + }, + "icons": { + "message": "Ikon" + }, + "iconsOnly": { + "message": "Ikon saja" + }, + "importSettings": { + "message": "Impor pengaturan" + }, + "improvedtubeIconInBrowser": { + "message": "Ikon ImprovedTube di peramban" + }, + "improvedtubeIconOnYoutube": { + "message": "Ikon ImprovedTube di YouTube" + }, + "improvedtubeLanguage": { + "message": "Bahasa ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Versi ImprovedTube" + }, + "improveLogo": { + "message": "Tingkatkan kualitas logo" + }, + "increasePlaybackSpeed": { + "message": "Tingkatkan kecepatan pemutaran" + }, + "increaseVolume": { + "message": "Tingkatkan suara" + }, + "indigo": { + "message": "Nila" + }, + "items": { + "message": "Item" + }, + "languages": { + "message": "Bahasa" + }, + "legacyYoutube": { + "message": "YouTube lama" + }, + "light": { + "message": "Terang" + }, + "lightBlue": { + "message": "Biru terang" + }, + "lightGreen": { + "message": "Hijau terang" + }, + "like": { + "message": "Suka" + }, + "likes": { + "message": "Suka" + }, + "lime": { + "message": "Limau" + }, + "list": { + "message": "Daftar" + }, + "liveChat": { + "message": "Obrolan langsung" + }, + "liveChatType": { + "message": "Jenis obrolan langsung" + }, + "loudnessNormalization": { + "message": "Normalkan suara" + }, + "markWatchedVideos": { + "message": "Tandai video yang ditonton" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "mixer": { + "message": "Mixer" + }, + "myColors": { + "message": "Warna saya" + }, + "name": { + "message": "Nama" + }, + "nativeMiniPlayer": { + "message": "Pemutar kecil bawaan" + }, + "new": { + "message": "Baru" + }, + "nextVideo": { + "message": "Video selanjutnya" + }, + "night": { + "message": "Malam" + }, + "noActiveFeatures": { + "message": "Tidak ada fitur aktif" + }, + "none": { + "message": "Tidak ada" + }, + "noOpenVideoTabs": { + "message": "Tidak ada tab video terbuka" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Lama" + }, + "onAllVideos": { + "message": "Disetiap video" + }, + "onlyActiveOnYoutube": { + "message": "Hanya aktif di YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Hanya mainkan satu pemutar" + }, + "onSubscribedChannels": { + "message": "Di saluran berlangganan" + }, + "orange": { + "message": "Oranye" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Lainnya" + }, + "permissions": { + "message": "Perizinan" + }, + "pictureInPicture": { + "message": "Gambar di dalam gambar" + }, + "pink": { + "message": "Merah jambu" + }, + "plain": { + "message": "Dataran" + }, + "platform": { + "message": "Platform" + }, + "playbackSpeed": { + "message": "Kecepatan pemutar" + }, + "player": { + "message": "Pemutar" + }, + "playerColor": { + "message": "Warna pemutar" + }, + "playerSize": { + "message": "Ukuran pemutar" + }, + "playlist": { + "message": "Daftar putar" + }, + "playlists": { + "message": "Daftar putar" + }, + "playPause": { + "message": "Mulai / Jeda" + }, + "popupPlayer": { + "message": "Pemutar sembulan" + }, + "position": { + "message": "Posisi" + }, + "pressAnyKeyOrScroll": { + "message": "Tekan tombol apa saja atau gunakan roda mouse." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Tekan tombol apa saja atau gunakan roda mouse" + }, + "previousVideo": { + "message": "Video sebelumnya" + }, + "primaryColor": { + "message": "Warna utama" + }, + "purple": { + "message": "Ungu" + }, + "quality": { + "message": "Kualitas video" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Nilai Kami" + }, + "red": { + "message": "Merah" + }, + "relatedVideos": { + "message": "Video terkait" + }, + "removeRelatedSearchResults": { + "message": "Hapus hasil pencarian terkait" + }, + "repeat": { + "message": "Putar ulang" + }, + "reset": { + "message": "Setel ulang" + }, + "resetAllSettings": { + "message": "Setel ulang semua pengaturan" + }, + "resetAllShortcuts": { + "message": "Setel ulang semua pintasan" + }, + "reverse": { + "message": "Putar secara terbalik" + }, + "rotate": { + "message": "Putar" + }, + "save": { + "message": "Simpan" + }, + "saveAs": { + "message": "Simpan dengan" + }, + "schedule": { + "message": "Jadwal" + }, + "screen": { + "message": "Layar" + }, + "screenshot": { + "message": "Tangkapan layar" + }, + "search": { + "message": "Cari" + }, + "searchBarOnly": { + "message": "Hanya bilah pencarian" + }, + "seekBackward10Seconds": { + "message": "Mundur 10 detik" + }, + "seekForward10Seconds": { + "message": "Maju 10 detik" + }, + "settings": { + "message": "Pengaturan" + }, + "settingsSuccessfullyImported": { + "message": "Berhasil mengimpor pengaturan" + }, + "shortcuts": { + "message": "Pintasan" + }, + "showCardsOnMouseHover": { + "message": "Tunjukkan kartu pada arah mouse" + }, + "showChannelVideosCount": { + "message": "Tampilkan jumlah video saluran" + }, + "shuffle": { + "message": "Putar secara acak" + }, + "sidebar": { + "message": "Bilah samping" + }, + "spacebar": { + "message": "Bilah spasi" + }, + "squaredUserImages": { + "message": "Gambar pengguna kotak" + }, + "static": { + "message": "Statis" + }, + "step": { + "message": "Langkah" + }, + "stop": { + "message": "Berhenti" + }, + "style": { + "message": "Mode" + }, + "styles": { + "message": "Mode" + }, + "subscriptions": { + "message": "Berlangganan" + }, + "subtitles": { + "message": "Teks" + }, + "sunset": { + "message": "Senja" + }, + "sunsetToSunrise": { + "message": "Matahari terbenam hingga matahari terbit" + }, + "systemPeferenceDark": { + "message": "Preferensi sistem: gelap" + }, + "systemPeferenceLight": { + "message": "Preferensi sistem: terang" + }, + "teal": { + "message": "Hijau kebiruan" + }, + "textColor": { + "message": "Warna teks" + }, + "themes": { + "message": "Tema" + }, + "thisWillRemoveAllCookies": { + "message": "Ini akan menghapus semua kuki." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Ini akan menghapus semua kuki YouTube" + }, + "thisWillResetAllSettings": { + "message": "Ini akan mengatur ulang semua pengaturan." + }, + "thisWillResetAllShortcuts": { + "message": "Ini akan mengatur ulang semua pintasan" + }, + "thumbnails": { + "message": "Gambar kecil" + }, + "timeFrom": { + "message": "Waktu dari" + }, + "timeTo": { + "message": "Waktu ke" + }, + "todayAt": { + "message": "Hari ini di" + }, + "topChat": { + "message": "Obrolan teratas" + }, + "trailerAutoplay": { + "message": "Putar otomatis cuplikan" + }, + "translations": { + "message": "Terjemahan" + }, + "transparentBackground": { + "message": "Latar belakang transparan" + }, + "trending": { + "message": "Populer" + }, + "tryToReloadThePage": { + "message": "Coba muat ulang halaman" + }, + "type": { + "message": "Tipe" + }, + "upNextAutoplay": { + "message": "Putar otomatis berikutnya" + }, + "use24HourFormat": { + "message": "Gunakan format 24 jam" + }, + "version": { + "message": "Versi" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Deskripsi video akan diperluas untuk mendapatkan nama kategori" + }, + "videoFormats": { + "message": "Format video" + }, + "videos": { + "message": "Video" + }, + "volume": { + "message": "Suara" + }, + "watchLater": { + "message": "Tonton nanti" + }, + "watchTime": { + "message": "Waktu tayang" + }, + "whenTabIsChanged": { + "message": "Saat tab berubah" + }, + "white": { + "message": "Putih" + }, + "yellow": { + "message": "Kuning" + }, + "youtubeHeaderLeft": { + "message": "Kepala YouTube (kiri)" + }, + "youtubeHeaderRight": { + "message": "Kepala YouTube (kanan)" + }, + "youtubeHomePage": { + "message": "Beranda YouTube" + }, + "youtubeLanguage": { + "message": "Bahasa YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube membatasi kualitas video hingga 1080p untuk codec h.264" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "toggleCards": { + "message": "Toggle cards" + } +} diff --git a/stable/_locales/it/messages.json b/stable/_locales/it/messages.json index 39bdb5a3a..b9e17510e 100644 --- a/stable/_locales/it/messages.json +++ b/stable/_locales/it/messages.json @@ -1,797 +1,806 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Al riguardo" - }, - "accept": { - "message": "Accetta" - }, - "activate": { - "message": "Attivo" - }, - "activateCaptions": { - "message": "Attiva didascalie" - }, - "activateFullscreen": { - "message": "Attiva schermo intero" - }, - "activated": { - "message": "Attivato/a" - }, - "activatedFeatures": { - "message": "Funzionalità attivate" - }, - "activeFeatures": { - "message": "Funzioni disponibili" - }, - "addScrollToTop": { - "message": "Aggiungi «Scorri in cima»" - }, - "ads": { - "message": "Pubblicità" - }, - "all": { - "message": "Tutte" - }, - "allow": { - "message": "Permetti" - }, - "allow60fps": { - "message": "Permetti 60 fps" - }, - "alwaysActive": { - "message": "Sempre attivo" - }, - "alwaysShowProgressBar": { - "message": "Mostra sempre barra di avanzamento" - }, - "amber": { - "message": "Ambra" - }, - "analyzer": { - "message": "Analizzatore" - }, - "appearance": { - "message": "Aspetto" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formati audio" - }, - "auto": { - "message": "Automatico" - }, - "autoFullscreen": { - "message": "Schermo intero automatico" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausa automatica al cambio scheda" - }, - "autoplay": { - "message": "Avvio automatico" - }, - "backupAndReset": { - "message": "Backup e reimpostazione" - }, - "baseOnSystemColorScheme": { - "message": "Basato sullo schema colore di sistema" - }, - "belowPlayer": { - "message": "Sotto il lettore" - }, - "black": { - "message": "Nero" - }, - "blacklist": { - "message": "Lista nera" - }, - "blockAll": { - "message": "Blocca tutte" - }, - "blue": { - "message": "Blu" - }, - "blueGray": { - "message": "Grigio blu" - }, - "bluelight": { - "message": "Luce blu" - }, - "brown": { - "message": "Marrone" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Versione browser" - }, - "bubbles": { - "message": "Bolle" - }, - "bug": { - "message": "Difetto" - }, - "buttons": { - "message": "Pulsanti" - }, - "cancel": { - "message": "Annulla" - }, - "categories": { - "message": "Categorie" - }, - "channel": { - "message": "Canale" - }, - "channels": { - "message": "Canali" - }, - "clipboard": { - "message": "Appunti" - }, - "codecH264": { - "message": "Codec H.264" - }, - "collapseOfSubscriptionSections": { - "message": "Comprimi sezioni di sottoscrizione" - }, - "collapsed": { - "message": "Compressa/i" - }, - "comments": { - "message": "Commenti" - }, - "confirmationBeforeClosing": { - "message": "Conferma prima della chiusura" - }, - "cookies": { - "message": "Cookie" - }, - "cores": { - "message": "Core" - }, - "cropChapterTitles": { - "message": "Ritaglia titoli dei capitoli" - }, - "customCss": { - "message": "CSS personalizzato" - }, - "customJs": { - "message": "JS personalizzato" - }, - "customMiniPlayer": { - "message": "Mini lettore personalizzato" - }, - "cyan": { - "message": "Ciano" - }, - "dark": { - "message": "Scuro" - }, - "darkTheme": { - "message": "Tema scuro" - }, - "dateAndTime": { - "message": "Data e ora" - }, - "dawn": { - "message": "Albeggio" - }, - "decreasePlaybackSpeed": { - "message": "Riduci velocità riproduzione" - }, - "decreaseVolume": { - "message": "Riduci volume" - }, - "deepOrange": { - "message": "Arancione profondo" - }, - "deepPurple": { - "message": "Viola profondo" - }, - "defaultChannelTab": { - "message": "Scheda predefinita canale" - }, - "deleteYoutubeCookies": { - "message": "Cancella cookie di YouTube" - }, - "description": { - "message": "Descrizione" - }, - "desert": { - "message": "Deserto" - }, - "details": { - "message": "Dettagli" - }, - "developerOptions": { - "message": "Opzioni per gli sviluppatori" - }, - "device": { - "message": "Dispositivo" - }, - "dim": { - "message": "Smorzamento" - }, - "disabled": { - "message": "Disabilitato" - }, - "dislike": { - "message": "Non gradire" - }, - "doNotChange": { - "message": "Non cambiare" - }, - "donate": { - "message": "Donare" - }, - "draggable": { - "message": "Trascinabile" - }, - "email": { - "message": "EMail" - }, - "empty": { - "message": "Vuota" - }, - "enabled": { - "message": "Abilitato" - }, - "enabledForced": { - "message": "Abilitato (forzato)" - }, - "expanded": { - "message": "Estesa" - }, - "exportSettings": { - "message": "Esporta impostazioni" - }, - "extension": { - "message": "Estensione" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filtri" - }, - "fitToWindow": { - "message": "Adatta alla finestra" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Footer" - }, - "forcedPlaybackSpeed": { - "message": "Velocità riproduzione forzata" - }, - "forcedTheaterMode": { - "message": "Modalità cinema forzata" - }, - "forcedVolume": { - "message": "Volume forzato" - }, - "foundABug": { - "message": "Trovato un bug?" - }, - "fullWindow": { - "message": "Finestra intera" - }, - "general": { - "message": "Generale" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Vai alla casella di ricerca" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura in altà qualità" - }, - "hdThumbnails": { - "message": "Miniature in alta qualità" - }, - "header": { - "message": "Intestazione" - }, - "hidden": { - "message": "Nascosta/i" - }, - "hiddenOnVideoPage": { - "message": "Nascosta nella pagina video" - }, - "hideAnimatedThumbnails": { - "message": "Nascondi miniature animate" - }, - "hideAnnotations": { - "message": "Nascondi annotazioni" - }, - "hideCards": { - "message": "Nascondi tessere di fine video" - }, - "hideDetails": { - "message": "Nascondi dettagli" - }, - "hideEndscreen": { - "message": "Nascondi finale video" - }, - "hideFeaturedContent": { - "message": "Nascondi contenuti in primo piano" - }, - "hideFooter": { - "message": "Nascondi footer" - }, - "hidePlaylist": { - "message": "Nascondi playlist" - }, - "hideRightButtons": { - "message": "Nascondi pulsanti sulla destra" - }, - "hideScrollForDetails": { - "message": "Nascondi «Scorri per dettagli»" - }, - "hideViewsCount": { - "message": "Nascondi contatore visualizzazioni" - }, - "history": { - "message": "Cronologia" - }, - "home": { - "message": "Pagina iniziale" - }, - "hover": { - "message": "In sospensione" - }, - "hoverOnVideoPage": { - "message": "In sospensione sulla pagine del video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Quanto tempo fa il video è stato caricato" - }, - "icons": { - "message": "Icone" - }, - "iconsOnly": { - "message": "Solo icone" - }, - "importSettings": { - "message": "Importa impostazioni" - }, - "improveLogo": { - "message": "Migliora logo" - }, - "improvedtubeIconInBrowser": { - "message": "Icona ImprovedTube nel browser" - }, - "improvedtubeIconOnYoutube": { - "message": "Icona ImprovedTube su YouTube" - }, - "improvedtubeLanguage": { - "message": "Lingua ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versione ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Aumenta velocità riproduzione" - }, - "increaseVolume": { - "message": "Aumenta volume" - }, - "indigo": { - "message": "Indaco" - }, - "items": { - "message": "Oggetti" - }, - "languages": { - "message": "Lingue" - }, - "legacyYoutube": { - "message": "YouTube versione legacy" - }, - "light": { - "message": "Chiaro" - }, - "lightBlue": { - "message": "Blu chiaro" - }, - "lightGreen": { - "message": "Verde chiaro" - }, - "like": { - "message": "Mi piace" - }, - "likes": { - "message": "Numero di Mi piace" - }, - "lime": { - "message": "Lime" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Chat dal vivo" - }, - "liveChatType": { - "message": "Tipologia chat dal vivo" - }, - "loudnessNormalization": { - "message": "Normalizzazione rumorosità" - }, - "markWatchedVideos": { - "message": "Contrassegna video visti" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "Miei colori" - }, - "name": { - "message": "Nome" - }, - "nativeMiniPlayer": { - "message": "Mini lettore nativo" - }, - "new": { - "message": "Nuovo" - }, - "nextVideo": { - "message": "Prossimo video" - }, - "night": { - "message": "Notte" - }, - "noActiveFeatures": { - "message": "Nessuna funzionalità attiva" - }, - "noOpenVideoTabs": { - "message": "Nessuna scheda video aperta" - }, - "none": { - "message": "Alcuno/a" - }, - "normal": { - "message": "Standard" - }, - "old": { - "message": "Vecchio" - }, - "onAllVideos": { - "message": "Su tutti i video" - }, - "onSubscribedChannels": { - "message": "Su canali iscritti" - }, - "onlyActiveOnYoutube": { - "message": "Attivo solo su YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Istanza unica di riproduzione attiva" - }, - "orange": { - "message": "Arancione" - }, - "os": { - "message": "Sistema operativo" - }, - "other": { - "message": "Altro" - }, - "permissions": { - "message": "Autorizzazioni" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Pianura" - }, - "platform": { - "message": "Piattaforma" - }, - "playPause": { - "message": "Avvio / Pausa" - }, - "playbackSpeed": { - "message": "Velocità riproduzione" - }, - "player": { - "message": "Lettore" - }, - "playerColor": { - "message": "Colore lettore" - }, - "playerSize": { - "message": "Dimensione lettore" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlist" - }, - "popupPlayer": { - "message": "Lettore pop-up" - }, - "position": { - "message": "Posizione" - }, - "pressAnyKeyOrScroll": { - "message": "Premere un qualunque tasto o scorrere" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Premere un qualunque tasto o usare rotella del mouse" - }, - "previousVideo": { - "message": "Video precedente" - }, - "primaryColor": { - "message": "Colore primario" - }, - "purple": { - "message": "Viola" - }, - "quality": { - "message": "Qualità" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Valutaci" - }, - "red": { - "message": "Rosso" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Video correlati" - }, - "removeRelatedSearchResults": { - "message": "Rimuovi risultati di ricerca correlati" - }, - "repeat": { - "message": "Ripeti" - }, - "reset": { - "message": "Reimpostazione" - }, - "resetAllSettings": { - "message": "Reimposta tutte le impostazioni" - }, - "resetAllShortcuts": { - "message": "Reimposta tutte le scorciatoie" - }, - "reverse": { - "message": "Inverti" - }, - "rotate": { - "message": "Ruota" - }, - "save": { - "message": "Salva" - }, - "saveAs": { - "message": "Salva come" - }, - "schedule": { - "message": "Programmazione" - }, - "screen": { - "message": "Schermo" - }, - "screenshot": { - "message": "Screenshot" - }, - "search": { - "message": "Ricerca" - }, - "searchBarOnly": { - "message": "Cerca solamente nella barra" - }, - "seekBackward10Seconds": { - "message": "Muovi indietro 10 secondi" - }, - "seekForward10Seconds": { - "message": "Muovi avanti 10 secondi" - }, - "settings": { - "message": "Impostazioni" - }, - "settingsSuccessfullyImported": { - "message": "Impostazioni importate con successo" - }, - "shortcuts": { - "message": "Scorciatoie" - }, - "showCardsOnMouseHover": { - "message": "Mostra tessere di fine video al passaggio del mouse" - }, - "showChannelVideosCount": { - "message": "Mostra contatore visualizzazioni canale" - }, - "shuffle": { - "message": "Riproduzione casuale" - }, - "sidebar": { - "message": "Barra laterale" - }, - "spacebar": { - "message": "Barra spaziatrice" - }, - "squaredUserImages": { - "message": "Immagini utenti squadrate" - }, - "static": { - "message": "Statica" - }, - "stop": { - "message": "Arresto" - }, - "style": { - "message": "Stile" - }, - "styles": { - "message": "Stili" - }, - "subscriptions": { - "message": "Sottoscrizioni" - }, - "subtitles": { - "message": "Sottotitoli" - }, - "sunset": { - "message": "Tramonto" - }, - "sunsetToSunrise": { - "message": "Dal tramonto all'alba" - }, - "systemPeferenceDark": { - "message": "Preferenza di sistema: scuro" - }, - "systemPeferenceLight": { - "message": "Preferenza di sistema: chiaro" - }, - "teal": { - "message": "Verde acqua" - }, - "textColor": { - "message": "Colore testo" - }, - "themes": { - "message": "Temi" - }, - "thisWillRemoveAllCookies": { - "message": "Questo rimuoverà tutti i cookie" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Questo rimuoverà tutti i cookie di YouTube" - }, - "thisWillResetAllSettings": { - "message": "Questo rimuoverà tutte le impostazioni" - }, - "thisWillResetAllShortcuts": { - "message": "Questo Reimposterà tutte le scorciatoie" - }, - "thumbnails": { - "message": "Miniature" - }, - "timeFrom": { - "message": "Dalle ore" - }, - "timeTo": { - "message": "Alle ore" - }, - "todayAt": { - "message": "Oggi alle" - }, - "topChat": { - "message": "Chat superiore" - }, - "trailerAutoplay": { - "message": "Avvio automatico trailer" - }, - "translations": { - "message": "Traduzioni" - }, - "transparentBackground": { - "message": "Sfondo trasparente" - }, - "trending": { - "message": "Di tendenza" - }, - "tryToReloadThePage": { - "message": "Provare a ricaricare la pagina" - }, - "type": { - "message": "Tipologia" - }, - "upNextAutoplay": { - "message": "Avvio automatico prossimo video" - }, - "use24HourFormat": { - "message": "Usa formato a 24 ore" - }, - "version": { - "message": "Versione" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La descrizione del video verrà espansa per ottenere il nome della categoria" - }, - "videoFormats": { - "message": "Formati video" - }, - "videos": { - "message": "Video" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Guarda più tardi" - }, - "watchTime": { - "message": "Tempo di visione" - }, - "whenTabIsChanged": { - "message": "Quando la scheda è cambiata" - }, - "white": { - "message": "Bianco" - }, - "yellow": { - "message": "Giallo" - }, - "youtubeHeaderLeft": { - "message": "Intestazione YouTube (sinistra)" - }, - "youtubeHeaderRight": { - "message": "Intestazione YouTube (destra)" - }, - "youtubeHomePage": { - "message": "Pagina iniziale YouTube" - }, - "youtubeLanguage": { - "message": "Lingua YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limita la qualità video a 1080p per il codec h.264" - } -} + "about": { + "message": "Al riguardo" + }, + "accept": { + "message": "Accetta" + }, + "activate": { + "message": "Attivo/a" + }, + "activateCaptions": { + "message": "Attiva didascalie" + }, + "activated": { + "message": "Attivato/a" + }, + "activatedFeatures": { + "message": "Funzionalità attivate" + }, + "activateFullscreen": { + "message": "Attiva schermo intero" + }, + "activeFeatures": { + "message": "Funzioni disponibili" + }, + "addScrollToTop": { + "message": "Aggiungi «Scorri in cima»" + }, + "ads": { + "message": "Pubblicità" + }, + "all": { + "message": "Tutte" + }, + "allow": { + "message": "Permetti" + }, + "allow60fps": { + "message": "Permetti 60 fps" + }, + "alwaysActive": { + "message": "Sempre attivo" + }, + "alwaysShowProgressBar": { + "message": "Mostra sempre barra di avanzamento" + }, + "amber": { + "message": "Ambra" + }, + "analyzer": { + "message": "Analizzatore" + }, + "appearance": { + "message": "Aspetto" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formati audio" + }, + "auto": { + "message": "Automatico" + }, + "autoFullscreen": { + "message": "Schermo intero automatico" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausa automatica al cambio scheda" + }, + "autoplay": { + "message": "Avvio automatico" + }, + "backupAndReset": { + "message": "Backup e reimpostazione" + }, + "baseOnSystemColorScheme": { + "message": "Basato sullo schema colore di sistema" + }, + "belowPlayer": { + "message": "Sotto il lettore" + }, + "black": { + "message": "Nero" + }, + "blacklist": { + "message": "Lista nera" + }, + "blockAll": { + "message": "Blocca tutte" + }, + "blue": { + "message": "Blu" + }, + "blueGray": { + "message": "Grigio blu" + }, + "bluelight": { + "message": "Luce blu" + }, + "brown": { + "message": "Marrone" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Versione browser" + }, + "bubbles": { + "message": "Bolle" + }, + "bug": { + "message": "Difetto" + }, + "buttons": { + "message": "Pulsanti" + }, + "cancel": { + "message": "Annulla" + }, + "categories": { + "message": "Categorie" + }, + "channel": { + "message": "Canale" + }, + "channels": { + "message": "Canali" + }, + "clipboard": { + "message": "Appunti" + }, + "codecH264": { + "message": "Codec H.264" + }, + "collapsed": { + "message": "Compressa/i" + }, + "collapseOfSubscriptionSections": { + "message": "Comprimi sezioni di sottoscrizione" + }, + "comments": { + "message": "Commenti" + }, + "confirmationBeforeClosing": { + "message": "Conferma prima della chiusura" + }, + "cookies": { + "message": "Cookie" + }, + "cores": { + "message": "Core" + }, + "cropChapterTitles": { + "message": "Ritaglia titoli dei capitoli" + }, + "customCss": { + "message": "CSS personalizzato" + }, + "customJs": { + "message": "JS personalizzato" + }, + "customMiniPlayer": { + "message": "Mini lettore personalizzato" + }, + "cyan": { + "message": "Ciano" + }, + "dark": { + "message": "Scuro" + }, + "darkTheme": { + "message": "Tema scuro" + }, + "dateAndTime": { + "message": "Data e ora" + }, + "dawn": { + "message": "Albeggio" + }, + "decreasePlaybackSpeed": { + "message": "Riduci velocità riproduzione" + }, + "decreaseVolume": { + "message": "Riduci volume" + }, + "deepOrange": { + "message": "Arancione profondo" + }, + "deepPurple": { + "message": "Viola profondo" + }, + "defaultChannelTab": { + "message": "Scheda predefinita canale" + }, + "deleteYoutubeCookies": { + "message": "Cancella cookie di YouTube" + }, + "description": { + "message": "Descrizione" + }, + "desert": { + "message": "Deserto" + }, + "details": { + "message": "Dettagli" + }, + "developerOptions": { + "message": "Opzioni per gli sviluppatori" + }, + "device": { + "message": "Dispositivo" + }, + "dim": { + "message": "Smorzamento" + }, + "disabled": { + "message": "Disabilitato" + }, + "dislike": { + "message": "Non gradire" + }, + "donate": { + "message": "Donare" + }, + "doNotChange": { + "message": "Non cambiare" + }, + "draggable": { + "message": "Trascinabile" + }, + "email": { + "message": "E-mail" + }, + "empty": { + "message": "Vuota" + }, + "enabled": { + "message": "Abilitato" + }, + "enabledForced": { + "message": "Abilitato (forzato)" + }, + "expanded": { + "message": "Estesa" + }, + "exportSettings": { + "message": "Esporta impostazioni" + }, + "extension": { + "message": "Estensione" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filtri" + }, + "fitToWindow": { + "message": "Adatta alla finestra" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "footer": { + "message": "Footer" + }, + "forcedPlaybackSpeed": { + "message": "Velocità riproduzione forzata" + }, + "forcedTheaterMode": { + "message": "Modalità cinema forzata" + }, + "forcedVolume": { + "message": "Volume forzato" + }, + "foundABug": { + "message": "Trovato un bug?" + }, + "fullWindow": { + "message": "Finestra intera" + }, + "general": { + "message": "Generale" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Vai alla casella di ricerca" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hdThumbnail": { + "message": "Miniatura in altà qualità" + }, + "hdThumbnails": { + "message": "Miniature in alta qualità" + }, + "header": { + "message": "Intestazione" + }, + "hidden": { + "message": "Nascosta/i" + }, + "hiddenOnVideoPage": { + "message": "Nascosta nella pagina video" + }, + "hideAnimatedThumbnails": { + "message": "Nascondi miniature animate" + }, + "hideAnnotations": { + "message": "Nascondi annotazioni" + }, + "hideCards": { + "message": "Nascondi tessere di fine video" + }, + "hideDetails": { + "message": "Nascondi dettagli" + }, + "hideEndscreen": { + "message": "Nascondi finale video" + }, + "hideFeaturedContent": { + "message": "Nascondi contenuti in primo piano" + }, + "hideFooter": { + "message": "Nascondi footer" + }, + "hideGradientBottom": { + "message": "Nascondi fondo gradiente" + }, + "hidePlaylist": { + "message": "Nascondi playlist" + }, + "hideRightButtons": { + "message": "Nascondi pulsanti sulla destra" + }, + "hideScrollForDetails": { + "message": "Nascondi «Scorri per dettagli»" + }, + "hideViewsCount": { + "message": "Nascondi contatore visualizzazioni" + }, + "history": { + "message": "Cronologia" + }, + "home": { + "message": "Pagina iniziale" + }, + "hover": { + "message": "In sospensione" + }, + "hoverOnVideoPage": { + "message": "In sospensione sulla pagine del video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Quanto tempo fa il video è stato caricato" + }, + "icons": { + "message": "Icone" + }, + "iconsOnly": { + "message": "Solo icone" + }, + "importSettings": { + "message": "Importa impostazioni" + }, + "improvedtubeIconInBrowser": { + "message": "Icona ImprovedTube nel browser" + }, + "improvedtubeIconOnYoutube": { + "message": "Icona ImprovedTube su YouTube" + }, + "improvedtubeLanguage": { + "message": "Lingua ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Versione ImprovedTube" + }, + "improveLogo": { + "message": "Migliora logo" + }, + "increasePlaybackSpeed": { + "message": "Aumenta velocità riproduzione" + }, + "increaseVolume": { + "message": "Aumenta volume" + }, + "indigo": { + "message": "Indaco" + }, + "items": { + "message": "Oggetti" + }, + "languages": { + "message": "Lingue" + }, + "legacyYoutube": { + "message": "YouTube versione legacy" + }, + "light": { + "message": "Chiaro" + }, + "lightBlue": { + "message": "Blu chiaro" + }, + "lightGreen": { + "message": "Verde chiaro" + }, + "like": { + "message": "Mi piace" + }, + "likes": { + "message": "Numero di Mi piace" + }, + "lime": { + "message": "Lime" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Chat dal vivo" + }, + "liveChatType": { + "message": "Tipologia chat dal vivo" + }, + "loudnessNormalization": { + "message": "Normalizzazione rumorosità" + }, + "markWatchedVideos": { + "message": "Contrassegna video visti" + }, + "mixer": { + "message": "Mixer" + }, + "myColors": { + "message": "Miei colori" + }, + "name": { + "message": "Nome" + }, + "nativeMiniPlayer": { + "message": "Mini lettore nativo" + }, + "new": { + "message": "Nuovo" + }, + "nextVideo": { + "message": "Prossimo video" + }, + "night": { + "message": "Notte" + }, + "noActiveFeatures": { + "message": "Nessuna funzionalità attivata" + }, + "none": { + "message": "Alcuno/a" + }, + "noOpenVideoTabs": { + "message": "Nessuna scheda video aperta" + }, + "normal": { + "message": "Standard" + }, + "old": { + "message": "Vecchio" + }, + "onAllVideos": { + "message": "Su tutti i video" + }, + "onlyActiveOnYoutube": { + "message": "Attivo solo su YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Istanza unica di riproduzione attiva" + }, + "onSubscribedChannels": { + "message": "Su canali iscritti" + }, + "orange": { + "message": "Arancione" + }, + "os": { + "message": "Sistema operativo" + }, + "other": { + "message": "Altro" + }, + "permissions": { + "message": "Autorizzazioni" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Pianura" + }, + "platform": { + "message": "Piattaforma" + }, + "playbackSpeed": { + "message": "Velocità riproduzione" + }, + "player": { + "message": "Lettore" + }, + "playerColor": { + "message": "Colore lettore" + }, + "playerSize": { + "message": "Dimensione lettore" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlist" + }, + "playPause": { + "message": "Avvio / Pausa" + }, + "popupPlayer": { + "message": "Lettore pop-up" + }, + "position": { + "message": "Posizione" + }, + "pressAnyKeyOrScroll": { + "message": "Premere un qualunque tasto o scorrere" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Premere un qualunque tasto o usare rotella del mouse" + }, + "previousVideo": { + "message": "Video precedente" + }, + "primaryColor": { + "message": "Colore primario" + }, + "purple": { + "message": "Viola" + }, + "quality": { + "message": "Qualità" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Valutaci" + }, + "red": { + "message": "Rosso" + }, + "redDislikeButton": { + "message": "Mostra pulsante Non mi piace in rosso" + }, + "relatedVideos": { + "message": "Video correlati" + }, + "removeRelatedSearchResults": { + "message": "Rimuovi risultati di ricerca correlati" + }, + "repeat": { + "message": "Ripeti" + }, + "reset": { + "message": "Reimpostazione" + }, + "resetAllSettings": { + "message": "Reimposta tutte le impostazioni" + }, + "resetAllShortcuts": { + "message": "Reimposta tutte le scorciatoie" + }, + "reverse": { + "message": "Inverti" + }, + "rotate": { + "message": "Ruota" + }, + "save": { + "message": "Salva" + }, + "saveAs": { + "message": "Salva come" + }, + "schedule": { + "message": "Programmazione" + }, + "screen": { + "message": "Schermo" + }, + "screenshot": { + "message": "Screenshot" + }, + "search": { + "message": "Ricerca" + }, + "searchBarOnly": { + "message": "Cerca solamente nella barra" + }, + "seekBackward10Seconds": { + "message": "Muovi indietro 10 secondi" + }, + "seekForward10Seconds": { + "message": "Muovi avanti 10 secondi" + }, + "settings": { + "message": "Impostazioni" + }, + "settingsSuccessfullyImported": { + "message": "Impostazioni importate con successo" + }, + "shortcuts": { + "message": "Scorciatoie" + }, + "showCardsOnMouseHover": { + "message": "Mostra tessere di fine video al passaggio del mouse" + }, + "showChannelVideosCount": { + "message": "Mostra contatore visualizzazioni canale" + }, + "shuffle": { + "message": "Riproduzione casuale" + }, + "sidebar": { + "message": "Barra laterale" + }, + "spacebar": { + "message": "Barra spaziatrice" + }, + "squaredUserImages": { + "message": "Immagini utenti squadrate" + }, + "static": { + "message": "Statica" + }, + "statsForNerds": { + "message": "Visualizza statistiche per nerd" + }, + "stop": { + "message": "Arresto" + }, + "style": { + "message": "Stile" + }, + "styles": { + "message": "Stili" + }, + "subscriptions": { + "message": "Sottoscrizioni" + }, + "subtitles": { + "message": "Sottotitoli" + }, + "sunset": { + "message": "Tramonto" + }, + "sunsetToSunrise": { + "message": "Dal tramonto all'alba" + }, + "systemPeferenceDark": { + "message": "Preferenza di sistema: scuro" + }, + "systemPeferenceLight": { + "message": "Preferenza di sistema: chiaro" + }, + "teal": { + "message": "Verde acqua" + }, + "textColor": { + "message": "Colore testo" + }, + "themes": { + "message": "Temi" + }, + "thisWillRemoveAllCookies": { + "message": "Questo rimuoverà tutti i cookie" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Questo rimuoverà tutti i cookie di YouTube" + }, + "thisWillResetAllSettings": { + "message": "Questo rimuoverà tutte le impostazioni" + }, + "thisWillResetAllShortcuts": { + "message": "Questo Reimposterà tutte le scorciatoie" + }, + "thumbnails": { + "message": "Miniature" + }, + "timeFrom": { + "message": "Dalle ore" + }, + "timeTo": { + "message": "Alle ore" + }, + "todayAt": { + "message": "Oggi alle" + }, + "toggleCards": { + "message": "Dis/attiva tessere di fine video" + }, + "topChat": { + "message": "Chat superiore" + }, + "trailerAutoplay": { + "message": "Avvio automatico trailer" + }, + "translations": { + "message": "Traduzioni" + }, + "transparentBackground": { + "message": "Sfondo trasparente" + }, + "trending": { + "message": "Di tendenza" + }, + "tryToReloadThePage": { + "message": "Provare a ricaricare la pagina" + }, + "type": { + "message": "Tipologia" + }, + "upNextAutoplay": { + "message": "Avvio automatico prossimo video" + }, + "use24HourFormat": { + "message": "Usa formato a 24 ore" + }, + "version": { + "message": "Numero versione" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "La descrizione del video verrà espansa per ottenere il nome della categoria" + }, + "videoFormats": { + "message": "Formati video" + }, + "videos": { + "message": "Video" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Guarda più tardi" + }, + "watchTime": { + "message": "Tempo di visione" + }, + "whenTabIsChanged": { + "message": "Quando la scheda è cambiata" + }, + "white": { + "message": "Bianco" + }, + "yellow": { + "message": "Giallo" + }, + "youtubeHeaderLeft": { + "message": "Intestazione YouTube (sinistra)" + }, + "youtubeHeaderRight": { + "message": "Intestazione YouTube (destra)" + }, + "youtubeHomePage": { + "message": "Pagina iniziale YouTube" + }, + "youtubeLanguage": { + "message": "Lingua YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limita la qualità video a 1080p per il codec h.264" + } +} \ No newline at end of file diff --git a/stable/_locales/ja/messages.json b/stable/_locales/ja/messages.json index 40092685c..4961c702c 100644 --- a/stable/_locales/ja/messages.json +++ b/stable/_locales/ja/messages.json @@ -1,800 +1,809 @@ -{ - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "このソフトについて" - }, - "accept": { - "message": "了解" - }, - "activate": { - "message": "有効にする" - }, - "activateCaptions": { - "message": "キャプションを有効にする" - }, - "activateFullscreen": { - "message": "全画面にする" - }, - "activated": { - "message": "有効化" - }, - "activatedFeatures": { - "message": "有効化された機能" - }, - "activeFeatures": { - "message": "機能の切り替え" - }, - "addScrollToTop": { - "message": "「一番上にスクロール」のボタンを追加する" - }, - "ads": { - "message": "広告" - }, - "all": { - "message": "すべて" - }, - "allow": { - "message": "許可" - }, - "allow60fps": { - "message": "60fpsを許可する" - }, - "alwaysActive": { - "message": "常に有効" - }, - "alwaysShowProgressBar": { - "message": "常にプログレスバーを表示する" - }, - "amber": { - "message": "アンバー" - }, - "analyzer": { - "message": "分析" - }, - "appearance": { - "message": "外観" - }, - "audio": { - "message": "音声" - }, - "audioFormats": { - "message": "音声形式" - }, - "auto": { - "message": "自動" - }, - "autoFullscreen": { - "message": "自動的に全画面にする" - }, - "autopauseWhenSwitchingTabs": { - "message": "タブ切り替えで自動的に一時停止" - }, - "autoplay": { - "message": "自動再生" - }, - "backupAndReset": { - "message": "バックアップとリセット" - }, - "baseOnSystemColorScheme": { - "message": "システムの色に合わせる" - }, - "belowPlayer": { - "message": "プレーヤーの下" - }, - "black": { - "message": "黒" - }, - "blacklist": { - "message": "ブラックリスト" - }, - "blockAll": { - "message": "すべてブロックする" - }, - "blue": { - "message": "青" - }, - "blueGray": { - "message": "青みがかった灰" - }, - "bluelight": { - "message": "ブルーライト" - }, - "brown": { - "message": "茶" - }, - "browser": { - "message": "ブラウザー" - }, - "browserVersion": { - "message": "ブラウザーのバージョン" - }, - "bubbles": { - "message": "バブル" - }, - "bug": { - "message": "バグ" - }, - "buttons": { - "message": "ボタン" - }, - "cancel": { - "message": "キャンセル" - }, - "categories": { - "message": "カテゴリー" - }, - "channel": { - "message": "チャンネル" - }, - "channels": { - "message": "チャンネル" - }, - "clipboard": { - "message": "クリップボード" - }, - "codecH264": { - "message": "H.264コーデック" - }, - "collapseOfSubscriptionSections": { - "message": "サブスクリプション部分を畳む" - }, - "collapsed": { - "message": "畳む" - }, - "comments": { - "message": "コメント" - }, - "confirmationBeforeClosing": { - "message": "閉じる前に確認する" - }, - "cookies": { - "message": "Cookie" - }, - "cores": { - "message": "コア数" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "カスタム CSS" - }, - "customJs": { - "message": "カスタム JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "シアン" - }, - "dark": { - "message": "ダーク" - }, - "darkTheme": { - "message": "ダークテーマ" - }, - "dateAndTime": { - "message": "日付と時刻" - }, - "dawn": { - "message": "夜明け" - }, - "decreasePlaybackSpeed": { - "message": "再生速度を下げる" - }, - "decreaseVolume": { - "message": "音量を下げる" - }, - "deepOrange": { - "message": "深いオレンジ" - }, - "deepPurple": { - "message": "深い紫" - }, - "defaultChannelTab": { - "message": "デフォルトのチャンネルタブ" - }, - "deleteYoutubeCookies": { - "message": "YouTube の Cookie を削除する" - }, - "description": { - "message": "説明" - }, - "desert": { - "message": "砂漠" - }, - "details": { - "message": "詳細" - }, - "developerOptions": { - "message": "開発者向けオプション" - }, - "device": { - "message": "デバイス" - }, - "dim": { - "message": "暗さ" - }, - "disabled": { - "message": "無効" - }, - "dislike": { - "message": "低評価" - }, - "doNotChange": { - "message": "変更しない" - }, - "donate": { - "message": "寄付する" - }, - "draggable": { - "message": "ドラッグ可能にする" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "なし" - }, - "enabled": { - "message": "有効" - }, - "enabledForced": { - "message": "有効 (強制)" - }, - "expanded": { - "message": "広げる" - }, - "exportSettings": { - "message": "設定をエクスポートする" - }, - "extension": { - "message": "拡張" - }, - "file": { - "message": "ファイル" - }, - "filters": { - "message": "フィルター" - }, - "fitToWindow": { - "message": "ウィンドウに合わせる" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "フォント" - }, - "footer": { - "message": "フッター" - }, - "forcedPlaybackSpeed": { - "message": "再生速度を指定する" - }, - "forcedTheaterMode": { - "message": "シアターモードにする" - }, - "forcedVolume": { - "message": "音量を指定する" - }, - "foundABug": { - "message": "バグ報告" - }, - "fullWindow": { - "message": "フルウィンドウ" - }, - "general": { - "message": "一般" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "検索ボックスに行く" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "緑" - }, - "hdThumbnail": { - "message": "HDサムネイル" - }, - "hdThumbnails": { - "message": "HDサムネイル" - }, - "header": { - "message": "ヘッダー" - }, - "hidden": { - "message": "隠す" - }, - "hiddenOnVideoPage": { - "message": "動画ページでは隠す" - }, - "hideAnimatedThumbnails": { - "message": "サムネイルのアニメーションを行わない" - }, - "hideAnnotations": { - "message": "アノテーションを隠す" - }, - "hideCards": { - "message": "カードを隠す" - }, - "hideDetails": { - "message": "詳細を隠す" - }, - "hideEndscreen": { - "message": "再生終了時の画面を隠す" - }, - "hideFeaturedContent": { - "message": "おすすめチャンネルを非表示にする" - }, - "hideFooter": { - "message": "フッターを隠す" - }, - "hidePlaylist": { - "message": "再生リストを隠す" - }, - "hideRightButtons": { - "message": "右ボタンを隠す" - }, - "hideScrollForDetails": { - "message": "「スクロールして詳細を表示」を隠す" - }, - "hideViewsCount": { - "message": "視聴数を隠す" - }, - "history": { - "message": "履歴" - }, - "home": { - "message": "ホーム" - }, - "hover": { - "message": "ホバー" - }, - "hoverOnVideoPage": { - "message": "動画ページではホバー" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "動画がアップロードされてからの時間" - }, - "icons": { - "message": "アイコン" - }, - "iconsOnly": { - "message": "アイコンのみ" - }, - "importSettings": { - "message": "設定をインポートする" - }, - "improveLogo": { - "message": "ロゴを改良する" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTubeアイコンをブラウザに表示する" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTubeアイコンをYouTubeに表示する" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube の言語" - }, - "improvedtubeVersion": { - "message": "ImprovedTube のバージョン" - }, - "increasePlaybackSpeed": { - "message": "再生速度を上げる" - }, - "increaseVolume": { - "message": "音量を上げる" - }, - "indigo": { - "message": "インディゴ" - }, - "items": { - "message": "アイテム" - }, - "languages": { - "message": "言語" - }, - "legacyYoutube": { - "message": "古い YouTube にする" - }, - "light": { - "message": "ライト" - }, - "lightBlue": { - "message": "薄い青" - }, - "lightGreen": { - "message": "薄い緑" - }, - "like": { - "message": "高評価" - }, - "likes": { - "message": "高評価" - }, - "lime": { - "message": "ライム" - }, - "list": { - "message": "リスト" - }, - "liveChat": { - "message": "ライブチャット" - }, - "liveChatType": { - "message": "ライブチャットの種類" - }, - "loudnessNormalization": { - "message": "音量のノーマリゼーション" - }, - "markWatchedVideos": { - "message": "視聴した動画にマークを付ける" - }, - "mixer": { - "message": "ミキサー" - }, - "myColors": { - "message": "色設定" - }, - "name": { - "message": "名前" - }, - "nativeMiniPlayer": { - "message": "ネイティブミニプレーヤー" - }, - "new": { - "message": "新規" - }, - "nextVideo": { - "message": "次の動画" - }, - "night": { - "message": "夜" - }, - "noActiveFeatures": { - "message": "有効化された機能がありません" - }, - "noOpenVideoTabs": { - "message": "開いている動画タブがありません" - }, - "none": { - "message": "なし" - }, - "normal": { - "message": "標準" - }, - "old": { - "message": "Old" - }, - "onAllVideos": { - "message": "すべて許可する" - }, - "onSubscribedChannels": { - "message": "登録したチャンネルでは許可する" - }, - "onlyActiveOnYoutube": { - "message": "YouTube で有効" - }, - "onlyOnePlayerInstancePlaying": { - "message": "1つのプレーヤーインスタンスのみにする" - }, - "orange": { - "message": "オレンジ" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "その他" - }, - "permissions": { - "message": "権限" - }, - "pictureInPicture": { - "message": "ピクチャーインピクチャー" - }, - "pink": { - "message": "ピンク" - }, - "plain": { - "message": "プレーン" - }, - "platform": { - "message": "プラットフォーム" - }, - "playPause": { - "message": "再生/一時停止" - }, - "playbackSpeed": { - "message": "再生速度" - }, - "player": { - "message": "プレーヤー" - }, - "playerColor": { - "message": "プレーヤーの色" - }, - "playerSize": { - "message": "プレーヤーのサイズ" - }, - "playlist": { - "message": "再生リスト" - }, - "playlists": { - "message": "再生リスト" - }, - "popupPlayer": { - "message": "ポップアッププレーヤー" - }, - "position": { - "message": "位置" - }, - "pressAnyKeyOrScroll": { - "message": "任意のキーを押すか、マウスホイールを使用してください" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "任意のキーを押すか、マウスホイールを使用してください" - }, - "previousVideo": { - "message": "前の動画" - }, - "primaryColor": { - "message": "全体の色" - }, - "purple": { - "message": "紫" - }, - "quality": { - "message": "画質" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "評価する" - }, - "red": { - "message": "赤" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "関連動画" - }, - "removeRelatedSearchResults": { - "message": "関連動画を検索結果から削除する" - }, - "repeat": { - "message": "リピート" - }, - "reset": { - "message": "リセット" - }, - "resetAllSettings": { - "message": "すべての設定をリセットする" - }, - "resetAllShortcuts": { - "message": "すべてのショートカットをリセットする" - }, - "reverse": { - "message": "逆順にする" - }, - "rotate": { - "message": "回転" - }, - "save": { - "message": "保存" - }, - "saveAs": { - "message": "別名で保存する" - }, - "schedule": { - "message": "スケジュール" - }, - "screen": { - "message": "スクリーン" - }, - "screenshot": { - "message": "スクリーンショット" - }, - "search": { - "message": "検索" - }, - "searchBarOnly": { - "message": "検索バーのみ" - }, - "seekBackward10Seconds": { - "message": "10秒戻る" - }, - "seekForward10Seconds": { - "message": "10秒進む" - }, - "settings": { - "message": "設定" - }, - "settingsSuccessfullyImported": { - "message": "設定を正常にインポートしました" - }, - "shortcuts": { - "message": "ショートカット" - }, - "showCardsOnMouseHover": { - "message": "マウスオーバーでカードを表示する" - }, - "showChannelVideosCount": { - "message": "チャンネルの動画数を表示する" - }, - "shuffle": { - "message": "シャッフル" - }, - "sidebar": { - "message": "サイドバー" - }, - "spacebar": { - "message": "スペースキー" - }, - "squaredUserImages": { - "message": "ユーザー画像を四角にする" - }, - "static": { - "message": "スタティック" - }, - "step": { - "message": "ステップ" - }, - "stop": { - "message": "停止" - }, - "style": { - "message": "スタイル" - }, - "styles": { - "message": "スタイル" - }, - "subscriptions": { - "message": "登録チャンネル" - }, - "subtitles": { - "message": "サブタイトル" - }, - "sunset": { - "message": "夕焼け" - }, - "sunsetToSunrise": { - "message": "夕焼けから日の出へ" - }, - "systemPeferenceDark": { - "message": "システム設定: ダーク" - }, - "systemPeferenceLight": { - "message": "システム設定: ライト" - }, - "teal": { - "message": "ティール" - }, - "textColor": { - "message": "文字の色" - }, - "themes": { - "message": "テーマ" - }, - "thisWillRemoveAllCookies": { - "message": "これはすべての Cookie を削除します。" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "YouTube のすべての Cookie を削除します" - }, - "thisWillResetAllSettings": { - "message": "すべての設定をリセットします。" - }, - "thisWillResetAllShortcuts": { - "message": "すべてのショートカットをリセットします" - }, - "thumbnails": { - "message": "サムネイル" - }, - "timeFrom": { - "message": "この時間から" - }, - "timeTo": { - "message": "この時間まで" - }, - "todayAt": { - "message": "測定時刻" - }, - "topChat": { - "message": "上位チャット" - }, - "trailerAutoplay": { - "message": "トレーラーを自動再生する" - }, - "translations": { - "message": "翻訳" - }, - "transparentBackground": { - "message": "透明な背景" - }, - "trending": { - "message": "急上昇" - }, - "tryToReloadThePage": { - "message": "ページをリロードしてみてください" - }, - "type": { - "message": "種類" - }, - "upNextAutoplay": { - "message": "次の動画を自動再生する" - }, - "use24HourFormat": { - "message": "24時間表示にする" - }, - "version": { - "message": "バージョン" - }, - "video": { - "message": "動画" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "動画の説明はカテゴリ名を取得するために広げられます" - }, - "videoFormats": { - "message": "動画形式" - }, - "videos": { - "message": "動画" - }, - "volume": { - "message": "音量" - }, - "watchLater": { - "message": "後で見る" - }, - "watchTime": { - "message": "視聴時間" - }, - "whenTabIsChanged": { - "message": "タブを変更したとき" - }, - "white": { - "message": "白" - }, - "yellow": { - "message": "黄" - }, - "youtubeHeaderLeft": { - "message": "YouTube のヘッダー左" - }, - "youtubeHeaderRight": { - "message": "YouTube のヘッダー右" - }, - "youtubeHomePage": { - "message": "YouTube のホームページ" - }, - "youtubeLanguage": { - "message": "YouTube の言語" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube はH.264コーデックの画質を1080pに制限しています" - } -} +{ + "about": { + "message": "このソフトについて" + }, + "accept": { + "message": "了解" + }, + "activate": { + "message": "有効にする" + }, + "activateCaptions": { + "message": "キャプションを有効にする" + }, + "activated": { + "message": "有効化" + }, + "activatedFeatures": { + "message": "有効化された機能" + }, + "activateFullscreen": { + "message": "全画面にする" + }, + "activeFeatures": { + "message": "機能の切り替え" + }, + "addScrollToTop": { + "message": "「一番上にスクロール」のボタンを追加する" + }, + "ads": { + "message": "広告" + }, + "all": { + "message": "すべて" + }, + "allow": { + "message": "許可" + }, + "allow60fps": { + "message": "60fpsを許可する" + }, + "alwaysActive": { + "message": "常に有効" + }, + "alwaysShowProgressBar": { + "message": "常にプログレスバーを表示する" + }, + "amber": { + "message": "アンバー" + }, + "analyzer": { + "message": "分析" + }, + "appearance": { + "message": "外観" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "音声" + }, + "audioFormats": { + "message": "音声形式" + }, + "auto": { + "message": "自動" + }, + "autoFullscreen": { + "message": "自動的に全画面にする" + }, + "autopauseWhenSwitchingTabs": { + "message": "タブ切り替えで自動的に一時停止" + }, + "autoplay": { + "message": "自動再生" + }, + "backupAndReset": { + "message": "バックアップとリセット" + }, + "baseOnSystemColorScheme": { + "message": "システムの色に合わせる" + }, + "belowPlayer": { + "message": "プレーヤーの下" + }, + "black": { + "message": "黒" + }, + "blacklist": { + "message": "ブラックリスト" + }, + "blockAll": { + "message": "すべてブロックする" + }, + "blue": { + "message": "青" + }, + "blueGray": { + "message": "青みがかった灰" + }, + "bluelight": { + "message": "ブルーライト" + }, + "brown": { + "message": "茶" + }, + "browser": { + "message": "ブラウザー" + }, + "browserVersion": { + "message": "ブラウザーのバージョン" + }, + "bubbles": { + "message": "バブル" + }, + "bug": { + "message": "バグ" + }, + "buttons": { + "message": "ボタン" + }, + "cancel": { + "message": "キャンセル" + }, + "categories": { + "message": "カテゴリー" + }, + "channel": { + "message": "チャンネル" + }, + "channels": { + "message": "チャンネル" + }, + "clipboard": { + "message": "クリップボード" + }, + "codecH264": { + "message": "H.264コーデック" + }, + "collapsed": { + "message": "畳む" + }, + "collapseOfSubscriptionSections": { + "message": "サブスクリプション部分を畳む" + }, + "comments": { + "message": "コメント" + }, + "confirmationBeforeClosing": { + "message": "閉じる前に確認する" + }, + "cookies": { + "message": "Cookie" + }, + "cores": { + "message": "コア数" + }, + "cropChapterTitles": { + "message": "チャプターのタイトルをトリミングする" + }, + "customCss": { + "message": "カスタム CSS" + }, + "customJs": { + "message": "カスタム JS" + }, + "customMiniPlayer": { + "message": "カスタムミニプレーヤー" + }, + "cyan": { + "message": "シアン" + }, + "dark": { + "message": "ダーク" + }, + "darkTheme": { + "message": "ダークテーマ" + }, + "dateAndTime": { + "message": "日付と時刻" + }, + "dawn": { + "message": "夜明け" + }, + "decreasePlaybackSpeed": { + "message": "再生速度を下げる" + }, + "decreaseVolume": { + "message": "音量を下げる" + }, + "deepOrange": { + "message": "深いオレンジ" + }, + "deepPurple": { + "message": "深い紫" + }, + "defaultChannelTab": { + "message": "デフォルトのチャンネルタブ" + }, + "deleteYoutubeCookies": { + "message": "YouTube の Cookie を削除する" + }, + "description": { + "message": "説明" + }, + "desert": { + "message": "砂漠" + }, + "details": { + "message": "詳細" + }, + "developerOptions": { + "message": "開発者向けオプション" + }, + "device": { + "message": "デバイス" + }, + "dim": { + "message": "暗さ" + }, + "disabled": { + "message": "無効" + }, + "dislike": { + "message": "低評価" + }, + "donate": { + "message": "寄付する" + }, + "doNotChange": { + "message": "変更しない" + }, + "draggable": { + "message": "ドラッグ可能にする" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "なし" + }, + "enabled": { + "message": "有効" + }, + "enabledForced": { + "message": "有効 (強制)" + }, + "expanded": { + "message": "広げる" + }, + "exportSettings": { + "message": "設定をエクスポートする" + }, + "extension": { + "message": "拡張" + }, + "file": { + "message": "ファイル" + }, + "filters": { + "message": "フィルター" + }, + "fitToWindow": { + "message": "ウィンドウに合わせる" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "フォント" + }, + "footer": { + "message": "フッター" + }, + "forcedPlaybackSpeed": { + "message": "再生速度を指定する" + }, + "forcedTheaterMode": { + "message": "シアターモードにする" + }, + "forcedVolume": { + "message": "音量を指定する" + }, + "foundABug": { + "message": "バグ報告" + }, + "fullWindow": { + "message": "フルウィンドウ" + }, + "general": { + "message": "一般" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "検索ボックスに行く" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "緑" + }, + "hdThumbnail": { + "message": "HDサムネイル" + }, + "hdThumbnails": { + "message": "HDサムネイル" + }, + "header": { + "message": "ヘッダー" + }, + "hidden": { + "message": "隠す" + }, + "hiddenOnVideoPage": { + "message": "動画ページでは隠す" + }, + "hideAnimatedThumbnails": { + "message": "サムネイルのアニメーションを行わない" + }, + "hideAnnotations": { + "message": "アノテーションを隠す" + }, + "hideCards": { + "message": "カードを隠す" + }, + "hideDetails": { + "message": "詳細を隠す" + }, + "hideEndscreen": { + "message": "再生終了時の画面を隠す" + }, + "hideFeaturedContent": { + "message": "おすすめチャンネルを非表示にする" + }, + "hideFooter": { + "message": "フッターを隠す" + }, + "hideGradientBottom": { + "message": "グラデーションの下部を隠す" + }, + "hidePlaylist": { + "message": "再生リストを隠す" + }, + "hideRightButtons": { + "message": "右ボタンを隠す" + }, + "hideScrollForDetails": { + "message": "「スクロールして詳細を表示」を隠す" + }, + "hideViewsCount": { + "message": "視聴数を隠す" + }, + "history": { + "message": "履歴" + }, + "home": { + "message": "ホーム" + }, + "hover": { + "message": "ホバー" + }, + "hoverOnVideoPage": { + "message": "動画ページではホバー" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "動画がアップロードされてからの時間" + }, + "icons": { + "message": "アイコン" + }, + "iconsOnly": { + "message": "アイコンのみ" + }, + "importSettings": { + "message": "設定をインポートする" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTubeアイコンをブラウザに表示する" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTubeアイコンをYouTubeに表示する" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube の言語" + }, + "improvedtubeVersion": { + "message": "ImprovedTube のバージョン" + }, + "improveLogo": { + "message": "ロゴを改良する" + }, + "increasePlaybackSpeed": { + "message": "再生速度を上げる" + }, + "increaseVolume": { + "message": "音量を上げる" + }, + "indigo": { + "message": "インディゴ" + }, + "items": { + "message": "アイテム" + }, + "languages": { + "message": "言語" + }, + "legacyYoutube": { + "message": "古い YouTube にする" + }, + "light": { + "message": "ライト" + }, + "lightBlue": { + "message": "薄い青" + }, + "lightGreen": { + "message": "薄い緑" + }, + "like": { + "message": "高評価" + }, + "likes": { + "message": "評価" + }, + "lime": { + "message": "ライム" + }, + "list": { + "message": "リスト" + }, + "liveChat": { + "message": "ライブチャット" + }, + "liveChatType": { + "message": "ライブチャットの種類" + }, + "loudnessNormalization": { + "message": "音量のノーマリゼーション" + }, + "markWatchedVideos": { + "message": "視聴した動画にマークを付ける" + }, + "mixer": { + "message": "ミキサー" + }, + "myColors": { + "message": "色設定" + }, + "name": { + "message": "名前" + }, + "nativeMiniPlayer": { + "message": "ネイティブミニプレーヤー" + }, + "new": { + "message": "新規" + }, + "nextVideo": { + "message": "次の動画" + }, + "night": { + "message": "夜" + }, + "noActiveFeatures": { + "message": "有効化された機能がありません" + }, + "none": { + "message": "なし" + }, + "noOpenVideoTabs": { + "message": "開いている動画タブがありません" + }, + "normal": { + "message": "標準" + }, + "old": { + "message": "Old" + }, + "onAllVideos": { + "message": "すべて許可する" + }, + "onlyActiveOnYoutube": { + "message": "YouTube で有効" + }, + "onlyOnePlayerInstancePlaying": { + "message": "1つのプレーヤーインスタンスのみにする" + }, + "onSubscribedChannels": { + "message": "登録したチャンネルでは許可する" + }, + "orange": { + "message": "オレンジ" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "その他" + }, + "permissions": { + "message": "権限" + }, + "pictureInPicture": { + "message": "ピクチャーインピクチャー" + }, + "pink": { + "message": "ピンク" + }, + "plain": { + "message": "プレーン" + }, + "platform": { + "message": "プラットフォーム" + }, + "playbackSpeed": { + "message": "再生速度" + }, + "player": { + "message": "プレーヤー" + }, + "playerColor": { + "message": "プレーヤーの色" + }, + "playerSize": { + "message": "プレーヤーのサイズ" + }, + "playlist": { + "message": "再生リスト" + }, + "playlists": { + "message": "再生リスト" + }, + "playPause": { + "message": "再生/一時停止" + }, + "popupPlayer": { + "message": "ポップアッププレーヤー" + }, + "position": { + "message": "位置" + }, + "pressAnyKeyOrScroll": { + "message": "任意のキーを押すか、マウスホイールを使用してください" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "任意のキーを押すか、マウスホイールを使用してください" + }, + "previousVideo": { + "message": "前の動画" + }, + "primaryColor": { + "message": "全体の色" + }, + "purple": { + "message": "紫" + }, + "quality": { + "message": "画質" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "評価する" + }, + "red": { + "message": "赤" + }, + "redDislikeButton": { + "message": "低評価ボタンを赤色で表示する" + }, + "relatedVideos": { + "message": "関連動画" + }, + "removeRelatedSearchResults": { + "message": "関連動画を検索結果から削除する" + }, + "repeat": { + "message": "リピート" + }, + "reset": { + "message": "リセット" + }, + "resetAllSettings": { + "message": "すべての設定をリセットする" + }, + "resetAllShortcuts": { + "message": "すべてのショートカットをリセットする" + }, + "reverse": { + "message": "逆順にする" + }, + "rotate": { + "message": "回転" + }, + "save": { + "message": "保存" + }, + "saveAs": { + "message": "別名で保存する" + }, + "schedule": { + "message": "スケジュール" + }, + "screen": { + "message": "スクリーン" + }, + "screenshot": { + "message": "スクリーンショット" + }, + "search": { + "message": "検索" + }, + "searchBarOnly": { + "message": "検索バーのみ" + }, + "seekBackward10Seconds": { + "message": "10秒戻る" + }, + "seekForward10Seconds": { + "message": "10秒進む" + }, + "settings": { + "message": "設定" + }, + "settingsSuccessfullyImported": { + "message": "設定を正常にインポートしました" + }, + "shortcuts": { + "message": "ショートカット" + }, + "showCardsOnMouseHover": { + "message": "マウスオーバーでカードを表示する" + }, + "showChannelVideosCount": { + "message": "チャンネルの動画数を表示する" + }, + "shuffle": { + "message": "シャッフル" + }, + "sidebar": { + "message": "サイドバー" + }, + "spacebar": { + "message": "スペースキー" + }, + "squaredUserImages": { + "message": "ユーザー画像を四角にする" + }, + "static": { + "message": "スタティック" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "ステップ" + }, + "stop": { + "message": "停止" + }, + "style": { + "message": "スタイル" + }, + "styles": { + "message": "スタイル" + }, + "subscriptions": { + "message": "登録チャンネル" + }, + "subtitles": { + "message": "サブタイトル" + }, + "sunset": { + "message": "夕焼け" + }, + "sunsetToSunrise": { + "message": "夕焼けから日の出へ" + }, + "systemPeferenceDark": { + "message": "システム設定: ダーク" + }, + "systemPeferenceLight": { + "message": "システム設定: ライト" + }, + "teal": { + "message": "ティール" + }, + "textColor": { + "message": "文字の色" + }, + "themes": { + "message": "テーマ" + }, + "thisWillRemoveAllCookies": { + "message": "これはすべての Cookie を削除します。" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "YouTube のすべての Cookie を削除します" + }, + "thisWillResetAllSettings": { + "message": "すべての設定をリセットします。" + }, + "thisWillResetAllShortcuts": { + "message": "すべてのショートカットをリセットします" + }, + "thumbnails": { + "message": "サムネイル" + }, + "timeFrom": { + "message": "この時間から" + }, + "timeTo": { + "message": "この時間まで" + }, + "todayAt": { + "message": "測定時刻" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "上位チャット" + }, + "trailerAutoplay": { + "message": "トレーラーを自動再生する" + }, + "translations": { + "message": "翻訳" + }, + "transparentBackground": { + "message": "透明な背景" + }, + "trending": { + "message": "急上昇" + }, + "tryToReloadThePage": { + "message": "ページをリロードしてみてください" + }, + "type": { + "message": "種類" + }, + "upNextAutoplay": { + "message": "次の動画を自動再生する" + }, + "use24HourFormat": { + "message": "24時間表示にする" + }, + "version": { + "message": "バージョン" + }, + "video": { + "message": "動画" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "動画の説明はカテゴリ名を取得するために広げられます" + }, + "videoFormats": { + "message": "動画形式" + }, + "videos": { + "message": "動画" + }, + "volume": { + "message": "音量" + }, + "watchLater": { + "message": "後で見る" + }, + "watchTime": { + "message": "視聴時間" + }, + "whenTabIsChanged": { + "message": "タブを変更したとき" + }, + "white": { + "message": "白" + }, + "yellow": { + "message": "黄" + }, + "youtubeHeaderLeft": { + "message": "YouTube のヘッダー左" + }, + "youtubeHeaderRight": { + "message": "YouTube のヘッダー右" + }, + "youtubeHomePage": { + "message": "YouTube のホームページ" + }, + "youtubeLanguage": { + "message": "YouTube の言語" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube はH.264コーデックの画質を1080pに制限しています" + } +} \ No newline at end of file diff --git a/stable/_locales/ko/messages.json b/stable/_locales/ko/messages.json index d44bbad92..c3402b28a 100644 --- a/stable/_locales/ko/messages.json +++ b/stable/_locales/ko/messages.json @@ -1,797 +1,806 @@ -{ - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "About" - }, - "accept": { - "message": "동의" - }, - "activate": { - "message": "활성화" - }, - "activateCaptions": { - "message": "자막 활성화" - }, - "activateFullscreen": { - "message": "전체화면 활성화" - }, - "activated": { - "message": "활성화됨" - }, - "activatedFeatures": { - "message": "활성화된 기능" - }, - "activeFeatures": { - "message": "활성 기능" - }, - "addScrollToTop": { - "message": "\u003C\u003C맨위로>> 추가" - }, - "ads": { - "message": "광고" - }, - "all": { - "message": "모두" - }, - "allow": { - "message": "허용" - }, - "allow60fps": { - "message": "60fps 허용" - }, - "alwaysActive": { - "message": "항상 활성화" - }, - "alwaysShowProgressBar": { - "message": "재생 진행 상태 항상 표시" - }, - "amber": { - "message": "호박색" - }, - "analyzer": { - "message": "분석" - }, - "appearance": { - "message": "외관" - }, - "audio": { - "message": "오디오" - }, - "audioFormats": { - "message": "오디오 형식" - }, - "auto": { - "message": "자동" - }, - "autoFullscreen": { - "message": "자동 전체화면" - }, - "autopauseWhenSwitchingTabs": { - "message": "탭전환시 자동 일시정지" - }, - "autoplay": { - "message": "자동재생" - }, - "backupAndReset": { - "message": "백업 & 리셋" - }, - "baseOnSystemColorScheme": { - "message": "시스템 색 구성표 기반" - }, - "belowPlayer": { - "message": "플레이어 아래" - }, - "black": { - "message": "검정" - }, - "blacklist": { - "message": "블랙리스트" - }, - "blockAll": { - "message": "모두 차단" - }, - "blue": { - "message": "파랑" - }, - "blueGray": { - "message": "블루그레이" - }, - "bluelight": { - "message": "블루라이트" - }, - "brown": { - "message": "갈색" - }, - "browser": { - "message": "브라우저" - }, - "browserVersion": { - "message": "브라우저 버전" - }, - "bubbles": { - "message": "Bubbles" - }, - "bug": { - "message": "버그" - }, - "buttons": { - "message": "버튼" - }, - "cancel": { - "message": "취소" - }, - "categories": { - "message": "카테고리" - }, - "channel": { - "message": "채널" - }, - "channels": { - "message": "채널" - }, - "clipboard": { - "message": "클립보드" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "구독섹션 축소" - }, - "collapsed": { - "message": "축소됨" - }, - "comments": { - "message": "댓글" - }, - "confirmationBeforeClosing": { - "message": "닫기전에 확인하기" - }, - "cookies": { - "message": "쿠키" - }, - "cores": { - "message": "Cores" - }, - "cropChapterTitles": { - "message": "제목 자르기" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Custom JS" - }, - "customMiniPlayer": { - "message": "커스텀 미니플레이어" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "다크" - }, - "darkTheme": { - "message": "다크 테마" - }, - "dateAndTime": { - "message": "날짜 & 시간" - }, - "dawn": { - "message": "석양" - }, - "decreasePlaybackSpeed": { - "message": "되감기 속도 감소" - }, - "decreaseVolume": { - "message": "볼륨 감소" - }, - "deepOrange": { - "message": "Deep orange" - }, - "deepPurple": { - "message": "Deep purple" - }, - "defaultChannelTab": { - "message": "기본 채널 탭" - }, - "deleteYoutubeCookies": { - "message": "YouTube 쿠키 삭제" - }, - "description": { - "message": "설명" - }, - "desert": { - "message": "Desert" - }, - "details": { - "message": "자세히" - }, - "developerOptions": { - "message": "개발자 옵션" - }, - "device": { - "message": "기기" - }, - "dim": { - "message": "어둡게" - }, - "disabled": { - "message": "비활성화" - }, - "dislike": { - "message": "싫어요" - }, - "doNotChange": { - "message": "바꾸지 않음" - }, - "donate": { - "message": "후원하기" - }, - "draggable": { - "message": "드래그 가능" - }, - "email": { - "message": "이메일" - }, - "empty": { - "message": "비어있음" - }, - "enabled": { - "message": "활성화" - }, - "enabledForced": { - "message": "활성화 (강제)" - }, - "expanded": { - "message": "확장" - }, - "exportSettings": { - "message": "설정 내보내기" - }, - "extension": { - "message": "확대" - }, - "file": { - "message": "파일" - }, - "filters": { - "message": "필터" - }, - "fitToWindow": { - "message": "창크기에 맞추기" - }, - "flash": { - "message": "플래시" - }, - "font": { - "message": "글꼴" - }, - "footer": { - "message": "하단" - }, - "forcedPlaybackSpeed": { - "message": "되감기 속도 강제설정" - }, - "forcedTheaterMode": { - "message": "강제 영화관 모드" - }, - "forcedVolume": { - "message": "볼륨 강제설정" - }, - "foundABug": { - "message": "버그신고" - }, - "fullWindow": { - "message": "전체 화면" - }, - "general": { - "message": "일반" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "검색창으로 이동" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Green" - }, - "hdThumbnail": { - "message": "HD 썸네일" - }, - "hdThumbnails": { - "message": "HD 썸네일" - }, - "header": { - "message": "헤더" - }, - "hidden": { - "message": "숨김" - }, - "hiddenOnVideoPage": { - "message": "비디오 페이지 숨기기" - }, - "hideAnimatedThumbnails": { - "message": "썸네일 애니메이션 숨기기" - }, - "hideAnnotations": { - "message": "설명 숨기기" - }, - "hideCards": { - "message": "카드 숨기기" - }, - "hideDetails": { - "message": "상세설명 숨기기" - }, - "hideEndscreen": { - "message": "종료후 화면 숨기기" - }, - "hideFeaturedContent": { - "message": "추천 영상 숨기기" - }, - "hideFooter": { - "message": "하단 숨기기" - }, - "hidePlaylist": { - "message": "재생 목록 숨기기" - }, - "hideRightButtons": { - "message": "오른쪽 버튼 숨기기" - }, - "hideScrollForDetails": { - "message": "«스크롤 하여 자세한 설명» 숨기기" - }, - "hideViewsCount": { - "message": "조회수 숨기기" - }, - "history": { - "message": "히스토리" - }, - "home": { - "message": "홈" - }, - "hover": { - "message": "띄우기" - }, - "hoverOnVideoPage": { - "message": "비디오 페이지 띄우기" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "업로드 시기" - }, - "icons": { - "message": "아이콘" - }, - "iconsOnly": { - "message": "아이콘만" - }, - "importSettings": { - "message": "설정 불러오기" - }, - "improveLogo": { - "message": "Improve 로고" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube 브라우저 아이콘" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube 유튜브 아이콘" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube 언어" - }, - "improvedtubeVersion": { - "message": "ImprovedTube 버전" - }, - "increasePlaybackSpeed": { - "message": "되감기 속도 증가" - }, - "increaseVolume": { - "message": "볼륨 증가" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "요소" - }, - "languages": { - "message": "언어" - }, - "legacyYoutube": { - "message": "레거시 YouTube" - }, - "light": { - "message": "밝게" - }, - "lightBlue": { - "message": "Light blue" - }, - "lightGreen": { - "message": "Light green" - }, - "like": { - "message": "좋아요" - }, - "likes": { - "message": "좋아요" - }, - "lime": { - "message": "Lime" - }, - "list": { - "message": "리스트" - }, - "liveChat": { - "message": "실시간 채팅" - }, - "liveChatType": { - "message": "실시간 채팅 유형" - }, - "loudnessNormalization": { - "message": "볼륨 자동조정" - }, - "markWatchedVideos": { - "message": "시청한 영상 표시" - }, - "mixer": { - "message": "믹서" - }, - "myColors": { - "message": "내 컬러" - }, - "name": { - "message": "이름" - }, - "nativeMiniPlayer": { - "message": "네이티브 미니플레이어" - }, - "new": { - "message": "New" - }, - "nextVideo": { - "message": "다음 영상" - }, - "night": { - "message": "Night" - }, - "noActiveFeatures": { - "message": "활성 기능 없음" - }, - "noOpenVideoTabs": { - "message": "열린 비디오 탭 없음" - }, - "none": { - "message": "없음" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Old" - }, - "onAllVideos": { - "message": "모든 비디오" - }, - "onSubscribedChannels": { - "message": "구독한 채널" - }, - "onlyActiveOnYoutube": { - "message": "YouTube만 활성화" - }, - "onlyOnePlayerInstancePlaying": { - "message": "하나의 플레이어만 재생" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "기타" - }, - "permissions": { - "message": "권한" - }, - "pictureInPicture": { - "message": "PIP 재생" - }, - "pink": { - "message": "Pink" - }, - "plain": { - "message": "Plain" - }, - "platform": { - "message": "플랫폼" - }, - "playPause": { - "message": "재생 / 일시정지" - }, - "playbackSpeed": { - "message": "되감기 속도" - }, - "player": { - "message": "플레이어" - }, - "playerColor": { - "message": "플레이어 컬러" - }, - "playerSize": { - "message": "플레이어 크기" - }, - "playlist": { - "message": "플레이리스트" - }, - "playlists": { - "message": "플레이리스트" - }, - "popupPlayer": { - "message": "팝업 플레이어" - }, - "position": { - "message": "위치" - }, - "pressAnyKeyOrScroll": { - "message": "사용할 단축키 or 마우스 휠을 누르세요." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "사용할 단축키 or 마우스 휠을 누르세요." - }, - "previousVideo": { - "message": "이전 영상" - }, - "primaryColor": { - "message": "주 색상" - }, - "purple": { - "message": "Purple" - }, - "quality": { - "message": "퀄리티" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "평가하기" - }, - "red": { - "message": "Red" - }, - "relatedVideos": { - "message": "관련 영상" - }, - "removeRelatedSearchResults": { - "message": "관련 검색결과 제거" - }, - "repeat": { - "message": "반복" - }, - "reset": { - "message": "리셋" - }, - "resetAllSettings": { - "message": "모든 설정 리셋" - }, - "resetAllShortcuts": { - "message": "모든 단축키 리셋" - }, - "reverse": { - "message": "반대로" - }, - "rotate": { - "message": "회전" - }, - "save": { - "message": "저장" - }, - "saveAs": { - "message": "다른이름으로 저장" - }, - "schedule": { - "message": "스케줄" - }, - "screen": { - "message": "스크린" - }, - "screenshot": { - "message": "스크린샷" - }, - "search": { - "message": "검색" - }, - "searchBarOnly": { - "message": "검색창만" - }, - "seekBackward10Seconds": { - "message": "뒤로 10초" - }, - "seekForward10Seconds": { - "message": "앞으로 10초" - }, - "settings": { - "message": "설정" - }, - "settingsSuccessfullyImported": { - "message": "설정 내보내기 완료" - }, - "shortcuts": { - "message": "단축키" - }, - "showCardsOnMouseHover": { - "message": "마우스 올릴 때 카드보기" - }, - "showChannelVideosCount": { - "message": "채널의 비디오수 표시" - }, - "shuffle": { - "message": "셔플" - }, - "sidebar": { - "message": "사이드바" - }, - "spacebar": { - "message": "스페이스바" - }, - "squaredUserImages": { - "message": "정사각형 프로필사진" - }, - "static": { - "message": "고정" - }, - "step": { - "message": "스텝" - }, - "stop": { - "message": "정지" - }, - "style": { - "message": "스타일" - }, - "styles": { - "message": "스타일" - }, - "subscriptions": { - "message": "구독" - }, - "subtitles": { - "message": "자막" - }, - "sunset": { - "message": "Sunset" - }, - "sunsetToSunrise": { - "message": "Sunset to sunrise" - }, - "systemPeferenceDark": { - "message": "개인 설정: dark" - }, - "systemPeferenceLight": { - "message": "개인 설정: light" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "텍스트 색상" - }, - "themes": { - "message": "테마" - }, - "thisWillRemoveAllCookies": { - "message": "모든 쿠키를 삭제합니다." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "모든 유튜브 쿠키를 삭제합니다." - }, - "thisWillResetAllSettings": { - "message": "모든 설정을 초기화 합니다." - }, - "thisWillResetAllShortcuts": { - "message": "모든 단축키를 초기화 합니다." - }, - "thumbnails": { - "message": "썸네일" - }, - "timeFrom": { - "message": "다음시간 부터" - }, - "timeTo": { - "message": "다음시간 까지" - }, - "todayAt": { - "message": "오늘의" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "트레일러 자동재생" - }, - "translations": { - "message": "번역" - }, - "transparentBackground": { - "message": "투명한 배경" - }, - "trending": { - "message": "인기" - }, - "tryToReloadThePage": { - "message": "새로고침을 시도하십시오" - }, - "type": { - "message": "타입" - }, - "upNextAutoplay": { - "message": "다음영상 자동재생" - }, - "use24HourFormat": { - "message": "24시간 형식 사용" - }, - "version": { - "message": "버젼" - }, - "video": { - "message": "영상" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "카테고리의 이름을 얻기 위해 비디오 설명이 확장됩니다" - }, - "videoFormats": { - "message": "비디오 형식" - }, - "videos": { - "message": "비디오" - }, - "volume": { - "message": "음량" - }, - "watchLater": { - "message": "나중에 보기" - }, - "watchTime": { - "message": "시간 보기" - }, - "whenTabIsChanged": { - "message": "탭이 바뀔때" - }, - "white": { - "message": "White" - }, - "yellow": { - "message": "Yellow" - }, - "youtubeHeaderLeft": { - "message": "YouTube 헤더 (왼쪽)" - }, - "youtubeHeaderRight": { - "message": "YouTube 헤더 (오른쪽)" - }, - "youtubeHomePage": { - "message": "YouTube 홈페이지" - }, - "youtubeLanguage": { - "message": "YouTube 언어" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube는 h.264 코덱에서 비디오 품질을 1080p로 제한합니다" - } -} +{ + "about": { + "message": "정보" + }, + "accept": { + "message": "동의" + }, + "activate": { + "message": "활성화" + }, + "activateCaptions": { + "message": "자막 활성화" + }, + "activated": { + "message": "활성화됨" + }, + "activatedFeatures": { + "message": "활성화된 기능" + }, + "activateFullscreen": { + "message": "전체화면 활성화" + }, + "activeFeatures": { + "message": "활성 기능" + }, + "addScrollToTop": { + "message": "<<맨위로>> 추가" + }, + "ads": { + "message": "광고" + }, + "all": { + "message": "모두" + }, + "allow": { + "message": "허용" + }, + "allow60fps": { + "message": "60에프피에스(fps) 허용" + }, + "alwaysActive": { + "message": "항상 활성화" + }, + "alwaysShowProgressBar": { + "message": "재생 진행 상태 항상 표시" + }, + "amber": { + "message": "호박색" + }, + "analyzer": { + "message": "분석" + }, + "appearance": { + "message": "외관" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "오디오" + }, + "audioFormats": { + "message": "오디오 형식" + }, + "auto": { + "message": "자동" + }, + "autoFullscreen": { + "message": "자동 전체화면" + }, + "autopauseWhenSwitchingTabs": { + "message": "탭전환시 자동 일시정지" + }, + "autoplay": { + "message": "자동재생" + }, + "backupAndReset": { + "message": "백업 & 리셋" + }, + "baseOnSystemColorScheme": { + "message": "시스템 색 구성표 기반" + }, + "belowPlayer": { + "message": "플레이어 아래" + }, + "black": { + "message": "검정" + }, + "blacklist": { + "message": "블랙리스트" + }, + "blockAll": { + "message": "모두 차단" + }, + "blue": { + "message": "파랑" + }, + "blueGray": { + "message": "블루그레이" + }, + "bluelight": { + "message": "블루라이트" + }, + "brown": { + "message": "갈색" + }, + "browser": { + "message": "브라우저" + }, + "browserVersion": { + "message": "브라우저 버전" + }, + "bubbles": { + "message": "버블" + }, + "bug": { + "message": "버그" + }, + "buttons": { + "message": "버튼" + }, + "cancel": { + "message": "취소" + }, + "categories": { + "message": "카테고리" + }, + "channel": { + "message": "채널" + }, + "channels": { + "message": "채널" + }, + "clipboard": { + "message": "클립보드" + }, + "codecH264": { + "message": "코덱 h.264" + }, + "collapsed": { + "message": "축소됨" + }, + "collapseOfSubscriptionSections": { + "message": "구독섹션 축소" + }, + "comments": { + "message": "댓글" + }, + "confirmationBeforeClosing": { + "message": "닫기전에 확인하기" + }, + "cookies": { + "message": "쿠키" + }, + "cores": { + "message": "코어" + }, + "cropChapterTitles": { + "message": "제목 자르기" + }, + "customCss": { + "message": "사용자 지정 캐스캐이팅 스타일 시트(CSS)" + }, + "customJs": { + "message": "사용자 지정 자바스크립트(JS)" + }, + "customMiniPlayer": { + "message": "커스텀 미니플레이어" + }, + "cyan": { + "message": "옥색" + }, + "dark": { + "message": "다크" + }, + "darkTheme": { + "message": "다크 테마" + }, + "dateAndTime": { + "message": "날짜 & 시간" + }, + "dawn": { + "message": "석양" + }, + "decreasePlaybackSpeed": { + "message": "되감기 속도 감소" + }, + "decreaseVolume": { + "message": "볼륨 감소" + }, + "deepOrange": { + "message": "진한 주황" + }, + "deepPurple": { + "message": "진한 보라" + }, + "defaultChannelTab": { + "message": "기본 채널 탭" + }, + "deleteYoutubeCookies": { + "message": "유튜브 쿠키 삭제" + }, + "description": { + "message": "설명" + }, + "desert": { + "message": "사막" + }, + "details": { + "message": "자세히" + }, + "developerOptions": { + "message": "개발자 옵션" + }, + "device": { + "message": "기기" + }, + "dim": { + "message": "어둡게" + }, + "disabled": { + "message": "비활성화" + }, + "dislike": { + "message": "싫어요" + }, + "donate": { + "message": "후원하기" + }, + "doNotChange": { + "message": "바꾸지 않음" + }, + "draggable": { + "message": "드래그 가능" + }, + "email": { + "message": "이메일" + }, + "empty": { + "message": "비어있음" + }, + "enabled": { + "message": "활성화" + }, + "enabledForced": { + "message": "활성화 (강제)" + }, + "expanded": { + "message": "확장" + }, + "exportSettings": { + "message": "설정 내보내기" + }, + "extension": { + "message": "확대" + }, + "file": { + "message": "파일" + }, + "filters": { + "message": "필터" + }, + "fitToWindow": { + "message": "창크기에 맞추기" + }, + "flash": { + "message": "플래시" + }, + "font": { + "message": "글꼴" + }, + "footer": { + "message": "하단" + }, + "forcedPlaybackSpeed": { + "message": "되감기 속도 강제설정" + }, + "forcedTheaterMode": { + "message": "강제 영화관 모드" + }, + "forcedVolume": { + "message": "볼륨 강제설정" + }, + "foundABug": { + "message": "버그신고" + }, + "fullWindow": { + "message": "전체 화면" + }, + "general": { + "message": "일반" + }, + "github": { + "message": "깃허브(GitHub)" + }, + "goToSearchBox": { + "message": "검색창으로 이동" + }, + "gpu": { + "message": "그래픽 처리 장치" + }, + "green": { + "message": "초록" + }, + "hdThumbnail": { + "message": "HD 썸네일" + }, + "hdThumbnails": { + "message": "HD 썸네일" + }, + "header": { + "message": "헤더" + }, + "hidden": { + "message": "숨김" + }, + "hiddenOnVideoPage": { + "message": "비디오 페이지 숨기기" + }, + "hideAnimatedThumbnails": { + "message": "썸네일 애니메이션 숨기기" + }, + "hideAnnotations": { + "message": "설명 숨기기" + }, + "hideCards": { + "message": "카드 숨기기" + }, + "hideDetails": { + "message": "상세설명 숨기기" + }, + "hideEndscreen": { + "message": "종료후 화면 숨기기" + }, + "hideFeaturedContent": { + "message": "추천 영상 숨기기" + }, + "hideFooter": { + "message": "하단 숨기기" + }, + "hideGradientBottom": { + "message": "그라데이션 맨 아래로 숨기기" + }, + "hidePlaylist": { + "message": "재생 목록 숨기기" + }, + "hideRightButtons": { + "message": "오른쪽 버튼 숨기기" + }, + "hideScrollForDetails": { + "message": "«스크롤 하여 자세한 설명» 숨기기" + }, + "hideViewsCount": { + "message": "조회수 숨기기" + }, + "history": { + "message": "히스토리" + }, + "home": { + "message": "홈" + }, + "hover": { + "message": "띄우기" + }, + "hoverOnVideoPage": { + "message": "비디오 페이지 띄우기" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "업로드 시기" + }, + "icons": { + "message": "아이콘" + }, + "iconsOnly": { + "message": "아이콘만" + }, + "importSettings": { + "message": "설정 불러오기" + }, + "improvedtubeIconInBrowser": { + "message": "향상된 브라우저 아이콘" + }, + "improvedtubeIconOnYoutube": { + "message": "향상된 유튜브 아이콘" + }, + "improvedtubeLanguage": { + "message": "향상된 유튜브 언어" + }, + "improvedtubeVersion": { + "message": "향상된 유튜브 버전" + }, + "improveLogo": { + "message": "향상된 로고" + }, + "increasePlaybackSpeed": { + "message": "되감기 속도 증가" + }, + "increaseVolume": { + "message": "볼륨 증가" + }, + "indigo": { + "message": "남색" + }, + "items": { + "message": "요소" + }, + "languages": { + "message": "언어" + }, + "legacyYoutube": { + "message": "레거시 유튜브" + }, + "light": { + "message": "밝게" + }, + "lightBlue": { + "message": "연파랑" + }, + "lightGreen": { + "message": "연초록" + }, + "like": { + "message": "좋아요" + }, + "likes": { + "message": "좋아요" + }, + "lime": { + "message": "라임" + }, + "list": { + "message": "리스트" + }, + "liveChat": { + "message": "실시간 채팅" + }, + "liveChatType": { + "message": "실시간 채팅 유형" + }, + "loudnessNormalization": { + "message": "볼륨 자동조정" + }, + "markWatchedVideos": { + "message": "시청한 영상 표시" + }, + "mixer": { + "message": "믹서" + }, + "myColors": { + "message": "내 컬러" + }, + "name": { + "message": "이름" + }, + "nativeMiniPlayer": { + "message": "네이티브 미니플레이어" + }, + "new": { + "message": "새로운 소식" + }, + "nextVideo": { + "message": "다음 영상" + }, + "night": { + "message": "저녘" + }, + "noActiveFeatures": { + "message": "활성 기능 없음" + }, + "none": { + "message": "없음" + }, + "noOpenVideoTabs": { + "message": "열린 비디오 탭 없음" + }, + "normal": { + "message": "기본" + }, + "old": { + "message": "오래됨" + }, + "onAllVideos": { + "message": "모든 비디오" + }, + "onlyActiveOnYoutube": { + "message": "유튜브만 활성화" + }, + "onlyOnePlayerInstancePlaying": { + "message": "하나의 플레이어만 재생" + }, + "onSubscribedChannels": { + "message": "구독한 채널" + }, + "orange": { + "message": "주황" + }, + "os": { + "message": "운영체제" + }, + "other": { + "message": "기타" + }, + "permissions": { + "message": "권한" + }, + "pictureInPicture": { + "message": "픽처 인 픽처(PIP) 재생" + }, + "pink": { + "message": "분홍" + }, + "plain": { + "message": "무색" + }, + "platform": { + "message": "플랫폼" + }, + "playbackSpeed": { + "message": "되감기 속도" + }, + "player": { + "message": "플레이어" + }, + "playerColor": { + "message": "플레이어 컬러" + }, + "playerSize": { + "message": "플레이어 크기" + }, + "playlist": { + "message": "플레이리스트" + }, + "playlists": { + "message": "플레이리스트" + }, + "playPause": { + "message": "재생 / 일시정지" + }, + "popupPlayer": { + "message": "팝업 플레이어" + }, + "position": { + "message": "위치" + }, + "pressAnyKeyOrScroll": { + "message": "사용할 단축키 또는 마우스 휠을 누르세요." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "사용할 단축키 또는 마우스 휠을 누르세요." + }, + "previousVideo": { + "message": "이전 영상" + }, + "primaryColor": { + "message": "주 색상" + }, + "purple": { + "message": "보라" + }, + "quality": { + "message": "퀄리티" + }, + "ram": { + "message": "램" + }, + "rateUs": { + "message": "평가하기" + }, + "red": { + "message": "빨강" + }, + "relatedVideos": { + "message": "관련 영상" + }, + "removeRelatedSearchResults": { + "message": "관련 검색결과 제거" + }, + "repeat": { + "message": "반복" + }, + "reset": { + "message": "리셋" + }, + "resetAllSettings": { + "message": "모든 설정 리셋" + }, + "resetAllShortcuts": { + "message": "모든 단축키 리셋" + }, + "reverse": { + "message": "반대로" + }, + "rotate": { + "message": "회전" + }, + "save": { + "message": "저장" + }, + "saveAs": { + "message": "다른이름으로 저장" + }, + "schedule": { + "message": "스케줄" + }, + "screen": { + "message": "스크린" + }, + "screenshot": { + "message": "스크린샷" + }, + "search": { + "message": "검색" + }, + "searchBarOnly": { + "message": "검색창만" + }, + "seekBackward10Seconds": { + "message": "뒤로 10초" + }, + "seekForward10Seconds": { + "message": "앞으로 10초" + }, + "settings": { + "message": "설정" + }, + "settingsSuccessfullyImported": { + "message": "설정 내보내기 완료" + }, + "shortcuts": { + "message": "단축키" + }, + "showCardsOnMouseHover": { + "message": "마우스 올릴 때 카드보기" + }, + "showChannelVideosCount": { + "message": "채널의 비디오수 표시" + }, + "shuffle": { + "message": "셔플" + }, + "sidebar": { + "message": "사이드바" + }, + "spacebar": { + "message": "스페이스바" + }, + "squaredUserImages": { + "message": "정사각형 프로필사진" + }, + "static": { + "message": "고정" + }, + "statsForNerds": { + "message": "너드 통계 표시" + }, + "step": { + "message": "스텝" + }, + "stop": { + "message": "정지" + }, + "style": { + "message": "스타일" + }, + "styles": { + "message": "스타일" + }, + "subscriptions": { + "message": "구독" + }, + "subtitles": { + "message": "자막" + }, + "sunset": { + "message": "일몰" + }, + "sunsetToSunrise": { + "message": "일몰부터 일출까지" + }, + "systemPeferenceDark": { + "message": "개인 설정: 다크" + }, + "systemPeferenceLight": { + "message": "개인 설정: 라이트" + }, + "teal": { + "message": "청록" + }, + "textColor": { + "message": "텍스트 색상" + }, + "themes": { + "message": "테마" + }, + "thisWillRemoveAllCookies": { + "message": "모든 쿠키를 삭제합니다." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "모든 유튜브 쿠키를 삭제합니다." + }, + "thisWillResetAllSettings": { + "message": "모든 설정을 초기화 합니다." + }, + "thisWillResetAllShortcuts": { + "message": "모든 단축키를 초기화 합니다." + }, + "thumbnails": { + "message": "썸네일" + }, + "timeFrom": { + "message": "다음시간 부터" + }, + "timeTo": { + "message": "다음시간 까지" + }, + "todayAt": { + "message": "오늘의" + }, + "toggleCards": { + "message": "토글 카드" + }, + "topChat": { + "message": "탑 챗" + }, + "trailerAutoplay": { + "message": "트레일러 자동재생" + }, + "translations": { + "message": "번역" + }, + "transparentBackground": { + "message": "투명한 배경" + }, + "trending": { + "message": "인기" + }, + "tryToReloadThePage": { + "message": "새로고침을 시도하십시오" + }, + "type": { + "message": "타입" + }, + "upNextAutoplay": { + "message": "다음영상 자동재생" + }, + "use24HourFormat": { + "message": "24시간 형식 사용" + }, + "version": { + "message": "버젼" + }, + "video": { + "message": "영상" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "카테고리의 이름을 얻기 위해 비디오 설명이 확장됩니다" + }, + "videoFormats": { + "message": "비디오 형식" + }, + "videos": { + "message": "비디오" + }, + "volume": { + "message": "음량" + }, + "watchLater": { + "message": "나중에 보기" + }, + "watchTime": { + "message": "시간 보기" + }, + "whenTabIsChanged": { + "message": "탭이 바뀔때" + }, + "white": { + "message": "하양" + }, + "yellow": { + "message": "노랑" + }, + "youtubeHeaderLeft": { + "message": "유튜브 헤더 (왼쪽)" + }, + "youtubeHeaderRight": { + "message": "유튜브 헤더 (오른쪽)" + }, + "youtubeHomePage": { + "message": "유튜브 홈페이지" + }, + "youtubeLanguage": { + "message": "유튜브 언어" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "유튜브는 h.264 코덱에서 비디오 품질을 1080p로 제한합니다" + } +} \ No newline at end of file diff --git a/stable/_locales/nb_NO/messages.json b/stable/_locales/nb_NO/messages.json new file mode 100644 index 000000000..77df3b6de --- /dev/null +++ b/stable/_locales/nb_NO/messages.json @@ -0,0 +1,812 @@ +{ + "about": { + "message": "Om" + }, + "accept": { + "message": "aksepter" + }, + "activate": { + "message": "Aktiver" + }, + "activateCaptions": { + "message": "Aktiver underteksting" + }, + "activated": { + "message": "Aktivert" + }, + "activatedFeatures": { + "message": "Aktiverte funksjoner" + }, + "activateFullscreen": { + "message": "Aktiver fullskjerm" + }, + "activeFeatures": { + "message": "Aktive funksjoner" + }, + "addScrollToTop": { + "message": "Legg til «Rull til toppen»" + }, + "ads": { + "message": "Reklamer" + }, + "all": { + "message": "Alle" + }, + "allow": { + "message": "Tillat" + }, + "allow60fps": { + "message": "Tillat 60 bps" + }, + "alwaysActive": { + "message": "Alltid aktiv" + }, + "alwaysShowProgressBar": { + "message": "Alltid vis fremdriftslinje" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analysator" + }, + "appearance": { + "message": "Utseende" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Lyd" + }, + "audioFormats": { + "message": "Lydformater" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullskjerm" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause når du bytter faner" + }, + "autoplay": { + "message": "Autoplay" + }, + "backupAndReset": { + "message": "Sikkerhetskopiering og tilbakestilling" + }, + "baseOnSystemColorScheme": { + "message": "Baser på systemfargevalg" + }, + "belowPlayer": { + "message": "Nedenfor avspiller" + }, + "black": { + "message": "Svart" + }, + "blacklist": { + "message": "Svartelist" + }, + "blockAll": { + "message": "Blokker alle" + }, + "blue": { + "message": "Blå" + }, + "blueGray": { + "message": "Blågrå" + }, + "bluelight": { + "message": "Blålys" + }, + "brown": { + "message": "Brun" + }, + "browser": { + "message": "Nettleser" + }, + "browserVersion": { + "message": "Nettleser-versjon" + }, + "bubbles": { + "message": "Bobler" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Knapper" + }, + "cancel": { + "message": "Avbryt" + }, + "categories": { + "message": "Kategorier" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanaler" + }, + "clipboard": { + "message": "Utklippstavle" + }, + "codecH264": { + "message": "H.264-kodek" + }, + "collapsed": { + "message": "kollapset" + }, + "collapseOfSubscriptionSections": { + "message": "Kollaps av abonnementsdelene" + }, + "comments": { + "message": "Kommentarer" + }, + "confirmationBeforeClosing": { + "message": "Bekreftelse før stenging" + }, + "cookies": { + "message": "Informasjonskapslene" + }, + "cores": { + "message": "Kjerner" + }, + "cropChapterTitles": { + "message": "Beskjær kapitteltitler" + }, + "customCss": { + "message": "Tilpasset CSS" + }, + "customJs": { + "message": "Tilpasset JS" + }, + "customMiniPlayer": { + "message": "Egendefinert miniavspiller" + }, + "cyan": { + "message": "Blålilla" + }, + "dark": { + "message": "Mørk" + }, + "darkTheme": { + "message": "Mørk drakt" + }, + "dateAndTime": { + "message": "Dato og klokkeslett" + }, + "dawn": { + "message": "Soloppgang" + }, + "decreasePlaybackSpeed": { + "message": "Reduser avspillingshastighet" + }, + "decreaseVolume": { + "message": "Reduser lydstyrken" + }, + "deepOrange": { + "message": "Dyporansje" + }, + "deepPurple": { + "message": "Mørkelilla" + }, + "defaultChannelTab": { + "message": "Forvalgt kanalfane" + }, + "deleteYoutubeCookies": { + "message": "Slett YouTube-informasjonskapsler" + }, + "description": { + "message": "Beskrivelse" + }, + "desert": { + "message": "Ørken" + }, + "details": { + "message": "Detaljer" + }, + "developerOptions": { + "message": "Utviklermuligheter" + }, + "device": { + "message": "Enhet" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Avslått" + }, + "dislike": { + "message": "Mislik" + }, + "donate": { + "message": "Doner" + }, + "doNotChange": { + "message": "Ikke endre" + }, + "draggable": { + "message": "Flyttbare" + }, + "email": { + "message": "E-post" + }, + "empty": { + "message": "Tom" + }, + "enabled": { + "message": "Aktivert" + }, + "enabledForced": { + "message": "Aktivert (tvunget)" + }, + "expanded": { + "message": "Utvidet" + }, + "exportSettings": { + "message": "Eksporter innstillinger" + }, + "extension": { + "message": "Utvidelse" + }, + "file": { + "message": "Fil" + }, + "filters": { + "message": "Filtre" + }, + "fitToWindow": { + "message": "Tilpass til vindu" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "footer": { + "message": "Bunntekst" + }, + "forcedPlaybackSpeed": { + "message": "Tvungen avspillingshastighet" + }, + "forcedTheaterMode": { + "message": "Tvunget teater-modus" + }, + "forcedVolume": { + "message": "Tvunget lydstyrke" + }, + "foundABug": { + "message": "Fant du en feil?" + }, + "fullWindow": { + "message": "Fullt vindu" + }, + "general": { + "message": "Generelt" + }, + "geoPreference": { + "message": "Geo-preferanse" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Gå til søkefeltet" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Grønn" + }, + "hdThumbnail": { + "message": "HD-miniatyrbilde" + }, + "hdThumbnails": { + "message": "HD-miniatyrbilder" + }, + "header": { + "message": "Overskrift" + }, + "hidden": { + "message": "Skjult" + }, + "hiddenOnVideoPage": { + "message": "Skjult på videosiden" + }, + "hideAnimatedThumbnails": { + "message": "Skjul animerte miniatyrbilder" + }, + "hideAnnotations": { + "message": "Skjul annoteringer" + }, + "hideCards": { + "message": "Skjul kort" + }, + "hideDetails": { + "message": "Skjul detaljer" + }, + "hideEndscreen": { + "message": "Skjul sluttskjerm" + }, + "hideFeaturedContent": { + "message": "Skjul omtalt innhold" + }, + "hideFooter": { + "message": "Skjul bunntekst" + }, + "hideGradientBottom": { + "message": "Skjul bunn-fargeovergang" + }, + "hidePlaylist": { + "message": "Skjul spilleliste" + }, + "hideRightButtons": { + "message": "Skjul høyre-knapper" + }, + "hideScrollForDetails": { + "message": "Skjul «Bla for detaljer»" + }, + "hideViewsCount": { + "message": "Skjul visningsteller" + }, + "history": { + "message": "Historie" + }, + "home": { + "message": "Hjem" + }, + "hover": { + "message": "Hold" + }, + "hoverOnVideoPage": { + "message": "Hold musepekeren på videosiden" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Hvor lenge siden videoen ble opplastet" + }, + "icons": { + "message": "Ikoner" + }, + "iconsOnly": { + "message": "Kun ikoner" + }, + "importSettings": { + "message": "Importer innstillinger" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube-ikonet i nettleseren" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube-ikonet på YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube-språk" + }, + "improvedtubeVersion": { + "message": "ImprovedTube-versjon" + }, + "improveLogo": { + "message": "Forbedre logo" + }, + "increasePlaybackSpeed": { + "message": "Øk avspillingshastigheten" + }, + "increaseVolume": { + "message": "Øk lydstyrken" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Elementer" + }, + "languages": { + "message": "Språk" + }, + "legacyYoutube": { + "message": "Gammeldags YouTube" + }, + "light": { + "message": "Lys" + }, + "lightBlue": { + "message": "Lyseblå" + }, + "lightGreen": { + "message": "Lysegrønn" + }, + "like": { + "message": "Gunst" + }, + "likes": { + "message": "Begunstninger" + }, + "lime": { + "message": "Lime" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Sanntidssludring" + }, + "liveChatType": { + "message": "Sanntidssludringstype" + }, + "loudnessNormalization": { + "message": "Lydstyrkenormalisering" + }, + "markWatchedVideos": { + "message": "Marker sette videoer" + }, + "mixer": { + "message": "Mikser" + }, + "myColors": { + "message": "Mine farger" + }, + "name": { + "message": "Navn" + }, + "nativeMiniPlayer": { + "message": "Innebygd miniavspiller" + }, + "new": { + "message": "Ny" + }, + "nextVideo": { + "message": "Neste video" + }, + "night": { + "message": "Natt" + }, + "noActiveFeatures": { + "message": "Ingen aktive funksjoner" + }, + "none": { + "message": "Ingen" + }, + "noOpenVideoTabs": { + "message": "Ingen åpne videofaner" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Gammel" + }, + "onAllVideos": { + "message": "På alle videoer" + }, + "onlyActiveOnYoutube": { + "message": "Kun aktiv på YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Kun én avspiller viser noe" + }, + "onSubscribedChannels": { + "message": "På abonnementskanaler" + }, + "orange": { + "message": "Oransje" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Andre" + }, + "permissions": { + "message": "rettigheter" + }, + "pictureInPicture": { + "message": "Bilde-i-bilde" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Vanlig" + }, + "platform": { + "message": "Plattform" + }, + "playbackSpeed": { + "message": "Avspillingshastighet" + }, + "player": { + "message": "Avspiller" + }, + "playerColor": { + "message": "Avspiller-farge" + }, + "playerSize": { + "message": "Avspiller-størrelse" + }, + "playlist": { + "message": "Spilleliste" + }, + "playlists": { + "message": "Spillelister" + }, + "playPause": { + "message": "Spill / Pause" + }, + "popupPlayer": { + "message": "Oppsprettsspiller" + }, + "position": { + "message": "Posisjon" + }, + "pressAnyKeyOrScroll": { + "message": "Trykk på hvilken som helst tast, eller bruk musehjulet." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Trykk på hvilken som helst tast, eller bruk musehjulet" + }, + "previousVideo": { + "message": "Forrige video" + }, + "primaryColor": { + "message": "Hovedfarge" + }, + "purple": { + "message": "Lilla" + }, + "quality": { + "message": "Kvalitet" + }, + "ram": { + "message": "Minne" + }, + "rateUs": { + "message": "Rangere oss" + }, + "red": { + "message": "Rød" + }, + "redDislikeButton": { + "message": "Vis tommel ned i rød farge" + }, + "relatedVideos": { + "message": "Relaterte videoer" + }, + "removeRelatedSearchResults": { + "message": "Fjern relaterte søkeresultater" + }, + "repeat": { + "message": "Gjenta" + }, + "reset": { + "message": "Tilbakestill" + }, + "resetAllSettings": { + "message": "Tilbakestill alle instillinger" + }, + "resetAllShortcuts": { + "message": "Tilbakestill alle snarveier" + }, + "reverse": { + "message": "Omvendt" + }, + "rotate": { + "message": "Roter" + }, + "save": { + "message": "Lagre" + }, + "saveAs": { + "message": "Lagre som" + }, + "schedule": { + "message": "Tidsplan" + }, + "screen": { + "message": "Skjerm" + }, + "screenshot": { + "message": "Skjeravbildning" + }, + "search": { + "message": "Søk" + }, + "searchBarOnly": { + "message": "Bare søkefelt" + }, + "seekBackward10Seconds": { + "message": "Spol 10 sekunder bakover" + }, + "seekForward10Seconds": { + "message": "Spol 10 sekunder fremover" + }, + "settings": { + "message": "Innstillinger" + }, + "settingsSuccessfullyImported": { + "message": "Innstillinger importert" + }, + "shortcuts": { + "message": "Snarveier" + }, + "showCardsOnMouseHover": { + "message": "Vis kort på musepekeren" + }, + "showChannelVideosCount": { + "message": "Vis antall kanaler" + }, + "shuffle": { + "message": "Tilfeldig rekkefølge" + }, + "sidebar": { + "message": "Sidepanel" + }, + "spacebar": { + "message": "Mellomrom" + }, + "squaredUserImages": { + "message": "Kvadratiske brukerbilder" + }, + "static": { + "message": "Statisk" + }, + "statsForNerds": { + "message": "Vis statistikk for nerder" + }, + "step": { + "message": "Steg" + }, + "stop": { + "message": "Stopp" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stiler" + }, + "subscriptions": { + "message": "Abonnementer" + }, + "subtitles": { + "message": "Undertekster" + }, + "sunset": { + "message": "Solnedgang" + }, + "sunsetToSunrise": { + "message": "Solnedgang til soloppgang" + }, + "systemPeferenceDark": { + "message": "Systeminnstillinger: mørk" + }, + "systemPeferenceLight": { + "message": "Systeminnstillinger: lys" + }, + "teal": { + "message": "Blågrønn" + }, + "textColor": { + "message": "Tekstfarge" + }, + "themes": { + "message": "Drakter" + }, + "thisWillRemoveAllCookies": { + "message": "Dette vil fjerne alle informasjonskapsler." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Dette vil fjerne alle YouTube-informasjonskapsler" + }, + "thisWillResetAllSettings": { + "message": "Dette vil tilbakestille alle innstillinger." + }, + "thisWillResetAllShortcuts": { + "message": "Dette vil tilbakestille alle snarveier" + }, + "thumbnails": { + "message": "miniatyrbilder " + }, + "timeFrom": { + "message": "Fra" + }, + "timeTo": { + "message": "Til" + }, + "todayAt": { + "message": "I dag kl." + }, + "toggleCards": { + "message": "Veksle kort" + }, + "topChat": { + "message": "Hovedsludring" + }, + "trailerAutoplay": { + "message": "Trailer autospilling" + }, + "translations": { + "message": "Oversettelser" + }, + "transparentBackground": { + "message": "Gjennomsiktig bakgrunn" + }, + "trending": { + "message": "Trender" + }, + "tryToReloadThePage": { + "message": "Forsøk å laste inn siden på nytt" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "«Spilles senere»-autospilling" + }, + "use24HourFormat": { + "message": "Bruk 24-timersformat" + }, + "version": { + "message": "Versjon" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Videobeskrivelsen vil bli utvidet for å få med navnet på kategorien" + }, + "videoFormats": { + "message": "Video-formater" + }, + "videos": { + "message": "Videoer" + }, + "volume": { + "message": "Lydstyrke" + }, + "watchLater": { + "message": "Se senere" + }, + "watchTime": { + "message": "Tid sett" + }, + "whenTabIsChanged": { + "message": "Når fanen endres" + }, + "white": { + "message": "Hvit" + }, + "yellow": { + "message": "Gul" + }, + "youtubeHeaderLeft": { + "message": "YouTube-topptekst (til venstre)" + }, + "youtubeHeaderRight": { + "message": "YouTube-topptekst (til høyre)" + }, + "youtubeHomePage": { + "message": "YouTube-startside" + }, + "youtubeLanguage": { + "message": "YouTube-språk" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube begrenser videokvaliteten til 1080p for H.264-kodeket" + } +} \ No newline at end of file diff --git a/stable/_locales/nl/messages.json b/stable/_locales/nl/messages.json index d10a37b27..f752e7851 100644 --- a/stable/_locales/nl/messages.json +++ b/stable/_locales/nl/messages.json @@ -1,800 +1,809 @@ -{ - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Over" - }, - "accept": { - "message": "Accepteren" - }, - "activate": { - "message": "Activeren" - }, - "activateCaptions": { - "message": "Activeer bijschriften" - }, - "activateFullscreen": { - "message": "Activeer volledig scherm" - }, - "activated": { - "message": "Geactiveerd" - }, - "activatedFeatures": { - "message": "Geactiveerde features" - }, - "activeFeatures": { - "message": "Actieve features" - }, - "addScrollToTop": { - "message": "Voeg «Scroll to top» toe" - }, - "ads": { - "message": "Reclames" - }, - "all": { - "message": "Alles" - }, - "allow": { - "message": "Toestaan" - }, - "allow60fps": { - "message": "60fps toestaan" - }, - "alwaysActive": { - "message": "Altijd actief" - }, - "alwaysShowProgressBar": { - "message": "Altijd voortgangsbalk laten zien" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analyse" - }, - "appearance": { - "message": "Uiterlijk" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio formaten" - }, - "auto": { - "message": "Automatisch" - }, - "autoFullscreen": { - "message": "Automatisch volledig scherm" - }, - "autopauseWhenSwitchingTabs": { - "message": "Automatisch pauzeren bij het wisselen van tabbladen" - }, - "autoplay": { - "message": "Automatisch afspelen" - }, - "backupAndReset": { - "message": "Backup maken & reseten" - }, - "baseOnSystemColorScheme": { - "message": "Baseer op kleurenschema van systeem" - }, - "belowPlayer": { - "message": "Onder de speler" - }, - "black": { - "message": "Zwart" - }, - "blacklist": { - "message": "Zwarte lijst" - }, - "blockAll": { - "message": "Alles blokkeren" - }, - "blue": { - "message": "Blauw" - }, - "blueGray": { - "message": "Blauw grijs" - }, - "bluelight": { - "message": "Blauw licht" - }, - "brown": { - "message": "Bruin" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser versie" - }, - "bubbles": { - "message": "Bubbels" - }, - "bug": { - "message": "Insect" - }, - "buttons": { - "message": "Knoppen" - }, - "cancel": { - "message": "Annuleren" - }, - "categories": { - "message": "Categoriën" - }, - "channel": { - "message": "Kanaal" - }, - "channels": { - "message": "Kanalen" - }, - "clipboard": { - "message": "Klembord" - }, - "codecH264": { - "message": "Encoderen in h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Uitklappen van abonnee sectie" - }, - "collapsed": { - "message": "Ingeklapt" - }, - "comments": { - "message": "Reacties" - }, - "confirmationBeforeClosing": { - "message": "Bevestiging voor sluiten" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Kernen" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Aangepaste CSS" - }, - "customJs": { - "message": "Aangepaste JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyaan" - }, - "dark": { - "message": "Donker" - }, - "darkTheme": { - "message": "Donker thema" - }, - "dateAndTime": { - "message": "Datum & tijd" - }, - "dawn": { - "message": "Morgenrood" - }, - "decreasePlaybackSpeed": { - "message": "Verminder afspeelsnelheid" - }, - "decreaseVolume": { - "message": "Verminder volume" - }, - "deepOrange": { - "message": "Donker oranje" - }, - "deepPurple": { - "message": "donker aars" - }, - "defaultChannelTab": { - "message": "Standaard kanaaltabblad" - }, - "deleteYoutubeCookies": { - "message": "YouTube-cookies verwijderen" - }, - "description": { - "message": "Beschrijving" - }, - "desert": { - "message": "Woestijn" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Ontwikkelaarsopties" - }, - "device": { - "message": "Apparaat" - }, - "dim": { - "message": "Dimmen" - }, - "disabled": { - "message": "Uitgeschakeld" - }, - "dislike": { - "message": "Niet leuk vinden" - }, - "doNotChange": { - "message": "Niet aanpassen" - }, - "donate": { - "message": "Doneer" - }, - "draggable": { - "message": "Sleepbaar" - }, - "email": { - "message": "E-mail" - }, - "empty": { - "message": "Leeg" - }, - "enabled": { - "message": "Ingeschakeld" - }, - "enabledForced": { - "message": "Ingeschakeld (geforceerd)" - }, - "expanded": { - "message": "Uitgeklapt" - }, - "exportSettings": { - "message": "Instellingen exporteren" - }, - "extension": { - "message": "Extensie" - }, - "file": { - "message": "Bestand" - }, - "filters": { - "message": "Filters" - }, - "fitToWindow": { - "message": "Aanpassen aan vensterbreedte" - }, - "flash": { - "message": "Flits" - }, - "font": { - "message": "Lettertype" - }, - "footer": { - "message": "Voettekst" - }, - "forcedPlaybackSpeed": { - "message": "Afspeelsnelheid afdwingen" - }, - "forcedTheaterMode": { - "message": "Altijd theatermodus gebruiken" - }, - "forcedVolume": { - "message": "Volume afdwingen" - }, - "foundABug": { - "message": "Heb je een bug gevonden?" - }, - "fullWindow": { - "message": "Volledige venstergrootte" - }, - "general": { - "message": "Algemeen" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Ga naar de zoekbalk" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Groen" - }, - "hdThumbnail": { - "message": "HD-miniatuurvoorbeeld" - }, - "hdThumbnails": { - "message": "HD-miniatuurvoorbeelden" - }, - "header": { - "message": "Kop" - }, - "hidden": { - "message": "Verborgen" - }, - "hiddenOnVideoPage": { - "message": "Verborgen op videopagina" - }, - "hideAnimatedThumbnails": { - "message": "Geen bewegende miniatuurvoorbeelden" - }, - "hideAnnotations": { - "message": "Verberg annotaties" - }, - "hideCards": { - "message": "Verberg kaarten" - }, - "hideDetails": { - "message": "Verberg details" - }, - "hideEndscreen": { - "message": "Verberg eindscherm" - }, - "hideFeaturedContent": { - "message": "Verberg uitgelichte inhoud" - }, - "hideFooter": { - "message": "Verberg voettekst" - }, - "hidePlaylist": { - "message": "Verberg afspeellijst" - }, - "hideRightButtons": { - "message": "Verberg rechter knoppen" - }, - "hideScrollForDetails": { - "message": "Verberg «Scroll for details»" - }, - "hideViewsCount": { - "message": "Verberg views teller" - }, - "history": { - "message": "Geschiedenis" - }, - "home": { - "message": "Thuis" - }, - "hover": { - "message": "Overzweven met cursor" - }, - "hoverOnVideoPage": { - "message": "Overzweven met cursor op videopagina" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Uploaddatum tonen" - }, - "icons": { - "message": "Iconen" - }, - "iconsOnly": { - "message": "Alleen pictogrammen" - }, - "importSettings": { - "message": "Instellingen importeren" - }, - "improveLogo": { - "message": "YouTube-logo verbeteren" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube-pictogram in browser" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icoon op YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube taal" - }, - "improvedtubeVersion": { - "message": "ImprovedTube versie" - }, - "increasePlaybackSpeed": { - "message": "Verhoog afspeelsnelheid" - }, - "increaseVolume": { - "message": "Verhoog volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Talen" - }, - "legacyYoutube": { - "message": "Oude YouTube-uiterlijk" - }, - "light": { - "message": "Licht" - }, - "lightBlue": { - "message": "Licht blauw" - }, - "lightGreen": { - "message": "Licht groen" - }, - "like": { - "message": "Vind ik leuk" - }, - "likes": { - "message": "Vind-ik-leuks" - }, - "lime": { - "message": "Limoen" - }, - "list": { - "message": "Lijst" - }, - "liveChat": { - "message": "Live berichtenvenster" - }, - "liveChatType": { - "message": "Live berichtenvenster type" - }, - "loudnessNormalization": { - "message": "Volume normaliseren" - }, - "markWatchedVideos": { - "message": "Merk bekeken videos aan" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "Mijn kleuren" - }, - "name": { - "message": "Naam" - }, - "nativeMiniPlayer": { - "message": "Ingebouwde minispeler" - }, - "new": { - "message": "Nieuw" - }, - "nextVideo": { - "message": "Volgende video afspelen" - }, - "night": { - "message": "Nacht" - }, - "noActiveFeatures": { - "message": "Geen actieve features" - }, - "noOpenVideoTabs": { - "message": "Geen openstaande videotabbladen" - }, - "none": { - "message": "Geen" - }, - "normal": { - "message": "Normaal" - }, - "old": { - "message": "Oud" - }, - "onAllVideos": { - "message": "Bij alle videos" - }, - "onSubscribedChannels": { - "message": "Op geabonneerde kanalen" - }, - "onlyActiveOnYoutube": { - "message": "Alleen actief op YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Slechts één actieve speler toestaan" - }, - "orange": { - "message": "Oranje" - }, - "os": { - "message": "Besturingssysteem" - }, - "other": { - "message": "Anders" - }, - "permissions": { - "message": "Machtigingen" - }, - "pictureInPicture": { - "message": "Afbeelding-in-Afbeelding" - }, - "pink": { - "message": "Roze" - }, - "plain": { - "message": "Vlakte" - }, - "platform": { - "message": "Platform" - }, - "playPause": { - "message": "Video afspelen/pauzeren" - }, - "playbackSpeed": { - "message": "Afspeelsnelheid" - }, - "player": { - "message": "Speler" - }, - "playerColor": { - "message": "Spelerkleur" - }, - "playerSize": { - "message": "Spelergrootte" - }, - "playlist": { - "message": "Afspeellijst" - }, - "playlists": { - "message": "Afspeellijsten" - }, - "popupPlayer": { - "message": "Pop-upspeler" - }, - "position": { - "message": "Positie" - }, - "pressAnyKeyOrScroll": { - "message": "Druk op een toets of muiswiel." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Druk op een toets of gebruik muiswiel" - }, - "previousVideo": { - "message": "Vorige video afspelen" - }, - "primaryColor": { - "message": "Primaire kleur" - }, - "purple": { - "message": "Paars" - }, - "quality": { - "message": "Kwaliteit" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Geef ons een beoordeling" - }, - "red": { - "message": "Rood" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Gerelateerde video's" - }, - "removeRelatedSearchResults": { - "message": "Verwijder resultaten van gerelateerde videos" - }, - "repeat": { - "message": "Herhalen" - }, - "reset": { - "message": "Herstel" - }, - "resetAllSettings": { - "message": "Standaardwaarden herstellen" - }, - "resetAllShortcuts": { - "message": "Herstel alle snelkoppelingen" - }, - "reverse": { - "message": "Omdraaien" - }, - "rotate": { - "message": "Draaien" - }, - "save": { - "message": "Opslaan" - }, - "saveAs": { - "message": "Opslaan als" - }, - "schedule": { - "message": "Schema" - }, - "screen": { - "message": "Beeldscherm" - }, - "screenshot": { - "message": "Schermafbeelding" - }, - "search": { - "message": "Zoeken" - }, - "searchBarOnly": { - "message": "Alleen zoekbalk" - }, - "seekBackward10Seconds": { - "message": "Zoek 10 seconde terug" - }, - "seekForward10Seconds": { - "message": "Zoek 10 seconde naar voren" - }, - "settings": { - "message": "Instellingen" - }, - "settingsSuccessfullyImported": { - "message": "Instellingen succesvol geïmporteerd" - }, - "shortcuts": { - "message": "Sneltoetsen" - }, - "showCardsOnMouseHover": { - "message": "Laat kaarten zien onder muisaanwijzer" - }, - "showChannelVideosCount": { - "message": "Aantal kanaalvideo's tonen" - }, - "shuffle": { - "message": "Willekeurig" - }, - "sidebar": { - "message": "Zijbalk" - }, - "spacebar": { - "message": "Spatiebalk" - }, - "squaredUserImages": { - "message": "Vierkante gebruikersafbeeldingen" - }, - "static": { - "message": "Statisch" - }, - "step": { - "message": "Stap" - }, - "stop": { - "message": "Stoppen" - }, - "style": { - "message": "Stijl" - }, - "styles": { - "message": "Stijlen" - }, - "subscriptions": { - "message": "Abonnementen" - }, - "subtitles": { - "message": "Ondertiteling tonen" - }, - "sunset": { - "message": "Zonsondergang" - }, - "sunsetToSunrise": { - "message": "Zonsondergang tot zonsopkomst" - }, - "systemPeferenceDark": { - "message": "Systeem voorkeur: donker" - }, - "systemPeferenceLight": { - "message": "Systeem voorkeur: licht" - }, - "teal": { - "message": "Groenblauw" - }, - "textColor": { - "message": "Tekst kleur" - }, - "themes": { - "message": "Thema's" - }, - "thisWillRemoveAllCookies": { - "message": "Dit verwijdert alle cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Dit verwijdert alle YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "Dit herstelt alle instellingen." - }, - "thisWillResetAllShortcuts": { - "message": "Dit herstelt alle snelkoppelingen" - }, - "thumbnails": { - "message": "Miniatuurvoorbeelden" - }, - "timeFrom": { - "message": "Tijd vanaf" - }, - "timeTo": { - "message": "Tijd tot" - }, - "todayAt": { - "message": "Vandaag om" - }, - "topChat": { - "message": "Top-chat" - }, - "trailerAutoplay": { - "message": "Trailer automatisch afspelen" - }, - "translations": { - "message": "vertalingen" - }, - "transparentBackground": { - "message": "Doorzichtige achtergrond" - }, - "trending": { - "message": "Populair" - }, - "tryToReloadThePage": { - "message": "Probeer de pagina te herladen" - }, - "type": { - "message": "Soort" - }, - "upNextAutoplay": { - "message": "Volgende in wachtrij automatisch afspelen" - }, - "use24HourFormat": { - "message": "24-uurstijd gebruiken" - }, - "version": { - "message": "Versie" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video omschrijving wordt uitgeklapt om de naam van de categorie te verkrijgen" - }, - "videoFormats": { - "message": "Video formaten" - }, - "videos": { - "message": "Video's" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Later bekijken" - }, - "watchTime": { - "message": "Kijk tijd" - }, - "whenTabIsChanged": { - "message": "Wanneer het tabblat veranderd" - }, - "white": { - "message": "Wit" - }, - "yellow": { - "message": "Geel" - }, - "youtubeHeaderLeft": { - "message": "YouTube-kop (links)" - }, - "youtubeHeaderRight": { - "message": "YouTube-kop (rechts)" - }, - "youtubeHomePage": { - "message": "YouTube-startpagina" - }, - "youtubeLanguage": { - "message": "YouTube taal" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limiteerd video kwaliteit tot 1080p voor h.264 codec" - } -} +{ + "about": { + "message": "Over" + }, + "accept": { + "message": "Accepteren" + }, + "activate": { + "message": "Activeren" + }, + "activateCaptions": { + "message": "Activeer bijschriften" + }, + "activated": { + "message": "Geactiveerd" + }, + "activatedFeatures": { + "message": "Geactiveerde features" + }, + "activateFullscreen": { + "message": "Activeer volledig scherm" + }, + "activeFeatures": { + "message": "Actieve features" + }, + "addScrollToTop": { + "message": "Voeg «Scroll to top» toe" + }, + "ads": { + "message": "Reclames" + }, + "all": { + "message": "Alles" + }, + "allow": { + "message": "Toestaan" + }, + "allow60fps": { + "message": "60fps toestaan" + }, + "alwaysActive": { + "message": "Altijd actief" + }, + "alwaysShowProgressBar": { + "message": "Altijd voortgangsbalk laten zien" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analyse" + }, + "appearance": { + "message": "Uiterlijk" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formaten" + }, + "auto": { + "message": "Automatisch" + }, + "autoFullscreen": { + "message": "Automatisch volledig scherm" + }, + "autopauseWhenSwitchingTabs": { + "message": "Automatisch pauzeren bij het wisselen van tabbladen" + }, + "autoplay": { + "message": "Automatisch afspelen" + }, + "backupAndReset": { + "message": "Backup maken & reseten" + }, + "baseOnSystemColorScheme": { + "message": "Baseer op kleurenschema van systeem" + }, + "belowPlayer": { + "message": "Onder de speler" + }, + "black": { + "message": "Zwart" + }, + "blacklist": { + "message": "Zwarte lijst" + }, + "blockAll": { + "message": "Alles blokkeren" + }, + "blue": { + "message": "Blauw" + }, + "blueGray": { + "message": "Blauw grijs" + }, + "bluelight": { + "message": "Blauw licht" + }, + "brown": { + "message": "Bruin" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser versie" + }, + "bubbles": { + "message": "Bubbels" + }, + "bug": { + "message": "Insect" + }, + "buttons": { + "message": "Knoppen" + }, + "cancel": { + "message": "Annuleren" + }, + "categories": { + "message": "Categoriën" + }, + "channel": { + "message": "Kanaal" + }, + "channels": { + "message": "Kanalen" + }, + "clipboard": { + "message": "Klembord" + }, + "codecH264": { + "message": "Encoderen in h.264" + }, + "collapsed": { + "message": "Ingeklapt" + }, + "collapseOfSubscriptionSections": { + "message": "Uitklappen van abonnee sectie" + }, + "comments": { + "message": "Reacties" + }, + "confirmationBeforeClosing": { + "message": "Bevestiging voor sluiten" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Kernen" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Aangepaste CSS" + }, + "customJs": { + "message": "Aangepaste JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyaan" + }, + "dark": { + "message": "Donker" + }, + "darkTheme": { + "message": "Donker thema" + }, + "dateAndTime": { + "message": "Datum & tijd" + }, + "dawn": { + "message": "Morgenrood" + }, + "decreasePlaybackSpeed": { + "message": "Verminder afspeelsnelheid" + }, + "decreaseVolume": { + "message": "Verminder volume" + }, + "deepOrange": { + "message": "Donker oranje" + }, + "deepPurple": { + "message": "donker aars" + }, + "defaultChannelTab": { + "message": "Standaard kanaaltabblad" + }, + "deleteYoutubeCookies": { + "message": "YouTube-cookies verwijderen" + }, + "description": { + "message": "Beschrijving" + }, + "desert": { + "message": "Woestijn" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Ontwikkelaarsopties" + }, + "device": { + "message": "Apparaat" + }, + "dim": { + "message": "Dimmen" + }, + "disabled": { + "message": "Uitgeschakeld" + }, + "dislike": { + "message": "Niet leuk vinden" + }, + "donate": { + "message": "Doneer" + }, + "doNotChange": { + "message": "Niet aanpassen" + }, + "draggable": { + "message": "Sleepbaar" + }, + "email": { + "message": "E-mail" + }, + "empty": { + "message": "Leeg" + }, + "enabled": { + "message": "Ingeschakeld" + }, + "enabledForced": { + "message": "Ingeschakeld (geforceerd)" + }, + "expanded": { + "message": "Uitgeklapt" + }, + "exportSettings": { + "message": "Instellingen exporteren" + }, + "extension": { + "message": "Extensie" + }, + "file": { + "message": "Bestand" + }, + "filters": { + "message": "Filters" + }, + "fitToWindow": { + "message": "Aanpassen aan vensterbreedte" + }, + "flash": { + "message": "Flits" + }, + "font": { + "message": "Lettertype" + }, + "footer": { + "message": "Voettekst" + }, + "forcedPlaybackSpeed": { + "message": "Afspeelsnelheid afdwingen" + }, + "forcedTheaterMode": { + "message": "Altijd theatermodus gebruiken" + }, + "forcedVolume": { + "message": "Volume afdwingen" + }, + "foundABug": { + "message": "Heb je een bug gevonden?" + }, + "fullWindow": { + "message": "Volledige venstergrootte" + }, + "general": { + "message": "Algemeen" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Ga naar de zoekbalk" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Groen" + }, + "hdThumbnail": { + "message": "HD-miniatuurvoorbeeld" + }, + "hdThumbnails": { + "message": "HD-miniatuurvoorbeelden" + }, + "header": { + "message": "Kop" + }, + "hidden": { + "message": "Verborgen" + }, + "hiddenOnVideoPage": { + "message": "Verborgen op videopagina" + }, + "hideAnimatedThumbnails": { + "message": "Geen bewegende miniatuurvoorbeelden" + }, + "hideAnnotations": { + "message": "Verberg annotaties" + }, + "hideCards": { + "message": "Verberg kaarten" + }, + "hideDetails": { + "message": "Verberg details" + }, + "hideEndscreen": { + "message": "Verberg eindscherm" + }, + "hideFeaturedContent": { + "message": "Verberg uitgelichte inhoud" + }, + "hideFooter": { + "message": "Verberg voettekst" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hidePlaylist": { + "message": "Verberg afspeellijst" + }, + "hideRightButtons": { + "message": "Verberg rechter knoppen" + }, + "hideScrollForDetails": { + "message": "Verberg «Scroll for details»" + }, + "hideViewsCount": { + "message": "Verberg views teller" + }, + "history": { + "message": "Geschiedenis" + }, + "home": { + "message": "Thuis" + }, + "hover": { + "message": "Overzweven met cursor" + }, + "hoverOnVideoPage": { + "message": "Overzweven met cursor op videopagina" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Uploaddatum tonen" + }, + "icons": { + "message": "Iconen" + }, + "iconsOnly": { + "message": "Alleen pictogrammen" + }, + "importSettings": { + "message": "Instellingen importeren" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube-pictogram in browser" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube icoon op YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube taal" + }, + "improvedtubeVersion": { + "message": "ImprovedTube versie" + }, + "improveLogo": { + "message": "YouTube-logo verbeteren" + }, + "increasePlaybackSpeed": { + "message": "Verhoog afspeelsnelheid" + }, + "increaseVolume": { + "message": "Verhoog volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "Talen" + }, + "legacyYoutube": { + "message": "Oude YouTube-uiterlijk" + }, + "light": { + "message": "Licht" + }, + "lightBlue": { + "message": "Licht blauw" + }, + "lightGreen": { + "message": "Licht groen" + }, + "like": { + "message": "Vind ik leuk" + }, + "likes": { + "message": "Vind-ik-leuks" + }, + "lime": { + "message": "Limoen" + }, + "list": { + "message": "Lijst" + }, + "liveChat": { + "message": "Live berichtenvenster" + }, + "liveChatType": { + "message": "Live berichtenvenster type" + }, + "loudnessNormalization": { + "message": "Volume normaliseren" + }, + "markWatchedVideos": { + "message": "Merk bekeken videos aan" + }, + "mixer": { + "message": "Mixer" + }, + "myColors": { + "message": "Mijn kleuren" + }, + "name": { + "message": "Naam" + }, + "nativeMiniPlayer": { + "message": "Ingebouwde minispeler" + }, + "new": { + "message": "Nieuw" + }, + "nextVideo": { + "message": "Volgende video afspelen" + }, + "night": { + "message": "Nacht" + }, + "noActiveFeatures": { + "message": "Geen actieve features" + }, + "none": { + "message": "Geen" + }, + "noOpenVideoTabs": { + "message": "Geen openstaande videotabbladen" + }, + "normal": { + "message": "Normaal" + }, + "old": { + "message": "Oud" + }, + "onAllVideos": { + "message": "Bij alle videos" + }, + "onlyActiveOnYoutube": { + "message": "Alleen actief op YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Slechts één actieve speler toestaan" + }, + "onSubscribedChannels": { + "message": "Op geabonneerde kanalen" + }, + "orange": { + "message": "Oranje" + }, + "os": { + "message": "Besturingssysteem" + }, + "other": { + "message": "Anders" + }, + "permissions": { + "message": "Machtigingen" + }, + "pictureInPicture": { + "message": "Afbeelding-in-Afbeelding" + }, + "pink": { + "message": "Roze" + }, + "plain": { + "message": "Vlakte" + }, + "platform": { + "message": "Platform" + }, + "playbackSpeed": { + "message": "Afspeelsnelheid" + }, + "player": { + "message": "Speler" + }, + "playerColor": { + "message": "Spelerkleur" + }, + "playerSize": { + "message": "Spelergrootte" + }, + "playlist": { + "message": "Afspeellijst" + }, + "playlists": { + "message": "Afspeellijsten" + }, + "playPause": { + "message": "Video afspelen/pauzeren" + }, + "popupPlayer": { + "message": "Pop-upspeler" + }, + "position": { + "message": "Positie" + }, + "pressAnyKeyOrScroll": { + "message": "Druk op een toets of muiswiel." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Druk op een toets of gebruik muiswiel" + }, + "previousVideo": { + "message": "Vorige video afspelen" + }, + "primaryColor": { + "message": "Primaire kleur" + }, + "purple": { + "message": "Paars" + }, + "quality": { + "message": "Kwaliteit" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Geef ons een beoordeling" + }, + "red": { + "message": "Rood" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Gerelateerde video's" + }, + "removeRelatedSearchResults": { + "message": "Verwijder resultaten van gerelateerde videos" + }, + "repeat": { + "message": "Herhalen" + }, + "reset": { + "message": "Herstel" + }, + "resetAllSettings": { + "message": "Standaardwaarden herstellen" + }, + "resetAllShortcuts": { + "message": "Herstel alle snelkoppelingen" + }, + "reverse": { + "message": "Omdraaien" + }, + "rotate": { + "message": "Draaien" + }, + "save": { + "message": "Opslaan" + }, + "saveAs": { + "message": "Opslaan als" + }, + "schedule": { + "message": "Schema" + }, + "screen": { + "message": "Beeldscherm" + }, + "screenshot": { + "message": "Schermafbeelding" + }, + "search": { + "message": "Zoeken" + }, + "searchBarOnly": { + "message": "Alleen zoekbalk" + }, + "seekBackward10Seconds": { + "message": "Zoek 10 seconde terug" + }, + "seekForward10Seconds": { + "message": "Zoek 10 seconde naar voren" + }, + "settings": { + "message": "Instellingen" + }, + "settingsSuccessfullyImported": { + "message": "Instellingen succesvol geïmporteerd" + }, + "shortcuts": { + "message": "Sneltoetsen" + }, + "showCardsOnMouseHover": { + "message": "Laat kaarten zien onder muisaanwijzer" + }, + "showChannelVideosCount": { + "message": "Aantal kanaalvideo's tonen" + }, + "shuffle": { + "message": "Willekeurig" + }, + "sidebar": { + "message": "Zijbalk" + }, + "spacebar": { + "message": "Spatiebalk" + }, + "squaredUserImages": { + "message": "Vierkante gebruikersafbeeldingen" + }, + "static": { + "message": "Statisch" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Stap" + }, + "stop": { + "message": "Stoppen" + }, + "style": { + "message": "Stijl" + }, + "styles": { + "message": "Stijlen" + }, + "subscriptions": { + "message": "Abonnementen" + }, + "subtitles": { + "message": "Ondertiteling tonen" + }, + "sunset": { + "message": "Zonsondergang" + }, + "sunsetToSunrise": { + "message": "Zonsondergang tot zonsopkomst" + }, + "systemPeferenceDark": { + "message": "Systeem voorkeur: donker" + }, + "systemPeferenceLight": { + "message": "Systeem voorkeur: licht" + }, + "teal": { + "message": "Groenblauw" + }, + "textColor": { + "message": "Tekst kleur" + }, + "themes": { + "message": "Thema's" + }, + "thisWillRemoveAllCookies": { + "message": "Dit verwijdert alle cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Dit verwijdert alle YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "Dit herstelt alle instellingen." + }, + "thisWillResetAllShortcuts": { + "message": "Dit herstelt alle snelkoppelingen" + }, + "thumbnails": { + "message": "Miniatuurvoorbeelden" + }, + "timeFrom": { + "message": "Tijd vanaf" + }, + "timeTo": { + "message": "Tijd tot" + }, + "todayAt": { + "message": "Vandaag om" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top-chat" + }, + "trailerAutoplay": { + "message": "Trailer automatisch afspelen" + }, + "translations": { + "message": "vertalingen" + }, + "transparentBackground": { + "message": "Doorzichtige achtergrond" + }, + "trending": { + "message": "Populair" + }, + "tryToReloadThePage": { + "message": "Probeer de pagina te herladen" + }, + "type": { + "message": "Soort" + }, + "upNextAutoplay": { + "message": "Volgende in wachtrij automatisch afspelen" + }, + "use24HourFormat": { + "message": "24-uurstijd gebruiken" + }, + "version": { + "message": "Versie" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video omschrijving wordt uitgeklapt om de naam van de categorie te verkrijgen" + }, + "videoFormats": { + "message": "Video formaten" + }, + "videos": { + "message": "Video's" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Later bekijken" + }, + "watchTime": { + "message": "Kijk tijd" + }, + "whenTabIsChanged": { + "message": "Wanneer het tabblat veranderd" + }, + "white": { + "message": "Wit" + }, + "yellow": { + "message": "Geel" + }, + "youtubeHeaderLeft": { + "message": "YouTube-kop (links)" + }, + "youtubeHeaderRight": { + "message": "YouTube-kop (rechts)" + }, + "youtubeHomePage": { + "message": "YouTube-startpagina" + }, + "youtubeLanguage": { + "message": "YouTube taal" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limiteerd video kwaliteit tot 1080p voor h.264 codec" + } +} \ No newline at end of file diff --git a/stable/_locales/no/messages.json b/stable/_locales/no/messages.json index eaeadf3b3..b81b943ba 100644 --- a/stable/_locales/no/messages.json +++ b/stable/_locales/no/messages.json @@ -1,7 +1,4 @@ { - "cropChapterTitles": { - "message": "Crop chapter titles" - }, "about": { "message": "Om" }, @@ -167,12 +164,18 @@ "cores": { "message": "Kjerner" }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, "customCss": { "message": "Tilpasset CSS" }, "customJs": { "message": "Tilpasset JS" }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, "cyan": { "message": "Cyan" }, @@ -446,9 +449,6 @@ "markWatchedVideos": { "message": "Marker sette videoer" }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, "mixer": { "message": "Mikser" }, @@ -575,6 +575,9 @@ "red": { "message": "Rød" }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, "relatedVideos": { "message": "Relaterte videoer" }, @@ -793,8 +796,5 @@ }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube begrenser videokvaliteten til 1080p for h.264-kodeken" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" } -} +} \ No newline at end of file diff --git a/stable/_locales/pt_BR/messages.json b/stable/_locales/pt_BR/messages.json index 880cf559e..366c66f74 100644 --- a/stable/_locales/pt_BR/messages.json +++ b/stable/_locales/pt_BR/messages.json @@ -1,800 +1,809 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Sobre" - }, - "accept": { - "message": "Accept" - }, - "activate": { - "message": "Activate" - }, - "activateCaptions": { - "message": "Ativar legendas" - }, - "activateFullscreen": { - "message": "Ativar tela cheia" - }, - "activated": { - "message": "Activated" - }, - "activatedFeatures": { - "message": "Activated features" - }, - "activeFeatures": { - "message": "Funções ativas" - }, - "addScrollToTop": { - "message": "Habilitar botão «Voltar ao Topo»" - }, - "ads": { - "message": "Anúncios" - }, - "all": { - "message": "All" - }, - "allow": { - "message": "Permitir" - }, - "allow60fps": { - "message": "Permitir 60fps" - }, - "alwaysActive": { - "message": "Sempre ativo" - }, - "alwaysShowProgressBar": { - "message": "Sempre exibir a barra de progresso" - }, - "amber": { - "message": "Âmbar" - }, - "analyzer": { - "message": "Analítico" - }, - "appearance": { - "message": "Aparência" - }, - "audio": { - "message": "Áudio" - }, - "audioFormats": { - "message": "Formatos de áudio" - }, - "auto": { - "message": "Automático" - }, - "autoFullscreen": { - "message": "Tela cheia automática" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausar vídeo ao alternar entre abas" - }, - "autoplay": { - "message": "Reprodução automática" - }, - "backupAndReset": { - "message": "Backup & Restauração" - }, - "baseOnSystemColorScheme": { - "message": "Baseado nas cores do sistema" - }, - "belowPlayer": { - "message": "Abaixo do player" - }, - "black": { - "message": "Preto" - }, - "blacklist": { - "message": "Lista negra" - }, - "blockAll": { - "message": "Bloquear tudo" - }, - "blue": { - "message": "Azul" - }, - "blueGray": { - "message": "Cinza Azulado" - }, - "bluelight": { - "message": "Filtrar luz azul" - }, - "brown": { - "message": "Marrom" - }, - "browser": { - "message": "Navegador" - }, - "browserVersion": { - "message": "Versão do navegador" - }, - "bubbles": { - "message": "Bolhas" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Botões" - }, - "cancel": { - "message": "Cancelar" - }, - "categories": { - "message": "Categorias" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canais" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" - }, - "collapsed": { - "message": "Retraído" - }, - "comments": { - "message": "Comentários" - }, - "confirmationBeforeClosing": { - "message": "Alerta ao fechar a página" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Núcleos" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Custom JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Ciano" - }, - "dark": { - "message": "Obscuro" - }, - "darkTheme": { - "message": "Tema escuro" - }, - "dateAndTime": { - "message": "Data & Hora" - }, - "dawn": { - "message": "Alvorecer" - }, - "decreasePlaybackSpeed": { - "message": "Diminuir velocidade" - }, - "decreaseVolume": { - "message": "Diminuir volume" - }, - "deepOrange": { - "message": "Laranja Escuro" - }, - "deepPurple": { - "message": "Roxo Escuro" - }, - "defaultChannelTab": { - "message": "Aba padrão do canal" - }, - "deleteYoutubeCookies": { - "message": "Deletar cookies do YouTube" - }, - "description": { - "message": "Descrição" - }, - "desert": { - "message": "Deserto" - }, - "details": { - "message": "Detalhes" - }, - "developerOptions": { - "message": "Developer options" - }, - "device": { - "message": "Dispositivo" - }, - "dim": { - "message": "Escurecer" - }, - "disabled": { - "message": "Desabilitado" - }, - "dislike": { - "message": "Não Gostei." - }, - "doNotChange": { - "message": "Não alterar" - }, - "donate": { - "message": "Doar" - }, - "draggable": { - "message": "Arrastável" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Vazio" - }, - "enabled": { - "message": "Habilitado" - }, - "enabledForced": { - "message": "Enabled (forced)" - }, - "expanded": { - "message": "Expandido" - }, - "exportSettings": { - "message": "Exportar configurações" - }, - "extension": { - "message": "Extensão" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filtros" - }, - "fitToWindow": { - "message": "Ajustar à janela" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Rodapé" - }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, - "forcedTheaterMode": { - "message": "Forçar modo teatro" - }, - "forcedVolume": { - "message": "Forçar volume" - }, - "foundABug": { - "message": "Encontrou um bug?" - }, - "fullWindow": { - "message": "Preencher a janela" - }, - "general": { - "message": "Geral" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Selecionar barra de pesquisa" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura em HD" - }, - "hdThumbnails": { - "message": "Miniaturas em HD" - }, - "header": { - "message": "Cabeçalho" - }, - "hidden": { - "message": "Oculto" - }, - "hiddenOnVideoPage": { - "message": "Oculto na página de vídeo" - }, - "hideAnimatedThumbnails": { - "message": "Desabilitar miniaturas animadas" - }, - "hideAnnotations": { - "message": "Ocultar anotações" - }, - "hideCards": { - "message": "Ocultar cards" - }, - "hideDetails": { - "message": "Ocultar detalhes" - }, - "hideEndscreen": { - "message": "Ocultar tela final" - }, - "hideFeaturedContent": { - "message": "Ocultar conteúdo em destaque" - }, - "hideFooter": { - "message": "Ocultar rodapé" - }, - "hidePlaylist": { - "message": "Ocultar playlist" - }, - "hideRightButtons": { - "message": "Ocultar botões à direita" - }, - "hideScrollForDetails": { - "message": "Ocultar «Rolar Para Ver Detalhes»" - }, - "hideViewsCount": { - "message": "Ocultar visualizações" - }, - "history": { - "message": "Histórico" - }, - "home": { - "message": "Início" - }, - "hover": { - "message": "Retrátil" - }, - "hoverOnVideoPage": { - "message": "Retrátil na página de video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Tempo decorrido desde a publicação" - }, - "icons": { - "message": "Ícones" - }, - "iconsOnly": { - "message": "Apenas ícones" - }, - "importSettings": { - "message": "Importar configurações" - }, - "improveLogo": { - "message": "Aprimorar logomarca" - }, - "improvedtubeIconInBrowser": { - "message": "Ícone do ImprovedTube no navegador" - }, - "improvedtubeIconOnYoutube": { - "message": "Ícone do ImprovedTube no YouTube" - }, - "improvedtubeLanguage": { - "message": "Idioma do ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versão do ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Aumentar velocidade" - }, - "increaseVolume": { - "message": "Diminuir volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Itens" - }, - "languages": { - "message": "Idiomas" - }, - "legacyYoutube": { - "message": "YouTube antigo" - }, - "light": { - "message": "Claro" - }, - "lightBlue": { - "message": "Azul Claro" - }, - "lightGreen": { - "message": "Verde Claro" - }, - "like": { - "message": "Gostei!" - }, - "likes": { - "message": "Avaliações" - }, - "lime": { - "message": "Verde Limão" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Bate-Papo Ao Vivo" - }, - "liveChatType": { - "message": "Live chat type" - }, - "loudnessNormalization": { - "message": "Normalização de volume" - }, - "markWatchedVideos": { - "message": "Mark watched videos" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "My colors" - }, - "name": { - "message": "Nome" - }, - "nativeMiniPlayer": { - "message": "Mini player nativo" - }, - "new": { - "message": "Novo" - }, - "nextVideo": { - "message": "Próximo vídeo" - }, - "night": { - "message": "Noite" - }, - "noActiveFeatures": { - "message": "No active features" - }, - "noOpenVideoTabs": { - "message": "Nenhuma aba de vídeo aberta" - }, - "none": { - "message": "Nenhum" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Antigo" - }, - "onAllVideos": { - "message": "Em todos os vídeos" - }, - "onSubscribedChannels": { - "message": "Apenas em inscrições" - }, - "onlyActiveOnYoutube": { - "message": "Ativo apenas no YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "orange": { - "message": "Laranja" - }, - "os": { - "message": "Sistema Operacional" - }, - "other": { - "message": "Outras opções" - }, - "permissions": { - "message": "Permissões" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Panície" - }, - "platform": { - "message": "Plataforma" - }, - "playPause": { - "message": "Reproduzir / Pausar" - }, - "playbackSpeed": { - "message": "Velocidade de reprodução" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Cor do player" - }, - "playerSize": { - "message": "Tamanho do player" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "popupPlayer": { - "message": "Player externo" - }, - "position": { - "message": "Posição" - }, - "pressAnyKeyOrScroll": { - "message": "Pressione qualquer tecla ou use a roda do mouse" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Pressione qualquer tecla ou use a roda do mouse" - }, - "previousVideo": { - "message": "Vídeo anterior" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "Roxo" - }, - "quality": { - "message": "Qualidade" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Avalie-nos!" - }, - "red": { - "message": "Vermelho" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Vídeos relacionados" - }, - "removeRelatedSearchResults": { - "message": "Remove related search results" - }, - "repeat": { - "message": "Repetir" - }, - "reset": { - "message": "Restaurar" - }, - "resetAllSettings": { - "message": "Restaurar todas as configurações" - }, - "resetAllShortcuts": { - "message": "Reset all shortcuts" - }, - "reverse": { - "message": "Reverso" - }, - "rotate": { - "message": "Rotacionar" - }, - "save": { - "message": "Salvar" - }, - "saveAs": { - "message": "Salvar como" - }, - "schedule": { - "message": "Agendamento" - }, - "screen": { - "message": "Tela" - }, - "screenshot": { - "message": "Captura de tela" - }, - "search": { - "message": "Pesquisar" - }, - "searchBarOnly": { - "message": "Apenas barra de pesquisa" - }, - "seekBackward10Seconds": { - "message": "Retroceder 10 segundos" - }, - "seekForward10Seconds": { - "message": "Avançar 10 segundos" - }, - "settings": { - "message": "Configurações" - }, - "settingsSuccessfullyImported": { - "message": "Configurações importadas com sucesso" - }, - "shortcuts": { - "message": "Atalhos" - }, - "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" - }, - "showChannelVideosCount": { - "message": "Número de vídeos do canal" - }, - "shuffle": { - "message": "Aleatório" - }, - "sidebar": { - "message": "Painel lateral" - }, - "spacebar": { - "message": "Espaço" - }, - "squaredUserImages": { - "message": "Avatares quadrados" - }, - "static": { - "message": "Estático" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Parar" - }, - "style": { - "message": "Estilo" - }, - "styles": { - "message": "Estilos" - }, - "subscriptions": { - "message": "Inscrições" - }, - "subtitles": { - "message": "Legendas" - }, - "sunset": { - "message": "Pôr do Sol" - }, - "sunsetToSunrise": { - "message": "Durante a noite" - }, - "systemPeferenceDark": { - "message": "Preferência do sistema: Escuro" - }, - "systemPeferenceLight": { - "message": "Preferência do sistema: Claro" - }, - "teal": { - "message": "Verde Azulado" - }, - "textColor": { - "message": "Text color" - }, - "themes": { - "message": "Temas" - }, - "thisWillRemoveAllCookies": { - "message": "Todos os cookies serão removidos." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Todos os cookies do YouTube serão removidos" - }, - "thisWillResetAllSettings": { - "message": "As configurações padrão serão restauradas." - }, - "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" - }, - "thumbnails": { - "message": "Miniaturas" - }, - "timeFrom": { - "message": "Horário inicial" - }, - "timeTo": { - "message": "Horário final" - }, - "todayAt": { - "message": "Hoje às" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Reproduzir trailer" - }, - "translations": { - "message": "Translations" - }, - "transparentBackground": { - "message": "Fundo transparente" - }, - "trending": { - "message": "Em Alta" - }, - "tryToReloadThePage": { - "message": "Recarregue a página" - }, - "type": { - "message": "Tipo" - }, - "upNextAutoplay": { - "message": "Reproduzir vídeo em seguida" - }, - "use24HourFormat": { - "message": "Usar formato de 24 horas" - }, - "version": { - "message": "Versão" - }, - "video": { - "message": "Vídeo" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "A descrição se expandirá para acessar a categoria do vídeo" - }, - "videoFormats": { - "message": "Formatos de vídeo" - }, - "videos": { - "message": "Vídeos" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Assistir mais tarde" - }, - "watchTime": { - "message": "Tempo de exibição" - }, - "whenTabIsChanged": { - "message": "Quando alternar entre abas" - }, - "white": { - "message": "Branco" - }, - "yellow": { - "message": "Amarelo" - }, - "youtubeHeaderLeft": { - "message": "No cabeçalho à esquerda" - }, - "youtubeHeaderRight": { - "message": "No cabeçalho à direita" - }, - "youtubeHomePage": { - "message": "Página inicial do YouTube" - }, - "youtubeLanguage": { - "message": "Idioma do YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "O YouTube limita o codec h.264 à resolução de 1080p" - } -} + "about": { + "message": "Sobre" + }, + "accept": { + "message": "Accept" + }, + "activate": { + "message": "Activate" + }, + "activateCaptions": { + "message": "Ativar legendas" + }, + "activated": { + "message": "Activated" + }, + "activatedFeatures": { + "message": "Activated features" + }, + "activateFullscreen": { + "message": "Ativar tela cheia" + }, + "activeFeatures": { + "message": "Funções ativas" + }, + "addScrollToTop": { + "message": "Habilitar botão «Voltar ao Topo»" + }, + "ads": { + "message": "Anúncios" + }, + "all": { + "message": "All" + }, + "allow": { + "message": "Permitir" + }, + "allow60fps": { + "message": "Permitir 60fps" + }, + "alwaysActive": { + "message": "Sempre ativo" + }, + "alwaysShowProgressBar": { + "message": "Sempre exibir a barra de progresso" + }, + "amber": { + "message": "Âmbar" + }, + "analyzer": { + "message": "Analítico" + }, + "appearance": { + "message": "Aparência" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Áudio" + }, + "audioFormats": { + "message": "Formatos de áudio" + }, + "auto": { + "message": "Automático" + }, + "autoFullscreen": { + "message": "Tela cheia automática" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausar vídeo ao alternar entre abas" + }, + "autoplay": { + "message": "Reprodução automática" + }, + "backupAndReset": { + "message": "Backup & Restauração" + }, + "baseOnSystemColorScheme": { + "message": "Baseado nas cores do sistema" + }, + "belowPlayer": { + "message": "Abaixo do player" + }, + "black": { + "message": "Preto" + }, + "blacklist": { + "message": "Lista negra" + }, + "blockAll": { + "message": "Bloquear tudo" + }, + "blue": { + "message": "Azul" + }, + "blueGray": { + "message": "Cinza Azulado" + }, + "bluelight": { + "message": "Filtrar luz azul" + }, + "brown": { + "message": "Marrom" + }, + "browser": { + "message": "Navegador" + }, + "browserVersion": { + "message": "Versão do navegador" + }, + "bubbles": { + "message": "Bolhas" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Botões" + }, + "cancel": { + "message": "Cancelar" + }, + "categories": { + "message": "Categorias" + }, + "channel": { + "message": "Canal" + }, + "channels": { + "message": "Canais" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapsed": { + "message": "Retraído" + }, + "collapseOfSubscriptionSections": { + "message": "Collapse of subscription sections" + }, + "comments": { + "message": "Comentários" + }, + "confirmationBeforeClosing": { + "message": "Alerta ao fechar a página" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Núcleos" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Custom JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Ciano" + }, + "dark": { + "message": "Obscuro" + }, + "darkTheme": { + "message": "Tema escuro" + }, + "dateAndTime": { + "message": "Data & Hora" + }, + "dawn": { + "message": "Alvorecer" + }, + "decreasePlaybackSpeed": { + "message": "Diminuir velocidade" + }, + "decreaseVolume": { + "message": "Diminuir volume" + }, + "deepOrange": { + "message": "Laranja Escuro" + }, + "deepPurple": { + "message": "Roxo Escuro" + }, + "defaultChannelTab": { + "message": "Aba padrão do canal" + }, + "deleteYoutubeCookies": { + "message": "Deletar cookies do YouTube" + }, + "description": { + "message": "Descrição" + }, + "desert": { + "message": "Deserto" + }, + "details": { + "message": "Detalhes" + }, + "developerOptions": { + "message": "Developer options" + }, + "device": { + "message": "Dispositivo" + }, + "dim": { + "message": "Escurecer" + }, + "disabled": { + "message": "Desabilitado" + }, + "dislike": { + "message": "Não Gostei." + }, + "donate": { + "message": "Doar" + }, + "doNotChange": { + "message": "Não alterar" + }, + "draggable": { + "message": "Arrastável" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Vazio" + }, + "enabled": { + "message": "Habilitado" + }, + "enabledForced": { + "message": "Enabled (forced)" + }, + "expanded": { + "message": "Expandido" + }, + "exportSettings": { + "message": "Exportar configurações" + }, + "extension": { + "message": "Extensão" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filtros" + }, + "fitToWindow": { + "message": "Ajustar à janela" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "footer": { + "message": "Rodapé" + }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, + "forcedTheaterMode": { + "message": "Forçar modo teatro" + }, + "forcedVolume": { + "message": "Forçar volume" + }, + "foundABug": { + "message": "Encontrou um bug?" + }, + "fullWindow": { + "message": "Preencher a janela" + }, + "general": { + "message": "Geral" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Selecionar barra de pesquisa" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hdThumbnail": { + "message": "Miniatura em HD" + }, + "hdThumbnails": { + "message": "Miniaturas em HD" + }, + "header": { + "message": "Cabeçalho" + }, + "hidden": { + "message": "Oculto" + }, + "hiddenOnVideoPage": { + "message": "Oculto na página de vídeo" + }, + "hideAnimatedThumbnails": { + "message": "Desabilitar miniaturas animadas" + }, + "hideAnnotations": { + "message": "Ocultar anotações" + }, + "hideCards": { + "message": "Ocultar cards" + }, + "hideDetails": { + "message": "Ocultar detalhes" + }, + "hideEndscreen": { + "message": "Ocultar tela final" + }, + "hideFeaturedContent": { + "message": "Ocultar conteúdo em destaque" + }, + "hideFooter": { + "message": "Ocultar rodapé" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hidePlaylist": { + "message": "Ocultar playlist" + }, + "hideRightButtons": { + "message": "Ocultar botões à direita" + }, + "hideScrollForDetails": { + "message": "Ocultar «Rolar Para Ver Detalhes»" + }, + "hideViewsCount": { + "message": "Ocultar visualizações" + }, + "history": { + "message": "Histórico" + }, + "home": { + "message": "Início" + }, + "hover": { + "message": "Retrátil" + }, + "hoverOnVideoPage": { + "message": "Retrátil na página de video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Tempo decorrido desde a publicação" + }, + "icons": { + "message": "Ícones" + }, + "iconsOnly": { + "message": "Apenas ícones" + }, + "importSettings": { + "message": "Importar configurações" + }, + "improvedtubeIconInBrowser": { + "message": "Ícone do ImprovedTube no navegador" + }, + "improvedtubeIconOnYoutube": { + "message": "Ícone do ImprovedTube no YouTube" + }, + "improvedtubeLanguage": { + "message": "Idioma do ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Versão do ImprovedTube" + }, + "improveLogo": { + "message": "Aprimorar logomarca" + }, + "increasePlaybackSpeed": { + "message": "Aumentar velocidade" + }, + "increaseVolume": { + "message": "Diminuir volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Itens" + }, + "languages": { + "message": "Idiomas" + }, + "legacyYoutube": { + "message": "YouTube antigo" + }, + "light": { + "message": "Claro" + }, + "lightBlue": { + "message": "Azul Claro" + }, + "lightGreen": { + "message": "Verde Claro" + }, + "like": { + "message": "Gostei!" + }, + "likes": { + "message": "Avaliações" + }, + "lime": { + "message": "Verde Limão" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Bate-Papo Ao Vivo" + }, + "liveChatType": { + "message": "Live chat type" + }, + "loudnessNormalization": { + "message": "Normalização de volume" + }, + "markWatchedVideos": { + "message": "Mark watched videos" + }, + "mixer": { + "message": "Mixer" + }, + "myColors": { + "message": "My colors" + }, + "name": { + "message": "Nome" + }, + "nativeMiniPlayer": { + "message": "Mini player nativo" + }, + "new": { + "message": "Novo" + }, + "nextVideo": { + "message": "Próximo vídeo" + }, + "night": { + "message": "Noite" + }, + "noActiveFeatures": { + "message": "No active features" + }, + "none": { + "message": "Nenhum" + }, + "noOpenVideoTabs": { + "message": "Nenhuma aba de vídeo aberta" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Antigo" + }, + "onAllVideos": { + "message": "Em todos os vídeos" + }, + "onlyActiveOnYoutube": { + "message": "Ativo apenas no YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "onSubscribedChannels": { + "message": "Apenas em inscrições" + }, + "orange": { + "message": "Laranja" + }, + "os": { + "message": "Sistema Operacional" + }, + "other": { + "message": "Outras opções" + }, + "permissions": { + "message": "Permissões" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Panície" + }, + "platform": { + "message": "Plataforma" + }, + "playbackSpeed": { + "message": "Velocidade de reprodução" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Cor do player" + }, + "playerSize": { + "message": "Tamanho do player" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "playPause": { + "message": "Reproduzir / Pausar" + }, + "popupPlayer": { + "message": "Player externo" + }, + "position": { + "message": "Posição" + }, + "pressAnyKeyOrScroll": { + "message": "Pressione qualquer tecla ou use a roda do mouse" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Pressione qualquer tecla ou use a roda do mouse" + }, + "previousVideo": { + "message": "Vídeo anterior" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "Roxo" + }, + "quality": { + "message": "Qualidade" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Avalie-nos!" + }, + "red": { + "message": "Vermelho" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Vídeos relacionados" + }, + "removeRelatedSearchResults": { + "message": "Remove related search results" + }, + "repeat": { + "message": "Repetir" + }, + "reset": { + "message": "Restaurar" + }, + "resetAllSettings": { + "message": "Restaurar todas as configurações" + }, + "resetAllShortcuts": { + "message": "Reset all shortcuts" + }, + "reverse": { + "message": "Reverso" + }, + "rotate": { + "message": "Rotacionar" + }, + "save": { + "message": "Salvar" + }, + "saveAs": { + "message": "Salvar como" + }, + "schedule": { + "message": "Agendamento" + }, + "screen": { + "message": "Tela" + }, + "screenshot": { + "message": "Captura de tela" + }, + "search": { + "message": "Pesquisar" + }, + "searchBarOnly": { + "message": "Apenas barra de pesquisa" + }, + "seekBackward10Seconds": { + "message": "Retroceder 10 segundos" + }, + "seekForward10Seconds": { + "message": "Avançar 10 segundos" + }, + "settings": { + "message": "Configurações" + }, + "settingsSuccessfullyImported": { + "message": "Configurações importadas com sucesso" + }, + "shortcuts": { + "message": "Atalhos" + }, + "showCardsOnMouseHover": { + "message": "Show cards on mouse hover" + }, + "showChannelVideosCount": { + "message": "Número de vídeos do canal" + }, + "shuffle": { + "message": "Aleatório" + }, + "sidebar": { + "message": "Painel lateral" + }, + "spacebar": { + "message": "Espaço" + }, + "squaredUserImages": { + "message": "Avatares quadrados" + }, + "static": { + "message": "Estático" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Parar" + }, + "style": { + "message": "Estilo" + }, + "styles": { + "message": "Estilos" + }, + "subscriptions": { + "message": "Inscrições" + }, + "subtitles": { + "message": "Legendas" + }, + "sunset": { + "message": "Pôr do Sol" + }, + "sunsetToSunrise": { + "message": "Durante a noite" + }, + "systemPeferenceDark": { + "message": "Preferência do sistema: Escuro" + }, + "systemPeferenceLight": { + "message": "Preferência do sistema: Claro" + }, + "teal": { + "message": "Verde Azulado" + }, + "textColor": { + "message": "Text color" + }, + "themes": { + "message": "Temas" + }, + "thisWillRemoveAllCookies": { + "message": "Todos os cookies serão removidos." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Todos os cookies do YouTube serão removidos" + }, + "thisWillResetAllSettings": { + "message": "As configurações padrão serão restauradas." + }, + "thisWillResetAllShortcuts": { + "message": "This will reset all shortcuts" + }, + "thumbnails": { + "message": "Miniaturas" + }, + "timeFrom": { + "message": "Horário inicial" + }, + "timeTo": { + "message": "Horário final" + }, + "todayAt": { + "message": "Hoje às" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Reproduzir trailer" + }, + "translations": { + "message": "Translations" + }, + "transparentBackground": { + "message": "Fundo transparente" + }, + "trending": { + "message": "Em Alta" + }, + "tryToReloadThePage": { + "message": "Recarregue a página" + }, + "type": { + "message": "Tipo" + }, + "upNextAutoplay": { + "message": "Reproduzir vídeo em seguida" + }, + "use24HourFormat": { + "message": "Usar formato de 24 horas" + }, + "version": { + "message": "Versão" + }, + "video": { + "message": "Vídeo" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "A descrição se expandirá para acessar a categoria do vídeo" + }, + "videoFormats": { + "message": "Formatos de vídeo" + }, + "videos": { + "message": "Vídeos" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Assistir mais tarde" + }, + "watchTime": { + "message": "Tempo de exibição" + }, + "whenTabIsChanged": { + "message": "Quando alternar entre abas" + }, + "white": { + "message": "Branco" + }, + "yellow": { + "message": "Amarelo" + }, + "youtubeHeaderLeft": { + "message": "No cabeçalho à esquerda" + }, + "youtubeHeaderRight": { + "message": "No cabeçalho à direita" + }, + "youtubeHomePage": { + "message": "Página inicial do YouTube" + }, + "youtubeLanguage": { + "message": "Idioma do YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "O YouTube limita o codec h.264 à resolução de 1080p" + } +} \ No newline at end of file diff --git a/stable/_locales/pt_PT/messages.json b/stable/_locales/pt_PT/messages.json index 28b7f0475..2603e81ad 100644 --- a/stable/_locales/pt_PT/messages.json +++ b/stable/_locales/pt_PT/messages.json @@ -1,800 +1,809 @@ -{ - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Acerca" - }, - "accept": { - "message": "Aceitar" - }, - "activate": { - "message": "Ativar" - }, - "activateCaptions": { - "message": "Ativar legendas" - }, - "activateFullscreen": { - "message": "Ativar ecrã completo" - }, - "activated": { - "message": "Ativado" - }, - "activatedFeatures": { - "message": "Opções ativadas" - }, - "activeFeatures": { - "message": "Opções ativas" - }, - "addScrollToTop": { - "message": "Adicionar «Ir para o topo»" - }, - "ads": { - "message": "Anúncios" - }, - "all": { - "message": "Todas" - }, - "allow": { - "message": "Permitir" - }, - "allow60fps": { - "message": "Permitir 60fps" - }, - "alwaysActive": { - "message": "Sempre ativo" - }, - "alwaysShowProgressBar": { - "message": "Mostrar sempre a barra de progressos" - }, - "amber": { - "message": "Âmbar" - }, - "analyzer": { - "message": "Analisador" - }, - "appearance": { - "message": "Aparência" - }, - "audio": { - "message": "Áudio" - }, - "audioFormats": { - "message": "Formatos de áudio" - }, - "auto": { - "message": "Automático" - }, - "autoFullscreen": { - "message": "Ecrân completo automático" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausa quando muda de abas" - }, - "autoplay": { - "message": "Reprodução automática" - }, - "backupAndReset": { - "message": "Cópia de segurança e repor" - }, - "baseOnSystemColorScheme": { - "message": "Baseado no esquema de cores do sistema" - }, - "belowPlayer": { - "message": "Reprodutor abaixo" - }, - "black": { - "message": "Preto" - }, - "blacklist": { - "message": "Lista negra" - }, - "blockAll": { - "message": "Bloquear todos" - }, - "blue": { - "message": "Azul" - }, - "blueGray": { - "message": "Azul acizentado" - }, - "bluelight": { - "message": "Azul claro" - }, - "brown": { - "message": "Castanho" - }, - "browser": { - "message": "Navegador" - }, - "browserVersion": { - "message": "Versão do navegador" - }, - "bubbles": { - "message": "Bolhas" - }, - "bug": { - "message": "Erro" - }, - "buttons": { - "message": "Botões" - }, - "cancel": { - "message": "Cancelar" - }, - "categories": { - "message": "Categorias" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canais" - }, - "clipboard": { - "message": "Area de transferência" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Extender as secções escolhidas" - }, - "collapsed": { - "message": "Extender" - }, - "comments": { - "message": "Comentários" - }, - "confirmationBeforeClosing": { - "message": "Confirmar antes de encerrar" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "CSS personalizadas" - }, - "customJs": { - "message": "JS personalizadas" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Esverdeado" - }, - "dark": { - "message": "Escuro" - }, - "darkTheme": { - "message": "Tema escuro" - }, - "dateAndTime": { - "message": "Data & hora" - }, - "dawn": { - "message": "Escurecer" - }, - "decreasePlaybackSpeed": { - "message": "Diminuir velocidade de leitura" - }, - "decreaseVolume": { - "message": "Diminuir volume" - }, - "deepOrange": { - "message": "Laranja forte" - }, - "deepPurple": { - "message": "Lilás forte" - }, - "defaultChannelTab": { - "message": "Aba padrão do canal" - }, - "deleteYoutubeCookies": { - "message": "Apagar os cookies do YouTube" - }, - "description": { - "message": "Descrição" - }, - "desert": { - "message": "Deserto" - }, - "details": { - "message": "Detalhes" - }, - "developerOptions": { - "message": "Opções de programador" - }, - "device": { - "message": "Aparelho" - }, - "dim": { - "message": "Escurecer" - }, - "disabled": { - "message": "Desabilitado" - }, - "dislike": { - "message": "Não gostar" - }, - "doNotChange": { - "message": "Não mudes" - }, - "donate": { - "message": "Doar" - }, - "draggable": { - "message": "Podes arrastar" - }, - "email": { - "message": "Correio electronico" - }, - "empty": { - "message": "Vazio" - }, - "enabled": { - "message": "Ativado" - }, - "enabledForced": { - "message": "Ativado (forçado)" - }, - "expanded": { - "message": "Expandir" - }, - "exportSettings": { - "message": "Exportar definições" - }, - "extension": { - "message": "Extenção" - }, - "file": { - "message": "Ficheiro" - }, - "filters": { - "message": "Filtros" - }, - "fitToWindow": { - "message": "Ajustar á janela" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Tipo de letra" - }, - "footer": { - "message": "Cabeçalho" - }, - "forcedPlaybackSpeed": { - "message": "Forçar velocidade de leitura" - }, - "forcedTheaterMode": { - "message": "Forçar modo de cinema" - }, - "forcedVolume": { - "message": "Volume forçado" - }, - "foundABug": { - "message": "Encontrou um erro?" - }, - "fullWindow": { - "message": "Janela completa" - }, - "general": { - "message": "Geral" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Vai à caixa de pesquisa" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura HD" - }, - "hdThumbnails": { - "message": "Miniaturas HD" - }, - "header": { - "message": "Cabeçalho" - }, - "hidden": { - "message": "Escondido" - }, - "hiddenOnVideoPage": { - "message": "Escondido na página do video" - }, - "hideAnimatedThumbnails": { - "message": "Esconder miniaturas animadas" - }, - "hideAnnotations": { - "message": "Esconder anotações" - }, - "hideCards": { - "message": "Esconder cartas" - }, - "hideDetails": { - "message": "Esconder detalhes" - }, - "hideEndscreen": { - "message": "Esconder ecãn final" - }, - "hideFeaturedContent": { - "message": "Esconder conteúdo" - }, - "hideFooter": { - "message": "Esconder rodapé" - }, - "hidePlaylist": { - "message": "Esconder lista de reprodução" - }, - "hideRightButtons": { - "message": "Esconder botões do lado direito" - }, - "hideScrollForDetails": { - "message": "Esconder «Rodar para detalhes»" - }, - "hideViewsCount": { - "message": "Esconder número de vistos" - }, - "history": { - "message": "História" - }, - "home": { - "message": "Casa" - }, - "hover": { - "message": "Aponta" - }, - "hoverOnVideoPage": { - "message": "Apontar na página do video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "À quanto tempo o video foi enviado" - }, - "icons": { - "message": "Ícones" - }, - "iconsOnly": { - "message": "Ícones apenas" - }, - "importSettings": { - "message": "Importar definições" - }, - "improveLogo": { - "message": "Melhorar logotipo" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube icon in Browser" - }, - "improvedtubeIconOnYoutube": { - "message": "Ícon do ImprovedTube no YouTube" - }, - "improvedtubeLanguage": { - "message": "Linguagem do ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versão do ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Aumentar velocidade de leitura" - }, - "increaseVolume": { - "message": "Aumentar o volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Artigos" - }, - "languages": { - "message": "Linguagens" - }, - "legacyYoutube": { - "message": "YouTube antigo" - }, - "light": { - "message": "Claro" - }, - "lightBlue": { - "message": "Azul claro" - }, - "lightGreen": { - "message": "Verde claro" - }, - "like": { - "message": "Gostar" - }, - "likes": { - "message": "Gostos" - }, - "lime": { - "message": "Limão" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Conversa do vivo" - }, - "liveChatType": { - "message": "Tipo de conversa do vivo" - }, - "loudnessNormalization": { - "message": "Normalização do volume" - }, - "markWatchedVideos": { - "message": "Marcar os videos como vistos" - }, - "mixer": { - "message": "Mistura" - }, - "myColors": { - "message": "Minhas cores" - }, - "name": { - "message": "Nome" - }, - "nativeMiniPlayer": { - "message": "Leitor pequeno padrão" - }, - "new": { - "message": "Novo" - }, - "nextVideo": { - "message": "Próximo video" - }, - "night": { - "message": "Noite" - }, - "noActiveFeatures": { - "message": "Sem opções ativas" - }, - "noOpenVideoTabs": { - "message": "Não abrir janelas de video" - }, - "none": { - "message": "Nenhuma" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Velho" - }, - "onAllVideos": { - "message": "Em todos os videos" - }, - "onSubscribedChannels": { - "message": "Nos canais subscritos" - }, - "onlyActiveOnYoutube": { - "message": "Ativo apenas no YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Apenas uma instância do leitor de video" - }, - "orange": { - "message": "Laranja" - }, - "os": { - "message": "SO" - }, - "other": { - "message": "Outro" - }, - "permissions": { - "message": "Permissões" - }, - "pictureInPicture": { - "message": "Janela em janela" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Simples" - }, - "platform": { - "message": "Plataforma" - }, - "playPause": { - "message": "Reproduzir / Pausar" - }, - "playbackSpeed": { - "message": "Velocidade de leitura" - }, - "player": { - "message": "Leitor" - }, - "playerColor": { - "message": "Côr do leitor" - }, - "playerSize": { - "message": "Tamanho do leitor" - }, - "playlist": { - "message": "Lista de reprodução" - }, - "playlists": { - "message": "Listas de reprodução" - }, - "popupPlayer": { - "message": "Leitor em janela" - }, - "position": { - "message": "Posição" - }, - "pressAnyKeyOrScroll": { - "message": "Carrega em qualquer tecla ou usa a roldana do rato" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Carrega em qualquer tecla ou usa a roldana do rato" - }, - "previousVideo": { - "message": "Video anterior" - }, - "primaryColor": { - "message": "Côr primaria" - }, - "purple": { - "message": "Violeta" - }, - "quality": { - "message": "Qualidade" - }, - "ram": { - "message": "Memoria" - }, - "rateUs": { - "message": "Avalia-nos" - }, - "red": { - "message": "Vermelho" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Videos relacionados" - }, - "removeRelatedSearchResults": { - "message": "Remove resultados relacionado com a pesquisa" - }, - "repeat": { - "message": "Repetir" - }, - "reset": { - "message": "Valores de origem" - }, - "resetAllSettings": { - "message": "Valores de origem em todas as definições" - }, - "resetAllShortcuts": { - "message": "Repôr todos os atalhos" - }, - "reverse": { - "message": "Recuar" - }, - "rotate": { - "message": "Rodar" - }, - "save": { - "message": "Gravar" - }, - "saveAs": { - "message": "Gravar como" - }, - "schedule": { - "message": "Agendar" - }, - "screen": { - "message": "Ecrân" - }, - "screenshot": { - "message": "Foto do ecrân" - }, - "search": { - "message": "Pesquisa" - }, - "searchBarOnly": { - "message": "Apenas barra de pesquisa" - }, - "seekBackward10Seconds": { - "message": "Andar para trás 10 segundos" - }, - "seekForward10Seconds": { - "message": "Andar para frente 10 segundos" - }, - "settings": { - "message": "Definições" - }, - "settingsSuccessfullyImported": { - "message": "Definições importadas com sucesso" - }, - "shortcuts": { - "message": "Atalhos" - }, - "showCardsOnMouseHover": { - "message": "Mostrar cartas ao passar o rato por cima" - }, - "showChannelVideosCount": { - "message": "Mostrar contagem de videos do canal" - }, - "shuffle": { - "message": "Misturar" - }, - "sidebar": { - "message": "Barra lateral" - }, - "spacebar": { - "message": "Barra de espaços" - }, - "squaredUserImages": { - "message": "Imagens de utilizador enquadradas" - }, - "static": { - "message": "Estática" - }, - "step": { - "message": "Passo" - }, - "stop": { - "message": "Parar" - }, - "style": { - "message": "Estilo" - }, - "styles": { - "message": "Estilos" - }, - "subscriptions": { - "message": "Subscrições" - }, - "subtitles": { - "message": "Legendas" - }, - "sunset": { - "message": "Pôr do sol" - }, - "sunsetToSunrise": { - "message": "Pôr do sol até de manhã" - }, - "systemPeferenceDark": { - "message": "Preferências do sistema: Escuro" - }, - "systemPeferenceLight": { - "message": "Preferências do sistema: Claro" - }, - "teal": { - "message": "Azul esverdeado" - }, - "textColor": { - "message": "Côr do texto" - }, - "themes": { - "message": "Temas" - }, - "thisWillRemoveAllCookies": { - "message": "Isto vai remover todos os cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Isto vai remover todos os cookies do YouTube" - }, - "thisWillResetAllSettings": { - "message": "Isto vai reiniciar todas as definições." - }, - "thisWillResetAllShortcuts": { - "message": "Isto vai reiniciar todos os atalhos" - }, - "thumbnails": { - "message": "Miniaturas" - }, - "timeFrom": { - "message": "Tempo de" - }, - "timeTo": { - "message": "Tempo para" - }, - "todayAt": { - "message": "Hoje em" - }, - "topChat": { - "message": "Conversa principal" - }, - "trailerAutoplay": { - "message": "Trailer toca automaticamente" - }, - "translations": { - "message": "Traduções" - }, - "transparentBackground": { - "message": "Fundo transparente" - }, - "trending": { - "message": "Tendências" - }, - "tryToReloadThePage": { - "message": "Tenta carregar a pagina de novo" - }, - "type": { - "message": "Escreve" - }, - "upNextAutoplay": { - "message": "Arquivo seguinte a tocar" - }, - "use24HourFormat": { - "message": "Usar formato de 24-horas" - }, - "version": { - "message": "Versão" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "A descrição do video vai ser expandida para ver o nome da categoria" - }, - "videoFormats": { - "message": "Formatos de video" - }, - "videos": { - "message": "Videos" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Vêr mais tarde" - }, - "watchTime": { - "message": "Tempo de visualização" - }, - "whenTabIsChanged": { - "message": "Quando a janela mudar" - }, - "white": { - "message": "Branco" - }, - "yellow": { - "message": "Amarelo" - }, - "youtubeHeaderLeft": { - "message": "Cabeçalho do YouTube (esquerda)" - }, - "youtubeHeaderRight": { - "message": "Cabeçalho do YouTube (direita)" - }, - "youtubeHomePage": { - "message": "Página principal do YouTube" - }, - "youtubeLanguage": { - "message": "Linguagem do YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "O YouTube limita a qualidade do video em 1080p para o codec h.264" - } -} +{ + "about": { + "message": "Acerca" + }, + "accept": { + "message": "Aceitar" + }, + "activate": { + "message": "Ativar" + }, + "activateCaptions": { + "message": "Ativar legendas" + }, + "activated": { + "message": "Ativado" + }, + "activatedFeatures": { + "message": "Opções ativadas" + }, + "activateFullscreen": { + "message": "Ativar ecrã completo" + }, + "activeFeatures": { + "message": "Opções ativas" + }, + "addScrollToTop": { + "message": "Adicionar «Ir para o topo»" + }, + "ads": { + "message": "Anúncios" + }, + "all": { + "message": "Todas" + }, + "allow": { + "message": "Permitir" + }, + "allow60fps": { + "message": "Permitir 60fps" + }, + "alwaysActive": { + "message": "Sempre ativo" + }, + "alwaysShowProgressBar": { + "message": "Mostrar sempre a barra de progressos" + }, + "amber": { + "message": "Âmbar" + }, + "analyzer": { + "message": "Analisador" + }, + "appearance": { + "message": "Aparência" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Áudio" + }, + "audioFormats": { + "message": "Formatos de áudio" + }, + "auto": { + "message": "Automático" + }, + "autoFullscreen": { + "message": "Ecrân completo automático" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausa quando muda de abas" + }, + "autoplay": { + "message": "Reprodução automática" + }, + "backupAndReset": { + "message": "Cópia de segurança e repor" + }, + "baseOnSystemColorScheme": { + "message": "Baseado no esquema de cores do sistema" + }, + "belowPlayer": { + "message": "Reprodutor abaixo" + }, + "black": { + "message": "Preto" + }, + "blacklist": { + "message": "Lista negra" + }, + "blockAll": { + "message": "Bloquear todos" + }, + "blue": { + "message": "Azul" + }, + "blueGray": { + "message": "Azul acizentado" + }, + "bluelight": { + "message": "Azul claro" + }, + "brown": { + "message": "Castanho" + }, + "browser": { + "message": "Navegador" + }, + "browserVersion": { + "message": "Versão do navegador" + }, + "bubbles": { + "message": "Bolhas" + }, + "bug": { + "message": "Erro" + }, + "buttons": { + "message": "Botões" + }, + "cancel": { + "message": "Cancelar" + }, + "categories": { + "message": "Categorias" + }, + "channel": { + "message": "Canal" + }, + "channels": { + "message": "Canais" + }, + "clipboard": { + "message": "Area de transferência" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapsed": { + "message": "Extender" + }, + "collapseOfSubscriptionSections": { + "message": "Extender as secções escolhidas" + }, + "comments": { + "message": "Comentários" + }, + "confirmationBeforeClosing": { + "message": "Confirmar antes de encerrar" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "CSS personalizadas" + }, + "customJs": { + "message": "JS personalizadas" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Esverdeado" + }, + "dark": { + "message": "Escuro" + }, + "darkTheme": { + "message": "Tema escuro" + }, + "dateAndTime": { + "message": "Data & hora" + }, + "dawn": { + "message": "Escurecer" + }, + "decreasePlaybackSpeed": { + "message": "Diminuir velocidade de leitura" + }, + "decreaseVolume": { + "message": "Diminuir volume" + }, + "deepOrange": { + "message": "Laranja forte" + }, + "deepPurple": { + "message": "Lilás forte" + }, + "defaultChannelTab": { + "message": "Aba padrão do canal" + }, + "deleteYoutubeCookies": { + "message": "Apagar os cookies do YouTube" + }, + "description": { + "message": "Descrição" + }, + "desert": { + "message": "Deserto" + }, + "details": { + "message": "Detalhes" + }, + "developerOptions": { + "message": "Opções de programador" + }, + "device": { + "message": "Aparelho" + }, + "dim": { + "message": "Escurecer" + }, + "disabled": { + "message": "Desabilitado" + }, + "dislike": { + "message": "Não gostar" + }, + "donate": { + "message": "Doar" + }, + "doNotChange": { + "message": "Não mudes" + }, + "draggable": { + "message": "Podes arrastar" + }, + "email": { + "message": "Correio electronico" + }, + "empty": { + "message": "Vazio" + }, + "enabled": { + "message": "Ativado" + }, + "enabledForced": { + "message": "Ativado (forçado)" + }, + "expanded": { + "message": "Expandir" + }, + "exportSettings": { + "message": "Exportar definições" + }, + "extension": { + "message": "Extenção" + }, + "file": { + "message": "Ficheiro" + }, + "filters": { + "message": "Filtros" + }, + "fitToWindow": { + "message": "Ajustar á janela" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Tipo de letra" + }, + "footer": { + "message": "Cabeçalho" + }, + "forcedPlaybackSpeed": { + "message": "Forçar velocidade de leitura" + }, + "forcedTheaterMode": { + "message": "Forçar modo de cinema" + }, + "forcedVolume": { + "message": "Volume forçado" + }, + "foundABug": { + "message": "Encontrou um erro?" + }, + "fullWindow": { + "message": "Janela completa" + }, + "general": { + "message": "Geral" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Vai à caixa de pesquisa" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hdThumbnail": { + "message": "Miniatura HD" + }, + "hdThumbnails": { + "message": "Miniaturas HD" + }, + "header": { + "message": "Cabeçalho" + }, + "hidden": { + "message": "Escondido" + }, + "hiddenOnVideoPage": { + "message": "Escondido na página do video" + }, + "hideAnimatedThumbnails": { + "message": "Esconder miniaturas animadas" + }, + "hideAnnotations": { + "message": "Esconder anotações" + }, + "hideCards": { + "message": "Esconder cartas" + }, + "hideDetails": { + "message": "Esconder detalhes" + }, + "hideEndscreen": { + "message": "Esconder ecãn final" + }, + "hideFeaturedContent": { + "message": "Esconder conteúdo" + }, + "hideFooter": { + "message": "Esconder rodapé" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hidePlaylist": { + "message": "Esconder lista de reprodução" + }, + "hideRightButtons": { + "message": "Esconder botões do lado direito" + }, + "hideScrollForDetails": { + "message": "Esconder «Rodar para detalhes»" + }, + "hideViewsCount": { + "message": "Esconder número de vistos" + }, + "history": { + "message": "História" + }, + "home": { + "message": "Casa" + }, + "hover": { + "message": "Aponta" + }, + "hoverOnVideoPage": { + "message": "Apontar na página do video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "À quanto tempo o video foi enviado" + }, + "icons": { + "message": "Ícones" + }, + "iconsOnly": { + "message": "Ícones apenas" + }, + "importSettings": { + "message": "Importar definições" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube icon in Browser" + }, + "improvedtubeIconOnYoutube": { + "message": "Ícon do ImprovedTube no YouTube" + }, + "improvedtubeLanguage": { + "message": "Linguagem do ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Versão do ImprovedTube" + }, + "improveLogo": { + "message": "Melhorar logotipo" + }, + "increasePlaybackSpeed": { + "message": "Aumentar velocidade de leitura" + }, + "increaseVolume": { + "message": "Aumentar o volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Artigos" + }, + "languages": { + "message": "Linguagens" + }, + "legacyYoutube": { + "message": "YouTube antigo" + }, + "light": { + "message": "Claro" + }, + "lightBlue": { + "message": "Azul claro" + }, + "lightGreen": { + "message": "Verde claro" + }, + "like": { + "message": "Gostar" + }, + "likes": { + "message": "Gostos" + }, + "lime": { + "message": "Limão" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Conversa do vivo" + }, + "liveChatType": { + "message": "Tipo de conversa do vivo" + }, + "loudnessNormalization": { + "message": "Normalização do volume" + }, + "markWatchedVideos": { + "message": "Marcar os videos como vistos" + }, + "mixer": { + "message": "Mistura" + }, + "myColors": { + "message": "Minhas cores" + }, + "name": { + "message": "Nome" + }, + "nativeMiniPlayer": { + "message": "Leitor pequeno padrão" + }, + "new": { + "message": "Novo" + }, + "nextVideo": { + "message": "Próximo video" + }, + "night": { + "message": "Noite" + }, + "noActiveFeatures": { + "message": "Sem opções ativas" + }, + "none": { + "message": "Nenhuma" + }, + "noOpenVideoTabs": { + "message": "Não abrir janelas de video" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Velho" + }, + "onAllVideos": { + "message": "Em todos os videos" + }, + "onlyActiveOnYoutube": { + "message": "Ativo apenas no YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Apenas uma instância do leitor de video" + }, + "onSubscribedChannels": { + "message": "Nos canais subscritos" + }, + "orange": { + "message": "Laranja" + }, + "os": { + "message": "SO" + }, + "other": { + "message": "Outro" + }, + "permissions": { + "message": "Permissões" + }, + "pictureInPicture": { + "message": "Janela em janela" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Simples" + }, + "platform": { + "message": "Plataforma" + }, + "playbackSpeed": { + "message": "Velocidade de leitura" + }, + "player": { + "message": "Leitor" + }, + "playerColor": { + "message": "Côr do leitor" + }, + "playerSize": { + "message": "Tamanho do leitor" + }, + "playlist": { + "message": "Lista de reprodução" + }, + "playlists": { + "message": "Listas de reprodução" + }, + "playPause": { + "message": "Reproduzir / Pausar" + }, + "popupPlayer": { + "message": "Leitor em janela" + }, + "position": { + "message": "Posição" + }, + "pressAnyKeyOrScroll": { + "message": "Carrega em qualquer tecla ou usa a roldana do rato" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Carrega em qualquer tecla ou usa a roldana do rato" + }, + "previousVideo": { + "message": "Video anterior" + }, + "primaryColor": { + "message": "Côr primaria" + }, + "purple": { + "message": "Violeta" + }, + "quality": { + "message": "Qualidade" + }, + "ram": { + "message": "Memoria" + }, + "rateUs": { + "message": "Avalia-nos" + }, + "red": { + "message": "Vermelho" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Videos relacionados" + }, + "removeRelatedSearchResults": { + "message": "Remove resultados relacionado com a pesquisa" + }, + "repeat": { + "message": "Repetir" + }, + "reset": { + "message": "Valores de origem" + }, + "resetAllSettings": { + "message": "Valores de origem em todas as definições" + }, + "resetAllShortcuts": { + "message": "Repôr todos os atalhos" + }, + "reverse": { + "message": "Recuar" + }, + "rotate": { + "message": "Rodar" + }, + "save": { + "message": "Gravar" + }, + "saveAs": { + "message": "Gravar como" + }, + "schedule": { + "message": "Agendar" + }, + "screen": { + "message": "Ecrân" + }, + "screenshot": { + "message": "Foto do ecrân" + }, + "search": { + "message": "Pesquisa" + }, + "searchBarOnly": { + "message": "Apenas barra de pesquisa" + }, + "seekBackward10Seconds": { + "message": "Andar para trás 10 segundos" + }, + "seekForward10Seconds": { + "message": "Andar para frente 10 segundos" + }, + "settings": { + "message": "Definições" + }, + "settingsSuccessfullyImported": { + "message": "Definições importadas com sucesso" + }, + "shortcuts": { + "message": "Atalhos" + }, + "showCardsOnMouseHover": { + "message": "Mostrar cartas ao passar o rato por cima" + }, + "showChannelVideosCount": { + "message": "Mostrar contagem de videos do canal" + }, + "shuffle": { + "message": "Misturar" + }, + "sidebar": { + "message": "Barra lateral" + }, + "spacebar": { + "message": "Barra de espaços" + }, + "squaredUserImages": { + "message": "Imagens de utilizador enquadradas" + }, + "static": { + "message": "Estática" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Passo" + }, + "stop": { + "message": "Parar" + }, + "style": { + "message": "Estilo" + }, + "styles": { + "message": "Estilos" + }, + "subscriptions": { + "message": "Subscrições" + }, + "subtitles": { + "message": "Legendas" + }, + "sunset": { + "message": "Pôr do sol" + }, + "sunsetToSunrise": { + "message": "Pôr do sol até de manhã" + }, + "systemPeferenceDark": { + "message": "Preferências do sistema: Escuro" + }, + "systemPeferenceLight": { + "message": "Preferências do sistema: Claro" + }, + "teal": { + "message": "Azul esverdeado" + }, + "textColor": { + "message": "Côr do texto" + }, + "themes": { + "message": "Temas" + }, + "thisWillRemoveAllCookies": { + "message": "Isto vai remover todos os cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Isto vai remover todos os cookies do YouTube" + }, + "thisWillResetAllSettings": { + "message": "Isto vai reiniciar todas as definições." + }, + "thisWillResetAllShortcuts": { + "message": "Isto vai reiniciar todos os atalhos" + }, + "thumbnails": { + "message": "Miniaturas" + }, + "timeFrom": { + "message": "Tempo de" + }, + "timeTo": { + "message": "Tempo para" + }, + "todayAt": { + "message": "Hoje em" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Conversa principal" + }, + "trailerAutoplay": { + "message": "Trailer toca automaticamente" + }, + "translations": { + "message": "Traduções" + }, + "transparentBackground": { + "message": "Fundo transparente" + }, + "trending": { + "message": "Tendências" + }, + "tryToReloadThePage": { + "message": "Tenta carregar a pagina de novo" + }, + "type": { + "message": "Escreve" + }, + "upNextAutoplay": { + "message": "Arquivo seguinte a tocar" + }, + "use24HourFormat": { + "message": "Usar formato de 24-horas" + }, + "version": { + "message": "Versão" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "A descrição do video vai ser expandida para ver o nome da categoria" + }, + "videoFormats": { + "message": "Formatos de video" + }, + "videos": { + "message": "Videos" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Vêr mais tarde" + }, + "watchTime": { + "message": "Tempo de visualização" + }, + "whenTabIsChanged": { + "message": "Quando a janela mudar" + }, + "white": { + "message": "Branco" + }, + "yellow": { + "message": "Amarelo" + }, + "youtubeHeaderLeft": { + "message": "Cabeçalho do YouTube (esquerda)" + }, + "youtubeHeaderRight": { + "message": "Cabeçalho do YouTube (direita)" + }, + "youtubeHomePage": { + "message": "Página principal do YouTube" + }, + "youtubeLanguage": { + "message": "Linguagem do YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "O YouTube limita a qualidade do video em 1080p para o codec h.264" + } +} \ No newline at end of file diff --git a/stable/_locales/ru/messages.json b/stable/_locales/ru/messages.json index 13c3a6415..98968af4a 100644 --- a/stable/_locales/ru/messages.json +++ b/stable/_locales/ru/messages.json @@ -1,800 +1,809 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Об ImprovedTube" - }, - "accept": { - "message": "Принять" - }, - "activate": { - "message": "Активировать" - }, - "activateCaptions": { - "message": "Активировать субтитры" - }, - "activateFullscreen": { - "message": "Перейти в полноэкранный режим" - }, - "activated": { - "message": "Активировано" - }, - "activatedFeatures": { - "message": "Активированные функции" - }, - "activeFeatures": { - "message": "Активные функции" - }, - "addScrollToTop": { - "message": "Добавить кнопку «наверх»" - }, - "ads": { - "message": "Реклама" - }, - "all": { - "message": "Все" - }, - "allow": { - "message": "Разрешить" - }, - "allow60fps": { - "message": "Разрешить 60fps" - }, - "alwaysActive": { - "message": "Всегда активный" - }, - "alwaysShowProgressBar": { - "message": "Всегда показывать прогресс-бар" - }, - "amber": { - "message": "Янтарный" - }, - "analyzer": { - "message": "Анализатор" - }, - "appearance": { - "message": "Внешний вид" - }, - "audio": { - "message": "Аудио" - }, - "audioFormats": { - "message": "Аудио форматы" - }, - "auto": { - "message": "Авто" - }, - "autoFullscreen": { - "message": "Автоматический переход в полноэкранный режим" - }, - "autopauseWhenSwitchingTabs": { - "message": "Автопауза при переходе между вкладками" - }, - "autoplay": { - "message": "Автовоспроизведение" - }, - "backupAndReset": { - "message": "Резервное копирование и сброс" - }, - "baseOnSystemColorScheme": { - "message": "Зависит от системной цветовой схемы" - }, - "belowPlayer": { - "message": "Ниже плеера" - }, - "black": { - "message": "Черный" - }, - "blacklist": { - "message": "Черный список" - }, - "blockAll": { - "message": "Заблокировать всё" - }, - "blue": { - "message": "Синий" - }, - "blueGray": { - "message": "Серо-голубой" - }, - "bluelight": { - "message": "Синий свет" - }, - "brown": { - "message": "Коричневый" - }, - "browser": { - "message": "Браузер" - }, - "browserVersion": { - "message": "Версия браузера" - }, - "bubbles": { - "message": "Пузыри" - }, - "bug": { - "message": "Ошибка" - }, - "buttons": { - "message": "Кнопки" - }, - "cancel": { - "message": "Отмена" - }, - "categories": { - "message": "Категории" - }, - "channel": { - "message": "Канал" - }, - "channels": { - "message": "Каналы" - }, - "clipboard": { - "message": "Буфер обмена" - }, - "codecH264": { - "message": "Кодек h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Свернуть раздел подписок" - }, - "collapsed": { - "message": "Свернуть" - }, - "comments": { - "message": "Комментарии" - }, - "confirmationBeforeClosing": { - "message": "Подтверждение закрытия" - }, - "cookies": { - "message": "Куки" - }, - "cores": { - "message": "Ядра" - }, - "cropChapterTitles": { - "message": "Обрезать заголовки глав" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Сustom JS" - }, - "customMiniPlayer": { - "message": "Новый мини-плеер" - }, - "cyan": { - "message": "Сине-зелёный" - }, - "dark": { - "message": "Темная" - }, - "darkTheme": { - "message": "Ночная тема" - }, - "dateAndTime": { - "message": "Дата и время" - }, - "dawn": { - "message": "Рассвет" - }, - "decreasePlaybackSpeed": { - "message": "Уменьшить скорость видео" - }, - "decreaseVolume5": { - "message": "Уменьшить громкость на 5%" - }, - "deepOrange": { - "message": "Темно-оранжевый" - }, - "deepPurple": { - "message": "Темно-фиолетовый" - }, - "defaultChannelTab": { - "message": "Вкладка канала по умолчанию" - }, - "deleteYoutubeCookies": { - "message": "Удалить куки YouTube" - }, - "description": { - "message": "Описание" - }, - "desert": { - "message": "Пустыня" - }, - "details": { - "message": "Подробная информация" - }, - "developerOptions": { - "message": "Настройки разработчика" - }, - "device": { - "message": "Устройство" - }, - "dim": { - "message": "Тусклость" - }, - "disabled": { - "message": "Выключено" - }, - "dislike": { - "message": "Дизлайк" - }, - "doNotChange": { - "message": "Не менять" - }, - "donate": { - "message": "Пожертвовать" - }, - "draggable": { - "message": "Перетаскиваемый" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Пусто" - }, - "enabled": { - "message": "Включено" - }, - "enabledForced": { - "message": "Включено (принудительно)" - }, - "expanded": { - "message": "Развернуть" - }, - "exportSettings": { - "message": "Экспорт настроек" - }, - "extension": { - "message": "Расширение" - }, - "file": { - "message": "Файл" - }, - "filters": { - "message": "Фильтры" - }, - "fitToWindow": { - "message": "Подогнать под окно" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Шрифт" - }, - "footer": { - "message": "Нижний колонтитул" - }, - "forcedPlaybackSpeed": { - "message": "Форсировать скорость воспроизведения" - }, - "forcedTheaterMode": { - "message": "Принудительно переходить в режим кино" - }, - "forcedVolume": { - "message": "Принудительная громкость" - }, - "foundABug": { - "message": "Нашли ошибку?" - }, - "fullWindow": { - "message": "Растянуть на все окно" - }, - "general": { - "message": "Общее" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Перейти в окно поиска" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Зеленый" - }, - "hdThumbnail": { - "message": "Превью высокого качества" - }, - "hdThumbnails": { - "message": "Превью высокого качества" - }, - "header": { - "message": "Верхняя панель" - }, - "hidden": { - "message": "Скрыть" - }, - "hiddenOnVideoPage": { - "message": "Скрыть (только на странице с видео)" - }, - "hideAnimatedThumbnails": { - "message": "Скрыть анимированные превью" - }, - "hideAnnotations": { - "message": "Скрыть аннотации" - }, - "hideCards": { - "message": "Скрыть карточки" - }, - "hideDetails": { - "message": "Скрыть подробную информацию" - }, - "hideEndscreen": { - "message": "Скрыть экран после видео" - }, - "hideFeaturedContent": { - "message": "Скрыть рекомендации" - }, - "hideFooter": { - "message": "Скрыть нижний колонтитул" - }, - "hidePlaylist": { - "message": "Скрыть плейлист" - }, - "hideRightButtons": { - "message": "Скрыть кнопки (справа)" - }, - "hideScrollForDetails": { - "message": "Скрыть «Прокрутите для подробной информации»" - }, - "hideViewsCount": { - "message": "Скрыть количество просмотров" - }, - "history": { - "message": "История" - }, - "home": { - "message": "Домашняя страница" - }, - "hover": { - "message": "Показывать при наведении" - }, - "hoverOnVideoPage": { - "message": "Показывать при наведении (только на странице с видео)" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Показывать как давно было загружено видео" - }, - "icons": { - "message": "Иконки" - }, - "iconsOnly": { - "message": "Только иконки" - }, - "importSettings": { - "message": "Импорт настроек" - }, - "improveLogo": { - "message": "Улучшить логотип YouTube" - }, - "improvedtubeIconInBrowser": { - "message": "Значок ImprovedTube в браузере" - }, - "improvedtubeIconOnYoutube": { - "message": "Значок ImprovedTube в YouTube" - }, - "improvedtubeLanguage": { - "message": "Язык ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Версия ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Увеличить скорость видео" - }, - "increaseVolume5": { - "message": "Увеличить громкости на 5%" - }, - "indigo": { - "message": "Индиго" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Языки" - }, - "legacyYoutube": { - "message": "Старая версия YouTube" - }, - "light": { - "message": "Светлая" - }, - "lightBlue": { - "message": "Светло-синий" - }, - "lightGreen": { - "message": "Светло-зеленый" - }, - "like": { - "message": "Лайк" - }, - "likes": { - "message": "Лайки" - }, - "lime": { - "message": "Лайм" - }, - "list": { - "message": "Список" - }, - "liveChat": { - "message": "Live-чат" - }, - "liveChatType": { - "message": "Тип live-чата" - }, - "loudnessNormalization": { - "message": "Нормализировать громкость" - }, - "markWatchedVideos": { - "message": "Отмечать просмотренные видео" - }, - "mixer": { - "message": "Миксер" - }, - "myColors": { - "message": "Мои цвета" - }, - "name": { - "message": "Имя" - }, - "nativeMiniPlayer": { - "message": "Мини-плеер от YouTube" - }, - "new": { - "message": "Новый" - }, - "nextVideo": { - "message": "Следующее видео" - }, - "night": { - "message": "Ночь" - }, - "noActiveFeatures": { - "message": "Нет активных функций" - }, - "noOpenVideoTabs": { - "message": "Нет открытых вкладок с видео" - }, - "none": { - "message": "Пусто" - }, - "normal": { - "message": "Обычный" - }, - "old": { - "message": "Старый" - }, - "onAllVideos": { - "message": "Во всех видео" - }, - "onSubscribedChannels": { - "message": "Только на каналах в подписках" - }, - "onlyActiveOnYoutube": { - "message": "Активен только в YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Только один экземпляр плеера играет" - }, - "orange": { - "message": "Оранжевый" - }, - "os": { - "message": "ОС" - }, - "other": { - "message": "Другое" - }, - "permissions": { - "message": "Разрешения" - }, - "pictureInPicture": { - "message": "Картинка в картинке" - }, - "pink": { - "message": "Розовый" - }, - "plain": { - "message": "Равнина" - }, - "platform": { - "message": "Платформа" - }, - "playPause": { - "message": "Воспроизведение / Пауза" - }, - "playbackSpeed": { - "message": "Скорость воспроизведения" - }, - "player": { - "message": "Плеер" - }, - "playerColor": { - "message": "Цвет плеера" - }, - "playerSize": { - "message": "Размер плеера" - }, - "playlist": { - "message": "Плейлист" - }, - "playlists": { - "message": "Плейлисты" - }, - "popupPlayer": { - "message": "Плеер во всплывающем окне" - }, - "position": { - "message": "Позиция" - }, - "pressAnyKeyOrScroll": { - "message": "Нажмите любую клавишу или воспользуйтесь колесом мыши" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Нажмите любую клавишу или используйте колесо мыши" - }, - "previousVideo": { - "message": "Предыдущее видео" - }, - "primaryColor": { - "message": "Основной цвет" - }, - "purple": { - "message": "Фиолетовый" - }, - "quality": { - "message": "Качество" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Оцените нас" - }, - "red": { - "message": "Красный" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Похожие видео" - }, - "removeRelatedSearchResults": { - "message": "Удалить похожие результаты поиска" - }, - "repeat": { - "message": "Повтор" - }, - "reset": { - "message": "Сбросить" - }, - "resetAllSettings": { - "message": "Сбросить все настройки" - }, - "resetAllShortcuts": { - "message": "Сбросить все горячие клавиши" - }, - "reverse": { - "message": "Обратный порядок" - }, - "rotate": { - "message": "Повернуть" - }, - "save": { - "message": "Сохранить" - }, - "saveAs": { - "message": "Сохранить как" - }, - "schedule": { - "message": "Расписание" - }, - "screen": { - "message": "Экран" - }, - "screenshot": { - "message": "Скриншот" - }, - "search": { - "message": "Поиск" - }, - "searchBarOnly": { - "message": "Только поле поиска" - }, - "seekBackward10Seconds": { - "message": "Перемотать на 10 секунд назад" - }, - "seekForward10Seconds": { - "message": "Перемотать на 10 секунд вперед" - }, - "settings": { - "message": "Настройки" - }, - "settingsSuccessfullyImported": { - "message": "Настройки успешно импортированы" - }, - "shortcuts": { - "message": "Горячие клавиши" - }, - "showCardsOnMouseHover": { - "message": "Показывать карточки при наведении мыши" - }, - "showChannelVideosCount": { - "message": "Показывать количество видео на канале" - }, - "shuffle": { - "message": "Случайный порядок" - }, - "sidebar": { - "message": "Боковая панель" - }, - "spacebar": { - "message": "Пробел" - }, - "squaredUserImages": { - "message": "Квадратные аватарки пользователей" - }, - "static": { - "message": "Статично" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Стоп" - }, - "style": { - "message": "Стиль" - }, - "styles": { - "message": "Стили" - }, - "subscriptions": { - "message": "Подписки" - }, - "subtitles": { - "message": "Субтитры" - }, - "sunset": { - "message": "Закат" - }, - "sunsetToSunrise": { - "message": "От заката до рассвета" - }, - "systemPeferenceDark": { - "message": "Предпочитаемая системой: темная" - }, - "systemPeferenceLight": { - "message": "Предпочитаемая системой: светлая" - }, - "teal": { - "message": "Бирюзовый" - }, - "textColor": { - "message": "Цвет текста" - }, - "themes": { - "message": "Темы" - }, - "thisWillRemoveAllCookies": { - "message": "Это удалит все куки" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Вы действительно хотите удалить все куки YouTube?" - }, - "thisWillResetAllSettings": { - "message": "Это сбросит все настройки" - }, - "thisWillResetAllShortcuts": { - "message": "Это сбросит все горячие клавиши" - }, - "thumbnails": { - "message": "Превью" - }, - "timeFrom": { - "message": "Время от" - }, - "timeTo": { - "message": "Время до" - }, - "todayAt": { - "message": "Сегодня в" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Автовоспроизведение трейлера" - }, - "translations": { - "message": "Переводы" - }, - "transparentBackground": { - "message": "Прозрачный фон" - }, - "trending": { - "message": "Тренды" - }, - "tryToReloadThePage": { - "message": "Попробуйте перезагрузить страницу" - }, - "type": { - "message": "Тип" - }, - "upNextAutoplay": { - "message": "Автовоспроизведение следующего видео" - }, - "use24HourFormat": { - "message": "24-часовой формат" - }, - "version": { - "message": "Версия" - }, - "video": { - "message": "Видео" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Описание видео будет развернуто, чтобы получить название категории видео" - }, - "videoFormats": { - "message": "Форматы видео" - }, - "videos": { - "message": "Видео" - }, - "volume": { - "message": "Громкость" - }, - "watchLater": { - "message": "Посмотреть позже" - }, - "watchTime": { - "message": "Время просмотра" - }, - "whenTabIsChanged": { - "message": "При переключении вкладок" - }, - "white": { - "message": "Белый" - }, - "yellow": { - "message": "Желтый" - }, - "youtubeHeaderLeft": { - "message": "Верхняя панель (слева)" - }, - "youtubeHeaderRight": { - "message": "Верхняя панель (справа)" - }, - "youtubeHomePage": { - "message": "Домашняя страница YouTube" - }, - "youtubeLanguage": { - "message": "Язык YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube ограничивает качетво видео до 1080p для кодека h.264" - } -} + "about": { + "message": "Об ImprovedTube" + }, + "accept": { + "message": "Принять" + }, + "activate": { + "message": "Активировать" + }, + "activateCaptions": { + "message": "Активировать субтитры" + }, + "activated": { + "message": "Активировано" + }, + "activatedFeatures": { + "message": "Активированные функции" + }, + "activateFullscreen": { + "message": "Перейти в полноэкранный режим" + }, + "activeFeatures": { + "message": "Активные функции" + }, + "addScrollToTop": { + "message": "Добавить кнопку «наверх»" + }, + "ads": { + "message": "Реклама" + }, + "all": { + "message": "Все" + }, + "allow": { + "message": "Разрешить" + }, + "allow60fps": { + "message": "Разрешить 60fps" + }, + "alwaysActive": { + "message": "Всегда активный" + }, + "alwaysShowProgressBar": { + "message": "Всегда показывать прогресс-бар" + }, + "amber": { + "message": "Янтарный" + }, + "analyzer": { + "message": "Анализатор" + }, + "appearance": { + "message": "Внешний вид" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Аудио" + }, + "audioFormats": { + "message": "Аудио форматы" + }, + "auto": { + "message": "Авто" + }, + "autoFullscreen": { + "message": "Автоматический переход в полноэкранный режим" + }, + "autopauseWhenSwitchingTabs": { + "message": "Автопауза при переходе между вкладками" + }, + "autoplay": { + "message": "Автовоспроизведение" + }, + "backupAndReset": { + "message": "Резервное копирование и сброс" + }, + "baseOnSystemColorScheme": { + "message": "Зависит от системной цветовой схемы" + }, + "belowPlayer": { + "message": "Ниже плеера" + }, + "black": { + "message": "Черный" + }, + "blacklist": { + "message": "Черный список" + }, + "blockAll": { + "message": "Заблокировать всё" + }, + "blue": { + "message": "Синий" + }, + "blueGray": { + "message": "Серо-голубой" + }, + "bluelight": { + "message": "Синий свет" + }, + "brown": { + "message": "Коричневый" + }, + "browser": { + "message": "Браузер" + }, + "browserVersion": { + "message": "Версия браузера" + }, + "bubbles": { + "message": "Пузыри" + }, + "bug": { + "message": "Ошибка" + }, + "buttons": { + "message": "Кнопки" + }, + "cancel": { + "message": "Отмена" + }, + "categories": { + "message": "Категории" + }, + "channel": { + "message": "Канал" + }, + "channels": { + "message": "Каналы" + }, + "clipboard": { + "message": "Буфер обмена" + }, + "codecH264": { + "message": "Кодек h.264" + }, + "collapsed": { + "message": "Свернуть" + }, + "collapseOfSubscriptionSections": { + "message": "Свернуть раздел подписок" + }, + "comments": { + "message": "Комментарии" + }, + "confirmationBeforeClosing": { + "message": "Подтверждение закрытия" + }, + "cookies": { + "message": "Куки" + }, + "cores": { + "message": "Ядра" + }, + "cropChapterTitles": { + "message": "Обрезать заголовки глав" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Сustom JS" + }, + "customMiniPlayer": { + "message": "Новый мини-плеер" + }, + "cyan": { + "message": "Сине-зелёный" + }, + "dark": { + "message": "Темная" + }, + "darkTheme": { + "message": "Ночная тема" + }, + "dateAndTime": { + "message": "Дата и время" + }, + "dawn": { + "message": "Рассвет" + }, + "decreasePlaybackSpeed": { + "message": "Уменьшить скорость видео" + }, + "decreaseVolume5": { + "message": "Уменьшить громкость на 5%" + }, + "deepOrange": { + "message": "Темно-оранжевый" + }, + "deepPurple": { + "message": "Темно-фиолетовый" + }, + "defaultChannelTab": { + "message": "Вкладка канала по умолчанию" + }, + "deleteYoutubeCookies": { + "message": "Удалить куки YouTube" + }, + "description": { + "message": "Описание" + }, + "desert": { + "message": "Пустыня" + }, + "details": { + "message": "Подробная информация" + }, + "developerOptions": { + "message": "Настройки разработчика" + }, + "device": { + "message": "Устройство" + }, + "dim": { + "message": "Тусклость" + }, + "disabled": { + "message": "Выключено" + }, + "dislike": { + "message": "Дизлайк" + }, + "donate": { + "message": "Пожертвовать" + }, + "doNotChange": { + "message": "Не менять" + }, + "draggable": { + "message": "Перетаскиваемый" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Пусто" + }, + "enabled": { + "message": "Включено" + }, + "enabledForced": { + "message": "Включено (принудительно)" + }, + "expanded": { + "message": "Развернуть" + }, + "exportSettings": { + "message": "Экспорт настроек" + }, + "extension": { + "message": "Расширение" + }, + "file": { + "message": "Файл" + }, + "filters": { + "message": "Фильтры" + }, + "fitToWindow": { + "message": "Подогнать под окно" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Шрифт" + }, + "footer": { + "message": "Нижний колонтитул" + }, + "forcedPlaybackSpeed": { + "message": "Форсировать скорость воспроизведения" + }, + "forcedTheaterMode": { + "message": "Принудительно переходить в режим кино" + }, + "forcedVolume": { + "message": "Принудительная громкость" + }, + "foundABug": { + "message": "Нашли ошибку?" + }, + "fullWindow": { + "message": "Растянуть на все окно" + }, + "general": { + "message": "Общее" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Перейти в окно поиска" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Зеленый" + }, + "hdThumbnail": { + "message": "Превью высокого качества" + }, + "hdThumbnails": { + "message": "Превью высокого качества" + }, + "header": { + "message": "Верхняя панель" + }, + "hidden": { + "message": "Скрыть" + }, + "hiddenOnVideoPage": { + "message": "Скрыть (только на странице с видео)" + }, + "hideAnimatedThumbnails": { + "message": "Скрыть анимированные превью" + }, + "hideAnnotations": { + "message": "Скрыть аннотации" + }, + "hideCards": { + "message": "Скрыть карточки" + }, + "hideDetails": { + "message": "Скрыть подробную информацию" + }, + "hideEndscreen": { + "message": "Скрыть экран после видео" + }, + "hideFeaturedContent": { + "message": "Скрыть рекомендации" + }, + "hideFooter": { + "message": "Скрыть нижний колонтитул" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hidePlaylist": { + "message": "Скрыть плейлист" + }, + "hideRightButtons": { + "message": "Скрыть кнопки (справа)" + }, + "hideScrollForDetails": { + "message": "Скрыть «Прокрутите для подробной информации»" + }, + "hideViewsCount": { + "message": "Скрыть количество просмотров" + }, + "history": { + "message": "История" + }, + "home": { + "message": "Домашняя страница" + }, + "hover": { + "message": "Показывать при наведении" + }, + "hoverOnVideoPage": { + "message": "Показывать при наведении (только на странице с видео)" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Показывать как давно было загружено видео" + }, + "icons": { + "message": "Иконки" + }, + "iconsOnly": { + "message": "Только иконки" + }, + "importSettings": { + "message": "Импорт настроек" + }, + "improvedtubeIconInBrowser": { + "message": "Значок ImprovedTube в браузере" + }, + "improvedtubeIconOnYoutube": { + "message": "Значок ImprovedTube в YouTube" + }, + "improvedtubeLanguage": { + "message": "Язык ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Версия ImprovedTube" + }, + "improveLogo": { + "message": "Улучшить логотип YouTube" + }, + "increasePlaybackSpeed": { + "message": "Увеличить скорость видео" + }, + "increaseVolume5": { + "message": "Увеличить громкости на 5%" + }, + "indigo": { + "message": "Индиго" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "Языки" + }, + "legacyYoutube": { + "message": "Старая версия YouTube" + }, + "light": { + "message": "Светлая" + }, + "lightBlue": { + "message": "Светло-синий" + }, + "lightGreen": { + "message": "Светло-зеленый" + }, + "like": { + "message": "Лайк" + }, + "likes": { + "message": "Лайки" + }, + "lime": { + "message": "Лайм" + }, + "list": { + "message": "Список" + }, + "liveChat": { + "message": "Live-чат" + }, + "liveChatType": { + "message": "Тип live-чата" + }, + "loudnessNormalization": { + "message": "Нормализировать громкость" + }, + "markWatchedVideos": { + "message": "Отмечать просмотренные видео" + }, + "mixer": { + "message": "Миксер" + }, + "myColors": { + "message": "Мои цвета" + }, + "name": { + "message": "Имя" + }, + "nativeMiniPlayer": { + "message": "Мини-плеер от YouTube" + }, + "new": { + "message": "Новый" + }, + "nextVideo": { + "message": "Следующее видео" + }, + "night": { + "message": "Ночь" + }, + "noActiveFeatures": { + "message": "Нет активных функций" + }, + "none": { + "message": "Пусто" + }, + "noOpenVideoTabs": { + "message": "Нет открытых вкладок с видео" + }, + "normal": { + "message": "Обычный" + }, + "old": { + "message": "Старый" + }, + "onAllVideos": { + "message": "Во всех видео" + }, + "onlyActiveOnYoutube": { + "message": "Активен только в YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Только один экземпляр плеера играет" + }, + "onSubscribedChannels": { + "message": "Только на каналах в подписках" + }, + "orange": { + "message": "Оранжевый" + }, + "os": { + "message": "ОС" + }, + "other": { + "message": "Другое" + }, + "permissions": { + "message": "Разрешения" + }, + "pictureInPicture": { + "message": "Картинка в картинке" + }, + "pink": { + "message": "Розовый" + }, + "plain": { + "message": "Равнина" + }, + "platform": { + "message": "Платформа" + }, + "playbackSpeed": { + "message": "Скорость воспроизведения" + }, + "player": { + "message": "Плеер" + }, + "playerColor": { + "message": "Цвет плеера" + }, + "playerSize": { + "message": "Размер плеера" + }, + "playlist": { + "message": "Плейлист" + }, + "playlists": { + "message": "Плейлисты" + }, + "playPause": { + "message": "Воспроизведение / Пауза" + }, + "popupPlayer": { + "message": "Плеер во всплывающем окне" + }, + "position": { + "message": "Позиция" + }, + "pressAnyKeyOrScroll": { + "message": "Нажмите любую клавишу или воспользуйтесь колесом мыши" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Нажмите любую клавишу или используйте колесо мыши" + }, + "previousVideo": { + "message": "Предыдущее видео" + }, + "primaryColor": { + "message": "Основной цвет" + }, + "purple": { + "message": "Фиолетовый" + }, + "quality": { + "message": "Качество" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Оцените нас" + }, + "red": { + "message": "Красный" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Похожие видео" + }, + "removeRelatedSearchResults": { + "message": "Удалить похожие результаты поиска" + }, + "repeat": { + "message": "Повтор" + }, + "reset": { + "message": "Сбросить" + }, + "resetAllSettings": { + "message": "Сбросить все настройки" + }, + "resetAllShortcuts": { + "message": "Сбросить все горячие клавиши" + }, + "reverse": { + "message": "Обратный порядок" + }, + "rotate": { + "message": "Повернуть" + }, + "save": { + "message": "Сохранить" + }, + "saveAs": { + "message": "Сохранить как" + }, + "schedule": { + "message": "Расписание" + }, + "screen": { + "message": "Экран" + }, + "screenshot": { + "message": "Скриншот" + }, + "search": { + "message": "Поиск" + }, + "searchBarOnly": { + "message": "Только поле поиска" + }, + "seekBackward10Seconds": { + "message": "Перемотать на 10 секунд назад" + }, + "seekForward10Seconds": { + "message": "Перемотать на 10 секунд вперед" + }, + "settings": { + "message": "Настройки" + }, + "settingsSuccessfullyImported": { + "message": "Настройки успешно импортированы" + }, + "shortcuts": { + "message": "Горячие клавиши" + }, + "showCardsOnMouseHover": { + "message": "Показывать карточки при наведении мыши" + }, + "showChannelVideosCount": { + "message": "Показывать количество видео на канале" + }, + "shuffle": { + "message": "Случайный порядок" + }, + "sidebar": { + "message": "Боковая панель" + }, + "spacebar": { + "message": "Пробел" + }, + "squaredUserImages": { + "message": "Квадратные аватарки пользователей" + }, + "static": { + "message": "Статично" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Стоп" + }, + "style": { + "message": "Стиль" + }, + "styles": { + "message": "Стили" + }, + "subscriptions": { + "message": "Подписки" + }, + "subtitles": { + "message": "Субтитры" + }, + "sunset": { + "message": "Закат" + }, + "sunsetToSunrise": { + "message": "От заката до рассвета" + }, + "systemPeferenceDark": { + "message": "Предпочитаемая системой: темная" + }, + "systemPeferenceLight": { + "message": "Предпочитаемая системой: светлая" + }, + "teal": { + "message": "Бирюзовый" + }, + "textColor": { + "message": "Цвет текста" + }, + "themes": { + "message": "Темы" + }, + "thisWillRemoveAllCookies": { + "message": "Это удалит все куки" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Вы действительно хотите удалить все куки YouTube?" + }, + "thisWillResetAllSettings": { + "message": "Это сбросит все настройки" + }, + "thisWillResetAllShortcuts": { + "message": "Это сбросит все горячие клавиши" + }, + "thumbnails": { + "message": "Превью" + }, + "timeFrom": { + "message": "Время от" + }, + "timeTo": { + "message": "Время до" + }, + "todayAt": { + "message": "Сегодня в" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Автовоспроизведение трейлера" + }, + "translations": { + "message": "Переводы" + }, + "transparentBackground": { + "message": "Прозрачный фон" + }, + "trending": { + "message": "Тренды" + }, + "tryToReloadThePage": { + "message": "Попробуйте перезагрузить страницу" + }, + "type": { + "message": "Тип" + }, + "upNextAutoplay": { + "message": "Автовоспроизведение следующего видео" + }, + "use24HourFormat": { + "message": "24-часовой формат" + }, + "version": { + "message": "Версия" + }, + "video": { + "message": "Видео" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Описание видео будет развернуто, чтобы получить название категории видео" + }, + "videoFormats": { + "message": "Форматы видео" + }, + "videos": { + "message": "Видео" + }, + "volume": { + "message": "Громкость" + }, + "watchLater": { + "message": "Посмотреть позже" + }, + "watchTime": { + "message": "Время просмотра" + }, + "whenTabIsChanged": { + "message": "При переключении вкладок" + }, + "white": { + "message": "Белый" + }, + "yellow": { + "message": "Желтый" + }, + "youtubeHeaderLeft": { + "message": "Верхняя панель (слева)" + }, + "youtubeHeaderRight": { + "message": "Верхняя панель (справа)" + }, + "youtubeHomePage": { + "message": "Домашняя страница YouTube" + }, + "youtubeLanguage": { + "message": "Язык YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube ограничивает качетво видео до 1080p для кодека h.264" + } +} \ No newline at end of file diff --git a/stable/_locales/sk/messages.json b/stable/_locales/sk/messages.json index 0b7e45145..89a2ae0f5 100644 --- a/stable/_locales/sk/messages.json +++ b/stable/_locales/sk/messages.json @@ -1,800 +1,809 @@ -{ - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "O" - }, - "accept": { - "message": "Prijať" - }, - "activate": { - "message": "Aktivovať" - }, - "activateCaptions": { - "message": "Aktivovať titulky" - }, - "activateFullscreen": { - "message": "Aktivovať zobrazenie na celú obrazovku" - }, - "activated": { - "message": "Aktivované" - }, - "activatedFeatures": { - "message": "Aktivované fukncie" - }, - "activeFeatures": { - "message": "Aktívne funkcie" - }, - "addScrollToTop": { - "message": "Prejdite «Vrátiť sa na začiatok»" - }, - "ads": { - "message": "Reklamy" - }, - "all": { - "message": "Všetko" - }, - "allow": { - "message": "Povoliť" - }, - "allow60fps": { - "message": "Povoliť 60fps" - }, - "alwaysActive": { - "message": "Vždy aktívne" - }, - "alwaysShowProgressBar": { - "message": "Vždy zobrazovať ukazateľ priebehu" - }, - "amber": { - "message": "Ambra" - }, - "analyzer": { - "message": "Analyzátor" - }, - "appearance": { - "message": "Vzhľad" - }, - "audio": { - "message": "Zvuk" - }, - "audioFormats": { - "message": "Formát zvuku" - }, - "auto": { - "message": "Automaticky" - }, - "autoFullscreen": { - "message": "Automaticky-fullscreen" - }, - "autopauseWhenSwitchingTabs": { - "message": "Automatické pozastavenie pri prepínaní kariet" - }, - "autoplay": { - "message": "Automatické prehrávanie" - }, - "backupAndReset": { - "message": "Zálohovanie & Obnova" - }, - "baseOnSystemColorScheme": { - "message": "Nastavené podľa farby systému" - }, - "belowPlayer": { - "message": "Pod prehrávačom" - }, - "black": { - "message": "Čierna" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "Zablokovať všetko" - }, - "blue": { - "message": "Modrá" - }, - "blueGray": { - "message": "Šedo-modrá" - }, - "bluelight": { - "message": "Modré svetlo" - }, - "brown": { - "message": "Hnedá" - }, - "browser": { - "message": "Prehliadac" - }, - "browserVersion": { - "message": "Verzie prehliadača" - }, - "bubbles": { - "message": "Bubliny" - }, - "bug": { - "message": "Chyba" - }, - "buttons": { - "message": "Tlačidlá" - }, - "cancel": { - "message": "Zrušiť" - }, - "categories": { - "message": "Kategórie" - }, - "channel": { - "message": "Kanál" - }, - "channels": { - "message": "Kanály" - }, - "clipboard": { - "message": "Schránka" - }, - "codecH264": { - "message": "Kodek h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Zbaliť sekciu Odber" - }, - "collapsed": { - "message": "Zbaliť" - }, - "comments": { - "message": "Komentáre" - }, - "confirmationBeforeClosing": { - "message": "Potvrdiť pred zatvorenímk" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Jadrá" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Vlastné CSS" - }, - "customJs": { - "message": "Vlastné JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Tyrkysová" - }, - "dark": { - "message": "Tmavý" - }, - "darkTheme": { - "message": "Tmavá téma" - }, - "dateAndTime": { - "message": "Dátum a čas" - }, - "dawn": { - "message": "Svitanie" - }, - "decreasePlaybackSpeed": { - "message": "Znížiť rýchlosť prehrávania" - }, - "decreaseVolume": { - "message": "Znížiť hlasitosť" - }, - "deepOrange": { - "message": "Tmavo oranžová" - }, - "deepPurple": { - "message": "Tmavo fialová" - }, - "defaultChannelTab": { - "message": "Predvolená karta kanálu" - }, - "deleteYoutubeCookies": { - "message": "Vymazať YouTube cookies" - }, - "description": { - "message": "Podrobnosti" - }, - "desert": { - "message": "Púšť" - }, - "details": { - "message": "Detaily" - }, - "developerOptions": { - "message": "Možnosti pre vývojara" - }, - "device": { - "message": "Zariadenie" - }, - "dim": { - "message": "Stmvaviť" - }, - "disabled": { - "message": "Vypnutý" - }, - "dislike": { - "message": "Dislike" - }, - "doNotChange": { - "message": "Nemeniť" - }, - "donate": { - "message": "Prispieť" - }, - "draggable": { - "message": "Posuvné" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Prázdny" - }, - "enabled": { - "message": "Zapnuté" - }, - "enabledForced": { - "message": "Zapnuté (vynútene)" - }, - "expanded": { - "message": "Rozbalené" - }, - "exportSettings": { - "message": "Exportovať nastavenia" - }, - "extension": { - "message": "Rozšírenia" - }, - "file": { - "message": "Súbor" - }, - "filters": { - "message": "Filtre" - }, - "fitToWindow": { - "message": "Prispôsobiť oknu" - }, - "flash": { - "message": "Blikať" - }, - "font": { - "message": "Písmo" - }, - "footer": { - "message": "Pätička" - }, - "forcedPlaybackSpeed": { - "message": "Vynútená rýchlosť prehrávania" - }, - "forcedTheaterMode": { - "message": "Vynútený divadelný režim" - }, - "forcedVolume": { - "message": "Vynútená hlasitosť" - }, - "foundABug": { - "message": "Našli ste chybu?" - }, - "fullWindow": { - "message": "Celé okno" - }, - "general": { - "message": "Všeobecné" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Prejdite do vyhľadávanieho poľa" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Zelená" - }, - "hdThumbnail": { - "message": "HD náhlad" - }, - "hdThumbnails": { - "message": "HD náhlady" - }, - "header": { - "message": "Hlavička" - }, - "hidden": { - "message": "Skryté" - }, - "hiddenOnVideoPage": { - "message": "Skyté na stránke videa" - }, - "hideAnimatedThumbnails": { - "message": "Skryť animované náhľady" - }, - "hideAnnotations": { - "message": "Skryť anotácie" - }, - "hideCards": { - "message": "Skryť karty" - }, - "hideDetails": { - "message": "Skryť detaily" - }, - "hideEndscreen": { - "message": "Skryť zobrazenie na konci videa" - }, - "hideFeaturedContent": { - "message": "Skryť odporúčaný obsah" - }, - "hideFooter": { - "message": "Hide pätičku" - }, - "hidePlaylist": { - "message": "Skryť zoznam videí" - }, - "hideRightButtons": { - "message": "Skryť tlčidlá v pravo" - }, - "hideScrollForDetails": { - "message": "Skryť «Zarolujte pre detaily»" - }, - "hideViewsCount": { - "message": "Skyť počet videní" - }, - "history": { - "message": "História" - }, - "home": { - "message": "Domov" - }, - "hover": { - "message": "Vznášať sa" - }, - "hoverOnVideoPage": { - "message": "Umiestnite kurzor na stránku videa" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Kedy bolo toto video nahrané?" - }, - "icons": { - "message": "Ikony" - }, - "iconsOnly": { - "message": "Iba ikony" - }, - "importSettings": { - "message": "Importovať nastavenia" - }, - "improveLogo": { - "message": "Improve logo" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube ikona v prehliadači" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube ikona na YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube jazyk" - }, - "improvedtubeVersion": { - "message": "ImprovedTube verzia" - }, - "increasePlaybackSpeed": { - "message": "Zvýšiť rýchlosť prehrávania" - }, - "increaseVolume": { - "message": "Zvýšiť hlasitosť" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Jazyky" - }, - "legacyYoutube": { - "message": "Starý YouTube" - }, - "light": { - "message": "Svetlo" - }, - "lightBlue": { - "message": "Svetlo modrá" - }, - "lightGreen": { - "message": "Svetlo zelená" - }, - "like": { - "message": "Páči sa mi to" - }, - "likes": { - "message": "Páči sa mi to" - }, - "lime": { - "message": "Limetková" - }, - "list": { - "message": "Zoznam" - }, - "liveChat": { - "message": "Živí chat" - }, - "liveChatType": { - "message": "Typ živého chatu" - }, - "loudnessNormalization": { - "message": "Vyrovnanie hlasitosti" - }, - "markWatchedVideos": { - "message": "Označiť ako videné" - }, - "mixer": { - "message": "Mixér" - }, - "myColors": { - "message": "Moje farby" - }, - "name": { - "message": "Meno" - }, - "nativeMiniPlayer": { - "message": "Natívny mini prehrávač" - }, - "new": { - "message": "Nový" - }, - "nextVideo": { - "message": "Ďalšie video" - }, - "night": { - "message": "Noc" - }, - "noActiveFeatures": { - "message": "Žiadne aktívne fukncie" - }, - "noOpenVideoTabs": { - "message": "Žiadne otvorené karty s videami" - }, - "none": { - "message": "Žiadny" - }, - "normal": { - "message": "Normále" - }, - "old": { - "message": "Starý" - }, - "onAllVideos": { - "message": "Na všetkých videách" - }, - "onSubscribedChannels": { - "message": "Na odoberaných kanáloch" - }, - "onlyActiveOnYoutube": { - "message": "Aktívne iba na YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Prehrávať iba jedno video" - }, - "orange": { - "message": "Oranžová" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Ostatné" - }, - "permissions": { - "message": "Povolenia" - }, - "pictureInPicture": { - "message": "Obraz v obraze" - }, - "pink": { - "message": "Ružová" - }, - "plain": { - "message": "Jednoduchý" - }, - "platform": { - "message": "Platforma" - }, - "playPause": { - "message": "Prehrať / Pozastavť" - }, - "playbackSpeed": { - "message": "Rýchlosť prehrávania" - }, - "player": { - "message": "Prehrávač" - }, - "playerColor": { - "message": "Farba prehrávača" - }, - "playerSize": { - "message": "Veľkosť prehrávača" - }, - "playlist": { - "message": "Zoznam videí" - }, - "playlists": { - "message": "Zoznamy videí" - }, - "popupPlayer": { - "message": "Popup prehrávač" - }, - "position": { - "message": "Pozícia" - }, - "pressAnyKeyOrScroll": { - "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky" - }, - "previousVideo": { - "message": "Predchýdzajúce video" - }, - "primaryColor": { - "message": "Primárna farba" - }, - "purple": { - "message": "Fialová" - }, - "quality": { - "message": "Kvalita" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Ohodnoťte nás" - }, - "red": { - "message": "Červená" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Súvisiace videá" - }, - "removeRelatedSearchResults": { - "message": "Odstránte príbuzné výsledky vyhľadávania" - }, - "repeat": { - "message": "Opakovať" - }, - "reset": { - "message": "Obnoviť" - }, - "resetAllSettings": { - "message": "Obnoviť všetky nastavenia" - }, - "resetAllShortcuts": { - "message": "Obnoviť všetky skratky" - }, - "reverse": { - "message": "Obrátené" - }, - "rotate": { - "message": "Otočiť" - }, - "save": { - "message": "Uložiť" - }, - "saveAs": { - "message": "Uložiť ako" - }, - "schedule": { - "message": "Naplánovať" - }, - "screen": { - "message": "Obrazovka" - }, - "screenshot": { - "message": "Screenshot" - }, - "search": { - "message": "Vyhľadať" - }, - "searchBarOnly": { - "message": "Iba vyhľadávacie pole" - }, - "seekBackward10Seconds": { - "message": "Pretočiť spät o 10 sekúnd" - }, - "seekForward10Seconds": { - "message": "Pretočiť dopredu o 10 sekúnd" - }, - "settings": { - "message": "Nastavenia" - }, - "settingsSuccessfullyImported": { - "message": "Nastavenia úspešne importované" - }, - "shortcuts": { - "message": "Skratky" - }, - "showCardsOnMouseHover": { - "message": "Zobraziť karty pri prechode myšou" - }, - "showChannelVideosCount": { - "message": "Zobraziť počet videí kanálu" - }, - "shuffle": { - "message": "Náhodne" - }, - "sidebar": { - "message": "Bočný panel" - }, - "spacebar": { - "message": "Medzera" - }, - "squaredUserImages": { - "message": "Štvorcový obrázok užívateľa" - }, - "static": { - "message": "Statické" - }, - "step": { - "message": "Krok" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Štýl" - }, - "styles": { - "message": "Štýly" - }, - "subscriptions": { - "message": "Odbery" - }, - "subtitles": { - "message": "Titulky" - }, - "sunset": { - "message": "Západ slnka" - }, - "sunsetToSunrise": { - "message": "Západ slnka do východu slnka" - }, - "systemPeferenceDark": { - "message": "Predvolené: tmavé" - }, - "systemPeferenceLight": { - "message": "Predvolené: svetlé" - }, - "teal": { - "message": "Modrozelený" - }, - "textColor": { - "message": "Farba textu" - }, - "themes": { - "message": "Témy" - }, - "thisWillRemoveAllCookies": { - "message": "Toto odstráni všetky cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Toto odstráni všetky YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "Toto obnový všetky nastavenia." - }, - "thisWillResetAllShortcuts": { - "message": "Toto obnový všetky skratky" - }, - "thumbnails": { - "message": "Náhlady" - }, - "timeFrom": { - "message": "Čas od" - }, - "timeTo": { - "message": "Čas do" - }, - "todayAt": { - "message": "Dnes o" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Automatické prehrávanie ukážky" - }, - "translations": { - "message": "Preklady" - }, - "transparentBackground": { - "message": "Priehľadné pozadie" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Skúsťe obnoviť stránku" - }, - "type": { - "message": "Typ" - }, - "upNextAutoplay": { - "message": "Automaticky prehrať ďaľšie v poradí" - }, - "use24HourFormat": { - "message": "Použť 24-hodinový formát" - }, - "version": { - "message": "Verzia" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Podrobnosti videa budú zobrazené pre získanie názvu kategórie" - }, - "videoFormats": { - "message": "Formáty videa" - }, - "videos": { - "message": "Vedeá" - }, - "volume": { - "message": "Hlasitosť" - }, - "watchLater": { - "message": "Pozrieť neskor" - }, - "watchTime": { - "message": "Čas sledovania" - }, - "whenTabIsChanged": { - "message": "Pri zmene karty" - }, - "white": { - "message": "Biela" - }, - "yellow": { - "message": "Žltá" - }, - "youtubeHeaderLeft": { - "message": "YouTube hlavička (vľavo)" - }, - "youtubeHeaderRight": { - "message": "YouTube hlavička (vpravo)" - }, - "youtubeHomePage": { - "message": "Domáca stránka YouTube" - }, - "youtubeLanguage": { - "message": "Jazyk YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube obmedzuje kvalitu videa na 1080p pri kodeku h.264" - } -} +{ + "about": { + "message": "O" + }, + "accept": { + "message": "Prijať" + }, + "activate": { + "message": "Aktivovať" + }, + "activateCaptions": { + "message": "Aktivovať titulky" + }, + "activated": { + "message": "Aktivované" + }, + "activatedFeatures": { + "message": "Aktivované fukncie" + }, + "activateFullscreen": { + "message": "Aktivovať zobrazenie na celú obrazovku" + }, + "activeFeatures": { + "message": "Aktívne funkcie" + }, + "addScrollToTop": { + "message": "Prejdite «Vrátiť sa na začiatok»" + }, + "ads": { + "message": "Reklamy" + }, + "all": { + "message": "Všetko" + }, + "allow": { + "message": "Povoliť" + }, + "allow60fps": { + "message": "Povoliť 60fps" + }, + "alwaysActive": { + "message": "Vždy aktívne" + }, + "alwaysShowProgressBar": { + "message": "Vždy zobrazovať ukazateľ priebehu" + }, + "amber": { + "message": "Ambra" + }, + "analyzer": { + "message": "Analyzátor" + }, + "appearance": { + "message": "Vzhľad" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Zvuk" + }, + "audioFormats": { + "message": "Formát zvuku" + }, + "auto": { + "message": "Automaticky" + }, + "autoFullscreen": { + "message": "Automaticky-fullscreen" + }, + "autopauseWhenSwitchingTabs": { + "message": "Automatické pozastavenie pri prepínaní kariet" + }, + "autoplay": { + "message": "Automatické prehrávanie" + }, + "backupAndReset": { + "message": "Zálohovanie & Obnova" + }, + "baseOnSystemColorScheme": { + "message": "Nastavené podľa farby systému" + }, + "belowPlayer": { + "message": "Pod prehrávačom" + }, + "black": { + "message": "Čierna" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "Zablokovať všetko" + }, + "blue": { + "message": "Modrá" + }, + "blueGray": { + "message": "Šedo-modrá" + }, + "bluelight": { + "message": "Modré svetlo" + }, + "brown": { + "message": "Hnedá" + }, + "browser": { + "message": "Prehliadac" + }, + "browserVersion": { + "message": "Verzie prehliadača" + }, + "bubbles": { + "message": "Bubliny" + }, + "bug": { + "message": "Chyba" + }, + "buttons": { + "message": "Tlačidlá" + }, + "cancel": { + "message": "Zrušiť" + }, + "categories": { + "message": "Kategórie" + }, + "channel": { + "message": "Kanál" + }, + "channels": { + "message": "Kanály" + }, + "clipboard": { + "message": "Schránka" + }, + "codecH264": { + "message": "Kodek h.264" + }, + "collapsed": { + "message": "Zbaliť" + }, + "collapseOfSubscriptionSections": { + "message": "Zbaliť sekciu Odber" + }, + "comments": { + "message": "Komentáre" + }, + "confirmationBeforeClosing": { + "message": "Potvrdiť pred zatvorenímk" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Jadrá" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Vlastné CSS" + }, + "customJs": { + "message": "Vlastné JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Tyrkysová" + }, + "dark": { + "message": "Tmavý" + }, + "darkTheme": { + "message": "Tmavá téma" + }, + "dateAndTime": { + "message": "Dátum a čas" + }, + "dawn": { + "message": "Svitanie" + }, + "decreasePlaybackSpeed": { + "message": "Znížiť rýchlosť prehrávania" + }, + "decreaseVolume": { + "message": "Znížiť hlasitosť" + }, + "deepOrange": { + "message": "Tmavo oranžová" + }, + "deepPurple": { + "message": "Tmavo fialová" + }, + "defaultChannelTab": { + "message": "Predvolená karta kanálu" + }, + "deleteYoutubeCookies": { + "message": "Vymazať YouTube cookies" + }, + "description": { + "message": "Podrobnosti" + }, + "desert": { + "message": "Púšť" + }, + "details": { + "message": "Detaily" + }, + "developerOptions": { + "message": "Možnosti pre vývojara" + }, + "device": { + "message": "Zariadenie" + }, + "dim": { + "message": "Stmvaviť" + }, + "disabled": { + "message": "Vypnutý" + }, + "dislike": { + "message": "Dislike" + }, + "donate": { + "message": "Prispieť" + }, + "doNotChange": { + "message": "Nemeniť" + }, + "draggable": { + "message": "Posuvné" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Prázdny" + }, + "enabled": { + "message": "Zapnuté" + }, + "enabledForced": { + "message": "Zapnuté (vynútene)" + }, + "expanded": { + "message": "Rozbalené" + }, + "exportSettings": { + "message": "Exportovať nastavenia" + }, + "extension": { + "message": "Rozšírenia" + }, + "file": { + "message": "Súbor" + }, + "filters": { + "message": "Filtre" + }, + "fitToWindow": { + "message": "Prispôsobiť oknu" + }, + "flash": { + "message": "Blikať" + }, + "font": { + "message": "Písmo" + }, + "footer": { + "message": "Pätička" + }, + "forcedPlaybackSpeed": { + "message": "Vynútená rýchlosť prehrávania" + }, + "forcedTheaterMode": { + "message": "Vynútený divadelný režim" + }, + "forcedVolume": { + "message": "Vynútená hlasitosť" + }, + "foundABug": { + "message": "Našli ste chybu?" + }, + "fullWindow": { + "message": "Celé okno" + }, + "general": { + "message": "Všeobecné" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Prejdite do vyhľadávanieho poľa" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Zelená" + }, + "hdThumbnail": { + "message": "HD náhlad" + }, + "hdThumbnails": { + "message": "HD náhlady" + }, + "header": { + "message": "Hlavička" + }, + "hidden": { + "message": "Skryté" + }, + "hiddenOnVideoPage": { + "message": "Skyté na stránke videa" + }, + "hideAnimatedThumbnails": { + "message": "Skryť animované náhľady" + }, + "hideAnnotations": { + "message": "Skryť anotácie" + }, + "hideCards": { + "message": "Skryť karty" + }, + "hideDetails": { + "message": "Skryť detaily" + }, + "hideEndscreen": { + "message": "Skryť zobrazenie na konci videa" + }, + "hideFeaturedContent": { + "message": "Skryť odporúčaný obsah" + }, + "hideFooter": { + "message": "Hide pätičku" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hidePlaylist": { + "message": "Skryť zoznam videí" + }, + "hideRightButtons": { + "message": "Skryť tlčidlá v pravo" + }, + "hideScrollForDetails": { + "message": "Skryť «Zarolujte pre detaily»" + }, + "hideViewsCount": { + "message": "Skyť počet videní" + }, + "history": { + "message": "História" + }, + "home": { + "message": "Domov" + }, + "hover": { + "message": "Vznášať sa" + }, + "hoverOnVideoPage": { + "message": "Umiestnite kurzor na stránku videa" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Kedy bolo toto video nahrané?" + }, + "icons": { + "message": "Ikony" + }, + "iconsOnly": { + "message": "Iba ikony" + }, + "importSettings": { + "message": "Importovať nastavenia" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube ikona v prehliadači" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube ikona na YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube jazyk" + }, + "improvedtubeVersion": { + "message": "ImprovedTube verzia" + }, + "improveLogo": { + "message": "Improve logo" + }, + "increasePlaybackSpeed": { + "message": "Zvýšiť rýchlosť prehrávania" + }, + "increaseVolume": { + "message": "Zvýšiť hlasitosť" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "Jazyky" + }, + "legacyYoutube": { + "message": "Starý YouTube" + }, + "light": { + "message": "Svetlo" + }, + "lightBlue": { + "message": "Svetlo modrá" + }, + "lightGreen": { + "message": "Svetlo zelená" + }, + "like": { + "message": "Páči sa mi to" + }, + "likes": { + "message": "Páči sa mi to" + }, + "lime": { + "message": "Limetková" + }, + "list": { + "message": "Zoznam" + }, + "liveChat": { + "message": "Živí chat" + }, + "liveChatType": { + "message": "Typ živého chatu" + }, + "loudnessNormalization": { + "message": "Vyrovnanie hlasitosti" + }, + "markWatchedVideos": { + "message": "Označiť ako videné" + }, + "mixer": { + "message": "Mixér" + }, + "myColors": { + "message": "Moje farby" + }, + "name": { + "message": "Meno" + }, + "nativeMiniPlayer": { + "message": "Natívny mini prehrávač" + }, + "new": { + "message": "Nový" + }, + "nextVideo": { + "message": "Ďalšie video" + }, + "night": { + "message": "Noc" + }, + "noActiveFeatures": { + "message": "Žiadne aktívne fukncie" + }, + "none": { + "message": "Žiadny" + }, + "noOpenVideoTabs": { + "message": "Žiadne otvorené karty s videami" + }, + "normal": { + "message": "Normále" + }, + "old": { + "message": "Starý" + }, + "onAllVideos": { + "message": "Na všetkých videách" + }, + "onlyActiveOnYoutube": { + "message": "Aktívne iba na YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Prehrávať iba jedno video" + }, + "onSubscribedChannels": { + "message": "Na odoberaných kanáloch" + }, + "orange": { + "message": "Oranžová" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Ostatné" + }, + "permissions": { + "message": "Povolenia" + }, + "pictureInPicture": { + "message": "Obraz v obraze" + }, + "pink": { + "message": "Ružová" + }, + "plain": { + "message": "Jednoduchý" + }, + "platform": { + "message": "Platforma" + }, + "playbackSpeed": { + "message": "Rýchlosť prehrávania" + }, + "player": { + "message": "Prehrávač" + }, + "playerColor": { + "message": "Farba prehrávača" + }, + "playerSize": { + "message": "Veľkosť prehrávača" + }, + "playlist": { + "message": "Zoznam videí" + }, + "playlists": { + "message": "Zoznamy videí" + }, + "playPause": { + "message": "Prehrať / Pozastavť" + }, + "popupPlayer": { + "message": "Popup prehrávač" + }, + "position": { + "message": "Pozícia" + }, + "pressAnyKeyOrScroll": { + "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky" + }, + "previousVideo": { + "message": "Predchýdzajúce video" + }, + "primaryColor": { + "message": "Primárna farba" + }, + "purple": { + "message": "Fialová" + }, + "quality": { + "message": "Kvalita" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Ohodnoťte nás" + }, + "red": { + "message": "Červená" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Súvisiace videá" + }, + "removeRelatedSearchResults": { + "message": "Odstránte príbuzné výsledky vyhľadávania" + }, + "repeat": { + "message": "Opakovať" + }, + "reset": { + "message": "Obnoviť" + }, + "resetAllSettings": { + "message": "Obnoviť všetky nastavenia" + }, + "resetAllShortcuts": { + "message": "Obnoviť všetky skratky" + }, + "reverse": { + "message": "Obrátené" + }, + "rotate": { + "message": "Otočiť" + }, + "save": { + "message": "Uložiť" + }, + "saveAs": { + "message": "Uložiť ako" + }, + "schedule": { + "message": "Naplánovať" + }, + "screen": { + "message": "Obrazovka" + }, + "screenshot": { + "message": "Screenshot" + }, + "search": { + "message": "Vyhľadať" + }, + "searchBarOnly": { + "message": "Iba vyhľadávacie pole" + }, + "seekBackward10Seconds": { + "message": "Pretočiť spät o 10 sekúnd" + }, + "seekForward10Seconds": { + "message": "Pretočiť dopredu o 10 sekúnd" + }, + "settings": { + "message": "Nastavenia" + }, + "settingsSuccessfullyImported": { + "message": "Nastavenia úspešne importované" + }, + "shortcuts": { + "message": "Skratky" + }, + "showCardsOnMouseHover": { + "message": "Zobraziť karty pri prechode myšou" + }, + "showChannelVideosCount": { + "message": "Zobraziť počet videí kanálu" + }, + "shuffle": { + "message": "Náhodne" + }, + "sidebar": { + "message": "Bočný panel" + }, + "spacebar": { + "message": "Medzera" + }, + "squaredUserImages": { + "message": "Štvorcový obrázok užívateľa" + }, + "static": { + "message": "Statické" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Krok" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Štýl" + }, + "styles": { + "message": "Štýly" + }, + "subscriptions": { + "message": "Odbery" + }, + "subtitles": { + "message": "Titulky" + }, + "sunset": { + "message": "Západ slnka" + }, + "sunsetToSunrise": { + "message": "Západ slnka do východu slnka" + }, + "systemPeferenceDark": { + "message": "Predvolené: tmavé" + }, + "systemPeferenceLight": { + "message": "Predvolené: svetlé" + }, + "teal": { + "message": "Modrozelený" + }, + "textColor": { + "message": "Farba textu" + }, + "themes": { + "message": "Témy" + }, + "thisWillRemoveAllCookies": { + "message": "Toto odstráni všetky cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Toto odstráni všetky YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "Toto obnový všetky nastavenia." + }, + "thisWillResetAllShortcuts": { + "message": "Toto obnový všetky skratky" + }, + "thumbnails": { + "message": "Náhlady" + }, + "timeFrom": { + "message": "Čas od" + }, + "timeTo": { + "message": "Čas do" + }, + "todayAt": { + "message": "Dnes o" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Automatické prehrávanie ukážky" + }, + "translations": { + "message": "Preklady" + }, + "transparentBackground": { + "message": "Priehľadné pozadie" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Skúsťe obnoviť stránku" + }, + "type": { + "message": "Typ" + }, + "upNextAutoplay": { + "message": "Automaticky prehrať ďaľšie v poradí" + }, + "use24HourFormat": { + "message": "Použť 24-hodinový formát" + }, + "version": { + "message": "Verzia" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Podrobnosti videa budú zobrazené pre získanie názvu kategórie" + }, + "videoFormats": { + "message": "Formáty videa" + }, + "videos": { + "message": "Vedeá" + }, + "volume": { + "message": "Hlasitosť" + }, + "watchLater": { + "message": "Pozrieť neskor" + }, + "watchTime": { + "message": "Čas sledovania" + }, + "whenTabIsChanged": { + "message": "Pri zmene karty" + }, + "white": { + "message": "Biela" + }, + "yellow": { + "message": "Žltá" + }, + "youtubeHeaderLeft": { + "message": "YouTube hlavička (vľavo)" + }, + "youtubeHeaderRight": { + "message": "YouTube hlavička (vpravo)" + }, + "youtubeHomePage": { + "message": "Domáca stránka YouTube" + }, + "youtubeLanguage": { + "message": "Jazyk YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube obmedzuje kvalitu videa na 1080p pri kodeku h.264" + } +} \ No newline at end of file diff --git a/stable/_locales/tr/messages.json b/stable/_locales/tr/messages.json index 2e3ab1124..323157a27 100644 --- a/stable/_locales/tr/messages.json +++ b/stable/_locales/tr/messages.json @@ -1,800 +1,809 @@ -{ - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Hakkında" - }, - "accept": { - "message": "Onayla" - }, - "activate": { - "message": "Aktifleştir" - }, - "activateCaptions": { - "message": "Altyazıları Aktifleştir" - }, - "activateFullscreen": { - "message": "Tam ekranı Aktifleştir" - }, - "activated": { - "message": "Aktifleştirilmiş" - }, - "activatedFeatures": { - "message": "Aktifleştirilmiş özellikler" - }, - "activeFeatures": { - "message": "Etkin özellikler" - }, - "addScrollToTop": { - "message": "«Yukarı kaydır» ekle" - }, - "ads": { - "message": "Reklamlar" - }, - "all": { - "message": "Tümü" - }, - "allow": { - "message": "İzin ver" - }, - "allow60fps": { - "message": "60fps'e izin ver" - }, - "alwaysActive": { - "message": "Sürekli etkin" - }, - "alwaysShowProgressBar": { - "message": "İlerleme çubuğunu sürekli göster" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analizör" - }, - "appearance": { - "message": "Görünüm" - }, - "audio": { - "message": "Ses" - }, - "audioFormats": { - "message": "Ses formatları" - }, - "auto": { - "message": "Otomatik" - }, - "autoFullscreen": { - "message": "Otomatik tam ekran" - }, - "autopauseWhenSwitchingTabs": { - "message": "Sekme değiştirildiğinde duraklat" - }, - "autoplay": { - "message": "Otomatik oynat" - }, - "backupAndReset": { - "message": "Yedek & sıfırla" - }, - "baseOnSystemColorScheme": { - "message": "Sistem renk şeması temelli" - }, - "belowPlayer": { - "message": "Oynatıcının altında" - }, - "black": { - "message": "Kara" - }, - "blacklist": { - "message": "Kara Liste" - }, - "blockAll": { - "message": "Tümünü engelle" - }, - "blue": { - "message": "Mavi" - }, - "blueGray": { - "message": "Mavi gri" - }, - "bluelight": { - "message": "Mavi Işık" - }, - "brown": { - "message": "Kahverengi" - }, - "browser": { - "message": "Tarayıcı" - }, - "browserVersion": { - "message": "Tarayıcı Sürümü" - }, - "bubbles": { - "message": "Baloncuklar" - }, - "bug": { - "message": "Hata" - }, - "buttons": { - "message": "Butonlar" - }, - "cancel": { - "message": "İptal" - }, - "categories": { - "message": "Kategoriler" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanallar" - }, - "clipboard": { - "message": "Pano" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Abonelik bölümlerini daralt" - }, - "collapsed": { - "message": "Daraltılmış" - }, - "comments": { - "message": "Yorumlar" - }, - "confirmationBeforeClosing": { - "message": "Kapatmadan önce uyar" - }, - "cookies": { - "message": "Çerezler" - }, - "cores": { - "message": "Çekirdekler" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Özel CSS" - }, - "customJs": { - "message": "Özel JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Camgöbeği" - }, - "dark": { - "message": "Koyu" - }, - "darkTheme": { - "message": "Koyu tema" - }, - "dateAndTime": { - "message": "Tarih & zaman" - }, - "dawn": { - "message": "Şafak" - }, - "decreasePlaybackSpeed": { - "message": "Oynatma hızını azalt" - }, - "decreaseVolume": { - "message": "Sesi azalt" - }, - "deepOrange": { - "message": "Koyu turuncu" - }, - "deepPurple": { - "message": "Koyu mor" - }, - "defaultChannelTab": { - "message": "Varsayılan kanal sekmesi" - }, - "deleteYoutubeCookies": { - "message": "YouTube çerezleri sil" - }, - "description": { - "message": "Açıklama" - }, - "desert": { - "message": "Çöl" - }, - "details": { - "message": "Ayrıntılar" - }, - "developerOptions": { - "message": "Geliştirici seçenekleri" - }, - "device": { - "message": "Cihaz" - }, - "dim": { - "message": "Karart" - }, - "disabled": { - "message": "Devredışı" - }, - "dislike": { - "message": "Beğenmeme" - }, - "doNotChange": { - "message": "Değiştirme" - }, - "donate": { - "message": "Bağış" - }, - "draggable": { - "message": "Sürüklenebilir" - }, - "email": { - "message": "Eposta" - }, - "empty": { - "message": "Boş" - }, - "enabled": { - "message": "Etkin" - }, - "enabledForced": { - "message": "Etkin (Zorla)" - }, - "expanded": { - "message": "Genişletilmiş" - }, - "exportSettings": { - "message": "Ayarları dışa aktar" - }, - "extension": { - "message": "Uzantı" - }, - "file": { - "message": "Dosya" - }, - "filters": { - "message": "Filtreler" - }, - "fitToWindow": { - "message": "Pencereye sığdır" - }, - "flash": { - "message": "Flaş" - }, - "font": { - "message": "Yazı Tipi" - }, - "footer": { - "message": "Footer" - }, - "forcedPlaybackSpeed": { - "message": "Oynatma hızını uygulamaya zorla" - }, - "forcedTheaterMode": { - "message": "Sinema modunu zorla" - }, - "forcedVolume": { - "message": "Sesi zorla" - }, - "foundABug": { - "message": "Hata mı buldun?" - }, - "fullWindow": { - "message": "Tam pencere" - }, - "general": { - "message": "Genel" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Arama kutusuna git" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Yeşil" - }, - "hdThumbnail": { - "message": "HD küçük resim" - }, - "hdThumbnails": { - "message": "HD küçük resimler" - }, - "header": { - "message": "Header" - }, - "hidden": { - "message": "Gizli" - }, - "hiddenOnVideoPage": { - "message": "Video sayfasında gizli" - }, - "hideAnimatedThumbnails": { - "message": "Harehetli küçük resimleri gizle" - }, - "hideAnnotations": { - "message": "Ek açıklamaları gizle" - }, - "hideCards": { - "message": "Kartları gizle" - }, - "hideDetails": { - "message": "Detayları gizle" - }, - "hideEndscreen": { - "message": "Ekran sonunu gizle" - }, - "hideFeaturedContent": { - "message": "Öne çıkan içeriği gizle" - }, - "hideFooter": { - "message": "Footer'ı gizle" - }, - "hidePlaylist": { - "message": "Oynatma Listesi'ni gizle" - }, - "hideRightButtons": { - "message": "Sağ butonları gizle" - }, - "hideScrollForDetails": { - "message": "«Ayrıntılar için kaydır» gizle" - }, - "hideViewsCount": { - "message": "Görüntüleme sayısını gizle" - }, - "history": { - "message": "Geçmiş" - }, - "home": { - "message": "Ana Sayfa" - }, - "hover": { - "message": "Hover" - }, - "hoverOnVideoPage": { - "message": "Hover on video page" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Video ne kadar süre önce yüklendi" - }, - "icons": { - "message": "Simgeler" - }, - "iconsOnly": { - "message": "Yalnızca simgeler" - }, - "importSettings": { - "message": "Ayarları içe aktar" - }, - "improveLogo": { - "message": "Logoyu geliştir" - }, - "improvedtubeIconInBrowser": { - "message": "Tarayıcıda ImprovedTube Simgesi" - }, - "improvedtubeIconOnYoutube": { - "message": "YouTube'da ImprovedTube Simgesi" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube dili" - }, - "improvedtubeVersion": { - "message": "ImprovedTube sürümü" - }, - "increasePlaybackSpeed": { - "message": "Oynatma hızını artır" - }, - "increaseVolume": { - "message": "Sesi artır" - }, - "indigo": { - "message": "Çivit" - }, - "items": { - "message": "Öğeler" - }, - "languages": { - "message": "Diller" - }, - "legacyYoutube": { - "message": "Eski YouTube" - }, - "light": { - "message": "Açık" - }, - "lightBlue": { - "message": "Açık mavi" - }, - "lightGreen": { - "message": "Açık yeşil" - }, - "like": { - "message": "Beğen" - }, - "likes": { - "message": "Beğeniler" - }, - "lime": { - "message": "Lime" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Canlı sohbet" - }, - "liveChatType": { - "message": "Canlı sohbet türü" - }, - "loudnessNormalization": { - "message": "Gürültü normalleştirme" - }, - "markWatchedVideos": { - "message": "İzlenen videoları işaretle" - }, - "mixer": { - "message": "Karıştırıcı" - }, - "myColors": { - "message": "Renklerim" - }, - "name": { - "message": "İsim" - }, - "nativeMiniPlayer": { - "message": "Native mini player" - }, - "new": { - "message": "Yeni" - }, - "nextVideo": { - "message": "Sonraki video" - }, - "night": { - "message": "Gece" - }, - "noActiveFeatures": { - "message": "Aktif özellik yok" - }, - "noOpenVideoTabs": { - "message": "Açık video sekmesi yok" - }, - "none": { - "message": "Yok" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Eski" - }, - "onAllVideos": { - "message": "Tüm videolarda" - }, - "onSubscribedChannels": { - "message": "Abone olunan kanallarda" - }, - "onlyActiveOnYoutube": { - "message": "Yalnızca YouTube'da etkin" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "orange": { - "message": "Turuncu" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Diğer" - }, - "permissions": { - "message": "İzinler" - }, - "pictureInPicture": { - "message": "Resim içinde resim" - }, - "pink": { - "message": "Pembe" - }, - "plain": { - "message": "Sade" - }, - "platform": { - "message": "Platform" - }, - "playPause": { - "message": "Oynat / Duraklat" - }, - "playbackSpeed": { - "message": "Oynatma hızı" - }, - "player": { - "message": "Oynatıcı" - }, - "playerColor": { - "message": "Oynatıcı rengi" - }, - "playerSize": { - "message": "Oynatıcı boyutu" - }, - "playlist": { - "message": "Oynatma Listesi" - }, - "playlists": { - "message": "Oynatma Listeleri" - }, - "popupPlayer": { - "message": "Popup oynatıcı" - }, - "position": { - "message": "Konum" - }, - "pressAnyKeyOrScroll": { - "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan" - }, - "previousVideo": { - "message": "Önceki video" - }, - "primaryColor": { - "message": "Birincil renk" - }, - "purple": { - "message": "Mor" - }, - "quality": { - "message": "Kalite" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Bizi oyla" - }, - "red": { - "message": "Kırmızı" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "İlgili videolar" - }, - "removeRelatedSearchResults": { - "message": "İlgili arama sonuçlarını kaldır" - }, - "repeat": { - "message": "Tekrarla" - }, - "reset": { - "message": "Sıfırla" - }, - "resetAllSettings": { - "message": "Tüm ayarları sıfırla" - }, - "resetAllShortcuts": { - "message": "Tüm kısayolları sıfırla" - }, - "reverse": { - "message": "Ters" - }, - "rotate": { - "message": "Döndür" - }, - "save": { - "message": "Kaydet" - }, - "saveAs": { - "message": "Farklı kaydet" - }, - "schedule": { - "message": "Takvim" - }, - "screen": { - "message": "Ekran" - }, - "screenshot": { - "message": "Ekran görüntüsü" - }, - "search": { - "message": "Ara" - }, - "searchBarOnly": { - "message": "Yalnızca arama çubuğu" - }, - "seekBackward10Seconds": { - "message": "10 saniye geriye git" - }, - "seekForward10Seconds": { - "message": "10 saniye ileriye git" - }, - "settings": { - "message": "Ayarlar" - }, - "settingsSuccessfullyImported": { - "message": "Ayarlar başarıyla içe aktarıldı" - }, - "shortcuts": { - "message": "Kısayollar" - }, - "showCardsOnMouseHover": { - "message": "Fareyle üzerine gelindiğinde kartları göster" - }, - "showChannelVideosCount": { - "message": "Kanalın video sayısını göster" - }, - "shuffle": { - "message": "Karıştır" - }, - "sidebar": { - "message": "Kenar çubuğu" - }, - "spacebar": { - "message": "Spacebar" - }, - "squaredUserImages": { - "message": "Kare kullanıcı görüntüleri" - }, - "static": { - "message": "Statik" - }, - "step": { - "message": "Adım" - }, - "stop": { - "message": "Durdur" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stiller" - }, - "subscriptions": { - "message": "Aboneler" - }, - "subtitles": { - "message": "Altyazılar" - }, - "sunset": { - "message": "Gün batımı" - }, - "sunsetToSunrise": { - "message": "Gün batımından gün doğumuna" - }, - "systemPeferenceDark": { - "message": "Sistem tercihi: koyu" - }, - "systemPeferenceLight": { - "message": "Sistem tercihi: açık" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Yazı rengi" - }, - "themes": { - "message": "Temalar" - }, - "thisWillRemoveAllCookies": { - "message": "Bu, tüm çerezleri kaldıracaktır." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Bu, tüm YouTube çerezlerini kaldıracaktır." - }, - "thisWillResetAllSettings": { - "message": "Bu, tüm ayarları sıfırlayacaktır." - }, - "thisWillResetAllShortcuts": { - "message": "Bu, tüm kısayolları sıfırlayacaktır." - }, - "thumbnails": { - "message": "Küçük resimler" - }, - "timeFrom": { - "message": "Şu zamandan" - }, - "timeTo": { - "message": "Şu zamana" - }, - "todayAt": { - "message": "Bugün" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Fragman otomatik oynatımı" - }, - "translations": { - "message": "Çeviriler" - }, - "transparentBackground": { - "message": "Saydam arka plan" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Sayfayı yeniden yüklemeyi deneyin" - }, - "type": { - "message": "Tip" - }, - "upNextAutoplay": { - "message": "Sonraki otomatik oynatma" - }, - "use24HourFormat": { - "message": "24 saat biçimini kullan" - }, - "version": { - "message": "Sürüm" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Kategorinin adını almak için video açıklaması genişletilecek" - }, - "videoFormats": { - "message": "Video formatları" - }, - "videos": { - "message": "Videolar" - }, - "volume": { - "message": "Ses" - }, - "watchLater": { - "message": "Sonra izle" - }, - "watchTime": { - "message": "İzleme zamanı" - }, - "whenTabIsChanged": { - "message": "Sekme değiştirildiğinde" - }, - "white": { - "message": "Beyaz" - }, - "yellow": { - "message": "Sarı" - }, - "youtubeHeaderLeft": { - "message": "YouTube Header (sol)" - }, - "youtubeHeaderRight": { - "message": "YouTube Header (sağ)" - }, - "youtubeHomePage": { - "message": "YouTube ana sayfası" - }, - "youtubeLanguage": { - "message": "YouTube dili" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube, h.264 codec bileşeni için video kalitesini 1080p ile sınırlar" - } -} +{ + "about": { + "message": "Hakkında" + }, + "accept": { + "message": "Onayla" + }, + "activate": { + "message": "Aktifleştir" + }, + "activateCaptions": { + "message": "Altyazıları Aktifleştir" + }, + "activated": { + "message": "Aktifleştirilmiş" + }, + "activatedFeatures": { + "message": "Aktifleştirilmiş özellikler" + }, + "activateFullscreen": { + "message": "Tam ekranı Aktifleştir" + }, + "activeFeatures": { + "message": "Etkin özellikler" + }, + "addScrollToTop": { + "message": "«Yukarı kaydır» ekle" + }, + "ads": { + "message": "Reklamlar" + }, + "all": { + "message": "Tümü" + }, + "allow": { + "message": "İzin ver" + }, + "allow60fps": { + "message": "60fps'e izin ver" + }, + "alwaysActive": { + "message": "Sürekli etkin" + }, + "alwaysShowProgressBar": { + "message": "İlerleme çubuğunu sürekli göster" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analizör" + }, + "appearance": { + "message": "Görünüm" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Ses" + }, + "audioFormats": { + "message": "Ses formatları" + }, + "auto": { + "message": "Otomatik" + }, + "autoFullscreen": { + "message": "Otomatik tam ekran" + }, + "autopauseWhenSwitchingTabs": { + "message": "Sekme değiştirildiğinde duraklat" + }, + "autoplay": { + "message": "Otomatik oynat" + }, + "backupAndReset": { + "message": "Yedek & sıfırla" + }, + "baseOnSystemColorScheme": { + "message": "Sistem renk şeması temelli" + }, + "belowPlayer": { + "message": "Oynatıcının altında" + }, + "black": { + "message": "Kara" + }, + "blacklist": { + "message": "Kara Liste" + }, + "blockAll": { + "message": "Tümünü engelle" + }, + "blue": { + "message": "Mavi" + }, + "blueGray": { + "message": "Mavi gri" + }, + "bluelight": { + "message": "Mavi Işık" + }, + "brown": { + "message": "Kahverengi" + }, + "browser": { + "message": "Tarayıcı" + }, + "browserVersion": { + "message": "Tarayıcı Sürümü" + }, + "bubbles": { + "message": "Baloncuklar" + }, + "bug": { + "message": "Hata" + }, + "buttons": { + "message": "Butonlar" + }, + "cancel": { + "message": "İptal" + }, + "categories": { + "message": "Kategoriler" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanallar" + }, + "clipboard": { + "message": "Pano" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapsed": { + "message": "Daraltılmış" + }, + "collapseOfSubscriptionSections": { + "message": "Abonelik bölümlerini daralt" + }, + "comments": { + "message": "Yorumlar" + }, + "confirmationBeforeClosing": { + "message": "Kapatmadan önce uyar" + }, + "cookies": { + "message": "Çerezler" + }, + "cores": { + "message": "Çekirdekler" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Özel CSS" + }, + "customJs": { + "message": "Özel JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Camgöbeği" + }, + "dark": { + "message": "Koyu" + }, + "darkTheme": { + "message": "Koyu tema" + }, + "dateAndTime": { + "message": "Tarih & zaman" + }, + "dawn": { + "message": "Şafak" + }, + "decreasePlaybackSpeed": { + "message": "Oynatma hızını azalt" + }, + "decreaseVolume": { + "message": "Sesi azalt" + }, + "deepOrange": { + "message": "Koyu turuncu" + }, + "deepPurple": { + "message": "Koyu mor" + }, + "defaultChannelTab": { + "message": "Varsayılan kanal sekmesi" + }, + "deleteYoutubeCookies": { + "message": "YouTube çerezleri sil" + }, + "description": { + "message": "Açıklama" + }, + "desert": { + "message": "Çöl" + }, + "details": { + "message": "Ayrıntılar" + }, + "developerOptions": { + "message": "Geliştirici seçenekleri" + }, + "device": { + "message": "Cihaz" + }, + "dim": { + "message": "Karart" + }, + "disabled": { + "message": "Devredışı" + }, + "dislike": { + "message": "Beğenmeme" + }, + "donate": { + "message": "Bağış" + }, + "doNotChange": { + "message": "Değiştirme" + }, + "draggable": { + "message": "Sürüklenebilir" + }, + "email": { + "message": "Eposta" + }, + "empty": { + "message": "Boş" + }, + "enabled": { + "message": "Etkin" + }, + "enabledForced": { + "message": "Etkin (Zorla)" + }, + "expanded": { + "message": "Genişletilmiş" + }, + "exportSettings": { + "message": "Ayarları dışa aktar" + }, + "extension": { + "message": "Uzantı" + }, + "file": { + "message": "Dosya" + }, + "filters": { + "message": "Filtreler" + }, + "fitToWindow": { + "message": "Pencereye sığdır" + }, + "flash": { + "message": "Flaş" + }, + "font": { + "message": "Yazı Tipi" + }, + "footer": { + "message": "Footer" + }, + "forcedPlaybackSpeed": { + "message": "Oynatma hızını uygulamaya zorla" + }, + "forcedTheaterMode": { + "message": "Sinema modunu zorla" + }, + "forcedVolume": { + "message": "Sesi zorla" + }, + "foundABug": { + "message": "Hata mı buldun?" + }, + "fullWindow": { + "message": "Tam pencere" + }, + "general": { + "message": "Genel" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Arama kutusuna git" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Yeşil" + }, + "hdThumbnail": { + "message": "HD küçük resim" + }, + "hdThumbnails": { + "message": "HD küçük resimler" + }, + "header": { + "message": "Header" + }, + "hidden": { + "message": "Gizli" + }, + "hiddenOnVideoPage": { + "message": "Video sayfasında gizli" + }, + "hideAnimatedThumbnails": { + "message": "Hareketli küçük resimleri gizle" + }, + "hideAnnotations": { + "message": "Ek açıklamaları gizle" + }, + "hideCards": { + "message": "Kartları gizle" + }, + "hideDetails": { + "message": "Detayları gizle" + }, + "hideEndscreen": { + "message": "Ekran sonunu gizle" + }, + "hideFeaturedContent": { + "message": "Öne çıkan içeriği gizle" + }, + "hideFooter": { + "message": "Footer'ı gizle" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hidePlaylist": { + "message": "Oynatma Listesi'ni gizle" + }, + "hideRightButtons": { + "message": "Sağ butonları gizle" + }, + "hideScrollForDetails": { + "message": "«Ayrıntılar için kaydır» gizle" + }, + "hideViewsCount": { + "message": "Görüntüleme sayısını gizle" + }, + "history": { + "message": "Geçmiş" + }, + "home": { + "message": "Ana Sayfa" + }, + "hover": { + "message": "Hover" + }, + "hoverOnVideoPage": { + "message": "Hover on video page" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Video ne kadar süre önce yüklendi" + }, + "icons": { + "message": "Simgeler" + }, + "iconsOnly": { + "message": "Yalnızca simgeler" + }, + "importSettings": { + "message": "Ayarları içe aktar" + }, + "improvedtubeIconInBrowser": { + "message": "Tarayıcıda ImprovedTube Simgesi" + }, + "improvedtubeIconOnYoutube": { + "message": "YouTube'da ImprovedTube Simgesi" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube dili" + }, + "improvedtubeVersion": { + "message": "ImprovedTube sürümü" + }, + "improveLogo": { + "message": "Logoyu geliştir" + }, + "increasePlaybackSpeed": { + "message": "Oynatma hızını artır" + }, + "increaseVolume": { + "message": "Sesi artır" + }, + "indigo": { + "message": "Çivit" + }, + "items": { + "message": "Öğeler" + }, + "languages": { + "message": "Diller" + }, + "legacyYoutube": { + "message": "Eski YouTube" + }, + "light": { + "message": "Açık" + }, + "lightBlue": { + "message": "Açık mavi" + }, + "lightGreen": { + "message": "Açık yeşil" + }, + "like": { + "message": "Beğen" + }, + "likes": { + "message": "Beğeniler" + }, + "lime": { + "message": "Lime" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Canlı sohbet" + }, + "liveChatType": { + "message": "Canlı sohbet türü" + }, + "loudnessNormalization": { + "message": "Gürültü normalleştirme" + }, + "markWatchedVideos": { + "message": "İzlenen videoları işaretle" + }, + "mixer": { + "message": "Karıştırıcı" + }, + "myColors": { + "message": "Renklerim" + }, + "name": { + "message": "İsim" + }, + "nativeMiniPlayer": { + "message": "Native mini player" + }, + "new": { + "message": "Yeni" + }, + "nextVideo": { + "message": "Sonraki video" + }, + "night": { + "message": "Gece" + }, + "noActiveFeatures": { + "message": "Aktif özellik yok" + }, + "none": { + "message": "Yok" + }, + "noOpenVideoTabs": { + "message": "Açık video sekmesi yok" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Eski" + }, + "onAllVideos": { + "message": "Tüm videolarda" + }, + "onlyActiveOnYoutube": { + "message": "Yalnızca YouTube'da etkin" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "onSubscribedChannels": { + "message": "Abone olunan kanallarda" + }, + "orange": { + "message": "Turuncu" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Diğer" + }, + "permissions": { + "message": "İzinler" + }, + "pictureInPicture": { + "message": "Resim içinde resim" + }, + "pink": { + "message": "Pembe" + }, + "plain": { + "message": "Sade" + }, + "platform": { + "message": "Platform" + }, + "playbackSpeed": { + "message": "Oynatma hızı" + }, + "player": { + "message": "Oynatıcı" + }, + "playerColor": { + "message": "Oynatıcı rengi" + }, + "playerSize": { + "message": "Oynatıcı boyutu" + }, + "playlist": { + "message": "Oynatma Listesi" + }, + "playlists": { + "message": "Oynatma Listeleri" + }, + "playPause": { + "message": "Oynat / Duraklat" + }, + "popupPlayer": { + "message": "Popup oynatıcı" + }, + "position": { + "message": "Konum" + }, + "pressAnyKeyOrScroll": { + "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan" + }, + "previousVideo": { + "message": "Önceki video" + }, + "primaryColor": { + "message": "Birincil renk" + }, + "purple": { + "message": "Mor" + }, + "quality": { + "message": "Kalite" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Bizi oyla" + }, + "red": { + "message": "Kırmızı" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "İlgili videolar" + }, + "removeRelatedSearchResults": { + "message": "İlgili arama sonuçlarını kaldır" + }, + "repeat": { + "message": "Tekrarla" + }, + "reset": { + "message": "Sıfırla" + }, + "resetAllSettings": { + "message": "Tüm ayarları sıfırla" + }, + "resetAllShortcuts": { + "message": "Tüm kısayolları sıfırla" + }, + "reverse": { + "message": "Ters" + }, + "rotate": { + "message": "Döndür" + }, + "save": { + "message": "Kaydet" + }, + "saveAs": { + "message": "Farklı kaydet" + }, + "schedule": { + "message": "Takvim" + }, + "screen": { + "message": "Ekran" + }, + "screenshot": { + "message": "Ekran görüntüsü" + }, + "search": { + "message": "Ara" + }, + "searchBarOnly": { + "message": "Yalnızca arama çubuğu" + }, + "seekBackward10Seconds": { + "message": "10 saniye geriye git" + }, + "seekForward10Seconds": { + "message": "10 saniye ileriye git" + }, + "settings": { + "message": "Ayarlar" + }, + "settingsSuccessfullyImported": { + "message": "Ayarlar başarıyla içe aktarıldı" + }, + "shortcuts": { + "message": "Kısayollar" + }, + "showCardsOnMouseHover": { + "message": "Fareyle üzerine gelindiğinde kartları göster" + }, + "showChannelVideosCount": { + "message": "Kanalın video sayısını göster" + }, + "shuffle": { + "message": "Karıştır" + }, + "sidebar": { + "message": "Kenar çubuğu" + }, + "spacebar": { + "message": "Spacebar" + }, + "squaredUserImages": { + "message": "Kare kullanıcı görüntüleri" + }, + "static": { + "message": "Statik" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Adım" + }, + "stop": { + "message": "Durdur" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stiller" + }, + "subscriptions": { + "message": "Aboneler" + }, + "subtitles": { + "message": "Altyazılar" + }, + "sunset": { + "message": "Gün batımı" + }, + "sunsetToSunrise": { + "message": "Gün batımından gün doğumuna" + }, + "systemPeferenceDark": { + "message": "Sistem tercihi: koyu" + }, + "systemPeferenceLight": { + "message": "Sistem tercihi: açık" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Yazı rengi" + }, + "themes": { + "message": "Temalar" + }, + "thisWillRemoveAllCookies": { + "message": "Bu, tüm çerezleri kaldıracaktır." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Bu, tüm YouTube çerezlerini kaldıracaktır." + }, + "thisWillResetAllSettings": { + "message": "Bu, tüm ayarları sıfırlayacaktır." + }, + "thisWillResetAllShortcuts": { + "message": "Bu, tüm kısayolları sıfırlayacaktır." + }, + "thumbnails": { + "message": "Küçük resimler" + }, + "timeFrom": { + "message": "Şu zamandan" + }, + "timeTo": { + "message": "Şu zamana" + }, + "todayAt": { + "message": "Bugün" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Fragman otomatik oynatımı" + }, + "translations": { + "message": "Çeviriler" + }, + "transparentBackground": { + "message": "Saydam arka plan" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Sayfayı yeniden yüklemeyi deneyin" + }, + "type": { + "message": "Tip" + }, + "upNextAutoplay": { + "message": "Sonraki otomatik oynatma" + }, + "use24HourFormat": { + "message": "24 saat biçimini kullan" + }, + "version": { + "message": "Sürüm" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Kategorinin adını almak için video açıklaması genişletilecek" + }, + "videoFormats": { + "message": "Video formatları" + }, + "videos": { + "message": "Videolar" + }, + "volume": { + "message": "Ses" + }, + "watchLater": { + "message": "Sonra izle" + }, + "watchTime": { + "message": "İzleme zamanı" + }, + "whenTabIsChanged": { + "message": "Sekme değiştirildiğinde" + }, + "white": { + "message": "Beyaz" + }, + "yellow": { + "message": "Sarı" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (sol)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (sağ)" + }, + "youtubeHomePage": { + "message": "YouTube ana sayfası" + }, + "youtubeLanguage": { + "message": "YouTube dili" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube, h.264 codec bileşeni için video kalitesini 1080p ile sınırlar" + } +} \ No newline at end of file diff --git a/stable/_locales/zh_CN/messages.json b/stable/_locales/zh_CN/messages.json index a7338ac70..68b312438 100644 --- a/stable/_locales/zh_CN/messages.json +++ b/stable/_locales/zh_CN/messages.json @@ -1,806 +1,815 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "关于" - }, - "accept": { - "message": "Accept" - }, - "activate": { - "message": "启用" - }, - "activateCaptions": { - "message": "启用字幕" - }, - "activateFullscreen": { - "message": "启用全屏" - }, - "activated": { - "message": "Activated" - }, - "activatedFeatures": { - "message": "Activated features" - }, - "activeFeatures": { - "message": "启用功能" - }, - "addScrollToTop": { - "message": "返回顶部按钮" - }, - "ads": { - "message": "广告" - }, - "all": { - "message": "All" - }, - "allow": { - "message": "允许" - }, - "allow60fps": { - "message": "允许60FPS" - }, - "alwaysActive": { - "message": "始终启用" - }, - "alwaysShowProgressBar": { - "message": "始终显示进度条" - }, - "amber": { - "message": "琥珀色" - }, - "analyzer": { - "message": "分析仪" - }, - "appearance": { - "message": "外观" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "音频格式" - }, - "auto": { - "message": "自动" - }, - "autoFullscreen": { - "message": "自动全屏" - }, - "autopauseWhenSwitchingTabs": { - "message": "切换标签时暂停播放" - }, - "autoplay": { - "message": "自动播放" - }, - "backupAndReset": { - "message": "备份与恢复" - }, - "baseOnSystemColorScheme": { - "message": "使用系统配色" - }, - "belowPlayer": { - "message": "在播放器下方" - }, - "black": { - "message": "纯黑" - }, - "blacklist": { - "message": "黑名单" - }, - "blockAll": { - "message": "拦截所有" - }, - "blue": { - "message": "蓝色" - }, - "blueGray": { - "message": "蓝灰色" - }, - "bluelight": { - "message": "色彩柔和度" - }, - "brown": { - "message": "棕色" - }, - "browser": { - "message": "浏览器" - }, - "browserVersion": { - "message": "浏览器版本" - }, - "bubbles": { - "message": "Bubbles" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "按钮" - }, - "cancel": { - "message": "取消" - }, - "categories": { - "message": "Categories" - }, - "channel": { - "message": "电影和节目" - }, - "channels": { - "message": "频道" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" - }, - "collapsed": { - "message": "收起" - }, - "comments": { - "message": "评论" - }, - "confirmationBeforeClosing": { - "message": "页面关闭前提示" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "核心" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "自定义CSS" - }, - "customJs": { - "message": "自定义JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "青色" - }, - "dark": { - "message": "黑暗" - }, - "darkTheme": { - "message": "夜间模式" - }, - "dateAndTime": { - "message": "时间与日期" - }, - "dawn": { - "message": "黎明" - }, - "decreasePlaybackSpeed": { - "message": "视频减速" - }, - "decreaseVolume": { - "message": "-5%音量" - }, - "deepOrange": { - "message": "深橙色" - }, - "deepPurple": { - "message": "深紫色" - }, - "defaultChannelTab": { - "message": "默认频道页" - }, - "deleteYoutubeCookies": { - "message": "清空 YouTube cookies" - }, - "description": { - "message": "视频描述" - }, - "desert": { - "message": "沙漠" - }, - "details": { - "message": "细节信息" - }, - "developerOptions": { - "message": "开发者选项" - }, - "device": { - "message": "设备" - }, - "dim": { - "message": "遮罩程度" - }, - "disabled": { - "message": "停用" - }, - "dislike": { - "message": "点踩" - }, - "doNotChange": { - "message": "不做改变" - }, - "donate": { - "message": "支持" - }, - "draggable": { - "message": "可拖动" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Empty" - }, - "enabled": { - "message": "启用" - }, - "enabledForced": { - "message": "Enabled (forced)" - }, - "expanded": { - "message": "展开" - }, - "exportSettings": { - "message": "导出设置" - }, - "extension": { - "message": "扩展" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "过滤" - }, - "fitToWindow": { - "message": "窗口自适应" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "字体" - }, - "footer": { - "message": "底部栏" - }, - "forcedPlaybackSpeed": { - "message": "强制设置播放速度" - }, - "forcedTheaterMode": { - "message": "强制设置剧场模式" - }, - "forcedVolume": { - "message": "强制修改音量" - }, - "foundABug": { - "message": "Found a bug?" - }, - "fullWindow": { - "message": "全屏" - }, - "general": { - "message": "一般设置" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "转到搜索栏" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "绿色" - }, - "hdThumbnail": { - "message": "高清缩略图" - }, - "hdThumbnails": { - "message": "高清缩略图" - }, - "header": { - "message": "顶部栏" - }, - "hidden": { - "message": "隐藏" - }, - "hiddenOnVideoPage": { - "message": "在视频播放页面时隐藏" - }, - "hideAnimatedThumbnails": { - "message": "隐藏动态缩略图" - }, - "hideAnnotations": { - "message": "隐藏预览图" - }, - "hideCards": { - "message": "隐藏 cards" - }, - "hideDetails": { - "message": "隐藏详细信息" - }, - "hideEndscreen": { - "message": "隐藏结束画面" - }, - "hideFeaturedContent": { - "message": "隐藏精选频道" - }, - "hideFooter": { - "message": "隐藏底部栏" - }, - "hidePlaylist": { - "message": "隐藏播放列表" - }, - "hideRightButtons": { - "message": "隐藏右侧按钮" - }, - "hideScrollForDetails": { - "message": "隐藏 «滚动至详细信息»" - }, - "hideViewsCount": { - "message": "隐藏播放量" - }, - "history": { - "message": "历史记录" - }, - "home": { - "message": "首页" - }, - "hover": { - "message": "悬浮" - }, - "hoverOnVideoPage": { - "message": "在视频播放页面时悬浮显示" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "投稿于多久之前" - }, - "icons": { - "message": "Icons" - }, - "iconsOnly": { - "message": "仅显示图标" - }, - "importSettings": { - "message": "导入设置" - }, - "improveLogo": { - "message": "Improve logo" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube 扩展程序图标" - }, - "improvedtubeIconOnYoutube": { - "message": "在 YouTube 显示 ImprovedTube 图标" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube 语言" - }, - "improvedtubeVersion": { - "message": "ImprovedTube 版本" - }, - "increasePlaybackSpeed": { - "message": "视频加速" - }, - "increaseVolume": { - "message": "+5%音量" - }, - "indigo": { - "message": "靛青色" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "语言" - }, - "legacyYoutube": { - "message": "旧版 YouTube" - }, - "light": { - "message": "明亮" - }, - "lightBlue": { - "message": "浅蓝色" - }, - "lightGreen": { - "message": "浅绿色" - }, - "like": { - "message": "点赞" - }, - "likes": { - "message": "点赞总数" - }, - "lime": { - "message": "石灰色" - }, - "list": { - "message": "List" - }, - "liveChat": { - "message": "实时聊天" - }, - "liveChatType": { - "message": "Live chat type" - }, - "loudnessNormalization": { - "message": "Loudness normalization" - }, - "markWatchedVideos": { - "message": "标记已观看的视频" - }, - "mixer": { - "message": "混音器" - }, - "myColors": { - "message": "My colors" - }, - "name": { - "message": "名字" - }, - "nativeMiniPlayer": { - "message": "原版迷你播放器" - }, - "new": { - "message": "新的" - }, - "nextVideo": { - "message": "上一个视频" - }, - "night": { - "message": "夜色" - }, - "noActiveFeatures": { - "message": "No active features" - }, - "noOpenVideoTabs": { - "message": "没有打开视频标签" - }, - "none": { - "message": "无" - }, - "normal": { - "message": "正常" - }, - "old": { - "message": "旧版" - }, - "onAllVideos": { - "message": "在所有视频" - }, - "onSubscribedChannels": { - "message": "在订阅频道" - }, - "onlyActiveOnYoutube": { - "message": "仅在 YouTube 上启用" - }, - "onlyOnePlayerInstancePlaying": { - "message": "同时仅播放一个" - }, - "orange": { - "message": "橙色" - }, - "os": { - "message": "操作系统" - }, - "other": { - "message": "其他" - }, - "permissions": { - "message": "许可" - }, - "pictureInPicture": { - "message": "画中画" - }, - "pink": { - "message": "粉色" - }, - "plain": { - "message": "野外" - }, - "platform": { - "message": "平台" - }, - "playPause": { - "message": "播放 / 暂停" - }, - "playbackSpeed": { - "message": "播放速度" - }, - "player": { - "message": "播放器" - }, - "playerColor": { - "message": "播放器颜色" - }, - "playerSize": { - "message": "播放器大小" - }, - "playlist": { - "message": "播放列表" - }, - "playlists": { - "message": "稍后观看" - }, - "popupPlayer": { - "message": "弹出播放器" - }, - "position": { - "message": "位置" - }, - "pressAnyKeyOrScroll": { - "message": "按下任意键或滚动鼠标滚轴." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "按下任意键或鼠标滚轴." - }, - "previousVideo": { - "message": "下一个视频" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "紫色" - }, - "quality": { - "message": "画质" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "给我们评价" - }, - "red": { - "message": "红色" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "相关视频" - }, - "removeRelatedSearchResults": { - "message": "Remove related search results" - }, - "repeat": { - "message": "循环" - }, - "reset": { - "message": "重置" - }, - "resetAllSettings": { - "message": "重置所有设置" - }, - "resetAllShortcuts": { - "message": "Reset all shortcuts" - }, - "reverse": { - "message": "逆序" - }, - "rotate": { - "message": "旋转" - }, - "save": { - "message": "保存" - }, - "saveAs": { - "message": "另存为" - }, - "schedule": { - "message": "定时开/关" - }, - "screen": { - "message": "屏幕" - }, - "screenshot": { - "message": "截图" - }, - "search": { - "message": "搜索" - }, - "searchBarOnly": { - "message": "仅搜索栏" - }, - "seekBackward10Seconds": { - "message": "倒退10秒" - }, - "seekForward10Seconds": { - "message": "快进10秒" - }, - "settings": { - "message": "ImprovedTube 设置" - }, - "settingsSuccessfullyImported": { - "message": "Settings successfully imported" - }, - "shortcuts": { - "message": "快捷键" - }, - "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" - }, - "showChannelVideosCount": { - "message": "显示频道内视频数" - }, - "shuffle": { - "message": "随机" - }, - "sidebar": { - "message": "侧边栏" - }, - "spacebar": { - "message": "空格" - }, - "squaredUserImages": { - "message": "方形用户头像" - }, - "static": { - "message": "静态" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "停止" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscriptions": { - "message": "订阅内容" - }, - "subtitles": { - "message": "副标题" - }, - "sunset": { - "message": "晚霞" - }, - "sunsetToSunrise": { - "message": "日落到日出" - }, - "systemPeferenceDark": { - "message": "系统偏好: 深色" - }, - "systemPeferenceLight": { - "message": "系统偏好: 浅色" - }, - "teal": { - "message": "蓝绿色" - }, - "textColor": { - "message": "Text color" - }, - "themes": { - "message": "主题" - }, - "thisWillRemoveAllCookies": { - "message": "将清空所有 cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "将清空所有 YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "将重置所有设置." - }, - "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" - }, - "thumbnails": { - "message": "缩略图" - }, - "timeFrom": { - "message": "开始时间" - }, - "timeTo": { - "message": "结束时间" - }, - "todayAt": { - "message": "Today at" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "自动播放预告片" - }, - "translations": { - "message": "Translations" - }, - "transparentBackground": { - "message": "透明背景" - }, - "trending": { - "message": "时下流行" - }, - "tryToReloadThePage": { - "message": "尝试刷新页面" - }, - "turnOff": { - "message": "关闭时间" - }, - "turnOn": { - "message": "开启时间" - }, - "type": { - "message": "类型" - }, - "upNextAutoplay": { - "message": "自动播放下一视频" - }, - "use24HourFormat": { - "message": "使用24小时制" - }, - "version": { - "message": "版本" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" - }, - "videoFormats": { - "message": "视频格式" - }, - "videos": { - "message": "视频" - }, - "volume": { - "message": "音量" - }, - "watchLater": { - "message": "稍后观看" - }, - "watchTime": { - "message": "观看时间" - }, - "whenTabIsChanged": { - "message": "标签更改时" - }, - "white": { - "message": "白色" - }, - "yellow": { - "message": "黄色" - }, - "youtubeHeaderLeft": { - "message": "Youtube标题(左)" - }, - "youtubeHeaderRight": { - "message": "Youtube标题(右)" - }, - "youtubeHomePage": { - "message": "YouTube 主页" - }, - "youtubeLanguage": { - "message": "YouTube 语言" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limits video quality to 1080p for h.264 codec" - } -} + "about": { + "message": "关于" + }, + "accept": { + "message": "接受" + }, + "activate": { + "message": "启用" + }, + "activateCaptions": { + "message": "启用字幕" + }, + "activated": { + "message": "启用" + }, + "activatedFeatures": { + "message": "已启用功能" + }, + "activateFullscreen": { + "message": "启用全屏" + }, + "activeFeatures": { + "message": "启用功能" + }, + "addScrollToTop": { + "message": "返回顶部按钮" + }, + "ads": { + "message": "广告" + }, + "all": { + "message": "所有" + }, + "allow": { + "message": "允许" + }, + "allow60fps": { + "message": "允许60FPS" + }, + "alwaysActive": { + "message": "始终启用" + }, + "alwaysShowProgressBar": { + "message": "始终显示进度条" + }, + "amber": { + "message": "琥珀色" + }, + "analyzer": { + "message": "分析仪" + }, + "appearance": { + "message": "外观" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "音频" + }, + "audioFormats": { + "message": "音频格式" + }, + "auto": { + "message": "自动" + }, + "autoFullscreen": { + "message": "自动全屏" + }, + "autopauseWhenSwitchingTabs": { + "message": "切换标签时暂停播放" + }, + "autoplay": { + "message": "自动播放" + }, + "backupAndReset": { + "message": "备份与恢复" + }, + "baseOnSystemColorScheme": { + "message": "使用系统配色" + }, + "belowPlayer": { + "message": "在播放器下方" + }, + "black": { + "message": "纯黑" + }, + "blacklist": { + "message": "黑名单" + }, + "blockAll": { + "message": "拦截所有" + }, + "blue": { + "message": "蓝色" + }, + "blueGray": { + "message": "蓝灰色" + }, + "bluelight": { + "message": "色彩柔和度" + }, + "brown": { + "message": "棕色" + }, + "browser": { + "message": "浏览器" + }, + "browserVersion": { + "message": "浏览器版本" + }, + "bubbles": { + "message": "网格" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "按钮" + }, + "cancel": { + "message": "取消" + }, + "categories": { + "message": "分类" + }, + "channel": { + "message": "电影和节目" + }, + "channels": { + "message": "频道" + }, + "clipboard": { + "message": "粘贴板" + }, + "codecH264": { + "message": "采用 h.264 编码" + }, + "collapsed": { + "message": "收起" + }, + "collapseOfSubscriptionSections": { + "message": "订阅区域显示展开/收起按钮" + }, + "comments": { + "message": "评论" + }, + "confirmationBeforeClosing": { + "message": "页面关闭前提示" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "核心" + }, + "cropChapterTitles": { + "message": "裁剪章节标题" + }, + "customCss": { + "message": "自定义CSS" + }, + "customJs": { + "message": "自定义JS" + }, + "customMiniPlayer": { + "message": "自定义迷你播放器" + }, + "cyan": { + "message": "青色" + }, + "dark": { + "message": "黑暗" + }, + "darkTheme": { + "message": "夜间模式" + }, + "dateAndTime": { + "message": "时间与日期" + }, + "dawn": { + "message": "黎明" + }, + "decreasePlaybackSpeed": { + "message": "视频减速" + }, + "decreaseVolume": { + "message": "-5%音量" + }, + "deepOrange": { + "message": "深橙色" + }, + "deepPurple": { + "message": "深紫色" + }, + "defaultChannelTab": { + "message": "默认频道页" + }, + "deleteYoutubeCookies": { + "message": "清空 YouTube cookies" + }, + "description": { + "message": "视频描述" + }, + "desert": { + "message": "沙漠" + }, + "details": { + "message": "细节信息" + }, + "developerOptions": { + "message": "开发者选项" + }, + "device": { + "message": "设备" + }, + "dim": { + "message": "遮罩程度" + }, + "disabled": { + "message": "停用" + }, + "dislike": { + "message": "踩一下" + }, + "donate": { + "message": "支持" + }, + "doNotChange": { + "message": "不做改变" + }, + "draggable": { + "message": "可拖动" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "暂无" + }, + "enabled": { + "message": "启用" + }, + "enabledForced": { + "message": "强制启用" + }, + "expanded": { + "message": "展开" + }, + "exportSettings": { + "message": "导出设置" + }, + "extension": { + "message": "扩展" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "过滤" + }, + "fitToWindow": { + "message": "窗口自适应" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "字体" + }, + "footer": { + "message": "底部栏" + }, + "forcedPlaybackSpeed": { + "message": "强制设置播放速度" + }, + "forcedTheaterMode": { + "message": "强制设置剧场模式" + }, + "forcedVolume": { + "message": "强制修改音量" + }, + "foundABug": { + "message": "发现了一个 Bug?" + }, + "fullWindow": { + "message": "全屏" + }, + "general": { + "message": "一般设置" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "转到搜索栏" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "绿色" + }, + "hdThumbnail": { + "message": "高清缩略图" + }, + "hdThumbnails": { + "message": "高清缩略图" + }, + "header": { + "message": "顶部栏" + }, + "hidden": { + "message": "隐藏" + }, + "hiddenOnVideoPage": { + "message": "在视频播放页面时隐藏" + }, + "hideAnimatedThumbnails": { + "message": "隐藏动态缩略图" + }, + "hideAnnotations": { + "message": "隐藏预览图" + }, + "hideCards": { + "message": "隐藏信息卡片" + }, + "hideDetails": { + "message": "隐藏详细信息" + }, + "hideEndscreen": { + "message": "隐藏结束画面" + }, + "hideFeaturedContent": { + "message": "隐藏精选频道" + }, + "hideFooter": { + "message": "隐藏底部栏" + }, + "hideGradientBottom": { + "message": "隐藏底部渐变层" + }, + "hidePlaylist": { + "message": "隐藏播放列表" + }, + "hideRightButtons": { + "message": "隐藏右侧按钮" + }, + "hideScrollForDetails": { + "message": "隐藏 «滚动至详细信息»" + }, + "hideViewsCount": { + "message": "隐藏播放量" + }, + "history": { + "message": "历史记录" + }, + "home": { + "message": "首页" + }, + "hover": { + "message": "悬浮" + }, + "hoverOnVideoPage": { + "message": "在视频播放页面时悬浮显示" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "投稿于多久之前" + }, + "icons": { + "message": "图标" + }, + "iconsOnly": { + "message": "仅显示图标" + }, + "importSettings": { + "message": "导入设置" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube 扩展程序图标" + }, + "improvedtubeIconOnYoutube": { + "message": "在 YouTube 显示 ImprovedTube 图标" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube 语言" + }, + "improvedtubeVersion": { + "message": "ImprovedTube 版本" + }, + "improveLogo": { + "message": "优化图标" + }, + "increasePlaybackSpeed": { + "message": "视频加速" + }, + "increaseVolume": { + "message": "+5%音量" + }, + "indigo": { + "message": "靛青色" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "语言" + }, + "legacyYoutube": { + "message": "旧版 YouTube" + }, + "light": { + "message": "明亮" + }, + "lightBlue": { + "message": "浅蓝色" + }, + "lightGreen": { + "message": "浅绿色" + }, + "like": { + "message": "顶一下" + }, + "likes": { + "message": "顶/踩总数" + }, + "lime": { + "message": "石灰色" + }, + "list": { + "message": "列表" + }, + "liveChat": { + "message": "实时聊天" + }, + "liveChatType": { + "message": "事实聊天类型" + }, + "loudnessNormalization": { + "message": "音量标准化" + }, + "markWatchedVideos": { + "message": "标记已观看的视频" + }, + "mixer": { + "message": "混音器" + }, + "myColors": { + "message": "自定义颜色" + }, + "name": { + "message": "名字" + }, + "nativeMiniPlayer": { + "message": "原版迷你播放器" + }, + "new": { + "message": "新的" + }, + "nextVideo": { + "message": "上一个视频" + }, + "night": { + "message": "夜色" + }, + "noActiveFeatures": { + "message": "没有已启用功能" + }, + "none": { + "message": "无" + }, + "noOpenVideoTabs": { + "message": "没有打开视频标签" + }, + "normal": { + "message": "正常" + }, + "old": { + "message": "旧版" + }, + "onAllVideos": { + "message": "在所有视频" + }, + "onlyActiveOnYoutube": { + "message": "仅在 YouTube 上启用" + }, + "onlyOnePlayerInstancePlaying": { + "message": "同时仅播放一个" + }, + "onSubscribedChannels": { + "message": "在订阅频道" + }, + "orange": { + "message": "橙色" + }, + "os": { + "message": "操作系统" + }, + "other": { + "message": "其他" + }, + "permissions": { + "message": "许可" + }, + "pictureInPicture": { + "message": "画中画" + }, + "pink": { + "message": "粉色" + }, + "plain": { + "message": "野外" + }, + "platform": { + "message": "平台" + }, + "playbackSpeed": { + "message": "播放速度" + }, + "player": { + "message": "播放器" + }, + "playerColor": { + "message": "播放器颜色" + }, + "playerSize": { + "message": "播放器大小" + }, + "playlist": { + "message": "播放列表" + }, + "playlists": { + "message": "稍后观看" + }, + "playPause": { + "message": "播放 / 暂停" + }, + "popupPlayer": { + "message": "弹出播放器" + }, + "position": { + "message": "位置" + }, + "pressAnyKeyOrScroll": { + "message": "按下任意键或滚动鼠标滚轴." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "按下任意键或鼠标滚轴." + }, + "previousVideo": { + "message": "下一个视频" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "紫色" + }, + "quality": { + "message": "画质" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "给我们评价" + }, + "red": { + "message": "红色" + }, + "redDislikeButton": { + "message": "踩按钮显示为红色" + }, + "relatedVideos": { + "message": "相关视频" + }, + "removeRelatedSearchResults": { + "message": "隐藏搜索相关结果" + }, + "repeat": { + "message": "循环" + }, + "reset": { + "message": "重置" + }, + "resetAllSettings": { + "message": "重置所有设置" + }, + "resetAllShortcuts": { + "message": "重置所有快捷键" + }, + "reverse": { + "message": "逆序" + }, + "rotate": { + "message": "旋转" + }, + "save": { + "message": "保存" + }, + "saveAs": { + "message": "另存为" + }, + "schedule": { + "message": "定时开/关" + }, + "screen": { + "message": "屏幕" + }, + "screenshot": { + "message": "截图" + }, + "search": { + "message": "搜索" + }, + "searchBarOnly": { + "message": "仅搜索栏" + }, + "seekBackward10Seconds": { + "message": "倒退10秒" + }, + "seekForward10Seconds": { + "message": "快进10秒" + }, + "settings": { + "message": "ImprovedTube 设置" + }, + "settingsSuccessfullyImported": { + "message": "设置导入成功" + }, + "shortcuts": { + "message": "快捷键" + }, + "showCardsOnMouseHover": { + "message": "鼠标悬浮时显示信息卡片" + }, + "showChannelVideosCount": { + "message": "显示频道内视频数" + }, + "shuffle": { + "message": "随机" + }, + "sidebar": { + "message": "侧边栏" + }, + "spacebar": { + "message": "空格" + }, + "squaredUserImages": { + "message": "方形用户头像" + }, + "static": { + "message": "静态" + }, + "statsForNerds": { + "message": "显示专业信息" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "停止" + }, + "style": { + "message": "样式" + }, + "styles": { + "message": "样式" + }, + "subscriptions": { + "message": "订阅内容" + }, + "subtitles": { + "message": "副标题" + }, + "sunset": { + "message": "晚霞" + }, + "sunsetToSunrise": { + "message": "日落到日出" + }, + "systemPeferenceDark": { + "message": "系统偏好: 深色" + }, + "systemPeferenceLight": { + "message": "系统偏好: 浅色" + }, + "teal": { + "message": "蓝绿色" + }, + "textColor": { + "message": "文字颜色" + }, + "themes": { + "message": "主题" + }, + "thisWillRemoveAllCookies": { + "message": "将清空所有 cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "将清空所有 YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "将重置所有设置." + }, + "thisWillResetAllShortcuts": { + "message": "将会重置所有快捷键" + }, + "thumbnails": { + "message": "缩略图" + }, + "timeFrom": { + "message": "开始时间" + }, + "timeTo": { + "message": "结束时间" + }, + "todayAt": { + "message": "截止今天" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "自动播放预告片" + }, + "translations": { + "message": "翻译" + }, + "transparentBackground": { + "message": "透明背景" + }, + "trending": { + "message": "时下流行" + }, + "tryToReloadThePage": { + "message": "尝试刷新页面" + }, + "turnOff": { + "message": "关闭时间" + }, + "turnOn": { + "message": "开启时间" + }, + "type": { + "message": "类型" + }, + "upNextAutoplay": { + "message": "自动播放下一视频" + }, + "use24HourFormat": { + "message": "使用24小时制" + }, + "version": { + "message": "版本" + }, + "video": { + "message": "视频" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video description will be expanded to get the name of the category" + }, + "videoFormats": { + "message": "视频格式" + }, + "videos": { + "message": "视频" + }, + "volume": { + "message": "音量" + }, + "watchLater": { + "message": "稍后观看" + }, + "watchTime": { + "message": "观看时间" + }, + "whenTabIsChanged": { + "message": "标签更改时" + }, + "white": { + "message": "白色" + }, + "yellow": { + "message": "黄色" + }, + "youtubeHeaderLeft": { + "message": "Youtube标题(左)" + }, + "youtubeHeaderRight": { + "message": "Youtube标题(右)" + }, + "youtubeHomePage": { + "message": "YouTube 主页" + }, + "youtubeLanguage": { + "message": "YouTube 语言" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "采用 H.264 编解码时,YouTube 会将视频画质设为 1080p" + } +} \ No newline at end of file diff --git a/stable/_locales/zh_TW/messages.json b/stable/_locales/zh_TW/messages.json index 53be3877e..2d4c649d2 100644 --- a/stable/_locales/zh_TW/messages.json +++ b/stable/_locales/zh_TW/messages.json @@ -1,800 +1,809 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "關於" - }, - "accept": { - "message": "接受" - }, - "activate": { - "message": "Activate" - }, - "activateCaptions": { - "message": "開啟 字幕" - }, - "activateFullscreen": { - "message": "開啟 全螢幕" - }, - "activated": { - "message": "Activated" - }, - "activatedFeatures": { - "message": "Activated features" - }, - "activeFeatures": { - "message": "Active features" - }, - "addScrollToTop": { - "message": "滾動到頂部按鈕" - }, - "ads": { - "message": "廣告" - }, - "all": { - "message": "All" - }, - "allow": { - "message": "允許" - }, - "allow60fps": { - "message": "允許 60fps" - }, - "alwaysActive": { - "message": "始終有效" - }, - "alwaysShowProgressBar": { - "message": "一律顯示進度條" - }, - "amber": { - "message": "琥珀色" - }, - "analyzer": { - "message": "分析儀" - }, - "appearance": { - "message": "外貌" - }, - "audio": { - "message": "音頻" - }, - "audioFormats": { - "message": "音頻格式" - }, - "auto": { - "message": "自動" - }, - "autoFullscreen": { - "message": "自動全螢幕" - }, - "autopauseWhenSwitchingTabs": { - "message": "切換分頁時自動暫停" - }, - "autoplay": { - "message": "自動播放" - }, - "backupAndReset": { - "message": "備份&重置" - }, - "baseOnSystemColorScheme": { - "message": "使用系統配色方案" - }, - "belowPlayer": { - "message": "Below player" - }, - "black": { - "message": "黑色" - }, - "blacklist": { - "message": "黑名單" - }, - "blockAll": { - "message": "Block all" - }, - "blue": { - "message": "藍色" - }, - "blueGray": { - "message": "藍灰色" - }, - "bluelight": { - "message": "藍光" - }, - "brown": { - "message": "棕色" - }, - "browser": { - "message": "瀏覽器" - }, - "browserVersion": { - "message": "瀏覽器 版本" - }, - "bubbles": { - "message": "Bubbles" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Buttons" - }, - "cancel": { - "message": "取消" - }, - "categories": { - "message": "類別" - }, - "channel": { - "message": "頻道" - }, - "channels": { - "message": "頻道" - }, - "clipboard": { - "message": "剪贴板" - }, - "codecH264": { - "message": "影片編解碼器 h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" - }, - "collapsed": { - "message": "簡縮" - }, - "comments": { - "message": "評論" - }, - "confirmationBeforeClosing": { - "message": "關閉前先確認" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "自訂 CSS" - }, - "customJs": { - "message": "自訂 JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "青色" - }, - "dark": { - "message": "Dark" - }, - "darkTheme": { - "message": "Dark theme" - }, - "dateAndTime": { - "message": "日期和時間" - }, - "dawn": { - "message": "黎明" - }, - "decreasePlaybackSpeed": { - "message": "降低播放速度" - }, - "decreaseVolume": { - "message": "減輕音量" - }, - "deepOrange": { - "message": "深橙色" - }, - "deepPurple": { - "message": "深紫色" - }, - "defaultChannelTab": { - "message": "默認頻道標籤" - }, - "deleteYoutubeCookies": { - "message": "刪除 YouTube cookies" - }, - "description": { - "message": "影片描述" - }, - "desert": { - "message": "沙漠" - }, - "details": { - "message": "細節" - }, - "developerOptions": { - "message": "開發人員選項" - }, - "device": { - "message": "裝置" - }, - "dim": { - "message": "光線暗度" - }, - "disabled": { - "message": "關閉" - }, - "dislike": { - "message": "Dislike" - }, - "doNotChange": { - "message": "不要改變" - }, - "donate": { - "message": "捐贈" - }, - "draggable": { - "message": "可拖動" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Empty" - }, - "enabled": { - "message": "啟用" - }, - "enabledForced": { - "message": "強制啟用" - }, - "expanded": { - "message": "擴展" - }, - "exportSettings": { - "message": "導出設定" - }, - "extension": { - "message": "Extension" - }, - "file": { - "message": "檔案" - }, - "filters": { - "message": "Filters" - }, - "fitToWindow": { - "message": "Fit to window" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "字體" - }, - "footer": { - "message": "頁腳" - }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, - "forcedTheaterMode": { - "message": "強制劇院模式" - }, - "forcedVolume": { - "message": "Forced volume" - }, - "foundABug": { - "message": "Found a bug?" - }, - "fullWindow": { - "message": "全螢幕" - }, - "general": { - "message": "一般" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "轉到搜索框" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "綠色" - }, - "hdThumbnail": { - "message": "HD 縮略圖" - }, - "hdThumbnails": { - "message": "HD 縮圖" - }, - "header": { - "message": "標頭" - }, - "hidden": { - "message": "隱藏" - }, - "hiddenOnVideoPage": { - "message": "隱藏在影片頁面上" - }, - "hideAnimatedThumbnails": { - "message": "隱藏動態的縮略圖" - }, - "hideAnnotations": { - "message": "隱藏註釋" - }, - "hideCards": { - "message": "隱藏右上角的卡片" - }, - "hideDetails": { - "message": "隱藏細節" - }, - "hideEndscreen": { - "message": "Hide endscreen" - }, - "hideFeaturedContent": { - "message": "Hide featured content" - }, - "hideFooter": { - "message": "隱藏頁腳" - }, - "hidePlaylist": { - "message": "Hide playlist" - }, - "hideRightButtons": { - "message": "Hide right buttons" - }, - "hideScrollForDetails": { - "message": "隱藏滾動查看詳細信息" - }, - "hideViewsCount": { - "message": "隱藏觀看次數" - }, - "history": { - "message": "觀看記錄" - }, - "home": { - "message": "首頁" - }, - "hover": { - "message": "Hover" - }, - "hoverOnVideoPage": { - "message": "Hover on video page" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "視頻上傳了多久" - }, - "icons": { - "message": "圖標" - }, - "iconsOnly": { - "message": "只有圖標" - }, - "importSettings": { - "message": "導入設定" - }, - "improveLogo": { - "message": "Improve logo" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube icon in Browser" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icon on YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube 語言" - }, - "improvedtubeVersion": { - "message": "ImprovedTube 版本" - }, - "increasePlaybackSpeed": { - "message": "提高播放速度" - }, - "increaseVolume": { - "message": "增加音量" - }, - "indigo": { - "message": "靛青" - }, - "items": { - "message": "項目" - }, - "languages": { - "message": "語言" - }, - "legacyYoutube": { - "message": "Legacy YouTube" - }, - "light": { - "message": "Light" - }, - "lightBlue": { - "message": "淺藍色" - }, - "lightGreen": { - "message": "淺綠色" - }, - "like": { - "message": "Like" - }, - "likes": { - "message": "Likes圖標" - }, - "lime": { - "message": "Lime" - }, - "list": { - "message": "List" - }, - "liveChat": { - "message": "Live 聊天視窗" - }, - "liveChatType": { - "message": "Live chat type" - }, - "loudnessNormalization": { - "message": "音量標準化" - }, - "markWatchedVideos": { - "message": "標記已觀看視頻" - }, - "mixer": { - "message": "音量混合器" - }, - "myColors": { - "message": "My colors" - }, - "name": { - "message": "Name" - }, - "nativeMiniPlayer": { - "message": "Native mini player" - }, - "new": { - "message": "New" - }, - "nextVideo": { - "message": "下一個影片" - }, - "night": { - "message": "夜晚" - }, - "noActiveFeatures": { - "message": "No active features" - }, - "noOpenVideoTabs": { - "message": "No open video tabs" - }, - "none": { - "message": "None" - }, - "normal": { - "message": "正常" - }, - "old": { - "message": "Old" - }, - "onAllVideos": { - "message": "On all videos" - }, - "onSubscribedChannels": { - "message": "On subscribed channels" - }, - "onlyActiveOnYoutube": { - "message": "僅在YouTube上有效" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "orange": { - "message": "橘色" - }, - "os": { - "message": "操作系統" - }, - "other": { - "message": "其他" - }, - "permissions": { - "message": "權限" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "粉紅色" - }, - "plain": { - "message": "樸素" - }, - "platform": { - "message": "Platform" - }, - "playPause": { - "message": "播放/暫停" - }, - "playbackSpeed": { - "message": "播放速度" - }, - "player": { - "message": "播放器" - }, - "playerColor": { - "message": "影片進度條顏色" - }, - "playerSize": { - "message": "播放器大小" - }, - "playlist": { - "message": "播放列表" - }, - "playlists": { - "message": "播放清單" - }, - "popupPlayer": { - "message": "彈出播放器" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "按任意鍵或使用滑鼠滾輪。" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "按任意鍵或使用鼠標滾輪。" - }, - "previousVideo": { - "message": "回到之前的影片" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "紫色" - }, - "quality": { - "message": "品質" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "評分" - }, - "red": { - "message": "紅色" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "推薦影片" - }, - "removeRelatedSearchResults": { - "message": "Remove related search results" - }, - "repeat": { - "message": "重複播放" - }, - "reset": { - "message": "Reset" - }, - "resetAllSettings": { - "message": "重置所有設定" - }, - "resetAllShortcuts": { - "message": "重置所有快捷鍵" - }, - "reverse": { - "message": "Reverse" - }, - "rotate": { - "message": "旋轉影片" - }, - "save": { - "message": "Save" - }, - "saveAs": { - "message": "Save as" - }, - "schedule": { - "message": "時間表" - }, - "screen": { - "message": "螢幕" - }, - "screenshot": { - "message": "截圖" - }, - "search": { - "message": "搜尋" - }, - "searchBarOnly": { - "message": "Search bar only" - }, - "seekBackward10Seconds": { - "message": "向後搜尋10秒" - }, - "seekForward10Seconds": { - "message": "向前邁進10秒" - }, - "settings": { - "message": "設定" - }, - "settingsSuccessfullyImported": { - "message": "設定成功導入" - }, - "shortcuts": { - "message": "快捷鍵" - }, - "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" - }, - "showChannelVideosCount": { - "message": "顯示頻道影片數量" - }, - "shuffle": { - "message": "Shuffle" - }, - "sidebar": { - "message": "側邊欄" - }, - "spacebar": { - "message": "空格鍵" - }, - "squaredUserImages": { - "message": "方正的用戶圖像" - }, - "static": { - "message": "Static" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "停止" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscriptions": { - "message": "訂閱內容" - }, - "subtitles": { - "message": "允許 字幕" - }, - "sunset": { - "message": "日落" - }, - "sunsetToSunrise": { - "message": "Sunset to sunrise" - }, - "systemPeferenceDark": { - "message": "System peference: dark" - }, - "systemPeferenceLight": { - "message": "System peference: light" - }, - "teal": { - "message": "藍綠色" - }, - "textColor": { - "message": "文字顏色" - }, - "themes": { - "message": "主題" - }, - "thisWillRemoveAllCookies": { - "message": "這將刪除所有的 cookies。" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "這會刪除所有 YouTube Cookies。" - }, - "thisWillResetAllSettings": { - "message": "這會重置所有設定。" - }, - "thisWillResetAllShortcuts": { - "message": "這會重置所有快捷鍵。" - }, - "thumbnails": { - "message": "縮略圖" - }, - "timeFrom": { - "message": "Time from" - }, - "timeTo": { - "message": "Time to" - }, - "todayAt": { - "message": "Today at" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "預告片自動播放" - }, - "translations": { - "message": "翻譯" - }, - "transparentBackground": { - "message": "透明背景" - }, - "trending": { - "message": "發燒影片" - }, - "tryToReloadThePage": { - "message": "Try to reload the page" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "下一個影片自動播放" - }, - "use24HourFormat": { - "message": "使用24小時格式" - }, - "version": { - "message": "版本" - }, - "video": { - "message": "影片" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" - }, - "videoFormats": { - "message": "影片格式" - }, - "videos": { - "message": "影片" - }, - "volume": { - "message": "音量" - }, - "watchLater": { - "message": "稍後觀看" - }, - "watchTime": { - "message": "Watch time" - }, - "whenTabIsChanged": { - "message": "When tab is changed" - }, - "white": { - "message": "白色" - }, - "yellow": { - "message": "黃色" - }, - "youtubeHeaderLeft": { - "message": "YouTube 標頭 (左)" - }, - "youtubeHeaderRight": { - "message": "YouTube 標頭 (右)" - }, - "youtubeHomePage": { - "message": "默認的YouTube主頁" - }, - "youtubeLanguage": { - "message": "YouTube 語言" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limits video quality to 1080p for h.264 codec" - } -} + "about": { + "message": "關於" + }, + "accept": { + "message": "接受" + }, + "activate": { + "message": "啟用" + }, + "activateCaptions": { + "message": "開啟字幕" + }, + "activated": { + "message": "啟用" + }, + "activatedFeatures": { + "message": "已啟用功能" + }, + "activateFullscreen": { + "message": "開啟全螢幕" + }, + "activeFeatures": { + "message": "已啟用功能" + }, + "addScrollToTop": { + "message": "新增「回到頂部」按鈕" + }, + "ads": { + "message": "廣告" + }, + "all": { + "message": "所有" + }, + "allow": { + "message": "允許" + }, + "allow60fps": { + "message": "允許 60fps" + }, + "alwaysActive": { + "message": "始終有效" + }, + "alwaysShowProgressBar": { + "message": "一律顯示進度條" + }, + "amber": { + "message": "琥珀色" + }, + "analyzer": { + "message": "分析儀" + }, + "appearance": { + "message": "外貌" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "音頻" + }, + "audioFormats": { + "message": "音頻格式" + }, + "auto": { + "message": "自動" + }, + "autoFullscreen": { + "message": "自動全螢幕" + }, + "autopauseWhenSwitchingTabs": { + "message": "切換分頁時自動暫停" + }, + "autoplay": { + "message": "自動播放" + }, + "backupAndReset": { + "message": "備份&重置" + }, + "baseOnSystemColorScheme": { + "message": "使用系統配色方案" + }, + "belowPlayer": { + "message": "於播放器底下" + }, + "black": { + "message": "黑色" + }, + "blacklist": { + "message": "黑名單" + }, + "blockAll": { + "message": "封鎖所有" + }, + "blue": { + "message": "藍色" + }, + "blueGray": { + "message": "藍灰色" + }, + "bluelight": { + "message": "藍光" + }, + "brown": { + "message": "棕色" + }, + "browser": { + "message": "瀏覽器" + }, + "browserVersion": { + "message": "瀏覽器版本" + }, + "bubbles": { + "message": "Bubbles" + }, + "bug": { + "message": "問題" + }, + "buttons": { + "message": "按鈕" + }, + "cancel": { + "message": "取消" + }, + "categories": { + "message": "類別" + }, + "channel": { + "message": "頻道" + }, + "channels": { + "message": "頻道" + }, + "clipboard": { + "message": "剪贴板" + }, + "codecH264": { + "message": "影片編解碼器 h.264" + }, + "collapsed": { + "message": "簡縮" + }, + "collapseOfSubscriptionSections": { + "message": "於訂閱區顯示縮放按鈕" + }, + "comments": { + "message": "評論" + }, + "confirmationBeforeClosing": { + "message": "關閉前先確認" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "截斷章節名稱" + }, + "customCss": { + "message": "自訂 CSS" + }, + "customJs": { + "message": "自訂 JS" + }, + "customMiniPlayer": { + "message": "自訂迷你播放器" + }, + "cyan": { + "message": "青色" + }, + "dark": { + "message": "暗黑" + }, + "darkTheme": { + "message": "暗黑主題" + }, + "dateAndTime": { + "message": "日期和時間" + }, + "dawn": { + "message": "黎明" + }, + "decreasePlaybackSpeed": { + "message": "降低播放速度" + }, + "decreaseVolume": { + "message": "減輕音量" + }, + "deepOrange": { + "message": "深橙色" + }, + "deepPurple": { + "message": "深紫色" + }, + "defaultChannelTab": { + "message": "預設頻道標籤" + }, + "deleteYoutubeCookies": { + "message": "刪除 YouTube cookies" + }, + "description": { + "message": "影片描述" + }, + "desert": { + "message": "沙漠" + }, + "details": { + "message": "細節" + }, + "developerOptions": { + "message": "開發人員選項" + }, + "device": { + "message": "裝置" + }, + "dim": { + "message": "光線暗度" + }, + "disabled": { + "message": "關閉" + }, + "dislike": { + "message": "不喜歡" + }, + "donate": { + "message": "捐贈" + }, + "doNotChange": { + "message": "不要改變" + }, + "draggable": { + "message": "可拖動" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "空白" + }, + "enabled": { + "message": "啟用" + }, + "enabledForced": { + "message": "強制啟用" + }, + "expanded": { + "message": "擴展" + }, + "exportSettings": { + "message": "導出設定" + }, + "extension": { + "message": "擴充元件" + }, + "file": { + "message": "檔案" + }, + "filters": { + "message": "濾鏡" + }, + "fitToWindow": { + "message": "依視窗大小縮放" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "字體" + }, + "footer": { + "message": "頁腳" + }, + "forcedPlaybackSpeed": { + "message": "強制播放速度" + }, + "forcedTheaterMode": { + "message": "強制劇院模式" + }, + "forcedVolume": { + "message": "強制播放音量" + }, + "foundABug": { + "message": "遇到問題了嗎?" + }, + "fullWindow": { + "message": "全螢幕" + }, + "general": { + "message": "一般" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "轉到搜索框" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "綠色" + }, + "hdThumbnail": { + "message": "HD 縮圖" + }, + "hdThumbnails": { + "message": "HD 縮圖" + }, + "header": { + "message": "標頭" + }, + "hidden": { + "message": "隱藏" + }, + "hiddenOnVideoPage": { + "message": "於影片頁面自動隱藏" + }, + "hideAnimatedThumbnails": { + "message": "隱藏動態的縮略圖" + }, + "hideAnnotations": { + "message": "隱藏註解" + }, + "hideCards": { + "message": "隱藏資訊卡" + }, + "hideDetails": { + "message": "隱藏細節" + }, + "hideEndscreen": { + "message": "隱藏結束畫面" + }, + "hideFeaturedContent": { + "message": "隱藏精選影片" + }, + "hideFooter": { + "message": "隱藏頁腳" + }, + "hideGradientBottom": { + "message": "隱藏底部漸層圖層" + }, + "hidePlaylist": { + "message": "隱藏播放清單" + }, + "hideRightButtons": { + "message": "隱藏右側按鈕" + }, + "hideScrollForDetails": { + "message": "隱藏「向下捲動即可查看詳情」" + }, + "hideViewsCount": { + "message": "隱藏觀看次數" + }, + "history": { + "message": "觀看記錄" + }, + "home": { + "message": "首頁" + }, + "hover": { + "message": "滑鼠暫留時顯示" + }, + "hoverOnVideoPage": { + "message": "於影片頁面滑鼠暫留時顯示" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "影片上傳了多久" + }, + "icons": { + "message": "圖標" + }, + "iconsOnly": { + "message": "只有圖標" + }, + "importSettings": { + "message": "導入設定" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube icon in Browser" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube icon on YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube 語言" + }, + "improvedtubeVersion": { + "message": "ImprovedTube 版本" + }, + "improveLogo": { + "message": "改進 YouTube 圖示" + }, + "increasePlaybackSpeed": { + "message": "提高播放速度" + }, + "increaseVolume": { + "message": "增加音量" + }, + "indigo": { + "message": "靛青" + }, + "items": { + "message": "項目" + }, + "languages": { + "message": "語言" + }, + "legacyYoutube": { + "message": "舊版 YouTube" + }, + "light": { + "message": "Light" + }, + "lightBlue": { + "message": "淺藍色" + }, + "lightGreen": { + "message": "淺綠色" + }, + "like": { + "message": "喜歡" + }, + "likes": { + "message": "顯示按讚數量" + }, + "lime": { + "message": "萊姆色" + }, + "list": { + "message": "清單" + }, + "liveChat": { + "message": "Live 聊天視窗" + }, + "liveChatType": { + "message": "Live 聊天視窗種類" + }, + "loudnessNormalization": { + "message": "音量標準化" + }, + "markWatchedVideos": { + "message": "標記已觀看影片" + }, + "mixer": { + "message": "音量混合器" + }, + "myColors": { + "message": "自訂主色" + }, + "name": { + "message": "名稱" + }, + "nativeMiniPlayer": { + "message": "內建迷你播放器" + }, + "new": { + "message": "新增" + }, + "nextVideo": { + "message": "下一個影片" + }, + "night": { + "message": "夜晚" + }, + "noActiveFeatures": { + "message": "無已啟用功能" + }, + "none": { + "message": "無" + }, + "noOpenVideoTabs": { + "message": "無已開啟之影片頁面" + }, + "normal": { + "message": "正常" + }, + "old": { + "message": "舊版" + }, + "onAllVideos": { + "message": "於所有影片中" + }, + "onlyActiveOnYoutube": { + "message": "僅在YouTube上有效" + }, + "onlyOnePlayerInstancePlaying": { + "message": "同時間僅限播放單一影片" + }, + "onSubscribedChannels": { + "message": "於已訂閱的頻道中" + }, + "orange": { + "message": "橘色" + }, + "os": { + "message": "操作系統" + }, + "other": { + "message": "其他" + }, + "permissions": { + "message": "權限" + }, + "pictureInPicture": { + "message": "子母畫面" + }, + "pink": { + "message": "粉紅色" + }, + "plain": { + "message": "樸素" + }, + "platform": { + "message": "Platform" + }, + "playbackSpeed": { + "message": "播放速度" + }, + "player": { + "message": "播放器" + }, + "playerColor": { + "message": "影片進度條顏色" + }, + "playerSize": { + "message": "播放器大小" + }, + "playlist": { + "message": "播放列表" + }, + "playlists": { + "message": "播放清單" + }, + "playPause": { + "message": "播放/暫停" + }, + "popupPlayer": { + "message": "彈出播放器" + }, + "position": { + "message": "位置" + }, + "pressAnyKeyOrScroll": { + "message": "按任意鍵或使用滑鼠滾輪。" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "按任意鍵或使用鼠標滾輪。" + }, + "previousVideo": { + "message": "回到之前的影片" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "紫色" + }, + "quality": { + "message": "品質" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "評分" + }, + "red": { + "message": "紅色" + }, + "redDislikeButton": { + "message": "將「不喜歡」數量以紅色顯示" + }, + "relatedVideos": { + "message": "推薦影片" + }, + "removeRelatedSearchResults": { + "message": "移除搜尋相關結果" + }, + "repeat": { + "message": "重複播放" + }, + "reset": { + "message": "重置" + }, + "resetAllSettings": { + "message": "重置所有設定" + }, + "resetAllShortcuts": { + "message": "重置所有快捷鍵" + }, + "reverse": { + "message": "回播" + }, + "rotate": { + "message": "旋轉影片" + }, + "save": { + "message": "儲存" + }, + "saveAs": { + "message": "另存為" + }, + "schedule": { + "message": "排程" + }, + "screen": { + "message": "螢幕" + }, + "screenshot": { + "message": "截圖" + }, + "search": { + "message": "搜尋" + }, + "searchBarOnly": { + "message": "僅顯示搜尋列" + }, + "seekBackward10Seconds": { + "message": "倒退10秒" + }, + "seekForward10Seconds": { + "message": "前進10秒" + }, + "settings": { + "message": "設定" + }, + "settingsSuccessfullyImported": { + "message": "設定成功導入" + }, + "shortcuts": { + "message": "快捷鍵" + }, + "showCardsOnMouseHover": { + "message": "滑鼠暫留時顯示資訊卡" + }, + "showChannelVideosCount": { + "message": "顯示頻道影片數量" + }, + "shuffle": { + "message": "隨機播放" + }, + "sidebar": { + "message": "側邊欄" + }, + "spacebar": { + "message": "空格鍵" + }, + "squaredUserImages": { + "message": "方形用戶圖像" + }, + "static": { + "message": "靜止" + }, + "statsForNerds": { + "message": "顯示「統計資料」按鈕" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "停止" + }, + "style": { + "message": "樣式" + }, + "styles": { + "message": "樣式" + }, + "subscriptions": { + "message": "訂閱內容" + }, + "subtitles": { + "message": "允許字幕" + }, + "sunset": { + "message": "日落" + }, + "sunsetToSunrise": { + "message": "日出至入落" + }, + "systemPeferenceDark": { + "message": "系統預設: 暗黑模式" + }, + "systemPeferenceLight": { + "message": "系統預設: 白天模式" + }, + "teal": { + "message": "藍綠色" + }, + "textColor": { + "message": "文字顏色" + }, + "themes": { + "message": "主題" + }, + "thisWillRemoveAllCookies": { + "message": "這將刪除所有的 cookies。" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "這會刪除所有 YouTube Cookies。" + }, + "thisWillResetAllSettings": { + "message": "這會重置所有設定。" + }, + "thisWillResetAllShortcuts": { + "message": "這會重置所有快捷鍵。" + }, + "thumbnails": { + "message": "縮略圖" + }, + "timeFrom": { + "message": "開始時間" + }, + "timeTo": { + "message": "結束時間" + }, + "todayAt": { + "message": "自今日" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "預告片自動播放" + }, + "translations": { + "message": "翻譯" + }, + "transparentBackground": { + "message": "透明背景" + }, + "trending": { + "message": "發燒影片" + }, + "tryToReloadThePage": { + "message": "嘗試重新整理頁面" + }, + "type": { + "message": "種類" + }, + "upNextAutoplay": { + "message": "自動播放下一個影片" + }, + "use24HourFormat": { + "message": "使用24小時格式" + }, + "version": { + "message": "版本" + }, + "video": { + "message": "影片" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video description will be expanded to get the name of the category" + }, + "videoFormats": { + "message": "影片格式" + }, + "videos": { + "message": "影片" + }, + "volume": { + "message": "音量" + }, + "watchLater": { + "message": "稍後觀看" + }, + "watchTime": { + "message": "已觀看時間" + }, + "whenTabIsChanged": { + "message": "When tab is changed" + }, + "white": { + "message": "白色" + }, + "yellow": { + "message": "黃色" + }, + "youtubeHeaderLeft": { + "message": "YouTube 標頭 (左)" + }, + "youtubeHeaderRight": { + "message": "YouTube 標頭 (右)" + }, + "youtubeHomePage": { + "message": "預設的YouTube主頁" + }, + "youtubeLanguage": { + "message": "YouTube 語言" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "使用 H.264 編碼時,YouTube 會將畫質限定為 1080p 內。" + } +} \ No newline at end of file diff --git a/stable/content-scripts.js b/stable/content-scripts.js index 26714ffd0..c2a479f98 100644 --- a/stable/content-scripts.js +++ b/stable/content-scripts.js @@ -1101,7 +1101,6 @@ ImprovedTube.youtube_home_page = function() { } node.href = value; - node.outerHTML = String(node.outerHTML); node.addEventListener('click', function() { if ( this.data && @@ -1118,7 +1117,6 @@ ImprovedTube.youtube_home_page = function() { for (var i = 0, l = node_list.length; i < l; i++) { node_list[i].href = node_list[i].getAttribute('it-origin') || '/'; - node_list[i].outerHTML = String(node.node_list[i].outerHTML); } } }; diff --git a/stable/manifest.json b/stable/manifest.json index 5c8b2455c..dda8cdf5c 100644 --- a/stable/manifest.json +++ b/stable/manifest.json @@ -3,8 +3,8 @@ "name": "Improve YouTube! (Open-Source for YouTube)", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", - "version": "3.101", - "version_name": "3.101-stable", + "version": "3.120", + "version_name": "3.120-stable", "default_locale": "en", "icons": { diff --git a/stable/popup.js b/stable/popup.js index 5bda32ea6..0f686e3f0 100644 --- a/stable/popup.js +++ b/stable/popup.js @@ -38,7 +38,7 @@ var Menu = { document.querySelector('.satus-main').open({ appearanceId: 'search' }, function() { - Satus.render({ + satus.render({ type: 'dialog', class: 'satus-dialog--search', onclose: function() { @@ -50,7 +50,7 @@ var Menu = { placeholder: 'search', oninput: function() { if (this.value.length > 0) { - Satus.search(this.value, Menu, function(results) { + satus.search(this.value, Menu, function(results) { var sorted_results = []; document.querySelector('.satus-main__container').innerHTML = ''; @@ -68,14 +68,14 @@ var Menu = { console.log(results); - var scroll = Satus.components.scrollbar(document.querySelector('.satus-main__container')); + var scroll = satus.components.scrollbar(document.querySelector('.satus-main__container')); - Satus.render(sorted_results, scroll); + satus.render(sorted_results, scroll); }, true); } else { document.querySelector('.satus-main__container').innerHTML = ''; - Satus.render({}, document.querySelector('.satus-main__container')); + satus.render({}, document.querySelector('.satus-main__container')); } } } @@ -106,7 +106,7 @@ Menu.main = { document.body.dataset.appearance = id; container.dataset.appearance = id; - document.querySelector('.satus-text--title').innerText = Satus.locale.getMessage(item.label) || 'ImprovedTube'; + document.querySelector('.satus-text--title').innerText = satus.locale.getMessage(item.label) || 'ImprovedTube'; } }, @@ -168,7 +168,7 @@ Menu.header.section_end.button_vert.onClickRender.active_features = { onrender: function() { var component = this, new_menu = {}, - storage = Satus.storage; + storage = satus.storage; function search(string, object) { let result = []; @@ -202,9 +202,9 @@ Menu.header.section_end.button_vert.onClickRender.active_features = { setTimeout(function() { if (Object.keys(new_menu).length > 0) { - Satus.render(new_menu, component); + satus.render(new_menu, component); } else { - Satus.render({ + satus.render({ text: { type: 'text', label: 'noActiveFeatures' @@ -243,7 +243,7 @@ Menu.header.section_end.button_vert.onClickRender.mixer = { section: { type: 'section', dataset: { - 'noConnectionLabel': Satus.locale.getMessage('tryToReloadThePage') || 'tryToReloadThePage' + 'noConnectionLabel': satus.locale.getMessage('tryToReloadThePage') || 'tryToReloadThePage' }, mixer_volume: { @@ -324,7 +324,7 @@ Menu.header.section_end.button_vert.onClickRender.mixer = { document.querySelector('.satus-dialog__scrim').click(); - Satus.render(mixer, self); + satus.render(mixer, self); }); } } @@ -358,10 +358,10 @@ Menu.header.section_end.button_vert.onClickRender.settings = { custom_js: { type: 'text-field', onrender: function() { - this.value = Satus.storage.get('custom_js') || ''; + this.value = satus.storage.get('custom_js') || ''; }, oninput: function() { - Satus.storage.set('custom_js', this.value); + satus.storage.set('custom_js', this.value); } } }, @@ -377,10 +377,10 @@ Menu.header.section_end.button_vert.onClickRender.settings = { custom_css: { type: 'text-field', onrender: function() { - this.value = Satus.storage.get('custom_css') || ''; + this.value = satus.storage.get('custom_css') || ''; }, oninput: function() { - Satus.storage.set('custom_css', this.value); + satus.storage.set('custom_css', this.value); } } }, @@ -394,7 +394,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { translations_section: { type: 'section', onrender: function() { - Satus.search('language', Menu, function(result) { + satus.search('language', Menu, function(result) { var languages = result.language.options; for (var i = 0, l = languages.length; i < l; i++) { @@ -558,62 +558,83 @@ Menu.header.section_end.button_vert.onClickRender.settings = { label: 'improvedtubeLanguage', type: 'select', onchange: function(name, value) { - Satus.memory.set('locale', {}); + satus.memory.set('locale', {}); - Satus.locale(function() { + satus.locale(function() { document.querySelector('.satus-main__container').innerHTML = ''; - document.querySelector('.satus-header__title').innerText = Satus.locale.getMessage('languages'); - document.querySelector('#search').placeholder = Satus.locale.getMessage('search'); + document.querySelector('.satus-header__title').innerText = satus.locale.getMessage('languages'); + document.querySelector('#search').placeholder = satus.locale.getMessage('search'); - Satus.render(document.querySelector('.satus-main__container'), Menu.main.section.settings.section.languages); + satus.render(document.querySelector('.satus-main__container'), Menu.main.section.settings.section.languages); }); }, options: [{ value: 'en', label: 'English' }, { - value: 'ar', - label: 'العربية' + value: 'ko', + label: '한국어' + }, { + value: 'es', + label: 'Español (España)' + }, { + value: 'ru', + label: 'Русский' }, { value: 'de', label: 'Deutsch' }, { - value: 'es', - label: 'Español' + value: 'zh_TW', + label: '中文 (繁體)' }, { - value: 'fr', - label: 'Français' + value: 'pt_PT', + label: 'Português' }, { - value: 'id', - label: 'Bahasa Indonesia' + value: 'pt_BR', + label: 'Português (Brasil)' }, { - value: 'it', - label: 'Italiano' + value: 'zh_CN', + label: '中文 (简体)' + }, { + value: 'fr', + label: 'Français' }, { value: 'ja', label: '日本語' + }, { + value: 'tr', + label: 'Türkçe' + }, { + value: 'tr', + label: 'Italiano' }, { value: 'nl', - label: 'Dutch' + label: 'Nederlands' }, { - value: 'no', - label: 'Norwegian Bokmål' + value: 'ar', + label: 'العربية' }, { - value: 'pt_BR', - label: 'Português (Brasil)' + value: 'id', + label: 'Bahasa Indonesia' }, { - value: 'ru', - label: 'Русский' + value: 'nb', + label: 'Norsk' + }, { + value: 'nb_NO', + label: 'Norsk (Bokmål)' }, { - value: 'tr', - label: 'Türkçe' + value: 'el', + label: 'Ελληνικά' }, { - value: 'zh_CN', - label: '中文 (简体)' + value: 'bn', + label: 'বাংলা' }, { - value: 'zh_TW', - label: '中文 (繁體)' + value: 'hin', + label: 'हिन्दी' + }, { + value: 'sk', + label: 'Slovenčina' }] }, youtube_language: { @@ -884,10 +905,10 @@ Menu.header.section_end.button_vert.onClickRender.settings = { var data = JSON.parse(this.result); for (var i in data) { - Satus.storage.set(i, data[i]); + satus.storage.set(i, data[i]); } - Satus.render({ + satus.render({ type: 'dialog', class: 'satus-dialog--confirm', @@ -945,7 +966,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { chrome.runtime.sendMessage({ name: 'download', filename: 'improvedtube-settings.json', - value: Satus.storage + value: satus.storage }); } }, @@ -954,7 +975,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { label: 'resetAllSettings', onclick: function() { - Satus.render({ + satus.render({ type: 'dialog', class: 'satus-dialog--confirm', @@ -985,7 +1006,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { onclick: function() { var scrim = document.querySelectorAll('.satus-dialog__scrim'); - Satus.storage.clear(); + satus.storage.clear(); scrim[scrim.length - 1].click(); } @@ -999,7 +1020,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { label: 'deleteYoutubeCookies', onclick: function() { - Satus.render({ + satus.render({ type: 'dialog', class: 'satus-dialog--confirm', @@ -1080,7 +1101,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { onrender: function() { var component = this, manifest = chrome.runtime.getManifest(), - user = Satus.modules.user(), + user = satus.modules.user(), object = { extension_section: { type: 'section', @@ -1192,7 +1213,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { }; setTimeout(function() { - Satus.render(object, component.parentNode); + satus.render(object, component.parentNode); component.remove(); }); @@ -1663,7 +1684,7 @@ Menu.main.section.appearance = { }; function themePopupChange() { - if (Satus.storage.get('red_popup_theme') === true) { + if (satus.storage.get('red_popup_theme') === true) { document.documentElement.setAttribute('popup-theme', 'red'); } else { document.documentElement.removeAttribute('popup-theme'); @@ -1681,19 +1702,19 @@ function themeChange(event) { } } - if (Satus.storage.get('default_dark_theme') === true) { + if (satus.storage.get('default_dark_theme') === true) { document.documentElement.setAttribute('theme', 'dark'); - } else if (Satus.storage.get('night_theme') === true) { + } else if (satus.storage.get('night_theme') === true) { document.documentElement.setAttribute('theme', 'night'); - } else if (Satus.storage.get('dawn_theme') === true) { + } else if (satus.storage.get('dawn_theme') === true) { document.documentElement.setAttribute('theme', 'dawn'); - } else if (Satus.storage.get('sunset_theme') === true) { + } else if (satus.storage.get('sunset_theme') === true) { document.documentElement.setAttribute('theme', 'sunset'); - } else if (Satus.storage.get('desert_theme') === true) { + } else if (satus.storage.get('desert_theme') === true) { document.documentElement.setAttribute('theme', 'desert'); - } else if (Satus.storage.get('plain_theme') === true) { + } else if (satus.storage.get('plain_theme') === true) { document.documentElement.setAttribute('theme', 'plain'); - } else if (Satus.storage.get('black_theme') === true) { + } else if (satus.storage.get('black_theme') === true) { document.documentElement.setAttribute('theme', 'black'); } else { document.documentElement.removeAttribute('theme'); @@ -2098,10 +2119,10 @@ Menu.main.section.player = { label: 'forcedPlaybackSpeed', id: 'forced-playback-speed', onrender: function() { - this.dataset.value = Satus.storage.player_forced_playback_speed; + this.dataset.value = satus.storage.player_forced_playback_speed; }, onchange: function() { - this.dataset.value = Satus.storage.player_forced_playback_speed; + this.dataset.value = satus.storage.player_forced_playback_speed; } }, player_playback_speed: { @@ -2207,7 +2228,7 @@ Menu.main.section.player = { onclick: function() { console.log(this.dataset.value); if (this.querySelector('input').checked === true) { - Satus.render({ + satus.render({ type: 'dialog', class: 'satus-dialog--confirm', @@ -2271,10 +2292,10 @@ Menu.main.section.player = { label: 'forcedVolume', id: 'forced-volume', onrender: function() { - this.dataset.value = Satus.storage.player_forced_volume; + this.dataset.value = satus.storage.player_forced_volume; }, onchange: function() { - this.dataset.value = Satus.storage.player_forced_volume; + this.dataset.value = satus.storage.player_forced_volume; } }, player_volume: { @@ -2672,19 +2693,19 @@ Menu.main.section.blacklist = { onopen: function() { var self = this; - if (Satus.storage.blacklist && Satus.storage.blacklist.channels) { + if (satus.storage.blacklist && satus.storage.blacklist.channels) { var list = {}; - for (var item in Satus.storage.blacklist.channels) { - if (Satus.storage.blacklist.channels[item] !== false) { - var title = Satus.storage.blacklist.channels[item].title || ''; + for (var item in satus.storage.blacklist.channels) { + if (satus.storage.blacklist.channels[item] !== false) { + var title = satus.storage.blacklist.channels[item].title || ''; list[item] = { type: 'section', label: title.length > 20 ? title.substr(0, 20) + '...' : title, class: 'satus-section--blacklist', style: { - 'background-image': 'url(' + Satus.storage.blacklist.channels[item].preview + ')', + 'background-image': 'url(' + satus.storage.blacklist.channels[item].preview + ')', 'background-color': '#000' }, @@ -2695,9 +2716,9 @@ Menu.main.section.blacklist = { type: 'button', icon: '', onclick: function() { - delete Satus.storage.blacklist.channels[item]; + delete satus.storage.blacklist.channels[item]; - Satus.storage.set('blacklist', Satus.storage.blacklist); + satus.storage.set('blacklist', satus.storage.blacklist); this.classList.add('removing'); @@ -2723,9 +2744,9 @@ Menu.main.section.blacklist = { }; } - Satus.render(list, this); + satus.render(list, this); } else { - Satus.render({ + satus.render({ type: 'section', class: 'satus-section--message', @@ -2743,12 +2764,12 @@ Menu.main.section.blacklist = { onopen: function() { var self = this; - if (Satus.storage.blacklist && Satus.storage.blacklist.videos) { + if (satus.storage.blacklist && satus.storage.blacklist.videos) { let list = {}; - for (let item in Satus.storage.blacklist.videos) { - if (Satus.storage.blacklist.videos[item] !== false) { - let title = Satus.storage.blacklist.videos[item].title || ''; + for (let item in satus.storage.blacklist.videos) { + if (satus.storage.blacklist.videos[item] !== false) { + let title = satus.storage.blacklist.videos[item].title || ''; list[item] = { type: 'section', @@ -2765,9 +2786,9 @@ Menu.main.section.blacklist = { type: 'button', icon: '', onclick: function() { - delete Satus.storage.blacklist.videos[item]; + delete satus.storage.blacklist.videos[item]; - Satus.storage.set('blacklist', Satus.storage.blacklist); + satus.storage.set('blacklist', satus.storage.blacklist); this.parentNode.parentNode.classList.add('removing'); setTimeout(function() { @@ -2792,9 +2813,9 @@ Menu.main.section.blacklist = { }; } - Satus.render(list, this); + satus.render(list, this); } else { - Satus.render({ + satus.render({ type: 'section', class: 'satus-section--message', @@ -2832,7 +2853,7 @@ Menu.main.section.analyzer = { 'align-items': 'flex-start' }, onrender: function() { - var data = Satus.storage.get('analyzer') || {}, + var data = satus.storage.get('analyzer') || {}, all_data = {}, all_data_sort = [], all_time_value = 0, @@ -2878,8 +2899,8 @@ Menu.main.section.analyzer = { var now_minutes = new Date().getMinutes(); - watch_time.innerText = Satus.locale.getMessage('watchTime') || 'watchTime'; - today_at.innerText = Satus.locale.getMessage('todayAt') + ' ' + (new Date().getHours() + ':' + (now_minutes < 10 ? '0' + now_minutes : now_minutes)) || 'todayAt'; + watch_time.innerText = satus.locale.getMessage('watchTime') || 'watchTime'; + today_at.innerText = satus.locale.getMessage('todayAt') + ' ' + (new Date().getHours() + ':' + (now_minutes < 10 ? '0' + now_minutes : now_minutes)) || 'todayAt'; all_time.innerText = Math.floor(all_time_value / 60) + 'h ' + (all_time_value - Math.floor(all_time_value / 60) * 60) + 'm'; let h = 0; @@ -2968,128 +2989,42 @@ chrome.storage.onChanged.addListener(function(changes) { } }); -Satus.storage.import(function() { - var language = Satus.storage.get('language') || 'en'; - - if (!Satus.storage.get('language')) { - var dialog = { - type: 'dialog', - class: 'satus-dialog--setup satus-dialog--setup-language', - - en: { - type: 'button', - label: 'English' - }, - ar: { - type: 'button', - label: 'العربية' - }, - de: { - type: 'button', - label: 'Deutsch' - }, - es: { - type: 'button', - label: 'Español' - }, - fr: { - type: 'button', - label: 'Français' - }, - id: { - type: 'button', - label: 'Bahasa Indonesia' - }, - it: { - type: 'button', - label: 'Italiano' - }, - ja: { - type: 'button', - label: '日本語' - }, - nl: { - type: 'button', - label: 'Dutch' - }, - no: { - type: 'button', - label: 'Norwegian Bokmål' - }, - pt_BR: { - type: 'button', - label: 'Português (Brasil)' - }, - ru: { - type: 'button', - label: 'Русский' - }, - tr: { - type: 'button', - label: 'Türkçe' - }, - zh_CN: { - type: 'button', - label: '中文 (简体)' - }, - zh_TW: { - type: 'button', - label: '中文 (繁體)' - } - }; - - for (var key in dialog) { - if (typeof dialog[key] === 'object') { - dialog[key].dataset = { - key: key - }; - - dialog[key].onclick = function() { - Satus.storage.set('language', this.dataset.key); - - document.querySelector('.satus-dialog--setup .satus-dialog__scrim').click(); - }; - } - } - - Satus.render(dialog); - } - - if (Satus.isset(Satus.storage.get('red_popup_theme')) === false || Satus.storage.get('red_popup_theme') === true) { +satus.storage.import(function() { + if (satus.isset(satus.storage.get('red_popup_theme')) === false || satus.storage.get('red_popup_theme') === true) { document.documentElement.setAttribute('popup-theme', 'red'); } - if (Satus.storage.get('default_dark_theme') === true) { + if (satus.storage.get('default_dark_theme') === true) { document.documentElement.setAttribute('theme', 'dark'); } - if (Satus.storage.get('night_theme') === true) { + if (satus.storage.get('night_theme') === true) { document.documentElement.setAttribute('theme', 'night'); } - if (Satus.storage.get('dawn_theme') === true) { + if (satus.storage.get('dawn_theme') === true) { document.documentElement.setAttribute('theme', 'dawn'); } - if (Satus.storage.get('sunset_theme') === true) { + if (satus.storage.get('sunset_theme') === true) { document.documentElement.setAttribute('theme', 'sunset'); } - if (Satus.storage.get('desert_theme') === true) { + if (satus.storage.get('desert_theme') === true) { document.documentElement.setAttribute('theme', 'desert'); } - if (Satus.storage.get('plain_theme') === true) { + if (satus.storage.get('plain_theme') === true) { document.documentElement.setAttribute('theme', 'plain'); } - if (Satus.storage.get('black_theme') === true) { + if (satus.storage.get('black_theme') === true) { document.documentElement.setAttribute('theme', 'black'); } - Satus.locale.import('_locales/' + language + '/messages.json', function() { - Satus.modules.updateStorageKeys(Menu, function() { - Satus.render(Menu, document.body); + satus.locale.import(satus.storage.get('language'), function() { + satus.modules.updateStorageKeys(Menu, function() { + satus.render(Menu, document.body); }); }); }); \ No newline at end of file diff --git a/stable/satus.js b/stable/satus.js index 6271c136e..0ade2fb0e 100644 --- a/stable/satus.js +++ b/stable/satus.js @@ -1,4 +1,4 @@ - + /*-------------------------------------------------------------- >>> TABLE OF CONTENTS: ---------------------------------------------------------------- @@ -8,16 +8,16 @@ # Animation duration --------------------------------------------------------------*/ -var Satus = {}; +var satus = {}; /*-------------------------------------------------------------- # EVENTS --------------------------------------------------------------*/ -Satus.events = {}; +satus.events = {}; -Satus.on = function(event, handler) { +satus.on = function(event, handler) { if (!this.isset(this.events[event])) { this.events[event] = []; } @@ -30,21 +30,21 @@ Satus.on = function(event, handler) { # COMPONENTS --------------------------------------------------------------*/ -Satus.components = {}; +satus.components = {}; /*-------------------------------------------------------------- # MODULES --------------------------------------------------------------*/ -Satus.modules = {}; +satus.modules = {}; /*-------------------------------------------------------------- # ISSET --------------------------------------------------------------*/ -Satus.isset = function(variable) { +satus.isset = function(variable) { if (typeof variable === 'undefined' || variable === null) { return false; } @@ -57,7 +57,7 @@ Satus.isset = function(variable) { # CAMELIZE --------------------------------------------------------------*/ -Satus.camelize = function(string) { +satus.camelize = function(string) { return string.replace(/-[a-z]/g, function(match) { return match[1].toUpperCase(); }); @@ -68,9 +68,9 @@ Satus.camelize = function(string) { # ANIMATION DURATION --------------------------------------------------------------*/ -Satus.getAnimationDuration = function(element) { +satus.getAnimationDuration = function(element) { return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; -}; +}; /*-------------------------------------------------------------- >>> CHROMIUM STORAGE ---------------------------------------------------------------- @@ -80,21 +80,21 @@ Satus.getAnimationDuration = function(element) { 4.0 Clear --------------------------------------------------------------*/ -Satus.storage = {}; +satus.storage = {}; /*-------------------------------------------------------------- # GET --------------------------------------------------------------*/ -Satus.storage.get = function(name) { - var target = Satus.storage; +satus.storage.get = function(name) { + var target = satus.storage; name = name.split('/').filter(function(value) { return value != ''; }); for (var i = 0, l = name.length; i < l; i++) { - if (Satus.isset(target[name[i]])) { + if (satus.isset(target[name[i]])) { target = target[name[i]]; } else { return undefined; @@ -109,11 +109,11 @@ Satus.storage.get = function(name) { # SET --------------------------------------------------------------*/ -Satus.storage.set = function(name, value) { +satus.storage.set = function(name, value) { var items = {}, - target = Satus.storage; + target = satus.storage; - if (!Satus.isset(name)) { + if (!satus.isset(name)) { return false; } @@ -138,9 +138,9 @@ Satus.storage.set = function(name, value) { } } - for (var key in Satus.storage) { - if (typeof Satus.storage[key] !== 'function') { - items[key] = Satus.storage[key]; + for (var key in satus.storage) { + if (typeof satus.storage[key] !== 'function') { + items[key] = satus.storage[key]; } } @@ -152,10 +152,10 @@ Satus.storage.set = function(name, value) { # IMPORT --------------------------------------------------------------*/ -Satus.storage.import = function(callback) { +satus.storage.import = function(callback) { chrome.storage.local.get(function(items) { for (var key in items) { - Satus.storage[key] = items[key]; + satus.storage[key] = items[key]; } if (callback) { @@ -169,49 +169,63 @@ Satus.storage.import = function(callback) { # CLEAR --------------------------------------------------------------*/ -Satus.storage.clear = function() { +satus.storage.clear = function() { chrome.storage.local.clear(); - for (var key in Satus.storage) { - if (typeof Satus.storage[key] !== 'function') { - delete Satus.storage[key]; + for (var key in satus.storage) { + if (typeof satus.storage[key] !== 'function') { + delete satus.storage[key]; } } }; - -/*-------------------------------------------------------------- -# LOCALE ---------------------------------------------------------------*/ -Satus.locale = { +/*--------------------------------------------------------------- +>>> LOCALE +----------------------------------------------------------------- +# Get message +# Import locale +---------------------------------------------------------------*/ + +satus.locale = { messages: {} }; -/*-------------------------------------------------------------- +/*--------------------------------------------------------------- # GET MESSAGE ---------------------------------------------------------------*/ +---------------------------------------------------------------*/ -Satus.locale.getMessage = function(string) { +satus.locale.getMessage = function(string) { return this.messages[string] || string; }; -/*-------------------------------------------------------------- +satus.locale.get = satus.locale.getMessage; + + +/*--------------------------------------------------------------- # IMPORT LOCALE ---------------------------------------------------------------*/ +---------------------------------------------------------------*/ -Satus.locale.import = function(src, callback) { +satus.locale.import = function(language, callback) { var xhr = new XMLHttpRequest(); + if (typeof language === 'function') { + var callback = language; + } + + if (typeof language !== 'string') { + var language = chrome.i18n.getUILanguage(); + } + xhr.onload = function() { try { var object = JSON.parse(this.responseText); for (var key in object) { - Satus.locale.messages[key] = object[key].message; + satus.locale.messages[key] = object[key].message; } - callback(); + callback(language); } catch (err) { function listener(request) { if (request !== null && typeof request === 'object') { @@ -221,10 +235,10 @@ Satus.locale.import = function(src, callback) { chrome.runtime.onMessage.removeListener(listener); for (var key in object) { - Satus.locale.messages[key] = object[key].message; + satus.locale.messages[key] = object[key].message; } - callback(); + callback(language); } } } @@ -233,28 +247,37 @@ Satus.locale.import = function(src, callback) { chrome.runtime.sendMessage({ name: 'translation_request', - path: src + path: '_locales/' + language + '/messages.json' }); } }; - xhr.open('GET', src, true); + xhr.onerror = function() { + if (language === 'en') { + callback(); + } else { + satus.locale.import('en', callback); + } + }; + + xhr.open('GET', '_locales/' + language + '/messages.json', true); xhr.send(); -}; +}; + /*-------------------------------------------------------------- >>> RENDER --------------------------------------------------------------*/ -Satus.render = function(element, container, callback) { +satus.render = function(element, container, callback) { function convert(object) { if (object && object.type) { - var type = Satus.camelize(object.type), - component = Satus.components[type](object), + var type = satus.camelize(object.type), + component = satus.components[type](object), excluded_properties = ['type', 'label', 'class', 'title', 'storage']; function applyProperties(object, target) { for (var key in object) { - if (Satus.isset(object[key]) && typeof object[key] === 'object' && !object[key].type) { + if (satus.isset(object[key]) && typeof object[key] === 'object' && !object[key].type) { if (typeof target[key] !== 'object') { target[key] = {}; } @@ -302,13 +325,13 @@ Satus.render = function(element, container, callback) { if (typeof component.onClickRender === 'object') { component.addEventListener('click', function() { - Satus.render(component.onClickRender); + satus.render(component.onClickRender); }); } - if (Satus.isset(Satus.events.render)) { - for (var i = 0, l = Satus.events.render.length; i < l; i++) { - Satus.events.render[i](component, object); + if (satus.isset(satus.events.render)) { + for (var i = 0, l = satus.events.render.length; i < l; i++) { + satus.events.render[i](component, object); } } @@ -329,23 +352,23 @@ Satus.render = function(element, container, callback) { convert(element[key]); } } -}; +}; /*-------------------------------------------------------------- # CLONE NODE STYLES --------------------------------------------------------------*/ -Satus.cloneNodeStyles = function(origin, target) { +satus.cloneNodeStyles = function(origin, target) { target.style.cssText = window.getComputedStyle(origin, '').cssText; for (var i = 0, l = origin.children.length; i < l; i++) { - Satus.cloneNodeStyles(origin.children[i], target.children[i]); + satus.cloneNodeStyles(origin.children[i], target.children[i]); } -}; +}; /*----------------------------------------------------------------------------- >>> «SEARCH» MODULE -----------------------------------------------------------------------------*/ -Satus.search = function(query, object, callback, categories) { +satus.search = function(query, object, callback, categories) { var threads = 0, folder = '', results = {}; @@ -386,12 +409,12 @@ Satus.search = function(query, object, callback, categories) { parse(object); }; - + /*-------------------------------------------------------------- >>> STORAGE KEYS --------------------------------------------------------------*/ -Satus.modules.updateStorageKeys = function(object, callback) { +satus.modules.updateStorageKeys = function(object, callback) { var threads = 0; function parse(items) { @@ -418,7 +441,7 @@ Satus.modules.updateStorageKeys = function(object, callback) { } parse(object); -}; +}; /*----------------------------------------------------------------------------- >>> «USER» MODULE ------------------------------------------------------------------------------- @@ -447,7 +470,7 @@ Satus.modules.updateStorageKeys = function(object, callback) { 4.0 Clearing -----------------------------------------------------------------------------*/ -Satus.modules.user = function() { +satus.modules.user = function() { /*----------------------------------------------------------------------------- 1.0 VARIABLES -----------------------------------------------------------------------------*/ @@ -778,8 +801,8 @@ Satus.modules.user = function() { return data; -}; -Satus.on('render', function(component, data) { +}; +satus.on('render', function(component, data) { if (data.perspective === true) { component.style.willChange = 'transform'; component.style.transformStyle = 'preserve-3d'; @@ -797,15 +820,15 @@ Satus.on('render', function(component, data) { this.style.transform = 'perspective(440px) rotateX(0deg) rotateY(0deg) translateZ(0)'; }); } -}); +}); /*-------------------------------------------------------------- >>> BUTTON --------------------------------------------------------------*/ -Satus.components.button = function(element) { +satus.components.button = function(element) { var component = document.createElement('button'); - if (Satus.isset(element.icon)) { + if (satus.isset(element.icon)) { var component_icon = document.createElement('span'); component_icon.className = 'satus-button__icon'; @@ -814,34 +837,34 @@ Satus.components.button = function(element) { component.appendChild(component_icon); } - if (Satus.isset(element.label)) { + if (satus.isset(element.label)) { var component_label = document.createElement('span'); component_label.className = 'satus-button__label'; - component_label.innerText = Satus.locale.getMessage(element.label); + component_label.innerText = satus.locale.getMessage(element.label); component.appendChild(component_label); } return component; -}; +}; /*-------------------------------------------------------------- >>> COLOR PICKER --------------------------------------------------------------*/ -Satus.components.colorPicker = function(element) { +satus.components.colorPicker = function(element) { var component = document.createElement('div'), component_value = document.createElement('div'); element.class = 'satus-button'; component_value.className = 'satus-color-picker__value'; - component_value.style.backgroundColor = Satus.storage.get(element.storage_key) || element.value || ''; + component_value.style.backgroundColor = satus.storage.get(element.storage_key) || element.value || ''; - if (Satus.isset(element.label)) { + if (satus.isset(element.label)) { var component_label = document.createElement('span'); component_label.className = 'satus-button__label'; - component_label.innerText = Satus.locale.getMessage(element.label); + component_label.innerText = satus.locale.getMessage(element.label); component.appendChild(component_label); } @@ -852,7 +875,7 @@ Satus.components.colorPicker = function(element) { close = document.createElement('button'), ctx = component_canvas.getContext('2d'), image = new Image(), - dialog = Satus.components.dialog({}); + dialog = satus.components.dialog({}); close.className = 'satus-button'; close.innerHTML = ''; @@ -873,7 +896,7 @@ Satus.components.colorPicker = function(element) { component_value.style.backgroundColor = 'rgb(' + color[0] + ',' + color[1] + ',' + color[2] + ')'; - Satus.storage.set(element.storage_key, component_value.style.backgroundColor); + satus.storage.set(element.storage_key, component_value.style.backgroundColor); } function mouseup(event) { @@ -904,23 +927,23 @@ Satus.components.colorPicker = function(element) { component.appendChild(component_value); return component; -}; +}; /*-------------------------------------------------------------- >>> DIALOG --------------------------------------------------------------*/ -Satus.components.dialog = function(element) { +satus.components.dialog = function(element) { var component = document.createElement('div'), component_scrim = document.createElement('div'), component_surface = document.createElement('div'), - component_scrollbar = Satus.components.scrollbar(component_surface), + component_scrollbar = satus.components.scrollbar(component_surface), options = element.options || {}; component_scrim.className = 'satus-dialog__scrim'; component_surface.className = 'satus-dialog__surface'; for (var key in element) { - Satus.render(element[key], component_scrollbar); + satus.render(element[key], component_scrollbar); } function close() { @@ -934,7 +957,7 @@ Satus.components.dialog = function(element) { setTimeout(function() { component.remove(); - }, Satus.getAnimationDuration(component_surface)); + }, satus.getAnimationDuration(component_surface)); } function keydown(event) { @@ -992,12 +1015,12 @@ Satus.components.dialog = function(element) { // END OPTIONS return component; -}; +}; /*-------------------------------------------------------------- >>> FOLDER --------------------------------------------------------------*/ -Satus.components.folder = function(object) { +satus.components.folder = function(object) { var component = document.createElement('button'); component.object = object; @@ -1016,35 +1039,35 @@ Satus.components.folder = function(object) { parent.open(this.object, object.onopen); }); - if (Satus.isset(object.label)) { + if (satus.isset(object.label)) { var component_label = document.createElement('span'); component_label.className = 'satus-folder__label'; - component_label.innerText = Satus.locale.getMessage(object.label); + component_label.innerText = satus.locale.getMessage(object.label); component.appendChild(component_label); } return component; -}; +}; /*-------------------------------------------------------------- >>> HEADER --------------------------------------------------------------*/ -Satus.components.header = function(object) { +satus.components.header = function(object) { var component = document.createElement('header'); for (var key in object) { - Satus.render(object[key], component); + satus.render(object[key], component); } return component; -}; +}; /*-------------------------------------------------------------- >>> LIST --------------------------------------------------------------*/ -Satus.components.list = function(object) { +satus.components.list = function(object) { var ul = document.createElement('ul'); if (object.compact === true) { @@ -1053,7 +1076,7 @@ Satus.components.list = function(object) { } for (var key in object) { - if (Satus.isset(object[key].type)) { + if (satus.isset(object[key].type)) { var li = document.createElement('li'); if (object.sortable === true) { @@ -1077,7 +1100,7 @@ Satus.components.list = function(object) { if (dragging === false) { clone = self.cloneNode(true); - Satus.cloneNodeStyles(self, clone); + satus.cloneNodeStyles(self, clone); clone.style.position = 'fixed'; clone.style.pointerEvents = 'none'; clone.style.backgroundColor = '#fff'; @@ -1138,7 +1161,7 @@ Satus.components.list = function(object) { li.addEventListener('mousedown', mousedown); } - Satus.render(object[key], li); + satus.render(object[key], li); ul.appendChild(li); } @@ -1146,22 +1169,22 @@ Satus.components.list = function(object) { return ul; }; - + /*-------------------------------------------------------------- >>> MAIN --------------------------------------------------------------*/ -Satus.components.main = function(object) { +satus.components.main = function(object) { var component = document.createElement('main'), component_container = document.createElement('div'), - component_scrollbar = Satus.components.scrollbar(component_container, object.scrollbar); + component_scrollbar = satus.components.scrollbar(component_container, object.scrollbar); component.history = [object]; component.back = function() { var container = this.querySelector('.satus-main__container'), component_container = document.createElement('div'), - component_scrollbar = Satus.components.scrollbar(component_container); + component_scrollbar = satus.components.scrollbar(component_container); container.classList.add('satus-main__container--fade-out-right'); component_container.className = 'satus-main__container satus-main__container--fade-in-left'; @@ -1169,7 +1192,7 @@ Satus.components.main = function(object) { this.history.pop(); for (var key in this.history[this.history.length - 1]) { - Satus.render(this.history[this.history.length - 1][key], component_scrollbar); + satus.render(this.history[this.history.length - 1][key], component_scrollbar); } this.appendChild(component_container); @@ -1186,13 +1209,13 @@ Satus.components.main = function(object) { setTimeout(function() { container.remove(); - }, Satus.getAnimationDuration(container)); + }, satus.getAnimationDuration(container)); }; component.open = function(element, callback, animated) { var container = this.querySelector('.satus-main__container'), component_container = document.createElement('div'), - component_scrollbar = Satus.components.scrollbar(component_container); + component_scrollbar = satus.components.scrollbar(component_container); if (animated !== false) { container.classList.add('satus-main__container--fade-out-left'); @@ -1204,7 +1227,7 @@ Satus.components.main = function(object) { this.history.push(element); for (var key in this.history[this.history.length - 1]) { - Satus.render(this.history[this.history.length - 1][key], component_scrollbar); + satus.render(this.history[this.history.length - 1][key], component_scrollbar); } this.appendChild(component_container); @@ -1221,7 +1244,7 @@ Satus.components.main = function(object) { setTimeout(function() { container.remove(); - }, Satus.getAnimationDuration(container)); + }, satus.getAnimationDuration(container)); }; component_container.className = 'satus-main__container'; @@ -1235,18 +1258,18 @@ Satus.components.main = function(object) { } for (var key in object) { - Satus.render(object[key], component_scrollbar); + satus.render(object[key], component_scrollbar); } component.appendChild(component_container); return component; -}; +}; /*----------------------------------------------------------------------------- >>> SCROLL BAR -----------------------------------------------------------------------------*/ -Satus.components.scrollbar = function(parent, enabled) { +satus.components.scrollbar = function(parent, enabled) { if (enabled === false) { return parent; } @@ -1346,30 +1369,30 @@ Satus.components.scrollbar = function(parent, enabled) { parent.appendChild(component); return component_content; -}; +}; /*-------------------------------------------------------------- >>> SECTION --------------------------------------------------------------*/ -Satus.components.section = function(element) { +satus.components.section = function(element) { var component = document.createElement('section'); for (var key in element) { - Satus.render(element[key], component); + satus.render(element[key], component); } return component; }; - + /*-------------------------------------------------------------- >>> SELECT --------------------------------------------------------------*/ -Satus.components.select = function(element) { +satus.components.select = function(element) { var component = document.createElement('button'), component_label = document.createElement('span'), component_value = document.createElement('span'), - label = Satus.locale.getMessage(element.label); + label = satus.locale.getMessage(element.label); component.classList.add('satus-button'); @@ -1379,7 +1402,7 @@ Satus.components.select = function(element) { component_value.className = 'satus-select__value'; if (element.storage_key) { - var value = Satus.storage.get(element.storage_key); + var value = satus.storage.get(element.storage_key); component.dataset.storageKey = element.storage_key; @@ -1389,7 +1412,7 @@ Satus.components.select = function(element) { } } - component_value.innerText = Satus.locale.getMessage(value || element.options[0].label); + component_value.innerText = satus.locale.getMessage(value || element.options[0].label); } component.onclick = function() { @@ -1407,9 +1430,9 @@ Satus.components.select = function(element) { dialog[key].dataset.key = element.options[key].label; dialog[key].dataset.value = element.options[key].value; dialog[key].onclick = function() { - component_value.innerText = Satus.locale.getMessage(this.dataset.key); + component_value.innerText = satus.locale.getMessage(this.dataset.key); - Satus.storage.set(component.dataset.storageKey, this.dataset.value); + satus.storage.set(component.dataset.storageKey, this.dataset.value); var parent = this.parentNode; @@ -1421,21 +1444,21 @@ Satus.components.select = function(element) { }; } - Satus.render(dialog); + satus.render(dialog); }; component.appendChild(component_label); component.appendChild(component_value); return component; -}; +}; /*------------------------------------------------------------------------------ >>> SHORTCUT ------------------------------------------------------------------------------*/ -Satus.components.shortcut = function(element) { +satus.components.shortcut = function(element) { var self = this, - value = (Satus.storage.get(element.storage_key) ? JSON.parse(Satus.storage.get(element.storage_key)) : false) || element.value || {}, + value = (satus.storage.get(element.storage_key) ? JSON.parse(satus.storage.get(element.storage_key)) : false) || element.value || {}, component = document.createElement('div'), component_label = document.createElement('span'), component_value = document.createElement('span'), @@ -1499,7 +1522,7 @@ Satus.components.shortcut = function(element) { if (keys_value.length > 0) { canvas.innerHTML = keys_value.join('
'); } else { - canvas.innerText = Satus.locale.getMessage('pressAnyKeyOrUseMouseWheel'); + canvas.innerText = satus.locale.getMessage('pressAnyKeyOrUseMouseWheel'); } } } @@ -1508,7 +1531,7 @@ Satus.components.shortcut = function(element) { component_value.dataset.value = component_value.innerText; - component_label.innerText = Satus.locale.getMessage(element.label); + component_label.innerText = satus.locale.getMessage(element.label); component.addEventListener('click', function() { let component_dialog = document.createElement('div'), @@ -1532,9 +1555,9 @@ Satus.components.shortcut = function(element) { component_button_save.className = 'satus-button satus-button_shortcut'; component_dialog_label.innerText = component_label.innerText; - component_button_reset.innerText = Satus.locale.getMessage('reset'); - component_button_cancel.innerText = Satus.locale.getMessage('cancel'); - component_button_save.innerText = Satus.locale.getMessage('save'); + component_button_reset.innerText = satus.locale.getMessage('reset'); + component_button_cancel.innerText = satus.locale.getMessage('cancel'); + component_button_save.innerText = satus.locale.getMessage('save'); update(component_canvas); @@ -1602,14 +1625,14 @@ Satus.components.shortcut = function(element) { component_scrim.addEventListener('click', close); component_button_reset.addEventListener('click', function() { - Satus.storage.set(element.storage_key, null); + satus.storage.set(element.storage_key, null); close(); - value = (Satus.storage.get(element.storage_key) ? JSON.parse(Satus.storage.get(element.storage_key)) : false) || object.value || {}; + value = (satus.storage.get(element.storage_key) ? JSON.parse(satus.storage.get(element.storage_key)) : false) || object.value || {}; update(); }); component_button_cancel.addEventListener('click', close); component_button_save.addEventListener('click', function() { - Satus.storage.set(element.storage_key, JSON.stringify(value)); + satus.storage.set(element.storage_key, JSON.stringify(value)); close(false); }); @@ -1631,20 +1654,20 @@ Satus.components.shortcut = function(element) { component.appendChild(component_value); return component; -}; +}; /*-------------------------------------------------------------- >>> SLIDER --------------------------------------------------------------*/ -Satus.components.slider = function(element) { +satus.components.slider = function(element) { var component = document.createElement('div'); // LABEL - if (Satus.isset(element.label)) { + if (satus.isset(element.label)) { var component_label = document.createElement('span'); component_label.className = 'satus-slider__label'; - component_label.innerText = Satus.locale.getMessage(element.label); + component_label.innerText = satus.locale.getMessage(element.label); component.appendChild(component_label); } @@ -1670,7 +1693,7 @@ Satus.components.slider = function(element) { track.style.width = 'calc(' + offset + '% - ' + Math.floor(offset * 12 / 100) + 'px)'; - Satus.storage.set(this.dataset.storageKey, Number(this.value)); + satus.storage.set(this.dataset.storageKey, Number(this.value)); component_thumb.dataset.value = this.value; @@ -1745,14 +1768,14 @@ Satus.components.slider = function(element) { component_track.appendChild(component_thumb); if (element.storage_key) { - var value = Satus.storage.get(element.storage_key) || element.value; + var value = satus.storage.get(element.storage_key) || element.value; component_range.dataset.storageKey = element.storage_key; if (value) { component_range.value = value; - if (!Satus.isset(value)) { + if (!satus.isset(value)) { value = element.value; } @@ -1768,21 +1791,21 @@ Satus.components.slider = function(element) { return component; -}; +}; /*-------------------------------------------------------------- >>> SWITCH --------------------------------------------------------------*/ -Satus.components.switch = function(element) { +satus.components.switch = function(element) { var component = document.createElement('div'), value; // LABEL - if (Satus.isset(element.label)) { + if (satus.isset(element.label)) { var component_label = document.createElement('span'); component_label.className = 'satus-switch__label'; - component_label.innerText = Satus.locale.getMessage(element.label); + component_label.innerText = satus.locale.getMessage(element.label); component.appendChild(component_label); } @@ -1795,12 +1818,12 @@ Satus.components.switch = function(element) { component_input.className = 'satus-switch__input'; if (element.storage_key) { - value = Satus.storage.get(element.storage_key); + value = satus.storage.get(element.storage_key); component_input.dataset.storageKey = element.storage_key; } - if (!Satus.isset(value)) { + if (!satus.isset(value)) { value = element.value; } @@ -1809,7 +1832,7 @@ Satus.components.switch = function(element) { } component_input.addEventListener('change', function() { - Satus.storage.set(this.dataset.storageKey, this.checked); + satus.storage.set(this.dataset.storageKey, this.checked); }); component.appendChild(component_input); @@ -1904,12 +1927,12 @@ Satus.components.switch = function(element) { return component; -}; -Satus.components.table = function(item) { +}; +satus.components.table = function(item) { var component = document.createElement('div'), component_head = document.createElement('div'), component_body = document.createElement('div'), - component_scrollbar = Satus.components.scrollbar(component_body, item.scrollbar), + component_scrollbar = satus.components.scrollbar(component_body, item.scrollbar), table = document.createElement('div'); table.className = 'satus-table__container'; @@ -2041,7 +2064,7 @@ Satus.components.table = function(item) { component.pagingIndex = 0; component.update = function(data, index, mode) { - if (Satus.isset(data)) { + if (satus.isset(data)) { this.data = data; } @@ -2119,39 +2142,39 @@ Satus.components.table = function(item) { return component; }; - + /*-------------------------------------------------------------- >>> TEXT --------------------------------------------------------------*/ -Satus.components.text = function(element) { +satus.components.text = function(element) { var component = document.createElement('span'); - if (Satus.isset(element.label)) { + if (satus.isset(element.label)) { var component_label = document.createElement('span'); component_label.className = 'satus-text__label'; - component_label.innerText = Satus.locale.getMessage(element.label); + component_label.innerText = satus.locale.getMessage(element.label); component.appendChild(component_label); } - if (Satus.isset(element.value)) { + if (satus.isset(element.value)) { var component_value = document.createElement('span'); component_value.className = 'satus-text__value'; - component_value.innerText = Satus.locale.getMessage(element.value); + component_value.innerText = satus.locale.getMessage(element.value); component.appendChild(component_value); } return component; -}; +}; /*-------------------------------------------------------------- >>> TEXT FIELD --------------------------------------------------------------*/ -Satus.components.textField = function(element) { +satus.components.textField = function(element) { var component = element.rows > 1 ? document.createElement('textarea') : document.createElement('input'); component.type = 'text'; diff --git a/unstable/satus.css b/unstable/satus.css index 58fd58a80..e69de29bb 100644 --- a/unstable/satus.css +++ b/unstable/satus.css @@ -1,2067 +0,0 @@ - -/*--------------------------------------------------------------- ->>> ANIMATIONS ----------------------------------------------------------------*/ - -.satus-animation--fade-in -{ - animation: fadeIn 250ms; -} - -.satus-animation--fade-out -{ - animation: fadeOut 250ms; -} - -.satus-animation--fade-in-left -{ - animation: fadeInLeft 250ms; -} - -.satus-animation--fade-in-right -{ - animation: fadeInRight 250ms; -} - -.satus-animation--fade-out-left -{ - animation: fadeOutLeft 250ms; -} - -.satus-animation--fade-out-right -{ - animation: fadeOutRight 250ms; -} - -.satus-animation--zoom-in -{ - animation: zoomIn 250ms; -} - -.satus-animation--zoom-out -{ - animation: zoomOut 250ms; -} - -@keyframes fadeIn -{ - from - { - opacity: 0; - } - to - { - opacity: 1; - } -} - -@keyframes fadeOut -{ - from - { - opacity: 1; - } - to - { - opacity: 0; - } -} - -@keyframes fadeInLeft -{ - from - { - transform: translateX(-10%); - - opacity: 0; - } - to - { - transform: translateX(0%); - - opacity: 1; - } -} - -@keyframes fadeInRight -{ - from - { - transform: translateX(10%); - - opacity: 0; - } - to - { - transform: translateX(0%); - - opacity: 1; - } -} - -@keyframes fadeOutLeft -{ - from - { - transform: translateX(0%); - - opacity: 1; - } - to - { - transform: translateX(-10%); - - opacity: 0; - } -} - -@keyframes fadeOutRight -{ - from - { - transform: translateX(0%); - - opacity: 1; - } - to - { - transform: translateX(10%); - - opacity: 0; - } -} - -@keyframes zoomIn -{ - from - { - transform: scale(.8); - - opacity: 0; - } - to - { - transform: scale(1); - - opacity: 1; - } -} - -@keyframes zoomOut -{ - from - { - transform: scale(1); - - opacity: 1; - } - to - { - transform: scale(.8); - - opacity: 0; - } -} - -/*--------------------------------------------------------------- ->>> CUSTOM ----------------------------------------------------------------*/ - -html, -body -{ - display: flex; - overflow: hidden; - flex-direction: column; - - width: 100vw; - height: 100vh; - margin: 0; - - background: var(--satus-theme-main); -} - -/*--------------------------------------------------------------- ->>> THEMES ------------------------------------------------------------------ -1.0 Default ----------------------------------------------------------------*/ - -html -{ - --satus-theme-primary: #ffbe46; - --satus-theme-on-primary: #fff; - --satus-theme-dialog: #f7f7f6; - --satus-theme-dialog-backdrop: rgba(25,25,25,.2); - --satus-theme-dialog-shadow: inset 0 -1px 1px 1px rgba(0,0,0,.1), 0 2px 6px rgba(0, 0, 0, .15); - --satus-theme-dialog-text: #777; - --satus-theme-header: #fff; - --satus-theme-header-text: #777; - --satus-theme-main: #f7f7f6; - --satus-theme-main-text: #777; - --satus-theme-section: #fff; - --satus-theme-on-button: transparent; - --satus-theme-button: transparent; - --satus-theme-scrollbar: rgba(0, 0, 0, .2); - --satus-theme-scrollbar-focus: rgba(0, 0, 0, .4); - --satus-theme-tooltip: rgba(0, 0, 0, .4); - --satus-theme-hover: rgba(0, 0, 0, .04); - --satus-theme-shortcut: #fff; - --satus-theme-tabs-background: #efefef; - --satus-theme-tabs-border: #dfdfdf; -} -/*--------------------------------------------------------------- ->>> BUTTON ------------------------------------------------------------------ -# Basis - # Background - -# Variants - # Text - # List item - # Raised - # Unelevated - -# Before -# Afte - -# SVG - -# Attributes ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# BASIS ----------------------------------------------------------------*/ - -.satus-button -{ - font: inherit; - font-weight: 500; - line-height: inherit; - - position: relative; - - display: inline-flex; - - height: 40px; - padding: 0 16px; - - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - - color: inherit; - border: none; - outline: none; - background: transparent; - - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - align-items: center; - -webkit-tap-highlight-color: transparent; - -webkit-appearance: none; -} - -.satus-button:hover -{ - cursor: pointer; -} - - -/*--------------------------------------------------------------- -# BACKGROUND ----------------------------------------------------------------*/ - -.satus-button--text, -.satus-button--raised, -.satus-button--unelevated -{ - margin: 4px; -} - -.satus-button--text > *, -.satus-button--raised > *, -.satus-button--unelevated > * -{ - position: relative; - z-index: 1; -} - -.satus-button--text::before, -.satus-button--raised::before, -.satus-button--unelevated::before -{ - position: absolute; - top: 0; - left: 0; - - box-sizing: border-box; - width: 100%; - height: 100%; - - content: ''; - transition: box-shadow .2s, transform .4s cubic-bezier(.175, .885, .32, 1.275), background .2s; - - border-radius: 8px; - background: transparent; -} - -.satus-button--text:active::before, -.satus-button--raised:active::before, -.satus-button--unelevated:active::before -{ - transform: scale(.95); -} - - -/*--------------------------------------------------------------- -# VARIANTS ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# TEXT ----------------------------------------------------------------*/ - -.satus-button--text:hover::before -{ - background: var(--satus-theme-hover); -} - - -/*--------------------------------------------------------------- -# LIST ITEM ----------------------------------------------------------------*/ - -.satus-button--list-item -{ - width: 100%; - height: 48px; - margin: 0; - padding: 0 16px; - - text-align: left; - - border-radius: 0; - - justify-content: flex-start; -} - -.satus-button--list-item:hover -{ - background: var(--satus-theme-hover); -} - - -/*--------------------------------------------------------------- -# RAISED ----------------------------------------------------------------*/ - -.satus-button--raised -{ - color: var(--satus-theme-on-primary); -} - -.satus-button--raised::before -{ - background: var(--satus-theme-primary); - box-shadow: 0 2px 3px rgba(0, 0, 0, .15); -} - -.satus-button--raised:hover::before -{ - background: var(--satus-theme-primary); -} - -.satus-button--raised:not([disabled]):active::before -{ - box-shadow: 0 1px 2px rgba(0, 0, 0, .15); -} - - -/*--------------------------------------------------------------- -# UNELEVATED ----------------------------------------------------------------*/ - -.satus-button--unelevated -{ - color: var(--satus-theme-on-primary); -} - -.satus-button--unelevated::before -{ - background: var(--satus-theme-primary); -} - -.satus-button--unelevated:hover::before -{ - background: var(--satus-theme-primary); -} - - -/*--------------------------------------------------------------- -# BEFORE ----------------------------------------------------------------*/ - -.satus-button > * + .satus-button__label -{ - margin: 0 0 0 8px; -} - - -/*--------------------------------------------------------------- -# AFTER ----------------------------------------------------------------*/ - -.satus-button > .satus-button__label + * -{ - margin: 0 0 0 8px; -} - - -/*--------------------------------------------------------------- -# SVG ----------------------------------------------------------------*/ - -.satus-button svg -{ - width: 24px; - height: 24px; -} - - -/*--------------------------------------------------------------- -# ATTRIBUTES ----------------------------------------------------------------*/ - -.satus-button[disabled] -{ - opacity: .7; -} - -.satus-button[disabled]:hover -{ - cursor: default; -} - -.satus-button[disabled]:active::before -{ - transform: none; -} - -/*--------------------------------------------------------------- ->>> COLOR PICKER ----------------------------------------------------------------*/ - -.satus-color-picker -{ - display: flex; - flex-direction: column; - - justify-content: center; - align-items: center; -} - -.satus-color-picker__wheel -{ - position: relative; - margin: 16px 0 0; - border-radius: 50%; - overflow: hidden; - width: 256px; - height: 256px; -} - -.satus-color-picker__wheel canvas -{ - border-radius: 50%; -} - -.satus-color-picker__shader -{ - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - pointer-events: none; - background: #000; - opacity: 0; -} - -.satus-color-picker__cursor -{ - position: absolute; - top: 128px; - left: 128px; - - width: 12px; - height: 12px; - - transform: translate(-50%, -50%); - pointer-events: none; - - border: 2px solid rgba(0,0,0,.4); - border-radius: 50%; -} - -.satus-color-picker__cursor.invert -{ - border-color: rgba(255,255,255,.4) -} - -.satus-color-picker__slider -{ - width: calc(100% - 32px); - height: 16px; - border: 1px solid rgba(0,0,0,.2); - border-radius: 4px; - box-sizing: border-box; - margin: 24px 16px 16px; - position: relative; -} - -.satus-color-picker__slider::after -{ - content: ''; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: linear-gradient(90deg, transparent, #000); -} - -.satus-color-picker__thumb -{ - position: absolute; - left: 0px; - top: 10px; - width: 12px; - height: 10px; - background: #fff; - box-shadow: 0 1px 1px rgba(0,0,0,.2); - z-index: 1; - transform: translateX(-50%); -} - -.satus-color-picker__thumb::before -{ - content: ''; - position: absolute; - width: 0; - height: 0; - left: 0; - top: -6px; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - pointer-events: none; -} - -.satus-color-picker__value -{ - width: 28px; - height: 28px; - margin: 0 8px 0 0; - - border: 2px solid #dcdcdc; - border-radius: 4px; -} - -/*--------------------------------------------------------------- ->>> DIALOG ------------------------------------------------------------------ -1.0 General -2.0 Other -3.0 Actions ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -1.0 GENERAL ----------------------------------------------------------------*/ - -.satus-dialog -{ - position: absolute; - z-index: 100; - top: 0; - left: 0; - - display: flex; - - width: 100vw; - height: 100vh; - - justify-content: center; - align-items: center; -} - -.satus-dialog__scrim -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - animation: fadeIn 150ms linear forwards; - - opacity: 0; - background: var(--satus-theme-dialog-backdrop); - - backdrop-filter: blur(8px); -} - -.satus-dialog__surface -{ - font-size: 14px; - - display: flex; - flex-direction: column; - - width: 95%; - min-width: 240px; - max-width: 560px; - max-height: 80%; - padding: 8px 0; - - transform: scale(.8); - animation: zoomIn 150ms linear forwards; - animation-delay: 20ms; - - opacity: 0; - color: var(--satus-theme-dialog-text); - border-radius: 6px; - background-color: var(--satus-theme-dialog); - box-shadow: var(--satus-theme-dialog-shadow); -} - -.satus-dialog--closing .satus-dialog__scrim -{ - animation: fadeOut 70ms linear forwards; -} - -.satus-dialog--closing .satus-dialog__surface -{ - animation: zoomOut 70ms linear forwards; -} - - -/*--------------------------------------------------------------- -2.0 OTHER ----------------------------------------------------------------*/ - -.satus-dialog .satus-button -{ - justify-content: flex-start; -} - -.satus-dialog__message -{ - width: calc(100% - 32px); - margin: 0 16px; -} - - -/*--------------------------------------------------------------- -3.0 ACTIONS ----------------------------------------------------------------*/ - -.satus-section--actions -{ - width: calc(100% - 24px); - margin: 0 20px; - - justify-content: flex-end; -} - -.satus-section--actions .satus-button -{ - font-weight: 600; - - color: var(--satus-theme-primary); -} - -/*--------------------------------------------------------------- ->>> HEADER ------------------------------------------------------------------ -1.0 Basic -2.0 Buttons - 2.1 Back -3.0 Title -4.0 Vertical menu ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -1.0 BASIC ----------------------------------------------------------------*/ - -.satus-header -{ - position: relative; - z-index: 1; - - display: flex; - - box-sizing: border-box; - width: 100%; - min-height: 56px; - padding: 0 8px; - - color: var(--satus-theme-header-text); - background-color: var(--satus-theme-header); - box-shadow: 0 0 3px rgba(0,0,0,.1); - - fill: var(--satus-theme-header-text); -} - - -/*--------------------------------------------------------------- -2.0 BUTTONS ----------------------------------------------------------------*/ - -.satus-header .satus-button -{ - width: 36px; - height: 36px; - padding: 6px; - - border-radius: 50%; -} - - -/*--------------------------------------------------------------- -3.0 BACK BUTTON ----------------------------------------------------------------*/ - -.satus-button--back -{ - position: absolute; -} - -body[data-appearance='home'] .satus-button--back -{ - visibility: hidden; -} - - -/*--------------------------------------------------------------- -3.0 TITLE ----------------------------------------------------------------*/ - -.satus-header .satus-text--title -{ - font-size: 15px; - font-weight: 400; - - position: absolute; - left: 56px; - - overflow: hidden; - - max-width: calc(100% - 148px); - - white-space: nowrap; - text-overflow: ellipsis; -} - -body[data-appearance='home'] .satus-text--title -{ - left: 14px; -} - - -/*--------------------------------------------------------------- -4.0 VERTICAL MENU ----------------------------------------------------------------*/ - -.satus-dialog--vertical-menu .satus-dialog__surface -{ - position: absolute; - top: 8px; - right: 8px; - left: auto; - - min-width: 180px; - max-width: 220px; - - transform-origin: right top; -} - -.satus-dialog--vertical-menu .satus-button, -.satus-dialog--vertical-menu .satus-folder, -.satus-dialog--vertical-menu .satus-switch -{ - width: 100%; - height: 36px; - padding: 0 16px; - - text-align: left; -} - -.satus-dialog--vertical-menu svg -{ - width: 20px !important; - height: 20px !important; - - opacity: .75; -} - -/*--------------------------------------------------------------- ->>> LIST ----------------------------------------------------------------*/ - -.satus-list--compact, -.satus-list--compact li -{ - margin: 0; - padding: 0; - - list-style: none; -} - -/*--------------------------------------------------------------- ->>> MAIN ------------------------------------------------------------------ -# BASIC ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# BASIC ----------------------------------------------------------------*/ - -.satus-main -{ - position: relative; - - overflow: hidden; - - width: 100%; - height: 100%; - - color: var(--satus-theme-main-text); - background-color: var(--satus-theme-main); - - flex: 1; -} - -.satus-main__container -{ - position: absolute; - top: 0; - left: 0; - - overflow: auto; - - box-sizing: border-box; - width: 100%; - height: 100%; - - transition: 250ms; - - background-color: var(--satus-theme-main); -} - -/*--------------------------------------------------------------- ->>> RADIO GROUP ----------------------------------------------------------------*/ - -.satus-button--radio -{ - flex-direction: column; - - height: auto; - padding: 16px 8px; -} - -.satus-button--radio .satus-button__label -{ - margin: 0; -} - -.satus-scrollbar -{ - position: relative; - - overflow: hidden; - - width: 100%; - height: 100%; -} - -.satus-scrollbar__wrapper -{ - overflow-y: scroll; - - width: 150%; - height: 100%; -} - -.satus-scrollbar__content -{ - display: inline-block; -} - -.satus-scrollbar__thumb -{ - position: absolute; - z-index: 999; - top: 0; - right: 0; - - min-height: 32px; - padding: 0 2px; - - transition: background-color 200ms, opacity 300ms; - - opacity: 0; -} - -.satus-scrollbar__thumb::after -{ - display: block; - - width: 3px; - height: 100%; - - content: ''; - - background-color: var(--satus-theme-scrollbar); -} - -.satus-scrollbar__thumb:hover::after -{ - width: 8px; - - background-color: var(--satus-theme-scrollbar-focus); -} - -.satus-scrollbar.active .satus-scrollbar__thumb, -.satus-scrollbar__thumb:hover -{ - transition: background-color 200ms, opacity 100ms; - - opacity: 1; -} - -/*--------------------------------------------------------------- ->>> SECTION ------------------------------------------------------------------ -# Basic -# Variants - # Card ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# BASIC ----------------------------------------------------------------*/ - -.satus-section -{ - display: inline-flex; - - box-sizing: border-box; - - align-items: center; - flex: 1; -} - - -/*--------------------------------------------------------------- -# VARIANTS ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# CARD ----------------------------------------------------------------*/ - -.satus-section--card -{ - display: block; - - width: calc(100% - 16px); - max-width: 900px; - margin: 8px auto; - padding: 8px 0; - - border: 1px solid rgba(0,0,0,.1); - border-radius: 8px; - background-color: var(--satus-theme-section); -} - -/*--------------------------------------------------------------- ->>> SELECT ----------------------------------------------------------------*/ - -.satus-select > svg -{ - width: 20px; -} - -.satus-select > svg + .satus-select__label -{ - margin: 0 0 0 8px; -} - -.satus-select__value -{ - font-size: 12px; - - text-align: right; - - opacity: .7; - - flex: 1; -} - - -.satus-dialog--select-component .satus-dialog__surface -{ - position: absolute; - - max-width: unset; - - transform: unset; - animation: unset; - - opacity: 1; -} - -.satus-dialog--select-component .satus-section -{ - top: 48px; - - flex-direction: column; - - transform: translateY(-16px); - animation: listIn 50ms linear forwards; - animation-delay: 20ms; - - opacity: .5; -} - -.satus-dialog--select-component .satus-button -{ - width: 100%; - height: 48px; - padding: 0 16px; -} - -@keyframes listIn -{ - from - { - transform: translateY(-16px); - - opacity: .5; - } - - to - { - transform: translateY(0); - - opacity: 1; - } -} - -.satus-section--align-end -{ - justify-content: flex-end; -} - - -.satus-button--select -{ - justify-content: space-between; -} - -/*--------------------------------------------------------------- ->>> SHORTCUT ------------------------------------------------------------------ -# Canvas -# Popup ----------------------------------------------------------------*/ - -.satus-shortcut -{ - position: relative; - - display: flex; - overflow: hidden; - - box-sizing: border-box; - width: 100%; - height: 48px; - min-height: 48px; - padding: 0 16px; - - cursor: pointer; - - justify-content: space-between; - align-items: center; -} - -.satus-shortcut:hover -{ - background-color: var(--satus-theme-ripple); -} - -.satus-shortcut .satus-shortcut__label -{ - flex: 1; -} - -.satus-shortcut .satus-shortcut__value -{ - flex: 0; -} - -.satus-shortcut .satus-shortcut__label + .satus-shortcut__value -{ - justify-content: flex-end; -} - - -/*--------------------------------------------------------------- -# CANVAS ----------------------------------------------------------------*/ - -.satus-shortcut__value -{ - display: flex; - - box-sizing: border-box; - width: 100%; - height: 48px; - - align-items: center; -} - - -.satus-shortcut__key -{ - font-size: 12px; - line-height: 12px; - - display: flex; - - box-sizing: border-box; - min-width: 28px; - height: 28px; - padding: 4px 8px; - - white-space: nowrap; - - border: 1px solid rgba(0,0,0,.1); - border-radius: 4px; - background: var(--satus-theme-shortcut); - box-shadow: 0 1px 1px rgba(0,0,0,.1), inset 0 -1px 0 rgba(0,0,0,.1); - - align-items: center; - justify-content: center; -} - -.satus-shortcut__plus -{ - position: relative; - - width: 10px; - height: 10px; - margin: 8px 6px; -} - -.satus-shortcut__plus::before -{ - position: absolute; - top: 0; - left: 4px; - - width: 2px; - height: 10px; - - content: ''; - - background-color: #ccc; -} - -.satus-shortcut__plus::after -{ - position: absolute; - top: 4px; - left: 0; - - width: 10px; - height: 2px; - - content: ''; - - background-color: #ccc; -} - -.satus-shortcut__mouse -{ - position: relative; - - display: flex; - - width: 24px; - height: 32px; - - border-radius: 50%; - border-top-left-radius: 12px; - border-top-right-radius: 12px; - background: #fff; - box-shadow: 0 1px 3px rgba(0,0,0,.15), inset 0 -3px 0 rgba(0,0,0,.1); -} - -.satus-shortcut__mouse > div -{ - position: absolute; - top: 0; - left: 11px; - - width: 2px; - height: 10px; - - border-radius: 2px; - background: #ccc; -} - -.satus-shortcut__mouse::before -{ - position: absolute; - top: 0; - left: 18px; - - width: 2px; - height: 14px; - - content: ''; - - background: #f96754; -} - -.satus-shortcut__mouse.false::after -{ - position: absolute; - top: -5px; - left: 15px; - - width: 0; - height: 0; - - content: ''; - - border-right: 4px solid transparent; - border-bottom: 6px solid #f96754; - border-left: 4px solid transparent; -} - -.satus-shortcut__mouse.true::after -{ - position: absolute; - top: 13px; - left: 15px; - - width: 0; - height: 0; - - content: ''; - - border-top: 6px solid #f96754; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} - -.satus-shortcut__mouse.click::before -{ - position: absolute; - top: 0; - left: -1px; - - width: 10px; - height: 10px; - - content: ''; - - border-radius: 50%; - background: #f96754; -} - -.satus-shortcut__mouse.context::before -{ - position: absolute; - top: 0; - left: 15px; - - width: 10px; - height: 10px; - - content: ''; - - border-radius: 50%; - background: #f96754; -} - - -/*--------------------------------------------------------------- -# POPUP ----------------------------------------------------------------*/ - -.satus-shortcut-dialog-label -{ - font-size: 16px; - font-weight: 500; - - box-sizing: border-box; - width: 100%; - margin: 4px 0 10px; - padding: 0 16px; -} - -.satus-shortcut__canvas -{ - display: flex; - - box-sizing: border-box; - width: 100%; - height: 68px; - padding: 16px; - - background: #dedede; - - align-items: center; -} - -.satus-section_shortcut -{ - width: 100%; - margin: 8px 0 0; - - justify-content: flex-end; -} - -.satus-button_shortcut -{ - font-weight: 500; - - overflow: hidden; - - height: 28px; - min-height: 28px; - margin-right: 2px; - padding: 4px 8px; - - text-transform: uppercase; - - color: #f96754; - border-radius: 4px; -} - -/*--------------------------------------------------------------- ->>> SLIDER ------------------------------------------------------------------ -# Basic - # Label - # Track ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# BASIC ----------------------------------------------------------------*/ - -.satus-slider -{ - position: relative; - - display: flex; - flex-direction: column; - - box-sizing: border-box; - width: 100%; - min-height: 64px; - padding: 0 16px; - - -webkit-user-select: none; - -moz-user-select: -moz-none; - user-select: none; - - outline: none; - - align-items: flex-start; - justify-content: center; -} - -.satus-slider::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - - opacity: 0; - background-color: var(--satus-theme-button); -} - -.satus-slider:hover::before -{ - opacity: 1; -} - - -/*--------------------------------------------------------------- -# LABEL ----------------------------------------------------------------*/ - -.satus-slider__label -{ - cursor: default; -} - - -.satus-slider__range -{ - position: absolute; - z-index: 1; - top: 0; - left: 0; - - box-sizing: border-box; - width: 100%; - height: 100%; - margin: 0; - padding: 0; - - opacity: 0; -} - - -/*--------------------------------------------------------------- -# TRACK ----------------------------------------------------------------*/ - -.satus-slider__container -{ - position: relative; - - width: 100%; - height: 12px; - margin: 8px 0 0; -} - -.satus-slider__track-container -{ - position: absolute; - top: calc(50% - 1px); - - width: 100%; - height: 2px; - - pointer-events: none; -} - -.satus-slider__track-container::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 2px; - - content: ''; - - opacity: .26; - background-color: var(--satus-theme-primary); -} - -.satus-slider__track -{ - position: relative; - - width: 0; - height: 100%; - - background-color: var(--satus-theme-primary); - - will-change: width; -} - -.satus-slider:not(.satus-slider--dragging) .satus-slider__track -{ - transition: width 100ms ease-out; -} - -.satus-slider__thumb -{ - position: absolute; - top: -5px; - right: -12px; - - width: 12px; - height: 12px; - - border-radius: 50%; - background-color: var(--satus-theme-primary); - box-shadow: 0 1px 5px rgba(0, 0, 0, .15); -} - -.satus-slider .satus-slider__thumb::before -{ - font-size: 13px; - - position: absolute; - top: -34px; - left: 50%; - - visibility: hidden; - - box-sizing: border-box; - min-width: 28px; - padding: 4px 4px; - - content: attr(data-value); - transform: translateX(-50%); - text-align: center; - pointer-events: none; - - color: #fff; - border-radius: 4px; - background: var(--satus-theme-tooltip); -} - -.satus-slider:hover .satus-slider__thumb::before, -.satus-slider__range:focus .satus-slider__container .satus-slider__thumb::before -{ - visibility: visible; -} - -.satus-slider__ring -{ - position: absolute; - top: -11px; - right: -18px; - - width: 24px; - height: 24px; - - transition: 100ms; - transform: scale(0); - - opacity: 0; - border-radius: 50%; - background-color: var(--satus-theme-primary); -} - -.satus-slider__range:focus + .satus-slider__container .satus-slider__ring -{ - transform: scale(1); - - opacity: .25; -} - -/*--------------------------------------------------------------- ->>> SWITCH ----------------------------------------------------------------*/ - -.satus-switch -{ - position: relative; - - display: flex; - - box-sizing: border-box; - width: 100%; - height: 48px; - padding: 0 16px; - - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: -moz-none; - user-select: none; - - background-color: transparent; - - align-items: center; - justify-content: flex-start; -} - -.satus-switch:hover -{ - background-color: var(--satus-theme-hover); -} - -.satus-switch__input -{ - position: absolute; - z-index: 1; - top: 0; - left: 0; - - width: 100%; - height: 100%; - margin: 0; - padding: 0; - - opacity: 0; - outline: none; - - -webkit-appearance: none; -} - - -/* LABEL */ - -.satus-switch > * + .satus-switch__label { - margin: 0 0 0 8px; -} - -.satus-switch__label -{ - padding: 0 16px 0 0; -} - - -/* TRACK*/ - -.satus-switch__value -{ - display: inline-flex; - justify-content: flex-end; - align-items: center; - flex: 1; -} - -.satus-switch__track -{ - position: relative; - - width: 32px; - min-width: 32px; - height: 18px; - - border-radius: 18px; - background: #bdbdbd; -} - -.satus-switch__track::before -{ - position: absolute; - top: -7px; - left: -7px; - - width: 32px; - height: 32px; - - content: ''; - transition: left .1s cubic-bezier(.4, 0, .2, 1), transform 200ms, background-color 200ms; - transform: scale(0); - - opacity: 0; - border-radius: 50%; - background-color: #000; - - will-change: left, transform, background-color; -} - -.satus-switch__input:checked + .satus-switch__value .satus-switch__track::before -{ - left: 8px; - - background-color: var(--satus-theme-primary, #54d2a3); -} - -.satus-switch__input:focus + .satus-switch__value .satus-switch__track::before -{ - transform: scale(1); - - opacity: .08; -} - -.satus-switch__input:checked:focus + .satus-switch__value .satus-switch__track::before -{ - opacity: .25; -} - -.satus-switch__track::after -{ - position: absolute; - - width: 14px; - height: 14px; - - content: ''; - transition: transform .1s cubic-bezier(.4, 0, .2, 1); - transform: translate(2px, 2px); - - border-radius: 50%; - background-color: #fff; - - will-change: transform; -} - -.satus-switch__input:checked + .satus-switch__value .satus-switch__track -{ - background: var(--satus-theme-primary, #54d2a3); -} - -.satus-switch__input:checked + .satus-switch__value .satus-switch__track::after -{ - transform: translate(16px, 2px); -} - -/*--------------------------------------------------------------- ->>> TABLE ------------------------------------------------------------------ -# Head - # Sort -# Body - # Row - # Cell -# Paging ----------------------------------------------------------------*/ - -.satus-table -{ - font-size: 14px; - - position: relative; - - overflow: hidden; - - box-sizing: border-box; - - border: 1px solid #ececec; - border-radius: 6px; -} - - -/*--------------------------------------------------------------- -# HEAD ----------------------------------------------------------------*/ - -.satus-table__head -{ - position: relative; - z-index: 1; - - display: flex; - - box-sizing: border-box; - width: 100%; - height: 44px; - padding: 0 8px; - - background: #fff; - box-shadow: 0 2px 4px rgba(0, 0, 0, .1); -} - -.satus-table__head > div -{ - font-weight: 600; - - display: inline-flex; - - box-sizing: border-box; - padding: 0 8px 0 0; - - opacity: .7; - - flex-shrink: 0; - align-items: center; -} - -.satus-table__head > div:last-child -{ - padding: 0; -} - -.satus-table__head > div:hover -{ - cursor: pointer; - - opacity: 1; -} - -.satus-table__head > div[data-sorting=false]:hover -{ - cursor: default; -} - -.satus-table__head > div > span -{ - overflow: hidden; - - white-space: nowrap; - text-overflow: ellipsis; - - flex: 1; -} - - -/*--------------------------------------------------------------- -# SORT ----------------------------------------------------------------*/ - -.satus-table__head > div[data-sorting=asc]::after -{ - content: ''; - - border-right: 4px solid transparent; - border-bottom: 5px solid currentColor; - border-left: 4px solid transparent; -} - -.satus-table__head > div[data-sorting=desc]::after -{ - content: ''; - - border-top: 5px solid currentColor; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} - - -/*--------------------------------------------------------------- -# BODY ----------------------------------------------------------------*/ - -.satus-table__body -{ - overflow: hidden; - - width: 100%; - height: calc(100% - 39px); - - background: #fff; - - flex: 1; -} - - -/*--------------------------------------------------------------- -# ROW ----------------------------------------------------------------*/ - -.satus-table__row -{ - padding: 0 8px; - - border-bottom: 1px solid rgba(0, 0, 0, .1); -} - -.satus-table__row:nth-child(2n) -{ - background: rgba(0,0,0,.03); -} - - -/*--------------------------------------------------------------- -# CELL ----------------------------------------------------------------*/ - -.satus-table__cell -{ - display: inline-block; - overflow: hidden; - - box-sizing: border-box; - padding: 8px 8px 8px 0; - - white-space: nowrap; - text-overflow: ellipsis; - word-wrap: break-word; - -webkit-hyphens: auto; - -moz-hyphens: auto; - hyphens: auto; - - overflow-wrap: break-word; -} - -.satus-table__cell:last-child -{ - padding-right: 0; -} - -.satus-table__cell input -{ - box-sizing: border-box; - width: 100%; - height: calc(100% - 10px); - margin: 5px 0; - padding: 1px 2px; - - border: 1px solid #d2d2d2; - border-radius: 4px; - outline: none; -} - - -/*--------------------------------------------------------------- -# PAGING ----------------------------------------------------------------*/ - -.satus-table__paging > button -{ - min-width: 32px; - height: 32px; - padding: 0 8px; - - cursor: pointer; - - color: var(--satus-theme-on-surface, #555); - border: none; - background: transparent; -} - -.satus-table__paging > button.active -{ - color: #2979ff; -} - -/*--------------------------------------------------------------- ->>> TABS ----------------------------------------------------------------*/ - -.satus-tabs__bar -{ - position: relative; - - display: flex; - overflow: hidden; - - box-sizing: border-box; - width: calc(100% - 16px); - margin: 16px 8px 4px; - - border: 1px solid var(--satus-theme-tabs-border); - border-radius: 18px; - background-color: var(--satus-theme-tabs-background); -} - -.satus-tabs__bar > div:not(.satus-tabs__bar--select) -{ - z-index: 1; - - display: flex; - - height: 32px; - - cursor: pointer; - transition: opacity .25s; - - opacity: .5; - - flex: 1; - align-items: center; - justify-content: center; -} - -.satus-tabs__bar > div.active -{ - opacity: 1; -} - -.satus-tabs__bar--select -{ - position: absolute; - z-index: 0; - left: 0; - - width: 50%; - height: 32px; - - transition: left .25s; - - border-radius: 18px; - background: var(--satus-theme-header); - box-shadow: 1px 0 4px rgba(0,0,0,.075); -} - -.satus-tabs__main -{ - position: relative -} - -.satus-tabs__main > div -{ - display: inline-block; - width: 100%; - min-height: 100%; -} - -.satus-tabs__main > .old -{ - position: absolute; - left: 0; - top: 0; -} - -.satus-tabs__tab.satus-animation--fade-out-left:not(.old) -{ - z-index: 1 -} - -/*--------------------------------------------------------------- ->>> TEXT ------------------------------------------------------------------ -# Basic -# Variants - # Section label ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# BASIC ----------------------------------------------------------------*/ - -.satus-text -{ - display: block; -} - - -/*--------------------------------------------------------------- -# VARIANTS ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# SECTION LABEL ----------------------------------------------------------------*/ - -.satus-text--section-label -{ - font-size: 17px; - - display: block; - - width: calc(100% - 16px); - max-width: 900px; - margin: 16px auto 8px; -} - -/*--------------------------------------------------------------- ->>> TEXT ----------------------------------------------------------------*/ - -.satus-text-field -{ - font: inherit; - - box-sizing: border-box; - width: 100%; - margin: 0; - padding: 0; - padding: 0 8px; - - color: inherit; - border: none; - outline: none; - background: unset; -} diff --git a/unstable/satus.js b/unstable/satus.js index af0eb3bb5..6860b76c6 100644 --- a/unstable/satus.js +++ b/unstable/satus.js @@ -1,2963 +1,61 @@ - -/*--------------------------------------------------------------- ->>> TABLE OF CONTENTS: ------------------------------------------------------------------ -# Events -# Render -# Camelize -# Animation duration ----------------------------------------------------------------*/ -var satus = {}; - - -/*--------------------------------------------------------------- -# EVENTS ----------------------------------------------------------------*/ - -satus.events = {}; - -satus.on = function(event, handler) { - if (!this.isset(this.events[event])) { - this.events[event] = []; - } - - this.events[event].push(handler); -}; - - -/*--------------------------------------------------------------- -# COMPONENTS ----------------------------------------------------------------*/ - -satus.components = {}; - - -/*--------------------------------------------------------------- -# ISSET ----------------------------------------------------------------*/ - -satus.isset = function(variable) { - if (typeof variable === 'undefined' || variable === null) { - return false; - } - - return true; -}; - - -/*--------------------------------------------------------------- -# CAMELIZE ----------------------------------------------------------------*/ - -satus.camelize = function(string) { - return string.replace(/-[a-z]/g, function(match) { - return match[1].toUpperCase(); - }); -}; - - -/*--------------------------------------------------------------- -# ANIMATION DURATION ----------------------------------------------------------------*/ - -satus.getAnimationDuration = function(element) { - return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; -}; -/*--------------------------------------------------------------- ->>> BUTTON ----------------------------------------------------------------*/ - -satus.components.button = function(element) { - var button = document.createElement('button'), - is_folder_type = false; - - if (satus.isset(element.label)) { - var label = document.createElement('span'); - - label.className = 'satus-button__label'; - label.innerText = satus.locale.getMessage(element.label); - - button.appendChild(label); - } - - for (var key in element) { - if (element[key] && element[key].type && key !== 'onclick') { - is_folder_type = true; - } - } - - if (is_folder_type === true) { - button.addEventListener('click', function() { - var parent = document.querySelector(button.skelet.parent) || document.querySelector('.satus-main'); - - if (!button.skelet.parent || !parent.classList.contains('satus-main')) { - while (!parent.classList.contains('satus-main')) { - parent = parent.parentNode; - } - } - - parent.open(this.skelet, this.skelet.onopen); - }); - } - - return button; -}; -/*--------------------------------------------------------------- ->>> COLOR PICKER ------------------------------------------------------------------ -# Wheel -# Slider ----------------------------------------------------------------*/ - -satus.components.colorPicker = function(element) { - var component = satus.render({ - type: 'button', - label: element.label, - onclick: { - type: 'dialog', - onrender: function() { - var component = document.createElement('div'); - - component.className = 'satus-color-picker'; - - component.data = satus.storage.get(element.storage_key) || { - color: [255, 255, 255, 1], - x: 128, - y: 128 - }; - - component.update = function() { - var rgba = this.data.color; - - this.slider.style.backgroundColor = 'rgb(' + rgba[0] + ',' + rgba[1] + ',' + rgba[2] + ')'; - }; - - - /*-------------------------------------------------- - # WHEEL - --------------------------------------------------*/ - - var wheel = document.createElement('div'), - cvs = document.createElement('canvas'), - ctx = cvs.getContext('2d'), - cursor = document.createElement('div'), - shader = document.createElement('div'); - - component.canvas = cvs; - component.wheel_shader = shader; - - wheel.className = 'satus-color-picker__wheel'; - cursor.className = 'satus-color-picker__cursor'; - shader.className = 'satus-color-picker__shader'; - - cvs.width = 256; - cvs.height = 256; - - var rgb = [255, 0, 0]; - - for (var i = 0, j = 0; i < 360; i++) { - var gradient = ctx.createRadialGradient( - 128, - 128, - 0, - 128, - 128, - 128 - ), - k = (j + 3 - 1) % 3; - - if (rgb[j] < 255) { - rgb[j] = Math.min(rgb[j] + 4.322, 255); - } else if (rgb[k] > 0) { - rgb[k] = Math.max(rgb[k] - 4.322, 0); - } else if (rgb[j] >= 255) { - rgb[j] = 255; - - j = (j + 1) % 3 - } - - gradient.addColorStop(0, '#fff'); - gradient.addColorStop( - 1, - 'rgb(' + - rgb[0] + ',' + - rgb[1] + ',' + - rgb[2] + - ')' - ); - ctx.fillStyle = gradient; - ctx.beginPath(); - ctx.moveTo(128, 128); - ctx.arc( - 128, - 128, - 128, - satus.math.degToRad(i), - satus.math.degToRad(360) - ); - ctx.closePath(); - ctx.fill(); - } - - cursor.style.left = component.data.x + 'px'; - cursor.style.top = component.data.y + 'px'; - - cvs.cursor = cursor; - cvs.ctx = cvs.getContext('2d'); - cvs.move = function(event) { - //console.log(event); - - var component = this.parentNode.parentNode, - x = event.offsetX, - y = event.offsetY, - rgba = this.ctx.getImageData(x, y, 1, 1).data; - - console.log(component, component.data); - - this.cursor.style.left = x + 'px'; - this.cursor.style.top = y + 'px'; - - component.data.x = x; - component.data.y = y; - component.data.color = [ - rgba[0], - rgba[1], - rgba[2] - ]; - - component.update(); - }; - - function start(event) { - var self = this; - - function end() { - self.removeEventListener('mousemove', self.move); - window.removeEventListener('mouseup', end); - self.removeEventListener('touchmove', self.move); - window.removeEventListener('touchend', end); - } - - this.addEventListener('mousemove', this.move); - window.addEventListener('mouseup', end); - this.addEventListener('touchmove', this.move); - window.addEventListener('touchend', end); - - this.move(event); - } - - cvs.addEventListener('mousedown', start); - cvs.addEventListener('touchstart', start); - - wheel.appendChild(cvs); - wheel.appendChild(shader); - wheel.appendChild(cursor); - component.appendChild(wheel); - - - /*-------------------------------------------------- - # SLIDER - --------------------------------------------------*/ - - var slider = document.createElement('div'), - thumb = document.createElement('div'); - - component.slider = slider; - - slider.className = 'satus-color-picker__slider'; - thumb.className = 'satus-color-picker__thumb'; - - slider.thumb = thumb; - - function startSlider(event) { - var self = this; - - event.preventDefault(); - - function move(event) { - event.preventDefault(); - - var x = event.clientX - self.getBoundingClientRect().left - 1, - maxWidth = self.offsetWidth - 2, - value = (x / (maxWidth / 100)) / 100; - - if (x < 1) { - x = 1; - } else if (x > maxWidth) { - x = maxWidth; - } - - self.parentNode.wheel_shader.style.opacity = value; - - if (value > .5) { - self.parentNode.canvas.cursor.classList.add('invert'); - } else { - self.parentNode.canvas.cursor.classList.remove('invert'); - } - - self.thumb.style.left = x + 'px'; - } - - function end() { - window.removeEventListener('mousemove', move); - window.removeEventListener('mouseup', end); - window.removeEventListener('touchmove', move); - window.removeEventListener('touchend', end); - } - - window.addEventListener('mousemove', move); - window.addEventListener('mouseup', end); - window.addEventListener('touchmove', move); - window.addEventListener('touchend', end); - - move(event); - } - - slider.addEventListener('mousedown', startSlider); - slider.addEventListener('touchstart', startSlider); - - slider.appendChild(thumb); - component.appendChild(slider); - - - /*-------------------------------------------------- - # ACTIONS - --------------------------------------------------*/ - - var section = document.createElement('div'), - cancel = document.createElement('button'), - save = document.createElement('button'); - - section.className = 'satus-section satus-section--actions'; - cancel.className = 'satus-button'; - save.className = 'satus-button'; - - cancel.innerText = satus.locale.getMessage('cancel'); - save.innerText = satus.locale.getMessage('save'); - - cancel.onclick = function() { - var component = this.parentNode.parentNode; - - - }; - - save.onclick = function() { - var component = this.parentNode.parentNode; - - satus.storage.set(component.storage_key, component.data); - }; - - section.appendChild(cancel); - section.appendChild(save); - component.appendChild(section); - - component.update(); - - this.surface.querySelector('.satus-scrollbar__content').appendChild(component); - } - } - }), - value = document.createElement('span'); - - component.data = satus.storage.get(element.storage_key) || { - color: [255, 255, 255], - x: 128, - y: 128 - }; - - component.className = 'satus-button ' + (element.variant ? 'satus-button--' + element.variant : '') + ' satus-button--color-picker'; - - value.className = 'satus-button__value'; - value.style.background = 'rgb(' + component.data[0] + ',' + component.data[1] + ',' + component.data[2] + ')'; - - component.appendChild(value); - - return component; -}; -/*--------------------------------------------------------------- ->>> DIALOG ----------------------------------------------------------------*/ - -satus.components.dialog = function(element) { - var component = document.createElement('div'), - component_scrim = document.createElement('div'), - component_surface = document.createElement('div'), - component_scrollbar = satus.components.scrollbar(component_surface), - options = element.options || {}; - - component_scrim.className = 'satus-dialog__scrim'; - component_surface.className = 'satus-dialog__surface'; - - for (var key in element) { - satus.render(element[key], component_scrollbar); - } - - function close() { - window.removeEventListener('keydown', keydown); - - component.classList.add('satus-dialog--closing'); - - if (typeof element.onclose === 'function') { - element.onclose(); - } - - setTimeout(function() { - component.remove(); - }, satus.getAnimationDuration(component_surface)); - } - - function keydown(event) { - if (event.keyCode === 27) { - if (element.clickclose === false) { - return false; - } - - if (typeof element.onclickclose === 'function') { - element.onclickclose(); - } - - event.preventDefault(); - - close(); - } else if (event.keyCode === 9) { - var elements = component_surface.querySelectorAll('button, input'), - focused = false; - - event.preventDefault(); - - for (var i = 0, l = elements.length; i < l; i++) { - if (elements[i] === document.activeElement && elements[i + 1]) { - elements[i + 1].focus(); - - focused = true; - - i = l; - } - } - - if (focused === false) { - elements[0].focus(); - } - } - } - - component_scrim.addEventListener('click', function() { - if (element.clickclose === false) { - return false; - } - - if (typeof element.onclickclose === 'function') { - element.onclickclose(); - } - - close(); - }); - window.addEventListener('keydown', function(event) { - keydown(event); - }); - - component.appendChild(component_scrim); - component.appendChild(component_surface); - - component.close = close; - component.scrim = component_scrim; - component.surface = component_surface; - - // OPTIONS - - if (options.left) { - component_surface.style.left = options.left + 'px'; - } - - if (options.top) { - component_surface.style.top = options.top + 'px'; - } - - if (options.width) { - component_surface.style.width = options.width + 'px'; - } - - if (options.height) { - component_surface.style.height = options.height + 'px'; - } - - // END OPTIONS - - return component; -}; - -/*--------------------------------------------------------------- ->>> DIV ----------------------------------------------------------------*/ - -satus.components.div = function(object) { - var component = document.createElement('div'); - - for (var key in object) { - satus.render(object[key], component); - } - - return component; -}; - -/*-------------------------------------------------------------- ->>> HEADER ---------------------------------------------------------------*/ - -satus.components.header = function(object) { - var component = document.createElement('header'); - - for (var key in object) { - satus.render(object[key], component); - } - - return component; -}; -/*--------------------------------------------------------------- ->>> LIST ----------------------------------------------------------------*/ - -satus.components.list = function(object) { - var ul = document.createElement('ul'); - - if (object.compact === true) { - ul.classList.add('satus-list'); - ul.classList.add('satus-list--compact'); - } - - for (var key in object) { - if (satus.isset(object[key].type)) { - var li = document.createElement('li'); - - if (object.sortable === true) { - function mousedown(event) { - if (event.button === 0) { - var self = this, - dragging = false, - clone = false, - current_index = Array.from(self.parentNode.children).indexOf(self), - bounding = this.getBoundingClientRect(), - first_x = event.clientX, - first_y = event.clientY, - offset_x = event.clientX - bounding.left, - offset_y = event.clientY - bounding.top; - - function mousemove(event) { - if (Math.abs(first_y - event.clientY) <= 5) { - return false; - } - - if (dragging === false) { - clone = satus.clone(self); - - clone.style.position = 'fixed'; - clone.style.pointerEvents = 'none'; - clone.style.backgroundColor = '#fff'; - self.style.visibility = 'hidden'; - - document.body.appendChild(clone); - - dragging = true; - } - - var x = bounding.left, //event.clientX - offset_x - y = event.clientY - offset_y, - index = Math.floor(y / self.offsetHeight) - 1; - - clone.style.left = x + 'px'; - clone.style.top = y + 'px'; - - if (index !== current_index) { - var new_clone = self.cloneNode(true); - - index = Math.max(Math.min(index, self.parentNode.children.length - 1), 0); - - if (index > 0) { - if (index > current_index) { - self.parentNode.insertBefore(new_clone, self.parentNode.children[index].nextSibling); - } else { - self.parentNode.insertBefore(new_clone, self.parentNode.children[index]); - } - } else { - self.parentNode.insertBefore(new_clone, self.parentNode.children[index]); - } - - self.remove(); - - self = new_clone; - - self.addEventListener('mousedown', mousedown); - - if (typeof object.onchange === 'function') { - object.onchange(current_index, index); - } - - current_index = index; - } - } - - function mouseup(event) { - if (clone) { - clone.remove(); - self.style.visibility = ''; - } - - if (typeof object.onend === 'function') { - object.onend(); - } - - window.removeEventListener('mousemove', mousemove); - window.removeEventListener('mouseup', mouseup); - } - - window.addEventListener('mousemove', mousemove); - window.addEventListener('mouseup', mouseup); - } - } - - li.addEventListener('mousedown', mousedown); - } - - satus.render(object[key], li); - - ul.appendChild(li); - } - } - - return ul; -}; -/*--------------------------------------------------------------- ->>> MAIN ----------------------------------------------------------------*/ - -satus.components.main = function(object) { - var component = document.createElement('main'); - - component.history = [object]; - - function create(self, animation, callback) { - var container = self.querySelector('.satus-main__container'), - component_container = document.createElement('div'), - component_scrollbar = satus.components.scrollbar(component_container), - object = self.history[self.history.length - 1]; - - component_container.className = 'satus-main__container'; - - if (animation === 2) { - container.classList.add('satus-animation--fade-out-left'); - component_container.className = 'satus-main__container satus-animation--fade-in-right'; - } else if (animation === 1) { - self.history.pop(); - - object = self.history[self.history.length - 1]; - - container.classList.add('satus-animation--fade-out-right'); - component_container.className = 'satus-main__container satus-animation--fade-in-left'; - } - - document.body.dataset.appearance = object.appearanceKey; - component_container.dataset.appearance = object.appearanceKey; - - for (var key in object) { - satus.render(object[key], object.scrollbar === false ? component : component_scrollbar); - } - - if (object.scrollbar !== false) { - self.appendChild(component_container); - } - - if (self.historyListener) { - self.historyListener(component_container); - } - - if (object.onopen || callback) { - component_scrollbar.onopen = object.onopen || callback; - - component_scrollbar.onopen(); - } - - if (container) { - setTimeout(function() { - container.remove(); - }, satus.getAnimationDuration(container)); - } - } - - create(component, 0); - - component.back = function() { - create(this, 1); - }; - - component.open = function(element, callback) { - this.history.push(element); - - create(this, 2, callback); - }; - - if (object.on && object.on.change || object.onchange) { - component.historyListener = object.on && object.on.change || object.onchange; - - component.historyListener(component.querySelector('.satus-main__container')); - } - - return component; -}; -/*--------------------------------------------------------------- ->>> RADIO GROUP ----------------------------------------------------------------*/ - -satus.components.radioGroup = function(element) { - var element = Object.assign({}, element), - component = document.createElement('div'); - - for (var key in element.radios) { - var item = element.radios[key]; - - item.type = 'button'; - item.variant = 'radio'; - - component.appendChild(satus.render(item)); - } - - return component; -}; -/*----------------------------------------------------------------------------- ->>> SCROLL BAR ------------------------------------------------------------------------------*/ - -satus.components.scrollbar = function(parent, enabled) { - if (enabled === false) { - return parent; - } - - var component = document.createElement('div'), - component_wrapper = document.createElement('div'), - component_content = document.createElement('div'), - component_thumb = document.createElement('div'); - - component.className = 'satus-scrollbar'; - component_wrapper.className = 'satus-scrollbar__wrapper'; - component_content.className = 'satus-scrollbar__content'; - component_thumb.className = 'satus-scrollbar__thumb'; - - - // RESIZE - - function resize() { - component_content.style.width = component.offsetWidth + 'px'; - component_wrapper.style.height = component.offsetHeight + 'px'; - - if (component_wrapper.scrollHeight > component_wrapper.offsetHeight) { - component_thumb.style.height = component_wrapper.offsetHeight / component_wrapper.scrollHeight * component_wrapper.offsetHeight + 'px'; - } - } - - window.addEventListener('resize', resize); - - new MutationObserver(resize).observe(component_content, { - subtree: true, - childList: true - }); - - - // HOVER - - component.timeout = false; - - function active() { - if (component.timeout) { - clearTimeout(component.timeout); - - component.timeout = false; - } - - component.classList.add('active'); - - component.timeout = setTimeout(function() { - component.classList.remove('active'); - - component.timeout = false; - }, 1000); - } - - component.addEventListener('mousemove', active); - - - // SCROLL - - component_wrapper.addEventListener('scroll', function(event) { - active(); - - component_thumb.style.top = Math.floor(component_wrapper.scrollTop * (component_wrapper.offsetHeight - component_thumb.offsetHeight) / (component_wrapper.scrollHeight - component_wrapper.offsetHeight)) + 'px'; - - if (this.parentNode.parentNode.parentNode.skelet.onscroll) { - this.parentNode.parentNode.parentNode.skelet.onscroll(event); - } - }); - - component_thumb.addEventListener('mousedown', function(event) { - var offsetY = event.layerY; - - if (event.button !== 0) { - return false; - } - - function mousemove(event) { - var offset = 100 / ((component.offsetHeight - component_thumb.offsetHeight) / (event.clientY - offsetY - component.getBoundingClientRect().top)), - scroll = component_wrapper.scrollHeight - component.offsetHeight; - - component_wrapper.scrollTop = scroll / 100 * offset; - - event.preventDefault(); - - return false; - } - - function mouseup() { - window.removeEventListener('mouseup', mouseup); - window.removeEventListener('mousemove', mousemove); - } - - window.addEventListener('mouseup', mouseup); - window.addEventListener('mousemove', mousemove); - }); - - component_wrapper.appendChild(component_content); - component.appendChild(component_wrapper); - component.appendChild(component_thumb); - - parent.appendChild(component); - - return component_content; -}; -/*--------------------------------------------------------------- ->>> SECTION ----------------------------------------------------------------*/ - -satus.components.section = function(element) { - var component = document.createElement('section'); - - for (var key in element) { - satus.render(element[key], component); - } - - return component; -}; - -/*--------------------------------------------------------------- ->>> SELECT ----------------------------------------------------------------*/ - -satus.components.select = function(element) { - var skelet = { - type: 'button', - label: element.label, - onclick: { - type: 'dialog' - } - }, - value = document.createElement('span'); - - value.className = 'satus-button__value'; - - for (var key in element.options) { - skelet.onclick[key] = element.options[key]; - - skelet.onclick[key].type = 'button'; - skelet.onclick[key].variant = 'list-item'; - skelet.onclick[key].parentValue = value; - skelet.onclick[key].dataset = { - key: element.options[key].label, - value: element.options[key].value - }; - skelet.onclick[key].onclick = function() { - this.parentValue.parentNode.querySelector('.satus-button__value').innerText = satus.locale.getMessage(this.dataset.key); - - satus.storage.set(component.dataset.storageKey, this.dataset.value); - - if (typeof element.onchange === 'function') { - element.onchange(this.dataset.key, this.dataset.value); - } - - var parent = this.parentNode; - - while (!parent.classList.contains('satus-dialog')) { - parent = parent.parentNode; - } - - parent.querySelector('.satus-dialog__scrim').click(); - }; - } - - var component = satus.render(skelet); - - component.className = 'satus-button ' + (element.variant ? 'satus-button--' + element.variant : '') + ' satus-button--select'; - - if (element.storage_key) { - var storage_value = satus.storage.get(element.storage_key); - - component.dataset.storageKey = element.storage_key; - - for (var i = 0, l = element.options.length; i < l; i++) { - if (storage_value === element.options[i].value) { - storage_value = element.options[i].label; - } - } - - value.innerText = satus.locale.getMessage(storage_value || element.options[0].label); - } - - component.appendChild(value); - - return component; -}; -/*--------------------------------------------------------------- ->>> SHORTCUT ----------------------------------------------------------------*/ - -satus.components.shortcut = function(object) { - var component = document.createElement('div'), - value, - options = object.options || {}, - mousewheel_timeout = false, - mousewheel_only = false; - - try { - value = JSON.parse(satus.storage.get(object.storage_key)); - } catch (err) { - value = object.value || {}; - } - - function renderValue() { - var keys_value = []; - - if (value.altKey === true) { - keys_value.push('
Alt
'); - } - - if (value.ctrlKey === true) { - keys_value.push('
Ctrl
'); - } - - if (value.shiftKey === true) { - keys_value.push('
Shift
'); - } - - if (value.key === ' ') { - keys_value.push('
Space bar
'); - - } else if (typeof value.key === 'string' && ['Shift', 'Control', 'Alt'].indexOf(value.key) === -1) { - if (value.key === 'ArrowUp') { - keys_value.push('
'); - } else if (value.key === 'ArrowRight') { - keys_value.push('
'); - } else if (value.key === 'ArrowDown') { - keys_value.push('
'); - } else if (value.key === 'ArrowLeft') { - keys_value.push('
'); - } else { - keys_value.push('
' + value.key.toUpperCase() + '
'); - } - } - - if (value.wheel) { - keys_value.push('
'); - } - - if (value.click) { - keys_value.push('
'); - } - - if (value.context) { - keys_value.push('
'); - } - - return keys_value.join('
'); - } - - if (satus.isset(object.label)) { - var label = document.createElement('div'); - - label.className = 'satus-shortcut__label'; - - label.innerText = satus.locale.getMessage(object.label); - - component.appendChild(label); - } - - if (options.hide_value !== true) { - var component_value = document.createElement('div'); - - component_value.className = 'satus-shortcut__value'; - - component_value.innerHTML = renderValue(); - - component.appendChild(component_value); - } - - component.addEventListener('click', function() { - var component_dialog = document.createElement('div'), - component_scrim = document.createElement('div'), - component_surface = document.createElement('div'), - component_canvas = document.createElement('div'), - component_section = document.createElement('section'), - button_reset = document.createElement('button'), - button_cancel = document.createElement('button'), - button_save = document.createElement('button'); - - component_dialog.className = 'satus-dialog satus-dialog_open'; - component_scrim.className = 'satus-dialog__scrim'; - component_surface.className = 'satus-dialog__surface satus-dialog__surface_shortcut'; - component_canvas.className = 'satus-shortcut__canvas'; - component_section.className = 'satus-section satus-section--actions'; - button_reset.className = 'satus-button'; - button_cancel.className = 'satus-button'; - button_save.className = 'satus-button'; - - button_reset.innerText = satus.locale.getMessage('reset'); - button_cancel.innerText = satus.locale.getMessage('cancel'); - button_save.innerText = satus.locale.getMessage('save'); - - component_canvas.innerHTML = renderValue(); - - function keydown(event) { - event.preventDefault(); - event.stopPropagation(); - - mousewheel_only = false; - clearTimeout(mousewheel_timeout); - - value = { - key: event.key, - keyCode: event.keyCode, - shiftKey: event.shiftKey, - ctrlKey: event.ctrlKey, - altKey: event.altKey, - click: false, - context: false, - wheel: false - }; - - component_canvas.innerHTML = renderValue(); - - return false; - } - - function mousewheel(event) { - event.stopPropagation(); - - if (mousewheel_only === true) { - delete value.shiftKey; - delete value.altKey; - delete value.ctrlKey; - delete value.keyCode; - delete value.key; - } - - value.click = false; - value.context = false; - - clearTimeout(mousewheel_timeout); - - mousewheel_timeout = setTimeout(function() { - mousewheel_only = true; - }, 300); - - value.wheel = event.deltaY; - - component_canvas.innerHTML = renderValue(); - - return false; - } - - component_canvas.addEventListener('click', function(event) { - event.stopPropagation(); - - if (mousewheel_only === true) { - delete value.shiftKey; - delete value.altKey; - delete value.ctrlKey; - delete value.keyCode; - delete value.key; - } - - value.wheel = false; - value.context = false; - - clearTimeout(mousewheel_timeout); - - mousewheel_timeout = setTimeout(function() { - mousewheel_only = true; - }, 300); - - value.click = true; - - component_canvas.innerHTML = renderValue(); - - return false; - }); - - component_canvas.addEventListener('contextmenu', function(event) { - event.stopPropagation(); - event.preventDefault(); - - if (mousewheel_only === true) { - delete value.shiftKey; - delete value.altKey; - delete value.ctrlKey; - delete value.keyCode; - delete value.key; - } - - value.wheel = false; - value.click = false; - - clearTimeout(mousewheel_timeout); - - mousewheel_timeout = setTimeout(function() { - mousewheel_only = true; - }, 300); - - value.context = true; - - component_canvas.innerHTML = renderValue(); - - return false; - }); - - window.addEventListener('keydown', keydown); - window.addEventListener('mousewheel', mousewheel); - - function close() { - window.removeEventListener('keydown', keydown); - window.removeEventListener('mousewheel', mousewheel); - - component_dialog.classList.remove('satus-dialog_open'); - - mousewheel_timeout = false; - mousewheel_only = false; - - setTimeout(function() { - component_dialog.remove(); - }, Number(document.defaultView.getComputedStyle(component_dialog, '').getPropertyValue('animation-duration').replace(/[^0-9.]/g, '') * 1000)); - } - - component_scrim.addEventListener('click', close); - - button_reset.addEventListener('click', function() { - satus.storage.set(object.storage_key, null); - value = (satus.storage.get(object.storage_key) ? JSON.parse(satus.storage.get(object.storage_key)) : false) || object.value || {}; - component_value.innerHTML = renderValue(); - close(); - }); - - button_cancel.addEventListener('click', function() { - value = (satus.storage.get(object.storage_key) ? JSON.parse(satus.storage.get(object.storage_key)) : false) || object.value || {}; - close(); - }); - - button_save.addEventListener('click', function() { - if (document.querySelector('.satus-shortcut__custom > *')) { - var items = document.querySelectorAll('.satus-shortcut__custom > *'); - - for (var i = 0, l = items.length; i < l; i++) { - value[items[i].storage_key] = items[i].value; - } - } - - satus.storage.set(object.storage_key, JSON.stringify(value)); - - if (typeof object.onchange === 'function') { - object.onchange(object, value); - } - - close(); - }); - - component_section.appendChild(button_reset); - component_section.appendChild(button_cancel); - component_section.appendChild(button_save); - - component_surface.appendChild(component_canvas); - - if (object.custom_data) { - var custom = document.createElement('section'); - - custom.className = 'satus-shortcut__custom'; - - satus.render(object.custom_data, custom); - - component_surface.appendChild(custom); - } - - component_surface.appendChild(component_section); - - component_dialog.appendChild(component_scrim); - component_dialog.appendChild(component_surface); - - document.body.appendChild(component_dialog); - }); - - return component; -}; - -/*--------------------------------------------------------------- ->>> SLIDER ----------------------------------------------------------------*/ - -satus.components.slider = function(element) { - var component = document.createElement('div'); - - // LABEL - if (satus.isset(element.label)) { - var component_label = document.createElement('span'); - - component_label.className = 'satus-slider__label'; - component_label.innerText = satus.locale.getMessage(element.label); - - component.appendChild(component_label); - } - - - // RANGE - var component_range = document.createElement('input'); - - component_range.type = 'range'; - component_range.className = 'satus-slider__range'; - component_range.min = element.min || 0; - component_range.max = element.max || 10; - component_range.step = element.step || 1; - - component_range.oninput = function() { - var track = this.parentNode.querySelector('.satus-slider__track'), - thumb = this.parentNode.querySelector('.satus-slider__thumb'), - min = Number(this.min) || 0, - max = Number(this.max) || 1, - step = Number(this.step) || 1, - value = Number(this.value) || 0, - offset = (value - min) / (max - min) * 100; - - track.style.width = 'calc(' + offset + '% - ' + Math.floor(offset * 12 / 100) + 'px)'; - - satus.storage.set(this.dataset.storageKey, Number(this.value)); - - component_thumb.dataset.value = this.value; - - if (component.onchange) { - component.onchange(Number(this.value)); - } - }; - - component.change = function(value) { - component_range.value = value; - - component_thumb.dataset.value = value; - - component_range.oninput(); - }; - - component.addEventListener('mousedown', function() { - function mousemove() { - component.classList.add('satus-slider--dragging'); - } - - function mouseup() { - component.classList.remove('satus-slider--dragging'); - - window.removeEventListener('mousemove', mousemove); - window.removeEventListener('mouseup', mouseup); - } - - window.addEventListener('mousemove', mousemove); - window.addEventListener('mouseup', mouseup); - }); - - if (element.onchange) { - component.onchange = element.onchange; - } - - component.appendChild(component_range); - - - // CONTAINER - var component_container = document.createElement('div'); - - component_container.className = 'satus-slider__container'; - - component.appendChild(component_container); - - - // TRACK - var component_track_container = document.createElement('div'), - component_track = document.createElement('div'); - - component_track_container.className = 'satus-slider__track-container'; - component_track.className = 'satus-slider__track'; - - component_track_container.appendChild(component_track); - component_container.appendChild(component_track_container); - - - // FOCUS RING - var component_ring = document.createElement('div'); - - component_ring.className = 'satus-slider__ring'; - - component_track.appendChild(component_ring); - - - // THUMB - var component_thumb = document.createElement('div'); - - component_thumb.className = 'satus-slider__thumb'; - - component_track.appendChild(component_thumb); - - if (element.storage_key) { - var value = satus.storage.get(element.storage_key) || element.value; - - component_range.dataset.storageKey = element.storage_key; - - if (value) { - component_range.value = value; - - if (!satus.isset(value)) { - value = element.value; - } - - var offset = (Number(component_range.value) - Number(component_range.min)) / (Number(component_range.max) - Number(component_range.min)) * 100; - - component_track.style.width = 'calc(' + offset + '% - ' + Math.floor(offset * 12 / 100) + 'px)'; - component_thumb.dataset.value = value; - } else { - component_range.value = 0; - component_thumb.dataset.value = 0; - } - } - - - return component; -}; -/*--------------------------------------------------------------- ->>> SWITCH ----------------------------------------------------------------*/ - -satus.components.switch = function(element) { - var component = document.createElement('div'); - - // LABEL - if (satus.isset(element.label)) { - var label = document.createElement('span'); - - label.className = 'satus-switch__label'; - label.innerText = satus.locale.getMessage(element.label); - - component.appendChild(label); - } - - - // INPUT - var component_input = document.createElement('input'); - - component_input.type = 'checkbox'; - component_input.className = 'satus-switch__input'; - - if (element.storage_key && element.storage !== false) { - component.value = satus.storage.get(element.storage_key); - - component_input.dataset.storageKey = element.storage_key; - } - - if (!satus.isset(component.value)) { - component.value = element.value; - } - - if (component.value && element.storage !== false) { - component_input.checked = component.value; - } - - component_input.addEventListener('change', function() { - component.value = this.checked; - - if (element.storage !== false) { - satus.storage.set(this.dataset.storageKey, this.checked); - } - }); - - component.appendChild(component_input); - - - // TRACK - var component_value = document.createElement('div'), - component_track = document.createElement('div'); - - component_value.className = 'satus-switch__value'; - component_track.className = 'satus-switch__track'; - - component_value.appendChild(component_track); - component.appendChild(component_value); - - - // MOUSE MOVE - component_track.addEventListener('mousedown', function(event) { - var prevent = false, - difference = 0; - - function click(event) { - event.preventDefault(); - event.stopPropagation(); - - component.removeEventListener('click', click); - - return false; - } - - function mousemove(event) { - var checkbox = component.querySelector('input'), - movement = event.movementX; - - if (movement * difference < 0) { - difference = 0; - } else { - difference += movement; - - if (prevent === false) { - prevent = true; - component.addEventListener('click', click); - } - } - - if (difference < -5) { - checkbox.checked = false; - } else if (difference > 5) { - checkbox.checked = true; - } - } - - function mouseup(event) { - window.removeEventListener('mousemove', mousemove); - window.removeEventListener('mouseup', mouseup); - } - - window.addEventListener('mousemove', mousemove); - window.addEventListener('mouseup', mouseup); - }); - - - // TOUCH MOVE - component_track.addEventListener('touchstart', function(event) { - var previous_x = 0, - difference = 0; - - function mousemove(event) { - var checkbox = component.querySelector('input'), - movement = event.touches[0].clientX - previous_x; - - previous_x = event.touches[0].clientX; - - if (movement * difference < 0) { - difference = 0; - } else { - difference += movement; - } - - if (difference < -5) { - checkbox.checked = false; - } else if (difference > 5) { - checkbox.checked = true; - } - } - - function mouseup(event) { - window.removeEventListener('touchmove', mousemove); - window.removeEventListener('touchend', mouseup); - } - - window.addEventListener('touchmove', mousemove); - window.addEventListener('touchend', mouseup); - }); - - - return component; -}; - -satus.components.table = function(item) { - var component = document.createElement('div'), - component_head = document.createElement('div'), - component_body = document.createElement('div'), - component_scrollbar = satus.components.scrollbar(component_body, item.scrollbar), - table = document.createElement('div'); - - table.className = 'satus-table__container'; - component_head.className = 'satus-table__head'; - component_body.className = 'satus-table__body'; - - function update(data) { - var pages = item.pages, - start = Math.max((component.pagingIndex - 1) * component.paging, 0), - end = component.pagingIndex * component.paging; - - if (end > data.length) { - end = data.length; - } else if (end === 0) { - end = component.paging; - } - - table.innerHTML = ''; - - if (data) { - for (var i = start, l = end; i < l; i++) { - if (data[i]) { - var tr = document.createElement('div'); - - tr.className = 'satus-table__row'; - - for (var j = 0, k = data[i].length; j < k; j++) { - var td = document.createElement('div'); - - - td.className = 'satus-table__cell'; - - if (data[i][j].html) { - td.innerHTML = data[i][j].html; - } else if (data[i][j].text) { - td.innerText = data[i][j].text; - } - - if (item.columns[j].onrender) { - td.onrender = item.columns[j].onrender; - - td.onrender(); - } - - tr.appendChild(td); - } - - table.appendChild(tr); - } - } - } - - component.pagingUpdate(); - } - - function sortArray(array, index, mode) { - if (array[0]) { - if (mode === 'asc') { - if (typeof array[0][index].text === 'number') { - sorted = array.sort(function(a, b) { - return a[index].text - b[index].text; - }); - } else { - sorted = array.sort(function(a, b) { - return a[index].text.localeCompare(b[index].text); - }); - } - } else { - if (typeof array[0][index].text === 'number') { - sorted = array.sort(function(a, b) { - return b[index].text - a[index].text; - }); - } else { - sorted = array.sort(function(a, b) { - return b[index].text.localeCompare(a[index].text); - }); - } - } - } - - return array; - } - - function sort() { - var mode = this.dataset.sorting, - index = Array.prototype.indexOf.call(this.parentElement.children, this), - sorted; - - if (component.data[0][index] && component.data[0][index].hasOwnProperty('text')) { - if (mode === 'none') { - mode = 'asc'; - } else if (mode === 'asc') { - mode = 'desc'; - } else if (mode === 'desc') { - mode = 'asc'; - } - - if (this.parentNode.querySelector('div[data-sorting=asc], div[data-sorting=desc]')) { - this.parentNode.querySelector('div[data-sorting=asc], div[data-sorting=desc]').dataset.sorting = 'none'; - } - - this.dataset.sorting = mode; - - sorted = sortArray(component.data, index, mode); - - update(sorted); - } else { - this.dataset.sorting = false; - } - } - - function resize() {} - - for (var i = 0, l = item.columns.length; i < l; i++) { - var column = document.createElement('div'); - - column.dataset.sorting = 'none'; - column.addEventListener('click', sort); - column.addEventListener('click', function() { - if (typeof item.beforeUpdate === 'function') { - item.beforeUpdate(item); - } - }); - column.innerHTML = '' + satus.locale.getMessage(item.columns[i].title) + ''; - - component_head.appendChild(column); - } - - component_scrollbar.appendChild(table); - - component.appendChild(component_head); - component.appendChild(component_body); - - component.data = item.data; - component.paging = item.paging; - component.pages = item.pages; - component.pagingIndex = 1; - - component.update = function(data, update_pages) { - if (satus.isset(data)) { - this.data = data; - } - - if (update_pages !== false) { - item.pages = Math.ceil(this.data.length / this.paging); - } - - if (this.querySelector('div[data-sorting=asc], div[data-sorting=desc]')) { - var mode = this.querySelector('div[data-sorting=asc], div[data-sorting=desc]').dataset.sorting, - index = Array.prototype.indexOf.call(this.querySelector('div[data-sorting=asc], div[data-sorting=desc]').parentElement.children, this.querySelector('div[data-sorting=asc], div[data-sorting=desc]')); - - update(sortArray(this.data, index, mode)); - } else { - for (var i = 0, l = item.columns.length; i < l; i++) { - if (item.columns[i].hasOwnProperty('sorting')) { - if (this.data[0][i].hasOwnProperty('text')) { - this.querySelectorAll('.satus-table__head > div')[i].dataset.sorting = item.columns[i].sorting; - } else { - this.querySelectorAll('.satus-table__head > div')[i].dataset.sorting = false; - } - - update(sortArray(this.data, i, item.columns[i].sorting)); - - i = l; - } - } - } - }; - - - // PAGING - function pagingButton(i, c) { - var button = document.createElement('button'); - - if (i === component.pagingIndex) { - button.className = 'active'; - } - - button.innerText = i; - button.parentComponent = component; - button.addEventListener('click', function() { - if (typeof item.beforeUpdate === 'function') { - item.beforeUpdate(item); - } - - this.parentComponent.pagingIndex = Number(this.innerText); - this.parentComponent.update(this.parentComponent.data); - this.parentComponent.pagingUpdate(); - }); - - c.appendChild(button); - } - - function pagingUpdate() { - if (typeof this.paging === 'number') { - var pages = item.pages, - c = this.querySelector('.satus-table__paging'); - - c.innerHTML = ''; - - if (pages > 1) { - pagingButton(1, c); - - if (component.pagingIndex - 2 > 2) { - var span = document.createElement('span'); - - span.innerText = '...'; - - c.appendChild(span); - } - - for (var i = component.pagingIndex - 2 < 2 ? 2 : component.pagingIndex - 2, l = component.pagingIndex + 2 > pages - 1 ? pages - 1 : component.pagingIndex + 2; i <= l; i++) { - pagingButton(i, c); - } - - if (component.pagingIndex + 2 < pages - 1) { - var span = document.createElement('span'); - - span.innerText = '...'; - - c.appendChild(span); - } - - pagingButton(pages, c); - } - } - - resize(); - } - - component.pagingUpdate = pagingUpdate; - - component_paging = document.createElement('div'); - - component_paging.className = 'satus-table__paging'; - - component_scrollbar.appendChild(component_paging); - - // END PAGING - - if (item.data) { - component.update(item.data, false); - } - - return component; -}; - -/*--------------------------------------------------------------- ->>> TABS ----------------------------------------------------------------*/ - -satus.components.tabs = function(object) { - var component = document.createElement('div'), - tabbar = document.createElement('div'), - tabbar_select = document.createElement('div'), - main = document.createElement('div'), - i = 0; - - tabbar.className = 'satus-tabs__bar'; - main.className = 'satus-tabs__main'; - tabbar_select.className = 'satus-tabs__bar--select'; - - tabbar.appendChild(tabbar_select); - - function update() { - var index = Number(this.dataset.key); - - tabbar_select.style.left = this.offsetLeft + 'px'; - - if (this.parentNode.querySelector('.active')) { - var prev_index = Number(this.parentNode.querySelector('.active').dataset.key); - - this.parentNode.querySelector('.active').classList.remove('active'); - } - - this.classList.add('active'); - - var container = document.createElement('div'); - - container.className = 'satus-tabs__tab'; - - satus.render(this.menu, container); - - if (main.children.length >= 1) { - container.classList.add(index > prev_index ? 'satus-animation--fade-in-right' : 'satus-animation--fade-in-left'); - - main.children[0].classList.add('old'); - main.children[0].classList.add(index > prev_index ? 'satus-animation--fade-out-left' : 'satus-animation--fade-out-right'); - - main.appendChild(container); - - setTimeout(function() { - main.children[0].remove(); - - container.classList.remove(index > prev_index ? 'satus-animation--fade-in-right' : 'satus-animation--fade-in-left'); - }, 250); - } else { - main.appendChild(container); - } - } - - for (var key in object) { - if (object[key].type === 'tab') { - var tab = document.createElement('div'); - - tab.innerText = satus.locale.getMessage(object[key].label); - tab.dataset.key = i; - tab.onclick = update; - tab.menu = Object.assign({}, object[key]); - - delete tab.menu.type; - - tabbar.appendChild(tab); - - i++; - } - } - - tabbar.children[1].click(); - - component.appendChild(tabbar); - component.appendChild(main); - - return component; -}; - -/*--------------------------------------------------------------- ->>> TEXT ----------------------------------------------------------------*/ - -satus.components.text = function(element) { - var component = document.createElement('span'); - - if (satus.isset(element.label)) { - var component_label = document.createElement('span'); - - component_label.className = 'satus-text__label'; - component_label.innerText = satus.locale.getMessage(element.label); - - component.appendChild(component_label); - } - - if (satus.isset(element.value)) { - var component_value = document.createElement('span'); - - component_value.className = 'satus-text__value'; - component_value.innerText = satus.locale.getMessage(element.value); - - component.appendChild(component_value); - } - - return component; -}; -/*--------------------------------------------------------------- ->>> TEXT FIELD ----------------------------------------------------------------*/ - -satus.components.textField = function(element) { - if (element.rows > 1) { - var component = document.createElement('textarea'); - } else { - var component = document.createElement('input'); - - component.type = 'text'; - } - - return component; -}; - -/*--------------------------------------------------------------- ->>> AES-CTR ------------------------------------------------------------------ -# Encryption -# Decryption ----------------------------------------------------------------*/ - -satus.aes = {}; - -/*--------------------------------------------------------------- -# ENCRYPTION ----------------------------------------------------------------*/ - -satus.aes.encrypt = async function(text, password) { - var iv = crypto.getRandomValues(new Uint8Array(12)), - algorithm = { - name: 'AES-GCM', - iv: iv - }; - - return Array.from(iv).map(b => ('00' + b.toString(16)).slice(-2)).join('') + btoa(Array.from(new Uint8Array(await crypto.subtle.encrypt( - algorithm, - await crypto.subtle.importKey('raw', await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)), algorithm, false, ['encrypt']), - new TextEncoder().encode(text) - ))).map(byte => String.fromCharCode(byte)).join('')); -}; - - -/*--------------------------------------------------------------- -# DECRYPTION ----------------------------------------------------------------*/ - -satus.aes.decrypt = async function(text, password) { - var iv = text.slice(0, 24).match(/.{2}/g).map(byte => parseInt(byte, 16)), - algorithm = { - name: 'AES-GCM', - iv: new Uint8Array(iv) - }; - - try { - var data = new TextDecoder().decode(await crypto.subtle.decrypt( - algorithm, - await crypto.subtle.importKey( - 'raw', - await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)), - algorithm, - false, - ['decrypt'] - ), - new Uint8Array(atob(text.slice(24)).match(/[\s\S]/g).map(ch => ch.charCodeAt(0))) - )); - } catch (err) { - return false; - } - - return data; -}; -/*--------------------------------------------------------------- -# CLONE ----------------------------------------------------------------*/ - -satus.clone = function(target) { - var node = target.cloneNode(true); - - function update(node, target) { - node.style.cssText = window.getComputedStyle(target, '').cssText; - - for (var i = 0, l = target.children.length; i < l; i++) { - update(node.children[i], target.children[i]); - } - } - - update(node, target); - - return node; -}; -/*--------------------------------------------------------------- ->>> COLOR ------------------------------------------------------------------ -# Keywords -# Convert RGB to HEX -# Convert RGB to HSL -# Convert HEX to RGB -# Convert HEX to HSL -# Convert HSL to RGB -# Convert HSL to HEX ----------------------------------------------------------------*/ - -satus.color = {}; - - -/*--------------------------------------------------------------- -# KEYWORDS ----------------------------------------------------------------*/ - -satus.color.keywords = { - aliceblue: 0xF0F8FF, - antiquewhite: 0xFAEBD7, - aqua: 0x00FFFF, - aquamarine: 0x7FFFD4, - azure: 0xF0FFFF, - beige: 0xF5F5DC, - bisque: 0xFFE4C4, - black: 0x000000, - blanchedalmond: 0xFFEBCD, - blue: 0x0000FF, - blueviolet: 0x8A2BE2, - brown: 0xA52A2A, - burlywood: 0xDEB887, - cadetblue: 0x5F9EA0, - chartreuse: 0x7FFF00, - chocolate: 0xD2691E, - coral: 0xFF7F50, - cornflowerblue: 0x6495ED, - cornsilk: 0xFFF8DC, - crimson: 0xDC143C, - cyan: 0x00FFFF, - darkblue: 0x00008B, - darkcyan: 0x008B8B, - darkgoldenrod: 0xB8860B, - darkgray: 0xA9A9A9, - darkgreen: 0x006400, - darkgrey: 0xA9A9A9, - darkkhaki: 0xBDB76B, - darkmagenta: 0x8B008B, - darkolivegreen: 0x556B2F, - darkorange: 0xFF8C00, - darkorchid: 0x9932CC, - darkred: 0x8B0000, - darksalmon: 0xE9967A, - darkseagreen: 0x8FBC8F, - darkslateblue: 0x483D8B, - darkslategray: 0x2F4F4F, - darkslategrey: 0x2F4F4F, - darkturquoise: 0x00CED1, - darkviolet: 0x9400D3, - deeppink: 0xFF1493, - deepskyblue: 0x00BFFF, - dimgray: 0x696969, - dimgrey: 0x696969, - dodgerblue: 0x1E90FF, - firebrick: 0xB22222, - floralwhite: 0xFFFAF0, - forestgreen: 0x228B22, - fuchsia: 0xFF00FF, - gainsboro: 0xDCDCDC, - ghostwhite: 0xF8F8FF, - gold: 0xFFD700, - goldenrod: 0xDAA520, - gray: 0x808080, - green: 0x008000, - greenyellow: 0xADFF2F, - grey: 0x808080, - honeydew: 0xF0FFF0, - hotpink: 0xFF69B4, - indianred: 0xCD5C5C, - indigo: 0x4B0082, - ivory: 0xFFFFF0, - khaki: 0xF0E68C, - lavender: 0xE6E6FA, - lavenderblush: 0xFFF0F5, - lawngreen: 0x7CFC00, - lemonchiffon: 0xFFFACD, - lightblue: 0xADD8E6, - lightcoral: 0xF08080, - lightcyan: 0xE0FFFF, - lightgoldenrodyellow: 0xFAFAD2, - lightgray: 0xD3D3D3, - lightgreen: 0x90EE90, - lightgrey: 0xD3D3D3, - lightpink: 0xFFB6C1, - lightsalmon: 0xFFA07A, - lightseagreen: 0x20B2AA, - lightskyblue: 0x87CEFA, - lightslategray: 0x778899, - lightslategrey: 0x778899, - lightsteelblue: 0xB0C4DE, - lightyellow: 0xFFFFE0, - lime: 0x00FF00, - limegreen: 0x32CD32, - linen: 0xFAF0E6, - magenta: 0xFF00FF, - maroon: 0x800000, - mediumaquamarine: 0x66CDAA, - mediumblue: 0x0000CD, - mediumorchid: 0xBA55D3, - mediumpurple: 0x9370DB, - mediumseagreen: 0x3CB371, - mediumslateblue: 0x7B68EE, - mediumspringgreen: 0x00FA9A, - mediumturquoise: 0x48D1CC, - mediumvioletred: 0xC71585, - midnightblue: 0x191970, - mintcream: 0xF5FFFA, - mistyrose: 0xFFE4E1, - moccasin: 0xFFE4B5, - navajowhite: 0xFFDEAD, - navy: 0x000080, - oldlace: 0xFDF5E6, - olive: 0x808000, - olivedrab: 0x6B8E23, - orange: 0xFFA500, - orangered: 0xFF4500, - orchid: 0xDA70D6, - palegoldenrod: 0xEEE8AA, - palegreen: 0x98FB98, - paleturquoise: 0xAFEEEE, - palevioletred: 0xDB7093, - papayawhip: 0xFFEFD5, - peachpuff: 0xFFDAB9, - peru: 0xCD853F, - pink: 0xFFC0CB, - plum: 0xDDA0DD, - powderblue: 0xB0E0E6, - purple: 0x800080, - rebeccapurple: 0x663399, - red: 0xFF0000, - rosybrown: 0xBC8F8F, - royalblue: 0x4169E1, - saddlebrown: 0x8B4513, - salmon: 0xFA8072, - sandybrown: 0xF4A460, - seagreen: 0x2E8B57, - seashell: 0xFFF5EE, - sienna: 0xA0522D, - silver: 0xC0C0C0, - skyblue: 0x87CEEB, - slateblue: 0x6A5ACD, - slategray: 0x708090, - slategrey: 0x708090, - snow: 0xFFFAFA, - springgreen: 0x00FF7F, - steelblue: 0x4682B4, - tan: 0xD2B48C, - teal: 0x008080, - thistle: 0xD8BFD8, - tomato: 0xFF6347, - turquoise: 0x40E0D0, - violet: 0xEE82EE, - wheat: 0xF5DEB3, - white: 0xFFFFFF, - whitesmoke: 0xF5F5F5, - yellow: 0xFFFF00, - yellowgreen: 0x9ACD32 -}; - - -/*--------------------------------------------------------------- -# CONVERT RGB TO HEX ----------------------------------------------------------------*/ - -/*satus.color.rgb = function(value) { - if (typeof value === 'number') { - return [ - value >> 16 & 255, - value >> 8 & 255, - value & 255 - ]; - } else if (typeof value === 'string') { - var match = /^((?:rgb|#|hsl)a?)\(?\s*([^\)]*)\)?/.exec(value), - name = match[1], - components = match[2]; - - if (name === '#') { - if (components.length <= 4) { - return [ - parseInt(components.charAt(0) + components.charAt(0), 16), - parseInt(components.charAt(1) + components.charAt(1), 16), - parseInt(components.charAt(2) + components.charAt(2), 16) - ]; - } else if (components.length <= 7) { - - } - - return [name, components]; - } else if (name === 'hsl' || name === 'hsla') { - return [name, components]; - } - } -};*/ - -satus.color.rgbToHex = function (value) { - if (true) { - - } -}; -/*--------------------------------------------------------------- ->>> LOCALE ------------------------------------------------------------------ -# Get message -# Import locale ----------------------------------------------------------------*/ - -satus.locale = { - messages: {} -}; - - -/*--------------------------------------------------------------- -# GET MESSAGE ----------------------------------------------------------------*/ - -satus.locale.getMessage = function(string) { - return this.messages[string] || string; -}; - -satus.locale.get = satus.locale.getMessage; - - -/*--------------------------------------------------------------- -# IMPORT LOCALE ----------------------------------------------------------------*/ - -satus.locale.import = function(language, callback) { - var xhr = new XMLHttpRequest(); - - if (typeof language === 'function') { - var callback = language; - } - - if (typeof language !== 'string') { - var language = chrome.i18n.getUILanguage(); - } - - xhr.onload = function() { - try { - var object = JSON.parse(this.responseText); - - for (var key in object) { - satus.locale.messages[key] = object[key].message; - } - - callback(language); - } catch (err) { - function listener(request) { - if (request !== null && typeof request === 'object') { - if (request.name === 'translation_response') { - var object = JSON.parse(request.value); - - chrome.runtime.onMessage.removeListener(listener); - - for (var key in object) { - satus.locale.messages[key] = object[key].message; - } - - callback(language); - } - } - } - - chrome.runtime.onMessage.addListener(listener); - - chrome.runtime.sendMessage({ - name: 'translation_request', - path: '_locales/' + language + '/messages.json' - }); - } - }; - - xhr.onerror = function() { - if (language === 'en') { - callback(); - } else { - satus.locale.import('en', callback); - } - }; - - xhr.open('GET', '_locales/' + language + '/messages.json', true); - xhr.send(); -}; -/*--------------------------------------------------------------- ->>> MATH ------------------------------------------------------------------ -# Converts degrees to radians -# Converts radians to degrees -# Random float -# Random integer ----------------------------------------------------------------*/ - -satus.math = { - deg: Math.PI / 180, - rad: 180 / Math.PI -}; - - -/*--------------------------------------------------------------- -# CONVERTS DEGREES TO RADIANS ----------------------------------------------------------------*/ - -satus.math.degToRad = function(deg) { - return deg * this.deg; -}; - - -/*--------------------------------------------------------------- -# CONVERTS RADIANS TO DEGREES ----------------------------------------------------------------*/ - -satus.math.radToDeg = function(rad) { - return rad * this.rad; -}; - - -/*--------------------------------------------------------------- -# RANDOM FLOAT ----------------------------------------------------------------*/ - -satus.math.randFloat = function(min, max) { - return low + Math.random() * (high - low); -}; - - -/*--------------------------------------------------------------- -# RANDOM INTEGER ----------------------------------------------------------------*/ - -satus.math.randInt = function(min, max) { - return low + Math.floor(Math.random() * (high - low + 1)); -}; -/*--------------------------------------------------------------- ->>> RENDER ----------------------------------------------------------------*/ - -satus.render = function(element, container, callback) { - if (typeof container === 'function') { - var callback = container; - - container = undefined; - } - - function convert(object) { - if (object && object.type) { - var type = satus.camelize(object.type), - component = satus.components[type](object), - excluded_properties = ['type', 'label', 'class', 'title', 'storage', 'onclick']; - - function applyProperties(object, target) { - for (var key in object) { - if ( - satus.isset(object[key]) && - typeof object[key] === 'object' && - !object[key].type && - !object.nodeName - ) { - if (typeof target[key] !== 'object') { - target[key] = {}; - } - - applyProperties(object[key], target[key]); - } else if (excluded_properties.indexOf(key) === -1) { - target[key] = object[key]; - } - } - } - - applyProperties(object, component); - - if (satus.isset(component.skelet) === false) { - component.skelet = object; - } - - if (component.className === '') { - component.classList.add('satus-' + object.type); - } - - if (object.class) { - var class_list = object.class.split(' '); - - for (var i = 0, l = class_list.length; i < l; i++) { - component.classList.add(class_list[i]); - } - } - - if (object.variant) { - component.classList.add('satus-' + type + '--' + object.variant); - } - - if (object.before) { - var component_before = document.createElement('span'); - - component_before.innerHTML = object.before; - - for (var i = component_before.children.length - 1; i > -1; i--) { - component.insertBefore(component_before.children[i], component.firstChild); - } - } - - if (object.after) { - var component_after = document.createElement('span'); - - component_after.innerHTML = object.after; - - for (var i = component_after.children.length - 1; i > -1; i--) { - component.appendChild(component_after.children[i]); - } - } - - //(container || document.body).appendChild(component); - - if (satus.isset(container) === true) { - container.appendChild(component) - } - - if (typeof object.onclick === 'object') { - component.addEventListener('click', function() { - satus.render(this.skelet.onclick, document.body); - }); - } else if (typeof object.onclick === 'function') { - component.onclick = object.onclick; - } - - if (satus.isset(satus.events.render)) { - for (var i = 0, l = satus.events.render.length; i < l; i++) { - satus.events.render[i](component, object); - } - } - - if (typeof component.onrender === 'function') { - component.onrender(object); - } - - if (callback) { - callback(); - } - - return component; - } - } - - if (element.type) { - return convert(element); - } else { - for (var key in element) { - convert(element[key]); - } - } -}; -/*----------------------------------------------------------------------------- ->>> «SEARCH» MODULE ------------------------------------------------------------------------------*/ - -satus.search = function(query, object, callback, categories) { - var threads = 0, - button = '', - results = {}; - - function parse(items) { - threads++; - - for (var key in items) { - var item = items[key]; - - if (categories === true && item.type === 'button' && button !== item.label) { - button = item.label; - } - - if (['switch', 'select', 'slider'].indexOf(item.type) !== -1 && key.indexOf(query) !== -1) { - if (categories === true) { - if (!results[button]) { - results[button] = {}; - } - - results[button][key] = item; - } else { - results[key] = item; - } - } - - if (typeof item === 'object') { - parse(item); - } - } - - threads--; - - if (threads === 0) { - callback(results); - } - } - - parse(object); -}; - -/*-------------------------------------------------------------- ->>> STORAGE KEYS ---------------------------------------------------------------*/ - -satus.updateStorageKeys = function(object, callback) { - var threads = 0; - - function parse(items) { - threads++; - - for (var key in items) { - var item = items[key]; - - - if (item.type) { - item.storage_key = key; - } - - if (typeof item === 'object') { - parse(item); - } - } - - threads--; - - if (threads === 0) { - if (callback) { - callback(); - } - } - } - - parse(object); -}; -/*--------------------------------------------------------------- ->>> CHROMIUM STORAGE ------------------------------------------------------------------ -# Get -# Set -# Import -# Clear -# On changed ----------------------------------------------------------------*/ - -satus.storage = { - data: {} -}; - - -/*--------------------------------------------------------------- -# GET ----------------------------------------------------------------*/ - -satus.storage.get = function(name) { - if (satus.isset(name)) { - var target = satus.storage.data; - - name = name.split('/').filter(function(value) { - return value != ''; - }); - - for (var i = 0, l = name.length; i < l; i++) { - if (satus.isset(target[name[i]])) { - target = target[name[i]]; - } else { - return undefined; - } - } - - return target; - } -}; - - -/*--------------------------------------------------------------- -# SET ----------------------------------------------------------------*/ - -satus.storage.set = function(name, value) { - var items = {}, - target = satus.storage.data; - - if (!satus.isset(name)) { - return false; - } - - name = name.split('/').filter(function(value) { - return value != ''; - }); - - for (var i = 0, l = name.length; i < l; i++) { - var item = name[i]; - - if (i < l - 1) { - - if (target[item]) { - target = target[item]; - } else { - target[item] = {}; - - target = target[item]; - } - } else { - target[item] = value; - } - } - - for (var key in satus.storage.data) { - items[key] = satus.storage.data[key]; - } - - chrome.storage.local.set(items); -}; - - -/*--------------------------------------------------------------- -# IMPORT ----------------------------------------------------------------*/ - -satus.storage.import = function(name, callback) { - if (typeof name === 'function') { - chrome.storage.local.get(function(items) { - satus.storage.data = items; - - if (name) { - name(items); - } - }); - } else { - chrome.storage.local.get(name, function(items) { - for (var key in items) { - satus.storage.data[key] = items[key]; - } - - if (callback) { - callback(items[name]); - } - }); - } -}; - - -/*--------------------------------------------------------------- -# CLEAR ----------------------------------------------------------------*/ - -satus.storage.clear = function() { - chrome.storage.local.clear(); - - delete satus.storage.data; -}; - - -/*------------------------------------------------------ -# ON CHANGED -------------------------------------------------------*/ - -satus.storage.onChanged = function(callback) { - chrome.storage.onChanged.addListener(callback); -}; - -/*----------------------------------------------------------------------------- ->>> «USER» MODULE -------------------------------------------------------------------------------- -1.0 Variables -2.0 Software - 2.1 OS - 2.2.1 Name - 2.2.2 Type - 2.2 Browser - 2.2.1 Name - 2.2.2 Version - 2.2.3 Platform - 2.2.4 Languages - 2.2.5 Cookies - 2.2.6 Flash - 2.2.8 Video formats - 2.2.9 Audio formats - 2.2.10 WebGL -3.0 Hardware - 3.1 Screen - 3.2 RAM - 3.3 GPU - 3.4 Cores - 3.5 Touch - 3.6 Connection -4.0 Clearing ------------------------------------------------------------------------------*/ - -satus.user = function() { - /*----------------------------------------------------------------------------- - 1.0 VARIABLES - -----------------------------------------------------------------------------*/ - - var user_agent = navigator.userAgent, - random_cookie = 'ta{t`nX6cMXK,Wsc', - video = document.createElement('video'), - video_formats = { - ogg: 'video/ogg; codecs="theora"', - h264: 'video/mp4; codecs="avc1.42E01E"', - webm: 'video/webm; codecs="vp8, vorbis"', - vp9: 'video/webm; codecs="vp9"', - hls: 'application/x-mpegURL; codecs="avc1.42E01E"' - }, - audio = document.createElement('audio'), - audio_formats = { - mp3: 'audio/mpeg', - mp4: 'audio/mp4', - aif: 'audio/x-aiff' - }, - cvs = document.createElement('canvas'), - ctx = cvs.getContext('webgl'), - data = { - browser: { - audio: null, - cookies: null, - flash: null, - java: null, - languages: null, - name: null, - platform: null, - version: null, - video: null, - webgl: null - }, - os: { - name: null, - type: null - }, - device: { - connection: { - type: null, - speed: null - }, - cores: null, - gpu: null, - max_touch_points: null, - ram: null, - screen: null, - touch: null - } - }; - - - /*----------------------------------------------------------------------------- - 2.0 SOFTWARE - -----------------------------------------------------------------------------*/ - - /*----------------------------------------------------------------------------- - 2.1.0 OS - -----------------------------------------------------------------------------*/ - - /*----------------------------------------------------------------------------- - 2.1.1 NAME - -----------------------------------------------------------------------------*/ - - if (navigator.appVersion.indexOf('Win') !== -1) { - if (navigator.appVersion.match(/(Windows 10.0|Windows NT 10.0)/)) { - data.os.name = 'Windows 10'; - } else if (navigator.appVersion.match(/(Windows 8.1|Windows NT 6.3)/)) { - data.os.name = 'Windows 8.1'; - } else if (navigator.appVersion.match(/(Windows 8|Windows NT 6.2)/)) { - data.os.name = 'Windows 8'; - } else if (navigator.appVersion.match(/(Windows 7|Windows NT 6.1)/)) { - data.os.name = 'Windows 7'; - } else if (navigator.appVersion.match(/(Windows NT 6.0)/)) { - data.os.name = 'Windows Vista'; - } else if (navigator.appVersion.match(/(Windows NT 5.1|Windows XP)/)) { - data.os.name = 'Windows XP'; - } else { - data.os.name = 'Windows'; - } - } else if (navigator.appVersion.indexOf('(iPhone|iPad|iPod)') !== -1) { - data.os.name = 'iOS'; - } else if (navigator.appVersion.indexOf('Mac') !== -1) { - data.os.name = 'macOS'; - } else if (navigator.appVersion.indexOf('Android') !== -1) { - data.os.name = 'Android'; - } else if (navigator.appVersion.indexOf('OpenBSD') !== -1) { - data.os.name = 'OpenBSD'; - } else if (navigator.appVersion.indexOf('SunOS') !== -1) { - data.os.name = 'SunOS'; - } else if (navigator.appVersion.indexOf('Linux') !== -1) { - data.os.name = 'Linux'; - } else if (navigator.appVersion.indexOf('X11') !== -1) { - data.os.name = 'UNIX'; - } - - /*----------------------------------------------------------------------------- - 2.1.2 TYPE - -----------------------------------------------------------------------------*/ - - if (navigator.appVersion.match(/(Win64|x64|x86_64|WOW64)/)) { - data.os.type = '64-bit'; - } else { - data.os.type = '32-bit'; - } - - - /*----------------------------------------------------------------------------- - 2.2.0 BROWSER - -----------------------------------------------------------------------------*/ - - /*----------------------------------------------------------------------------- - 2.2.1 NAME - -----------------------------------------------------------------------------*/ - - if (user_agent.indexOf('Opera') !== -1) { - data.browser.name = 'Opera'; - } else if (user_agent.indexOf('Vivaldi') !== -1) { - data.browser.name = 'Vivaldi'; - } else if (user_agent.indexOf('Edge') !== -1) { - data.browser.name = 'Edge'; - } else if (user_agent.indexOf('Chrome') !== -1) { - data.browser.name = 'Chrome'; - } else if (user_agent.indexOf('Safari') !== -1) { - data.browser.name = 'Safari'; - } else if (user_agent.indexOf('Firefox') !== -1) { - data.browser.name = 'Firefox'; - } else if (user_agent.indexOf('MSIE') !== -1) { - data.browser.name = 'IE'; - } - - - /*----------------------------------------------------------------------------- - 2.2.2 VERSION - -----------------------------------------------------------------------------*/ - - var browser_version = user_agent.match(new RegExp(data.browser.name + '/([0-9.]+)')); - - if (browser_version[1]) { - data.browser.version = browser_version[1]; - } - - - /*----------------------------------------------------------------------------- - 2.2.3 PLATFORM - -----------------------------------------------------------------------------*/ - - data.browser.platform = navigator.platform || null; - - - /*----------------------------------------------------------------------------- - 2.2.4 LANGUAGES - -----------------------------------------------------------------------------*/ - - data.browser.languages = navigator.languages || null; - - - /*----------------------------------------------------------------------------- - 2.2.5 COOKIES - -----------------------------------------------------------------------------*/ - - if (document.cookie) { - document.cookie = random_cookie; - - if (document.cookie.indexOf(random_cookie) !== -1) { - data.browser.cookies = true; - } - } - - - /*----------------------------------------------------------------------------- - 2.2.6 FLASH - -----------------------------------------------------------------------------*/ - - try { - if (new ActiveXObject('ShockwaveFlash.ShockwaveFlash')) { - data.browser.flash = true; - } - } catch (e) { - if (navigator.mimeTypes['application/x-shockwave-flash']) { - data.browser.flash = true; - } - } - - - /*----------------------------------------------------------------------------- - 2.2.7 JAVA - -----------------------------------------------------------------------------*/ - - if (typeof navigator.javaEnabled === 'function' && navigator.javaEnabled()) { - data.browser.java = true; - } - - - /*----------------------------------------------------------------------------- - 2.2.8 VIDEO FORMATS - -----------------------------------------------------------------------------*/ - - if (typeof video.canPlayType === 'function') { - data.browser.video = {}; - - for (var i in video_formats) { - var can_play_type = video.canPlayType(video_formats[i]); - - if (can_play_type === '') { - data.browser.video[i] = false; - } else { - data.browser.video[i] = can_play_type; - } - } - } - - - /*----------------------------------------------------------------------------- - 2.2.9 AUDIO FORMATS - -----------------------------------------------------------------------------*/ - - if (typeof audio.canPlayType === 'function') { - data.browser.audio = {}; - - for (var i in audio_formats) { - var can_play_type = audio.canPlayType(audio_formats[i]); - - if (can_play_type == '') { - data.browser.audio[i] = false; - } else { - data.browser.audio[i] = can_play_type; - } - } - } - - - /*----------------------------------------------------------------------------- - 2.2.10 WEBGL - -----------------------------------------------------------------------------*/ - - if (ctx && ctx instanceof WebGLRenderingContext) { - data.browser.webgl = true; - } - - - /*----------------------------------------------------------------------------- - 3.0 HARDWARE - -----------------------------------------------------------------------------*/ - - /*----------------------------------------------------------------------------- - 3.1 SCREEN - -----------------------------------------------------------------------------*/ - - if (screen) { - data.device.screen = screen.width + 'x' + screen.height; - } - - - /*----------------------------------------------------------------------------- - 3.2 RAM - -----------------------------------------------------------------------------*/ - - if ('deviceMemory' in navigator) { - data.device.ram = navigator.deviceMemory + ' GB'; - } - - - /*----------------------------------------------------------------------------- - 3.3 GPU - -----------------------------------------------------------------------------*/ - - if ( - ctx && - ctx instanceof WebGLRenderingContext && - 'getParameter' in ctx && - 'getExtension' in ctx - ) { - var info = ctx.getExtension('WEBGL_debug_renderer_info'); - - if (info) { - data.device.gpu = ctx.getParameter(info.UNMASKED_RENDERER_WEBGL); - } - } - - - /*----------------------------------------------------------------------------- - 3.4 CORES - -----------------------------------------------------------------------------*/ - - if (navigator.hardwareConcurrency) { - data.device.cores = navigator.hardwareConcurrency; - } - - - /*----------------------------------------------------------------------------- - 3.5 TOUCH - -----------------------------------------------------------------------------*/ - - if ( - window.hasOwnProperty('ontouchstart') || - window.DocumentTouch && document instanceof window.DocumentTouch || - navigator.maxTouchPoints > 0 || - window.navigator.msMaxTouchPoints > 0 - ) { - data.device.touch = true; - data.device.max_touch_points = navigator.maxTouchPoints; - } - - - /*----------------------------------------------------------------------------- - 3.6 CONNECTION - -----------------------------------------------------------------------------*/ - - if (typeof navigator.connection === 'object') { - data.device.connection.type = navigator.connection.effectiveType || null; - - if (navigator.connection.downlink) { - data.device.connection.speed = navigator.connection.downlink + ' Mbps'; - } - } - - - /*----------------------------------------------------------------------------- - 4.0 CLEARING - -----------------------------------------------------------------------------*/ - - video.remove(); - audio.remove(); - cvs.remove(); - - - return data; +/*--------------------------------------------------------------- +>>> CORE +----------------------------------------------------------------- +# SATUS +# COMPONENTS +# CAMELIZE +# RENDER +---------------------------------------------------------------*/ + +/*--------------------------------------------------------------- +# SATUS +---------------------------------------------------------------*/ + +var satus = {}; + + +/*--------------------------------------------------------------- +# COMPONENTS +---------------------------------------------------------------*/ + +satus.components = {}; + + +/*--------------------------------------------------------------- +# CAMELIZE +---------------------------------------------------------------*/ + +satus.camelize = function(string) { + return string.replace(/-[a-z]/g, function(match) { + return match[1].toUpperCase(); + }); +}; + + +/*--------------------------------------------------------------- +# RENDER +---------------------------------------------------------------*/ + +satus.render = function(element, container) { + if (element.type) { + var type = this.camelize(element.type), + component; + + if (satus.components[type]) { + component = satus.components[type](element); + } else { + component = document.createElement(type); + } + + if (container) { + container.appendChild(component); + } + + return component; + } else { + for (var key in element) { + this.render(element[key], container); + } + } }; \ No newline at end of file From 927e3b079dc03d29ffb92a76f742015bc25a68da Mon Sep 17 00:00:00 2001 From: urfausto <31393590+urfausto@users.noreply.github.com> Date: Fri, 11 Dec 2020 21:08:58 +0100 Subject: [PATCH 0003/1224] Update messages.json --- stable/_locales/it/messages.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stable/_locales/it/messages.json b/stable/_locales/it/messages.json index b9e17510e..f8b50f488 100644 --- a/stable/_locales/it/messages.json +++ b/stable/_locales/it/messages.json @@ -234,7 +234,7 @@ "message": "Non gradire" }, "donate": { - "message": "Donare" + "message": "Donazione" }, "doNotChange": { "message": "Non cambiare" @@ -543,7 +543,7 @@ "message": "Playlist" }, "playPause": { - "message": "Avvio / Pausa" + "message": "Avvio/Pausa" }, "popupPlayer": { "message": "Lettore pop-up" @@ -803,4 +803,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube limita la qualità video a 1080p per il codec h.264" } -} \ No newline at end of file +} From bdfbf2c3bf091938bb893048047eef3056ea55f1 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 14 Dec 2020 20:26:59 +0300 Subject: [PATCH 0004/1224] Updates --- stable/content-scripts.css | 21 ++++++ stable/content-scripts.js | 128 ++++++++++++++++++++++++++++--------- stable/popup.js | 8 +++ 3 files changed, 126 insertions(+), 31 deletions(-) diff --git a/stable/content-scripts.css b/stable/content-scripts.css index ec4909722..b2504a292 100644 --- a/stable/content-scripts.css +++ b/stable/content-scripts.css @@ -27,6 +27,27 @@ 7.0 Footer -----------------------------------------------------------------------------*/ +#it-reverse-playlist +{ + width: 40px; + height: 40px; +} + +#it-reverse-playlist svg +{ + fill: var(--yt-spec-icon-inactive); +} + +#it-reverse-playlist.active svg +{ + fill: var(--yt-spec-icon-active-other); +} + + + + + + /*----------------------------------------------------------------------------- 1.0 Header -----------------------------------------------------------------------------*/ diff --git a/stable/content-scripts.js b/stable/content-scripts.js index c2a479f98..01d5b32c3 100644 --- a/stable/content-scripts.js +++ b/stable/content-scripts.js @@ -1,3 +1,27 @@ +/*--------------------------------------------------------------- +>>> IMPROVEDTUBE +----------------------------------------------------------------- +# Initialization +----------------------------------------------------------------/ + +/*--------------------------------------------------------------- +# INITIALIZATION +----------------------------------------------------------------*/ + +var ImprovedTube = { + allow_autoplay: false, + videoUrl: '"null"', + playingTime: 0 +}; + + + + + + + + + /*----------------------------------------------------------------------------- >>> CORE ------------------------------------------------------------------------------- @@ -6,11 +30,7 @@ 3.0 Init -----------------------------------------------------------------------------*/ -var ImprovedTube = { - allow_autoplay: false, - videoUrl: '"null"', - playingTime: 0 -}; + /*----------------------------------------------------------------------------- @@ -52,6 +72,7 @@ ImprovedTube.pageUpdate = function() { ImprovedTube.pageType(); ImprovedTube.youtube_home_page(); + ImprovedTube.playlistReverse(); ImprovedTube.hd_thumbnails(); ImprovedTube.channel_default_tab(); ImprovedTube.comments(); @@ -93,7 +114,6 @@ ImprovedTube.playerUpdate = function(node, hard) { this.fitToWindow(); this.always_show_progress_bar(); - this.playlist_reverse(); this.player_hd_thumbnail(); this.player_quality(player); this.player_volume(player); @@ -127,7 +147,6 @@ ImprovedTube.playerUpdate = function(node, hard) { this.videoUrl = location.href; this.fitToWindow(); - this.playlist_reverse(); this.player_hd_thumbnail(); this.player_quality(player); this.player_volume(player); @@ -392,7 +411,7 @@ ImprovedTube.fitToWindow = function() { -----------------------------------------------------------------------------*/ ImprovedTube.forced_theater_mode = function() { - if (window.self === window.top && (this.storage.forced_theater_mode === true || ImprovedTube.storage.player_size === 'fit_to_window')) { + if (window.self === window.top && (this.storage.forced_theater_mode === true || this.storage.player_size === 'fit_to_window')) { var is_applied = false; if (/wide\=1/.test(document.cookie)) { @@ -407,6 +426,16 @@ ImprovedTube.forced_theater_mode = function() { } }); } + + window.addEventListener('yt-navigate-finish', function() { + if (window.self === window.top && (ImprovedTube.storage.forced_theater_mode === true || ImprovedTube.storage.player_size === 'fit_to_window')) { + var newPlayer = document.querySelector('button.ytp-size-button'); + + if (newPlayer && null === document.getElementById('player-theater-container').firstChild) { + newPlayer.click(); + } + } + }); }; /*----------------------------------------------------------------------------- @@ -1024,9 +1053,11 @@ ImprovedTube.blacklist = function() { ImprovedTube.channel_default_tab = function() { if (this.storage.channel_default_tab && this.storage.channel_default_tab !== '/') { var value = this.storage.channel_default_tab, - node_list = document.querySelectorAll('*:not(#contenteditable-root) > a[href*="user"], ' + + node_list = document.querySelectorAll( + '*:not(#contenteditable-root) > a[href*="user"], ' + '*:not(#contenteditable-root) > a[href*="channel"], ' + - '*:not(#contenteditable-root) > a[href*="/c/"]'); + '*:not(#contenteditable-root) > a[href*="/c/"]' + ); for (var i = 0, l = node_list.length; i < l; i++) { var node = node_list[i]; @@ -1038,19 +1069,10 @@ ImprovedTube.channel_default_tab = function() { node.setAttribute('it-origin', node.href); } - var pathname = new URL(node.getAttribute('it-origin')).pathname; - node.href = node.getAttribute('it-origin') + value; - function click() { - if ( - this.data && - this.data.commandMetadata && - this.data.commandMetadata.webCommandMetadata && - this.data.commandMetadata.webCommandMetadata.url - ) { - this.data.commandMetadata.webCommandMetadata.url = (this.querySelector('a') || this).href.replace('https://www.youtube.com', ''); - } + function click(event) { + event.stopPropagation(); } node.addEventListener('click', click, true); @@ -1434,11 +1456,9 @@ ImprovedTube.player_playback_speed = function(node) { } if (ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) && ImprovedTube.storage.player_forced_playback_speed === true) { - node.querySelector('video').playbackRate = playback_speed; - try { - if (window.location.href.indexOf("music") < 0) { //quickfix to keep running on music.youtube.com - node.setPlaybackRate(playback_speed); + if (window.location.href.indexOf('music') < 0) { + node.querySelector('video').playbackRate = playback_speed; } } catch (err) {} } @@ -1452,8 +1472,8 @@ ImprovedTube.player_playback_speed = function(node) { ImprovedTube.autoplay = function() { if ( (/\/watch\?/.test(location.href) && !/list=/.test(location.href) && this.storage.player_autoplay === false) || - (/\/watch\?/.test(location.href) && /list=/.test(location.href) /*&& /index=/.test(location.href)*/ && this.storage.playlist_autoplay === false) || - (/\/(channel|user)\//.test(location.href) && this.storage.channel_trailer_autoplay === false) + (/\/watch\?/.test(location.href) && /list=/.test(location.href) && this.storage.playlist_autoplay === false) || + (/\/(channel|user|c)\//.test(location.href) && this.storage.channel_trailer_autoplay === false) ) { return false; } @@ -2232,7 +2252,7 @@ ImprovedTube.player_loudness_normalization = function() { 1.0 Reverse (todo) -----------------------------------------------------------------------------*/ -ImprovedTube.playlist_reverse_wait = false; +/*ImprovedTube.playlist_reverse_wait = false; ImprovedTube.playlist_reverse_activated = false; @@ -2365,7 +2385,8 @@ ImprovedTube.newPlaylistReverse = function() { // index item.querySelector('#index').innerHTML = clones[i].querySelector('#index').innerHTML; // thumbnail - item.querySelector('#thumbnail-container').style.background = 'url(https://i.ytimg.com/vi/' + hrefs[i].match(/v=[^&]*/g)[0].substr(2) + '/hqdefault.jpg) no-repeat center'; + item.querySelector('#thumbnail-container').style.background = 'url(https://i.ytimg.com/vi/' + hrefs[i].match(/v=[^&]*/ +/*g)[0].substr(2) + '/hqdefault.jpg) no-repeat center'; item.querySelector('#thumbnail-container').style.backgroundSize = 'cover'; item.querySelector('yt-img-shadow').classList.remove('empty'); // title @@ -2379,6 +2400,39 @@ ImprovedTube.newPlaylistReverse = function() { document.querySelector('#playlist .playlist-items').scrollTo(0, document.querySelector('ytd-playlist-panel-video-renderer[selected]').offsetTop - document.querySelector('ytd-playlist-panel-video-renderer[selected]').parentNode.offsetTop); }, 500); } +};*/ + +ImprovedTube.playlistReverseUrl = false; + +ImprovedTube.playlistReverse = function() { + if (this.playlistReverseUrl !== location.href && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer') && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #playlist-action-menu')) { + var button = document.querySelector('#it-reverse-playlist'); + + this.playlistReverseUrl = location.href; + + if (button && this.storage.playlist_reverse !== true) { + button.remove(); + } else { + button = document.createElement('button'); + + button.id = 'it-reverse-playlist'; + button.className = 'style-scope yt-icon-button'; + button.innerHTML = ''; + + button.addEventListener('click', function(event) { + event.preventDefault(); + event.stopPropagation(); + + this.classList.toggle('active'); + + return false; + }, true); + + document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #start-actions').appendChild(button); + + console.log('button'); + } + } }; @@ -2896,7 +2950,7 @@ ImprovedTube.shortcuts = function() { var video = document.querySelector('#movie_player video'); if (video && video.playbackRate) { - video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step)).toFixed(2)), .1); + video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); showStatus(document.querySelector('#movie_player'), video.playbackRate); } @@ -2905,7 +2959,7 @@ ImprovedTube.shortcuts = function() { var video = document.querySelector('#movie_player video'); if (video && video.playbackRate) { - video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step)).toFixed(2)), .1); + video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); showStatus(document.querySelector('#movie_player'), video.playbackRate); } @@ -2982,6 +3036,18 @@ ImprovedTube.shortcuts = function() { window.dispatchEvent(new Event('resize')); } + }, + shortcut_stats_for_nerds: function() { + var player = document.querySelector('.html5-video-player'); + + if (player.isVideoInfoVisible()) { + player.hideVideoInfo(); + } else { + player.showVideoInfo(); + } + }, + shortcut_toggle_cards: function() { + document.documentElement.toggleAttribute('it-player-hide-cards'); } }; diff --git a/stable/popup.js b/stable/popup.js index 0f686e3f0..4ea12e10f 100644 --- a/stable/popup.js +++ b/stable/popup.js @@ -2634,6 +2634,14 @@ Menu.main.section.shortcuts = { shortcut_screenshot: { type: 'shortcut', label: 'screenshot' + }, + shortcut_stats_for_nerds: { + type: 'shortcut', + label: 'statsForNerds' + }, + shortcut_toggle_cards: { + type: 'shortcut', + label: 'toggleCards' } }, From 2bcd323cdecefb9081e29da20b104a0973a9d506 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 18 Dec 2020 02:42:38 +0100 Subject: [PATCH 0005/1224] Update manifest.json --- stable/manifest.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stable/manifest.json b/stable/manifest.json index dda8cdf5c..a34f3dca6 100644 --- a/stable/manifest.json +++ b/stable/manifest.json @@ -1,8 +1,8 @@ { "manifest_version": 2, - "name": "Improve YouTube! (Open-Source for YouTube)", + "name": "*Improve YouTube!☕🧩 YouTube-&Video-Tools 🎞️🧪", "short_name": "ImprovedTube", - "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", + "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", "version": "3.120", "version_name": "3.120-stable", @@ -63,4 +63,4 @@ "https://*.youtube.com/*" ], "update_url": "https://clients2.google.com/service/update2/crx" -} \ No newline at end of file +} From 6302406051557904725cb00aa3eeedc5a277fd94 Mon Sep 17 00:00:00 2001 From: urfausto <31393590+urfausto@users.noreply.github.com> Date: Sat, 19 Dec 2020 10:33:51 +0100 Subject: [PATCH 0006/1224] Update messages.json --- stable/_locales/it/messages.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/stable/_locales/it/messages.json b/stable/_locales/it/messages.json index f8b50f488..2f755a9b8 100644 --- a/stable/_locales/it/messages.json +++ b/stable/_locales/it/messages.json @@ -387,19 +387,19 @@ "message": "Importa impostazioni" }, "improvedtubeIconInBrowser": { - "message": "Icona ImprovedTube nel browser" + "message": "Icona nel browser" }, "improvedtubeIconOnYoutube": { - "message": "Icona ImprovedTube su YouTube" + "message": "Icona su YouTube" }, "improvedtubeLanguage": { - "message": "Lingua ImprovedTube" + "message": "Lingua" }, "improvedtubeVersion": { - "message": "Versione ImprovedTube" + "message": "Versione" }, "improveLogo": { - "message": "Migliora logo" + "message": "Migliora logo YouTube" }, "increasePlaybackSpeed": { "message": "Aumenta velocità riproduzione" @@ -474,7 +474,7 @@ "message": "Notte" }, "noActiveFeatures": { - "message": "Nessuna funzionalità attivata" + "message": "Nessuna funzione attivata" }, "none": { "message": "Alcuno/a" @@ -498,13 +498,13 @@ "message": "Istanza unica di riproduzione attiva" }, "onSubscribedChannels": { - "message": "Su canali iscritti" + "message": "In canali sottoscritti" }, "orange": { "message": "Arancione" }, "os": { - "message": "Sistema operativo" + "message": "Sistema Operativo" }, "other": { "message": "Altro" @@ -642,7 +642,7 @@ "message": "Scorciatoie" }, "showCardsOnMouseHover": { - "message": "Mostra tessere di fine video al passaggio del mouse" + "message": "Mostra tessere di fine video al passaggio del puntatore" }, "showChannelVideosCount": { "message": "Mostra contatore visualizzazioni canale" @@ -780,7 +780,7 @@ "message": "Tempo di visione" }, "whenTabIsChanged": { - "message": "Quando la scheda è cambiata" + "message": "Quando si cambia scheda" }, "white": { "message": "Bianco" From 63531ae5e3f57b8dfc5bdc16db18e0cc6406486b Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 21 Dec 2020 20:19:37 +0300 Subject: [PATCH 0007/1224] Some fixes --- stable/background.js | 4 +- stable/content-scripts.js | 219 +++++++++++--------------------------- stable/index.html | 2 +- stable/manifest.json | 153 +++++++++++++++----------- 4 files changed, 151 insertions(+), 227 deletions(-) diff --git a/stable/background.js b/stable/background.js index 38bc5da96..9b01f62ed 100644 --- a/stable/background.js +++ b/stable/background.js @@ -328,7 +328,7 @@ chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); var _gaq = _gaq || []; -(function() { +/*(function() { var ga = document.createElement('script'); _gaq.push(['_setAccount', 'UA-88354155-1']); @@ -339,4 +339,4 @@ var _gaq = _gaq || []; ga.src = 'https://ssl.google-analytics.com/ga.js'; document.body.appendChild(ga); -})(); \ No newline at end of file +})();*/ \ No newline at end of file diff --git a/stable/content-scripts.js b/stable/content-scripts.js index 01d5b32c3..8cfb56bf8 100644 --- a/stable/content-scripts.js +++ b/stable/content-scripts.js @@ -14,6 +14,12 @@ var ImprovedTube = { playingTime: 0 }; +ImprovedTube.reverse = function(parent) { + for (var i = 1, l = parent.childNodes.length; i < l; i++) { + parent.insertBefore(parent.childNodes[i], parent.firstChild); + } +}; + @@ -198,6 +204,8 @@ ImprovedTube.init = function() { ImprovedTube.player_volume(); }); } + + }; function withoutInjection(object) { @@ -293,7 +301,16 @@ ImprovedTube.events = function() { 3.0 YouTube page data updated -------------------------------------------------------------------------*/ - window.addEventListener('yt-page-data-updated', ImprovedTube.pageUpdate); + window.addEventListener('yt-page-data-updated', function() { + ImprovedTube.pageUpdate(); + + if (ImprovedTube.playlistReversed === true) { + setTimeout(function() { + ImprovedTube.playlistReverseNextPrev(); + ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); + }, 500); + } + }); /*------------------------------------------------------------------------- @@ -353,7 +370,7 @@ ImprovedTube.events = function() { chrome.storage.local.get(function(items) { document.addEventListener('ImprovedTubeAnalyzer', function() { - if (items.analyzer_activation !== false) { + if (items.analyzer_activation === true) { if (document.querySelector('ytd-channel-name a') && chrome && chrome.runtime) { chrome.runtime.sendMessage({ name: 'improvedtube-analyzer', @@ -2252,157 +2269,36 @@ ImprovedTube.player_loudness_normalization = function() { 1.0 Reverse (todo) -----------------------------------------------------------------------------*/ -/*ImprovedTube.playlist_reverse_wait = false; - -ImprovedTube.playlist_reverse_activated = false; - -ImprovedTube.playlist_reverse = function() { - if (this.storage.playlist_reverse === true) { - ImprovedTube.playlist_reverse_wait = setInterval(function() { - if ( - ( - document.querySelector('.playlist-nav-controls') || - document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #header-contents #playlist-actions ytd-menu-renderer #top-level-buttons') - ) && - (document.querySelector('.playlist-nav-controls .toggle-loop') || document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[0]) && - !document.querySelector('#it-playlist-reverse') - ) { - clearInterval(ImprovedTube.playlist_reverse_wait); - - ImprovedTube.playlist_reverse_wait = false; - - var button = document.createElement('div'); - - button.id = 'it-playlist-reverse'; - button.innerHTML = ''; - button.onclick = function() { - if (this.classList.contains('yt-uix-button-toggled')) { - ImprovedTube.playlist_reverse_activated = false; - - this.classList.remove('yt-uix-button-toggled'); - } else { - ImprovedTube.playlist_reverse_activated = true; - - this.classList.add('yt-uix-button-toggled'); - } - - ImprovedTube.newPlaylistReverse(); - }; - - (document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #header-contents #playlist-actions ytd-menu-renderer #top-level-buttons') || document.querySelector('.playlist-nav-controls')).appendChild(button); - - if ((ImprovedTube.playlist_reverse_activated === true || location.href.indexOf('it-playlist-reverse=true') !== -1) && document.querySelector('#it-playlist-reverse')) { - ImprovedTube.playlist_reverse_activated = true; - - document.querySelector('#it-playlist-reverse').classList.add('yt-uix-button-toggled'); - - ImprovedTube.newPlaylistReverse(); - } - } - }, 250); - } -}; - -ImprovedTube.newPlaylistReverse = function() { - var list = document.querySelector('#items.playlist-items'), - videos = document.querySelectorAll('#items.playlist-items > *'), - clones = [], - titles = [], - channels = [], - hrefs = []; - - if (videos) { - for (var i = videos.length - 1; i >= 0; i--) { - titles.push(videos[i].querySelector('#video-title').innerText); - channels.push(videos[i].querySelector('#byline').innerText); - hrefs.push(videos[i].querySelector('a').href + '&it-playlist-reverse=true'); - clones.push(videos[i].cloneNode(true)); - } +ImprovedTube.playlistReverseUrl = false; +ImprovedTube.playlistReversed = false; - list.innerHTML = ''; +ImprovedTube.playlistReverseNextPrev = function() { + var ytd_watch = document.querySelector('ytd-watch-flexy'); - for (var i = 0, l = clones.length; i < l; i++) { - var clone = clones[i].cloneNode(true); + for (var i = 0, l = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.sets.length; i < l; i++) { + var autoplay = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.sets; - list.appendChild(clone); + if (autoplay[i].previousButtonVideo && autoplay[i].nextButtonVideo) { + autoplay[i].autoplayVideo = autoplay[i].previousButtonVideo; + autoplay[i].previousButtonVideo = autoplay[i].nextButtonVideo; + autoplay[i].nextButtonVideo = autoplay[i].autoplayVideo; } + } - function next(event) { - if ( - ImprovedTube.playlist_reverse_activated === true && - ( - (document.querySelector('#items.playlist-items > [selected]').nextElementSibling ? document.querySelector('#items.playlist-items > [selected]').nextElementSibling.querySelector('a') : null) || - document.querySelector('#items.playlist-items > * a') - ) - ) { - for (var i = 0, l = event.path.length; i < l; i++) { - if (event.path[i] === document.querySelector('.html5-video-player .ytp-next-button')) { - event.preventDefault(); - event.stopPropagation(); - - location.replace(((document.querySelector('#items.playlist-items > [selected]').nextElementSibling ? document.querySelector('#items.playlist-items > [selected]').nextElementSibling.querySelector('a') : null) || document.querySelector('#items.playlist-items > * a')).href); - - return false; - } - } - } - } - - window.removeEventListener('click', next); - window.addEventListener('click', next); - - function prev(event) { - if ( - ImprovedTube.playlist_reverse_activated === true && - ( - (document.querySelector('#items.playlist-items > [selected]').previousElementSibling ? document.querySelector('#items.playlist-items > [selected]').nextElementSibling.querySelector('a') : null) || - document.querySelector('#items.playlist-items > *:last-child a') - ) - ) { - for (var i = 0, l = event.path.length; i < l; i++) { - if (event.path[i] === document.querySelector('.html5-video-player .ytp-prev-button')) { - event.preventDefault(); - event.stopPropagation(); - - location.replace(((document.querySelector('#items.playlist-items > [selected]').previousElementSibling ? document.querySelector('#items.playlist-items > [selected]').nextElementSibling.querySelector('a') : null) || document.querySelector('#items.playlist-items > *:last-child a')).href); + for (var i = 0, l = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.modifiedSets.length; i < l; i++) { + var autoplay = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.modifiedSets; - return false; - } - } - } + if (autoplay[i].previousButtonVideo && autoplay[i].nextButtonVideo) { + autoplay[i].autoplayVideo = autoplay[i].previousButtonVideo; + autoplay[i].previousButtonVideo = autoplay[i].nextButtonVideo; + autoplay[i].nextButtonVideo = autoplay[i].autoplayVideo; } - - window.removeEventListener('click', prev); - window.addEventListener('click', prev); - - setTimeout(function() { - var items = document.querySelectorAll('#items.playlist-items > *'); - - for (var i = 0, l = clones.length; i < l; i++) { - var item = items[i]; - - item.querySelector('a').href = hrefs[i]; - // index - item.querySelector('#index').innerHTML = clones[i].querySelector('#index').innerHTML; - // thumbnail - item.querySelector('#thumbnail-container').style.background = 'url(https://i.ytimg.com/vi/' + hrefs[i].match(/v=[^&]*/ -/*g)[0].substr(2) + '/hqdefault.jpg) no-repeat center'; - item.querySelector('#thumbnail-container').style.backgroundSize = 'cover'; - item.querySelector('yt-img-shadow').classList.remove('empty'); - // title - item.querySelector('#video-title').innerText = titles[i]; - // channel - item.querySelector('#byline').innerText = channels[i]; - } - - //document.querySelector('.html5-video-player .ytp-next-button').parentNode.replaceChild(document.querySelector('.html5-video-player .ytp-next-button').cloneNode.true, document.querySelector('.html5-video-player .ytp-next-button')); - - document.querySelector('#playlist .playlist-items').scrollTo(0, document.querySelector('ytd-playlist-panel-video-renderer[selected]').offsetTop - document.querySelector('ytd-playlist-panel-video-renderer[selected]').parentNode.offsetTop); - }, 500); } -};*/ -ImprovedTube.playlistReverseUrl = false; + ytd_watch.updatePageData_(JSON.parse(JSON.stringify(ytd_watch.data))); + + document.querySelector('yt-navigation-manager').updatePlayer_(null, ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay, null, ytd_watch.data.contents.twoColumnWatchNextResults.playlist); +}; ImprovedTube.playlistReverse = function() { if (this.playlistReverseUrl !== location.href && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer') && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #playlist-action-menu')) { @@ -2410,27 +2306,32 @@ ImprovedTube.playlistReverse = function() { this.playlistReverseUrl = location.href; - if (button && this.storage.playlist_reverse !== true) { - button.remove(); - } else { - button = document.createElement('button'); + if (this.storage.playlist_reverse === true) { + if (!button) { + button = document.createElement('button'); - button.id = 'it-reverse-playlist'; - button.className = 'style-scope yt-icon-button'; - button.innerHTML = ''; + button.id = 'it-reverse-playlist'; + button.className = 'style-scope yt-icon-button'; + button.innerHTML = ''; - button.addEventListener('click', function(event) { - event.preventDefault(); - event.stopPropagation(); + button.addEventListener('click', function(event) { + event.preventDefault(); + event.stopPropagation(); - this.classList.toggle('active'); + this.classList.toggle('active'); - return false; - }, true); + ImprovedTube.playlistReversed = !ImprovedTube.playlistReversed; - document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #start-actions').appendChild(button); + ImprovedTube.playlistReverseNextPrev(); + ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); - console.log('button'); + return false; + }, true); + + document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #start-actions').appendChild(button); + } + } else if (button) { + button.remove(); } } }; diff --git a/stable/index.html b/stable/index.html index 714654b01..1066531be 100644 --- a/stable/index.html +++ b/stable/index.html @@ -11,4 +11,4 @@ - + \ No newline at end of file diff --git a/stable/manifest.json b/stable/manifest.json index a34f3dca6..0c956e018 100644 --- a/stable/manifest.json +++ b/stable/manifest.json @@ -1,66 +1,89 @@ { - "manifest_version": 2, - "name": "*Improve YouTube!☕🧩 YouTube-&Video-Tools 🎞️🧪", - "short_name": "ImprovedTube", - "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", - "version": "3.120", - "version_name": "3.120-stable", - - "default_locale": "en", - "icons": { - "128": "assets/icons/128.png", - "16": "assets/icons/16.png", - "32": "assets/icons/32.png", - "48": "assets/icons/48.png" - }, - - "background": { - "persistent": false, - "scripts": ["background.js"] - }, - - "browser_action": { - "default_icon": { - "128": "assets/icons/128g.png", - "16": "assets/icons/16g.png", - "32": "assets/icons/32g.png", - "48": "assets/icons/48g.png" - }, - "default_popup": "index.html" - }, - - "options_page": "options.html", - - "content_scripts": [{ - "all_frames": true, - "css": ["content-scripts.css"], - "exclude_matches": ["https://www.youtube.com/improvedtube", "https://www.youtube.com/tv*", "https://www.youtube.com/audiolibrary/*", "http://studio.youtube.com/*"], - "js": ["content-scripts.js"], - "matches": ["https://www.youtube.com/*"], - "run_at": "document_start" - }, { - "all_frames": true, - "css": ["satus.css", "popup.css"], - "js": ["satus.js", "popup.js"], - "matches": ["https://www.youtube.com/improvedtube"], - "run_at": "document_end" - }, { - "all_frames": true, - "js": ["page.js"], - "matches": ["https://www.youtube.com/improvedtube"], - "run_at": "document_start" - }], - - "content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'", - "offline_enabled": true, - "permissions": [ - "https://www.youtube.com/", - "contextMenus", - "storage" - ], - "optional_permissions": [ - "downloads", - "https://*.youtube.com/*" - ], - "update_url": "https://clients2.google.com/service/update2/crx" -} + "manifest_version":2, + "name":"*Improve YouTube!☕🧩 YouTube-&Video-Tools 🎞️🧪", + "short_name":"ImprovedTube", + "description":"Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", + "version":"3.120", + "version_name":"3.120-stable", + "default_locale":"en", + "icons":{ + "128":"assets/icons/128.png", + "16":"assets/icons/16.png", + "32":"assets/icons/32.png", + "48":"assets/icons/48.png" + }, + "background":{ + "persistent":false, + "scripts":[ + "background.js" + ] + }, + "browser_action":{ + "default_icon":{ + "128":"assets/icons/128g.png", + "16":"assets/icons/16g.png", + "32":"assets/icons/32g.png", + "48":"assets/icons/48g.png" + }, + "default_popup":"index.html" + }, + "options_page":"options.html", + "content_scripts":[ + { + "all_frames":true, + "css":[ + "content-scripts.css" + ], + "exclude_matches":[ + "https://www.youtube.com/improvedtube", + "https://www.youtube.com/tv*", + "https://www.youtube.com/audiolibrary/*", + "http://studio.youtube.com/*" + ], + "js":[ + "content-scripts.js" + ], + "matches":[ + "https://www.youtube.com/*" + ], + "run_at":"document_start" + }, + { + "all_frames":true, + "css":[ + "satus.css", + "popup.css" + ], + "js":[ + "satus.js", + "popup.js" + ], + "matches":[ + "https://www.youtube.com/improvedtube" + ], + "run_at":"document_end" + }, + { + "all_frames":true, + "js":[ + "page.js" + ], + "matches":[ + "https://www.youtube.com/improvedtube" + ], + "run_at":"document_start" + } + ], + "content_security_policy":"script-src 'self' https://ssl.google-analytics.com; object-src 'self'", + "offline_enabled":true, + "permissions":[ + "https://www.youtube.com/", + "contextMenus", + "storage" + ], + "optional_permissions":[ + "downloads", + "https://*.youtube.com/*" + ], + "update_url":"https://clients2.google.com/service/update2/crx" +} \ No newline at end of file From 7aefad4759bb48fee088733bf9560dce3c9d41a5 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 24 Dec 2020 22:26:50 +0300 Subject: [PATCH 0008/1224] 3.120-pre --- .../_locales/ar/messages.json | 0 .../_locales/bn/messages.json | 0 .../_locales/de/messages.json | 0 .../_locales/el/messages.json | 0 .../_locales/en/messages.json | 0 .../_locales/es/messages.json | 0 .../_locales/fr/messages.json | 0 .../_locales/hin/messages.json | 0 .../_locales/id/messages.json | 0 .../_locales/it/messages.json | 0 .../_locales/ja/messages.json | 0 .../_locales/ko/messages.json | 0 .../_locales/nb_NO/messages.json | 0 .../_locales/nl/messages.json | 0 .../_locales/no/messages.json | 0 .../_locales/pt_BR/messages.json | 0 .../_locales/pt_PT/messages.json | 0 .../_locales/ru/messages.json | 0 .../_locales/sk/messages.json | 0 .../_locales/tr/messages.json | 0 .../_locales/zh_CN/messages.json | 0 .../_locales/zh_TW/messages.json | 0 .../assets/fonts/OpenSans-Regular.ttf | Bin .../assets/fonts/OpenSans-SemiBold.ttf | Bin {stable => 3.120-pre}/assets/icons/128.png | Bin {stable => 3.120-pre}/assets/icons/128g.png | Bin {stable => 3.120-pre}/assets/icons/16.png | Bin {stable => 3.120-pre}/assets/icons/16g.png | Bin {stable => 3.120-pre}/assets/icons/32.png | Bin {stable => 3.120-pre}/assets/icons/32g.png | Bin {stable => 3.120-pre}/assets/icons/48.png | Bin {stable => 3.120-pre}/assets/icons/48g.png | Bin {stable => 3.120-pre}/background.js | 28 +- 3.120-pre/content-scripts.js | 137 + 3.120-pre/content-styles.css | 1206 ++ {stable => 3.120-pre}/index.html | 0 {stable => 3.120-pre}/manifest.json | 3 +- {stable => 3.120-pre}/options.html | 0 {stable => 3.120-pre}/page.js | 0 {stable => 3.120-pre}/popup.css | 0 {stable => 3.120-pre}/popup.js | 574 +- {stable => 3.120-pre}/satus.css | 0 {stable => 3.120-pre}/satus.js | 0 .../youtube-scripts.js | 5330 +++---- stable/content-scripts.css | 12034 ---------------- 45 files changed, 3507 insertions(+), 15805 deletions(-) rename {stable => 3.120-pre}/_locales/ar/messages.json (100%) rename {stable => 3.120-pre}/_locales/bn/messages.json (100%) rename {stable => 3.120-pre}/_locales/de/messages.json (100%) rename {stable => 3.120-pre}/_locales/el/messages.json (100%) rename {stable => 3.120-pre}/_locales/en/messages.json (100%) rename {stable => 3.120-pre}/_locales/es/messages.json (100%) rename {stable => 3.120-pre}/_locales/fr/messages.json (100%) rename {stable => 3.120-pre}/_locales/hin/messages.json (100%) rename {stable => 3.120-pre}/_locales/id/messages.json (100%) rename {stable => 3.120-pre}/_locales/it/messages.json (100%) rename {stable => 3.120-pre}/_locales/ja/messages.json (100%) rename {stable => 3.120-pre}/_locales/ko/messages.json (100%) rename {stable => 3.120-pre}/_locales/nb_NO/messages.json (100%) rename {stable => 3.120-pre}/_locales/nl/messages.json (100%) rename {stable => 3.120-pre}/_locales/no/messages.json (100%) rename {stable => 3.120-pre}/_locales/pt_BR/messages.json (100%) rename {stable => 3.120-pre}/_locales/pt_PT/messages.json (100%) rename {stable => 3.120-pre}/_locales/ru/messages.json (100%) rename {stable => 3.120-pre}/_locales/sk/messages.json (100%) rename {stable => 3.120-pre}/_locales/tr/messages.json (100%) rename {stable => 3.120-pre}/_locales/zh_CN/messages.json (100%) rename {stable => 3.120-pre}/_locales/zh_TW/messages.json (100%) rename {stable => 3.120-pre}/assets/fonts/OpenSans-Regular.ttf (100%) rename {stable => 3.120-pre}/assets/fonts/OpenSans-SemiBold.ttf (100%) rename {stable => 3.120-pre}/assets/icons/128.png (100%) rename {stable => 3.120-pre}/assets/icons/128g.png (100%) rename {stable => 3.120-pre}/assets/icons/16.png (100%) rename {stable => 3.120-pre}/assets/icons/16g.png (100%) rename {stable => 3.120-pre}/assets/icons/32.png (100%) rename {stable => 3.120-pre}/assets/icons/32g.png (100%) rename {stable => 3.120-pre}/assets/icons/48.png (100%) rename {stable => 3.120-pre}/assets/icons/48g.png (100%) rename {stable => 3.120-pre}/background.js (92%) create mode 100644 3.120-pre/content-scripts.js create mode 100644 3.120-pre/content-styles.css rename {stable => 3.120-pre}/index.html (100%) rename {stable => 3.120-pre}/manifest.json (93%) rename {stable => 3.120-pre}/options.html (100%) rename {stable => 3.120-pre}/page.js (100%) rename {stable => 3.120-pre}/popup.css (100%) rename {stable => 3.120-pre}/popup.js (91%) rename {stable => 3.120-pre}/satus.css (100%) rename {stable => 3.120-pre}/satus.js (100%) rename stable/content-scripts.js => 3.120-pre/youtube-scripts.js (55%) delete mode 100644 stable/content-scripts.css diff --git a/stable/_locales/ar/messages.json b/3.120-pre/_locales/ar/messages.json similarity index 100% rename from stable/_locales/ar/messages.json rename to 3.120-pre/_locales/ar/messages.json diff --git a/stable/_locales/bn/messages.json b/3.120-pre/_locales/bn/messages.json similarity index 100% rename from stable/_locales/bn/messages.json rename to 3.120-pre/_locales/bn/messages.json diff --git a/stable/_locales/de/messages.json b/3.120-pre/_locales/de/messages.json similarity index 100% rename from stable/_locales/de/messages.json rename to 3.120-pre/_locales/de/messages.json diff --git a/stable/_locales/el/messages.json b/3.120-pre/_locales/el/messages.json similarity index 100% rename from stable/_locales/el/messages.json rename to 3.120-pre/_locales/el/messages.json diff --git a/stable/_locales/en/messages.json b/3.120-pre/_locales/en/messages.json similarity index 100% rename from stable/_locales/en/messages.json rename to 3.120-pre/_locales/en/messages.json diff --git a/stable/_locales/es/messages.json b/3.120-pre/_locales/es/messages.json similarity index 100% rename from stable/_locales/es/messages.json rename to 3.120-pre/_locales/es/messages.json diff --git a/stable/_locales/fr/messages.json b/3.120-pre/_locales/fr/messages.json similarity index 100% rename from stable/_locales/fr/messages.json rename to 3.120-pre/_locales/fr/messages.json diff --git a/stable/_locales/hin/messages.json b/3.120-pre/_locales/hin/messages.json similarity index 100% rename from stable/_locales/hin/messages.json rename to 3.120-pre/_locales/hin/messages.json diff --git a/stable/_locales/id/messages.json b/3.120-pre/_locales/id/messages.json similarity index 100% rename from stable/_locales/id/messages.json rename to 3.120-pre/_locales/id/messages.json diff --git a/stable/_locales/it/messages.json b/3.120-pre/_locales/it/messages.json similarity index 100% rename from stable/_locales/it/messages.json rename to 3.120-pre/_locales/it/messages.json diff --git a/stable/_locales/ja/messages.json b/3.120-pre/_locales/ja/messages.json similarity index 100% rename from stable/_locales/ja/messages.json rename to 3.120-pre/_locales/ja/messages.json diff --git a/stable/_locales/ko/messages.json b/3.120-pre/_locales/ko/messages.json similarity index 100% rename from stable/_locales/ko/messages.json rename to 3.120-pre/_locales/ko/messages.json diff --git a/stable/_locales/nb_NO/messages.json b/3.120-pre/_locales/nb_NO/messages.json similarity index 100% rename from stable/_locales/nb_NO/messages.json rename to 3.120-pre/_locales/nb_NO/messages.json diff --git a/stable/_locales/nl/messages.json b/3.120-pre/_locales/nl/messages.json similarity index 100% rename from stable/_locales/nl/messages.json rename to 3.120-pre/_locales/nl/messages.json diff --git a/stable/_locales/no/messages.json b/3.120-pre/_locales/no/messages.json similarity index 100% rename from stable/_locales/no/messages.json rename to 3.120-pre/_locales/no/messages.json diff --git a/stable/_locales/pt_BR/messages.json b/3.120-pre/_locales/pt_BR/messages.json similarity index 100% rename from stable/_locales/pt_BR/messages.json rename to 3.120-pre/_locales/pt_BR/messages.json diff --git a/stable/_locales/pt_PT/messages.json b/3.120-pre/_locales/pt_PT/messages.json similarity index 100% rename from stable/_locales/pt_PT/messages.json rename to 3.120-pre/_locales/pt_PT/messages.json diff --git a/stable/_locales/ru/messages.json b/3.120-pre/_locales/ru/messages.json similarity index 100% rename from stable/_locales/ru/messages.json rename to 3.120-pre/_locales/ru/messages.json diff --git a/stable/_locales/sk/messages.json b/3.120-pre/_locales/sk/messages.json similarity index 100% rename from stable/_locales/sk/messages.json rename to 3.120-pre/_locales/sk/messages.json diff --git a/stable/_locales/tr/messages.json b/3.120-pre/_locales/tr/messages.json similarity index 100% rename from stable/_locales/tr/messages.json rename to 3.120-pre/_locales/tr/messages.json diff --git a/stable/_locales/zh_CN/messages.json b/3.120-pre/_locales/zh_CN/messages.json similarity index 100% rename from stable/_locales/zh_CN/messages.json rename to 3.120-pre/_locales/zh_CN/messages.json diff --git a/stable/_locales/zh_TW/messages.json b/3.120-pre/_locales/zh_TW/messages.json similarity index 100% rename from stable/_locales/zh_TW/messages.json rename to 3.120-pre/_locales/zh_TW/messages.json diff --git a/stable/assets/fonts/OpenSans-Regular.ttf b/3.120-pre/assets/fonts/OpenSans-Regular.ttf similarity index 100% rename from stable/assets/fonts/OpenSans-Regular.ttf rename to 3.120-pre/assets/fonts/OpenSans-Regular.ttf diff --git a/stable/assets/fonts/OpenSans-SemiBold.ttf b/3.120-pre/assets/fonts/OpenSans-SemiBold.ttf similarity index 100% rename from stable/assets/fonts/OpenSans-SemiBold.ttf rename to 3.120-pre/assets/fonts/OpenSans-SemiBold.ttf diff --git a/stable/assets/icons/128.png b/3.120-pre/assets/icons/128.png similarity index 100% rename from stable/assets/icons/128.png rename to 3.120-pre/assets/icons/128.png diff --git a/stable/assets/icons/128g.png b/3.120-pre/assets/icons/128g.png similarity index 100% rename from stable/assets/icons/128g.png rename to 3.120-pre/assets/icons/128g.png diff --git a/stable/assets/icons/16.png b/3.120-pre/assets/icons/16.png similarity index 100% rename from stable/assets/icons/16.png rename to 3.120-pre/assets/icons/16.png diff --git a/stable/assets/icons/16g.png b/3.120-pre/assets/icons/16g.png similarity index 100% rename from stable/assets/icons/16g.png rename to 3.120-pre/assets/icons/16g.png diff --git a/stable/assets/icons/32.png b/3.120-pre/assets/icons/32.png similarity index 100% rename from stable/assets/icons/32.png rename to 3.120-pre/assets/icons/32.png diff --git a/stable/assets/icons/32g.png b/3.120-pre/assets/icons/32g.png similarity index 100% rename from stable/assets/icons/32g.png rename to 3.120-pre/assets/icons/32g.png diff --git a/stable/assets/icons/48.png b/3.120-pre/assets/icons/48.png similarity index 100% rename from stable/assets/icons/48.png rename to 3.120-pre/assets/icons/48.png diff --git a/stable/assets/icons/48g.png b/3.120-pre/assets/icons/48g.png similarity index 100% rename from stable/assets/icons/48g.png rename to 3.120-pre/assets/icons/48g.png diff --git a/stable/background.js b/3.120-pre/background.js similarity index 92% rename from stable/background.js rename to 3.120-pre/background.js index 9b01f62ed..3e99e9e50 100644 --- a/stable/background.js +++ b/3.120-pre/background.js @@ -339,4 +339,30 @@ var _gaq = _gaq || []; ga.src = 'https://ssl.google-analytics.com/ga.js'; document.body.appendChild(ga); -})();*/ \ No newline at end of file +})();*/ + + + + + + + + + +chrome.tabs.onActivated.addListener(function(activeInfo) { + chrome.tabs.query({}, function(tabs) { + chrome.tabs.sendMessage(activeInfo.tabId, { + action: 'focus' + }); + + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].id !== activeInfo.tabId) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + action: 'blur' + }); + } + } + } + }); +}); \ No newline at end of file diff --git a/3.120-pre/content-scripts.js b/3.120-pre/content-scripts.js new file mode 100644 index 000000000..33d8cbff7 --- /dev/null +++ b/3.120-pre/content-scripts.js @@ -0,0 +1,137 @@ +/*------------------------------------------------------------------------------ +>>> TABLE OF CONTENTS: +-------------------------------------------------------------------------------- +1.0 Features +2.0 Isset +3.0 Initialization +4.0 Change listener +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +1.0 FEATURES +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +1.1 YOUTUBE HOME PAGE +------------------------------------------------------------------------------*/ + +function youtubeHomePage(option) { + if (location.pathname === '/') { + if (location.hostname === 'www.youtube.com') { + if (option !== '/' && option !== 'search') { + location.replace(option); + } + } + } +} + + +/*------------------------------------------------------------------------------ +2.0 ISSET +------------------------------------------------------------------------------*/ + +function isset(variable) { + if (typeof variable === 'undefined' || variable === null) { + return false; + } + + return true; +}; + +function camelize(string) { + return string.replace(/_[a-z]/g, function(match) { + return match[1].toUpperCase(); + }); +} + +function attributes(items) { + var whitelist = { + 'youtube-home-page': true + }; + + for (var key in items) { + var attribute = key.replace(/_/g, '-'); + + //if (whitelist.hasOwnProperty(attribute)) { + document.documentElement.setAttribute('it-' + attribute, items[key]); + //} + } +} + + +/*------------------------------------------------------------------------------ +3.0 INITIALIZATION +------------------------------------------------------------------------------*/ + +function injectScript(textContent) { + var script = document.createElement('script'); + + script.textContent = textContent; + + document.documentElement.appendChild(script); + + script.remove(); +} + +chrome.storage.local.get('youtube_home_page', function(items) { + youtubeHomePage(items.youtube_home_page); +}); + +chrome.storage.local.get(function(items) { + var textContent = 'var ImprovedTube={'; + + // attributes + attributes(items); + + // Isset + textContent += 'isset:' + isset + ','; + + // Features + for (var key in ImprovedTube) { + textContent += key + ': ' + ImprovedTube[key] + ','; + } + + // Storage + textContent += 'storage:' + JSON.stringify(items); + + // Initialization + textContent += '};ImprovedTube.init();'; + + injectScript(textContent); +}); + + +/*------------------------------------------------------------------------------ +4.0 CHANGE LISTENER +------------------------------------------------------------------------------*/ + +chrome.storage.onChanged.addListener(function(changes) { + for (var key in changes) { + var value = changes[key].newValue, + func = camelize(key); + + document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), value); + + injectScript('ImprovedTube.storage[\'' + key + '\']=' + (typeof value === 'boolean' ? value : '\'' + value + '\'') + ';'); + + if (typeof ImprovedTube[func] === 'function') { + injectScript('ImprovedTube.' + func + '();'); + } + } +}); + + +chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { + if (request.action === 'focus') { + injectScript('ImprovedTube.focus = true;'); + } else if (request.action === 'blur') { + injectScript('ImprovedTube.focus = false;'); + } + + injectScript('ImprovedTube.onfocus();'); +}); + + +chrome.runtime.sendMessage({ + enabled: true +}); \ No newline at end of file diff --git a/3.120-pre/content-styles.css b/3.120-pre/content-styles.css new file mode 100644 index 000000000..1af4f4c07 --- /dev/null +++ b/3.120-pre/content-styles.css @@ -0,0 +1,1206 @@ +/*------------------------------------------------------------------------------ +>>> TABLE OF CONTENTS: +-------------------------------------------------------------------------------- +1.0 General + 1.1 YouTube home page + 1.2 Collapse of subscription sections + 1.3 Add "Scroll to top" + 1.4 Remove related search results + 1.5 Mark watched videos + 1.6 Squared user images + 1.7 Hide animated thumbnails +2.0 Appearance + 2.1 Header + 2.1.1 Position + 2.1.2 Improve logo + 2.1.3 Hide right buttons + 2.2 Player + 2.2.1 Hide annotations + 2.2.2 Hide cards + 2.2.3 Show cards on mouse hover + 2.2.4 Player size + 2.2.5 Player color + 2.2.6 Transparent background + 2.2.7 Hide endscreen + 2.2.8 Hide "Scroll for details" + 2.2.9 Always show progress bar + 2.3 Sidebar + 2.3.1 Livachat + 2.3.2 Hide playlist + 2.3.3 Relative videos + 2.4 Details + 2.4.1 Hide details + 2.4.2 Description + 2.4.3 Hide views count + 2.4.4 Likes + 2.4.5 Show dislike button red colour + 2.5 Comments + 2.6 Footer +3.0 Themes +4.0 Player +5.0 Playlist + 5.1 Reverse +6.0 Channel + 6.1 Featured content +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +1.0 GENERAL +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +1.1 YOUTUBE HOME PAGE +------------------------------------------------------------------------------*/ + +html[it-page-type=home][it-youtube-home-page=search], +html[it-page-type=home][it-youtube-home-page=search] app-drawer[opened], +html[it-page-type=home][it-youtube-home-page=search] #appbar-guide-menu +{ + visibility: hidden; + overflow: hidden; + + width: 100vw; + height: 100vh; + + pointer-events: none; +} + +html[it-page-type=home][it-youtube-home-page=search] ytd-masthead ytd-searchbox, +html[it-page-type=home][it-youtube-home-page=search] #yt-masthead-content +{ + position: fixed; + z-index: 99999; + top: 0; + left: 0; + + display: flex; + visibility: visible; + + width: 100vw; + height: 100vh; + margin: 0; + padding: 0; + + pointer-events: all; + + justify-content: center; + align-items: center; +} + +html[it-page-type=home][it-youtube-home-page=search] ytd-searchbox > form +{ + width: 100%; + max-width: 768px; + padding: 16px 32px; +} + +html[it-page-type=home][it-youtube-home-page=search] .gstl_50.sbdd_a +{ + z-index: 99999; + + visibility: visible; + + pointer-events: all; +} + + +/*------------------------------------------------------------------------------ +1.2 COLLAPSE OF SUBSCRIPTION SECTION +------------------------------------------------------------------------------*/ + +ytd-item-section-renderer .grid-subheader + #contents +{ + overflow: hidden; +} + +ytd-item-section-renderer.it-section-collapsed .grid-subheader + #contents +{ + height: 0 !important; +} + +ytd-item-section-renderer .it-section-collapse +{ + cursor: pointer; +} + +ytd-item-section-renderer .it-section-collapse svg +{ + width: 24px; + height: 24px; + + transition: transform 150ms; + + fill: var(--ytd-menu-renderer-button-color, var(--yt-spec-icon-inactive)); +} + +ytd-item-section-renderer .it-section-collapse:hover svg +{ + fill: var(--yt-spec-icon-active-other); +} + +ytd-item-section-renderer.it-section-collapsed .it-section-collapse svg +{ + transform: rotate(180deg); +} + + +/*------------------------------------------------------------------------------ +1.3 ADD "SCROLL TO TOP" +------------------------------------------------------------------------------*/ + +#it-scroll-to-top +{ + position: fixed; + z-index: 999; + right: 32px; + bottom: 32px; + + display: flex; + visibility: hidden; + + box-sizing: border-box; + width: 56px; + height: 56px; + + cursor: pointer; + transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; + transform: translateY(88px); + pointer-events: none; + + opacity: 0; + border-radius: 50%; + background: linear-gradient(135deg, #f8d266, #f17953); + box-shadow: 0 1px 1px 1px rgba(230, 109, 70, .7), 0 3px 5px rgba(0,0,0,.35); + + justify-content: center; + align-items: center; +} + +html[it-show-scroll-to-top=true] #it-scroll-to-top +{ + visibility: visible; + + transform: translateY(0px); + pointer-events: all; + + opacity: 1; +} + +html:not([it-red-popup-theme]) #it-scroll-to-top, +html[it-red-popup-theme=true] #it-scroll-to-top +{ + background: #f73030; + box-shadow: 0 3px 5px rgba(0,0,0,.35); +} + +#it-scroll-to-top > svg +{ + width: 24px; + + fill: #fff; +} + +html[it-show-scroll-to-top=true] #it-scroll-to-top:hover +{ + transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; + transform: translateY(4px) scale(.975); + + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, .2), 0 8px 10px 1px rgba(0, 0, 0, .14), 0 3px 14px 2px rgba(0, 0, 0, .12); +} + + +/*------------------------------------------------------------------------------ +1.4 REMOVE RELATED SEARCH RESULTS +------------------------------------------------------------------------------*/ + +html[it-remove-related-search-results=true] ytd-horizontal-card-list-renderer.style-scope.ytd-item-section-renderer, +html[it-remove-related-search-results=true] li > div.feed-item-container.browse-list-item-container.yt-section-hover-container.compact-shelf.shelf-item.branded-page-box, +html[it-remove-related-search-results=true] li > div.search-refinements +{ + display: none; +} + + +/*------------------------------------------------------------------------------ +1.5 MARK WATCHED VIDEOS +------------------------------------------------------------------------------*/ + +.it-mark-watched +{ + position: absolute; + z-index: 999; + bottom: 4px; + left: 4px; + + visibility: hidden; + overflow: hidden; + + width: 28px; + height: 28px; + + cursor: pointer; + text-align: center; + + color: #fff; + border-radius: 2px; + background: rgba(0,0,0,.8); +} + +.it-mark-watched svg +{ + position: absolute; + top: 4px; + left: 4px; + + width: 20px; + height: 20px; + + fill: var(--ytd-menu-renderer-button-color, var(--yt-spec-icon-inactive, #aaa)); +} + +*:hover > .it-mark-watched +{ + visibility: visible; +} + +.it-mark-watched.watched svg +{ + fill: var(--yt-spec-icon-active-other, #fff); +} + + +/*------------------------------------------------------------------------------ +1.6 SQUARED USER IMAGES +------------------------------------------------------------------------------*/ + +html[it-squared-user-images=true] #avatar.ytd-shelf-renderer, +html[it-squared-user-images=true] yt-img-shadow, +html[it-squared-user-images=true] #yt-masthead-user .yt-masthead-user-icon +{ + border-radius: unset !important; +} + + +/*------------------------------------------------------------------------------ +1.7 HIDE ANIMATED THUMBNAILS +------------------------------------------------------------------------------*/ + +html[it-hide-animated-thumbnails=true] #mouseover-overlay, +html[it-hide-animated-thumbnails=true] .mouseover-play, +html[it-hide-animated-thumbnails=true] .mouseover-img +{ + visibility: hidden !important; +} + + +/*------------------------------------------------------------------------------- +2.0 APPEARANCE +-------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------- +2.1 HEADER +-------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------- +2.1.1 POSITION +-------------------------------------------------------------------------------*/ + +html[it-header-position=hidden]:not([it-search-focus=true]) #masthead-container +{ + transform: translateY(-100%); +} + +html[it-header-position=hidden] app-drawer#guide #guide-spacer, +html[it-header-position=hidden] ytd-app > ytd-masthead, +html[it-header-position=hover] app-drawer#guide #guide-spacer, +html[it-header-position=static] app-drawer#guide #guide-spacer, +html[it-header-position=hidden_on_video_page][it-page-type=video] #masthead-container, +html[it-header-position=hidden_on_video_page][it-page-type=video] app-drawer#guide #guide-spacer, +html[it-header-position=hover_on_video_page][it-page-type=video] app-drawer#guide #guide-spacer +{ + display: none; +} + +html[it-header-position=hover] ytd-app > ytd-masthead, +html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app > ytd-masthead, +html[it-header-position=hover] #masthead-container, +html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-container +{ + z-index: 2147483647; +} + +html[it-header-position=hidden] ytd-page-manager#page-manager, +html[it-header-position=hidden] app-header#header, +html[it-header-position=hidden_on_video_page][it-page-type='video'] ytd-page-manager#page-manager, +html[it-header-position=hidden_on_video_page][it-page-type='video'] app-header#header, +html[it-header-position=hidden] #appbar-guide-menu, +html[it-header-position=hidden_on_video_page][it-page-type='video'] #appbar-guide-menu, +html[it-header-position=hover] ytd-page-manager#page-manager, +html[it-header-position=hover] app-header#header, +html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-page-manager#page-manager, +html[it-header-position=hover_on_video_page][it-page-type='video'] app-header#header, +html[it-header-position=hover] #appbar-guide-menu, +html[it-header-position=hover_on_video_page][it-page-type='video'] #appbar-guide-menu, +html[it-header-position=static] ytd-page-manager#page-manager, +html[it-header-position=static] #appbar-guide-menu +{ + margin-top: 0; +} + +html[it-header-position=hover] ytd-app > ytd-masthead, +html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) ytd-app > ytd-masthead, +html[it-header-position=hover]:not([it-improvedtube-search=true]) #masthead-container, +html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) #masthead-container +{ + transition: transform 250ms; + transform: translateY(-75%); +} + +html[it-header-position=hover] #masthead-container:hover, +html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-container:hover, +html[it-header-position=hover][it-search-focus=true] #masthead-container, +html[it-header-position=hover_on_video_page][it-page-type='video'][it-search-focus=true] #masthead-container +{ + transform: translateY(0%); +} + +html[it-header-position=static] #masthead-container +{ + position: relative; + z-index: 999999999999; +} + +html[it-header-position=hover] ytd-app[masthead-hidden_] ytd-masthead, +html[it-header-position=hover] ytd-app[scrolling_] ytd-masthead, +html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app[masthead-hidden_] ytd-masthead, +html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app[scrolling_] ytd-masthead +{ + display: none; +} + + +/*------------------------------------------------------------------------------ +2.1.2 IMPROVE LOGO +------------------------------------------------------------------------------*/ + +html[it-header-improve-logo=true] ytd-topbar-logo-renderer#logo +{ + filter: grayscale(1); +} + +html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer path[fill*='#FF0000'] +{ + fill: #282828; +} + +html[it-header-improve-logo=true][dark] g.ytd-topbar-logo-renderer path[fill*='#FF0000'] +{ + fill: #fff; +} + +html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer polygon[fill*='#FFFFFF'] +{ + fill: #232323; +} + + +/*------------------------------------------------------------------------------ +2.1.3 HIDE RIGHT BUTTONS +------------------------------------------------------------------------------*/ + +html[it-header-hide-right-buttons=true] ytd-masthead#masthead #container #end +{ + visibility: hidden; + + pointer-events: none; +} + + +/*------------------------------------------------------------------------------ +2.2 PLAYER +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +2.2.1 HIDE ANNOTATIONS +------------------------------------------------------------------------------*/ + +html[it-player-hide-annotations=true] .annotation, +html[it-player-hide-annotations=true] .annotation-type-text, +html[it-player-hide-annotations=true] .annotation-shape +{ + display: none; +} + + +/*------------------------------------------------------------------------------ +2.2.2 HIDE CARDS +------------------------------------------------------------------------------*/ + +html[it-player-hide-cards=true] .ytp-ce-element, +html[it-player-hide-cards=true] .ytp-ce-video, +html[it-player-hide-cards=true] .ytp-cards-button, +html[it-player-hide-cards=true] .ytp-cards-teaser +{ + display: none; +} + + +/*------------------------------------------------------------------------------ +2.2.3 SHOW CARDS ON MOUSE HOVER +------------------------------------------------------------------------------*/ + +html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-ce-element, +html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-ce-video, +html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-cards-button, +html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-cards-teaser +{ + display: none; +} + +html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-ce-element, +html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-ce-video, +html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-cards-button, +html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-cards-teaser +{ + display: block; +} + + +/*------------------------------------------------------------------------------ +2.2.4 PLAYER SIZE +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +# VARIABLES +------------------------------------------------------------------------------*/ + +/* ---- HEADER --------------------------------------------------------------*/ + +/* ---- NORMAL --------------------------------------------------------------*/ + +html[it-page-type=video]:not([it-header-position]) ytd-app, +html[it-page-type=video][it-header-position=normal] ytd-app, +html[it-page-type=video][it-header-position=static] ytd-app +{ + --it-header-size: 56px; +} + +html[it-page-type=video]:not([it-header-position]) ytd-watch-flexy:not([theater]), +html[it-page-type=video][it-header-position=normal] ytd-watch-flexy:not([theater]), +html[it-page-type=video][it-header-position=static] ytd-watch-flexy:not([theater]) +{ + --it-header-size: 104px; +} + +html[it-page-type=video]:not([it-header-position]) div#page, +html[it-page-type=video][it-header-position=normal] div#page, +html[it-page-type=video][it-header-position=static] div#page +{ + --it-header-size: 50px; +} + +html[it-page-type=video]:not([it-header-position]) div#page:not(.watch-wide), +html[it-page-type=video][it-header-position=normal] div#page:not(.watch-wide), +html[it-page-type=video][it-header-position=static] div#page:not(.watch-wide) +{ + --it-header-size: 70px; +} + + +/* ---- HIDDEN ---------------------------------------------------------------*/ + +html[it-page-type=video][it-header-position=hidden], +html[it-page-type=video][it-header-position=hidden_on_video_page] +{ + --it-header-size: 0px; +} + +html[it-page-type=video][it-header-position=hidden] ytd-watch-flexy:not([theater]), +html[it-page-type=video][it-header-position=hidden_on_video_page] ytd-watch-flexy:not([theater]) +{ + --it-header-size: 48px; +} + +html[it-page-type=video][it-header-position=hidden] div#page, +html[it-page-type=video][it-header-position=hidden_on_video_page] div#page +{ + --it-header-size: 0px; +} + +html[it-page-type=video][it-header-position=hidden] div#page:not(.watch-wide), +html[it-page-type=video][it-header-position=hidden_on_video_page] div#page:not(.watch-wide) +{ + --it-header-size: 20px; +} + + +/* ---- HOVER ----------------------------------------------------------------*/ + +html[it-page-type=video][it-header-position=hover], +html[it-page-type=video][it-header-position=hover_on_video_page] +{ + --it-header-size: 14px; +} + +html[it-page-type=video][it-header-position=hover] ytd-watch-flexy:not([theater]), +html[it-page-type=video][it-header-position=hover_on_video_page] ytd-watch-flexy:not([theater]) +{ + --it-header-size: 62px; +} + +html[it-page-type=video][it-header-position=hover] div#page, +html[it-page-type=video][it-header-position=hover_on_video_page] div#page +{ + --it-header-size: 12px; +} + +html[it-page-type=video][it-header-position=hover] div#page:not(.watch-wide), +html[it-page-type=video][it-header-position=hover_on_video_page] div#page:not(.watch-wide) +{ + --it-header-size: 32px; +} + +html[it-page-type=video][it-header-position=hover] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container, +html[it-page-type=video][it-header-position=hover_on_video_page] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container +{ + margin-top: 14px; +} + +html[it-page-type=video][it-header-position=hover] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen), +html[it-page-type=video][it-header-position=hover_on_video_page] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen) +{ + margin-top: 12px; +} + + +/* ---- FIXED PLAYER SIZE ----------------------------------------------------*/ + +html[it-page-type=video][it-player-size='240p'] *, +html[it-page-type=video][it-player-size='360p'] *, +html[it-page-type=video][it-player-size='480p'] *, +html[it-page-type=video][it-player-size='576p'] *, +html[it-page-type=video][it-player-size='720p'] *, +html[it-page-type=video][it-player-size='1080p'] *, +html[it-page-type=video][it-player-size='1440p'] *, +html[it-page-type=video][it-player-size='2160p'] * +{ + --it-header-size: 0px !important; +} + + +/* ---- SIZES ----------------------------------------------------------------*/ + +html[it-page-type=video][it-player-size='240p'] +{ + --it-player-size: 240px; +} + +html[it-page-type=video][it-player-size='360p'] +{ + --it-player-size: 360px; +} + +html[it-page-type=video][it-player-size='480p'] +{ + --it-player-size: 480px; +} + +html[it-page-type=video][it-player-size='576p'] +{ + --it-player-size: 576px; +} + +html[it-page-type=video][it-player-size='720p'] +{ + --it-player-size: 720px; +} + +html[it-page-type=video][it-player-size='1080p'] +{ + --it-player-size: 1080px; +} + +html[it-page-type=video][it-player-size='1440p'] +{ + --it-player-size: 1440px; +} + +html[it-page-type=video][it-player-size='2160p'] +{ + --it-player-size: 2160px; +} + +html[it-page-type=video][it-player-size='full_window'] +{ + --it-player-size: 100vh; +} + +html[it-page-type=video][it-player-size='fit_to_window'] +{ + --it-player-size: 100vh; +} + + +/*------------------------------------------------------------------------------ +# ELEMENTS +------------------------------------------------------------------------------*/ + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-container-inner +{ + padding-top: calc(var(--it-player-size) - var(--it-header-size)) !important; +} + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container, +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container +{ + width: auto !important; + height: calc(var(--it-player-size) - var(--it-header-size)) !important; + min-height: auto !important; + max-height: 100vh !important; +} + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player +{ + background: #000 !important; +} + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-container +{ + position: absolute !important; + + display: flex !important; + + width: 100% !important; + height: 100% !important; + + justify-content: center !important; + align-items: center !important; +} + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video +{ + position: static !important; + top: 0 !important; + left: 0 !important; + + width: auto !important; + max-width: 100% !important; + height: calc(var(--it-player-size) - var(--it-header-size)) !important; +} + + +/*FIT TO WINDOW*/ + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-theater-container +{ + background: transparent !important; +} + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) +{ + display: table !important; + overflow: visible !important; + + width: auto !important; + margin: auto !important; +} + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-chrome-bottom +{ + width: calc(100% - 24px) !important; +} + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .html5-video-container +{ + position: static !important; + + display: inline-block !important; + + width: auto !important; +} + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video +{ + position: static !important; + + width: auto !important; + max-width: 100vw !important; +} + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-iv-video-content +{ + pointer-events: none !important; +} + +html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, +html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player, +html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, +html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player +{ + margin-top: 14px !important; +} + + +/*------------------------------------------------------------------------------ +2.2.5 PLAYER COLOR +------------------------------------------------------------------------------*/ + +html[it-player-color='pink'] +{ + --it-player-color: #e91e63; +} + +html[it-player-color='purple'] +{ + --it-player-color: #9c27b0; +} + +html[it-player-color='deep_purple'] +{ + --it-player-color: #673ab7; +} + +html[it-player-color='indigo'] +{ + --it-player-color: #3f51b5; +} + +html[it-player-color='blue'] +{ + --it-player-color: #1e88e5; +} + +html[it-player-color='light_blue'] +{ + --it-player-color: #03a9f4; +} + +html[it-player-color='cyan'] +{ + --it-player-color: #00bcd4; +} + +html[it-player-color='teal'] +{ + --it-player-color: #009688; +} + +html[it-player-color='green'] +{ + --it-player-color: #4caf50; +} + +html[it-player-color='light_green'] +{ + --it-player-color: #8bc34a; +} + +html[it-player-color='lime'] +{ + --it-player-color: #cddc39; +} + +html[it-player-color='yellow'] +{ + --it-player-color: #ffeb3b; +} + +html[it-player-color='amber'] +{ + --it-player-color: #ffc107; +} + +html[it-player-color='orange'] +{ + --it-player-color: #ff9800; +} + +html[it-player-color='deep_orange'] +{ + --it-player-color: #ff5722; +} + +html[it-player-color='brown'] +{ + --it-player-color: #795548; +} + +html[it-player-color='blue_gray'] +{ + --it-player-color: #607d8b; +} + +html[it-player-color='white'] +{ + --it-player-color: #fff; +} + +html[it-player-color]:not([it-player-color='red']) .ytp-play-progress, +html[it-player-color]:not([it-player-color='red']) .ytp-scrubber-button, +html[it-player-color]:not([it-player-color='red']) .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, +html[it-player-color]:not([it-player-color='red']) .ytp-settings-button.ytp-hd-quality-badge:after +{ + background-color: var(--it-player-color) !important; +} + +html[it-player-color]([it-player-color='red']) .ytp-swatch-color +{ + color: var(--it-player-color) !important; +} + + +/*------------------------------------------------------------------------------ +2.2.6 TRANSPARENT BACKGROUND +------------------------------------------------------------------------------*/ + +[it-player-transparent-background=true] #player-theater-container, +[it-player-transparent-background=true] #theater-background, +[it-player-transparent-background=true] #player-api, +[it-player-transparent-background=true] .player-api, +[it-player-transparent-background=true] #movie_player, +[it-player-transparent-background=true] #player-container, +[it-player-transparent-background=true] #movie_player video +{ + background-color: transparent !important; +} + + +/*------------------------------------------------------------------------------ +2.2.7 HIDE ENDSCREEN +------------------------------------------------------------------------------*/ + +html[it-player-hide-endscreen=true] .html5-endscreen +{ + display: none !important; +} + + +/*------------------------------------------------------------------------------ +2.2.8 HIDE "SCROLL FOR DETAILS" +------------------------------------------------------------------------------*/ + +html[it-hide-scroll-for-details=true] button.ytp-fullerscreen-edu-button +{ + display: none !important; +} + +html[it-hide-scroll-for-details=true] ytd-app[scrolling_] +{ + overflow: hidden !important; +} + + +/*------------------------------------------------------------------------------ +2.2.9 ALWAYS SHOW PROGRESS BAR +------------------------------------------------------------------------------*/ + +html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom +{ + opacity: 1 !important; +} + +html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-chrome-controls +{ + opacity: 0 !important; +} + +html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-progress-bar-container +{ + bottom: 0 !important; +} + + +/*------------------------------------------------------------------------------ +2.3 SIDEBAR +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +2.3.1 LIVECHAT +------------------------------------------------------------------------------*/ + +html[it-livechat=hidden] ytd-live-chat-frame#chat, +html[it-livechat=hidden] div#watch-sidebar-live-chat +{ + display: none !important; +} + + +/*------------------------------------------------------------------------------ +2.3.2 HIDE PLAYLIST +------------------------------------------------------------------------------*/ + +html[it-hide-playlist=true] ytd-playlist-panel-renderer#playlist, +html[it-hide-playlist=true] div#player-playlist, +html[it-hide-playlist=true] #placeholder-playlist +{ + position: absolute !important; + + width: 0 !important; + height: 0 !important; + + pointer-events: none !important; + + opacity: 0 !important; +} + + +/*------------------------------------------------------------------------------ +2.3.3 RELATIVE VIDEOS +------------------------------------------------------------------------------*/ + +html[it-related-videos=hidden] div#related, +html[it-related-videos=hidden] div#watch7-sidebar-contents, +html[it-related-videos=collapsed].related-videos-collapsed #watch7-sidebar-modules, +html[it-related-videos=collapsed].related-videos-collapsed #related > *:not(#improvedtube-collapsed-related-videos), +html[it-related-videos=collapsed]:not(.related-videos-collapsed) #improvedtube-collapsed-related-videos .show-more-text, +html[it-related-videos=collapsed].related-videos-collapsed #improvedtube-collapsed-related-videos .show-less-text +{ + display: none !important; +} + +#improvedtube-collapsed-related-videos +{ + font-family: inherit; + font-size: 12px; + font-weight: 500; + + box-sizing: border-box; + width: 100%; + margin: 0 0 3rem; + padding: 1rem 0; + + cursor: pointer; + letter-spacing: .007px; + text-transform: uppercase; + + color: var(--yt-expand-color); + border: none; + border-bottom: 1px solid var(--yt-spec-10-percent-layer); + outline: none; + background: transparent; +} + +#watch7-sidebar #improvedtube-collapsed-related-videos +{ + font-size: 12px; + font-weight: 500; + + display: block; + + width: 95%; + height: 100%; + margin: 0 auto 15px !important; + padding: 10px 0; + + cursor: pointer; + text-align: center; + + color: #333; + border: 1px solid #d3d3d3; + border-color: #c6c6c6; + outline: 0; + background-color: #f8f8f8; + background-image: linear-gradient(to top, #f0f0f0 0, #f8f8f8 100%); + box-shadow: inset 0 1px 0 #ddd; +} + + +/*------------------------------------------------------------------------------ +2.4 DETAILS +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +2.4.1 HIDE DETAILS +------------------------------------------------------------------------------*/ + +html[it-hide-details=true] #watch-header, +html[it-hide-details=true] #watch-action-panels, +html[it-hide-details=true] #action-panel-details, +html[it-hide-details=true] #primary-inner > #info, +html[it-hide-details=true] #primary-inner > #meta +{ + display: none !important; +} + + +/*------------------------------------------------------------------------------ +2.4.2 DESCRIPTION +------------------------------------------------------------------------------*/ + +html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, +html[it-description=hidden] div#action-panel-details, +html[it-description=expanded] #meta-contents ytd-expander[collapsed] paper-button, +html[it-description=expanded] #action-panel-details button +{ + display: none !important; +} + +html[it-description=expanded] #meta-contents ytd-expander[collapsed] > #content.ytd-expander, +html[it-description=expanded] #watch-description-text +{ + max-height: unset !important; +} + +html[it-description=expanded] .yt-uix-expander .yt-uix-expander-collapsed-body, +html[it-description=expanded] .yt-uix-expander-collapsed .yt-uix-expander-body +{ + display: block !important; +} + + +/*------------------------------------------------------------------------------ +2.4.3 HIDE VIEWS COUNT +------------------------------------------------------------------------------*/ + +html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer, +html[it-hide-views-count=true] #watch7-views-info > .watch-view-count +{ + display: none !important; +} + + +/*------------------------------------------------------------------------------ +2.4.4 Likes +------------------------------------------------------------------------------*/ + +[it-likes=hidden] #watch8-sentiment-actions > .like-button-renderer, +[it-likes=hidden] .video-extras-sparkbar-likes, +[it-likes=hidden] .video-extras-sparkbar-dislikes, +[it-likes=hidden] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(1), +[it-likes=hidden] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(2), +[it-likes=hidden] #sentiment.ytd-video-primary-info-renderer +{ + visibility: hidden !important; + + pointer-events: none !important; +} + +[it-likes=icons_only] #watch8-sentiment-actions > .like-button-renderer button > span, +[it-likes=icons_only] .video-extras-sparkbar-likes, +[it-likes=icons_only] .video-extras-sparkbar-dislikes, +[it-likes=icons_only] #top-level-buttons ytd-toggle-button-renderer:nth-child(1) yt-formatted-string, +[it-likes=icons_only] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) yt-formatted-string, +[it-likes=icons_only] #sentiment.ytd-video-primary-info-renderer +{ + visibility: hidden !important; + + pointer-events: none !important; +} + +[it-likes=icons_only] #text.style-scope.ytd-toggle-button-renderer.style-text, +[it-likes=icons_only] #text.style-scope.ytd-toggle-button-renderer.style-default-active +{ + visibility: hidden !important; +} + +[it-likes=icons_only] .like-button-renderer-like-button, +[it-likes=icons_only] .like-button-renderer-dislike-button +{ + color: transparent !important; +} + + +/*------------------------------------------------------------------------------ +2.4.5 SHOW DISLIKE RED COLOR +------------------------------------------------------------------------------*/ + +[it-red-dislike-button=true] #top-level-buttons > ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active > a +{ + color: #fc0000 !important; +} + + +/*------------------------------------------------------------------------------ +2.5 COMMENTS +------------------------------------------------------------------------------*/ + +html[it-comments=hidden] ytd-comments#comments, +html[it-comments=hidden] div#watch-discussion, +html[it-comments=collapsed].comments-collapsed #comment-section-renderer-items + button, +html[it-comments=collapsed]:not(.comments-collapsed) #improvedtube-collapsed-comments .show-more-text, +html[it-comments=collapsed].comments-collapsed #improvedtube-collapsed-comments .show-less-text, +html[it-comments=collapsed].comments-collapsed #comments #spinner +{ + display: none !important; +} + +html[it-comments=collapsed].comments-collapsed #comment-section-renderer-items, +html[it-comments=collapsed].comments-collapsed #comments #sections #contents +{ + overflow: hidden !important; + + height: 0 !important; +} + +#sections #improvedtube-collapsed-comments +{ + font-family: inherit; + font-size: 12px; + font-weight: 500; + + box-sizing: border-box; + width: 100%; + margin: 0 0 3rem; + padding: 1rem 0; + + cursor: pointer; + letter-spacing: .007px; + text-transform: uppercase; + + color: var(--yt-expand-color); + border: none; + border-bottom: 1px solid var(--yt-spec-10-percent-layer); + outline: none; + background: transparent; +} + + +/*------------------------------------------------------------------------------ +2.6 FOOTER +------------------------------------------------------------------------------*/ + +html[it-hide-footer=true] app-drawer#guide #footer +{ + display: none !important; +} + + +/*------------------------------------------------------------------------------ +5.0 PLAYLIST +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +5.1 REVERSE +------------------------------------------------------------------------------*/ + +#it-reverse-playlist +{ + width: 40px; + height: 40px; +} + +#it-reverse-playlist svg +{ + fill: var(--yt-spec-icon-inactive); +} + +#it-reverse-playlist.active svg +{ + fill: var(--yt-spec-icon-active-other); +} + + +/*------------------------------------------------------------------------------ +6.0 CHANNEL +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +6.1 FEATURED CONTENT +-------------------------------------------------------------------------------- +TODO: FIX +------------------------------------------------------------------------------*/ + +html[it-channel-hide-featured-content=true] #secondary.ytd-two-column-browse-results-renderer +{ + display: none; +} \ No newline at end of file diff --git a/stable/index.html b/3.120-pre/index.html similarity index 100% rename from stable/index.html rename to 3.120-pre/index.html diff --git a/stable/manifest.json b/3.120-pre/manifest.json similarity index 93% rename from stable/manifest.json rename to 3.120-pre/manifest.json index 0c956e018..088a9baf6 100644 --- a/stable/manifest.json +++ b/3.120-pre/manifest.json @@ -32,7 +32,7 @@ { "all_frames":true, "css":[ - "content-scripts.css" + "content-styles.css" ], "exclude_matches":[ "https://www.youtube.com/improvedtube", @@ -41,6 +41,7 @@ "http://studio.youtube.com/*" ], "js":[ + "youtube-scripts.js", "content-scripts.js" ], "matches":[ diff --git a/stable/options.html b/3.120-pre/options.html similarity index 100% rename from stable/options.html rename to 3.120-pre/options.html diff --git a/stable/page.js b/3.120-pre/page.js similarity index 100% rename from stable/page.js rename to 3.120-pre/page.js diff --git a/stable/popup.css b/3.120-pre/popup.css similarity index 100% rename from stable/popup.css rename to 3.120-pre/popup.css diff --git a/stable/popup.js b/3.120-pre/popup.js similarity index 91% rename from stable/popup.js rename to 3.120-pre/popup.js index 4ea12e10f..b459f6f0b 100644 --- a/stable/popup.js +++ b/3.120-pre/popup.js @@ -1,3 +1,27 @@ +/*------------------------------------------------------------------------------ +>>> TABLE OF CONTENTS: +-------------------------------------------------------------------------------- +1.0 Header + 1.1 Mixer + 1.2 Settings + 1.3 Active features +2.0 Main + 2.1 General + 2.2 Appearance + 2.3 Themes + 2.4 Player + 2.5 Playlist + 2.6 Channel + 2.7 Shortcuts + 2.8 Blacklist + 2.9 Analyzer +3.0 Initialization +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +1.0 HEADER +------------------------------------------------------------------------------*/ + var Menu = { header: { type: 'header', @@ -95,69 +119,14 @@ var Menu = { } }; -Menu.main = { - type: 'main', - appearanceId: 'home', - on: { - change: function(container) { - var item = this.history[this.history.length - 1], - id = item.appearanceId; - - document.body.dataset.appearance = id; - container.dataset.appearance = id; - - document.querySelector('.satus-text--title').innerText = satus.locale.getMessage(item.label) || 'ImprovedTube'; - } - }, - - section: { - type: 'section' - }, - footer: { - type: 'button', - class: 'satus-button--ad', - label: 'DARK MODE', - title: 'Dark Mode', - onclick: function() { - window.open('https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl', '_blank'); - } - }, - - info: { - type: 'section', - class: 'satus-section--info', - - email: { - type: 'button', - label: 'Email', - title: 'bugs@improvedtube.com', - onclick: function() { - window.open('mailto:bugs@improvedtube.com', '_blank'); - } - }, - github: { - type: 'button', - label: 'GitHub', - title: '/ImprovedTube/ImprovedTube', - onclick: function() { - window.open('https://github.com/ImprovedTube/ImprovedTube/', '_blank'); - } - }, - website: { - type: 'button', - label: 'Website', - title: 'improvedtube.com', - onclick: function() { - window.open('http://www.improvedtube.com/', '_blank'); - } - } - } -}; +/*------------------------------------------------------------------------------ +1.1 ACTIVE FEATURES +------------------------------------------------------------------------------*/ Menu.header.section_end.button_vert.onClickRender.active_features = { type: 'folder', - before: '', + before: '', label: 'activeFeatures', onclick: function() { document.querySelector('.satus-dialog__scrim').click(); @@ -215,124 +184,15 @@ Menu.header.section_end.button_vert.onClickRender.active_features = { } } }; -Menu.header.section_end.button_vert.onClickRender.mixer = { - type: 'folder', - before: '', - label: 'mixer', - class: 'satus-folder--mixer', - appearanceId: 'mixer', - onopen: function() { - var self = this; - - if (chrome && chrome.tabs) { - chrome.tabs.query({}, function(tabs) { - var mixer = {}; - - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - var tab = tabs[i]; - if (/(\?|\&)v=/.test(tab.url)) { - mixer[i] = { - type: 'section', - class: 'satus-section--mixer', - style: { - 'background': 'url(https://img.youtube.com/vi/' + tab.url.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '/0.jpg) center center / cover no-repeat #000', - }, - section: { - type: 'section', - dataset: { - 'noConnectionLabel': satus.locale.getMessage('tryToReloadThePage') || 'tryToReloadThePage' - }, - - mixer_volume: { - type: 'slider', - label: 'volume', - dataset: { - id: tab.id, - element: 'audio' - }, - max: 100, - onrender: function() { - var self = this; - - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'request_volume' - }, function(response) { - if (response) { - document.querySelector('div[data-element="audio"][data-id="' + Number(self.dataset.id) + '"]').change(response.value); - } else { - self.parentNode.parentNode.classList.add('noconnection'); - } - }); - }, - onchange: function(value) { - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'change_volume', - volume: value - }); - } - }, - mixer_playback_speed: { - type: 'slider', - label: 'playbackSpeed', - dataset: { - id: tab.id, - element: 'playback_speed' - }, - min: .1, - max: 8, - step: .05, - onrender: function() { - var self = this; - - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'request_playback_speed' - }, function(response) { - if (response) { - document.querySelector('div[data-element="playback_speed"][data-id="' + Number(self.dataset.id) + '"]').change(Number(response.value)); - } else { - self.parentNode.parentNode.classList.add('noconnection'); - } - }); - }, - onchange: function(value) { - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'change_playback_speed', - playback_speed: value - }); - } - } - } - }; - } - } - } - - if (Object.entries(mixer).length === 0) { - mixer.section = { - type: 'section', - - message: { - type: 'text', - class: 'satus-section--message', - label: 'noOpenVideoTabs' - } - }; - } - - document.querySelector('.satus-dialog__scrim').click(); - - satus.render(mixer, self); - }); - } - } -}; +/*------------------------------------------------------------------------------ +1.2 SETTINGS +------------------------------------------------------------------------------*/ Menu.header.section_end.button_vert.onClickRender.settings = { type: 'folder', - before: '', + before: '', label: 'settings', parent: '.satus-main__container', onclick: function() { @@ -620,7 +480,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { }, { value: 'nb', label: 'Norsk' - }, { + }, { value: 'nb_NO', label: 'Norsk (Bokmål)' }, { @@ -1223,9 +1083,199 @@ Menu.header.section_end.button_vert.onClickRender.settings = { } }; + +/*------------------------------------------------------------------------------ +1.3 MIXER +------------------------------------------------------------------------------*/ + +Menu.header.section_end.button_vert.onClickRender.mixer = { + type: 'folder', + before: '', + label: 'mixer', + class: 'satus-folder--mixer', + appearanceId: 'mixer', + onopen: function() { + var self = this; + + if (chrome && chrome.tabs) { + chrome.tabs.query({}, function(tabs) { + var mixer = {}; + + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + var tab = tabs[i]; + + if (/(\?|\&)v=/.test(tab.url)) { + mixer[i] = { + type: 'section', + class: 'satus-section--mixer', + style: { + 'background': 'url(https://img.youtube.com/vi/' + tab.url.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '/0.jpg) center center / cover no-repeat #000', + }, + + section: { + type: 'section', + dataset: { + 'noConnectionLabel': satus.locale.getMessage('tryToReloadThePage') || 'tryToReloadThePage' + }, + + mixer_volume: { + type: 'slider', + label: 'volume', + dataset: { + id: tab.id, + element: 'audio' + }, + max: 100, + onrender: function() { + var self = this; + + chrome.tabs.sendMessage(Number(this.dataset.id), { + name: 'request_volume' + }, function(response) { + if (response) { + document.querySelector('div[data-element="audio"][data-id="' + Number(self.dataset.id) + '"]').change(response.value); + } else { + self.parentNode.parentNode.classList.add('noconnection'); + } + }); + }, + onchange: function(value) { + chrome.tabs.sendMessage(Number(this.dataset.id), { + name: 'change_volume', + volume: value + }); + } + }, + mixer_playback_speed: { + type: 'slider', + label: 'playbackSpeed', + dataset: { + id: tab.id, + element: 'playback_speed' + }, + min: .1, + max: 8, + step: .05, + onrender: function() { + var self = this; + + chrome.tabs.sendMessage(Number(this.dataset.id), { + name: 'request_playback_speed' + }, function(response) { + if (response) { + document.querySelector('div[data-element="playback_speed"][data-id="' + Number(self.dataset.id) + '"]').change(Number(response.value)); + } else { + self.parentNode.parentNode.classList.add('noconnection'); + } + }); + }, + onchange: function(value) { + chrome.tabs.sendMessage(Number(this.dataset.id), { + name: 'change_playback_speed', + playback_speed: value + }); + } + } + } + }; + } + } + } + + if (Object.entries(mixer).length === 0) { + mixer.section = { + type: 'section', + + message: { + type: 'text', + class: 'satus-section--message', + label: 'noOpenVideoTabs' + } + }; + } + + document.querySelector('.satus-dialog__scrim').click(); + + satus.render(mixer, self); + }); + } + } +}; + + +/*------------------------------------------------------------------------------ +2.0 MAIN +------------------------------------------------------------------------------*/ + +Menu.main = { + type: 'main', + appearanceId: 'home', + on: { + change: function(container) { + var item = this.history[this.history.length - 1], + id = item.appearanceId; + + document.body.dataset.appearance = id; + container.dataset.appearance = id; + + document.querySelector('.satus-text--title').innerText = satus.locale.getMessage(item.label) || 'ImprovedTube'; + } + }, + + section: { + type: 'section' + }, + + footer: { + type: 'button', + class: 'satus-button--ad', + label: 'DARK MODE', + title: 'Dark Mode', + onclick: function() { + window.open('https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl', '_blank'); + } + }, + + info: { + type: 'section', + class: 'satus-section--info', + + email: { + type: 'button', + label: 'Email', + title: 'bugs@improvedtube.com', + onclick: function() { + window.open('mailto:bugs@improvedtube.com', '_blank'); + } + }, + github: { + type: 'button', + label: 'GitHub', + title: '/ImprovedTube/ImprovedTube', + onclick: function() { + window.open('https://github.com/ImprovedTube/ImprovedTube/', '_blank'); + } + }, + website: { + type: 'button', + label: 'Website', + title: 'improvedtube.com', + onclick: function() { + window.open('http://www.improvedtube.com/', '_blank'); + } + } + } +}; + + +/*------------------------------------------------------------------------------ +2.1 GENERAL +------------------------------------------------------------------------------*/ + Menu.main.section.general = { type: 'folder', - before: '', + before: '', label: 'general', class: 'satus-folder--general', appearanceId: 'general', @@ -1317,9 +1367,14 @@ Menu.main.section.general = { } }; + +/*------------------------------------------------------------------------------ +2.2 APPEARANCE +------------------------------------------------------------------------------*/ + Menu.main.section.appearance = { type: 'folder', - before: '', + before: '', label: 'appearance', class: 'satus-folder--appearance', appearanceId: 'appearance', @@ -1683,48 +1738,14 @@ Menu.main.section.appearance = { } }; -function themePopupChange() { - if (satus.storage.get('red_popup_theme') === true) { - document.documentElement.setAttribute('popup-theme', 'red'); - } else { - document.documentElement.removeAttribute('popup-theme'); - } -} - -function themeChange(event) { - if (event.target.checked) { - let themes = document.querySelectorAll('.satus-switch > input:checked:not([data-storage-key="red_popup_theme"])'); - - for (let i = 0, l = themes.length; i < l; i++) { - if (themes[i] !== event.target) { - themes[i].click(); - } - } - } - - if (satus.storage.get('default_dark_theme') === true) { - document.documentElement.setAttribute('theme', 'dark'); - } else if (satus.storage.get('night_theme') === true) { - document.documentElement.setAttribute('theme', 'night'); - } else if (satus.storage.get('dawn_theme') === true) { - document.documentElement.setAttribute('theme', 'dawn'); - } else if (satus.storage.get('sunset_theme') === true) { - document.documentElement.setAttribute('theme', 'sunset'); - } else if (satus.storage.get('desert_theme') === true) { - document.documentElement.setAttribute('theme', 'desert'); - } else if (satus.storage.get('plain_theme') === true) { - document.documentElement.setAttribute('theme', 'plain'); - } else if (satus.storage.get('black_theme') === true) { - document.documentElement.setAttribute('theme', 'black'); - } else { - document.documentElement.removeAttribute('theme'); - } -} +/*------------------------------------------------------------------------------ +2.3 THEMES +------------------------------------------------------------------------------*/ Menu.main.section.themes = { type: 'folder', - before: '', + before: '', label: 'themes', class: 'satus-folder--themes', appearanceId: 'themes', @@ -2016,34 +2037,6 @@ Menu.main.section.themes = { } }, - popup_title: { - type: 'text', - label: 'ImprovedTube', - style: { - margin: '0 12px', - fontWeight: '700' - } - }, - red_popup_theme: { - type: 'switch', - label: 'Red', - value: true, - class: 'satus-switch--red', - style: { - background: '#bb1a1a' - }, - - onchange: themePopupChange - }, - - youtube_title: { - type: 'text', - label: 'YouTube', - style: { - margin: '0 12px', - fontWeight: '700' - } - }, default_dark_theme: { type: 'switch', label: 'dark', @@ -2095,9 +2088,14 @@ Menu.main.section.themes = { } }; + +/*------------------------------------------------------------------------------ +2.4 PLAYER +------------------------------------------------------------------------------*/ + Menu.main.section.player = { type: 'folder', - before: '', + before: '', label: 'player', class: 'satus-folder--player', appearanceId: 'player', @@ -2373,9 +2371,14 @@ Menu.main.section.player = { } }; + +/*------------------------------------------------------------------------------ +2.5 PLAYLIST +------------------------------------------------------------------------------*/ + Menu.main.section.playlist = { type: 'folder', - before: '', + before: '', label: 'playlist', class: 'satus-folder--playlist', appearanceId: 'playlist', @@ -2412,9 +2415,15 @@ Menu.main.section.playlist = { } } }; + + +/*------------------------------------------------------------------------------ +2.6 CHANNEL +------------------------------------------------------------------------------*/ + Menu.main.section.channel = { type: 'folder', - before: '', + before: '', label: 'channel', class: 'satus-folder--channel', appearanceId: 'channel', @@ -2447,9 +2456,15 @@ Menu.main.section.channel = { } } }; + + +/*------------------------------------------------------------------------------ +2.7 SHORTCUTS +------------------------------------------------------------------------------*/ + Menu.main.section.shortcuts = { type: 'folder', - before: '', + before: '', label: 'shortcuts', class: 'satus-folder--shortcut', appearanceId: 'shortcuts', @@ -2676,9 +2691,14 @@ Menu.main.section.shortcuts = { } }; + +/*------------------------------------------------------------------------------ +2.8 BLACKLIST +------------------------------------------------------------------------------*/ + Menu.main.section.blacklist = { type: 'folder', - before: '', + before: '', label: 'blacklist', class: 'satus-folder--blacklist', appearanceId: 'blacklist', @@ -2838,6 +2858,11 @@ Menu.main.section.blacklist = { } }; + +/*------------------------------------------------------------------------------ +2.9 ANALYZER +------------------------------------------------------------------------------*/ + Menu.main.section.analyzer = { type: 'folder', before: '', @@ -2985,19 +3010,54 @@ Menu.main.section.analyzer = { } }; -chrome.storage.local.get(function(items) { - for (var key in items) { - document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), items[key]); + +/*------------------------------------------------------------------------------ +3.0 INITIALIZATION +------------------------------------------------------------------------------*/ + +function themePopupChange() { + if (satus.storage.get('red_popup_theme') === true) { + document.documentElement.setAttribute('popup-theme', 'red'); + } else { + document.documentElement.removeAttribute('popup-theme'); } -}); +} -chrome.storage.onChanged.addListener(function(changes) { - for (var key in changes) { - document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), changes[key].newValue); +function themeChange(event) { + if (event.target.checked) { + let themes = document.querySelectorAll('.satus-switch > input:checked:not([data-storage-key="red_popup_theme"])'); + + for (let i = 0, l = themes.length; i < l; i++) { + if (themes[i] !== event.target) { + themes[i].click(); + } + } } -}); + + if (satus.storage.get('default_dark_theme') === true) { + document.documentElement.setAttribute('theme', 'dark'); + } else if (satus.storage.get('night_theme') === true) { + document.documentElement.setAttribute('theme', 'night'); + } else if (satus.storage.get('dawn_theme') === true) { + document.documentElement.setAttribute('theme', 'dawn'); + } else if (satus.storage.get('sunset_theme') === true) { + document.documentElement.setAttribute('theme', 'sunset'); + } else if (satus.storage.get('desert_theme') === true) { + document.documentElement.setAttribute('theme', 'desert'); + } else if (satus.storage.get('plain_theme') === true) { + document.documentElement.setAttribute('theme', 'plain'); + } else if (satus.storage.get('black_theme') === true) { + document.documentElement.setAttribute('theme', 'black'); + } else { + document.documentElement.removeAttribute('theme'); + } +} satus.storage.import(function() { + for (var key in satus.storage.data) { + document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), items[key]); + } + if (satus.isset(satus.storage.get('red_popup_theme')) === false || satus.storage.get('red_popup_theme') === true) { document.documentElement.setAttribute('popup-theme', 'red'); } @@ -3035,4 +3095,10 @@ satus.storage.import(function() { satus.render(Menu, document.body); }); }); +}); + +chrome.storage.onChanged.addListener(function(changes) { + for (var key in changes) { + document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), changes[key].newValue); + } }); \ No newline at end of file diff --git a/stable/satus.css b/3.120-pre/satus.css similarity index 100% rename from stable/satus.css rename to 3.120-pre/satus.css diff --git a/stable/satus.js b/3.120-pre/satus.js similarity index 100% rename from stable/satus.js rename to 3.120-pre/satus.js diff --git a/stable/content-scripts.js b/3.120-pre/youtube-scripts.js similarity index 55% rename from stable/content-scripts.js rename to 3.120-pre/youtube-scripts.js index 8cfb56bf8..0889b8113 100644 --- a/stable/content-scripts.js +++ b/3.120-pre/youtube-scripts.js @@ -1,467 +1,511 @@ -/*--------------------------------------------------------------- ->>> IMPROVEDTUBE ------------------------------------------------------------------ -# Initialization -----------------------------------------------------------------/ - -/*--------------------------------------------------------------- -# INITIALIZATION -----------------------------------------------------------------*/ - -var ImprovedTube = { - allow_autoplay: false, - videoUrl: '"null"', - playingTime: 0 -}; +/*------------------------------------------------------------------------------ +>>> TABLE OF CONTENTS: +-------------------------------------------------------------------------------- +0.0 Global variable +0.0 Page update listener +0.0 Initialization -ImprovedTube.reverse = function(parent) { - for (var i = 1, l = parent.childNodes.length; i < l; i++) { - parent.insertBefore(parent.childNodes[i], parent.firstChild); - } +1.0 General + 1.1 YouTube home page + 1.2 Collapse of subscription sections + 1.3 Add "Scroll to top" + 1.4 Confirmation before closing + 1.5 Mark watched videos + 1.6 Only one player instance playing + 1.7 HD thumbnails +2.0 Appearance + 2.1 Player + 2.1.1 Forced theater mode + 2.1.2 HD thumbnail + 2.1.3 Always show progress bar + 2.2 Sidebar + 2.2.1 Livechat + 2.2.2 Relative videos + 2.3 Details + 2.3.1 How long ago the video was uploaded + 2.3.2 Show channel videos count + 2.5 Comments +3.0 Themes +4.0 Player + 4.1 Autoplay + 4.2 Autopause when switching tabs + 4.3 Forced playback speed + 4.4 Subtitles + 4.5 Up next autoplay + 4.6 Ads + 4.7 Custom mini-player + 4.8 Auto fullscreen + 4.9 Quality + 4.10 Codec h.264 + 4.11 Allow 60fps + 4.12 Forced volume + 4.13 Loudness normalization + 4.14 Screenshot + 4.15 Repeat + 4.16 Rotate + 4.17 Popup player +5.0 Playlist + 5.1 Up next autoplay + 5.2 Reverse + 5.3 Repeat + 5.4 Shuffle +6.0 Channel + 6.1 Default channel tab +7.0 Shortcuts +8.0 Blacklist +9.0 Analyzer +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +0.0 GLOBAL VARIABLE +-------------------------------------------------------------------------------- +The variable "ImprovedTube" is used on the YouTube side. +------------------------------------------------------------------------------*/ + +var ImprovedTube = {}; + + +/*------------------------------------------------------------------------------ +0.0 PAGE UPDATE LISTENER +------------------------------------------------------------------------------*/ + +ImprovedTube.pageUpdateListener = function() { + window.addEventListener('yt-page-data-updated', function() { + ImprovedTube.played_before_blur = false; + + ImprovedTube.pageType(); + ImprovedTube.youtubeHomePage(); + ImprovedTube.collapseOfSubscriptionSections(); + ImprovedTube.markWatchedVideos(); + ImprovedTube.hdThumbnails(); + ImprovedTube.forcedTheaterMode(); + ImprovedTube.playerHdThumbnail(); + ImprovedTube.alwaysShowProgressBar(); + ImprovedTube.livechat(); + ImprovedTube.relatedVideos(); + ImprovedTube.howLongAgoTheVideoWasUploaded(); + ImprovedTube.channelVideosCount(); + ImprovedTube.comments(); + }); }; +/*------------------------------------------------------------------------------ +0.0 DOM CONTENT LOADED +------------------------------------------------------------------------------*/ + +ImprovedTube.DOMContentLoaded = function() { + window.addEventListener('DOMContentLoaded', function() { + ImprovedTube.youtubeHomePage(); + ImprovedTube.collapseOfSubscriptionSections(); + ImprovedTube.addScrollToTop(); + ImprovedTube.confirmationBeforeClosing(); + ImprovedTube.markWatchedVideos(); + ImprovedTube.hdThumbnails(); + ImprovedTube.forcedTheaterMode(); + ImprovedTube.playerHdThumbnail(); + ImprovedTube.alwaysShowProgressBar(); + ImprovedTube.livechat(); + ImprovedTube.relatedVideos(); + ImprovedTube.howLongAgoTheVideoWasUploaded(); + ImprovedTube.channelVideosCount(); + ImprovedTube.comments(); + + ImprovedTube.pageUpdateListener(); + }); +}; +/*------------------------------------------------------------------------------ +0.0 INITIALIZATION +------------------------------------------------------------------------------*/ +ImprovedTube.init = function() { + ImprovedTube.pageType(); + ImprovedTube.DOMContentLoaded(); +}; +/*------------------------------------------------------------------------------ +0.0 PAGE TYPE +------------------------------------------------------------------------------*/ +ImprovedTube.pageType = function() { + var href = location.href, + type = ''; -/*----------------------------------------------------------------------------- ->>> CORE -------------------------------------------------------------------------------- -1.0 Page update -2.0 Player update -3.0 Init ------------------------------------------------------------------------------*/ + if (location.pathname == '/') { + type = 'home'; + } else if (/\/watch\?/.test(href)) { + type = 'video'; + } else if (/\/channel|user\//.test(href)) { + type = 'channel'; + } + document.documentElement.setAttribute('it-page-type', type); +}; +ImprovedTube.getParam = function(query, name) { + var params = query.split('&'), + param = false; + for (var i = 0; i < params.length; i++) { + params[i] = params[i].split('='); -/*----------------------------------------------------------------------------- -1.0 Page update ------------------------------------------------------------------------------*/ + if (params[i][0] == name) { + param = params[i][1]; + } + } -ImprovedTube.pageUpdate = function() { - var not_connected_players = document.querySelectorAll('.html5-video-player:not([it-player-connected])'); + if (param) { + return param; + } else { + return false; + } +}; - if (not_connected_players.length > 0) { - for (var i = 0, l = not_connected_players.length; i < l; i++) { - var player = not_connected_players[i]; +ImprovedTube.focus = false; +ImprovedTube.played_before_blur = false; - if ( - player.querySelector('video').src && - player.querySelector('video').src !== '' - ) { - player.setAttribute('it-player-connected', ''); +ImprovedTube.onfocus = function() { + this.onlyOnePlayerInstancePlaying(); +}; - ImprovedTube.playerUpdate(player); - player.querySelector('video').addEventListener('canplay', function() { - ImprovedTube.videoUrl = location.href; - }); - player.querySelector('video').addEventListener('timeupdate', function() { - ImprovedTube.playingTime++; - var time = Math.floor(ImprovedTube.playingTime * 250 / 1000) / 60; - if (time >= 1) { - ImprovedTube.playingTime = 0; - document.dispatchEvent(new CustomEvent('ImprovedTubeAnalyzer')); - } - }); - } - } - } +/*------------------------------------------------------------------------------ +1.0 GENERAL +------------------------------------------------------------------------------*/ - ImprovedTube.pageType(); - ImprovedTube.youtube_home_page(); - ImprovedTube.playlistReverse(); - ImprovedTube.hd_thumbnails(); - ImprovedTube.channel_default_tab(); - ImprovedTube.comments(); - ImprovedTube.livechat(); - ImprovedTube.livechat_type(); - ImprovedTube.related_videos(); - ImprovedTube.improvedtube_youtube_icon(); - ImprovedTube.blacklist(); - ImprovedTube.player_hd_thumbnail(); - ImprovedTube.how_long_ago_the_video_was_uploaded(); - ImprovedTube.channel_videos_count(); - ImprovedTube.collapse_of_subscription_sections(); - ImprovedTube.mark_watched_videos(); -}; +/*------------------------------------------------------------------------------ +1.1 YOUTUBE HOME PAGE +------------------------------------------------------------------------------*/ +ImprovedTube.youtubeHomePage = function() { + var option = this.storage.youtube_home_page; -/*----------------------------------------------------------------------------- -2.0 Player update ------------------------------------------------------------------------------*/ + if (['/', 'search', null].indexOf(option) === -1) { + var node_list = document.querySelectorAll(` + a[href="/"]:not([role="tablist"]), + a[href="https://www.youtube.com/"]:not([role="tablist"]), + a[it-origin="/"]:not([role="tablist"]), + a[it-origin="https://www.youtube.com/"]:not([role="tablist"]) + `); -ImprovedTube.playerUpdate = function(node, hard) { - var player; + for (var i = 0, l = node_list.length; i < l; i++) { + var node = node_list[i], + pathname = new URL((node.getAttribute('it-origin') || node.href)).pathname; - if (node && node.type !== 'canplay') { - player = node; - } else if (this.hasOwnProperty('target')) { - player = this.target.parentNode.parentNode; - } else if (this.hasOwnProperty('parentNode')) { - player = this.parentNode.parentNode; - } else { - player = document.querySelector('.html5-video-player'); - } + if (pathname === '/') { + if (!node.hasAttribute('it-origin')) { + node.setAttribute('it-origin', node.href); + } + } - if (this.videoUrl !== location.href) { - this.videoUrl = location.href; - this.playingTime = 0; - - document.dispatchEvent(new CustomEvent('ImprovedTubePlayVideo')); - - this.fitToWindow(); - this.always_show_progress_bar(); - this.player_hd_thumbnail(); - this.player_quality(player); - this.player_volume(player); - this.player_playback_speed(player); - this.up_next_autoplay(); - this.player_autofullscreen(); - this.player_repeat_button(); - this.player_screenshot_button(); - this.player_rotate_button(); - this.player_popup_button(); - this.playlist_up_next_autoplay(player); - this.mini_player(); - - this.playlist_repeat(); - this.playlist_shuffle(); - - this.dim(); - - var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); - - if (video_id) { - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'set', - id: video_id, - title: document.title + node.href = option; + node.addEventListener('click', function() { + if ( + this.data && + this.data.commandMetadata && + this.data.commandMetadata.webCommandMetadata && + this.data.commandMetadata.webCommandMetadata.url + ) { + this.data.commandMetadata.webCommandMetadata.url = option; } - })); + }, true); + } + } else { + var node_list = document.querySelectorAll(` + a[it-origin="/"]:not([role="tablist"]), + a[it-origin="https://www.youtube.com/"]:not([role="tablist"]) + `); + + for (var i = 0, l = node_list.length; i < l; i++) { + node_list[i].href = node_list[i].getAttribute('it-origin'); } - } else if (hard) { - this.videoUrl = location.href; - - this.fitToWindow(); - this.player_hd_thumbnail(); - this.player_quality(player); - this.player_volume(player); - this.player_playback_speed(player); - this.up_next_autoplay(); - this.player_autofullscreen(); - this.player_repeat_button(); - this.player_screenshot_button(); - this.player_rotate_button(); - this.player_popup_button(); - this.mini_player(); - - this.playlist_repeat(); - this.playlist_shuffle(); - - this.dim(); } }; -/*----------------------------------------------------------------------------- -3.0 Init ------------------------------------------------------------------------------*/ +/*------------------------------------------------------------------------------ +1.2 COLLAPSE OF SUBSCRIPTION SECTION +------------------------------------------------------------------------------*/ -ImprovedTube.init = function() { - this.player_h264(); - this.player_60fps(); - this.confirmation_before_closing(); - this.shortcuts(); - this.themeEditor(); - this.theme(); - this.font(); - this.bluelight(); - this.dim(); - this.pageType(); - this.improvedtube_youtube_icon(); - this.add_scroll_to_top(); - this.player_autopause_when_switching_tabs(); - this.forced_theater_mode(); - this.comments(); - this.livechat(); - this.related_videos(); - this.mutations(); - this.events(); - this.player_ads(); - - if (window.self === window.top) { - window.addEventListener('load', function() { - ImprovedTube.player_volume(); - }); - } +ImprovedTube.collapseOfSubscriptionSections = function() { + if (/\/feed\/subscriptions/.test(location.href)) { + if (this.storage.collapse_of_subscription_sections === true) { + var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'); + for (var i = 0, l = sections.length; i < l; i++) { + if (!sections[i].querySelector('.it-section-collapse')) { + var section_title = sections[i].querySelector('h2'), + button = document.createElement('div'); -}; + button.className = 'it-section-collapse'; + button.innerHTML = ''; + button.section = sections[i]; + button.addEventListener('click', function() { + var section = this.section, + content = section.querySelector('.grid-subheader + #contents, .shelf-title-table + .multirow-shelf'); -function withoutInjection(object) { - youtubeHomePage__documentStart(object.youtube_home_page); -} - -/*----------------------------------------------------------------------------- ->>> EVENTS -------------------------------------------------------------------------------- -1.0 DOMContentLoaded -2.0 Load -3.0 YouTube page data updated -4.0 YouTube visibility refresh -5.0 SPF done -6.0 Keydown -7.0 Mousedown ------------------------------------------------------------------------------*/ - -chrome.storage.local.get(function(items) { - window.addEventListener('load', function() { - if (!document.querySelector('.it-rate-notify') && Object.keys(items).length > 10 && items.rate_notify !== 5) { - var popup = document.createElement('div'); - - popup.className = 'it-rate-notify'; - - popup.innerHTML = '' + - '
Do you enjoy ImprovedTube?
' + - ''; - - document.body.appendChild(popup); + if (section.classList.contains('it-section-collapsed') === false) { + content.style.height = content.offsetHeight + 'px'; + content.style.transition = 'height 150ms'; + } - setTimeout(function() { - popup.classList.add('it-rate-notify--show'); - }, 1000); + setTimeout(function() { + section.classList.toggle('it-section-collapsed'); + }); + }); - chrome.storage.local.set({ - rate_notify: 5 - }); - } - }); -}); + section_title.parentNode.insertBefore(button, section_title.nextSibling); + } + } + } else { + var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'), + buttons = document.querySelectorAll('.it-section-collapse'); -ImprovedTube.events = function() { + for (var i = 0, l = sections.length; i < l; i++) { + sections[i].classList.remove('it-section-collapsed'); + sections[i].style.height = ''; + sections[i].style.transition = ''; + } - /*------------------------------------------------------------------------- - 1.0 DOMContentLoaded - -------------------------------------------------------------------------*/ + for (var i = 0, l = buttons.length; i < l; i++) { + buttons[i].remove(); + } + } + } +}; - window.addEventListener('DOMContentLoaded', ImprovedTube.pageUpdate); +/*------------------------------------------------------------------------------ +1.3 ADD "SCROLL TO TOP" +------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------- - 2.0 Load - -------------------------------------------------------------------------*/ +ImprovedTube.addScrollToTop = function(is_update) { + if (this.storage.add_scroll_to_top === true) { + var button = document.createElement('div'); - document.documentElement.addEventListener('load', function() { - if ( - window.yt && - window.yt.player && - window.yt.player.Application && - window.yt.player.Application.create - ) { - window.yt.player.Application.create = ImprovedTube.ytPlayerApplicationCreateMod(window.yt.player.Application.create); - } + button.id = 'it-scroll-to-top'; + button.innerHTML = ''; - var search = document.querySelector('#search') || document.querySelector('#masthead-search-term'); + button.addEventListener('click', function() { + window.scrollTo(0, 0); + }); - if (search) { - search.addEventListener('focus', function() { - document.documentElement.setAttribute('it-search-focus', 'true'); - }); + document.documentElement.appendChild(button); - search.addEventListener('blur', function() { - document.documentElement.setAttribute('it-search-focus', 'false'); - }); - } - }, true); + window.addEventListener('scroll', this.scroll); + } else { + var button = document.querySelector('#it-scroll-to-top'); - window.addEventListener('resize', function() { - ImprovedTube.fitToWindow(); - ImprovedTube.improvedtube_youtube_icon_resize(); - }); + if (button) { + button.remove(); + } - window.addEventListener('scroll', function() { - ImprovedTube.improvedtube_youtube_icon_resize(); - }); + window.removeEventListener('scroll', this.scroll); + } +}; +ImprovedTube.scroll = function() { + if (window.scrollY > window.innerHeight / 2) { + document.documentElement.setAttribute('it-show-scroll-to-top', true); + } else { + document.documentElement.setAttribute('it-show-scroll-to-top', false); + } +}; - /*------------------------------------------------------------------------- - 3.0 YouTube page data updated - -------------------------------------------------------------------------*/ - window.addEventListener('yt-page-data-updated', function() { - ImprovedTube.pageUpdate(); +/*------------------------------------------------------------------------------ +1.4 CONFIRMATION BEFORE CLOSING +------------------------------------------------------------------------------*/ - if (ImprovedTube.playlistReversed === true) { - setTimeout(function() { - ImprovedTube.playlistReverseNextPrev(); - ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); - }, 500); +ImprovedTube.confirmationBeforeClosing = function() { + window.onbeforeunload = function() { + if (ImprovedTube.storage.confirmation_before_closing === true) { + return 'You have attempted to leave this page. Are you sure?'; } - }); + }; +}; - /*------------------------------------------------------------------------- - 4.0 YouTube visibility refresh - -------------------------------------------------------------------------*/ +/*------------------------------------------------------------------------------ +1.5 MARK WATCHED VIDEOS +-------------------------------------------------------------------------------- +TODO: OPTIMIZE +------------------------------------------------------------------------------*/ - window.addEventListener('yt-visibility-refresh', ImprovedTube.pageUpdate); +ImprovedTube.markWatchedVideos = function() { + if (ImprovedTube.storage.mark_watched_videos === true) { + var video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); + for (var i = 0, l = video_items.length; i < l; i++) { + if (!video_items[i].querySelector('.it-mark-watched')) { + var button = document.createElement('div'); - /*------------------------------------------------------------------------- - 5.0 SPF done - -------------------------------------------------------------------------*/ + button.className = 'it-mark-watched' + (this.storage.watched && this.storage.watched[this.getParam(new URL(video_items[i].href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); + button.innerHTML = ''; + button.addEventListener('click', function(event) { + var watched = this.classList.contains('watched') ? false : true; - window.addEventListener('spfrequest', function() { - ImprovedTube.pageUpdate(); - }); + event.preventDefault(); + event.stopPropagation(); - window.addEventListener('spfdone', function() { - ImprovedTube.pageUpdate(); - }); + this.classList.toggle('watched'); + try { + var video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'), + item = this.parentNode; - /*------------------------------------------------------------------------- - 6.0 Keydown - -------------------------------------------------------------------------*/ + while ( + item.nodeName && + item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && + item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && + item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && + item.classList && + !item.classList.contains('yt-shelf-grid-item') && + !item.classList.contains('video-list-item') + ) { + item = item.parentNode; + } - window.addEventListener('keydown', function() { - if ( - document.querySelector('.html5-video-player') && - document.querySelector('.html5-video-player').classList.contains('ad-showing') === false - ) { - ImprovedTube.allow_autoplay = true; - } - }, true); + if (!ImprovedTube.storage.watched || typeof ImprovedTube.storage.watched !== 'object') { + ImprovedTube.storage.watched = {}; + } + if (watched === true) { + ImprovedTube.storage.watched[video_id] = { + title: item.querySelector('a#video-title, .title, .yt-lockup-title > a').innerText + }; - /*------------------------------------------------------------------------- - 7.0 Mousedown - -------------------------------------------------------------------------*/ + document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { + detail: { + action: 'set', + id: video_id, + title: item.querySelector('a#video-title, .title, .yt-lockup-title > a').innerText + } + })); + } else if (ImprovedTube.storage.watched[video_id]) { + delete ImprovedTube.storage.watched[video_id]; - window.addEventListener('mousedown', function(event) { - for (var i = 0, l = event.path.length; i < l; i++) { - if ( - document.querySelector('.html5-video-player') && - document.querySelector('.html5-video-player').classList.contains('ad-showing') === false && - event.path[i].classList && - ( - event.path[i].classList.contains('html5-main-video') || - event.path[i].classList.contains('ytp-play-button') - ) - ) { - ImprovedTube.allow_autoplay = true; + document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { + detail: { + action: 'remove', + id: video_id + } + })); + } + } catch (err) {} + }); + + video_items[i].appendChild(button); } } - }, true); + } }; -chrome.storage.local.get(function(items) { - document.addEventListener('ImprovedTubeAnalyzer', function() { - if (items.analyzer_activation === true) { - if (document.querySelector('ytd-channel-name a') && chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-analyzer', - value: document.querySelector('ytd-channel-name a').innerText - }); +document.addEventListener('ImprovedTubeWatched', function(event) { + if (chrome && chrome.runtime) { + chrome.runtime.sendMessage({ + name: 'improvedtube-watched', + data: { + action: event.detail.action, + id: event.detail.id, + title: event.detail.title } - } - }); + }); + } }); -/*----------------------------------------------------------------------------- ->>> APPEARANCE -------------------------------------------------------------------------------- -1.0 Player - 1.1 Forced theater mode - 1.2 HD thumbnail -2.0 Details -3.0 Comments -4.0 Sidebar ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Player ------------------------------------------------------------------------------*/ - -ImprovedTube.fitToWindow = function() { - if (ImprovedTube.storage.player_size === 'fit_to_window' && !document.documentElement.hasAttribute('embed') && window.self !== window.top && document.querySelector('#movie_player video')) { - var video = document.querySelector('#movie_player video'), - header = document.documentElement.getAttribute('it-header-position'), - header_height = header == 'hidden' || header == 'hidden_on_video_page' || header == 'hover' || header == 'hover_on_video_page' ? 0 : 50, - videoW = video.videoWidth / 100, - videoH = video.videoHeight / 100, - windowW = window.innerWidth / 100, - windowH = window.innerHeight / 100, - videoWdif = ((video.videoWidth - window.innerWidth) / video.videoWidth * -100) + 100, - videoHdif = ((video.videoHeight - window.innerHeight + header_height) / video.videoHeight * -100) + 100, - style = document.querySelector('#it-fit-to-window') || document.createElement('style'); - - style.id = 'it-fit-to-window'; - - if (videoW && videoH && videoHdif && videoH * videoWdif > window.innerHeight - header_height) { - style.innerText = 'html[it-player-size="fit_to_window"] div#page.watch-wide .html5-video-player:not(.ytp-fullscreen) video{max-width:' + videoW * videoHdif + 'px !important;max-height' + videoH * videoHdif + 'px !important}'; - } else if (videoW && videoH && videoWdif) { - style.innerText = 'html[it-player-size="fit_to_window"] div#page.watch-wide .html5-video-player:not(.ytp-fullscreen) video{max-width:' + videoW * videoWdif + 'px !important;max-height' + videoH * videoWdif + 'px !important}'; - } - if (!document.querySelector('#it-fit-to-window')) { - document.documentElement.appendChild(style); +/*------------------------------------------------------------------------------ +1.6 ONLY ONE PLAYER INSTANCE PLAYING +-------------------------------------------------------------------------------- +TODO: FIX +------------------------------------------------------------------------------*/ + +ImprovedTube.onlyOnePlayerInstancePlaying = function() { + var video = document.querySelector('.html5-video-player video'); + + if (this.storage.only_one_player_instance_playing === true && video) { + + if (this.focus === false && video.paused === false) { + video.pause(); + + this.played_before_blur = true; + } else if (this.focus === true && this.played_before_blur === true) { + video.play(); } } }; -/*----------------------------------------------------------------------------- -1.1 Forced theater mode ------------------------------------------------------------------------------*/ -ImprovedTube.forced_theater_mode = function() { - if (window.self === window.top && (this.storage.forced_theater_mode === true || this.storage.player_size === 'fit_to_window')) { - var is_applied = false; +/*------------------------------------------------------------------------------ +1.7 HD THUMBNAILS +------------------------------------------------------------------------------*/ - if (/wide\=1/.test(document.cookie)) { - is_applied = true; - } +ImprovedTube.hdThumbnails = function() { + if (this.storage.hd_thumbnails === true) { + var images = document.querySelectorAll('img'); - this.setCookie('wide', '1'); + for (var i = 0, l = images.length; i < l; i++) { + if (/(hqdefault\.jpg|hq720.jpg)+/.test(images[i].src) && !images[i].dataset.defaultSrc) { + images[i].dataset.defaultSrc = images[i].src; - setTimeout(function() { - if (is_applied === false) { - location.reload(); + images[i].onload = function() { + if (this.naturalHeight <= 90) { + this.src = this.dataset.defaultSrc; + } + }; + + images[i].src = images[i].src.replace(/(hqdefault\.jpg|hq720.jpg)+/, 'maxresdefault.jpg'); } - }); + } + } else { + var images = document.querySelectorAll('img'); + + for (var i = 0, l = images.length; i < l; i++) { + if (images[i].dataset.defaultSrc) { + images[i].src = images[i].dataset.defaultSrc; + } + } } +}; - window.addEventListener('yt-navigate-finish', function() { - if (window.self === window.top && (ImprovedTube.storage.forced_theater_mode === true || ImprovedTube.storage.player_size === 'fit_to_window')) { - var newPlayer = document.querySelector('button.ytp-size-button'); - if (newPlayer && null === document.getElementById('player-theater-container').firstChild) { - newPlayer.click(); - } +/*------------------------------------------------------------------------------ +2.0 APPEARANCE +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +2.1 PLAYER +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +2.1.1 FORCED THEATER MODE +------------------------------------------------------------------------------*/ + +ImprovedTube.forcedTheaterMode = function() { + if (window.self === window.top && (ImprovedTube.storage.forced_theater_mode === true || ImprovedTube.storage.player_size === 'fit_to_window')) { + var button = document.querySelector('button.ytp-size-button'); + + if (button && ImprovedTube.isset(document.getElementById('player-theater-container').firstChild) === false) { + button.click(); } - }); + } }; -/*----------------------------------------------------------------------------- -1.2 HD thumbnail ------------------------------------------------------------------------------*/ -ImprovedTube.player_hd_thumbnail_wait = false; +/*------------------------------------------------------------------------------ +2.1.2 HD THUMBNAIL +-------------------------------------------------------------------------------- +TODO: OPTIMIZED +------------------------------------------------------------------------------*/ -ImprovedTube.player_hd_thumbnail = function() { +ImprovedTube.playerHdThumbnail = function() { if (this.storage.player_hd_thumbnail === true) { if (this.player_hd_thumbnail_wait !== false) { clearInterval(ImprovedTube.player_hd_thumbnail_wait); @@ -486,13 +530,12 @@ ImprovedTube.player_hd_thumbnail = function() { } }; -/*----------------------------------------------------------------------------- -1.3 Always show progress bar ------------------------------------------------------------------------------*/ -// TODO: FIX NIGHTLY UGLY ALGO +/*------------------------------------------------------------------------------ +2.1.3 ALWAYS SHOW PROGRESS BAR +------------------------------------------------------------------------------*/ -ImprovedTube.always_show_progress_bar = function() { +ImprovedTube.alwaysShowProgressBar = function() { if (ImprovedTube.always_show_progress_bar_interval) { clearInterval(ImprovedTube.always_show_progress_bar_interval); } @@ -546,15 +589,122 @@ ImprovedTube.always_show_progress_bar = function() { }; -/*----------------------------------------------------------------------------- -2.0 Details ------------------------------------------------------------------------------*/ +/*------------------------------------------------------------------------------ +2.2 SIDEBAR +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +2.2.1 LIVECHAT +-------------------------------------------------------------------------------- +TODO: TEST +------------------------------------------------------------------------------*/ + +ImprovedTube.livechat_wait = false; +ImprovedTube.livechat_url = false; + +ImprovedTube.livechat = function() { + if ( + document.documentElement.getAttribute('it-page-type') === 'video' && + this.storage.livechat === 'collapsed' && + this.livechat_wait === false + ) { + this.livechat_wait = setInterval(function() { + var button = document.querySelector('#chat:not([collapsed]) #show-hide-button paper-button'), + expander = document.querySelector('#watch-sidebar-live-chat .yt-uix-expander'); + + if (document.documentElement.getAttribute('it-page-type') !== 'video' || button || expander) { + clearInterval(ImprovedTube.livechat_wait); + + ImprovedTube.livechat_wait = false; + } + + if (button) { + function click() { + ImprovedTube.livechat_url = location.href; + } + + button.addEventListener('mousedown', click); + button.addEventListener('touchdown', click); + + setTimeout(function() { + if (ImprovedTube.livechat_url !== location.href) { + button.click(); + } + }, 500); + } else if (expander) { + expander.classList.add('yt-uix-expander-collapsed'); + } + }, 250); + } +}; + + +/*------------------------------------------------------------------------------ +2.2.2 RELATIVE VIDEOS +-------------------------------------------------------------------------------- +TODO: TEST +------------------------------------------------------------------------------*/ + +ImprovedTube.related_videos_wait = false; + +ImprovedTube.relatedVideos = function() { + if (this.storage.related_videos === 'collapsed') { + if (!this.related_videos_wait) { + this.related_videos_wait = setInterval(function() { + if ( + document.querySelector('#related.ytd-watch-flexy') || + document.querySelector('#watch7-sidebar-contents') + ) { + clearInterval(this.related_videos_wait); + + this.related_videos_wait = false; + + if (!document.getElementById('improvedtube-collapsed-related-videos')) { + var button = document.createElement('button'), + parent = document.querySelector('#related.ytd-watch-flexy') || document.querySelector('#watch7-sidebar-contents'), + reference = document.querySelector('#related > *') || document.querySelector('#watch7-sidebar-contents > *'); + + button.id = 'improvedtube-collapsed-related-videos'; + button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; + button.innerHTML = 'Show moreShow less'; + + button.onclick = function() { + document.documentElement.classList.toggle('related-videos-collapsed'); + }; + + document.documentElement.classList.toggle('related-videos-collapsed'); + parent.insertBefore(button, reference); + } + } + }, 250); + } + } else { + clearInterval(this.related_videos_wait); + + this.related_videos_wait = false; + + setTimeout(function() { + var button = document.getElementById('improvedtube-collapsed-related-videos'); + + if (button) { + button.remove(); + } + }, 260); + } +}; + + +/*------------------------------------------------------------------------------ +2.3 DETAILS +------------------------------------------------------------------------------*/ -/*----------------------------------------------------------------------------- -2.1 How long ago the video was uploaded ------------------------------------------------------------------------------*/ +/*------------------------------------------------------------------------------ +2.3.1 HOW LONG AGO THE VIDEO WAS UPLOADED +-------------------------------------------------------------------------------- +TODO: TEST +------------------------------------------------------------------------------*/ -ImprovedTube.how_long_ago_the_video_was_uploaded = function() { +ImprovedTube.howLongAgoTheVideoWasUploaded = function() { if (ImprovedTube.storage.how_long_ago_the_video_was_uploaded === true) { function timeSince(date) { var seconds = Math.floor((new Date() - new Date(date)) / 1000), @@ -623,12 +773,14 @@ ImprovedTube.how_long_ago_the_video_was_uploaded = function() { }; -/*----------------------------------------------------------------------------- -2.2 Show channel videos count ------------------------------------------------------------------------------*/ +/*------------------------------------------------------------------------------ +2.3.2 SHOW CHANNEL VIDEOS COUNT +-------------------------------------------------------------------------------- +TODO: TEST +------------------------------------------------------------------------------*/ -ImprovedTube.channel_videos_count = function() { - if (ImprovedTube.storage.channel_videos_count === true) { +ImprovedTube.channelVideosCount = function() { + if (this.storage.channel_videos_count === true) { var waiting_channel_link = setInterval(function() { var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; @@ -665,9 +817,11 @@ ImprovedTube.channel_videos_count = function() { }; -/*----------------------------------------------------------------------------- -3.0 Comments ------------------------------------------------------------------------------*/ +/*------------------------------------------------------------------------------ +2.4 COMMENTS +-------------------------------------------------------------------------------- +TODO TEST +------------------------------------------------------------------------------*/ ImprovedTube.comments_wait = false; @@ -716,3517 +870,1663 @@ ImprovedTube.comments = function() { }; -/*----------------------------------------------------------------------------- -4.0 Sidebar ------------------------------------------------------------------------------*/ +/*------------------------------------------------------------------------------ +4.0 PLAYER +-------------------------------------------------------------------------------- +TODO: CONNECT & TEST +------------------------------------------------------------------------------*/ -/*----------------------------------------------------------------------------- -4.1 Live chat ------------------------------------------------------------------------------*/ - -ImprovedTube.livechat_wait = false; -ImprovedTube.livechat_url = false; +/*------------------------------------------------------------------------------ +4.1 AUTOPLAY +------------------------------------------------------------------------------*/ -ImprovedTube.livechat = function() { +ImprovedTube.autoplay = function() { if ( - document.documentElement.getAttribute('it-page-type') === 'video' && - this.storage.livechat === 'collapsed' && - this.livechat_wait === false + (/\/watch\?/.test(location.href) && !/list=/.test(location.href) && this.storage.player_autoplay === false) || + (/\/watch\?/.test(location.href) && /list=/.test(location.href) && this.storage.playlist_autoplay === false) || + (/\/(channel|user|c)\//.test(location.href) && this.storage.channel_trailer_autoplay === false) ) { - this.livechat_wait = setInterval(function() { - var button = document.querySelector('#chat:not([collapsed]) #show-hide-button paper-button'), - expander = document.querySelector('#watch-sidebar-live-chat .yt-uix-expander'); + return false; + } - if (document.documentElement.getAttribute('it-page-type') !== 'video' || button || expander) { - clearInterval(ImprovedTube.livechat_wait); + return true; +}; - ImprovedTube.livechat_wait = false; - } - if (button) { - function click() { - ImprovedTube.livechat_url = location.href; - } +/*------------------------------------------------------------------------------ +4.2 AUTOPAUSE WHEN SWITCHING TABS +------------------------------------------------------------------------------*/ - button.addEventListener('mousedown', click); - button.addEventListener('touchdown', click); +ImprovedTube.playerAutopauseWhenSwitchingTabs = function() { + window.addEventListener('blur', function() { + ImprovedTube.focused = false; - setTimeout(function() { - if (ImprovedTube.livechat_url !== location.href) { - button.click(); - } - }, 500); - } else if (expander) { - expander.classList.add('yt-uix-expander-collapsed'); - } - }, 100); - } -}; + if ( + ImprovedTube.storage.player_autopause_when_switching_tabs === true && + /\/watch/.test(location.href) && + document.querySelector('.html5-video-player video') + ) { + document.querySelector('.html5-video-player video').pause(); + } + }); + + window.addEventListener('focus', function() { + ImprovedTube.focused = true; -/*----------------------------------------------------------------------------- -# Live chat type ------------------------------------------------------------------------------*/ + if ( + ImprovedTube.storage.player_autopause_when_switching_tabs === true && + /\/watch/.test(location.href) && + document.querySelector('.html5-video-player video') + ) { + document.querySelector('.html5-video-player video').play(); + } + }); +}; -ImprovedTube.livechat_type_wait = false; -ImprovedTube.livechat_type = function() { - return false; +/*------------------------------------------------------------------------------ +4.3 FORCED PLAYBACK SPEED +------------------------------------------------------------------------------*/ - if ( - document.documentElement.getAttribute('it-page-type') === 'video' && - ImprovedTube.storage.livechat_type === 'live' && - ImprovedTube.livechat_type_wait === false - ) { - this.livechat_type_wait = setInterval(function() { - if (document.querySelectorAll('#chat-messages #dropdown a')[1]) { - clearInterval(ImprovedTube.livechat_type_wait); +ImprovedTube.playerPlaybackSpeed = function(node) { + var playback_speed = Number(ImprovedTube.storage.player_playback_speed); - ImprovedTube.livechat_type_wait = false; + if (!node) { + node = document.querySelector('.html5-video-player'); + } - document.querySelectorAll('#chat-messages #dropdown a')[1].click(); + if (ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) && ImprovedTube.storage.player_forced_playback_speed === true) { + try { + if (window.location.href.indexOf('music') < 0) { + node.querySelector('video').playbackRate = playback_speed; } - }, 250); - } else if (this.livechat_type_wait !== false) { - clearInterval(this.livechat_type_wait); - - ImprovedTube.livechat_type_wait = false; + } catch (err) {} } }; -/*----------------------------------------------------------------------------- -4.2 Related videos ------------------------------------------------------------------------------*/ +/*------------------------------------------------------------------------------ +4.4 SUBTITLES +------------------------------------------------------------------------------*/ -ImprovedTube.related_videos_wait = false; +ImprovedTube.subtitles = function() { -ImprovedTube.related_videos = function() { - if (this.storage.related_videos === 'collapsed') { - if (!this.related_videos_wait) { - this.related_videos_wait = setInterval(function() { - if ( - document.querySelector('#related.ytd-watch-flexy') || - document.querySelector('#watch7-sidebar-contents') - ) { - clearInterval(this.related_videos_wait); +}; - this.related_videos_wait = false; - if (!document.getElementById('improvedtube-collapsed-related-videos')) { - var button = document.createElement('button'), - parent = document.querySelector('#related.ytd-watch-flexy') || document.querySelector('#watch7-sidebar-contents'), - reference = document.querySelector('#related > *') || document.querySelector('#watch7-sidebar-contents > *'); +/*------------------------------------------------------------------------------ +4.5 UP NEXT AUTOPLAY +------------------------------------------------------------------------------*/ - button.id = 'improvedtube-collapsed-related-videos'; - button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; - button.innerHTML = 'Show moreShow less'; +ImprovedTube.upNextAutoplay = function() { + if (this.isset(this.storage.up_next_autoplay)) { + var wait = setInterval(function() { + if ( + document.querySelector('#related #head.ytd-compact-autoplay-renderer #toggle') || + document.querySelector('#autoplay-checkbox') + ) { + clearInterval(wait); - button.onclick = function() { - document.documentElement.classList.toggle('related-videos-collapsed'); - }; + var option = ImprovedTube.storage.up_next_autoplay, + new_youtube_toggle = document.querySelector('#related #head.ytd-compact-autoplay-renderer #toggle'), + old_youtube_toggle = document.querySelector('#autoplay-checkbox'); - document.documentElement.classList.toggle('related-videos-collapsed'); - parent.insertBefore(button, reference); - } + if (new_youtube_toggle && (option === true && !new_youtube_toggle.hasAttribute('checked') || option === false && new_youtube_toggle.hasAttribute('checked'))) { + new_youtube_toggle.click(); + } else if (old_youtube_toggle && (option === true && !old_youtube_toggle.hasAttribute('checked') || option === false && old_youtube_toggle.hasAttribute('checked'))) { + old_youtube_toggle.click(); } - }, 250); - } - } else { - clearInterval(this.related_videos_wait); - - this.related_videos_wait = false; - - setTimeout(function() { - if (document.getElementById('improvedtube-collapsed-related-videos')) { - document.getElementById('improvedtube-collapsed-related-videos').remove(); } - }, 260); + }, 250); } }; -// TODO: HIGH CPU USAGE -document.addEventListener('ImprovedTubeBlacklist', function(event) { - if (chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-blacklist', - data: { - type: event.detail.type, - id: event.detail.id, - title: event.detail.title, - preview: event.detail.preview - } - }); - } -}); +/*------------------------------------------------------------------------------ +4.6 ADS +------------------------------------------------------------------------------*/ -ImprovedTube.blacklist = function() { - if (ImprovedTube.storage.blacklist_activate !== true) { - return false; - } +ImprovedTube.adInterval = false; +ImprovedTube.AdSkipButton = false; - if (typeof ImprovedTube.storage.blacklist === 'boolean' || !ImprovedTube.storage.blacklist) { - ImprovedTube.storage.blacklist = {}; +ImprovedTube.playerAds = function() { + if (ImprovedTube.adInterval) { + clearInterval(ImprovedTube.adInterval); } - // channel button - if (!ImprovedTube.isset(ImprovedTube.storage.blacklist.channels) || - (ImprovedTube.storage.blacklist.channels && - Object.keys(ImprovedTube.storage.blacklist.channels).indexOf(location.href.replace(/https:\/\/www.youtube.com\/(channel|user|c)\//g, '').replace(/\/(.)+/g, '')) === -1) - ) { - let channel_items = document.querySelectorAll('#inner-header-container #subscribe-button, .primary-header-upper-section .yt-uix-subscription-button'); - - for (let i = 0, l = channel_items.length; i < l; i++) { - if (!channel_items[i].parentNode.querySelector('.improvedtube-add-to-blacklist')) { - let button = document.createElement('div'); - - button.addEventListener('click', function(event) { - let video_id; + if (ImprovedTube.storage.player_ads === 'block_all' || ImprovedTube.storage.player_ads === 'subscribed_channels') { + ImprovedTube.adInterval = setInterval(function() { + if (!ImprovedTube.AdSkipButton) { + ImprovedTube.AdSkipButton = document.querySelector('.ytp-ad-skip-button.ytp-button'); + } - event.preventDefault(); - event.stopPropagation(); + if (ImprovedTube.AdSkipButton) { + ImprovedTube.AdSkipButton.click(); + } + }, 250); + } +}; - try { - video_id = location.href.replace(/https:\/\/www.youtube.com\/(channel|user)\//g, '').replace(/\/(.)+/g, ''); - document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { - detail: { - type: 'channel', - id: video_id, - title: document.querySelector('#channel-container yt-formatted-string.ytd-channel-name, a.branded-page-header-title-link').innerText, - preview: document.querySelector('#channel-container #avatar #img, .channel-header-profile-image').src - } - })); +/*------------------------------------------------------------------------------ +4.7 CUSTOM MINI-PLAYER +------------------------------------------------------------------------------*/ - if (!ImprovedTube.storage.blacklist || typeof ImprovedTube.storage.blacklist !== 'object') { - ImprovedTube.storage.blacklist = {}; - } +ImprovedTube.mini_player__mode = false; +ImprovedTube.mini_player__move = false; +ImprovedTube.mini_player__cursor = '""'; +ImprovedTube.mini_player__x = 0; +ImprovedTube.mini_player__y = 0; +ImprovedTube.mini_player__max_x = 0; +ImprovedTube.mini_player__max_y = 0; +ImprovedTube.mini_player__original_width = 0; +ImprovedTube.mini_player__original_height = 0; +ImprovedTube.mini_player__width = 200; +ImprovedTube.mini_player__height = 160; +ImprovedTube.mini_player__mousedown_x = 0; +ImprovedTube.mini_player__mousedown_y = 0; +ImprovedTube.mini_player__player_offset_x = 0; +ImprovedTube.mini_player__player_offset_y = 0; +ImprovedTube.mini_player__resize_offset = 16; - if (!ImprovedTube.storage.blacklist.channels) { - ImprovedTube.storage.blacklist.channels = {}; - } - ImprovedTube.storage.blacklist.channels[video_id] = { - title: document.querySelector('yt-formatted-string.ytd-channel-name, a.branded-page-header-title-link').innerText, - preview: document.querySelector('#channel-container #avatar #img, .channel-header-profile-image').src - }; +ImprovedTube.mini_player__setPosition = function(x, y) { + ImprovedTube.mini_player__element.style.transform = 'translate3d(' + x + 'px, ' + y + 'px, 0)'; +}; - ImprovedTube.blacklist(); +ImprovedTube.mini_player__setSize = function(width, height) { + ImprovedTube.mini_player__element.style.width = width + 'px'; + ImprovedTube.mini_player__element.style.height = height + 'px'; +}; - location.reload(); - } catch (err) {} - }, true); +ImprovedTube.mini_player__scroll = function() { + if (window.scrollY >= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === false) { + ImprovedTube.mini_player__mode = true; - button.className = 'improvedtube-add-to-blacklist'; - button.innerText = 'Add to blacklist'; - button.style.position = 'static'; - button.style.transform = 'unset'; - button.style.opacity = '1'; - button.style.visibility = 'visible'; - button.style.pointerEvents = 'all'; - button.style.width = 'auto'; - button.style.fontSize = '16px'; - button.style.lineHeight = '28px'; - button.style.height = 'auto'; - button.style.padding = '6px 12px'; - button.style.borderRadius = '2px'; - button.style.boxSizing = 'border-box'; - button.style.background = '#bb1a1a'; + ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; + ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; - channel_items[i].parentNode.insertBefore(button, channel_items[i]); - } - } - } + ImprovedTube.mini_player__element.classList.add('it-mini-player'); - // video button - let video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); + ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); + ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); - for (let i = 0, l = video_items.length; i < l; i++) { - if (!video_items[i].querySelector('.improvedtube-add-to-blacklist')) { - let button = document.createElement('div'); + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); - button.addEventListener('click', function(event) { - let video_id; + ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); - event.preventDefault(); - event.stopPropagation(); + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); - try { - video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'); + window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); + window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - let item = this.parentNode; + window.dispatchEvent(new Event('resize')); + } else if (window.scrollY < 256 && ImprovedTube.mini_player__mode === true || ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === true) { + ImprovedTube.mini_player__mode = false; + ImprovedTube.mini_player__element.classList.remove('it-mini-player'); + ImprovedTube.mini_player__move = false; + ImprovedTube.mini_player__setPosition(0, 0); + ImprovedTube.mini_player__element.style.width = ''; + ImprovedTube.mini_player__element.style.height = ''; - while ( - item.nodeName && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); - document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { - detail: { - type: 'video', - id: video_id, - title: item.querySelector('#video-title').innerText - } - })); + window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); + window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - if (!ImprovedTube.storage.blacklist || typeof ImprovedTube.storage.blacklist !== 'object') { - ImprovedTube.storage.blacklist = {}; - } + window.dispatchEvent(new Event('resize')); + } +}; - if (!ImprovedTube.storage.blacklist.videos) { - ImprovedTube.storage.blacklist.videos = {}; - } +ImprovedTube.mini_player__mousedown = function(event) { + if (event.button !== 0) { + return false; + } - ImprovedTube.storage.blacklist.videos[video_id] = { - title: item.querySelector('#video-title').innerText - }; + if (ImprovedTube.mini_player__resize() === true) { + return false; + } - ImprovedTube.blacklist(); - } catch (err) {} - }, true); - button.className = 'improvedtube-add-to-blacklist'; - button.innerText = 'x'; + var is_player = false; - video_items[i].appendChild(button); + for (var i = 0, l = event.path.length; i < l; i++) { + if ((event.path[i].classList && event.path[i].classList.contains('it-mini-player')) === true) { + is_player = true; } } - // remove channels - if (ImprovedTube.storage.blacklist && ImprovedTube.storage.blacklist.channels) { - let videos = document.querySelectorAll('a#thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (let i = 0, l = videos.length; i < l; i++) { - let item = videos[i]; - - while ( - item.nodeName && - item.nodeName !== 'YTD-VIDEO-RENDERER' && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } + if (is_player === false) { + return false; + } - if (item.querySelector('.ytd-channel-name a, a.spf-link[href*="/user/"], a.spf-link[href*="/channel/"]')) { - let channel_href = item.querySelector('.ytd-channel-name a, a.spf-link[href*="/user/"], a.spf-link[href*="/channel/"]').href; + event.preventDefault(); - for (var key in ImprovedTube.storage.blacklist.channels) { - if (item.style && channel_href.indexOf(key) !== -1) { - item.style.display = 'none'; - } - } - } - } - } + var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); - // remove videos - if (ImprovedTube.storage.blacklist && ImprovedTube.storage.blacklist.videos) { - let videos = document.querySelectorAll('a#thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); + ImprovedTube.mini_player__mousedown_x = event.clientX; + ImprovedTube.mini_player__mousedown_y = event.clientY; + ImprovedTube.mini_player__width = bcr.width; + ImprovedTube.mini_player__height = bcr.height; - for (let i = 0, l = videos.length; i < l; i++) { - if (videos[i].href && videos[i].href != '' && ImprovedTube.getParam(new URL(videos[i].href).search.substr(1), 'v') in ImprovedTube.storage.blacklist.videos) { - let item = videos[i]; + ImprovedTube.mini_player__player_offset_x = event.clientX - bcr.x; + ImprovedTube.mini_player__player_offset_y = event.clientY - bcr.y; - while ( - item.nodeName && - item.nodeName !== 'YTD-VIDEO-RENDERER' && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } + ImprovedTube.mini_player__max_x = document.body.offsetWidth - ImprovedTube.mini_player__width; + ImprovedTube.mini_player__max_y = window.innerHeight - ImprovedTube.mini_player__height; - item.style.display = 'none'; - } - } - } + window.addEventListener('mouseup', ImprovedTube.mini_player__mouseup); + window.addEventListener('mousemove', ImprovedTube.mini_player__mousemove); }; -/*----------------------------------------------------------------------------- ->>> CHANNEL -------------------------------------------------------------------------------- -1.0 Channel tab ------------------------------------------------------------------------------*/ +ImprovedTube.mini_player__mouseup = function() { + var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; -/*----------------------------------------------------------------------------- -1.0 Channel tab ------------------------------------------------------------------------------*/ + strg.x = ImprovedTube.mini_player__x; + strg.y = ImprovedTube.mini_player__y; -ImprovedTube.channel_default_tab = function() { - if (this.storage.channel_default_tab && this.storage.channel_default_tab !== '/') { - var value = this.storage.channel_default_tab, - node_list = document.querySelectorAll( - '*:not(#contenteditable-root) > a[href*="user"], ' + - '*:not(#contenteditable-root) > a[href*="channel"], ' + - '*:not(#contenteditable-root) > a[href*="/c/"]' - ); - - for (var i = 0, l = node_list.length; i < l; i++) { - var node = node_list[i]; - - if (!node.getAttribute('it-origin') || - node.hasAttribute('it-origin') && - node.getAttribute('it-origin').replace(/\/(home|videos|playlists)+$/g, '') != node.href.replace(/\/(home|videos|playlists)+$/g, '') - ) { - node.setAttribute('it-origin', node.href); - } + localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - node.href = node.getAttribute('it-origin') + value; + window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); + window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); - function click(event) { - event.stopPropagation(); - } + ImprovedTube.mini_player__move = false; - node.addEventListener('click', click, true); - node.parentNode.addEventListener('click', click, true); - node.parentNode.parentNode.addEventListener('click', click, true); - } - } else if (this.storage.channel_default_tab) { - var node_list = document.querySelectorAll('a[href*="user"], a[href*="channel"], a[href*="/c/"]'); + setTimeout(function() { + window.removeEventListener('click', ImprovedTube.mini_player__click, true); + }); +}; - for (var i = 0, l = node_list.length; i < l; i++) { - node_list[i].href = node_list[i].getAttribute('it-origin'); - } - } +ImprovedTube.mini_player__click = function(event) { + event.stopPropagation(); + event.preventDefault(); }; -/*----------------------------------------------------------------------------- ->>> GENERAL -------------------------------------------------------------------------------- -1.0 YouTube Home Page -2.0 Add «Scroll to top» -3.0 HD thumbnails -4.0 Confirmation before closing -5.0 Collapse of subscription sections -6.0 Mark watched videos ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 YouTube Home Page ------------------------------------------------------------------------------*/ - -ImprovedTube.youtube_home_page = function() { +ImprovedTube.mini_player__mousemove = function(event) { if ( - this.storage.youtube_home_page && - this.storage.youtube_home_page !== '/' && - this.storage.youtube_home_page !== 'search' + event.clientX < ImprovedTube.mini_player__mousedown_x - 5 || + event.clientY < ImprovedTube.mini_player__mousedown_y - 5 || + event.clientX > ImprovedTube.mini_player__mousedown_x + 5 || + event.clientY > ImprovedTube.mini_player__mousedown_y + 5 ) { - var value = this.storage.youtube_home_page, - node_list = document.querySelectorAll('a[href="/"]:not([role="tablist"]), a[href="//www.youtube.com"]:not([role="tablist"]), a[href="//www.youtube.com/"]:not([role="tablist"]), a[href="https://www.youtube.com"]:not([role="tablist"]), a[href="https://www.youtube.com/"]:not([role="tablist"]), a[it-origin="/"]:not([role="tablist"]), a[it-origin="//www.youtube.com"]:not([role="tablist"]), a[it-origin="//www.youtube.com/"]:not([role="tablist"]), a[it-origin="https://www.youtube.com"]:not([role="tablist"]), a[it-origin="https://www.youtube.com/"]:not([role="tablist"])'); + var x = event.clientX - ImprovedTube.mini_player__player_offset_x, + y = event.clientY - ImprovedTube.mini_player__player_offset_y; - for (var i = 0, l = node_list.length; i < l; i++) { - var node = node_list[i], - pathname = new URL((node.getAttribute('it-origin') || node.href)).pathname; + if (ImprovedTube.mini_player__move === false) { + ImprovedTube.mini_player__move = true; - if (pathname === '/') { - if (!node.getAttribute('it-origin')) { - node.setAttribute('it-origin', node.href); - } - } + window.addEventListener('click', ImprovedTube.mini_player__click, true); + } - node.href = value; - node.addEventListener('click', function() { - if ( - this.data && - this.data.commandMetadata && - this.data.commandMetadata.webCommandMetadata && - this.data.commandMetadata.webCommandMetadata.url - ) { - this.data.commandMetadata.webCommandMetadata.url = value; - } - }, true); + if (x < 0) { + x = 0; } - } else if (this.storage.youtube_home_page) { - var node_list = document.querySelectorAll('a[href="/"], a[href="//www.youtube.com"], a[href="//www.youtube.com/"], a[href="https://www.youtube.com"], a[href="https://www.youtube.com/"], a[it-origin="/"], a[it-origin="//www.youtube.com"], a[it-origin="//www.youtube.com/"], a[it-origin="https://www.youtube.com"], a[it-origin="https://www.youtube.com/"]'); - for (var i = 0, l = node_list.length; i < l; i++) { - node_list[i].href = node_list[i].getAttribute('it-origin') || '/'; + if (y < 0) { + y = 0; } - } -}; -function youtubeHomePage__documentStart(option) { - if (option && option !== '/' && option !== 'search' && location.hostname === 'www.youtube.com' && location.pathname === '/') { - location.replace(option); - } -}; + if (x > ImprovedTube.mini_player__max_x) { + x = ImprovedTube.mini_player__max_x; + } + if (y > ImprovedTube.mini_player__max_y) { + y = ImprovedTube.mini_player__max_y; + } -/*----------------------------------------------------------------------------- -2.0 Add «Scroll to top» ------------------------------------------------------------------------------*/ + ImprovedTube.mini_player__x = x; + ImprovedTube.mini_player__y = y; -ImprovedTube.scroll = function() { - if (window.scrollY > window.innerHeight / 2) { - document.documentElement.setAttribute('it-show-scroll-to-top', true); - } else { - document.documentElement.setAttribute('it-show-scroll-to-top', false); + ImprovedTube.mini_player__setPosition(x, y); } }; -ImprovedTube.add_scroll_to_top = function(is_update) { - if (this.storage.add_scroll_to_top === true) { - var button = document.createElement('div'); +ImprovedTube.mini_player__cursorUpdate = function(event) { + var x = event.clientX, + y = event.clientY, + c = ImprovedTube.mini_player__cursor; - button.id = 'it-scroll-to-top'; - button.innerHTML = ''; + if ( + x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset + ) { + c = 'ne-resize'; + } else if ( + x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'se-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && + y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'sw-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset + ) { + c = 'nw-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset + ) { + c = 'n-resize'; + } else if ( + x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'e-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 's-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'w-resize'; + } else { + c = ''; + } - button.addEventListener('click', function() { - window.scrollTo(0, 0); - }); + if (ImprovedTube.mini_player__cursor !== c) { + ImprovedTube.mini_player__cursor = c; - document.documentElement.appendChild(button); + document.documentElement.setAttribute('it-mini-player-cursor', ImprovedTube.mini_player__cursor); + } +}; - window.addEventListener('scroll', ImprovedTube.scroll); - } else { - window.removeEventListener('scroll', ImprovedTube.scroll); +ImprovedTube.mini_player__resize = function(event) { + if (ImprovedTube.mini_player__cursor !== '') { + window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); + window.addEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); + window.addEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); - if (document.querySelector('#it-scroll-to-top')) { - document.querySelector('#it-scroll-to-top').remove(); - } + return true; } }; +ImprovedTube.mini_player__resize_mouseMove = function(event) { + if (ImprovedTube.mini_player__cursor === 'n-resize') { + ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); + } else if (ImprovedTube.mini_player__cursor === 'e-resize') { + ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__height); + } else if (ImprovedTube.mini_player__cursor === 's-resize') { + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, event.clientY - ImprovedTube.mini_player__y); + } else if (ImprovedTube.mini_player__cursor === 'w-resize') { + ImprovedTube.mini_player__setPosition(event.clientX, ImprovedTube.mini_player__y); + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__height); + } else if (ImprovedTube.mini_player__cursor === 'ne-resize') { + ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); + ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); + } else if (ImprovedTube.mini_player__cursor === 'se-resize') { + ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, event.clientY - ImprovedTube.mini_player__y); + } else if (ImprovedTube.mini_player__cursor === 'sw-resize') { + ImprovedTube.mini_player__setPosition(event.clientX, ImprovedTube.mini_player__y); + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, event.clientY - ImprovedTube.mini_player__y); + } else if (ImprovedTube.mini_player__cursor === 'nw-resize') { + ImprovedTube.mini_player__setPosition(event.clientX, event.clientY); + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); + } +}; -/*----------------------------------------------------------------------------- -3.0 HD thumbnails ------------------------------------------------------------------------------*/ +ImprovedTube.mini_player__resize_mouseUp = function(event) { + var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); -ImprovedTube.hd_thumbnails = function() { - if (this.storage.hd_thumbnails === true) { - var images = document.querySelectorAll('img'); + ImprovedTube.mini_player__x = bcr.left; + ImprovedTube.mini_player__y = bcr.top; + ImprovedTube.mini_player__width = bcr.width; + ImprovedTube.mini_player__height = bcr.height; - for (var i = 0, l = images.length; i < l; i++) { - if (/(hqdefault\.jpg|hq720.jpg)+/.test(images[i].src) && !images[i].dataset.defaultSrc) { - images[i].dataset.defaultSrc = images[i].src; + var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - images[i].onload = function() { - if (this.naturalHeight <= 90) { - this.src = this.dataset.defaultSrc; - } - }; + strg.width = ImprovedTube.mini_player__width; + strg.height = ImprovedTube.mini_player__height; - images[i].src = images[i].src.replace(/(hqdefault\.jpg|hq720.jpg)+/, 'maxresdefault.jpg'); - } - } - } else { - var images = document.querySelectorAll('img'); + localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - for (var i = 0, l = images.length; i < l; i++) { - if (images[i].dataset.defaultSrc) { - images[i].src = images[i].dataset.defaultSrc; - } - } - } + window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); + window.removeEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); + window.removeEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); }; +ImprovedTube.mini_player = function() { + ImprovedTube.mini_player__element = document.querySelector('.html5-video-player'); -/*----------------------------------------------------------------------------- -4.0 Confirmation before closing ------------------------------------------------------------------------------*/ + if (ImprovedTube.storage.mini_player === true) { + var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; -ImprovedTube.confirmation_before_closing = function() { - window.onbeforeunload = function() { - if (ImprovedTube.storage.confirmation_before_closing === true) { - return 'You have attempted to leave this page. Are you sure?'; - } - }; -}; + ImprovedTube.mini_player__x = ImprovedTube.isset(strg.x) ? strg.x : 16; + ImprovedTube.mini_player__y = ImprovedTube.isset(strg.y) ? strg.y : 16; + ImprovedTube.mini_player__width = strg.width || 200; + ImprovedTube.mini_player__height = strg.height || 150; + window.addEventListener('scroll', ImprovedTube.mini_player__scroll); + } else { + ImprovedTube.mini_player__mode = false; + ImprovedTube.mini_player__element.classList.remove('it-mini-player'); + ImprovedTube.mini_player__move = false; + ImprovedTube.mini_player__setPosition(0, 0); + ImprovedTube.mini_player__element.style.width = ''; + ImprovedTube.mini_player__element.style.height = ''; -/*----------------------------------------------------------------------------- -5.0 Collapse of subscription sections ------------------------------------------------------------------------------*/ + ImprovedTube.mini_player__element.classList.remove('it-mini-player'); -ImprovedTube.collapse_of_subscription_sections = function() { - if (/\/feed\/subscriptions/.test(location.href)) { - if (ImprovedTube.storage.collapse_of_subscription_sections === true) { - var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer, #browse-items-primary .section-list > li'); - - for (var i = 0, l = sections.length; i < l; i++) { - if (!sections[i].querySelector('.it-section-collapse')) { - var section_title = sections[i].querySelector('h2'), - button = document.createElement('div'); - - button.className = 'it-section-collapse'; - button.innerHTML = ''; - button.section = sections[i]; - button.addEventListener('click', function() { - var section = this.section, - content = section.querySelector('.grid-subheader + #contents, .shelf-title-table + .multirow-shelf'); - - if (section.classList.contains('it-section-collapsed') === false) { - content.style.height = content.offsetHeight + 'px'; - content.style.transition = 'height 150ms'; - } - - setTimeout(function() { - section.classList.toggle('it-section-collapsed'); - }); - }); - - if (!sections[i].querySelector('.shelf-title-cell')) { - section_title.parentNode.insertBefore(button, section_title.nextSibling); - } else { - section_title.appendChild(button); - } - } - } - } else { - var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'), - buttons = document.querySelectorAll('.it-section-collapse'); - - for (var i = 0, l = sections.length; i < l; i++) { - sections[i].classList.remove('it-section-collapsed'); - sections[i].style.height = ''; - sections[i].style.transition = ''; - } - - for (var i = 0, l = buttons.length; i < l; i++) { - buttons[i].remove(); - } - } - } -}; - - -/*----------------------------------------------------------------------------- -6.0 Mark watched videos ------------------------------------------------------------------------------*/ - -document.addEventListener('ImprovedTubeWatched', function(event) { - if (chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-watched', - data: { - action: event.detail.action, - id: event.detail.id, - title: event.detail.title - } - }); - } -}); - -ImprovedTube.mark_watched_videos = function() { - if (ImprovedTube.storage.mark_watched_videos === true) { - var video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (let i = 0, l = video_items.length; i < l; i++) { - if (!video_items[i].querySelector('.it-mark-watched')) { - var button = document.createElement('div'); - - button.className = 'it-mark-watched' + (ImprovedTube.storage.watched && ImprovedTube.storage.watched[ImprovedTube.getParam(new URL(video_items[i].href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); - button.innerHTML = ''; - button.addEventListener('click', function(event) { - var watched = this.classList.contains('watched') ? false : true; - - event.preventDefault(); - event.stopPropagation(); - - this.classList.toggle('watched'); - - try { - var video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'), - item = this.parentNode; - - while ( - item.nodeName && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } - - if (!ImprovedTube.storage.watched || typeof ImprovedTube.storage.watched !== 'object') { - ImprovedTube.storage.watched = {}; - } - - if (watched === true) { - ImprovedTube.storage.watched[video_id] = { - title: item.querySelector('a#video-title, .title, .yt-lockup-title > a').innerText - }; - - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'set', - id: video_id, - title: item.querySelector('a#video-title, .title, .yt-lockup-title > a').innerText - } - })); - } else if (ImprovedTube.storage.watched[video_id]) { - delete ImprovedTube.storage.watched[video_id]; - - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'remove', - id: video_id - } - })); - } - } catch (err) {} - }); - - video_items[i].appendChild(button); - } - } - } -}; - -/*----------------------------------------------------------------------------- ->>> PLAYER -------------------------------------------------------------------------------- -1.0 Quality -2.0 Volume -3.0 Playback speed -4.0 Autoplay -5.0 Allow 60fps -6.0 Codec h.264 -7.0 Subtitles -8.0 Loudness normalization -9.0 Up next autoplay -10.0 Mini player -11.0 Ads -12.0 Autopause -13.0 Auto-fullscreen -14.0 Custom plyaer buttons - 14.1 Repeat - 14.2 Screenshot - 14.3 Rotate - 14.4 Popup player ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Quality ------------------------------------------------------------------------------*/ - -ImprovedTube.player_quality = function(node) { - var quality = ImprovedTube.storage.player_quality; - - if (!node) { - node = document.querySelector('.html5-video-player'); - } - - if (node.getAvailableQualityLevels) { - var available_quality_levels = node.getAvailableQualityLevels(); - - if (quality && quality !== 'auto') { - if (available_quality_levels.indexOf(quality) === -1) { - quality = available_quality_levels[0]; - } - - node.setPlaybackQualityRange(quality); - node.setPlaybackQuality(quality); - } - } -}; - - -/*----------------------------------------------------------------------------- -2.0 Volume ------------------------------------------------------------------------------*/ - -ImprovedTube.player_volume = function(node) { - if (!node) { - node = document.querySelector('.html5-video-player'); - } - - if (node && ImprovedTube.storage.player_forced_volume === true) { - var volume = Number(ImprovedTube.storage.player_volume); - - if (!ImprovedTube.isset(volume) || !volume) { - volume = 1; - } - - node.setVolume(volume); - } -}; - - -/*----------------------------------------------------------------------------- -3.0 Playback speed ------------------------------------------------------------------------------*/ - -ImprovedTube.player_playback_speed = function(node) { - var playback_speed = Number(ImprovedTube.storage.player_playback_speed); - - if (!node) { - node = document.querySelector('.html5-video-player'); - } - - if (ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) && ImprovedTube.storage.player_forced_playback_speed === true) { - try { - if (window.location.href.indexOf('music') < 0) { - node.querySelector('video').playbackRate = playback_speed; - } - } catch (err) {} - } -}; - - -/*----------------------------------------------------------------------------- -4.0 Autoplay ------------------------------------------------------------------------------*/ - -ImprovedTube.autoplay = function() { - if ( - (/\/watch\?/.test(location.href) && !/list=/.test(location.href) && this.storage.player_autoplay === false) || - (/\/watch\?/.test(location.href) && /list=/.test(location.href) && this.storage.playlist_autoplay === false) || - (/\/(channel|user|c)\//.test(location.href) && this.storage.channel_trailer_autoplay === false) - ) { - return false; - } - - return true; -}; - - -/*----------------------------------------------------------------------------- -5.0 Allow 60fps ------------------------------------------------------------------------------*/ - -ImprovedTube.player_60fps = function() { - if (this.storage.player_60fps === false) { - var canPlayType = HTMLMediaElement.prototype.canPlayType; - - function overwrite(self, callback, mime) { - var match = /framerate=(\d+)/.exec(mime); - - if (match && match[1] > 30) { - return ''; - } else { - return callback.call(self, mime); - } - } - - if (window.MediaSource) { - var isTypeSupported = window.MediaSource.isTypeSupported; - - window.MediaSource.isTypeSupported = function(mime) { - return overwrite(this, isTypeSupported, mime); - }; - } - - HTMLMediaElement.prototype.canPlayType = function(mime) { - var status = overwrite(this, canPlayType, mime); - - if (!status) { - return ''; - } else { - return status; - } - }; - } -}; - - -/*----------------------------------------------------------------------------- -6.0 Video codec ------------------------------------------------------------------------------*/ - -ImprovedTube.player_h264 = function() { - if (this.storage.player_h264 === true) { - var canPlayType = HTMLMediaElement.prototype.canPlayType; - - function overwrite(self, callback, mime) { - if (/webm|vp8|vp9/.test(mime)) { - return false; - } else { - return callback.call(self, mime); - } - } - - if (window.MediaSource) { - var isTypeSupported = window.MediaSource.isTypeSupported; - - window.MediaSource.isTypeSupported = function(mime) { - return overwrite(this, isTypeSupported, mime); - }; - } - - HTMLMediaElement.prototype.canPlayType = function(mime) { - var status = overwrite(this, canPlayType, mime); - - if (!status) { - return ''; - } else { - return status; - } - }; - } -}; - - -/*----------------------------------------------------------------------------- -9.0 Up next autoplay ------------------------------------------------------------------------------*/ - -ImprovedTube.up_next_autoplay = function() { - if (this.isset(this.storage.up_next_autoplay)) { - var wait = setInterval(function() { - if ( - document.querySelector('#related #head.ytd-compact-autoplay-renderer #toggle') || - document.querySelector('#autoplay-checkbox') - ) { - clearInterval(wait); - - var option = ImprovedTube.storage.up_next_autoplay, - new_youtube_toggle = document.querySelector('#related #head.ytd-compact-autoplay-renderer #toggle'), - old_youtube_toggle = document.querySelector('#autoplay-checkbox'); - - if (new_youtube_toggle && (option === true && !new_youtube_toggle.hasAttribute('checked') || option === false && new_youtube_toggle.hasAttribute('checked'))) { - new_youtube_toggle.click(); - } else if (old_youtube_toggle && (option === true && !old_youtube_toggle.hasAttribute('checked') || option === false && old_youtube_toggle.hasAttribute('checked'))) { - old_youtube_toggle.click(); - } - } - }, 250); - } -}; - - -/*----------------------------------------------------------------------------- -10.0 Mini player (todo) ------------------------------------------------------------------------------*/ - -ImprovedTube.mini_player__mode = false; -ImprovedTube.mini_player__move = false; -ImprovedTube.mini_player__cursor = '""'; -ImprovedTube.mini_player__x = 0; -ImprovedTube.mini_player__y = 0; -ImprovedTube.mini_player__max_x = 0; -ImprovedTube.mini_player__max_y = 0; -ImprovedTube.mini_player__original_width = 0; -ImprovedTube.mini_player__original_height = 0; -ImprovedTube.mini_player__width = 200; -ImprovedTube.mini_player__height = 160; -ImprovedTube.mini_player__mousedown_x = 0; -ImprovedTube.mini_player__mousedown_y = 0; -ImprovedTube.mini_player__player_offset_x = 0; -ImprovedTube.mini_player__player_offset_y = 0; -ImprovedTube.mini_player__resize_offset = 16; - - -ImprovedTube.mini_player__setPosition = function(x, y) { - ImprovedTube.mini_player__element.style.transform = 'translate3d(' + x + 'px, ' + y + 'px, 0)'; -}; - -ImprovedTube.mini_player__setSize = function(width, height) { - ImprovedTube.mini_player__element.style.width = width + 'px'; - ImprovedTube.mini_player__element.style.height = height + 'px'; -}; - -ImprovedTube.mini_player__scroll = function() { - if (window.scrollY >= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === false) { - ImprovedTube.mini_player__mode = true; - - ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; - ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; - - ImprovedTube.mini_player__element.classList.add('it-mini-player'); - - ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); - ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); - - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); - - window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - - window.dispatchEvent(new Event('resize')); - } else if (window.scrollY < 256 && ImprovedTube.mini_player__mode === true || ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === true) { - ImprovedTube.mini_player__mode = false; - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); - ImprovedTube.mini_player__move = false; - ImprovedTube.mini_player__setPosition(0, 0); - ImprovedTube.mini_player__element.style.width = ''; - ImprovedTube.mini_player__element.style.height = ''; - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - - window.dispatchEvent(new Event('resize')); - } -}; - -ImprovedTube.mini_player__mousedown = function(event) { - if (event.button !== 0) { - return false; - } - - if (ImprovedTube.mini_player__resize() === true) { - return false; - } - - var is_player = false; - - for (var i = 0, l = event.path.length; i < l; i++) { - if ((event.path[i].classList && event.path[i].classList.contains('it-mini-player')) === true) { - is_player = true; - } - } - - if (is_player === false) { - return false; - } - - event.preventDefault(); - - var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); - - ImprovedTube.mini_player__mousedown_x = event.clientX; - ImprovedTube.mini_player__mousedown_y = event.clientY; - ImprovedTube.mini_player__width = bcr.width; - ImprovedTube.mini_player__height = bcr.height; - - ImprovedTube.mini_player__player_offset_x = event.clientX - bcr.x; - ImprovedTube.mini_player__player_offset_y = event.clientY - bcr.y; - - ImprovedTube.mini_player__max_x = document.body.offsetWidth - ImprovedTube.mini_player__width; - ImprovedTube.mini_player__max_y = window.innerHeight - ImprovedTube.mini_player__height; - - window.addEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.addEventListener('mousemove', ImprovedTube.mini_player__mousemove); -}; - -ImprovedTube.mini_player__mouseup = function() { - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - - strg.x = ImprovedTube.mini_player__x; - strg.y = ImprovedTube.mini_player__y; - - localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - - window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); - - ImprovedTube.mini_player__move = false; - - setTimeout(function() { - window.removeEventListener('click', ImprovedTube.mini_player__click, true); - }); -}; - -ImprovedTube.mini_player__click = function(event) { - event.stopPropagation(); - event.preventDefault(); -}; - -ImprovedTube.mini_player__mousemove = function(event) { - if ( - event.clientX < ImprovedTube.mini_player__mousedown_x - 5 || - event.clientY < ImprovedTube.mini_player__mousedown_y - 5 || - event.clientX > ImprovedTube.mini_player__mousedown_x + 5 || - event.clientY > ImprovedTube.mini_player__mousedown_y + 5 - ) { - var x = event.clientX - ImprovedTube.mini_player__player_offset_x, - y = event.clientY - ImprovedTube.mini_player__player_offset_y; - - if (ImprovedTube.mini_player__move === false) { - ImprovedTube.mini_player__move = true; - - window.addEventListener('click', ImprovedTube.mini_player__click, true); - } - - if (x < 0) { - x = 0; - } - - if (y < 0) { - y = 0; - } - - if (x > ImprovedTube.mini_player__max_x) { - x = ImprovedTube.mini_player__max_x; - } - - if (y > ImprovedTube.mini_player__max_y) { - y = ImprovedTube.mini_player__max_y; - } - - ImprovedTube.mini_player__x = x; - ImprovedTube.mini_player__y = y; - - ImprovedTube.mini_player__setPosition(x, y); - } -}; - -ImprovedTube.mini_player__cursorUpdate = function(event) { - var x = event.clientX, - y = event.clientY, - c = ImprovedTube.mini_player__cursor; - - if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset - ) { - c = 'ne-resize'; - } else if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'se-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'sw-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset - ) { - c = 'nw-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset - ) { - c = 'n-resize'; - } else if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'e-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 's-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'w-resize'; - } else { - c = ''; - } - - if (ImprovedTube.mini_player__cursor !== c) { - ImprovedTube.mini_player__cursor = c; - - document.documentElement.setAttribute('it-mini-player-cursor', ImprovedTube.mini_player__cursor); - } -}; - -ImprovedTube.mini_player__resize = function(event) { - if (ImprovedTube.mini_player__cursor !== '') { - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - window.addEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); - window.addEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); - - return true; - } -}; - -ImprovedTube.mini_player__resize_mouseMove = function(event) { - if (ImprovedTube.mini_player__cursor === 'n-resize') { - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); - } else if (ImprovedTube.mini_player__cursor === 'e-resize') { - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__height); - } else if (ImprovedTube.mini_player__cursor === 's-resize') { - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, event.clientY - ImprovedTube.mini_player__y); - } else if (ImprovedTube.mini_player__cursor === 'w-resize') { - ImprovedTube.mini_player__setPosition(event.clientX, ImprovedTube.mini_player__y); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__height); - } else if (ImprovedTube.mini_player__cursor === 'ne-resize') { - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); - } else if (ImprovedTube.mini_player__cursor === 'se-resize') { - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, event.clientY - ImprovedTube.mini_player__y); - } else if (ImprovedTube.mini_player__cursor === 'sw-resize') { - ImprovedTube.mini_player__setPosition(event.clientX, ImprovedTube.mini_player__y); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, event.clientY - ImprovedTube.mini_player__y); - } else if (ImprovedTube.mini_player__cursor === 'nw-resize') { - ImprovedTube.mini_player__setPosition(event.clientX, event.clientY); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); - } -}; - -ImprovedTube.mini_player__resize_mouseUp = function(event) { - var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); - - ImprovedTube.mini_player__x = bcr.left; - ImprovedTube.mini_player__y = bcr.top; - ImprovedTube.mini_player__width = bcr.width; - ImprovedTube.mini_player__height = bcr.height; - - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - - strg.width = ImprovedTube.mini_player__width; - strg.height = ImprovedTube.mini_player__height; - - localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - window.removeEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); - window.removeEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); -}; - -ImprovedTube.mini_player = function() { - ImprovedTube.mini_player__element = document.querySelector('.html5-video-player'); - - if (ImprovedTube.storage.mini_player === true) { - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - - ImprovedTube.mini_player__x = ImprovedTube.isset(strg.x) ? strg.x : 16; - ImprovedTube.mini_player__y = ImprovedTube.isset(strg.y) ? strg.y : 16; - ImprovedTube.mini_player__width = strg.width || 200; - ImprovedTube.mini_player__height = strg.height || 150; - - window.addEventListener('scroll', ImprovedTube.mini_player__scroll); - } else { - ImprovedTube.mini_player__mode = false; - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); - ImprovedTube.mini_player__move = false; - ImprovedTube.mini_player__setPosition(0, 0); - ImprovedTube.mini_player__element.style.width = ''; - ImprovedTube.mini_player__element.style.height = ''; - - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - window.dispatchEvent(new Event('resize')); - - window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); - window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.removeEventListener('click', ImprovedTube.mini_player__click); - window.removeEventListener('scroll', ImprovedTube.mini_player__scroll); - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - } -}; - - -/*----------------------------------------------------------------------------- -12.0 Autopause ------------------------------------------------------------------------------*/ - -ImprovedTube.player_autopause_when_switching_tabs = function() { - window.addEventListener('blur', function() { - ImprovedTube.focused = false; - - if ( - ImprovedTube.storage.player_autopause_when_switching_tabs === true && - /\/watch/.test(location.href) && - document.querySelector('.html5-video-player video') - ) { - document.querySelector('.html5-video-player video').pause(); - } - }); - - window.addEventListener('focus', function() { - ImprovedTube.focused = true; - - if ( - ImprovedTube.storage.player_autopause_when_switching_tabs === true && - /\/watch/.test(location.href) && - document.querySelector('.html5-video-player video') - ) { - document.querySelector('.html5-video-player video').play(); - } - }); -}; - - -/*----------------------------------------------------------------------------- -13.0 Auto-fullscreen ------------------------------------------------------------------------------*/ - -ImprovedTube.player_autofullscreen = function(node) { - if (!node) { - node = document.querySelector('.html5-video-player'); - } - - if ( - this.storage.player_autofullscreen === true && - !document.fullscreenElement && - document.documentElement.getAttribute('it-page-type') === 'video' && - node.toggleFullscreen - ) { - node.toggleFullscreen(); - } -}; - - -/*----------------------------------------------------------------------------- -14.0 Custom buttons ------------------------------------------------------------------------------*/ - -ImprovedTube.createPlayerButton = function(node, options) { - var button = document.createElement('button'); - - var wait = setInterval(function() { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - if (node && node.querySelector('.ytp-left-controls')) { - clearInterval(wait); - - button.className = 'ytp-button it-player-button'; - - button.dataset.title = options.title; - - if (options.id) { - if (node.querySelector('#' + options.id)) { - node.querySelector('#' + options.id).remove(); - } - - button.id = options.id; - } - - if (options.html) { - button.innerHTML = options.html; - } - - button.style.opacity = options.opacity || '.5'; - - if (options.onclick) { - button.onclick = options.onclick; - } - - node.querySelector('.ytp-left-controls').insertBefore(button, node.querySelector('.ytp-left-controls').childNodes[3]); - } - }); -}; - - -/*----------------------------------------------------------------------------- -14.1 Repeat ------------------------------------------------------------------------------*/ - -ImprovedTube.player_repeat_button = function(node) { - if (this.storage.player_repeat_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - this.createPlayerButton(node, { - id: 'it-repeat-button', - html: '', - onclick: function() { - if (node.querySelector('video').hasAttribute('loop')) { - node.querySelector('video').removeAttribute('loop'); - this.style.opacity = '.5'; - } else if (!/ad-showing/.test(player.className)) { - node.querySelector('video').setAttribute('loop', ''); - this.style.opacity = '1'; - } - }, - title: 'Repeat' - }); - - if (this.storage.player_always_repeat === true) { - setTimeout(function() { - node.querySelector('video').setAttribute('loop', ''); - node.querySelector('#it-repeat-button').style.opacity = '1'; - }, 100); - } - } else if (document.querySelector('.it-repeat-button')) { - document.querySelector('.it-repeat-button').remove(); - } -}; - - -/*----------------------------------------------------------------------------- -14.2 Screenshot ------------------------------------------------------------------------------*/ - -ImprovedTube.screenshot = function() { - document.body.style.opacity = '0'; - - var video = document.querySelector('.html5-video-player video'), - cvs = document.createElement('canvas'), - ctx = cvs.getContext('2d'), - old_w = video.offsetWidth, - old_h = video.offsetHeight; - - video.style.width = video.videoWidth + 'px'; - video.style.height = video.videoHeight + 'px'; - - setTimeout(function() { - cvs.width = video.videoWidth; - cvs.height = video.videoHeight; - - ctx.drawImage(video, 0, 0, cvs.width, cvs.height); - - cvs.toBlob(function(blob) { - if (ImprovedTube.storage.player_screenshot_save_as !== 'clipboard') { - var a = document.createElement('a'); - - a.href = URL.createObjectURL(blob); - - a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '-' + new Date(document.querySelector('video').getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; - - a.click(); - } else { - try { - navigator.clipboard.write([ - new ClipboardItem({ - 'image/png': blob - }) - ]); - } catch (error) {} - } - - setTimeout(function() { - video.style.width = old_w + 'px'; - video.style.height = old_h + 'px'; - - document.body.style.opacity = '1'; - }, 100); - }); - }, 100); -}; - -ImprovedTube.player_screenshot_button = function() { - if (this.storage.player_screenshot_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - this.createPlayerButton(node, { - id: 'it-screenshot-button', - html: '', - opacity: 1, - onclick: ImprovedTube.screenshot, - title: 'Screenshot' - }); - } else if (document.querySelector('.it-screenshot-button')) { - document.querySelector('.it-screenshot-button').remove(); - } -}; - - -/*----------------------------------------------------------------------------- -14.3 Rotate ------------------------------------------------------------------------------*/ - -ImprovedTube.player_rotate_button = function() { - if (this.storage.player_rotate_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - this.createPlayerButton(node, { - id: 'it-rotate-button', - html: '', - opacity: 1, - onclick: function() { - var video = document.querySelector('.html5-video-player video'), - transform = '', - rotate = (document.querySelector('.it-rotate-styles') && document.querySelector('.it-rotate-styles').textContent.match(/rotate\([0-9.]+deg\)/g) || [''])[0]; - - rotate = Number((rotate.match(/[0-9.]+/g) || [])[0]) || 0; - - if (rotate < 270 && rotate % 90 == 0) { - rotate = rotate + 90; - } else { - rotate = 0; - } - - transform += 'rotate(' + rotate + 'deg)'; - - if (rotate == 90 || rotate == 270) { - transform += ' scale(' + video.offsetHeight / video.offsetWidth + ')'; - } - - //video.style.transform = transform; - - if (!document.querySelector('.it-rotate-styles')) { - var styles = document.createElement('style'); - - styles.className = 'it-rotate-styles'; - - document.body.appendChild(styles); - } - - document.querySelector('.it-rotate-styles').textContent = '.html5-video-player:not(it-mini-player) video {transform:' + transform + '}'; - }, - title: 'Rotate' - }); - } else if (document.querySelector('.it-rotate-button')) { - document.querySelector('.it-rotate-button').remove(); - document.querySelector('.it-rotate-styles').remove(); - } -}; - - -/*----------------------------------------------------------------------------- -14.4 Popup ------------------------------------------------------------------------------*/ - -ImprovedTube.player_popup_button = function() { - if (this.storage.player_popup_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - this.createPlayerButton(node, { - id: 'it-popup-player-button', - html: '', - opacity: 1, - onclick: function() { - node.pauseVideo(); - - window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(node.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'location=0,menubar=0,status=0,titlebar=0,width=' + node.offsetWidth + ',height=' + node.offsetHeight); - }, - title: 'Popup' - }); - } else if (document.querySelector('.it-popup-player-button')) { - document.querySelector('.it-popup-player-button').remove(); - } -}; - - -/*----------------------------------------------------------------------------- -# LOUDNESS NORMALIZATION ------------------------------------------------------------------------------*/ - -ImprovedTube.player_loudness_normalization = function() { - if (document.querySelector('video')) { - document.querySelector('video').onvolumechange = function(event) { - if (document.querySelector('.ytp-volume-panel') && ImprovedTube.storage.player_loudness_normalization === false) { - var volume = Number(document.querySelector('.ytp-volume-panel').getAttribute('aria-valuenow')); - - document.querySelector('video').volume = volume / 100; - } - }; - } - - if (ImprovedTube.storage.player_loudness_normalization === false) { - try { - var local_storage = localStorage['yt-player-volume']; - - if (ImprovedTube.isset(Number(ImprovedTube.storage.player_volume)) && ImprovedTube.storage.player_forced_volume === true) { - - } else if (local_storage) { - local_storage = JSON.parse(JSON.parse(local_storage).data); - local_storage = Number(local_storage.volume); - - document.querySelector('video').volume = local_storage / 100; - } else { - document.querySelector('video').volume = 100; - } - } catch (err) {} - } -}; - -/*----------------------------------------------------------------------------- ->>> PLAYLIST -------------------------------------------------------------------------------- -1.0 Reverse -2.0 Repeat -3.0 Shuffle ------------------------------------------------------------------------------*/ - - -/*----------------------------------------------------------------------------- -1.0 Reverse (todo) ------------------------------------------------------------------------------*/ - -ImprovedTube.playlistReverseUrl = false; -ImprovedTube.playlistReversed = false; - -ImprovedTube.playlistReverseNextPrev = function() { - var ytd_watch = document.querySelector('ytd-watch-flexy'); - - for (var i = 0, l = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.sets.length; i < l; i++) { - var autoplay = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.sets; - - if (autoplay[i].previousButtonVideo && autoplay[i].nextButtonVideo) { - autoplay[i].autoplayVideo = autoplay[i].previousButtonVideo; - autoplay[i].previousButtonVideo = autoplay[i].nextButtonVideo; - autoplay[i].nextButtonVideo = autoplay[i].autoplayVideo; - } - } - - for (var i = 0, l = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.modifiedSets.length; i < l; i++) { - var autoplay = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.modifiedSets; - - if (autoplay[i].previousButtonVideo && autoplay[i].nextButtonVideo) { - autoplay[i].autoplayVideo = autoplay[i].previousButtonVideo; - autoplay[i].previousButtonVideo = autoplay[i].nextButtonVideo; - autoplay[i].nextButtonVideo = autoplay[i].autoplayVideo; - } - } - - ytd_watch.updatePageData_(JSON.parse(JSON.stringify(ytd_watch.data))); - - document.querySelector('yt-navigation-manager').updatePlayer_(null, ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay, null, ytd_watch.data.contents.twoColumnWatchNextResults.playlist); -}; - -ImprovedTube.playlistReverse = function() { - if (this.playlistReverseUrl !== location.href && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer') && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #playlist-action-menu')) { - var button = document.querySelector('#it-reverse-playlist'); - - this.playlistReverseUrl = location.href; - - if (this.storage.playlist_reverse === true) { - if (!button) { - button = document.createElement('button'); - - button.id = 'it-reverse-playlist'; - button.className = 'style-scope yt-icon-button'; - button.innerHTML = ''; - - button.addEventListener('click', function(event) { - event.preventDefault(); - event.stopPropagation(); - - this.classList.toggle('active'); - - ImprovedTube.playlistReversed = !ImprovedTube.playlistReversed; - - ImprovedTube.playlistReverseNextPrev(); - ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); - - return false; - }, true); - - document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #start-actions').appendChild(button); - } - } else if (button) { - button.remove(); - } - } -}; - - -/*----------------------------------------------------------------------------- -2.0 Repeat ------------------------------------------------------------------------------*/ - -ImprovedTube.playlist_repeat_wait = false; - -ImprovedTube.playlist_repeat = function() { - if (this.isset(this.storage.playlist_repeat) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { - ImprovedTube.playlist_repeat_wait = setInterval(function() { - if ( - document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[0] || - document.querySelector('.playlist-nav-controls .toggle-loop') - ) { - clearInterval(ImprovedTube.playlist_repeat_wait); - - ImprovedTube.playlist_repeat_wait = false; - - var option = ImprovedTube.storage.playlist_repeat, - new_youtube_toggle = document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer'), - old_youtube_toggle = document.querySelector('.playlist-nav-controls .toggle-loop'); - - if (new_youtube_toggle[0] && (option === true && new_youtube_toggle[0].className.search('style-default-active') === -1 || option === 'disabled' && new_youtube_toggle[0].className.search('style-default-active') !== -1)) { - new_youtube_toggle[0].click(); - } else if (old_youtube_toggle && (option === true && old_youtube_toggle.className.search('yt-uix-button-toggled') === -1 || option === 'disabled' && old_youtube_toggle.className.search('yt-uix-button-toggled') !== -1)) { - old_youtube_toggle.click(); - } - } - }, 250); - } -}; - - -/*----------------------------------------------------------------------------- -3.0 Shuffle ------------------------------------------------------------------------------*/ - -ImprovedTube.playlist_shuffle_wait = false; - -ImprovedTube.playlist_shuffle = function() { - if (this.isset(this.storage.playlist_shuffle) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { - ImprovedTube.playlist_shuffle_wait = setInterval(function() { - if ( - document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[1] || - document.querySelector('.playlist-nav-controls .shuffle-playlist') - ) { - clearInterval(ImprovedTube.playlist_shuffle_wait); - - ImprovedTube.playlist_shuffle_wait = false; - - var option = ImprovedTube.storage.playlist_shuffle, - new_youtube_toggle = document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer'), - old_youtube_toggle = document.querySelector('.playlist-nav-controls .shuffle-playlist'); - - if (new_youtube_toggle[1] && (option === true && new_youtube_toggle[1].className.search('style-default-active') === -1 || option === 'disabled' && new_youtube_toggle[1].className.search('style-default-active') !== -1)) { - new_youtube_toggle[1].click(); - } else if (old_youtube_toggle && (option === true && old_youtube_toggle.className.search('yt-uix-button-toggled') === -1 || option === 'disabled' && old_youtube_toggle.className.search('yt-uix-button-toggled') !== -1)) { - old_youtube_toggle.click(); - } - } - }, 250); - } -}; - - -/*----------------------------------------------------------------------------- -4.0 Up next autoplay ------------------------------------------------------------------------------*/ - -ImprovedTube.playlist_up_next_autoplay_f = function(event) { - if ( - ImprovedTube.getParam(location.href, 'list') && - ImprovedTube.storage.playlist_up_next_autoplay === false && - this.currentTime >= this.duration - 1 - ) { - this.pause(); - } -}; - -ImprovedTube.playlist_up_next_autoplay = function(player) { - player.querySelector('video').removeEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); - player.querySelector('video').addEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); -}; - -/*----------------------------------------------------------------------------- ->>> SETTINGS -------------------------------------------------------------------------------- -1.0 ImprovedTube icon on YouTube -2.0 Delete YouTube cookies -3.0 YouTube Language ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 ImprovedTube icon on YouTube ------------------------------------------------------------------------------*/ - -ImprovedTube.improvedtube_youtube_icon_wait = false; - -ImprovedTube.improvedtube_youtube_icon_resize = function() { - var iframe = document.querySelector('.it-btn__iframe'), - icon = document.querySelector('.it-btn__icon'); - - if (iframe && icon) { - var x = icon.getBoundingClientRect().x, - y = icon.getBoundingClientRect().y; - - if (x < window.innerWidth / 2) { - iframe.style.right = 'auto'; - iframe.style.left = '0px'; - } else { - iframe.style.right = '0px'; - iframe.style.left = 'auto'; - } - - if (y < window.innerHeight / 2) { - iframe.style.top = '50px'; - iframe.style.bottom = 'auto'; - - iframe.style.height = Math.min(500, window.innerHeight - Math.max(0, iframe.getBoundingClientRect().top) - 16) + 'px'; - } else { - iframe.style.top = 'auto'; - iframe.style.bottom = '50px'; - - iframe.style.height = Math.min(500, window.innerHeight - Math.max(0, window.innerHeight - iframe.getBoundingClientRect().y - iframe.getBoundingClientRect().height) - 16) + 'px'; - } - } -}; - -ImprovedTube.improvedtube_youtube_icon = function() { - if (window.self !== window.top) { - return false; - } - - if ( - ImprovedTube.storage.improvedtube_youtube_icon === 'disabled' && - document.querySelector('.it-btn') - ) { - document.querySelector('.it-btn').remove(); - } - - if (this.improvedtube_youtube_icon_wait === false) { - this.improvedtube_youtube_icon_wait = setInterval(function() { - var option = ImprovedTube.storage.improvedtube_youtube_icon, - parentNode, - referenceNode; - - if (option === 'header_left') { - parentNode = document.querySelector('ytd-masthead #start'); - referenceNode = document.querySelector('ytd-masthead #start #guide-button'); - } else if (option === 'header_right') { - parentNode = ( - document.querySelector('#end #buttons') || - document.querySelector('#yt-masthead-user') - ); - } else if (option === 'draggable') { - parentNode = document.body || document.querySelector('body'); - } else if (option === 'below_player') { - parentNode = ( - document.querySelector('.title.ytd-video-primary-info-renderer') || - document.querySelector('#watch-headline-title') - ); - } - - if (document.querySelector('.it-btn')) { - if (!parentNode.querySelector(':scope > .it-btn')) { - document.querySelector('.it-btn').remove(); - } else { - clearInterval(ImprovedTube.improvedtube_youtube_icon_wait); - - ImprovedTube.improvedtube_youtube_icon_wait = false; - - return false; - } - } - - if ( - ImprovedTube.isset(option) && - option !== 'disabled' && - parentNode && (option === 'header_left' ? referenceNode : true) - ) { - clearInterval(ImprovedTube.improvedtube_youtube_icon_wait); - - ImprovedTube.improvedtube_youtube_icon_wait = false; - - var button = document.createElement('div'); - - button.className = 'it-btn'; - button.innerHTML = '
'; - button.addEventListener('click', function() { - event.preventDefault(); - event.stopPropagation(); - - this.classList.toggle('it-btn--active'); - ImprovedTube.improvedtube_youtube_icon_resize(); - - return false; - }, true); - - if (option === 'draggable') { - var position = localStorage.getItem('IT_ICON'); - - if (ImprovedTube.isset(position)) { - position = JSON.parse(position); - - button.style.left = position.x + 'px'; - button.style.top = position.y + 'px'; - } - - function move(event) { - button.classList.add('it-btn--dragging'); - - if (event.clientX < window.innerWidth / 2) { - if (event.clientX - Number(button.dataset.x) >= 16) { - button.style.left = event.clientX - Number(button.dataset.x) + 'px'; - } else { - button.style.left = '16px'; - } - } else { - if (event.clientX + (48 + window.innerWidth - document.querySelector('body').offsetWidth) - Number(button.dataset.x) <= window.innerWidth) { - button.style.left = event.clientX - Number(button.dataset.x) + 'px'; - } else { - button.style.left = 'calc(100vw - ' + (48 + window.innerWidth - document.querySelector('body').offsetWidth) + 'px)'; - } - } - - if (event.clientY < window.innerHeight / 2) { - if (event.clientY - Number(button.dataset.y) >= 16) { - button.style.top = event.clientY - Number(button.dataset.y) + 'px'; - } else { - button.style.top = '16px'; - } - } else { - if (event.clientY + 48 - Number(button.dataset.y) <= window.innerHeight) { - button.style.top = event.clientY - Number(button.dataset.y) + 'px'; - } else { - button.style.top = 'calc(100vh - 48px)'; - } - } - - ImprovedTube.improvedtube_youtube_icon_resize(); - } - - button.addEventListener('mousedown', function(event) { - this.dataset.x = event.layerX; - this.dataset.y = event.layerY; - - window.addEventListener('mousemove', move); - }); - - window.addEventListener('mouseup', function() { - button.classList.remove('it-btn--dragging'); - - window.removeEventListener('mousemove', move); - - localStorage.setItem('IT_ICON', JSON.stringify({ - x: button.offsetLeft, - y: button.offsetTop - })); - - setTimeout(function() { - button.style.pointerEvents = ''; - }); - }); - } - - if (option === 'header_left') { - parentNode.insertBefore(button, referenceNode); - } else { - parentNode.appendChild(button); - } - - ImprovedTube.improvedtube_youtube_icon_resize(); - } - }, 250); - } -}; - - -/*----------------------------------------------------------------------------- -2.0 Delete YouTube cookies ------------------------------------------------------------------------------*/ - -ImprovedTube.delete_youtube_cookies = function() { - var cookies = document.cookie.split(';'); - - for (var i = 0, l = cookies.length; i < l; i++) { - var cookie = cookies[i], - eqPos = cookie.indexOf('='), - name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; - - document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; - } - - setTimeout(function() { - location.reload(); - }, 100); -}; - - -/*----------------------------------------------------------------------------- -3.0 YouTube Language ------------------------------------------------------------------------------*/ - -ImprovedTube.youtube_language = function() { - var pref = ImprovedTube.getCookieValueByName('PREF'), - hl = ImprovedTube.getParam(pref, 'hl'); - - if (hl) { - ImprovedTube.setCookie('PREF', pref.replace('hl=' + hl, 'hl=' + ImprovedTube.storage.youtube_language)); - } else { - ImprovedTube.setCookie('PREF', pref + '&hl=' + ImprovedTube.storage.youtube_language); - } - - setTimeout(function() { - location.reload(); - }, 100); -}; - -/*----------------------------------------------------------------------------- ->>> SHORTCUTS -------------------------------------------------------------------------------- -1.0 Keyboard -2.0 Mouse ------------------------------------------------------------------------------*/ - -ImprovedTube.shortcuts = function() { - var self = this, - keys = {}, - wheel = 0, - hover = false, - status_timer; - - function showStatus(player, volume) { - if (!player.querySelector('#it-status')) { - var element = document.createElement('div'); - - element.id = 'it-status'; - element.innerHTML = volume; - - document.querySelector('.html5-video-container').appendChild(element); - } else { - player.querySelector('#it-status').innerHTML = volume; - } - - if (status_timer) { - clearTimeout(status_timer); - } - - status_timer = setTimeout(function() { - if (player.querySelector('#it-status')) { - player.querySelector('#it-status').remove(); - } - }, 500); - } - - function start(type = 'keys') { - if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || event.target.isContentEditable) { - return false; - } - - var features = { - shortcut_240p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('small'); - player.setPlaybackQuality('small'); - } - }, - shortcut_360p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('medium'); - player.setPlaybackQuality('medium'); - } - }, - shortcut_480p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('large'); - player.setPlaybackQuality('large'); - } - }, - shortcut_720p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd720'); - player.setPlaybackQuality('hd720'); - } - }, - shortcut_1080p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd1080'); - player.setPlaybackQuality('hd1080'); - } - }, - shortcut_1440p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd1440'); - player.setPlaybackQuality('hd1440'); - } - }, - shortcut_2160p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd2160'); - player.setPlaybackQuality('hd2160'); - } - }, - shortcut_2880p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd2880'); - player.setPlaybackQuality('hd2880'); - } - }, - shortcut_4320p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('highres'); - player.setPlaybackQuality('highres'); - } - }, - shortcut_picture_in_picture: function() { - var video = document.querySelector('#movie_player video'); - - if (video) { - video.requestPictureInPicture(); - } - }, - shortcut_play_pause: function() { - var video = document.querySelector('#movie_player video'); - - if (video) { - if (video.paused) { - video.play(); - } else { - video.pause(); - } - } - }, - shortcut_stop: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.stopVideo(); - } - }, - shortcut_next_video: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.nextVideo) { - player.nextVideo(); - } - }, - shortcut_prev_video: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.previousVideo) { - player.previousVideo(); - } - }, - shortcut_seek_backward: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.seekBy) { - player.seekBy(-10); - } - }, - shortcut_seek_forward: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.seekBy) { - player.seekBy(10); - } - }, - shortcut_increase_volume: function() { - var player = document.querySelector('.html5-video-player'); - - if (player && player.setVolume && player.getVolume) { - player.setVolume(player.getVolume() + (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); - } - - showStatus(player, player.getVolume()); - }, - shortcut_decrease_volume: function() { - var player = document.querySelector('.html5-video-player'); - - if (player && player.setVolume && player.getVolume) { - player.setVolume(player.getVolume() - (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); - } - - showStatus(player, player.getVolume()); - }, - shortcut_screenshot: function() { - var player = document.querySelector('.html5-video-player'); - - if (player && player.setVolume && player.getVolume) { - ImprovedTube.screenshot(); - } - }, - shortcut_increase_playback_speed: function() { - var video = document.querySelector('#movie_player video'); - - if (video && video.playbackRate) { - video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); - - showStatus(document.querySelector('#movie_player'), video.playbackRate); - } - }, - shortcut_decrease_playback_speed: function() { - var video = document.querySelector('#movie_player video'); - - if (video && video.playbackRate) { - video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); - - showStatus(document.querySelector('#movie_player'), video.playbackRate); - } - }, - shortcut_go_to_search_box: function() { - var search = document.querySelector('#search'); - - if (search && search.focus) { - search.focus(); - } - }, - shortcut_activate_fullscreen: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.toggleFullscreen) { - player.toggleFullscreen(); - } - }, - shortcut_activate_captions: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.querySelector('.ytp-subtitles-button')) { - player.querySelector('.ytp-subtitles-button').click(); - } - }, - shortcut_like_shortcut: function() { - var like = (document.querySelectorAll('.like-button-renderer-like-button')[0] || document.querySelectorAll('#menu #top-level-buttons ytd-toggle-button-renderer')[0]); - - if (like) { - like.click(); - } - }, - shortcut_dislike_shortcut: function() { - var like = (document.querySelectorAll('.like-button-renderer-dislike-button')[0] || document.querySelectorAll('#menu #top-level-buttons ytd-toggle-button-renderer')[1]); - - if (like) { - like.click(); - } - }, - shortcut_dark_theme: function() { - if (document.documentElement.hasAttribute('dark')) { - document.documentElement.removeAttribute('dark'); - document.documentElement.removeAttribute('it-theme'); - } else { - document.documentElement.setAttribute('dark', ''); - document.documentElement.setAttribute('it-theme', 'true'); - } - }, - shortcut_custom_mini_player: function() { - ImprovedTube.storage.mini_player = !ImprovedTube.storage.mini_player; - - ImprovedTube.mini_player(); - - if (ImprovedTube.storage.mini_player === true) { - ImprovedTube.mini_player__mode = true; - - ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; - ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; - - ImprovedTube.mini_player__element.classList.add('it-mini-player'); - - ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); - ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); - - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); - - window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - - window.dispatchEvent(new Event('resize')); - } - }, - shortcut_stats_for_nerds: function() { - var player = document.querySelector('.html5-video-player'); - - if (player.isVideoInfoVisible()) { - player.hideVideoInfo(); - } else { - player.showVideoInfo(); - } - }, - shortcut_toggle_cards: function() { - document.documentElement.toggleAttribute('it-player-hide-cards'); - } - }; - - for (var i in features) { - if (self.isset(self.storage[i])) { - var data = JSON.parse(self.storage[i]) || {}; - - if ( - (data.key === keys.key || !self.isset(data.key)) && - (data.shiftKey === keys.shiftKey || !self.isset(data.shiftKey)) && - (data.ctrlKey === keys.ctrlKey || !self.isset(data.ctrlKey)) && - (data.altKey === keys.altKey || !self.isset(data.altKey)) && - ((data.wheel > 0) === (wheel > 0) || !self.isset(data.wheel)) && - ((hover === true && (data.wheel > 0) === (wheel > 0) && Object.keys(keys).length === 0 && keys.constructor === Object) || (self.isset(data.key) || self.isset(data.altKey) || self.isset(data.ctrlKey))) - ) { - if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { - event.preventDefault(); - event.stopPropagation(); - } - - features[i](); - - if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { - return false; - } - } - } - } - } - - - /*------------------------------------------------------------------------- - 1.0 Keyboard - -------------------------------------------------------------------------*/ - - window.addEventListener('keydown', function(event) { - keys = { - key: event.key, - keyCode: event.keyCode, - shiftKey: event.shiftKey, - ctrlKey: event.ctrlKey, - altKey: event.altKey - }; - - start(); - }, true); - - window.addEventListener('keyup', function(event) { - keys = {}; - }, true); - - - /*------------------------------------------------------------------------- - 2.0 Mouse - -------------------------------------------------------------------------*/ - - window.addEventListener('mousemove', function(event) { - hover = false; - - for (var i = 0, l = event.path.length; i < l; i++) { - if (event.path[i].classList && event.path[i].classList.contains('html5-video-player')) { - hover = true; - } - } - }, { - passive: false, - capture: true - }); + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); - window.addEventListener('wheel', function(event) { - wheel = event.deltaY; + window.dispatchEvent(new Event('resize')); - start('wheel'); - }, { - passive: false, - capture: true - }); + window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); + window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); + window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); + window.removeEventListener('click', ImprovedTube.mini_player__click); + window.removeEventListener('scroll', ImprovedTube.mini_player__scroll); + window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); + } }; -/*----------------------------------------------------------------------------- ->>> THEMES -------------------------------------------------------------------------------- -1.0 Bluelight -2.0 Dim -3.0 Themes ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Bluelight ------------------------------------------------------------------------------*/ - -ImprovedTube.bluelight = function() { - var value = this.storage.bluelight, - times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); - - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; + +/*------------------------------------------------------------------------------ +4.8 AUTO FULLSCREEN +------------------------------------------------------------------------------*/ + +ImprovedTube.playerAutofullscreen = function(node) { + if (!node) { + node = document.querySelector('.html5-video-player'); } if ( - this.isset(value) && value !== 0 && value !== '0' && - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) + this.storage.player_autofullscreen === true && + !document.fullscreenElement && + document.documentElement.getAttribute('it-page-type') === 'video' && + node.toggleFullscreen ) { - if (!document.querySelector('#it-bluelight')) { - var container = document.createElement('div'); - - container.id = 'it-bluelight'; - container.innerHTML = ''; - - document.documentElement.appendChild(container); - } else { - document.querySelector('#it-bluelight-filter feColorMatrix').setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 ' + (1 - parseFloat(value) / 100) + ' 0 0 0 0 0 1 0'); - } - } else if (document.querySelector('#it-bluelight')) { - document.querySelector('#it-bluelight').remove(); + node.toggleFullscreen(); } }; -/*----------------------------------------------------------------------------- -2.0 Dim ------------------------------------------------------------------------------*/ +/*------------------------------------------------------------------------------ +4.9 QUALITY +------------------------------------------------------------------------------*/ -ImprovedTube.dim = function() { - var value = this.storage.dim, - times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); +ImprovedTube.playerQuality = function(node) { + var quality = ImprovedTube.storage.player_quality; - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; - }; + if (!node) { + node = document.querySelector('.html5-video-player'); + } - if ( - this.isset(value) && value !== 0 && value !== '0' && - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) - ) { - if (!document.querySelector('#it-dim')) { - var container = document.createElement('div'); + if (node.getAvailableQualityLevels) { + var available_quality_levels = node.getAvailableQualityLevels(); - container.id = 'it-dim'; - container.style.opacity = parseInt(Number(value)) / 100 || 0; + if (quality && quality !== 'auto') { + if (available_quality_levels.indexOf(quality) === -1) { + quality = available_quality_levels[0]; + } - document.documentElement.appendChild(container); - } else { - document.querySelector('#it-dim').style.opacity = parseInt(Number(value)) / 100 || 0; + node.setPlaybackQualityRange(quality); + node.setPlaybackQuality(quality); } + } +}; - if (!document.querySelector('#it-dim-player')) { - var container = document.createElement('div'); - container.id = 'it-dim-player'; - container.style.opacity = parseInt(Number(value)) / 100 || 0; +/*------------------------------------------------------------------------------ +4.10 CODEC H.264 +------------------------------------------------------------------------------*/ - if (document.querySelector('.html5-video-player')) { - document.querySelector('.html5-video-player').appendChild(container); +ImprovedTube.playerH264 = function() { + if (this.storage.player_h264 === true) { + var canPlayType = HTMLMediaElement.prototype.canPlayType; + + function overwrite(self, callback, mime) { + if (/webm|vp8|vp9/.test(mime)) { + return false; + } else { + return callback.call(self, mime); } - } else { - document.querySelector('#it-dim-player').style.opacity = parseInt(Number(value)) / 100 || 0; - } - } else { - if (document.querySelector('#it-dim')) { - document.querySelector('#it-dim').remove(); } - if (document.querySelector('#it-dim-player')) { - document.querySelector('#it-dim-player').remove(); + if (window.MediaSource) { + var isTypeSupported = window.MediaSource.isTypeSupported; + + window.MediaSource.isTypeSupported = function(mime) { + return overwrite(this, isTypeSupported, mime); + }; } + + HTMLMediaElement.prototype.canPlayType = function(mime) { + var status = overwrite(this, canPlayType, mime); + + if (!status) { + return ''; + } else { + return status; + } + }; } }; -ImprovedTube.font = function() { - if (this.storage.font) { - if (!document.querySelector('.it-font-family')) { - var link = document.createElement('link'); +/*------------------------------------------------------------------------------ +4.11 ALLOW 60FPS +------------------------------------------------------------------------------*/ + +ImprovedTube.player60fps = function() { + if (this.storage.player_60fps === false) { + var canPlayType = HTMLMediaElement.prototype.canPlayType; - link.rel = 'stylesheet'; + function overwrite(self, callback, mime) { + var match = /framerate=(\d+)/.exec(mime); - document.documentElement.appendChild(link); - } else { - var link = document.querySelector('.it-font-family'); + if (match && match[1] > 30) { + return ''; + } else { + return callback.call(self, mime); + } + } + + if (window.MediaSource) { + var isTypeSupported = window.MediaSource.isTypeSupported; + + window.MediaSource.isTypeSupported = function(mime) { + return overwrite(this, isTypeSupported, mime); + }; } - link.href = '//fonts.googleapis.com/css2?family=' + this.storage.font; + HTMLMediaElement.prototype.canPlayType = function(mime) { + var status = overwrite(this, canPlayType, mime); - document.documentElement.style.fontFamily = this.storage.font.replace(/\+/g, ' '); + if (!status) { + return ''; + } else { + return status; + } + }; } }; -/*----------------------------------------------------------------------------- -3.0 Themes ------------------------------------------------------------------------------*/ - -ImprovedTube.theme = function() { - var times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); - - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; +/*------------------------------------------------------------------------------ +4.12 FORCED VOLUME +------------------------------------------------------------------------------*/ + +ImprovedTube.playerVolume = function(node) { + if (!node) { + node = document.querySelector('.html5-video-player'); } - if ( - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) && - ( - this.isset(ImprovedTube.storage.default_dark_theme) && ImprovedTube.storage.default_dark_theme !== false || - this.isset(ImprovedTube.storage.night_theme) && ImprovedTube.storage.night_theme !== false || - this.isset(ImprovedTube.storage.dawn_theme) && ImprovedTube.storage.dawn_theme !== false || - this.isset(ImprovedTube.storage.sunset_theme) && ImprovedTube.storage.sunset_theme !== false || - this.isset(ImprovedTube.storage.desert_theme) && ImprovedTube.storage.desert_theme !== false || - this.isset(ImprovedTube.storage.plain_theme) && ImprovedTube.storage.plain_theme !== false || - this.isset(ImprovedTube.storage.black_theme) && ImprovedTube.storage.black_theme !== false - ) - ) { - var PREF_OLD = this.getParams(this.getCookieValueByName('PREF')), - PREF = this.getParams(this.getCookieValueByName('PREF')), - result = ''; - - if (!this.isset(PREF.f6) || this.isset(PREF.f6) && PREF.f6.length !== 3) { - PREF.f6 = '400'; - } else if (PREF.f6.length === 3) { - PREF.f6 = '4' + PREF.f6.substr(1); - } + if (node && ImprovedTube.storage.player_forced_volume === true) { + var volume = Number(ImprovedTube.storage.player_volume); - for (var i in PREF) { - result += i + '=' + PREF[i] + '&'; + if (!ImprovedTube.isset(volume) || !volume) { + volume = 1; } - this.setCookie('PREF', result.slice(0, -1)); - - document.documentElement.setAttribute('it-theme', 'true'); - } else { - document.documentElement.removeAttribute('it-theme'); + node.setVolume(volume); } }; -ImprovedTube.themeEditor = function() { - if (this.storage.theme_my_colors !== true) { - if (document.querySelector('.it-theme-editor')) { - document.querySelector('.it-theme-editor').remove(); - } +/*------------------------------------------------------------------------------ +4.13 LOUDNESS NORMALIZATION +------------------------------------------------------------------------------*/ - return false; - } +ImprovedTube.playerLoudnessNormalization = function() { + if (document.querySelector('video')) { + document.querySelector('video').onvolumechange = function(event) { + if (document.querySelector('.ytp-volume-panel') && ImprovedTube.storage.player_loudness_normalization === false) { + var volume = Number(document.querySelector('.ytp-volume-panel').getAttribute('aria-valuenow')); - var style = document.querySelector('.it-theme-editor') || document.createElement('style'); - - style.className = 'it-theme-editor'; - style.innerText = 'html{' + - '--yt-swatch-textbox-bg:rgba(19,19,19,1)!important;' + - '--yt-swatch-icon-color:rgba(136,136,136,1)!important;' + - '--yt-spec-brand-background-primary:rgba(0,0,0, 0.1) !important;' + - '--yt-spec-brand-background-secondary:rgba(0,0,0, 0.1) !important;' + - '--yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important;' + - '--yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important;' + - '--yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important;' + - '--yt-spec-brand-button-background:rgba(136,136,136,1) !important;' + - '--yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important;' + - '--yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important;' + - '--yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important;' + - '--yt-spec-10-percent-layer:rgba(136,136,136,1) !important;' + - '--yt-swatch-primary:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-swatch-primary-darker:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-brand-background-solid:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-a:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-b:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-c:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-touch-response:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-swatch-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-important-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-input-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-logo-override: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-spec-text-primary:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-primary-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-secondary:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-active-other:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-filled-button-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-call-to-action-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-icon-active:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-link-text:' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-spec-brand-subscribe-button-background:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-wordmark-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-selected-nav-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '}'; - - document.documentElement.appendChild(style); -} - -/*----------------------------------------------------------------------------- ->>> VOLUME MIXER -------------------------------------------------------------------------------- -1.0 Inject ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Inject ------------------------------------------------------------------------------*/ - -ImprovedTube.volumeMixer = function() {}; -/*----------------------------------------------------------------------------- ->>> FUNCTIONS -------------------------------------------------------------------------------- -1.0 ------------------------------------------------------------------------------*/ - -function injectScript(string) { - var script = document.createElement('script'); - - script.textContent = string; - - document.documentElement.appendChild(script); - - script.remove(); -} - -function injectStyle(string, id) { - var style = document.getElementById(id) || document.createElement('style'); - - style.textContent = string; - - document.documentElement.appendChild(style); -} - -ImprovedTube.isset = function(variable) { - if (typeof variable === 'undefined' || variable === null) { - return false; + document.querySelector('video').volume = volume / 100; + } + }; } - return true; -}; + if (ImprovedTube.storage.player_loudness_normalization === false) { + try { + var local_storage = localStorage['yt-player-volume']; -ImprovedTube.getCookieValueByName = function(name) { - var match = document.cookie.match(new RegExp('([; ]' + name + '|^' + name + ')([^\\s;]*)', 'g')); + if (ImprovedTube.isset(Number(ImprovedTube.storage.player_volume)) && ImprovedTube.storage.player_forced_volume === true) { - if (match) { - var cookie = match[0]; + } else if (local_storage) { + local_storage = JSON.parse(JSON.parse(local_storage).data); + local_storage = Number(local_storage.volume); - return cookie.replace(name + '=', '').replace(' ', ''); - } else - return ''; + document.querySelector('video').volume = local_storage / 100; + } else { + document.querySelector('video').volume = 100; + } + } catch (err) {} + } }; -ImprovedTube.getParam = function(query, name) { - var params = query.split('&'), - param = false; - for (var i = 0; i < params.length; i++) { - params[i] = params[i].split('='); +/*------------------------------------------------------------------------------ +4.14 SCREENSHOT +------------------------------------------------------------------------------*/ - if (params[i][0] == name) { - param = params[i][1]; - } - } +ImprovedTube.screenshot = function() { + document.body.style.opacity = '0'; - if (param) { - return param; - } else { - return false; - } -}; + var video = document.querySelector('.html5-video-player video'), + cvs = document.createElement('canvas'), + ctx = cvs.getContext('2d'), + old_w = video.offsetWidth, + old_h = video.offsetHeight; -ImprovedTube.getParams = function(query) { - var params = query.split('&'), - result = {}; + video.style.width = video.videoWidth + 'px'; + video.style.height = video.videoHeight + 'px'; - for (var i = 0, l = params.length; i < l; i++) { - params[i] = params[i].split('='); + setTimeout(function() { + cvs.width = video.videoWidth; + cvs.height = video.videoHeight; - result[params[i][0]] = params[i][1]; - } + ctx.drawImage(video, 0, 0, cvs.width, cvs.height); - return result; -}; + cvs.toBlob(function(blob) { + if (ImprovedTube.storage.player_screenshot_save_as !== 'clipboard') { + var a = document.createElement('a'); + + a.href = URL.createObjectURL(blob); + + a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '-' + new Date(document.querySelector('video').getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; -ImprovedTube.setCookie = function(name, value) { - var date = new Date(); + a.click(); + } else { + try { + navigator.clipboard.write([ + new ClipboardItem({ + 'image/png': blob + }) + ]); + } catch (error) {} + } - date.setTime(date.getTime() + 3.154e+10); + setTimeout(function() { + video.style.width = old_w + 'px'; + video.style.height = old_h + 'px'; - document.cookie = name + '=' + value + '; path=/; domain=.youtube.com; expires=' + date.toGMTString(); + document.body.style.opacity = '1'; + }, 100); + }); + }, 100); }; -ImprovedTube.pageType = function() { - var href = location.href, - type = ''; +ImprovedTube.playerScreenshotButton = function() { + if (this.storage.player_screenshot_button === true) { + if (!node) { + var node = document.querySelector('.html5-video-player'); + } - if (location.pathname == '/') { - type = 'home'; - } else if (/\/watch\?/.test(href)) { - type = 'video'; - } else if (/\/channel|user\//.test(href)) { - type = 'channel'; + this.createPlayerButton(node, { + id: 'it-screenshot-button', + html: '', + opacity: 1, + onclick: ImprovedTube.screenshot, + title: 'Screenshot' + }); + } else if (document.querySelector('.it-screenshot-button')) { + document.querySelector('.it-screenshot-button').remove(); } - - document.documentElement.setAttribute('it-page-type', type); }; -chrome.runtime.sendMessage({ - enabled: true -}); -/*----------------------------------------------------------------------------- ->>> INJECTION -------------------------------------------------------------------------------- -1.0 Initialization -2.0 Storage listener -3.0 Message listener ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Initialization ------------------------------------------------------------------------------*/ - -chrome.storage.local.get(function(items) { - var content = 'var ImprovedTube={'; - - if (typeof items.player_volume === 'string') { - items.player_volume = Number(items.player_volume); +/*------------------------------------------------------------------------------ +4.15 REPEAT +------------------------------------------------------------------------------*/ + +ImprovedTube.playerRepeatButton = function(node) { + if (this.storage.player_repeat_button === true) { + if (!node) { + var node = document.querySelector('.html5-video-player'); + } + + this.createPlayerButton(node, { + id: 'it-repeat-button', + html: '', + onclick: function() { + if (node.querySelector('video').hasAttribute('loop')) { + node.querySelector('video').removeAttribute('loop'); + this.style.opacity = '.5'; + } else if (!/ad-showing/.test(player.className)) { + node.querySelector('video').setAttribute('loop', ''); + this.style.opacity = '1'; + } + }, + title: 'Repeat' + }); + + if (this.storage.player_always_repeat === true) { + setTimeout(function() { + node.querySelector('video').setAttribute('loop', ''); + node.querySelector('#it-repeat-button').style.opacity = '1'; + }, 100); + } + } else if (document.querySelector('.it-repeat-button')) { + document.querySelector('.it-repeat-button').remove(); } +}; + + +/*------------------------------------------------------------------------------ +4.16 ROTATE +------------------------------------------------------------------------------*/ + +ImprovedTube.playerRotateButton = function() { + if (this.storage.player_rotate_button === true) { + if (!node) { + var node = document.querySelector('.html5-video-player'); + } - if (!items.hasOwnProperty('header_position')) { - items.header_position = 'normal'; - } + this.createPlayerButton(node, { + id: 'it-rotate-button', + html: '', + opacity: 1, + onclick: function() { + var video = document.querySelector('.html5-video-player video'), + transform = '', + rotate = (document.querySelector('.it-rotate-styles') && document.querySelector('.it-rotate-styles').textContent.match(/rotate\([0-9.]+deg\)/g) || [''])[0]; - if (!items.hasOwnProperty('player_size')) { - items.player_size = 'do_not_change'; - } + rotate = Number((rotate.match(/[0-9.]+/g) || [])[0]) || 0; - if (items.bluelight === '0') { - items.bluelight = 0; - } + if (rotate < 270 && rotate % 90 == 0) { + rotate = rotate + 90; + } else { + rotate = 0; + } - if (items.dim === '0') { - items.dim = 0; - } + transform += 'rotate(' + rotate + 'deg)'; - if (items.custom_js && items.custom_js.length > 0) { - injectScript('try{' + items.custom_js + '} catch (err) {}'); - } + if (rotate == 90 || rotate == 270) { + transform += ' scale(' + video.offsetHeight / video.offsetWidth + ')'; + } - if (items.custom_css && items.custom_css.length > 0) { - injectStyle(items.custom_css, 'it-custom-css'); - } + //video.style.transform = transform; - withoutInjection(items); + if (!document.querySelector('.it-rotate-styles')) { + var styles = document.createElement('style'); - content += 'storage:' + JSON.stringify(items); + styles.className = 'it-rotate-styles'; - for (var key in items) { - document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), items[key]); - } + document.body.appendChild(styles); + } - for (var key in ImprovedTube) { - content += ',' + key + ':' + ImprovedTube[key]; + document.querySelector('.it-rotate-styles').textContent = '.html5-video-player:not(it-mini-player) video {transform:' + transform + '}'; + }, + title: 'Rotate' + }); + } else if (document.querySelector('.it-rotate-button')) { + document.querySelector('.it-rotate-button').remove(); + document.querySelector('.it-rotate-styles').remove(); } +}; - content += '};ImprovedTube.init();'; - injectScript(content); -}); +/*------------------------------------------------------------------------------ +4.15 POPUP PLAYER +------------------------------------------------------------------------------*/ +ImprovedTube.playerPopupButton = function() { + if (this.storage.player_popup_button === true) { + if (!node) { + var node = document.querySelector('.html5-video-player'); + } -/*----------------------------------------------------------------------------- -2.0 Storage listener ------------------------------------------------------------------------------*/ + this.createPlayerButton(node, { + id: 'it-popup-player-button', + html: '', + opacity: 1, + onclick: function() { + node.pauseVideo(); -chrome.storage.onChanged.addListener(function(changes) { - for (var key in changes) { - var value = changes[key].newValue; + window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(node.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'location=0,menubar=0,status=0,titlebar=0,width=' + node.offsetWidth + ',height=' + node.offsetHeight); + }, + title: 'Popup' + }); + } else if (document.querySelector('.it-popup-player-button')) { + document.querySelector('.it-popup-player-button').remove(); + } +}; - if (['watched'].indexOf(key) === -1) { - document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), value); - injectScript('ImprovedTube.storage[\'' + key + '\']=' + (typeof value === 'boolean' ? value : '\'' + value + '\'') + ';'); +/*------------------------------------------------------------------------------ +5.0 PLAYLIST +-------------------------------------------------------------------------------- +TODO: CONNECT & TEST +------------------------------------------------------------------------------*/ - if (typeof ImprovedTube[key] === 'function') { - injectScript('ImprovedTube.' + key + '();'); - } +/*------------------------------------------------------------------------------ +5.1 UP NEXT AUTOPLAY +------------------------------------------------------------------------------*/ - if (key === 'schedule' || key === 'schedule_time_from' || key === 'schedule_time_to') { - injectScript('ImprovedTube.bluelight();'); - injectScript('ImprovedTube.dim();'); - injectScript('ImprovedTube.theme();'); - } +ImprovedTube.playlist_up_next_autoplay_f = function(event) { + if ( + ImprovedTube.getParam(location.href, 'list') && + ImprovedTube.storage.playlist_up_next_autoplay === false && + this.currentTime >= this.duration - 1 + ) { + this.pause(); + } +}; - if (key.indexOf('theme') !== -1) { - injectScript('ImprovedTube.theme();'); - } +ImprovedTube.playlistUpNextAutoplay = function(player) { + player.querySelector('video').removeEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); + player.querySelector('video').addEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); +}; - if (key === 'theme_primary_color' || key === 'theme_text_color') { - injectScript('ImprovedTube.themeEditor();'); - } - if (['custom_css'].indexOf(key) !== -1 && value.length > 0) { - injectStyle(value, 'it-custom-css'); - } else if (document.querySelector('#it-custom-css')) { - document.querySelector('#it-custom-css').remove(); - } - } - } -}); +/*------------------------------------------------------------------------------ +5.2 REVERSE +------------------------------------------------------------------------------*/ +ImprovedTube.playlistReverseUrl = false; +ImprovedTube.playlistReversed = false; -/*----------------------------------------------------------------------------- -3.0 Message listener ------------------------------------------------------------------------------*/ +ImprovedTube.playlistReverseNextPrev = function() { + var ytd_watch = document.querySelector('ytd-watch-flexy'); -chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { - var name = request.name || '', - value = request.value; + for (var i = 0, l = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.sets.length; i < l; i++) { + var autoplay = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.sets; - if (name === 'improvedtube-play') { - if (request.id && request.id !== new URL(location.href).searchParams.get('v')) { - injectScript(['if (document.querySelector(".html5-video-player") && !ImprovedTube.focused && ImprovedTube.storage.only_one_player_instance_playing) { document.querySelector(".html5-video-player").pauseVideo();}']); + if (autoplay[i].previousButtonVideo && autoplay[i].nextButtonVideo) { + autoplay[i].autoplayVideo = autoplay[i].previousButtonVideo; + autoplay[i].previousButtonVideo = autoplay[i].nextButtonVideo; + autoplay[i].nextButtonVideo = autoplay[i].autoplayVideo; } - } else if (name == 'request_volume' && document.querySelector('video')) { - sendResponse({ - value: document.querySelector('video').volume * 100 - }); - } else if (name == 'change_volume') { - injectScript(['if(document.querySelector(".html5-video-player")){document.querySelector(".html5-video-player").setVolume(' + request.volume + ');}'], 'improvedtube-mixer-data'); - } else if (name == 'request_playback_speed' && document.querySelector('video')) { - sendResponse({ - value: document.querySelector('video').playbackRate - }); - } else if (name == 'change_playback_speed') { - injectScript(['if(document.querySelector(".html5-video-player video")){document.querySelector(".html5-video-player video").playbackRate = ' + request.playback_speed + ';}'], 'improvedtube-mixer-data'); - } else if (name === 'delete_youtube_cookies') { - var cookies = document.cookie.split(';'); + } - for (var i = 0; i < cookies.length; i++) { - var cookie = cookies[i], - eqPos = cookie.indexOf('='), - name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; + for (var i = 0, l = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.modifiedSets.length; i < l; i++) { + var autoplay = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.modifiedSets; - document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; + if (autoplay[i].previousButtonVideo && autoplay[i].nextButtonVideo) { + autoplay[i].autoplayVideo = autoplay[i].previousButtonVideo; + autoplay[i].previousButtonVideo = autoplay[i].nextButtonVideo; + autoplay[i].nextButtonVideo = autoplay[i].autoplayVideo; } - - setTimeout(function() { - location.reload(); - }, 250); } -}); - -/*----------------------------------------------------------------------------- ->>> MIGRATION -------------------------------------------------------------------------------- -1.0 General - 1.1 Legacy YouTube - 1.2 YouTube Home Page - 1.3 Add «Scroll to top» - 1.4 Hide animated thumbnails - 1.5 Confirmation before closing -2.0 Appearance - 2.1 Header - 2.1.1 Header style - 2.1.2 Improve logo - 2.2 Player - 2.2.1 Annotations - 2.2.2 Cards - 2.2.3 Player size - 2.3 Footer - 2.3.5 Hide footer -3.0 Themes -4.0 Player - 4.1 Quality - 4.2 Volume - 4.3 Playback speed - 4.4 Autoplay - 4.5 Allow 60fps - 4.6 Codec h.264 - 4.7 Subtitles - 4.8 Loudness normalization - 4.9 Mini player - 4.10 Ads - 4.11 Autopause - 4.12 Auto-fullscreen - 4.13 Repeat button - 4.14 Screenshot button - 4.15 Rotate button - 4.16 Popup button -5.0 Playlist - 5.1 Repeat - 5.2 Shuffle -6.0 Channel - 6.1 Default tab - 6.2 Trailer autoplay - 6.3 Hide featured content ------------------------------------------------------------------------------*/ - -chrome.storage.local.get(function(object) { - if (object.migrated !== true) { - for (var key in object) { - var value = object[key]; - - if (value === 'true') { - object[key] = true; - } else if (value === 'false') { - object[key] = false; - } - /*--------------------------------------------------------------------- - 1.0 General - ---------------------------------------------------------------------*/ + ytd_watch.updatePageData_(JSON.parse(JSON.stringify(ytd_watch.data))); - /*--------------------------------------------------------------------- - 1.1 Legacy YouTube - ---------------------------------------------------------------------*/ + document.querySelector('yt-navigation-manager').updatePlayer_(null, ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay, null, ytd_watch.data.contents.twoColumnWatchNextResults.playlist); +}; - if (key === 'youtube_version') { - if (value === 'old') { - object.legacy_youtube = true; - } else { - object.legacy_youtube = false; - } +ImprovedTube.playlistReverse = function() { + if (this.playlistReverseUrl !== location.href && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer') && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #playlist-action-menu')) { + var button = document.querySelector('#it-reverse-playlist'); - delete object[key]; - } + this.playlistReverseUrl = location.href; + if (this.storage.playlist_reverse === true) { + if (!button) { + button = document.createElement('button'); - /*--------------------------------------------------------------------- - 1.2 YouTube Home Page - ---------------------------------------------------------------------*/ - else if (key === 'youtube_home_page') { - if (value === 'normal') { - object[key] = '/'; - } else if (value === 'trending') { - object[key] = '/feed/trending'; - } else if (value === 'subscriptions') { - object[key] = '/feed/subscriptions'; - } else if (value === 'history') { - object[key] = '/feed/history'; - } else if (value === 'watch_later') { - object[key] = '/playlist?list=WL'; - } - } + button.id = 'it-reverse-playlist'; + button.className = 'style-scope yt-icon-button'; + button.innerHTML = ''; + button.addEventListener('click', function(event) { + event.preventDefault(); + event.stopPropagation(); - /*--------------------------------------------------------------------- - 1.3 Add «Scroll to top» - ---------------------------------------------------------------------*/ - else if (key === 'scroll_to_top') { - if (value === 'true') { - object.add_scroll_to_top = true; - } else { - object.add_scroll_to_top = false; - } + this.classList.toggle('active'); - delete object[key]; - } + ImprovedTube.playlistReversed = !ImprovedTube.playlistReversed; + ImprovedTube.playlistReverseNextPrev(); + ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); - /*--------------------------------------------------------------------- - 1.4 Hide animated thumbnails - ---------------------------------------------------------------------*/ - else if (key === 'play_videos_by_hovering_the_thumbnails') { - if (value === 'false') { - object.hide_animated_thumbnails = true; - } else { - object.hide_animated_thumbnails = false; - } + return false; + }, true); - delete object[key]; + document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #start-actions').appendChild(button); } + } else if (button) { + button.remove(); + } + } +}; - /*--------------------------------------------------------------------- - 1.5 Confirmation before closing - ---------------------------------------------------------------------*/ - else if (key === 'youtube_prevent_closure') { - if (value === 'true') { - object.confirmation_before_closing = true; - } +/*------------------------------------------------------------------------------ +5.3 REPEAT +------------------------------------------------------------------------------*/ - delete object[key]; - } +ImprovedTube.playlist_repeat_wait = false; +ImprovedTube.playlistRepeat = function() { + if (this.isset(this.storage.playlist_repeat) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { + ImprovedTube.playlist_repeat_wait = setInterval(function() { + if ( + document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[0] || + document.querySelector('.playlist-nav-controls .toggle-loop') + ) { + clearInterval(ImprovedTube.playlist_repeat_wait); - /*--------------------------------------------------------------------- - 2.0 Appearance - ---------------------------------------------------------------------*/ + ImprovedTube.playlist_repeat_wait = false; - /*--------------------------------------------------------------------- - 2.1 Header - ---------------------------------------------------------------------*/ + var option = ImprovedTube.storage.playlist_repeat, + new_youtube_toggle = document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer'), + old_youtube_toggle = document.querySelector('.playlist-nav-controls .toggle-loop'); - /*--------------------------------------------------------------------- - 2.1.1 Header style - ---------------------------------------------------------------------*/ - else if (key === 'header') { - if (value === 'top_of_page') { - object.header_position = 'static'; - } else { - object.header_position = value; + if (new_youtube_toggle[0] && (option === true && new_youtube_toggle[0].className.search('style-default-active') === -1 || option === 'disabled' && new_youtube_toggle[0].className.search('style-default-active') !== -1)) { + new_youtube_toggle[0].click(); + } else if (old_youtube_toggle && (option === true && old_youtube_toggle.className.search('yt-uix-button-toggled') === -1 || option === 'disabled' && old_youtube_toggle.className.search('yt-uix-button-toggled') !== -1)) { + old_youtube_toggle.click(); } - - delete object[key]; } + }, 250); + } +}; - /*--------------------------------------------------------------------- - 2.1.2 Improve logo - ---------------------------------------------------------------------*/ - else if (key === 'improve_youtube_logo') { - object.header_improve_logo = value; - - delete object[key]; - } - +/*------------------------------------------------------------------------------ +5.4 SHUFFLE +------------------------------------------------------------------------------*/ - /*--------------------------------------------------------------------- - 2.2 Player - ---------------------------------------------------------------------*/ +ImprovedTube.playlist_shuffle_wait = false; - /*--------------------------------------------------------------------- - 2.2.1 Annotations - ---------------------------------------------------------------------*/ - else if (key === 'annotations') { - object.player_hide_annotations = value; +ImprovedTube.playlistShuffle = function() { + if (this.isset(this.storage.playlist_shuffle) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { + ImprovedTube.playlist_shuffle_wait = setInterval(function() { + if ( + document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[1] || + document.querySelector('.playlist-nav-controls .shuffle-playlist') + ) { + clearInterval(ImprovedTube.playlist_shuffle_wait); - delete object[key]; - } + ImprovedTube.playlist_shuffle_wait = false; - /*--------------------------------------------------------------------- - 2.2.2 Cards - ---------------------------------------------------------------------*/ - else if (key === 'cards') { - object.player_hide_cards = value; + var option = ImprovedTube.storage.playlist_shuffle, + new_youtube_toggle = document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer'), + old_youtube_toggle = document.querySelector('.playlist-nav-controls .shuffle-playlist'); - delete object[key]; + if (new_youtube_toggle[1] && (option === true && new_youtube_toggle[1].className.search('style-default-active') === -1 || option === 'disabled' && new_youtube_toggle[1].className.search('style-default-active') !== -1)) { + new_youtube_toggle[1].click(); + } else if (old_youtube_toggle && (option === true && old_youtube_toggle.className.search('yt-uix-button-toggled') === -1 || option === 'disabled' && old_youtube_toggle.className.search('yt-uix-button-toggled') !== -1)) { + old_youtube_toggle.click(); + } } + }, 250); + } +}; - /*--------------------------------------------------------------------- - 2.2.3 Transparent background - ---------------------------------------------------------------------*/ - else if (key === 'transparent_background') { - object.player_transparent_background = value; - - delete object[key]; - } - /*--------------------------------------------------------------------- - 2.2.4 Endscreen - ---------------------------------------------------------------------*/ - else if (key === 'endscreen') { - object.player_hide_endscreen = value; +/*------------------------------------------------------------------------------ +6.0 CHANNEL +-------------------------------------------------------------------------------- +TODO: CONNECT & TEST +------------------------------------------------------------------------------*/ - delete object[key]; - } +/*------------------------------------------------------------------------------ +6.1 DEFAULT CHANNEL TAB +------------------------------------------------------------------------------*/ - /*--------------------------------------------------------------------- - 2.3 Footer - ---------------------------------------------------------------------*/ +ImprovedTube.channelDefaultTab = function() { + if (this.storage.channel_default_tab && this.storage.channel_default_tab !== '/') { + var value = this.storage.channel_default_tab, + node_list = document.querySelectorAll( + '*:not(#contenteditable-root) > a[href*="user"], ' + + '*:not(#contenteditable-root) > a[href*="channel"], ' + + '*:not(#contenteditable-root) > a[href*="/c/"]' + ); - /*--------------------------------------------------------------------- - 2.3.5 Hide footer - ---------------------------------------------------------------------*/ - else if (key === 'footer') { - object.hide_footer = value === 'hidden' ? true : false; + for (var i = 0, l = node_list.length; i < l; i++) { + var node = node_list[i]; - delete object[key]; + if (!node.getAttribute('it-origin') || + node.hasAttribute('it-origin') && + node.getAttribute('it-origin').replace(/\/(home|videos|playlists)+$/g, '') != node.href.replace(/\/(home|videos|playlists)+$/g, '') + ) { + node.setAttribute('it-origin', node.href); } + node.href = node.getAttribute('it-origin') + value; - /*--------------------------------------------------------------------- - 3.0 Themes - ---------------------------------------------------------------------*/ - else if (key === 'it_theme') { - object.theme = value; - - delete object[key]; + function click(event) { + event.stopPropagation(); } + node.addEventListener('click', click, true); + node.parentNode.addEventListener('click', click, true); + node.parentNode.parentNode.addEventListener('click', click, true); + } + } else if (this.storage.channel_default_tab) { + var node_list = document.querySelectorAll('a[href*="user"], a[href*="channel"], a[href*="/c/"]'); - /*--------------------------------------------------------------------- - 4.0 Player - ---------------------------------------------------------------------*/ + for (var i = 0, l = node_list.length; i < l; i++) { + node_list[i].href = node_list[i].getAttribute('it-origin'); + } + } +}; - /*--------------------------------------------------------------------- - 4.1 Quality - ---------------------------------------------------------------------*/ - else if (key === 'video_quality') { - object.player_quality = value; - delete object[key]; - } +/*------------------------------------------------------------------------------ +7.0 SHORTCUTS +-------------------------------------------------------------------------------- +TODO: CONNECT & TEST +------------------------------------------------------------------------------*/ +ImprovedTube.shortcuts = function() { + var self = this, + keys = {}, + wheel = 0, + hover = false, + status_timer; - /*--------------------------------------------------------------------- - 4.2 Volume - ---------------------------------------------------------------------*/ - else if (key === 'video_volume') { - object.player_volume = value; + function showStatus(player, volume) { + if (!player.querySelector('#it-status')) { + var element = document.createElement('div'); - delete object[key]; - } + element.id = 'it-status'; + element.innerHTML = volume; + document.querySelector('.html5-video-container').appendChild(element); + } else { + player.querySelector('#it-status').innerHTML = volume; + } - /*--------------------------------------------------------------------- - 4.3 Playback speed - ---------------------------------------------------------------------*/ - else if (key === 'video_playback_speed') { - object.player_playback_speed = value; + if (status_timer) { + clearTimeout(status_timer); + } - delete object[key]; + status_timer = setTimeout(function() { + if (player.querySelector('#it-status')) { + player.querySelector('#it-status').remove(); } + }, 500); + } + function start(type = 'keys') { + if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || event.target.isContentEditable) { + return false; + } - /*--------------------------------------------------------------------- - 4.4 Autoplay - ---------------------------------------------------------------------*/ - else if (key === 'video_autoplay') { - object.player_autoplay = value; - - delete object[key]; - } - + var features = { + shortcut_240p: function() { + var player = document.querySelector('#movie_player'); - /*--------------------------------------------------------------------- - 4.5 Allow 60fps - ---------------------------------------------------------------------*/ - else if (key === 'allow_60fps') { - object.player_60fps = value; + if (player) { + player.setPlaybackQualityRange('small'); + player.setPlaybackQuality('small'); + } + }, + shortcut_360p: function() { + var player = document.querySelector('#movie_player'); - delete object[key]; - } + if (player) { + player.setPlaybackQualityRange('medium'); + player.setPlaybackQuality('medium'); + } + }, + shortcut_480p: function() { + var player = document.querySelector('#movie_player'); + if (player) { + player.setPlaybackQualityRange('large'); + player.setPlaybackQuality('large'); + } + }, + shortcut_720p: function() { + var player = document.querySelector('#movie_player'); - /*--------------------------------------------------------------------- - 4.6 Video codec h.264 - ---------------------------------------------------------------------*/ - else if (key === 'video_encode') { - object.player_h264 = value; + if (player) { + player.setPlaybackQualityRange('hd720'); + player.setPlaybackQuality('hd720'); + } + }, + shortcut_1080p: function() { + var player = document.querySelector('#movie_player'); - delete object[key]; - } + if (player) { + player.setPlaybackQualityRange('hd1080'); + player.setPlaybackQuality('hd1080'); + } + }, + shortcut_1440p: function() { + var player = document.querySelector('#movie_player'); + if (player) { + player.setPlaybackQualityRange('hd1440'); + player.setPlaybackQuality('hd1440'); + } + }, + shortcut_2160p: function() { + var player = document.querySelector('#movie_player'); - /*--------------------------------------------------------------------- - 4.7 Allow subtitles - ---------------------------------------------------------------------*/ - else if (key === 'allow_subtitles') { - object.player_subtitles = value; + if (player) { + player.setPlaybackQualityRange('hd2160'); + player.setPlaybackQuality('hd2160'); + } + }, + shortcut_2880p: function() { + var player = document.querySelector('#movie_player'); - delete object[key]; - } + if (player) { + player.setPlaybackQualityRange('hd2880'); + player.setPlaybackQuality('hd2880'); + } + }, + shortcut_4320p: function() { + var player = document.querySelector('#movie_player'); + if (player) { + player.setPlaybackQualityRange('highres'); + player.setPlaybackQuality('highres'); + } + }, + shortcut_picture_in_picture: function() { + var video = document.querySelector('#movie_player video'); - /*--------------------------------------------------------------------- - 4.8 Loudness normalization - ---------------------------------------------------------------------*/ - else if (key === 'allow_loudness') { - object.player_loudness_normalization = value; + if (video) { + video.requestPictureInPicture(); + } + }, + shortcut_play_pause: function() { + var video = document.querySelector('#movie_player video'); - delete object[key]; - } + if (video) { + if (video.paused) { + video.play(); + } else { + video.pause(); + } + } + }, + shortcut_stop: function() { + var player = document.querySelector('#movie_player'); + if (player) { + player.stopVideo(); + } + }, + shortcut_next_video: function() { + var player = document.querySelector('#movie_player'); - /*--------------------------------------------------------------------- - 4.8 Mini player - ---------------------------------------------------------------------*/ - else if (key === 'mini_player_b') { - object.mini_player = value; + if (player && player.nextVideo) { + player.nextVideo(); + } + }, + shortcut_prev_video: function() { + var player = document.querySelector('#movie_player'); - delete object[key]; - } + if (player && player.previousVideo) { + player.previousVideo(); + } + }, + shortcut_seek_backward: function() { + var player = document.querySelector('#movie_player'); + if (player && player.seekBy) { + player.seekBy(-10); + } + }, + shortcut_seek_forward: function() { + var player = document.querySelector('#movie_player'); - /*--------------------------------------------------------------------- - 4.9 Ads - ---------------------------------------------------------------------*/ - else if (key === 'allow_video_ads') { - object.player_ads = 'all_videos'; + if (player && player.seekBy) { + player.seekBy(10); + } + }, + shortcut_increase_volume: function() { + var player = document.querySelector('.html5-video-player'); - delete object[key]; - } else if (key === 'subscribed_channel_player_ads' && value === true) { - object.player_ads = 'subscribed_channels'; + if (player && player.setVolume && player.getVolume) { + player.setVolume(player.getVolume() + (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); + } - delete object[key]; - } + showStatus(player, player.getVolume()); + }, + shortcut_decrease_volume: function() { + var player = document.querySelector('.html5-video-player'); + if (player && player.setVolume && player.getVolume) { + player.setVolume(player.getVolume() - (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); + } - /*--------------------------------------------------------------------- - 4.10 Autopause - ---------------------------------------------------------------------*/ - else if (key === 'video_autopause') { - object.player_autopause = value; + showStatus(player, player.getVolume()); + }, + shortcut_screenshot: function() { + var player = document.querySelector('.html5-video-player'); - delete object[key]; - } + if (player && player.setVolume && player.getVolume) { + ImprovedTube.screenshot(); + } + }, + shortcut_increase_playback_speed: function() { + var video = document.querySelector('#movie_player video'); + if (video && video.playbackRate) { + video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); - /*--------------------------------------------------------------------- - 4.11 Auto-fullscreen - ---------------------------------------------------------------------*/ - else if (key === 'video_autofullscreen') { - object.player_autofullscreen = value; + showStatus(document.querySelector('#movie_player'), video.playbackRate); + } + }, + shortcut_decrease_playback_speed: function() { + var video = document.querySelector('#movie_player video'); - delete object[key]; - } + if (video && video.playbackRate) { + video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); + showStatus(document.querySelector('#movie_player'), video.playbackRate); + } + }, + shortcut_go_to_search_box: function() { + var search = document.querySelector('#search'); - /*--------------------------------------------------------------------- - 4.12 Repeat button - ---------------------------------------------------------------------*/ - else if (key === 'video_repeat_button') { - object.player_repeat_button = value; + if (search && search.focus) { + search.focus(); + } + }, + shortcut_activate_fullscreen: function() { + var player = document.querySelector('#movie_player'); - delete object[key]; - } + if (player && player.toggleFullscreen) { + player.toggleFullscreen(); + } + }, + shortcut_activate_captions: function() { + var player = document.querySelector('#movie_player'); + if (player && player.querySelector('.ytp-subtitles-button')) { + player.querySelector('.ytp-subtitles-button').click(); + } + }, + shortcut_like_shortcut: function() { + var like = (document.querySelectorAll('.like-button-renderer-like-button')[0] || document.querySelectorAll('#menu #top-level-buttons ytd-toggle-button-renderer')[0]); - /*--------------------------------------------------------------------- - 4.13 Screenshot button - ---------------------------------------------------------------------*/ - else if (key === 'screenshot_button') { - object.player_screenshot_button = value; + if (like) { + like.click(); + } + }, + shortcut_dislike_shortcut: function() { + var like = (document.querySelectorAll('.like-button-renderer-dislike-button')[0] || document.querySelectorAll('#menu #top-level-buttons ytd-toggle-button-renderer')[1]); - delete object[key]; - } + if (like) { + like.click(); + } + }, + shortcut_dark_theme: function() { + if (document.documentElement.hasAttribute('dark')) { + document.documentElement.removeAttribute('dark'); + document.documentElement.removeAttribute('it-theme'); + } else { + document.documentElement.setAttribute('dark', ''); + document.documentElement.setAttribute('it-theme', 'true'); + } + }, + shortcut_custom_mini_player: function() { + ImprovedTube.storage.mini_player = !ImprovedTube.storage.mini_player; + ImprovedTube.mini_player(); - /*--------------------------------------------------------------------- - 4.14 Rotate button - ---------------------------------------------------------------------*/ - else if (key === 'video_rotate_button') { - object.player_rotate_button = value; + if (ImprovedTube.storage.mini_player === true) { + ImprovedTube.mini_player__mode = true; - delete object[key]; - } + ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; + ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; + ImprovedTube.mini_player__element.classList.add('it-mini-player'); - /*--------------------------------------------------------------------- - 4.15 Popup button - ---------------------------------------------------------------------*/ - else if (key === 'popup_player_button') { - object.player_popup_button = value; + ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); + ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); - delete object[key]; - } + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); + ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); - /*--------------------------------------------------------------------- - 5.0 Playlist - ---------------------------------------------------------------------*/ + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); - /*--------------------------------------------------------------------- - 5.1 Repeat - ---------------------------------------------------------------------*/ - else if (key === 'playlist_repeat') { - if (value === 'enabled') { - object.playlist_repeat = true; - } else if (value === 'disabled') { - object.playlist_repeat = false; - } - } + window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); + window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - /*--------------------------------------------------------------------- - 5.2 Shuffle - ---------------------------------------------------------------------*/ - else if (key === 'playlist_shuffle') { - if (value === 'enabled') { - object.playlist_repeat = true; - } else if (value === 'disabled') { - object.playlist_repeat = false; + window.dispatchEvent(new Event('resize')); } - } - - - /*--------------------------------------------------------------------- - 6.0 Channel - ---------------------------------------------------------------------*/ + }, + shortcut_stats_for_nerds: function() { + var player = document.querySelector('.html5-video-player'); - /*--------------------------------------------------------------------- - 6.1 Default tab - ---------------------------------------------------------------------*/ - else if (key === 'channel_default_page') { - if (value === 'normal') { - object.channel_default_tab = '/'; + if (player.isVideoInfoVisible()) { + player.hideVideoInfo(); } else { - object.channel_default_tab = '/' + value; + player.showVideoInfo(); } + }, + shortcut_toggle_cards: function() { + document.documentElement.toggleAttribute('it-player-hide-cards'); } + }; - /*--------------------------------------------------------------------- - 6.2 Trailer autoplay - ---------------------------------------------------------------------*/ - else if (key === 'channel_autoplay') { - object.channel_trailer_autoplay = value; + for (var i in features) { + if (self.isset(self.storage[i])) { + var data = JSON.parse(self.storage[i]) || {}; - delete object[key]; - } + if ( + (data.key === keys.key || !self.isset(data.key)) && + (data.shiftKey === keys.shiftKey || !self.isset(data.shiftKey)) && + (data.ctrlKey === keys.ctrlKey || !self.isset(data.ctrlKey)) && + (data.altKey === keys.altKey || !self.isset(data.altKey)) && + ((data.wheel > 0) === (wheel > 0) || !self.isset(data.wheel)) && + ((hover === true && (data.wheel > 0) === (wheel > 0) && Object.keys(keys).length === 0 && keys.constructor === Object) || (self.isset(data.key) || self.isset(data.altKey) || self.isset(data.ctrlKey))) + ) { + if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { + event.preventDefault(); + event.stopPropagation(); + } - /*--------------------------------------------------------------------- - 6.3 Hide featured content - ---------------------------------------------------------------------*/ - else if (key === 'channel_featured_content') { - object.channel_hide_featured_content = value; + features[i](); - delete object[key]; + if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { + return false; + } + } } } - - object.migrated = true; - - chrome.storage.local.clear(); - chrome.storage.local.set(object); } - if (object.bluelight_removed !== true && (object.bluelight || object.bluelight === 0)) { - object.bluelight_removed = true; - delete object.bluelight; - - chrome.storage.local.clear(); - chrome.storage.local.set(object); + /*------------------------------------------------------------------------- + 1.0 Keyboard + -------------------------------------------------------------------------*/ - location.reload(); - } + window.addEventListener('keydown', function(event) { + keys = { + key: event.key, + keyCode: event.keyCode, + shiftKey: event.shiftKey, + ctrlKey: event.ctrlKey, + altKey: event.altKey + }; - if (object.player_size_migrated !== true && object.player_size) { - object.player_size_migrated = true; + start(); + }, true); - if ( - [ - 'do_not_change', - 'full_window', - 'fit_to_window', - '240p', - '360p', - '480p', - '576p', - '720p', - '1080p', - '1440p', - '2160p' - ].indexOf(object.player_size) === -1 - ) { - if (object.player_size === 'fit_window') { - object.player_size = 'fit_to_window'; - } else { - object.player_size = 'do_not_change'; - } - } + window.addEventListener('keyup', function(event) { + keys = {}; + }, true); - chrome.storage.local.clear(); - chrome.storage.local.set(object); - location.reload(); - } + /*------------------------------------------------------------------------- + 2.0 Mouse + -------------------------------------------------------------------------*/ - if (object.hasOwnProperty('legacy_youtube') && object.legacy_youtube_migration !== true) { - object.legacy_youtube_migration = true; + window.addEventListener('mousemove', function(event) { + hover = false; - if (object.legacy_youtube === true) { - object.legacy_youtube = 'enabled'; - } else if (object.legacy_youtube === false) { - object.legacy_youtube = 'disabled'; + for (var i = 0, l = event.path.length; i < l; i++) { + if (event.path[i].classList && event.path[i].classList.contains('html5-video-player')) { + hover = true; + } } + }, { + passive: false, + capture: true + }); - chrome.storage.local.clear(); - chrome.storage.local.set(object); - - location.reload(); - } + window.addEventListener('wheel', function(event) { + wheel = event.deltaY; - if (object.hasOwnProperty('legacy_youtube') && object.legacy_youtube_migration2 !== true) { - object.legacy_youtube_migration2 = true; + start('wheel'); + }, { + passive: false, + capture: true + }); +}; - if (object.legacy_youtube === 'enabled' || object.legacy_youtube === 'enabledForced') { - object.legacy_youtube = true; - } else if (object.legacy_youtube === 'disabled') { - object.legacy_youtube = false; - } - chrome.storage.local.clear(); - chrome.storage.local.set(object); +/*------------------------------------------------------------------------------ +8.0 BLACKLIST +-------------------------------------------------------------------------------- +TODO: CONNECT & TEST +------------------------------------------------------------------------------*/ - location.reload(); - } -}); -/*----------------------------------------------------------------------------- ->>> MUTATIONS -------------------------------------------------------------------------------- -1.0 Mutations - 1.1 JSON.parse - 1.2 HTMLMediaElement.play -3.0 Player vars -4.0 ytPlayerApplicationCreateMod ------------------------------------------------------------------------------*/ - -document.addEventListener('ImprovedTubePlayVideo', function(event) { +document.addEventListener('ImprovedTubeBlacklist', function(event) { if (chrome && chrome.runtime) { chrome.runtime.sendMessage({ - name: 'improvedtube-play', - id: new URL(location.href).searchParams.get('v') + name: 'improvedtube-blacklist', + data: { + type: event.detail.type, + id: event.detail.id, + title: event.detail.title, + preview: event.detail.preview + } }); } }); -/*----------------------------------------------------------------------------- -1.0 Mutations ------------------------------------------------------------------------------*/ - -ImprovedTube.adInterval = false; -ImprovedTube.AdSkipButton = false; +ImprovedTube.blacklist = function() { + if (ImprovedTube.storage.blacklist_activate !== true) { + return false; + } -ImprovedTube.player_ads = function() { - if (ImprovedTube.adInterval) { - clearInterval(ImprovedTube.adInterval); + if (typeof ImprovedTube.storage.blacklist === 'boolean' || !ImprovedTube.storage.blacklist) { + ImprovedTube.storage.blacklist = {}; } - if (ImprovedTube.storage.player_ads === 'block_all' || ImprovedTube.storage.player_ads === 'subscribed_channels') { - ImprovedTube.adInterval = setInterval(function() { - if (!ImprovedTube.AdSkipButton) { - ImprovedTube.AdSkipButton = document.querySelector('.ytp-ad-skip-button.ytp-button'); - } + // channel button + if (!ImprovedTube.isset(ImprovedTube.storage.blacklist.channels) || + (ImprovedTube.storage.blacklist.channels && + Object.keys(ImprovedTube.storage.blacklist.channels).indexOf(location.href.replace(/https:\/\/www.youtube.com\/(channel|user|c)\//g, '').replace(/\/(.)+/g, '')) === -1) + ) { + let channel_items = document.querySelectorAll('#inner-header-container #subscribe-button, .primary-header-upper-section .yt-uix-subscription-button'); - if (ImprovedTube.AdSkipButton) { - ImprovedTube.AdSkipButton.click(); - } - }, 250); - } -}; + for (let i = 0, l = channel_items.length; i < l; i++) { + if (!channel_items[i].parentNode.querySelector('.improvedtube-add-to-blacklist')) { + let button = document.createElement('div'); -ImprovedTube.mutations = function() { - /*------------------------------------------------------------------------- - 1.1 JSON.parse - -------------------------------------------------------------------------*/ - JSON.parse = (function(original) { - return function(text, reviver, bypass) { - var temp = original.apply(this, arguments); + button.addEventListener('click', function(event) { + let video_id; - if (!bypass && temp && temp.player && temp.player.args) { - temp.player.args = ImprovedTube.changeArgs(temp.player.args); - } + event.preventDefault(); + event.stopPropagation(); - return temp; - }; - }(JSON.parse)); + try { + video_id = location.href.replace(/https:\/\/www.youtube.com\/(channel|user)\//g, '').replace(/\/(.)+/g, ''); - /*------------------------------------------------------------------------- - 1.2 HTMLMediaElement.play - -------------------------------------------------------------------------*/ - HTMLMediaElement.prototype.play = (function(original) { - return function() { - var self = this; + document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { + detail: { + type: 'channel', + id: video_id, + title: document.querySelector('#channel-container yt-formatted-string.ytd-channel-name, a.branded-page-header-title-link').innerText, + preview: document.querySelector('#channel-container #avatar #img, .channel-header-profile-image').src + } + })); - if (ImprovedTube.videoUrl !== location.href) { - ImprovedTube.allow_autoplay = false; - } + if (!ImprovedTube.storage.blacklist || typeof ImprovedTube.storage.blacklist !== 'object') { + ImprovedTube.storage.blacklist = {}; + } - if ( - ImprovedTube.autoplay() === false && - ImprovedTube.allow_autoplay === false && - this.parentNode.parentNode.classList.contains('ad-showing') === false - ) { - setTimeout(function() { - self.parentNode.parentNode.pauseVideo(); - }); + if (!ImprovedTube.storage.blacklist.channels) { + ImprovedTube.storage.blacklist.channels = {}; + } - return; - } else if (self.paused === true && ImprovedTube.videoUrl !== location.href) { - ImprovedTube.playerUpdate(self.parentNode.parentNode, true); - } + ImprovedTube.storage.blacklist.channels[video_id] = { + title: document.querySelector('yt-formatted-string.ytd-channel-name, a.branded-page-header-title-link').innerText, + preview: document.querySelector('#channel-container #avatar #img, .channel-header-profile-image').src + }; - if (ImprovedTube.videoUrl !== location.href) { - ImprovedTube.videoUrl = location.href; - } + ImprovedTube.blacklist(); + + location.reload(); + } catch (err) {} + }, true); - ImprovedTube.player_loudness_normalization(); + button.className = 'improvedtube-add-to-blacklist'; + button.innerText = 'Add to blacklist'; + button.style.position = 'static'; + button.style.transform = 'unset'; + button.style.opacity = '1'; + button.style.visibility = 'visible'; + button.style.pointerEvents = 'all'; + button.style.width = 'auto'; + button.style.fontSize = '16px'; + button.style.lineHeight = '28px'; + button.style.height = 'auto'; + button.style.padding = '6px 12px'; + button.style.borderRadius = '2px'; + button.style.boxSizing = 'border-box'; + button.style.background = '#bb1a1a'; - return original.apply(this, arguments); + channel_items[i].parentNode.insertBefore(button, channel_items[i]); + } } - })(HTMLMediaElement.prototype.play); -}; + } + // video button + let video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); -/*----------------------------------------------------------------------------- -1.0 Change args ------------------------------------------------------------------------------*/ + for (let i = 0, l = video_items.length; i < l; i++) { + if (!video_items[i].querySelector('.improvedtube-add-to-blacklist')) { + let button = document.createElement('div'); -ImprovedTube.changeArgs = function(args) { - if (ImprovedTube.isset(args)) { - // Ads - if ( - ImprovedTube.storage.player_ads === 'block_all' || - ImprovedTube.storage.player_ads === 'subscribed_channels' && (args.player_response || '').indexOf('subscribed=1') === -1 - ) { - delete args.ad3_module; + button.addEventListener('click', function(event) { + let video_id; - if (args.player_response) { - var player_response = JSON.parse(args.player_response); + event.preventDefault(); + event.stopPropagation(); - if (player_response && player_response.adPlacements) { - delete player_response.adPlacements; - delete player_response.playerAds; + try { + video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'); - args.player_response = JSON.stringify(player_response); - } - } - } + let item = this.parentNode; - // 60 fps - if (ImprovedTube.storage.player_60fps === false && args.adaptive_fmts) { - var key_type = args.adaptive_fmts.indexOf(',') > -1 ? ',' : '%2C', - list = args.adaptive_fmts.split(key_type); + while ( + item.nodeName && + item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && + item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && + item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && + item.classList && + !item.classList.contains('yt-shelf-grid-item') && + !item.classList.contains('video-list-item') + ) { + item = item.parentNode; + } - for (var i = 0; i < list.length; i++) { - var fps = list[i].split(/fps(?:=|%3D)([0-9]{2})/); + document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { + detail: { + type: 'video', + id: video_id, + title: item.querySelector('#video-title').innerText + } + })); - fps = fps && fps[1]; + if (!ImprovedTube.storage.blacklist || typeof ImprovedTube.storage.blacklist !== 'object') { + ImprovedTube.storage.blacklist = {}; + } - if (fps > 30) - list.splice(i--, 1); - } + if (!ImprovedTube.storage.blacklist.videos) { + ImprovedTube.storage.blacklist.videos = {}; + } - args.adaptive_fmts = list.join(key_type); - } + ImprovedTube.storage.blacklist.videos[video_id] = { + title: item.querySelector('#video-title').innerText + }; - // SUBTITLES - if (ImprovedTube.storage.player_subtitles === false && args.caption_audio_tracks) { - args.caption_audio_tracks = args.caption_audio_tracks.split(/&d=[0-9]|d=[0-9]&/).join(''); + ImprovedTube.blacklist(); + } catch (err) {} + }, true); + button.className = 'improvedtube-add-to-blacklist'; + button.innerText = 'x'; + + video_items[i].appendChild(button); } } - return args; -}; + // remove channels + if (ImprovedTube.storage.blacklist && ImprovedTube.storage.blacklist.channels) { + let videos = document.querySelectorAll('a#thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); + + for (let i = 0, l = videos.length; i < l; i++) { + let item = videos[i]; + while ( + item.nodeName && + item.nodeName !== 'YTD-VIDEO-RENDERER' && + item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && + item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && + item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && + item.classList && + !item.classList.contains('yt-shelf-grid-item') && + !item.classList.contains('video-list-item') + ) { + item = item.parentNode; + } -/*----------------------------------------------------------------------------- -3.0 Player vars ------------------------------------------------------------------------------*/ + if (item.querySelector('.ytd-channel-name a, a.spf-link[href*="/user/"], a.spf-link[href*="/channel/"]')) { + let channel_href = item.querySelector('.ytd-channel-name a, a.spf-link[href*="/user/"], a.spf-link[href*="/channel/"]').href; -ImprovedTube.playerVars = function(original) { - var context = this; + for (var key in ImprovedTube.storage.blacklist.channels) { + if (item.style && channel_href.indexOf(key) !== -1) { + item.style.display = 'none'; + } + } + } + } + } - return function(args) { - var temp; + // remove videos + if (ImprovedTube.storage.blacklist && ImprovedTube.storage.blacklist.videos) { + let videos = document.querySelectorAll('a#thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - args = ImprovedTube.changeArgs(args); + for (let i = 0, l = videos.length; i < l; i++) { + if (videos[i].href && videos[i].href != '' && ImprovedTube.getParam(new URL(videos[i].href).search.substr(1), 'v') in ImprovedTube.storage.blacklist.videos) { + let item = videos[i]; - temp = original.apply(this, arguments); + while ( + item.nodeName && + item.nodeName !== 'YTD-VIDEO-RENDERER' && + item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && + item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && + item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && + item.classList && + !item.classList.contains('yt-shelf-grid-item') && + !item.classList.contains('video-list-item') + ) { + item = item.parentNode; + } - return temp; - }; + item.style.display = 'none'; + } + } + } }; -/*----------------------------------------------------------------------------- -4.0 ytPlayerApplicationCreateMod ------------------------------------------------------------------------------*/ - -ImprovedTube.ytPlayerApplicationCreateMod = function(original) { - return function(api_name, config) { - config.args = ImprovedTube.changeArgs(config.args); +/*------------------------------------------------------------------------------ +9.0 ANALYZER +-------------------------------------------------------------------------------- +TODO: CONNECT & TEST +------------------------------------------------------------------------------*/ - return original.apply(this, arguments); - }; -}; \ No newline at end of file +document.addEventListener('ImprovedTubeAnalyzer', function() { + if (items.analyzer_activation === true) { + if (document.querySelector('ytd-channel-name a') && chrome && chrome.runtime) { + chrome.runtime.sendMessage({ + name: 'improvedtube-analyzer', + value: document.querySelector('ytd-channel-name a').innerText + }); + } + } +}); \ No newline at end of file diff --git a/stable/content-scripts.css b/stable/content-scripts.css deleted file mode 100644 index b2504a292..000000000 --- a/stable/content-scripts.css +++ /dev/null @@ -1,12034 +0,0 @@ - -/*----------------------------------------------------------------------------- ->>> APPEARANCE -------------------------------------------------------------------------------- -1.0 Header - 1.1 Position - 1.2 Logo - 1.3 Hide right buttons -2.0 Player - 2.1 Annotations - 2.2 Cards - 2.4 Color - 2.5 Transparent background - 2.6 Endscreen - 2.7 Sroll for details - 2.8 Always show progress bar -3.0 Details - 3.1 Style - 3.2 Views count - 3.3 Likes -4.0 Description -5.0 Comments -6.0 Sidebar - 6.1 Live chat - 6.2 Playlist - 6.3 Related videos -7.0 Footer ------------------------------------------------------------------------------*/ - -#it-reverse-playlist -{ - width: 40px; - height: 40px; -} - -#it-reverse-playlist svg -{ - fill: var(--yt-spec-icon-inactive); -} - -#it-reverse-playlist.active svg -{ - fill: var(--yt-spec-icon-active-other); -} - - - - - - -/*----------------------------------------------------------------------------- -1.0 Header ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.1 Position ------------------------------------------------------------------------------*/ - -html[it-header-position=hidden]:not([it-search-focus=true]) #masthead-container, -html[it-header-position=hidden]:not([it-search-focus=true]) #masthead-positioner -{ - transform: translateY(-100%); -} - -html[it-header-position=hidden] app-drawer#guide #guide-spacer, -html[it-header-position=hidden] ytd-app > ytd-masthead, -html[it-header-position=hidden] #masthead-positioner-height-offset, -html[it-header-position=hover] app-drawer#guide #guide-spacer, -html[it-header-position=hover] #masthead-positioner-height-offset, -html[it-header-position=static] app-drawer#guide #guide-spacer, -html[it-header-position=hidden_on_video_page][it-page-type=video] #masthead-container, -html[it-header-position=hidden_on_video_page][it-page-type=video] app-drawer#guide #guide-spacer, -html[it-header-position=hidden_on_video_page][it-page-type=video] #masthead-positioner, -html[it-header-position=hidden_on_video_page][it-page-type=video] #masthead-positioner-height-offset, -html[it-header-position=hover_on_video_page][it-page-type=video] app-drawer#guide #guide-spacer, -html[it-header-position=hover_on_video_page][it-page-type=video] #masthead-positioner-height-offset, -html[it-header-position=static] #masthead-positioner-height-offset -{ - display: none !important; -} - -html[it-header-position=hover] ytd-app > ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app > ytd-masthead, -html[it-header-position=hover] #masthead-container, -html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-container, -html[it-header-position=hover] #masthead-positioner, -html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-positioner -{ - z-index: 2147483647 !important; -} - -html[it-header-position=hidden] ytd-page-manager#page-manager, -html[it-header-position=hidden] app-header#header, -html[it-header-position=hidden_on_video_page][it-page-type='video'] ytd-page-manager#page-manager, -html[it-header-position=hidden_on_video_page][it-page-type='video'] app-header#header, -html[it-header-position=hidden] #appbar-guide-menu, -html[it-header-position=hidden_on_video_page][it-page-type='video'] #appbar-guide-menu, -html[it-header-position=hover] ytd-page-manager#page-manager, -html[it-header-position=hover] app-header#header, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-page-manager#page-manager, -html[it-header-position=hover_on_video_page][it-page-type='video'] app-header#header, -html[it-header-position=hover] #appbar-guide-menu, -html[it-header-position=hover_on_video_page][it-page-type='video'] #appbar-guide-menu, -html[it-header-position=static] ytd-page-manager#page-manager, -html[it-header-position=static] #appbar-guide-menu -{ - margin-top: 0 !important; -} - -html[it-header-position=hover] ytd-app > ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) ytd-app > ytd-masthead, -html[it-header-position=hover]:not([it-improvedtube-search=true]) #masthead-container, -html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) #masthead-container, -html[it-header-position=hover]:not([it-improvedtube-search=true]) #masthead-positioner, -html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) #masthead-positioner -{ - transition: transform 250ms !important; - transform: translateY(-75%) !important; -} - -html[it-header-position=hover] #masthead-container:hover, -html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-container:hover, -html[it-header-position=hover] #masthead-positioner:hover, -html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-positioner:hover, -html[it-header-position=hover][it-search-focus=true] #masthead-container, -html[it-header-position=hover_on_video_page][it-page-type='video'][it-search-focus=true] #masthead-container, -html[it-header-position=hover][it-search-focus=true] #masthead-positioner, -html[it-header-position=hover_on_video_page][it-page-type='video'][it-search-focus=true] #masthead-positioner -{ - transform: translateY(0%) !important; -} - -html[it-header-position=static] #masthead-container, -html[it-header-position=static] #masthead-positioner -{ - position: relative !important; - z-index: 999999999999 !important; -} - -html[it-header-position=hover] ytd-app[masthead-hidden_] ytd-masthead, -html[it-header-position=hover] ytd-app[scrolling_] ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app[masthead-hidden_] ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app[scrolling_] ytd-masthead -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -1.2 Logo ------------------------------------------------------------------------------*/ - -html[it-header-improve-logo=true] ytd-topbar-logo-renderer#logo, -html[it-header-improve-logo=true] #yt-masthead-logo-fragment, -html[it-header-improve-logo=true] #yt-masthead #logo-container .logo -{ - filter: grayscale(1); -} - -html[it-header-improve-logo=true][dark] #yt-masthead #logo-container .logo -{ - filter: grayscale(1) brightness(3); -} - -html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer path[fill*='#FF0000'] -{ - fill: #282828; -} - -html[it-header-improve-logo=true][dark] g.ytd-topbar-logo-renderer path[fill*='#FF0000'] -{ - fill: #fff; -} - -html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer polygon[fill*='#FFFFFF'] -{ - fill: #232323; -} - - -/*----------------------------------------------------------------------------- -1.3 Hide right buttons ------------------------------------------------------------------------------*/ - -html[it-header-hide-right-buttons=true] ytd-masthead#masthead #container #end -{ - visibility: hidden !important; - pointer-events: none !important; -} - - -/*----------------------------------------------------------------------------- -2.0 Player ------------------------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# ADS ----------------------------------------------------------------*/ - -html[it-player-ads='subscribed_channels'] #related #player-ads, -html[it-player-ads='block_all'] #related #player-ads, -html[it-player-ads='subscribed_channels'] #masthead-ad, -html[it-player-ads='block_all'] #masthead-ad -{ - display: none !important; -} - - - -/*----------------------------------------------------------------------------- -2.1 Annotations ------------------------------------------------------------------------------*/ - -html[it-player-hide-annotations=true] .annotation, -html[it-player-hide-annotations=true] .annotation-type-text, -html[it-player-hide-annotations=true] .annotation-shape -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -2.2 Cards ------------------------------------------------------------------------------*/ - -html[it-player-hide-cards=true] .ytp-ce-element, -html[it-player-hide-cards=true] .ytp-ce-video, -html[it-player-hide-cards=true] .ytp-cards-button, -html[it-player-hide-cards=true] .ytp-cards-teaser, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-ce-element, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-ce-video, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-cards-button, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-cards-teaser -{ - display: none !important; -} - -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-ce-element, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-ce-video, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-cards-button, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-cards-teaser -{ - display: block !important; -} - - -/*----------------------------------------------------------------------------- -2.4 Color ------------------------------------------------------------------------------*/ - -html[it-player-color='pink'] .ytp-play-progress, -html[it-player-color='pink'] .ytp-scrubber-button, -html[it-player-color='pink'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='pink'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #e91e63 !important; -} - -html[it-player-color='pink'] .ytp-swatch-color -{ - color: #e91e63 !important; -} - -html[it-player-color='purple'] .ytp-play-progress, -html[it-player-color='purple'] .ytp-scrubber-button, -html[it-player-color='purple'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='purple'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #9c27b0 !important; -} - -html[it-player-color='purple'] .ytp-swatch-color -{ - color: #9c27b0 !important; -} - -html[it-player-color='deep_purple'] .ytp-play-progress, -html[it-player-color='deep_purple'] .ytp-scrubber-button, -html[it-player-color='deep_purple'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='deep_purple'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #673ab7 !important; -} - -html[it-player-color='deep_purple'] .ytp-swatch-color -{ - color: #673ab7 !important; -} - -html[it-player-color='indigo'] .ytp-play-progress, -html[it-player-color='indigo'] .ytp-scrubber-button, -html[it-player-color='indigo'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='indigo'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #3f51b5 !important; -} - -html[it-player-color='indigo'] .ytp-swatch-color -{ - color: #3f51b5 !important; -} - -html[it-player-color='blue'] .ytp-play-progress, -html[it-player-color='blue'] .ytp-scrubber-button, -html[it-player-color='blue'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='blue'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #1e88e5 !important; -} - -html[it-player-color='blue'] .ytp-swatch-color -{ - color: #1e88e5 !important; -} - -html[it-player-color='light_blue'] .ytp-play-progress, -html[it-player-color='light_blue'] .ytp-scrubber-button, -html[it-player-color='light_blue'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='light_blue'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #03a9f4 !important; -} - -html[it-player-color='light_blue'] .ytp-swatch-color -{ - color: #03a9f4 !important; -} - -html[it-player-color='cyan'] .ytp-play-progress, -html[it-player-color='cyan'] .ytp-scrubber-button, -html[it-player-color='cyan'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='cyan'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #00bcd4 !important; -} - -html[it-player-color='cyan'] .ytp-swatch-color -{ - color: #00bcd4 !important; -} - -html[it-player-color='teal'] .ytp-play-progress, -html[it-player-color='teal'] .ytp-scrubber-button, -html[it-player-color='teal'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='teal'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #009688 !important; -} - -html[it-player-color='teal'] .ytp-swatch-color -{ - color: #009688 !important; -} - -html[it-player-color='green'] .ytp-play-progress, -html[it-player-color='green'] .ytp-scrubber-button, -html[it-player-color='green'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='green'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #4caf50 !important; -} - -html[it-player-color='green'] .ytp-swatch-color -{ - color: #4caf50 !important; -} - -html[it-player-color='light_green'] .ytp-play-progress, -html[it-player-color='light_green'] .ytp-scrubber-button, -html[it-player-color='light_green'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='light_green'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #8bc34a !important; -} - -html[it-player-color='light_green'] .ytp-swatch-color -{ - color: #8bc34a !important; -} - -html[it-player-color='lime'] .ytp-play-progress, -html[it-player-color='lime'] .ytp-scrubber-button, -html[it-player-color='lime'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='lime'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #cddc39 !important; -} - -html[it-player-color='lime'] .ytp-swatch-color -{ - color: #cddc39 !important; -} - -html[it-player-color='yellow'] .ytp-play-progress, -html[it-player-color='yellow'] .ytp-scrubber-button, -html[it-player-color='yellow'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='yellow'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #ffeb3b !important; -} - -html[it-player-color='yellow'] .ytp-swatch-color -{ - color: #ffeb3b !important; -} - -html[it-player-color='amber'] .ytp-play-progress, -html[it-player-color='amber'] .ytp-scrubber-button, -html[it-player-color='amber'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='amber'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #ffc107 !important; -} - -html[it-player-color='amber'] .ytp-swatch-color -{ - color: #ffc107 !important; -} - -html[it-player-color='orange'] .ytp-play-progress, -html[it-player-color='orange'] .ytp-scrubber-button, -html[it-player-color='orange'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='orange'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #ff9800 !important; -} - -html[it-player-color='orange'] .ytp-swatch-color -{ - color: #ff9800 !important; -} - -html[it-player-color='deep_orange'] .ytp-play-progress, -html[it-player-color='deep_orange'] .ytp-scrubber-button, -html[it-player-color='deep_orange'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='deep_orange'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #ff5722 !important; -} - -html[it-player-color='deep_orange'] .ytp-swatch-color -{ - color: #ff5722 !important; -} - -html[it-player-color='brown'] .ytp-play-progress, -html[it-player-color='brown'] .ytp-scrubber-button, -html[it-player-color='brown'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='brown'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #795548 !important; -} - -html[it-player-color='brown'] .ytp-swatch-color -{ - color: #795548 !important; -} - -html[it-player-color='blue_gray'] .ytp-play-progress, -html[it-player-color='blue_gray'] .ytp-scrubber-button, -html[it-player-color='blue_gray'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='blue_gray'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #607d8b !important; -} - -html[it-player-color='blue_gray'] .ytp-swatch-color -{ - color: #607d8b !important; -} - -html[it-player-color='white'] .ytp-play-progress, -html[it-player-color='white'] .ytp-scrubber-button, -html[it-player-color='white'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='white'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #fff !important; -} - -html[it-player-color='white'] .ytp-swatch-color -{ - color: #fff !important; -} - - -/*----------------------------------------------------------------------------- -2.5 Transparent background ------------------------------------------------------------------------------*/ - -[it-player-transparent-background=true] #player-theater-container, -[it-player-transparent-background=true] #theater-background, -[it-player-transparent-background=true] #player-api, -[it-player-transparent-background=true] .player-api, -[it-player-transparent-background=true] #movie_player, -[it-player-transparent-background=true] #player-container, -[it-player-transparent-background=true] #movie_player video -{ - background-color: transparent !important; -} - - -/*----------------------------------------------------------------------------- -2.6 Endscreen ------------------------------------------------------------------------------*/ - -html[it-player-hide-endscreen=true] .html5-endscreen -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -2.7 Scroll for details ------------------------------------------------------------------------------*/ - -html[it-hide-scroll-for-details=true] button.ytp-fullerscreen-edu-button -{ - display: none !important; -} - -html[it-hide-scroll-for-details=true] ytd-app[scrolling_] -{ - overflow: hidden !important; -} - - -/*----------------------------------------------------------------------------- -2.8 Always show progress bar ------------------------------------------------------------------------------*/ - -html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom -{ - opacity: 1 !important; -} - -html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-chrome-controls -{ - opacity: 0 !important; -} - -html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-progress-bar-container -{ - bottom: 0 !important; -} - - -/*----------------------------------------------------------------------------- -3.0 Details ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -3.1 Hide details ------------------------------------------------------------------------------*/ - -html[it-hide-details=true] #watch-header, -html[it-hide-details=true] #watch-action-panels, -html[it-hide-details=true] #action-panel-details, -html[it-hide-details=true] #primary-inner > #info, -html[it-hide-details=true] #primary-inner > #meta -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -3.2 Views count ------------------------------------------------------------------------------*/ - -html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer, -html[it-hide-views-count=true] #watch7-views-info > .watch-view-count -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -3.3 Likes ------------------------------------------------------------------------------*/ - -[it-likes=hidden] #watch8-sentiment-actions > .like-button-renderer, -[it-likes=hidden] .video-extras-sparkbar-likes, -[it-likes=hidden] .video-extras-sparkbar-dislikes, -[it-likes=hidden] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(1), -[it-likes=hidden] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(2), -[it-likes=hidden] #sentiment.ytd-video-primary-info-renderer -{ - visibility: hidden !important; - - pointer-events: none !important; -} - -[it-likes=icons_only] #watch8-sentiment-actions > .like-button-renderer button > span, -[it-likes=icons_only] .video-extras-sparkbar-likes, -[it-likes=icons_only] .video-extras-sparkbar-dislikes, -[it-likes=icons_only] #top-level-buttons ytd-toggle-button-renderer:nth-child(1) yt-formatted-string, -[it-likes=icons_only] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) yt-formatted-string, -[it-likes=icons_only] #sentiment.ytd-video-primary-info-renderer -{ - visibility: hidden !important; - - pointer-events: none !important; -} - -[it-likes=icons_only] #text.style-scope.ytd-toggle-button-renderer.style-text, -[it-likes=icons_only] #text.style-scope.ytd-toggle-button-renderer.style-default-active -{ - visibility: hidden !important; -} - -[it-likes=icons_only] .like-button-renderer-like-button, -[it-likes=icons_only] .like-button-renderer-dislike-button -{ - color: transparent !important; -} - -[it-red-dislike-button=true] #top-level-buttons > ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active > a -{ - color: #fc0000 !important; -} - - -/*----------------------------------------------------------------------------- -4.0 Description ------------------------------------------------------------------------------*/ - -html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, -html[it-description=hidden] div#action-panel-details, -html[it-description=expanded] #meta-contents ytd-expander[collapsed] paper-button, -html[it-description=expanded] #action-panel-details button -{ - display: none !important; -} - -html[it-description=expanded] #meta-contents ytd-expander[collapsed] > #content.ytd-expander, -html[it-description=expanded] #watch-description-text -{ - max-height: unset !important; -} - -html[it-description=expanded] .yt-uix-expander .yt-uix-expander-collapsed-body, -html[it-description=expanded] .yt-uix-expander-collapsed .yt-uix-expander-body -{ - display: block !important; -} - - -/*----------------------------------------------------------------------------- -5.0 Comments ------------------------------------------------------------------------------*/ - -html[it-comments=hidden] ytd-comments#comments, -html[it-comments=hidden] div#watch-discussion, -html[it-comments=collapsed].comments-collapsed #comment-section-renderer-items + button, -html[it-comments=collapsed]:not(.comments-collapsed) #improvedtube-collapsed-comments .show-more-text, -html[it-comments=collapsed].comments-collapsed #improvedtube-collapsed-comments .show-less-text, -html[it-comments=collapsed].comments-collapsed #comments #spinner -{ - display: none !important; -} - -html[it-comments=collapsed].comments-collapsed #comment-section-renderer-items, -html[it-comments=collapsed].comments-collapsed #comments #sections #contents -{ - overflow: hidden !important; - - height: 0 !important; -} - -#sections #improvedtube-collapsed-comments -{ - font-family: inherit; - font-size: 12px; - font-weight: 500; - - box-sizing: border-box; - width: 100%; - margin: 0 0 3rem; - padding: 1rem 0; - - cursor: pointer; - letter-spacing: .007px; - text-transform: uppercase; - - color: var(--yt-expand-color); - border: none; - border-bottom: 1px solid var(--yt-spec-10-percent-layer); - outline: none; - background: transparent; -} - - -/*----------------------------------------------------------------------------- -6.0 Sidebar ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -6.1 Live chat ------------------------------------------------------------------------------*/ - -html[it-livechat=hidden] ytd-live-chat-frame#chat, -html[it-livechat=hidden] div#watch-sidebar-live-chat -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -6.2 Playlist ------------------------------------------------------------------------------*/ - -html[it-hide-playlist=true] ytd-playlist-panel-renderer#playlist, -html[it-hide-playlist=true] div#player-playlist, -html[it-hide-playlist=true] #placeholder-playlist -{ - position: absolute !important; - - width: 0 !important; - height: 0 !important; - - pointer-events: none !important; - - opacity: 0 !important; -} - - -/*----------------------------------------------------------------------------- -6.3 Related videos ------------------------------------------------------------------------------*/ - -html[it-related-videos=hidden] div#related, -html[it-related-videos=hidden] div#watch7-sidebar-contents, -html[it-related-videos=collapsed].related-videos-collapsed #watch7-sidebar-modules, -html[it-related-videos=collapsed].related-videos-collapsed #related > *:not(#improvedtube-collapsed-related-videos), -html[it-related-videos=collapsed]:not(.related-videos-collapsed) #improvedtube-collapsed-related-videos .show-more-text, -html[it-related-videos=collapsed].related-videos-collapsed #improvedtube-collapsed-related-videos .show-less-text -{ - display: none !important; -} - -#improvedtube-collapsed-related-videos -{ - font-family: inherit; - font-size: 12px; - font-weight: 500; - - box-sizing: border-box; - width: 100%; - margin: 0 0 3rem; - padding: 1rem 0; - - cursor: pointer; - letter-spacing: .007px; - text-transform: uppercase; - - color: var(--yt-expand-color); - border: none; - border-bottom: 1px solid var(--yt-spec-10-percent-layer); - outline: none; - background: transparent; -} - -#watch7-sidebar #improvedtube-collapsed-related-videos -{ - font-size: 12px; - font-weight: 500; - - display: block; - - width: 95%; - height: 100%; - margin: 0 auto 15px !important; - padding: 10px 0; - - cursor: pointer; - text-align: center; - - color: #333; - border: 1px solid #d3d3d3; - border-color: #c6c6c6; - outline: 0; - background-color: #f8f8f8; - background-image: linear-gradient(to top, #f0f0f0 0, #f8f8f8 100%); - box-shadow: inset 0 1px 0 #ddd; -} - - -/*----------------------------------------------------------------------------- -7.0 Footer ------------------------------------------------------------------------------*/ - -html[it-hide-footer=true] app-drawer#guide #footer, -html[it-hide-footer=true] #footer-container.yt-base-gutter -{ - display: none !important; -} - -/*----------------------------------------------------------------------------- ->>> APPEARANCE: PLAYER SIZE -------------------------------------------------------------------------------- -1.0 Variables - 1.1 Header size - 1.1.1 «Normal» - 1.1.2 «Hidden» - 1.1.3 «Hover» - 1.2 Player size - 1.2.1 «240p» - 1.2.2 «360p» - 1.2.3 «480p» - 1.2.4 «576p» - 1.2.5 «720p» - 1.2.6 «1080p» - 1.2.7 «1440p» - 1.2.8 «2160p» - 1.2.9 «Full window» -2.0 YouTube ------------------------------------------------------------------------------*/ - - - - - -/*----------------------------------------------------------------------------- -1.0 Variables ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.1 Header size ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.1.1 «Normal» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"]:not([it-header-position]) ytd-app, -html[it-page-type="video"][it-header-position='normal'] ytd-app, -html[it-page-type="video"][it-header-position='static'] ytd-app -{ - --it-header-size: 56px; -} - -html[it-page-type="video"]:not([it-header-position]) ytd-watch-flexy:not([theater]), -html[it-page-type="video"][it-header-position='normal'] ytd-watch-flexy:not([theater]), -html[it-page-type="video"][it-header-position='static'] ytd-watch-flexy:not([theater]) -{ - --it-header-size: 104px; -} - -html[it-page-type="video"]:not([it-header-position]) div#page, -html[it-page-type="video"][it-header-position='normal'] div#page, -html[it-page-type="video"][it-header-position='static'] div#page -{ - --it-header-size: 50px; -} - -html[it-page-type="video"]:not([it-header-position]) div#page:not(.watch-wide), -html[it-page-type="video"][it-header-position='normal'] div#page:not(.watch-wide), -html[it-page-type="video"][it-header-position='static'] div#page:not(.watch-wide) -{ - --it-header-size: 70px; -} - -/*----------------------------------------------------------------------------- -1.1.2 «Hidden» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-header-position='hidden'], -html[it-page-type="video"][it-header-position='hidden_on_video_page'] -{ - --it-header-size: 0px; -} - -html[it-page-type="video"][it-header-position='hidden'] ytd-watch-flexy:not([theater]), -html[it-page-type="video"][it-header-position='hidden_on_video_page'] ytd-watch-flexy:not([theater]) -{ - --it-header-size: 48px; -} - -html[it-page-type="video"][it-header-position='hidden'] div#page, -html[it-page-type="video"][it-header-position='hidden_on_video_page'] div#page -{ - --it-header-size: 0px; -} - -html[it-page-type="video"][it-header-position='hidden'] div#page:not(.watch-wide), -html[it-page-type="video"][it-header-position='hidden_on_video_page'] div#page:not(.watch-wide) -{ - --it-header-size: 20px; -} - -/*----------------------------------------------------------------------------- -1.1.3 «Hover» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-header-position='hover'], -html[it-page-type="video"][it-header-position='hover_on_video_page'] -{ - --it-header-size: 14px; -} - -html[it-page-type="video"][it-header-position='hover'] ytd-watch-flexy:not([theater]), -html[it-page-type="video"][it-header-position='hover_on_video_page'] ytd-watch-flexy:not([theater]) -{ - --it-header-size: 62px; -} - -html[it-page-type="video"][it-header-position='hover'] div#page, -html[it-page-type="video"][it-header-position='hover_on_video_page'] div#page -{ - --it-header-size: 12px; -} - -html[it-page-type="video"][it-header-position='hover'] div#page:not(.watch-wide), -html[it-page-type="video"][it-header-position='hover_on_video_page'] div#page:not(.watch-wide) -{ - --it-header-size: 32px; -} - -html[it-page-type="video"][it-header-position='hover'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container, -html[it-page-type="video"][it-header-position='hover_on_video_page'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container -{ - margin-top: 14px; -} - -html[it-page-type="video"][it-header-position='hover'] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen), -html[it-page-type="video"][it-header-position='hover_on_video_page'] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen) -{ - margin-top: 12px; -} - - - - - -html[it-page-type="video"][it-player-size='240p'] *, -html[it-page-type="video"][it-player-size='360p'] *, -html[it-page-type="video"][it-player-size='480p'] *, -html[it-page-type="video"][it-player-size='576p'] *, -html[it-page-type="video"][it-player-size='720p'] *, -html[it-page-type="video"][it-player-size='1080p'] *, -html[it-page-type="video"][it-player-size='1440p'] *, -html[it-page-type="video"][it-player-size='2160p'] * -{ - --it-header-size: 0px !important; -} - - - - - -/*----------------------------------------------------------------------------- -1.2 Player size ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.2.1 «240p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='240p'] -{ - --it-player-size: 240px; -} - -/*----------------------------------------------------------------------------- -1.2.2 «360p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='360p'] -{ - --it-player-size: 360px; -} - -/*----------------------------------------------------------------------------- -1.2.3 «480p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='480p'] -{ - --it-player-size: 480px; -} - -/*----------------------------------------------------------------------------- -1.2.4 «576p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='576p'] -{ - --it-player-size: 576px; -} - -/*----------------------------------------------------------------------------- -1.2.5 «720p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='720p'] -{ - --it-player-size: 720px; -} - -/*----------------------------------------------------------------------------- -1.2.6 «1080p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='1080p'] -{ - --it-player-size: 1080px; -} - -/*----------------------------------------------------------------------------- -1.2.7 «1440p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='1440p'] -{ - --it-player-size: 1440px; -} - -/*----------------------------------------------------------------------------- -1.2.8 «2160p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='2160p'] -{ - --it-player-size: 2160px; -} - -/*----------------------------------------------------------------------------- -1.2.9 «Full window» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='full_window'] -{ - --it-player-size: 100vh; -} - -html[it-page-type="video"][it-player-size='fit_to_window'] -{ - --it-player-size: 100vh; -} - - - - - -/*----------------------------------------------------------------------------- -2.0 YouTube ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- ->>> PLAYER ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-container-inner -{ - padding-top: calc(var(--it-player-size) - var(--it-header-size)) !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container, -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container -{ - width: auto !important; - height: calc(var(--it-player-size) - var(--it-header-size)) !important; - min-height: auto !important; - max-height: 100vh !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player -{ - background: #000 !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-container -{ - position: absolute !important; - - display: flex !important; - - width: 100% !important; - height: 100% !important; - - justify-content: center !important; - align-items: center !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video -{ - position: static !important; - top: 0 !important; - left: 0 !important; - - width: auto !important; - max-width: 100% !important; - height: calc(var(--it-player-size) - var(--it-header-size)) !important; -} - - -/*FIT TO WINDOW*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-theater-container -{ - background: transparent !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) -{ - width: auto !important; - overflow: visible !important; - display: table !important; - margin: auto !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-chrome-bottom -{ - width: calc(100% - 24px) !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .html5-video-container -{ - width: auto !important; - position: static !important; - display: inline-block !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video -{ - position: static !important; - width: auto !important; - max-width: 100vw !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-iv-video-content { - pointer-events: none !important; -} - - - - - -/*----------------------------------------------------------------------------- ->>> LEGACY PLAYER ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) div#page #player #player-api, -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) div#page .player-height -{ - height: calc(var(--it-player-size) - var(--it-header-size)) !important; - min-height: auto !important; - max-height: 100vh !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) div#page.watch-wide #player #player-api -{ - left: 0 !important; - - width: 100% !important; - margin: 0 !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) div#page .html5-video-player:not(.it-mini-player):not(.ytp-fullscreen) .html5-video-container -{ - position: absolute !important; - - display: flex !important; - - width: 100% !important; - height: 100% !important; - - justify-content: center !important; - align-items: center !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) div#page .html5-video-player:not(.it-mini-player):not(.ytp-fullscreen) video -{ - position: static !important; - top: 0 !important; - left: 0 !important; - - width: auto !important; - max-width: 100% !important; - height: calc(var(--it-player-size) - var(--it-header-size)) !important; -} - - -/*FIT TO WINDOW*/ -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide #placeholder-player -{ - display: none !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide #player -{ - width: auto !important; - margin-bottom: 10px !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide #player #player-api -{ - display: table !important; - width: auto !important; - margin: auto !important; - left: 0 !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide #theater-background -{ - display: none !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide #player-mole-container -{ - height: auto !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide #player #player-api.player-height -{ - height: auto !important; - position: static !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide .html5-video-player:not(.it-mini-player):not(.ytp-fullscreen) -{ - width: auto !important; - height: auto !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide .html5-video-player:not(.it-mini-player):not(.ytp-fullscreen) .html5-video-container -{ - position: static !important; - width: auto !important; - height: auto !important; -} - -/*html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide .html5-video-player:not(.it-mini-player):not(.ytp-fullscreen) video -{ - z-index: 9 !important; -}*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide .html5-video-player:not(.it-mini-player):not(.ytp-fullscreen) .ytp-iv-video-content { - pointer-events: none !important; -} - - - - - -/*----------------------------------------------------------------------------- ->>> PLAYER ERROR ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) .ytp-error .ytp-tv-static -{ - width: 100% !important; - height: 100% !important; -} - - - - - -/*----------------------------------------------------------------------------- ->>> PLAYER TOOLTIP ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) .ytp-tooltip -{ - top: unset !important; - bottom: 64px !important; -} - - - - - -/*----------------------------------------------------------------------------- ->>> LEGACY SIDEBAR ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) div#page:not(.watch-wide) #watch7-sidebar -{ - top: unset !important; - - margin-top: calc(-10px - calc(var(--it-player-size) - var(--it-header-size))) !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) div#page.watch-wide #watch-appbar-playlist -{ - top: 230px !important; -} - -html[it-page-type="video"][it-player-size='fit_to_window'] div#page.watch-wide #watch-appbar-playlist -{ - top: -360px !important; -} - - - - - - - - - - - - - - -html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, -html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player, -html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, -html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player -{ - margin-top: 14px !important; -} - -.improvedtube-add-to-blacklist -{ - font-size: 32px; - line-height: 26px; - - position: absolute; - z-index: 999; - top: 4px; - left: 4px; - - visibility: hidden; - overflow: hidden; - - width: 32px; - height: 32px; - - cursor: pointer; - transition: transform .15s; - transform: scale(1); - text-align: center; - - opacity: .7; - color: #fff; - border-radius: 2px; - background: #000; -} - -*:hover > .improvedtube-add-to-blacklist -{ - visibility: visible; -} - -.improvedtube-add-to-blacklist:hover -{ - transform: scale(1.25); -} - -/*----------------------------------------------------------------------------- ->>> CHANNEL -------------------------------------------------------------------------------- -1.0 Featured content ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Featured content ------------------------------------------------------------------------------*/ - -html[it-channel-hide-featured-content=true] #secondary.ytd-two-column-browse-results-renderer, -html[it-channel-hide-featured-content=true] .branded-page-v2-secondary-col -{ - display: none !important; -} - -/*----------------------------------------------------------------------------- ->>> GENERAL -------------------------------------------------------------------------------- -1.0 YouTube Home Page -2.0 Add «Scroll to top» -3.0 Squared user images -4.0 Hide animated thumbnails -5.0 Better subscriptions -6.0 Mark watched videos ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 YouTube Home Page ------------------------------------------------------------------------------*/ - -html[it-page-type=home][it-youtube-home-page=search], -html[it-page-type=home][it-youtube-home-page=search] app-drawer[opened], -html[it-page-type=home][it-youtube-home-page=search] #appbar-guide-menu -{ - visibility: hidden !important; - overflow: hidden !important; - - width: 100vw !important; - height: 100vh !important; - - pointer-events: none !important; -} - -html[it-page-type=home][it-youtube-home-page=search] ytd-searchbox#search, -html[it-page-type=home][it-youtube-home-page=search] #yt-masthead-content -{ - position: fixed !important; - z-index: 99999 !important; - top: 0 !important; - left: 0 !important; - - display: flex !important; - visibility: visible !important; - - width: 100vw !important; - height: 100vh !important; - margin: 0 !important; - - pointer-events: all !important; - - justify-content: center !important; - align-items: center !important; -} - -html[it-page-type=home][it-youtube-home-page=search] #yt-masthead-content > form -{ - width: 100% !important; -} - -html[it-page-type=home][it-youtube-home-page=search] .gstl_50.sbdd_a -{ - z-index: 99999 !important; - - visibility: visible !important; - - pointer-events: all !important; -} - - -/*----------------------------------------------------------------------------- -2.0 Add «Scroll to top» ------------------------------------------------------------------------------*/ - -#it-scroll-to-top -{ - position: fixed; - z-index: 999; - right: 32px; - bottom: 32px; - - display: flex; - visibility: hidden; - - box-sizing: border-box; - width: 56px; - height: 56px; - - cursor: pointer; - transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; - transform: translateY(88px); - pointer-events: none; - - opacity: 0; - border-radius: 50%; - background: linear-gradient(135deg, #f8d266, #f17953); - box-shadow: 0 1px 1px 1px rgba(230, 109, 70, .7), 0 3px 5px rgba(0,0,0,.35); - - justify-content: center; - align-items: center; -} - -html[it-show-scroll-to-top=true] #it-scroll-to-top -{ - visibility: visible; - - transform: translateY(0px); - pointer-events: all; - - opacity: 1; -} - -html:not([it-red-popup-theme]) #it-scroll-to-top, -html[it-red-popup-theme="true"] #it-scroll-to-top -{ - background: #f73030; - box-shadow: 0 3px 5px rgba(0,0,0,.35); -} - -#it-scroll-to-top > svg -{ - width: 24px; - - fill: #fff; -} - -html[it-show-scroll-to-top="true"] #it-scroll-to-top:hover -{ - transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; - transform: translateY(4px) scale(.975); - box-shadow: 0 5px 5px -3px rgba(0, 0, 0, .2), 0 8px 10px 1px rgba(0, 0, 0, .14), 0 3px 14px 2px rgba(0, 0, 0, .12); -} - - -/*----------------------------------------------------------------------------- -3.0 Squared user images ------------------------------------------------------------------------------*/ - -html[it-squared-user-images=true] #avatar.ytd-shelf-renderer, -html[it-squared-user-images=true] yt-img-shadow, -html[it-squared-user-images=true] #yt-masthead-user .yt-masthead-user-icon -{ - border-radius: unset !important; -} - - -/*----------------------------------------------------------------------------- -4.0 Hide animated thumbnails ------------------------------------------------------------------------------*/ - -html[it-hide-animated-thumbnails=true] #mouseover-overlay, -html[it-hide-animated-thumbnails=true] .mouseover-play, -html[it-hide-animated-thumbnails=true] .mouseover-img -{ - visibility: hidden !important; -} - - -/*----------------------------------------------------------------------------- -5.0 Better subscriptions ------------------------------------------------------------------------------*/ - -#browse-items-primary .section-list > li .shelf-title-cell -{ - display: flex; -} - -#browse-items-primary .section-list > li .shelf-title-row -{ - display: flex; - - justify-content: space-between; -} - -ytd-item-section-renderer .grid-subheader + #contents, -#browse-items-primary .section-list > li, -#browse-items-primary .section-list > li .multirow-shelf -{ - overflow: hidden; -} - -ytd-item-section-renderer.it-section-collapsed .grid-subheader + #contents, -#browse-items-primary .section-list > li.it-section-collapsed .multirow-shelf -{ - height: 0 !important; -} - -#browse-items-primary .section-list > li .it-section-collapse -{ - margin-left: 16px; -} - -ytd-item-section-renderer .it-section-collapse, -#browse-items-primary .section-list > li .it-section-collapse -{ - cursor: pointer; -} - -ytd-item-section-renderer .it-section-collapse svg, -#browse-items-primary .section-list > li .it-section-collapse svg -{ - width: 24px; - height: 24px; - - transition: transform 150ms; - - fill: var(--ytd-menu-renderer-button-color, var(--yt-spec-icon-inactive)); -} - -#browse-items-primary .section-list > li .it-section-collapse svg -{ - position: relative; - top: -2px; -} - -ytd-item-section-renderer .it-section-collapse:hover svg, -#browse-items-primary .section-list > li .it-section-collapse:hover svg -{ - fill: var(--yt-spec-icon-active-other); -} - -ytd-item-section-renderer.it-section-collapsed .it-section-collapse svg, -#browse-items-primary .section-list > li.it-section-collapsed .it-section-collapse svg -{ - transform: rotate(180deg); -} - - -/*----------------------------------------------------------------------------- -6.0 Mark watched videos ------------------------------------------------------------------------------*/ - -.it-mark-watched -{ - position: absolute; - z-index: 999; - bottom: 4px; - left: 4px; - - visibility: hidden; - overflow: hidden; - - width: 28px; - height: 28px; - - cursor: pointer; - text-align: center; - - color: #fff; - border-radius: 2px; - background: rgba(0,0,0,.8); -} - -.it-mark-watched svg -{ - position: absolute; - top: 4px; - left: 4px; - - width: 20px; - height: 20px; - - fill: var(--ytd-menu-renderer-button-color, var(--yt-spec-icon-inactive, #aaa)); -} - -*:hover > .it-mark-watched -{ - visibility: visible; -} - -.it-mark-watched.watched svg -{ - fill: var(--yt-spec-icon-active-other, #fff); -} - - - - -/*html[it-remove-related-search-results=true] ytd-shelf-renderer.style-scope.ytd-item-section-renderer, -html[it-remove-related-search-results=true] ytd-horizontal-card-list-renderer.style-scope.ytd-item-section-renderer, -html[it-remove-related-search-results=true] li > div.feed-item-container.browse-list-item-container.yt-section-hover-container.compact-shelf.shelf-item.branded-page-box, -html[it-remove-related-search-results=true] li > div.search-refinements -{ - display: none; -}*/ - -.it-rate-notify -{ - position: fixed; - z-index: 99999999; - right: 24px; - bottom: 24px; - - visibility: hidden; - overflow: hidden; - - width: 300px; - padding-left: 96px; - - transition: transform 200ms; - transform: translate(0, 100%); - - opacity: 0; - border-radius: 16px; - background-image: linear-gradient(-20deg, #e9defa 0%, #e9defa 50%, #fbfcdb 100%); - box-shadow: 0 4px 12px rgba(0, 0, 0, .3); -} - -html:not([it-page-type='video']) .it-rate-notify.it-rate-notify--show -{ - visibility: visible; - - transform: translate(0,0); - animation: 1s infinite it-popup-background; - animation-timing-function: linear; - - opacity: 1; -} - -.it-rate-notify__heart -{ - position: absolute; - z-index: -1; - top: 20px; - left: 20px; - - width: 80px; - height: 80px; - - fill: url(#itHeartGradient); -} - -.it-rate-notify.it-rate-notify--show .it-rate-notify__heart -{ - animation: .8s infinite it-heart-beat; -} - -.it-rate-notify__title -{ - font-size: 18px; - font-weight: 500; - line-height: 27px; - - margin: 20px 24px; - - letter-spacing: .03125em; - - color: rgba(51, 38, 25, .8); -} - -.it-rate-notify__footer -{ - display: flex; - - padding: 8px; - - align-items: center; - justify-content: flex-end; -} - -.it-rate-notify__footer > button -{ - font: 500 18px 'Roboto'; - - min-width: 64px; - height: 36px; - padding: 0 8px; - - cursor: pointer; - transition: 150ms; - - color: rgba(255, 8, 68,.65); - border: none; - outline: none; - background: none; -} - -.it-rate-notify__footer > button:hover -{ - transform: scale(1.05); - - color: rgba(255, 8, 68,.85); -} - -.it-rate-notify__footer > button:last-child -{ - color: rgba(51, 38, 25, .25); -} - -.it-rate-notify__footer > button:last-child:hover -{ - color: rgba(51, 38, 25, .85); -} - -@keyframes it-popup-background -{ - 0% - { - background-image: linear-gradient(-20deg, #e9defa 0%, #e9defa 50%, #fbfcdb 100%); - } - 50% - { - background-image: linear-gradient(-20deg, #e9defa 0%, #fbfcdb 50%, #e9defa 100%); - } - 100% - { - background-image: linear-gradient(-20deg, #fbfcdb 0%, #e9defa 50%, #e9defa 100%); - } -} - -@keyframes it-heart-beat -{ - 0% - { - transform: scale(1); - } - 25% - { - transform: scale(1.1); - } - 40% - { - transform: scale(1); - } - 60% - { - transform: scale(1.1); - } - 100% - { - transform: scale(1); - } -} - -/*----------------------------------------------------------------------------- ->>> PLAYER -------------------------------------------------------------------------------- -1.0 Ads -2.0 Mini player - 2.1 Position and size - 2.2 Dragging - 2.3 Multipage -3.0 Custom player button - 3.1 Repeat - 3.2 Screenshot - 3.3 Rotate - 3.4 Popup -4.0 Crop chapter titles ------------------------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -1.0 Ads ----------------------------------------------------------------*/ - -/*html[it-player-ads="block_all"] .video-ads.ytp-ad-module, -html[it-player-ads="subscribed_channels"] .video-ads.ytp-ad-module -{ - display: none !important -}*/ - - -/*----------------------------------------------------------------------------- -2.0 Mini player ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -2.1 Position and size ------------------------------------------------------------------------------*/ - -.it-mini-player -{ - position: fixed !important; - z-index: 2147483648 !important; - left: 0!important; - top: 0!important; - - box-shadow: rgba(0, 0, 0, .4) 0 2px 8px !important; - - will-change: transform, width, height !important; - - background: #000 !important; -} - -html[it-page-type="video"][it-header-position="hover_on_video_page"][it-player-size="full_window"] .html5-video-player.it-mini-player, -html[it-page-type="video"][it-header-position="hover"][it-player-size="full_window"] .html5-video-player.it-mini-player -{ - margin-top: 0!important; -} - -.it-mini-player .html5-video-container, -.it-mini-player video -{ - left: 0 !important; - top: 0 !important; - width: 100% !important; - height: 100% !important; -} - -.it-mini-player .ytp-chrome-bottom -{ - width: calc(100% - 24px) !important; -} - -.it-mini-player .ytp-chapter-hover-container -{ - width: 100% !important; -} - -html[it-mini-player=true] .ytp-contextmenu -{ - z-index: 2147483649 !important; -} - -.it-mini-player .ytp-miniplayer-button, -.it-mini-player .ytp-size-button -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -2.2 Dragging ------------------------------------------------------------------------------*/ - -.improvedtube-mini-player.dragging -{ - pointer-events: none !important; -} - -.improvedtube-mini-player.dragging *:not(.html5-video-container):not(video) -{ - visibility: hidden !important; -} - -html[data-cursor='w-resize'], -html[data-cursor='w-resize'] * -{ - cursor: w-resize !important; -} - -html[data-cursor='e-resize'], -html[data-cursor='e-resize'] * -{ - cursor: e-resize !important; -} - -html[it-mini-player-cursor='n-resize']::after, -html[it-mini-player-cursor='e-resize']::after, -html[it-mini-player-cursor='s-resize']::after, -html[it-mini-player-cursor='w-resize']::after, -html[it-mini-player-cursor='ne-resize']::after, -html[it-mini-player-cursor='se-resize']::after, -html[it-mini-player-cursor='sw-resize']::after, -html[it-mini-player-cursor='nw-resize']::after -{ - content: ''; - position: fixed; - left: 0; - top: 0; - width: 100vw; - height: 100vh; - z-index: 2147483650; -} - -html[it-mini-player-cursor='n-resize']::after -{ - cursor: n-resize; -} - -html[it-mini-player-cursor='e-resize']::after -{ - cursor: e-resize; -} - -html[it-mini-player-cursor='s-resize']::after -{ - cursor: s-resize; -} - -html[it-mini-player-cursor='w-resize']::after -{ - cursor: w-resize; -} - -html[it-mini-player-cursor='ne-resize']::after -{ - cursor: ne-resize; -} - -html[it-mini-player-cursor='se-resize']::after -{ - cursor: se-resize; -} - -html[it-mini-player-cursor='sw-resize']::after -{ - cursor: sw-resize; -} - -html[it-mini-player-cursor='nw-resize']::after -{ - cursor: nw-resize; -} - - -/*----------------------------------------------------------------------------- -2.3 Multipage ------------------------------------------------------------------------------*/ - -html[it-mini-player=true] ytd-watch-flexy[hidden] -{ - position: absolute !important; - top: 0 !important; - left: 0 !important; - - display: block !important; - visibility: hidden !important; - - max-width: 100% !important; - - pointer-events: none !important; -} - -html[it-mini-player=true] ytd-watch-flexy[hidden] .ytd-watch-next-secondary-results-renderer -{ - display: none; -} - -html[it-mini-player=true] ytd-watch-flexy[hidden] .improvedtube-mini-player -{ - position: fixed !important; - - visibility: visible !important; - - pointer-events: all !important; -} - - -/*----------------------------------------------------------------------------- -3.0 Custom player button ------------------------------------------------------------------------------*/ - -#it-repeat-button, -#it-screenshot-button, -#it-rotate-button, -#it-popup-player-button -{ - position: relative !important; -} - -.html5-video-player.ytp-big-mode #it-repeat-button svg, -.html5-video-player.ytp-big-mode #it-screenshot-button svg, -.html5-video-player.ytp-big-mode #it-rotate-button svg, -.html5-video-player.ytp-big-mode #it-popup-player-button svg -{ - top: 10px !important; - left: 10px !important; - - width: 34px !important; -} - -#it-repeat-button svg, -#it-screenshot-button svg, -#it-rotate-button svg, -#it-popup-player-button svg -{ - position: absolute !important; - - fill: #fff !important; -} - - -/*----------------------------------------------------------------------------- -3.1 Repeat ------------------------------------------------------------------------------*/ - -#it-repeat-button svg -{ - top: 6px !important; - left: 6px !important; - - width: 24px !important; -} - - -/*----------------------------------------------------------------------------- -3.2 Screenshot ------------------------------------------------------------------------------*/ - -#it-screenshot-button svg -{ - top: 7px !important; - left: 7px !important; - - width: 22px !important; -} - - -/*----------------------------------------------------------------------------- -3.3 Rotate ------------------------------------------------------------------------------*/ - -#it-rotate-button svg -{ - top: 7px !important; - left: 7px !important; - - width: 22px !important; -} - - -/*----------------------------------------------------------------------------- -3.4 Popup ------------------------------------------------------------------------------*/ - -#it-popup-player-button svg -{ - top: 7px !important; - left: 7px !important; - - width: 22px !important; -} - - - - - - - - - - - - -.it-player-button -{ - position: relative !important; - - overflow: visible !important; -} - -.it-player-button::before -{ - font-size: 13px; - font-weight: 600; - line-height: 13px; - - position: absolute; - top: -38px; - left: 50%; - - visibility: hidden; - - min-height: unset; - padding: 5px 9px; - - content: attr(data-title); - transform: translateX(-50%); - pointer-events: none; - - border-radius: 2px; - background-color: rgba(28,28,28,.9); -} - -.it-player-button:hover::before -{ - visibility: visible; - - pointer-events: all; -} - - - - - - -/*----------------------------------------------------------------------------- -4.0 Crop chapter titles ------------------------------------------------------------------------------*/ - -html[it-player-crop-chapter-titles='false'] .ytp-chapter-title -{ - width: auto !important; -} - -html[it-youtube-version=new] #it-playlist-reverse -{ - display: flex; - - width: 40px; - margin-left: 8px; - - cursor: pointer; - - align-items: center; - justify-content: center; -} - -html[it-youtube-version=new] #it-playlist-reverse svg -{ - fill: var(--iron-icon-fill-color, #909090); -} - -html[it-youtube-version=new] #it-playlist-reverse.yt-uix-button-toggled svg -{ - fill: var(--yt-spec-call-to-action); -} - -html[it-youtube-version=old] #it-playlist-reverse -{ - display: inline-block; - - box-sizing: border-box; - width: 26px; - height: 28px; - margin: 0 0 0 8px; - padding: 2px 1px; - - cursor: pointer; - vertical-align: middle; - - opacity: .5; -} - -html[it-youtube-version=old] #it-playlist-reverse.yt-uix-button-toggled -{ - opacity: 1; -} - -html[it-youtube-version=old] #it-playlist-reverse svg -{ - fill: #fff; -} - -/*----------------------------------------------------------------------------- ->>> SETTINGS -------------------------------------------------------------------------------- -1.0 ImprovedTube icon on YouTube ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 ImprovedTube icon on YouTube ------------------------------------------------------------------------------*/ - -html[it-improvedtube-youtube-icon='below_player'] .title.ytd-video-primary-info-renderer -{ - overflow: visible !important; -} - -html[it-improvedtube-youtube-icon='below_player'] h1.watch-title-container -{ - display: inline-block !important; -} - -html[it-improvedtube-youtube-icon='draggable'] .it-btn -{ - position: fixed; - z-index: 2147483645; - top: calc(100vh - 56px); - left: calc(100vw - 64px); -} - -.it-btn -{ - z-index: 2147483645; - - user-select: none; -} - -#container.ytd-masthead > .it-btn -{ - margin: 0 12px 0 0; -} - -.yt-masthead-logo-container > .it-btn -{ - float: left; - - margin: 0 12px 0 0; -} - -#end #buttons .it-btn -{ - margin: 3px 0 0 0; -} - -#yt-masthead-user > .it-btn -{ - float: right; - - margin: -2px 0 0 14px; -} - -.title.ytd-video-primary-info-renderer > .it-btn, -#watch-headline-title > .it-btn -{ - float: right; -} - -.it-btn__scrim -{ - position: fixed; - z-index: 2147483645; - top: 0; - left: 0; - - visibility: hidden; - - width: 100%; - height: 100vh; - - transition: 150ms; - pointer-events: none; - - opacity: 0; - background: #000; -} - -.it-btn__icon -{ - position: relative; - z-index: 2147483645; - - width: 32px; - height: 32px; - margin: 0 0 2px 0; - - cursor: pointer; - - border-radius: 50%; - background: #f00; -} - -.it-btn__icon::after -{ - position: absolute; - top: 9px; - left: 12px; - - display: block; - - content: ''; - - opacity: .9; - border-top: 7px solid transparent; - border-bottom: 7px solid transparent; - border-left: 11px solid #fff; -} - -.it-btn__iframe -{ - position: absolute; - z-index: 2147483645; - top: 50px; - - visibility: hidden; - - width: 320px; - max-width: 80vw; - height: 500px; - max-height: 80vh; - - transition: opacity 150ms; - pointer-events: none; - - opacity: 0; -} - -#end #buttons .it-btn__iframe, -#yt-masthead-user .it-btn__iframe -{ - right: 0; - left: auto; -} - -.it-btn.it-btn--active .it-btn__scrim -{ - visibility: visible; - - pointer-events: all; - - opacity: .5; -} - -.it-btn.it-btn--active .it-btn__iframe -{ - visibility: visible; - - pointer-events: all; - - opacity: 1; -} - -.it-btn--dragging, -.it-btn--dragging .it-btn__icon, -.it-btn--dragging .it-btn__iframe -{ - pointer-events: none !important; -} - -.it-btn--dragging .it-btn__iframe -{ - opacity: .75 !important; -} - -#it-status -{ - font-size: 5rem; - - position: absolute; - top: 2rem; - right: 3rem; - - color: #0ff; - text-shadow: 1px 1px 2px #000; -} - -/*----------------------------------------------------------------------------- ->>> THEMES -------------------------------------------------------------------------------- -1.0 Bluelight -2.0 Dim ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Bluelight ------------------------------------------------------------------------------*/ - -html[it-bluelight] -{ - height: auto !important; -} - -html[it-bluelight], -html[it-bluelight] .html5-video-player.ytp-fullscreen -{ - filter: url(#it-bluelight-filter) !important; -} - -#it-bluelight -{ - position: fixed !important; - top: 0 !important; - left: 0 !important; - - visibility: hidden !important; - - width: 100% !important; - height: 100vh !important; - - pointer-events: none !important; -} - -html[it-bluelight][it-youtube-version=old] -{ - background-color: #f1f1f1; -} - -html[it-bluelight][it-youtube-version=old] body -{ - min-height: 100vh; -} - - -/*----------------------------------------------------------------------------- -2.0 Dim ------------------------------------------------------------------------------*/ - -#it-dim -{ - position: fixed !important; - z-index: 2147483645 !important; - top: 0 !important; - left: 0 !important; - - width: 100% !important; - height: 100vh !important; - - pointer-events: none !important; - - background: #000 !important; -} - -#it-dim-player -{ - position: fixed !important; - z-index: 2147483645 !important; - top: 0 !important; - left: 0 !important; - - visibility: hidden !important; - - width: 100% !important; - height: 100vh !important; - - pointer-events: none !important; - - background: #000 !important; -} - -.html5-video-player.ytp-fullscreen #it-dim-player -{ - visibility: visible !important; -} - -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #000!important; - --yt-swatch-primary-darker: #000!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #000; - - --yt-spec-brand-background-solid:#000 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#000 !important; - --yt-spec-general-background-b:#000 !important; - --yt-spec-general-background-c:#000 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#aaa !important; - --yt-spec-text-primary-inverse:#aaa !important; - --yt-spec-text-secondary:#aaa !important; - --yt-spec-text-disabled:#aaa !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#aaa !important; - --yt-spec-icon-inactive:#aaa !important; - --yt-spec-icon-disabled:#aaa !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#000000 !important; - --yt-spec-filled-button-text:#aaa !important; - --yt-spec-call-to-action-inverse:#aaa !important; - --yt-spec-brand-icon-active:#aaa !important; - --yt-spec-brand-icon-inactive:#aaa !important; - --yt-spec-brand-button-background:#242424 !important; - --yt-spec-brand-link-text:#aaa !important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#aaa !important; - --yt-spec-wordmark-text:#aaa !important; - --yt-spec-10-percent-layer:#242424 !important; - --yt-spec-selected-nav-text:#aaa !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo -{ - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); -} -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #000!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #000; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #000; - --yt-playlist-background-item: #000; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #000; - --paper-listbox-background-color: #000; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #000; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #000; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #000; - --yt-menu-focus-background-color: #000; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #000; - --yt-main-app-background: #000; - --yt-main-app-background-tmp: #000; - --yt-guide-background: #000; - --yt-dialog-background: #000; - --yt-searchbox-background: #000!important; - --yt-channel-header-background: #000; - --yt-sidebar-background: #000; - --yt-transcript-background: #000; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #000; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #000; - --yt-blue-suggestive: transparent; -} - - - -@media (prefers-color-scheme: dark) { - [it-black-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #000!important; - --yt-swatch-primary-darker: #000!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #000; - - --yt-spec-brand-background-solid:#000 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#000 !important; - --yt-spec-general-background-b:#000 !important; - --yt-spec-general-background-c:#000 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#aaa !important; - --yt-spec-text-primary-inverse:#aaa !important; - --yt-spec-text-secondary:#aaa !important; - --yt-spec-text-disabled:#aaa !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#aaa !important; - --yt-spec-icon-inactive:#aaa !important; - --yt-spec-icon-disabled:#aaa !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#000000 !important; - --yt-spec-filled-button-text:#aaa !important; - --yt-spec-call-to-action-inverse:#aaa !important; - --yt-spec-brand-icon-active:#aaa !important; - --yt-spec-brand-icon-inactive:#aaa !important; - --yt-spec-brand-button-background:#242424 !important; - --yt-spec-brand-link-text:#aaa !important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#aaa !important; - --yt-spec-wordmark-text:#aaa !important; - --yt-spec-10-percent-layer:#242424 !important; - --yt-spec-selected-nav-text:#aaa !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - html[it-black-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-black-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #000!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #000; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-black-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-black-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #000; - --yt-playlist-background-item: #000; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #000; - --paper-listbox-background-color: #000; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #000; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #000; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #000; - --yt-menu-focus-background-color: #000; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #000; - --yt-main-app-background: #000; - --yt-main-app-background-tmp: #000; - --yt-guide-background: #000; - --yt-dialog-background: #000; - --yt-searchbox-background: #000!important; - --yt-channel-header-background: #000; - --yt-sidebar-background: #000; - --yt-transcript-background: #000; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #000; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #000; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-black-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #000!important; - --yt-swatch-primary-darker: #000!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #000; - - --yt-spec-brand-background-solid:#000 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#000 !important; - --yt-spec-general-background-b:#000 !important; - --yt-spec-general-background-c:#000 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#aaa !important; - --yt-spec-text-primary-inverse:#aaa !important; - --yt-spec-text-secondary:#aaa !important; - --yt-spec-text-disabled:#aaa !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#aaa !important; - --yt-spec-icon-inactive:#aaa !important; - --yt-spec-icon-disabled:#aaa !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#000000 !important; - --yt-spec-filled-button-text:#aaa !important; - --yt-spec-call-to-action-inverse:#aaa !important; - --yt-spec-brand-icon-active:#aaa !important; - --yt-spec-brand-icon-inactive:#aaa !important; - --yt-spec-brand-button-background:#242424 !important; - --yt-spec-brand-link-text:#aaa !important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#aaa !important; - --yt-spec-wordmark-text:#aaa !important; - --yt-spec-10-percent-layer:#242424 !important; - --yt-spec-selected-nav-text:#aaa !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - html[it-black-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-black-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #000!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #000; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-black-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-black-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #000; - --yt-playlist-background-item: #000; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #000; - --paper-listbox-background-color: #000; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #000; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #000; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #000; - --yt-menu-focus-background-color: #000; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #000; - --yt-main-app-background: #000; - --yt-main-app-background-tmp: #000; - --yt-guide-background: #000; - --yt-dialog-background: #000; - --yt-searchbox-background: #000!important; - --yt-channel-header-background: #000; - --yt-sidebar-background: #000; - --yt-transcript-background: #000; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #000; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #000; - --yt-blue-suggestive: transparent; - } -} -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #d44d5c!important; - --yt-swatch-primary-darker: #d44d5c!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #734; - - --yt-spec-brand-background-solid:#d44d5c !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#d44d5c !important; - --yt-spec-general-background-b:#d44d5c !important; - --yt-spec-general-background-c:#d44d5c !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:rgb(255,255,255) !important; - --yt-spec-text-primary-inverse:rgb(255,255,255) !important; - --yt-spec-text-secondary:rgb(255,255,255) !important; - --yt-spec-text-disabled:rgb(255,255,255) !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:rgb(255,255,255) !important; - --yt-spec-icon-inactive:rgb(255,255,255) !important; - --yt-spec-icon-disabled:rgb(255,255,255) !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#d44d5c !important; - --yt-spec-filled-button-text:rgb(255,255,255) !important; - --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; - --yt-spec-brand-icon-active:rgb(255,255,255) !important; - --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:rgb(255,255,255)!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; - --yt-spec-wordmark-text:rgb(255,255,255) !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:rgb(255,255,255) !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #734!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #d44d5c; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #d44d5c; - --yt-playlist-background-item: #d44d5c; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #d44d5c; - --paper-listbox-background-color: #d44d5c; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #d44d5c; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #d44d5c; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #d44d5c; - --yt-menu-focus-background-color: #d44d5c; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #d44d5c; - --yt-main-app-background: #d44d5c; - --yt-main-app-background-tmp: #d44d5c; - --yt-guide-background: #d44d5c; - --yt-dialog-background: #734; - --yt-searchbox-background: #672c3b; - --yt-channel-header-background: #d44d5c; - --yt-sidebar-background: #d44d5c; - --yt-transcript-background: #d44d5c; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #d44d5c; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #d44d5c; - --yt-blue-suggestive: transparent; - --yt-spec-text-secondary: #f5dbe2; -} -html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo -{ - -webkit-filter: grayscale(1) brightness(4); - filter: grayscale(1) brightness(4); -} - - - - - -@media (prefers-color-scheme: dark) { - [it-dawn-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #d44d5c!important; - --yt-swatch-primary-darker: #d44d5c!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #734; - - --yt-spec-brand-background-solid:#d44d5c !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#d44d5c !important; - --yt-spec-general-background-b:#d44d5c !important; - --yt-spec-general-background-c:#d44d5c !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:rgb(255,255,255) !important; - --yt-spec-text-primary-inverse:rgb(255,255,255) !important; - --yt-spec-text-secondary:rgb(255,255,255) !important; - --yt-spec-text-disabled:rgb(255,255,255) !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:rgb(255,255,255) !important; - --yt-spec-icon-inactive:rgb(255,255,255) !important; - --yt-spec-icon-disabled:rgb(255,255,255) !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#d44d5c !important; - --yt-spec-filled-button-text:rgb(255,255,255) !important; - --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; - --yt-spec-brand-icon-active:rgb(255,255,255) !important; - --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:rgb(255,255,255)!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; - --yt-spec-wordmark-text:rgb(255,255,255) !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:rgb(255,255,255) !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-dawn-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #734!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #d44d5c; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-dawn-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-dawn-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #d44d5c; - --yt-playlist-background-item: #d44d5c; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #d44d5c; - --paper-listbox-background-color: #d44d5c; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #d44d5c; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #d44d5c; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #d44d5c; - --yt-menu-focus-background-color: #d44d5c; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #d44d5c; - --yt-main-app-background: #d44d5c; - --yt-main-app-background-tmp: #d44d5c; - --yt-guide-background: #d44d5c; - --yt-dialog-background: #734; - --yt-searchbox-background: #672c3b; - --yt-channel-header-background: #d44d5c; - --yt-sidebar-background: #d44d5c; - --yt-transcript-background: #d44d5c; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #d44d5c; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #d44d5c; - --yt-blue-suggestive: transparent; - --yt-spec-text-secondary: #f5dbe2; - } - html[it-dawn-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(4); - filter: grayscale(1) brightness(4); - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-dawn-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #d44d5c!important; - --yt-swatch-primary-darker: #d44d5c!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #734; - - --yt-spec-brand-background-solid:#d44d5c !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#d44d5c !important; - --yt-spec-general-background-b:#d44d5c !important; - --yt-spec-general-background-c:#d44d5c !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:rgb(255,255,255) !important; - --yt-spec-text-primary-inverse:rgb(255,255,255) !important; - --yt-spec-text-secondary:rgb(255,255,255) !important; - --yt-spec-text-disabled:rgb(255,255,255) !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:rgb(255,255,255) !important; - --yt-spec-icon-inactive:rgb(255,255,255) !important; - --yt-spec-icon-disabled:rgb(255,255,255) !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#d44d5c !important; - --yt-spec-filled-button-text:rgb(255,255,255) !important; - --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; - --yt-spec-brand-icon-active:rgb(255,255,255) !important; - --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:rgb(255,255,255)!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; - --yt-spec-wordmark-text:rgb(255,255,255) !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:rgb(255,255,255) !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-dawn-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #734!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #d44d5c; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-dawn-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-dawn-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #d44d5c; - --yt-playlist-background-item: #d44d5c; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #d44d5c; - --paper-listbox-background-color: #d44d5c; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #d44d5c; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #d44d5c; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #d44d5c; - --yt-menu-focus-background-color: #d44d5c; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #d44d5c; - --yt-main-app-background: #d44d5c; - --yt-main-app-background-tmp: #d44d5c; - --yt-guide-background: #d44d5c; - --yt-dialog-background: #734; - --yt-searchbox-background: #672c3b; - --yt-channel-header-background: #d44d5c; - --yt-sidebar-background: #d44d5c; - --yt-transcript-background: #d44d5c; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #d44d5c; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #d44d5c; - --yt-blue-suggestive: transparent; - --yt-spec-text-secondary: #f5dbe2; - } - html[it-dawn-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(4); - filter: grayscale(1) brightness(4); - } -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-header-primary: rgb(34,38,42)!important; - --yt-swatch-primary: rgb(34,38,42)!important; - --yt-swatch-primary-darker: rgb(28,32,36)!important; - --yt-swatch-text: rgb(200,200,200)!important; - --yt-swatch-important-text: rgb(200,200,200)!important; - --yt-swatch-input-text: rgba(200,200,200,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(200,200,200)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; -} - -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #masthead-search-term -{ - border: 1px solid #444!important; - border-right: none!important; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light])[youtube-version=old] body -{ - height: auto; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - background: var(--yt-swatch-primary-darker)!important; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #232323!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #282828; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) -{ - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); - --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: hsl(0, 0%, 14%); - --paper-listbox-background-color: hsl(0, 0%, 14%); - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: hsl(0, 0%, 14%); - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); - --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: hsl(0, 0%, 7%); - --yt-main-app-background: hsl(0, 0%, 7%); - --yt-main-app-background-tmp: hsl(0, 0%, 7%); - --yt-guide-background: hsl(0, 0%, 11%); - --yt-dialog-background: hsl(0, 0%, 14%); - --yt-searchbox-background: hsl(0, 0%, 7%); - --yt-channel-header-background: hsla(0, 0%, 11%, .8); - --yt-sidebar-background: hsla(0, 0%, 11%, .8); - --yt-transcript-background: hsl(0, 0%, 11%); - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); - --yt-blue-suggestive: transparent; -} - -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light])[youtube-version=old] body -{ - height: auto!important; - - background: rgb(19,19,19)!important; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-youtube-version=old][it-default-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-header-primary: rgb(34,38,42)!important; - --yt-swatch-primary: rgb(34,38,42)!important; - --yt-swatch-primary-darker: rgb(28,32,36)!important; - --yt-swatch-text: rgb(200,200,200)!important; - --yt-swatch-important-text: rgb(200,200,200)!important; - --yt-swatch-input-text: rgba(200,200,200,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(200,200,200)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] #masthead-search-term - { - border: 1px solid #444!important; - border-right: none!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] html[youtube-version=old] body - { - height: auto; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] - { - background: var(--yt-swatch-primary-darker)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #232323!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #282828; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) - { - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); - --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: hsl(0, 0%, 14%); - --paper-listbox-background-color: hsl(0, 0%, 14%); - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: hsl(0, 0%, 14%); - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); - --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: hsl(0, 0%, 7%); - --yt-main-app-background: hsl(0, 0%, 7%); - --yt-main-app-background-tmp: hsl(0, 0%, 7%); - --yt-guide-background: hsl(0, 0%, 11%); - --yt-dialog-background: hsl(0, 0%, 14%); - --yt-searchbox-background: hsl(0, 0%, 7%); - --yt-channel-header-background: hsla(0, 0%, 11%, .8); - --yt-sidebar-background: hsla(0, 0%, 11%, .8); - --yt-transcript-background: hsl(0, 0%, 11%); - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); - --yt-blue-suggestive: transparent; - } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark][youtube-version=old] body - { - height: auto!important; - - background: rgb(19,19,19)!important; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-youtube-version=old][it-default-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-header-primary: rgb(34,38,42)!important; - --yt-swatch-primary: rgb(34,38,42)!important; - --yt-swatch-primary-darker: rgb(28,32,36)!important; - --yt-swatch-text: rgb(200,200,200)!important; - --yt-swatch-important-text: rgb(200,200,200)!important; - --yt-swatch-input-text: rgba(200,200,200,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(200,200,200)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] #masthead-search-term - { - border: 1px solid #444!important; - border-right: none!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] html[youtube-version=old] body - { - height: auto; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] - { - background: var(--yt-swatch-primary-darker)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #232323!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #282828; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) - { - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); - --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: hsl(0, 0%, 14%); - --paper-listbox-background-color: hsl(0, 0%, 14%); - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: hsl(0, 0%, 14%); - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); - --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: hsl(0, 0%, 7%); - --yt-main-app-background: hsl(0, 0%, 7%); - --yt-main-app-background-tmp: hsl(0, 0%, 7%); - --yt-guide-background: hsl(0, 0%, 11%); - --yt-dialog-background: hsl(0, 0%, 14%); - --yt-searchbox-background: hsl(0, 0%, 7%); - --yt-channel-header-background: hsla(0, 0%, 11%, .8); - --yt-sidebar-background: hsla(0, 0%, 11%, .8); - --yt-transcript-background: hsl(0, 0%, 11%); - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); - --yt-blue-suggestive: transparent; - } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light][youtube-version=old] body - { - height: auto!important; - - background: rgb(19,19,19)!important; - } -} -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #faf9f9!important; - --yt-swatch-primary-darker: #faf9f9!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #bee3db; - - --yt-spec-brand-background-solid:#faf9f9 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#faf9f9 !important; - --yt-spec-general-background-b:#faf9f9 !important; - --yt-spec-general-background-c:#faf9f9 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#555 !important; - --yt-spec-text-primary-inverse:#555 !important; - --yt-spec-text-secondary:#555 !important; - --yt-spec-text-disabled:#555 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#555 !important; - --yt-spec-icon-inactive:#555 !important; - --yt-spec-icon-disabled:#555 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#faf9f9 !important; - --yt-spec-filled-button-text:#555 !important; - --yt-spec-call-to-action-inverse:#555 !important; - --yt-spec-brand-icon-active:#555 !important; - --yt-spec-brand-icon-inactive:#555 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#555!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#555 !important; - --yt-spec-wordmark-text:#555 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#555 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #bee3db!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #faf9f9; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: #555; - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #555; - --yt-spec-text-primary: #555; - --ytd-searchbox-border-color: #555; - --ytd-searchbox-legacy-border-color: #555; - --ytd-searchbox-legacy-border-shadow-color: #555; - --ytd-searchbox-legacy-button-color: #555; - --ytd-searchbox-legacy-button-border-color: #555; - --ytd-searchbox-legacy-button-focus-color: #555; - --ytd-searchbox-legacy-button-hover-color: #555; - --ytd-searchbox-legacy-button-hover-border-color: #555; - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: #555; - --ytd-moderation-panel-hover: #555; - --ytd-moderation-panel-comment-text: #555; - --ytd-moderation-panel-comment-metadata-text: #555; - --ytd-moderation-icon-color: #555; - --ytd-moderation-icon-hover-color: #555; - --ytd-comment-text-color: #555; - --ytd-comment-metadata-text-color: #555; - --ytd-watch-card-secondary-text-color: #555; - --ytd-watch-card-album-header-background: #555; - --ytd-backstage-metadata-text-color: #555; - --ytd-backstage-video-link-background-color: #555; - --ytd-backstage-image-alert-color: #555; - --ytd-backstage-cancel-background-color: #555; - --ytd-backstage-cancel-color: #555; - --ytd-backstage-creationbox-background-color: #555; - --ytd-backstage-creationbox-background-color-focus: #555; - --ytd-backstage-creationbox-inactive-color: #555; - --ytd-backstage-creationbox-text-color: #555; - --ytd-backstage-creationbox-input-text-color: #555; - --ytd-backstage-creationbox-disabled-button-color: #555; - --ytd-backstage-creationbox-disabled-button-text-color: #555; - --ytd-backstage-attachment-icon-hover-color: #555; - --ytd-sponsorships-background-color-focus: #555; - --ytd-badge-background: #555; - --ytd-badge-disabled-color: #555; - --ytd-collection-badge-color: #555; - --ytd-owner-badge-color: #555; - --ytd-simple-badge-color: #555; - --ytd-ad-badge-text-color: #555; - --ytd-shopping-product-info: #555; - --ytd-toggle-color: #555; - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: #555; - --ytd-transcript-toolbar-background-color: #555; - --ytd-transcript-toolbar-text: #555; - --ytd-video-publish-date-color: #555; - --ytd-vat-notice-text: #555; - --ytd-offer-background-color: #555; - --ytd-video-game-watch-card-logo-color: #555; - --ytd-watch-split-pane-sidebar-background-color: #555; - --yt-std-body-100: #555; - --yt-std-body-200: #555; - --yt-std-body-300: #555; - --yt-std-surface-200: #555; - --yt-std-surface-300: #555; - --yt-std-surface-400: #555; - --yt-primary-color: #555; - --yt-primary-text-color: #555; - --yt-hovered-text-color: #555; - --yt-secondary-text-color: #555; - --yt-tertiary-text-color: #555; - --yt-disabled-text-color: #555; - --yt-placeholder-text-color: #555; - --yt-border-color: #555; - --yt-commentbox-border-inactive: #555; - --yt-commentbox-border-active: #555; - --yt-alert-background: #555; - --yt-paper-button-ink-color: #555; - --yt-icon-color: #555; - --yt-icon-hover-color: #555; - --yt-icon-active-color: #555; - --yt-icon-disabled-color: #555; - --yt-endpoint-color: #555; - --yt-expand-color: #555; - --yt-metadata-color: #555; - --yt-channel-owner: #555; - --yt-placeholder-text: #555; - --yt-playlist-background-header: #faf9f9; - --yt-playlist-background-item: #faf9f9; - --yt-playlist-title-text: #555; - --yt-playlist-message-text: #555; - --yt-playlist-message-text-hover: #555; - --yt-subscribe-button-text-color: #555; - --yt-brand-color: #555; - --yt-button-text-color: #555; - --yt-button-payment-text-color: #555; - --yt-copyright-text: #555; - --yt-guide-entry-hover-background-color: #555; - --yt-thumbnail-placeholder-color: #555; - --yt-primary-disabled-button-text-color: #555; - --yt-featured-channel-title-text-color: #555; - --yt-formatted-string-deemphasize-color: #555; - --paper-menu-background-color: #faf9f9; - --paper-listbox-background-color: #faf9f9; - --paper-menu-color: #555; - --paper-listbox-color: #555; - --paper-dialog-background-color: #faf9f9; - --paper-toggle-button-unchecked-bar-color: #555; - --yt-simple-menu-header-background: #faf9f9; - --yt-item-section-header-color: #555; - --yt-menu-hover-backgound-color: #faf9f9; - --yt-menu-focus-background-color: #faf9f9; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: #555; - --yt-material-searchbox-active: #555; - --yt-material-searchbox-inactive-shadow: #555; - --yt-material-searchbox-active-shadow: #555; - --yt-material-searchbox-inset: #555; - --yt-material-searchbox-text-color: #555; - --yt-app-background: #faf9f9; - --yt-main-app-background: #faf9f9; - --yt-main-app-background-tmp: #faf9f9; - --yt-guide-background: #faf9f9; - --yt-dialog-background: #bee3db; - --yt-searchbox-background: #faf9f9; - --yt-channel-header-background: #faf9f9; - --yt-sidebar-background: #faf9f9; - --yt-transcript-background: #faf9f9; - --yt-chat-bubble-other-border-color: #555; - --yt-chat-bubble-other-background-color: #faf9f9; - --yt-chat-bubble-self-border-color: #555; - --yt-chat-bubble-self-background-color: #faf9f9; - --yt-blue-suggestive: transparent; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-desert-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #faf9f9!important; - --yt-swatch-primary-darker: #faf9f9!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #bee3db; - - --yt-spec-brand-background-solid:#faf9f9 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#faf9f9 !important; - --yt-spec-general-background-b:#faf9f9 !important; - --yt-spec-general-background-c:#faf9f9 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#555 !important; - --yt-spec-text-primary-inverse:#555 !important; - --yt-spec-text-secondary:#555 !important; - --yt-spec-text-disabled:#555 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#555 !important; - --yt-spec-icon-inactive:#555 !important; - --yt-spec-icon-disabled:#555 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#faf9f9 !important; - --yt-spec-filled-button-text:#555 !important; - --yt-spec-call-to-action-inverse:#555 !important; - --yt-spec-brand-icon-active:#555 !important; - --yt-spec-brand-icon-inactive:#555 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#555!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#555 !important; - --yt-spec-wordmark-text:#555 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#555 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-desert-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #bee3db!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #faf9f9; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: #555; - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-desert-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-desert-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #555; - --yt-spec-text-primary: #555; - --ytd-searchbox-border-color: #555; - --ytd-searchbox-legacy-border-color: #555; - --ytd-searchbox-legacy-border-shadow-color: #555; - --ytd-searchbox-legacy-button-color: #555; - --ytd-searchbox-legacy-button-border-color: #555; - --ytd-searchbox-legacy-button-focus-color: #555; - --ytd-searchbox-legacy-button-hover-color: #555; - --ytd-searchbox-legacy-button-hover-border-color: #555; - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: #555; - --ytd-moderation-panel-hover: #555; - --ytd-moderation-panel-comment-text: #555; - --ytd-moderation-panel-comment-metadata-text: #555; - --ytd-moderation-icon-color: #555; - --ytd-moderation-icon-hover-color: #555; - --ytd-comment-text-color: #555; - --ytd-comment-metadata-text-color: #555; - --ytd-watch-card-secondary-text-color: #555; - --ytd-watch-card-album-header-background: #555; - --ytd-backstage-metadata-text-color: #555; - --ytd-backstage-video-link-background-color: #555; - --ytd-backstage-image-alert-color: #555; - --ytd-backstage-cancel-background-color: #555; - --ytd-backstage-cancel-color: #555; - --ytd-backstage-creationbox-background-color: #555; - --ytd-backstage-creationbox-background-color-focus: #555; - --ytd-backstage-creationbox-inactive-color: #555; - --ytd-backstage-creationbox-text-color: #555; - --ytd-backstage-creationbox-input-text-color: #555; - --ytd-backstage-creationbox-disabled-button-color: #555; - --ytd-backstage-creationbox-disabled-button-text-color: #555; - --ytd-backstage-attachment-icon-hover-color: #555; - --ytd-sponsorships-background-color-focus: #555; - --ytd-badge-background: #555; - --ytd-badge-disabled-color: #555; - --ytd-collection-badge-color: #555; - --ytd-owner-badge-color: #555; - --ytd-simple-badge-color: #555; - --ytd-ad-badge-text-color: #555; - --ytd-shopping-product-info: #555; - --ytd-toggle-color: #555; - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: #555; - --ytd-transcript-toolbar-background-color: #555; - --ytd-transcript-toolbar-text: #555; - --ytd-video-publish-date-color: #555; - --ytd-vat-notice-text: #555; - --ytd-offer-background-color: #555; - --ytd-video-game-watch-card-logo-color: #555; - --ytd-watch-split-pane-sidebar-background-color: #555; - --yt-std-body-100: #555; - --yt-std-body-200: #555; - --yt-std-body-300: #555; - --yt-std-surface-200: #555; - --yt-std-surface-300: #555; - --yt-std-surface-400: #555; - --yt-primary-color: #555; - --yt-primary-text-color: #555; - --yt-hovered-text-color: #555; - --yt-secondary-text-color: #555; - --yt-tertiary-text-color: #555; - --yt-disabled-text-color: #555; - --yt-placeholder-text-color: #555; - --yt-border-color: #555; - --yt-commentbox-border-inactive: #555; - --yt-commentbox-border-active: #555; - --yt-alert-background: #555; - --yt-paper-button-ink-color: #555; - --yt-icon-color: #555; - --yt-icon-hover-color: #555; - --yt-icon-active-color: #555; - --yt-icon-disabled-color: #555; - --yt-endpoint-color: #555; - --yt-expand-color: #555; - --yt-metadata-color: #555; - --yt-channel-owner: #555; - --yt-placeholder-text: #555; - --yt-playlist-background-header: #faf9f9; - --yt-playlist-background-item: #faf9f9; - --yt-playlist-title-text: #555; - --yt-playlist-message-text: #555; - --yt-playlist-message-text-hover: #555; - --yt-subscribe-button-text-color: #555; - --yt-brand-color: #555; - --yt-button-text-color: #555; - --yt-button-payment-text-color: #555; - --yt-copyright-text: #555; - --yt-guide-entry-hover-background-color: #555; - --yt-thumbnail-placeholder-color: #555; - --yt-primary-disabled-button-text-color: #555; - --yt-featured-channel-title-text-color: #555; - --yt-formatted-string-deemphasize-color: #555; - --paper-menu-background-color: #faf9f9; - --paper-listbox-background-color: #faf9f9; - --paper-menu-color: #555; - --paper-listbox-color: #555; - --paper-dialog-background-color: #faf9f9; - --paper-toggle-button-unchecked-bar-color: #555; - --yt-simple-menu-header-background: #faf9f9; - --yt-item-section-header-color: #555; - --yt-menu-hover-backgound-color: #faf9f9; - --yt-menu-focus-background-color: #faf9f9; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: #555; - --yt-material-searchbox-active: #555; - --yt-material-searchbox-inactive-shadow: #555; - --yt-material-searchbox-active-shadow: #555; - --yt-material-searchbox-inset: #555; - --yt-material-searchbox-text-color: #555; - --yt-app-background: #faf9f9; - --yt-main-app-background: #faf9f9; - --yt-main-app-background-tmp: #faf9f9; - --yt-guide-background: #faf9f9; - --yt-dialog-background: #bee3db; - --yt-searchbox-background: #faf9f9; - --yt-channel-header-background: #faf9f9; - --yt-sidebar-background: #faf9f9; - --yt-transcript-background: #faf9f9; - --yt-chat-bubble-other-border-color: #555; - --yt-chat-bubble-other-background-color: #faf9f9; - --yt-chat-bubble-self-border-color: #555; - --yt-chat-bubble-self-background-color: #faf9f9; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-desert-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #faf9f9!important; - --yt-swatch-primary-darker: #faf9f9!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #bee3db; - - --yt-spec-brand-background-solid:#faf9f9 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#faf9f9 !important; - --yt-spec-general-background-b:#faf9f9 !important; - --yt-spec-general-background-c:#faf9f9 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#555 !important; - --yt-spec-text-primary-inverse:#555 !important; - --yt-spec-text-secondary:#555 !important; - --yt-spec-text-disabled:#555 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#555 !important; - --yt-spec-icon-inactive:#555 !important; - --yt-spec-icon-disabled:#555 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#faf9f9 !important; - --yt-spec-filled-button-text:#555 !important; - --yt-spec-call-to-action-inverse:#555 !important; - --yt-spec-brand-icon-active:#555 !important; - --yt-spec-brand-icon-inactive:#555 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#555!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#555 !important; - --yt-spec-wordmark-text:#555 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#555 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-desert-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #bee3db!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #faf9f9; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: #555; - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-desert-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-desert-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #555; - --yt-spec-text-primary: #555; - --ytd-searchbox-border-color: #555; - --ytd-searchbox-legacy-border-color: #555; - --ytd-searchbox-legacy-border-shadow-color: #555; - --ytd-searchbox-legacy-button-color: #555; - --ytd-searchbox-legacy-button-border-color: #555; - --ytd-searchbox-legacy-button-focus-color: #555; - --ytd-searchbox-legacy-button-hover-color: #555; - --ytd-searchbox-legacy-button-hover-border-color: #555; - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: #555; - --ytd-moderation-panel-hover: #555; - --ytd-moderation-panel-comment-text: #555; - --ytd-moderation-panel-comment-metadata-text: #555; - --ytd-moderation-icon-color: #555; - --ytd-moderation-icon-hover-color: #555; - --ytd-comment-text-color: #555; - --ytd-comment-metadata-text-color: #555; - --ytd-watch-card-secondary-text-color: #555; - --ytd-watch-card-album-header-background: #555; - --ytd-backstage-metadata-text-color: #555; - --ytd-backstage-video-link-background-color: #555; - --ytd-backstage-image-alert-color: #555; - --ytd-backstage-cancel-background-color: #555; - --ytd-backstage-cancel-color: #555; - --ytd-backstage-creationbox-background-color: #555; - --ytd-backstage-creationbox-background-color-focus: #555; - --ytd-backstage-creationbox-inactive-color: #555; - --ytd-backstage-creationbox-text-color: #555; - --ytd-backstage-creationbox-input-text-color: #555; - --ytd-backstage-creationbox-disabled-button-color: #555; - --ytd-backstage-creationbox-disabled-button-text-color: #555; - --ytd-backstage-attachment-icon-hover-color: #555; - --ytd-sponsorships-background-color-focus: #555; - --ytd-badge-background: #555; - --ytd-badge-disabled-color: #555; - --ytd-collection-badge-color: #555; - --ytd-owner-badge-color: #555; - --ytd-simple-badge-color: #555; - --ytd-ad-badge-text-color: #555; - --ytd-shopping-product-info: #555; - --ytd-toggle-color: #555; - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: #555; - --ytd-transcript-toolbar-background-color: #555; - --ytd-transcript-toolbar-text: #555; - --ytd-video-publish-date-color: #555; - --ytd-vat-notice-text: #555; - --ytd-offer-background-color: #555; - --ytd-video-game-watch-card-logo-color: #555; - --ytd-watch-split-pane-sidebar-background-color: #555; - --yt-std-body-100: #555; - --yt-std-body-200: #555; - --yt-std-body-300: #555; - --yt-std-surface-200: #555; - --yt-std-surface-300: #555; - --yt-std-surface-400: #555; - --yt-primary-color: #555; - --yt-primary-text-color: #555; - --yt-hovered-text-color: #555; - --yt-secondary-text-color: #555; - --yt-tertiary-text-color: #555; - --yt-disabled-text-color: #555; - --yt-placeholder-text-color: #555; - --yt-border-color: #555; - --yt-commentbox-border-inactive: #555; - --yt-commentbox-border-active: #555; - --yt-alert-background: #555; - --yt-paper-button-ink-color: #555; - --yt-icon-color: #555; - --yt-icon-hover-color: #555; - --yt-icon-active-color: #555; - --yt-icon-disabled-color: #555; - --yt-endpoint-color: #555; - --yt-expand-color: #555; - --yt-metadata-color: #555; - --yt-channel-owner: #555; - --yt-placeholder-text: #555; - --yt-playlist-background-header: #faf9f9; - --yt-playlist-background-item: #faf9f9; - --yt-playlist-title-text: #555; - --yt-playlist-message-text: #555; - --yt-playlist-message-text-hover: #555; - --yt-subscribe-button-text-color: #555; - --yt-brand-color: #555; - --yt-button-text-color: #555; - --yt-button-payment-text-color: #555; - --yt-copyright-text: #555; - --yt-guide-entry-hover-background-color: #555; - --yt-thumbnail-placeholder-color: #555; - --yt-primary-disabled-button-text-color: #555; - --yt-featured-channel-title-text-color: #555; - --yt-formatted-string-deemphasize-color: #555; - --paper-menu-background-color: #faf9f9; - --paper-listbox-background-color: #faf9f9; - --paper-menu-color: #555; - --paper-listbox-color: #555; - --paper-dialog-background-color: #faf9f9; - --paper-toggle-button-unchecked-bar-color: #555; - --yt-simple-menu-header-background: #faf9f9; - --yt-item-section-header-color: #555; - --yt-menu-hover-backgound-color: #faf9f9; - --yt-menu-focus-background-color: #faf9f9; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: #555; - --yt-material-searchbox-active: #555; - --yt-material-searchbox-inactive-shadow: #555; - --yt-material-searchbox-active-shadow: #555; - --yt-material-searchbox-inset: #555; - --yt-material-searchbox-text-color: #555; - --yt-app-background: #faf9f9; - --yt-main-app-background: #faf9f9; - --yt-main-app-background-tmp: #faf9f9; - --yt-guide-background: #faf9f9; - --yt-dialog-background: #bee3db; - --yt-searchbox-background: #faf9f9; - --yt-channel-header-background: #faf9f9; - --yt-sidebar-background: #faf9f9; - --yt-transcript-background: #faf9f9; - --yt-chat-bubble-other-border-color: #555; - --yt-chat-bubble-other-background-color: #faf9f9; - --yt-chat-bubble-self-border-color: #555; - --yt-chat-bubble-self-background-color: #faf9f9; - --yt-blue-suggestive: transparent; - } -} -html[it-theme=true] #author-name.style-scope.yt-live-chat-message-input-renderer, -html[it-theme=true] #content #message.yt-live-chat-text-message-renderer, -html[it-theme=true] #delete-account-confirm, -html[it-theme=true] #delete-account-confirm .account-section-setting, -html[it-theme=true] #image-upload .image-upload-disclaimer, -html[it-theme=true] #subtext.yt-live-chat-message-renderer, -html[it-theme=true] #unlimited-manage-page .account-additional-info, -html[it-theme=true] #welcome-edit-overlay, -html[it-theme=true] .account-ad-defaults-note, -html[it-theme=true] .account-content, -html[it-theme=true] .account-header h1, -html[it-theme=true] .account-info-item .account-info-join, -html[it-theme=true] .account-section-subtext, -html[it-theme=true] .account-sharing-notes, -html[it-theme=true] .account-sharing-preference.disabled .preference-label, -html[it-theme=true] .c4-checklist-done-message, -html[it-theme=true] .c4-checklist-module .checklist-item.acknowledged .todo-title-text, -html[it-theme=true] .c4-checklist-module .checklist-item.done .checklist-item-title-text, -html[it-theme=true] .c4-checklist-module .checklist-item.done .todo-title-text, -html[it-theme=true] .c4-module-editor-form .yt-uix-form-input-select, -html[it-theme=true] .c4-module-editor-form .yt-uix-form-input-text, -html[it-theme=true] .c4-module-editor-form .yt-uix-form-input-textarea, -html[it-theme=true] .c4-module-editor-header-title, -html[it-theme=true] .close-account-warnings, -html[it-theme=true] .email-resumed-reminder, -html[it-theme=true] .empty-shelf-text, -html[it-theme=true] .filter, -html[it-theme=true] .filter-col-title, -html[it-theme=true] .make-private-warnings, -html[it-theme=true] .paper-menu .yt-formatted-string-0, -html[it-theme=true] .search-header .num-results, -html[it-theme=true] .search-header .num-results strong, -html[it-theme=true] .search-header .yt-uix-button-content, -html[it-theme=true] .setting-reminder, -html[it-theme=true] .settings-dialog-fg h2, -html[it-theme=true] .style-scope.yt-live-chat-message-input-renderer, -html[it-theme=true] .style-scope.yt-live-chat-text-input-field-renderer, -html[it-theme=true] .yt-dialog-fg-content, -html[it-theme=true] .yt-live-chat-header-renderer-0, -html[it-theme=true] .yt-live-chat-header-renderer-0 #action-buttons.yt-live-chat-header-renderer > .yt-live-chat-header-renderer, -html[it-theme=true] .yt-live-chat-header-renderer-0 #overflow.yt-live-chat-header-renderer, -html[it-theme=true] .yt-live-chat-message-renderer-0 #button.yt-live-chat-message-renderer, -html[it-theme=true] .yt-live-chat-text-message-renderer-0 #content.yt-live-chat-text-message-renderer, -html[it-theme=true] .yt-subscription-button-subscriber-count-branded-horizontal, -html[it-theme=true] .yt-subscription-button-subscriber-count-unbranded-horizontal, -html[it-theme=true] .yt-uix-button-has-icon.no-icon-markup .yt-uix-button-content, -html[it-theme=true] .yt-uix-form-input-checkbox-container.disabled .account-privacy-checkbox-label, -html[it-theme=true] .yt-uix-overlay-fg-content, -html[it-theme=true] .yt-video-picker-grid .item-caption.upload-time, -html[it-theme=true] .yt-video-picker-grid .item-caption.view-count, -html[it-theme=true] .ytd-menu-service-item-renderer-0 yt-formatted-string.ytd-menu-service-item-renderer, -html[it-theme=true] h3.account-section-header -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-ui-ellipsis -{ - background: 0 0!important; -} -html[it-theme=true]:not([it-theme=desert]) .yt-uix-button-has-icon.no-icon-markup:before, -html[it-theme=true]:not([it-theme=desert]) .yt-uix-button-icon, -html[it-theme=true]:not([it-theme=desert]) .yt-sprite -{ - -webkit-filter: contrast(0) brightness(3); - filter: contrast(0) brightness(3); -} -html[it-theme=true] #content #author-name.yt-live-chat-text-message-renderer -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .paper-menu a:hover, -html[it-theme=true] .yt-live-chat-message-renderer-0, -html[it-theme=true] .ytd-menu-service-item-renderer-0:hover -{ - background-color: rgba(255,255,255,.05)!important; -} -html[it-theme=true] .yt-live-chat-header-renderer-0 -{ - -webkit-box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12); - box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12); -} -html[it-theme=true] .yt-uix-form-input-checkbox-element, -html[it-theme=true] .yt-video-picker-scroll-container -{ - border: 1px solid #cbcbcb; -} -html[it-theme=true] .yt-video-picker-grid .video-picker-item:hover -{ - background-color: #ddd; -} -html[it-theme=true] .yt-video-picker-grid .selected-video-picker-item, -html[it-theme=true] .yt-video-picker-grid .selected-video-picker-item:hover -{ - background-color: #ccc; -} -html[it-theme=true] .yt-live-chat-text-message-renderer-0 #menu.yt-live-chat-text-message-renderer -{ - background: 0 0!important; -} -html[it-theme=true] .paper-icon-button-0 .paper-icon-button path, -html[it-theme=true] .yt-live-chat-text-message-renderer-0 #menu #menu-button path -{ - fill: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-live-chat-item-list-renderer-1 paper-icon-button.yt-live-chat-item-list-renderer path -{ - fill: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-video-picker-sort-options:hover -{ - border-color: var(--yt-swatch-primary); -} -html[it-theme=true] .account-container, -html[it-theme=true] .nbc, -html[it-theme=true] .paper-menu-0, -html[it-theme=true] .yt-live-chat-message-input-renderer-0, -html[it-theme=true] .yt-live-chat-message-renderer-0 #button.yt-live-chat-message-renderer -{ - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-live-chat-text-input-field-renderer-0 #unfocused.yt-live-chat-text-input-field-renderer -{ - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-sidebar-accounts-signin-cta -{ - background-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-sidebar-accounts-signin-cta-triangle -{ - border-bottom: 10px solid var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-sidebar-accounts-signin-cta-text -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .yt-live-chat-message-input-renderer-0 -{ - border-top: 1px solid var(--yt-swatch-primary); -} -html[it-theme=true] .account-content .account-section.account-bordered-section -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .account-section .non-profit .wallet-details -{ - color: #518442; -} -html[it-theme=true] .account-section .transfer_channel_disabled, -html[it-theme=true] .channel-privacy .toggle-button .help-text -{ - color: #9e9e9e; -} -html[it-theme=true] .channel-privacy .progress-bar-background -{ - border: 1px solid #e7e7e7; -} -html[it-theme=true] .channel-privacy .progress-bar-progress -{ - border: 1px solid #d3e9fb; -} -html[it-theme=true] .account-section .account-status-expanded, -html[it-theme=true] .confirm-overlay, -html[it-theme=true] .confirm-overlay-content, -html[it-theme=true] .yt-live-chat-header-renderer-0, -html[it-theme=true] .yt-live-chat-renderer-0 -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .channel-privacy .progress-bar-progress-text, -html[it-theme=true] .channel-privacy .progress-bar-status-text, -html[it-theme=true] .empty-upsell-messages h2 -{ - color: #444; -} -html[it-theme=true] .account-section-videos-subtext -{ - color: #9e9e9e; -} -html[it-theme=true] .account-section .account-section-not-saved-notice -{ - color: #c03636; -} -html[it-theme=true] .account-info .channel-title-change-button.yt-uix-expander-head, -html[it-theme=true] .filter:hover -{ - color: #167ac6!important; -} -html[it-theme=true] .confirm-overlay-content, -html[it-theme=true] .defaults-monetization-disclaimer, -html[it-theme=true] .desktop-notifications .browser -{ - border: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .id-revert-activity-section, -html[it-theme=true] .id-revert-fb-caption, -html[it-theme=true] .id-revert-fb-why-section, -html[it-theme=true] .id-revert-middle-section -{ - border: 1px solid #d8d8d8; -} -html[it-theme=true] .defaults-monetization-disclaimer -{ - background: var(--yt-swatch-text); -} -html[it-theme=true] #video-still-picker li.selected -{ - background: #6683b3; -} -html[it-theme=true] .id-revert-top-section -{ - background-color: #f5f5f5; -} -html[it-theme=true] .id-revert-buttons-container -{ - border: 1px solid #d8d8d8; - background-color: #e8e8e8; -} -html[it-theme=true] .id-revert-not-checked-err -{ - color: red; -} -html[it-theme=true] .desktop-notifications .browser -{ - background: #1c2022!important; -} -input, -textarea -{ - background-color: transparent!important; -} -html[it-theme=true] .yt-unlimited-inline-offer -{ - border-bottom: 1px solid #e6e6e6; -} -html[it-theme=true] .c4-module-editor-header-hr, -html[it-theme=true] .yt-uix-button-c4-view-action -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-unlimited-inline-offer .yt-unlimited-metadata -{ - color: #000; -} -html[it-theme=true] .yt-unlimited-inline-offer .metadata-item -{ - color: #757575; -} -html[it-theme=true] #c4-legal-info-editor #c4-legal-info:hover, -html[it-theme=true] .c4-module-editor-form -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-uix-button-c4-view-action -{ - border-left: 1px solid var(--yt-swatch-primary)!important; - background-color: #fbfbfb; - -webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05); - box-shadow: 0 1px 1px rgba(0,0,0,.05); -} -html[it-theme=true] .yt-uix-button-c4-view-action.yt-uix-button-destructive -{ - background-color: #cc181e; -} -html[it-theme=true] .yt-uix-button-c4-view-action .yt-uix-button-arrow -{ - border-top-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #about-business-email-form, -html[it-theme=true] .about-metadata .yt-uix-button-c4-view-action, -html[it-theme=true] .about-metadata-editor-form, -html[it-theme=true] .about-metadata-secondary-col .c4-module-editor-actions -{ - border-top: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] #c4-spotlight-editor .yt-uix-inlineedit-form-container .c4-featured-content, -html[it-theme=true] #c4-spotlight-editor .yt-uix-inlineedit-form-container .upsell, -html[it-theme=true] .c4-checklist-module -{ - border: 1px solid var(--yt-swatch-primary)!important; - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .c4-checklist-module .checklist-item-title-text -{ - color: var(--yt-swatch-text)!important; -} -a, -html[it-theme=true] .c4-checklist-module .checklist-item-title-text:hover, -html[it-theme=true] .c4-checklist-module .checklist-item.done .checklist-item-title-text:hover, -html[it-theme=true] .c4-checklist-module .checklist-item:hover .checklist-item-title-text .todo-title-text, -html[it-theme=true] .c4-checklist-module .view-all-link a:hover, -html[it-theme=true] .yt-alert-naked .yt-alert-content a -{ - color: #167ac6; -} -html[it-theme=true] .c4-checklist-module .todo-description -{ - border-bottom: 1px solid var(--yt-swatch-text); -} -html[it-theme=true] #other-channels-sidebar:hover, -html[it-theme=true] .about-business-email-editor .c4-module-is-editable:hover, -html[it-theme=true] .about-description-editor .c4-module-is-editable:hover, -html[it-theme=true] .about-metadata-editor .c4-module-is-editable:hover, -html[it-theme=true] .related-channels-editor:hover -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .related-channels-toggle-group .yt-uix-expander-head:hover -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .c4-shelf-preview, -html[it-theme=true] .c4-shelf-preview .preview-click-guard, -html[it-theme=true] body.kevlar-homepage -{ - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .c4-shelf-preview -{ - border: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] #c4-spotlight-editor .spotlight-editor-tab -{ - border-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #upsell-video-video-container -{ - color: #888; -} -html[it-theme=true] #c4-upsell-preview .empty-trailer-preview .no-trailer-message, -html[it-theme=true] #welcome-edit-overlay .welcome-setting-details, -html[it-theme=true] #welcome-settings-hints p, -html[it-theme=true] .c4-featured-content-editor .c4-featured-content-notes.byline, -html[it-theme=true] .empty-upsell-messages p -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .empty-upsell-video-content -{ - border: 1px dashed #e9e9e9; -} -html[it-theme=true] .c4-spotlight-loading-overlay -{ - background: #ccc; -} -html[it-theme=true] .c4-featured-content-editor .c4-featured-content-column -{ - border-left: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] #view-as-notification -{ - color: var(--yt-swatch-text); - background-color: #438bc5; -} -html[it-theme=true] #c4-header-bg-container .c4-header-bg-message .c4-header-bg-message-content -{ - color: var(--yt-swatch-text); - background-color: rgba(0,0,0,.6); -} -html[it-theme=true] .primary-header-contents .view-as-menu .view-as-menu-trigger -{ - color: #000; -} -html[it-theme=true] .additional-settings-link, -html[it-theme=true] .casual-channel .channel-settings-editor .layout-setting p, -html[it-theme=true] .translation-editor-translation-menu-button .yt-uix-button-content -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-languagepicker-menu -{ - -webkit-box-shadow: 0 0 15px rgba(0,0,0,.18); - box-shadow: 0 0 15px rgba(0,0,0,.18); -} -html[it-theme=true] .yt-uix-languagepicker-search-container -{ - border-top: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .translation-editor-header .translation-editor-column-divider, -html[it-theme=true] .translation-editor-header .translation-editor-column-half -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .translation-editor-original-input, -html[it-theme=true] .translation-editor-original-input:focus, -html[it-theme=true] .translation-editor-original-input:hover -{ - border: 1px solid #efefef!important; -} -html[it-theme=true] .translation-editor-error -{ - color: #b91f1f; -} -html[it-theme=true] .translation-editor-source, -html[it-theme=true] .translation-editor-translation-count, -html[it-theme=true] .yt-lockup .yt-lockup-meta .yt-pl-thumb .video-count-text b -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] body -{ - min-height: 100vh!important; - - background: var(--yt-swatch-primary-darker)!important; -} -html[it-theme=true] span.warning -{ - color: #d00; -} -html[it-theme=true] .yt-deemphasized-text -{ - color: #b8b8b8; -} -html[it-theme=true] .yt-pl-thumb .sidebar -{ - background: rgba(0,0,0,.8); -} -html[it-theme=true] .yt-show-thumb .sidebar -{ - color: var(--yt-swatch-text); - background-color: #000; -} -html[it-theme=true] .exp-mix-as-radio .yt-pl-thumb.yt-mix-thumb .sidebar -{ - background: rgba(0,0,0,.6); -} -html[it-theme=true] .yt-pl-thumb .yt-pl-sidebar-content -{ - color: #cfcfcf; -} -html[it-theme=true] .yt-pl-thumb-overlay .yt-pl-thumb-overlay-content -{ - color: var(--yt-swatch-text); - text-shadow: 0 1px 1px rgba(255,255,255,.6); -} -html[it-theme=true] .yt-alert-actionable .yt-alert-buttons, -html[it-theme=true] .yt-alert-actionable .yt-alert-content, -html[it-theme=true] .yt-alert-default .yt-alert-content, -html[it-theme=true] .yt-alert-small .yt-alert-content -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .yt-alert-naked .yt-alert-content, -html[it-theme=true] .yt-alert-warn .yt-alert-buttons .yt-uix-button-content, -html[it-theme=true] .yt-alert-warn .yt-alert-content, -html[it-theme=true] .yt-consent-banner .consent-close, -html[it-theme=true] .yt-consent-banner .yt-consent-content -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-alert-actionable.yt-alert-error, -html[it-theme=true] .yt-alert-default.yt-alert-error, -html[it-theme=true] .yt-alert-naked.yt-alert-error .yt-alert-icon, -html[it-theme=true] .yt-alert-small.yt-alert-error -{ - border-color: #a11b1a; - background-color: #b91f1f; -} -html[it-theme=true] .yt-alert-actionable .yt-uix-button-alert-error -{ - border: 1px solid rgba(0,0,0,.2); -} -html[it-theme=true] .yt-alert-actionable .yt-uix-button-alert-error:hover -{ - background: #b31217; -} -html[it-theme=true] .yt-alert-actionable .yt-uix-button-alert-error:active -{ - border-color: #7a1515; - background: #921818; - -webkit-box-shadow: 0 0 0 #000,0 0 1px rgba(255,255,255,.25),inset 0 1px 3px rgba(0,0,0,.25); - box-shadow: 0 0 0 #000,0 0 1px rgba(255,255,255,.25),inset 0 1px 3px rgba(0,0,0,.25); -} -html[it-theme=true] .yt-alert-actionable.yt-alert-warn, -html[it-theme=true] .yt-alert-default.yt-alert-warn, -html[it-theme=true] .yt-alert-naked.yt-alert-warn .yt-alert-icon, -html[it-theme=true] .yt-alert-small.yt-alert-warn -{ - background-color: #f5d562; -} -html[it-theme=true] .yt-alert-actionable .yt-uix-button-alert-warn -{ - border: 1px solid rgba(0,0,0,.2); -} -html[it-theme=true] .yt-alert-actionable .yt-uix-button-alert-warn:hover -{ - background: #edc947; -} -html[it-theme=true] .yt-alert-actionable .yt-uix-button-alert-warn.yt-uix-button-toggled, -html[it-theme=true] .yt-alert-actionable .yt-uix-button-alert-warn:active -{ - border-color: #8a4f16; - background: #a55e1a; - -webkit-box-shadow: 0 0 0 #000,0 0 1px rgba(255,255,255,.25),inset 0 1px 3px rgba(0,0,0,.25); - box-shadow: 0 0 0 #000,0 0 1px rgba(255,255,255,.25),inset 0 1px 3px rgba(0,0,0,.25); -} -html[it-theme=true] .yt-alert-actionable.yt-alert-success, -html[it-theme=true] .yt-alert-default.yt-alert-success, -html[it-theme=true] .yt-alert-naked.yt-alert-success .yt-alert-icon, -html[it-theme=true] .yt-alert-small.yt-alert-success -{ - background: #167ac6; -} -html[it-theme=true] .yt-alert-actionable .yt-uix-button-alert-success -{ - border: 1px solid rgba(0,0,0,.2); -} -html[it-theme=true] .yt-alert-actionable .yt-uix-button-alert-success:hover -{ - background: #126db3; -} -html[it-theme=true] .yt-alert-actionable .yt-uix-button-alert-success.yt-uix-button-toggled, -html[it-theme=true] .yt-alert-actionable .yt-uix-button-alert-success:active -{ - border-color: #4d6c2e; - background: #356d9b; - -webkit-box-shadow: 0 0 0 #000,0 0 1px rgba(255,255,255,.25),inset 0 1px 3px rgba(0,0,0,.25); - box-shadow: 0 0 0 #000,0 0 1px rgba(255,255,255,.25),inset 0 1px 3px rgba(0,0,0,.25); -} -html[it-theme=true] .yt-alert-actionable.yt-alert-info, -html[it-theme=true] .yt-alert-default.yt-alert-info, -html[it-theme=true] .yt-alert-naked.yt-alert-info .yt-alert-icon, -html[it-theme=true] .yt-alert-small.yt-alert-info -{ - background: #167ac6; -} -html[it-theme=true] .yt-alert-actionable .yt-uix-button-alert-info -{ - border: 1px solid rgba(0,0,0,.2); -} -html[it-theme=true] .yt-alert-actionable .yt-uix-button-alert-info:hover -{ - background: #126db3; -} -html[it-theme=true] .yt-alert-actionable .yt-uix-button-alert-info.yt-uix-button-toggled, -html[it-theme=true] .yt-alert-actionable .yt-uix-button-alert-info:active -{ - border-color: #2c5b82; - background: #356d9b; - -webkit-box-shadow: 0 0 0 #000,0 0 1px rgba(255,255,255,.25),inset 0 1px 3px rgba(0,0,0,.25); - box-shadow: 0 0 0 #000,0 0 1px rgba(255,255,255,.25),inset 0 1px 3px rgba(0,0,0,.25); -} -html[it-theme=true] .yt-consent-banner -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] #results .section-list li .item-section .branded-page-box -{ - border-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-alert-promo .yt-alert-content a, -html[it-theme=true] .yt-consent-banner .consent-close:hover -{ - color: #167ac6; -} -html[it-theme=true] .yt-alert-panel, -html[it-theme=true] .yt-alert-promo, -html[it-theme=true] .yt-alert-watch-promo, -html[it-theme=true] .yt-card, -html[it-theme=true] .yt-consent-banner -{ - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-alert-promo .yt-alert-content, -html[it-theme=true] .yt-alert-watch-promo .yt-alert-content -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-button-alert-error .yt-uix-button-content, -html[it-theme=true] .yt-uix-button-alert-info .yt-uix-button-content, -html[it-theme=true] .yt-uix-button-alert-success .yt-uix-button-content, -html[it-theme=true] .yt-uix-button-alert-warn .yt-uix-button-content -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .yt-alert-actionable .yt-alert-buttons .yt-uix-button-arrow -{ - border-top-color: var(--yt-swatch-text); -} -html[it-theme=true] .yt-alert-actionable .yt-alert-buttons .yt-uix-button-toggled .yt-uix-button-arrow -{ - border-bottom-color: var(--yt-swatch-text); -} -html[it-theme=true] .yt-alert .close:hover -{ - background-color: rgba(0,0,0,.15); -} -html[it-theme=true] .yt-card -{ - -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.1); - box-shadow: 0 1px 2px rgba(0,0,0,.1); -} -html[it-theme=true] .yt-card .yt-uix-button-expander -{ - color: var(--yt-swatch-text)!important; - border-top: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-card .yt-uix-button-expander:hover -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-card .yt-uix-tabs -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-card .yt-uix-tabs .yt-uix-button.yt-uix-button-active, -html[it-theme=true] .yt-card .yt-uix-tabs .yt-uix-button.yt-uix-button-toggled, -html[it-theme=true] .yt-card .yt-uix-tabs .yt-uix-button:active, -html[it-theme=true] .yt-card .yt-uix-tabs .yt-uix-button:hover -{ - border-bottom-color: #cc181e; -} -html[it-theme=true] .guided-help-box -{ - color: var(--yt-swatch-text); - border: 1px solid #434343; - background: #464646; - -webkit-box-shadow: 1px 1px 2px rgba(0,0,0,.25); - box-shadow: 1px 1px 2px rgba(0,0,0,.25); -} -html[it-theme=true] .yt-uix-button.yt-uix-button-guided-help -{ - color: var(--yt-swatch-text); - background: #7cabe3; - -webkit-box-shadow: 1px 1px 2px rgba(0,0,0,.25); - box-shadow: 1px 1px 2px rgba(0,0,0,.25); -} -html[it-theme=true] .yt-nav-dark -{ - background: #535353; - text-shadow: 0 -1px 1px #000; -} -html[it-theme=true] .yt-nav-dark .yt-nav-item -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .yt-nav-dark .yt-nav-item:hover -{ - background: #666; -} -html[it-theme=true] .yt-nav-dark .selected .yt-nav-item, -html[it-theme=true] .yt-nav-dark .yt-nav-item:active, -html[it-theme=true] .yt-nav-dark .yt-nav-item:focus -{ - background: #343434; -} -a.yt-uix-button.yt-uix-button-epic-nav-item, -button.yt-uix-button-epic-nav-item, -html[it-theme=true] .epic-nav-item -{ - color: var(--yt-swatch-text)!important; -} -a.yt-uix-button-epic-nav-item.selected, -a.yt-uix-button-epic-nav-item.yt-uix-button-toggled, -a.yt-uix-button-epic-nav-item:hover, -html[it-theme=true] .feed-header-feed-filter .yt-uix-button-epic-nav-item.selected, -html[it-theme=true] .feed-header-feed-filter .yt-uix-button-epic-nav-item:hover -{ - border-color: #cc181e; -} -a.yt-uix-button-epic-nav-item.partially-selected:hover, -button.yt-uix-button-epic-nav-item.selected, -button.yt-uix-button-epic-nav-item.yt-uix-button-toggled, -button.yt-uix-button-epic-nav-item:hover, -html[it-theme=true] .epic-nav-item-heading, -html[it-theme=true] .epic-nav-item.selected, -html[it-theme=true] .epic-nav-item.yt-uix-button-toggled, -html[it-theme=true] .epic-nav-item:hover -{ - border-color: #cc181e!important; -} -a.yt-uix-button-epic-nav-item.partially-selected -{ - border-color: var(--yt-swatch-text)!important; -} -a.yt-uix-button-epic-nav-item.selected, -a.yt-uix-button-epic-nav-item.yt-uix-button-toggled, -button.yt-uix-button-epic-nav-item.selected, -button.yt-uix-button-epic-nav-item.yt-uix-button-toggled, -html[it-theme=true] .epic-nav-item-heading, -html[it-theme=true] .epic-nav-item.selected, -html[it-theme=true] .epic-nav-item.yt-uix-button-toggled -{ - color: var(--yt-swatch-text)!important; -} -h1.yt, -h2.yt, -h2.yt small, -h3.yt, -h4.yt, -h4.yt small, -h5.yt, -h6.yt, -h6.yt small, -html[it-theme=true] .feed-header-feed-filter .yt-uix-button-epic-nav-item.selected, -html[it-theme=true] .like-button-renderer span, -html[it-theme=true] .secondary-nav.epic-nav-item:hover, -html[it-theme=true] .secondary-nav.yt-uix-button-epic-nav-item:hover, -html[it-theme=true] .yt-badge-list, -html[it-theme=true] .yt-default h1, -html[it-theme=true] .yt-default h2, -html[it-theme=true] .yt-default h2 small, -html[it-theme=true] .yt-default h3, -html[it-theme=true] .yt-default h4, -html[it-theme=true] .yt-default h4 small, -html[it-theme=true] .yt-default h5, -html[it-theme=true] .yt-default h6, -html[it-theme=true] .yt-default h6 small, -html[it-theme=true] .yt-lockup, -html[it-theme=true] .yt-lockup .yt-lockup-byline a, -html[it-theme=true] .yt-lockup .yt-lockup-description a, -html[it-theme=true] .yt-lockup .yt-lockup-meta a, -html[it-theme=true] .yt-ui-menu-item -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-ui-menu-content -{ - border: 1px solid var(--yt-swatch-primary)!important; - background: var(--yt-swatch-primary)!important; - -webkit-box-shadow: 0 2px 4px rgba(0,0,0,.2); - box-shadow: 0 2px 4px rgba(0,0,0,.2); -} -html[it-theme=true] .yt-ui-menu-item:hover, -html[it-theme=true] .yt-uix-menu-trigger-selected .yt-ui-menu-item -{ - color: var(--yt-swatch-text)!important; - background: rgba(255,255,255,.1)!important; -} -html[it-theme=true] .yt-ui-menu-item:focus -{ - background: #eee; -} -html[it-theme=true] .yt-ui-menu-content li.yt-ui-menu-new-section-separator, -html[it-theme=true] .yt-uix-button-menu li.yt-uix-button-menu-new-section-separator -{ - border-top: 1px solid #b8b8b8; -} -html[it-theme=true] .yt-lockup .yt-lockup-byline.polymer-byline a, -html[it-theme=true] .yt-lockup .yt-lockup-byline.polymer-byline a:hover -{ - color: #111; -} -html[it-theme=true] .like-button-renderer-like-button.yt-uix-button-toggled .yt-uix-button-content, -html[it-theme=true] .like-button-renderer-like-button:active .yt-uix-button-content, -html[it-theme=true] .yt-lockup-mini:hover .yt-lockup-title, -html[it-theme=true] .yt-lockup-title a, -html[it-theme=true] .yt-lockup-title a .yt-deemphasized-text, -html[it-theme=true] .yt-lockup:hover .yt-lockup-description a, -html[it-theme=true] .yt-lockup:hover .yt-lockup-meta a, -html[it-theme=true] .yt-lockup:hover a -{ - color: #167ac6; -} -html[it-theme=true] .yt-lockup-title a.polymer-title-link -{ - color: #111; -} -html[it-theme=true] .yt-default .yt-notes, -html[it-theme=true] .yt-default ol, -html[it-theme=true] .yt-default p, -html[it-theme=true] .yt-default ul, -html[it-theme=true] .yt-lockup .yt-lockup-meta b, -html[it-theme=true] .yt-lockup-actor .yt-lockup-title a, -html[it-theme=true] .yt-lockup-mini .yt-lockup-title, -html[it-theme=true] .yt-lockup-notification .yt-lockup-title a, -ol.yt, -p.yt, -p.yt-notes, -ul.yt -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-lockup-playlist-item -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-lockup-notification .unread-dot -{ - background: #167ac6; -} -html[it-theme=true] .yt-horizontal-rule -{ - border-top: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-thumb -{ - background: #1c2022!important; -} -html[it-theme=true] .video-time, -html[it-theme=true] .watched-badge -{ - background-color: #000; -} -html[it-theme=true] .video-time -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .resume-playback-background -{ - background: #eee; -} -html[it-theme=true] .resume-playback-progress-bar -{ - background: #e62117; -} -html[it-theme=true] .video-time-overlay -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .inline-playback-metadata-renderer-byline a, -html[it-theme=true] .inline-playback-metadata-renderer-title, -html[it-theme=true] .inline-playback-metadata-renderer-viewcount, -html[it-theme=true] .share-button-renderer-panel-container .share-panel-url, -html[it-theme=true] .yt-uix-button-short, -html[it-theme=true] .yt-uix-button-size-small -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .video-time-overlay-live -{ - background-color: #e62117; -} -html[it-theme=true] .video-time-overlay-default, -html[it-theme=true] .video-time-overlay-upcoming -{ - background-color: #000; -} -html[it-theme=true] .yt-uix-button -{ - -webkit-box-shadow: 0 1px 0 rgba(0,0,0,.05); - box-shadow: 0 1px 0 rgba(0,0,0,.05); -} -html[it-theme=true] .yt-uix-button-focused, -html[it-theme=true] .yt-uix-button-focused:hover, -html[it-theme=true] .yt-uix-button:focus, -html[it-theme=true] .yt-uix-button:focus:hover -{ - -webkit-box-shadow: 0 0 0 2px rgba(27,127,204,.4); - box-shadow: 0 0 0 2px rgba(27,127,204,.4); -} -html[it-theme=true] .yt-uix-button-default.yt-uix-button-active, -html[it-theme=true] .yt-uix-button-default.yt-uix-button-active:focus, -html[it-theme=true] .yt-uix-button-default.yt-uix-button-toggled, -html[it-theme=true] .yt-uix-button-default.yt-uix-button-toggled:hover, -html[it-theme=true] .yt-uix-button-default:active, -html[it-theme=true] .yt-uix-button-default:hover, -html[it-theme=true] .yt-uix-button-text:active, -html[it-theme=true] .yt-uix-button-text:hover -{ - border-color: var(--yt-swatch-primary)!important; - background: var(--yt-swatch-primary)!important; - -webkit-box-shadow: none!important; - box-shadow: none!important; -} -html[it-theme=true] .comment-simplebox-renderer-collapsed-content, -html[it-theme=true] .search-header -{ - border-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-uix-button-default, -html[it-theme=true] .yt-uix-button-default[disabled], -html[it-theme=true] .yt-uix-button-default[disabled]:active, -html[it-theme=true] .yt-uix-button-default[disabled]:focus, -html[it-theme=true] .yt-uix-button-default[disabled]:hover -{ - color: var(--yt-swatch-text)!important; - border-color: var(--yt-swatch-primary)!important; - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-uix-button-primary, -html[it-theme=true] .yt-uix-button-primary[disabled], -html[it-theme=true] .yt-uix-button-primary[disabled]:active, -html[it-theme=true] .yt-uix-button-primary[disabled]:focus, -html[it-theme=true] .yt-uix-button-primary[disabled]:hover -{ - color: var(--yt-swatch-text); - border-color: var(--yt-swatch-primary)!important; - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-uix-button-primary:hover -{ - background: #126db3; -} -html[it-theme=true] .yt-uix-button-primary.yt-uix-button-active, -html[it-theme=true] .yt-uix-button-primary.yt-uix-button-active:focus, -html[it-theme=true] .yt-uix-button-primary.yt-uix-button-toggled, -html[it-theme=true] .yt-uix-button-primary:active -{ - background: #095b99; - -webkit-box-shadow: none!important; - box-shadow: none!important; -} -html[it-theme=true] .yt-uix-button-destructive, -html[it-theme=true] .yt-uix-button-destructive[disabled], -html[it-theme=true] .yt-uix-button-destructive[disabled]:active, -html[it-theme=true] .yt-uix-button-destructive[disabled]:focus, -html[it-theme=true] .yt-uix-button-destructive[disabled]:hover -{ - color: var(--yt-swatch-text); - border-color: #cc181e; - background: #cc181e; -} -html[it-theme=true] .yt-uix-button-destructive:hover -{ - background: #b31217; -} -html[it-theme=true] .yt-uix-button-destructive.yt-uix-button-active, -html[it-theme=true] .yt-uix-button-destructive.yt-uix-button-active:focus, -html[it-theme=true] .yt-uix-button-destructive.yt-uix-button-toggled, -html[it-theme=true] .yt-uix-button-destructive:active -{ - background: #990c11; - -webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,.5); - box-shadow: inset 0 1px 0 rgba(0,0,0,.5); -} -html[it-theme=true] .yt-uix-button-dark, -html[it-theme=true] .yt-uix-button-dark[disabled], -html[it-theme=true] .yt-uix-button-dark[disabled]:active, -html[it-theme=true] .yt-uix-button-dark[disabled]:focus, -html[it-theme=true] .yt-uix-button-dark[disabled]:hover -{ - color: var(--yt-swatch-text); - border-color: var(--yt-swatch-text)!important; - background: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-button-dark:hover -{ - background: #3c3c3c; -} -html[it-theme=true] .yt-uix-button-dark.yt-uix-button-active, -html[it-theme=true] .yt-uix-button-dark.yt-uix-button-active:focus, -html[it-theme=true] .yt-uix-button-dark.yt-uix-button-toggled, -html[it-theme=true] .yt-uix-button-dark:active -{ - background: var(--yt-swatch-primary)!important; - -webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,.5); - box-shadow: inset 0 1px 0 rgba(0,0,0,.5); -} -html[it-theme=true] .yt-uix-button-light, -html[it-theme=true] .yt-uix-button-light[disabled], -html[it-theme=true] .yt-uix-button-light[disabled]:active, -html[it-theme=true] .yt-uix-button-light[disabled]:focus, -html[it-theme=true] .yt-uix-button-light[disabled]:hover -{ - color: var(--yt-swatch-text); - border-color: var(--yt-swatch-text); - background: #666; -} -html[it-theme=true] .yt-uix-button-light:hover -{ - background: #6f6f6f; -} -html[it-theme=true] .yt-uix-button-light.yt-uix-button-active, -html[it-theme=true] .yt-uix-button-light.yt-uix-button-active:focus, -html[it-theme=true] .yt-uix-button-light.yt-uix-button-toggled, -html[it-theme=true] .yt-uix-button-light:active -{ - background: #4d4d3d; - -webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,.5); - box-shadow: inset 0 1px 0 rgba(0,0,0,.5); -} -html[it-theme=true] .yt-uix-button-payment, -html[it-theme=true] .yt-uix-button-payment[disabled], -html[it-theme=true] .yt-uix-button-payment[disabled]:active, -html[it-theme=true] .yt-uix-button-payment[disabled]:focus, -html[it-theme=true] .yt-uix-button-payment[disabled]:hover -{ - color: var(--yt-swatch-text); - border-color: #61ad15; - background: #61ad15; -} -html[it-theme=true] .yt-uix-button-blue-text[disabled], -html[it-theme=true] .yt-uix-button-text, -html[it-theme=true] .yt-uix-button-text[disabled] -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-button-payment:hover -{ - background: #54900f; -} -html[it-theme=true] .yt-uix-button-payment.yt-uix-button-active, -html[it-theme=true] .yt-uix-button-payment.yt-uix-button-active:focus, -html[it-theme=true] .yt-uix-button-payment.yt-uix-button-toggled, -html[it-theme=true] .yt-uix-button-payment:active -{ - background: #478509; - -webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,.5); - box-shadow: inset 0 1px 0 rgba(0,0,0,.5); -} -html[it-theme=true] .yt-uix-button-blue-text, -html[it-theme=true] .yt-uix-button-link -{ - color: #167ac6; -} -html[it-theme=true] .shelf-annotation, -html[it-theme=true] .shelf-description, -html[it-theme=true] .yt-uix-button-menu .yt-uix-button-menu-item -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-button-arrow -{ - border-top-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-button-reverse .yt-uix-button-arrow -{ - border-bottom-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-button-dark .yt-uix-button-arrow, -html[it-theme=true] .yt-uix-button-destructive .yt-uix-button-arrow, -html[it-theme=true] .yt-uix-button-light .yt-uix-button-arrow, -html[it-theme=true] .yt-uix-button-payment .yt-uix-button-arrow, -html[it-theme=true] .yt-uix-button-primary .yt-uix-button-arrow -{ - border-top-color: var(--yt-swatch-text); -} -html[it-theme=true] .yt-uix-button-dark.yt-uix-button-reverse .yt-uix-button-arrow, -html[it-theme=true] .yt-uix-button-destructive.yt-uix-button-reverse .yt-uix-button-arrow, -html[it-theme=true] .yt-uix-button-light.yt-uix-button-reverse .yt-uix-button-arrow, -html[it-theme=true] .yt-uix-button-payment.yt-uix-button-reverse .yt-uix-button-arrow, -html[it-theme=true] .yt-uix-button-primary.yt-uix-button-reverse .yt-uix-button-arrow -{ - border-bottom-color: var(--yt-swatch-text); -} -html[it-theme=true] .yt-uix-button-menu -{ - border: 1px solid var(--yt-swatch-primary)!important; - background: var(--yt-swatch-primary)!important; - -webkit-box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12); - box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12); -} -html[it-theme=true] .yt-uix-button-menu .yt-uix-button-menu-item-highlight .yt-uix-button-menu-item, -html[it-theme=true] .yt-uix-button-menu .yt-uix-button-menu-item.selected -{ - color: var(--yt-swatch-text); - background-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-button-menu .yt-uix-button-menu-item:hover -{ - color: var(--yt-swatch-text)!important; - background-color: rgba(255,255,255,.1)!important; -} -div.yt-uix-button-menu > table -{ - background: #ebebeb; -} -html[it-theme=true] .yt-uix-button-livereminder-set, -html[it-theme=true] .yt-uix-button-livereminder-set:hover -{ - color: var(--yt-swatch-text); - border-color: #167ac6; - background: #167ac6; -} -html[it-theme=true] .yt-uix-tabs-tab.epic-nav-item.disabled -{ - color: #ccc; -} -html[it-theme=true] .yt-uix-button-subscribe-branded, -html[it-theme=true] .yt-uix-button-subscribe-branded[disabled], -html[it-theme=true] .yt-uix-button-subscribe-branded[disabled]:active, -html[it-theme=true] .yt-uix-button-subscribe-branded[disabled]:focus, -html[it-theme=true] .yt-uix-button-subscribe-branded[disabled]:hover -{ - color: #fefefe; - background-color: #e62117; -} -html[it-theme=true] .yt-uix-button-subscribe-branded:hover -{ - background-color: #cc181e; -} -html[it-theme=true] .yt-uix-button-subscribe-branded.yt-is-buffered, -html[it-theme=true] .yt-uix-button-subscribe-branded.yt-uix-button-active, -html[it-theme=true] .yt-uix-button-subscribe-branded.yt-uix-button-toggled, -html[it-theme=true] .yt-uix-button-subscribe-branded:active, -html[it-theme=true] .yt-uix-button-subscribed-branded.external, -html[it-theme=true] .yt-uix-button-subscribed-branded.external.yt-uix-button-active, -html[it-theme=true] .yt-uix-button-subscribed-branded.external.yt-uix-button-toggled, -html[it-theme=true] .yt-uix-button-subscribed-branded.external:active, -html[it-theme=true] .yt-uix-button-subscribed-branded.external[disabled] -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-uix-button-subscribe-unbranded, -html[it-theme=true] .yt-uix-button-subscribe-unbranded[disabled], -html[it-theme=true] .yt-uix-button-subscribe-unbranded[disabled]:active, -html[it-theme=true] .yt-uix-button-subscribe-unbranded[disabled]:focus, -html[it-theme=true] .yt-uix-button-subscribe-unbranded[disabled]:hover -{ - color: var(--yt-swatch-text)!important; - border: 1px solid var(--yt-swatch-primary)!important; - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-uix-button-subscribe-unbranded:hover -{ - border-color: #bfbfbf; - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-uix-button-subscribe-unbranded.yt-is-buffered, -html[it-theme=true] .yt-uix-button-subscribe-unbranded.yt-uix-button-active, -html[it-theme=true] .yt-uix-button-subscribe-unbranded.yt-uix-button-toggled, -html[it-theme=true] .yt-uix-button-subscribe-unbranded:active -{ - border-color: #bfbfbf; - background-color: #ededed; -} -html[it-theme=true] .yt-uix-button-subscribed-branded, -html[it-theme=true] .yt-uix-button-subscribed-branded[disabled], -html[it-theme=true] .yt-uix-button-subscribed-branded[disabled]:active, -html[it-theme=true] .yt-uix-button-subscribed-branded[disabled]:focus, -html[it-theme=true] .yt-uix-button-subscribed-branded[disabled]:hover, -html[it-theme=true] .yt-uix-button-subscribed-unbranded, -html[it-theme=true] .yt-uix-button-subscribed-unbranded[disabled], -html[it-theme=true] .yt-uix-button-subscribed-unbranded[disabled]:active, -html[it-theme=true] .yt-uix-button-subscribed-unbranded[disabled]:focus, -html[it-theme=true] .yt-uix-button-subscribed-unbranded[disabled]:hover -{ - color: var(--yt-swatch-text)!important; - border: 1px solid var(--yt-swatch-primary)!important; - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-uix-button-subscribed-branded.yt-uix-button-active, -html[it-theme=true] .yt-uix-button-subscribed-branded.yt-uix-button-toggled, -html[it-theme=true] .yt-uix-button-subscribed-branded:active, -html[it-theme=true] .yt-uix-button-subscribed-unbranded.yt-uix-button-active, -html[it-theme=true] .yt-uix-button-subscribed-unbranded.yt-uix-button-toggled, -html[it-theme=true] .yt-uix-button-subscribed-unbranded:active -{ - background-color: #ededed; -} -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled, -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled[disabled], -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled[disabled]:active, -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled[disabled]:focus, -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled[disabled]:hover -{ - background-color: #61ad15; -} -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled:hover -{ - background-color: #54990f; -} -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled.yt-is-buffered, -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled.yt-uix-button-active, -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled.yt-uix-button-toggled, -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled:active -{ - background-color: #478509; -} -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled.ypc-music-subscription-button, -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled.ypc-music-subscription-button[disabled], -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled.ypc-music-subscription-button[disabled]:active, -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled.ypc-music-subscription-button[disabled]:focus, -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled.ypc-music-subscription-button[disabled]:hover -{ - color: var(--yt-swatch-text); - border-color: #167ac6; - background: #167ac6; -} -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled.ypc-music-subscription-button:hover -{ - background: #126db3; -} -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled.ypc-music-subscription-button.yt-is-buffered, -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled.ypc-music-subscription-button.yt-uix-button-active, -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled.ypc-music-subscription-button.yt-uix-button-toggled, -html[it-theme=true] .yt-uix-button-subscribe-branded.ypc-enabled.ypc-music-subscription-button:active -{ - background: #095b99; - -webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,.5); - box-shadow: inset 0 1px 0 rgba(0,0,0,.5); -} -html[it-theme=true] .yt-uix-button-subscribed-branded.external -{ - color: #fefefe; -} -html[it-theme=true] .yt-subscription-button-subscriber-count-unbranded-horizontal .watch-view-count, -html[it-theme=true] .yt-uix-clickcard-card-body, -html[it-theme=true] .yt-uix-hovercard-card-body -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-subscription-button-subscriber-count-branded-horizontal, -html[it-theme=true] .yt-subscription-button-subscriber-count-unbranded-horizontal -{ - border: 1px solid var(--yt-swatch-primary)!important; - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-uix-clickcard-card, -html[it-theme=true] .yt-uix-hovercard-card -{ - background: var(--yt-swatch-primary)!important; - -webkit-box-shadow: 0 0 15px rgba(0,0,0,.18); - box-shadow: 0 0 15px rgba(0,0,0,.18); -} -html[it-theme=true] .yt-uix-card-border-arrow-horizontal -{ - border-left-color: #c5c5c5; -} -html[it-theme=true] .yt-uix-card-body-arrow-horizontal -{ - border-left-color: var(--yt-swatch-text); -} -html[it-theme=true] .yt-uix-card-border-arrow-vertical -{ - border-top-color: #c5c5c5; -} -html[it-theme=true] #ie .yt-uix-card-body-arrow-vertical, -html[it-theme=true] .yt-uix-card-body-arrow-vertical -{ - border-top-color: var(--yt-swatch-text); -} -html[it-theme=true] .yt-uix-clickcard-card-flip .yt-uix-card-body-arrow-horizontal, -html[it-theme=true] .yt-uix-clickcard-card-flip .yt-uix-card-border-arrow-horizontal, -html[it-theme=true] .yt-uix-hovercard-card-flip .yt-uix-card-body-arrow-horizontal, -html[it-theme=true] .yt-uix-hovercard-card-flip .yt-uix-card-border-arrow-horizontal -{ - border-right-width: 12px; - border-left-width: 0; -} -html[it-theme=true] .yt-uix-clickcard-card-flip .yt-uix-card-border-arrow-horizontal, -html[it-theme=true] .yt-uix-hovercard-card-flip .yt-uix-card-border-arrow-horizontal -{ - border-right-color: #c5c5c5; -} -html[it-theme=true] .yt-uix-clickcard-card-flip .yt-uix-card-body-arrow-horizontal, -html[it-theme=true] .yt-uix-hovercard-card-flip .yt-uix-card-body-arrow-horizontal -{ - border-right-color: var(--yt-swatch-text); -} -html[it-theme=true] .yt-uix-clickcard-card-reverse .yt-uix-card-border-arrow-vertical, -html[it-theme=true] .yt-uix-hovercard-card-reverse .yt-uix-card-border-arrow-vertical -{ - border-bottom-color: #c5c5c5; -} -html[it-theme=true] .yt-uix-clickcard-card-border -{ - border-color: var(--yt-swatch-primary)!important; - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-uix-clickcard-promo .yt-uix-card-body-arrow-vertical -{ - border-top-color: #2793e6; -} -html[it-theme=true] .yt-uix-clickcard-promo .yt-uix-card-body-arrow-horizontal -{ - border-right-color: #2793e6; -} -html[it-theme=true] .yt-uix-clickcard-promo.yt-uix-clickcard-card-reverse .yt-uix-card-body-arrow-vertical -{ - border-bottom-color: #2793e6; -} -html[it-theme=true] .yt-uix-clickcard-promo .yt-uix-clickcard-card-body -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .yt-uix-form-label, -html[it-theme=true] .yt-uix-form-legend -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-form-error -{ - color: #e52d27; -} -html[it-theme=true] .service-endpoint-replace-enclosing-action-notification, -html[it-theme=true] .yt-dialog-fg-content .yt-dialog-title, -html[it-theme=true] .yt-uix-overlay-fg-content .yt-dialog-title -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-form-error .yt-uix-form-input-checkbox-element, -html[it-theme=true] .yt-uix-form-error .yt-uix-form-input-radio-element, -html[it-theme=true] .yt-uix-form-error input, -html[it-theme=true] .yt-uix-form-error input:hover, -html[it-theme=true] .yt-uix-form-error textarea, -html[it-theme=true] .yt-uix-form-error textarea:hover, -html[it-theme=true] .yt-uix-form-error.yt-uix-form-input-checkbox-container:hover .yt-uix-form-input-checkbox-element, -html[it-theme=true] .yt-uix-form-error.yt-uix-form-input-radio-container:hover .yt-uix-form-input-radio-element -{ - border-color: #e52d27; -} -html[it-theme=true] .yt-uix-form-input-select, -html[it-theme=true] .yt-uix-form-input-text, -html[it-theme=true] .yt-uix-form-input-textarea -{ - color: var(--yt-swatch-text)!important; - border: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-uix-form-input-checkbox-container:hover .yt-uix-form-input-checkbox-element, -html[it-theme=true] .yt-uix-form-input-radio-container:hover .yt-uix-form-input-radio-element, -html[it-theme=true] .yt-uix-form-input-select:hover, -html[it-theme=true] .yt-uix-form-input-text:hover, -html[it-theme=true] .yt-uix-form-input-textarea:hover -{ - border-color: #b9b9b9; -} -html[it-theme=true] .yt-uix-form-input-checkbox-element, -html[it-theme=true] .yt-uix-form-input-radio-element, -html[it-theme=true] .yt-uix-form-input-text, -html[it-theme=true] .yt-uix-form-input-textarea -{ - -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,.05); - box-shadow: inset 0 0 1px rgba(0,0,0,.05); -} -html[it-theme=true] .yt-uix-form-input-checkbox:focus .yt-uix-form-input-checkbox-element, -html[it-theme=true] .yt-uix-form-input-radio:focus .yt-uix-form-input-radio-element, -html[it-theme=true] .yt-uix-form-input-select.focused, -html[it-theme=true] .yt-uix-form-input-text:focus, -html[it-theme=true] .yt-uix-form-input-textarea:focus -{ - border-color: #167ac6; - -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,.1); - box-shadow: inset 0 0 1px rgba(0,0,0,.1); -} -html[it-theme=true] .yt-uix-form-input-select -{ - background-color: #f8f8f8; -} -html[it-theme=true] .yt-uix-form-input-select-arrow -{ - border-top-color: var(--yt-swatch-text); -} -html[it-theme=true] .yt-uix-form-input-text::-webkit-input-placeholder, -html[it-theme=true] .yt-uix-form-input-textarea::-webkit-input-placeholder -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-form-input-text:-moz-placeholder, -html[it-theme=true] .yt-uix-form-input-text::-moz-placeholder, -html[it-theme=true] .yt-uix-form-input-textarea:-moz-placeholder, -html[it-theme=true] .yt-uix-form-input-textarea::-moz-placeholder -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-form-input-placeholder, -html[it-theme=true] .yt-uix-form-input-text:-ms-input-placeholder, -html[it-theme=true] .yt-uix-form-input-textarea:-ms-input-placeholder -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-form-input-checkbox-container input:checked .yt-uix-form-input-checkbox-element -{ - border: 1px solid #36649c; -} -html[it-theme=true] .yt-uix-form-input-checkbox-element, -html[it-theme=true] .yt-uix-form-input-radio-element -{ - border: 1px solid #c6c6c6; -} -html[it-theme=true] .yt-uix-form-input-checkbox-container input:focus .yt-uix-form-input-checkbox-element, -html[it-theme=true] .yt-uix-form-input-radio-container input:focus .yt-uix-form-input-radio-element -{ - border: 1px solid #4496e7; -} -html[it-theme=true] .yt-uix-checkbox-on-off label -{ - background: #b8b8b8; -} -html[it-theme=true] .yt-uix-checkbox-on-off input[type=checkbox]:checked label -{ - background-color: #167ac6; -} -html[it-theme=true] .yt-uix-checkbox-on-off .toggle -{ - background: #fbfbfb; -} -html[it-theme=true] .yt-uix-form-input-paper-toggle-bar -{ - background-color: #000; -} -html[it-theme=true] .yt-uix-form-input-paper-toggle-button -{ - background-color: var(--yt-swatch-text)!important; - -webkit-box-shadow: 0 1px 5px 0 rgba(0,0,0,.4); - box-shadow: 0 1px 5px 0 rgba(0,0,0,.4); -} -html[it-theme=true] .yt-uix-form-input-paper-toggle-container.checked .yt-uix-form-input-paper-toggle-bg -{ - background-color: #4285f4; -} -html[it-theme=true] .no-focus-outline .yt-dialog-fg:focus, -html[it-theme=true] .yt-dialog-base .yt-uix-button-menu, -html[it-theme=true] .yt-uix-overlay-base .yt-uix-button-menu -{ - background: var(--yt-swatch-primary)!important; - -webkit-box-shadow: 0 0 15px rgba(0,0,0,.18); - box-shadow: 0 0 15px rgba(0,0,0,.18); -} -html[it-theme=true] .yt-dialog-fg:focus -{ - -webkit-box-shadow: 0 0 0 2px rgba(27,127,204,.4); - box-shadow: 0 0 0 2px rgba(27,127,204,.4); -} -html[it-theme=true] .yt-dialog-bg, -html[it-theme=true] .yt-uix-overlay-bg -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-dialog-waiting-text, -html[it-theme=true] .yt-uix-overlay-primary .yt-dialog-header h2 -{ - color: #000; -} -html[it-theme=true] .yt-dialog-fg-content .close-small, -html[it-theme=true] .yt-uix-overlay-fg-content .close-small -{ - background-color: #ccc; -} -html[it-theme=true] .yt-dialog-working-overlay -{ - border: 1px solid var(--yt-swatch-text); - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-dialog-working-bubble -{ - border: 1px solid #ddd; -} -html[it-theme=true] .yt-uix-overlay-simple .yt-dialog-header -{ - background: #1c2022!important; -} -html[it-theme=true] .yt-dialog-working-bubble, -html[it-theme=true] .yt-uix-overlay-primary .yt-dialog-header -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-uix-slider-next-arrow -{ - border-left-color: #999; -} -html[it-theme=true] .yt-uix-slider-prev-arrow -{ - border-right-color: #999; -} -html[it-theme=true] .yt-uix-button:focus .yt-uix-slider-next-arrow, -html[it-theme=true] .yt-uix-button:hover .yt-uix-slider-next-arrow -{ - border-left-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-button:focus .yt-uix-slider-prev-arrow, -html[it-theme=true] .yt-uix-button:hover .yt-uix-slider-prev-arrow -{ - border-right-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-button[disabled]:focus .yt-uix-slider-next-arrow, -html[it-theme=true] .yt-uix-button[disabled]:hover .yt-uix-slider-next-arrow -{ - border-left-color: #999; -} -html[it-theme=true] .yt-uix-button[disabled]:focus .yt-uix-slider-prev-arrow, -html[it-theme=true] .yt-uix-button[disabled]:hover .yt-uix-slider-prev-arrow -{ - border-right-color: #999; -} -html[it-theme=true] .yt-tile-default, -html[it-theme=true] .yt-tile-default a, -html[it-theme=true] .yt-tile-default h3, -html[it-theme=true] .yt-tile-default h3 a, -html[it-theme=true] .yt-tile-static, -html[it-theme=true] .yt-tile-visible, -html[it-theme=true] .yt-tile-visible a, -html[it-theme=true] .yt-tile-visible h3, -html[it-theme=true] .yt-tile-visible h3 a -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-tile-default h3 a:visited, -html[it-theme=true] .yt-tile-visible h3 a:visited -{ - color: #036!important; -} -html[it-theme=true] .yt-tile-default:hover, -html[it-theme=true] .yt-tile-static, -html[it-theme=true] .yt-tile-visible -{ - background: var(--yt-swatch-primary)!important; - -webkit-box-shadow: 0 1px 2px #ccc; - box-shadow: 0 1px 2px #ccc; -} -html[it-theme=true] #ie .yt-tile-default:hover, -html[it-theme=true] #ie .yt-tile-static, -html[it-theme=true] #ie .yt-tile-visible -{ - border-bottom: 2px solid #ccc; -} -html[it-theme=true] #ie .yt-tile-visible:hover -{ - border-bottom-color: #aaa; -} -html[it-theme=true] .yt-tile-default:hover a, -html[it-theme=true] .yt-tile-static a, -html[it-theme=true] .yt-tile-visible:hover a -{ - color: #167ac6; -} -html[it-theme=true] .yt-uix-range-tooltip-tip-arrow, -html[it-theme=true] .yt-uix-tooltip-tip-arrow, -html[it-theme=true] .yt-uix-tooltip-tip-mask .yt-uix-tooltip-tip-body .yt-uix-tooltip-tip-arrow -{ - border-top-color: #000; -} -html[it-theme=true] .yt-uix-range-tooltip-tip-content, -html[it-theme=true] .yt-uix-tooltip-tip-content -{ - color: var(--yt-swatch-text); - background: #000; - -webkit-box-shadow: 0 1px 1px rgba(0,0,0,.25); - box-shadow: 0 1px 1px rgba(0,0,0,.25); -} -html[it-theme=true] .yt-uix-tooltip-tip-reverse .yt-uix-tooltip-tip-arrow -{ - border-color: transparent transparent #000; -} -html[it-theme=true] .captcha-image -{ - border: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .captcha-input-label -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .captcha-help -{ - color: #4272db; -} -html[it-theme=true] #hats-container.hats-categorical-style-horizontal, -html[it-theme=true] #hats-container.hats-categorical-style-vertical -{ - background-color: var(--yt-swatch-primary)!important; - -webkit-box-shadow: 0 8px 32px 0 rgba(0,0,0,.5); - box-shadow: 0 8px 32px 0 rgba(0,0,0,.5); -} -html[it-theme=true] .hats-header -{ - background-color: #3d3d3d; -} -html[it-theme=true] .hats-categorical-style-horizontal .hats-header, -html[it-theme=true] .hats-categorical-style-vertical .hats-header -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .hats-thanks, -html[it-theme=true] .hats-title -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .hats-categorical-style-horizontal .hats-thanks, -html[it-theme=true] .hats-categorical-style-horizontal .hats-title, -html[it-theme=true] .hats-categorical-style-vertical .hats-thanks, -html[it-theme=true] .hats-categorical-style-vertical .hats-title -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .hats-dismiss-button, -html[it-theme=true] .hats-dismiss-button:active, -html[it-theme=true] .hats-dismiss-button:hover, -html[it-theme=true] .hats-thanks a -{ - color: #03a9f4; -} -html[it-theme=true] .hats-content -{ - background-color: #e9e9e9; -} -html[it-theme=true] .hats-categorical-style-horizontal .hats-content, -html[it-theme=true] .hats-categorical-style-vertical .hats-content -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .hats-categorical-style-horizontal .hats-option:hover, -html[it-theme=true] .hats-categorical-style-vertical .hats-option:hover, -html[it-theme=true] .offer-module-menu > span:hover -{ - background-color: #eee; -} -html[it-theme=true] .hats-categorical-style-horizontal .hats-submit-text-button:active, -html[it-theme=true] .hats-categorical-style-horizontal .hats-submit-text-button:hover, -html[it-theme=true] .hats-categorical-style-vertical .hats-submit-text-button:active, -html[it-theme=true] .hats-categorical-style-vertical .hats-submit-text-button:hover, -html[it-theme=true] .yt-commentbox-text -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .hats-categorical-style-horizontal .hats-option, -html[it-theme=true] .hats-categorical-style-vertical .hats-option -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .hats-categorical-style-horizontal .hats-submit-text-button, -html[it-theme=true] .hats-categorical-style-horizontal .hats-submit-text-button[disabled], -html[it-theme=true] .hats-categorical-style-horizontal .hats-submit-text-button[disabled]:hover, -html[it-theme=true] .hats-categorical-style-vertical .hats-submit-text-button, -html[it-theme=true] .hats-categorical-style-vertical .hats-submit-text-button[disabled], -html[it-theme=true] .hats-categorical-style-vertical .hats-submit-text-button[disabled]:hover -{ - color: #4285f4; -} -html[it-theme=true] #watch-discussion #comments-view .comment-actions, -html[it-theme=true] #watch-discussion #comments-view .comment-actions .yt-uix-button, -html[it-theme=true] #watch-discussion #comments-view .comment-text a, -html[it-theme=true] #watch-discussion #comments-view .metadata, -html[it-theme=true] #watch-discussion #comments-view .stat, -html[it-theme=true] #watch-discussion #comments-view .time a, -html[it-theme=true] #watch-discussion #comments-view .time a:hover, -html[it-theme=true] #watch-discussion #comments-view h4, -html[it-theme=true] #watch-discussion #comments-view h4 a, -html[it-theme=true] #watch-discussion .comments-disabled-message, -html[it-theme=true] #watch-discussion .comments-remaining, -html[it-theme=true] #watch-discussion .comments-textarea-container label, -html[it-theme=true] .hats-categorical-style-horizontal .hats-legend, -html[it-theme=true] .hats-categorical-style-vertical .hats-legend, -html[it-theme=true] .yt-commentbox-text -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-commentbox-arrow-inner -{ - border: 7px solid var(--yt-swatch-text); -} -html[it-theme=true] .yt-commentbox-arrow-outer -{ - border: 6px solid #ddd; -} -html[it-theme=true] .yt-commentbox-text -{ - border: 1px solid #ddd; - -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,.05); - box-shadow: inset 0 0 1px rgba(0,0,0,.05); -} -html[it-theme=true] .yt-commentbox-text:focus -{ - border-color: #167ac6; - -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,.1); - box-shadow: inset 0 0 1px rgba(0,0,0,.1); -} -html[it-theme=true] .yt-commentbox-text:focus .yt-commentbox-arrow .yt-commentbox-arrow-outer -{ - border-top-color: #167ac6; - border-right-color: #167ac6; -} -html[it-theme=true] .live-comments-emoji-picker-tab-row -{ - border-bottom: 1px solid #000; - background-color: #fafafa; -} -html[it-theme=true] .live-comments-emoji-button:focus, -html[it-theme=true] .live-comments-emoji-button:hover -{ - -webkit-box-shadow: 0 0 3px 2px rgba(0,0,0,.15); - box-shadow: 0 0 3px 2px rgba(0,0,0,.15); -} -html[it-theme=true] .live-comments-emoji-picker-tab-cell .live-comments-emoji-type-button.active -{ - background-color: rgba(0,0,0,.3); -} -html[it-theme=true] #watch-discussion #comments-view hr -{ - border-top: 1px solid #e6e6e6; -} -html[it-theme=true] #watch-discussion .comments-post-alert -{ - border: 1px solid var(--yt-swatch-primary)!important; - background: #eee; -} -html[it-theme=true] #watch-discussion .comments-remaining.too-many -{ - color: red; -} -html[it-theme=true] #watch-discussion #comments-view .comment:hover .yt-uix-button, -html[it-theme=true] #watch-discussion #comments-view .comment:hover a -{ - color: #167ac6; -} -html[it-theme=true] .comments .comment-replies-header, -html[it-theme=true] .comments .thumb-title -{ - color: #888; -} -html[it-theme=true] .comments .feedback-banner -{ - background: #fcf4d8; -} -html[it-theme=true] .comments-wait -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .comments .comment-replies-header .hide-comments a, -html[it-theme=true] .comments .comment-replies-header .load-comments a -{ - color: #2793e6; -} -html[it-theme=true] .comments .comment-item .user-photo -{ - background-color: #ddd; -} -html[it-theme=true] .comments .comment-header .user-name -{ - color: #167ac6; -} -html[it-theme=true] .comments .channel-owner .comment-header .user-name -{ - background-color: #dbe4eb; -} -html[it-theme=true] .comments .comment-header .linked-comment -{ - color: var(--yt-swatch-text)!important; - border: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .comments .comment-header .moderation-reason, -html[it-theme=true] .comments .comment-header .spacer, -html[it-theme=true] .comments .comment-header .time, -html[it-theme=true] .comments .comment-header .time a, -html[it-theme=true] .comments .comment-header .tip-given-comment-text, -html[it-theme=true] .comments .comment-header .visibility-link -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .comments .comment-text.long .comment-text-toggle, -html[it-theme=true] .comments .vis-inspect-link -{ - color: #888; -} -html[it-theme=true] .comments .comment-entry:hover .thumb-title, -html[it-theme=true] .comments .comment-entry:hover .vis-inspect-link -{ - color: #128ee9; -} -html[it-theme=true] .comments .comment-item:hover .mod-buttonbar, -html[it-theme=true] .comments .comment-item:hover .mod-buttonbar .mod-button -{ - color: #000; - border-color: #eee; -} -html[it-theme=true] .comments .mod-list, -html[it-theme=true] .comments .paginator -{ - border: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .comments .add-options-separator -{ - background-color: #ccc; -} -html[it-theme=true] .all-comments, -html[it-theme=true] .all-comments a, -html[it-theme=true] .comments .mod-list, -html[it-theme=true] .comments .mod-list-button -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .comments .mod-list-button:hover -{ - color: var(--yt-swatch-text); - background-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .all-comments, -html[it-theme=true] .all-comments a, -html[it-theme=true] .comments .comment-footer-action -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .comment-author-text, -html[it-theme=true] .comments .like-count -{ - color: #128ee9; -} -html[it-theme=true] .comment-renderer-reply, -html[it-theme=true] .comment-renderer-text-content, -html[it-theme=true] .comments .paginator, -html[it-theme=true] .distiller-first-time-promo .text -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .comments .paginator -{ - background-color: #f8f8f8; -} -html[it-theme=true] .comments .paginator:hover -{ - border-color: #c6c6c6; - background-color: #f0f0f0; -} -html[it-theme=true] .distiller-first-time-promo .promo-content -{ - border: 1px solid #ddd; - background-color: var(--yt-swatch-primary)!important; - -webkit-box-shadow: 0 1px 10px rgba(180,180,180,.5); - box-shadow: 0 1px 10px rgba(180,180,180,.5); -} -html[it-theme=true] .distiller-first-time-promo .arrow -{ - border-bottom: 10px solid var(--yt-swatch-text); -} -html[it-theme=true] .distiller-first-time-promo .arrow-border -{ - border-bottom-color: #ccc; -} -html[it-theme=true] .distiller-first-time-promo .dismiss-button -{ - color: var(--yt-swatch-text); - border-color: #167ac6; - background-color: #167ac6; -} -html[it-theme=true] #progress -{ - background: #b91f1f; - -webkit-box-shadow: #b91f1f 1px 0 6px 1px; - box-shadow: #b91f1f 1px 0 6px 1px; -} -html[it-theme=true] #gaming-event-promo-overlay -{ - background-color: var(--yt-swatch-primary)!important; - -webkit-box-shadow: 0 0 4px 0 rgba(0,0,0,.1),0 4px 4px 0 rgba(0,0,0,.2); - box-shadow: 0 0 4px 0 rgba(0,0,0,.1),0 4px 4px 0 rgba(0,0,0,.2); -} -html[it-theme=true] .ad-carousel-nav-button:hover, -html[it-theme=true] .iv-cards-slider .iv-cards-slider-button:hover, -html[it-theme=true] .iv-cards-slider:hover .iv-cards-slider-button, -html[it-theme=true] .promotion-shelf-slot:hover .ad-carousel-nav-button -{ - background-color: var(--yt-swatch-primary)!important; - -webkit-box-shadow: 0 0 2px 0 rgba(0,0,0,.12),0 2px 2px 0 rgba(0,0,0,.24); - box-shadow: 0 0 2px 0 rgba(0,0,0,.12),0 2px 2px 0 rgba(0,0,0,.24); -} -html[it-theme=true] #gaming-event-promo-title, -html[it-theme=true] #watch-description h2, -html[it-theme=true] .ac-renderer .active b -{ - color: #000; -} -html[it-theme=true] #gaming-event-promo-body, -html[it-theme=true] .ads-mute-button:hover -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .ads-mute-button -{ - color: gray; -} -html[it-theme=true] .ads-mute-undo -{ - color: #167ac6; -} -html[it-theme=true] .ads-mute-survey, -html[it-theme=true] .video-list-item a:hover -{ - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .video-list-item a:visited .title -{ - color: #408; -} -html[it-theme=true] .video-list-item .title -{ - color: #03c; -} -html[it-theme=true] .share-email label, -html[it-theme=true] .video-list-item .stat -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .video-list-item .stat .time-created -{ - border-left: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .video-list-item .ux-thumb-wrap .video-count -{ - color: var(--yt-swatch-text); - background: rgba(0,0,0,.8); -} -html[it-theme=true] .iv-cards-companion a, -html[it-theme=true] .video-list .movie-data, -html[it-theme=true] .video-list .video-list-item .description, -html[it-theme=true] .video-list .video-list-item .stat, -html[it-theme=true] .video-list .video-list-item .title, -html[it-theme=true] .video-list-item .stat strong, -html[it-theme=true] .video-list-item .views -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .video-list .video-list-item .title:visited -{ - color: #036; -} -html[it-theme=true] .video-list .yt-thumb-64 .yt-thumb-square -{ - background-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .related-item-dismissed-container -{ - border: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .ac-renderer -{ - color: #03c; - border: 1px solid #999; - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] #watch-actions-stats .stats-bragbar-container, -html[it-theme=true] .iv-cards-companion, -html[it-theme=true] .iv-website-companion, -html[it-theme=true] .offer-module-menu span -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .ac-renderer .active -{ - color: #03c; - background-color: #eff4fc; -} -html[it-theme=true] .share-email label span -{ - color: #999; -} -html[it-theme=true] .share-email-preview-container -{ - background: #1c2022!important; -} -html[it-theme=true] .iv-btp-companion, -html[it-theme=true] .iv-cards-companion, -html[it-theme=true] .iv-website-companion -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .iv-cards-companion a:hover, -html[it-theme=true] .iv-cards-slider-unit:hover .iv-cards-slider-text -{ - color: #2793e6; -} -html[it-theme=true] .iv-cards-slider-unit:hover -{ - -webkit-box-shadow: 0 0 2px 0 rgba(0,0,0,.12),0 2px 2px 0 rgba(0,0,0,.24); - box-shadow: 0 0 2px 0 rgba(0,0,0,.12),0 2px 2px 0 rgba(0,0,0,.24); -} -html[it-theme=true] .iv-btp-title, -html[it-theme=true] .iv-website-companion-domain, -html[it-theme=true] .iv-website-companion-header -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #action-panel-details:hover a, -html[it-theme=true] #watch7-sidebar .related-tweaks-alternate a span.title, -html[it-theme=true] .iv-website-companion:hover .iv-website-companion-header -{ - color: #167ac6; -} -html[it-theme=true] .iv-btp-card:hover .iv-btp-card-headline, -html[it-theme=true] .iv-btp-hovercard:hover .iv-btp-hovercard-headline -{ - color: #2793e6; -} -html[it-theme=true] .iv-btp-card -{ - border-right: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .iv-btp-card-merchant, -html[it-theme=true] .iv-btp-card-merchant-text, -html[it-theme=true] .iv-btp-card-reviews, -html[it-theme=true] .iv-btp-hovercard-headline, -html[it-theme=true] .stats-header .stats-opt-out, -html[it-theme=true] .stats-header p, -html[it-theme=true] .stats-sub-header -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #watch-actions-stats .stats-bragbar -{ - color: var(--yt-swatch-text)!important; - border-color: var(--yt-swatch-primary)!important; - background-color: #f8f8f8; -} -html[it-theme=true] #watch-actions-stats .stats-bragbar-filler -{ - border: 1px solid var(--yt-swatch-primary)!important; - background-color: #f8f8f8; -} -html[it-theme=true] #watch-actions-stats .stats-bragbar:hover -{ - border-color: #c6c6c6; - background-color: #eee; -} -html[it-theme=true] #watch-actions-stats .stats-bragbar.yt-uix-button-toggled -{ - border-color: #bababa; - background-color: #e5e5e5; -} -html[it-theme=true] #watch-actions-stats .metric-label -{ - color: #444; - text-shadow: 0 -1px 0 rgba(255,255,255,.5); -} -html[it-theme=true] #action-panel-add-transcript p, -html[it-theme=true] #action-panel-details a, -html[it-theme=true] #watch-actions-stats .stats-bragbar .bragbar-metric, -html[it-theme=true] #watch-actions-stats .stats-bragbar .bragbar-metric-large, -html[it-theme=true] #watch7-sidebar, -html[it-theme=true] #watch7-sidebar .related-tweaks-alternate a:hover span.title, -html[it-theme=true] .share-panel, -html[it-theme=true] .share-panel-embed-legal, -html[it-theme=true] .share-panel-show-more, -html[it-theme=true] .share-panel-url, -html[it-theme=true] .watch-actions-stats-rats .sub-time, -html[it-theme=true] .watch-actions-stats-rats .sub-views, -html[it-theme=true] .watch-actions-stats-rats .sub-watch-time -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .share-panel .collapsed-message .arrow -{ - border-top-color: #8d8d8d; -} -html[it-theme=true] .share-panel .expanded-message .arrow -{ - border-bottom-color: #8d8d8d; -} -html[it-theme=true] .share-panel-embed-container hr -{ - border-color: #ccc; -} -html[it-theme=true] .trimmer -{ - background-color: #126db3; -} -html[it-theme=true] .trimmer .end-time, -html[it-theme=true] .trimmer .start-time -{ - color: var(--yt-swatch-text); - background: #126db3; -} -html[it-theme=true] .clip-trimmer .grayout -{ - background-color: var(--yt-swatch-primary)!important; - -webkit-box-shadow: inset 0 2px 5px #666; - box-shadow: inset 0 2px 5px #666; -} -html[it-theme=true] .action-panel-error, -html[it-theme=true] .action-panel-loading, -html[it-theme=true] .share-panel-gif-iframe-container, -html[it-theme=true] .share-panel-gif-url-container -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #watch8-action-buttons -{ - border-top: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .alloffers-button, -html[it-theme=true] .movie-upsell-title a:hover -{ - color: #167ac6; -} -html[it-theme=true] .alloffers-button:hover -{ - color: #126db3; -} -html[it-theme=true] #watch-description, -html[it-theme=true] #watch-disclaimer, -html[it-theme=true] #watch-header .yt-user-info a, -html[it-theme=true] #watch-header .yt-user-separator, -html[it-theme=true] .movie-upsell-title a, -html[it-theme=true] .video-extras-likes-dislikes, -html[it-theme=true] .video-extras-likes-dislikes .dislikes -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .video-extras-sparkbar-likes -{ - background: #167ac6; -} -html[it-theme=true] .video-extras-sparkbar-dislikes -{ - background: #ccc; -} -html[it-theme=true] .watch-stage-mode #theater-background, -html[it-theme=true] .watch-stage-mode .alerts-wrapper -{ - background-color: #000; -} -html[it-theme=true] #shared-conversation-header .yt-user-info a -{ - color: #b8b8b8; -} -html[it-theme=true] #watch-header .mealbar-promo-renderer .yt-dialog-fg -{ - -webkit-box-shadow: 0 4px 4px rgba(0,0,0,.24); - box-shadow: 0 4px 4px rgba(0,0,0,.24); -} -html[it-theme=true] #watch-metadata, -html[it-theme=true] #watch-metadata-header .review-aggregate-badge-renderer-text a, -html[it-theme=true] .movie-upsell-description, -html[it-theme=true] .movie-upsell-subtitle, -html[it-theme=true] .movie-upsell-subtitle a, -html[it-theme=true] .movie-upsell-subtitle s -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #watch-response-header-content p a, -html[it-theme=true] .movie-upsell-extras-section .title -{ - color: #000; -} -html[it-theme=true] #watch-metadata-description-offer div.active-tab, -html[it-theme=true] .alloffer-button-wrapper, -html[it-theme=true] .offer-module-menu span -{ - background-color: #fafafa; -} -html[it-theme=true] .offer-module-menu > span.active-tab -{ - color: #167ac6; - border-bottom: 2px solid #167ac6; -} -html[it-theme=true] #placeholder-player, -html[it-theme=true] #player, -html[it-theme=true] .player-unavailable .content .forced-signin-submessage a -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .player-api, -html[it-theme=true] .player-unavailable.with-background .video-thumb -{ - background: #000; -} -html[it-theme=true] #placeholder-playlist.watch-shell-playlist, -html[it-theme=true] .share-info-pointer -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .share-info-user-container, -html[it-theme=true] .share-info-user-name -{ - color: #505050; -} -html[it-theme=true] .shared-conversation-title -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .player-unavailable .content .message -{ - border-bottom: 1px solid #888; - text-shadow: 0 2px 2px #000; -} -html[it-theme=true] .player-unavailable .content .submessage, -html[it-theme=true] .player-unavailable .content .submessage .forced-signin-submessage button -{ - text-shadow: 0 1px 1px #000; -} -html[it-theme=true] #switch-users-player .yt-horizontal-rule -{ - border-color: #b8b8b8; -} -html[it-theme=true] .watch7-playlist-interstitial -{ - background: #000; -} -html[it-theme=true] .watch-playlist -{ - color: var(--yt-swatch-text); - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] #player-playlist .control-bar -{ - border-top: 1px solid #3a3a3a; -} -html[it-theme=true] #player-playlist .yt-uix-button-player-controls:not(#improvedtube-playlist-reverse) -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #player-playlist .yt-uix-button-player-controls:focus -{ - -webkit-box-shadow: 0 0 0 2px rgba(27,127,204,.8); - box-shadow: 0 0 0 2px rgba(27,127,204,.8); -} -html[it-theme=true] .ie8 #player-playlist .yt-uix-button-player-controls:focus -{ - outline: #1b6ba8 solid 2px; -} -html[it-theme=true] #player-playlist .playlist-label, -html[it-theme=true] .watch-queue-items-list > li.currently-playing:before -{ - color: #c03636; -} -html[it-theme=true] #player-playlist .playlist-title, -html[it-theme=true] .watch-queue-preview-title .video-receiver -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] #player-playlist .playlist-videos-list, -html[it-theme=true] #player-playlist .playlist-videos-list .yt-ui-ellipsis -{ - background-color: transparent!important; -} -html[it-theme=true] #player-playlist .playlist-videos-list li:hover, -html[it-theme=true] #player-playlist .playlist-videos-list li:hover .yt-ui-ellipsis -{ - background-color: #525252; -} -html[it-theme=true] #player-playlist:not(.watch-queue-nav).playlist-videos-list li.currently-playing, -html[it-theme=true] #player-playlist:not(.watch-queue-nav).playlist-videos-list li.currently-playing .yt-ui-ellipsis -{ - background-color: #3a3a3a; -} -html[it-theme=true] #player-playlist:not(.watch-queue-nav).playlist-videos-list li.currently-playing .index -{ - color: #c03636; -} -html[it-theme=true] #player-playlist .playlist-video h4 -{ - color: #cacaca; -} -html[it-theme=true] #player-playlist .video-uploader-byline, -html[it-theme=true] .iv-promo-shelf-next-show-artist-name a -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .watch-queue-preview -{ - background-color: #2a2a2a; -} -html[it-theme=true] .watch-queue-preview-title -{ - color: #ccc; -} -html[it-theme=true] .preview-play-loading, -html[it-theme=true] .watch-queue-preview-button-actions .yt-uix-button -{ - color: var(--yt-swatch-text); - background-color: rgba(0,0,0,.7); -} -html[it-theme=true] .preview-addto-queue-button-success .yt-uix-button-icon-wrapper -{ - background: #167ac6; -} -html[it-theme=true] .watch-queue-preview-playlist-control -{ - color: #eee; - text-shadow: 0 0 5px rgba(0,0,0,.2); -} -html[it-theme=true] .watch-queue-preview-playlist-control .yt-uix-form-input-checkbox-container -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .preview-playlist-mode .watch-queue-preview-playlist-control -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .iv-promo-shelf-next-show-container -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .iv-promo-shelf-calendar-sheet > span:first-child -{ - color: var(--yt-swatch-text); - background: #767676; -} -html[it-theme=true] .iv-promo-shelf-calendar-sheet > span:last-child -{ - background: #1c2022!important; -} -html[it-theme=true] .iv-promo-shelf-next-show-time-place, -html[it-theme=true] .iv-promo-shelf-partner -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #watch-response-header-content p a:hover, -html[it-theme=true] #watch7-sidebar .video-list-item:hover .title, -html[it-theme=true] #watch7-sidebar .video-list-item:hover .title .yt-deemphasized-text, -html[it-theme=true] .iv-merch-item > a:hover .iv-merch-shelf-title, -html[it-theme=true] .iv-merch-shelf-featured-item .iv-merch-shelf-title:hover, -html[it-theme=true] .iv-promo-shelf-next-show-container:hover .iv-promo-shelf-next-show-artist-name a, -html[it-theme=true] .iv-promo-shelf-upcoming-shows-list-link -{ - color: #167ac6; -} -html[it-theme=true] #iv-promo-shelf > h3, -html[it-theme=true] #watch-response-header-content p, -html[it-theme=true] #watch-sidebar-discussion .unavailable, -html[it-theme=true] #watch7-sidebar .video-list-item a .title .yt-deemphasized-text, -html[it-theme=true] #watch7-sidebar .video-list-item a:visited .title, -html[it-theme=true] #watch7-sidebar .video-list-item a:visited .title .yt-deemphasized-text, -html[it-theme=true] #watch7-sidebar .watch-sidebar-head, -html[it-theme=true] .iv-merch-item > a, -html[it-theme=true] .iv-merch-shelf-description, -html[it-theme=true] .iv-merch-shelf-featured-item .iv-merch-shelf-aside, -html[it-theme=true] .iv-merch-shelf-featured-item .iv-merch-shelf-title, -html[it-theme=true] .iv-merch-shelf-items-list li > a, -html[it-theme=true] .iv-merch-shelf-status, -html[it-theme=true] .iv-merch-shelf-vendor, -html[it-theme=true] .iv-promo-shelf-next-shows-title, -html[it-theme=true] .iv-promo-shelf-upcoming-shows-list-subtitle2, -html[it-theme=true] .iv-promo-shelf-upcoming-shows-title -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #iv-promo-shelf .yt-uix-button-shelf-slider-pager, -html[it-theme=true] #watch-response -{ - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] #iv-promo-shelf:hover .yt-uix-button-shelf-slider-pager -{ - border: 1px solid var(--yt-swatch-primary)!important; - -webkit-box-shadow: 1px 1px 3px rgba(0,0,0,.1); - box-shadow: 1px 1px 3px rgba(0,0,0,.1); -} -html[it-theme=true] #watch-response-content-sort, -html[it-theme=true] #watch7-sidebar .watch-sidebar-separation-line -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] #watch-response-content -{ - border-top: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] #watch-sidebar-live-chat -{ - background: #f8f8f8; -} -html[it-theme=true] #page.watch .google-checkout:hover, -html[it-theme=true] #watch-sidebar-live-chat .yt-uix-expander-collapsed -{ - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] #watch7-sidebar .watch-sidebar-head a -{ - color: #444; -} -html[it-theme=true] #watch7-sidebar .watch-sidebar-head:hover a -{ - color: #1c62b9; -} -html[it-theme=true] #watch7-sidebar .video-list-item a:hover .title, -html[it-theme=true] #watch7-sidebar .video-list-item a:hover .title .yt-deemphasized-text -{ - color: #167ac6; -} -html[it-theme=true] #watch7-sidebar .video-list-item a:hover:visited .title, -html[it-theme=true] #watch7-sidebar .video-list-item a:hover:visited .title .yt-deemphasized-text -{ - color: #036; -} -html[it-theme=true] #watch-channel-brand-div-text, -html[it-theme=true] .autoplay-bar .checkbox-on-off, -html[it-theme=true] .ypc-transact-offer .help-link, -html[it-theme=true] .ypc-transact-offer .ypc-offer-rating-score a, -html[it-theme=true] .ytr-transact-offer .ytr-offer-subtitle, -html[it-theme=true] .ytr-transact-offer .ytr-offer-title -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #watch_companion_legal_text -{ - border: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .channel-header-autogenerated-label a -{ - color: #dfdfdf; -} -html[it-theme=true] .ypc-transact-offer -{ - color: #505050; -} -html[it-theme=true] .hoa-badge, -html[it-theme=true] .live-badge -{ - color: #b91f1f; - border: 1px solid #b91f1f; - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] #guide .yt-deemphasized-text, -html[it-theme=true] .guide-channels-list .guide-view-all a, -html[it-theme=true] .guide-item, -html[it-theme=true] .guide-item-subtitle -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .guide-item-selected .guide-item-subtitle -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .guide-collapsible-item .yt-uix-expander-head:hover, -html[it-theme=true] .guide-flyout-trigger.on-hover, -html[it-theme=true] .guide-item:hover .yt-deemphasized-text -{ - color: var(--yt-swatch-text); - background: #444; -} -html[it-theme=true] .guide-item:hover -{ - background: #444; -} -html[it-theme=true] .guide-item.guide-item-selected, -html[it-theme=true] .guide-item.guide-item-selected .yt-deemphasized-text, -html[it-theme=true] .guide-item.guide-item-selected:hover, -html[it-theme=true] .guide-item.guide-item-selected:hover .yt-deemphasized-text -{ - color: var(--yt-swatch-text)!important; - background: #cc181e; -} -html[it-theme=true] #guide-container .guide-item.guide-item-selected -{ - text-shadow: -1px -1px 0 rgba(0,0,0,.25); -} -html[it-theme=true] .guide-item .guide-count -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .guide-item.guide-item-selected .guide-count, -html[it-theme=true] .guide-item:hover .guide-count -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .guide-badge-live .yt-valign-container -{ - background: #e62117; -} -html[it-theme=true] .guide-flyout -{ - border: 1px solid var(--yt-swatch-primary)!important; - -webkit-box-shadow: 5px 10px 15px 5px rgba(0,0,0,.1); - box-shadow: 5px 10px 15px 5px rgba(0,0,0,.1); -} -html[it-theme=true] .guide-section-separator -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] #guide-subscriptions-promo.default-promo -{ - border: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .guide-subscriptions-promo-tooltip -{ - color: var(--yt-swatch-text); - border: 1px solid #5f8fbf; - border-top: 1px solid #6f9fcf; - background: #6898c9; -} -html[it-theme=true] .guide-subscriptions-promo-tooltip p -{ - text-shadow: 0 1px rgba(1,1,1,.5); -} -html[it-theme=true] .filter-match -{ - color: #000; -} -html[it-theme=true] .guide-item:hover .filter-match -{ - color: var(--yt-swatch-text); -} -li.guide-section h3, -li.guide-section h3 a -{ - color: #cc181e; -} -html[it-theme=true] .subscription-picker-header -{ - border-bottom: 1px solid #dcdcdc; -} -html[it-theme=true] .subscription-list-item:hover -{ - border-color: #cecece; - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .subscription-list-item .add-badge, -html[it-theme=true] .subscription-list-item .added-badge, -html[it-theme=true] .subscription-list-item .remove-badge -{ - color: var(--yt-swatch-text); - background-color: #000; -} -html[it-theme=true] #masthead-ad-close, -html[it-theme=true] #premium-yva-close -{ - color: var(--yt-swatch-text); - background: #7e7e7e; -} -html[it-theme=true] .compact-shelf .compact-shelf-view-all-card-link:hover a, -html[it-theme=true] .compact-shelf .compact-shelf-view-all-card-link:hover h4, -html[it-theme=true] .masthead-ad-control.open a:hover, -html[it-theme=true] .pyv-feed-item-headline, -html[it-theme=true] .pyv-shelf-channel-title a:hover -{ - color: #167ac6; -} -html[it-theme=true] .pyv-medium-shelf-wrapper, -html[it-theme=true] .pyv-shelf-wrapper -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .compact-shelf .compact-shelf-view-all-card h4, -html[it-theme=true] .compact-shelf .compact-shelf-view-all-card-link a, -html[it-theme=true] .pyv-feed-item-advertisement-attribution, -html[it-theme=true] .pyv-feed-item-view-count, -html[it-theme=true] .pyv-shelf-advertisement-attribution, -html[it-theme=true] .pyv-shelf-channel-title, -html[it-theme=true] .pyv-shelf-description -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .pyv-medium-shelf-advertisement-attribution -{ - color: gray; -} -html[it-theme=true] .compact-shelf .yt-uix-button-shelf-slider-pager -{ - background: var(--ytd-searchbox-legacy-button-color)!important; -} -html[it-theme=true] .yt-ui-ellipsis-nowrap-single-line -{ - background: none!important; -} -html[it-theme=true] .watch-view-count -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .browse-list-item-container:hover .compact-shelf .yt-uix-button-shelf-slider-pager, -html[it-theme=true] .compact-shelf:hover .yt-uix-button-shelf-slider-pager -{ - border: 1px solid var(--yt-swatch-primary)!important; - -webkit-box-shadow: 1px 1px 3px rgba(0,0,0,.1); - box-shadow: 1px 1px 3px rgba(0,0,0,.1); -} -html[it-theme=true] .c4-content-scroll-container, -html[it-theme=true] .channels-content-item .channel-video-badge.next-badge -{ - border: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .expanded-shelf .expanded-shelf-view-all-link:hover, -html[it-theme=true] .expanded-shelf button.yt-uix-expander-head:hover, -html[it-theme=true] .multirow-shelf .compact-shelf-view-all-card-link:hover a, -html[it-theme=true] .multirow-shelf .compact-shelf-view-all-card-link:hover h4 -{ - color: #167ac6; -} -html[it-theme=true] .channels-content-item .channel-video-badge, -html[it-theme=true] .channels-content-item h4, -html[it-theme=true] .expanded-shelf .expanded-shelf-view-all-link, -html[it-theme=true] .expanded-shelf-content-item .metadata .time-published, -html[it-theme=true] .multirow-shelf .compact-shelf-view-all-card h4, -html[it-theme=true] .multirow-shelf .compact-shelf-view-all-card-link a, -html[it-theme=true] .promoted-item-metadata p, -html[it-theme=true] .shelf-debug-info, -html[it-theme=true] .shelf-item .branded-page-module-title a.c4-shelf-title-count, -html[it-theme=true] .shelf-item .branded-page-module-title a.c4-shelf-title-count:visited, -html[it-theme=true] .shelf-item .channels-content-item .content-item-time-created, -html[it-theme=true] .shelf-item .channels-content-item .content-item-view-count, -html[it-theme=true] .shelf-item .shelf-title-table .shelf-title-row .menu-container -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .channels-content-item .content-item-detail a.content-item-title, -html[it-theme=true] .channels-content-item .content-item-detail a.content-item-title:hover, -html[it-theme=true] .channels-content-item .content-item-detail a.content-item-title:visited, -html[it-theme=true] .shelf-item .branded-page-module-title a.c4-shelf-title-count:hover -{ - color: #167ac6; -} -html[it-theme=true] .shelf-item .branded-page-module-title .shelf-featured-badge -{ - color: var(--yt-swatch-text); - background-color: #167ac6; -} -html[it-theme=true] .shelf-debug-info -{ - background: #f5f6ce; -} -html[it-theme=true] .shelf-debug-info-content -{ - color: #000; -} -html[it-theme=true] .channel-video-thumb-container.watched .channel-video-thumb-watched -{ - color: var(--yt-swatch-text); - background: #000; -} -html[it-theme=true] .channel-summary-list-item .subscriber-count, -html[it-theme=true] .channel-summary-list-item h4, -html[it-theme=true] .channels-content-item .content-item-detail, -html[it-theme=true] .channels-content-item .content-item-detail a, -html[it-theme=true] .content-container-empty -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .annotation.iv-promo-website-card-cta .iv-promo-contents .iv-promo-txt p, -html[it-theme=true] .channels-content-item .content-item-detail .metadata-separator -{ - color: #bbb; -} -html[it-theme=true] .content-picker-selector-item .content-picker-action-bar -{ - background-color: #fbfbfb; -} -html[it-theme=true] .content-picker-selector-item .remove -{ - border-right: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .content-picker-selector-item .yt-pl-thumb-link:hover .yt-pl-thumb .sidebar -{ - background: rgba(0,0,0,.6); -} -html[it-theme=true] .i-u-cancel, -html[it-theme=true] .video-link-cancel -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .attachment-editor-button -{ - color: #128ee9; -} -html[it-theme=true] .attachment-editor-poll-option.yt-uix-form-error .yt-uix-form-input-text:focus -{ - border-color: #e52d27; -} -html[it-theme=true] .attachment-editor-poll-option:not(.yt-uix-form-error).attachment-editor-poll-option-counter -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .attachment-editor-poll-option-input::-webkit-input-placeholder -{ - color: #b8b8b8; -} -html[it-theme=true] .attachment-editor-poll-option-input::-moz-placeholder -{ - color: #b8b8b8; -} -html[it-theme=true] .attachment-editor-poll-option-input:-ms-input-placeholder -{ - color: #b8b8b8; -} -html[it-theme=true] .i-u-drop-zone -{ - color: #b8b8b8; - border: 2px dashed #ddd; -} -html[it-theme=true] .comment-simplebox-renderer-collapsed-content, -html[it-theme=true] .exp-comments-refresh .comment-author-text, -html[it-theme=true] .exp-comments-refresh .comment-renderer-header .comment-renderer-time a, -html[it-theme=true] .exp-comments-refresh .comment-renderer-header a:hover, -html[it-theme=true] .exp-comments-refresh .comment-renderer-like-count, -html[it-theme=true] .exp-comments-refresh .comment-renderer-reply, -html[it-theme=true] .exp-comments-refresh .comment-renderer-reply-count, -html[it-theme=true] .exp-comments-refresh .comment-renderer-text-content a, -html[it-theme=true] .exp-comments-refresh .comment-renderer-text-content a:hover, -html[it-theme=true] .exp-comments-refresh .comment-renderer:hover .comment-renderer-reply:hover, -html[it-theme=true] .exp-comments-refresh .comment-replies-renderer .comment-simplebox-renderer-collapsed-content:hover, -html[it-theme=true] .exp-comments-refresh .comment-replies-renderer-hide, -html[it-theme=true] .exp-comments-refresh .comment-replies-renderer-hide:hover, -html[it-theme=true] .exp-comments-refresh .comment-replies-renderer-paginator, -html[it-theme=true] .exp-comments-refresh .comment-replies-renderer-paginator:hover, -html[it-theme=true] .exp-comments-refresh .comment-replies-renderer-reply-icon, -html[it-theme=true] .exp-comments-refresh .comment-replies-renderer-sort-order-text, -html[it-theme=true] .exp-comments-refresh .comment-replies-renderer-view, -html[it-theme=true] .exp-comments-refresh .comment-replies-renderer-view:hover, -html[it-theme=true] .exp-comments-refresh .comment-section-renderer-paginator, -html[it-theme=true] .exp-comments-refresh .comment-section-renderer-paginator:hover, -html[it-theme=true] .exp-comments-refresh .comment-text-toggle-link > .yt-uix-button-link, -html[it-theme=true] .exp-comments-refresh .comment-text-toggle-link > .yt-uix-button-link:hover, -html[it-theme=true] .exp-comments-refresh.exp-comments-refresh-reply-icon .comment-replies-renderer-expander-down:hover -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .i-u-drop-zone.i-u-error -{ - border-color: #e52d27; -} -html[it-theme=true] .i-u-hover -{ - border-color: #167ac6; -} -html[it-theme=true] .exp-comments-refresh .comment-thread-renderer:last-of-type, -html[it-theme=true] .exp-comments-refresh .comment-thread-renderer:not(:last-of-type).comment-replies-renderer -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .image-attachment-viewer -{ - background: #000; -} -html[it-theme=true] .i-a-v-comment-background -{ - background-color: rgba(0,0,0,.9); -} -html[it-theme=true] .i-a-v-comment-background::-webkit-scrollbar-thumb -{ - background: rgba(255,255,255,.6); -} -html[it-theme=true] .i-a-v-comment-author-text, -html[it-theme=true] .i-a-v-comment-renderer-time a -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .i-a-v-like-count -{ - color: #4285f4; -} -html[it-theme=true] .i-a-v-comment-text-content -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .comment-poll-footer -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-poll-choice-button[disabled], -html[it-theme=true] .yt-uix-poll-choice-button[disabled]:hover -{ - color: #000; -} -html[it-theme=true] .comment-poll-choice[aria-checked=true], -html[it-theme=true] .comment-renderer-like-count -{ - color: #128ee9; -} -html[it-theme=true] .comment-poll-choice[aria-checked=true] .comment-poll-choice-radio -{ - border-color: var(--yt-swatch-text); - background-color: var(--yt-swatch-text); -} -html[it-theme=true] .comment-poll-choice-radio -{ - border-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .comment-poll-choice-bar -{ - background-color: #ddd; -} -html[it-theme=true] .comment-poll-choice[aria-checked=true] .comment-poll-choice-bar -{ - background-color: #def0ff; -} -html[it-theme=true] .comment-renderer-pinned-comment-badge -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .comment-renderer-author-comment-badge.creator -{ - background-color: #008bec; -} -html[it-theme=true] .comment-renderer-author-comment-badge.creator .comment-author-text -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .comment-renderer.channel-owner .comment-author-text -{ - background-color: #dbe4eb; -} -html[it-theme=true] .comment-simplebox, -html[it-theme=true] .comment-simplebox-prompt, -html[it-theme=true] .comment-simplebox-text -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .comment-renderer-header .comment-renderer-linked-comment -{ - color: var(--yt-swatch-text)!important; - border: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .comment-renderer-header .comment-renderer-time, -html[it-theme=true] .comment-renderer-header .comment-renderer-time a, -html[it-theme=true] .comment-renderer-header .comment-renderer-tipjar-supported -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .comment-replies-renderer-hide, -html[it-theme=true] .comment-replies-renderer-paginator, -html[it-theme=true] .comment-replies-renderer-view -{ - color: #2793e6; -} -html[it-theme=true] .comment-section-header-renderer, -html[it-theme=true] .comment-video-link .yt-lockup-title > a -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .comment-simplebox-frame -{ - border: 1px solid var(--yt-swatch-text)!important; - -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,.05); - box-shadow: inset 0 0 1px rgba(0,0,0,.05); -} -html[it-theme=true] .comment-simplebox:not(.yt-uix-form-error).focus .comment-simplebox-frame -{ - border-color: #167ac6; - -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,.1); - box-shadow: inset 0 0 1px rgba(0,0,0,.1); -} -html[it-theme=true] .yt-uix-form-error .comment-simplebox-frame -{ - border-color: #e52d27; -} -html[it-theme=true] .comment-simplebox-error-message -{ - color: #e62117; -} -html[it-theme=true] .comment-simplebox-text:empty:after -{ - color: #b8b8b8; -} -html[it-theme=true] .comment-simplebox-renderer -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .comment-simplebox-renderer-collapsed -{ - border: 0!important; -} -html[it-theme=true] .comment-video-link -{ - border: 1px solid #ddd; -} -html[it-theme=true] .branded-page-module-title a.branded-page-module-title-link:hover, -html[it-theme=true] .comment-video-link:hover .yt-lockup-title > a, -html[it-theme=true] .video-player-view-component .video-detail .title a .yt-deemphasized-text, -html[it-theme=true] .video-player-view-component .video-detail a -{ - color: #167ac6; -} -html[it-theme=true] .c4-featured-content .featured-content-subtitle, -html[it-theme=true] .comment-renderer-translate-button-default, -html[it-theme=true] .comment-renderer-translate-button-toggled, -html[it-theme=true] .options-renderer-addition p, -html[it-theme=true] .options-renderer-confirmation p, -html[it-theme=true] .options-renderer-message-review, -html[it-theme=true] .video-player-view-component, -html[it-theme=true] .video-player-view-component .view-count .count -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .comment-section-renderer-paginator -{ - color: var(--yt-swatch-text)!important; - border: 1px solid var(--yt-swatch-primary)!important; - background-color: #f8f8f8; -} -html[it-theme=true] .comment-section-renderer-paginator:hover -{ - border-color: #c6c6c6; - background-color: #f0f0f0; -} -html[it-theme=true] .options-renderer-info, -html[it-theme=true] .options-renderer-message-abuse -{ - border-bottom: 1px solid #ddd; -} -html[it-theme=true] .options-renderer-confirmation -{ - background-color: #efefef; -} -html[it-theme=true] .options-renderer-content .yt-uix-form-input-radio-container input:checked .yt-uix-form-input-radio-element:after -{ - background: var(--yt-swatch-text)!important; -} -html[it-theme=true] .featured-content-nav .yt-uix-button-icon-up-next-prev -{ - border-right-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .featured-content-nav .yt-uix-button-icon-up-next-next -{ - border-left-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .welcome.c4-spotlight-module-component -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .video-player-view-component .mini-meh -{ - background-color: #000; -} -html[it-theme=true] .yt-uix-expander-ellipsis -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .google-checkout -{ - border: 1px solid #ccc; - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .google-checkout-header -{ - color: #000; -} -html[it-theme=true] .yt-uix-button-donate.yt-uix-button -{ - border-color: #ccc; - background-color: #427fed; -} -html[it-theme=true] .yt-uix-button-donate[disabled] -{ - background-color: #427fed; -} -html[it-theme=true] .yt-uix-button-donate:hover -{ - background-color: #4285f4; -} -html[it-theme=true] .yt-uix-button-donate:active -{ - background-color: #3a75d6; - -webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,.15); - box-shadow: inset 0 1px 0 rgba(0,0,0,.15); -} -html[it-theme=true] .yt-uix-button-donate .yt-uix-button-content -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .about-action, -html[it-theme=true] .about-metadata-container, -html[it-theme=true] .c4-overview-has-no-items -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-button-donate .yt-uix-button-icon-wrapper -{ - background: #eee; -} -html[it-theme=true] .yt-uix-button-donate:active .yt-uix-button-icon-wrapper -{ - background: #d1d1d1; - -webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,.15); - box-shadow: inset 0 1px 0 rgba(0,0,0,.15); -} -html[it-theme=true] .branded-page-v2-primary-col .branded-page-box:last-child.c4-featured-content, -html[it-theme=true] .branded-page-v2-primary-col .branded-page-box:last-child.c4-featured-content-editor, -html[it-theme=true] .branded-page-v2-primary-col .branded-page-box:last-child.video-player-view-component, -html[it-theme=true] .branded-page-v2-primary-col .branded-page-box:last-child.welcome -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-channel-msg-dialog .compose-message, -html[it-theme=true] .yt-channel-msg-dialog .user-box -{ - border: 1px solid #bbb; -} -html[it-theme=true] .yt-channel-msg-dialog .compose-message:focus -{ - border: 1px solid #1b7fcc; - -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,.1); - box-shadow: inset 0 0 1px rgba(0,0,0,.1); -} -html[it-theme=true] #browse-items-primary .item-section > li > .yt-lockup-tile, -html[it-theme=true] #c4-header-bg-container, -html[it-theme=true] #channel-feed-post-form, -html[it-theme=true] #channel-subheader, -html[it-theme=true] .branded-page-v2-primary-col .branded-page-box, -html[it-theme=true] .branded-page-v2-primary-col .yt-uix-inlineedit-view-container .branded-page-box, -html[it-theme=true] .branded-page-v2-subnav-container, -html[it-theme=true] .comment-history-block-header, -html[it-theme=true] .comment-history-entry-renderer, -html[it-theme=true] .double-shelf-container, -html[it-theme=true] .feed-header, -html[it-theme=true] .feed-item-container.legacy-style .feed-item-main, -html[it-theme=true] .feed-item-dismissal, -html[it-theme=true] .section-list li .item-section .branded-page-box, -html[it-theme=true] .yt-card .branded-page-v2-top-row -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .about-metadata-label-border-top, -html[it-theme=true] .about-network-stat, -html[it-theme=true] .channel-description-wrapper .yt-uix-inlineedit-edit, -html[it-theme=true] .feed-item-dismissal, -html[it-theme=true] .feed-item-grouplet-with-separator, -html[it-theme=true] .flag-channel-abuse-form hr, -html[it-theme=true] .package-module, -html[it-theme=true] .ypc-channel-offer-indirect-offers -{ - border-top: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-channel-msg-dialog .yt-dialog-footer -{ - background-color: #eee; -} -html[it-theme=true] .flag-channel-overlay-content .warning -{ - color: #d00; -} -html[it-theme=true] .branded-page-module-title, -html[it-theme=true] .branded-page-module-title a, -html[it-theme=true] .branded-page-module-title a:visited, -html[it-theme=true] .branded-page-related-channels h3, -html[it-theme=true] .branded-page-related-channels h3 a, -html[it-theme=true] .branded-page-related-channels-item .yt-uix-button-link, -html[it-theme=true] .branded-page-related-channels-item .yt-uix-button-link[disabled], -html[it-theme=true] .branded-page-related-channels-item .yt-uix-button-link[disabled]:hover, -html[it-theme=true] .branded-page-v2-secondary-col .branded-page-related-channels-see-more a, -html[it-theme=true] .business-email-container .business-email-button, -html[it-theme=true] .business-email-container .smallgray, -html[it-theme=true] .channel-description, -html[it-theme=true] .channel-description-expander .yt-uix-expander-head -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #channel-feed-post-form .yt-uix-expander-collapsed .enable-post-click-target -{ - text-indent: -999px; - - background: #000; -} -html[it-theme=true] .yt-card .branded-page-v2-primary-col -{ - border-right: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .branded-page-related-channels h3 a:hover, -html[it-theme=true] .branded-page-related-channels-item .yt-uix-button-link:hover, -html[it-theme=true] .branded-page-v2-secondary-col .branded-page-related-channels-see-more a:hover, -html[it-theme=true] .ypc-channel-offer-card .ypc-channel-title a:hover, -html[it-theme=true] .ypc-package-title a:hover -{ - color: #167ac6; -} -html[it-theme=true] #c4-header-bg-container, -html[it-theme=true] #c4-header-bg-container .hd-banner-image -{ - background-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .channel-empty-message h2 -{ - color: var(--yt-swatch-text); - text-shadow: 0 2px 2px #000; -} -html[it-theme=true] .channel-header-profile-image-container -{ - background-color: rgba(0,0,0,.2); -} -html[it-theme=true] .channel-header-profile-image -{ - background-color: #e9ecee; - -webkit-box-shadow: 0 1px 1px rgba(0,0,0,.4); - box-shadow: 0 1px 1px rgba(0,0,0,.4); -} -html[it-theme=true] .channel-header-autogenerated-label -{ - color: #dfdfdf; -} -html[it-theme=true] .channel-header .branded-page-header-info -{ - color: var(--yt-swatch-text); - text-shadow: 0 -1px rgba(0,0,0,.5); -} -html[it-theme=true] #circled-user-profiles-left, -html[it-theme=true] #circled-user-profiles-right, -html[it-theme=true] .channel-header .branded-page-header-title .branded-page-header-title-link -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .ypc-channel-offer-card, -html[it-theme=true] .ypc-channel-offers -{ - border: 1px solid var(--yt-swatch-primary)!important; - -webkit-box-shadow: 0 0 3px #ccc; - box-shadow: 0 0 3px #ccc; -} -html[it-theme=true] .channel-header .about-custom-links, -html[it-theme=true] .channel-header .about-secondary-links -{ - background-color: rgba(102,102,102,.5); -} -html[it-theme=true] .channel-header .about-channel-link-text -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .channel-header .secondary-header-contents -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .feed-header-promo .promo-text, -html[it-theme=true] .feed-promo p, -html[it-theme=true] .secondary-header-contents .nav-text, -html[it-theme=true] .ypc-channel-offers h3 -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .ypc-channel-offers -{ - color: #444; - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .ypc-channel-offer-indirect-offers -{ - background: #f8f8f8; -} -html[it-theme=true] .ypc-channel-offer-card .ypc-channel-title, -html[it-theme=true] .ypc-package-offer h3 -{ - color: #444; -} -html[it-theme=true] .feed-header-promo -{ - background-color: #fbfbfb; -} -html[it-theme=true] .ypc-channel-offer-card -{ - color: #444; - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .comment-history-entry-renderer-content, -html[it-theme=true] .comment-history-entry-renderer-timestamp, -html[it-theme=true] .feed-header .feed-manage-link -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .feed-header .feed-manage-link:hover, -html[it-theme=true] .feed-header .metadata a:hover, -html[it-theme=true] .feed-item-container:hover .feed-item-header a, -html[it-theme=true] .feed-item-container:hover a.yt-user-name -{ - color: #167ac6; -} -html[it-theme=true] .feed-header.has-secondary-link .branded-page-header-title -{ - border-right: 1px solid var(--yt-swatch-text)!important; -} -html[it-theme=true] .feed-header .secondary-link -{ - color: #aaa; - border-left: 1px solid #777; -} -html[it-theme=true] .feed-header .secondary-link:hover -{ - color: #ccc; -} -html[it-theme=true] #masthead-search-terms input, -html[it-theme=true] .feed-header .feed-channel-header-title a, -html[it-theme=true] .feed-header.collection .feed-channel-header-title, -html[it-theme=true] .yt-picker-content strong -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .ad-option-warning, -html[it-theme=true] .ad-option-warning a, -html[it-theme=true] .feed-header .metadata, -html[it-theme=true] .feed-header .metadata a, -html[it-theme=true] .feed-item-container .feed-item-main, -html[it-theme=true] .message-shelf, -html[it-theme=true] .yt-ui-bulkactions .bulkactions-actions-button .yt-uix-button-content -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .feed-item-container .branded-page-module-title .branded-page-module-title-link -{ - color: var(--yt-swatch-text); - background: 0!important; -} -html[it-theme=true] .feed-item-main .feed-item-time -{ - color: #ccc; -} -html[it-theme=true] .feed-item-container:hover .feed-item-time, -html[it-theme=true] .feed-item-lockup-title h4, -html[it-theme=true] .feed-item-promo-heading h4, -html[it-theme=true] .feed-item-target .playlist-title a, -html[it-theme=true] .feed-item-target .playlist-title span -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .feed-item-main .playlist-time-created -{ - color: #979797; -} -html[it-theme=true] .feed-item-main .bull -{ - color: #aaa; -} -html[it-theme=true] .feed-item-main .description -{ - color: #777; -} -html[it-theme=true] .feed-item-target .playlist-title a:hover -{ - color: #1c62b9; -} -html[it-theme=true] .feed-item-content-wrapper.channel-lockup, -html[it-theme=true] .feed-item-content-wrapper.playlist-promo -{ - border: 1px solid var(--yt-swatch-primary)!important; - -webkit-box-shadow: 0 1px 2px #ddd; - box-shadow: 0 1px 2px #ddd; -} -html[it-theme=true] #yt-banner-promo-renderer-background, -html[it-theme=true] .generic-promo .feed-item-main -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .feed-item-grouplet-header a.title, -html[it-theme=true] .feed-item-grouplet-muted .channels-content-item .content-item-detail a.content-item-title, -html[it-theme=true] .feed-item-grouplet-muted .channels-content-item .content-item-detail a.content-item-title:hover, -html[it-theme=true] .feed-item-grouplet-muted .channels-content-item .content-item-detail a.content-item-title:visited, -html[it-theme=true] .playlist-titles .playlist-item, -html[it-theme=true] .playlist-titles li -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .feed-item-grouplet-header .new-count -{ - color: #ccc; -} -html[it-theme=true] .feed-item-grouplet-muted, -html[it-theme=true] .feed-item-grouplet-muted .channels-content-item .content-item-detail, -html[it-theme=true] .feed-item-grouplet-muted .channels-content-item .content-item-detail a, -html[it-theme=true] .feed-item-grouplet-muted .shelf-item .channels-content-item .content-item-time-created, -html[it-theme=true] .feed-item-grouplet-muted .shelf-item .channels-content-item .content-item-view-count, -html[it-theme=true] .feed-item-grouplet-muted a -{ - color: #b8b8b8; -} -html[it-theme=true] .feed-item-content .playlist-full, -html[it-theme=true] .playlist-summary .view-playlist-link -{ - color: #979797; -} -html[it-theme=true] .feed-item-channel-rec-text a, -html[it-theme=true] .feed-item-content .metadata .view-count, -html[it-theme=true] .feed-item-content .yt-user-name, -html[it-theme=true] .feed-item-dismissal, -html[it-theme=true] .history-search-result-text a, -html[it-theme=true] .playlist-item:hover .item-duration -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .feed-item-container:hover .metadata .view-count -{ - color: #000; -} -html[it-theme=true] .feed-item-content .feed-subscribe-description -{ - color: #777; -} -html[it-theme=true] .double-shelf-item:first-child -{ - border-right: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] #history-search .history-search-field -{ - border-color: #ccc; -} -html[it-theme=true] .history-search-result-text a:hover -{ - color: #1c62b9; -} -html[it-theme=true] #social-promo .google-upgrade-promo, -html[it-theme=true] #social-promo .social-service-status, -html[it-theme=true] #social-promo h4, -html[it-theme=true] .history-search-result-text, -html[it-theme=true] .question-shelf-package .message-shelf -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-banner-promo-renderer-background-opacity -{ - background: rgba(0,0,0,.3); -} -html[it-theme=true] .feed-promo, -html[it-theme=true] .lohp-shelf-cell-container:hover -{ - background-color: #fbfbfb; -} -html[it-theme=true] .yt-banner-promo-renderer-small-feature img -{ - border-bottom: 5px solid #e62117; -} -html[it-theme=true] .feed-promo, -html[it-theme=true] .lohp-newspaper-shelf, -html[it-theme=true] .lohp-pyv-medium-shelf-container, -html[it-theme=true] .lohp-pyv-shelf-container -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .single-question-shelf-answers -{ - color: #000; -} -html[it-theme=true] #pl-header .pl-header-details a:hover, -html[it-theme=true] #pl-header .yt-uix-playlistlike.yt-uix-button-toggled .yt-uix-button-content, -html[it-theme=true] .lohp-medium-shelves-container .yt-lockup-mini .yt-lockup-title, -html[it-theme=true] .lohp-shelf-cell-container:hover .lohp-shelf-title, -html[it-theme=true] .lohp-video-link, -html[it-theme=true] .lohp-video-link .yt-deemphasized-text, -html[it-theme=true] .lohp-video-metadata .yt-user-name:hover -{ - color: #167ac6; -} -html[it-theme=true] .user-awareness-setup-rec .feed-item-thumb -{ - -webkit-box-shadow: 2px 3px 2px #ddd; - box-shadow: 2px 3px 2px #ddd; -} -html[it-theme=true] #collaboration-settings .contributor, -html[it-theme=true] .collaboration-settings-contributions .yt-uix-checkbox-on-off -{ - -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.4); - box-shadow: 1px 1px 1px rgba(0,0,0,.4); -} -html[it-theme=true] .lohp-large-shelf-container .lohp-blog-headline -{ - border-top: 1px solid #eaeaea; -} -html[it-theme=true] #pl-header .pl-header-details a, -html[it-theme=true] #pl-header .pl-header-title, -html[it-theme=true] .display-message, -html[it-theme=true] .lohp-blog-attribution, -html[it-theme=true] .lohp-blog-headline, -html[it-theme=true] .lohp-video-metadata, -html[it-theme=true] .lohp-video-metadata .view-count, -html[it-theme=true] .lohp-video-metadata .yt-user-name, -html[it-theme=true] .yt-combobox-menu-item-main .item-count, -html[it-theme=true] .yt-combobox-menu-item-main .item-name -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-combobox-menu-item:hover, -html[it-theme=true] .yt-uix-comboboxinput-radio:checked .yt-combobox-menu-item, -html[it-theme=true] .yt-uix-comboboxinput-radio:focus .yt-combobox-menu-item -{ - background-color: #e0e0e0; -} -html[it-theme=true] .yt-combobox-menu .yt-combobox-menu-content-list -{ - border-top: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-uix-button-combobox-menu:hover -{ - background-color: #ccc; -} -html[it-theme=true] .yt-uix-inlineedit-loading-overlay -{ - background: #ccc; -} -html[it-theme=true] .pl-header-thumb .pl-header-play-all-overlay -{ - color: var(--yt-swatch-text); - text-shadow: 0 1px 1px rgba(255,255,255,.6); -} -html[it-theme=true] #pl-header .pl-header-add-description-button, -html[it-theme=true] #pl-header .pl-header-description, -html[it-theme=true] #pl-header .pl-header-details, -html[it-theme=true] .pl-header-sharepanel-content .share-panel-url -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #pl-header .privacy-icon-present .pl-header-details:before -{ - border-left: solid #e6e6e6 2px; -} -html[it-theme=true] #pl-header .pl-header-description-editor-textarea, -html[it-theme=true] #pl-header .pl-header-description-editor-textarea:focus -{ - border-color: #b8b8b8; -} -html[it-theme=true] .pl-message-panel .yt-alert-default, -html[it-theme=true] .pl-video -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] #pl-header .pl-header-add-description-button:hover -{ - color: #167ac6; -} -html[it-theme=true] .pl-header-sharepanel-content #share-panel-playlist-collaboration-options-subtext -{ - color: #b8b8b8; -} -html[it-theme=true] #pl-header .playlist-description-expander, -html[it-theme=true] .pl-message-panel .yt-alert-default .yt-alert-content, -html[it-theme=true] .pl-video-index:before -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .pl-message-panel .yt-alert-actionable -{ - background: #2793e6; -} -html[it-theme=true] .pl-suggestions-video a:hover .pl-suggestions-video-title, -html[it-theme=true] .pl-video:hover .pl-video-owner a, -html[it-theme=true] .pl-video:hover .pl-video-title-link -{ - color: #167ac6; -} -html[it-theme=true] #playlist-settings-editor .yt-dialog-footer, -html[it-theme=true] .yt-uix-dragdrop-cursor-follower, -html[it-theme=true] body #footer-container -{ - border-top: 1px solid var(--yt-swatch-primary)!important; - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .pl-video-list-editable .pl-video:hover .pl-video-handle, -html[it-theme=true] .yt-uix-dragdrop-cursor-follower .pl-video-handle -{ - border-right: 1px solid var(--yt-swatch-primary)!important; - border-left: 1px solid var(--yt-swatch-primary)!important; - background: #fbfbfb; -} -html[it-theme=true] .pl-header-inlineedit .c4-module-is-editable:hover, -html[it-theme=true] .set-manual-sort-order .yt-dialog-footer -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .notes-editor .notes-editor-subtitle, -html[it-theme=true] .pl-video-added-by, -html[it-theme=true] .pl-video-added-by a, -html[it-theme=true] .pl-video-owner a, -html[it-theme=true] .pl-video-title, -html[it-theme=true] .pl-video-title-link, -html[it-theme=true] .privacy-checkbox-text, -html[it-theme=true] .privacy-label-text -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .iv-endcap-image img, -html[it-theme=true] .pl-header-inlineedit .yt-uix-button-c4-view-action -{ - border: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .pl-header-title-editor-input -{ - color: var(--yt-swatch-text)!important; - border-color: #b8b8b8; -} -html[it-theme=true] .pl-header-title-editor-input:focus -{ - border-color: #b8b8b8; -} -html[it-theme=true] #masthead-appbar, -html[it-theme=true] #playlist-settings-editor .yt-uix-tabs, -html[it-theme=true] .add-to-widget .playlists, -html[it-theme=true] .auto-add-confirmation-dialog .yt-dialog-header -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] #collaboration-settings .contributor -{ - color: var(--yt-swatch-text); - background-color: #4285f4; -} -html[it-theme=true] #collaboration-settings .none-defined-text, -html[it-theme=true] #yt-uix-videoactionmenu-menu h3, -html[it-theme=true] .add-to-widget .addto-playlist-item, -html[it-theme=true] .pl-suggestions-section .section-description, -html[it-theme=true] .pl-suggestions-video-title -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .picker.modal-dialog, -html[it-theme=true] .picker.modal-dialog-bg -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] #collaboration-settings .collaboration-settings-invite-link.disabled:before -{ - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .picker.modal-dialog -{ - border: 1px solid #acacac; -} -html[it-theme=true] .add-to-widget .addto-playlist-item-subtitle -{ - color: #adadad; -} -html[it-theme=true] .add-to-widget .addto-playlist-item.yt-uix-kbd-nav-highlight, -html[it-theme=true] .add-to-widget .addto-playlist-item:hover, -html[it-theme=true] .add-to-widget .create-playlist-item:focus, -html[it-theme=true] .add-to-widget .create-playlist-item:hover -{ - background-color: #eee; -} -html[it-theme=true] #masthead-appbar, -html[it-theme=true] .create-playlist-widget-form .create-playlist-bottom-section -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-uix-button.addto-watch-queue-button-error, -html[it-theme=true] .yt-uix-button.addto-watch-queue-button-success -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .yt-uix-button.addto-watch-queue-button-success -{ - background: #167ac6; -} -html[it-theme=true] #appbar-guide-menu, -html[it-theme=true] .guide-flyout -{ - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] #appbar-guide-menu -{ - border-right: 0!important; -} -html[it-theme=true] .guide-pinned .guide-pinning-enabled #appbar-guide-menu -{ - border-right: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] #appbar-nav .yt-uix-button.yt-uix-button-epic-nav-item -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-button.yt-uix-button-appbar -{ - color: var(--yt-swatch-text); - border-color: var(--yt-swatch-primary); - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-uix-button.yt-uix-button-appbar:hover -{ - color: var(--yt-swatch-text)!important; - border-color: #c6c6c6; - background: #f0f0f0; -} -html[it-theme=true] .yt-uix-button.yt-uix-button-appbar.yt-uix-button-active, -html[it-theme=true] .yt-uix-button.yt-uix-button-appbar.yt-uix-button-active:focus, -html[it-theme=true] .yt-uix-button.yt-uix-button-appbar.yt-uix-button-toggled, -html[it-theme=true] .yt-uix-button.yt-uix-button-appbar:active -{ - border-color: #c6c6c6; - background: #e9e9e9; - -webkit-box-shadow: inset 0 1px 0 #ddd; - box-shadow: inset 0 1px 0 #ddd; -} -html[it-theme=true] .yt-uix-button.yt-uix-button-appbar.yt-uix-button-toggled:hover -{ - border-color: #b9b9b9; - background: #e5e5e5; - -webkit-box-shadow: inset 0 1px 0 #ddd; - box-shadow: inset 0 1px 0 #ddd; -} -html[it-theme=true] .appbar-guide-notification -{ - color: var(--yt-swatch-text); - background: #167ac6; -} -html[it-theme=true] #footer-links-primary a, -html[it-theme=true] #footer-links-secondary .copyright, -html[it-theme=true] #footer-links-secondary a, -html[it-theme=true] #footer-links-secondary a:hover, -html[it-theme=true] .background-promo-renderer-body-text -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #footer-main, -html[it-theme=true] #yt-masthead-container -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] #footer-links-primary a:hover -{ - color: #167ac6; -} -html[it-theme=true] .yt-content-owner-icon.yt-content-owner-color-0 -{ - background-color: #443393; -} -html[it-theme=true] .yt-content-owner-icon.yt-content-owner-color-1 -{ - background-color: #b21f70; -} -html[it-theme=true] .yt-content-owner-icon.yt-content-owner-color-2 -{ - background-color: #e57a27; -} -html[it-theme=true] .yt-content-owner-icon.yt-content-owner-color-3 -{ - background-color: #e5bc24; -} -html[it-theme=true] .yt-content-owner-icon.yt-content-owner-color-4 -{ - background-color: #0e9151; -} -html[it-theme=true] .yt-content-owner-icon.yt-content-owner-color-5 -{ - background-color: #287ec2; -} -html[it-theme=true] .yt-content-owner-color-0 .agent-mode-sidebar -{ - border-color: #443393; -} -html[it-theme=true] .yt-content-owner-color-1 .agent-mode-sidebar -{ - border-color: #b21f70; -} -html[it-theme=true] .yt-content-owner-color-2 .agent-mode-sidebar -{ - border-color: #e57a27; -} -html[it-theme=true] .yt-content-owner-color-3 .agent-mode-sidebar -{ - border-color: #e5bc24; -} -html[it-theme=true] .yt-content-owner-color-4 .agent-mode-sidebar -{ - border-color: #0e9151; -} -html[it-theme=true] .yt-content-owner-color-5 .agent-mode-sidebar -{ - border-color: #287ec2; -} -html[it-theme=true] #yt-masthead-container -{ - background: var(--yt-swatch-header-primary)!important; -} -html[it-theme=true] #yt-masthead button -{ - background: none!important; -} -html[it-theme=true] #masthead .selected -{ - color: #000; -} -html[it-theme=true] #yt-masthead #logo-container span.content-region, -html[it-theme=true] #yt-masthead-user -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .exp-searchbox-redesign #masthead-search -{ - background-color: #f5f5f5; -} -html[it-theme=true] #masthead-search-term::-webkit-input-placeholder -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #masthead-search-term::-moz-placeholder -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #masthead-search-term:-ms-input-placeholder -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #masthead-search-terms, -html[it-theme=true] .ytp-dni .ytp-chrome-controls .ytp-button[aria-pressed]:after -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .masthead-search-terms-border -{ - border: 1px solid var(--yt-swatch-primary)!important; - -webkit-box-shadow: none!important; - box-shadow: none!important; -} -html[it-theme=true] #masthead-search-term:focus, -html[it-theme=true] #masthead-search.consolidated-form input:focus -{ - border-color: var(--yt-swatch-text); -} -html[it-theme=true] .search-btn-component:focus -{ - -webkit-box-shadow: inset 0 0 0 2px rgba(27,127,204,.4); - box-shadow: inset 0 0 0 2px rgba(27,127,204,.4); -} -html[it-theme=true] #masthead-search .search-btn-component -{ - border-color: transparent!important; - background: var(--ytd-searchbox-legacy-button-color)!important; -} -html[it-theme=true] #yt-masthead-user #sb-button-notify:focus, -html[it-theme=true] #yt-masthead-user #yt-masthead-notifications-button:focus -{ - -webkit-box-shadow: 0 0 0 2px rgba(27,127,204,.4); - box-shadow: 0 0 0 2px rgba(27,127,204,.4); -} -html[it-theme=true] #yt-masthead-user .sb-notif-on .yt-uix-button-content -{ - color: var(--yt-swatch-text); - border-bottom: 1px solid var(--yt-swatch-text); - border-left: 1px solid var(--yt-swatch-text); - background: #cb4437; -} -html[it-theme=true] #sb-onepick-target -{ - border: 1px solid #bebebe; - background-color: #f6f5f6; - -webkit-box-shadow: 0 4px 16px rgba(0,0,0,.199219); - box-shadow: 0 4px 16px rgba(0,0,0,.199219); -} -html[it-theme=true] .sb-card-arrow -{ - border-bottom-color: #bbb; -} -html[it-theme=true] .sb-card-body-arrow -{ - border-bottom-color: #e5e5e5; -} -html[it-theme=true] .sb-card-border -{ - border: 1px solid #bbb; - background: var(--yt-swatch-text); - -webkit-box-shadow: 0 0 5px #bbb; - box-shadow: 0 0 5px #bbb; -} -html[it-theme=true] .sb-on -{ - background: var(--yt-swatch-primary)!important; - -webkit-box-shadow: 0 2px 1px #aaa; - box-shadow: 0 2px 1px #aaa; -} -html[it-theme=true] .yt-masthead-account-picker.yt-uix-clickcard-card-content -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-masthead-account-notification -{ - color: #000; - background-color: #fef9db; -} -html[it-theme=true] .yt-masthead-account-notification a -{ - color: #36c; -} -html[it-theme=true] .yt-masthead-picker-header -{ - border-bottom: 1px solid rgba(0,0,0,.2); -} -html[it-theme=true] .yt-masthead-account-picker .yt-masthead-picker-header-status -{ - color: #999; - border-bottom: 1px solid rgba(0,0,0,.2); -} -html[it-theme=true] .yt-uix-clickcard-card.yt-masthead-multilogin .yt-masthead-picker-header-status -{ - color: #dadada; - background-color: #999; -} -html[it-theme=true] .yt-uix-clickcard-card.yt-masthead-multilogin .yt-masthead-multilogin-users-header, -html[it-theme=true] .yt-uix-clickcard-card.yt-masthead-multilogin .yt-masthead-picker-header -{ - color: var(--yt-swatch-text); - background-color: #999; -} -html[it-theme=true] .yt-masthead-picker-photo-change -{ - color: var(--yt-swatch-text); - background-color: rgba(0,0,0,.4); -} -html[it-theme=true] .yt-masthead-picker-account-subtitle -{ - color: #999; -} -html[it-theme=true] .yt-masthead-account-picker-option, -html[it-theme=true] .yt-masthead-picker-footer -{ - border-top: 1px solid rgba(0,0,0,.1); - background: #eee; -} -html[it-theme=true] .yt-masthead-account-picker-option:hover -{ - background: #eee; -} -html[it-theme=true] .yt-masthead-account-picker-option .yt-masthead-picker-name -{ - color: #000; -} -html[it-theme=true] #yt-masthead-notifications-title, -html[it-theme=true] .yt-uix-button-menu-dark-overflow-action-menu .yt-uix-button-menu-item -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-uix-clickcard-card.yt-masthead-multilogin .yt-uix-card-body-arrow -{ - border-bottom-color: #999; -} -html[it-theme=true] .yt-uix-clickcard-card.yt-masthead-domain-notification .yt-uix-card-body-arrow -{ - border-bottom-color: #fef9db; -} -html[it-theme=true] #yt-masthead-notifications-content, -html[it-theme=true] #yt-masthead-notifications-content .item-section > li > .yt-lockup-tile, -html[it-theme=true] #yt-masthead-notifications-content .yt-ui-ellipsis -{ - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] #yt-masthead-notifications-content .item-section > li > .yt-lockup-tile -{ - border-bottom: 1px solid rgba(0,0,0,.1); -} -html[it-theme=true] #yt-masthead-notifications-content .item-section > li > .yt-lockup-tile:hover -{ - background: rgba(255,255,255,.1)!important; -} -html[it-theme=true] #yt-masthead-notifications-content .yt-lockup-tile:hover .yt-ui-ellipsis -{ - background: 0!important; -} -html[it-theme=true] .yt-uix-button-menu-dark-overflow-action-menu -{ - border-color: #ccc; - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-uix-button-menu-dark-overflow-action-menu .yt-uix-button-menu-item:hover -{ - color: var(--yt-swatch-text); - background-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #player #player-mole-container.watch-mole, -html[it-theme=true] #player.off-screen #player-mole-container.video-mole, -html[it-theme=true] #watch-queue-mole.video-mole -{ - -webkit-box-shadow: 0 0 17px 3px rgba(0,0,0,.17); - box-shadow: 0 0 17px 3px rgba(0,0,0,.17); -} -html[it-theme=true] .watch-queue-info .tv-queue-details -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #watch-queue .watch-queue-header -{ - background: #1a1a1a; -} -html[it-theme=true] #watch-queue .autoplay-dismiss-bar, -html[it-theme=true] #watch-queue .watch-queue-control-bar -{ - color: var(--yt-swatch-text); - border-top: 1px solid #3a3a3a; -} -html[it-theme=true] .autoplay-dismiss-bar .autoplay-dismiss-button -{ - color: #4182ef; -} -html[it-theme=true] .watch-queue-control-bar .watch-queue-count, -html[it-theme=true] .watch-queue-items-list > li:before -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #watch-queue .watch-queue-info .tv-queue-title, -html[it-theme=true] #watch-queue .watch-queue-info .watch-queue-title, -html[it-theme=true] #watch-queue .watch-queue-items-list .yt-spinner, -html[it-theme=true] .watch-queue-sections .yt-spinner -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] #watch-queue .autoplay-control-container, -html[it-theme=true] .up-next-item-container, -html[it-theme=true] .up-next-item-container .yt-ui-ellipsis, -html[it-theme=true] .watch-queue-items-list > li, -html[it-theme=true] .watch-queue-items-list > li .yt-ui-ellipsis -{ - background-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .watch-queue-items-list > li.currently-playing, -html[it-theme=true] .watch-queue-items-list > li.currently-playing .yt-ui-ellipsis -{ - background-color: #3a3a3a; -} -html[it-theme=true] #player-playlist .playlist-videos-list > .up-next-item-container:hover .yt-ui-ellipsis, -html[it-theme=true] .up-next-item-container:hover, -html[it-theme=true] .up-next-item-container:hover .yt-ui-ellipsis, -html[it-theme=true] .watch-queue-items-list > li:hover, -html[it-theme=true] .watch-queue-items-list > li:hover .yt-ui-ellipsis -{ - background-color: #525252; -} -html[it-theme=true] .watch-queue-items-list .currently-playing .watch-queue-video .video-thumb -{ - border: 2px solid #c03636; -} -html[it-theme=true] #safety-form p.safety-submit, -html[it-theme=true] .yt-picker-section -{ - border-top: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .playlist-videos-list .watch-queue-video h4 -{ - color: #cacaca; -} -html[it-theme=true] .playlist-videos-list .video-uploader-byline, -html[it-theme=true] .yt-uix-button-menu-dark-overflow-action-menu .yt-uix-button-menu-item.disabled, -html[it-theme=true] .yt-uix-button-menu-dark-overflow-action-menu .yt-uix-button-menu-item.disabled:hover -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .autoplay-control-bar .autoplay-label -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .autoplay-control-bar .yt-uix-form-input-checkbox-container .yt-uix-form-input-paper-toggle-bar -{ - background-color: #686868; -} -html[it-theme=true] .autoplay-control-bar .yt-uix-form-input-checkbox-container .yt-uix-form-input-paper-toggle-button -{ - background-color: #bdbdbd; -} -html[it-theme=true] .autoplay-control-bar .yt-uix-form-input-checkbox-container.checked .yt-uix-form-input-paper-toggle-bar -{ - background-color: #345182; -} -html[it-theme=true] .autoplay-control-bar .yt-uix-form-input-checkbox-container.checked .yt-uix-form-input-paper-toggle-button -{ - background-color: #4182ef; -} -html[it-theme=true] .overlay-confirmation-preferences-dialog .overlay-confirmation-delivery-method -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] #yt-keyboard-shortcuts-dialog .yt-dialog-title -{ - color: var(--yt-swatch-text); - border-bottom: 1px solid #767676; -} -html[it-theme=true] #yt-keyboard-shortcuts-dialog .yt-dialog-fg -{ - background-color: rgba(0,0,0,.85); -} -html[it-theme=true] #yt-keyboard-shortcuts-dialog .yt-dialog-fg-content -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .yt-keyboard-shortcut-group, -html[it-theme=true] .yt-keyboard-shortcut-key, -html[it-theme=true] .yt-keyboard-shortcuts-clickable -{ - color: #dd0; -} -html[it-theme=true] .yt-picker-header -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] #yt-picker-country-footer, -html[it-theme=true] #yt-picker-language-footer, -html[it-theme=true] #yt-picker-safetymode-footer -{ - color: var(--yt-swatch-text)!important; - background: var(--yt-swatch-primary)!important; - -webkit-box-shadow: 0 1px 2px #ccc; - box-shadow: 0 1px 2px #ccc; -} -html[it-theme=true] .ytp-keyboard-focus .ytp-button:focus, -html[it-theme=true] .ytp-keyboard-focus a:focus -{ - -webkit-box-shadow: inset 0 0 0 2px rgba(27,127,204,.8); - box-shadow: inset 0 0 0 2px rgba(27,127,204,.8); -} -html[it-theme=true] .html5-video-player -{ - background-color: #000; -} -html[it-theme=true] .html5-video-player a:hover -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .html5-video-player:not(.ytp-touch-mode)::-webkit-scrollbar -{ - background-color: #424242; -} -html[it-theme=true] .html5-video-player:not(.ytp-touch-mode)::-webkit-scrollbar-track -{ - background-color: #424242; -} -html[it-theme=true] .html5-video-player:not(.ytp-touch-mode)::-webkit-scrollbar-thumb -{ - border: 1px solid #424242; - background-color: #8e8e8e; -} -html[it-theme=true] .ytp-chrome-controls .ytp-button[aria-pressed]:after, -html[it-theme=true] .ytp-swatch-background-color, -html[it-theme=true] .ytp-swatch-background-color-secondary -{ - background-color: #f12b24; -} -html[it-theme=true] .ytp-color-white .ytp-chrome-controls .ytp-button[aria-pressed]:after -{ - background-color: #ddd; -} -html[it-theme=true] .ytp-color-blue .ytp-chrome-controls .ytp-button[aria-pressed]:after -{ - background-color: #3793e6; -} -html[it-theme=true] .ytp-dni .ytp-swatch-background-color, -html[it-theme=true] .ytp-dni .ytp-swatch-background-color-secondary -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .ytp-color-white .ytp-settings-button.ytp-3d-badge-grey:after, -html[it-theme=true] .ytp-color-white .ytp-settings-button.ytp-3d-badge:after, -html[it-theme=true] .ytp-color-white .ytp-settings-button.ytp-4k-quality-badge:after, -html[it-theme=true] .ytp-color-white .ytp-settings-button.ytp-5k-quality-badge:after, -html[it-theme=true] .ytp-color-white .ytp-settings-button.ytp-8k-quality-badge:after, -html[it-theme=true] .ytp-color-white .ytp-settings-button.ytp-hd-quality-badge:after, -html[it-theme=true] .ytp-color-white .ytp-swatch-background-color -{ - background-color: #ddd; -} -html[it-theme=true] .ytp-color-white .ytp-swatch-background-color-secondary, -html[it-theme=true] .ytp-sparkline > span -{ - background-color: #aaa; -} -html[it-theme=true] .ytp-color-blue .ytp-settings-button.ytp-3d-badge-grey:after, -html[it-theme=true] .ytp-color-blue .ytp-settings-button.ytp-3d-badge:after, -html[it-theme=true] .ytp-color-blue .ytp-settings-button.ytp-4k-quality-badge:after, -html[it-theme=true] .ytp-color-blue .ytp-settings-button.ytp-5k-quality-badge:after, -html[it-theme=true] .ytp-color-blue .ytp-settings-button.ytp-8k-quality-badge:after, -html[it-theme=true] .ytp-color-blue .ytp-settings-button.ytp-hd-quality-badge:after, -html[it-theme=true] .ytp-color-blue .ytp-swatch-background-color, -html[it-theme=true] .ytp-color-blue .ytp-swatch-background-color-secondary -{ - background-color: #3793e6; -} -html[it-theme=true] .ytp-swatch-color -{ - color: #f12b24; -} -html[it-theme=true] .ytp-dni .ytp-swatch-color -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .ytp-color-white .ytp-swatch-color -{ - color: #ddd; -} -html[it-theme=true] .ytp-color-blue .ytp-swatch-color -{ - color: #3793e6; -} -html[it-theme=true] .video-ad-status-bar -{ - background-color: #000; -} -html[it-theme=true] .html5-video-player .videoAdUiAdInfoPopupText a, -html[it-theme=true] .html5-video-player .videoAdUiAdInfoPopupText a:hover -{ - color: #167ac6; -} -html[it-theme=true] .html5-video-player .attribution-button -{ - text-shadow: #000 0 0 8px,rgba(0,0,0,.9) 0 0 4px; -} -html[it-theme=true] .ytp-ad-visit-advertiser:hover .ytp-ad-visit-advertiser-text, -html[it-theme=true] .ytp-autohide .ytp-ad-attribution-bar, -html[it-theme=true] .ytp-hide-controls .ytp-ad-attribution-bar, -html[it-theme=true] .ytp-iv-drawer-open .ytp-ad-attribution-bar -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .ytp-ad-visit-advertiser-text -{ - color: rgba(255,255,255,.75); -} -html[it-theme=true] .ytp-ad-skip-slot -{ - text-shadow: 0 0 4px rgba(0,0,0,.75); -} -html[it-theme=true] .ytp-ad-skip-button -{ - color: var(--yt-swatch-text); - border: 1px solid rgba(255,255,255,.5); - background: rgba(0,0,0,.7); -} -html[it-theme=true] .yt-badge, -html[it-theme=true] .yt-badge-ypc, -html[it-theme=true] .yt-badge-ypc-free, -html[it-theme=true] .yt-badge-ypc-purchased, -html[it-theme=true] .yt-badge-ypc-seasonpass -{ - color: var(--yt-swatch-text)!important; - border: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .ytp-ad-skip-button:hover -{ - background: rgba(0,0,0,.9); -} -html[it-theme=true] .annotation.iv-promo .iv-promo-contents .iv-promo-txt strong, -html[it-theme=true] .standalone-ypc-badge-renderer-icon -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .review-aggregate-badge-renderer-text, -html[it-theme=true] .standalone-ypc-badge-renderer-label -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .standalone-ypc-badge-renderer-icon-available -{ - background: #2793e6; -} -html[it-theme=true] .standalone-ypc-badge-renderer-icon-not-available -{ - background: #b8b8b8; -} -html[it-theme=true] .standalone-ypc-badge-renderer-icon-purchased -{ - background: #767676; -} -html[it-theme=true] .yt-badge-ad -{ - color: var(--yt-swatch-text); - background: #e6bc27; -} -html[it-theme=true] .yt-badge-live -{ - color: #e62117; - border: 1px solid #e62117; -} -html[it-theme=true] .yt-badge-music -{ - color: var(--yt-swatch-text); - background-color: #2793e6; -} -html[it-theme=true] .yt-badge-mde-recoupment -{ - color: #2793e6; - border: 1px solid #2793e6; -} -html[it-theme=true] .standalone-collection-badge-renderer-icon, -html[it-theme=true] .standalone-collection-badge-renderer-text a -{ - color: var(--yt-swatch-text)!important; - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .standalone-collection-red-badge-renderer-icon -{ - color: #e62117; - border: 1px solid var(--yt-swatch-primary)!important; - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .iv-card h2, -html[it-theme=true] .iv-card-product-listing h2, -html[it-theme=true] .standalone-collection-badge-renderer-text -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .standalone-collection-badge-renderer-red-text -{ - color: #e62117; -} -html[it-theme=true] .annotation -{ - color: #000; -} -html[it-theme=true] .video-legacy-annotations .annotation -{ - background: 0; -} -html[it-theme=true] .annotation.iv-branding .iv-branding-context-subscribe -{ - color: #aaa; -} -html[it-theme=true] .annotation.iv-promo -{ - color: #ccc; - background-color: rgba(0,0,0,.8); -} -html[it-theme=true] .annotation.iv-promo:hover -{ - background-color: rgba(0,0,0,.9); -} -html[it-theme=true] .annotation.iv-promo .iv-promo-contents > a -{ - float: none!important; - - color: #ccc; -} -html[it-theme=true] .annotation.iv-promo .iv-promo-contents .iv-promo-badge-live -{ - color: var(--yt-swatch-text); - border: 1px solid var(--yt-swatch-text); - background-color: #e62117; -} -html[it-theme=true] .annotation.iv-promo .iv-promo-img .iv-promo-playlist-length -{ - color: var(--yt-swatch-text); - border-left: 1px solid rgba(255,255,255,.25); - background-color: rgba(0,0,0,.6); -} -html[it-theme=true] .annotation.iv-promo .iv-promo-img .iv-promo-video-duration -{ - color: var(--yt-swatch-text); - background-color: #000; -} -html[it-theme=true] .annotation.iv-promo .iv-promo-contents .iv-promo-txt .iv-promo-link -{ - color: #ffd100; -} -html[it-theme=true] .iv-button -{ - -webkit-box-shadow: 0 1px 0 rgba(0,0,0,.05); - box-shadow: 0 1px 0 rgba(0,0,0,.05); -} -html[it-theme=true] .iv-button:focus, -html[it-theme=true] .iv-button:focus:hover -{ - -webkit-box-shadow: 0 0 0 2px rgba(27,127,204,.4); - box-shadow: 0 0 0 2px rgba(27,127,204,.4); -} -html[it-theme=true] .iv-button, -html[it-theme=true] .iv-button[disabled], -html[it-theme=true] .iv-button[disabled]:active, -html[it-theme=true] .iv-button[disabled]:focus, -html[it-theme=true] .iv-button[disabled]:hover -{ - color: var(--yt-swatch-text); - border-color: #167ac6; - background: #167ac6; -} -html[it-theme=true] .iv-button:hover -{ - background: #126db3; -} -html[it-theme=true] .iv-button:active -{ - background: #095b99; - -webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,.5); - box-shadow: inset 0 1px 0 rgba(0,0,0,.5); -} -html[it-theme=true] .annotation.iv-promo-website-card-cta .iv-promo-contents .iv-promo-txt .iv-promo-action-text -{ - color: #167ac6; -} -html[it-theme=true] .annotation.iv-promo-website-card-cta:hover .iv-promo-contents .iv-promo-txt .iv-promo-action-text -{ - color: #1a92ed; -} -html[it-theme=true] .iv-drawer -{ - color: var(--yt-swatch-text); - background-color: rgba(0,0,0,.2); -} -html[it-theme=true] .iv-drawer-scrolled .iv-drawer-content -{ - border-color: rgba(0,0,0,.4); -} -html[it-theme=true] .iv-drawer-content::-webkit-scrollbar-thumb -{ - background-color: rgba(102,102,102,.5); -} -html[it-theme=true] .iv-card-image, -html[it-theme=true] .iv-card-message -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; -} -html[it-theme=true] .iv-drawer-content:hover::-webkit-scrollbar-thumb -{ - background-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .iv-card, -html[it-theme=true] .iv-card a.iv-click-target, -html[it-theme=true] .iv-card a.iv-click-target:focus, -html[it-theme=true] .iv-card a.iv-click-target:hover -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .iv-card -{ - background-color: var(--yt-swatch-primary)!important; - -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.2); - box-shadow: 0 1px 2px rgba(0,0,0,.2); -} -html[it-theme=true] .iv-card:hover .iv-card-primary-link -{ - color: #167ac6!important; -} -html[it-theme=true] .iv-card-image, -html[it-theme=true] .iv-card-sign-in a -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .iv-card-episode .iv-card-image, -html[it-theme=true] .iv-card-movie .iv-card-image, -html[it-theme=true] .iv-card-playlist .iv-card-image, -html[it-theme=true] .iv-card-video .iv-card-image, -html[it-theme=true] .iv-card-video-duration -{ - background-color: #000; -} -html[it-theme=true] .iv-card-playlist .iv-card-image-overlay -{ - color: #cfcfcf; - background-color: rgba(0,0,0,.7); -} -html[it-theme=true] .iv-card-poll label, -html[it-theme=true] .iv-card-poll.iv-card-poll-voted label.iv-card-poll-choice-checked -{ - color: rgba(0,0,0,.87); -} -html[it-theme=true] .iv-card-poll .iv-card-poll-result -{ - background-color: #dfdfdf; -} -html[it-theme=true] .iv-card-poll .iv-card-poll-result .iv-card-poll-result-bar -{ - background-color: #167ac6; -} -html[it-theme=true] .iv-card-sponsored -{ - color: #999; -} -html[it-theme=true] .iv-ad-info -{ - color: #000; - border: 1px solid #000; - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .iv-ad-info-container .iv-ad-info a, -html[it-theme=true] .iv-ad-info-container .iv-ad-info a:hover -{ - color: #167ac6; -} -html[it-theme=true] .iv-ad-info-callout -{ - border-top-color: #000; -} -html[it-theme=true] .iv-ad-info-icon-container:after -{ - border-top-color: var(--yt-swatch-text); -} -html[it-theme=true] .iv-card-offer-price -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .iv-card-offer-merchant -{ - color: #097a41; -} -html[it-theme=true] .ytp-bezel -{ - background: rgba(0,0,0,.5); -} -html[it-theme=true] .ytp-cards-teaser .ytp-cards-teaser-box -{ - border-bottom: 1px solid var(--yt-swatch-primary)!important; - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .ytp-cards-teaser .ytp-cards-teaser-text, -html[it-theme=true] .ytp-cards-teaser-shown .ytp-cards-teaser .ytp-cards-teaser-text -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .ytp-sb-subscribe -{ - color: var(--yt-swatch-text); - background-color: #e62117; -} -html[it-theme=true] .ytp-sb-unsubscribe -{ - color: rgba(17,17,17,.6); - background-color: #eee; -} -a.ytp-ce-link:hover, -a.ytp-ce-link:visited -{ - color: #2793e6; -} -html[it-theme=true] .ytp-ce-playlist-title, -html[it-theme=true] .ytp-ce-video-title -{ - color: var(--yt-swatch-text); - text-shadow: 0 1px 0 rgba(0,0,0,.4); -} -html[it-theme=true] .ytp-ce-playlist-count-text, -html[it-theme=true] .ytp-ce-video-duration -{ - color: rgba(255,255,255,.8); -} -html[it-theme=true] .ytp-ce-video-duration -{ - background-color: rgba(0,0,0,.8); -} -html[it-theme=true] .ytp-ce-playlist-count -{ - background-color: rgba(0,0,0,.75); -} -html[it-theme=true] .ytp-ce-channel-metadata, -html[it-theme=true] .ytp-ce-channel-subscribers-text, -html[it-theme=true] .ytp-ce-website-metadata, -html[it-theme=true] .ytp-ce-website-title -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .ytp-ce-channel-this .ytp-ce-channel-metadata -{ - border-top: 1px solid #ebebeb; -} -html[it-theme=true] .ytp-ce-website .ytp-ce-expanding-image -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .ytp-copytext::-moz-selection -{ - color: var(--yt-swatch-text)!important; - background-color: var(--yt-swatch-text); -} -html[it-theme=true] .subscribecard-endscreen .ytp-author-name, -html[it-theme=true] .ytp-upnext-author -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .ytp-thumbnail-overlay-curtain -{ - background: rgba(0,0,0,.6); -} -html[it-theme=true] .ytp-upnext-cancel-button:hover -{ - background-color: rgba(255,255,255,.25); -} -html[it-theme=true] .ytp-videowall-still-listlabel-mix, -html[it-theme=true] .ytp-videowall-still-listlabel-regular -{ - color: var(--yt-swatch-text); - background-color: rgba(0,0,0,.7); -} -html[it-theme=true] .ytp-videowall-still-info-content -{ - color: var(--yt-swatch-text); - background: #000; -} -html[it-theme=true] .ytp-videowall-still-listlabel, -html[it-theme=true] .ytp-videowall-still:focus .ytp-videowall-still-listlabel, -html[it-theme=true] .ytp-videowall-still:hover .ytp-videowall-still-listlabel -{ - background: rgba(0,0,0,.86); -} -html[it-theme=true] .ytp-fresca-slant-overlay -{ - background: rgba(0,0,0,.25); -} -html[it-theme=true] .ytp-fresca-suggested-promo-central -{ - color: var(--yt-swatch-text)!important; - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .ytp-fresca-suggested-promo-central:hover .ytp-fresca-suggested-title, -html[it-theme=true] .ytp-fresca-suggested-sidebar:hover .ytp-fresca-suggested-title -{ - color: #167ac6; -} -html[it-theme=true] .ytp-fresca-suggested-sidebar -{ - color: #000; - background-color: var(--yt-swatch-primary)!important; - -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.1); - box-shadow: 0 1px 2px rgba(0,0,0,.1); -} -html[it-theme=true] .ytp-fresca-suggested-promo-sidebar -{ - background-color: rgba(0,0,0,.4); -} -html[it-theme=true] .ytp-fresca-suggested-content -{ - color: var(--yt-swatch-text)!important; - -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.1); - box-shadow: 0 1px 2px rgba(0,0,0,.1); -} -html[it-theme=true] .ytp-fresca-suggested-header, -html[it-theme=true] .ytp-fresca-suggested-title -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .ytp-fresca-suggested-image-badge -{ - color: var(--yt-swatch-text); - background-color: #000; -} -html[it-theme=true] .ytp-fresca-suggested-image-badge.ytp-fresca-suggested-image-badge-live -{ - color: #e62117; - border: 1px solid #e62117; - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .iv-drawer-scrolled .ytp-fresca-suggested-sidebar-items -{ - border-color: rgba(0,0,0,.4); -} -html[it-theme=true] .ytp-multicam-menu-item[aria-checked=true] -{ - border: 2px solid #ea0000; -} -html[it-theme=true] .ytp-multicam-menu-item-title -{ - -webkit-box-shadow: inset 0 -32px 32px -21px rgba(8,8,8,.9); - box-shadow: inset 0 -32px 32px -21px rgba(8,8,8,.9); -} -html[it-theme=true] .ytp-big-mode .ytp-multicam-menu-item-title -{ - -webkit-box-shadow: inset 0 -48px 48px -31px rgba(8,8,8,.9); - box-shadow: inset 0 -48px 48px -31px rgba(8,8,8,.9); -} -html[it-theme=true] .ytp-offline-slate-bar -{ - color: var(--yt-swatch-text); - background: rgba(0,0,0,.8); -} -html[it-theme=true] .ytp-menuitem:not([aria-disabled=true]):hover -{ - background-color: rgba(255,255,255,.1); -} -html[it-theme=true] .ytp-keyboard-focus .ytp-menuitem:focus .ytp-menuitem-label -{ - -webkit-box-shadow: inset 2px 2px 0 rgba(27,127,204,.8),inset 0 -2px 0 rgba(27,127,204,.8); - box-shadow: inset 2px 2px 0 rgba(27,127,204,.8),inset 0 -2px 0 rgba(27,127,204,.8); -} -html[it-theme=true] .ytp-keyboard-focus .ytp-menuitem[role=menuitemradio]:focus .ytp-menuitem-label -{ - -webkit-box-shadow: inset 2px 2px 0 rgba(27,127,204,.8),inset -2px -2px 0 rgba(27,127,204,.8); - box-shadow: inset 2px 2px 0 rgba(27,127,204,.8),inset -2px -2px 0 rgba(27,127,204,.8); -} -html[it-theme=true] .ytp-keyboard-focus .ytp-menuitem:focus .ytp-menuitem-content -{ - -webkit-box-shadow: inset -2px -2px 0 rgba(27,127,204,.8),inset 0 2px 0 rgba(27,127,204,.8); - box-shadow: inset -2px -2px 0 rgba(27,127,204,.8),inset 0 2px 0 rgba(27,127,204,.8); -} -html[it-theme=true] .ytp-menuitem-label-count -{ - color: #ccc; -} -html[it-theme=true] .ytp-panel-header -{ - color: #eee; - border-bottom: 1px solid rgba(255,255,255,.2); -} -html[it-theme=true] .ytp-menuitem-toggle-checkbox -{ - background: rgba(255,255,255,.3); -} -html[it-theme=true] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox -{ - background: rgba(255,255,255,.5); -} -html[it-theme=true] .ytp-menuitem-toggle-checkbox:after -{ - background-color: #bdbdbd; -} -html[it-theme=true] .ytp-panel-menu -{ - color: #eee; -} -html[it-theme=true] .ytp-pause-overlay .ytp-next, -html[it-theme=true] .ytp-pause-overlay .ytp-previous -{ - background: #303030; - -webkit-box-shadow: 0 1px 8px rgba(0,0,0,.2); - box-shadow: 0 1px 8px rgba(0,0,0,.2); -} -html[it-theme=true] .ytp-pause-overlay a.ytp-suggestion-link -{ - background: #000; -} -html[it-theme=true] .ytp-playlist-menu -{ - background: rgba(0,0,0,.8); -} -html[it-theme=true] .ytp-playlist-menu-header -{ - border-bottom: 1px solid #444; -} -html[it-theme=true] .ytp-playlist-menu-subtitle -{ - color: #b8b8b8; -} -html[it-theme=true] .ypc-loaded .ytp-scrubber-button.ytp-swatch-background-color -{ - background-color: #167ac6; -} -html[it-theme=true] .ad-interrupting .ytp-scrubber-button.ytp-swatch-background-color -{ - background-color: #fc0; -} -html[it-theme=true] .ytp-keyboard-focus .ytp-progress-bar:focus -{ - -webkit-box-shadow: 0 0 0 2px rgba(27,127,204,.8); - box-shadow: 0 0 0 2px rgba(27,127,204,.8); -} -html[it-theme=true] .ytp-keyboard-focus .ytp-volume-panel:focus, -html[it-theme=true] .ytp-keyboard-focus .ytp-webgl-spherical-control:focus -{ - -webkit-box-shadow: inset 0 0 0 2px rgba(27,127,204,.8); - box-shadow: inset 0 0 0 2px rgba(27,127,204,.8); -} -html[it-theme=true] .ytp-scrubber-pull-indicator:after, -html[it-theme=true] .ytp-scrubber-pull-indicator:before -{ - border-color: #eaeaea; -} -html[it-theme=true] .ytp-progress-list -{ - background: rgba(255,255,255,.2); -} -html[it-theme=true] .ytp-load-progress.ytp-fast-load -{ - background: #00838f; -} -html[it-theme=true] .ypc-loaded .ytp-play-progress.ytp-swatch-background-color -{ - background: #167ac6; -} -html[it-theme=true] .ad-interrupting .ytp-play-progress.ytp-swatch-background-color -{ - background: #fc0; -} -html[it-theme=true] .ytp-hover-progress-light -{ - background: rgba(255,255,255,.5); -} -html[it-theme=true] .ytp-15m-progress, -html[it-theme=true] .ytp-1m-progress, -html[it-theme=true] .ytp-30m-progress, -html[it-theme=true] .ytp-60m-progress -{ - background: #000; -} -html[it-theme=true] .ytp-settings-button.ytp-3d-badge:after, -html[it-theme=true] .ytp-settings-button.ytp-4k-quality-badge:after, -html[it-theme=true] .ytp-settings-button.ytp-5k-quality-badge:after, -html[it-theme=true] .ytp-settings-button.ytp-8k-quality-badge:after, -html[it-theme=true] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #f12b24; -} -html[it-theme=true] .ytp-settings-button.ytp-3d-badge-grey:after -{ - background-color: var(--yt-swatch-text); -} -html[it-theme=true] .ytp-big-mode .ytp-settings-button.ytp-3d-badge-grey:after, -html[it-theme=true] .ytp-big-mode .ytp-settings-button.ytp-3d-badge:after, -html[it-theme=true] .ytp-big-mode .ytp-settings-button.ytp-4k-quality-badge:after, -html[it-theme=true] .ytp-big-mode .ytp-settings-button.ytp-5k-quality-badge:after, -html[it-theme=true] .ytp-big-mode .ytp-settings-button.ytp-8k-quality-badge:after, -html[it-theme=true] .ytp-big-mode .ytp-settings-button.ytp-hd-quality-badge:after -{ - color: var(--yt-swatch-text); - text-shadow: 0 2px 0 rgba(0,0,0,.6); -} -html[it-theme=true] .ytp-color-white.ytp-big-mode .ytp-settings-button.ytp-3d-badge-grey:after, -html[it-theme=true] .ytp-color-white.ytp-big-mode .ytp-settings-button.ytp-3d-badge:after, -html[it-theme=true] .ytp-color-white.ytp-big-mode .ytp-settings-button.ytp-4k-quality-badge:after, -html[it-theme=true] .ytp-color-white.ytp-big-mode .ytp-settings-button.ytp-5k-quality-badge:after, -html[it-theme=true] .ytp-color-white.ytp-big-mode .ytp-settings-button.ytp-8k-quality-badge:after, -html[it-theme=true] .ytp-color-white.ytp-big-mode .ytp-settings-button.ytp-hd-quality-badge:after -{ - color: #000; -} -html[it-theme=true] .ytp-share-panel -{ - background: rgba(0,0,0,.8); -} -html[it-theme=true] .ytp-share-panel-include-playlist -{ - color: #999; -} -html[it-theme=true] .ytp-spinner-message -{ - background-color: #000; -} -html[it-theme=true] .ytp-spinner-dot:before -{ - background-color: rgba(204,204,204,0); -} -html[it-theme=true] .ytp-storyboard-lens-timestamp, -html[it-theme=true] .ytp-tooltip-text, -html[it-theme=true] .ytp-tooltip.ytp-preview, -html[it-theme=true] .ytp-tooltip.ytp-text-detail.ytp-preview.ytp-has-duration .ytp-tooltip-duration -{ - background-color: rgba(28,28,28,.9); -} -html[it-theme=true] .ytp-live-badge:before -{ - background: #757575; -} -html[it-theme=true] .ytp-live-badge[disabled]:before -{ - background: #f12b24; -} -html[it-theme=true] .ytp-tooltip-bg -{ - background-color: #000; -} -html[it-theme=true] .ytp-tooltip.ytp-text-detail .ytp-tooltip-title -{ - color: #aaa; -} -html[it-theme=true] .ytp-unmute.ytp-popup -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .ytp-unmute-inner -{ - background-color: rgba(0,0,0,.6); -} -html[it-theme=true] .html5-video-info-panel -{ - color: var(--yt-swatch-text); - background: rgba(28,28,28,.8); -} -html[it-theme=true] .ytp-sparkline -{ - border-bottom: 1px solid var(--yt-swatch-text); -} -html[it-theme=true] .ytp-video-menu-item[aria-checked=true] -{ - background-color: rgba(255,255,255,.1); -} -html[it-theme=true] .ytp-video-menu-item:hover, -html[it-theme=true] .ytp-video-menu-item[aria-checked=true]:hover -{ - background-color: rgba(255,255,255,.15); -} -html[it-theme=true] .ytp-video-menu-item-now-playing -{ - color: #f12b24; -} -html[it-theme=true] .ytp-color-white .ytp-video-menu-item-now-playing -{ - color: #ddd; -} -html[it-theme=true] .ytp-color-blue .ytp-video-menu-item-now-playing -{ - color: #3793e6; -} -html[it-theme=true] .ytp-video-menu-item-author -{ - color: #b8b8b8; -} -html[it-theme=true] .ytp-video-menu-item-thumbnail -{ - border: 0 solid #f12b24; -} -html[it-theme=true] .ytp-color-white .ytp-video-menu-item-thumbnail -{ - border-color: #ddd; -} -html[it-theme=true] .ytp-color-blue .ytp-video-menu-item-thumbnail -{ - border-color: #3793e6; -} -html[it-theme=true] .ytp-drawer-open-button -{ - background: rgba(0,0,0,.7); -} -html[it-theme=true] .ytp-drawer-open-button:after -{ - border-right-color: #aaa; -} -html[it-theme=true] .html5-ypc-purchase -{ - border: 1px solid #36649c; - background: #167ac6; -} -html[it-theme=true] .html5-ypc-purchase:hover -{ - background: #126db3; -} -html[it-theme=true] .html5-ypc-endscreen, -html[it-theme=true] .ima-sdk-frame-native body -{ - background: #000; -} -html[it-theme=true] .ytp-ypc-clickwrap-header -{ - border-bottom: 1px solid #888; -} -html[it-theme=true] .ytp-ypc-clickwrap-confirm -{ - background-color: #37d; -} -html[it-theme=true] .ytp-ypc-clickwrap-confirm:hover -{ - background-color: #26c; -} -html[it-theme=true] .close-padding -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .yt-text-overlay .close-padding:hover .close-button -{ - background-color: rgba(0,0,0,.15); - -webkit-box-shadow: inset 0 -1px 3px rgba(0,0,0,.3),0 1px 0 rgba(255,255,255,.5); - box-shadow: inset 0 -1px 3px rgba(0,0,0,.3),0 1px 0 rgba(255,255,255,.5); -} -html[it-theme=true] .recall-button -{ - color: var(--yt-swatch-text); - border: 1px solid rgba(255,255,255,.498039); - -webkit-box-shadow: rgba(0,0,0,.701961) 0 4px 3px; - box-shadow: rgba(0,0,0,.701961) 0 4px 3px; -} -html[it-theme=true] .attribution-button -{ - color: var(--yt-swatch-text); - text-shadow: rgba(0,0,0,.7) 0 4px 4px; -} -html[it-theme=true] .yt-text-overlay .attribution-button -{ - color: #888; -} -html[it-theme=true] .text-description, -html[it-theme=true] .text-title -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .ima-container-stack -{ - background-color: var(--yt-swatch-text); -} -html[it-theme=true] .ima-container-selector -{ - background: #666; - -webkit-box-shadow: 0 4px 3px rgba(0,0,0,.7); - box-shadow: 0 4px 3px rgba(0,0,0,.7); -} -html[it-theme=true] .ima-container-selector:hover -{ - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .ima-container-rotator .ima-container-highlight:hover -{ - border-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .ima-container-stack .ima-container-highlight:hover -{ - background-color: #999!important; -} -html[it-theme=true] .ima-container-active -{ - background: #fc0!important; -} -html[it-theme=true] .ima-container-slider .text-container -{ - background-color: #000; -} -html[it-theme=true] .controls.endslate, -html[it-theme=true] .controls.fullslot -{ - background: -webkit-linear-gradient(#333,#000) ; - background: -webkit-gradient(linear,left top, left bottom,from(#333),to(#000)); - background: -o-linear-gradient(#333,#000); - background: linear-gradient(#333,#000); -} -html[it-theme=true] .click-layer -{ - background: 0; -} -html[it-theme=true] .text-inner-container -{ - -webkit-box-shadow: rgba(0,0,0,.7) 0 5px 5px; - box-shadow: rgba(0,0,0,.7) 0 5px 5px; -} -html[it-theme=true] .yt-text-overlay .text-container .text-inner-container -{ - border: 1px solid rgba(0,0,0,.6); - background-color: rgba(0,0,0,.6); -} -html[it-theme=true] .yt-text-overlay .controls:hover .text-inner-container -{ - border: 1px solid #3a3a3a; -} -html[it-theme=true] .text-image -{ - -webkit-box-shadow: rgba(0,0,0,.498039) 0 3px 5px; - box-shadow: rgba(0,0,0,.498039) 0 3px 5px; -} -html[it-theme=true] .text-image-duration -{ - font: 10px arial,sans-serif; - - color: var(--yt-swatch-text); - background: #000; -} -html[it-theme=true] .yt-text-overlay .text-title -{ - text-shadow: #000 0 -1px 0; -} -html[it-theme=true] .text-ad-channel, -html[it-theme=true] .text-description, -html[it-theme=true] .text-title -{ - text-shadow: rgba(0,0,0,.7) 0 4px 4px; -} -html[it-theme=true] .text-ad-channel -{ - color: #f9fcc0; -} -html[it-theme=true] .yt-text-overlay .text-ad-channel -{ - color: #eade90; - text-shadow: #000 0 -1px 0; -} -html[it-theme=true] .viewmode-fullscreen .text-ad-channel -{ - color: #ccc; -} -html[it-theme=true] .yt-text-overlay.viewmode-fullscreen .text-ad-channel -{ - color: #eade90; -} -html[it-theme=true] .fullslot-attribution-button -{ - color: #999; -} -html[it-theme=true] .fullslot-ad-break, -html[it-theme=true] .fullslot-visible-url, -html[it-theme=true] .videoAdInterstitial > p -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .fullslot-autoclose -{ - color: #999; -} -html[it-theme=true] .iv-endcap-background -{ - background-color: rgba(255,255,255,.9); -} -html[it-theme=true] .iv-endcap-description, -html[it-theme=true] .iv-endcap-headline -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .iv-endcap-action -{ - color: var(--yt-swatch-text)!important; - background-color: #167ac6; -} -html[it-theme=true] .videoAdInterstitial -{ - background-color: #000; -} -html[it-theme=true] .videoAdUi -{ - background-color: transparent; -} -html[it-theme=true] .videoAdUiRedesign .videoAdUi -{ - text-shadow: 0 0 4px rgba(0,0,0,.75); -} -html[it-theme=true] .videoAdUiTopBar -{ - border-bottom: 1px solid #444; - background: #000; -} -html[it-theme=true] .videoAdUiTopBarWithGradients -{ - background-color: transparent; -} -html[it-theme=true] .videoAdUiRedesign .videoAdUiTopBarWithGradients -{ - -webkit-box-shadow: inset 0 120px 90px -90px rgba(0,0,0,.65); - box-shadow: inset 0 120px 90px -90px rgba(0,0,0,.65); -} -html[it-theme=true] .videoAdUiRedesign .videoAdUiBottomBarMessage -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .videoAdUiProgressBar -{ - background-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .videoAdUiProgress -{ - border-right: solid 1px #666; -} -html[it-theme=true] .videoAdUiRedesign .videoAdUiProgress -{ - background: #edcb3c; -} -html[it-theme=true] .videoAdUiAuthorIcon -{ - background: #000; -} -html[it-theme=true] .videoAdUiAuthorName -{ - color: #ccc; -} -html[it-theme=true] .videoAdUiRedesign .videoAdUiAuthorName, -html[it-theme=true] .videoAdUiRedesign .videoAdUiTitle -{ - color: rgba(255,255,255,.75); -} -html[it-theme=true] .videoAdUiLearnMore -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .videoAdUiLearnMoreText -{ - color: #e5bb00; -} -html[it-theme=true] .videoAdUiRedesign .videoAdUiAuthorName:hover, -html[it-theme=true] .videoAdUiRedesign .videoAdUiTitle:hover, -html[it-theme=true] .videoAdUiRedesign .videoAdUiVisitAdvertiserLink:hover, -html[it-theme=true] .videoAdUiTitle -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .videoAdUiAttributionContainer -{ - color: var(--yt-swatch-text); - text-shadow: 0 0 5px rgba(0,0,0,.8); -} -html[it-theme=true] .videoAdUiAttributionContainer-gvn -{ - color: #e5bb00; -} -html[it-theme=true] .videoAdUiAdInfoPopup -{ - color: var(--yt-swatch-text)!important; - border: 1px solid #000; - background: var(--yt-swatch-text); -} -html[it-theme=true] .videoAdUiRedesign .videoAdUiAdInfoPopup -{ - color: var(--yt-swatch-text)!important; - border: 1px solid #aaa; - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .videoAdUiAdInfoPopupCallout -{ - border-top: 5px solid var(--yt-swatch-text); -} -html[it-theme=true] .videoAdUiRedesign .videoAdUiVisitAdvertiserLink -{ - color: rgba(255,255,255,.75); -} -html[it-theme=true] .videoAdUiBrandPrecapBrandName, -html[it-theme=true] .videoAdUiBrandPrecapTextContainer, -html[it-theme=true] .videoAdUiRedesign .videoAdUiTopButtons, -html[it-theme=true] .videoAdUiShare -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .videoAdUiRedesign .videoAdUiTopButtonCallout -{ - border-bottom: 5px solid #444; -} -html[it-theme=true] .videoAdUiRedesign .videoAdUiTopButtonTooltip -{ - color: var(--yt-swatch-text); - background: #444; -} -html[it-theme=true] .videoAdUi-mobile.videoAdUiRedesign .videoAdUiPreSkipContainer, -html[it-theme=true] .videoAdUiRedesign .videoAdUiPreSkipContainer -{ - background: rgba(0,0,0,.4); -} -html[it-theme=true] .videoAdUiBrandPrecapContainer -{ - background-color: #000; -} -html[it-theme=true] .videoAdUiBrandPrecapBrandMessage -{ - color: rgba(255,255,255,.8); -} -html[it-theme=true] .videoAdUiBrandInteractionButton -{ - background: #111; -} -html[it-theme=true] .videoAdUiBrandInteractionButton:hover -{ - border: 2px solid var(--yt-swatch-text); - -webkit-box-shadow: 0 3px 6px; - box-shadow: 0 3px 6px; -} -html[it-theme=true] .videoAdUiBrandInteractionButton:active -{ - background: #a1c2fa; -} -html[it-theme=true] .videoAdUiBrandInteractionButton.selected -{ - background: #4182ef; - -webkit-box-shadow: 0 3px 6px; - box-shadow: 0 3px 6px; -} -html[it-theme=true] .videoAdUiBrandInteractionMessageBox -{ - color: var(--yt-swatch-text); - background: rgba(31,31,31,.5); -} -html[it-theme=true] .videoAdUiAction, -html[it-theme=true] .videoAdUiPreSkipButton -{ - background: rgba(0,0,0,.8); -} -html[it-theme=true] .videoAdUiPreSkipText -{ - color: #e6e6e6; -} -html[it-theme=true] .videoAdUiAction -{ - color: var(--yt-swatch-text); - border: 1px solid rgba(255,255,255,.5); -} -html[it-theme=true] .videoAdUi-mobile.videoAdUiRedesign .videoAdUiAction, -html[it-theme=true] .videoAdUiRedesign .videoAdUiAction -{ - background: rgba(0,0,0,.7); -} -html[it-theme=true] .videoAdUiAction:hover -{ - border-color: var(--yt-swatch-text); -} -html[it-theme=true] .videoAdUiRedesign .videoAdUiAction:hover -{ - background: rgba(0,0,0,.9); -} -html[it-theme=true] .videoAdUiPopupBackground -{ - background: rgba(0,0,0,.8); -} -html[it-theme=true] .videoAdUiPopupFrame -{ - border: 1px solid #000; -} -html[it-theme=true] .guide-header p, -html[it-theme=true] .videoAdUiPopupFrame, -html[it-theme=true] .videoAdUiPopupHeading -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .videoAdUiPopupButton, -html[it-theme=true] .videoAdUiPopupButton:hover, -html[it-theme=true] .videoAdUiPopupDefaultButton, -html[it-theme=true] .videoAdUiPopupDefaultButton:hover, -html[it-theme=true] .videoAdUiPopupFrame a, -html[it-theme=true] .videoAdUiPopupFrame a:hover -{ - color: #167ac6; -} -html[it-theme=true] .videoAdUi.blazer .videoAdUiProgressBar -{ - background-color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .videoAdUi.blazer .videoAdUiProgress -{ - background-color: #e6bc27; -} -html[it-theme=true] .videoAdUi.blazer .videoAdUiBuffer -{ - background-color: var(--yt-swatch-text); -} -html[it-theme=true] .videoAdUi.blazer .videoAdUiAction -{ - border: 1px solid rgba(255,255,255,.25); - background-color: rgba(0,0,0,.5); -} -html[it-theme=true] .videoAdUi.blazer .videoAdUiPreSkipButton -{ - background-color: rgba(0,0,0,.25); -} -html[it-theme=true] .guide-item:hover -{ - color: var(--yt-swatch-text)!important; - background-color: rgba(255,255,255,.1)!important; -} -html[it-theme=true] #yt-masthead-notifications-header, -html[it-theme=true] .comment-collapsed -{ - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] #masthead-appbar-container, -html[it-theme=true] #yt-masthead-container -{ - -webkit-box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12); - box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12); -} -html[it-theme=true] .watch-title-container -{ - color: var(--yt-swatch-text); -} -html[it-theme=true] .comment-collapsed, -html[it-theme=true] .comment-simplebox-prompt, -html[it-theme=true] .comment-simplebox-text, -html[it-theme=true] .yt-uix-button-subscribe-branded .subscribe-label -{ - color: var(--yt-swatch-text)!important; -} -html[it-theme=true] .yt-dialog-fg, -html[it-theme=true] .yt-uix-overlay-actions, -html[it-theme=true] .yt-uix-overlay-fg -{ - border-color: var(--yt-swatch-primary)!important; - background: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .yt-uix-clickcard-card-reverse .yt-uix-card-body-arrow-vertical, -html[it-theme=true] .yt-uix-hovercard-card-reverse .yt-uix-card-body-arrow-vertical -{ - border-bottom-color: var(--yt-swatch-primary)!important; -} -@media screen and (max-width:656px) -{ - html[it-theme=true] #player-playlist .watch-playlist - { - border-top: 1px solid #3a3a3a; - } - html[it-theme=true] .iv-merch-item:nth-child(4n+5) - { - border-left: 1px solid var(--yt-swatch-primary)!important; - } -} -@media screen and (min-width:1294px) and (min-height:630px) -{ - html[it-theme=true] .iv-promo-shelf-next-show-container - { - border-right: 1px solid var(--yt-swatch-primary)!important; - } - html[it-theme=true] .iv-merch-item:nth-child(4n+5) - { - border-left: 1px solid var(--yt-swatch-primary)!important; - } -} -@media screen and (min-width:1720px) and (min-height:980px) -{ - html[it-theme=true] .iv-merch-item:nth-child(3n+4) - { - border-left: 1px solid var(--yt-swatch-primary)!important; - } -} -html[it-theme=true] .comment-simplebox-arrow -{ - display: none; -} -html[it-theme=true] .comment-collapsed -{ - border-color: var(--yt-swatch-primary)!important; -} -html[it-theme=true] .logo.masthead-logo-renderer-logo.yt-sprite -{ - -webkit-filter: brightness(2.2) ; - filter: brightness(2.2); -} -html[it-theme=true] #masthead-search .search-btn-component .yt-uix-button-content -{ - -webkit-filter: brightness(4) ; - filter: brightness(4); -} -html[it-theme=true] .ytp-upnext.ytp-suggestion-set -{ - top: 0; -} -html[it-theme=true] .yt-uix-button-icon.yt-uix-button-icon-dismissal.yt-sprite -{ - -webkit-filter: none!important ; - filter: none!important; -} -html[it-theme=true] .yt-uix-shelfslider-next-arrow.yt-uix-tooltip.yt-sprite, -html[it-theme=true] .yt-uix-shelfslider-prev-arrow.yt-uix-tooltip.yt-sprite -{ - -webkit-filter: brightness(3)!important ; - filter: brightness(3)!important; -} - -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #003459!important; - --yt-swatch-primary-darker: #003459!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #007ea7; - - --yt-spec-brand-background-solid:#003459 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#003459 !important; - --yt-spec-general-background-b:#003459 !important; - --yt-spec-general-background-c:#003459 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#003459 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo -{ - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); -} -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #007ea7!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #003459; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #003459; - --yt-playlist-background-item: #003459; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #003459; - --paper-listbox-background-color: #003459; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #003459; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #003459; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #003459; - --yt-menu-focus-background-color: #003459; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #003459; - --yt-main-app-background: #003459; - --yt-main-app-background-tmp: #003459; - --yt-guide-background: #003459; - --yt-dialog-background: #007ea7; - --yt-searchbox-background: #003459!important; - --yt-channel-header-background: #003459; - --yt-sidebar-background: #003459; - --yt-transcript-background: #003459; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #003459; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #003459; - --yt-blue-suggestive: transparent; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-night-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #003459!important; - --yt-swatch-primary-darker: #003459!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #007ea7; - - --yt-spec-brand-background-solid:#003459 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#003459 !important; - --yt-spec-general-background-b:#003459 !important; - --yt-spec-general-background-c:#003459 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#003459 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - html[it-night-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-night-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #007ea7!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #003459; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-night-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-night-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #003459; - --yt-playlist-background-item: #003459; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #003459; - --paper-listbox-background-color: #003459; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #003459; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #003459; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #003459; - --yt-menu-focus-background-color: #003459; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #003459; - --yt-main-app-background: #003459; - --yt-main-app-background-tmp: #003459; - --yt-guide-background: #003459; - --yt-dialog-background: #007ea7; - --yt-searchbox-background: #003459!important; - --yt-channel-header-background: #003459; - --yt-sidebar-background: #003459; - --yt-transcript-background: #003459; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #003459; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #003459; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-night-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #003459!important; - --yt-swatch-primary-darker: #003459!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #007ea7; - - --yt-spec-brand-background-solid:#003459 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#003459 !important; - --yt-spec-general-background-b:#003459 !important; - --yt-spec-general-background-c:#003459 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#003459 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - html[it-night-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-night-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #007ea7!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #003459; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-night-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-night-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #003459; - --yt-playlist-background-item: #003459; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #003459; - --paper-listbox-background-color: #003459; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #003459; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #003459; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #003459; - --yt-menu-focus-background-color: #003459; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #003459; - --yt-main-app-background: #003459; - --yt-main-app-background-tmp: #003459; - --yt-guide-background: #003459; - --yt-dialog-background: #007ea7; - --yt-searchbox-background: #003459!important; - --yt-channel-header-background: #003459; - --yt-sidebar-background: #003459; - --yt-transcript-background: #003459; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #003459; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #003459; - --yt-blue-suggestive: transparent; - } -} -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #c7efcf!important; - --yt-swatch-primary-darker: #c7efcf!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #d6d1b1; - - --yt-spec-brand-background-solid:#c7efcf !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#c7efcf !important; - --yt-spec-general-background-b:#c7efcf !important; - --yt-spec-general-background-c:#c7efcf !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#666 !important; - --yt-spec-text-primary-inverse:#666 !important; - --yt-spec-text-secondary:#666 !important; - --yt-spec-text-disabled:#666 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#666 !important; - --yt-spec-icon-inactive:#666 !important; - --yt-spec-icon-disabled:#666 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#c7efcf !important; - --yt-spec-filled-button-text:#666 !important; - --yt-spec-call-to-action-inverse:#666 !important; - --yt-spec-brand-icon-active:#666 !important; - --yt-spec-brand-icon-inactive:#666 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#666!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#666 !important; - --yt-spec-wordmark-text:#666 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#666 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #d6d1b1!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #c7efcf; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #666; - --yt-spec-text-primary: #666; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #c7efcf; - --yt-playlist-background-item: #c7efcf; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #c7efcf; - --paper-listbox-background-color: #c7efcf; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #c7efcf; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #c7efcf; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #c7efcf; - --yt-menu-focus-background-color: #c7efcf; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #c7efcf; - --yt-main-app-background: #c7efcf; - --yt-main-app-background-tmp: #c7efcf; - --yt-guide-background: #c7efcf; - --yt-dialog-background: #d6d1b1; - --yt-searchbox-background: #c7efcf; - --yt-channel-header-background: #c7efcf; - --yt-sidebar-background: #c7efcf; - --yt-transcript-background: #c7efcf; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #c7efcf; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #c7efcf; - --yt-blue-suggestive: transparent; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-plain-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #c7efcf!important; - --yt-swatch-primary-darker: #c7efcf!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #d6d1b1; - - --yt-spec-brand-background-solid:#c7efcf !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#c7efcf !important; - --yt-spec-general-background-b:#c7efcf !important; - --yt-spec-general-background-c:#c7efcf !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#666 !important; - --yt-spec-text-primary-inverse:#666 !important; - --yt-spec-text-secondary:#666 !important; - --yt-spec-text-disabled:#666 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#666 !important; - --yt-spec-icon-inactive:#666 !important; - --yt-spec-icon-disabled:#666 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#c7efcf !important; - --yt-spec-filled-button-text:#666 !important; - --yt-spec-call-to-action-inverse:#666 !important; - --yt-spec-brand-icon-active:#666 !important; - --yt-spec-brand-icon-inactive:#666 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#666!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#666 !important; - --yt-spec-wordmark-text:#666 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#666 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-plain-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #d6d1b1!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #c7efcf; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-plain-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-plain-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #666; - --yt-spec-text-primary: #666; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #c7efcf; - --yt-playlist-background-item: #c7efcf; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #c7efcf; - --paper-listbox-background-color: #c7efcf; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #c7efcf; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #c7efcf; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #c7efcf; - --yt-menu-focus-background-color: #c7efcf; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #c7efcf; - --yt-main-app-background: #c7efcf; - --yt-main-app-background-tmp: #c7efcf; - --yt-guide-background: #c7efcf; - --yt-dialog-background: #d6d1b1; - --yt-searchbox-background: #c7efcf; - --yt-channel-header-background: #c7efcf; - --yt-sidebar-background: #c7efcf; - --yt-transcript-background: #c7efcf; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #c7efcf; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #c7efcf; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-plain-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #c7efcf!important; - --yt-swatch-primary-darker: #c7efcf!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #d6d1b1; - - --yt-spec-brand-background-solid:#c7efcf !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#c7efcf !important; - --yt-spec-general-background-b:#c7efcf !important; - --yt-spec-general-background-c:#c7efcf !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#666 !important; - --yt-spec-text-primary-inverse:#666 !important; - --yt-spec-text-secondary:#666 !important; - --yt-spec-text-disabled:#666 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#666 !important; - --yt-spec-icon-inactive:#666 !important; - --yt-spec-icon-disabled:#666 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#c7efcf !important; - --yt-spec-filled-button-text:#666 !important; - --yt-spec-call-to-action-inverse:#666 !important; - --yt-spec-brand-icon-active:#666 !important; - --yt-spec-brand-icon-inactive:#666 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#666!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#666 !important; - --yt-spec-wordmark-text:#666 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#666 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-plain-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #d6d1b1!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #c7efcf; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-plain-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-plain-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #666; - --yt-spec-text-primary: #666; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #c7efcf; - --yt-playlist-background-item: #c7efcf; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #c7efcf; - --paper-listbox-background-color: #c7efcf; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #c7efcf; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #c7efcf; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #c7efcf; - --yt-menu-focus-background-color: #c7efcf; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #c7efcf; - --yt-main-app-background: #c7efcf; - --yt-main-app-background-tmp: #c7efcf; - --yt-guide-background: #c7efcf; - --yt-dialog-background: #d6d1b1; - --yt-searchbox-background: #c7efcf; - --yt-channel-header-background: #c7efcf; - --yt-sidebar-background: #c7efcf; - --yt-transcript-background: #c7efcf; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #c7efcf; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #c7efcf; - --yt-blue-suggestive: transparent; - } -} -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #2f3364!important; - --yt-swatch-primary-darker: #2f3364!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #f56264; - - --yt-spec-brand-background-solid:#2f3364 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#2f3364 !important; - --yt-spec-general-background-b:#2f3364 !important; - --yt-spec-general-background-c:#2f3364 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#2f3364 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { - background: #f56264!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #2f3364; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #2f3364; - --yt-playlist-background-item: #2f3364; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #2f3364; - --paper-listbox-background-color: #2f3364; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #2f3364; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #2f3364; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #2f3364; - --yt-menu-focus-background-color: #2f3364; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #2f3364; - --yt-main-app-background: #2f3364; - --yt-main-app-background-tmp: #2f3364; - --yt-guide-background: #2f3364; - --yt-dialog-background: #D62828; - --yt-searchbox-background: #fa7965!important; - --yt-channel-header-background: #2f3364; - --yt-sidebar-background: #2f3364; - --yt-transcript-background: #2f3364; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #2f3364; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #2f3364; - --yt-blue-suggestive: transparent; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-sunset-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #2f3364!important; - --yt-swatch-primary-darker: #2f3364!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #f56264; - - --yt-spec-brand-background-solid:#2f3364 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#2f3364 !important; - --yt-spec-general-background-b:#2f3364 !important; - --yt-spec-general-background-c:#2f3364 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#2f3364 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-sunset-theme=true][it-schedule=system_peference_dark] ytd-masthead { - background: #f56264!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #2f3364; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-sunset-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-sunset-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #2f3364; - --yt-playlist-background-item: #2f3364; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #2f3364; - --paper-listbox-background-color: #2f3364; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #2f3364; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #2f3364; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #2f3364; - --yt-menu-focus-background-color: #2f3364; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #2f3364; - --yt-main-app-background: #2f3364; - --yt-main-app-background-tmp: #2f3364; - --yt-guide-background: #2f3364; - --yt-dialog-background: #D62828; - --yt-searchbox-background: #fa7965!important; - --yt-channel-header-background: #2f3364; - --yt-sidebar-background: #2f3364; - --yt-transcript-background: #2f3364; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #2f3364; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #2f3364; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-sunset-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #2f3364!important; - --yt-swatch-primary-darker: #2f3364!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #f56264; - - --yt-spec-brand-background-solid:#2f3364 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#2f3364 !important; - --yt-spec-general-background-b:#2f3364 !important; - --yt-spec-general-background-c:#2f3364 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#2f3364 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-sunset-theme=true][it-schedule=system_peference_light] ytd-masthead { - background: #f56264!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #2f3364; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-sunset-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-sunset-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #2f3364; - --yt-playlist-background-item: #2f3364; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #2f3364; - --paper-listbox-background-color: #2f3364; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #2f3364; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #2f3364; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #2f3364; - --yt-menu-focus-background-color: #2f3364; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #2f3364; - --yt-main-app-background: #2f3364; - --yt-main-app-background-tmp: #2f3364; - --yt-guide-background: #2f3364; - --yt-dialog-background: #D62828; - --yt-searchbox-background: #fa7965!important; - --yt-channel-header-background: #2f3364; - --yt-sidebar-background: #2f3364; - --yt-transcript-background: #2f3364; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #2f3364; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #2f3364; - --yt-blue-suggestive: transparent; - } -} \ No newline at end of file From 618538177cb5e066fa5b776f003d196360b27f1c Mon Sep 17 00:00:00 2001 From: urfausto <31393590+urfausto@users.noreply.github.com> Date: Fri, 25 Dec 2020 11:02:27 +0100 Subject: [PATCH 0009/1224] [= --- 3.120-pre/_locales/it/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3.120-pre/_locales/it/messages.json b/3.120-pre/_locales/it/messages.json index 2f755a9b8..11741277a 100644 --- a/3.120-pre/_locales/it/messages.json +++ b/3.120-pre/_locales/it/messages.json @@ -279,7 +279,7 @@ "message": "Font" }, "footer": { - "message": "Footer" + "message": "Piè di pagina" }, "forcedPlaybackSpeed": { "message": "Velocità riproduzione forzata" From 6c1904606dd1906a0a3d8895396c326632d7d10b Mon Sep 17 00:00:00 2001 From: urfausto <31393590+urfausto@users.noreply.github.com> Date: Sun, 27 Dec 2020 15:14:47 +0100 Subject: [PATCH 0010/1224] Update messages.json --- 3.120-pre/_locales/it/messages.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/3.120-pre/_locales/it/messages.json b/3.120-pre/_locales/it/messages.json index 11741277a..f0c222222 100644 --- a/3.120-pre/_locales/it/messages.json +++ b/3.120-pre/_locales/it/messages.json @@ -351,7 +351,7 @@ "message": "Nascondi fondo gradiente" }, "hidePlaylist": { - "message": "Nascondi playlist" + "message": "Nascondi scaletta" }, "hideRightButtons": { "message": "Nascondi pulsanti sulla destra" @@ -537,10 +537,10 @@ "message": "Dimensione lettore" }, "playlist": { - "message": "Playlist" + "message": "Scaletta" }, "playlists": { - "message": "Playlist" + "message": "Scalette" }, "playPause": { "message": "Avvio/Pausa" From cb362bc0199c9c7c489e624261e2cadd364fadf4 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 28 Dec 2020 15:14:10 +0300 Subject: [PATCH 0011/1224] v3.120-testing --- 3.120-pre/_locales/ar/messages.json | 4 +- 3.120-pre/content-scripts.js | 61 +- 3.120-pre/content-styles.css | 4748 +++++++++++++++++++++++++ 3.120-pre/manifest.json | 142 +- 3.120-pre/popup.js | 20 - 3.120-pre/youtube-scripts.js | 844 ++++- unstable/_locales/nb_NO/messages.json | 4 +- 7 files changed, 5630 insertions(+), 193 deletions(-) diff --git a/3.120-pre/_locales/ar/messages.json b/3.120-pre/_locales/ar/messages.json index b1905a290..187c8409c 100644 --- a/3.120-pre/_locales/ar/messages.json +++ b/3.120-pre/_locales/ar/messages.json @@ -729,7 +729,7 @@ "message": "اليوم عند الساعة" }, "toggleCards": { - "message": "Toggle cards" + "message": "تبديل وضع البطاقات" }, "topChat": { "message": "رسائل المحادثة الهامّة" @@ -804,6 +804,6 @@ "message": "لغة اليوتيوب" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "يحد اليوتيوب من جودة الفيديو الى ١٠٨٠ لـ الترميز h.264" + "message": "h.264 يحد اليوتيوب من جودة الفيديو الى ١٠٨٠ لـ الترميز" } } \ No newline at end of file diff --git a/3.120-pre/content-scripts.js b/3.120-pre/content-scripts.js index 33d8cbff7..92921d8cf 100644 --- a/3.120-pre/content-scripts.js +++ b/3.120-pre/content-scripts.js @@ -18,7 +18,12 @@ function youtubeHomePage(option) { if (location.pathname === '/') { if (location.hostname === 'www.youtube.com') { - if (option !== '/' && option !== 'search') { + if ( + option === '/feed/trending' || + option === '/feed/subscriptions' || + option === '/feed/history' || + option === '/playlist?list=WL' + ) { location.replace(option); } } @@ -46,15 +51,47 @@ function camelize(string) { function attributes(items) { var whitelist = { - 'youtube-home-page': true + 'remove-related-search-results': true, + 'squared-user-images': true, + 'hide-animated-thumbnails': true, + 'header-position': true, + 'header-improve-logo': true, + 'header-hide-right-buttons': true, + 'player-hide-annotations': true, + 'player-hide-cards': true, + 'player-show-cards-on-mouse-hover': true, + 'player-size': true, + 'player-color': true, + 'player-transparent-background': true, + 'player-hide-endscreen': true, + 'hide-scroll-for-details': true, + 'always-show-progress-bar': true, + 'hide-details': true, + 'description': true, + 'hide-views-count': true, + 'likes': true, + 'red-dislike-button': true, + 'livechat': true, + 'hide-playlist': true, + 'related-videos': true, + 'comments': true, + 'hide-footer': true, + 'night-theme': true, + 'dawn-theme': true, + 'sunset-theme': true, + 'desert-theme': true, + 'plain-theme': true, + 'black-theme': true, + 'player-crop-chapter-titles': true, + 'player-ads': true }; for (var key in items) { var attribute = key.replace(/_/g, '-'); - //if (whitelist.hasOwnProperty(attribute)) { + if (whitelist.hasOwnProperty(attribute)) { document.documentElement.setAttribute('it-' + attribute, items[key]); - //} + } } } @@ -63,16 +100,28 @@ function attributes(items) { 3.0 INITIALIZATION ------------------------------------------------------------------------------*/ -function injectScript(textContent) { +function injectScript(string) { var script = document.createElement('script'); - script.textContent = textContent; + script.textContent = string; document.documentElement.appendChild(script); script.remove(); } +function injectStyles(string, id) { + var style = document.createElement('style'); + + style.textContent = string; + + if (id) { + style.id = id; + } + + document.documentElement.appendChild(style); +} + chrome.storage.local.get('youtube_home_page', function(items) { youtubeHomePage(items.youtube_home_page); }); diff --git a/3.120-pre/content-styles.css b/3.120-pre/content-styles.css index 1af4f4c07..095aa73b3 100644 --- a/3.120-pre/content-styles.css +++ b/3.120-pre/content-styles.css @@ -37,11 +37,22 @@ 2.5 Comments 2.6 Footer 3.0 Themes + 3.1 Bluelight + 3.2 Dim + 3.3 Themes 4.0 Player + 4.1 Crop chapter titles + 4.2 Ads + 4.3 Mini player + 4.4 Screenshot + 4.5 Repeat + 4.6 Rotate + 4.7 Popup player 5.0 Playlist 5.1 Reverse 6.0 Channel 6.1 Featured content +7.0 Shortcuts ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ @@ -1165,6 +1176,4726 @@ html[it-hide-footer=true] app-drawer#guide #footer } +/*------------------------------------------------------------------------------ +3.0 THEMES +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +3.1 BLUELIGHT +------------------------------------------------------------------------------*/ + +html[it-bluelight] +{ + height: auto; +} + +html[it-bluelight], +html[it-bluelight] .html5-video-player.ytp-fullscreen +{ + filter: url(#it-bluelight-filter); +} + +#it-bluelight +{ + position: fixed; + top: 0; + left: 0; + + visibility: hidden; + + width: 100%; + height: 100vh; + + pointer-events: none; +} + +html[it-bluelight][it-youtube-version=old] +{ + background-color: #f1f1f1; +} + +html[it-bluelight][it-youtube-version=old] body +{ + min-height: 100vh; +} + + +/*------------------------------------------------------------------------------ +3.2 DIM +------------------------------------------------------------------------------*/ + +#it-dim +{ + position: fixed; + z-index: 2147483645; + top: 0; + left: 0; + + width: 100%; + height: 100vh; + + pointer-events: none; + + background: #000; +} + +#it-dim-player +{ + position: fixed; + z-index: 2147483645; + top: 0; + left: 0; + + visibility: hidden; + + width: 100%; + height: 100vh; + + pointer-events: none; + + background: #000; +} + +.html5-video-player.ytp-fullscreen #it-dim-player +{ + visibility: visible !important; +} + + +/*------------------------------------------------------------------------------ +3.3 THEMES +------------------------------------------------------------------------------*/ + +[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) +{ + --yt-swatch-primary: #000!important; + --yt-swatch-primary-darker: #000!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #000; + + --yt-spec-brand-background-solid:#000 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#000 !important; + --yt-spec-general-background-b:#000 !important; + --yt-spec-general-background-c:#000 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#aaa !important; + --yt-spec-text-primary-inverse:#aaa !important; + --yt-spec-text-secondary:#aaa !important; + --yt-spec-text-disabled:#aaa !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#aaa !important; + --yt-spec-icon-inactive:#aaa !important; + --yt-spec-icon-disabled:#aaa !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#000000 !important; + --yt-spec-filled-button-text:#aaa !important; + --yt-spec-call-to-action-inverse:#aaa !important; + --yt-spec-brand-icon-active:#aaa !important; + --yt-spec-brand-icon-inactive:#aaa !important; + --yt-spec-brand-button-background:#242424 !important; + --yt-spec-brand-link-text:#aaa !important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#aaa !important; + --yt-spec-wordmark-text:#aaa !important; + --yt-spec-10-percent-layer:#242424 !important; + --yt-spec-selected-nav-text:#aaa !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; +} +html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo +{ + -webkit-filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); +} +[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead +{ + background: #000!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; +} +[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) +{ + --yt-live-chat-action-panel-background-color: #000; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; +} +[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] +{ + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #000; + --yt-playlist-background-item: #000; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #000; + --paper-listbox-background-color: #000; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #000; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #000; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #000; + --yt-menu-focus-background-color: #000; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #000; + --yt-main-app-background: #000; + --yt-main-app-background-tmp: #000; + --yt-guide-background: #000; + --yt-dialog-background: #000; + --yt-searchbox-background: #000!important; + --yt-channel-header-background: #000; + --yt-sidebar-background: #000; + --yt-transcript-background: #000; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #000; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #000; + --yt-blue-suggestive: transparent; +} + + + +@media (prefers-color-scheme: dark) { + [it-black-theme=true][it-schedule=system_peference_dark] + { + --yt-swatch-primary: #000!important; + --yt-swatch-primary-darker: #000!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #000; + + --yt-spec-brand-background-solid:#000 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#000 !important; + --yt-spec-general-background-b:#000 !important; + --yt-spec-general-background-c:#000 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#aaa !important; + --yt-spec-text-primary-inverse:#aaa !important; + --yt-spec-text-secondary:#aaa !important; + --yt-spec-text-disabled:#aaa !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#aaa !important; + --yt-spec-icon-inactive:#aaa !important; + --yt-spec-icon-disabled:#aaa !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#000000 !important; + --yt-spec-filled-button-text:#aaa !important; + --yt-spec-call-to-action-inverse:#aaa !important; + --yt-spec-brand-icon-active:#aaa !important; + --yt-spec-brand-icon-inactive:#aaa !important; + --yt-spec-brand-button-background:#242424 !important; + --yt-spec-brand-link-text:#aaa !important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#aaa !important; + --yt-spec-wordmark-text:#aaa !important; + --yt-spec-10-percent-layer:#242424 !important; + --yt-spec-selected-nav-text:#aaa !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + html[it-black-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo + { + -webkit-filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); + } + [it-black-theme=true][it-schedule=system_peference_dark] ytd-masthead + { + background: #000!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #000; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), + html[it-black-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], + [it-black-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #000; + --yt-playlist-background-item: #000; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #000; + --paper-listbox-background-color: #000; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #000; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #000; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #000; + --yt-menu-focus-background-color: #000; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #000; + --yt-main-app-background: #000; + --yt-main-app-background-tmp: #000; + --yt-guide-background: #000; + --yt-dialog-background: #000; + --yt-searchbox-background: #000!important; + --yt-channel-header-background: #000; + --yt-sidebar-background: #000; + --yt-transcript-background: #000; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #000; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #000; + --yt-blue-suggestive: transparent; + } +} + + + + + +@media (prefers-color-scheme: light) { + [it-black-theme=true][it-schedule=system_peference_light] + { + --yt-swatch-primary: #000!important; + --yt-swatch-primary-darker: #000!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #000; + + --yt-spec-brand-background-solid:#000 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#000 !important; + --yt-spec-general-background-b:#000 !important; + --yt-spec-general-background-c:#000 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#aaa !important; + --yt-spec-text-primary-inverse:#aaa !important; + --yt-spec-text-secondary:#aaa !important; + --yt-spec-text-disabled:#aaa !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#aaa !important; + --yt-spec-icon-inactive:#aaa !important; + --yt-spec-icon-disabled:#aaa !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#000000 !important; + --yt-spec-filled-button-text:#aaa !important; + --yt-spec-call-to-action-inverse:#aaa !important; + --yt-spec-brand-icon-active:#aaa !important; + --yt-spec-brand-icon-inactive:#aaa !important; + --yt-spec-brand-button-background:#242424 !important; + --yt-spec-brand-link-text:#aaa !important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#aaa !important; + --yt-spec-wordmark-text:#aaa !important; + --yt-spec-10-percent-layer:#242424 !important; + --yt-spec-selected-nav-text:#aaa !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + html[it-black-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo + { + -webkit-filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); + } + [it-black-theme=true][it-schedule=system_peference_light] ytd-masthead + { + background: #000!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #000; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), + html[it-black-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], + [it-black-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #000; + --yt-playlist-background-item: #000; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #000; + --paper-listbox-background-color: #000; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #000; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #000; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #000; + --yt-menu-focus-background-color: #000; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #000; + --yt-main-app-background: #000; + --yt-main-app-background-tmp: #000; + --yt-guide-background: #000; + --yt-dialog-background: #000; + --yt-searchbox-background: #000!important; + --yt-channel-header-background: #000; + --yt-sidebar-background: #000; + --yt-transcript-background: #000; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #000; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #000; + --yt-blue-suggestive: transparent; + } +} + +[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) +{ + --yt-swatch-primary: #d44d5c!important; + --yt-swatch-primary-darker: #d44d5c!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #734; + + --yt-spec-brand-background-solid:#d44d5c !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#d44d5c !important; + --yt-spec-general-background-b:#d44d5c !important; + --yt-spec-general-background-c:#d44d5c !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:rgb(255,255,255) !important; + --yt-spec-text-primary-inverse:rgb(255,255,255) !important; + --yt-spec-text-secondary:rgb(255,255,255) !important; + --yt-spec-text-disabled:rgb(255,255,255) !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:rgb(255,255,255) !important; + --yt-spec-icon-inactive:rgb(255,255,255) !important; + --yt-spec-icon-disabled:rgb(255,255,255) !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#d44d5c !important; + --yt-spec-filled-button-text:rgb(255,255,255) !important; + --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; + --yt-spec-brand-icon-active:rgb(255,255,255) !important; + --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:rgb(255,255,255)!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; + --yt-spec-wordmark-text:rgb(255,255,255) !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:rgb(255,255,255) !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; +} +[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead +{ + background: #734!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; +} +[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) +{ + --yt-live-chat-action-panel-background-color: #d44d5c; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; +} +[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] +{ + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #d44d5c; + --yt-playlist-background-item: #d44d5c; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #d44d5c; + --paper-listbox-background-color: #d44d5c; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #d44d5c; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #d44d5c; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #d44d5c; + --yt-menu-focus-background-color: #d44d5c; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #d44d5c; + --yt-main-app-background: #d44d5c; + --yt-main-app-background-tmp: #d44d5c; + --yt-guide-background: #d44d5c; + --yt-dialog-background: #734; + --yt-searchbox-background: #672c3b; + --yt-channel-header-background: #d44d5c; + --yt-sidebar-background: #d44d5c; + --yt-transcript-background: #d44d5c; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #d44d5c; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #d44d5c; + --yt-blue-suggestive: transparent; + --yt-spec-text-secondary: #f5dbe2; +} +html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo +{ + -webkit-filter: grayscale(1) brightness(4); + filter: grayscale(1) brightness(4); +} + + + + + +@media (prefers-color-scheme: dark) { + [it-dawn-theme=true][it-schedule=system_peference_dark] + { + --yt-swatch-primary: #d44d5c!important; + --yt-swatch-primary-darker: #d44d5c!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #734; + + --yt-spec-brand-background-solid:#d44d5c !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#d44d5c !important; + --yt-spec-general-background-b:#d44d5c !important; + --yt-spec-general-background-c:#d44d5c !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:rgb(255,255,255) !important; + --yt-spec-text-primary-inverse:rgb(255,255,255) !important; + --yt-spec-text-secondary:rgb(255,255,255) !important; + --yt-spec-text-disabled:rgb(255,255,255) !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:rgb(255,255,255) !important; + --yt-spec-icon-inactive:rgb(255,255,255) !important; + --yt-spec-icon-disabled:rgb(255,255,255) !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#d44d5c !important; + --yt-spec-filled-button-text:rgb(255,255,255) !important; + --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; + --yt-spec-brand-icon-active:rgb(255,255,255) !important; + --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:rgb(255,255,255)!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; + --yt-spec-wordmark-text:rgb(255,255,255) !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:rgb(255,255,255) !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + [it-dawn-theme=true][it-schedule=system_peference_dark] ytd-masthead + { + background: #734!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #d44d5c; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), + html[it-dawn-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], + [it-dawn-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #d44d5c; + --yt-playlist-background-item: #d44d5c; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #d44d5c; + --paper-listbox-background-color: #d44d5c; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #d44d5c; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #d44d5c; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #d44d5c; + --yt-menu-focus-background-color: #d44d5c; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #d44d5c; + --yt-main-app-background: #d44d5c; + --yt-main-app-background-tmp: #d44d5c; + --yt-guide-background: #d44d5c; + --yt-dialog-background: #734; + --yt-searchbox-background: #672c3b; + --yt-channel-header-background: #d44d5c; + --yt-sidebar-background: #d44d5c; + --yt-transcript-background: #d44d5c; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #d44d5c; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #d44d5c; + --yt-blue-suggestive: transparent; + --yt-spec-text-secondary: #f5dbe2; + } + html[it-dawn-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo + { + -webkit-filter: grayscale(1) brightness(4); + filter: grayscale(1) brightness(4); + } +} + + + + + +@media (prefers-color-scheme: light) { + [it-dawn-theme=true][it-schedule=system_peference_light] + { + --yt-swatch-primary: #d44d5c!important; + --yt-swatch-primary-darker: #d44d5c!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #734; + + --yt-spec-brand-background-solid:#d44d5c !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#d44d5c !important; + --yt-spec-general-background-b:#d44d5c !important; + --yt-spec-general-background-c:#d44d5c !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:rgb(255,255,255) !important; + --yt-spec-text-primary-inverse:rgb(255,255,255) !important; + --yt-spec-text-secondary:rgb(255,255,255) !important; + --yt-spec-text-disabled:rgb(255,255,255) !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:rgb(255,255,255) !important; + --yt-spec-icon-inactive:rgb(255,255,255) !important; + --yt-spec-icon-disabled:rgb(255,255,255) !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#d44d5c !important; + --yt-spec-filled-button-text:rgb(255,255,255) !important; + --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; + --yt-spec-brand-icon-active:rgb(255,255,255) !important; + --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:rgb(255,255,255)!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; + --yt-spec-wordmark-text:rgb(255,255,255) !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:rgb(255,255,255) !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + [it-dawn-theme=true][it-schedule=system_peference_light] ytd-masthead + { + background: #734!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #d44d5c; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), + html[it-dawn-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], + [it-dawn-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #d44d5c; + --yt-playlist-background-item: #d44d5c; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #d44d5c; + --paper-listbox-background-color: #d44d5c; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #d44d5c; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #d44d5c; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #d44d5c; + --yt-menu-focus-background-color: #d44d5c; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #d44d5c; + --yt-main-app-background: #d44d5c; + --yt-main-app-background-tmp: #d44d5c; + --yt-guide-background: #d44d5c; + --yt-dialog-background: #734; + --yt-searchbox-background: #672c3b; + --yt-channel-header-background: #d44d5c; + --yt-sidebar-background: #d44d5c; + --yt-transcript-background: #d44d5c; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #d44d5c; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #d44d5c; + --yt-blue-suggestive: transparent; + --yt-spec-text-secondary: #f5dbe2; + } + html[it-dawn-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo + { + -webkit-filter: grayscale(1) brightness(4); + filter: grayscale(1) brightness(4); + } + +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) +{ + --yt-swatch-header-primary: rgb(34,38,42)!important; + --yt-swatch-primary: rgb(34,38,42)!important; + --yt-swatch-primary-darker: rgb(28,32,36)!important; + --yt-swatch-text: rgb(200,200,200)!important; + --yt-swatch-important-text: rgb(200,200,200)!important; + --yt-swatch-input-text: rgba(200,200,200,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(200,200,200)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; +} + +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #masthead-search-term +{ + border: 1px solid #444!important; + border-right: none!important; +} +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light])[youtube-version=old] body +{ + height: auto; +} +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) +{ + background: var(--yt-swatch-primary-darker)!important; +} +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead +{ + background: #232323!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; +} +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) +{ + --yt-live-chat-action-panel-background-color: #282828; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; +} +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) +{ + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); + --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: hsl(0, 0%, 14%); + --paper-listbox-background-color: hsl(0, 0%, 14%); + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: hsl(0, 0%, 14%); + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); + --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: hsl(0, 0%, 7%); + --yt-main-app-background: hsl(0, 0%, 7%); + --yt-main-app-background-tmp: hsl(0, 0%, 7%); + --yt-guide-background: hsl(0, 0%, 11%); + --yt-dialog-background: hsl(0, 0%, 14%); + --yt-searchbox-background: hsl(0, 0%, 7%); + --yt-channel-header-background: hsla(0, 0%, 11%, .8); + --yt-sidebar-background: hsla(0, 0%, 11%, .8); + --yt-transcript-background: hsl(0, 0%, 11%); + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); + --yt-blue-suggestive: transparent; +} + +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light])[youtube-version=old] body +{ + height: auto!important; + + background: rgb(19,19,19)!important; +} + + + + + +@media (prefers-color-scheme: dark) { + [it-youtube-version=old][it-default-theme=true][it-schedule=system_peference_dark] + { + --yt-swatch-header-primary: rgb(34,38,42)!important; + --yt-swatch-primary: rgb(34,38,42)!important; + --yt-swatch-primary-darker: rgb(28,32,36)!important; + --yt-swatch-text: rgb(200,200,200)!important; + --yt-swatch-important-text: rgb(200,200,200)!important; + --yt-swatch-input-text: rgba(200,200,200,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(200,200,200)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + } + + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] #masthead-search-term + { + border: 1px solid #444!important; + border-right: none!important; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] html[youtube-version=old] body + { + height: auto; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] + { + background: var(--yt-swatch-primary-darker)!important; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] ytd-masthead + { + background: #232323!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #282828; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) + { + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); + --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: hsl(0, 0%, 14%); + --paper-listbox-background-color: hsl(0, 0%, 14%); + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: hsl(0, 0%, 14%); + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); + --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: hsl(0, 0%, 7%); + --yt-main-app-background: hsl(0, 0%, 7%); + --yt-main-app-background-tmp: hsl(0, 0%, 7%); + --yt-guide-background: hsl(0, 0%, 11%); + --yt-dialog-background: hsl(0, 0%, 14%); + --yt-searchbox-background: hsl(0, 0%, 7%); + --yt-channel-header-background: hsla(0, 0%, 11%, .8); + --yt-sidebar-background: hsla(0, 0%, 11%, .8); + --yt-transcript-background: hsl(0, 0%, 11%); + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); + --yt-blue-suggestive: transparent; + } + + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark][youtube-version=old] body + { + height: auto!important; + + background: rgb(19,19,19)!important; + } +} + + + + + +@media (prefers-color-scheme: light) { + [it-youtube-version=old][it-default-theme=true][it-schedule=system_peference_light] + { + --yt-swatch-header-primary: rgb(34,38,42)!important; + --yt-swatch-primary: rgb(34,38,42)!important; + --yt-swatch-primary-darker: rgb(28,32,36)!important; + --yt-swatch-text: rgb(200,200,200)!important; + --yt-swatch-important-text: rgb(200,200,200)!important; + --yt-swatch-input-text: rgba(200,200,200,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(200,200,200)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + } + + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] #masthead-search-term + { + border: 1px solid #444!important; + border-right: none!important; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] html[youtube-version=old] body + { + height: auto; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] + { + background: var(--yt-swatch-primary-darker)!important; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] ytd-masthead + { + background: #232323!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #282828; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) + { + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); + --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: hsl(0, 0%, 14%); + --paper-listbox-background-color: hsl(0, 0%, 14%); + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: hsl(0, 0%, 14%); + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); + --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: hsl(0, 0%, 7%); + --yt-main-app-background: hsl(0, 0%, 7%); + --yt-main-app-background-tmp: hsl(0, 0%, 7%); + --yt-guide-background: hsl(0, 0%, 11%); + --yt-dialog-background: hsl(0, 0%, 14%); + --yt-searchbox-background: hsl(0, 0%, 7%); + --yt-channel-header-background: hsla(0, 0%, 11%, .8); + --yt-sidebar-background: hsla(0, 0%, 11%, .8); + --yt-transcript-background: hsl(0, 0%, 11%); + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); + --yt-blue-suggestive: transparent; + } + + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light][youtube-version=old] body + { + height: auto!important; + + background: rgb(19,19,19)!important; + } +} + +[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) +{ + --yt-swatch-primary: #faf9f9!important; + --yt-swatch-primary-darker: #faf9f9!important; + --yt-swatch-text: #555!important; + --yt-swatch-important-text: #555!important; + --yt-swatch-input-text: #555!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: #555!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #bee3db; + + --yt-spec-brand-background-solid:#faf9f9 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#faf9f9 !important; + --yt-spec-general-background-b:#faf9f9 !important; + --yt-spec-general-background-c:#faf9f9 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#555 !important; + --yt-spec-text-primary-inverse:#555 !important; + --yt-spec-text-secondary:#555 !important; + --yt-spec-text-disabled:#555 !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#555 !important; + --yt-spec-icon-inactive:#555 !important; + --yt-spec-icon-disabled:#555 !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#faf9f9 !important; + --yt-spec-filled-button-text:#555 !important; + --yt-spec-call-to-action-inverse:#555 !important; + --yt-spec-brand-icon-active:#555 !important; + --yt-spec-brand-icon-inactive:#555 !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#555!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#555 !important; + --yt-spec-wordmark-text:#555 !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#555 !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; +} +[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead +{ + background: #bee3db!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: #555!important; + --yt-swatch-important-text: #555!important; + --yt-swatch-input-text: #555!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: #555!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; +} +[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) +{ + --yt-live-chat-action-panel-background-color: #faf9f9; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: #555; + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; +} +[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] +{ + --yt-spec-icon-inactive: #555; + --yt-spec-text-primary: #555; + --ytd-searchbox-border-color: #555; + --ytd-searchbox-legacy-border-color: #555; + --ytd-searchbox-legacy-border-shadow-color: #555; + --ytd-searchbox-legacy-button-color: #555; + --ytd-searchbox-legacy-button-border-color: #555; + --ytd-searchbox-legacy-button-focus-color: #555; + --ytd-searchbox-legacy-button-hover-color: #555; + --ytd-searchbox-legacy-button-hover-border-color: #555; + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: #555; + --ytd-moderation-panel-hover: #555; + --ytd-moderation-panel-comment-text: #555; + --ytd-moderation-panel-comment-metadata-text: #555; + --ytd-moderation-icon-color: #555; + --ytd-moderation-icon-hover-color: #555; + --ytd-comment-text-color: #555; + --ytd-comment-metadata-text-color: #555; + --ytd-watch-card-secondary-text-color: #555; + --ytd-watch-card-album-header-background: #555; + --ytd-backstage-metadata-text-color: #555; + --ytd-backstage-video-link-background-color: #555; + --ytd-backstage-image-alert-color: #555; + --ytd-backstage-cancel-background-color: #555; + --ytd-backstage-cancel-color: #555; + --ytd-backstage-creationbox-background-color: #555; + --ytd-backstage-creationbox-background-color-focus: #555; + --ytd-backstage-creationbox-inactive-color: #555; + --ytd-backstage-creationbox-text-color: #555; + --ytd-backstage-creationbox-input-text-color: #555; + --ytd-backstage-creationbox-disabled-button-color: #555; + --ytd-backstage-creationbox-disabled-button-text-color: #555; + --ytd-backstage-attachment-icon-hover-color: #555; + --ytd-sponsorships-background-color-focus: #555; + --ytd-badge-background: #555; + --ytd-badge-disabled-color: #555; + --ytd-collection-badge-color: #555; + --ytd-owner-badge-color: #555; + --ytd-simple-badge-color: #555; + --ytd-ad-badge-text-color: #555; + --ytd-shopping-product-info: #555; + --ytd-toggle-color: #555; + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: #555; + --ytd-transcript-toolbar-background-color: #555; + --ytd-transcript-toolbar-text: #555; + --ytd-video-publish-date-color: #555; + --ytd-vat-notice-text: #555; + --ytd-offer-background-color: #555; + --ytd-video-game-watch-card-logo-color: #555; + --ytd-watch-split-pane-sidebar-background-color: #555; + --yt-std-body-100: #555; + --yt-std-body-200: #555; + --yt-std-body-300: #555; + --yt-std-surface-200: #555; + --yt-std-surface-300: #555; + --yt-std-surface-400: #555; + --yt-primary-color: #555; + --yt-primary-text-color: #555; + --yt-hovered-text-color: #555; + --yt-secondary-text-color: #555; + --yt-tertiary-text-color: #555; + --yt-disabled-text-color: #555; + --yt-placeholder-text-color: #555; + --yt-border-color: #555; + --yt-commentbox-border-inactive: #555; + --yt-commentbox-border-active: #555; + --yt-alert-background: #555; + --yt-paper-button-ink-color: #555; + --yt-icon-color: #555; + --yt-icon-hover-color: #555; + --yt-icon-active-color: #555; + --yt-icon-disabled-color: #555; + --yt-endpoint-color: #555; + --yt-expand-color: #555; + --yt-metadata-color: #555; + --yt-channel-owner: #555; + --yt-placeholder-text: #555; + --yt-playlist-background-header: #faf9f9; + --yt-playlist-background-item: #faf9f9; + --yt-playlist-title-text: #555; + --yt-playlist-message-text: #555; + --yt-playlist-message-text-hover: #555; + --yt-subscribe-button-text-color: #555; + --yt-brand-color: #555; + --yt-button-text-color: #555; + --yt-button-payment-text-color: #555; + --yt-copyright-text: #555; + --yt-guide-entry-hover-background-color: #555; + --yt-thumbnail-placeholder-color: #555; + --yt-primary-disabled-button-text-color: #555; + --yt-featured-channel-title-text-color: #555; + --yt-formatted-string-deemphasize-color: #555; + --paper-menu-background-color: #faf9f9; + --paper-listbox-background-color: #faf9f9; + --paper-menu-color: #555; + --paper-listbox-color: #555; + --paper-dialog-background-color: #faf9f9; + --paper-toggle-button-unchecked-bar-color: #555; + --yt-simple-menu-header-background: #faf9f9; + --yt-item-section-header-color: #555; + --yt-menu-hover-backgound-color: #faf9f9; + --yt-menu-focus-background-color: #faf9f9; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: #555; + --yt-material-searchbox-active: #555; + --yt-material-searchbox-inactive-shadow: #555; + --yt-material-searchbox-active-shadow: #555; + --yt-material-searchbox-inset: #555; + --yt-material-searchbox-text-color: #555; + --yt-app-background: #faf9f9; + --yt-main-app-background: #faf9f9; + --yt-main-app-background-tmp: #faf9f9; + --yt-guide-background: #faf9f9; + --yt-dialog-background: #bee3db; + --yt-searchbox-background: #faf9f9; + --yt-channel-header-background: #faf9f9; + --yt-sidebar-background: #faf9f9; + --yt-transcript-background: #faf9f9; + --yt-chat-bubble-other-border-color: #555; + --yt-chat-bubble-other-background-color: #faf9f9; + --yt-chat-bubble-self-border-color: #555; + --yt-chat-bubble-self-background-color: #faf9f9; + --yt-blue-suggestive: transparent; +} + + + + + +@media (prefers-color-scheme: dark) { + [it-desert-theme=true][it-schedule=system_peference_dark] + { + --yt-swatch-primary: #faf9f9!important; + --yt-swatch-primary-darker: #faf9f9!important; + --yt-swatch-text: #555!important; + --yt-swatch-important-text: #555!important; + --yt-swatch-input-text: #555!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: #555!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #bee3db; + + --yt-spec-brand-background-solid:#faf9f9 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#faf9f9 !important; + --yt-spec-general-background-b:#faf9f9 !important; + --yt-spec-general-background-c:#faf9f9 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#555 !important; + --yt-spec-text-primary-inverse:#555 !important; + --yt-spec-text-secondary:#555 !important; + --yt-spec-text-disabled:#555 !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#555 !important; + --yt-spec-icon-inactive:#555 !important; + --yt-spec-icon-disabled:#555 !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#faf9f9 !important; + --yt-spec-filled-button-text:#555 !important; + --yt-spec-call-to-action-inverse:#555 !important; + --yt-spec-brand-icon-active:#555 !important; + --yt-spec-brand-icon-inactive:#555 !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#555!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#555 !important; + --yt-spec-wordmark-text:#555 !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#555 !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + [it-desert-theme=true][it-schedule=system_peference_dark] ytd-masthead + { + background: #bee3db!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: #555!important; + --yt-swatch-important-text: #555!important; + --yt-swatch-input-text: #555!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: #555!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #faf9f9; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: #555; + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), + html[it-desert-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], + [it-desert-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #555; + --yt-spec-text-primary: #555; + --ytd-searchbox-border-color: #555; + --ytd-searchbox-legacy-border-color: #555; + --ytd-searchbox-legacy-border-shadow-color: #555; + --ytd-searchbox-legacy-button-color: #555; + --ytd-searchbox-legacy-button-border-color: #555; + --ytd-searchbox-legacy-button-focus-color: #555; + --ytd-searchbox-legacy-button-hover-color: #555; + --ytd-searchbox-legacy-button-hover-border-color: #555; + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: #555; + --ytd-moderation-panel-hover: #555; + --ytd-moderation-panel-comment-text: #555; + --ytd-moderation-panel-comment-metadata-text: #555; + --ytd-moderation-icon-color: #555; + --ytd-moderation-icon-hover-color: #555; + --ytd-comment-text-color: #555; + --ytd-comment-metadata-text-color: #555; + --ytd-watch-card-secondary-text-color: #555; + --ytd-watch-card-album-header-background: #555; + --ytd-backstage-metadata-text-color: #555; + --ytd-backstage-video-link-background-color: #555; + --ytd-backstage-image-alert-color: #555; + --ytd-backstage-cancel-background-color: #555; + --ytd-backstage-cancel-color: #555; + --ytd-backstage-creationbox-background-color: #555; + --ytd-backstage-creationbox-background-color-focus: #555; + --ytd-backstage-creationbox-inactive-color: #555; + --ytd-backstage-creationbox-text-color: #555; + --ytd-backstage-creationbox-input-text-color: #555; + --ytd-backstage-creationbox-disabled-button-color: #555; + --ytd-backstage-creationbox-disabled-button-text-color: #555; + --ytd-backstage-attachment-icon-hover-color: #555; + --ytd-sponsorships-background-color-focus: #555; + --ytd-badge-background: #555; + --ytd-badge-disabled-color: #555; + --ytd-collection-badge-color: #555; + --ytd-owner-badge-color: #555; + --ytd-simple-badge-color: #555; + --ytd-ad-badge-text-color: #555; + --ytd-shopping-product-info: #555; + --ytd-toggle-color: #555; + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: #555; + --ytd-transcript-toolbar-background-color: #555; + --ytd-transcript-toolbar-text: #555; + --ytd-video-publish-date-color: #555; + --ytd-vat-notice-text: #555; + --ytd-offer-background-color: #555; + --ytd-video-game-watch-card-logo-color: #555; + --ytd-watch-split-pane-sidebar-background-color: #555; + --yt-std-body-100: #555; + --yt-std-body-200: #555; + --yt-std-body-300: #555; + --yt-std-surface-200: #555; + --yt-std-surface-300: #555; + --yt-std-surface-400: #555; + --yt-primary-color: #555; + --yt-primary-text-color: #555; + --yt-hovered-text-color: #555; + --yt-secondary-text-color: #555; + --yt-tertiary-text-color: #555; + --yt-disabled-text-color: #555; + --yt-placeholder-text-color: #555; + --yt-border-color: #555; + --yt-commentbox-border-inactive: #555; + --yt-commentbox-border-active: #555; + --yt-alert-background: #555; + --yt-paper-button-ink-color: #555; + --yt-icon-color: #555; + --yt-icon-hover-color: #555; + --yt-icon-active-color: #555; + --yt-icon-disabled-color: #555; + --yt-endpoint-color: #555; + --yt-expand-color: #555; + --yt-metadata-color: #555; + --yt-channel-owner: #555; + --yt-placeholder-text: #555; + --yt-playlist-background-header: #faf9f9; + --yt-playlist-background-item: #faf9f9; + --yt-playlist-title-text: #555; + --yt-playlist-message-text: #555; + --yt-playlist-message-text-hover: #555; + --yt-subscribe-button-text-color: #555; + --yt-brand-color: #555; + --yt-button-text-color: #555; + --yt-button-payment-text-color: #555; + --yt-copyright-text: #555; + --yt-guide-entry-hover-background-color: #555; + --yt-thumbnail-placeholder-color: #555; + --yt-primary-disabled-button-text-color: #555; + --yt-featured-channel-title-text-color: #555; + --yt-formatted-string-deemphasize-color: #555; + --paper-menu-background-color: #faf9f9; + --paper-listbox-background-color: #faf9f9; + --paper-menu-color: #555; + --paper-listbox-color: #555; + --paper-dialog-background-color: #faf9f9; + --paper-toggle-button-unchecked-bar-color: #555; + --yt-simple-menu-header-background: #faf9f9; + --yt-item-section-header-color: #555; + --yt-menu-hover-backgound-color: #faf9f9; + --yt-menu-focus-background-color: #faf9f9; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: #555; + --yt-material-searchbox-active: #555; + --yt-material-searchbox-inactive-shadow: #555; + --yt-material-searchbox-active-shadow: #555; + --yt-material-searchbox-inset: #555; + --yt-material-searchbox-text-color: #555; + --yt-app-background: #faf9f9; + --yt-main-app-background: #faf9f9; + --yt-main-app-background-tmp: #faf9f9; + --yt-guide-background: #faf9f9; + --yt-dialog-background: #bee3db; + --yt-searchbox-background: #faf9f9; + --yt-channel-header-background: #faf9f9; + --yt-sidebar-background: #faf9f9; + --yt-transcript-background: #faf9f9; + --yt-chat-bubble-other-border-color: #555; + --yt-chat-bubble-other-background-color: #faf9f9; + --yt-chat-bubble-self-border-color: #555; + --yt-chat-bubble-self-background-color: #faf9f9; + --yt-blue-suggestive: transparent; + } +} + + + + + +@media (prefers-color-scheme: light) { + [it-desert-theme=true][it-schedule=system_peference_light] + { + --yt-swatch-primary: #faf9f9!important; + --yt-swatch-primary-darker: #faf9f9!important; + --yt-swatch-text: #555!important; + --yt-swatch-important-text: #555!important; + --yt-swatch-input-text: #555!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: #555!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #bee3db; + + --yt-spec-brand-background-solid:#faf9f9 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#faf9f9 !important; + --yt-spec-general-background-b:#faf9f9 !important; + --yt-spec-general-background-c:#faf9f9 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#555 !important; + --yt-spec-text-primary-inverse:#555 !important; + --yt-spec-text-secondary:#555 !important; + --yt-spec-text-disabled:#555 !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#555 !important; + --yt-spec-icon-inactive:#555 !important; + --yt-spec-icon-disabled:#555 !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#faf9f9 !important; + --yt-spec-filled-button-text:#555 !important; + --yt-spec-call-to-action-inverse:#555 !important; + --yt-spec-brand-icon-active:#555 !important; + --yt-spec-brand-icon-inactive:#555 !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#555!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#555 !important; + --yt-spec-wordmark-text:#555 !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#555 !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + [it-desert-theme=true][it-schedule=system_peference_light] ytd-masthead + { + background: #bee3db!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: #555!important; + --yt-swatch-important-text: #555!important; + --yt-swatch-input-text: #555!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: #555!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #faf9f9; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: #555; + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), + html[it-desert-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], + [it-desert-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #555; + --yt-spec-text-primary: #555; + --ytd-searchbox-border-color: #555; + --ytd-searchbox-legacy-border-color: #555; + --ytd-searchbox-legacy-border-shadow-color: #555; + --ytd-searchbox-legacy-button-color: #555; + --ytd-searchbox-legacy-button-border-color: #555; + --ytd-searchbox-legacy-button-focus-color: #555; + --ytd-searchbox-legacy-button-hover-color: #555; + --ytd-searchbox-legacy-button-hover-border-color: #555; + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: #555; + --ytd-moderation-panel-hover: #555; + --ytd-moderation-panel-comment-text: #555; + --ytd-moderation-panel-comment-metadata-text: #555; + --ytd-moderation-icon-color: #555; + --ytd-moderation-icon-hover-color: #555; + --ytd-comment-text-color: #555; + --ytd-comment-metadata-text-color: #555; + --ytd-watch-card-secondary-text-color: #555; + --ytd-watch-card-album-header-background: #555; + --ytd-backstage-metadata-text-color: #555; + --ytd-backstage-video-link-background-color: #555; + --ytd-backstage-image-alert-color: #555; + --ytd-backstage-cancel-background-color: #555; + --ytd-backstage-cancel-color: #555; + --ytd-backstage-creationbox-background-color: #555; + --ytd-backstage-creationbox-background-color-focus: #555; + --ytd-backstage-creationbox-inactive-color: #555; + --ytd-backstage-creationbox-text-color: #555; + --ytd-backstage-creationbox-input-text-color: #555; + --ytd-backstage-creationbox-disabled-button-color: #555; + --ytd-backstage-creationbox-disabled-button-text-color: #555; + --ytd-backstage-attachment-icon-hover-color: #555; + --ytd-sponsorships-background-color-focus: #555; + --ytd-badge-background: #555; + --ytd-badge-disabled-color: #555; + --ytd-collection-badge-color: #555; + --ytd-owner-badge-color: #555; + --ytd-simple-badge-color: #555; + --ytd-ad-badge-text-color: #555; + --ytd-shopping-product-info: #555; + --ytd-toggle-color: #555; + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: #555; + --ytd-transcript-toolbar-background-color: #555; + --ytd-transcript-toolbar-text: #555; + --ytd-video-publish-date-color: #555; + --ytd-vat-notice-text: #555; + --ytd-offer-background-color: #555; + --ytd-video-game-watch-card-logo-color: #555; + --ytd-watch-split-pane-sidebar-background-color: #555; + --yt-std-body-100: #555; + --yt-std-body-200: #555; + --yt-std-body-300: #555; + --yt-std-surface-200: #555; + --yt-std-surface-300: #555; + --yt-std-surface-400: #555; + --yt-primary-color: #555; + --yt-primary-text-color: #555; + --yt-hovered-text-color: #555; + --yt-secondary-text-color: #555; + --yt-tertiary-text-color: #555; + --yt-disabled-text-color: #555; + --yt-placeholder-text-color: #555; + --yt-border-color: #555; + --yt-commentbox-border-inactive: #555; + --yt-commentbox-border-active: #555; + --yt-alert-background: #555; + --yt-paper-button-ink-color: #555; + --yt-icon-color: #555; + --yt-icon-hover-color: #555; + --yt-icon-active-color: #555; + --yt-icon-disabled-color: #555; + --yt-endpoint-color: #555; + --yt-expand-color: #555; + --yt-metadata-color: #555; + --yt-channel-owner: #555; + --yt-placeholder-text: #555; + --yt-playlist-background-header: #faf9f9; + --yt-playlist-background-item: #faf9f9; + --yt-playlist-title-text: #555; + --yt-playlist-message-text: #555; + --yt-playlist-message-text-hover: #555; + --yt-subscribe-button-text-color: #555; + --yt-brand-color: #555; + --yt-button-text-color: #555; + --yt-button-payment-text-color: #555; + --yt-copyright-text: #555; + --yt-guide-entry-hover-background-color: #555; + --yt-thumbnail-placeholder-color: #555; + --yt-primary-disabled-button-text-color: #555; + --yt-featured-channel-title-text-color: #555; + --yt-formatted-string-deemphasize-color: #555; + --paper-menu-background-color: #faf9f9; + --paper-listbox-background-color: #faf9f9; + --paper-menu-color: #555; + --paper-listbox-color: #555; + --paper-dialog-background-color: #faf9f9; + --paper-toggle-button-unchecked-bar-color: #555; + --yt-simple-menu-header-background: #faf9f9; + --yt-item-section-header-color: #555; + --yt-menu-hover-backgound-color: #faf9f9; + --yt-menu-focus-background-color: #faf9f9; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: #555; + --yt-material-searchbox-active: #555; + --yt-material-searchbox-inactive-shadow: #555; + --yt-material-searchbox-active-shadow: #555; + --yt-material-searchbox-inset: #555; + --yt-material-searchbox-text-color: #555; + --yt-app-background: #faf9f9; + --yt-main-app-background: #faf9f9; + --yt-main-app-background-tmp: #faf9f9; + --yt-guide-background: #faf9f9; + --yt-dialog-background: #bee3db; + --yt-searchbox-background: #faf9f9; + --yt-channel-header-background: #faf9f9; + --yt-sidebar-background: #faf9f9; + --yt-transcript-background: #faf9f9; + --yt-chat-bubble-other-border-color: #555; + --yt-chat-bubble-other-background-color: #faf9f9; + --yt-chat-bubble-self-border-color: #555; + --yt-chat-bubble-self-background-color: #faf9f9; + --yt-blue-suggestive: transparent; + } +} + +[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) +{ + --yt-swatch-primary: #003459!important; + --yt-swatch-primary-darker: #003459!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #007ea7; + + --yt-spec-brand-background-solid:#003459 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#003459 !important; + --yt-spec-general-background-b:#003459 !important; + --yt-spec-general-background-c:#003459 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#fff !important; + --yt-spec-text-primary-inverse:#fff !important; + --yt-spec-text-secondary:#fff !important; + --yt-spec-text-disabled:#fff !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#fff !important; + --yt-spec-icon-inactive:#fff !important; + --yt-spec-icon-disabled:#fff !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#003459 !important; + --yt-spec-filled-button-text:#fff !important; + --yt-spec-call-to-action-inverse:#fff !important; + --yt-spec-brand-icon-active:#fff !important; + --yt-spec-brand-icon-inactive:#fff !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#fff!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#fff !important; + --yt-spec-wordmark-text:#fff !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#fff !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; +} +html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo +{ + -webkit-filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); +} +[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead +{ + background: #007ea7!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; +} +[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) +{ + --yt-live-chat-action-panel-background-color: #003459; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; +} +[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] +{ + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #003459; + --yt-playlist-background-item: #003459; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #003459; + --paper-listbox-background-color: #003459; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #003459; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #003459; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #003459; + --yt-menu-focus-background-color: #003459; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #003459; + --yt-main-app-background: #003459; + --yt-main-app-background-tmp: #003459; + --yt-guide-background: #003459; + --yt-dialog-background: #007ea7; + --yt-searchbox-background: #003459!important; + --yt-channel-header-background: #003459; + --yt-sidebar-background: #003459; + --yt-transcript-background: #003459; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #003459; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #003459; + --yt-blue-suggestive: transparent; +} + + + + + +@media (prefers-color-scheme: dark) { + [it-night-theme=true][it-schedule=system_peference_dark] + { + --yt-swatch-primary: #003459!important; + --yt-swatch-primary-darker: #003459!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #007ea7; + + --yt-spec-brand-background-solid:#003459 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#003459 !important; + --yt-spec-general-background-b:#003459 !important; + --yt-spec-general-background-c:#003459 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#fff !important; + --yt-spec-text-primary-inverse:#fff !important; + --yt-spec-text-secondary:#fff !important; + --yt-spec-text-disabled:#fff !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#fff !important; + --yt-spec-icon-inactive:#fff !important; + --yt-spec-icon-disabled:#fff !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#003459 !important; + --yt-spec-filled-button-text:#fff !important; + --yt-spec-call-to-action-inverse:#fff !important; + --yt-spec-brand-icon-active:#fff !important; + --yt-spec-brand-icon-inactive:#fff !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#fff!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#fff !important; + --yt-spec-wordmark-text:#fff !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#fff !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + html[it-night-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo + { + -webkit-filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); + } + [it-night-theme=true][it-schedule=system_peference_dark] ytd-masthead + { + background: #007ea7!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #003459; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), + html[it-night-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], + [it-night-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #003459; + --yt-playlist-background-item: #003459; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #003459; + --paper-listbox-background-color: #003459; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #003459; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #003459; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #003459; + --yt-menu-focus-background-color: #003459; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #003459; + --yt-main-app-background: #003459; + --yt-main-app-background-tmp: #003459; + --yt-guide-background: #003459; + --yt-dialog-background: #007ea7; + --yt-searchbox-background: #003459!important; + --yt-channel-header-background: #003459; + --yt-sidebar-background: #003459; + --yt-transcript-background: #003459; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #003459; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #003459; + --yt-blue-suggestive: transparent; + } +} + + + + + +@media (prefers-color-scheme: light) { + [it-night-theme=true][it-schedule=system_peference_light] + { + --yt-swatch-primary: #003459!important; + --yt-swatch-primary-darker: #003459!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #007ea7; + + --yt-spec-brand-background-solid:#003459 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#003459 !important; + --yt-spec-general-background-b:#003459 !important; + --yt-spec-general-background-c:#003459 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#fff !important; + --yt-spec-text-primary-inverse:#fff !important; + --yt-spec-text-secondary:#fff !important; + --yt-spec-text-disabled:#fff !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#fff !important; + --yt-spec-icon-inactive:#fff !important; + --yt-spec-icon-disabled:#fff !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#003459 !important; + --yt-spec-filled-button-text:#fff !important; + --yt-spec-call-to-action-inverse:#fff !important; + --yt-spec-brand-icon-active:#fff !important; + --yt-spec-brand-icon-inactive:#fff !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#fff!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#fff !important; + --yt-spec-wordmark-text:#fff !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#fff !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + html[it-night-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo + { + -webkit-filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); + } + [it-night-theme=true][it-schedule=system_peference_light] ytd-masthead + { + background: #007ea7!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #003459; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), + html[it-night-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], + [it-night-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #003459; + --yt-playlist-background-item: #003459; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #003459; + --paper-listbox-background-color: #003459; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #003459; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #003459; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #003459; + --yt-menu-focus-background-color: #003459; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #003459; + --yt-main-app-background: #003459; + --yt-main-app-background-tmp: #003459; + --yt-guide-background: #003459; + --yt-dialog-background: #007ea7; + --yt-searchbox-background: #003459!important; + --yt-channel-header-background: #003459; + --yt-sidebar-background: #003459; + --yt-transcript-background: #003459; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #003459; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #003459; + --yt-blue-suggestive: transparent; + } +} + +[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) +{ + --yt-swatch-primary: #c7efcf!important; + --yt-swatch-primary-darker: #c7efcf!important; + --yt-swatch-text: #666!important; + --yt-swatch-important-text: #666!important; + --yt-swatch-input-text: #666!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: #666!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #d6d1b1; + + --yt-spec-brand-background-solid:#c7efcf !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#c7efcf !important; + --yt-spec-general-background-b:#c7efcf !important; + --yt-spec-general-background-c:#c7efcf !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#666 !important; + --yt-spec-text-primary-inverse:#666 !important; + --yt-spec-text-secondary:#666 !important; + --yt-spec-text-disabled:#666 !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#666 !important; + --yt-spec-icon-inactive:#666 !important; + --yt-spec-icon-disabled:#666 !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#c7efcf !important; + --yt-spec-filled-button-text:#666 !important; + --yt-spec-call-to-action-inverse:#666 !important; + --yt-spec-brand-icon-active:#666 !important; + --yt-spec-brand-icon-inactive:#666 !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#666!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#666 !important; + --yt-spec-wordmark-text:#666 !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#666 !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; +} +[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead +{ + background: #d6d1b1!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: #666!important; + --yt-swatch-important-text: #666!important; + --yt-swatch-input-text: #666!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: #666!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; +} +[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) +{ + --yt-live-chat-action-panel-background-color: #c7efcf; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; +} +[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] +{ + --yt-spec-icon-inactive: #666; + --yt-spec-text-primary: #666; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #c7efcf; + --yt-playlist-background-item: #c7efcf; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #c7efcf; + --paper-listbox-background-color: #c7efcf; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #c7efcf; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #c7efcf; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #c7efcf; + --yt-menu-focus-background-color: #c7efcf; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #c7efcf; + --yt-main-app-background: #c7efcf; + --yt-main-app-background-tmp: #c7efcf; + --yt-guide-background: #c7efcf; + --yt-dialog-background: #d6d1b1; + --yt-searchbox-background: #c7efcf; + --yt-channel-header-background: #c7efcf; + --yt-sidebar-background: #c7efcf; + --yt-transcript-background: #c7efcf; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #c7efcf; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #c7efcf; + --yt-blue-suggestive: transparent; +} + + + + + +@media (prefers-color-scheme: dark) { + [it-plain-theme=true][it-schedule=system_peference_dark] + { + --yt-swatch-primary: #c7efcf!important; + --yt-swatch-primary-darker: #c7efcf!important; + --yt-swatch-text: #666!important; + --yt-swatch-important-text: #666!important; + --yt-swatch-input-text: #666!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: #666!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #d6d1b1; + + --yt-spec-brand-background-solid:#c7efcf !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#c7efcf !important; + --yt-spec-general-background-b:#c7efcf !important; + --yt-spec-general-background-c:#c7efcf !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#666 !important; + --yt-spec-text-primary-inverse:#666 !important; + --yt-spec-text-secondary:#666 !important; + --yt-spec-text-disabled:#666 !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#666 !important; + --yt-spec-icon-inactive:#666 !important; + --yt-spec-icon-disabled:#666 !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#c7efcf !important; + --yt-spec-filled-button-text:#666 !important; + --yt-spec-call-to-action-inverse:#666 !important; + --yt-spec-brand-icon-active:#666 !important; + --yt-spec-brand-icon-inactive:#666 !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#666!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#666 !important; + --yt-spec-wordmark-text:#666 !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#666 !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + [it-plain-theme=true][it-schedule=system_peference_dark] ytd-masthead + { + background: #d6d1b1!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: #666!important; + --yt-swatch-important-text: #666!important; + --yt-swatch-input-text: #666!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: #666!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #c7efcf; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), + html[it-plain-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], + [it-plain-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #666; + --yt-spec-text-primary: #666; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #c7efcf; + --yt-playlist-background-item: #c7efcf; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #c7efcf; + --paper-listbox-background-color: #c7efcf; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #c7efcf; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #c7efcf; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #c7efcf; + --yt-menu-focus-background-color: #c7efcf; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #c7efcf; + --yt-main-app-background: #c7efcf; + --yt-main-app-background-tmp: #c7efcf; + --yt-guide-background: #c7efcf; + --yt-dialog-background: #d6d1b1; + --yt-searchbox-background: #c7efcf; + --yt-channel-header-background: #c7efcf; + --yt-sidebar-background: #c7efcf; + --yt-transcript-background: #c7efcf; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #c7efcf; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #c7efcf; + --yt-blue-suggestive: transparent; + } +} + + + + + +@media (prefers-color-scheme: light) { + [it-plain-theme=true][it-schedule=system_peference_light] + { + --yt-swatch-primary: #c7efcf!important; + --yt-swatch-primary-darker: #c7efcf!important; + --yt-swatch-text: #666!important; + --yt-swatch-important-text: #666!important; + --yt-swatch-input-text: #666!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: #666!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #d6d1b1; + + --yt-spec-brand-background-solid:#c7efcf !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#c7efcf !important; + --yt-spec-general-background-b:#c7efcf !important; + --yt-spec-general-background-c:#c7efcf !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#666 !important; + --yt-spec-text-primary-inverse:#666 !important; + --yt-spec-text-secondary:#666 !important; + --yt-spec-text-disabled:#666 !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#666 !important; + --yt-spec-icon-inactive:#666 !important; + --yt-spec-icon-disabled:#666 !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#c7efcf !important; + --yt-spec-filled-button-text:#666 !important; + --yt-spec-call-to-action-inverse:#666 !important; + --yt-spec-brand-icon-active:#666 !important; + --yt-spec-brand-icon-inactive:#666 !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#666!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#666 !important; + --yt-spec-wordmark-text:#666 !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#666 !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + [it-plain-theme=true][it-schedule=system_peference_light] ytd-masthead + { + background: #d6d1b1!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: #666!important; + --yt-swatch-important-text: #666!important; + --yt-swatch-input-text: #666!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: #666!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #c7efcf; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), + html[it-plain-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], + [it-plain-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #666; + --yt-spec-text-primary: #666; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #c7efcf; + --yt-playlist-background-item: #c7efcf; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #c7efcf; + --paper-listbox-background-color: #c7efcf; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #c7efcf; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #c7efcf; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #c7efcf; + --yt-menu-focus-background-color: #c7efcf; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #c7efcf; + --yt-main-app-background: #c7efcf; + --yt-main-app-background-tmp: #c7efcf; + --yt-guide-background: #c7efcf; + --yt-dialog-background: #d6d1b1; + --yt-searchbox-background: #c7efcf; + --yt-channel-header-background: #c7efcf; + --yt-sidebar-background: #c7efcf; + --yt-transcript-background: #c7efcf; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #c7efcf; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #c7efcf; + --yt-blue-suggestive: transparent; + } +} + +[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) +{ + --yt-swatch-primary: #2f3364!important; + --yt-swatch-primary-darker: #2f3364!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #f56264; + + --yt-spec-brand-background-solid:#2f3364 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#2f3364 !important; + --yt-spec-general-background-b:#2f3364 !important; + --yt-spec-general-background-c:#2f3364 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#fff !important; + --yt-spec-text-primary-inverse:#fff !important; + --yt-spec-text-secondary:#fff !important; + --yt-spec-text-disabled:#fff !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#fff !important; + --yt-spec-icon-inactive:#fff !important; + --yt-spec-icon-disabled:#fff !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#2f3364 !important; + --yt-spec-filled-button-text:#fff !important; + --yt-spec-call-to-action-inverse:#fff !important; + --yt-spec-brand-icon-active:#fff !important; + --yt-spec-brand-icon-inactive:#fff !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#fff!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#fff !important; + --yt-spec-wordmark-text:#fff !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#fff !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; +} +[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { + background: #f56264!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; +} +[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) +{ + --yt-live-chat-action-panel-background-color: #2f3364; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; +} +[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] +{ + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #2f3364; + --yt-playlist-background-item: #2f3364; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #2f3364; + --paper-listbox-background-color: #2f3364; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #2f3364; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #2f3364; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #2f3364; + --yt-menu-focus-background-color: #2f3364; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #2f3364; + --yt-main-app-background: #2f3364; + --yt-main-app-background-tmp: #2f3364; + --yt-guide-background: #2f3364; + --yt-dialog-background: #D62828; + --yt-searchbox-background: #fa7965!important; + --yt-channel-header-background: #2f3364; + --yt-sidebar-background: #2f3364; + --yt-transcript-background: #2f3364; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #2f3364; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #2f3364; + --yt-blue-suggestive: transparent; +} + + + + + +@media (prefers-color-scheme: dark) { + [it-sunset-theme=true][it-schedule=system_peference_dark] + { + --yt-swatch-primary: #2f3364!important; + --yt-swatch-primary-darker: #2f3364!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #f56264; + + --yt-spec-brand-background-solid:#2f3364 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#2f3364 !important; + --yt-spec-general-background-b:#2f3364 !important; + --yt-spec-general-background-c:#2f3364 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#fff !important; + --yt-spec-text-primary-inverse:#fff !important; + --yt-spec-text-secondary:#fff !important; + --yt-spec-text-disabled:#fff !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#fff !important; + --yt-spec-icon-inactive:#fff !important; + --yt-spec-icon-disabled:#fff !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#2f3364 !important; + --yt-spec-filled-button-text:#fff !important; + --yt-spec-call-to-action-inverse:#fff !important; + --yt-spec-brand-icon-active:#fff !important; + --yt-spec-brand-icon-inactive:#fff !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#fff!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#fff !important; + --yt-spec-wordmark-text:#fff !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#fff !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + [it-sunset-theme=true][it-schedule=system_peference_dark] ytd-masthead { + background: #f56264!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #2f3364; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), + html[it-sunset-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], + [it-sunset-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #2f3364; + --yt-playlist-background-item: #2f3364; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #2f3364; + --paper-listbox-background-color: #2f3364; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #2f3364; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #2f3364; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #2f3364; + --yt-menu-focus-background-color: #2f3364; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #2f3364; + --yt-main-app-background: #2f3364; + --yt-main-app-background-tmp: #2f3364; + --yt-guide-background: #2f3364; + --yt-dialog-background: #D62828; + --yt-searchbox-background: #fa7965!important; + --yt-channel-header-background: #2f3364; + --yt-sidebar-background: #2f3364; + --yt-transcript-background: #2f3364; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #2f3364; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #2f3364; + --yt-blue-suggestive: transparent; + } +} + + + + + +@media (prefers-color-scheme: light) { + [it-sunset-theme=true][it-schedule=system_peference_light] + { + --yt-swatch-primary: #2f3364!important; + --yt-swatch-primary-darker: #2f3364!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #f56264; + + --yt-spec-brand-background-solid:#2f3364 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#2f3364 !important; + --yt-spec-general-background-b:#2f3364 !important; + --yt-spec-general-background-c:#2f3364 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#fff !important; + --yt-spec-text-primary-inverse:#fff !important; + --yt-spec-text-secondary:#fff !important; + --yt-spec-text-disabled:#fff !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#fff !important; + --yt-spec-icon-inactive:#fff !important; + --yt-spec-icon-disabled:#fff !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#2f3364 !important; + --yt-spec-filled-button-text:#fff !important; + --yt-spec-call-to-action-inverse:#fff !important; + --yt-spec-brand-icon-active:#fff !important; + --yt-spec-brand-icon-inactive:#fff !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#fff!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#fff !important; + --yt-spec-wordmark-text:#fff !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#fff !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + [it-sunset-theme=true][it-schedule=system_peference_light] ytd-masthead { + background: #f56264!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #2f3364; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), + html[it-sunset-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], + [it-sunset-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #2f3364; + --yt-playlist-background-item: #2f3364; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #2f3364; + --paper-listbox-background-color: #2f3364; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #2f3364; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #2f3364; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #2f3364; + --yt-menu-focus-background-color: #2f3364; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #2f3364; + --yt-main-app-background: #2f3364; + --yt-main-app-background-tmp: #2f3364; + --yt-guide-background: #2f3364; + --yt-dialog-background: #D62828; + --yt-searchbox-background: #fa7965!important; + --yt-channel-header-background: #2f3364; + --yt-sidebar-background: #2f3364; + --yt-transcript-background: #2f3364; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #2f3364; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #2f3364; + --yt-blue-suggestive: transparent; + } +} + + +/*------------------------------------------------------------------------------ +4.0 PLAYER +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +4.1 CROP CHAPTER TITLES +------------------------------------------------------------------------------*/ + +html[it-player-crop-chapter-titles=false] .ytp-chapter-title +{ + width: auto !important; +} + + +/*------------------------------------------------------------------------------ +4.2 ADS +------------------------------------------------------------------------------*/ + +html[it-player-ads=subscribed_channels] #related #player-ads, +html[it-player-ads=block_all] #related #player-ads, +html[it-player-ads=subscribed_channels] #masthead-ad, +html[it-player-ads=block_all] #masthead-ad +{ + display: none !important; +} + +/*------------------------------------------------------------------------------ +4.3 MINIPLAYER +------------------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------------- +# POSITION & SIZE +-----------------------------------------------------------------------------*/ + +.it-mini-player +{ + position: fixed !important; + z-index: 2147483648 !important; + left: 0!important; + top: 0!important; + + box-shadow: rgba(0, 0, 0, .4) 0 2px 8px !important; + + will-change: transform, width, height !important; + + background: #000 !important; +} + +html[it-page-type=video][it-header-position=hover_on_video_page][it-player-size=full_window] .html5-video-player.it-mini-player, +html[it-page-type=video][it-header-position=hover][it-player-size=full_window] .html5-video-player.it-mini-player +{ + margin-top: 0!important; +} + +.it-mini-player .html5-video-container, +.it-mini-player video +{ + left: 0 !important; + top: 0 !important; + width: 100% !important; + height: 100% !important; +} + +.it-mini-player .ytp-chrome-bottom +{ + width: calc(100% - 24px) !important; +} + +.it-mini-player .ytp-chapters-container +{ + display: flex; +} + +.it-mini-player .ytp-chapter-hover-container +{ + flex-grow: 1; +} + +html[it-mini-player=true] .ytp-contextmenu +{ + z-index: 2147483649 !important; +} + +.it-mini-player .ytp-miniplayer-button, +.it-mini-player .ytp-size-button +{ + display: none !important; +} + + +/*----------------------------------------------------------------------------- +# DRAGGING +-----------------------------------------------------------------------------*/ + +.improvedtube-mini-player.dragging +{ + pointer-events: none !important; +} + +.improvedtube-mini-player.dragging *:not(.html5-video-container):not(video) +{ + visibility: hidden !important; +} + +html[data-cursor='w-resize'], +html[data-cursor='w-resize'] * +{ + cursor: w-resize !important; +} + +html[data-cursor='e-resize'], +html[data-cursor='e-resize'] * +{ + cursor: e-resize !important; +} + +html[it-mini-player-cursor='n-resize']::after, +html[it-mini-player-cursor='e-resize']::after, +html[it-mini-player-cursor='s-resize']::after, +html[it-mini-player-cursor='w-resize']::after, +html[it-mini-player-cursor='ne-resize']::after, +html[it-mini-player-cursor='se-resize']::after, +html[it-mini-player-cursor='sw-resize']::after, +html[it-mini-player-cursor='nw-resize']::after +{ + content: ''; + position: fixed; + left: 0; + top: 0; + width: 100vw; + height: 100vh; + z-index: 2147483650; +} + +html[it-mini-player-cursor='n-resize']::after +{ + cursor: n-resize; +} + +html[it-mini-player-cursor='e-resize']::after +{ + cursor: e-resize; +} + +html[it-mini-player-cursor='s-resize']::after +{ + cursor: s-resize; +} + +html[it-mini-player-cursor='w-resize']::after +{ + cursor: w-resize; +} + +html[it-mini-player-cursor='ne-resize']::after +{ + cursor: ne-resize; +} + +html[it-mini-player-cursor='se-resize']::after +{ + cursor: se-resize; +} + +html[it-mini-player-cursor='sw-resize']::after +{ + cursor: sw-resize; +} + +html[it-mini-player-cursor='nw-resize']::after +{ + cursor: nw-resize; +} + + +/*------------------------------------------------------------------------------ +4.4 SCREENSHOT +------------------------------------------------------------------------------*/ + +#it-screenshot-button +{ + position: relative !important; +} + +#it-screenshot-button svg +{ + position: absolute !important; + top: 7px !important; + left: 7px !important; + + width: 22px !important; + + fill: #fff !important; +} + +.html5-video-player.ytp-big-mode #it-screenshot-button svg +{ + top: 10px !important; + left: 10px !important; + + width: 34px !important; +} + + +/*------------------------------------------------------------------------------ +4.5 REPEAT +------------------------------------------------------------------------------*/ + +#it-repeat-button +{ + position: relative !important; +} + +#it-repeat-button svg +{ + position: absolute !important; + top: 6px !important; + left: 6px !important; + + width: 24px !important; + + fill: #fff !important; +} + +.html5-video-player.ytp-big-mode #it-repeat-button svg +{ + top: 10px !important; + left: 10px !important; + + width: 34px !important; +} + + +/*------------------------------------------------------------------------------ +4.6 ROTATE +------------------------------------------------------------------------------*/ + +#it-rotate-button +{ + position: relative !important; +} + +#it-rotate-button svg +{ + position: absolute !important; + top: 7px !important; + left: 7px !important; + + width: 22px !important; + + fill: #fff !important; +} + +.html5-video-player.ytp-big-mode #it-rotate-button svg +{ + top: 10px !important; + left: 10px !important; + + width: 34px !important; +} + + +/*------------------------------------------------------------------------------ +4.7 POPUP PLAYER +------------------------------------------------------------------------------*/ + +#it-popup-player-button +{ + position: relative !important; +} + +#it-popup-player-button svg +{ + position: absolute !important; + top: 7px !important; + left: 7px !important; + + width: 22px !important; + + fill: #fff !important; +} + +.html5-video-player.ytp-big-mode #it-popup-player-button svg +{ + top: 10px !important; + left: 10px !important; + + width: 34px !important; +} + + /*------------------------------------------------------------------------------ 5.0 PLAYLIST ------------------------------------------------------------------------------*/ @@ -1203,4 +5934,21 @@ TODO: FIX html[it-channel-hide-featured-content=true] #secondary.ytd-two-column-browse-results-renderer { display: none; +} + + +/*------------------------------------------------------------------------------ +7.0 SHORTCUTS +------------------------------------------------------------------------------*/ + +#it-status +{ + font-size: 5rem; + + position: absolute; + top: 2rem; + right: 3rem; + + color: #0ff; + text-shadow: 1px 1px 2px #000; } \ No newline at end of file diff --git a/3.120-pre/manifest.json b/3.120-pre/manifest.json index 088a9baf6..ea033c4bd 100644 --- a/3.120-pre/manifest.json +++ b/3.120-pre/manifest.json @@ -1,90 +1,86 @@ { - "manifest_version":2, - "name":"*Improve YouTube!☕🧩 YouTube-&Video-Tools 🎞️🧪", - "short_name":"ImprovedTube", - "description":"Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", - "version":"3.120", - "version_name":"3.120-stable", - "default_locale":"en", - "icons":{ - "128":"assets/icons/128.png", - "16":"assets/icons/16.png", - "32":"assets/icons/32.png", - "48":"assets/icons/48.png" - }, - "background":{ - "persistent":false, - "scripts":[ - "background.js" - ] - }, - "browser_action":{ - "default_icon":{ - "128":"assets/icons/128g.png", - "16":"assets/icons/16g.png", - "32":"assets/icons/32g.png", - "48":"assets/icons/48g.png" - }, - "default_popup":"index.html" - }, - "options_page":"options.html", - "content_scripts":[ - { - "all_frames":true, - "css":[ + "manifest_version": 2, + "name": "*Improve YouTube!☕🧩 YouTube-&Video-Tools 🎞️🧪", + "short_name": "ImprovedTube", + "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", + "version": "3.120", + "version_name": "3.120-testing", + "default_locale": "en", + "icons": { + "128": "assets/icons/128.png", + "16": "assets/icons/16.png", + "32": "assets/icons/32.png", + "48": "assets/icons/48.png" + }, + "background": { + "persistent": false, + "scripts": [ + "background.js" + ] + }, + "browser_action": { + "default_icon": { + "128": "assets/icons/128g.png", + "16": "assets/icons/16g.png", + "32": "assets/icons/32g.png", + "48": "assets/icons/48g.png" + }, + "default_popup": "index.html" + }, + "options_page": "options.html", + "content_scripts": [{ + "all_frames": true, + "css": [ "content-styles.css" - ], - "exclude_matches":[ + ], + "exclude_matches": [ "https://www.youtube.com/improvedtube", "https://www.youtube.com/tv*", "https://www.youtube.com/audiolibrary/*", "http://studio.youtube.com/*" - ], - "js":[ + ], + "js": [ "youtube-scripts.js", "content-scripts.js" - ], - "matches":[ + ], + "matches": [ "https://www.youtube.com/*" - ], - "run_at":"document_start" - }, - { - "all_frames":true, - "css":[ + ], + "run_at": "document_start" + }, { + "all_frames": true, + "css": [ "satus.css", "popup.css" - ], - "js":[ + ], + "js": [ "satus.js", "popup.js" - ], - "matches":[ + ], + "matches": [ "https://www.youtube.com/improvedtube" - ], - "run_at":"document_end" - }, - { - "all_frames":true, - "js":[ + ], + "run_at": "document_end" + }, { + "all_frames": true, + "js": [ "page.js" - ], - "matches":[ + ], + "matches": [ "https://www.youtube.com/improvedtube" - ], - "run_at":"document_start" - } - ], - "content_security_policy":"script-src 'self' https://ssl.google-analytics.com; object-src 'self'", - "offline_enabled":true, - "permissions":[ - "https://www.youtube.com/", - "contextMenus", - "storage" - ], - "optional_permissions":[ - "downloads", - "https://*.youtube.com/*" - ], - "update_url":"https://clients2.google.com/service/update2/crx" + ], + "run_at": "document_start" + }], + "content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'", + "offline_enabled": true, + "permissions": [ + "https://www.youtube.com/", + "contextMenus", + "storage" + ], + "optional_permissions": [ + "downloads", + "https://*.youtube.com/*" + ], + "update_url": "https://clients2.google.com/service/update2/crx" } \ No newline at end of file diff --git a/3.120-pre/popup.js b/3.120-pre/popup.js index b459f6f0b..f9d7d680b 100644 --- a/3.120-pre/popup.js +++ b/3.120-pre/popup.js @@ -1663,18 +1663,6 @@ Menu.main.section.appearance = { value: 'hidden' }] }, - /*livechat_type: { - type: 'select', - label: 'liveChatType', - - options: [{ - label: 'topChat', - value: 'top' - }, { - label: 'liveChat', - value: 'live' - }] - },*/ hide_playlist: { type: 'switch', label: 'hidePlaylist' @@ -3015,14 +3003,6 @@ Menu.main.section.analyzer = { 3.0 INITIALIZATION ------------------------------------------------------------------------------*/ -function themePopupChange() { - if (satus.storage.get('red_popup_theme') === true) { - document.documentElement.setAttribute('popup-theme', 'red'); - } else { - document.documentElement.removeAttribute('popup-theme'); - } -} - function themeChange(event) { if (event.target.checked) { let themes = document.querySelectorAll('.satus-switch > input:checked:not([data-storage-key="red_popup_theme"])'); diff --git a/3.120-pre/youtube-scripts.js b/3.120-pre/youtube-scripts.js index 0889b8113..c8646f18e 100644 --- a/3.120-pre/youtube-scripts.js +++ b/3.120-pre/youtube-scripts.js @@ -4,6 +4,8 @@ 0.0 Global variable 0.0 Page update listener 0.0 Initialization +0.0 Onfocus +0.0 Onplay 1.0 General 1.1 YouTube home page @@ -26,6 +28,11 @@ 2.3.2 Show channel videos count 2.5 Comments 3.0 Themes + 3.1 My colors + 3.2 Bluelight + 3.3 Dim + 3.4 Font + 3.5 Themes 4.0 Player 4.1 Autoplay 4.2 Autopause when switching tabs @@ -54,6 +61,10 @@ 7.0 Shortcuts 8.0 Blacklist 9.0 Analyzer +10.0 Settings + 10.1 ImprovedTube icon + 10.2 Delete YouTube cookies + 10.3 YouTube language ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ @@ -78,17 +89,57 @@ ImprovedTube.pageUpdateListener = function() { ImprovedTube.collapseOfSubscriptionSections(); ImprovedTube.markWatchedVideos(); ImprovedTube.hdThumbnails(); - ImprovedTube.forcedTheaterMode(); - ImprovedTube.playerHdThumbnail(); - ImprovedTube.alwaysShowProgressBar(); - ImprovedTube.livechat(); - ImprovedTube.relatedVideos(); - ImprovedTube.howLongAgoTheVideoWasUploaded(); - ImprovedTube.channelVideosCount(); - ImprovedTube.comments(); + + ImprovedTube.videoPageUpdate(); + + ImprovedTube.blacklist(); + + ImprovedTube.improvedtubeYoutubeIcon(); }); }; +ImprovedTube.videoPageUpdate = function() { + if (this.page_type === 'video') { + this.forcedTheaterMode(); + this.playerHdThumbnail(); + this.alwaysShowProgressBar(); + this.livechat(); + this.relatedVideos(); + this.howLongAgoTheVideoWasUploaded(); + this.channelVideosCount(); + this.comments(); + + this.upNextAutoplay(); + this.playerAutofullscreen(); + this.playerScreenshotButton(); + this.playerRepeatButton(); + this.playerRotateButton(); + this.playerPopupButton(); + + this.playlistUpNextAutoplay(); + this.playlistReverse(); + this.playlistRepeat(); + this.playlistShuffle(); + + this.channelDefaultTab(); + } +}; + + +/*------------------------------------------------------------------------------ +0.0 PLAYER UPDATE +------------------------------------------------------------------------------*/ + +ImprovedTube.playerUpdate = function() { + this.playerPlaybackSpeed(); + this.subtitles(); + this.playerAds(); + this.mini_player(); + this.playerQuality(); + this.playerVolume(); + this.playlistUpNextAutoplay(); +}; + /*------------------------------------------------------------------------------ 0.0 DOM CONTENT LOADED @@ -102,14 +153,18 @@ ImprovedTube.DOMContentLoaded = function() { ImprovedTube.confirmationBeforeClosing(); ImprovedTube.markWatchedVideos(); ImprovedTube.hdThumbnails(); - ImprovedTube.forcedTheaterMode(); - ImprovedTube.playerHdThumbnail(); - ImprovedTube.alwaysShowProgressBar(); - ImprovedTube.livechat(); - ImprovedTube.relatedVideos(); - ImprovedTube.howLongAgoTheVideoWasUploaded(); - ImprovedTube.channelVideosCount(); - ImprovedTube.comments(); + + ImprovedTube.myColors(); + ImprovedTube.bluelight(); + ImprovedTube.dim(); + ImprovedTube.font(); + ImprovedTube.themes(); + + ImprovedTube.videoPageUpdate(); + + ImprovedTube.blacklist(); + + ImprovedTube.improvedtubeYoutubeIcon(); ImprovedTube.pageUpdateListener(); }); @@ -121,8 +176,14 @@ ImprovedTube.DOMContentLoaded = function() { ------------------------------------------------------------------------------*/ ImprovedTube.init = function() { - ImprovedTube.pageType(); - ImprovedTube.DOMContentLoaded(); + this.playerH264(); + this.player60fps(); + this.pageType(); + this.shortcuts(); + this.DOMContentLoaded(); + this.onplay(); + this.onkeydown(); + this.onmousedown(); }; @@ -130,6 +191,9 @@ ImprovedTube.init = function() { 0.0 PAGE TYPE ------------------------------------------------------------------------------*/ +ImprovedTube.video_url = false; +ImprovedTube.page_type = false; + ImprovedTube.pageType = function() { var href = location.href, type = ''; @@ -142,9 +206,97 @@ ImprovedTube.pageType = function() { type = 'channel'; } + this.page_type = type; + document.documentElement.setAttribute('it-page-type', type); }; + +/*------------------------------------------------------------------------------ +0.0 ONFOCUS +------------------------------------------------------------------------------*/ + +ImprovedTube.focus = false; +ImprovedTube.played_before_blur = false; + +ImprovedTube.onfocus = function() { + this.onlyOnePlayerInstancePlaying(); + this.playerAutopauseWhenSwitchingTabs(); +}; + + +/*------------------------------------------------------------------------------ +0.0 ONPLAY +------------------------------------------------------------------------------*/ + +ImprovedTube.onplay = function() { + HTMLMediaElement.prototype.play = (function(original) { + return function() { + ImprovedTube.autoplay(this); + ImprovedTube.playerLoudnessNormalization(); + + if (ImprovedTube.video_url !== location.href) { + ImprovedTube.video_url = location.href; + + ImprovedTube.playerUpdate(); + } + + return original.apply(this, arguments); + } + })(HTMLMediaElement.prototype.play); +}; + + +/*------------------------------------------------------------------------------ +0.0 ONKEYDOWN +------------------------------------------------------------------------------*/ + +ImprovedTube.onkeydown = function() { + window.addEventListener('keydown', function() { + if ( + document.querySelector('.html5-video-player') && + document.querySelector('.html5-video-player').classList.contains('ad-showing') === false + ) { + ImprovedTube.allow_autoplay = true; + } + }, true); +}; + + +/*------------------------------------------------------------------------------ +0.0 ONMOUSEDOWN +------------------------------------------------------------------------------*/ + +ImprovedTube.onmousedown = function(event) { + window.addEventListener('mousedown', function(event) { + for (var i = 0, l = event.path.length; i < l; i++) { + if ( + document.querySelector('.html5-video-player') && + document.querySelector('.html5-video-player').classList.contains('ad-showing') === false && + event.path[i].classList && + ( + event.path[i].classList.contains('html5-main-video') || + event.path[i].classList.contains('ytp-play-button') + ) + ) { + ImprovedTube.allow_autoplay = true; + } + } + }, true); +}; + + +ImprovedTube.getCookieValueByName = function(name) { + var match = document.cookie.match(new RegExp('([; ]' + name + '|^' + name + ')([^\\s;]*)', 'g')); + + if (match) { + var cookie = match[0]; + + return cookie.replace(name + '=', '').replace(' ', ''); + } else + return ''; +}; + ImprovedTube.getParam = function(query, name) { var params = query.split('&'), param = false; @@ -164,17 +316,73 @@ ImprovedTube.getParam = function(query, name) { } }; -ImprovedTube.focus = false; -ImprovedTube.played_before_blur = false; +ImprovedTube.getParams = function(query) { + var params = query.split('&'), + result = {}; -ImprovedTube.onfocus = function() { - this.onlyOnePlayerInstancePlaying(); + for (var i = 0, l = params.length; i < l; i++) { + params[i] = params[i].split('='); + + result[params[i][0]] = params[i][1]; + } + + return result; +}; + +ImprovedTube.setCookie = function(name, value) { + var date = new Date(); + + date.setTime(date.getTime() + 3.154e+10); + + document.cookie = name + '=' + value + '; path=/; domain=.youtube.com; expires=' + date.toGMTString(); +}; + +ImprovedTube.createPlayerButton = function(node, options) { + var controls = document.querySelector('.html5-video-player .ytp-left-controls'); + + if (controls) { + var button = document.createElement('button'); + + button.className = 'ytp-button it-player-button'; + + button.dataset.title = options.title; + + if (options.id) { + if (node.querySelector('#' + options.id)) { + node.querySelector('#' + options.id).remove(); + } + + button.id = options.id; + } + + if (options.html) { + button.innerHTML = options.html; + } + + button.style.opacity = options.opacity || '.5'; + + if (options.onclick) { + button.onclick = options.onclick; + } + + controls.insertBefore(button, controls.childNodes[3]); + } +}; + +ImprovedTube.reverse = function(parent) { + for (var i = 1, l = parent.childNodes.length; i < l; i++) { + parent.insertBefore(parent.childNodes[i], parent.firstChild); + } }; + + + + /*------------------------------------------------------------------------------ 1.0 GENERAL ------------------------------------------------------------------------------*/ @@ -186,22 +394,23 @@ ImprovedTube.onfocus = function() { ImprovedTube.youtubeHomePage = function() { var option = this.storage.youtube_home_page; - if (['/', 'search', null].indexOf(option) === -1) { + if ( + option === '/feed/trending' || + option === '/feed/subscriptions' || + option === '/feed/history' || + option === '/playlist?list=WL' + ) { var node_list = document.querySelectorAll(` - a[href="/"]:not([role="tablist"]), - a[href="https://www.youtube.com/"]:not([role="tablist"]), - a[it-origin="/"]:not([role="tablist"]), - a[it-origin="https://www.youtube.com/"]:not([role="tablist"]) + a[href="/"]:not([role=tablist]), + a[href="https://www.youtube.com/"]:not([role=tablist]), + a[it-origin="/"]:not([role=tablist]) `); for (var i = 0, l = node_list.length; i < l; i++) { - var node = node_list[i], - pathname = new URL((node.getAttribute('it-origin') || node.href)).pathname; + var node = node_list[i]; - if (pathname === '/') { - if (!node.hasAttribute('it-origin')) { - node.setAttribute('it-origin', node.href); - } + if (node.hasAttribute('it-origin') === false) { + node.setAttribute('it-origin', '/'); } node.href = option; @@ -217,13 +426,10 @@ ImprovedTube.youtubeHomePage = function() { }, true); } } else { - var node_list = document.querySelectorAll(` - a[it-origin="/"]:not([role="tablist"]), - a[it-origin="https://www.youtube.com/"]:not([role="tablist"]) - `); + var node_list = document.querySelectorAll('a[it-origin="/"]:not([role=tablist])'); for (var i = 0, l = node_list.length; i < l; i++) { - node_list[i].href = node_list[i].getAttribute('it-origin'); + node_list[i].href = '/'; } } }; @@ -870,6 +1076,243 @@ ImprovedTube.comments = function() { }; +/*------------------------------------------------------------------------------ +3.0 THEMES +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +3.1 MY COLORS +------------------------------------------------------------------------------*/ + +ImprovedTube.myColors = function() { + if (this.storage.theme_my_colors !== true) { + if (document.querySelector('.it-theme-editor')) { + document.querySelector('.it-theme-editor').remove(); + } + + return false; + } + + var style = document.querySelector('.it-theme-editor') || document.createElement('style'); + + style.className = 'it-theme-editor'; + style.innerText = 'html{' + + '--yt-swatch-textbox-bg:rgba(19,19,19,1)!important;' + + '--yt-swatch-icon-color:rgba(136,136,136,1)!important;' + + '--yt-spec-brand-background-primary:rgba(0,0,0, 0.1) !important;' + + '--yt-spec-brand-background-secondary:rgba(0,0,0, 0.1) !important;' + + '--yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important;' + + '--yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important;' + + '--yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important;' + + '--yt-spec-brand-button-background:rgba(136,136,136,1) !important;' + + '--yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important;' + + '--yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important;' + + '--yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important;' + + '--yt-spec-10-percent-layer:rgba(136,136,136,1) !important;' + + '--yt-swatch-primary:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-swatch-primary-darker:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-brand-background-solid:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-general-background-a:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-general-background-b:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-general-background-c:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-touch-response:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-swatch-text: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-swatch-important-text: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-swatch-input-text: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-swatch-logo-override: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-spec-text-primary:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-text-primary-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-text-secondary:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-text-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-icon-active-other:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-icon-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-filled-button-text:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-call-to-action-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-brand-icon-active:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-brand-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-brand-link-text:' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-spec-brand-subscribe-button-background:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-wordmark-text:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-selected-nav-text:' + (this.storage.theme_text_color || '') + ' !important;' + + '}'; + + document.documentElement.appendChild(style); +}; + + +/*------------------------------------------------------------------------------ +3.2 BLUELIGHT +------------------------------------------------------------------------------*/ + +ImprovedTube.bluelight = function() { + var value = this.storage.bluelight, + times = { + from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), + to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) + }, + current_time = new Date().getHours(); + + if (times.to < times.from && current_time > times.from && current_time < 24) { + times.to += 24; + } else if (times.to < times.from && current_time < times.to) { + times.from = 0; + } + + if ( + this.isset(value) && value !== 0 && value !== '0' && + (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) + ) { + if (!document.querySelector('#it-bluelight')) { + var container = document.createElement('div'); + + container.id = 'it-bluelight'; + container.innerHTML = ''; + + document.documentElement.appendChild(container); + } else { + document.querySelector('#it-bluelight-filter feColorMatrix').setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 ' + (1 - parseFloat(value) / 100) + ' 0 0 0 0 0 1 0'); + } + } else if (document.querySelector('#it-bluelight')) { + document.querySelector('#it-bluelight').remove(); + } +}; + + +/*------------------------------------------------------------------------------ +3.3 DIM +------------------------------------------------------------------------------*/ + +ImprovedTube.dim = function() { + var value = this.storage.dim, + times = { + from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), + to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) + }, + current_time = new Date().getHours(); + + if (times.to < times.from && current_time > times.from && current_time < 24) { + times.to += 24; + } else if (times.to < times.from && current_time < times.to) { + times.from = 0; + }; + + if ( + this.isset(value) && value !== 0 && value !== '0' && + (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) + ) { + if (!document.querySelector('#it-dim')) { + var container = document.createElement('div'); + + container.id = 'it-dim'; + container.style.opacity = parseInt(Number(value)) / 100 || 0; + + document.documentElement.appendChild(container); + } else { + document.querySelector('#it-dim').style.opacity = parseInt(Number(value)) / 100 || 0; + } + + if (!document.querySelector('#it-dim-player')) { + var container = document.createElement('div'); + + container.id = 'it-dim-player'; + container.style.opacity = parseInt(Number(value)) / 100 || 0; + + if (document.querySelector('.html5-video-player')) { + document.querySelector('.html5-video-player').appendChild(container); + } + } else { + document.querySelector('#it-dim-player').style.opacity = parseInt(Number(value)) / 100 || 0; + } + } else { + if (document.querySelector('#it-dim')) { + document.querySelector('#it-dim').remove(); + } + + if (document.querySelector('#it-dim-player')) { + document.querySelector('#it-dim-player').remove(); + } + } +}; + + +/*------------------------------------------------------------------------------ +3.4 FONT +------------------------------------------------------------------------------*/ + +ImprovedTube.font = function() { + if (this.storage.font) { + if (this.storage.font != 'Default') { + if (!document.querySelector('.it-font-family')) { + var link = document.createElement('link'); + + link.rel = 'stylesheet'; + + document.documentElement.appendChild(link); + } else { + var link = document.querySelector('.it-font-family'); + } + + link.href = '//fonts.googleapis.com/css2?family=' + this.storage.font; + + document.documentElement.style.fontFamily = this.storage.font.replace(/\+/g, ' '); + } + } +}; + + +/*------------------------------------------------------------------------------ +3.5 THEMES +------------------------------------------------------------------------------*/ + +ImprovedTube.themes = function() { + var times = { + from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), + to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) + }, + current_time = new Date().getHours(); + + if (times.to < times.from && current_time > times.from && current_time < 24) { + times.to += 24; + } else if (times.to < times.from && current_time < times.to) { + times.from = 0; + } + + if ( + (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) && + ( + this.isset(ImprovedTube.storage.default_dark_theme) && ImprovedTube.storage.default_dark_theme !== false || + this.isset(ImprovedTube.storage.night_theme) && ImprovedTube.storage.night_theme !== false || + this.isset(ImprovedTube.storage.dawn_theme) && ImprovedTube.storage.dawn_theme !== false || + this.isset(ImprovedTube.storage.sunset_theme) && ImprovedTube.storage.sunset_theme !== false || + this.isset(ImprovedTube.storage.desert_theme) && ImprovedTube.storage.desert_theme !== false || + this.isset(ImprovedTube.storage.plain_theme) && ImprovedTube.storage.plain_theme !== false || + this.isset(ImprovedTube.storage.black_theme) && ImprovedTube.storage.black_theme !== false + ) + ) { + var PREF_OLD = this.getParams(this.getCookieValueByName('PREF')), + PREF = this.getParams(this.getCookieValueByName('PREF')), + result = ''; + + if (!this.isset(PREF.f6) || this.isset(PREF.f6) && PREF.f6.length !== 3) { + PREF.f6 = '400'; + } else if (PREF.f6.length === 3) { + PREF.f6 = '4' + PREF.f6.substr(1); + } + + for (var i in PREF) { + result += i + '=' + PREF[i] + '&'; + } + + this.setCookie('PREF', result.slice(0, -1)); + + document.documentElement.setAttribute('it-theme', 'true'); + } else { + document.documentElement.removeAttribute('it-theme'); + } +}; + + /*------------------------------------------------------------------------------ 4.0 PLAYER -------------------------------------------------------------------------------- @@ -880,16 +1323,26 @@ TODO: CONNECT & TEST 4.1 AUTOPLAY ------------------------------------------------------------------------------*/ -ImprovedTube.autoplay = function() { +ImprovedTube.allow_autoplay = false; + +ImprovedTube.autoplay = function(video) { + if (ImprovedTube.video_url !== location.href) { + ImprovedTube.allow_autoplay = false; + } + if ( - (/\/watch\?/.test(location.href) && !/list=/.test(location.href) && this.storage.player_autoplay === false) || - (/\/watch\?/.test(location.href) && /list=/.test(location.href) && this.storage.playlist_autoplay === false) || - (/\/(channel|user|c)\//.test(location.href) && this.storage.channel_trailer_autoplay === false) + ( + (/\/watch\?/.test(location.href) && !/list=/.test(location.href) && ImprovedTube.storage.player_autoplay === false) || + (/\/watch\?/.test(location.href) && /list=/.test(location.href) && ImprovedTube.storage.playlist_autoplay === false) || + (/\/(channel|user|c)\//.test(location.href) && ImprovedTube.storage.channel_trailer_autoplay === false) + ) === true && + ImprovedTube.allow_autoplay === false && + video.parentNode.parentNode.classList.contains('ad-showing') === false ) { - return false; + setTimeout(function() { + video.parentNode.parentNode.pauseVideo(); + }); } - - return true; }; @@ -898,29 +1351,18 @@ ImprovedTube.autoplay = function() { ------------------------------------------------------------------------------*/ ImprovedTube.playerAutopauseWhenSwitchingTabs = function() { - window.addEventListener('blur', function() { - ImprovedTube.focused = false; + var video = document.querySelector('.html5-video-player video'); - if ( - ImprovedTube.storage.player_autopause_when_switching_tabs === true && - /\/watch/.test(location.href) && - document.querySelector('.html5-video-player video') - ) { - document.querySelector('.html5-video-player video').pause(); - } - }); + if (this.storage.player_autopause_when_switching_tabs === true && video) { - window.addEventListener('focus', function() { - ImprovedTube.focused = true; + if (this.focus === false && video.paused === false) { + video.pause(); - if ( - ImprovedTube.storage.player_autopause_when_switching_tabs === true && - /\/watch/.test(location.href) && - document.querySelector('.html5-video-player video') - ) { - document.querySelector('.html5-video-player video').play(); + this.played_before_blur = true; + } else if (this.focus === true && this.played_before_blur === true) { + video.play(); } - }); + } }; @@ -929,16 +1371,12 @@ ImprovedTube.playerAutopauseWhenSwitchingTabs = function() { ------------------------------------------------------------------------------*/ ImprovedTube.playerPlaybackSpeed = function(node) { - var playback_speed = Number(ImprovedTube.storage.player_playback_speed); - - if (!node) { - node = document.querySelector('.html5-video-player'); - } + var option = Number(ImprovedTube.storage.player_playback_speed); if (ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) && ImprovedTube.storage.player_forced_playback_speed === true) { try { if (window.location.href.indexOf('music') < 0) { - node.querySelector('video').playbackRate = playback_speed; + document.querySelector('.html5-video-player').querySelector('video').playbackRate = option; } } catch (err) {} } @@ -959,25 +1397,18 @@ ImprovedTube.subtitles = function() { ------------------------------------------------------------------------------*/ ImprovedTube.upNextAutoplay = function() { - if (this.isset(this.storage.up_next_autoplay)) { - var wait = setInterval(function() { - if ( - document.querySelector('#related #head.ytd-compact-autoplay-renderer #toggle') || - document.querySelector('#autoplay-checkbox') - ) { - clearInterval(wait); + var option = this.storage.up_next_autoplay; - var option = ImprovedTube.storage.up_next_autoplay, - new_youtube_toggle = document.querySelector('#related #head.ytd-compact-autoplay-renderer #toggle'), - old_youtube_toggle = document.querySelector('#autoplay-checkbox'); + if (this.isset(option)) { + var toggle = document.querySelector('#related #head.ytd-compact-autoplay-renderer #toggle'); - if (new_youtube_toggle && (option === true && !new_youtube_toggle.hasAttribute('checked') || option === false && new_youtube_toggle.hasAttribute('checked'))) { - new_youtube_toggle.click(); - } else if (old_youtube_toggle && (option === true && !old_youtube_toggle.hasAttribute('checked') || option === false && old_youtube_toggle.hasAttribute('checked'))) { - old_youtube_toggle.click(); - } + if (toggle) { + var option = ImprovedTube.storage.up_next_autoplay; + + if (option === true && !toggle.hasAttribute('checked') || option === false && toggle.hasAttribute('checked')) { + toggle.click(); } - }, 250); + } } }; @@ -1731,9 +2162,11 @@ ImprovedTube.playlist_up_next_autoplay_f = function(event) { } }; -ImprovedTube.playlistUpNextAutoplay = function(player) { - player.querySelector('video').removeEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); - player.querySelector('video').addEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); +ImprovedTube.playlistUpNextAutoplay = function() { + var video = document.querySelector('video'); + + video.removeEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); + video.addEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); }; @@ -2529,4 +2962,235 @@ document.addEventListener('ImprovedTubeAnalyzer', function() { }); } } -}); \ No newline at end of file +}); + + +/*------------------------------------------------------------------------------ +10.0 SETTINGS +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +10.1 IMPROVEDTUBE ICON +------------------------------------------------------------------------------*/ + +ImprovedTube.improvedtube_youtube_icon_wait = false; + +ImprovedTube.improvedtube_youtube_icon_resize = function() { + var iframe = document.querySelector('.it-btn__iframe'), + icon = document.querySelector('.it-btn__icon'); + + if (iframe && icon) { + var x = icon.getBoundingClientRect().x, + y = icon.getBoundingClientRect().y; + + if (x < window.innerWidth / 2) { + iframe.style.right = 'auto'; + iframe.style.left = '0px'; + } else { + iframe.style.right = '0px'; + iframe.style.left = 'auto'; + } + + if (y < window.innerHeight / 2) { + iframe.style.top = '50px'; + iframe.style.bottom = 'auto'; + + iframe.style.height = Math.min(500, window.innerHeight - Math.max(0, iframe.getBoundingClientRect().top) - 16) + 'px'; + } else { + iframe.style.top = 'auto'; + iframe.style.bottom = '50px'; + + iframe.style.height = Math.min(500, window.innerHeight - Math.max(0, window.innerHeight - iframe.getBoundingClientRect().y - iframe.getBoundingClientRect().height) - 16) + 'px'; + } + } +}; + +ImprovedTube.improvedtubeYoutubeIcon = function() { + if (window.self !== window.top) { + return false; + } + + if ( + ImprovedTube.storage.improvedtube_youtube_icon === 'disabled' && + document.querySelector('.it-btn') + ) { + document.querySelector('.it-btn').remove(); + } + + if (this.improvedtube_youtube_icon_wait === false) { + this.improvedtube_youtube_icon_wait = setInterval(function() { + var option = ImprovedTube.storage.improvedtube_youtube_icon, + parentNode, + referenceNode; + + if (option === 'header_left') { + parentNode = document.querySelector('ytd-masthead #start'); + referenceNode = document.querySelector('ytd-masthead #start #guide-button'); + } else if (option === 'header_right') { + parentNode = ( + document.querySelector('#end #buttons') || + document.querySelector('#yt-masthead-user') + ); + } else if (option === 'draggable') { + parentNode = document.body || document.querySelector('body'); + } else if (option === 'below_player') { + parentNode = ( + document.querySelector('.title.ytd-video-primary-info-renderer') || + document.querySelector('#watch-headline-title') + ); + } + + if (document.querySelector('.it-btn')) { + if (!parentNode.querySelector(':scope > .it-btn')) { + document.querySelector('.it-btn').remove(); + } else { + clearInterval(ImprovedTube.improvedtube_youtube_icon_wait); + + ImprovedTube.improvedtube_youtube_icon_wait = false; + + return false; + } + } + + if ( + ImprovedTube.isset(option) && + option !== 'disabled' && + parentNode && (option === 'header_left' ? referenceNode : true) + ) { + clearInterval(ImprovedTube.improvedtube_youtube_icon_wait); + + ImprovedTube.improvedtube_youtube_icon_wait = false; + + var button = document.createElement('div'); + + button.className = 'it-btn'; + button.innerHTML = '
'; + button.addEventListener('click', function() { + event.preventDefault(); + event.stopPropagation(); + + this.classList.toggle('it-btn--active'); + ImprovedTube.improvedtube_youtube_icon_resize(); + + return false; + }, true); + + if (option === 'draggable') { + var position = localStorage.getItem('IT_ICON'); + + if (ImprovedTube.isset(position)) { + position = JSON.parse(position); + + button.style.left = position.x + 'px'; + button.style.top = position.y + 'px'; + } + + function move(event) { + button.classList.add('it-btn--dragging'); + + if (event.clientX < window.innerWidth / 2) { + if (event.clientX - Number(button.dataset.x) >= 16) { + button.style.left = event.clientX - Number(button.dataset.x) + 'px'; + } else { + button.style.left = '16px'; + } + } else { + if (event.clientX + (48 + window.innerWidth - document.querySelector('body').offsetWidth) - Number(button.dataset.x) <= window.innerWidth) { + button.style.left = event.clientX - Number(button.dataset.x) + 'px'; + } else { + button.style.left = 'calc(100vw - ' + (48 + window.innerWidth - document.querySelector('body').offsetWidth) + 'px)'; + } + } + + if (event.clientY < window.innerHeight / 2) { + if (event.clientY - Number(button.dataset.y) >= 16) { + button.style.top = event.clientY - Number(button.dataset.y) + 'px'; + } else { + button.style.top = '16px'; + } + } else { + if (event.clientY + 48 - Number(button.dataset.y) <= window.innerHeight) { + button.style.top = event.clientY - Number(button.dataset.y) + 'px'; + } else { + button.style.top = 'calc(100vh - 48px)'; + } + } + + ImprovedTube.improvedtube_youtube_icon_resize(); + } + + button.addEventListener('mousedown', function(event) { + this.dataset.x = event.layerX; + this.dataset.y = event.layerY; + + window.addEventListener('mousemove', move); + }); + + window.addEventListener('mouseup', function() { + button.classList.remove('it-btn--dragging'); + + window.removeEventListener('mousemove', move); + + localStorage.setItem('IT_ICON', JSON.stringify({ + x: button.offsetLeft, + y: button.offsetTop + })); + + setTimeout(function() { + button.style.pointerEvents = ''; + }); + }); + } + + if (option === 'header_left') { + parentNode.insertBefore(button, referenceNode); + } else { + parentNode.appendChild(button); + } + + ImprovedTube.improvedtube_youtube_icon_resize(); + } + }, 250); + } +}; + + +/*----------------------------------------------------------------------------- +10.2 DELETE YOUTUBE COOKIES +-----------------------------------------------------------------------------*/ + +ImprovedTube.deleteYoutubeCookies = function() { + var cookies = document.cookie.split(';'); + + for (var i = 0, l = cookies.length; i < l; i++) { + var cookie = cookies[i], + eqPos = cookie.indexOf('='), + name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; + + document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; + } + + setTimeout(function() { + location.reload(); + }, 100); +}; + + +/*----------------------------------------------------------------------------- +10.3 YOUTUBE LANGUAGE +-----------------------------------------------------------------------------*/ + +ImprovedTube.youtubeLanguage = function() { + var pref = ImprovedTube.getCookieValueByName('PREF'), + hl = ImprovedTube.getParam(pref, 'hl'); + + if (hl) { + ImprovedTube.setCookie('PREF', pref.replace('hl=' + hl, 'hl=' + ImprovedTube.storage.youtube_language)); + } else { + ImprovedTube.setCookie('PREF', pref + '&hl=' + ImprovedTube.storage.youtube_language); + } + + setTimeout(function() { + location.reload(); + }, 100); +}; \ No newline at end of file diff --git a/unstable/_locales/nb_NO/messages.json b/unstable/_locales/nb_NO/messages.json index a88c72545..6460c93e6 100644 --- a/unstable/_locales/nb_NO/messages.json +++ b/unstable/_locales/nb_NO/messages.json @@ -805,8 +805,8 @@ }, "toggleCards": { "message": "Veksle kort" - } - "geoPreference": { + }, + "geoPreference": { "message": "Geo-preferanse" } } From b737bfbfac09e6104d9b4a25f04162a45ad6354f Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 28 Dec 2020 15:15:55 +0300 Subject: [PATCH 0012/1224] Removed v3.120-pre --- 3.120-pre/_locales/ar/messages.json | 809 -- 3.120-pre/_locales/bn/messages.json | 809 -- 3.120-pre/_locales/de/messages.json | 809 -- 3.120-pre/_locales/el/messages.json | 809 -- 3.120-pre/_locales/en/messages.json | 812 -- 3.120-pre/_locales/es/messages.json | 809 -- 3.120-pre/_locales/fr/messages.json | 809 -- 3.120-pre/_locales/hin/messages.json | 809 -- 3.120-pre/_locales/id/messages.json | 806 -- 3.120-pre/_locales/it/messages.json | 806 -- 3.120-pre/_locales/ja/messages.json | 809 -- 3.120-pre/_locales/ko/messages.json | 806 -- 3.120-pre/_locales/nb_NO/messages.json | 812 -- 3.120-pre/_locales/nl/messages.json | 809 -- 3.120-pre/_locales/no/messages.json | 800 -- 3.120-pre/_locales/pt_BR/messages.json | 809 -- 3.120-pre/_locales/pt_PT/messages.json | 809 -- 3.120-pre/_locales/ru/messages.json | 809 -- 3.120-pre/_locales/sk/messages.json | 809 -- 3.120-pre/_locales/tr/messages.json | 809 -- 3.120-pre/_locales/zh_CN/messages.json | 815 -- 3.120-pre/_locales/zh_TW/messages.json | 809 -- 3.120-pre/assets/fonts/OpenSans-Regular.ttf | Bin 96932 -> 0 bytes 3.120-pre/assets/fonts/OpenSans-SemiBold.ttf | Bin 100820 -> 0 bytes 3.120-pre/assets/icons/128.png | Bin 3060 -> 0 bytes 3.120-pre/assets/icons/128g.png | Bin 2569 -> 0 bytes 3.120-pre/assets/icons/16.png | Bin 645 -> 0 bytes 3.120-pre/assets/icons/16g.png | Bin 566 -> 0 bytes 3.120-pre/assets/icons/32.png | Bin 1162 -> 0 bytes 3.120-pre/assets/icons/32g.png | Bin 933 -> 0 bytes 3.120-pre/assets/icons/48.png | Bin 1495 -> 0 bytes 3.120-pre/assets/icons/48g.png | Bin 1208 -> 0 bytes 3.120-pre/background.js | 368 - 3.120-pre/content-scripts.js | 186 - 3.120-pre/content-styles.css | 5954 --------------- 3.120-pre/index.html | 14 - 3.120-pre/manifest.json | 86 - 3.120-pre/options.html | 20 - 3.120-pre/page.js | 13 - 3.120-pre/popup.css | 1995 ----- 3.120-pre/popup.js | 3084 -------- 3.120-pre/satus.css | 1397 ---- 3.120-pre/satus.js | 2183 ------ 3.120-pre/youtube-scripts.js | 3196 -------- unstable/_locales/ar/messages.json | 809 -- unstable/_locales/bn/messages.json | 809 -- unstable/_locales/de/messages.json | 809 -- unstable/_locales/el/messages.json | 809 -- unstable/_locales/en/messages.json | 812 -- unstable/_locales/es/messages.json | 809 -- unstable/_locales/fr/messages.json | 809 -- unstable/_locales/hin/messages.json | 810 -- unstable/_locales/id/messages.json | 806 -- unstable/_locales/it/messages.json | 806 -- unstable/_locales/ja/messages.json | 809 -- unstable/_locales/ko/messages.json | 806 -- unstable/_locales/nb_NO/messages.json | 812 -- unstable/_locales/nl/messages.json | 809 -- unstable/_locales/pt_BR/messages.json | 809 -- unstable/_locales/pt_PT/messages.json | 810 -- unstable/_locales/ru/messages.json | 809 -- unstable/_locales/sk/messages.json | 809 -- unstable/_locales/tr/messages.json | 809 -- unstable/_locales/zh_CN/messages.json | 815 -- unstable/_locales/zh_TW/messages.json | 809 -- unstable/assets/fonts/OpenSans-Regular.ttf | Bin 96932 -> 0 bytes unstable/assets/fonts/OpenSans-SemiBold.ttf | Bin 100820 -> 0 bytes unstable/assets/fonts/XanhMono-Regular.ttf | Bin 58704 -> 0 bytes unstable/assets/icons/128.png | Bin 6904 -> 0 bytes unstable/assets/icons/128g.png | Bin 5621 -> 0 bytes unstable/assets/icons/16.png | Bin 697 -> 0 bytes unstable/assets/icons/16g.png | Bin 580 -> 0 bytes unstable/assets/icons/32.png | Bin 1432 -> 0 bytes unstable/assets/icons/32g.png | Bin 1262 -> 0 bytes unstable/assets/icons/48.png | Bin 2180 -> 0 bytes unstable/assets/icons/48g.png | Bin 1955 -> 0 bytes unstable/background.js | 342 - unstable/build.py | 23 - unstable/config.json | 72 - unstable/content-scripts.css | 6791 ----------------- unstable/content-scripts.js | 4319 ----------- unstable/index.html | 20 - unstable/locale.py | 71 - unstable/manifest.json | 95 - unstable/options.html | 14 - unstable/page.js | 16 - unstable/popup.css | 1651 ---- unstable/popup.js | 3100 -------- unstable/satus.css | 0 unstable/satus.js | 61 - unstable/src/template/css/header.css | 132 - unstable/src/template/css/index.css | 57 - unstable/src/template/css/main.css | 117 - .../template/css/template-parts/analyzer.css | 168 - .../css/template-parts/appearance.css | 129 - .../template/css/template-parts/blacklist.css | 102 - .../src/template/css/template-parts/home.css | 185 - .../src/template/css/template-parts/mixer.css | 87 - .../template/css/template-parts/player.css | 19 - .../template/css/template-parts/settings.css | 19 - .../template/css/template-parts/themes.css | 365 - unstable/src/template/css/themes.css | 262 - unstable/src/template/js/header.js | 126 - unstable/src/template/js/index.js | 59 - unstable/src/template/js/main.js | 22 - .../template/js/template-parts/analyzer.js | 148 - .../template/js/template-parts/appearance.js | 372 - .../template/js/template-parts/blacklist.js | 172 - .../src/template/js/template-parts/channel.js | 36 - .../src/template/js/template-parts/general.js | 90 - .../template-parts/header/active-features.js | 61 - .../js/template-parts/header/mixer.js | 115 - .../js/template-parts/header/settings.js | 886 --- .../src/template/js/template-parts/player.js | 316 - .../template/js/template-parts/playlist.js | 41 - .../template/js/template-parts/shortcuts.js | 249 - .../src/template/js/template-parts/themes.js | 395 - unstable/src/youtube/css/appearance.css | 776 -- .../youtube/css/appearance__player-size.css | 517 -- unstable/src/youtube/css/blacklist.css | 36 - unstable/src/youtube/css/channel.css | 22 - unstable/src/youtube/css/general.css | 279 - unstable/src/youtube/css/other.css | 147 - unstable/src/youtube/css/player.css | 355 - unstable/src/youtube/css/playlist.css | 48 - unstable/src/youtube/css/settings.css | 170 - unstable/src/youtube/css/shortcuts.css | 11 - unstable/src/youtube/css/themes.css | 87 - unstable/src/youtube/css/themes/black.css | 633 -- unstable/src/youtube/css/themes/dawn.css | 637 -- unstable/src/youtube/css/themes/default.css | 563 -- unstable/src/youtube/css/themes/desert.css | 623 -- unstable/src/youtube/css/themes/night.css | 635 -- unstable/src/youtube/css/themes/plain.css | 623 -- unstable/src/youtube/css/themes/sunset.css | 617 -- unstable/src/youtube/js/core.js | 185 - unstable/src/youtube/js/events.js | 164 - unstable/src/youtube/js/features/analyzer.js | 12 - .../src/youtube/js/features/appearance.js | 452 -- unstable/src/youtube/js/features/blacklist.js | 215 - unstable/src/youtube/js/features/channel.js | 54 - unstable/src/youtube/js/features/general.js | 287 - unstable/src/youtube/js/features/player.js | 872 --- unstable/src/youtube/js/features/playlist.js | 245 - unstable/src/youtube/js/features/settings.js | 233 - unstable/src/youtube/js/features/shortcuts.js | 400 - unstable/src/youtube/js/features/themes.js | 237 - .../src/youtube/js/features/volume-mixer.js | 11 - unstable/src/youtube/js/functions.js | 102 - unstable/src/youtube/js/injection.js | 142 - unstable/src/youtube/js/migration.js | 537 -- unstable/src/youtube/js/mutations.js | 158 - 152 files changed, 85672 deletions(-) delete mode 100644 3.120-pre/_locales/ar/messages.json delete mode 100644 3.120-pre/_locales/bn/messages.json delete mode 100644 3.120-pre/_locales/de/messages.json delete mode 100644 3.120-pre/_locales/el/messages.json delete mode 100644 3.120-pre/_locales/en/messages.json delete mode 100644 3.120-pre/_locales/es/messages.json delete mode 100644 3.120-pre/_locales/fr/messages.json delete mode 100644 3.120-pre/_locales/hin/messages.json delete mode 100644 3.120-pre/_locales/id/messages.json delete mode 100644 3.120-pre/_locales/it/messages.json delete mode 100644 3.120-pre/_locales/ja/messages.json delete mode 100644 3.120-pre/_locales/ko/messages.json delete mode 100644 3.120-pre/_locales/nb_NO/messages.json delete mode 100644 3.120-pre/_locales/nl/messages.json delete mode 100644 3.120-pre/_locales/no/messages.json delete mode 100644 3.120-pre/_locales/pt_BR/messages.json delete mode 100644 3.120-pre/_locales/pt_PT/messages.json delete mode 100644 3.120-pre/_locales/ru/messages.json delete mode 100644 3.120-pre/_locales/sk/messages.json delete mode 100644 3.120-pre/_locales/tr/messages.json delete mode 100644 3.120-pre/_locales/zh_CN/messages.json delete mode 100644 3.120-pre/_locales/zh_TW/messages.json delete mode 100644 3.120-pre/assets/fonts/OpenSans-Regular.ttf delete mode 100644 3.120-pre/assets/fonts/OpenSans-SemiBold.ttf delete mode 100644 3.120-pre/assets/icons/128.png delete mode 100644 3.120-pre/assets/icons/128g.png delete mode 100644 3.120-pre/assets/icons/16.png delete mode 100644 3.120-pre/assets/icons/16g.png delete mode 100644 3.120-pre/assets/icons/32.png delete mode 100644 3.120-pre/assets/icons/32g.png delete mode 100644 3.120-pre/assets/icons/48.png delete mode 100644 3.120-pre/assets/icons/48g.png delete mode 100644 3.120-pre/background.js delete mode 100644 3.120-pre/content-scripts.js delete mode 100644 3.120-pre/content-styles.css delete mode 100644 3.120-pre/index.html delete mode 100644 3.120-pre/manifest.json delete mode 100644 3.120-pre/options.html delete mode 100644 3.120-pre/page.js delete mode 100644 3.120-pre/popup.css delete mode 100644 3.120-pre/popup.js delete mode 100644 3.120-pre/satus.css delete mode 100644 3.120-pre/satus.js delete mode 100644 3.120-pre/youtube-scripts.js delete mode 100644 unstable/_locales/ar/messages.json delete mode 100644 unstable/_locales/bn/messages.json delete mode 100644 unstable/_locales/de/messages.json delete mode 100644 unstable/_locales/el/messages.json delete mode 100644 unstable/_locales/en/messages.json delete mode 100644 unstable/_locales/es/messages.json delete mode 100644 unstable/_locales/fr/messages.json delete mode 100644 unstable/_locales/hin/messages.json delete mode 100644 unstable/_locales/id/messages.json delete mode 100644 unstable/_locales/it/messages.json delete mode 100644 unstable/_locales/ja/messages.json delete mode 100644 unstable/_locales/ko/messages.json delete mode 100644 unstable/_locales/nb_NO/messages.json delete mode 100644 unstable/_locales/nl/messages.json delete mode 100644 unstable/_locales/pt_BR/messages.json delete mode 100644 unstable/_locales/pt_PT/messages.json delete mode 100644 unstable/_locales/ru/messages.json delete mode 100644 unstable/_locales/sk/messages.json delete mode 100644 unstable/_locales/tr/messages.json delete mode 100644 unstable/_locales/zh_CN/messages.json delete mode 100644 unstable/_locales/zh_TW/messages.json delete mode 100644 unstable/assets/fonts/OpenSans-Regular.ttf delete mode 100644 unstable/assets/fonts/OpenSans-SemiBold.ttf delete mode 100644 unstable/assets/fonts/XanhMono-Regular.ttf delete mode 100644 unstable/assets/icons/128.png delete mode 100644 unstable/assets/icons/128g.png delete mode 100644 unstable/assets/icons/16.png delete mode 100644 unstable/assets/icons/16g.png delete mode 100644 unstable/assets/icons/32.png delete mode 100644 unstable/assets/icons/32g.png delete mode 100644 unstable/assets/icons/48.png delete mode 100644 unstable/assets/icons/48g.png delete mode 100644 unstable/background.js delete mode 100644 unstable/build.py delete mode 100644 unstable/config.json delete mode 100644 unstable/content-scripts.css delete mode 100644 unstable/content-scripts.js delete mode 100644 unstable/index.html delete mode 100644 unstable/locale.py delete mode 100644 unstable/manifest.json delete mode 100644 unstable/options.html delete mode 100644 unstable/page.js delete mode 100644 unstable/popup.css delete mode 100644 unstable/popup.js delete mode 100644 unstable/satus.css delete mode 100644 unstable/satus.js delete mode 100644 unstable/src/template/css/header.css delete mode 100644 unstable/src/template/css/index.css delete mode 100644 unstable/src/template/css/main.css delete mode 100644 unstable/src/template/css/template-parts/analyzer.css delete mode 100644 unstable/src/template/css/template-parts/appearance.css delete mode 100644 unstable/src/template/css/template-parts/blacklist.css delete mode 100644 unstable/src/template/css/template-parts/home.css delete mode 100644 unstable/src/template/css/template-parts/mixer.css delete mode 100644 unstable/src/template/css/template-parts/player.css delete mode 100644 unstable/src/template/css/template-parts/settings.css delete mode 100644 unstable/src/template/css/template-parts/themes.css delete mode 100644 unstable/src/template/css/themes.css delete mode 100644 unstable/src/template/js/header.js delete mode 100644 unstable/src/template/js/index.js delete mode 100644 unstable/src/template/js/main.js delete mode 100644 unstable/src/template/js/template-parts/analyzer.js delete mode 100644 unstable/src/template/js/template-parts/appearance.js delete mode 100644 unstable/src/template/js/template-parts/blacklist.js delete mode 100644 unstable/src/template/js/template-parts/channel.js delete mode 100644 unstable/src/template/js/template-parts/general.js delete mode 100644 unstable/src/template/js/template-parts/header/active-features.js delete mode 100644 unstable/src/template/js/template-parts/header/mixer.js delete mode 100644 unstable/src/template/js/template-parts/header/settings.js delete mode 100644 unstable/src/template/js/template-parts/player.js delete mode 100644 unstable/src/template/js/template-parts/playlist.js delete mode 100644 unstable/src/template/js/template-parts/shortcuts.js delete mode 100644 unstable/src/template/js/template-parts/themes.js delete mode 100644 unstable/src/youtube/css/appearance.css delete mode 100644 unstable/src/youtube/css/appearance__player-size.css delete mode 100644 unstable/src/youtube/css/blacklist.css delete mode 100644 unstable/src/youtube/css/channel.css delete mode 100644 unstable/src/youtube/css/general.css delete mode 100644 unstable/src/youtube/css/other.css delete mode 100644 unstable/src/youtube/css/player.css delete mode 100644 unstable/src/youtube/css/playlist.css delete mode 100644 unstable/src/youtube/css/settings.css delete mode 100644 unstable/src/youtube/css/shortcuts.css delete mode 100644 unstable/src/youtube/css/themes.css delete mode 100644 unstable/src/youtube/css/themes/black.css delete mode 100644 unstable/src/youtube/css/themes/dawn.css delete mode 100644 unstable/src/youtube/css/themes/default.css delete mode 100644 unstable/src/youtube/css/themes/desert.css delete mode 100644 unstable/src/youtube/css/themes/night.css delete mode 100644 unstable/src/youtube/css/themes/plain.css delete mode 100644 unstable/src/youtube/css/themes/sunset.css delete mode 100644 unstable/src/youtube/js/core.js delete mode 100644 unstable/src/youtube/js/events.js delete mode 100644 unstable/src/youtube/js/features/analyzer.js delete mode 100644 unstable/src/youtube/js/features/appearance.js delete mode 100644 unstable/src/youtube/js/features/blacklist.js delete mode 100644 unstable/src/youtube/js/features/channel.js delete mode 100644 unstable/src/youtube/js/features/general.js delete mode 100644 unstable/src/youtube/js/features/player.js delete mode 100644 unstable/src/youtube/js/features/playlist.js delete mode 100644 unstable/src/youtube/js/features/settings.js delete mode 100644 unstable/src/youtube/js/features/shortcuts.js delete mode 100644 unstable/src/youtube/js/features/themes.js delete mode 100644 unstable/src/youtube/js/features/volume-mixer.js delete mode 100644 unstable/src/youtube/js/functions.js delete mode 100644 unstable/src/youtube/js/injection.js delete mode 100644 unstable/src/youtube/js/migration.js delete mode 100644 unstable/src/youtube/js/mutations.js diff --git a/3.120-pre/_locales/ar/messages.json b/3.120-pre/_locales/ar/messages.json deleted file mode 100644 index 187c8409c..000000000 --- a/3.120-pre/_locales/ar/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "about": { - "message": "حول" - }, - "accept": { - "message": "قبول" - }, - "activate": { - "message": "تفعيل" - }, - "activateCaptions": { - "message": "تفعيل الترجمة" - }, - "activated": { - "message": "مفعل" - }, - "activatedFeatures": { - "message": "الميزات المفعلة" - }, - "activateFullscreen": { - "message": "تفعيل ملء الشاشة" - }, - "activeFeatures": { - "message": "الميزات النشطة" - }, - "addScrollToTop": { - "message": "آضف الصعود لأعلى" - }, - "ads": { - "message": "الاعلانات" - }, - "all": { - "message": "الكل" - }, - "allow": { - "message": "سماح" - }, - "allow60fps": { - "message": "السماح لـ60إطار" - }, - "alwaysActive": { - "message": "دائما نشط" - }, - "alwaysShowProgressBar": { - "message": "إظهار شريط التقدم دائمًا" - }, - "amber": { - "message": "العنبر" - }, - "analyzer": { - "message": "المحلل" - }, - "appearance": { - "message": "المظهر العام" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "الصوت" - }, - "audioFormats": { - "message": "تنسيقات الصوت" - }, - "auto": { - "message": "تلقائي" - }, - "autoFullscreen": { - "message": "ملء تلقائي للشاشة" - }, - "autopauseWhenSwitchingTabs": { - "message": "إيقاف تلقائي عند التبديل بين التبويبات" - }, - "autoplay": { - "message": "تشغيل تلقائي" - }, - "backupAndReset": { - "message": "إعادة تعيين والنسخ الاحتياطي" - }, - "baseOnSystemColorScheme": { - "message": "يناء على ألوان النظام" - }, - "belowPlayer": { - "message": "اسفل المشغل" - }, - "black": { - "message": "اسود" - }, - "blacklist": { - "message": "القائمة السوداء" - }, - "blockAll": { - "message": "حظر الكل" - }, - "blue": { - "message": "ازرق" - }, - "blueGray": { - "message": "ازرق رمادي" - }, - "bluelight": { - "message": "الضوء الأزرق" - }, - "brown": { - "message": "بنى" - }, - "browser": { - "message": "المتصفح" - }, - "browserVersion": { - "message": "إصدار المتصفح" - }, - "bubbles": { - "message": "فقاعات" - }, - "bug": { - "message": "خلل برمجي" - }, - "buttons": { - "message": "أزرار" - }, - "cancel": { - "message": "إلغاء" - }, - "categories": { - "message": "التصنيفات" - }, - "channel": { - "message": "قناة" - }, - "channels": { - "message": "القنوات" - }, - "clipboard": { - "message": "الحافظة" - }, - "codecH264": { - "message": "h.الترميز 264" - }, - "collapsed": { - "message": "ضغط" - }, - "collapseOfSubscriptionSections": { - "message": "ضغط قسم الاشتراكات" - }, - "comments": { - "message": "التعليقات" - }, - "confirmationBeforeClosing": { - "message": "التأكيد قبل الإغلاق" - }, - "cookies": { - "message": "ملفات تعريف الارتباط" - }, - "cores": { - "message": "النواه" - }, - "cropChapterTitles": { - "message": "اقتطاع عناوين الفصول" - }, - "customCss": { - "message": "مخصص CSS" - }, - "customJs": { - "message": "مخصص JS" - }, - "customMiniPlayer": { - "message": "المشغل الصغير المخصص" - }, - "cyan": { - "message": "ازرق سماوي" - }, - "dark": { - "message": "داكن" - }, - "darkTheme": { - "message": "مظهر داكن" - }, - "dateAndTime": { - "message": "التاريخ والوقت" - }, - "dawn": { - "message": "فجر" - }, - "decreasePlaybackSpeed": { - "message": "تقليل سرعة التشغيل" - }, - "decreaseVolume5": { - "message": "5% خفض الصوت" - }, - "deepOrange": { - "message": "برتقالي داكن" - }, - "deepPurple": { - "message": "أرجواني داكن" - }, - "defaultChannelTab": { - "message": "علامة تبويب القناة الافتراضية" - }, - "deleteYoutubeCookies": { - "message": "حذف ملفات تعريف الارتباط من اليوتيوب" - }, - "description": { - "message": "الوصف" - }, - "desert": { - "message": "صحراء" - }, - "details": { - "message": "التفاصيل" - }, - "developerOptions": { - "message": "خيارات المطور" - }, - "device": { - "message": "الجهاز" - }, - "dim": { - "message": "داكن" - }, - "disabled": { - "message": "معطل" - }, - "dislike": { - "message": "لم يعجبنى" - }, - "donate": { - "message": "تبرع" - }, - "doNotChange": { - "message": "الإفتراضي" - }, - "draggable": { - "message": "قابل للسحب" - }, - "email": { - "message": "البريد الإلكتروني" - }, - "empty": { - "message": "فارغة" - }, - "enabled": { - "message": "ممكّن" - }, - "enabledForced": { - "message": "ممكّن (إجباري)" - }, - "expanded": { - "message": "موسع" - }, - "exportSettings": { - "message": "تصدير الإعدادات" - }, - "extension": { - "message": "الإضافة" - }, - "file": { - "message": "ملف" - }, - "filters": { - "message": "مرشحات" - }, - "fitToWindow": { - "message": "مناسب للنافذة" - }, - "flash": { - "message": "فلاش" - }, - "font": { - "message": "الخط" - }, - "footer": { - "message": "الحزء السفلي" - }, - "forcedPlaybackSpeed": { - "message": "تثبيت سرعة التشغيل" - }, - "forcedTheaterMode": { - "message": "فرض وضع المسرح" - }, - "forcedVolume": { - "message": "تثبيت مستوى الصوت" - }, - "foundABug": { - "message": "وجدت خطأ؟" - }, - "fullWindow": { - "message": "نافذة كاملة" - }, - "general": { - "message": "عام" - }, - "github": { - "message": "جيتهب" - }, - "goToSearchBox": { - "message": "انتقل إلى مربع البحث" - }, - "gpu": { - "message": "كرت الشاشة" - }, - "green": { - "message": "أخضر" - }, - "hdThumbnail": { - "message": "صورة مصغرة عالية الدقة" - }, - "hdThumbnails": { - "message": "صور مصغرة عالية الدقة" - }, - "header": { - "message": "الجزء العلوي" - }, - "hidden": { - "message": "مخفي" - }, - "hiddenOnVideoPage": { - "message": "مخفي على صفحة الفيديو" - }, - "hideAnimatedThumbnails": { - "message": "إخفاء الصور المصغرة المتحركة" - }, - "hideAnnotations": { - "message": "إخفاء التعليقات التوضيحية" - }, - "hideCards": { - "message": "إخفاء البطاقات" - }, - "hideDetails": { - "message": "إخفاء التفاصيل" - }, - "hideEndscreen": { - "message": "إخفاء شاشة النهاية" - }, - "hideFeaturedContent": { - "message": "إخفاء المحتوى المميز" - }, - "hideFooter": { - "message": "إخفاء الجزء السفلي" - }, - "hideGradientBottom": { - "message": "إخفاء التدرج الأسود السفلي" - }, - "hidePlaylist": { - "message": "إخفاء قائمة التشغيل" - }, - "hideRightButtons": { - "message": "إخفاء الأزرار اليسرى" - }, - "hideScrollForDetails": { - "message": "«إخفاء «التمرير للحصول على التفاصيل" - }, - "hideViewsCount": { - "message": "إخفاء عدد المشاهدات" - }, - "history": { - "message": "السجلّ" - }, - "home": { - "message": "الصفحة الرئيسية" - }, - "hover": { - "message": "تمرير" - }, - "hoverOnVideoPage": { - "message": "تمرير فوق صفحة الفيديو" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "منذ متى تم تحميل الفيديو" - }, - "icons": { - "message": "أيقونات" - }, - "iconsOnly": { - "message": "أيقونات فقط" - }, - "importSettings": { - "message": "استيراد الاعدادات" - }, - "improvedtubeIconInBrowser": { - "message": "في المتصفح ImprovedTube ايقونة" - }, - "improvedtubeIconOnYoutube": { - "message": "في اليوتيوب ImprovedTube ايقونة" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube لغة" - }, - "improvedtubeVersion": { - "message": "ImprovedTube اصدار" - }, - "improveLogo": { - "message": "تحسين الشعار" - }, - "increasePlaybackSpeed": { - "message": "زيادة سرعة التشغيل" - }, - "increaseVolume5": { - "message": "5% زيادة الصوت" - }, - "indigo": { - "message": "نيلي" - }, - "items": { - "message": "العناصر" - }, - "languages": { - "message": "اللغات" - }, - "legacyYoutube": { - "message": "اليوتيوب القديم" - }, - "light": { - "message": "ضوء" - }, - "lightBlue": { - "message": "أزرق فاتح" - }, - "lightGreen": { - "message": "اخضر فاتح" - }, - "like": { - "message": "اعحبني" - }, - "likes": { - "message": "الإعجابات" - }, - "lime": { - "message": "جير" - }, - "list": { - "message": "قائمة" - }, - "liveChat": { - "message": "محادثة مباشرة" - }, - "liveChatType": { - "message": "نوع المحادثة مباشرة" - }, - "loudnessNormalization": { - "message": "تطبيع الإزعاج" - }, - "markWatchedVideos": { - "message": "التعليم على الفيديو المشاهد" - }, - "mixer": { - "message": "مهندس الصوت" - }, - "myColors": { - "message": "ألواني" - }, - "name": { - "message": "الاسم" - }, - "nativeMiniPlayer": { - "message": "المشغل الافتراضي الصغير" - }, - "new": { - "message": "جديد" - }, - "nextVideo": { - "message": "الفيديو التالي" - }, - "night": { - "message": "ليل" - }, - "noActiveFeatures": { - "message": "لا يوجد ميزات نشطة" - }, - "none": { - "message": "لاشيء" - }, - "noOpenVideoTabs": { - "message": "لا توجد علامات تبويب فيديو مفتوحة" - }, - "normal": { - "message": "عادي" - }, - "old": { - "message": "قديم" - }, - "onAllVideos": { - "message": "على جميع مقاطع الفيديو" - }, - "onlyActiveOnYoutube": { - "message": "نشط فقط على اليوتيوب" - }, - "onlyOnePlayerInstancePlaying": { - "message": "تشغيل مشغل واحد فقط" - }, - "onSubscribedChannels": { - "message": "على القنوات المشتركة" - }, - "orange": { - "message": "برتقالي" - }, - "os": { - "message": "نظام التشغيل" - }, - "other": { - "message": "آخر" - }, - "permissions": { - "message": "الأذونات" - }, - "pictureInPicture": { - "message": "فيديو عائم" - }, - "pink": { - "message": "زهري" - }, - "plain": { - "message": "عادي" - }, - "platform": { - "message": "المنصة" - }, - "playbackSpeed": { - "message": "سرعة التشغيل" - }, - "player": { - "message": "المشغل" - }, - "playerColor": { - "message": "لون المشغل" - }, - "playerSize": { - "message": "حجم المشغل" - }, - "playlist": { - "message": "قائمة التشغيل" - }, - "playlists": { - "message": "قوائم التشغيل" - }, - "playPause": { - "message": "تشغيل / ايقاف" - }, - "popupPlayer": { - "message": "مشفل منبثق" - }, - "position": { - "message": "التموضع" - }, - "pressAnyKeyOrScroll": { - "message": ".اضغط على أي مفتاح أو استخدم عجلة الماوس" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "اضغط على أي مفتاح أو استخدم عجلة الماوس" - }, - "previousVideo": { - "message": "الفيديو السابق" - }, - "primaryColor": { - "message": "اللون الأصلي" - }, - "purple": { - "message": "أرجواني" - }, - "quality": { - "message": "الجودة" - }, - "ram": { - "message": "الذاكرة العشوائية" - }, - "rateUs": { - "message": "قيمنا" - }, - "red": { - "message": "احمر" - }, - "redDislikeButton": { - "message": "إظهار زر لم يعجبني باللون الأحمر" - }, - "relatedVideos": { - "message": "فيديوهات ذات علاقة" - }, - "removeRelatedSearchResults": { - "message": "إزالة عمليات بحث مرتبطة بـ" - }, - "repeat": { - "message": "تكرار" - }, - "reset": { - "message": "إعادة تعيين" - }, - "resetAllSettings": { - "message": "إعادة تعيين كافة الإعدادات" - }, - "resetAllShortcuts": { - "message": "إعادة تعيين جميع الاختصارات" - }, - "reverse": { - "message": "عكس" - }, - "rotate": { - "message": "استدارة" - }, - "save": { - "message": "حفظ" - }, - "saveAs": { - "message": "حفظ باسم" - }, - "schedule": { - "message": "جدوله" - }, - "screen": { - "message": "الشاشة" - }, - "screenshot": { - "message": "لقطة شاشة" - }, - "search": { - "message": "بحث" - }, - "searchBarOnly": { - "message": "شريط البحث فقط" - }, - "seekBackward10Seconds": { - "message": "إرجاع بمقدار 10 ثوانٍ" - }, - "seekForward10Seconds": { - "message": "تقديم 10 ثوانٍ إلى الأمام" - }, - "settings": { - "message": "الإعدادات" - }, - "settingsSuccessfullyImported": { - "message": "تم استيراد الإعدادات بنجاح" - }, - "shortcuts": { - "message": "اختصارات" - }, - "showCardsOnMouseHover": { - "message": "عرض البطاقات عند تمرير الماوس" - }, - "showChannelVideosCount": { - "message": "إظهار عدد مقاطع الفيديو للقناة" - }, - "shuffle": { - "message": "عشوائي" - }, - "sidebar": { - "message": "الشريط الجانبي" - }, - "spacebar": { - "message": "مفتاح المسافة" - }, - "squaredUserImages": { - "message": "صور المستخدمين مربعة" - }, - "static": { - "message": "ثابت" - }, - "statsForNerds": { - "message": "عرض الإحصاءات المفصلة" - }, - "step": { - "message": "خطوة" - }, - "stop": { - "message": "ايقاف" - }, - "style": { - "message": "نمط" - }, - "styles": { - "message": "الأنماط" - }, - "subscriptions": { - "message": "الاشتراكات" - }, - "subtitles": { - "message": "الترجمات" - }, - "sunset": { - "message": "غروب الشمس" - }, - "sunsetToSunrise": { - "message": "من غروب الشمس إلى شروقها" - }, - "systemPeferenceDark": { - "message": "تفضيل النظام: داكن" - }, - "systemPeferenceLight": { - "message": "تفضيل النظام: فاتح" - }, - "teal": { - "message": "أزرق مخضر" - }, - "textColor": { - "message": "لون النص" - }, - "themes": { - "message": "المظاهر" - }, - "thisWillRemoveAllCookies": { - "message": ".سيؤدي هذا إلى إزالة كافة ملفات تعريف الارتباط" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "سيؤدي هذا إلى إزالة جميع ملفات تعريف ارتباط اليوتيوب" - }, - "thisWillResetAllSettings": { - "message": ".سيؤدي هذا إلى إعادة تعيين جميع الإعدادات" - }, - "thisWillResetAllShortcuts": { - "message": "سيؤدي هذا إلى إعادة تعيين جميع الاختصارات" - }, - "thumbnails": { - "message": "الصور المصغرة" - }, - "timeFrom": { - "message": "الوقت من" - }, - "timeTo": { - "message": "وقت ل" - }, - "todayAt": { - "message": "اليوم عند الساعة" - }, - "toggleCards": { - "message": "تبديل وضع البطاقات" - }, - "topChat": { - "message": "رسائل المحادثة الهامّة" - }, - "trailerAutoplay": { - "message": "التشغيل التلقائي للفيديو الدعائي" - }, - "translations": { - "message": "الترجمات" - }, - "transparentBackground": { - "message": "خلفية شفافة" - }, - "trending": { - "message": "المحتوى الرائج" - }, - "tryToReloadThePage": { - "message": "حاول إعادة تحميل الصفحة" - }, - "type": { - "message": "النوع" - }, - "upNextAutoplay": { - "message": "تشغيل التالي تلقائيا" - }, - "use24HourFormat": { - "message": "استخدم تنسيق 24 ساعة" - }, - "version": { - "message": "الإصدار" - }, - "video": { - "message": "الفيديو" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "سيتم توسيع وصف الفيديو للحصول على اسم الفئة" - }, - "videoFormats": { - "message": "تنسيقات الفيديو" - }, - "videos": { - "message": "الفيديوهات" - }, - "volume": { - "message": "الصوت" - }, - "watchLater": { - "message": "المشاهدة لاحقا" - }, - "watchTime": { - "message": "وقت المشاهدة" - }, - "whenTabIsChanged": { - "message": "عندما يتم تغيير علامة التبويب" - }, - "white": { - "message": "أبيض" - }, - "yellow": { - "message": "أصفر" - }, - "youtubeHeaderLeft": { - "message": "جزء اليوتيوب العلوي (يسار) " - }, - "youtubeHeaderRight": { - "message": "جزء اليوتيوب العلوي (يمين)" - }, - "youtubeHomePage": { - "message": "صفحة اليوتيوب الرئيسية" - }, - "youtubeLanguage": { - "message": "لغة اليوتيوب" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "h.264 يحد اليوتيوب من جودة الفيديو الى ١٠٨٠ لـ الترميز" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/bn/messages.json b/3.120-pre/_locales/bn/messages.json deleted file mode 100644 index 733d62819..000000000 --- a/3.120-pre/_locales/bn/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "about": { - "message": "সম্পর্কিত" - }, - "accept": { - "message": "গ্রহণ করুন" - }, - "activate": { - "message": "সক্রিয় করুন" - }, - "activateCaptions": { - "message": "ক্যাপশন সক্রিয় করুন" - }, - "activated": { - "message": "সক্রিয়" - }, - "activatedFeatures": { - "message": "বৈশিষ্ট্য সক্রিয় করুন" - }, - "activateFullscreen": { - "message": "পূর্ণ পর্দা সক্রিয় করুন" - }, - "activeFeatures": { - "message": "সক্রিয় বৈশিষ্" - }, - "addScrollToTop": { - "message": "«উপরে যাবার বাটন» যোগ করুন" - }, - "ads": { - "message": "বিজ্ঞাপন" - }, - "all": { - "message": "সব" - }, - "allow": { - "message": "অনুমতি দিন" - }, - "allow60fps": { - "message": "60 ফ্রেম প্রতি সেকেন্ অনুমতি দিনড" - }, - "alwaysActive": { - "message": "সর্বদা সক্রিয়" - }, - "alwaysShowProgressBar": { - "message": "সর্বদা অগ্রগতি বার প্রদর্শন করুন" - }, - "amber": { - "message": "অ্যাম্বার" - }, - "analyzer": { - "message": "বিশ্লেষক" - }, - "appearance": { - "message": "উপস্থিতি" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "শ্রুতি" - }, - "audioFormats": { - "message": "শ্রুতি ফর্ম্যাট" - }, - "auto": { - "message": "অটো" - }, - "autoFullscreen": { - "message": "স্বতঃ পূর্ণস্ক্রীন" - }, - "autopauseWhenSwitchingTabs": { - "message": "ট্যাবগুলি স্যুইচ করার সময় অটো বিরাম দিন" - }, - "autoplay": { - "message": "স্বয়ংক্রিয় চালু" - }, - "backupAndReset": { - "message": "ব্যাকআপ এবং পুনরায় সেট করুন" - }, - "baseOnSystemColorScheme": { - "message": "সিস্টেম রঙের স্কিমের ভিত্তিতে" - }, - "belowPlayer": { - "message": "প্লেয়ারের নিচে" - }, - "black": { - "message": "কালো" - }, - "blacklist": { - "message": "কালো তালিকা" - }, - "blockAll": { - "message": "সবাইকে ব্লক" - }, - "blue": { - "message": "নীল" - }, - "blueGray": { - "message": "নীল ধূসর" - }, - "bluelight": { - "message": "নীল আলো" - }, - "brown": { - "message": "বাদামী" - }, - "browser": { - "message": "ব্রাউজার" - }, - "browserVersion": { - "message": "ব্রাউজার মারজান" - }, - "bubbles": { - "message": "বুলবুলা" - }, - "bug": { - "message": "বাগ" - }, - "buttons": { - "message": "বোতাম" - }, - "cancel": { - "message": "বাতিল" - }, - "categories": { - "message": "বিভাগসমূহ" - }, - "channel": { - "message": "চ্যানেল" - }, - "channels": { - "message": "চ্যানেলগুলি" - }, - "clipboard": { - "message": "ক্লিপবোর্ড" - }, - "codecH264": { - "message": "কোডেক h.264" - }, - "collapsed": { - "message": "ভেঙে দেবো" - }, - "collapseOfSubscriptionSections": { - "message": "সাবস্ক্রিপশন বিভাগ ভেঙে দেবো" - }, - "comments": { - "message": "মন্তব্য" - }, - "confirmationBeforeClosing": { - "message": "বন্ধ হওয়ার আগে নিশ্চিতকরণ" - }, - "cookies": { - "message": "কুকিজ" - }, - "cores": { - "message": "কোর" - }, - "cropChapterTitles": { - "message": "অধ্যায়ের শিরোনাম হ্রাস করুন" - }, - "customCss": { - "message": "কাস্টম CSS" - }, - "customJs": { - "message": "কাস্টম JS" - }, - "customMiniPlayer": { - "message": "কাস্টম মিনি প্লেয়ার" - }, - "cyan": { - "message": "হালকা নীল" - }, - "dark": { - "message": "গা .়" - }, - "darkTheme": { - "message": "গা .় থিম" - }, - "dateAndTime": { - "message": "তারিখ আর সময়" - }, - "dawn": { - "message": "ভোর" - }, - "decreasePlaybackSpeed": { - "message": "প্লেব্যাকের গতি হ্রাস করুন" - }, - "decreaseVolume": { - "message": "শব্দ হ্রাস করুন" - }, - "deepOrange": { - "message": "গভীর কমলা" - }, - "deepPurple": { - "message": "গভীর বেগুনি" - }, - "defaultChannelTab": { - "message": "ডিফল্ট চ্যানেল ট্যাব" - }, - "deleteYoutubeCookies": { - "message": "ইউটিউব এর কুকি ডিলিট করুন" - }, - "description": { - "message": "বর্ণনা" - }, - "desert": { - "message": "মরুভূমি" - }, - "details": { - "message": "বিশদ" - }, - "developerOptions": { - "message": "বিকাশকারী বিকল্পসমূহ" - }, - "device": { - "message": "যন্ত্র" - }, - "dim": { - "message": "ম্লান" - }, - "disabled": { - "message": "অক্ষম" - }, - "dislike": { - "message": "অপছন্দ" - }, - "donate": { - "message": "দান করুন" - }, - "doNotChange": { - "message": "পরিবর্তন করবেন না" - }, - "draggable": { - "message": "টেনে আনে" - }, - "email": { - "message": "ইমেল" - }, - "empty": { - "message": "খালি" - }, - "enabled": { - "message": "সক্ষম" - }, - "enabledForced": { - "message": "সক্ষম (জোরপূর্বক)" - }, - "expanded": { - "message": "প্রসারিত" - }, - "exportSettings": { - "message": "সেটিংস রফতানি করুন" - }, - "extension": { - "message": "এক্সটেনশন" - }, - "file": { - "message": "ফাইল" - }, - "filters": { - "message": "ফিল্টার" - }, - "fitToWindow": { - "message": "উইন্ডোতে ফিট করুন" - }, - "flash": { - "message": "ফ্ল্যাশ" - }, - "font": { - "message": "হরফ" - }, - "footer": { - "message": "পাদচরণ" - }, - "forcedPlaybackSpeed": { - "message": "জোর করে প্লেব্যাক গতি" - }, - "forcedTheaterMode": { - "message": "জোর করে থিয়েটার মোড" - }, - "forcedVolume": { - "message": "জোর করে শব্দ" - }, - "foundABug": { - "message": "একটি বাগ খুঁজে পেয়েছি?" - }, - "fullWindow": { - "message": "পুরো উইন্ডো" - }, - "general": { - "message": "সাধারণ" - }, - "github": { - "message": "গিটহাব" - }, - "goToSearchBox": { - "message": "অনুসন্ধান বাক্সে যান" - }, - "gpu": { - "message": "জিপিইউ" - }, - "green": { - "message": "সবুজ" - }, - "hdThumbnail": { - "message": "এইচডি থাম্বনেল" - }, - "hdThumbnails": { - "message": "এইচডি থামনেল গুলি" - }, - "header": { - "message": "শিরোনাম" - }, - "hidden": { - "message": "গোপন" - }, - "hiddenOnVideoPage": { - "message": "ভিডিও পৃষ্ঠায় লুকানো" - }, - "hideAnimatedThumbnails": { - "message": "অ্যানিমেটেড থাম্বনেলগুলি লুকান" - }, - "hideAnnotations": { - "message": "টীকাগুলি লুকান" - }, - "hideCards": { - "message": "কার্ড লুকান" - }, - "hideDetails": { - "message": "আড়াল বিস্তারিত" - }, - "hideEndscreen": { - "message": "এন্ডস্ক্রিন লুকান" - }, - "hideFeaturedContent": { - "message": "বৈশিষ্ট্যযুক্ত সামগ্রী লুকান" - }, - "hideFooter": { - "message": "পাদলেখ লুকান" - }, - "hideGradientBottom": { - "message": "গ্রেডিয়েন্ট নীচে লুকান" - }, - "hidePlaylist": { - "message": "প্লেলিস্ট লুকান" - }, - "hideRightButtons": { - "message": "ডান বোতামগুলি লুকান" - }, - "hideScrollForDetails": { - "message": "«বিশদ জন্য স্ক্রোলs» লুকান" - }, - "hideViewsCount": { - "message": "দর্শন গণনা লুকান" - }, - "history": { - "message": "ইতিহাস" - }, - "home": { - "message": "প্রধান" - }, - "hover": { - "message": "ঘোরা" - }, - "hoverOnVideoPage": { - "message": "ভিডিও পৃষ্ঠায় ঘোরা" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "ভিডিওটি কত আগে আপলোড হয়েছিল" - }, - "icons": { - "message": "আইকন" - }, - "iconsOnly": { - "message": "আইকন" - }, - "importSettings": { - "message": "সেটিংস আমদানি করুন" - }, - "improvedtubeIconInBrowser": { - "message": "ব্রাউজারে উন্নত YouTube আইকন" - }, - "improvedtubeIconOnYoutube": { - "message": "ইউটিউবে উন্নত আইকন" - }, - "improvedtubeLanguage": { - "message": "উন্নত ইউটিউব ভাষা" - }, - "improvedtubeVersion": { - "message": "উন্নত YouTube সংস্করণ" - }, - "improveLogo": { - "message": "লোগো উন্নত করুন" - }, - "increasePlaybackSpeed": { - "message": "প্লেব্যাকের গতি বাড়ান" - }, - "increaseVolume": { - "message": "শব্দ বৃদ্ধি" - }, - "indigo": { - "message": "নীল" - }, - "items": { - "message": "আইটেম" - }, - "languages": { - "message": "Languages" - }, - "legacyYoutube": { - "message": "উত্তরাধিকার ইউটিউব" - }, - "light": { - "message": "হালকাো" - }, - "lightBlue": { - "message": "হালকা নীল" - }, - "lightGreen": { - "message": "হালকা সবুজ" - }, - "like": { - "message": "লাইক" - }, - "likes": { - "message": "লাইক গুলি" - }, - "lime": { - "message": "চুন" - }, - "list": { - "message": "তালিকা" - }, - "liveChat": { - "message": "সরাসরি কথোপকথন" - }, - "liveChatType": { - "message": "লাইভ চ্যাট টাইপ" - }, - "loudnessNormalization": { - "message": "আওয়াজের স্বাভাবিককরণ" - }, - "markWatchedVideos": { - "message": "দেখা ভিডিওগুলি চিহ্নিত করুন" - }, - "mixer": { - "message": "মিক্সার" - }, - "myColors": { - "message": "আমার রং" - }, - "name": { - "message": "নাম" - }, - "nativeMiniPlayer": { - "message": "নেটিভ মিনি প্লেয়ার" - }, - "new": { - "message": "নতুন" - }, - "nextVideo": { - "message": "পরবর্তী ভিডিও" - }, - "night": { - "message": "রাত" - }, - "noActiveFeatures": { - "message": "কোনও সক্রিয় বৈশিষ্ট্য নেই" - }, - "none": { - "message": "কিছুই না" - }, - "noOpenVideoTabs": { - "message": "কোনও খোলা ভিডিও ট্যাব নেই" - }, - "normal": { - "message": "সাধারণ" - }, - "old": { - "message": "পুরাতন" - }, - "onAllVideos": { - "message": "সমস্ত ভিডিওতে" - }, - "onlyActiveOnYoutube": { - "message": "শুধুমাত্র ইউটিউবে সক্রিয়" - }, - "onlyOnePlayerInstancePlaying": { - "message": "কেবলমাত্র একজন খেলোয়াড় খেলছে" - }, - "onSubscribedChannels": { - "message": "সাবস্ক্রাইব করা চ্যানেলগুলিতে" - }, - "orange": { - "message": "কমলা" - }, - "os": { - "message": "ওএস" - }, - "other": { - "message": "অন্যান্য" - }, - "permissions": { - "message": "অনুমতি" - }, - "pictureInPicture": { - "message": "পিকচার ইন পিকচার" - }, - "pink": { - "message": "গোলাপী" - }, - "plain": { - "message": "সরল" - }, - "platform": { - "message": "প্ল্যাটফর্ম" - }, - "playbackSpeed": { - "message": "প্লেব্যাক গতি" - }, - "player": { - "message": "প্লেয়ার" - }, - "playerColor": { - "message": "প্লেয়ারের রঙ" - }, - "playerSize": { - "message": "খেলোয়াড়ের আকার" - }, - "playlist": { - "message": "প্লেলিস্ট" - }, - "playlists": { - "message": "প্লেলিস্ট" - }, - "playPause": { - "message": "খেলার / বিরতি" - }, - "popupPlayer": { - "message": "পপআপ প্লেয়ার" - }, - "position": { - "message": "অবস্থান" - }, - "pressAnyKeyOrScroll": { - "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" - }, - "previousVideo": { - "message": "পূর্ববর্তী ভিডিও" - }, - "primaryColor": { - "message": "মৌলিক রঙ" - }, - "purple": { - "message": "বেগুনি" - }, - "quality": { - "message": "গুণ" - }, - "ram": { - "message": "র্যাম" - }, - "rateUs": { - "message": "মতামত দিন" - }, - "red": { - "message": "লাল" - }, - "redDislikeButton": { - "message": "অপছন্দ বাটন লাল রঙ দেখান" - }, - "relatedVideos": { - "message": "সংশ্লিষ্ট ভিডিও" - }, - "removeRelatedSearchResults": { - "message": "সম্পর্কিত অনুসন্ধান ফলাফল সরান" - }, - "repeat": { - "message": "পুনরাবৃত্তি" - }, - "reset": { - "message": "রিসেট" - }, - "resetAllSettings": { - "message": "সমস্ত সেটিংস পুনরায় সেট করুন" - }, - "resetAllShortcuts": { - "message": "সমস্ত শর্টকাট পুনরায় সেট করুন" - }, - "reverse": { - "message": "বিপরীত" - }, - "rotate": { - "message": "ঘুরান" - }, - "save": { - "message": "সংরক্ষণ" - }, - "saveAs": { - "message": "সংরক্ষণ করুন" - }, - "schedule": { - "message": "সময়সূচী" - }, - "screen": { - "message": "পর্দা" - }, - "screenshot": { - "message": "স্ক্রিনশট" - }, - "search": { - "message": "অনুসন্ধান করুন" - }, - "searchBarOnly": { - "message": "অনুসন্ধান বার কেবল" - }, - "seekBackward10Seconds": { - "message": "পিছনে 10 সেকেন্ড সন্ধান করুন" - }, - "seekForward10Seconds": { - "message": "10 সেকেন্ড এগিয়ে যান" - }, - "settings": { - "message": "সেটিংস" - }, - "settingsSuccessfullyImported": { - "message": "সেটিংস সফলভাবে আমদানি করা হয়েছে" - }, - "shortcuts": { - "message": "শর্টকাটস" - }, - "showCardsOnMouseHover": { - "message": "মাউস হোভারে কার্ডগুলি দেখান" - }, - "showChannelVideosCount": { - "message": "চ্যানেল ভিডিও গণনা দেখান" - }, - "shuffle": { - "message": "অদলবদল" - }, - "sidebar": { - "message": "সাইডবার" - }, - "spacebar": { - "message": "স্পেসবার" - }, - "squaredUserImages": { - "message": "স্কোয়ার ব্যবহারকারীর চিত্রসমূহ" - }, - "static": { - "message": "স্থির" - }, - "statsForNerds": { - "message": "ডেভলপারের জন্য পরিসংখ্যান দেখান" - }, - "step": { - "message": "পদক্ষেপ" - }, - "stop": { - "message": "থামো" - }, - "style": { - "message": "স্টাইল" - }, - "styles": { - "message": "শৈলী" - }, - "subscriptions": { - "message": "সাবস্ক্রিপশন" - }, - "subtitles": { - "message": "সাবটাইটেল" - }, - "sunset": { - "message": "সূর্যাস্ত" - }, - "sunsetToSunrise": { - "message": "সূর্যোদয় সূর্যোদয়" - }, - "systemPeferenceDark": { - "message": "সিস্টেমের পছন্দসমূহ : dark" - }, - "systemPeferenceLight": { - "message": "সিস্টেমের পছন্দসমূহ : light" - }, - "teal": { - "message": "টিল" - }, - "textColor": { - "message": "লেখার রঙ" - }, - "themes": { - "message": "থিমস" - }, - "thisWillRemoveAllCookies": { - "message": "এটি সমস্ত কুকি মুছে ফেলবে।" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "এটি সমস্ত ইউটিউব কুকিজ অপসারণ করবে" - }, - "thisWillResetAllSettings": { - "message": "এটি সমস্ত সেটিংস পুনরায় সেট করবে।" - }, - "thisWillResetAllShortcuts": { - "message": "এটি সমস্ত শর্টকাট পুনরায় সেট করবে" - }, - "thumbnails": { - "message": "থাম্বনেইলস" - }, - "timeFrom": { - "message": "সময় থেকে" - }, - "timeTo": { - "message": "সময়" - }, - "todayAt": { - "message": "আজ এ" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "শীর্ষ চ্যাট" - }, - "trailerAutoplay": { - "message": "ট্রেলার অটোপ্লে" - }, - "translations": { - "message": "অনুবাদ" - }, - "transparentBackground": { - "message": "স্বচ্ছ পটভূমি" - }, - "trending": { - "message": "চলমান" - }, - "tryToReloadThePage": { - "message": "পৃষ্ঠাটি পুনরায় লোড করার চেষ্টা করুন" - }, - "type": { - "message": "প্রকার" - }, - "upNextAutoplay": { - "message": "পরবর্তী অটোপ্লে" - }, - "use24HourFormat": { - "message": "24 ঘন্টা বিন্যাস ব্যবহার করুন" - }, - "version": { - "message": "সংস্করণ" - }, - "video": { - "message": "ভিডিও" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "বিভাগটির নাম পেতে ভিডিওর বর্ণনাটি প্রসারিত হবে" - }, - "videoFormats": { - "message": "ভিডিও ফর্ম্যাট" - }, - "videos": { - "message": "ভিডিও" - }, - "volume": { - "message": "শব্দ" - }, - "watchLater": { - "message": "পরে দেখুন" - }, - "watchTime": { - "message": "দেখার সময়" - }, - "whenTabIsChanged": { - "message": "ট্যাব পরিবর্তন করা হয়" - }, - "white": { - "message": "সাদা" - }, - "yellow": { - "message": "হলুদ" - }, - "youtubeHeaderLeft": { - "message": "YouTube শিরোনাম (বাম)" - }, - "youtubeHeaderRight": { - "message": "YouTube শিরোনাম (ডানদিকে)" - }, - "youtubeHomePage": { - "message": "ইউটিউব হোম পৃষ্ঠা" - }, - "youtubeLanguage": { - "message": "ইউটিউব ভাষা" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "ইউটিউব h.264 কোডেকের জন্য ভিডিও গুণমানকে 1080p এর মধ্যে সীমাবদ্ধ করে" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/de/messages.json b/3.120-pre/_locales/de/messages.json deleted file mode 100644 index efe0f75fd..000000000 --- a/3.120-pre/_locales/de/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "about": { - "message": "Info" - }, - "accept": { - "message": "Akzeptieren" - }, - "activate": { - "message": "Aktivieren" - }, - "activateCaptions": { - "message": "Untertitel aktivieren" - }, - "activated": { - "message": "Aktiviert" - }, - "activatedFeatures": { - "message": "Aktivierte Features" - }, - "activateFullscreen": { - "message": "Vollbild aktivieren" - }, - "activeFeatures": { - "message": "Aktive Funktionen" - }, - "addScrollToTop": { - "message": "«Nach Oben»-Button" - }, - "ads": { - "message": "Werbung" - }, - "all": { - "message": "Alles" - }, - "allow": { - "message": "zulassen" - }, - "allow60fps": { - "message": "60fps zulassen" - }, - "alwaysActive": { - "message": "Immer aktiv" - }, - "alwaysShowProgressBar": { - "message": "Zeitleiste immer anzeigen" - }, - "amber": { - "message": "Bernstein" - }, - "analyzer": { - "message": "Analyse" - }, - "appearance": { - "message": "Aussehen" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio-Formate" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-Vollbild" - }, - "autopauseWhenSwitchingTabs": { - "message": "Video pausieren beim Tab-Wechsel" - }, - "autoplay": { - "message": "Autoplay" - }, - "backupAndReset": { - "message": "Sichern oder zurücksetzen" - }, - "baseOnSystemColorScheme": { - "message": "Basierend von Systemfarben" - }, - "belowPlayer": { - "message": "Unter dem Player" - }, - "black": { - "message": "Schwarz" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "immer blockieren" - }, - "blue": { - "message": "Blau" - }, - "blueGray": { - "message": "Blau grau" - }, - "bluelight": { - "message": "Blaues Licht" - }, - "brown": { - "message": "Braun" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser Version" - }, - "bubbles": { - "message": "Blasen" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Buttons" - }, - "cancel": { - "message": "Abbrechen" - }, - "categories": { - "message": "Kategorien" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanäle" - }, - "clipboard": { - "message": "Zwischenablage" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Eingeklappt" - }, - "collapseOfSubscriptionSections": { - "message": "Abos einklappen" - }, - "comments": { - "message": "Kommentare" - }, - "confirmationBeforeClosing": { - "message": "Bestätigung beim Schließen" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Kerne" - }, - "cropChapterTitles": { - "message": "Kapitel abschneiden" - }, - "customCss": { - "message": "CSS hinzufügen" - }, - "customJs": { - "message": "JS hinzufügen" - }, - "customMiniPlayer": { - "message": "Benutzerdefinierter Mini-Player" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Dunkel" - }, - "darkTheme": { - "message": "Dark-Theme" - }, - "dateAndTime": { - "message": "Datum & Uhrzeit" - }, - "dawn": { - "message": "Morgendämmerung" - }, - "decreasePlaybackSpeed": { - "message": "Abspielgeschwindigkeit verringern" - }, - "decreaseVolume": { - "message": "Lautstärke reduzieren" - }, - "deepOrange": { - "message": "Dunkel-Orange" - }, - "deepPurple": { - "message": "Dunkel-Lila" - }, - "defaultChannelTab": { - "message": "Standard-Kanal Tab" - }, - "deleteYoutubeCookies": { - "message": "YouTube-Cookies löschen" - }, - "description": { - "message": "Beschreibung" - }, - "desert": { - "message": "Wüste" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Entwickleroptionen" - }, - "device": { - "message": "Gerät" - }, - "dim": { - "message": "dimmen" - }, - "disabled": { - "message": "ausgeschaltet" - }, - "dislike": { - "message": "'Mag ich nicht'" - }, - "donate": { - "message": "Spenden" - }, - "doNotChange": { - "message": "Nicht ändern" - }, - "draggable": { - "message": "Verschiebbar" - }, - "email": { - "message": "E-Mail" - }, - "empty": { - "message": "leer" - }, - "enabled": { - "message": "aktiviert" - }, - "enabledForced": { - "message": "aktiviert (erzwungen)" - }, - "expanded": { - "message": "ausgeklappt" - }, - "exportSettings": { - "message": "Einstellungen als Datei exportieren" - }, - "extension": { - "message": "Erweiterung" - }, - "file": { - "message": "Datei" - }, - "filters": { - "message": "Filter" - }, - "fitToWindow": { - "message": "Ans Fenster anpassen" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Schriftart" - }, - "footer": { - "message": "Fußzeile" - }, - "forcedPlaybackSpeed": { - "message": "erzwungene Abspielgeschwindigkeit" - }, - "forcedTheaterMode": { - "message": "Kinomodus erzwingen" - }, - "forcedVolume": { - "message": "Fixe Lautstärke" - }, - "foundABug": { - "message": "Fehler gefunden?" - }, - "fullWindow": { - "message": "Ganzes Fenster" - }, - "general": { - "message": "Allgemein" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "YouTube Suche" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Grün" - }, - "hdThumbnail": { - "message": "HD-Vorschaubild" - }, - "hdThumbnails": { - "message": "HD-Vorschaubilder" - }, - "header": { - "message": "Header / 'Kopfzeile'" - }, - "hidden": { - "message": "Ausblenden" - }, - "hiddenOnVideoPage": { - "message": "Auf Videoseiten ausblenden" - }, - "hideAnimatedThumbnails": { - "message": "Keine animierten Vorschaubilder" - }, - "hideAnnotations": { - "message": "Anmerkungen ausblenden" - }, - "hideCards": { - "message": "Karten ausblenden" - }, - "hideDetails": { - "message": "Details ausblenden" - }, - "hideEndscreen": { - "message": "Endkarten ausblenden (Schlussbildschirme)" - }, - "hideFeaturedContent": { - "message": "'Empfohlene Inhalte' ausblenden" - }, - "hideFooter": { - "message": "Fußzeile ausblenden" - }, - "hideGradientBottom": { - "message": "Farbverlauf ausblenden" - }, - "hidePlaylist": { - "message": "Playlists ausblenden" - }, - "hideRightButtons": { - "message": "Rechte Buttons ausblenden" - }, - "hideScrollForDetails": { - "message": "«Für Details scrollen» ausblenden" - }, - "hideViewsCount": { - "message": "Videoaufrufe ausblenden" - }, - "history": { - "message": "Verlauf" - }, - "home": { - "message": "Standard" - }, - "hover": { - "message": "Nur anzeigen wenn die Maus darauf zeigt" - }, - "hoverOnVideoPage": { - "message": "auf Video-Seiten nur wenn die Maus..." - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Alter des Videos (seit Hochlade-Datum)" - }, - "icons": { - "message": "Icons" - }, - "iconsOnly": { - "message": "nur Icons" - }, - "importSettings": { - "message": "Einstellungen importieren" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube Icon im Browser" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube Icon auf YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube Sprache" - }, - "improvedtubeVersion": { - "message": "ImprovedTube Version" - }, - "improveLogo": { - "message": "Logo verbessern" - }, - "increasePlaybackSpeed": { - "message": "Abspiel Geschwingkeit erhöhen" - }, - "increaseVolume": { - "message": "Lautstärke erhöhen" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Sprachen" - }, - "legacyYoutube": { - "message": "Klassiches YouTube" - }, - "light": { - "message": "Hell" - }, - "lightBlue": { - "message": "Hellblau" - }, - "lightGreen": { - "message": "Hellgrün" - }, - "like": { - "message": "Like" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Limette" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Live-Chat" - }, - "liveChatType": { - "message": "Live-Chat Typ" - }, - "loudnessNormalization": { - "message": "Lautstärke normalisieren" - }, - "markWatchedVideos": { - "message": "gesehene Videos markieren" - }, - "mixer": { - "message": "Mischpult" - }, - "myColors": { - "message": "Meine Farben" - }, - "name": { - "message": "Name" - }, - "nativeMiniPlayer": { - "message": "Standard Mini-Player" - }, - "new": { - "message": "Neu" - }, - "nextVideo": { - "message": "Nächstes Video" - }, - "night": { - "message": "Nacht" - }, - "noActiveFeatures": { - "message": "Keine aktiven Features" - }, - "none": { - "message": "Keine" - }, - "noOpenVideoTabs": { - "message": "Keine YouTube Videos geöffnet" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Alt" - }, - "onAllVideos": { - "message": "in allen Videos" - }, - "onlyActiveOnYoutube": { - "message": "nur auf YouTube rot färben" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Nur ein Video gleichzeitig" - }, - "onSubscribedChannels": { - "message": "nur in abonnierten Kanälen" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "Betriebsystem" - }, - "other": { - "message": "Andere" - }, - "permissions": { - "message": "Berechtigungen" - }, - "pictureInPicture": { - "message": "Bild-in-Bild" - }, - "pink": { - "message": "Pink" - }, - "plain": { - "message": "Schlicht" - }, - "platform": { - "message": "Plattform" - }, - "playbackSpeed": { - "message": "Abspiel-Geschwindigkeit" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Playerfarbe" - }, - "playerSize": { - "message": "Playergröße" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "playPause": { - "message": "Play / Pause" - }, - "popupPlayer": { - "message": "Player in eigenem Fenster" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Eine Taste drücken oder scrollen!" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Eine Taste drücken oder scrollen!" - }, - "previousVideo": { - "message": "Letztes Video" - }, - "primaryColor": { - "message": "Primäre Farbe" - }, - "purple": { - "message": "Lila" - }, - "quality": { - "message": "Qualität" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Bewerte mich!" - }, - "red": { - "message": "Rot" - }, - "redDislikeButton": { - "message": "Zeige 'Mag ich nicht' Button rot" - }, - "relatedVideos": { - "message": "Verwandte Videos" - }, - "removeRelatedSearchResults": { - "message": "Verwandte Suchergebnisse entfernen" - }, - "repeat": { - "message": "Repeat(Wiederholen)" - }, - "reset": { - "message": "Zurücksetzen" - }, - "resetAllSettings": { - "message": "Alle Einstellungen zurücksetzen" - }, - "resetAllShortcuts": { - "message": "Alle Shortcuts zurücksetzen" - }, - "reverse": { - "message": "Rückwärts" - }, - "rotate": { - "message": "Drehen" - }, - "save": { - "message": "Speichern" - }, - "saveAs": { - "message": "Speichern als" - }, - "schedule": { - "message": "Nachtschaltung planen" - }, - "screen": { - "message": "Bildschirm" - }, - "screenshot": { - "message": "Screenshot" - }, - "search": { - "message": "Suche" - }, - "searchBarOnly": { - "message": "Nur die Suchleiste" - }, - "seekBackward10Seconds": { - "message": "10 Sekunden zurück" - }, - "seekForward10Seconds": { - "message": "10 Sekunden überspringen" - }, - "settings": { - "message": "Einstellungen" - }, - "settingsSuccessfullyImported": { - "message": "Einstellungen erfolgreich importiert!" - }, - "shortcuts": { - "message": "Hotkeys" - }, - "showCardsOnMouseHover": { - "message": "Infokarten bei Mausover anzeigen" - }, - "showChannelVideosCount": { - "message": "Anzahl Videos je Channel anzeigen" - }, - "shuffle": { - "message": "Zufallswiedergabe" - }, - "sidebar": { - "message": "Seitenleiste" - }, - "spacebar": { - "message": "Leertaste" - }, - "squaredUserImages": { - "message": "Quadratische Profilbilder" - }, - "static": { - "message": "Statisch" - }, - "statsForNerds": { - "message": "Statistiken für Nerds" - }, - "step": { - "message": "Schritt" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscriptions": { - "message": "Abonnements" - }, - "subtitles": { - "message": "Untertitel" - }, - "sunset": { - "message": "Sonnenuntergang" - }, - "sunsetToSunrise": { - "message": "Abends bis Morgens" - }, - "systemPeferenceDark": { - "message": "System Einstellungen: dunkel" - }, - "systemPeferenceLight": { - "message": "System Einstellungen: hell" - }, - "teal": { - "message": "Blaugrün" - }, - "textColor": { - "message": "Textfarbe" - }, - "themes": { - "message": "Farbschemen" - }, - "thisWillRemoveAllCookies": { - "message": "Alle Cookies werden gelöscht" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Alle YouTube Cookies werden gelöscht" - }, - "thisWillResetAllSettings": { - "message": "Alle Einstellungen werden entfernt" - }, - "thisWillResetAllShortcuts": { - "message": "Alle Shortcuts werden entfernt" - }, - "thumbnails": { - "message": "Vorschaubilder" - }, - "timeFrom": { - "message": "Start" - }, - "timeTo": { - "message": "Stop" - }, - "todayAt": { - "message": "Heute um" - }, - "toggleCards": { - "message": "Karten ausblenden" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Trailer autoplay (Kanal-Intro automatisch losspielen)" - }, - "translations": { - "message": "Übersetzungen" - }, - "transparentBackground": { - "message": "Transparenter Hintergrund" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Versuche die Seite neu zu laden" - }, - "type": { - "message": "Typ" - }, - "upNextAutoplay": { - "message": "Nächstes Video automatisch abspielen" - }, - "use24HourFormat": { - "message": "24-Stunden Format" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Die Video-Beschreibung wird um den Kategorienamen erweitert" - }, - "videoFormats": { - "message": "Video Formate" - }, - "videos": { - "message": "Videos" - }, - "volume": { - "message": "Lautstärke" - }, - "watchLater": { - "message": "Später ansehen" - }, - "watchTime": { - "message": "Verbrauchte Zeit" - }, - "whenTabIsChanged": { - "message": "Beim Tab-Wechsel" - }, - "white": { - "message": "Weiß" - }, - "yellow": { - "message": "Gelb" - }, - "youtubeHeaderLeft": { - "message": "YouTube Kopfzeile (Links)" - }, - "youtubeHeaderRight": { - "message": "YouTube Kopfzeile (Rechts)" - }, - "youtubeHomePage": { - "message": "YouTube Startseite" - }, - "youtubeLanguage": { - "message": "YouTube Sprache" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube begrenzt die Qualität auf 1080p für den h.264 Codec" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/el/messages.json b/3.120-pre/_locales/el/messages.json deleted file mode 100644 index c1c9dc02c..000000000 --- a/3.120-pre/_locales/el/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "about": { - "message": "Σχετικά" - }, - "accept": { - "message": "Αποδοχή" - }, - "activate": { - "message": "Ενεργοποίηση" - }, - "activateCaptions": { - "message": "Ενεργοποίηση Υπότιτλων" - }, - "activated": { - "message": "Ενεργοποιήθηκε" - }, - "activatedFeatures": { - "message": "Ενεργοποιημένες Λειτουργίες" - }, - "activateFullscreen": { - "message": "Ενεργοποίηση Πλήρους Οθόνη" - }, - "activeFeatures": { - "message": "Ενεργές λειτουργίες" - }, - "addScrollToTop": { - "message": "Πρόσθεσε συντόμευση για την κορυφή της σελίδας" - }, - "ads": { - "message": "Διαφημίσεις" - }, - "all": { - "message": "Όλα" - }, - "allow": { - "message": "Αποδοχή" - }, - "allow60fps": { - "message": "Επίτρεψε 60fps" - }, - "alwaysActive": { - "message": "Πάντοτε ενεργό" - }, - "alwaysShowProgressBar": { - "message": "Πάντα ορατός ο ενδείκτης προόδου" - }, - "amber": { - "message": "Κεχρί" - }, - "analyzer": { - "message": "Αναλυτής" - }, - "appearance": { - "message": "Εμφάνιση" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Ήχος" - }, - "audioFormats": { - "message": "Μορφές ήχου" - }, - "auto": { - "message": "Αυτόματο" - }, - "autoFullscreen": { - "message": "Αυτόματη Πλήρης Οθόνη" - }, - "autopauseWhenSwitchingTabs": { - "message": "Αυτόματη παύση όταν αλλάζετε καρτέλα" - }, - "autoplay": { - "message": "Αυτόματη αναπαραγωγή" - }, - "backupAndReset": { - "message": "Αντίγραφα ασφαλείας & reset" - }, - "baseOnSystemColorScheme": { - "message": "Με βάση τις ρυθμίσεις χρώματος του συστήματος" - }, - "belowPlayer": { - "message": "Κάτω από το Player" - }, - "black": { - "message": "Μαύρο" - }, - "blacklist": { - "message": "Λίστα αποκλεισμού" - }, - "blockAll": { - "message": "Αποκλείστε όλα" - }, - "blue": { - "message": "Μπλε" - }, - "blueGray": { - "message": "Μπλε γκρίζο" - }, - "bluelight": { - "message": "Μπλε φως" - }, - "brown": { - "message": "Καφέ" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Έκδοση browser" - }, - "bubbles": { - "message": "Φούσκες" - }, - "bug": { - "message": "Σφάλμα κώδικα" - }, - "buttons": { - "message": "Κουμπιά" - }, - "cancel": { - "message": "Ακύρωση" - }, - "categories": { - "message": "Κατηγορίες" - }, - "channel": { - "message": "Κανάλι" - }, - "channels": { - "message": "Κανάλια" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Κλειστό" - }, - "collapseOfSubscriptionSections": { - "message": "Κλείσε το μενού συνδρομών" - }, - "comments": { - "message": "Σχόλιο" - }, - "confirmationBeforeClosing": { - "message": "Επιβεβαίωση πρωτού κλείσεις" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Πυρήνες" - }, - "cropChapterTitles": { - "message": "Περίκοψε τους τίτλους των κεφαλαίων" - }, - "customCss": { - "message": "Εξατομίκευση CSS" - }, - "customJs": { - "message": "Εξατομίκευση JS" - }, - "customMiniPlayer": { - "message": "Εξατομικευμένο Mini-Player" - }, - "cyan": { - "message": "Κυανό" - }, - "dark": { - "message": "Σκούρο" - }, - "darkTheme": { - "message": "Σκούρο θέμα" - }, - "dateAndTime": { - "message": "Ημερομηνία & ώρα" - }, - "dawn": { - "message": "Αυγή" - }, - "decreasePlaybackSpeed": { - "message": "Μείωσε ταχύτητα αναπαραγωγής" - }, - "decreaseVolume": { - "message": "Μειώστε ένταση" - }, - "deepOrange": { - "message": "Βαθύ πορτοκαλί" - }, - "deepPurple": { - "message": "Βαθύ μοβ" - }, - "defaultChannelTab": { - "message": "Προεπιλεγμένη καρτέλα καναλιού" - }, - "deleteYoutubeCookies": { - "message": "Κατάργησε τα cookies του YouTube" - }, - "description": { - "message": "Περιγραφή" - }, - "desert": { - "message": "Έρημος" - }, - "details": { - "message": "Λεπτομέρειες" - }, - "developerOptions": { - "message": "Επιλογές για προγραμματιστές" - }, - "device": { - "message": "Συσκευή" - }, - "dim": { - "message": "Σκοτεινό" - }, - "disabled": { - "message": "Απενεργοποιημένο" - }, - "dislike": { - "message": "Δε μου αρέσει" - }, - "donate": { - "message": "Συνεισφέρετε οικονομικά" - }, - "doNotChange": { - "message": "Να μην αλλάξει" - }, - "draggable": { - "message": "Μετακινήσιμο με σύρση" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Κενό" - }, - "enabled": { - "message": "Ενεργοποιημένο" - }, - "enabledForced": { - "message": "Ενεργοποιημένο (Υποχρεωτικά)" - }, - "expanded": { - "message": "Ανοικτό" - }, - "exportSettings": { - "message": "Εξαγωγή ρυθμίσεων" - }, - "extension": { - "message": "Επέκταση" - }, - "file": { - "message": "Αρχείο" - }, - "filters": { - "message": "Φίλτρα" - }, - "fitToWindow": { - "message": "Να χωράει στο παράθυρο" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Γραμματοσειρά" - }, - "footer": { - "message": "Υποσέλιδο" - }, - "forcedPlaybackSpeed": { - "message": "Υποχρεωτική ταχύτητα αναπαραγωγής" - }, - "forcedTheaterMode": { - "message": "Υποχρεωτική λειτουργία κινηματογράφου" - }, - "forcedVolume": { - "message": "Υποχρεωτική ένταση" - }, - "foundABug": { - "message": "Εντοπίσατε κάποιο σφάλμα;" - }, - "fullWindow": { - "message": "Πλήρες παράθυρο" - }, - "general": { - "message": "Γενικά" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Πήγαινε στο πεδίο αναζήτησης" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Πράσινο" - }, - "hdThumbnail": { - "message": "HD Εικονίδιο βίντεο" - }, - "hdThumbnails": { - "message": "HD Εικονίδια βίντεο" - }, - "header": { - "message": "Κεφαλίδα" - }, - "hidden": { - "message": "Κρυμμένο" - }, - "hiddenOnVideoPage": { - "message": "Κρυμμένο στη σελίδα βίντεο" - }, - "hideAnimatedThumbnails": { - "message": "Απόκρυψε τα κινούμενα εικονίδια βίντεο" - }, - "hideAnnotations": { - "message": "Απόκρυψε τα annotations" - }, - "hideCards": { - "message": "Απόκρυψε τις κάρτες" - }, - "hideDetails": { - "message": "Απόκρυψε τις λεπτομέρειες" - }, - "hideEndscreen": { - "message": "Απόκρυψε την κάρτα τέλους" - }, - "hideFeaturedContent": { - "message": "Απόκρυψε το προτεινόμενο περιεχόμενο" - }, - "hideFooter": { - "message": "Απόκρυψε το υποσέλιδο" - }, - "hideGradientBottom": { - "message": "Απόκρυψε το κάτω μέρος της χρωματικής διαβάθμισης" - }, - "hidePlaylist": { - "message": "Απόκρυψε τα playlists" - }, - "hideRightButtons": { - "message": "Απόκρυψε τα κουμπιά στα δεξιά" - }, - "hideScrollForDetails": { - "message": "Απόκρυψε το «Scroll for details»" - }, - "hideViewsCount": { - "message": "Απόκρυψε τον αριθμό προβολών" - }, - "history": { - "message": "Ιστορικό" - }, - "home": { - "message": "Αρχική σελίδα" - }, - "hover": { - "message": "Κέρσορας από πάνω" - }, - "hoverOnVideoPage": { - "message": "Κέρσορας πάνω στη σελίδα βίντεο" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Πριν από πόσο ανέβηκε το βίντεο" - }, - "icons": { - "message": "Εικονίδια" - }, - "iconsOnly": { - "message": "Εικονίδια μόνο" - }, - "importSettings": { - "message": "Εισαγωγή ρυθμίσεων" - }, - "improvedtubeIconInBrowser": { - "message": "Εικονίδιο ImprovedTube στο Browser" - }, - "improvedtubeIconOnYoutube": { - "message": "Εικονίδιο ImprovedTube στο YouTube" - }, - "improvedtubeLanguage": { - "message": "Γλώσσα ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Έκδοση ImprovedTube" - }, - "improveLogo": { - "message": "Λογότυπο Improve" - }, - "increasePlaybackSpeed": { - "message": "Αύξησε την ταχύτητα αναπαραγωγής" - }, - "increaseVolume": { - "message": "Αύξησε την ένταση" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Αντικείμενα" - }, - "languages": { - "message": "Γλώσσες" - }, - "legacyYoutube": { - "message": "Παλιά έκδοση YouTube" - }, - "light": { - "message": "Ανοιχτόχρωμο" - }, - "lightBlue": { - "message": "Ανοικτό μπλε" - }, - "lightGreen": { - "message": "Ανοικτό πράσινο" - }, - "like": { - "message": "Μου αρέσει" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Μοσχολέμονο" - }, - "list": { - "message": "Λίστα" - }, - "liveChat": { - "message": "Live chat" - }, - "liveChatType": { - "message": "Τύπος live chat" - }, - "loudnessNormalization": { - "message": "Κανονικοποίηση έντασης" - }, - "markWatchedVideos": { - "message": "Επισήμανση βίντεο που προβλήθηκαν" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "Τα χρώματά μου" - }, - "name": { - "message": "Όνομα" - }, - "nativeMiniPlayer": { - "message": "Mini player συστήματος" - }, - "new": { - "message": "Νέο" - }, - "nextVideo": { - "message": "Επόμενο βίντεο" - }, - "night": { - "message": "Νύχτα" - }, - "noActiveFeatures": { - "message": "Καμία λειτουργία ενεργή" - }, - "none": { - "message": "Κανένα" - }, - "noOpenVideoTabs": { - "message": "Καμία καρτέλα βίντεο ανοικτή" - }, - "normal": { - "message": "Κανονικό" - }, - "old": { - "message": "Παλιό" - }, - "onAllVideos": { - "message": "Σε όλα τα βίντεο" - }, - "onlyActiveOnYoutube": { - "message": "Μόνο ενεργό στο YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Μόνο ένα player λειτουργεί" - }, - "onSubscribedChannels": { - "message": "Σε κανάλια που έχει γίνει συνδρομή" - }, - "orange": { - "message": "Πορτοκαλί" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Άλλο" - }, - "permissions": { - "message": "Άδεια" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Ροζ" - }, - "plain": { - "message": "Σκέτο" - }, - "platform": { - "message": "Πλατφόρμα" - }, - "playbackSpeed": { - "message": "Ταχύτητα αναπαραγωγής" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Χρώμσ player" - }, - "playerSize": { - "message": "Μέγεθος player" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "playPause": { - "message": "Play / Pause" - }, - "popupPlayer": { - "message": "Popup player" - }, - "position": { - "message": "Θέση" - }, - "pressAnyKeyOrScroll": { - "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." - }, - "previousVideo": { - "message": "Προηγούμενο βίντεο" - }, - "primaryColor": { - "message": "Πρωτεύον χρώμα" - }, - "purple": { - "message": "Μοβ" - }, - "quality": { - "message": "Ποιότητα" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Αξιολόγησέ μας" - }, - "red": { - "message": "Κόκκινο" - }, - "redDislikeButton": { - "message": "Δείξτε το πλήκτρο «Δε μου αρέσει» σε κόκκινο" - }, - "relatedVideos": { - "message": "Σχετικά videos" - }, - "removeRelatedSearchResults": { - "message": "Αφαίρεσε σχετικά αποτελέσματα αναζήτησης" - }, - "repeat": { - "message": "Επανάληψη" - }, - "reset": { - "message": "Επαναφορά" - }, - "resetAllSettings": { - "message": "Επαναφορά όλων των ρυθμίσεων" - }, - "resetAllShortcuts": { - "message": "Επαναφορά όλων των συντομεύσεων" - }, - "reverse": { - "message": "Ανάποδα" - }, - "rotate": { - "message": "Περιστροφή" - }, - "save": { - "message": "Αποθήκευση" - }, - "saveAs": { - "message": "Αποθήκευση ως" - }, - "schedule": { - "message": "Πρόγραμμα" - }, - "screen": { - "message": "Οθόνη" - }, - "screenshot": { - "message": "Στιγμιότυπο" - }, - "search": { - "message": "Αναζήτηση" - }, - "searchBarOnly": { - "message": "Πεδίο αναζήτησης μόνο" - }, - "seekBackward10Seconds": { - "message": "Πίσω 10 δευτερόλεπτα" - }, - "seekForward10Seconds": { - "message": "Μπροστά 10 δευτερόλεπτα" - }, - "settings": { - "message": "Ρυθμίσεις" - }, - "settingsSuccessfullyImported": { - "message": "Επιτυχής εισαγωγή ρυθμίσεων" - }, - "shortcuts": { - "message": "Συντομεύσεις" - }, - "showCardsOnMouseHover": { - "message": "Δείξε τις κάρτες όταν ο κέρσορας είναι από πάνω" - }, - "showChannelVideosCount": { - "message": "Δείξε τις συνολικές προβολές του καναλιού" - }, - "shuffle": { - "message": "Τυχαία αναπαραγωγή" - }, - "sidebar": { - "message": "Sidebar" - }, - "spacebar": { - "message": "Spacebar" - }, - "squaredUserImages": { - "message": "Τετράγωνες εικόνες χρήστη" - }, - "static": { - "message": "Στατικό" - }, - "statsForNerds": { - "message": "Δείξε τα Στατιστικά για Σπασίκλες" - }, - "step": { - "message": "Βήμα" - }, - "stop": { - "message": "Στοπ" - }, - "style": { - "message": "Στυλ" - }, - "styles": { - "message": "Στυλ" - }, - "subscriptions": { - "message": "Συνδρομές" - }, - "subtitles": { - "message": "Υπότιτλοι" - }, - "sunset": { - "message": "Ηλιοβασίλεμα" - }, - "sunsetToSunrise": { - "message": "Από δύση έως ανατολή" - }, - "systemPeferenceDark": { - "message": "Προτίμηση συστήματος: Σκούρο" - }, - "systemPeferenceLight": { - "message": "Προτίμηση συστήματος: Ανοικτόχρωμο" - }, - "teal": { - "message": "Γαλαζιοπράσινο" - }, - "textColor": { - "message": "Χρώμα κειμένου" - }, - "themes": { - "message": "Θέματα" - }, - "thisWillRemoveAllCookies": { - "message": "Αυτό αφαιρεί όλα τα cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Αυτό αφαιρεί όλα τα cookies του YouTube." - }, - "thisWillResetAllSettings": { - "message": "Αυτό επαναφέρει όλες τις ρυθμίσεις." - }, - "thisWillResetAllShortcuts": { - "message": "Αυτό επαναφέρει όλες τις συντομεύσεις." - }, - "thumbnails": { - "message": "Εικονίδια" - }, - "timeFrom": { - "message": "Χρόνος από" - }, - "timeTo": { - "message": "Χρόνος έως" - }, - "todayAt": { - "message": "Σήμερα στις" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Trailer autoplay" - }, - "translations": { - "message": "Μεταφράσεις" - }, - "transparentBackground": { - "message": "Διαφανές υπόβαθρο" - }, - "trending": { - "message": "Τάσεις" - }, - "tryToReloadThePage": { - "message": "Προσπάθησε να επαναφορτώσεις τη σελίδα" - }, - "type": { - "message": "Τύπος" - }, - "upNextAutoplay": { - "message": "Επόμενο στο autoplay" - }, - "use24HourFormat": { - "message": "Χρησιμοποίησε 24ωρη μορφή ώρας" - }, - "version": { - "message": "Έκδοση" - }, - "video": { - "message": "Βίντεο" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Η περιγραφή του βίντεο θα επεκταθεί ωστε να συμπεριληφθεί το όνομα της κατηγορίας." - }, - "videoFormats": { - "message": "Μορφές βίντεο" - }, - "videos": { - "message": "Βίντεο" - }, - "volume": { - "message": "Ένταση" - }, - "watchLater": { - "message": "Δες αργότερα" - }, - "watchTime": { - "message": "Χρόνος προβολής" - }, - "whenTabIsChanged": { - "message": "Όταν αλλάζεις καρτέλα" - }, - "white": { - "message": "Λευκό" - }, - "yellow": { - "message": "Κίτρινο" - }, - "youtubeHeaderLeft": { - "message": "Κεφαλίδα YouTube (αριστερά)" - }, - "youtubeHeaderRight": { - "message": "Κεφαλίδα YouTube (δεξιά)" - }, - "youtubeHomePage": { - "message": "Αρχική σελίδα YouTube" - }, - "youtubeLanguage": { - "message": "Γλώσσα YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "Το YouTube περιορίζει την ποιότητα σε 1080p για το h.264 codec" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/en/messages.json b/3.120-pre/_locales/en/messages.json deleted file mode 100644 index 873cf124f..000000000 --- a/3.120-pre/_locales/en/messages.json +++ /dev/null @@ -1,812 +0,0 @@ -{ - "about": { - "message": "About" - }, - "accept": { - "message": "Accept" - }, - "activate": { - "message": "Activate" - }, - "activateCaptions": { - "message": "Activate captions" - }, - "activated": { - "message": "Activated" - }, - "activatedFeatures": { - "message": "Activated features" - }, - "activateFullscreen": { - "message": "Activate fullscreen" - }, - "activeFeatures": { - "message": "Active features" - }, - "addScrollToTop": { - "message": "Add «Scroll to top»" - }, - "ads": { - "message": "Ads" - }, - "all": { - "message": "All" - }, - "allow": { - "message": "Allow" - }, - "allow60fps": { - "message": "Allow 60fps" - }, - "alwaysActive": { - "message": "Always active" - }, - "alwaysShowProgressBar": { - "message": "Always show progress bar" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analyzer" - }, - "appearance": { - "message": "Appearance" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio formats" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-fullscreen" - }, - "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" - }, - "autoplay": { - "message": "Autoplay" - }, - "backupAndReset": { - "message": "Backup & reset" - }, - "baseOnSystemColorScheme": { - "message": "Base on system color scheme" - }, - "belowPlayer": { - "message": "Below player" - }, - "black": { - "message": "Black" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "Block all" - }, - "blue": { - "message": "Blue" - }, - "blueGray": { - "message": "Blue gray" - }, - "bluelight": { - "message": "Bluelight" - }, - "brown": { - "message": "Brown" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser version" - }, - "bubbles": { - "message": "Bubbles" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Buttons" - }, - "cancel": { - "message": "Cancel" - }, - "categories": { - "message": "Categories" - }, - "channel": { - "message": "Channel" - }, - "channels": { - "message": "Channels" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Collapsed" - }, - "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" - }, - "comments": { - "message": "Comments" - }, - "confirmationBeforeClosing": { - "message": "Confirmation before closing" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Custom JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Dark" - }, - "darkTheme": { - "message": "Dark theme" - }, - "dateAndTime": { - "message": "Date & time" - }, - "dawn": { - "message": "Dawn" - }, - "decreasePlaybackSpeed": { - "message": "Decrease playback speed" - }, - "decreaseVolume": { - "message": "Decrease volume" - }, - "deepOrange": { - "message": "Deep orange" - }, - "deepPurple": { - "message": "Deep purple" - }, - "defaultChannelTab": { - "message": "Default channel tab" - }, - "deleteYoutubeCookies": { - "message": "Delete YouTube cookies" - }, - "description": { - "message": "Description" - }, - "desert": { - "message": "Desert" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Developer options" - }, - "device": { - "message": "Device" - }, - "dim": { - "message": "Dim" - }, - "disabled": { - "message": "Disabled" - }, - "dislike": { - "message": "Dislike" - }, - "donate": { - "message": "Donate" - }, - "doNotChange": { - "message": "Don't change" - }, - "draggable": { - "message": "Draggable" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Empty" - }, - "enabled": { - "message": "Enabled" - }, - "enabledForced": { - "message": "Enabled (forced)" - }, - "expanded": { - "message": "Expanded" - }, - "exportSettings": { - "message": "Export settings" - }, - "extension": { - "message": "Extension" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filters" - }, - "fitToWindow": { - "message": "Fit to window" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Footer" - }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, - "forcedTheaterMode": { - "message": "Forced theater mode" - }, - "forcedVolume": { - "message": "Forced volume" - }, - "foundABug": { - "message": "Found a bug?" - }, - "fullWindow": { - "message": "Full window" - }, - "general": { - "message": "General" - }, - "geoPreference": { - "message": "Geo Preference" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Go to search box" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Green" - }, - "hdThumbnail": { - "message": "HD thumbnail" - }, - "hdThumbnails": { - "message": "HD thumbnails" - }, - "header": { - "message": "Header" - }, - "hidden": { - "message": "Hidden" - }, - "hiddenOnVideoPage": { - "message": "Hidden on video page" - }, - "hideAnimatedThumbnails": { - "message": "Hide animated thumbnails" - }, - "hideAnnotations": { - "message": "Hide annotations" - }, - "hideCards": { - "message": "Hide cards" - }, - "hideDetails": { - "message": "Hide details" - }, - "hideEndscreen": { - "message": "Hide endscreen" - }, - "hideFeaturedContent": { - "message": "Hide featured content" - }, - "hideFooter": { - "message": "Hide footer" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "hidePlaylist": { - "message": "Hide playlist" - }, - "hideRightButtons": { - "message": "Hide right buttons" - }, - "hideScrollForDetails": { - "message": "Hide «Scroll for details»" - }, - "hideViewsCount": { - "message": "Hide views count" - }, - "history": { - "message": "History" - }, - "home": { - "message": "Home" - }, - "hover": { - "message": "Hover" - }, - "hoverOnVideoPage": { - "message": "Hover on video page" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" - }, - "icons": { - "message": "Icons" - }, - "iconsOnly": { - "message": "Icons only" - }, - "importSettings": { - "message": "Import settings" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube icon in Browser" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icon on YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube language" - }, - "improvedtubeVersion": { - "message": "ImprovedTube version" - }, - "improveLogo": { - "message": "Improve logo" - }, - "increasePlaybackSpeed": { - "message": "Increase playback speed" - }, - "increaseVolume": { - "message": "Increase volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Languages" - }, - "legacyYoutube": { - "message": "Legacy YouTube" - }, - "light": { - "message": "Light" - }, - "lightBlue": { - "message": "Light blue" - }, - "lightGreen": { - "message": "Light green" - }, - "like": { - "message": "Like" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Lime" - }, - "list": { - "message": "List" - }, - "liveChat": { - "message": "Live chat" - }, - "liveChatType": { - "message": "Live chat type" - }, - "loudnessNormalization": { - "message": "Loudness normalization" - }, - "markWatchedVideos": { - "message": "Mark watched videos" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "My colors" - }, - "name": { - "message": "Name" - }, - "nativeMiniPlayer": { - "message": "Native mini player" - }, - "new": { - "message": "New" - }, - "nextVideo": { - "message": "Next video" - }, - "night": { - "message": "Night" - }, - "noActiveFeatures": { - "message": "No active features" - }, - "none": { - "message": "None" - }, - "noOpenVideoTabs": { - "message": "No open video tabs" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Old" - }, - "onAllVideos": { - "message": "On all videos" - }, - "onlyActiveOnYoutube": { - "message": "Only active on YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "onSubscribedChannels": { - "message": "On subscribed channels" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Other" - }, - "permissions": { - "message": "Permissions" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Pink" - }, - "plain": { - "message": "Plain" - }, - "platform": { - "message": "Platform" - }, - "playbackSpeed": { - "message": "Playback speed" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Player color" - }, - "playerSize": { - "message": "Player size" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "playPause": { - "message": "Play / Pause" - }, - "popupPlayer": { - "message": "Popup player" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Press any key or use mouse wheel." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Press any key or use mouse wheel" - }, - "previousVideo": { - "message": "Previous video" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "Purple" - }, - "quality": { - "message": "Quality" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Rate us" - }, - "red": { - "message": "Red" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Related videos" - }, - "removeRelatedSearchResults": { - "message": "Remove related search results" - }, - "repeat": { - "message": "Repeat" - }, - "reset": { - "message": "Reset" - }, - "resetAllSettings": { - "message": "Reset all settings" - }, - "resetAllShortcuts": { - "message": "Reset all shortcuts" - }, - "reverse": { - "message": "Reverse" - }, - "rotate": { - "message": "Rotate" - }, - "save": { - "message": "Save" - }, - "saveAs": { - "message": "Save as" - }, - "schedule": { - "message": "Schedule" - }, - "screen": { - "message": "Screen" - }, - "screenshot": { - "message": "Screenshot" - }, - "search": { - "message": "Search" - }, - "searchBarOnly": { - "message": "Search bar only" - }, - "seekBackward10Seconds": { - "message": "Seek backward 10 seconds" - }, - "seekForward10Seconds": { - "message": "Seek forward 10 seconds" - }, - "settings": { - "message": "Settings" - }, - "settingsSuccessfullyImported": { - "message": "Settings successfully imported" - }, - "shortcuts": { - "message": "Shortcuts" - }, - "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" - }, - "showChannelVideosCount": { - "message": "Show channel videos count" - }, - "shuffle": { - "message": "Shuffle" - }, - "sidebar": { - "message": "Sidebar" - }, - "spacebar": { - "message": "Spacebar" - }, - "squaredUserImages": { - "message": "Squared user images" - }, - "static": { - "message": "Static" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscriptions": { - "message": "Subscriptions" - }, - "subtitles": { - "message": "Subtitles" - }, - "sunset": { - "message": "Sunset" - }, - "sunsetToSunrise": { - "message": "Sunset to sunrise" - }, - "systemPeferenceDark": { - "message": "System peference: dark" - }, - "systemPeferenceLight": { - "message": "System peference: light" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Text color" - }, - "themes": { - "message": "Themes" - }, - "thisWillRemoveAllCookies": { - "message": "This will remove all cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "This will remove all YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "This will reset all settings." - }, - "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" - }, - "thumbnails": { - "message": "Thumbnails" - }, - "timeFrom": { - "message": "Time from" - }, - "timeTo": { - "message": "Time to" - }, - "todayAt": { - "message": "Today at" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Trailer autoplay" - }, - "translations": { - "message": "Translations" - }, - "transparentBackground": { - "message": "Transparent background" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Try to reload the page" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "Up next autoplay" - }, - "use24HourFormat": { - "message": "Use 24-hour format" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" - }, - "videoFormats": { - "message": "Video formats" - }, - "videos": { - "message": "Videos" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Watch later" - }, - "watchTime": { - "message": "Watch time" - }, - "whenTabIsChanged": { - "message": "When tab is changed" - }, - "white": { - "message": "White" - }, - "yellow": { - "message": "Yellow" - }, - "youtubeHeaderLeft": { - "message": "YouTube Header (left)" - }, - "youtubeHeaderRight": { - "message": "YouTube Header (right)" - }, - "youtubeHomePage": { - "message": "YouTube home page" - }, - "youtubeLanguage": { - "message": "YouTube language" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limits video quality to 1080p for h.264 codec" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/es/messages.json b/3.120-pre/_locales/es/messages.json deleted file mode 100644 index c2ec8e487..000000000 --- a/3.120-pre/_locales/es/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "about": { - "message": "Acerca de" - }, - "accept": { - "message": "Aceptar" - }, - "activate": { - "message": "Activar" - }, - "activateCaptions": { - "message": "Activar subtítulos" - }, - "activated": { - "message": "Activado" - }, - "activatedFeatures": { - "message": "Características activadas" - }, - "activateFullscreen": { - "message": "Activar pantalla completa" - }, - "activeFeatures": { - "message": "Activar características" - }, - "addScrollToTop": { - "message": "Añadir «Volver arriba»" - }, - "ads": { - "message": "Ads" - }, - "all": { - "message": "Todo" - }, - "allow": { - "message": "Permitir" - }, - "allow60fps": { - "message": "Permitir 60fps" - }, - "alwaysActive": { - "message": "Siempre activo" - }, - "alwaysShowProgressBar": { - "message": "Siempre mostrar barra de progreso" - }, - "amber": { - "message": "Ámbar" - }, - "analyzer": { - "message": "Analizador" - }, - "appearance": { - "message": "Apariencia" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formatos de audio" - }, - "auto": { - "message": "Automático" - }, - "autoFullscreen": { - "message": "Pantalla completa automática" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausar al cambiar de pestaña" - }, - "autoplay": { - "message": "Reproducción automática" - }, - "backupAndReset": { - "message": "Backup & reset" - }, - "baseOnSystemColorScheme": { - "message": "Según tema del sistema" - }, - "belowPlayer": { - "message": "Debajo del reproductor" - }, - "black": { - "message": "Negro" - }, - "blacklist": { - "message": "Lista negra" - }, - "blockAll": { - "message": "Bloquear todo" - }, - "blue": { - "message": "Azul" - }, - "blueGray": { - "message": "Gris azulado" - }, - "bluelight": { - "message": "Luz azul" - }, - "brown": { - "message": "Marrón" - }, - "browser": { - "message": "Navegador" - }, - "browserVersion": { - "message": "Version del navegador" - }, - "bubbles": { - "message": "Burbujas" - }, - "bug": { - "message": "Error (Bug)" - }, - "buttons": { - "message": "Botones" - }, - "cancel": { - "message": "Cancelar" - }, - "categories": { - "message": "Categorías" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canales" - }, - "clipboard": { - "message": "Portapapeles" - }, - "codecH264": { - "message": "Códec h.264" - }, - "collapsed": { - "message": "Compacto" - }, - "collapseOfSubscriptionSections": { - "message": "Compactar sección de suscripciones" - }, - "comments": { - "message": "Comentarios" - }, - "confirmationBeforeClosing": { - "message": "Confirmar antes de cerrar" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Núcleos" - }, - "cropChapterTitles": { - "message": "Recortar título de capítulos" - }, - "customCss": { - "message": "CSS personalizado" - }, - "customJs": { - "message": "JS personalizado" - }, - "customMiniPlayer": { - "message": "Mini-Reproductor personalizado" - }, - "cyan": { - "message": "Cian" - }, - "dark": { - "message": "Oscuro" - }, - "darkTheme": { - "message": "Tema oscuro" - }, - "dateAndTime": { - "message": "Fecha y hora" - }, - "dawn": { - "message": "Amanecer" - }, - "decreasePlaybackSpeed": { - "message": "Disminuir velocidad de reproducción" - }, - "decreaseVolume": { - "message": "Bajar volumen" - }, - "deepOrange": { - "message": "Naranja profundo" - }, - "deepPurple": { - "message": "Violeta profundo" - }, - "defaultChannelTab": { - "message": "Pestaña del canal por defecto" - }, - "deleteYoutubeCookies": { - "message": "Borrar cookies de YouTube" - }, - "description": { - "message": "Descripción" - }, - "desert": { - "message": "Desierto" - }, - "details": { - "message": "Detalles" - }, - "developerOptions": { - "message": "Opciones de desarrollador" - }, - "device": { - "message": "Dispositivo" - }, - "dim": { - "message": "Oscuro" - }, - "disabled": { - "message": "Desactivado" - }, - "dislike": { - "message": "Dislike" - }, - "donate": { - "message": "Donar" - }, - "doNotChange": { - "message": "No cambiar" - }, - "draggable": { - "message": "Arrastrable" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Vacío" - }, - "enabled": { - "message": "Activado" - }, - "enabledForced": { - "message": "Activado (forzado)" - }, - "expanded": { - "message": "Expandido" - }, - "exportSettings": { - "message": "Exportar configuración" - }, - "extension": { - "message": "Extensión" - }, - "file": { - "message": "Archivo" - }, - "filters": { - "message": "Filtros" - }, - "fitToWindow": { - "message": "Ajustar a la ventana" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Fuente" - }, - "footer": { - "message": "Pie" - }, - "forcedPlaybackSpeed": { - "message": "Forzar velocidad de reproducción" - }, - "forcedTheaterMode": { - "message": "Forzar modo teatro" - }, - "forcedVolume": { - "message": "Forzar volumen" - }, - "foundABug": { - "message": "¿Encontraste un error (bug)?" - }, - "fullWindow": { - "message": "Pantalla completa" - }, - "general": { - "message": "General" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Ir a barra de búsqueda" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura HD" - }, - "hdThumbnails": { - "message": "Miniaturas HD" - }, - "header": { - "message": "Encabezado" - }, - "hidden": { - "message": "Oculto" - }, - "hiddenOnVideoPage": { - "message": "Oculto en la página de video" - }, - "hideAnimatedThumbnails": { - "message": "Ocultar miniaturas animadas" - }, - "hideAnnotations": { - "message": "Ocultar anotaciones" - }, - "hideCards": { - "message": "Ocultar tarjetas" - }, - "hideDetails": { - "message": "Ocultar detalles" - }, - "hideEndscreen": { - "message": "Ocultar pantalla final" - }, - "hideFeaturedContent": { - "message": "Ocultar contenido destacado" - }, - "hideFooter": { - "message": "Ocultar pie de página" - }, - "hideGradientBottom": { - "message": "Ocultar parte inferior degradada" - }, - "hidePlaylist": { - "message": "Ocultar playlist" - }, - "hideRightButtons": { - "message": "Ocultar botones de la derecha" - }, - "hideScrollForDetails": { - "message": "Ocultar «Desliza hacia abajo para ver más detalles»" - }, - "hideViewsCount": { - "message": "Ocultar contador de visitas" - }, - "history": { - "message": "Historial" - }, - "home": { - "message": "Inicio" - }, - "hover": { - "message": "Cursor sobre (hover)" - }, - "hoverOnVideoPage": { - "message": "Cursor sobre (hover) en página de video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Hace cuánto tiempo se subió el video" - }, - "icons": { - "message": "Iconos" - }, - "iconsOnly": { - "message": "Solo iconos" - }, - "importSettings": { - "message": "Importar configuración" - }, - "improvedtubeIconInBrowser": { - "message": "Icono ImprovedTube en el navegador" - }, - "improvedtubeIconOnYoutube": { - "message": "Icono ImprovedTube en YouTube" - }, - "improvedtubeLanguage": { - "message": "Idioma de ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Version de ImprovedTube" - }, - "improveLogo": { - "message": "Mejorar logo" - }, - "increasePlaybackSpeed": { - "message": "Aumentar velocidad de reproducción" - }, - "increaseVolume": { - "message": "Subir volumen" - }, - "indigo": { - "message": "Índigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Idiomas" - }, - "legacyYoutube": { - "message": " YouTube antiguo" - }, - "light": { - "message": "Claro" - }, - "lightBlue": { - "message": "Azul claro" - }, - "lightGreen": { - "message": "Verde claro" - }, - "like": { - "message": "Like" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Lima" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Chat en directo" - }, - "liveChatType": { - "message": "Tipo de chat en directo" - }, - "loudnessNormalization": { - "message": "Normalización de volumen" - }, - "markWatchedVideos": { - "message": "Marcar videos vistos" - }, - "mixer": { - "message": "Mezclador" - }, - "myColors": { - "message": "Mis colores" - }, - "name": { - "message": "Nombre" - }, - "nativeMiniPlayer": { - "message": "Mini-Reproductor nativo" - }, - "new": { - "message": "Nuevo" - }, - "nextVideo": { - "message": "Siguiente video" - }, - "night": { - "message": "Noche" - }, - "noActiveFeatures": { - "message": "Sin características activas" - }, - "none": { - "message": "Ninguno" - }, - "noOpenVideoTabs": { - "message": "Sin pestañas de video abiertas" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Viejo" - }, - "onAllVideos": { - "message": "En todos los videos" - }, - "onlyActiveOnYoutube": { - "message": "Solo activo en YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Solo una pestaña reproduciendo" - }, - "onSubscribedChannels": { - "message": "En canales suscritos" - }, - "orange": { - "message": "Naranja" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Otro" - }, - "permissions": { - "message": "Permisos" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Plano" - }, - "platform": { - "message": "Plataforma" - }, - "playbackSpeed": { - "message": "Velocidad de reproducción" - }, - "player": { - "message": "Reproductor" - }, - "playerColor": { - "message": "Color del reproductor" - }, - "playerSize": { - "message": "Tamaño del reproductor" - }, - "playlist": { - "message": "Lista de reproducción" - }, - "playlists": { - "message": "Listas de reproducción" - }, - "playPause": { - "message": "Reproducir / pausar" - }, - "popupPlayer": { - "message": "Reproductor emergente" - }, - "position": { - "message": "Posición" - }, - "pressAnyKeyOrScroll": { - "message": "Aprieta una tecla o haz scroll" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Aprieta una tecla o usa la rueda del ratón" - }, - "previousVideo": { - "message": "Reproducir video anterior" - }, - "primaryColor": { - "message": "Color Primario" - }, - "purple": { - "message": "Morado" - }, - "quality": { - "message": "Calidad" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Califíquenos" - }, - "red": { - "message": "Rojo" - }, - "redDislikeButton": { - "message": "Mostrar el botón de dislike de color rojo" - }, - "relatedVideos": { - "message": "Vídeos relacionados" - }, - "removeRelatedSearchResults": { - "message": "Quitar resultados relacionados" - }, - "repeat": { - "message": "Repetir" - }, - "reset": { - "message": "Reiniciar" - }, - "resetAllSettings": { - "message": "Restablecer todos los ajustes" - }, - "resetAllShortcuts": { - "message": "Restablecer todos los atajos" - }, - "reverse": { - "message": "Revertir" - }, - "rotate": { - "message": "Rotar" - }, - "save": { - "message": "Guardar" - }, - "saveAs": { - "message": "Guardar como" - }, - "schedule": { - "message": "Programar" - }, - "screen": { - "message": "Pantalla" - }, - "screenshot": { - "message": "Captura de pantalla" - }, - "search": { - "message": "Búsqueda" - }, - "searchBarOnly": { - "message": "Solo barra de búsqueda" - }, - "seekBackward10Seconds": { - "message": "Retroceder 10 segundos" - }, - "seekForward10Seconds": { - "message": "Adelantar 10 segundos" - }, - "settings": { - "message": "Ajustes" - }, - "settingsSuccessfullyImported": { - "message": "Ajustes importados correctamente" - }, - "shortcuts": { - "message": "Atajos" - }, - "showCardsOnMouseHover": { - "message": "Mostrar tarjetas al pasar el ratón" - }, - "showChannelVideosCount": { - "message": "Mostrar recuento de videos del canal" - }, - "shuffle": { - "message": "Aleatorio" - }, - "sidebar": { - "message": "Barra lateral" - }, - "spacebar": { - "message": "Espacio" - }, - "squaredUserImages": { - "message": "Fotos de perfil cuadradas" - }, - "static": { - "message": "Estático" - }, - "statsForNerds": { - "message": "Mostrar estadísticas para Nerds" - }, - "step": { - "message": "Paso" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Estilo" - }, - "styles": { - "message": "Estilos" - }, - "subscriptions": { - "message": "Suscripciones" - }, - "subtitles": { - "message": "Subtítulos" - }, - "sunset": { - "message": "Atardecer" - }, - "sunsetToSunrise": { - "message": "De atardecer a amanecer" - }, - "systemPeferenceDark": { - "message": "Preferencia del sistema: Oscuro" - }, - "systemPeferenceLight": { - "message": "Preferencia del sistema: Claro" - }, - "teal": { - "message": "Verde azulado" - }, - "textColor": { - "message": "Color del texto" - }, - "themes": { - "message": "Temas" - }, - "thisWillRemoveAllCookies": { - "message": "Esto borrará todas las cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Esto borrará todas las cookies de YouTube" - }, - "thisWillResetAllSettings": { - "message": "Esto restablecerá todos los ajustes" - }, - "thisWillResetAllShortcuts": { - "message": "Esto restablecerá todos los atajos" - }, - "thumbnails": { - "message": "Miniaturas" - }, - "timeFrom": { - "message": "Desde" - }, - "timeTo": { - "message": "Hasta" - }, - "todayAt": { - "message": "Hoy a las" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Reproducción automática de trailer" - }, - "translations": { - "message": "Traducciones" - }, - "transparentBackground": { - "message": "Fondo transparente" - }, - "trending": { - "message": "Tendencias" - }, - "tryToReloadThePage": { - "message": "Trata de recargar la página" - }, - "type": { - "message": "Tipo" - }, - "upNextAutoplay": { - "message": "Siguiente reproducción automática" - }, - "use24HourFormat": { - "message": "Usar formato 24 horas" - }, - "version": { - "message": "Versión" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La descripción del video se expandirá para obtener el nombre de la categoría." - }, - "videoFormats": { - "message": "Formatos de video" - }, - "videos": { - "message": "Videos" - }, - "volume": { - "message": "Volumen" - }, - "watchLater": { - "message": "Ver más tarde" - }, - "watchTime": { - "message": "Visualizaciones" - }, - "whenTabIsChanged": { - "message": "Al cambiar de pestaña" - }, - "white": { - "message": "Blanco" - }, - "yellow": { - "message": "Amarillo" - }, - "youtubeHeaderLeft": { - "message": "Encabezado YouTube (izq)" - }, - "youtubeHeaderRight": { - "message": "Encabezado YouTube (der)" - }, - "youtubeHomePage": { - "message": "Página de inicio de YouTube" - }, - "youtubeLanguage": { - "message": "Idioma de YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limita calidad de video a 1080p para el codec h.264" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/fr/messages.json b/3.120-pre/_locales/fr/messages.json deleted file mode 100644 index 76019e5f4..000000000 --- a/3.120-pre/_locales/fr/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "about": { - "message": "À propos" - }, - "accept": { - "message": "Accepter" - }, - "activate": { - "message": "Activer" - }, - "activateCaptions": { - "message": "Activer les sous-titres" - }, - "activated": { - "message": "Activé" - }, - "activatedFeatures": { - "message": "Fonctionnalités activées" - }, - "activateFullscreen": { - "message": "Activer le plein écran" - }, - "activeFeatures": { - "message": "Fonctionnalités actives" - }, - "addScrollToTop": { - "message": "Ajouter « Remonter en haut »" - }, - "ads": { - "message": "Publicités" - }, - "all": { - "message": "Voir tout" - }, - "allow": { - "message": "Permettre" - }, - "allow60fps": { - "message": "Jouer à 60 fps" - }, - "alwaysActive": { - "message": "Toujours activé" - }, - "alwaysShowProgressBar": { - "message": "Toujours afficher la barre de progression" - }, - "amber": { - "message": "Ambre" - }, - "analyzer": { - "message": "Analyser" - }, - "appearance": { - "message": "Apparence" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formats de fichier audio" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Plein écran automatique" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pause automatique lors d'un changement d'onglet" - }, - "autoplay": { - "message": "Lecture automatique" - }, - "backupAndReset": { - "message": "Sauvegarde et réinitialisation" - }, - "baseOnSystemColorScheme": { - "message": "Selon les paramètres du système" - }, - "belowPlayer": { - "message": "Sous le player" - }, - "black": { - "message": "Noir" - }, - "blacklist": { - "message": "Liste noire" - }, - "blockAll": { - "message": "Tout bloquer" - }, - "blue": { - "message": "Bleu" - }, - "blueGray": { - "message": "Gris-bleu" - }, - "bluelight": { - "message": "Bleu pâle" - }, - "brown": { - "message": "Brun" - }, - "browser": { - "message": "Navigateur web" - }, - "browserVersion": { - "message": "Version du navigateur web" - }, - "bubbles": { - "message": "Bulles" - }, - "bug": { - "message": "Bogue" - }, - "buttons": { - "message": "Boutons" - }, - "cancel": { - "message": "Annuler" - }, - "categories": { - "message": "Catégories" - }, - "channel": { - "message": "Chaîne" - }, - "channels": { - "message": "Chaînes" - }, - "clipboard": { - "message": "Presse-papiers" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Réduire" - }, - "collapseOfSubscriptionSections": { - "message": "Réduire la section des abonnements" - }, - "comments": { - "message": "Commentaires" - }, - "confirmationBeforeClosing": { - "message": "Confirmation avant la fermeture" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Noyaux" - }, - "cropChapterTitles": { - "message": "Couper les titres des chapitres" - }, - "customCss": { - "message": "CSS customisé" - }, - "customJs": { - "message": "JS customisé" - }, - "customMiniPlayer": { - "message": "Mini-lecteur personnalisé" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Sombre" - }, - "darkTheme": { - "message": "Thème sombre" - }, - "dateAndTime": { - "message": "Date et temps" - }, - "dawn": { - "message": "Aube" - }, - "decreasePlaybackSpeed": { - "message": "Réduire la vitesse de lecture" - }, - "decreaseVolume": { - "message": "Réduire le volume" - }, - "deepOrange": { - "message": "Orange foncé" - }, - "deepPurple": { - "message": "Violet foncé" - }, - "defaultChannelTab": { - "message": "Onglet par défaut d'une chaîne" - }, - "deleteYoutubeCookies": { - "message": "Supprimer les cookies YouTube" - }, - "description": { - "message": "Description" - }, - "desert": { - "message": "Desert" - }, - "details": { - "message": "Détails" - }, - "developerOptions": { - "message": "Options de développeur" - }, - "device": { - "message": "Appareil" - }, - "dim": { - "message": "Assombrir" - }, - "disabled": { - "message": "Désactivé" - }, - "dislike": { - "message": "Je n'aime pas" - }, - "donate": { - "message": "Donner" - }, - "doNotChange": { - "message": "Ne pas changer" - }, - "draggable": { - "message": "Draggable" - }, - "email": { - "message": "Courriel" - }, - "empty": { - "message": "Vide" - }, - "enabled": { - "message": "Activé" - }, - "enabledForced": { - "message": "Activé (forcé)" - }, - "expanded": { - "message": "Étendu" - }, - "exportSettings": { - "message": "Exporter les réglages" - }, - "extension": { - "message": "Extension" - }, - "file": { - "message": "Fichier" - }, - "filters": { - "message": "Filtres" - }, - "fitToWindow": { - "message": "Ajuster à la fenêtre" - }, - "flash": { - "message": "Clignoter" - }, - "font": { - "message": "Police" - }, - "footer": { - "message": "Bas de page" - }, - "forcedPlaybackSpeed": { - "message": "Vitesse de lecture forcée" - }, - "forcedTheaterMode": { - "message": "Forcer le mode théâtre" - }, - "forcedVolume": { - "message": "Forcer le volume" - }, - "foundABug": { - "message": "Un bogue?" - }, - "fullWindow": { - "message": "Fenêtre pleine" - }, - "general": { - "message": "Général" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Aller à la barre de recherche" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Vert" - }, - "hdThumbnail": { - "message": "Vignette HD" - }, - "hdThumbnails": { - "message": "Vignettes HD" - }, - "header": { - "message": "Tête de page" - }, - "hidden": { - "message": "Caché" - }, - "hiddenOnVideoPage": { - "message": "Caché sur la page de la vidéo" - }, - "hideAnimatedThumbnails": { - "message": "Vignettes sans animation" - }, - "hideAnnotations": { - "message": "Cacher les annotations" - }, - "hideCards": { - "message": "Cacher les cartes" - }, - "hideDetails": { - "message": "Cacher les détails" - }, - "hideEndscreen": { - "message": "Cacher l'écran de fin" - }, - "hideFeaturedContent": { - "message": "Cacher le contenu recommandé" - }, - "hideFooter": { - "message": "Cacher le pied de page" - }, - "hideGradientBottom": { - "message": "Masquer le dégradé du bas" - }, - "hidePlaylist": { - "message": "Cacher la liste de lecture" - }, - "hideRightButtons": { - "message": "Cacher les boutons à droite" - }, - "hideScrollForDetails": { - "message": "Cacher « Faire défiler pour les détails »" - }, - "hideViewsCount": { - "message": "Voir le compte des vues" - }, - "history": { - "message": "Historique" - }, - "home": { - "message": "Accueil" - }, - "hover": { - "message": "Survoler" - }, - "hoverOnVideoPage": { - "message": "Survoler la page de la vidéo" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Depuis combien de temps la vidéo a été téléversé?" - }, - "icons": { - "message": "Icônes" - }, - "iconsOnly": { - "message": "Uniquement les icônes" - }, - "importSettings": { - "message": "Importer les réglages" - }, - "improvedtubeIconInBrowser": { - "message": "Afficher l'icône ImprovedTube dans le navigateur web" - }, - "improvedtubeIconOnYoutube": { - "message": "Afficher l'icône ImprovedTube sur YouTube" - }, - "improvedtubeLanguage": { - "message": "Langue d'ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Version d'ImprovedTube" - }, - "improveLogo": { - "message": "Améliorer le logo" - }, - "increasePlaybackSpeed": { - "message": "Accélérer la vitesse de lecture" - }, - "increaseVolume": { - "message": "Augmenter le volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Objets" - }, - "languages": { - "message": "Langues" - }, - "legacyYoutube": { - "message": "Ancienne version de Youtube" - }, - "light": { - "message": "Clair" - }, - "lightBlue": { - "message": "Bleu clair" - }, - "lightGreen": { - "message": "Vert clair" - }, - "like": { - "message": "J'aime" - }, - "likes": { - "message": "J'aime" - }, - "lime": { - "message": "Citron vert" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Chat en direct" - }, - "liveChatType": { - "message": "Type de chat en direct" - }, - "loudnessNormalization": { - "message": "Normalisation de l'intensité sonore" - }, - "markWatchedVideos": { - "message": "Marquer les vidéos déjà visionnées" - }, - "mixer": { - "message": "Mélangeur de volume" - }, - "myColors": { - "message": "Mes couleurs" - }, - "name": { - "message": "Nom" - }, - "nativeMiniPlayer": { - "message": "Mini-lecteur natif" - }, - "new": { - "message": "Nouveau" - }, - "nextVideo": { - "message": "Prochaine vidéo" - }, - "night": { - "message": "Nuit" - }, - "noActiveFeatures": { - "message": "Pas de fonctionalité active" - }, - "none": { - "message": "Aucun" - }, - "noOpenVideoTabs": { - "message": "Aucun onglet de vidéo ouvert" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Vieux" - }, - "onAllVideos": { - "message": "Pour toutes les vidéos" - }, - "onlyActiveOnYoutube": { - "message": "Uniquement actif sur YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Une seule instance à la fois" - }, - "onSubscribedChannels": { - "message": "Sur les chaînes auxquelles je suis abonné" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Autres" - }, - "permissions": { - "message": "Permissions" - }, - "pictureInPicture": { - "message": "Image dans l'image" - }, - "pink": { - "message": "Rose" - }, - "plain": { - "message": "Ordinaire" - }, - "platform": { - "message": "Platforme" - }, - "playbackSpeed": { - "message": "Vitesse de lecture" - }, - "player": { - "message": "Lecteur" - }, - "playerColor": { - "message": "Couleur du lecteur" - }, - "playerSize": { - "message": "Taille du lecteur" - }, - "playlist": { - "message": "Liste de lecture" - }, - "playlists": { - "message": "Listes de lecture" - }, - "playPause": { - "message": "Jouer / Pause" - }, - "popupPlayer": { - "message": "Détacher le lecteur" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." - }, - "previousVideo": { - "message": "Vidéo précédente" - }, - "primaryColor": { - "message": "Couleur primaire" - }, - "purple": { - "message": "Violet" - }, - "quality": { - "message": "Qualité" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Nous évaluer" - }, - "red": { - "message": "Rouge" - }, - "redDislikeButton": { - "message": "Afficher la couleur rouge du bouton Je n'aime pas" - }, - "relatedVideos": { - "message": "Vidéos associés" - }, - "removeRelatedSearchResults": { - "message": "Supprimer les résultats de recherche associés" - }, - "repeat": { - "message": "Lire en boucle" - }, - "reset": { - "message": "Réintialiser" - }, - "resetAllSettings": { - "message": "Réinitialiser les réglages" - }, - "resetAllShortcuts": { - "message": "Réinitialiser les raccourcis" - }, - "reverse": { - "message": "Inverser" - }, - "rotate": { - "message": "Faire pivoter la vidéo" - }, - "save": { - "message": "Sauvegarder" - }, - "saveAs": { - "message": "Sauvegarder sous" - }, - "schedule": { - "message": "Planifier" - }, - "screen": { - "message": "Écran" - }, - "screenshot": { - "message": "Capture d'écran" - }, - "search": { - "message": "Rechercher" - }, - "searchBarOnly": { - "message": "Uniquement la barre de recherche" - }, - "seekBackward10Seconds": { - "message": "Reculer de 10 secondes" - }, - "seekForward10Seconds": { - "message": "Avancer de 10 secondes" - }, - "settings": { - "message": "Réglages" - }, - "settingsSuccessfullyImported": { - "message": "Importation des réglages réussie" - }, - "shortcuts": { - "message": "Raccourcis" - }, - "showCardsOnMouseHover": { - "message": "Afficher les cartes au survol de la souris" - }, - "showChannelVideosCount": { - "message": "Afficher le nombre de vidéos de la chaîne" - }, - "shuffle": { - "message": "Aléatoire" - }, - "sidebar": { - "message": "Barre latérale" - }, - "spacebar": { - "message": "Barre d'espace" - }, - "squaredUserImages": { - "message": "Images des utilisateurs carrées" - }, - "static": { - "message": "Statique" - }, - "statsForNerds": { - "message": "Statistiques pour nerd" - }, - "step": { - "message": "Étape" - }, - "stop": { - "message": "Arrêter" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscriptions": { - "message": "Abonnements" - }, - "subtitles": { - "message": "Activer les sous-titres" - }, - "sunset": { - "message": "Coucher de soleil" - }, - "sunsetToSunrise": { - "message": "Du coucher au lever du Soleil" - }, - "systemPeferenceDark": { - "message": "Préférence système : sombre" - }, - "systemPeferenceLight": { - "message": "Préférence système : clair" - }, - "teal": { - "message": "Sarcelle" - }, - "textColor": { - "message": "Couleur du texte" - }, - "themes": { - "message": "Thèmes" - }, - "thisWillRemoveAllCookies": { - "message": "Supprimer tous les cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Supprimer tous les cookies Youtube." - }, - "thisWillResetAllSettings": { - "message": "Réintialiser les réglages." - }, - "thisWillResetAllShortcuts": { - "message": "Réintialiser les raccourcis." - }, - "thumbnails": { - "message": "Vignettes" - }, - "timeFrom": { - "message": "Temps de" - }, - "timeTo": { - "message": "Temps au" - }, - "todayAt": { - "message": "Aujourd'hui à" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Démarrage automatique des annonces" - }, - "translations": { - "message": "Traductions" - }, - "transparentBackground": { - "message": "Arrière-plan transparent" - }, - "trending": { - "message": "Tendances" - }, - "tryToReloadThePage": { - "message": "Essayez de rafraîchir la page" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "Prochaine lecture automatique" - }, - "use24HourFormat": { - "message": "Utiliser le format 24 h" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Vidéo" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La description de la vidéo sera développée pour obtenir le nom de la catégorie" - }, - "videoFormats": { - "message": "Formats de vidéo" - }, - "videos": { - "message": "Videos" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "À regarder plus tard" - }, - "watchTime": { - "message": "Temps de visionnage" - }, - "whenTabIsChanged": { - "message": "Quand l'onglet change" - }, - "white": { - "message": "Blanc" - }, - "yellow": { - "message": "Jaune" - }, - "youtubeHeaderLeft": { - "message": "En-tête YouTube (à gauche)" - }, - "youtubeHeaderRight": { - "message": "En-tête YouTube (à droite)" - }, - "youtubeHomePage": { - "message": "Page d'accueil de YouTube" - }, - "youtubeLanguage": { - "message": "Langue de YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limite la qualité vidéo à 1080p pour le codec h.264" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/hin/messages.json b/3.120-pre/_locales/hin/messages.json deleted file mode 100644 index 633e8f335..000000000 --- a/3.120-pre/_locales/hin/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "about": { - "message": "के बारे में" - }, - "accept": { - "message": "स्वीकार" - }, - "activate": { - "message": "सक्रिय" - }, - "activateCaptions": { - "message": "कैप्शन सक्रिय करें" - }, - "activated": { - "message": "सक्रिय" - }, - "activatedFeatures": { - "message": "सक्रिय विशेषताएं" - }, - "activateFullscreen": { - "message": "पूर्णस्क्रीन सक्रिय करें" - }, - "activeFeatures": { - "message": "सक्रिय विशेषताएं" - }, - "addScrollToTop": { - "message": "«शीर्ष पर स्क्रॉल करें» जोड़ें" - }, - "ads": { - "message": "विज्ञापन" - }, - "all": { - "message": "सब" - }, - "allow": { - "message": "अनुमति" - }, - "allow60fps": { - "message": "60fps की अनुमति दें" - }, - "alwaysActive": { - "message": "हमेशा सक्रिय" - }, - "alwaysShowProgressBar": { - "message": "हमेशा प्रगति बार दिखाएं" - }, - "amber": { - "message": "अंबर" - }, - "analyzer": { - "message": "विश्लेषक" - }, - "appearance": { - "message": "दिखावट" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "ऑडियो" - }, - "audioFormats": { - "message": "ऑडियो प्रारूप" - }, - "auto": { - "message": "खुद ब खुद" - }, - "autoFullscreen": { - "message": "स्वत: पूर्ण स्क्रीन" - }, - "autopauseWhenSwitchingTabs": { - "message": "टैब स्विच करते समय ऑटोपॉज" - }, - "autoplay": { - "message": "स्वत: प्ले" - }, - "backupAndReset": { - "message": "बैकअप पुनर्स्थापित करना" - }, - "baseOnSystemColorScheme": { - "message": "सिस्टम रंग योजना के आधार पर" - }, - "belowPlayer": { - "message": "प्लेयर के नीचे" - }, - "black": { - "message": "काला" - }, - "blacklist": { - "message": "काला सूची में डालना" - }, - "blockAll": { - "message": "सभी को अवरोधित करें" - }, - "blue": { - "message": "नीला" - }, - "blueGray": { - "message": "नीला स्लेटी" - }, - "bluelight": { - "message": "नीली बत्ती" - }, - "brown": { - "message": "भूरा" - }, - "browser": { - "message": "ब्राउज़र" - }, - "browserVersion": { - "message": "ब्राउज़र संस्करण" - }, - "bubbles": { - "message": "बुलबुले" - }, - "bug": { - "message": "बग" - }, - "buttons": { - "message": "बटन" - }, - "cancel": { - "message": "रद्द" - }, - "categories": { - "message": "श्रेणियाँ" - }, - "channel": { - "message": "चैनल" - }, - "channels": { - "message": "चैनल" - }, - "clipboard": { - "message": "क्लिपबोर्ड" - }, - "codecH264": { - "message": "कोडक ज 64२६४ 64" - }, - "collapsed": { - "message": "संक्षिप्त" - }, - "collapseOfSubscriptionSections": { - "message": "सदस्यता वर्गों का पतन" - }, - "comments": { - "message": "टिप्पणियाँ" - }, - "confirmationBeforeClosing": { - "message": "बंद करने से पहले पुष्टि" - }, - "cookies": { - "message": "कुकीज़" - }, - "cores": { - "message": "कोर" - }, - "cropChapterTitles": { - "message": "फसल अध्याय के शीर्षक" - }, - "customCss": { - "message": "कस्टम सीएसएस" - }, - "customJs": { - "message": "कस्टम जेएस" - }, - "customMiniPlayer": { - "message": "कस्टम मिनी प्लेयर" - }, - "cyan": { - "message": "सियान" - }, - "dark": { - "message": "अंधेरा" - }, - "darkTheme": { - "message": "डार्क थीम" - }, - "dateAndTime": { - "message": "दिनांक और समय" - }, - "dawn": { - "message": "भोर" - }, - "decreasePlaybackSpeed": { - "message": "पार्श्व गति में कमी" - }, - "decreaseVolume": { - "message": "ध्वनि कम" - }, - "deepOrange": { - "message": "गहरा नारंगी" - }, - "deepPurple": { - "message": "गहरा बैंगनी" - }, - "defaultChannelTab": { - "message": "डिफ़ॉल्ट चैनल टैब" - }, - "deleteYoutubeCookies": { - "message": "यूट्यूब कुकीज़ हटाएं" - }, - "description": { - "message": "विवरण" - }, - "desert": { - "message": "रेगिस्तान" - }, - "details": { - "message": "विवरण" - }, - "developerOptions": { - "message": "डेवलपर विकल्प" - }, - "device": { - "message": "युक्ति" - }, - "dim": { - "message": "मंद" - }, - "disabled": { - "message": "विकलांग" - }, - "dislike": { - "message": "नापसन्द" - }, - "donate": { - "message": "दान" - }, - "doNotChange": { - "message": "मत बदलो" - }, - "draggable": { - "message": "खींचने योग्य" - }, - "email": { - "message": "ईमेल" - }, - "empty": { - "message": "खाली" - }, - "enabled": { - "message": "सक्रिय" - }, - "enabledForced": { - "message": "सक्रिय(मजबूर)" - }, - "expanded": { - "message": "विस्तारित" - }, - "exportSettings": { - "message": "निर्यात सेटिंग्स" - }, - "extension": { - "message": "एक्सटेंशन" - }, - "file": { - "message": "फ़ाइल" - }, - "filters": { - "message": "फिल्टर" - }, - "fitToWindow": { - "message": "स्क्रीन फिट" - }, - "flash": { - "message": "चमक" - }, - "font": { - "message": "फ़ॉन्ट" - }, - "footer": { - "message": "पाद लेख" - }, - "forcedPlaybackSpeed": { - "message": "जबरन पार्श्व गति" - }, - "forcedTheaterMode": { - "message": "जबरन थिएटर मोड" - }, - "forcedVolume": { - "message": "जबरन ध्वनि" - }, - "foundABug": { - "message": "बग मिला?" - }, - "fullWindow": { - "message": "पूर्ण स्क्रीन" - }, - "general": { - "message": "सामान्य" - }, - "github": { - "message": "गिटहब" - }, - "goToSearchBox": { - "message": "सर्च बॉक्स पर जाएं" - }, - "gpu": { - "message": "जी पी यू" - }, - "green": { - "message": "हरा" - }, - "hdThumbnail": { - "message": "एच डी थंबनेल" - }, - "hdThumbnails": { - "message": "एच डी थंबनेल" - }, - "header": { - "message": "हैडर" - }, - "hidden": { - "message": "छिपा हुआ" - }, - "hiddenOnVideoPage": { - "message": "वीडियो पेज पर छिपा हुआ" - }, - "hideAnimatedThumbnails": { - "message": "वीडियो पेज पर छिपा हुआ" - }, - "hideAnnotations": { - "message": "एनोटेशन छुपाएं" - }, - "hideCards": { - "message": "पत्ते छिपाओ" - }, - "hideDetails": { - "message": "जानकारी छिपाएँ" - }, - "hideEndscreen": { - "message": "अंत स्क्रीन छिपाएँ" - }, - "hideFeaturedContent": { - "message": "विशेषताओं को छिपाएँ" - }, - "hideFooter": { - "message": "पाद छिपाएँ" - }, - "hideGradientBottom": { - "message": "ग्रेडिएंट बॉटम छुपाएं" - }, - "hidePlaylist": { - "message": "प्लेलिस्ट छिपाएं" - }, - "hideRightButtons": { - "message": "दाएं बटन छुपाएं" - }, - "hideScrollForDetails": { - "message": "छिपाएँ «विवरण के लिए स्क्रॉल»" - }, - "hideViewsCount": { - "message": "व्यू काउंट छिपाएं" - }, - "history": { - "message": "इतिहास" - }, - "home": { - "message": "घर" - }, - "hover": { - "message": "होवर" - }, - "hoverOnVideoPage": { - "message": "वीडियो पेज पर होवर" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "वीडियो कितनी देर पहले अपलोड किया गया था" - }, - "icons": { - "message": "प्रतीक" - }, - "iconsOnly": { - "message": "केवल प्रतीक" - }, - "importSettings": { - "message": "सेटिंग आयात करना" - }, - "improvedtubeIconInBrowser": { - "message": "ब्राउज़र में बेहतर आइकन" - }, - "improvedtubeIconOnYoutube": { - "message": "यूट्यूब पर बेहतर आइकन" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube भाषा" - }, - "improvedtubeVersion": { - "message": "ImprovedTube संस्करण" - }, - "improveLogo": { - "message": "लोगो सुधारो" - }, - "increasePlaybackSpeed": { - "message": "प्लेबैक स्पीड बढ़ाएं" - }, - "increaseVolume": { - "message": "ध्वनि बढ़ाएं" - }, - "indigo": { - "message": "नील" - }, - "items": { - "message": "आइटम" - }, - "languages": { - "message": "बोली" - }, - "legacyYoutube": { - "message": "विरासत यूट्यूब" - }, - "light": { - "message": "हलका" - }, - "lightBlue": { - "message": "हल्का नीला" - }, - "lightGreen": { - "message": "हल्का हरा" - }, - "like": { - "message": "पसंद" - }, - "likes": { - "message": "को यह पसंद है" - }, - "lime": { - "message": "पीला हरा रंग" - }, - "list": { - "message": "सूची" - }, - "liveChat": { - "message": "सीधी बातचीत" - }, - "liveChatType": { - "message": "लाइव चैट प्रकार" - }, - "loudnessNormalization": { - "message": "जोर से सामान्य होना" - }, - "markWatchedVideos": { - "message": "चिह्नित वीडियो देखे गए" - }, - "mixer": { - "message": "मिक्सर" - }, - "myColors": { - "message": "मेरे रंग" - }, - "name": { - "message": "नाम" - }, - "nativeMiniPlayer": { - "message": "मूल निवासी मिनी प्लेयर" - }, - "new": { - "message": "नया" - }, - "nextVideo": { - "message": "अगला वीडियो" - }, - "night": { - "message": "रात" - }, - "noActiveFeatures": { - "message": "कोई सक्रिय सुविधाएँ नहीं" - }, - "none": { - "message": "कोई नहीं" - }, - "noOpenVideoTabs": { - "message": "कोई खुला वीडियो टैब नहीं" - }, - "normal": { - "message": "साधारण" - }, - "old": { - "message": "पुराना" - }, - "onAllVideos": { - "message": "सभी वीडियो पर" - }, - "onlyActiveOnYoutube": { - "message": "केवल यूट्यूब पर सक्रिय है" - }, - "onlyOnePlayerInstancePlaying": { - "message": "केवल एक प्लेयर का चल रहा है" - }, - "onSubscribedChannels": { - "message": "सदस्यता प्राप्त चैनलों पर" - }, - "orange": { - "message": "नारंगी रंग" - }, - "os": { - "message": "ओ एस" - }, - "other": { - "message": "अन्य" - }, - "permissions": { - "message": "अनुमतियां" - }, - "pictureInPicture": { - "message": "चित्र में चित्र" - }, - "pink": { - "message": "गुलाबी" - }, - "plain": { - "message": "सादा" - }, - "platform": { - "message": "मंच" - }, - "playbackSpeed": { - "message": "प्लेबैक स्पीड" - }, - "player": { - "message": "प्लेयर" - }, - "playerColor": { - "message": "प्लेयर रंग" - }, - "playerSize": { - "message": "प्लेयर आकार" - }, - "playlist": { - "message": "प्लेलिस्ट" - }, - "playlists": { - "message": "प्लेलिस्ट" - }, - "playPause": { - "message": "प्ले / ठहराव" - }, - "popupPlayer": { - "message": "पॉप अप प्लेयर" - }, - "position": { - "message": "स्थान" - }, - "pressAnyKeyOrScroll": { - "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" - }, - "previousVideo": { - "message": "पिछला वीडियो" - }, - "primaryColor": { - "message": "प्राथमिक रंग" - }, - "purple": { - "message": "बैंगनी" - }, - "quality": { - "message": "गुणवत्ता" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "हमें रेटिंग दें" - }, - "red": { - "message": "लाल" - }, - "redDislikeButton": { - "message": "नापसंद बटन लाल रंग दिखाएं" - }, - "relatedVideos": { - "message": "संबंधित वीडियो" - }, - "removeRelatedSearchResults": { - "message": "संबंधित खोज परिणाम निकालें" - }, - "repeat": { - "message": "दोहराना" - }, - "reset": { - "message": "रीसेट" - }, - "resetAllSettings": { - "message": "सभी सेटिंग्स को रीसेट" - }, - "resetAllShortcuts": { - "message": "सभी शॉर्टकट रीसेट करें" - }, - "reverse": { - "message": "उलटना" - }, - "rotate": { - "message": "घुमाएँ" - }, - "save": { - "message": "सहेजें" - }, - "saveAs": { - "message": "के रूप रक्षित करें" - }, - "schedule": { - "message": "अनुसूची" - }, - "screen": { - "message": "स्क्रीन" - }, - "screenshot": { - "message": "स्क्रीनशॉट" - }, - "search": { - "message": "खोज" - }, - "searchBarOnly": { - "message": "केवल बार खोजें" - }, - "seekBackward10Seconds": { - "message": "पिछड़े 10 सेकंड की तलाश करें" - }, - "seekForward10Seconds": { - "message": "पिछड़े 10 सेकंड की तलाश करें" - }, - "settings": { - "message": "समायोजन" - }, - "settingsSuccessfullyImported": { - "message": "सेटिंग्स सफलतापूर्वक आयात की गईं" - }, - "shortcuts": { - "message": "शॉर्टकट" - }, - "showCardsOnMouseHover": { - "message": "माउस होवर पर कार्ड दिखाएं" - }, - "showChannelVideosCount": { - "message": "चैनल वीडियो काउंट दिखाएं" - }, - "shuffle": { - "message": "मिश्रण" - }, - "sidebar": { - "message": "साइडबार" - }, - "spacebar": { - "message": "स्पेस बार" - }, - "squaredUserImages": { - "message": "चुकता उपयोगकर्ता चित्र" - }, - "static": { - "message": "स्थिर" - }, - "statsForNerds": { - "message": "डेवलपर के लिए आँकड़े दिखाएँ" - }, - "step": { - "message": "चरण" - }, - "stop": { - "message": "रुकें" - }, - "style": { - "message": "अंदाज" - }, - "styles": { - "message": "शैलियाँ" - }, - "subscriptions": { - "message": "सदस्यता" - }, - "subtitles": { - "message": "उपशीर्षक" - }, - "sunset": { - "message": "सूर्यास्त" - }, - "sunsetToSunrise": { - "message": "सूर्योदय से सूर्यास्त" - }, - "systemPeferenceDark": { - "message": "सिस्टम प्राथमिकताएं: अंधेरा" - }, - "systemPeferenceLight": { - "message": "सिस्टम वरीयताएँ: प्रकाश" - }, - "teal": { - "message": "टील रंग" - }, - "textColor": { - "message": "लिखावट का रंग" - }, - "themes": { - "message": "विषय-वस्तु" - }, - "thisWillRemoveAllCookies": { - "message": "यह सभी कुकीज़ को हटा देगा।" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "यह सभी यूट्यूब कुकीज़ को हटा देगा।" - }, - "thisWillResetAllSettings": { - "message": "यह सभी सेटिंग्स को रीसेट कर देगा।" - }, - "thisWillResetAllShortcuts": { - "message": "यह सभी शॉर्टकट रीसेट कर देगा।" - }, - "thumbnails": { - "message": "थंबनेल" - }, - "timeFrom": { - "message": "से समय" - }, - "timeTo": { - "message": "समय पर" - }, - "todayAt": { - "message": "आज इस समय" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "शीर्ष चैट" - }, - "trailerAutoplay": { - "message": "ट्रेलर ऑटोप्ले" - }, - "translations": { - "message": "अनुवाद" - }, - "transparentBackground": { - "message": "पारदर्शी पृष्ठभूमि" - }, - "trending": { - "message": "रुझान" - }, - "tryToReloadThePage": { - "message": "पृष्ठ को पुनः लोड करने का प्रयास करें" - }, - "type": { - "message": "टाइप" - }, - "upNextAutoplay": { - "message": "अगले ऑटोप्ले पर" - }, - "use24HourFormat": { - "message": "24-घंटे के प्रारूप का उपयोग करें" - }, - "version": { - "message": "संस्करण" - }, - "video": { - "message": "वीडियो" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "श्रेणी का नाम प्राप्त करने के लिए वीडियो विवरण का विस्तार किया जाएगा।" - }, - "videoFormats": { - "message": "वीडियो प्रारूप" - }, - "videos": { - "message": "वीडियो" - }, - "volume": { - "message": "ध्वनि" - }, - "watchLater": { - "message": "बाद में देखना" - }, - "watchTime": { - "message": "समय देखें" - }, - "whenTabIsChanged": { - "message": "जब टैब बदला जाता है" - }, - "white": { - "message": "सफेद" - }, - "yellow": { - "message": "पीला" - }, - "youtubeHeaderLeft": { - "message": "यूट्यूब हैडर (बाएं)" - }, - "youtubeHeaderRight": { - "message": "यूट्यूब हैडर (दाएं)" - }, - "youtubeHomePage": { - "message": "यूट्यूब होम पेज" - }, - "youtubeLanguage": { - "message": "यूट्यूब भाषा" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "यूट्यूब h.264 कोडेक के लिए वीडियो की गुणवत्ता 1080 पी तक सीमित है" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/id/messages.json b/3.120-pre/_locales/id/messages.json deleted file mode 100644 index 75f9af70b..000000000 --- a/3.120-pre/_locales/id/messages.json +++ /dev/null @@ -1,806 +0,0 @@ -{ - "cropChapterTitles": { - "message": "Hilangkan judul babak" - }, - "about": { - "message": "Tentang" - }, - "accept": { - "message": "Terima" - }, - "activate": { - "message": "Aktifkan" - }, - "activateCaptions": { - "message": "Aktifkan keterangan" - }, - "activated": { - "message": "Diaktifkan" - }, - "activatedFeatures": { - "message": "Fitur diaktifkan" - }, - "activateFullscreen": { - "message": "Aktifkan layar penuh" - }, - "activeFeatures": { - "message": "Fitur yang aktif" - }, - "addScrollToTop": { - "message": "Tambah «Gulir ke atas»" - }, - "ads": { - "message": "Tampilkan iklan" - }, - "all": { - "message": "Semua" - }, - "allow": { - "message": "Izinkan" - }, - "allow60fps": { - "message": "Izinkan 60fps" - }, - "alwaysActive": { - "message": "Selalu aktif" - }, - "alwaysShowProgressBar": { - "message": "Selalu tampilkan progress bar" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analisa" - }, - "appearance": { - "message": "Tampilan" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Suara" - }, - "audioFormats": { - "message": "Format suara" - }, - "auto": { - "message": "Otomatis" - }, - "autoFullscreen": { - "message": "Layar penuh otomatis" - }, - "autopauseWhenSwitchingTabs": { - "message": "Jeda saat mengganti tab" - }, - "autoplay": { - "message": "Putar secara otomatis" - }, - "backupAndReset": { - "message": "Cadangkan & setel ulang" - }, - "baseOnSystemColorScheme": { - "message": "Berdasarkan skema warna sistem" - }, - "belowPlayer": { - "message": "Dibawah pemutar" - }, - "black": { - "message": "Hitam" - }, - "blacklist": { - "message": "Blokir" - }, - "blockAll": { - "message": "Blokir semua" - }, - "blue": { - "message": "Biru" - }, - "blueGray": { - "message": "Abu-abu biru" - }, - "bluelight": { - "message": "Cahaya biru" - }, - "brown": { - "message": "Coklat" - }, - "browser": { - "message": "Peramban" - }, - "browserVersion": { - "message": "Versi peramban" - }, - "bubbles": { - "message": "Gelembung" - }, - "bug": { - "message": "Masalah" - }, - "buttons": { - "message": "Tombol" - }, - "cancel": { - "message": "Batalkan" - }, - "categories": { - "message": "Kategori" - }, - "channel": { - "message": "Saluran" - }, - "channels": { - "message": "Saluran" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Tutup" - }, - "collapseOfSubscriptionSections": { - "message": "Tutup bagian berlangganan" - }, - "comments": { - "message": "Komentar" - }, - "confirmationBeforeClosing": { - "message": "Konfirmasi sebelum ditutup" - }, - "cookies": { - "message": "Kuki" - }, - "cores": { - "message": "Inti" - }, - "customCss": { - "message": "Kostum CSS" - }, - "customJs": { - "message": "Kostum JS" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Gelap" - }, - "darkTheme": { - "message": "Tema gelap" - }, - "dateAndTime": { - "message": "Tanggal dan waktu" - }, - "dawn": { - "message": "Fajar" - }, - "decreasePlaybackSpeed": { - "message": "Kurangi kecepatan pemutaran" - }, - "decreaseVolume": { - "message": "Kurangi suara" - }, - "deepOrange": { - "message": "Oranye tua" - }, - "deepPurple": { - "message": "Ungu tua" - }, - "defaultChannelTab": { - "message": "Tab saluran standar" - }, - "deleteYoutubeCookies": { - "message": "Hapus kuki youtube" - }, - "description": { - "message": "Deskripsi" - }, - "desert": { - "message": "Gurun" - }, - "details": { - "message": "Detail" - }, - "developerOptions": { - "message": "Opsi pengembang" - }, - "device": { - "message": "Perangkat" - }, - "dim": { - "message": "Redupkan" - }, - "disabled": { - "message": "Dinonaktifkan" - }, - "dislike": { - "message": "Tidak Suka" - }, - "donate": { - "message": "Donasi" - }, - "doNotChange": { - "message": "Jangan ubah" - }, - "draggable": { - "message": "Dapat diseret" - }, - "email": { - "message": "Surel" - }, - "empty": { - "message": "Kosong" - }, - "enabled": { - "message": "Aktifkan" - }, - "enabledForced": { - "message": "Aktifkan (paksa)" - }, - "expanded": { - "message": "Perluas" - }, - "exportSettings": { - "message": "Ekspor pengaturan" - }, - "extension": { - "message": "Ekstensi" - }, - "file": { - "message": "Berkas" - }, - "filters": { - "message": "Saringan" - }, - "fitToWindow": { - "message": "Sesuaikan dengan layar" - }, - "flash": { - "message": "Cahaya" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Catatan kaki" - }, - "forcedPlaybackSpeed": { - "message": "Paksa kecepatan pemutaran" - }, - "forcedTheaterMode": { - "message": "Paksa mode teater" - }, - "forcedVolume": { - "message": "Paksa suara" - }, - "foundABug": { - "message": "Menemukan masalah?" - }, - "fullWindow": { - "message": "Layar penuh" - }, - "general": { - "message": "Umum" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Ke kotak pencarian" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Hijau" - }, - "hdThumbnail": { - "message": "Gambar kecil HD" - }, - "hdThumbnails": { - "message": "Gambar kecil HD" - }, - "header": { - "message": "Kepala" - }, - "hidden": { - "message": "Sembunyikan" - }, - "hiddenOnVideoPage": { - "message": "Tersembunyi di halaman video" - }, - "hideAnimatedThumbnails": { - "message": "Sembunyikan animasi gambar kecil" - }, - "hideAnnotations": { - "message": "Sembunyikan penjelasan" - }, - "hideCards": { - "message": "Sembunyikan kartu" - }, - "hideDetails": { - "message": "Sembunyikan detail" - }, - "hideEndscreen": { - "message": "Sembunyikan layar akhir" - }, - "hideFeaturedContent": { - "message": "Sembunyikan konten unggulan" - }, - "hideFooter": { - "message": "Sembunyikan catatan kaki" - }, - "hidePlaylist": { - "message": "Sembunyikan daftar putar" - }, - "hideRightButtons": { - "message": "Sembunyikan tombol kanan" - }, - "hideScrollForDetails": { - "message": "Sembunyikan «gulir untuk detail»" - }, - "hideViewsCount": { - "message": "Sembunyikan jumlah penayangan" - }, - "history": { - "message": "Sejarah" - }, - "home": { - "message": "Beranda" - }, - "hover": { - "message": "Arahkan" - }, - "hoverOnVideoPage": { - "message": "Arahkan pada halaman video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Berapa lama video itu diunggah" - }, - "icons": { - "message": "Ikon" - }, - "iconsOnly": { - "message": "Ikon saja" - }, - "importSettings": { - "message": "Impor pengaturan" - }, - "improvedtubeIconInBrowser": { - "message": "Ikon ImprovedTube di peramban" - }, - "improvedtubeIconOnYoutube": { - "message": "Ikon ImprovedTube di YouTube" - }, - "improvedtubeLanguage": { - "message": "Bahasa ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versi ImprovedTube" - }, - "improveLogo": { - "message": "Tingkatkan kualitas logo" - }, - "increasePlaybackSpeed": { - "message": "Tingkatkan kecepatan pemutaran" - }, - "increaseVolume": { - "message": "Tingkatkan suara" - }, - "indigo": { - "message": "Nila" - }, - "items": { - "message": "Item" - }, - "languages": { - "message": "Bahasa" - }, - "legacyYoutube": { - "message": "YouTube lama" - }, - "light": { - "message": "Terang" - }, - "lightBlue": { - "message": "Biru terang" - }, - "lightGreen": { - "message": "Hijau terang" - }, - "like": { - "message": "Suka" - }, - "likes": { - "message": "Suka" - }, - "lime": { - "message": "Limau" - }, - "list": { - "message": "Daftar" - }, - "liveChat": { - "message": "Obrolan langsung" - }, - "liveChatType": { - "message": "Jenis obrolan langsung" - }, - "loudnessNormalization": { - "message": "Normalkan suara" - }, - "markWatchedVideos": { - "message": "Tandai video yang ditonton" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "Warna saya" - }, - "name": { - "message": "Nama" - }, - "nativeMiniPlayer": { - "message": "Pemutar kecil bawaan" - }, - "new": { - "message": "Baru" - }, - "nextVideo": { - "message": "Video selanjutnya" - }, - "night": { - "message": "Malam" - }, - "noActiveFeatures": { - "message": "Tidak ada fitur aktif" - }, - "none": { - "message": "Tidak ada" - }, - "noOpenVideoTabs": { - "message": "Tidak ada tab video terbuka" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Lama" - }, - "onAllVideos": { - "message": "Disetiap video" - }, - "onlyActiveOnYoutube": { - "message": "Hanya aktif di YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Hanya mainkan satu pemutar" - }, - "onSubscribedChannels": { - "message": "Di saluran berlangganan" - }, - "orange": { - "message": "Oranye" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Lainnya" - }, - "permissions": { - "message": "Perizinan" - }, - "pictureInPicture": { - "message": "Gambar di dalam gambar" - }, - "pink": { - "message": "Merah jambu" - }, - "plain": { - "message": "Dataran" - }, - "platform": { - "message": "Platform" - }, - "playbackSpeed": { - "message": "Kecepatan pemutar" - }, - "player": { - "message": "Pemutar" - }, - "playerColor": { - "message": "Warna pemutar" - }, - "playerSize": { - "message": "Ukuran pemutar" - }, - "playlist": { - "message": "Daftar putar" - }, - "playlists": { - "message": "Daftar putar" - }, - "playPause": { - "message": "Mulai / Jeda" - }, - "popupPlayer": { - "message": "Pemutar sembulan" - }, - "position": { - "message": "Posisi" - }, - "pressAnyKeyOrScroll": { - "message": "Tekan tombol apa saja atau gunakan roda mouse." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Tekan tombol apa saja atau gunakan roda mouse" - }, - "previousVideo": { - "message": "Video sebelumnya" - }, - "primaryColor": { - "message": "Warna utama" - }, - "purple": { - "message": "Ungu" - }, - "quality": { - "message": "Kualitas video" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Nilai Kami" - }, - "red": { - "message": "Merah" - }, - "relatedVideos": { - "message": "Video terkait" - }, - "removeRelatedSearchResults": { - "message": "Hapus hasil pencarian terkait" - }, - "repeat": { - "message": "Putar ulang" - }, - "reset": { - "message": "Setel ulang" - }, - "resetAllSettings": { - "message": "Setel ulang semua pengaturan" - }, - "resetAllShortcuts": { - "message": "Setel ulang semua pintasan" - }, - "reverse": { - "message": "Putar secara terbalik" - }, - "rotate": { - "message": "Putar" - }, - "save": { - "message": "Simpan" - }, - "saveAs": { - "message": "Simpan dengan" - }, - "schedule": { - "message": "Jadwal" - }, - "screen": { - "message": "Layar" - }, - "screenshot": { - "message": "Tangkapan layar" - }, - "search": { - "message": "Cari" - }, - "searchBarOnly": { - "message": "Hanya bilah pencarian" - }, - "seekBackward10Seconds": { - "message": "Mundur 10 detik" - }, - "seekForward10Seconds": { - "message": "Maju 10 detik" - }, - "settings": { - "message": "Pengaturan" - }, - "settingsSuccessfullyImported": { - "message": "Berhasil mengimpor pengaturan" - }, - "shortcuts": { - "message": "Pintasan" - }, - "showCardsOnMouseHover": { - "message": "Tunjukkan kartu pada arah mouse" - }, - "showChannelVideosCount": { - "message": "Tampilkan jumlah video saluran" - }, - "shuffle": { - "message": "Putar secara acak" - }, - "sidebar": { - "message": "Bilah samping" - }, - "spacebar": { - "message": "Bilah spasi" - }, - "squaredUserImages": { - "message": "Gambar pengguna kotak" - }, - "static": { - "message": "Statis" - }, - "step": { - "message": "Langkah" - }, - "stop": { - "message": "Berhenti" - }, - "style": { - "message": "Mode" - }, - "styles": { - "message": "Mode" - }, - "subscriptions": { - "message": "Berlangganan" - }, - "subtitles": { - "message": "Teks" - }, - "sunset": { - "message": "Senja" - }, - "sunsetToSunrise": { - "message": "Matahari terbenam hingga matahari terbit" - }, - "systemPeferenceDark": { - "message": "Preferensi sistem: gelap" - }, - "systemPeferenceLight": { - "message": "Preferensi sistem: terang" - }, - "teal": { - "message": "Hijau kebiruan" - }, - "textColor": { - "message": "Warna teks" - }, - "themes": { - "message": "Tema" - }, - "thisWillRemoveAllCookies": { - "message": "Ini akan menghapus semua kuki." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Ini akan menghapus semua kuki YouTube" - }, - "thisWillResetAllSettings": { - "message": "Ini akan mengatur ulang semua pengaturan." - }, - "thisWillResetAllShortcuts": { - "message": "Ini akan mengatur ulang semua pintasan" - }, - "thumbnails": { - "message": "Gambar kecil" - }, - "timeFrom": { - "message": "Waktu dari" - }, - "timeTo": { - "message": "Waktu ke" - }, - "todayAt": { - "message": "Hari ini di" - }, - "topChat": { - "message": "Obrolan teratas" - }, - "trailerAutoplay": { - "message": "Putar otomatis cuplikan" - }, - "translations": { - "message": "Terjemahan" - }, - "transparentBackground": { - "message": "Latar belakang transparan" - }, - "trending": { - "message": "Populer" - }, - "tryToReloadThePage": { - "message": "Coba muat ulang halaman" - }, - "type": { - "message": "Tipe" - }, - "upNextAutoplay": { - "message": "Putar otomatis berikutnya" - }, - "use24HourFormat": { - "message": "Gunakan format 24 jam" - }, - "version": { - "message": "Versi" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Deskripsi video akan diperluas untuk mendapatkan nama kategori" - }, - "videoFormats": { - "message": "Format video" - }, - "videos": { - "message": "Video" - }, - "volume": { - "message": "Suara" - }, - "watchLater": { - "message": "Tonton nanti" - }, - "watchTime": { - "message": "Waktu tayang" - }, - "whenTabIsChanged": { - "message": "Saat tab berubah" - }, - "white": { - "message": "Putih" - }, - "yellow": { - "message": "Kuning" - }, - "youtubeHeaderLeft": { - "message": "Kepala YouTube (kiri)" - }, - "youtubeHeaderRight": { - "message": "Kepala YouTube (kanan)" - }, - "youtubeHomePage": { - "message": "Beranda YouTube" - }, - "youtubeLanguage": { - "message": "Bahasa YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube membatasi kualitas video hingga 1080p untuk codec h.264" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "toggleCards": { - "message": "Toggle cards" - } -} diff --git a/3.120-pre/_locales/it/messages.json b/3.120-pre/_locales/it/messages.json deleted file mode 100644 index f0c222222..000000000 --- a/3.120-pre/_locales/it/messages.json +++ /dev/null @@ -1,806 +0,0 @@ -{ - "about": { - "message": "Al riguardo" - }, - "accept": { - "message": "Accetta" - }, - "activate": { - "message": "Attivo/a" - }, - "activateCaptions": { - "message": "Attiva didascalie" - }, - "activated": { - "message": "Attivato/a" - }, - "activatedFeatures": { - "message": "Funzionalità attivate" - }, - "activateFullscreen": { - "message": "Attiva schermo intero" - }, - "activeFeatures": { - "message": "Funzioni disponibili" - }, - "addScrollToTop": { - "message": "Aggiungi «Scorri in cima»" - }, - "ads": { - "message": "Pubblicità" - }, - "all": { - "message": "Tutte" - }, - "allow": { - "message": "Permetti" - }, - "allow60fps": { - "message": "Permetti 60 fps" - }, - "alwaysActive": { - "message": "Sempre attivo" - }, - "alwaysShowProgressBar": { - "message": "Mostra sempre barra di avanzamento" - }, - "amber": { - "message": "Ambra" - }, - "analyzer": { - "message": "Analizzatore" - }, - "appearance": { - "message": "Aspetto" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formati audio" - }, - "auto": { - "message": "Automatico" - }, - "autoFullscreen": { - "message": "Schermo intero automatico" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausa automatica al cambio scheda" - }, - "autoplay": { - "message": "Avvio automatico" - }, - "backupAndReset": { - "message": "Backup e reimpostazione" - }, - "baseOnSystemColorScheme": { - "message": "Basato sullo schema colore di sistema" - }, - "belowPlayer": { - "message": "Sotto il lettore" - }, - "black": { - "message": "Nero" - }, - "blacklist": { - "message": "Lista nera" - }, - "blockAll": { - "message": "Blocca tutte" - }, - "blue": { - "message": "Blu" - }, - "blueGray": { - "message": "Grigio blu" - }, - "bluelight": { - "message": "Luce blu" - }, - "brown": { - "message": "Marrone" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Versione browser" - }, - "bubbles": { - "message": "Bolle" - }, - "bug": { - "message": "Difetto" - }, - "buttons": { - "message": "Pulsanti" - }, - "cancel": { - "message": "Annulla" - }, - "categories": { - "message": "Categorie" - }, - "channel": { - "message": "Canale" - }, - "channels": { - "message": "Canali" - }, - "clipboard": { - "message": "Appunti" - }, - "codecH264": { - "message": "Codec H.264" - }, - "collapsed": { - "message": "Compressa/i" - }, - "collapseOfSubscriptionSections": { - "message": "Comprimi sezioni di sottoscrizione" - }, - "comments": { - "message": "Commenti" - }, - "confirmationBeforeClosing": { - "message": "Conferma prima della chiusura" - }, - "cookies": { - "message": "Cookie" - }, - "cores": { - "message": "Core" - }, - "cropChapterTitles": { - "message": "Ritaglia titoli dei capitoli" - }, - "customCss": { - "message": "CSS personalizzato" - }, - "customJs": { - "message": "JS personalizzato" - }, - "customMiniPlayer": { - "message": "Mini lettore personalizzato" - }, - "cyan": { - "message": "Ciano" - }, - "dark": { - "message": "Scuro" - }, - "darkTheme": { - "message": "Tema scuro" - }, - "dateAndTime": { - "message": "Data e ora" - }, - "dawn": { - "message": "Albeggio" - }, - "decreasePlaybackSpeed": { - "message": "Riduci velocità riproduzione" - }, - "decreaseVolume": { - "message": "Riduci volume" - }, - "deepOrange": { - "message": "Arancione profondo" - }, - "deepPurple": { - "message": "Viola profondo" - }, - "defaultChannelTab": { - "message": "Scheda predefinita canale" - }, - "deleteYoutubeCookies": { - "message": "Cancella cookie di YouTube" - }, - "description": { - "message": "Descrizione" - }, - "desert": { - "message": "Deserto" - }, - "details": { - "message": "Dettagli" - }, - "developerOptions": { - "message": "Opzioni per gli sviluppatori" - }, - "device": { - "message": "Dispositivo" - }, - "dim": { - "message": "Smorzamento" - }, - "disabled": { - "message": "Disabilitato" - }, - "dislike": { - "message": "Non gradire" - }, - "donate": { - "message": "Donazione" - }, - "doNotChange": { - "message": "Non cambiare" - }, - "draggable": { - "message": "Trascinabile" - }, - "email": { - "message": "E-mail" - }, - "empty": { - "message": "Vuota" - }, - "enabled": { - "message": "Abilitato" - }, - "enabledForced": { - "message": "Abilitato (forzato)" - }, - "expanded": { - "message": "Estesa" - }, - "exportSettings": { - "message": "Esporta impostazioni" - }, - "extension": { - "message": "Estensione" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filtri" - }, - "fitToWindow": { - "message": "Adatta alla finestra" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Piè di pagina" - }, - "forcedPlaybackSpeed": { - "message": "Velocità riproduzione forzata" - }, - "forcedTheaterMode": { - "message": "Modalità cinema forzata" - }, - "forcedVolume": { - "message": "Volume forzato" - }, - "foundABug": { - "message": "Trovato un bug?" - }, - "fullWindow": { - "message": "Finestra intera" - }, - "general": { - "message": "Generale" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Vai alla casella di ricerca" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura in altà qualità" - }, - "hdThumbnails": { - "message": "Miniature in alta qualità" - }, - "header": { - "message": "Intestazione" - }, - "hidden": { - "message": "Nascosta/i" - }, - "hiddenOnVideoPage": { - "message": "Nascosta nella pagina video" - }, - "hideAnimatedThumbnails": { - "message": "Nascondi miniature animate" - }, - "hideAnnotations": { - "message": "Nascondi annotazioni" - }, - "hideCards": { - "message": "Nascondi tessere di fine video" - }, - "hideDetails": { - "message": "Nascondi dettagli" - }, - "hideEndscreen": { - "message": "Nascondi finale video" - }, - "hideFeaturedContent": { - "message": "Nascondi contenuti in primo piano" - }, - "hideFooter": { - "message": "Nascondi footer" - }, - "hideGradientBottom": { - "message": "Nascondi fondo gradiente" - }, - "hidePlaylist": { - "message": "Nascondi scaletta" - }, - "hideRightButtons": { - "message": "Nascondi pulsanti sulla destra" - }, - "hideScrollForDetails": { - "message": "Nascondi «Scorri per dettagli»" - }, - "hideViewsCount": { - "message": "Nascondi contatore visualizzazioni" - }, - "history": { - "message": "Cronologia" - }, - "home": { - "message": "Pagina iniziale" - }, - "hover": { - "message": "In sospensione" - }, - "hoverOnVideoPage": { - "message": "In sospensione sulla pagine del video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Quanto tempo fa il video è stato caricato" - }, - "icons": { - "message": "Icone" - }, - "iconsOnly": { - "message": "Solo icone" - }, - "importSettings": { - "message": "Importa impostazioni" - }, - "improvedtubeIconInBrowser": { - "message": "Icona nel browser" - }, - "improvedtubeIconOnYoutube": { - "message": "Icona su YouTube" - }, - "improvedtubeLanguage": { - "message": "Lingua" - }, - "improvedtubeVersion": { - "message": "Versione" - }, - "improveLogo": { - "message": "Migliora logo YouTube" - }, - "increasePlaybackSpeed": { - "message": "Aumenta velocità riproduzione" - }, - "increaseVolume": { - "message": "Aumenta volume" - }, - "indigo": { - "message": "Indaco" - }, - "items": { - "message": "Oggetti" - }, - "languages": { - "message": "Lingue" - }, - "legacyYoutube": { - "message": "YouTube versione legacy" - }, - "light": { - "message": "Chiaro" - }, - "lightBlue": { - "message": "Blu chiaro" - }, - "lightGreen": { - "message": "Verde chiaro" - }, - "like": { - "message": "Mi piace" - }, - "likes": { - "message": "Numero di Mi piace" - }, - "lime": { - "message": "Lime" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Chat dal vivo" - }, - "liveChatType": { - "message": "Tipologia chat dal vivo" - }, - "loudnessNormalization": { - "message": "Normalizzazione rumorosità" - }, - "markWatchedVideos": { - "message": "Contrassegna video visti" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "Miei colori" - }, - "name": { - "message": "Nome" - }, - "nativeMiniPlayer": { - "message": "Mini lettore nativo" - }, - "new": { - "message": "Nuovo" - }, - "nextVideo": { - "message": "Prossimo video" - }, - "night": { - "message": "Notte" - }, - "noActiveFeatures": { - "message": "Nessuna funzione attivata" - }, - "none": { - "message": "Alcuno/a" - }, - "noOpenVideoTabs": { - "message": "Nessuna scheda video aperta" - }, - "normal": { - "message": "Standard" - }, - "old": { - "message": "Vecchio" - }, - "onAllVideos": { - "message": "Su tutti i video" - }, - "onlyActiveOnYoutube": { - "message": "Attivo solo su YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Istanza unica di riproduzione attiva" - }, - "onSubscribedChannels": { - "message": "In canali sottoscritti" - }, - "orange": { - "message": "Arancione" - }, - "os": { - "message": "Sistema Operativo" - }, - "other": { - "message": "Altro" - }, - "permissions": { - "message": "Autorizzazioni" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Pianura" - }, - "platform": { - "message": "Piattaforma" - }, - "playbackSpeed": { - "message": "Velocità riproduzione" - }, - "player": { - "message": "Lettore" - }, - "playerColor": { - "message": "Colore lettore" - }, - "playerSize": { - "message": "Dimensione lettore" - }, - "playlist": { - "message": "Scaletta" - }, - "playlists": { - "message": "Scalette" - }, - "playPause": { - "message": "Avvio/Pausa" - }, - "popupPlayer": { - "message": "Lettore pop-up" - }, - "position": { - "message": "Posizione" - }, - "pressAnyKeyOrScroll": { - "message": "Premere un qualunque tasto o scorrere" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Premere un qualunque tasto o usare rotella del mouse" - }, - "previousVideo": { - "message": "Video precedente" - }, - "primaryColor": { - "message": "Colore primario" - }, - "purple": { - "message": "Viola" - }, - "quality": { - "message": "Qualità" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Valutaci" - }, - "red": { - "message": "Rosso" - }, - "redDislikeButton": { - "message": "Mostra pulsante Non mi piace in rosso" - }, - "relatedVideos": { - "message": "Video correlati" - }, - "removeRelatedSearchResults": { - "message": "Rimuovi risultati di ricerca correlati" - }, - "repeat": { - "message": "Ripeti" - }, - "reset": { - "message": "Reimpostazione" - }, - "resetAllSettings": { - "message": "Reimposta tutte le impostazioni" - }, - "resetAllShortcuts": { - "message": "Reimposta tutte le scorciatoie" - }, - "reverse": { - "message": "Inverti" - }, - "rotate": { - "message": "Ruota" - }, - "save": { - "message": "Salva" - }, - "saveAs": { - "message": "Salva come" - }, - "schedule": { - "message": "Programmazione" - }, - "screen": { - "message": "Schermo" - }, - "screenshot": { - "message": "Screenshot" - }, - "search": { - "message": "Ricerca" - }, - "searchBarOnly": { - "message": "Cerca solamente nella barra" - }, - "seekBackward10Seconds": { - "message": "Muovi indietro 10 secondi" - }, - "seekForward10Seconds": { - "message": "Muovi avanti 10 secondi" - }, - "settings": { - "message": "Impostazioni" - }, - "settingsSuccessfullyImported": { - "message": "Impostazioni importate con successo" - }, - "shortcuts": { - "message": "Scorciatoie" - }, - "showCardsOnMouseHover": { - "message": "Mostra tessere di fine video al passaggio del puntatore" - }, - "showChannelVideosCount": { - "message": "Mostra contatore visualizzazioni canale" - }, - "shuffle": { - "message": "Riproduzione casuale" - }, - "sidebar": { - "message": "Barra laterale" - }, - "spacebar": { - "message": "Barra spaziatrice" - }, - "squaredUserImages": { - "message": "Immagini utenti squadrate" - }, - "static": { - "message": "Statica" - }, - "statsForNerds": { - "message": "Visualizza statistiche per nerd" - }, - "stop": { - "message": "Arresto" - }, - "style": { - "message": "Stile" - }, - "styles": { - "message": "Stili" - }, - "subscriptions": { - "message": "Sottoscrizioni" - }, - "subtitles": { - "message": "Sottotitoli" - }, - "sunset": { - "message": "Tramonto" - }, - "sunsetToSunrise": { - "message": "Dal tramonto all'alba" - }, - "systemPeferenceDark": { - "message": "Preferenza di sistema: scuro" - }, - "systemPeferenceLight": { - "message": "Preferenza di sistema: chiaro" - }, - "teal": { - "message": "Verde acqua" - }, - "textColor": { - "message": "Colore testo" - }, - "themes": { - "message": "Temi" - }, - "thisWillRemoveAllCookies": { - "message": "Questo rimuoverà tutti i cookie" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Questo rimuoverà tutti i cookie di YouTube" - }, - "thisWillResetAllSettings": { - "message": "Questo rimuoverà tutte le impostazioni" - }, - "thisWillResetAllShortcuts": { - "message": "Questo Reimposterà tutte le scorciatoie" - }, - "thumbnails": { - "message": "Miniature" - }, - "timeFrom": { - "message": "Dalle ore" - }, - "timeTo": { - "message": "Alle ore" - }, - "todayAt": { - "message": "Oggi alle" - }, - "toggleCards": { - "message": "Dis/attiva tessere di fine video" - }, - "topChat": { - "message": "Chat superiore" - }, - "trailerAutoplay": { - "message": "Avvio automatico trailer" - }, - "translations": { - "message": "Traduzioni" - }, - "transparentBackground": { - "message": "Sfondo trasparente" - }, - "trending": { - "message": "Di tendenza" - }, - "tryToReloadThePage": { - "message": "Provare a ricaricare la pagina" - }, - "type": { - "message": "Tipologia" - }, - "upNextAutoplay": { - "message": "Avvio automatico prossimo video" - }, - "use24HourFormat": { - "message": "Usa formato a 24 ore" - }, - "version": { - "message": "Numero versione" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La descrizione del video verrà espansa per ottenere il nome della categoria" - }, - "videoFormats": { - "message": "Formati video" - }, - "videos": { - "message": "Video" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Guarda più tardi" - }, - "watchTime": { - "message": "Tempo di visione" - }, - "whenTabIsChanged": { - "message": "Quando si cambia scheda" - }, - "white": { - "message": "Bianco" - }, - "yellow": { - "message": "Giallo" - }, - "youtubeHeaderLeft": { - "message": "Intestazione YouTube (sinistra)" - }, - "youtubeHeaderRight": { - "message": "Intestazione YouTube (destra)" - }, - "youtubeHomePage": { - "message": "Pagina iniziale YouTube" - }, - "youtubeLanguage": { - "message": "Lingua YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limita la qualità video a 1080p per il codec h.264" - } -} diff --git a/3.120-pre/_locales/ja/messages.json b/3.120-pre/_locales/ja/messages.json deleted file mode 100644 index 4961c702c..000000000 --- a/3.120-pre/_locales/ja/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "about": { - "message": "このソフトについて" - }, - "accept": { - "message": "了解" - }, - "activate": { - "message": "有効にする" - }, - "activateCaptions": { - "message": "キャプションを有効にする" - }, - "activated": { - "message": "有効化" - }, - "activatedFeatures": { - "message": "有効化された機能" - }, - "activateFullscreen": { - "message": "全画面にする" - }, - "activeFeatures": { - "message": "機能の切り替え" - }, - "addScrollToTop": { - "message": "「一番上にスクロール」のボタンを追加する" - }, - "ads": { - "message": "広告" - }, - "all": { - "message": "すべて" - }, - "allow": { - "message": "許可" - }, - "allow60fps": { - "message": "60fpsを許可する" - }, - "alwaysActive": { - "message": "常に有効" - }, - "alwaysShowProgressBar": { - "message": "常にプログレスバーを表示する" - }, - "amber": { - "message": "アンバー" - }, - "analyzer": { - "message": "分析" - }, - "appearance": { - "message": "外観" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "音声" - }, - "audioFormats": { - "message": "音声形式" - }, - "auto": { - "message": "自動" - }, - "autoFullscreen": { - "message": "自動的に全画面にする" - }, - "autopauseWhenSwitchingTabs": { - "message": "タブ切り替えで自動的に一時停止" - }, - "autoplay": { - "message": "自動再生" - }, - "backupAndReset": { - "message": "バックアップとリセット" - }, - "baseOnSystemColorScheme": { - "message": "システムの色に合わせる" - }, - "belowPlayer": { - "message": "プレーヤーの下" - }, - "black": { - "message": "黒" - }, - "blacklist": { - "message": "ブラックリスト" - }, - "blockAll": { - "message": "すべてブロックする" - }, - "blue": { - "message": "青" - }, - "blueGray": { - "message": "青みがかった灰" - }, - "bluelight": { - "message": "ブルーライト" - }, - "brown": { - "message": "茶" - }, - "browser": { - "message": "ブラウザー" - }, - "browserVersion": { - "message": "ブラウザーのバージョン" - }, - "bubbles": { - "message": "バブル" - }, - "bug": { - "message": "バグ" - }, - "buttons": { - "message": "ボタン" - }, - "cancel": { - "message": "キャンセル" - }, - "categories": { - "message": "カテゴリー" - }, - "channel": { - "message": "チャンネル" - }, - "channels": { - "message": "チャンネル" - }, - "clipboard": { - "message": "クリップボード" - }, - "codecH264": { - "message": "H.264コーデック" - }, - "collapsed": { - "message": "畳む" - }, - "collapseOfSubscriptionSections": { - "message": "サブスクリプション部分を畳む" - }, - "comments": { - "message": "コメント" - }, - "confirmationBeforeClosing": { - "message": "閉じる前に確認する" - }, - "cookies": { - "message": "Cookie" - }, - "cores": { - "message": "コア数" - }, - "cropChapterTitles": { - "message": "チャプターのタイトルをトリミングする" - }, - "customCss": { - "message": "カスタム CSS" - }, - "customJs": { - "message": "カスタム JS" - }, - "customMiniPlayer": { - "message": "カスタムミニプレーヤー" - }, - "cyan": { - "message": "シアン" - }, - "dark": { - "message": "ダーク" - }, - "darkTheme": { - "message": "ダークテーマ" - }, - "dateAndTime": { - "message": "日付と時刻" - }, - "dawn": { - "message": "夜明け" - }, - "decreasePlaybackSpeed": { - "message": "再生速度を下げる" - }, - "decreaseVolume": { - "message": "音量を下げる" - }, - "deepOrange": { - "message": "深いオレンジ" - }, - "deepPurple": { - "message": "深い紫" - }, - "defaultChannelTab": { - "message": "デフォルトのチャンネルタブ" - }, - "deleteYoutubeCookies": { - "message": "YouTube の Cookie を削除する" - }, - "description": { - "message": "説明" - }, - "desert": { - "message": "砂漠" - }, - "details": { - "message": "詳細" - }, - "developerOptions": { - "message": "開発者向けオプション" - }, - "device": { - "message": "デバイス" - }, - "dim": { - "message": "暗さ" - }, - "disabled": { - "message": "無効" - }, - "dislike": { - "message": "低評価" - }, - "donate": { - "message": "寄付する" - }, - "doNotChange": { - "message": "変更しない" - }, - "draggable": { - "message": "ドラッグ可能にする" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "なし" - }, - "enabled": { - "message": "有効" - }, - "enabledForced": { - "message": "有効 (強制)" - }, - "expanded": { - "message": "広げる" - }, - "exportSettings": { - "message": "設定をエクスポートする" - }, - "extension": { - "message": "拡張" - }, - "file": { - "message": "ファイル" - }, - "filters": { - "message": "フィルター" - }, - "fitToWindow": { - "message": "ウィンドウに合わせる" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "フォント" - }, - "footer": { - "message": "フッター" - }, - "forcedPlaybackSpeed": { - "message": "再生速度を指定する" - }, - "forcedTheaterMode": { - "message": "シアターモードにする" - }, - "forcedVolume": { - "message": "音量を指定する" - }, - "foundABug": { - "message": "バグ報告" - }, - "fullWindow": { - "message": "フルウィンドウ" - }, - "general": { - "message": "一般" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "検索ボックスに行く" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "緑" - }, - "hdThumbnail": { - "message": "HDサムネイル" - }, - "hdThumbnails": { - "message": "HDサムネイル" - }, - "header": { - "message": "ヘッダー" - }, - "hidden": { - "message": "隠す" - }, - "hiddenOnVideoPage": { - "message": "動画ページでは隠す" - }, - "hideAnimatedThumbnails": { - "message": "サムネイルのアニメーションを行わない" - }, - "hideAnnotations": { - "message": "アノテーションを隠す" - }, - "hideCards": { - "message": "カードを隠す" - }, - "hideDetails": { - "message": "詳細を隠す" - }, - "hideEndscreen": { - "message": "再生終了時の画面を隠す" - }, - "hideFeaturedContent": { - "message": "おすすめチャンネルを非表示にする" - }, - "hideFooter": { - "message": "フッターを隠す" - }, - "hideGradientBottom": { - "message": "グラデーションの下部を隠す" - }, - "hidePlaylist": { - "message": "再生リストを隠す" - }, - "hideRightButtons": { - "message": "右ボタンを隠す" - }, - "hideScrollForDetails": { - "message": "「スクロールして詳細を表示」を隠す" - }, - "hideViewsCount": { - "message": "視聴数を隠す" - }, - "history": { - "message": "履歴" - }, - "home": { - "message": "ホーム" - }, - "hover": { - "message": "ホバー" - }, - "hoverOnVideoPage": { - "message": "動画ページではホバー" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "動画がアップロードされてからの時間" - }, - "icons": { - "message": "アイコン" - }, - "iconsOnly": { - "message": "アイコンのみ" - }, - "importSettings": { - "message": "設定をインポートする" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTubeアイコンをブラウザに表示する" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTubeアイコンをYouTubeに表示する" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube の言語" - }, - "improvedtubeVersion": { - "message": "ImprovedTube のバージョン" - }, - "improveLogo": { - "message": "ロゴを改良する" - }, - "increasePlaybackSpeed": { - "message": "再生速度を上げる" - }, - "increaseVolume": { - "message": "音量を上げる" - }, - "indigo": { - "message": "インディゴ" - }, - "items": { - "message": "アイテム" - }, - "languages": { - "message": "言語" - }, - "legacyYoutube": { - "message": "古い YouTube にする" - }, - "light": { - "message": "ライト" - }, - "lightBlue": { - "message": "薄い青" - }, - "lightGreen": { - "message": "薄い緑" - }, - "like": { - "message": "高評価" - }, - "likes": { - "message": "評価" - }, - "lime": { - "message": "ライム" - }, - "list": { - "message": "リスト" - }, - "liveChat": { - "message": "ライブチャット" - }, - "liveChatType": { - "message": "ライブチャットの種類" - }, - "loudnessNormalization": { - "message": "音量のノーマリゼーション" - }, - "markWatchedVideos": { - "message": "視聴した動画にマークを付ける" - }, - "mixer": { - "message": "ミキサー" - }, - "myColors": { - "message": "色設定" - }, - "name": { - "message": "名前" - }, - "nativeMiniPlayer": { - "message": "ネイティブミニプレーヤー" - }, - "new": { - "message": "新規" - }, - "nextVideo": { - "message": "次の動画" - }, - "night": { - "message": "夜" - }, - "noActiveFeatures": { - "message": "有効化された機能がありません" - }, - "none": { - "message": "なし" - }, - "noOpenVideoTabs": { - "message": "開いている動画タブがありません" - }, - "normal": { - "message": "標準" - }, - "old": { - "message": "Old" - }, - "onAllVideos": { - "message": "すべて許可する" - }, - "onlyActiveOnYoutube": { - "message": "YouTube で有効" - }, - "onlyOnePlayerInstancePlaying": { - "message": "1つのプレーヤーインスタンスのみにする" - }, - "onSubscribedChannels": { - "message": "登録したチャンネルでは許可する" - }, - "orange": { - "message": "オレンジ" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "その他" - }, - "permissions": { - "message": "権限" - }, - "pictureInPicture": { - "message": "ピクチャーインピクチャー" - }, - "pink": { - "message": "ピンク" - }, - "plain": { - "message": "プレーン" - }, - "platform": { - "message": "プラットフォーム" - }, - "playbackSpeed": { - "message": "再生速度" - }, - "player": { - "message": "プレーヤー" - }, - "playerColor": { - "message": "プレーヤーの色" - }, - "playerSize": { - "message": "プレーヤーのサイズ" - }, - "playlist": { - "message": "再生リスト" - }, - "playlists": { - "message": "再生リスト" - }, - "playPause": { - "message": "再生/一時停止" - }, - "popupPlayer": { - "message": "ポップアッププレーヤー" - }, - "position": { - "message": "位置" - }, - "pressAnyKeyOrScroll": { - "message": "任意のキーを押すか、マウスホイールを使用してください" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "任意のキーを押すか、マウスホイールを使用してください" - }, - "previousVideo": { - "message": "前の動画" - }, - "primaryColor": { - "message": "全体の色" - }, - "purple": { - "message": "紫" - }, - "quality": { - "message": "画質" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "評価する" - }, - "red": { - "message": "赤" - }, - "redDislikeButton": { - "message": "低評価ボタンを赤色で表示する" - }, - "relatedVideos": { - "message": "関連動画" - }, - "removeRelatedSearchResults": { - "message": "関連動画を検索結果から削除する" - }, - "repeat": { - "message": "リピート" - }, - "reset": { - "message": "リセット" - }, - "resetAllSettings": { - "message": "すべての設定をリセットする" - }, - "resetAllShortcuts": { - "message": "すべてのショートカットをリセットする" - }, - "reverse": { - "message": "逆順にする" - }, - "rotate": { - "message": "回転" - }, - "save": { - "message": "保存" - }, - "saveAs": { - "message": "別名で保存する" - }, - "schedule": { - "message": "スケジュール" - }, - "screen": { - "message": "スクリーン" - }, - "screenshot": { - "message": "スクリーンショット" - }, - "search": { - "message": "検索" - }, - "searchBarOnly": { - "message": "検索バーのみ" - }, - "seekBackward10Seconds": { - "message": "10秒戻る" - }, - "seekForward10Seconds": { - "message": "10秒進む" - }, - "settings": { - "message": "設定" - }, - "settingsSuccessfullyImported": { - "message": "設定を正常にインポートしました" - }, - "shortcuts": { - "message": "ショートカット" - }, - "showCardsOnMouseHover": { - "message": "マウスオーバーでカードを表示する" - }, - "showChannelVideosCount": { - "message": "チャンネルの動画数を表示する" - }, - "shuffle": { - "message": "シャッフル" - }, - "sidebar": { - "message": "サイドバー" - }, - "spacebar": { - "message": "スペースキー" - }, - "squaredUserImages": { - "message": "ユーザー画像を四角にする" - }, - "static": { - "message": "スタティック" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "ステップ" - }, - "stop": { - "message": "停止" - }, - "style": { - "message": "スタイル" - }, - "styles": { - "message": "スタイル" - }, - "subscriptions": { - "message": "登録チャンネル" - }, - "subtitles": { - "message": "サブタイトル" - }, - "sunset": { - "message": "夕焼け" - }, - "sunsetToSunrise": { - "message": "夕焼けから日の出へ" - }, - "systemPeferenceDark": { - "message": "システム設定: ダーク" - }, - "systemPeferenceLight": { - "message": "システム設定: ライト" - }, - "teal": { - "message": "ティール" - }, - "textColor": { - "message": "文字の色" - }, - "themes": { - "message": "テーマ" - }, - "thisWillRemoveAllCookies": { - "message": "これはすべての Cookie を削除します。" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "YouTube のすべての Cookie を削除します" - }, - "thisWillResetAllSettings": { - "message": "すべての設定をリセットします。" - }, - "thisWillResetAllShortcuts": { - "message": "すべてのショートカットをリセットします" - }, - "thumbnails": { - "message": "サムネイル" - }, - "timeFrom": { - "message": "この時間から" - }, - "timeTo": { - "message": "この時間まで" - }, - "todayAt": { - "message": "測定時刻" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "上位チャット" - }, - "trailerAutoplay": { - "message": "トレーラーを自動再生する" - }, - "translations": { - "message": "翻訳" - }, - "transparentBackground": { - "message": "透明な背景" - }, - "trending": { - "message": "急上昇" - }, - "tryToReloadThePage": { - "message": "ページをリロードしてみてください" - }, - "type": { - "message": "種類" - }, - "upNextAutoplay": { - "message": "次の動画を自動再生する" - }, - "use24HourFormat": { - "message": "24時間表示にする" - }, - "version": { - "message": "バージョン" - }, - "video": { - "message": "動画" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "動画の説明はカテゴリ名を取得するために広げられます" - }, - "videoFormats": { - "message": "動画形式" - }, - "videos": { - "message": "動画" - }, - "volume": { - "message": "音量" - }, - "watchLater": { - "message": "後で見る" - }, - "watchTime": { - "message": "視聴時間" - }, - "whenTabIsChanged": { - "message": "タブを変更したとき" - }, - "white": { - "message": "白" - }, - "yellow": { - "message": "黄" - }, - "youtubeHeaderLeft": { - "message": "YouTube のヘッダー左" - }, - "youtubeHeaderRight": { - "message": "YouTube のヘッダー右" - }, - "youtubeHomePage": { - "message": "YouTube のホームページ" - }, - "youtubeLanguage": { - "message": "YouTube の言語" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube はH.264コーデックの画質を1080pに制限しています" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/ko/messages.json b/3.120-pre/_locales/ko/messages.json deleted file mode 100644 index c3402b28a..000000000 --- a/3.120-pre/_locales/ko/messages.json +++ /dev/null @@ -1,806 +0,0 @@ -{ - "about": { - "message": "정보" - }, - "accept": { - "message": "동의" - }, - "activate": { - "message": "활성화" - }, - "activateCaptions": { - "message": "자막 활성화" - }, - "activated": { - "message": "활성화됨" - }, - "activatedFeatures": { - "message": "활성화된 기능" - }, - "activateFullscreen": { - "message": "전체화면 활성화" - }, - "activeFeatures": { - "message": "활성 기능" - }, - "addScrollToTop": { - "message": "<<맨위로>> 추가" - }, - "ads": { - "message": "광고" - }, - "all": { - "message": "모두" - }, - "allow": { - "message": "허용" - }, - "allow60fps": { - "message": "60에프피에스(fps) 허용" - }, - "alwaysActive": { - "message": "항상 활성화" - }, - "alwaysShowProgressBar": { - "message": "재생 진행 상태 항상 표시" - }, - "amber": { - "message": "호박색" - }, - "analyzer": { - "message": "분석" - }, - "appearance": { - "message": "외관" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "오디오" - }, - "audioFormats": { - "message": "오디오 형식" - }, - "auto": { - "message": "자동" - }, - "autoFullscreen": { - "message": "자동 전체화면" - }, - "autopauseWhenSwitchingTabs": { - "message": "탭전환시 자동 일시정지" - }, - "autoplay": { - "message": "자동재생" - }, - "backupAndReset": { - "message": "백업 & 리셋" - }, - "baseOnSystemColorScheme": { - "message": "시스템 색 구성표 기반" - }, - "belowPlayer": { - "message": "플레이어 아래" - }, - "black": { - "message": "검정" - }, - "blacklist": { - "message": "블랙리스트" - }, - "blockAll": { - "message": "모두 차단" - }, - "blue": { - "message": "파랑" - }, - "blueGray": { - "message": "블루그레이" - }, - "bluelight": { - "message": "블루라이트" - }, - "brown": { - "message": "갈색" - }, - "browser": { - "message": "브라우저" - }, - "browserVersion": { - "message": "브라우저 버전" - }, - "bubbles": { - "message": "버블" - }, - "bug": { - "message": "버그" - }, - "buttons": { - "message": "버튼" - }, - "cancel": { - "message": "취소" - }, - "categories": { - "message": "카테고리" - }, - "channel": { - "message": "채널" - }, - "channels": { - "message": "채널" - }, - "clipboard": { - "message": "클립보드" - }, - "codecH264": { - "message": "코덱 h.264" - }, - "collapsed": { - "message": "축소됨" - }, - "collapseOfSubscriptionSections": { - "message": "구독섹션 축소" - }, - "comments": { - "message": "댓글" - }, - "confirmationBeforeClosing": { - "message": "닫기전에 확인하기" - }, - "cookies": { - "message": "쿠키" - }, - "cores": { - "message": "코어" - }, - "cropChapterTitles": { - "message": "제목 자르기" - }, - "customCss": { - "message": "사용자 지정 캐스캐이팅 스타일 시트(CSS)" - }, - "customJs": { - "message": "사용자 지정 자바스크립트(JS)" - }, - "customMiniPlayer": { - "message": "커스텀 미니플레이어" - }, - "cyan": { - "message": "옥색" - }, - "dark": { - "message": "다크" - }, - "darkTheme": { - "message": "다크 테마" - }, - "dateAndTime": { - "message": "날짜 & 시간" - }, - "dawn": { - "message": "석양" - }, - "decreasePlaybackSpeed": { - "message": "되감기 속도 감소" - }, - "decreaseVolume": { - "message": "볼륨 감소" - }, - "deepOrange": { - "message": "진한 주황" - }, - "deepPurple": { - "message": "진한 보라" - }, - "defaultChannelTab": { - "message": "기본 채널 탭" - }, - "deleteYoutubeCookies": { - "message": "유튜브 쿠키 삭제" - }, - "description": { - "message": "설명" - }, - "desert": { - "message": "사막" - }, - "details": { - "message": "자세히" - }, - "developerOptions": { - "message": "개발자 옵션" - }, - "device": { - "message": "기기" - }, - "dim": { - "message": "어둡게" - }, - "disabled": { - "message": "비활성화" - }, - "dislike": { - "message": "싫어요" - }, - "donate": { - "message": "후원하기" - }, - "doNotChange": { - "message": "바꾸지 않음" - }, - "draggable": { - "message": "드래그 가능" - }, - "email": { - "message": "이메일" - }, - "empty": { - "message": "비어있음" - }, - "enabled": { - "message": "활성화" - }, - "enabledForced": { - "message": "활성화 (강제)" - }, - "expanded": { - "message": "확장" - }, - "exportSettings": { - "message": "설정 내보내기" - }, - "extension": { - "message": "확대" - }, - "file": { - "message": "파일" - }, - "filters": { - "message": "필터" - }, - "fitToWindow": { - "message": "창크기에 맞추기" - }, - "flash": { - "message": "플래시" - }, - "font": { - "message": "글꼴" - }, - "footer": { - "message": "하단" - }, - "forcedPlaybackSpeed": { - "message": "되감기 속도 강제설정" - }, - "forcedTheaterMode": { - "message": "강제 영화관 모드" - }, - "forcedVolume": { - "message": "볼륨 강제설정" - }, - "foundABug": { - "message": "버그신고" - }, - "fullWindow": { - "message": "전체 화면" - }, - "general": { - "message": "일반" - }, - "github": { - "message": "깃허브(GitHub)" - }, - "goToSearchBox": { - "message": "검색창으로 이동" - }, - "gpu": { - "message": "그래픽 처리 장치" - }, - "green": { - "message": "초록" - }, - "hdThumbnail": { - "message": "HD 썸네일" - }, - "hdThumbnails": { - "message": "HD 썸네일" - }, - "header": { - "message": "헤더" - }, - "hidden": { - "message": "숨김" - }, - "hiddenOnVideoPage": { - "message": "비디오 페이지 숨기기" - }, - "hideAnimatedThumbnails": { - "message": "썸네일 애니메이션 숨기기" - }, - "hideAnnotations": { - "message": "설명 숨기기" - }, - "hideCards": { - "message": "카드 숨기기" - }, - "hideDetails": { - "message": "상세설명 숨기기" - }, - "hideEndscreen": { - "message": "종료후 화면 숨기기" - }, - "hideFeaturedContent": { - "message": "추천 영상 숨기기" - }, - "hideFooter": { - "message": "하단 숨기기" - }, - "hideGradientBottom": { - "message": "그라데이션 맨 아래로 숨기기" - }, - "hidePlaylist": { - "message": "재생 목록 숨기기" - }, - "hideRightButtons": { - "message": "오른쪽 버튼 숨기기" - }, - "hideScrollForDetails": { - "message": "«스크롤 하여 자세한 설명» 숨기기" - }, - "hideViewsCount": { - "message": "조회수 숨기기" - }, - "history": { - "message": "히스토리" - }, - "home": { - "message": "홈" - }, - "hover": { - "message": "띄우기" - }, - "hoverOnVideoPage": { - "message": "비디오 페이지 띄우기" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "업로드 시기" - }, - "icons": { - "message": "아이콘" - }, - "iconsOnly": { - "message": "아이콘만" - }, - "importSettings": { - "message": "설정 불러오기" - }, - "improvedtubeIconInBrowser": { - "message": "향상된 브라우저 아이콘" - }, - "improvedtubeIconOnYoutube": { - "message": "향상된 유튜브 아이콘" - }, - "improvedtubeLanguage": { - "message": "향상된 유튜브 언어" - }, - "improvedtubeVersion": { - "message": "향상된 유튜브 버전" - }, - "improveLogo": { - "message": "향상된 로고" - }, - "increasePlaybackSpeed": { - "message": "되감기 속도 증가" - }, - "increaseVolume": { - "message": "볼륨 증가" - }, - "indigo": { - "message": "남색" - }, - "items": { - "message": "요소" - }, - "languages": { - "message": "언어" - }, - "legacyYoutube": { - "message": "레거시 유튜브" - }, - "light": { - "message": "밝게" - }, - "lightBlue": { - "message": "연파랑" - }, - "lightGreen": { - "message": "연초록" - }, - "like": { - "message": "좋아요" - }, - "likes": { - "message": "좋아요" - }, - "lime": { - "message": "라임" - }, - "list": { - "message": "리스트" - }, - "liveChat": { - "message": "실시간 채팅" - }, - "liveChatType": { - "message": "실시간 채팅 유형" - }, - "loudnessNormalization": { - "message": "볼륨 자동조정" - }, - "markWatchedVideos": { - "message": "시청한 영상 표시" - }, - "mixer": { - "message": "믹서" - }, - "myColors": { - "message": "내 컬러" - }, - "name": { - "message": "이름" - }, - "nativeMiniPlayer": { - "message": "네이티브 미니플레이어" - }, - "new": { - "message": "새로운 소식" - }, - "nextVideo": { - "message": "다음 영상" - }, - "night": { - "message": "저녘" - }, - "noActiveFeatures": { - "message": "활성 기능 없음" - }, - "none": { - "message": "없음" - }, - "noOpenVideoTabs": { - "message": "열린 비디오 탭 없음" - }, - "normal": { - "message": "기본" - }, - "old": { - "message": "오래됨" - }, - "onAllVideos": { - "message": "모든 비디오" - }, - "onlyActiveOnYoutube": { - "message": "유튜브만 활성화" - }, - "onlyOnePlayerInstancePlaying": { - "message": "하나의 플레이어만 재생" - }, - "onSubscribedChannels": { - "message": "구독한 채널" - }, - "orange": { - "message": "주황" - }, - "os": { - "message": "운영체제" - }, - "other": { - "message": "기타" - }, - "permissions": { - "message": "권한" - }, - "pictureInPicture": { - "message": "픽처 인 픽처(PIP) 재생" - }, - "pink": { - "message": "분홍" - }, - "plain": { - "message": "무색" - }, - "platform": { - "message": "플랫폼" - }, - "playbackSpeed": { - "message": "되감기 속도" - }, - "player": { - "message": "플레이어" - }, - "playerColor": { - "message": "플레이어 컬러" - }, - "playerSize": { - "message": "플레이어 크기" - }, - "playlist": { - "message": "플레이리스트" - }, - "playlists": { - "message": "플레이리스트" - }, - "playPause": { - "message": "재생 / 일시정지" - }, - "popupPlayer": { - "message": "팝업 플레이어" - }, - "position": { - "message": "위치" - }, - "pressAnyKeyOrScroll": { - "message": "사용할 단축키 또는 마우스 휠을 누르세요." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "사용할 단축키 또는 마우스 휠을 누르세요." - }, - "previousVideo": { - "message": "이전 영상" - }, - "primaryColor": { - "message": "주 색상" - }, - "purple": { - "message": "보라" - }, - "quality": { - "message": "퀄리티" - }, - "ram": { - "message": "램" - }, - "rateUs": { - "message": "평가하기" - }, - "red": { - "message": "빨강" - }, - "relatedVideos": { - "message": "관련 영상" - }, - "removeRelatedSearchResults": { - "message": "관련 검색결과 제거" - }, - "repeat": { - "message": "반복" - }, - "reset": { - "message": "리셋" - }, - "resetAllSettings": { - "message": "모든 설정 리셋" - }, - "resetAllShortcuts": { - "message": "모든 단축키 리셋" - }, - "reverse": { - "message": "반대로" - }, - "rotate": { - "message": "회전" - }, - "save": { - "message": "저장" - }, - "saveAs": { - "message": "다른이름으로 저장" - }, - "schedule": { - "message": "스케줄" - }, - "screen": { - "message": "스크린" - }, - "screenshot": { - "message": "스크린샷" - }, - "search": { - "message": "검색" - }, - "searchBarOnly": { - "message": "검색창만" - }, - "seekBackward10Seconds": { - "message": "뒤로 10초" - }, - "seekForward10Seconds": { - "message": "앞으로 10초" - }, - "settings": { - "message": "설정" - }, - "settingsSuccessfullyImported": { - "message": "설정 내보내기 완료" - }, - "shortcuts": { - "message": "단축키" - }, - "showCardsOnMouseHover": { - "message": "마우스 올릴 때 카드보기" - }, - "showChannelVideosCount": { - "message": "채널의 비디오수 표시" - }, - "shuffle": { - "message": "셔플" - }, - "sidebar": { - "message": "사이드바" - }, - "spacebar": { - "message": "스페이스바" - }, - "squaredUserImages": { - "message": "정사각형 프로필사진" - }, - "static": { - "message": "고정" - }, - "statsForNerds": { - "message": "너드 통계 표시" - }, - "step": { - "message": "스텝" - }, - "stop": { - "message": "정지" - }, - "style": { - "message": "스타일" - }, - "styles": { - "message": "스타일" - }, - "subscriptions": { - "message": "구독" - }, - "subtitles": { - "message": "자막" - }, - "sunset": { - "message": "일몰" - }, - "sunsetToSunrise": { - "message": "일몰부터 일출까지" - }, - "systemPeferenceDark": { - "message": "개인 설정: 다크" - }, - "systemPeferenceLight": { - "message": "개인 설정: 라이트" - }, - "teal": { - "message": "청록" - }, - "textColor": { - "message": "텍스트 색상" - }, - "themes": { - "message": "테마" - }, - "thisWillRemoveAllCookies": { - "message": "모든 쿠키를 삭제합니다." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "모든 유튜브 쿠키를 삭제합니다." - }, - "thisWillResetAllSettings": { - "message": "모든 설정을 초기화 합니다." - }, - "thisWillResetAllShortcuts": { - "message": "모든 단축키를 초기화 합니다." - }, - "thumbnails": { - "message": "썸네일" - }, - "timeFrom": { - "message": "다음시간 부터" - }, - "timeTo": { - "message": "다음시간 까지" - }, - "todayAt": { - "message": "오늘의" - }, - "toggleCards": { - "message": "토글 카드" - }, - "topChat": { - "message": "탑 챗" - }, - "trailerAutoplay": { - "message": "트레일러 자동재생" - }, - "translations": { - "message": "번역" - }, - "transparentBackground": { - "message": "투명한 배경" - }, - "trending": { - "message": "인기" - }, - "tryToReloadThePage": { - "message": "새로고침을 시도하십시오" - }, - "type": { - "message": "타입" - }, - "upNextAutoplay": { - "message": "다음영상 자동재생" - }, - "use24HourFormat": { - "message": "24시간 형식 사용" - }, - "version": { - "message": "버젼" - }, - "video": { - "message": "영상" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "카테고리의 이름을 얻기 위해 비디오 설명이 확장됩니다" - }, - "videoFormats": { - "message": "비디오 형식" - }, - "videos": { - "message": "비디오" - }, - "volume": { - "message": "음량" - }, - "watchLater": { - "message": "나중에 보기" - }, - "watchTime": { - "message": "시간 보기" - }, - "whenTabIsChanged": { - "message": "탭이 바뀔때" - }, - "white": { - "message": "하양" - }, - "yellow": { - "message": "노랑" - }, - "youtubeHeaderLeft": { - "message": "유튜브 헤더 (왼쪽)" - }, - "youtubeHeaderRight": { - "message": "유튜브 헤더 (오른쪽)" - }, - "youtubeHomePage": { - "message": "유튜브 홈페이지" - }, - "youtubeLanguage": { - "message": "유튜브 언어" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "유튜브는 h.264 코덱에서 비디오 품질을 1080p로 제한합니다" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/nb_NO/messages.json b/3.120-pre/_locales/nb_NO/messages.json deleted file mode 100644 index 77df3b6de..000000000 --- a/3.120-pre/_locales/nb_NO/messages.json +++ /dev/null @@ -1,812 +0,0 @@ -{ - "about": { - "message": "Om" - }, - "accept": { - "message": "aksepter" - }, - "activate": { - "message": "Aktiver" - }, - "activateCaptions": { - "message": "Aktiver underteksting" - }, - "activated": { - "message": "Aktivert" - }, - "activatedFeatures": { - "message": "Aktiverte funksjoner" - }, - "activateFullscreen": { - "message": "Aktiver fullskjerm" - }, - "activeFeatures": { - "message": "Aktive funksjoner" - }, - "addScrollToTop": { - "message": "Legg til «Rull til toppen»" - }, - "ads": { - "message": "Reklamer" - }, - "all": { - "message": "Alle" - }, - "allow": { - "message": "Tillat" - }, - "allow60fps": { - "message": "Tillat 60 bps" - }, - "alwaysActive": { - "message": "Alltid aktiv" - }, - "alwaysShowProgressBar": { - "message": "Alltid vis fremdriftslinje" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analysator" - }, - "appearance": { - "message": "Utseende" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Lyd" - }, - "audioFormats": { - "message": "Lydformater" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-fullskjerm" - }, - "autopauseWhenSwitchingTabs": { - "message": "Autopause når du bytter faner" - }, - "autoplay": { - "message": "Autoplay" - }, - "backupAndReset": { - "message": "Sikkerhetskopiering og tilbakestilling" - }, - "baseOnSystemColorScheme": { - "message": "Baser på systemfargevalg" - }, - "belowPlayer": { - "message": "Nedenfor avspiller" - }, - "black": { - "message": "Svart" - }, - "blacklist": { - "message": "Svartelist" - }, - "blockAll": { - "message": "Blokker alle" - }, - "blue": { - "message": "Blå" - }, - "blueGray": { - "message": "Blågrå" - }, - "bluelight": { - "message": "Blålys" - }, - "brown": { - "message": "Brun" - }, - "browser": { - "message": "Nettleser" - }, - "browserVersion": { - "message": "Nettleser-versjon" - }, - "bubbles": { - "message": "Bobler" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Knapper" - }, - "cancel": { - "message": "Avbryt" - }, - "categories": { - "message": "Kategorier" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanaler" - }, - "clipboard": { - "message": "Utklippstavle" - }, - "codecH264": { - "message": "H.264-kodek" - }, - "collapsed": { - "message": "kollapset" - }, - "collapseOfSubscriptionSections": { - "message": "Kollaps av abonnementsdelene" - }, - "comments": { - "message": "Kommentarer" - }, - "confirmationBeforeClosing": { - "message": "Bekreftelse før stenging" - }, - "cookies": { - "message": "Informasjonskapslene" - }, - "cores": { - "message": "Kjerner" - }, - "cropChapterTitles": { - "message": "Beskjær kapitteltitler" - }, - "customCss": { - "message": "Tilpasset CSS" - }, - "customJs": { - "message": "Tilpasset JS" - }, - "customMiniPlayer": { - "message": "Egendefinert miniavspiller" - }, - "cyan": { - "message": "Blålilla" - }, - "dark": { - "message": "Mørk" - }, - "darkTheme": { - "message": "Mørk drakt" - }, - "dateAndTime": { - "message": "Dato og klokkeslett" - }, - "dawn": { - "message": "Soloppgang" - }, - "decreasePlaybackSpeed": { - "message": "Reduser avspillingshastighet" - }, - "decreaseVolume": { - "message": "Reduser lydstyrken" - }, - "deepOrange": { - "message": "Dyporansje" - }, - "deepPurple": { - "message": "Mørkelilla" - }, - "defaultChannelTab": { - "message": "Forvalgt kanalfane" - }, - "deleteYoutubeCookies": { - "message": "Slett YouTube-informasjonskapsler" - }, - "description": { - "message": "Beskrivelse" - }, - "desert": { - "message": "Ørken" - }, - "details": { - "message": "Detaljer" - }, - "developerOptions": { - "message": "Utviklermuligheter" - }, - "device": { - "message": "Enhet" - }, - "dim": { - "message": "Dim" - }, - "disabled": { - "message": "Avslått" - }, - "dislike": { - "message": "Mislik" - }, - "donate": { - "message": "Doner" - }, - "doNotChange": { - "message": "Ikke endre" - }, - "draggable": { - "message": "Flyttbare" - }, - "email": { - "message": "E-post" - }, - "empty": { - "message": "Tom" - }, - "enabled": { - "message": "Aktivert" - }, - "enabledForced": { - "message": "Aktivert (tvunget)" - }, - "expanded": { - "message": "Utvidet" - }, - "exportSettings": { - "message": "Eksporter innstillinger" - }, - "extension": { - "message": "Utvidelse" - }, - "file": { - "message": "Fil" - }, - "filters": { - "message": "Filtre" - }, - "fitToWindow": { - "message": "Tilpass til vindu" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Bunntekst" - }, - "forcedPlaybackSpeed": { - "message": "Tvungen avspillingshastighet" - }, - "forcedTheaterMode": { - "message": "Tvunget teater-modus" - }, - "forcedVolume": { - "message": "Tvunget lydstyrke" - }, - "foundABug": { - "message": "Fant du en feil?" - }, - "fullWindow": { - "message": "Fullt vindu" - }, - "general": { - "message": "Generelt" - }, - "geoPreference": { - "message": "Geo-preferanse" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Gå til søkefeltet" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Grønn" - }, - "hdThumbnail": { - "message": "HD-miniatyrbilde" - }, - "hdThumbnails": { - "message": "HD-miniatyrbilder" - }, - "header": { - "message": "Overskrift" - }, - "hidden": { - "message": "Skjult" - }, - "hiddenOnVideoPage": { - "message": "Skjult på videosiden" - }, - "hideAnimatedThumbnails": { - "message": "Skjul animerte miniatyrbilder" - }, - "hideAnnotations": { - "message": "Skjul annoteringer" - }, - "hideCards": { - "message": "Skjul kort" - }, - "hideDetails": { - "message": "Skjul detaljer" - }, - "hideEndscreen": { - "message": "Skjul sluttskjerm" - }, - "hideFeaturedContent": { - "message": "Skjul omtalt innhold" - }, - "hideFooter": { - "message": "Skjul bunntekst" - }, - "hideGradientBottom": { - "message": "Skjul bunn-fargeovergang" - }, - "hidePlaylist": { - "message": "Skjul spilleliste" - }, - "hideRightButtons": { - "message": "Skjul høyre-knapper" - }, - "hideScrollForDetails": { - "message": "Skjul «Bla for detaljer»" - }, - "hideViewsCount": { - "message": "Skjul visningsteller" - }, - "history": { - "message": "Historie" - }, - "home": { - "message": "Hjem" - }, - "hover": { - "message": "Hold" - }, - "hoverOnVideoPage": { - "message": "Hold musepekeren på videosiden" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Hvor lenge siden videoen ble opplastet" - }, - "icons": { - "message": "Ikoner" - }, - "iconsOnly": { - "message": "Kun ikoner" - }, - "importSettings": { - "message": "Importer innstillinger" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube-ikonet i nettleseren" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube-ikonet på YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube-språk" - }, - "improvedtubeVersion": { - "message": "ImprovedTube-versjon" - }, - "improveLogo": { - "message": "Forbedre logo" - }, - "increasePlaybackSpeed": { - "message": "Øk avspillingshastigheten" - }, - "increaseVolume": { - "message": "Øk lydstyrken" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Elementer" - }, - "languages": { - "message": "Språk" - }, - "legacyYoutube": { - "message": "Gammeldags YouTube" - }, - "light": { - "message": "Lys" - }, - "lightBlue": { - "message": "Lyseblå" - }, - "lightGreen": { - "message": "Lysegrønn" - }, - "like": { - "message": "Gunst" - }, - "likes": { - "message": "Begunstninger" - }, - "lime": { - "message": "Lime" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Sanntidssludring" - }, - "liveChatType": { - "message": "Sanntidssludringstype" - }, - "loudnessNormalization": { - "message": "Lydstyrkenormalisering" - }, - "markWatchedVideos": { - "message": "Marker sette videoer" - }, - "mixer": { - "message": "Mikser" - }, - "myColors": { - "message": "Mine farger" - }, - "name": { - "message": "Navn" - }, - "nativeMiniPlayer": { - "message": "Innebygd miniavspiller" - }, - "new": { - "message": "Ny" - }, - "nextVideo": { - "message": "Neste video" - }, - "night": { - "message": "Natt" - }, - "noActiveFeatures": { - "message": "Ingen aktive funksjoner" - }, - "none": { - "message": "Ingen" - }, - "noOpenVideoTabs": { - "message": "Ingen åpne videofaner" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Gammel" - }, - "onAllVideos": { - "message": "På alle videoer" - }, - "onlyActiveOnYoutube": { - "message": "Kun aktiv på YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Kun én avspiller viser noe" - }, - "onSubscribedChannels": { - "message": "På abonnementskanaler" - }, - "orange": { - "message": "Oransje" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Andre" - }, - "permissions": { - "message": "rettigheter" - }, - "pictureInPicture": { - "message": "Bilde-i-bilde" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Vanlig" - }, - "platform": { - "message": "Plattform" - }, - "playbackSpeed": { - "message": "Avspillingshastighet" - }, - "player": { - "message": "Avspiller" - }, - "playerColor": { - "message": "Avspiller-farge" - }, - "playerSize": { - "message": "Avspiller-størrelse" - }, - "playlist": { - "message": "Spilleliste" - }, - "playlists": { - "message": "Spillelister" - }, - "playPause": { - "message": "Spill / Pause" - }, - "popupPlayer": { - "message": "Oppsprettsspiller" - }, - "position": { - "message": "Posisjon" - }, - "pressAnyKeyOrScroll": { - "message": "Trykk på hvilken som helst tast, eller bruk musehjulet." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Trykk på hvilken som helst tast, eller bruk musehjulet" - }, - "previousVideo": { - "message": "Forrige video" - }, - "primaryColor": { - "message": "Hovedfarge" - }, - "purple": { - "message": "Lilla" - }, - "quality": { - "message": "Kvalitet" - }, - "ram": { - "message": "Minne" - }, - "rateUs": { - "message": "Rangere oss" - }, - "red": { - "message": "Rød" - }, - "redDislikeButton": { - "message": "Vis tommel ned i rød farge" - }, - "relatedVideos": { - "message": "Relaterte videoer" - }, - "removeRelatedSearchResults": { - "message": "Fjern relaterte søkeresultater" - }, - "repeat": { - "message": "Gjenta" - }, - "reset": { - "message": "Tilbakestill" - }, - "resetAllSettings": { - "message": "Tilbakestill alle instillinger" - }, - "resetAllShortcuts": { - "message": "Tilbakestill alle snarveier" - }, - "reverse": { - "message": "Omvendt" - }, - "rotate": { - "message": "Roter" - }, - "save": { - "message": "Lagre" - }, - "saveAs": { - "message": "Lagre som" - }, - "schedule": { - "message": "Tidsplan" - }, - "screen": { - "message": "Skjerm" - }, - "screenshot": { - "message": "Skjeravbildning" - }, - "search": { - "message": "Søk" - }, - "searchBarOnly": { - "message": "Bare søkefelt" - }, - "seekBackward10Seconds": { - "message": "Spol 10 sekunder bakover" - }, - "seekForward10Seconds": { - "message": "Spol 10 sekunder fremover" - }, - "settings": { - "message": "Innstillinger" - }, - "settingsSuccessfullyImported": { - "message": "Innstillinger importert" - }, - "shortcuts": { - "message": "Snarveier" - }, - "showCardsOnMouseHover": { - "message": "Vis kort på musepekeren" - }, - "showChannelVideosCount": { - "message": "Vis antall kanaler" - }, - "shuffle": { - "message": "Tilfeldig rekkefølge" - }, - "sidebar": { - "message": "Sidepanel" - }, - "spacebar": { - "message": "Mellomrom" - }, - "squaredUserImages": { - "message": "Kvadratiske brukerbilder" - }, - "static": { - "message": "Statisk" - }, - "statsForNerds": { - "message": "Vis statistikk for nerder" - }, - "step": { - "message": "Steg" - }, - "stop": { - "message": "Stopp" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stiler" - }, - "subscriptions": { - "message": "Abonnementer" - }, - "subtitles": { - "message": "Undertekster" - }, - "sunset": { - "message": "Solnedgang" - }, - "sunsetToSunrise": { - "message": "Solnedgang til soloppgang" - }, - "systemPeferenceDark": { - "message": "Systeminnstillinger: mørk" - }, - "systemPeferenceLight": { - "message": "Systeminnstillinger: lys" - }, - "teal": { - "message": "Blågrønn" - }, - "textColor": { - "message": "Tekstfarge" - }, - "themes": { - "message": "Drakter" - }, - "thisWillRemoveAllCookies": { - "message": "Dette vil fjerne alle informasjonskapsler." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Dette vil fjerne alle YouTube-informasjonskapsler" - }, - "thisWillResetAllSettings": { - "message": "Dette vil tilbakestille alle innstillinger." - }, - "thisWillResetAllShortcuts": { - "message": "Dette vil tilbakestille alle snarveier" - }, - "thumbnails": { - "message": "miniatyrbilder " - }, - "timeFrom": { - "message": "Fra" - }, - "timeTo": { - "message": "Til" - }, - "todayAt": { - "message": "I dag kl." - }, - "toggleCards": { - "message": "Veksle kort" - }, - "topChat": { - "message": "Hovedsludring" - }, - "trailerAutoplay": { - "message": "Trailer autospilling" - }, - "translations": { - "message": "Oversettelser" - }, - "transparentBackground": { - "message": "Gjennomsiktig bakgrunn" - }, - "trending": { - "message": "Trender" - }, - "tryToReloadThePage": { - "message": "Forsøk å laste inn siden på nytt" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "«Spilles senere»-autospilling" - }, - "use24HourFormat": { - "message": "Bruk 24-timersformat" - }, - "version": { - "message": "Versjon" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Videobeskrivelsen vil bli utvidet for å få med navnet på kategorien" - }, - "videoFormats": { - "message": "Video-formater" - }, - "videos": { - "message": "Videoer" - }, - "volume": { - "message": "Lydstyrke" - }, - "watchLater": { - "message": "Se senere" - }, - "watchTime": { - "message": "Tid sett" - }, - "whenTabIsChanged": { - "message": "Når fanen endres" - }, - "white": { - "message": "Hvit" - }, - "yellow": { - "message": "Gul" - }, - "youtubeHeaderLeft": { - "message": "YouTube-topptekst (til venstre)" - }, - "youtubeHeaderRight": { - "message": "YouTube-topptekst (til høyre)" - }, - "youtubeHomePage": { - "message": "YouTube-startside" - }, - "youtubeLanguage": { - "message": "YouTube-språk" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube begrenser videokvaliteten til 1080p for H.264-kodeket" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/nl/messages.json b/3.120-pre/_locales/nl/messages.json deleted file mode 100644 index f752e7851..000000000 --- a/3.120-pre/_locales/nl/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "about": { - "message": "Over" - }, - "accept": { - "message": "Accepteren" - }, - "activate": { - "message": "Activeren" - }, - "activateCaptions": { - "message": "Activeer bijschriften" - }, - "activated": { - "message": "Geactiveerd" - }, - "activatedFeatures": { - "message": "Geactiveerde features" - }, - "activateFullscreen": { - "message": "Activeer volledig scherm" - }, - "activeFeatures": { - "message": "Actieve features" - }, - "addScrollToTop": { - "message": "Voeg «Scroll to top» toe" - }, - "ads": { - "message": "Reclames" - }, - "all": { - "message": "Alles" - }, - "allow": { - "message": "Toestaan" - }, - "allow60fps": { - "message": "60fps toestaan" - }, - "alwaysActive": { - "message": "Altijd actief" - }, - "alwaysShowProgressBar": { - "message": "Altijd voortgangsbalk laten zien" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analyse" - }, - "appearance": { - "message": "Uiterlijk" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio formaten" - }, - "auto": { - "message": "Automatisch" - }, - "autoFullscreen": { - "message": "Automatisch volledig scherm" - }, - "autopauseWhenSwitchingTabs": { - "message": "Automatisch pauzeren bij het wisselen van tabbladen" - }, - "autoplay": { - "message": "Automatisch afspelen" - }, - "backupAndReset": { - "message": "Backup maken & reseten" - }, - "baseOnSystemColorScheme": { - "message": "Baseer op kleurenschema van systeem" - }, - "belowPlayer": { - "message": "Onder de speler" - }, - "black": { - "message": "Zwart" - }, - "blacklist": { - "message": "Zwarte lijst" - }, - "blockAll": { - "message": "Alles blokkeren" - }, - "blue": { - "message": "Blauw" - }, - "blueGray": { - "message": "Blauw grijs" - }, - "bluelight": { - "message": "Blauw licht" - }, - "brown": { - "message": "Bruin" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser versie" - }, - "bubbles": { - "message": "Bubbels" - }, - "bug": { - "message": "Insect" - }, - "buttons": { - "message": "Knoppen" - }, - "cancel": { - "message": "Annuleren" - }, - "categories": { - "message": "Categoriën" - }, - "channel": { - "message": "Kanaal" - }, - "channels": { - "message": "Kanalen" - }, - "clipboard": { - "message": "Klembord" - }, - "codecH264": { - "message": "Encoderen in h.264" - }, - "collapsed": { - "message": "Ingeklapt" - }, - "collapseOfSubscriptionSections": { - "message": "Uitklappen van abonnee sectie" - }, - "comments": { - "message": "Reacties" - }, - "confirmationBeforeClosing": { - "message": "Bevestiging voor sluiten" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Kernen" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Aangepaste CSS" - }, - "customJs": { - "message": "Aangepaste JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyaan" - }, - "dark": { - "message": "Donker" - }, - "darkTheme": { - "message": "Donker thema" - }, - "dateAndTime": { - "message": "Datum & tijd" - }, - "dawn": { - "message": "Morgenrood" - }, - "decreasePlaybackSpeed": { - "message": "Verminder afspeelsnelheid" - }, - "decreaseVolume": { - "message": "Verminder volume" - }, - "deepOrange": { - "message": "Donker oranje" - }, - "deepPurple": { - "message": "donker aars" - }, - "defaultChannelTab": { - "message": "Standaard kanaaltabblad" - }, - "deleteYoutubeCookies": { - "message": "YouTube-cookies verwijderen" - }, - "description": { - "message": "Beschrijving" - }, - "desert": { - "message": "Woestijn" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Ontwikkelaarsopties" - }, - "device": { - "message": "Apparaat" - }, - "dim": { - "message": "Dimmen" - }, - "disabled": { - "message": "Uitgeschakeld" - }, - "dislike": { - "message": "Niet leuk vinden" - }, - "donate": { - "message": "Doneer" - }, - "doNotChange": { - "message": "Niet aanpassen" - }, - "draggable": { - "message": "Sleepbaar" - }, - "email": { - "message": "E-mail" - }, - "empty": { - "message": "Leeg" - }, - "enabled": { - "message": "Ingeschakeld" - }, - "enabledForced": { - "message": "Ingeschakeld (geforceerd)" - }, - "expanded": { - "message": "Uitgeklapt" - }, - "exportSettings": { - "message": "Instellingen exporteren" - }, - "extension": { - "message": "Extensie" - }, - "file": { - "message": "Bestand" - }, - "filters": { - "message": "Filters" - }, - "fitToWindow": { - "message": "Aanpassen aan vensterbreedte" - }, - "flash": { - "message": "Flits" - }, - "font": { - "message": "Lettertype" - }, - "footer": { - "message": "Voettekst" - }, - "forcedPlaybackSpeed": { - "message": "Afspeelsnelheid afdwingen" - }, - "forcedTheaterMode": { - "message": "Altijd theatermodus gebruiken" - }, - "forcedVolume": { - "message": "Volume afdwingen" - }, - "foundABug": { - "message": "Heb je een bug gevonden?" - }, - "fullWindow": { - "message": "Volledige venstergrootte" - }, - "general": { - "message": "Algemeen" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Ga naar de zoekbalk" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Groen" - }, - "hdThumbnail": { - "message": "HD-miniatuurvoorbeeld" - }, - "hdThumbnails": { - "message": "HD-miniatuurvoorbeelden" - }, - "header": { - "message": "Kop" - }, - "hidden": { - "message": "Verborgen" - }, - "hiddenOnVideoPage": { - "message": "Verborgen op videopagina" - }, - "hideAnimatedThumbnails": { - "message": "Geen bewegende miniatuurvoorbeelden" - }, - "hideAnnotations": { - "message": "Verberg annotaties" - }, - "hideCards": { - "message": "Verberg kaarten" - }, - "hideDetails": { - "message": "Verberg details" - }, - "hideEndscreen": { - "message": "Verberg eindscherm" - }, - "hideFeaturedContent": { - "message": "Verberg uitgelichte inhoud" - }, - "hideFooter": { - "message": "Verberg voettekst" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "hidePlaylist": { - "message": "Verberg afspeellijst" - }, - "hideRightButtons": { - "message": "Verberg rechter knoppen" - }, - "hideScrollForDetails": { - "message": "Verberg «Scroll for details»" - }, - "hideViewsCount": { - "message": "Verberg views teller" - }, - "history": { - "message": "Geschiedenis" - }, - "home": { - "message": "Thuis" - }, - "hover": { - "message": "Overzweven met cursor" - }, - "hoverOnVideoPage": { - "message": "Overzweven met cursor op videopagina" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Uploaddatum tonen" - }, - "icons": { - "message": "Iconen" - }, - "iconsOnly": { - "message": "Alleen pictogrammen" - }, - "importSettings": { - "message": "Instellingen importeren" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube-pictogram in browser" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icoon op YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube taal" - }, - "improvedtubeVersion": { - "message": "ImprovedTube versie" - }, - "improveLogo": { - "message": "YouTube-logo verbeteren" - }, - "increasePlaybackSpeed": { - "message": "Verhoog afspeelsnelheid" - }, - "increaseVolume": { - "message": "Verhoog volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Talen" - }, - "legacyYoutube": { - "message": "Oude YouTube-uiterlijk" - }, - "light": { - "message": "Licht" - }, - "lightBlue": { - "message": "Licht blauw" - }, - "lightGreen": { - "message": "Licht groen" - }, - "like": { - "message": "Vind ik leuk" - }, - "likes": { - "message": "Vind-ik-leuks" - }, - "lime": { - "message": "Limoen" - }, - "list": { - "message": "Lijst" - }, - "liveChat": { - "message": "Live berichtenvenster" - }, - "liveChatType": { - "message": "Live berichtenvenster type" - }, - "loudnessNormalization": { - "message": "Volume normaliseren" - }, - "markWatchedVideos": { - "message": "Merk bekeken videos aan" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "Mijn kleuren" - }, - "name": { - "message": "Naam" - }, - "nativeMiniPlayer": { - "message": "Ingebouwde minispeler" - }, - "new": { - "message": "Nieuw" - }, - "nextVideo": { - "message": "Volgende video afspelen" - }, - "night": { - "message": "Nacht" - }, - "noActiveFeatures": { - "message": "Geen actieve features" - }, - "none": { - "message": "Geen" - }, - "noOpenVideoTabs": { - "message": "Geen openstaande videotabbladen" - }, - "normal": { - "message": "Normaal" - }, - "old": { - "message": "Oud" - }, - "onAllVideos": { - "message": "Bij alle videos" - }, - "onlyActiveOnYoutube": { - "message": "Alleen actief op YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Slechts één actieve speler toestaan" - }, - "onSubscribedChannels": { - "message": "Op geabonneerde kanalen" - }, - "orange": { - "message": "Oranje" - }, - "os": { - "message": "Besturingssysteem" - }, - "other": { - "message": "Anders" - }, - "permissions": { - "message": "Machtigingen" - }, - "pictureInPicture": { - "message": "Afbeelding-in-Afbeelding" - }, - "pink": { - "message": "Roze" - }, - "plain": { - "message": "Vlakte" - }, - "platform": { - "message": "Platform" - }, - "playbackSpeed": { - "message": "Afspeelsnelheid" - }, - "player": { - "message": "Speler" - }, - "playerColor": { - "message": "Spelerkleur" - }, - "playerSize": { - "message": "Spelergrootte" - }, - "playlist": { - "message": "Afspeellijst" - }, - "playlists": { - "message": "Afspeellijsten" - }, - "playPause": { - "message": "Video afspelen/pauzeren" - }, - "popupPlayer": { - "message": "Pop-upspeler" - }, - "position": { - "message": "Positie" - }, - "pressAnyKeyOrScroll": { - "message": "Druk op een toets of muiswiel." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Druk op een toets of gebruik muiswiel" - }, - "previousVideo": { - "message": "Vorige video afspelen" - }, - "primaryColor": { - "message": "Primaire kleur" - }, - "purple": { - "message": "Paars" - }, - "quality": { - "message": "Kwaliteit" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Geef ons een beoordeling" - }, - "red": { - "message": "Rood" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Gerelateerde video's" - }, - "removeRelatedSearchResults": { - "message": "Verwijder resultaten van gerelateerde videos" - }, - "repeat": { - "message": "Herhalen" - }, - "reset": { - "message": "Herstel" - }, - "resetAllSettings": { - "message": "Standaardwaarden herstellen" - }, - "resetAllShortcuts": { - "message": "Herstel alle snelkoppelingen" - }, - "reverse": { - "message": "Omdraaien" - }, - "rotate": { - "message": "Draaien" - }, - "save": { - "message": "Opslaan" - }, - "saveAs": { - "message": "Opslaan als" - }, - "schedule": { - "message": "Schema" - }, - "screen": { - "message": "Beeldscherm" - }, - "screenshot": { - "message": "Schermafbeelding" - }, - "search": { - "message": "Zoeken" - }, - "searchBarOnly": { - "message": "Alleen zoekbalk" - }, - "seekBackward10Seconds": { - "message": "Zoek 10 seconde terug" - }, - "seekForward10Seconds": { - "message": "Zoek 10 seconde naar voren" - }, - "settings": { - "message": "Instellingen" - }, - "settingsSuccessfullyImported": { - "message": "Instellingen succesvol geïmporteerd" - }, - "shortcuts": { - "message": "Sneltoetsen" - }, - "showCardsOnMouseHover": { - "message": "Laat kaarten zien onder muisaanwijzer" - }, - "showChannelVideosCount": { - "message": "Aantal kanaalvideo's tonen" - }, - "shuffle": { - "message": "Willekeurig" - }, - "sidebar": { - "message": "Zijbalk" - }, - "spacebar": { - "message": "Spatiebalk" - }, - "squaredUserImages": { - "message": "Vierkante gebruikersafbeeldingen" - }, - "static": { - "message": "Statisch" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Stap" - }, - "stop": { - "message": "Stoppen" - }, - "style": { - "message": "Stijl" - }, - "styles": { - "message": "Stijlen" - }, - "subscriptions": { - "message": "Abonnementen" - }, - "subtitles": { - "message": "Ondertiteling tonen" - }, - "sunset": { - "message": "Zonsondergang" - }, - "sunsetToSunrise": { - "message": "Zonsondergang tot zonsopkomst" - }, - "systemPeferenceDark": { - "message": "Systeem voorkeur: donker" - }, - "systemPeferenceLight": { - "message": "Systeem voorkeur: licht" - }, - "teal": { - "message": "Groenblauw" - }, - "textColor": { - "message": "Tekst kleur" - }, - "themes": { - "message": "Thema's" - }, - "thisWillRemoveAllCookies": { - "message": "Dit verwijdert alle cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Dit verwijdert alle YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "Dit herstelt alle instellingen." - }, - "thisWillResetAllShortcuts": { - "message": "Dit herstelt alle snelkoppelingen" - }, - "thumbnails": { - "message": "Miniatuurvoorbeelden" - }, - "timeFrom": { - "message": "Tijd vanaf" - }, - "timeTo": { - "message": "Tijd tot" - }, - "todayAt": { - "message": "Vandaag om" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "Top-chat" - }, - "trailerAutoplay": { - "message": "Trailer automatisch afspelen" - }, - "translations": { - "message": "vertalingen" - }, - "transparentBackground": { - "message": "Doorzichtige achtergrond" - }, - "trending": { - "message": "Populair" - }, - "tryToReloadThePage": { - "message": "Probeer de pagina te herladen" - }, - "type": { - "message": "Soort" - }, - "upNextAutoplay": { - "message": "Volgende in wachtrij automatisch afspelen" - }, - "use24HourFormat": { - "message": "24-uurstijd gebruiken" - }, - "version": { - "message": "Versie" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video omschrijving wordt uitgeklapt om de naam van de categorie te verkrijgen" - }, - "videoFormats": { - "message": "Video formaten" - }, - "videos": { - "message": "Video's" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Later bekijken" - }, - "watchTime": { - "message": "Kijk tijd" - }, - "whenTabIsChanged": { - "message": "Wanneer het tabblat veranderd" - }, - "white": { - "message": "Wit" - }, - "yellow": { - "message": "Geel" - }, - "youtubeHeaderLeft": { - "message": "YouTube-kop (links)" - }, - "youtubeHeaderRight": { - "message": "YouTube-kop (rechts)" - }, - "youtubeHomePage": { - "message": "YouTube-startpagina" - }, - "youtubeLanguage": { - "message": "YouTube taal" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limiteerd video kwaliteit tot 1080p voor h.264 codec" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/no/messages.json b/3.120-pre/_locales/no/messages.json deleted file mode 100644 index b81b943ba..000000000 --- a/3.120-pre/_locales/no/messages.json +++ /dev/null @@ -1,800 +0,0 @@ -{ - "about": { - "message": "Om" - }, - "accept": { - "message": "aksepter" - }, - "activate": { - "message": "Aktiver" - }, - "activateCaptions": { - "message": "Aktiver texting" - }, - "activated": { - "message": "Aktivert" - }, - "activatedFeatures": { - "message": "Aktiverte funksjoner" - }, - "activateFullscreen": { - "message": "Aktiver fullskjerm" - }, - "activeFeatures": { - "message": "Aktive funksjoner" - }, - "addScrollToTop": { - "message": "Legg til «Rull til toppen»" - }, - "ads": { - "message": "Reklamer" - }, - "all": { - "message": "Alle" - }, - "allow": { - "message": "Tillat" - }, - "allow60fps": { - "message": "Tillat 60fps" - }, - "alwaysActive": { - "message": "Alltid aktiv" - }, - "alwaysShowProgressBar": { - "message": "Alltid vis fremdriftslinje" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analysator" - }, - "appearance": { - "message": "Utseende" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Lyd" - }, - "audioFormats": { - "message": "Lyd formater" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-fullskjerm" - }, - "autopauseWhenSwitchingTabs": { - "message": "Autopause når du bytter faner" - }, - "autoplay": { - "message": "Autoplay" - }, - "backupAndReset": { - "message": "Sikkerhetskopiering og tilbakestilling" - }, - "baseOnSystemColorScheme": { - "message": "Baser på systemfargevalg" - }, - "belowPlayer": { - "message": "Nedenfor spiller" - }, - "black": { - "message": "Svart" - }, - "blacklist": { - "message": "Svartelist" - }, - "blockAll": { - "message": "Blokker alle" - }, - "blue": { - "message": "Blå" - }, - "blueGray": { - "message": "Blå grå" - }, - "bluelight": { - "message": "Blålys" - }, - "brown": { - "message": "Brun" - }, - "browser": { - "message": "Nettleser" - }, - "browserVersion": { - "message": "Nettleser versjon" - }, - "bubbles": { - "message": "Bobler" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Knapper" - }, - "cancel": { - "message": "Avbryt" - }, - "categories": { - "message": "Kategorier" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanaler" - }, - "clipboard": { - "message": "Utklippstavle" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "kollapset" - }, - "collapseOfSubscriptionSections": { - "message": "Kollaps av abonnements seksjonene" - }, - "comments": { - "message": "Kommentarer" - }, - "confirmationBeforeClosing": { - "message": "Bekreftelse før stenging" - }, - "cookies": { - "message": "Informasjonskapslene" - }, - "cores": { - "message": "Kjerner" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Tilpasset CSS" - }, - "customJs": { - "message": "Tilpasset JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Mørk" - }, - "darkTheme": { - "message": "Mørkt tema" - }, - "dateAndTime": { - "message": "Dato og klokkeslett" - }, - "dawn": { - "message": "Soloppgang" - }, - "decreasePlaybackSpeed": { - "message": "Reduser avspillingshastighet" - }, - "decreaseVolume": { - "message": "Reduser volumet" - }, - "deepOrange": { - "message": "Dyporansje" - }, - "deepPurple": { - "message": "Mørkelilla" - }, - "defaultChannelTab": { - "message": "Standard kanalfane" - }, - "deleteYoutubeCookies": { - "message": "Slett YouTube-informasjonskapsler" - }, - "description": { - "message": "Beskrivelse" - }, - "desert": { - "message": "Ørken" - }, - "details": { - "message": "Detaljer" - }, - "developerOptions": { - "message": "Utviklermuligheter" - }, - "device": { - "message": "Enhet" - }, - "dim": { - "message": "Dim" - }, - "disabled": { - "message": "Avslått" - }, - "dislike": { - "message": "Mislik" - }, - "donate": { - "message": "Doner" - }, - "doNotChange": { - "message": "Ikke endre" - }, - "draggable": { - "message": "Flyttbare" - }, - "email": { - "message": "E-post" - }, - "empty": { - "message": "Tom" - }, - "enabled": { - "message": "Aktivert" - }, - "enabledForced": { - "message": "Aktivert (tvunget)" - }, - "expanded": { - "message": "Utvidet" - }, - "exportSettings": { - "message": "Eksporter innstillinger" - }, - "extension": { - "message": "Utvidelse" - }, - "file": { - "message": "Fil" - }, - "filters": { - "message": "Filtre" - }, - "fitToWindow": { - "message": "Tilpass til vindu" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Bunntekst" - }, - "forcedPlaybackSpeed": { - "message": "Tvungen avspillingshastighet" - }, - "forcedTheaterMode": { - "message": "Tvunget teater-modus" - }, - "forcedVolume": { - "message": "Tvangsvolum" - }, - "foundABug": { - "message": "Fant du en feil?" - }, - "fullWindow": { - "message": "Fullt vindu" - }, - "general": { - "message": "Generell" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Gå til søkefeltet" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Grønn" - }, - "hdThumbnail": { - "message": "HD-miniatyrbilde" - }, - "hdThumbnails": { - "message": "HD-miniatyrbilder" - }, - "header": { - "message": "Overskrift" - }, - "hidden": { - "message": "Skjult" - }, - "hiddenOnVideoPage": { - "message": "Skjult på video siden" - }, - "hideAnimatedThumbnails": { - "message": "Skjul animerte miniatyrbilder" - }, - "hideAnnotations": { - "message": "Skjul annoteringer" - }, - "hideCards": { - "message": "Skjul kort" - }, - "hideDetails": { - "message": "Skjul detaljer" - }, - "hideEndscreen": { - "message": "Skjul sluttskjerm" - }, - "hideFeaturedContent": { - "message": "Skjul omtalt innhold" - }, - "hideFooter": { - "message": "Skjul bunntekst " - }, - "hidePlaylist": { - "message": "Skjul spilleliste" - }, - "hideRightButtons": { - "message": "Skjul høyre knapper" - }, - "hideScrollForDetails": { - "message": "Skjul «Bla for detaljer»" - }, - "hideViewsCount": { - "message": "Skjul visninger teller" - }, - "history": { - "message": "Historie" - }, - "home": { - "message": "Hjem" - }, - "hover": { - "message": "Hold" - }, - "hoverOnVideoPage": { - "message": "Hold musepekeren på videosiden" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Hvor lenge siden videoen ble lastet opp" - }, - "icons": { - "message": "Ikoner" - }, - "iconsOnly": { - "message": "Bare Ikoner" - }, - "importSettings": { - "message": "Importer innstillinger" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube-ikonet i nettleseren" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube-ikonet på YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube språk" - }, - "improvedtubeVersion": { - "message": "ImprovedTube versjon" - }, - "improveLogo": { - "message": "Improve logo" - }, - "increasePlaybackSpeed": { - "message": "Øk avspillingshastigheten" - }, - "increaseVolume": { - "message": "Øk volumet" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Elementer" - }, - "languages": { - "message": "Språk" - }, - "legacyYoutube": { - "message": "Legacy YouTube" - }, - "light": { - "message": "Lys" - }, - "lightBlue": { - "message": "Lyse blå" - }, - "lightGreen": { - "message": "Lyse grønn" - }, - "like": { - "message": "Like" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Lime" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Live chat" - }, - "liveChatType": { - "message": "Live chat type" - }, - "loudnessNormalization": { - "message": "Høytthetsnormalisering" - }, - "markWatchedVideos": { - "message": "Marker sette videoer" - }, - "mixer": { - "message": "Mikser" - }, - "myColors": { - "message": "Mine farger" - }, - "name": { - "message": "Navn" - }, - "nativeMiniPlayer": { - "message": "Innfødt minispiller" - }, - "new": { - "message": "Ny" - }, - "nextVideo": { - "message": "Neste video" - }, - "night": { - "message": "Natt" - }, - "noActiveFeatures": { - "message": "Ingen aktive funksjoner" - }, - "none": { - "message": "Ingen" - }, - "noOpenVideoTabs": { - "message": "Ingen åpne videofaner" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Gammel" - }, - "onAllVideos": { - "message": "På alle videoer" - }, - "onlyActiveOnYoutube": { - "message": "Bare aktiv på YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Bare en spillerforekomst som spiller" - }, - "onSubscribedChannels": { - "message": "På abonnementskanaler" - }, - "orange": { - "message": "Oransje" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Andre" - }, - "permissions": { - "message": "rettigheter" - }, - "pictureInPicture": { - "message": "Bilde-i-bilde" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Vanlig" - }, - "platform": { - "message": "Plattform" - }, - "playbackSpeed": { - "message": "Avspillingshastighet" - }, - "player": { - "message": "Spiller" - }, - "playerColor": { - "message": "Spiller farge" - }, - "playerSize": { - "message": "Spiller størrelse" - }, - "playlist": { - "message": "Spilleliste" - }, - "playlists": { - "message": "Spillelister" - }, - "playPause": { - "message": "Spill / Pause" - }, - "popupPlayer": { - "message": "Popup-spiller" - }, - "position": { - "message": "Posisjon" - }, - "pressAnyKeyOrScroll": { - "message": "Trykk på hvilken som helst tast eller bruk musehjulet." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Trykk på hvilken som helst tast eller bruk musehjulet" - }, - "previousVideo": { - "message": "Forrige video" - }, - "primaryColor": { - "message": "Hovedfarge" - }, - "purple": { - "message": "Lilla" - }, - "quality": { - "message": "Quality" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Rangere oss" - }, - "red": { - "message": "Rød" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Relaterte videoer" - }, - "removeRelatedSearchResults": { - "message": "Fjern relaterte søkeresultater" - }, - "repeat": { - "message": "Gjenta" - }, - "reset": { - "message": "Tilbakestill" - }, - "resetAllSettings": { - "message": "Tilbakestill alle instillinger" - }, - "resetAllShortcuts": { - "message": "Tilbakestill alle snarveier" - }, - "reverse": { - "message": "Omvendt" - }, - "rotate": { - "message": "Roter" - }, - "save": { - "message": "Lagre" - }, - "saveAs": { - "message": "Lagre som" - }, - "schedule": { - "message": "Tidsplan" - }, - "screen": { - "message": "Skjerm" - }, - "screenshot": { - "message": "Skjermbilde" - }, - "search": { - "message": "Søk" - }, - "searchBarOnly": { - "message": "Bare søkefelt" - }, - "seekBackward10Seconds": { - "message": "Spol 10 sekunder bakover" - }, - "seekForward10Seconds": { - "message": "Spol 10 sekunder frem" - }, - "settings": { - "message": "Innstillinger" - }, - "settingsSuccessfullyImported": { - "message": "Innstillinger importert" - }, - "shortcuts": { - "message": "Snarveier" - }, - "showCardsOnMouseHover": { - "message": "Vis kort på musepekeren" - }, - "showChannelVideosCount": { - "message": "Vis antall kanaler" - }, - "shuffle": { - "message": "Tilfeldig rekkefølge" - }, - "sidebar": { - "message": "Sidepanel" - }, - "spacebar": { - "message": "Mellomrom" - }, - "squaredUserImages": { - "message": "Kvadratiske brukerbilder" - }, - "static": { - "message": "Statisk" - }, - "step": { - "message": "Steg" - }, - "stop": { - "message": "Stopp" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stiler" - }, - "subscriptions": { - "message": "Abonnementer" - }, - "subtitles": { - "message": "Undertekster" - }, - "sunset": { - "message": "Solnedgang" - }, - "sunsetToSunrise": { - "message": "Solnedgang til soloppgang" - }, - "systemPeferenceDark": { - "message": "Systeminnstillinger: mørk" - }, - "systemPeferenceLight": { - "message": "Systeminnstillinger: lys" - }, - "teal": { - "message": "Blågrønn" - }, - "textColor": { - "message": "Tekstfarge" - }, - "themes": { - "message": "Temaer" - }, - "thisWillRemoveAllCookies": { - "message": "Dette vil fjerne alle informasjonskapsler." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Dette vil fjerne alle YouTube-informasjonskapsler" - }, - "thisWillResetAllSettings": { - "message": "Dette vil tilbakestille alle innstillinger." - }, - "thisWillResetAllShortcuts": { - "message": "Dette vil tilbakestille alle snarveier" - }, - "thumbnails": { - "message": "miniatyrbilder " - }, - "timeFrom": { - "message": "Tid fra" - }, - "timeTo": { - "message": "Tid til" - }, - "todayAt": { - "message": "I dag kl" - }, - "topChat": { - "message": "Hoved chat" - }, - "trailerAutoplay": { - "message": "Trailer autospilling" - }, - "translations": { - "message": "Oversettelser" - }, - "transparentBackground": { - "message": "Gjennomsiktig bakgrunn" - }, - "trending": { - "message": "Trender" - }, - "tryToReloadThePage": { - "message": "Forsøk å laste inn siden på nytt" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "Opp neste autospilling" - }, - "use24HourFormat": { - "message": "Bruk 24-timers format" - }, - "version": { - "message": "Versjon" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Videobeskrivelsen vil bli utvidet for å få navnet på kategorien" - }, - "videoFormats": { - "message": "Video formater" - }, - "videos": { - "message": "Videoer" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Se senere" - }, - "watchTime": { - "message": "Tid sett" - }, - "whenTabIsChanged": { - "message": "Når fanen endres" - }, - "white": { - "message": "Hvit" - }, - "yellow": { - "message": "Gul" - }, - "youtubeHeaderLeft": { - "message": "YouTube Header (til venstre)" - }, - "youtubeHeaderRight": { - "message": "YouTube Header (til høyre)" - }, - "youtubeHomePage": { - "message": "YouTube startside" - }, - "youtubeLanguage": { - "message": "YouTube språk" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube begrenser videokvaliteten til 1080p for h.264-kodeken" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/pt_BR/messages.json b/3.120-pre/_locales/pt_BR/messages.json deleted file mode 100644 index 366c66f74..000000000 --- a/3.120-pre/_locales/pt_BR/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "about": { - "message": "Sobre" - }, - "accept": { - "message": "Accept" - }, - "activate": { - "message": "Activate" - }, - "activateCaptions": { - "message": "Ativar legendas" - }, - "activated": { - "message": "Activated" - }, - "activatedFeatures": { - "message": "Activated features" - }, - "activateFullscreen": { - "message": "Ativar tela cheia" - }, - "activeFeatures": { - "message": "Funções ativas" - }, - "addScrollToTop": { - "message": "Habilitar botão «Voltar ao Topo»" - }, - "ads": { - "message": "Anúncios" - }, - "all": { - "message": "All" - }, - "allow": { - "message": "Permitir" - }, - "allow60fps": { - "message": "Permitir 60fps" - }, - "alwaysActive": { - "message": "Sempre ativo" - }, - "alwaysShowProgressBar": { - "message": "Sempre exibir a barra de progresso" - }, - "amber": { - "message": "Âmbar" - }, - "analyzer": { - "message": "Analítico" - }, - "appearance": { - "message": "Aparência" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Áudio" - }, - "audioFormats": { - "message": "Formatos de áudio" - }, - "auto": { - "message": "Automático" - }, - "autoFullscreen": { - "message": "Tela cheia automática" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausar vídeo ao alternar entre abas" - }, - "autoplay": { - "message": "Reprodução automática" - }, - "backupAndReset": { - "message": "Backup & Restauração" - }, - "baseOnSystemColorScheme": { - "message": "Baseado nas cores do sistema" - }, - "belowPlayer": { - "message": "Abaixo do player" - }, - "black": { - "message": "Preto" - }, - "blacklist": { - "message": "Lista negra" - }, - "blockAll": { - "message": "Bloquear tudo" - }, - "blue": { - "message": "Azul" - }, - "blueGray": { - "message": "Cinza Azulado" - }, - "bluelight": { - "message": "Filtrar luz azul" - }, - "brown": { - "message": "Marrom" - }, - "browser": { - "message": "Navegador" - }, - "browserVersion": { - "message": "Versão do navegador" - }, - "bubbles": { - "message": "Bolhas" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Botões" - }, - "cancel": { - "message": "Cancelar" - }, - "categories": { - "message": "Categorias" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canais" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Retraído" - }, - "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" - }, - "comments": { - "message": "Comentários" - }, - "confirmationBeforeClosing": { - "message": "Alerta ao fechar a página" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Núcleos" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Custom JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Ciano" - }, - "dark": { - "message": "Obscuro" - }, - "darkTheme": { - "message": "Tema escuro" - }, - "dateAndTime": { - "message": "Data & Hora" - }, - "dawn": { - "message": "Alvorecer" - }, - "decreasePlaybackSpeed": { - "message": "Diminuir velocidade" - }, - "decreaseVolume": { - "message": "Diminuir volume" - }, - "deepOrange": { - "message": "Laranja Escuro" - }, - "deepPurple": { - "message": "Roxo Escuro" - }, - "defaultChannelTab": { - "message": "Aba padrão do canal" - }, - "deleteYoutubeCookies": { - "message": "Deletar cookies do YouTube" - }, - "description": { - "message": "Descrição" - }, - "desert": { - "message": "Deserto" - }, - "details": { - "message": "Detalhes" - }, - "developerOptions": { - "message": "Developer options" - }, - "device": { - "message": "Dispositivo" - }, - "dim": { - "message": "Escurecer" - }, - "disabled": { - "message": "Desabilitado" - }, - "dislike": { - "message": "Não Gostei." - }, - "donate": { - "message": "Doar" - }, - "doNotChange": { - "message": "Não alterar" - }, - "draggable": { - "message": "Arrastável" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Vazio" - }, - "enabled": { - "message": "Habilitado" - }, - "enabledForced": { - "message": "Enabled (forced)" - }, - "expanded": { - "message": "Expandido" - }, - "exportSettings": { - "message": "Exportar configurações" - }, - "extension": { - "message": "Extensão" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filtros" - }, - "fitToWindow": { - "message": "Ajustar à janela" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Rodapé" - }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, - "forcedTheaterMode": { - "message": "Forçar modo teatro" - }, - "forcedVolume": { - "message": "Forçar volume" - }, - "foundABug": { - "message": "Encontrou um bug?" - }, - "fullWindow": { - "message": "Preencher a janela" - }, - "general": { - "message": "Geral" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Selecionar barra de pesquisa" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura em HD" - }, - "hdThumbnails": { - "message": "Miniaturas em HD" - }, - "header": { - "message": "Cabeçalho" - }, - "hidden": { - "message": "Oculto" - }, - "hiddenOnVideoPage": { - "message": "Oculto na página de vídeo" - }, - "hideAnimatedThumbnails": { - "message": "Desabilitar miniaturas animadas" - }, - "hideAnnotations": { - "message": "Ocultar anotações" - }, - "hideCards": { - "message": "Ocultar cards" - }, - "hideDetails": { - "message": "Ocultar detalhes" - }, - "hideEndscreen": { - "message": "Ocultar tela final" - }, - "hideFeaturedContent": { - "message": "Ocultar conteúdo em destaque" - }, - "hideFooter": { - "message": "Ocultar rodapé" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "hidePlaylist": { - "message": "Ocultar playlist" - }, - "hideRightButtons": { - "message": "Ocultar botões à direita" - }, - "hideScrollForDetails": { - "message": "Ocultar «Rolar Para Ver Detalhes»" - }, - "hideViewsCount": { - "message": "Ocultar visualizações" - }, - "history": { - "message": "Histórico" - }, - "home": { - "message": "Início" - }, - "hover": { - "message": "Retrátil" - }, - "hoverOnVideoPage": { - "message": "Retrátil na página de video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Tempo decorrido desde a publicação" - }, - "icons": { - "message": "Ícones" - }, - "iconsOnly": { - "message": "Apenas ícones" - }, - "importSettings": { - "message": "Importar configurações" - }, - "improvedtubeIconInBrowser": { - "message": "Ícone do ImprovedTube no navegador" - }, - "improvedtubeIconOnYoutube": { - "message": "Ícone do ImprovedTube no YouTube" - }, - "improvedtubeLanguage": { - "message": "Idioma do ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versão do ImprovedTube" - }, - "improveLogo": { - "message": "Aprimorar logomarca" - }, - "increasePlaybackSpeed": { - "message": "Aumentar velocidade" - }, - "increaseVolume": { - "message": "Diminuir volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Itens" - }, - "languages": { - "message": "Idiomas" - }, - "legacyYoutube": { - "message": "YouTube antigo" - }, - "light": { - "message": "Claro" - }, - "lightBlue": { - "message": "Azul Claro" - }, - "lightGreen": { - "message": "Verde Claro" - }, - "like": { - "message": "Gostei!" - }, - "likes": { - "message": "Avaliações" - }, - "lime": { - "message": "Verde Limão" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Bate-Papo Ao Vivo" - }, - "liveChatType": { - "message": "Live chat type" - }, - "loudnessNormalization": { - "message": "Normalização de volume" - }, - "markWatchedVideos": { - "message": "Mark watched videos" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "My colors" - }, - "name": { - "message": "Nome" - }, - "nativeMiniPlayer": { - "message": "Mini player nativo" - }, - "new": { - "message": "Novo" - }, - "nextVideo": { - "message": "Próximo vídeo" - }, - "night": { - "message": "Noite" - }, - "noActiveFeatures": { - "message": "No active features" - }, - "none": { - "message": "Nenhum" - }, - "noOpenVideoTabs": { - "message": "Nenhuma aba de vídeo aberta" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Antigo" - }, - "onAllVideos": { - "message": "Em todos os vídeos" - }, - "onlyActiveOnYoutube": { - "message": "Ativo apenas no YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "onSubscribedChannels": { - "message": "Apenas em inscrições" - }, - "orange": { - "message": "Laranja" - }, - "os": { - "message": "Sistema Operacional" - }, - "other": { - "message": "Outras opções" - }, - "permissions": { - "message": "Permissões" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Panície" - }, - "platform": { - "message": "Plataforma" - }, - "playbackSpeed": { - "message": "Velocidade de reprodução" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Cor do player" - }, - "playerSize": { - "message": "Tamanho do player" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "playPause": { - "message": "Reproduzir / Pausar" - }, - "popupPlayer": { - "message": "Player externo" - }, - "position": { - "message": "Posição" - }, - "pressAnyKeyOrScroll": { - "message": "Pressione qualquer tecla ou use a roda do mouse" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Pressione qualquer tecla ou use a roda do mouse" - }, - "previousVideo": { - "message": "Vídeo anterior" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "Roxo" - }, - "quality": { - "message": "Qualidade" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Avalie-nos!" - }, - "red": { - "message": "Vermelho" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Vídeos relacionados" - }, - "removeRelatedSearchResults": { - "message": "Remove related search results" - }, - "repeat": { - "message": "Repetir" - }, - "reset": { - "message": "Restaurar" - }, - "resetAllSettings": { - "message": "Restaurar todas as configurações" - }, - "resetAllShortcuts": { - "message": "Reset all shortcuts" - }, - "reverse": { - "message": "Reverso" - }, - "rotate": { - "message": "Rotacionar" - }, - "save": { - "message": "Salvar" - }, - "saveAs": { - "message": "Salvar como" - }, - "schedule": { - "message": "Agendamento" - }, - "screen": { - "message": "Tela" - }, - "screenshot": { - "message": "Captura de tela" - }, - "search": { - "message": "Pesquisar" - }, - "searchBarOnly": { - "message": "Apenas barra de pesquisa" - }, - "seekBackward10Seconds": { - "message": "Retroceder 10 segundos" - }, - "seekForward10Seconds": { - "message": "Avançar 10 segundos" - }, - "settings": { - "message": "Configurações" - }, - "settingsSuccessfullyImported": { - "message": "Configurações importadas com sucesso" - }, - "shortcuts": { - "message": "Atalhos" - }, - "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" - }, - "showChannelVideosCount": { - "message": "Número de vídeos do canal" - }, - "shuffle": { - "message": "Aleatório" - }, - "sidebar": { - "message": "Painel lateral" - }, - "spacebar": { - "message": "Espaço" - }, - "squaredUserImages": { - "message": "Avatares quadrados" - }, - "static": { - "message": "Estático" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Parar" - }, - "style": { - "message": "Estilo" - }, - "styles": { - "message": "Estilos" - }, - "subscriptions": { - "message": "Inscrições" - }, - "subtitles": { - "message": "Legendas" - }, - "sunset": { - "message": "Pôr do Sol" - }, - "sunsetToSunrise": { - "message": "Durante a noite" - }, - "systemPeferenceDark": { - "message": "Preferência do sistema: Escuro" - }, - "systemPeferenceLight": { - "message": "Preferência do sistema: Claro" - }, - "teal": { - "message": "Verde Azulado" - }, - "textColor": { - "message": "Text color" - }, - "themes": { - "message": "Temas" - }, - "thisWillRemoveAllCookies": { - "message": "Todos os cookies serão removidos." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Todos os cookies do YouTube serão removidos" - }, - "thisWillResetAllSettings": { - "message": "As configurações padrão serão restauradas." - }, - "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" - }, - "thumbnails": { - "message": "Miniaturas" - }, - "timeFrom": { - "message": "Horário inicial" - }, - "timeTo": { - "message": "Horário final" - }, - "todayAt": { - "message": "Hoje às" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Reproduzir trailer" - }, - "translations": { - "message": "Translations" - }, - "transparentBackground": { - "message": "Fundo transparente" - }, - "trending": { - "message": "Em Alta" - }, - "tryToReloadThePage": { - "message": "Recarregue a página" - }, - "type": { - "message": "Tipo" - }, - "upNextAutoplay": { - "message": "Reproduzir vídeo em seguida" - }, - "use24HourFormat": { - "message": "Usar formato de 24 horas" - }, - "version": { - "message": "Versão" - }, - "video": { - "message": "Vídeo" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "A descrição se expandirá para acessar a categoria do vídeo" - }, - "videoFormats": { - "message": "Formatos de vídeo" - }, - "videos": { - "message": "Vídeos" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Assistir mais tarde" - }, - "watchTime": { - "message": "Tempo de exibição" - }, - "whenTabIsChanged": { - "message": "Quando alternar entre abas" - }, - "white": { - "message": "Branco" - }, - "yellow": { - "message": "Amarelo" - }, - "youtubeHeaderLeft": { - "message": "No cabeçalho à esquerda" - }, - "youtubeHeaderRight": { - "message": "No cabeçalho à direita" - }, - "youtubeHomePage": { - "message": "Página inicial do YouTube" - }, - "youtubeLanguage": { - "message": "Idioma do YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "O YouTube limita o codec h.264 à resolução de 1080p" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/pt_PT/messages.json b/3.120-pre/_locales/pt_PT/messages.json deleted file mode 100644 index 2603e81ad..000000000 --- a/3.120-pre/_locales/pt_PT/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "about": { - "message": "Acerca" - }, - "accept": { - "message": "Aceitar" - }, - "activate": { - "message": "Ativar" - }, - "activateCaptions": { - "message": "Ativar legendas" - }, - "activated": { - "message": "Ativado" - }, - "activatedFeatures": { - "message": "Opções ativadas" - }, - "activateFullscreen": { - "message": "Ativar ecrã completo" - }, - "activeFeatures": { - "message": "Opções ativas" - }, - "addScrollToTop": { - "message": "Adicionar «Ir para o topo»" - }, - "ads": { - "message": "Anúncios" - }, - "all": { - "message": "Todas" - }, - "allow": { - "message": "Permitir" - }, - "allow60fps": { - "message": "Permitir 60fps" - }, - "alwaysActive": { - "message": "Sempre ativo" - }, - "alwaysShowProgressBar": { - "message": "Mostrar sempre a barra de progressos" - }, - "amber": { - "message": "Âmbar" - }, - "analyzer": { - "message": "Analisador" - }, - "appearance": { - "message": "Aparência" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Áudio" - }, - "audioFormats": { - "message": "Formatos de áudio" - }, - "auto": { - "message": "Automático" - }, - "autoFullscreen": { - "message": "Ecrân completo automático" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausa quando muda de abas" - }, - "autoplay": { - "message": "Reprodução automática" - }, - "backupAndReset": { - "message": "Cópia de segurança e repor" - }, - "baseOnSystemColorScheme": { - "message": "Baseado no esquema de cores do sistema" - }, - "belowPlayer": { - "message": "Reprodutor abaixo" - }, - "black": { - "message": "Preto" - }, - "blacklist": { - "message": "Lista negra" - }, - "blockAll": { - "message": "Bloquear todos" - }, - "blue": { - "message": "Azul" - }, - "blueGray": { - "message": "Azul acizentado" - }, - "bluelight": { - "message": "Azul claro" - }, - "brown": { - "message": "Castanho" - }, - "browser": { - "message": "Navegador" - }, - "browserVersion": { - "message": "Versão do navegador" - }, - "bubbles": { - "message": "Bolhas" - }, - "bug": { - "message": "Erro" - }, - "buttons": { - "message": "Botões" - }, - "cancel": { - "message": "Cancelar" - }, - "categories": { - "message": "Categorias" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canais" - }, - "clipboard": { - "message": "Area de transferência" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Extender" - }, - "collapseOfSubscriptionSections": { - "message": "Extender as secções escolhidas" - }, - "comments": { - "message": "Comentários" - }, - "confirmationBeforeClosing": { - "message": "Confirmar antes de encerrar" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "CSS personalizadas" - }, - "customJs": { - "message": "JS personalizadas" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Esverdeado" - }, - "dark": { - "message": "Escuro" - }, - "darkTheme": { - "message": "Tema escuro" - }, - "dateAndTime": { - "message": "Data & hora" - }, - "dawn": { - "message": "Escurecer" - }, - "decreasePlaybackSpeed": { - "message": "Diminuir velocidade de leitura" - }, - "decreaseVolume": { - "message": "Diminuir volume" - }, - "deepOrange": { - "message": "Laranja forte" - }, - "deepPurple": { - "message": "Lilás forte" - }, - "defaultChannelTab": { - "message": "Aba padrão do canal" - }, - "deleteYoutubeCookies": { - "message": "Apagar os cookies do YouTube" - }, - "description": { - "message": "Descrição" - }, - "desert": { - "message": "Deserto" - }, - "details": { - "message": "Detalhes" - }, - "developerOptions": { - "message": "Opções de programador" - }, - "device": { - "message": "Aparelho" - }, - "dim": { - "message": "Escurecer" - }, - "disabled": { - "message": "Desabilitado" - }, - "dislike": { - "message": "Não gostar" - }, - "donate": { - "message": "Doar" - }, - "doNotChange": { - "message": "Não mudes" - }, - "draggable": { - "message": "Podes arrastar" - }, - "email": { - "message": "Correio electronico" - }, - "empty": { - "message": "Vazio" - }, - "enabled": { - "message": "Ativado" - }, - "enabledForced": { - "message": "Ativado (forçado)" - }, - "expanded": { - "message": "Expandir" - }, - "exportSettings": { - "message": "Exportar definições" - }, - "extension": { - "message": "Extenção" - }, - "file": { - "message": "Ficheiro" - }, - "filters": { - "message": "Filtros" - }, - "fitToWindow": { - "message": "Ajustar á janela" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Tipo de letra" - }, - "footer": { - "message": "Cabeçalho" - }, - "forcedPlaybackSpeed": { - "message": "Forçar velocidade de leitura" - }, - "forcedTheaterMode": { - "message": "Forçar modo de cinema" - }, - "forcedVolume": { - "message": "Volume forçado" - }, - "foundABug": { - "message": "Encontrou um erro?" - }, - "fullWindow": { - "message": "Janela completa" - }, - "general": { - "message": "Geral" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Vai à caixa de pesquisa" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura HD" - }, - "hdThumbnails": { - "message": "Miniaturas HD" - }, - "header": { - "message": "Cabeçalho" - }, - "hidden": { - "message": "Escondido" - }, - "hiddenOnVideoPage": { - "message": "Escondido na página do video" - }, - "hideAnimatedThumbnails": { - "message": "Esconder miniaturas animadas" - }, - "hideAnnotations": { - "message": "Esconder anotações" - }, - "hideCards": { - "message": "Esconder cartas" - }, - "hideDetails": { - "message": "Esconder detalhes" - }, - "hideEndscreen": { - "message": "Esconder ecãn final" - }, - "hideFeaturedContent": { - "message": "Esconder conteúdo" - }, - "hideFooter": { - "message": "Esconder rodapé" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "hidePlaylist": { - "message": "Esconder lista de reprodução" - }, - "hideRightButtons": { - "message": "Esconder botões do lado direito" - }, - "hideScrollForDetails": { - "message": "Esconder «Rodar para detalhes»" - }, - "hideViewsCount": { - "message": "Esconder número de vistos" - }, - "history": { - "message": "História" - }, - "home": { - "message": "Casa" - }, - "hover": { - "message": "Aponta" - }, - "hoverOnVideoPage": { - "message": "Apontar na página do video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "À quanto tempo o video foi enviado" - }, - "icons": { - "message": "Ícones" - }, - "iconsOnly": { - "message": "Ícones apenas" - }, - "importSettings": { - "message": "Importar definições" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube icon in Browser" - }, - "improvedtubeIconOnYoutube": { - "message": "Ícon do ImprovedTube no YouTube" - }, - "improvedtubeLanguage": { - "message": "Linguagem do ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versão do ImprovedTube" - }, - "improveLogo": { - "message": "Melhorar logotipo" - }, - "increasePlaybackSpeed": { - "message": "Aumentar velocidade de leitura" - }, - "increaseVolume": { - "message": "Aumentar o volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Artigos" - }, - "languages": { - "message": "Linguagens" - }, - "legacyYoutube": { - "message": "YouTube antigo" - }, - "light": { - "message": "Claro" - }, - "lightBlue": { - "message": "Azul claro" - }, - "lightGreen": { - "message": "Verde claro" - }, - "like": { - "message": "Gostar" - }, - "likes": { - "message": "Gostos" - }, - "lime": { - "message": "Limão" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Conversa do vivo" - }, - "liveChatType": { - "message": "Tipo de conversa do vivo" - }, - "loudnessNormalization": { - "message": "Normalização do volume" - }, - "markWatchedVideos": { - "message": "Marcar os videos como vistos" - }, - "mixer": { - "message": "Mistura" - }, - "myColors": { - "message": "Minhas cores" - }, - "name": { - "message": "Nome" - }, - "nativeMiniPlayer": { - "message": "Leitor pequeno padrão" - }, - "new": { - "message": "Novo" - }, - "nextVideo": { - "message": "Próximo video" - }, - "night": { - "message": "Noite" - }, - "noActiveFeatures": { - "message": "Sem opções ativas" - }, - "none": { - "message": "Nenhuma" - }, - "noOpenVideoTabs": { - "message": "Não abrir janelas de video" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Velho" - }, - "onAllVideos": { - "message": "Em todos os videos" - }, - "onlyActiveOnYoutube": { - "message": "Ativo apenas no YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Apenas uma instância do leitor de video" - }, - "onSubscribedChannels": { - "message": "Nos canais subscritos" - }, - "orange": { - "message": "Laranja" - }, - "os": { - "message": "SO" - }, - "other": { - "message": "Outro" - }, - "permissions": { - "message": "Permissões" - }, - "pictureInPicture": { - "message": "Janela em janela" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Simples" - }, - "platform": { - "message": "Plataforma" - }, - "playbackSpeed": { - "message": "Velocidade de leitura" - }, - "player": { - "message": "Leitor" - }, - "playerColor": { - "message": "Côr do leitor" - }, - "playerSize": { - "message": "Tamanho do leitor" - }, - "playlist": { - "message": "Lista de reprodução" - }, - "playlists": { - "message": "Listas de reprodução" - }, - "playPause": { - "message": "Reproduzir / Pausar" - }, - "popupPlayer": { - "message": "Leitor em janela" - }, - "position": { - "message": "Posição" - }, - "pressAnyKeyOrScroll": { - "message": "Carrega em qualquer tecla ou usa a roldana do rato" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Carrega em qualquer tecla ou usa a roldana do rato" - }, - "previousVideo": { - "message": "Video anterior" - }, - "primaryColor": { - "message": "Côr primaria" - }, - "purple": { - "message": "Violeta" - }, - "quality": { - "message": "Qualidade" - }, - "ram": { - "message": "Memoria" - }, - "rateUs": { - "message": "Avalia-nos" - }, - "red": { - "message": "Vermelho" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Videos relacionados" - }, - "removeRelatedSearchResults": { - "message": "Remove resultados relacionado com a pesquisa" - }, - "repeat": { - "message": "Repetir" - }, - "reset": { - "message": "Valores de origem" - }, - "resetAllSettings": { - "message": "Valores de origem em todas as definições" - }, - "resetAllShortcuts": { - "message": "Repôr todos os atalhos" - }, - "reverse": { - "message": "Recuar" - }, - "rotate": { - "message": "Rodar" - }, - "save": { - "message": "Gravar" - }, - "saveAs": { - "message": "Gravar como" - }, - "schedule": { - "message": "Agendar" - }, - "screen": { - "message": "Ecrân" - }, - "screenshot": { - "message": "Foto do ecrân" - }, - "search": { - "message": "Pesquisa" - }, - "searchBarOnly": { - "message": "Apenas barra de pesquisa" - }, - "seekBackward10Seconds": { - "message": "Andar para trás 10 segundos" - }, - "seekForward10Seconds": { - "message": "Andar para frente 10 segundos" - }, - "settings": { - "message": "Definições" - }, - "settingsSuccessfullyImported": { - "message": "Definições importadas com sucesso" - }, - "shortcuts": { - "message": "Atalhos" - }, - "showCardsOnMouseHover": { - "message": "Mostrar cartas ao passar o rato por cima" - }, - "showChannelVideosCount": { - "message": "Mostrar contagem de videos do canal" - }, - "shuffle": { - "message": "Misturar" - }, - "sidebar": { - "message": "Barra lateral" - }, - "spacebar": { - "message": "Barra de espaços" - }, - "squaredUserImages": { - "message": "Imagens de utilizador enquadradas" - }, - "static": { - "message": "Estática" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Passo" - }, - "stop": { - "message": "Parar" - }, - "style": { - "message": "Estilo" - }, - "styles": { - "message": "Estilos" - }, - "subscriptions": { - "message": "Subscrições" - }, - "subtitles": { - "message": "Legendas" - }, - "sunset": { - "message": "Pôr do sol" - }, - "sunsetToSunrise": { - "message": "Pôr do sol até de manhã" - }, - "systemPeferenceDark": { - "message": "Preferências do sistema: Escuro" - }, - "systemPeferenceLight": { - "message": "Preferências do sistema: Claro" - }, - "teal": { - "message": "Azul esverdeado" - }, - "textColor": { - "message": "Côr do texto" - }, - "themes": { - "message": "Temas" - }, - "thisWillRemoveAllCookies": { - "message": "Isto vai remover todos os cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Isto vai remover todos os cookies do YouTube" - }, - "thisWillResetAllSettings": { - "message": "Isto vai reiniciar todas as definições." - }, - "thisWillResetAllShortcuts": { - "message": "Isto vai reiniciar todos os atalhos" - }, - "thumbnails": { - "message": "Miniaturas" - }, - "timeFrom": { - "message": "Tempo de" - }, - "timeTo": { - "message": "Tempo para" - }, - "todayAt": { - "message": "Hoje em" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "Conversa principal" - }, - "trailerAutoplay": { - "message": "Trailer toca automaticamente" - }, - "translations": { - "message": "Traduções" - }, - "transparentBackground": { - "message": "Fundo transparente" - }, - "trending": { - "message": "Tendências" - }, - "tryToReloadThePage": { - "message": "Tenta carregar a pagina de novo" - }, - "type": { - "message": "Escreve" - }, - "upNextAutoplay": { - "message": "Arquivo seguinte a tocar" - }, - "use24HourFormat": { - "message": "Usar formato de 24-horas" - }, - "version": { - "message": "Versão" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "A descrição do video vai ser expandida para ver o nome da categoria" - }, - "videoFormats": { - "message": "Formatos de video" - }, - "videos": { - "message": "Videos" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Vêr mais tarde" - }, - "watchTime": { - "message": "Tempo de visualização" - }, - "whenTabIsChanged": { - "message": "Quando a janela mudar" - }, - "white": { - "message": "Branco" - }, - "yellow": { - "message": "Amarelo" - }, - "youtubeHeaderLeft": { - "message": "Cabeçalho do YouTube (esquerda)" - }, - "youtubeHeaderRight": { - "message": "Cabeçalho do YouTube (direita)" - }, - "youtubeHomePage": { - "message": "Página principal do YouTube" - }, - "youtubeLanguage": { - "message": "Linguagem do YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "O YouTube limita a qualidade do video em 1080p para o codec h.264" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/ru/messages.json b/3.120-pre/_locales/ru/messages.json deleted file mode 100644 index 98968af4a..000000000 --- a/3.120-pre/_locales/ru/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "about": { - "message": "Об ImprovedTube" - }, - "accept": { - "message": "Принять" - }, - "activate": { - "message": "Активировать" - }, - "activateCaptions": { - "message": "Активировать субтитры" - }, - "activated": { - "message": "Активировано" - }, - "activatedFeatures": { - "message": "Активированные функции" - }, - "activateFullscreen": { - "message": "Перейти в полноэкранный режим" - }, - "activeFeatures": { - "message": "Активные функции" - }, - "addScrollToTop": { - "message": "Добавить кнопку «наверх»" - }, - "ads": { - "message": "Реклама" - }, - "all": { - "message": "Все" - }, - "allow": { - "message": "Разрешить" - }, - "allow60fps": { - "message": "Разрешить 60fps" - }, - "alwaysActive": { - "message": "Всегда активный" - }, - "alwaysShowProgressBar": { - "message": "Всегда показывать прогресс-бар" - }, - "amber": { - "message": "Янтарный" - }, - "analyzer": { - "message": "Анализатор" - }, - "appearance": { - "message": "Внешний вид" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Аудио" - }, - "audioFormats": { - "message": "Аудио форматы" - }, - "auto": { - "message": "Авто" - }, - "autoFullscreen": { - "message": "Автоматический переход в полноэкранный режим" - }, - "autopauseWhenSwitchingTabs": { - "message": "Автопауза при переходе между вкладками" - }, - "autoplay": { - "message": "Автовоспроизведение" - }, - "backupAndReset": { - "message": "Резервное копирование и сброс" - }, - "baseOnSystemColorScheme": { - "message": "Зависит от системной цветовой схемы" - }, - "belowPlayer": { - "message": "Ниже плеера" - }, - "black": { - "message": "Черный" - }, - "blacklist": { - "message": "Черный список" - }, - "blockAll": { - "message": "Заблокировать всё" - }, - "blue": { - "message": "Синий" - }, - "blueGray": { - "message": "Серо-голубой" - }, - "bluelight": { - "message": "Синий свет" - }, - "brown": { - "message": "Коричневый" - }, - "browser": { - "message": "Браузер" - }, - "browserVersion": { - "message": "Версия браузера" - }, - "bubbles": { - "message": "Пузыри" - }, - "bug": { - "message": "Ошибка" - }, - "buttons": { - "message": "Кнопки" - }, - "cancel": { - "message": "Отмена" - }, - "categories": { - "message": "Категории" - }, - "channel": { - "message": "Канал" - }, - "channels": { - "message": "Каналы" - }, - "clipboard": { - "message": "Буфер обмена" - }, - "codecH264": { - "message": "Кодек h.264" - }, - "collapsed": { - "message": "Свернуть" - }, - "collapseOfSubscriptionSections": { - "message": "Свернуть раздел подписок" - }, - "comments": { - "message": "Комментарии" - }, - "confirmationBeforeClosing": { - "message": "Подтверждение закрытия" - }, - "cookies": { - "message": "Куки" - }, - "cores": { - "message": "Ядра" - }, - "cropChapterTitles": { - "message": "Обрезать заголовки глав" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Сustom JS" - }, - "customMiniPlayer": { - "message": "Новый мини-плеер" - }, - "cyan": { - "message": "Сине-зелёный" - }, - "dark": { - "message": "Темная" - }, - "darkTheme": { - "message": "Ночная тема" - }, - "dateAndTime": { - "message": "Дата и время" - }, - "dawn": { - "message": "Рассвет" - }, - "decreasePlaybackSpeed": { - "message": "Уменьшить скорость видео" - }, - "decreaseVolume5": { - "message": "Уменьшить громкость на 5%" - }, - "deepOrange": { - "message": "Темно-оранжевый" - }, - "deepPurple": { - "message": "Темно-фиолетовый" - }, - "defaultChannelTab": { - "message": "Вкладка канала по умолчанию" - }, - "deleteYoutubeCookies": { - "message": "Удалить куки YouTube" - }, - "description": { - "message": "Описание" - }, - "desert": { - "message": "Пустыня" - }, - "details": { - "message": "Подробная информация" - }, - "developerOptions": { - "message": "Настройки разработчика" - }, - "device": { - "message": "Устройство" - }, - "dim": { - "message": "Тусклость" - }, - "disabled": { - "message": "Выключено" - }, - "dislike": { - "message": "Дизлайк" - }, - "donate": { - "message": "Пожертвовать" - }, - "doNotChange": { - "message": "Не менять" - }, - "draggable": { - "message": "Перетаскиваемый" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Пусто" - }, - "enabled": { - "message": "Включено" - }, - "enabledForced": { - "message": "Включено (принудительно)" - }, - "expanded": { - "message": "Развернуть" - }, - "exportSettings": { - "message": "Экспорт настроек" - }, - "extension": { - "message": "Расширение" - }, - "file": { - "message": "Файл" - }, - "filters": { - "message": "Фильтры" - }, - "fitToWindow": { - "message": "Подогнать под окно" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Шрифт" - }, - "footer": { - "message": "Нижний колонтитул" - }, - "forcedPlaybackSpeed": { - "message": "Форсировать скорость воспроизведения" - }, - "forcedTheaterMode": { - "message": "Принудительно переходить в режим кино" - }, - "forcedVolume": { - "message": "Принудительная громкость" - }, - "foundABug": { - "message": "Нашли ошибку?" - }, - "fullWindow": { - "message": "Растянуть на все окно" - }, - "general": { - "message": "Общее" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Перейти в окно поиска" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Зеленый" - }, - "hdThumbnail": { - "message": "Превью высокого качества" - }, - "hdThumbnails": { - "message": "Превью высокого качества" - }, - "header": { - "message": "Верхняя панель" - }, - "hidden": { - "message": "Скрыть" - }, - "hiddenOnVideoPage": { - "message": "Скрыть (только на странице с видео)" - }, - "hideAnimatedThumbnails": { - "message": "Скрыть анимированные превью" - }, - "hideAnnotations": { - "message": "Скрыть аннотации" - }, - "hideCards": { - "message": "Скрыть карточки" - }, - "hideDetails": { - "message": "Скрыть подробную информацию" - }, - "hideEndscreen": { - "message": "Скрыть экран после видео" - }, - "hideFeaturedContent": { - "message": "Скрыть рекомендации" - }, - "hideFooter": { - "message": "Скрыть нижний колонтитул" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "hidePlaylist": { - "message": "Скрыть плейлист" - }, - "hideRightButtons": { - "message": "Скрыть кнопки (справа)" - }, - "hideScrollForDetails": { - "message": "Скрыть «Прокрутите для подробной информации»" - }, - "hideViewsCount": { - "message": "Скрыть количество просмотров" - }, - "history": { - "message": "История" - }, - "home": { - "message": "Домашняя страница" - }, - "hover": { - "message": "Показывать при наведении" - }, - "hoverOnVideoPage": { - "message": "Показывать при наведении (только на странице с видео)" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Показывать как давно было загружено видео" - }, - "icons": { - "message": "Иконки" - }, - "iconsOnly": { - "message": "Только иконки" - }, - "importSettings": { - "message": "Импорт настроек" - }, - "improvedtubeIconInBrowser": { - "message": "Значок ImprovedTube в браузере" - }, - "improvedtubeIconOnYoutube": { - "message": "Значок ImprovedTube в YouTube" - }, - "improvedtubeLanguage": { - "message": "Язык ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Версия ImprovedTube" - }, - "improveLogo": { - "message": "Улучшить логотип YouTube" - }, - "increasePlaybackSpeed": { - "message": "Увеличить скорость видео" - }, - "increaseVolume5": { - "message": "Увеличить громкости на 5%" - }, - "indigo": { - "message": "Индиго" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Языки" - }, - "legacyYoutube": { - "message": "Старая версия YouTube" - }, - "light": { - "message": "Светлая" - }, - "lightBlue": { - "message": "Светло-синий" - }, - "lightGreen": { - "message": "Светло-зеленый" - }, - "like": { - "message": "Лайк" - }, - "likes": { - "message": "Лайки" - }, - "lime": { - "message": "Лайм" - }, - "list": { - "message": "Список" - }, - "liveChat": { - "message": "Live-чат" - }, - "liveChatType": { - "message": "Тип live-чата" - }, - "loudnessNormalization": { - "message": "Нормализировать громкость" - }, - "markWatchedVideos": { - "message": "Отмечать просмотренные видео" - }, - "mixer": { - "message": "Миксер" - }, - "myColors": { - "message": "Мои цвета" - }, - "name": { - "message": "Имя" - }, - "nativeMiniPlayer": { - "message": "Мини-плеер от YouTube" - }, - "new": { - "message": "Новый" - }, - "nextVideo": { - "message": "Следующее видео" - }, - "night": { - "message": "Ночь" - }, - "noActiveFeatures": { - "message": "Нет активных функций" - }, - "none": { - "message": "Пусто" - }, - "noOpenVideoTabs": { - "message": "Нет открытых вкладок с видео" - }, - "normal": { - "message": "Обычный" - }, - "old": { - "message": "Старый" - }, - "onAllVideos": { - "message": "Во всех видео" - }, - "onlyActiveOnYoutube": { - "message": "Активен только в YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Только один экземпляр плеера играет" - }, - "onSubscribedChannels": { - "message": "Только на каналах в подписках" - }, - "orange": { - "message": "Оранжевый" - }, - "os": { - "message": "ОС" - }, - "other": { - "message": "Другое" - }, - "permissions": { - "message": "Разрешения" - }, - "pictureInPicture": { - "message": "Картинка в картинке" - }, - "pink": { - "message": "Розовый" - }, - "plain": { - "message": "Равнина" - }, - "platform": { - "message": "Платформа" - }, - "playbackSpeed": { - "message": "Скорость воспроизведения" - }, - "player": { - "message": "Плеер" - }, - "playerColor": { - "message": "Цвет плеера" - }, - "playerSize": { - "message": "Размер плеера" - }, - "playlist": { - "message": "Плейлист" - }, - "playlists": { - "message": "Плейлисты" - }, - "playPause": { - "message": "Воспроизведение / Пауза" - }, - "popupPlayer": { - "message": "Плеер во всплывающем окне" - }, - "position": { - "message": "Позиция" - }, - "pressAnyKeyOrScroll": { - "message": "Нажмите любую клавишу или воспользуйтесь колесом мыши" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Нажмите любую клавишу или используйте колесо мыши" - }, - "previousVideo": { - "message": "Предыдущее видео" - }, - "primaryColor": { - "message": "Основной цвет" - }, - "purple": { - "message": "Фиолетовый" - }, - "quality": { - "message": "Качество" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Оцените нас" - }, - "red": { - "message": "Красный" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Похожие видео" - }, - "removeRelatedSearchResults": { - "message": "Удалить похожие результаты поиска" - }, - "repeat": { - "message": "Повтор" - }, - "reset": { - "message": "Сбросить" - }, - "resetAllSettings": { - "message": "Сбросить все настройки" - }, - "resetAllShortcuts": { - "message": "Сбросить все горячие клавиши" - }, - "reverse": { - "message": "Обратный порядок" - }, - "rotate": { - "message": "Повернуть" - }, - "save": { - "message": "Сохранить" - }, - "saveAs": { - "message": "Сохранить как" - }, - "schedule": { - "message": "Расписание" - }, - "screen": { - "message": "Экран" - }, - "screenshot": { - "message": "Скриншот" - }, - "search": { - "message": "Поиск" - }, - "searchBarOnly": { - "message": "Только поле поиска" - }, - "seekBackward10Seconds": { - "message": "Перемотать на 10 секунд назад" - }, - "seekForward10Seconds": { - "message": "Перемотать на 10 секунд вперед" - }, - "settings": { - "message": "Настройки" - }, - "settingsSuccessfullyImported": { - "message": "Настройки успешно импортированы" - }, - "shortcuts": { - "message": "Горячие клавиши" - }, - "showCardsOnMouseHover": { - "message": "Показывать карточки при наведении мыши" - }, - "showChannelVideosCount": { - "message": "Показывать количество видео на канале" - }, - "shuffle": { - "message": "Случайный порядок" - }, - "sidebar": { - "message": "Боковая панель" - }, - "spacebar": { - "message": "Пробел" - }, - "squaredUserImages": { - "message": "Квадратные аватарки пользователей" - }, - "static": { - "message": "Статично" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Стоп" - }, - "style": { - "message": "Стиль" - }, - "styles": { - "message": "Стили" - }, - "subscriptions": { - "message": "Подписки" - }, - "subtitles": { - "message": "Субтитры" - }, - "sunset": { - "message": "Закат" - }, - "sunsetToSunrise": { - "message": "От заката до рассвета" - }, - "systemPeferenceDark": { - "message": "Предпочитаемая системой: темная" - }, - "systemPeferenceLight": { - "message": "Предпочитаемая системой: светлая" - }, - "teal": { - "message": "Бирюзовый" - }, - "textColor": { - "message": "Цвет текста" - }, - "themes": { - "message": "Темы" - }, - "thisWillRemoveAllCookies": { - "message": "Это удалит все куки" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Вы действительно хотите удалить все куки YouTube?" - }, - "thisWillResetAllSettings": { - "message": "Это сбросит все настройки" - }, - "thisWillResetAllShortcuts": { - "message": "Это сбросит все горячие клавиши" - }, - "thumbnails": { - "message": "Превью" - }, - "timeFrom": { - "message": "Время от" - }, - "timeTo": { - "message": "Время до" - }, - "todayAt": { - "message": "Сегодня в" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Автовоспроизведение трейлера" - }, - "translations": { - "message": "Переводы" - }, - "transparentBackground": { - "message": "Прозрачный фон" - }, - "trending": { - "message": "Тренды" - }, - "tryToReloadThePage": { - "message": "Попробуйте перезагрузить страницу" - }, - "type": { - "message": "Тип" - }, - "upNextAutoplay": { - "message": "Автовоспроизведение следующего видео" - }, - "use24HourFormat": { - "message": "24-часовой формат" - }, - "version": { - "message": "Версия" - }, - "video": { - "message": "Видео" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Описание видео будет развернуто, чтобы получить название категории видео" - }, - "videoFormats": { - "message": "Форматы видео" - }, - "videos": { - "message": "Видео" - }, - "volume": { - "message": "Громкость" - }, - "watchLater": { - "message": "Посмотреть позже" - }, - "watchTime": { - "message": "Время просмотра" - }, - "whenTabIsChanged": { - "message": "При переключении вкладок" - }, - "white": { - "message": "Белый" - }, - "yellow": { - "message": "Желтый" - }, - "youtubeHeaderLeft": { - "message": "Верхняя панель (слева)" - }, - "youtubeHeaderRight": { - "message": "Верхняя панель (справа)" - }, - "youtubeHomePage": { - "message": "Домашняя страница YouTube" - }, - "youtubeLanguage": { - "message": "Язык YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube ограничивает качетво видео до 1080p для кодека h.264" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/sk/messages.json b/3.120-pre/_locales/sk/messages.json deleted file mode 100644 index 89a2ae0f5..000000000 --- a/3.120-pre/_locales/sk/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "about": { - "message": "O" - }, - "accept": { - "message": "Prijať" - }, - "activate": { - "message": "Aktivovať" - }, - "activateCaptions": { - "message": "Aktivovať titulky" - }, - "activated": { - "message": "Aktivované" - }, - "activatedFeatures": { - "message": "Aktivované fukncie" - }, - "activateFullscreen": { - "message": "Aktivovať zobrazenie na celú obrazovku" - }, - "activeFeatures": { - "message": "Aktívne funkcie" - }, - "addScrollToTop": { - "message": "Prejdite «Vrátiť sa na začiatok»" - }, - "ads": { - "message": "Reklamy" - }, - "all": { - "message": "Všetko" - }, - "allow": { - "message": "Povoliť" - }, - "allow60fps": { - "message": "Povoliť 60fps" - }, - "alwaysActive": { - "message": "Vždy aktívne" - }, - "alwaysShowProgressBar": { - "message": "Vždy zobrazovať ukazateľ priebehu" - }, - "amber": { - "message": "Ambra" - }, - "analyzer": { - "message": "Analyzátor" - }, - "appearance": { - "message": "Vzhľad" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Zvuk" - }, - "audioFormats": { - "message": "Formát zvuku" - }, - "auto": { - "message": "Automaticky" - }, - "autoFullscreen": { - "message": "Automaticky-fullscreen" - }, - "autopauseWhenSwitchingTabs": { - "message": "Automatické pozastavenie pri prepínaní kariet" - }, - "autoplay": { - "message": "Automatické prehrávanie" - }, - "backupAndReset": { - "message": "Zálohovanie & Obnova" - }, - "baseOnSystemColorScheme": { - "message": "Nastavené podľa farby systému" - }, - "belowPlayer": { - "message": "Pod prehrávačom" - }, - "black": { - "message": "Čierna" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "Zablokovať všetko" - }, - "blue": { - "message": "Modrá" - }, - "blueGray": { - "message": "Šedo-modrá" - }, - "bluelight": { - "message": "Modré svetlo" - }, - "brown": { - "message": "Hnedá" - }, - "browser": { - "message": "Prehliadac" - }, - "browserVersion": { - "message": "Verzie prehliadača" - }, - "bubbles": { - "message": "Bubliny" - }, - "bug": { - "message": "Chyba" - }, - "buttons": { - "message": "Tlačidlá" - }, - "cancel": { - "message": "Zrušiť" - }, - "categories": { - "message": "Kategórie" - }, - "channel": { - "message": "Kanál" - }, - "channels": { - "message": "Kanály" - }, - "clipboard": { - "message": "Schránka" - }, - "codecH264": { - "message": "Kodek h.264" - }, - "collapsed": { - "message": "Zbaliť" - }, - "collapseOfSubscriptionSections": { - "message": "Zbaliť sekciu Odber" - }, - "comments": { - "message": "Komentáre" - }, - "confirmationBeforeClosing": { - "message": "Potvrdiť pred zatvorenímk" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Jadrá" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Vlastné CSS" - }, - "customJs": { - "message": "Vlastné JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Tyrkysová" - }, - "dark": { - "message": "Tmavý" - }, - "darkTheme": { - "message": "Tmavá téma" - }, - "dateAndTime": { - "message": "Dátum a čas" - }, - "dawn": { - "message": "Svitanie" - }, - "decreasePlaybackSpeed": { - "message": "Znížiť rýchlosť prehrávania" - }, - "decreaseVolume": { - "message": "Znížiť hlasitosť" - }, - "deepOrange": { - "message": "Tmavo oranžová" - }, - "deepPurple": { - "message": "Tmavo fialová" - }, - "defaultChannelTab": { - "message": "Predvolená karta kanálu" - }, - "deleteYoutubeCookies": { - "message": "Vymazať YouTube cookies" - }, - "description": { - "message": "Podrobnosti" - }, - "desert": { - "message": "Púšť" - }, - "details": { - "message": "Detaily" - }, - "developerOptions": { - "message": "Možnosti pre vývojara" - }, - "device": { - "message": "Zariadenie" - }, - "dim": { - "message": "Stmvaviť" - }, - "disabled": { - "message": "Vypnutý" - }, - "dislike": { - "message": "Dislike" - }, - "donate": { - "message": "Prispieť" - }, - "doNotChange": { - "message": "Nemeniť" - }, - "draggable": { - "message": "Posuvné" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Prázdny" - }, - "enabled": { - "message": "Zapnuté" - }, - "enabledForced": { - "message": "Zapnuté (vynútene)" - }, - "expanded": { - "message": "Rozbalené" - }, - "exportSettings": { - "message": "Exportovať nastavenia" - }, - "extension": { - "message": "Rozšírenia" - }, - "file": { - "message": "Súbor" - }, - "filters": { - "message": "Filtre" - }, - "fitToWindow": { - "message": "Prispôsobiť oknu" - }, - "flash": { - "message": "Blikať" - }, - "font": { - "message": "Písmo" - }, - "footer": { - "message": "Pätička" - }, - "forcedPlaybackSpeed": { - "message": "Vynútená rýchlosť prehrávania" - }, - "forcedTheaterMode": { - "message": "Vynútený divadelný režim" - }, - "forcedVolume": { - "message": "Vynútená hlasitosť" - }, - "foundABug": { - "message": "Našli ste chybu?" - }, - "fullWindow": { - "message": "Celé okno" - }, - "general": { - "message": "Všeobecné" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Prejdite do vyhľadávanieho poľa" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Zelená" - }, - "hdThumbnail": { - "message": "HD náhlad" - }, - "hdThumbnails": { - "message": "HD náhlady" - }, - "header": { - "message": "Hlavička" - }, - "hidden": { - "message": "Skryté" - }, - "hiddenOnVideoPage": { - "message": "Skyté na stránke videa" - }, - "hideAnimatedThumbnails": { - "message": "Skryť animované náhľady" - }, - "hideAnnotations": { - "message": "Skryť anotácie" - }, - "hideCards": { - "message": "Skryť karty" - }, - "hideDetails": { - "message": "Skryť detaily" - }, - "hideEndscreen": { - "message": "Skryť zobrazenie na konci videa" - }, - "hideFeaturedContent": { - "message": "Skryť odporúčaný obsah" - }, - "hideFooter": { - "message": "Hide pätičku" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "hidePlaylist": { - "message": "Skryť zoznam videí" - }, - "hideRightButtons": { - "message": "Skryť tlčidlá v pravo" - }, - "hideScrollForDetails": { - "message": "Skryť «Zarolujte pre detaily»" - }, - "hideViewsCount": { - "message": "Skyť počet videní" - }, - "history": { - "message": "História" - }, - "home": { - "message": "Domov" - }, - "hover": { - "message": "Vznášať sa" - }, - "hoverOnVideoPage": { - "message": "Umiestnite kurzor na stránku videa" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Kedy bolo toto video nahrané?" - }, - "icons": { - "message": "Ikony" - }, - "iconsOnly": { - "message": "Iba ikony" - }, - "importSettings": { - "message": "Importovať nastavenia" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube ikona v prehliadači" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube ikona na YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube jazyk" - }, - "improvedtubeVersion": { - "message": "ImprovedTube verzia" - }, - "improveLogo": { - "message": "Improve logo" - }, - "increasePlaybackSpeed": { - "message": "Zvýšiť rýchlosť prehrávania" - }, - "increaseVolume": { - "message": "Zvýšiť hlasitosť" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Jazyky" - }, - "legacyYoutube": { - "message": "Starý YouTube" - }, - "light": { - "message": "Svetlo" - }, - "lightBlue": { - "message": "Svetlo modrá" - }, - "lightGreen": { - "message": "Svetlo zelená" - }, - "like": { - "message": "Páči sa mi to" - }, - "likes": { - "message": "Páči sa mi to" - }, - "lime": { - "message": "Limetková" - }, - "list": { - "message": "Zoznam" - }, - "liveChat": { - "message": "Živí chat" - }, - "liveChatType": { - "message": "Typ živého chatu" - }, - "loudnessNormalization": { - "message": "Vyrovnanie hlasitosti" - }, - "markWatchedVideos": { - "message": "Označiť ako videné" - }, - "mixer": { - "message": "Mixér" - }, - "myColors": { - "message": "Moje farby" - }, - "name": { - "message": "Meno" - }, - "nativeMiniPlayer": { - "message": "Natívny mini prehrávač" - }, - "new": { - "message": "Nový" - }, - "nextVideo": { - "message": "Ďalšie video" - }, - "night": { - "message": "Noc" - }, - "noActiveFeatures": { - "message": "Žiadne aktívne fukncie" - }, - "none": { - "message": "Žiadny" - }, - "noOpenVideoTabs": { - "message": "Žiadne otvorené karty s videami" - }, - "normal": { - "message": "Normále" - }, - "old": { - "message": "Starý" - }, - "onAllVideos": { - "message": "Na všetkých videách" - }, - "onlyActiveOnYoutube": { - "message": "Aktívne iba na YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Prehrávať iba jedno video" - }, - "onSubscribedChannels": { - "message": "Na odoberaných kanáloch" - }, - "orange": { - "message": "Oranžová" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Ostatné" - }, - "permissions": { - "message": "Povolenia" - }, - "pictureInPicture": { - "message": "Obraz v obraze" - }, - "pink": { - "message": "Ružová" - }, - "plain": { - "message": "Jednoduchý" - }, - "platform": { - "message": "Platforma" - }, - "playbackSpeed": { - "message": "Rýchlosť prehrávania" - }, - "player": { - "message": "Prehrávač" - }, - "playerColor": { - "message": "Farba prehrávača" - }, - "playerSize": { - "message": "Veľkosť prehrávača" - }, - "playlist": { - "message": "Zoznam videí" - }, - "playlists": { - "message": "Zoznamy videí" - }, - "playPause": { - "message": "Prehrať / Pozastavť" - }, - "popupPlayer": { - "message": "Popup prehrávač" - }, - "position": { - "message": "Pozícia" - }, - "pressAnyKeyOrScroll": { - "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky" - }, - "previousVideo": { - "message": "Predchýdzajúce video" - }, - "primaryColor": { - "message": "Primárna farba" - }, - "purple": { - "message": "Fialová" - }, - "quality": { - "message": "Kvalita" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Ohodnoťte nás" - }, - "red": { - "message": "Červená" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Súvisiace videá" - }, - "removeRelatedSearchResults": { - "message": "Odstránte príbuzné výsledky vyhľadávania" - }, - "repeat": { - "message": "Opakovať" - }, - "reset": { - "message": "Obnoviť" - }, - "resetAllSettings": { - "message": "Obnoviť všetky nastavenia" - }, - "resetAllShortcuts": { - "message": "Obnoviť všetky skratky" - }, - "reverse": { - "message": "Obrátené" - }, - "rotate": { - "message": "Otočiť" - }, - "save": { - "message": "Uložiť" - }, - "saveAs": { - "message": "Uložiť ako" - }, - "schedule": { - "message": "Naplánovať" - }, - "screen": { - "message": "Obrazovka" - }, - "screenshot": { - "message": "Screenshot" - }, - "search": { - "message": "Vyhľadať" - }, - "searchBarOnly": { - "message": "Iba vyhľadávacie pole" - }, - "seekBackward10Seconds": { - "message": "Pretočiť spät o 10 sekúnd" - }, - "seekForward10Seconds": { - "message": "Pretočiť dopredu o 10 sekúnd" - }, - "settings": { - "message": "Nastavenia" - }, - "settingsSuccessfullyImported": { - "message": "Nastavenia úspešne importované" - }, - "shortcuts": { - "message": "Skratky" - }, - "showCardsOnMouseHover": { - "message": "Zobraziť karty pri prechode myšou" - }, - "showChannelVideosCount": { - "message": "Zobraziť počet videí kanálu" - }, - "shuffle": { - "message": "Náhodne" - }, - "sidebar": { - "message": "Bočný panel" - }, - "spacebar": { - "message": "Medzera" - }, - "squaredUserImages": { - "message": "Štvorcový obrázok užívateľa" - }, - "static": { - "message": "Statické" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Krok" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Štýl" - }, - "styles": { - "message": "Štýly" - }, - "subscriptions": { - "message": "Odbery" - }, - "subtitles": { - "message": "Titulky" - }, - "sunset": { - "message": "Západ slnka" - }, - "sunsetToSunrise": { - "message": "Západ slnka do východu slnka" - }, - "systemPeferenceDark": { - "message": "Predvolené: tmavé" - }, - "systemPeferenceLight": { - "message": "Predvolené: svetlé" - }, - "teal": { - "message": "Modrozelený" - }, - "textColor": { - "message": "Farba textu" - }, - "themes": { - "message": "Témy" - }, - "thisWillRemoveAllCookies": { - "message": "Toto odstráni všetky cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Toto odstráni všetky YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "Toto obnový všetky nastavenia." - }, - "thisWillResetAllShortcuts": { - "message": "Toto obnový všetky skratky" - }, - "thumbnails": { - "message": "Náhlady" - }, - "timeFrom": { - "message": "Čas od" - }, - "timeTo": { - "message": "Čas do" - }, - "todayAt": { - "message": "Dnes o" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Automatické prehrávanie ukážky" - }, - "translations": { - "message": "Preklady" - }, - "transparentBackground": { - "message": "Priehľadné pozadie" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Skúsťe obnoviť stránku" - }, - "type": { - "message": "Typ" - }, - "upNextAutoplay": { - "message": "Automaticky prehrať ďaľšie v poradí" - }, - "use24HourFormat": { - "message": "Použť 24-hodinový formát" - }, - "version": { - "message": "Verzia" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Podrobnosti videa budú zobrazené pre získanie názvu kategórie" - }, - "videoFormats": { - "message": "Formáty videa" - }, - "videos": { - "message": "Vedeá" - }, - "volume": { - "message": "Hlasitosť" - }, - "watchLater": { - "message": "Pozrieť neskor" - }, - "watchTime": { - "message": "Čas sledovania" - }, - "whenTabIsChanged": { - "message": "Pri zmene karty" - }, - "white": { - "message": "Biela" - }, - "yellow": { - "message": "Žltá" - }, - "youtubeHeaderLeft": { - "message": "YouTube hlavička (vľavo)" - }, - "youtubeHeaderRight": { - "message": "YouTube hlavička (vpravo)" - }, - "youtubeHomePage": { - "message": "Domáca stránka YouTube" - }, - "youtubeLanguage": { - "message": "Jazyk YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube obmedzuje kvalitu videa na 1080p pri kodeku h.264" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/tr/messages.json b/3.120-pre/_locales/tr/messages.json deleted file mode 100644 index 323157a27..000000000 --- a/3.120-pre/_locales/tr/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "about": { - "message": "Hakkında" - }, - "accept": { - "message": "Onayla" - }, - "activate": { - "message": "Aktifleştir" - }, - "activateCaptions": { - "message": "Altyazıları Aktifleştir" - }, - "activated": { - "message": "Aktifleştirilmiş" - }, - "activatedFeatures": { - "message": "Aktifleştirilmiş özellikler" - }, - "activateFullscreen": { - "message": "Tam ekranı Aktifleştir" - }, - "activeFeatures": { - "message": "Etkin özellikler" - }, - "addScrollToTop": { - "message": "«Yukarı kaydır» ekle" - }, - "ads": { - "message": "Reklamlar" - }, - "all": { - "message": "Tümü" - }, - "allow": { - "message": "İzin ver" - }, - "allow60fps": { - "message": "60fps'e izin ver" - }, - "alwaysActive": { - "message": "Sürekli etkin" - }, - "alwaysShowProgressBar": { - "message": "İlerleme çubuğunu sürekli göster" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analizör" - }, - "appearance": { - "message": "Görünüm" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Ses" - }, - "audioFormats": { - "message": "Ses formatları" - }, - "auto": { - "message": "Otomatik" - }, - "autoFullscreen": { - "message": "Otomatik tam ekran" - }, - "autopauseWhenSwitchingTabs": { - "message": "Sekme değiştirildiğinde duraklat" - }, - "autoplay": { - "message": "Otomatik oynat" - }, - "backupAndReset": { - "message": "Yedek & sıfırla" - }, - "baseOnSystemColorScheme": { - "message": "Sistem renk şeması temelli" - }, - "belowPlayer": { - "message": "Oynatıcının altında" - }, - "black": { - "message": "Kara" - }, - "blacklist": { - "message": "Kara Liste" - }, - "blockAll": { - "message": "Tümünü engelle" - }, - "blue": { - "message": "Mavi" - }, - "blueGray": { - "message": "Mavi gri" - }, - "bluelight": { - "message": "Mavi Işık" - }, - "brown": { - "message": "Kahverengi" - }, - "browser": { - "message": "Tarayıcı" - }, - "browserVersion": { - "message": "Tarayıcı Sürümü" - }, - "bubbles": { - "message": "Baloncuklar" - }, - "bug": { - "message": "Hata" - }, - "buttons": { - "message": "Butonlar" - }, - "cancel": { - "message": "İptal" - }, - "categories": { - "message": "Kategoriler" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanallar" - }, - "clipboard": { - "message": "Pano" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Daraltılmış" - }, - "collapseOfSubscriptionSections": { - "message": "Abonelik bölümlerini daralt" - }, - "comments": { - "message": "Yorumlar" - }, - "confirmationBeforeClosing": { - "message": "Kapatmadan önce uyar" - }, - "cookies": { - "message": "Çerezler" - }, - "cores": { - "message": "Çekirdekler" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Özel CSS" - }, - "customJs": { - "message": "Özel JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Camgöbeği" - }, - "dark": { - "message": "Koyu" - }, - "darkTheme": { - "message": "Koyu tema" - }, - "dateAndTime": { - "message": "Tarih & zaman" - }, - "dawn": { - "message": "Şafak" - }, - "decreasePlaybackSpeed": { - "message": "Oynatma hızını azalt" - }, - "decreaseVolume": { - "message": "Sesi azalt" - }, - "deepOrange": { - "message": "Koyu turuncu" - }, - "deepPurple": { - "message": "Koyu mor" - }, - "defaultChannelTab": { - "message": "Varsayılan kanal sekmesi" - }, - "deleteYoutubeCookies": { - "message": "YouTube çerezleri sil" - }, - "description": { - "message": "Açıklama" - }, - "desert": { - "message": "Çöl" - }, - "details": { - "message": "Ayrıntılar" - }, - "developerOptions": { - "message": "Geliştirici seçenekleri" - }, - "device": { - "message": "Cihaz" - }, - "dim": { - "message": "Karart" - }, - "disabled": { - "message": "Devredışı" - }, - "dislike": { - "message": "Beğenmeme" - }, - "donate": { - "message": "Bağış" - }, - "doNotChange": { - "message": "Değiştirme" - }, - "draggable": { - "message": "Sürüklenebilir" - }, - "email": { - "message": "Eposta" - }, - "empty": { - "message": "Boş" - }, - "enabled": { - "message": "Etkin" - }, - "enabledForced": { - "message": "Etkin (Zorla)" - }, - "expanded": { - "message": "Genişletilmiş" - }, - "exportSettings": { - "message": "Ayarları dışa aktar" - }, - "extension": { - "message": "Uzantı" - }, - "file": { - "message": "Dosya" - }, - "filters": { - "message": "Filtreler" - }, - "fitToWindow": { - "message": "Pencereye sığdır" - }, - "flash": { - "message": "Flaş" - }, - "font": { - "message": "Yazı Tipi" - }, - "footer": { - "message": "Footer" - }, - "forcedPlaybackSpeed": { - "message": "Oynatma hızını uygulamaya zorla" - }, - "forcedTheaterMode": { - "message": "Sinema modunu zorla" - }, - "forcedVolume": { - "message": "Sesi zorla" - }, - "foundABug": { - "message": "Hata mı buldun?" - }, - "fullWindow": { - "message": "Tam pencere" - }, - "general": { - "message": "Genel" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Arama kutusuna git" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Yeşil" - }, - "hdThumbnail": { - "message": "HD küçük resim" - }, - "hdThumbnails": { - "message": "HD küçük resimler" - }, - "header": { - "message": "Header" - }, - "hidden": { - "message": "Gizli" - }, - "hiddenOnVideoPage": { - "message": "Video sayfasında gizli" - }, - "hideAnimatedThumbnails": { - "message": "Hareketli küçük resimleri gizle" - }, - "hideAnnotations": { - "message": "Ek açıklamaları gizle" - }, - "hideCards": { - "message": "Kartları gizle" - }, - "hideDetails": { - "message": "Detayları gizle" - }, - "hideEndscreen": { - "message": "Ekran sonunu gizle" - }, - "hideFeaturedContent": { - "message": "Öne çıkan içeriği gizle" - }, - "hideFooter": { - "message": "Footer'ı gizle" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "hidePlaylist": { - "message": "Oynatma Listesi'ni gizle" - }, - "hideRightButtons": { - "message": "Sağ butonları gizle" - }, - "hideScrollForDetails": { - "message": "«Ayrıntılar için kaydır» gizle" - }, - "hideViewsCount": { - "message": "Görüntüleme sayısını gizle" - }, - "history": { - "message": "Geçmiş" - }, - "home": { - "message": "Ana Sayfa" - }, - "hover": { - "message": "Hover" - }, - "hoverOnVideoPage": { - "message": "Hover on video page" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Video ne kadar süre önce yüklendi" - }, - "icons": { - "message": "Simgeler" - }, - "iconsOnly": { - "message": "Yalnızca simgeler" - }, - "importSettings": { - "message": "Ayarları içe aktar" - }, - "improvedtubeIconInBrowser": { - "message": "Tarayıcıda ImprovedTube Simgesi" - }, - "improvedtubeIconOnYoutube": { - "message": "YouTube'da ImprovedTube Simgesi" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube dili" - }, - "improvedtubeVersion": { - "message": "ImprovedTube sürümü" - }, - "improveLogo": { - "message": "Logoyu geliştir" - }, - "increasePlaybackSpeed": { - "message": "Oynatma hızını artır" - }, - "increaseVolume": { - "message": "Sesi artır" - }, - "indigo": { - "message": "Çivit" - }, - "items": { - "message": "Öğeler" - }, - "languages": { - "message": "Diller" - }, - "legacyYoutube": { - "message": "Eski YouTube" - }, - "light": { - "message": "Açık" - }, - "lightBlue": { - "message": "Açık mavi" - }, - "lightGreen": { - "message": "Açık yeşil" - }, - "like": { - "message": "Beğen" - }, - "likes": { - "message": "Beğeniler" - }, - "lime": { - "message": "Lime" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Canlı sohbet" - }, - "liveChatType": { - "message": "Canlı sohbet türü" - }, - "loudnessNormalization": { - "message": "Gürültü normalleştirme" - }, - "markWatchedVideos": { - "message": "İzlenen videoları işaretle" - }, - "mixer": { - "message": "Karıştırıcı" - }, - "myColors": { - "message": "Renklerim" - }, - "name": { - "message": "İsim" - }, - "nativeMiniPlayer": { - "message": "Native mini player" - }, - "new": { - "message": "Yeni" - }, - "nextVideo": { - "message": "Sonraki video" - }, - "night": { - "message": "Gece" - }, - "noActiveFeatures": { - "message": "Aktif özellik yok" - }, - "none": { - "message": "Yok" - }, - "noOpenVideoTabs": { - "message": "Açık video sekmesi yok" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Eski" - }, - "onAllVideos": { - "message": "Tüm videolarda" - }, - "onlyActiveOnYoutube": { - "message": "Yalnızca YouTube'da etkin" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "onSubscribedChannels": { - "message": "Abone olunan kanallarda" - }, - "orange": { - "message": "Turuncu" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Diğer" - }, - "permissions": { - "message": "İzinler" - }, - "pictureInPicture": { - "message": "Resim içinde resim" - }, - "pink": { - "message": "Pembe" - }, - "plain": { - "message": "Sade" - }, - "platform": { - "message": "Platform" - }, - "playbackSpeed": { - "message": "Oynatma hızı" - }, - "player": { - "message": "Oynatıcı" - }, - "playerColor": { - "message": "Oynatıcı rengi" - }, - "playerSize": { - "message": "Oynatıcı boyutu" - }, - "playlist": { - "message": "Oynatma Listesi" - }, - "playlists": { - "message": "Oynatma Listeleri" - }, - "playPause": { - "message": "Oynat / Duraklat" - }, - "popupPlayer": { - "message": "Popup oynatıcı" - }, - "position": { - "message": "Konum" - }, - "pressAnyKeyOrScroll": { - "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan" - }, - "previousVideo": { - "message": "Önceki video" - }, - "primaryColor": { - "message": "Birincil renk" - }, - "purple": { - "message": "Mor" - }, - "quality": { - "message": "Kalite" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Bizi oyla" - }, - "red": { - "message": "Kırmızı" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "İlgili videolar" - }, - "removeRelatedSearchResults": { - "message": "İlgili arama sonuçlarını kaldır" - }, - "repeat": { - "message": "Tekrarla" - }, - "reset": { - "message": "Sıfırla" - }, - "resetAllSettings": { - "message": "Tüm ayarları sıfırla" - }, - "resetAllShortcuts": { - "message": "Tüm kısayolları sıfırla" - }, - "reverse": { - "message": "Ters" - }, - "rotate": { - "message": "Döndür" - }, - "save": { - "message": "Kaydet" - }, - "saveAs": { - "message": "Farklı kaydet" - }, - "schedule": { - "message": "Takvim" - }, - "screen": { - "message": "Ekran" - }, - "screenshot": { - "message": "Ekran görüntüsü" - }, - "search": { - "message": "Ara" - }, - "searchBarOnly": { - "message": "Yalnızca arama çubuğu" - }, - "seekBackward10Seconds": { - "message": "10 saniye geriye git" - }, - "seekForward10Seconds": { - "message": "10 saniye ileriye git" - }, - "settings": { - "message": "Ayarlar" - }, - "settingsSuccessfullyImported": { - "message": "Ayarlar başarıyla içe aktarıldı" - }, - "shortcuts": { - "message": "Kısayollar" - }, - "showCardsOnMouseHover": { - "message": "Fareyle üzerine gelindiğinde kartları göster" - }, - "showChannelVideosCount": { - "message": "Kanalın video sayısını göster" - }, - "shuffle": { - "message": "Karıştır" - }, - "sidebar": { - "message": "Kenar çubuğu" - }, - "spacebar": { - "message": "Spacebar" - }, - "squaredUserImages": { - "message": "Kare kullanıcı görüntüleri" - }, - "static": { - "message": "Statik" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Adım" - }, - "stop": { - "message": "Durdur" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stiller" - }, - "subscriptions": { - "message": "Aboneler" - }, - "subtitles": { - "message": "Altyazılar" - }, - "sunset": { - "message": "Gün batımı" - }, - "sunsetToSunrise": { - "message": "Gün batımından gün doğumuna" - }, - "systemPeferenceDark": { - "message": "Sistem tercihi: koyu" - }, - "systemPeferenceLight": { - "message": "Sistem tercihi: açık" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Yazı rengi" - }, - "themes": { - "message": "Temalar" - }, - "thisWillRemoveAllCookies": { - "message": "Bu, tüm çerezleri kaldıracaktır." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Bu, tüm YouTube çerezlerini kaldıracaktır." - }, - "thisWillResetAllSettings": { - "message": "Bu, tüm ayarları sıfırlayacaktır." - }, - "thisWillResetAllShortcuts": { - "message": "Bu, tüm kısayolları sıfırlayacaktır." - }, - "thumbnails": { - "message": "Küçük resimler" - }, - "timeFrom": { - "message": "Şu zamandan" - }, - "timeTo": { - "message": "Şu zamana" - }, - "todayAt": { - "message": "Bugün" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Fragman otomatik oynatımı" - }, - "translations": { - "message": "Çeviriler" - }, - "transparentBackground": { - "message": "Saydam arka plan" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Sayfayı yeniden yüklemeyi deneyin" - }, - "type": { - "message": "Tip" - }, - "upNextAutoplay": { - "message": "Sonraki otomatik oynatma" - }, - "use24HourFormat": { - "message": "24 saat biçimini kullan" - }, - "version": { - "message": "Sürüm" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Kategorinin adını almak için video açıklaması genişletilecek" - }, - "videoFormats": { - "message": "Video formatları" - }, - "videos": { - "message": "Videolar" - }, - "volume": { - "message": "Ses" - }, - "watchLater": { - "message": "Sonra izle" - }, - "watchTime": { - "message": "İzleme zamanı" - }, - "whenTabIsChanged": { - "message": "Sekme değiştirildiğinde" - }, - "white": { - "message": "Beyaz" - }, - "yellow": { - "message": "Sarı" - }, - "youtubeHeaderLeft": { - "message": "YouTube Header (sol)" - }, - "youtubeHeaderRight": { - "message": "YouTube Header (sağ)" - }, - "youtubeHomePage": { - "message": "YouTube ana sayfası" - }, - "youtubeLanguage": { - "message": "YouTube dili" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube, h.264 codec bileşeni için video kalitesini 1080p ile sınırlar" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/zh_CN/messages.json b/3.120-pre/_locales/zh_CN/messages.json deleted file mode 100644 index 68b312438..000000000 --- a/3.120-pre/_locales/zh_CN/messages.json +++ /dev/null @@ -1,815 +0,0 @@ -{ - "about": { - "message": "关于" - }, - "accept": { - "message": "接受" - }, - "activate": { - "message": "启用" - }, - "activateCaptions": { - "message": "启用字幕" - }, - "activated": { - "message": "启用" - }, - "activatedFeatures": { - "message": "已启用功能" - }, - "activateFullscreen": { - "message": "启用全屏" - }, - "activeFeatures": { - "message": "启用功能" - }, - "addScrollToTop": { - "message": "返回顶部按钮" - }, - "ads": { - "message": "广告" - }, - "all": { - "message": "所有" - }, - "allow": { - "message": "允许" - }, - "allow60fps": { - "message": "允许60FPS" - }, - "alwaysActive": { - "message": "始终启用" - }, - "alwaysShowProgressBar": { - "message": "始终显示进度条" - }, - "amber": { - "message": "琥珀色" - }, - "analyzer": { - "message": "分析仪" - }, - "appearance": { - "message": "外观" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "音频" - }, - "audioFormats": { - "message": "音频格式" - }, - "auto": { - "message": "自动" - }, - "autoFullscreen": { - "message": "自动全屏" - }, - "autopauseWhenSwitchingTabs": { - "message": "切换标签时暂停播放" - }, - "autoplay": { - "message": "自动播放" - }, - "backupAndReset": { - "message": "备份与恢复" - }, - "baseOnSystemColorScheme": { - "message": "使用系统配色" - }, - "belowPlayer": { - "message": "在播放器下方" - }, - "black": { - "message": "纯黑" - }, - "blacklist": { - "message": "黑名单" - }, - "blockAll": { - "message": "拦截所有" - }, - "blue": { - "message": "蓝色" - }, - "blueGray": { - "message": "蓝灰色" - }, - "bluelight": { - "message": "色彩柔和度" - }, - "brown": { - "message": "棕色" - }, - "browser": { - "message": "浏览器" - }, - "browserVersion": { - "message": "浏览器版本" - }, - "bubbles": { - "message": "网格" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "按钮" - }, - "cancel": { - "message": "取消" - }, - "categories": { - "message": "分类" - }, - "channel": { - "message": "电影和节目" - }, - "channels": { - "message": "频道" - }, - "clipboard": { - "message": "粘贴板" - }, - "codecH264": { - "message": "采用 h.264 编码" - }, - "collapsed": { - "message": "收起" - }, - "collapseOfSubscriptionSections": { - "message": "订阅区域显示展开/收起按钮" - }, - "comments": { - "message": "评论" - }, - "confirmationBeforeClosing": { - "message": "页面关闭前提示" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "核心" - }, - "cropChapterTitles": { - "message": "裁剪章节标题" - }, - "customCss": { - "message": "自定义CSS" - }, - "customJs": { - "message": "自定义JS" - }, - "customMiniPlayer": { - "message": "自定义迷你播放器" - }, - "cyan": { - "message": "青色" - }, - "dark": { - "message": "黑暗" - }, - "darkTheme": { - "message": "夜间模式" - }, - "dateAndTime": { - "message": "时间与日期" - }, - "dawn": { - "message": "黎明" - }, - "decreasePlaybackSpeed": { - "message": "视频减速" - }, - "decreaseVolume": { - "message": "-5%音量" - }, - "deepOrange": { - "message": "深橙色" - }, - "deepPurple": { - "message": "深紫色" - }, - "defaultChannelTab": { - "message": "默认频道页" - }, - "deleteYoutubeCookies": { - "message": "清空 YouTube cookies" - }, - "description": { - "message": "视频描述" - }, - "desert": { - "message": "沙漠" - }, - "details": { - "message": "细节信息" - }, - "developerOptions": { - "message": "开发者选项" - }, - "device": { - "message": "设备" - }, - "dim": { - "message": "遮罩程度" - }, - "disabled": { - "message": "停用" - }, - "dislike": { - "message": "踩一下" - }, - "donate": { - "message": "支持" - }, - "doNotChange": { - "message": "不做改变" - }, - "draggable": { - "message": "可拖动" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "暂无" - }, - "enabled": { - "message": "启用" - }, - "enabledForced": { - "message": "强制启用" - }, - "expanded": { - "message": "展开" - }, - "exportSettings": { - "message": "导出设置" - }, - "extension": { - "message": "扩展" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "过滤" - }, - "fitToWindow": { - "message": "窗口自适应" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "字体" - }, - "footer": { - "message": "底部栏" - }, - "forcedPlaybackSpeed": { - "message": "强制设置播放速度" - }, - "forcedTheaterMode": { - "message": "强制设置剧场模式" - }, - "forcedVolume": { - "message": "强制修改音量" - }, - "foundABug": { - "message": "发现了一个 Bug?" - }, - "fullWindow": { - "message": "全屏" - }, - "general": { - "message": "一般设置" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "转到搜索栏" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "绿色" - }, - "hdThumbnail": { - "message": "高清缩略图" - }, - "hdThumbnails": { - "message": "高清缩略图" - }, - "header": { - "message": "顶部栏" - }, - "hidden": { - "message": "隐藏" - }, - "hiddenOnVideoPage": { - "message": "在视频播放页面时隐藏" - }, - "hideAnimatedThumbnails": { - "message": "隐藏动态缩略图" - }, - "hideAnnotations": { - "message": "隐藏预览图" - }, - "hideCards": { - "message": "隐藏信息卡片" - }, - "hideDetails": { - "message": "隐藏详细信息" - }, - "hideEndscreen": { - "message": "隐藏结束画面" - }, - "hideFeaturedContent": { - "message": "隐藏精选频道" - }, - "hideFooter": { - "message": "隐藏底部栏" - }, - "hideGradientBottom": { - "message": "隐藏底部渐变层" - }, - "hidePlaylist": { - "message": "隐藏播放列表" - }, - "hideRightButtons": { - "message": "隐藏右侧按钮" - }, - "hideScrollForDetails": { - "message": "隐藏 «滚动至详细信息»" - }, - "hideViewsCount": { - "message": "隐藏播放量" - }, - "history": { - "message": "历史记录" - }, - "home": { - "message": "首页" - }, - "hover": { - "message": "悬浮" - }, - "hoverOnVideoPage": { - "message": "在视频播放页面时悬浮显示" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "投稿于多久之前" - }, - "icons": { - "message": "图标" - }, - "iconsOnly": { - "message": "仅显示图标" - }, - "importSettings": { - "message": "导入设置" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube 扩展程序图标" - }, - "improvedtubeIconOnYoutube": { - "message": "在 YouTube 显示 ImprovedTube 图标" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube 语言" - }, - "improvedtubeVersion": { - "message": "ImprovedTube 版本" - }, - "improveLogo": { - "message": "优化图标" - }, - "increasePlaybackSpeed": { - "message": "视频加速" - }, - "increaseVolume": { - "message": "+5%音量" - }, - "indigo": { - "message": "靛青色" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "语言" - }, - "legacyYoutube": { - "message": "旧版 YouTube" - }, - "light": { - "message": "明亮" - }, - "lightBlue": { - "message": "浅蓝色" - }, - "lightGreen": { - "message": "浅绿色" - }, - "like": { - "message": "顶一下" - }, - "likes": { - "message": "顶/踩总数" - }, - "lime": { - "message": "石灰色" - }, - "list": { - "message": "列表" - }, - "liveChat": { - "message": "实时聊天" - }, - "liveChatType": { - "message": "事实聊天类型" - }, - "loudnessNormalization": { - "message": "音量标准化" - }, - "markWatchedVideos": { - "message": "标记已观看的视频" - }, - "mixer": { - "message": "混音器" - }, - "myColors": { - "message": "自定义颜色" - }, - "name": { - "message": "名字" - }, - "nativeMiniPlayer": { - "message": "原版迷你播放器" - }, - "new": { - "message": "新的" - }, - "nextVideo": { - "message": "上一个视频" - }, - "night": { - "message": "夜色" - }, - "noActiveFeatures": { - "message": "没有已启用功能" - }, - "none": { - "message": "无" - }, - "noOpenVideoTabs": { - "message": "没有打开视频标签" - }, - "normal": { - "message": "正常" - }, - "old": { - "message": "旧版" - }, - "onAllVideos": { - "message": "在所有视频" - }, - "onlyActiveOnYoutube": { - "message": "仅在 YouTube 上启用" - }, - "onlyOnePlayerInstancePlaying": { - "message": "同时仅播放一个" - }, - "onSubscribedChannels": { - "message": "在订阅频道" - }, - "orange": { - "message": "橙色" - }, - "os": { - "message": "操作系统" - }, - "other": { - "message": "其他" - }, - "permissions": { - "message": "许可" - }, - "pictureInPicture": { - "message": "画中画" - }, - "pink": { - "message": "粉色" - }, - "plain": { - "message": "野外" - }, - "platform": { - "message": "平台" - }, - "playbackSpeed": { - "message": "播放速度" - }, - "player": { - "message": "播放器" - }, - "playerColor": { - "message": "播放器颜色" - }, - "playerSize": { - "message": "播放器大小" - }, - "playlist": { - "message": "播放列表" - }, - "playlists": { - "message": "稍后观看" - }, - "playPause": { - "message": "播放 / 暂停" - }, - "popupPlayer": { - "message": "弹出播放器" - }, - "position": { - "message": "位置" - }, - "pressAnyKeyOrScroll": { - "message": "按下任意键或滚动鼠标滚轴." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "按下任意键或鼠标滚轴." - }, - "previousVideo": { - "message": "下一个视频" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "紫色" - }, - "quality": { - "message": "画质" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "给我们评价" - }, - "red": { - "message": "红色" - }, - "redDislikeButton": { - "message": "踩按钮显示为红色" - }, - "relatedVideos": { - "message": "相关视频" - }, - "removeRelatedSearchResults": { - "message": "隐藏搜索相关结果" - }, - "repeat": { - "message": "循环" - }, - "reset": { - "message": "重置" - }, - "resetAllSettings": { - "message": "重置所有设置" - }, - "resetAllShortcuts": { - "message": "重置所有快捷键" - }, - "reverse": { - "message": "逆序" - }, - "rotate": { - "message": "旋转" - }, - "save": { - "message": "保存" - }, - "saveAs": { - "message": "另存为" - }, - "schedule": { - "message": "定时开/关" - }, - "screen": { - "message": "屏幕" - }, - "screenshot": { - "message": "截图" - }, - "search": { - "message": "搜索" - }, - "searchBarOnly": { - "message": "仅搜索栏" - }, - "seekBackward10Seconds": { - "message": "倒退10秒" - }, - "seekForward10Seconds": { - "message": "快进10秒" - }, - "settings": { - "message": "ImprovedTube 设置" - }, - "settingsSuccessfullyImported": { - "message": "设置导入成功" - }, - "shortcuts": { - "message": "快捷键" - }, - "showCardsOnMouseHover": { - "message": "鼠标悬浮时显示信息卡片" - }, - "showChannelVideosCount": { - "message": "显示频道内视频数" - }, - "shuffle": { - "message": "随机" - }, - "sidebar": { - "message": "侧边栏" - }, - "spacebar": { - "message": "空格" - }, - "squaredUserImages": { - "message": "方形用户头像" - }, - "static": { - "message": "静态" - }, - "statsForNerds": { - "message": "显示专业信息" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "停止" - }, - "style": { - "message": "样式" - }, - "styles": { - "message": "样式" - }, - "subscriptions": { - "message": "订阅内容" - }, - "subtitles": { - "message": "副标题" - }, - "sunset": { - "message": "晚霞" - }, - "sunsetToSunrise": { - "message": "日落到日出" - }, - "systemPeferenceDark": { - "message": "系统偏好: 深色" - }, - "systemPeferenceLight": { - "message": "系统偏好: 浅色" - }, - "teal": { - "message": "蓝绿色" - }, - "textColor": { - "message": "文字颜色" - }, - "themes": { - "message": "主题" - }, - "thisWillRemoveAllCookies": { - "message": "将清空所有 cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "将清空所有 YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "将重置所有设置." - }, - "thisWillResetAllShortcuts": { - "message": "将会重置所有快捷键" - }, - "thumbnails": { - "message": "缩略图" - }, - "timeFrom": { - "message": "开始时间" - }, - "timeTo": { - "message": "结束时间" - }, - "todayAt": { - "message": "截止今天" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "自动播放预告片" - }, - "translations": { - "message": "翻译" - }, - "transparentBackground": { - "message": "透明背景" - }, - "trending": { - "message": "时下流行" - }, - "tryToReloadThePage": { - "message": "尝试刷新页面" - }, - "turnOff": { - "message": "关闭时间" - }, - "turnOn": { - "message": "开启时间" - }, - "type": { - "message": "类型" - }, - "upNextAutoplay": { - "message": "自动播放下一视频" - }, - "use24HourFormat": { - "message": "使用24小时制" - }, - "version": { - "message": "版本" - }, - "video": { - "message": "视频" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" - }, - "videoFormats": { - "message": "视频格式" - }, - "videos": { - "message": "视频" - }, - "volume": { - "message": "音量" - }, - "watchLater": { - "message": "稍后观看" - }, - "watchTime": { - "message": "观看时间" - }, - "whenTabIsChanged": { - "message": "标签更改时" - }, - "white": { - "message": "白色" - }, - "yellow": { - "message": "黄色" - }, - "youtubeHeaderLeft": { - "message": "Youtube标题(左)" - }, - "youtubeHeaderRight": { - "message": "Youtube标题(右)" - }, - "youtubeHomePage": { - "message": "YouTube 主页" - }, - "youtubeLanguage": { - "message": "YouTube 语言" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "采用 H.264 编解码时,YouTube 会将视频画质设为 1080p" - } -} \ No newline at end of file diff --git a/3.120-pre/_locales/zh_TW/messages.json b/3.120-pre/_locales/zh_TW/messages.json deleted file mode 100644 index 2d4c649d2..000000000 --- a/3.120-pre/_locales/zh_TW/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "about": { - "message": "關於" - }, - "accept": { - "message": "接受" - }, - "activate": { - "message": "啟用" - }, - "activateCaptions": { - "message": "開啟字幕" - }, - "activated": { - "message": "啟用" - }, - "activatedFeatures": { - "message": "已啟用功能" - }, - "activateFullscreen": { - "message": "開啟全螢幕" - }, - "activeFeatures": { - "message": "已啟用功能" - }, - "addScrollToTop": { - "message": "新增「回到頂部」按鈕" - }, - "ads": { - "message": "廣告" - }, - "all": { - "message": "所有" - }, - "allow": { - "message": "允許" - }, - "allow60fps": { - "message": "允許 60fps" - }, - "alwaysActive": { - "message": "始終有效" - }, - "alwaysShowProgressBar": { - "message": "一律顯示進度條" - }, - "amber": { - "message": "琥珀色" - }, - "analyzer": { - "message": "分析儀" - }, - "appearance": { - "message": "外貌" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "音頻" - }, - "audioFormats": { - "message": "音頻格式" - }, - "auto": { - "message": "自動" - }, - "autoFullscreen": { - "message": "自動全螢幕" - }, - "autopauseWhenSwitchingTabs": { - "message": "切換分頁時自動暫停" - }, - "autoplay": { - "message": "自動播放" - }, - "backupAndReset": { - "message": "備份&重置" - }, - "baseOnSystemColorScheme": { - "message": "使用系統配色方案" - }, - "belowPlayer": { - "message": "於播放器底下" - }, - "black": { - "message": "黑色" - }, - "blacklist": { - "message": "黑名單" - }, - "blockAll": { - "message": "封鎖所有" - }, - "blue": { - "message": "藍色" - }, - "blueGray": { - "message": "藍灰色" - }, - "bluelight": { - "message": "藍光" - }, - "brown": { - "message": "棕色" - }, - "browser": { - "message": "瀏覽器" - }, - "browserVersion": { - "message": "瀏覽器版本" - }, - "bubbles": { - "message": "Bubbles" - }, - "bug": { - "message": "問題" - }, - "buttons": { - "message": "按鈕" - }, - "cancel": { - "message": "取消" - }, - "categories": { - "message": "類別" - }, - "channel": { - "message": "頻道" - }, - "channels": { - "message": "頻道" - }, - "clipboard": { - "message": "剪贴板" - }, - "codecH264": { - "message": "影片編解碼器 h.264" - }, - "collapsed": { - "message": "簡縮" - }, - "collapseOfSubscriptionSections": { - "message": "於訂閱區顯示縮放按鈕" - }, - "comments": { - "message": "評論" - }, - "confirmationBeforeClosing": { - "message": "關閉前先確認" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "cropChapterTitles": { - "message": "截斷章節名稱" - }, - "customCss": { - "message": "自訂 CSS" - }, - "customJs": { - "message": "自訂 JS" - }, - "customMiniPlayer": { - "message": "自訂迷你播放器" - }, - "cyan": { - "message": "青色" - }, - "dark": { - "message": "暗黑" - }, - "darkTheme": { - "message": "暗黑主題" - }, - "dateAndTime": { - "message": "日期和時間" - }, - "dawn": { - "message": "黎明" - }, - "decreasePlaybackSpeed": { - "message": "降低播放速度" - }, - "decreaseVolume": { - "message": "減輕音量" - }, - "deepOrange": { - "message": "深橙色" - }, - "deepPurple": { - "message": "深紫色" - }, - "defaultChannelTab": { - "message": "預設頻道標籤" - }, - "deleteYoutubeCookies": { - "message": "刪除 YouTube cookies" - }, - "description": { - "message": "影片描述" - }, - "desert": { - "message": "沙漠" - }, - "details": { - "message": "細節" - }, - "developerOptions": { - "message": "開發人員選項" - }, - "device": { - "message": "裝置" - }, - "dim": { - "message": "光線暗度" - }, - "disabled": { - "message": "關閉" - }, - "dislike": { - "message": "不喜歡" - }, - "donate": { - "message": "捐贈" - }, - "doNotChange": { - "message": "不要改變" - }, - "draggable": { - "message": "可拖動" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "空白" - }, - "enabled": { - "message": "啟用" - }, - "enabledForced": { - "message": "強制啟用" - }, - "expanded": { - "message": "擴展" - }, - "exportSettings": { - "message": "導出設定" - }, - "extension": { - "message": "擴充元件" - }, - "file": { - "message": "檔案" - }, - "filters": { - "message": "濾鏡" - }, - "fitToWindow": { - "message": "依視窗大小縮放" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "字體" - }, - "footer": { - "message": "頁腳" - }, - "forcedPlaybackSpeed": { - "message": "強制播放速度" - }, - "forcedTheaterMode": { - "message": "強制劇院模式" - }, - "forcedVolume": { - "message": "強制播放音量" - }, - "foundABug": { - "message": "遇到問題了嗎?" - }, - "fullWindow": { - "message": "全螢幕" - }, - "general": { - "message": "一般" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "轉到搜索框" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "綠色" - }, - "hdThumbnail": { - "message": "HD 縮圖" - }, - "hdThumbnails": { - "message": "HD 縮圖" - }, - "header": { - "message": "標頭" - }, - "hidden": { - "message": "隱藏" - }, - "hiddenOnVideoPage": { - "message": "於影片頁面自動隱藏" - }, - "hideAnimatedThumbnails": { - "message": "隱藏動態的縮略圖" - }, - "hideAnnotations": { - "message": "隱藏註解" - }, - "hideCards": { - "message": "隱藏資訊卡" - }, - "hideDetails": { - "message": "隱藏細節" - }, - "hideEndscreen": { - "message": "隱藏結束畫面" - }, - "hideFeaturedContent": { - "message": "隱藏精選影片" - }, - "hideFooter": { - "message": "隱藏頁腳" - }, - "hideGradientBottom": { - "message": "隱藏底部漸層圖層" - }, - "hidePlaylist": { - "message": "隱藏播放清單" - }, - "hideRightButtons": { - "message": "隱藏右側按鈕" - }, - "hideScrollForDetails": { - "message": "隱藏「向下捲動即可查看詳情」" - }, - "hideViewsCount": { - "message": "隱藏觀看次數" - }, - "history": { - "message": "觀看記錄" - }, - "home": { - "message": "首頁" - }, - "hover": { - "message": "滑鼠暫留時顯示" - }, - "hoverOnVideoPage": { - "message": "於影片頁面滑鼠暫留時顯示" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "影片上傳了多久" - }, - "icons": { - "message": "圖標" - }, - "iconsOnly": { - "message": "只有圖標" - }, - "importSettings": { - "message": "導入設定" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube icon in Browser" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icon on YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube 語言" - }, - "improvedtubeVersion": { - "message": "ImprovedTube 版本" - }, - "improveLogo": { - "message": "改進 YouTube 圖示" - }, - "increasePlaybackSpeed": { - "message": "提高播放速度" - }, - "increaseVolume": { - "message": "增加音量" - }, - "indigo": { - "message": "靛青" - }, - "items": { - "message": "項目" - }, - "languages": { - "message": "語言" - }, - "legacyYoutube": { - "message": "舊版 YouTube" - }, - "light": { - "message": "Light" - }, - "lightBlue": { - "message": "淺藍色" - }, - "lightGreen": { - "message": "淺綠色" - }, - "like": { - "message": "喜歡" - }, - "likes": { - "message": "顯示按讚數量" - }, - "lime": { - "message": "萊姆色" - }, - "list": { - "message": "清單" - }, - "liveChat": { - "message": "Live 聊天視窗" - }, - "liveChatType": { - "message": "Live 聊天視窗種類" - }, - "loudnessNormalization": { - "message": "音量標準化" - }, - "markWatchedVideos": { - "message": "標記已觀看影片" - }, - "mixer": { - "message": "音量混合器" - }, - "myColors": { - "message": "自訂主色" - }, - "name": { - "message": "名稱" - }, - "nativeMiniPlayer": { - "message": "內建迷你播放器" - }, - "new": { - "message": "新增" - }, - "nextVideo": { - "message": "下一個影片" - }, - "night": { - "message": "夜晚" - }, - "noActiveFeatures": { - "message": "無已啟用功能" - }, - "none": { - "message": "無" - }, - "noOpenVideoTabs": { - "message": "無已開啟之影片頁面" - }, - "normal": { - "message": "正常" - }, - "old": { - "message": "舊版" - }, - "onAllVideos": { - "message": "於所有影片中" - }, - "onlyActiveOnYoutube": { - "message": "僅在YouTube上有效" - }, - "onlyOnePlayerInstancePlaying": { - "message": "同時間僅限播放單一影片" - }, - "onSubscribedChannels": { - "message": "於已訂閱的頻道中" - }, - "orange": { - "message": "橘色" - }, - "os": { - "message": "操作系統" - }, - "other": { - "message": "其他" - }, - "permissions": { - "message": "權限" - }, - "pictureInPicture": { - "message": "子母畫面" - }, - "pink": { - "message": "粉紅色" - }, - "plain": { - "message": "樸素" - }, - "platform": { - "message": "Platform" - }, - "playbackSpeed": { - "message": "播放速度" - }, - "player": { - "message": "播放器" - }, - "playerColor": { - "message": "影片進度條顏色" - }, - "playerSize": { - "message": "播放器大小" - }, - "playlist": { - "message": "播放列表" - }, - "playlists": { - "message": "播放清單" - }, - "playPause": { - "message": "播放/暫停" - }, - "popupPlayer": { - "message": "彈出播放器" - }, - "position": { - "message": "位置" - }, - "pressAnyKeyOrScroll": { - "message": "按任意鍵或使用滑鼠滾輪。" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "按任意鍵或使用鼠標滾輪。" - }, - "previousVideo": { - "message": "回到之前的影片" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "紫色" - }, - "quality": { - "message": "品質" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "評分" - }, - "red": { - "message": "紅色" - }, - "redDislikeButton": { - "message": "將「不喜歡」數量以紅色顯示" - }, - "relatedVideos": { - "message": "推薦影片" - }, - "removeRelatedSearchResults": { - "message": "移除搜尋相關結果" - }, - "repeat": { - "message": "重複播放" - }, - "reset": { - "message": "重置" - }, - "resetAllSettings": { - "message": "重置所有設定" - }, - "resetAllShortcuts": { - "message": "重置所有快捷鍵" - }, - "reverse": { - "message": "回播" - }, - "rotate": { - "message": "旋轉影片" - }, - "save": { - "message": "儲存" - }, - "saveAs": { - "message": "另存為" - }, - "schedule": { - "message": "排程" - }, - "screen": { - "message": "螢幕" - }, - "screenshot": { - "message": "截圖" - }, - "search": { - "message": "搜尋" - }, - "searchBarOnly": { - "message": "僅顯示搜尋列" - }, - "seekBackward10Seconds": { - "message": "倒退10秒" - }, - "seekForward10Seconds": { - "message": "前進10秒" - }, - "settings": { - "message": "設定" - }, - "settingsSuccessfullyImported": { - "message": "設定成功導入" - }, - "shortcuts": { - "message": "快捷鍵" - }, - "showCardsOnMouseHover": { - "message": "滑鼠暫留時顯示資訊卡" - }, - "showChannelVideosCount": { - "message": "顯示頻道影片數量" - }, - "shuffle": { - "message": "隨機播放" - }, - "sidebar": { - "message": "側邊欄" - }, - "spacebar": { - "message": "空格鍵" - }, - "squaredUserImages": { - "message": "方形用戶圖像" - }, - "static": { - "message": "靜止" - }, - "statsForNerds": { - "message": "顯示「統計資料」按鈕" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "停止" - }, - "style": { - "message": "樣式" - }, - "styles": { - "message": "樣式" - }, - "subscriptions": { - "message": "訂閱內容" - }, - "subtitles": { - "message": "允許字幕" - }, - "sunset": { - "message": "日落" - }, - "sunsetToSunrise": { - "message": "日出至入落" - }, - "systemPeferenceDark": { - "message": "系統預設: 暗黑模式" - }, - "systemPeferenceLight": { - "message": "系統預設: 白天模式" - }, - "teal": { - "message": "藍綠色" - }, - "textColor": { - "message": "文字顏色" - }, - "themes": { - "message": "主題" - }, - "thisWillRemoveAllCookies": { - "message": "這將刪除所有的 cookies。" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "這會刪除所有 YouTube Cookies。" - }, - "thisWillResetAllSettings": { - "message": "這會重置所有設定。" - }, - "thisWillResetAllShortcuts": { - "message": "這會重置所有快捷鍵。" - }, - "thumbnails": { - "message": "縮略圖" - }, - "timeFrom": { - "message": "開始時間" - }, - "timeTo": { - "message": "結束時間" - }, - "todayAt": { - "message": "自今日" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "預告片自動播放" - }, - "translations": { - "message": "翻譯" - }, - "transparentBackground": { - "message": "透明背景" - }, - "trending": { - "message": "發燒影片" - }, - "tryToReloadThePage": { - "message": "嘗試重新整理頁面" - }, - "type": { - "message": "種類" - }, - "upNextAutoplay": { - "message": "自動播放下一個影片" - }, - "use24HourFormat": { - "message": "使用24小時格式" - }, - "version": { - "message": "版本" - }, - "video": { - "message": "影片" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" - }, - "videoFormats": { - "message": "影片格式" - }, - "videos": { - "message": "影片" - }, - "volume": { - "message": "音量" - }, - "watchLater": { - "message": "稍後觀看" - }, - "watchTime": { - "message": "已觀看時間" - }, - "whenTabIsChanged": { - "message": "When tab is changed" - }, - "white": { - "message": "白色" - }, - "yellow": { - "message": "黃色" - }, - "youtubeHeaderLeft": { - "message": "YouTube 標頭 (左)" - }, - "youtubeHeaderRight": { - "message": "YouTube 標頭 (右)" - }, - "youtubeHomePage": { - "message": "預設的YouTube主頁" - }, - "youtubeLanguage": { - "message": "YouTube 語言" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "使用 H.264 編碼時,YouTube 會將畫質限定為 1080p 內。" - } -} \ No newline at end of file diff --git a/3.120-pre/assets/fonts/OpenSans-Regular.ttf b/3.120-pre/assets/fonts/OpenSans-Regular.ttf deleted file mode 100644 index 29bfd35a2bfdd92b6e8b4ec2970f4d1eebf49357..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96932 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

_T_kl)Xoan=RX{3lY#VQTZ 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 diff --git a/3.120-pre/assets/fonts/OpenSans-SemiBold.ttf b/3.120-pre/assets/fonts/OpenSans-SemiBold.ttf deleted file mode 100644 index 54e7059cf36359cb5a3860085714a95306af0dea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100820 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 DEZ%x^ diff --git a/3.120-pre/assets/icons/128.png b/3.120-pre/assets/icons/128.png deleted file mode 100644 index e6a56804d444718c30e08ccd4c65bec12283e420..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3060 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 diff --git a/3.120-pre/assets/icons/16g.png b/3.120-pre/assets/icons/16g.png deleted file mode 100644 index 0db3ae905f0909482aeed73c9657eafc46dfe8ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMf^8lX^SN8&+)YR0pw6vW3uG4;7XumD+1dH|`I(uSWo2b?adALK zQc@C7S7c;lVq#)oU?9*mpk5$ZQBhG_TU%XSot&HuR2dZ&_4e&spt5)G-i3#U=jG+) z@_73h*TZ{ECo`SQ}GON$mQnml=OcX#)K1q&WOe!PAAcC8TW5}=n2 zN`m}?8Fct4m_@l7d89}t$xqV^k|cJ=#hK1|DPK+JP$uN*XJ1V(x8tq#W_oz7}w|Z@Dx5Sf08aM2Du1u8+W8^YDy-T==Ga%M{HseWy zoc0y3GItmG7GG|Ozf&60@@6jYbJ-Ocv+5jrZyJTQ+uQQ+tE4{vt^0#N*4X1qP3n|w z3md0TN?0DaN`on7)12fFdwzBq&DT$9;7q>uGF5HY3FZciubTc>e|N5K);N>&)ka^x l?%&kbpq(+VPJR5t)?KcA=JD-$OhBJ8c)I$ztaD0e0suE42SES; diff --git a/3.120-pre/assets/icons/32.png b/3.120-pre/assets/icons/32.png deleted file mode 100644 index 673f7ba80d4dc37e467f69868cd8a97b30694180..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1162 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 C-9ae; diff --git a/3.120-pre/background.js b/3.120-pre/background.js deleted file mode 100644 index 3e99e9e50..000000000 --- a/3.120-pre/background.js +++ /dev/null @@ -1,368 +0,0 @@ -/*--------------------------------------------------------------- ->>> BACKGROUND ------------------------------------------------------------------ -# Global variables -# Functions -# Context menu items -# Message listener -# Storage change listener -# Initialization -# Uninstall URL -# Google Analytics ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# GLOBAL VARIABLES ----------------------------------------------------------------*/ - -var locale_code = 'en', - browser_icon = false; - - -/*--------------------------------------------------------------- -# FUNCTIONS ----------------------------------------------------------------*/ - -function isset(variable) { - if (typeof variable === 'undefined' || variable === null) { - return false; - } - - return true; -} - -function getTranslations(path) { - var xhr = new XMLHttpRequest(); - - xhr.addEventListener('load', function() { - if (chrome && chrome.tabs) { - chrome.tabs.query({}, function(tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - name: 'translation_response', - value: xhr.responseText - }); - } - } - }); - } - - chrome.runtime.sendMessage({ - name: 'translation_response', - value: xhr.responseText - }); - }); - - xhr.open('GET', path, true); - xhr.send(); -} - -function browserActionIcon() { - if (browser_icon === 'always') { - chrome.browserAction.setIcon({ - path: 'assets/icons/32.png' - }); - } else { - chrome.browserAction.setIcon({ - path: 'assets/icons/32g.png' - }); - } -} - - -/*--------------------------------------------------------------- -# CONTEXT MENU ITEMS ----------------------------------------------------------------*/ - -chrome.contextMenus.removeAll(); - -chrome.contextMenus.create({ - id: '1111', - title: 'Donate', - contexts: ['browser_action'] -}); - -chrome.contextMenus.create({ - id: '1112', - title: 'Rate me', - contexts: ['browser_action'] -}); - -chrome.contextMenus.create({ - id: '1113', - title: 'GitHub', - contexts: ['browser_action'] -}); - -chrome.contextMenus.onClicked.addListener(function(event) { - if (event.menuItemId === '1111') { - window.open('https://www.improvedtube.com/donate'); - } else if (event.menuItemId === '1112') { - window.open('https://chrome.google.com/webstore/detail/improvedtube-for-youtube/bnomihfieiccainjcjblhegjgglakjdd'); - } else if (event.menuItemId === '1113') { - window.open('https://github.com/ImprovedTube/ImprovedTube'); - } -}); - - -/*--------------------------------------------------------------- -# MESSAGE LISTENER ----------------------------------------------------------------*/ - -chrome.runtime.onMessage.addListener(function(request, sender) { - if (isset(request) && typeof request === 'object') { - if (request.enabled === true && browser_icon !== 'always') { - chrome.browserAction.setIcon({ - path: 'assets/icons/32.png', - tabId: sender.tab.id - }); - } - - if (request.name === 'translation_request') { - getTranslations(request.path); - } - - if (request.name === 'improvedtube-analyzer') { - var data = request.value, - date = new Date().toDateString(), - hours = new Date().getHours() + ':00'; - - chrome.storage.local.get(function(items) { - if (!items.analyzer) { - items.analyzer = {}; - } - - if (!items.analyzer[date]) { - items.analyzer[date] = {}; - } - - if (!items.analyzer[date][hours]) { - items.analyzer[date][hours] = {}; - } - - if (!items.analyzer[date][hours][data]) { - items.analyzer[date][hours][data] = 0; - } - - items.analyzer[date][hours][data]++; - - chrome.storage.local.set({ - analyzer: items.analyzer - }); - }); - } - - if (request.name === 'improvedtube-blacklist') { - chrome.storage.local.get(function(items) { - if (!items.blacklist || typeof items.blacklist !== 'object') { - items.blacklist = {}; - } - - if (request.data.type === 'channel') { - if (!items.blacklist.channels) { - items.blacklist.channels = {}; - } - - items.blacklist.channels[request.data.id] = { - title: request.data.title, - preview: request.data.preview - }; - } - - if (request.data.type === 'video') { - if (!items.blacklist.videos) { - items.blacklist.videos = {}; - } - - items.blacklist.videos[request.data.id] = { - title: request.data.title - }; - } - - chrome.storage.local.set({ - blacklist: items.blacklist - }); - }); - } - - if (request.name === 'improvedtube-watched') { - chrome.storage.local.get(function(items) { - if (!items.watched || typeof items.watched !== 'object') { - items.watched = {}; - } - - if (request.data.action === 'set') { - items.watched[request.data.id] = { - title: request.data.title - }; - } - - if (request.data.action === 'remove') { - delete items.watched[request.data.id]; - } - - chrome.storage.local.set({ - watched: items.watched - }); - }); - } - - if (request.name === 'download') { - chrome.permissions.request({ - permissions: ['downloads'], - origins: ['https://www.youtube.com/*'] - }, function(granted) { - if (granted) { - try { - var blob = new Blob([JSON.stringify(request.value)], { - type: 'application/json;charset=utf-8' - }); - - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: request.filename, - saveAs: true - }); - } catch (err) { - chrome.runtime.sendMessage({ - name: 'dialog-error', - value: err - }); - } - } else { - chrome.runtime.sendMessage({ - name: 'dialog-error', - value: 'permissionIsNotGranted' - }); - } - }); - } - - if (request.name === 'improvedtube-play') { - chrome.tabs.query({}, function(tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - name: 'improvedtube-play', - id: request.id - }); - } - } - }); - } - - if (isset(request.export)) { - chrome.storage.local.get(function(data) { - chrome.permissions.request({ - permissions: ['downloads'], - origins: ['https://www.youtube.com/*'] - }, function(granted) { - if (granted) { - var blob = new Blob([JSON.stringify(data)], { - type: 'application/octet-stream' - }), - date = new Date(); - - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: 'improvedtube_' + (date.getMonth() + 1) + '_' + date.getDate() + '_' + date.getFullYear() + '.json', - saveAs: true - }); - } - }); - }); - } - } -}); - - -/*--------------------------------------------------------------- -# STORAGE CHANGE LISTENER ----------------------------------------------------------------*/ - -chrome.storage.onChanged.addListener(function(changes) { - if (isset(changes.improvedtube_language)) { - locale_code = changes.improvedtube_language.newValue; - } - - if (isset(changes.improvedtube_browser_icon)) { - browser_icon = changes.improvedtube_browser_icon.newValue; - } - - browserActionIcon(); - - _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); -}); - - -/*--------------------------------------------------------------- -# INITIALIZATION ----------------------------------------------------------------*/ - -chrome.storage.local.get(function(items) { - if (isset(items.improvedtube_language)) { - locale_code = items.improvedtube_language; - } - - if (isset(items.improvedtube_browser_icon)) { - browser_icon = items.improvedtube_browser_icon; - } - - browserActionIcon(); - - _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); -}); - - -/*--------------------------------------------------------------- -# UNINSTALL URL ----------------------------------------------------------------*/ - -chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); - - -/*--------------------------------------------------------------- -# GOOGLE ANALYTICS ----------------------------------------------------------------*/ - -var _gaq = _gaq || []; - -/*(function() { - var ga = document.createElement('script'); - - _gaq.push(['_setAccount', 'UA-88354155-1']); - _gaq.push(['_setSessionCookieTimeout', 14400000]); - - ga.type = 'text/javascript'; - ga.async = true; - ga.src = 'https://ssl.google-analytics.com/ga.js'; - - document.body.appendChild(ga); -})();*/ - - - - - - - - - -chrome.tabs.onActivated.addListener(function(activeInfo) { - chrome.tabs.query({}, function(tabs) { - chrome.tabs.sendMessage(activeInfo.tabId, { - action: 'focus' - }); - - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].id !== activeInfo.tabId) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - action: 'blur' - }); - } - } - } - }); -}); \ No newline at end of file diff --git a/3.120-pre/content-scripts.js b/3.120-pre/content-scripts.js deleted file mode 100644 index 92921d8cf..000000000 --- a/3.120-pre/content-scripts.js +++ /dev/null @@ -1,186 +0,0 @@ -/*------------------------------------------------------------------------------ ->>> TABLE OF CONTENTS: --------------------------------------------------------------------------------- -1.0 Features -2.0 Isset -3.0 Initialization -4.0 Change listener -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -1.0 FEATURES -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -1.1 YOUTUBE HOME PAGE -------------------------------------------------------------------------------*/ - -function youtubeHomePage(option) { - if (location.pathname === '/') { - if (location.hostname === 'www.youtube.com') { - if ( - option === '/feed/trending' || - option === '/feed/subscriptions' || - option === '/feed/history' || - option === '/playlist?list=WL' - ) { - location.replace(option); - } - } - } -} - - -/*------------------------------------------------------------------------------ -2.0 ISSET -------------------------------------------------------------------------------*/ - -function isset(variable) { - if (typeof variable === 'undefined' || variable === null) { - return false; - } - - return true; -}; - -function camelize(string) { - return string.replace(/_[a-z]/g, function(match) { - return match[1].toUpperCase(); - }); -} - -function attributes(items) { - var whitelist = { - 'remove-related-search-results': true, - 'squared-user-images': true, - 'hide-animated-thumbnails': true, - 'header-position': true, - 'header-improve-logo': true, - 'header-hide-right-buttons': true, - 'player-hide-annotations': true, - 'player-hide-cards': true, - 'player-show-cards-on-mouse-hover': true, - 'player-size': true, - 'player-color': true, - 'player-transparent-background': true, - 'player-hide-endscreen': true, - 'hide-scroll-for-details': true, - 'always-show-progress-bar': true, - 'hide-details': true, - 'description': true, - 'hide-views-count': true, - 'likes': true, - 'red-dislike-button': true, - 'livechat': true, - 'hide-playlist': true, - 'related-videos': true, - 'comments': true, - 'hide-footer': true, - 'night-theme': true, - 'dawn-theme': true, - 'sunset-theme': true, - 'desert-theme': true, - 'plain-theme': true, - 'black-theme': true, - 'player-crop-chapter-titles': true, - 'player-ads': true - }; - - for (var key in items) { - var attribute = key.replace(/_/g, '-'); - - if (whitelist.hasOwnProperty(attribute)) { - document.documentElement.setAttribute('it-' + attribute, items[key]); - } - } -} - - -/*------------------------------------------------------------------------------ -3.0 INITIALIZATION -------------------------------------------------------------------------------*/ - -function injectScript(string) { - var script = document.createElement('script'); - - script.textContent = string; - - document.documentElement.appendChild(script); - - script.remove(); -} - -function injectStyles(string, id) { - var style = document.createElement('style'); - - style.textContent = string; - - if (id) { - style.id = id; - } - - document.documentElement.appendChild(style); -} - -chrome.storage.local.get('youtube_home_page', function(items) { - youtubeHomePage(items.youtube_home_page); -}); - -chrome.storage.local.get(function(items) { - var textContent = 'var ImprovedTube={'; - - // attributes - attributes(items); - - // Isset - textContent += 'isset:' + isset + ','; - - // Features - for (var key in ImprovedTube) { - textContent += key + ': ' + ImprovedTube[key] + ','; - } - - // Storage - textContent += 'storage:' + JSON.stringify(items); - - // Initialization - textContent += '};ImprovedTube.init();'; - - injectScript(textContent); -}); - - -/*------------------------------------------------------------------------------ -4.0 CHANGE LISTENER -------------------------------------------------------------------------------*/ - -chrome.storage.onChanged.addListener(function(changes) { - for (var key in changes) { - var value = changes[key].newValue, - func = camelize(key); - - document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), value); - - injectScript('ImprovedTube.storage[\'' + key + '\']=' + (typeof value === 'boolean' ? value : '\'' + value + '\'') + ';'); - - if (typeof ImprovedTube[func] === 'function') { - injectScript('ImprovedTube.' + func + '();'); - } - } -}); - - -chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { - if (request.action === 'focus') { - injectScript('ImprovedTube.focus = true;'); - } else if (request.action === 'blur') { - injectScript('ImprovedTube.focus = false;'); - } - - injectScript('ImprovedTube.onfocus();'); -}); - - -chrome.runtime.sendMessage({ - enabled: true -}); \ No newline at end of file diff --git a/3.120-pre/content-styles.css b/3.120-pre/content-styles.css deleted file mode 100644 index 095aa73b3..000000000 --- a/3.120-pre/content-styles.css +++ /dev/null @@ -1,5954 +0,0 @@ -/*------------------------------------------------------------------------------ ->>> TABLE OF CONTENTS: --------------------------------------------------------------------------------- -1.0 General - 1.1 YouTube home page - 1.2 Collapse of subscription sections - 1.3 Add "Scroll to top" - 1.4 Remove related search results - 1.5 Mark watched videos - 1.6 Squared user images - 1.7 Hide animated thumbnails -2.0 Appearance - 2.1 Header - 2.1.1 Position - 2.1.2 Improve logo - 2.1.3 Hide right buttons - 2.2 Player - 2.2.1 Hide annotations - 2.2.2 Hide cards - 2.2.3 Show cards on mouse hover - 2.2.4 Player size - 2.2.5 Player color - 2.2.6 Transparent background - 2.2.7 Hide endscreen - 2.2.8 Hide "Scroll for details" - 2.2.9 Always show progress bar - 2.3 Sidebar - 2.3.1 Livachat - 2.3.2 Hide playlist - 2.3.3 Relative videos - 2.4 Details - 2.4.1 Hide details - 2.4.2 Description - 2.4.3 Hide views count - 2.4.4 Likes - 2.4.5 Show dislike button red colour - 2.5 Comments - 2.6 Footer -3.0 Themes - 3.1 Bluelight - 3.2 Dim - 3.3 Themes -4.0 Player - 4.1 Crop chapter titles - 4.2 Ads - 4.3 Mini player - 4.4 Screenshot - 4.5 Repeat - 4.6 Rotate - 4.7 Popup player -5.0 Playlist - 5.1 Reverse -6.0 Channel - 6.1 Featured content -7.0 Shortcuts -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -1.0 GENERAL -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -1.1 YOUTUBE HOME PAGE -------------------------------------------------------------------------------*/ - -html[it-page-type=home][it-youtube-home-page=search], -html[it-page-type=home][it-youtube-home-page=search] app-drawer[opened], -html[it-page-type=home][it-youtube-home-page=search] #appbar-guide-menu -{ - visibility: hidden; - overflow: hidden; - - width: 100vw; - height: 100vh; - - pointer-events: none; -} - -html[it-page-type=home][it-youtube-home-page=search] ytd-masthead ytd-searchbox, -html[it-page-type=home][it-youtube-home-page=search] #yt-masthead-content -{ - position: fixed; - z-index: 99999; - top: 0; - left: 0; - - display: flex; - visibility: visible; - - width: 100vw; - height: 100vh; - margin: 0; - padding: 0; - - pointer-events: all; - - justify-content: center; - align-items: center; -} - -html[it-page-type=home][it-youtube-home-page=search] ytd-searchbox > form -{ - width: 100%; - max-width: 768px; - padding: 16px 32px; -} - -html[it-page-type=home][it-youtube-home-page=search] .gstl_50.sbdd_a -{ - z-index: 99999; - - visibility: visible; - - pointer-events: all; -} - - -/*------------------------------------------------------------------------------ -1.2 COLLAPSE OF SUBSCRIPTION SECTION -------------------------------------------------------------------------------*/ - -ytd-item-section-renderer .grid-subheader + #contents -{ - overflow: hidden; -} - -ytd-item-section-renderer.it-section-collapsed .grid-subheader + #contents -{ - height: 0 !important; -} - -ytd-item-section-renderer .it-section-collapse -{ - cursor: pointer; -} - -ytd-item-section-renderer .it-section-collapse svg -{ - width: 24px; - height: 24px; - - transition: transform 150ms; - - fill: var(--ytd-menu-renderer-button-color, var(--yt-spec-icon-inactive)); -} - -ytd-item-section-renderer .it-section-collapse:hover svg -{ - fill: var(--yt-spec-icon-active-other); -} - -ytd-item-section-renderer.it-section-collapsed .it-section-collapse svg -{ - transform: rotate(180deg); -} - - -/*------------------------------------------------------------------------------ -1.3 ADD "SCROLL TO TOP" -------------------------------------------------------------------------------*/ - -#it-scroll-to-top -{ - position: fixed; - z-index: 999; - right: 32px; - bottom: 32px; - - display: flex; - visibility: hidden; - - box-sizing: border-box; - width: 56px; - height: 56px; - - cursor: pointer; - transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; - transform: translateY(88px); - pointer-events: none; - - opacity: 0; - border-radius: 50%; - background: linear-gradient(135deg, #f8d266, #f17953); - box-shadow: 0 1px 1px 1px rgba(230, 109, 70, .7), 0 3px 5px rgba(0,0,0,.35); - - justify-content: center; - align-items: center; -} - -html[it-show-scroll-to-top=true] #it-scroll-to-top -{ - visibility: visible; - - transform: translateY(0px); - pointer-events: all; - - opacity: 1; -} - -html:not([it-red-popup-theme]) #it-scroll-to-top, -html[it-red-popup-theme=true] #it-scroll-to-top -{ - background: #f73030; - box-shadow: 0 3px 5px rgba(0,0,0,.35); -} - -#it-scroll-to-top > svg -{ - width: 24px; - - fill: #fff; -} - -html[it-show-scroll-to-top=true] #it-scroll-to-top:hover -{ - transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; - transform: translateY(4px) scale(.975); - - box-shadow: 0 5px 5px -3px rgba(0, 0, 0, .2), 0 8px 10px 1px rgba(0, 0, 0, .14), 0 3px 14px 2px rgba(0, 0, 0, .12); -} - - -/*------------------------------------------------------------------------------ -1.4 REMOVE RELATED SEARCH RESULTS -------------------------------------------------------------------------------*/ - -html[it-remove-related-search-results=true] ytd-horizontal-card-list-renderer.style-scope.ytd-item-section-renderer, -html[it-remove-related-search-results=true] li > div.feed-item-container.browse-list-item-container.yt-section-hover-container.compact-shelf.shelf-item.branded-page-box, -html[it-remove-related-search-results=true] li > div.search-refinements -{ - display: none; -} - - -/*------------------------------------------------------------------------------ -1.5 MARK WATCHED VIDEOS -------------------------------------------------------------------------------*/ - -.it-mark-watched -{ - position: absolute; - z-index: 999; - bottom: 4px; - left: 4px; - - visibility: hidden; - overflow: hidden; - - width: 28px; - height: 28px; - - cursor: pointer; - text-align: center; - - color: #fff; - border-radius: 2px; - background: rgba(0,0,0,.8); -} - -.it-mark-watched svg -{ - position: absolute; - top: 4px; - left: 4px; - - width: 20px; - height: 20px; - - fill: var(--ytd-menu-renderer-button-color, var(--yt-spec-icon-inactive, #aaa)); -} - -*:hover > .it-mark-watched -{ - visibility: visible; -} - -.it-mark-watched.watched svg -{ - fill: var(--yt-spec-icon-active-other, #fff); -} - - -/*------------------------------------------------------------------------------ -1.6 SQUARED USER IMAGES -------------------------------------------------------------------------------*/ - -html[it-squared-user-images=true] #avatar.ytd-shelf-renderer, -html[it-squared-user-images=true] yt-img-shadow, -html[it-squared-user-images=true] #yt-masthead-user .yt-masthead-user-icon -{ - border-radius: unset !important; -} - - -/*------------------------------------------------------------------------------ -1.7 HIDE ANIMATED THUMBNAILS -------------------------------------------------------------------------------*/ - -html[it-hide-animated-thumbnails=true] #mouseover-overlay, -html[it-hide-animated-thumbnails=true] .mouseover-play, -html[it-hide-animated-thumbnails=true] .mouseover-img -{ - visibility: hidden !important; -} - - -/*------------------------------------------------------------------------------- -2.0 APPEARANCE --------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------- -2.1 HEADER --------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------- -2.1.1 POSITION --------------------------------------------------------------------------------*/ - -html[it-header-position=hidden]:not([it-search-focus=true]) #masthead-container -{ - transform: translateY(-100%); -} - -html[it-header-position=hidden] app-drawer#guide #guide-spacer, -html[it-header-position=hidden] ytd-app > ytd-masthead, -html[it-header-position=hover] app-drawer#guide #guide-spacer, -html[it-header-position=static] app-drawer#guide #guide-spacer, -html[it-header-position=hidden_on_video_page][it-page-type=video] #masthead-container, -html[it-header-position=hidden_on_video_page][it-page-type=video] app-drawer#guide #guide-spacer, -html[it-header-position=hover_on_video_page][it-page-type=video] app-drawer#guide #guide-spacer -{ - display: none; -} - -html[it-header-position=hover] ytd-app > ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app > ytd-masthead, -html[it-header-position=hover] #masthead-container, -html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-container -{ - z-index: 2147483647; -} - -html[it-header-position=hidden] ytd-page-manager#page-manager, -html[it-header-position=hidden] app-header#header, -html[it-header-position=hidden_on_video_page][it-page-type='video'] ytd-page-manager#page-manager, -html[it-header-position=hidden_on_video_page][it-page-type='video'] app-header#header, -html[it-header-position=hidden] #appbar-guide-menu, -html[it-header-position=hidden_on_video_page][it-page-type='video'] #appbar-guide-menu, -html[it-header-position=hover] ytd-page-manager#page-manager, -html[it-header-position=hover] app-header#header, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-page-manager#page-manager, -html[it-header-position=hover_on_video_page][it-page-type='video'] app-header#header, -html[it-header-position=hover] #appbar-guide-menu, -html[it-header-position=hover_on_video_page][it-page-type='video'] #appbar-guide-menu, -html[it-header-position=static] ytd-page-manager#page-manager, -html[it-header-position=static] #appbar-guide-menu -{ - margin-top: 0; -} - -html[it-header-position=hover] ytd-app > ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) ytd-app > ytd-masthead, -html[it-header-position=hover]:not([it-improvedtube-search=true]) #masthead-container, -html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) #masthead-container -{ - transition: transform 250ms; - transform: translateY(-75%); -} - -html[it-header-position=hover] #masthead-container:hover, -html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-container:hover, -html[it-header-position=hover][it-search-focus=true] #masthead-container, -html[it-header-position=hover_on_video_page][it-page-type='video'][it-search-focus=true] #masthead-container -{ - transform: translateY(0%); -} - -html[it-header-position=static] #masthead-container -{ - position: relative; - z-index: 999999999999; -} - -html[it-header-position=hover] ytd-app[masthead-hidden_] ytd-masthead, -html[it-header-position=hover] ytd-app[scrolling_] ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app[masthead-hidden_] ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app[scrolling_] ytd-masthead -{ - display: none; -} - - -/*------------------------------------------------------------------------------ -2.1.2 IMPROVE LOGO -------------------------------------------------------------------------------*/ - -html[it-header-improve-logo=true] ytd-topbar-logo-renderer#logo -{ - filter: grayscale(1); -} - -html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer path[fill*='#FF0000'] -{ - fill: #282828; -} - -html[it-header-improve-logo=true][dark] g.ytd-topbar-logo-renderer path[fill*='#FF0000'] -{ - fill: #fff; -} - -html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer polygon[fill*='#FFFFFF'] -{ - fill: #232323; -} - - -/*------------------------------------------------------------------------------ -2.1.3 HIDE RIGHT BUTTONS -------------------------------------------------------------------------------*/ - -html[it-header-hide-right-buttons=true] ytd-masthead#masthead #container #end -{ - visibility: hidden; - - pointer-events: none; -} - - -/*------------------------------------------------------------------------------ -2.2 PLAYER -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -2.2.1 HIDE ANNOTATIONS -------------------------------------------------------------------------------*/ - -html[it-player-hide-annotations=true] .annotation, -html[it-player-hide-annotations=true] .annotation-type-text, -html[it-player-hide-annotations=true] .annotation-shape -{ - display: none; -} - - -/*------------------------------------------------------------------------------ -2.2.2 HIDE CARDS -------------------------------------------------------------------------------*/ - -html[it-player-hide-cards=true] .ytp-ce-element, -html[it-player-hide-cards=true] .ytp-ce-video, -html[it-player-hide-cards=true] .ytp-cards-button, -html[it-player-hide-cards=true] .ytp-cards-teaser -{ - display: none; -} - - -/*------------------------------------------------------------------------------ -2.2.3 SHOW CARDS ON MOUSE HOVER -------------------------------------------------------------------------------*/ - -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-ce-element, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-ce-video, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-cards-button, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-cards-teaser -{ - display: none; -} - -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-ce-element, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-ce-video, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-cards-button, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-cards-teaser -{ - display: block; -} - - -/*------------------------------------------------------------------------------ -2.2.4 PLAYER SIZE -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -# VARIABLES -------------------------------------------------------------------------------*/ - -/* ---- HEADER --------------------------------------------------------------*/ - -/* ---- NORMAL --------------------------------------------------------------*/ - -html[it-page-type=video]:not([it-header-position]) ytd-app, -html[it-page-type=video][it-header-position=normal] ytd-app, -html[it-page-type=video][it-header-position=static] ytd-app -{ - --it-header-size: 56px; -} - -html[it-page-type=video]:not([it-header-position]) ytd-watch-flexy:not([theater]), -html[it-page-type=video][it-header-position=normal] ytd-watch-flexy:not([theater]), -html[it-page-type=video][it-header-position=static] ytd-watch-flexy:not([theater]) -{ - --it-header-size: 104px; -} - -html[it-page-type=video]:not([it-header-position]) div#page, -html[it-page-type=video][it-header-position=normal] div#page, -html[it-page-type=video][it-header-position=static] div#page -{ - --it-header-size: 50px; -} - -html[it-page-type=video]:not([it-header-position]) div#page:not(.watch-wide), -html[it-page-type=video][it-header-position=normal] div#page:not(.watch-wide), -html[it-page-type=video][it-header-position=static] div#page:not(.watch-wide) -{ - --it-header-size: 70px; -} - - -/* ---- HIDDEN ---------------------------------------------------------------*/ - -html[it-page-type=video][it-header-position=hidden], -html[it-page-type=video][it-header-position=hidden_on_video_page] -{ - --it-header-size: 0px; -} - -html[it-page-type=video][it-header-position=hidden] ytd-watch-flexy:not([theater]), -html[it-page-type=video][it-header-position=hidden_on_video_page] ytd-watch-flexy:not([theater]) -{ - --it-header-size: 48px; -} - -html[it-page-type=video][it-header-position=hidden] div#page, -html[it-page-type=video][it-header-position=hidden_on_video_page] div#page -{ - --it-header-size: 0px; -} - -html[it-page-type=video][it-header-position=hidden] div#page:not(.watch-wide), -html[it-page-type=video][it-header-position=hidden_on_video_page] div#page:not(.watch-wide) -{ - --it-header-size: 20px; -} - - -/* ---- HOVER ----------------------------------------------------------------*/ - -html[it-page-type=video][it-header-position=hover], -html[it-page-type=video][it-header-position=hover_on_video_page] -{ - --it-header-size: 14px; -} - -html[it-page-type=video][it-header-position=hover] ytd-watch-flexy:not([theater]), -html[it-page-type=video][it-header-position=hover_on_video_page] ytd-watch-flexy:not([theater]) -{ - --it-header-size: 62px; -} - -html[it-page-type=video][it-header-position=hover] div#page, -html[it-page-type=video][it-header-position=hover_on_video_page] div#page -{ - --it-header-size: 12px; -} - -html[it-page-type=video][it-header-position=hover] div#page:not(.watch-wide), -html[it-page-type=video][it-header-position=hover_on_video_page] div#page:not(.watch-wide) -{ - --it-header-size: 32px; -} - -html[it-page-type=video][it-header-position=hover] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container, -html[it-page-type=video][it-header-position=hover_on_video_page] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container -{ - margin-top: 14px; -} - -html[it-page-type=video][it-header-position=hover] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen), -html[it-page-type=video][it-header-position=hover_on_video_page] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen) -{ - margin-top: 12px; -} - - -/* ---- FIXED PLAYER SIZE ----------------------------------------------------*/ - -html[it-page-type=video][it-player-size='240p'] *, -html[it-page-type=video][it-player-size='360p'] *, -html[it-page-type=video][it-player-size='480p'] *, -html[it-page-type=video][it-player-size='576p'] *, -html[it-page-type=video][it-player-size='720p'] *, -html[it-page-type=video][it-player-size='1080p'] *, -html[it-page-type=video][it-player-size='1440p'] *, -html[it-page-type=video][it-player-size='2160p'] * -{ - --it-header-size: 0px !important; -} - - -/* ---- SIZES ----------------------------------------------------------------*/ - -html[it-page-type=video][it-player-size='240p'] -{ - --it-player-size: 240px; -} - -html[it-page-type=video][it-player-size='360p'] -{ - --it-player-size: 360px; -} - -html[it-page-type=video][it-player-size='480p'] -{ - --it-player-size: 480px; -} - -html[it-page-type=video][it-player-size='576p'] -{ - --it-player-size: 576px; -} - -html[it-page-type=video][it-player-size='720p'] -{ - --it-player-size: 720px; -} - -html[it-page-type=video][it-player-size='1080p'] -{ - --it-player-size: 1080px; -} - -html[it-page-type=video][it-player-size='1440p'] -{ - --it-player-size: 1440px; -} - -html[it-page-type=video][it-player-size='2160p'] -{ - --it-player-size: 2160px; -} - -html[it-page-type=video][it-player-size='full_window'] -{ - --it-player-size: 100vh; -} - -html[it-page-type=video][it-player-size='fit_to_window'] -{ - --it-player-size: 100vh; -} - - -/*------------------------------------------------------------------------------ -# ELEMENTS -------------------------------------------------------------------------------*/ - -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-container-inner -{ - padding-top: calc(var(--it-player-size) - var(--it-header-size)) !important; -} - -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container, -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container -{ - width: auto !important; - height: calc(var(--it-player-size) - var(--it-header-size)) !important; - min-height: auto !important; - max-height: 100vh !important; -} - -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player -{ - background: #000 !important; -} - -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-container -{ - position: absolute !important; - - display: flex !important; - - width: 100% !important; - height: 100% !important; - - justify-content: center !important; - align-items: center !important; -} - -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video -{ - position: static !important; - top: 0 !important; - left: 0 !important; - - width: auto !important; - max-width: 100% !important; - height: calc(var(--it-player-size) - var(--it-header-size)) !important; -} - - -/*FIT TO WINDOW*/ - -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-theater-container -{ - background: transparent !important; -} - -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) -{ - display: table !important; - overflow: visible !important; - - width: auto !important; - margin: auto !important; -} - -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-chrome-bottom -{ - width: calc(100% - 24px) !important; -} - -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .html5-video-container -{ - position: static !important; - - display: inline-block !important; - - width: auto !important; -} - -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video -{ - position: static !important; - - width: auto !important; - max-width: 100vw !important; -} - -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-iv-video-content -{ - pointer-events: none !important; -} - -html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, -html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player, -html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, -html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player -{ - margin-top: 14px !important; -} - - -/*------------------------------------------------------------------------------ -2.2.5 PLAYER COLOR -------------------------------------------------------------------------------*/ - -html[it-player-color='pink'] -{ - --it-player-color: #e91e63; -} - -html[it-player-color='purple'] -{ - --it-player-color: #9c27b0; -} - -html[it-player-color='deep_purple'] -{ - --it-player-color: #673ab7; -} - -html[it-player-color='indigo'] -{ - --it-player-color: #3f51b5; -} - -html[it-player-color='blue'] -{ - --it-player-color: #1e88e5; -} - -html[it-player-color='light_blue'] -{ - --it-player-color: #03a9f4; -} - -html[it-player-color='cyan'] -{ - --it-player-color: #00bcd4; -} - -html[it-player-color='teal'] -{ - --it-player-color: #009688; -} - -html[it-player-color='green'] -{ - --it-player-color: #4caf50; -} - -html[it-player-color='light_green'] -{ - --it-player-color: #8bc34a; -} - -html[it-player-color='lime'] -{ - --it-player-color: #cddc39; -} - -html[it-player-color='yellow'] -{ - --it-player-color: #ffeb3b; -} - -html[it-player-color='amber'] -{ - --it-player-color: #ffc107; -} - -html[it-player-color='orange'] -{ - --it-player-color: #ff9800; -} - -html[it-player-color='deep_orange'] -{ - --it-player-color: #ff5722; -} - -html[it-player-color='brown'] -{ - --it-player-color: #795548; -} - -html[it-player-color='blue_gray'] -{ - --it-player-color: #607d8b; -} - -html[it-player-color='white'] -{ - --it-player-color: #fff; -} - -html[it-player-color]:not([it-player-color='red']) .ytp-play-progress, -html[it-player-color]:not([it-player-color='red']) .ytp-scrubber-button, -html[it-player-color]:not([it-player-color='red']) .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color]:not([it-player-color='red']) .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: var(--it-player-color) !important; -} - -html[it-player-color]([it-player-color='red']) .ytp-swatch-color -{ - color: var(--it-player-color) !important; -} - - -/*------------------------------------------------------------------------------ -2.2.6 TRANSPARENT BACKGROUND -------------------------------------------------------------------------------*/ - -[it-player-transparent-background=true] #player-theater-container, -[it-player-transparent-background=true] #theater-background, -[it-player-transparent-background=true] #player-api, -[it-player-transparent-background=true] .player-api, -[it-player-transparent-background=true] #movie_player, -[it-player-transparent-background=true] #player-container, -[it-player-transparent-background=true] #movie_player video -{ - background-color: transparent !important; -} - - -/*------------------------------------------------------------------------------ -2.2.7 HIDE ENDSCREEN -------------------------------------------------------------------------------*/ - -html[it-player-hide-endscreen=true] .html5-endscreen -{ - display: none !important; -} - - -/*------------------------------------------------------------------------------ -2.2.8 HIDE "SCROLL FOR DETAILS" -------------------------------------------------------------------------------*/ - -html[it-hide-scroll-for-details=true] button.ytp-fullerscreen-edu-button -{ - display: none !important; -} - -html[it-hide-scroll-for-details=true] ytd-app[scrolling_] -{ - overflow: hidden !important; -} - - -/*------------------------------------------------------------------------------ -2.2.9 ALWAYS SHOW PROGRESS BAR -------------------------------------------------------------------------------*/ - -html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom -{ - opacity: 1 !important; -} - -html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-chrome-controls -{ - opacity: 0 !important; -} - -html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-progress-bar-container -{ - bottom: 0 !important; -} - - -/*------------------------------------------------------------------------------ -2.3 SIDEBAR -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -2.3.1 LIVECHAT -------------------------------------------------------------------------------*/ - -html[it-livechat=hidden] ytd-live-chat-frame#chat, -html[it-livechat=hidden] div#watch-sidebar-live-chat -{ - display: none !important; -} - - -/*------------------------------------------------------------------------------ -2.3.2 HIDE PLAYLIST -------------------------------------------------------------------------------*/ - -html[it-hide-playlist=true] ytd-playlist-panel-renderer#playlist, -html[it-hide-playlist=true] div#player-playlist, -html[it-hide-playlist=true] #placeholder-playlist -{ - position: absolute !important; - - width: 0 !important; - height: 0 !important; - - pointer-events: none !important; - - opacity: 0 !important; -} - - -/*------------------------------------------------------------------------------ -2.3.3 RELATIVE VIDEOS -------------------------------------------------------------------------------*/ - -html[it-related-videos=hidden] div#related, -html[it-related-videos=hidden] div#watch7-sidebar-contents, -html[it-related-videos=collapsed].related-videos-collapsed #watch7-sidebar-modules, -html[it-related-videos=collapsed].related-videos-collapsed #related > *:not(#improvedtube-collapsed-related-videos), -html[it-related-videos=collapsed]:not(.related-videos-collapsed) #improvedtube-collapsed-related-videos .show-more-text, -html[it-related-videos=collapsed].related-videos-collapsed #improvedtube-collapsed-related-videos .show-less-text -{ - display: none !important; -} - -#improvedtube-collapsed-related-videos -{ - font-family: inherit; - font-size: 12px; - font-weight: 500; - - box-sizing: border-box; - width: 100%; - margin: 0 0 3rem; - padding: 1rem 0; - - cursor: pointer; - letter-spacing: .007px; - text-transform: uppercase; - - color: var(--yt-expand-color); - border: none; - border-bottom: 1px solid var(--yt-spec-10-percent-layer); - outline: none; - background: transparent; -} - -#watch7-sidebar #improvedtube-collapsed-related-videos -{ - font-size: 12px; - font-weight: 500; - - display: block; - - width: 95%; - height: 100%; - margin: 0 auto 15px !important; - padding: 10px 0; - - cursor: pointer; - text-align: center; - - color: #333; - border: 1px solid #d3d3d3; - border-color: #c6c6c6; - outline: 0; - background-color: #f8f8f8; - background-image: linear-gradient(to top, #f0f0f0 0, #f8f8f8 100%); - box-shadow: inset 0 1px 0 #ddd; -} - - -/*------------------------------------------------------------------------------ -2.4 DETAILS -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -2.4.1 HIDE DETAILS -------------------------------------------------------------------------------*/ - -html[it-hide-details=true] #watch-header, -html[it-hide-details=true] #watch-action-panels, -html[it-hide-details=true] #action-panel-details, -html[it-hide-details=true] #primary-inner > #info, -html[it-hide-details=true] #primary-inner > #meta -{ - display: none !important; -} - - -/*------------------------------------------------------------------------------ -2.4.2 DESCRIPTION -------------------------------------------------------------------------------*/ - -html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, -html[it-description=hidden] div#action-panel-details, -html[it-description=expanded] #meta-contents ytd-expander[collapsed] paper-button, -html[it-description=expanded] #action-panel-details button -{ - display: none !important; -} - -html[it-description=expanded] #meta-contents ytd-expander[collapsed] > #content.ytd-expander, -html[it-description=expanded] #watch-description-text -{ - max-height: unset !important; -} - -html[it-description=expanded] .yt-uix-expander .yt-uix-expander-collapsed-body, -html[it-description=expanded] .yt-uix-expander-collapsed .yt-uix-expander-body -{ - display: block !important; -} - - -/*------------------------------------------------------------------------------ -2.4.3 HIDE VIEWS COUNT -------------------------------------------------------------------------------*/ - -html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer, -html[it-hide-views-count=true] #watch7-views-info > .watch-view-count -{ - display: none !important; -} - - -/*------------------------------------------------------------------------------ -2.4.4 Likes -------------------------------------------------------------------------------*/ - -[it-likes=hidden] #watch8-sentiment-actions > .like-button-renderer, -[it-likes=hidden] .video-extras-sparkbar-likes, -[it-likes=hidden] .video-extras-sparkbar-dislikes, -[it-likes=hidden] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(1), -[it-likes=hidden] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(2), -[it-likes=hidden] #sentiment.ytd-video-primary-info-renderer -{ - visibility: hidden !important; - - pointer-events: none !important; -} - -[it-likes=icons_only] #watch8-sentiment-actions > .like-button-renderer button > span, -[it-likes=icons_only] .video-extras-sparkbar-likes, -[it-likes=icons_only] .video-extras-sparkbar-dislikes, -[it-likes=icons_only] #top-level-buttons ytd-toggle-button-renderer:nth-child(1) yt-formatted-string, -[it-likes=icons_only] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) yt-formatted-string, -[it-likes=icons_only] #sentiment.ytd-video-primary-info-renderer -{ - visibility: hidden !important; - - pointer-events: none !important; -} - -[it-likes=icons_only] #text.style-scope.ytd-toggle-button-renderer.style-text, -[it-likes=icons_only] #text.style-scope.ytd-toggle-button-renderer.style-default-active -{ - visibility: hidden !important; -} - -[it-likes=icons_only] .like-button-renderer-like-button, -[it-likes=icons_only] .like-button-renderer-dislike-button -{ - color: transparent !important; -} - - -/*------------------------------------------------------------------------------ -2.4.5 SHOW DISLIKE RED COLOR -------------------------------------------------------------------------------*/ - -[it-red-dislike-button=true] #top-level-buttons > ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active > a -{ - color: #fc0000 !important; -} - - -/*------------------------------------------------------------------------------ -2.5 COMMENTS -------------------------------------------------------------------------------*/ - -html[it-comments=hidden] ytd-comments#comments, -html[it-comments=hidden] div#watch-discussion, -html[it-comments=collapsed].comments-collapsed #comment-section-renderer-items + button, -html[it-comments=collapsed]:not(.comments-collapsed) #improvedtube-collapsed-comments .show-more-text, -html[it-comments=collapsed].comments-collapsed #improvedtube-collapsed-comments .show-less-text, -html[it-comments=collapsed].comments-collapsed #comments #spinner -{ - display: none !important; -} - -html[it-comments=collapsed].comments-collapsed #comment-section-renderer-items, -html[it-comments=collapsed].comments-collapsed #comments #sections #contents -{ - overflow: hidden !important; - - height: 0 !important; -} - -#sections #improvedtube-collapsed-comments -{ - font-family: inherit; - font-size: 12px; - font-weight: 500; - - box-sizing: border-box; - width: 100%; - margin: 0 0 3rem; - padding: 1rem 0; - - cursor: pointer; - letter-spacing: .007px; - text-transform: uppercase; - - color: var(--yt-expand-color); - border: none; - border-bottom: 1px solid var(--yt-spec-10-percent-layer); - outline: none; - background: transparent; -} - - -/*------------------------------------------------------------------------------ -2.6 FOOTER -------------------------------------------------------------------------------*/ - -html[it-hide-footer=true] app-drawer#guide #footer -{ - display: none !important; -} - - -/*------------------------------------------------------------------------------ -3.0 THEMES -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -3.1 BLUELIGHT -------------------------------------------------------------------------------*/ - -html[it-bluelight] -{ - height: auto; -} - -html[it-bluelight], -html[it-bluelight] .html5-video-player.ytp-fullscreen -{ - filter: url(#it-bluelight-filter); -} - -#it-bluelight -{ - position: fixed; - top: 0; - left: 0; - - visibility: hidden; - - width: 100%; - height: 100vh; - - pointer-events: none; -} - -html[it-bluelight][it-youtube-version=old] -{ - background-color: #f1f1f1; -} - -html[it-bluelight][it-youtube-version=old] body -{ - min-height: 100vh; -} - - -/*------------------------------------------------------------------------------ -3.2 DIM -------------------------------------------------------------------------------*/ - -#it-dim -{ - position: fixed; - z-index: 2147483645; - top: 0; - left: 0; - - width: 100%; - height: 100vh; - - pointer-events: none; - - background: #000; -} - -#it-dim-player -{ - position: fixed; - z-index: 2147483645; - top: 0; - left: 0; - - visibility: hidden; - - width: 100%; - height: 100vh; - - pointer-events: none; - - background: #000; -} - -.html5-video-player.ytp-fullscreen #it-dim-player -{ - visibility: visible !important; -} - - -/*------------------------------------------------------------------------------ -3.3 THEMES -------------------------------------------------------------------------------*/ - -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #000!important; - --yt-swatch-primary-darker: #000!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #000; - - --yt-spec-brand-background-solid:#000 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#000 !important; - --yt-spec-general-background-b:#000 !important; - --yt-spec-general-background-c:#000 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#aaa !important; - --yt-spec-text-primary-inverse:#aaa !important; - --yt-spec-text-secondary:#aaa !important; - --yt-spec-text-disabled:#aaa !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#aaa !important; - --yt-spec-icon-inactive:#aaa !important; - --yt-spec-icon-disabled:#aaa !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#000000 !important; - --yt-spec-filled-button-text:#aaa !important; - --yt-spec-call-to-action-inverse:#aaa !important; - --yt-spec-brand-icon-active:#aaa !important; - --yt-spec-brand-icon-inactive:#aaa !important; - --yt-spec-brand-button-background:#242424 !important; - --yt-spec-brand-link-text:#aaa !important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#aaa !important; - --yt-spec-wordmark-text:#aaa !important; - --yt-spec-10-percent-layer:#242424 !important; - --yt-spec-selected-nav-text:#aaa !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo -{ - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); -} -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #000!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #000; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #000; - --yt-playlist-background-item: #000; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #000; - --paper-listbox-background-color: #000; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #000; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #000; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #000; - --yt-menu-focus-background-color: #000; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #000; - --yt-main-app-background: #000; - --yt-main-app-background-tmp: #000; - --yt-guide-background: #000; - --yt-dialog-background: #000; - --yt-searchbox-background: #000!important; - --yt-channel-header-background: #000; - --yt-sidebar-background: #000; - --yt-transcript-background: #000; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #000; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #000; - --yt-blue-suggestive: transparent; -} - - - -@media (prefers-color-scheme: dark) { - [it-black-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #000!important; - --yt-swatch-primary-darker: #000!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #000; - - --yt-spec-brand-background-solid:#000 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#000 !important; - --yt-spec-general-background-b:#000 !important; - --yt-spec-general-background-c:#000 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#aaa !important; - --yt-spec-text-primary-inverse:#aaa !important; - --yt-spec-text-secondary:#aaa !important; - --yt-spec-text-disabled:#aaa !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#aaa !important; - --yt-spec-icon-inactive:#aaa !important; - --yt-spec-icon-disabled:#aaa !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#000000 !important; - --yt-spec-filled-button-text:#aaa !important; - --yt-spec-call-to-action-inverse:#aaa !important; - --yt-spec-brand-icon-active:#aaa !important; - --yt-spec-brand-icon-inactive:#aaa !important; - --yt-spec-brand-button-background:#242424 !important; - --yt-spec-brand-link-text:#aaa !important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#aaa !important; - --yt-spec-wordmark-text:#aaa !important; - --yt-spec-10-percent-layer:#242424 !important; - --yt-spec-selected-nav-text:#aaa !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - html[it-black-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-black-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #000!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #000; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-black-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-black-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #000; - --yt-playlist-background-item: #000; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #000; - --paper-listbox-background-color: #000; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #000; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #000; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #000; - --yt-menu-focus-background-color: #000; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #000; - --yt-main-app-background: #000; - --yt-main-app-background-tmp: #000; - --yt-guide-background: #000; - --yt-dialog-background: #000; - --yt-searchbox-background: #000!important; - --yt-channel-header-background: #000; - --yt-sidebar-background: #000; - --yt-transcript-background: #000; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #000; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #000; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-black-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #000!important; - --yt-swatch-primary-darker: #000!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #000; - - --yt-spec-brand-background-solid:#000 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#000 !important; - --yt-spec-general-background-b:#000 !important; - --yt-spec-general-background-c:#000 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#aaa !important; - --yt-spec-text-primary-inverse:#aaa !important; - --yt-spec-text-secondary:#aaa !important; - --yt-spec-text-disabled:#aaa !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#aaa !important; - --yt-spec-icon-inactive:#aaa !important; - --yt-spec-icon-disabled:#aaa !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#000000 !important; - --yt-spec-filled-button-text:#aaa !important; - --yt-spec-call-to-action-inverse:#aaa !important; - --yt-spec-brand-icon-active:#aaa !important; - --yt-spec-brand-icon-inactive:#aaa !important; - --yt-spec-brand-button-background:#242424 !important; - --yt-spec-brand-link-text:#aaa !important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#aaa !important; - --yt-spec-wordmark-text:#aaa !important; - --yt-spec-10-percent-layer:#242424 !important; - --yt-spec-selected-nav-text:#aaa !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - html[it-black-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-black-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #000!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #000; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-black-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-black-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #000; - --yt-playlist-background-item: #000; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #000; - --paper-listbox-background-color: #000; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #000; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #000; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #000; - --yt-menu-focus-background-color: #000; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #000; - --yt-main-app-background: #000; - --yt-main-app-background-tmp: #000; - --yt-guide-background: #000; - --yt-dialog-background: #000; - --yt-searchbox-background: #000!important; - --yt-channel-header-background: #000; - --yt-sidebar-background: #000; - --yt-transcript-background: #000; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #000; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #000; - --yt-blue-suggestive: transparent; - } -} - -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #d44d5c!important; - --yt-swatch-primary-darker: #d44d5c!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #734; - - --yt-spec-brand-background-solid:#d44d5c !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#d44d5c !important; - --yt-spec-general-background-b:#d44d5c !important; - --yt-spec-general-background-c:#d44d5c !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:rgb(255,255,255) !important; - --yt-spec-text-primary-inverse:rgb(255,255,255) !important; - --yt-spec-text-secondary:rgb(255,255,255) !important; - --yt-spec-text-disabled:rgb(255,255,255) !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:rgb(255,255,255) !important; - --yt-spec-icon-inactive:rgb(255,255,255) !important; - --yt-spec-icon-disabled:rgb(255,255,255) !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#d44d5c !important; - --yt-spec-filled-button-text:rgb(255,255,255) !important; - --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; - --yt-spec-brand-icon-active:rgb(255,255,255) !important; - --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:rgb(255,255,255)!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; - --yt-spec-wordmark-text:rgb(255,255,255) !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:rgb(255,255,255) !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #734!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #d44d5c; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #d44d5c; - --yt-playlist-background-item: #d44d5c; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #d44d5c; - --paper-listbox-background-color: #d44d5c; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #d44d5c; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #d44d5c; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #d44d5c; - --yt-menu-focus-background-color: #d44d5c; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #d44d5c; - --yt-main-app-background: #d44d5c; - --yt-main-app-background-tmp: #d44d5c; - --yt-guide-background: #d44d5c; - --yt-dialog-background: #734; - --yt-searchbox-background: #672c3b; - --yt-channel-header-background: #d44d5c; - --yt-sidebar-background: #d44d5c; - --yt-transcript-background: #d44d5c; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #d44d5c; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #d44d5c; - --yt-blue-suggestive: transparent; - --yt-spec-text-secondary: #f5dbe2; -} -html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo -{ - -webkit-filter: grayscale(1) brightness(4); - filter: grayscale(1) brightness(4); -} - - - - - -@media (prefers-color-scheme: dark) { - [it-dawn-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #d44d5c!important; - --yt-swatch-primary-darker: #d44d5c!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #734; - - --yt-spec-brand-background-solid:#d44d5c !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#d44d5c !important; - --yt-spec-general-background-b:#d44d5c !important; - --yt-spec-general-background-c:#d44d5c !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:rgb(255,255,255) !important; - --yt-spec-text-primary-inverse:rgb(255,255,255) !important; - --yt-spec-text-secondary:rgb(255,255,255) !important; - --yt-spec-text-disabled:rgb(255,255,255) !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:rgb(255,255,255) !important; - --yt-spec-icon-inactive:rgb(255,255,255) !important; - --yt-spec-icon-disabled:rgb(255,255,255) !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#d44d5c !important; - --yt-spec-filled-button-text:rgb(255,255,255) !important; - --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; - --yt-spec-brand-icon-active:rgb(255,255,255) !important; - --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:rgb(255,255,255)!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; - --yt-spec-wordmark-text:rgb(255,255,255) !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:rgb(255,255,255) !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-dawn-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #734!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #d44d5c; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-dawn-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-dawn-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #d44d5c; - --yt-playlist-background-item: #d44d5c; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #d44d5c; - --paper-listbox-background-color: #d44d5c; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #d44d5c; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #d44d5c; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #d44d5c; - --yt-menu-focus-background-color: #d44d5c; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #d44d5c; - --yt-main-app-background: #d44d5c; - --yt-main-app-background-tmp: #d44d5c; - --yt-guide-background: #d44d5c; - --yt-dialog-background: #734; - --yt-searchbox-background: #672c3b; - --yt-channel-header-background: #d44d5c; - --yt-sidebar-background: #d44d5c; - --yt-transcript-background: #d44d5c; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #d44d5c; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #d44d5c; - --yt-blue-suggestive: transparent; - --yt-spec-text-secondary: #f5dbe2; - } - html[it-dawn-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(4); - filter: grayscale(1) brightness(4); - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-dawn-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #d44d5c!important; - --yt-swatch-primary-darker: #d44d5c!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #734; - - --yt-spec-brand-background-solid:#d44d5c !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#d44d5c !important; - --yt-spec-general-background-b:#d44d5c !important; - --yt-spec-general-background-c:#d44d5c !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:rgb(255,255,255) !important; - --yt-spec-text-primary-inverse:rgb(255,255,255) !important; - --yt-spec-text-secondary:rgb(255,255,255) !important; - --yt-spec-text-disabled:rgb(255,255,255) !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:rgb(255,255,255) !important; - --yt-spec-icon-inactive:rgb(255,255,255) !important; - --yt-spec-icon-disabled:rgb(255,255,255) !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#d44d5c !important; - --yt-spec-filled-button-text:rgb(255,255,255) !important; - --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; - --yt-spec-brand-icon-active:rgb(255,255,255) !important; - --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:rgb(255,255,255)!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; - --yt-spec-wordmark-text:rgb(255,255,255) !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:rgb(255,255,255) !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-dawn-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #734!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #d44d5c; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-dawn-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-dawn-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #d44d5c; - --yt-playlist-background-item: #d44d5c; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #d44d5c; - --paper-listbox-background-color: #d44d5c; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #d44d5c; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #d44d5c; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #d44d5c; - --yt-menu-focus-background-color: #d44d5c; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #d44d5c; - --yt-main-app-background: #d44d5c; - --yt-main-app-background-tmp: #d44d5c; - --yt-guide-background: #d44d5c; - --yt-dialog-background: #734; - --yt-searchbox-background: #672c3b; - --yt-channel-header-background: #d44d5c; - --yt-sidebar-background: #d44d5c; - --yt-transcript-background: #d44d5c; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #d44d5c; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #d44d5c; - --yt-blue-suggestive: transparent; - --yt-spec-text-secondary: #f5dbe2; - } - html[it-dawn-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(4); - filter: grayscale(1) brightness(4); - } - -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-header-primary: rgb(34,38,42)!important; - --yt-swatch-primary: rgb(34,38,42)!important; - --yt-swatch-primary-darker: rgb(28,32,36)!important; - --yt-swatch-text: rgb(200,200,200)!important; - --yt-swatch-important-text: rgb(200,200,200)!important; - --yt-swatch-input-text: rgba(200,200,200,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(200,200,200)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; -} - -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #masthead-search-term -{ - border: 1px solid #444!important; - border-right: none!important; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light])[youtube-version=old] body -{ - height: auto; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - background: var(--yt-swatch-primary-darker)!important; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #232323!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #282828; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) -{ - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); - --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: hsl(0, 0%, 14%); - --paper-listbox-background-color: hsl(0, 0%, 14%); - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: hsl(0, 0%, 14%); - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); - --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: hsl(0, 0%, 7%); - --yt-main-app-background: hsl(0, 0%, 7%); - --yt-main-app-background-tmp: hsl(0, 0%, 7%); - --yt-guide-background: hsl(0, 0%, 11%); - --yt-dialog-background: hsl(0, 0%, 14%); - --yt-searchbox-background: hsl(0, 0%, 7%); - --yt-channel-header-background: hsla(0, 0%, 11%, .8); - --yt-sidebar-background: hsla(0, 0%, 11%, .8); - --yt-transcript-background: hsl(0, 0%, 11%); - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); - --yt-blue-suggestive: transparent; -} - -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light])[youtube-version=old] body -{ - height: auto!important; - - background: rgb(19,19,19)!important; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-youtube-version=old][it-default-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-header-primary: rgb(34,38,42)!important; - --yt-swatch-primary: rgb(34,38,42)!important; - --yt-swatch-primary-darker: rgb(28,32,36)!important; - --yt-swatch-text: rgb(200,200,200)!important; - --yt-swatch-important-text: rgb(200,200,200)!important; - --yt-swatch-input-text: rgba(200,200,200,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(200,200,200)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] #masthead-search-term - { - border: 1px solid #444!important; - border-right: none!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] html[youtube-version=old] body - { - height: auto; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] - { - background: var(--yt-swatch-primary-darker)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #232323!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #282828; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) - { - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); - --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: hsl(0, 0%, 14%); - --paper-listbox-background-color: hsl(0, 0%, 14%); - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: hsl(0, 0%, 14%); - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); - --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: hsl(0, 0%, 7%); - --yt-main-app-background: hsl(0, 0%, 7%); - --yt-main-app-background-tmp: hsl(0, 0%, 7%); - --yt-guide-background: hsl(0, 0%, 11%); - --yt-dialog-background: hsl(0, 0%, 14%); - --yt-searchbox-background: hsl(0, 0%, 7%); - --yt-channel-header-background: hsla(0, 0%, 11%, .8); - --yt-sidebar-background: hsla(0, 0%, 11%, .8); - --yt-transcript-background: hsl(0, 0%, 11%); - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); - --yt-blue-suggestive: transparent; - } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark][youtube-version=old] body - { - height: auto!important; - - background: rgb(19,19,19)!important; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-youtube-version=old][it-default-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-header-primary: rgb(34,38,42)!important; - --yt-swatch-primary: rgb(34,38,42)!important; - --yt-swatch-primary-darker: rgb(28,32,36)!important; - --yt-swatch-text: rgb(200,200,200)!important; - --yt-swatch-important-text: rgb(200,200,200)!important; - --yt-swatch-input-text: rgba(200,200,200,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(200,200,200)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] #masthead-search-term - { - border: 1px solid #444!important; - border-right: none!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] html[youtube-version=old] body - { - height: auto; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] - { - background: var(--yt-swatch-primary-darker)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #232323!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #282828; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) - { - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); - --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: hsl(0, 0%, 14%); - --paper-listbox-background-color: hsl(0, 0%, 14%); - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: hsl(0, 0%, 14%); - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); - --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: hsl(0, 0%, 7%); - --yt-main-app-background: hsl(0, 0%, 7%); - --yt-main-app-background-tmp: hsl(0, 0%, 7%); - --yt-guide-background: hsl(0, 0%, 11%); - --yt-dialog-background: hsl(0, 0%, 14%); - --yt-searchbox-background: hsl(0, 0%, 7%); - --yt-channel-header-background: hsla(0, 0%, 11%, .8); - --yt-sidebar-background: hsla(0, 0%, 11%, .8); - --yt-transcript-background: hsl(0, 0%, 11%); - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); - --yt-blue-suggestive: transparent; - } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light][youtube-version=old] body - { - height: auto!important; - - background: rgb(19,19,19)!important; - } -} - -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #faf9f9!important; - --yt-swatch-primary-darker: #faf9f9!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #bee3db; - - --yt-spec-brand-background-solid:#faf9f9 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#faf9f9 !important; - --yt-spec-general-background-b:#faf9f9 !important; - --yt-spec-general-background-c:#faf9f9 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#555 !important; - --yt-spec-text-primary-inverse:#555 !important; - --yt-spec-text-secondary:#555 !important; - --yt-spec-text-disabled:#555 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#555 !important; - --yt-spec-icon-inactive:#555 !important; - --yt-spec-icon-disabled:#555 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#faf9f9 !important; - --yt-spec-filled-button-text:#555 !important; - --yt-spec-call-to-action-inverse:#555 !important; - --yt-spec-brand-icon-active:#555 !important; - --yt-spec-brand-icon-inactive:#555 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#555!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#555 !important; - --yt-spec-wordmark-text:#555 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#555 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #bee3db!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #faf9f9; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: #555; - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #555; - --yt-spec-text-primary: #555; - --ytd-searchbox-border-color: #555; - --ytd-searchbox-legacy-border-color: #555; - --ytd-searchbox-legacy-border-shadow-color: #555; - --ytd-searchbox-legacy-button-color: #555; - --ytd-searchbox-legacy-button-border-color: #555; - --ytd-searchbox-legacy-button-focus-color: #555; - --ytd-searchbox-legacy-button-hover-color: #555; - --ytd-searchbox-legacy-button-hover-border-color: #555; - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: #555; - --ytd-moderation-panel-hover: #555; - --ytd-moderation-panel-comment-text: #555; - --ytd-moderation-panel-comment-metadata-text: #555; - --ytd-moderation-icon-color: #555; - --ytd-moderation-icon-hover-color: #555; - --ytd-comment-text-color: #555; - --ytd-comment-metadata-text-color: #555; - --ytd-watch-card-secondary-text-color: #555; - --ytd-watch-card-album-header-background: #555; - --ytd-backstage-metadata-text-color: #555; - --ytd-backstage-video-link-background-color: #555; - --ytd-backstage-image-alert-color: #555; - --ytd-backstage-cancel-background-color: #555; - --ytd-backstage-cancel-color: #555; - --ytd-backstage-creationbox-background-color: #555; - --ytd-backstage-creationbox-background-color-focus: #555; - --ytd-backstage-creationbox-inactive-color: #555; - --ytd-backstage-creationbox-text-color: #555; - --ytd-backstage-creationbox-input-text-color: #555; - --ytd-backstage-creationbox-disabled-button-color: #555; - --ytd-backstage-creationbox-disabled-button-text-color: #555; - --ytd-backstage-attachment-icon-hover-color: #555; - --ytd-sponsorships-background-color-focus: #555; - --ytd-badge-background: #555; - --ytd-badge-disabled-color: #555; - --ytd-collection-badge-color: #555; - --ytd-owner-badge-color: #555; - --ytd-simple-badge-color: #555; - --ytd-ad-badge-text-color: #555; - --ytd-shopping-product-info: #555; - --ytd-toggle-color: #555; - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: #555; - --ytd-transcript-toolbar-background-color: #555; - --ytd-transcript-toolbar-text: #555; - --ytd-video-publish-date-color: #555; - --ytd-vat-notice-text: #555; - --ytd-offer-background-color: #555; - --ytd-video-game-watch-card-logo-color: #555; - --ytd-watch-split-pane-sidebar-background-color: #555; - --yt-std-body-100: #555; - --yt-std-body-200: #555; - --yt-std-body-300: #555; - --yt-std-surface-200: #555; - --yt-std-surface-300: #555; - --yt-std-surface-400: #555; - --yt-primary-color: #555; - --yt-primary-text-color: #555; - --yt-hovered-text-color: #555; - --yt-secondary-text-color: #555; - --yt-tertiary-text-color: #555; - --yt-disabled-text-color: #555; - --yt-placeholder-text-color: #555; - --yt-border-color: #555; - --yt-commentbox-border-inactive: #555; - --yt-commentbox-border-active: #555; - --yt-alert-background: #555; - --yt-paper-button-ink-color: #555; - --yt-icon-color: #555; - --yt-icon-hover-color: #555; - --yt-icon-active-color: #555; - --yt-icon-disabled-color: #555; - --yt-endpoint-color: #555; - --yt-expand-color: #555; - --yt-metadata-color: #555; - --yt-channel-owner: #555; - --yt-placeholder-text: #555; - --yt-playlist-background-header: #faf9f9; - --yt-playlist-background-item: #faf9f9; - --yt-playlist-title-text: #555; - --yt-playlist-message-text: #555; - --yt-playlist-message-text-hover: #555; - --yt-subscribe-button-text-color: #555; - --yt-brand-color: #555; - --yt-button-text-color: #555; - --yt-button-payment-text-color: #555; - --yt-copyright-text: #555; - --yt-guide-entry-hover-background-color: #555; - --yt-thumbnail-placeholder-color: #555; - --yt-primary-disabled-button-text-color: #555; - --yt-featured-channel-title-text-color: #555; - --yt-formatted-string-deemphasize-color: #555; - --paper-menu-background-color: #faf9f9; - --paper-listbox-background-color: #faf9f9; - --paper-menu-color: #555; - --paper-listbox-color: #555; - --paper-dialog-background-color: #faf9f9; - --paper-toggle-button-unchecked-bar-color: #555; - --yt-simple-menu-header-background: #faf9f9; - --yt-item-section-header-color: #555; - --yt-menu-hover-backgound-color: #faf9f9; - --yt-menu-focus-background-color: #faf9f9; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: #555; - --yt-material-searchbox-active: #555; - --yt-material-searchbox-inactive-shadow: #555; - --yt-material-searchbox-active-shadow: #555; - --yt-material-searchbox-inset: #555; - --yt-material-searchbox-text-color: #555; - --yt-app-background: #faf9f9; - --yt-main-app-background: #faf9f9; - --yt-main-app-background-tmp: #faf9f9; - --yt-guide-background: #faf9f9; - --yt-dialog-background: #bee3db; - --yt-searchbox-background: #faf9f9; - --yt-channel-header-background: #faf9f9; - --yt-sidebar-background: #faf9f9; - --yt-transcript-background: #faf9f9; - --yt-chat-bubble-other-border-color: #555; - --yt-chat-bubble-other-background-color: #faf9f9; - --yt-chat-bubble-self-border-color: #555; - --yt-chat-bubble-self-background-color: #faf9f9; - --yt-blue-suggestive: transparent; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-desert-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #faf9f9!important; - --yt-swatch-primary-darker: #faf9f9!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #bee3db; - - --yt-spec-brand-background-solid:#faf9f9 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#faf9f9 !important; - --yt-spec-general-background-b:#faf9f9 !important; - --yt-spec-general-background-c:#faf9f9 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#555 !important; - --yt-spec-text-primary-inverse:#555 !important; - --yt-spec-text-secondary:#555 !important; - --yt-spec-text-disabled:#555 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#555 !important; - --yt-spec-icon-inactive:#555 !important; - --yt-spec-icon-disabled:#555 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#faf9f9 !important; - --yt-spec-filled-button-text:#555 !important; - --yt-spec-call-to-action-inverse:#555 !important; - --yt-spec-brand-icon-active:#555 !important; - --yt-spec-brand-icon-inactive:#555 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#555!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#555 !important; - --yt-spec-wordmark-text:#555 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#555 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-desert-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #bee3db!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #faf9f9; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: #555; - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-desert-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-desert-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #555; - --yt-spec-text-primary: #555; - --ytd-searchbox-border-color: #555; - --ytd-searchbox-legacy-border-color: #555; - --ytd-searchbox-legacy-border-shadow-color: #555; - --ytd-searchbox-legacy-button-color: #555; - --ytd-searchbox-legacy-button-border-color: #555; - --ytd-searchbox-legacy-button-focus-color: #555; - --ytd-searchbox-legacy-button-hover-color: #555; - --ytd-searchbox-legacy-button-hover-border-color: #555; - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: #555; - --ytd-moderation-panel-hover: #555; - --ytd-moderation-panel-comment-text: #555; - --ytd-moderation-panel-comment-metadata-text: #555; - --ytd-moderation-icon-color: #555; - --ytd-moderation-icon-hover-color: #555; - --ytd-comment-text-color: #555; - --ytd-comment-metadata-text-color: #555; - --ytd-watch-card-secondary-text-color: #555; - --ytd-watch-card-album-header-background: #555; - --ytd-backstage-metadata-text-color: #555; - --ytd-backstage-video-link-background-color: #555; - --ytd-backstage-image-alert-color: #555; - --ytd-backstage-cancel-background-color: #555; - --ytd-backstage-cancel-color: #555; - --ytd-backstage-creationbox-background-color: #555; - --ytd-backstage-creationbox-background-color-focus: #555; - --ytd-backstage-creationbox-inactive-color: #555; - --ytd-backstage-creationbox-text-color: #555; - --ytd-backstage-creationbox-input-text-color: #555; - --ytd-backstage-creationbox-disabled-button-color: #555; - --ytd-backstage-creationbox-disabled-button-text-color: #555; - --ytd-backstage-attachment-icon-hover-color: #555; - --ytd-sponsorships-background-color-focus: #555; - --ytd-badge-background: #555; - --ytd-badge-disabled-color: #555; - --ytd-collection-badge-color: #555; - --ytd-owner-badge-color: #555; - --ytd-simple-badge-color: #555; - --ytd-ad-badge-text-color: #555; - --ytd-shopping-product-info: #555; - --ytd-toggle-color: #555; - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: #555; - --ytd-transcript-toolbar-background-color: #555; - --ytd-transcript-toolbar-text: #555; - --ytd-video-publish-date-color: #555; - --ytd-vat-notice-text: #555; - --ytd-offer-background-color: #555; - --ytd-video-game-watch-card-logo-color: #555; - --ytd-watch-split-pane-sidebar-background-color: #555; - --yt-std-body-100: #555; - --yt-std-body-200: #555; - --yt-std-body-300: #555; - --yt-std-surface-200: #555; - --yt-std-surface-300: #555; - --yt-std-surface-400: #555; - --yt-primary-color: #555; - --yt-primary-text-color: #555; - --yt-hovered-text-color: #555; - --yt-secondary-text-color: #555; - --yt-tertiary-text-color: #555; - --yt-disabled-text-color: #555; - --yt-placeholder-text-color: #555; - --yt-border-color: #555; - --yt-commentbox-border-inactive: #555; - --yt-commentbox-border-active: #555; - --yt-alert-background: #555; - --yt-paper-button-ink-color: #555; - --yt-icon-color: #555; - --yt-icon-hover-color: #555; - --yt-icon-active-color: #555; - --yt-icon-disabled-color: #555; - --yt-endpoint-color: #555; - --yt-expand-color: #555; - --yt-metadata-color: #555; - --yt-channel-owner: #555; - --yt-placeholder-text: #555; - --yt-playlist-background-header: #faf9f9; - --yt-playlist-background-item: #faf9f9; - --yt-playlist-title-text: #555; - --yt-playlist-message-text: #555; - --yt-playlist-message-text-hover: #555; - --yt-subscribe-button-text-color: #555; - --yt-brand-color: #555; - --yt-button-text-color: #555; - --yt-button-payment-text-color: #555; - --yt-copyright-text: #555; - --yt-guide-entry-hover-background-color: #555; - --yt-thumbnail-placeholder-color: #555; - --yt-primary-disabled-button-text-color: #555; - --yt-featured-channel-title-text-color: #555; - --yt-formatted-string-deemphasize-color: #555; - --paper-menu-background-color: #faf9f9; - --paper-listbox-background-color: #faf9f9; - --paper-menu-color: #555; - --paper-listbox-color: #555; - --paper-dialog-background-color: #faf9f9; - --paper-toggle-button-unchecked-bar-color: #555; - --yt-simple-menu-header-background: #faf9f9; - --yt-item-section-header-color: #555; - --yt-menu-hover-backgound-color: #faf9f9; - --yt-menu-focus-background-color: #faf9f9; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: #555; - --yt-material-searchbox-active: #555; - --yt-material-searchbox-inactive-shadow: #555; - --yt-material-searchbox-active-shadow: #555; - --yt-material-searchbox-inset: #555; - --yt-material-searchbox-text-color: #555; - --yt-app-background: #faf9f9; - --yt-main-app-background: #faf9f9; - --yt-main-app-background-tmp: #faf9f9; - --yt-guide-background: #faf9f9; - --yt-dialog-background: #bee3db; - --yt-searchbox-background: #faf9f9; - --yt-channel-header-background: #faf9f9; - --yt-sidebar-background: #faf9f9; - --yt-transcript-background: #faf9f9; - --yt-chat-bubble-other-border-color: #555; - --yt-chat-bubble-other-background-color: #faf9f9; - --yt-chat-bubble-self-border-color: #555; - --yt-chat-bubble-self-background-color: #faf9f9; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-desert-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #faf9f9!important; - --yt-swatch-primary-darker: #faf9f9!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #bee3db; - - --yt-spec-brand-background-solid:#faf9f9 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#faf9f9 !important; - --yt-spec-general-background-b:#faf9f9 !important; - --yt-spec-general-background-c:#faf9f9 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#555 !important; - --yt-spec-text-primary-inverse:#555 !important; - --yt-spec-text-secondary:#555 !important; - --yt-spec-text-disabled:#555 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#555 !important; - --yt-spec-icon-inactive:#555 !important; - --yt-spec-icon-disabled:#555 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#faf9f9 !important; - --yt-spec-filled-button-text:#555 !important; - --yt-spec-call-to-action-inverse:#555 !important; - --yt-spec-brand-icon-active:#555 !important; - --yt-spec-brand-icon-inactive:#555 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#555!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#555 !important; - --yt-spec-wordmark-text:#555 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#555 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-desert-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #bee3db!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #faf9f9; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: #555; - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-desert-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-desert-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #555; - --yt-spec-text-primary: #555; - --ytd-searchbox-border-color: #555; - --ytd-searchbox-legacy-border-color: #555; - --ytd-searchbox-legacy-border-shadow-color: #555; - --ytd-searchbox-legacy-button-color: #555; - --ytd-searchbox-legacy-button-border-color: #555; - --ytd-searchbox-legacy-button-focus-color: #555; - --ytd-searchbox-legacy-button-hover-color: #555; - --ytd-searchbox-legacy-button-hover-border-color: #555; - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: #555; - --ytd-moderation-panel-hover: #555; - --ytd-moderation-panel-comment-text: #555; - --ytd-moderation-panel-comment-metadata-text: #555; - --ytd-moderation-icon-color: #555; - --ytd-moderation-icon-hover-color: #555; - --ytd-comment-text-color: #555; - --ytd-comment-metadata-text-color: #555; - --ytd-watch-card-secondary-text-color: #555; - --ytd-watch-card-album-header-background: #555; - --ytd-backstage-metadata-text-color: #555; - --ytd-backstage-video-link-background-color: #555; - --ytd-backstage-image-alert-color: #555; - --ytd-backstage-cancel-background-color: #555; - --ytd-backstage-cancel-color: #555; - --ytd-backstage-creationbox-background-color: #555; - --ytd-backstage-creationbox-background-color-focus: #555; - --ytd-backstage-creationbox-inactive-color: #555; - --ytd-backstage-creationbox-text-color: #555; - --ytd-backstage-creationbox-input-text-color: #555; - --ytd-backstage-creationbox-disabled-button-color: #555; - --ytd-backstage-creationbox-disabled-button-text-color: #555; - --ytd-backstage-attachment-icon-hover-color: #555; - --ytd-sponsorships-background-color-focus: #555; - --ytd-badge-background: #555; - --ytd-badge-disabled-color: #555; - --ytd-collection-badge-color: #555; - --ytd-owner-badge-color: #555; - --ytd-simple-badge-color: #555; - --ytd-ad-badge-text-color: #555; - --ytd-shopping-product-info: #555; - --ytd-toggle-color: #555; - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: #555; - --ytd-transcript-toolbar-background-color: #555; - --ytd-transcript-toolbar-text: #555; - --ytd-video-publish-date-color: #555; - --ytd-vat-notice-text: #555; - --ytd-offer-background-color: #555; - --ytd-video-game-watch-card-logo-color: #555; - --ytd-watch-split-pane-sidebar-background-color: #555; - --yt-std-body-100: #555; - --yt-std-body-200: #555; - --yt-std-body-300: #555; - --yt-std-surface-200: #555; - --yt-std-surface-300: #555; - --yt-std-surface-400: #555; - --yt-primary-color: #555; - --yt-primary-text-color: #555; - --yt-hovered-text-color: #555; - --yt-secondary-text-color: #555; - --yt-tertiary-text-color: #555; - --yt-disabled-text-color: #555; - --yt-placeholder-text-color: #555; - --yt-border-color: #555; - --yt-commentbox-border-inactive: #555; - --yt-commentbox-border-active: #555; - --yt-alert-background: #555; - --yt-paper-button-ink-color: #555; - --yt-icon-color: #555; - --yt-icon-hover-color: #555; - --yt-icon-active-color: #555; - --yt-icon-disabled-color: #555; - --yt-endpoint-color: #555; - --yt-expand-color: #555; - --yt-metadata-color: #555; - --yt-channel-owner: #555; - --yt-placeholder-text: #555; - --yt-playlist-background-header: #faf9f9; - --yt-playlist-background-item: #faf9f9; - --yt-playlist-title-text: #555; - --yt-playlist-message-text: #555; - --yt-playlist-message-text-hover: #555; - --yt-subscribe-button-text-color: #555; - --yt-brand-color: #555; - --yt-button-text-color: #555; - --yt-button-payment-text-color: #555; - --yt-copyright-text: #555; - --yt-guide-entry-hover-background-color: #555; - --yt-thumbnail-placeholder-color: #555; - --yt-primary-disabled-button-text-color: #555; - --yt-featured-channel-title-text-color: #555; - --yt-formatted-string-deemphasize-color: #555; - --paper-menu-background-color: #faf9f9; - --paper-listbox-background-color: #faf9f9; - --paper-menu-color: #555; - --paper-listbox-color: #555; - --paper-dialog-background-color: #faf9f9; - --paper-toggle-button-unchecked-bar-color: #555; - --yt-simple-menu-header-background: #faf9f9; - --yt-item-section-header-color: #555; - --yt-menu-hover-backgound-color: #faf9f9; - --yt-menu-focus-background-color: #faf9f9; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: #555; - --yt-material-searchbox-active: #555; - --yt-material-searchbox-inactive-shadow: #555; - --yt-material-searchbox-active-shadow: #555; - --yt-material-searchbox-inset: #555; - --yt-material-searchbox-text-color: #555; - --yt-app-background: #faf9f9; - --yt-main-app-background: #faf9f9; - --yt-main-app-background-tmp: #faf9f9; - --yt-guide-background: #faf9f9; - --yt-dialog-background: #bee3db; - --yt-searchbox-background: #faf9f9; - --yt-channel-header-background: #faf9f9; - --yt-sidebar-background: #faf9f9; - --yt-transcript-background: #faf9f9; - --yt-chat-bubble-other-border-color: #555; - --yt-chat-bubble-other-background-color: #faf9f9; - --yt-chat-bubble-self-border-color: #555; - --yt-chat-bubble-self-background-color: #faf9f9; - --yt-blue-suggestive: transparent; - } -} - -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #003459!important; - --yt-swatch-primary-darker: #003459!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #007ea7; - - --yt-spec-brand-background-solid:#003459 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#003459 !important; - --yt-spec-general-background-b:#003459 !important; - --yt-spec-general-background-c:#003459 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#003459 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo -{ - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); -} -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #007ea7!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #003459; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #003459; - --yt-playlist-background-item: #003459; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #003459; - --paper-listbox-background-color: #003459; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #003459; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #003459; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #003459; - --yt-menu-focus-background-color: #003459; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #003459; - --yt-main-app-background: #003459; - --yt-main-app-background-tmp: #003459; - --yt-guide-background: #003459; - --yt-dialog-background: #007ea7; - --yt-searchbox-background: #003459!important; - --yt-channel-header-background: #003459; - --yt-sidebar-background: #003459; - --yt-transcript-background: #003459; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #003459; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #003459; - --yt-blue-suggestive: transparent; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-night-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #003459!important; - --yt-swatch-primary-darker: #003459!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #007ea7; - - --yt-spec-brand-background-solid:#003459 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#003459 !important; - --yt-spec-general-background-b:#003459 !important; - --yt-spec-general-background-c:#003459 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#003459 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - html[it-night-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-night-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #007ea7!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #003459; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-night-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-night-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #003459; - --yt-playlist-background-item: #003459; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #003459; - --paper-listbox-background-color: #003459; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #003459; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #003459; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #003459; - --yt-menu-focus-background-color: #003459; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #003459; - --yt-main-app-background: #003459; - --yt-main-app-background-tmp: #003459; - --yt-guide-background: #003459; - --yt-dialog-background: #007ea7; - --yt-searchbox-background: #003459!important; - --yt-channel-header-background: #003459; - --yt-sidebar-background: #003459; - --yt-transcript-background: #003459; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #003459; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #003459; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-night-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #003459!important; - --yt-swatch-primary-darker: #003459!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #007ea7; - - --yt-spec-brand-background-solid:#003459 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#003459 !important; - --yt-spec-general-background-b:#003459 !important; - --yt-spec-general-background-c:#003459 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#003459 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - html[it-night-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-night-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #007ea7!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #003459; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-night-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-night-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #003459; - --yt-playlist-background-item: #003459; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #003459; - --paper-listbox-background-color: #003459; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #003459; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #003459; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #003459; - --yt-menu-focus-background-color: #003459; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #003459; - --yt-main-app-background: #003459; - --yt-main-app-background-tmp: #003459; - --yt-guide-background: #003459; - --yt-dialog-background: #007ea7; - --yt-searchbox-background: #003459!important; - --yt-channel-header-background: #003459; - --yt-sidebar-background: #003459; - --yt-transcript-background: #003459; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #003459; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #003459; - --yt-blue-suggestive: transparent; - } -} - -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #c7efcf!important; - --yt-swatch-primary-darker: #c7efcf!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #d6d1b1; - - --yt-spec-brand-background-solid:#c7efcf !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#c7efcf !important; - --yt-spec-general-background-b:#c7efcf !important; - --yt-spec-general-background-c:#c7efcf !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#666 !important; - --yt-spec-text-primary-inverse:#666 !important; - --yt-spec-text-secondary:#666 !important; - --yt-spec-text-disabled:#666 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#666 !important; - --yt-spec-icon-inactive:#666 !important; - --yt-spec-icon-disabled:#666 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#c7efcf !important; - --yt-spec-filled-button-text:#666 !important; - --yt-spec-call-to-action-inverse:#666 !important; - --yt-spec-brand-icon-active:#666 !important; - --yt-spec-brand-icon-inactive:#666 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#666!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#666 !important; - --yt-spec-wordmark-text:#666 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#666 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #d6d1b1!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #c7efcf; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #666; - --yt-spec-text-primary: #666; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #c7efcf; - --yt-playlist-background-item: #c7efcf; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #c7efcf; - --paper-listbox-background-color: #c7efcf; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #c7efcf; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #c7efcf; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #c7efcf; - --yt-menu-focus-background-color: #c7efcf; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #c7efcf; - --yt-main-app-background: #c7efcf; - --yt-main-app-background-tmp: #c7efcf; - --yt-guide-background: #c7efcf; - --yt-dialog-background: #d6d1b1; - --yt-searchbox-background: #c7efcf; - --yt-channel-header-background: #c7efcf; - --yt-sidebar-background: #c7efcf; - --yt-transcript-background: #c7efcf; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #c7efcf; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #c7efcf; - --yt-blue-suggestive: transparent; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-plain-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #c7efcf!important; - --yt-swatch-primary-darker: #c7efcf!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #d6d1b1; - - --yt-spec-brand-background-solid:#c7efcf !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#c7efcf !important; - --yt-spec-general-background-b:#c7efcf !important; - --yt-spec-general-background-c:#c7efcf !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#666 !important; - --yt-spec-text-primary-inverse:#666 !important; - --yt-spec-text-secondary:#666 !important; - --yt-spec-text-disabled:#666 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#666 !important; - --yt-spec-icon-inactive:#666 !important; - --yt-spec-icon-disabled:#666 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#c7efcf !important; - --yt-spec-filled-button-text:#666 !important; - --yt-spec-call-to-action-inverse:#666 !important; - --yt-spec-brand-icon-active:#666 !important; - --yt-spec-brand-icon-inactive:#666 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#666!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#666 !important; - --yt-spec-wordmark-text:#666 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#666 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-plain-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #d6d1b1!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #c7efcf; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-plain-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-plain-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #666; - --yt-spec-text-primary: #666; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #c7efcf; - --yt-playlist-background-item: #c7efcf; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #c7efcf; - --paper-listbox-background-color: #c7efcf; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #c7efcf; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #c7efcf; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #c7efcf; - --yt-menu-focus-background-color: #c7efcf; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #c7efcf; - --yt-main-app-background: #c7efcf; - --yt-main-app-background-tmp: #c7efcf; - --yt-guide-background: #c7efcf; - --yt-dialog-background: #d6d1b1; - --yt-searchbox-background: #c7efcf; - --yt-channel-header-background: #c7efcf; - --yt-sidebar-background: #c7efcf; - --yt-transcript-background: #c7efcf; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #c7efcf; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #c7efcf; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-plain-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #c7efcf!important; - --yt-swatch-primary-darker: #c7efcf!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #d6d1b1; - - --yt-spec-brand-background-solid:#c7efcf !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#c7efcf !important; - --yt-spec-general-background-b:#c7efcf !important; - --yt-spec-general-background-c:#c7efcf !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#666 !important; - --yt-spec-text-primary-inverse:#666 !important; - --yt-spec-text-secondary:#666 !important; - --yt-spec-text-disabled:#666 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#666 !important; - --yt-spec-icon-inactive:#666 !important; - --yt-spec-icon-disabled:#666 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#c7efcf !important; - --yt-spec-filled-button-text:#666 !important; - --yt-spec-call-to-action-inverse:#666 !important; - --yt-spec-brand-icon-active:#666 !important; - --yt-spec-brand-icon-inactive:#666 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#666!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#666 !important; - --yt-spec-wordmark-text:#666 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#666 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-plain-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #d6d1b1!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #c7efcf; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-plain-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-plain-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #666; - --yt-spec-text-primary: #666; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #c7efcf; - --yt-playlist-background-item: #c7efcf; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #c7efcf; - --paper-listbox-background-color: #c7efcf; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #c7efcf; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #c7efcf; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #c7efcf; - --yt-menu-focus-background-color: #c7efcf; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #c7efcf; - --yt-main-app-background: #c7efcf; - --yt-main-app-background-tmp: #c7efcf; - --yt-guide-background: #c7efcf; - --yt-dialog-background: #d6d1b1; - --yt-searchbox-background: #c7efcf; - --yt-channel-header-background: #c7efcf; - --yt-sidebar-background: #c7efcf; - --yt-transcript-background: #c7efcf; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #c7efcf; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #c7efcf; - --yt-blue-suggestive: transparent; - } -} - -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #2f3364!important; - --yt-swatch-primary-darker: #2f3364!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #f56264; - - --yt-spec-brand-background-solid:#2f3364 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#2f3364 !important; - --yt-spec-general-background-b:#2f3364 !important; - --yt-spec-general-background-c:#2f3364 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#2f3364 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { - background: #f56264!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #2f3364; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #2f3364; - --yt-playlist-background-item: #2f3364; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #2f3364; - --paper-listbox-background-color: #2f3364; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #2f3364; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #2f3364; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #2f3364; - --yt-menu-focus-background-color: #2f3364; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #2f3364; - --yt-main-app-background: #2f3364; - --yt-main-app-background-tmp: #2f3364; - --yt-guide-background: #2f3364; - --yt-dialog-background: #D62828; - --yt-searchbox-background: #fa7965!important; - --yt-channel-header-background: #2f3364; - --yt-sidebar-background: #2f3364; - --yt-transcript-background: #2f3364; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #2f3364; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #2f3364; - --yt-blue-suggestive: transparent; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-sunset-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #2f3364!important; - --yt-swatch-primary-darker: #2f3364!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #f56264; - - --yt-spec-brand-background-solid:#2f3364 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#2f3364 !important; - --yt-spec-general-background-b:#2f3364 !important; - --yt-spec-general-background-c:#2f3364 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#2f3364 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-sunset-theme=true][it-schedule=system_peference_dark] ytd-masthead { - background: #f56264!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #2f3364; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-sunset-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-sunset-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #2f3364; - --yt-playlist-background-item: #2f3364; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #2f3364; - --paper-listbox-background-color: #2f3364; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #2f3364; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #2f3364; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #2f3364; - --yt-menu-focus-background-color: #2f3364; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #2f3364; - --yt-main-app-background: #2f3364; - --yt-main-app-background-tmp: #2f3364; - --yt-guide-background: #2f3364; - --yt-dialog-background: #D62828; - --yt-searchbox-background: #fa7965!important; - --yt-channel-header-background: #2f3364; - --yt-sidebar-background: #2f3364; - --yt-transcript-background: #2f3364; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #2f3364; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #2f3364; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-sunset-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #2f3364!important; - --yt-swatch-primary-darker: #2f3364!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #f56264; - - --yt-spec-brand-background-solid:#2f3364 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#2f3364 !important; - --yt-spec-general-background-b:#2f3364 !important; - --yt-spec-general-background-c:#2f3364 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#2f3364 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-sunset-theme=true][it-schedule=system_peference_light] ytd-masthead { - background: #f56264!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #2f3364; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-sunset-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-sunset-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #2f3364; - --yt-playlist-background-item: #2f3364; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #2f3364; - --paper-listbox-background-color: #2f3364; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #2f3364; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #2f3364; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #2f3364; - --yt-menu-focus-background-color: #2f3364; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #2f3364; - --yt-main-app-background: #2f3364; - --yt-main-app-background-tmp: #2f3364; - --yt-guide-background: #2f3364; - --yt-dialog-background: #D62828; - --yt-searchbox-background: #fa7965!important; - --yt-channel-header-background: #2f3364; - --yt-sidebar-background: #2f3364; - --yt-transcript-background: #2f3364; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #2f3364; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #2f3364; - --yt-blue-suggestive: transparent; - } -} - - -/*------------------------------------------------------------------------------ -4.0 PLAYER -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -4.1 CROP CHAPTER TITLES -------------------------------------------------------------------------------*/ - -html[it-player-crop-chapter-titles=false] .ytp-chapter-title -{ - width: auto !important; -} - - -/*------------------------------------------------------------------------------ -4.2 ADS -------------------------------------------------------------------------------*/ - -html[it-player-ads=subscribed_channels] #related #player-ads, -html[it-player-ads=block_all] #related #player-ads, -html[it-player-ads=subscribed_channels] #masthead-ad, -html[it-player-ads=block_all] #masthead-ad -{ - display: none !important; -} - -/*------------------------------------------------------------------------------ -4.3 MINIPLAYER -------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -# POSITION & SIZE ------------------------------------------------------------------------------*/ - -.it-mini-player -{ - position: fixed !important; - z-index: 2147483648 !important; - left: 0!important; - top: 0!important; - - box-shadow: rgba(0, 0, 0, .4) 0 2px 8px !important; - - will-change: transform, width, height !important; - - background: #000 !important; -} - -html[it-page-type=video][it-header-position=hover_on_video_page][it-player-size=full_window] .html5-video-player.it-mini-player, -html[it-page-type=video][it-header-position=hover][it-player-size=full_window] .html5-video-player.it-mini-player -{ - margin-top: 0!important; -} - -.it-mini-player .html5-video-container, -.it-mini-player video -{ - left: 0 !important; - top: 0 !important; - width: 100% !important; - height: 100% !important; -} - -.it-mini-player .ytp-chrome-bottom -{ - width: calc(100% - 24px) !important; -} - -.it-mini-player .ytp-chapters-container -{ - display: flex; -} - -.it-mini-player .ytp-chapter-hover-container -{ - flex-grow: 1; -} - -html[it-mini-player=true] .ytp-contextmenu -{ - z-index: 2147483649 !important; -} - -.it-mini-player .ytp-miniplayer-button, -.it-mini-player .ytp-size-button -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -# DRAGGING ------------------------------------------------------------------------------*/ - -.improvedtube-mini-player.dragging -{ - pointer-events: none !important; -} - -.improvedtube-mini-player.dragging *:not(.html5-video-container):not(video) -{ - visibility: hidden !important; -} - -html[data-cursor='w-resize'], -html[data-cursor='w-resize'] * -{ - cursor: w-resize !important; -} - -html[data-cursor='e-resize'], -html[data-cursor='e-resize'] * -{ - cursor: e-resize !important; -} - -html[it-mini-player-cursor='n-resize']::after, -html[it-mini-player-cursor='e-resize']::after, -html[it-mini-player-cursor='s-resize']::after, -html[it-mini-player-cursor='w-resize']::after, -html[it-mini-player-cursor='ne-resize']::after, -html[it-mini-player-cursor='se-resize']::after, -html[it-mini-player-cursor='sw-resize']::after, -html[it-mini-player-cursor='nw-resize']::after -{ - content: ''; - position: fixed; - left: 0; - top: 0; - width: 100vw; - height: 100vh; - z-index: 2147483650; -} - -html[it-mini-player-cursor='n-resize']::after -{ - cursor: n-resize; -} - -html[it-mini-player-cursor='e-resize']::after -{ - cursor: e-resize; -} - -html[it-mini-player-cursor='s-resize']::after -{ - cursor: s-resize; -} - -html[it-mini-player-cursor='w-resize']::after -{ - cursor: w-resize; -} - -html[it-mini-player-cursor='ne-resize']::after -{ - cursor: ne-resize; -} - -html[it-mini-player-cursor='se-resize']::after -{ - cursor: se-resize; -} - -html[it-mini-player-cursor='sw-resize']::after -{ - cursor: sw-resize; -} - -html[it-mini-player-cursor='nw-resize']::after -{ - cursor: nw-resize; -} - - -/*------------------------------------------------------------------------------ -4.4 SCREENSHOT -------------------------------------------------------------------------------*/ - -#it-screenshot-button -{ - position: relative !important; -} - -#it-screenshot-button svg -{ - position: absolute !important; - top: 7px !important; - left: 7px !important; - - width: 22px !important; - - fill: #fff !important; -} - -.html5-video-player.ytp-big-mode #it-screenshot-button svg -{ - top: 10px !important; - left: 10px !important; - - width: 34px !important; -} - - -/*------------------------------------------------------------------------------ -4.5 REPEAT -------------------------------------------------------------------------------*/ - -#it-repeat-button -{ - position: relative !important; -} - -#it-repeat-button svg -{ - position: absolute !important; - top: 6px !important; - left: 6px !important; - - width: 24px !important; - - fill: #fff !important; -} - -.html5-video-player.ytp-big-mode #it-repeat-button svg -{ - top: 10px !important; - left: 10px !important; - - width: 34px !important; -} - - -/*------------------------------------------------------------------------------ -4.6 ROTATE -------------------------------------------------------------------------------*/ - -#it-rotate-button -{ - position: relative !important; -} - -#it-rotate-button svg -{ - position: absolute !important; - top: 7px !important; - left: 7px !important; - - width: 22px !important; - - fill: #fff !important; -} - -.html5-video-player.ytp-big-mode #it-rotate-button svg -{ - top: 10px !important; - left: 10px !important; - - width: 34px !important; -} - - -/*------------------------------------------------------------------------------ -4.7 POPUP PLAYER -------------------------------------------------------------------------------*/ - -#it-popup-player-button -{ - position: relative !important; -} - -#it-popup-player-button svg -{ - position: absolute !important; - top: 7px !important; - left: 7px !important; - - width: 22px !important; - - fill: #fff !important; -} - -.html5-video-player.ytp-big-mode #it-popup-player-button svg -{ - top: 10px !important; - left: 10px !important; - - width: 34px !important; -} - - -/*------------------------------------------------------------------------------ -5.0 PLAYLIST -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -5.1 REVERSE -------------------------------------------------------------------------------*/ - -#it-reverse-playlist -{ - width: 40px; - height: 40px; -} - -#it-reverse-playlist svg -{ - fill: var(--yt-spec-icon-inactive); -} - -#it-reverse-playlist.active svg -{ - fill: var(--yt-spec-icon-active-other); -} - - -/*------------------------------------------------------------------------------ -6.0 CHANNEL -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -6.1 FEATURED CONTENT --------------------------------------------------------------------------------- -TODO: FIX -------------------------------------------------------------------------------*/ - -html[it-channel-hide-featured-content=true] #secondary.ytd-two-column-browse-results-renderer -{ - display: none; -} - - -/*------------------------------------------------------------------------------ -7.0 SHORTCUTS -------------------------------------------------------------------------------*/ - -#it-status -{ - font-size: 5rem; - - position: absolute; - top: 2rem; - right: 3rem; - - color: #0ff; - text-shadow: 1px 1px 2px #000; -} \ No newline at end of file diff --git a/3.120-pre/index.html b/3.120-pre/index.html deleted file mode 100644 index 1066531be..000000000 --- a/3.120-pre/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - ImprovedTube - - - - - - - - \ No newline at end of file diff --git a/3.120-pre/manifest.json b/3.120-pre/manifest.json deleted file mode 100644 index ea033c4bd..000000000 --- a/3.120-pre/manifest.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "manifest_version": 2, - "name": "*Improve YouTube!☕🧩 YouTube-&Video-Tools 🎞️🧪", - "short_name": "ImprovedTube", - "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", - "version": "3.120", - "version_name": "3.120-testing", - "default_locale": "en", - "icons": { - "128": "assets/icons/128.png", - "16": "assets/icons/16.png", - "32": "assets/icons/32.png", - "48": "assets/icons/48.png" - }, - "background": { - "persistent": false, - "scripts": [ - "background.js" - ] - }, - "browser_action": { - "default_icon": { - "128": "assets/icons/128g.png", - "16": "assets/icons/16g.png", - "32": "assets/icons/32g.png", - "48": "assets/icons/48g.png" - }, - "default_popup": "index.html" - }, - "options_page": "options.html", - "content_scripts": [{ - "all_frames": true, - "css": [ - "content-styles.css" - ], - "exclude_matches": [ - "https://www.youtube.com/improvedtube", - "https://www.youtube.com/tv*", - "https://www.youtube.com/audiolibrary/*", - "http://studio.youtube.com/*" - ], - "js": [ - "youtube-scripts.js", - "content-scripts.js" - ], - "matches": [ - "https://www.youtube.com/*" - ], - "run_at": "document_start" - }, { - "all_frames": true, - "css": [ - "satus.css", - "popup.css" - ], - "js": [ - "satus.js", - "popup.js" - ], - "matches": [ - "https://www.youtube.com/improvedtube" - ], - "run_at": "document_end" - }, { - "all_frames": true, - "js": [ - "page.js" - ], - "matches": [ - "https://www.youtube.com/improvedtube" - ], - "run_at": "document_start" - }], - "content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'", - "offline_enabled": true, - "permissions": [ - "https://www.youtube.com/", - "contextMenus", - "storage" - ], - "optional_permissions": [ - "downloads", - "https://*.youtube.com/*" - ], - "update_url": "https://clients2.google.com/service/update2/crx" -} \ No newline at end of file diff --git a/3.120-pre/options.html b/3.120-pre/options.html deleted file mode 100644 index 61d11272a..000000000 --- a/3.120-pre/options.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - ImprovedTube - - - - - - - - - \ No newline at end of file diff --git a/3.120-pre/page.js b/3.120-pre/page.js deleted file mode 100644 index 67668705f..000000000 --- a/3.120-pre/page.js +++ /dev/null @@ -1,13 +0,0 @@ -document.addEventListener('DOMContentLoaded', function() { - document.documentElement.innerHTML = [ - '', - '', - '', - '', - '', - 'ImprovedTube', - '', - '', - '' - ].join(''); -}); \ No newline at end of file diff --git a/3.120-pre/popup.css b/3.120-pre/popup.css deleted file mode 100644 index bedb800d3..000000000 --- a/3.120-pre/popup.css +++ /dev/null @@ -1,1995 +0,0 @@ - -/*--------------------------------------------------------------- ->>> THEMES ------------------------------------------------------------------ -1.0 Dark -2.0 Night -3.0 Dawn -4.0 Sunset -5.0 Desert -6.0 Plain -7.0 Black ----------------------------------------------------------------*/ - -html { - --satus-theme-primary: #ff4158; -} - - -/*--------------------------------------------------------------- -1.0 DARK ----------------------------------------------------------------*/ - -html[theme="dark"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #2c2b2c; - --satus-theme-dialog-text: #b5b5b5; - - --satus-theme-header: #343334; - --satus-theme-header-text: #b5b5b5; - - --satus-theme-main: #2c2b2c; - --satus-theme-main-text: #b5b5b5; - - --satus-theme-section: #343334; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - -/*--------------------------------------------------------------- -2.0 NIGHT ----------------------------------------------------------------*/ - -html[theme="night"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #61a7f5; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #61a7f5; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #3a48b4; - --satus-theme-main-text: #fafafa; - - --satus-theme-section: #61a7f5; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -3.0 DAWN ----------------------------------------------------------------*/ - -html[theme="dawn"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #ffba99; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #ffba99; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #ed74a9; - --satus-theme-main-text: #eee; - - --satus-theme-section: #ffba99; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -4.0 SUNSET ----------------------------------------------------------------*/ - -html[theme="sunset"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #a96165; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #a96165; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #2f3364; - --satus-theme-main-text: #eee; - - --satus-theme-section: #a96165; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -5.0 DESERT ----------------------------------------------------------------*/ - -html[theme="desert"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #9dc2ee; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #9dc2ee; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #ffe498; - --satus-theme-main-text: #eee; - - --satus-theme-section: #9dc2ee; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -6.0 PLAIN ----------------------------------------------------------------*/ - -html[theme="plain"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #abceb8; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #abceb8; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #dea975; - --satus-theme-main-text: #eee; - - --satus-theme-section: #abceb8; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -7.0 BLACK ----------------------------------------------------------------*/ - -html[theme="black"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #222; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #222; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #111; - --satus-theme-main-text: #eee; - - --satus-theme-section: #222; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - -/*-------------------------------------------------------------- ->>> TABLE OF CONTENTS: ----------------------------------------------------------------- -# Fonts -# Basic ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# FONTS ---------------------------------------------------------------*/ - -@font-face -{ - font-family: 'Open Sans'; - font-weight: 400; - - src: url('assets/fonts/OpenSans-Regular.ttf'); -} - -@font-face -{ - font-family: 'Open Sans'; - font-weight: 600; - - src: url('assets/fonts/OpenSans-SemiBold.ttf'); -} - - -/*-------------------------------------------------------------- -# BASIC ---------------------------------------------------------------*/ - -body -{ - font-family: 'Open Sans', sans-serif; - font-size: 14px; - - display: flex; - overflow: hidden; - flex-direction: column; - - width: 300px; - height: 532px; - margin: 0; - - background-color: #eee; -} - -body.improvedtube-page -{ - width: 100vw; - height: 100vh; -} - -button -{ - font-family: 'Open Sans', sans-serif; -} - - - - - -.satus-dialog--confirm .satus-section -{ - display: flex; - background-color: transparent; -} - -.satus-dialog--confirm .satus-text -{ - display: block; - - box-sizing: border-box; - padding: 0 16px 8px; -} - -.satus-dialog--confirm .satus-button -{ - font-weight: 500; - - overflow: hidden; - - height: 28px; - min-height: 28px; - margin-right: 2px; - padding: 4px 8px; - - text-transform: uppercase; - - color: #f96754; - border-radius: 4px; -} - - - - - - - - - - - - - - - - - - - - - - -.satus-section--footer -{ - position: fixed; - z-index: 99; - bottom: 10px; - left: 16px; - display: flex; - box-sizing: border-box; - box-shadow: 0 0 3px rgba(0,0,0,.1); - width: 268px; - height: 38px; - padding: 8px 16px; - color: var(--satus-theme-main-text); - border-radius: 4px; - background: var(--satus-theme-section); - align-items: center; - justify-content: space-between; -} - -html[it-improvedtube-home='list'] .satus-section--footer -{ - position: relative; - left: 0; - top: 0; - margin: 50px 16px 16px; -} - -.satus-main .satus-section--footer .satus-button -{ - font-family: 'Open Sans', sans-serif; - font-weight: 700; - font-size: 13px; - text-decoration: none; - color: var(--satus-theme-main-text); - text-align: center; - height: 32px; - justify-content: center; - border-radius: 4px; - overflow: hidden; -} - -.satus-main .satus-section--footer .satus-button--found-a-bug { - width: 128px; - position: absolute; - bottom: 48px; - left: 70px; -} - -.satus-dialog--setup -{ - animation: unset; -} - -.satus-dialog--setup .satus-dialog__scrim -{ - display: none; -} - -.satus-dialog--setup .satus-dialog__surface -{ - position: absolute; - top: 0; - left: 0; - - padding: 0; - - width: 100%; - height: 100%; - max-height: unset; - - transform: unset; - animation: unset; - - opacity: 1; - border-radius: unset; -} - -.satus-dialog--setup-language .satus-button -{ - width: 100%; - height: 48px; -} - -/*--------------------------------------------------------------- ->>> HEADER: ------------------------------------------------------------------ -1.0 Buttons - 1.1 Back button -2.0 Title -3.0 Right section -4.0 Search -5.0 Vertical menu ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -1.0 BUTTONS ----------------------------------------------------------------*/ - -.satus-header .satus-button -{ - width: 36px; - height: 36px; - padding: 6px; -} - -.satus-header .satus-button::before -{ - border-radius: 50%; -} - - -/*--------------------------------------------------------------- -1.1 BACK BUTTON ----------------------------------------------------------------*/ - -.satus-button--back -{ - position: absolute; -} - -.satus-button--back svg -{ - fill: none; - stroke: currentColor; -} - -body[data-appearance='home'] .satus-button--back -{ - visibility: hidden; -} - - -/*--------------------------------------------------------------- -2.0 TITLE ----------------------------------------------------------------*/ - -.satus-text--title -{ - font-size: 15px; - font-weight: 400; - - position: absolute; - left: 56px; - - letter-spacing: .0125em; -} - -html[it-title-version='true'] body[data-appearance='home'] .satus-text--title::after -{ - font: 700 10px sans-serif; - - margin: 0 0 0 4px; - - content: attr(data-version); - - opacity: .6; - color: var(--satus-theme-header-text); -} - -body[data-appearance='home'] .satus-text--title -{ - left: 14px; -} - - -/*--------------------------------------------------------------- -3.0 RIGHT SECTION ----------------------------------------------------------------*/ - -.satus-section--align-end -{ - justify-content: flex-end; -} - -.satus-section--align-end .satus-button + .satus-button -{ - margin-left: 8px; -} - - -/*--------------------------------------------------------------- -4.0 SEARCH ----------------------------------------------------------------*/ - -.satus-dialog--search -{ - pointer-events: none; -} - -.satus-dialog--search .satus-dialog__scrim -{ - display: none; -} - -.satus-dialog--search .satus-dialog__surface -{ - position: fixed; - top: 11px; - right: 8px; - - visibility: unset; - - width: calc(100% - 62px); - min-width: unset; - max-width: unset; - height: 34px; - padding: 0; - - transform: unset; - animation: unset; - pointer-events: all; - - opacity: unset; - border: 1px solid rgba(0,0,0,.05); - box-shadow: unset; -} - -.satus-dialog--search .satus-dialog__surface .satus-text-field -{ - height: 34px; -} - -.satus-dialog--search .satus-dialog__surface .satus-button -{ - position: absolute; - top: 3px; - right: 3px; - - overflow: hidden; - - width: 32px; - height: 32px; - - border-radius: 50%; -} - -.satus-dialog--search .satus-dialog__surface .satus-button svg -{ - fill: unset; - stroke: currentColor; -} - - -body[data-appearance='search'] .satus-switch--red, -body[data-appearance='search'] .satus-switch--dark, -body[data-appearance='search'] .satus-switch--night, -body[data-appearance='search'] .satus-switch--dawn, -body[data-appearance='search'] .satus-switch--sunset, -body[data-appearance='search'] .satus-switch--desert, -body[data-appearance='search'] .satus-switch--plain, -body[data-appearance='search'] .satus-switch--black -{ - width: calc(100% - 16px); - margin: 4px 8px; - - border-radius: 6px; -} - -body[data-appearance='search'] .satus-switch--red .satus-switch__label, -body[data-appearance='search'] .satus-switch--dark .satus-switch__label, -body[data-appearance='search'] .satus-switch--night .satus-switch__label, -body[data-appearance='search'] .satus-switch--dawn .satus-switch__label, -body[data-appearance='search'] .satus-switch--sunset .satus-switch__label, -body[data-appearance='search'] .satus-switch--black .satus-switch__label -{ - color: #fff; -} - -body[data-appearance='search'] .satus-switch--plain .satus-switch__label, -body[data-appearance='search'] .satus-switch--desert .satus-switch__label -{ - color: #222; -} - - -/*--------------------------------------------------------------- -5.0 VERTICAL MENU ----------------------------------------------------------------*/ - -.satus-dialog--vertical-menu .satus-dialog__surface -{ - position: absolute; - top: 8px; - right: 8px; - left: auto; - - min-width: 180px; - max-width: 180px; - - transform-origin: right top; -} - -.satus-dialog--vertical-menu .satus-button, -.satus-dialog--vertical-menu .satus-folder -{ - width: 100%; - height: 36px; - padding: 0 16px; - - text-align: left; -} - -.satus-dialog--vertical-menu .satus-folder svg, -.satus-dialog--vertical-menu .satus-button svg -{ - width: 20px; - height: 18px; - margin: 0 14px 0 0; - - opacity: .75; - - fill: none; - stroke: var(--satus-theme-primary); -} - -.satus-dialog--vertical-menu .satus-folder--mixer svg -{ - height: 20px; -} - -.satus-dialog--vertical-menu .satus-button--github svg -{ - width: 18px; - height: 18px; -} - -/*-------------------------------------------------------------- ->>> MAIN: ----------------------------------------------------------------- -1.0 Basic -2.0 Section -3.0 Folder -4.0 Button -5.0 Custom ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -1.0 BASIC ---------------------------------------------------------------*/ - -.satus-main -{ - flex: 1; -} - - -/*-------------------------------------------------------------- -2.0 SECTION ---------------------------------------------------------------*/ - -.satus-main .satus-section--label -{ - font-size: 17px; - - display: block; - - width: calc(100% - 16px); - max-width: 900px; - margin: 16px auto 8px; -} - -html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-section:not(.satus-section--footer), -.satus-main__container:not([data-appearance='home']) .satus-section:not(.satus-section--footer) -{ - display: block; - - width: calc(100% - 16px); - max-width: 900px; - margin: 8px auto; - padding: 8px 0; - - border: 1px solid rgba(0,0,0,.1); - border-radius: 8px; -} - -html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-section--message, -.satus-main__container:not([data-appearance='home']) .satus-section--message -{ - padding-right: 8px; - padding-left: 8px; -} - - -/*-------------------------------------------------------------- -3.0 FOLDER ---------------------------------------------------------------*/ - -.satus-main .satus-folder svg -{ - width: 20px; - height: 20px; - margin: 0 14px 0 0; - - opacity: .75; - - stroke: none; - fill: var(--satus-theme-primary); -} - - -/*-------------------------------------------------------------- -4.0 BUTTON ---------------------------------------------------------------*/ - -.satus-main .satus-button -{ - width: 100%; - height: 48px; - padding: 0 16px; - text-align: left; -} - - -/*-------------------------------------------------------------- -5.0 CUSTOM ---------------------------------------------------------------*/ - -#forced-playback-speed + *, -#forced-volume + * -{ - pointer-events: none; - - opacity: .5; -} - -#forced-playback-speed[data-value=true] + *, -#forced-volume[data-value=true] + * -{ - pointer-events: all; - - opacity: 1; -} - -/*-------------------------------------------------------------- ->>> HOME ---------------------------------------------------------------*/ - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-section:not(.satus-section--footer) -{ - width: 100%; - margin-top: 16px; - - flex-wrap: wrap; - - background-color: transparent; -} - - - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder -{ - position: relative; - - flex-direction: column; - - width: 64px; - height: 86px; - margin: 0 18px 14px; - padding: 0; - - cursor: default; -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder::before -{ - background-color: transparent -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder__label -{ - position: absolute; - bottom: 0; - - pointer-events: none; -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder:focus, -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder:hover -{ - background-color: transparent; -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg, -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--shortcut__icon -{ - display: block; - overflow: visible; - - width: 28px; - height: 28px; - margin: 0 0 5px 0; - padding: 16px; - - cursor: pointer; - transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; - - opacity: .95; - border-radius: 50%; - background: linear-gradient(135deg, #ff4158, #ff001f); - box-shadow: 0 2px 1px 1px rgb(222, 0, 27, .7), 0 3px 5px rgba(0,0,0,.35); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg:focus, -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg:hover -{ - transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; - transform: translateY(4px) scale(.975); - - box-shadow: 0 1px 1px 0 rgba(222, 0, 27, .7), 0 1px 2px rgba(0,0,0,.35); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--general svg -{ - width: 26px; - height: 26px; - padding: 19px 17px 15px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--appearance svg -{ - width: 26px; - height: 26px; - padding: 19px 17px 15px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--themes svg -{ - padding: 17px 16px 15px 16px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--player svg -{ - width: 26px; - height: 26px; - padding: 19px 15px 15px 19px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--playlist svg -{ - padding: 17px 16px 15px 16px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--channel svg -{ - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--shortcut svg -{ - width: 26px; - height: 26px; - padding: 19px 17px 15px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--mixer svg -{ - padding: 17px 16px 15px 16px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--blacklist svg -{ - width: 26px; - height: 26px; - padding: 18px 17px 16px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--analyzer svg -{ - width: 26px; - height: 26px; - padding: 18px 17px 16px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-folder svg -{ - fill: transparent; - stroke: var(--satus-theme-primary); -} - - - -html[it-it-general='false'] .satus-folder--general, -html[it-it-appearance='false'] .satus-folder--appearance, -html[it-it-themes='false'] .satus-folder--themes, -html[it-it-player='false'] .satus-folder--player, -html[it-it-playlist='false'] .satus-folder--playlist, -html[it-it-channel='false'] .satus-folder--channel, -html[it-it-shortcuts='false'] .satus-folder--shortcut, -html[it-it-blacklist='false'] .satus-folder--blacklist, -html[it-it-analyzer='false'] .satus-folder--analyzer -{ - display: none; -} - -/*-------------------------------------------------------------- -# APPEARANCE ---------------------------------------------------------------*/ - -.satus-main__container[data-appearance='appearance'] .satus-folder -{ - position: absolute; - - box-sizing: border-box; - padding: 0; - - transition-duration: .5s; - transition-property: transform, box-shadow; - transform: scale(1); - text-align: center; - - border: 1px solid var(--main-appearance-shadow, #dfdfdf); - border-radius: 6px; - box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0); - - justify-content: center; - align-items: center; -} - -.satus-main__container[data-appearance='appearance'] .satus-folder:hover -{ - z-index: 9; - - transition-duration: .25s; - transform: scale(1.03) translate(-8px, -4px); - - box-shadow: 1px 1px 0 0 var(--main-appearance-shadow, #dfdfdf), 2px 2px 0 0 var(--main-appearance-shadow, #dfdfdf), 3px 3px 0 0 var(--main-appearance-shadow, #dfdfdf), 4px 4px 0 0 var(--main-appearance-shadow, #dfdfdf), 5px 6px 4px 0 rgba(0, 0, 0, .1); -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--header -{ - top: 16px; - left: 16px; - - width: calc(100% - 32px); - height: 40px; - min-height: auto; - - background-color: var(--satus-theme-dialog); - color: var(--satus-theme-dialog-text); -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--header:hover -{ - transform: scale(1.03) translate(-9px, -4px); -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--player -{ - top: 64px; - left: 16px; - - width: calc(70% - 32px); - height: 96px; - min-height: auto; - - color: #eee; - border-color: #333; - background-color: #444; -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--player .label -{ - color: #fff; -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--player:hover -{ - transform: scale(1.03) translate(-7px, -4px); - - box-shadow: 1px 1px 0 0 #333, 2px 2px 0 0 #333, 3px 3px 0 0 #333, 4px 4px 0 0 #333, 5px 6px 4px 0 rgba(0, 0, 0, .1); -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--details -{ - top: 168px; - left: 16px; - - width: calc(70% - 32px); - height: 56px; - min-height: auto; - - background-color: var(--satus-theme-dialog); - color: var(--satus-theme-dialog-text); -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--description -{ - top: 13.5rem; - left: 1rem; - - width: calc(70% - 2rem); - height: 3.5rem; - min-height: 3.5rem; - - background-color: var(--satus-theme-dialog); - color: var(--satus-theme-dialog-text); -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--comments -{ - top: 232px; - left: 16px; - - width: calc(70% - 32px); - height: 80px; - min-height: auto; - - background-color: var(--satus-theme-dialog); - color: var(--satus-theme-dialog-text); -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--footer -{ - top: 320px; - left: 16px; - - width: calc(70% - 32px); - height: 64px; - min-height: auto; - - background-color: var(--satus-theme-dialog); - color: var(--satus-theme-dialog-text); -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--sidebar -{ - top: 64px; - left: calc(70% - 8px); - - width: calc(30% - 8px); - height: 160px; - - background-color: var(--satus-theme-dialog); - color: var(--satus-theme-dialog-text); -} - -/*----------------------------------------------------------------------------- -# THEMES CATEGORY ------------------------------------------------------------------------------*/ - -.satus-main__container[data-appearance='themes'] .satus-switch:first-child -{ - margin-top: 16px; -} - -.satus-main__container[data-appearance='themes'] .satus-switch:last-child -{ - margin-bottom: 16px; -} - -.satus-main__container[data-appearance='themes'] .satus-switch -{ - width: calc(100% - 16px); - max-width: 900px; - height: 80px; - margin: 8px auto; - - border-radius: 8px; -} - -.satus-main__container[data-appearance='themes'] .satus-switch__label -{ - font-size: 15px; - font-weight: 500; - - color: #eee; - text-shadow: 0 1px 3px rgba(0, 0, 0, .7); -} - -.satus-switch--dark -{ - position: relative; - - overflow: hidden; - - background: linear-gradient(#0d1216, #353d46) !important; -} - -.satus-switch--dark::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - animation-name: satus-switch--dark; - animation-duration: 4s; - animation-timing-function: ease-in-out; - animation-iteration-count: infinite; - pointer-events: none; - - background: radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%) !important; - background-repeat: no-repeat !important; - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px !important; - background-size: 50px 50px, 50px 50px, 100px 100px, 75px 75px !important; - - filter: blur(8px); -} - -@keyframes satus-switch--dark -{ - 0% - { - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; - } - - 50% - { - background-position: 20px 20px, 230px -20px, 0 -40px, 160px 10px; - } - - 100% - { - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; - } -} - -.satus-switch--night -{ - position: relative; - - overflow: hidden; - - animation-name: satus-switch--night; - animation-duration: .75s; - animation-iteration-count: infinite; - - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5) !important; - background-repeat: no-repeat !important; - background-position: 75% 80%, 35% 65%, 30% 10%, 50% 40%, 10% 80%, 90% 10%, 0 0 !important; - background-size: 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, auto !important; -} - -@keyframes satus-switch--night -{ - 0% - { - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } - - 25% - { - background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } - - 50% - { - background-image: radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .9) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } - - 75% - { - background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } - - 100% - { - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } -} - -.satus-switch--dawn -{ - position: relative; - - overflow: hidden; - - background: linear-gradient(#ed74a9, #ffba99) !important; -} - -.satus-switch--dawn::before -{ - position: absolute; - right: 1rem; - bottom: -5rem; - - width: 10rem; - height: 10rem; - - content: ''; - animation-name: satus-switch--dawn; - animation-duration: .75s; - animation-iteration-count: infinite; - pointer-events: none; - - border-radius: 50%; - background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; -} - -@keyframes satus-switch--dawn -{ - 0% - { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); - } - - 50% - { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, - rgba(255, 255, 231, .30) 20%, - rgba(255, 255, 231, .30) 35%, - rgba(255, 255, 231, .20) 35%, - rgba(255, 255, 231, .20) 55%, - rgba(255, 255, 231, .10) 55%, - rgba(255, 255, 231, .10) 75%, transparent 75%); - } - - 100% - { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); - } -} - -.satus-switch--sunset -{ - position: relative; - - overflow: hidden; - - background: linear-gradient(#2f3364, #a96165) !important; -} - -.satus-switch--sunset::before -{ - position: absolute; - top: -1rem; - left: 50%; - - overflow: hidden; - - width: 8rem; - height: 8rem; - - content: ''; - transform: translate(-50%, 0%); - pointer-events: none; - - border-radius: 50%; - background: linear-gradient(#fa7965, #f56264, transparent) !important; -} - -.satus-switch--desert -{ - position: relative; - - overflow: hidden; - - background-image: radial-gradient(#ffe498 50%, transparent 50%), - linear-gradient(#9dc2ee, #f5fdff) !important; - background-repeat: no-repeat !important; - background-position: -120px 36px, 0 !important; - background-size: 240%, 100% !important; -} - -.satus-switch--desert::before -{ - position: absolute; - top: -100%; - left: 40%; - - width: 10rem; - height: 10rem; - - content: ''; - animation-name: satus-switch--desert; - animation-duration: .75s; - animation-delay: .5s; - animation-iteration-count: infinite; - pointer-events: none; - - border-radius: 50%; - background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; -} - -@keyframes satus-switch--desert -{ - 0% - { - background: radial-gradient(#fefefe 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); - } - - 50% - { - background: radial-gradient(#fefefe 20%, - rgba(255, 255, 231, .30) 20%, - rgba(255, 255, 231, .30) 35%, - rgba(255, 255, 231, .20) 35%, - rgba(255, 255, 231, .20) 55%, - rgba(255, 255, 231, .10) 55%, - rgba(255, 255, 231, .1) 75%, transparent 75%); - } - - 100% - { - background: radial-gradient(#fefefe 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); - } -} - -.satus-switch--plain -{ - position: relative; - - overflow: hidden; - - background-image: radial-gradient(#dea975 50%, transparent 50%), - radial-gradient(#e8b887 50%, transparent 50%), - radial-gradient(#f1cc9f 50%, transparent 50%), - radial-gradient(#f3ddb8 50%, transparent 50%), - linear-gradient(#abceb8, #e7ede1) !important; - background-repeat: no-repeat !important; - background-position: -50px 50px, -370px 40px, 0 36px, -360px 26px, 0 !important; - background-size: 240%, 240%, 240%, 240%, 100% !important; -} - -.satus-switch--plain::before -{ - position: absolute; - top: -70%; - left: 10%; - - width: 7rem; - height: 7rem; - - content: ''; - animation-name: satus-switch--plain; - animation-duration: .75s; - animation-delay: .2s; - animation-iteration-count: infinite; - pointer-events: none; - - border-radius: 50%; - background: radial-gradient(#fff 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; -} - -.satus-switch--black -{ - background: #000 !important; -} - -/*----------------------------------------------------------------------------- -# BLACKLIST CATEGORY ------------------------------------------------------------------------------*/ - -.satus-section.satus-section--blacklist -{ - position: relative; - - overflow: hidden; - flex-direction: column; - - width: calc(100% - 32px); - height: 116px; - margin: 8px 16px 0; - - transition: opacity .25s; - - opacity: 1; - border-radius: 10px; - background-color: #000; - background-position: center; - background-size: cover; - - flex: unset; - align-items: flex-start; -} - -.satus-section.satus-section--blacklist.removing -{ - opacity: 0; -} - -.satus-section.satus-section--blacklist::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - margin: 0; - - content: ''; - - background: rgba(0, 0, 0, .5); -} - -.satus-section.satus-section--blacklist > .label -{ - font-size: 16px; - font-weight: 700; - - position: absolute; - z-index: 1; - bottom: 28px; - - text-transform: uppercase; - - opacity: 1; - color: #fff; -} - -.satus-section.satus-section--blacklist::after -{ - position: absolute; - z-index: 1; - bottom: 16px; - left: 16px; - - content: attr(data-label); - - color: rgba(255, 255, 255, .5); -} - -.satus-section.satus-section--blacklist > .satus-section -{ - position: absolute; - z-index: 999; - bottom: 0; - - visibility: hidden; - - width: 100%; - margin: 0; - padding: 0; - - transition: .15s; - - opacity: 0; - border: none; - border-radius: 0; - background: rgba(255, 255, 255, .95); - - justify-content: center; -} - -.satus-section.satus-section--blacklist:hover > .satus-section -{ - visibility: visible; - - opacity: 1; -} -/*----------------------------------------------------------------------------- -# ANALYZER CATEGORY ------------------------------------------------------------------------------*/ - -.analyzer-top-text -{ - font-size: 13px; - - display: flex; - - box-sizing: border-box; - margin: 16px 0 0; - padding: 0 16px; - - background: transparent !important; - - justify-content: space-between; -} - -.analyzer-watch-time -{ - text-transform: uppercase; -} - -.analyzer-today-at -{ - box-sizing: border-box; -} - -.analyzer-container -{ - box-sizing: border-box; - margin: 8px 0 16px; - padding: 16px; - - background: var(--background-0) !important; - box-shadow: 0 0 2px rgba(0, 0, 0, .2); -} - -.analyzer-all-time -{ - font-size: 24px; - font-weight: 400; - - margin-bottom: 8px; - - color: #4c4c4c; -} - -.analyzer-chart -{ - position: relative; - - display: flex; - overflow: hidden; - - box-sizing: border-box; - height: 140px; - margin: 8px 0; - - border-bottom: 1px solid #ccc; - - justify-content: space-between; -} - -.analyzer-chart::before -{ - position: absolute; - top: -78%; - left: -15%; - - width: 125%; - height: 250%; - - content: ''; - transform: rotate(-45deg); - - background: linear-gradient(transparent 50%, rgba(0, 0, 0, .05) 50%); - background-size: 4px 4px; -} - -.analyzer-column -{ - z-index: 1; - - display: flex; - - border-right: 1px solid #ccc; - - flex: 1; -} - -.analyzer-column:first-child -{ - border-left: 1px solid #ccc; -} - -.analyzer-data-column -{ - display: flex; - flex-direction: column; - - justify-content: flex-end; - flex: 1; -} - -.analyzer-data -{ - height: 20px; - margin: 0 1px; - - background-color: #c5c5c5; -} - -.analyzer-data.first -{ - background-color: #1c00db; - - order: 3; -} - -.analyzer-data.second -{ - background-color: #4dd0e1; - - order: 2; -} - -.analyzer-data.third -{ - background-color: #ff9800; - - order: 1; -} - -/*.analyzer-data:first-child -{ - border-top-left-radius: 4px; - border-top-right-radius: 4px; -}*/ -.analyzer-bottom -{ - display: flex; - - margin: 14px 0 0; - - justify-content: space-between; -} - -.analyzer-bottom > div .label -{ - margin: 0 0 2px; -} - -.analyzer-bottom > div:first-child .label -{ - color: #1c00db; -} - -.analyzer-bottom > div:nth-child(2) .label -{ - color: #4dd0e1; -} - -.analyzer-bottom > div:nth-child(3) .label -{ - color: #ff9800; -} - -/*----------------------------------------------------------------------------- -# MIXER CATEGORY ------------------------------------------------------------------------------*/ - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer -{ - position: relative; - - overflow: hidden; - flex-direction: column; - - width: calc(100% - 32px); - height: 128px; - margin: 8px 16px 0; - - border: unset; - border-radius: 10px; - - flex: unset; - align-items: flex-start; -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - - background: rgba(0, 0, 0, .5); -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer > .satus-section -{ - position: absolute; - bottom: 0; - - visibility: hidden; - - width: 100%; - margin: 0; - padding: 0; - - transition: 200ms; - transform: translateY(32px); - - opacity: 0; - border: unset; - border-radius: unset; -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer:hover > .satus-section -{ - visibility: visible; - - transform: translateY(0); - - opacity: 1; -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer.noconnection > .satus-section > div -{ - visibility: hidden; - - pointer-events: none; -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer.noconnection > .satus-section::after -{ - font-size: 18px; - font-weight: 500; - - position: absolute; - top: 50%; - - width: 100%; - - content: attr(data-no-connection-label); - transform: translateY(-50%); - text-align: center; - - opacity: .8; -} -.satus-main__container[data-appearance='about'] .satus-text -{ - display: flex; - - box-sizing: border-box; - width: 100%; - min-height: 48px; - padding: 0 16px; - - justify-content: space-between; - align-items: center; -} - -.satus-main__container[data-appearance='about'] .satus-text__value -{ - text-align: right; - - opacity: .7; -} - - -/*--------------------------------------------------------------- -# AD ----------------------------------------------------------------*/ - -.satus-section--info -{ - position: absolute; - z-index: 99; - bottom: 104px; - left: 32px; - - display: flex; - - width: calc(100% - 64px) !important; - - justify-content: space-between; -} - -.satus-section--info .satus-button -{ - font-weight: 700; - overflow: hidden; - width: auto; - height: 28px; - border-radius: 6px; - background: var(--satus-theme-primary); - color: #fff; - opacity: 0.5; - padding: 0 10px; -} - -.satus-section--info .satus-button:hover { - opacity: 1 -} - - - - -.satus-main .satus-button.satus-button--ad -{ - position: absolute; - z-index: 99; - bottom: 16px; - left: 16px; - - overflow: hidden; - - width: 268px; - height: 38px; - height: 80px; - padding: 8px 16px; - - color: var(--satus-theme-main-text); - border-radius: 8px; - background: #0f1911; - box-shadow: 0 0 3px rgba(0,0,0,.1); - - align-items: center; - justify-content: space-between; -} - -.satus-button--ad .satus-button__label -{ - font-size: 22px; - font-weight: 700; - - color: rgba(255,255,255,.85); - text-shadow: 2px 1px 2px rgba(0,0,0,.6); -} - - -@keyframes satusSwitchDark -{ - 0% - { - transform: translate(0, 0); - } - 33% - { - transform: translate(20px, 10px); - } - 66% - { - transform: translate(10px, -10px); - } - 100% - { - transform: translate(0, 0); - } -} - -.satus-button--ad::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - opacity: 1; - animation-name: satusSwitchDark; - animation-duration: 8s; - animation-timing-function: linear; - animation-iteration-count: infinite; - pointer-events: none; - - background: radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%) !important; - background-repeat: no-repeat !important; - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px !important; - background-size: 50px 50px, 50px 50px, 100px 100px, 75px 75px !important; - - filter: blur(8px); -} - -html[it-improvedtube-home='list'] .satus-main .satus-button.satus-button--ad -{ - position: relative; - top: 0; - left: 0; - - margin: 16px; -} - -.satus-button--ad:after -{ - position: absolute; - top: 0; - left: -100%; - - width: 100%; - height: 100%; - - content: ''; - transition: .5s; - transition-delay: .2s; - - background: linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent); -} - -.satus-button--ad:hover:after -{ - left: 100%; -} \ No newline at end of file diff --git a/3.120-pre/popup.js b/3.120-pre/popup.js deleted file mode 100644 index f9d7d680b..000000000 --- a/3.120-pre/popup.js +++ /dev/null @@ -1,3084 +0,0 @@ -/*------------------------------------------------------------------------------ ->>> TABLE OF CONTENTS: --------------------------------------------------------------------------------- -1.0 Header - 1.1 Mixer - 1.2 Settings - 1.3 Active features -2.0 Main - 2.1 General - 2.2 Appearance - 2.3 Themes - 2.4 Player - 2.5 Playlist - 2.6 Channel - 2.7 Shortcuts - 2.8 Blacklist - 2.9 Analyzer -3.0 Initialization -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -1.0 HEADER -------------------------------------------------------------------------------*/ - -var Menu = { - header: { - type: 'header', - - section_start: { - type: 'section', - class: 'satus-section--align-start', - - button_back: { - type: 'button', - class: 'satus-button--back', - before: '', - onclick: function() { - if (document.querySelector('.satus-dialog__scrim')) { - document.querySelector('.satus-dialog__scrim').click(); - } else { - document.querySelector('.satus-main').back(); - } - } - }, - title: { - type: 'text', - class: 'satus-text--title', - innerText: 'ImprovedTube', - dataset: { - version: chrome && chrome.runtime && chrome.runtime.getManifest ? chrome.runtime.getManifest().version : '' - } - } - }, - section_end: { - type: 'section', - class: 'satus-section--align-end', - - button_search: { - type: 'button', - icon: '', - onclick: function() { - document.querySelector('.satus-main').open({ - appearanceId: 'search' - }, function() { - satus.render({ - type: 'dialog', - class: 'satus-dialog--search', - onclose: function() { - document.querySelector('.satus-main').back(); - }, - - input: { - type: 'text-field', - placeholder: 'search', - oninput: function() { - if (this.value.length > 0) { - satus.search(this.value, Menu, function(results) { - var sorted_results = []; - - document.querySelector('.satus-main__container').innerHTML = ''; - - for (var key in results) { - results[key].type = 'section'; - - sorted_results.push({ - type: 'text', - label: key, - class: 'satus-section--label' - }); - sorted_results.push(results[key]); - } - - console.log(results); - - var scroll = satus.components.scrollbar(document.querySelector('.satus-main__container')); - - satus.render(sorted_results, scroll); - }, true); - } else { - document.querySelector('.satus-main__container').innerHTML = ''; - - satus.render({}, document.querySelector('.satus-main__container')); - } - } - } - }); - }); - } - }, - button_vert: { - type: 'button', - icon: '', - onClickRender: { - type: 'dialog', - class: 'satus-dialog--vertical-menu' - } - } - } - } -}; - - -/*------------------------------------------------------------------------------ -1.1 ACTIVE FEATURES -------------------------------------------------------------------------------*/ - -Menu.header.section_end.button_vert.onClickRender.active_features = { - type: 'folder', - before: '', - label: 'activeFeatures', - onclick: function() { - document.querySelector('.satus-dialog__scrim').click(); - }, - - section: { - type: 'section', - onrender: function() { - var component = this, - new_menu = {}, - storage = satus.storage; - - function search(string, object) { - let result = []; - - for (let i in object) { - if (object[i].type) { - if (/(button|select|shortcut|slider|switch)/.test(object[i].type)) { - if (i.indexOf(string) !== -1 || (object[i].tags && object[i].tags.indexOf(string) !== -1)) { - if (object[i].type.indexOf('button') === -1 || !object[i].label) { - new_menu[i] = object[i]; - } - } - } else { - let response = search(string, object[i]); - - if (response.length > 0) { - for (let j = 0, l = response.length; j < l; j++) { - result.push(response[i]); - } - } - } - } - } - - return result; - } - - for (var key in storage) { - search(key, Menu) - } - - setTimeout(function() { - if (Object.keys(new_menu).length > 0) { - satus.render(new_menu, component); - } else { - satus.render({ - text: { - type: 'text', - label: 'noActiveFeatures' - } - }, component); - } - }); - } - } -}; - - -/*------------------------------------------------------------------------------ -1.2 SETTINGS -------------------------------------------------------------------------------*/ - -Menu.header.section_end.button_vert.onClickRender.settings = { - type: 'folder', - before: '', - label: 'settings', - parent: '.satus-main__container', - onclick: function() { - document.querySelector('.satus-dialog__scrim').click(); - }, - - section: { - type: 'section', - - developer_options: { - type: 'folder', - before: '', - label: 'developerOptions', - - custom_js_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'customJs' - }, - - custom_js_section: { - type: 'section', - custom_js: { - type: 'text-field', - onrender: function() { - this.value = satus.storage.get('custom_js') || ''; - }, - oninput: function() { - satus.storage.set('custom_js', this.value); - } - } - }, - - custom_css_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'customCss' - }, - - custom_css_section: { - type: 'section', - custom_css: { - type: 'text-field', - onrender: function() { - this.value = satus.storage.get('custom_css') || ''; - }, - oninput: function() { - satus.storage.set('custom_css', this.value); - } - } - }, - - /*translations_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'translations' - }, - - translations_section: { - type: 'section', - onrender: function() { - satus.search('language', Menu, function(result) { - var languages = result.language.options; - - for (var i = 0, l = languages.length; i < l; i++) { - - } - }) - } - }*/ - }, - }, - - section0: { - type: 'section', - - appearance: { - type: 'folder', - before: '', - label: 'appearance', - - general: { - type: 'section', - label: 'general', - - header: { - type: 'folder', - label: 'header', - - section: { - type: 'section', - - title_version: { - type: 'switch', - label: 'version' - } - } - }, - home: { - type: 'folder', - label: 'home', - - section: { - type: 'section', - - improvedtube_home: { - type: 'select', - label: 'style', - options: [{ - label: 'bubbles', - value: 'bubbles' - }, { - label: 'list', - value: 'list' - }] - } - }, - - categories: { - type: 'section', - label: 'categories', - - it_general: { - type: 'switch', - label: 'general', - value: true - }, - it_appearance: { - type: 'switch', - label: 'appearance', - value: true - }, - it_themes: { - type: 'switch', - label: 'themes', - value: true - }, - it_player: { - type: 'switch', - label: 'player', - value: true - }, - it_playlist: { - type: 'switch', - label: 'playlist', - value: true - }, - it_channel: { - type: 'switch', - label: 'channel', - value: true - }, - it_shortcuts: { - type: 'switch', - label: 'shortcuts', - value: true - }, - it_mixer: { - type: 'switch', - label: 'mixer', - value: true - }, - it_analyzer: { - type: 'switch', - label: 'analyzer', - value: true - }, - it_blacklist: { - type: 'switch', - label: 'blacklist', - value: true - } - } - } - }, - icons: { - type: 'section', - label: 'icons', - - improvedtube_youtube_icon: { - label: 'improvedtubeIconOnYoutube', - type: 'select', - options: [{ - label: 'disabled', - value: 'disabled' - }, { - label: 'youtubeHeaderLeft', - value: 'header_left' - }, { - label: 'youtubeHeaderRight', - value: 'header_right' - }, { - label: 'draggable', - value: 'draggable' - }, { - label: 'belowPlayer', - value: 'below_player' - }] - }, - improvedtube_browser_icon: { - label: 'improvedtubeIconInBrowser', - type: 'select', - - options: [{ - label: 'onlyActiveOnYoutube', - value: 'youtube' - }, { - label: 'alwaysActive', - value: 'always' - }] - } - } - }, - languages: { - type: 'folder', - before: '', - label: 'languages', - - section: { - type: 'section', - - language: { - label: 'improvedtubeLanguage', - type: 'select', - onchange: function(name, value) { - satus.memory.set('locale', {}); - - satus.locale(function() { - document.querySelector('.satus-main__container').innerHTML = ''; - - document.querySelector('.satus-header__title').innerText = satus.locale.getMessage('languages'); - document.querySelector('#search').placeholder = satus.locale.getMessage('search'); - - satus.render(document.querySelector('.satus-main__container'), Menu.main.section.settings.section.languages); - }); - }, - options: [{ - value: 'en', - label: 'English' - }, { - value: 'ko', - label: '한국어' - }, { - value: 'es', - label: 'Español (España)' - }, { - value: 'ru', - label: 'Русский' - }, { - value: 'de', - label: 'Deutsch' - }, { - value: 'zh_TW', - label: '中文 (繁體)' - }, { - value: 'pt_PT', - label: 'Português' - }, { - value: 'pt_BR', - label: 'Português (Brasil)' - }, { - value: 'zh_CN', - label: '中文 (简体)' - }, { - value: 'fr', - label: 'Français' - }, { - value: 'ja', - label: '日本語' - }, { - value: 'tr', - label: 'Türkçe' - }, { - value: 'tr', - label: 'Italiano' - }, { - value: 'nl', - label: 'Nederlands' - }, { - value: 'ar', - label: 'العربية' - }, { - value: 'id', - label: 'Bahasa Indonesia' - }, { - value: 'nb', - label: 'Norsk' - }, { - value: 'nb_NO', - label: 'Norsk (Bokmål)' - }, { - value: 'el', - label: 'Ελληνικά' - }, { - value: 'bn', - label: 'বাংলা' - }, { - value: 'hin', - label: 'हिन्दी' - }, { - value: 'sk', - label: 'Slovenčina' - }] - }, - youtube_language: { - label: 'youtubeLanguage', - type: 'select', - options: [{ - value: "en", - label: "English" - }, { - value: "es", - label: "Español (España)" - }, { - value: "es-419", - label: "Español (Latinoamérica)" - }, { - value: "es-US", - label: "Español (US)" - }, { - value: "ru", - label: "Русский" - }, { - value: "de", - label: "Deutsch" - }, { - value: "pt-PT", - label: "Português" - }, { - value: "pt", - label: "Português (Brasil)" - }, { - value: "fr", - label: "Français" - }, { - value: "pl", - label: "Polski" - }, { - value: "ja", - label: "日本語" - }, { - value: "af", - label: "Afrikaans" - }, { - value: "az", - label: "Azərbaycan" - }, { - value: "id", - label: "Bahasa Indonesia" - }, { - value: "ms", - label: "Bahasa Malaysia" - }, { - value: "bs", - label: "Bosanski" - }, { - value: "ca", - label: "Català" - }, { - value: "cs", - label: "Čeština" - }, { - value: "da", - label: "Dansk" - }, { - value: "et", - label: "Eesti" - }, { - value: "eu", - label: "Euskara" - }, { - value: "fil", - label: "Filipino" - }, { - value: "fr-CA", - label: "Français (Canada)" - }, { - value: "gl", - label: "Galego" - }, { - value: "hr", - label: "Hrvatski" - }, { - value: "zu", - label: "IsiZulu" - }, { - value: "is", - label: "Íslenska" - }, { - value: "it", - label: "Italiano" - }, { - value: "sw", - label: "Kiswahili" - }, { - value: "lv", - label: "Latviešu valoda" - }, { - value: "lt", - label: "Lietuvių" - }, { - value: "hu", - label: "Magyar" - }, { - value: "nl", - label: "Nederlands" - }, { - value: "no", - label: "Norsk" - }, { - value: "uz", - label: "O‘zbek" - }, { - value: "ro", - label: "Română" - }, { - value: "sq", - label: "Shqip" - }, { - value: "sk", - label: "Slovenčina" - }, { - value: "sl", - label: "Slovenščina" - }, { - value: "sr-Latn", - label: "Srpski" - }, { - value: "fi", - label: "Suomi" - }, { - value: "sv", - label: "Svenska" - }, { - value: "vi", - label: "Tiếng Việt" - }, { - value: "tr", - label: "Türkçe" - }, { - value: "be", - label: "Беларуская" - }, { - value: "bg", - label: "Български" - }, { - value: "ky", - label: "Кыргызча" - }, { - value: "kk", - label: "Қазақ Тілі" - }, { - value: "mk", - label: "Македонски" - }, { - value: "mn", - label: "Монгол" - }, { - value: "sr", - label: "Српски" - }, { - value: "uk", - label: "Українська" - }, { - value: "el", - label: "Ελληνικά" - }, { - value: "hy", - label: "Հայերեն" - }, { - value: "iw", - label: "עברית" - }, { - value: "ur", - label: "اردو" - }, { - value: "ar", - label: "العربية" - }, { - value: "fa", - label: "فارسی" - }, { - value: "ne", - label: "नेपाली" - }, { - value: "mr", - label: "मराठी" - }, { - value: "hi", - label: "हिन्दी" - }, { - value: "bn", - label: "বাংলা" - }, { - value: "pa", - label: "ਪੰਜਾਬੀ" - }, { - value: "gu", - label: "ગુજરાતી" - }, { - value: "ta", - label: "தமிழ்" - }, { - value: "te", - label: "తెలుగు" - }, { - value: "kn", - label: "ಕನ್ನಡ" - }, { - value: "ml", - label: "മലയാളം" - }, { - value: "si", - label: "සිංහල" - }, { - value: "th", - label: "ภาษาไทย" - }, { - value: "lo", - label: "ລາວ" - }, { - value: "my", - label: "ဗမာ" - }, { - value: "ka", - label: "ქართული" - }, { - value: "am", - label: "አማርኛ" - }, { - value: "km", - label: "ខ្មែរ" - }, { - value: "zh-CN", - label: "中文 (简体)" - }, { - value: "zh-TW", - label: "中文 (繁體)" - }, { - value: "zh-HK", - label: "中文 (香港)" - }, { - value: "ko", - label: "한국어" - }] - } - } - }, - backup_and_reset: { - type: 'folder', - label: 'backupAndReset', - before: '', - - section: { - type: 'section', - import_settings: { - type: 'button', - label: 'importSettings', - - onclick: function() { - try { - var input = document.createElement('input'); - - input.type = 'file'; - - input.addEventListener('change', function() { - var file_reader = new FileReader(); - - file_reader.onload = function() { - var data = JSON.parse(this.result); - - for (var i in data) { - satus.storage.set(i, data[i]); - } - - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - label: 'successfullyImportedSettings' - }, - section: { - type: 'section', - class: 'controls', - style: { - 'justify-content': 'flex-end', - 'display': 'flex' - }, - - cancel: { - type: 'button', - label: 'cancel', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - ok: { - type: 'button', - label: 'OK', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - } - } - }); - }; - - file_reader.readAsText(this.files[0]); - }); - - input.click(); - } catch (err) { - chrome.runtime.sendMessage({ - name: 'dialog-error', - value: err - }); - } - } - }, - export_settings: { - type: 'button', - label: 'exportSettings', - - onclick: function() { - chrome.runtime.sendMessage({ - name: 'download', - filename: 'improvedtube-settings.json', - value: satus.storage - }); - } - }, - reset_all_settings: { - type: 'button', - label: 'resetAllSettings', - - onclick: function() { - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - label: 'thisWillResetAllSettings' - }, - section: { - type: 'section', - class: 'controls', - style: { - 'justify-content': 'flex-end', - 'display': 'flex' - }, - - cancel: { - type: 'button', - label: 'cancel', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - accept: { - type: 'button', - label: 'accept', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - satus.storage.clear(); - - scrim[scrim.length - 1].click(); - } - } - } - }); - } - }, - delete_youtube_cookies: { - type: 'button', - label: 'deleteYoutubeCookies', - - onclick: function() { - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - label: 'thisWillRemoveAllYouTubeCookies', - style: { - 'width': '100%', - 'opacity': '.8' - } - }, - section: { - type: 'section', - class: 'controls', - style: { - 'justify-content': 'flex-end', - 'display': 'flex' - }, - - cancel: { - type: 'button', - label: 'cancel', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - accept: { - type: 'button', - label: 'accept', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - chrome.tabs.query({}, function(tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - name: 'delete_youtube_cookies' - }); - } - } - }); - - scrim[scrim.length - 1].click(); - } - } - } - }); - } - } - } - }, - date_and_time: { - type: 'folder', - label: 'dateAndTime', - before: '', - - section: { - type: 'section', - - use_24_hour_format: { - type: 'switch', - label: 'use24HourFormat', - value: true - } - } - }, - about: { - type: 'folder', - before: '', - label: 'about', - appearanceId: 'about', - - section: { - type: 'section', - - onrender: function() { - var component = this, - manifest = chrome.runtime.getManifest(), - user = satus.modules.user(), - object = { - extension_section: { - type: 'section', - label: 'extension', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - version: { - type: 'text', - label: 'version', - value: manifest.version - }, - permissions: { - type: 'text', - label: 'permissions', - value: manifest.permissions.join(', ').replace('https://www.youtube.com/', 'YouTube') - }, - }, - browser_section: { - type: 'section', - label: 'browser', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - name: { - type: 'text', - label: 'name', - value: user.browser.name - }, - version: { - type: 'text', - label: 'version', - value: user.browser.version - }, - platform: { - type: 'text', - label: 'platform', - value: user.browser.platform - }, - video_formats: { - type: 'text', - label: 'videoFormats', - value: user.browser.video - }, - audio_formats: { - type: 'text', - label: 'audioFormats', - value: user.browser.audio - }, - flash: { - type: 'text', - label: 'flash', - value: user.browser.flash ? true : false - } - }, - os_section: { - type: 'section', - label: 'os', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - os_name: { - type: 'text', - label: 'name', - value: user.os.name - }, - - os_type: { - type: 'text', - label: 'type', - value: user.os.type - } - }, - device_section: { - type: 'section', - label: 'device', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - screen: { - type: 'text', - label: 'screen', - value: user.device.screen - }, - cores: { - type: 'text', - label: 'cores', - value: user.device.cores - }, - gpu: { - type: 'text', - label: 'gpu', - value: user.device.gpu - }, - ram: { - type: 'text', - label: 'ram', - value: user.device.ram - } - } - }; - - setTimeout(function() { - satus.render(object, component.parentNode); - - component.remove(); - }); - } - } - } - } -}; - - -/*------------------------------------------------------------------------------ -1.3 MIXER -------------------------------------------------------------------------------*/ - -Menu.header.section_end.button_vert.onClickRender.mixer = { - type: 'folder', - before: '', - label: 'mixer', - class: 'satus-folder--mixer', - appearanceId: 'mixer', - onopen: function() { - var self = this; - - if (chrome && chrome.tabs) { - chrome.tabs.query({}, function(tabs) { - var mixer = {}; - - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - var tab = tabs[i]; - - if (/(\?|\&)v=/.test(tab.url)) { - mixer[i] = { - type: 'section', - class: 'satus-section--mixer', - style: { - 'background': 'url(https://img.youtube.com/vi/' + tab.url.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '/0.jpg) center center / cover no-repeat #000', - }, - - section: { - type: 'section', - dataset: { - 'noConnectionLabel': satus.locale.getMessage('tryToReloadThePage') || 'tryToReloadThePage' - }, - - mixer_volume: { - type: 'slider', - label: 'volume', - dataset: { - id: tab.id, - element: 'audio' - }, - max: 100, - onrender: function() { - var self = this; - - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'request_volume' - }, function(response) { - if (response) { - document.querySelector('div[data-element="audio"][data-id="' + Number(self.dataset.id) + '"]').change(response.value); - } else { - self.parentNode.parentNode.classList.add('noconnection'); - } - }); - }, - onchange: function(value) { - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'change_volume', - volume: value - }); - } - }, - mixer_playback_speed: { - type: 'slider', - label: 'playbackSpeed', - dataset: { - id: tab.id, - element: 'playback_speed' - }, - min: .1, - max: 8, - step: .05, - onrender: function() { - var self = this; - - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'request_playback_speed' - }, function(response) { - if (response) { - document.querySelector('div[data-element="playback_speed"][data-id="' + Number(self.dataset.id) + '"]').change(Number(response.value)); - } else { - self.parentNode.parentNode.classList.add('noconnection'); - } - }); - }, - onchange: function(value) { - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'change_playback_speed', - playback_speed: value - }); - } - } - } - }; - } - } - } - - if (Object.entries(mixer).length === 0) { - mixer.section = { - type: 'section', - - message: { - type: 'text', - class: 'satus-section--message', - label: 'noOpenVideoTabs' - } - }; - } - - document.querySelector('.satus-dialog__scrim').click(); - - satus.render(mixer, self); - }); - } - } -}; - - -/*------------------------------------------------------------------------------ -2.0 MAIN -------------------------------------------------------------------------------*/ - -Menu.main = { - type: 'main', - appearanceId: 'home', - on: { - change: function(container) { - var item = this.history[this.history.length - 1], - id = item.appearanceId; - - document.body.dataset.appearance = id; - container.dataset.appearance = id; - - document.querySelector('.satus-text--title').innerText = satus.locale.getMessage(item.label) || 'ImprovedTube'; - } - }, - - section: { - type: 'section' - }, - - footer: { - type: 'button', - class: 'satus-button--ad', - label: 'DARK MODE', - title: 'Dark Mode', - onclick: function() { - window.open('https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl', '_blank'); - } - }, - - info: { - type: 'section', - class: 'satus-section--info', - - email: { - type: 'button', - label: 'Email', - title: 'bugs@improvedtube.com', - onclick: function() { - window.open('mailto:bugs@improvedtube.com', '_blank'); - } - }, - github: { - type: 'button', - label: 'GitHub', - title: '/ImprovedTube/ImprovedTube', - onclick: function() { - window.open('https://github.com/ImprovedTube/ImprovedTube/', '_blank'); - } - }, - website: { - type: 'button', - label: 'Website', - title: 'improvedtube.com', - onclick: function() { - window.open('http://www.improvedtube.com/', '_blank'); - } - } - } -}; - - -/*------------------------------------------------------------------------------ -2.1 GENERAL -------------------------------------------------------------------------------*/ - -Menu.main.section.general = { - type: 'folder', - before: '', - label: 'general', - class: 'satus-folder--general', - appearanceId: 'general', - - section: { - type: 'section', - - /*legacy_youtube: { - type: 'switch', - label: 'legacyYoutube', - tags: 'old' - },*/ - youtube_home_page: { - type: 'select', - label: 'youtubeHomePage', - options: [{ - label: 'home', - value: '/' - }, { - label: 'trending', - value: '/feed/trending' - }, { - label: 'subscriptions', - value: '/feed/subscriptions' - }, { - label: 'history', - value: '/feed/history' - }, { - label: 'watchLater', - value: '/playlist?list=WL' - }, { - label: 'search', - value: 'search' - }], - tags: 'trending,subscriptions,history,watch,search' - }, - collapse_of_subscription_sections: { - type: 'switch', - label: 'collapseOfSubscriptionSections' - }, - add_scroll_to_top: { - type: 'switch', - label: 'addScrollToTop', - tags: 'up' - }, - remove_related_search_results: { - type: 'switch', - label: 'removeRelatedSearchResults' - }, - confirmation_before_closing: { - type: 'switch', - label: 'confirmationBeforeClosing', - tags: 'random prevent close exit' - }, - mark_watched_videos: { - type: 'switch', - label: 'markWatchedVideos' - }, - only_one_player_instance_playing: { - type: 'switch', - label: 'onlyOnePlayerInstancePlaying' - } - }, - - section_label__thumbnails: { - type: 'text', - class: 'satus-section--label', - label: 'thumbnails' - }, - - thumbnails_section: { - type: 'section', - - squared_user_images: { - type: 'switch', - label: 'squaredUserImages', - tags: 'avatar' - }, - hd_thumbnails: { - type: 'switch', - label: 'hdThumbnails', - tags: 'preview quality' - }, - hide_animated_thumbnails: { - type: 'switch', - label: 'hideAnimatedThumbnails', - tags: 'preview' - } - } -}; - - -/*------------------------------------------------------------------------------ -2.2 APPEARANCE -------------------------------------------------------------------------------*/ - -Menu.main.section.appearance = { - type: 'folder', - before: '', - label: 'appearance', - class: 'satus-folder--appearance', - appearanceId: 'appearance', - - header: { - type: 'folder', - label: 'header', - class: 'satus-folder--header', - - section: { - type: 'section', - - header_position: { - type: 'select', - label: 'position', - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'hidden', - value: 'hidden' - }, { - label: 'hover', - value: 'hover' - }, { - label: 'hiddenOnVideoPage', - value: 'hidden_on_video_page' - }, { - label: 'hoverOnVideoPage', - value: 'hover_on_video_page' - }, { - label: 'static', - value: 'static' - }], - tags: 'hide,hover,static,top' - }, - header_improve_logo: { - type: 'switch', - label: 'improveLogo', - tags: 'youtube' - }, - header_hide_right_buttons: { - type: 'switch', - label: 'hideRightButtons', - tags: 'user' - } - } - }, - player: { - type: 'folder', - label: 'player', - class: 'satus-folder--player', - - section: { - type: 'section', - - player_hide_annotations: { - type: 'switch', - label: 'hideAnnotations', - tags: 'hide,remove,elements' - }, - player_hide_cards: { - type: 'switch', - label: 'hideCards', - tags: 'hide,remove,elements' - }, - player_show_cards_on_mouse_hover: { - type: 'switch', - label: 'showCardsOnMouseHover', - tags: 'hide,remove,elements' - }, - player_size: { - type: 'select', - label: 'playerSize', - options: [{ - label: 'doNotChange', - value: 'do_not_change' - }, { - label: 'fullWindow', - value: 'full_window' - }, { - label: 'fitToWindow', - value: 'fit_to_window' - }, { - label: '240p', - value: '240p' - }, { - label: '360p', - value: '360p' - }, { - label: '480p', - value: '480p' - }, { - label: '576p', - value: '576p' - }, { - label: '720p', - value: '720p' - }, { - label: '1080p', - value: '1080p' - }, { - label: '1440p', - value: '1440p' - }, { - label: '2160p', - value: '2160p' - }] - }, - forced_theater_mode: { - type: 'switch', - label: 'forcedTheaterMode', - tags: 'wide' - }, - player_color: { - label: 'playerColor', - type: 'select', - options: [{ - label: 'red', - value: 'red' - }, { - label: 'pink', - value: 'pink' - }, { - label: 'purple', - value: 'purple' - }, { - label: 'deepPurple', - value: 'deep_purple' - }, { - label: 'indigo', - value: 'indigo' - }, { - label: 'blue', - value: 'blue' - }, { - label: 'lightBlue', - value: 'light_blue' - }, { - label: 'cyan', - value: 'cyan' - }, { - label: 'teal', - value: 'teal' - }, { - label: 'green', - value: 'green' - }, { - label: 'lightGreen', - value: 'light_green' - }, { - label: 'lime', - value: 'lime' - }, { - label: 'yellow', - value: 'yellow' - }, { - label: 'amber', - value: 'amber' - }, { - label: 'orange', - value: 'orange' - }, { - label: 'deepOrange', - value: 'deep_orange' - }, { - label: 'brown', - value: 'brown' - }, { - label: 'blueGray', - value: 'blue_gray' - }, { - label: 'white', - value: 'white' - }], - tags: 'style' - }, - player_transparent_background: { - type: 'switch', - label: 'transparentBackground' - }, - player_hide_endscreen: { - type: 'switch', - label: 'hideEndscreen' - }, - player_hd_thumbnail: { - type: 'switch', - label: 'hdThumbnail', - tags: 'preview' - }, - hide_scroll_for_details: { - type: 'switch', - label: 'hideScrollForDetails', - tags: 'remove,hide' - }, - always_show_progress_bar: { - type: 'switch', - label: 'alwaysShowProgressBar' - } - } - }, - details: { - type: 'folder', - label: 'details', - class: 'satus-folder--details', - - section: { - type: 'section', - - hide_details: { - type: 'switch', - label: 'hideDetails', - tags: 'hide,remove' - }, - description: { - type: 'select', - label: 'description', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'expanded', - value: 'expanded' - }, { - label: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - hide_views_count: { - type: 'switch', - label: 'hideViewsCount', - tags: 'hide,remove' - }, - likes: { - type: 'select', - label: 'likes', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'iconsOnly', - value: 'icons_only' - }, { - label: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - how_long_ago_the_video_was_uploaded: { - type: 'switch', - label: 'howLongAgoTheVideoWasUploaded' - }, - channel_videos_count: { - type: 'switch', - label: 'showChannelVideosCount' - }, - red_dislike_button: { - type: 'switch', - label: 'redDislikeButton' - } - } - }, - sidebar: { - type: 'folder', - label: 'sidebar', - class: 'satus-folder--sidebar', - - section: { - type: 'section', - - livechat: { - type: 'select', - label: 'liveChat', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'collapsed', - value: 'collapsed' - }, { - label: 'hidden', - value: 'hidden' - }] - }, - hide_playlist: { - type: 'switch', - label: 'hidePlaylist' - }, - related_videos: { - type: 'select', - label: 'relatedVideos', - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'collapsed', - value: 'collapsed' - }, { - label: 'hidden', - value: 'hidden' - }], - tags: 'right' - } - } - }, - comments: { - type: 'folder', - label: 'comments', - class: 'satus-folder--comments', - - section: { - type: 'section', - - comments: { - type: 'select', - label: 'comments', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'collapsed', - value: 'collapsed' - }, { - label: 'hidden', - value: 'hidden' - }] - } - } - }, - footer: { - type: 'folder', - label: 'footer', - class: 'satus-folder--footer', - - section: { - type: 'section', - - hide_footer: { - type: 'switch', - label: 'hideFooter', - tags: 'bottom' - } - } - } -}; - - -/*------------------------------------------------------------------------------ -2.3 THEMES -------------------------------------------------------------------------------*/ - -Menu.main.section.themes = { - type: 'folder', - before: '', - label: 'themes', - class: 'satus-folder--themes', - appearanceId: 'themes', - - section: { - type: 'section', - - my_colors: { - type: 'folder', - label: 'myColors', - - section: { - type: 'section', - - theme_my_colors: { - type: 'switch', - label: 'activate' - } - }, - - section2: { - type: 'section', - - theme_primary_color: { - type: 'color-picker', - label: 'primaryColor', - value: 'rgba(200,200,200)' - }, - theme_text_color: { - type: 'color-picker', - label: 'textColor', - value: 'rgba(25,25,25)' - } - } - }, - filters: { - type: 'folder', - label: 'filters', - - section: { - type: 'section', - - bluelight: { - type: 'slider', - label: 'bluelight', - step: 1, - max: 90, - value: 0 - }, - dim: { - type: 'slider', - label: 'dim', - step: 1, - max: 90, - value: 0 - } - } - }, - schedule: { - type: 'folder', - label: 'schedule', - - section: { - type: 'section', - - schedule: { - type: 'select', - label: 'schedule', - - options: [{ - label: 'disabled', - value: 'disabled' - }, { - label: 'sunsetToSunrise', - value: 'sunset_to_sunrise' - }, { - label: 'systemPeferenceDark', - value: 'system_peference_dark' - }, { - label: 'systemPeferenceLight', - value: 'system_peference_light' - }] - }, - schedule_time_from: { - type: 'select', - label: 'timeFrom', - options: [{ - label: '00:00', - value: '00:00' - }, { - label: '01:00', - value: '01:00' - }, { - label: '02:00', - value: '02:00' - }, { - label: '03:00', - value: '03:00' - }, { - label: '04:00', - value: '04:00' - }, { - label: '05:00', - value: '05:00' - }, { - label: '06:00', - value: '06:00' - }, { - label: '07:00', - value: '07:00' - }, { - label: '08:00', - value: '08:00' - }, { - label: '09:00', - value: '09:00' - }, { - label: '10:00', - value: '10:00' - }, { - label: '11:00', - value: '11:00' - }, { - label: '12:00', - value: '12:00' - }, { - label: '13:00', - value: '13:00' - }, { - label: '14:00', - value: '14:00' - }, { - label: '15:00', - value: '15:00' - }, { - label: '16:00', - value: '16:00' - }, { - label: '17:00', - value: '17:00' - }, { - label: '18:00', - value: '18:00' - }, { - label: '19:00', - value: '19:00' - }, { - label: '20:00', - value: '20:00' - }, { - label: '21:00', - value: '21:00' - }, { - label: '22:00', - value: '22:00' - }, { - label: '23:00', - value: '23:00' - }] - }, - schedule_time_to: { - type: 'select', - label: 'timeTo', - options: [{ - label: '00:00', - value: '00:00' - }, { - label: '01:00', - value: '01:00' - }, { - label: '02:00', - value: '02:00' - }, { - label: '03:00', - value: '03:00' - }, { - label: '04:00', - value: '04:00' - }, { - label: '05:00', - value: '05:00' - }, { - label: '06:00', - value: '06:00' - }, { - label: '07:00', - value: '07:00' - }, { - label: '08:00', - value: '08:00' - }, { - label: '09:00', - value: '09:00' - }, { - label: '10:00', - value: '10:00' - }, { - label: '11:00', - value: '11:00' - }, { - label: '12:00', - value: '12:00' - }, { - label: '13:00', - value: '13:00' - }, { - label: '14:00', - value: '14:00' - }, { - label: '15:00', - value: '15:00' - }, { - label: '16:00', - value: '16:00' - }, { - label: '17:00', - value: '17:00' - }, { - label: '18:00', - value: '18:00' - }, { - label: '19:00', - value: '19:00' - }, { - label: '20:00', - value: '20:00' - }, { - label: '21:00', - value: '21:00' - }, { - label: '22:00', - value: '22:00' - }, { - label: '23:00', - value: '23:00' - }] - } - } - }, - font: { - type: 'select', - label: 'font', - options: [{ - label: 'Roboto', - value: 'Roboto' - }, { - label: 'Open Sans', - value: 'Open+Sans' - }, { - label: 'Lato', - value: 'Lato' - }, { - label: 'Montserrat', - value: 'Montserrat' - }, { - label: 'Source Sans Pro', - value: 'Source+Sans+Pro' - }, { - label: 'Roboto Condensed', - value: 'Roboto+Condensed' - }, { - label: 'Oswald', - value: 'Oswald' - }, { - label: 'Comfortaa', - value: 'Comfortaa' - }, { - label: 'Roboto Mono', - value: 'Roboto+Mono' - }, { - label: 'Raleway', - value: 'Raleway' - }, { - label: 'Poppins', - value: 'Poppins' - }, { - label: 'Noto Sans', - value: 'Noto+Sans' - }, { - label: 'Roboto Slab', - value: 'Roboto+Slab' - }, { - label: 'Marriweather', - value: 'Marriweather' - }, { - label: 'PT Sans', - value: 'PT+Sans' - }] - } - }, - - default_dark_theme: { - type: 'switch', - label: 'dark', - class: 'satus-switch--dark', - - onchange: themeChange - }, - night_theme: { - type: 'switch', - label: 'night', - class: 'satus-switch--night', - - onchange: themeChange - }, - dawn_theme: { - type: 'switch', - label: 'dawn', - class: 'satus-switch--dawn', - - onchange: themeChange - }, - sunset_theme: { - type: 'switch', - label: 'sunset', - class: 'satus-switch--sunset', - - onchange: themeChange - }, - desert_theme: { - type: 'switch', - label: 'desert', - class: 'satus-switch--desert', - - onchange: themeChange - }, - plain_theme: { - type: 'switch', - label: 'plain', - class: 'satus-switch--plain', - - onchange: themeChange - }, - black_theme: { - type: 'switch', - label: 'black', - class: 'satus-switch--black', - - onchange: themeChange - } -}; - - -/*------------------------------------------------------------------------------ -2.4 PLAYER -------------------------------------------------------------------------------*/ - -Menu.main.section.player = { - type: 'folder', - before: '', - label: 'player', - class: 'satus-folder--player', - appearanceId: 'player', - - general: { - type: 'section', - - player_autoplay: { - type: 'switch', - label: 'autoplay', - value: true - }, - player_autopause_when_switching_tabs: { - type: 'switch', - label: 'autopauseWhenSwitchingTabs' - }, - player_forced_playback_speed: { - type: 'switch', - label: 'forcedPlaybackSpeed', - id: 'forced-playback-speed', - onrender: function() { - this.dataset.value = satus.storage.player_forced_playback_speed; - }, - onchange: function() { - this.dataset.value = satus.storage.player_forced_playback_speed; - } - }, - player_playback_speed: { - type: 'slider', - label: 'playbackSpeed', - textarea: true, - value: 1, - min: .1, - max: 8, - step: .05 - }, - player_subtitles: { - type: 'switch', - label: 'subtitles', - value: true - }, - player_crop_chapter_titles: { - type: 'switch', - label: 'cropChapterTitles', - value: true - }, - up_next_autoplay: { - type: 'switch', - label: 'upNextAutoplay', - value: true - }, - player_ads: { - label: 'ads', - type: 'select', - options: [{ - label: 'onAllVideos', - value: 'all_videos', - default: 'true' - }, { - label: 'onSubscribedChannels', - value: 'subscribed_channels' - }, { - label: 'blockAll', - value: 'block_all' - }] - }, - mini_player: { - type: 'switch', - label: 'customMiniPlayer' - }, - player_autofullscreen: { - type: 'switch', - label: 'autoFullscreen' - } - }, - - section_label__videos: { - type: 'text', - class: 'satus-section--label', - label: 'videos' - }, - - video: { - type: 'section', - - player_quality: { - type: 'select', - label: 'quality', - options: [{ - label: 'auto', - value: 'auto' - }, { - label: '144p', - value: 'tiny' - }, { - label: '240p', - value: 'small' - }, { - label: '360p', - value: 'medium' - }, { - label: '480p', - value: 'large' - }, { - label: '720p', - value: 'hd720' - }, { - label: '1080p', - value: 'hd1080' - }, { - label: '1440p', - value: 'hd1440' - }, { - label: '2160p', - value: 'hd2160' - }, { - label: '2880p', - value: 'hd2880' - }, { - label: '4320p', - value: 'highres' - }] - }, - player_h264: { - type: 'switch', - label: 'codecH264', - - onclick: function() { - console.log(this.dataset.value); - if (this.querySelector('input').checked === true) { - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - label: 'youtubeLimitsVideoQualityTo1080pForH264Codec', - style: { - 'width': '100%', - 'opacity': '.8' - } - }, - section: { - type: 'section', - class: 'controls', - style: { - 'justify-content': 'flex-end' - }, - - cancel: { - type: 'button', - label: 'cancel', - onclick: function() { - let scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - ok: { - type: 'button', - label: 'OK', - onclick: function() { - let scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - } - } - }); - } - } - }, - player_60fps: { - type: 'switch', - label: 'allow60fps', - value: true - }, - }, - - section_label__audio: { - type: 'text', - class: 'satus-section--label', - label: 'audio' - }, - - audio: { - type: 'section', - label: 'audio', - - player_forced_volume: { - type: 'switch', - label: 'forcedVolume', - id: 'forced-volume', - onrender: function() { - this.dataset.value = satus.storage.player_forced_volume; - }, - onchange: function() { - this.dataset.value = satus.storage.player_forced_volume; - } - }, - player_volume: { - type: 'slider', - label: 'volume', - step: 1, - max: 100, - value: 100 - }, - player_loudness_normalization: { - type: 'switch', - label: 'loudnessNormalization', - value: true - } - }, - - section_label__buttons: { - type: 'text', - class: 'satus-section--label', - label: 'buttons' - }, - - buttons: { - type: 'section', - - player_screenshot: { - type: 'folder', - label: 'screenshot', - - section: { - type: 'section', - - player_screenshot_button: { - type: 'switch', - label: 'activate' - }, - player_screenshot_save_as: { - type: 'select', - label: 'saveAs', - options: [{ - label: 'file', - value: 'file' - }, { - label: 'clipboard', - value: 'clipboard' - }] - } - } - }, - player_repeat: { - type: 'folder', - label: 'repeat', - - section: { - type: 'section', - - player_repeat_button: { - type: 'switch', - label: 'activate' - }, - player_always_repeat: { - type: 'switch', - label: 'alwaysActive' - } - } - }, - player_rotate_button: { - type: 'switch', - label: 'rotate' - }, - player_popup_button: { - type: 'switch', - label: 'popupPlayer' - } - } -}; - - -/*------------------------------------------------------------------------------ -2.5 PLAYLIST -------------------------------------------------------------------------------*/ - -Menu.main.section.playlist = { - type: 'folder', - before: '', - label: 'playlist', - class: 'satus-folder--playlist', - appearanceId: 'playlist', - - section: { - type: 'section', - - playlist_autoplay: { - type: 'switch', - label: 'autoplay', - value: true - }, - playlist_up_next_autoplay: { - type: 'switch', - label: 'upNextAutoplay', - value: true - }, - playlist_reverse: { - type: 'switch', - label: 'reverse' - } - }, - - section2: { - type: 'section', - - playlist_repeat: { - type: 'switch', - label: 'repeat' - }, - playlist_shuffle: { - type: 'switch', - label: 'shuffle' - } - } -}; - - -/*------------------------------------------------------------------------------ -2.6 CHANNEL -------------------------------------------------------------------------------*/ - -Menu.main.section.channel = { - type: 'folder', - before: '', - label: 'channel', - class: 'satus-folder--channel', - appearanceId: 'channel', - - section: { - type: 'section', - - channel_default_tab: { - type: 'select', - label: 'defaultChannelTab', - options: [{ - label: 'home', - value: '/home' - }, { - label: 'videos', - value: '/videos' - }, { - label: 'playlists', - value: '/playlists' - }] - }, - channel_trailer_autoplay: { - type: 'switch', - label: 'trailerAutoplay', - value: true - }, - channel_hide_featured_content: { - type: 'switch', - label: 'hideFeaturedContent' - } - } -}; - - -/*------------------------------------------------------------------------------ -2.7 SHORTCUTS -------------------------------------------------------------------------------*/ - -Menu.main.section.shortcuts = { - type: 'folder', - before: '', - label: 'shortcuts', - class: 'satus-folder--shortcut', - appearanceId: 'shortcuts', - - player_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'player' - }, - - player_section: { - type: 'section', - - shortcut_picture_in_picture: { - type: 'shortcut', - label: 'pictureInPicture' - }, - shortcut_play_pause: { - type: 'shortcut', - label: 'playPause', - value: { - key: ' ' - } - }, - shortcut_stop: { - type: 'shortcut', - label: 'stop' - }, - shortcut_next_video: { - type: 'shortcut', - label: 'nextVideo', - value: { - key: 'N', - shiftKey: true - } - }, - shortcut_prev_video: { - type: 'shortcut', - label: 'previousVideo', - value: { - key: 'P', - shiftKey: true - } - }, - shortcut_seek_backward: { - type: 'shortcut', - label: 'seekBackward10Seconds', - value: { - key: 'J' - } - }, - shortcut_seek_forward: { - type: 'shortcut', - label: 'seekForward10Seconds', - value: { - key: 'I' - } - }, - shortcut_volume: { - type: 'folder', - label: 'volume', - - section_step: { - type: 'section', - - shortcut_volume_step: { - type: 'slider', - label: 'step', - min: 1, - max: 10, - step: 1, - value: 5 - } - }, - - section: { - type: 'section', - - shortcut_increase_volume: { - type: 'shortcut', - label: 'increaseVolume' - }, - shortcut_decrease_volume: { - type: 'shortcut', - label: 'decreaseVolume' - } - } - }, - shortcut_playback_speed: { - type: 'folder', - label: 'playbackSpeed', - - section_step: { - type: 'section', - - shortcut_playback_speed_step: { - type: 'slider', - label: 'step', - min: .05, - max: .5, - step: .05, - value: .05 - } - }, - - section: { - type: 'section', - - shortcut_increase_playback_speed: { - type: 'shortcut', - label: 'increasePlaybackSpeed' - }, - shortcut_decrease_playback_speed: { - type: 'shortcut', - label: 'decreasePlaybackSpeed' - } - } - }, - shortcut_activate_fullscreen: { - type: 'shortcut', - label: 'activateFullscreen', - value: { - key: 'F' - } - }, - shortcut_activate_captions: { - type: 'shortcut', - label: 'activateCaptions', - value: { - key: 'C' - } - }, - shortcut_quality: { - type: 'folder', - label: 'quality', - - section: { - type: 'section', - - shortcut_240p: { - type: 'shortcut', - label: '240p' - }, - shortcut_360p: { - type: 'shortcut', - label: '360p' - }, - shortcut_480p: { - type: 'shortcut', - label: '480p' - }, - shortcut_720p: { - type: 'shortcut', - label: '720p' - }, - shortcut_1080p: { - type: 'shortcut', - label: '1080p' - }, - shortcut_1440p: { - type: 'shortcut', - label: '1440p' - }, - shortcut_2160p: { - type: 'shortcut', - label: '2160p' - }, - shortcut_2880p: { - type: 'shortcut', - label: '2880p' - }, - shortcut_4320p: { - type: 'shortcut', - label: '4320p' - } - } - }, - shortcut_custom_mini_player: { - type: 'shortcut', - label: 'customMiniPlayer' - }, - shortcut_screenshot: { - type: 'shortcut', - label: 'screenshot' - }, - shortcut_stats_for_nerds: { - type: 'shortcut', - label: 'statsForNerds' - }, - shortcut_toggle_cards: { - type: 'shortcut', - label: 'toggleCards' - } - }, - - appearance_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'appearance' - }, - - appearance_section: { - type: 'section', - - shortcut_go_to_search_box: { - type: 'shortcut', - label: 'goToSearchBox', - value: { - key: '/' - } - }, - shortcut_like_shortcut: { - type: 'shortcut', - label: 'like' - }, - shortcut_dislike_shortcut: { - type: 'shortcut', - label: 'dislike' - }, - shortcut_dark_theme: { - type: 'shortcut', - label: 'darkTheme' - } - } -}; - - -/*------------------------------------------------------------------------------ -2.8 BLACKLIST -------------------------------------------------------------------------------*/ - -Menu.main.section.blacklist = { - type: 'folder', - before: '', - label: 'blacklist', - class: 'satus-folder--blacklist', - appearanceId: 'blacklist', - - section_activate: { - type: 'section', - - blacklist_activate: { - type: 'switch', - label: 'activate' - } - }, - - section: { - type: 'section', - - channels: { - type: 'folder', - label: 'channels', - onopen: function() { - var self = this; - - if (satus.storage.blacklist && satus.storage.blacklist.channels) { - var list = {}; - - for (var item in satus.storage.blacklist.channels) { - if (satus.storage.blacklist.channels[item] !== false) { - var title = satus.storage.blacklist.channels[item].title || ''; - - list[item] = { - type: 'section', - label: title.length > 20 ? title.substr(0, 20) + '...' : title, - class: 'satus-section--blacklist', - style: { - 'background-image': 'url(' + satus.storage.blacklist.channels[item].preview + ')', - 'background-color': '#000' - }, - - section: { - type: 'section', - - delete: { - type: 'button', - icon: '', - onclick: function() { - delete satus.storage.blacklist.channels[item]; - - satus.storage.set('blacklist', satus.storage.blacklist); - - this.classList.add('removing'); - - setTimeout(function() { - self.remove(); - }, 250); - } - } - } - }; - } - } - - if (Object.keys(list).length === 0) { - list.section = { - type: 'section', - class: 'satus-section--message', - - error: { - type: 'text', - label: 'empty' - } - }; - } - - satus.render(list, this); - } else { - satus.render({ - type: 'section', - class: 'satus-section--message', - - error: { - type: 'text', - label: 'empty' - } - }, this); - } - } - }, - videos: { - type: 'folder', - label: 'videos', - onopen: function() { - var self = this; - - if (satus.storage.blacklist && satus.storage.blacklist.videos) { - let list = {}; - - for (let item in satus.storage.blacklist.videos) { - if (satus.storage.blacklist.videos[item] !== false) { - let title = satus.storage.blacklist.videos[item].title || ''; - - list[item] = { - type: 'section', - label: title.length > 20 ? title.substr(0, 20) + '...' : title, - class: 'satus-section--blacklist', - style: { - 'background-image': 'url(https://img.youtube.com/vi/' + item + '/0.jpg)' - }, - - section: { - type: 'section', - - delete: { - type: 'button', - icon: '', - onclick: function() { - delete satus.storage.blacklist.videos[item]; - - satus.storage.set('blacklist', satus.storage.blacklist); - this.parentNode.parentNode.classList.add('removing'); - - setTimeout(function() { - self.parentNode.parentNode.remove(); - }, 250); - } - } - } - }; - } - } - - if (Object.keys(list).length === 0) { - list.section = { - type: 'section', - class: 'satus-section--message', - - error: { - type: 'text', - label: 'empty' - } - }; - } - - satus.render(list, this); - } else { - satus.render({ - type: 'section', - class: 'satus-section--message', - - error: { - type: 'text', - label: 'empty' - } - }, this); - } - } - } - } -}; - - -/*------------------------------------------------------------------------------ -2.9 ANALYZER -------------------------------------------------------------------------------*/ - -Menu.main.section.analyzer = { - type: 'folder', - before: '', - label: 'analyzer', - class: 'satus-folder--analyzer', - appearanceId: 'analyzer', - - activ_section: { - type: 'section', - - analyzer_activation: { - type: 'switch', - label: 'activate' - } - }, - - section: { - type: 'section', - style: { - 'flex-direction': 'column', - 'align-items': 'flex-start' - }, - onrender: function() { - var data = satus.storage.get('analyzer') || {}, - all_data = {}, - all_data_sort = [], - all_time_value = 0, - current_date = new Date().toDateString(), - container = document.createElement('div'), - top_text_container = document.createElement('div'), - today_at = document.createElement('div'), - watch_time = document.createElement('div'), - all_time = document.createElement('div'), - chart = document.createElement('div'), - bottom_text_container = document.createElement('div'); - - container.className = 'analyzer-container'; - top_text_container.className = 'analyzer-top-text'; - watch_time.className = 'analyzer-watch-time'; - today_at.className = 'analyzer-today-at'; - all_time.className = 'analyzer-all-time'; - chart.className = 'analyzer-chart'; - bottom_text_container.className = 'analyzer-bottom'; - - if (data[current_date]) { - for (let i in data[current_date]) { - if (data[current_date][i]) { - for (let j in data[current_date][i]) { - if (!all_data[j]) { - all_data[j] = 0; - } - - all_data[j] += data[current_date][i][j]; - } - } - } - } - - for (let i in all_data) { - all_data_sort.push([i, all_data[i]]); - all_time_value += all_data[i]; - } - - all_data_sort.sort(function(a, b) { - return b[1] - a[1]; - }); - - var now_minutes = new Date().getMinutes(); - - watch_time.innerText = satus.locale.getMessage('watchTime') || 'watchTime'; - today_at.innerText = satus.locale.getMessage('todayAt') + ' ' + (new Date().getHours() + ':' + (now_minutes < 10 ? '0' + now_minutes : now_minutes)) || 'todayAt'; - all_time.innerText = Math.floor(all_time_value / 60) + 'h ' + (all_time_value - Math.floor(all_time_value / 60) * 60) + 'm'; - - let h = 0; - - for (let i = 0; i < 4; i++) { - let column = document.createElement('div'); - - column.className = 'analyzer-column'; - - for (let j = 0; j < 6; j++) { - let hours = h + ':00'; - - h++; - - let data_column = document.createElement('div'); - - data_column.className = 'analyzer-data-column'; - - if (data[current_date] && data[current_date][hours]) { - for (let k in data[current_date][hours]) { - let block = document.createElement('div'); - - block.className = 'analyzer-data'; - - let height = data[current_date][hours][k] * 100 / 60; - - block.title = k; - block.style.height = height + '%'; - - if (k === all_data_sort[0][0]) { - block.className += ' first'; - } else if (k === all_data_sort[1][0]) { - block.className += ' second'; - } else if (k === all_data_sort[2][0]) { - block.className += ' third'; - } - - data_column.appendChild(block); - } - } - - column.appendChild(data_column); - } - - chart.appendChild(column); - } - - - for (let i = 0; i < 3; i++) { - if (all_data_sort[i]) { - let cont = document.createElement('div'), - label = document.createElement('div'), - value = document.createElement('div'); - - label.className = 'label'; - - label.innerText = all_data_sort[i][0]; - value.innerText = Math.floor(all_data_sort[i][1] / 60) + 'h ' + (all_data_sort[i][1] - Math.floor(all_data_sort[i][1] / 60) * 60) + 'm'; - - cont.appendChild(label); - cont.appendChild(value); - bottom_text_container.appendChild(cont); - } - } - - container.appendChild(all_time); - container.appendChild(chart); - this.appendChild(top_text_container); - top_text_container.appendChild(watch_time); - top_text_container.appendChild(today_at); - container.appendChild(bottom_text_container); - this.appendChild(container); - } - } -}; - - -/*------------------------------------------------------------------------------ -3.0 INITIALIZATION -------------------------------------------------------------------------------*/ - -function themeChange(event) { - if (event.target.checked) { - let themes = document.querySelectorAll('.satus-switch > input:checked:not([data-storage-key="red_popup_theme"])'); - - for (let i = 0, l = themes.length; i < l; i++) { - if (themes[i] !== event.target) { - themes[i].click(); - } - } - } - - if (satus.storage.get('default_dark_theme') === true) { - document.documentElement.setAttribute('theme', 'dark'); - } else if (satus.storage.get('night_theme') === true) { - document.documentElement.setAttribute('theme', 'night'); - } else if (satus.storage.get('dawn_theme') === true) { - document.documentElement.setAttribute('theme', 'dawn'); - } else if (satus.storage.get('sunset_theme') === true) { - document.documentElement.setAttribute('theme', 'sunset'); - } else if (satus.storage.get('desert_theme') === true) { - document.documentElement.setAttribute('theme', 'desert'); - } else if (satus.storage.get('plain_theme') === true) { - document.documentElement.setAttribute('theme', 'plain'); - } else if (satus.storage.get('black_theme') === true) { - document.documentElement.setAttribute('theme', 'black'); - } else { - document.documentElement.removeAttribute('theme'); - } -} - -satus.storage.import(function() { - for (var key in satus.storage.data) { - document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), items[key]); - } - - if (satus.isset(satus.storage.get('red_popup_theme')) === false || satus.storage.get('red_popup_theme') === true) { - document.documentElement.setAttribute('popup-theme', 'red'); - } - - if (satus.storage.get('default_dark_theme') === true) { - document.documentElement.setAttribute('theme', 'dark'); - } - - if (satus.storage.get('night_theme') === true) { - document.documentElement.setAttribute('theme', 'night'); - } - - if (satus.storage.get('dawn_theme') === true) { - document.documentElement.setAttribute('theme', 'dawn'); - } - - if (satus.storage.get('sunset_theme') === true) { - document.documentElement.setAttribute('theme', 'sunset'); - } - - if (satus.storage.get('desert_theme') === true) { - document.documentElement.setAttribute('theme', 'desert'); - } - - if (satus.storage.get('plain_theme') === true) { - document.documentElement.setAttribute('theme', 'plain'); - } - - if (satus.storage.get('black_theme') === true) { - document.documentElement.setAttribute('theme', 'black'); - } - - satus.locale.import(satus.storage.get('language'), function() { - satus.modules.updateStorageKeys(Menu, function() { - satus.render(Menu, document.body); - }); - }); -}); - -chrome.storage.onChanged.addListener(function(changes) { - for (var key in changes) { - document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), changes[key].newValue); - } -}); \ No newline at end of file diff --git a/3.120-pre/satus.css b/3.120-pre/satus.css deleted file mode 100644 index c740c65e7..000000000 --- a/3.120-pre/satus.css +++ /dev/null @@ -1,1397 +0,0 @@ - -/*-------------------------------------------------------------- ->>> BUTTON ---------------------------------------------------------------*/ - -.satus-button -{ - font-size: inherit; - - position: relative; - - display: flex; - - margin: 0; - - cursor: pointer; - - color: inherit; - border: none; - outline: none; - background-color: var(--satus-theme-button); - - -webkit-tap-highlight-color: transparent; - align-items: center; - -webkit-appearance: none; -} - -.satus-button::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - - opacity: 0; - background-color: var(--satus-theme-ripple); -} - -.satus-button:focus::before, -.satus-button:hover::before -{ - opacity: 1; -} - -.satus-button__icon -{ - width: 24px; - height: 24px; -} - -.satus-button svg -{ - width: 100%; - - color: inherit; - - fill: var(--satus-theme-primary); -} - -.satus-button__icon + .satus-button__label -{ - margin-left: 8px; -} - -/*-------------------------------------------------------------- ->>> COLOR PICKER ---------------------------------------------------------------*/ - -.satus-color-picker -{ - font-size: inherit; - - position: relative; - - display: flex; - - box-sizing: border-box; - margin: 0; - - cursor: pointer; - - color: inherit; - border: none; - outline: none; - background-color: var(--satus-theme-button); - - justify-content: space-between; - -webkit-tap-highlight-color: transparent; - align-items: center; - -webkit-appearance: none; -} - -.satus-color-picker__value -{ - width: 24px; - height: 24px; - - border-radius: 50%; -} - -.satus-dialog--color-picker .satus-scrollbar__content -{ - display: flex; - flex-direction: column; - - align-items: center; -} - -.satus-dialog--color-picker .satus-button -{ - box-sizing: unset; - width: 24px; - height: 24px; - margin: 0 0 8px; - padding: 8px; - - border-radius: 50%; -} - -.satus-dialog--color-picker .satus-button:hover -{ - background-color: var(--satus-theme-ripple); -} - -.satus-dialog--color-picker .satus-button::before -{ - content: unset; -} - -.satus-dialog--color-picker .satus-button svg -{ - fill: transparent; - stroke: var(--satus-theme-primary); -} - -.satus-dialog--color-picker canvas -{ - width: 200px; - height: 200px; - margin: 0 0 16px; -} - -/*-------------------------------------------------------------- ->>> DIALOG ---------------------------------------------------------------*/ - -.satus-dialog -{ - position: absolute; - z-index: 100; - top: 0; - left: 0; - - display: flex; - - width: 100%; - height: 100vh; - - justify-content: center; - align-items: center; -} - -.satus-dialog__scrim -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - animation: fadeIn 150ms linear forwards; - - opacity: 0; - background: rgba(25,25,25,.2); - - fill: var(--satus-theme-dialog-text); - backdrop-filter: blur(8px); -} - -.satus-dialog__surface -{ - font-size: 14px; - - display: flex; - flex-direction: column; - - width: 95%; - min-width: 240px; - max-width: 560px; - max-height: 80%; - padding: 8px 0; - - transform: scale(.8); - animation: zoomIn 150ms linear forwards; - animation-delay: 20ms; - - opacity: 0; - color: var(--satus-theme-dialog-text); - border-radius: 6px; - background-color: var(--satus-theme-dialog); - box-shadow: inset 0 -1px 1px 1px rgba(0,0,0,.1), 0 2px 6px rgba(0, 0, 0, .15); -} - -.satus-dialog--closing .satus-dialog__scrim -{ - animation: fadeOut 70ms linear forwards; -} - -.satus-dialog--closing .satus-dialog__surface -{ - animation: zoomOut 70ms linear forwards; -} - -@keyframes fadeIn -{ - from - { - opacity: 0; - } - to - { - opacity: 1; - } -} - -@keyframes fadeOut -{ - from - { - opacity: 1; - } - to - { - opacity: 0; - } -} - -@keyframes zoomIn -{ - from - { - transform: scale(.8); - - opacity: 0; - } - to - { - transform: scale(1); - - opacity: 1; - } -} - -@keyframes zoomOut -{ - from - { - transform: scale(1); - - opacity: 1; - } - to - { - transform: scale(.8); - - opacity: 0; - } -} - -/*-------------------------------------------------------------- ->>> FOLDER ---------------------------------------------------------------*/ - -.satus-folder -{ - text-align: left -} - -/*-------------------------------------------------------------- ->>> HEADER ---------------------------------------------------------------*/ - -.satus-header -{ - position: relative; - z-index: 1; - - display: flex; - - box-sizing: border-box; - width: 100%; - min-height: 58px; - padding: 0 8px; - - color: var(--satus-theme-header-text); - background-color: var(--satus-theme-header); - box-shadow: 0 0 3px rgba(0,0,0,.1); - - fill: var(--satus-theme-header-text); -} - -.satus-header .satus-text--title -{ - font-size: 15px; - font-weight: 400; -} - -/*-------------------------------------------------------------- ->>> LIST ---------------------------------------------------------------*/ - -.satus-list--compact, -.satus-list--compact li -{ - margin: 0; - padding: 0; - - list-style: none; -} - -/*----------------------------------------------------------------------------- ->>> MAIN -------------------------------------------------------------------------------- -1.0 General -2.0 Animations - 2.1 Opening - 2.2 Closing ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 General ------------------------------------------------------------------------------*/ - -.satus-main -{ - position: relative; - - overflow: hidden; - - width: 100%; - height: 100%; - - color: var(--satus-theme-main-text); - background-color: var(--satus-theme-main); - - fill: var(--satus-theme-main-text); -} - -.satus-main__container -{ - position: absolute; - top: 0; - left: 0; - - overflow: auto; - - box-sizing: border-box; - width: 100%; - height: 100%; - - transition: 250ms; - - background-color: var(--satus-theme-main); - - will-change: transform; -} - - -/*----------------------------------------------------------------------------- -2.0 Animations ------------------------------------------------------------------------------*/ - -.satus-main__container--fade-in-left -{ - animation: fadeInLeft 250ms; -} - -.satus-main__container--fade-in-right -{ - animation: fadeInRight 250ms; -} - -.satus-main__container--fade-out-left -{ - animation: fadeOutLeft 250ms; -} - -.satus-main__container--fade-out-right -{ - animation: fadeOutRight 250ms; -} - -@keyframes fadeInLeft -{ - from - { - transform: translateX(-10%); - - opacity: 0; - } - to - { - transform: translateX(0%); - - opacity: 1; - } -} - -@keyframes fadeInRight -{ - from - { - transform: translateX(10%); - - opacity: 0; - } - to - { - transform: translateX(0%); - - opacity: 1; - } -} - -@keyframes fadeOutLeft -{ - from - { - transform: translateX(0%); - - opacity: 1; - } - to - { - transform: translateX(-10%); - - opacity: 0; - } -} - -@keyframes fadeOutRight -{ - from - { - transform: translateX(0%); - - opacity: 1; - } - to - { - transform: translateX(10%); - - opacity: 0; - } -} - -.satus-scrollbar -{ - position: relative; - - overflow: hidden; - - width: 100%; - height: 100%; -} - -.satus-scrollbar__wrapper -{ - overflow-y: scroll; - - width: 150%; - height: 100%; -} - -.satus-scrollbar__thumb -{ - position: absolute; - z-index: 999; - top: 0; - right: 0; - - min-height: 32px; - padding: 0 2px; - - transition: background-color 200ms, opacity 300ms; - - opacity: 0; -} - -.satus-scrollbar__thumb::after -{ - display: block; - - width: 3px; - height: 100%; - - content: ''; - - background-color: var(--satus-theme-scrollbar); -} - -.satus-scrollbar__thumb:hover::after -{ - background-color: var(--satus-theme-scrollbar-focus); -} - -.satus-scrollbar.active .satus-scrollbar__thumb, -.satus-scrollbar__thumb:hover -{ - transition: background-color 200ms, opacity 100ms; - - opacity: 1; -} - -/*-------------------------------------------------------------- ->>> SECTION ---------------------------------------------------------------*/ - -.satus-section -{ - display: inline-flex; - - box-sizing: border-box; - - background-color: var(--satus-theme-section); - - align-items: center; - flex: 1; -} - -/*-------------------------------------------------------------- ->>> SELECT ---------------------------------------------------------------*/ - -.satus-select -{ - justify-content: space-between; -} - -.satus-select__value -{ - font-size: 12px; - - text-align: right; - - opacity: .7; -} - - -.satus-dialog--select-component .satus-dialog__surface -{ - position: absolute; - - max-width: unset; - - transform: unset; - animation: unset; - - opacity: 1; -} - -.satus-dialog--select-component .satus-section -{ - top: 48px; - - flex-direction: column; - - transform: translateY(-16px); - animation: listIn 50ms linear forwards; - animation-delay: 20ms; - - opacity: .5; -} - -.satus-dialog--select-component .satus-button -{ - width: 100%; - height: 48px; - padding: 0 16px; -} - -@keyframes listIn -{ - from - { - transform: translateY(-16px); - - opacity: .5; - } - to - { - transform: translateY(0); - - opacity: 1; - } -} - -.satus-shortcut -{ - position: relative; - - display: flex; - - box-sizing: border-box; - width: 100%; - height: 48px; - min-height: 48px; - padding: 0 16px; - - cursor: pointer; - - justify-content: space-between; - align-items: center; -} - -.satus-shortcut:hover -{ - background-color: var(--satus-theme-ripple); -} - -.satus-shortcut > .label -{ - margin: 0 0 4px 0; -} - -.satus-shortcut > .value -{ - font-size: 13px; - - opacity: .5; -} - -.satus-shortcut-dialog-label -{ - font-size: 16px; - font-weight: 500; - - box-sizing: border-box; - width: 100%; - margin: 4px 0 10px; - padding: 0 16px; -} - -.satus-shortcut__canvas -{ - display: flex; - - box-sizing: border-box; - width: 100%; - height: 68px; - padding: 16px; - - background: #dedede; - - align-items: center; -} - -.satus-shortcut__key -{ - display: flex; - - box-sizing: border-box; - min-width: 32px; - height: 32px; - padding: 4px 8px; - - border-radius: 4px; - background: #fff; - box-shadow: 0 1px 3px rgba(0,0,0,.15), inset 0 -3px 0 rgba(0,0,0,.1); - - align-items: center; - justify-content: center; -} - -.satus-shortcut__plus -{ - position: relative; - - width: 12px; - height: 12px; - margin: 8px; -} - -.satus-shortcut__plus::before -{ - position: absolute; - top: 0; - left: 5px; - - width: 2px; - height: 12px; - - content: ''; - - background-color: #aaa; -} - -.satus-shortcut__plus::after -{ - position: absolute; - top: 5px; - left: 0; - - width: 12px; - height: 2px; - - content: ''; - - background-color: #aaa; -} - -.satus-shortcut__mouse -{ - position: relative; - - display: flex; - - width: 28px; - height: 36px; - - border-radius: 50%; - border-top-left-radius: 12px; - border-top-right-radius: 12px; - background: #fff; - box-shadow: 0 1px 3px rgba(0,0,0,.15), inset 0 -3px 0 rgba(0,0,0,.1); -} - -.satus-shortcut__mouse > div -{ - position: absolute; - top: 0; - left: 13px; - - width: 2px; - height: 11px; - - border-radius: 2px; - background: #ccc; -} - -.satus-shortcut__mouse::before -{ - position: absolute; - top: -4px; - left: 21px; - - width: 2px; - height: 18px; - - content: ''; - - background: #f96754; -} - -.satus-shortcut__mouse.false::after -{ - position: absolute; - top: -12px; - left: 17px; - - width: 0; - height: 0; - - content: ''; - - border-right: 5px solid transparent; - border-bottom: 8px solid #f96754; - border-left: 5px solid transparent; -} - -.satus-shortcut__mouse.true::after -{ - position: absolute; - top: 14px; - left: 17px; - - width: 0; - height: 0; - - content: ''; - - border-top: 8px solid #f96754; - border-right: 5px solid transparent; - border-left: 5px solid transparent; -} - -.satus-section_shortcut -{ - width: 100%; - margin: 8px 0 0; - - justify-content: flex-end; -} - -.satus-button_shortcut -{ - font-weight: 500; - - overflow: hidden; - - height: 28px; - min-height: 28px; - margin-right: 2px; - padding: 4px 8px; - - text-transform: uppercase; - - color: #f96754; - border-radius: 4px; -} - -/*-------------------------------------------------------------- ->>> SLIDER ---------------------------------------------------------------*/ - -.satus-slider -{ - position: relative; - - display: flex; - flex-direction: column; - - box-sizing: border-box; - width: 100%; - min-height: 64px; - padding: 0 16px; - - -webkit-user-select: none; - -moz-user-select: -moz-none; - user-select: none; - - outline: none; - - align-items: flex-start; - justify-content: center; -} - -.satus-slider::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - - opacity: 0; - background-color: var(--satus-theme-button); -} - -.satus-slider:hover::before -{ - opacity: 1; -} - - -/* LABEL */ - -.satus-slider__label -{ - cursor: default; -} - - -.satus-slider__range -{ - position: absolute; - z-index: 1; - top: 0; - left: 0; - - box-sizing: border-box; - width: 100%; - height: 100%; - margin: 0; - padding: 0; - - opacity: 0; -} - - -/* TRACK */ - -.satus-slider__container -{ - position: relative; - - width: 100%; - height: 12px; - margin: 8px 0 0; -} - -.satus-slider__track-container -{ - position: absolute; - top: calc(50% - 1px); - - width: 100%; - height: 2px; - - pointer-events: none; -} - -.satus-slider__track-container::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 2px; - - content: ''; - - opacity: .26; - background-color: var(--satus-theme-primary); -} - -.satus-slider__track -{ - position: relative; - - width: 0; - height: 100%; - - background-color: var(--satus-theme-primary); - - will-change: width; -} - -.satus-slider:not(.satus-slider--dragging) .satus-slider__track -{ - transition: width 100ms ease-out; -} - -.satus-slider__thumb -{ - position: absolute; - top: -5px; - right: -12px; - - width: 12px; - height: 12px; - - border-radius: 50%; - background-color: var(--satus-theme-primary); - box-shadow: 0 1px 5px rgba(0, 0, 0, .15); -} - -.satus-slider .satus-slider__thumb::before -{ - font-size: 13px; - - position: absolute; - top: -34px; - left: 50%; - - visibility: hidden; - - box-sizing: border-box; - min-width: 28px; - padding: 4px 4px; - - content: attr(data-value); - transform: translateX(-50%); - text-align: center; - pointer-events: none; - - color: #fff; - border-radius: 4px; - background: var(--satus-theme-tooltip); -} - -.satus-slider:hover .satus-slider__thumb::before, -.satus-slider__range:focus .satus-slider__container .satus-slider__thumb::before -{ - visibility: visible; -} - -.satus-slider__ring -{ - position: absolute; - top: -11px; - right: -18px; - - width: 24px; - height: 24px; - - transition: 100ms; - transform: scale(0); - - opacity: 0; - border-radius: 50%; - background-color: var(--satus-theme-primary); -} - -.satus-slider__range:focus + .satus-slider__container .satus-slider__ring -{ - transform: scale(1); - - opacity: .25; -} - -/*-------------------------------------------------------------- ->>> SWITCH ---------------------------------------------------------------*/ - -.satus-switch -{ - position: relative; - - display: flex; - - box-sizing: border-box; - width: 100%; - height: 48px; - padding: 0 16px; - - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: -moz-none; - user-select: none; - - background-color: transparent; - - align-items: center; - justify-content: space-between; -} - -.satus-switch:hover -{ - background-color: var(--satus-theme-ripple); -} - -.satus-switch__input -{ - position: absolute; - z-index: 1; - top: 0; - left: 0; - - width: 100%; - height: 100%; - margin: 0; - padding: 0; - - opacity: 0; - outline: none; - - -webkit-appearance: none; -} - - -/* LABEL */ - -.satus-switch__label -{ - padding: 0 16px 0 0; -} - - -/* TRACK*/ - -.satus-switch__track -{ - position: relative; - - width: 32px; - min-width: 32px; - height: 18px; - - border-radius: 18px; - background: #bdbdbd; -} - -.satus-switch__track::before -{ - position: absolute; - top: -7px; - left: -7px; - - width: 32px; - height: 32px; - - content: ''; - transition: left .1s cubic-bezier(.4, 0, .2, 1), transform 200ms, background-color 200ms; - transform: scale(0); - - opacity: 0; - border-radius: 50%; - background-color: #000; - - will-change: left, transform, background-color; -} - -.satus-switch__input:checked + .satus-switch__track::before -{ - left: 8px; - - background-color: var(--satus-theme-primary, #54d2a3); -} - -.satus-switch__input:focus + .satus-switch__track::before -{ - transform: scale(1); - - opacity: .08; -} - -.satus-switch__input:checked:focus + .satus-switch__track::before -{ - opacity: .25; -} - -.satus-switch__track::after -{ - position: absolute; - - width: 14px; - height: 14px; - - content: ''; - transition: transform .1s cubic-bezier(.4, 0, .2, 1); - transform: translate(2px, 2px); - - border-radius: 50%; - background-color: #fff; - - will-change: transform; -} - -.satus-switch__input:checked + .satus-switch__track -{ - background: var(--satus-theme-primary, #54d2a3); -} - -.satus-switch__input:checked + .satus-switch__track::after -{ - transform: translate(16px, 2px); -} - -/*-------------------------------------------------------------- ->>> TABLE ---------------------------------------------------------------*/ - -.satus-table -{ - font-size: .875rem; - - position: relative; - - overflow: hidden; - display: flex; - flex-direction: column; - box-sizing: border-box; - - border: 1px solid #ececec; - border-radius: 6px; -} - -.satus-table__head -{ - position: relative; - z-index: 1; - - display: flex; - - box-sizing: border-box; - width: 100%; - height: 44px; - padding: 0 8px; - - background: #fff; - box-shadow: 0 2px 4px rgba(0, 0, 0, .1); -} - -.satus-table__head > div -{ - font-weight: 600; - - display: inline-flex; - - box-sizing: border-box; - padding: 0 8px 0 0; - - opacity: .7; - - flex-shrink: 0; - align-items: center; -} - -.satus-table__head > div:last-child -{ - padding: 0; -} - -.satus-table__head > div:hover -{ - cursor: pointer; - - opacity: 1; -} - -.satus-table__head > div[data-sorting=false]:hover -{ - cursor: default; -} - -.satus-table__head > div > span -{ - position: relative; -} - -.satus-table__head > div[data-sorting=asc] > span::after -{ - position: absolute; - top: calc(50% - 2px); - right: -14px; - - width: 0; - height: 0; - - content: ''; - - border-right: 4px solid transparent; - border-bottom: 5px solid currentColor; - border-left: 4px solid transparent; -} - -.satus-table__head > div[data-sorting=desc] > span::after -{ - position: absolute; - top: calc(50% - 2px); - right: -13px; - - width: 0; - height: 0; - - content: ''; - - border-top: 5px solid currentColor; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} - -.satus-table__body -{ - overflow: hidden; - flex: 1; - - width: 100%; - height: calc(100% - 48px); - - background: #fff; -} - -.satus-table__row -{ - display: flex; - - padding: 0 8px; - - box-sizing: border-box; - - border-bottom: 1px solid rgba(0, 0, 0, 0.1); -} - -.satus-table__row:nth-child(2n) -{ - background: rgba(0,0,0,.03) -} - -.satus-table__cell -{ - overflow: hidden; - - box-sizing: border-box; - padding: 8px 8px 8px 0; - - white-space: nowrap; - word-wrap: break-word; - -webkit-hyphens: auto; - -moz-hyphens: auto; - hyphens: auto; - - overflow-wrap: break-word; - flex-shrink: 0; - - text-overflow: ellipsis; -} - -.satus-table__cell:last-child -{ - padding-right: 0; -} - -.satus-table__cell input -{ - width: 100%; - margin: 5px 0; - border: 1px solid #d2d2d2; - box-sizing: border-box; - padding: 1px 2px; - border-radius: 4px; - height: calc(100% - 10px); - outline: none -} - - - -.satus-table__paging > button -{ - min-width: 32px; - height: 32px; - padding: 0 8px; - - cursor: pointer; - - color: var(--satus-theme-on-surface, #555); - border: none; - background: transparent; -} - -.satus-table__paging > button.active -{ - color: #2979ff; -} - -/*-------------------------------------------------------------- ->>> TEXT ---------------------------------------------------------------*/ - -.satus-text -{ - margin: 0; - - color: inherit; - border: none; -} - -/*-------------------------------------------------------------- ->>> TEXT ---------------------------------------------------------------*/ - -.satus-text-field -{ - font: inherit; - - box-sizing: border-box; - width: 100%; - margin: 0; - padding: 0; - padding: 0 8px; - - color: inherit; - border: none; - outline: none; - background: unset; -} - -/*----------------------------------------------------------------------------- ->>> THEMES -------------------------------------------------------------------------------- -1.0 Default ------------------------------------------------------------------------------*/ - -html -{ - --satus-theme-primary: #f6b465; - - --satus-theme-dialog: #f7f7f6; - --satus-theme-dialog-text: #777; - - --satus-theme-header: #fff; - --satus-theme-header-text: #777; - - --satus-theme-main: #f7f7f6; - --satus-theme-main-text: #777; - - --satus-theme-section: #fff; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(0, 0, 0, .2); - --satus-theme-scrollbar-focus: rgba(0, 0, 0, .4); - - --satus-theme-tooltip: rgba(0, 0, 0, .4); - - --satus-theme-ripple: rgba(0, 0, 0, .04); -} \ No newline at end of file diff --git a/3.120-pre/satus.js b/3.120-pre/satus.js deleted file mode 100644 index 0ade2fb0e..000000000 --- a/3.120-pre/satus.js +++ /dev/null @@ -1,2183 +0,0 @@ - -/*-------------------------------------------------------------- ->>> TABLE OF CONTENTS: ----------------------------------------------------------------- -# Events -# Render -# Camelize -# Animation duration ---------------------------------------------------------------*/ - -var satus = {}; - - -/*-------------------------------------------------------------- -# EVENTS ---------------------------------------------------------------*/ - -satus.events = {}; - -satus.on = function(event, handler) { - if (!this.isset(this.events[event])) { - this.events[event] = []; - } - - this.events[event].push(handler); -}; - - -/*-------------------------------------------------------------- -# COMPONENTS ---------------------------------------------------------------*/ - -satus.components = {}; - - -/*-------------------------------------------------------------- -# MODULES ---------------------------------------------------------------*/ - -satus.modules = {}; - - -/*-------------------------------------------------------------- -# ISSET ---------------------------------------------------------------*/ - -satus.isset = function(variable) { - if (typeof variable === 'undefined' || variable === null) { - return false; - } - - return true; -}; - - -/*-------------------------------------------------------------- -# CAMELIZE ---------------------------------------------------------------*/ - -satus.camelize = function(string) { - return string.replace(/-[a-z]/g, function(match) { - return match[1].toUpperCase(); - }); -}; - - -/*-------------------------------------------------------------- -# ANIMATION DURATION ---------------------------------------------------------------*/ - -satus.getAnimationDuration = function(element) { - return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; -}; -/*-------------------------------------------------------------- ->>> CHROMIUM STORAGE ----------------------------------------------------------------- -1.0 Get -2.0 Set -3.0 Import -4.0 Clear ---------------------------------------------------------------*/ - -satus.storage = {}; - -/*-------------------------------------------------------------- -# GET ---------------------------------------------------------------*/ - -satus.storage.get = function(name) { - var target = satus.storage; - - name = name.split('/').filter(function(value) { - return value != ''; - }); - - for (var i = 0, l = name.length; i < l; i++) { - if (satus.isset(target[name[i]])) { - target = target[name[i]]; - } else { - return undefined; - } - } - - return target; -}; - - -/*-------------------------------------------------------------- -# SET ---------------------------------------------------------------*/ - -satus.storage.set = function(name, value) { - var items = {}, - target = satus.storage; - - if (!satus.isset(name)) { - return false; - } - - name = name.split('/').filter(function(value) { - return value != ''; - }); - - for (var i = 0, l = name.length; i < l; i++) { - var item = name[i]; - - if (i < l - 1) { - - if (target[item]) { - target = target[item]; - } else { - target[item] = {}; - - target = target[item]; - } - } else { - target[item] = value; - } - } - - for (var key in satus.storage) { - if (typeof satus.storage[key] !== 'function') { - items[key] = satus.storage[key]; - } - } - - chrome.storage.local.set(items); -}; - - -/*-------------------------------------------------------------- -# IMPORT ---------------------------------------------------------------*/ - -satus.storage.import = function(callback) { - chrome.storage.local.get(function(items) { - for (var key in items) { - satus.storage[key] = items[key]; - } - - if (callback) { - callback(); - } - }); -}; - - -/*-------------------------------------------------------------- -# CLEAR ---------------------------------------------------------------*/ - -satus.storage.clear = function() { - chrome.storage.local.clear(); - - for (var key in satus.storage) { - if (typeof satus.storage[key] !== 'function') { - delete satus.storage[key]; - } - } -}; - -/*--------------------------------------------------------------- ->>> LOCALE ------------------------------------------------------------------ -# Get message -# Import locale ----------------------------------------------------------------*/ - -satus.locale = { - messages: {} -}; - - -/*--------------------------------------------------------------- -# GET MESSAGE ----------------------------------------------------------------*/ - -satus.locale.getMessage = function(string) { - return this.messages[string] || string; -}; - -satus.locale.get = satus.locale.getMessage; - - -/*--------------------------------------------------------------- -# IMPORT LOCALE ----------------------------------------------------------------*/ - -satus.locale.import = function(language, callback) { - var xhr = new XMLHttpRequest(); - - if (typeof language === 'function') { - var callback = language; - } - - if (typeof language !== 'string') { - var language = chrome.i18n.getUILanguage(); - } - - xhr.onload = function() { - try { - var object = JSON.parse(this.responseText); - - for (var key in object) { - satus.locale.messages[key] = object[key].message; - } - - callback(language); - } catch (err) { - function listener(request) { - if (request !== null && typeof request === 'object') { - if (request.name === 'translation_response') { - var object = JSON.parse(request.value); - - chrome.runtime.onMessage.removeListener(listener); - - for (var key in object) { - satus.locale.messages[key] = object[key].message; - } - - callback(language); - } - } - } - - chrome.runtime.onMessage.addListener(listener); - - chrome.runtime.sendMessage({ - name: 'translation_request', - path: '_locales/' + language + '/messages.json' - }); - } - }; - - xhr.onerror = function() { - if (language === 'en') { - callback(); - } else { - satus.locale.import('en', callback); - } - }; - - xhr.open('GET', '_locales/' + language + '/messages.json', true); - xhr.send(); -}; - -/*-------------------------------------------------------------- ->>> RENDER ---------------------------------------------------------------*/ - -satus.render = function(element, container, callback) { - function convert(object) { - if (object && object.type) { - var type = satus.camelize(object.type), - component = satus.components[type](object), - excluded_properties = ['type', 'label', 'class', 'title', 'storage']; - - function applyProperties(object, target) { - for (var key in object) { - if (satus.isset(object[key]) && typeof object[key] === 'object' && !object[key].type) { - if (typeof target[key] !== 'object') { - target[key] = {}; - } - - applyProperties(object[key], target[key]); - } else if (excluded_properties.indexOf(key) === -1) { - target[key] = object[key]; - } - } - } - - applyProperties(object, component); - - component.classList.add('satus-' + object.type); - - if (object.class) { - var class_list = object.class.split(' '); - - for (var i = 0, l = class_list.length; i < l; i++) { - component.classList.add(class_list[i]); - } - } - - if (object.before) { - var component_before = document.createElement('span'); - - component_before.innerHTML = object.before; - - for (var i = component_before.children.length - 1; i > -1; i--) { - component.insertBefore(component_before.children[i], component.firstChild); - } - } - - if (object.after) { - var component_after = document.createElement('span'); - - component_after.innerHTML = object.after; - - for (var i = component_after.children.length - 1; i > -1; i--) { - component.appendChild(component_after.children[i]); - } - } - - (container || document.body).appendChild(component); - - if (typeof component.onClickRender === 'object') { - component.addEventListener('click', function() { - satus.render(component.onClickRender); - }); - } - - if (satus.isset(satus.events.render)) { - for (var i = 0, l = satus.events.render.length; i < l; i++) { - satus.events.render[i](component, object); - } - } - - if (typeof component.onrender === 'function') { - component.onrender(object); - } - - if (callback) { - callback(); - } - } - } - - if (element.type) { - convert(element); - } else { - for (var key in element) { - convert(element[key]); - } - } -}; -/*-------------------------------------------------------------- -# CLONE NODE STYLES ---------------------------------------------------------------*/ - -satus.cloneNodeStyles = function(origin, target) { - target.style.cssText = window.getComputedStyle(origin, '').cssText; - - for (var i = 0, l = origin.children.length; i < l; i++) { - satus.cloneNodeStyles(origin.children[i], target.children[i]); - } -}; -/*----------------------------------------------------------------------------- ->>> «SEARCH» MODULE ------------------------------------------------------------------------------*/ - -satus.search = function(query, object, callback, categories) { - var threads = 0, - folder = '', - results = {}; - - function parse(items) { - threads++; - - for (var key in items) { - var item = items[key]; - - if (categories === true && item.type === 'folder' && folder !== item.label) { - folder = item.label; - } - - if (['switch', 'select', 'slider'].indexOf(item.type) !== -1 && key.indexOf(query) !== -1) { - if (categories === true) { - if (!results[folder]) { - results[folder] = {}; - } - - results[folder][key] = item; - } else { - results[key] = item; - } - } - - if (typeof item === 'object') { - parse(item); - } - } - - threads--; - - if (threads === 0) { - callback(results); - } - } - - parse(object); -}; - -/*-------------------------------------------------------------- ->>> STORAGE KEYS ---------------------------------------------------------------*/ - -satus.modules.updateStorageKeys = function(object, callback) { - var threads = 0; - - function parse(items) { - threads++; - - for (var key in items) { - var item = items[key]; - - - if (item.type) { - item.storage_key = key; - } - - if (typeof item === 'object') { - parse(item); - } - } - - threads--; - - if (threads === 0) { - callback(); - } - } - - parse(object); -}; -/*----------------------------------------------------------------------------- ->>> «USER» MODULE -------------------------------------------------------------------------------- -1.0 Variables -2.0 Software - 2.1 OS - 2.2.1 Name - 2.2.2 Type - 2.2 Browser - 2.2.1 Name - 2.2.2 Version - 2.2.3 Platform - 2.2.4 Languages - 2.2.5 Cookies - 2.2.6 Flash - 2.2.8 Video formats - 2.2.9 Audio formats - 2.2.10 WebGL -3.0 Hardware - 3.1 Screen - 3.2 RAM - 3.3 GPU - 3.4 Cores - 3.5 Touch - 3.6 Connection -4.0 Clearing ------------------------------------------------------------------------------*/ - -satus.modules.user = function() { - /*----------------------------------------------------------------------------- - 1.0 VARIABLES - -----------------------------------------------------------------------------*/ - - var user_agent = navigator.userAgent, - random_cookie = 'ta{t`nX6cMXK,Wsc', - video = document.createElement('video'), - video_formats = { - ogg: 'video/ogg; codecs="theora"', - h264: 'video/mp4; codecs="avc1.42E01E"', - webm: 'video/webm; codecs="vp8, vorbis"', - vp9: 'video/webm; codecs="vp9"', - hls: 'application/x-mpegURL; codecs="avc1.42E01E"' - }, - audio = document.createElement('audio'), - audio_formats = { - mp3: 'audio/mpeg', - mp4: 'audio/mp4', - aif: 'audio/x-aiff' - }, - cvs = document.createElement('canvas'), - ctx = cvs.getContext('webgl'), - data = { - browser: { - audio: null, - cookies: null, - flash: null, - java: null, - languages: null, - name: null, - platform: null, - version: null, - video: null, - webgl: null - }, - os: { - name: null, - type: null - }, - device: { - connection: { - type: null, - speed: null - }, - cores: null, - gpu: null, - max_touch_points: null, - ram: null, - screen: null, - touch: null - } - }; - - - /*----------------------------------------------------------------------------- - 2.0 SOFTWARE - -----------------------------------------------------------------------------*/ - - /*----------------------------------------------------------------------------- - 2.1.0 OS - -----------------------------------------------------------------------------*/ - - /*----------------------------------------------------------------------------- - 2.1.1 NAME - -----------------------------------------------------------------------------*/ - - if (navigator.appVersion.indexOf('Win') !== -1) { - if (navigator.appVersion.match(/(Windows 10.0|Windows NT 10.0)/)) { - data.os.name = 'Windows 10'; - } else if (navigator.appVersion.match(/(Windows 8.1|Windows NT 6.3)/)) { - data.os.name = 'Windows 8.1'; - } else if (navigator.appVersion.match(/(Windows 8|Windows NT 6.2)/)) { - data.os.name = 'Windows 8'; - } else if (navigator.appVersion.match(/(Windows 7|Windows NT 6.1)/)) { - data.os.name = 'Windows 7'; - } else if (navigator.appVersion.match(/(Windows NT 6.0)/)) { - data.os.name = 'Windows Vista'; - } else if (navigator.appVersion.match(/(Windows NT 5.1|Windows XP)/)) { - data.os.name = 'Windows XP'; - } else { - data.os.name = 'Windows'; - } - } else if (navigator.appVersion.indexOf('(iPhone|iPad|iPod)') !== -1) { - data.os.name = 'iOS'; - } else if (navigator.appVersion.indexOf('Mac') !== -1) { - data.os.name = 'macOS'; - } else if (navigator.appVersion.indexOf('Android') !== -1) { - data.os.name = 'Android'; - } else if (navigator.appVersion.indexOf('OpenBSD') !== -1) { - data.os.name = 'OpenBSD'; - } else if (navigator.appVersion.indexOf('SunOS') !== -1) { - data.os.name = 'SunOS'; - } else if (navigator.appVersion.indexOf('Linux') !== -1) { - data.os.name = 'Linux'; - } else if (navigator.appVersion.indexOf('X11') !== -1) { - data.os.name = 'UNIX'; - } - - /*----------------------------------------------------------------------------- - 2.1.2 TYPE - -----------------------------------------------------------------------------*/ - - if (navigator.appVersion.match(/(Win64|x64|x86_64|WOW64)/)) { - data.os.type = '64-bit'; - } else { - data.os.type = '32-bit'; - } - - - /*----------------------------------------------------------------------------- - 2.2.0 BROWSER - -----------------------------------------------------------------------------*/ - - /*----------------------------------------------------------------------------- - 2.2.1 NAME - -----------------------------------------------------------------------------*/ - - if (user_agent.indexOf('Opera') !== -1) { - data.browser.name = 'Opera'; - } else if (user_agent.indexOf('Vivaldi') !== -1) { - data.browser.name = 'Vivaldi'; - } else if (user_agent.indexOf('Edge') !== -1) { - data.browser.name = 'Edge'; - } else if (user_agent.indexOf('Chrome') !== -1) { - data.browser.name = 'Chrome'; - } else if (user_agent.indexOf('Safari') !== -1) { - data.browser.name = 'Safari'; - } else if (user_agent.indexOf('Firefox') !== -1) { - data.browser.name = 'Firefox'; - } else if (user_agent.indexOf('MSIE') !== -1) { - data.browser.name = 'IE'; - } - - - /*----------------------------------------------------------------------------- - 2.2.2 VERSION - -----------------------------------------------------------------------------*/ - - var browser_version = user_agent.match(new RegExp(data.browser.name + '/([0-9.]+)')); - - if (browser_version[1]) { - data.browser.version = browser_version[1]; - } - - - /*----------------------------------------------------------------------------- - 2.2.3 PLATFORM - -----------------------------------------------------------------------------*/ - - data.browser.platform = navigator.platform || null; - - - /*----------------------------------------------------------------------------- - 2.2.4 LANGUAGES - -----------------------------------------------------------------------------*/ - - data.browser.languages = navigator.languages || null; - - - /*----------------------------------------------------------------------------- - 2.2.5 COOKIES - -----------------------------------------------------------------------------*/ - - if (document.cookie) { - document.cookie = random_cookie; - - if (document.cookie.indexOf(random_cookie) !== -1) { - data.browser.cookies = true; - } - } - - - /*----------------------------------------------------------------------------- - 2.2.6 FLASH - -----------------------------------------------------------------------------*/ - - try { - if (new ActiveXObject('ShockwaveFlash.ShockwaveFlash')) { - data.browser.flash = true; - } - } catch (e) { - if (navigator.mimeTypes['application/x-shockwave-flash']) { - data.browser.flash = true; - } - } - - - /*----------------------------------------------------------------------------- - 2.2.7 JAVA - -----------------------------------------------------------------------------*/ - - if (typeof navigator.javaEnabled === 'function' && navigator.javaEnabled()) { - data.browser.java = true; - } - - - /*----------------------------------------------------------------------------- - 2.2.8 VIDEO FORMATS - -----------------------------------------------------------------------------*/ - - if (typeof video.canPlayType === 'function') { - data.browser.video = {}; - - for (var i in video_formats) { - var can_play_type = video.canPlayType(video_formats[i]); - - if (can_play_type === '') { - data.browser.video[i] = false; - } else { - data.browser.video[i] = can_play_type; - } - } - } - - - /*----------------------------------------------------------------------------- - 2.2.9 AUDIO FORMATS - -----------------------------------------------------------------------------*/ - - if (typeof audio.canPlayType === 'function') { - data.browser.audio = {}; - - for (var i in audio_formats) { - var can_play_type = audio.canPlayType(audio_formats[i]); - - if (can_play_type == '') { - data.browser.audio[i] = false; - } else { - data.browser.audio[i] = can_play_type; - } - } - } - - - /*----------------------------------------------------------------------------- - 2.2.10 WEBGL - -----------------------------------------------------------------------------*/ - - if (ctx && ctx instanceof WebGLRenderingContext) { - data.browser.webgl = true; - } - - - /*----------------------------------------------------------------------------- - 3.0 HARDWARE - -----------------------------------------------------------------------------*/ - - /*----------------------------------------------------------------------------- - 3.1 SCREEN - -----------------------------------------------------------------------------*/ - - if (screen) { - data.device.screen = screen.width + 'x' + screen.height; - } - - - /*----------------------------------------------------------------------------- - 3.2 RAM - -----------------------------------------------------------------------------*/ - - if ('deviceMemory' in navigator) { - data.device.ram = navigator.deviceMemory + ' GB'; - } - - - /*----------------------------------------------------------------------------- - 3.3 GPU - -----------------------------------------------------------------------------*/ - - if ( - ctx && - ctx instanceof WebGLRenderingContext && - 'getParameter' in ctx && - 'getExtension' in ctx - ) { - var info = ctx.getExtension('WEBGL_debug_renderer_info'); - - if (info) { - data.device.gpu = ctx.getParameter(info.UNMASKED_RENDERER_WEBGL); - } - } - - - /*----------------------------------------------------------------------------- - 3.4 CORES - -----------------------------------------------------------------------------*/ - - if (navigator.hardwareConcurrency) { - data.device.cores = navigator.hardwareConcurrency; - } - - - /*----------------------------------------------------------------------------- - 3.5 TOUCH - -----------------------------------------------------------------------------*/ - - if ( - window.hasOwnProperty('ontouchstart') || - window.DocumentTouch && document instanceof window.DocumentTouch || - navigator.maxTouchPoints > 0 || - window.navigator.msMaxTouchPoints > 0 - ) { - data.device.touch = true; - data.device.max_touch_points = navigator.maxTouchPoints; - } - - - /*----------------------------------------------------------------------------- - 3.6 CONNECTION - -----------------------------------------------------------------------------*/ - - if (typeof navigator.connection === 'object') { - data.device.connection.type = navigator.connection.effectiveType || null; - - if (navigator.connection.downlink) { - data.device.connection.speed = navigator.connection.downlink + ' Mbps'; - } - } - - - /*----------------------------------------------------------------------------- - 4.0 CLEARING - -----------------------------------------------------------------------------*/ - - video.remove(); - audio.remove(); - cvs.remove(); - - - return data; -}; -satus.on('render', function(component, data) { - if (data.perspective === true) { - component.style.willChange = 'transform'; - component.style.transformStyle = 'preserve-3d'; - component.style.transition = '.4s'; - - component.addEventListener('mousemove', function(event) { - var bounding = component.getBoundingClientRect(), - dx = event.clientX - bounding.left - bounding.width / 2, - dy = event.clientY - bounding.top - bounding.height / 2; - - this.style.transform = 'perspective(440px) rotateX(' + dy * -1 + 'deg) rotateY(' + dx + 'deg) translateZ(0)'; - }); - - component.addEventListener('mouseout', function(event) { - this.style.transform = 'perspective(440px) rotateX(0deg) rotateY(0deg) translateZ(0)'; - }); - } -}); -/*-------------------------------------------------------------- ->>> BUTTON ---------------------------------------------------------------*/ - -satus.components.button = function(element) { - var component = document.createElement('button'); - - if (satus.isset(element.icon)) { - var component_icon = document.createElement('span'); - - component_icon.className = 'satus-button__icon'; - component_icon.innerHTML = element.icon; - - component.appendChild(component_icon); - } - - if (satus.isset(element.label)) { - var component_label = document.createElement('span'); - - component_label.className = 'satus-button__label'; - component_label.innerText = satus.locale.getMessage(element.label); - - component.appendChild(component_label); - } - - return component; -}; -/*-------------------------------------------------------------- ->>> COLOR PICKER ---------------------------------------------------------------*/ - -satus.components.colorPicker = function(element) { - var component = document.createElement('div'), - component_value = document.createElement('div'); - - element.class = 'satus-button'; - component_value.className = 'satus-color-picker__value'; - component_value.style.backgroundColor = satus.storage.get(element.storage_key) || element.value || ''; - - if (satus.isset(element.label)) { - var component_label = document.createElement('span'); - - component_label.className = 'satus-button__label'; - component_label.innerText = satus.locale.getMessage(element.label); - - component.appendChild(component_label); - } - - component.addEventListener('click', function() { - var component = document.createElement('div'), - component_canvas = document.createElement('canvas'), - close = document.createElement('button'), - ctx = component_canvas.getContext('2d'), - image = new Image(), - dialog = satus.components.dialog({}); - - close.className = 'satus-button'; - close.innerHTML = ''; - close.onclick = function() { - dialog.querySelector('.satus-dialog__scrim').click(); - }; - - dialog.className = 'satus-dialog satus-dialog--color-picker'; - - component_canvas.width = 200; - component_canvas.height = 200; - - function select(event) { - var coordinates = component_canvas.getBoundingClientRect(), - x = event.clientX - coordinates.left, - y = event.clientY - coordinates.top, - color = ctx.getImageData(x, y, 1, 1).data; - - component_value.style.backgroundColor = 'rgb(' + color[0] + ',' + color[1] + ',' + color[2] + ')'; - - satus.storage.set(element.storage_key, component_value.style.backgroundColor); - } - - function mouseup(event) { - component_canvas.removeEventListener('mousemove', select); - window.removeEventListener('mouseup', mouseup); - } - - component_canvas.addEventListener('mousedown', function() { - select(event); - this.addEventListener('mousemove', select); - window.addEventListener('mouseup', mouseup); - }); - - image.onload = function() { - ctx.drawImage(image, 0, 0); - - image.remove(); - }; - - image.src = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNzAgMjcwIj48ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9ImEiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iMTMzIiBjbGFzcz0iSXJvV2hlZWxIdWUiPjxwYXRoIHN0cm9rZT0iaHNsKDI0MCwgMTAwJSwgNTAlKSIgZD0iTTIwMS40NzcgMTM2Ljc0YTY2LjUgNjYuNSAwIDAwLjAyMy0xLjc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQxLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjQzNyAxMzcuOWE2Ni41IDY2LjUgMCAwMC4wNTMtMS43NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI0MiwgMTAwJSwgNTAlKSIgZD0iTTIwMS4zNzYgMTM5LjA2YTY2LjUgNjYuNSAwIDAwLjA4My0xLjc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQzLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjI5NSAxNDAuMjE4YTY2LjUgNjYuNSAwIDAwLjExNC0xLjczOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI0NCwgMTAwJSwgNTAlKSIgZD0iTTIwMS4xOTQgMTQxLjM3NGE2Ni41IDY2LjUgMCAwMC4xNDQtMS43MzUiLz48cGF0aCBzdHJva2U9ImhzbCgyNDUsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuMDczIDE0Mi41MjhhNjYuNSA2Ni41IDAgMDAuMTc0LTEuNzMyIi8+PHBhdGggc3Ryb2tlPSJoc2woMjQ2LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjkzMSAxNDMuNjhhNjYuNSA2Ni41IDAgMDAuMjA1LTEuNzI5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQ3LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjc3IDE0NC44M2E2Ni41IDY2LjUgMCAwMC4yMzQtMS43MjYiLz48cGF0aCBzdHJva2U9ImhzbCgyNDgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDAuNTg4IDE0NS45NzZhNjYuNSA2Ni41IDAgMDAuMjY1LTEuNzIxIi8+PHBhdGggc3Ryb2tlPSJoc2woMjQ5LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjM4NiAxNDcuMTE5YTY2LjUgNjYuNSAwIDAwLjI5NS0xLjcxNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1MCwgMTAwJSwgNTAlKSIgZD0iTTIwMC4xNjUgMTQ4LjI1OGE2Ni41IDY2LjUgMCAwMC4zMjUtMS43MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1MSwgMTAwJSwgNTAlKSIgZD0iTTE5OS45MjQgMTQ5LjM5M2E2Ni41IDY2LjUgMCAwMC4zNTQtMS43MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuNjYzIDE1MC41MjRhNjYuNSA2Ni41IDAgMDAuMzg0LTEuNjk4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjUzLCAxMDAlLCA1MCUpIiBkPSJNMTk5LjM4MiAxNTEuNjVhNjYuNSA2Ni41IDAgMDAuNDE0LTEuNjkiLz48cGF0aCBzdHJva2U9ImhzbCgyNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuMDgxIDE1Mi43NzFhNjYuNSA2Ni41IDAgMDAuNDQ0LTEuNjgzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjU1LCAxMDAlLCA1MCUpIiBkPSJNMTk4Ljc2MiAxNTMuODg3YTY2LjUgNjYuNSAwIDAwLjQ3Mi0xLjY3NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1NiwgMTAwJSwgNTAlKSIgZD0iTTE5OC40MjIgMTU0Ljk5N2E2Ni41IDY2LjUgMCAwMC41MDItMS42NjciLz48cGF0aCBzdHJva2U9ImhzbCgyNTcsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguMDY0IDE1Ni4xYTY2LjUgNjYuNSAwIDAwLjUzLTEuNjU3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjU4LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjY4NiAxNTcuMTk4YTY2LjUgNjYuNSAwIDAwLjU2LTEuNjQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjU5LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjI4OSAxNTguMjg5YTY2LjUgNjYuNSAwIDAwLjU4OC0xLjYzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2MCwgMTAwJSwgNTAlKSIgZD0iTTE5Ni44NzMgMTU5LjM3MmE2Ni41IDY2LjUgMCAwMC42MTctMS42MjgiLz48cGF0aCBzdHJva2U9ImhzbCgyNjEsIDEwMCUsIDUwJSkiIGQ9Ik0xOTYuNDM4IDE2MC40NDhhNjYuNSA2Ni41IDAgMDAuNjQ1LTEuNjE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjYyLCAxMDAlLCA1MCUpIiBkPSJNMTk1Ljk4NCAxNjEuNTE3YTY2LjUgNjYuNSAwIDAwLjY3NC0xLjYwNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2MywgMTAwJSwgNTAlKSIgZD0iTTE5NS41MTIgMTYyLjU3N2E2Ni41IDY2LjUgMCAwMC43MDItMS41OTMiLz48cGF0aCBzdHJva2U9ImhzbCgyNjQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTUuMDIyIDE2My42MjlhNjYuNSA2Ni41IDAgMDAuNzI5LTEuNTgxIi8+PHBhdGggc3Ryb2tlPSJoc2woMjY1LCAxMDAlLCA1MCUpIiBkPSJNMTk0LjUxMyAxNjQuNjcyYTY2LjUgNjYuNSAwIDAwLjc1Ni0xLjU2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2NiwgMTAwJSwgNTAlKSIgZD0iTTE5My45ODYgMTY1LjcwNmE2Ni41IDY2LjUgMCAwMC43ODQtMS41NTQiLz48cGF0aCBzdHJva2U9ImhzbCgyNjcsIDEwMCUsIDUwJSkiIGQ9Ik0xOTMuNDQxIDE2Ni43MzFhNjYuNSA2Ni41IDAgMDAuODEtMS41NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2OCwgMTAwJSwgNTAlKSIgZD0iTTE5Mi44NzkgMTY3Ljc0NmE2Ni41IDY2LjUgMCAwMC44MzctMS41MjYiLz48cGF0aCBzdHJva2U9ImhzbCgyNjksIDEwMCUsIDUwJSkiIGQ9Ik0xOTIuMjk4IDE2OC43NTFhNjYuNSA2Ni41IDAgMDAuODY0LTEuNTExIi8+PHBhdGggc3Ryb2tlPSJoc2woMjcwLCAxMDAlLCA1MCUpIiBkPSJNMTkxLjcgMTY5Ljc0NmE2Ni41IDY2LjUgMCAwMC44OS0xLjQ5NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3MSwgMTAwJSwgNTAlKSIgZD0iTTE5MS4wODYgMTcwLjczYTY2LjUgNjYuNSAwIDAwLjkxNi0xLjQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjcyLCAxMDAlLCA1MCUpIiBkPSJNMTkwLjQ1MyAxNzEuNzA0YTY2LjUgNjYuNSAwIDAwLjk0Mi0xLjQ2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3MywgMTAwJSwgNTAlKSIgZD0iTTE4OS44MDQgMTcyLjY2NmE2Ni41IDY2LjUgMCAwMC45NjgtMS40NDgiLz48cGF0aCBzdHJva2U9ImhzbCgyNzQsIDEwMCUsIDUwJSkiIGQ9Ik0xODkuMTM5IDE3My42MTdhNjYuNSA2Ni41IDAgMDAuOTkyLTEuNDMiLz48cGF0aCBzdHJva2U9ImhzbCgyNzUsIDEwMCUsIDUwJSkiIGQ9Ik0xODguNDU2IDE3NC41NTZhNjYuNSA2Ni41IDAgMDAxLjAxOC0xLjQxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3NiwgMTAwJSwgNTAlKSIgZD0iTTE4Ny43NTggMTc1LjQ4M2E2Ni41IDY2LjUgMCAwMDEuMDQyLTEuMzk1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjc3LCAxMDAlLCA1MCUpIiBkPSJNMTg3LjA0MyAxNzYuMzk3YTY2LjUgNjYuNSAwIDAwMS4wNjYtMS4zNzYiLz48cGF0aCBzdHJva2U9ImhzbCgyNzgsIDEwMCUsIDUwJSkiIGQ9Ik0xODYuMzEzIDE3Ny4zYTY2LjUgNjYuNSAwIDAwMS4wOS0xLjM1OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3OSwgMTAwJSwgNTAlKSIgZD0iTTE4NS41NjcgMTc4LjE4OGE2Ni41IDY2LjUgMCAwMDEuMTEzLTEuMzM4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjgwLCAxMDAlLCA1MCUpIiBkPSJNMTg0LjgwNiAxNzkuMDY0YTY2LjUgNjYuNSAwIDAwMS4xMzYtMS4zMTkiLz48cGF0aCBzdHJva2U9ImhzbCgyODEsIDEwMCUsIDUwJSkiIGQ9Ik0xODQuMDI5IDE3OS45MjdhNjYuNSA2Ni41IDAgMDAxLjE2LTEuMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4MiwgMTAwJSwgNTAlKSIgZD0iTTE4My4yMzcgMTgwLjc3NmE2Ni41IDY2LjUgMCAwMDEuMTgyLTEuMjc5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjgzLCAxMDAlLCA1MCUpIiBkPSJNMTgyLjQzMSAxODEuNjFhNjYuNSA2Ni41IDAgMDAxLjIwNC0xLjI1NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4NCwgMTAwJSwgNTAlKSIgZD0iTTE4MS42MSAxODIuNDMxYTY2LjUgNjYuNSAwIDAwMS4yMjYtMS4yMzYiLz48cGF0aCBzdHJva2U9ImhzbCgyODUsIDEwMCUsIDUwJSkiIGQ9Ik0xODAuNzc2IDE4My4yMzdhNjYuNSA2Ni41IDAgMDAxLjI0Ny0xLjIxNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4NiwgMTAwJSwgNTAlKSIgZD0iTTE3OS45MjcgMTg0LjAyOWE2Ni41IDY2LjUgMCAwMDEuMjY4LTEuMTkzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjg3LCAxMDAlLCA1MCUpIiBkPSJNMTc5LjA2NCAxODQuODA2YTY2LjUgNjYuNSAwIDAwMS4yODktMS4xNzEiLz48cGF0aCBzdHJva2U9ImhzbCgyODgsIDEwMCUsIDUwJSkiIGQ9Ik0xNzguMTg4IDE4NS41NjdhNjYuNSA2Ni41IDAgMDAxLjMxLTEuMTQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjg5LCAxMDAlLCA1MCUpIiBkPSJNMTc3LjMgMTg2LjMxM2E2Ni41IDY2LjUgMCAwMDEuMzI4LTEuMTI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjkwLCAxMDAlLCA1MCUpIiBkPSJNMTc2LjM5NyAxODcuMDQzYTY2LjUgNjYuNSAwIDAwMS4zNDgtMS4xMDEiLz48cGF0aCBzdHJva2U9ImhzbCgyOTEsIDEwMCUsIDUwJSkiIGQ9Ik0xNzUuNDgzIDE4Ny43NThhNjYuNSA2Ni41IDAgMDAxLjM2Ny0xLjA3OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI5MiwgMTAwJSwgNTAlKSIgZD0iTTE3NC41NTYgMTg4LjQ1NmE2Ni41IDY2LjUgMCAwMDEuMzg1LTEuMDUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjkzLCAxMDAlLCA1MCUpIiBkPSJNMTczLjYxNyAxODkuMTM5YTY2LjUgNjYuNSAwIDAwMS40MDQtMS4wMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI5NCwgMTAwJSwgNTAlKSIgZD0iTTE3Mi42NjYgMTg5LjgwNGE2Ni41IDY2LjUgMCAwMDEuNDIyLTEuMDA0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk1LCAxMDAlLCA1MCUpIiBkPSJNMTcxLjcwNCAxOTAuNDUzYTY2LjUgNjYuNSAwIDAwMS40MzktLjk4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk2LCAxMDAlLCA1MCUpIiBkPSJNMTcwLjczIDE5MS4wODZhNjYuNSA2Ni41IDAgMDAxLjQ1Ni0uOTU1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk3LCAxMDAlLCA1MCUpIiBkPSJNMTY5Ljc0NiAxOTEuN2E2Ni41IDY2LjUgMCAwMDEuNDcyLS45MjgiLz48cGF0aCBzdHJva2U9ImhzbCgyOTgsIDEwMCUsIDUwJSkiIGQ9Ik0xNjguNzUxIDE5Mi4yOThhNjYuNSA2Ni41IDAgMDAxLjQ4OS0uOTAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjk5LCAxMDAlLCA1MCUpIiBkPSJNMTY3Ljc0NiAxOTIuODc5YTY2LjUgNjYuNSAwIDAwMS41MDQtLjg3NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwMCwgMTAwJSwgNTAlKSIgZD0iTTE2Ni43MzEgMTkzLjQ0MWE2Ni41IDY2LjUgMCAwMDEuNTE5LS44NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwMSwgMTAwJSwgNTAlKSIgZD0iTTE2NS43MDYgMTkzLjk4NmE2Ni41IDY2LjUgMCAwMDEuNTM0LS44MjQiLz48cGF0aCBzdHJva2U9ImhzbCgzMDIsIDEwMCUsIDUwJSkiIGQ9Ik0xNjQuNjcyIDE5NC41MTNhNjYuNSA2Ni41IDAgMDAxLjU0OC0uNzk3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzAzLCAxMDAlLCA1MCUpIiBkPSJNMTYzLjYyOSAxOTUuMDIyYTY2LjUgNjYuNSAwIDAwMS41NjEtLjc3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzA0LCAxMDAlLCA1MCUpIiBkPSJNMTYyLjU3NyAxOTUuNTEyYTY2LjUgNjYuNSAwIDAwMS41NzUtLjc0MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwNSwgMTAwJSwgNTAlKSIgZD0iTTE2MS41MTcgMTk1Ljk4NGE2Ni41IDY2LjUgMCAwMDEuNTg3LS43MTUiLz48cGF0aCBzdHJva2U9ImhzbCgzMDYsIDEwMCUsIDUwJSkiIGQ9Ik0xNjAuNDQ4IDE5Ni40MzhhNjYuNSA2Ni41IDAgMDAxLjYtLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwNywgMTAwJSwgNTAlKSIgZD0iTTE1OS4zNzIgMTk2Ljg3M2E2Ni41IDY2LjUgMCAwMDEuNjEyLS42NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwOCwgMTAwJSwgNTAlKSIgZD0iTTE1OC4yODkgMTk3LjI4OWE2Ni41IDY2LjUgMCAwMDEuNjIyLS42MzEiLz48cGF0aCBzdHJva2U9ImhzbCgzMDksIDEwMCUsIDUwJSkiIGQ9Ik0xNTcuMTk4IDE5Ny42ODZhNjYuNSA2Ni41IDAgMDAxLjYzMy0uNjAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzEwLCAxMDAlLCA1MCUpIiBkPSJNMTU2LjEgMTk4LjA2NGE2Ni41IDY2LjUgMCAwMDEuNjQ0LS41NzQiLz48cGF0aCBzdHJva2U9ImhzbCgzMTEsIDEwMCUsIDUwJSkiIGQ9Ik0xNTQuOTk3IDE5OC40MjJhNjYuNSA2Ni41IDAgMDAxLjY1My0uNTQ1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzEyLCAxMDAlLCA1MCUpIiBkPSJNMTUzLjg4NyAxOTguNzYyYTY2LjUgNjYuNSAwIDAwMS42NjMtLjUxNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxMywgMTAwJSwgNTAlKSIgZD0iTTE1Mi43NzEgMTk5LjA4MWE2Ni41IDY2LjUgMCAwMDEuNjcyLS40ODciLz48cGF0aCBzdHJva2U9ImhzbCgzMTQsIDEwMCUsIDUwJSkiIGQ9Ik0xNTEuNjUgMTk5LjM4MmE2Ni41IDY2LjUgMCAwMDEuNjgtLjQ1OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxNSwgMTAwJSwgNTAlKSIgZD0iTTE1MC41MjQgMTk5LjY2M2E2Ni41IDY2LjUgMCAwMDEuNjg3LS40MjkiLz48cGF0aCBzdHJva2U9ImhzbCgzMTYsIDEwMCUsIDUwJSkiIGQ9Ik0xNDkuMzkzIDE5OS45MjRhNjYuNSA2Ni41IDAgMDAxLjY5NS0uNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxNywgMTAwJSwgNTAlKSIgZD0iTTE0OC4yNTggMjAwLjE2NWE2Ni41IDY2LjUgMCAwMDEuNzAxLS4zNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxOCwgMTAwJSwgNTAlKSIgZD0iTTE0Ny4xMTkgMjAwLjM4NmE2Ni41IDY2LjUgMCAwMDEuNzA3LS4zNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxOSwgMTAwJSwgNTAlKSIgZD0iTTE0NS45NzYgMjAwLjU4OGE2Ni41IDY2LjUgMCAwMDEuNzEzLS4zMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMCwgMTAwJSwgNTAlKSIgZD0iTTE0NC44MyAyMDAuNzdhNjYuNSA2Ni41IDAgMDAxLjcxOC0uMjgiLz48cGF0aCBzdHJva2U9ImhzbCgzMjEsIDEwMCUsIDUwJSkiIGQ9Ik0xNDMuNjggMjAwLjkzMWE2Ni41IDY2LjUgMCAwMDEuNzIzLS4yNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMiwgMTAwJSwgNTAlKSIgZD0iTTE0Mi41MjggMjAxLjA3M2E2Ni41IDY2LjUgMCAwMDEuNzI3LS4yMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMywgMTAwJSwgNTAlKSIgZD0iTTE0MS4zNzQgMjAxLjE5NGE2Ni41IDY2LjUgMCAwMDEuNzMtLjE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI0LCAxMDAlLCA1MCUpIiBkPSJNMTQwLjIxOCAyMDEuMjk1YTY2LjUgNjYuNSAwIDAwMS43MzMtLjE2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI1LCAxMDAlLCA1MCUpIiBkPSJNMTM5LjA2IDIwMS4zNzZhNjYuNSA2Ni41IDAgMDAxLjczNi0uMTMiLz48cGF0aCBzdHJva2U9ImhzbCgzMjYsIDEwMCUsIDUwJSkiIGQ9Ik0xMzcuOSAyMDEuNDM3YTY2LjUgNjYuNSAwIDAwMS43MzktLjA5OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyNywgMTAwJSwgNTAlKSIgZD0iTTEzNi43NCAyMDEuNDc3YTY2LjUgNjYuNSAwIDAwMS43NC0uMDY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI4LCAxMDAlLCA1MCUpIiBkPSJNMTM1LjU4IDIwMS40OTdhNjYuNSA2Ni41IDAgMDAxLjc0LS4wMzgiLz48cGF0aCBzdHJva2U9ImhzbCgzMjksIDEwMCUsIDUwJSkiIGQ9Ik0xMzQuNDIgMjAxLjQ5N2E2Ni41IDY2LjUgMCAwMDEuNzQtLjAwNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMzMCwgMTAwJSwgNTAlKSIgZD0iTTEzMy4yNiAyMDEuNDc3YTY2LjUgNjYuNSAwIDAwMS43NC4wMjMiLz48cGF0aCBzdHJva2U9ImhzbCgzMzEsIDEwMCUsIDUwJSkiIGQ9Ik0xMzIuMSAyMDEuNDM3YTY2LjUgNjYuNSAwIDAwMS43NC4wNTMiLz48cGF0aCBzdHJva2U9ImhzbCgzMzIsIDEwMCUsIDUwJSkiIGQ9Ik0xMzAuOTQgMjAxLjM3NmE2Ni41IDY2LjUgMCAwMDEuNzQuMDgzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzMzLCAxMDAlLCA1MCUpIiBkPSJNMTI5Ljc4MiAyMDEuMjk1YTY2LjUgNjYuNSAwIDAwMS43MzguMTE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM0LCAxMDAlLCA1MCUpIiBkPSJNMTI4LjYyNiAyMDEuMTk0YTY2LjUgNjYuNSAwIDAwMS43MzUuMTQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM1LCAxMDAlLCA1MCUpIiBkPSJNMTI3LjQ3MiAyMDEuMDczYTY2LjUgNjYuNSAwIDAwMS43MzIuMTc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM2LCAxMDAlLCA1MCUpIiBkPSJNMTI2LjMyIDIwMC45MzFhNjYuNSA2Ni41IDAgMDAxLjcyOS4yMDUiLz48cGF0aCBzdHJva2U9ImhzbCgzMzcsIDEwMCUsIDUwJSkiIGQ9Ik0xMjUuMTcgMjAwLjc3YTY2LjUgNjYuNSAwIDAwMS43MjYuMjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM4LCAxMDAlLCA1MCUpIiBkPSJNMTI0LjAyNCAyMDAuNTg4YTY2LjUgNjYuNSAwIDAwMS43MjEuMjY1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM5LCAxMDAlLCA1MCUpIiBkPSJNMTIyLjg4MSAyMDAuMzg2YTY2LjUgNjYuNSAwIDAwMS43MTYuMjk1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQwLCAxMDAlLCA1MCUpIiBkPSJNMTIxLjc0MiAyMDAuMTY1YTY2LjUgNjYuNSAwIDAwMS43MS4zMjUiLz48cGF0aCBzdHJva2U9ImhzbCgzNDEsIDEwMCUsIDUwJSkiIGQ9Ik0xMjAuNjA3IDE5OS45MjRhNjYuNSA2Ni41IDAgMDAxLjcwNC4zNTQiLz48cGF0aCBzdHJva2U9ImhzbCgzNDIsIDEwMCUsIDUwJSkiIGQ9Ik0xMTkuNDc2IDE5OS42NjNhNjYuNSA2Ni41IDAgMDAxLjY5OC4zODQiLz48cGF0aCBzdHJva2U9ImhzbCgzNDMsIDEwMCUsIDUwJSkiIGQ9Ik0xMTguMzUgMTk5LjM4MmE2Ni41IDY2LjUgMCAwMDEuNjkuNDE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQ0LCAxMDAlLCA1MCUpIiBkPSJNMTE3LjIyOSAxOTkuMDgxYTY2LjUgNjYuNSAwIDAwMS42ODMuNDQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQ1LCAxMDAlLCA1MCUpIiBkPSJNMTE2LjExMyAxOTguNzYyYTY2LjUgNjYuNSAwIDAwMS42NzYuNDcyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ2LCAxMDAlLCA1MCUpIiBkPSJNMTE1LjAwMyAxOTguNDIyYTY2LjUgNjYuNSAwIDAwMS42NjcuNTAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ3LCAxMDAlLCA1MCUpIiBkPSJNMTEzLjkgMTk4LjA2NGE2Ni41IDY2LjUgMCAwMDEuNjU3LjUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ4LCAxMDAlLCA1MCUpIiBkPSJNMTEyLjgwMiAxOTcuNjg2YTY2LjUgNjYuNSAwIDAwMS42NDguNTYiLz48cGF0aCBzdHJva2U9ImhzbCgzNDksIDEwMCUsIDUwJSkiIGQ9Ik0xMTEuNzExIDE5Ny4yODlhNjYuNSA2Ni41IDAgMDAxLjYzOS41ODgiLz48cGF0aCBzdHJva2U9ImhzbCgzNTAsIDEwMCUsIDUwJSkiIGQ9Ik0xMTAuNjI4IDE5Ni44NzNhNjYuNSA2Ni41IDAgMDAxLjYyOC42MTciLz48cGF0aCBzdHJva2U9ImhzbCgzNTEsIDEwMCUsIDUwJSkiIGQ9Ik0xMDkuNTUyIDE5Ni40MzhhNjYuNSA2Ni41IDAgMDAxLjYxNy42NDUiLz48cGF0aCBzdHJva2U9ImhzbCgzNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xMDguNDgzIDE5NS45ODRhNjYuNSA2Ni41IDAgMDAxLjYwNi42NzQiLz48cGF0aCBzdHJva2U9ImhzbCgzNTMsIDEwMCUsIDUwJSkiIGQ9Ik0xMDcuNDIzIDE5NS41MTJhNjYuNSA2Ni41IDAgMDAxLjU5My43MDIiLz48cGF0aCBzdHJva2U9ImhzbCgzNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xMDYuMzcxIDE5NS4wMjJhNjYuNSA2Ni41IDAgMDAxLjU4MS43MjkiLz48cGF0aCBzdHJva2U9ImhzbCgzNTUsIDEwMCUsIDUwJSkiIGQ9Ik0xMDUuMzI4IDE5NC41MTNhNjYuNSA2Ni41IDAgMDAxLjU2OC43NTYiLz48cGF0aCBzdHJva2U9ImhzbCgzNTYsIDEwMCUsIDUwJSkiIGQ9Ik0xMDQuMjk0IDE5My45ODZhNjYuNSA2Ni41IDAgMDAxLjU1NC43ODQiLz48cGF0aCBzdHJva2U9ImhzbCgzNTcsIDEwMCUsIDUwJSkiIGQ9Ik0xMDMuMjY5IDE5My40NDFhNjYuNSA2Ni41IDAgMDAxLjU0LjgxIi8+PHBhdGggc3Ryb2tlPSJoc2woMzU4LCAxMDAlLCA1MCUpIiBkPSJNMTAyLjI1NCAxOTIuODc5YTY2LjUgNjYuNSAwIDAwMS41MjYuODM3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzU5LCAxMDAlLCA1MCUpIiBkPSJNMTAxLjI0OSAxOTIuMjk4YTY2LjUgNjYuNSAwIDAwMS41MTEuODY0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMCwgMTAwJSwgNTAlKSIgZD0iTTEwMC4yNTQgMTkxLjdhNjYuNSA2Ni41IDAgMDAxLjQ5Ni44OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEsIDEwMCUsIDUwJSkiIGQ9Ik05OS4yNyAxOTEuMDg2YTY2LjUgNjYuNSAwIDAwMS40OC45MTYiLz48cGF0aCBzdHJva2U9ImhzbCgyLCAxMDAlLCA1MCUpIiBkPSJNOTguMjk2IDE5MC40NTNhNjYuNSA2Ni41IDAgMDAxLjQ2NC45NDIiLz48cGF0aCBzdHJva2U9ImhzbCgzLCAxMDAlLCA1MCUpIiBkPSJNOTcuMzM0IDE4OS44MDRhNjYuNSA2Ni41IDAgMDAxLjQ0OC45NjgiLz48cGF0aCBzdHJva2U9ImhzbCg0LCAxMDAlLCA1MCUpIiBkPSJNOTYuMzgzIDE4OS4xMzlhNjYuNSA2Ni41IDAgMDAxLjQzLjk5MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDUsIDEwMCUsIDUwJSkiIGQ9Ik05NS40NDQgMTg4LjQ1NmE2Ni41IDY2LjUgMCAwMDEuNDEzIDEuMDE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woNiwgMTAwJSwgNTAlKSIgZD0iTTk0LjUxNyAxODcuNzU4YTY2LjUgNjYuNSAwIDAwMS4zOTUgMS4wNDIiLz48cGF0aCBzdHJva2U9ImhzbCg3LCAxMDAlLCA1MCUpIiBkPSJNOTMuNjAzIDE4Ny4wNDNhNjYuNSA2Ni41IDAgMDAxLjM3NiAxLjA2NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDgsIDEwMCUsIDUwJSkiIGQ9Ik05Mi43IDE4Ni4zMTNhNjYuNSA2Ni41IDAgMDAxLjM1OSAxLjA5Ii8+PHBhdGggc3Ryb2tlPSJoc2woOSwgMTAwJSwgNTAlKSIgZD0iTTkxLjgxMiAxODUuNTY3YTY2LjUgNjYuNSAwIDAwMS4zMzggMS4xMTMiLz48cGF0aCBzdHJva2U9ImhzbCgxMCwgMTAwJSwgNTAlKSIgZD0iTTkwLjkzNiAxODQuODA2YTY2LjUgNjYuNSAwIDAwMS4zMTkgMS4xMzYiLz48cGF0aCBzdHJva2U9ImhzbCgxMSwgMTAwJSwgNTAlKSIgZD0iTTkwLjA3MyAxODQuMDI5YTY2LjUgNjYuNSAwIDAwMS4zIDEuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxMiwgMTAwJSwgNTAlKSIgZD0iTTg5LjIyNCAxODMuMjM3YTY2LjUgNjYuNSAwIDAwMS4yNzkgMS4xODIiLz48cGF0aCBzdHJva2U9ImhzbCgxMywgMTAwJSwgNTAlKSIgZD0iTTg4LjM5IDE4Mi40MzFhNjYuNSA2Ni41IDAgMDAxLjI1NyAxLjIwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE0LCAxMDAlLCA1MCUpIiBkPSJNODcuNTY5IDE4MS42MWE2Ni41IDY2LjUgMCAwMDEuMjM2IDEuMjI2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTUsIDEwMCUsIDUwJSkiIGQ9Ik04Ni43NjMgMTgwLjc3NmE2Ni41IDY2LjUgMCAwMDEuMjE0IDEuMjQ3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTYsIDEwMCUsIDUwJSkiIGQ9Ik04NS45NzEgMTc5LjkyN2E2Ni41IDY2LjUgMCAwMDEuMTkzIDEuMjY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTcsIDEwMCUsIDUwJSkiIGQ9Ik04NS4xOTQgMTc5LjA2NGE2Ni41IDY2LjUgMCAwMDEuMTcxIDEuMjg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTgsIDEwMCUsIDUwJSkiIGQ9Ik04NC40MzMgMTc4LjE4OGE2Ni41IDY2LjUgMCAwMDEuMTQ4IDEuMzEiLz48cGF0aCBzdHJva2U9ImhzbCgxOSwgMTAwJSwgNTAlKSIgZD0iTTgzLjY4NyAxNzcuM2E2Ni41IDY2LjUgMCAwMDEuMTI1IDEuMzI4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjAsIDEwMCUsIDUwJSkiIGQ9Ik04Mi45NTcgMTc2LjM5N2E2Ni41IDY2LjUgMCAwMDEuMTAxIDEuMzQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjEsIDEwMCUsIDUwJSkiIGQ9Ik04Mi4yNDIgMTc1LjQ4M2E2Ni41IDY2LjUgMCAwMDEuMDc4IDEuMzY3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjIsIDEwMCUsIDUwJSkiIGQ9Ik04MS41NDQgMTc0LjU1NmE2Ni41IDY2LjUgMCAwMDEuMDUzIDEuMzg1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjMsIDEwMCUsIDUwJSkiIGQ9Ik04MC44NjEgMTczLjYxN2E2Ni41IDY2LjUgMCAwMDEuMDMgMS40MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyNCwgMTAwJSwgNTAlKSIgZD0iTTgwLjE5NiAxNzIuNjY2YTY2LjUgNjYuNSAwIDAwMS4wMDQgMS40MjIiLz48cGF0aCBzdHJva2U9ImhzbCgyNSwgMTAwJSwgNTAlKSIgZD0iTTc5LjU0NyAxNzEuNzA0YTY2LjUgNjYuNSAwIDAwLjk4IDEuNDM5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjYsIDEwMCUsIDUwJSkiIGQ9Ik03OC45MTQgMTcwLjczYTY2LjUgNjYuNSAwIDAwLjk1NSAxLjQ1NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3LCAxMDAlLCA1MCUpIiBkPSJNNzguMyAxNjkuNzQ2YTY2LjUgNjYuNSAwIDAwLjkyOCAxLjQ3MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4LCAxMDAlLCA1MCUpIiBkPSJNNzcuNzAyIDE2OC43NTFhNjYuNSA2Ni41IDAgMDAuOTAzIDEuNDg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjksIDEwMCUsIDUwJSkiIGQ9Ik03Ny4xMjEgMTY3Ljc0NmE2Ni41IDY2LjUgMCAwMC44NzcgMS41MDQiLz48cGF0aCBzdHJva2U9ImhzbCgzMCwgMTAwJSwgNTAlKSIgZD0iTTc2LjU1OSAxNjYuNzMxYTY2LjUgNjYuNSAwIDAwLjg1IDEuNTE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzEsIDEwMCUsIDUwJSkiIGQ9Ik03Ni4wMTQgMTY1LjcwNmE2Ni41IDY2LjUgMCAwMC44MjQgMS41MzQiLz48cGF0aCBzdHJva2U9ImhzbCgzMiwgMTAwJSwgNTAlKSIgZD0iTTc1LjQ4NyAxNjQuNjcyYTY2LjUgNjYuNSAwIDAwLjc5NyAxLjU0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMzLCAxMDAlLCA1MCUpIiBkPSJNNzQuOTc4IDE2My42MjlhNjYuNSA2Ni41IDAgMDAuNzcgMS41NjEiLz48cGF0aCBzdHJva2U9ImhzbCgzNCwgMTAwJSwgNTAlKSIgZD0iTTc0LjQ4OCAxNjIuNTc3YTY2LjUgNjYuNSAwIDAwLjc0MiAxLjU3NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDM1LCAxMDAlLCA1MCUpIiBkPSJNNzQuMDE2IDE2MS41MTdhNjYuNSA2Ni41IDAgMDAuNzE1IDEuNTg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzYsIDEwMCUsIDUwJSkiIGQ9Ik03My41NjIgMTYwLjQ0OGE2Ni41IDY2LjUgMCAwMC42ODcgMS42Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzcsIDEwMCUsIDUwJSkiIGQ9Ik03My4xMjcgMTU5LjM3MmE2Ni41IDY2LjUgMCAwMC42NiAxLjYxMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDM4LCAxMDAlLCA1MCUpIiBkPSJNNzIuNzExIDE1OC4yODlhNjYuNSA2Ni41IDAgMDAuNjMxIDEuNjIyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzksIDEwMCUsIDUwJSkiIGQ9Ik03Mi4zMTQgMTU3LjE5OGE2Ni41IDY2LjUgMCAwMC42MDMgMS42MzMiLz48cGF0aCBzdHJva2U9ImhzbCg0MCwgMTAwJSwgNTAlKSIgZD0iTTcxLjkzNiAxNTYuMWE2Ni41IDY2LjUgMCAwMC41NzQgMS42NDQiLz48cGF0aCBzdHJva2U9ImhzbCg0MSwgMTAwJSwgNTAlKSIgZD0iTTcxLjU3OCAxNTQuOTk3YTY2LjUgNjYuNSAwIDAwLjU0NSAxLjY1MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDQyLCAxMDAlLCA1MCUpIiBkPSJNNzEuMjM4IDE1My44ODdhNjYuNSA2Ni41IDAgMDAuNTE3IDEuNjYzIi8+PHBhdGggc3Ryb2tlPSJoc2woNDMsIDEwMCUsIDUwJSkiIGQ9Ik03MC45MTkgMTUyLjc3MWE2Ni41IDY2LjUgMCAwMC40ODcgMS42NzIiLz48cGF0aCBzdHJva2U9ImhzbCg0NCwgMTAwJSwgNTAlKSIgZD0iTTcwLjYxOCAxNTEuNjVhNjYuNSA2Ni41IDAgMDAuNDU4IDEuNjgiLz48cGF0aCBzdHJva2U9ImhzbCg0NSwgMTAwJSwgNTAlKSIgZD0iTTcwLjMzNyAxNTAuNTI0YTY2LjUgNjYuNSAwIDAwLjQyOSAxLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDQ2LCAxMDAlLCA1MCUpIiBkPSJNNzAuMDc2IDE0OS4zOTNhNjYuNSA2Ni41IDAgMDAuNCAxLjY5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDQ3LCAxMDAlLCA1MCUpIiBkPSJNNjkuODM1IDE0OC4yNThhNjYuNSA2Ni41IDAgMDAuMzcgMS43MDEiLz48cGF0aCBzdHJva2U9ImhzbCg0OCwgMTAwJSwgNTAlKSIgZD0iTTY5LjYxNCAxNDcuMTE5YTY2LjUgNjYuNSAwIDAwLjM0IDEuNzA3Ii8+PHBhdGggc3Ryb2tlPSJoc2woNDksIDEwMCUsIDUwJSkiIGQ9Ik02OS40MTIgMTQ1Ljk3NmE2Ni41IDY2LjUgMCAwMC4zMSAxLjcxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDUwLCAxMDAlLCA1MCUpIiBkPSJNNjkuMjMgMTQ0LjgzYTY2LjUgNjYuNSAwIDAwLjI4IDEuNzE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woNTEsIDEwMCUsIDUwJSkiIGQ9Ik02OS4wNjkgMTQzLjY4YTY2LjUgNjYuNSAwIDAwLjI1IDEuNzIzIi8+PHBhdGggc3Ryb2tlPSJoc2woNTIsIDEwMCUsIDUwJSkiIGQ9Ik02OC45MjcgMTQyLjUyOGE2Ni41IDY2LjUgMCAwMC4yMiAxLjcyNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDUzLCAxMDAlLCA1MCUpIiBkPSJNNjguODA2IDE0MS4zNzRhNjYuNSA2Ni41IDAgMDAuMTkgMS43MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDU0LCAxMDAlLCA1MCUpIiBkPSJNNjguNzA1IDE0MC4yMThhNjYuNSA2Ni41IDAgMDAuMTYgMS43MzMiLz48cGF0aCBzdHJva2U9ImhzbCg1NSwgMTAwJSwgNTAlKSIgZD0iTTY4LjYyNCAxMzkuMDZhNjYuNSA2Ni41IDAgMDAuMTMgMS43MzYiLz48cGF0aCBzdHJva2U9ImhzbCg1NiwgMTAwJSwgNTAlKSIgZD0iTTY4LjU2MyAxMzcuOWE2Ni41IDY2LjUgMCAwMC4wOTkgMS43MzkiLz48cGF0aCBzdHJva2U9ImhzbCg1NywgMTAwJSwgNTAlKSIgZD0iTTY4LjUyMyAxMzYuNzRhNjYuNSA2Ni41IDAgMDAuMDY4IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg1OCwgMTAwJSwgNTAlKSIgZD0iTTY4LjUwMyAxMzUuNThhNjYuNSA2Ni41IDAgMDAuMDM4IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg1OSwgMTAwJSwgNTAlKSIgZD0iTTY4LjUwMyAxMzQuNDJhNjYuNSA2Ni41IDAgMDAuMDA3IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg2MCwgMTAwJSwgNTAlKSIgZD0iTTY4LjUyMyAxMzMuMjZBNjYuNSA2Ni41IDAgMDA2OC41IDEzNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDYxLCAxMDAlLCA1MCUpIiBkPSJNNjguNTYzIDEzMi4xYTY2LjUgNjYuNSAwIDAwLS4wNTMgMS43NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDYyLCAxMDAlLCA1MCUpIiBkPSJNNjguNjI0IDEzMC45NGE2Ni41IDY2LjUgMCAwMC0uMDgzIDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg2MywgMTAwJSwgNTAlKSIgZD0iTTY4LjcwNSAxMjkuNzgyYTY2LjUgNjYuNSAwIDAwLS4xMTQgMS43MzgiLz48cGF0aCBzdHJva2U9ImhzbCg2NCwgMTAwJSwgNTAlKSIgZD0iTTY4LjgwNiAxMjguNjI2YTY2LjUgNjYuNSAwIDAwLS4xNDQgMS43MzUiLz48cGF0aCBzdHJva2U9ImhzbCg2NSwgMTAwJSwgNTAlKSIgZD0iTTY4LjkyNyAxMjcuNDcyYTY2LjUgNjYuNSAwIDAwLS4xNzQgMS43MzIiLz48cGF0aCBzdHJva2U9ImhzbCg2NiwgMTAwJSwgNTAlKSIgZD0iTTY5LjA2OSAxMjYuMzJhNjYuNSA2Ni41IDAgMDAtLjIwNSAxLjcyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDY3LCAxMDAlLCA1MCUpIiBkPSJNNjkuMjMgMTI1LjE3YTY2LjUgNjYuNSAwIDAwLS4yMzQgMS43MjYiLz48cGF0aCBzdHJva2U9ImhzbCg2OCwgMTAwJSwgNTAlKSIgZD0iTTY5LjQxMiAxMjQuMDI0YTY2LjUgNjYuNSAwIDAwLS4yNjUgMS43MjEiLz48cGF0aCBzdHJva2U9ImhzbCg2OSwgMTAwJSwgNTAlKSIgZD0iTTY5LjYxNCAxMjIuODgxYTY2LjUgNjYuNSAwIDAwLS4yOTUgMS43MTYiLz48cGF0aCBzdHJva2U9ImhzbCg3MCwgMTAwJSwgNTAlKSIgZD0iTTY5LjgzNSAxMjEuNzQyYTY2LjUgNjYuNSAwIDAwLS4zMjUgMS43MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDcxLCAxMDAlLCA1MCUpIiBkPSJNNzAuMDc2IDEyMC42MDdhNjYuNSA2Ni41IDAgMDAtLjM1NCAxLjcwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDcyLCAxMDAlLCA1MCUpIiBkPSJNNzAuMzM3IDExOS40NzZhNjYuNSA2Ni41IDAgMDAtLjM4NCAxLjY5OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDczLCAxMDAlLCA1MCUpIiBkPSJNNzAuNjE4IDExOC4zNWE2Ni41IDY2LjUgMCAwMC0uNDE0IDEuNjkiLz48cGF0aCBzdHJva2U9ImhzbCg3NCwgMTAwJSwgNTAlKSIgZD0iTTcwLjkxOSAxMTcuMjI5YTY2LjUgNjYuNSAwIDAwLS40NDQgMS42ODMiLz48cGF0aCBzdHJva2U9ImhzbCg3NSwgMTAwJSwgNTAlKSIgZD0iTTcxLjIzOCAxMTYuMTEzYTY2LjUgNjYuNSAwIDAwLS40NzIgMS42NzYiLz48cGF0aCBzdHJva2U9ImhzbCg3NiwgMTAwJSwgNTAlKSIgZD0iTTcxLjU3OCAxMTUuMDAzYTY2LjUgNjYuNSAwIDAwLS41MDIgMS42NjciLz48cGF0aCBzdHJva2U9ImhzbCg3NywgMTAwJSwgNTAlKSIgZD0iTTcxLjkzNiAxMTMuOWE2Ni41IDY2LjUgMCAwMC0uNTMgMS42NTciLz48cGF0aCBzdHJva2U9ImhzbCg3OCwgMTAwJSwgNTAlKSIgZD0iTTcyLjMxNCAxMTIuODAyYTY2LjUgNjYuNSAwIDAwLS41NiAxLjY0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDc5LCAxMDAlLCA1MCUpIiBkPSJNNzIuNzExIDExMS43MTFhNjYuNSA2Ni41IDAgMDAtLjU4OCAxLjYzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDgwLCAxMDAlLCA1MCUpIiBkPSJNNzMuMTI3IDExMC42MjhhNjYuNSA2Ni41IDAgMDAtLjYxNyAxLjYyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDgxLCAxMDAlLCA1MCUpIiBkPSJNNzMuNTYyIDEwOS41NTJhNjYuNSA2Ni41IDAgMDAtLjY0NSAxLjYxNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDgyLCAxMDAlLCA1MCUpIiBkPSJNNzQuMDE2IDEwOC40ODNhNjYuNSA2Ni41IDAgMDAtLjY3NCAxLjYwNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDgzLCAxMDAlLCA1MCUpIiBkPSJNNzQuNDg4IDEwNy40MjNhNjYuNSA2Ni41IDAgMDAtLjcwMiAxLjU5MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDg0LCAxMDAlLCA1MCUpIiBkPSJNNzQuOTc4IDEwNi4zNzFhNjYuNSA2Ni41IDAgMDAtLjcyOSAxLjU4MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDg1LCAxMDAlLCA1MCUpIiBkPSJNNzUuNDg3IDEwNS4zMjhhNjYuNSA2Ni41IDAgMDAtLjc1NiAxLjU2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDg2LCAxMDAlLCA1MCUpIiBkPSJNNzYuMDE0IDEwNC4yOTRhNjYuNSA2Ni41IDAgMDAtLjc4NCAxLjU1NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDg3LCAxMDAlLCA1MCUpIiBkPSJNNzYuNTU5IDEwMy4yNjlhNjYuNSA2Ni41IDAgMDAtLjgxIDEuNTQiLz48cGF0aCBzdHJva2U9ImhzbCg4OCwgMTAwJSwgNTAlKSIgZD0iTTc3LjEyMSAxMDIuMjU0YTY2LjUgNjYuNSAwIDAwLS44MzcgMS41MjYiLz48cGF0aCBzdHJva2U9ImhzbCg4OSwgMTAwJSwgNTAlKSIgZD0iTTc3LjcwMiAxMDEuMjQ5YTY2LjUgNjYuNSAwIDAwLS44NjQgMS41MTEiLz48cGF0aCBzdHJva2U9ImhzbCg5MCwgMTAwJSwgNTAlKSIgZD0iTTc4LjMgMTAwLjI1NGE2Ni41IDY2LjUgMCAwMC0uODkgMS40OTYiLz48cGF0aCBzdHJva2U9ImhzbCg5MSwgMTAwJSwgNTAlKSIgZD0iTTc4LjkxNCA5OS4yN2E2Ni41IDY2LjUgMCAwMC0uOTE2IDEuNDgiLz48cGF0aCBzdHJva2U9ImhzbCg5MiwgMTAwJSwgNTAlKSIgZD0iTTc5LjU0NyA5OC4yOTZhNjYuNSA2Ni41IDAgMDAtLjk0MiAxLjQ2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDkzLCAxMDAlLCA1MCUpIiBkPSJNODAuMTk2IDk3LjMzNGE2Ni41IDY2LjUgMCAwMC0uOTY4IDEuNDQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woOTQsIDEwMCUsIDUwJSkiIGQ9Ik04MC44NjEgOTYuMzgzYTY2LjUgNjYuNSAwIDAwLS45OTIgMS40MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDk1LCAxMDAlLCA1MCUpIiBkPSJNODEuNTQ0IDk1LjQ0NGE2Ni41IDY2LjUgMCAwMC0xLjAxOCAxLjQxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDk2LCAxMDAlLCA1MCUpIiBkPSJNODIuMjQyIDk0LjUxN2E2Ni41IDY2LjUgMCAwMC0xLjA0MiAxLjM5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDk3LCAxMDAlLCA1MCUpIiBkPSJNODIuOTU3IDkzLjYwM2E2Ni41IDY2LjUgMCAwMC0xLjA2NiAxLjM3NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDk4LCAxMDAlLCA1MCUpIiBkPSJNODMuNjg3IDkyLjdhNjYuNSA2Ni41IDAgMDAtMS4wOSAxLjM1OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDk5LCAxMDAlLCA1MCUpIiBkPSJNODQuNDMzIDkxLjgxMmE2Ni41IDY2LjUgMCAwMC0xLjExMyAxLjMzOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwMCwgMTAwJSwgNTAlKSIgZD0iTTg1LjE5NCA5MC45MzZhNjYuNSA2Ni41IDAgMDAtMS4xMzYgMS4zMTkiLz48cGF0aCBzdHJva2U9ImhzbCgxMDEsIDEwMCUsIDUwJSkiIGQ9Ik04NS45NzEgOTAuMDczYTY2LjUgNjYuNSAwIDAwLTEuMTYgMS4zIi8+PHBhdGggc3Ryb2tlPSJoc2woMTAyLCAxMDAlLCA1MCUpIiBkPSJNODYuNzYzIDg5LjIyNGE2Ni41IDY2LjUgMCAwMC0xLjE4MiAxLjI3OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwMywgMTAwJSwgNTAlKSIgZD0iTTg3LjU2OSA4OC4zOWE2Ni41IDY2LjUgMCAwMC0xLjIwNCAxLjI1NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwNCwgMTAwJSwgNTAlKSIgZD0iTTg4LjM5IDg3LjU2OWE2Ni41IDY2LjUgMCAwMC0xLjIyNiAxLjIzNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwNSwgMTAwJSwgNTAlKSIgZD0iTTg5LjIyNCA4Ni43NjNhNjYuNSA2Ni41IDAgMDAtMS4yNDcgMS4yMTQiLz48cGF0aCBzdHJva2U9ImhzbCgxMDYsIDEwMCUsIDUwJSkiIGQ9Ik05MC4wNzMgODUuOTcxYTY2LjUgNjYuNSAwIDAwLTEuMjY4IDEuMTkzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTA3LCAxMDAlLCA1MCUpIiBkPSJNOTAuOTM2IDg1LjE5NGE2Ni41IDY2LjUgMCAwMC0xLjI4OSAxLjE3MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwOCwgMTAwJSwgNTAlKSIgZD0iTTkxLjgxMiA4NC40MzNhNjYuNSA2Ni41IDAgMDAtMS4zMSAxLjE0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwOSwgMTAwJSwgNTAlKSIgZD0iTTkyLjcgODMuNjg3YTY2LjUgNjYuNSAwIDAwLTEuMzI4IDEuMTI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTEwLCAxMDAlLCA1MCUpIiBkPSJNOTMuNjAzIDgyLjk1N2E2Ni41IDY2LjUgMCAwMC0xLjM0OCAxLjEwMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDExMSwgMTAwJSwgNTAlKSIgZD0iTTk0LjUxNyA4Mi4yNDJhNjYuNSA2Ni41IDAgMDAtMS4zNjcgMS4wNzgiLz48cGF0aCBzdHJva2U9ImhzbCgxMTIsIDEwMCUsIDUwJSkiIGQ9Ik05NS40NDQgODEuNTQ0YTY2LjUgNjYuNSAwIDAwLTEuMzg1IDEuMDUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTEzLCAxMDAlLCA1MCUpIiBkPSJNOTYuMzgzIDgwLjg2MWE2Ni41IDY2LjUgMCAwMC0xLjQwNCAxLjAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTE0LCAxMDAlLCA1MCUpIiBkPSJNOTcuMzM0IDgwLjE5NmE2Ni41IDY2LjUgMCAwMC0xLjQyMiAxLjAwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDExNSwgMTAwJSwgNTAlKSIgZD0iTTk4LjI5NiA3OS41NDdhNjYuNSA2Ni41IDAgMDAtMS40MzkuOTgiLz48cGF0aCBzdHJva2U9ImhzbCgxMTYsIDEwMCUsIDUwJSkiIGQ9Ik05OS4yNyA3OC45MTRhNjYuNSA2Ni41IDAgMDAtMS40NTYuOTU1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTE3LCAxMDAlLCA1MCUpIiBkPSJNMTAwLjI1NCA3OC4zYTY2LjUgNjYuNSAwIDAwLTEuNDcyLjkyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDExOCwgMTAwJSwgNTAlKSIgZD0iTTEwMS4yNDkgNzcuNzAyYTY2LjUgNjYuNSAwIDAwLTEuNDg5LjkwMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDExOSwgMTAwJSwgNTAlKSIgZD0iTTEwMi4yNTQgNzcuMTIxYTY2LjUgNjYuNSAwIDAwLTEuNTA0Ljg3NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEyMCwgMTAwJSwgNTAlKSIgZD0iTTEwMy4yNjkgNzYuNTU5YTY2LjUgNjYuNSAwIDAwLTEuNTE5Ljg1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIxLCAxMDAlLCA1MCUpIiBkPSJNMTA0LjI5NCA3Ni4wMTRhNjYuNSA2Ni41IDAgMDAtMS41MzQuODI0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIyLCAxMDAlLCA1MCUpIiBkPSJNMTA1LjMyOCA3NS40ODdhNjYuNSA2Ni41IDAgMDAtMS41NDguNzk3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIzLCAxMDAlLCA1MCUpIiBkPSJNMTA2LjM3MSA3NC45NzhhNjYuNSA2Ni41IDAgMDAtMS41NjEuNzciLz48cGF0aCBzdHJva2U9ImhzbCgxMjQsIDEwMCUsIDUwJSkiIGQ9Ik0xMDcuNDIzIDc0LjQ4OGE2Ni41IDY2LjUgMCAwMC0xLjU3NS43NDIiLz48cGF0aCBzdHJva2U9ImhzbCgxMjUsIDEwMCUsIDUwJSkiIGQ9Ik0xMDguNDgzIDc0LjAxNmE2Ni41IDY2LjUgMCAwMC0xLjU4Ny43MTUiLz48cGF0aCBzdHJva2U9ImhzbCgxMjYsIDEwMCUsIDUwJSkiIGQ9Ik0xMDkuNTUyIDczLjU2MmE2Ni41IDY2LjUgMCAwMC0xLjYuNjg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTI3LCAxMDAlLCA1MCUpIiBkPSJNMTEwLjYyOCA3My4xMjdhNjYuNSA2Ni41IDAgMDAtMS42MTIuNjYiLz48cGF0aCBzdHJva2U9ImhzbCgxMjgsIDEwMCUsIDUwJSkiIGQ9Ik0xMTEuNzExIDcyLjcxMWE2Ni41IDY2LjUgMCAwMC0xLjYyMi42MzEiLz48cGF0aCBzdHJva2U9ImhzbCgxMjksIDEwMCUsIDUwJSkiIGQ9Ik0xMTIuODAyIDcyLjMxNGE2Ni41IDY2LjUgMCAwMC0xLjYzMy42MDMiLz48cGF0aCBzdHJva2U9ImhzbCgxMzAsIDEwMCUsIDUwJSkiIGQ9Ik0xMTMuOSA3MS45MzZhNjYuNSA2Ni41IDAgMDAtMS42NDQuNTc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMxLCAxMDAlLCA1MCUpIiBkPSJNMTE1LjAwMyA3MS41NzhhNjYuNSA2Ni41IDAgMDAtMS42NTMuNTQ1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMyLCAxMDAlLCA1MCUpIiBkPSJNMTE2LjExMyA3MS4yMzhhNjYuNSA2Ni41IDAgMDAtMS42NjMuNTE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMzLCAxMDAlLCA1MCUpIiBkPSJNMTE3LjIyOSA3MC45MTlhNjYuNSA2Ni41IDAgMDAtMS42NzIuNDg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTM0LCAxMDAlLCA1MCUpIiBkPSJNMTE4LjM1IDcwLjYxOGE2Ni41IDY2LjUgMCAwMC0xLjY4LjQ1OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzNSwgMTAwJSwgNTAlKSIgZD0iTTExOS40NzYgNzAuMzM3YTY2LjUgNjYuNSAwIDAwLTEuNjg3LjQyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzNiwgMTAwJSwgNTAlKSIgZD0iTTEyMC42MDcgNzAuMDc2YTY2LjUgNjYuNSAwIDAwLTEuNjk1LjQiLz48cGF0aCBzdHJva2U9ImhzbCgxMzcsIDEwMCUsIDUwJSkiIGQ9Ik0xMjEuNzQyIDY5LjgzNWE2Ni41IDY2LjUgMCAwMC0xLjcwMS4zNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzOCwgMTAwJSwgNTAlKSIgZD0iTTEyMi44ODEgNjkuNjE0YTY2LjUgNjYuNSAwIDAwLTEuNzA3LjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTM5LCAxMDAlLCA1MCUpIiBkPSJNMTI0LjAyNCA2OS40MTJhNjYuNSA2Ni41IDAgMDAtMS43MTMuMzEiLz48cGF0aCBzdHJva2U9ImhzbCgxNDAsIDEwMCUsIDUwJSkiIGQ9Ik0xMjUuMTcgNjkuMjNhNjYuNSA2Ni41IDAgMDAtMS43MTguMjgiLz48cGF0aCBzdHJva2U9ImhzbCgxNDEsIDEwMCUsIDUwJSkiIGQ9Ik0xMjYuMzIgNjkuMDY5YTY2LjUgNjYuNSAwIDAwLTEuNzIzLjI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQyLCAxMDAlLCA1MCUpIiBkPSJNMTI3LjQ3MiA2OC45MjdhNjYuNSA2Ni41IDAgMDAtMS43MjcuMjIiLz48cGF0aCBzdHJva2U9ImhzbCgxNDMsIDEwMCUsIDUwJSkiIGQ9Ik0xMjguNjI2IDY4LjgwNmE2Ni41IDY2LjUgMCAwMC0xLjczLjE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQ0LCAxMDAlLCA1MCUpIiBkPSJNMTI5Ljc4MiA2OC43MDVhNjYuNSA2Ni41IDAgMDAtMS43MzMuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxNDUsIDEwMCUsIDUwJSkiIGQ9Ik0xMzAuOTQgNjguNjI0YTY2LjUgNjYuNSAwIDAwLTEuNzM2LjEzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTQ2LCAxMDAlLCA1MCUpIiBkPSJNMTMyLjEgNjguNTYzYTY2LjUgNjYuNSAwIDAwLTEuNzM5LjA5OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE0NywgMTAwJSwgNTAlKSIgZD0iTTEzMy4yNiA2OC41MjNhNjYuNSA2Ni41IDAgMDAtMS43NC4wNjgiLz48cGF0aCBzdHJva2U9ImhzbCgxNDgsIDEwMCUsIDUwJSkiIGQ9Ik0xMzQuNDIgNjguNTAzYTY2LjUgNjYuNSAwIDAwLTEuNzQuMDM4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQ5LCAxMDAlLCA1MCUpIiBkPSJNMTM1LjU4IDY4LjUwM2E2Ni41IDY2LjUgMCAwMC0xLjc0LjAwNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MCwgMTAwJSwgNTAlKSIgZD0iTTEzNi43NCA2OC41MjNBNjYuNSA2Ni41IDAgMDAxMzUgNjguNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MSwgMTAwJSwgNTAlKSIgZD0iTTEzNy45IDY4LjU2M2E2Ni41IDY2LjUgMCAwMC0xLjc0LS4wNTMiLz48cGF0aCBzdHJva2U9ImhzbCgxNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xMzkuMDYgNjguNjI0YTY2LjUgNjYuNSAwIDAwLTEuNzQtLjA4MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MywgMTAwJSwgNTAlKSIgZD0iTTE0MC4yMTggNjguNzA1YTY2LjUgNjYuNSAwIDAwLTEuNzM4LS4xMTQiLz48cGF0aCBzdHJva2U9ImhzbCgxNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xNDEuMzc0IDY4LjgwNmE2Ni41IDY2LjUgMCAwMC0xLjczNS0uMTQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTU1LCAxMDAlLCA1MCUpIiBkPSJNMTQyLjUyOCA2OC45MjdhNjYuNSA2Ni41IDAgMDAtMS43MzItLjE3NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1NiwgMTAwJSwgNTAlKSIgZD0iTTE0My42OCA2OS4wNjlhNjYuNSA2Ni41IDAgMDAtMS43MjktLjIwNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1NywgMTAwJSwgNTAlKSIgZD0iTTE0NC44MyA2OS4yM2E2Ni41IDY2LjUgMCAwMC0xLjcyNi0uMjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTU4LCAxMDAlLCA1MCUpIiBkPSJNMTQ1Ljk3NiA2OS40MTJhNjYuNSA2Ni41IDAgMDAtMS43MjEtLjI2NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1OSwgMTAwJSwgNTAlKSIgZD0iTTE0Ny4xMTkgNjkuNjE0YTY2LjUgNjYuNSAwIDAwLTEuNzE2LS4yOTUiLz48cGF0aCBzdHJva2U9ImhzbCgxNjAsIDEwMCUsIDUwJSkiIGQ9Ik0xNDguMjU4IDY5LjgzNWE2Ni41IDY2LjUgMCAwMC0xLjcxLS4zMjUiLz48cGF0aCBzdHJva2U9ImhzbCgxNjEsIDEwMCUsIDUwJSkiIGQ9Ik0xNDkuMzkzIDcwLjA3NmE2Ni41IDY2LjUgMCAwMC0xLjcwNC0uMzU0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTYyLCAxMDAlLCA1MCUpIiBkPSJNMTUwLjUyNCA3MC4zMzdhNjYuNSA2Ni41IDAgMDAtMS42OTgtLjM4NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2MywgMTAwJSwgNTAlKSIgZD0iTTE1MS42NSA3MC42MThhNjYuNSA2Ni41IDAgMDAtMS42OS0uNDE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTY0LCAxMDAlLCA1MCUpIiBkPSJNMTUyLjc3MSA3MC45MTlhNjYuNSA2Ni41IDAgMDAtMS42ODMtLjQ0NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2NSwgMTAwJSwgNTAlKSIgZD0iTTE1My44ODcgNzEuMjM4YTY2LjUgNjYuNSAwIDAwLTEuNjc2LS40NzIiLz48cGF0aCBzdHJva2U9ImhzbCgxNjYsIDEwMCUsIDUwJSkiIGQ9Ik0xNTQuOTk3IDcxLjU3OGE2Ni41IDY2LjUgMCAwMC0xLjY2Ny0uNTAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTY3LCAxMDAlLCA1MCUpIiBkPSJNMTU2LjEgNzEuOTM2YTY2LjUgNjYuNSAwIDAwLTEuNjU3LS41MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2OCwgMTAwJSwgNTAlKSIgZD0iTTE1Ny4xOTggNzIuMzE0YTY2LjUgNjYuNSAwIDAwLTEuNjQ4LS41NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2OSwgMTAwJSwgNTAlKSIgZD0iTTE1OC4yODkgNzIuNzExYTY2LjUgNjYuNSAwIDAwLTEuNjM5LS41ODgiLz48cGF0aCBzdHJva2U9ImhzbCgxNzAsIDEwMCUsIDUwJSkiIGQ9Ik0xNTkuMzcyIDczLjEyN2E2Ni41IDY2LjUgMCAwMC0xLjYyOC0uNjE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTcxLCAxMDAlLCA1MCUpIiBkPSJNMTYwLjQ0OCA3My41NjJhNjYuNSA2Ni41IDAgMDAtMS42MTctLjY0NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE3MiwgMTAwJSwgNTAlKSIgZD0iTTE2MS41MTcgNzQuMDE2YTY2LjUgNjYuNSAwIDAwLTEuNjA2LS42NzQiLz48cGF0aCBzdHJva2U9ImhzbCgxNzMsIDEwMCUsIDUwJSkiIGQ9Ik0xNjIuNTc3IDc0LjQ4OGE2Ni41IDY2LjUgMCAwMC0xLjU5My0uNzAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTc0LCAxMDAlLCA1MCUpIiBkPSJNMTYzLjYyOSA3NC45NzhhNjYuNSA2Ni41IDAgMDAtMS41ODEtLjcyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE3NSwgMTAwJSwgNTAlKSIgZD0iTTE2NC42NzIgNzUuNDg3YTY2LjUgNjYuNSAwIDAwLTEuNTY4LS43NTYiLz48cGF0aCBzdHJva2U9ImhzbCgxNzYsIDEwMCUsIDUwJSkiIGQ9Ik0xNjUuNzA2IDc2LjAxNGE2Ni41IDY2LjUgMCAwMC0xLjU1NC0uNzg0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTc3LCAxMDAlLCA1MCUpIiBkPSJNMTY2LjczMSA3Ni41NTlhNjYuNSA2Ni41IDAgMDAtMS41NC0uODEiLz48cGF0aCBzdHJva2U9ImhzbCgxNzgsIDEwMCUsIDUwJSkiIGQ9Ik0xNjcuNzQ2IDc3LjEyMWE2Ni41IDY2LjUgMCAwMC0xLjUyNi0uODM3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTc5LCAxMDAlLCA1MCUpIiBkPSJNMTY4Ljc1MSA3Ny43MDJhNjYuNSA2Ni41IDAgMDAtMS41MTEtLjg2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4MCwgMTAwJSwgNTAlKSIgZD0iTTE2OS43NDYgNzguM2E2Ni41IDY2LjUgMCAwMC0xLjQ5Ni0uODkiLz48cGF0aCBzdHJva2U9ImhzbCgxODEsIDEwMCUsIDUwJSkiIGQ9Ik0xNzAuNzMgNzguOTE0YTY2LjUgNjYuNSAwIDAwLTEuNDgtLjkxNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4MiwgMTAwJSwgNTAlKSIgZD0iTTE3MS43MDQgNzkuNTQ3YTY2LjUgNjYuNSAwIDAwLTEuNDY0LS45NDIiLz48cGF0aCBzdHJva2U9ImhzbCgxODMsIDEwMCUsIDUwJSkiIGQ9Ik0xNzIuNjY2IDgwLjE5NmE2Ni41IDY2LjUgMCAwMC0xLjQ0OC0uOTY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTg0LCAxMDAlLCA1MCUpIiBkPSJNMTczLjYxNyA4MC44NjFhNjYuNSA2Ni41IDAgMDAtMS40My0uOTkyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTg1LCAxMDAlLCA1MCUpIiBkPSJNMTc0LjU1NiA4MS41NDRhNjYuNSA2Ni41IDAgMDAtMS40MTMtMS4wMTgiLz48cGF0aCBzdHJva2U9ImhzbCgxODYsIDEwMCUsIDUwJSkiIGQ9Ik0xNzUuNDgzIDgyLjI0MmE2Ni41IDY2LjUgMCAwMC0xLjM5NS0xLjA0MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4NywgMTAwJSwgNTAlKSIgZD0iTTE3Ni4zOTcgODIuOTU3YTY2LjUgNjYuNSAwIDAwLTEuMzc2LTEuMDY2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTg4LCAxMDAlLCA1MCUpIiBkPSJNMTc3LjMgODMuNjg3YTY2LjUgNjYuNSAwIDAwLTEuMzU5LTEuMDkiLz48cGF0aCBzdHJva2U9ImhzbCgxODksIDEwMCUsIDUwJSkiIGQ9Ik0xNzguMTg4IDg0LjQzM2E2Ni41IDY2LjUgMCAwMC0xLjMzOC0xLjExMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5MCwgMTAwJSwgNTAlKSIgZD0iTTE3OS4wNjQgODUuMTk0YTY2LjUgNjYuNSAwIDAwLTEuMzE5LTEuMTM2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTkxLCAxMDAlLCA1MCUpIiBkPSJNMTc5LjkyNyA4NS45NzFhNjYuNSA2Ni41IDAgMDAtMS4zLTEuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxOTIsIDEwMCUsIDUwJSkiIGQ9Ik0xODAuNzc2IDg2Ljc2M2E2Ni41IDY2LjUgMCAwMC0xLjI3OS0xLjE4MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5MywgMTAwJSwgNTAlKSIgZD0iTTE4MS42MSA4Ny41NjlhNjYuNSA2Ni41IDAgMDAtMS4yNTctMS4yMDQiLz48cGF0aCBzdHJva2U9ImhzbCgxOTQsIDEwMCUsIDUwJSkiIGQ9Ik0xODIuNDMxIDg4LjM5YTY2LjUgNjYuNSAwIDAwLTEuMjM2LTEuMjI2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTk1LCAxMDAlLCA1MCUpIiBkPSJNMTgzLjIzNyA4OS4yMjRhNjYuNSA2Ni41IDAgMDAtMS4yMTQtMS4yNDciLz48cGF0aCBzdHJva2U9ImhzbCgxOTYsIDEwMCUsIDUwJSkiIGQ9Ik0xODQuMDI5IDkwLjA3M2E2Ni41IDY2LjUgMCAwMC0xLjE5My0xLjI2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5NywgMTAwJSwgNTAlKSIgZD0iTTE4NC44MDYgOTAuOTM2YTY2LjUgNjYuNSAwIDAwLTEuMTcxLTEuMjg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTk4LCAxMDAlLCA1MCUpIiBkPSJNMTg1LjU2NyA5MS44MTJhNjYuNSA2Ni41IDAgMDAtMS4xNDgtMS4zMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5OSwgMTAwJSwgNTAlKSIgZD0iTTE4Ni4zMTMgOTIuN2E2Ni41IDY2LjUgMCAwMC0xLjEyNS0xLjMyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwMCwgMTAwJSwgNTAlKSIgZD0iTTE4Ny4wNDMgOTMuNjAzYTY2LjUgNjYuNSAwIDAwLTEuMTAxLTEuMzQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjAxLCAxMDAlLCA1MCUpIiBkPSJNMTg3Ljc1OCA5NC41MTdhNjYuNSA2Ni41IDAgMDAtMS4wNzgtMS4zNjciLz48cGF0aCBzdHJva2U9ImhzbCgyMDIsIDEwMCUsIDUwJSkiIGQ9Ik0xODguNDU2IDk1LjQ0NGE2Ni41IDY2LjUgMCAwMC0xLjA1My0xLjM4NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwMywgMTAwJSwgNTAlKSIgZD0iTTE4OS4xMzkgOTYuMzgzYTY2LjUgNjYuNSAwIDAwLTEuMDMtMS40MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMDQsIDEwMCUsIDUwJSkiIGQ9Ik0xODkuODA0IDk3LjMzNGE2Ni41IDY2LjUgMCAwMC0xLjAwNC0xLjQyMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNSwgMTAwJSwgNTAlKSIgZD0iTTE5MC40NTMgOTguMjk2YTY2LjUgNjYuNSAwIDAwLS45OC0xLjQzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNiwgMTAwJSwgNTAlKSIgZD0iTTE5MS4wODYgOTkuMjdhNjYuNSA2Ni41IDAgMDAtLjk1NS0xLjQ1NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNywgMTAwJSwgNTAlKSIgZD0iTTE5MS43IDEwMC4yNTRhNjYuNSA2Ni41IDAgMDAtLjkyOC0xLjQ3MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwOCwgMTAwJSwgNTAlKSIgZD0iTTE5Mi4yOTggMTAxLjI0OWE2Ni41IDY2LjUgMCAwMC0uOTAzLTEuNDg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjA5LCAxMDAlLCA1MCUpIiBkPSJNMTkyLjg3OSAxMDIuMjU0YTY2LjUgNjYuNSAwIDAwLS44NzctMS41MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMTAsIDEwMCUsIDUwJSkiIGQ9Ik0xOTMuNDQxIDEwMy4yNjlhNjYuNSA2Ni41IDAgMDAtLjg1LTEuNTE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjExLCAxMDAlLCA1MCUpIiBkPSJNMTkzLjk4NiAxMDQuMjk0YTY2LjUgNjYuNSAwIDAwLS44MjQtMS41MzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMTIsIDEwMCUsIDUwJSkiIGQ9Ik0xOTQuNTEzIDEwNS4zMjhhNjYuNSA2Ni41IDAgMDAtLjc5Ny0xLjU0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxMywgMTAwJSwgNTAlKSIgZD0iTTE5NS4wMjIgMTA2LjM3MWE2Ni41IDY2LjUgMCAwMC0uNzctMS41NjEiLz48cGF0aCBzdHJva2U9ImhzbCgyMTQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTUuNTEyIDEwNy40MjNhNjYuNSA2Ni41IDAgMDAtLjc0Mi0xLjU3NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxNSwgMTAwJSwgNTAlKSIgZD0iTTE5NS45ODQgMTA4LjQ4M2E2Ni41IDY2LjUgMCAwMC0uNzE1LTEuNTg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjE2LCAxMDAlLCA1MCUpIiBkPSJNMTk2LjQzOCAxMDkuNTUyYTY2LjUgNjYuNSAwIDAwLS42ODctMS42Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjE3LCAxMDAlLCA1MCUpIiBkPSJNMTk2Ljg3MyAxMTAuNjI4YTY2LjUgNjYuNSAwIDAwLS42Ni0xLjYxMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxOCwgMTAwJSwgNTAlKSIgZD0iTTE5Ny4yODkgMTExLjcxMWE2Ni41IDY2LjUgMCAwMC0uNjMxLTEuNjIyIi8+PHBhdGggc3Ryb2tlPSJoc2woMjE5LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjY4NiAxMTIuODAyYTY2LjUgNjYuNSAwIDAwLS42MDMtMS42MzMiLz48cGF0aCBzdHJva2U9ImhzbCgyMjAsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguMDY0IDExMy45YTY2LjUgNjYuNSAwIDAwLS41NzQtMS42NDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMjEsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguNDIyIDExNS4wMDNhNjYuNSA2Ni41IDAgMDAtLjU0NS0xLjY1MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyMiwgMTAwJSwgNTAlKSIgZD0iTTE5OC43NjIgMTE2LjExM2E2Ni41IDY2LjUgMCAwMC0uNTE3LTEuNjYzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjIzLCAxMDAlLCA1MCUpIiBkPSJNMTk5LjA4MSAxMTcuMjI5YTY2LjUgNjYuNSAwIDAwLS40ODctMS42NzIiLz48cGF0aCBzdHJva2U9ImhzbCgyMjQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuMzgyIDExOC4zNWE2Ni41IDY2LjUgMCAwMC0uNDU4LTEuNjgiLz48cGF0aCBzdHJva2U9ImhzbCgyMjUsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuNjYzIDExOS40NzZhNjYuNSA2Ni41IDAgMDAtLjQyOS0xLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyNiwgMTAwJSwgNTAlKSIgZD0iTTE5OS45MjQgMTIwLjYwN2E2Ni41IDY2LjUgMCAwMC0uNC0xLjY5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyNywgMTAwJSwgNTAlKSIgZD0iTTIwMC4xNjUgMTIxLjc0MmE2Ni41IDY2LjUgMCAwMC0uMzctMS43MDEiLz48cGF0aCBzdHJva2U9ImhzbCgyMjgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDAuMzg2IDEyMi44ODFhNjYuNSA2Ni41IDAgMDAtLjM0LTEuNzA3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjI5LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjU4OCAxMjQuMDI0YTY2LjUgNjYuNSAwIDAwLS4zMS0xLjcxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzMCwgMTAwJSwgNTAlKSIgZD0iTTIwMC43NyAxMjUuMTdhNjYuNSA2Ni41IDAgMDAtLjI4LTEuNzE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjMxLCAxMDAlLCA1MCUpIiBkPSJNMjAwLjkzMSAxMjYuMzJhNjYuNSA2Ni41IDAgMDAtLjI1LTEuNzIzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjMyLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjA3MyAxMjcuNDcyYTY2LjUgNjYuNSAwIDAwLS4yMi0xLjcyNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzMywgMTAwJSwgNTAlKSIgZD0iTTIwMS4xOTQgMTI4LjYyNmE2Ni41IDY2LjUgMCAwMC0uMTktMS43MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzNCwgMTAwJSwgNTAlKSIgZD0iTTIwMS4yOTUgMTI5Ljc4MmE2Ni41IDY2LjUgMCAwMC0uMTYtMS43MzMiLz48cGF0aCBzdHJva2U9ImhzbCgyMzUsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuMzc2IDEzMC45NGE2Ni41IDY2LjUgMCAwMC0uMTMtMS43MzYiLz48cGF0aCBzdHJva2U9ImhzbCgyMzYsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDM3IDEzMi4xYTY2LjUgNjYuNSAwIDAwLS4wOTktMS43MzkiLz48cGF0aCBzdHJva2U9ImhzbCgyMzcsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDc3IDEzMy4yNmE2Ni41IDY2LjUgMCAwMC0uMDY4LTEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMzgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDk3IDEzNC40MmE2Ni41IDY2LjUgMCAwMC0uMDM4LTEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMzksIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDk3IDEzNS41OGE2Ni41IDY2LjUgMCAwMC0uMDA3LTEuNzQiLz48L2c+PGNpcmNsZSBjeD0iMTM1IiBjeT0iMTM1IiByPSIxMzMiIGZpbGw9InVybCgjYSkiIGNsYXNzPSJJcm9XaGVlbFNhdHVyYXRpb24iLz48Y2lyY2xlIGN4PSIxMzUiIGN5PSIxMzUiIHI9IjEzMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIGNsYXNzPSJJcm9XaGVlbEJvcmRlciIvPjwvc3ZnPg=='; - - dialog.querySelector('.satus-scrollbar__content').appendChild(close); - dialog.querySelector('.satus-scrollbar__content').appendChild(component_canvas); - - document.body.appendChild(dialog); - }); - - component.appendChild(component_value); - - return component; -}; -/*-------------------------------------------------------------- ->>> DIALOG ---------------------------------------------------------------*/ - -satus.components.dialog = function(element) { - var component = document.createElement('div'), - component_scrim = document.createElement('div'), - component_surface = document.createElement('div'), - component_scrollbar = satus.components.scrollbar(component_surface), - options = element.options || {}; - - component_scrim.className = 'satus-dialog__scrim'; - component_surface.className = 'satus-dialog__surface'; - - for (var key in element) { - satus.render(element[key], component_scrollbar); - } - - function close() { - window.removeEventListener('keydown', keydown); - - component.classList.add('satus-dialog--closing'); - - if (typeof element.onclose === 'function') { - element.onclose(); - } - - setTimeout(function() { - component.remove(); - }, satus.getAnimationDuration(component_surface)); - } - - function keydown(event) { - if (event.keyCode === 27) { - event.preventDefault(); - close(); - } - - if (event.keyCode === 9) { - var elements = component_surface.querySelectorAll('button, input'), - focused = false; - - event.preventDefault(); - - for (var i = 0, l = elements.length; i < l; i++) { - if (elements[i] === document.activeElement && elements[i + 1]) { - elements[i + 1].focus(); - - focused = true; - - i = l; - } - } - - if (focused === false) { - elements[0].focus(); - } - } - } - - component_scrim.addEventListener('click', close); - window.addEventListener('keydown', keydown); - - component.appendChild(component_scrim); - component.appendChild(component_surface); - - // OPTIONS - - if (options.left) { - component_surface.style.left = options.left + 'px'; - } - - if (options.top) { - component_surface.style.top = options.top + 'px'; - } - - if (options.width) { - component_surface.style.width = options.width + 'px'; - } - - if (options.height) { - component_surface.style.height = options.height + 'px'; - } - - // END OPTIONS - - return component; -}; -/*-------------------------------------------------------------- ->>> FOLDER ---------------------------------------------------------------*/ - -satus.components.folder = function(object) { - var component = document.createElement('button'); - - component.object = object; - - component.classList.add('satus-button'); - - component.addEventListener('click', function() { - var parent = document.querySelector(component.object.parent) || document.querySelector('.satus-main'); - - if (!component.object.parent || !parent.classList.contains('satus-main')) { - while (!parent.classList.contains('satus-main')) { - parent = parent.parentNode; - } - } - - parent.open(this.object, object.onopen); - }); - - if (satus.isset(object.label)) { - var component_label = document.createElement('span'); - - component_label.className = 'satus-folder__label'; - component_label.innerText = satus.locale.getMessage(object.label); - - component.appendChild(component_label); - } - - return component; -}; -/*-------------------------------------------------------------- ->>> HEADER ---------------------------------------------------------------*/ - -satus.components.header = function(object) { - var component = document.createElement('header'); - - for (var key in object) { - satus.render(object[key], component); - } - - return component; -}; -/*-------------------------------------------------------------- ->>> LIST ---------------------------------------------------------------*/ - -satus.components.list = function(object) { - var ul = document.createElement('ul'); - - if (object.compact === true) { - ul.classList.add('satus-list'); - ul.classList.add('satus-list--compact'); - } - - for (var key in object) { - if (satus.isset(object[key].type)) { - var li = document.createElement('li'); - - if (object.sortable === true) { - function mousedown(event) { - if (event.button === 0) { - var self = this, - dragging = false, - clone = false, - current_index = Array.from(self.parentNode.children).indexOf(self), - bounding = this.getBoundingClientRect(), - first_x = event.clientX, - first_y = event.clientY, - offset_x = event.clientX - bounding.left, - offset_y = event.clientY - bounding.top; - - function mousemove(event) { - if (Math.abs(first_y - event.clientY) <= 5) { - return false; - } - - if (dragging === false) { - clone = self.cloneNode(true); - - satus.cloneNodeStyles(self, clone); - clone.style.position = 'fixed'; - clone.style.pointerEvents = 'none'; - clone.style.backgroundColor = '#fff'; - self.style.visibility = 'hidden'; - - document.body.appendChild(clone); - - dragging = true; - } - - var x = bounding.left, //event.clientX - offset_x - y = event.clientY - offset_y, - index = Math.floor(y / self.offsetHeight) - 1; - - clone.style.left = x + 'px'; - clone.style.top = y + 'px'; - - //return false; - - if (index !== current_index && self.parentNode.children[index]) { - var new_clone = self.cloneNode(true); - - if (index > 0) { - self.parentNode.insertBefore(new_clone, self.parentNode.children[index].nextSibling); - } else { - self.parentNode.insertBefore(new_clone, self.parentNode.children[index]); - } - - self.remove(); - - self = new_clone; - - self.addEventListener('mousedown', mousedown); - - if (typeof object.onchange === 'function') { - object.onchange(current_index, index); - } - - current_index = index; - } - } - - function mouseup(event) { - if (clone) { - clone.remove(); - self.style.visibility = ''; - } - - window.removeEventListener('mousemove', mousemove); - window.removeEventListener('mouseup', mouseup); - } - - window.addEventListener('mousemove', mousemove); - window.addEventListener('mouseup', mouseup); - } - } - - li.addEventListener('mousedown', mousedown); - } - - satus.render(object[key], li); - - ul.appendChild(li); - } - } - - return ul; -}; - -/*-------------------------------------------------------------- ->>> MAIN ---------------------------------------------------------------*/ - -satus.components.main = function(object) { - var component = document.createElement('main'), - component_container = document.createElement('div'), - component_scrollbar = satus.components.scrollbar(component_container, object.scrollbar); - - component.history = [object]; - - component.back = function() { - var container = this.querySelector('.satus-main__container'), - component_container = document.createElement('div'), - component_scrollbar = satus.components.scrollbar(component_container); - - container.classList.add('satus-main__container--fade-out-right'); - component_container.className = 'satus-main__container satus-main__container--fade-in-left'; - - this.history.pop(); - - for (var key in this.history[this.history.length - 1]) { - satus.render(this.history[this.history.length - 1][key], component_scrollbar); - } - - this.appendChild(component_container); - - if (this.historyListener) { - this.historyListener(component_container); - } - - if (this.history[this.history.length - 1].onopen) { - component_scrollbar.onopen = this.history[this.history.length - 1].onopen; - - component_scrollbar.onopen(); - } - - setTimeout(function() { - container.remove(); - }, satus.getAnimationDuration(container)); - }; - - component.open = function(element, callback, animated) { - var container = this.querySelector('.satus-main__container'), - component_container = document.createElement('div'), - component_scrollbar = satus.components.scrollbar(component_container); - - if (animated !== false) { - container.classList.add('satus-main__container--fade-out-left'); - component_container.className = 'satus-main__container satus-main__container--fade-in-right'; - } else { - component_container.className = 'satus-main__container'; - } - - this.history.push(element); - - for (var key in this.history[this.history.length - 1]) { - satus.render(this.history[this.history.length - 1][key], component_scrollbar); - } - - this.appendChild(component_container); - - if (this.historyListener) { - this.historyListener(component_container); - } - - if (callback) { - component_scrollbar.onopen = callback; - - component_scrollbar.onopen(); - } - - setTimeout(function() { - container.remove(); - }, satus.getAnimationDuration(container)); - }; - - component_container.className = 'satus-main__container'; - - if (object.on && object.on.change) { - component.historyListener = object.on.change; - } - - if (component.historyListener) { - component.historyListener(component_container); - } - - for (var key in object) { - satus.render(object[key], component_scrollbar); - } - - component.appendChild(component_container); - - return component; -}; -/*----------------------------------------------------------------------------- ->>> SCROLL BAR ------------------------------------------------------------------------------*/ - -satus.components.scrollbar = function(parent, enabled) { - if (enabled === false) { - return parent; - } - - var component = document.createElement('div'), - component_wrapper = document.createElement('div'), - component_content = document.createElement('div'), - component_thumb = document.createElement('div'); - - component.className = 'satus-scrollbar'; - component_wrapper.className = 'satus-scrollbar__wrapper'; - component_content.className = 'satus-scrollbar__content'; - component_thumb.className = 'satus-scrollbar__thumb'; - - - // RESIZE - - function resize() { - component_content.style.width = component.offsetWidth + 'px'; - component_wrapper.style.height = component.offsetHeight + 'px'; - - if (component_wrapper.scrollHeight > component_wrapper.offsetHeight) { - component_thumb.style.height = component_wrapper.offsetHeight / component_wrapper.scrollHeight * component_wrapper.offsetHeight + 'px'; - } - } - - window.addEventListener('resize', resize); - - new MutationObserver(resize).observe(component_content, { - subtree: true, - childList: true - }); - - - // HOVER - - component.timeout = false; - - function active() { - if (component.timeout) { - clearTimeout(component.timeout); - - component.timeout = false; - } - - component.classList.add('active'); - - component.timeout = setTimeout(function() { - component.classList.remove('active'); - - component.timeout = false; - }, 1000); - } - - component.addEventListener('mousemove', active); - - - // SCROLL - - component_wrapper.addEventListener('scroll', function(event) { - active(); - - component_thumb.style.top = Math.floor(component_wrapper.scrollTop * (component_wrapper.offsetHeight - component_thumb.offsetHeight) / (component_wrapper.scrollHeight - component_wrapper.offsetHeight)) + 'px'; - }); - - component_thumb.addEventListener('mousedown', function(event) { - var offsetY = event.layerY; - - if (event.button !== 0) { - return false; - } - - function mousemove(event) { - var offset = 100 / ((component.offsetHeight - component_thumb.offsetHeight) / (event.clientY - offsetY - component.getBoundingClientRect().top)), - scroll = component_wrapper.scrollHeight - component.offsetHeight; - - component_wrapper.scrollTop = scroll / 100 * offset; - - event.preventDefault(); - - return false; - } - - function mouseup() { - window.removeEventListener('mouseup', mouseup); - window.removeEventListener('mousemove', mousemove); - } - - window.addEventListener('mouseup', mouseup); - window.addEventListener('mousemove', mousemove); - }); - - component_wrapper.appendChild(component_content); - component.appendChild(component_wrapper); - component.appendChild(component_thumb); - - parent.appendChild(component); - - return component_content; -}; -/*-------------------------------------------------------------- ->>> SECTION ---------------------------------------------------------------*/ - -satus.components.section = function(element) { - var component = document.createElement('section'); - - for (var key in element) { - satus.render(element[key], component); - } - - return component; -}; - -/*-------------------------------------------------------------- ->>> SELECT ---------------------------------------------------------------*/ - -satus.components.select = function(element) { - var component = document.createElement('button'), - component_label = document.createElement('span'), - component_value = document.createElement('span'), - label = satus.locale.getMessage(element.label); - - component.classList.add('satus-button'); - - component_label.className = 'satus-select__label'; - component_label.innerText = label; - - component_value.className = 'satus-select__value'; - - if (element.storage_key) { - var value = satus.storage.get(element.storage_key); - - component.dataset.storageKey = element.storage_key; - - for (var i = 0, l = element.options.length; i < l; i++) { - if (value === element.options[i].value) { - value = element.options[i].label; - } - } - - component_value.innerText = satus.locale.getMessage(value || element.options[0].label); - } - - component.onclick = function() { - var position = this.getBoundingClientRect(), - dialog = { - type: 'dialog', - class: 'satus-dialog--select-component' - }; - - for (var key in element.options) { - dialog[key] = element.options[key]; - - dialog[key].type = 'button'; - dialog[key].dataset = {}; - dialog[key].dataset.key = element.options[key].label; - dialog[key].dataset.value = element.options[key].value; - dialog[key].onclick = function() { - component_value.innerText = satus.locale.getMessage(this.dataset.key); - - satus.storage.set(component.dataset.storageKey, this.dataset.value); - - var parent = this.parentNode; - - while (!parent.classList.contains('satus-dialog')) { - parent = parent.parentNode; - } - - parent.querySelector('.satus-dialog__scrim').click(); - }; - } - - satus.render(dialog); - }; - - component.appendChild(component_label); - component.appendChild(component_value); - - return component; -}; -/*------------------------------------------------------------------------------ ->>> SHORTCUT -------------------------------------------------------------------------------*/ - -satus.components.shortcut = function(element) { - var self = this, - value = (satus.storage.get(element.storage_key) ? JSON.parse(satus.storage.get(element.storage_key)) : false) || element.value || {}, - component = document.createElement('div'), - component_label = document.createElement('span'), - component_value = document.createElement('span'), - mousewheel_timeout = false, - mousewheel_only = false; - - component_label.className = 'satus-shortcut__label'; - component_value.className = 'satus-shortcut__value'; - - function update(canvas) { - let text_value = [], - keys_value = []; - - if (value.altKey === true) { - text_value.push('Alt'); - keys_value.push('

Alt
'); - } - - if (value.ctrlKey === true) { - text_value.push('Ctrl'); - keys_value.push('
Ctrl
'); - } - - if (value.shiftKey === true) { - text_value.push('Shift'); - keys_value.push('
Shift
'); - } - - if (value.key === ' ') { - text_value.push('Space bar'); - keys_value.push('
Space bar
'); - - } else if (typeof value.key === 'string' && ['Shift', 'Control', 'Alt'].indexOf(value.key) === -1) { - if (value.key === 'ArrowUp') { - text_value.push('↑'); - keys_value.push('
'); - } else if (value.key === 'ArrowRight') { - text_value.push('→'); - keys_value.push('
'); - } else if (value.key === 'ArrowDown') { - text_value.push('↓'); - keys_value.push('
'); - } else if (value.key === 'ArrowLeft') { - text_value.push('←'); - keys_value.push('
'); - } else { - let key = value.key.toUpperCase(); - - text_value.push(key); - keys_value.push('
' + key + '
'); - } - } - - if (value.wheel) { - keys_value.push('
'); - } - - component_value.innerText = text_value.join('+'); - - if (canvas) { - if (keys_value.length > 0) { - canvas.innerHTML = keys_value.join('
'); - } else { - canvas.innerText = satus.locale.getMessage('pressAnyKeyOrUseMouseWheel'); - } - } - } - - update(); - - component_value.dataset.value = component_value.innerText; - - component_label.innerText = satus.locale.getMessage(element.label); - - component.addEventListener('click', function() { - let component_dialog = document.createElement('div'), - component_dialog_label = document.createElement('span'), - component_scrim = document.createElement('div'), - component_surface = document.createElement('div'), - component_canvas = document.createElement('div'), - component_section = document.createElement('section'), - component_button_reset = document.createElement('div'), - component_button_cancel = document.createElement('div'), - component_button_save = document.createElement('div'); - - component_dialog.className = 'satus-dialog satus-dialog_open'; - component_dialog_label.className = 'satus-shortcut-dialog-label'; - component_scrim.className = 'satus-dialog__scrim'; - component_surface.className = 'satus-dialog__surface satus-dialog__surface_shortcut'; - component_canvas.className = 'satus-shortcut__canvas'; - component_section.className = 'satus-section satus-section--align-end satus-section_shortcut'; - component_button_reset.className = 'satus-button satus-button_shortcut'; - component_button_cancel.className = 'satus-button satus-button_shortcut'; - component_button_save.className = 'satus-button satus-button_shortcut'; - - component_dialog_label.innerText = component_label.innerText; - component_button_reset.innerText = satus.locale.getMessage('reset'); - component_button_cancel.innerText = satus.locale.getMessage('cancel'); - component_button_save.innerText = satus.locale.getMessage('save'); - - update(component_canvas); - - function keydown(event) { - event.preventDefault(); - event.stopPropagation(); - - mousewheel_only = false; - clearTimeout(mousewheel_timeout); - - value = { - key: event.key, - keyCode: event.keyCode, - shiftKey: event.shiftKey, - ctrlKey: event.ctrlKey, - altKey: event.altKey - }; - - update(component_canvas); - - return false; - } - - function mousewheel(event) { - event.stopPropagation(); - - if (mousewheel_only === true) { - delete value.shiftKey; - delete value.altKey; - delete value.ctrlKey; - delete value.keyCode; - delete value.key; - } - - clearTimeout(mousewheel_timeout); - - mousewheel_timeout = setTimeout(function() { - mousewheel_only = true; - }, 300); - - value.wheel = event.deltaY; - - update(component_canvas); - - return false; - } - - window.addEventListener('keydown', keydown); - window.addEventListener('mousewheel', mousewheel); - - function close(clear = true) { - window.removeEventListener('keydown', keydown); - window.removeEventListener('mousewheel', mousewheel); - - if (clear === true) { - component_value.innerText = component_value.dataset.value; - } - - component_dialog.classList.remove('satus-dialog_open'); - - setTimeout(function() { - component_dialog.remove(); - }, Number(document.defaultView.getComputedStyle(component_dialog, '').getPropertyValue('animation-duration').replace(/[^0-9.]/g, '') * 1000)); - } - - component_scrim.addEventListener('click', close); - component_button_reset.addEventListener('click', function() { - satus.storage.set(element.storage_key, null); - close(); - value = (satus.storage.get(element.storage_key) ? JSON.parse(satus.storage.get(element.storage_key)) : false) || object.value || {}; - update(); - }); - component_button_cancel.addEventListener('click', close); - component_button_save.addEventListener('click', function() { - satus.storage.set(element.storage_key, JSON.stringify(value)); - close(false); - }); - - component_section.appendChild(component_button_reset); - component_section.appendChild(component_button_cancel); - component_section.appendChild(component_button_save); - - component_surface.appendChild(component_dialog_label); - component_surface.appendChild(component_canvas); - component_surface.appendChild(component_section); - - component_dialog.appendChild(component_scrim); - component_dialog.appendChild(component_surface); - - document.body.appendChild(component_dialog); - }); - - component.appendChild(component_label); - component.appendChild(component_value); - - return component; -}; -/*-------------------------------------------------------------- ->>> SLIDER ---------------------------------------------------------------*/ - -satus.components.slider = function(element) { - var component = document.createElement('div'); - - // LABEL - if (satus.isset(element.label)) { - var component_label = document.createElement('span'); - - component_label.className = 'satus-slider__label'; - component_label.innerText = satus.locale.getMessage(element.label); - - component.appendChild(component_label); - } - - - // RANGE - var component_range = document.createElement('input'); - - component_range.type = 'range'; - component_range.className = 'satus-slider__range'; - component_range.min = element.min || 0; - component_range.max = element.max || 10; - component_range.step = element.step || 1; - - component_range.oninput = function() { - var track = this.parentNode.querySelector('.satus-slider__track'), - thumb = this.parentNode.querySelector('.satus-slider__thumb'), - min = Number(this.min) || 0, - max = Number(this.max) || 1, - step = Number(this.step) || 1, - value = Number(this.value) || 0, - offset = (value - min) / (max - min) * 100; - - track.style.width = 'calc(' + offset + '% - ' + Math.floor(offset * 12 / 100) + 'px)'; - - satus.storage.set(this.dataset.storageKey, Number(this.value)); - - component_thumb.dataset.value = this.value; - - if (component.onchange) { - component.onchange(Number(this.value)); - } - }; - - component.change = function(value) { - component_range.value = value; - - component_thumb.dataset.value = value; - - component_range.oninput(); - }; - - component.addEventListener('mousedown', function() { - function mousemove() { - component.classList.add('satus-slider--dragging'); - } - - function mouseup() { - component.classList.remove('satus-slider--dragging'); - - window.removeEventListener('mousemove', mousemove); - window.removeEventListener('mouseup', mouseup); - } - - window.addEventListener('mousemove', mousemove); - window.addEventListener('mouseup', mouseup); - }); - - if (element.onchange) { - component.onchange = element.onchange; - } - - component.appendChild(component_range); - - - // CONTAINER - var component_container = document.createElement('div'); - - component_container.className = 'satus-slider__container'; - - component.appendChild(component_container); - - - // TRACK - var component_track_container = document.createElement('div'), - component_track = document.createElement('div'); - - component_track_container.className = 'satus-slider__track-container'; - component_track.className = 'satus-slider__track'; - - component_track_container.appendChild(component_track); - component_container.appendChild(component_track_container); - - - // FOCUS RING - var component_ring = document.createElement('div'); - - component_ring.className = 'satus-slider__ring'; - - component_track.appendChild(component_ring); - - - // THUMB - var component_thumb = document.createElement('div'); - - component_thumb.className = 'satus-slider__thumb'; - - component_track.appendChild(component_thumb); - - if (element.storage_key) { - var value = satus.storage.get(element.storage_key) || element.value; - - component_range.dataset.storageKey = element.storage_key; - - if (value) { - component_range.value = value; - - if (!satus.isset(value)) { - value = element.value; - } - - var offset = (Number(component_range.value) - Number(component_range.min)) / (Number(component_range.max) - Number(component_range.min)) * 100; - - component_track.style.width = 'calc(' + offset + '% - ' + Math.floor(offset * 12 / 100) + 'px)'; - component_thumb.dataset.value = value; - } else { - component_range.value = 0; - component_thumb.dataset.value = 0; - } - } - - - return component; -}; -/*-------------------------------------------------------------- ->>> SWITCH ---------------------------------------------------------------*/ - -satus.components.switch = function(element) { - var component = document.createElement('div'), - value; - - // LABEL - if (satus.isset(element.label)) { - var component_label = document.createElement('span'); - - component_label.className = 'satus-switch__label'; - component_label.innerText = satus.locale.getMessage(element.label); - - component.appendChild(component_label); - } - - - // INPUT - var component_input = document.createElement('input'); - - component_input.type = 'checkbox'; - component_input.className = 'satus-switch__input'; - - if (element.storage_key) { - value = satus.storage.get(element.storage_key); - - component_input.dataset.storageKey = element.storage_key; - } - - if (!satus.isset(value)) { - value = element.value; - } - - if (value) { - component_input.checked = value; - } - - component_input.addEventListener('change', function() { - satus.storage.set(this.dataset.storageKey, this.checked); - }); - - component.appendChild(component_input); - - - // TRACK - var component_track = document.createElement('div'); - - component_track.className = 'satus-switch__track'; - - component.appendChild(component_track); - - - // MOUSE MOVE - component_track.addEventListener('mousedown', function(event) { - var prevent = false, - difference = 0; - - function click(event) { - event.preventDefault(); - event.stopPropagation(); - - component.removeEventListener('click', click); - - return false; - } - - function mousemove(event) { - var checkbox = component.querySelector('input'), - movement = event.movementX; - - if (movement * difference < 0) { - difference = 0; - } else { - difference += movement; - - if (prevent === false) { - prevent = true; - component.addEventListener('click', click); - } - } - - if (difference < -5) { - checkbox.checked = false; - } else if (difference > 5) { - checkbox.checked = true; - } - } - - function mouseup(event) { - window.removeEventListener('mousemove', mousemove); - window.removeEventListener('mouseup', mouseup); - } - - window.addEventListener('mousemove', mousemove); - window.addEventListener('mouseup', mouseup); - }); - - - // TOUCH MOVE - component_track.addEventListener('touchstart', function(event) { - var previous_x = 0, - difference = 0; - - function mousemove(event) { - var checkbox = component.querySelector('input'), - movement = event.touches[0].clientX - previous_x; - - previous_x = event.touches[0].clientX; - - if (movement * difference < 0) { - difference = 0; - } else { - difference += movement; - } - - if (difference < -5) { - checkbox.checked = false; - } else if (difference > 5) { - checkbox.checked = true; - } - } - - function mouseup(event) { - window.removeEventListener('touchmove', mousemove); - window.removeEventListener('touchend', mouseup); - } - - window.addEventListener('touchmove', mousemove); - window.addEventListener('touchend', mouseup); - }); - - - return component; -}; -satus.components.table = function(item) { - var component = document.createElement('div'), - component_head = document.createElement('div'), - component_body = document.createElement('div'), - component_scrollbar = satus.components.scrollbar(component_body, item.scrollbar), - table = document.createElement('div'); - - table.className = 'satus-table__container'; - component_head.className = 'satus-table__head'; - component_body.className = 'satus-table__body'; - - function update(data) { - var pages = Math.ceil(component.data.length / component.paging), - start = Math.max((component.pagingIndex - 1) * component.paging, 0), - end = component.pagingIndex * component.paging; - - if (end > data.length) { - end = data.length; - } else if (end === 0) { - end = component.paging; - } - - table.innerHTML = ''; - - if (data) { - for (var i = start, l = end; i < l; i++) { - if (data[i]) { - var tr = document.createElement('div'); - - tr.className = 'satus-table__row'; - - for (var j = 0, k = data[i].length; j < k; j++) { - var td = document.createElement('div'); - - - td.className = 'satus-table__cell'; - - if (data[i][j].html) { - td.innerHTML = data[i][j].html; - } else if (data[i][j].text) { - td.innerText = data[i][j].text; - } - - if (data[i][j].onrender) { - td.onrender = data[i][j].onrender; - - td.onrender(); - } - - tr.appendChild(td); - } - - table.appendChild(tr); - } - } - } - - component.pagingUpdate(); - } - - function sortArray(array, index, mode) { - if (mode === 'asc') { - if (typeof array[0][index].text === 'number') { - sorted = array.sort(function(a, b) { - return a[index].text - b[index].text; - }); - } else { - sorted = array.sort(function(a, b) { - return a[index].text.localeCompare(b[index].text); - }); - } - } else { - if (typeof array[0][index].text === 'number') { - sorted = array.sort(function(a, b) { - return b[index].text - a[index].text; - }); - } else { - sorted = array.sort(function(a, b) { - return b[index].text.localeCompare(a[index].text); - }); - } - } - - return array; - } - - function sort() { - var mode = this.dataset.sorting, - index = Array.prototype.indexOf.call(this.parentElement.children, this), - sorted; - - if (component.data[0][index] && component.data[0][index].hasOwnProperty('text')) { - if (mode === 'none') { - mode = 'asc'; - } else if (mode === 'asc') { - mode = 'desc'; - } else if (mode === 'desc') { - mode = 'asc'; - } - - if (this.parentNode.querySelector('div[data-sorting=asc], div[data-sorting=desc]')) { - this.parentNode.querySelector('div[data-sorting=asc], div[data-sorting=desc]').dataset.sorting = 'none'; - } - - this.dataset.sorting = mode; - - sorted = sortArray(component.data, index, mode); - - update(sorted); - } else { - this.dataset.sorting = false; - } - } - - function resize() {} - - for (var i = 0, l = item.columns.length; i < l; i++) { - var column = document.createElement('div'); - - column.dataset.sorting = 'none'; - column.addEventListener('click', sort); - column.innerHTML = '' + item.columns[i].title + ''; - - component_head.appendChild(column); - } - - component_scrollbar.appendChild(table); - - component.appendChild(component_head); - component.appendChild(component_body); - - component.data = item.data; - component.paging = item.paging; - component.pagingIndex = 0; - - component.update = function(data, index, mode) { - if (satus.isset(data)) { - this.data = data; - } - - if (this.querySelector('div[data-sorting=asc], div[data-sorting=desc]')) { - var mode = this.querySelector('div[data-sorting=asc], div[data-sorting=desc]').dataset.sorting, - index = Array.prototype.indexOf.call(this.querySelector('div[data-sorting=asc], div[data-sorting=desc]').parentElement.children, this.querySelector('div[data-sorting=asc], div[data-sorting=desc]')); - - update(sortArray(this.data, index, mode)); - } else { - for (var i = 0, l = item.columns.length; i < l; i++) { - if (item.columns[i].hasOwnProperty('sorting')) { - if (this.data[0][i].hasOwnProperty('text')) { - this.querySelectorAll('.satus-table__head > div')[i].dataset.sorting = item.columns[i].sorting; - } else { - this.querySelectorAll('.satus-table__head > div')[i].dataset.sorting = false; - } - - update(sortArray(this.data, i, item.columns[i].sorting)); - - i = l; - } - } - } - }; - - - // PAGING - - function pagingUpdate() { - if (typeof this.paging === 'number') { - var pages = Math.ceil(this.data.length / this.paging); - - this.querySelector('.satus-table__paging').innerHTML = ''; - - for (var i = 1; i <= pages; i++) { - var button = document.createElement('button'); - - if (i === (this.pagingIndex || 1)) { - button.className = 'active'; - } - - button.innerText = i; - button.parentComponent = this; - button.addEventListener('click', function() { - if (this.parentNode.querySelector('button.active')) { - this.parentNode.querySelector('button.active').classList.remove('active'); - } - - this.classList.add('active'); - - this.parentComponent.pagingIndex = Number(this.innerText); - this.parentComponent.update(this.parentComponent.data); - }); - - this.querySelector('.satus-table__paging').appendChild(button); - } - } - - resize(); - } - - component.pagingUpdate = pagingUpdate; - - component_paging = document.createElement('div'); - - component_paging.className = 'satus-table__paging'; - - component_scrollbar.appendChild(component_paging); - - // END PAGING - - if (item.data) { - component.update(item.data); - } - - return component; -}; - -/*-------------------------------------------------------------- ->>> TEXT ---------------------------------------------------------------*/ - -satus.components.text = function(element) { - var component = document.createElement('span'); - - if (satus.isset(element.label)) { - var component_label = document.createElement('span'); - - component_label.className = 'satus-text__label'; - component_label.innerText = satus.locale.getMessage(element.label); - - component.appendChild(component_label); - } - - if (satus.isset(element.value)) { - var component_value = document.createElement('span'); - - component_value.className = 'satus-text__value'; - component_value.innerText = satus.locale.getMessage(element.value); - - component.appendChild(component_value); - } - - return component; -}; -/*-------------------------------------------------------------- ->>> TEXT FIELD ---------------------------------------------------------------*/ - -satus.components.textField = function(element) { - var component = element.rows > 1 ? document.createElement('textarea') : document.createElement('input'); - - component.type = 'text'; - - return component; -}; \ No newline at end of file diff --git a/3.120-pre/youtube-scripts.js b/3.120-pre/youtube-scripts.js deleted file mode 100644 index c8646f18e..000000000 --- a/3.120-pre/youtube-scripts.js +++ /dev/null @@ -1,3196 +0,0 @@ -/*------------------------------------------------------------------------------ ->>> TABLE OF CONTENTS: --------------------------------------------------------------------------------- -0.0 Global variable -0.0 Page update listener -0.0 Initialization -0.0 Onfocus -0.0 Onplay - -1.0 General - 1.1 YouTube home page - 1.2 Collapse of subscription sections - 1.3 Add "Scroll to top" - 1.4 Confirmation before closing - 1.5 Mark watched videos - 1.6 Only one player instance playing - 1.7 HD thumbnails -2.0 Appearance - 2.1 Player - 2.1.1 Forced theater mode - 2.1.2 HD thumbnail - 2.1.3 Always show progress bar - 2.2 Sidebar - 2.2.1 Livechat - 2.2.2 Relative videos - 2.3 Details - 2.3.1 How long ago the video was uploaded - 2.3.2 Show channel videos count - 2.5 Comments -3.0 Themes - 3.1 My colors - 3.2 Bluelight - 3.3 Dim - 3.4 Font - 3.5 Themes -4.0 Player - 4.1 Autoplay - 4.2 Autopause when switching tabs - 4.3 Forced playback speed - 4.4 Subtitles - 4.5 Up next autoplay - 4.6 Ads - 4.7 Custom mini-player - 4.8 Auto fullscreen - 4.9 Quality - 4.10 Codec h.264 - 4.11 Allow 60fps - 4.12 Forced volume - 4.13 Loudness normalization - 4.14 Screenshot - 4.15 Repeat - 4.16 Rotate - 4.17 Popup player -5.0 Playlist - 5.1 Up next autoplay - 5.2 Reverse - 5.3 Repeat - 5.4 Shuffle -6.0 Channel - 6.1 Default channel tab -7.0 Shortcuts -8.0 Blacklist -9.0 Analyzer -10.0 Settings - 10.1 ImprovedTube icon - 10.2 Delete YouTube cookies - 10.3 YouTube language -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -0.0 GLOBAL VARIABLE --------------------------------------------------------------------------------- -The variable "ImprovedTube" is used on the YouTube side. -------------------------------------------------------------------------------*/ - -var ImprovedTube = {}; - - -/*------------------------------------------------------------------------------ -0.0 PAGE UPDATE LISTENER -------------------------------------------------------------------------------*/ - -ImprovedTube.pageUpdateListener = function() { - window.addEventListener('yt-page-data-updated', function() { - ImprovedTube.played_before_blur = false; - - ImprovedTube.pageType(); - ImprovedTube.youtubeHomePage(); - ImprovedTube.collapseOfSubscriptionSections(); - ImprovedTube.markWatchedVideos(); - ImprovedTube.hdThumbnails(); - - ImprovedTube.videoPageUpdate(); - - ImprovedTube.blacklist(); - - ImprovedTube.improvedtubeYoutubeIcon(); - }); -}; - -ImprovedTube.videoPageUpdate = function() { - if (this.page_type === 'video') { - this.forcedTheaterMode(); - this.playerHdThumbnail(); - this.alwaysShowProgressBar(); - this.livechat(); - this.relatedVideos(); - this.howLongAgoTheVideoWasUploaded(); - this.channelVideosCount(); - this.comments(); - - this.upNextAutoplay(); - this.playerAutofullscreen(); - this.playerScreenshotButton(); - this.playerRepeatButton(); - this.playerRotateButton(); - this.playerPopupButton(); - - this.playlistUpNextAutoplay(); - this.playlistReverse(); - this.playlistRepeat(); - this.playlistShuffle(); - - this.channelDefaultTab(); - } -}; - - -/*------------------------------------------------------------------------------ -0.0 PLAYER UPDATE -------------------------------------------------------------------------------*/ - -ImprovedTube.playerUpdate = function() { - this.playerPlaybackSpeed(); - this.subtitles(); - this.playerAds(); - this.mini_player(); - this.playerQuality(); - this.playerVolume(); - this.playlistUpNextAutoplay(); -}; - - -/*------------------------------------------------------------------------------ -0.0 DOM CONTENT LOADED -------------------------------------------------------------------------------*/ - -ImprovedTube.DOMContentLoaded = function() { - window.addEventListener('DOMContentLoaded', function() { - ImprovedTube.youtubeHomePage(); - ImprovedTube.collapseOfSubscriptionSections(); - ImprovedTube.addScrollToTop(); - ImprovedTube.confirmationBeforeClosing(); - ImprovedTube.markWatchedVideos(); - ImprovedTube.hdThumbnails(); - - ImprovedTube.myColors(); - ImprovedTube.bluelight(); - ImprovedTube.dim(); - ImprovedTube.font(); - ImprovedTube.themes(); - - ImprovedTube.videoPageUpdate(); - - ImprovedTube.blacklist(); - - ImprovedTube.improvedtubeYoutubeIcon(); - - ImprovedTube.pageUpdateListener(); - }); -}; - - -/*------------------------------------------------------------------------------ -0.0 INITIALIZATION -------------------------------------------------------------------------------*/ - -ImprovedTube.init = function() { - this.playerH264(); - this.player60fps(); - this.pageType(); - this.shortcuts(); - this.DOMContentLoaded(); - this.onplay(); - this.onkeydown(); - this.onmousedown(); -}; - - -/*------------------------------------------------------------------------------ -0.0 PAGE TYPE -------------------------------------------------------------------------------*/ - -ImprovedTube.video_url = false; -ImprovedTube.page_type = false; - -ImprovedTube.pageType = function() { - var href = location.href, - type = ''; - - if (location.pathname == '/') { - type = 'home'; - } else if (/\/watch\?/.test(href)) { - type = 'video'; - } else if (/\/channel|user\//.test(href)) { - type = 'channel'; - } - - this.page_type = type; - - document.documentElement.setAttribute('it-page-type', type); -}; - - -/*------------------------------------------------------------------------------ -0.0 ONFOCUS -------------------------------------------------------------------------------*/ - -ImprovedTube.focus = false; -ImprovedTube.played_before_blur = false; - -ImprovedTube.onfocus = function() { - this.onlyOnePlayerInstancePlaying(); - this.playerAutopauseWhenSwitchingTabs(); -}; - - -/*------------------------------------------------------------------------------ -0.0 ONPLAY -------------------------------------------------------------------------------*/ - -ImprovedTube.onplay = function() { - HTMLMediaElement.prototype.play = (function(original) { - return function() { - ImprovedTube.autoplay(this); - ImprovedTube.playerLoudnessNormalization(); - - if (ImprovedTube.video_url !== location.href) { - ImprovedTube.video_url = location.href; - - ImprovedTube.playerUpdate(); - } - - return original.apply(this, arguments); - } - })(HTMLMediaElement.prototype.play); -}; - - -/*------------------------------------------------------------------------------ -0.0 ONKEYDOWN -------------------------------------------------------------------------------*/ - -ImprovedTube.onkeydown = function() { - window.addEventListener('keydown', function() { - if ( - document.querySelector('.html5-video-player') && - document.querySelector('.html5-video-player').classList.contains('ad-showing') === false - ) { - ImprovedTube.allow_autoplay = true; - } - }, true); -}; - - -/*------------------------------------------------------------------------------ -0.0 ONMOUSEDOWN -------------------------------------------------------------------------------*/ - -ImprovedTube.onmousedown = function(event) { - window.addEventListener('mousedown', function(event) { - for (var i = 0, l = event.path.length; i < l; i++) { - if ( - document.querySelector('.html5-video-player') && - document.querySelector('.html5-video-player').classList.contains('ad-showing') === false && - event.path[i].classList && - ( - event.path[i].classList.contains('html5-main-video') || - event.path[i].classList.contains('ytp-play-button') - ) - ) { - ImprovedTube.allow_autoplay = true; - } - } - }, true); -}; - - -ImprovedTube.getCookieValueByName = function(name) { - var match = document.cookie.match(new RegExp('([; ]' + name + '|^' + name + ')([^\\s;]*)', 'g')); - - if (match) { - var cookie = match[0]; - - return cookie.replace(name + '=', '').replace(' ', ''); - } else - return ''; -}; - -ImprovedTube.getParam = function(query, name) { - var params = query.split('&'), - param = false; - - for (var i = 0; i < params.length; i++) { - params[i] = params[i].split('='); - - if (params[i][0] == name) { - param = params[i][1]; - } - } - - if (param) { - return param; - } else { - return false; - } -}; - -ImprovedTube.getParams = function(query) { - var params = query.split('&'), - result = {}; - - for (var i = 0, l = params.length; i < l; i++) { - params[i] = params[i].split('='); - - result[params[i][0]] = params[i][1]; - } - - return result; -}; - -ImprovedTube.setCookie = function(name, value) { - var date = new Date(); - - date.setTime(date.getTime() + 3.154e+10); - - document.cookie = name + '=' + value + '; path=/; domain=.youtube.com; expires=' + date.toGMTString(); -}; - -ImprovedTube.createPlayerButton = function(node, options) { - var controls = document.querySelector('.html5-video-player .ytp-left-controls'); - - if (controls) { - var button = document.createElement('button'); - - button.className = 'ytp-button it-player-button'; - - button.dataset.title = options.title; - - if (options.id) { - if (node.querySelector('#' + options.id)) { - node.querySelector('#' + options.id).remove(); - } - - button.id = options.id; - } - - if (options.html) { - button.innerHTML = options.html; - } - - button.style.opacity = options.opacity || '.5'; - - if (options.onclick) { - button.onclick = options.onclick; - } - - controls.insertBefore(button, controls.childNodes[3]); - } -}; - -ImprovedTube.reverse = function(parent) { - for (var i = 1, l = parent.childNodes.length; i < l; i++) { - parent.insertBefore(parent.childNodes[i], parent.firstChild); - } -}; - - - - - - - - - -/*------------------------------------------------------------------------------ -1.0 GENERAL -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -1.1 YOUTUBE HOME PAGE -------------------------------------------------------------------------------*/ - -ImprovedTube.youtubeHomePage = function() { - var option = this.storage.youtube_home_page; - - if ( - option === '/feed/trending' || - option === '/feed/subscriptions' || - option === '/feed/history' || - option === '/playlist?list=WL' - ) { - var node_list = document.querySelectorAll(` - a[href="/"]:not([role=tablist]), - a[href="https://www.youtube.com/"]:not([role=tablist]), - a[it-origin="/"]:not([role=tablist]) - `); - - for (var i = 0, l = node_list.length; i < l; i++) { - var node = node_list[i]; - - if (node.hasAttribute('it-origin') === false) { - node.setAttribute('it-origin', '/'); - } - - node.href = option; - node.addEventListener('click', function() { - if ( - this.data && - this.data.commandMetadata && - this.data.commandMetadata.webCommandMetadata && - this.data.commandMetadata.webCommandMetadata.url - ) { - this.data.commandMetadata.webCommandMetadata.url = option; - } - }, true); - } - } else { - var node_list = document.querySelectorAll('a[it-origin="/"]:not([role=tablist])'); - - for (var i = 0, l = node_list.length; i < l; i++) { - node_list[i].href = '/'; - } - } -}; - - -/*------------------------------------------------------------------------------ -1.2 COLLAPSE OF SUBSCRIPTION SECTION -------------------------------------------------------------------------------*/ - -ImprovedTube.collapseOfSubscriptionSections = function() { - if (/\/feed\/subscriptions/.test(location.href)) { - if (this.storage.collapse_of_subscription_sections === true) { - var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'); - - for (var i = 0, l = sections.length; i < l; i++) { - if (!sections[i].querySelector('.it-section-collapse')) { - var section_title = sections[i].querySelector('h2'), - button = document.createElement('div'); - - button.className = 'it-section-collapse'; - button.innerHTML = ''; - button.section = sections[i]; - button.addEventListener('click', function() { - var section = this.section, - content = section.querySelector('.grid-subheader + #contents, .shelf-title-table + .multirow-shelf'); - - if (section.classList.contains('it-section-collapsed') === false) { - content.style.height = content.offsetHeight + 'px'; - content.style.transition = 'height 150ms'; - } - - setTimeout(function() { - section.classList.toggle('it-section-collapsed'); - }); - }); - - section_title.parentNode.insertBefore(button, section_title.nextSibling); - } - } - } else { - var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'), - buttons = document.querySelectorAll('.it-section-collapse'); - - for (var i = 0, l = sections.length; i < l; i++) { - sections[i].classList.remove('it-section-collapsed'); - sections[i].style.height = ''; - sections[i].style.transition = ''; - } - - for (var i = 0, l = buttons.length; i < l; i++) { - buttons[i].remove(); - } - } - } -}; - - -/*------------------------------------------------------------------------------ -1.3 ADD "SCROLL TO TOP" -------------------------------------------------------------------------------*/ - -ImprovedTube.addScrollToTop = function(is_update) { - if (this.storage.add_scroll_to_top === true) { - var button = document.createElement('div'); - - button.id = 'it-scroll-to-top'; - button.innerHTML = ''; - - button.addEventListener('click', function() { - window.scrollTo(0, 0); - }); - - document.documentElement.appendChild(button); - - window.addEventListener('scroll', this.scroll); - } else { - var button = document.querySelector('#it-scroll-to-top'); - - if (button) { - button.remove(); - } - - window.removeEventListener('scroll', this.scroll); - } -}; - -ImprovedTube.scroll = function() { - if (window.scrollY > window.innerHeight / 2) { - document.documentElement.setAttribute('it-show-scroll-to-top', true); - } else { - document.documentElement.setAttribute('it-show-scroll-to-top', false); - } -}; - - -/*------------------------------------------------------------------------------ -1.4 CONFIRMATION BEFORE CLOSING -------------------------------------------------------------------------------*/ - -ImprovedTube.confirmationBeforeClosing = function() { - window.onbeforeunload = function() { - if (ImprovedTube.storage.confirmation_before_closing === true) { - return 'You have attempted to leave this page. Are you sure?'; - } - }; -}; - - -/*------------------------------------------------------------------------------ -1.5 MARK WATCHED VIDEOS --------------------------------------------------------------------------------- -TODO: OPTIMIZE -------------------------------------------------------------------------------*/ - -ImprovedTube.markWatchedVideos = function() { - if (ImprovedTube.storage.mark_watched_videos === true) { - var video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (var i = 0, l = video_items.length; i < l; i++) { - if (!video_items[i].querySelector('.it-mark-watched')) { - var button = document.createElement('div'); - - button.className = 'it-mark-watched' + (this.storage.watched && this.storage.watched[this.getParam(new URL(video_items[i].href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); - button.innerHTML = ''; - button.addEventListener('click', function(event) { - var watched = this.classList.contains('watched') ? false : true; - - event.preventDefault(); - event.stopPropagation(); - - this.classList.toggle('watched'); - - try { - var video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'), - item = this.parentNode; - - while ( - item.nodeName && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } - - if (!ImprovedTube.storage.watched || typeof ImprovedTube.storage.watched !== 'object') { - ImprovedTube.storage.watched = {}; - } - - if (watched === true) { - ImprovedTube.storage.watched[video_id] = { - title: item.querySelector('a#video-title, .title, .yt-lockup-title > a').innerText - }; - - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'set', - id: video_id, - title: item.querySelector('a#video-title, .title, .yt-lockup-title > a').innerText - } - })); - } else if (ImprovedTube.storage.watched[video_id]) { - delete ImprovedTube.storage.watched[video_id]; - - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'remove', - id: video_id - } - })); - } - } catch (err) {} - }); - - video_items[i].appendChild(button); - } - } - } -}; - -document.addEventListener('ImprovedTubeWatched', function(event) { - if (chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-watched', - data: { - action: event.detail.action, - id: event.detail.id, - title: event.detail.title - } - }); - } -}); - - -/*------------------------------------------------------------------------------ -1.6 ONLY ONE PLAYER INSTANCE PLAYING --------------------------------------------------------------------------------- -TODO: FIX -------------------------------------------------------------------------------*/ - -ImprovedTube.onlyOnePlayerInstancePlaying = function() { - var video = document.querySelector('.html5-video-player video'); - - if (this.storage.only_one_player_instance_playing === true && video) { - - if (this.focus === false && video.paused === false) { - video.pause(); - - this.played_before_blur = true; - } else if (this.focus === true && this.played_before_blur === true) { - video.play(); - } - } -}; - - -/*------------------------------------------------------------------------------ -1.7 HD THUMBNAILS -------------------------------------------------------------------------------*/ - -ImprovedTube.hdThumbnails = function() { - if (this.storage.hd_thumbnails === true) { - var images = document.querySelectorAll('img'); - - for (var i = 0, l = images.length; i < l; i++) { - if (/(hqdefault\.jpg|hq720.jpg)+/.test(images[i].src) && !images[i].dataset.defaultSrc) { - images[i].dataset.defaultSrc = images[i].src; - - images[i].onload = function() { - if (this.naturalHeight <= 90) { - this.src = this.dataset.defaultSrc; - } - }; - - images[i].src = images[i].src.replace(/(hqdefault\.jpg|hq720.jpg)+/, 'maxresdefault.jpg'); - } - } - } else { - var images = document.querySelectorAll('img'); - - for (var i = 0, l = images.length; i < l; i++) { - if (images[i].dataset.defaultSrc) { - images[i].src = images[i].dataset.defaultSrc; - } - } - } -}; - - -/*------------------------------------------------------------------------------ -2.0 APPEARANCE -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -2.1 PLAYER -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -2.1.1 FORCED THEATER MODE -------------------------------------------------------------------------------*/ - -ImprovedTube.forcedTheaterMode = function() { - if (window.self === window.top && (ImprovedTube.storage.forced_theater_mode === true || ImprovedTube.storage.player_size === 'fit_to_window')) { - var button = document.querySelector('button.ytp-size-button'); - - if (button && ImprovedTube.isset(document.getElementById('player-theater-container').firstChild) === false) { - button.click(); - } - } -}; - - -/*------------------------------------------------------------------------------ -2.1.2 HD THUMBNAIL --------------------------------------------------------------------------------- -TODO: OPTIMIZED -------------------------------------------------------------------------------*/ - -ImprovedTube.playerHdThumbnail = function() { - if (this.storage.player_hd_thumbnail === true) { - if (this.player_hd_thumbnail_wait !== false) { - clearInterval(ImprovedTube.player_hd_thumbnail_wait); - - ImprovedTube.player_hd_thumbnail_wait = false; - } - - this.player_hd_thumbnail_wait = setInterval(function() { - var thumbnail = document.querySelector('.ytp-cued-thumbnail-overlay-image'); - - if (thumbnail && thumbnail.style.backgroundImage) { - var style = document.getElementById('it-hd-thumbnail') || document.createElement('style'); - - style.textContent = '.ytp-cued-thumbnail-overlay-image{background-image:' + thumbnail.style.backgroundImage.replace('/hqdefault.jpg', '/maxresdefault.jpg') + ' !important}'; - - if (!document.getElementById('it-hd-thumbnail')) { - style.id = 'it-hd-thumbnail'; - thumbnail.parentNode.insertBefore(style, thumbnail); - } - } - }, 250); - } -}; - - -/*------------------------------------------------------------------------------ -2.1.3 ALWAYS SHOW PROGRESS BAR -------------------------------------------------------------------------------*/ - -ImprovedTube.alwaysShowProgressBar = function() { - if (ImprovedTube.always_show_progress_bar_interval) { - clearInterval(ImprovedTube.always_show_progress_bar_interval); - } - - if (this.storage.always_show_progress_bar === true) { - ImprovedTube.always_show_progress_bar_interval = setInterval(function() { - var player = document.querySelector('.html5-video-player'); - - if (player && player.classList.contains('ytp-autohide')) { - var played = player.getCurrentTime() * 100 / player.getDuration(), - loaded = player.getVideoBytesLoaded() * 100, - play_bars = player.querySelectorAll('.ytp-play-progress'), - load_bars = player.querySelectorAll('.ytp-load-progress'), - width = 0, - progress_play = 0, - progress_load = 0; - - for (var i = 0, l = play_bars.length; i < l; i++) { - width += play_bars[i].offsetWidth; - } - - var width_percent = width / 100; - - for (var i = 0, l = play_bars.length; i < l; i++) { - var a = play_bars[i].offsetWidth / width_percent, - b = 0, - c = 0; - - if (played - progress_play >= a) { - b = 100; - } else if (played > progress_play && played < a + progress_play) { - b = 100 * ((played - progress_play) * width_percent) / play_bars[i].offsetWidth; - } - - play_bars[i].style.transform = 'scaleX(' + b / 100 + ')'; - - if (loaded - progress_load >= a) { - c = 100; - } else if (loaded > progress_load && loaded < a + progress_load) { - c = 100 * ((loaded - progress_load) * width_percent) / play_bars[i].offsetWidth; - } - - load_bars[i].style.transform = 'scaleX(' + c / 100 + ')'; - - progress_play += a; - progress_load += a; - } - } - }, 100); - } -}; - - -/*------------------------------------------------------------------------------ -2.2 SIDEBAR -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -2.2.1 LIVECHAT --------------------------------------------------------------------------------- -TODO: TEST -------------------------------------------------------------------------------*/ - -ImprovedTube.livechat_wait = false; -ImprovedTube.livechat_url = false; - -ImprovedTube.livechat = function() { - if ( - document.documentElement.getAttribute('it-page-type') === 'video' && - this.storage.livechat === 'collapsed' && - this.livechat_wait === false - ) { - this.livechat_wait = setInterval(function() { - var button = document.querySelector('#chat:not([collapsed]) #show-hide-button paper-button'), - expander = document.querySelector('#watch-sidebar-live-chat .yt-uix-expander'); - - if (document.documentElement.getAttribute('it-page-type') !== 'video' || button || expander) { - clearInterval(ImprovedTube.livechat_wait); - - ImprovedTube.livechat_wait = false; - } - - if (button) { - function click() { - ImprovedTube.livechat_url = location.href; - } - - button.addEventListener('mousedown', click); - button.addEventListener('touchdown', click); - - setTimeout(function() { - if (ImprovedTube.livechat_url !== location.href) { - button.click(); - } - }, 500); - } else if (expander) { - expander.classList.add('yt-uix-expander-collapsed'); - } - }, 250); - } -}; - - -/*------------------------------------------------------------------------------ -2.2.2 RELATIVE VIDEOS --------------------------------------------------------------------------------- -TODO: TEST -------------------------------------------------------------------------------*/ - -ImprovedTube.related_videos_wait = false; - -ImprovedTube.relatedVideos = function() { - if (this.storage.related_videos === 'collapsed') { - if (!this.related_videos_wait) { - this.related_videos_wait = setInterval(function() { - if ( - document.querySelector('#related.ytd-watch-flexy') || - document.querySelector('#watch7-sidebar-contents') - ) { - clearInterval(this.related_videos_wait); - - this.related_videos_wait = false; - - if (!document.getElementById('improvedtube-collapsed-related-videos')) { - var button = document.createElement('button'), - parent = document.querySelector('#related.ytd-watch-flexy') || document.querySelector('#watch7-sidebar-contents'), - reference = document.querySelector('#related > *') || document.querySelector('#watch7-sidebar-contents > *'); - - button.id = 'improvedtube-collapsed-related-videos'; - button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; - button.innerHTML = 'Show moreShow less'; - - button.onclick = function() { - document.documentElement.classList.toggle('related-videos-collapsed'); - }; - - document.documentElement.classList.toggle('related-videos-collapsed'); - parent.insertBefore(button, reference); - } - } - }, 250); - } - } else { - clearInterval(this.related_videos_wait); - - this.related_videos_wait = false; - - setTimeout(function() { - var button = document.getElementById('improvedtube-collapsed-related-videos'); - - if (button) { - button.remove(); - } - }, 260); - } -}; - - -/*------------------------------------------------------------------------------ -2.3 DETAILS -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -2.3.1 HOW LONG AGO THE VIDEO WAS UPLOADED --------------------------------------------------------------------------------- -TODO: TEST -------------------------------------------------------------------------------*/ - -ImprovedTube.howLongAgoTheVideoWasUploaded = function() { - if (ImprovedTube.storage.how_long_ago_the_video_was_uploaded === true) { - function timeSince(date) { - var seconds = Math.floor((new Date() - new Date(date)) / 1000), - interval = Math.floor(seconds / 31536000); - - if (interval > 1) { - return interval + ' years ago'; - } - interval = Math.floor(seconds / 2592000); - if (interval > 1) { - return interval + ' months ago'; - } - interval = Math.floor(seconds / 86400); - if (interval > 1) { - return interval + ' days ago'; - } - interval = Math.floor(seconds / 3600); - if (interval > 1) { - return interval + ' hours ago'; - } - interval = Math.floor(seconds / 60); - if (interval > 1) { - return interval + ' minutes ago'; - } - - return Math.floor(seconds) + ' seconds ago'; - } - - var waiting_channel_link = setInterval(function() { - var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; - - if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info a')) { - clearInterval(waiting_channel_link); - - var xhr = new XMLHttpRequest(); - - xhr.addEventListener('load', function() { - var response = JSON.parse(this.responseText), - element = document.querySelector('.itx-channel-video-uploaded') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); - - if (ImprovedTube.isset(response.items) && ImprovedTube.isset(response.items[0])) { - element.innerHTML = (youtube_version ? ' · ' + timeSince(response.items[0].snippet.publishedAt) + ' ' : timeSince(response.items[0].snippet.publishedAt) + ''); - - var date = new Date(response.items[0].snippet.publishedAt); - - element.title = ((date.getMonth() > 8) ? (date.getMonth() + 1) : ('0' + (date.getMonth() + 1))) + '/' + ((date.getDate() > 9) ? date.getDate() : ('0' + date.getDate())) + '/' + date.getFullYear(); - } - - if (!youtube_version) { - element.href = document.querySelector('#watch7-user-header a').href.indexOf('/videos') === -1 ? document.querySelector('#watch7-user-header a').href + '/videos' : document.querySelector('#watch7-user-header a').href; - } - - if (!document.querySelector('.itx-channel-video-uploaded') && document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info')) { - element.style.marginLeft = '8px'; - element.className = (youtube_version ? 'style-scope ytd-video-owner-renderer itx-channel-video-uploaded' : 'yt-uix-sessionlink spf-link itx-channel-video-uploaded'); - - document.querySelector(youtube_version ? '#info #info-text #date' : '.yt-user-info').appendChild(element); - } - }); - - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?id=' + ImprovedTube.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v') + '&key=AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA&part=snippet', true); - xhr.send(); - } - }, 500); - } -}; - - -/*------------------------------------------------------------------------------ -2.3.2 SHOW CHANNEL VIDEOS COUNT --------------------------------------------------------------------------------- -TODO: TEST -------------------------------------------------------------------------------*/ - -ImprovedTube.channelVideosCount = function() { - if (this.storage.channel_videos_count === true) { - var waiting_channel_link = setInterval(function() { - var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; - - if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a')) { - clearInterval(waiting_channel_link); - - var xhr = new XMLHttpRequest(); - - xhr.addEventListener('load', function() { - var response = JSON.parse(this.responseText), - element = document.querySelector('.itx-channel-videos-count') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); - - if (ImprovedTube.isset(response.items) && ImprovedTube.isset(response.items[0])) { - element.innerHTML = (youtube_version ? '' + response.items[0].statistics.videoCount + ' videos' : response.items[0].statistics.videoCount + ' videos'); - } - - if (!youtube_version) { - element.href = document.querySelector('#watch7-user-header a').href.indexOf('/videos') === -1 ? document.querySelector('#watch7-user-header a').href + '/videos' : document.querySelector('#watch7-user-header a').href; - } - - if (!document.querySelector('.itx-channel-videos-count') && document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info')) { - element.style.marginLeft = '8px'; - element.className = (youtube_version ? 'style-scope ytd-video-owner-renderer itx-channel-videos-count' : 'yt-uix-sessionlink spf-link itx-channel-videos-count'); - - document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info').appendChild(element); - } - }); - - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/channels?id=' + (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a').getAttribute('it-origin') || document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a').href).replace('https://www.youtube.com/channel/', '') + '&key=AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA&part=statistics', true); - xhr.send(); - } - }, 500); - } -}; - - -/*------------------------------------------------------------------------------ -2.4 COMMENTS --------------------------------------------------------------------------------- -TODO TEST -------------------------------------------------------------------------------*/ - -ImprovedTube.comments_wait = false; - -ImprovedTube.comments = function() { - if (this.storage.comments === 'collapsed') { - if (this.comments_wait === false) { - this.comments_wait = setInterval(function() { - if ( - document.getElementById('comment-section-renderer-items') || - document.querySelector('#comments #sections #contents') - ) { - clearInterval(this.comments_wait); - - this.comments_wait = false; - - if (!document.getElementById('improvedtube-collapsed-comments')) { - var button = document.createElement('button'), - parent = document.getElementById('comment-section-renderer') || document.querySelector('#comments #sections'), - reference = document.getElementById('comment-section-renderer-items') || document.querySelector('#comments #sections #contents'); - - button.id = 'improvedtube-collapsed-comments'; - button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; - button.innerHTML = 'Show moreShow less'; - - button.onclick = function() { - document.documentElement.classList.toggle('comments-collapsed'); - }; - - document.documentElement.classList.toggle('comments-collapsed'); - parent.insertBefore(button, reference); - } - } - }, 250); - } - } else { - clearInterval(this.comments_wait); - - this.comments_wait = false; - - setTimeout(function() { - if (document.getElementById('improvedtube-collapsed-comments')) { - document.getElementById('improvedtube-collapsed-comments').remove(); - } - }, 260); - } -}; - - -/*------------------------------------------------------------------------------ -3.0 THEMES -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -3.1 MY COLORS -------------------------------------------------------------------------------*/ - -ImprovedTube.myColors = function() { - if (this.storage.theme_my_colors !== true) { - if (document.querySelector('.it-theme-editor')) { - document.querySelector('.it-theme-editor').remove(); - } - - return false; - } - - var style = document.querySelector('.it-theme-editor') || document.createElement('style'); - - style.className = 'it-theme-editor'; - style.innerText = 'html{' + - '--yt-swatch-textbox-bg:rgba(19,19,19,1)!important;' + - '--yt-swatch-icon-color:rgba(136,136,136,1)!important;' + - '--yt-spec-brand-background-primary:rgba(0,0,0, 0.1) !important;' + - '--yt-spec-brand-background-secondary:rgba(0,0,0, 0.1) !important;' + - '--yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important;' + - '--yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important;' + - '--yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important;' + - '--yt-spec-brand-button-background:rgba(136,136,136,1) !important;' + - '--yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important;' + - '--yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important;' + - '--yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important;' + - '--yt-spec-10-percent-layer:rgba(136,136,136,1) !important;' + - '--yt-swatch-primary:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-swatch-primary-darker:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-brand-background-solid:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-a:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-b:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-c:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-touch-response:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-swatch-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-important-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-input-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-logo-override: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-spec-text-primary:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-primary-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-secondary:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-active-other:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-filled-button-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-call-to-action-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-icon-active:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-link-text:' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-spec-brand-subscribe-button-background:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-wordmark-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-selected-nav-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '}'; - - document.documentElement.appendChild(style); -}; - - -/*------------------------------------------------------------------------------ -3.2 BLUELIGHT -------------------------------------------------------------------------------*/ - -ImprovedTube.bluelight = function() { - var value = this.storage.bluelight, - times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); - - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; - } - - if ( - this.isset(value) && value !== 0 && value !== '0' && - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) - ) { - if (!document.querySelector('#it-bluelight')) { - var container = document.createElement('div'); - - container.id = 'it-bluelight'; - container.innerHTML = ''; - - document.documentElement.appendChild(container); - } else { - document.querySelector('#it-bluelight-filter feColorMatrix').setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 ' + (1 - parseFloat(value) / 100) + ' 0 0 0 0 0 1 0'); - } - } else if (document.querySelector('#it-bluelight')) { - document.querySelector('#it-bluelight').remove(); - } -}; - - -/*------------------------------------------------------------------------------ -3.3 DIM -------------------------------------------------------------------------------*/ - -ImprovedTube.dim = function() { - var value = this.storage.dim, - times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); - - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; - }; - - if ( - this.isset(value) && value !== 0 && value !== '0' && - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) - ) { - if (!document.querySelector('#it-dim')) { - var container = document.createElement('div'); - - container.id = 'it-dim'; - container.style.opacity = parseInt(Number(value)) / 100 || 0; - - document.documentElement.appendChild(container); - } else { - document.querySelector('#it-dim').style.opacity = parseInt(Number(value)) / 100 || 0; - } - - if (!document.querySelector('#it-dim-player')) { - var container = document.createElement('div'); - - container.id = 'it-dim-player'; - container.style.opacity = parseInt(Number(value)) / 100 || 0; - - if (document.querySelector('.html5-video-player')) { - document.querySelector('.html5-video-player').appendChild(container); - } - } else { - document.querySelector('#it-dim-player').style.opacity = parseInt(Number(value)) / 100 || 0; - } - } else { - if (document.querySelector('#it-dim')) { - document.querySelector('#it-dim').remove(); - } - - if (document.querySelector('#it-dim-player')) { - document.querySelector('#it-dim-player').remove(); - } - } -}; - - -/*------------------------------------------------------------------------------ -3.4 FONT -------------------------------------------------------------------------------*/ - -ImprovedTube.font = function() { - if (this.storage.font) { - if (this.storage.font != 'Default') { - if (!document.querySelector('.it-font-family')) { - var link = document.createElement('link'); - - link.rel = 'stylesheet'; - - document.documentElement.appendChild(link); - } else { - var link = document.querySelector('.it-font-family'); - } - - link.href = '//fonts.googleapis.com/css2?family=' + this.storage.font; - - document.documentElement.style.fontFamily = this.storage.font.replace(/\+/g, ' '); - } - } -}; - - -/*------------------------------------------------------------------------------ -3.5 THEMES -------------------------------------------------------------------------------*/ - -ImprovedTube.themes = function() { - var times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); - - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; - } - - if ( - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) && - ( - this.isset(ImprovedTube.storage.default_dark_theme) && ImprovedTube.storage.default_dark_theme !== false || - this.isset(ImprovedTube.storage.night_theme) && ImprovedTube.storage.night_theme !== false || - this.isset(ImprovedTube.storage.dawn_theme) && ImprovedTube.storage.dawn_theme !== false || - this.isset(ImprovedTube.storage.sunset_theme) && ImprovedTube.storage.sunset_theme !== false || - this.isset(ImprovedTube.storage.desert_theme) && ImprovedTube.storage.desert_theme !== false || - this.isset(ImprovedTube.storage.plain_theme) && ImprovedTube.storage.plain_theme !== false || - this.isset(ImprovedTube.storage.black_theme) && ImprovedTube.storage.black_theme !== false - ) - ) { - var PREF_OLD = this.getParams(this.getCookieValueByName('PREF')), - PREF = this.getParams(this.getCookieValueByName('PREF')), - result = ''; - - if (!this.isset(PREF.f6) || this.isset(PREF.f6) && PREF.f6.length !== 3) { - PREF.f6 = '400'; - } else if (PREF.f6.length === 3) { - PREF.f6 = '4' + PREF.f6.substr(1); - } - - for (var i in PREF) { - result += i + '=' + PREF[i] + '&'; - } - - this.setCookie('PREF', result.slice(0, -1)); - - document.documentElement.setAttribute('it-theme', 'true'); - } else { - document.documentElement.removeAttribute('it-theme'); - } -}; - - -/*------------------------------------------------------------------------------ -4.0 PLAYER --------------------------------------------------------------------------------- -TODO: CONNECT & TEST -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -4.1 AUTOPLAY -------------------------------------------------------------------------------*/ - -ImprovedTube.allow_autoplay = false; - -ImprovedTube.autoplay = function(video) { - if (ImprovedTube.video_url !== location.href) { - ImprovedTube.allow_autoplay = false; - } - - if ( - ( - (/\/watch\?/.test(location.href) && !/list=/.test(location.href) && ImprovedTube.storage.player_autoplay === false) || - (/\/watch\?/.test(location.href) && /list=/.test(location.href) && ImprovedTube.storage.playlist_autoplay === false) || - (/\/(channel|user|c)\//.test(location.href) && ImprovedTube.storage.channel_trailer_autoplay === false) - ) === true && - ImprovedTube.allow_autoplay === false && - video.parentNode.parentNode.classList.contains('ad-showing') === false - ) { - setTimeout(function() { - video.parentNode.parentNode.pauseVideo(); - }); - } -}; - - -/*------------------------------------------------------------------------------ -4.2 AUTOPAUSE WHEN SWITCHING TABS -------------------------------------------------------------------------------*/ - -ImprovedTube.playerAutopauseWhenSwitchingTabs = function() { - var video = document.querySelector('.html5-video-player video'); - - if (this.storage.player_autopause_when_switching_tabs === true && video) { - - if (this.focus === false && video.paused === false) { - video.pause(); - - this.played_before_blur = true; - } else if (this.focus === true && this.played_before_blur === true) { - video.play(); - } - } -}; - - -/*------------------------------------------------------------------------------ -4.3 FORCED PLAYBACK SPEED -------------------------------------------------------------------------------*/ - -ImprovedTube.playerPlaybackSpeed = function(node) { - var option = Number(ImprovedTube.storage.player_playback_speed); - - if (ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) && ImprovedTube.storage.player_forced_playback_speed === true) { - try { - if (window.location.href.indexOf('music') < 0) { - document.querySelector('.html5-video-player').querySelector('video').playbackRate = option; - } - } catch (err) {} - } -}; - - -/*------------------------------------------------------------------------------ -4.4 SUBTITLES -------------------------------------------------------------------------------*/ - -ImprovedTube.subtitles = function() { - -}; - - -/*------------------------------------------------------------------------------ -4.5 UP NEXT AUTOPLAY -------------------------------------------------------------------------------*/ - -ImprovedTube.upNextAutoplay = function() { - var option = this.storage.up_next_autoplay; - - if (this.isset(option)) { - var toggle = document.querySelector('#related #head.ytd-compact-autoplay-renderer #toggle'); - - if (toggle) { - var option = ImprovedTube.storage.up_next_autoplay; - - if (option === true && !toggle.hasAttribute('checked') || option === false && toggle.hasAttribute('checked')) { - toggle.click(); - } - } - } -}; - - -/*------------------------------------------------------------------------------ -4.6 ADS -------------------------------------------------------------------------------*/ - -ImprovedTube.adInterval = false; -ImprovedTube.AdSkipButton = false; - -ImprovedTube.playerAds = function() { - if (ImprovedTube.adInterval) { - clearInterval(ImprovedTube.adInterval); - } - - if (ImprovedTube.storage.player_ads === 'block_all' || ImprovedTube.storage.player_ads === 'subscribed_channels') { - ImprovedTube.adInterval = setInterval(function() { - if (!ImprovedTube.AdSkipButton) { - ImprovedTube.AdSkipButton = document.querySelector('.ytp-ad-skip-button.ytp-button'); - } - - if (ImprovedTube.AdSkipButton) { - ImprovedTube.AdSkipButton.click(); - } - }, 250); - } -}; - - -/*------------------------------------------------------------------------------ -4.7 CUSTOM MINI-PLAYER -------------------------------------------------------------------------------*/ - -ImprovedTube.mini_player__mode = false; -ImprovedTube.mini_player__move = false; -ImprovedTube.mini_player__cursor = '""'; -ImprovedTube.mini_player__x = 0; -ImprovedTube.mini_player__y = 0; -ImprovedTube.mini_player__max_x = 0; -ImprovedTube.mini_player__max_y = 0; -ImprovedTube.mini_player__original_width = 0; -ImprovedTube.mini_player__original_height = 0; -ImprovedTube.mini_player__width = 200; -ImprovedTube.mini_player__height = 160; -ImprovedTube.mini_player__mousedown_x = 0; -ImprovedTube.mini_player__mousedown_y = 0; -ImprovedTube.mini_player__player_offset_x = 0; -ImprovedTube.mini_player__player_offset_y = 0; -ImprovedTube.mini_player__resize_offset = 16; - - -ImprovedTube.mini_player__setPosition = function(x, y) { - ImprovedTube.mini_player__element.style.transform = 'translate3d(' + x + 'px, ' + y + 'px, 0)'; -}; - -ImprovedTube.mini_player__setSize = function(width, height) { - ImprovedTube.mini_player__element.style.width = width + 'px'; - ImprovedTube.mini_player__element.style.height = height + 'px'; -}; - -ImprovedTube.mini_player__scroll = function() { - if (window.scrollY >= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === false) { - ImprovedTube.mini_player__mode = true; - - ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; - ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; - - ImprovedTube.mini_player__element.classList.add('it-mini-player'); - - ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); - ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); - - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); - - window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - - window.dispatchEvent(new Event('resize')); - } else if (window.scrollY < 256 && ImprovedTube.mini_player__mode === true || ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === true) { - ImprovedTube.mini_player__mode = false; - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); - ImprovedTube.mini_player__move = false; - ImprovedTube.mini_player__setPosition(0, 0); - ImprovedTube.mini_player__element.style.width = ''; - ImprovedTube.mini_player__element.style.height = ''; - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - - window.dispatchEvent(new Event('resize')); - } -}; - -ImprovedTube.mini_player__mousedown = function(event) { - if (event.button !== 0) { - return false; - } - - if (ImprovedTube.mini_player__resize() === true) { - return false; - } - - var is_player = false; - - for (var i = 0, l = event.path.length; i < l; i++) { - if ((event.path[i].classList && event.path[i].classList.contains('it-mini-player')) === true) { - is_player = true; - } - } - - if (is_player === false) { - return false; - } - - event.preventDefault(); - - var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); - - ImprovedTube.mini_player__mousedown_x = event.clientX; - ImprovedTube.mini_player__mousedown_y = event.clientY; - ImprovedTube.mini_player__width = bcr.width; - ImprovedTube.mini_player__height = bcr.height; - - ImprovedTube.mini_player__player_offset_x = event.clientX - bcr.x; - ImprovedTube.mini_player__player_offset_y = event.clientY - bcr.y; - - ImprovedTube.mini_player__max_x = document.body.offsetWidth - ImprovedTube.mini_player__width; - ImprovedTube.mini_player__max_y = window.innerHeight - ImprovedTube.mini_player__height; - - window.addEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.addEventListener('mousemove', ImprovedTube.mini_player__mousemove); -}; - -ImprovedTube.mini_player__mouseup = function() { - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - - strg.x = ImprovedTube.mini_player__x; - strg.y = ImprovedTube.mini_player__y; - - localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - - window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); - - ImprovedTube.mini_player__move = false; - - setTimeout(function() { - window.removeEventListener('click', ImprovedTube.mini_player__click, true); - }); -}; - -ImprovedTube.mini_player__click = function(event) { - event.stopPropagation(); - event.preventDefault(); -}; - -ImprovedTube.mini_player__mousemove = function(event) { - if ( - event.clientX < ImprovedTube.mini_player__mousedown_x - 5 || - event.clientY < ImprovedTube.mini_player__mousedown_y - 5 || - event.clientX > ImprovedTube.mini_player__mousedown_x + 5 || - event.clientY > ImprovedTube.mini_player__mousedown_y + 5 - ) { - var x = event.clientX - ImprovedTube.mini_player__player_offset_x, - y = event.clientY - ImprovedTube.mini_player__player_offset_y; - - if (ImprovedTube.mini_player__move === false) { - ImprovedTube.mini_player__move = true; - - window.addEventListener('click', ImprovedTube.mini_player__click, true); - } - - if (x < 0) { - x = 0; - } - - if (y < 0) { - y = 0; - } - - if (x > ImprovedTube.mini_player__max_x) { - x = ImprovedTube.mini_player__max_x; - } - - if (y > ImprovedTube.mini_player__max_y) { - y = ImprovedTube.mini_player__max_y; - } - - ImprovedTube.mini_player__x = x; - ImprovedTube.mini_player__y = y; - - ImprovedTube.mini_player__setPosition(x, y); - } -}; - -ImprovedTube.mini_player__cursorUpdate = function(event) { - var x = event.clientX, - y = event.clientY, - c = ImprovedTube.mini_player__cursor; - - if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset - ) { - c = 'ne-resize'; - } else if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'se-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'sw-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset - ) { - c = 'nw-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset - ) { - c = 'n-resize'; - } else if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'e-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 's-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'w-resize'; - } else { - c = ''; - } - - if (ImprovedTube.mini_player__cursor !== c) { - ImprovedTube.mini_player__cursor = c; - - document.documentElement.setAttribute('it-mini-player-cursor', ImprovedTube.mini_player__cursor); - } -}; - -ImprovedTube.mini_player__resize = function(event) { - if (ImprovedTube.mini_player__cursor !== '') { - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - window.addEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); - window.addEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); - - return true; - } -}; - -ImprovedTube.mini_player__resize_mouseMove = function(event) { - if (ImprovedTube.mini_player__cursor === 'n-resize') { - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); - } else if (ImprovedTube.mini_player__cursor === 'e-resize') { - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__height); - } else if (ImprovedTube.mini_player__cursor === 's-resize') { - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, event.clientY - ImprovedTube.mini_player__y); - } else if (ImprovedTube.mini_player__cursor === 'w-resize') { - ImprovedTube.mini_player__setPosition(event.clientX, ImprovedTube.mini_player__y); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__height); - } else if (ImprovedTube.mini_player__cursor === 'ne-resize') { - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); - } else if (ImprovedTube.mini_player__cursor === 'se-resize') { - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, event.clientY - ImprovedTube.mini_player__y); - } else if (ImprovedTube.mini_player__cursor === 'sw-resize') { - ImprovedTube.mini_player__setPosition(event.clientX, ImprovedTube.mini_player__y); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, event.clientY - ImprovedTube.mini_player__y); - } else if (ImprovedTube.mini_player__cursor === 'nw-resize') { - ImprovedTube.mini_player__setPosition(event.clientX, event.clientY); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); - } -}; - -ImprovedTube.mini_player__resize_mouseUp = function(event) { - var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); - - ImprovedTube.mini_player__x = bcr.left; - ImprovedTube.mini_player__y = bcr.top; - ImprovedTube.mini_player__width = bcr.width; - ImprovedTube.mini_player__height = bcr.height; - - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - - strg.width = ImprovedTube.mini_player__width; - strg.height = ImprovedTube.mini_player__height; - - localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - window.removeEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); - window.removeEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); -}; - -ImprovedTube.mini_player = function() { - ImprovedTube.mini_player__element = document.querySelector('.html5-video-player'); - - if (ImprovedTube.storage.mini_player === true) { - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - - ImprovedTube.mini_player__x = ImprovedTube.isset(strg.x) ? strg.x : 16; - ImprovedTube.mini_player__y = ImprovedTube.isset(strg.y) ? strg.y : 16; - ImprovedTube.mini_player__width = strg.width || 200; - ImprovedTube.mini_player__height = strg.height || 150; - - window.addEventListener('scroll', ImprovedTube.mini_player__scroll); - } else { - ImprovedTube.mini_player__mode = false; - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); - ImprovedTube.mini_player__move = false; - ImprovedTube.mini_player__setPosition(0, 0); - ImprovedTube.mini_player__element.style.width = ''; - ImprovedTube.mini_player__element.style.height = ''; - - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - window.dispatchEvent(new Event('resize')); - - window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); - window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.removeEventListener('click', ImprovedTube.mini_player__click); - window.removeEventListener('scroll', ImprovedTube.mini_player__scroll); - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - } -}; - - -/*------------------------------------------------------------------------------ -4.8 AUTO FULLSCREEN -------------------------------------------------------------------------------*/ - -ImprovedTube.playerAutofullscreen = function(node) { - if (!node) { - node = document.querySelector('.html5-video-player'); - } - - if ( - this.storage.player_autofullscreen === true && - !document.fullscreenElement && - document.documentElement.getAttribute('it-page-type') === 'video' && - node.toggleFullscreen - ) { - node.toggleFullscreen(); - } -}; - - -/*------------------------------------------------------------------------------ -4.9 QUALITY -------------------------------------------------------------------------------*/ - -ImprovedTube.playerQuality = function(node) { - var quality = ImprovedTube.storage.player_quality; - - if (!node) { - node = document.querySelector('.html5-video-player'); - } - - if (node.getAvailableQualityLevels) { - var available_quality_levels = node.getAvailableQualityLevels(); - - if (quality && quality !== 'auto') { - if (available_quality_levels.indexOf(quality) === -1) { - quality = available_quality_levels[0]; - } - - node.setPlaybackQualityRange(quality); - node.setPlaybackQuality(quality); - } - } -}; - - -/*------------------------------------------------------------------------------ -4.10 CODEC H.264 -------------------------------------------------------------------------------*/ - -ImprovedTube.playerH264 = function() { - if (this.storage.player_h264 === true) { - var canPlayType = HTMLMediaElement.prototype.canPlayType; - - function overwrite(self, callback, mime) { - if (/webm|vp8|vp9/.test(mime)) { - return false; - } else { - return callback.call(self, mime); - } - } - - if (window.MediaSource) { - var isTypeSupported = window.MediaSource.isTypeSupported; - - window.MediaSource.isTypeSupported = function(mime) { - return overwrite(this, isTypeSupported, mime); - }; - } - - HTMLMediaElement.prototype.canPlayType = function(mime) { - var status = overwrite(this, canPlayType, mime); - - if (!status) { - return ''; - } else { - return status; - } - }; - } -}; - - -/*------------------------------------------------------------------------------ -4.11 ALLOW 60FPS -------------------------------------------------------------------------------*/ - -ImprovedTube.player60fps = function() { - if (this.storage.player_60fps === false) { - var canPlayType = HTMLMediaElement.prototype.canPlayType; - - function overwrite(self, callback, mime) { - var match = /framerate=(\d+)/.exec(mime); - - if (match && match[1] > 30) { - return ''; - } else { - return callback.call(self, mime); - } - } - - if (window.MediaSource) { - var isTypeSupported = window.MediaSource.isTypeSupported; - - window.MediaSource.isTypeSupported = function(mime) { - return overwrite(this, isTypeSupported, mime); - }; - } - - HTMLMediaElement.prototype.canPlayType = function(mime) { - var status = overwrite(this, canPlayType, mime); - - if (!status) { - return ''; - } else { - return status; - } - }; - } -}; - - -/*------------------------------------------------------------------------------ -4.12 FORCED VOLUME -------------------------------------------------------------------------------*/ - -ImprovedTube.playerVolume = function(node) { - if (!node) { - node = document.querySelector('.html5-video-player'); - } - - if (node && ImprovedTube.storage.player_forced_volume === true) { - var volume = Number(ImprovedTube.storage.player_volume); - - if (!ImprovedTube.isset(volume) || !volume) { - volume = 1; - } - - node.setVolume(volume); - } -}; - - -/*------------------------------------------------------------------------------ -4.13 LOUDNESS NORMALIZATION -------------------------------------------------------------------------------*/ - -ImprovedTube.playerLoudnessNormalization = function() { - if (document.querySelector('video')) { - document.querySelector('video').onvolumechange = function(event) { - if (document.querySelector('.ytp-volume-panel') && ImprovedTube.storage.player_loudness_normalization === false) { - var volume = Number(document.querySelector('.ytp-volume-panel').getAttribute('aria-valuenow')); - - document.querySelector('video').volume = volume / 100; - } - }; - } - - if (ImprovedTube.storage.player_loudness_normalization === false) { - try { - var local_storage = localStorage['yt-player-volume']; - - if (ImprovedTube.isset(Number(ImprovedTube.storage.player_volume)) && ImprovedTube.storage.player_forced_volume === true) { - - } else if (local_storage) { - local_storage = JSON.parse(JSON.parse(local_storage).data); - local_storage = Number(local_storage.volume); - - document.querySelector('video').volume = local_storage / 100; - } else { - document.querySelector('video').volume = 100; - } - } catch (err) {} - } -}; - - -/*------------------------------------------------------------------------------ -4.14 SCREENSHOT -------------------------------------------------------------------------------*/ - -ImprovedTube.screenshot = function() { - document.body.style.opacity = '0'; - - var video = document.querySelector('.html5-video-player video'), - cvs = document.createElement('canvas'), - ctx = cvs.getContext('2d'), - old_w = video.offsetWidth, - old_h = video.offsetHeight; - - video.style.width = video.videoWidth + 'px'; - video.style.height = video.videoHeight + 'px'; - - setTimeout(function() { - cvs.width = video.videoWidth; - cvs.height = video.videoHeight; - - ctx.drawImage(video, 0, 0, cvs.width, cvs.height); - - cvs.toBlob(function(blob) { - if (ImprovedTube.storage.player_screenshot_save_as !== 'clipboard') { - var a = document.createElement('a'); - - a.href = URL.createObjectURL(blob); - - a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '-' + new Date(document.querySelector('video').getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; - - a.click(); - } else { - try { - navigator.clipboard.write([ - new ClipboardItem({ - 'image/png': blob - }) - ]); - } catch (error) {} - } - - setTimeout(function() { - video.style.width = old_w + 'px'; - video.style.height = old_h + 'px'; - - document.body.style.opacity = '1'; - }, 100); - }); - }, 100); -}; - -ImprovedTube.playerScreenshotButton = function() { - if (this.storage.player_screenshot_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - this.createPlayerButton(node, { - id: 'it-screenshot-button', - html: '', - opacity: 1, - onclick: ImprovedTube.screenshot, - title: 'Screenshot' - }); - } else if (document.querySelector('.it-screenshot-button')) { - document.querySelector('.it-screenshot-button').remove(); - } -}; - - -/*------------------------------------------------------------------------------ -4.15 REPEAT -------------------------------------------------------------------------------*/ - -ImprovedTube.playerRepeatButton = function(node) { - if (this.storage.player_repeat_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - this.createPlayerButton(node, { - id: 'it-repeat-button', - html: '', - onclick: function() { - if (node.querySelector('video').hasAttribute('loop')) { - node.querySelector('video').removeAttribute('loop'); - this.style.opacity = '.5'; - } else if (!/ad-showing/.test(player.className)) { - node.querySelector('video').setAttribute('loop', ''); - this.style.opacity = '1'; - } - }, - title: 'Repeat' - }); - - if (this.storage.player_always_repeat === true) { - setTimeout(function() { - node.querySelector('video').setAttribute('loop', ''); - node.querySelector('#it-repeat-button').style.opacity = '1'; - }, 100); - } - } else if (document.querySelector('.it-repeat-button')) { - document.querySelector('.it-repeat-button').remove(); - } -}; - - -/*------------------------------------------------------------------------------ -4.16 ROTATE -------------------------------------------------------------------------------*/ - -ImprovedTube.playerRotateButton = function() { - if (this.storage.player_rotate_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - this.createPlayerButton(node, { - id: 'it-rotate-button', - html: '', - opacity: 1, - onclick: function() { - var video = document.querySelector('.html5-video-player video'), - transform = '', - rotate = (document.querySelector('.it-rotate-styles') && document.querySelector('.it-rotate-styles').textContent.match(/rotate\([0-9.]+deg\)/g) || [''])[0]; - - rotate = Number((rotate.match(/[0-9.]+/g) || [])[0]) || 0; - - if (rotate < 270 && rotate % 90 == 0) { - rotate = rotate + 90; - } else { - rotate = 0; - } - - transform += 'rotate(' + rotate + 'deg)'; - - if (rotate == 90 || rotate == 270) { - transform += ' scale(' + video.offsetHeight / video.offsetWidth + ')'; - } - - //video.style.transform = transform; - - if (!document.querySelector('.it-rotate-styles')) { - var styles = document.createElement('style'); - - styles.className = 'it-rotate-styles'; - - document.body.appendChild(styles); - } - - document.querySelector('.it-rotate-styles').textContent = '.html5-video-player:not(it-mini-player) video {transform:' + transform + '}'; - }, - title: 'Rotate' - }); - } else if (document.querySelector('.it-rotate-button')) { - document.querySelector('.it-rotate-button').remove(); - document.querySelector('.it-rotate-styles').remove(); - } -}; - - -/*------------------------------------------------------------------------------ -4.15 POPUP PLAYER -------------------------------------------------------------------------------*/ - -ImprovedTube.playerPopupButton = function() { - if (this.storage.player_popup_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - this.createPlayerButton(node, { - id: 'it-popup-player-button', - html: '', - opacity: 1, - onclick: function() { - node.pauseVideo(); - - window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(node.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'location=0,menubar=0,status=0,titlebar=0,width=' + node.offsetWidth + ',height=' + node.offsetHeight); - }, - title: 'Popup' - }); - } else if (document.querySelector('.it-popup-player-button')) { - document.querySelector('.it-popup-player-button').remove(); - } -}; - - -/*------------------------------------------------------------------------------ -5.0 PLAYLIST --------------------------------------------------------------------------------- -TODO: CONNECT & TEST -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -5.1 UP NEXT AUTOPLAY -------------------------------------------------------------------------------*/ - -ImprovedTube.playlist_up_next_autoplay_f = function(event) { - if ( - ImprovedTube.getParam(location.href, 'list') && - ImprovedTube.storage.playlist_up_next_autoplay === false && - this.currentTime >= this.duration - 1 - ) { - this.pause(); - } -}; - -ImprovedTube.playlistUpNextAutoplay = function() { - var video = document.querySelector('video'); - - video.removeEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); - video.addEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); -}; - - -/*------------------------------------------------------------------------------ -5.2 REVERSE -------------------------------------------------------------------------------*/ - -ImprovedTube.playlistReverseUrl = false; -ImprovedTube.playlistReversed = false; - -ImprovedTube.playlistReverseNextPrev = function() { - var ytd_watch = document.querySelector('ytd-watch-flexy'); - - for (var i = 0, l = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.sets.length; i < l; i++) { - var autoplay = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.sets; - - if (autoplay[i].previousButtonVideo && autoplay[i].nextButtonVideo) { - autoplay[i].autoplayVideo = autoplay[i].previousButtonVideo; - autoplay[i].previousButtonVideo = autoplay[i].nextButtonVideo; - autoplay[i].nextButtonVideo = autoplay[i].autoplayVideo; - } - } - - for (var i = 0, l = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.modifiedSets.length; i < l; i++) { - var autoplay = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.modifiedSets; - - if (autoplay[i].previousButtonVideo && autoplay[i].nextButtonVideo) { - autoplay[i].autoplayVideo = autoplay[i].previousButtonVideo; - autoplay[i].previousButtonVideo = autoplay[i].nextButtonVideo; - autoplay[i].nextButtonVideo = autoplay[i].autoplayVideo; - } - } - - ytd_watch.updatePageData_(JSON.parse(JSON.stringify(ytd_watch.data))); - - document.querySelector('yt-navigation-manager').updatePlayer_(null, ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay, null, ytd_watch.data.contents.twoColumnWatchNextResults.playlist); -}; - -ImprovedTube.playlistReverse = function() { - if (this.playlistReverseUrl !== location.href && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer') && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #playlist-action-menu')) { - var button = document.querySelector('#it-reverse-playlist'); - - this.playlistReverseUrl = location.href; - - if (this.storage.playlist_reverse === true) { - if (!button) { - button = document.createElement('button'); - - button.id = 'it-reverse-playlist'; - button.className = 'style-scope yt-icon-button'; - button.innerHTML = ''; - - button.addEventListener('click', function(event) { - event.preventDefault(); - event.stopPropagation(); - - this.classList.toggle('active'); - - ImprovedTube.playlistReversed = !ImprovedTube.playlistReversed; - - ImprovedTube.playlistReverseNextPrev(); - ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); - - return false; - }, true); - - document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #start-actions').appendChild(button); - } - } else if (button) { - button.remove(); - } - } -}; - - -/*------------------------------------------------------------------------------ -5.3 REPEAT -------------------------------------------------------------------------------*/ - -ImprovedTube.playlist_repeat_wait = false; - -ImprovedTube.playlistRepeat = function() { - if (this.isset(this.storage.playlist_repeat) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { - ImprovedTube.playlist_repeat_wait = setInterval(function() { - if ( - document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[0] || - document.querySelector('.playlist-nav-controls .toggle-loop') - ) { - clearInterval(ImprovedTube.playlist_repeat_wait); - - ImprovedTube.playlist_repeat_wait = false; - - var option = ImprovedTube.storage.playlist_repeat, - new_youtube_toggle = document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer'), - old_youtube_toggle = document.querySelector('.playlist-nav-controls .toggle-loop'); - - if (new_youtube_toggle[0] && (option === true && new_youtube_toggle[0].className.search('style-default-active') === -1 || option === 'disabled' && new_youtube_toggle[0].className.search('style-default-active') !== -1)) { - new_youtube_toggle[0].click(); - } else if (old_youtube_toggle && (option === true && old_youtube_toggle.className.search('yt-uix-button-toggled') === -1 || option === 'disabled' && old_youtube_toggle.className.search('yt-uix-button-toggled') !== -1)) { - old_youtube_toggle.click(); - } - } - }, 250); - } -}; - - -/*------------------------------------------------------------------------------ -5.4 SHUFFLE -------------------------------------------------------------------------------*/ - -ImprovedTube.playlist_shuffle_wait = false; - -ImprovedTube.playlistShuffle = function() { - if (this.isset(this.storage.playlist_shuffle) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { - ImprovedTube.playlist_shuffle_wait = setInterval(function() { - if ( - document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[1] || - document.querySelector('.playlist-nav-controls .shuffle-playlist') - ) { - clearInterval(ImprovedTube.playlist_shuffle_wait); - - ImprovedTube.playlist_shuffle_wait = false; - - var option = ImprovedTube.storage.playlist_shuffle, - new_youtube_toggle = document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer'), - old_youtube_toggle = document.querySelector('.playlist-nav-controls .shuffle-playlist'); - - if (new_youtube_toggle[1] && (option === true && new_youtube_toggle[1].className.search('style-default-active') === -1 || option === 'disabled' && new_youtube_toggle[1].className.search('style-default-active') !== -1)) { - new_youtube_toggle[1].click(); - } else if (old_youtube_toggle && (option === true && old_youtube_toggle.className.search('yt-uix-button-toggled') === -1 || option === 'disabled' && old_youtube_toggle.className.search('yt-uix-button-toggled') !== -1)) { - old_youtube_toggle.click(); - } - } - }, 250); - } -}; - - -/*------------------------------------------------------------------------------ -6.0 CHANNEL --------------------------------------------------------------------------------- -TODO: CONNECT & TEST -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -6.1 DEFAULT CHANNEL TAB -------------------------------------------------------------------------------*/ - -ImprovedTube.channelDefaultTab = function() { - if (this.storage.channel_default_tab && this.storage.channel_default_tab !== '/') { - var value = this.storage.channel_default_tab, - node_list = document.querySelectorAll( - '*:not(#contenteditable-root) > a[href*="user"], ' + - '*:not(#contenteditable-root) > a[href*="channel"], ' + - '*:not(#contenteditable-root) > a[href*="/c/"]' - ); - - for (var i = 0, l = node_list.length; i < l; i++) { - var node = node_list[i]; - - if (!node.getAttribute('it-origin') || - node.hasAttribute('it-origin') && - node.getAttribute('it-origin').replace(/\/(home|videos|playlists)+$/g, '') != node.href.replace(/\/(home|videos|playlists)+$/g, '') - ) { - node.setAttribute('it-origin', node.href); - } - - node.href = node.getAttribute('it-origin') + value; - - function click(event) { - event.stopPropagation(); - } - - node.addEventListener('click', click, true); - node.parentNode.addEventListener('click', click, true); - node.parentNode.parentNode.addEventListener('click', click, true); - } - } else if (this.storage.channel_default_tab) { - var node_list = document.querySelectorAll('a[href*="user"], a[href*="channel"], a[href*="/c/"]'); - - for (var i = 0, l = node_list.length; i < l; i++) { - node_list[i].href = node_list[i].getAttribute('it-origin'); - } - } -}; - - -/*------------------------------------------------------------------------------ -7.0 SHORTCUTS --------------------------------------------------------------------------------- -TODO: CONNECT & TEST -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcuts = function() { - var self = this, - keys = {}, - wheel = 0, - hover = false, - status_timer; - - function showStatus(player, volume) { - if (!player.querySelector('#it-status')) { - var element = document.createElement('div'); - - element.id = 'it-status'; - element.innerHTML = volume; - - document.querySelector('.html5-video-container').appendChild(element); - } else { - player.querySelector('#it-status').innerHTML = volume; - } - - if (status_timer) { - clearTimeout(status_timer); - } - - status_timer = setTimeout(function() { - if (player.querySelector('#it-status')) { - player.querySelector('#it-status').remove(); - } - }, 500); - } - - function start(type = 'keys') { - if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || event.target.isContentEditable) { - return false; - } - - var features = { - shortcut_240p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('small'); - player.setPlaybackQuality('small'); - } - }, - shortcut_360p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('medium'); - player.setPlaybackQuality('medium'); - } - }, - shortcut_480p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('large'); - player.setPlaybackQuality('large'); - } - }, - shortcut_720p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd720'); - player.setPlaybackQuality('hd720'); - } - }, - shortcut_1080p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd1080'); - player.setPlaybackQuality('hd1080'); - } - }, - shortcut_1440p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd1440'); - player.setPlaybackQuality('hd1440'); - } - }, - shortcut_2160p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd2160'); - player.setPlaybackQuality('hd2160'); - } - }, - shortcut_2880p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd2880'); - player.setPlaybackQuality('hd2880'); - } - }, - shortcut_4320p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('highres'); - player.setPlaybackQuality('highres'); - } - }, - shortcut_picture_in_picture: function() { - var video = document.querySelector('#movie_player video'); - - if (video) { - video.requestPictureInPicture(); - } - }, - shortcut_play_pause: function() { - var video = document.querySelector('#movie_player video'); - - if (video) { - if (video.paused) { - video.play(); - } else { - video.pause(); - } - } - }, - shortcut_stop: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.stopVideo(); - } - }, - shortcut_next_video: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.nextVideo) { - player.nextVideo(); - } - }, - shortcut_prev_video: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.previousVideo) { - player.previousVideo(); - } - }, - shortcut_seek_backward: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.seekBy) { - player.seekBy(-10); - } - }, - shortcut_seek_forward: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.seekBy) { - player.seekBy(10); - } - }, - shortcut_increase_volume: function() { - var player = document.querySelector('.html5-video-player'); - - if (player && player.setVolume && player.getVolume) { - player.setVolume(player.getVolume() + (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); - } - - showStatus(player, player.getVolume()); - }, - shortcut_decrease_volume: function() { - var player = document.querySelector('.html5-video-player'); - - if (player && player.setVolume && player.getVolume) { - player.setVolume(player.getVolume() - (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); - } - - showStatus(player, player.getVolume()); - }, - shortcut_screenshot: function() { - var player = document.querySelector('.html5-video-player'); - - if (player && player.setVolume && player.getVolume) { - ImprovedTube.screenshot(); - } - }, - shortcut_increase_playback_speed: function() { - var video = document.querySelector('#movie_player video'); - - if (video && video.playbackRate) { - video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); - - showStatus(document.querySelector('#movie_player'), video.playbackRate); - } - }, - shortcut_decrease_playback_speed: function() { - var video = document.querySelector('#movie_player video'); - - if (video && video.playbackRate) { - video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); - - showStatus(document.querySelector('#movie_player'), video.playbackRate); - } - }, - shortcut_go_to_search_box: function() { - var search = document.querySelector('#search'); - - if (search && search.focus) { - search.focus(); - } - }, - shortcut_activate_fullscreen: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.toggleFullscreen) { - player.toggleFullscreen(); - } - }, - shortcut_activate_captions: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.querySelector('.ytp-subtitles-button')) { - player.querySelector('.ytp-subtitles-button').click(); - } - }, - shortcut_like_shortcut: function() { - var like = (document.querySelectorAll('.like-button-renderer-like-button')[0] || document.querySelectorAll('#menu #top-level-buttons ytd-toggle-button-renderer')[0]); - - if (like) { - like.click(); - } - }, - shortcut_dislike_shortcut: function() { - var like = (document.querySelectorAll('.like-button-renderer-dislike-button')[0] || document.querySelectorAll('#menu #top-level-buttons ytd-toggle-button-renderer')[1]); - - if (like) { - like.click(); - } - }, - shortcut_dark_theme: function() { - if (document.documentElement.hasAttribute('dark')) { - document.documentElement.removeAttribute('dark'); - document.documentElement.removeAttribute('it-theme'); - } else { - document.documentElement.setAttribute('dark', ''); - document.documentElement.setAttribute('it-theme', 'true'); - } - }, - shortcut_custom_mini_player: function() { - ImprovedTube.storage.mini_player = !ImprovedTube.storage.mini_player; - - ImprovedTube.mini_player(); - - if (ImprovedTube.storage.mini_player === true) { - ImprovedTube.mini_player__mode = true; - - ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; - ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; - - ImprovedTube.mini_player__element.classList.add('it-mini-player'); - - ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); - ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); - - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); - - window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - - window.dispatchEvent(new Event('resize')); - } - }, - shortcut_stats_for_nerds: function() { - var player = document.querySelector('.html5-video-player'); - - if (player.isVideoInfoVisible()) { - player.hideVideoInfo(); - } else { - player.showVideoInfo(); - } - }, - shortcut_toggle_cards: function() { - document.documentElement.toggleAttribute('it-player-hide-cards'); - } - }; - - for (var i in features) { - if (self.isset(self.storage[i])) { - var data = JSON.parse(self.storage[i]) || {}; - - if ( - (data.key === keys.key || !self.isset(data.key)) && - (data.shiftKey === keys.shiftKey || !self.isset(data.shiftKey)) && - (data.ctrlKey === keys.ctrlKey || !self.isset(data.ctrlKey)) && - (data.altKey === keys.altKey || !self.isset(data.altKey)) && - ((data.wheel > 0) === (wheel > 0) || !self.isset(data.wheel)) && - ((hover === true && (data.wheel > 0) === (wheel > 0) && Object.keys(keys).length === 0 && keys.constructor === Object) || (self.isset(data.key) || self.isset(data.altKey) || self.isset(data.ctrlKey))) - ) { - if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { - event.preventDefault(); - event.stopPropagation(); - } - - features[i](); - - if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { - return false; - } - } - } - } - } - - - /*------------------------------------------------------------------------- - 1.0 Keyboard - -------------------------------------------------------------------------*/ - - window.addEventListener('keydown', function(event) { - keys = { - key: event.key, - keyCode: event.keyCode, - shiftKey: event.shiftKey, - ctrlKey: event.ctrlKey, - altKey: event.altKey - }; - - start(); - }, true); - - window.addEventListener('keyup', function(event) { - keys = {}; - }, true); - - - /*------------------------------------------------------------------------- - 2.0 Mouse - -------------------------------------------------------------------------*/ - - window.addEventListener('mousemove', function(event) { - hover = false; - - for (var i = 0, l = event.path.length; i < l; i++) { - if (event.path[i].classList && event.path[i].classList.contains('html5-video-player')) { - hover = true; - } - } - }, { - passive: false, - capture: true - }); - - window.addEventListener('wheel', function(event) { - wheel = event.deltaY; - - start('wheel'); - }, { - passive: false, - capture: true - }); -}; - - -/*------------------------------------------------------------------------------ -8.0 BLACKLIST --------------------------------------------------------------------------------- -TODO: CONNECT & TEST -------------------------------------------------------------------------------*/ - -document.addEventListener('ImprovedTubeBlacklist', function(event) { - if (chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-blacklist', - data: { - type: event.detail.type, - id: event.detail.id, - title: event.detail.title, - preview: event.detail.preview - } - }); - } -}); - -ImprovedTube.blacklist = function() { - if (ImprovedTube.storage.blacklist_activate !== true) { - return false; - } - - if (typeof ImprovedTube.storage.blacklist === 'boolean' || !ImprovedTube.storage.blacklist) { - ImprovedTube.storage.blacklist = {}; - } - - // channel button - if (!ImprovedTube.isset(ImprovedTube.storage.blacklist.channels) || - (ImprovedTube.storage.blacklist.channels && - Object.keys(ImprovedTube.storage.blacklist.channels).indexOf(location.href.replace(/https:\/\/www.youtube.com\/(channel|user|c)\//g, '').replace(/\/(.)+/g, '')) === -1) - ) { - let channel_items = document.querySelectorAll('#inner-header-container #subscribe-button, .primary-header-upper-section .yt-uix-subscription-button'); - - for (let i = 0, l = channel_items.length; i < l; i++) { - if (!channel_items[i].parentNode.querySelector('.improvedtube-add-to-blacklist')) { - let button = document.createElement('div'); - - button.addEventListener('click', function(event) { - let video_id; - - event.preventDefault(); - event.stopPropagation(); - - try { - video_id = location.href.replace(/https:\/\/www.youtube.com\/(channel|user)\//g, '').replace(/\/(.)+/g, ''); - - document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { - detail: { - type: 'channel', - id: video_id, - title: document.querySelector('#channel-container yt-formatted-string.ytd-channel-name, a.branded-page-header-title-link').innerText, - preview: document.querySelector('#channel-container #avatar #img, .channel-header-profile-image').src - } - })); - - if (!ImprovedTube.storage.blacklist || typeof ImprovedTube.storage.blacklist !== 'object') { - ImprovedTube.storage.blacklist = {}; - } - - if (!ImprovedTube.storage.blacklist.channels) { - ImprovedTube.storage.blacklist.channels = {}; - } - - ImprovedTube.storage.blacklist.channels[video_id] = { - title: document.querySelector('yt-formatted-string.ytd-channel-name, a.branded-page-header-title-link').innerText, - preview: document.querySelector('#channel-container #avatar #img, .channel-header-profile-image').src - }; - - ImprovedTube.blacklist(); - - location.reload(); - } catch (err) {} - }, true); - - button.className = 'improvedtube-add-to-blacklist'; - button.innerText = 'Add to blacklist'; - button.style.position = 'static'; - button.style.transform = 'unset'; - button.style.opacity = '1'; - button.style.visibility = 'visible'; - button.style.pointerEvents = 'all'; - button.style.width = 'auto'; - button.style.fontSize = '16px'; - button.style.lineHeight = '28px'; - button.style.height = 'auto'; - button.style.padding = '6px 12px'; - button.style.borderRadius = '2px'; - button.style.boxSizing = 'border-box'; - button.style.background = '#bb1a1a'; - - channel_items[i].parentNode.insertBefore(button, channel_items[i]); - } - } - } - - // video button - let video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (let i = 0, l = video_items.length; i < l; i++) { - if (!video_items[i].querySelector('.improvedtube-add-to-blacklist')) { - let button = document.createElement('div'); - - button.addEventListener('click', function(event) { - let video_id; - - event.preventDefault(); - event.stopPropagation(); - - try { - video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'); - - let item = this.parentNode; - - while ( - item.nodeName && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } - - document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { - detail: { - type: 'video', - id: video_id, - title: item.querySelector('#video-title').innerText - } - })); - - if (!ImprovedTube.storage.blacklist || typeof ImprovedTube.storage.blacklist !== 'object') { - ImprovedTube.storage.blacklist = {}; - } - - if (!ImprovedTube.storage.blacklist.videos) { - ImprovedTube.storage.blacklist.videos = {}; - } - - ImprovedTube.storage.blacklist.videos[video_id] = { - title: item.querySelector('#video-title').innerText - }; - - ImprovedTube.blacklist(); - } catch (err) {} - }, true); - button.className = 'improvedtube-add-to-blacklist'; - button.innerText = 'x'; - - video_items[i].appendChild(button); - } - } - - // remove channels - if (ImprovedTube.storage.blacklist && ImprovedTube.storage.blacklist.channels) { - let videos = document.querySelectorAll('a#thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (let i = 0, l = videos.length; i < l; i++) { - let item = videos[i]; - - while ( - item.nodeName && - item.nodeName !== 'YTD-VIDEO-RENDERER' && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } - - if (item.querySelector('.ytd-channel-name a, a.spf-link[href*="/user/"], a.spf-link[href*="/channel/"]')) { - let channel_href = item.querySelector('.ytd-channel-name a, a.spf-link[href*="/user/"], a.spf-link[href*="/channel/"]').href; - - for (var key in ImprovedTube.storage.blacklist.channels) { - if (item.style && channel_href.indexOf(key) !== -1) { - item.style.display = 'none'; - } - } - } - } - } - - // remove videos - if (ImprovedTube.storage.blacklist && ImprovedTube.storage.blacklist.videos) { - let videos = document.querySelectorAll('a#thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (let i = 0, l = videos.length; i < l; i++) { - if (videos[i].href && videos[i].href != '' && ImprovedTube.getParam(new URL(videos[i].href).search.substr(1), 'v') in ImprovedTube.storage.blacklist.videos) { - let item = videos[i]; - - while ( - item.nodeName && - item.nodeName !== 'YTD-VIDEO-RENDERER' && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } - - item.style.display = 'none'; - } - } - } -}; - - -/*------------------------------------------------------------------------------ -9.0 ANALYZER --------------------------------------------------------------------------------- -TODO: CONNECT & TEST -------------------------------------------------------------------------------*/ - -document.addEventListener('ImprovedTubeAnalyzer', function() { - if (items.analyzer_activation === true) { - if (document.querySelector('ytd-channel-name a') && chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-analyzer', - value: document.querySelector('ytd-channel-name a').innerText - }); - } - } -}); - - -/*------------------------------------------------------------------------------ -10.0 SETTINGS -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -10.1 IMPROVEDTUBE ICON -------------------------------------------------------------------------------*/ - -ImprovedTube.improvedtube_youtube_icon_wait = false; - -ImprovedTube.improvedtube_youtube_icon_resize = function() { - var iframe = document.querySelector('.it-btn__iframe'), - icon = document.querySelector('.it-btn__icon'); - - if (iframe && icon) { - var x = icon.getBoundingClientRect().x, - y = icon.getBoundingClientRect().y; - - if (x < window.innerWidth / 2) { - iframe.style.right = 'auto'; - iframe.style.left = '0px'; - } else { - iframe.style.right = '0px'; - iframe.style.left = 'auto'; - } - - if (y < window.innerHeight / 2) { - iframe.style.top = '50px'; - iframe.style.bottom = 'auto'; - - iframe.style.height = Math.min(500, window.innerHeight - Math.max(0, iframe.getBoundingClientRect().top) - 16) + 'px'; - } else { - iframe.style.top = 'auto'; - iframe.style.bottom = '50px'; - - iframe.style.height = Math.min(500, window.innerHeight - Math.max(0, window.innerHeight - iframe.getBoundingClientRect().y - iframe.getBoundingClientRect().height) - 16) + 'px'; - } - } -}; - -ImprovedTube.improvedtubeYoutubeIcon = function() { - if (window.self !== window.top) { - return false; - } - - if ( - ImprovedTube.storage.improvedtube_youtube_icon === 'disabled' && - document.querySelector('.it-btn') - ) { - document.querySelector('.it-btn').remove(); - } - - if (this.improvedtube_youtube_icon_wait === false) { - this.improvedtube_youtube_icon_wait = setInterval(function() { - var option = ImprovedTube.storage.improvedtube_youtube_icon, - parentNode, - referenceNode; - - if (option === 'header_left') { - parentNode = document.querySelector('ytd-masthead #start'); - referenceNode = document.querySelector('ytd-masthead #start #guide-button'); - } else if (option === 'header_right') { - parentNode = ( - document.querySelector('#end #buttons') || - document.querySelector('#yt-masthead-user') - ); - } else if (option === 'draggable') { - parentNode = document.body || document.querySelector('body'); - } else if (option === 'below_player') { - parentNode = ( - document.querySelector('.title.ytd-video-primary-info-renderer') || - document.querySelector('#watch-headline-title') - ); - } - - if (document.querySelector('.it-btn')) { - if (!parentNode.querySelector(':scope > .it-btn')) { - document.querySelector('.it-btn').remove(); - } else { - clearInterval(ImprovedTube.improvedtube_youtube_icon_wait); - - ImprovedTube.improvedtube_youtube_icon_wait = false; - - return false; - } - } - - if ( - ImprovedTube.isset(option) && - option !== 'disabled' && - parentNode && (option === 'header_left' ? referenceNode : true) - ) { - clearInterval(ImprovedTube.improvedtube_youtube_icon_wait); - - ImprovedTube.improvedtube_youtube_icon_wait = false; - - var button = document.createElement('div'); - - button.className = 'it-btn'; - button.innerHTML = '
'; - button.addEventListener('click', function() { - event.preventDefault(); - event.stopPropagation(); - - this.classList.toggle('it-btn--active'); - ImprovedTube.improvedtube_youtube_icon_resize(); - - return false; - }, true); - - if (option === 'draggable') { - var position = localStorage.getItem('IT_ICON'); - - if (ImprovedTube.isset(position)) { - position = JSON.parse(position); - - button.style.left = position.x + 'px'; - button.style.top = position.y + 'px'; - } - - function move(event) { - button.classList.add('it-btn--dragging'); - - if (event.clientX < window.innerWidth / 2) { - if (event.clientX - Number(button.dataset.x) >= 16) { - button.style.left = event.clientX - Number(button.dataset.x) + 'px'; - } else { - button.style.left = '16px'; - } - } else { - if (event.clientX + (48 + window.innerWidth - document.querySelector('body').offsetWidth) - Number(button.dataset.x) <= window.innerWidth) { - button.style.left = event.clientX - Number(button.dataset.x) + 'px'; - } else { - button.style.left = 'calc(100vw - ' + (48 + window.innerWidth - document.querySelector('body').offsetWidth) + 'px)'; - } - } - - if (event.clientY < window.innerHeight / 2) { - if (event.clientY - Number(button.dataset.y) >= 16) { - button.style.top = event.clientY - Number(button.dataset.y) + 'px'; - } else { - button.style.top = '16px'; - } - } else { - if (event.clientY + 48 - Number(button.dataset.y) <= window.innerHeight) { - button.style.top = event.clientY - Number(button.dataset.y) + 'px'; - } else { - button.style.top = 'calc(100vh - 48px)'; - } - } - - ImprovedTube.improvedtube_youtube_icon_resize(); - } - - button.addEventListener('mousedown', function(event) { - this.dataset.x = event.layerX; - this.dataset.y = event.layerY; - - window.addEventListener('mousemove', move); - }); - - window.addEventListener('mouseup', function() { - button.classList.remove('it-btn--dragging'); - - window.removeEventListener('mousemove', move); - - localStorage.setItem('IT_ICON', JSON.stringify({ - x: button.offsetLeft, - y: button.offsetTop - })); - - setTimeout(function() { - button.style.pointerEvents = ''; - }); - }); - } - - if (option === 'header_left') { - parentNode.insertBefore(button, referenceNode); - } else { - parentNode.appendChild(button); - } - - ImprovedTube.improvedtube_youtube_icon_resize(); - } - }, 250); - } -}; - - -/*----------------------------------------------------------------------------- -10.2 DELETE YOUTUBE COOKIES ------------------------------------------------------------------------------*/ - -ImprovedTube.deleteYoutubeCookies = function() { - var cookies = document.cookie.split(';'); - - for (var i = 0, l = cookies.length; i < l; i++) { - var cookie = cookies[i], - eqPos = cookie.indexOf('='), - name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; - - document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; - } - - setTimeout(function() { - location.reload(); - }, 100); -}; - - -/*----------------------------------------------------------------------------- -10.3 YOUTUBE LANGUAGE ------------------------------------------------------------------------------*/ - -ImprovedTube.youtubeLanguage = function() { - var pref = ImprovedTube.getCookieValueByName('PREF'), - hl = ImprovedTube.getParam(pref, 'hl'); - - if (hl) { - ImprovedTube.setCookie('PREF', pref.replace('hl=' + hl, 'hl=' + ImprovedTube.storage.youtube_language)); - } else { - ImprovedTube.setCookie('PREF', pref + '&hl=' + ImprovedTube.storage.youtube_language); - } - - setTimeout(function() { - location.reload(); - }, 100); -}; \ No newline at end of file diff --git a/unstable/_locales/ar/messages.json b/unstable/_locales/ar/messages.json deleted file mode 100644 index 937e54cee..000000000 --- a/unstable/_locales/ar/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "cropChapterTitles": { - "message": "اقتطاع عناوين الفصول" - }, - "about": { - "message": "حول" - }, - "accept": { - "message": "قبول" - }, - "activate": { - "message": "تفعيل" - }, - "activateCaptions": { - "message": "تفعيل الترجمة" - }, - "activated": { - "message": "مفعل" - }, - "activatedFeatures": { - "message": "الميزات المفعلة" - }, - "activateFullscreen": { - "message": "تفعيل ملء الشاشة" - }, - "activeFeatures": { - "message": "الميزات النشطة" - }, - "addScrollToTop": { - "message": "آضف الصعود لأعلى" - }, - "ads": { - "message": "الاعلانات" - }, - "all": { - "message": "الكل" - }, - "allow": { - "message": "سماح" - }, - "allow60fps": { - "message": "السماح لـ60إطار" - }, - "alwaysActive": { - "message": "دائما نشط" - }, - "alwaysShowProgressBar": { - "message": "إظهار شريط التقدم دائمًا" - }, - "amber": { - "message": "العنبر" - }, - "analyzer": { - "message": "المحلل" - }, - "appearance": { - "message": "المظهر العام" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "الصوت" - }, - "audioFormats": { - "message": "تنسيقات الصوت" - }, - "auto": { - "message": "تلقائي" - }, - "autoFullscreen": { - "message": "ملء تلقائي للشاشة" - }, - "autopauseWhenSwitchingTabs": { - "message": "إيقاف تلقائي عند التبديل بين التبويبات" - }, - "autoplay": { - "message": "تشغيل تلقائي" - }, - "backupAndReset": { - "message": "إعادة تعيين والنسخ الاحتياطي" - }, - "baseOnSystemColorScheme": { - "message": "يناء على ألوان النظام" - }, - "belowPlayer": { - "message": "اسفل المشغل" - }, - "black": { - "message": "اسود" - }, - "blacklist": { - "message": "القائمة السوداء" - }, - "blockAll": { - "message": "حظر الكل" - }, - "blue": { - "message": "ازرق" - }, - "blueGray": { - "message": "ازرق رمادي" - }, - "bluelight": { - "message": "الضوء الأزرق" - }, - "brown": { - "message": "بنى" - }, - "browser": { - "message": "المتصفح" - }, - "browserVersion": { - "message": "إصدار المتصفح" - }, - "bubbles": { - "message": "فقاعات" - }, - "bug": { - "message": "خلل برمجي" - }, - "buttons": { - "message": "أزرار" - }, - "cancel": { - "message": "إلغاء" - }, - "categories": { - "message": "التصنيفات" - }, - "channel": { - "message": "قناة" - }, - "channels": { - "message": "القنوات" - }, - "clipboard": { - "message": "الحافظة" - }, - "codecH264": { - "message": "h.الترميز 264" - }, - "collapsed": { - "message": "ضغط" - }, - "collapseOfSubscriptionSections": { - "message": "ضغط قسم الاشتراكات" - }, - "comments": { - "message": "التعليقات" - }, - "confirmationBeforeClosing": { - "message": "التأكيد قبل الإغلاق" - }, - "cookies": { - "message": "ملفات تعريف الارتباط" - }, - "cores": { - "message": "النواه" - }, - "customCss": { - "message": "مخصص CSS" - }, - "customJs": { - "message": "مخصص JS" - }, - "cyan": { - "message": "ازرق سماوي" - }, - "dark": { - "message": "داكن" - }, - "darkTheme": { - "message": "مظهر داكن" - }, - "dateAndTime": { - "message": "التاريخ والوقت" - }, - "dawn": { - "message": "فجر" - }, - "decreasePlaybackSpeed": { - "message": "تقليل سرعة التشغيل" - }, - "decreaseVolume5": { - "message": "5% خفض الصوت" - }, - "deepOrange": { - "message": "برتقالي داكن" - }, - "deepPurple": { - "message": "أرجواني داكن" - }, - "defaultChannelTab": { - "message": "علامة تبويب القناة الافتراضية" - }, - "deleteYoutubeCookies": { - "message": "حذف ملفات تعريف الارتباط من اليوتيوب" - }, - "description": { - "message": "الوصف" - }, - "desert": { - "message": "صحراء" - }, - "details": { - "message": "التفاصيل" - }, - "developerOptions": { - "message": "خيارات المطور" - }, - "device": { - "message": "الجهاز" - }, - "dim": { - "message": "داكن" - }, - "disabled": { - "message": "معطل" - }, - "dislike": { - "message": "لم يعجبنى" - }, - "donate": { - "message": "تبرع" - }, - "doNotChange": { - "message": "الإفتراضي" - }, - "draggable": { - "message": "قابل للسحب" - }, - "email": { - "message": "البريد الإلكتروني" - }, - "empty": { - "message": "فارغة" - }, - "enabled": { - "message": "ممكّن" - }, - "enabledForced": { - "message": "ممكّن (إجباري)" - }, - "expanded": { - "message": "موسع" - }, - "exportSettings": { - "message": "تصدير الإعدادات" - }, - "extension": { - "message": "الإضافة" - }, - "file": { - "message": "ملف" - }, - "filters": { - "message": "مرشحات" - }, - "fitToWindow": { - "message": "مناسب للنافذة" - }, - "flash": { - "message": "فلاش" - }, - "font": { - "message": "الخط" - }, - "footer": { - "message": "الحزء السفلي" - }, - "forcedPlaybackSpeed": { - "message": "تثبيت سرعة التشغيل" - }, - "forcedTheaterMode": { - "message": "فرض وضع المسرح" - }, - "forcedVolume": { - "message": "تثبيت مستوى الصوت" - }, - "foundABug": { - "message": "وجدت خطأ؟" - }, - "fullWindow": { - "message": "نافذة كاملة" - }, - "general": { - "message": "عام" - }, - "github": { - "message": "جيتهب" - }, - "goToSearchBox": { - "message": "انتقل إلى مربع البحث" - }, - "gpu": { - "message": "كرت الشاشة" - }, - "green": { - "message": "أخضر" - }, - "hdThumbnail": { - "message": "صورة مصغرة عالية الدقة" - }, - "hdThumbnails": { - "message": "صور مصغرة عالية الدقة" - }, - "header": { - "message": "الجزء العلوي" - }, - "hidden": { - "message": "مخفي" - }, - "hiddenOnVideoPage": { - "message": "مخفي على صفحة الفيديو" - }, - "hideAnimatedThumbnails": { - "message": "إخفاء الصور المصغرة المتحركة" - }, - "hideAnnotations": { - "message": "إخفاء التعليقات التوضيحية" - }, - "hideCards": { - "message": "إخفاء البطاقات" - }, - "hideDetails": { - "message": "إخفاء التفاصيل" - }, - "hideEndscreen": { - "message": "إخفاء شاشة النهاية" - }, - "hideFeaturedContent": { - "message": "إخفاء المحتوى المميز" - }, - "hideFooter": { - "message": "إخفاء الجزء السفلي" - }, - "hidePlaylist": { - "message": "إخفاء قائمة التشغيل" - }, - "hideRightButtons": { - "message": "إخفاء الأزرار اليسرى" - }, - "hideScrollForDetails": { - "message": "«إخفاء «التمرير للحصول على التفاصيل" - }, - "hideViewsCount": { - "message": "إخفاء عدد المشاهدات" - }, - "history": { - "message": "السجلّ" - }, - "home": { - "message": "الصفحة الرئيسية" - }, - "hover": { - "message": "تمرير" - }, - "hoverOnVideoPage": { - "message": "تمرير فوق صفحة الفيديو" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "منذ متى تم تحميل الفيديو" - }, - "icons": { - "message": "أيقونات" - }, - "iconsOnly": { - "message": "أيقونات فقط" - }, - "importSettings": { - "message": "استيراد الاعدادات" - }, - "improvedtubeIconInBrowser": { - "message": "في المتصفح ImprovedTube ايقونة" - }, - "improvedtubeIconOnYoutube": { - "message": "في اليوتيوب ImprovedTube ايقونة" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube لغة" - }, - "improvedtubeVersion": { - "message": "ImprovedTube اصدار" - }, - "improveLogo": { - "message": "تحسين الشعار" - }, - "increasePlaybackSpeed": { - "message": "زيادة سرعة التشغيل" - }, - "increaseVolume5": { - "message": "5% زيادة الصوت" - }, - "indigo": { - "message": "نيلي" - }, - "items": { - "message": "العناصر" - }, - "languages": { - "message": "اللغات" - }, - "legacyYoutube": { - "message": "اليوتيوب القديم" - }, - "light": { - "message": "ضوء" - }, - "lightBlue": { - "message": "أزرق فاتح" - }, - "lightGreen": { - "message": "اخضر فاتح" - }, - "like": { - "message": "اعحبني" - }, - "likes": { - "message": "الإعجابات" - }, - "lime": { - "message": "جير" - }, - "list": { - "message": "قائمة" - }, - "liveChat": { - "message": "محادثة مباشرة" - }, - "liveChatType": { - "message": "نوع المحادثة مباشرة" - }, - "loudnessNormalization": { - "message": "تطبيع الإزعاج" - }, - "markWatchedVideos": { - "message": "التعليم على الفيديو المشاهد" - }, - "customMiniPlayer": { - "message": "المشغل الصغير المخصص" - }, - "mixer": { - "message": "مهندس الصوت" - }, - "myColors": { - "message": "ألواني" - }, - "name": { - "message": "الاسم" - }, - "nativeMiniPlayer": { - "message": "المشغل الافتراضي الصغير" - }, - "new": { - "message": "جديد" - }, - "nextVideo": { - "message": "الفيديو التالي" - }, - "night": { - "message": "ليل" - }, - "noActiveFeatures": { - "message": "لا يوجد ميزات نشطة" - }, - "none": { - "message": "لاشيء" - }, - "noOpenVideoTabs": { - "message": "لا توجد علامات تبويب فيديو مفتوحة" - }, - "normal": { - "message": "عادي" - }, - "old": { - "message": "قديم" - }, - "onAllVideos": { - "message": "على جميع مقاطع الفيديو" - }, - "onlyActiveOnYoutube": { - "message": "نشط فقط على اليوتيوب" - }, - "onlyOnePlayerInstancePlaying": { - "message": "تشغيل مشغل واحد فقط" - }, - "onSubscribedChannels": { - "message": "على القنوات المشتركة" - }, - "orange": { - "message": "برتقالي" - }, - "os": { - "message": "نظام التشغيل" - }, - "other": { - "message": "آخر" - }, - "permissions": { - "message": "الأذونات" - }, - "pictureInPicture": { - "message": "فيديو عائم" - }, - "pink": { - "message": "زهري" - }, - "plain": { - "message": "عادي" - }, - "platform": { - "message": "المنصة" - }, - "playbackSpeed": { - "message": "سرعة التشغيل" - }, - "player": { - "message": "المشغل" - }, - "playerColor": { - "message": "لون المشغل" - }, - "playerSize": { - "message": "حجم المشغل" - }, - "playlist": { - "message": "قائمة التشغيل" - }, - "playlists": { - "message": "قوائم التشغيل" - }, - "playPause": { - "message": "تشغيل / ايقاف" - }, - "popupPlayer": { - "message": "مشفل منبثق" - }, - "position": { - "message": "التموضع" - }, - "pressAnyKeyOrScroll": { - "message": ".اضغط على أي مفتاح أو استخدم عجلة الماوس" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "اضغط على أي مفتاح أو استخدم عجلة الماوس" - }, - "previousVideo": { - "message": "الفيديو السابق" - }, - "primaryColor": { - "message": "اللون الأصلي" - }, - "purple": { - "message": "أرجواني" - }, - "quality": { - "message": "الجودة" - }, - "ram": { - "message": "الذاكرة العشوائية" - }, - "rateUs": { - "message": "قيمنا" - }, - "red": { - "message": "احمر" - }, - "relatedVideos": { - "message": "فيديوهات ذات علاقة" - }, - "removeRelatedSearchResults": { - "message": "إزالة عمليات بحث مرتبطة بـ" - }, - "repeat": { - "message": "تكرار" - }, - "reset": { - "message": "إعادة تعيين" - }, - "resetAllSettings": { - "message": "إعادة تعيين كافة الإعدادات" - }, - "resetAllShortcuts": { - "message": "إعادة تعيين جميع الاختصارات" - }, - "reverse": { - "message": "عكس" - }, - "rotate": { - "message": "استدارة" - }, - "save": { - "message": "حفظ" - }, - "saveAs": { - "message": "حفظ باسم" - }, - "schedule": { - "message": "جدوله" - }, - "screen": { - "message": "الشاشة" - }, - "screenshot": { - "message": "لقطة شاشة" - }, - "search": { - "message": "بحث" - }, - "searchBarOnly": { - "message": "شريط البحث فقط" - }, - "seekBackward10Seconds": { - "message": "إرجاع بمقدار 10 ثوانٍ" - }, - "seekForward10Seconds": { - "message": "تقديم 10 ثوانٍ إلى الأمام" - }, - "settings": { - "message": "الإعدادات" - }, - "settingsSuccessfullyImported": { - "message": "تم استيراد الإعدادات بنجاح" - }, - "shortcuts": { - "message": "اختصارات" - }, - "showCardsOnMouseHover": { - "message": "عرض البطاقات عند تمرير الماوس" - }, - "showChannelVideosCount": { - "message": "إظهار عدد مقاطع الفيديو للقناة" - }, - "shuffle": { - "message": "عشوائي" - }, - "sidebar": { - "message": "الشريط الجانبي" - }, - "spacebar": { - "message": "مفتاح المسافة" - }, - "squaredUserImages": { - "message": "صور المستخدمين مربعة" - }, - "static": { - "message": "ثابت" - }, - "step": { - "message": "خطوة" - }, - "stop": { - "message": "ايقاف" - }, - "style": { - "message": "نمط" - }, - "styles": { - "message": "الأنماط" - }, - "subscriptions": { - "message": "الاشتراكات" - }, - "subtitles": { - "message": "الترجمات" - }, - "sunset": { - "message": "غروب الشمس" - }, - "sunsetToSunrise": { - "message": "من غروب الشمس إلى شروقها" - }, - "systemPeferenceDark": { - "message": "تفضيل النظام: داكن" - }, - "systemPeferenceLight": { - "message": "تفضيل النظام: فاتح" - }, - "teal": { - "message": "أزرق مخضر" - }, - "textColor": { - "message": "لون النص" - }, - "themes": { - "message": "المظاهر" - }, - "thisWillRemoveAllCookies": { - "message": ".سيؤدي هذا إلى إزالة كافة ملفات تعريف الارتباط" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "سيؤدي هذا إلى إزالة جميع ملفات تعريف ارتباط اليوتيوب" - }, - "thisWillResetAllSettings": { - "message": ".سيؤدي هذا إلى إعادة تعيين جميع الإعدادات" - }, - "thisWillResetAllShortcuts": { - "message": "سيؤدي هذا إلى إعادة تعيين جميع الاختصارات" - }, - "thumbnails": { - "message": "الصور المصغرة" - }, - "timeFrom": { - "message": "الوقت من" - }, - "timeTo": { - "message": "وقت ل" - }, - "todayAt": { - "message": "اليوم عند الساعة" - }, - "topChat": { - "message": "رسائل المحادثة الهامّة" - }, - "trailerAutoplay": { - "message": "التشغيل التلقائي للفيديو الدعائي" - }, - "translations": { - "message": "الترجمات" - }, - "transparentBackground": { - "message": "خلفية شفافة" - }, - "trending": { - "message": "المحتوى الرائج" - }, - "tryToReloadThePage": { - "message": "حاول إعادة تحميل الصفحة" - }, - "type": { - "message": "النوع" - }, - "upNextAutoplay": { - "message": "تشغيل التالي تلقائيا" - }, - "use24HourFormat": { - "message": "استخدم تنسيق 24 ساعة" - }, - "version": { - "message": "الإصدار" - }, - "video": { - "message": "الفيديو" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "سيتم توسيع وصف الفيديو للحصول على اسم الفئة" - }, - "videoFormats": { - "message": "تنسيقات الفيديو" - }, - "videos": { - "message": "الفيديوهات" - }, - "volume": { - "message": "الصوت" - }, - "watchLater": { - "message": "المشاهدة لاحقا" - }, - "watchTime": { - "message": "وقت المشاهدة" - }, - "whenTabIsChanged": { - "message": "عندما يتم تغيير علامة التبويب" - }, - "white": { - "message": "أبيض" - }, - "yellow": { - "message": "أصفر" - }, - "youtubeHeaderLeft": { - "message": "جزء اليوتيوب العلوي (يسار) " - }, - "youtubeHeaderRight": { - "message": "جزء اليوتيوب العلوي (يمين)" - }, - "youtubeHomePage": { - "message": "صفحة اليوتيوب الرئيسية" - }, - "youtubeLanguage": { - "message": "لغة اليوتيوب" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "h.264 يحد اليوتيوب من جودة الفيديو الى ١٠٨٠ لـ الترميز" - }, - "redDislikeButton": { - "message": "إظهار زر لم يعجبني باللون الأحمر" - }, - "hideGradientBottom": { - "message": "إخفاء التدرج الأسود السفلي" - }, - "statsForNerds": { - "message": "عرض الإحصاءات المفصلة" - }, - "toggleCards": { - "message": "تبديل وضع البطاقات" - } -} diff --git a/unstable/_locales/bn/messages.json b/unstable/_locales/bn/messages.json deleted file mode 100644 index d055ed657..000000000 --- a/unstable/_locales/bn/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "cropChapterTitles": { - "message": "অধ্যায়ের শিরোনাম হ্রাস করুন" - }, - "about": { - "message": "সম্পর্কিত" - }, - "accept": { - "message": "গ্রহণ করুন" - }, - "activate": { - "message": "সক্রিয় করুন" - }, - "activateCaptions": { - "message": "ক্যাপশন সক্রিয় করুন" - }, - "activated": { - "message": "সক্রিয়" - }, - "activatedFeatures": { - "message": "বৈশিষ্ট্য সক্রিয় করুন" - }, - "activateFullscreen": { - "message": "পূর্ণ পর্দা সক্রিয় করুন" - }, - "activeFeatures": { - "message": "সক্রিয় বৈশিষ্" - }, - "addScrollToTop": { - "message": "«উপরে যাবার বাটন» যোগ করুন" - }, - "ads": { - "message": "বিজ্ঞাপন" - }, - "all": { - "message": "সব" - }, - "allow": { - "message": "অনুমতি দিন" - }, - "allow60fps": { - "message": "60 ফ্রেম প্রতি সেকেন্ অনুমতি দিনড" - }, - "alwaysActive": { - "message": "সর্বদা সক্রিয়" - }, - "alwaysShowProgressBar": { - "message": "সর্বদা অগ্রগতি বার প্রদর্শন করুন" - }, - "amber": { - "message": "অ্যাম্বার" - }, - "analyzer": { - "message": "বিশ্লেষক" - }, - "appearance": { - "message": "উপস্থিতি" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "শ্রুতি" - }, - "audioFormats": { - "message": "শ্রুতি ফর্ম্যাট" - }, - "auto": { - "message": "অটো" - }, - "autoFullscreen": { - "message": "স্বতঃ পূর্ণস্ক্রীন" - }, - "autopauseWhenSwitchingTabs": { - "message": "ট্যাবগুলি স্যুইচ করার সময় অটো বিরাম দিন" - }, - "autoplay": { - "message": "স্বয়ংক্রিয় চালু" - }, - "backupAndReset": { - "message": "ব্যাকআপ এবং পুনরায় সেট করুন" - }, - "baseOnSystemColorScheme": { - "message": "সিস্টেম রঙের স্কিমের ভিত্তিতে" - }, - "belowPlayer": { - "message": "প্লেয়ারের নিচে" - }, - "black": { - "message": "কালো" - }, - "blacklist": { - "message": "কালো তালিকা" - }, - "blockAll": { - "message": "সবাইকে ব্লক" - }, - "blue": { - "message": "নীল" - }, - "blueGray": { - "message": "নীল ধূসর" - }, - "bluelight": { - "message": "নীল আলো" - }, - "brown": { - "message": "বাদামী" - }, - "browser": { - "message": "ব্রাউজার" - }, - "browserVersion": { - "message": "ব্রাউজার মারজান" - }, - "bubbles": { - "message": "বুলবুলা" - }, - "bug": { - "message": "বাগ" - }, - "buttons": { - "message": "বোতাম" - }, - "cancel": { - "message": "বাতিল" - }, - "categories": { - "message": "বিভাগসমূহ" - }, - "channel": { - "message": "চ্যানেল" - }, - "channels": { - "message": "চ্যানেলগুলি" - }, - "clipboard": { - "message": "ক্লিপবোর্ড" - }, - "codecH264": { - "message": "কোডেক h.264" - }, - "collapsed": { - "message": "ভেঙে দেবো" - }, - "collapseOfSubscriptionSections": { - "message": "সাবস্ক্রিপশন বিভাগ ভেঙে দেবো" - }, - "comments": { - "message": "মন্তব্য" - }, - "confirmationBeforeClosing": { - "message": "বন্ধ হওয়ার আগে নিশ্চিতকরণ" - }, - "cookies": { - "message": "কুকিজ" - }, - "cores": { - "message": "কোর" - }, - "customCss": { - "message": "কাস্টম CSS" - }, - "customJs": { - "message": "কাস্টম JS" - }, - "cyan": { - "message": "হালকা নীল" - }, - "dark": { - "message": "গা .়" - }, - "darkTheme": { - "message": "গা .় থিম" - }, - "dateAndTime": { - "message": "তারিখ আর সময়" - }, - "dawn": { - "message": "ভোর" - }, - "decreasePlaybackSpeed": { - "message": "প্লেব্যাকের গতি হ্রাস করুন" - }, - "decreaseVolume": { - "message": "শব্দ হ্রাস করুন" - }, - "deepOrange": { - "message": "গভীর কমলা" - }, - "deepPurple": { - "message": "গভীর বেগুনি" - }, - "defaultChannelTab": { - "message": "ডিফল্ট চ্যানেল ট্যাব" - }, - "deleteYoutubeCookies": { - "message": "ইউটিউব এর কুকি ডিলিট করুন" - }, - "description": { - "message": "বর্ণনা" - }, - "desert": { - "message": "মরুভূমি" - }, - "details": { - "message": "বিশদ" - }, - "developerOptions": { - "message": "বিকাশকারী বিকল্পসমূহ" - }, - "device": { - "message": "যন্ত্র" - }, - "dim": { - "message": "ম্লান" - }, - "disabled": { - "message": "অক্ষম" - }, - "dislike": { - "message": "অপছন্দ" - }, - "donate": { - "message": "দান করুন" - }, - "doNotChange": { - "message": "পরিবর্তন করবেন না" - }, - "draggable": { - "message": "টেনে আনে" - }, - "email": { - "message": "ইমেল" - }, - "empty": { - "message": "খালি" - }, - "enabled": { - "message": "সক্ষম" - }, - "enabledForced": { - "message": "সক্ষম (জোরপূর্বক)" - }, - "expanded": { - "message": "প্রসারিত" - }, - "exportSettings": { - "message": "সেটিংস রফতানি করুন" - }, - "extension": { - "message": "এক্সটেনশন" - }, - "file": { - "message": "ফাইল" - }, - "filters": { - "message": "ফিল্টার" - }, - "fitToWindow": { - "message": "উইন্ডোতে ফিট করুন" - }, - "flash": { - "message": "ফ্ল্যাশ" - }, - "font": { - "message": "হরফ" - }, - "footer": { - "message": "পাদচরণ" - }, - "forcedPlaybackSpeed": { - "message": "জোর করে প্লেব্যাক গতি" - }, - "forcedTheaterMode": { - "message": "জোর করে থিয়েটার মোড" - }, - "forcedVolume": { - "message": "জোর করে শব্দ" - }, - "foundABug": { - "message": "একটি বাগ খুঁজে পেয়েছি?" - }, - "fullWindow": { - "message": "পুরো উইন্ডো" - }, - "general": { - "message": "সাধারণ" - }, - "github": { - "message": "গিটহাব" - }, - "goToSearchBox": { - "message": "অনুসন্ধান বাক্সে যান" - }, - "gpu": { - "message": "জিপিইউ" - }, - "green": { - "message": "সবুজ" - }, - "hdThumbnail": { - "message": "এইচডি থাম্বনেল" - }, - "hdThumbnails": { - "message": "এইচডি থামনেল গুলি" - }, - "header": { - "message": "শিরোনাম" - }, - "hidden": { - "message": "গোপন" - }, - "hiddenOnVideoPage": { - "message": "ভিডিও পৃষ্ঠায় লুকানো" - }, - "hideAnimatedThumbnails": { - "message": "অ্যানিমেটেড থাম্বনেলগুলি লুকান" - }, - "hideAnnotations": { - "message": "টীকাগুলি লুকান" - }, - "hideCards": { - "message": "কার্ড লুকান" - }, - "hideDetails": { - "message": "আড়াল বিস্তারিত" - }, - "hideEndscreen": { - "message": "এন্ডস্ক্রিন লুকান" - }, - "hideFeaturedContent": { - "message": "বৈশিষ্ট্যযুক্ত সামগ্রী লুকান" - }, - "hideFooter": { - "message": "পাদলেখ লুকান" - }, - "hidePlaylist": { - "message": "প্লেলিস্ট লুকান" - }, - "hideRightButtons": { - "message": "ডান বোতামগুলি লুকান" - }, - "hideScrollForDetails": { - "message": "«বিশদ জন্য স্ক্রোলs» লুকান" - }, - "hideViewsCount": { - "message": "দর্শন গণনা লুকান" - }, - "history": { - "message": "ইতিহাস" - }, - "home": { - "message": "প্রধান" - }, - "hover": { - "message": "ঘোরা" - }, - "hoverOnVideoPage": { - "message": "ভিডিও পৃষ্ঠায় ঘোরা" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "ভিডিওটি কত আগে আপলোড হয়েছিল" - }, - "icons": { - "message": "আইকন" - }, - "iconsOnly": { - "message": "আইকন" - }, - "importSettings": { - "message": "সেটিংস আমদানি করুন" - }, - "improvedtubeIconInBrowser": { - "message": "ব্রাউজারে উন্নত YouTube আইকন" - }, - "improvedtubeIconOnYoutube": { - "message": "ইউটিউবে উন্নত আইকন" - }, - "improvedtubeLanguage": { - "message": "উন্নত ইউটিউব ভাষা" - }, - "improvedtubeVersion": { - "message": "উন্নত YouTube সংস্করণ" - }, - "improveLogo": { - "message": "লোগো উন্নত করুন" - }, - "increasePlaybackSpeed": { - "message": "প্লেব্যাকের গতি বাড়ান" - }, - "increaseVolume": { - "message": "শব্দ বৃদ্ধি" - }, - "indigo": { - "message": "নীল" - }, - "items": { - "message": "আইটেম" - }, - "languages": { - "message": "Languages" - }, - "legacyYoutube": { - "message": "উত্তরাধিকার ইউটিউব" - }, - "light": { - "message": "হালকাো" - }, - "lightBlue": { - "message": "হালকা নীল" - }, - "lightGreen": { - "message": "হালকা সবুজ" - }, - "like": { - "message": "লাইক" - }, - "likes": { - "message": "লাইক গুলি" - }, - "lime": { - "message": "চুন" - }, - "list": { - "message": "তালিকা" - }, - "liveChat": { - "message": "সরাসরি কথোপকথন" - }, - "liveChatType": { - "message": "লাইভ চ্যাট টাইপ" - }, - "loudnessNormalization": { - "message": "আওয়াজের স্বাভাবিককরণ" - }, - "markWatchedVideos": { - "message": "দেখা ভিডিওগুলি চিহ্নিত করুন" - }, - "customMiniPlayer": { - "message": "কাস্টম মিনি প্লেয়ার" - }, - "mixer": { - "message": "মিক্সার" - }, - "myColors": { - "message": "আমার রং" - }, - "name": { - "message": "নাম" - }, - "nativeMiniPlayer": { - "message": "নেটিভ মিনি প্লেয়ার" - }, - "new": { - "message": "নতুন" - }, - "nextVideo": { - "message": "পরবর্তী ভিডিও" - }, - "night": { - "message": "রাত" - }, - "noActiveFeatures": { - "message": "কোনও সক্রিয় বৈশিষ্ট্য নেই" - }, - "none": { - "message": "কিছুই না" - }, - "noOpenVideoTabs": { - "message": "কোনও খোলা ভিডিও ট্যাব নেই" - }, - "normal": { - "message": "সাধারণ" - }, - "old": { - "message": "পুরাতন" - }, - "onAllVideos": { - "message": "সমস্ত ভিডিওতে" - }, - "onlyActiveOnYoutube": { - "message": "শুধুমাত্র ইউটিউবে সক্রিয়" - }, - "onlyOnePlayerInstancePlaying": { - "message": "কেবলমাত্র একজন খেলোয়াড় খেলছে" - }, - "onSubscribedChannels": { - "message": "সাবস্ক্রাইব করা চ্যানেলগুলিতে" - }, - "orange": { - "message": "কমলা" - }, - "os": { - "message": "ওএস" - }, - "other": { - "message": "অন্যান্য" - }, - "permissions": { - "message": "অনুমতি" - }, - "pictureInPicture": { - "message": "পিকচার ইন পিকচার" - }, - "pink": { - "message": "গোলাপী" - }, - "plain": { - "message": "সরল" - }, - "platform": { - "message": "প্ল্যাটফর্ম" - }, - "playbackSpeed": { - "message": "প্লেব্যাক গতি" - }, - "player": { - "message": "প্লেয়ার" - }, - "playerColor": { - "message": "প্লেয়ারের রঙ" - }, - "playerSize": { - "message": "খেলোয়াড়ের আকার" - }, - "playlist": { - "message": "প্লেলিস্ট" - }, - "playlists": { - "message": "প্লেলিস্ট" - }, - "playPause": { - "message": "খেলার / বিরতি" - }, - "popupPlayer": { - "message": "পপআপ প্লেয়ার" - }, - "position": { - "message": "অবস্থান" - }, - "pressAnyKeyOrScroll": { - "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" - }, - "previousVideo": { - "message": "পূর্ববর্তী ভিডিও" - }, - "primaryColor": { - "message": "মৌলিক রঙ" - }, - "purple": { - "message": "বেগুনি" - }, - "quality": { - "message": "গুণ" - }, - "ram": { - "message": "র্যাম" - }, - "rateUs": { - "message": "মতামত দিন" - }, - "red": { - "message": "লাল" - }, - "relatedVideos": { - "message": "সংশ্লিষ্ট ভিডিও" - }, - "removeRelatedSearchResults": { - "message": "সম্পর্কিত অনুসন্ধান ফলাফল সরান" - }, - "repeat": { - "message": "পুনরাবৃত্তি" - }, - "reset": { - "message": "রিসেট" - }, - "resetAllSettings": { - "message": "সমস্ত সেটিংস পুনরায় সেট করুন" - }, - "resetAllShortcuts": { - "message": "সমস্ত শর্টকাট পুনরায় সেট করুন" - }, - "reverse": { - "message": "বিপরীত" - }, - "rotate": { - "message": "ঘুরান" - }, - "save": { - "message": "সংরক্ষণ" - }, - "saveAs": { - "message": "সংরক্ষণ করুন" - }, - "schedule": { - "message": "সময়সূচী" - }, - "screen": { - "message": "পর্দা" - }, - "screenshot": { - "message": "স্ক্রিনশট" - }, - "search": { - "message": "অনুসন্ধান করুন" - }, - "searchBarOnly": { - "message": "অনুসন্ধান বার কেবল" - }, - "seekBackward10Seconds": { - "message": "পিছনে 10 সেকেন্ড সন্ধান করুন" - }, - "seekForward10Seconds": { - "message": "10 সেকেন্ড এগিয়ে যান" - }, - "settings": { - "message": "সেটিংস" - }, - "settingsSuccessfullyImported": { - "message": "সেটিংস সফলভাবে আমদানি করা হয়েছে" - }, - "shortcuts": { - "message": "শর্টকাটস" - }, - "showCardsOnMouseHover": { - "message": "মাউস হোভারে কার্ডগুলি দেখান" - }, - "showChannelVideosCount": { - "message": "চ্যানেল ভিডিও গণনা দেখান" - }, - "shuffle": { - "message": "অদলবদল" - }, - "sidebar": { - "message": "সাইডবার" - }, - "spacebar": { - "message": "স্পেসবার" - }, - "squaredUserImages": { - "message": "স্কোয়ার ব্যবহারকারীর চিত্রসমূহ" - }, - "static": { - "message": "স্থির" - }, - "step": { - "message": "পদক্ষেপ" - }, - "stop": { - "message": "থামো" - }, - "style": { - "message": "স্টাইল" - }, - "styles": { - "message": "শৈলী" - }, - "subscriptions": { - "message": "সাবস্ক্রিপশন" - }, - "subtitles": { - "message": "সাবটাইটেল" - }, - "sunset": { - "message": "সূর্যাস্ত" - }, - "sunsetToSunrise": { - "message": "সূর্যোদয় সূর্যোদয়" - }, - "systemPeferenceDark": { - "message": "সিস্টেমের পছন্দসমূহ : dark" - }, - "systemPeferenceLight": { - "message": "সিস্টেমের পছন্দসমূহ : light" - }, - "teal": { - "message": "টিল" - }, - "textColor": { - "message": "লেখার রঙ" - }, - "themes": { - "message": "থিমস" - }, - "thisWillRemoveAllCookies": { - "message": "এটি সমস্ত কুকি মুছে ফেলবে।" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "এটি সমস্ত ইউটিউব কুকিজ অপসারণ করবে" - }, - "thisWillResetAllSettings": { - "message": "এটি সমস্ত সেটিংস পুনরায় সেট করবে।" - }, - "thisWillResetAllShortcuts": { - "message": "এটি সমস্ত শর্টকাট পুনরায় সেট করবে" - }, - "thumbnails": { - "message": "থাম্বনেইলস" - }, - "timeFrom": { - "message": "সময় থেকে" - }, - "timeTo": { - "message": "সময়" - }, - "todayAt": { - "message": "আজ এ" - }, - "topChat": { - "message": "শীর্ষ চ্যাট" - }, - "trailerAutoplay": { - "message": "ট্রেলার অটোপ্লে" - }, - "translations": { - "message": "অনুবাদ" - }, - "transparentBackground": { - "message": "স্বচ্ছ পটভূমি" - }, - "trending": { - "message": "চলমান" - }, - "tryToReloadThePage": { - "message": "পৃষ্ঠাটি পুনরায় লোড করার চেষ্টা করুন" - }, - "type": { - "message": "প্রকার" - }, - "upNextAutoplay": { - "message": "পরবর্তী অটোপ্লে" - }, - "use24HourFormat": { - "message": "24 ঘন্টা বিন্যাস ব্যবহার করুন" - }, - "version": { - "message": "সংস্করণ" - }, - "video": { - "message": "ভিডিও" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "বিভাগটির নাম পেতে ভিডিওর বর্ণনাটি প্রসারিত হবে" - }, - "videoFormats": { - "message": "ভিডিও ফর্ম্যাট" - }, - "videos": { - "message": "ভিডিও" - }, - "volume": { - "message": "শব্দ" - }, - "watchLater": { - "message": "পরে দেখুন" - }, - "watchTime": { - "message": "দেখার সময়" - }, - "whenTabIsChanged": { - "message": "ট্যাব পরিবর্তন করা হয়" - }, - "white": { - "message": "সাদা" - }, - "yellow": { - "message": "হলুদ" - }, - "youtubeHeaderLeft": { - "message": "YouTube শিরোনাম (বাম)" - }, - "youtubeHeaderRight": { - "message": "YouTube শিরোনাম (ডানদিকে)" - }, - "youtubeHomePage": { - "message": "ইউটিউব হোম পৃষ্ঠা" - }, - "youtubeLanguage": { - "message": "ইউটিউব ভাষা" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "ইউটিউব h.264 কোডেকের জন্য ভিডিও গুণমানকে 1080p এর মধ্যে সীমাবদ্ধ করে" - }, - "redDislikeButton": { - "message": "অপছন্দ বাটন লাল রঙ দেখান" - }, - "hideGradientBottom": { - "message": "গ্রেডিয়েন্ট নীচে লুকান" - }, - "statsForNerds": { - "message": "ডেভলপারের জন্য পরিসংখ্যান দেখান" - }, - "toggleCards": { - "message": "Toggle cards" - } -} diff --git a/unstable/_locales/de/messages.json b/unstable/_locales/de/messages.json deleted file mode 100644 index ab89f880b..000000000 --- a/unstable/_locales/de/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "cropChapterTitles": { - "message": "Kapitel abschneiden" - }, - "about": { - "message": "Info" - }, - "accept": { - "message": "Akzeptieren" - }, - "activate": { - "message": "Aktivieren" - }, - "activateCaptions": { - "message": "Untertitel aktivieren" - }, - "activated": { - "message": "Aktiviert" - }, - "activatedFeatures": { - "message": "Aktivierte Features" - }, - "activateFullscreen": { - "message": "Vollbild aktivieren" - }, - "activeFeatures": { - "message": "Aktive Funktionen" - }, - "addScrollToTop": { - "message": "«Nach Oben»-Button" - }, - "ads": { - "message": "Werbung" - }, - "all": { - "message": "Alles" - }, - "allow": { - "message": "zulassen" - }, - "allow60fps": { - "message": "60fps zulassen" - }, - "alwaysActive": { - "message": "Immer aktiv" - }, - "alwaysShowProgressBar": { - "message": "Zeitleiste immer anzeigen" - }, - "amber": { - "message": "Bernstein" - }, - "analyzer": { - "message": "Analyse" - }, - "appearance": { - "message": "Aussehen" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio-Formate" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-Vollbild" - }, - "autopauseWhenSwitchingTabs": { - "message": "Video pausieren beim Tab-Wechsel" - }, - "autoplay": { - "message": "Autoplay" - }, - "backupAndReset": { - "message": "Sichern oder zurücksetzen" - }, - "baseOnSystemColorScheme": { - "message": "Basierend von Systemfarben" - }, - "belowPlayer": { - "message": "Unter dem Player" - }, - "black": { - "message": "Schwarz" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "immer blockieren" - }, - "blue": { - "message": "Blau" - }, - "blueGray": { - "message": "Blau grau" - }, - "bluelight": { - "message": "Blaues Licht" - }, - "brown": { - "message": "Braun" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser Version" - }, - "bubbles": { - "message": "Blasen" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Buttons" - }, - "cancel": { - "message": "Abbrechen" - }, - "categories": { - "message": "Kategorien" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanäle" - }, - "clipboard": { - "message": "Zwischenablage" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Eingeklappt" - }, - "collapseOfSubscriptionSections": { - "message": "Abos einklappen" - }, - "comments": { - "message": "Kommentare" - }, - "confirmationBeforeClosing": { - "message": "Bestätigung beim Schließen" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Kerne" - }, - "customCss": { - "message": "CSS hinzufügen" - }, - "customJs": { - "message": "JS hinzufügen" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Dunkel" - }, - "darkTheme": { - "message": "Dark-Theme" - }, - "dateAndTime": { - "message": "Datum & Uhrzeit" - }, - "dawn": { - "message": "Morgendämmerung" - }, - "decreasePlaybackSpeed": { - "message": "Abspielgeschwindigkeit verringern" - }, - "decreaseVolume": { - "message": "Lautstärke reduzieren" - }, - "deepOrange": { - "message": "Dunkel-Orange" - }, - "deepPurple": { - "message": "Dunkel-Lila" - }, - "defaultChannelTab": { - "message": "Standard-Kanal Tab" - }, - "deleteYoutubeCookies": { - "message": "YouTube-Cookies löschen" - }, - "description": { - "message": "Beschreibung" - }, - "desert": { - "message": "Wüste" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Entwickleroptionen" - }, - "device": { - "message": "Gerät" - }, - "dim": { - "message": "dimmen" - }, - "disabled": { - "message": "ausgeschaltet" - }, - "dislike": { - "message": "'Mag ich nicht'" - }, - "donate": { - "message": "Spenden" - }, - "doNotChange": { - "message": "Nicht ändern" - }, - "draggable": { - "message": "Verschiebbar" - }, - "email": { - "message": "E-Mail" - }, - "empty": { - "message": "leer" - }, - "enabled": { - "message": "aktiviert" - }, - "enabledForced": { - "message": "aktiviert (erzwungen)" - }, - "expanded": { - "message": "ausgeklappt" - }, - "exportSettings": { - "message": "Einstellungen als Datei exportieren" - }, - "extension": { - "message": "Erweiterung" - }, - "file": { - "message": "Datei" - }, - "filters": { - "message": "Filter" - }, - "fitToWindow": { - "message": "Ans Fenster anpassen" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Schriftart" - }, - "footer": { - "message": "Fußzeile" - }, - "forcedPlaybackSpeed": { - "message": "erzwungene Abspielgeschwindigkeit" - }, - "forcedTheaterMode": { - "message": "Kinomodus erzwingen" - }, - "forcedVolume": { - "message": "Fixe Lautstärke" - }, - "foundABug": { - "message": "Fehler gefunden?" - }, - "fullWindow": { - "message": "Ganzes Fenster" - }, - "general": { - "message": "Allgemein" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "YouTube Suche" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Grün" - }, - "hdThumbnail": { - "message": "HD-Vorschaubild" - }, - "hdThumbnails": { - "message": "HD-Vorschaubilder" - }, - "header": { - "message": "Header / 'Kopfzeile'" - }, - "hidden": { - "message": "Ausblenden" - }, - "hiddenOnVideoPage": { - "message": "Auf Videoseiten ausblenden" - }, - "hideAnimatedThumbnails": { - "message": "Keine animierten Vorschaubilder" - }, - "hideAnnotations": { - "message": "Anmerkungen ausblenden" - }, - "hideCards": { - "message": "Karten ausblenden" - }, - "hideDetails": { - "message": "Details ausblenden" - }, - "hideEndscreen": { - "message": "Endkarten ausblenden (Schlussbildschirme)" - }, - "hideFeaturedContent": { - "message": "'Empfohlene Inhalte' ausblenden" - }, - "hideFooter": { - "message": "Fußzeile ausblenden" - }, - "hidePlaylist": { - "message": "Playlists ausblenden" - }, - "hideRightButtons": { - "message": "Rechte Buttons ausblenden" - }, - "hideScrollForDetails": { - "message": "«Für Details scrollen» ausblenden" - }, - "hideViewsCount": { - "message": "Videoaufrufe ausblenden" - }, - "history": { - "message": "Verlauf" - }, - "home": { - "message": "Standard" - }, - "hover": { - "message": "Nur anzeigen wenn die Maus darauf zeigt" - }, - "hoverOnVideoPage": { - "message": "auf Video-Seiten nur wenn die Maus..." - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Alter des Videos (seit Hochlade-Datum)" - }, - "icons": { - "message": "Icons" - }, - "iconsOnly": { - "message": "nur Icons" - }, - "importSettings": { - "message": "Einstellungen importieren" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube Icon im Browser" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube Icon auf YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube Sprache" - }, - "improvedtubeVersion": { - "message": "ImprovedTube Version" - }, - "improveLogo": { - "message": "Logo verbessern" - }, - "increasePlaybackSpeed": { - "message": "Abspiel Geschwingkeit erhöhen" - }, - "increaseVolume": { - "message": "Lautstärke erhöhen" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Sprachen" - }, - "legacyYoutube": { - "message": "Klassiches YouTube" - }, - "light": { - "message": "Hell" - }, - "lightBlue": { - "message": "Hellblau" - }, - "lightGreen": { - "message": "Hellgrün" - }, - "like": { - "message": "Like" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Limette" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Live-Chat" - }, - "liveChatType": { - "message": "Live-Chat Typ" - }, - "loudnessNormalization": { - "message": "Lautstärke normalisieren" - }, - "markWatchedVideos": { - "message": "gesehene Videos markieren" - }, - "customMiniPlayer": { - "message": "Benutzerdefinierter Mini-Player" - }, - "mixer": { - "message": "Mischpult" - }, - "myColors": { - "message": "Meine Farben" - }, - "name": { - "message": "Name" - }, - "nativeMiniPlayer": { - "message": "Standard Mini-Player" - }, - "new": { - "message": "Neu" - }, - "nextVideo": { - "message": "Nächstes Video" - }, - "night": { - "message": "Nacht" - }, - "noActiveFeatures": { - "message": "Keine aktiven Features" - }, - "none": { - "message": "Keine" - }, - "noOpenVideoTabs": { - "message": "Keine YouTube Videos geöffnet" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Alt" - }, - "onAllVideos": { - "message": "in allen Videos" - }, - "onlyActiveOnYoutube": { - "message": "nur auf YouTube rot färben" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Nur ein Video gleichzeitig" - }, - "onSubscribedChannels": { - "message": "nur in abonnierten Kanälen" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "Betriebsystem" - }, - "other": { - "message": "Andere" - }, - "permissions": { - "message": "Berechtigungen" - }, - "pictureInPicture": { - "message": "Bild-in-Bild" - }, - "pink": { - "message": "Pink" - }, - "plain": { - "message": "Schlicht" - }, - "platform": { - "message": "Plattform" - }, - "playbackSpeed": { - "message": "Abspiel-Geschwindigkeit" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Playerfarbe" - }, - "playerSize": { - "message": "Playergröße" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "playPause": { - "message": "Play / Pause" - }, - "popupPlayer": { - "message": "Player in eigenem Fenster" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Eine Taste drücken oder scrollen!" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Eine Taste drücken oder scrollen!" - }, - "previousVideo": { - "message": "Letztes Video" - }, - "primaryColor": { - "message": "Primäre Farbe" - }, - "purple": { - "message": "Lila" - }, - "quality": { - "message": "Qualität" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Bewerte mich!" - }, - "red": { - "message": "Rot" - }, - "relatedVideos": { - "message": "Verwandte Videos" - }, - "removeRelatedSearchResults": { - "message": "Verwandte Suchergebnisse entfernen" - }, - "repeat": { - "message": "Repeat(Wiederholen)" - }, - "reset": { - "message": "Zurücksetzen" - }, - "resetAllSettings": { - "message": "Alle Einstellungen zurücksetzen" - }, - "resetAllShortcuts": { - "message": "Alle Shortcuts zurücksetzen" - }, - "reverse": { - "message": "Rückwärts" - }, - "rotate": { - "message": "Drehen" - }, - "save": { - "message": "Speichern" - }, - "saveAs": { - "message": "Speichern als" - }, - "schedule": { - "message": "Nachtschaltung planen" - }, - "screen": { - "message": "Bildschirm" - }, - "screenshot": { - "message": "Screenshot" - }, - "search": { - "message": "Suche" - }, - "searchBarOnly": { - "message": "Nur die Suchleiste" - }, - "seekBackward10Seconds": { - "message": "10 Sekunden zurück" - }, - "seekForward10Seconds": { - "message": "10 Sekunden überspringen" - }, - "settings": { - "message": "Einstellungen" - }, - "settingsSuccessfullyImported": { - "message": "Einstellungen erfolgreich importiert!" - }, - "shortcuts": { - "message": "Hotkeys" - }, - "showCardsOnMouseHover": { - "message": "Infokarten bei Mausover anzeigen" - }, - "showChannelVideosCount": { - "message": "Anzahl Videos je Channel anzeigen" - }, - "shuffle": { - "message": "Zufallswiedergabe" - }, - "sidebar": { - "message": "Seitenleiste" - }, - "spacebar": { - "message": "Leertaste" - }, - "squaredUserImages": { - "message": "Quadratische Profilbilder" - }, - "static": { - "message": "Statisch" - }, - "step": { - "message": "Schritt" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscriptions": { - "message": "Abonnements" - }, - "subtitles": { - "message": "Untertitel" - }, - "sunset": { - "message": "Sonnenuntergang" - }, - "sunsetToSunrise": { - "message": "Abends bis Morgens" - }, - "systemPeferenceDark": { - "message": "System Einstellungen: dunkel" - }, - "systemPeferenceLight": { - "message": "System Einstellungen: hell" - }, - "teal": { - "message": "Blaugrün" - }, - "textColor": { - "message": "Textfarbe" - }, - "themes": { - "message": "Farbschemen" - }, - "thisWillRemoveAllCookies": { - "message": "Alle Cookies werden gelöscht" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Alle YouTube Cookies werden gelöscht" - }, - "thisWillResetAllSettings": { - "message": "Alle Einstellungen werden entfernt" - }, - "thisWillResetAllShortcuts": { - "message": "Alle Shortcuts werden entfernt" - }, - "thumbnails": { - "message": "Vorschaubilder" - }, - "timeFrom": { - "message": "Start" - }, - "timeTo": { - "message": "Stop" - }, - "todayAt": { - "message": "Heute um" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Trailer autoplay (Kanal-Intro automatisch losspielen)" - }, - "translations": { - "message": "Übersetzungen" - }, - "transparentBackground": { - "message": "Transparenter Hintergrund" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Versuche die Seite neu zu laden" - }, - "type": { - "message": "Typ" - }, - "upNextAutoplay": { - "message": "Nächstes Video automatisch abspielen" - }, - "use24HourFormat": { - "message": "24-Stunden Format" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Die Video-Beschreibung wird um den Kategorienamen erweitert" - }, - "videoFormats": { - "message": "Video Formate" - }, - "videos": { - "message": "Videos" - }, - "volume": { - "message": "Lautstärke" - }, - "watchLater": { - "message": "Später ansehen" - }, - "watchTime": { - "message": "Verbrauchte Zeit" - }, - "whenTabIsChanged": { - "message": "Beim Tab-Wechsel" - }, - "white": { - "message": "Weiß" - }, - "yellow": { - "message": "Gelb" - }, - "youtubeHeaderLeft": { - "message": "YouTube Kopfzeile (Links)" - }, - "youtubeHeaderRight": { - "message": "YouTube Kopfzeile (Rechts)" - }, - "youtubeHomePage": { - "message": "YouTube Startseite" - }, - "youtubeLanguage": { - "message": "YouTube Sprache" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube begrenzt die Qualität auf 1080p für den h.264 Codec" - }, - "redDislikeButton": { - "message": "Zeige 'Mag ich nicht' Button rot" - }, - "hideGradientBottom": { - "message": "Farbverlauf ausblenden" - }, - "statsForNerds": { - "message": "Statistiken für Nerds" - }, - "toggleCards": { - "message": "Karten ausblenden" - } -} diff --git a/unstable/_locales/el/messages.json b/unstable/_locales/el/messages.json deleted file mode 100644 index dc9d26bc9..000000000 --- a/unstable/_locales/el/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "cropChapterTitles": { - "message": "Περίκοψε τους τίτλους των κεφαλαίων" - }, - "about": { - "message": "Σχετικά" - }, - "accept": { - "message": "Αποδοχή" - }, - "activate": { - "message": "Ενεργοποίηση" - }, - "activateCaptions": { - "message": "Ενεργοποίηση Υπότιτλων" - }, - "activated": { - "message": "Ενεργοποιήθηκε" - }, - "activatedFeatures": { - "message": "Ενεργοποιημένες Λειτουργίες" - }, - "activateFullscreen": { - "message": "Ενεργοποίηση Πλήρους Οθόνη" - }, - "activeFeatures": { - "message": "Ενεργές λειτουργίες" - }, - "addScrollToTop": { - "message": "Πρόσθεσε συντόμευση για την κορυφή της σελίδας" - }, - "ads": { - "message": "Διαφημίσεις" - }, - "all": { - "message": "Όλα" - }, - "allow": { - "message": "Αποδοχή" - }, - "allow60fps": { - "message": "Επίτρεψε 60fps" - }, - "alwaysActive": { - "message": "Πάντοτε ενεργό" - }, - "alwaysShowProgressBar": { - "message": "Πάντα ορατός ο ενδείκτης προόδου" - }, - "amber": { - "message": "Κεχρί" - }, - "analyzer": { - "message": "Αναλυτής" - }, - "appearance": { - "message": "Εμφάνιση" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Ήχος" - }, - "audioFormats": { - "message": "Μορφές ήχου" - }, - "auto": { - "message": "Αυτόματο" - }, - "autoFullscreen": { - "message": "Αυτόματη Πλήρης Οθόνη" - }, - "autopauseWhenSwitchingTabs": { - "message": "Αυτόματη παύση όταν αλλάζετε καρτέλα" - }, - "autoplay": { - "message": "Αυτόματη αναπαραγωγή" - }, - "backupAndReset": { - "message": "Αντίγραφα ασφαλείας & reset" - }, - "baseOnSystemColorScheme": { - "message": "Με βάση τις ρυθμίσεις χρώματος του συστήματος" - }, - "belowPlayer": { - "message": "Κάτω από το Player" - }, - "black": { - "message": "Μαύρο" - }, - "blacklist": { - "message": "Λίστα αποκλεισμού" - }, - "blockAll": { - "message": "Αποκλείστε όλα" - }, - "blue": { - "message": "Μπλε" - }, - "blueGray": { - "message": "Μπλε γκρίζο" - }, - "bluelight": { - "message": "Μπλε φως" - }, - "brown": { - "message": "Καφέ" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Έκδοση browser" - }, - "bubbles": { - "message": "Φούσκες" - }, - "bug": { - "message": "Σφάλμα κώδικα" - }, - "buttons": { - "message": "Κουμπιά" - }, - "cancel": { - "message": "Ακύρωση" - }, - "categories": { - "message": "Κατηγορίες" - }, - "channel": { - "message": "Κανάλι" - }, - "channels": { - "message": "Κανάλια" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Κλειστό" - }, - "collapseOfSubscriptionSections": { - "message": "Κλείσε το μενού συνδρομών" - }, - "comments": { - "message": "Σχόλιο" - }, - "confirmationBeforeClosing": { - "message": "Επιβεβαίωση πρωτού κλείσεις" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Πυρήνες" - }, - "customCss": { - "message": "Εξατομίκευση CSS" - }, - "customJs": { - "message": "Εξατομίκευση JS" - }, - "cyan": { - "message": "Κυανό" - }, - "dark": { - "message": "Σκούρο" - }, - "darkTheme": { - "message": "Σκούρο θέμα" - }, - "dateAndTime": { - "message": "Ημερομηνία & ώρα" - }, - "dawn": { - "message": "Αυγή" - }, - "decreasePlaybackSpeed": { - "message": "Μείωσε ταχύτητα αναπαραγωγής" - }, - "decreaseVolume": { - "message": "Μειώστε ένταση" - }, - "deepOrange": { - "message": "Βαθύ πορτοκαλί" - }, - "deepPurple": { - "message": "Βαθύ μοβ" - }, - "defaultChannelTab": { - "message": "Προεπιλεγμένη καρτέλα καναλιού" - }, - "deleteYoutubeCookies": { - "message": "Κατάργησε τα cookies του YouTube" - }, - "description": { - "message": "Περιγραφή" - }, - "desert": { - "message": "Έρημος" - }, - "details": { - "message": "Λεπτομέρειες" - }, - "developerOptions": { - "message": "Επιλογές για προγραμματιστές" - }, - "device": { - "message": "Συσκευή" - }, - "dim": { - "message": "Σκοτεινό" - }, - "disabled": { - "message": "Απενεργοποιημένο" - }, - "dislike": { - "message": "Δε μου αρέσει" - }, - "donate": { - "message": "Συνεισφέρετε οικονομικά" - }, - "doNotChange": { - "message": "Να μην αλλάξει" - }, - "draggable": { - "message": "Μετακινήσιμο με σύρση" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Κενό" - }, - "enabled": { - "message": "Ενεργοποιημένο" - }, - "enabledForced": { - "message": "Ενεργοποιημένο (Υποχρεωτικά)" - }, - "expanded": { - "message": "Ανοικτό" - }, - "exportSettings": { - "message": "Εξαγωγή ρυθμίσεων" - }, - "extension": { - "message": "Επέκταση" - }, - "file": { - "message": "Αρχείο" - }, - "filters": { - "message": "Φίλτρα" - }, - "fitToWindow": { - "message": "Να χωράει στο παράθυρο" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Γραμματοσειρά" - }, - "footer": { - "message": "Υποσέλιδο" - }, - "forcedPlaybackSpeed": { - "message": "Υποχρεωτική ταχύτητα αναπαραγωγής" - }, - "forcedTheaterMode": { - "message": "Υποχρεωτική λειτουργία κινηματογράφου" - }, - "forcedVolume": { - "message": "Υποχρεωτική ένταση" - }, - "foundABug": { - "message": "Εντοπίσατε κάποιο σφάλμα;" - }, - "fullWindow": { - "message": "Πλήρες παράθυρο" - }, - "general": { - "message": "Γενικά" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Πήγαινε στο πεδίο αναζήτησης" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Πράσινο" - }, - "hdThumbnail": { - "message": "HD Εικονίδιο βίντεο" - }, - "hdThumbnails": { - "message": "HD Εικονίδια βίντεο" - }, - "header": { - "message": "Κεφαλίδα" - }, - "hidden": { - "message": "Κρυμμένο" - }, - "hiddenOnVideoPage": { - "message": "Κρυμμένο στη σελίδα βίντεο" - }, - "hideAnimatedThumbnails": { - "message": "Απόκρυψε τα κινούμενα εικονίδια βίντεο" - }, - "hideAnnotations": { - "message": "Απόκρυψε τα annotations" - }, - "hideCards": { - "message": "Απόκρυψε τις κάρτες" - }, - "hideDetails": { - "message": "Απόκρυψε τις λεπτομέρειες" - }, - "hideEndscreen": { - "message": "Απόκρυψε την κάρτα τέλους" - }, - "hideFeaturedContent": { - "message": "Απόκρυψε το προτεινόμενο περιεχόμενο" - }, - "hideFooter": { - "message": "Απόκρυψε το υποσέλιδο" - }, - "hidePlaylist": { - "message": "Απόκρυψε τα playlists" - }, - "hideRightButtons": { - "message": "Απόκρυψε τα κουμπιά στα δεξιά" - }, - "hideScrollForDetails": { - "message": "Απόκρυψε το «Scroll for details»" - }, - "hideViewsCount": { - "message": "Απόκρυψε τον αριθμό προβολών" - }, - "history": { - "message": "Ιστορικό" - }, - "home": { - "message": "Αρχική σελίδα" - }, - "hover": { - "message": "Κέρσορας από πάνω" - }, - "hoverOnVideoPage": { - "message": "Κέρσορας πάνω στη σελίδα βίντεο" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Πριν από πόσο ανέβηκε το βίντεο" - }, - "icons": { - "message": "Εικονίδια" - }, - "iconsOnly": { - "message": "Εικονίδια μόνο" - }, - "importSettings": { - "message": "Εισαγωγή ρυθμίσεων" - }, - "improvedtubeIconInBrowser": { - "message": "Εικονίδιο ImprovedTube στο Browser" - }, - "improvedtubeIconOnYoutube": { - "message": "Εικονίδιο ImprovedTube στο YouTube" - }, - "improvedtubeLanguage": { - "message": "Γλώσσα ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Έκδοση ImprovedTube" - }, - "improveLogo": { - "message": "Λογότυπο Improve" - }, - "increasePlaybackSpeed": { - "message": "Αύξησε την ταχύτητα αναπαραγωγής" - }, - "increaseVolume": { - "message": "Αύξησε την ένταση" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Αντικείμενα" - }, - "languages": { - "message": "Γλώσσες" - }, - "legacyYoutube": { - "message": "Παλιά έκδοση YouTube" - }, - "light": { - "message": "Ανοιχτόχρωμο" - }, - "lightBlue": { - "message": "Ανοικτό μπλε" - }, - "lightGreen": { - "message": "Ανοικτό πράσινο" - }, - "like": { - "message": "Μου αρέσει" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Μοσχολέμονο" - }, - "list": { - "message": "Λίστα" - }, - "liveChat": { - "message": "Live chat" - }, - "liveChatType": { - "message": "Τύπος live chat" - }, - "loudnessNormalization": { - "message": "Κανονικοποίηση έντασης" - }, - "markWatchedVideos": { - "message": "Επισήμανση βίντεο που προβλήθηκαν" - }, - "customMiniPlayer": { - "message": "Εξατομικευμένο Mini-Player" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "Τα χρώματά μου" - }, - "name": { - "message": "Όνομα" - }, - "nativeMiniPlayer": { - "message": "Mini player συστήματος" - }, - "new": { - "message": "Νέο" - }, - "nextVideo": { - "message": "Επόμενο βίντεο" - }, - "night": { - "message": "Νύχτα" - }, - "noActiveFeatures": { - "message": "Καμία λειτουργία ενεργή" - }, - "none": { - "message": "Κανένα" - }, - "noOpenVideoTabs": { - "message": "Καμία καρτέλα βίντεο ανοικτή" - }, - "normal": { - "message": "Κανονικό" - }, - "old": { - "message": "Παλιό" - }, - "onAllVideos": { - "message": "Σε όλα τα βίντεο" - }, - "onlyActiveOnYoutube": { - "message": "Μόνο ενεργό στο YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Μόνο ένα player λειτουργεί" - }, - "onSubscribedChannels": { - "message": "Σε κανάλια που έχει γίνει συνδρομή" - }, - "orange": { - "message": "Πορτοκαλί" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Άλλο" - }, - "permissions": { - "message": "Άδεια" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Ροζ" - }, - "plain": { - "message": "Σκέτο" - }, - "platform": { - "message": "Πλατφόρμα" - }, - "playbackSpeed": { - "message": "Ταχύτητα αναπαραγωγής" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Χρώμσ player" - }, - "playerSize": { - "message": "Μέγεθος player" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "playPause": { - "message": "Play / Pause" - }, - "popupPlayer": { - "message": "Popup player" - }, - "position": { - "message": "Θέση" - }, - "pressAnyKeyOrScroll": { - "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." - }, - "previousVideo": { - "message": "Προηγούμενο βίντεο" - }, - "primaryColor": { - "message": "Πρωτεύον χρώμα" - }, - "purple": { - "message": "Μοβ" - }, - "quality": { - "message": "Ποιότητα" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Αξιολόγησέ μας" - }, - "red": { - "message": "Κόκκινο" - }, - "relatedVideos": { - "message": "Σχετικά videos" - }, - "removeRelatedSearchResults": { - "message": "Αφαίρεσε σχετικά αποτελέσματα αναζήτησης" - }, - "repeat": { - "message": "Επανάληψη" - }, - "reset": { - "message": "Επαναφορά" - }, - "resetAllSettings": { - "message": "Επαναφορά όλων των ρυθμίσεων" - }, - "resetAllShortcuts": { - "message": "Επαναφορά όλων των συντομεύσεων" - }, - "reverse": { - "message": "Ανάποδα" - }, - "rotate": { - "message": "Περιστροφή" - }, - "save": { - "message": "Αποθήκευση" - }, - "saveAs": { - "message": "Αποθήκευση ως" - }, - "schedule": { - "message": "Πρόγραμμα" - }, - "screen": { - "message": "Οθόνη" - }, - "screenshot": { - "message": "Στιγμιότυπο" - }, - "search": { - "message": "Αναζήτηση" - }, - "searchBarOnly": { - "message": "Πεδίο αναζήτησης μόνο" - }, - "seekBackward10Seconds": { - "message": "Πίσω 10 δευτερόλεπτα" - }, - "seekForward10Seconds": { - "message": "Μπροστά 10 δευτερόλεπτα" - }, - "settings": { - "message": "Ρυθμίσεις" - }, - "settingsSuccessfullyImported": { - "message": "Επιτυχής εισαγωγή ρυθμίσεων" - }, - "shortcuts": { - "message": "Συντομεύσεις" - }, - "showCardsOnMouseHover": { - "message": "Δείξε τις κάρτες όταν ο κέρσορας είναι από πάνω" - }, - "showChannelVideosCount": { - "message": "Δείξε τις συνολικές προβολές του καναλιού" - }, - "shuffle": { - "message": "Τυχαία αναπαραγωγή" - }, - "sidebar": { - "message": "Sidebar" - }, - "spacebar": { - "message": "Spacebar" - }, - "squaredUserImages": { - "message": "Τετράγωνες εικόνες χρήστη" - }, - "static": { - "message": "Στατικό" - }, - "step": { - "message": "Βήμα" - }, - "stop": { - "message": "Στοπ" - }, - "style": { - "message": "Στυλ" - }, - "styles": { - "message": "Στυλ" - }, - "subscriptions": { - "message": "Συνδρομές" - }, - "subtitles": { - "message": "Υπότιτλοι" - }, - "sunset": { - "message": "Ηλιοβασίλεμα" - }, - "sunsetToSunrise": { - "message": "Από δύση έως ανατολή" - }, - "systemPeferenceDark": { - "message": "Προτίμηση συστήματος: Σκούρο" - }, - "systemPeferenceLight": { - "message": "Προτίμηση συστήματος: Ανοικτόχρωμο" - }, - "teal": { - "message": "Γαλαζιοπράσινο" - }, - "textColor": { - "message": "Χρώμα κειμένου" - }, - "themes": { - "message": "Θέματα" - }, - "thisWillRemoveAllCookies": { - "message": "Αυτό αφαιρεί όλα τα cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Αυτό αφαιρεί όλα τα cookies του YouTube." - }, - "thisWillResetAllSettings": { - "message": "Αυτό επαναφέρει όλες τις ρυθμίσεις." - }, - "thisWillResetAllShortcuts": { - "message": "Αυτό επαναφέρει όλες τις συντομεύσεις." - }, - "thumbnails": { - "message": "Εικονίδια" - }, - "timeFrom": { - "message": "Χρόνος από" - }, - "timeTo": { - "message": "Χρόνος έως" - }, - "todayAt": { - "message": "Σήμερα στις" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Trailer autoplay" - }, - "translations": { - "message": "Μεταφράσεις" - }, - "transparentBackground": { - "message": "Διαφανές υπόβαθρο" - }, - "trending": { - "message": "Τάσεις" - }, - "tryToReloadThePage": { - "message": "Προσπάθησε να επαναφορτώσεις τη σελίδα" - }, - "type": { - "message": "Τύπος" - }, - "upNextAutoplay": { - "message": "Επόμενο στο autoplay" - }, - "use24HourFormat": { - "message": "Χρησιμοποίησε 24ωρη μορφή ώρας" - }, - "version": { - "message": "Έκδοση" - }, - "video": { - "message": "Βίντεο" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Η περιγραφή του βίντεο θα επεκταθεί ωστε να συμπεριληφθεί το όνομα της κατηγορίας." - }, - "videoFormats": { - "message": "Μορφές βίντεο" - }, - "videos": { - "message": "Βίντεο" - }, - "volume": { - "message": "Ένταση" - }, - "watchLater": { - "message": "Δες αργότερα" - }, - "watchTime": { - "message": "Χρόνος προβολής" - }, - "whenTabIsChanged": { - "message": "Όταν αλλάζεις καρτέλα" - }, - "white": { - "message": "Λευκό" - }, - "yellow": { - "message": "Κίτρινο" - }, - "youtubeHeaderLeft": { - "message": "Κεφαλίδα YouTube (αριστερά)" - }, - "youtubeHeaderRight": { - "message": "Κεφαλίδα YouTube (δεξιά)" - }, - "youtubeHomePage": { - "message": "Αρχική σελίδα YouTube" - }, - "youtubeLanguage": { - "message": "Γλώσσα YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "Το YouTube περιορίζει την ποιότητα σε 1080p για το h.264 codec" - }, - "redDislikeButton": { - "message": "Δείξτε το πλήκτρο «Δε μου αρέσει» σε κόκκινο" - }, - "hideGradientBottom": { - "message": "Απόκρυψε το κάτω μέρος της χρωματικής διαβάθμισης" - }, - "statsForNerds": { - "message": "Δείξε τα Στατιστικά για Σπασίκλες" - }, - "toggleCards": { - "message": "Toggle cards" - } -} diff --git a/unstable/_locales/en/messages.json b/unstable/_locales/en/messages.json deleted file mode 100644 index fef764abb..000000000 --- a/unstable/_locales/en/messages.json +++ /dev/null @@ -1,812 +0,0 @@ -{ - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "about": { - "message": "About" - }, - "accept": { - "message": "Accept" - }, - "activate": { - "message": "Activate" - }, - "activateCaptions": { - "message": "Activate captions" - }, - "activated": { - "message": "Activated" - }, - "activatedFeatures": { - "message": "Activated features" - }, - "activateFullscreen": { - "message": "Activate fullscreen" - }, - "activeFeatures": { - "message": "Active features" - }, - "addScrollToTop": { - "message": "Add «Scroll to top»" - }, - "ads": { - "message": "Ads" - }, - "all": { - "message": "All" - }, - "allow": { - "message": "Allow" - }, - "allow60fps": { - "message": "Allow 60fps" - }, - "alwaysActive": { - "message": "Always active" - }, - "alwaysShowProgressBar": { - "message": "Always show progress bar" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analyzer" - }, - "appearance": { - "message": "Appearance" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio formats" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-fullscreen" - }, - "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" - }, - "autoplay": { - "message": "Autoplay" - }, - "backupAndReset": { - "message": "Backup & reset" - }, - "baseOnSystemColorScheme": { - "message": "Base on system color scheme" - }, - "belowPlayer": { - "message": "Below player" - }, - "black": { - "message": "Black" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "Block all" - }, - "blue": { - "message": "Blue" - }, - "blueGray": { - "message": "Blue gray" - }, - "bluelight": { - "message": "Bluelight" - }, - "brown": { - "message": "Brown" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser version" - }, - "bubbles": { - "message": "Bubbles" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Buttons" - }, - "cancel": { - "message": "Cancel" - }, - "categories": { - "message": "Categories" - }, - "channel": { - "message": "Channel" - }, - "channels": { - "message": "Channels" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Collapsed" - }, - "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" - }, - "comments": { - "message": "Comments" - }, - "confirmationBeforeClosing": { - "message": "Confirmation before closing" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Custom JS" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Dark" - }, - "darkTheme": { - "message": "Dark theme" - }, - "dateAndTime": { - "message": "Date & time" - }, - "dawn": { - "message": "Dawn" - }, - "decreasePlaybackSpeed": { - "message": "Decrease playback speed" - }, - "decreaseVolume": { - "message": "Decrease volume" - }, - "deepOrange": { - "message": "Deep orange" - }, - "deepPurple": { - "message": "Deep purple" - }, - "defaultChannelTab": { - "message": "Default channel tab" - }, - "deleteYoutubeCookies": { - "message": "Delete YouTube cookies" - }, - "description": { - "message": "Description" - }, - "desert": { - "message": "Desert" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Developer options" - }, - "device": { - "message": "Device" - }, - "dim": { - "message": "Dim" - }, - "disabled": { - "message": "Disabled" - }, - "dislike": { - "message": "Dislike" - }, - "donate": { - "message": "Donate" - }, - "doNotChange": { - "message": "Don't change" - }, - "draggable": { - "message": "Draggable" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Empty" - }, - "enabled": { - "message": "Enabled" - }, - "enabledForced": { - "message": "Enabled (forced)" - }, - "expanded": { - "message": "Expanded" - }, - "exportSettings": { - "message": "Export settings" - }, - "extension": { - "message": "Extension" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filters" - }, - "fitToWindow": { - "message": "Fit to window" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Footer" - }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, - "forcedTheaterMode": { - "message": "Forced theater mode" - }, - "forcedVolume": { - "message": "Forced volume" - }, - "foundABug": { - "message": "Found a bug?" - }, - "fullWindow": { - "message": "Full window" - }, - "general": { - "message": "General" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Go to search box" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Green" - }, - "hdThumbnail": { - "message": "HD thumbnail" - }, - "hdThumbnails": { - "message": "HD thumbnails" - }, - "header": { - "message": "Header" - }, - "hidden": { - "message": "Hidden" - }, - "hiddenOnVideoPage": { - "message": "Hidden on video page" - }, - "hideAnimatedThumbnails": { - "message": "Hide animated thumbnails" - }, - "hideAnnotations": { - "message": "Hide annotations" - }, - "hideCards": { - "message": "Hide cards" - }, - "hideDetails": { - "message": "Hide details" - }, - "hideEndscreen": { - "message": "Hide endscreen" - }, - "hideFeaturedContent": { - "message": "Hide featured content" - }, - "hideFooter": { - "message": "Hide footer" - }, - "hidePlaylist": { - "message": "Hide playlist" - }, - "hideRightButtons": { - "message": "Hide right buttons" - }, - "hideScrollForDetails": { - "message": "Hide «Scroll for details»" - }, - "hideViewsCount": { - "message": "Hide views count" - }, - "history": { - "message": "History" - }, - "home": { - "message": "Home" - }, - "hover": { - "message": "Hover" - }, - "hoverOnVideoPage": { - "message": "Hover on video page" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" - }, - "icons": { - "message": "Icons" - }, - "iconsOnly": { - "message": "Icons only" - }, - "importSettings": { - "message": "Import settings" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube icon in Browser" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icon on YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube language" - }, - "improvedtubeVersion": { - "message": "ImprovedTube version" - }, - "improveLogo": { - "message": "Improve logo" - }, - "increasePlaybackSpeed": { - "message": "Increase playback speed" - }, - "increaseVolume": { - "message": "Increase volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Languages" - }, - "legacyYoutube": { - "message": "Legacy YouTube" - }, - "light": { - "message": "Light" - }, - "lightBlue": { - "message": "Light blue" - }, - "lightGreen": { - "message": "Light green" - }, - "like": { - "message": "Like" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Lime" - }, - "list": { - "message": "List" - }, - "liveChat": { - "message": "Live chat" - }, - "liveChatType": { - "message": "Live chat type" - }, - "loudnessNormalization": { - "message": "Loudness normalization" - }, - "markWatchedVideos": { - "message": "Mark watched videos" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "My colors" - }, - "name": { - "message": "Name" - }, - "nativeMiniPlayer": { - "message": "Native mini player" - }, - "new": { - "message": "New" - }, - "nextVideo": { - "message": "Next video" - }, - "night": { - "message": "Night" - }, - "noActiveFeatures": { - "message": "No active features" - }, - "none": { - "message": "None" - }, - "noOpenVideoTabs": { - "message": "No open video tabs" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Old" - }, - "onAllVideos": { - "message": "On all videos" - }, - "onlyActiveOnYoutube": { - "message": "Only active on YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "onSubscribedChannels": { - "message": "On subscribed channels" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Other" - }, - "permissions": { - "message": "Permissions" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Pink" - }, - "plain": { - "message": "Plain" - }, - "platform": { - "message": "Platform" - }, - "playbackSpeed": { - "message": "Playback speed" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Player color" - }, - "playerSize": { - "message": "Player size" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "playPause": { - "message": "Play / Pause" - }, - "popupPlayer": { - "message": "Popup player" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Press any key or use mouse wheel." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Press any key or use mouse wheel" - }, - "previousVideo": { - "message": "Previous video" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "Purple" - }, - "quality": { - "message": "Quality" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Rate us" - }, - "red": { - "message": "Red" - }, - "relatedVideos": { - "message": "Related videos" - }, - "removeRelatedSearchResults": { - "message": "Remove related search results" - }, - "repeat": { - "message": "Repeat" - }, - "reset": { - "message": "Reset" - }, - "resetAllSettings": { - "message": "Reset all settings" - }, - "resetAllShortcuts": { - "message": "Reset all shortcuts" - }, - "reverse": { - "message": "Reverse" - }, - "rotate": { - "message": "Rotate" - }, - "save": { - "message": "Save" - }, - "saveAs": { - "message": "Save as" - }, - "schedule": { - "message": "Schedule" - }, - "screen": { - "message": "Screen" - }, - "screenshot": { - "message": "Screenshot" - }, - "search": { - "message": "Search" - }, - "searchBarOnly": { - "message": "Search bar only" - }, - "seekBackward10Seconds": { - "message": "Seek backward 10 seconds" - }, - "seekForward10Seconds": { - "message": "Seek forward 10 seconds" - }, - "settings": { - "message": "Settings" - }, - "settingsSuccessfullyImported": { - "message": "Settings successfully imported" - }, - "shortcuts": { - "message": "Shortcuts" - }, - "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" - }, - "showChannelVideosCount": { - "message": "Show channel videos count" - }, - "shuffle": { - "message": "Shuffle" - }, - "sidebar": { - "message": "Sidebar" - }, - "spacebar": { - "message": "Spacebar" - }, - "squaredUserImages": { - "message": "Squared user images" - }, - "static": { - "message": "Static" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscriptions": { - "message": "Subscriptions" - }, - "subtitles": { - "message": "Subtitles" - }, - "sunset": { - "message": "Sunset" - }, - "sunsetToSunrise": { - "message": "Sunset to sunrise" - }, - "systemPeferenceDark": { - "message": "System peference: dark" - }, - "systemPeferenceLight": { - "message": "System peference: light" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Text color" - }, - "themes": { - "message": "Themes" - }, - "thisWillRemoveAllCookies": { - "message": "This will remove all cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "This will remove all YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "This will reset all settings." - }, - "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" - }, - "thumbnails": { - "message": "Thumbnails" - }, - "timeFrom": { - "message": "Time from" - }, - "timeTo": { - "message": "Time to" - }, - "todayAt": { - "message": "Today at" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Trailer autoplay" - }, - "translations": { - "message": "Translations" - }, - "transparentBackground": { - "message": "Transparent background" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Try to reload the page" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "Up next autoplay" - }, - "use24HourFormat": { - "message": "Use 24-hour format" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" - }, - "videoFormats": { - "message": "Video formats" - }, - "videos": { - "message": "Videos" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Watch later" - }, - "watchTime": { - "message": "Watch time" - }, - "whenTabIsChanged": { - "message": "When tab is changed" - }, - "white": { - "message": "White" - }, - "yellow": { - "message": "Yellow" - }, - "youtubeHeaderLeft": { - "message": "YouTube Header (left)" - }, - "youtubeHeaderRight": { - "message": "YouTube Header (right)" - }, - "youtubeHomePage": { - "message": "YouTube home page" - }, - "youtubeLanguage": { - "message": "YouTube language" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limits video quality to 1080p for h.264 codec" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "geoPreference": { - "message": "Geo Preference" - } -} diff --git a/unstable/_locales/es/messages.json b/unstable/_locales/es/messages.json deleted file mode 100644 index 7a3613457..000000000 --- a/unstable/_locales/es/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "cropChapterTitles": { - "message": "Recortar título de capítulos" - }, - "about": { - "message": "Acerca de" - }, - "accept": { - "message": "Aceptar" - }, - "activate": { - "message": "Activar" - }, - "activateCaptions": { - "message": "Activar subtítulos" - }, - "activated": { - "message": "Activado" - }, - "activatedFeatures": { - "message": "Características activadas" - }, - "activateFullscreen": { - "message": "Activar pantalla completa" - }, - "activeFeatures": { - "message": "Activar características" - }, - "addScrollToTop": { - "message": "Añadir «Volver arriba»" - }, - "ads": { - "message": "Ads" - }, - "all": { - "message": "Todo" - }, - "allow": { - "message": "Permitir" - }, - "allow60fps": { - "message": "Permitir 60fps" - }, - "alwaysActive": { - "message": "Siempre activo" - }, - "alwaysShowProgressBar": { - "message": "Siempre mostrar barra de progreso" - }, - "amber": { - "message": "Ámbar" - }, - "analyzer": { - "message": "Analizador" - }, - "appearance": { - "message": "Apariencia" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formatos de audio" - }, - "auto": { - "message": "Automático" - }, - "autoFullscreen": { - "message": "Pantalla completa automática" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausar al cambiar de pestaña" - }, - "autoplay": { - "message": "Reproducción automática" - }, - "backupAndReset": { - "message": "Backup & reset" - }, - "baseOnSystemColorScheme": { - "message": "Según tema del sistema" - }, - "belowPlayer": { - "message": "Debajo del reproductor" - }, - "black": { - "message": "Negro" - }, - "blacklist": { - "message": "Lista negra" - }, - "blockAll": { - "message": "Bloquear todo" - }, - "blue": { - "message": "Azul" - }, - "blueGray": { - "message": "Gris azulado" - }, - "bluelight": { - "message": "Luz azul" - }, - "brown": { - "message": "Marrón" - }, - "browser": { - "message": "Navegador" - }, - "browserVersion": { - "message": "Version del navegador" - }, - "bubbles": { - "message": "Burbujas" - }, - "bug": { - "message": "Error (Bug)" - }, - "buttons": { - "message": "Botones" - }, - "cancel": { - "message": "Cancelar" - }, - "categories": { - "message": "Categorías" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canales" - }, - "clipboard": { - "message": "Portapapeles" - }, - "codecH264": { - "message": "Códec h.264" - }, - "collapsed": { - "message": "Compacto" - }, - "collapseOfSubscriptionSections": { - "message": "Compactar sección de suscripciones" - }, - "comments": { - "message": "Comentarios" - }, - "confirmationBeforeClosing": { - "message": "Confirmar antes de cerrar" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Núcleos" - }, - "customCss": { - "message": "CSS personalizado" - }, - "customJs": { - "message": "JS personalizado" - }, - "cyan": { - "message": "Cian" - }, - "dark": { - "message": "Oscuro" - }, - "darkTheme": { - "message": "Tema oscuro" - }, - "dateAndTime": { - "message": "Fecha y hora" - }, - "dawn": { - "message": "Amanecer" - }, - "decreasePlaybackSpeed": { - "message": "Disminuir velocidad de reproducción" - }, - "decreaseVolume": { - "message": "Bajar volumen" - }, - "deepOrange": { - "message": "Naranja profundo" - }, - "deepPurple": { - "message": "Violeta profundo" - }, - "defaultChannelTab": { - "message": "Pestaña del canal por defecto" - }, - "deleteYoutubeCookies": { - "message": "Borrar cookies de YouTube" - }, - "description": { - "message": "Descripción" - }, - "desert": { - "message": "Desierto" - }, - "details": { - "message": "Detalles" - }, - "developerOptions": { - "message": "Opciones de desarrollador" - }, - "device": { - "message": "Dispositivo" - }, - "dim": { - "message": "Oscuro" - }, - "disabled": { - "message": "Desactivado" - }, - "dislike": { - "message": "Dislike" - }, - "donate": { - "message": "Donar" - }, - "doNotChange": { - "message": "No cambiar" - }, - "draggable": { - "message": "Arrastrable" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Vacío" - }, - "enabled": { - "message": "Activado" - }, - "enabledForced": { - "message": "Activado (forzado)" - }, - "expanded": { - "message": "Expandido" - }, - "exportSettings": { - "message": "Exportar configuración" - }, - "extension": { - "message": "Extensión" - }, - "file": { - "message": "Archivo" - }, - "filters": { - "message": "Filtros" - }, - "fitToWindow": { - "message": "Ajustar a la ventana" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Fuente" - }, - "footer": { - "message": "Pie" - }, - "forcedPlaybackSpeed": { - "message": "Forzar velocidad de reproducción" - }, - "forcedTheaterMode": { - "message": "Forzar modo teatro" - }, - "forcedVolume": { - "message": "Forzar volumen" - }, - "foundABug": { - "message": "¿Encontraste un error (bug)?" - }, - "fullWindow": { - "message": "Pantalla completa" - }, - "general": { - "message": "General" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Ir a barra de búsqueda" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura HD" - }, - "hdThumbnails": { - "message": "Miniaturas HD" - }, - "header": { - "message": "Encabezado" - }, - "hidden": { - "message": "Oculto" - }, - "hiddenOnVideoPage": { - "message": "Oculto en la página de video" - }, - "hideAnimatedThumbnails": { - "message": "Ocultar miniaturas animadas" - }, - "hideAnnotations": { - "message": "Ocultar anotaciones" - }, - "hideCards": { - "message": "Ocultar tarjetas" - }, - "hideDetails": { - "message": "Ocultar detalles" - }, - "hideEndscreen": { - "message": "Ocultar pantalla final" - }, - "hideFeaturedContent": { - "message": "Ocultar contenido destacado" - }, - "hideFooter": { - "message": "Ocultar pie de página" - }, - "hidePlaylist": { - "message": "Ocultar playlist" - }, - "hideRightButtons": { - "message": "Ocultar botones de la derecha" - }, - "hideScrollForDetails": { - "message": "Ocultar «Desliza hacia abajo para ver más detalles»" - }, - "hideViewsCount": { - "message": "Ocultar contador de visitas" - }, - "history": { - "message": "Historial" - }, - "home": { - "message": "Inicio" - }, - "hover": { - "message": "Cursor sobre (hover)" - }, - "hoverOnVideoPage": { - "message": "Cursor sobre (hover) en página de video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Hace cuánto tiempo se subió el video" - }, - "icons": { - "message": "Iconos" - }, - "iconsOnly": { - "message": "Solo iconos" - }, - "importSettings": { - "message": "Importar configuración" - }, - "improvedtubeIconInBrowser": { - "message": "Icono ImprovedTube en el navegador" - }, - "improvedtubeIconOnYoutube": { - "message": "Icono ImprovedTube en YouTube" - }, - "improvedtubeLanguage": { - "message": "Idioma de ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Version de ImprovedTube" - }, - "improveLogo": { - "message": "Mejorar logo" - }, - "increasePlaybackSpeed": { - "message": "Aumentar velocidad de reproducción" - }, - "increaseVolume": { - "message": "Subir volumen" - }, - "indigo": { - "message": "Índigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Idiomas" - }, - "legacyYoutube": { - "message": " YouTube antiguo" - }, - "light": { - "message": "Claro" - }, - "lightBlue": { - "message": "Azul claro" - }, - "lightGreen": { - "message": "Verde claro" - }, - "like": { - "message": "Like" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Lima" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Chat en directo" - }, - "liveChatType": { - "message": "Tipo de chat en directo" - }, - "loudnessNormalization": { - "message": "Normalización de volumen" - }, - "markWatchedVideos": { - "message": "Marcar videos vistos" - }, - "customMiniPlayer": { - "message": "Mini-Reproductor personalizado" - }, - "mixer": { - "message": "Mezclador" - }, - "myColors": { - "message": "Mis colores" - }, - "name": { - "message": "Nombre" - }, - "nativeMiniPlayer": { - "message": "Mini-Reproductor nativo" - }, - "new": { - "message": "Nuevo" - }, - "nextVideo": { - "message": "Siguiente video" - }, - "night": { - "message": "Noche" - }, - "noActiveFeatures": { - "message": "Sin características activas" - }, - "none": { - "message": "Ninguno" - }, - "noOpenVideoTabs": { - "message": "Sin pestañas de video abiertas" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Viejo" - }, - "onAllVideos": { - "message": "En todos los videos" - }, - "onlyActiveOnYoutube": { - "message": "Solo activo en YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Solo una pestaña reproduciendo" - }, - "onSubscribedChannels": { - "message": "En canales suscritos" - }, - "orange": { - "message": "Naranja" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Otro" - }, - "permissions": { - "message": "Permisos" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Plano" - }, - "platform": { - "message": "Plataforma" - }, - "playbackSpeed": { - "message": "Velocidad de reproducción" - }, - "player": { - "message": "Reproductor" - }, - "playerColor": { - "message": "Color del reproductor" - }, - "playerSize": { - "message": "Tamaño del reproductor" - }, - "playlist": { - "message": "Lista de reproducción" - }, - "playlists": { - "message": "Listas de reproducción" - }, - "playPause": { - "message": "Reproducir / pausar" - }, - "popupPlayer": { - "message": "Reproductor emergente" - }, - "position": { - "message": "Posición" - }, - "pressAnyKeyOrScroll": { - "message": "Aprieta una tecla o haz scroll" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Aprieta una tecla o usa la rueda del ratón" - }, - "previousVideo": { - "message": "Reproducir video anterior" - }, - "primaryColor": { - "message": "Color Primario" - }, - "purple": { - "message": "Morado" - }, - "quality": { - "message": "Calidad" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Califíquenos" - }, - "red": { - "message": "Rojo" - }, - "relatedVideos": { - "message": "Vídeos relacionados" - }, - "removeRelatedSearchResults": { - "message": "Quitar resultados relacionados" - }, - "repeat": { - "message": "Repetir" - }, - "reset": { - "message": "Reiniciar" - }, - "resetAllSettings": { - "message": "Restablecer todos los ajustes" - }, - "resetAllShortcuts": { - "message": "Restablecer todos los atajos" - }, - "reverse": { - "message": "Revertir" - }, - "rotate": { - "message": "Rotar" - }, - "save": { - "message": "Guardar" - }, - "saveAs": { - "message": "Guardar como" - }, - "schedule": { - "message": "Programar" - }, - "screen": { - "message": "Pantalla" - }, - "screenshot": { - "message": "Captura de pantalla" - }, - "search": { - "message": "Búsqueda" - }, - "searchBarOnly": { - "message": "Solo barra de búsqueda" - }, - "seekBackward10Seconds": { - "message": "Retroceder 10 segundos" - }, - "seekForward10Seconds": { - "message": "Adelantar 10 segundos" - }, - "settings": { - "message": "Ajustes" - }, - "settingsSuccessfullyImported": { - "message": "Ajustes importados correctamente" - }, - "shortcuts": { - "message": "Atajos" - }, - "showCardsOnMouseHover": { - "message": "Mostrar tarjetas al pasar el ratón" - }, - "showChannelVideosCount": { - "message": "Mostrar recuento de videos del canal" - }, - "shuffle": { - "message": "Aleatorio" - }, - "sidebar": { - "message": "Barra lateral" - }, - "spacebar": { - "message": "Espacio" - }, - "squaredUserImages": { - "message": "Fotos de perfil cuadradas" - }, - "static": { - "message": "Estático" - }, - "step": { - "message": "Paso" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Estilo" - }, - "styles": { - "message": "Estilos" - }, - "subscriptions": { - "message": "Suscripciones" - }, - "subtitles": { - "message": "Subtítulos" - }, - "sunset": { - "message": "Atardecer" - }, - "sunsetToSunrise": { - "message": "De atardecer a amanecer" - }, - "systemPeferenceDark": { - "message": "Preferencia del sistema: Oscuro" - }, - "systemPeferenceLight": { - "message": "Preferencia del sistema: Claro" - }, - "teal": { - "message": "Verde azulado" - }, - "textColor": { - "message": "Color del texto" - }, - "themes": { - "message": "Temas" - }, - "thisWillRemoveAllCookies": { - "message": "Esto borrará todas las cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Esto borrará todas las cookies de YouTube" - }, - "thisWillResetAllSettings": { - "message": "Esto restablecerá todos los ajustes" - }, - "thisWillResetAllShortcuts": { - "message": "Esto restablecerá todos los atajos" - }, - "thumbnails": { - "message": "Miniaturas" - }, - "timeFrom": { - "message": "Desde" - }, - "timeTo": { - "message": "Hasta" - }, - "todayAt": { - "message": "Hoy a las" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Reproducción automática de trailer" - }, - "translations": { - "message": "Traducciones" - }, - "transparentBackground": { - "message": "Fondo transparente" - }, - "trending": { - "message": "Tendencias" - }, - "tryToReloadThePage": { - "message": "Trata de recargar la página" - }, - "type": { - "message": "Tipo" - }, - "upNextAutoplay": { - "message": "Siguiente reproducción automática" - }, - "use24HourFormat": { - "message": "Usar formato 24 horas" - }, - "version": { - "message": "Versión" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La descripción del video se expandirá para obtener el nombre de la categoría." - }, - "videoFormats": { - "message": "Formatos de video" - }, - "videos": { - "message": "Videos" - }, - "volume": { - "message": "Volumen" - }, - "watchLater": { - "message": "Ver más tarde" - }, - "watchTime": { - "message": "Visualizaciones" - }, - "whenTabIsChanged": { - "message": "Al cambiar de pestaña" - }, - "white": { - "message": "Blanco" - }, - "yellow": { - "message": "Amarillo" - }, - "youtubeHeaderLeft": { - "message": "Encabezado YouTube (izq)" - }, - "youtubeHeaderRight": { - "message": "Encabezado YouTube (der)" - }, - "youtubeHomePage": { - "message": "Página de inicio de YouTube" - }, - "youtubeLanguage": { - "message": "Idioma de YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limita calidad de video a 1080p para el codec h.264" - }, - "redDislikeButton": { - "message": "Mostrar el botón de dislike de color rojo" - }, - "hideGradientBottom": { - "message": "Ocultar parte inferior degradada" - }, - "statsForNerds": { - "message": "Mostrar estadísticas para Nerds" - }, - "toggleCards": { - "message": "Toggle cards" - } -} diff --git a/unstable/_locales/fr/messages.json b/unstable/_locales/fr/messages.json deleted file mode 100644 index 99f18a4cf..000000000 --- a/unstable/_locales/fr/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "cropChapterTitles": { - "message": "Couper les titres des chapitres" - }, - "about": { - "message": "À propos" - }, - "accept": { - "message": "Accepter" - }, - "activate": { - "message": "Activer" - }, - "activateCaptions": { - "message": "Activer les sous-titres" - }, - "activated": { - "message": "Activé" - }, - "activatedFeatures": { - "message": "Fonctionnalités activées" - }, - "activateFullscreen": { - "message": "Activer le plein écran" - }, - "activeFeatures": { - "message": "Fonctionnalités actives" - }, - "addScrollToTop": { - "message": "Ajouter « Remonter en haut »" - }, - "ads": { - "message": "Publicités" - }, - "all": { - "message": "Voir tout" - }, - "allow": { - "message": "Permettre" - }, - "allow60fps": { - "message": "Jouer à 60 fps" - }, - "alwaysActive": { - "message": "Toujours activé" - }, - "alwaysShowProgressBar": { - "message": "Toujours afficher la barre de progression" - }, - "amber": { - "message": "Ambre" - }, - "analyzer": { - "message": "Analyser" - }, - "appearance": { - "message": "Apparence" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formats de fichier audio" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Plein écran automatique" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pause automatique lors d'un changement d'onglet" - }, - "autoplay": { - "message": "Lecture automatique" - }, - "backupAndReset": { - "message": "Sauvegarde et réinitialisation" - }, - "baseOnSystemColorScheme": { - "message": "Selon les paramètres du système" - }, - "belowPlayer": { - "message": "Sous le player" - }, - "black": { - "message": "Noir" - }, - "blacklist": { - "message": "Liste noire" - }, - "blockAll": { - "message": "Tout bloquer" - }, - "blue": { - "message": "Bleu" - }, - "blueGray": { - "message": "Gris-bleu" - }, - "bluelight": { - "message": "Bleu pâle" - }, - "brown": { - "message": "Brun" - }, - "browser": { - "message": "Navigateur web" - }, - "browserVersion": { - "message": "Version du navigateur web" - }, - "bubbles": { - "message": "Bulles" - }, - "bug": { - "message": "Bogue" - }, - "buttons": { - "message": "Boutons" - }, - "cancel": { - "message": "Annuler" - }, - "categories": { - "message": "Catégories" - }, - "channel": { - "message": "Chaîne" - }, - "channels": { - "message": "Chaînes" - }, - "clipboard": { - "message": "Presse-papiers" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Réduire" - }, - "collapseOfSubscriptionSections": { - "message": "Réduire la section des abonnements" - }, - "comments": { - "message": "Commentaires" - }, - "confirmationBeforeClosing": { - "message": "Confirmation avant la fermeture" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Noyaux" - }, - "customCss": { - "message": "CSS customisé" - }, - "customJs": { - "message": "JS customisé" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Sombre" - }, - "darkTheme": { - "message": "Thème sombre" - }, - "dateAndTime": { - "message": "Date et temps" - }, - "dawn": { - "message": "Aube" - }, - "decreasePlaybackSpeed": { - "message": "Réduire la vitesse de lecture" - }, - "decreaseVolume": { - "message": "Réduire le volume" - }, - "deepOrange": { - "message": "Orange foncé" - }, - "deepPurple": { - "message": "Violet foncé" - }, - "defaultChannelTab": { - "message": "Onglet par défaut d'une chaîne" - }, - "deleteYoutubeCookies": { - "message": "Supprimer les cookies YouTube" - }, - "description": { - "message": "Description" - }, - "desert": { - "message": "Desert" - }, - "details": { - "message": "Détails" - }, - "developerOptions": { - "message": "Options de développeur" - }, - "device": { - "message": "Appareil" - }, - "dim": { - "message": "Assombrir" - }, - "disabled": { - "message": "Désactivé" - }, - "dislike": { - "message": "Je n'aime pas" - }, - "donate": { - "message": "Donner" - }, - "doNotChange": { - "message": "Ne pas changer" - }, - "draggable": { - "message": "Draggable" - }, - "email": { - "message": "Courriel" - }, - "empty": { - "message": "Vide" - }, - "enabled": { - "message": "Activé" - }, - "enabledForced": { - "message": "Activé (forcé)" - }, - "expanded": { - "message": "Étendu" - }, - "exportSettings": { - "message": "Exporter les réglages" - }, - "extension": { - "message": "Extension" - }, - "file": { - "message": "Fichier" - }, - "filters": { - "message": "Filtres" - }, - "fitToWindow": { - "message": "Ajuster à la fenêtre" - }, - "flash": { - "message": "Clignoter" - }, - "font": { - "message": "Police" - }, - "footer": { - "message": "Bas de page" - }, - "forcedPlaybackSpeed": { - "message": "Vitesse de lecture forcée" - }, - "forcedTheaterMode": { - "message": "Forcer le mode théâtre" - }, - "forcedVolume": { - "message": "Forcer le volume" - }, - "foundABug": { - "message": "Un bogue?" - }, - "fullWindow": { - "message": "Fenêtre pleine" - }, - "general": { - "message": "Général" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Aller à la barre de recherche" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Vert" - }, - "hdThumbnail": { - "message": "Vignette HD" - }, - "hdThumbnails": { - "message": "Vignettes HD" - }, - "header": { - "message": "Tête de page" - }, - "hidden": { - "message": "Caché" - }, - "hiddenOnVideoPage": { - "message": "Caché sur la page de la vidéo" - }, - "hideAnimatedThumbnails": { - "message": "Vignettes sans animation" - }, - "hideAnnotations": { - "message": "Cacher les annotations" - }, - "hideCards": { - "message": "Cacher les cartes" - }, - "hideDetails": { - "message": "Cacher les détails" - }, - "hideEndscreen": { - "message": "Cacher l'écran de fin" - }, - "hideFeaturedContent": { - "message": "Cacher le contenu recommandé" - }, - "hideFooter": { - "message": "Cacher le pied de page" - }, - "hidePlaylist": { - "message": "Cacher la liste de lecture" - }, - "hideRightButtons": { - "message": "Cacher les boutons à droite" - }, - "hideScrollForDetails": { - "message": "Cacher « Faire défiler pour les détails »" - }, - "hideViewsCount": { - "message": "Voir le compte des vues" - }, - "history": { - "message": "Historique" - }, - "home": { - "message": "Accueil" - }, - "hover": { - "message": "Survoler" - }, - "hoverOnVideoPage": { - "message": "Survoler la page de la vidéo" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Depuis combien de temps la vidéo a été téléversé?" - }, - "icons": { - "message": "Icônes" - }, - "iconsOnly": { - "message": "Uniquement les icônes" - }, - "importSettings": { - "message": "Importer les réglages" - }, - "improvedtubeIconInBrowser": { - "message": "Afficher l'icône ImprovedTube dans le navigateur web" - }, - "improvedtubeIconOnYoutube": { - "message": "Afficher l'icône ImprovedTube sur YouTube" - }, - "improvedtubeLanguage": { - "message": "Langue d'ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Version d'ImprovedTube" - }, - "improveLogo": { - "message": "Améliorer le logo" - }, - "increasePlaybackSpeed": { - "message": "Accélérer la vitesse de lecture" - }, - "increaseVolume": { - "message": "Augmenter le volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Objets" - }, - "languages": { - "message": "Langues" - }, - "legacyYoutube": { - "message": "Ancienne version de Youtube" - }, - "light": { - "message": "Clair" - }, - "lightBlue": { - "message": "Bleu clair" - }, - "lightGreen": { - "message": "Vert clair" - }, - "like": { - "message": "J'aime" - }, - "likes": { - "message": "J'aime" - }, - "lime": { - "message": "Citron vert" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Chat en direct" - }, - "liveChatType": { - "message": "Type de chat en direct" - }, - "loudnessNormalization": { - "message": "Normalisation de l'intensité sonore" - }, - "markWatchedVideos": { - "message": "Marquer les vidéos déjà visionnées" - }, - "customMiniPlayer": { - "message": "Mini-lecteur personnalisé" - }, - "mixer": { - "message": "Mélangeur de volume" - }, - "myColors": { - "message": "Mes couleurs" - }, - "name": { - "message": "Nom" - }, - "nativeMiniPlayer": { - "message": "Mini-lecteur natif" - }, - "new": { - "message": "Nouveau" - }, - "nextVideo": { - "message": "Prochaine vidéo" - }, - "night": { - "message": "Nuit" - }, - "noActiveFeatures": { - "message": "Pas de fonctionalité active" - }, - "none": { - "message": "Aucun" - }, - "noOpenVideoTabs": { - "message": "Aucun onglet de vidéo ouvert" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Vieux" - }, - "onAllVideos": { - "message": "Pour toutes les vidéos" - }, - "onlyActiveOnYoutube": { - "message": "Uniquement actif sur YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Une seule instance à la fois" - }, - "onSubscribedChannels": { - "message": "Sur les chaînes auxquelles je suis abonné" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Autres" - }, - "permissions": { - "message": "Permissions" - }, - "pictureInPicture": { - "message": "Image dans l'image" - }, - "pink": { - "message": "Rose" - }, - "plain": { - "message": "Ordinaire" - }, - "platform": { - "message": "Platforme" - }, - "playbackSpeed": { - "message": "Vitesse de lecture" - }, - "player": { - "message": "Lecteur" - }, - "playerColor": { - "message": "Couleur du lecteur" - }, - "playerSize": { - "message": "Taille du lecteur" - }, - "playlist": { - "message": "Liste de lecture" - }, - "playlists": { - "message": "Listes de lecture" - }, - "playPause": { - "message": "Jouer / Pause" - }, - "popupPlayer": { - "message": "Détacher le lecteur" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." - }, - "previousVideo": { - "message": "Vidéo précédente" - }, - "primaryColor": { - "message": "Couleur primaire" - }, - "purple": { - "message": "Violet" - }, - "quality": { - "message": "Qualité" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Nous évaluer" - }, - "red": { - "message": "Rouge" - }, - "relatedVideos": { - "message": "Vidéos associés" - }, - "removeRelatedSearchResults": { - "message": "Supprimer les résultats de recherche associés" - }, - "repeat": { - "message": "Lire en boucle" - }, - "reset": { - "message": "Réintialiser" - }, - "resetAllSettings": { - "message": "Réinitialiser les réglages" - }, - "resetAllShortcuts": { - "message": "Réinitialiser les raccourcis" - }, - "reverse": { - "message": "Inverser" - }, - "rotate": { - "message": "Faire pivoter la vidéo" - }, - "save": { - "message": "Sauvegarder" - }, - "saveAs": { - "message": "Sauvegarder sous" - }, - "schedule": { - "message": "Planifier" - }, - "screen": { - "message": "Écran" - }, - "screenshot": { - "message": "Capture d'écran" - }, - "search": { - "message": "Rechercher" - }, - "searchBarOnly": { - "message": "Uniquement la barre de recherche" - }, - "seekBackward10Seconds": { - "message": "Reculer de 10 secondes" - }, - "seekForward10Seconds": { - "message": "Avancer de 10 secondes" - }, - "settings": { - "message": "Réglages" - }, - "settingsSuccessfullyImported": { - "message": "Importation des réglages réussie" - }, - "shortcuts": { - "message": "Raccourcis" - }, - "showCardsOnMouseHover": { - "message": "Afficher les cartes au survol de la souris" - }, - "showChannelVideosCount": { - "message": "Afficher le nombre de vidéos de la chaîne" - }, - "shuffle": { - "message": "Aléatoire" - }, - "sidebar": { - "message": "Barre latérale" - }, - "spacebar": { - "message": "Barre d'espace" - }, - "squaredUserImages": { - "message": "Images des utilisateurs carrées" - }, - "static": { - "message": "Statique" - }, - "step": { - "message": "Étape" - }, - "stop": { - "message": "Arrêter" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscriptions": { - "message": "Abonnements" - }, - "subtitles": { - "message": "Activer les sous-titres" - }, - "sunset": { - "message": "Coucher de soleil" - }, - "sunsetToSunrise": { - "message": "Du coucher au lever du Soleil" - }, - "systemPeferenceDark": { - "message": "Préférence système : sombre" - }, - "systemPeferenceLight": { - "message": "Préférence système : clair" - }, - "teal": { - "message": "Sarcelle" - }, - "textColor": { - "message": "Couleur du texte" - }, - "themes": { - "message": "Thèmes" - }, - "thisWillRemoveAllCookies": { - "message": "Supprimer tous les cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Supprimer tous les cookies Youtube." - }, - "thisWillResetAllSettings": { - "message": "Réintialiser les réglages." - }, - "thisWillResetAllShortcuts": { - "message": "Réintialiser les raccourcis." - }, - "thumbnails": { - "message": "Vignettes" - }, - "timeFrom": { - "message": "Temps de" - }, - "timeTo": { - "message": "Temps au" - }, - "todayAt": { - "message": "Aujourd'hui à" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Démarrage automatique des annonces" - }, - "translations": { - "message": "Traductions" - }, - "transparentBackground": { - "message": "Arrière-plan transparent" - }, - "trending": { - "message": "Tendances" - }, - "tryToReloadThePage": { - "message": "Essayez de rafraîchir la page" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "Prochaine lecture automatique" - }, - "use24HourFormat": { - "message": "Utiliser le format 24 h" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Vidéo" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La description de la vidéo sera développée pour obtenir le nom de la catégorie" - }, - "videoFormats": { - "message": "Formats de vidéo" - }, - "videos": { - "message": "Videos" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "À regarder plus tard" - }, - "watchTime": { - "message": "Temps de visionnage" - }, - "whenTabIsChanged": { - "message": "Quand l'onglet change" - }, - "white": { - "message": "Blanc" - }, - "yellow": { - "message": "Jaune" - }, - "youtubeHeaderLeft": { - "message": "En-tête YouTube (à gauche)" - }, - "youtubeHeaderRight": { - "message": "En-tête YouTube (à droite)" - }, - "youtubeHomePage": { - "message": "Page d'accueil de YouTube" - }, - "youtubeLanguage": { - "message": "Langue de YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limite la qualité vidéo à 1080p pour le codec h.264" - }, - "redDislikeButton": { - "message": "Afficher la couleur rouge du bouton Je n'aime pas" - }, - "hideGradientBottom": { - "message": "Masquer le dégradé du bas" - }, - "statsForNerds": { - "message": "Statistiques pour nerd" - }, - "toggleCards": { - "message": "Toggle cards" - } -} diff --git a/unstable/_locales/hin/messages.json b/unstable/_locales/hin/messages.json deleted file mode 100644 index 33b85badd..000000000 --- a/unstable/_locales/hin/messages.json +++ /dev/null @@ -1,810 +0,0 @@ -{ - "cropChapterTitles": { - "message": "फसल अध्याय के शीर्षक" - }, - "about": { - "message": "के बारे में" - }, - "accept": { - "message": "स्वीकार" - }, - "activate": { - "message": "सक्रिय" - }, - "activateCaptions": { - "message": "कैप्शन सक्रिय करें" - }, - "activated": { - "message": "सक्रिय" - }, - "activatedFeatures": { - "message": "सक्रिय विशेषताएं" - }, - "activateFullscreen": { - "message": "पूर्णस्क्रीन सक्रिय करें" - }, - "activeFeatures": { - "message": "सक्रिय विशेषताएं" - }, - "addScrollToTop": { - "message": "«शीर्ष पर स्क्रॉल करें» जोड़ें" - }, - "ads": { - "message": "विज्ञापन" - }, - "all": { - "message": "सब" - }, - "allow": { - "message": "अनुमति" - }, - "allow60fps": { - "message": "60fps की अनुमति दें" - }, - "alwaysActive": { - "message": "हमेशा सक्रिय" - }, - "alwaysShowProgressBar": { - "message": "हमेशा प्रगति बार दिखाएं" - }, - "amber": { - "message": "अंबर" - }, - "analyzer": { - "message": "विश्लेषक" - }, - "appearance": { - "message": "दिखावट" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "ऑडियो" - }, - "audioFormats": { - "message": "ऑडियो प्रारूप" - }, - "auto": { - "message": "खुद ब खुद" - }, - "autoFullscreen": { - "message": "स्वत: पूर्ण स्क्रीन" - }, - "autopauseWhenSwitchingTabs": { - "message": "टैब स्विच करते समय ऑटोपॉज" - }, - "autoplay": { - "message": "स्वत: प्ले" - }, - "backupAndReset": { - "message": "बैकअप पुनर्स्थापित करना" - }, - "baseOnSystemColorScheme": { - "message": "सिस्टम रंग योजना के आधार पर" - }, - "belowPlayer": { - "message": "प्लेयर के नीचे" - }, - "black": { - "message": "काला" - }, - "blacklist": { - "message": "काला सूची में डालना" - }, - "blockAll": { - "message": "सभी को अवरोधित करें" - }, - "blue": { - "message": "नीला" - }, - "blueGray": { - "message": "नीला स्लेटी" - }, - "bluelight": { - "message": "नीली बत्ती" - }, - "brown": { - "message": "भूरा" - }, - "browser": { - "message": "ब्राउज़र" - }, - "browserVersion": { - "message": "ब्राउज़र संस्करण" - }, - "bubbles": { - "message": "बुलबुले" - }, - "bug": { - "message": "बग" - }, - "buttons": { - "message": "बटन" - }, - "cancel": { - "message": "रद्द" - }, - "categories": { - "message": "श्रेणियाँ" - }, - "channel": { - "message": "चैनल" - }, - "channels": { - "message": "चैनल" - }, - "clipboard": { - "message": "क्लिपबोर्ड" - }, - "codecH264": { - "message": "कोडक ज 64२६४ 64" - }, - "collapsed": { - "message": "संक्षिप्त" - }, - "collapseOfSubscriptionSections": { - "message": "सदस्यता वर्गों का पतन" - }, - "comments": { - "message": "टिप्पणियाँ" - }, - "confirmationBeforeClosing": { - "message": "बंद करने से पहले पुष्टि" - }, - "cookies": { - "message": "कुकीज़" - }, - "cores": { - "message": "कोर" - }, - "customCss": { - "message": "कस्टम सीएसएस" - }, - "customJs": { - "message": "कस्टम जेएस" - }, - "cyan": { - "message": "सियान" - }, - "dark": { - "message": "अंधेरा" - }, - "darkTheme": { - "message": "डार्क थीम" - }, - "dateAndTime": { - "message": "दिनांक और समय" - }, - "dawn": { - "message": "भोर" - }, - "decreasePlaybackSpeed": { - "message": "पार्श्व गति में कमी" - }, - "decreaseVolume": { - "message": "ध्वनि कम" - }, - "deepOrange": { - "message": "गहरा नारंगी" - }, - "deepPurple": { - "message": "गहरा बैंगनी" - }, - "defaultChannelTab": { - "message": "डिफ़ॉल्ट चैनल टैब" - }, - "deleteYoutubeCookies": { - "message": "यूट्यूब कुकीज़ हटाएं" - }, - "description": { - "message": "विवरण" - }, - "desert": { - "message": "रेगिस्तान" - }, - "details": { - "message": "विवरण" - }, - "developerOptions": { - "message": "डेवलपर विकल्प" - }, - "device": { - "message": "युक्ति" - }, - "dim": { - "message": "मंद" - }, - "disabled": { - "message": "विकलांग" - }, - "dislike": { - "message": "नापसन्द" - }, - "donate": { - "message": "दान" - }, - "doNotChange": { - "message": "मत बदलो" - }, - "draggable": { - "message": "खींचने योग्य" - }, - "email": { - "message": "ईमेल" - }, - "empty": { - "message": "खाली" - }, - "enabled": { - "message": "सक्रिय" - }, - "enabledForced": { - "message": "सक्रिय(मजबूर)" - }, - "expanded": { - "message": "विस्तारित" - }, - "exportSettings": { - "message": "निर्यात सेटिंग्स" - }, - "extension": { - "message": "एक्सटेंशन" - }, - "file": { - "message": "फ़ाइल" - }, - "filters": { - "message": "फिल्टर" - }, - "fitToWindow": { - "message": "स्क्रीन फिट" - }, - "flash": { - "message": "चमक" - }, - "font": { - "message": "फ़ॉन्ट" - }, - "footer": { - "message": "पाद लेख" - }, - "forcedPlaybackSpeed": { - "message": "जबरन पार्श्व गति" - }, - "forcedTheaterMode": { - "message": "जबरन थिएटर मोड" - }, - "forcedVolume": { - "message": "जबरन ध्वनि" - }, - "foundABug": { - "message": "बग मिला?" - }, - "fullWindow": { - "message": "पूर्ण स्क्रीन" - }, - "general": { - "message": "सामान्य" - }, - "github": { - "message": "गिटहब" - }, - "goToSearchBox": { - "message": "सर्च बॉक्स पर जाएं" - }, - "gpu": { - "message": "जी पी यू" - }, - "green": { - "message": "हरा" - }, - "hdThumbnail": { - "message": "एच डी थंबनेल" - }, - "hdThumbnails": { - "message": "एच डी थंबनेल" - }, - "header": { - "message": "हैडर" - }, - "hidden": { - "message": "छिपा हुआ" - }, - "hiddenOnVideoPage": { - "message": "वीडियो पेज पर छिपा हुआ" - }, - "hideAnimatedThumbnails": { - "message": "वीडियो पेज पर छिपा हुआ" - }, - "hideAnnotations": { - "message": "एनोटेशन छुपाएं" - }, - "hideCards": { - "message": "पत्ते छिपाओ" - }, - "hideDetails": { - "message": "जानकारी छिपाएँ" - }, - "hideEndscreen": { - "message": "अंत स्क्रीन छिपाएँ" - }, - "hideFeaturedContent": { - "message": "विशेषताओं को छिपाएँ" - }, - "hideFooter": { - "message": "पाद छिपाएँ" - }, - "hidePlaylist": { - "message": "प्लेलिस्ट छिपाएं" - }, - "hideRightButtons": { - "message": "दाएं बटन छुपाएं" - }, - "hideScrollForDetails": { - "message": "छिपाएँ «विवरण के लिए स्क्रॉल»" - }, - "hideViewsCount": { - "message": "व्यू काउंट छिपाएं" - }, - "history": { - "message": "इतिहास" - }, - "home": { - "message": "घर" - }, - "hover": { - "message": "होवर" - }, - "hoverOnVideoPage": { - "message": "वीडियो पेज पर होवर" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "वीडियो कितनी देर पहले अपलोड किया गया था" - }, - "icons": { - "message": "प्रतीक" - }, - "iconsOnly": { - "message": "केवल प्रतीक" - }, - "importSettings": { - "message": "सेटिंग आयात करना" - }, - "improvedtubeIconInBrowser": { - "message": "ब्राउज़र में बेहतर आइकन" - }, - "improvedtubeIconOnYoutube": { - "message": "यूट्यूब पर बेहतर आइकन" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube भाषा" - }, - "improvedtubeVersion": { - "message": "ImprovedTube संस्करण" - }, - "improveLogo": { - "message": "लोगो सुधारो" - }, - "increasePlaybackSpeed": { - "message": "प्लेबैक स्पीड बढ़ाएं" - }, - "increaseVolume": { - "message": "ध्वनि बढ़ाएं" - }, - "indigo": { - "message": "नील" - }, - "items": { - "message": "आइटम" - }, - "languages": { - "message": "बोली" - }, - "legacyYoutube": { - "message": "विरासत यूट्यूब" - }, - "light": { - "message": "हलका" - }, - "lightBlue": { - "message": "हल्का नीला" - }, - "lightGreen": { - "message": "हल्का हरा" - }, - "like": { - "message": "पसंद" - }, - "likes": { - "message": "को यह पसंद है" - }, - "lime": { - "message": "पीला हरा रंग" - }, - "list": { - "message": "सूची" - }, - "liveChat": { - "message": "सीधी बातचीत" - }, - "liveChatType": { - "message": "लाइव चैट प्रकार" - }, - "loudnessNormalization": { - "message": "जोर से सामान्य होना" - }, - "markWatchedVideos": { - "message": "चिह्नित वीडियो देखे गए" - }, - "customMiniPlayer": { - "message": "कस्टम मिनी प्लेयर" - }, - "mixer": { - "message": "मिक्सर" - }, - "myColors": { - "message": "मेरे रंग" - }, - "name": { - "message": "नाम" - }, - "nativeMiniPlayer": { - "message": "मूल निवासी मिनी प्लेयर" - }, - "new": { - "message": "नया" - }, - "nextVideo": { - "message": "अगला वीडियो" - }, - "night": { - "message": "रात" - }, - "noActiveFeatures": { - "message": "कोई सक्रिय सुविधाएँ नहीं" - }, - "none": { - "message": "कोई नहीं" - }, - "noOpenVideoTabs": { - "message": "कोई खुला वीडियो टैब नहीं" - }, - "normal": { - "message": "साधारण" - }, - "old": { - "message": "पुराना" - }, - "onAllVideos": { - "message": "सभी वीडियो पर" - }, - "onlyActiveOnYoutube": { - "message": "केवल यूट्यूब पर सक्रिय है" - }, - "onlyOnePlayerInstancePlaying": { - "message": "केवल एक प्लेयर का चल रहा है" - }, - "onSubscribedChannels": { - "message": "सदस्यता प्राप्त चैनलों पर" - }, - "orange": { - "message": "नारंगी रंग" - }, - "os": { - "message": "ओ एस" - }, - "other": { - "message": "अन्य" - }, - "permissions": { - "message": "अनुमतियां" - }, - "pictureInPicture": { - "message": "चित्र में चित्र" - }, - "pink": { - "message": "गुलाबी" - }, - "plain": { - "message": "सादा" - }, - "platform": { - "message": "मंच" - }, - "playbackSpeed": { - "message": "प्लेबैक स्पीड" - }, - "player": { - "message": "प्लेयर" - }, - "playerColor": { - "message": "प्लेयर रंग" - }, - "playerSize": { - "message": "प्लेयर आकार" - }, - "playlist": { - "message": "प्लेलिस्ट" - }, - "playlists": { - "message": "प्लेलिस्ट" - }, - "playPause": { - "message": "प्ले / ठहराव" - }, - "popupPlayer": { - "message": "पॉप अप प्लेयर" - }, - "position": { - "message": "स्थान" - }, - "pressAnyKeyOrScroll": { - "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" - }, - "previousVideo": { - "message": "पिछला वीडियो" - }, - "primaryColor": { - "message": "प्राथमिक रंग" - }, - "purple": { - "message": "बैंगनी" - }, - "quality": { - "message": "गुणवत्ता" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "हमें रेटिंग दें" - }, - "red": { - "message": "लाल" - }, - "relatedVideos": { - "message": "संबंधित वीडियो" - }, - "removeRelatedSearchResults": { - "message": "संबंधित खोज परिणाम निकालें" - }, - "repeat": { - "message": "दोहराना" - }, - "reset": { - "message": "रीसेट" - }, - "resetAllSettings": { - "message": "सभी सेटिंग्स को रीसेट" - }, - "resetAllShortcuts": { - "message": "सभी शॉर्टकट रीसेट करें" - }, - "reverse": { - "message": "उलटना" - }, - "rotate": { - "message": "घुमाएँ" - }, - "save": { - "message": "सहेजें" - }, - "saveAs": { - "message": "के रूप रक्षित करें" - }, - "schedule": { - "message": "अनुसूची" - }, - "screen": { - "message": "स्क्रीन" - }, - "screenshot": { - "message": "स्क्रीनशॉट" - }, - "search": { - "message": "खोज" - }, - "searchBarOnly": { - "message": "केवल बार खोजें" - }, - "seekBackward10Seconds": { - "message": "पिछड़े 10 सेकंड की तलाश करें" - }, - "seekForward10Seconds": { - "message": "पिछड़े 10 सेकंड की तलाश करें" - }, - "settings": { - "message": "समायोजन" - }, - "settingsSuccessfullyImported": { - "message": "सेटिंग्स सफलतापूर्वक आयात की गईं" - }, - "shortcuts": { - "message": "शॉर्टकट" - }, - "showCardsOnMouseHover": { - "message": "माउस होवर पर कार्ड दिखाएं" - }, - "showChannelVideosCount": { - "message": "चैनल वीडियो काउंट दिखाएं" - }, - "shuffle": { - "message": "मिश्रण" - }, - "sidebar": { - "message": "साइडबार" - }, - "spacebar": { - "message": "स्पेस बार" - }, - "squaredUserImages": { - "message": "चुकता उपयोगकर्ता चित्र" - }, - "static": { - "message": "स्थिर" - }, - "step": { - "message": "चरण" - }, - "stop": { - "message": "रुकें" - }, - "style": { - "message": "अंदाज" - }, - "styles": { - "message": "शैलियाँ" - }, - "subscriptions": { - "message": "सदस्यता" - }, - "subtitles": { - "message": "उपशीर्षक" - }, - "sunset": { - "message": "सूर्यास्त" - }, - "sunsetToSunrise": { - "message": "सूर्योदय से सूर्यास्त" - }, - "systemPeferenceDark": { - "message": "सिस्टम प्राथमिकताएं: अंधेरा" - }, - "systemPeferenceLight": { - "message": "सिस्टम वरीयताएँ: प्रकाश" - }, - "teal": { - "message": "टील रंग" - }, - "textColor": { - "message": "लिखावट का रंग" - }, - "themes": { - "message": "विषय-वस्तु" - }, - "thisWillRemoveAllCookies": { - "message": "यह सभी कुकीज़ को हटा देगा।" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "यह सभी यूट्यूब कुकीज़ को हटा देगा।" - }, - "thisWillResetAllSettings": { - "message": "यह सभी सेटिंग्स को रीसेट कर देगा।" - }, - "thisWillResetAllShortcuts": { - "message": "यह सभी शॉर्टकट रीसेट कर देगा।" - }, - "thumbnails": { - "message": "थंबनेल" - }, - "timeFrom": { - "message": "से समय" - }, - "timeTo": { - "message": "समय पर" - }, - "todayAt": { - "message": "आज इस समय" - }, - "topChat": { - "message": "शीर्ष चैट" - }, - "trailerAutoplay": { - "message": "ट्रेलर ऑटोप्ले" - }, - "translations": { - "message": "अनुवाद" - }, - "transparentBackground": { - "message": "पारदर्शी पृष्ठभूमि" - }, - "trending": { - "message": "रुझान" - }, - "tryToReloadThePage": { - "message": "पृष्ठ को पुनः लोड करने का प्रयास करें" - }, - "type": { - "message": "टाइप" - }, - "upNextAutoplay": { - "message": "अगले ऑटोप्ले पर" - }, - "use24HourFormat": { - "message": "24-घंटे के प्रारूप का उपयोग करें" - }, - "version": { - "message": "संस्करण" - }, - "video": { - "message": "वीडियो" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "श्रेणी का नाम प्राप्त करने के लिए वीडियो विवरण का विस्तार किया जाएगा।" - }, - "videoFormats": { - "message": "वीडियो प्रारूप" - }, - "videos": { - "message": "वीडियो" - }, - "volume": { - "message": "ध्वनि" - }, - "watchLater": { - "message": "बाद में देखना" - }, - "watchTime": { - "message": "समय देखें" - }, - "whenTabIsChanged": { - "message": "जब टैब बदला जाता है" - }, - "white": { - "message": "सफेद" - }, - "yellow": { - "message": "पीला" - }, - "youtubeHeaderLeft": { - "message": "यूट्यूब हैडर (बाएं)" - }, - "youtubeHeaderRight": { - "message": "यूट्यूब हैडर (दाएं)" - }, - "youtubeHomePage": { - "message": "यूट्यूब होम पेज" - }, - "youtubeLanguage": { - "message": "यूट्यूब भाषा" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "यूट्यूब h.264 कोडेक के लिए वीडियो की गुणवत्ता 1080 पी तक सीमित है" - }, - "redDislikeButton": { - "message": "नापसंद बटन लाल रंग दिखाएं" - }, - "hideGradientBottom": { - "message": "ग्रेडिएंट बॉटम छुपाएं" - }, - "statsForNerds": { - "message": "डेवलपर के लिए आँकड़े दिखाएँ" - }, - "toggleCards": { - "message": "Toggle cards" - } -} - diff --git a/unstable/_locales/id/messages.json b/unstable/_locales/id/messages.json deleted file mode 100644 index 75f9af70b..000000000 --- a/unstable/_locales/id/messages.json +++ /dev/null @@ -1,806 +0,0 @@ -{ - "cropChapterTitles": { - "message": "Hilangkan judul babak" - }, - "about": { - "message": "Tentang" - }, - "accept": { - "message": "Terima" - }, - "activate": { - "message": "Aktifkan" - }, - "activateCaptions": { - "message": "Aktifkan keterangan" - }, - "activated": { - "message": "Diaktifkan" - }, - "activatedFeatures": { - "message": "Fitur diaktifkan" - }, - "activateFullscreen": { - "message": "Aktifkan layar penuh" - }, - "activeFeatures": { - "message": "Fitur yang aktif" - }, - "addScrollToTop": { - "message": "Tambah «Gulir ke atas»" - }, - "ads": { - "message": "Tampilkan iklan" - }, - "all": { - "message": "Semua" - }, - "allow": { - "message": "Izinkan" - }, - "allow60fps": { - "message": "Izinkan 60fps" - }, - "alwaysActive": { - "message": "Selalu aktif" - }, - "alwaysShowProgressBar": { - "message": "Selalu tampilkan progress bar" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analisa" - }, - "appearance": { - "message": "Tampilan" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Suara" - }, - "audioFormats": { - "message": "Format suara" - }, - "auto": { - "message": "Otomatis" - }, - "autoFullscreen": { - "message": "Layar penuh otomatis" - }, - "autopauseWhenSwitchingTabs": { - "message": "Jeda saat mengganti tab" - }, - "autoplay": { - "message": "Putar secara otomatis" - }, - "backupAndReset": { - "message": "Cadangkan & setel ulang" - }, - "baseOnSystemColorScheme": { - "message": "Berdasarkan skema warna sistem" - }, - "belowPlayer": { - "message": "Dibawah pemutar" - }, - "black": { - "message": "Hitam" - }, - "blacklist": { - "message": "Blokir" - }, - "blockAll": { - "message": "Blokir semua" - }, - "blue": { - "message": "Biru" - }, - "blueGray": { - "message": "Abu-abu biru" - }, - "bluelight": { - "message": "Cahaya biru" - }, - "brown": { - "message": "Coklat" - }, - "browser": { - "message": "Peramban" - }, - "browserVersion": { - "message": "Versi peramban" - }, - "bubbles": { - "message": "Gelembung" - }, - "bug": { - "message": "Masalah" - }, - "buttons": { - "message": "Tombol" - }, - "cancel": { - "message": "Batalkan" - }, - "categories": { - "message": "Kategori" - }, - "channel": { - "message": "Saluran" - }, - "channels": { - "message": "Saluran" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Tutup" - }, - "collapseOfSubscriptionSections": { - "message": "Tutup bagian berlangganan" - }, - "comments": { - "message": "Komentar" - }, - "confirmationBeforeClosing": { - "message": "Konfirmasi sebelum ditutup" - }, - "cookies": { - "message": "Kuki" - }, - "cores": { - "message": "Inti" - }, - "customCss": { - "message": "Kostum CSS" - }, - "customJs": { - "message": "Kostum JS" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Gelap" - }, - "darkTheme": { - "message": "Tema gelap" - }, - "dateAndTime": { - "message": "Tanggal dan waktu" - }, - "dawn": { - "message": "Fajar" - }, - "decreasePlaybackSpeed": { - "message": "Kurangi kecepatan pemutaran" - }, - "decreaseVolume": { - "message": "Kurangi suara" - }, - "deepOrange": { - "message": "Oranye tua" - }, - "deepPurple": { - "message": "Ungu tua" - }, - "defaultChannelTab": { - "message": "Tab saluran standar" - }, - "deleteYoutubeCookies": { - "message": "Hapus kuki youtube" - }, - "description": { - "message": "Deskripsi" - }, - "desert": { - "message": "Gurun" - }, - "details": { - "message": "Detail" - }, - "developerOptions": { - "message": "Opsi pengembang" - }, - "device": { - "message": "Perangkat" - }, - "dim": { - "message": "Redupkan" - }, - "disabled": { - "message": "Dinonaktifkan" - }, - "dislike": { - "message": "Tidak Suka" - }, - "donate": { - "message": "Donasi" - }, - "doNotChange": { - "message": "Jangan ubah" - }, - "draggable": { - "message": "Dapat diseret" - }, - "email": { - "message": "Surel" - }, - "empty": { - "message": "Kosong" - }, - "enabled": { - "message": "Aktifkan" - }, - "enabledForced": { - "message": "Aktifkan (paksa)" - }, - "expanded": { - "message": "Perluas" - }, - "exportSettings": { - "message": "Ekspor pengaturan" - }, - "extension": { - "message": "Ekstensi" - }, - "file": { - "message": "Berkas" - }, - "filters": { - "message": "Saringan" - }, - "fitToWindow": { - "message": "Sesuaikan dengan layar" - }, - "flash": { - "message": "Cahaya" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Catatan kaki" - }, - "forcedPlaybackSpeed": { - "message": "Paksa kecepatan pemutaran" - }, - "forcedTheaterMode": { - "message": "Paksa mode teater" - }, - "forcedVolume": { - "message": "Paksa suara" - }, - "foundABug": { - "message": "Menemukan masalah?" - }, - "fullWindow": { - "message": "Layar penuh" - }, - "general": { - "message": "Umum" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Ke kotak pencarian" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Hijau" - }, - "hdThumbnail": { - "message": "Gambar kecil HD" - }, - "hdThumbnails": { - "message": "Gambar kecil HD" - }, - "header": { - "message": "Kepala" - }, - "hidden": { - "message": "Sembunyikan" - }, - "hiddenOnVideoPage": { - "message": "Tersembunyi di halaman video" - }, - "hideAnimatedThumbnails": { - "message": "Sembunyikan animasi gambar kecil" - }, - "hideAnnotations": { - "message": "Sembunyikan penjelasan" - }, - "hideCards": { - "message": "Sembunyikan kartu" - }, - "hideDetails": { - "message": "Sembunyikan detail" - }, - "hideEndscreen": { - "message": "Sembunyikan layar akhir" - }, - "hideFeaturedContent": { - "message": "Sembunyikan konten unggulan" - }, - "hideFooter": { - "message": "Sembunyikan catatan kaki" - }, - "hidePlaylist": { - "message": "Sembunyikan daftar putar" - }, - "hideRightButtons": { - "message": "Sembunyikan tombol kanan" - }, - "hideScrollForDetails": { - "message": "Sembunyikan «gulir untuk detail»" - }, - "hideViewsCount": { - "message": "Sembunyikan jumlah penayangan" - }, - "history": { - "message": "Sejarah" - }, - "home": { - "message": "Beranda" - }, - "hover": { - "message": "Arahkan" - }, - "hoverOnVideoPage": { - "message": "Arahkan pada halaman video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Berapa lama video itu diunggah" - }, - "icons": { - "message": "Ikon" - }, - "iconsOnly": { - "message": "Ikon saja" - }, - "importSettings": { - "message": "Impor pengaturan" - }, - "improvedtubeIconInBrowser": { - "message": "Ikon ImprovedTube di peramban" - }, - "improvedtubeIconOnYoutube": { - "message": "Ikon ImprovedTube di YouTube" - }, - "improvedtubeLanguage": { - "message": "Bahasa ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versi ImprovedTube" - }, - "improveLogo": { - "message": "Tingkatkan kualitas logo" - }, - "increasePlaybackSpeed": { - "message": "Tingkatkan kecepatan pemutaran" - }, - "increaseVolume": { - "message": "Tingkatkan suara" - }, - "indigo": { - "message": "Nila" - }, - "items": { - "message": "Item" - }, - "languages": { - "message": "Bahasa" - }, - "legacyYoutube": { - "message": "YouTube lama" - }, - "light": { - "message": "Terang" - }, - "lightBlue": { - "message": "Biru terang" - }, - "lightGreen": { - "message": "Hijau terang" - }, - "like": { - "message": "Suka" - }, - "likes": { - "message": "Suka" - }, - "lime": { - "message": "Limau" - }, - "list": { - "message": "Daftar" - }, - "liveChat": { - "message": "Obrolan langsung" - }, - "liveChatType": { - "message": "Jenis obrolan langsung" - }, - "loudnessNormalization": { - "message": "Normalkan suara" - }, - "markWatchedVideos": { - "message": "Tandai video yang ditonton" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "Warna saya" - }, - "name": { - "message": "Nama" - }, - "nativeMiniPlayer": { - "message": "Pemutar kecil bawaan" - }, - "new": { - "message": "Baru" - }, - "nextVideo": { - "message": "Video selanjutnya" - }, - "night": { - "message": "Malam" - }, - "noActiveFeatures": { - "message": "Tidak ada fitur aktif" - }, - "none": { - "message": "Tidak ada" - }, - "noOpenVideoTabs": { - "message": "Tidak ada tab video terbuka" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Lama" - }, - "onAllVideos": { - "message": "Disetiap video" - }, - "onlyActiveOnYoutube": { - "message": "Hanya aktif di YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Hanya mainkan satu pemutar" - }, - "onSubscribedChannels": { - "message": "Di saluran berlangganan" - }, - "orange": { - "message": "Oranye" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Lainnya" - }, - "permissions": { - "message": "Perizinan" - }, - "pictureInPicture": { - "message": "Gambar di dalam gambar" - }, - "pink": { - "message": "Merah jambu" - }, - "plain": { - "message": "Dataran" - }, - "platform": { - "message": "Platform" - }, - "playbackSpeed": { - "message": "Kecepatan pemutar" - }, - "player": { - "message": "Pemutar" - }, - "playerColor": { - "message": "Warna pemutar" - }, - "playerSize": { - "message": "Ukuran pemutar" - }, - "playlist": { - "message": "Daftar putar" - }, - "playlists": { - "message": "Daftar putar" - }, - "playPause": { - "message": "Mulai / Jeda" - }, - "popupPlayer": { - "message": "Pemutar sembulan" - }, - "position": { - "message": "Posisi" - }, - "pressAnyKeyOrScroll": { - "message": "Tekan tombol apa saja atau gunakan roda mouse." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Tekan tombol apa saja atau gunakan roda mouse" - }, - "previousVideo": { - "message": "Video sebelumnya" - }, - "primaryColor": { - "message": "Warna utama" - }, - "purple": { - "message": "Ungu" - }, - "quality": { - "message": "Kualitas video" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Nilai Kami" - }, - "red": { - "message": "Merah" - }, - "relatedVideos": { - "message": "Video terkait" - }, - "removeRelatedSearchResults": { - "message": "Hapus hasil pencarian terkait" - }, - "repeat": { - "message": "Putar ulang" - }, - "reset": { - "message": "Setel ulang" - }, - "resetAllSettings": { - "message": "Setel ulang semua pengaturan" - }, - "resetAllShortcuts": { - "message": "Setel ulang semua pintasan" - }, - "reverse": { - "message": "Putar secara terbalik" - }, - "rotate": { - "message": "Putar" - }, - "save": { - "message": "Simpan" - }, - "saveAs": { - "message": "Simpan dengan" - }, - "schedule": { - "message": "Jadwal" - }, - "screen": { - "message": "Layar" - }, - "screenshot": { - "message": "Tangkapan layar" - }, - "search": { - "message": "Cari" - }, - "searchBarOnly": { - "message": "Hanya bilah pencarian" - }, - "seekBackward10Seconds": { - "message": "Mundur 10 detik" - }, - "seekForward10Seconds": { - "message": "Maju 10 detik" - }, - "settings": { - "message": "Pengaturan" - }, - "settingsSuccessfullyImported": { - "message": "Berhasil mengimpor pengaturan" - }, - "shortcuts": { - "message": "Pintasan" - }, - "showCardsOnMouseHover": { - "message": "Tunjukkan kartu pada arah mouse" - }, - "showChannelVideosCount": { - "message": "Tampilkan jumlah video saluran" - }, - "shuffle": { - "message": "Putar secara acak" - }, - "sidebar": { - "message": "Bilah samping" - }, - "spacebar": { - "message": "Bilah spasi" - }, - "squaredUserImages": { - "message": "Gambar pengguna kotak" - }, - "static": { - "message": "Statis" - }, - "step": { - "message": "Langkah" - }, - "stop": { - "message": "Berhenti" - }, - "style": { - "message": "Mode" - }, - "styles": { - "message": "Mode" - }, - "subscriptions": { - "message": "Berlangganan" - }, - "subtitles": { - "message": "Teks" - }, - "sunset": { - "message": "Senja" - }, - "sunsetToSunrise": { - "message": "Matahari terbenam hingga matahari terbit" - }, - "systemPeferenceDark": { - "message": "Preferensi sistem: gelap" - }, - "systemPeferenceLight": { - "message": "Preferensi sistem: terang" - }, - "teal": { - "message": "Hijau kebiruan" - }, - "textColor": { - "message": "Warna teks" - }, - "themes": { - "message": "Tema" - }, - "thisWillRemoveAllCookies": { - "message": "Ini akan menghapus semua kuki." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Ini akan menghapus semua kuki YouTube" - }, - "thisWillResetAllSettings": { - "message": "Ini akan mengatur ulang semua pengaturan." - }, - "thisWillResetAllShortcuts": { - "message": "Ini akan mengatur ulang semua pintasan" - }, - "thumbnails": { - "message": "Gambar kecil" - }, - "timeFrom": { - "message": "Waktu dari" - }, - "timeTo": { - "message": "Waktu ke" - }, - "todayAt": { - "message": "Hari ini di" - }, - "topChat": { - "message": "Obrolan teratas" - }, - "trailerAutoplay": { - "message": "Putar otomatis cuplikan" - }, - "translations": { - "message": "Terjemahan" - }, - "transparentBackground": { - "message": "Latar belakang transparan" - }, - "trending": { - "message": "Populer" - }, - "tryToReloadThePage": { - "message": "Coba muat ulang halaman" - }, - "type": { - "message": "Tipe" - }, - "upNextAutoplay": { - "message": "Putar otomatis berikutnya" - }, - "use24HourFormat": { - "message": "Gunakan format 24 jam" - }, - "version": { - "message": "Versi" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Deskripsi video akan diperluas untuk mendapatkan nama kategori" - }, - "videoFormats": { - "message": "Format video" - }, - "videos": { - "message": "Video" - }, - "volume": { - "message": "Suara" - }, - "watchLater": { - "message": "Tonton nanti" - }, - "watchTime": { - "message": "Waktu tayang" - }, - "whenTabIsChanged": { - "message": "Saat tab berubah" - }, - "white": { - "message": "Putih" - }, - "yellow": { - "message": "Kuning" - }, - "youtubeHeaderLeft": { - "message": "Kepala YouTube (kiri)" - }, - "youtubeHeaderRight": { - "message": "Kepala YouTube (kanan)" - }, - "youtubeHomePage": { - "message": "Beranda YouTube" - }, - "youtubeLanguage": { - "message": "Bahasa YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube membatasi kualitas video hingga 1080p untuk codec h.264" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "toggleCards": { - "message": "Toggle cards" - } -} diff --git a/unstable/_locales/it/messages.json b/unstable/_locales/it/messages.json deleted file mode 100644 index 6117426a9..000000000 --- a/unstable/_locales/it/messages.json +++ /dev/null @@ -1,806 +0,0 @@ -{ - "cropChapterTitles": { - "message": "Ritaglia titoli dei capitoli" - }, - "about": { - "message": "Al riguardo" - }, - "translations": { - "message": "Traduzioni" - }, - "customCss": { - "message": "CSS personalizzato" - }, - "myColors": { - "message": "Miei colori" - }, - "accept": { - "message": "Accetta" - }, - "activate": { - "message": "Attivo/a" - }, - "activateCaptions": { - "message": "Attiva didascalie" - }, - "activated": { - "message": "Attivato/a" - }, - "activatedFeatures": { - "message": "Funzionalità attivate" - }, - "activateFullscreen": { - "message": "Attiva schermo intero" - }, - "activeFeatures": { - "message": "Funzioni disponibili" - }, - "addScrollToTop": { - "message": "Aggiungi «Scorri in cima»" - }, - "ads": { - "message": "Pubblicità" - }, - "all": { - "message": "Tutte" - }, - "allow": { - "message": "Permetti" - }, - "allow60fps": { - "message": "Permetti 60 fps" - }, - "alwaysActive": { - "message": "Sempre attivo" - }, - "alwaysShowProgressBar": { - "message": "Mostra sempre barra di avanzamento" - }, - "amber": { - "message": "Ambra" - }, - "analyzer": { - "message": "Analizzatore" - }, - "appearance": { - "message": "Aspetto" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formati audio" - }, - "auto": { - "message": "Automatico" - }, - "autoFullscreen": { - "message": "Schermo intero automatico" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausa automatica al cambio scheda" - }, - "autoplay": { - "message": "Avvio automatico" - }, - "backupAndReset": { - "message": "Backup e reimpostazione" - }, - "baseOnSystemColorScheme": { - "message": "Basato sullo schema colore di sistema" - }, - "belowPlayer": { - "message": "Sotto il lettore" - }, - "black": { - "message": "Nero" - }, - "blacklist": { - "message": "Lista nera" - }, - "blockAll": { - "message": "Blocca tutte" - }, - "blue": { - "message": "Blu" - }, - "blueGray": { - "message": "Grigio blu" - }, - "bluelight": { - "message": "Luce blu" - }, - "brown": { - "message": "Marrone" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Versione browser" - }, - "bubbles": { - "message": "Bolle" - }, - "bug": { - "message": "Difetto" - }, - "buttons": { - "message": "Pulsanti" - }, - "cancel": { - "message": "Annulla" - }, - "categories": { - "message": "Categorie" - }, - "channel": { - "message": "Canale" - }, - "channels": { - "message": "Canali" - }, - "clipboard": { - "message": "Appunti" - }, - "codecH264": { - "message": "Codec H.264" - }, - "collapsed": { - "message": "Compressa/i" - }, - "collapseOfSubscriptionSections": { - "message": "Comprimi sezioni di sottoscrizione" - }, - "comments": { - "message": "Commenti" - }, - "confirmationBeforeClosing": { - "message": "Conferma prima della chiusura" - }, - "cookies": { - "message": "Cookie" - }, - "cores": { - "message": "Core" - }, - "customJs": { - "message": "JS personalizzato" - }, - "cyan": { - "message": "Ciano" - }, - "dark": { - "message": "Scuro" - }, - "darkTheme": { - "message": "Tema scuro" - }, - "dateAndTime": { - "message": "Data e ora" - }, - "dawn": { - "message": "Albeggio" - }, - "decreasePlaybackSpeed": { - "message": "Riduci velocità riproduzione" - }, - "decreaseVolume": { - "message": "Riduci volume" - }, - "deepOrange": { - "message": "Arancione profondo" - }, - "deepPurple": { - "message": "Viola profondo" - }, - "defaultChannelTab": { - "message": "Scheda predefinita canale" - }, - "deleteYoutubeCookies": { - "message": "Cancella cookie di YouTube" - }, - "description": { - "message": "Descrizione" - }, - "desert": { - "message": "Deserto" - }, - "details": { - "message": "Dettagli" - }, - "developerOptions": { - "message": "Opzioni per gli sviluppatori" - }, - "device": { - "message": "Dispositivo" - }, - "dim": { - "message": "Smorzamento" - }, - "disabled": { - "message": "Disabilitato" - }, - "dislike": { - "message": "Non gradire" - }, - "donate": { - "message": "Donare" - }, - "doNotChange": { - "message": "Non cambiare" - }, - "draggable": { - "message": "Trascinabile" - }, - "email": { - "message": "E-mail" - }, - "empty": { - "message": "Vuota" - }, - "enabled": { - "message": "Abilitato" - }, - "enabledForced": { - "message": "Abilitato (forzato)" - }, - "expanded": { - "message": "Estesa" - }, - "exportSettings": { - "message": "Esporta impostazioni" - }, - "extension": { - "message": "Estensione" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filtri" - }, - "fitToWindow": { - "message": "Adatta alla finestra" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Footer" - }, - "forcedPlaybackSpeed": { - "message": "Velocità riproduzione forzata" - }, - "forcedTheaterMode": { - "message": "Modalità cinema forzata" - }, - "forcedVolume": { - "message": "Volume forzato" - }, - "foundABug": { - "message": "Trovato un bug?" - }, - "fullWindow": { - "message": "Finestra intera" - }, - "general": { - "message": "Generale" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Vai alla casella di ricerca" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura in altà qualità" - }, - "hdThumbnails": { - "message": "Miniature in alta qualità" - }, - "header": { - "message": "Intestazione" - }, - "hidden": { - "message": "Nascosta/i" - }, - "hiddenOnVideoPage": { - "message": "Nascosta nella pagina video" - }, - "hideAnimatedThumbnails": { - "message": "Nascondi miniature animate" - }, - "hideAnnotations": { - "message": "Nascondi annotazioni" - }, - "hideCards": { - "message": "Nascondi tessere di fine video" - }, - "hideDetails": { - "message": "Nascondi dettagli" - }, - "hideEndscreen": { - "message": "Nascondi finale video" - }, - "hideFeaturedContent": { - "message": "Nascondi contenuti in primo piano" - }, - "hideFooter": { - "message": "Nascondi footer" - }, - "hidePlaylist": { - "message": "Nascondi playlist" - }, - "hideRightButtons": { - "message": "Nascondi pulsanti sulla destra" - }, - "hideScrollForDetails": { - "message": "Nascondi «Scorri per dettagli»" - }, - "hideViewsCount": { - "message": "Nascondi contatore visualizzazioni" - }, - "history": { - "message": "Cronologia" - }, - "home": { - "message": "Pagina iniziale" - }, - "hover": { - "message": "In sospensione" - }, - "hoverOnVideoPage": { - "message": "In sospensione sulla pagine del video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Quanto tempo fa il video è stato caricato" - }, - "icons": { - "message": "Icone" - }, - "iconsOnly": { - "message": "Solo icone" - }, - "importSettings": { - "message": "Importa impostazioni" - }, - "improvedtubeIconInBrowser": { - "message": "Icona ImprovedTube nel browser" - }, - "improvedtubeIconOnYoutube": { - "message": "Icona ImprovedTube su YouTube" - }, - "improvedtubeLanguage": { - "message": "Lingua ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versione ImprovedTube" - }, - "improveLogo": { - "message": "Migliora logo" - }, - "increasePlaybackSpeed": { - "message": "Aumenta velocità riproduzione" - }, - "increaseVolume": { - "message": "Aumenta volume" - }, - "indigo": { - "message": "Indaco" - }, - "items": { - "message": "Oggetti" - }, - "languages": { - "message": "Lingue" - }, - "legacyYoutube": { - "message": "YouTube versione legacy" - }, - "light": { - "message": "Chiaro" - }, - "lightBlue": { - "message": "Blu chiaro" - }, - "lightGreen": { - "message": "Verde chiaro" - }, - "like": { - "message": "Mi piace" - }, - "likes": { - "message": "Numero di Mi piace" - }, - "lime": { - "message": "Lime" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Chat dal vivo" - }, - "liveChatType": { - "message": "Tipologia chat dal vivo" - }, - "loudnessNormalization": { - "message": "Normalizzazione rumorosità" - }, - "markWatchedVideos": { - "message": "Contrassegna video visti" - }, - "customMiniPlayer": { - "message": "Mini lettore personalizzato" - }, - "mixer": { - "message": "Mixer" - }, - "name": { - "message": "Nome" - }, - "nativeMiniPlayer": { - "message": "Mini lettore nativo" - }, - "new": { - "message": "Nuovo" - }, - "nextVideo": { - "message": "Prossimo video" - }, - "night": { - "message": "Notte" - }, - "noActiveFeatures": { - "message": "Nessuna funzionalità attivata" - }, - "none": { - "message": "Alcuno/a" - }, - "noOpenVideoTabs": { - "message": "Nessuna scheda video aperta" - }, - "normal": { - "message": "Standard" - }, - "old": { - "message": "Vecchio" - }, - "onAllVideos": { - "message": "Su tutti i video" - }, - "onlyActiveOnYoutube": { - "message": "Attivo solo su YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Istanza unica di riproduzione attiva" - }, - "onSubscribedChannels": { - "message": "Su canali iscritti" - }, - "orange": { - "message": "Arancione" - }, - "os": { - "message": "Sistema operativo" - }, - "other": { - "message": "Altro" - }, - "permissions": { - "message": "Autorizzazioni" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Pianura" - }, - "platform": { - "message": "Piattaforma" - }, - "playbackSpeed": { - "message": "Velocità riproduzione" - }, - "player": { - "message": "Lettore" - }, - "playerColor": { - "message": "Colore lettore" - }, - "playerSize": { - "message": "Dimensione lettore" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlist" - }, - "playPause": { - "message": "Avvio / Pausa" - }, - "popupPlayer": { - "message": "Lettore pop-up" - }, - "position": { - "message": "Posizione" - }, - "pressAnyKeyOrScroll": { - "message": "Premere un qualunque tasto o scorrere" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Premere un qualunque tasto o usare rotella del mouse" - }, - "previousVideo": { - "message": "Video precedente" - }, - "primaryColor": { - "message": "Colore primario" - }, - "purple": { - "message": "Viola" - }, - "quality": { - "message": "Qualità" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Valutaci" - }, - "red": { - "message": "Rosso" - }, - "relatedVideos": { - "message": "Video correlati" - }, - "removeRelatedSearchResults": { - "message": "Rimuovi risultati di ricerca correlati" - }, - "repeat": { - "message": "Ripeti" - }, - "reset": { - "message": "Reimpostazione" - }, - "resetAllSettings": { - "message": "Reimposta tutte le impostazioni" - }, - "resetAllShortcuts": { - "message": "Reimposta tutte le scorciatoie" - }, - "reverse": { - "message": "Inverti" - }, - "rotate": { - "message": "Ruota" - }, - "save": { - "message": "Salva" - }, - "saveAs": { - "message": "Salva come" - }, - "schedule": { - "message": "Programmazione" - }, - "screen": { - "message": "Schermo" - }, - "screenshot": { - "message": "Screenshot" - }, - "search": { - "message": "Ricerca" - }, - "searchBarOnly": { - "message": "Cerca solamente nella barra" - }, - "seekBackward10Seconds": { - "message": "Muovi indietro 10 secondi" - }, - "seekForward10Seconds": { - "message": "Muovi avanti 10 secondi" - }, - "settings": { - "message": "Impostazioni" - }, - "settingsSuccessfullyImported": { - "message": "Impostazioni importate con successo" - }, - "shortcuts": { - "message": "Scorciatoie" - }, - "showCardsOnMouseHover": { - "message": "Mostra tessere di fine video al passaggio del mouse" - }, - "showChannelVideosCount": { - "message": "Mostra contatore visualizzazioni canale" - }, - "shuffle": { - "message": "Riproduzione casuale" - }, - "sidebar": { - "message": "Barra laterale" - }, - "spacebar": { - "message": "Barra spaziatrice" - }, - "squaredUserImages": { - "message": "Immagini utenti squadrate" - }, - "static": { - "message": "Statica" - }, - "stop": { - "message": "Arresto" - }, - "style": { - "message": "Stile" - }, - "styles": { - "message": "Stili" - }, - "subscriptions": { - "message": "Sottoscrizioni" - }, - "subtitles": { - "message": "Sottotitoli" - }, - "sunset": { - "message": "Tramonto" - }, - "sunsetToSunrise": { - "message": "Dal tramonto all'alba" - }, - "systemPeferenceDark": { - "message": "Preferenza di sistema: scuro" - }, - "systemPeferenceLight": { - "message": "Preferenza di sistema: chiaro" - }, - "teal": { - "message": "Verde acqua" - }, - "textColor": { - "message": "Colore testo" - }, - "themes": { - "message": "Temi" - }, - "thisWillRemoveAllCookies": { - "message": "Questo rimuoverà tutti i cookie" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Questo rimuoverà tutti i cookie di YouTube" - }, - "thisWillResetAllSettings": { - "message": "Questo rimuoverà tutte le impostazioni" - }, - "thisWillResetAllShortcuts": { - "message": "Questo Reimposterà tutte le scorciatoie" - }, - "thumbnails": { - "message": "Miniature" - }, - "timeFrom": { - "message": "Dalle ore" - }, - "timeTo": { - "message": "Alle ore" - }, - "todayAt": { - "message": "Oggi alle" - }, - "topChat": { - "message": "Chat superiore" - }, - "trailerAutoplay": { - "message": "Avvio automatico trailer" - }, - "transparentBackground": { - "message": "Sfondo trasparente" - }, - "trending": { - "message": "Di tendenza" - }, - "tryToReloadThePage": { - "message": "Provare a ricaricare la pagina" - }, - "type": { - "message": "Tipologia" - }, - "upNextAutoplay": { - "message": "Avvio automatico prossimo video" - }, - "use24HourFormat": { - "message": "Usa formato a 24 ore" - }, - "version": { - "message": "Numero versione" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La descrizione del video verrà espansa per ottenere il nome della categoria" - }, - "videoFormats": { - "message": "Formati video" - }, - "videos": { - "message": "Video" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Guarda più tardi" - }, - "watchTime": { - "message": "Tempo di visione" - }, - "whenTabIsChanged": { - "message": "Quando la scheda è cambiata" - }, - "white": { - "message": "Bianco" - }, - "yellow": { - "message": "Giallo" - }, - "youtubeHeaderLeft": { - "message": "Intestazione YouTube (sinistra)" - }, - "youtubeHeaderRight": { - "message": "Intestazione YouTube (destra)" - }, - "youtubeHomePage": { - "message": "Pagina iniziale YouTube" - }, - "youtubeLanguage": { - "message": "Lingua YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limita la qualità video a 1080p per il codec h.264" - }, - "redDislikeButton": { - "message": "Mostra pulsante Non mi piace in rosso" - }, - "hideGradientBottom": { - "message": "Nascondi fondo gradiente" - }, - "statsForNerds": { - "message": "Visualizza statistiche per nerd" - }, - "toggleCards": { - "message": "Dis/attiva tessere di fine video" - } -} diff --git a/unstable/_locales/ja/messages.json b/unstable/_locales/ja/messages.json deleted file mode 100644 index e145212e3..000000000 --- a/unstable/_locales/ja/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "cropChapterTitles": { - "message": "チャプターのタイトルをトリミングする" - }, - "about": { - "message": "このソフトについて" - }, - "accept": { - "message": "了解" - }, - "activate": { - "message": "有効にする" - }, - "activateCaptions": { - "message": "キャプションを有効にする" - }, - "activated": { - "message": "有効化" - }, - "activatedFeatures": { - "message": "有効化された機能" - }, - "activateFullscreen": { - "message": "全画面にする" - }, - "activeFeatures": { - "message": "機能の切り替え" - }, - "addScrollToTop": { - "message": "「一番上にスクロール」のボタンを追加する" - }, - "ads": { - "message": "広告" - }, - "all": { - "message": "すべて" - }, - "allow": { - "message": "許可" - }, - "allow60fps": { - "message": "60fpsを許可する" - }, - "alwaysActive": { - "message": "常に有効" - }, - "alwaysShowProgressBar": { - "message": "常にプログレスバーを表示する" - }, - "amber": { - "message": "アンバー" - }, - "analyzer": { - "message": "分析" - }, - "appearance": { - "message": "外観" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "音声" - }, - "audioFormats": { - "message": "音声形式" - }, - "auto": { - "message": "自動" - }, - "autoFullscreen": { - "message": "自動的に全画面にする" - }, - "autopauseWhenSwitchingTabs": { - "message": "タブ切り替えで自動的に一時停止" - }, - "autoplay": { - "message": "自動再生" - }, - "backupAndReset": { - "message": "バックアップとリセット" - }, - "baseOnSystemColorScheme": { - "message": "システムの色に合わせる" - }, - "belowPlayer": { - "message": "プレーヤーの下" - }, - "black": { - "message": "黒" - }, - "blacklist": { - "message": "ブラックリスト" - }, - "blockAll": { - "message": "すべてブロックする" - }, - "blue": { - "message": "青" - }, - "blueGray": { - "message": "青みがかった灰" - }, - "bluelight": { - "message": "ブルーライト" - }, - "brown": { - "message": "茶" - }, - "browser": { - "message": "ブラウザー" - }, - "browserVersion": { - "message": "ブラウザーのバージョン" - }, - "bubbles": { - "message": "バブル" - }, - "bug": { - "message": "バグ" - }, - "buttons": { - "message": "ボタン" - }, - "cancel": { - "message": "キャンセル" - }, - "categories": { - "message": "カテゴリー" - }, - "channel": { - "message": "チャンネル" - }, - "channels": { - "message": "チャンネル" - }, - "clipboard": { - "message": "クリップボード" - }, - "codecH264": { - "message": "H.264コーデック" - }, - "collapsed": { - "message": "畳む" - }, - "collapseOfSubscriptionSections": { - "message": "サブスクリプション部分を畳む" - }, - "comments": { - "message": "コメント" - }, - "confirmationBeforeClosing": { - "message": "閉じる前に確認する" - }, - "cookies": { - "message": "Cookie" - }, - "cores": { - "message": "コア数" - }, - "customCss": { - "message": "カスタム CSS" - }, - "customJs": { - "message": "カスタム JS" - }, - "cyan": { - "message": "シアン" - }, - "dark": { - "message": "ダーク" - }, - "darkTheme": { - "message": "ダークテーマ" - }, - "dateAndTime": { - "message": "日付と時刻" - }, - "dawn": { - "message": "夜明け" - }, - "decreasePlaybackSpeed": { - "message": "再生速度を下げる" - }, - "decreaseVolume": { - "message": "音量を下げる" - }, - "deepOrange": { - "message": "深いオレンジ" - }, - "deepPurple": { - "message": "深い紫" - }, - "defaultChannelTab": { - "message": "デフォルトのチャンネルタブ" - }, - "deleteYoutubeCookies": { - "message": "YouTube の Cookie を削除する" - }, - "description": { - "message": "説明" - }, - "desert": { - "message": "砂漠" - }, - "details": { - "message": "詳細" - }, - "developerOptions": { - "message": "開発者向けオプション" - }, - "device": { - "message": "デバイス" - }, - "dim": { - "message": "暗さ" - }, - "disabled": { - "message": "無効" - }, - "dislike": { - "message": "低評価" - }, - "donate": { - "message": "寄付する" - }, - "doNotChange": { - "message": "変更しない" - }, - "draggable": { - "message": "ドラッグ可能にする" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "なし" - }, - "enabled": { - "message": "有効" - }, - "enabledForced": { - "message": "有効 (強制)" - }, - "expanded": { - "message": "広げる" - }, - "exportSettings": { - "message": "設定をエクスポートする" - }, - "extension": { - "message": "拡張" - }, - "file": { - "message": "ファイル" - }, - "filters": { - "message": "フィルター" - }, - "fitToWindow": { - "message": "ウィンドウに合わせる" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "フォント" - }, - "footer": { - "message": "フッター" - }, - "forcedPlaybackSpeed": { - "message": "再生速度を指定する" - }, - "forcedTheaterMode": { - "message": "シアターモードにする" - }, - "forcedVolume": { - "message": "音量を指定する" - }, - "foundABug": { - "message": "バグ報告" - }, - "fullWindow": { - "message": "フルウィンドウ" - }, - "general": { - "message": "一般" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "検索ボックスに行く" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "緑" - }, - "hdThumbnail": { - "message": "HDサムネイル" - }, - "hdThumbnails": { - "message": "HDサムネイル" - }, - "header": { - "message": "ヘッダー" - }, - "hidden": { - "message": "隠す" - }, - "hiddenOnVideoPage": { - "message": "動画ページでは隠す" - }, - "hideAnimatedThumbnails": { - "message": "サムネイルのアニメーションを行わない" - }, - "hideAnnotations": { - "message": "アノテーションを隠す" - }, - "hideCards": { - "message": "カードを隠す" - }, - "hideDetails": { - "message": "詳細を隠す" - }, - "hideEndscreen": { - "message": "再生終了時の画面を隠す" - }, - "hideFeaturedContent": { - "message": "おすすめチャンネルを非表示にする" - }, - "hideFooter": { - "message": "フッターを隠す" - }, - "hidePlaylist": { - "message": "再生リストを隠す" - }, - "hideRightButtons": { - "message": "右ボタンを隠す" - }, - "hideScrollForDetails": { - "message": "「スクロールして詳細を表示」を隠す" - }, - "hideViewsCount": { - "message": "視聴数を隠す" - }, - "history": { - "message": "履歴" - }, - "home": { - "message": "ホーム" - }, - "hover": { - "message": "ホバー" - }, - "hoverOnVideoPage": { - "message": "動画ページではホバー" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "動画がアップロードされてからの時間" - }, - "icons": { - "message": "アイコン" - }, - "iconsOnly": { - "message": "アイコンのみ" - }, - "importSettings": { - "message": "設定をインポートする" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTubeアイコンをブラウザに表示する" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTubeアイコンをYouTubeに表示する" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube の言語" - }, - "improvedtubeVersion": { - "message": "ImprovedTube のバージョン" - }, - "improveLogo": { - "message": "ロゴを改良する" - }, - "increasePlaybackSpeed": { - "message": "再生速度を上げる" - }, - "increaseVolume": { - "message": "音量を上げる" - }, - "indigo": { - "message": "インディゴ" - }, - "items": { - "message": "アイテム" - }, - "languages": { - "message": "言語" - }, - "legacyYoutube": { - "message": "古い YouTube にする" - }, - "light": { - "message": "ライト" - }, - "lightBlue": { - "message": "薄い青" - }, - "lightGreen": { - "message": "薄い緑" - }, - "like": { - "message": "高評価" - }, - "likes": { - "message": "評価" - }, - "lime": { - "message": "ライム" - }, - "list": { - "message": "リスト" - }, - "liveChat": { - "message": "ライブチャット" - }, - "liveChatType": { - "message": "ライブチャットの種類" - }, - "loudnessNormalization": { - "message": "音量のノーマリゼーション" - }, - "markWatchedVideos": { - "message": "視聴した動画にマークを付ける" - }, - "customMiniPlayer": { - "message": "カスタムミニプレーヤー" - }, - "mixer": { - "message": "ミキサー" - }, - "myColors": { - "message": "色設定" - }, - "name": { - "message": "名前" - }, - "nativeMiniPlayer": { - "message": "ネイティブミニプレーヤー" - }, - "new": { - "message": "新規" - }, - "nextVideo": { - "message": "次の動画" - }, - "night": { - "message": "夜" - }, - "noActiveFeatures": { - "message": "有効化された機能がありません" - }, - "none": { - "message": "なし" - }, - "noOpenVideoTabs": { - "message": "開いている動画タブがありません" - }, - "normal": { - "message": "標準" - }, - "old": { - "message": "Old" - }, - "onAllVideos": { - "message": "すべて許可する" - }, - "onlyActiveOnYoutube": { - "message": "YouTube で有効" - }, - "onlyOnePlayerInstancePlaying": { - "message": "1つのプレーヤーインスタンスのみにする" - }, - "onSubscribedChannels": { - "message": "登録したチャンネルでは許可する" - }, - "orange": { - "message": "オレンジ" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "その他" - }, - "permissions": { - "message": "権限" - }, - "pictureInPicture": { - "message": "ピクチャーインピクチャー" - }, - "pink": { - "message": "ピンク" - }, - "plain": { - "message": "プレーン" - }, - "platform": { - "message": "プラットフォーム" - }, - "playbackSpeed": { - "message": "再生速度" - }, - "player": { - "message": "プレーヤー" - }, - "playerColor": { - "message": "プレーヤーの色" - }, - "playerSize": { - "message": "プレーヤーのサイズ" - }, - "playlist": { - "message": "再生リスト" - }, - "playlists": { - "message": "再生リスト" - }, - "playPause": { - "message": "再生/一時停止" - }, - "popupPlayer": { - "message": "ポップアッププレーヤー" - }, - "position": { - "message": "位置" - }, - "pressAnyKeyOrScroll": { - "message": "任意のキーを押すか、マウスホイールを使用してください" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "任意のキーを押すか、マウスホイールを使用してください" - }, - "previousVideo": { - "message": "前の動画" - }, - "primaryColor": { - "message": "全体の色" - }, - "purple": { - "message": "紫" - }, - "quality": { - "message": "画質" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "評価する" - }, - "red": { - "message": "赤" - }, - "relatedVideos": { - "message": "関連動画" - }, - "removeRelatedSearchResults": { - "message": "関連動画を検索結果から削除する" - }, - "repeat": { - "message": "リピート" - }, - "reset": { - "message": "リセット" - }, - "resetAllSettings": { - "message": "すべての設定をリセットする" - }, - "resetAllShortcuts": { - "message": "すべてのショートカットをリセットする" - }, - "reverse": { - "message": "逆順にする" - }, - "rotate": { - "message": "回転" - }, - "save": { - "message": "保存" - }, - "saveAs": { - "message": "別名で保存する" - }, - "schedule": { - "message": "スケジュール" - }, - "screen": { - "message": "スクリーン" - }, - "screenshot": { - "message": "スクリーンショット" - }, - "search": { - "message": "検索" - }, - "searchBarOnly": { - "message": "検索バーのみ" - }, - "seekBackward10Seconds": { - "message": "10秒戻る" - }, - "seekForward10Seconds": { - "message": "10秒進む" - }, - "settings": { - "message": "設定" - }, - "settingsSuccessfullyImported": { - "message": "設定を正常にインポートしました" - }, - "shortcuts": { - "message": "ショートカット" - }, - "showCardsOnMouseHover": { - "message": "マウスオーバーでカードを表示する" - }, - "showChannelVideosCount": { - "message": "チャンネルの動画数を表示する" - }, - "shuffle": { - "message": "シャッフル" - }, - "sidebar": { - "message": "サイドバー" - }, - "spacebar": { - "message": "スペースキー" - }, - "squaredUserImages": { - "message": "ユーザー画像を四角にする" - }, - "static": { - "message": "スタティック" - }, - "step": { - "message": "ステップ" - }, - "stop": { - "message": "停止" - }, - "style": { - "message": "スタイル" - }, - "styles": { - "message": "スタイル" - }, - "subscriptions": { - "message": "登録チャンネル" - }, - "subtitles": { - "message": "サブタイトル" - }, - "sunset": { - "message": "夕焼け" - }, - "sunsetToSunrise": { - "message": "夕焼けから日の出へ" - }, - "systemPeferenceDark": { - "message": "システム設定: ダーク" - }, - "systemPeferenceLight": { - "message": "システム設定: ライト" - }, - "teal": { - "message": "ティール" - }, - "textColor": { - "message": "文字の色" - }, - "themes": { - "message": "テーマ" - }, - "thisWillRemoveAllCookies": { - "message": "これはすべての Cookie を削除します。" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "YouTube のすべての Cookie を削除します" - }, - "thisWillResetAllSettings": { - "message": "すべての設定をリセットします。" - }, - "thisWillResetAllShortcuts": { - "message": "すべてのショートカットをリセットします" - }, - "thumbnails": { - "message": "サムネイル" - }, - "timeFrom": { - "message": "この時間から" - }, - "timeTo": { - "message": "この時間まで" - }, - "todayAt": { - "message": "測定時刻" - }, - "topChat": { - "message": "上位チャット" - }, - "trailerAutoplay": { - "message": "トレーラーを自動再生する" - }, - "translations": { - "message": "翻訳" - }, - "transparentBackground": { - "message": "透明な背景" - }, - "trending": { - "message": "急上昇" - }, - "tryToReloadThePage": { - "message": "ページをリロードしてみてください" - }, - "type": { - "message": "種類" - }, - "upNextAutoplay": { - "message": "次の動画を自動再生する" - }, - "use24HourFormat": { - "message": "24時間表示にする" - }, - "version": { - "message": "バージョン" - }, - "video": { - "message": "動画" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "動画の説明はカテゴリ名を取得するために広げられます" - }, - "videoFormats": { - "message": "動画形式" - }, - "videos": { - "message": "動画" - }, - "volume": { - "message": "音量" - }, - "watchLater": { - "message": "後で見る" - }, - "watchTime": { - "message": "視聴時間" - }, - "whenTabIsChanged": { - "message": "タブを変更したとき" - }, - "white": { - "message": "白" - }, - "yellow": { - "message": "黄" - }, - "youtubeHeaderLeft": { - "message": "YouTube のヘッダー左" - }, - "youtubeHeaderRight": { - "message": "YouTube のヘッダー右" - }, - "youtubeHomePage": { - "message": "YouTube のホームページ" - }, - "youtubeLanguage": { - "message": "YouTube の言語" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube はH.264コーデックの画質を1080pに制限しています" - }, - "redDislikeButton": { - "message": "低評価ボタンを赤色で表示する" - }, - "hideGradientBottom": { - "message": "グラデーションの下部を隠す" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "toggleCards": { - "message": "Toggle cards" - } -} diff --git a/unstable/_locales/ko/messages.json b/unstable/_locales/ko/messages.json deleted file mode 100644 index de0c78b91..000000000 --- a/unstable/_locales/ko/messages.json +++ /dev/null @@ -1,806 +0,0 @@ -{ - "cropChapterTitles": { - "message": "제목 자르기" - }, - "about": { - "message": "정보" - }, - "accept": { - "message": "동의" - }, - "activate": { - "message": "활성화" - }, - "activateCaptions": { - "message": "자막 활성화" - }, - "activated": { - "message": "활성화됨" - }, - "activatedFeatures": { - "message": "활성화된 기능" - }, - "activateFullscreen": { - "message": "전체화면 활성화" - }, - "activeFeatures": { - "message": "활성 기능" - }, - "addScrollToTop": { - "message": "<<맨위로>> 추가" - }, - "ads": { - "message": "광고" - }, - "all": { - "message": "모두" - }, - "allow": { - "message": "허용" - }, - "allow60fps": { - "message": "60에프피에스(fps) 허용" - }, - "alwaysActive": { - "message": "항상 활성화" - }, - "alwaysShowProgressBar": { - "message": "재생 진행 상태 항상 표시" - }, - "amber": { - "message": "호박색" - }, - "analyzer": { - "message": "분석" - }, - "appearance": { - "message": "외관" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "오디오" - }, - "audioFormats": { - "message": "오디오 형식" - }, - "auto": { - "message": "자동" - }, - "autoFullscreen": { - "message": "자동 전체화면" - }, - "autopauseWhenSwitchingTabs": { - "message": "탭전환시 자동 일시정지" - }, - "autoplay": { - "message": "자동재생" - }, - "backupAndReset": { - "message": "백업 & 리셋" - }, - "baseOnSystemColorScheme": { - "message": "시스템 색 구성표 기반" - }, - "belowPlayer": { - "message": "플레이어 아래" - }, - "black": { - "message": "검정" - }, - "blacklist": { - "message": "블랙리스트" - }, - "blockAll": { - "message": "모두 차단" - }, - "blue": { - "message": "파랑" - }, - "blueGray": { - "message": "블루그레이" - }, - "bluelight": { - "message": "블루라이트" - }, - "brown": { - "message": "갈색" - }, - "browser": { - "message": "브라우저" - }, - "browserVersion": { - "message": "브라우저 버전" - }, - "bubbles": { - "message": "버블" - }, - "bug": { - "message": "버그" - }, - "buttons": { - "message": "버튼" - }, - "cancel": { - "message": "취소" - }, - "categories": { - "message": "카테고리" - }, - "channel": { - "message": "채널" - }, - "channels": { - "message": "채널" - }, - "clipboard": { - "message": "클립보드" - }, - "codecH264": { - "message": "코덱 h.264" - }, - "collapsed": { - "message": "축소됨" - }, - "collapseOfSubscriptionSections": { - "message": "구독섹션 축소" - }, - "comments": { - "message": "댓글" - }, - "confirmationBeforeClosing": { - "message": "닫기전에 확인하기" - }, - "cookies": { - "message": "쿠키" - }, - "cores": { - "message": "코어" - }, - "customCss": { - "message": "사용자 지정 캐스캐이팅 스타일 시트(CSS)" - }, - "customJs": { - "message": "사용자 지정 자바스크립트(JS)" - }, - "cyan": { - "message": "옥색" - }, - "dark": { - "message": "다크" - }, - "darkTheme": { - "message": "다크 테마" - }, - "dateAndTime": { - "message": "날짜 & 시간" - }, - "dawn": { - "message": "석양" - }, - "decreasePlaybackSpeed": { - "message": "되감기 속도 감소" - }, - "decreaseVolume": { - "message": "볼륨 감소" - }, - "deepOrange": { - "message": "진한 주황" - }, - "deepPurple": { - "message": "진한 보라" - }, - "defaultChannelTab": { - "message": "기본 채널 탭" - }, - "deleteYoutubeCookies": { - "message": "유튜브 쿠키 삭제" - }, - "description": { - "message": "설명" - }, - "desert": { - "message": "사막" - }, - "details": { - "message": "자세히" - }, - "developerOptions": { - "message": "개발자 옵션" - }, - "device": { - "message": "기기" - }, - "dim": { - "message": "어둡게" - }, - "disabled": { - "message": "비활성화" - }, - "dislike": { - "message": "싫어요" - }, - "donate": { - "message": "후원하기" - }, - "doNotChange": { - "message": "바꾸지 않음" - }, - "draggable": { - "message": "드래그 가능" - }, - "email": { - "message": "이메일" - }, - "empty": { - "message": "비어있음" - }, - "enabled": { - "message": "활성화" - }, - "enabledForced": { - "message": "활성화 (강제)" - }, - "expanded": { - "message": "확장" - }, - "exportSettings": { - "message": "설정 내보내기" - }, - "extension": { - "message": "확대" - }, - "file": { - "message": "파일" - }, - "filters": { - "message": "필터" - }, - "fitToWindow": { - "message": "창크기에 맞추기" - }, - "flash": { - "message": "플래시" - }, - "font": { - "message": "글꼴" - }, - "footer": { - "message": "하단" - }, - "forcedPlaybackSpeed": { - "message": "되감기 속도 강제설정" - }, - "forcedTheaterMode": { - "message": "강제 영화관 모드" - }, - "forcedVolume": { - "message": "볼륨 강제설정" - }, - "foundABug": { - "message": "버그신고" - }, - "fullWindow": { - "message": "전체 화면" - }, - "general": { - "message": "일반" - }, - "github": { - "message": "깃허브(GitHub)" - }, - "goToSearchBox": { - "message": "검색창으로 이동" - }, - "gpu": { - "message": "그래픽 처리 장치" - }, - "green": { - "message": "초록" - }, - "hdThumbnail": { - "message": "HD 썸네일" - }, - "hdThumbnails": { - "message": "HD 썸네일" - }, - "header": { - "message": "헤더" - }, - "hidden": { - "message": "숨김" - }, - "hiddenOnVideoPage": { - "message": "비디오 페이지 숨기기" - }, - "hideAnimatedThumbnails": { - "message": "썸네일 애니메이션 숨기기" - }, - "hideAnnotations": { - "message": "설명 숨기기" - }, - "hideCards": { - "message": "카드 숨기기" - }, - "hideDetails": { - "message": "상세설명 숨기기" - }, - "hideEndscreen": { - "message": "종료후 화면 숨기기" - }, - "hideFeaturedContent": { - "message": "추천 영상 숨기기" - }, - "hideFooter": { - "message": "하단 숨기기" - }, - "hidePlaylist": { - "message": "재생 목록 숨기기" - }, - "hideRightButtons": { - "message": "오른쪽 버튼 숨기기" - }, - "hideScrollForDetails": { - "message": "«스크롤 하여 자세한 설명» 숨기기" - }, - "hideViewsCount": { - "message": "조회수 숨기기" - }, - "history": { - "message": "히스토리" - }, - "home": { - "message": "홈" - }, - "hover": { - "message": "띄우기" - }, - "hoverOnVideoPage": { - "message": "비디오 페이지 띄우기" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "업로드 시기" - }, - "icons": { - "message": "아이콘" - }, - "iconsOnly": { - "message": "아이콘만" - }, - "importSettings": { - "message": "설정 불러오기" - }, - "improvedtubeIconInBrowser": { - "message": "향상된 브라우저 아이콘" - }, - "improvedtubeIconOnYoutube": { - "message": "향상된 유튜브 아이콘" - }, - "improvedtubeLanguage": { - "message": "향상된 유튜브 언어" - }, - "improvedtubeVersion": { - "message": "향상된 유튜브 버전" - }, - "improveLogo": { - "message": "향상된 로고" - }, - "increasePlaybackSpeed": { - "message": "되감기 속도 증가" - }, - "increaseVolume": { - "message": "볼륨 증가" - }, - "indigo": { - "message": "남색" - }, - "items": { - "message": "요소" - }, - "languages": { - "message": "언어" - }, - "legacyYoutube": { - "message": "레거시 유튜브" - }, - "light": { - "message": "밝게" - }, - "lightBlue": { - "message": "연파랑" - }, - "lightGreen": { - "message": "연초록" - }, - "like": { - "message": "좋아요" - }, - "likes": { - "message": "좋아요" - }, - "lime": { - "message": "라임" - }, - "list": { - "message": "리스트" - }, - "liveChat": { - "message": "실시간 채팅" - }, - "liveChatType": { - "message": "실시간 채팅 유형" - }, - "loudnessNormalization": { - "message": "볼륨 자동조정" - }, - "markWatchedVideos": { - "message": "시청한 영상 표시" - }, - "customMiniPlayer": { - "message": "커스텀 미니플레이어" - }, - "mixer": { - "message": "믹서" - }, - "myColors": { - "message": "내 컬러" - }, - "name": { - "message": "이름" - }, - "nativeMiniPlayer": { - "message": "네이티브 미니플레이어" - }, - "new": { - "message": "새로운 소식" - }, - "nextVideo": { - "message": "다음 영상" - }, - "night": { - "message": "저녘" - }, - "noActiveFeatures": { - "message": "활성 기능 없음" - }, - "none": { - "message": "없음" - }, - "noOpenVideoTabs": { - "message": "열린 비디오 탭 없음" - }, - "normal": { - "message": "기본" - }, - "old": { - "message": "오래됨" - }, - "onAllVideos": { - "message": "모든 비디오" - }, - "onlyActiveOnYoutube": { - "message": "유튜브만 활성화" - }, - "onlyOnePlayerInstancePlaying": { - "message": "하나의 플레이어만 재생" - }, - "onSubscribedChannels": { - "message": "구독한 채널" - }, - "orange": { - "message": "주황" - }, - "os": { - "message": "운영체제" - }, - "other": { - "message": "기타" - }, - "permissions": { - "message": "권한" - }, - "pictureInPicture": { - "message": "픽처 인 픽처(PIP) 재생" - }, - "pink": { - "message": "분홍" - }, - "plain": { - "message": "무색" - }, - "platform": { - "message": "플랫폼" - }, - "playbackSpeed": { - "message": "되감기 속도" - }, - "player": { - "message": "플레이어" - }, - "playerColor": { - "message": "플레이어 컬러" - }, - "playerSize": { - "message": "플레이어 크기" - }, - "playlist": { - "message": "플레이리스트" - }, - "playlists": { - "message": "플레이리스트" - }, - "playPause": { - "message": "재생 / 일시정지" - }, - "popupPlayer": { - "message": "팝업 플레이어" - }, - "position": { - "message": "위치" - }, - "pressAnyKeyOrScroll": { - "message": "사용할 단축키 또는 마우스 휠을 누르세요." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "사용할 단축키 또는 마우스 휠을 누르세요." - }, - "previousVideo": { - "message": "이전 영상" - }, - "primaryColor": { - "message": "주 색상" - }, - "purple": { - "message": "보라" - }, - "quality": { - "message": "퀄리티" - }, - "ram": { - "message": "램" - }, - "rateUs": { - "message": "평가하기" - }, - "red": { - "message": "빨강" - }, - "relatedVideos": { - "message": "관련 영상" - }, - "removeRelatedSearchResults": { - "message": "관련 검색결과 제거" - }, - "repeat": { - "message": "반복" - }, - "reset": { - "message": "리셋" - }, - "resetAllSettings": { - "message": "모든 설정 리셋" - }, - "resetAllShortcuts": { - "message": "모든 단축키 리셋" - }, - "reverse": { - "message": "반대로" - }, - "rotate": { - "message": "회전" - }, - "save": { - "message": "저장" - }, - "saveAs": { - "message": "다른이름으로 저장" - }, - "schedule": { - "message": "스케줄" - }, - "screen": { - "message": "스크린" - }, - "screenshot": { - "message": "스크린샷" - }, - "search": { - "message": "검색" - }, - "searchBarOnly": { - "message": "검색창만" - }, - "seekBackward10Seconds": { - "message": "뒤로 10초" - }, - "seekForward10Seconds": { - "message": "앞으로 10초" - }, - "settings": { - "message": "설정" - }, - "settingsSuccessfullyImported": { - "message": "설정 내보내기 완료" - }, - "shortcuts": { - "message": "단축키" - }, - "showCardsOnMouseHover": { - "message": "마우스 올릴 때 카드보기" - }, - "showChannelVideosCount": { - "message": "채널의 비디오수 표시" - }, - "shuffle": { - "message": "셔플" - }, - "sidebar": { - "message": "사이드바" - }, - "spacebar": { - "message": "스페이스바" - }, - "squaredUserImages": { - "message": "정사각형 프로필사진" - }, - "static": { - "message": "고정" - }, - "step": { - "message": "스텝" - }, - "stop": { - "message": "정지" - }, - "style": { - "message": "스타일" - }, - "styles": { - "message": "스타일" - }, - "subscriptions": { - "message": "구독" - }, - "subtitles": { - "message": "자막" - }, - "sunset": { - "message": "일몰" - }, - "sunsetToSunrise": { - "message": "일몰부터 일출까지" - }, - "systemPeferenceDark": { - "message": "개인 설정: 다크" - }, - "systemPeferenceLight": { - "message": "개인 설정: 라이트" - }, - "teal": { - "message": "청록" - }, - "textColor": { - "message": "텍스트 색상" - }, - "themes": { - "message": "테마" - }, - "thisWillRemoveAllCookies": { - "message": "모든 쿠키를 삭제합니다." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "모든 유튜브 쿠키를 삭제합니다." - }, - "thisWillResetAllSettings": { - "message": "모든 설정을 초기화 합니다." - }, - "thisWillResetAllShortcuts": { - "message": "모든 단축키를 초기화 합니다." - }, - "thumbnails": { - "message": "썸네일" - }, - "timeFrom": { - "message": "다음시간 부터" - }, - "timeTo": { - "message": "다음시간 까지" - }, - "todayAt": { - "message": "오늘의" - }, - "topChat": { - "message": "탑 챗" - }, - "trailerAutoplay": { - "message": "트레일러 자동재생" - }, - "translations": { - "message": "번역" - }, - "transparentBackground": { - "message": "투명한 배경" - }, - "trending": { - "message": "인기" - }, - "tryToReloadThePage": { - "message": "새로고침을 시도하십시오" - }, - "type": { - "message": "타입" - }, - "upNextAutoplay": { - "message": "다음영상 자동재생" - }, - "use24HourFormat": { - "message": "24시간 형식 사용" - }, - "version": { - "message": "버젼" - }, - "video": { - "message": "영상" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "카테고리의 이름을 얻기 위해 비디오 설명이 확장됩니다" - }, - "videoFormats": { - "message": "비디오 형식" - }, - "videos": { - "message": "비디오" - }, - "volume": { - "message": "음량" - }, - "watchLater": { - "message": "나중에 보기" - }, - "watchTime": { - "message": "시간 보기" - }, - "whenTabIsChanged": { - "message": "탭이 바뀔때" - }, - "white": { - "message": "하양" - }, - "yellow": { - "message": "노랑" - }, - "youtubeHeaderLeft": { - "message": "유튜브 헤더 (왼쪽)" - }, - "youtubeHeaderRight": { - "message": "유튜브 헤더 (오른쪽)" - }, - "youtubeHomePage": { - "message": "유튜브 홈페이지" - }, - "youtubeLanguage": { - "message": "유튜브 언어" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "유튜브는 h.264 코덱에서 비디오 품질을 1080p로 제한합니다" - }, - "hideGradientBottom": { - "message": "그라데이션 맨 아래로 숨기기" - }, - "statsForNerds": { - "message": "너드 통계 표시" - }, - "toggleCards": { - "message": "토글 카드" - } -} diff --git a/unstable/_locales/nb_NO/messages.json b/unstable/_locales/nb_NO/messages.json deleted file mode 100644 index 6460c93e6..000000000 --- a/unstable/_locales/nb_NO/messages.json +++ /dev/null @@ -1,812 +0,0 @@ -{ - "cropChapterTitles": { - "message": "Beskjær kapitteltitler" - }, - "about": { - "message": "Om" - }, - "accept": { - "message": "aksepter" - }, - "activate": { - "message": "Aktiver" - }, - "activateCaptions": { - "message": "Aktiver underteksting" - }, - "activated": { - "message": "Aktivert" - }, - "activatedFeatures": { - "message": "Aktiverte funksjoner" - }, - "activateFullscreen": { - "message": "Aktiver fullskjerm" - }, - "activeFeatures": { - "message": "Aktive funksjoner" - }, - "addScrollToTop": { - "message": "Legg til «Rull til toppen»" - }, - "ads": { - "message": "Reklamer" - }, - "all": { - "message": "Alle" - }, - "allow": { - "message": "Tillat" - }, - "allow60fps": { - "message": "Tillat 60 bps" - }, - "alwaysActive": { - "message": "Alltid aktiv" - }, - "alwaysShowProgressBar": { - "message": "Alltid vis fremdriftslinje" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analysator" - }, - "appearance": { - "message": "Utseende" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Lyd" - }, - "audioFormats": { - "message": "Lydformater" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-fullskjerm" - }, - "autopauseWhenSwitchingTabs": { - "message": "Autopause når du bytter faner" - }, - "autoplay": { - "message": "Autoplay" - }, - "backupAndReset": { - "message": "Sikkerhetskopiering og tilbakestilling" - }, - "baseOnSystemColorScheme": { - "message": "Baser på systemfargevalg" - }, - "belowPlayer": { - "message": "Nedenfor avspiller" - }, - "black": { - "message": "Svart" - }, - "blacklist": { - "message": "Svartelist" - }, - "blockAll": { - "message": "Blokker alle" - }, - "blue": { - "message": "Blå" - }, - "blueGray": { - "message": "Blågrå" - }, - "bluelight": { - "message": "Blålys" - }, - "brown": { - "message": "Brun" - }, - "browser": { - "message": "Nettleser" - }, - "browserVersion": { - "message": "Nettleser-versjon" - }, - "bubbles": { - "message": "Bobler" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Knapper" - }, - "cancel": { - "message": "Avbryt" - }, - "categories": { - "message": "Kategorier" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanaler" - }, - "clipboard": { - "message": "Utklippstavle" - }, - "codecH264": { - "message": "H.264-kodek" - }, - "collapsed": { - "message": "kollapset" - }, - "collapseOfSubscriptionSections": { - "message": "Kollaps av abonnementsdelene" - }, - "comments": { - "message": "Kommentarer" - }, - "confirmationBeforeClosing": { - "message": "Bekreftelse før stenging" - }, - "cookies": { - "message": "Informasjonskapslene" - }, - "cores": { - "message": "Kjerner" - }, - "customCss": { - "message": "Tilpasset CSS" - }, - "customJs": { - "message": "Tilpasset JS" - }, - "cyan": { - "message": "Blålilla" - }, - "dark": { - "message": "Mørk" - }, - "darkTheme": { - "message": "Mørk drakt" - }, - "dateAndTime": { - "message": "Dato og klokkeslett" - }, - "dawn": { - "message": "Soloppgang" - }, - "decreasePlaybackSpeed": { - "message": "Reduser avspillingshastighet" - }, - "decreaseVolume": { - "message": "Reduser lydstyrken" - }, - "deepOrange": { - "message": "Dyporansje" - }, - "deepPurple": { - "message": "Mørkelilla" - }, - "defaultChannelTab": { - "message": "Forvalgt kanalfane" - }, - "deleteYoutubeCookies": { - "message": "Slett YouTube-informasjonskapsler" - }, - "description": { - "message": "Beskrivelse" - }, - "desert": { - "message": "Ørken" - }, - "details": { - "message": "Detaljer" - }, - "developerOptions": { - "message": "Utviklermuligheter" - }, - "device": { - "message": "Enhet" - }, - "dim": { - "message": "Dim" - }, - "disabled": { - "message": "Avslått" - }, - "dislike": { - "message": "Mislik" - }, - "donate": { - "message": "Doner" - }, - "doNotChange": { - "message": "Ikke endre" - }, - "draggable": { - "message": "Flyttbare" - }, - "email": { - "message": "E-post" - }, - "empty": { - "message": "Tom" - }, - "enabled": { - "message": "Aktivert" - }, - "enabledForced": { - "message": "Aktivert (tvunget)" - }, - "expanded": { - "message": "Utvidet" - }, - "exportSettings": { - "message": "Eksporter innstillinger" - }, - "extension": { - "message": "Utvidelse" - }, - "file": { - "message": "Fil" - }, - "filters": { - "message": "Filtre" - }, - "fitToWindow": { - "message": "Tilpass til vindu" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Bunntekst" - }, - "forcedPlaybackSpeed": { - "message": "Tvungen avspillingshastighet" - }, - "forcedTheaterMode": { - "message": "Tvunget teater-modus" - }, - "forcedVolume": { - "message": "Tvunget lydstyrke" - }, - "foundABug": { - "message": "Fant du en feil?" - }, - "fullWindow": { - "message": "Fullt vindu" - }, - "general": { - "message": "Generelt" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Gå til søkefeltet" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Grønn" - }, - "hdThumbnail": { - "message": "HD-miniatyrbilde" - }, - "hdThumbnails": { - "message": "HD-miniatyrbilder" - }, - "header": { - "message": "Overskrift" - }, - "hidden": { - "message": "Skjult" - }, - "hiddenOnVideoPage": { - "message": "Skjult på videosiden" - }, - "hideAnimatedThumbnails": { - "message": "Skjul animerte miniatyrbilder" - }, - "hideAnnotations": { - "message": "Skjul annoteringer" - }, - "hideCards": { - "message": "Skjul kort" - }, - "hideDetails": { - "message": "Skjul detaljer" - }, - "hideEndscreen": { - "message": "Skjul sluttskjerm" - }, - "hideFeaturedContent": { - "message": "Skjul omtalt innhold" - }, - "hideFooter": { - "message": "Skjul bunntekst" - }, - "hidePlaylist": { - "message": "Skjul spilleliste" - }, - "hideRightButtons": { - "message": "Skjul høyre-knapper" - }, - "hideScrollForDetails": { - "message": "Skjul «Bla for detaljer»" - }, - "hideViewsCount": { - "message": "Skjul visningsteller" - }, - "history": { - "message": "Historie" - }, - "home": { - "message": "Hjem" - }, - "hover": { - "message": "Hold" - }, - "hoverOnVideoPage": { - "message": "Hold musepekeren på videosiden" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Hvor lenge siden videoen ble opplastet" - }, - "icons": { - "message": "Ikoner" - }, - "iconsOnly": { - "message": "Kun ikoner" - }, - "importSettings": { - "message": "Importer innstillinger" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube-ikonet i nettleseren" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube-ikonet på YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube-språk" - }, - "improvedtubeVersion": { - "message": "ImprovedTube-versjon" - }, - "improveLogo": { - "message": "Forbedre logo" - }, - "increasePlaybackSpeed": { - "message": "Øk avspillingshastigheten" - }, - "increaseVolume": { - "message": "Øk lydstyrken" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Elementer" - }, - "languages": { - "message": "Språk" - }, - "legacyYoutube": { - "message": "Gammeldags YouTube" - }, - "light": { - "message": "Lys" - }, - "lightBlue": { - "message": "Lyseblå" - }, - "lightGreen": { - "message": "Lysegrønn" - }, - "like": { - "message": "Gunst" - }, - "likes": { - "message": "Begunstninger" - }, - "lime": { - "message": "Lime" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Sanntidssludring" - }, - "liveChatType": { - "message": "Sanntidssludringstype" - }, - "loudnessNormalization": { - "message": "Lydstyrkenormalisering" - }, - "markWatchedVideos": { - "message": "Marker sette videoer" - }, - "customMiniPlayer": { - "message": "Egendefinert miniavspiller" - }, - "mixer": { - "message": "Mikser" - }, - "myColors": { - "message": "Mine farger" - }, - "name": { - "message": "Navn" - }, - "nativeMiniPlayer": { - "message": "Innebygd miniavspiller" - }, - "new": { - "message": "Ny" - }, - "nextVideo": { - "message": "Neste video" - }, - "night": { - "message": "Natt" - }, - "noActiveFeatures": { - "message": "Ingen aktive funksjoner" - }, - "none": { - "message": "Ingen" - }, - "noOpenVideoTabs": { - "message": "Ingen åpne videofaner" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Gammel" - }, - "onAllVideos": { - "message": "På alle videoer" - }, - "onlyActiveOnYoutube": { - "message": "Kun aktiv på YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Kun én avspiller viser noe" - }, - "onSubscribedChannels": { - "message": "På abonnementskanaler" - }, - "orange": { - "message": "Oransje" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Andre" - }, - "permissions": { - "message": "rettigheter" - }, - "pictureInPicture": { - "message": "Bilde-i-bilde" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Vanlig" - }, - "platform": { - "message": "Plattform" - }, - "playbackSpeed": { - "message": "Avspillingshastighet" - }, - "player": { - "message": "Avspiller" - }, - "playerColor": { - "message": "Avspiller-farge" - }, - "playerSize": { - "message": "Avspiller-størrelse" - }, - "playlist": { - "message": "Spilleliste" - }, - "playlists": { - "message": "Spillelister" - }, - "playPause": { - "message": "Spill / Pause" - }, - "popupPlayer": { - "message": "Oppsprettsspiller" - }, - "position": { - "message": "Posisjon" - }, - "pressAnyKeyOrScroll": { - "message": "Trykk på hvilken som helst tast, eller bruk musehjulet." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Trykk på hvilken som helst tast, eller bruk musehjulet" - }, - "previousVideo": { - "message": "Forrige video" - }, - "primaryColor": { - "message": "Hovedfarge" - }, - "purple": { - "message": "Lilla" - }, - "quality": { - "message": "Kvalitet" - }, - "ram": { - "message": "Minne" - }, - "rateUs": { - "message": "Rangere oss" - }, - "red": { - "message": "Rød" - }, - "relatedVideos": { - "message": "Relaterte videoer" - }, - "removeRelatedSearchResults": { - "message": "Fjern relaterte søkeresultater" - }, - "repeat": { - "message": "Gjenta" - }, - "reset": { - "message": "Tilbakestill" - }, - "resetAllSettings": { - "message": "Tilbakestill alle instillinger" - }, - "resetAllShortcuts": { - "message": "Tilbakestill alle snarveier" - }, - "reverse": { - "message": "Omvendt" - }, - "rotate": { - "message": "Roter" - }, - "save": { - "message": "Lagre" - }, - "saveAs": { - "message": "Lagre som" - }, - "schedule": { - "message": "Tidsplan" - }, - "screen": { - "message": "Skjerm" - }, - "screenshot": { - "message": "Skjeravbildning" - }, - "search": { - "message": "Søk" - }, - "searchBarOnly": { - "message": "Bare søkefelt" - }, - "seekBackward10Seconds": { - "message": "Spol 10 sekunder bakover" - }, - "seekForward10Seconds": { - "message": "Spol 10 sekunder fremover" - }, - "settings": { - "message": "Innstillinger" - }, - "settingsSuccessfullyImported": { - "message": "Innstillinger importert" - }, - "shortcuts": { - "message": "Snarveier" - }, - "showCardsOnMouseHover": { - "message": "Vis kort på musepekeren" - }, - "showChannelVideosCount": { - "message": "Vis antall kanaler" - }, - "shuffle": { - "message": "Tilfeldig rekkefølge" - }, - "sidebar": { - "message": "Sidepanel" - }, - "spacebar": { - "message": "Mellomrom" - }, - "squaredUserImages": { - "message": "Kvadratiske brukerbilder" - }, - "static": { - "message": "Statisk" - }, - "step": { - "message": "Steg" - }, - "stop": { - "message": "Stopp" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stiler" - }, - "subscriptions": { - "message": "Abonnementer" - }, - "subtitles": { - "message": "Undertekster" - }, - "sunset": { - "message": "Solnedgang" - }, - "sunsetToSunrise": { - "message": "Solnedgang til soloppgang" - }, - "systemPeferenceDark": { - "message": "Systeminnstillinger: mørk" - }, - "systemPeferenceLight": { - "message": "Systeminnstillinger: lys" - }, - "teal": { - "message": "Blågrønn" - }, - "textColor": { - "message": "Tekstfarge" - }, - "themes": { - "message": "Drakter" - }, - "thisWillRemoveAllCookies": { - "message": "Dette vil fjerne alle informasjonskapsler." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Dette vil fjerne alle YouTube-informasjonskapsler" - }, - "thisWillResetAllSettings": { - "message": "Dette vil tilbakestille alle innstillinger." - }, - "thisWillResetAllShortcuts": { - "message": "Dette vil tilbakestille alle snarveier" - }, - "thumbnails": { - "message": "miniatyrbilder " - }, - "timeFrom": { - "message": "Fra" - }, - "timeTo": { - "message": "Til" - }, - "todayAt": { - "message": "I dag kl." - }, - "topChat": { - "message": "Hovedsludring" - }, - "trailerAutoplay": { - "message": "Trailer autospilling" - }, - "translations": { - "message": "Oversettelser" - }, - "transparentBackground": { - "message": "Gjennomsiktig bakgrunn" - }, - "trending": { - "message": "Trender" - }, - "tryToReloadThePage": { - "message": "Forsøk å laste inn siden på nytt" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "«Spilles senere»-autospilling" - }, - "use24HourFormat": { - "message": "Bruk 24-timersformat" - }, - "version": { - "message": "Versjon" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Videobeskrivelsen vil bli utvidet for å få med navnet på kategorien" - }, - "videoFormats": { - "message": "Video-formater" - }, - "videos": { - "message": "Videoer" - }, - "volume": { - "message": "Lydstyrke" - }, - "watchLater": { - "message": "Se senere" - }, - "watchTime": { - "message": "Tid sett" - }, - "whenTabIsChanged": { - "message": "Når fanen endres" - }, - "white": { - "message": "Hvit" - }, - "yellow": { - "message": "Gul" - }, - "youtubeHeaderLeft": { - "message": "YouTube-topptekst (til venstre)" - }, - "youtubeHeaderRight": { - "message": "YouTube-topptekst (til høyre)" - }, - "youtubeHomePage": { - "message": "YouTube-startside" - }, - "youtubeLanguage": { - "message": "YouTube-språk" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube begrenser videokvaliteten til 1080p for H.264-kodeket" - }, - "redDislikeButton": { - "message": "Vis tommel ned i rød farge" - }, - "hideGradientBottom": { - "message": "Skjul bunn-fargeovergang" - }, - "statsForNerds": { - "message": "Vis statistikk for nerder" - }, - "toggleCards": { - "message": "Veksle kort" - }, - "geoPreference": { - "message": "Geo-preferanse" - } -} diff --git a/unstable/_locales/nl/messages.json b/unstable/_locales/nl/messages.json deleted file mode 100644 index ea3fedfe3..000000000 --- a/unstable/_locales/nl/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "about": { - "message": "Over" - }, - "accept": { - "message": "Accepteren" - }, - "activate": { - "message": "Activeren" - }, - "activateCaptions": { - "message": "Activeer bijschriften" - }, - "activated": { - "message": "Geactiveerd" - }, - "activatedFeatures": { - "message": "Geactiveerde features" - }, - "activateFullscreen": { - "message": "Activeer volledig scherm" - }, - "activeFeatures": { - "message": "Actieve features" - }, - "addScrollToTop": { - "message": "Voeg «Scroll to top» toe" - }, - "ads": { - "message": "Reclames" - }, - "all": { - "message": "Alles" - }, - "allow": { - "message": "Toestaan" - }, - "allow60fps": { - "message": "60fps toestaan" - }, - "alwaysActive": { - "message": "Altijd actief" - }, - "alwaysShowProgressBar": { - "message": "Altijd voortgangsbalk laten zien" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analyse" - }, - "appearance": { - "message": "Uiterlijk" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio formaten" - }, - "auto": { - "message": "Automatisch" - }, - "autoFullscreen": { - "message": "Automatisch volledig scherm" - }, - "autopauseWhenSwitchingTabs": { - "message": "Automatisch pauzeren bij het wisselen van tabbladen" - }, - "autoplay": { - "message": "Automatisch afspelen" - }, - "backupAndReset": { - "message": "Backup maken & reseten" - }, - "baseOnSystemColorScheme": { - "message": "Baseer op kleurenschema van systeem" - }, - "belowPlayer": { - "message": "Onder de speler" - }, - "black": { - "message": "Zwart" - }, - "blacklist": { - "message": "Zwarte lijst" - }, - "blockAll": { - "message": "Alles blokkeren" - }, - "blue": { - "message": "Blauw" - }, - "blueGray": { - "message": "Blauw grijs" - }, - "bluelight": { - "message": "Blauw licht" - }, - "brown": { - "message": "Bruin" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser versie" - }, - "bubbles": { - "message": "Bubbels" - }, - "bug": { - "message": "Insect" - }, - "buttons": { - "message": "Knoppen" - }, - "cancel": { - "message": "Annuleren" - }, - "categories": { - "message": "Categoriën" - }, - "channel": { - "message": "Kanaal" - }, - "channels": { - "message": "Kanalen" - }, - "clipboard": { - "message": "Klembord" - }, - "codecH264": { - "message": "Encoderen in h.264" - }, - "collapsed": { - "message": "Ingeklapt" - }, - "collapseOfSubscriptionSections": { - "message": "Uitklappen van abonnee sectie" - }, - "comments": { - "message": "Reacties" - }, - "confirmationBeforeClosing": { - "message": "Bevestiging voor sluiten" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Kernen" - }, - "customCss": { - "message": "Aangepaste CSS" - }, - "customJs": { - "message": "Aangepaste JS" - }, - "cyan": { - "message": "Cyaan" - }, - "dark": { - "message": "Donker" - }, - "darkTheme": { - "message": "Donker thema" - }, - "dateAndTime": { - "message": "Datum & tijd" - }, - "dawn": { - "message": "Morgenrood" - }, - "decreasePlaybackSpeed": { - "message": "Verminder afspeelsnelheid" - }, - "decreaseVolume": { - "message": "Verminder volume" - }, - "deepOrange": { - "message": "Donker oranje" - }, - "deepPurple": { - "message": "donker aars" - }, - "defaultChannelTab": { - "message": "Standaard kanaaltabblad" - }, - "deleteYoutubeCookies": { - "message": "YouTube-cookies verwijderen" - }, - "description": { - "message": "Beschrijving" - }, - "desert": { - "message": "Woestijn" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Ontwikkelaarsopties" - }, - "device": { - "message": "Apparaat" - }, - "dim": { - "message": "Dimmen" - }, - "disabled": { - "message": "Uitgeschakeld" - }, - "dislike": { - "message": "Niet leuk vinden" - }, - "donate": { - "message": "Doneer" - }, - "doNotChange": { - "message": "Niet aanpassen" - }, - "draggable": { - "message": "Sleepbaar" - }, - "email": { - "message": "E-mail" - }, - "empty": { - "message": "Leeg" - }, - "enabled": { - "message": "Ingeschakeld" - }, - "enabledForced": { - "message": "Ingeschakeld (geforceerd)" - }, - "expanded": { - "message": "Uitgeklapt" - }, - "exportSettings": { - "message": "Instellingen exporteren" - }, - "extension": { - "message": "Extensie" - }, - "file": { - "message": "Bestand" - }, - "filters": { - "message": "Filters" - }, - "fitToWindow": { - "message": "Aanpassen aan vensterbreedte" - }, - "flash": { - "message": "Flits" - }, - "font": { - "message": "Lettertype" - }, - "footer": { - "message": "Voettekst" - }, - "forcedPlaybackSpeed": { - "message": "Afspeelsnelheid afdwingen" - }, - "forcedTheaterMode": { - "message": "Altijd theatermodus gebruiken" - }, - "forcedVolume": { - "message": "Volume afdwingen" - }, - "foundABug": { - "message": "Heb je een bug gevonden?" - }, - "fullWindow": { - "message": "Volledige venstergrootte" - }, - "general": { - "message": "Algemeen" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Ga naar de zoekbalk" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Groen" - }, - "hdThumbnail": { - "message": "HD-miniatuurvoorbeeld" - }, - "hdThumbnails": { - "message": "HD-miniatuurvoorbeelden" - }, - "header": { - "message": "Kop" - }, - "hidden": { - "message": "Verborgen" - }, - "hiddenOnVideoPage": { - "message": "Verborgen op videopagina" - }, - "hideAnimatedThumbnails": { - "message": "Geen bewegende miniatuurvoorbeelden" - }, - "hideAnnotations": { - "message": "Verberg annotaties" - }, - "hideCards": { - "message": "Verberg kaarten" - }, - "hideDetails": { - "message": "Verberg details" - }, - "hideEndscreen": { - "message": "Verberg eindscherm" - }, - "hideFeaturedContent": { - "message": "Verberg uitgelichte inhoud" - }, - "hideFooter": { - "message": "Verberg voettekst" - }, - "hidePlaylist": { - "message": "Verberg afspeellijst" - }, - "hideRightButtons": { - "message": "Verberg rechter knoppen" - }, - "hideScrollForDetails": { - "message": "Verberg «Scroll for details»" - }, - "hideViewsCount": { - "message": "Verberg views teller" - }, - "history": { - "message": "Geschiedenis" - }, - "home": { - "message": "Thuis" - }, - "hover": { - "message": "Overzweven met cursor" - }, - "hoverOnVideoPage": { - "message": "Overzweven met cursor op videopagina" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Uploaddatum tonen" - }, - "icons": { - "message": "Iconen" - }, - "iconsOnly": { - "message": "Alleen pictogrammen" - }, - "importSettings": { - "message": "Instellingen importeren" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube-pictogram in browser" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icoon op YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube taal" - }, - "improvedtubeVersion": { - "message": "ImprovedTube versie" - }, - "improveLogo": { - "message": "YouTube-logo verbeteren" - }, - "increasePlaybackSpeed": { - "message": "Verhoog afspeelsnelheid" - }, - "increaseVolume": { - "message": "Verhoog volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Talen" - }, - "legacyYoutube": { - "message": "Oude YouTube-uiterlijk" - }, - "light": { - "message": "Licht" - }, - "lightBlue": { - "message": "Licht blauw" - }, - "lightGreen": { - "message": "Licht groen" - }, - "like": { - "message": "Vind ik leuk" - }, - "likes": { - "message": "Vind-ik-leuks" - }, - "lime": { - "message": "Limoen" - }, - "list": { - "message": "Lijst" - }, - "liveChat": { - "message": "Live berichtenvenster" - }, - "liveChatType": { - "message": "Live berichtenvenster type" - }, - "loudnessNormalization": { - "message": "Volume normaliseren" - }, - "markWatchedVideos": { - "message": "Merk bekeken videos aan" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "Mijn kleuren" - }, - "name": { - "message": "Naam" - }, - "nativeMiniPlayer": { - "message": "Ingebouwde minispeler" - }, - "new": { - "message": "Nieuw" - }, - "nextVideo": { - "message": "Volgende video afspelen" - }, - "night": { - "message": "Nacht" - }, - "noActiveFeatures": { - "message": "Geen actieve features" - }, - "none": { - "message": "Geen" - }, - "noOpenVideoTabs": { - "message": "Geen openstaande videotabbladen" - }, - "normal": { - "message": "Normaal" - }, - "old": { - "message": "Oud" - }, - "onAllVideos": { - "message": "Bij alle videos" - }, - "onlyActiveOnYoutube": { - "message": "Alleen actief op YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Slechts één actieve speler toestaan" - }, - "onSubscribedChannels": { - "message": "Op geabonneerde kanalen" - }, - "orange": { - "message": "Oranje" - }, - "os": { - "message": "Besturingssysteem" - }, - "other": { - "message": "Anders" - }, - "permissions": { - "message": "Machtigingen" - }, - "pictureInPicture": { - "message": "Afbeelding-in-Afbeelding" - }, - "pink": { - "message": "Roze" - }, - "plain": { - "message": "Vlakte" - }, - "platform": { - "message": "Platform" - }, - "playbackSpeed": { - "message": "Afspeelsnelheid" - }, - "player": { - "message": "Speler" - }, - "playerColor": { - "message": "Spelerkleur" - }, - "playerSize": { - "message": "Spelergrootte" - }, - "playlist": { - "message": "Afspeellijst" - }, - "playlists": { - "message": "Afspeellijsten" - }, - "playPause": { - "message": "Video afspelen/pauzeren" - }, - "popupPlayer": { - "message": "Pop-upspeler" - }, - "position": { - "message": "Positie" - }, - "pressAnyKeyOrScroll": { - "message": "Druk op een toets of muiswiel." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Druk op een toets of gebruik muiswiel" - }, - "previousVideo": { - "message": "Vorige video afspelen" - }, - "primaryColor": { - "message": "Primaire kleur" - }, - "purple": { - "message": "Paars" - }, - "quality": { - "message": "Kwaliteit" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Geef ons een beoordeling" - }, - "red": { - "message": "Rood" - }, - "relatedVideos": { - "message": "Gerelateerde video's" - }, - "removeRelatedSearchResults": { - "message": "Verwijder resultaten van gerelateerde videos" - }, - "repeat": { - "message": "Herhalen" - }, - "reset": { - "message": "Herstel" - }, - "resetAllSettings": { - "message": "Standaardwaarden herstellen" - }, - "resetAllShortcuts": { - "message": "Herstel alle snelkoppelingen" - }, - "reverse": { - "message": "Omdraaien" - }, - "rotate": { - "message": "Draaien" - }, - "save": { - "message": "Opslaan" - }, - "saveAs": { - "message": "Opslaan als" - }, - "schedule": { - "message": "Schema" - }, - "screen": { - "message": "Beeldscherm" - }, - "screenshot": { - "message": "Schermafbeelding" - }, - "search": { - "message": "Zoeken" - }, - "searchBarOnly": { - "message": "Alleen zoekbalk" - }, - "seekBackward10Seconds": { - "message": "Zoek 10 seconde terug" - }, - "seekForward10Seconds": { - "message": "Zoek 10 seconde naar voren" - }, - "settings": { - "message": "Instellingen" - }, - "settingsSuccessfullyImported": { - "message": "Instellingen succesvol geïmporteerd" - }, - "shortcuts": { - "message": "Sneltoetsen" - }, - "showCardsOnMouseHover": { - "message": "Laat kaarten zien onder muisaanwijzer" - }, - "showChannelVideosCount": { - "message": "Aantal kanaalvideo's tonen" - }, - "shuffle": { - "message": "Willekeurig" - }, - "sidebar": { - "message": "Zijbalk" - }, - "spacebar": { - "message": "Spatiebalk" - }, - "squaredUserImages": { - "message": "Vierkante gebruikersafbeeldingen" - }, - "static": { - "message": "Statisch" - }, - "step": { - "message": "Stap" - }, - "stop": { - "message": "Stoppen" - }, - "style": { - "message": "Stijl" - }, - "styles": { - "message": "Stijlen" - }, - "subscriptions": { - "message": "Abonnementen" - }, - "subtitles": { - "message": "Ondertiteling tonen" - }, - "sunset": { - "message": "Zonsondergang" - }, - "sunsetToSunrise": { - "message": "Zonsondergang tot zonsopkomst" - }, - "systemPeferenceDark": { - "message": "Systeem voorkeur: donker" - }, - "systemPeferenceLight": { - "message": "Systeem voorkeur: licht" - }, - "teal": { - "message": "Groenblauw" - }, - "textColor": { - "message": "Tekst kleur" - }, - "themes": { - "message": "Thema's" - }, - "thisWillRemoveAllCookies": { - "message": "Dit verwijdert alle cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Dit verwijdert alle YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "Dit herstelt alle instellingen." - }, - "thisWillResetAllShortcuts": { - "message": "Dit herstelt alle snelkoppelingen" - }, - "thumbnails": { - "message": "Miniatuurvoorbeelden" - }, - "timeFrom": { - "message": "Tijd vanaf" - }, - "timeTo": { - "message": "Tijd tot" - }, - "todayAt": { - "message": "Vandaag om" - }, - "topChat": { - "message": "Top-chat" - }, - "trailerAutoplay": { - "message": "Trailer automatisch afspelen" - }, - "translations": { - "message": "vertalingen" - }, - "transparentBackground": { - "message": "Doorzichtige achtergrond" - }, - "trending": { - "message": "Populair" - }, - "tryToReloadThePage": { - "message": "Probeer de pagina te herladen" - }, - "type": { - "message": "Soort" - }, - "upNextAutoplay": { - "message": "Volgende in wachtrij automatisch afspelen" - }, - "use24HourFormat": { - "message": "24-uurstijd gebruiken" - }, - "version": { - "message": "Versie" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video omschrijving wordt uitgeklapt om de naam van de categorie te verkrijgen" - }, - "videoFormats": { - "message": "Video formaten" - }, - "videos": { - "message": "Video's" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Later bekijken" - }, - "watchTime": { - "message": "Kijk tijd" - }, - "whenTabIsChanged": { - "message": "Wanneer het tabblat veranderd" - }, - "white": { - "message": "Wit" - }, - "yellow": { - "message": "Geel" - }, - "youtubeHeaderLeft": { - "message": "YouTube-kop (links)" - }, - "youtubeHeaderRight": { - "message": "YouTube-kop (rechts)" - }, - "youtubeHomePage": { - "message": "YouTube-startpagina" - }, - "youtubeLanguage": { - "message": "YouTube taal" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limiteerd video kwaliteit tot 1080p voor h.264 codec" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "toggleCards": { - "message": "Toggle cards" - } -} diff --git a/unstable/_locales/pt_BR/messages.json b/unstable/_locales/pt_BR/messages.json deleted file mode 100644 index e827be780..000000000 --- a/unstable/_locales/pt_BR/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "about": { - "message": "Sobre" - }, - "accept": { - "message": "Accept" - }, - "activate": { - "message": "Activate" - }, - "activateCaptions": { - "message": "Ativar legendas" - }, - "activated": { - "message": "Activated" - }, - "activatedFeatures": { - "message": "Activated features" - }, - "activateFullscreen": { - "message": "Ativar tela cheia" - }, - "activeFeatures": { - "message": "Funções ativas" - }, - "addScrollToTop": { - "message": "Habilitar botão «Voltar ao Topo»" - }, - "ads": { - "message": "Anúncios" - }, - "all": { - "message": "All" - }, - "allow": { - "message": "Permitir" - }, - "allow60fps": { - "message": "Permitir 60fps" - }, - "alwaysActive": { - "message": "Sempre ativo" - }, - "alwaysShowProgressBar": { - "message": "Sempre exibir a barra de progresso" - }, - "amber": { - "message": "Âmbar" - }, - "analyzer": { - "message": "Analítico" - }, - "appearance": { - "message": "Aparência" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Áudio" - }, - "audioFormats": { - "message": "Formatos de áudio" - }, - "auto": { - "message": "Automático" - }, - "autoFullscreen": { - "message": "Tela cheia automática" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausar vídeo ao alternar entre abas" - }, - "autoplay": { - "message": "Reprodução automática" - }, - "backupAndReset": { - "message": "Backup & Restauração" - }, - "baseOnSystemColorScheme": { - "message": "Baseado nas cores do sistema" - }, - "belowPlayer": { - "message": "Abaixo do player" - }, - "black": { - "message": "Preto" - }, - "blacklist": { - "message": "Lista negra" - }, - "blockAll": { - "message": "Bloquear tudo" - }, - "blue": { - "message": "Azul" - }, - "blueGray": { - "message": "Cinza Azulado" - }, - "bluelight": { - "message": "Filtrar luz azul" - }, - "brown": { - "message": "Marrom" - }, - "browser": { - "message": "Navegador" - }, - "browserVersion": { - "message": "Versão do navegador" - }, - "bubbles": { - "message": "Bolhas" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Botões" - }, - "cancel": { - "message": "Cancelar" - }, - "categories": { - "message": "Categorias" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canais" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Retraído" - }, - "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" - }, - "comments": { - "message": "Comentários" - }, - "confirmationBeforeClosing": { - "message": "Alerta ao fechar a página" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Núcleos" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Custom JS" - }, - "cyan": { - "message": "Ciano" - }, - "dark": { - "message": "Obscuro" - }, - "darkTheme": { - "message": "Tema escuro" - }, - "dateAndTime": { - "message": "Data & Hora" - }, - "dawn": { - "message": "Alvorecer" - }, - "decreasePlaybackSpeed": { - "message": "Diminuir velocidade" - }, - "decreaseVolume": { - "message": "Diminuir volume" - }, - "deepOrange": { - "message": "Laranja Escuro" - }, - "deepPurple": { - "message": "Roxo Escuro" - }, - "defaultChannelTab": { - "message": "Aba padrão do canal" - }, - "deleteYoutubeCookies": { - "message": "Deletar cookies do YouTube" - }, - "description": { - "message": "Descrição" - }, - "desert": { - "message": "Deserto" - }, - "details": { - "message": "Detalhes" - }, - "developerOptions": { - "message": "Developer options" - }, - "device": { - "message": "Dispositivo" - }, - "dim": { - "message": "Escurecer" - }, - "disabled": { - "message": "Desabilitado" - }, - "dislike": { - "message": "Não Gostei." - }, - "donate": { - "message": "Doar" - }, - "doNotChange": { - "message": "Não alterar" - }, - "draggable": { - "message": "Arrastável" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Vazio" - }, - "enabled": { - "message": "Habilitado" - }, - "enabledForced": { - "message": "Enabled (forced)" - }, - "expanded": { - "message": "Expandido" - }, - "exportSettings": { - "message": "Exportar configurações" - }, - "extension": { - "message": "Extensão" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filtros" - }, - "fitToWindow": { - "message": "Ajustar à janela" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Rodapé" - }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, - "forcedTheaterMode": { - "message": "Forçar modo teatro" - }, - "forcedVolume": { - "message": "Forçar volume" - }, - "foundABug": { - "message": "Encontrou um bug?" - }, - "fullWindow": { - "message": "Preencher a janela" - }, - "general": { - "message": "Geral" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Selecionar barra de pesquisa" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura em HD" - }, - "hdThumbnails": { - "message": "Miniaturas em HD" - }, - "header": { - "message": "Cabeçalho" - }, - "hidden": { - "message": "Oculto" - }, - "hiddenOnVideoPage": { - "message": "Oculto na página de vídeo" - }, - "hideAnimatedThumbnails": { - "message": "Desabilitar miniaturas animadas" - }, - "hideAnnotations": { - "message": "Ocultar anotações" - }, - "hideCards": { - "message": "Ocultar cards" - }, - "hideDetails": { - "message": "Ocultar detalhes" - }, - "hideEndscreen": { - "message": "Ocultar tela final" - }, - "hideFeaturedContent": { - "message": "Ocultar conteúdo em destaque" - }, - "hideFooter": { - "message": "Ocultar rodapé" - }, - "hidePlaylist": { - "message": "Ocultar playlist" - }, - "hideRightButtons": { - "message": "Ocultar botões à direita" - }, - "hideScrollForDetails": { - "message": "Ocultar «Rolar Para Ver Detalhes»" - }, - "hideViewsCount": { - "message": "Ocultar visualizações" - }, - "history": { - "message": "Histórico" - }, - "home": { - "message": "Início" - }, - "hover": { - "message": "Retrátil" - }, - "hoverOnVideoPage": { - "message": "Retrátil na página de video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Tempo decorrido desde a publicação" - }, - "icons": { - "message": "Ícones" - }, - "iconsOnly": { - "message": "Apenas ícones" - }, - "importSettings": { - "message": "Importar configurações" - }, - "improvedtubeIconInBrowser": { - "message": "Ícone do ImprovedTube no navegador" - }, - "improvedtubeIconOnYoutube": { - "message": "Ícone do ImprovedTube no YouTube" - }, - "improvedtubeLanguage": { - "message": "Idioma do ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versão do ImprovedTube" - }, - "improveLogo": { - "message": "Aprimorar logomarca" - }, - "increasePlaybackSpeed": { - "message": "Aumentar velocidade" - }, - "increaseVolume": { - "message": "Diminuir volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Itens" - }, - "languages": { - "message": "Idiomas" - }, - "legacyYoutube": { - "message": "YouTube antigo" - }, - "light": { - "message": "Claro" - }, - "lightBlue": { - "message": "Azul Claro" - }, - "lightGreen": { - "message": "Verde Claro" - }, - "like": { - "message": "Gostei!" - }, - "likes": { - "message": "Avaliações" - }, - "lime": { - "message": "Verde Limão" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Bate-Papo Ao Vivo" - }, - "liveChatType": { - "message": "Live chat type" - }, - "loudnessNormalization": { - "message": "Normalização de volume" - }, - "markWatchedVideos": { - "message": "Mark watched videos" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "My colors" - }, - "name": { - "message": "Nome" - }, - "nativeMiniPlayer": { - "message": "Mini player nativo" - }, - "new": { - "message": "Novo" - }, - "nextVideo": { - "message": "Próximo vídeo" - }, - "night": { - "message": "Noite" - }, - "noActiveFeatures": { - "message": "No active features" - }, - "none": { - "message": "Nenhum" - }, - "noOpenVideoTabs": { - "message": "Nenhuma aba de vídeo aberta" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Antigo" - }, - "onAllVideos": { - "message": "Em todos os vídeos" - }, - "onlyActiveOnYoutube": { - "message": "Ativo apenas no YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "onSubscribedChannels": { - "message": "Apenas em inscrições" - }, - "orange": { - "message": "Laranja" - }, - "os": { - "message": "Sistema Operacional" - }, - "other": { - "message": "Outras opções" - }, - "permissions": { - "message": "Permissões" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Panície" - }, - "platform": { - "message": "Plataforma" - }, - "playbackSpeed": { - "message": "Velocidade de reprodução" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Cor do player" - }, - "playerSize": { - "message": "Tamanho do player" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "playPause": { - "message": "Reproduzir / Pausar" - }, - "popupPlayer": { - "message": "Player externo" - }, - "position": { - "message": "Posição" - }, - "pressAnyKeyOrScroll": { - "message": "Pressione qualquer tecla ou use a roda do mouse" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Pressione qualquer tecla ou use a roda do mouse" - }, - "previousVideo": { - "message": "Vídeo anterior" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "Roxo" - }, - "quality": { - "message": "Qualidade" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Avalie-nos!" - }, - "red": { - "message": "Vermelho" - }, - "relatedVideos": { - "message": "Vídeos relacionados" - }, - "removeRelatedSearchResults": { - "message": "Remove related search results" - }, - "repeat": { - "message": "Repetir" - }, - "reset": { - "message": "Restaurar" - }, - "resetAllSettings": { - "message": "Restaurar todas as configurações" - }, - "resetAllShortcuts": { - "message": "Reset all shortcuts" - }, - "reverse": { - "message": "Reverso" - }, - "rotate": { - "message": "Rotacionar" - }, - "save": { - "message": "Salvar" - }, - "saveAs": { - "message": "Salvar como" - }, - "schedule": { - "message": "Agendamento" - }, - "screen": { - "message": "Tela" - }, - "screenshot": { - "message": "Captura de tela" - }, - "search": { - "message": "Pesquisar" - }, - "searchBarOnly": { - "message": "Apenas barra de pesquisa" - }, - "seekBackward10Seconds": { - "message": "Retroceder 10 segundos" - }, - "seekForward10Seconds": { - "message": "Avançar 10 segundos" - }, - "settings": { - "message": "Configurações" - }, - "settingsSuccessfullyImported": { - "message": "Configurações importadas com sucesso" - }, - "shortcuts": { - "message": "Atalhos" - }, - "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" - }, - "showChannelVideosCount": { - "message": "Número de vídeos do canal" - }, - "shuffle": { - "message": "Aleatório" - }, - "sidebar": { - "message": "Painel lateral" - }, - "spacebar": { - "message": "Espaço" - }, - "squaredUserImages": { - "message": "Avatares quadrados" - }, - "static": { - "message": "Estático" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Parar" - }, - "style": { - "message": "Estilo" - }, - "styles": { - "message": "Estilos" - }, - "subscriptions": { - "message": "Inscrições" - }, - "subtitles": { - "message": "Legendas" - }, - "sunset": { - "message": "Pôr do Sol" - }, - "sunsetToSunrise": { - "message": "Durante a noite" - }, - "systemPeferenceDark": { - "message": "Preferência do sistema: Escuro" - }, - "systemPeferenceLight": { - "message": "Preferência do sistema: Claro" - }, - "teal": { - "message": "Verde Azulado" - }, - "textColor": { - "message": "Text color" - }, - "themes": { - "message": "Temas" - }, - "thisWillRemoveAllCookies": { - "message": "Todos os cookies serão removidos." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Todos os cookies do YouTube serão removidos" - }, - "thisWillResetAllSettings": { - "message": "As configurações padrão serão restauradas." - }, - "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" - }, - "thumbnails": { - "message": "Miniaturas" - }, - "timeFrom": { - "message": "Horário inicial" - }, - "timeTo": { - "message": "Horário final" - }, - "todayAt": { - "message": "Hoje às" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Reproduzir trailer" - }, - "translations": { - "message": "Translations" - }, - "transparentBackground": { - "message": "Fundo transparente" - }, - "trending": { - "message": "Em Alta" - }, - "tryToReloadThePage": { - "message": "Recarregue a página" - }, - "type": { - "message": "Tipo" - }, - "upNextAutoplay": { - "message": "Reproduzir vídeo em seguida" - }, - "use24HourFormat": { - "message": "Usar formato de 24 horas" - }, - "version": { - "message": "Versão" - }, - "video": { - "message": "Vídeo" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "A descrição se expandirá para acessar a categoria do vídeo" - }, - "videoFormats": { - "message": "Formatos de vídeo" - }, - "videos": { - "message": "Vídeos" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Assistir mais tarde" - }, - "watchTime": { - "message": "Tempo de exibição" - }, - "whenTabIsChanged": { - "message": "Quando alternar entre abas" - }, - "white": { - "message": "Branco" - }, - "yellow": { - "message": "Amarelo" - }, - "youtubeHeaderLeft": { - "message": "No cabeçalho à esquerda" - }, - "youtubeHeaderRight": { - "message": "No cabeçalho à direita" - }, - "youtubeHomePage": { - "message": "Página inicial do YouTube" - }, - "youtubeLanguage": { - "message": "Idioma do YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "O YouTube limita o codec h.264 à resolução de 1080p" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "toggleCards": { - "message": "Toggle cards" - } -} diff --git a/unstable/_locales/pt_PT/messages.json b/unstable/_locales/pt_PT/messages.json deleted file mode 100644 index 9512d77e2..000000000 --- a/unstable/_locales/pt_PT/messages.json +++ /dev/null @@ -1,810 +0,0 @@ - -{ - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "about": { - "message": "Acerca" - }, - "accept": { - "message": "Aceitar" - }, - "activate": { - "message": "Ativar" - }, - "activateCaptions": { - "message": "Ativar legendas" - }, - "activated": { - "message": "Ativado" - }, - "activatedFeatures": { - "message": "Opções ativadas" - }, - "activateFullscreen": { - "message": "Ativar ecrã completo" - }, - "activeFeatures": { - "message": "Opções ativas" - }, - "addScrollToTop": { - "message": "Adicionar «Ir para o topo»" - }, - "ads": { - "message": "Anúncios" - }, - "all": { - "message": "Todas" - }, - "allow": { - "message": "Permitir" - }, - "allow60fps": { - "message": "Permitir 60fps" - }, - "alwaysActive": { - "message": "Sempre ativo" - }, - "alwaysShowProgressBar": { - "message": "Mostrar sempre a barra de progressos" - }, - "amber": { - "message": "Âmbar" - }, - "analyzer": { - "message": "Analisador" - }, - "appearance": { - "message": "Aparência" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Áudio" - }, - "audioFormats": { - "message": "Formatos de áudio" - }, - "auto": { - "message": "Automático" - }, - "autoFullscreen": { - "message": "Ecrân completo automático" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausa quando muda de abas" - }, - "autoplay": { - "message": "Reprodução automática" - }, - "backupAndReset": { - "message": "Cópia de segurança e repor" - }, - "baseOnSystemColorScheme": { - "message": "Baseado no esquema de cores do sistema" - }, - "belowPlayer": { - "message": "Reprodutor abaixo" - }, - "black": { - "message": "Preto" - }, - "blacklist": { - "message": "Lista negra" - }, - "blockAll": { - "message": "Bloquear todos" - }, - "blue": { - "message": "Azul" - }, - "blueGray": { - "message": "Azul acizentado" - }, - "bluelight": { - "message": "Azul claro" - }, - "brown": { - "message": "Castanho" - }, - "browser": { - "message": "Navegador" - }, - "browserVersion": { - "message": "Versão do navegador" - }, - "bubbles": { - "message": "Bolhas" - }, - "bug": { - "message": "Erro" - }, - "buttons": { - "message": "Botões" - }, - "cancel": { - "message": "Cancelar" - }, - "categories": { - "message": "Categorias" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canais" - }, - "clipboard": { - "message": "Area de transferência" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Extender" - }, - "collapseOfSubscriptionSections": { - "message": "Extender as secções escolhidas" - }, - "comments": { - "message": "Comentários" - }, - "confirmationBeforeClosing": { - "message": "Confirmar antes de encerrar" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "customCss": { - "message": "CSS personalizadas" - }, - "customJs": { - "message": "JS personalizadas" - }, - "cyan": { - "message": "Esverdeado" - }, - "dark": { - "message": "Escuro" - }, - "darkTheme": { - "message": "Tema escuro" - }, - "dateAndTime": { - "message": "Data & hora" - }, - "dawn": { - "message": "Escurecer" - }, - "decreasePlaybackSpeed": { - "message": "Diminuir velocidade de leitura" - }, - "decreaseVolume": { - "message": "Diminuir volume" - }, - "deepOrange": { - "message": "Laranja forte" - }, - "deepPurple": { - "message": "Lilás forte" - }, - "defaultChannelTab": { - "message": "Aba padrão do canal" - }, - "deleteYoutubeCookies": { - "message": "Apagar os cookies do YouTube" - }, - "description": { - "message": "Descrição" - }, - "desert": { - "message": "Deserto" - }, - "details": { - "message": "Detalhes" - }, - "developerOptions": { - "message": "Opções de programador" - }, - "device": { - "message": "Aparelho" - }, - "dim": { - "message": "Escurecer" - }, - "disabled": { - "message": "Desabilitado" - }, - "dislike": { - "message": "Não gostar" - }, - "donate": { - "message": "Doar" - }, - "doNotChange": { - "message": "Não mudes" - }, - "draggable": { - "message": "Podes arrastar" - }, - "email": { - "message": "Correio electronico" - }, - "empty": { - "message": "Vazio" - }, - "enabled": { - "message": "Ativado" - }, - "enabledForced": { - "message": "Ativado (forçado)" - }, - "expanded": { - "message": "Expandir" - }, - "exportSettings": { - "message": "Exportar definições" - }, - "extension": { - "message": "Extenção" - }, - "file": { - "message": "Ficheiro" - }, - "filters": { - "message": "Filtros" - }, - "fitToWindow": { - "message": "Ajustar á janela" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Tipo de letra" - }, - "footer": { - "message": "Cabeçalho" - }, - "forcedPlaybackSpeed": { - "message": "Forçar velocidade de leitura" - }, - "forcedTheaterMode": { - "message": "Forçar modo de cinema" - }, - "forcedVolume": { - "message": "Volume forçado" - }, - "foundABug": { - "message": "Encontrou um erro?" - }, - "fullWindow": { - "message": "Janela completa" - }, - "general": { - "message": "Geral" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Vai à caixa de pesquisa" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura HD" - }, - "hdThumbnails": { - "message": "Miniaturas HD" - }, - "header": { - "message": "Cabeçalho" - }, - "hidden": { - "message": "Escondido" - }, - "hiddenOnVideoPage": { - "message": "Escondido na página do video" - }, - "hideAnimatedThumbnails": { - "message": "Esconder miniaturas animadas" - }, - "hideAnnotations": { - "message": "Esconder anotações" - }, - "hideCards": { - "message": "Esconder cartas" - }, - "hideDetails": { - "message": "Esconder detalhes" - }, - "hideEndscreen": { - "message": "Esconder ecãn final" - }, - "hideFeaturedContent": { - "message": "Esconder conteúdo" - }, - "hideFooter": { - "message": "Esconder rodapé" - }, - "hidePlaylist": { - "message": "Esconder lista de reprodução" - }, - "hideRightButtons": { - "message": "Esconder botões do lado direito" - }, - "hideScrollForDetails": { - "message": "Esconder «Rodar para detalhes»" - }, - "hideViewsCount": { - "message": "Esconder número de vistos" - }, - "history": { - "message": "História" - }, - "home": { - "message": "Casa" - }, - "hover": { - "message": "Aponta" - }, - "hoverOnVideoPage": { - "message": "Apontar na página do video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "À quanto tempo o video foi enviado" - }, - "icons": { - "message": "Ícones" - }, - "iconsOnly": { - "message": "Ícones apenas" - }, - "importSettings": { - "message": "Importar definições" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube icon in Browser" - }, - "improvedtubeIconOnYoutube": { - "message": "Ícon do ImprovedTube no YouTube" - }, - "improvedtubeLanguage": { - "message": "Linguagem do ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versão do ImprovedTube" - }, - "improveLogo": { - "message": "Melhorar logotipo" - }, - "increasePlaybackSpeed": { - "message": "Aumentar velocidade de leitura" - }, - "increaseVolume": { - "message": "Aumentar o volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Artigos" - }, - "languages": { - "message": "Linguagens" - }, - "legacyYoutube": { - "message": "YouTube antigo" - }, - "light": { - "message": "Claro" - }, - "lightBlue": { - "message": "Azul claro" - }, - "lightGreen": { - "message": "Verde claro" - }, - "like": { - "message": "Gostar" - }, - "likes": { - "message": "Gostos" - }, - "lime": { - "message": "Limão" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Conversa do vivo" - }, - "liveChatType": { - "message": "Tipo de conversa do vivo" - }, - "loudnessNormalization": { - "message": "Normalização do volume" - }, - "markWatchedVideos": { - "message": "Marcar os videos como vistos" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "mixer": { - "message": "Mistura" - }, - "myColors": { - "message": "Minhas cores" - }, - "name": { - "message": "Nome" - }, - "nativeMiniPlayer": { - "message": "Leitor pequeno padrão" - }, - "new": { - "message": "Novo" - }, - "nextVideo": { - "message": "Próximo video" - }, - "night": { - "message": "Noite" - }, - "noActiveFeatures": { - "message": "Sem opções ativas" - }, - "none": { - "message": "Nenhuma" - }, - "noOpenVideoTabs": { - "message": "Não abrir janelas de video" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Velho" - }, - "onAllVideos": { - "message": "Em todos os videos" - }, - "onlyActiveOnYoutube": { - "message": "Ativo apenas no YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Apenas uma instância do leitor de video" - }, - "onSubscribedChannels": { - "message": "Nos canais subscritos" - }, - "orange": { - "message": "Laranja" - }, - "os": { - "message": "SO" - }, - "other": { - "message": "Outro" - }, - "permissions": { - "message": "Permissões" - }, - "pictureInPicture": { - "message": "Janela em janela" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Simples" - }, - "platform": { - "message": "Plataforma" - }, - "playbackSpeed": { - "message": "Velocidade de leitura" - }, - "player": { - "message": "Leitor" - }, - "playerColor": { - "message": "Côr do leitor" - }, - "playerSize": { - "message": "Tamanho do leitor" - }, - "playlist": { - "message": "Lista de reprodução" - }, - "playlists": { - "message": "Listas de reprodução" - }, - "playPause": { - "message": "Reproduzir / Pausar" - }, - "popupPlayer": { - "message": "Leitor em janela" - }, - "position": { - "message": "Posição" - }, - "pressAnyKeyOrScroll": { - "message": "Carrega em qualquer tecla ou usa a roldana do rato" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Carrega em qualquer tecla ou usa a roldana do rato" - }, - "previousVideo": { - "message": "Video anterior" - }, - "primaryColor": { - "message": "Côr primaria" - }, - "purple": { - "message": "Violeta" - }, - "quality": { - "message": "Qualidade" - }, - "ram": { - "message": "Memoria" - }, - "rateUs": { - "message": "Avalia-nos" - }, - "red": { - "message": "Vermelho" - }, - "relatedVideos": { - "message": "Videos relacionados" - }, - "removeRelatedSearchResults": { - "message": "Remove resultados relacionado com a pesquisa" - }, - "repeat": { - "message": "Repetir" - }, - "reset": { - "message": "Valores de origem" - }, - "resetAllSettings": { - "message": "Valores de origem em todas as definições" - }, - "resetAllShortcuts": { - "message": "Repôr todos os atalhos" - }, - "reverse": { - "message": "Recuar" - }, - "rotate": { - "message": "Rodar" - }, - "save": { - "message": "Gravar" - }, - "saveAs": { - "message": "Gravar como" - }, - "schedule": { - "message": "Agendar" - }, - "screen": { - "message": "Ecrân" - }, - "screenshot": { - "message": "Foto do ecrân" - }, - "search": { - "message": "Pesquisa" - }, - "searchBarOnly": { - "message": "Apenas barra de pesquisa" - }, - "seekBackward10Seconds": { - "message": "Andar para trás 10 segundos" - }, - "seekForward10Seconds": { - "message": "Andar para frente 10 segundos" - }, - "settings": { - "message": "Definições" - }, - "settingsSuccessfullyImported": { - "message": "Definições importadas com sucesso" - }, - "shortcuts": { - "message": "Atalhos" - }, - "showCardsOnMouseHover": { - "message": "Mostrar cartas ao passar o rato por cima" - }, - "showChannelVideosCount": { - "message": "Mostrar contagem de videos do canal" - }, - "shuffle": { - "message": "Misturar" - }, - "sidebar": { - "message": "Barra lateral" - }, - "spacebar": { - "message": "Barra de espaços" - }, - "squaredUserImages": { - "message": "Imagens de utilizador enquadradas" - }, - "static": { - "message": "Estática" - }, - "step": { - "message": "Passo" - }, - "stop": { - "message": "Parar" - }, - "style": { - "message": "Estilo" - }, - "styles": { - "message": "Estilos" - }, - "subscriptions": { - "message": "Subscrições" - }, - "subtitles": { - "message": "Legendas" - }, - "sunset": { - "message": "Pôr do sol" - }, - "sunsetToSunrise": { - "message": "Pôr do sol até de manhã" - }, - "systemPeferenceDark": { - "message": "Preferências do sistema: Escuro" - }, - "systemPeferenceLight": { - "message": "Preferências do sistema: Claro" - }, - "teal": { - "message": "Azul esverdeado" - }, - "textColor": { - "message": "Côr do texto" - }, - "themes": { - "message": "Temas" - }, - "thisWillRemoveAllCookies": { - "message": "Isto vai remover todos os cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Isto vai remover todos os cookies do YouTube" - }, - "thisWillResetAllSettings": { - "message": "Isto vai reiniciar todas as definições." - }, - "thisWillResetAllShortcuts": { - "message": "Isto vai reiniciar todos os atalhos" - }, - "thumbnails": { - "message": "Miniaturas" - }, - "timeFrom": { - "message": "Tempo de" - }, - "timeTo": { - "message": "Tempo para" - }, - "todayAt": { - "message": "Hoje em" - }, - "topChat": { - "message": "Conversa principal" - }, - "trailerAutoplay": { - "message": "Trailer toca automaticamente" - }, - "translations": { - "message": "Traduções" - }, - "transparentBackground": { - "message": "Fundo transparente" - }, - "trending": { - "message": "Tendências" - }, - "tryToReloadThePage": { - "message": "Tenta carregar a pagina de novo" - }, - "type": { - "message": "Escreve" - }, - "upNextAutoplay": { - "message": "Arquivo seguinte a tocar" - }, - "use24HourFormat": { - "message": "Usar formato de 24-horas" - }, - "version": { - "message": "Versão" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "A descrição do video vai ser expandida para ver o nome da categoria" - }, - "videoFormats": { - "message": "Formatos de video" - }, - "videos": { - "message": "Videos" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Vêr mais tarde" - }, - "watchTime": { - "message": "Tempo de visualização" - }, - "whenTabIsChanged": { - "message": "Quando a janela mudar" - }, - "white": { - "message": "Branco" - }, - "yellow": { - "message": "Amarelo" - }, - "youtubeHeaderLeft": { - "message": "Cabeçalho do YouTube (esquerda)" - }, - "youtubeHeaderRight": { - "message": "Cabeçalho do YouTube (direita)" - }, - "youtubeHomePage": { - "message": "Página principal do YouTube" - }, - "youtubeLanguage": { - "message": "Linguagem do YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "O YouTube limita a qualidade do video em 1080p para o codec h.264" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "toggleCards": { - "message": "Toggle cards" - } -} diff --git a/unstable/_locales/ru/messages.json b/unstable/_locales/ru/messages.json deleted file mode 100644 index b28abb82e..000000000 --- a/unstable/_locales/ru/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "cropChapterTitles": { - "message": "Обрезать заголовки глав" - }, - "about": { - "message": "Об ImprovedTube" - }, - "accept": { - "message": "Принять" - }, - "activate": { - "message": "Активировать" - }, - "activateCaptions": { - "message": "Активировать субтитры" - }, - "activated": { - "message": "Активировано" - }, - "activatedFeatures": { - "message": "Активированные функции" - }, - "activateFullscreen": { - "message": "Перейти в полноэкранный режим" - }, - "activeFeatures": { - "message": "Активные функции" - }, - "addScrollToTop": { - "message": "Добавить кнопку «наверх»" - }, - "ads": { - "message": "Реклама" - }, - "all": { - "message": "Все" - }, - "allow": { - "message": "Разрешить" - }, - "allow60fps": { - "message": "Разрешить 60fps" - }, - "alwaysActive": { - "message": "Всегда активный" - }, - "alwaysShowProgressBar": { - "message": "Всегда показывать прогресс-бар" - }, - "amber": { - "message": "Янтарный" - }, - "analyzer": { - "message": "Анализатор" - }, - "appearance": { - "message": "Внешний вид" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Аудио" - }, - "audioFormats": { - "message": "Аудио форматы" - }, - "auto": { - "message": "Авто" - }, - "autoFullscreen": { - "message": "Автоматический переход в полноэкранный режим" - }, - "autopauseWhenSwitchingTabs": { - "message": "Автопауза при переходе между вкладками" - }, - "autoplay": { - "message": "Автовоспроизведение" - }, - "backupAndReset": { - "message": "Резервное копирование и сброс" - }, - "baseOnSystemColorScheme": { - "message": "Зависит от системной цветовой схемы" - }, - "belowPlayer": { - "message": "Ниже плеера" - }, - "black": { - "message": "Черный" - }, - "blacklist": { - "message": "Черный список" - }, - "blockAll": { - "message": "Заблокировать всё" - }, - "blue": { - "message": "Синий" - }, - "blueGray": { - "message": "Серо-голубой" - }, - "bluelight": { - "message": "Синий свет" - }, - "brown": { - "message": "Коричневый" - }, - "browser": { - "message": "Браузер" - }, - "browserVersion": { - "message": "Версия браузера" - }, - "bubbles": { - "message": "Пузыри" - }, - "bug": { - "message": "Ошибка" - }, - "buttons": { - "message": "Кнопки" - }, - "cancel": { - "message": "Отмена" - }, - "categories": { - "message": "Категории" - }, - "channel": { - "message": "Канал" - }, - "channels": { - "message": "Каналы" - }, - "clipboard": { - "message": "Буфер обмена" - }, - "codecH264": { - "message": "Кодек h.264" - }, - "collapsed": { - "message": "Свернуть" - }, - "collapseOfSubscriptionSections": { - "message": "Свернуть раздел подписок" - }, - "comments": { - "message": "Комментарии" - }, - "confirmationBeforeClosing": { - "message": "Подтверждение закрытия" - }, - "cookies": { - "message": "Куки" - }, - "cores": { - "message": "Ядра" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Сustom JS" - }, - "cyan": { - "message": "Сине-зелёный" - }, - "dark": { - "message": "Темная" - }, - "darkTheme": { - "message": "Ночная тема" - }, - "dateAndTime": { - "message": "Дата и время" - }, - "dawn": { - "message": "Рассвет" - }, - "decreasePlaybackSpeed": { - "message": "Уменьшить скорость видео" - }, - "decreaseVolume5": { - "message": "Уменьшить громкость на 5%" - }, - "deepOrange": { - "message": "Темно-оранжевый" - }, - "deepPurple": { - "message": "Темно-фиолетовый" - }, - "defaultChannelTab": { - "message": "Вкладка канала по умолчанию" - }, - "deleteYoutubeCookies": { - "message": "Удалить куки YouTube" - }, - "description": { - "message": "Описание" - }, - "desert": { - "message": "Пустыня" - }, - "details": { - "message": "Подробная информация" - }, - "developerOptions": { - "message": "Настройки разработчика" - }, - "device": { - "message": "Устройство" - }, - "dim": { - "message": "Тусклость" - }, - "disabled": { - "message": "Выключено" - }, - "dislike": { - "message": "Дизлайк" - }, - "donate": { - "message": "Пожертвовать" - }, - "doNotChange": { - "message": "Не менять" - }, - "draggable": { - "message": "Перетаскиваемый" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Пусто" - }, - "enabled": { - "message": "Включено" - }, - "enabledForced": { - "message": "Включено (принудительно)" - }, - "expanded": { - "message": "Развернуть" - }, - "exportSettings": { - "message": "Экспорт настроек" - }, - "extension": { - "message": "Расширение" - }, - "file": { - "message": "Файл" - }, - "filters": { - "message": "Фильтры" - }, - "fitToWindow": { - "message": "Подогнать под окно" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Шрифт" - }, - "footer": { - "message": "Нижний колонтитул" - }, - "forcedPlaybackSpeed": { - "message": "Форсировать скорость воспроизведения" - }, - "forcedTheaterMode": { - "message": "Принудительно переходить в режим кино" - }, - "forcedVolume": { - "message": "Принудительная громкость" - }, - "foundABug": { - "message": "Нашли ошибку?" - }, - "fullWindow": { - "message": "Растянуть на все окно" - }, - "general": { - "message": "Общее" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Перейти в окно поиска" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Зеленый" - }, - "hdThumbnail": { - "message": "Превью высокого качества" - }, - "hdThumbnails": { - "message": "Превью высокого качества" - }, - "header": { - "message": "Верхняя панель" - }, - "hidden": { - "message": "Скрыть" - }, - "hiddenOnVideoPage": { - "message": "Скрыть (только на странице с видео)" - }, - "hideAnimatedThumbnails": { - "message": "Скрыть анимированные превью" - }, - "hideAnnotations": { - "message": "Скрыть аннотации" - }, - "hideCards": { - "message": "Скрыть карточки" - }, - "hideDetails": { - "message": "Скрыть подробную информацию" - }, - "hideEndscreen": { - "message": "Скрыть экран после видео" - }, - "hideFeaturedContent": { - "message": "Скрыть рекомендации" - }, - "hideFooter": { - "message": "Скрыть нижний колонтитул" - }, - "hidePlaylist": { - "message": "Скрыть плейлист" - }, - "hideRightButtons": { - "message": "Скрыть кнопки (справа)" - }, - "hideScrollForDetails": { - "message": "Скрыть «Прокрутите для подробной информации»" - }, - "hideViewsCount": { - "message": "Скрыть количество просмотров" - }, - "history": { - "message": "История" - }, - "home": { - "message": "Домашняя страница" - }, - "hover": { - "message": "Показывать при наведении" - }, - "hoverOnVideoPage": { - "message": "Показывать при наведении (только на странице с видео)" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Показывать как давно было загружено видео" - }, - "icons": { - "message": "Иконки" - }, - "iconsOnly": { - "message": "Только иконки" - }, - "importSettings": { - "message": "Импорт настроек" - }, - "improvedtubeIconInBrowser": { - "message": "Значок ImprovedTube в браузере" - }, - "improvedtubeIconOnYoutube": { - "message": "Значок ImprovedTube в YouTube" - }, - "improvedtubeLanguage": { - "message": "Язык ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Версия ImprovedTube" - }, - "improveLogo": { - "message": "Улучшить логотип YouTube" - }, - "increasePlaybackSpeed": { - "message": "Увеличить скорость видео" - }, - "increaseVolume5": { - "message": "Увеличить громкости на 5%" - }, - "indigo": { - "message": "Индиго" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Языки" - }, - "legacyYoutube": { - "message": "Старая версия YouTube" - }, - "light": { - "message": "Светлая" - }, - "lightBlue": { - "message": "Светло-синий" - }, - "lightGreen": { - "message": "Светло-зеленый" - }, - "like": { - "message": "Лайк" - }, - "likes": { - "message": "Лайки" - }, - "lime": { - "message": "Лайм" - }, - "list": { - "message": "Список" - }, - "liveChat": { - "message": "Live-чат" - }, - "liveChatType": { - "message": "Тип live-чата" - }, - "loudnessNormalization": { - "message": "Нормализировать громкость" - }, - "markWatchedVideos": { - "message": "Отмечать просмотренные видео" - }, - "customMiniPlayer": { - "message": "Новый мини-плеер" - }, - "mixer": { - "message": "Миксер" - }, - "myColors": { - "message": "Мои цвета" - }, - "name": { - "message": "Имя" - }, - "nativeMiniPlayer": { - "message": "Мини-плеер от YouTube" - }, - "new": { - "message": "Новый" - }, - "nextVideo": { - "message": "Следующее видео" - }, - "night": { - "message": "Ночь" - }, - "noActiveFeatures": { - "message": "Нет активных функций" - }, - "none": { - "message": "Пусто" - }, - "noOpenVideoTabs": { - "message": "Нет открытых вкладок с видео" - }, - "normal": { - "message": "Обычный" - }, - "old": { - "message": "Старый" - }, - "onAllVideos": { - "message": "Во всех видео" - }, - "onlyActiveOnYoutube": { - "message": "Активен только в YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Только один экземпляр плеера играет" - }, - "onSubscribedChannels": { - "message": "Только на каналах в подписках" - }, - "orange": { - "message": "Оранжевый" - }, - "os": { - "message": "ОС" - }, - "other": { - "message": "Другое" - }, - "permissions": { - "message": "Разрешения" - }, - "pictureInPicture": { - "message": "Картинка в картинке" - }, - "pink": { - "message": "Розовый" - }, - "plain": { - "message": "Равнина" - }, - "platform": { - "message": "Платформа" - }, - "playbackSpeed": { - "message": "Скорость воспроизведения" - }, - "player": { - "message": "Плеер" - }, - "playerColor": { - "message": "Цвет плеера" - }, - "playerSize": { - "message": "Размер плеера" - }, - "playlist": { - "message": "Плейлист" - }, - "playlists": { - "message": "Плейлисты" - }, - "playPause": { - "message": "Воспроизведение / Пауза" - }, - "popupPlayer": { - "message": "Плеер во всплывающем окне" - }, - "position": { - "message": "Позиция" - }, - "pressAnyKeyOrScroll": { - "message": "Нажмите любую клавишу или воспользуйтесь колесом мыши" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Нажмите любую клавишу или используйте колесо мыши" - }, - "previousVideo": { - "message": "Предыдущее видео" - }, - "primaryColor": { - "message": "Основной цвет" - }, - "purple": { - "message": "Фиолетовый" - }, - "quality": { - "message": "Качество" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Оцените нас" - }, - "red": { - "message": "Красный" - }, - "relatedVideos": { - "message": "Похожие видео" - }, - "removeRelatedSearchResults": { - "message": "Удалить похожие результаты поиска" - }, - "repeat": { - "message": "Повтор" - }, - "reset": { - "message": "Сбросить" - }, - "resetAllSettings": { - "message": "Сбросить все настройки" - }, - "resetAllShortcuts": { - "message": "Сбросить все горячие клавиши" - }, - "reverse": { - "message": "Обратный порядок" - }, - "rotate": { - "message": "Повернуть" - }, - "save": { - "message": "Сохранить" - }, - "saveAs": { - "message": "Сохранить как" - }, - "schedule": { - "message": "Расписание" - }, - "screen": { - "message": "Экран" - }, - "screenshot": { - "message": "Скриншот" - }, - "search": { - "message": "Поиск" - }, - "searchBarOnly": { - "message": "Только поле поиска" - }, - "seekBackward10Seconds": { - "message": "Перемотать на 10 секунд назад" - }, - "seekForward10Seconds": { - "message": "Перемотать на 10 секунд вперед" - }, - "settings": { - "message": "Настройки" - }, - "settingsSuccessfullyImported": { - "message": "Настройки успешно импортированы" - }, - "shortcuts": { - "message": "Горячие клавиши" - }, - "showCardsOnMouseHover": { - "message": "Показывать карточки при наведении мыши" - }, - "showChannelVideosCount": { - "message": "Показывать количество видео на канале" - }, - "shuffle": { - "message": "Случайный порядок" - }, - "sidebar": { - "message": "Боковая панель" - }, - "spacebar": { - "message": "Пробел" - }, - "squaredUserImages": { - "message": "Квадратные аватарки пользователей" - }, - "static": { - "message": "Статично" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Стоп" - }, - "style": { - "message": "Стиль" - }, - "styles": { - "message": "Стили" - }, - "subscriptions": { - "message": "Подписки" - }, - "subtitles": { - "message": "Субтитры" - }, - "sunset": { - "message": "Закат" - }, - "sunsetToSunrise": { - "message": "От заката до рассвета" - }, - "systemPeferenceDark": { - "message": "Предпочитаемая системой: темная" - }, - "systemPeferenceLight": { - "message": "Предпочитаемая системой: светлая" - }, - "teal": { - "message": "Бирюзовый" - }, - "textColor": { - "message": "Цвет текста" - }, - "themes": { - "message": "Темы" - }, - "thisWillRemoveAllCookies": { - "message": "Это удалит все куки" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Вы действительно хотите удалить все куки YouTube?" - }, - "thisWillResetAllSettings": { - "message": "Это сбросит все настройки" - }, - "thisWillResetAllShortcuts": { - "message": "Это сбросит все горячие клавиши" - }, - "thumbnails": { - "message": "Превью" - }, - "timeFrom": { - "message": "Время от" - }, - "timeTo": { - "message": "Время до" - }, - "todayAt": { - "message": "Сегодня в" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Автовоспроизведение трейлера" - }, - "translations": { - "message": "Переводы" - }, - "transparentBackground": { - "message": "Прозрачный фон" - }, - "trending": { - "message": "Тренды" - }, - "tryToReloadThePage": { - "message": "Попробуйте перезагрузить страницу" - }, - "type": { - "message": "Тип" - }, - "upNextAutoplay": { - "message": "Автовоспроизведение следующего видео" - }, - "use24HourFormat": { - "message": "24-часовой формат" - }, - "version": { - "message": "Версия" - }, - "video": { - "message": "Видео" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Описание видео будет развернуто, чтобы получить название категории видео" - }, - "videoFormats": { - "message": "Форматы видео" - }, - "videos": { - "message": "Видео" - }, - "volume": { - "message": "Громкость" - }, - "watchLater": { - "message": "Посмотреть позже" - }, - "watchTime": { - "message": "Время просмотра" - }, - "whenTabIsChanged": { - "message": "При переключении вкладок" - }, - "white": { - "message": "Белый" - }, - "yellow": { - "message": "Желтый" - }, - "youtubeHeaderLeft": { - "message": "Верхняя панель (слева)" - }, - "youtubeHeaderRight": { - "message": "Верхняя панель (справа)" - }, - "youtubeHomePage": { - "message": "Домашняя страница YouTube" - }, - "youtubeLanguage": { - "message": "Язык YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube ограничивает качетво видео до 1080p для кодека h.264" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "toggleCards": { - "message": "Toggle cards" - } -} diff --git a/unstable/_locales/sk/messages.json b/unstable/_locales/sk/messages.json deleted file mode 100644 index 2af9445e6..000000000 --- a/unstable/_locales/sk/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "about": { - "message": "O" - }, - "accept": { - "message": "Prijať" - }, - "activate": { - "message": "Aktivovať" - }, - "activateCaptions": { - "message": "Aktivovať titulky" - }, - "activated": { - "message": "Aktivované" - }, - "activatedFeatures": { - "message": "Aktivované fukncie" - }, - "activateFullscreen": { - "message": "Aktivovať zobrazenie na celú obrazovku" - }, - "activeFeatures": { - "message": "Aktívne funkcie" - }, - "addScrollToTop": { - "message": "Prejdite «Vrátiť sa na začiatok»" - }, - "ads": { - "message": "Reklamy" - }, - "all": { - "message": "Všetko" - }, - "allow": { - "message": "Povoliť" - }, - "allow60fps": { - "message": "Povoliť 60fps" - }, - "alwaysActive": { - "message": "Vždy aktívne" - }, - "alwaysShowProgressBar": { - "message": "Vždy zobrazovať ukazateľ priebehu" - }, - "amber": { - "message": "Ambra" - }, - "analyzer": { - "message": "Analyzátor" - }, - "appearance": { - "message": "Vzhľad" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Zvuk" - }, - "audioFormats": { - "message": "Formát zvuku" - }, - "auto": { - "message": "Automaticky" - }, - "autoFullscreen": { - "message": "Automaticky-fullscreen" - }, - "autopauseWhenSwitchingTabs": { - "message": "Automatické pozastavenie pri prepínaní kariet" - }, - "autoplay": { - "message": "Automatické prehrávanie" - }, - "backupAndReset": { - "message": "Zálohovanie & Obnova" - }, - "baseOnSystemColorScheme": { - "message": "Nastavené podľa farby systému" - }, - "belowPlayer": { - "message": "Pod prehrávačom" - }, - "black": { - "message": "Čierna" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "Zablokovať všetko" - }, - "blue": { - "message": "Modrá" - }, - "blueGray": { - "message": "Šedo-modrá" - }, - "bluelight": { - "message": "Modré svetlo" - }, - "brown": { - "message": "Hnedá" - }, - "browser": { - "message": "Prehliadac" - }, - "browserVersion": { - "message": "Verzie prehliadača" - }, - "bubbles": { - "message": "Bubliny" - }, - "bug": { - "message": "Chyba" - }, - "buttons": { - "message": "Tlačidlá" - }, - "cancel": { - "message": "Zrušiť" - }, - "categories": { - "message": "Kategórie" - }, - "channel": { - "message": "Kanál" - }, - "channels": { - "message": "Kanály" - }, - "clipboard": { - "message": "Schránka" - }, - "codecH264": { - "message": "Kodek h.264" - }, - "collapsed": { - "message": "Zbaliť" - }, - "collapseOfSubscriptionSections": { - "message": "Zbaliť sekciu Odber" - }, - "comments": { - "message": "Komentáre" - }, - "confirmationBeforeClosing": { - "message": "Potvrdiť pred zatvorenímk" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Jadrá" - }, - "customCss": { - "message": "Vlastné CSS" - }, - "customJs": { - "message": "Vlastné JS" - }, - "cyan": { - "message": "Tyrkysová" - }, - "dark": { - "message": "Tmavý" - }, - "darkTheme": { - "message": "Tmavá téma" - }, - "dateAndTime": { - "message": "Dátum a čas" - }, - "dawn": { - "message": "Svitanie" - }, - "decreasePlaybackSpeed": { - "message": "Znížiť rýchlosť prehrávania" - }, - "decreaseVolume": { - "message": "Znížiť hlasitosť" - }, - "deepOrange": { - "message": "Tmavo oranžová" - }, - "deepPurple": { - "message": "Tmavo fialová" - }, - "defaultChannelTab": { - "message": "Predvolená karta kanálu" - }, - "deleteYoutubeCookies": { - "message": "Vymazať YouTube cookies" - }, - "description": { - "message": "Podrobnosti" - }, - "desert": { - "message": "Púšť" - }, - "details": { - "message": "Detaily" - }, - "developerOptions": { - "message": "Možnosti pre vývojara" - }, - "device": { - "message": "Zariadenie" - }, - "dim": { - "message": "Stmvaviť" - }, - "disabled": { - "message": "Vypnutý" - }, - "dislike": { - "message": "Dislike" - }, - "donate": { - "message": "Prispieť" - }, - "doNotChange": { - "message": "Nemeniť" - }, - "draggable": { - "message": "Posuvné" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Prázdny" - }, - "enabled": { - "message": "Zapnuté" - }, - "enabledForced": { - "message": "Zapnuté (vynútene)" - }, - "expanded": { - "message": "Rozbalené" - }, - "exportSettings": { - "message": "Exportovať nastavenia" - }, - "extension": { - "message": "Rozšírenia" - }, - "file": { - "message": "Súbor" - }, - "filters": { - "message": "Filtre" - }, - "fitToWindow": { - "message": "Prispôsobiť oknu" - }, - "flash": { - "message": "Blikať" - }, - "font": { - "message": "Písmo" - }, - "footer": { - "message": "Pätička" - }, - "forcedPlaybackSpeed": { - "message": "Vynútená rýchlosť prehrávania" - }, - "forcedTheaterMode": { - "message": "Vynútený divadelný režim" - }, - "forcedVolume": { - "message": "Vynútená hlasitosť" - }, - "foundABug": { - "message": "Našli ste chybu?" - }, - "fullWindow": { - "message": "Celé okno" - }, - "general": { - "message": "Všeobecné" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Prejdite do vyhľadávanieho poľa" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Zelená" - }, - "hdThumbnail": { - "message": "HD náhlad" - }, - "hdThumbnails": { - "message": "HD náhlady" - }, - "header": { - "message": "Hlavička" - }, - "hidden": { - "message": "Skryté" - }, - "hiddenOnVideoPage": { - "message": "Skyté na stránke videa" - }, - "hideAnimatedThumbnails": { - "message": "Skryť animované náhľady" - }, - "hideAnnotations": { - "message": "Skryť anotácie" - }, - "hideCards": { - "message": "Skryť karty" - }, - "hideDetails": { - "message": "Skryť detaily" - }, - "hideEndscreen": { - "message": "Skryť zobrazenie na konci videa" - }, - "hideFeaturedContent": { - "message": "Skryť odporúčaný obsah" - }, - "hideFooter": { - "message": "Hide pätičku" - }, - "hidePlaylist": { - "message": "Skryť zoznam videí" - }, - "hideRightButtons": { - "message": "Skryť tlčidlá v pravo" - }, - "hideScrollForDetails": { - "message": "Skryť «Zarolujte pre detaily»" - }, - "hideViewsCount": { - "message": "Skyť počet videní" - }, - "history": { - "message": "História" - }, - "home": { - "message": "Domov" - }, - "hover": { - "message": "Vznášať sa" - }, - "hoverOnVideoPage": { - "message": "Umiestnite kurzor na stránku videa" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Kedy bolo toto video nahrané?" - }, - "icons": { - "message": "Ikony" - }, - "iconsOnly": { - "message": "Iba ikony" - }, - "importSettings": { - "message": "Importovať nastavenia" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube ikona v prehliadači" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube ikona na YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube jazyk" - }, - "improvedtubeVersion": { - "message": "ImprovedTube verzia" - }, - "improveLogo": { - "message": "Improve logo" - }, - "increasePlaybackSpeed": { - "message": "Zvýšiť rýchlosť prehrávania" - }, - "increaseVolume": { - "message": "Zvýšiť hlasitosť" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Jazyky" - }, - "legacyYoutube": { - "message": "Starý YouTube" - }, - "light": { - "message": "Svetlo" - }, - "lightBlue": { - "message": "Svetlo modrá" - }, - "lightGreen": { - "message": "Svetlo zelená" - }, - "like": { - "message": "Páči sa mi to" - }, - "likes": { - "message": "Páči sa mi to" - }, - "lime": { - "message": "Limetková" - }, - "list": { - "message": "Zoznam" - }, - "liveChat": { - "message": "Živí chat" - }, - "liveChatType": { - "message": "Typ živého chatu" - }, - "loudnessNormalization": { - "message": "Vyrovnanie hlasitosti" - }, - "markWatchedVideos": { - "message": "Označiť ako videné" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "mixer": { - "message": "Mixér" - }, - "myColors": { - "message": "Moje farby" - }, - "name": { - "message": "Meno" - }, - "nativeMiniPlayer": { - "message": "Natívny mini prehrávač" - }, - "new": { - "message": "Nový" - }, - "nextVideo": { - "message": "Ďalšie video" - }, - "night": { - "message": "Noc" - }, - "noActiveFeatures": { - "message": "Žiadne aktívne fukncie" - }, - "none": { - "message": "Žiadny" - }, - "noOpenVideoTabs": { - "message": "Žiadne otvorené karty s videami" - }, - "normal": { - "message": "Normále" - }, - "old": { - "message": "Starý" - }, - "onAllVideos": { - "message": "Na všetkých videách" - }, - "onlyActiveOnYoutube": { - "message": "Aktívne iba na YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Prehrávať iba jedno video" - }, - "onSubscribedChannels": { - "message": "Na odoberaných kanáloch" - }, - "orange": { - "message": "Oranžová" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Ostatné" - }, - "permissions": { - "message": "Povolenia" - }, - "pictureInPicture": { - "message": "Obraz v obraze" - }, - "pink": { - "message": "Ružová" - }, - "plain": { - "message": "Jednoduchý" - }, - "platform": { - "message": "Platforma" - }, - "playbackSpeed": { - "message": "Rýchlosť prehrávania" - }, - "player": { - "message": "Prehrávač" - }, - "playerColor": { - "message": "Farba prehrávača" - }, - "playerSize": { - "message": "Veľkosť prehrávača" - }, - "playlist": { - "message": "Zoznam videí" - }, - "playlists": { - "message": "Zoznamy videí" - }, - "playPause": { - "message": "Prehrať / Pozastavť" - }, - "popupPlayer": { - "message": "Popup prehrávač" - }, - "position": { - "message": "Pozícia" - }, - "pressAnyKeyOrScroll": { - "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky" - }, - "previousVideo": { - "message": "Predchýdzajúce video" - }, - "primaryColor": { - "message": "Primárna farba" - }, - "purple": { - "message": "Fialová" - }, - "quality": { - "message": "Kvalita" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Ohodnoťte nás" - }, - "red": { - "message": "Červená" - }, - "relatedVideos": { - "message": "Súvisiace videá" - }, - "removeRelatedSearchResults": { - "message": "Odstránte príbuzné výsledky vyhľadávania" - }, - "repeat": { - "message": "Opakovať" - }, - "reset": { - "message": "Obnoviť" - }, - "resetAllSettings": { - "message": "Obnoviť všetky nastavenia" - }, - "resetAllShortcuts": { - "message": "Obnoviť všetky skratky" - }, - "reverse": { - "message": "Obrátené" - }, - "rotate": { - "message": "Otočiť" - }, - "save": { - "message": "Uložiť" - }, - "saveAs": { - "message": "Uložiť ako" - }, - "schedule": { - "message": "Naplánovať" - }, - "screen": { - "message": "Obrazovka" - }, - "screenshot": { - "message": "Screenshot" - }, - "search": { - "message": "Vyhľadať" - }, - "searchBarOnly": { - "message": "Iba vyhľadávacie pole" - }, - "seekBackward10Seconds": { - "message": "Pretočiť spät o 10 sekúnd" - }, - "seekForward10Seconds": { - "message": "Pretočiť dopredu o 10 sekúnd" - }, - "settings": { - "message": "Nastavenia" - }, - "settingsSuccessfullyImported": { - "message": "Nastavenia úspešne importované" - }, - "shortcuts": { - "message": "Skratky" - }, - "showCardsOnMouseHover": { - "message": "Zobraziť karty pri prechode myšou" - }, - "showChannelVideosCount": { - "message": "Zobraziť počet videí kanálu" - }, - "shuffle": { - "message": "Náhodne" - }, - "sidebar": { - "message": "Bočný panel" - }, - "spacebar": { - "message": "Medzera" - }, - "squaredUserImages": { - "message": "Štvorcový obrázok užívateľa" - }, - "static": { - "message": "Statické" - }, - "step": { - "message": "Krok" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Štýl" - }, - "styles": { - "message": "Štýly" - }, - "subscriptions": { - "message": "Odbery" - }, - "subtitles": { - "message": "Titulky" - }, - "sunset": { - "message": "Západ slnka" - }, - "sunsetToSunrise": { - "message": "Západ slnka do východu slnka" - }, - "systemPeferenceDark": { - "message": "Predvolené: tmavé" - }, - "systemPeferenceLight": { - "message": "Predvolené: svetlé" - }, - "teal": { - "message": "Modrozelený" - }, - "textColor": { - "message": "Farba textu" - }, - "themes": { - "message": "Témy" - }, - "thisWillRemoveAllCookies": { - "message": "Toto odstráni všetky cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Toto odstráni všetky YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "Toto obnový všetky nastavenia." - }, - "thisWillResetAllShortcuts": { - "message": "Toto obnový všetky skratky" - }, - "thumbnails": { - "message": "Náhlady" - }, - "timeFrom": { - "message": "Čas od" - }, - "timeTo": { - "message": "Čas do" - }, - "todayAt": { - "message": "Dnes o" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Automatické prehrávanie ukážky" - }, - "translations": { - "message": "Preklady" - }, - "transparentBackground": { - "message": "Priehľadné pozadie" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Skúsťe obnoviť stránku" - }, - "type": { - "message": "Typ" - }, - "upNextAutoplay": { - "message": "Automaticky prehrať ďaľšie v poradí" - }, - "use24HourFormat": { - "message": "Použť 24-hodinový formát" - }, - "version": { - "message": "Verzia" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Podrobnosti videa budú zobrazené pre získanie názvu kategórie" - }, - "videoFormats": { - "message": "Formáty videa" - }, - "videos": { - "message": "Vedeá" - }, - "volume": { - "message": "Hlasitosť" - }, - "watchLater": { - "message": "Pozrieť neskor" - }, - "watchTime": { - "message": "Čas sledovania" - }, - "whenTabIsChanged": { - "message": "Pri zmene karty" - }, - "white": { - "message": "Biela" - }, - "yellow": { - "message": "Žltá" - }, - "youtubeHeaderLeft": { - "message": "YouTube hlavička (vľavo)" - }, - "youtubeHeaderRight": { - "message": "YouTube hlavička (vpravo)" - }, - "youtubeHomePage": { - "message": "Domáca stránka YouTube" - }, - "youtubeLanguage": { - "message": "Jazyk YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube obmedzuje kvalitu videa na 1080p pri kodeku h.264" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "toggleCards": { - "message": "Toggle cards" - } -} diff --git a/unstable/_locales/tr/messages.json b/unstable/_locales/tr/messages.json deleted file mode 100644 index 7ed3ce880..000000000 --- a/unstable/_locales/tr/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "about": { - "message": "Hakkında" - }, - "accept": { - "message": "Onayla" - }, - "activate": { - "message": "Aktifleştir" - }, - "activateCaptions": { - "message": "Altyazıları Aktifleştir" - }, - "activated": { - "message": "Aktifleştirilmiş" - }, - "activatedFeatures": { - "message": "Aktifleştirilmiş özellikler" - }, - "activateFullscreen": { - "message": "Tam ekranı Aktifleştir" - }, - "activeFeatures": { - "message": "Etkin özellikler" - }, - "addScrollToTop": { - "message": "«Yukarı kaydır» ekle" - }, - "ads": { - "message": "Reklamlar" - }, - "all": { - "message": "Tümü" - }, - "allow": { - "message": "İzin ver" - }, - "allow60fps": { - "message": "60fps'e izin ver" - }, - "alwaysActive": { - "message": "Sürekli etkin" - }, - "alwaysShowProgressBar": { - "message": "İlerleme çubuğunu sürekli göster" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analizör" - }, - "appearance": { - "message": "Görünüm" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Ses" - }, - "audioFormats": { - "message": "Ses formatları" - }, - "auto": { - "message": "Otomatik" - }, - "autoFullscreen": { - "message": "Otomatik tam ekran" - }, - "autopauseWhenSwitchingTabs": { - "message": "Sekme değiştirildiğinde duraklat" - }, - "autoplay": { - "message": "Otomatik oynat" - }, - "backupAndReset": { - "message": "Yedek & sıfırla" - }, - "baseOnSystemColorScheme": { - "message": "Sistem renk şeması temelli" - }, - "belowPlayer": { - "message": "Oynatıcının altında" - }, - "black": { - "message": "Kara" - }, - "blacklist": { - "message": "Kara Liste" - }, - "blockAll": { - "message": "Tümünü engelle" - }, - "blue": { - "message": "Mavi" - }, - "blueGray": { - "message": "Mavi gri" - }, - "bluelight": { - "message": "Mavi Işık" - }, - "brown": { - "message": "Kahverengi" - }, - "browser": { - "message": "Tarayıcı" - }, - "browserVersion": { - "message": "Tarayıcı Sürümü" - }, - "bubbles": { - "message": "Baloncuklar" - }, - "bug": { - "message": "Hata" - }, - "buttons": { - "message": "Butonlar" - }, - "cancel": { - "message": "İptal" - }, - "categories": { - "message": "Kategoriler" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanallar" - }, - "clipboard": { - "message": "Pano" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Daraltılmış" - }, - "collapseOfSubscriptionSections": { - "message": "Abonelik bölümlerini daralt" - }, - "comments": { - "message": "Yorumlar" - }, - "confirmationBeforeClosing": { - "message": "Kapatmadan önce uyar" - }, - "cookies": { - "message": "Çerezler" - }, - "cores": { - "message": "Çekirdekler" - }, - "customCss": { - "message": "Özel CSS" - }, - "customJs": { - "message": "Özel JS" - }, - "cyan": { - "message": "Camgöbeği" - }, - "dark": { - "message": "Koyu" - }, - "darkTheme": { - "message": "Koyu tema" - }, - "dateAndTime": { - "message": "Tarih & zaman" - }, - "dawn": { - "message": "Şafak" - }, - "decreasePlaybackSpeed": { - "message": "Oynatma hızını azalt" - }, - "decreaseVolume": { - "message": "Sesi azalt" - }, - "deepOrange": { - "message": "Koyu turuncu" - }, - "deepPurple": { - "message": "Koyu mor" - }, - "defaultChannelTab": { - "message": "Varsayılan kanal sekmesi" - }, - "deleteYoutubeCookies": { - "message": "YouTube çerezleri sil" - }, - "description": { - "message": "Açıklama" - }, - "desert": { - "message": "Çöl" - }, - "details": { - "message": "Ayrıntılar" - }, - "developerOptions": { - "message": "Geliştirici seçenekleri" - }, - "device": { - "message": "Cihaz" - }, - "dim": { - "message": "Karart" - }, - "disabled": { - "message": "Devredışı" - }, - "dislike": { - "message": "Beğenmeme" - }, - "donate": { - "message": "Bağış" - }, - "doNotChange": { - "message": "Değiştirme" - }, - "draggable": { - "message": "Sürüklenebilir" - }, - "email": { - "message": "Eposta" - }, - "empty": { - "message": "Boş" - }, - "enabled": { - "message": "Etkin" - }, - "enabledForced": { - "message": "Etkin (Zorla)" - }, - "expanded": { - "message": "Genişletilmiş" - }, - "exportSettings": { - "message": "Ayarları dışa aktar" - }, - "extension": { - "message": "Uzantı" - }, - "file": { - "message": "Dosya" - }, - "filters": { - "message": "Filtreler" - }, - "fitToWindow": { - "message": "Pencereye sığdır" - }, - "flash": { - "message": "Flaş" - }, - "font": { - "message": "Yazı Tipi" - }, - "footer": { - "message": "Footer" - }, - "forcedPlaybackSpeed": { - "message": "Oynatma hızını uygulamaya zorla" - }, - "forcedTheaterMode": { - "message": "Sinema modunu zorla" - }, - "forcedVolume": { - "message": "Sesi zorla" - }, - "foundABug": { - "message": "Hata mı buldun?" - }, - "fullWindow": { - "message": "Tam pencere" - }, - "general": { - "message": "Genel" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Arama kutusuna git" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Yeşil" - }, - "hdThumbnail": { - "message": "HD küçük resim" - }, - "hdThumbnails": { - "message": "HD küçük resimler" - }, - "header": { - "message": "Header" - }, - "hidden": { - "message": "Gizli" - }, - "hiddenOnVideoPage": { - "message": "Video sayfasında gizli" - }, - "hideAnimatedThumbnails": { - "message": "Hareketli küçük resimleri gizle" - }, - "hideAnnotations": { - "message": "Ek açıklamaları gizle" - }, - "hideCards": { - "message": "Kartları gizle" - }, - "hideDetails": { - "message": "Detayları gizle" - }, - "hideEndscreen": { - "message": "Ekran sonunu gizle" - }, - "hideFeaturedContent": { - "message": "Öne çıkan içeriği gizle" - }, - "hideFooter": { - "message": "Footer'ı gizle" - }, - "hidePlaylist": { - "message": "Oynatma Listesi'ni gizle" - }, - "hideRightButtons": { - "message": "Sağ butonları gizle" - }, - "hideScrollForDetails": { - "message": "«Ayrıntılar için kaydır» gizle" - }, - "hideViewsCount": { - "message": "Görüntüleme sayısını gizle" - }, - "history": { - "message": "Geçmiş" - }, - "home": { - "message": "Ana Sayfa" - }, - "hover": { - "message": "Hover" - }, - "hoverOnVideoPage": { - "message": "Hover on video page" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Video ne kadar süre önce yüklendi" - }, - "icons": { - "message": "Simgeler" - }, - "iconsOnly": { - "message": "Yalnızca simgeler" - }, - "importSettings": { - "message": "Ayarları içe aktar" - }, - "improvedtubeIconInBrowser": { - "message": "Tarayıcıda ImprovedTube Simgesi" - }, - "improvedtubeIconOnYoutube": { - "message": "YouTube'da ImprovedTube Simgesi" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube dili" - }, - "improvedtubeVersion": { - "message": "ImprovedTube sürümü" - }, - "improveLogo": { - "message": "Logoyu geliştir" - }, - "increasePlaybackSpeed": { - "message": "Oynatma hızını artır" - }, - "increaseVolume": { - "message": "Sesi artır" - }, - "indigo": { - "message": "Çivit" - }, - "items": { - "message": "Öğeler" - }, - "languages": { - "message": "Diller" - }, - "legacyYoutube": { - "message": "Eski YouTube" - }, - "light": { - "message": "Açık" - }, - "lightBlue": { - "message": "Açık mavi" - }, - "lightGreen": { - "message": "Açık yeşil" - }, - "like": { - "message": "Beğen" - }, - "likes": { - "message": "Beğeniler" - }, - "lime": { - "message": "Lime" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Canlı sohbet" - }, - "liveChatType": { - "message": "Canlı sohbet türü" - }, - "loudnessNormalization": { - "message": "Gürültü normalleştirme" - }, - "markWatchedVideos": { - "message": "İzlenen videoları işaretle" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "mixer": { - "message": "Karıştırıcı" - }, - "myColors": { - "message": "Renklerim" - }, - "name": { - "message": "İsim" - }, - "nativeMiniPlayer": { - "message": "Native mini player" - }, - "new": { - "message": "Yeni" - }, - "nextVideo": { - "message": "Sonraki video" - }, - "night": { - "message": "Gece" - }, - "noActiveFeatures": { - "message": "Aktif özellik yok" - }, - "none": { - "message": "Yok" - }, - "noOpenVideoTabs": { - "message": "Açık video sekmesi yok" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Eski" - }, - "onAllVideos": { - "message": "Tüm videolarda" - }, - "onlyActiveOnYoutube": { - "message": "Yalnızca YouTube'da etkin" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "onSubscribedChannels": { - "message": "Abone olunan kanallarda" - }, - "orange": { - "message": "Turuncu" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Diğer" - }, - "permissions": { - "message": "İzinler" - }, - "pictureInPicture": { - "message": "Resim içinde resim" - }, - "pink": { - "message": "Pembe" - }, - "plain": { - "message": "Sade" - }, - "platform": { - "message": "Platform" - }, - "playbackSpeed": { - "message": "Oynatma hızı" - }, - "player": { - "message": "Oynatıcı" - }, - "playerColor": { - "message": "Oynatıcı rengi" - }, - "playerSize": { - "message": "Oynatıcı boyutu" - }, - "playlist": { - "message": "Oynatma Listesi" - }, - "playlists": { - "message": "Oynatma Listeleri" - }, - "playPause": { - "message": "Oynat / Duraklat" - }, - "popupPlayer": { - "message": "Popup oynatıcı" - }, - "position": { - "message": "Konum" - }, - "pressAnyKeyOrScroll": { - "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan" - }, - "previousVideo": { - "message": "Önceki video" - }, - "primaryColor": { - "message": "Birincil renk" - }, - "purple": { - "message": "Mor" - }, - "quality": { - "message": "Kalite" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Bizi oyla" - }, - "red": { - "message": "Kırmızı" - }, - "relatedVideos": { - "message": "İlgili videolar" - }, - "removeRelatedSearchResults": { - "message": "İlgili arama sonuçlarını kaldır" - }, - "repeat": { - "message": "Tekrarla" - }, - "reset": { - "message": "Sıfırla" - }, - "resetAllSettings": { - "message": "Tüm ayarları sıfırla" - }, - "resetAllShortcuts": { - "message": "Tüm kısayolları sıfırla" - }, - "reverse": { - "message": "Ters" - }, - "rotate": { - "message": "Döndür" - }, - "save": { - "message": "Kaydet" - }, - "saveAs": { - "message": "Farklı kaydet" - }, - "schedule": { - "message": "Takvim" - }, - "screen": { - "message": "Ekran" - }, - "screenshot": { - "message": "Ekran görüntüsü" - }, - "search": { - "message": "Ara" - }, - "searchBarOnly": { - "message": "Yalnızca arama çubuğu" - }, - "seekBackward10Seconds": { - "message": "10 saniye geriye git" - }, - "seekForward10Seconds": { - "message": "10 saniye ileriye git" - }, - "settings": { - "message": "Ayarlar" - }, - "settingsSuccessfullyImported": { - "message": "Ayarlar başarıyla içe aktarıldı" - }, - "shortcuts": { - "message": "Kısayollar" - }, - "showCardsOnMouseHover": { - "message": "Fareyle üzerine gelindiğinde kartları göster" - }, - "showChannelVideosCount": { - "message": "Kanalın video sayısını göster" - }, - "shuffle": { - "message": "Karıştır" - }, - "sidebar": { - "message": "Kenar çubuğu" - }, - "spacebar": { - "message": "Spacebar" - }, - "squaredUserImages": { - "message": "Kare kullanıcı görüntüleri" - }, - "static": { - "message": "Statik" - }, - "step": { - "message": "Adım" - }, - "stop": { - "message": "Durdur" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stiller" - }, - "subscriptions": { - "message": "Aboneler" - }, - "subtitles": { - "message": "Altyazılar" - }, - "sunset": { - "message": "Gün batımı" - }, - "sunsetToSunrise": { - "message": "Gün batımından gün doğumuna" - }, - "systemPeferenceDark": { - "message": "Sistem tercihi: koyu" - }, - "systemPeferenceLight": { - "message": "Sistem tercihi: açık" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Yazı rengi" - }, - "themes": { - "message": "Temalar" - }, - "thisWillRemoveAllCookies": { - "message": "Bu, tüm çerezleri kaldıracaktır." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Bu, tüm YouTube çerezlerini kaldıracaktır." - }, - "thisWillResetAllSettings": { - "message": "Bu, tüm ayarları sıfırlayacaktır." - }, - "thisWillResetAllShortcuts": { - "message": "Bu, tüm kısayolları sıfırlayacaktır." - }, - "thumbnails": { - "message": "Küçük resimler" - }, - "timeFrom": { - "message": "Şu zamandan" - }, - "timeTo": { - "message": "Şu zamana" - }, - "todayAt": { - "message": "Bugün" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Fragman otomatik oynatımı" - }, - "translations": { - "message": "Çeviriler" - }, - "transparentBackground": { - "message": "Saydam arka plan" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Sayfayı yeniden yüklemeyi deneyin" - }, - "type": { - "message": "Tip" - }, - "upNextAutoplay": { - "message": "Sonraki otomatik oynatma" - }, - "use24HourFormat": { - "message": "24 saat biçimini kullan" - }, - "version": { - "message": "Sürüm" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Kategorinin adını almak için video açıklaması genişletilecek" - }, - "videoFormats": { - "message": "Video formatları" - }, - "videos": { - "message": "Videolar" - }, - "volume": { - "message": "Ses" - }, - "watchLater": { - "message": "Sonra izle" - }, - "watchTime": { - "message": "İzleme zamanı" - }, - "whenTabIsChanged": { - "message": "Sekme değiştirildiğinde" - }, - "white": { - "message": "Beyaz" - }, - "yellow": { - "message": "Sarı" - }, - "youtubeHeaderLeft": { - "message": "YouTube Header (sol)" - }, - "youtubeHeaderRight": { - "message": "YouTube Header (sağ)" - }, - "youtubeHomePage": { - "message": "YouTube ana sayfası" - }, - "youtubeLanguage": { - "message": "YouTube dili" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube, h.264 codec bileşeni için video kalitesini 1080p ile sınırlar" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "toggleCards": { - "message": "Toggle cards" - } -} diff --git a/unstable/_locales/zh_CN/messages.json b/unstable/_locales/zh_CN/messages.json deleted file mode 100644 index 58bdaa33c..000000000 --- a/unstable/_locales/zh_CN/messages.json +++ /dev/null @@ -1,815 +0,0 @@ -{ - "cropChapterTitles": { - "message": "裁剪章节标题" - }, - "about": { - "message": "关于" - }, - "accept": { - "message": "接受" - }, - "activate": { - "message": "启用" - }, - "activateCaptions": { - "message": "启用字幕" - }, - "activated": { - "message": "启用" - }, - "activatedFeatures": { - "message": "已启用功能" - }, - "activateFullscreen": { - "message": "启用全屏" - }, - "activeFeatures": { - "message": "启用功能" - }, - "addScrollToTop": { - "message": "返回顶部按钮" - }, - "ads": { - "message": "广告" - }, - "all": { - "message": "所有" - }, - "allow": { - "message": "允许" - }, - "allow60fps": { - "message": "允许60FPS" - }, - "alwaysActive": { - "message": "始终启用" - }, - "alwaysShowProgressBar": { - "message": "始终显示进度条" - }, - "amber": { - "message": "琥珀色" - }, - "analyzer": { - "message": "分析仪" - }, - "appearance": { - "message": "外观" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "音频" - }, - "audioFormats": { - "message": "音频格式" - }, - "auto": { - "message": "自动" - }, - "autoFullscreen": { - "message": "自动全屏" - }, - "autopauseWhenSwitchingTabs": { - "message": "切换标签时暂停播放" - }, - "autoplay": { - "message": "自动播放" - }, - "backupAndReset": { - "message": "备份与恢复" - }, - "baseOnSystemColorScheme": { - "message": "使用系统配色" - }, - "belowPlayer": { - "message": "在播放器下方" - }, - "black": { - "message": "纯黑" - }, - "blacklist": { - "message": "黑名单" - }, - "blockAll": { - "message": "拦截所有" - }, - "blue": { - "message": "蓝色" - }, - "blueGray": { - "message": "蓝灰色" - }, - "bluelight": { - "message": "色彩柔和度" - }, - "brown": { - "message": "棕色" - }, - "browser": { - "message": "浏览器" - }, - "browserVersion": { - "message": "浏览器版本" - }, - "bubbles": { - "message": "网格" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "按钮" - }, - "cancel": { - "message": "取消" - }, - "categories": { - "message": "分类" - }, - "channel": { - "message": "电影和节目" - }, - "channels": { - "message": "频道" - }, - "clipboard": { - "message": "粘贴板" - }, - "codecH264": { - "message": "采用 h.264 编码" - }, - "collapsed": { - "message": "收起" - }, - "collapseOfSubscriptionSections": { - "message": "订阅区域显示展开/收起按钮" - }, - "comments": { - "message": "评论" - }, - "confirmationBeforeClosing": { - "message": "页面关闭前提示" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "核心" - }, - "customCss": { - "message": "自定义CSS" - }, - "customJs": { - "message": "自定义JS" - }, - "cyan": { - "message": "青色" - }, - "dark": { - "message": "黑暗" - }, - "darkTheme": { - "message": "夜间模式" - }, - "dateAndTime": { - "message": "时间与日期" - }, - "dawn": { - "message": "黎明" - }, - "decreasePlaybackSpeed": { - "message": "视频减速" - }, - "decreaseVolume": { - "message": "-5%音量" - }, - "deepOrange": { - "message": "深橙色" - }, - "deepPurple": { - "message": "深紫色" - }, - "defaultChannelTab": { - "message": "默认频道页" - }, - "deleteYoutubeCookies": { - "message": "清空 YouTube cookies" - }, - "description": { - "message": "视频描述" - }, - "desert": { - "message": "沙漠" - }, - "details": { - "message": "细节信息" - }, - "developerOptions": { - "message": "开发者选项" - }, - "device": { - "message": "设备" - }, - "dim": { - "message": "遮罩程度" - }, - "disabled": { - "message": "停用" - }, - "dislike": { - "message": "踩一下" - }, - "donate": { - "message": "支持" - }, - "doNotChange": { - "message": "不做改变" - }, - "draggable": { - "message": "可拖动" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "暂无" - }, - "enabled": { - "message": "启用" - }, - "enabledForced": { - "message": "强制启用" - }, - "expanded": { - "message": "展开" - }, - "exportSettings": { - "message": "导出设置" - }, - "extension": { - "message": "扩展" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "过滤" - }, - "fitToWindow": { - "message": "窗口自适应" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "字体" - }, - "footer": { - "message": "底部栏" - }, - "forcedPlaybackSpeed": { - "message": "强制设置播放速度" - }, - "forcedTheaterMode": { - "message": "强制设置剧场模式" - }, - "forcedVolume": { - "message": "强制修改音量" - }, - "foundABug": { - "message": "发现了一个 Bug?" - }, - "fullWindow": { - "message": "全屏" - }, - "general": { - "message": "一般设置" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "转到搜索栏" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "绿色" - }, - "hdThumbnail": { - "message": "高清缩略图" - }, - "hdThumbnails": { - "message": "高清缩略图" - }, - "header": { - "message": "顶部栏" - }, - "hidden": { - "message": "隐藏" - }, - "hiddenOnVideoPage": { - "message": "在视频播放页面时隐藏" - }, - "hideAnimatedThumbnails": { - "message": "隐藏动态缩略图" - }, - "hideAnnotations": { - "message": "隐藏预览图" - }, - "hideCards": { - "message": "隐藏信息卡片" - }, - "hideDetails": { - "message": "隐藏详细信息" - }, - "hideEndscreen": { - "message": "隐藏结束画面" - }, - "hideFeaturedContent": { - "message": "隐藏精选频道" - }, - "hideFooter": { - "message": "隐藏底部栏" - }, - "hidePlaylist": { - "message": "隐藏播放列表" - }, - "hideRightButtons": { - "message": "隐藏右侧按钮" - }, - "hideScrollForDetails": { - "message": "隐藏 «滚动至详细信息»" - }, - "hideViewsCount": { - "message": "隐藏播放量" - }, - "history": { - "message": "历史记录" - }, - "home": { - "message": "首页" - }, - "hover": { - "message": "悬浮" - }, - "hoverOnVideoPage": { - "message": "在视频播放页面时悬浮显示" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "投稿于多久之前" - }, - "icons": { - "message": "图标" - }, - "iconsOnly": { - "message": "仅显示图标" - }, - "importSettings": { - "message": "导入设置" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube 扩展程序图标" - }, - "improvedtubeIconOnYoutube": { - "message": "在 YouTube 显示 ImprovedTube 图标" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube 语言" - }, - "improvedtubeVersion": { - "message": "ImprovedTube 版本" - }, - "improveLogo": { - "message": "优化图标" - }, - "increasePlaybackSpeed": { - "message": "视频加速" - }, - "increaseVolume": { - "message": "+5%音量" - }, - "indigo": { - "message": "靛青色" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "语言" - }, - "legacyYoutube": { - "message": "旧版 YouTube" - }, - "light": { - "message": "明亮" - }, - "lightBlue": { - "message": "浅蓝色" - }, - "lightGreen": { - "message": "浅绿色" - }, - "like": { - "message": "顶一下" - }, - "likes": { - "message": "顶/踩总数" - }, - "lime": { - "message": "石灰色" - }, - "list": { - "message": "列表" - }, - "liveChat": { - "message": "实时聊天" - }, - "liveChatType": { - "message": "事实聊天类型" - }, - "loudnessNormalization": { - "message": "音量标准化" - }, - "markWatchedVideos": { - "message": "标记已观看的视频" - }, - "customMiniPlayer": { - "message": "自定义迷你播放器" - }, - "mixer": { - "message": "混音器" - }, - "myColors": { - "message": "自定义颜色" - }, - "name": { - "message": "名字" - }, - "nativeMiniPlayer": { - "message": "原版迷你播放器" - }, - "new": { - "message": "新的" - }, - "nextVideo": { - "message": "上一个视频" - }, - "night": { - "message": "夜色" - }, - "noActiveFeatures": { - "message": "没有已启用功能" - }, - "none": { - "message": "无" - }, - "noOpenVideoTabs": { - "message": "没有打开视频标签" - }, - "normal": { - "message": "正常" - }, - "old": { - "message": "旧版" - }, - "onAllVideos": { - "message": "在所有视频" - }, - "onlyActiveOnYoutube": { - "message": "仅在 YouTube 上启用" - }, - "onlyOnePlayerInstancePlaying": { - "message": "同时仅播放一个" - }, - "onSubscribedChannels": { - "message": "在订阅频道" - }, - "orange": { - "message": "橙色" - }, - "os": { - "message": "操作系统" - }, - "other": { - "message": "其他" - }, - "permissions": { - "message": "许可" - }, - "pictureInPicture": { - "message": "画中画" - }, - "pink": { - "message": "粉色" - }, - "plain": { - "message": "野外" - }, - "platform": { - "message": "平台" - }, - "playbackSpeed": { - "message": "播放速度" - }, - "player": { - "message": "播放器" - }, - "playerColor": { - "message": "播放器颜色" - }, - "playerSize": { - "message": "播放器大小" - }, - "playlist": { - "message": "播放列表" - }, - "playlists": { - "message": "稍后观看" - }, - "playPause": { - "message": "播放 / 暂停" - }, - "popupPlayer": { - "message": "弹出播放器" - }, - "position": { - "message": "位置" - }, - "pressAnyKeyOrScroll": { - "message": "按下任意键或滚动鼠标滚轴." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "按下任意键或鼠标滚轴." - }, - "previousVideo": { - "message": "下一个视频" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "紫色" - }, - "quality": { - "message": "画质" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "给我们评价" - }, - "red": { - "message": "红色" - }, - "relatedVideos": { - "message": "相关视频" - }, - "removeRelatedSearchResults": { - "message": "隐藏搜索相关结果" - }, - "repeat": { - "message": "循环" - }, - "reset": { - "message": "重置" - }, - "resetAllSettings": { - "message": "重置所有设置" - }, - "resetAllShortcuts": { - "message": "重置所有快捷键" - }, - "reverse": { - "message": "逆序" - }, - "rotate": { - "message": "旋转" - }, - "save": { - "message": "保存" - }, - "saveAs": { - "message": "另存为" - }, - "schedule": { - "message": "定时开/关" - }, - "screen": { - "message": "屏幕" - }, - "screenshot": { - "message": "截图" - }, - "search": { - "message": "搜索" - }, - "searchBarOnly": { - "message": "仅搜索栏" - }, - "seekBackward10Seconds": { - "message": "倒退10秒" - }, - "seekForward10Seconds": { - "message": "快进10秒" - }, - "settings": { - "message": "ImprovedTube 设置" - }, - "settingsSuccessfullyImported": { - "message": "设置导入成功" - }, - "shortcuts": { - "message": "快捷键" - }, - "showCardsOnMouseHover": { - "message": "鼠标悬浮时显示信息卡片" - }, - "showChannelVideosCount": { - "message": "显示频道内视频数" - }, - "shuffle": { - "message": "随机" - }, - "sidebar": { - "message": "侧边栏" - }, - "spacebar": { - "message": "空格" - }, - "squaredUserImages": { - "message": "方形用户头像" - }, - "static": { - "message": "静态" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "停止" - }, - "style": { - "message": "样式" - }, - "styles": { - "message": "样式" - }, - "subscriptions": { - "message": "订阅内容" - }, - "subtitles": { - "message": "副标题" - }, - "sunset": { - "message": "晚霞" - }, - "sunsetToSunrise": { - "message": "日落到日出" - }, - "systemPeferenceDark": { - "message": "系统偏好: 深色" - }, - "systemPeferenceLight": { - "message": "系统偏好: 浅色" - }, - "teal": { - "message": "蓝绿色" - }, - "textColor": { - "message": "文字颜色" - }, - "themes": { - "message": "主题" - }, - "thisWillRemoveAllCookies": { - "message": "将清空所有 cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "将清空所有 YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "将重置所有设置." - }, - "thisWillResetAllShortcuts": { - "message": "将会重置所有快捷键" - }, - "thumbnails": { - "message": "缩略图" - }, - "timeFrom": { - "message": "开始时间" - }, - "timeTo": { - "message": "结束时间" - }, - "todayAt": { - "message": "截止今天" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "自动播放预告片" - }, - "translations": { - "message": "翻译" - }, - "transparentBackground": { - "message": "透明背景" - }, - "trending": { - "message": "时下流行" - }, - "tryToReloadThePage": { - "message": "尝试刷新页面" - }, - "turnOff": { - "message": "关闭时间" - }, - "turnOn": { - "message": "开启时间" - }, - "type": { - "message": "类型" - }, - "upNextAutoplay": { - "message": "自动播放下一视频" - }, - "use24HourFormat": { - "message": "使用24小时制" - }, - "version": { - "message": "版本" - }, - "video": { - "message": "视频" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" - }, - "videoFormats": { - "message": "视频格式" - }, - "videos": { - "message": "视频" - }, - "volume": { - "message": "音量" - }, - "watchLater": { - "message": "稍后观看" - }, - "watchTime": { - "message": "观看时间" - }, - "whenTabIsChanged": { - "message": "标签更改时" - }, - "white": { - "message": "白色" - }, - "yellow": { - "message": "黄色" - }, - "youtubeHeaderLeft": { - "message": "Youtube标题(左)" - }, - "youtubeHeaderRight": { - "message": "Youtube标题(右)" - }, - "youtubeHomePage": { - "message": "YouTube 主页" - }, - "youtubeLanguage": { - "message": "YouTube 语言" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "采用 H.264 编解码时,YouTube 会将视频画质设为 1080p" - }, - "redDislikeButton": { - "message": "踩按钮显示为红色" - }, - "hideGradientBottom": { - "message": "隐藏底部渐变层" - }, - "statsForNerds": { - "message": "显示专业信息" - }, - "toggleCards": { - "message": "Toggle cards" - } -} diff --git a/unstable/_locales/zh_TW/messages.json b/unstable/_locales/zh_TW/messages.json deleted file mode 100644 index 01cba8649..000000000 --- a/unstable/_locales/zh_TW/messages.json +++ /dev/null @@ -1,809 +0,0 @@ -{ - "cropChapterTitles": { - "message": "截斷章節名稱" - }, - "about": { - "message": "關於" - }, - "accept": { - "message": "接受" - }, - "activate": { - "message": "啟用" - }, - "activateCaptions": { - "message": "開啟字幕" - }, - "activated": { - "message": "啟用" - }, - "activatedFeatures": { - "message": "已啟用功能" - }, - "activateFullscreen": { - "message": "開啟全螢幕" - }, - "activeFeatures": { - "message": "已啟用功能" - }, - "addScrollToTop": { - "message": "新增「回到頂部」按鈕" - }, - "ads": { - "message": "廣告" - }, - "all": { - "message": "所有" - }, - "allow": { - "message": "允許" - }, - "allow60fps": { - "message": "允許 60fps" - }, - "alwaysActive": { - "message": "始終有效" - }, - "alwaysShowProgressBar": { - "message": "一律顯示進度條" - }, - "amber": { - "message": "琥珀色" - }, - "analyzer": { - "message": "分析儀" - }, - "appearance": { - "message": "外貌" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "音頻" - }, - "audioFormats": { - "message": "音頻格式" - }, - "auto": { - "message": "自動" - }, - "autoFullscreen": { - "message": "自動全螢幕" - }, - "autopauseWhenSwitchingTabs": { - "message": "切換分頁時自動暫停" - }, - "autoplay": { - "message": "自動播放" - }, - "backupAndReset": { - "message": "備份&重置" - }, - "baseOnSystemColorScheme": { - "message": "使用系統配色方案" - }, - "belowPlayer": { - "message": "於播放器底下" - }, - "black": { - "message": "黑色" - }, - "blacklist": { - "message": "黑名單" - }, - "blockAll": { - "message": "封鎖所有" - }, - "blue": { - "message": "藍色" - }, - "blueGray": { - "message": "藍灰色" - }, - "bluelight": { - "message": "藍光" - }, - "brown": { - "message": "棕色" - }, - "browser": { - "message": "瀏覽器" - }, - "browserVersion": { - "message": "瀏覽器版本" - }, - "bubbles": { - "message": "Bubbles" - }, - "bug": { - "message": "問題" - }, - "buttons": { - "message": "按鈕" - }, - "cancel": { - "message": "取消" - }, - "categories": { - "message": "類別" - }, - "channel": { - "message": "頻道" - }, - "channels": { - "message": "頻道" - }, - "clipboard": { - "message": "剪贴板" - }, - "codecH264": { - "message": "影片編解碼器 h.264" - }, - "collapsed": { - "message": "簡縮" - }, - "collapseOfSubscriptionSections": { - "message": "於訂閱區顯示縮放按鈕" - }, - "comments": { - "message": "評論" - }, - "confirmationBeforeClosing": { - "message": "關閉前先確認" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "customCss": { - "message": "自訂 CSS" - }, - "customJs": { - "message": "自訂 JS" - }, - "cyan": { - "message": "青色" - }, - "dark": { - "message": "暗黑" - }, - "darkTheme": { - "message": "暗黑主題" - }, - "dateAndTime": { - "message": "日期和時間" - }, - "dawn": { - "message": "黎明" - }, - "decreasePlaybackSpeed": { - "message": "降低播放速度" - }, - "decreaseVolume": { - "message": "減輕音量" - }, - "deepOrange": { - "message": "深橙色" - }, - "deepPurple": { - "message": "深紫色" - }, - "defaultChannelTab": { - "message": "預設頻道標籤" - }, - "deleteYoutubeCookies": { - "message": "刪除 YouTube cookies" - }, - "description": { - "message": "影片描述" - }, - "desert": { - "message": "沙漠" - }, - "details": { - "message": "細節" - }, - "developerOptions": { - "message": "開發人員選項" - }, - "device": { - "message": "裝置" - }, - "dim": { - "message": "光線暗度" - }, - "disabled": { - "message": "關閉" - }, - "dislike": { - "message": "不喜歡" - }, - "donate": { - "message": "捐贈" - }, - "doNotChange": { - "message": "不要改變" - }, - "draggable": { - "message": "可拖動" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "空白" - }, - "enabled": { - "message": "啟用" - }, - "enabledForced": { - "message": "強制啟用" - }, - "expanded": { - "message": "擴展" - }, - "exportSettings": { - "message": "導出設定" - }, - "extension": { - "message": "擴充元件" - }, - "file": { - "message": "檔案" - }, - "filters": { - "message": "濾鏡" - }, - "fitToWindow": { - "message": "依視窗大小縮放" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "字體" - }, - "footer": { - "message": "頁腳" - }, - "forcedPlaybackSpeed": { - "message": "強制播放速度" - }, - "forcedTheaterMode": { - "message": "強制劇院模式" - }, - "forcedVolume": { - "message": "強制播放音量" - }, - "foundABug": { - "message": "遇到問題了嗎?" - }, - "fullWindow": { - "message": "全螢幕" - }, - "general": { - "message": "一般" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "轉到搜索框" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "綠色" - }, - "hdThumbnail": { - "message": "HD 縮圖" - }, - "hdThumbnails": { - "message": "HD 縮圖" - }, - "header": { - "message": "標頭" - }, - "hidden": { - "message": "隱藏" - }, - "hiddenOnVideoPage": { - "message": "於影片頁面自動隱藏" - }, - "hideAnimatedThumbnails": { - "message": "隱藏動態的縮略圖" - }, - "hideAnnotations": { - "message": "隱藏註解" - }, - "hideCards": { - "message": "隱藏資訊卡" - }, - "hideDetails": { - "message": "隱藏細節" - }, - "hideEndscreen": { - "message": "隱藏結束畫面" - }, - "hideFeaturedContent": { - "message": "隱藏精選影片" - }, - "hideFooter": { - "message": "隱藏頁腳" - }, - "hidePlaylist": { - "message": "隱藏播放清單" - }, - "hideRightButtons": { - "message": "隱藏右側按鈕" - }, - "hideScrollForDetails": { - "message": "隱藏「向下捲動即可查看詳情」" - }, - "hideViewsCount": { - "message": "隱藏觀看次數" - }, - "history": { - "message": "觀看記錄" - }, - "home": { - "message": "首頁" - }, - "hover": { - "message": "滑鼠暫留時顯示" - }, - "hoverOnVideoPage": { - "message": "於影片頁面滑鼠暫留時顯示" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "影片上傳了多久" - }, - "icons": { - "message": "圖標" - }, - "iconsOnly": { - "message": "只有圖標" - }, - "importSettings": { - "message": "導入設定" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube icon in Browser" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icon on YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube 語言" - }, - "improvedtubeVersion": { - "message": "ImprovedTube 版本" - }, - "improveLogo": { - "message": "改進 YouTube 圖示" - }, - "increasePlaybackSpeed": { - "message": "提高播放速度" - }, - "increaseVolume": { - "message": "增加音量" - }, - "indigo": { - "message": "靛青" - }, - "items": { - "message": "項目" - }, - "languages": { - "message": "語言" - }, - "legacyYoutube": { - "message": "舊版 YouTube" - }, - "light": { - "message": "Light" - }, - "lightBlue": { - "message": "淺藍色" - }, - "lightGreen": { - "message": "淺綠色" - }, - "like": { - "message": "喜歡" - }, - "likes": { - "message": "顯示按讚數量" - }, - "lime": { - "message": "萊姆色" - }, - "list": { - "message": "清單" - }, - "liveChat": { - "message": "Live 聊天視窗" - }, - "liveChatType": { - "message": "Live 聊天視窗種類" - }, - "loudnessNormalization": { - "message": "音量標準化" - }, - "markWatchedVideos": { - "message": "標記已觀看影片" - }, - "customMiniPlayer": { - "message": "自訂迷你播放器" - }, - "mixer": { - "message": "音量混合器" - }, - "myColors": { - "message": "自訂主色" - }, - "name": { - "message": "名稱" - }, - "nativeMiniPlayer": { - "message": "內建迷你播放器" - }, - "new": { - "message": "新增" - }, - "nextVideo": { - "message": "下一個影片" - }, - "night": { - "message": "夜晚" - }, - "noActiveFeatures": { - "message": "無已啟用功能" - }, - "none": { - "message": "無" - }, - "noOpenVideoTabs": { - "message": "無已開啟之影片頁面" - }, - "normal": { - "message": "正常" - }, - "old": { - "message": "舊版" - }, - "onAllVideos": { - "message": "於所有影片中" - }, - "onlyActiveOnYoutube": { - "message": "僅在YouTube上有效" - }, - "onlyOnePlayerInstancePlaying": { - "message": "同時間僅限播放單一影片" - }, - "onSubscribedChannels": { - "message": "於已訂閱的頻道中" - }, - "orange": { - "message": "橘色" - }, - "os": { - "message": "操作系統" - }, - "other": { - "message": "其他" - }, - "permissions": { - "message": "權限" - }, - "pictureInPicture": { - "message": "子母畫面" - }, - "pink": { - "message": "粉紅色" - }, - "plain": { - "message": "樸素" - }, - "platform": { - "message": "Platform" - }, - "playbackSpeed": { - "message": "播放速度" - }, - "player": { - "message": "播放器" - }, - "playerColor": { - "message": "影片進度條顏色" - }, - "playerSize": { - "message": "播放器大小" - }, - "playlist": { - "message": "播放列表" - }, - "playlists": { - "message": "播放清單" - }, - "playPause": { - "message": "播放/暫停" - }, - "popupPlayer": { - "message": "彈出播放器" - }, - "position": { - "message": "位置" - }, - "pressAnyKeyOrScroll": { - "message": "按任意鍵或使用滑鼠滾輪。" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "按任意鍵或使用鼠標滾輪。" - }, - "previousVideo": { - "message": "回到之前的影片" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "紫色" - }, - "quality": { - "message": "品質" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "評分" - }, - "red": { - "message": "紅色" - }, - "relatedVideos": { - "message": "推薦影片" - }, - "removeRelatedSearchResults": { - "message": "移除搜尋相關結果" - }, - "repeat": { - "message": "重複播放" - }, - "reset": { - "message": "重置" - }, - "resetAllSettings": { - "message": "重置所有設定" - }, - "resetAllShortcuts": { - "message": "重置所有快捷鍵" - }, - "reverse": { - "message": "回播" - }, - "rotate": { - "message": "旋轉影片" - }, - "save": { - "message": "儲存" - }, - "saveAs": { - "message": "另存為" - }, - "schedule": { - "message": "排程" - }, - "screen": { - "message": "螢幕" - }, - "screenshot": { - "message": "截圖" - }, - "search": { - "message": "搜尋" - }, - "searchBarOnly": { - "message": "僅顯示搜尋列" - }, - "seekBackward10Seconds": { - "message": "倒退10秒" - }, - "seekForward10Seconds": { - "message": "前進10秒" - }, - "settings": { - "message": "設定" - }, - "settingsSuccessfullyImported": { - "message": "設定成功導入" - }, - "shortcuts": { - "message": "快捷鍵" - }, - "showCardsOnMouseHover": { - "message": "滑鼠暫留時顯示資訊卡" - }, - "showChannelVideosCount": { - "message": "顯示頻道影片數量" - }, - "shuffle": { - "message": "隨機播放" - }, - "sidebar": { - "message": "側邊欄" - }, - "spacebar": { - "message": "空格鍵" - }, - "squaredUserImages": { - "message": "方形用戶圖像" - }, - "static": { - "message": "靜止" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "停止" - }, - "style": { - "message": "樣式" - }, - "styles": { - "message": "樣式" - }, - "subscriptions": { - "message": "訂閱內容" - }, - "subtitles": { - "message": "允許字幕" - }, - "sunset": { - "message": "日落" - }, - "sunsetToSunrise": { - "message": "日出至入落" - }, - "systemPeferenceDark": { - "message": "系統預設: 暗黑模式" - }, - "systemPeferenceLight": { - "message": "系統預設: 白天模式" - }, - "teal": { - "message": "藍綠色" - }, - "textColor": { - "message": "文字顏色" - }, - "themes": { - "message": "主題" - }, - "thisWillRemoveAllCookies": { - "message": "這將刪除所有的 cookies。" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "這會刪除所有 YouTube Cookies。" - }, - "thisWillResetAllSettings": { - "message": "這會重置所有設定。" - }, - "thisWillResetAllShortcuts": { - "message": "這會重置所有快捷鍵。" - }, - "thumbnails": { - "message": "縮略圖" - }, - "timeFrom": { - "message": "開始時間" - }, - "timeTo": { - "message": "結束時間" - }, - "todayAt": { - "message": "自今日" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "預告片自動播放" - }, - "translations": { - "message": "翻譯" - }, - "transparentBackground": { - "message": "透明背景" - }, - "trending": { - "message": "發燒影片" - }, - "tryToReloadThePage": { - "message": "嘗試重新整理頁面" - }, - "type": { - "message": "種類" - }, - "upNextAutoplay": { - "message": "自動播放下一個影片" - }, - "use24HourFormat": { - "message": "使用24小時格式" - }, - "version": { - "message": "版本" - }, - "video": { - "message": "影片" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" - }, - "videoFormats": { - "message": "影片格式" - }, - "videos": { - "message": "影片" - }, - "volume": { - "message": "音量" - }, - "watchLater": { - "message": "稍後觀看" - }, - "watchTime": { - "message": "已觀看時間" - }, - "whenTabIsChanged": { - "message": "When tab is changed" - }, - "white": { - "message": "白色" - }, - "yellow": { - "message": "黃色" - }, - "youtubeHeaderLeft": { - "message": "YouTube 標頭 (左)" - }, - "youtubeHeaderRight": { - "message": "YouTube 標頭 (右)" - }, - "youtubeHomePage": { - "message": "預設的YouTube主頁" - }, - "youtubeLanguage": { - "message": "YouTube 語言" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "使用 H.264 編碼時,YouTube 會將畫質限定為 1080p 內。" - }, - "redDislikeButton": { - "message": "將「不喜歡」數量以紅色顯示" - }, - "hideGradientBottom": { - "message": "隱藏底部漸層圖層" - }, - "statsForNerds": { - "message": "顯示「統計資料」按鈕" - }, - "toggleCards": { - "message": "Toggle cards" - } -} diff --git a/unstable/assets/fonts/OpenSans-Regular.ttf b/unstable/assets/fonts/OpenSans-Regular.ttf deleted file mode 100644 index 29bfd35a2bfdd92b6e8b4ec2970f4d1eebf49357..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96932 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

_T_kl)Xoan=RX{3lY#VQTZ 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 diff --git a/unstable/assets/fonts/OpenSans-SemiBold.ttf b/unstable/assets/fonts/OpenSans-SemiBold.ttf deleted file mode 100644 index 54e7059cf36359cb5a3860085714a95306af0dea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100820 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 DEZ%x^ diff --git a/unstable/assets/fonts/XanhMono-Regular.ttf b/unstable/assets/fonts/XanhMono-Regular.ttf deleted file mode 100644 index b56a225da85492bdeb264c204e12fdf0f93a2eb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58704 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 z 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'gk(b^wLY2zSwEf z-GppcVkr2ul`eFQ)6lAP(X>qMvb<|&(!qp_>QK`C>-Y@q<2JGr zTL3b_9FiZA_yb%#LT(H+j;(=od9x18RK+;8d*Ou_QlG}v=_GL5vZ=Zhm9FS`9PxcK zX3RKgBiG6S$Or?%)nNR$I;IujI&=*@DKDGslP9h8ui?uZ((!exG*dg#hjBCrE(&j? zd(p8H&rcfosk&P`0Ey5Q{28JRDgzO&!gOidyllF&tif|?$MySNyLRbRsDYdGG2v>M zlz1aLN{o%X*YVG$R!zUCo$44kiIyx`G8}?lhEVH&RHlMy1HYNe|LnE-Qe$KY~YM*4_?Buy3g7i=vpErIT@*vS9A z_udOOZQ2xYRWB)+^fBR*_!fm19VJ%e@(H``zWeT5rogO{#tJlXSiE@gPtg+maa^7l z1>>?=!T1LY&CSihph1JGj&S0{i2x^;!guOF`%L?Zqbh%sJ|7h3ePi5gXxTB!sV$`8s4I##3^WZAn$Y^l~0*oS^!ZV|47{*1GQ&yKT=@6V_l_F zjtS>mkF5MeM~PGN*@h?orpg1Ck~BWMR|lYo*4Ea(7_2>wq}RWrH5tr=i!XNZP|;E1 z3>v(QhwEEd=;8aD-h!7dK-Grd8o+n%Cjr)~!n3AnFrCp%xUBMg(}|7}XXL*EtDVz* zS3Y&|-U3JgE9(T0;{JPCt*^vNfm zoPqQ&v0%|#V5V4SFdf{)t7x36qnggB#~0u+@BaJme<~xr6jil}_*TSyC_8U|g$NVEhCV6@RHT+%dVqX*GZVo&;RgIylP zrp}9=_*tD;+L6CLpXqFkJ-XR^n(w>;8O%vbgWjkn)al}Iy~_Y z;fd#Rc|(MTasaW&!i5Wm;R)d}bao9r1fFLsl`XMHSv*R=3fIptvVYDaUoWg0(gCDo z3l=Qsjm?kW$32~4h`@cuQsEMNi{R>uG6O+Y1m z8!#S0yHapjW2tb7v+{}1?Z^GE(9AEvVb#_1=g)8WIc>XefQXTUC!Tm>1jY*D3|vpJ zp3X{zOC05$@}A8*-;;O_UDne$%HCG_;AToT?62@5aTGPJ2MR9r0F--akOxp~C+HhK#iFY}Yi9 P00000NkvXXu0mjf6&U@W diff --git a/unstable/assets/icons/16.png b/unstable/assets/icons/16.png deleted file mode 100644 index 495f73cb35ec1b3c761da9263f5dacb772d8963a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 697 zcmV;q0!ICbP)9Hi>4j2#Q4-1<`1sHiC^9lfu8! zAFK>2#KKfIcG?IQXs6-SL3xCk;hJE+lITmk|yj>l* zaOW~}ICJJ)M_V+iBRhnh!8Al*vw~8@X9Z^Bl=0HOTW|CAZuz2j7fOvHC-l7cMP%4lB;nr-VWA`Y9EyqA5@CHf7LSC^8VYnc#1Nr$#)l_v= z=R)6J;@%x3)d|AqYED>&BInhYpOI9#<|dH9b(SgZIZMZ`Q#mcPseo79T+yoXEeu+7 z*RvsOHc(JnkkVGy0&Y&a1u1)Ct4<}RFIqlJx_AB~sFLM%i$ zuDLX+0{2&>3M8qL%2KdV2wCo55KO=;l)xR9qG03d?wa?$th(%(49w2Xym@bCcfZvn zV9jRp>vFmL0Y3q>54Yj}keiyO-IPkDo}Z$vl6JfO$+E0VH2y?wXH`e8ZoTLtxekZJ z7sX=HBA^5?HRQT(3;7|7v;gs~=+%Llxcycxm*+YWkS`Gw8S0YH=Ovj;3RWhpjDjmi z;TTSiXpKhW0F6%ol~^nmlT0Q!oK}_qooM8h-{{%KjG#Zs$ zE+?r}N({qT<6iF$;&)CxQr)-^2pS(Fkw{3PP>^^$9_%@xz@C5lHW7-3LLtd!vyx7y zl?b+GOd7awmEhoa^GGD(-@>NA3%U=;_(+Ho`~AN3dYf~E{=Wu*2R!FmV4KKjG?GrI zqrM6UQH%!OZv*iTq;o`d`uqZm#X?OS3Rd2O#RuuRhx SwP%R{00003V%c#V$kTK7`v)T2YLuUPBo$!g16b zt4~IcnO}c@XG%ppgmm; zsrbkiR9`?fS_B0|DJ4<>mh!nODTMbLtZXt%b|q^jko9rR;`9pb!PL zKqfagN}sXj@z}DR{Z$F1d)MEi=uuVEg7}98fyYol0}4=1A zj6H=gr2=>y1+gr4b#s{liSM3ni-RbJ_{`&lW z=PM#5a|Z~~jB~F582xHvV=|h$g3>rvC`H>>5Sf-&AkUy=xD1(#N5~F*4U!!k|( z$8X|<9IF0%RT|_%pfUPfpYJrHBIwNFcnJ2>HGMU2SUBUq?h62Xo z-SGgCsdGs8?!ygT7&BuUHTPPawg(-rB9y9uhbUs=Ez~dCNZq`(n8<{H0{Du{bc>@o zG=}pYomZqr;Nbt>^!d~+Tvw1?9cYnAvxle&jp3jvN zvYtW2eCdrQvqxf4dkZC=tL-7TufYs*<1(p}dyqf+D}lp$2IXebt2=31p4@X2$6obA zucCNVNkZx}qK z_*deMJZ^bYx^qo?Cc`&~wgw%^#9J^Xf(&0Rm$}Av-CuiEB3|d@O`i;g5&%f-SUp#j zqq*cXMhsVJKtq5*xoX8d*tGTF`BJ>l50l|{*R)5h97LI06?hBF#kZkQ=!?F-zMSAq?peU}^z1}_P5klU6if%Ry4i5gIJAmY$ z!r)3ypkJ_XIILP)T2yCer;0|Seow4xu;PW!&dxrgAuu;L7dt*a=3x<|!Yip)2Z)t{ z6H;w#Y^bfRErlH;AIw2X&P)G$wj+Lu21cg2e#CV-##e8G2m{Wj-$+827R#g_}dLnk2T3%i*7UVB>fJYf`HU)!) zU1#j?@9X5aS9pd&{6`^JSl$~Z!cJ_)Msl~-bWhR$+!fkKpzaJePeau(Di^f-I*(j!E9za{= z$h??vg=e!*Z{YF}!X2=ClEaDl9aY?h3g6{zFs-1>VOEY-JyGU=xwV#-mQ*U0a*`8I zoayIsG6Z10LFf4eeo_D@kx1kg*nJ6La&9LnVt02}Ei5cJ7ZKtlG2{4+Joa}y{g;As zPC+UrCnw{0r@vxaa4zs{$HzlIF#~Z3*MiRvae3@R#7N-jw*~GhfXZYt*$T$3Sx|%| z6i&R~FcK5?5cCcfUfT50Yrs?t4-c=x@lEJfMK6Jbi@q2q&U!7YkP~)t`WJLSg5nQK z1UKbd2=*~3B6>g0#3W;!V15@DmD_R+H*9)Zv;YB4Oia{a{t4(q(DR}X5h+oR`_Zv9fpY^!%>egZ{^{v9YIz1C+(a YzX6BmJ0zL24*&oF07*qoM6N<$f+OHn0ssI2 diff --git a/unstable/assets/icons/48.png b/unstable/assets/icons/48.png deleted file mode 100644 index b2dcf5f66f636df72f8724918d965ae2459e131f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2180 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 diff --git a/unstable/background.js b/unstable/background.js deleted file mode 100644 index a4a744e21..000000000 --- a/unstable/background.js +++ /dev/null @@ -1,342 +0,0 @@ -/*--------------------------------------------------------------- ->>> BACKGROUND ------------------------------------------------------------------ -# Global variables -# Functions -# Context menu items -# Message listener -# Storage change listener -# Initialization -# Uninstall URL -# Google Analytics ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# GLOBAL VARIABLES ----------------------------------------------------------------*/ - -var locale_code = 'en', - browser_icon = false; - - -/*--------------------------------------------------------------- -# FUNCTIONS ----------------------------------------------------------------*/ - -function isset(variable) { - if (typeof variable === 'undefined' || variable === null) { - return false; - } - - return true; -} - -function getTranslations(path) { - var xhr = new XMLHttpRequest(); - - xhr.addEventListener('load', function() { - if (chrome && chrome.tabs) { - chrome.tabs.query({}, function(tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - name: 'translation_response', - value: xhr.responseText - }); - } - } - }); - } - - chrome.runtime.sendMessage({ - name: 'translation_response', - value: xhr.responseText - }); - }); - - xhr.open('GET', path, true); - xhr.send(); -} - -function browserActionIcon() { - if (browser_icon === 'always') { - chrome.browserAction.setIcon({ - path: 'assets/icons/32.png' - }); - } else { - chrome.browserAction.setIcon({ - path: 'assets/icons/32g.png' - }); - } -} - - -/*--------------------------------------------------------------- -# CONTEXT MENU ITEMS ----------------------------------------------------------------*/ - -chrome.contextMenus.removeAll(); - -chrome.contextMenus.create({ - id: '1111', - title: 'Donate', - contexts: ['browser_action'] -}); - -chrome.contextMenus.create({ - id: '1112', - title: 'Rate me', - contexts: ['browser_action'] -}); - -chrome.contextMenus.create({ - id: '1113', - title: 'GitHub', - contexts: ['browser_action'] -}); - -chrome.contextMenus.onClicked.addListener(function(event) { - if (event.menuItemId === '1111') { - window.open('https://www.improvedtube.com/donate'); - } else if (event.menuItemId === '1112') { - window.open('https://chrome.google.com/webstore/detail/improvedtube-for-youtube/bnomihfieiccainjcjblhegjgglakjdd'); - } else if (event.menuItemId === '1113') { - window.open('https://github.com/ImprovedTube/ImprovedTube'); - } -}); - - -/*--------------------------------------------------------------- -# MESSAGE LISTENER ----------------------------------------------------------------*/ - -chrome.runtime.onMessage.addListener(function(request, sender) { - if (isset(request) && typeof request === 'object') { - if (request.enabled === true && browser_icon !== 'always') { - chrome.browserAction.setIcon({ - path: 'assets/icons/32.png', - tabId: sender.tab.id - }); - } - - if (request.name === 'translation_request') { - getTranslations(request.path); - } - - if (request.name === 'improvedtube-analyzer') { - var data = request.value, - date = new Date().toDateString(), - hours = new Date().getHours() + ':00'; - - chrome.storage.local.get(function(items) { - if (!items.analyzer) { - items.analyzer = {}; - } - - if (!items.analyzer[date]) { - items.analyzer[date] = {}; - } - - if (!items.analyzer[date][hours]) { - items.analyzer[date][hours] = {}; - } - - if (!items.analyzer[date][hours][data]) { - items.analyzer[date][hours][data] = 0; - } - - items.analyzer[date][hours][data]++; - - chrome.storage.local.set({ - analyzer: items.analyzer - }); - }); - } - - if (request.name === 'improvedtube-blacklist') { - chrome.storage.local.get(function(items) { - if (!items.blacklist || typeof items.blacklist !== 'object') { - items.blacklist = {}; - } - - if (request.data.type === 'channel') { - if (!items.blacklist.channels) { - items.blacklist.channels = {}; - } - - items.blacklist.channels[request.data.id] = { - title: request.data.title, - preview: request.data.preview - }; - } - - if (request.data.type === 'video') { - if (!items.blacklist.videos) { - items.blacklist.videos = {}; - } - - items.blacklist.videos[request.data.id] = { - title: request.data.title - }; - } - - chrome.storage.local.set({ - blacklist: items.blacklist - }); - }); - } - - if (request.name === 'improvedtube-watched') { - chrome.storage.local.get(function(items) { - if (!items.watched || typeof items.watched !== 'object') { - items.watched = {}; - } - - if (request.data.action === 'set') { - items.watched[request.data.id] = { - title: request.data.title - }; - } - - if (request.data.action === 'remove') { - delete items.watched[request.data.id]; - } - - chrome.storage.local.set({ - watched: items.watched - }); - }); - } - - if (request.name === 'download') { - chrome.permissions.request({ - permissions: ['downloads'], - origins: ['https://www.youtube.com/*'] - }, function(granted) { - if (granted) { - try { - var blob = new Blob([JSON.stringify(request.value)], { - type: 'application/json;charset=utf-8' - }); - - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: request.filename, - saveAs: true - }); - } catch (err) { - chrome.runtime.sendMessage({ - name: 'dialog-error', - value: err - }); - } - } else { - chrome.runtime.sendMessage({ - name: 'dialog-error', - value: 'permissionIsNotGranted' - }); - } - }); - } - - if (request.name === 'improvedtube-play') { - chrome.tabs.query({}, function(tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - name: 'improvedtube-play', - id: request.id - }); - } - } - }); - } - - if (isset(request.export)) { - chrome.storage.local.get(function(data) { - chrome.permissions.request({ - permissions: ['downloads'], - origins: ['https://www.youtube.com/*'] - }, function(granted) { - if (granted) { - var blob = new Blob([JSON.stringify(data)], { - type: 'application/octet-stream' - }), - date = new Date(); - - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: 'improvedtube_' + (date.getMonth() + 1) + '_' + date.getDate() + '_' + date.getFullYear() + '.json', - saveAs: true - }); - } - }); - }); - } - } -}); - - -/*--------------------------------------------------------------- -# STORAGE CHANGE LISTENER ----------------------------------------------------------------*/ - -chrome.storage.onChanged.addListener(function(changes) { - if (isset(changes.improvedtube_language)) { - locale_code = changes.improvedtube_language.newValue; - } - - if (isset(changes.improvedtube_browser_icon)) { - browser_icon = changes.improvedtube_browser_icon.newValue; - } - - browserActionIcon(); - - _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); -}); - - -/*--------------------------------------------------------------- -# INITIALIZATION ----------------------------------------------------------------*/ - -chrome.storage.local.get(function(items) { - if (isset(items.improvedtube_language)) { - locale_code = items.improvedtube_language; - } - - if (isset(items.improvedtube_browser_icon)) { - browser_icon = items.improvedtube_browser_icon; - } - - browserActionIcon(); - - _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); -}); - - -/*--------------------------------------------------------------- -# UNINSTALL URL ----------------------------------------------------------------*/ - -//chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); - - -/*--------------------------------------------------------------- -# GOOGLE ANALYTICS ----------------------------------------------------------------*/ - -var _gaq = _gaq || []; - -/*(function() { - var ga = document.createElement('script'); - - _gaq.push(['_setAccount', 'UA-88354155-1']); - _gaq.push(['_setSessionCookieTimeout', 14400000]); - - ga.type = 'text/javascript'; - ga.async = true; - ga.src = 'https://ssl.google-analytics.com/ga.js'; - - document.body.appendChild(ga); -})();*/ diff --git a/unstable/build.py b/unstable/build.py deleted file mode 100644 index a7b1b137a..000000000 --- a/unstable/build.py +++ /dev/null @@ -1,23 +0,0 @@ -import json -import pathlib -import re - -with open("config.json") as json_file: - data = json.load(json_file) - - for target_key in data: - if re.search(r"\/", target_key): - pathlib.Path(target_key).mkdir(parents=True, exist_ok=True) - - file = open(target_key.search(r"[ \w-]+\.[\w-]*$").group(0), "w", encoding='utf-8') - else: - file = open(target_key, "w", encoding='utf-8') - - for source_key in data[target_key]: - source_file = open(source_key, "r", encoding='utf-8') - - file.write("\r\n" + "".join(source_file.readlines())) - - source_file.close() - - file.close() \ No newline at end of file diff --git a/unstable/config.json b/unstable/config.json deleted file mode 100644 index 3204ecbe7..000000000 --- a/unstable/config.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "content-scripts.js": [ - "src/youtube/js/core.js", - "src/youtube/js/events.js", - "src/youtube/js/features/analyzer.js", - "src/youtube/js/features/appearance.js", - "src/youtube/js/features/blacklist.js", - "src/youtube/js/features/channel.js", - "src/youtube/js/features/general.js", - "src/youtube/js/features/player.js", - "src/youtube/js/features/playlist.js", - "src/youtube/js/features/settings.js", - "src/youtube/js/features/shortcuts.js", - "src/youtube/js/features/themes.js", - "src/youtube/js/features/volume-mixer.js", - "src/youtube/js/functions.js", - "src/youtube/js/injection.js", - "src/youtube/js/migration.js", - "src/youtube/js/mutations.js" - ], - "content-scripts.css": [ - "src/youtube/css/appearance.css", - "src/youtube/css/appearance__player-size.css", - "src/youtube/css/blacklist.css", - "src/youtube/css/channel.css", - "src/youtube/css/general.css", - "src/youtube/css/other.css", - "src/youtube/css/player.css", - "src/youtube/css/playlist.css", - "src/youtube/css/settings.css", - "src/youtube/css/shortcuts.css", - "src/youtube/css/themes.css", - "src/youtube/css/themes/black.css", - "src/youtube/css/themes/dawn.css", - "src/youtube/css/themes/default.css", - "src/youtube/css/themes/desert.css", - "src/youtube/css/themes/night.css", - "src/youtube/css/themes/plain.css", - "src/youtube/css/themes/sunset.css" - ], - "popup.js": [ - "src/template/js/header.js", - "src/template/js/main.js", - "src/template/js/template-parts/header/active-features.js", - "src/template/js/template-parts/header/mixer.js", - "src/template/js/template-parts/header/settings.js", - "src/template/js/template-parts/general.js", - "src/template/js/template-parts/appearance.js", - "src/template/js/template-parts/themes.js", - "src/template/js/template-parts/player.js", - "src/template/js/template-parts/playlist.js", - "src/template/js/template-parts/channel.js", - "src/template/js/template-parts/shortcuts.js", - "src/template/js/template-parts/blacklist.js", - "src/template/js/template-parts/analyzer.js", - "src/template/js/index.js" - ], - "popup.css": [ - "src/template/css/themes.css", - "src/template/css/index.css", - "src/template/css/header.css", - "src/template/css/main.css", - "src/template/css/template-parts/home.css", - "src/template/css/template-parts/appearance.css", - "src/template/css/template-parts/themes.css", - "src/template/css/template-parts/player.css", - "src/template/css/template-parts/blacklist.css", - "src/template/css/template-parts/analyzer.css", - "src/template/css/template-parts/mixer.css", - "src/template/css/template-parts/settings.css" - ] -} diff --git a/unstable/content-scripts.css b/unstable/content-scripts.css deleted file mode 100644 index 7c2f105ec..000000000 --- a/unstable/content-scripts.css +++ /dev/null @@ -1,6791 +0,0 @@ - -/*----------------------------------------------------------------------------- ->>> APPEARANCE -------------------------------------------------------------------------------- -1.0 Header - 1.1 Position - 1.2 Logo - 1.3 Hide right buttons -2.0 Player - 2.1 Annotations - 2.2 Cards - 2.4 Color - 2.5 Transparent background - 2.6 Endscreen - 2.7 Sroll for details - 2.8 Always show progress bar - 2.9 Hide Gradient Bottom -3.0 Details - 3.1 Style - 3.2 Views count - 3.3 Likes -4.0 Description -5.0 Comments -6.0 Sidebar - 6.1 Live chat - 6.2 Playlist - 6.3 Related videos - 6.4 Sidebar and thumbnail position -7.0 Footer ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Header ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.1 Position ------------------------------------------------------------------------------*/ - -html[it-header-position=hidden]:not([it-search-focus=true]) #masthead-container, -html[it-header-position=hidden]:not([it-search-focus=true]) #masthead-positioner -{ - transform: translateY(-100%); -} - -html[it-header-position=hidden] app-drawer#guide #guide-spacer, -html[it-header-position=hidden] ytd-app > ytd-masthead, -html[it-header-position=hidden] #masthead-positioner-height-offset, -html[it-header-position=hover] app-drawer#guide #guide-spacer, -html[it-header-position=hover] #masthead-positioner-height-offset, -html[it-header-position=static] app-drawer#guide #guide-spacer, -html[it-header-position=hidden_on_video_page][it-page-type=video] #masthead-container, -html[it-header-position=hidden_on_video_page][it-page-type=video] app-drawer#guide #guide-spacer, -html[it-header-position=hidden_on_video_page][it-page-type=video] #masthead-positioner, -html[it-header-position=hidden_on_video_page][it-page-type=video] #masthead-positioner-height-offset, -html[it-header-position=hover_on_video_page][it-page-type=video] app-drawer#guide #guide-spacer, -html[it-header-position=hover_on_video_page][it-page-type=video] #masthead-positioner-height-offset, -html[it-header-position=static] #masthead-positioner-height-offset -{ - display: none !important; -} - -html[it-header-position=hover] ytd-app > ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app > ytd-masthead, -html[it-header-position=hover] #masthead-container, -html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-container, -html[it-header-position=hover] #masthead-positioner, -html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-positioner -{ - z-index: 2147483647 !important; -} - -html[it-header-position=hidden] ytd-page-manager#page-manager, -html[it-header-position=hidden] app-header#header, -html[it-header-position=hidden_on_video_page][it-page-type='video'] ytd-page-manager#page-manager, -html[it-header-position=hidden_on_video_page][it-page-type='video'] app-header#header, -html[it-header-position=hidden] #appbar-guide-menu, -html[it-header-position=hidden_on_video_page][it-page-type='video'] #appbar-guide-menu, -html[it-header-position=hover] ytd-page-manager#page-manager, -html[it-header-position=hover] app-header#header, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-page-manager#page-manager, -html[it-header-position=hover_on_video_page][it-page-type='video'] app-header#header, -html[it-header-position=hover] #appbar-guide-menu, -html[it-header-position=hover_on_video_page][it-page-type='video'] #appbar-guide-menu, -html[it-header-position=static] ytd-page-manager#page-manager, -html[it-header-position=static] #appbar-guide-menu -{ - margin-top: 0 !important; -} - -html[it-header-position=hover] ytd-app > ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) ytd-app > ytd-masthead, -html[it-header-position=hover]:not([it-improvedtube-search=true]) #masthead-container, -html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) #masthead-container, -html[it-header-position=hover]:not([it-improvedtube-search=true]) #masthead-positioner, -html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) #masthead-positioner -{ - transition: transform 250ms !important; - transform: translateY(-75%) !important; -} - -html[it-header-position=hover] #masthead-container:hover, -html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-container:hover, -html[it-header-position=hover] #masthead-positioner:hover, -html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-positioner:hover, -html[it-header-position=hover][it-search-focus=true] #masthead-container, -html[it-header-position=hover_on_video_page][it-page-type='video'][it-search-focus=true] #masthead-container, -html[it-header-position=hover][it-search-focus=true] #masthead-positioner, -html[it-header-position=hover_on_video_page][it-page-type='video'][it-search-focus=true] #masthead-positioner -{ - transform: translateY(0%) !important; -} - -html[it-header-position=static] #masthead-container, -html[it-header-position=static] #masthead-positioner -{ - position: relative !important; - z-index: 999999999999 !important; -} - -html[it-header-position=hover] ytd-app[masthead-hidden_] ytd-masthead, -html[it-header-position=hover] ytd-app[scrolling_] ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app[masthead-hidden_] ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app[scrolling_] ytd-masthead -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -1.2 Logo ------------------------------------------------------------------------------*/ - -html[it-header-improve-logo=true] ytd-topbar-logo-renderer#logo, -html[it-header-improve-logo=true] #yt-masthead-logo-fragment, -html[it-header-improve-logo=true] #yt-masthead #logo-container .logo -{ - filter: grayscale(1); -} - -html[it-header-improve-logo=true][dark] #yt-masthead #logo-container .logo -{ - filter: grayscale(1) brightness(3); -} - -html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer path[fill*='#FF0000'] -{ - fill: #282828; -} - -html[it-header-improve-logo=true][dark] g.ytd-topbar-logo-renderer path[fill*='#FF0000'] -{ - fill: #fff; -} - -html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer polygon[fill*='#FFFFFF'] -{ - fill: #232323; -} - - -/*----------------------------------------------------------------------------- -1.3 Hide right buttons ------------------------------------------------------------------------------*/ - -html[it-header-hide-right-buttons=true] ytd-masthead#masthead #container #end -{ - visibility: hidden !important; - pointer-events: none !important; -} - - -/*----------------------------------------------------------------------------- -2.0 Player ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -2.1 Annotations ------------------------------------------------------------------------------*/ - -html[it-player-hide-annotations=true] .annotation, -html[it-player-hide-annotations=true] .annotation-type-text, -html[it-player-hide-annotations=true] .annotation-shape -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -2.2 Cards ------------------------------------------------------------------------------*/ - -html[it-player-hide-cards=true] .ytp-ce-element, -html[it-player-hide-cards=true] .ytp-ce-video, -html[it-player-hide-cards=true] .ytp-cards-button, -html[it-player-hide-cards=true] .ytp-cards-teaser, -html[it-player-show-cards-on-mouse-hover=true] .ytp-cards-button -{ - display: none !important; -} - -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .iv-drawer -{ - display: block !important; - transform: none; -} - -/*----------------------------------------------------------------------------- -2.4 Color ------------------------------------------------------------------------------*/ - -html[it-player-color='pink'] .ytp-play-progress, -html[it-player-color='pink'] .ytp-scrubber-button, -html[it-player-color='pink'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='pink'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #e91e63 !important; -} - -html[it-player-color='pink'] .ytp-swatch-color -{ - color: #e91e63 !important; -} - -html[it-player-color='purple'] .ytp-play-progress, -html[it-player-color='purple'] .ytp-scrubber-button, -html[it-player-color='purple'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='purple'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #9c27b0 !important; -} - -html[it-player-color='purple'] .ytp-swatch-color -{ - color: #9c27b0 !important; -} - -html[it-player-color='deep_purple'] .ytp-play-progress, -html[it-player-color='deep_purple'] .ytp-scrubber-button, -html[it-player-color='deep_purple'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='deep_purple'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #673ab7 !important; -} - -html[it-player-color='deep_purple'] .ytp-swatch-color -{ - color: #673ab7 !important; -} - -html[it-player-color='indigo'] .ytp-play-progress, -html[it-player-color='indigo'] .ytp-scrubber-button, -html[it-player-color='indigo'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='indigo'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #3f51b5 !important; -} - -html[it-player-color='indigo'] .ytp-swatch-color -{ - color: #3f51b5 !important; -} - -html[it-player-color='blue'] .ytp-play-progress, -html[it-player-color='blue'] .ytp-scrubber-button, -html[it-player-color='blue'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='blue'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #1e88e5 !important; -} - -html[it-player-color='blue'] .ytp-swatch-color -{ - color: #1e88e5 !important; -} - -html[it-player-color='light_blue'] .ytp-play-progress, -html[it-player-color='light_blue'] .ytp-scrubber-button, -html[it-player-color='light_blue'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='light_blue'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #03a9f4 !important; -} - -html[it-player-color='light_blue'] .ytp-swatch-color -{ - color: #03a9f4 !important; -} - -html[it-player-color='cyan'] .ytp-play-progress, -html[it-player-color='cyan'] .ytp-scrubber-button, -html[it-player-color='cyan'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='cyan'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #00bcd4 !important; -} - -html[it-player-color='cyan'] .ytp-swatch-color -{ - color: #00bcd4 !important; -} - -html[it-player-color='teal'] .ytp-play-progress, -html[it-player-color='teal'] .ytp-scrubber-button, -html[it-player-color='teal'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='teal'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #009688 !important; -} - -html[it-player-color='teal'] .ytp-swatch-color -{ - color: #009688 !important; -} - -html[it-player-color='green'] .ytp-play-progress, -html[it-player-color='green'] .ytp-scrubber-button, -html[it-player-color='green'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='green'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #4caf50 !important; -} - -html[it-player-color='green'] .ytp-swatch-color -{ - color: #4caf50 !important; -} - -html[it-player-color='light_green'] .ytp-play-progress, -html[it-player-color='light_green'] .ytp-scrubber-button, -html[it-player-color='light_green'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='light_green'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #8bc34a !important; -} - -html[it-player-color='light_green'] .ytp-swatch-color -{ - color: #8bc34a !important; -} - -html[it-player-color='lime'] .ytp-play-progress, -html[it-player-color='lime'] .ytp-scrubber-button, -html[it-player-color='lime'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='lime'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #cddc39 !important; -} - -html[it-player-color='lime'] .ytp-swatch-color -{ - color: #cddc39 !important; -} - -html[it-player-color='yellow'] .ytp-play-progress, -html[it-player-color='yellow'] .ytp-scrubber-button, -html[it-player-color='yellow'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='yellow'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #ffeb3b !important; -} - -html[it-player-color='yellow'] .ytp-swatch-color -{ - color: #ffeb3b !important; -} - -html[it-player-color='amber'] .ytp-play-progress, -html[it-player-color='amber'] .ytp-scrubber-button, -html[it-player-color='amber'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='amber'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #ffc107 !important; -} - -html[it-player-color='amber'] .ytp-swatch-color -{ - color: #ffc107 !important; -} - -html[it-player-color='orange'] .ytp-play-progress, -html[it-player-color='orange'] .ytp-scrubber-button, -html[it-player-color='orange'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='orange'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #ff9800 !important; -} - -html[it-player-color='orange'] .ytp-swatch-color -{ - color: #ff9800 !important; -} - -html[it-player-color='deep_orange'] .ytp-play-progress, -html[it-player-color='deep_orange'] .ytp-scrubber-button, -html[it-player-color='deep_orange'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='deep_orange'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #ff5722 !important; -} - -html[it-player-color='deep_orange'] .ytp-swatch-color -{ - color: #ff5722 !important; -} - -html[it-player-color='brown'] .ytp-play-progress, -html[it-player-color='brown'] .ytp-scrubber-button, -html[it-player-color='brown'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='brown'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #795548 !important; -} - -html[it-player-color='brown'] .ytp-swatch-color -{ - color: #795548 !important; -} - -html[it-player-color='blue_gray'] .ytp-play-progress, -html[it-player-color='blue_gray'] .ytp-scrubber-button, -html[it-player-color='blue_gray'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='blue_gray'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #607d8b !important; -} - -html[it-player-color='blue_gray'] .ytp-swatch-color -{ - color: #607d8b !important; -} - -html[it-player-color='white'] .ytp-play-progress, -html[it-player-color='white'] .ytp-scrubber-button, -html[it-player-color='white'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='white'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #fff !important; -} - -html[it-player-color='white'] .ytp-swatch-color -{ - color: #fff !important; -} - - -/*----------------------------------------------------------------------------- -2.5 Transparent background ------------------------------------------------------------------------------*/ - -[it-player-transparent-background=true] #player-theater-container, -[it-player-transparent-background=true] #theater-background, -[it-player-transparent-background=true] #player-api, -[it-player-transparent-background=true] .player-api, -[it-player-transparent-background=true] #movie_player, -[it-player-transparent-background=true] #player-container, -[it-player-transparent-background=true] #movie_player video -{ - background-color: transparent !important; -} - - -/*----------------------------------------------------------------------------- -2.6 Endscreen ------------------------------------------------------------------------------*/ - -html[it-player-hide-endscreen=true] .html5-endscreen -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -2.7 Scroll for details ------------------------------------------------------------------------------*/ - -html[it-hide-scroll-for-details=true] button.ytp-fullerscreen-edu-button -{ - display: none !important; -} - -html[it-hide-scroll-for-details=true] ytd-app[scrolling_] -{ - overflow: hidden !important; -} - - -/*----------------------------------------------------------------------------- -2.8 Always show progress bar ------------------------------------------------------------------------------*/ - -html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom -{ - opacity: 1 !important; -} - -html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-chrome-controls -{ - opacity: 0 !important; -} - -html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-progress-bar-container -{ - bottom: 0 !important; -} - -/*----------------------------------------------------------------------------- -2.9 Hide Gradient Bottom ------------------------------------------------------------------------------*/ - -html[it-hide-gradient-bottom=true] .ytp-gradient-bottom -{ - display: none; -} - -/*----------------------------------------------------------------------------- -3.0 Details ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -3.1 Hide details ------------------------------------------------------------------------------*/ - -html[it-hide-details=true] #watch-header, -html[it-hide-details=true] #watch-action-panels, -html[it-hide-details=true] #action-panel-details, -html[it-hide-details=true] #primary-inner > #info, -html[it-hide-details=true] #primary-inner > #meta -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -3.2 Views count ------------------------------------------------------------------------------*/ - -html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer, -html[it-hide-views-count=true] #watch7-views-info > .watch-view-count -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -3.3 Likes ------------------------------------------------------------------------------*/ - -[it-likes=hidden] #watch8-sentiment-actions > .like-button-renderer, -[it-likes=hidden] .video-extras-sparkbar-likes, -[it-likes=hidden] .video-extras-sparkbar-dislikes, -[it-likes=hidden] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(1), -[it-likes=hidden] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(2), -[it-likes=hidden] #sentiment.ytd-video-primary-info-renderer -{ - visibility: hidden !important; - - pointer-events: none !important; -} - -[it-likes=icons_only] #watch8-sentiment-actions > .like-button-renderer button > span, -[it-likes=icons_only] .video-extras-sparkbar-likes, -[it-likes=icons_only] .video-extras-sparkbar-dislikes, -[it-likes=icons_only] #top-level-buttons ytd-toggle-button-renderer:nth-child(1) yt-formatted-string, -[it-likes=icons_only] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) yt-formatted-string, -[it-likes=icons_only] #sentiment.ytd-video-primary-info-renderer -{ - visibility: hidden !important; - - pointer-events: none !important; -} - -[it-likes=icons_only] #text.style-scope.ytd-toggle-button-renderer.style-text, -[it-likes=icons_only] #text.style-scope.ytd-toggle-button-renderer.style-default-active -{ - visibility: hidden !important; -} - -[it-likes=icons_only] .like-button-renderer-like-button, -[it-likes=icons_only] .like-button-renderer-dislike-button -{ - color: transparent !important; -} - -[it-red-dislike-button=true] #top-level-buttons > ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active > a -{ - color: #fc0000 !important; -} - - -/*----------------------------------------------------------------------------- -4.0 Description ------------------------------------------------------------------------------*/ - -html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, -html[it-description=hidden] div#action-panel-details, -html[it-description=expanded] #meta-contents ytd-expander[collapsed] paper-button, -html[it-description=expanded] #action-panel-details button -{ - display: none !important; -} - -html[it-description=expanded] #meta-contents ytd-expander[collapsed] > #content.ytd-expander, -html[it-description=expanded] #watch-description-text -{ - max-height: unset !important; -} - -html[it-description=expanded] .yt-uix-expander .yt-uix-expander-collapsed-body, -html[it-description=expanded] .yt-uix-expander-collapsed .yt-uix-expander-body -{ - display: block !important; -} - - -/*----------------------------------------------------------------------------- -5.0 Comments ------------------------------------------------------------------------------*/ - -html[it-comments=hidden] ytd-comments#comments, -html[it-comments=hidden] div#watch-discussion, -html[it-comments=collapsed].comments-collapsed #comment-section-renderer-items + button, -html[it-comments=collapsed]:not(.comments-collapsed) #improvedtube-collapsed-comments .show-more-text, -html[it-comments=collapsed].comments-collapsed #improvedtube-collapsed-comments .show-less-text, -html[it-comments=collapsed].comments-collapsed #comments #spinner -{ - display: none !important; -} - -html[it-comments=collapsed].comments-collapsed #comment-section-renderer-items, -html[it-comments=collapsed].comments-collapsed #comments #sections #contents -{ - overflow: hidden !important; - - height: 0 !important; -} - -#sections #improvedtube-collapsed-comments -{ - font-family: inherit; - font-size: 12px; - font-weight: 500; - - box-sizing: border-box; - width: 100%; - margin: 0 0 3rem; - padding: 1rem 0; - - cursor: pointer; - letter-spacing: .007px; - text-transform: uppercase; - - color: var(--yt-expand-color); - border: none; - border-bottom: 1px solid var(--yt-spec-10-percent-layer); - outline: none; - background: transparent; -} - - -/*----------------------------------------------------------------------------- -6.0 Sidebar ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -6.1 Live chat ------------------------------------------------------------------------------*/ - -html[it-livechat=hidden] ytd-live-chat-frame#chat, -html[it-livechat=hidden] div#watch-sidebar-live-chat -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -6.2 Playlist ------------------------------------------------------------------------------*/ - -html[it-hide-playlist=true] ytd-playlist-panel-renderer#playlist, -html[it-hide-playlist=true] div#player-playlist, -html[it-hide-playlist=true] #placeholder-playlist -{ - position: absolute !important; - - width: 0 !important; - height: 0 !important; - - pointer-events: none !important; - - opacity: 0 !important; -} - - -/*----------------------------------------------------------------------------- -6.3 Related videos ------------------------------------------------------------------------------*/ - -html[it-related-videos=hidden] div#related, -html[it-related-videos=hidden] div#watch7-sidebar-contents, -html[it-related-videos=collapsed].related-videos-collapsed #watch7-sidebar-modules, -html[it-related-videos=collapsed].related-videos-collapsed #related > *:not(#improvedtube-collapsed-related-videos), -html[it-related-videos=collapsed]:not(.related-videos-collapsed) #improvedtube-collapsed-related-videos .show-more-text, -html[it-related-videos=collapsed].related-videos-collapsed #improvedtube-collapsed-related-videos .show-less-text -{ - display: none !important; -} - -#improvedtube-collapsed-related-videos -{ - font-family: inherit; - font-size: 12px; - font-weight: 500; - - box-sizing: border-box; - width: 100%; - margin: 0 0 3rem; - padding: 1rem 0; - - cursor: pointer; - letter-spacing: .007px; - text-transform: uppercase; - - color: var(--yt-expand-color); - border: none; - border-bottom: 1px solid var(--yt-spec-10-percent-layer); - outline: none; - background: transparent; -} - -#watch7-sidebar #improvedtube-collapsed-related-videos -{ - font-size: 12px; - font-weight: 500; - - display: block; - - width: 95%; - height: 100%; - margin: 0 auto 15px !important; - padding: 10px 0; - - cursor: pointer; - text-align: center; - - color: #333; - border: 1px solid #d3d3d3; - border-color: #c6c6c6; - outline: 0; - background-color: #f8f8f8; - background-image: linear-gradient(to top, #f0f0f0 0, #f8f8f8 100%); - box-shadow: inset 0 1px 0 #ddd; -} - -/*----------------------------------------------------------------------------- -6.4 Sidebar and thumbnail position ------------------------------------------------------------------------------*/ - -html[it-sidebar-left='true'] #columns>#primary, -html[it-sidebar-left='true'] #head>#upnext /* also moving autoplay button to the outside as the glow bothers next to the video */ -{ - order:7; -} -html[it-thumbnails-right='true'] #dismissable>ytd-thumbnail -{ - order:7; -} - -/*----------------------------------------------------------------------------- -7.0 Footer ------------------------------------------------------------------------------*/ - -html[it-hide-footer=true] app-drawer#guide #footer, -html[it-hide-footer=true] #footer-container.yt-base-gutter -{ - display: none !important; -} - -/*----------------------------------------------------------------------------- ->>> APPEARANCE: PLAYER SIZE -------------------------------------------------------------------------------- -1.0 Variables - 1.1 Header size - 1.1.1 «Normal» - 1.1.2 «Hidden» - 1.1.3 «Hover» - 1.2 Player size - 1.2.1 «240p» - 1.2.2 «360p» - 1.2.3 «480p» - 1.2.4 «576p» - 1.2.5 «720p» - 1.2.6 «1080p» - 1.2.7 «1440p» - 1.2.8 «2160p» - 1.2.9 «Full window» -2.0 YouTube ------------------------------------------------------------------------------*/ - - - - - -/*----------------------------------------------------------------------------- -1.0 Variables ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.1 Header size ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.1.1 «Normal» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"]:not([it-header-position]) ytd-app, -html[it-page-type="video"][it-header-position='normal'] ytd-app, -html[it-page-type="video"][it-header-position='static'] ytd-app -{ - --it-header-size: 56px; -} - -html[it-page-type="video"]:not([it-header-position]) ytd-watch-flexy:not([theater]), -html[it-page-type="video"][it-header-position='normal'] ytd-watch-flexy:not([theater]), -html[it-page-type="video"][it-header-position='static'] ytd-watch-flexy:not([theater]) -{ - --it-header-size: 104px; -} - -html[it-page-type="video"]:not([it-header-position]) div#page, -html[it-page-type="video"][it-header-position='normal'] div#page, -html[it-page-type="video"][it-header-position='static'] div#page -{ - --it-header-size: 50px; -} - -html[it-page-type="video"]:not([it-header-position]) div#page:not(.watch-wide), -html[it-page-type="video"][it-header-position='normal'] div#page:not(.watch-wide), -html[it-page-type="video"][it-header-position='static'] div#page:not(.watch-wide) -{ - --it-header-size: 70px; -} - -/*----------------------------------------------------------------------------- -1.1.2 «Hidden» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-header-position='hidden'], -html[it-page-type="video"][it-header-position='hidden_on_video_page'] -{ - --it-header-size: 0px; -} - -html[it-page-type="video"][it-header-position='hidden'] ytd-watch-flexy:not([theater]), -html[it-page-type="video"][it-header-position='hidden_on_video_page'] ytd-watch-flexy:not([theater]) -{ - --it-header-size: 48px; -} - -html[it-page-type="video"][it-header-position='hidden'] div#page, -html[it-page-type="video"][it-header-position='hidden_on_video_page'] div#page -{ - --it-header-size: 0px; -} - -html[it-page-type="video"][it-header-position='hidden'] div#page:not(.watch-wide), -html[it-page-type="video"][it-header-position='hidden_on_video_page'] div#page:not(.watch-wide) -{ - --it-header-size: 20px; -} - -/*----------------------------------------------------------------------------- -1.1.3 «Hover» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-header-position='hover'], -html[it-page-type="video"][it-header-position='hover_on_video_page'] -{ - --it-header-size: 14px; -} - -html[it-page-type="video"][it-header-position='hover'] ytd-watch-flexy:not([theater]), -html[it-page-type="video"][it-header-position='hover_on_video_page'] ytd-watch-flexy:not([theater]) -{ - --it-header-size: 62px; -} - -html[it-page-type="video"][it-header-position='hover'] div#page, -html[it-page-type="video"][it-header-position='hover_on_video_page'] div#page -{ - --it-header-size: 12px; -} - -html[it-page-type="video"][it-header-position='hover'] div#page:not(.watch-wide), -html[it-page-type="video"][it-header-position='hover_on_video_page'] div#page:not(.watch-wide) -{ - --it-header-size: 32px; -} - -html[it-page-type="video"][it-header-position='hover'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container, -html[it-page-type="video"][it-header-position='hover_on_video_page'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container -{ - margin-top: 14px; -} - -html[it-page-type="video"][it-header-position='hover'] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen), -html[it-page-type="video"][it-header-position='hover_on_video_page'] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen) -{ - margin-top: 12px; -} - - - - - -html[it-page-type="video"][it-player-size='240p'] *, -html[it-page-type="video"][it-player-size='360p'] *, -html[it-page-type="video"][it-player-size='480p'] *, -html[it-page-type="video"][it-player-size='576p'] *, -html[it-page-type="video"][it-player-size='720p'] *, -html[it-page-type="video"][it-player-size='1080p'] *, -html[it-page-type="video"][it-player-size='1440p'] *, -html[it-page-type="video"][it-player-size='2160p'] * -{ - --it-header-size: 0px !important; -} - - - - - -/*----------------------------------------------------------------------------- -1.2 Player size ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.2.1 «240p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='240p'] -{ - --it-player-size: 240px; -} - -/*----------------------------------------------------------------------------- -1.2.2 «360p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='360p'] -{ - --it-player-size: 360px; -} - -/*----------------------------------------------------------------------------- -1.2.3 «480p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='480p'] -{ - --it-player-size: 480px; -} - -/*----------------------------------------------------------------------------- -1.2.4 «576p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='576p'] -{ - --it-player-size: 576px; -} - -/*----------------------------------------------------------------------------- -1.2.5 «720p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='720p'] -{ - --it-player-size: 720px; -} - -/*----------------------------------------------------------------------------- -1.2.6 «1080p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='1080p'] -{ - --it-player-size: 1080px; -} - -/*----------------------------------------------------------------------------- -1.2.7 «1440p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='1440p'] -{ - --it-player-size: 1440px; -} - -/*----------------------------------------------------------------------------- -1.2.8 «2160p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='2160p'] -{ - --it-player-size: 2160px; -} - -/*----------------------------------------------------------------------------- -1.2.9 «Full window» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='full_window'] -{ - --it-player-size: 100vh; -} - -html[it-page-type="video"][it-player-size='fit_to_window'] -{ - --it-player-size: 100vh; -} - - - - - -/*----------------------------------------------------------------------------- -2.0 YouTube ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- ->>> PLAYER ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-container-inner -{ - padding-top: calc(var(--it-player-size) - var(--it-header-size)) !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container, -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container -{ - width: auto !important; - height: calc(var(--it-player-size) - var(--it-header-size)) !important; - min-height: auto !important; - max-height: 100vh !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player -{ - background: #000 !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-container -{ - position: absolute !important; - - display: flex !important; - - width: 100% !important; - height: 100% !important; - - justify-content: center !important; - align-items: center !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video -{ - position: static !important; - top: 0 !important; - left: 0 !important; - - width: auto !important; - max-width: 100% !important; - height: calc(var(--it-player-size) - var(--it-header-size)) !important; -} - - -/*FIT TO WINDOW*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-theater-container -{ - background: transparent !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) -{ - width: auto !important; - overflow: visible !important; - display: table !important; - margin: auto !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-chrome-bottom -{ - width: calc(100% - 24px) !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .html5-video-container -{ - width: auto !important; - position: static !important; - display: inline-block !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video -{ - position: static !important; - width: auto !important; - max-width: 100vw !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-iv-video-content { - pointer-events: none !important; -} - - - - - -/*----------------------------------------------------------------------------- ->>> LEGACY PLAYER ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) div#page #player #player-api, -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) div#page .player-height -{ - height: calc(var(--it-player-size) - var(--it-header-size)) !important; - min-height: auto !important; - max-height: 100vh !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) div#page.watch-wide #player #player-api -{ - left: 0 !important; - - width: 100% !important; - margin: 0 !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) div#page .html5-video-player:not(.it-mini-player):not(.ytp-fullscreen) .html5-video-container -{ - position: absolute !important; - - display: flex !important; - - width: 100% !important; - height: 100% !important; - - justify-content: center !important; - align-items: center !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) div#page .html5-video-player:not(.it-mini-player):not(.ytp-fullscreen) video -{ - position: static !important; - top: 0 !important; - left: 0 !important; - - width: auto !important; - max-width: 100% !important; - height: calc(var(--it-player-size) - var(--it-header-size)) !important; -} - - -/*FIT TO WINDOW*/ -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide #placeholder-player -{ - display: none !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide #player -{ - width: auto !important; - margin-bottom: 10px !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide #player #player-api -{ - display: table !important; - width: auto !important; - margin: auto !important; - left: 0 !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide #theater-background -{ - display: none !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide #player-mole-container -{ - height: auto !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide #player #player-api.player-height -{ - height: auto !important; - position: static !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide .html5-video-player:not(.it-mini-player):not(.ytp-fullscreen) -{ - width: auto !important; - height: auto !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide .html5-video-player:not(.it-mini-player):not(.ytp-fullscreen) .html5-video-container -{ - position: static !important; - width: auto !important; - height: auto !important; -} - -/*html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide .html5-video-player:not(.it-mini-player):not(.ytp-fullscreen) video -{ - z-index: 9 !important; -}*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide .html5-video-player:not(.it-mini-player):not(.ytp-fullscreen) .ytp-iv-video-content { - pointer-events: none !important; -} - - - - - -/*----------------------------------------------------------------------------- ->>> PLAYER ERROR ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) .ytp-error .ytp-tv-static -{ - width: 100% !important; - height: 100% !important; -} - - - - - -/*----------------------------------------------------------------------------- ->>> PLAYER TOOLTIP ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) .ytp-tooltip -{ - top: unset !important; - bottom: 64px !important; -} - - - - - -/*----------------------------------------------------------------------------- ->>> LEGACY SIDEBAR ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) div#page:not(.watch-wide) #watch7-sidebar -{ - top: unset !important; - - margin-top: calc(-10px - calc(var(--it-player-size) - var(--it-header-size))) !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) div#page.watch-wide #watch-appbar-playlist -{ - top: 230px !important; -} - -html[it-page-type="video"][it-player-size='fit_to_window'] div#page.watch-wide #watch-appbar-playlist -{ - top: -360px !important; -} - - - - - - - - - - - - - - -html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, -html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player, -html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, -html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player -{ - margin-top: 14px !important; -} - -.improvedtube-add-to-blacklist -{ - font-size: 32px; - line-height: 26px; - - position: absolute; - z-index: 999; - top: 4px; - left: 4px; - - visibility: hidden; - overflow: hidden; - - width: 32px; - height: 32px; - - cursor: pointer; - transition: transform .15s; - transform: scale(1); - text-align: center; - - opacity: .7; - color: #fff; - border-radius: 2px; - background: #000; -} - -*:hover > .improvedtube-add-to-blacklist -{ - visibility: visible; -} - -.improvedtube-add-to-blacklist:hover -{ - transform: scale(1.25); -} - -/*----------------------------------------------------------------------------- ->>> CHANNEL -------------------------------------------------------------------------------- -1.0 Featured content ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Featured content ------------------------------------------------------------------------------*/ - -html[it-channel-hide-featured-content=true] #secondary #contents.style-scope.ytd-browse-secondary-contents-renderer, -html[it-channel-hide-featured-content=true] .branded-page-v2-secondary-col -{ - display: none !important; -} -html[it-channel-hide-featured-content=true] #secondary.ytd-two-column-browse-results-renderer, -html[it-channel-hide-featured-content=true] #secondary ytd-browse-secondary-contents-renderer -{ - padding: 0; - width: fit-content; - height: fit-content; -} - -/*----------------------------------------------------------------------------- ->>> GENERAL -------------------------------------------------------------------------------- -1.0 YouTube Home Page -2.0 Add «Scroll to top» -3.0 Squared user images -4.0 Hide animated thumbnails -5.0 Better subscriptions -6.0 Mark watched videos ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 YouTube Home Page ------------------------------------------------------------------------------*/ - -html[it-page-type=home][it-youtube-home-page=search], -html[it-page-type=home][it-youtube-home-page=search] app-drawer[opened], -html[it-page-type=home][it-youtube-home-page=search] #appbar-guide-menu -{ - visibility: hidden !important; - overflow: hidden !important; - - width: 100vw !important; - height: 100vh !important; - - pointer-events: none !important; -} - -html[it-page-type=home][it-youtube-home-page=search] ytd-searchbox#search, -html[it-page-type=home][it-youtube-home-page=search] #yt-masthead-content -{ - position: fixed !important; - z-index: 99999 !important; - top: 0 !important; - left: 0 !important; - - display: flex !important; - visibility: visible !important; - - width: 100vw !important; - height: 100vh !important; - margin: 0 !important; - - pointer-events: all !important; - - justify-content: center !important; - align-items: center !important; -} - -html[it-page-type=home][it-youtube-home-page=search] #yt-masthead-content > form -{ - width: 100% !important; -} - -html[it-page-type=home][it-youtube-home-page=search] .gstl_50.sbdd_a -{ - z-index: 99999 !important; - - visibility: visible !important; - - pointer-events: all !important; -} - - -/*----------------------------------------------------------------------------- -2.0 Add «Scroll to top» ------------------------------------------------------------------------------*/ - -#it-scroll-to-top -{ - position: fixed; - z-index: 999; - right: 32px; - bottom: 32px; - - display: flex; - visibility: hidden; - - box-sizing: border-box; - width: 56px; - height: 56px; - - cursor: pointer; - transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; - transform: translateY(88px); - pointer-events: none; - - opacity: 0; - border-radius: 50%; - background: linear-gradient(135deg, #f8d266, #f17953); - box-shadow: 0 1px 1px 1px rgba(230, 109, 70, .7), 0 3px 5px rgba(0,0,0,.35); - - justify-content: center; - align-items: center; -} - -html[it-show-scroll-to-top=true] #it-scroll-to-top -{ - visibility: visible; - - transform: translateY(0px); - pointer-events: all; - - opacity: 1; -} - -html:not([it-red-popup-theme]) #it-scroll-to-top, -html[it-red-popup-theme="true"] #it-scroll-to-top -{ - background: #f73030; - box-shadow: 0 3px 5px rgba(0,0,0,.35); -} - -#it-scroll-to-top > svg -{ - width: 24px; - - fill: #fff; -} - -html[it-show-scroll-to-top="true"] #it-scroll-to-top:hover -{ - transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; - transform: translateY(4px) scale(.975); - box-shadow: 0 5px 5px -3px rgba(0, 0, 0, .2), 0 8px 10px 1px rgba(0, 0, 0, .14), 0 3px 14px 2px rgba(0, 0, 0, .12); -} - - -/*----------------------------------------------------------------------------- -3.0 Squared user images ------------------------------------------------------------------------------*/ - -html[it-squared-user-images=true] #avatar.ytd-shelf-renderer, -html[it-squared-user-images=true] yt-img-shadow, -html[it-squared-user-images=true] #yt-masthead-user .yt-masthead-user-icon -{ - border-radius: unset !important; -} - - -/*----------------------------------------------------------------------------- -4.0 Hide animated thumbnails ------------------------------------------------------------------------------*/ - -html[it-hide-animated-thumbnails=true] #mouseover-overlay, -html[it-hide-animated-thumbnails=true] .mouseover-play, -html[it-hide-animated-thumbnails=true] .mouseover-img -{ - visibility: hidden !important; -} - - -/*----------------------------------------------------------------------------- -5.0 Better subscriptions ------------------------------------------------------------------------------*/ - -#browse-items-primary .section-list > li .shelf-title-cell -{ - display: flex; -} - -#browse-items-primary .section-list > li .shelf-title-row -{ - display: flex; - - justify-content: space-between; -} - -ytd-item-section-renderer .grid-subheader + #contents, -#browse-items-primary .section-list > li, -#browse-items-primary .section-list > li .multirow-shelf -{ - overflow: hidden; -} - -ytd-item-section-renderer.it-section-collapsed .grid-subheader + #contents, -#browse-items-primary .section-list > li.it-section-collapsed .multirow-shelf -{ - height: 0 !important; -} - -#browse-items-primary .section-list > li .it-section-collapse -{ - margin-left: 16px; -} - -ytd-item-section-renderer .it-section-collapse, -#browse-items-primary .section-list > li .it-section-collapse -{ - cursor: pointer; -} - -ytd-item-section-renderer .it-section-collapse svg, -#browse-items-primary .section-list > li .it-section-collapse svg -{ - width: 24px; - height: 24px; - - transition: transform 150ms; - - fill: var(--ytd-menu-renderer-button-color, var(--yt-spec-icon-inactive)); -} - -#browse-items-primary .section-list > li .it-section-collapse svg -{ - position: relative; - top: -2px; -} - -ytd-item-section-renderer .it-section-collapse:hover svg, -#browse-items-primary .section-list > li .it-section-collapse:hover svg -{ - fill: var(--yt-spec-icon-active-other); -} - -ytd-item-section-renderer.it-section-collapsed .it-section-collapse svg, -#browse-items-primary .section-list > li.it-section-collapsed .it-section-collapse svg -{ - transform: rotate(180deg); -} - - -/*----------------------------------------------------------------------------- -6.0 Mark watched videos ------------------------------------------------------------------------------*/ - -.it-mark-watched -{ - position: absolute; - z-index: 999; - bottom: 4px; - left: 4px; - - visibility: hidden; - overflow: hidden; - - width: 28px; - height: 28px; - - cursor: pointer; - text-align: center; - - color: #fff; - border-radius: 2px; - background: rgba(0,0,0,.8); -} - -.it-mark-watched svg -{ - position: absolute; - top: 4px; - left: 4px; - - width: 20px; - height: 20px; - - fill: var(--ytd-menu-renderer-button-color, var(--yt-spec-icon-inactive, #aaa)); -} - -*:hover > .it-mark-watched -{ - visibility: visible; -} - -.it-mark-watched.watched svg -{ - fill: var(--yt-spec-icon-active-other, #fff); -} - - - - -/*html[it-remove-related-search-results=true] ytd-shelf-renderer.style-scope.ytd-item-section-renderer, -html[it-remove-related-search-results=true] ytd-horizontal-card-list-renderer.style-scope.ytd-item-section-renderer, -html[it-remove-related-search-results=true] li > div.feed-item-container.browse-list-item-container.yt-section-hover-container.compact-shelf.shelf-item.branded-page-box, -html[it-remove-related-search-results=true] li > div.search-refinements -{ - display: none; -}*/ - -.it-rate-notify -{ - position: fixed; - z-index: 99999999; - right: 24px; - bottom: 24px; - - visibility: hidden; - overflow: hidden; - - width: 300px; - padding-left: 96px; - - transition: transform 200ms; - transform: translate(0, 100%); - - opacity: 0; - border-radius: 16px; - background-image: linear-gradient(-20deg, #e9defa 0%, #e9defa 50%, #fbfcdb 100%); - box-shadow: 0 4px 12px rgba(0, 0, 0, .3); -} - -html:not([it-page-type='video']) .it-rate-notify.it-rate-notify--show -{ - visibility: visible; - - transform: translate(0,0); - animation: 1s infinite it-popup-background; - animation-timing-function: linear; - - opacity: 1; -} - -.it-rate-notify__heart -{ - position: absolute; - z-index: -1; - top: 20px; - left: 20px; - - width: 80px; - height: 80px; - - fill: url(#itHeartGradient); -} - -.it-rate-notify.it-rate-notify--show .it-rate-notify__heart -{ - animation: .8s infinite it-heart-beat; -} - -.it-rate-notify__title -{ - font-size: 18px; - font-weight: 500; - line-height: 27px; - - margin: 20px 24px; - - letter-spacing: .03125em; - - color: rgba(51, 38, 25, .8); -} - -.it-rate-notify__footer -{ - display: flex; - - padding: 8px; - - align-items: center; - justify-content: flex-end; -} - -.it-rate-notify__footer > button -{ - font: 500 18px 'Roboto'; - - min-width: 64px; - height: 36px; - padding: 0 8px; - - cursor: pointer; - transition: 150ms; - - color: rgba(255, 8, 68,.65); - border: none; - outline: none; - background: none; -} - -.it-rate-notify__footer > button:hover -{ - transform: scale(1.05); - - color: rgba(255, 8, 68,.85); -} - -.it-rate-notify__footer > button:last-child -{ - color: rgba(51, 38, 25, .25); -} - -.it-rate-notify__footer > button:last-child:hover -{ - color: rgba(51, 38, 25, .85); -} - -@keyframes it-popup-background -{ - 0% - { - background-image: linear-gradient(-20deg, #e9defa 0%, #e9defa 50%, #fbfcdb 100%); - } - 50% - { - background-image: linear-gradient(-20deg, #e9defa 0%, #fbfcdb 50%, #e9defa 100%); - } - 100% - { - background-image: linear-gradient(-20deg, #fbfcdb 0%, #e9defa 50%, #e9defa 100%); - } -} - -@keyframes it-heart-beat -{ - 0% - { - transform: scale(1); - } - 25% - { - transform: scale(1.1); - } - 40% - { - transform: scale(1); - } - 60% - { - transform: scale(1.1); - } - 100% - { - transform: scale(1); - } -} - -/*----------------------------------------------------------------------------- ->>> PLAYER -------------------------------------------------------------------------------- -1.0 Ads -2.0 Mini player - 2.1 Position and size - 2.2 Dragging - 2.3 Multipage -3.0 Custom player button - 3.1 Repeat - 3.2 Screenshot - 3.3 Rotate - 3.4 Popup -4.0 Crop chapter titles ------------------------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -1.0 Ads ----------------------------------------------------------------*/ - -/*html[it-player-ads="block_all"] .video-ads.ytp-ad-module, -html[it-player-ads="subscribed_channels"] .video-ads.ytp-ad-module -{ - display: none !important -}*/ - - -/*----------------------------------------------------------------------------- -2.0 Mini player ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -2.1 Position and size ------------------------------------------------------------------------------*/ - -.it-mini-player -{ - position: fixed !important; - z-index: 2147483648 !important; - left: 0!important; - top: 0!important; - - box-shadow: rgba(0, 0, 0, .4) 0 2px 8px !important; - - will-change: transform, width, height !important; - - background: #000 !important; -} - -html[it-page-type="video"][it-header-position="hover_on_video_page"][it-player-size="full_window"] .html5-video-player.it-mini-player, -html[it-page-type="video"][it-header-position="hover"][it-player-size="full_window"] .html5-video-player.it-mini-player -{ - margin-top: 0!important; -} - -.it-mini-player .html5-video-container, -.it-mini-player video -{ - left: 0 !important; - top: 0 !important; - width: 100% !important; - height: 100% !important; -} - -.it-mini-player .ytp-chrome-bottom -{ - width: calc(100% - 24px) !important; -} - -.it-mini-player .ytp-chapters-container -{ - display: flex; -} - -.it-mini-player .ytp-chapter-hover-container -{ - flex-grow: 1; -} - -html[it-mini-player=true] .ytp-contextmenu -{ - z-index: 2147483649 !important; -} - -.it-mini-player .ytp-miniplayer-button, -.it-mini-player .ytp-size-button -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -2.2 Dragging ------------------------------------------------------------------------------*/ - -.improvedtube-mini-player.dragging -{ - pointer-events: none !important; -} - -.improvedtube-mini-player.dragging *:not(.html5-video-container):not(video) -{ - visibility: hidden !important; -} - -html[data-cursor='w-resize'], -html[data-cursor='w-resize'] * -{ - cursor: w-resize !important; -} - -html[data-cursor='e-resize'], -html[data-cursor='e-resize'] * -{ - cursor: e-resize !important; -} - -html[it-mini-player-cursor='n-resize']::after, -html[it-mini-player-cursor='e-resize']::after, -html[it-mini-player-cursor='s-resize']::after, -html[it-mini-player-cursor='w-resize']::after, -html[it-mini-player-cursor='ne-resize']::after, -html[it-mini-player-cursor='se-resize']::after, -html[it-mini-player-cursor='sw-resize']::after, -html[it-mini-player-cursor='nw-resize']::after -{ - content: ''; - position: fixed; - left: 0; - top: 0; - width: 100vw; - height: 100vh; - z-index: 2147483650; -} - -html[it-mini-player-cursor='n-resize']::after -{ - cursor: n-resize; -} - -html[it-mini-player-cursor='e-resize']::after -{ - cursor: e-resize; -} - -html[it-mini-player-cursor='s-resize']::after -{ - cursor: s-resize; -} - -html[it-mini-player-cursor='w-resize']::after -{ - cursor: w-resize; -} - -html[it-mini-player-cursor='ne-resize']::after -{ - cursor: ne-resize; -} - -html[it-mini-player-cursor='se-resize']::after -{ - cursor: se-resize; -} - -html[it-mini-player-cursor='sw-resize']::after -{ - cursor: sw-resize; -} - -html[it-mini-player-cursor='nw-resize']::after -{ - cursor: nw-resize; -} - - -/*----------------------------------------------------------------------------- -2.3 Multipage ------------------------------------------------------------------------------*/ - -html[it-mini-player=true] ytd-watch-flexy[hidden] -{ - position: absolute !important; - top: 0 !important; - left: 0 !important; - - display: block !important; - visibility: hidden !important; - - max-width: 100% !important; - - pointer-events: none !important; -} - -html[it-mini-player=true] ytd-watch-flexy[hidden] .ytd-watch-next-secondary-results-renderer -{ - display: none; -} - -html[it-mini-player=true] ytd-watch-flexy[hidden] .improvedtube-mini-player -{ - position: fixed !important; - - visibility: visible !important; - - pointer-events: all !important; -} - - -/*----------------------------------------------------------------------------- -3.0 Custom player button ------------------------------------------------------------------------------*/ - -#it-repeat-button, -#it-screenshot-button, -#it-rotate-button, -#it-popup-player-button -{ - position: relative !important; -} - -.html5-video-player.ytp-big-mode #it-repeat-button svg, -.html5-video-player.ytp-big-mode #it-screenshot-button svg, -.html5-video-player.ytp-big-mode #it-rotate-button svg, -.html5-video-player.ytp-big-mode #it-popup-player-button svg -{ - top: 10px !important; - left: 10px !important; - - width: 34px !important; -} - -#it-repeat-button svg, -#it-screenshot-button svg, -#it-rotate-button svg, -#it-popup-player-button svg -{ - position: absolute !important; - - fill: #fff !important; -} - - -/*----------------------------------------------------------------------------- -3.1 Repeat ------------------------------------------------------------------------------*/ - -#it-repeat-button svg -{ - top: 6px !important; - left: 6px !important; - - width: 24px !important; -} - - -/*----------------------------------------------------------------------------- -3.2 Screenshot ------------------------------------------------------------------------------*/ - -#it-screenshot-button svg -{ - top: 7px !important; - left: 7px !important; - - width: 22px !important; -} - - -/*----------------------------------------------------------------------------- -3.3 Rotate ------------------------------------------------------------------------------*/ - -#it-rotate-button svg -{ - top: 7px !important; - left: 7px !important; - - width: 22px !important; -} - - -/*----------------------------------------------------------------------------- -3.4 Popup ------------------------------------------------------------------------------*/ - -#it-popup-player-button svg -{ - top: 7px !important; - left: 7px !important; - - width: 22px !important; -} - - - - - - - - - - - - -.it-player-button -{ - position: relative !important; - - overflow: visible !important; -} - -.it-player-button::before -{ - font-size: 13px; - font-weight: 600; - line-height: 13px; - - position: absolute; - top: -38px; - left: 50%; - - visibility: hidden; - - min-height: unset; - padding: 5px 9px; - - content: attr(data-title); - transform: translateX(-50%); - pointer-events: none; - - border-radius: 2px; - background-color: rgba(28,28,28,.9); -} - -.it-player-button:hover::before -{ - visibility: visible; - - pointer-events: all; -} - - - - - - -/*----------------------------------------------------------------------------- -4.0 Crop chapter titles ------------------------------------------------------------------------------*/ - -html[it-player-crop-chapter-titles='false'] .ytp-chapter-title -{ - width: auto !important; -} - -html[it-youtube-version=new] #it-playlist-reverse -{ - display: flex; - - width: 40px; - margin-left: 8px; - - cursor: pointer; - - align-items: center; - justify-content: center; -} - -html[it-youtube-version=new] #it-playlist-reverse svg -{ - fill: var(--iron-icon-fill-color, #909090); -} - -html[it-youtube-version=new] #it-playlist-reverse.yt-uix-button-toggled svg -{ - fill: var(--yt-spec-call-to-action); -} - -html[it-youtube-version=old] #it-playlist-reverse -{ - display: inline-block; - - box-sizing: border-box; - width: 26px; - height: 28px; - margin: 0 0 0 8px; - padding: 2px 1px; - - cursor: pointer; - vertical-align: middle; - - opacity: .5; -} - -html[it-youtube-version=old] #it-playlist-reverse.yt-uix-button-toggled -{ - opacity: 1; -} - -html[it-youtube-version=old] #it-playlist-reverse svg -{ - fill: #fff; -} - -/*----------------------------------------------------------------------------- ->>> SETTINGS -------------------------------------------------------------------------------- -1.0 ImprovedTube icon on YouTube ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 ImprovedTube icon on YouTube ------------------------------------------------------------------------------*/ - -html[it-improvedtube-youtube-icon='below_player'] .title.ytd-video-primary-info-renderer -{ - overflow: visible !important; -} - -html[it-improvedtube-youtube-icon='below_player'] h1.watch-title-container -{ - display: inline-block !important; -} - -html[it-improvedtube-youtube-icon='draggable'] .it-btn -{ - position: fixed; - z-index: 2147483645; - top: calc(100vh - 56px); - left: calc(100vw - 64px); -} - -.it-btn -{ - z-index: 2147483645; - - user-select: none; -} - -#container.ytd-masthead > .it-btn -{ - margin: 0 12px 0 0; -} - -.yt-masthead-logo-container > .it-btn -{ - float: left; - - margin: 0 12px 0 0; -} - -#end #buttons .it-btn -{ - margin: 3px 0 0 0; -} - -#yt-masthead-user > .it-btn -{ - float: right; - - margin: -2px 0 0 14px; -} - -.title.ytd-video-primary-info-renderer > .it-btn, -#watch-headline-title > .it-btn -{ - float: right; -} - -.it-btn__scrim -{ - position: fixed; - z-index: 2147483645; - top: 0; - left: 0; - - visibility: hidden; - - width: 100%; - height: 100vh; - - transition: 150ms; - pointer-events: none; - - opacity: 0; - background: #000; -} - -.it-btn__icon -{ - position: relative; - z-index: 2147483645; - - width: 32px; - height: 32px; - margin: 0 0 2px 0; - - cursor: pointer; - - border-radius: 50%; - background: #f00; -} - -.it-btn__icon::after -{ - position: absolute; - top: 9px; - left: 12px; - - display: block; - - content: ''; - - opacity: .9; - border-top: 7px solid transparent; - border-bottom: 7px solid transparent; - border-left: 11px solid #fff; -} - -.it-btn__iframe -{ - position: absolute; - z-index: 2147483645; - top: 50px; - - visibility: hidden; - - width: 320px; - max-width: 80vw; - height: 500px; - max-height: 80vh; - - transition: opacity 150ms; - pointer-events: none; - - opacity: 0; -} - -#end #buttons .it-btn__iframe, -#yt-masthead-user .it-btn__iframe -{ - right: 0; - left: auto; -} - -.it-btn.it-btn--active .it-btn__scrim -{ - visibility: visible; - - pointer-events: all; - - opacity: .5; -} - -.it-btn.it-btn--active .it-btn__iframe -{ - visibility: visible; - - pointer-events: all; - - opacity: 1; -} - -.it-btn--dragging, -.it-btn--dragging .it-btn__icon, -.it-btn--dragging .it-btn__iframe -{ - pointer-events: none !important; -} - -.it-btn--dragging .it-btn__iframe -{ - opacity: .75 !important; -} - -#it-status -{ - font-size: 5rem; - - position: absolute; - top: 2rem; - right: 3rem; - - color: #0ff; - text-shadow: 1px 1px 2px #000; -} - -/*----------------------------------------------------------------------------- ->>> THEMES -------------------------------------------------------------------------------- -1.0 Bluelight -2.0 Dim ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Bluelight ------------------------------------------------------------------------------*/ - -html[it-bluelight] -{ - height: auto !important; -} - -html[it-bluelight], -html[it-bluelight] .html5-video-player.ytp-fullscreen -{ - filter: url(#it-bluelight-filter) !important; -} - -#it-bluelight -{ - position: fixed !important; - top: 0 !important; - left: 0 !important; - - visibility: hidden !important; - - width: 100% !important; - height: 100vh !important; - - pointer-events: none !important; -} - -html[it-bluelight][it-youtube-version=old] -{ - background-color: #f1f1f1; -} - -html[it-bluelight][it-youtube-version=old] body -{ - min-height: 100vh; -} - - -/*----------------------------------------------------------------------------- -2.0 Dim ------------------------------------------------------------------------------*/ - -#it-dim -{ - position: fixed !important; - z-index: 2147483645 !important; - top: 0 !important; - left: 0 !important; - - width: 100% !important; - height: 100vh !important; - - pointer-events: none !important; - - background: #000 !important; -} - -#it-dim-player -{ - position: fixed !important; - z-index: 2147483645 !important; - top: 0 !important; - left: 0 !important; - - visibility: hidden !important; - - width: 100% !important; - height: 100vh !important; - - pointer-events: none !important; - - background: #000 !important; -} - -.html5-video-player.ytp-fullscreen #it-dim-player -{ - visibility: visible !important; -} - -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #000!important; - --yt-swatch-primary-darker: #000!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #000; - - --yt-spec-brand-background-solid:#000 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#000 !important; - --yt-spec-general-background-b:#000 !important; - --yt-spec-general-background-c:#000 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#aaa !important; - --yt-spec-text-primary-inverse:#aaa !important; - --yt-spec-text-secondary:#aaa !important; - --yt-spec-text-disabled:#aaa !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#aaa !important; - --yt-spec-icon-inactive:#aaa !important; - --yt-spec-icon-disabled:#aaa !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#000000 !important; - --yt-spec-filled-button-text:#aaa !important; - --yt-spec-call-to-action-inverse:#aaa !important; - --yt-spec-brand-icon-active:#aaa !important; - --yt-spec-brand-icon-inactive:#aaa !important; - --yt-spec-brand-button-background:#242424 !important; - --yt-spec-brand-link-text:#aaa !important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#aaa !important; - --yt-spec-wordmark-text:#aaa !important; - --yt-spec-10-percent-layer:#242424 !important; - --yt-spec-selected-nav-text:#aaa !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo -{ - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); -} -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #000!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #000; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #000; - --yt-playlist-background-item: #000; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #000; - --paper-listbox-background-color: #000; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #000; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #000; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #000; - --yt-menu-focus-background-color: #000; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #000; - --yt-main-app-background: #000; - --yt-main-app-background-tmp: #000; - --yt-guide-background: #000; - --yt-dialog-background: #000; - --yt-searchbox-background: #000!important; - --yt-channel-header-background: #000; - --yt-sidebar-background: #000; - --yt-transcript-background: #000; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #000; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #000; - --yt-blue-suggestive: transparent; -} - - - -@media (prefers-color-scheme: dark) { - [it-black-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #000!important; - --yt-swatch-primary-darker: #000!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #000; - - --yt-spec-brand-background-solid:#000 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#000 !important; - --yt-spec-general-background-b:#000 !important; - --yt-spec-general-background-c:#000 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#aaa !important; - --yt-spec-text-primary-inverse:#aaa !important; - --yt-spec-text-secondary:#aaa !important; - --yt-spec-text-disabled:#aaa !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#aaa !important; - --yt-spec-icon-inactive:#aaa !important; - --yt-spec-icon-disabled:#aaa !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#000000 !important; - --yt-spec-filled-button-text:#aaa !important; - --yt-spec-call-to-action-inverse:#aaa !important; - --yt-spec-brand-icon-active:#aaa !important; - --yt-spec-brand-icon-inactive:#aaa !important; - --yt-spec-brand-button-background:#242424 !important; - --yt-spec-brand-link-text:#aaa !important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#aaa !important; - --yt-spec-wordmark-text:#aaa !important; - --yt-spec-10-percent-layer:#242424 !important; - --yt-spec-selected-nav-text:#aaa !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - html[it-black-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-black-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #000!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #000; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-black-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-black-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #000; - --yt-playlist-background-item: #000; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #000; - --paper-listbox-background-color: #000; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #000; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #000; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #000; - --yt-menu-focus-background-color: #000; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #000; - --yt-main-app-background: #000; - --yt-main-app-background-tmp: #000; - --yt-guide-background: #000; - --yt-dialog-background: #000; - --yt-searchbox-background: #000!important; - --yt-channel-header-background: #000; - --yt-sidebar-background: #000; - --yt-transcript-background: #000; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #000; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #000; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-black-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #000!important; - --yt-swatch-primary-darker: #000!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #000; - - --yt-spec-brand-background-solid:#000 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#000 !important; - --yt-spec-general-background-b:#000 !important; - --yt-spec-general-background-c:#000 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#aaa !important; - --yt-spec-text-primary-inverse:#aaa !important; - --yt-spec-text-secondary:#aaa !important; - --yt-spec-text-disabled:#aaa !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#aaa !important; - --yt-spec-icon-inactive:#aaa !important; - --yt-spec-icon-disabled:#aaa !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#000000 !important; - --yt-spec-filled-button-text:#aaa !important; - --yt-spec-call-to-action-inverse:#aaa !important; - --yt-spec-brand-icon-active:#aaa !important; - --yt-spec-brand-icon-inactive:#aaa !important; - --yt-spec-brand-button-background:#242424 !important; - --yt-spec-brand-link-text:#aaa !important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#aaa !important; - --yt-spec-wordmark-text:#aaa !important; - --yt-spec-10-percent-layer:#242424 !important; - --yt-spec-selected-nav-text:#aaa !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - html[it-black-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-black-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #000!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #000; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-black-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-black-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #000; - --yt-playlist-background-item: #000; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #000; - --paper-listbox-background-color: #000; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #000; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #000; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #000; - --yt-menu-focus-background-color: #000; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #000; - --yt-main-app-background: #000; - --yt-main-app-background-tmp: #000; - --yt-guide-background: #000; - --yt-dialog-background: #000; - --yt-searchbox-background: #000!important; - --yt-channel-header-background: #000; - --yt-sidebar-background: #000; - --yt-transcript-background: #000; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #000; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #000; - --yt-blue-suggestive: transparent; - } -} -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #d44d5c!important; - --yt-swatch-primary-darker: #d44d5c!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #734; - - --yt-spec-brand-background-solid:#d44d5c !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#d44d5c !important; - --yt-spec-general-background-b:#d44d5c !important; - --yt-spec-general-background-c:#d44d5c !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:rgb(255,255,255) !important; - --yt-spec-text-primary-inverse:rgb(255,255,255) !important; - --yt-spec-text-secondary:rgb(255,255,255) !important; - --yt-spec-text-disabled:rgb(255,255,255) !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:rgb(255,255,255) !important; - --yt-spec-icon-inactive:rgb(255,255,255) !important; - --yt-spec-icon-disabled:rgb(255,255,255) !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#d44d5c !important; - --yt-spec-filled-button-text:rgb(255,255,255) !important; - --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; - --yt-spec-brand-icon-active:rgb(255,255,255) !important; - --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:rgb(255,255,255)!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; - --yt-spec-wordmark-text:rgb(255,255,255) !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:rgb(255,255,255) !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #734!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #d44d5c; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #d44d5c; - --yt-playlist-background-item: #d44d5c; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #d44d5c; - --paper-listbox-background-color: #d44d5c; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #d44d5c; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #d44d5c; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #d44d5c; - --yt-menu-focus-background-color: #d44d5c; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #d44d5c; - --yt-main-app-background: #d44d5c; - --yt-main-app-background-tmp: #d44d5c; - --yt-guide-background: #d44d5c; - --yt-dialog-background: #734; - --yt-searchbox-background: #672c3b; - --yt-channel-header-background: #d44d5c; - --yt-sidebar-background: #d44d5c; - --yt-transcript-background: #d44d5c; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #d44d5c; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #d44d5c; - --yt-blue-suggestive: transparent; - --yt-spec-text-secondary: #f5dbe2; -} -html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo -{ - -webkit-filter: grayscale(1) brightness(4); - filter: grayscale(1) brightness(4); -} - - - - - -@media (prefers-color-scheme: dark) { - [it-dawn-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #d44d5c!important; - --yt-swatch-primary-darker: #d44d5c!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #734; - - --yt-spec-brand-background-solid:#d44d5c !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#d44d5c !important; - --yt-spec-general-background-b:#d44d5c !important; - --yt-spec-general-background-c:#d44d5c !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:rgb(255,255,255) !important; - --yt-spec-text-primary-inverse:rgb(255,255,255) !important; - --yt-spec-text-secondary:rgb(255,255,255) !important; - --yt-spec-text-disabled:rgb(255,255,255) !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:rgb(255,255,255) !important; - --yt-spec-icon-inactive:rgb(255,255,255) !important; - --yt-spec-icon-disabled:rgb(255,255,255) !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#d44d5c !important; - --yt-spec-filled-button-text:rgb(255,255,255) !important; - --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; - --yt-spec-brand-icon-active:rgb(255,255,255) !important; - --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:rgb(255,255,255)!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; - --yt-spec-wordmark-text:rgb(255,255,255) !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:rgb(255,255,255) !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-dawn-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #734!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #d44d5c; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-dawn-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-dawn-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #d44d5c; - --yt-playlist-background-item: #d44d5c; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #d44d5c; - --paper-listbox-background-color: #d44d5c; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #d44d5c; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #d44d5c; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #d44d5c; - --yt-menu-focus-background-color: #d44d5c; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #d44d5c; - --yt-main-app-background: #d44d5c; - --yt-main-app-background-tmp: #d44d5c; - --yt-guide-background: #d44d5c; - --yt-dialog-background: #734; - --yt-searchbox-background: #672c3b; - --yt-channel-header-background: #d44d5c; - --yt-sidebar-background: #d44d5c; - --yt-transcript-background: #d44d5c; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #d44d5c; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #d44d5c; - --yt-blue-suggestive: transparent; - --yt-spec-text-secondary: #f5dbe2; - } - html[it-dawn-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(4); - filter: grayscale(1) brightness(4); - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-dawn-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #d44d5c!important; - --yt-swatch-primary-darker: #d44d5c!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #734; - - --yt-spec-brand-background-solid:#d44d5c !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#d44d5c !important; - --yt-spec-general-background-b:#d44d5c !important; - --yt-spec-general-background-c:#d44d5c !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:rgb(255,255,255) !important; - --yt-spec-text-primary-inverse:rgb(255,255,255) !important; - --yt-spec-text-secondary:rgb(255,255,255) !important; - --yt-spec-text-disabled:rgb(255,255,255) !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:rgb(255,255,255) !important; - --yt-spec-icon-inactive:rgb(255,255,255) !important; - --yt-spec-icon-disabled:rgb(255,255,255) !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#d44d5c !important; - --yt-spec-filled-button-text:rgb(255,255,255) !important; - --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; - --yt-spec-brand-icon-active:rgb(255,255,255) !important; - --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:rgb(255,255,255)!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; - --yt-spec-wordmark-text:rgb(255,255,255) !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:rgb(255,255,255) !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-dawn-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #734!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #d44d5c; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-dawn-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-dawn-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #d44d5c; - --yt-playlist-background-item: #d44d5c; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #d44d5c; - --paper-listbox-background-color: #d44d5c; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #d44d5c; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #d44d5c; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #d44d5c; - --yt-menu-focus-background-color: #d44d5c; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #d44d5c; - --yt-main-app-background: #d44d5c; - --yt-main-app-background-tmp: #d44d5c; - --yt-guide-background: #d44d5c; - --yt-dialog-background: #734; - --yt-searchbox-background: #672c3b; - --yt-channel-header-background: #d44d5c; - --yt-sidebar-background: #d44d5c; - --yt-transcript-background: #d44d5c; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #d44d5c; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #d44d5c; - --yt-blue-suggestive: transparent; - --yt-spec-text-secondary: #f5dbe2; - } - html[it-dawn-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(4); - filter: grayscale(1) brightness(4); - } -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-header-primary: rgb(34,38,42)!important; - --yt-swatch-primary: rgb(34,38,42)!important; - --yt-swatch-primary-darker: rgb(28,32,36)!important; - --yt-swatch-text: rgb(200,200,200)!important; - --yt-swatch-important-text: rgb(200,200,200)!important; - --yt-swatch-input-text: rgba(200,200,200,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(200,200,200)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; -} - -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #masthead-search-term -{ - border: 1px solid #444!important; - border-right: none!important; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light])[youtube-version=old] body -{ - height: auto; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - background: var(--yt-swatch-primary-darker)!important; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #232323!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #282828; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) -{ - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); - --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: hsl(0, 0%, 14%); - --paper-listbox-background-color: hsl(0, 0%, 14%); - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: hsl(0, 0%, 14%); - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); - --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: hsl(0, 0%, 7%); - --yt-main-app-background: hsl(0, 0%, 7%); - --yt-main-app-background-tmp: hsl(0, 0%, 7%); - --yt-guide-background: hsl(0, 0%, 11%); - --yt-dialog-background: hsl(0, 0%, 14%); - --yt-searchbox-background: hsl(0, 0%, 7%); - --yt-channel-header-background: hsla(0, 0%, 11%, .8); - --yt-sidebar-background: hsla(0, 0%, 11%, .8); - --yt-transcript-background: hsl(0, 0%, 11%); - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); - --yt-blue-suggestive: transparent; -} - -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light])[youtube-version=old] body -{ - height: auto!important; - - background: rgb(19,19,19)!important; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-youtube-version=old][it-default-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-header-primary: rgb(34,38,42)!important; - --yt-swatch-primary: rgb(34,38,42)!important; - --yt-swatch-primary-darker: rgb(28,32,36)!important; - --yt-swatch-text: rgb(200,200,200)!important; - --yt-swatch-important-text: rgb(200,200,200)!important; - --yt-swatch-input-text: rgba(200,200,200,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(200,200,200)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] #masthead-search-term - { - border: 1px solid #444!important; - border-right: none!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] html[youtube-version=old] body - { - height: auto; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] - { - background: var(--yt-swatch-primary-darker)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #232323!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #282828; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) - { - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); - --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: hsl(0, 0%, 14%); - --paper-listbox-background-color: hsl(0, 0%, 14%); - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: hsl(0, 0%, 14%); - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); - --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: hsl(0, 0%, 7%); - --yt-main-app-background: hsl(0, 0%, 7%); - --yt-main-app-background-tmp: hsl(0, 0%, 7%); - --yt-guide-background: hsl(0, 0%, 11%); - --yt-dialog-background: hsl(0, 0%, 14%); - --yt-searchbox-background: hsl(0, 0%, 7%); - --yt-channel-header-background: hsla(0, 0%, 11%, .8); - --yt-sidebar-background: hsla(0, 0%, 11%, .8); - --yt-transcript-background: hsl(0, 0%, 11%); - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); - --yt-blue-suggestive: transparent; - } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark][youtube-version=old] body - { - height: auto!important; - - background: rgb(19,19,19)!important; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-youtube-version=old][it-default-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-header-primary: rgb(34,38,42)!important; - --yt-swatch-primary: rgb(34,38,42)!important; - --yt-swatch-primary-darker: rgb(28,32,36)!important; - --yt-swatch-text: rgb(200,200,200)!important; - --yt-swatch-important-text: rgb(200,200,200)!important; - --yt-swatch-input-text: rgba(200,200,200,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(200,200,200)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] #masthead-search-term - { - border: 1px solid #444!important; - border-right: none!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] html[youtube-version=old] body - { - height: auto; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] - { - background: var(--yt-swatch-primary-darker)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #232323!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #282828; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) - { - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); - --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: hsl(0, 0%, 14%); - --paper-listbox-background-color: hsl(0, 0%, 14%); - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: hsl(0, 0%, 14%); - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); - --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: hsl(0, 0%, 7%); - --yt-main-app-background: hsl(0, 0%, 7%); - --yt-main-app-background-tmp: hsl(0, 0%, 7%); - --yt-guide-background: hsl(0, 0%, 11%); - --yt-dialog-background: hsl(0, 0%, 14%); - --yt-searchbox-background: hsl(0, 0%, 7%); - --yt-channel-header-background: hsla(0, 0%, 11%, .8); - --yt-sidebar-background: hsla(0, 0%, 11%, .8); - --yt-transcript-background: hsl(0, 0%, 11%); - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); - --yt-blue-suggestive: transparent; - } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light][youtube-version=old] body - { - height: auto!important; - - background: rgb(19,19,19)!important; - } -} -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #faf9f9!important; - --yt-swatch-primary-darker: #faf9f9!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #bee3db; - - --yt-spec-brand-background-solid:#faf9f9 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#faf9f9 !important; - --yt-spec-general-background-b:#faf9f9 !important; - --yt-spec-general-background-c:#faf9f9 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#555 !important; - --yt-spec-text-primary-inverse:#555 !important; - --yt-spec-text-secondary:#555 !important; - --yt-spec-text-disabled:#555 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#555 !important; - --yt-spec-icon-inactive:#555 !important; - --yt-spec-icon-disabled:#555 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#faf9f9 !important; - --yt-spec-filled-button-text:#555 !important; - --yt-spec-call-to-action-inverse:#555 !important; - --yt-spec-brand-icon-active:#555 !important; - --yt-spec-brand-icon-inactive:#555 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#555!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#555 !important; - --yt-spec-wordmark-text:#555 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#555 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #bee3db!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #faf9f9; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: #555; - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #555; - --yt-spec-text-primary: #555; - --ytd-searchbox-border-color: #555; - --ytd-searchbox-legacy-border-color: #555; - --ytd-searchbox-legacy-border-shadow-color: #555; - --ytd-searchbox-legacy-button-color: #555; - --ytd-searchbox-legacy-button-border-color: #555; - --ytd-searchbox-legacy-button-focus-color: #555; - --ytd-searchbox-legacy-button-hover-color: #555; - --ytd-searchbox-legacy-button-hover-border-color: #555; - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: #555; - --ytd-moderation-panel-hover: #555; - --ytd-moderation-panel-comment-text: #555; - --ytd-moderation-panel-comment-metadata-text: #555; - --ytd-moderation-icon-color: #555; - --ytd-moderation-icon-hover-color: #555; - --ytd-comment-text-color: #555; - --ytd-comment-metadata-text-color: #555; - --ytd-watch-card-secondary-text-color: #555; - --ytd-watch-card-album-header-background: #555; - --ytd-backstage-metadata-text-color: #555; - --ytd-backstage-video-link-background-color: #555; - --ytd-backstage-image-alert-color: #555; - --ytd-backstage-cancel-background-color: #555; - --ytd-backstage-cancel-color: #555; - --ytd-backstage-creationbox-background-color: #555; - --ytd-backstage-creationbox-background-color-focus: #555; - --ytd-backstage-creationbox-inactive-color: #555; - --ytd-backstage-creationbox-text-color: #555; - --ytd-backstage-creationbox-input-text-color: #555; - --ytd-backstage-creationbox-disabled-button-color: #555; - --ytd-backstage-creationbox-disabled-button-text-color: #555; - --ytd-backstage-attachment-icon-hover-color: #555; - --ytd-sponsorships-background-color-focus: #555; - --ytd-badge-background: #555; - --ytd-badge-disabled-color: #555; - --ytd-collection-badge-color: #555; - --ytd-owner-badge-color: #555; - --ytd-simple-badge-color: #555; - --ytd-ad-badge-text-color: #555; - --ytd-shopping-product-info: #555; - --ytd-toggle-color: #555; - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: #555; - --ytd-transcript-toolbar-background-color: #555; - --ytd-transcript-toolbar-text: #555; - --ytd-video-publish-date-color: #555; - --ytd-vat-notice-text: #555; - --ytd-offer-background-color: #555; - --ytd-video-game-watch-card-logo-color: #555; - --ytd-watch-split-pane-sidebar-background-color: #555; - --yt-std-body-100: #555; - --yt-std-body-200: #555; - --yt-std-body-300: #555; - --yt-std-surface-200: #555; - --yt-std-surface-300: #555; - --yt-std-surface-400: #555; - --yt-primary-color: #555; - --yt-primary-text-color: #555; - --yt-hovered-text-color: #555; - --yt-secondary-text-color: #555; - --yt-tertiary-text-color: #555; - --yt-disabled-text-color: #555; - --yt-placeholder-text-color: #555; - --yt-border-color: #555; - --yt-commentbox-border-inactive: #555; - --yt-commentbox-border-active: #555; - --yt-alert-background: #555; - --yt-paper-button-ink-color: #555; - --yt-icon-color: #555; - --yt-icon-hover-color: #555; - --yt-icon-active-color: #555; - --yt-icon-disabled-color: #555; - --yt-endpoint-color: #555; - --yt-expand-color: #555; - --yt-metadata-color: #555; - --yt-channel-owner: #555; - --yt-placeholder-text: #555; - --yt-playlist-background-header: #faf9f9; - --yt-playlist-background-item: #faf9f9; - --yt-playlist-title-text: #555; - --yt-playlist-message-text: #555; - --yt-playlist-message-text-hover: #555; - --yt-subscribe-button-text-color: #555; - --yt-brand-color: #555; - --yt-button-text-color: #555; - --yt-button-payment-text-color: #555; - --yt-copyright-text: #555; - --yt-guide-entry-hover-background-color: #555; - --yt-thumbnail-placeholder-color: #555; - --yt-primary-disabled-button-text-color: #555; - --yt-featured-channel-title-text-color: #555; - --yt-formatted-string-deemphasize-color: #555; - --paper-menu-background-color: #faf9f9; - --paper-listbox-background-color: #faf9f9; - --paper-menu-color: #555; - --paper-listbox-color: #555; - --paper-dialog-background-color: #faf9f9; - --paper-toggle-button-unchecked-bar-color: #555; - --yt-simple-menu-header-background: #faf9f9; - --yt-item-section-header-color: #555; - --yt-menu-hover-backgound-color: #faf9f9; - --yt-menu-focus-background-color: #faf9f9; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: #555; - --yt-material-searchbox-active: #555; - --yt-material-searchbox-inactive-shadow: #555; - --yt-material-searchbox-active-shadow: #555; - --yt-material-searchbox-inset: #555; - --yt-material-searchbox-text-color: #555; - --yt-app-background: #faf9f9; - --yt-main-app-background: #faf9f9; - --yt-main-app-background-tmp: #faf9f9; - --yt-guide-background: #faf9f9; - --yt-dialog-background: #bee3db; - --yt-searchbox-background: #faf9f9; - --yt-channel-header-background: #faf9f9; - --yt-sidebar-background: #faf9f9; - --yt-transcript-background: #faf9f9; - --yt-chat-bubble-other-border-color: #555; - --yt-chat-bubble-other-background-color: #faf9f9; - --yt-chat-bubble-self-border-color: #555; - --yt-chat-bubble-self-background-color: #faf9f9; - --yt-blue-suggestive: transparent; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-desert-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #faf9f9!important; - --yt-swatch-primary-darker: #faf9f9!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #bee3db; - - --yt-spec-brand-background-solid:#faf9f9 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#faf9f9 !important; - --yt-spec-general-background-b:#faf9f9 !important; - --yt-spec-general-background-c:#faf9f9 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#555 !important; - --yt-spec-text-primary-inverse:#555 !important; - --yt-spec-text-secondary:#555 !important; - --yt-spec-text-disabled:#555 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#555 !important; - --yt-spec-icon-inactive:#555 !important; - --yt-spec-icon-disabled:#555 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#faf9f9 !important; - --yt-spec-filled-button-text:#555 !important; - --yt-spec-call-to-action-inverse:#555 !important; - --yt-spec-brand-icon-active:#555 !important; - --yt-spec-brand-icon-inactive:#555 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#555!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#555 !important; - --yt-spec-wordmark-text:#555 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#555 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-desert-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #bee3db!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #faf9f9; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: #555; - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-desert-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-desert-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #555; - --yt-spec-text-primary: #555; - --ytd-searchbox-border-color: #555; - --ytd-searchbox-legacy-border-color: #555; - --ytd-searchbox-legacy-border-shadow-color: #555; - --ytd-searchbox-legacy-button-color: #555; - --ytd-searchbox-legacy-button-border-color: #555; - --ytd-searchbox-legacy-button-focus-color: #555; - --ytd-searchbox-legacy-button-hover-color: #555; - --ytd-searchbox-legacy-button-hover-border-color: #555; - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: #555; - --ytd-moderation-panel-hover: #555; - --ytd-moderation-panel-comment-text: #555; - --ytd-moderation-panel-comment-metadata-text: #555; - --ytd-moderation-icon-color: #555; - --ytd-moderation-icon-hover-color: #555; - --ytd-comment-text-color: #555; - --ytd-comment-metadata-text-color: #555; - --ytd-watch-card-secondary-text-color: #555; - --ytd-watch-card-album-header-background: #555; - --ytd-backstage-metadata-text-color: #555; - --ytd-backstage-video-link-background-color: #555; - --ytd-backstage-image-alert-color: #555; - --ytd-backstage-cancel-background-color: #555; - --ytd-backstage-cancel-color: #555; - --ytd-backstage-creationbox-background-color: #555; - --ytd-backstage-creationbox-background-color-focus: #555; - --ytd-backstage-creationbox-inactive-color: #555; - --ytd-backstage-creationbox-text-color: #555; - --ytd-backstage-creationbox-input-text-color: #555; - --ytd-backstage-creationbox-disabled-button-color: #555; - --ytd-backstage-creationbox-disabled-button-text-color: #555; - --ytd-backstage-attachment-icon-hover-color: #555; - --ytd-sponsorships-background-color-focus: #555; - --ytd-badge-background: #555; - --ytd-badge-disabled-color: #555; - --ytd-collection-badge-color: #555; - --ytd-owner-badge-color: #555; - --ytd-simple-badge-color: #555; - --ytd-ad-badge-text-color: #555; - --ytd-shopping-product-info: #555; - --ytd-toggle-color: #555; - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: #555; - --ytd-transcript-toolbar-background-color: #555; - --ytd-transcript-toolbar-text: #555; - --ytd-video-publish-date-color: #555; - --ytd-vat-notice-text: #555; - --ytd-offer-background-color: #555; - --ytd-video-game-watch-card-logo-color: #555; - --ytd-watch-split-pane-sidebar-background-color: #555; - --yt-std-body-100: #555; - --yt-std-body-200: #555; - --yt-std-body-300: #555; - --yt-std-surface-200: #555; - --yt-std-surface-300: #555; - --yt-std-surface-400: #555; - --yt-primary-color: #555; - --yt-primary-text-color: #555; - --yt-hovered-text-color: #555; - --yt-secondary-text-color: #555; - --yt-tertiary-text-color: #555; - --yt-disabled-text-color: #555; - --yt-placeholder-text-color: #555; - --yt-border-color: #555; - --yt-commentbox-border-inactive: #555; - --yt-commentbox-border-active: #555; - --yt-alert-background: #555; - --yt-paper-button-ink-color: #555; - --yt-icon-color: #555; - --yt-icon-hover-color: #555; - --yt-icon-active-color: #555; - --yt-icon-disabled-color: #555; - --yt-endpoint-color: #555; - --yt-expand-color: #555; - --yt-metadata-color: #555; - --yt-channel-owner: #555; - --yt-placeholder-text: #555; - --yt-playlist-background-header: #faf9f9; - --yt-playlist-background-item: #faf9f9; - --yt-playlist-title-text: #555; - --yt-playlist-message-text: #555; - --yt-playlist-message-text-hover: #555; - --yt-subscribe-button-text-color: #555; - --yt-brand-color: #555; - --yt-button-text-color: #555; - --yt-button-payment-text-color: #555; - --yt-copyright-text: #555; - --yt-guide-entry-hover-background-color: #555; - --yt-thumbnail-placeholder-color: #555; - --yt-primary-disabled-button-text-color: #555; - --yt-featured-channel-title-text-color: #555; - --yt-formatted-string-deemphasize-color: #555; - --paper-menu-background-color: #faf9f9; - --paper-listbox-background-color: #faf9f9; - --paper-menu-color: #555; - --paper-listbox-color: #555; - --paper-dialog-background-color: #faf9f9; - --paper-toggle-button-unchecked-bar-color: #555; - --yt-simple-menu-header-background: #faf9f9; - --yt-item-section-header-color: #555; - --yt-menu-hover-backgound-color: #faf9f9; - --yt-menu-focus-background-color: #faf9f9; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: #555; - --yt-material-searchbox-active: #555; - --yt-material-searchbox-inactive-shadow: #555; - --yt-material-searchbox-active-shadow: #555; - --yt-material-searchbox-inset: #555; - --yt-material-searchbox-text-color: #555; - --yt-app-background: #faf9f9; - --yt-main-app-background: #faf9f9; - --yt-main-app-background-tmp: #faf9f9; - --yt-guide-background: #faf9f9; - --yt-dialog-background: #bee3db; - --yt-searchbox-background: #faf9f9; - --yt-channel-header-background: #faf9f9; - --yt-sidebar-background: #faf9f9; - --yt-transcript-background: #faf9f9; - --yt-chat-bubble-other-border-color: #555; - --yt-chat-bubble-other-background-color: #faf9f9; - --yt-chat-bubble-self-border-color: #555; - --yt-chat-bubble-self-background-color: #faf9f9; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-desert-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #faf9f9!important; - --yt-swatch-primary-darker: #faf9f9!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #bee3db; - - --yt-spec-brand-background-solid:#faf9f9 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#faf9f9 !important; - --yt-spec-general-background-b:#faf9f9 !important; - --yt-spec-general-background-c:#faf9f9 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#555 !important; - --yt-spec-text-primary-inverse:#555 !important; - --yt-spec-text-secondary:#555 !important; - --yt-spec-text-disabled:#555 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#555 !important; - --yt-spec-icon-inactive:#555 !important; - --yt-spec-icon-disabled:#555 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#faf9f9 !important; - --yt-spec-filled-button-text:#555 !important; - --yt-spec-call-to-action-inverse:#555 !important; - --yt-spec-brand-icon-active:#555 !important; - --yt-spec-brand-icon-inactive:#555 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#555!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#555 !important; - --yt-spec-wordmark-text:#555 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#555 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-desert-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #bee3db!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #faf9f9; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: #555; - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-desert-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-desert-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #555; - --yt-spec-text-primary: #555; - --ytd-searchbox-border-color: #555; - --ytd-searchbox-legacy-border-color: #555; - --ytd-searchbox-legacy-border-shadow-color: #555; - --ytd-searchbox-legacy-button-color: #555; - --ytd-searchbox-legacy-button-border-color: #555; - --ytd-searchbox-legacy-button-focus-color: #555; - --ytd-searchbox-legacy-button-hover-color: #555; - --ytd-searchbox-legacy-button-hover-border-color: #555; - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: #555; - --ytd-moderation-panel-hover: #555; - --ytd-moderation-panel-comment-text: #555; - --ytd-moderation-panel-comment-metadata-text: #555; - --ytd-moderation-icon-color: #555; - --ytd-moderation-icon-hover-color: #555; - --ytd-comment-text-color: #555; - --ytd-comment-metadata-text-color: #555; - --ytd-watch-card-secondary-text-color: #555; - --ytd-watch-card-album-header-background: #555; - --ytd-backstage-metadata-text-color: #555; - --ytd-backstage-video-link-background-color: #555; - --ytd-backstage-image-alert-color: #555; - --ytd-backstage-cancel-background-color: #555; - --ytd-backstage-cancel-color: #555; - --ytd-backstage-creationbox-background-color: #555; - --ytd-backstage-creationbox-background-color-focus: #555; - --ytd-backstage-creationbox-inactive-color: #555; - --ytd-backstage-creationbox-text-color: #555; - --ytd-backstage-creationbox-input-text-color: #555; - --ytd-backstage-creationbox-disabled-button-color: #555; - --ytd-backstage-creationbox-disabled-button-text-color: #555; - --ytd-backstage-attachment-icon-hover-color: #555; - --ytd-sponsorships-background-color-focus: #555; - --ytd-badge-background: #555; - --ytd-badge-disabled-color: #555; - --ytd-collection-badge-color: #555; - --ytd-owner-badge-color: #555; - --ytd-simple-badge-color: #555; - --ytd-ad-badge-text-color: #555; - --ytd-shopping-product-info: #555; - --ytd-toggle-color: #555; - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: #555; - --ytd-transcript-toolbar-background-color: #555; - --ytd-transcript-toolbar-text: #555; - --ytd-video-publish-date-color: #555; - --ytd-vat-notice-text: #555; - --ytd-offer-background-color: #555; - --ytd-video-game-watch-card-logo-color: #555; - --ytd-watch-split-pane-sidebar-background-color: #555; - --yt-std-body-100: #555; - --yt-std-body-200: #555; - --yt-std-body-300: #555; - --yt-std-surface-200: #555; - --yt-std-surface-300: #555; - --yt-std-surface-400: #555; - --yt-primary-color: #555; - --yt-primary-text-color: #555; - --yt-hovered-text-color: #555; - --yt-secondary-text-color: #555; - --yt-tertiary-text-color: #555; - --yt-disabled-text-color: #555; - --yt-placeholder-text-color: #555; - --yt-border-color: #555; - --yt-commentbox-border-inactive: #555; - --yt-commentbox-border-active: #555; - --yt-alert-background: #555; - --yt-paper-button-ink-color: #555; - --yt-icon-color: #555; - --yt-icon-hover-color: #555; - --yt-icon-active-color: #555; - --yt-icon-disabled-color: #555; - --yt-endpoint-color: #555; - --yt-expand-color: #555; - --yt-metadata-color: #555; - --yt-channel-owner: #555; - --yt-placeholder-text: #555; - --yt-playlist-background-header: #faf9f9; - --yt-playlist-background-item: #faf9f9; - --yt-playlist-title-text: #555; - --yt-playlist-message-text: #555; - --yt-playlist-message-text-hover: #555; - --yt-subscribe-button-text-color: #555; - --yt-brand-color: #555; - --yt-button-text-color: #555; - --yt-button-payment-text-color: #555; - --yt-copyright-text: #555; - --yt-guide-entry-hover-background-color: #555; - --yt-thumbnail-placeholder-color: #555; - --yt-primary-disabled-button-text-color: #555; - --yt-featured-channel-title-text-color: #555; - --yt-formatted-string-deemphasize-color: #555; - --paper-menu-background-color: #faf9f9; - --paper-listbox-background-color: #faf9f9; - --paper-menu-color: #555; - --paper-listbox-color: #555; - --paper-dialog-background-color: #faf9f9; - --paper-toggle-button-unchecked-bar-color: #555; - --yt-simple-menu-header-background: #faf9f9; - --yt-item-section-header-color: #555; - --yt-menu-hover-backgound-color: #faf9f9; - --yt-menu-focus-background-color: #faf9f9; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: #555; - --yt-material-searchbox-active: #555; - --yt-material-searchbox-inactive-shadow: #555; - --yt-material-searchbox-active-shadow: #555; - --yt-material-searchbox-inset: #555; - --yt-material-searchbox-text-color: #555; - --yt-app-background: #faf9f9; - --yt-main-app-background: #faf9f9; - --yt-main-app-background-tmp: #faf9f9; - --yt-guide-background: #faf9f9; - --yt-dialog-background: #bee3db; - --yt-searchbox-background: #faf9f9; - --yt-channel-header-background: #faf9f9; - --yt-sidebar-background: #faf9f9; - --yt-transcript-background: #faf9f9; - --yt-chat-bubble-other-border-color: #555; - --yt-chat-bubble-other-background-color: #faf9f9; - --yt-chat-bubble-self-border-color: #555; - --yt-chat-bubble-self-background-color: #faf9f9; - --yt-blue-suggestive: transparent; - } -} -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #003459!important; - --yt-swatch-primary-darker: #003459!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #007ea7; - - --yt-spec-brand-background-solid:#003459 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#003459 !important; - --yt-spec-general-background-b:#003459 !important; - --yt-spec-general-background-c:#003459 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#003459 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo -{ - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); -} -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #007ea7!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #003459; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #003459; - --yt-playlist-background-item: #003459; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #003459; - --paper-listbox-background-color: #003459; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #003459; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #003459; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #003459; - --yt-menu-focus-background-color: #003459; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #003459; - --yt-main-app-background: #003459; - --yt-main-app-background-tmp: #003459; - --yt-guide-background: #003459; - --yt-dialog-background: #007ea7; - --yt-searchbox-background: #003459!important; - --yt-channel-header-background: #003459; - --yt-sidebar-background: #003459; - --yt-transcript-background: #003459; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #003459; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #003459; - --yt-blue-suggestive: transparent; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-night-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #003459!important; - --yt-swatch-primary-darker: #003459!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #007ea7; - - --yt-spec-brand-background-solid:#003459 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#003459 !important; - --yt-spec-general-background-b:#003459 !important; - --yt-spec-general-background-c:#003459 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#003459 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - html[it-night-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-night-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #007ea7!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #003459; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-night-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-night-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #003459; - --yt-playlist-background-item: #003459; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #003459; - --paper-listbox-background-color: #003459; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #003459; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #003459; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #003459; - --yt-menu-focus-background-color: #003459; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #003459; - --yt-main-app-background: #003459; - --yt-main-app-background-tmp: #003459; - --yt-guide-background: #003459; - --yt-dialog-background: #007ea7; - --yt-searchbox-background: #003459!important; - --yt-channel-header-background: #003459; - --yt-sidebar-background: #003459; - --yt-transcript-background: #003459; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #003459; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #003459; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-night-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #003459!important; - --yt-swatch-primary-darker: #003459!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #007ea7; - - --yt-spec-brand-background-solid:#003459 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#003459 !important; - --yt-spec-general-background-b:#003459 !important; - --yt-spec-general-background-c:#003459 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#003459 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - html[it-night-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-night-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #007ea7!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #003459; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-night-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-night-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #003459; - --yt-playlist-background-item: #003459; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #003459; - --paper-listbox-background-color: #003459; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #003459; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #003459; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #003459; - --yt-menu-focus-background-color: #003459; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #003459; - --yt-main-app-background: #003459; - --yt-main-app-background-tmp: #003459; - --yt-guide-background: #003459; - --yt-dialog-background: #007ea7; - --yt-searchbox-background: #003459!important; - --yt-channel-header-background: #003459; - --yt-sidebar-background: #003459; - --yt-transcript-background: #003459; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #003459; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #003459; - --yt-blue-suggestive: transparent; - } -} -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #c7efcf!important; - --yt-swatch-primary-darker: #c7efcf!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #d6d1b1; - - --yt-spec-brand-background-solid:#c7efcf !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#c7efcf !important; - --yt-spec-general-background-b:#c7efcf !important; - --yt-spec-general-background-c:#c7efcf !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#666 !important; - --yt-spec-text-primary-inverse:#666 !important; - --yt-spec-text-secondary:#666 !important; - --yt-spec-text-disabled:#666 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#666 !important; - --yt-spec-icon-inactive:#666 !important; - --yt-spec-icon-disabled:#666 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#c7efcf !important; - --yt-spec-filled-button-text:#666 !important; - --yt-spec-call-to-action-inverse:#666 !important; - --yt-spec-brand-icon-active:#666 !important; - --yt-spec-brand-icon-inactive:#666 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#666!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#666 !important; - --yt-spec-wordmark-text:#666 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#666 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #d6d1b1!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #c7efcf; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #666; - --yt-spec-text-primary: #666; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #c7efcf; - --yt-playlist-background-item: #c7efcf; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #c7efcf; - --paper-listbox-background-color: #c7efcf; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #c7efcf; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #c7efcf; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #c7efcf; - --yt-menu-focus-background-color: #c7efcf; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #c7efcf; - --yt-main-app-background: #c7efcf; - --yt-main-app-background-tmp: #c7efcf; - --yt-guide-background: #c7efcf; - --yt-dialog-background: #d6d1b1; - --yt-searchbox-background: #c7efcf; - --yt-channel-header-background: #c7efcf; - --yt-sidebar-background: #c7efcf; - --yt-transcript-background: #c7efcf; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #c7efcf; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #c7efcf; - --yt-blue-suggestive: transparent; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-plain-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #c7efcf!important; - --yt-swatch-primary-darker: #c7efcf!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #d6d1b1; - - --yt-spec-brand-background-solid:#c7efcf !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#c7efcf !important; - --yt-spec-general-background-b:#c7efcf !important; - --yt-spec-general-background-c:#c7efcf !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#666 !important; - --yt-spec-text-primary-inverse:#666 !important; - --yt-spec-text-secondary:#666 !important; - --yt-spec-text-disabled:#666 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#666 !important; - --yt-spec-icon-inactive:#666 !important; - --yt-spec-icon-disabled:#666 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#c7efcf !important; - --yt-spec-filled-button-text:#666 !important; - --yt-spec-call-to-action-inverse:#666 !important; - --yt-spec-brand-icon-active:#666 !important; - --yt-spec-brand-icon-inactive:#666 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#666!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#666 !important; - --yt-spec-wordmark-text:#666 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#666 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-plain-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #d6d1b1!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #c7efcf; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-plain-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-plain-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #666; - --yt-spec-text-primary: #666; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #c7efcf; - --yt-playlist-background-item: #c7efcf; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #c7efcf; - --paper-listbox-background-color: #c7efcf; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #c7efcf; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #c7efcf; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #c7efcf; - --yt-menu-focus-background-color: #c7efcf; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #c7efcf; - --yt-main-app-background: #c7efcf; - --yt-main-app-background-tmp: #c7efcf; - --yt-guide-background: #c7efcf; - --yt-dialog-background: #d6d1b1; - --yt-searchbox-background: #c7efcf; - --yt-channel-header-background: #c7efcf; - --yt-sidebar-background: #c7efcf; - --yt-transcript-background: #c7efcf; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #c7efcf; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #c7efcf; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-plain-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #c7efcf!important; - --yt-swatch-primary-darker: #c7efcf!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #d6d1b1; - - --yt-spec-brand-background-solid:#c7efcf !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#c7efcf !important; - --yt-spec-general-background-b:#c7efcf !important; - --yt-spec-general-background-c:#c7efcf !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#666 !important; - --yt-spec-text-primary-inverse:#666 !important; - --yt-spec-text-secondary:#666 !important; - --yt-spec-text-disabled:#666 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#666 !important; - --yt-spec-icon-inactive:#666 !important; - --yt-spec-icon-disabled:#666 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#c7efcf !important; - --yt-spec-filled-button-text:#666 !important; - --yt-spec-call-to-action-inverse:#666 !important; - --yt-spec-brand-icon-active:#666 !important; - --yt-spec-brand-icon-inactive:#666 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#666!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#666 !important; - --yt-spec-wordmark-text:#666 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#666 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-plain-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #d6d1b1!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #c7efcf; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-plain-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-plain-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #666; - --yt-spec-text-primary: #666; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #c7efcf; - --yt-playlist-background-item: #c7efcf; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #c7efcf; - --paper-listbox-background-color: #c7efcf; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #c7efcf; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #c7efcf; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #c7efcf; - --yt-menu-focus-background-color: #c7efcf; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #c7efcf; - --yt-main-app-background: #c7efcf; - --yt-main-app-background-tmp: #c7efcf; - --yt-guide-background: #c7efcf; - --yt-dialog-background: #d6d1b1; - --yt-searchbox-background: #c7efcf; - --yt-channel-header-background: #c7efcf; - --yt-sidebar-background: #c7efcf; - --yt-transcript-background: #c7efcf; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #c7efcf; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #c7efcf; - --yt-blue-suggestive: transparent; - } -} -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #2f3364!important; - --yt-swatch-primary-darker: #2f3364!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #f56264; - - --yt-spec-brand-background-solid:#2f3364 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#2f3364 !important; - --yt-spec-general-background-b:#2f3364 !important; - --yt-spec-general-background-c:#2f3364 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#2f3364 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { - background: #f56264!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #2f3364; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #2f3364; - --yt-playlist-background-item: #2f3364; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #2f3364; - --paper-listbox-background-color: #2f3364; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #2f3364; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #2f3364; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #2f3364; - --yt-menu-focus-background-color: #2f3364; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #2f3364; - --yt-main-app-background: #2f3364; - --yt-main-app-background-tmp: #2f3364; - --yt-guide-background: #2f3364; - --yt-dialog-background: #D62828; - --yt-searchbox-background: #fa7965!important; - --yt-channel-header-background: #2f3364; - --yt-sidebar-background: #2f3364; - --yt-transcript-background: #2f3364; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #2f3364; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #2f3364; - --yt-blue-suggestive: transparent; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-sunset-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #2f3364!important; - --yt-swatch-primary-darker: #2f3364!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #f56264; - - --yt-spec-brand-background-solid:#2f3364 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#2f3364 !important; - --yt-spec-general-background-b:#2f3364 !important; - --yt-spec-general-background-c:#2f3364 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#2f3364 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-sunset-theme=true][it-schedule=system_peference_dark] ytd-masthead { - background: #f56264!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #2f3364; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-sunset-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-sunset-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #2f3364; - --yt-playlist-background-item: #2f3364; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #2f3364; - --paper-listbox-background-color: #2f3364; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #2f3364; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #2f3364; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #2f3364; - --yt-menu-focus-background-color: #2f3364; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #2f3364; - --yt-main-app-background: #2f3364; - --yt-main-app-background-tmp: #2f3364; - --yt-guide-background: #2f3364; - --yt-dialog-background: #D62828; - --yt-searchbox-background: #fa7965!important; - --yt-channel-header-background: #2f3364; - --yt-sidebar-background: #2f3364; - --yt-transcript-background: #2f3364; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #2f3364; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #2f3364; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-sunset-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #2f3364!important; - --yt-swatch-primary-darker: #2f3364!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #f56264; - - --yt-spec-brand-background-solid:#2f3364 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#2f3364 !important; - --yt-spec-general-background-b:#2f3364 !important; - --yt-spec-general-background-c:#2f3364 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#2f3364 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-sunset-theme=true][it-schedule=system_peference_light] ytd-masthead { - background: #f56264!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #2f3364; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-sunset-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-sunset-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #2f3364; - --yt-playlist-background-item: #2f3364; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #2f3364; - --paper-listbox-background-color: #2f3364; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #2f3364; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #2f3364; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #2f3364; - --yt-menu-focus-background-color: #2f3364; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #2f3364; - --yt-main-app-background: #2f3364; - --yt-main-app-background-tmp: #2f3364; - --yt-guide-background: #2f3364; - --yt-dialog-background: #D62828; - --yt-searchbox-background: #fa7965!important; - --yt-channel-header-background: #2f3364; - --yt-sidebar-background: #2f3364; - --yt-transcript-background: #2f3364; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #2f3364; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #2f3364; - --yt-blue-suggestive: transparent; - } -} \ No newline at end of file diff --git a/unstable/content-scripts.js b/unstable/content-scripts.js deleted file mode 100644 index 20c65de2a..000000000 --- a/unstable/content-scripts.js +++ /dev/null @@ -1,4319 +0,0 @@ - -/*----------------------------------------------------------------------------- ->>> CORE -------------------------------------------------------------------------------- -1.0 Page update -2.0 Player update -3.0 Init ------------------------------------------------------------------------------*/ - -var ImprovedTube = { - allow_autoplay: false, - videoUrl: '"null"', - playingTime: 0 -}; - - -/*----------------------------------------------------------------------------- -1.0 Page update ------------------------------------------------------------------------------*/ - -ImprovedTube.pageUpdate = function() { - var not_connected_players = document.querySelectorAll('.html5-video-player:not([it-player-connected])'); - - if (not_connected_players.length > 0) { - for (var i = 0, l = not_connected_players.length; i < l; i++) { - var player = not_connected_players[i]; - - if ( - player.querySelector('video').src && - player.querySelector('video').src !== '' - ) { - player.setAttribute('it-player-connected', ''); - - ImprovedTube.playerUpdate(player); - - player.querySelector('video').addEventListener('canplay', function() { - ImprovedTube.videoUrl = location.href; - }); - player.querySelector('video').addEventListener('timeupdate', function() { - ImprovedTube.playingTime++; - - var time = Math.floor(ImprovedTube.playingTime * 250 / 1000) / 60; - - if (time >= 1) { - ImprovedTube.playingTime = 0; - - document.dispatchEvent(new CustomEvent('ImprovedTubeAnalyzer')); - } - }); - } - } - } - - ImprovedTube.pageType(); - ImprovedTube.youtube_home_page(); - ImprovedTube.hd_thumbnails(); - ImprovedTube.channel_default_tab(); - ImprovedTube.comments(); - ImprovedTube.livechat(); - ImprovedTube.livechat_type(); - ImprovedTube.related_videos(); - ImprovedTube.improvedtube_youtube_icon(); - ImprovedTube.blacklist(); - ImprovedTube.player_hd_thumbnail(); - ImprovedTube.how_long_ago_the_video_was_uploaded(); - ImprovedTube.channel_videos_count(); - ImprovedTube.collapse_of_subscription_sections(); - ImprovedTube.mark_watched_videos(); -}; - - -/*----------------------------------------------------------------------------- -2.0 Player update ------------------------------------------------------------------------------*/ - -ImprovedTube.playerUpdate = function(node, hard) { - var player; - - if (node && node.type !== 'canplay') { - player = node; - } else if (this.hasOwnProperty('target')) { - player = this.target.parentNode.parentNode; - } else if (this.hasOwnProperty('parentNode')) { - player = this.parentNode.parentNode; - } else { - player = document.querySelector('.html5-video-player'); - } - - if (this.videoUrl !== location.href) { - this.videoUrl = location.href; - this.playingTime = 0; - - document.dispatchEvent(new CustomEvent('ImprovedTubePlayVideo')); - - this.fitToWindow(); - this.always_show_progress_bar(); - this.playlist_reverse(); - this.player_hd_thumbnail(); - this.player_quality(player); - this.player_volume(player); - this.player_playback_speed(player); - this.up_next_autoplay(); - this.player_autofullscreen(); - this.player_repeat_button(); - this.player_screenshot_button(); - this.player_rotate_button(); - this.player_popup_button(); - this.playlist_up_next_autoplay(player); - this.mini_player(); - - this.playlist_repeat(); - this.playlist_shuffle(); - - this.dim(); - - var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); - - if (video_id) { - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'set', - id: video_id, - title: document.title - } - })); - } - } else if (hard) { - this.videoUrl = location.href; - - this.fitToWindow(); - this.playlist_reverse(); - this.player_hd_thumbnail(); - this.player_quality(player); - this.player_volume(player); - this.player_playback_speed(player); - this.up_next_autoplay(); - this.player_autofullscreen(); - this.player_repeat_button(); - this.player_screenshot_button(); - this.player_rotate_button(); - this.player_popup_button(); - this.mini_player(); - - this.playlist_repeat(); - this.playlist_shuffle(); - - this.dim(); - } -}; - - -/*----------------------------------------------------------------------------- -3.0 Init ------------------------------------------------------------------------------*/ - -ImprovedTube.init = function() { - this.player_h264(); - this.player_60fps(); - this.confirmation_before_closing(); - this.shortcuts(); - this.themeEditor(); - this.theme(); - this.font(); - this.bluelight(); - this.dim(); - this.pageType(); - this.improvedtube_youtube_icon(); - this.add_scroll_to_top(); - this.player_autopause_when_switching_tabs(); - this.forced_theater_mode(); - this.comments(); - this.livechat(); - this.related_videos(); - this.mutations(); - this.events(); - - if (window.self === window.top) { - window.addEventListener('load', function(){ - ImprovedTube.player_volume(); - }); - } -}; - -function withoutInjection(object) { - youtubeHomePage__documentStart(object.youtube_home_page); -} - -/*----------------------------------------------------------------------------- ->>> EVENTS -------------------------------------------------------------------------------- -1.0 DOMContentLoaded -2.0 Load -3.0 YouTube page data updated -4.0 YouTube visibility refresh -5.0 SPF done -6.0 Keydown -7.0 Mousedown ------------------------------------------------------------------------------*/ - -chrome.storage.local.get(function(items) { - window.addEventListener('load', function() { - if (!document.querySelector('.it-rate-notify') && Object.keys(items).length > 10 && items.rate_notify !== 5) { - var popup = document.createElement('div'); - - popup.className = 'it-rate-notify'; - - popup.innerHTML = '' + - '

' + - ''; - - document.body.appendChild(popup); - - setTimeout(function() { - popup.classList.add('it-rate-notify--show'); - }, 1000); - - chrome.storage.local.set({ - rate_notify: 5 - }); - } - }); -}); - -ImprovedTube.events = function() { - - /*------------------------------------------------------------------------- - 1.0 DOMContentLoaded - -------------------------------------------------------------------------*/ - - window.addEventListener('DOMContentLoaded', ImprovedTube.pageUpdate); - - - /*------------------------------------------------------------------------- - 2.0 Load - -------------------------------------------------------------------------*/ - - document.documentElement.addEventListener('load', function() { - if ( - window.yt && - window.yt.player && - window.yt.player.Application && - window.yt.player.Application.create - ) { - window.yt.player.Application.create = ImprovedTube.ytPlayerApplicationCreateMod(window.yt.player.Application.create); - } - - var search = document.querySelector('#search') || document.querySelector('#masthead-search-term'); - - if (search) { - search.addEventListener('focus', function() { - document.documentElement.setAttribute('it-search-focus', 'true'); - }); - - search.addEventListener('blur', function() { - document.documentElement.setAttribute('it-search-focus', 'false'); - }); - } - }, true); - - window.addEventListener('resize', function() { - ImprovedTube.fitToWindow(); - ImprovedTube.improvedtube_youtube_icon_resize(); - - setTimeout(function() { - if (document.querySelector('.html5-video-player video') && document.querySelector('.it-rotate-styles')) { - var video = document.querySelector('.html5-video-player video'), - transform = '', - rotate = (document.querySelector('.it-rotate-styles') && document.querySelector('.it-rotate-styles').textContent.match(/rotate\([0-9.]+deg\)/g) || [''])[0]; - - rotate = Number((rotate.match(/[0-9.]+/g) || [])[0]) || 0; - - transform += 'rotate(' + rotate + 'deg)'; - - if (rotate == 90 || rotate == 270) { - transform += ' scale(' + video.offsetHeight / video.offsetWidth + ')'; - } - - document.querySelector('.it-rotate-styles').textContent = '.html5-video-player:not(it-mini-player) video {transform:' + transform + '}'; - } - }, 500); - }); - - window.addEventListener('scroll', function() { - ImprovedTube.improvedtube_youtube_icon_resize(); - }); - - - /*------------------------------------------------------------------------- - 3.0 YouTube page data updated - -------------------------------------------------------------------------*/ - - window.addEventListener('yt-page-data-updated', ImprovedTube.pageUpdate); - - - /*------------------------------------------------------------------------- - 4.0 YouTube visibility refresh - -------------------------------------------------------------------------*/ - - window.addEventListener('yt-visibility-refresh', ImprovedTube.pageUpdate); - - - /*------------------------------------------------------------------------- - 5.0 SPF done - -------------------------------------------------------------------------*/ - - window.addEventListener('spfrequest', function() { - ImprovedTube.pageUpdate(); - }); - - window.addEventListener('spfdone', function() { - ImprovedTube.pageUpdate(); - }); - - - /*------------------------------------------------------------------------- - 6.0 Keydown - -------------------------------------------------------------------------*/ - - window.addEventListener('keydown', function() { - if ( - document.querySelector('.html5-video-player') && - document.querySelector('.html5-video-player').classList.contains('ad-showing') === false - ) { - ImprovedTube.allow_autoplay = true; - } - }, true); - - - /*------------------------------------------------------------------------- - 7.0 Mousedown - -------------------------------------------------------------------------*/ - - window.addEventListener('mousedown', function(event) { - for (var i = 0, l = event.path.length; i < l; i++) { - if ( - document.querySelector('.html5-video-player') && - document.querySelector('.html5-video-player').classList.contains('ad-showing') === false && - event.path[i].classList && - ( - event.path[i].classList.contains('html5-main-video') || - event.path[i].classList.contains('ytp-play-button') - ) - ) { - ImprovedTube.allow_autoplay = true; - } - } - }, true); -}; - -chrome.storage.local.get(function(items) { - document.addEventListener('ImprovedTubeAnalyzer', function() { - if (items.analyzer_activation === true) { - if (document.querySelector('ytd-channel-name a') && chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-analyzer', - value: document.querySelector('ytd-channel-name a').innerText - }); - } - } - }); -}); - -/*----------------------------------------------------------------------------- ->>> APPEARANCE -------------------------------------------------------------------------------- -1.0 Player - 1.1 Forced theater mode - 1.2 HD thumbnail -2.0 Details -3.0 Comments -4.0 Sidebar ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Player ------------------------------------------------------------------------------*/ - -ImprovedTube.fitToWindow = function() { - if (ImprovedTube.storage.player_size === 'fit_to_window' && !document.documentElement.hasAttribute('embed') && window.self !== window.top && document.querySelector('#movie_player video')) { - var video = document.querySelector('#movie_player video'), - header = document.documentElement.getAttribute('it-header-position'), - header_height = header == 'hidden' || header == 'hidden_on_video_page' || header == 'hover' || header == 'hover_on_video_page' ? 0 : 50, - videoW = video.videoWidth / 100, - videoH = video.videoHeight / 100, - windowW = window.innerWidth / 100, - windowH = window.innerHeight / 100, - videoWdif = ((video.videoWidth - window.innerWidth) / video.videoWidth * -100) + 100, - videoHdif = ((video.videoHeight - window.innerHeight + header_height) / video.videoHeight * -100) + 100, - style = document.querySelector('#it-fit-to-window') || document.createElement('style'); - - style.id = 'it-fit-to-window'; - - if (videoW && videoH && videoHdif && videoH * videoWdif > window.innerHeight - header_height) { - style.innerText = 'html[it-player-size="fit_to_window"] div#page.watch-wide .html5-video-player:not(.ytp-fullscreen) video{max-width:' + videoW * videoHdif + 'px !important;max-height' + videoH * videoHdif + 'px !important}'; - } else if (videoW && videoH && videoWdif) { - style.innerText = 'html[it-player-size="fit_to_window"] div#page.watch-wide .html5-video-player:not(.ytp-fullscreen) video{max-width:' + videoW * videoWdif + 'px !important;max-height' + videoH * videoWdif + 'px !important}'; - } - - if (!document.querySelector('#it-fit-to-window')) { - document.documentElement.appendChild(style); - } - } -}; - -/*----------------------------------------------------------------------------- -1.1 Forced theater mode ------------------------------------------------------------------------------*/ - -ImprovedTube.forced_theater_mode = function() { - if (window.self === window.top && (this.storage.forced_theater_mode === true || ImprovedTube.storage.player_size === 'fit_to_window')) { - var is_applied = false; - - if (/wide\=1/.test(document.cookie)) { - is_applied = true; - } - - this.setCookie('wide', '1'); - - setTimeout(function() { - if (is_applied === false) { - location.reload(); - } - }); - } -}; - -/*----------------------------------------------------------------------------- -1.2 HD thumbnail ------------------------------------------------------------------------------*/ - -ImprovedTube.player_hd_thumbnail_wait = false; - -ImprovedTube.player_hd_thumbnail = function() { - if (this.storage.player_hd_thumbnail === true) { - if (this.player_hd_thumbnail_wait !== false) { - clearInterval(ImprovedTube.player_hd_thumbnail_wait); - - ImprovedTube.player_hd_thumbnail_wait = false; - } - - this.player_hd_thumbnail_wait = setInterval(function() { - var thumbnail = document.querySelector('.ytp-cued-thumbnail-overlay-image'); - - if (thumbnail && thumbnail.style.backgroundImage) { - var style = document.getElementById('it-hd-thumbnail') || document.createElement('style'); - - style.textContent = '.ytp-cued-thumbnail-overlay-image{background-image:' + thumbnail.style.backgroundImage.replace('/hqdefault.jpg', '/maxresdefault.jpg') + ' !important}'; - - if (!document.getElementById('it-hd-thumbnail')) { - style.id = 'it-hd-thumbnail'; - thumbnail.parentNode.insertBefore(style, thumbnail); - } - } - }, 250); - } -}; - -/*----------------------------------------------------------------------------- -1.3 Always show progress bar ------------------------------------------------------------------------------*/ - -// TODO: FIX NIGHTLY UGLY ALGO - -ImprovedTube.always_show_progress_bar = function() { - if (ImprovedTube.always_show_progress_bar_interval) { - clearInterval(ImprovedTube.always_show_progress_bar_interval); - } - - if (this.storage.always_show_progress_bar === true) { - ImprovedTube.always_show_progress_bar_interval = setInterval(function() { - var player = document.querySelector('.html5-video-player'); - - if (player && player.classList.contains('ytp-autohide')) { - var played = player.getCurrentTime() * 100 / player.getDuration(), - loaded = player.getVideoBytesLoaded() * 100, - play_bars = player.querySelectorAll('.ytp-play-progress'), - load_bars = player.querySelectorAll('.ytp-load-progress'), - width = 0, - progress_play = 0, - progress_load = 0; - - for (var i = 0, l = play_bars.length; i < l; i++) { - width += play_bars[i].offsetWidth; - } - - var width_percent = width / 100; - - for (var i = 0, l = play_bars.length; i < l; i++) { - var a = play_bars[i].offsetWidth / width_percent, - b = 0, - c = 0; - - if (played - progress_play >= a) { - b = 100; - } else if (played > progress_play && played < a + progress_play) { - b = 100 * ((played - progress_play) * width_percent) / play_bars[i].offsetWidth; - } - - play_bars[i].style.transform = 'scaleX(' + b / 100 + ')'; - - if (loaded - progress_load >= a) { - c = 100; - } else if (loaded > progress_load && loaded < a + progress_load) { - c = 100 * ((loaded - progress_load) * width_percent) / play_bars[i].offsetWidth; - } - - load_bars[i].style.transform = 'scaleX(' + c / 100 + ')'; - - progress_play += a; - progress_load += a; - } - } - }, 100); - } -}; - - -/*----------------------------------------------------------------------------- -2.0 Details ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -2.1 How long ago the video was uploaded ------------------------------------------------------------------------------*/ - -ImprovedTube.how_long_ago_the_video_was_uploaded = function() { - if (ImprovedTube.storage.how_long_ago_the_video_was_uploaded === true) { - function timeSince(date) { - var seconds = Math.floor((new Date() - new Date(date)) / 1000), - interval = Math.floor(seconds / 31536000); - - if (interval > 1) { - return interval + ' years ago'; - } - interval = Math.floor(seconds / 2592000); - if (interval > 1) { - return interval + ' months ago'; - } - interval = Math.floor(seconds / 86400); - if (interval > 1) { - return interval + ' days ago'; - } - interval = Math.floor(seconds / 3600); - if (interval > 1) { - return interval + ' hours ago'; - } - interval = Math.floor(seconds / 60); - if (interval > 1) { - return interval + ' minutes ago'; - } - - return Math.floor(seconds) + ' seconds ago'; - } - - var waiting_channel_link = setInterval(function() { - var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; - - if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info a')) { - clearInterval(waiting_channel_link); - - var xhr = new XMLHttpRequest(); - - xhr.addEventListener('load', function() { - var response = JSON.parse(this.responseText), - element = document.querySelector('.itx-channel-video-uploaded') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); - - if (ImprovedTube.isset(response.items) && ImprovedTube.isset(response.items[0])) { - element.innerHTML = (youtube_version ? ' · ' + timeSince(response.items[0].snippet.publishedAt) + ' ' : timeSince(response.items[0].snippet.publishedAt) + ''); - - var date = new Date(response.items[0].snippet.publishedAt); - - element.title = ((date.getMonth() > 8) ? (date.getMonth() + 1) : ('0' + (date.getMonth() + 1))) + '/' + ((date.getDate() > 9) ? date.getDate() : ('0' + date.getDate())) + '/' + date.getFullYear(); - } - - if (!youtube_version) { - element.href = document.querySelector('#watch7-user-header a').href.indexOf('/videos') === -1 ? document.querySelector('#watch7-user-header a').href + '/videos' : document.querySelector('#watch7-user-header a').href; - } - - if (!document.querySelector('.itx-channel-video-uploaded') && document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info')) { - element.style.marginLeft = '8px'; - element.className = (youtube_version ? 'style-scope ytd-video-owner-renderer itx-channel-video-uploaded' : 'yt-uix-sessionlink spf-link itx-channel-video-uploaded'); - - document.querySelector(youtube_version ? '#info #info-text #date' : '.yt-user-info').appendChild(element); - } - }); - - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?id=' + ImprovedTube.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v') + '&key=AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA&part=snippet', true); - xhr.send(); - } - }, 500); - } -}; - - -/*----------------------------------------------------------------------------- -2.2 Show channel videos count ------------------------------------------------------------------------------*/ - -ImprovedTube.channel_videos_count = function() { - if (ImprovedTube.storage.channel_videos_count === true) { - var waiting_channel_link = setInterval(function() { - var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; - - if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a')) { - clearInterval(waiting_channel_link); - - var xhr = new XMLHttpRequest(); - - xhr.addEventListener('load', function() { - var response = JSON.parse(this.responseText), - element = document.querySelector('.itx-channel-videos-count') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); - - if (ImprovedTube.isset(response.items) && ImprovedTube.isset(response.items[0])) { - element.innerHTML = (youtube_version ? '' + response.items[0].statistics.videoCount + ' videos' : response.items[0].statistics.videoCount + ' videos'); - } - - if (!youtube_version) { - element.href = document.querySelector('#watch7-user-header a').href.indexOf('/videos') === -1 ? document.querySelector('#watch7-user-header a').href + '/videos' : document.querySelector('#watch7-user-header a').href; - } - - if (!document.querySelector('.itx-channel-videos-count') && document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info')) { - element.style.marginLeft = '8px'; - element.className = (youtube_version ? 'style-scope ytd-video-owner-renderer itx-channel-videos-count' : 'yt-uix-sessionlink spf-link itx-channel-videos-count'); - - document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info').appendChild(element); - } - }); - - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/channels?id=' + (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a').getAttribute('it-origin') || document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a').href).replace('https://www.youtube.com/channel/', '') + '&key=AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA&part=statistics', true); - xhr.send(); - } - }, 500); - } -}; - - -/*----------------------------------------------------------------------------- -3.0 Comments ------------------------------------------------------------------------------*/ - -ImprovedTube.comments_wait = false; - -ImprovedTube.comments = function() { - if (this.storage.comments === 'collapsed') { - if (this.comments_wait === false) { - this.comments_wait = setInterval(function() { - if ( - document.getElementById('comment-section-renderer-items') || - document.querySelector('#comments #sections #contents') - ) { - clearInterval(this.comments_wait); - - this.comments_wait = false; - - if (!document.getElementById('improvedtube-collapsed-comments')) { - var button = document.createElement('button'), - parent = document.getElementById('comment-section-renderer') || document.querySelector('#comments #sections'), - reference = document.getElementById('comment-section-renderer-items') || document.querySelector('#comments #sections #contents'); - - button.id = 'improvedtube-collapsed-comments'; - button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; - button.innerHTML = 'Show moreShow less'; - - button.onclick = function() { - document.documentElement.classList.toggle('comments-collapsed'); - }; - - document.documentElement.classList.toggle('comments-collapsed'); - parent.insertBefore(button, reference); - } - } - }, 250); - } - } else { - clearInterval(this.comments_wait); - - this.comments_wait = false; - - setTimeout(function() { - if (document.getElementById('improvedtube-collapsed-comments')) { - document.getElementById('improvedtube-collapsed-comments').remove(); - } - }, 260); - } -}; - - -/*----------------------------------------------------------------------------- -4.0 Sidebar ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -4.1 Live chat ------------------------------------------------------------------------------*/ - -ImprovedTube.livechat_wait = false; -ImprovedTube.livechat_url = false; - -ImprovedTube.livechat = function() { - if ( - document.documentElement.getAttribute('it-page-type') === 'video' && - this.storage.livechat === 'collapsed' && - this.livechat_wait === false - ) { - this.livechat_wait = setInterval(function() { - var button = document.querySelector('#chat:not([collapsed]) #show-hide-button paper-button'), - expander = document.querySelector('#watch-sidebar-live-chat .yt-uix-expander'); - - if (document.documentElement.getAttribute('it-page-type') !== 'video' || button || expander) { - clearInterval(ImprovedTube.livechat_wait); - - ImprovedTube.livechat_wait = false; - } - - if (button) { - function click() { - ImprovedTube.livechat_url = location.href; - } - - button.addEventListener('mousedown', click); - button.addEventListener('touchdown', click); - - setTimeout(function() { - if (ImprovedTube.livechat_url !== location.href) { - button.click(); - } - }, 500); - } else if (expander) { - expander.classList.add('yt-uix-expander-collapsed'); - } - }, 100); - } -}; - -/*----------------------------------------------------------------------------- -# Live chat type ------------------------------------------------------------------------------*/ - -ImprovedTube.livechat_type_wait = false; - -ImprovedTube.livechat_type = function() { - return false; - - if ( - document.documentElement.getAttribute('it-page-type') === 'video' && - ImprovedTube.storage.livechat_type === 'live' && - ImprovedTube.livechat_type_wait === false - ) { - this.livechat_type_wait = setInterval(function() { - if (document.querySelectorAll('#chat-messages #dropdown a')[1]) { - clearInterval(ImprovedTube.livechat_type_wait); - - ImprovedTube.livechat_type_wait = false; - - document.querySelectorAll('#chat-messages #dropdown a')[1].click(); - } - }, 250); - } else if (this.livechat_type_wait !== false) { - clearInterval(this.livechat_type_wait); - - ImprovedTube.livechat_type_wait = false; - } -}; - - -/*----------------------------------------------------------------------------- -4.2 Related videos ------------------------------------------------------------------------------*/ - -ImprovedTube.related_videos_wait = false; - -ImprovedTube.related_videos = function() { - if (this.storage.related_videos === 'collapsed') { - if (!this.related_videos_wait) { - this.related_videos_wait = setInterval(function() { - if ( - document.querySelector('#related.ytd-watch-flexy') || - document.querySelector('#watch7-sidebar-contents') - ) { - clearInterval(this.related_videos_wait); - - this.related_videos_wait = false; - - if (!document.getElementById('improvedtube-collapsed-related-videos')) { - var button = document.createElement('button'), - parent = document.querySelector('#related.ytd-watch-flexy') || document.querySelector('#watch7-sidebar-contents'), - reference = document.querySelector('#related > *') || document.querySelector('#watch7-sidebar-contents > *'); - - button.id = 'improvedtube-collapsed-related-videos'; - button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; - button.innerHTML = 'Show moreShow less'; - - button.onclick = function() { - document.documentElement.classList.toggle('related-videos-collapsed'); - }; - - document.documentElement.classList.toggle('related-videos-collapsed'); - parent.insertBefore(button, reference); - } - } - }, 250); - } - } else { - clearInterval(this.related_videos_wait); - - this.related_videos_wait = false; - - setTimeout(function() { - if (document.getElementById('improvedtube-collapsed-related-videos')) { - document.getElementById('improvedtube-collapsed-related-videos').remove(); - } - }, 260); - } -}; - -// TODO: HIGH CPU USAGE - -document.addEventListener('ImprovedTubeBlacklist', function(event) { - console.log('Blacklist event'); - - if (chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-blacklist', - data: { - type: event.detail.type, - id: event.detail.id, - title: event.detail.title, - preview: event.detail.preview - } - }); - } -}); - -ImprovedTube.blacklist = function() { - if (ImprovedTube.storage.blacklist_activate !== true) { - return false; - } - - if (typeof ImprovedTube.storage.blacklist === 'boolean' || !ImprovedTube.storage.blacklist) { - ImprovedTube.storage.blacklist = {}; - } - - // channel button - if ( - !ImprovedTube.isset(ImprovedTube.storage.blacklist.channels) || - (ImprovedTube.storage.blacklist.channels && - Object.keys(ImprovedTube.storage.blacklist.channels).indexOf(location.href.replace(/https:\/\/www.youtube.com\/(channel|user|c)\//g, '').replace(/\/(.)+/g, '')) === -1) - ) { - let channel_items = document.querySelectorAll('#inner-header-container #subscribe-button, .primary-header-upper-section .yt-uix-subscription-button'); - - for (let i = 0, l = channel_items.length; i < l; i++) { - if (!channel_items[i].parentNode.querySelector('.improvedtube-add-to-blacklist')) { - let button = document.createElement('div'); - - button.addEventListener('click', function(event) { - let video_id; - - event.preventDefault(); - event.stopPropagation(); - - try { - video_id = location.href.replace(/https:\/\/www.youtube.com\/(channel|user)\//g, '').replace(/\/(.)+/g, ''); - - document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { - detail: { - type: 'channel', - id: video_id, - title: document.querySelector('#channel-container yt-formatted-string.ytd-channel-name, a.branded-page-header-title-link').innerText, - preview: document.querySelector('#channel-container #avatar #img, .channel-header-profile-image').src - } - })); - - if (!ImprovedTube.storage.blacklist || typeof ImprovedTube.storage.blacklist !== 'object') { - ImprovedTube.storage.blacklist = {}; - } - - if (!ImprovedTube.storage.blacklist.channels) { - ImprovedTube.storage.blacklist.channels = {}; - } - - ImprovedTube.storage.blacklist.channels[video_id] = { - title: document.querySelector('yt-formatted-string.ytd-channel-name, a.branded-page-header-title-link').innerText, - preview: document.querySelector('#channel-container #avatar #img, .channel-header-profile-image').src - }; - - ImprovedTube.blacklist(); - - location.reload(); - } catch (err) {} - }, true); - - button.className = 'improvedtube-add-to-blacklist'; - button.innerText = 'Add to blacklist'; - button.style.position = 'static'; - button.style.transform = 'unset'; - button.style.opacity = '1'; - button.style.visibility = 'visible'; - button.style.pointerEvents = 'all'; - button.style.width = 'auto'; - button.style.fontSize = '16px'; - button.style.lineHeight = '28px'; - button.style.height = 'auto'; - button.style.padding = '6px 12px'; - button.style.borderRadius = '2px'; - button.style.boxSizing = 'border-box'; - button.style.background = '#bb1a1a'; - - channel_items[i].parentNode.insertBefore(button, channel_items[i]); - } - } - } - - // video button - let video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (let i = 0, l = video_items.length; i < l; i++) { - if (!video_items[i].querySelector('.improvedtube-add-to-blacklist')) { - let button = document.createElement('div'); - - button.addEventListener('click', function(event) { - let video_id; - - event.preventDefault(); - event.stopPropagation(); - - try { - video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'); - - let item = this.parentNode; - - while ( - item.nodeName && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } - - document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { - detail: { - type: 'video', - id: video_id, - title: item.querySelector('#video-title').innerText - } - })); - - if (!ImprovedTube.storage.blacklist || typeof ImprovedTube.storage.blacklist !== 'object') { - ImprovedTube.storage.blacklist = {}; - } - - if (!ImprovedTube.storage.blacklist.videos) { - ImprovedTube.storage.blacklist.videos = {}; - } - - ImprovedTube.storage.blacklist.videos[video_id] = { - title: item.querySelector('#video-title').innerText - }; - - ImprovedTube.blacklist(); - } catch (err) {} - }, true); - button.className = 'improvedtube-add-to-blacklist'; - button.innerText = 'x'; - - video_items[i].appendChild(button); - } - } - - // remove channels - if (ImprovedTube.storage.blacklist && ImprovedTube.storage.blacklist.channels) { - let videos = document.querySelectorAll('a#thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (let i = 0, l = videos.length; i < l; i++) { - let item = videos[i]; - - while ( - item.nodeName && - item.nodeName !== 'YTD-VIDEO-RENDERER' && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } - - if (item.querySelector('.ytd-channel-name a, a.spf-link[href*="/user/"], a.spf-link[href*="/channel/"]')) { - let channel_href = item.querySelector('.ytd-channel-name a, a.spf-link[href*="/user/"], a.spf-link[href*="/channel/"]').href; - - for (var key in ImprovedTube.storage.blacklist.channels) { - if (item.style && channel_href.indexOf(key) !== -1) { - item.style.display = 'none'; - } - } - } - } - } - - // remove videos - if (ImprovedTube.storage.blacklist && ImprovedTube.storage.blacklist.videos) { - let videos = document.querySelectorAll('a#thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (let i = 0, l = videos.length; i < l; i++) { - if (videos[i].href && videos[i].href != '' && ImprovedTube.getParam(new URL(videos[i].href).search.substr(1), 'v') in ImprovedTube.storage.blacklist.videos) { - let item = videos[i]; - - while ( - item.nodeName && - item.nodeName !== 'YTD-VIDEO-RENDERER' && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } - - item.style.display = 'none'; - } - } - } -}; - -/*----------------------------------------------------------------------------- ->>> CHANNEL -------------------------------------------------------------------------------- -1.0 Channel tab ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Channel tab ------------------------------------------------------------------------------*/ - -ImprovedTube.channel_default_tab = function() { - if (this.storage.channel_default_tab && this.storage.channel_default_tab !== '/') { - var value = this.storage.channel_default_tab, - node_list = document.querySelectorAll('*:not(#contenteditable-root) > a[href*="user"], ' + - '*:not(#contenteditable-root) > a[href*="channel"], ' + - '*:not(#contenteditable-root) > a[href*="/c/"]'); - - for (var i = 0, l = node_list.length; i < l; i++) { - var node = node_list[i]; - - if (!node.getAttribute('it-origin') || - node.hasAttribute('it-origin') && - node.getAttribute('it-origin').replace(/\/(home|videos|playlists)+$/g, '') != node.href.replace(/\/(home|videos|playlists)+$/g, '') - ) { - node.setAttribute('it-origin', node.href); - } - - var pathname = new URL(node.getAttribute('it-origin')).pathname; - - node.href = node.getAttribute('it-origin') + value; - - function click() { - if ( - this.data && - this.data.commandMetadata && - this.data.commandMetadata.webCommandMetadata && - this.data.commandMetadata.webCommandMetadata.url - ) { - this.data.commandMetadata.webCommandMetadata.url = (this.querySelector('a') || this).href.replace('https://www.youtube.com', ''); - } - } - - node.addEventListener('click', click, true); - node.parentNode.addEventListener('click', click, true); - node.parentNode.parentNode.addEventListener('click', click, true); - } - } else if (this.storage.channel_default_tab) { - var node_list = document.querySelectorAll('a[href*="user"], a[href*="channel"], a[href*="/c/"]'); - - for (var i = 0, l = node_list.length; i < l; i++) { - node_list[i].href = node_list[i].getAttribute('it-origin'); - } - } -}; - -/*----------------------------------------------------------------------------- ->>> GENERAL -------------------------------------------------------------------------------- -1.0 YouTube Home Page -2.0 Add «Scroll to top» -3.0 HD thumbnails -4.0 Confirmation before closing -5.0 Collapse of subscription sections -6.0 Mark watched videos ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 YouTube Home Page ------------------------------------------------------------------------------*/ - -ImprovedTube.youtube_home_page = function() { - if ( - this.storage.youtube_home_page && - this.storage.youtube_home_page !== '/' && - this.storage.youtube_home_page !== 'search' - ) { - var value = this.storage.youtube_home_page, - node_list = document.querySelectorAll('a[href="/"]:not([role="tablist"]), a[href="//www.youtube.com"]:not([role="tablist"]), a[href="//www.youtube.com/"]:not([role="tablist"]), a[href="https://www.youtube.com"]:not([role="tablist"]), a[href="https://www.youtube.com/"]:not([role="tablist"]), a[it-origin="/"]:not([role="tablist"]), a[it-origin="//www.youtube.com"]:not([role="tablist"]), a[it-origin="//www.youtube.com/"]:not([role="tablist"]), a[it-origin="https://www.youtube.com"]:not([role="tablist"]), a[it-origin="https://www.youtube.com/"]:not([role="tablist"])'); - - for (var i = 0, l = node_list.length; i < l; i++) { - var node = node_list[i], - pathname = new URL((node.getAttribute('it-origin') || node.href)).pathname; - - if (pathname === '/') { - if (!node.getAttribute('it-origin')) { - node.setAttribute('it-origin', node.href); - } - } - - node.href = value; - node.outerHTML = String(node.outerHTML); - node.addEventListener('click', function() { - if ( - this.data && - this.data.commandMetadata && - this.data.commandMetadata.webCommandMetadata && - this.data.commandMetadata.webCommandMetadata.url - ) { - this.data.commandMetadata.webCommandMetadata.url = value; - } - }, true); - } - } else if (this.storage.youtube_home_page) { - var node_list = document.querySelectorAll('a[href="/"], a[href="//www.youtube.com"], a[href="//www.youtube.com/"], a[href="https://www.youtube.com"], a[href="https://www.youtube.com/"], a[it-origin="/"], a[it-origin="//www.youtube.com"], a[it-origin="//www.youtube.com/"], a[it-origin="https://www.youtube.com"], a[it-origin="https://www.youtube.com/"]'); - - for (var i = 0, l = node_list.length; i < l; i++) { - node_list[i].href = node_list[i].getAttribute('it-origin') || '/'; - node_list[i].outerHTML = String(node.node_list[i].outerHTML); - } - } -}; - -function youtubeHomePage__documentStart(option) { - if (option && option !== '/' && option !== 'search' && location.hostname === 'www.youtube.com' && location.pathname === '/') { - location.replace(option); - } -}; - - -/*----------------------------------------------------------------------------- -2.0 Add «Scroll to top» ------------------------------------------------------------------------------*/ - -ImprovedTube.scroll = function() { - if (window.scrollY > window.innerHeight / 2) { - document.documentElement.setAttribute('it-show-scroll-to-top', true); - } else { - document.documentElement.setAttribute('it-show-scroll-to-top', false); - } -}; - -ImprovedTube.add_scroll_to_top = function(is_update) { - if (this.storage.add_scroll_to_top === true) { - var button = document.createElement('div'); - - button.id = 'it-scroll-to-top'; - button.innerHTML = ''; - - button.addEventListener('click', function() { - window.scrollTo(0, 0); - }); - - document.documentElement.appendChild(button); - - window.addEventListener('scroll', ImprovedTube.scroll); - } else { - window.removeEventListener('scroll', ImprovedTube.scroll); - - if (document.querySelector('#it-scroll-to-top')) { - document.querySelector('#it-scroll-to-top').remove(); - } - } -}; - - -/*----------------------------------------------------------------------------- -3.0 HD thumbnails ------------------------------------------------------------------------------*/ - -ImprovedTube.hd_thumbnails = function() { - if (this.storage.hd_thumbnails === true) { - var images = document.querySelectorAll('img'); - - for (var i = 0, l = images.length; i < l; i++) { - if (/(hqdefault\.jpg|hq720.jpg)+/.test(images[i].src) && !images[i].dataset.defaultSrc) { - images[i].dataset.defaultSrc = images[i].src; - - images[i].onload = function() { - if (this.naturalHeight <= 90) { - this.src = this.dataset.defaultSrc; - } - }; - - images[i].src = images[i].src.replace(/(hqdefault\.jpg|hq720.jpg)+/, 'maxresdefault.jpg'); - } - } - } else { - var images = document.querySelectorAll('img'); - - for (var i = 0, l = images.length; i < l; i++) { - if (images[i].dataset.defaultSrc) { - images[i].src = images[i].dataset.defaultSrc; - } - } - } -}; - - -/*----------------------------------------------------------------------------- -4.0 Confirmation before closing ------------------------------------------------------------------------------*/ - -ImprovedTube.confirmation_before_closing = function() { - window.onbeforeunload = function() { - if (ImprovedTube.storage.confirmation_before_closing === true) { - return 'You have attempted to leave this page. Are you sure?'; - } - }; -}; - - -/*----------------------------------------------------------------------------- -5.0 Collapse of subscription sections ------------------------------------------------------------------------------*/ - -ImprovedTube.collapse_of_subscription_sections = function() { - if (/\/feed\/subscriptions/.test(location.href)) { - if (ImprovedTube.storage.collapse_of_subscription_sections === true) { - var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer, #browse-items-primary .section-list > li'); - - for (var i = 0, l = sections.length; i < l; i++) { - if (!sections[i].querySelector('.it-section-collapse')) { - var section_title = sections[i].querySelector('h2'), - button = document.createElement('div'); - - button.className = 'it-section-collapse'; - button.innerHTML = ''; - button.section = sections[i]; - button.addEventListener('click', function() { - var section = this.section, - content = section.querySelector('.grid-subheader + #contents, .shelf-title-table + .multirow-shelf'); - - if (section.classList.contains('it-section-collapsed') === false) { - content.style.height = content.offsetHeight + 'px'; - content.style.transition = 'height 150ms'; - } - - setTimeout(function() { - section.classList.toggle('it-section-collapsed'); - }); - }); - - if (!sections[i].querySelector('.shelf-title-cell')) { - section_title.parentNode.insertBefore(button, section_title.nextSibling); - } else { - section_title.appendChild(button); - } - } - } - } else { - var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'), - buttons = document.querySelectorAll('.it-section-collapse'); - - for (var i = 0, l = sections.length; i < l; i++) { - sections[i].classList.remove('it-section-collapsed'); - sections[i].style.height = ''; - sections[i].style.transition = ''; - } - - for (var i = 0, l = buttons.length; i < l; i++) { - buttons[i].remove(); - } - } - } -}; - - -/*----------------------------------------------------------------------------- -6.0 Mark watched videos ------------------------------------------------------------------------------*/ - -document.addEventListener('ImprovedTubeWatched', function(event) { - if (chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-watched', - data: { - action: event.detail.action, - id: event.detail.id, - title: event.detail.title - } - }); - } -}); - -ImprovedTube.mark_watched_videos = function() { - if (ImprovedTube.storage.mark_watched_videos === true) { - var video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (let i = 0, l = video_items.length; i < l; i++) { - if (!video_items[i].querySelector('.it-mark-watched')) { - var button = document.createElement('div'); - - button.className = 'it-mark-watched' + (ImprovedTube.storage.watched && ImprovedTube.storage.watched[ImprovedTube.getParam(new URL(video_items[i].href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); - button.innerHTML = ''; - button.addEventListener('click', function(event) { - var watched = this.classList.contains('watched') ? false : true; - - event.preventDefault(); - event.stopPropagation(); - - this.classList.toggle('watched'); - - try { - var video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'), - item = this.parentNode; - - while ( - item.nodeName && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } - - if (!ImprovedTube.storage.watched || typeof ImprovedTube.storage.watched !== 'object') { - ImprovedTube.storage.watched = {}; - } - - if (watched === true) { - ImprovedTube.storage.watched[video_id] = { - title: item.querySelector('a#video-title, .title, .yt-lockup-title > a').innerText - }; - - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'set', - id: video_id, - title: item.querySelector('a#video-title, .title, .yt-lockup-title > a').innerText - } - })); - } else if (ImprovedTube.storage.watched[video_id]) { - delete ImprovedTube.storage.watched[video_id]; - - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'remove', - id: video_id - } - })); - } - } catch (err) {} - }); - - video_items[i].appendChild(button); - } - } - } -}; - -/*----------------------------------------------------------------------------- ->>> PLAYER -------------------------------------------------------------------------------- -1.0 Quality -2.0 Volume -3.0 Playback speed -4.0 Autoplay -5.0 Allow 60fps -6.0 Codec h.264 -7.0 Subtitles -8.0 Loudness normalization -9.0 Up next autoplay -10.0 Mini player -11.0 Ads -12.0 Autopause -13.0 Auto-fullscreen -14.0 Custom plyaer buttons - 14.1 Repeat - 14.2 Screenshot - 14.3 Rotate - 14.4 Popup player ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Quality ------------------------------------------------------------------------------*/ - -ImprovedTube.player_quality = function(node) { - var quality = ImprovedTube.storage.player_quality; - - if (!node) { - node = document.querySelector('.html5-video-player'); - } - - if (node.getAvailableQualityLevels) { - var available_quality_levels = node.getAvailableQualityLevels(); - - if (quality && quality !== 'auto') { - if (available_quality_levels.indexOf(quality) === -1) { - quality = available_quality_levels[0]; - } - - node.setPlaybackQualityRange(quality); - node.setPlaybackQuality(quality); - } - } -}; - - -/*----------------------------------------------------------------------------- -2.0 Volume ------------------------------------------------------------------------------*/ - -ImprovedTube.player_volume = function(node) { - if (!node) { - node = document.querySelector('.html5-video-player'); - } - - if (node && ImprovedTube.storage.player_forced_volume === true) { - var volume = Number(ImprovedTube.storage.player_volume); - - if (!ImprovedTube.isset(volume) || !volume) { - volume = 1; - } - - node.setVolume(volume); - } -}; - - -/*----------------------------------------------------------------------------- -3.0 Playback speed ------------------------------------------------------------------------------*/ - -ImprovedTube.player_playback_speed = function(node) { - var playback_speed = Number(ImprovedTube.storage.player_playback_speed); - - if (!node) { - node = document.querySelector('.html5-video-player'); - } - - if (ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) && ImprovedTube.storage.player_forced_playback_speed === true) { - node.querySelector('video').playbackRate = playback_speed; - - try { if (window.location.href.indexOf("music") < 0){ //quickfix to keep running on music.youtube.com - node.setPlaybackRate(playback_speed); - } - } catch (err) {} - } -}; - - -/*----------------------------------------------------------------------------- -4.0 Autoplay ------------------------------------------------------------------------------*/ - -ImprovedTube.autoplay = function() { - if ( - (/\/watch\?/.test(location.href) && !/list=/.test(location.href) && this.storage.player_autoplay === false) || - (/\/watch\?/.test(location.href) && /list=/.test(location.href) /*&& /index=/.test(location.href)*/ && this.storage.playlist_autoplay === false) || - (/\/(channel|user)\//.test(location.href) && this.storage.channel_trailer_autoplay === false) - ) { - return false; - } - - return true; -}; - - -/*----------------------------------------------------------------------------- -5.0 Allow 60fps ------------------------------------------------------------------------------*/ - -ImprovedTube.player_60fps = function() { - if (this.storage.player_60fps === false) { - var canPlayType = HTMLMediaElement.prototype.canPlayType; - - function overwrite(self, callback, mime) { - var match = /framerate=(\d+)/.exec(mime); - - if (match && match[1] > 30) { - return ''; - } else { - return callback.call(self, mime); - } - } - - if (window.MediaSource) { - var isTypeSupported = window.MediaSource.isTypeSupported; - - window.MediaSource.isTypeSupported = function(mime) { - return overwrite(this, isTypeSupported, mime); - }; - } - - HTMLMediaElement.prototype.canPlayType = function(mime) { - var status = overwrite(this, canPlayType, mime); - - if (!status) { - return ''; - } else { - return status; - } - }; - } -}; - - -/*----------------------------------------------------------------------------- -6.0 Video codec ------------------------------------------------------------------------------*/ - -ImprovedTube.player_h264 = function() { - if (this.storage.player_h264 === true) { - var canPlayType = HTMLMediaElement.prototype.canPlayType; - - function overwrite(self, callback, mime) { - if (/webm|vp8|vp9/.test(mime)) { - return false; - } else { - return callback.call(self, mime); - } - } - - if (window.MediaSource) { - var isTypeSupported = window.MediaSource.isTypeSupported; - - window.MediaSource.isTypeSupported = function(mime) { - return overwrite(this, isTypeSupported, mime); - }; - } - - HTMLMediaElement.prototype.canPlayType = function(mime) { - var status = overwrite(this, canPlayType, mime); - - if (!status) { - return ''; - } else { - return status; - } - }; - } -}; - - -/*----------------------------------------------------------------------------- -9.0 Up next autoplay ------------------------------------------------------------------------------*/ - -ImprovedTube.up_next_autoplay = function() { - if (this.isset(this.storage.up_next_autoplay)) { - var wait = setInterval(function() { - if ( - document.querySelector('#related #head.ytd-compact-autoplay-renderer #toggle') || - document.querySelector('#autoplay-checkbox') - ) { - clearInterval(wait); - - var option = ImprovedTube.storage.up_next_autoplay, - new_youtube_toggle = document.querySelector('#related #head.ytd-compact-autoplay-renderer #toggle'), - old_youtube_toggle = document.querySelector('#autoplay-checkbox'); - - if (new_youtube_toggle && (option === true && !new_youtube_toggle.hasAttribute('checked') || option === false && new_youtube_toggle.hasAttribute('checked'))) { - new_youtube_toggle.click(); - } else if (old_youtube_toggle && (option === true && !old_youtube_toggle.hasAttribute('checked') || option === false && old_youtube_toggle.hasAttribute('checked'))) { - old_youtube_toggle.click(); - } - } - }, 250); - } -}; - - -/*----------------------------------------------------------------------------- -10.0 Mini player (todo) ------------------------------------------------------------------------------*/ - -ImprovedTube.mini_player__mode = false; -ImprovedTube.mini_player__move = false; -ImprovedTube.mini_player__cursor = '""'; -ImprovedTube.mini_player__x = 0; -ImprovedTube.mini_player__y = 0; -ImprovedTube.mini_player__max_x = 0; -ImprovedTube.mini_player__max_y = 0; -ImprovedTube.mini_player__original_width = 0; -ImprovedTube.mini_player__original_height = 0; -ImprovedTube.mini_player__width = 200; -ImprovedTube.mini_player__height = 160; -ImprovedTube.mini_player__mousedown_x = 0; -ImprovedTube.mini_player__mousedown_y = 0; -ImprovedTube.mini_player__player_offset_x = 0; -ImprovedTube.mini_player__player_offset_y = 0; -ImprovedTube.mini_player__resize_offset = 16; - - -ImprovedTube.mini_player__setPosition = function(x, y) { - ImprovedTube.mini_player__element.style.transform = 'translate3d(' + x + 'px, ' + y + 'px, 0)'; -}; - -ImprovedTube.mini_player__setSize = function(width, height) { - ImprovedTube.mini_player__element.style.width = width + 'px'; - ImprovedTube.mini_player__element.style.height = height + 'px'; -}; - -ImprovedTube.mini_player__scroll = function () { - if (window.scrollY >= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === false) { - ImprovedTube.mini_player__mode = true; - - ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; - ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; - - ImprovedTube.mini_player__element.classList.add('it-mini-player'); - - ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); - ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); - - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); - - window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - - window.dispatchEvent(new Event('resize')); - } else if (window.scrollY < 256 && ImprovedTube.mini_player__mode === true || ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === true) { - ImprovedTube.mini_player__mode = false; - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); - ImprovedTube.mini_player__move = false; - ImprovedTube.mini_player__setPosition(0, 0); - ImprovedTube.mini_player__element.style.width = ''; - ImprovedTube.mini_player__element.style.height = ''; - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - - window.dispatchEvent(new Event('resize')); - } -}; - -ImprovedTube.mini_player__mousedown = function (event) { - if (event.button !== 0) { - return false; - } - - if (ImprovedTube.mini_player__resize() === true) { - return false; - } - - var is_player = false; - - for (var i = 0, l = event.path.length; i < l; i++) { - if ((event.path[i].classList && event.path[i].classList.contains('it-mini-player')) === true) { - is_player = true; - } - } - - if (is_player === false) { - return false; - } - - event.preventDefault(); - - var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); - - ImprovedTube.mini_player__mousedown_x = event.clientX; - ImprovedTube.mini_player__mousedown_y = event.clientY; - ImprovedTube.mini_player__width = bcr.width; - ImprovedTube.mini_player__height = bcr.height; - - ImprovedTube.mini_player__player_offset_x = event.clientX - bcr.x; - ImprovedTube.mini_player__player_offset_y = event.clientY - bcr.y; - - ImprovedTube.mini_player__max_x = document.body.offsetWidth - ImprovedTube.mini_player__width; - ImprovedTube.mini_player__max_y = window.innerHeight - ImprovedTube.mini_player__height; - - window.addEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.addEventListener('mousemove', ImprovedTube.mini_player__mousemove); -}; - -ImprovedTube.mini_player__mouseup = function () { - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - - strg.x = ImprovedTube.mini_player__x; - strg.y = ImprovedTube.mini_player__y; - - localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - - window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); - - ImprovedTube.mini_player__move = false; - - setTimeout(function(){ - window.removeEventListener('click', ImprovedTube.mini_player__click, true); - }); -}; - -ImprovedTube.mini_player__click = function (event) { - event.stopPropagation(); - event.preventDefault(); -}; - -ImprovedTube.mini_player__mousemove = function (event) { - if ( - event.clientX < ImprovedTube.mini_player__mousedown_x - 5 || - event.clientY < ImprovedTube.mini_player__mousedown_y - 5 || - event.clientX > ImprovedTube.mini_player__mousedown_x + 5 || - event.clientY > ImprovedTube.mini_player__mousedown_y + 5 - ) { - var x = event.clientX - ImprovedTube.mini_player__player_offset_x, - y = event.clientY - ImprovedTube.mini_player__player_offset_y; - - if (ImprovedTube.mini_player__move === false) { - ImprovedTube.mini_player__move = true; - - window.addEventListener('click', ImprovedTube.mini_player__click, true); - } - - if (x < 0) { - x = 0; - } - - if (y < 0) { - y = 0; - } - - if (x > ImprovedTube.mini_player__max_x) { - x = ImprovedTube.mini_player__max_x; - } - - if (y > ImprovedTube.mini_player__max_y) { - y = ImprovedTube.mini_player__max_y; - } - - ImprovedTube.mini_player__x = x; - ImprovedTube.mini_player__y = y; - - ImprovedTube.mini_player__setPosition(x, y); - } -}; - -ImprovedTube.mini_player__cursorUpdate = function (event) { - var x = event.clientX, - y = event.clientY, - c = ImprovedTube.mini_player__cursor; - - if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset - ) { - c = 'ne-resize'; - } else if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'se-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'sw-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset - ) { - c = 'nw-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset - ) { - c = 'n-resize'; - } else if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'e-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 's-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'w-resize'; - } else { - c = ''; - } - - if (ImprovedTube.mini_player__cursor !== c) { - ImprovedTube.mini_player__cursor = c; - - document.documentElement.setAttribute('it-mini-player-cursor', ImprovedTube.mini_player__cursor); - } -}; - -ImprovedTube.mini_player__resize = function (event) { - if (ImprovedTube.mini_player__cursor !== '') { - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - window.addEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); - window.addEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); - - return true; - } -}; - -ImprovedTube.mini_player__resize_mouseMove = function(event) { - if (ImprovedTube.mini_player__cursor === 'n-resize') { - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); - } else if (ImprovedTube.mini_player__cursor === 'e-resize') { - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__height); - } else if (ImprovedTube.mini_player__cursor === 's-resize') { - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, event.clientY - ImprovedTube.mini_player__y); - } else if (ImprovedTube.mini_player__cursor === 'w-resize') { - ImprovedTube.mini_player__setPosition(event.clientX, ImprovedTube.mini_player__y); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__height); - } else if (ImprovedTube.mini_player__cursor === 'ne-resize') { - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); - } else if (ImprovedTube.mini_player__cursor === 'se-resize') { - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, event.clientY - ImprovedTube.mini_player__y); - } else if (ImprovedTube.mini_player__cursor === 'sw-resize') { - ImprovedTube.mini_player__setPosition(event.clientX, ImprovedTube.mini_player__y); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, event.clientY - ImprovedTube.mini_player__y); - } else if (ImprovedTube.mini_player__cursor === 'nw-resize') { - ImprovedTube.mini_player__setPosition(event.clientX, event.clientY); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); - } -}; - -ImprovedTube.mini_player__resize_mouseUp = function(event) { - var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); - - ImprovedTube.mini_player__x = bcr.left; - ImprovedTube.mini_player__y = bcr.top; - ImprovedTube.mini_player__width = bcr.width; - ImprovedTube.mini_player__height = bcr.height; - - window.dispatchEvent(new Event('resize')); - - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - - strg.width = ImprovedTube.mini_player__width; - strg.height = ImprovedTube.mini_player__height; - - localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - window.removeEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); - window.removeEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); -}; - -ImprovedTube.mini_player = function() { - ImprovedTube.mini_player__element = document.querySelector('.html5-video-player'); - - if (ImprovedTube.storage.mini_player === true) { - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - - ImprovedTube.mini_player__x = ImprovedTube.isset(strg.x) ? strg.x : 16; - ImprovedTube.mini_player__y = ImprovedTube.isset(strg.y) ? strg.y : 16; - ImprovedTube.mini_player__width = strg.width || 200; - ImprovedTube.mini_player__height = strg.height || 150; - - window.addEventListener('scroll', ImprovedTube.mini_player__scroll); - } else { - ImprovedTube.mini_player__mode = false; - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); - ImprovedTube.mini_player__move = false; - ImprovedTube.mini_player__setPosition(0, 0); - ImprovedTube.mini_player__element.style.width = ''; - ImprovedTube.mini_player__element.style.height = ''; - - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - window.dispatchEvent(new Event('resize')); - - window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); - window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.removeEventListener('click', ImprovedTube.mini_player__click); - window.removeEventListener('scroll', ImprovedTube.mini_player__scroll); - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - } -}; - - -/*----------------------------------------------------------------------------- -12.0 Autopause ------------------------------------------------------------------------------*/ - -ImprovedTube.player_autopause_when_switching_tabs = function() { - window.addEventListener('blur', function() { - ImprovedTube.focused = false; - - if ( - ImprovedTube.storage.player_autopause_when_switching_tabs === true && - /\/watch/.test(location.href) && - document.querySelector('.html5-video-player video') - ) { - document.querySelector('.html5-video-player video').pause(); - } - }); - - window.addEventListener('focus', function() { - ImprovedTube.focused = true; - - if ( - ImprovedTube.storage.player_autopause_when_switching_tabs === true && - /\/watch/.test(location.href) && - document.querySelector('.html5-video-player video') - ) { - document.querySelector('.html5-video-player video').play(); - } - }); -}; - - -/*----------------------------------------------------------------------------- -13.0 Auto-fullscreen ------------------------------------------------------------------------------*/ - -ImprovedTube.player_autofullscreen = function(node) { - if (!node) { - node = document.querySelector('.html5-video-player'); - } - - if ( - this.storage.player_autofullscreen === true && - !document.fullscreenElement && - document.documentElement.getAttribute('it-page-type') === 'video' && - node.toggleFullscreen - ) { - node.toggleFullscreen(); - } -}; - - -/*----------------------------------------------------------------------------- -14.0 Custom buttons ------------------------------------------------------------------------------*/ - -ImprovedTube.createPlayerButton = function(node, options) { - var button = document.createElement('button'); - - var wait = setInterval(function() { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - if (node && node.querySelector('.ytp-left-controls')) { - clearInterval(wait); - - button.className = 'ytp-button it-player-button'; - - button.dataset.title = options.title; - - if (options.id) { - if (node.querySelector('#' + options.id)) { - node.querySelector('#' + options.id).remove(); - } - - button.id = options.id; - } - - if (options.html) { - button.innerHTML = options.html; - } - - button.style.opacity = options.opacity || '.5'; - - if (options.onclick) { - button.onclick = options.onclick; - } - - node.querySelector('.ytp-left-controls').insertBefore(button, node.querySelector('.ytp-left-controls').childNodes[3]); - } - }); -}; - - -/*----------------------------------------------------------------------------- -14.1 Repeat ------------------------------------------------------------------------------*/ - -ImprovedTube.player_repeat_button = function(node) { - if (this.storage.player_repeat_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - this.createPlayerButton(node, { - id: 'it-repeat-button', - html: '', - onclick: function() { - if (node.querySelector('video').hasAttribute('loop')) { - node.querySelector('video').removeAttribute('loop'); - this.style.opacity = '.5'; - } else if (!/ad-showing/.test(player.className)) { - node.querySelector('video').setAttribute('loop', ''); - this.style.opacity = '1'; - } - }, - title: 'Repeat' - }); - - if (this.storage.player_always_repeat === true) { - setTimeout(function() { - node.querySelector('video').setAttribute('loop', ''); - node.querySelector('#it-repeat-button').style.opacity = '1'; - }, 100); - } - } else if (document.querySelector('.it-repeat-button')) { - document.querySelector('.it-repeat-button').remove(); - } -}; - - -/*----------------------------------------------------------------------------- -14.2 Screenshot ------------------------------------------------------------------------------*/ - -ImprovedTube.screenshot = function() { - document.body.style.opacity = '0'; - - var video = document.querySelector('.html5-video-player video'), - cvs = document.createElement('canvas'), - ctx = cvs.getContext('2d'), - old_w = video.offsetWidth, - old_h = video.offsetHeight; - - video.style.width = video.videoWidth + 'px'; - video.style.height = video.videoHeight + 'px'; - - setTimeout(function() { - cvs.width = video.videoWidth; - cvs.height = video.videoHeight; - - ctx.drawImage(video, 0, 0, cvs.width, cvs.height); - - cvs.toBlob(function(blob) { - if (ImprovedTube.storage.player_screenshot_save_as !== 'clipboard') { - var a = document.createElement('a'); - - a.href = URL.createObjectURL(blob); - - a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '-' + new Date(document.querySelector('video').getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; - - a.click(); - } else { - try { - navigator.clipboard.write([ - new ClipboardItem({ - 'image/png': blob - }) - ]); - } catch (error) { - console.error(error); - } - } - - setTimeout(function() { - video.style.width = old_w + 'px'; - video.style.height = old_h + 'px'; - - document.body.style.opacity = '1'; - }, 100); - }); - }, 100); -}; - -ImprovedTube.player_screenshot_button = function() { - if (this.storage.player_screenshot_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - this.createPlayerButton(node, { - id: 'it-screenshot-button', - html: '', - opacity: 1, - onclick: ImprovedTube.screenshot, - title: 'Screenshot' - }); - } else if (document.querySelector('.it-screenshot-button')) { - document.querySelector('.it-screenshot-button').remove(); - } -}; - - -/*----------------------------------------------------------------------------- -14.3 Rotate ------------------------------------------------------------------------------*/ - -ImprovedTube.player_rotate_button = function() { - if (this.storage.player_rotate_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - this.createPlayerButton(node, { - id: 'it-rotate-button', - html: '', - opacity: 1, - onclick: function() { - var video = document.querySelector('.html5-video-player video'), - transform = '', - rotate = (document.querySelector('.it-rotate-styles') && document.querySelector('.it-rotate-styles').textContent.match(/rotate\([0-9.]+deg\)/g) || [''])[0]; - - rotate = Number((rotate.match(/[0-9.]+/g) || [])[0]) || 0; - - if (rotate < 270 && rotate % 90 == 0) { - rotate = rotate + 90; - } else { - rotate = 0; - } - - transform += 'rotate(' + rotate + 'deg)'; - - if (rotate == 90 || rotate == 270) { - transform += ' scale(' + video.offsetHeight / video.offsetWidth + ')'; - } - - //video.style.transform = transform; - - if (!document.querySelector('.it-rotate-styles')) { - var styles = document.createElement('style'); - - styles.className = 'it-rotate-styles'; - - document.body.appendChild(styles); - } - - document.querySelector('.it-rotate-styles').textContent = '.html5-video-player:not(it-mini-player) video {transform:' + transform + '}'; - }, - title: 'Rotate' - }); - } else if (document.querySelector('.it-rotate-button')) { - document.querySelector('.it-rotate-button').remove(); - document.querySelector('.it-rotate-styles').remove(); - } -}; - - -/*----------------------------------------------------------------------------- -14.4 Popup ------------------------------------------------------------------------------*/ - -ImprovedTube.player_popup_button = function() { - if (this.storage.player_popup_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - this.createPlayerButton(node, { - id: 'it-popup-player-button', - html: '', - opacity: 1, - onclick: function() { - node.pauseVideo(); - - window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(node.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'location=0,menubar=0,status=0,titlebar=0,width=' + node.offsetWidth + ',height=' + node.offsetHeight); - }, - title: 'Popup' - }); - } else if (document.querySelector('.it-popup-player-button')) { - document.querySelector('.it-popup-player-button').remove(); - } -}; - - -/*----------------------------------------------------------------------------- -# LOUDNESS NORMALIZATION ------------------------------------------------------------------------------*/ - -ImprovedTube.player_loudness_normalization = function() { - if (document.querySelector('video')) { - document.querySelector('video').onvolumechange = function(event) { - if (document.querySelector('.ytp-volume-panel') && ImprovedTube.storage.player_loudness_normalization === false) { - var volume = Number(document.querySelector('.ytp-volume-panel').getAttribute('aria-valuenow')); - - document.querySelector('video').volume = volume / 100; - } - }; - } - - if (ImprovedTube.storage.player_loudness_normalization === false) { - try { - var local_storage = localStorage['yt-player-volume']; - - if (ImprovedTube.isset(Number(ImprovedTube.storage.player_volume)) && ImprovedTube.storage.player_forced_volume === true) { - - } else if (local_storage) { - local_storage = JSON.parse(JSON.parse(local_storage).data); - local_storage = Number(local_storage.volume); - - document.querySelector('video').volume = local_storage / 100; - } else { - document.querySelector('video').volume = 100; - } - } catch (err) { - console.log(err); - } - } -}; - -/*----------------------------------------------------------------------------- ->>> PLAYLIST -------------------------------------------------------------------------------- -1.0 Reverse -2.0 Repeat -3.0 Shuffle ------------------------------------------------------------------------------*/ - - -/*----------------------------------------------------------------------------- -1.0 Reverse (todo) ------------------------------------------------------------------------------*/ - -ImprovedTube.playlist_reverse_wait = false; - -ImprovedTube.playlist_reverse_activated = false; - -ImprovedTube.playlist_reverse = function() { - if (this.storage.playlist_reverse === true) { - ImprovedTube.playlist_reverse_wait = setInterval(function() { - if ( - ( - document.querySelector('.playlist-nav-controls') || - document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #header-contents #playlist-actions ytd-menu-renderer #top-level-buttons') - ) && - (document.querySelector('.playlist-nav-controls .toggle-loop') || document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[0]) && - !document.querySelector('#it-playlist-reverse') - ) { - clearInterval(ImprovedTube.playlist_reverse_wait); - - ImprovedTube.playlist_reverse_wait = false; - - var button = document.createElement('div'); - - button.id = 'it-playlist-reverse'; - button.innerHTML = ''; - button.onclick = function() { - if (this.classList.contains('yt-uix-button-toggled')) { - ImprovedTube.playlist_reverse_activated = false; - - this.classList.remove('yt-uix-button-toggled'); - } else { - ImprovedTube.playlist_reverse_activated = true; - - this.classList.add('yt-uix-button-toggled'); - } - - ImprovedTube.newPlaylistReverse(); - }; - - (document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #header-contents #playlist-actions ytd-menu-renderer #top-level-buttons') || document.querySelector('.playlist-nav-controls')).appendChild(button); - - if ((ImprovedTube.playlist_reverse_activated === true || location.href.indexOf('it-playlist-reverse=true') !== -1) && document.querySelector('#it-playlist-reverse')) { - ImprovedTube.playlist_reverse_activated = true; - - document.querySelector('#it-playlist-reverse').classList.add('yt-uix-button-toggled'); - - ImprovedTube.newPlaylistReverse(); - } - } - }, 250); - } -}; - -ImprovedTube.newPlaylistReverse = function() { - var list = document.querySelector('#items.playlist-items'), - videos = document.querySelectorAll('#items.playlist-items > *'), - clones = [], - titles = [], - channels = [], - hrefs = []; - - if (videos) { - for (var i = videos.length - 1; i >= 0; i--) { - titles.push(videos[i].querySelector('#video-title').innerText); - channels.push(videos[i].querySelector('#byline').innerText); - hrefs.push(videos[i].querySelector('a').href + '&it-playlist-reverse=true'); - clones.push(videos[i].cloneNode(true)); - } - - list.innerHTML = ''; - - for (var i = 0, l = clones.length; i < l; i++) { - var clone = clones[i].cloneNode(true); - - list.appendChild(clone); - } - - function next(event) { - if ( - ImprovedTube.playlist_reverse_activated === true && - ( - (document.querySelector('#items.playlist-items > [selected]').nextElementSibling ? document.querySelector('#items.playlist-items > [selected]').nextElementSibling.querySelector('a') : null) || - document.querySelector('#items.playlist-items > * a') - ) - ) { - for (var i = 0, l = event.path.length; i < l; i++) { - if (event.path[i] === document.querySelector('.html5-video-player .ytp-next-button')) { - event.preventDefault(); - event.stopPropagation(); - - location.replace(((document.querySelector('#items.playlist-items > [selected]').nextElementSibling ? document.querySelector('#items.playlist-items > [selected]').nextElementSibling.querySelector('a') : null) || document.querySelector('#items.playlist-items > * a')).href); - - return false; - } - } - } - } - - window.removeEventListener('click', next); - window.addEventListener('click', next); - - function prev(event) { - if ( - ImprovedTube.playlist_reverse_activated === true && - ( - (document.querySelector('#items.playlist-items > [selected]').previousElementSibling ? document.querySelector('#items.playlist-items > [selected]').nextElementSibling.querySelector('a') : null) || - document.querySelector('#items.playlist-items > *:last-child a') - ) - ) { - for (var i = 0, l = event.path.length; i < l; i++) { - if (event.path[i] === document.querySelector('.html5-video-player .ytp-prev-button')) { - event.preventDefault(); - event.stopPropagation(); - - location.replace(((document.querySelector('#items.playlist-items > [selected]').previousElementSibling ? document.querySelector('#items.playlist-items > [selected]').nextElementSibling.querySelector('a') : null) || document.querySelector('#items.playlist-items > *:last-child a')).href); - - return false; - } - } - } - } - - window.removeEventListener('click', prev); - window.addEventListener('click', prev); - - setTimeout(function() { - var items = document.querySelectorAll('#items.playlist-items > *'); - - for (var i = 0, l = clones.length; i < l; i++) { - var item = items[i]; - - item.querySelector('a').href = hrefs[i]; - // index - item.querySelector('#index').innerHTML = clones[i].querySelector('#index').innerHTML; - // thumbnail - item.querySelector('#thumbnail-container').style.background = 'url(https://i.ytimg.com/vi/' + hrefs[i].match(/v=[^&]*/g)[0].substr(2) + '/hqdefault.jpg) no-repeat center'; - item.querySelector('#thumbnail-container').style.backgroundSize = 'cover'; - item.querySelector('yt-img-shadow').classList.remove('empty'); - // title - item.querySelector('#video-title').innerText = titles[i]; - // channel - item.querySelector('#byline').innerText = channels[i]; - } - - //document.querySelector('.html5-video-player .ytp-next-button').parentNode.replaceChild(document.querySelector('.html5-video-player .ytp-next-button').cloneNode.true, document.querySelector('.html5-video-player .ytp-next-button')); - - document.querySelector('#playlist .playlist-items').scrollTo(0, document.querySelector('ytd-playlist-panel-video-renderer[selected]').offsetTop - document.querySelector('ytd-playlist-panel-video-renderer[selected]').parentNode.offsetTop); - }, 500); - } -}; - - -/*----------------------------------------------------------------------------- -2.0 Repeat ------------------------------------------------------------------------------*/ - -ImprovedTube.playlist_repeat_wait = false; - -ImprovedTube.playlist_repeat = function() { - if (this.isset(this.storage.playlist_repeat) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { - ImprovedTube.playlist_repeat_wait = setInterval(function() { - if ( - document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[0] || - document.querySelector('.playlist-nav-controls .toggle-loop') - ) { - clearInterval(ImprovedTube.playlist_repeat_wait); - - ImprovedTube.playlist_repeat_wait = false; - - var option = ImprovedTube.storage.playlist_repeat, - new_youtube_toggle = document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer'), - old_youtube_toggle = document.querySelector('.playlist-nav-controls .toggle-loop'); - - if (new_youtube_toggle[0] && (option === true && new_youtube_toggle[0].className.search('style-default-active') === -1 || option === 'disabled' && new_youtube_toggle[0].className.search('style-default-active') !== -1)) { - new_youtube_toggle[0].click(); - } else if (old_youtube_toggle && (option === true && old_youtube_toggle.className.search('yt-uix-button-toggled') === -1 || option === 'disabled' && old_youtube_toggle.className.search('yt-uix-button-toggled') !== -1)) { - old_youtube_toggle.click(); - } - } - }, 250); - } -}; - - -/*----------------------------------------------------------------------------- -3.0 Shuffle ------------------------------------------------------------------------------*/ - -ImprovedTube.playlist_shuffle_wait = false; - -ImprovedTube.playlist_shuffle = function() { - if (this.isset(this.storage.playlist_shuffle) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { - ImprovedTube.playlist_shuffle_wait = setInterval(function() { - if ( - document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[1] || - document.querySelector('.playlist-nav-controls .shuffle-playlist') - ) { - clearInterval(ImprovedTube.playlist_shuffle_wait); - - ImprovedTube.playlist_shuffle_wait = false; - - var option = ImprovedTube.storage.playlist_shuffle, - new_youtube_toggle = document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer'), - old_youtube_toggle = document.querySelector('.playlist-nav-controls .shuffle-playlist'); - - if (new_youtube_toggle[1] && (option === true && new_youtube_toggle[1].className.search('style-default-active') === -1 || option === 'disabled' && new_youtube_toggle[1].className.search('style-default-active') !== -1)) { - new_youtube_toggle[1].click(); - } else if (old_youtube_toggle && (option === true && old_youtube_toggle.className.search('yt-uix-button-toggled') === -1 || option === 'disabled' && old_youtube_toggle.className.search('yt-uix-button-toggled') !== -1)) { - old_youtube_toggle.click(); - } - } - }, 250); - } -}; - - -/*----------------------------------------------------------------------------- -4.0 Up next autoplay ------------------------------------------------------------------------------*/ - -ImprovedTube.playlist_up_next_autoplay_f = function(event) { - if ( - ImprovedTube.getParam(location.href, 'list') && - ImprovedTube.storage.playlist_up_next_autoplay === false && - this.currentTime >= this.duration - 1 - ) { - this.pause(); - } -}; - -ImprovedTube.playlist_up_next_autoplay = function(player) { - player.querySelector('video').removeEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); - player.querySelector('video').addEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); -}; - -/*----------------------------------------------------------------------------- ->>> SETTINGS -------------------------------------------------------------------------------- -1.0 ImprovedTube icon on YouTube -2.0 Delete YouTube cookies -3.0 YouTube Language ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 ImprovedTube icon on YouTube ------------------------------------------------------------------------------*/ - -ImprovedTube.improvedtube_youtube_icon_wait = false; - -ImprovedTube.improvedtube_youtube_icon_resize = function() { - var iframe = document.querySelector('.it-btn__iframe'), - icon = document.querySelector('.it-btn__icon'); - - if (iframe && icon) { - var x = icon.getBoundingClientRect().x, - y = icon.getBoundingClientRect().y; - - if (x < window.innerWidth / 2) { - iframe.style.right = 'auto'; - iframe.style.left = '0px'; - } else { - iframe.style.right = '0px'; - iframe.style.left = 'auto'; - } - - if (y < window.innerHeight / 2) { - iframe.style.top = '50px'; - iframe.style.bottom = 'auto'; - - iframe.style.height = Math.min(500, window.innerHeight - Math.max(0, iframe.getBoundingClientRect().top) - 16) + 'px'; - } else { - iframe.style.top = 'auto'; - iframe.style.bottom = '50px'; - - iframe.style.height = Math.min(500, window.innerHeight - Math.max(0, window.innerHeight - iframe.getBoundingClientRect().y - iframe.getBoundingClientRect().height) - 16) + 'px'; - } - } -}; - -ImprovedTube.improvedtube_youtube_icon = function() { - if (window.self !== window.top) { - return false; - } - - if ( - ImprovedTube.storage.improvedtube_youtube_icon === 'disabled' && - document.querySelector('.it-btn') - ) { - document.querySelector('.it-btn').remove(); - } - - if (this.improvedtube_youtube_icon_wait === false) { - this.improvedtube_youtube_icon_wait = setInterval(function() { - var option = ImprovedTube.storage.improvedtube_youtube_icon, - parentNode, - referenceNode; - - if (option === 'header_left') { - parentNode = document.querySelector('ytd-masthead #start'); - referenceNode = document.querySelector('ytd-masthead #start #guide-button'); - } else if (option === 'header_right') { - parentNode = ( - document.querySelector('#end #buttons') || - document.querySelector('#yt-masthead-user') - ); - } else if (option === 'draggable') { - parentNode = document.body || document.querySelector('body'); - } else if (option === 'below_player') { - parentNode = ( - document.querySelector('.title.ytd-video-primary-info-renderer') || - document.querySelector('#watch-headline-title') - ); - } - - if (document.querySelector('.it-btn')) { - if (!parentNode.querySelector(':scope > .it-btn')) { - document.querySelector('.it-btn').remove(); - } else { - clearInterval(ImprovedTube.improvedtube_youtube_icon_wait); - - ImprovedTube.improvedtube_youtube_icon_wait = false; - - return false; - } - } - - if ( - ImprovedTube.isset(option) && - option !== 'disabled' && - parentNode && (option === 'header_left' ? referenceNode : true) - ) { - clearInterval(ImprovedTube.improvedtube_youtube_icon_wait); - - ImprovedTube.improvedtube_youtube_icon_wait = false; - - var button = document.createElement('div'); - - button.className = 'it-btn'; - button.innerHTML = '
'; - button.addEventListener('click', function() { - event.preventDefault(); - event.stopPropagation(); - - this.classList.toggle('it-btn--active'); - ImprovedTube.improvedtube_youtube_icon_resize(); - - return false; - }, true); - - if (option === 'draggable') { - var position = localStorage.getItem('IT_ICON'); - - if (ImprovedTube.isset(position)) { - position = JSON.parse(position); - - button.style.left = position.x + 'px'; - button.style.top = position.y + 'px'; - } - - function move(event) { - button.classList.add('it-btn--dragging'); - - if (event.clientX < window.innerWidth / 2) { - if (event.clientX - Number(button.dataset.x) >= 16) { - button.style.left = event.clientX - Number(button.dataset.x) + 'px'; - } else { - button.style.left = '16px'; - } - } else { - if (event.clientX + (48 + window.innerWidth - document.querySelector('body').offsetWidth) - Number(button.dataset.x) <= window.innerWidth) { - button.style.left = event.clientX - Number(button.dataset.x) + 'px'; - } else { - button.style.left = 'calc(100vw - ' + (48 + window.innerWidth - document.querySelector('body').offsetWidth) + 'px)'; - } - } - - if (event.clientY < window.innerHeight / 2) { - if (event.clientY - Number(button.dataset.y) >= 16) { - button.style.top = event.clientY - Number(button.dataset.y) + 'px'; - } else { - button.style.top = '16px'; - } - } else { - if (event.clientY + 48 - Number(button.dataset.y) <= window.innerHeight) { - button.style.top = event.clientY - Number(button.dataset.y) + 'px'; - } else { - button.style.top = 'calc(100vh - 48px)'; - } - } - - ImprovedTube.improvedtube_youtube_icon_resize(); - } - - button.addEventListener('mousedown', function(event) { - this.dataset.x = event.layerX; - this.dataset.y = event.layerY; - - window.addEventListener('mousemove', move); - }); - - window.addEventListener('mouseup', function() { - button.classList.remove('it-btn--dragging'); - - window.removeEventListener('mousemove', move); - - localStorage.setItem('IT_ICON', JSON.stringify({ - x: button.offsetLeft, - y: button.offsetTop - })); - - setTimeout(function() { - button.style.pointerEvents = ''; - }); - }); - } - - if (option === 'header_left') { - parentNode.insertBefore(button, referenceNode); - } else { - parentNode.appendChild(button); - } - - ImprovedTube.improvedtube_youtube_icon_resize(); - } - }, 250); - } -}; - - -/*----------------------------------------------------------------------------- -2.0 Delete YouTube cookies ------------------------------------------------------------------------------*/ - -ImprovedTube.delete_youtube_cookies = function() { - var cookies = document.cookie.split(';'); - - for (var i = 0, l = cookies.length; i < l; i++) { - var cookie = cookies[i], - eqPos = cookie.indexOf('='), - name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; - - document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; - } - - setTimeout(function() { - location.reload(); - }, 100); -}; - - -/*----------------------------------------------------------------------------- -3.0 YouTube Language ------------------------------------------------------------------------------*/ - -ImprovedTube.youtube_language = function() { - var pref = ImprovedTube.getCookieValueByName('PREF'), - hl = ImprovedTube.getParam(pref, 'hl'); - - if (hl) { - ImprovedTube.setCookie('PREF', pref.replace('hl=' + hl, 'hl=' + ImprovedTube.storage.youtube_language)); - } else { - ImprovedTube.setCookie('PREF', pref + '&hl=' + ImprovedTube.storage.youtube_language); - } - - setTimeout(function() { - location.reload(); - }, 100); -}; - -/*----------------------------------------------------------------------------- ->>> SHORTCUTS -------------------------------------------------------------------------------- -1.0 Keyboard -2.0 Mouse ------------------------------------------------------------------------------*/ - -ImprovedTube.shortcuts = function() { - var self = this, - keys = {}, - wheel = 0, - hover = false, - status_timer; - - function showStatus(player, volume) { - if (!player.querySelector('#it-status')) { - var element = document.createElement('div'); - - element.id = 'it-status'; - element.innerHTML = volume; - - document.querySelector('.html5-video-container').appendChild(element); - } else { - player.querySelector('#it-status').innerHTML = volume; - } - - if (status_timer) { - clearTimeout(status_timer); - } - - status_timer = setTimeout(function() { - if (player.querySelector('#it-status')) { - player.querySelector('#it-status').remove(); - } - }, 500); - } - - function start(type = 'keys') { - if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || event.target.isContentEditable) { - return false; - } - - var features = { - shortcut_240p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('small'); - player.setPlaybackQuality('small'); - } - }, - shortcut_360p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('medium'); - player.setPlaybackQuality('medium'); - } - }, - shortcut_480p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('large'); - player.setPlaybackQuality('large'); - } - }, - shortcut_720p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd720'); - player.setPlaybackQuality('hd720'); - } - }, - shortcut_1080p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd1080'); - player.setPlaybackQuality('hd1080'); - } - }, - shortcut_1440p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd1440'); - player.setPlaybackQuality('hd1440'); - } - }, - shortcut_2160p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd2160'); - player.setPlaybackQuality('hd2160'); - } - }, - shortcut_2880p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd2880'); - player.setPlaybackQuality('hd2880'); - } - }, - shortcut_4320p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('highres'); - player.setPlaybackQuality('highres'); - } - }, - shortcut_picture_in_picture: function() { - var video = document.querySelector('#movie_player video'); - - if (video) { - video.requestPictureInPicture(); - } - }, - shortcut_play_pause: function() { - var video = document.querySelector('#movie_player video'); - - if (video) { - if (video.paused) { - video.play(); - } else { - video.pause(); - } - } - }, - shortcut_stop: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.stopVideo(); - } - }, - shortcut_next_video: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.nextVideo) { - player.nextVideo(); - } - }, - shortcut_prev_video: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.previousVideo) { - player.previousVideo(); - } - }, - shortcut_seek_backward: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.seekBy) { - player.seekBy(-10); - } - }, - shortcut_seek_forward: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.seekBy) { - player.seekBy(10); - } - }, - shortcut_increase_volume: function() { - var player = document.querySelector('.html5-video-player'); - - if (player && player.setVolume && player.getVolume) { - player.setVolume(player.getVolume() + (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); - } - - showStatus(player, player.getVolume()); - }, - shortcut_decrease_volume: function() { - var player = document.querySelector('.html5-video-player'); - - if (player && player.setVolume && player.getVolume) { - player.setVolume(player.getVolume() - (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); - } - - showStatus(player, player.getVolume()); - }, - shortcut_screenshot: function() { - var player = document.querySelector('.html5-video-player'); - - if (player && player.setVolume && player.getVolume) { - ImprovedTube.screenshot(); - } - }, - shortcut_increase_playback_speed: function() { - var video = document.querySelector('#movie_player video'); - - if (video && video.playbackRate) { - video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step)).toFixed(2)), .1); - - showStatus(document.querySelector('#movie_player'), video.playbackRate); - } - }, - shortcut_decrease_playback_speed: function() { - var video = document.querySelector('#movie_player video'); - - if (video && video.playbackRate) { - video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step)).toFixed(2)), .1); - - showStatus(document.querySelector('#movie_player'), video.playbackRate); - } - }, - shortcut_go_to_search_box: function() { - var search = document.querySelector('#search'); - - if (search && search.focus) { - search.focus(); - } - }, - shortcut_activate_fullscreen: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.toggleFullscreen) { - player.toggleFullscreen(); - } - }, - shortcut_activate_captions: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.querySelector('.ytp-subtitles-button')) { - player.querySelector('.ytp-subtitles-button').click(); - } - }, - shortcut_like_shortcut: function() { - var like = (document.querySelectorAll('.like-button-renderer-like-button')[0] || document.querySelectorAll('#menu #top-level-buttons ytd-toggle-button-renderer')[0]); - - if (like) { - like.click(); - } - }, - shortcut_dislike_shortcut: function() { - var like = (document.querySelectorAll('.like-button-renderer-dislike-button')[0] || document.querySelectorAll('#menu #top-level-buttons ytd-toggle-button-renderer')[1]); - - if (like) { - like.click(); - } - }, - shortcut_dark_theme: function() { - if (document.documentElement.hasAttribute('dark')) { - document.documentElement.removeAttribute('dark'); - document.documentElement.removeAttribute('it-theme'); - } else { - document.documentElement.setAttribute('dark', ''); - document.documentElement.setAttribute('it-theme', 'true'); - } - }, - shortcut_custom_mini_player: function() { - ImprovedTube.storage.mini_player = !ImprovedTube.storage.mini_player; - - ImprovedTube.mini_player(); - - if (ImprovedTube.storage.mini_player === true) { - ImprovedTube.mini_player__mode = true; - - ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; - ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; - - ImprovedTube.mini_player__element.classList.add('it-mini-player'); - - ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); - ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); - - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); - - window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - - window.dispatchEvent(new Event('resize')); - } - }, - shortcut_stats_for_nerds: function() { - var player = document.querySelector('#movie_player'); - - if(player) { - if(player.querySelector('.html5-video-info-panel')) { - var statsForNerdsPanel = player.querySelector('.html5-video-info-panel'); - var displayType = statsForNerdsPanel.style.display; - - if(displayType != 'none') { - statsForNerdsPanel.querySelector('.html5-video-info-panel-close').click(); - } else { - var rightClickMenu = document.querySelector('.ytp-popup.ytp-contextmenu .ytp-panel .ytp-panel-menu'); - - if(rightClickMenu && rightClickMenu.querySelector('div:nth-child(7)')) { - rightClickMenu.querySelector('div:nth-child(7) .ytp-menuitem-content').click(); - } - } - } else { - if(document.createEvent) { - var rightClickEvent = document.createEvent('HTMLEvents'); - rightClickEvent.initEvent('contextmenu', true, false); - player.dispatchEvent(rightClickEvent); - } - var rightClickMenu = document.querySelector('.ytp-popup.ytp-contextmenu .ytp-panel .ytp-panel-menu'); - - if(rightClickMenu && rightClickMenu.querySelector('div:nth-child(7)')) { - rightClickMenu.querySelector('div:nth-child(7) .ytp-menuitem-content').click(); - } - } - } - }, - shortcut_toggle_cards: function() { - const html = document.getElementsByTagName("html")[0]; - if(html.getAttribute("it-player-hide-cards") === "true") { - html.setAttribute("it-player-hide-cards", "false"); - } else { - html.setAttribute("it-player-hide-cards", true); - } - } - }; - - for (var i in features) { - if (self.isset(self.storage[i])) { - var data = JSON.parse(self.storage[i]) || {}; - - if ( - (data.key === keys.key || !self.isset(data.key)) && - (data.shiftKey === keys.shiftKey || !self.isset(data.shiftKey)) && - (data.ctrlKey === keys.ctrlKey || !self.isset(data.ctrlKey)) && - (data.altKey === keys.altKey || !self.isset(data.altKey)) && - ((data.wheel > 0) === (wheel > 0) || !self.isset(data.wheel)) && - (((data.on_top_of_player === true ? hover === true : true) && (data.wheel > 0) === (wheel > 0) && Object.keys(keys).length === 0 && keys.constructor === Object) || (self.isset(data.key) || self.isset(data.altKey) || self.isset(data.ctrlKey))) - ) { - if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { - event.preventDefault(); - event.stopPropagation(); - } - - features[i](); - - if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { - return false; - } - } - } - } - } - - - /*------------------------------------------------------------------------- - 1.0 Keyboard - -------------------------------------------------------------------------*/ - - window.addEventListener('keydown', function(event) { - keys = { - key: event.key, - keyCode: event.keyCode, - shiftKey: event.shiftKey, - ctrlKey: event.ctrlKey, - altKey: event.altKey - }; - - start(); - }, true); - - window.addEventListener('keyup', function(event) { - keys = {}; - }, true); - - - /*------------------------------------------------------------------------- - 2.0 Mouse - -------------------------------------------------------------------------*/ - - window.addEventListener('mousemove', function(event) { - hover = false; - - for (var i = 0, l = event.path.length; i < l; i++) { - if (event.path[i].classList && event.path[i].classList.contains('html5-video-player')) { - hover = true; - } - } - }, { - passive: false, - capture: true - }); - - window.addEventListener('wheel', function(event) { - wheel = event.deltaY; - - start('wheel'); - }, { - passive: false, - capture: true - }); -}; - -/*----------------------------------------------------------------------------- ->>> THEMES -------------------------------------------------------------------------------- -1.0 Bluelight -2.0 Dim -3.0 Themes ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Bluelight ------------------------------------------------------------------------------*/ - -ImprovedTube.bluelight = function() { - var value = this.storage.bluelight, - times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); - - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; - } - - if ( - this.isset(value) && value !== 0 && value !== '0' && - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) - ) { - if (!document.querySelector('#it-bluelight')) { - var container = document.createElement('div'); - - container.id = 'it-bluelight'; - container.innerHTML = ''; - - document.documentElement.appendChild(container); - } else { - document.querySelector('#it-bluelight-filter feColorMatrix').setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 ' + (1 - parseFloat(value) / 100) + ' 0 0 0 0 0 1 0'); - } - } else if (document.querySelector('#it-bluelight')) { - document.querySelector('#it-bluelight').remove(); - } -}; - - -/*----------------------------------------------------------------------------- -2.0 Dim ------------------------------------------------------------------------------*/ - -ImprovedTube.dim = function() { - var value = this.storage.dim, - times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); - - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; - }; - - if ( - this.isset(value) && value !== 0 && value !== '0' && - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) - ) { - if (!document.querySelector('#it-dim')) { - var container = document.createElement('div'); - - container.id = 'it-dim'; - container.style.opacity = parseInt(Number(value)) / 100 || 0; - - document.documentElement.appendChild(container); - } else { - document.querySelector('#it-dim').style.opacity = parseInt(Number(value)) / 100 || 0; - } - - if (!document.querySelector('#it-dim-player')) { - var container = document.createElement('div'); - - container.id = 'it-dim-player'; - container.style.opacity = parseInt(Number(value)) / 100 || 0; - - if (document.querySelector('.html5-video-player')) { - document.querySelector('.html5-video-player').appendChild(container); - } - } else { - document.querySelector('#it-dim-player').style.opacity = parseInt(Number(value)) / 100 || 0; - } - } else { - if (document.querySelector('#it-dim')) { - document.querySelector('#it-dim').remove(); - } - - if (document.querySelector('#it-dim-player')) { - document.querySelector('#it-dim-player').remove(); - } - } -}; - - -ImprovedTube.font = function() { - if (this.storage.font) { - if(this.storage.font != 'Default') { - if (!document.querySelector('.it-font-family')) { - var link = document.createElement('link'); - - link.rel = 'stylesheet'; - - document.documentElement.appendChild(link); - } else { - var link = document.querySelector('.it-font-family'); - } - - link.href = '//fonts.googleapis.com/css2?family=' + this.storage.font; - - document.documentElement.style.fontFamily = this.storage.font.replace(/\+/g, ' '); - } - } -}; - - -/*----------------------------------------------------------------------------- -3.0 Themes ------------------------------------------------------------------------------*/ - -ImprovedTube.theme = function() { - var times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); - - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; - } - - if ( - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) && - ( - this.isset(ImprovedTube.storage.default_dark_theme) && ImprovedTube.storage.default_dark_theme !== false - || - this.isset(ImprovedTube.storage.night_theme) && ImprovedTube.storage.night_theme !== false - || - this.isset(ImprovedTube.storage.dawn_theme) && ImprovedTube.storage.dawn_theme !== false - || - this.isset(ImprovedTube.storage.sunset_theme) && ImprovedTube.storage.sunset_theme !== false - || - this.isset(ImprovedTube.storage.desert_theme) && ImprovedTube.storage.desert_theme !== false - || - this.isset(ImprovedTube.storage.plain_theme) && ImprovedTube.storage.plain_theme !== false - || - this.isset(ImprovedTube.storage.black_theme) && ImprovedTube.storage.black_theme !== false - ) - ) { - var PREF_OLD = this.getParams(this.getCookieValueByName('PREF')), - PREF = this.getParams(this.getCookieValueByName('PREF')), - result = ''; - - if (!this.isset(PREF.f6) || this.isset(PREF.f6) && PREF.f6.length !== 3) { - PREF.f6 = '400'; - } else if (PREF.f6.length === 3) { - PREF.f6 = '4' + PREF.f6.substr(1); - } - - for (var i in PREF) { - result += i + '=' + PREF[i] + '&'; - } - - this.setCookie('PREF', result.slice(0, -1)); - - document.documentElement.setAttribute('it-theme', 'true'); - } else { - document.documentElement.removeAttribute('it-theme'); - } -}; - - -ImprovedTube.themeEditor = function() { - if (this.storage.theme_my_colors !== true) { - if (document.querySelector('.it-theme-editor')) { - document.querySelector('.it-theme-editor').remove(); - } - - return false; - } - - var style = document.querySelector('.it-theme-editor') || document.createElement('style'); - - style.className = 'it-theme-editor'; - style.innerText = 'html{' + - '--yt-swatch-textbox-bg:rgba(19,19,19,1)!important;' + - '--yt-swatch-icon-color:rgba(136,136,136,1)!important;' + - '--yt-spec-brand-background-primary:rgba(0,0,0, 0.1) !important;' + - '--yt-spec-brand-background-secondary:rgba(0,0,0, 0.1) !important;' + - '--yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important;' + - '--yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important;' + - '--yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important;' + - '--yt-spec-brand-button-background:rgba(136,136,136,1) !important;' + - '--yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important;' + - '--yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important;' + - '--yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important;' + - '--yt-spec-10-percent-layer:rgba(136,136,136,1) !important;' + - '--yt-swatch-primary:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-swatch-primary-darker:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-brand-background-solid:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-a:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-b:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-c:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-touch-response:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-swatch-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-important-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-input-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-logo-override: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-spec-text-primary:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-primary-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-secondary:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-active-other:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-filled-button-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-call-to-action-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-icon-active:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-link-text:' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-spec-brand-subscribe-button-background:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-wordmark-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-selected-nav-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '}'; - - document.documentElement.appendChild(style); -} - -/*----------------------------------------------------------------------------- ->>> VOLUME MIXER -------------------------------------------------------------------------------- -1.0 Inject ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Inject ------------------------------------------------------------------------------*/ - -ImprovedTube.volumeMixer = function() {}; -/*----------------------------------------------------------------------------- ->>> FUNCTIONS -------------------------------------------------------------------------------- -1.0 ------------------------------------------------------------------------------*/ - -function injectScript(string) { - var script = document.createElement('script'); - - script.textContent = string; - - document.documentElement.appendChild(script); - - script.remove(); -} - -function injectStyle(string, id) { - var style = document.getElementById(id) || document.createElement('style'); - - style.textContent = string; - - document.documentElement.appendChild(style); -} - -ImprovedTube.isset = function(variable) { - if (typeof variable === 'undefined' || variable === null) { - return false; - } - - return true; -}; - -ImprovedTube.getCookieValueByName = function(name) { - var match = document.cookie.match(new RegExp('([; ]' + name + '|^' + name + ')([^\\s;]*)', 'g')); - - if (match) { - var cookie = match[0]; - - return cookie.replace(name + '=', '').replace(' ', ''); - } else - return ''; -}; - -ImprovedTube.getParam = function(query, name) { - var params = query.split('&'), - param = false; - - for (var i = 0; i < params.length; i++) { - params[i] = params[i].split('='); - - if (params[i][0] == name) { - param = params[i][1]; - } - } - - if (param) { - return param; - } else { - return false; - } -}; - -ImprovedTube.getParams = function(query) { - var params = query.split('&'), - result = {}; - - for (var i = 0, l = params.length; i < l; i++) { - params[i] = params[i].split('='); - - result[params[i][0]] = params[i][1]; - } - - return result; -}; - -ImprovedTube.setCookie = function(name, value) { - var date = new Date(); - - date.setTime(date.getTime() + 3.154e+10); - - document.cookie = name + '=' + value + '; path=/; domain=.youtube.com; expires=' + date.toGMTString(); -}; - -ImprovedTube.pageType = function() { - var href = location.href, - type = ''; - - if (location.pathname == '/') { - type = 'home'; - } else if (/\/watch\?/.test(href)) { - type = 'video'; - } else if (/\/channel|user\//.test(href)) { - type = 'channel'; - } - - document.documentElement.setAttribute('it-page-type', type); -}; - - -chrome.runtime.sendMessage({ - enabled: true -}); -/*----------------------------------------------------------------------------- ->>> INJECTION -------------------------------------------------------------------------------- -1.0 Initialization -2.0 Storage listener -3.0 Message listener ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Initialization ------------------------------------------------------------------------------*/ - -chrome.storage.local.get(function(items) { - var content = 'var ImprovedTube={'; - - if (typeof items.player_volume === 'string') { - items.player_volume = Number(items.player_volume); - } - - if (!items.hasOwnProperty('header_position')) { - items.header_position = 'normal'; - } - - if (!items.hasOwnProperty('player_size')) { - items.player_size = 'do_not_change'; - } - - if (items.bluelight === '0') { - items.bluelight = 0; - } - - if (items.dim === '0') { - items.dim = 0; - } - - if (items.custom_js && items.custom_js.length > 0) { - injectScript('try{' + items.custom_js + '} catch (err) { console.error(err); }'); - } - - if (items.custom_css && items.custom_css.length > 0) { - injectStyle(items.custom_css, 'it-custom-css'); - } - - withoutInjection(items); - - content += 'storage:' + JSON.stringify(items); - - for (var key in items) { - document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), items[key]); - } - - for (var key in ImprovedTube) { - content += ',' + key + ':' + ImprovedTube[key]; - } - - content += '};ImprovedTube.init();'; - - injectScript(content); -}); - - -/*----------------------------------------------------------------------------- -2.0 Storage listener ------------------------------------------------------------------------------*/ - -chrome.storage.onChanged.addListener(function(changes) { - for (var key in changes) { - var value = changes[key].newValue; - - if (['watched'].indexOf(key) === -1) { - document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), value); - - injectScript('ImprovedTube.storage[\'' + key + '\']=' + (typeof value === 'boolean' ? value : '\'' + value + '\'') + ';'); - - if (typeof ImprovedTube[key] === 'function') { - injectScript('ImprovedTube.' + key + '();'); - } - - if (key === 'schedule' || key === 'schedule_time_from' || key === 'schedule_time_to') { - injectScript('ImprovedTube.bluelight();'); - injectScript('ImprovedTube.dim();'); - injectScript('ImprovedTube.theme();'); - } - - if (key.indexOf('theme') !== -1){ - injectScript('ImprovedTube.theme();'); - } - - if (key === 'theme_primary_color' || key === 'theme_text_color') { - injectScript('ImprovedTube.themeEditor();'); - } - - if (['custom_css'].indexOf(key) !== -1 && value.length > 0) { - injectStyle(value, 'it-custom-css'); - } else if (document.querySelector('#it-custom-css')) { - document.querySelector('#it-custom-css').remove(); - } - } - } -}); - - -/*----------------------------------------------------------------------------- -3.0 Message listener ------------------------------------------------------------------------------*/ - -chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { - var name = request.name || '', - value = request.value; - - if (name === 'improvedtube-play') { - if (request.id && request.id !== new URL(location.href).searchParams.get('v')) { - injectScript(['if (document.querySelector(".html5-video-player") && !ImprovedTube.focused && ImprovedTube.storage.only_one_player_instance_playing) { document.querySelector(".html5-video-player").pauseVideo();}']); - } - } else if (name == 'request_volume' && document.querySelector('video')) { - sendResponse({ - value: document.querySelector('video').volume * 100 - }); - } else if (name == 'change_volume') { - injectScript(['if(document.querySelector(".html5-video-player")){document.querySelector(".html5-video-player").setVolume(' + request.volume + ');}'], 'improvedtube-mixer-data'); - } else if (name == 'request_playback_speed' && document.querySelector('video')) { - sendResponse({ - value: document.querySelector('video').playbackRate - }); - } else if (name == 'change_playback_speed') { - injectScript(['if(document.querySelector(".html5-video-player video")){document.querySelector(".html5-video-player video").playbackRate = ' + request.playback_speed + ';}'], 'improvedtube-mixer-data'); - } else if (name === 'delete_youtube_cookies') { - var cookies = document.cookie.split(';'); - - for (var i = 0; i < cookies.length; i++) { - var cookie = cookies[i], - eqPos = cookie.indexOf('='), - name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; - - document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; - } - - setTimeout(function() { - location.reload(); - }, 250); - } -}); - -/*----------------------------------------------------------------------------- ->>> MIGRATION -------------------------------------------------------------------------------- -1.0 General - 1.1 Legacy YouTube - 1.2 YouTube Home Page - 1.3 Add «Scroll to top» - 1.4 Hide animated thumbnails - 1.5 Confirmation before closing -2.0 Appearance - 2.1 Header - 2.1.1 Header style - 2.1.2 Improve logo - 2.2 Player - 2.2.1 Annotations - 2.2.2 Cards - 2.2.3 Player size - 2.3 Footer - 2.3.5 Hide footer -3.0 Themes -4.0 Player - 4.1 Quality - 4.2 Volume - 4.3 Playback speed - 4.4 Autoplay - 4.5 Allow 60fps - 4.6 Codec h.264 - 4.7 Subtitles - 4.8 Loudness normalization - 4.9 Mini player - 4.10 Ads - 4.11 Autopause - 4.12 Auto-fullscreen - 4.13 Repeat button - 4.14 Screenshot button - 4.15 Rotate button - 4.16 Popup button -5.0 Playlist - 5.1 Repeat - 5.2 Shuffle -6.0 Channel - 6.1 Default tab - 6.2 Trailer autoplay - 6.3 Hide featured content ------------------------------------------------------------------------------*/ - -chrome.storage.local.get(function(object) { - if (object.migrated !== true) { - for (var key in object) { - var value = object[key]; - - if (value === 'true') { - object[key] = true; - } else if (value === 'false') { - object[key] = false; - } - - /*--------------------------------------------------------------------- - 1.0 General - ---------------------------------------------------------------------*/ - - /*--------------------------------------------------------------------- - 1.1 Legacy YouTube - ---------------------------------------------------------------------*/ - - if (key === 'youtube_version') { - if (value === 'old') { - object.legacy_youtube = true; - } else { - object.legacy_youtube = false; - } - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 1.2 YouTube Home Page - ---------------------------------------------------------------------*/ - else if (key === 'youtube_home_page') { - if (value === 'normal') { - object[key] = '/'; - } else if (value === 'trending') { - object[key] = '/feed/trending'; - } else if (value === 'subscriptions') { - object[key] = '/feed/subscriptions'; - } else if (value === 'history') { - object[key] = '/feed/history'; - } else if (value === 'watch_later') { - object[key] = '/playlist?list=WL'; - } - } - - - /*--------------------------------------------------------------------- - 1.3 Add «Scroll to top» - ---------------------------------------------------------------------*/ - else if (key === 'scroll_to_top') { - if (value === 'true') { - object.add_scroll_to_top = true; - } else { - object.add_scroll_to_top = false; - } - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 1.4 Hide animated thumbnails - ---------------------------------------------------------------------*/ - else if (key === 'play_videos_by_hovering_the_thumbnails') { - if (value === 'false') { - object.hide_animated_thumbnails = true; - } else { - object.hide_animated_thumbnails = false; - } - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 1.5 Confirmation before closing - ---------------------------------------------------------------------*/ - else if (key === 'youtube_prevent_closure') { - if (value === 'true') { - object.confirmation_before_closing = true; - } - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 2.0 Appearance - ---------------------------------------------------------------------*/ - - /*--------------------------------------------------------------------- - 2.1 Header - ---------------------------------------------------------------------*/ - - /*--------------------------------------------------------------------- - 2.1.1 Header style - ---------------------------------------------------------------------*/ - else if (key === 'header') { - if (value === 'top_of_page') { - object.header_position = 'static'; - } else { - object.header_position = value; - } - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 2.1.2 Improve logo - ---------------------------------------------------------------------*/ - else if (key === 'improve_youtube_logo') { - object.header_improve_logo = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 2.2 Player - ---------------------------------------------------------------------*/ - - /*--------------------------------------------------------------------- - 2.2.1 Annotations - ---------------------------------------------------------------------*/ - else if (key === 'annotations') { - object.player_hide_annotations = value; - - delete object[key]; - } - - /*--------------------------------------------------------------------- - 2.2.2 Cards - ---------------------------------------------------------------------*/ - else if (key === 'cards') { - object.player_hide_cards = value; - - delete object[key]; - } - - /*--------------------------------------------------------------------- - 2.2.3 Transparent background - ---------------------------------------------------------------------*/ - else if (key === 'transparent_background') { - object.player_transparent_background = value; - - delete object[key]; - } - - /*--------------------------------------------------------------------- - 2.2.4 Endscreen - ---------------------------------------------------------------------*/ - else if (key === 'endscreen') { - object.player_hide_endscreen = value; - - delete object[key]; - } - - /*--------------------------------------------------------------------- - 2.3 Footer - ---------------------------------------------------------------------*/ - - /*--------------------------------------------------------------------- - 2.3.5 Hide footer - ---------------------------------------------------------------------*/ - else if (key === 'footer') { - object.hide_footer = value === 'hidden' ? true : false; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 3.0 Themes - ---------------------------------------------------------------------*/ - else if (key === 'it_theme') { - object.theme = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.0 Player - ---------------------------------------------------------------------*/ - - /*--------------------------------------------------------------------- - 4.1 Quality - ---------------------------------------------------------------------*/ - else if (key === 'video_quality') { - object.player_quality = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.2 Volume - ---------------------------------------------------------------------*/ - else if (key === 'video_volume') { - object.player_volume = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.3 Playback speed - ---------------------------------------------------------------------*/ - else if (key === 'video_playback_speed') { - object.player_playback_speed = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.4 Autoplay - ---------------------------------------------------------------------*/ - else if (key === 'video_autoplay') { - object.player_autoplay = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.5 Allow 60fps - ---------------------------------------------------------------------*/ - else if (key === 'allow_60fps') { - object.player_60fps = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.6 Video codec h.264 - ---------------------------------------------------------------------*/ - else if (key === 'video_encode') { - object.player_h264 = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.7 Allow subtitles - ---------------------------------------------------------------------*/ - else if (key === 'allow_subtitles') { - object.player_subtitles = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.8 Loudness normalization - ---------------------------------------------------------------------*/ - else if (key === 'allow_loudness') { - object.player_loudness_normalization = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.8 Mini player - ---------------------------------------------------------------------*/ - else if (key === 'mini_player_b') { - object.mini_player = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.9 Ads - ---------------------------------------------------------------------*/ - else if (key === 'allow_video_ads') { - object.player_ads = 'all_videos'; - - delete object[key]; - } else if (key === 'subscribed_channel_player_ads' && value === true) { - object.player_ads = 'subscribed_channels'; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.10 Autopause - ---------------------------------------------------------------------*/ - else if (key === 'video_autopause') { - object.player_autopause = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.11 Auto-fullscreen - ---------------------------------------------------------------------*/ - else if (key === 'video_autofullscreen') { - object.player_autofullscreen = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.12 Repeat button - ---------------------------------------------------------------------*/ - else if (key === 'video_repeat_button') { - object.player_repeat_button = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.13 Screenshot button - ---------------------------------------------------------------------*/ - else if (key === 'screenshot_button') { - object.player_screenshot_button = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.14 Rotate button - ---------------------------------------------------------------------*/ - else if (key === 'video_rotate_button') { - object.player_rotate_button = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.15 Popup button - ---------------------------------------------------------------------*/ - else if (key === 'popup_player_button') { - object.player_popup_button = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 5.0 Playlist - ---------------------------------------------------------------------*/ - - /*--------------------------------------------------------------------- - 5.1 Repeat - ---------------------------------------------------------------------*/ - else if (key === 'playlist_repeat') { - if (value === 'enabled') { - object.playlist_repeat = true; - } else if (value === 'disabled') { - object.playlist_repeat = false; - } - } - - /*--------------------------------------------------------------------- - 5.2 Shuffle - ---------------------------------------------------------------------*/ - else if (key === 'playlist_shuffle') { - if (value === 'enabled') { - object.playlist_repeat = true; - } else if (value === 'disabled') { - object.playlist_repeat = false; - } - } - - - /*--------------------------------------------------------------------- - 6.0 Channel - ---------------------------------------------------------------------*/ - - /*--------------------------------------------------------------------- - 6.1 Default tab - ---------------------------------------------------------------------*/ - else if (key === 'channel_default_page') { - if (value === 'normal') { - object.channel_default_tab = '/'; - } else { - object.channel_default_tab = '/' + value; - } - } - - /*--------------------------------------------------------------------- - 6.2 Trailer autoplay - ---------------------------------------------------------------------*/ - else if (key === 'channel_autoplay') { - object.channel_trailer_autoplay = value; - - delete object[key]; - } - - /*--------------------------------------------------------------------- - 6.3 Hide featured content - ---------------------------------------------------------------------*/ - else if (key === 'channel_featured_content') { - object.channel_hide_featured_content = value; - - delete object[key]; - } - } - - object.migrated = true; - - chrome.storage.local.clear(); - chrome.storage.local.set(object); - } - - if (object.bluelight_removed !== true && (object.bluelight || object.bluelight === 0)) { - object.bluelight_removed = true; - - delete object.bluelight; - - chrome.storage.local.clear(); - chrome.storage.local.set(object); - - location.reload(); - } - - if (object.player_size_migrated !== true && object.player_size) { - object.player_size_migrated = true; - - if ( - [ - 'do_not_change', - 'full_window', - 'fit_to_window', - '240p', - '360p', - '480p', - '576p', - '720p', - '1080p', - '1440p', - '2160p' - ].indexOf(object.player_size) === -1 - ) { - if (object.player_size === 'fit_window') { - object.player_size = 'fit_to_window'; - } else { - object.player_size = 'do_not_change'; - } - } - - chrome.storage.local.clear(); - chrome.storage.local.set(object); - - location.reload(); - } - - if (object.hasOwnProperty('legacy_youtube') && object.legacy_youtube_migration !== true) { - object.legacy_youtube_migration = true; - - if (object.legacy_youtube === true) { - object.legacy_youtube = 'enabled'; - } else if (object.legacy_youtube === false) { - object.legacy_youtube = 'disabled'; - } - - chrome.storage.local.clear(); - chrome.storage.local.set(object); - - location.reload(); - } - - if (object.hasOwnProperty('legacy_youtube') && object.legacy_youtube_migration2 !== true) { - object.legacy_youtube_migration2 = true; - - if (object.legacy_youtube === 'enabled' || object.legacy_youtube === 'enabledForced') { - object.legacy_youtube = true; - } else if (object.legacy_youtube === 'disabled') { - object.legacy_youtube = false; - } - - chrome.storage.local.clear(); - chrome.storage.local.set(object); - - location.reload(); - } -}); -/*----------------------------------------------------------------------------- ->>> MUTATIONS -------------------------------------------------------------------------------- -1.0 Mutations - 1.1 JSON.parse - 1.2 HTMLMediaElement.play -3.0 Player vars -4.0 ytPlayerApplicationCreateMod ------------------------------------------------------------------------------*/ - -document.addEventListener('ImprovedTubePlayVideo', function(event) { - if (chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-play', - id: new URL(location.href).searchParams.get('v') - }); - } -}); - -/*----------------------------------------------------------------------------- -1.0 Mutations ------------------------------------------------------------------------------*/ - -ImprovedTube.mutations = function() { - /*------------------------------------------------------------------------- - 1.1 JSON.parse - -------------------------------------------------------------------------*/ - JSON.parse = (function(original) { - return function(text, reviver, bypass) { - var temp = original.apply(this, arguments); - - if (!bypass && temp && temp.player && temp.player.args) { - temp.player.args = ImprovedTube.changeArgs(temp.player.args); - } - - return temp; - }; - }(JSON.parse)); - - /*------------------------------------------------------------------------- - 1.2 HTMLMediaElement.play - -------------------------------------------------------------------------*/ - HTMLMediaElement.prototype.play = (function(original) { - return function() { - var self = this; - - if (ImprovedTube.videoUrl !== location.href) { - ImprovedTube.allow_autoplay = false; - } - - if ( - ImprovedTube.autoplay() === false && - ImprovedTube.allow_autoplay === false && - this.parentNode.parentNode.classList.contains('ad-showing') === false - ) { - setTimeout(function() { - self.parentNode.parentNode.pauseVideo(); - }); - - return; - } else if (self.paused === true && ImprovedTube.videoUrl !== location.href) { - ImprovedTube.playerUpdate(self.parentNode.parentNode, true); - } - - if (ImprovedTube.videoUrl !== location.href) { - ImprovedTube.videoUrl = location.href; - } - - ImprovedTube.player_loudness_normalization(); - - return original.apply(this, arguments); - } - })(HTMLMediaElement.prototype.play); -}; - - -/*----------------------------------------------------------------------------- -1.0 Change args ------------------------------------------------------------------------------*/ - -ImprovedTube.changeArgs = function(args) { - if (ImprovedTube.isset(args)) { - // Ads - if ( - ImprovedTube.storage.player_ads === 'block_all' || - ImprovedTube.storage.player_ads === 'subscribed_channels' && (args.player_response || '').indexOf('subscribed=1') === -1 - ) { - delete args.ad3_module; - - if (args.player_response) { - var player_response = JSON.parse(args.player_response); - - if (player_response && player_response.adPlacements) { - delete player_response.adPlacements; - delete player_response.playerAds; - - args.player_response = JSON.stringify(player_response); - } - } - } - - // 60 fps - if (ImprovedTube.storage.player_60fps === false && args.adaptive_fmts) { - var key_type = args.adaptive_fmts.indexOf(',') > -1 ? ',' : '%2C', - list = args.adaptive_fmts.split(key_type); - - for (var i = 0; i < list.length; i++) { - var fps = list[i].split(/fps(?:=|%3D)([0-9]{2})/); - - fps = fps && fps[1]; - - if (fps > 30) - list.splice(i--, 1); - } - - args.adaptive_fmts = list.join(key_type); - } - - // SUBTITLES - if (ImprovedTube.storage.player_subtitles === false && args.caption_audio_tracks) { - args.caption_audio_tracks = args.caption_audio_tracks.split(/&d=[0-9]|d=[0-9]&/).join(''); - } - } - - return args; -}; - - -/*----------------------------------------------------------------------------- -3.0 Player vars ------------------------------------------------------------------------------*/ - -ImprovedTube.playerVars = function(original) { - var context = this; - - return function(args) { - var temp; - - args = ImprovedTube.changeArgs(args); - - temp = original.apply(this, arguments); - - return temp; - }; -}; - - -/*----------------------------------------------------------------------------- -4.0 ytPlayerApplicationCreateMod ------------------------------------------------------------------------------*/ - -ImprovedTube.ytPlayerApplicationCreateMod = function(original) { - return function(api_name, config) { - config.args = ImprovedTube.changeArgs(config.args); - - return original.apply(this, arguments); - }; -}; diff --git a/unstable/index.html b/unstable/index.html deleted file mode 100644 index 6942082dd..000000000 --- a/unstable/index.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - ImprovedTube - - - - - - - - - diff --git a/unstable/locale.py b/unstable/locale.py deleted file mode 100644 index d9cf64789..000000000 --- a/unstable/locale.py +++ /dev/null @@ -1,71 +0,0 @@ -# TODO: reduce script length - -import json -import os -import pathlib -import re - -def lowerCamelCase(string): - string = re.sub(r"(-|_)+", " ", string).title().replace(" ", "") - - return string[0].lower() + string[1:] - -def getListOfFiles(dirName): - allFiles = list() - - for entry in os.listdir(dirName): - fullPath = os.path.join(dirName, entry) - - if not os.path.isdir(fullPath): - allFiles.append(fullPath) - - for entry in os.listdir(dirName): - fullPath = os.path.join(dirName, entry) - - if os.path.isdir(fullPath): - allFiles = allFiles + getListOfFiles(fullPath) - - return allFiles - -def addItem(allFiles): - message = input("Enter your message: ") - - for keyFile in allFiles: - with open(keyFile, "r+") as json_file: - data = json.load(json_file) - - data[re.sub(r"[^a-zA-Z0-9]", "", lowerCamelCase(message))] = { - "message": message - } - - json_file.seek(0) - json.dump(data, json_file, indent=4) - json_file.truncate() - -def removeItem(allFiles): - key = input("Enter your key (lowerCamelCase): ") - - for keyFile in allFiles: - with open(keyFile, "r+") as json_file: - data = json.load(json_file) - - if data[key]: - del data[key] - - json_file.seek(0) - json.dump(data, json_file, indent=4) - json_file.truncate() - -allFiles = getListOfFiles("_locales/") - -operation = input("""-------------------------------- -Add item: 1 -Remove item: 2 --------------------------------- - -Enter number: """) - -if operation == "1": - addItem(allFiles) -elif operation == "2" : - removeItem(allFiles) diff --git a/unstable/manifest.json b/unstable/manifest.json deleted file mode 100644 index 5b4a11727..000000000 --- a/unstable/manifest.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "manifest_version": 2, - "name": "Improve YouTube! (Open-Source for YouTube)", - "short_name" : "ImprovedTube", - "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", - "version": "3.300", - "version_name": "3.300-unstable", - - "default_locale": "en", - - "icons": { - "16": "assets/icons/16.png", - "32": "assets/icons/32.png", - "48": "assets/icons/48.png", - "128": "assets/icons/128.png" - }, - - "browser_action": { - "default_icon": { - "16": "assets/icons/16g.png", - "32": "assets/icons/32g.png", - "48": "assets/icons/48g.png", - "128": "assets/icons/128g.png" - }, - "default_popup": "index.html" - }, - - "options_page": "options.html", - - "content_scripts": [{ - "all_frames": true, - "css": [ - "content-scripts.css" - ], - "js": [ - "content-scripts.js" - ], - "matches": [ - "https://www.youtube.com/*" - ], - "exclude_matches": [ - "https://www.youtube.com/improvedtube", - "https://www.youtube.com/tv*", - "https://www.youtube.com/audiolibrary/*", - "http://studio.youtube.com/*" - ], - "run_at": "document_start" - }, { - "all_frames": true, - "css": [ - "satus.css", - "popup.css" - ], - "js": [ - "satus.js", - "popup.js" - ], - "matches": [ - "https://www.youtube.com/improvedtube" - ], - "run_at": "document_end" - }, { - "all_frames": true, - "js": [ - "page.js" - ], - "matches": [ - "https://www.youtube.com/improvedtube" - ], - "run_at": "document_start" - }], - - "background": { - "persistent": false, - "scripts": [ - "background.js" - ] - }, - - "optional_permissions": [ - "downloads", - "https://*.youtube.com/*" - ], - - "permissions": [ - "https://www.youtube.com/", - "contextMenus", - "storage" - ], - - "offline_enabled": true, - - "update_url": "https://clients2.google.com/service/update2/crx", - "content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'" -} diff --git a/unstable/options.html b/unstable/options.html deleted file mode 100644 index 034dd3683..000000000 --- a/unstable/options.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - ImprovedTube - - - - - - - - diff --git a/unstable/page.js b/unstable/page.js deleted file mode 100644 index 1e2cc1621..000000000 --- a/unstable/page.js +++ /dev/null @@ -1,16 +0,0 @@ -document.documentElement.innerHTML = ` - - - - - - ImprovedTube - - - - - - - - -`; diff --git a/unstable/popup.css b/unstable/popup.css deleted file mode 100644 index 2ca3067b5..000000000 --- a/unstable/popup.css +++ /dev/null @@ -1,1651 +0,0 @@ - -/*--------------------------------------------------------------- ->>> THEMES ------------------------------------------------------------------ -# Default -# Red -# Dark -# Night -# Dawn -# Sunset -# Desert -# Plain -# Black -# Red ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# DEFAULT ----------------------------------------------------------------*/ - -html -{ - --satus-theme-primary: #f6b465; -} - - -/*--------------------------------------------------------------- -# RED ----------------------------------------------------------------*/ - -html[stable-version] -{ - --satus-theme-primary: #ED213A; -} - -html:not([it-improvedtube-home='list'])[stable-version] .satus-main__container[data-appearance='home'] .satus-button:not(.satus-button--ad) svg -{ - background: linear-gradient(135deg, #ED213A, #93291E); - box-shadow: 0 2px 1px 1px rgba(147, 41, 30, 0.7), 0 3px 5px rgba(0,0,0,.35); -} - - -/*--------------------------------------------------------------- -# DARK ----------------------------------------------------------------*/ - -html[theme="dark"] -{ - --satus-theme-primary: #f6b465; - - --satus-theme-dialog: #2c2b2c; - --satus-theme-dialog-text: #b5b5b5; - - --satus-theme-header: #343334; - --satus-theme-header-text: #b5b5b5; - - --satus-theme-main: #2c2b2c; - --satus-theme-main-text: #b5b5b5; - - --satus-theme-section: #343334; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-shortcut: #444; - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - -/*--------------------------------------------------------------- -# NIGHT ----------------------------------------------------------------*/ - -html[theme="night"] -{ - --satus-theme-primary: #f6b465; - - --satus-theme-dialog: #61a7f5; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #61a7f5; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #3a48b4; - --satus-theme-main-text: #fafafa; - - --satus-theme-section: #61a7f5; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-shortcut: #444; - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -# DAWN ----------------------------------------------------------------*/ - -html[theme="dawn"] -{ - --satus-theme-primary: #f6b465; - - --satus-theme-dialog: #ffba99; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #ffba99; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #ed74a9; - --satus-theme-main-text: #eee; - - --satus-theme-section: #ffba99; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-shortcut: #444; - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -# SUNSET ----------------------------------------------------------------*/ - -html[theme="sunset"] -{ - --satus-theme-primary: #f6b465; - - --satus-theme-dialog: #a96165; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #a96165; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #2f3364; - --satus-theme-main-text: #eee; - - --satus-theme-section: #a96165; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-shortcut: #444; - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -# DESERT ----------------------------------------------------------------*/ - -html[theme="desert"] -{ - --satus-theme-primary: #f6b465; - - --satus-theme-dialog: #9dc2ee; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #9dc2ee; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #ffe498; - --satus-theme-main-text: #eee; - - --satus-theme-section: #9dc2ee; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-shortcut: #444; - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -# PLAIN ----------------------------------------------------------------*/ - -html[theme="plain"] -{ - --satus-theme-primary: #f6b465; - - --satus-theme-dialog: #abceb8; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #abceb8; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #dea975; - --satus-theme-main-text: #eee; - - --satus-theme-section: #abceb8; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-shortcut: #444; - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -# BLACK ----------------------------------------------------------------*/ - -html[theme="black"] -{ - --satus-theme-primary: #f6b465; - - --satus-theme-dialog: #222; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #222; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #111; - --satus-theme-main-text: #eee; - - --satus-theme-section: #222; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-shortcut: #444; - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} -/*--------------------------------------------------------------- ->>> INDEX ------------------------------------------------------------------ -# Fonts -# Basic ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# FONTS ----------------------------------------------------------------*/ - -@font-face -{ - font-family: 'Open Sans'; - - src: url('assets/fonts/OpenSans-Regular.ttf'); -} - -@font-face -{ - font-family: 'Open Sans'; - font-weight: 600; - - src: url('assets/fonts/OpenSans-SemiBold.ttf'); -} - -@font-face -{ - font-family: 'Xanh Mono'; - - src: url('assets/fonts/XanhMono-Regular.ttf'); -} - - -/*--------------------------------------------------------------- -# BASIC ----------------------------------------------------------------*/ - -body -{ - font-family: 'Open Sans', sans-serif; - font-size: 14px; - - display: flex; - overflow: hidden; - flex-direction: column; - - margin: 0; - - background-color: var(--satus-theme-main); -} - -body.improvedtube-page -{ - width: 100vw; - height: 100vh; -} - -/*--------------------------------------------------------------- ->>> HEADER: ------------------------------------------------------------------ -1.0 Title -3.0 Right section -4.0 Search ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -2.0 TITLE ----------------------------------------------------------------*/ - -html[it-title-version='true'] body[data-appearance='home'] .satus-text--title::after -{ - font: 700 10px sans-serif; - - margin: 0 0 0 4px; - - content: attr(data-version); - - opacity: .6; - color: var(--satus-theme-header-text); -} - - -/*--------------------------------------------------------------- -3.0 RIGHT SECTION ----------------------------------------------------------------*/ - -.satus-section--align-end -{ - justify-content: flex-end; -} - -.satus-section--align-end .satus-button + .satus-button -{ - margin-left: 8px; -} - - -/*--------------------------------------------------------------- -4.0 SEARCH ----------------------------------------------------------------*/ - -.satus-dialog--search -{ - pointer-events: none; -} - -.satus-dialog--search .satus-dialog__scrim -{ - display: none; -} - -.satus-dialog--search .satus-dialog__surface -{ - position: fixed; - top: 11px; - right: 8px; - - visibility: unset; - - width: calc(100% - 62px); - min-width: unset; - max-width: unset; - height: 34px; - padding: 0; - - transform: unset; - animation: unset; - pointer-events: all; - - opacity: unset; - border: 1px solid rgba(0,0,0,.05); - box-shadow: unset; -} - -.satus-dialog--search .satus-dialog__surface .satus-text-field -{ - height: 34px; -} - -.satus-dialog--search .satus-dialog__surface .satus-button -{ - position: absolute; - top: 3px; - right: 3px; - - overflow: hidden; - - width: 32px; - height: 32px; - - border-radius: 50%; -} - -.satus-dialog--search .satus-dialog__surface .satus-button svg -{ - fill: unset; - stroke: currentColor; -} - -body[data-appearance='search'] .satus-switch--red, -body[data-appearance='search'] .satus-switch--dark, -body[data-appearance='search'] .satus-switch--night, -body[data-appearance='search'] .satus-switch--dawn, -body[data-appearance='search'] .satus-switch--sunset, -body[data-appearance='search'] .satus-switch--desert, -body[data-appearance='search'] .satus-switch--plain, -body[data-appearance='search'] .satus-switch--black -{ - width: calc(100% - 16px); - margin: 4px 8px; - - border-radius: 6px; -} - -body[data-appearance='search'] .satus-switch--red .satus-switch__label, -body[data-appearance='search'] .satus-switch--dark .satus-switch__label, -body[data-appearance='search'] .satus-switch--night .satus-switch__label, -body[data-appearance='search'] .satus-switch--dawn .satus-switch__label, -body[data-appearance='search'] .satus-switch--sunset .satus-switch__label, -body[data-appearance='search'] .satus-switch--black .satus-switch__label -{ - color: #fff; -} - -body[data-appearance='search'] .satus-switch--plain .satus-switch__label, -body[data-appearance='search'] .satus-switch--desert .satus-switch__label -{ - color: #222; -} - -/*--------------------------------------------------------------- ->>> MAIN ------------------------------------------------------------------ -# Ad ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# AD ----------------------------------------------------------------*/ - -.satus-main .satus-button.satus-button--ad -{ - position: absolute; - z-index: 99; - bottom: 16px; - left: 16px; - - overflow: hidden; - - width: 268px; - height: 38px; - height: 80px; - padding: 8px 16px; - - color: var(--satus-theme-main-text); - border-radius: 8px; - background: #0f1911; - box-shadow: 0 0 3px rgba(0,0,0,.1); - - align-items: center; - justify-content: space-between; -} - -.satus-button--ad .satus-button__label -{ - font-family: 'Xanh Mono', monospace; - font-size: 22px; - - letter-spacing: 1px; - - color: rgba(255,255,255,.9); - text-shadow: 2px 1px 2px rgba(0,0,0,.6); -} - -@keyframes satusSwitchDark -{ - 0% - { - transform: translate(0, 0); - } - 33% - { - transform: translate(20px, 10px); - } - 66% - { - transform: translate(10px, -10px); - } - 100% - { - transform: translate(0, 0); - } -} - -.satus-button--ad::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - animation-name: satusSwitchDark; - animation-duration: 8s; - animation-timing-function: linear; - animation-iteration-count: infinite; - pointer-events: none; - - background: radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%) !important; - background-repeat: no-repeat !important; - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px !important; - background-size: 50px 50px, 50px 50px, 100px 100px, 75px 75px !important; - - filter: blur(8px); -} - -html[it-improvedtube-home='list'] .satus-main .satus-button.satus-button--ad -{ - position: relative; - top: 0; - left: 0; - - margin: 16px; -} - -.satus-button--ad:after -{ - position: absolute; - top: 0; - left: -100%; - - width: 100%; - height: 100%; - - content: ''; - transition: .5s; - transition-delay: .2s; - - background: linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent); -} - -.satus-button--ad:hover:after -{ - left: 100%; -} - -/*--------------------------------------------------------------- ->>> HOME ------------------------------------------------------------------ -1.0 ----------------------------------------------------------------*/ - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-section -{ - display: flex; - - width: 100%; - margin-top: 16px; - padding: 0; - - border: none; - border-radius: 0; - background-color: transparent; - - flex-wrap: wrap; -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button:not(.satus-button--ad) -{ - position: relative; - - flex-direction: column; - - width: 64px; - height: 86px; - margin: 0 18px 14px; - padding: 0; - - cursor: default; -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button:not(.satus-button--ad):focus, -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button:not(.satus-button--ad):hover -{ - background-color: transparent; -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button__label -{ - margin-left: 0; -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button:not(.satus-button--ad) svg, -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--shortcut__icon -{ - display: block; - overflow: visible; - - width: 28px; - height: 28px; - margin: 0 0 5px 0; - padding: 16px; - - cursor: pointer; - transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; - - opacity: .95; - border-radius: 50%; - background: linear-gradient(135deg, #f8d266, #f17953); - box-shadow: 0 2px 1px 1px rgba(230, 109, 70, .7), 0 3px 5px rgba(0,0,0,.35); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button:not(.satus-button--ad) svg:focus, -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button:not(.satus-button--ad) svg:hover -{ - transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; - transform: translateY(4px) scale(.975); - - box-shadow: 0 1px 1px 0 rgba(230, 109, 70, .7), 0 1px 2px rgba(0,0,0,.35); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--general svg -{ - width: 26px; - height: 26px; - padding: 19px 17px 15px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--appearance svg -{ - width: 26px; - height: 26px; - padding: 19px 17px 15px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--themes svg -{ - padding: 17px 16px 15px 16px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--player svg -{ - width: 26px; - height: 26px; - padding: 19px 15px 15px 19px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--playlist svg -{ - padding: 17px 16px 15px 16px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--channel svg -{ - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--shortcut svg -{ - width: 26px; - height: 26px; - padding: 19px 17px 15px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--mixer svg -{ - padding: 17px 16px 15px 16px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--blacklist svg -{ - width: 26px; - height: 26px; - padding: 18px 17px 16px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--analyzer svg -{ - width: 26px; - height: 26px; - padding: 18px 17px 16px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-button:not(.satus-button--ad) svg -{ - fill: transparent; - stroke: var(--satus-theme-primary); -} - - - -html[it-it-general='false'] .satus-button--general, -html[it-it-appearance='false'] .satus-button--appearance, -html[it-it-themes='false'] .satus-button--themes, -html[it-it-player='false'] .satus-button--player, -html[it-it-playlist='false'] .satus-button--playlist, -html[it-it-channel='false'] .satus-button--channel, -html[it-it-shortcuts='false'] .satus-button--shortcut, -html[it-it-blacklist='false'] .satus-button--blacklist, -html[it-it-analyzer='false'] .satus-button--analyzer -{ - display: none; -} - -/*--------------------------------------------------------------- ->>> APPEARANCE ----------------------------------------------------------------*/ - -.satus-main__container[data-appearance='appearance'] .satus-button -{ - position: absolute; - - box-sizing: border-box; - padding: 0; - - transition-duration: .5s; - transition-property: transform, box-shadow; - transform: scale(1); - text-align: center; - - border: 1px solid var(--main-appearance-shadow, #dfdfdf); - border-radius: 6px; - box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0); - - background: var(--satus-theme-section); - - justify-content: center; - align-items: center; -} - -.satus-main__container[data-appearance='appearance'] .satus-button:hover -{ - z-index: 9; - - transition-duration: .25s; - transform: scale(1.03) translate(-8px, -4px); - - box-shadow: 1px 1px 0 0 var(--main-appearance-shadow, #dfdfdf), 2px 2px 0 0 var(--main-appearance-shadow, #dfdfdf), 3px 3px 0 0 var(--main-appearance-shadow, #dfdfdf), 4px 4px 0 0 var(--main-appearance-shadow, #dfdfdf), 5px 6px 4px 0 rgba(0, 0, 0, .1); -} - -.satus-main__container[data-appearance='appearance'] .satus-button--header -{ - top: 16px; - left: 16px; - - width: calc(100% - 32px); - height: 40px; - min-height: auto; -} - -.satus-main__container[data-appearance='appearance'] .satus-button--header:hover -{ - transform: scale(1.03) translate(-9px, -4px); -} - -.satus-main__container[data-appearance='appearance'] .satus-button--player -{ - top: 64px; - left: 16px; - - width: calc(70% - 32px); - height: 96px; - min-height: auto; - - color: #eee; - border-color: #333; - background-color: #444; -} - -.satus-main__container[data-appearance='appearance'] .satus-button--player .label -{ - color: #fff; -} - -.satus-main__container[data-appearance='appearance'] .satus-button--player:hover -{ - transform: scale(1.03) translate(-7px, -4px); - - box-shadow: 1px 1px 0 0 #333, 2px 2px 0 0 #333, 3px 3px 0 0 #333, 4px 4px 0 0 #333, 5px 6px 4px 0 rgba(0, 0, 0, .1); -} - -.satus-main__container[data-appearance='appearance'] .satus-button--details -{ - top: 168px; - left: 16px; - - width: calc(70% - 32px); - height: 56px; - min-height: auto; -} - -.satus-main__container[data-appearance='appearance'] .satus-button--description -{ - top: 13.5rem; - left: 1rem; - - width: calc(70% - 2rem); - height: 3.5rem; - min-height: 3.5rem; -} - -.satus-main__container[data-appearance='appearance'] .satus-button--comments -{ - top: 232px; - left: 16px; - - width: calc(70% - 32px); - height: 80px; - min-height: auto; - - background: var(--satus-theme-section) -} - -.satus-main__container[data-appearance='appearance'] .satus-button--footer -{ - top: 320px; - left: 16px; - - width: calc(70% - 32px); - height: 64px; - min-height: auto; - - background: var(--satus-theme-section) -} - -.satus-main__container[data-appearance='appearance'] .satus-button--sidebar -{ - top: 64px; - left: calc(70% - 8px); - - width: calc(30% - 8px); - height: 160px; -} - -/*----------------------------------------------------------------------------- -# THEMES CATEGORY ------------------------------------------------------------------------------*/ - -.satus-main__container[data-appearance='themes'] .satus-switch:first-child -{ - margin-top: 16px; -} - -.satus-main__container[data-appearance='themes'] .satus-switch:last-child -{ - margin-bottom: 16px; -} - -.satus-main__container[data-appearance='themes'] .satus-switch -{ - width: calc(100% - 16px); - max-width: 900px; - height: 80px; - margin: 8px auto; - - border-radius: 8px; -} - -.satus-main__container[data-appearance='themes'] .satus-switch__label -{ - font-size: 15px; - font-weight: 500; - - color: #eee; - text-shadow: 0 1px 3px rgba(0, 0, 0, .7); -} - -.satus-switch--dark -{ - position: relative; - - overflow: hidden; - - background: linear-gradient(#0d1216, #353d46) !important; -} - -.satus-switch--dark::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - animation-name: satus-switch--dark; - animation-duration: 4s; - animation-timing-function: ease-in-out; - animation-iteration-count: infinite; - pointer-events: none; - - background: radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%) !important; - background-repeat: no-repeat !important; - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px !important; - background-size: 50px 50px, 50px 50px, 100px 100px, 75px 75px !important; - - filter: blur(8px); -} - -@keyframes satus-switch--dark -{ - 0% - { - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; - } - - 50% - { - background-position: 20px 20px, 230px -20px, 0 -40px, 160px 10px; - } - - 100% - { - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; - } -} - -.satus-switch--night -{ - position: relative; - - overflow: hidden; - - animation-name: satus-switch--night; - animation-duration: .75s; - animation-iteration-count: infinite; - - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5) !important; - background-repeat: no-repeat !important; - background-position: 75% 80%, 35% 65%, 30% 10%, 50% 40%, 10% 80%, 90% 10%, 0 0 !important; - background-size: 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, auto !important; -} - -@keyframes satus-switch--night -{ - 0% - { - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } - - 25% - { - background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } - - 50% - { - background-image: radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .9) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } - - 75% - { - background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } - - 100% - { - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } -} - -.satus-switch--dawn -{ - position: relative; - - overflow: hidden; - - background: linear-gradient(#ed74a9, #ffba99) !important; -} - -.satus-switch--dawn::before -{ - position: absolute; - right: 1rem; - bottom: -5rem; - - width: 10rem; - height: 10rem; - - content: ''; - animation-name: satus-switch--dawn; - animation-duration: .75s; - animation-iteration-count: infinite; - pointer-events: none; - - border-radius: 50%; - background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; -} - -@keyframes satus-switch--dawn -{ - 0% - { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); - } - - 50% - { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, - rgba(255, 255, 231, .30) 20%, - rgba(255, 255, 231, .30) 35%, - rgba(255, 255, 231, .20) 35%, - rgba(255, 255, 231, .20) 55%, - rgba(255, 255, 231, .10) 55%, - rgba(255, 255, 231, .10) 75%, transparent 75%); - } - - 100% - { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); - } -} - -.satus-switch--sunset -{ - position: relative; - - overflow: hidden; - - background: linear-gradient(#2f3364, #a96165) !important; -} - -.satus-switch--sunset::before -{ - position: absolute; - top: -1rem; - left: 50%; - - overflow: hidden; - - width: 8rem; - height: 8rem; - - content: ''; - transform: translate(-50%, 0%); - pointer-events: none; - - border-radius: 50%; - background: linear-gradient(#fa7965, #f56264, transparent) !important; -} - -.satus-switch--desert -{ - position: relative; - - overflow: hidden; - - background-image: radial-gradient(#ffe498 50%, transparent 50%), - linear-gradient(#9dc2ee, #f5fdff) !important; - background-repeat: no-repeat !important; - background-position: -120px 36px, 0 !important; - background-size: 240%, 100% !important; -} - -.satus-switch--desert::before -{ - position: absolute; - top: -100%; - left: 40%; - - width: 10rem; - height: 10rem; - - content: ''; - animation-name: satus-switch--desert; - animation-duration: .75s; - animation-delay: .5s; - animation-iteration-count: infinite; - pointer-events: none; - - border-radius: 50%; - background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; -} - -@keyframes satus-switch--desert -{ - 0% - { - background: radial-gradient(#fefefe 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); - } - - 50% - { - background: radial-gradient(#fefefe 20%, - rgba(255, 255, 231, .30) 20%, - rgba(255, 255, 231, .30) 35%, - rgba(255, 255, 231, .20) 35%, - rgba(255, 255, 231, .20) 55%, - rgba(255, 255, 231, .10) 55%, - rgba(255, 255, 231, .1) 75%, transparent 75%); - } - - 100% - { - background: radial-gradient(#fefefe 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); - } -} - -.satus-switch--plain -{ - position: relative; - - overflow: hidden; - - background-image: radial-gradient(#dea975 50%, transparent 50%), - radial-gradient(#e8b887 50%, transparent 50%), - radial-gradient(#f1cc9f 50%, transparent 50%), - radial-gradient(#f3ddb8 50%, transparent 50%), - linear-gradient(#abceb8, #e7ede1) !important; - background-repeat: no-repeat !important; - background-position: -50px 50px, -370px 40px, 0 36px, -360px 26px, 0 !important; - background-size: 240%, 240%, 240%, 240%, 100% !important; -} - -.satus-switch--plain::before -{ - position: absolute; - top: -70%; - left: 10%; - - width: 7rem; - height: 7rem; - - content: ''; - animation-name: satus-switch--plain; - animation-duration: .75s; - animation-delay: .2s; - animation-iteration-count: infinite; - pointer-events: none; - - border-radius: 50%; - background: radial-gradient(#fff 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; -} - -.satus-switch--black -{ - background: #000 !important; -} - -/*--------------------------------------------------------------- ->>> PLAYER ----------------------------------------------------------------*/ - -#forced-playback-speed + *, -#forced-volume + * -{ - pointer-events: none; - - opacity: .5; -} - -[it-player-forced-playback-speed=true] #forced-playback-speed + *, -[it-player-forced-volume=true] #forced-volume + * -{ - pointer-events: all; - - opacity: 1; -} - -/*----------------------------------------------------------------------------- -# BLACKLIST CATEGORY ------------------------------------------------------------------------------*/ - -.satus-section.satus-section--blacklist -{ - position: relative; - - overflow: hidden; - flex-direction: column; - - width: calc(100% - 32px); - height: 116px; - margin: 8px 16px 0; - - transition: opacity .25s; - - opacity: 1; - border-radius: 10px; - background-color: #000; - background-position: center; - background-size: cover; - - flex: unset; - align-items: flex-start; -} - -.satus-section.satus-section--blacklist.removing -{ - opacity: 0; -} - -.satus-section.satus-section--blacklist::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - margin: 0; - - content: ''; - - background: rgba(0, 0, 0, .5); -} - -.satus-section.satus-section--blacklist > .label -{ - font-size: 16px; - font-weight: 700; - - position: absolute; - z-index: 1; - bottom: 28px; - - text-transform: uppercase; - - opacity: 1; - color: #fff; -} - -.satus-section.satus-section--blacklist::after -{ - position: absolute; - z-index: 1; - bottom: 16px; - left: 16px; - - content: attr(data-label); - - color: rgba(255, 255, 255, .5); -} - -.satus-section.satus-section--blacklist > .satus-section -{ - position: absolute; - z-index: 999; - bottom: 0; - - visibility: hidden; - - width: 100%; - margin: 0; - padding: 0; - - transition: .15s; - - opacity: 0; - border: none; - border-radius: 0; - background: rgba(255, 255, 255, .95); - - justify-content: center; -} - -.satus-section.satus-section--blacklist:hover > .satus-section -{ - visibility: visible; - - opacity: 1; -} -/*----------------------------------------------------------------------------- -# ANALYZER CATEGORY ------------------------------------------------------------------------------*/ - -.analyzer-top-text -{ - font-size: 13px; - - display: flex; - - box-sizing: border-box; - margin: 16px 0 0; - padding: 0 16px; - - background: transparent !important; - - justify-content: space-between; -} - -.analyzer-watch-time -{ - text-transform: uppercase; -} - -.analyzer-today-at -{ - box-sizing: border-box; -} - -.analyzer-container -{ - box-sizing: border-box; - margin: 8px 0 16px; - padding: 16px; - - background: var(--background-0) !important; - box-shadow: 0 0 2px rgba(0, 0, 0, .2); -} - -.analyzer-all-time -{ - font-size: 24px; - font-weight: 400; - - margin-bottom: 8px; - - color: #4c4c4c; -} - -.analyzer-chart -{ - position: relative; - - display: flex; - overflow: hidden; - - box-sizing: border-box; - height: 140px; - margin: 8px 0; - - border-bottom: 1px solid #ccc; - - justify-content: space-between; -} - -.analyzer-chart::before -{ - position: absolute; - top: -78%; - left: -15%; - - width: 125%; - height: 250%; - - content: ''; - transform: rotate(-45deg); - - background: linear-gradient(transparent 50%, rgba(0, 0, 0, .05) 50%); - background-size: 4px 4px; -} - -.analyzer-column -{ - z-index: 1; - - display: flex; - - border-right: 1px solid #ccc; - - flex: 1; -} - -.analyzer-column:first-child -{ - border-left: 1px solid #ccc; -} - -.analyzer-data-column -{ - display: flex; - flex-direction: column; - - justify-content: flex-end; - flex: 1; -} - -.analyzer-data -{ - height: 20px; - margin: 0 1px; - - background-color: #c5c5c5; -} - -.analyzer-data.first -{ - background-color: #1c00db; - - order: 3; -} - -.analyzer-data.second -{ - background-color: #4dd0e1; - - order: 2; -} - -.analyzer-data.third -{ - background-color: #ff9800; - - order: 1; -} - -/*.analyzer-data:first-child -{ - border-top-left-radius: 4px; - border-top-right-radius: 4px; -}*/ -.analyzer-bottom -{ - display: flex; - - margin: 14px 0 0; - - justify-content: space-between; -} - -.analyzer-bottom > div .label -{ - margin: 0 0 2px; -} - -.analyzer-bottom > div:first-child .label -{ - color: #1c00db; -} - -.analyzer-bottom > div:nth-child(2) .label -{ - color: #4dd0e1; -} - -.analyzer-bottom > div:nth-child(3) .label -{ - color: #ff9800; -} - -/*----------------------------------------------------------------------------- -# MIXER CATEGORY ------------------------------------------------------------------------------*/ - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer -{ - position: relative; - - overflow: hidden; - flex-direction: column; - - width: calc(100% - 32px); - height: 128px; - margin: 8px 16px 0; - - border: unset; - border-radius: 10px; - - flex: unset; - align-items: flex-start; -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - - background: rgba(0, 0, 0, .5); -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer > .satus-section -{ - position: absolute; - bottom: 0; - - visibility: hidden; - - width: 100%; - margin: 0; - padding: 0; - - transition: 200ms; - transform: translateY(32px); - - opacity: 0; - border: unset; - border-radius: unset; -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer:hover > .satus-section -{ - visibility: visible; - - transform: translateY(0); - - opacity: 1; -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer.noconnection > .satus-section > div -{ - visibility: hidden; - - pointer-events: none; -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer.noconnection > .satus-section::after -{ - font-size: 18px; - font-weight: 500; - - position: absolute; - top: 50%; - - width: 100%; - - content: attr(data-no-connection-label); - transform: translateY(-50%); - text-align: center; - - opacity: .8; -} -.satus-main__container[data-appearance='about'] .satus-text -{ - display: flex; - - box-sizing: border-box; - width: 100%; - min-height: 48px; - padding: 0 16px; - - justify-content: space-between; - align-items: center; -} - -.satus-main__container[data-appearance='about'] .satus-text__value -{ - text-align: right; - - opacity: .7; -} diff --git a/unstable/popup.js b/unstable/popup.js deleted file mode 100644 index bf6ab8dc8..000000000 --- a/unstable/popup.js +++ /dev/null @@ -1,3100 +0,0 @@ - -var Menu = { - header: { - type: 'header', - - section_start: { - type: 'section', - class: 'satus-section--align-start', - - button_back: { - type: 'button', - class: 'satus-button--back', - before: '', - onclick: function() { - if (document.querySelector('.satus-dialog__scrim')) { - document.querySelector('.satus-dialog__scrim').click(); - } else { - document.querySelector('.satus-main').back(); - } - } - }, - title: { - type: 'text', - class: 'satus-text--title', - innerText: 'ImprovedTube', - dataset: { - version: chrome && chrome.runtime && chrome.runtime.getManifest ? chrome.runtime.getManifest().version : '' - } - } - }, - section_end: { - type: 'section', - class: 'satus-section--align-end', - - button_search: { - type: 'button', - before: '', - onclick: function() { - document.querySelector('.satus-main').open({ - appearanceKey: 'search' - }, function() { - satus.render({ - type: 'dialog', - class: 'satus-dialog--search', - onclose: function() { - document.querySelector('.satus-main').back(); - }, - - input: { - type: 'text-field', - placeholder: 'search', - oninput: function() { - if (this.value.length > 0) { - satus.search(this.value, Menu, function(results) { - var sorted_results = []; - - document.querySelector('.satus-main__container').innerHTML = ''; - - for (var key in results) { - results[key].type = 'section'; - results[key].variant = 'card'; - - sorted_results.push({ - type: 'text', - label: key, - variant: 'section-label' - }); - sorted_results.push(results[key]); - } - - var scroll = satus.components.scrollbar(document.querySelector('.satus-main__container')); - - satus.render(sorted_results, scroll); - }, true); - } else { - document.querySelector('.satus-main__container').innerHTML = ''; - - satus.render({}, document.querySelector('.satus-main__container')); - } - } - } - }); - }); - } - }, - button_vert: { - type: 'button', - before: '', - onclick: { - type: 'dialog', - class: 'satus-dialog--vertical-menu', - - email: { - type: 'button', - variant: 'list-item', - label: 'Email', - title: 'bugs@improvedtube.com', - before: '', - onclick: function() { - window.open('mailto:bugs@improvedtube.com', '_blank'); - } - }, - github: { - type: 'button', - variant: 'list-item', - label: 'GitHub', - title: '/ImprovedTube/ImprovedTube', - before: '', - onclick: function() { - window.open('https://github.com/ImprovedTube/ImprovedTube/', '_blank'); - } - }, - website: { - type: 'button', - variant: 'list-item', - label: 'Website', - title: 'improvedtube.com', - before: '', - onclick: function() { - window.open('http://www.improvedtube.com/', '_blank'); - } - } - } - } - } - } -}; - -Menu.main = { - type: 'main', - appearanceKey: 'home', - onchange: function() { - document.querySelector('.satus-text--title').innerText = satus.locale.getMessage(this.history[this.history.length - 1].label) || 'ImprovedTube'; - }, - - section: { - type: 'section', - variant: 'card' - }, - - footer: { - type: 'button', - class: 'satus-button--ad', - label: 'DARK MODE', - title: 'Dark Mode', - onclick: function() { - window.open('https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl', '_blank'); - } - } -}; - -Menu.header.section_end.button_vert.onclick.active_features = { - type: 'button', - variant: 'list-item', - before: '', - label: 'activeFeatures', - onclick: function() { - document.querySelector('.satus-dialog__scrim').click(); - }, - - section: { - type: 'section', - onrender: function() { - var component = this, - new_menu = {}, - storage = satus.storage; - - function search(string, object) { - var result = []; - - for (var i in object) { - if (object[i].type) { - if (/(button|select|shortcut|slider|switch)/.test(object[i].type)) { - if (i.indexOf(string) !== -1 || (object[i].tags && object[i].tags.indexOf(string) !== -1)) { - if (object[i].type.indexOf('button') === -1 || !object[i].label) { - new_menu[i] = object[i]; - } - } - } else { - var response = search(string, object[i]); - - if (response.length > 0) { - for (var j = 0, l = response.length; j < l; j++) { - result.push(response[i]); - } - } - } - } - } - - return result; - } - - for (var key in storage) { - search(key, Menu) - } - - setTimeout(function() { - if (Object.keys(new_menu).length > 0) { - satus.render(new_menu, component); - } else { - satus.render({ - text: { - type: 'text', - label: 'noActiveFeatures' - } - }, component); - } - }); - } - } -}; - -Menu.header.section_end.button_vert.onclick.mixer = { - type: 'button', - variant: 'list-item', - before: '', - label: 'mixer', - class: 'satus-button--mixer', - appearanceKey: 'mixer', - onopen: function() { - var self = this; - - if (chrome && chrome.tabs) { - chrome.tabs.query({}, function(tabs) { - var mixer = {}; - - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - var tab = tabs[i]; - - if (/(\?|\&)v=/.test(tab.url)) { - mixer[i] = { - type: 'section', - class: 'satus-section--mixer', - style: { - 'background': 'url(https://img.youtube.com/vi/' + tab.url.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '/0.jpg) center center / cover no-repeat #000', - }, - - section: { - type: 'section', - dataset: { - 'noConnectionLabel': satus.locale.getMessage('tryToReloadThePage') || 'tryToReloadThePage' - }, - - mixer_volume: { - type: 'slider', - label: 'volume', - dataset: { - id: tab.id, - element: 'audio' - }, - max: 100, - onrender: function() { - var self = this; - - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'request_volume' - }, function(response) { - if (response) { - document.querySelector('div[data-element="audio"][data-id="' + Number(self.dataset.id) + '"]').change(response.value); - } else { - self.parentNode.parentNode.classList.add('noconnection'); - } - }); - }, - onchange: function(value) { - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'change_volume', - volume: value - }); - } - }, - mixer_playback_speed: { - type: 'slider', - label: 'playbackSpeed', - dataset: { - id: tab.id, - element: 'playback_speed' - }, - min: .1, - max: 8, - step: .05, - onrender: function() { - var self = this; - - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'request_playback_speed' - }, function(response) { - if (response) { - document.querySelector('div[data-element="playback_speed"][data-id="' + Number(self.dataset.id) + '"]').change(Number(response.value)); - } else { - self.parentNode.parentNode.classList.add('noconnection'); - } - }); - }, - onchange: function(value) { - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'change_playback_speed', - playback_speed: value - }); - } - } - } - }; - } - } - } - - if (Object.entries(mixer).length === 0) { - mixer.section = { - type: 'section', - - message: { - type: 'text', - class: 'satus-section--message', - label: 'noOpenVideoTabs' - } - }; - } - - document.querySelector('.satus-dialog__scrim').click(); - - satus.render(mixer, self); - }); - } - } -}; - -Menu.header.section_end.button_vert.onclick.settings = { - type: 'button', - variant: 'list-item', - before: '', - label: 'settings', - parent: '.satus-main__container', - onclick: function() { - document.querySelector('.satus-dialog__scrim').click(); - }, - - section: { - type: 'section', - variant: 'card', - - developer_options: { - type: 'button', - variant: 'list-item', - before: '', - label: 'developerOptions', - - custom_js_section_label: { - type: 'text', - variant: 'section-label', - label: 'customJs' - }, - - custom_js_section: { - type: 'section', - variant: 'card', - - custom_js: { - type: 'text-field', - onrender: function() { - this.value = satus.storage.get('custom_js') || ''; - }, - oninput: function() { - satus.storage.set('custom_js', this.value); - } - } - }, - - custom_css_section_label: { - type: 'text', - variant: 'section-label', - label: 'customCss' - }, - - custom_css_section: { - type: 'section', - variant: 'card', - - custom_css: { - type: 'text-field', - onrender: function() { - this.value = satus.storage.get('custom_css') || ''; - }, - oninput: function() { - satus.storage.set('custom_css', this.value); - } - } - } - }, - }, - - section0: { - type: 'section', - variant: 'card', - - appearance: { - type: 'button', - variant: 'list-item', - before: '', - label: 'appearance', - - general: { - type: 'section', - variant: 'card', - label: 'general', - - header: { - type: 'button', - variant: 'list-item', - label: 'header', - - section: { - type: 'section', - variant: 'card', - - title_version: { - type: 'switch', - label: 'version' - } - } - }, - home: { - type: 'button', - variant: 'list-item', - label: 'home', - - section: { - type: 'section', - variant: 'card', - - improvedtube_home: { - type: 'select', - label: 'style', - options: [{ - label: 'bubbles', - value: 'bubbles' - }, { - label: 'list', - value: 'list' - }] - } - }, - - categories: { - type: 'section', - variant: 'card', - label: 'categories', - - it_general: { - type: 'switch', - label: 'general', - value: true - }, - it_appearance: { - type: 'switch', - label: 'appearance', - value: true - }, - it_themes: { - type: 'switch', - label: 'themes', - value: true - }, - it_player: { - type: 'switch', - label: 'player', - value: true - }, - it_playlist: { - type: 'switch', - label: 'playlist', - value: true - }, - it_channel: { - type: 'switch', - label: 'channel', - value: true - }, - it_shortcuts: { - type: 'switch', - label: 'shortcuts', - value: true - }, - it_mixer: { - type: 'switch', - label: 'mixer', - value: true - }, - it_analyzer: { - type: 'switch', - label: 'analyzer', - value: true - }, - it_blacklist: { - type: 'switch', - label: 'blacklist', - value: true - } - } - } - }, - icons: { - type: 'section', - variant: 'card', - label: 'icons', - - improvedtube_youtube_icon: { - label: 'improvedtubeIconOnYoutube', - type: 'select', - options: [{ - label: 'disabled', - value: 'disabled' - }, { - label: 'youtubeHeaderLeft', - value: 'header_left' - }, { - label: 'youtubeHeaderRight', - value: 'header_right' - }, { - label: 'draggable', - value: 'draggable' - }, { - label: 'belowPlayer', - value: 'below_player' - }] - }, - improvedtube_browser_icon: { - label: 'improvedtubeIconInBrowser', - type: 'select', - - options: [{ - label: 'onlyActiveOnYoutube', - value: 'youtube' - }, { - label: 'alwaysActive', - value: 'always' - }] - } - } - }, - languages: { - type: 'button', - variant: 'list-item', - before: '', - label: 'languages', - - section: { - type: 'section', - variant: 'card', - - language: { - label: 'improvedtubeLanguage', - type: 'select', - onchange: function(name, value) { - satus.locale.messages = {}; - - satus.locale.import(function() { - document.querySelector('.satus-main__container').innerHTML = ''; - - document.querySelector('.satus-header__title').innerText = satus.locale.getMessage('languages'); - document.querySelector('#search').placeholder = satus.locale.getMessage('search'); - - satus.render(document.querySelector('.satus-main__container'), Menu.main.section.settings.section.languages); - }); - }, - options: [{ - value: 'en', - label: 'English' - }, { - value: 'ar', - label: 'العربية' - }, { - value: 'de', - label: 'Deutsch' - }, { - value: 'es', - label: 'Español' - }, { - value: 'fr', - label: 'Français' - }, { - value: 'id', - label: 'Bahasa Indonesia' - }, { - value: 'it', - label: 'Italiano' - }, { - value: 'ja', - label: '日本語' - }, { - value: 'nl', - label: 'Dutch' - }, { - value: 'no', - label: 'Norwegian Bokmål' - }, { - value: 'pt_BR', - label: 'Português (Brasil)' - }, { - value: 'ru', - label: 'Русский' - }, { - value: 'tr', - label: 'Türkçe' - }, { - value: 'zh_CN', - label: '中文 (简体)' - }, { - value: 'zh_TW', - label: '中文 (繁體)' - }] - }, - youtube_language: { - label: 'youtubeLanguage', - type: 'select', - options: [{ - value: "en", - label: "English" - }, { - value: "es", - label: "Español (España)" - }, { - value: "es-419", - label: "Español (Latinoamérica)" - }, { - value: "es-US", - label: "Español (US)" - }, { - value: "ru", - label: "Русский" - }, { - value: "de", - label: "Deutsch" - }, { - value: "pt-PT", - label: "Português" - }, { - value: "pt", - label: "Português (Brasil)" - }, { - value: "fr", - label: "Français" - }, { - value: "pl", - label: "Polski" - }, { - value: "ja", - label: "日本語" - }, { - value: "af", - label: "Afrikaans" - }, { - value: "az", - label: "Azərbaycan" - }, { - value: "id", - label: "Bahasa Indonesia" - }, { - value: "ms", - label: "Bahasa Malaysia" - }, { - value: "bs", - label: "Bosanski" - }, { - value: "ca", - label: "Català" - }, { - value: "cs", - label: "Čeština" - }, { - value: "da", - label: "Dansk" - }, { - value: "et", - label: "Eesti" - }, { - value: "eu", - label: "Euskara" - }, { - value: "fil", - label: "Filipino" - }, { - value: "fr-CA", - label: "Français (Canada)" - }, { - value: "gl", - label: "Galego" - }, { - value: "hr", - label: "Hrvatski" - }, { - value: "zu", - label: "IsiZulu" - }, { - value: "is", - label: "Íslenska" - }, { - value: "it", - label: "Italiano" - }, { - value: "sw", - label: "Kiswahili" - }, { - value: "lv", - label: "Latviešu valoda" - }, { - value: "lt", - label: "Lietuvių" - }, { - value: "hu", - label: "Magyar" - }, { - value: "nl", - label: "Nederlands" - }, { - value: "no", - label: "Norsk" - }, { - value: "uz", - label: "O‘zbek" - }, { - value: "ro", - label: "Română" - }, { - value: "sq", - label: "Shqip" - }, { - value: "sk", - label: "Slovenčina" - }, { - value: "sl", - label: "Slovenščina" - }, { - value: "sr-Latn", - label: "Srpski" - }, { - value: "fi", - label: "Suomi" - }, { - value: "sv", - label: "Svenska" - }, { - value: "vi", - label: "Tiếng Việt" - }, { - value: "tr", - label: "Türkçe" - }, { - value: "be", - label: "Беларуская" - }, { - value: "bg", - label: "Български" - }, { - value: "ky", - label: "Кыргызча" - }, { - value: "kk", - label: "Қазақ Тілі" - }, { - value: "mk", - label: "Македонски" - }, { - value: "mn", - label: "Монгол" - }, { - value: "sr", - label: "Српски" - }, { - value: "uk", - label: "Українська" - }, { - value: "el", - label: "Ελληνικά" - }, { - value: "hy", - label: "Հայերեն" - }, { - value: "iw", - label: "עברית" - }, { - value: "ur", - label: "اردو" - }, { - value: "ar", - label: "العربية" - }, { - value: "fa", - label: "فارسی" - }, { - value: "ne", - label: "नेपाली" - }, { - value: "mr", - label: "मराठी" - }, { - value: "hi", - label: "हिन्दी" - }, { - value: "bn", - label: "বাংলা" - }, { - value: "pa", - label: "ਪੰਜਾਬੀ" - }, { - value: "gu", - label: "ગુજરાતી" - }, { - value: "ta", - label: "தமிழ்" - }, { - value: "te", - label: "తెలుగు" - }, { - value: "kn", - label: "ಕನ್ನಡ" - }, { - value: "ml", - label: "മലയാളം" - }, { - value: "si", - label: "සිංහල" - }, { - value: "th", - label: "ภาษาไทย" - }, { - value: "lo", - label: "ລາວ" - }, { - value: "my", - label: "ဗမာ" - }, { - value: "ka", - label: "ქართული" - }, { - value: "am", - label: "አማርኛ" - }, { - value: "km", - label: "ខ្មែរ" - }, { - value: "zh-CN", - label: "中文 (简体)" - }, { - value: "zh-TW", - label: "中文 (繁體)" - }, { - value: "zh-HK", - label: "中文 (香港)" - }, { - value: "ko", - label: "한국어" - }] - } - } - }, - backup_and_reset: { - type: 'button', - variant: 'list-item', - label: 'backupAndReset', - before: '', - - section: { - type: 'section', - variant: 'card', - import_settings: { - type: 'button', - variant: 'list-item', - label: 'importSettings', - - onclick: function() { - try { - var input = document.createElement('input'); - - input.type = 'file'; - - input.addEventListener('change', function() { - var file_reader = new FileReader(); - - file_reader.onload = function() { - var data = JSON.parse(this.result); - - for (var i in data) { - satus.storage.set(i, data[i]); - } - - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - label: 'successfullyImportedSettings' - }, - section: { - type: 'section', - variant: 'card', - class: 'controls', - style: { - 'justify-content': 'flex-end', - 'display': 'flex' - }, - - cancel: { - type: 'button', - label: 'cancel', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - ok: { - type: 'button', - label: 'OK', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - } - } - }); - }; - - file_reader.readAsText(this.files[0]); - }); - - input.click(); - } catch (err) { - chrome.runtime.sendMessage({ - name: 'dialog-error', - value: err - }); - } - } - }, - export_settings: { - type: 'button', - variant: 'list-item', - label: 'exportSettings', - - onclick: function() { - chrome.runtime.sendMessage({ - name: 'download', - filename: 'improvedtube-settings.json', - value: satus.storage - }); - } - }, - reset_all_settings: { - type: 'button', - variant: 'list-item', - label: 'resetAllSettings', - - onclick: function() { - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - label: 'thisWillResetAllSettings' - }, - section: { - type: 'section', - variant: 'card', - class: 'controls', - style: { - 'justify-content': 'flex-end', - 'display': 'flex' - }, - - cancel: { - type: 'button', - label: 'cancel', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - accept: { - type: 'button', - label: 'accept', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - satus.storage.clear(); - - scrim[scrim.length - 1].click(); - } - } - } - }); - } - }, - delete_youtube_cookies: { - type: 'button', - variant: 'list-item', - label: 'deleteYoutubeCookies', - - onclick: function() { - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - label: 'thisWillRemoveAllYouTubeCookies', - style: { - 'width': '100%', - 'opacity': '.8' - } - }, - section: { - type: 'section', - variant: 'card', - class: 'controls', - style: { - 'justify-content': 'flex-end', - 'display': 'flex' - }, - - cancel: { - type: 'button', - label: 'cancel', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - accept: { - type: 'button', - label: 'accept', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - chrome.tabs.query({}, function(tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - name: 'delete_youtube_cookies' - }); - } - } - }); - - scrim[scrim.length - 1].click(); - } - } - } - }); - } - } - } - }, - date_and_time: { - type: 'button', - variant: 'list-item', - label: 'dateAndTime', - before: '', - - section: { - type: 'section', - variant: 'card', - - use_24_hour_format: { - type: 'switch', - label: 'use24HourFormat', - value: true - } - } - }, - about: { - type: 'button', - variant: 'list-item', - before: '', - label: 'about', - appearanceKey: 'about', - - section: { - type: 'section', - variant: 'card', - onrender: function() { - var component = this, - manifest = chrome.runtime.getManifest(), - user = satus.user(), - object = { - extension_section: { - type: 'section', - variant: 'card', - label: 'extension', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - version: { - type: 'text', - label: 'version', - value: manifest.version - }, - permissions: { - type: 'text', - label: 'permissions', - value: manifest.permissions.join(', ').replace('https://www.youtube.com/', 'YouTube') - }, - }, - browser_section: { - type: 'section', - variant: 'card', - label: 'browser', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - name: { - type: 'text', - label: 'name', - value: user.browser.name - }, - version: { - type: 'text', - label: 'version', - value: user.browser.version - }, - platform: { - type: 'text', - label: 'platform', - value: user.browser.platform - }, - video_formats: { - type: 'text', - label: 'videoFormats', - value: user.browser.video - }, - audio_formats: { - type: 'text', - label: 'audioFormats', - value: user.browser.audio - }, - flash: { - type: 'text', - label: 'flash', - value: user.browser.flash ? true : false - } - }, - os_section: { - type: 'section', - variant: 'card', - label: 'os', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - os_name: { - type: 'text', - label: 'name', - value: user.os.name - }, - - os_type: { - type: 'text', - label: 'type', - value: user.os.type - } - }, - device_section: { - type: 'section', - variant: 'card', - label: 'device', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - screen: { - type: 'text', - label: 'screen', - value: user.device.screen - }, - cores: { - type: 'text', - label: 'cores', - value: user.device.cores - }, - gpu: { - type: 'text', - label: 'gpu', - value: user.device.gpu - }, - ram: { - type: 'text', - label: 'ram', - value: user.device.ram - } - } - }; - - setTimeout(function() { - satus.render(object, component.parentNode); - - component.remove(); - }); - } - } - } - } -}; -Menu.main.section.general = { - type: 'button', - before: '', - label: 'general', - class: 'satus-button--general', - appearanceKey: 'general', - - section: { - type: 'section', - variant: 'card', - - youtube_home_page: { - type: 'select', - label: 'youtubeHomePage', - options: [{ - label: 'home', - value: '/' - }, { - label: 'trending', - value: '/feed/trending' - }, { - label: 'subscriptions', - value: '/feed/subscriptions' - }, { - label: 'history', - value: '/feed/history' - }, { - label: 'watchLater', - value: '/playlist?list=WL' - }, { - label: 'search', - value: 'search' - }], - tags: 'trending,subscriptions,history,watch,search' - }, - collapse_of_subscription_sections: { - type: 'switch', - label: 'collapseOfSubscriptionSections' - }, - add_scroll_to_top: { - type: 'switch', - label: 'addScrollToTop', - tags: 'up' - }, - remove_related_search_results: { - type: 'switch', - label: 'removeRelatedSearchResults' - }, - confirmation_before_closing: { - type: 'switch', - label: 'confirmationBeforeClosing', - tags: 'random prevent close exit' - }, - mark_watched_videos: { - type: 'switch', - label: 'markWatchedVideos' - }, - only_one_player_instance_playing: { - type: 'switch', - label: 'onlyOnePlayerInstancePlaying' - } - }, - - section_label__thumbnails: { - type: 'text', - variant: 'section-label', - label: 'thumbnails' - }, - - thumbnails_section: { - type: 'section', - variant: 'card', - - squared_user_images: { - type: 'switch', - label: 'squaredUserImages', - tags: 'avatar' - }, - hd_thumbnails: { - type: 'switch', - label: 'hdThumbnails', - tags: 'preview quality' - }, - hide_animated_thumbnails: { - type: 'switch', - label: 'hideAnimatedThumbnails', - tags: 'preview' - } - } -}; - -Menu.main.section.appearance = { - type: 'button', - before: '', - label: 'appearance', - class: 'satus-button--appearance', - appearanceKey: 'appearance', - - header: { - type: 'button', - label: 'header', - class: 'satus-button--header', - - section: { - type: 'section', - variant: 'card', - - header_position: { - type: 'select', - label: 'position', - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'hidden', - value: 'hidden' - }, { - label: 'hover', - value: 'hover' - }, { - label: 'hiddenOnVideoPage', - value: 'hidden_on_video_page' - }, { - label: 'hoverOnVideoPage', - value: 'hover_on_video_page' - }, { - label: 'static', - value: 'static' - }], - tags: 'hide,hover,static,top' - }, - header_improve_logo: { - type: 'switch', - label: 'improveLogo', - tags: 'youtube' - }, - header_hide_right_buttons: { - type: 'switch', - label: 'hideRightButtons', - tags: 'user' - } - } - }, - player: { - type: 'button', - label: 'player', - class: 'satus-button--player', - - section: { - type: 'section', - variant: 'card', - - player_hide_annotations: { - type: 'switch', - label: 'hideAnnotations', - tags: 'hide,remove,elements' - }, - player_hide_cards: { - type: 'switch', - label: 'hideCards', - tags: 'hide,remove,elements' - }, - player_show_cards_on_mouse_hover: { - type: 'switch', - label: 'showCardsOnMouseHover', - tags: 'hide,remove,elements' - }, - player_size: { - type: 'select', - label: 'playerSize', - options: [{ - label: 'doNotChange', - value: 'do_not_change' - }, { - label: 'fullWindow', - value: 'full_window' - }, { - label: 'fitToWindow', - value: 'fit_to_window' - }, { - label: '240p', - value: '240p' - }, { - label: '360p', - value: '360p' - }, { - label: '480p', - value: '480p' - }, { - label: '576p', - value: '576p' - }, { - label: '720p', - value: '720p' - }, { - label: '1080p', - value: '1080p' - }, { - label: '1440p', - value: '1440p' - }, { - label: '2160p', - value: '2160p' - }] - }, - forced_theater_mode: { - type: 'switch', - label: 'forcedTheaterMode', - tags: 'wide' - }, - player_color: { - label: 'playerColor', - type: 'select', - options: [{ - label: 'red', - value: 'red' - }, { - label: 'pink', - value: 'pink' - }, { - label: 'purple', - value: 'purple' - }, { - label: 'deepPurple', - value: 'deep_purple' - }, { - label: 'indigo', - value: 'indigo' - }, { - label: 'blue', - value: 'blue' - }, { - label: 'lightBlue', - value: 'light_blue' - }, { - label: 'cyan', - value: 'cyan' - }, { - label: 'teal', - value: 'teal' - }, { - label: 'green', - value: 'green' - }, { - label: 'lightGreen', - value: 'light_green' - }, { - label: 'lime', - value: 'lime' - }, { - label: 'yellow', - value: 'yellow' - }, { - label: 'amber', - value: 'amber' - }, { - label: 'orange', - value: 'orange' - }, { - label: 'deepOrange', - value: 'deep_orange' - }, { - label: 'brown', - value: 'brown' - }, { - label: 'blueGray', - value: 'blue_gray' - }, { - label: 'white', - value: 'white' - }], - tags: 'style' - }, - player_transparent_background: { - type: 'switch', - label: 'transparentBackground' - }, - player_hide_endscreen: { - type: 'switch', - label: 'hideEndscreen' - }, - player_hd_thumbnail: { - type: 'switch', - label: 'hdThumbnail', - tags: 'preview' - }, - hide_scroll_for_details: { - type: 'switch', - label: 'hideScrollForDetails', - tags: 'remove,hide' - }, - always_show_progress_bar: { - type: 'switch', - label: 'alwaysShowProgressBar' - }, - hide_gradient_bottom: { - type: 'switch', - label: 'hideGradientBottom' - } - } - }, - details: { - type: 'button', - label: 'details', - class: 'satus-button--details', - - section: { - type: 'section', - variant: 'card', - - hide_details: { - type: 'switch', - label: 'hideDetails', - tags: 'hide,remove' - }, - description: { - type: 'select', - label: 'description', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'expanded', - value: 'expanded' - }, { - label: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - hide_views_count: { - type: 'switch', - label: 'hideViewsCount', - tags: 'hide,remove' - }, - likes: { - type: 'select', - label: 'likes', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'iconsOnly', - value: 'icons_only' - }, { - label: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - how_long_ago_the_video_was_uploaded: { - type: 'switch', - label: 'howLongAgoTheVideoWasUploaded' - }, - channel_videos_count: { - type: 'switch', - label: 'showChannelVideosCount' - }, - red_dislike_button: { - type: 'switch', - label: 'redDislikeButton' - } - } - }, - sidebar: { - type: 'button', - label: 'sidebar', - class: 'satus-button--sidebar', - - section: { - type: 'section', - variant: 'card', - - sidebar_left: { - type: 'switch', - label: 'Sidebar on the Left' - }, - thumbnails_right: { - type: 'switch', - label: 'Thumbnails on the Right' - }, - related_videos: { - type: 'select', - label: 'relatedVideos', - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'collapsed', - value: 'collapsed' - }, { - label: 'hidden', - value: 'hidden' - }], - tags: 'right' - }, - - livechat: { - type: 'select', - label: 'liveChat', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'collapsed', - value: 'collapsed' - }, { - label: 'hidden', - value: 'hidden' - }] - }, - hide_playlist: { - type: 'switch', - label: 'hidePlaylist' - } - } - }, - comments: { - type: 'button', - label: 'comments', - class: 'satus-button--comments', - - section: { - type: 'section', - variant: 'card', - - comments: { - type: 'select', - label: 'comments', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'collapsed', - value: 'collapsed' - }, { - label: 'hidden', - value: 'hidden' - }] - } - } - }, - footer: { - type: 'button', - label: 'footer', - class: 'satus-button--footer', - - section: { - type: 'section', - variant: 'card', - - hide_footer: { - type: 'switch', - label: 'hideFooter', - tags: 'bottom' - } - } - } -}; - -function themePopupChange() { - if (satus.storage.get('red_popup_theme') === true) { - document.documentElement.setAttribute('popup-theme', 'red'); - } else { - document.documentElement.removeAttribute('popup-theme'); - } -} - -function themeChange(event) { - if (event.target.checked) { - var themes = document.querySelectorAll('.satus-switch > input:checked:not([data-storage-key="red_popup_theme"])'); - - for (var i = 0, l = themes.length; i < l; i++) { - if (themes[i] !== event.target) { - themes[i].click(); - } - } - } - - if (satus.storage.get('default_dark_theme') === true) { - document.documentElement.setAttribute('theme', 'dark'); - } else if (satus.storage.get('night_theme') === true) { - document.documentElement.setAttribute('theme', 'night'); - } else if (satus.storage.get('dawn_theme') === true) { - document.documentElement.setAttribute('theme', 'dawn'); - } else if (satus.storage.get('sunset_theme') === true) { - document.documentElement.setAttribute('theme', 'sunset'); - } else if (satus.storage.get('desert_theme') === true) { - document.documentElement.setAttribute('theme', 'desert'); - } else if (satus.storage.get('plain_theme') === true) { - document.documentElement.setAttribute('theme', 'plain'); - } else if (satus.storage.get('black_theme') === true) { - document.documentElement.setAttribute('theme', 'black'); - } else { - document.documentElement.removeAttribute('theme'); - } -} - -Menu.main.section.themes = { - type: 'button', - before: '', - label: 'themes', - class: 'satus-button--themes', - appearanceKey: 'themes', - - section: { - type: 'section', - variant: 'card', - - my_colors: { - type: 'button', - variant: 'list-item', - label: 'myColors', - - section: { - type: 'section', - variant: 'card', - - theme_my_colors: { - type: 'switch', - label: 'activate' - } - }, - - section2: { - type: 'section', - variant: 'card', - - theme_primary_color: { - type: 'color-picker', - label: 'primaryColor', - variant: 'list-item', - value: 'rgba(200,200,200)' - }, - theme_text_color: { - type: 'color-picker', - label: 'textColor', - variant: 'list-item', - value: 'rgba(25,25,25)' - } - } - }, - filters: { - type: 'button', - variant: 'list-item', - label: 'filters', - - section: { - type: 'section', - variant: 'card', - - bluelight: { - type: 'slider', - label: 'bluelight', - step: 1, - max: 90, - value: 0 - }, - dim: { - type: 'slider', - label: 'dim', - step: 1, - max: 90, - value: 0 - } - } - }, - schedule: { - type: 'button', - variant: 'list-item', - label: 'schedule', - - section: { - type: 'section', - variant: 'card', - - schedule: { - type: 'select', - label: 'schedule', - - options: [{ - label: 'disabled', - value: 'disabled' - }, { - label: 'sunsetToSunrise', - value: 'sunset_to_sunrise' - }, { - label: 'systemPeferenceDark', - value: 'system_peference_dark' - }, { - label: 'systemPeferenceLight', - value: 'system_peference_light' - }] - }, - schedule_time_from: { - type: 'select', - label: 'timeFrom', - options: [{ - label: '00:00', - value: '00:00' - }, { - label: '01:00', - value: '01:00' - }, { - label: '02:00', - value: '02:00' - }, { - label: '03:00', - value: '03:00' - }, { - label: '04:00', - value: '04:00' - }, { - label: '05:00', - value: '05:00' - }, { - label: '06:00', - value: '06:00' - }, { - label: '07:00', - value: '07:00' - }, { - label: '08:00', - value: '08:00' - }, { - label: '09:00', - value: '09:00' - }, { - label: '10:00', - value: '10:00' - }, { - label: '11:00', - value: '11:00' - }, { - label: '12:00', - value: '12:00' - }, { - label: '13:00', - value: '13:00' - }, { - label: '14:00', - value: '14:00' - }, { - label: '15:00', - value: '15:00' - }, { - label: '16:00', - value: '16:00' - }, { - label: '17:00', - value: '17:00' - }, { - label: '18:00', - value: '18:00' - }, { - label: '19:00', - value: '19:00' - }, { - label: '20:00', - value: '20:00' - }, { - label: '21:00', - value: '21:00' - }, { - label: '22:00', - value: '22:00' - }, { - label: '23:00', - value: '23:00' - }] - }, - schedule_time_to: { - type: 'select', - label: 'timeTo', - options: [{ - label: '00:00', - value: '00:00' - }, { - label: '01:00', - value: '01:00' - }, { - label: '02:00', - value: '02:00' - }, { - label: '03:00', - value: '03:00' - }, { - label: '04:00', - value: '04:00' - }, { - label: '05:00', - value: '05:00' - }, { - label: '06:00', - value: '06:00' - }, { - label: '07:00', - value: '07:00' - }, { - label: '08:00', - value: '08:00' - }, { - label: '09:00', - value: '09:00' - }, { - label: '10:00', - value: '10:00' - }, { - label: '11:00', - value: '11:00' - }, { - label: '12:00', - value: '12:00' - }, { - label: '13:00', - value: '13:00' - }, { - label: '14:00', - value: '14:00' - }, { - label: '15:00', - value: '15:00' - }, { - label: '16:00', - value: '16:00' - }, { - label: '17:00', - value: '17:00' - }, { - label: '18:00', - value: '18:00' - }, { - label: '19:00', - value: '19:00' - }, { - label: '20:00', - value: '20:00' - }, { - label: '21:00', - value: '21:00' - }, { - label: '22:00', - value: '22:00' - }, { - label: '23:00', - value: '23:00' - }] - } - } - }, - font: { - type: 'select', - label: 'font', - options: [{ - label: 'Default', - value: 'Default' - }, { - label: 'Roboto', - value: 'Roboto' - }, { - label: 'Open Sans', - value: 'Open+Sans' - }, { - label: 'Lato', - value: 'Lato' - }, { - label: 'Montserrat', - value: 'Montserrat' - }, { - label: 'Source Sans Pro', - value: 'Source+Sans+Pro' - }, { - label: 'Roboto Condensed', - value: 'Roboto+Condensed' - }, { - label: 'Oswald', - value: 'Oswald' - }, { - label: 'Comfortaa', - value: 'Comfortaa' - }, { - label: 'Roboto Mono', - value: 'Roboto+Mono' - }, { - label: 'Raleway', - value: 'Raleway' - }, { - label: 'Poppins', - value: 'Poppins' - }, { - label: 'Noto Sans', - value: 'Noto+Sans' - }, { - label: 'Roboto Slab', - value: 'Roboto+Slab' - }, { - label: 'Marriweather', - value: 'Marriweather' - }, { - label: 'PT Sans', - value: 'PT+Sans' - }] - } - }, - - default_dark_theme: { - type: 'switch', - label: 'dark', - class: 'satus-switch--dark', - - onchange: themeChange - }, - night_theme: { - type: 'switch', - label: 'night', - class: 'satus-switch--night', - - onchange: themeChange - }, - dawn_theme: { - type: 'switch', - label: 'dawn', - class: 'satus-switch--dawn', - - onchange: themeChange - }, - sunset_theme: { - type: 'switch', - label: 'sunset', - class: 'satus-switch--sunset', - - onchange: themeChange - }, - desert_theme: { - type: 'switch', - label: 'desert', - class: 'satus-switch--desert', - - onchange: themeChange - }, - plain_theme: { - type: 'switch', - label: 'plain', - class: 'satus-switch--plain', - - onchange: themeChange - }, - black_theme: { - type: 'switch', - label: 'black', - class: 'satus-switch--black', - - onchange: themeChange - } -}; - -Menu.main.section.player = { - type: 'button', - before: '', - label: 'player', - class: 'satus-button--player', - appearanceKey: 'player', - - general: { - type: 'section', - variant: 'card', - - player_autoplay: { - type: 'switch', - label: 'autoplay', - value: true - }, - player_autopause_when_switching_tabs: { - type: 'switch', - label: 'autopauseWhenSwitchingTabs' - }, - player_forced_playback_speed: { - type: 'switch', - label: 'forcedPlaybackSpeed', - id: 'forced-playback-speed', - onrender: function() { - this.dataset.value = satus.storage.player_forced_playback_speed; - }, - onchange: function() { - this.dataset.value = satus.storage.player_forced_playback_speed; - } - }, - player_playback_speed: { - type: 'slider', - label: 'playbackSpeed', - textarea: true, - value: 1, - min: .1, - max: 8, - step: .05 - }, - player_subtitles: { - type: 'switch', - label: 'subtitles', - value: true - }, - player_crop_chapter_titles: { - type: 'switch', - label: 'cropChapterTitles', - value: true - }, - up_next_autoplay: { - type: 'switch', - label: 'upNextAutoplay', - value: true - }, - player_ads: { - label: 'ads', - type: 'select', - options: [{ - label: 'onAllVideos', - value: 'all_videos', - default: 'true' - }, { - label: 'onSubscribedChannels', - value: 'subscribed_channels' - }, { - label: 'blockAll', - value: 'block_all' - }] - }, - mini_player: { - type: 'switch', - label: 'customMiniPlayer' - }, - player_autofullscreen: { - type: 'switch', - label: 'autoFullscreen' - } - }, - - section_label__videos: { - type: 'text', - variant: 'section-label', - label: 'videos' - }, - - video: { - type: 'section', - variant: 'card', - - player_quality: { - type: 'select', - label: 'quality', - options: [{ - label: 'auto', - value: 'auto' - }, { - label: '144p', - value: 'tiny' - }, { - label: '240p', - value: 'small' - }, { - label: '360p', - value: 'medium' - }, { - label: '480p', - value: 'large' - }, { - label: '720p', - value: 'hd720' - }, { - label: '1080p', - value: 'hd1080' - }, { - label: '1440p', - value: 'hd1440' - }, { - label: '2160p', - value: 'hd2160' - }, { - label: '2880p', - value: 'hd2880' - }, { - label: '4320p', - value: 'highres' - }] - }, - player_h264: { - type: 'switch', - label: 'codecH264', - onclick: function() { - if (this.querySelector('input').checked === true) { - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - class: 'satus-dialog__message', - label: 'youtubeLimitsVideoQualityTo1080pForH264Codec' - }, - section: { - type: 'section', - class: 'satus-section--actions', - - cancel: { - type: 'button', - variant: 'text', - label: 'cancel', - onclick: function() { - let scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - ok: { - type: 'button', - variant: 'text', - label: 'OK', - onclick: function() { - let scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - } - } - }); - } - } - }, - player_60fps: { - type: 'switch', - label: 'allow60fps', - value: true, - onclick: function() { - if (this.querySelector('input').checked === true) { - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - class: 'satus-dialog__message', - label: 'youtubeLimitsVideoQualityTo1080pForH264Codec' - }, - section: { - type: 'section', - class: 'satus-section--actions', - - cancel: { - type: 'button', - label: 'cancel', - onclick: function() { - let scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - ok: { - type: 'button', - label: 'OK', - onclick: function() { - let scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - } - } - }); - } - } - }, - }, - - section_label__audio: { - type: 'text', - variant: 'section-label', - label: 'audio' - }, - - audio: { - type: 'section', - variant: 'card', - label: 'audio', - - player_forced_volume: { - type: 'switch', - label: 'forcedVolume', - id: 'forced-volume', - onrender: function() { - this.dataset.value = satus.storage.player_forced_volume; - }, - onchange: function() { - this.dataset.value = satus.storage.player_forced_volume; - } - }, - player_volume: { - type: 'slider', - label: 'volume', - step: 1, - max: 100, - value: 100 - }, - player_loudness_normalization: { - type: 'switch', - label: 'loudnessNormalization', - value: true - } - }, - - section_label__buttons: { - type: 'text', - variant: 'section-label', - label: 'buttons' - }, - - buttons: { - type: 'section', - variant: 'card', - - player_screenshot: { - type: 'button', - variant: 'list-item', - label: 'screenshot', - - section: { - type: 'section', - variant: 'card', - - player_screenshot_button: { - type: 'switch', - label: 'activate' - }, - player_screenshot_save_as: { - type: 'select', - label: 'saveAs', - options: [{ - label: 'file', - value: 'file' - }, { - label: 'clipboard', - value: 'clipboard' - }] - } - } - }, - player_repeat: { - type: 'button', - variant: 'list-item', - label: 'repeat', - - section: { - type: 'section', - variant: 'card', - - player_repeat_button: { - type: 'switch', - label: 'activate' - }, - player_always_repeat: { - type: 'switch', - label: 'alwaysActive' - } - } - }, - player_rotate_button: { - type: 'switch', - label: 'rotate' - }, - player_popup_button: { - type: 'switch', - label: 'popupPlayer' - } - } -}; -Menu.main.section.playlist = { - type: 'button', - before: '', - label: 'playlist', - class: 'satus-button--playlist', - appearanceKey: 'playlist', - - section: { - type: 'section', - variant: 'card', - - playlist_autoplay: { - type: 'switch', - label: 'autoplay', - value: true - }, - playlist_up_next_autoplay: { - type: 'switch', - label: 'upNextAutoplay', - value: true - }, - playlist_reverse: { - type: 'switch', - label: 'reverse' - } - }, - - section2: { - type: 'section', - variant: 'card', - - playlist_repeat: { - type: 'switch', - label: 'repeat' - }, - playlist_shuffle: { - type: 'switch', - label: 'shuffle' - } - } -}; - -Menu.main.section.channel = { - type: 'button', - before: '', - label: 'channel', - class: 'satus-button--channel', - appearanceKey: 'channel', - - section: { - type: 'section', - variant: 'card', - - channel_default_tab: { - type: 'select', - label: 'defaultChannelTab', - options: [{ - label: 'home', - value: '/home' - }, { - label: 'videos', - value: '/videos' - }, { - label: 'playlists', - value: '/playlists' - }] - }, - channel_trailer_autoplay: { - type: 'switch', - label: 'trailerAutoplay', - value: true - }, - channel_hide_featured_content: { - type: 'switch', - label: 'hideFeaturedContent' - } - } -}; - -Menu.main.section.shortcuts = { - type: 'button', - before: '', - label: 'shortcuts', - class: 'satus-button--shortcut', - appearanceKey: 'shortcuts', - - player_section_label: { - type: 'text', - variant: 'section-label', - label: 'player' - }, - - player_section: { - type: 'section', - variant: 'card', - - shortcut_picture_in_picture: { - type: 'shortcut', - label: 'pictureInPicture' - }, - shortcut_play_pause: { - type: 'shortcut', - label: 'playPause', - value: { - key: ' ' - } - }, - shortcut_stop: { - type: 'shortcut', - label: 'stop' - }, - shortcut_next_video: { - type: 'shortcut', - label: 'nextVideo', - value: { - key: 'N', - shiftKey: true - } - }, - shortcut_prev_video: { - type: 'shortcut', - label: 'previousVideo', - value: { - key: 'P', - shiftKey: true - } - }, - shortcut_seek_backward: { - type: 'shortcut', - label: 'seekBackward10Seconds', - value: { - key: 'J' - } - }, - shortcut_seek_forward: { - type: 'shortcut', - label: 'seekForward10Seconds', - value: { - key: 'I' - } - }, - shortcut_volume: { - type: 'button', - label: 'volume', - - section_step: { - type: 'section', - variant: 'card', - - shortcut_volume_step: { - type: 'slider', - label: 'step', - min: 1, - max: 10, - step: 1, - value: 5 - } - }, - - section: { - type: 'section', - variant: 'card', - - shortcut_increase_volume: { - type: 'shortcut', - label: 'increaseVolume', - custom_data: { - on_top_of_player: { - type: 'switch', - label: 'onTopOfPlayer', - storage: false - } - } - }, - shortcut_decrease_volume: { - type: 'shortcut', - label: 'decreaseVolume', - custom_data: { - on_top_of_player: { - type: 'switch', - label: 'onTopOfPlayer', - storage: false - } - } - } - } - }, - shortcut_playback_speed: { - type: 'button', - label: 'playbackSpeed', - - section_step: { - type: 'section', - variant: 'card', - - shortcut_playback_speed_step: { - type: 'slider', - label: 'step', - min: .05, - max: .5, - step: .05, - value: .05 - } - }, - - section: { - type: 'section', - variant: 'card', - - shortcut_increase_playback_speed: { - type: 'shortcut', - label: 'increasePlaybackSpeed' - }, - shortcut_decrease_playback_speed: { - type: 'shortcut', - label: 'decreasePlaybackSpeed' - } - } - }, - shortcut_activate_fullscreen: { - type: 'shortcut', - label: 'activateFullscreen', - value: { - key: 'F' - } - }, - shortcut_activate_captions: { - type: 'shortcut', - label: 'activateCaptions', - value: { - key: 'C' - } - }, - shortcut_quality: { - type: 'button', - label: 'quality', - - section: { - type: 'section', - variant: 'card', - - shortcut_240p: { - type: 'shortcut', - label: '240p' - }, - shortcut_360p: { - type: 'shortcut', - label: '360p' - }, - shortcut_480p: { - type: 'shortcut', - label: '480p' - }, - shortcut_720p: { - type: 'shortcut', - label: '720p' - }, - shortcut_1080p: { - type: 'shortcut', - label: '1080p' - }, - shortcut_1440p: { - type: 'shortcut', - label: '1440p' - }, - shortcut_2160p: { - type: 'shortcut', - label: '2160p' - }, - shortcut_2880p: { - type: 'shortcut', - label: '2880p' - }, - shortcut_4320p: { - type: 'shortcut', - label: '4320p' - } - } - }, - shortcut_custom_mini_player: { - type: 'shortcut', - label: 'customMiniPlayer' - }, - shortcut_screenshot: { - type: 'shortcut', - label: 'screenshot' - }, - shortcut_stats_for_nerds: { - type: 'shortcut', - label: 'statsForNerds' - }, - shortcut_toggle_cards: { - type: 'shortcut', - label: 'toggleCards' - } - }, - - appearance_section_label: { - type: 'text', - variant: 'section-label', - label: 'appearance' - }, - - appearance_section: { - type: 'section', - variant: 'card', - - shortcut_go_to_search_box: { - type: 'shortcut', - label: 'goToSearchBox', - value: { - key: '/' - } - }, - shortcut_like_shortcut: { - type: 'shortcut', - label: 'like' - }, - shortcut_dislike_shortcut: { - type: 'shortcut', - label: 'dislike' - }, - shortcut_dark_theme: { - type: 'shortcut', - label: 'darkTheme' - } - } -}; - -Menu.main.section.blacklist = { - type: 'button', - before: '', - label: 'blacklist', - class: 'satus-button--blacklist', - appearanceKey: 'blacklist', - - section_activate: { - type: 'section', - variant: 'card', - - blacklist_activate: { - type: 'switch', - label: 'activate' - } - }, - - section: { - type: 'section', - variant: 'card', - - channels: { - type: 'button', - variant: 'list-item', - label: 'channels', - onopen: function() { - var self = this; - - if (satus.storage.data.blacklist && satus.storage.data.blacklist.channels) { - var list = {}; - - for (var item in satus.storage.data.blacklist.channels) { - if (satus.storage.data.blacklist.channels[item] !== false) { - var title = satus.storage.data.blacklist.channels[item].title || ''; - - list[item] = { - type: 'section', - variant: 'card', - label: title.length > 20 ? title.substr(0, 20) + '...' : title, - class: 'satus-section--blacklist', - style: { - 'background-image': 'url(' + satus.storage.data.blacklist.channels[item].preview + ')', - 'background-color': '#000' - }, - - section: { - type: 'section', - variant: 'card', - - delete: { - type: 'button', - before: '', - onclick: function() { - delete satus.storage.data.blacklist.channels[item]; - - satus.storage.set('blacklist', satus.storage.data.blacklist); - - this.classList.add('removing'); - - setTimeout(function() { - self.remove(); - }, 250); - } - } - } - }; - } - } - - if (Object.keys(list).length === 0) { - list.section = { - type: 'section', - variant: 'card', - class: 'satus-section--message', - - error: { - type: 'text', - label: 'empty' - } - }; - } - - satus.render(list, this); - } else { - satus.render({ - type: 'section', - variant: 'card', - class: 'satus-section--message', - - error: { - type: 'text', - label: 'empty' - } - }, this); - } - } - }, - videos: { - type: 'button', - variant: 'list-item', - label: 'videos', - onopen: function() { - var self = this; - - if (satus.storage.data.blacklist && satus.storage.data.blacklist.videos) { - let list = {}; - - for (let item in satus.storage.data.blacklist.videos) { - if (satus.storage.data.blacklist.videos[item] !== false) { - let title = satus.storage.data.blacklist.videos[item].title || ''; - - list[item] = { - type: 'section', - variant: 'card', - label: title.length > 20 ? title.substr(0, 20) + '...' : title, - class: 'satus-section--blacklist', - style: { - 'background-image': 'url(https://img.youtube.com/vi/' + item + '/0.jpg)' - }, - - section: { - type: 'section', - - delete: { - type: 'button', - before: '', - onclick: function() { - delete satus.storage.data.blacklist.videos[item]; - - satus.storage.set('blacklist', satus.storage.data.blacklist); - this.parentNode.parentNode.classList.add('removing'); - - setTimeout(function() { - self.parentNode.parentNode.remove(); - }, 250); - } - } - } - }; - } - } - - if (Object.keys(list).length === 0) { - list.section = { - type: 'section', - variant: 'card', - class: 'satus-section--message', - - error: { - type: 'text', - label: 'empty' - } - }; - } - - satus.render(list, this); - } else { - satus.render({ - type: 'section', - variant: 'card', - class: 'satus-section--message', - - error: { - type: 'text', - label: 'empty' - } - }, this); - } - } - } - } -}; - -Menu.main.section.analyzer = { - type: 'button', - before: '', - label: 'analyzer', - class: 'satus-button--analyzer', - appearanceKey: 'analyzer', - - activ_section: { - type: 'section', - variant: 'card', - - analyzer_activation: { - type: 'switch', - label: 'activate' - } - }, - - section: { - type: 'section', - variant: 'card', - style: { - 'flex-direction': 'column', - 'align-items': 'flex-start' - }, - onrender: function() { - var data = satus.storage.get('analyzer') || {}, - all_data = {}, - all_data_sort = [], - all_time_value = 0, - current_date = new Date().toDateString(), - container = document.createElement('div'), - top_text_container = document.createElement('div'), - today_at = document.createElement('div'), - watch_time = document.createElement('div'), - all_time = document.createElement('div'), - chart = document.createElement('div'), - bottom_text_container = document.createElement('div'); - - container.className = 'analyzer-container'; - top_text_container.className = 'analyzer-top-text'; - watch_time.className = 'analyzer-watch-time'; - today_at.className = 'analyzer-today-at'; - all_time.className = 'analyzer-all-time'; - chart.className = 'analyzer-chart'; - bottom_text_container.className = 'analyzer-bottom'; - - if (data[current_date]) { - for (let i in data[current_date]) { - if (data[current_date][i]) { - for (let j in data[current_date][i]) { - if (!all_data[j]) { - all_data[j] = 0; - } - - all_data[j] += data[current_date][i][j]; - } - } - } - } - - for (let i in all_data) { - all_data_sort.push([i, all_data[i]]); - all_time_value += all_data[i]; - } - - all_data_sort.sort(function(a, b) { - return b[1] - a[1]; - }); - - var now_minutes = new Date().getMinutes(); - - watch_time.innerText = satus.locale.getMessage('watchTime') || 'watchTime'; - today_at.innerText = satus.locale.getMessage('todayAt') + ' ' + (new Date().getHours() + ':' + (now_minutes < 10 ? '0' + now_minutes : now_minutes)) || 'todayAt'; - all_time.innerText = Math.floor(all_time_value / 60) + 'h ' + (all_time_value - Math.floor(all_time_value / 60) * 60) + 'm'; - - let h = 0; - - for (let i = 0; i < 4; i++) { - let column = document.createElement('div'); - - column.className = 'analyzer-column'; - - for (let j = 0; j < 6; j++) { - let hours = h + ':00'; - - h++; - - let data_column = document.createElement('div'); - - data_column.className = 'analyzer-data-column'; - - if (data[current_date] && data[current_date][hours]) { - for (let k in data[current_date][hours]) { - let block = document.createElement('div'); - - block.className = 'analyzer-data'; - - let height = data[current_date][hours][k] * 100 / 60; - - block.title = k; - block.style.height = height + '%'; - - if (k === all_data_sort[0][0]) { - block.className += ' first'; - } else if (k === all_data_sort[1][0]) { - block.className += ' second'; - } else if (k === all_data_sort[2][0]) { - block.className += ' third'; - } - - data_column.appendChild(block); - } - } - - column.appendChild(data_column); - } - - chart.appendChild(column); - } - - - for (let i = 0; i < 3; i++) { - if (all_data_sort[i]) { - let cont = document.createElement('div'), - label = document.createElement('div'), - value = document.createElement('div'); - - label.className = 'label'; - - label.innerText = all_data_sort[i][0]; - value.innerText = Math.floor(all_data_sort[i][1] / 60) + 'h ' + (all_data_sort[i][1] - Math.floor(all_data_sort[i][1] / 60) * 60) + 'm'; - - cont.appendChild(label); - cont.appendChild(value); - bottom_text_container.appendChild(cont); - } - } - - container.appendChild(all_time); - container.appendChild(chart); - this.appendChild(top_text_container); - top_text_container.appendChild(watch_time); - top_text_container.appendChild(today_at); - container.appendChild(bottom_text_container); - this.appendChild(container); - } - } -}; -/*------------------------------------------------------ ->>> INDEX --------------------------------------------------------- -# Import -# On changed -------------------------------------------------------*/ - -/*------------------------------------------------------ -# IMPORT -------------------------------------------------------*/ - -satus.storage.import(function(items) { - var html = document.documentElement; - - if ( - chrome && - chrome.runtime && - chrome.runtime.getManifest().version_name.indexOf('beta') === -1 - ) { - html.setAttribute('stable-version', ''); - } - - for (var key in items) { - html.setAttribute('it-' + key.replace(/_/g, '-'), items[key]); - } - - if (items.default_dark_theme === true) { - html.setAttribute('theme', 'dark'); - } else if (items.night_theme === true) { - html.setAttribute('theme', 'night'); - } else if (items.dawn_theme === true) { - html.setAttribute('theme', 'dawn'); - } else if (items.sunset_theme === true) { - html.setAttribute('theme', 'sunset'); - } else if (items.desert_theme === true) { - html.setAttribute('theme', 'desert'); - } else if (items.plain_theme === true) { - html.setAttribute('theme', 'plain'); - } else if (items.black_theme === true) { - html.setAttribute('theme', 'black'); - } - - satus.locale.import(items.language, function() { - satus.updateStorageKeys(Menu, function() { - satus.render(Menu, document.body); - }); - }); -}); - - -/*------------------------------------------------------ -# ON CHANGED -------------------------------------------------------*/ - -satus.storage.onChanged(function(items) { - for (var key in items) { - document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), items[key].newValue); - } -}); \ No newline at end of file diff --git a/unstable/satus.css b/unstable/satus.css deleted file mode 100644 index e69de29bb..000000000 diff --git a/unstable/satus.js b/unstable/satus.js deleted file mode 100644 index 6860b76c6..000000000 --- a/unstable/satus.js +++ /dev/null @@ -1,61 +0,0 @@ - -/*--------------------------------------------------------------- ->>> CORE ------------------------------------------------------------------ -# SATUS -# COMPONENTS -# CAMELIZE -# RENDER ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# SATUS ----------------------------------------------------------------*/ - -var satus = {}; - - -/*--------------------------------------------------------------- -# COMPONENTS ----------------------------------------------------------------*/ - -satus.components = {}; - - -/*--------------------------------------------------------------- -# CAMELIZE ----------------------------------------------------------------*/ - -satus.camelize = function(string) { - return string.replace(/-[a-z]/g, function(match) { - return match[1].toUpperCase(); - }); -}; - - -/*--------------------------------------------------------------- -# RENDER ----------------------------------------------------------------*/ - -satus.render = function(element, container) { - if (element.type) { - var type = this.camelize(element.type), - component; - - if (satus.components[type]) { - component = satus.components[type](element); - } else { - component = document.createElement(type); - } - - if (container) { - container.appendChild(component); - } - - return component; - } else { - for (var key in element) { - this.render(element[key], container); - } - } -}; \ No newline at end of file diff --git a/unstable/src/template/css/header.css b/unstable/src/template/css/header.css deleted file mode 100644 index d86abbf45..000000000 --- a/unstable/src/template/css/header.css +++ /dev/null @@ -1,132 +0,0 @@ -/*--------------------------------------------------------------- ->>> HEADER: ------------------------------------------------------------------ -1.0 Title -3.0 Right section -4.0 Search ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -2.0 TITLE ----------------------------------------------------------------*/ - -html[it-title-version='true'] body[data-appearance='home'] .satus-text--title::after -{ - font: 700 10px sans-serif; - - margin: 0 0 0 4px; - - content: attr(data-version); - - opacity: .6; - color: var(--satus-theme-header-text); -} - - -/*--------------------------------------------------------------- -3.0 RIGHT SECTION ----------------------------------------------------------------*/ - -.satus-section--align-end -{ - justify-content: flex-end; -} - -.satus-section--align-end .satus-button + .satus-button -{ - margin-left: 8px; -} - - -/*--------------------------------------------------------------- -4.0 SEARCH ----------------------------------------------------------------*/ - -.satus-dialog--search -{ - pointer-events: none; -} - -.satus-dialog--search .satus-dialog__scrim -{ - display: none; -} - -.satus-dialog--search .satus-dialog__surface -{ - position: fixed; - top: 11px; - right: 8px; - - visibility: unset; - - width: calc(100% - 62px); - min-width: unset; - max-width: unset; - height: 34px; - padding: 0; - - transform: unset; - animation: unset; - pointer-events: all; - - opacity: unset; - border: 1px solid rgba(0,0,0,.05); - box-shadow: unset; -} - -.satus-dialog--search .satus-dialog__surface .satus-text-field -{ - height: 34px; -} - -.satus-dialog--search .satus-dialog__surface .satus-button -{ - position: absolute; - top: 3px; - right: 3px; - - overflow: hidden; - - width: 32px; - height: 32px; - - border-radius: 50%; -} - -.satus-dialog--search .satus-dialog__surface .satus-button svg -{ - fill: unset; - stroke: currentColor; -} - -body[data-appearance='search'] .satus-switch--red, -body[data-appearance='search'] .satus-switch--dark, -body[data-appearance='search'] .satus-switch--night, -body[data-appearance='search'] .satus-switch--dawn, -body[data-appearance='search'] .satus-switch--sunset, -body[data-appearance='search'] .satus-switch--desert, -body[data-appearance='search'] .satus-switch--plain, -body[data-appearance='search'] .satus-switch--black -{ - width: calc(100% - 16px); - margin: 4px 8px; - - border-radius: 6px; -} - -body[data-appearance='search'] .satus-switch--red .satus-switch__label, -body[data-appearance='search'] .satus-switch--dark .satus-switch__label, -body[data-appearance='search'] .satus-switch--night .satus-switch__label, -body[data-appearance='search'] .satus-switch--dawn .satus-switch__label, -body[data-appearance='search'] .satus-switch--sunset .satus-switch__label, -body[data-appearance='search'] .satus-switch--black .satus-switch__label -{ - color: #fff; -} - -body[data-appearance='search'] .satus-switch--plain .satus-switch__label, -body[data-appearance='search'] .satus-switch--desert .satus-switch__label -{ - color: #222; -} diff --git a/unstable/src/template/css/index.css b/unstable/src/template/css/index.css deleted file mode 100644 index d6a0561f6..000000000 --- a/unstable/src/template/css/index.css +++ /dev/null @@ -1,57 +0,0 @@ -/*--------------------------------------------------------------- ->>> INDEX ------------------------------------------------------------------ -# Fonts -# Basic ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# FONTS ----------------------------------------------------------------*/ - -@font-face -{ - font-family: 'Open Sans'; - - src: url('assets/fonts/OpenSans-Regular.ttf'); -} - -@font-face -{ - font-family: 'Open Sans'; - font-weight: 600; - - src: url('assets/fonts/OpenSans-SemiBold.ttf'); -} - -@font-face -{ - font-family: 'Xanh Mono'; - - src: url('assets/fonts/XanhMono-Regular.ttf'); -} - - -/*--------------------------------------------------------------- -# BASIC ----------------------------------------------------------------*/ - -body -{ - font-family: 'Open Sans', sans-serif; - font-size: 14px; - - display: flex; - overflow: hidden; - flex-direction: column; - - margin: 0; - - background-color: var(--satus-theme-main); -} - -body.improvedtube-page -{ - width: 100vw; - height: 100vh; -} diff --git a/unstable/src/template/css/main.css b/unstable/src/template/css/main.css deleted file mode 100644 index a10be2958..000000000 --- a/unstable/src/template/css/main.css +++ /dev/null @@ -1,117 +0,0 @@ -/*--------------------------------------------------------------- ->>> MAIN ------------------------------------------------------------------ -# Ad ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# AD ----------------------------------------------------------------*/ - -.satus-main .satus-button.satus-button--ad -{ - position: absolute; - z-index: 99; - bottom: 16px; - left: 16px; - - overflow: hidden; - - width: 268px; - height: 38px; - height: 80px; - padding: 8px 16px; - - color: var(--satus-theme-main-text); - border-radius: 8px; - background: #0f1911; - box-shadow: 0 0 3px rgba(0,0,0,.1); - - align-items: center; - justify-content: space-between; -} - -.satus-button--ad .satus-button__label -{ - font-family: 'Xanh Mono', monospace; - font-size: 22px; - - letter-spacing: 1px; - - color: rgba(255,255,255,.9); - text-shadow: 2px 1px 2px rgba(0,0,0,.6); -} - -@keyframes satusSwitchDark -{ - 0% - { - transform: translate(0, 0); - } - 33% - { - transform: translate(20px, 10px); - } - 66% - { - transform: translate(10px, -10px); - } - 100% - { - transform: translate(0, 0); - } -} - -.satus-button--ad::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - animation-name: satusSwitchDark; - animation-duration: 8s; - animation-timing-function: linear; - animation-iteration-count: infinite; - pointer-events: none; - - background: radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%) !important; - background-repeat: no-repeat !important; - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px !important; - background-size: 50px 50px, 50px 50px, 100px 100px, 75px 75px !important; - - filter: blur(8px); -} - -html[it-improvedtube-home='list'] .satus-main .satus-button.satus-button--ad -{ - position: relative; - top: 0; - left: 0; - - margin: 16px; -} - -.satus-button--ad:after -{ - position: absolute; - top: 0; - left: -100%; - - width: 100%; - height: 100%; - - content: ''; - transition: .5s; - transition-delay: .2s; - - background: linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent); -} - -.satus-button--ad:hover:after -{ - left: 100%; -} diff --git a/unstable/src/template/css/template-parts/analyzer.css b/unstable/src/template/css/template-parts/analyzer.css deleted file mode 100644 index 915d08ac2..000000000 --- a/unstable/src/template/css/template-parts/analyzer.css +++ /dev/null @@ -1,168 +0,0 @@ -/*----------------------------------------------------------------------------- -# ANALYZER CATEGORY ------------------------------------------------------------------------------*/ - -.analyzer-top-text -{ - font-size: 13px; - - display: flex; - - box-sizing: border-box; - margin: 16px 0 0; - padding: 0 16px; - - background: transparent !important; - - justify-content: space-between; -} - -.analyzer-watch-time -{ - text-transform: uppercase; -} - -.analyzer-today-at -{ - box-sizing: border-box; -} - -.analyzer-container -{ - box-sizing: border-box; - margin: 8px 0 16px; - padding: 16px; - - background: var(--background-0) !important; - box-shadow: 0 0 2px rgba(0, 0, 0, .2); -} - -.analyzer-all-time -{ - font-size: 24px; - font-weight: 400; - - margin-bottom: 8px; - - color: #4c4c4c; -} - -.analyzer-chart -{ - position: relative; - - display: flex; - overflow: hidden; - - box-sizing: border-box; - height: 140px; - margin: 8px 0; - - border-bottom: 1px solid #ccc; - - justify-content: space-between; -} - -.analyzer-chart::before -{ - position: absolute; - top: -78%; - left: -15%; - - width: 125%; - height: 250%; - - content: ''; - transform: rotate(-45deg); - - background: linear-gradient(transparent 50%, rgba(0, 0, 0, .05) 50%); - background-size: 4px 4px; -} - -.analyzer-column -{ - z-index: 1; - - display: flex; - - border-right: 1px solid #ccc; - - flex: 1; -} - -.analyzer-column:first-child -{ - border-left: 1px solid #ccc; -} - -.analyzer-data-column -{ - display: flex; - flex-direction: column; - - justify-content: flex-end; - flex: 1; -} - -.analyzer-data -{ - height: 20px; - margin: 0 1px; - - background-color: #c5c5c5; -} - -.analyzer-data.first -{ - background-color: #1c00db; - - order: 3; -} - -.analyzer-data.second -{ - background-color: #4dd0e1; - - order: 2; -} - -.analyzer-data.third -{ - background-color: #ff9800; - - order: 1; -} - -/*.analyzer-data:first-child -{ - border-top-left-radius: 4px; - border-top-right-radius: 4px; -}*/ -.analyzer-bottom -{ - display: flex; - - margin: 14px 0 0; - - justify-content: space-between; -} - -.analyzer-bottom > div .label -{ - margin: 0 0 2px; -} - -.analyzer-bottom > div:first-child .label -{ - color: #1c00db; -} - -.analyzer-bottom > div:nth-child(2) .label -{ - color: #4dd0e1; -} - -.analyzer-bottom > div:nth-child(3) .label -{ - color: #ff9800; -} diff --git a/unstable/src/template/css/template-parts/appearance.css b/unstable/src/template/css/template-parts/appearance.css deleted file mode 100644 index 85ec76165..000000000 --- a/unstable/src/template/css/template-parts/appearance.css +++ /dev/null @@ -1,129 +0,0 @@ -/*--------------------------------------------------------------- ->>> APPEARANCE ----------------------------------------------------------------*/ - -.satus-main__container[data-appearance='appearance'] .satus-button -{ - position: absolute; - - box-sizing: border-box; - padding: 0; - - transition-duration: .5s; - transition-property: transform, box-shadow; - transform: scale(1); - text-align: center; - - border: 1px solid var(--main-appearance-shadow, #dfdfdf); - border-radius: 6px; - box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0); - - background: var(--satus-theme-section); - - justify-content: center; - align-items: center; -} - -.satus-main__container[data-appearance='appearance'] .satus-button:hover -{ - z-index: 9; - - transition-duration: .25s; - transform: scale(1.03) translate(-8px, -4px); - - box-shadow: 1px 1px 0 0 var(--main-appearance-shadow, #dfdfdf), 2px 2px 0 0 var(--main-appearance-shadow, #dfdfdf), 3px 3px 0 0 var(--main-appearance-shadow, #dfdfdf), 4px 4px 0 0 var(--main-appearance-shadow, #dfdfdf), 5px 6px 4px 0 rgba(0, 0, 0, .1); -} - -.satus-main__container[data-appearance='appearance'] .satus-button--header -{ - top: 16px; - left: 16px; - - width: calc(100% - 32px); - height: 40px; - min-height: auto; -} - -.satus-main__container[data-appearance='appearance'] .satus-button--header:hover -{ - transform: scale(1.03) translate(-9px, -4px); -} - -.satus-main__container[data-appearance='appearance'] .satus-button--player -{ - top: 64px; - left: 16px; - - width: calc(70% - 32px); - height: 96px; - min-height: auto; - - color: #eee; - border-color: #333; - background-color: #444; -} - -.satus-main__container[data-appearance='appearance'] .satus-button--player .label -{ - color: #fff; -} - -.satus-main__container[data-appearance='appearance'] .satus-button--player:hover -{ - transform: scale(1.03) translate(-7px, -4px); - - box-shadow: 1px 1px 0 0 #333, 2px 2px 0 0 #333, 3px 3px 0 0 #333, 4px 4px 0 0 #333, 5px 6px 4px 0 rgba(0, 0, 0, .1); -} - -.satus-main__container[data-appearance='appearance'] .satus-button--details -{ - top: 168px; - left: 16px; - - width: calc(70% - 32px); - height: 56px; - min-height: auto; -} - -.satus-main__container[data-appearance='appearance'] .satus-button--description -{ - top: 13.5rem; - left: 1rem; - - width: calc(70% - 2rem); - height: 3.5rem; - min-height: 3.5rem; -} - -.satus-main__container[data-appearance='appearance'] .satus-button--comments -{ - top: 232px; - left: 16px; - - width: calc(70% - 32px); - height: 80px; - min-height: auto; - - background: var(--satus-theme-section) -} - -.satus-main__container[data-appearance='appearance'] .satus-button--footer -{ - top: 320px; - left: 16px; - - width: calc(70% - 32px); - height: 64px; - min-height: auto; - - background: var(--satus-theme-section) -} - -.satus-main__container[data-appearance='appearance'] .satus-button--sidebar -{ - top: 64px; - left: calc(70% - 8px); - - width: calc(30% - 8px); - height: 160px; -} diff --git a/unstable/src/template/css/template-parts/blacklist.css b/unstable/src/template/css/template-parts/blacklist.css deleted file mode 100644 index 9c3e27515..000000000 --- a/unstable/src/template/css/template-parts/blacklist.css +++ /dev/null @@ -1,102 +0,0 @@ -/*----------------------------------------------------------------------------- -# BLACKLIST CATEGORY ------------------------------------------------------------------------------*/ - -.satus-section.satus-section--blacklist -{ - position: relative; - - overflow: hidden; - flex-direction: column; - - width: calc(100% - 32px); - height: 116px; - margin: 8px 16px 0; - - transition: opacity .25s; - - opacity: 1; - border-radius: 10px; - background-color: #000; - background-position: center; - background-size: cover; - - flex: unset; - align-items: flex-start; -} - -.satus-section.satus-section--blacklist.removing -{ - opacity: 0; -} - -.satus-section.satus-section--blacklist::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - margin: 0; - - content: ''; - - background: rgba(0, 0, 0, .5); -} - -.satus-section.satus-section--blacklist > .label -{ - font-size: 16px; - font-weight: 700; - - position: absolute; - z-index: 1; - bottom: 28px; - - text-transform: uppercase; - - opacity: 1; - color: #fff; -} - -.satus-section.satus-section--blacklist::after -{ - position: absolute; - z-index: 1; - bottom: 16px; - left: 16px; - - content: attr(data-label); - - color: rgba(255, 255, 255, .5); -} - -.satus-section.satus-section--blacklist > .satus-section -{ - position: absolute; - z-index: 999; - bottom: 0; - - visibility: hidden; - - width: 100%; - margin: 0; - padding: 0; - - transition: .15s; - - opacity: 0; - border: none; - border-radius: 0; - background: rgba(255, 255, 255, .95); - - justify-content: center; -} - -.satus-section.satus-section--blacklist:hover > .satus-section -{ - visibility: visible; - - opacity: 1; -} \ No newline at end of file diff --git a/unstable/src/template/css/template-parts/home.css b/unstable/src/template/css/template-parts/home.css deleted file mode 100644 index 84555a6cd..000000000 --- a/unstable/src/template/css/template-parts/home.css +++ /dev/null @@ -1,185 +0,0 @@ -/*--------------------------------------------------------------- ->>> HOME ------------------------------------------------------------------ -1.0 ----------------------------------------------------------------*/ - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-section -{ - display: flex; - - width: 100%; - margin-top: 16px; - padding: 0; - - border: none; - border-radius: 0; - background-color: transparent; - - flex-wrap: wrap; -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button:not(.satus-button--ad) -{ - position: relative; - - flex-direction: column; - - width: 64px; - height: 86px; - margin: 0 18px 14px; - padding: 0; - - cursor: default; -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button:not(.satus-button--ad):focus, -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button:not(.satus-button--ad):hover -{ - background-color: transparent; -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button__label -{ - margin-left: 0; -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button:not(.satus-button--ad) svg, -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--shortcut__icon -{ - display: block; - overflow: visible; - - width: 28px; - height: 28px; - margin: 0 0 5px 0; - padding: 16px; - - cursor: pointer; - transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; - - opacity: .95; - border-radius: 50%; - background: linear-gradient(135deg, #f8d266, #f17953); - box-shadow: 0 2px 1px 1px rgba(230, 109, 70, .7), 0 3px 5px rgba(0,0,0,.35); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button:not(.satus-button--ad) svg:focus, -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button:not(.satus-button--ad) svg:hover -{ - transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; - transform: translateY(4px) scale(.975); - - box-shadow: 0 1px 1px 0 rgba(230, 109, 70, .7), 0 1px 2px rgba(0,0,0,.35); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--general svg -{ - width: 26px; - height: 26px; - padding: 19px 17px 15px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--appearance svg -{ - width: 26px; - height: 26px; - padding: 19px 17px 15px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--themes svg -{ - padding: 17px 16px 15px 16px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--player svg -{ - width: 26px; - height: 26px; - padding: 19px 15px 15px 19px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--playlist svg -{ - padding: 17px 16px 15px 16px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--channel svg -{ - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--shortcut svg -{ - width: 26px; - height: 26px; - padding: 19px 17px 15px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--mixer svg -{ - padding: 17px 16px 15px 16px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--blacklist svg -{ - width: 26px; - height: 26px; - padding: 18px 17px 16px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-button--analyzer svg -{ - width: 26px; - height: 26px; - padding: 18px 17px 16px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-button:not(.satus-button--ad) svg -{ - fill: transparent; - stroke: var(--satus-theme-primary); -} - - - -html[it-it-general='false'] .satus-button--general, -html[it-it-appearance='false'] .satus-button--appearance, -html[it-it-themes='false'] .satus-button--themes, -html[it-it-player='false'] .satus-button--player, -html[it-it-playlist='false'] .satus-button--playlist, -html[it-it-channel='false'] .satus-button--channel, -html[it-it-shortcuts='false'] .satus-button--shortcut, -html[it-it-blacklist='false'] .satus-button--blacklist, -html[it-it-analyzer='false'] .satus-button--analyzer -{ - display: none; -} diff --git a/unstable/src/template/css/template-parts/mixer.css b/unstable/src/template/css/template-parts/mixer.css deleted file mode 100644 index 0ceb89e9a..000000000 --- a/unstable/src/template/css/template-parts/mixer.css +++ /dev/null @@ -1,87 +0,0 @@ -/*----------------------------------------------------------------------------- -# MIXER CATEGORY ------------------------------------------------------------------------------*/ - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer -{ - position: relative; - - overflow: hidden; - flex-direction: column; - - width: calc(100% - 32px); - height: 128px; - margin: 8px 16px 0; - - border: unset; - border-radius: 10px; - - flex: unset; - align-items: flex-start; -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - - background: rgba(0, 0, 0, .5); -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer > .satus-section -{ - position: absolute; - bottom: 0; - - visibility: hidden; - - width: 100%; - margin: 0; - padding: 0; - - transition: 200ms; - transform: translateY(32px); - - opacity: 0; - border: unset; - border-radius: unset; -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer:hover > .satus-section -{ - visibility: visible; - - transform: translateY(0); - - opacity: 1; -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer.noconnection > .satus-section > div -{ - visibility: hidden; - - pointer-events: none; -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer.noconnection > .satus-section::after -{ - font-size: 18px; - font-weight: 500; - - position: absolute; - top: 50%; - - width: 100%; - - content: attr(data-no-connection-label); - transform: translateY(-50%); - text-align: center; - - opacity: .8; -} \ No newline at end of file diff --git a/unstable/src/template/css/template-parts/player.css b/unstable/src/template/css/template-parts/player.css deleted file mode 100644 index ea3b9a43c..000000000 --- a/unstable/src/template/css/template-parts/player.css +++ /dev/null @@ -1,19 +0,0 @@ -/*--------------------------------------------------------------- ->>> PLAYER ----------------------------------------------------------------*/ - -#forced-playback-speed + *, -#forced-volume + * -{ - pointer-events: none; - - opacity: .5; -} - -[it-player-forced-playback-speed=true] #forced-playback-speed + *, -[it-player-forced-volume=true] #forced-volume + * -{ - pointer-events: all; - - opacity: 1; -} diff --git a/unstable/src/template/css/template-parts/settings.css b/unstable/src/template/css/template-parts/settings.css deleted file mode 100644 index a46dab49a..000000000 --- a/unstable/src/template/css/template-parts/settings.css +++ /dev/null @@ -1,19 +0,0 @@ -.satus-main__container[data-appearance='about'] .satus-text -{ - display: flex; - - box-sizing: border-box; - width: 100%; - min-height: 48px; - padding: 0 16px; - - justify-content: space-between; - align-items: center; -} - -.satus-main__container[data-appearance='about'] .satus-text__value -{ - text-align: right; - - opacity: .7; -} diff --git a/unstable/src/template/css/template-parts/themes.css b/unstable/src/template/css/template-parts/themes.css deleted file mode 100644 index 32d1b89d0..000000000 --- a/unstable/src/template/css/template-parts/themes.css +++ /dev/null @@ -1,365 +0,0 @@ -/*----------------------------------------------------------------------------- -# THEMES CATEGORY ------------------------------------------------------------------------------*/ - -.satus-main__container[data-appearance='themes'] .satus-switch:first-child -{ - margin-top: 16px; -} - -.satus-main__container[data-appearance='themes'] .satus-switch:last-child -{ - margin-bottom: 16px; -} - -.satus-main__container[data-appearance='themes'] .satus-switch -{ - width: calc(100% - 16px); - max-width: 900px; - height: 80px; - margin: 8px auto; - - border-radius: 8px; -} - -.satus-main__container[data-appearance='themes'] .satus-switch__label -{ - font-size: 15px; - font-weight: 500; - - color: #eee; - text-shadow: 0 1px 3px rgba(0, 0, 0, .7); -} - -.satus-switch--dark -{ - position: relative; - - overflow: hidden; - - background: linear-gradient(#0d1216, #353d46) !important; -} - -.satus-switch--dark::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - animation-name: satus-switch--dark; - animation-duration: 4s; - animation-timing-function: ease-in-out; - animation-iteration-count: infinite; - pointer-events: none; - - background: radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%) !important; - background-repeat: no-repeat !important; - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px !important; - background-size: 50px 50px, 50px 50px, 100px 100px, 75px 75px !important; - - filter: blur(8px); -} - -@keyframes satus-switch--dark -{ - 0% - { - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; - } - - 50% - { - background-position: 20px 20px, 230px -20px, 0 -40px, 160px 10px; - } - - 100% - { - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; - } -} - -.satus-switch--night -{ - position: relative; - - overflow: hidden; - - animation-name: satus-switch--night; - animation-duration: .75s; - animation-iteration-count: infinite; - - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5) !important; - background-repeat: no-repeat !important; - background-position: 75% 80%, 35% 65%, 30% 10%, 50% 40%, 10% 80%, 90% 10%, 0 0 !important; - background-size: 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, auto !important; -} - -@keyframes satus-switch--night -{ - 0% - { - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } - - 25% - { - background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } - - 50% - { - background-image: radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .9) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } - - 75% - { - background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } - - 100% - { - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } -} - -.satus-switch--dawn -{ - position: relative; - - overflow: hidden; - - background: linear-gradient(#ed74a9, #ffba99) !important; -} - -.satus-switch--dawn::before -{ - position: absolute; - right: 1rem; - bottom: -5rem; - - width: 10rem; - height: 10rem; - - content: ''; - animation-name: satus-switch--dawn; - animation-duration: .75s; - animation-iteration-count: infinite; - pointer-events: none; - - border-radius: 50%; - background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; -} - -@keyframes satus-switch--dawn -{ - 0% - { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); - } - - 50% - { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, - rgba(255, 255, 231, .30) 20%, - rgba(255, 255, 231, .30) 35%, - rgba(255, 255, 231, .20) 35%, - rgba(255, 255, 231, .20) 55%, - rgba(255, 255, 231, .10) 55%, - rgba(255, 255, 231, .10) 75%, transparent 75%); - } - - 100% - { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); - } -} - -.satus-switch--sunset -{ - position: relative; - - overflow: hidden; - - background: linear-gradient(#2f3364, #a96165) !important; -} - -.satus-switch--sunset::before -{ - position: absolute; - top: -1rem; - left: 50%; - - overflow: hidden; - - width: 8rem; - height: 8rem; - - content: ''; - transform: translate(-50%, 0%); - pointer-events: none; - - border-radius: 50%; - background: linear-gradient(#fa7965, #f56264, transparent) !important; -} - -.satus-switch--desert -{ - position: relative; - - overflow: hidden; - - background-image: radial-gradient(#ffe498 50%, transparent 50%), - linear-gradient(#9dc2ee, #f5fdff) !important; - background-repeat: no-repeat !important; - background-position: -120px 36px, 0 !important; - background-size: 240%, 100% !important; -} - -.satus-switch--desert::before -{ - position: absolute; - top: -100%; - left: 40%; - - width: 10rem; - height: 10rem; - - content: ''; - animation-name: satus-switch--desert; - animation-duration: .75s; - animation-delay: .5s; - animation-iteration-count: infinite; - pointer-events: none; - - border-radius: 50%; - background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; -} - -@keyframes satus-switch--desert -{ - 0% - { - background: radial-gradient(#fefefe 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); - } - - 50% - { - background: radial-gradient(#fefefe 20%, - rgba(255, 255, 231, .30) 20%, - rgba(255, 255, 231, .30) 35%, - rgba(255, 255, 231, .20) 35%, - rgba(255, 255, 231, .20) 55%, - rgba(255, 255, 231, .10) 55%, - rgba(255, 255, 231, .1) 75%, transparent 75%); - } - - 100% - { - background: radial-gradient(#fefefe 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); - } -} - -.satus-switch--plain -{ - position: relative; - - overflow: hidden; - - background-image: radial-gradient(#dea975 50%, transparent 50%), - radial-gradient(#e8b887 50%, transparent 50%), - radial-gradient(#f1cc9f 50%, transparent 50%), - radial-gradient(#f3ddb8 50%, transparent 50%), - linear-gradient(#abceb8, #e7ede1) !important; - background-repeat: no-repeat !important; - background-position: -50px 50px, -370px 40px, 0 36px, -360px 26px, 0 !important; - background-size: 240%, 240%, 240%, 240%, 100% !important; -} - -.satus-switch--plain::before -{ - position: absolute; - top: -70%; - left: 10%; - - width: 7rem; - height: 7rem; - - content: ''; - animation-name: satus-switch--plain; - animation-duration: .75s; - animation-delay: .2s; - animation-iteration-count: infinite; - pointer-events: none; - - border-radius: 50%; - background: radial-gradient(#fff 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; -} - -.satus-switch--black -{ - background: #000 !important; -} diff --git a/unstable/src/template/css/themes.css b/unstable/src/template/css/themes.css deleted file mode 100644 index a9f931fbe..000000000 --- a/unstable/src/template/css/themes.css +++ /dev/null @@ -1,262 +0,0 @@ -/*--------------------------------------------------------------- ->>> THEMES ------------------------------------------------------------------ -# Default -# Red -# Dark -# Night -# Dawn -# Sunset -# Desert -# Plain -# Black -# Red ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# DEFAULT ----------------------------------------------------------------*/ - -html -{ - --satus-theme-primary: #f6b465; -} - - -/*--------------------------------------------------------------- -# RED ----------------------------------------------------------------*/ - -html[stable-version] -{ - --satus-theme-primary: #ED213A; -} - -html:not([it-improvedtube-home='list'])[stable-version] .satus-main__container[data-appearance='home'] .satus-button:not(.satus-button--ad) svg -{ - background: linear-gradient(135deg, #ED213A, #93291E); - box-shadow: 0 2px 1px 1px rgba(147, 41, 30, 0.7), 0 3px 5px rgba(0,0,0,.35); -} - - -/*--------------------------------------------------------------- -# DARK ----------------------------------------------------------------*/ - -html[theme="dark"] -{ - --satus-theme-primary: #f6b465; - - --satus-theme-dialog: #2c2b2c; - --satus-theme-dialog-text: #b5b5b5; - - --satus-theme-header: #343334; - --satus-theme-header-text: #b5b5b5; - - --satus-theme-main: #2c2b2c; - --satus-theme-main-text: #b5b5b5; - - --satus-theme-section: #343334; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-shortcut: #444; - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - -/*--------------------------------------------------------------- -# NIGHT ----------------------------------------------------------------*/ - -html[theme="night"] -{ - --satus-theme-primary: #f6b465; - - --satus-theme-dialog: #61a7f5; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #61a7f5; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #3a48b4; - --satus-theme-main-text: #fafafa; - - --satus-theme-section: #61a7f5; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-shortcut: #444; - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -# DAWN ----------------------------------------------------------------*/ - -html[theme="dawn"] -{ - --satus-theme-primary: #f6b465; - - --satus-theme-dialog: #ffba99; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #ffba99; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #ed74a9; - --satus-theme-main-text: #eee; - - --satus-theme-section: #ffba99; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-shortcut: #444; - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -# SUNSET ----------------------------------------------------------------*/ - -html[theme="sunset"] -{ - --satus-theme-primary: #f6b465; - - --satus-theme-dialog: #a96165; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #a96165; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #2f3364; - --satus-theme-main-text: #eee; - - --satus-theme-section: #a96165; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-shortcut: #444; - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -# DESERT ----------------------------------------------------------------*/ - -html[theme="desert"] -{ - --satus-theme-primary: #f6b465; - - --satus-theme-dialog: #9dc2ee; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #9dc2ee; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #ffe498; - --satus-theme-main-text: #eee; - - --satus-theme-section: #9dc2ee; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-shortcut: #444; - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -# PLAIN ----------------------------------------------------------------*/ - -html[theme="plain"] -{ - --satus-theme-primary: #f6b465; - - --satus-theme-dialog: #abceb8; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #abceb8; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #dea975; - --satus-theme-main-text: #eee; - - --satus-theme-section: #abceb8; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-shortcut: #444; - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -# BLACK ----------------------------------------------------------------*/ - -html[theme="black"] -{ - --satus-theme-primary: #f6b465; - - --satus-theme-dialog: #222; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #222; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #111; - --satus-theme-main-text: #eee; - - --satus-theme-section: #222; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-shortcut: #444; - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} \ No newline at end of file diff --git a/unstable/src/template/js/header.js b/unstable/src/template/js/header.js deleted file mode 100644 index 6a71c25d6..000000000 --- a/unstable/src/template/js/header.js +++ /dev/null @@ -1,126 +0,0 @@ -var Menu = { - header: { - type: 'header', - - section_start: { - type: 'section', - class: 'satus-section--align-start', - - button_back: { - type: 'button', - class: 'satus-button--back', - before: '', - onclick: function() { - if (document.querySelector('.satus-dialog__scrim')) { - document.querySelector('.satus-dialog__scrim').click(); - } else { - document.querySelector('.satus-main').back(); - } - } - }, - title: { - type: 'text', - class: 'satus-text--title', - innerText: 'ImprovedTube', - dataset: { - version: chrome && chrome.runtime && chrome.runtime.getManifest ? chrome.runtime.getManifest().version : '' - } - } - }, - section_end: { - type: 'section', - class: 'satus-section--align-end', - - button_search: { - type: 'button', - before: '', - onclick: function() { - document.querySelector('.satus-main').open({ - appearanceKey: 'search' - }, function() { - satus.render({ - type: 'dialog', - class: 'satus-dialog--search', - onclose: function() { - document.querySelector('.satus-main').back(); - }, - - input: { - type: 'text-field', - placeholder: 'search', - oninput: function() { - if (this.value.length > 0) { - satus.search(this.value, Menu, function(results) { - var sorted_results = []; - - document.querySelector('.satus-main__container').innerHTML = ''; - - for (var key in results) { - results[key].type = 'section'; - results[key].variant = 'card'; - - sorted_results.push({ - type: 'text', - label: key, - variant: 'section-label' - }); - sorted_results.push(results[key]); - } - - var scroll = satus.components.scrollbar(document.querySelector('.satus-main__container')); - - satus.render(sorted_results, scroll); - }, true); - } else { - document.querySelector('.satus-main__container').innerHTML = ''; - - satus.render({}, document.querySelector('.satus-main__container')); - } - } - } - }); - }); - } - }, - button_vert: { - type: 'button', - before: '', - onclick: { - type: 'dialog', - class: 'satus-dialog--vertical-menu', - - email: { - type: 'button', - variant: 'list-item', - label: 'Email', - title: 'bugs@improvedtube.com', - before: '', - onclick: function() { - window.open('mailto:bugs@improvedtube.com', '_blank'); - } - }, - github: { - type: 'button', - variant: 'list-item', - label: 'GitHub', - title: '/ImprovedTube/ImprovedTube', - before: '', - onclick: function() { - window.open('https://github.com/ImprovedTube/ImprovedTube/', '_blank'); - } - }, - website: { - type: 'button', - variant: 'list-item', - label: 'Website', - title: 'improvedtube.com', - before: '', - onclick: function() { - window.open('http://www.improvedtube.com/', '_blank'); - } - } - } - } - } - } -}; diff --git a/unstable/src/template/js/index.js b/unstable/src/template/js/index.js deleted file mode 100644 index 793a4767b..000000000 --- a/unstable/src/template/js/index.js +++ /dev/null @@ -1,59 +0,0 @@ -/*------------------------------------------------------ ->>> INDEX --------------------------------------------------------- -# Import -# On changed -------------------------------------------------------*/ - -/*------------------------------------------------------ -# IMPORT -------------------------------------------------------*/ - -satus.storage.import(function(items) { - var html = document.documentElement; - - if ( - chrome && - chrome.runtime && - chrome.runtime.getManifest().version_name.indexOf('beta') === -1 - ) { - html.setAttribute('stable-version', ''); - } - - for (var key in items) { - html.setAttribute('it-' + key.replace(/_/g, '-'), items[key]); - } - - if (items.default_dark_theme === true) { - html.setAttribute('theme', 'dark'); - } else if (items.night_theme === true) { - html.setAttribute('theme', 'night'); - } else if (items.dawn_theme === true) { - html.setAttribute('theme', 'dawn'); - } else if (items.sunset_theme === true) { - html.setAttribute('theme', 'sunset'); - } else if (items.desert_theme === true) { - html.setAttribute('theme', 'desert'); - } else if (items.plain_theme === true) { - html.setAttribute('theme', 'plain'); - } else if (items.black_theme === true) { - html.setAttribute('theme', 'black'); - } - - satus.locale.import(items.language, function() { - satus.updateStorageKeys(Menu, function() { - satus.render(Menu, document.body); - }); - }); -}); - - -/*------------------------------------------------------ -# ON CHANGED -------------------------------------------------------*/ - -satus.storage.onChanged(function(items) { - for (var key in items) { - document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), items[key].newValue); - } -}); \ No newline at end of file diff --git a/unstable/src/template/js/main.js b/unstable/src/template/js/main.js deleted file mode 100644 index 1753c4171..000000000 --- a/unstable/src/template/js/main.js +++ /dev/null @@ -1,22 +0,0 @@ -Menu.main = { - type: 'main', - appearanceKey: 'home', - onchange: function() { - document.querySelector('.satus-text--title').innerText = satus.locale.getMessage(this.history[this.history.length - 1].label) || 'ImprovedTube'; - }, - - section: { - type: 'section', - variant: 'card' - }, - - footer: { - type: 'button', - class: 'satus-button--ad', - label: 'DARK MODE', - title: 'Dark Mode', - onclick: function() { - window.open('https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl', '_blank'); - } - } -}; diff --git a/unstable/src/template/js/template-parts/analyzer.js b/unstable/src/template/js/template-parts/analyzer.js deleted file mode 100644 index c7ca00bd9..000000000 --- a/unstable/src/template/js/template-parts/analyzer.js +++ /dev/null @@ -1,148 +0,0 @@ -Menu.main.section.analyzer = { - type: 'button', - before: '', - label: 'analyzer', - class: 'satus-button--analyzer', - appearanceKey: 'analyzer', - - activ_section: { - type: 'section', - variant: 'card', - - analyzer_activation: { - type: 'switch', - label: 'activate' - } - }, - - section: { - type: 'section', - variant: 'card', - style: { - 'flex-direction': 'column', - 'align-items': 'flex-start' - }, - onrender: function() { - var data = satus.storage.get('analyzer') || {}, - all_data = {}, - all_data_sort = [], - all_time_value = 0, - current_date = new Date().toDateString(), - container = document.createElement('div'), - top_text_container = document.createElement('div'), - today_at = document.createElement('div'), - watch_time = document.createElement('div'), - all_time = document.createElement('div'), - chart = document.createElement('div'), - bottom_text_container = document.createElement('div'); - - container.className = 'analyzer-container'; - top_text_container.className = 'analyzer-top-text'; - watch_time.className = 'analyzer-watch-time'; - today_at.className = 'analyzer-today-at'; - all_time.className = 'analyzer-all-time'; - chart.className = 'analyzer-chart'; - bottom_text_container.className = 'analyzer-bottom'; - - if (data[current_date]) { - for (let i in data[current_date]) { - if (data[current_date][i]) { - for (let j in data[current_date][i]) { - if (!all_data[j]) { - all_data[j] = 0; - } - - all_data[j] += data[current_date][i][j]; - } - } - } - } - - for (let i in all_data) { - all_data_sort.push([i, all_data[i]]); - all_time_value += all_data[i]; - } - - all_data_sort.sort(function(a, b) { - return b[1] - a[1]; - }); - - var now_minutes = new Date().getMinutes(); - - watch_time.innerText = satus.locale.getMessage('watchTime') || 'watchTime'; - today_at.innerText = satus.locale.getMessage('todayAt') + ' ' + (new Date().getHours() + ':' + (now_minutes < 10 ? '0' + now_minutes : now_minutes)) || 'todayAt'; - all_time.innerText = Math.floor(all_time_value / 60) + 'h ' + (all_time_value - Math.floor(all_time_value / 60) * 60) + 'm'; - - let h = 0; - - for (let i = 0; i < 4; i++) { - let column = document.createElement('div'); - - column.className = 'analyzer-column'; - - for (let j = 0; j < 6; j++) { - let hours = h + ':00'; - - h++; - - let data_column = document.createElement('div'); - - data_column.className = 'analyzer-data-column'; - - if (data[current_date] && data[current_date][hours]) { - for (let k in data[current_date][hours]) { - let block = document.createElement('div'); - - block.className = 'analyzer-data'; - - let height = data[current_date][hours][k] * 100 / 60; - - block.title = k; - block.style.height = height + '%'; - - if (k === all_data_sort[0][0]) { - block.className += ' first'; - } else if (k === all_data_sort[1][0]) { - block.className += ' second'; - } else if (k === all_data_sort[2][0]) { - block.className += ' third'; - } - - data_column.appendChild(block); - } - } - - column.appendChild(data_column); - } - - chart.appendChild(column); - } - - - for (let i = 0; i < 3; i++) { - if (all_data_sort[i]) { - let cont = document.createElement('div'), - label = document.createElement('div'), - value = document.createElement('div'); - - label.className = 'label'; - - label.innerText = all_data_sort[i][0]; - value.innerText = Math.floor(all_data_sort[i][1] / 60) + 'h ' + (all_data_sort[i][1] - Math.floor(all_data_sort[i][1] / 60) * 60) + 'm'; - - cont.appendChild(label); - cont.appendChild(value); - bottom_text_container.appendChild(cont); - } - } - - container.appendChild(all_time); - container.appendChild(chart); - this.appendChild(top_text_container); - top_text_container.appendChild(watch_time); - top_text_container.appendChild(today_at); - container.appendChild(bottom_text_container); - this.appendChild(container); - } - } -}; \ No newline at end of file diff --git a/unstable/src/template/js/template-parts/appearance.js b/unstable/src/template/js/template-parts/appearance.js deleted file mode 100644 index d51357895..000000000 --- a/unstable/src/template/js/template-parts/appearance.js +++ /dev/null @@ -1,372 +0,0 @@ -Menu.main.section.appearance = { - type: 'button', - before: '', - label: 'appearance', - class: 'satus-button--appearance', - appearanceKey: 'appearance', - - header: { - type: 'button', - label: 'header', - class: 'satus-button--header', - - section: { - type: 'section', - variant: 'card', - - header_position: { - type: 'select', - label: 'position', - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'hidden', - value: 'hidden' - }, { - label: 'hover', - value: 'hover' - }, { - label: 'hiddenOnVideoPage', - value: 'hidden_on_video_page' - }, { - label: 'hoverOnVideoPage', - value: 'hover_on_video_page' - }, { - label: 'static', - value: 'static' - }], - tags: 'hide,hover,static,top' - }, - header_improve_logo: { - type: 'switch', - label: 'improveLogo', - tags: 'youtube' - }, - header_hide_right_buttons: { - type: 'switch', - label: 'hideRightButtons', - tags: 'user' - } - } - }, - player: { - type: 'button', - label: 'player', - class: 'satus-button--player', - - section: { - type: 'section', - variant: 'card', - - player_hide_annotations: { - type: 'switch', - label: 'hideAnnotations', - tags: 'hide,remove,elements' - }, - player_hide_cards: { - type: 'switch', - label: 'hideCards', - tags: 'hide,remove,elements' - }, - player_show_cards_on_mouse_hover: { - type: 'switch', - label: 'showCardsOnMouseHover', - tags: 'hide,remove,elements' - }, - player_size: { - type: 'select', - label: 'playerSize', - options: [{ - label: 'doNotChange', - value: 'do_not_change' - }, { - label: 'fullWindow', - value: 'full_window' - }, { - label: 'fitToWindow', - value: 'fit_to_window' - }, { - label: '240p', - value: '240p' - }, { - label: '360p', - value: '360p' - }, { - label: '480p', - value: '480p' - }, { - label: '576p', - value: '576p' - }, { - label: '720p', - value: '720p' - }, { - label: '1080p', - value: '1080p' - }, { - label: '1440p', - value: '1440p' - }, { - label: '2160p', - value: '2160p' - }] - }, - forced_theater_mode: { - type: 'switch', - label: 'forcedTheaterMode', - tags: 'wide' - }, - player_color: { - label: 'playerColor', - type: 'select', - options: [{ - label: 'red', - value: 'red' - }, { - label: 'pink', - value: 'pink' - }, { - label: 'purple', - value: 'purple' - }, { - label: 'deepPurple', - value: 'deep_purple' - }, { - label: 'indigo', - value: 'indigo' - }, { - label: 'blue', - value: 'blue' - }, { - label: 'lightBlue', - value: 'light_blue' - }, { - label: 'cyan', - value: 'cyan' - }, { - label: 'teal', - value: 'teal' - }, { - label: 'green', - value: 'green' - }, { - label: 'lightGreen', - value: 'light_green' - }, { - label: 'lime', - value: 'lime' - }, { - label: 'yellow', - value: 'yellow' - }, { - label: 'amber', - value: 'amber' - }, { - label: 'orange', - value: 'orange' - }, { - label: 'deepOrange', - value: 'deep_orange' - }, { - label: 'brown', - value: 'brown' - }, { - label: 'blueGray', - value: 'blue_gray' - }, { - label: 'white', - value: 'white' - }], - tags: 'style' - }, - player_transparent_background: { - type: 'switch', - label: 'transparentBackground' - }, - player_hide_endscreen: { - type: 'switch', - label: 'hideEndscreen' - }, - player_hd_thumbnail: { - type: 'switch', - label: 'hdThumbnail', - tags: 'preview' - }, - hide_scroll_for_details: { - type: 'switch', - label: 'hideScrollForDetails', - tags: 'remove,hide' - }, - always_show_progress_bar: { - type: 'switch', - label: 'alwaysShowProgressBar' - }, - hide_gradient_bottom: { - type: 'switch', - label: 'hideGradientBottom' - } - } - }, - details: { - type: 'button', - label: 'details', - class: 'satus-button--details', - - section: { - type: 'section', - variant: 'card', - - hide_details: { - type: 'switch', - label: 'hideDetails', - tags: 'hide,remove' - }, - description: { - type: 'select', - label: 'description', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'expanded', - value: 'expanded' - }, { - label: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - hide_views_count: { - type: 'switch', - label: 'hideViewsCount', - tags: 'hide,remove' - }, - likes: { - type: 'select', - label: 'likes', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'iconsOnly', - value: 'icons_only' - }, { - label: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - how_long_ago_the_video_was_uploaded: { - type: 'switch', - label: 'howLongAgoTheVideoWasUploaded' - }, - channel_videos_count: { - type: 'switch', - label: 'showChannelVideosCount' - }, - red_dislike_button: { - type: 'switch', - label: 'redDislikeButton' - } - } - }, - sidebar: { - type: 'button', - label: 'sidebar', - class: 'satus-button--sidebar', - - section: { - type: 'section', - variant: 'card', - - sidebar_left: { - type: 'switch', - label: 'Sidebar on the Left' - }, - thumbnails_right: { - type: 'switch', - label: 'Thumbnails on the Right' - }, - related_videos: { - type: 'select', - label: 'relatedVideos', - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'collapsed', - value: 'collapsed' - }, { - label: 'hidden', - value: 'hidden' - }], - tags: 'right' - }, - - livechat: { - type: 'select', - label: 'liveChat', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'collapsed', - value: 'collapsed' - }, { - label: 'hidden', - value: 'hidden' - }] - }, - hide_playlist: { - type: 'switch', - label: 'hidePlaylist' - } - } - }, - comments: { - type: 'button', - label: 'comments', - class: 'satus-button--comments', - - section: { - type: 'section', - variant: 'card', - - comments: { - type: 'select', - label: 'comments', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'collapsed', - value: 'collapsed' - }, { - label: 'hidden', - value: 'hidden' - }] - } - } - }, - footer: { - type: 'button', - label: 'footer', - class: 'satus-button--footer', - - section: { - type: 'section', - variant: 'card', - - hide_footer: { - type: 'switch', - label: 'hideFooter', - tags: 'bottom' - } - } - } -}; diff --git a/unstable/src/template/js/template-parts/blacklist.js b/unstable/src/template/js/template-parts/blacklist.js deleted file mode 100644 index a11d3f4c0..000000000 --- a/unstable/src/template/js/template-parts/blacklist.js +++ /dev/null @@ -1,172 +0,0 @@ -Menu.main.section.blacklist = { - type: 'button', - before: '', - label: 'blacklist', - class: 'satus-button--blacklist', - appearanceKey: 'blacklist', - - section_activate: { - type: 'section', - variant: 'card', - - blacklist_activate: { - type: 'switch', - label: 'activate' - } - }, - - section: { - type: 'section', - variant: 'card', - - channels: { - type: 'button', - variant: 'list-item', - label: 'channels', - onopen: function() { - var self = this; - - if (satus.storage.data.blacklist && satus.storage.data.blacklist.channels) { - var list = {}; - - for (var item in satus.storage.data.blacklist.channels) { - if (satus.storage.data.blacklist.channels[item] !== false) { - var title = satus.storage.data.blacklist.channels[item].title || ''; - - list[item] = { - type: 'section', - variant: 'card', - label: title.length > 20 ? title.substr(0, 20) + '...' : title, - class: 'satus-section--blacklist', - style: { - 'background-image': 'url(' + satus.storage.data.blacklist.channels[item].preview + ')', - 'background-color': '#000' - }, - - section: { - type: 'section', - variant: 'card', - - delete: { - type: 'button', - before: '', - onclick: function() { - delete satus.storage.data.blacklist.channels[item]; - - satus.storage.set('blacklist', satus.storage.data.blacklist); - - this.classList.add('removing'); - - setTimeout(function() { - self.remove(); - }, 250); - } - } - } - }; - } - } - - if (Object.keys(list).length === 0) { - list.section = { - type: 'section', - variant: 'card', - class: 'satus-section--message', - - error: { - type: 'text', - label: 'empty' - } - }; - } - - satus.render(list, this); - } else { - satus.render({ - type: 'section', - variant: 'card', - class: 'satus-section--message', - - error: { - type: 'text', - label: 'empty' - } - }, this); - } - } - }, - videos: { - type: 'button', - variant: 'list-item', - label: 'videos', - onopen: function() { - var self = this; - - if (satus.storage.data.blacklist && satus.storage.data.blacklist.videos) { - let list = {}; - - for (let item in satus.storage.data.blacklist.videos) { - if (satus.storage.data.blacklist.videos[item] !== false) { - let title = satus.storage.data.blacklist.videos[item].title || ''; - - list[item] = { - type: 'section', - variant: 'card', - label: title.length > 20 ? title.substr(0, 20) + '...' : title, - class: 'satus-section--blacklist', - style: { - 'background-image': 'url(https://img.youtube.com/vi/' + item + '/0.jpg)' - }, - - section: { - type: 'section', - - delete: { - type: 'button', - before: '', - onclick: function() { - delete satus.storage.data.blacklist.videos[item]; - - satus.storage.set('blacklist', satus.storage.data.blacklist); - this.parentNode.parentNode.classList.add('removing'); - - setTimeout(function() { - self.parentNode.parentNode.remove(); - }, 250); - } - } - } - }; - } - } - - if (Object.keys(list).length === 0) { - list.section = { - type: 'section', - variant: 'card', - class: 'satus-section--message', - - error: { - type: 'text', - label: 'empty' - } - }; - } - - satus.render(list, this); - } else { - satus.render({ - type: 'section', - variant: 'card', - class: 'satus-section--message', - - error: { - type: 'text', - label: 'empty' - } - }, this); - } - } - } - } -}; diff --git a/unstable/src/template/js/template-parts/channel.js b/unstable/src/template/js/template-parts/channel.js deleted file mode 100644 index 328e358cc..000000000 --- a/unstable/src/template/js/template-parts/channel.js +++ /dev/null @@ -1,36 +0,0 @@ -Menu.main.section.channel = { - type: 'button', - before: '', - label: 'channel', - class: 'satus-button--channel', - appearanceKey: 'channel', - - section: { - type: 'section', - variant: 'card', - - channel_default_tab: { - type: 'select', - label: 'defaultChannelTab', - options: [{ - label: 'home', - value: '/home' - }, { - label: 'videos', - value: '/videos' - }, { - label: 'playlists', - value: '/playlists' - }] - }, - channel_trailer_autoplay: { - type: 'switch', - label: 'trailerAutoplay', - value: true - }, - channel_hide_featured_content: { - type: 'switch', - label: 'hideFeaturedContent' - } - } -}; diff --git a/unstable/src/template/js/template-parts/general.js b/unstable/src/template/js/template-parts/general.js deleted file mode 100644 index 4d1ff2434..000000000 --- a/unstable/src/template/js/template-parts/general.js +++ /dev/null @@ -1,90 +0,0 @@ -Menu.main.section.general = { - type: 'button', - before: '', - label: 'general', - class: 'satus-button--general', - appearanceKey: 'general', - - section: { - type: 'section', - variant: 'card', - - youtube_home_page: { - type: 'select', - label: 'youtubeHomePage', - options: [{ - label: 'home', - value: '/' - }, { - label: 'trending', - value: '/feed/trending' - }, { - label: 'subscriptions', - value: '/feed/subscriptions' - }, { - label: 'history', - value: '/feed/history' - }, { - label: 'watchLater', - value: '/playlist?list=WL' - }, { - label: 'search', - value: 'search' - }], - tags: 'trending,subscriptions,history,watch,search' - }, - collapse_of_subscription_sections: { - type: 'switch', - label: 'collapseOfSubscriptionSections' - }, - add_scroll_to_top: { - type: 'switch', - label: 'addScrollToTop', - tags: 'up' - }, - remove_related_search_results: { - type: 'switch', - label: 'removeRelatedSearchResults' - }, - confirmation_before_closing: { - type: 'switch', - label: 'confirmationBeforeClosing', - tags: 'random prevent close exit' - }, - mark_watched_videos: { - type: 'switch', - label: 'markWatchedVideos' - }, - only_one_player_instance_playing: { - type: 'switch', - label: 'onlyOnePlayerInstancePlaying' - } - }, - - section_label__thumbnails: { - type: 'text', - variant: 'section-label', - label: 'thumbnails' - }, - - thumbnails_section: { - type: 'section', - variant: 'card', - - squared_user_images: { - type: 'switch', - label: 'squaredUserImages', - tags: 'avatar' - }, - hd_thumbnails: { - type: 'switch', - label: 'hdThumbnails', - tags: 'preview quality' - }, - hide_animated_thumbnails: { - type: 'switch', - label: 'hideAnimatedThumbnails', - tags: 'preview' - } - } -}; diff --git a/unstable/src/template/js/template-parts/header/active-features.js b/unstable/src/template/js/template-parts/header/active-features.js deleted file mode 100644 index f0b560db0..000000000 --- a/unstable/src/template/js/template-parts/header/active-features.js +++ /dev/null @@ -1,61 +0,0 @@ -Menu.header.section_end.button_vert.onclick.active_features = { - type: 'button', - variant: 'list-item', - before: '', - label: 'activeFeatures', - onclick: function() { - document.querySelector('.satus-dialog__scrim').click(); - }, - - section: { - type: 'section', - onrender: function() { - var component = this, - new_menu = {}, - storage = satus.storage; - - function search(string, object) { - var result = []; - - for (var i in object) { - if (object[i].type) { - if (/(button|select|shortcut|slider|switch)/.test(object[i].type)) { - if (i.indexOf(string) !== -1 || (object[i].tags && object[i].tags.indexOf(string) !== -1)) { - if (object[i].type.indexOf('button') === -1 || !object[i].label) { - new_menu[i] = object[i]; - } - } - } else { - var response = search(string, object[i]); - - if (response.length > 0) { - for (var j = 0, l = response.length; j < l; j++) { - result.push(response[i]); - } - } - } - } - } - - return result; - } - - for (var key in storage) { - search(key, Menu) - } - - setTimeout(function() { - if (Object.keys(new_menu).length > 0) { - satus.render(new_menu, component); - } else { - satus.render({ - text: { - type: 'text', - label: 'noActiveFeatures' - } - }, component); - } - }); - } - } -}; diff --git a/unstable/src/template/js/template-parts/header/mixer.js b/unstable/src/template/js/template-parts/header/mixer.js deleted file mode 100644 index 676e1b287..000000000 --- a/unstable/src/template/js/template-parts/header/mixer.js +++ /dev/null @@ -1,115 +0,0 @@ -Menu.header.section_end.button_vert.onclick.mixer = { - type: 'button', - variant: 'list-item', - before: '', - label: 'mixer', - class: 'satus-button--mixer', - appearanceKey: 'mixer', - onopen: function() { - var self = this; - - if (chrome && chrome.tabs) { - chrome.tabs.query({}, function(tabs) { - var mixer = {}; - - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - var tab = tabs[i]; - - if (/(\?|\&)v=/.test(tab.url)) { - mixer[i] = { - type: 'section', - class: 'satus-section--mixer', - style: { - 'background': 'url(https://img.youtube.com/vi/' + tab.url.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '/0.jpg) center center / cover no-repeat #000', - }, - - section: { - type: 'section', - dataset: { - 'noConnectionLabel': satus.locale.getMessage('tryToReloadThePage') || 'tryToReloadThePage' - }, - - mixer_volume: { - type: 'slider', - label: 'volume', - dataset: { - id: tab.id, - element: 'audio' - }, - max: 100, - onrender: function() { - var self = this; - - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'request_volume' - }, function(response) { - if (response) { - document.querySelector('div[data-element="audio"][data-id="' + Number(self.dataset.id) + '"]').change(response.value); - } else { - self.parentNode.parentNode.classList.add('noconnection'); - } - }); - }, - onchange: function(value) { - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'change_volume', - volume: value - }); - } - }, - mixer_playback_speed: { - type: 'slider', - label: 'playbackSpeed', - dataset: { - id: tab.id, - element: 'playback_speed' - }, - min: .1, - max: 8, - step: .05, - onrender: function() { - var self = this; - - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'request_playback_speed' - }, function(response) { - if (response) { - document.querySelector('div[data-element="playback_speed"][data-id="' + Number(self.dataset.id) + '"]').change(Number(response.value)); - } else { - self.parentNode.parentNode.classList.add('noconnection'); - } - }); - }, - onchange: function(value) { - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'change_playback_speed', - playback_speed: value - }); - } - } - } - }; - } - } - } - - if (Object.entries(mixer).length === 0) { - mixer.section = { - type: 'section', - - message: { - type: 'text', - class: 'satus-section--message', - label: 'noOpenVideoTabs' - } - }; - } - - document.querySelector('.satus-dialog__scrim').click(); - - satus.render(mixer, self); - }); - } - } -}; diff --git a/unstable/src/template/js/template-parts/header/settings.js b/unstable/src/template/js/template-parts/header/settings.js deleted file mode 100644 index 1272c2a46..000000000 --- a/unstable/src/template/js/template-parts/header/settings.js +++ /dev/null @@ -1,886 +0,0 @@ -Menu.header.section_end.button_vert.onclick.settings = { - type: 'button', - variant: 'list-item', - before: '', - label: 'settings', - parent: '.satus-main__container', - onclick: function() { - document.querySelector('.satus-dialog__scrim').click(); - }, - - section: { - type: 'section', - variant: 'card', - - developer_options: { - type: 'button', - variant: 'list-item', - before: '', - label: 'developerOptions', - - custom_js_section_label: { - type: 'text', - variant: 'section-label', - label: 'customJs' - }, - - custom_js_section: { - type: 'section', - variant: 'card', - - custom_js: { - type: 'text-field', - onrender: function() { - this.value = satus.storage.get('custom_js') || ''; - }, - oninput: function() { - satus.storage.set('custom_js', this.value); - } - } - }, - - custom_css_section_label: { - type: 'text', - variant: 'section-label', - label: 'customCss' - }, - - custom_css_section: { - type: 'section', - variant: 'card', - - custom_css: { - type: 'text-field', - onrender: function() { - this.value = satus.storage.get('custom_css') || ''; - }, - oninput: function() { - satus.storage.set('custom_css', this.value); - } - } - } - }, - }, - - section0: { - type: 'section', - variant: 'card', - - appearance: { - type: 'button', - variant: 'list-item', - before: '', - label: 'appearance', - - general: { - type: 'section', - variant: 'card', - label: 'general', - - header: { - type: 'button', - variant: 'list-item', - label: 'header', - - section: { - type: 'section', - variant: 'card', - - title_version: { - type: 'switch', - label: 'version' - } - } - }, - home: { - type: 'button', - variant: 'list-item', - label: 'home', - - section: { - type: 'section', - variant: 'card', - - improvedtube_home: { - type: 'select', - label: 'style', - options: [{ - label: 'bubbles', - value: 'bubbles' - }, { - label: 'list', - value: 'list' - }] - } - }, - - categories: { - type: 'section', - variant: 'card', - label: 'categories', - - it_general: { - type: 'switch', - label: 'general', - value: true - }, - it_appearance: { - type: 'switch', - label: 'appearance', - value: true - }, - it_themes: { - type: 'switch', - label: 'themes', - value: true - }, - it_player: { - type: 'switch', - label: 'player', - value: true - }, - it_playlist: { - type: 'switch', - label: 'playlist', - value: true - }, - it_channel: { - type: 'switch', - label: 'channel', - value: true - }, - it_shortcuts: { - type: 'switch', - label: 'shortcuts', - value: true - }, - it_mixer: { - type: 'switch', - label: 'mixer', - value: true - }, - it_analyzer: { - type: 'switch', - label: 'analyzer', - value: true - }, - it_blacklist: { - type: 'switch', - label: 'blacklist', - value: true - } - } - } - }, - icons: { - type: 'section', - variant: 'card', - label: 'icons', - - improvedtube_youtube_icon: { - label: 'improvedtubeIconOnYoutube', - type: 'select', - options: [{ - label: 'disabled', - value: 'disabled' - }, { - label: 'youtubeHeaderLeft', - value: 'header_left' - }, { - label: 'youtubeHeaderRight', - value: 'header_right' - }, { - label: 'draggable', - value: 'draggable' - }, { - label: 'belowPlayer', - value: 'below_player' - }] - }, - improvedtube_browser_icon: { - label: 'improvedtubeIconInBrowser', - type: 'select', - - options: [{ - label: 'onlyActiveOnYoutube', - value: 'youtube' - }, { - label: 'alwaysActive', - value: 'always' - }] - } - } - }, - languages: { - type: 'button', - variant: 'list-item', - before: '', - label: 'languages', - - section: { - type: 'section', - variant: 'card', - - language: { - label: 'improvedtubeLanguage', - type: 'select', - onchange: function(name, value) { - satus.locale.messages = {}; - - satus.locale.import(function() { - document.querySelector('.satus-main__container').innerHTML = ''; - - document.querySelector('.satus-header__title').innerText = satus.locale.getMessage('languages'); - document.querySelector('#search').placeholder = satus.locale.getMessage('search'); - - satus.render(document.querySelector('.satus-main__container'), Menu.main.section.settings.section.languages); - }); - }, - options: [{ - value: 'en', - label: 'English' - }, { - value: 'ar', - label: 'العربية' - }, { - value: 'de', - label: 'Deutsch' - }, { - value: 'es', - label: 'Español' - }, { - value: 'fr', - label: 'Français' - }, { - value: 'id', - label: 'Bahasa Indonesia' - }, { - value: 'it', - label: 'Italiano' - }, { - value: 'ja', - label: '日本語' - }, { - value: 'nl', - label: 'Dutch' - }, { - value: 'no', - label: 'Norwegian Bokmål' - }, { - value: 'pt_BR', - label: 'Português (Brasil)' - }, { - value: 'ru', - label: 'Русский' - }, { - value: 'tr', - label: 'Türkçe' - }, { - value: 'zh_CN', - label: '中文 (简体)' - }, { - value: 'zh_TW', - label: '中文 (繁體)' - }] - }, - youtube_language: { - label: 'youtubeLanguage', - type: 'select', - options: [{ - value: "en", - label: "English" - }, { - value: "es", - label: "Español (España)" - }, { - value: "es-419", - label: "Español (Latinoamérica)" - }, { - value: "es-US", - label: "Español (US)" - }, { - value: "ru", - label: "Русский" - }, { - value: "de", - label: "Deutsch" - }, { - value: "pt-PT", - label: "Português" - }, { - value: "pt", - label: "Português (Brasil)" - }, { - value: "fr", - label: "Français" - }, { - value: "pl", - label: "Polski" - }, { - value: "ja", - label: "日本語" - }, { - value: "af", - label: "Afrikaans" - }, { - value: "az", - label: "Azərbaycan" - }, { - value: "id", - label: "Bahasa Indonesia" - }, { - value: "ms", - label: "Bahasa Malaysia" - }, { - value: "bs", - label: "Bosanski" - }, { - value: "ca", - label: "Català" - }, { - value: "cs", - label: "Čeština" - }, { - value: "da", - label: "Dansk" - }, { - value: "et", - label: "Eesti" - }, { - value: "eu", - label: "Euskara" - }, { - value: "fil", - label: "Filipino" - }, { - value: "fr-CA", - label: "Français (Canada)" - }, { - value: "gl", - label: "Galego" - }, { - value: "hr", - label: "Hrvatski" - }, { - value: "zu", - label: "IsiZulu" - }, { - value: "is", - label: "Íslenska" - }, { - value: "it", - label: "Italiano" - }, { - value: "sw", - label: "Kiswahili" - }, { - value: "lv", - label: "Latviešu valoda" - }, { - value: "lt", - label: "Lietuvių" - }, { - value: "hu", - label: "Magyar" - }, { - value: "nl", - label: "Nederlands" - }, { - value: "no", - label: "Norsk" - }, { - value: "uz", - label: "O‘zbek" - }, { - value: "ro", - label: "Română" - }, { - value: "sq", - label: "Shqip" - }, { - value: "sk", - label: "Slovenčina" - }, { - value: "sl", - label: "Slovenščina" - }, { - value: "sr-Latn", - label: "Srpski" - }, { - value: "fi", - label: "Suomi" - }, { - value: "sv", - label: "Svenska" - }, { - value: "vi", - label: "Tiếng Việt" - }, { - value: "tr", - label: "Türkçe" - }, { - value: "be", - label: "Беларуская" - }, { - value: "bg", - label: "Български" - }, { - value: "ky", - label: "Кыргызча" - }, { - value: "kk", - label: "Қазақ Тілі" - }, { - value: "mk", - label: "Македонски" - }, { - value: "mn", - label: "Монгол" - }, { - value: "sr", - label: "Српски" - }, { - value: "uk", - label: "Українська" - }, { - value: "el", - label: "Ελληνικά" - }, { - value: "hy", - label: "Հայերեն" - }, { - value: "iw", - label: "עברית" - }, { - value: "ur", - label: "اردو" - }, { - value: "ar", - label: "العربية" - }, { - value: "fa", - label: "فارسی" - }, { - value: "ne", - label: "नेपाली" - }, { - value: "mr", - label: "मराठी" - }, { - value: "hi", - label: "हिन्दी" - }, { - value: "bn", - label: "বাংলা" - }, { - value: "pa", - label: "ਪੰਜਾਬੀ" - }, { - value: "gu", - label: "ગુજરાતી" - }, { - value: "ta", - label: "தமிழ்" - }, { - value: "te", - label: "తెలుగు" - }, { - value: "kn", - label: "ಕನ್ನಡ" - }, { - value: "ml", - label: "മലയാളം" - }, { - value: "si", - label: "සිංහල" - }, { - value: "th", - label: "ภาษาไทย" - }, { - value: "lo", - label: "ລາວ" - }, { - value: "my", - label: "ဗမာ" - }, { - value: "ka", - label: "ქართული" - }, { - value: "am", - label: "አማርኛ" - }, { - value: "km", - label: "ខ្មែរ" - }, { - value: "zh-CN", - label: "中文 (简体)" - }, { - value: "zh-TW", - label: "中文 (繁體)" - }, { - value: "zh-HK", - label: "中文 (香港)" - }, { - value: "ko", - label: "한국어" - }] - } - } - }, - backup_and_reset: { - type: 'button', - variant: 'list-item', - label: 'backupAndReset', - before: '', - - section: { - type: 'section', - variant: 'card', - import_settings: { - type: 'button', - variant: 'list-item', - label: 'importSettings', - - onclick: function() { - try { - var input = document.createElement('input'); - - input.type = 'file'; - - input.addEventListener('change', function() { - var file_reader = new FileReader(); - - file_reader.onload = function() { - var data = JSON.parse(this.result); - - for (var i in data) { - satus.storage.set(i, data[i]); - } - - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - label: 'successfullyImportedSettings' - }, - section: { - type: 'section', - variant: 'card', - class: 'controls', - style: { - 'justify-content': 'flex-end', - 'display': 'flex' - }, - - cancel: { - type: 'button', - label: 'cancel', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - ok: { - type: 'button', - label: 'OK', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - } - } - }); - }; - - file_reader.readAsText(this.files[0]); - }); - - input.click(); - } catch (err) { - chrome.runtime.sendMessage({ - name: 'dialog-error', - value: err - }); - } - } - }, - export_settings: { - type: 'button', - variant: 'list-item', - label: 'exportSettings', - - onclick: function() { - chrome.runtime.sendMessage({ - name: 'download', - filename: 'improvedtube-settings.json', - value: satus.storage - }); - } - }, - reset_all_settings: { - type: 'button', - variant: 'list-item', - label: 'resetAllSettings', - - onclick: function() { - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - label: 'thisWillResetAllSettings' - }, - section: { - type: 'section', - variant: 'card', - class: 'controls', - style: { - 'justify-content': 'flex-end', - 'display': 'flex' - }, - - cancel: { - type: 'button', - label: 'cancel', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - accept: { - type: 'button', - label: 'accept', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - satus.storage.clear(); - - scrim[scrim.length - 1].click(); - } - } - } - }); - } - }, - delete_youtube_cookies: { - type: 'button', - variant: 'list-item', - label: 'deleteYoutubeCookies', - - onclick: function() { - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - label: 'thisWillRemoveAllYouTubeCookies', - style: { - 'width': '100%', - 'opacity': '.8' - } - }, - section: { - type: 'section', - variant: 'card', - class: 'controls', - style: { - 'justify-content': 'flex-end', - 'display': 'flex' - }, - - cancel: { - type: 'button', - label: 'cancel', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - accept: { - type: 'button', - label: 'accept', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - chrome.tabs.query({}, function(tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - name: 'delete_youtube_cookies' - }); - } - } - }); - - scrim[scrim.length - 1].click(); - } - } - } - }); - } - } - } - }, - date_and_time: { - type: 'button', - variant: 'list-item', - label: 'dateAndTime', - before: '', - - section: { - type: 'section', - variant: 'card', - - use_24_hour_format: { - type: 'switch', - label: 'use24HourFormat', - value: true - } - } - }, - about: { - type: 'button', - variant: 'list-item', - before: '', - label: 'about', - appearanceKey: 'about', - - section: { - type: 'section', - variant: 'card', - onrender: function() { - var component = this, - manifest = chrome.runtime.getManifest(), - user = satus.user(), - object = { - extension_section: { - type: 'section', - variant: 'card', - label: 'extension', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - version: { - type: 'text', - label: 'version', - value: manifest.version - }, - permissions: { - type: 'text', - label: 'permissions', - value: manifest.permissions.join(', ').replace('https://www.youtube.com/', 'YouTube') - }, - }, - browser_section: { - type: 'section', - variant: 'card', - label: 'browser', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - name: { - type: 'text', - label: 'name', - value: user.browser.name - }, - version: { - type: 'text', - label: 'version', - value: user.browser.version - }, - platform: { - type: 'text', - label: 'platform', - value: user.browser.platform - }, - video_formats: { - type: 'text', - label: 'videoFormats', - value: user.browser.video - }, - audio_formats: { - type: 'text', - label: 'audioFormats', - value: user.browser.audio - }, - flash: { - type: 'text', - label: 'flash', - value: user.browser.flash ? true : false - } - }, - os_section: { - type: 'section', - variant: 'card', - label: 'os', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - os_name: { - type: 'text', - label: 'name', - value: user.os.name - }, - - os_type: { - type: 'text', - label: 'type', - value: user.os.type - } - }, - device_section: { - type: 'section', - variant: 'card', - label: 'device', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - screen: { - type: 'text', - label: 'screen', - value: user.device.screen - }, - cores: { - type: 'text', - label: 'cores', - value: user.device.cores - }, - gpu: { - type: 'text', - label: 'gpu', - value: user.device.gpu - }, - ram: { - type: 'text', - label: 'ram', - value: user.device.ram - } - } - }; - - setTimeout(function() { - satus.render(object, component.parentNode); - - component.remove(); - }); - } - } - } - } -}; \ No newline at end of file diff --git a/unstable/src/template/js/template-parts/player.js b/unstable/src/template/js/template-parts/player.js deleted file mode 100644 index f61f9bde2..000000000 --- a/unstable/src/template/js/template-parts/player.js +++ /dev/null @@ -1,316 +0,0 @@ -Menu.main.section.player = { - type: 'button', - before: '', - label: 'player', - class: 'satus-button--player', - appearanceKey: 'player', - - general: { - type: 'section', - variant: 'card', - - player_autoplay: { - type: 'switch', - label: 'autoplay', - value: true - }, - player_autopause_when_switching_tabs: { - type: 'switch', - label: 'autopauseWhenSwitchingTabs' - }, - player_forced_playback_speed: { - type: 'switch', - label: 'forcedPlaybackSpeed', - id: 'forced-playback-speed', - onrender: function() { - this.dataset.value = satus.storage.player_forced_playback_speed; - }, - onchange: function() { - this.dataset.value = satus.storage.player_forced_playback_speed; - } - }, - player_playback_speed: { - type: 'slider', - label: 'playbackSpeed', - textarea: true, - value: 1, - min: .1, - max: 8, - step: .05 - }, - player_subtitles: { - type: 'switch', - label: 'subtitles', - value: true - }, - player_crop_chapter_titles: { - type: 'switch', - label: 'cropChapterTitles', - value: true - }, - up_next_autoplay: { - type: 'switch', - label: 'upNextAutoplay', - value: true - }, - player_ads: { - label: 'ads', - type: 'select', - options: [{ - label: 'onAllVideos', - value: 'all_videos', - default: 'true' - }, { - label: 'onSubscribedChannels', - value: 'subscribed_channels' - }, { - label: 'blockAll', - value: 'block_all' - }] - }, - mini_player: { - type: 'switch', - label: 'customMiniPlayer' - }, - player_autofullscreen: { - type: 'switch', - label: 'autoFullscreen' - } - }, - - section_label__videos: { - type: 'text', - variant: 'section-label', - label: 'videos' - }, - - video: { - type: 'section', - variant: 'card', - - player_quality: { - type: 'select', - label: 'quality', - options: [{ - label: 'auto', - value: 'auto' - }, { - label: '144p', - value: 'tiny' - }, { - label: '240p', - value: 'small' - }, { - label: '360p', - value: 'medium' - }, { - label: '480p', - value: 'large' - }, { - label: '720p', - value: 'hd720' - }, { - label: '1080p', - value: 'hd1080' - }, { - label: '1440p', - value: 'hd1440' - }, { - label: '2160p', - value: 'hd2160' - }, { - label: '2880p', - value: 'hd2880' - }, { - label: '4320p', - value: 'highres' - }] - }, - player_h264: { - type: 'switch', - label: 'codecH264', - onclick: function() { - if (this.querySelector('input').checked === true) { - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - class: 'satus-dialog__message', - label: 'youtubeLimitsVideoQualityTo1080pForH264Codec' - }, - section: { - type: 'section', - class: 'satus-section--actions', - - cancel: { - type: 'button', - variant: 'text', - label: 'cancel', - onclick: function() { - let scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - ok: { - type: 'button', - variant: 'text', - label: 'OK', - onclick: function() { - let scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - } - } - }); - } - } - }, - player_60fps: { - type: 'switch', - label: 'allow60fps', - value: true, - onclick: function() { - if (this.querySelector('input').checked === true) { - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - class: 'satus-dialog__message', - label: 'youtubeLimitsVideoQualityTo1080pForH264Codec' - }, - section: { - type: 'section', - class: 'satus-section--actions', - - cancel: { - type: 'button', - label: 'cancel', - onclick: function() { - let scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - ok: { - type: 'button', - label: 'OK', - onclick: function() { - let scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - } - } - }); - } - } - }, - }, - - section_label__audio: { - type: 'text', - variant: 'section-label', - label: 'audio' - }, - - audio: { - type: 'section', - variant: 'card', - label: 'audio', - - player_forced_volume: { - type: 'switch', - label: 'forcedVolume', - id: 'forced-volume', - onrender: function() { - this.dataset.value = satus.storage.player_forced_volume; - }, - onchange: function() { - this.dataset.value = satus.storage.player_forced_volume; - } - }, - player_volume: { - type: 'slider', - label: 'volume', - step: 1, - max: 100, - value: 100 - }, - player_loudness_normalization: { - type: 'switch', - label: 'loudnessNormalization', - value: true - } - }, - - section_label__buttons: { - type: 'text', - variant: 'section-label', - label: 'buttons' - }, - - buttons: { - type: 'section', - variant: 'card', - - player_screenshot: { - type: 'button', - variant: 'list-item', - label: 'screenshot', - - section: { - type: 'section', - variant: 'card', - - player_screenshot_button: { - type: 'switch', - label: 'activate' - }, - player_screenshot_save_as: { - type: 'select', - label: 'saveAs', - options: [{ - label: 'file', - value: 'file' - }, { - label: 'clipboard', - value: 'clipboard' - }] - } - } - }, - player_repeat: { - type: 'button', - variant: 'list-item', - label: 'repeat', - - section: { - type: 'section', - variant: 'card', - - player_repeat_button: { - type: 'switch', - label: 'activate' - }, - player_always_repeat: { - type: 'switch', - label: 'alwaysActive' - } - } - }, - player_rotate_button: { - type: 'switch', - label: 'rotate' - }, - player_popup_button: { - type: 'switch', - label: 'popupPlayer' - } - } -}; \ No newline at end of file diff --git a/unstable/src/template/js/template-parts/playlist.js b/unstable/src/template/js/template-parts/playlist.js deleted file mode 100644 index 899b9636c..000000000 --- a/unstable/src/template/js/template-parts/playlist.js +++ /dev/null @@ -1,41 +0,0 @@ -Menu.main.section.playlist = { - type: 'button', - before: '', - label: 'playlist', - class: 'satus-button--playlist', - appearanceKey: 'playlist', - - section: { - type: 'section', - variant: 'card', - - playlist_autoplay: { - type: 'switch', - label: 'autoplay', - value: true - }, - playlist_up_next_autoplay: { - type: 'switch', - label: 'upNextAutoplay', - value: true - }, - playlist_reverse: { - type: 'switch', - label: 'reverse' - } - }, - - section2: { - type: 'section', - variant: 'card', - - playlist_repeat: { - type: 'switch', - label: 'repeat' - }, - playlist_shuffle: { - type: 'switch', - label: 'shuffle' - } - } -}; diff --git a/unstable/src/template/js/template-parts/shortcuts.js b/unstable/src/template/js/template-parts/shortcuts.js deleted file mode 100644 index aa191bfc5..000000000 --- a/unstable/src/template/js/template-parts/shortcuts.js +++ /dev/null @@ -1,249 +0,0 @@ -Menu.main.section.shortcuts = { - type: 'button', - before: '', - label: 'shortcuts', - class: 'satus-button--shortcut', - appearanceKey: 'shortcuts', - - player_section_label: { - type: 'text', - variant: 'section-label', - label: 'player' - }, - - player_section: { - type: 'section', - variant: 'card', - - shortcut_picture_in_picture: { - type: 'shortcut', - label: 'pictureInPicture' - }, - shortcut_play_pause: { - type: 'shortcut', - label: 'playPause', - value: { - key: ' ' - } - }, - shortcut_stop: { - type: 'shortcut', - label: 'stop' - }, - shortcut_next_video: { - type: 'shortcut', - label: 'nextVideo', - value: { - key: 'N', - shiftKey: true - } - }, - shortcut_prev_video: { - type: 'shortcut', - label: 'previousVideo', - value: { - key: 'P', - shiftKey: true - } - }, - shortcut_seek_backward: { - type: 'shortcut', - label: 'seekBackward10Seconds', - value: { - key: 'J' - } - }, - shortcut_seek_forward: { - type: 'shortcut', - label: 'seekForward10Seconds', - value: { - key: 'I' - } - }, - shortcut_volume: { - type: 'button', - label: 'volume', - - section_step: { - type: 'section', - variant: 'card', - - shortcut_volume_step: { - type: 'slider', - label: 'step', - min: 1, - max: 10, - step: 1, - value: 5 - } - }, - - section: { - type: 'section', - variant: 'card', - - shortcut_increase_volume: { - type: 'shortcut', - label: 'increaseVolume', - custom_data: { - on_top_of_player: { - type: 'switch', - label: 'onTopOfPlayer', - storage: false - } - } - }, - shortcut_decrease_volume: { - type: 'shortcut', - label: 'decreaseVolume', - custom_data: { - on_top_of_player: { - type: 'switch', - label: 'onTopOfPlayer', - storage: false - } - } - } - } - }, - shortcut_playback_speed: { - type: 'button', - label: 'playbackSpeed', - - section_step: { - type: 'section', - variant: 'card', - - shortcut_playback_speed_step: { - type: 'slider', - label: 'step', - min: .05, - max: .5, - step: .05, - value: .05 - } - }, - - section: { - type: 'section', - variant: 'card', - - shortcut_increase_playback_speed: { - type: 'shortcut', - label: 'increasePlaybackSpeed' - }, - shortcut_decrease_playback_speed: { - type: 'shortcut', - label: 'decreasePlaybackSpeed' - } - } - }, - shortcut_activate_fullscreen: { - type: 'shortcut', - label: 'activateFullscreen', - value: { - key: 'F' - } - }, - shortcut_activate_captions: { - type: 'shortcut', - label: 'activateCaptions', - value: { - key: 'C' - } - }, - shortcut_quality: { - type: 'button', - label: 'quality', - - section: { - type: 'section', - variant: 'card', - - shortcut_240p: { - type: 'shortcut', - label: '240p' - }, - shortcut_360p: { - type: 'shortcut', - label: '360p' - }, - shortcut_480p: { - type: 'shortcut', - label: '480p' - }, - shortcut_720p: { - type: 'shortcut', - label: '720p' - }, - shortcut_1080p: { - type: 'shortcut', - label: '1080p' - }, - shortcut_1440p: { - type: 'shortcut', - label: '1440p' - }, - shortcut_2160p: { - type: 'shortcut', - label: '2160p' - }, - shortcut_2880p: { - type: 'shortcut', - label: '2880p' - }, - shortcut_4320p: { - type: 'shortcut', - label: '4320p' - } - } - }, - shortcut_custom_mini_player: { - type: 'shortcut', - label: 'customMiniPlayer' - }, - shortcut_screenshot: { - type: 'shortcut', - label: 'screenshot' - }, - shortcut_stats_for_nerds: { - type: 'shortcut', - label: 'statsForNerds' - }, - shortcut_toggle_cards: { - type: 'shortcut', - label: 'toggleCards' - } - }, - - appearance_section_label: { - type: 'text', - variant: 'section-label', - label: 'appearance' - }, - - appearance_section: { - type: 'section', - variant: 'card', - - shortcut_go_to_search_box: { - type: 'shortcut', - label: 'goToSearchBox', - value: { - key: '/' - } - }, - shortcut_like_shortcut: { - type: 'shortcut', - label: 'like' - }, - shortcut_dislike_shortcut: { - type: 'shortcut', - label: 'dislike' - }, - shortcut_dark_theme: { - type: 'shortcut', - label: 'darkTheme' - } - } -}; diff --git a/unstable/src/template/js/template-parts/themes.js b/unstable/src/template/js/template-parts/themes.js deleted file mode 100644 index efd6158cf..000000000 --- a/unstable/src/template/js/template-parts/themes.js +++ /dev/null @@ -1,395 +0,0 @@ -function themePopupChange() { - if (satus.storage.get('red_popup_theme') === true) { - document.documentElement.setAttribute('popup-theme', 'red'); - } else { - document.documentElement.removeAttribute('popup-theme'); - } -} - -function themeChange(event) { - if (event.target.checked) { - var themes = document.querySelectorAll('.satus-switch > input:checked:not([data-storage-key="red_popup_theme"])'); - - for (var i = 0, l = themes.length; i < l; i++) { - if (themes[i] !== event.target) { - themes[i].click(); - } - } - } - - if (satus.storage.get('default_dark_theme') === true) { - document.documentElement.setAttribute('theme', 'dark'); - } else if (satus.storage.get('night_theme') === true) { - document.documentElement.setAttribute('theme', 'night'); - } else if (satus.storage.get('dawn_theme') === true) { - document.documentElement.setAttribute('theme', 'dawn'); - } else if (satus.storage.get('sunset_theme') === true) { - document.documentElement.setAttribute('theme', 'sunset'); - } else if (satus.storage.get('desert_theme') === true) { - document.documentElement.setAttribute('theme', 'desert'); - } else if (satus.storage.get('plain_theme') === true) { - document.documentElement.setAttribute('theme', 'plain'); - } else if (satus.storage.get('black_theme') === true) { - document.documentElement.setAttribute('theme', 'black'); - } else { - document.documentElement.removeAttribute('theme'); - } -} - -Menu.main.section.themes = { - type: 'button', - before: '', - label: 'themes', - class: 'satus-button--themes', - appearanceKey: 'themes', - - section: { - type: 'section', - variant: 'card', - - my_colors: { - type: 'button', - variant: 'list-item', - label: 'myColors', - - section: { - type: 'section', - variant: 'card', - - theme_my_colors: { - type: 'switch', - label: 'activate' - } - }, - - section2: { - type: 'section', - variant: 'card', - - theme_primary_color: { - type: 'color-picker', - label: 'primaryColor', - variant: 'list-item', - value: 'rgba(200,200,200)' - }, - theme_text_color: { - type: 'color-picker', - label: 'textColor', - variant: 'list-item', - value: 'rgba(25,25,25)' - } - } - }, - filters: { - type: 'button', - variant: 'list-item', - label: 'filters', - - section: { - type: 'section', - variant: 'card', - - bluelight: { - type: 'slider', - label: 'bluelight', - step: 1, - max: 90, - value: 0 - }, - dim: { - type: 'slider', - label: 'dim', - step: 1, - max: 90, - value: 0 - } - } - }, - schedule: { - type: 'button', - variant: 'list-item', - label: 'schedule', - - section: { - type: 'section', - variant: 'card', - - schedule: { - type: 'select', - label: 'schedule', - - options: [{ - label: 'disabled', - value: 'disabled' - }, { - label: 'sunsetToSunrise', - value: 'sunset_to_sunrise' - }, { - label: 'systemPeferenceDark', - value: 'system_peference_dark' - }, { - label: 'systemPeferenceLight', - value: 'system_peference_light' - }] - }, - schedule_time_from: { - type: 'select', - label: 'timeFrom', - options: [{ - label: '00:00', - value: '00:00' - }, { - label: '01:00', - value: '01:00' - }, { - label: '02:00', - value: '02:00' - }, { - label: '03:00', - value: '03:00' - }, { - label: '04:00', - value: '04:00' - }, { - label: '05:00', - value: '05:00' - }, { - label: '06:00', - value: '06:00' - }, { - label: '07:00', - value: '07:00' - }, { - label: '08:00', - value: '08:00' - }, { - label: '09:00', - value: '09:00' - }, { - label: '10:00', - value: '10:00' - }, { - label: '11:00', - value: '11:00' - }, { - label: '12:00', - value: '12:00' - }, { - label: '13:00', - value: '13:00' - }, { - label: '14:00', - value: '14:00' - }, { - label: '15:00', - value: '15:00' - }, { - label: '16:00', - value: '16:00' - }, { - label: '17:00', - value: '17:00' - }, { - label: '18:00', - value: '18:00' - }, { - label: '19:00', - value: '19:00' - }, { - label: '20:00', - value: '20:00' - }, { - label: '21:00', - value: '21:00' - }, { - label: '22:00', - value: '22:00' - }, { - label: '23:00', - value: '23:00' - }] - }, - schedule_time_to: { - type: 'select', - label: 'timeTo', - options: [{ - label: '00:00', - value: '00:00' - }, { - label: '01:00', - value: '01:00' - }, { - label: '02:00', - value: '02:00' - }, { - label: '03:00', - value: '03:00' - }, { - label: '04:00', - value: '04:00' - }, { - label: '05:00', - value: '05:00' - }, { - label: '06:00', - value: '06:00' - }, { - label: '07:00', - value: '07:00' - }, { - label: '08:00', - value: '08:00' - }, { - label: '09:00', - value: '09:00' - }, { - label: '10:00', - value: '10:00' - }, { - label: '11:00', - value: '11:00' - }, { - label: '12:00', - value: '12:00' - }, { - label: '13:00', - value: '13:00' - }, { - label: '14:00', - value: '14:00' - }, { - label: '15:00', - value: '15:00' - }, { - label: '16:00', - value: '16:00' - }, { - label: '17:00', - value: '17:00' - }, { - label: '18:00', - value: '18:00' - }, { - label: '19:00', - value: '19:00' - }, { - label: '20:00', - value: '20:00' - }, { - label: '21:00', - value: '21:00' - }, { - label: '22:00', - value: '22:00' - }, { - label: '23:00', - value: '23:00' - }] - } - } - }, - font: { - type: 'select', - label: 'font', - options: [{ - label: 'Default', - value: 'Default' - }, { - label: 'Roboto', - value: 'Roboto' - }, { - label: 'Open Sans', - value: 'Open+Sans' - }, { - label: 'Lato', - value: 'Lato' - }, { - label: 'Montserrat', - value: 'Montserrat' - }, { - label: 'Source Sans Pro', - value: 'Source+Sans+Pro' - }, { - label: 'Roboto Condensed', - value: 'Roboto+Condensed' - }, { - label: 'Oswald', - value: 'Oswald' - }, { - label: 'Comfortaa', - value: 'Comfortaa' - }, { - label: 'Roboto Mono', - value: 'Roboto+Mono' - }, { - label: 'Raleway', - value: 'Raleway' - }, { - label: 'Poppins', - value: 'Poppins' - }, { - label: 'Noto Sans', - value: 'Noto+Sans' - }, { - label: 'Roboto Slab', - value: 'Roboto+Slab' - }, { - label: 'Marriweather', - value: 'Marriweather' - }, { - label: 'PT Sans', - value: 'PT+Sans' - }] - } - }, - - default_dark_theme: { - type: 'switch', - label: 'dark', - class: 'satus-switch--dark', - - onchange: themeChange - }, - night_theme: { - type: 'switch', - label: 'night', - class: 'satus-switch--night', - - onchange: themeChange - }, - dawn_theme: { - type: 'switch', - label: 'dawn', - class: 'satus-switch--dawn', - - onchange: themeChange - }, - sunset_theme: { - type: 'switch', - label: 'sunset', - class: 'satus-switch--sunset', - - onchange: themeChange - }, - desert_theme: { - type: 'switch', - label: 'desert', - class: 'satus-switch--desert', - - onchange: themeChange - }, - plain_theme: { - type: 'switch', - label: 'plain', - class: 'satus-switch--plain', - - onchange: themeChange - }, - black_theme: { - type: 'switch', - label: 'black', - class: 'satus-switch--black', - - onchange: themeChange - } -}; diff --git a/unstable/src/youtube/css/appearance.css b/unstable/src/youtube/css/appearance.css deleted file mode 100644 index ef6ec7f82..000000000 --- a/unstable/src/youtube/css/appearance.css +++ /dev/null @@ -1,776 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> APPEARANCE -------------------------------------------------------------------------------- -1.0 Header - 1.1 Position - 1.2 Logo - 1.3 Hide right buttons -2.0 Player - 2.1 Annotations - 2.2 Cards - 2.4 Color - 2.5 Transparent background - 2.6 Endscreen - 2.7 Sroll for details - 2.8 Always show progress bar - 2.9 Hide Gradient Bottom -3.0 Details - 3.1 Style - 3.2 Views count - 3.3 Likes -4.0 Description -5.0 Comments -6.0 Sidebar - 6.1 Live chat - 6.2 Playlist - 6.3 Related videos - 6.4 Sidebar and thumbnail position -7.0 Footer ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Header ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.1 Position ------------------------------------------------------------------------------*/ - -html[it-header-position=hidden]:not([it-search-focus=true]) #masthead-container, -html[it-header-position=hidden]:not([it-search-focus=true]) #masthead-positioner -{ - transform: translateY(-100%); -} - -html[it-header-position=hidden] app-drawer#guide #guide-spacer, -html[it-header-position=hidden] ytd-app > ytd-masthead, -html[it-header-position=hidden] #masthead-positioner-height-offset, -html[it-header-position=hover] app-drawer#guide #guide-spacer, -html[it-header-position=hover] #masthead-positioner-height-offset, -html[it-header-position=static] app-drawer#guide #guide-spacer, -html[it-header-position=hidden_on_video_page][it-page-type=video] #masthead-container, -html[it-header-position=hidden_on_video_page][it-page-type=video] app-drawer#guide #guide-spacer, -html[it-header-position=hidden_on_video_page][it-page-type=video] #masthead-positioner, -html[it-header-position=hidden_on_video_page][it-page-type=video] #masthead-positioner-height-offset, -html[it-header-position=hover_on_video_page][it-page-type=video] app-drawer#guide #guide-spacer, -html[it-header-position=hover_on_video_page][it-page-type=video] #masthead-positioner-height-offset, -html[it-header-position=static] #masthead-positioner-height-offset -{ - display: none !important; -} - -html[it-header-position=hover] ytd-app > ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app > ytd-masthead, -html[it-header-position=hover] #masthead-container, -html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-container, -html[it-header-position=hover] #masthead-positioner, -html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-positioner -{ - z-index: 2147483647 !important; -} - -html[it-header-position=hidden] ytd-page-manager#page-manager, -html[it-header-position=hidden] app-header#header, -html[it-header-position=hidden_on_video_page][it-page-type='video'] ytd-page-manager#page-manager, -html[it-header-position=hidden_on_video_page][it-page-type='video'] app-header#header, -html[it-header-position=hidden] #appbar-guide-menu, -html[it-header-position=hidden_on_video_page][it-page-type='video'] #appbar-guide-menu, -html[it-header-position=hover] ytd-page-manager#page-manager, -html[it-header-position=hover] app-header#header, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-page-manager#page-manager, -html[it-header-position=hover_on_video_page][it-page-type='video'] app-header#header, -html[it-header-position=hover] #appbar-guide-menu, -html[it-header-position=hover_on_video_page][it-page-type='video'] #appbar-guide-menu, -html[it-header-position=static] ytd-page-manager#page-manager, -html[it-header-position=static] #appbar-guide-menu -{ - margin-top: 0 !important; -} - -html[it-header-position=hover] ytd-app > ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) ytd-app > ytd-masthead, -html[it-header-position=hover]:not([it-improvedtube-search=true]) #masthead-container, -html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) #masthead-container, -html[it-header-position=hover]:not([it-improvedtube-search=true]) #masthead-positioner, -html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) #masthead-positioner -{ - transition: transform 250ms !important; - transform: translateY(-75%) !important; -} - -html[it-header-position=hover] #masthead-container:hover, -html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-container:hover, -html[it-header-position=hover] #masthead-positioner:hover, -html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-positioner:hover, -html[it-header-position=hover][it-search-focus=true] #masthead-container, -html[it-header-position=hover_on_video_page][it-page-type='video'][it-search-focus=true] #masthead-container, -html[it-header-position=hover][it-search-focus=true] #masthead-positioner, -html[it-header-position=hover_on_video_page][it-page-type='video'][it-search-focus=true] #masthead-positioner -{ - transform: translateY(0%) !important; -} - -html[it-header-position=static] #masthead-container, -html[it-header-position=static] #masthead-positioner -{ - position: relative !important; - z-index: 999999999999 !important; -} - -html[it-header-position=hover] ytd-app[masthead-hidden_] ytd-masthead, -html[it-header-position=hover] ytd-app[scrolling_] ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app[masthead-hidden_] ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app[scrolling_] ytd-masthead -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -1.2 Logo ------------------------------------------------------------------------------*/ - -html[it-header-improve-logo=true] ytd-topbar-logo-renderer#logo, -html[it-header-improve-logo=true] #yt-masthead-logo-fragment, -html[it-header-improve-logo=true] #yt-masthead #logo-container .logo -{ - filter: grayscale(1); -} - -html[it-header-improve-logo=true][dark] #yt-masthead #logo-container .logo -{ - filter: grayscale(1) brightness(3); -} - -html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer path[fill*='#FF0000'] -{ - fill: #282828; -} - -html[it-header-improve-logo=true][dark] g.ytd-topbar-logo-renderer path[fill*='#FF0000'] -{ - fill: #fff; -} - -html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer polygon[fill*='#FFFFFF'] -{ - fill: #232323; -} - - -/*----------------------------------------------------------------------------- -1.3 Hide right buttons ------------------------------------------------------------------------------*/ - -html[it-header-hide-right-buttons=true] ytd-masthead#masthead #container #end -{ - visibility: hidden !important; - pointer-events: none !important; -} - - -/*----------------------------------------------------------------------------- -2.0 Player ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -2.1 Annotations ------------------------------------------------------------------------------*/ - -html[it-player-hide-annotations=true] .annotation, -html[it-player-hide-annotations=true] .annotation-type-text, -html[it-player-hide-annotations=true] .annotation-shape -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -2.2 Cards ------------------------------------------------------------------------------*/ - -html[it-player-hide-cards=true] .ytp-ce-element, -html[it-player-hide-cards=true] .ytp-ce-video, -html[it-player-hide-cards=true] .ytp-cards-button, -html[it-player-hide-cards=true] .ytp-cards-teaser, -html[it-player-show-cards-on-mouse-hover=true] .ytp-cards-button -{ - display: none !important; -} - -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .iv-drawer -{ - display: block !important; - transform: none; -} - -/*----------------------------------------------------------------------------- -2.4 Color ------------------------------------------------------------------------------*/ - -html[it-player-color='pink'] .ytp-play-progress, -html[it-player-color='pink'] .ytp-scrubber-button, -html[it-player-color='pink'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='pink'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #e91e63 !important; -} - -html[it-player-color='pink'] .ytp-swatch-color -{ - color: #e91e63 !important; -} - -html[it-player-color='purple'] .ytp-play-progress, -html[it-player-color='purple'] .ytp-scrubber-button, -html[it-player-color='purple'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='purple'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #9c27b0 !important; -} - -html[it-player-color='purple'] .ytp-swatch-color -{ - color: #9c27b0 !important; -} - -html[it-player-color='deep_purple'] .ytp-play-progress, -html[it-player-color='deep_purple'] .ytp-scrubber-button, -html[it-player-color='deep_purple'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='deep_purple'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #673ab7 !important; -} - -html[it-player-color='deep_purple'] .ytp-swatch-color -{ - color: #673ab7 !important; -} - -html[it-player-color='indigo'] .ytp-play-progress, -html[it-player-color='indigo'] .ytp-scrubber-button, -html[it-player-color='indigo'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='indigo'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #3f51b5 !important; -} - -html[it-player-color='indigo'] .ytp-swatch-color -{ - color: #3f51b5 !important; -} - -html[it-player-color='blue'] .ytp-play-progress, -html[it-player-color='blue'] .ytp-scrubber-button, -html[it-player-color='blue'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='blue'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #1e88e5 !important; -} - -html[it-player-color='blue'] .ytp-swatch-color -{ - color: #1e88e5 !important; -} - -html[it-player-color='light_blue'] .ytp-play-progress, -html[it-player-color='light_blue'] .ytp-scrubber-button, -html[it-player-color='light_blue'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='light_blue'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #03a9f4 !important; -} - -html[it-player-color='light_blue'] .ytp-swatch-color -{ - color: #03a9f4 !important; -} - -html[it-player-color='cyan'] .ytp-play-progress, -html[it-player-color='cyan'] .ytp-scrubber-button, -html[it-player-color='cyan'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='cyan'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #00bcd4 !important; -} - -html[it-player-color='cyan'] .ytp-swatch-color -{ - color: #00bcd4 !important; -} - -html[it-player-color='teal'] .ytp-play-progress, -html[it-player-color='teal'] .ytp-scrubber-button, -html[it-player-color='teal'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='teal'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #009688 !important; -} - -html[it-player-color='teal'] .ytp-swatch-color -{ - color: #009688 !important; -} - -html[it-player-color='green'] .ytp-play-progress, -html[it-player-color='green'] .ytp-scrubber-button, -html[it-player-color='green'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='green'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #4caf50 !important; -} - -html[it-player-color='green'] .ytp-swatch-color -{ - color: #4caf50 !important; -} - -html[it-player-color='light_green'] .ytp-play-progress, -html[it-player-color='light_green'] .ytp-scrubber-button, -html[it-player-color='light_green'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='light_green'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #8bc34a !important; -} - -html[it-player-color='light_green'] .ytp-swatch-color -{ - color: #8bc34a !important; -} - -html[it-player-color='lime'] .ytp-play-progress, -html[it-player-color='lime'] .ytp-scrubber-button, -html[it-player-color='lime'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='lime'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #cddc39 !important; -} - -html[it-player-color='lime'] .ytp-swatch-color -{ - color: #cddc39 !important; -} - -html[it-player-color='yellow'] .ytp-play-progress, -html[it-player-color='yellow'] .ytp-scrubber-button, -html[it-player-color='yellow'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='yellow'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #ffeb3b !important; -} - -html[it-player-color='yellow'] .ytp-swatch-color -{ - color: #ffeb3b !important; -} - -html[it-player-color='amber'] .ytp-play-progress, -html[it-player-color='amber'] .ytp-scrubber-button, -html[it-player-color='amber'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='amber'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #ffc107 !important; -} - -html[it-player-color='amber'] .ytp-swatch-color -{ - color: #ffc107 !important; -} - -html[it-player-color='orange'] .ytp-play-progress, -html[it-player-color='orange'] .ytp-scrubber-button, -html[it-player-color='orange'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='orange'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #ff9800 !important; -} - -html[it-player-color='orange'] .ytp-swatch-color -{ - color: #ff9800 !important; -} - -html[it-player-color='deep_orange'] .ytp-play-progress, -html[it-player-color='deep_orange'] .ytp-scrubber-button, -html[it-player-color='deep_orange'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='deep_orange'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #ff5722 !important; -} - -html[it-player-color='deep_orange'] .ytp-swatch-color -{ - color: #ff5722 !important; -} - -html[it-player-color='brown'] .ytp-play-progress, -html[it-player-color='brown'] .ytp-scrubber-button, -html[it-player-color='brown'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='brown'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #795548 !important; -} - -html[it-player-color='brown'] .ytp-swatch-color -{ - color: #795548 !important; -} - -html[it-player-color='blue_gray'] .ytp-play-progress, -html[it-player-color='blue_gray'] .ytp-scrubber-button, -html[it-player-color='blue_gray'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='blue_gray'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #607d8b !important; -} - -html[it-player-color='blue_gray'] .ytp-swatch-color -{ - color: #607d8b !important; -} - -html[it-player-color='white'] .ytp-play-progress, -html[it-player-color='white'] .ytp-scrubber-button, -html[it-player-color='white'] .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color='white'] .ytp-settings-button.ytp-hd-quality-badge:after -{ - background-color: #fff !important; -} - -html[it-player-color='white'] .ytp-swatch-color -{ - color: #fff !important; -} - - -/*----------------------------------------------------------------------------- -2.5 Transparent background ------------------------------------------------------------------------------*/ - -[it-player-transparent-background=true] #player-theater-container, -[it-player-transparent-background=true] #theater-background, -[it-player-transparent-background=true] #player-api, -[it-player-transparent-background=true] .player-api, -[it-player-transparent-background=true] #movie_player, -[it-player-transparent-background=true] #player-container, -[it-player-transparent-background=true] #movie_player video -{ - background-color: transparent !important; -} - - -/*----------------------------------------------------------------------------- -2.6 Endscreen ------------------------------------------------------------------------------*/ - -html[it-player-hide-endscreen=true] .html5-endscreen -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -2.7 Scroll for details ------------------------------------------------------------------------------*/ - -html[it-hide-scroll-for-details=true] button.ytp-fullerscreen-edu-button -{ - display: none !important; -} - -html[it-hide-scroll-for-details=true] ytd-app[scrolling_] -{ - overflow: hidden !important; -} - - -/*----------------------------------------------------------------------------- -2.8 Always show progress bar ------------------------------------------------------------------------------*/ - -html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom -{ - opacity: 1 !important; -} - -html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-chrome-controls -{ - opacity: 0 !important; -} - -html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-progress-bar-container -{ - bottom: 0 !important; -} - -/*----------------------------------------------------------------------------- -2.9 Hide Gradient Bottom ------------------------------------------------------------------------------*/ - -html[it-hide-gradient-bottom=true] .ytp-gradient-bottom -{ - display: none; -} - -/*----------------------------------------------------------------------------- -3.0 Details ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -3.1 Hide details ------------------------------------------------------------------------------*/ - -html[it-hide-details=true] #watch-header, -html[it-hide-details=true] #watch-action-panels, -html[it-hide-details=true] #action-panel-details, -html[it-hide-details=true] #primary-inner > #info, -html[it-hide-details=true] #primary-inner > #meta -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -3.2 Views count ------------------------------------------------------------------------------*/ - -html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer, -html[it-hide-views-count=true] #watch7-views-info > .watch-view-count -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -3.3 Likes ------------------------------------------------------------------------------*/ - -[it-likes=hidden] #watch8-sentiment-actions > .like-button-renderer, -[it-likes=hidden] .video-extras-sparkbar-likes, -[it-likes=hidden] .video-extras-sparkbar-dislikes, -[it-likes=hidden] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(1), -[it-likes=hidden] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(2), -[it-likes=hidden] #sentiment.ytd-video-primary-info-renderer -{ - visibility: hidden !important; - - pointer-events: none !important; -} - -[it-likes=icons_only] #watch8-sentiment-actions > .like-button-renderer button > span, -[it-likes=icons_only] .video-extras-sparkbar-likes, -[it-likes=icons_only] .video-extras-sparkbar-dislikes, -[it-likes=icons_only] #top-level-buttons ytd-toggle-button-renderer:nth-child(1) yt-formatted-string, -[it-likes=icons_only] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) yt-formatted-string, -[it-likes=icons_only] #sentiment.ytd-video-primary-info-renderer -{ - visibility: hidden !important; - - pointer-events: none !important; -} - -[it-likes=icons_only] #text.style-scope.ytd-toggle-button-renderer.style-text, -[it-likes=icons_only] #text.style-scope.ytd-toggle-button-renderer.style-default-active -{ - visibility: hidden !important; -} - -[it-likes=icons_only] .like-button-renderer-like-button, -[it-likes=icons_only] .like-button-renderer-dislike-button -{ - color: transparent !important; -} - -[it-red-dislike-button=true] #top-level-buttons > ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active > a -{ - color: #fc0000 !important; -} - - -/*----------------------------------------------------------------------------- -4.0 Description ------------------------------------------------------------------------------*/ - -html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, -html[it-description=hidden] div#action-panel-details, -html[it-description=expanded] #meta-contents ytd-expander[collapsed] paper-button, -html[it-description=expanded] #action-panel-details button -{ - display: none !important; -} - -html[it-description=expanded] #meta-contents ytd-expander[collapsed] > #content.ytd-expander, -html[it-description=expanded] #watch-description-text -{ - max-height: unset !important; -} - -html[it-description=expanded] .yt-uix-expander .yt-uix-expander-collapsed-body, -html[it-description=expanded] .yt-uix-expander-collapsed .yt-uix-expander-body -{ - display: block !important; -} - - -/*----------------------------------------------------------------------------- -5.0 Comments ------------------------------------------------------------------------------*/ - -html[it-comments=hidden] ytd-comments#comments, -html[it-comments=hidden] div#watch-discussion, -html[it-comments=collapsed].comments-collapsed #comment-section-renderer-items + button, -html[it-comments=collapsed]:not(.comments-collapsed) #improvedtube-collapsed-comments .show-more-text, -html[it-comments=collapsed].comments-collapsed #improvedtube-collapsed-comments .show-less-text, -html[it-comments=collapsed].comments-collapsed #comments #spinner -{ - display: none !important; -} - -html[it-comments=collapsed].comments-collapsed #comment-section-renderer-items, -html[it-comments=collapsed].comments-collapsed #comments #sections #contents -{ - overflow: hidden !important; - - height: 0 !important; -} - -#sections #improvedtube-collapsed-comments -{ - font-family: inherit; - font-size: 12px; - font-weight: 500; - - box-sizing: border-box; - width: 100%; - margin: 0 0 3rem; - padding: 1rem 0; - - cursor: pointer; - letter-spacing: .007px; - text-transform: uppercase; - - color: var(--yt-expand-color); - border: none; - border-bottom: 1px solid var(--yt-spec-10-percent-layer); - outline: none; - background: transparent; -} - - -/*----------------------------------------------------------------------------- -6.0 Sidebar ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -6.1 Live chat ------------------------------------------------------------------------------*/ - -html[it-livechat=hidden] ytd-live-chat-frame#chat, -html[it-livechat=hidden] div#watch-sidebar-live-chat -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -6.2 Playlist ------------------------------------------------------------------------------*/ - -html[it-hide-playlist=true] ytd-playlist-panel-renderer#playlist, -html[it-hide-playlist=true] div#player-playlist, -html[it-hide-playlist=true] #placeholder-playlist -{ - position: absolute !important; - - width: 0 !important; - height: 0 !important; - - pointer-events: none !important; - - opacity: 0 !important; -} - - -/*----------------------------------------------------------------------------- -6.3 Related videos ------------------------------------------------------------------------------*/ - -html[it-related-videos=hidden] div#related, -html[it-related-videos=hidden] div#watch7-sidebar-contents, -html[it-related-videos=collapsed].related-videos-collapsed #watch7-sidebar-modules, -html[it-related-videos=collapsed].related-videos-collapsed #related > *:not(#improvedtube-collapsed-related-videos), -html[it-related-videos=collapsed]:not(.related-videos-collapsed) #improvedtube-collapsed-related-videos .show-more-text, -html[it-related-videos=collapsed].related-videos-collapsed #improvedtube-collapsed-related-videos .show-less-text -{ - display: none !important; -} - -#improvedtube-collapsed-related-videos -{ - font-family: inherit; - font-size: 12px; - font-weight: 500; - - box-sizing: border-box; - width: 100%; - margin: 0 0 3rem; - padding: 1rem 0; - - cursor: pointer; - letter-spacing: .007px; - text-transform: uppercase; - - color: var(--yt-expand-color); - border: none; - border-bottom: 1px solid var(--yt-spec-10-percent-layer); - outline: none; - background: transparent; -} - -#watch7-sidebar #improvedtube-collapsed-related-videos -{ - font-size: 12px; - font-weight: 500; - - display: block; - - width: 95%; - height: 100%; - margin: 0 auto 15px !important; - padding: 10px 0; - - cursor: pointer; - text-align: center; - - color: #333; - border: 1px solid #d3d3d3; - border-color: #c6c6c6; - outline: 0; - background-color: #f8f8f8; - background-image: linear-gradient(to top, #f0f0f0 0, #f8f8f8 100%); - box-shadow: inset 0 1px 0 #ddd; -} - -/*----------------------------------------------------------------------------- -6.4 Sidebar and thumbnail position ------------------------------------------------------------------------------*/ - -html[it-sidebar-left='true'] #columns>#primary, -html[it-sidebar-left='true'] #head>#upnext /* also moving autoplay button to the outside as the glow bothers next to the video */ -{ - order:7; -} -html[it-thumbnails-right='true'] #dismissable>ytd-thumbnail -{ - order:7; -} - -/*----------------------------------------------------------------------------- -7.0 Footer ------------------------------------------------------------------------------*/ - -html[it-hide-footer=true] app-drawer#guide #footer, -html[it-hide-footer=true] #footer-container.yt-base-gutter -{ - display: none !important; -} diff --git a/unstable/src/youtube/css/appearance__player-size.css b/unstable/src/youtube/css/appearance__player-size.css deleted file mode 100644 index f9a977b3f..000000000 --- a/unstable/src/youtube/css/appearance__player-size.css +++ /dev/null @@ -1,517 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> APPEARANCE: PLAYER SIZE -------------------------------------------------------------------------------- -1.0 Variables - 1.1 Header size - 1.1.1 «Normal» - 1.1.2 «Hidden» - 1.1.3 «Hover» - 1.2 Player size - 1.2.1 «240p» - 1.2.2 «360p» - 1.2.3 «480p» - 1.2.4 «576p» - 1.2.5 «720p» - 1.2.6 «1080p» - 1.2.7 «1440p» - 1.2.8 «2160p» - 1.2.9 «Full window» -2.0 YouTube ------------------------------------------------------------------------------*/ - - - - - -/*----------------------------------------------------------------------------- -1.0 Variables ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.1 Header size ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.1.1 «Normal» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"]:not([it-header-position]) ytd-app, -html[it-page-type="video"][it-header-position='normal'] ytd-app, -html[it-page-type="video"][it-header-position='static'] ytd-app -{ - --it-header-size: 56px; -} - -html[it-page-type="video"]:not([it-header-position]) ytd-watch-flexy:not([theater]), -html[it-page-type="video"][it-header-position='normal'] ytd-watch-flexy:not([theater]), -html[it-page-type="video"][it-header-position='static'] ytd-watch-flexy:not([theater]) -{ - --it-header-size: 104px; -} - -html[it-page-type="video"]:not([it-header-position]) div#page, -html[it-page-type="video"][it-header-position='normal'] div#page, -html[it-page-type="video"][it-header-position='static'] div#page -{ - --it-header-size: 50px; -} - -html[it-page-type="video"]:not([it-header-position]) div#page:not(.watch-wide), -html[it-page-type="video"][it-header-position='normal'] div#page:not(.watch-wide), -html[it-page-type="video"][it-header-position='static'] div#page:not(.watch-wide) -{ - --it-header-size: 70px; -} - -/*----------------------------------------------------------------------------- -1.1.2 «Hidden» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-header-position='hidden'], -html[it-page-type="video"][it-header-position='hidden_on_video_page'] -{ - --it-header-size: 0px; -} - -html[it-page-type="video"][it-header-position='hidden'] ytd-watch-flexy:not([theater]), -html[it-page-type="video"][it-header-position='hidden_on_video_page'] ytd-watch-flexy:not([theater]) -{ - --it-header-size: 48px; -} - -html[it-page-type="video"][it-header-position='hidden'] div#page, -html[it-page-type="video"][it-header-position='hidden_on_video_page'] div#page -{ - --it-header-size: 0px; -} - -html[it-page-type="video"][it-header-position='hidden'] div#page:not(.watch-wide), -html[it-page-type="video"][it-header-position='hidden_on_video_page'] div#page:not(.watch-wide) -{ - --it-header-size: 20px; -} - -/*----------------------------------------------------------------------------- -1.1.3 «Hover» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-header-position='hover'], -html[it-page-type="video"][it-header-position='hover_on_video_page'] -{ - --it-header-size: 14px; -} - -html[it-page-type="video"][it-header-position='hover'] ytd-watch-flexy:not([theater]), -html[it-page-type="video"][it-header-position='hover_on_video_page'] ytd-watch-flexy:not([theater]) -{ - --it-header-size: 62px; -} - -html[it-page-type="video"][it-header-position='hover'] div#page, -html[it-page-type="video"][it-header-position='hover_on_video_page'] div#page -{ - --it-header-size: 12px; -} - -html[it-page-type="video"][it-header-position='hover'] div#page:not(.watch-wide), -html[it-page-type="video"][it-header-position='hover_on_video_page'] div#page:not(.watch-wide) -{ - --it-header-size: 32px; -} - -html[it-page-type="video"][it-header-position='hover'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container, -html[it-page-type="video"][it-header-position='hover_on_video_page'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container -{ - margin-top: 14px; -} - -html[it-page-type="video"][it-header-position='hover'] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen), -html[it-page-type="video"][it-header-position='hover_on_video_page'] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen) -{ - margin-top: 12px; -} - - - - - -html[it-page-type="video"][it-player-size='240p'] *, -html[it-page-type="video"][it-player-size='360p'] *, -html[it-page-type="video"][it-player-size='480p'] *, -html[it-page-type="video"][it-player-size='576p'] *, -html[it-page-type="video"][it-player-size='720p'] *, -html[it-page-type="video"][it-player-size='1080p'] *, -html[it-page-type="video"][it-player-size='1440p'] *, -html[it-page-type="video"][it-player-size='2160p'] * -{ - --it-header-size: 0px !important; -} - - - - - -/*----------------------------------------------------------------------------- -1.2 Player size ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.2.1 «240p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='240p'] -{ - --it-player-size: 240px; -} - -/*----------------------------------------------------------------------------- -1.2.2 «360p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='360p'] -{ - --it-player-size: 360px; -} - -/*----------------------------------------------------------------------------- -1.2.3 «480p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='480p'] -{ - --it-player-size: 480px; -} - -/*----------------------------------------------------------------------------- -1.2.4 «576p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='576p'] -{ - --it-player-size: 576px; -} - -/*----------------------------------------------------------------------------- -1.2.5 «720p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='720p'] -{ - --it-player-size: 720px; -} - -/*----------------------------------------------------------------------------- -1.2.6 «1080p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='1080p'] -{ - --it-player-size: 1080px; -} - -/*----------------------------------------------------------------------------- -1.2.7 «1440p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='1440p'] -{ - --it-player-size: 1440px; -} - -/*----------------------------------------------------------------------------- -1.2.8 «2160p» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='2160p'] -{ - --it-player-size: 2160px; -} - -/*----------------------------------------------------------------------------- -1.2.9 «Full window» ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size='full_window'] -{ - --it-player-size: 100vh; -} - -html[it-page-type="video"][it-player-size='fit_to_window'] -{ - --it-player-size: 100vh; -} - - - - - -/*----------------------------------------------------------------------------- -2.0 YouTube ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- ->>> PLAYER ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-container-inner -{ - padding-top: calc(var(--it-player-size) - var(--it-header-size)) !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container, -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container -{ - width: auto !important; - height: calc(var(--it-player-size) - var(--it-header-size)) !important; - min-height: auto !important; - max-height: 100vh !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player -{ - background: #000 !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-container -{ - position: absolute !important; - - display: flex !important; - - width: 100% !important; - height: 100% !important; - - justify-content: center !important; - align-items: center !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video -{ - position: static !important; - top: 0 !important; - left: 0 !important; - - width: auto !important; - max-width: 100% !important; - height: calc(var(--it-player-size) - var(--it-header-size)) !important; -} - - -/*FIT TO WINDOW*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-theater-container -{ - background: transparent !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) -{ - width: auto !important; - overflow: visible !important; - display: table !important; - margin: auto !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-chrome-bottom -{ - width: calc(100% - 24px) !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .html5-video-container -{ - width: auto !important; - position: static !important; - display: inline-block !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video -{ - position: static !important; - width: auto !important; - max-width: 100vw !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-iv-video-content { - pointer-events: none !important; -} - - - - - -/*----------------------------------------------------------------------------- ->>> LEGACY PLAYER ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) div#page #player #player-api, -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) div#page .player-height -{ - height: calc(var(--it-player-size) - var(--it-header-size)) !important; - min-height: auto !important; - max-height: 100vh !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) div#page.watch-wide #player #player-api -{ - left: 0 !important; - - width: 100% !important; - margin: 0 !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) div#page .html5-video-player:not(.it-mini-player):not(.ytp-fullscreen) .html5-video-container -{ - position: absolute !important; - - display: flex !important; - - width: 100% !important; - height: 100% !important; - - justify-content: center !important; - align-items: center !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) div#page .html5-video-player:not(.it-mini-player):not(.ytp-fullscreen) video -{ - position: static !important; - top: 0 !important; - left: 0 !important; - - width: auto !important; - max-width: 100% !important; - height: calc(var(--it-player-size) - var(--it-header-size)) !important; -} - - -/*FIT TO WINDOW*/ -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide #placeholder-player -{ - display: none !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide #player -{ - width: auto !important; - margin-bottom: 10px !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide #player #player-api -{ - display: table !important; - width: auto !important; - margin: auto !important; - left: 0 !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide #theater-background -{ - display: none !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide #player-mole-container -{ - height: auto !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide #player #player-api.player-height -{ - height: auto !important; - position: static !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide .html5-video-player:not(.it-mini-player):not(.ytp-fullscreen) -{ - width: auto !important; - height: auto !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide .html5-video-player:not(.it-mini-player):not(.ytp-fullscreen) .html5-video-container -{ - position: static !important; - width: auto !important; - height: auto !important; -} - -/*html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide .html5-video-player:not(.it-mini-player):not(.ytp-fullscreen) video -{ - z-index: 9 !important; -}*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] div#page.watch-wide .html5-video-player:not(.it-mini-player):not(.ytp-fullscreen) .ytp-iv-video-content { - pointer-events: none !important; -} - - - - - -/*----------------------------------------------------------------------------- ->>> PLAYER ERROR ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) .ytp-error .ytp-tv-static -{ - width: 100% !important; - height: 100% !important; -} - - - - - -/*----------------------------------------------------------------------------- ->>> PLAYER TOOLTIP ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) .ytp-tooltip -{ - top: unset !important; - bottom: 64px !important; -} - - - - - -/*----------------------------------------------------------------------------- ->>> LEGACY SIDEBAR ------------------------------------------------------------------------------*/ - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) div#page:not(.watch-wide) #watch7-sidebar -{ - top: unset !important; - - margin-top: calc(-10px - calc(var(--it-player-size) - var(--it-header-size))) !important; -} - -html[it-page-type="video"][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) div#page.watch-wide #watch-appbar-playlist -{ - top: 230px !important; -} - -html[it-page-type="video"][it-player-size='fit_to_window'] div#page.watch-wide #watch-appbar-playlist -{ - top: -360px !important; -} - - - - - - - - - - - - - - -html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, -html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player, -html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, -html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player -{ - margin-top: 14px !important; -} diff --git a/unstable/src/youtube/css/blacklist.css b/unstable/src/youtube/css/blacklist.css deleted file mode 100644 index bd816c5ca..000000000 --- a/unstable/src/youtube/css/blacklist.css +++ /dev/null @@ -1,36 +0,0 @@ -.improvedtube-add-to-blacklist -{ - font-size: 32px; - line-height: 26px; - - position: absolute; - z-index: 999; - top: 4px; - left: 4px; - - visibility: hidden; - overflow: hidden; - - width: 32px; - height: 32px; - - cursor: pointer; - transition: transform .15s; - transform: scale(1); - text-align: center; - - opacity: .7; - color: #fff; - border-radius: 2px; - background: #000; -} - -*:hover > .improvedtube-add-to-blacklist -{ - visibility: visible; -} - -.improvedtube-add-to-blacklist:hover -{ - transform: scale(1.25); -} diff --git a/unstable/src/youtube/css/channel.css b/unstable/src/youtube/css/channel.css deleted file mode 100644 index fb5a879a0..000000000 --- a/unstable/src/youtube/css/channel.css +++ /dev/null @@ -1,22 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> CHANNEL -------------------------------------------------------------------------------- -1.0 Featured content ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Featured content ------------------------------------------------------------------------------*/ - -html[it-channel-hide-featured-content=true] #secondary #contents.style-scope.ytd-browse-secondary-contents-renderer, -html[it-channel-hide-featured-content=true] .branded-page-v2-secondary-col -{ - display: none !important; -} -html[it-channel-hide-featured-content=true] #secondary.ytd-two-column-browse-results-renderer, -html[it-channel-hide-featured-content=true] #secondary ytd-browse-secondary-contents-renderer -{ - padding: 0; - width: fit-content; - height: fit-content; -} diff --git a/unstable/src/youtube/css/general.css b/unstable/src/youtube/css/general.css deleted file mode 100644 index 6bb3e2226..000000000 --- a/unstable/src/youtube/css/general.css +++ /dev/null @@ -1,279 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> GENERAL -------------------------------------------------------------------------------- -1.0 YouTube Home Page -2.0 Add «Scroll to top» -3.0 Squared user images -4.0 Hide animated thumbnails -5.0 Better subscriptions -6.0 Mark watched videos ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 YouTube Home Page ------------------------------------------------------------------------------*/ - -html[it-page-type=home][it-youtube-home-page=search], -html[it-page-type=home][it-youtube-home-page=search] app-drawer[opened], -html[it-page-type=home][it-youtube-home-page=search] #appbar-guide-menu -{ - visibility: hidden !important; - overflow: hidden !important; - - width: 100vw !important; - height: 100vh !important; - - pointer-events: none !important; -} - -html[it-page-type=home][it-youtube-home-page=search] ytd-searchbox#search, -html[it-page-type=home][it-youtube-home-page=search] #yt-masthead-content -{ - position: fixed !important; - z-index: 99999 !important; - top: 0 !important; - left: 0 !important; - - display: flex !important; - visibility: visible !important; - - width: 100vw !important; - height: 100vh !important; - margin: 0 !important; - - pointer-events: all !important; - - justify-content: center !important; - align-items: center !important; -} - -html[it-page-type=home][it-youtube-home-page=search] #yt-masthead-content > form -{ - width: 100% !important; -} - -html[it-page-type=home][it-youtube-home-page=search] .gstl_50.sbdd_a -{ - z-index: 99999 !important; - - visibility: visible !important; - - pointer-events: all !important; -} - - -/*----------------------------------------------------------------------------- -2.0 Add «Scroll to top» ------------------------------------------------------------------------------*/ - -#it-scroll-to-top -{ - position: fixed; - z-index: 999; - right: 32px; - bottom: 32px; - - display: flex; - visibility: hidden; - - box-sizing: border-box; - width: 56px; - height: 56px; - - cursor: pointer; - transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; - transform: translateY(88px); - pointer-events: none; - - opacity: 0; - border-radius: 50%; - background: linear-gradient(135deg, #f8d266, #f17953); - box-shadow: 0 1px 1px 1px rgba(230, 109, 70, .7), 0 3px 5px rgba(0,0,0,.35); - - justify-content: center; - align-items: center; -} - -html[it-show-scroll-to-top=true] #it-scroll-to-top -{ - visibility: visible; - - transform: translateY(0px); - pointer-events: all; - - opacity: 1; -} - -html:not([it-red-popup-theme]) #it-scroll-to-top, -html[it-red-popup-theme="true"] #it-scroll-to-top -{ - background: #f73030; - box-shadow: 0 3px 5px rgba(0,0,0,.35); -} - -#it-scroll-to-top > svg -{ - width: 24px; - - fill: #fff; -} - -html[it-show-scroll-to-top="true"] #it-scroll-to-top:hover -{ - transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; - transform: translateY(4px) scale(.975); - box-shadow: 0 5px 5px -3px rgba(0, 0, 0, .2), 0 8px 10px 1px rgba(0, 0, 0, .14), 0 3px 14px 2px rgba(0, 0, 0, .12); -} - - -/*----------------------------------------------------------------------------- -3.0 Squared user images ------------------------------------------------------------------------------*/ - -html[it-squared-user-images=true] #avatar.ytd-shelf-renderer, -html[it-squared-user-images=true] yt-img-shadow, -html[it-squared-user-images=true] #yt-masthead-user .yt-masthead-user-icon -{ - border-radius: unset !important; -} - - -/*----------------------------------------------------------------------------- -4.0 Hide animated thumbnails ------------------------------------------------------------------------------*/ - -html[it-hide-animated-thumbnails=true] #mouseover-overlay, -html[it-hide-animated-thumbnails=true] .mouseover-play, -html[it-hide-animated-thumbnails=true] .mouseover-img -{ - visibility: hidden !important; -} - - -/*----------------------------------------------------------------------------- -5.0 Better subscriptions ------------------------------------------------------------------------------*/ - -#browse-items-primary .section-list > li .shelf-title-cell -{ - display: flex; -} - -#browse-items-primary .section-list > li .shelf-title-row -{ - display: flex; - - justify-content: space-between; -} - -ytd-item-section-renderer .grid-subheader + #contents, -#browse-items-primary .section-list > li, -#browse-items-primary .section-list > li .multirow-shelf -{ - overflow: hidden; -} - -ytd-item-section-renderer.it-section-collapsed .grid-subheader + #contents, -#browse-items-primary .section-list > li.it-section-collapsed .multirow-shelf -{ - height: 0 !important; -} - -#browse-items-primary .section-list > li .it-section-collapse -{ - margin-left: 16px; -} - -ytd-item-section-renderer .it-section-collapse, -#browse-items-primary .section-list > li .it-section-collapse -{ - cursor: pointer; -} - -ytd-item-section-renderer .it-section-collapse svg, -#browse-items-primary .section-list > li .it-section-collapse svg -{ - width: 24px; - height: 24px; - - transition: transform 150ms; - - fill: var(--ytd-menu-renderer-button-color, var(--yt-spec-icon-inactive)); -} - -#browse-items-primary .section-list > li .it-section-collapse svg -{ - position: relative; - top: -2px; -} - -ytd-item-section-renderer .it-section-collapse:hover svg, -#browse-items-primary .section-list > li .it-section-collapse:hover svg -{ - fill: var(--yt-spec-icon-active-other); -} - -ytd-item-section-renderer.it-section-collapsed .it-section-collapse svg, -#browse-items-primary .section-list > li.it-section-collapsed .it-section-collapse svg -{ - transform: rotate(180deg); -} - - -/*----------------------------------------------------------------------------- -6.0 Mark watched videos ------------------------------------------------------------------------------*/ - -.it-mark-watched -{ - position: absolute; - z-index: 999; - bottom: 4px; - left: 4px; - - visibility: hidden; - overflow: hidden; - - width: 28px; - height: 28px; - - cursor: pointer; - text-align: center; - - color: #fff; - border-radius: 2px; - background: rgba(0,0,0,.8); -} - -.it-mark-watched svg -{ - position: absolute; - top: 4px; - left: 4px; - - width: 20px; - height: 20px; - - fill: var(--ytd-menu-renderer-button-color, var(--yt-spec-icon-inactive, #aaa)); -} - -*:hover > .it-mark-watched -{ - visibility: visible; -} - -.it-mark-watched.watched svg -{ - fill: var(--yt-spec-icon-active-other, #fff); -} - - - - -/*html[it-remove-related-search-results=true] ytd-shelf-renderer.style-scope.ytd-item-section-renderer, -html[it-remove-related-search-results=true] ytd-horizontal-card-list-renderer.style-scope.ytd-item-section-renderer, -html[it-remove-related-search-results=true] li > div.feed-item-container.browse-list-item-container.yt-section-hover-container.compact-shelf.shelf-item.branded-page-box, -html[it-remove-related-search-results=true] li > div.search-refinements -{ - display: none; -}*/ diff --git a/unstable/src/youtube/css/other.css b/unstable/src/youtube/css/other.css deleted file mode 100644 index 4eddd3ea7..000000000 --- a/unstable/src/youtube/css/other.css +++ /dev/null @@ -1,147 +0,0 @@ -.it-rate-notify -{ - position: fixed; - z-index: 99999999; - right: 24px; - bottom: 24px; - - visibility: hidden; - overflow: hidden; - - width: 300px; - padding-left: 96px; - - transition: transform 200ms; - transform: translate(0, 100%); - - opacity: 0; - border-radius: 16px; - background-image: linear-gradient(-20deg, #e9defa 0%, #e9defa 50%, #fbfcdb 100%); - box-shadow: 0 4px 12px rgba(0, 0, 0, .3); -} - -html:not([it-page-type='video']) .it-rate-notify.it-rate-notify--show -{ - visibility: visible; - - transform: translate(0,0); - animation: 1s infinite it-popup-background; - animation-timing-function: linear; - - opacity: 1; -} - -.it-rate-notify__heart -{ - position: absolute; - z-index: -1; - top: 20px; - left: 20px; - - width: 80px; - height: 80px; - - fill: url(#itHeartGradient); -} - -.it-rate-notify.it-rate-notify--show .it-rate-notify__heart -{ - animation: .8s infinite it-heart-beat; -} - -.it-rate-notify__title -{ - font-size: 18px; - font-weight: 500; - line-height: 27px; - - margin: 20px 24px; - - letter-spacing: .03125em; - - color: rgba(51, 38, 25, .8); -} - -.it-rate-notify__footer -{ - display: flex; - - padding: 8px; - - align-items: center; - justify-content: flex-end; -} - -.it-rate-notify__footer > button -{ - font: 500 18px 'Roboto'; - - min-width: 64px; - height: 36px; - padding: 0 8px; - - cursor: pointer; - transition: 150ms; - - color: rgba(255, 8, 68,.65); - border: none; - outline: none; - background: none; -} - -.it-rate-notify__footer > button:hover -{ - transform: scale(1.05); - - color: rgba(255, 8, 68,.85); -} - -.it-rate-notify__footer > button:last-child -{ - color: rgba(51, 38, 25, .25); -} - -.it-rate-notify__footer > button:last-child:hover -{ - color: rgba(51, 38, 25, .85); -} - -@keyframes it-popup-background -{ - 0% - { - background-image: linear-gradient(-20deg, #e9defa 0%, #e9defa 50%, #fbfcdb 100%); - } - 50% - { - background-image: linear-gradient(-20deg, #e9defa 0%, #fbfcdb 50%, #e9defa 100%); - } - 100% - { - background-image: linear-gradient(-20deg, #fbfcdb 0%, #e9defa 50%, #e9defa 100%); - } -} - -@keyframes it-heart-beat -{ - 0% - { - transform: scale(1); - } - 25% - { - transform: scale(1.1); - } - 40% - { - transform: scale(1); - } - 60% - { - transform: scale(1.1); - } - 100% - { - transform: scale(1); - } -} diff --git a/unstable/src/youtube/css/player.css b/unstable/src/youtube/css/player.css deleted file mode 100644 index edd9d6dd4..000000000 --- a/unstable/src/youtube/css/player.css +++ /dev/null @@ -1,355 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> PLAYER -------------------------------------------------------------------------------- -1.0 Ads -2.0 Mini player - 2.1 Position and size - 2.2 Dragging - 2.3 Multipage -3.0 Custom player button - 3.1 Repeat - 3.2 Screenshot - 3.3 Rotate - 3.4 Popup -4.0 Crop chapter titles ------------------------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -1.0 Ads ----------------------------------------------------------------*/ - -/*html[it-player-ads="block_all"] .video-ads.ytp-ad-module, -html[it-player-ads="subscribed_channels"] .video-ads.ytp-ad-module -{ - display: none !important -}*/ - - -/*----------------------------------------------------------------------------- -2.0 Mini player ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -2.1 Position and size ------------------------------------------------------------------------------*/ - -.it-mini-player -{ - position: fixed !important; - z-index: 2147483648 !important; - left: 0!important; - top: 0!important; - - box-shadow: rgba(0, 0, 0, .4) 0 2px 8px !important; - - will-change: transform, width, height !important; - - background: #000 !important; -} - -html[it-page-type="video"][it-header-position="hover_on_video_page"][it-player-size="full_window"] .html5-video-player.it-mini-player, -html[it-page-type="video"][it-header-position="hover"][it-player-size="full_window"] .html5-video-player.it-mini-player -{ - margin-top: 0!important; -} - -.it-mini-player .html5-video-container, -.it-mini-player video -{ - left: 0 !important; - top: 0 !important; - width: 100% !important; - height: 100% !important; -} - -.it-mini-player .ytp-chrome-bottom -{ - width: calc(100% - 24px) !important; -} - -.it-mini-player .ytp-chapters-container -{ - display: flex; -} - -.it-mini-player .ytp-chapter-hover-container -{ - flex-grow: 1; -} - -html[it-mini-player=true] .ytp-contextmenu -{ - z-index: 2147483649 !important; -} - -.it-mini-player .ytp-miniplayer-button, -.it-mini-player .ytp-size-button -{ - display: none !important; -} - - -/*----------------------------------------------------------------------------- -2.2 Dragging ------------------------------------------------------------------------------*/ - -.improvedtube-mini-player.dragging -{ - pointer-events: none !important; -} - -.improvedtube-mini-player.dragging *:not(.html5-video-container):not(video) -{ - visibility: hidden !important; -} - -html[data-cursor='w-resize'], -html[data-cursor='w-resize'] * -{ - cursor: w-resize !important; -} - -html[data-cursor='e-resize'], -html[data-cursor='e-resize'] * -{ - cursor: e-resize !important; -} - -html[it-mini-player-cursor='n-resize']::after, -html[it-mini-player-cursor='e-resize']::after, -html[it-mini-player-cursor='s-resize']::after, -html[it-mini-player-cursor='w-resize']::after, -html[it-mini-player-cursor='ne-resize']::after, -html[it-mini-player-cursor='se-resize']::after, -html[it-mini-player-cursor='sw-resize']::after, -html[it-mini-player-cursor='nw-resize']::after -{ - content: ''; - position: fixed; - left: 0; - top: 0; - width: 100vw; - height: 100vh; - z-index: 2147483650; -} - -html[it-mini-player-cursor='n-resize']::after -{ - cursor: n-resize; -} - -html[it-mini-player-cursor='e-resize']::after -{ - cursor: e-resize; -} - -html[it-mini-player-cursor='s-resize']::after -{ - cursor: s-resize; -} - -html[it-mini-player-cursor='w-resize']::after -{ - cursor: w-resize; -} - -html[it-mini-player-cursor='ne-resize']::after -{ - cursor: ne-resize; -} - -html[it-mini-player-cursor='se-resize']::after -{ - cursor: se-resize; -} - -html[it-mini-player-cursor='sw-resize']::after -{ - cursor: sw-resize; -} - -html[it-mini-player-cursor='nw-resize']::after -{ - cursor: nw-resize; -} - - -/*----------------------------------------------------------------------------- -2.3 Multipage ------------------------------------------------------------------------------*/ - -html[it-mini-player=true] ytd-watch-flexy[hidden] -{ - position: absolute !important; - top: 0 !important; - left: 0 !important; - - display: block !important; - visibility: hidden !important; - - max-width: 100% !important; - - pointer-events: none !important; -} - -html[it-mini-player=true] ytd-watch-flexy[hidden] .ytd-watch-next-secondary-results-renderer -{ - display: none; -} - -html[it-mini-player=true] ytd-watch-flexy[hidden] .improvedtube-mini-player -{ - position: fixed !important; - - visibility: visible !important; - - pointer-events: all !important; -} - - -/*----------------------------------------------------------------------------- -3.0 Custom player button ------------------------------------------------------------------------------*/ - -#it-repeat-button, -#it-screenshot-button, -#it-rotate-button, -#it-popup-player-button -{ - position: relative !important; -} - -.html5-video-player.ytp-big-mode #it-repeat-button svg, -.html5-video-player.ytp-big-mode #it-screenshot-button svg, -.html5-video-player.ytp-big-mode #it-rotate-button svg, -.html5-video-player.ytp-big-mode #it-popup-player-button svg -{ - top: 10px !important; - left: 10px !important; - - width: 34px !important; -} - -#it-repeat-button svg, -#it-screenshot-button svg, -#it-rotate-button svg, -#it-popup-player-button svg -{ - position: absolute !important; - - fill: #fff !important; -} - - -/*----------------------------------------------------------------------------- -3.1 Repeat ------------------------------------------------------------------------------*/ - -#it-repeat-button svg -{ - top: 6px !important; - left: 6px !important; - - width: 24px !important; -} - - -/*----------------------------------------------------------------------------- -3.2 Screenshot ------------------------------------------------------------------------------*/ - -#it-screenshot-button svg -{ - top: 7px !important; - left: 7px !important; - - width: 22px !important; -} - - -/*----------------------------------------------------------------------------- -3.3 Rotate ------------------------------------------------------------------------------*/ - -#it-rotate-button svg -{ - top: 7px !important; - left: 7px !important; - - width: 22px !important; -} - - -/*----------------------------------------------------------------------------- -3.4 Popup ------------------------------------------------------------------------------*/ - -#it-popup-player-button svg -{ - top: 7px !important; - left: 7px !important; - - width: 22px !important; -} - - - - - - - - - - - - -.it-player-button -{ - position: relative !important; - - overflow: visible !important; -} - -.it-player-button::before -{ - font-size: 13px; - font-weight: 600; - line-height: 13px; - - position: absolute; - top: -38px; - left: 50%; - - visibility: hidden; - - min-height: unset; - padding: 5px 9px; - - content: attr(data-title); - transform: translateX(-50%); - pointer-events: none; - - border-radius: 2px; - background-color: rgba(28,28,28,.9); -} - -.it-player-button:hover::before -{ - visibility: visible; - - pointer-events: all; -} - - - - - - -/*----------------------------------------------------------------------------- -4.0 Crop chapter titles ------------------------------------------------------------------------------*/ - -html[it-player-crop-chapter-titles='false'] .ytp-chapter-title -{ - width: auto !important; -} diff --git a/unstable/src/youtube/css/playlist.css b/unstable/src/youtube/css/playlist.css deleted file mode 100644 index 509d466e5..000000000 --- a/unstable/src/youtube/css/playlist.css +++ /dev/null @@ -1,48 +0,0 @@ -html[it-youtube-version=new] #it-playlist-reverse -{ - display: flex; - - width: 40px; - margin-left: 8px; - - cursor: pointer; - - align-items: center; - justify-content: center; -} - -html[it-youtube-version=new] #it-playlist-reverse svg -{ - fill: var(--iron-icon-fill-color, #909090); -} - -html[it-youtube-version=new] #it-playlist-reverse.yt-uix-button-toggled svg -{ - fill: var(--yt-spec-call-to-action); -} - -html[it-youtube-version=old] #it-playlist-reverse -{ - display: inline-block; - - box-sizing: border-box; - width: 26px; - height: 28px; - margin: 0 0 0 8px; - padding: 2px 1px; - - cursor: pointer; - vertical-align: middle; - - opacity: .5; -} - -html[it-youtube-version=old] #it-playlist-reverse.yt-uix-button-toggled -{ - opacity: 1; -} - -html[it-youtube-version=old] #it-playlist-reverse svg -{ - fill: #fff; -} diff --git a/unstable/src/youtube/css/settings.css b/unstable/src/youtube/css/settings.css deleted file mode 100644 index a951e0ee0..000000000 --- a/unstable/src/youtube/css/settings.css +++ /dev/null @@ -1,170 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> SETTINGS -------------------------------------------------------------------------------- -1.0 ImprovedTube icon on YouTube ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 ImprovedTube icon on YouTube ------------------------------------------------------------------------------*/ - -html[it-improvedtube-youtube-icon='below_player'] .title.ytd-video-primary-info-renderer -{ - overflow: visible !important; -} - -html[it-improvedtube-youtube-icon='below_player'] h1.watch-title-container -{ - display: inline-block !important; -} - -html[it-improvedtube-youtube-icon='draggable'] .it-btn -{ - position: fixed; - z-index: 2147483645; - top: calc(100vh - 56px); - left: calc(100vw - 64px); -} - -.it-btn -{ - z-index: 2147483645; - - user-select: none; -} - -#container.ytd-masthead > .it-btn -{ - margin: 0 12px 0 0; -} - -.yt-masthead-logo-container > .it-btn -{ - float: left; - - margin: 0 12px 0 0; -} - -#end #buttons .it-btn -{ - margin: 3px 0 0 0; -} - -#yt-masthead-user > .it-btn -{ - float: right; - - margin: -2px 0 0 14px; -} - -.title.ytd-video-primary-info-renderer > .it-btn, -#watch-headline-title > .it-btn -{ - float: right; -} - -.it-btn__scrim -{ - position: fixed; - z-index: 2147483645; - top: 0; - left: 0; - - visibility: hidden; - - width: 100%; - height: 100vh; - - transition: 150ms; - pointer-events: none; - - opacity: 0; - background: #000; -} - -.it-btn__icon -{ - position: relative; - z-index: 2147483645; - - width: 32px; - height: 32px; - margin: 0 0 2px 0; - - cursor: pointer; - - border-radius: 50%; - background: #f00; -} - -.it-btn__icon::after -{ - position: absolute; - top: 9px; - left: 12px; - - display: block; - - content: ''; - - opacity: .9; - border-top: 7px solid transparent; - border-bottom: 7px solid transparent; - border-left: 11px solid #fff; -} - -.it-btn__iframe -{ - position: absolute; - z-index: 2147483645; - top: 50px; - - visibility: hidden; - - width: 320px; - max-width: 80vw; - height: 500px; - max-height: 80vh; - - transition: opacity 150ms; - pointer-events: none; - - opacity: 0; -} - -#end #buttons .it-btn__iframe, -#yt-masthead-user .it-btn__iframe -{ - right: 0; - left: auto; -} - -.it-btn.it-btn--active .it-btn__scrim -{ - visibility: visible; - - pointer-events: all; - - opacity: .5; -} - -.it-btn.it-btn--active .it-btn__iframe -{ - visibility: visible; - - pointer-events: all; - - opacity: 1; -} - -.it-btn--dragging, -.it-btn--dragging .it-btn__icon, -.it-btn--dragging .it-btn__iframe -{ - pointer-events: none !important; -} - -.it-btn--dragging .it-btn__iframe -{ - opacity: .75 !important; -} diff --git a/unstable/src/youtube/css/shortcuts.css b/unstable/src/youtube/css/shortcuts.css deleted file mode 100644 index 62abb8661..000000000 --- a/unstable/src/youtube/css/shortcuts.css +++ /dev/null @@ -1,11 +0,0 @@ -#it-status -{ - font-size: 5rem; - - position: absolute; - top: 2rem; - right: 3rem; - - color: #0ff; - text-shadow: 1px 1px 2px #000; -} diff --git a/unstable/src/youtube/css/themes.css b/unstable/src/youtube/css/themes.css deleted file mode 100644 index 0ff20f291..000000000 --- a/unstable/src/youtube/css/themes.css +++ /dev/null @@ -1,87 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> THEMES -------------------------------------------------------------------------------- -1.0 Bluelight -2.0 Dim ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Bluelight ------------------------------------------------------------------------------*/ - -html[it-bluelight] -{ - height: auto !important; -} - -html[it-bluelight], -html[it-bluelight] .html5-video-player.ytp-fullscreen -{ - filter: url(#it-bluelight-filter) !important; -} - -#it-bluelight -{ - position: fixed !important; - top: 0 !important; - left: 0 !important; - - visibility: hidden !important; - - width: 100% !important; - height: 100vh !important; - - pointer-events: none !important; -} - -html[it-bluelight][it-youtube-version=old] -{ - background-color: #f1f1f1; -} - -html[it-bluelight][it-youtube-version=old] body -{ - min-height: 100vh; -} - - -/*----------------------------------------------------------------------------- -2.0 Dim ------------------------------------------------------------------------------*/ - -#it-dim -{ - position: fixed !important; - z-index: 2147483645 !important; - top: 0 !important; - left: 0 !important; - - width: 100% !important; - height: 100vh !important; - - pointer-events: none !important; - - background: #000 !important; -} - -#it-dim-player -{ - position: fixed !important; - z-index: 2147483645 !important; - top: 0 !important; - left: 0 !important; - - visibility: hidden !important; - - width: 100% !important; - height: 100vh !important; - - pointer-events: none !important; - - background: #000 !important; -} - -.html5-video-player.ytp-fullscreen #it-dim-player -{ - visibility: visible !important; -} diff --git a/unstable/src/youtube/css/themes/black.css b/unstable/src/youtube/css/themes/black.css deleted file mode 100644 index 8359a38bb..000000000 --- a/unstable/src/youtube/css/themes/black.css +++ /dev/null @@ -1,633 +0,0 @@ -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #000!important; - --yt-swatch-primary-darker: #000!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #000; - - --yt-spec-brand-background-solid:#000 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#000 !important; - --yt-spec-general-background-b:#000 !important; - --yt-spec-general-background-c:#000 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#aaa !important; - --yt-spec-text-primary-inverse:#aaa !important; - --yt-spec-text-secondary:#aaa !important; - --yt-spec-text-disabled:#aaa !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#aaa !important; - --yt-spec-icon-inactive:#aaa !important; - --yt-spec-icon-disabled:#aaa !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#000000 !important; - --yt-spec-filled-button-text:#aaa !important; - --yt-spec-call-to-action-inverse:#aaa !important; - --yt-spec-brand-icon-active:#aaa !important; - --yt-spec-brand-icon-inactive:#aaa !important; - --yt-spec-brand-button-background:#242424 !important; - --yt-spec-brand-link-text:#aaa !important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#aaa !important; - --yt-spec-wordmark-text:#aaa !important; - --yt-spec-10-percent-layer:#242424 !important; - --yt-spec-selected-nav-text:#aaa !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo -{ - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); -} -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #000!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #000; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #000; - --yt-playlist-background-item: #000; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #000; - --paper-listbox-background-color: #000; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #000; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #000; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #000; - --yt-menu-focus-background-color: #000; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #000; - --yt-main-app-background: #000; - --yt-main-app-background-tmp: #000; - --yt-guide-background: #000; - --yt-dialog-background: #000; - --yt-searchbox-background: #000!important; - --yt-channel-header-background: #000; - --yt-sidebar-background: #000; - --yt-transcript-background: #000; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #000; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #000; - --yt-blue-suggestive: transparent; -} - - - -@media (prefers-color-scheme: dark) { - [it-black-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #000!important; - --yt-swatch-primary-darker: #000!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #000; - - --yt-spec-brand-background-solid:#000 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#000 !important; - --yt-spec-general-background-b:#000 !important; - --yt-spec-general-background-c:#000 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#aaa !important; - --yt-spec-text-primary-inverse:#aaa !important; - --yt-spec-text-secondary:#aaa !important; - --yt-spec-text-disabled:#aaa !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#aaa !important; - --yt-spec-icon-inactive:#aaa !important; - --yt-spec-icon-disabled:#aaa !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#000000 !important; - --yt-spec-filled-button-text:#aaa !important; - --yt-spec-call-to-action-inverse:#aaa !important; - --yt-spec-brand-icon-active:#aaa !important; - --yt-spec-brand-icon-inactive:#aaa !important; - --yt-spec-brand-button-background:#242424 !important; - --yt-spec-brand-link-text:#aaa !important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#aaa !important; - --yt-spec-wordmark-text:#aaa !important; - --yt-spec-10-percent-layer:#242424 !important; - --yt-spec-selected-nav-text:#aaa !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - html[it-black-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-black-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #000!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #000; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-black-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-black-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #000; - --yt-playlist-background-item: #000; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #000; - --paper-listbox-background-color: #000; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #000; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #000; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #000; - --yt-menu-focus-background-color: #000; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #000; - --yt-main-app-background: #000; - --yt-main-app-background-tmp: #000; - --yt-guide-background: #000; - --yt-dialog-background: #000; - --yt-searchbox-background: #000!important; - --yt-channel-header-background: #000; - --yt-sidebar-background: #000; - --yt-transcript-background: #000; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #000; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #000; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-black-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #000!important; - --yt-swatch-primary-darker: #000!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #000; - - --yt-spec-brand-background-solid:#000 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#000 !important; - --yt-spec-general-background-b:#000 !important; - --yt-spec-general-background-c:#000 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#aaa !important; - --yt-spec-text-primary-inverse:#aaa !important; - --yt-spec-text-secondary:#aaa !important; - --yt-spec-text-disabled:#aaa !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#aaa !important; - --yt-spec-icon-inactive:#aaa !important; - --yt-spec-icon-disabled:#aaa !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#000000 !important; - --yt-spec-filled-button-text:#aaa !important; - --yt-spec-call-to-action-inverse:#aaa !important; - --yt-spec-brand-icon-active:#aaa !important; - --yt-spec-brand-icon-inactive:#aaa !important; - --yt-spec-brand-button-background:#242424 !important; - --yt-spec-brand-link-text:#aaa !important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#aaa !important; - --yt-spec-wordmark-text:#aaa !important; - --yt-spec-10-percent-layer:#242424 !important; - --yt-spec-selected-nav-text:#aaa !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - html[it-black-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-black-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #000!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #000; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-black-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-black-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #000; - --yt-playlist-background-item: #000; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #000; - --paper-listbox-background-color: #000; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #000; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #000; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #000; - --yt-menu-focus-background-color: #000; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #000; - --yt-main-app-background: #000; - --yt-main-app-background-tmp: #000; - --yt-guide-background: #000; - --yt-dialog-background: #000; - --yt-searchbox-background: #000!important; - --yt-channel-header-background: #000; - --yt-sidebar-background: #000; - --yt-transcript-background: #000; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #000; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #000; - --yt-blue-suggestive: transparent; - } -} \ No newline at end of file diff --git a/unstable/src/youtube/css/themes/dawn.css b/unstable/src/youtube/css/themes/dawn.css deleted file mode 100644 index 7eae42a05..000000000 --- a/unstable/src/youtube/css/themes/dawn.css +++ /dev/null @@ -1,637 +0,0 @@ -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #d44d5c!important; - --yt-swatch-primary-darker: #d44d5c!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #734; - - --yt-spec-brand-background-solid:#d44d5c !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#d44d5c !important; - --yt-spec-general-background-b:#d44d5c !important; - --yt-spec-general-background-c:#d44d5c !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:rgb(255,255,255) !important; - --yt-spec-text-primary-inverse:rgb(255,255,255) !important; - --yt-spec-text-secondary:rgb(255,255,255) !important; - --yt-spec-text-disabled:rgb(255,255,255) !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:rgb(255,255,255) !important; - --yt-spec-icon-inactive:rgb(255,255,255) !important; - --yt-spec-icon-disabled:rgb(255,255,255) !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#d44d5c !important; - --yt-spec-filled-button-text:rgb(255,255,255) !important; - --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; - --yt-spec-brand-icon-active:rgb(255,255,255) !important; - --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:rgb(255,255,255)!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; - --yt-spec-wordmark-text:rgb(255,255,255) !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:rgb(255,255,255) !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #734!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #d44d5c; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #d44d5c; - --yt-playlist-background-item: #d44d5c; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #d44d5c; - --paper-listbox-background-color: #d44d5c; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #d44d5c; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #d44d5c; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #d44d5c; - --yt-menu-focus-background-color: #d44d5c; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #d44d5c; - --yt-main-app-background: #d44d5c; - --yt-main-app-background-tmp: #d44d5c; - --yt-guide-background: #d44d5c; - --yt-dialog-background: #734; - --yt-searchbox-background: #672c3b; - --yt-channel-header-background: #d44d5c; - --yt-sidebar-background: #d44d5c; - --yt-transcript-background: #d44d5c; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #d44d5c; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #d44d5c; - --yt-blue-suggestive: transparent; - --yt-spec-text-secondary: #f5dbe2; -} -html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo -{ - -webkit-filter: grayscale(1) brightness(4); - filter: grayscale(1) brightness(4); -} - - - - - -@media (prefers-color-scheme: dark) { - [it-dawn-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #d44d5c!important; - --yt-swatch-primary-darker: #d44d5c!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #734; - - --yt-spec-brand-background-solid:#d44d5c !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#d44d5c !important; - --yt-spec-general-background-b:#d44d5c !important; - --yt-spec-general-background-c:#d44d5c !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:rgb(255,255,255) !important; - --yt-spec-text-primary-inverse:rgb(255,255,255) !important; - --yt-spec-text-secondary:rgb(255,255,255) !important; - --yt-spec-text-disabled:rgb(255,255,255) !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:rgb(255,255,255) !important; - --yt-spec-icon-inactive:rgb(255,255,255) !important; - --yt-spec-icon-disabled:rgb(255,255,255) !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#d44d5c !important; - --yt-spec-filled-button-text:rgb(255,255,255) !important; - --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; - --yt-spec-brand-icon-active:rgb(255,255,255) !important; - --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:rgb(255,255,255)!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; - --yt-spec-wordmark-text:rgb(255,255,255) !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:rgb(255,255,255) !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-dawn-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #734!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #d44d5c; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-dawn-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-dawn-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #d44d5c; - --yt-playlist-background-item: #d44d5c; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #d44d5c; - --paper-listbox-background-color: #d44d5c; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #d44d5c; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #d44d5c; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #d44d5c; - --yt-menu-focus-background-color: #d44d5c; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #d44d5c; - --yt-main-app-background: #d44d5c; - --yt-main-app-background-tmp: #d44d5c; - --yt-guide-background: #d44d5c; - --yt-dialog-background: #734; - --yt-searchbox-background: #672c3b; - --yt-channel-header-background: #d44d5c; - --yt-sidebar-background: #d44d5c; - --yt-transcript-background: #d44d5c; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #d44d5c; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #d44d5c; - --yt-blue-suggestive: transparent; - --yt-spec-text-secondary: #f5dbe2; - } - html[it-dawn-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(4); - filter: grayscale(1) brightness(4); - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-dawn-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #d44d5c!important; - --yt-swatch-primary-darker: #d44d5c!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #734; - - --yt-spec-brand-background-solid:#d44d5c !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#d44d5c !important; - --yt-spec-general-background-b:#d44d5c !important; - --yt-spec-general-background-c:#d44d5c !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:rgb(255,255,255) !important; - --yt-spec-text-primary-inverse:rgb(255,255,255) !important; - --yt-spec-text-secondary:rgb(255,255,255) !important; - --yt-spec-text-disabled:rgb(255,255,255) !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:rgb(255,255,255) !important; - --yt-spec-icon-inactive:rgb(255,255,255) !important; - --yt-spec-icon-disabled:rgb(255,255,255) !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#d44d5c !important; - --yt-spec-filled-button-text:rgb(255,255,255) !important; - --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; - --yt-spec-brand-icon-active:rgb(255,255,255) !important; - --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:rgb(255,255,255)!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; - --yt-spec-wordmark-text:rgb(255,255,255) !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:rgb(255,255,255) !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-dawn-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #734!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #d44d5c; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-dawn-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-dawn-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #d44d5c; - --yt-playlist-background-item: #d44d5c; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #d44d5c; - --paper-listbox-background-color: #d44d5c; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #d44d5c; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #d44d5c; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #d44d5c; - --yt-menu-focus-background-color: #d44d5c; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #d44d5c; - --yt-main-app-background: #d44d5c; - --yt-main-app-background-tmp: #d44d5c; - --yt-guide-background: #d44d5c; - --yt-dialog-background: #734; - --yt-searchbox-background: #672c3b; - --yt-channel-header-background: #d44d5c; - --yt-sidebar-background: #d44d5c; - --yt-transcript-background: #d44d5c; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #d44d5c; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #d44d5c; - --yt-blue-suggestive: transparent; - --yt-spec-text-secondary: #f5dbe2; - } - html[it-dawn-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(4); - filter: grayscale(1) brightness(4); - } \ No newline at end of file diff --git a/unstable/src/youtube/css/themes/default.css b/unstable/src/youtube/css/themes/default.css deleted file mode 100644 index 96a9a944a..000000000 --- a/unstable/src/youtube/css/themes/default.css +++ /dev/null @@ -1,563 +0,0 @@ -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-header-primary: rgb(34,38,42)!important; - --yt-swatch-primary: rgb(34,38,42)!important; - --yt-swatch-primary-darker: rgb(28,32,36)!important; - --yt-swatch-text: rgb(200,200,200)!important; - --yt-swatch-important-text: rgb(200,200,200)!important; - --yt-swatch-input-text: rgba(200,200,200,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(200,200,200)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; -} - -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #masthead-search-term -{ - border: 1px solid #444!important; - border-right: none!important; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light])[youtube-version=old] body -{ - height: auto; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - background: var(--yt-swatch-primary-darker)!important; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #232323!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #282828; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) -{ - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); - --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: hsl(0, 0%, 14%); - --paper-listbox-background-color: hsl(0, 0%, 14%); - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: hsl(0, 0%, 14%); - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); - --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: hsl(0, 0%, 7%); - --yt-main-app-background: hsl(0, 0%, 7%); - --yt-main-app-background-tmp: hsl(0, 0%, 7%); - --yt-guide-background: hsl(0, 0%, 11%); - --yt-dialog-background: hsl(0, 0%, 14%); - --yt-searchbox-background: hsl(0, 0%, 7%); - --yt-channel-header-background: hsla(0, 0%, 11%, .8); - --yt-sidebar-background: hsla(0, 0%, 11%, .8); - --yt-transcript-background: hsl(0, 0%, 11%); - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); - --yt-blue-suggestive: transparent; -} - -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light])[youtube-version=old] body -{ - height: auto!important; - - background: rgb(19,19,19)!important; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-youtube-version=old][it-default-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-header-primary: rgb(34,38,42)!important; - --yt-swatch-primary: rgb(34,38,42)!important; - --yt-swatch-primary-darker: rgb(28,32,36)!important; - --yt-swatch-text: rgb(200,200,200)!important; - --yt-swatch-important-text: rgb(200,200,200)!important; - --yt-swatch-input-text: rgba(200,200,200,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(200,200,200)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] #masthead-search-term - { - border: 1px solid #444!important; - border-right: none!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] html[youtube-version=old] body - { - height: auto; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] - { - background: var(--yt-swatch-primary-darker)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #232323!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #282828; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) - { - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); - --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: hsl(0, 0%, 14%); - --paper-listbox-background-color: hsl(0, 0%, 14%); - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: hsl(0, 0%, 14%); - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); - --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: hsl(0, 0%, 7%); - --yt-main-app-background: hsl(0, 0%, 7%); - --yt-main-app-background-tmp: hsl(0, 0%, 7%); - --yt-guide-background: hsl(0, 0%, 11%); - --yt-dialog-background: hsl(0, 0%, 14%); - --yt-searchbox-background: hsl(0, 0%, 7%); - --yt-channel-header-background: hsla(0, 0%, 11%, .8); - --yt-sidebar-background: hsla(0, 0%, 11%, .8); - --yt-transcript-background: hsl(0, 0%, 11%); - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); - --yt-blue-suggestive: transparent; - } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark][youtube-version=old] body - { - height: auto!important; - - background: rgb(19,19,19)!important; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-youtube-version=old][it-default-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-header-primary: rgb(34,38,42)!important; - --yt-swatch-primary: rgb(34,38,42)!important; - --yt-swatch-primary-darker: rgb(28,32,36)!important; - --yt-swatch-text: rgb(200,200,200)!important; - --yt-swatch-important-text: rgb(200,200,200)!important; - --yt-swatch-input-text: rgba(200,200,200,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(200,200,200)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] #masthead-search-term - { - border: 1px solid #444!important; - border-right: none!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] html[youtube-version=old] body - { - height: auto; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] - { - background: var(--yt-swatch-primary-darker)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #232323!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #282828; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) - { - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); - --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: hsl(0, 0%, 14%); - --paper-listbox-background-color: hsl(0, 0%, 14%); - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: hsl(0, 0%, 14%); - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); - --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: hsl(0, 0%, 7%); - --yt-main-app-background: hsl(0, 0%, 7%); - --yt-main-app-background-tmp: hsl(0, 0%, 7%); - --yt-guide-background: hsl(0, 0%, 11%); - --yt-dialog-background: hsl(0, 0%, 14%); - --yt-searchbox-background: hsl(0, 0%, 7%); - --yt-channel-header-background: hsla(0, 0%, 11%, .8); - --yt-sidebar-background: hsla(0, 0%, 11%, .8); - --yt-transcript-background: hsl(0, 0%, 11%); - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); - --yt-blue-suggestive: transparent; - } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light][youtube-version=old] body - { - height: auto!important; - - background: rgb(19,19,19)!important; - } -} \ No newline at end of file diff --git a/unstable/src/youtube/css/themes/desert.css b/unstable/src/youtube/css/themes/desert.css deleted file mode 100644 index c3b37ce32..000000000 --- a/unstable/src/youtube/css/themes/desert.css +++ /dev/null @@ -1,623 +0,0 @@ -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #faf9f9!important; - --yt-swatch-primary-darker: #faf9f9!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #bee3db; - - --yt-spec-brand-background-solid:#faf9f9 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#faf9f9 !important; - --yt-spec-general-background-b:#faf9f9 !important; - --yt-spec-general-background-c:#faf9f9 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#555 !important; - --yt-spec-text-primary-inverse:#555 !important; - --yt-spec-text-secondary:#555 !important; - --yt-spec-text-disabled:#555 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#555 !important; - --yt-spec-icon-inactive:#555 !important; - --yt-spec-icon-disabled:#555 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#faf9f9 !important; - --yt-spec-filled-button-text:#555 !important; - --yt-spec-call-to-action-inverse:#555 !important; - --yt-spec-brand-icon-active:#555 !important; - --yt-spec-brand-icon-inactive:#555 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#555!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#555 !important; - --yt-spec-wordmark-text:#555 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#555 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #bee3db!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #faf9f9; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: #555; - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #555; - --yt-spec-text-primary: #555; - --ytd-searchbox-border-color: #555; - --ytd-searchbox-legacy-border-color: #555; - --ytd-searchbox-legacy-border-shadow-color: #555; - --ytd-searchbox-legacy-button-color: #555; - --ytd-searchbox-legacy-button-border-color: #555; - --ytd-searchbox-legacy-button-focus-color: #555; - --ytd-searchbox-legacy-button-hover-color: #555; - --ytd-searchbox-legacy-button-hover-border-color: #555; - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: #555; - --ytd-moderation-panel-hover: #555; - --ytd-moderation-panel-comment-text: #555; - --ytd-moderation-panel-comment-metadata-text: #555; - --ytd-moderation-icon-color: #555; - --ytd-moderation-icon-hover-color: #555; - --ytd-comment-text-color: #555; - --ytd-comment-metadata-text-color: #555; - --ytd-watch-card-secondary-text-color: #555; - --ytd-watch-card-album-header-background: #555; - --ytd-backstage-metadata-text-color: #555; - --ytd-backstage-video-link-background-color: #555; - --ytd-backstage-image-alert-color: #555; - --ytd-backstage-cancel-background-color: #555; - --ytd-backstage-cancel-color: #555; - --ytd-backstage-creationbox-background-color: #555; - --ytd-backstage-creationbox-background-color-focus: #555; - --ytd-backstage-creationbox-inactive-color: #555; - --ytd-backstage-creationbox-text-color: #555; - --ytd-backstage-creationbox-input-text-color: #555; - --ytd-backstage-creationbox-disabled-button-color: #555; - --ytd-backstage-creationbox-disabled-button-text-color: #555; - --ytd-backstage-attachment-icon-hover-color: #555; - --ytd-sponsorships-background-color-focus: #555; - --ytd-badge-background: #555; - --ytd-badge-disabled-color: #555; - --ytd-collection-badge-color: #555; - --ytd-owner-badge-color: #555; - --ytd-simple-badge-color: #555; - --ytd-ad-badge-text-color: #555; - --ytd-shopping-product-info: #555; - --ytd-toggle-color: #555; - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: #555; - --ytd-transcript-toolbar-background-color: #555; - --ytd-transcript-toolbar-text: #555; - --ytd-video-publish-date-color: #555; - --ytd-vat-notice-text: #555; - --ytd-offer-background-color: #555; - --ytd-video-game-watch-card-logo-color: #555; - --ytd-watch-split-pane-sidebar-background-color: #555; - --yt-std-body-100: #555; - --yt-std-body-200: #555; - --yt-std-body-300: #555; - --yt-std-surface-200: #555; - --yt-std-surface-300: #555; - --yt-std-surface-400: #555; - --yt-primary-color: #555; - --yt-primary-text-color: #555; - --yt-hovered-text-color: #555; - --yt-secondary-text-color: #555; - --yt-tertiary-text-color: #555; - --yt-disabled-text-color: #555; - --yt-placeholder-text-color: #555; - --yt-border-color: #555; - --yt-commentbox-border-inactive: #555; - --yt-commentbox-border-active: #555; - --yt-alert-background: #555; - --yt-paper-button-ink-color: #555; - --yt-icon-color: #555; - --yt-icon-hover-color: #555; - --yt-icon-active-color: #555; - --yt-icon-disabled-color: #555; - --yt-endpoint-color: #555; - --yt-expand-color: #555; - --yt-metadata-color: #555; - --yt-channel-owner: #555; - --yt-placeholder-text: #555; - --yt-playlist-background-header: #faf9f9; - --yt-playlist-background-item: #faf9f9; - --yt-playlist-title-text: #555; - --yt-playlist-message-text: #555; - --yt-playlist-message-text-hover: #555; - --yt-subscribe-button-text-color: #555; - --yt-brand-color: #555; - --yt-button-text-color: #555; - --yt-button-payment-text-color: #555; - --yt-copyright-text: #555; - --yt-guide-entry-hover-background-color: #555; - --yt-thumbnail-placeholder-color: #555; - --yt-primary-disabled-button-text-color: #555; - --yt-featured-channel-title-text-color: #555; - --yt-formatted-string-deemphasize-color: #555; - --paper-menu-background-color: #faf9f9; - --paper-listbox-background-color: #faf9f9; - --paper-menu-color: #555; - --paper-listbox-color: #555; - --paper-dialog-background-color: #faf9f9; - --paper-toggle-button-unchecked-bar-color: #555; - --yt-simple-menu-header-background: #faf9f9; - --yt-item-section-header-color: #555; - --yt-menu-hover-backgound-color: #faf9f9; - --yt-menu-focus-background-color: #faf9f9; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: #555; - --yt-material-searchbox-active: #555; - --yt-material-searchbox-inactive-shadow: #555; - --yt-material-searchbox-active-shadow: #555; - --yt-material-searchbox-inset: #555; - --yt-material-searchbox-text-color: #555; - --yt-app-background: #faf9f9; - --yt-main-app-background: #faf9f9; - --yt-main-app-background-tmp: #faf9f9; - --yt-guide-background: #faf9f9; - --yt-dialog-background: #bee3db; - --yt-searchbox-background: #faf9f9; - --yt-channel-header-background: #faf9f9; - --yt-sidebar-background: #faf9f9; - --yt-transcript-background: #faf9f9; - --yt-chat-bubble-other-border-color: #555; - --yt-chat-bubble-other-background-color: #faf9f9; - --yt-chat-bubble-self-border-color: #555; - --yt-chat-bubble-self-background-color: #faf9f9; - --yt-blue-suggestive: transparent; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-desert-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #faf9f9!important; - --yt-swatch-primary-darker: #faf9f9!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #bee3db; - - --yt-spec-brand-background-solid:#faf9f9 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#faf9f9 !important; - --yt-spec-general-background-b:#faf9f9 !important; - --yt-spec-general-background-c:#faf9f9 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#555 !important; - --yt-spec-text-primary-inverse:#555 !important; - --yt-spec-text-secondary:#555 !important; - --yt-spec-text-disabled:#555 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#555 !important; - --yt-spec-icon-inactive:#555 !important; - --yt-spec-icon-disabled:#555 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#faf9f9 !important; - --yt-spec-filled-button-text:#555 !important; - --yt-spec-call-to-action-inverse:#555 !important; - --yt-spec-brand-icon-active:#555 !important; - --yt-spec-brand-icon-inactive:#555 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#555!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#555 !important; - --yt-spec-wordmark-text:#555 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#555 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-desert-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #bee3db!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #faf9f9; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: #555; - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-desert-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-desert-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #555; - --yt-spec-text-primary: #555; - --ytd-searchbox-border-color: #555; - --ytd-searchbox-legacy-border-color: #555; - --ytd-searchbox-legacy-border-shadow-color: #555; - --ytd-searchbox-legacy-button-color: #555; - --ytd-searchbox-legacy-button-border-color: #555; - --ytd-searchbox-legacy-button-focus-color: #555; - --ytd-searchbox-legacy-button-hover-color: #555; - --ytd-searchbox-legacy-button-hover-border-color: #555; - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: #555; - --ytd-moderation-panel-hover: #555; - --ytd-moderation-panel-comment-text: #555; - --ytd-moderation-panel-comment-metadata-text: #555; - --ytd-moderation-icon-color: #555; - --ytd-moderation-icon-hover-color: #555; - --ytd-comment-text-color: #555; - --ytd-comment-metadata-text-color: #555; - --ytd-watch-card-secondary-text-color: #555; - --ytd-watch-card-album-header-background: #555; - --ytd-backstage-metadata-text-color: #555; - --ytd-backstage-video-link-background-color: #555; - --ytd-backstage-image-alert-color: #555; - --ytd-backstage-cancel-background-color: #555; - --ytd-backstage-cancel-color: #555; - --ytd-backstage-creationbox-background-color: #555; - --ytd-backstage-creationbox-background-color-focus: #555; - --ytd-backstage-creationbox-inactive-color: #555; - --ytd-backstage-creationbox-text-color: #555; - --ytd-backstage-creationbox-input-text-color: #555; - --ytd-backstage-creationbox-disabled-button-color: #555; - --ytd-backstage-creationbox-disabled-button-text-color: #555; - --ytd-backstage-attachment-icon-hover-color: #555; - --ytd-sponsorships-background-color-focus: #555; - --ytd-badge-background: #555; - --ytd-badge-disabled-color: #555; - --ytd-collection-badge-color: #555; - --ytd-owner-badge-color: #555; - --ytd-simple-badge-color: #555; - --ytd-ad-badge-text-color: #555; - --ytd-shopping-product-info: #555; - --ytd-toggle-color: #555; - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: #555; - --ytd-transcript-toolbar-background-color: #555; - --ytd-transcript-toolbar-text: #555; - --ytd-video-publish-date-color: #555; - --ytd-vat-notice-text: #555; - --ytd-offer-background-color: #555; - --ytd-video-game-watch-card-logo-color: #555; - --ytd-watch-split-pane-sidebar-background-color: #555; - --yt-std-body-100: #555; - --yt-std-body-200: #555; - --yt-std-body-300: #555; - --yt-std-surface-200: #555; - --yt-std-surface-300: #555; - --yt-std-surface-400: #555; - --yt-primary-color: #555; - --yt-primary-text-color: #555; - --yt-hovered-text-color: #555; - --yt-secondary-text-color: #555; - --yt-tertiary-text-color: #555; - --yt-disabled-text-color: #555; - --yt-placeholder-text-color: #555; - --yt-border-color: #555; - --yt-commentbox-border-inactive: #555; - --yt-commentbox-border-active: #555; - --yt-alert-background: #555; - --yt-paper-button-ink-color: #555; - --yt-icon-color: #555; - --yt-icon-hover-color: #555; - --yt-icon-active-color: #555; - --yt-icon-disabled-color: #555; - --yt-endpoint-color: #555; - --yt-expand-color: #555; - --yt-metadata-color: #555; - --yt-channel-owner: #555; - --yt-placeholder-text: #555; - --yt-playlist-background-header: #faf9f9; - --yt-playlist-background-item: #faf9f9; - --yt-playlist-title-text: #555; - --yt-playlist-message-text: #555; - --yt-playlist-message-text-hover: #555; - --yt-subscribe-button-text-color: #555; - --yt-brand-color: #555; - --yt-button-text-color: #555; - --yt-button-payment-text-color: #555; - --yt-copyright-text: #555; - --yt-guide-entry-hover-background-color: #555; - --yt-thumbnail-placeholder-color: #555; - --yt-primary-disabled-button-text-color: #555; - --yt-featured-channel-title-text-color: #555; - --yt-formatted-string-deemphasize-color: #555; - --paper-menu-background-color: #faf9f9; - --paper-listbox-background-color: #faf9f9; - --paper-menu-color: #555; - --paper-listbox-color: #555; - --paper-dialog-background-color: #faf9f9; - --paper-toggle-button-unchecked-bar-color: #555; - --yt-simple-menu-header-background: #faf9f9; - --yt-item-section-header-color: #555; - --yt-menu-hover-backgound-color: #faf9f9; - --yt-menu-focus-background-color: #faf9f9; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: #555; - --yt-material-searchbox-active: #555; - --yt-material-searchbox-inactive-shadow: #555; - --yt-material-searchbox-active-shadow: #555; - --yt-material-searchbox-inset: #555; - --yt-material-searchbox-text-color: #555; - --yt-app-background: #faf9f9; - --yt-main-app-background: #faf9f9; - --yt-main-app-background-tmp: #faf9f9; - --yt-guide-background: #faf9f9; - --yt-dialog-background: #bee3db; - --yt-searchbox-background: #faf9f9; - --yt-channel-header-background: #faf9f9; - --yt-sidebar-background: #faf9f9; - --yt-transcript-background: #faf9f9; - --yt-chat-bubble-other-border-color: #555; - --yt-chat-bubble-other-background-color: #faf9f9; - --yt-chat-bubble-self-border-color: #555; - --yt-chat-bubble-self-background-color: #faf9f9; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-desert-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #faf9f9!important; - --yt-swatch-primary-darker: #faf9f9!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #bee3db; - - --yt-spec-brand-background-solid:#faf9f9 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#faf9f9 !important; - --yt-spec-general-background-b:#faf9f9 !important; - --yt-spec-general-background-c:#faf9f9 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#555 !important; - --yt-spec-text-primary-inverse:#555 !important; - --yt-spec-text-secondary:#555 !important; - --yt-spec-text-disabled:#555 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#555 !important; - --yt-spec-icon-inactive:#555 !important; - --yt-spec-icon-disabled:#555 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#faf9f9 !important; - --yt-spec-filled-button-text:#555 !important; - --yt-spec-call-to-action-inverse:#555 !important; - --yt-spec-brand-icon-active:#555 !important; - --yt-spec-brand-icon-inactive:#555 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#555!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#555 !important; - --yt-spec-wordmark-text:#555 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#555 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-desert-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #bee3db!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #faf9f9; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: #555; - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-desert-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-desert-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #555; - --yt-spec-text-primary: #555; - --ytd-searchbox-border-color: #555; - --ytd-searchbox-legacy-border-color: #555; - --ytd-searchbox-legacy-border-shadow-color: #555; - --ytd-searchbox-legacy-button-color: #555; - --ytd-searchbox-legacy-button-border-color: #555; - --ytd-searchbox-legacy-button-focus-color: #555; - --ytd-searchbox-legacy-button-hover-color: #555; - --ytd-searchbox-legacy-button-hover-border-color: #555; - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: #555; - --ytd-moderation-panel-hover: #555; - --ytd-moderation-panel-comment-text: #555; - --ytd-moderation-panel-comment-metadata-text: #555; - --ytd-moderation-icon-color: #555; - --ytd-moderation-icon-hover-color: #555; - --ytd-comment-text-color: #555; - --ytd-comment-metadata-text-color: #555; - --ytd-watch-card-secondary-text-color: #555; - --ytd-watch-card-album-header-background: #555; - --ytd-backstage-metadata-text-color: #555; - --ytd-backstage-video-link-background-color: #555; - --ytd-backstage-image-alert-color: #555; - --ytd-backstage-cancel-background-color: #555; - --ytd-backstage-cancel-color: #555; - --ytd-backstage-creationbox-background-color: #555; - --ytd-backstage-creationbox-background-color-focus: #555; - --ytd-backstage-creationbox-inactive-color: #555; - --ytd-backstage-creationbox-text-color: #555; - --ytd-backstage-creationbox-input-text-color: #555; - --ytd-backstage-creationbox-disabled-button-color: #555; - --ytd-backstage-creationbox-disabled-button-text-color: #555; - --ytd-backstage-attachment-icon-hover-color: #555; - --ytd-sponsorships-background-color-focus: #555; - --ytd-badge-background: #555; - --ytd-badge-disabled-color: #555; - --ytd-collection-badge-color: #555; - --ytd-owner-badge-color: #555; - --ytd-simple-badge-color: #555; - --ytd-ad-badge-text-color: #555; - --ytd-shopping-product-info: #555; - --ytd-toggle-color: #555; - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: #555; - --ytd-transcript-toolbar-background-color: #555; - --ytd-transcript-toolbar-text: #555; - --ytd-video-publish-date-color: #555; - --ytd-vat-notice-text: #555; - --ytd-offer-background-color: #555; - --ytd-video-game-watch-card-logo-color: #555; - --ytd-watch-split-pane-sidebar-background-color: #555; - --yt-std-body-100: #555; - --yt-std-body-200: #555; - --yt-std-body-300: #555; - --yt-std-surface-200: #555; - --yt-std-surface-300: #555; - --yt-std-surface-400: #555; - --yt-primary-color: #555; - --yt-primary-text-color: #555; - --yt-hovered-text-color: #555; - --yt-secondary-text-color: #555; - --yt-tertiary-text-color: #555; - --yt-disabled-text-color: #555; - --yt-placeholder-text-color: #555; - --yt-border-color: #555; - --yt-commentbox-border-inactive: #555; - --yt-commentbox-border-active: #555; - --yt-alert-background: #555; - --yt-paper-button-ink-color: #555; - --yt-icon-color: #555; - --yt-icon-hover-color: #555; - --yt-icon-active-color: #555; - --yt-icon-disabled-color: #555; - --yt-endpoint-color: #555; - --yt-expand-color: #555; - --yt-metadata-color: #555; - --yt-channel-owner: #555; - --yt-placeholder-text: #555; - --yt-playlist-background-header: #faf9f9; - --yt-playlist-background-item: #faf9f9; - --yt-playlist-title-text: #555; - --yt-playlist-message-text: #555; - --yt-playlist-message-text-hover: #555; - --yt-subscribe-button-text-color: #555; - --yt-brand-color: #555; - --yt-button-text-color: #555; - --yt-button-payment-text-color: #555; - --yt-copyright-text: #555; - --yt-guide-entry-hover-background-color: #555; - --yt-thumbnail-placeholder-color: #555; - --yt-primary-disabled-button-text-color: #555; - --yt-featured-channel-title-text-color: #555; - --yt-formatted-string-deemphasize-color: #555; - --paper-menu-background-color: #faf9f9; - --paper-listbox-background-color: #faf9f9; - --paper-menu-color: #555; - --paper-listbox-color: #555; - --paper-dialog-background-color: #faf9f9; - --paper-toggle-button-unchecked-bar-color: #555; - --yt-simple-menu-header-background: #faf9f9; - --yt-item-section-header-color: #555; - --yt-menu-hover-backgound-color: #faf9f9; - --yt-menu-focus-background-color: #faf9f9; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: #555; - --yt-material-searchbox-active: #555; - --yt-material-searchbox-inactive-shadow: #555; - --yt-material-searchbox-active-shadow: #555; - --yt-material-searchbox-inset: #555; - --yt-material-searchbox-text-color: #555; - --yt-app-background: #faf9f9; - --yt-main-app-background: #faf9f9; - --yt-main-app-background-tmp: #faf9f9; - --yt-guide-background: #faf9f9; - --yt-dialog-background: #bee3db; - --yt-searchbox-background: #faf9f9; - --yt-channel-header-background: #faf9f9; - --yt-sidebar-background: #faf9f9; - --yt-transcript-background: #faf9f9; - --yt-chat-bubble-other-border-color: #555; - --yt-chat-bubble-other-background-color: #faf9f9; - --yt-chat-bubble-self-border-color: #555; - --yt-chat-bubble-self-background-color: #faf9f9; - --yt-blue-suggestive: transparent; - } -} \ No newline at end of file diff --git a/unstable/src/youtube/css/themes/night.css b/unstable/src/youtube/css/themes/night.css deleted file mode 100644 index 1a482632a..000000000 --- a/unstable/src/youtube/css/themes/night.css +++ /dev/null @@ -1,635 +0,0 @@ -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #003459!important; - --yt-swatch-primary-darker: #003459!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #007ea7; - - --yt-spec-brand-background-solid:#003459 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#003459 !important; - --yt-spec-general-background-b:#003459 !important; - --yt-spec-general-background-c:#003459 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#003459 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo -{ - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); -} -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #007ea7!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #003459; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #003459; - --yt-playlist-background-item: #003459; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #003459; - --paper-listbox-background-color: #003459; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #003459; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #003459; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #003459; - --yt-menu-focus-background-color: #003459; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #003459; - --yt-main-app-background: #003459; - --yt-main-app-background-tmp: #003459; - --yt-guide-background: #003459; - --yt-dialog-background: #007ea7; - --yt-searchbox-background: #003459!important; - --yt-channel-header-background: #003459; - --yt-sidebar-background: #003459; - --yt-transcript-background: #003459; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #003459; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #003459; - --yt-blue-suggestive: transparent; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-night-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #003459!important; - --yt-swatch-primary-darker: #003459!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #007ea7; - - --yt-spec-brand-background-solid:#003459 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#003459 !important; - --yt-spec-general-background-b:#003459 !important; - --yt-spec-general-background-c:#003459 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#003459 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - html[it-night-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-night-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #007ea7!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #003459; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-night-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-night-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #003459; - --yt-playlist-background-item: #003459; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #003459; - --paper-listbox-background-color: #003459; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #003459; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #003459; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #003459; - --yt-menu-focus-background-color: #003459; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #003459; - --yt-main-app-background: #003459; - --yt-main-app-background-tmp: #003459; - --yt-guide-background: #003459; - --yt-dialog-background: #007ea7; - --yt-searchbox-background: #003459!important; - --yt-channel-header-background: #003459; - --yt-sidebar-background: #003459; - --yt-transcript-background: #003459; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #003459; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #003459; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-night-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #003459!important; - --yt-swatch-primary-darker: #003459!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #007ea7; - - --yt-spec-brand-background-solid:#003459 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#003459 !important; - --yt-spec-general-background-b:#003459 !important; - --yt-spec-general-background-c:#003459 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#003459 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - html[it-night-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-night-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #007ea7!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #003459; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-night-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-night-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #003459; - --yt-playlist-background-item: #003459; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #003459; - --paper-listbox-background-color: #003459; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #003459; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #003459; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #003459; - --yt-menu-focus-background-color: #003459; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #003459; - --yt-main-app-background: #003459; - --yt-main-app-background-tmp: #003459; - --yt-guide-background: #003459; - --yt-dialog-background: #007ea7; - --yt-searchbox-background: #003459!important; - --yt-channel-header-background: #003459; - --yt-sidebar-background: #003459; - --yt-transcript-background: #003459; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #003459; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #003459; - --yt-blue-suggestive: transparent; - } -} \ No newline at end of file diff --git a/unstable/src/youtube/css/themes/plain.css b/unstable/src/youtube/css/themes/plain.css deleted file mode 100644 index 2513fbc8b..000000000 --- a/unstable/src/youtube/css/themes/plain.css +++ /dev/null @@ -1,623 +0,0 @@ -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #c7efcf!important; - --yt-swatch-primary-darker: #c7efcf!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #d6d1b1; - - --yt-spec-brand-background-solid:#c7efcf !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#c7efcf !important; - --yt-spec-general-background-b:#c7efcf !important; - --yt-spec-general-background-c:#c7efcf !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#666 !important; - --yt-spec-text-primary-inverse:#666 !important; - --yt-spec-text-secondary:#666 !important; - --yt-spec-text-disabled:#666 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#666 !important; - --yt-spec-icon-inactive:#666 !important; - --yt-spec-icon-disabled:#666 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#c7efcf !important; - --yt-spec-filled-button-text:#666 !important; - --yt-spec-call-to-action-inverse:#666 !important; - --yt-spec-brand-icon-active:#666 !important; - --yt-spec-brand-icon-inactive:#666 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#666!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#666 !important; - --yt-spec-wordmark-text:#666 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#666 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #d6d1b1!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #c7efcf; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #666; - --yt-spec-text-primary: #666; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #c7efcf; - --yt-playlist-background-item: #c7efcf; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #c7efcf; - --paper-listbox-background-color: #c7efcf; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #c7efcf; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #c7efcf; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #c7efcf; - --yt-menu-focus-background-color: #c7efcf; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #c7efcf; - --yt-main-app-background: #c7efcf; - --yt-main-app-background-tmp: #c7efcf; - --yt-guide-background: #c7efcf; - --yt-dialog-background: #d6d1b1; - --yt-searchbox-background: #c7efcf; - --yt-channel-header-background: #c7efcf; - --yt-sidebar-background: #c7efcf; - --yt-transcript-background: #c7efcf; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #c7efcf; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #c7efcf; - --yt-blue-suggestive: transparent; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-plain-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #c7efcf!important; - --yt-swatch-primary-darker: #c7efcf!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #d6d1b1; - - --yt-spec-brand-background-solid:#c7efcf !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#c7efcf !important; - --yt-spec-general-background-b:#c7efcf !important; - --yt-spec-general-background-c:#c7efcf !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#666 !important; - --yt-spec-text-primary-inverse:#666 !important; - --yt-spec-text-secondary:#666 !important; - --yt-spec-text-disabled:#666 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#666 !important; - --yt-spec-icon-inactive:#666 !important; - --yt-spec-icon-disabled:#666 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#c7efcf !important; - --yt-spec-filled-button-text:#666 !important; - --yt-spec-call-to-action-inverse:#666 !important; - --yt-spec-brand-icon-active:#666 !important; - --yt-spec-brand-icon-inactive:#666 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#666!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#666 !important; - --yt-spec-wordmark-text:#666 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#666 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-plain-theme=true][it-schedule=system_peference_dark] ytd-masthead - { - background: #d6d1b1!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #c7efcf; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-plain-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-plain-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #666; - --yt-spec-text-primary: #666; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #c7efcf; - --yt-playlist-background-item: #c7efcf; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #c7efcf; - --paper-listbox-background-color: #c7efcf; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #c7efcf; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #c7efcf; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #c7efcf; - --yt-menu-focus-background-color: #c7efcf; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #c7efcf; - --yt-main-app-background: #c7efcf; - --yt-main-app-background-tmp: #c7efcf; - --yt-guide-background: #c7efcf; - --yt-dialog-background: #d6d1b1; - --yt-searchbox-background: #c7efcf; - --yt-channel-header-background: #c7efcf; - --yt-sidebar-background: #c7efcf; - --yt-transcript-background: #c7efcf; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #c7efcf; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #c7efcf; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-plain-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #c7efcf!important; - --yt-swatch-primary-darker: #c7efcf!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #d6d1b1; - - --yt-spec-brand-background-solid:#c7efcf !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#c7efcf !important; - --yt-spec-general-background-b:#c7efcf !important; - --yt-spec-general-background-c:#c7efcf !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#666 !important; - --yt-spec-text-primary-inverse:#666 !important; - --yt-spec-text-secondary:#666 !important; - --yt-spec-text-disabled:#666 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#666 !important; - --yt-spec-icon-inactive:#666 !important; - --yt-spec-icon-disabled:#666 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#c7efcf !important; - --yt-spec-filled-button-text:#666 !important; - --yt-spec-call-to-action-inverse:#666 !important; - --yt-spec-brand-icon-active:#666 !important; - --yt-spec-brand-icon-inactive:#666 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#666!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#666 !important; - --yt-spec-wordmark-text:#666 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#666 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-plain-theme=true][it-schedule=system_peference_light] ytd-masthead - { - background: #d6d1b1!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #c7efcf; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-plain-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-plain-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #666; - --yt-spec-text-primary: #666; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #c7efcf; - --yt-playlist-background-item: #c7efcf; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #c7efcf; - --paper-listbox-background-color: #c7efcf; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #c7efcf; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #c7efcf; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #c7efcf; - --yt-menu-focus-background-color: #c7efcf; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #c7efcf; - --yt-main-app-background: #c7efcf; - --yt-main-app-background-tmp: #c7efcf; - --yt-guide-background: #c7efcf; - --yt-dialog-background: #d6d1b1; - --yt-searchbox-background: #c7efcf; - --yt-channel-header-background: #c7efcf; - --yt-sidebar-background: #c7efcf; - --yt-transcript-background: #c7efcf; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #c7efcf; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #c7efcf; - --yt-blue-suggestive: transparent; - } -} \ No newline at end of file diff --git a/unstable/src/youtube/css/themes/sunset.css b/unstable/src/youtube/css/themes/sunset.css deleted file mode 100644 index ae1e9236a..000000000 --- a/unstable/src/youtube/css/themes/sunset.css +++ /dev/null @@ -1,617 +0,0 @@ -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-primary: #2f3364!important; - --yt-swatch-primary-darker: #2f3364!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #f56264; - - --yt-spec-brand-background-solid:#2f3364 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#2f3364 !important; - --yt-spec-general-background-b:#2f3364 !important; - --yt-spec-general-background-c:#2f3364 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#2f3364 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { - background: #f56264!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ - --yt-live-chat-action-panel-background-color: #2f3364; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #2f3364; - --yt-playlist-background-item: #2f3364; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #2f3364; - --paper-listbox-background-color: #2f3364; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #2f3364; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #2f3364; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #2f3364; - --yt-menu-focus-background-color: #2f3364; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #2f3364; - --yt-main-app-background: #2f3364; - --yt-main-app-background-tmp: #2f3364; - --yt-guide-background: #2f3364; - --yt-dialog-background: #D62828; - --yt-searchbox-background: #fa7965!important; - --yt-channel-header-background: #2f3364; - --yt-sidebar-background: #2f3364; - --yt-transcript-background: #2f3364; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #2f3364; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #2f3364; - --yt-blue-suggestive: transparent; -} - - - - - -@media (prefers-color-scheme: dark) { - [it-sunset-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-primary: #2f3364!important; - --yt-swatch-primary-darker: #2f3364!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #f56264; - - --yt-spec-brand-background-solid:#2f3364 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#2f3364 !important; - --yt-spec-general-background-b:#2f3364 !important; - --yt-spec-general-background-c:#2f3364 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#2f3364 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-sunset-theme=true][it-schedule=system_peference_dark] ytd-masthead { - background: #f56264!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #2f3364; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-sunset-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-sunset-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #2f3364; - --yt-playlist-background-item: #2f3364; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #2f3364; - --paper-listbox-background-color: #2f3364; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #2f3364; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #2f3364; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #2f3364; - --yt-menu-focus-background-color: #2f3364; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #2f3364; - --yt-main-app-background: #2f3364; - --yt-main-app-background-tmp: #2f3364; - --yt-guide-background: #2f3364; - --yt-dialog-background: #D62828; - --yt-searchbox-background: #fa7965!important; - --yt-channel-header-background: #2f3364; - --yt-sidebar-background: #2f3364; - --yt-transcript-background: #2f3364; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #2f3364; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #2f3364; - --yt-blue-suggestive: transparent; - } -} - - - - - -@media (prefers-color-scheme: light) { - [it-sunset-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-primary: #2f3364!important; - --yt-swatch-primary-darker: #2f3364!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; - --yt-swatch-header-primary: #f56264; - - --yt-spec-brand-background-solid:#2f3364 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#2f3364 !important; - --yt-spec-general-background-b:#2f3364 !important; - --yt-spec-general-background-c:#2f3364 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#2f3364 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; - } - [it-sunset-theme=true][it-schedule=system_peference_light] ytd-masthead { - background: #f56264!important; - - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { - --yt-live-chat-action-panel-background-color: #2f3364; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-sunset-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-sunset-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #2f3364; - --yt-playlist-background-item: #2f3364; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #2f3364; - --paper-listbox-background-color: #2f3364; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #2f3364; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #2f3364; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #2f3364; - --yt-menu-focus-background-color: #2f3364; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #2f3364; - --yt-main-app-background: #2f3364; - --yt-main-app-background-tmp: #2f3364; - --yt-guide-background: #2f3364; - --yt-dialog-background: #D62828; - --yt-searchbox-background: #fa7965!important; - --yt-channel-header-background: #2f3364; - --yt-sidebar-background: #2f3364; - --yt-transcript-background: #2f3364; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #2f3364; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #2f3364; - --yt-blue-suggestive: transparent; - } -} \ No newline at end of file diff --git a/unstable/src/youtube/js/core.js b/unstable/src/youtube/js/core.js deleted file mode 100644 index 3b76ed804..000000000 --- a/unstable/src/youtube/js/core.js +++ /dev/null @@ -1,185 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> CORE -------------------------------------------------------------------------------- -1.0 Page update -2.0 Player update -3.0 Init ------------------------------------------------------------------------------*/ - -var ImprovedTube = { - allow_autoplay: false, - videoUrl: '"null"', - playingTime: 0 -}; - - -/*----------------------------------------------------------------------------- -1.0 Page update ------------------------------------------------------------------------------*/ - -ImprovedTube.pageUpdate = function() { - var not_connected_players = document.querySelectorAll('.html5-video-player:not([it-player-connected])'); - - if (not_connected_players.length > 0) { - for (var i = 0, l = not_connected_players.length; i < l; i++) { - var player = not_connected_players[i]; - - if ( - player.querySelector('video').src && - player.querySelector('video').src !== '' - ) { - player.setAttribute('it-player-connected', ''); - - ImprovedTube.playerUpdate(player); - - player.querySelector('video').addEventListener('canplay', function() { - ImprovedTube.videoUrl = location.href; - }); - player.querySelector('video').addEventListener('timeupdate', function() { - ImprovedTube.playingTime++; - - var time = Math.floor(ImprovedTube.playingTime * 250 / 1000) / 60; - - if (time >= 1) { - ImprovedTube.playingTime = 0; - - document.dispatchEvent(new CustomEvent('ImprovedTubeAnalyzer')); - } - }); - } - } - } - - ImprovedTube.pageType(); - ImprovedTube.youtube_home_page(); - ImprovedTube.hd_thumbnails(); - ImprovedTube.channel_default_tab(); - ImprovedTube.comments(); - ImprovedTube.livechat(); - ImprovedTube.livechat_type(); - ImprovedTube.related_videos(); - ImprovedTube.improvedtube_youtube_icon(); - ImprovedTube.blacklist(); - ImprovedTube.player_hd_thumbnail(); - ImprovedTube.how_long_ago_the_video_was_uploaded(); - ImprovedTube.channel_videos_count(); - ImprovedTube.collapse_of_subscription_sections(); - ImprovedTube.mark_watched_videos(); -}; - - -/*----------------------------------------------------------------------------- -2.0 Player update ------------------------------------------------------------------------------*/ - -ImprovedTube.playerUpdate = function(node, hard) { - var player; - - if (node && node.type !== 'canplay') { - player = node; - } else if (this.hasOwnProperty('target')) { - player = this.target.parentNode.parentNode; - } else if (this.hasOwnProperty('parentNode')) { - player = this.parentNode.parentNode; - } else { - player = document.querySelector('.html5-video-player'); - } - - if (this.videoUrl !== location.href) { - this.videoUrl = location.href; - this.playingTime = 0; - - document.dispatchEvent(new CustomEvent('ImprovedTubePlayVideo')); - - this.fitToWindow(); - this.always_show_progress_bar(); - this.playlist_reverse(); - this.player_hd_thumbnail(); - this.player_quality(player); - this.player_volume(player); - this.player_playback_speed(player); - this.up_next_autoplay(); - this.player_autofullscreen(); - this.player_repeat_button(); - this.player_screenshot_button(); - this.player_rotate_button(); - this.player_popup_button(); - this.playlist_up_next_autoplay(player); - this.mini_player(); - - this.playlist_repeat(); - this.playlist_shuffle(); - - this.dim(); - - var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); - - if (video_id) { - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'set', - id: video_id, - title: document.title - } - })); - } - } else if (hard) { - this.videoUrl = location.href; - - this.fitToWindow(); - this.playlist_reverse(); - this.player_hd_thumbnail(); - this.player_quality(player); - this.player_volume(player); - this.player_playback_speed(player); - this.up_next_autoplay(); - this.player_autofullscreen(); - this.player_repeat_button(); - this.player_screenshot_button(); - this.player_rotate_button(); - this.player_popup_button(); - this.mini_player(); - - this.playlist_repeat(); - this.playlist_shuffle(); - - this.dim(); - } -}; - - -/*----------------------------------------------------------------------------- -3.0 Init ------------------------------------------------------------------------------*/ - -ImprovedTube.init = function() { - this.player_h264(); - this.player_60fps(); - this.confirmation_before_closing(); - this.shortcuts(); - this.themeEditor(); - this.theme(); - this.font(); - this.bluelight(); - this.dim(); - this.pageType(); - this.improvedtube_youtube_icon(); - this.add_scroll_to_top(); - this.player_autopause_when_switching_tabs(); - this.forced_theater_mode(); - this.comments(); - this.livechat(); - this.related_videos(); - this.mutations(); - this.events(); - - if (window.self === window.top) { - window.addEventListener('load', function(){ - ImprovedTube.player_volume(); - }); - } -}; - -function withoutInjection(object) { - youtubeHomePage__documentStart(object.youtube_home_page); -} diff --git a/unstable/src/youtube/js/events.js b/unstable/src/youtube/js/events.js deleted file mode 100644 index cc0e1c365..000000000 --- a/unstable/src/youtube/js/events.js +++ /dev/null @@ -1,164 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> EVENTS -------------------------------------------------------------------------------- -1.0 DOMContentLoaded -2.0 Load -3.0 YouTube page data updated -4.0 YouTube visibility refresh -5.0 SPF done -6.0 Keydown -7.0 Mousedown ------------------------------------------------------------------------------*/ - -chrome.storage.local.get(function(items) { - window.addEventListener('load', function() { - if (!document.querySelector('.it-rate-notify') && Object.keys(items).length > 10 && items.rate_notify !== 5) { - var popup = document.createElement('div'); - - popup.className = 'it-rate-notify'; - - popup.innerHTML = '' + - '
Do you enjoy ImprovedTube?
' + - ''; - - document.body.appendChild(popup); - - setTimeout(function() { - popup.classList.add('it-rate-notify--show'); - }, 1000); - - chrome.storage.local.set({ - rate_notify: 5 - }); - } - }); -}); - -ImprovedTube.events = function() { - - /*------------------------------------------------------------------------- - 1.0 DOMContentLoaded - -------------------------------------------------------------------------*/ - - window.addEventListener('DOMContentLoaded', ImprovedTube.pageUpdate); - - - /*------------------------------------------------------------------------- - 2.0 Load - -------------------------------------------------------------------------*/ - - document.documentElement.addEventListener('load', function() { - if ( - window.yt && - window.yt.player && - window.yt.player.Application && - window.yt.player.Application.create - ) { - window.yt.player.Application.create = ImprovedTube.ytPlayerApplicationCreateMod(window.yt.player.Application.create); - } - - var search = document.querySelector('#search') || document.querySelector('#masthead-search-term'); - - if (search) { - search.addEventListener('focus', function() { - document.documentElement.setAttribute('it-search-focus', 'true'); - }); - - search.addEventListener('blur', function() { - document.documentElement.setAttribute('it-search-focus', 'false'); - }); - } - }, true); - - window.addEventListener('resize', function() { - ImprovedTube.fitToWindow(); - ImprovedTube.improvedtube_youtube_icon_resize(); - - setTimeout(function() { - if (document.querySelector('.html5-video-player video') && document.querySelector('.it-rotate-styles')) { - var video = document.querySelector('.html5-video-player video'), - transform = '', - rotate = (document.querySelector('.it-rotate-styles') && document.querySelector('.it-rotate-styles').textContent.match(/rotate\([0-9.]+deg\)/g) || [''])[0]; - - rotate = Number((rotate.match(/[0-9.]+/g) || [])[0]) || 0; - - transform += 'rotate(' + rotate + 'deg)'; - - if (rotate == 90 || rotate == 270) { - transform += ' scale(' + video.offsetHeight / video.offsetWidth + ')'; - } - - document.querySelector('.it-rotate-styles').textContent = '.html5-video-player:not(it-mini-player) video {transform:' + transform + '}'; - } - }, 500); - }); - - window.addEventListener('scroll', function() { - ImprovedTube.improvedtube_youtube_icon_resize(); - }); - - - /*------------------------------------------------------------------------- - 3.0 YouTube page data updated - -------------------------------------------------------------------------*/ - - window.addEventListener('yt-page-data-updated', ImprovedTube.pageUpdate); - - - /*------------------------------------------------------------------------- - 4.0 YouTube visibility refresh - -------------------------------------------------------------------------*/ - - window.addEventListener('yt-visibility-refresh', ImprovedTube.pageUpdate); - - - /*------------------------------------------------------------------------- - 5.0 SPF done - -------------------------------------------------------------------------*/ - - window.addEventListener('spfrequest', function() { - ImprovedTube.pageUpdate(); - }); - - window.addEventListener('spfdone', function() { - ImprovedTube.pageUpdate(); - }); - - - /*------------------------------------------------------------------------- - 6.0 Keydown - -------------------------------------------------------------------------*/ - - window.addEventListener('keydown', function() { - if ( - document.querySelector('.html5-video-player') && - document.querySelector('.html5-video-player').classList.contains('ad-showing') === false - ) { - ImprovedTube.allow_autoplay = true; - } - }, true); - - - /*------------------------------------------------------------------------- - 7.0 Mousedown - -------------------------------------------------------------------------*/ - - window.addEventListener('mousedown', function(event) { - for (var i = 0, l = event.path.length; i < l; i++) { - if ( - document.querySelector('.html5-video-player') && - document.querySelector('.html5-video-player').classList.contains('ad-showing') === false && - event.path[i].classList && - ( - event.path[i].classList.contains('html5-main-video') || - event.path[i].classList.contains('ytp-play-button') - ) - ) { - ImprovedTube.allow_autoplay = true; - } - } - }, true); -}; diff --git a/unstable/src/youtube/js/features/analyzer.js b/unstable/src/youtube/js/features/analyzer.js deleted file mode 100644 index cf886c2cd..000000000 --- a/unstable/src/youtube/js/features/analyzer.js +++ /dev/null @@ -1,12 +0,0 @@ -chrome.storage.local.get(function(items) { - document.addEventListener('ImprovedTubeAnalyzer', function() { - if (items.analyzer_activation === true) { - if (document.querySelector('ytd-channel-name a') && chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-analyzer', - value: document.querySelector('ytd-channel-name a').innerText - }); - } - } - }); -}); diff --git a/unstable/src/youtube/js/features/appearance.js b/unstable/src/youtube/js/features/appearance.js deleted file mode 100644 index fa25332b8..000000000 --- a/unstable/src/youtube/js/features/appearance.js +++ /dev/null @@ -1,452 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> APPEARANCE -------------------------------------------------------------------------------- -1.0 Player - 1.1 Forced theater mode - 1.2 HD thumbnail -2.0 Details -3.0 Comments -4.0 Sidebar ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Player ------------------------------------------------------------------------------*/ - -ImprovedTube.fitToWindow = function() { - if (ImprovedTube.storage.player_size === 'fit_to_window' && !document.documentElement.hasAttribute('embed') && window.self !== window.top && document.querySelector('#movie_player video')) { - var video = document.querySelector('#movie_player video'), - header = document.documentElement.getAttribute('it-header-position'), - header_height = header == 'hidden' || header == 'hidden_on_video_page' || header == 'hover' || header == 'hover_on_video_page' ? 0 : 50, - videoW = video.videoWidth / 100, - videoH = video.videoHeight / 100, - windowW = window.innerWidth / 100, - windowH = window.innerHeight / 100, - videoWdif = ((video.videoWidth - window.innerWidth) / video.videoWidth * -100) + 100, - videoHdif = ((video.videoHeight - window.innerHeight + header_height) / video.videoHeight * -100) + 100, - style = document.querySelector('#it-fit-to-window') || document.createElement('style'); - - style.id = 'it-fit-to-window'; - - if (videoW && videoH && videoHdif && videoH * videoWdif > window.innerHeight - header_height) { - style.innerText = 'html[it-player-size="fit_to_window"] div#page.watch-wide .html5-video-player:not(.ytp-fullscreen) video{max-width:' + videoW * videoHdif + 'px !important;max-height' + videoH * videoHdif + 'px !important}'; - } else if (videoW && videoH && videoWdif) { - style.innerText = 'html[it-player-size="fit_to_window"] div#page.watch-wide .html5-video-player:not(.ytp-fullscreen) video{max-width:' + videoW * videoWdif + 'px !important;max-height' + videoH * videoWdif + 'px !important}'; - } - - if (!document.querySelector('#it-fit-to-window')) { - document.documentElement.appendChild(style); - } - } -}; - -/*----------------------------------------------------------------------------- -1.1 Forced theater mode ------------------------------------------------------------------------------*/ - -ImprovedTube.forced_theater_mode = function() { - if (window.self === window.top && (this.storage.forced_theater_mode === true || ImprovedTube.storage.player_size === 'fit_to_window')) { - var is_applied = false; - - if (/wide\=1/.test(document.cookie)) { - is_applied = true; - } - - this.setCookie('wide', '1'); - - setTimeout(function() { - if (is_applied === false) { - location.reload(); - } - }); - } -}; - -/*----------------------------------------------------------------------------- -1.2 HD thumbnail ------------------------------------------------------------------------------*/ - -ImprovedTube.player_hd_thumbnail_wait = false; - -ImprovedTube.player_hd_thumbnail = function() { - if (this.storage.player_hd_thumbnail === true) { - if (this.player_hd_thumbnail_wait !== false) { - clearInterval(ImprovedTube.player_hd_thumbnail_wait); - - ImprovedTube.player_hd_thumbnail_wait = false; - } - - this.player_hd_thumbnail_wait = setInterval(function() { - var thumbnail = document.querySelector('.ytp-cued-thumbnail-overlay-image'); - - if (thumbnail && thumbnail.style.backgroundImage) { - var style = document.getElementById('it-hd-thumbnail') || document.createElement('style'); - - style.textContent = '.ytp-cued-thumbnail-overlay-image{background-image:' + thumbnail.style.backgroundImage.replace('/hqdefault.jpg', '/maxresdefault.jpg') + ' !important}'; - - if (!document.getElementById('it-hd-thumbnail')) { - style.id = 'it-hd-thumbnail'; - thumbnail.parentNode.insertBefore(style, thumbnail); - } - } - }, 250); - } -}; - -/*----------------------------------------------------------------------------- -1.3 Always show progress bar ------------------------------------------------------------------------------*/ - -// TODO: FIX NIGHTLY UGLY ALGO - -ImprovedTube.always_show_progress_bar = function() { - if (ImprovedTube.always_show_progress_bar_interval) { - clearInterval(ImprovedTube.always_show_progress_bar_interval); - } - - if (this.storage.always_show_progress_bar === true) { - ImprovedTube.always_show_progress_bar_interval = setInterval(function() { - var player = document.querySelector('.html5-video-player'); - - if (player && player.classList.contains('ytp-autohide')) { - var played = player.getCurrentTime() * 100 / player.getDuration(), - loaded = player.getVideoBytesLoaded() * 100, - play_bars = player.querySelectorAll('.ytp-play-progress'), - load_bars = player.querySelectorAll('.ytp-load-progress'), - width = 0, - progress_play = 0, - progress_load = 0; - - for (var i = 0, l = play_bars.length; i < l; i++) { - width += play_bars[i].offsetWidth; - } - - var width_percent = width / 100; - - for (var i = 0, l = play_bars.length; i < l; i++) { - var a = play_bars[i].offsetWidth / width_percent, - b = 0, - c = 0; - - if (played - progress_play >= a) { - b = 100; - } else if (played > progress_play && played < a + progress_play) { - b = 100 * ((played - progress_play) * width_percent) / play_bars[i].offsetWidth; - } - - play_bars[i].style.transform = 'scaleX(' + b / 100 + ')'; - - if (loaded - progress_load >= a) { - c = 100; - } else if (loaded > progress_load && loaded < a + progress_load) { - c = 100 * ((loaded - progress_load) * width_percent) / play_bars[i].offsetWidth; - } - - load_bars[i].style.transform = 'scaleX(' + c / 100 + ')'; - - progress_play += a; - progress_load += a; - } - } - }, 100); - } -}; - - -/*----------------------------------------------------------------------------- -2.0 Details ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -2.1 How long ago the video was uploaded ------------------------------------------------------------------------------*/ - -ImprovedTube.how_long_ago_the_video_was_uploaded = function() { - if (ImprovedTube.storage.how_long_ago_the_video_was_uploaded === true) { - function timeSince(date) { - var seconds = Math.floor((new Date() - new Date(date)) / 1000), - interval = Math.floor(seconds / 31536000); - - if (interval > 1) { - return interval + ' years ago'; - } - interval = Math.floor(seconds / 2592000); - if (interval > 1) { - return interval + ' months ago'; - } - interval = Math.floor(seconds / 86400); - if (interval > 1) { - return interval + ' days ago'; - } - interval = Math.floor(seconds / 3600); - if (interval > 1) { - return interval + ' hours ago'; - } - interval = Math.floor(seconds / 60); - if (interval > 1) { - return interval + ' minutes ago'; - } - - return Math.floor(seconds) + ' seconds ago'; - } - - var waiting_channel_link = setInterval(function() { - var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; - - if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info a')) { - clearInterval(waiting_channel_link); - - var xhr = new XMLHttpRequest(); - - xhr.addEventListener('load', function() { - var response = JSON.parse(this.responseText), - element = document.querySelector('.itx-channel-video-uploaded') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); - - if (ImprovedTube.isset(response.items) && ImprovedTube.isset(response.items[0])) { - element.innerHTML = (youtube_version ? ' · ' + timeSince(response.items[0].snippet.publishedAt) + ' ' : timeSince(response.items[0].snippet.publishedAt) + ''); - - var date = new Date(response.items[0].snippet.publishedAt); - - element.title = ((date.getMonth() > 8) ? (date.getMonth() + 1) : ('0' + (date.getMonth() + 1))) + '/' + ((date.getDate() > 9) ? date.getDate() : ('0' + date.getDate())) + '/' + date.getFullYear(); - } - - if (!youtube_version) { - element.href = document.querySelector('#watch7-user-header a').href.indexOf('/videos') === -1 ? document.querySelector('#watch7-user-header a').href + '/videos' : document.querySelector('#watch7-user-header a').href; - } - - if (!document.querySelector('.itx-channel-video-uploaded') && document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info')) { - element.style.marginLeft = '8px'; - element.className = (youtube_version ? 'style-scope ytd-video-owner-renderer itx-channel-video-uploaded' : 'yt-uix-sessionlink spf-link itx-channel-video-uploaded'); - - document.querySelector(youtube_version ? '#info #info-text #date' : '.yt-user-info').appendChild(element); - } - }); - - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?id=' + ImprovedTube.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v') + '&key=AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA&part=snippet', true); - xhr.send(); - } - }, 500); - } -}; - - -/*----------------------------------------------------------------------------- -2.2 Show channel videos count ------------------------------------------------------------------------------*/ - -ImprovedTube.channel_videos_count = function() { - if (ImprovedTube.storage.channel_videos_count === true) { - var waiting_channel_link = setInterval(function() { - var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; - - if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a')) { - clearInterval(waiting_channel_link); - - var xhr = new XMLHttpRequest(); - - xhr.addEventListener('load', function() { - var response = JSON.parse(this.responseText), - element = document.querySelector('.itx-channel-videos-count') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); - - if (ImprovedTube.isset(response.items) && ImprovedTube.isset(response.items[0])) { - element.innerHTML = (youtube_version ? '' + response.items[0].statistics.videoCount + ' videos' : response.items[0].statistics.videoCount + ' videos'); - } - - if (!youtube_version) { - element.href = document.querySelector('#watch7-user-header a').href.indexOf('/videos') === -1 ? document.querySelector('#watch7-user-header a').href + '/videos' : document.querySelector('#watch7-user-header a').href; - } - - if (!document.querySelector('.itx-channel-videos-count') && document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info')) { - element.style.marginLeft = '8px'; - element.className = (youtube_version ? 'style-scope ytd-video-owner-renderer itx-channel-videos-count' : 'yt-uix-sessionlink spf-link itx-channel-videos-count'); - - document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info').appendChild(element); - } - }); - - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/channels?id=' + (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a').getAttribute('it-origin') || document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a').href).replace('https://www.youtube.com/channel/', '') + '&key=AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA&part=statistics', true); - xhr.send(); - } - }, 500); - } -}; - - -/*----------------------------------------------------------------------------- -3.0 Comments ------------------------------------------------------------------------------*/ - -ImprovedTube.comments_wait = false; - -ImprovedTube.comments = function() { - if (this.storage.comments === 'collapsed') { - if (this.comments_wait === false) { - this.comments_wait = setInterval(function() { - if ( - document.getElementById('comment-section-renderer-items') || - document.querySelector('#comments #sections #contents') - ) { - clearInterval(this.comments_wait); - - this.comments_wait = false; - - if (!document.getElementById('improvedtube-collapsed-comments')) { - var button = document.createElement('button'), - parent = document.getElementById('comment-section-renderer') || document.querySelector('#comments #sections'), - reference = document.getElementById('comment-section-renderer-items') || document.querySelector('#comments #sections #contents'); - - button.id = 'improvedtube-collapsed-comments'; - button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; - button.innerHTML = 'Show moreShow less'; - - button.onclick = function() { - document.documentElement.classList.toggle('comments-collapsed'); - }; - - document.documentElement.classList.toggle('comments-collapsed'); - parent.insertBefore(button, reference); - } - } - }, 250); - } - } else { - clearInterval(this.comments_wait); - - this.comments_wait = false; - - setTimeout(function() { - if (document.getElementById('improvedtube-collapsed-comments')) { - document.getElementById('improvedtube-collapsed-comments').remove(); - } - }, 260); - } -}; - - -/*----------------------------------------------------------------------------- -4.0 Sidebar ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -4.1 Live chat ------------------------------------------------------------------------------*/ - -ImprovedTube.livechat_wait = false; -ImprovedTube.livechat_url = false; - -ImprovedTube.livechat = function() { - if ( - document.documentElement.getAttribute('it-page-type') === 'video' && - this.storage.livechat === 'collapsed' && - this.livechat_wait === false - ) { - this.livechat_wait = setInterval(function() { - var button = document.querySelector('#chat:not([collapsed]) #show-hide-button paper-button'), - expander = document.querySelector('#watch-sidebar-live-chat .yt-uix-expander'); - - if (document.documentElement.getAttribute('it-page-type') !== 'video' || button || expander) { - clearInterval(ImprovedTube.livechat_wait); - - ImprovedTube.livechat_wait = false; - } - - if (button) { - function click() { - ImprovedTube.livechat_url = location.href; - } - - button.addEventListener('mousedown', click); - button.addEventListener('touchdown', click); - - setTimeout(function() { - if (ImprovedTube.livechat_url !== location.href) { - button.click(); - } - }, 500); - } else if (expander) { - expander.classList.add('yt-uix-expander-collapsed'); - } - }, 100); - } -}; - -/*----------------------------------------------------------------------------- -# Live chat type ------------------------------------------------------------------------------*/ - -ImprovedTube.livechat_type_wait = false; - -ImprovedTube.livechat_type = function() { - return false; - - if ( - document.documentElement.getAttribute('it-page-type') === 'video' && - ImprovedTube.storage.livechat_type === 'live' && - ImprovedTube.livechat_type_wait === false - ) { - this.livechat_type_wait = setInterval(function() { - if (document.querySelectorAll('#chat-messages #dropdown a')[1]) { - clearInterval(ImprovedTube.livechat_type_wait); - - ImprovedTube.livechat_type_wait = false; - - document.querySelectorAll('#chat-messages #dropdown a')[1].click(); - } - }, 250); - } else if (this.livechat_type_wait !== false) { - clearInterval(this.livechat_type_wait); - - ImprovedTube.livechat_type_wait = false; - } -}; - - -/*----------------------------------------------------------------------------- -4.2 Related videos ------------------------------------------------------------------------------*/ - -ImprovedTube.related_videos_wait = false; - -ImprovedTube.related_videos = function() { - if (this.storage.related_videos === 'collapsed') { - if (!this.related_videos_wait) { - this.related_videos_wait = setInterval(function() { - if ( - document.querySelector('#related.ytd-watch-flexy') || - document.querySelector('#watch7-sidebar-contents') - ) { - clearInterval(this.related_videos_wait); - - this.related_videos_wait = false; - - if (!document.getElementById('improvedtube-collapsed-related-videos')) { - var button = document.createElement('button'), - parent = document.querySelector('#related.ytd-watch-flexy') || document.querySelector('#watch7-sidebar-contents'), - reference = document.querySelector('#related > *') || document.querySelector('#watch7-sidebar-contents > *'); - - button.id = 'improvedtube-collapsed-related-videos'; - button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; - button.innerHTML = 'Show moreShow less'; - - button.onclick = function() { - document.documentElement.classList.toggle('related-videos-collapsed'); - }; - - document.documentElement.classList.toggle('related-videos-collapsed'); - parent.insertBefore(button, reference); - } - } - }, 250); - } - } else { - clearInterval(this.related_videos_wait); - - this.related_videos_wait = false; - - setTimeout(function() { - if (document.getElementById('improvedtube-collapsed-related-videos')) { - document.getElementById('improvedtube-collapsed-related-videos').remove(); - } - }, 260); - } -}; diff --git a/unstable/src/youtube/js/features/blacklist.js b/unstable/src/youtube/js/features/blacklist.js deleted file mode 100644 index 95cc6ec81..000000000 --- a/unstable/src/youtube/js/features/blacklist.js +++ /dev/null @@ -1,215 +0,0 @@ -// TODO: HIGH CPU USAGE - -document.addEventListener('ImprovedTubeBlacklist', function(event) { - console.log('Blacklist event'); - - if (chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-blacklist', - data: { - type: event.detail.type, - id: event.detail.id, - title: event.detail.title, - preview: event.detail.preview - } - }); - } -}); - -ImprovedTube.blacklist = function() { - if (ImprovedTube.storage.blacklist_activate !== true) { - return false; - } - - if (typeof ImprovedTube.storage.blacklist === 'boolean' || !ImprovedTube.storage.blacklist) { - ImprovedTube.storage.blacklist = {}; - } - - // channel button - if ( - !ImprovedTube.isset(ImprovedTube.storage.blacklist.channels) || - (ImprovedTube.storage.blacklist.channels && - Object.keys(ImprovedTube.storage.blacklist.channels).indexOf(location.href.replace(/https:\/\/www.youtube.com\/(channel|user|c)\//g, '').replace(/\/(.)+/g, '')) === -1) - ) { - let channel_items = document.querySelectorAll('#inner-header-container #subscribe-button, .primary-header-upper-section .yt-uix-subscription-button'); - - for (let i = 0, l = channel_items.length; i < l; i++) { - if (!channel_items[i].parentNode.querySelector('.improvedtube-add-to-blacklist')) { - let button = document.createElement('div'); - - button.addEventListener('click', function(event) { - let video_id; - - event.preventDefault(); - event.stopPropagation(); - - try { - video_id = location.href.replace(/https:\/\/www.youtube.com\/(channel|user)\//g, '').replace(/\/(.)+/g, ''); - - document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { - detail: { - type: 'channel', - id: video_id, - title: document.querySelector('#channel-container yt-formatted-string.ytd-channel-name, a.branded-page-header-title-link').innerText, - preview: document.querySelector('#channel-container #avatar #img, .channel-header-profile-image').src - } - })); - - if (!ImprovedTube.storage.blacklist || typeof ImprovedTube.storage.blacklist !== 'object') { - ImprovedTube.storage.blacklist = {}; - } - - if (!ImprovedTube.storage.blacklist.channels) { - ImprovedTube.storage.blacklist.channels = {}; - } - - ImprovedTube.storage.blacklist.channels[video_id] = { - title: document.querySelector('yt-formatted-string.ytd-channel-name, a.branded-page-header-title-link').innerText, - preview: document.querySelector('#channel-container #avatar #img, .channel-header-profile-image').src - }; - - ImprovedTube.blacklist(); - - location.reload(); - } catch (err) {} - }, true); - - button.className = 'improvedtube-add-to-blacklist'; - button.innerText = 'Add to blacklist'; - button.style.position = 'static'; - button.style.transform = 'unset'; - button.style.opacity = '1'; - button.style.visibility = 'visible'; - button.style.pointerEvents = 'all'; - button.style.width = 'auto'; - button.style.fontSize = '16px'; - button.style.lineHeight = '28px'; - button.style.height = 'auto'; - button.style.padding = '6px 12px'; - button.style.borderRadius = '2px'; - button.style.boxSizing = 'border-box'; - button.style.background = '#bb1a1a'; - - channel_items[i].parentNode.insertBefore(button, channel_items[i]); - } - } - } - - // video button - let video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (let i = 0, l = video_items.length; i < l; i++) { - if (!video_items[i].querySelector('.improvedtube-add-to-blacklist')) { - let button = document.createElement('div'); - - button.addEventListener('click', function(event) { - let video_id; - - event.preventDefault(); - event.stopPropagation(); - - try { - video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'); - - let item = this.parentNode; - - while ( - item.nodeName && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } - - document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { - detail: { - type: 'video', - id: video_id, - title: item.querySelector('#video-title').innerText - } - })); - - if (!ImprovedTube.storage.blacklist || typeof ImprovedTube.storage.blacklist !== 'object') { - ImprovedTube.storage.blacklist = {}; - } - - if (!ImprovedTube.storage.blacklist.videos) { - ImprovedTube.storage.blacklist.videos = {}; - } - - ImprovedTube.storage.blacklist.videos[video_id] = { - title: item.querySelector('#video-title').innerText - }; - - ImprovedTube.blacklist(); - } catch (err) {} - }, true); - button.className = 'improvedtube-add-to-blacklist'; - button.innerText = 'x'; - - video_items[i].appendChild(button); - } - } - - // remove channels - if (ImprovedTube.storage.blacklist && ImprovedTube.storage.blacklist.channels) { - let videos = document.querySelectorAll('a#thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (let i = 0, l = videos.length; i < l; i++) { - let item = videos[i]; - - while ( - item.nodeName && - item.nodeName !== 'YTD-VIDEO-RENDERER' && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } - - if (item.querySelector('.ytd-channel-name a, a.spf-link[href*="/user/"], a.spf-link[href*="/channel/"]')) { - let channel_href = item.querySelector('.ytd-channel-name a, a.spf-link[href*="/user/"], a.spf-link[href*="/channel/"]').href; - - for (var key in ImprovedTube.storage.blacklist.channels) { - if (item.style && channel_href.indexOf(key) !== -1) { - item.style.display = 'none'; - } - } - } - } - } - - // remove videos - if (ImprovedTube.storage.blacklist && ImprovedTube.storage.blacklist.videos) { - let videos = document.querySelectorAll('a#thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (let i = 0, l = videos.length; i < l; i++) { - if (videos[i].href && videos[i].href != '' && ImprovedTube.getParam(new URL(videos[i].href).search.substr(1), 'v') in ImprovedTube.storage.blacklist.videos) { - let item = videos[i]; - - while ( - item.nodeName && - item.nodeName !== 'YTD-VIDEO-RENDERER' && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } - - item.style.display = 'none'; - } - } - } -}; diff --git a/unstable/src/youtube/js/features/channel.js b/unstable/src/youtube/js/features/channel.js deleted file mode 100644 index 029389f6e..000000000 --- a/unstable/src/youtube/js/features/channel.js +++ /dev/null @@ -1,54 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> CHANNEL -------------------------------------------------------------------------------- -1.0 Channel tab ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Channel tab ------------------------------------------------------------------------------*/ - -ImprovedTube.channel_default_tab = function() { - if (this.storage.channel_default_tab && this.storage.channel_default_tab !== '/') { - var value = this.storage.channel_default_tab, - node_list = document.querySelectorAll('*:not(#contenteditable-root) > a[href*="user"], ' + - '*:not(#contenteditable-root) > a[href*="channel"], ' + - '*:not(#contenteditable-root) > a[href*="/c/"]'); - - for (var i = 0, l = node_list.length; i < l; i++) { - var node = node_list[i]; - - if (!node.getAttribute('it-origin') || - node.hasAttribute('it-origin') && - node.getAttribute('it-origin').replace(/\/(home|videos|playlists)+$/g, '') != node.href.replace(/\/(home|videos|playlists)+$/g, '') - ) { - node.setAttribute('it-origin', node.href); - } - - var pathname = new URL(node.getAttribute('it-origin')).pathname; - - node.href = node.getAttribute('it-origin') + value; - - function click() { - if ( - this.data && - this.data.commandMetadata && - this.data.commandMetadata.webCommandMetadata && - this.data.commandMetadata.webCommandMetadata.url - ) { - this.data.commandMetadata.webCommandMetadata.url = (this.querySelector('a') || this).href.replace('https://www.youtube.com', ''); - } - } - - node.addEventListener('click', click, true); - node.parentNode.addEventListener('click', click, true); - node.parentNode.parentNode.addEventListener('click', click, true); - } - } else if (this.storage.channel_default_tab) { - var node_list = document.querySelectorAll('a[href*="user"], a[href*="channel"], a[href*="/c/"]'); - - for (var i = 0, l = node_list.length; i < l; i++) { - node_list[i].href = node_list[i].getAttribute('it-origin'); - } - } -}; diff --git a/unstable/src/youtube/js/features/general.js b/unstable/src/youtube/js/features/general.js deleted file mode 100644 index 5381f60d2..000000000 --- a/unstable/src/youtube/js/features/general.js +++ /dev/null @@ -1,287 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> GENERAL -------------------------------------------------------------------------------- -1.0 YouTube Home Page -2.0 Add «Scroll to top» -3.0 HD thumbnails -4.0 Confirmation before closing -5.0 Collapse of subscription sections -6.0 Mark watched videos ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 YouTube Home Page ------------------------------------------------------------------------------*/ - -ImprovedTube.youtube_home_page = function() { - if ( - this.storage.youtube_home_page && - this.storage.youtube_home_page !== '/' && - this.storage.youtube_home_page !== 'search' - ) { - var value = this.storage.youtube_home_page, - node_list = document.querySelectorAll('a[href="/"]:not([role="tablist"]), a[href="//www.youtube.com"]:not([role="tablist"]), a[href="//www.youtube.com/"]:not([role="tablist"]), a[href="https://www.youtube.com"]:not([role="tablist"]), a[href="https://www.youtube.com/"]:not([role="tablist"]), a[it-origin="/"]:not([role="tablist"]), a[it-origin="//www.youtube.com"]:not([role="tablist"]), a[it-origin="//www.youtube.com/"]:not([role="tablist"]), a[it-origin="https://www.youtube.com"]:not([role="tablist"]), a[it-origin="https://www.youtube.com/"]:not([role="tablist"])'); - - for (var i = 0, l = node_list.length; i < l; i++) { - var node = node_list[i], - pathname = new URL((node.getAttribute('it-origin') || node.href)).pathname; - - if (pathname === '/') { - if (!node.getAttribute('it-origin')) { - node.setAttribute('it-origin', node.href); - } - } - - node.href = value; - node.outerHTML = String(node.outerHTML); - node.addEventListener('click', function() { - if ( - this.data && - this.data.commandMetadata && - this.data.commandMetadata.webCommandMetadata && - this.data.commandMetadata.webCommandMetadata.url - ) { - this.data.commandMetadata.webCommandMetadata.url = value; - } - }, true); - } - } else if (this.storage.youtube_home_page) { - var node_list = document.querySelectorAll('a[href="/"], a[href="//www.youtube.com"], a[href="//www.youtube.com/"], a[href="https://www.youtube.com"], a[href="https://www.youtube.com/"], a[it-origin="/"], a[it-origin="//www.youtube.com"], a[it-origin="//www.youtube.com/"], a[it-origin="https://www.youtube.com"], a[it-origin="https://www.youtube.com/"]'); - - for (var i = 0, l = node_list.length; i < l; i++) { - node_list[i].href = node_list[i].getAttribute('it-origin') || '/'; - node_list[i].outerHTML = String(node.node_list[i].outerHTML); - } - } -}; - -function youtubeHomePage__documentStart(option) { - if (option && option !== '/' && option !== 'search' && location.hostname === 'www.youtube.com' && location.pathname === '/') { - location.replace(option); - } -}; - - -/*----------------------------------------------------------------------------- -2.0 Add «Scroll to top» ------------------------------------------------------------------------------*/ - -ImprovedTube.scroll = function() { - if (window.scrollY > window.innerHeight / 2) { - document.documentElement.setAttribute('it-show-scroll-to-top', true); - } else { - document.documentElement.setAttribute('it-show-scroll-to-top', false); - } -}; - -ImprovedTube.add_scroll_to_top = function(is_update) { - if (this.storage.add_scroll_to_top === true) { - var button = document.createElement('div'); - - button.id = 'it-scroll-to-top'; - button.innerHTML = ''; - - button.addEventListener('click', function() { - window.scrollTo(0, 0); - }); - - document.documentElement.appendChild(button); - - window.addEventListener('scroll', ImprovedTube.scroll); - } else { - window.removeEventListener('scroll', ImprovedTube.scroll); - - if (document.querySelector('#it-scroll-to-top')) { - document.querySelector('#it-scroll-to-top').remove(); - } - } -}; - - -/*----------------------------------------------------------------------------- -3.0 HD thumbnails ------------------------------------------------------------------------------*/ - -ImprovedTube.hd_thumbnails = function() { - if (this.storage.hd_thumbnails === true) { - var images = document.querySelectorAll('img'); - - for (var i = 0, l = images.length; i < l; i++) { - if (/(hqdefault\.jpg|hq720.jpg)+/.test(images[i].src) && !images[i].dataset.defaultSrc) { - images[i].dataset.defaultSrc = images[i].src; - - images[i].onload = function() { - if (this.naturalHeight <= 90) { - this.src = this.dataset.defaultSrc; - } - }; - - images[i].src = images[i].src.replace(/(hqdefault\.jpg|hq720.jpg)+/, 'maxresdefault.jpg'); - } - } - } else { - var images = document.querySelectorAll('img'); - - for (var i = 0, l = images.length; i < l; i++) { - if (images[i].dataset.defaultSrc) { - images[i].src = images[i].dataset.defaultSrc; - } - } - } -}; - - -/*----------------------------------------------------------------------------- -4.0 Confirmation before closing ------------------------------------------------------------------------------*/ - -ImprovedTube.confirmation_before_closing = function() { - window.onbeforeunload = function() { - if (ImprovedTube.storage.confirmation_before_closing === true) { - return 'You have attempted to leave this page. Are you sure?'; - } - }; -}; - - -/*----------------------------------------------------------------------------- -5.0 Collapse of subscription sections ------------------------------------------------------------------------------*/ - -ImprovedTube.collapse_of_subscription_sections = function() { - if (/\/feed\/subscriptions/.test(location.href)) { - if (ImprovedTube.storage.collapse_of_subscription_sections === true) { - var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer, #browse-items-primary .section-list > li'); - - for (var i = 0, l = sections.length; i < l; i++) { - if (!sections[i].querySelector('.it-section-collapse')) { - var section_title = sections[i].querySelector('h2'), - button = document.createElement('div'); - - button.className = 'it-section-collapse'; - button.innerHTML = ''; - button.section = sections[i]; - button.addEventListener('click', function() { - var section = this.section, - content = section.querySelector('.grid-subheader + #contents, .shelf-title-table + .multirow-shelf'); - - if (section.classList.contains('it-section-collapsed') === false) { - content.style.height = content.offsetHeight + 'px'; - content.style.transition = 'height 150ms'; - } - - setTimeout(function() { - section.classList.toggle('it-section-collapsed'); - }); - }); - - if (!sections[i].querySelector('.shelf-title-cell')) { - section_title.parentNode.insertBefore(button, section_title.nextSibling); - } else { - section_title.appendChild(button); - } - } - } - } else { - var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'), - buttons = document.querySelectorAll('.it-section-collapse'); - - for (var i = 0, l = sections.length; i < l; i++) { - sections[i].classList.remove('it-section-collapsed'); - sections[i].style.height = ''; - sections[i].style.transition = ''; - } - - for (var i = 0, l = buttons.length; i < l; i++) { - buttons[i].remove(); - } - } - } -}; - - -/*----------------------------------------------------------------------------- -6.0 Mark watched videos ------------------------------------------------------------------------------*/ - -document.addEventListener('ImprovedTubeWatched', function(event) { - if (chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-watched', - data: { - action: event.detail.action, - id: event.detail.id, - title: event.detail.title - } - }); - } -}); - -ImprovedTube.mark_watched_videos = function() { - if (ImprovedTube.storage.mark_watched_videos === true) { - var video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (let i = 0, l = video_items.length; i < l; i++) { - if (!video_items[i].querySelector('.it-mark-watched')) { - var button = document.createElement('div'); - - button.className = 'it-mark-watched' + (ImprovedTube.storage.watched && ImprovedTube.storage.watched[ImprovedTube.getParam(new URL(video_items[i].href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); - button.innerHTML = ''; - button.addEventListener('click', function(event) { - var watched = this.classList.contains('watched') ? false : true; - - event.preventDefault(); - event.stopPropagation(); - - this.classList.toggle('watched'); - - try { - var video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'), - item = this.parentNode; - - while ( - item.nodeName && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } - - if (!ImprovedTube.storage.watched || typeof ImprovedTube.storage.watched !== 'object') { - ImprovedTube.storage.watched = {}; - } - - if (watched === true) { - ImprovedTube.storage.watched[video_id] = { - title: item.querySelector('a#video-title, .title, .yt-lockup-title > a').innerText - }; - - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'set', - id: video_id, - title: item.querySelector('a#video-title, .title, .yt-lockup-title > a').innerText - } - })); - } else if (ImprovedTube.storage.watched[video_id]) { - delete ImprovedTube.storage.watched[video_id]; - - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'remove', - id: video_id - } - })); - } - } catch (err) {} - }); - - video_items[i].appendChild(button); - } - } - } -}; diff --git a/unstable/src/youtube/js/features/player.js b/unstable/src/youtube/js/features/player.js deleted file mode 100644 index 29d980534..000000000 --- a/unstable/src/youtube/js/features/player.js +++ /dev/null @@ -1,872 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> PLAYER -------------------------------------------------------------------------------- -1.0 Quality -2.0 Volume -3.0 Playback speed -4.0 Autoplay -5.0 Allow 60fps -6.0 Codec h.264 -7.0 Subtitles -8.0 Loudness normalization -9.0 Up next autoplay -10.0 Mini player -11.0 Ads -12.0 Autopause -13.0 Auto-fullscreen -14.0 Custom plyaer buttons - 14.1 Repeat - 14.2 Screenshot - 14.3 Rotate - 14.4 Popup player ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Quality ------------------------------------------------------------------------------*/ - -ImprovedTube.player_quality = function(node) { - var quality = ImprovedTube.storage.player_quality; - - if (!node) { - node = document.querySelector('.html5-video-player'); - } - - if (node.getAvailableQualityLevels) { - var available_quality_levels = node.getAvailableQualityLevels(); - - if (quality && quality !== 'auto') { - if (available_quality_levels.indexOf(quality) === -1) { - quality = available_quality_levels[0]; - } - - node.setPlaybackQualityRange(quality); - node.setPlaybackQuality(quality); - } - } -}; - - -/*----------------------------------------------------------------------------- -2.0 Volume ------------------------------------------------------------------------------*/ - -ImprovedTube.player_volume = function(node) { - if (!node) { - node = document.querySelector('.html5-video-player'); - } - - if (node && ImprovedTube.storage.player_forced_volume === true) { - var volume = Number(ImprovedTube.storage.player_volume); - - if (!ImprovedTube.isset(volume) || !volume) { - volume = 1; - } - - node.setVolume(volume); - } -}; - - -/*----------------------------------------------------------------------------- -3.0 Playback speed ------------------------------------------------------------------------------*/ - -ImprovedTube.player_playback_speed = function(node) { - var playback_speed = Number(ImprovedTube.storage.player_playback_speed); - - if (!node) { - node = document.querySelector('.html5-video-player'); - } - - if (ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) && ImprovedTube.storage.player_forced_playback_speed === true) { - node.querySelector('video').playbackRate = playback_speed; - - try { - if (window.location.href.indexOf("music") < 0) { //quickfix to keep running on music.youtube.com - node.setPlaybackRate(playback_speed); - } - } catch (err) {} - } -}; - - -/*----------------------------------------------------------------------------- -4.0 Autoplay ------------------------------------------------------------------------------*/ - -ImprovedTube.autoplay = function() { - if ( - (/\/watch\?/.test(location.href) && !/list=/.test(location.href) && this.storage.player_autoplay === false) || - (/\/watch\?/.test(location.href) && /list=/.test(location.href) /*&& /index=/.test(location.href)*/ && this.storage.playlist_autoplay === false) || - (/\/(channel|user)\//.test(location.href) && this.storage.channel_trailer_autoplay === false) - ) { - return false; - } - - return true; -}; - - -/*----------------------------------------------------------------------------- -5.0 Allow 60fps ------------------------------------------------------------------------------*/ - -ImprovedTube.player_60fps = function() { - if (this.storage.player_60fps === false) { - var canPlayType = HTMLMediaElement.prototype.canPlayType; - - function overwrite(self, callback, mime) { - var match = /framerate=(\d+)/.exec(mime); - - if (match && match[1] > 30) { - return ''; - } else { - return callback.call(self, mime); - } - } - - if (window.MediaSource) { - var isTypeSupported = window.MediaSource.isTypeSupported; - - window.MediaSource.isTypeSupported = function(mime) { - return overwrite(this, isTypeSupported, mime); - }; - } - - HTMLMediaElement.prototype.canPlayType = function(mime) { - var status = overwrite(this, canPlayType, mime); - - if (!status) { - return ''; - } else { - return status; - } - }; - } -}; - - -/*----------------------------------------------------------------------------- -6.0 Video codec ------------------------------------------------------------------------------*/ - -ImprovedTube.player_h264 = function() { - if (this.storage.player_h264 === true) { - var canPlayType = HTMLMediaElement.prototype.canPlayType; - - function overwrite(self, callback, mime) { - if (/webm|vp8|vp9/.test(mime)) { - return false; - } else { - return callback.call(self, mime); - } - } - - if (window.MediaSource) { - var isTypeSupported = window.MediaSource.isTypeSupported; - - window.MediaSource.isTypeSupported = function(mime) { - return overwrite(this, isTypeSupported, mime); - }; - } - - HTMLMediaElement.prototype.canPlayType = function(mime) { - var status = overwrite(this, canPlayType, mime); - - if (!status) { - return ''; - } else { - return status; - } - }; - } -}; - - -/*----------------------------------------------------------------------------- -9.0 Up next autoplay ------------------------------------------------------------------------------*/ - -ImprovedTube.up_next_autoplay = function() { - if (this.isset(this.storage.up_next_autoplay)) { - var wait = setInterval(function() { - if ( - document.querySelector('#related #head.ytd-compact-autoplay-renderer #toggle') || - document.querySelector('#autoplay-checkbox') - ) { - clearInterval(wait); - - var option = ImprovedTube.storage.up_next_autoplay, - new_youtube_toggle = document.querySelector('#related #head.ytd-compact-autoplay-renderer #toggle'), - old_youtube_toggle = document.querySelector('#autoplay-checkbox'); - - if (new_youtube_toggle && (option === true && !new_youtube_toggle.hasAttribute('checked') || option === false && new_youtube_toggle.hasAttribute('checked'))) { - new_youtube_toggle.click(); - } else if (old_youtube_toggle && (option === true && !old_youtube_toggle.hasAttribute('checked') || option === false && old_youtube_toggle.hasAttribute('checked'))) { - old_youtube_toggle.click(); - } - } - }, 250); - } -}; - - -/*----------------------------------------------------------------------------- -10.0 Mini player (todo) ------------------------------------------------------------------------------*/ - -ImprovedTube.mini_player__mode = false; -ImprovedTube.mini_player__move = false; -ImprovedTube.mini_player__cursor = '""'; -ImprovedTube.mini_player__x = 0; -ImprovedTube.mini_player__y = 0; -ImprovedTube.mini_player__max_x = 0; -ImprovedTube.mini_player__max_y = 0; -ImprovedTube.mini_player__original_width = 0; -ImprovedTube.mini_player__original_height = 0; -ImprovedTube.mini_player__width = 200; -ImprovedTube.mini_player__height = 160; -ImprovedTube.mini_player__mousedown_x = 0; -ImprovedTube.mini_player__mousedown_y = 0; -ImprovedTube.mini_player__player_offset_x = 0; -ImprovedTube.mini_player__player_offset_y = 0; -ImprovedTube.mini_player__resize_offset = 16; - - -ImprovedTube.mini_player__setPosition = function(x, y) { - ImprovedTube.mini_player__element.style.transform = 'translate3d(' + x + 'px, ' + y + 'px, 0)'; -}; - -ImprovedTube.mini_player__setSize = function(width, height) { - ImprovedTube.mini_player__element.style.width = width + 'px'; - ImprovedTube.mini_player__element.style.height = height + 'px'; -}; - -ImprovedTube.mini_player__scroll = function() { - if (window.scrollY >= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === false) { - ImprovedTube.mini_player__mode = true; - - ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; - ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; - - ImprovedTube.mini_player__element.classList.add('it-mini-player'); - - ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); - ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); - - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); - - window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - - window.dispatchEvent(new Event('resize')); - } else if (window.scrollY < 256 && ImprovedTube.mini_player__mode === true || ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === true) { - ImprovedTube.mini_player__mode = false; - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); - ImprovedTube.mini_player__move = false; - ImprovedTube.mini_player__setPosition(0, 0); - ImprovedTube.mini_player__element.style.width = ''; - ImprovedTube.mini_player__element.style.height = ''; - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - - window.dispatchEvent(new Event('resize')); - } -}; - -ImprovedTube.mini_player__mousedown = function(event) { - if (event.button !== 0) { - return false; - } - - if (ImprovedTube.mini_player__resize() === true) { - return false; - } - - var is_player = false; - - for (var i = 0, l = event.path.length; i < l; i++) { - if ((event.path[i].classList && event.path[i].classList.contains('it-mini-player')) === true) { - is_player = true; - } - } - - if (is_player === false) { - return false; - } - - event.preventDefault(); - - var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); - - ImprovedTube.mini_player__mousedown_x = event.clientX; - ImprovedTube.mini_player__mousedown_y = event.clientY; - ImprovedTube.mini_player__width = bcr.width; - ImprovedTube.mini_player__height = bcr.height; - - ImprovedTube.mini_player__player_offset_x = event.clientX - bcr.x; - ImprovedTube.mini_player__player_offset_y = event.clientY - bcr.y; - - ImprovedTube.mini_player__max_x = document.body.offsetWidth - ImprovedTube.mini_player__width; - ImprovedTube.mini_player__max_y = window.innerHeight - ImprovedTube.mini_player__height; - - window.addEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.addEventListener('mousemove', ImprovedTube.mini_player__mousemove); -}; - -ImprovedTube.mini_player__mouseup = function() { - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - - strg.x = ImprovedTube.mini_player__x; - strg.y = ImprovedTube.mini_player__y; - - localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - - window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); - - ImprovedTube.mini_player__move = false; - - setTimeout(function() { - window.removeEventListener('click', ImprovedTube.mini_player__click, true); - }); -}; - -ImprovedTube.mini_player__click = function(event) { - event.stopPropagation(); - event.preventDefault(); -}; - -ImprovedTube.mini_player__mousemove = function(event) { - if ( - event.clientX < ImprovedTube.mini_player__mousedown_x - 5 || - event.clientY < ImprovedTube.mini_player__mousedown_y - 5 || - event.clientX > ImprovedTube.mini_player__mousedown_x + 5 || - event.clientY > ImprovedTube.mini_player__mousedown_y + 5 - ) { - var x = event.clientX - ImprovedTube.mini_player__player_offset_x, - y = event.clientY - ImprovedTube.mini_player__player_offset_y; - - if (ImprovedTube.mini_player__move === false) { - ImprovedTube.mini_player__move = true; - - window.addEventListener('click', ImprovedTube.mini_player__click, true); - } - - if (x < 0) { - x = 0; - } - - if (y < 0) { - y = 0; - } - - if (x > ImprovedTube.mini_player__max_x) { - x = ImprovedTube.mini_player__max_x; - } - - if (y > ImprovedTube.mini_player__max_y) { - y = ImprovedTube.mini_player__max_y; - } - - ImprovedTube.mini_player__x = x; - ImprovedTube.mini_player__y = y; - - ImprovedTube.mini_player__setPosition(x, y); - } -}; - -ImprovedTube.mini_player__cursorUpdate = function(event) { - var x = event.clientX, - y = event.clientY, - c = ImprovedTube.mini_player__cursor; - - if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset - ) { - c = 'ne-resize'; - } else if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'se-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'sw-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset - ) { - c = 'nw-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset - ) { - c = 'n-resize'; - } else if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'e-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 's-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'w-resize'; - } else { - c = ''; - } - - if (ImprovedTube.mini_player__cursor !== c) { - ImprovedTube.mini_player__cursor = c; - - document.documentElement.setAttribute('it-mini-player-cursor', ImprovedTube.mini_player__cursor); - } -}; - -ImprovedTube.mini_player__resize = function(event) { - if (ImprovedTube.mini_player__cursor !== '') { - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - window.addEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); - window.addEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); - - return true; - } -}; - -ImprovedTube.mini_player__resize_mouseMove = function(event) { - if (ImprovedTube.mini_player__cursor === 'n-resize') { - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); - } else if (ImprovedTube.mini_player__cursor === 'e-resize') { - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__height); - } else if (ImprovedTube.mini_player__cursor === 's-resize') { - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, event.clientY - ImprovedTube.mini_player__y); - } else if (ImprovedTube.mini_player__cursor === 'w-resize') { - ImprovedTube.mini_player__setPosition(event.clientX, ImprovedTube.mini_player__y); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__height); - } else if (ImprovedTube.mini_player__cursor === 'ne-resize') { - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); - } else if (ImprovedTube.mini_player__cursor === 'se-resize') { - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, event.clientY - ImprovedTube.mini_player__y); - } else if (ImprovedTube.mini_player__cursor === 'sw-resize') { - ImprovedTube.mini_player__setPosition(event.clientX, ImprovedTube.mini_player__y); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, event.clientY - ImprovedTube.mini_player__y); - } else if (ImprovedTube.mini_player__cursor === 'nw-resize') { - ImprovedTube.mini_player__setPosition(event.clientX, event.clientY); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); - } -}; - -ImprovedTube.mini_player__resize_mouseUp = function(event) { - var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); - - ImprovedTube.mini_player__x = bcr.left; - ImprovedTube.mini_player__y = bcr.top; - ImprovedTube.mini_player__width = bcr.width; - ImprovedTube.mini_player__height = bcr.height; - - window.dispatchEvent(new Event('resize')); - - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - - strg.width = ImprovedTube.mini_player__width; - strg.height = ImprovedTube.mini_player__height; - - localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - window.removeEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); - window.removeEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); -}; - -ImprovedTube.mini_player = function() { - ImprovedTube.mini_player__element = document.querySelector('.html5-video-player'); - - if (ImprovedTube.storage.mini_player === true) { - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - - ImprovedTube.mini_player__x = ImprovedTube.isset(strg.x) ? strg.x : 16; - ImprovedTube.mini_player__y = ImprovedTube.isset(strg.y) ? strg.y : 16; - ImprovedTube.mini_player__width = strg.width || 200; - ImprovedTube.mini_player__height = strg.height || 150; - - window.addEventListener('scroll', ImprovedTube.mini_player__scroll); - } else { - ImprovedTube.mini_player__mode = false; - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); - ImprovedTube.mini_player__move = false; - ImprovedTube.mini_player__setPosition(0, 0); - ImprovedTube.mini_player__element.style.width = ''; - ImprovedTube.mini_player__element.style.height = ''; - - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - window.dispatchEvent(new Event('resize')); - - window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); - window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.removeEventListener('click', ImprovedTube.mini_player__click); - window.removeEventListener('scroll', ImprovedTube.mini_player__scroll); - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - } -}; - - -/*----------------------------------------------------------------------------- -12.0 Autopause ------------------------------------------------------------------------------*/ - -ImprovedTube.player_autopause_when_switching_tabs = function() { - window.addEventListener('blur', function() { - ImprovedTube.focused = false; - - if ( - ImprovedTube.storage.player_autopause_when_switching_tabs === true && - /\/watch/.test(location.href) && - document.querySelector('.html5-video-player video') - ) { - document.querySelector('.html5-video-player video').pause(); - } - }); - - window.addEventListener('focus', function() { - ImprovedTube.focused = true; - - if ( - ImprovedTube.storage.player_autopause_when_switching_tabs === true && - /\/watch/.test(location.href) && - document.querySelector('.html5-video-player video') - ) { - document.querySelector('.html5-video-player video').play(); - } - }); -}; - - -/*----------------------------------------------------------------------------- -13.0 Auto-fullscreen ------------------------------------------------------------------------------*/ - -ImprovedTube.player_autofullscreen = function(node) { - if (!node) { - node = document.querySelector('.html5-video-player'); - } - - if ( - this.storage.player_autofullscreen === true && - !document.fullscreenElement && - document.documentElement.getAttribute('it-page-type') === 'video' && - node.toggleFullscreen - ) { - node.toggleFullscreen(); - } -}; - - -/*----------------------------------------------------------------------------- -14.0 Custom buttons ------------------------------------------------------------------------------*/ - -ImprovedTube.createPlayerButton = function(node, options) { - var button = document.createElement('button'); - - var wait = setInterval(function() { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - if (node && node.querySelector('.ytp-left-controls')) { - clearInterval(wait); - - button.className = 'ytp-button it-player-button'; - - button.dataset.title = options.title; - - if (options.id) { - if (node.querySelector('#' + options.id)) { - node.querySelector('#' + options.id).remove(); - } - - button.id = options.id; - } - - if (options.html) { - button.innerHTML = options.html; - } - - button.style.opacity = options.opacity || '.5'; - - if (options.onclick) { - button.onclick = options.onclick; - } - - node.querySelector('.ytp-left-controls').insertBefore(button, node.querySelector('.ytp-left-controls').childNodes[3]); - } - }); -}; - - -/*----------------------------------------------------------------------------- -14.1 Repeat ------------------------------------------------------------------------------*/ - -ImprovedTube.player_repeat_button = function(node) { - if (this.storage.player_repeat_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - this.createPlayerButton(node, { - id: 'it-repeat-button', - html: '', - onclick: function() { - if (node.querySelector('video').hasAttribute('loop')) { - node.querySelector('video').removeAttribute('loop'); - this.style.opacity = '.5'; - } else if (!/ad-showing/.test(player.className)) { - node.querySelector('video').setAttribute('loop', ''); - this.style.opacity = '1'; - } - }, - title: 'Repeat' - }); - - if (this.storage.player_always_repeat === true) { - setTimeout(function() { - node.querySelector('video').setAttribute('loop', ''); - node.querySelector('#it-repeat-button').style.opacity = '1'; - }, 100); - } - } else if (document.querySelector('.it-repeat-button')) { - document.querySelector('.it-repeat-button').remove(); - } -}; - - -/*----------------------------------------------------------------------------- -14.2 Screenshot ------------------------------------------------------------------------------*/ - -ImprovedTube.screenshot = function() { - document.body.style.opacity = '0'; - - var video = document.querySelector('.html5-video-player video'), - cvs = document.createElement('canvas'), - ctx = cvs.getContext('2d'), - old_w = video.offsetWidth, - old_h = video.offsetHeight; - - video.style.width = video.videoWidth + 'px'; - video.style.height = video.videoHeight + 'px'; - - setTimeout(function() { - cvs.width = video.videoWidth; - cvs.height = video.videoHeight; - - ctx.drawImage(video, 0, 0, cvs.width, cvs.height); - - cvs.toBlob(function(blob) { - if (ImprovedTube.storage.player_screenshot_save_as !== 'clipboard') { - var a = document.createElement('a'); - - a.href = URL.createObjectURL(blob); - - a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '-' + new Date(document.querySelector('video').getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; - - a.click(); - } else { - try { - navigator.clipboard.write([ - new ClipboardItem({ - 'image/png': blob - }) - ]); - } catch (error) { - console.error(error); - } - } - - setTimeout(function() { - video.style.width = old_w + 'px'; - video.style.height = old_h + 'px'; - - document.body.style.opacity = '1'; - }, 100); - }); - }, 100); -}; - -ImprovedTube.player_screenshot_button = function() { - if (this.storage.player_screenshot_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - this.createPlayerButton(node, { - id: 'it-screenshot-button', - html: '', - opacity: 1, - onclick: ImprovedTube.screenshot, - title: 'Screenshot' - }); - } else if (document.querySelector('.it-screenshot-button')) { - document.querySelector('.it-screenshot-button').remove(); - } -}; - - -/*----------------------------------------------------------------------------- -14.3 Rotate ------------------------------------------------------------------------------*/ - -ImprovedTube.player_rotate_button = function() { - if (this.storage.player_rotate_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - this.createPlayerButton(node, { - id: 'it-rotate-button', - html: '', - opacity: 1, - onclick: function() { - var video = document.querySelector('.html5-video-player video'), - transform = '', - rotate = (document.querySelector('.it-rotate-styles') && document.querySelector('.it-rotate-styles').textContent.match(/rotate\([0-9.]+deg\)/g) || [''])[0]; - - rotate = Number((rotate.match(/[0-9.]+/g) || [])[0]) || 0; - - if (rotate < 270 && rotate % 90 == 0) { - rotate = rotate + 90; - } else { - rotate = 0; - } - - transform += 'rotate(' + rotate + 'deg)'; - - if (rotate == 90 || rotate == 270) { - transform += ' scale(' + video.offsetHeight / video.offsetWidth + ')'; - } - - //video.style.transform = transform; - - if (!document.querySelector('.it-rotate-styles')) { - var styles = document.createElement('style'); - - styles.className = 'it-rotate-styles'; - - document.body.appendChild(styles); - } - - document.querySelector('.it-rotate-styles').textContent = '.html5-video-player:not(it-mini-player) video {transform:' + transform + '}'; - }, - title: 'Rotate' - }); - } else if (document.querySelector('.it-rotate-button')) { - document.querySelector('.it-rotate-button').remove(); - document.querySelector('.it-rotate-styles').remove(); - } -}; - - -/*----------------------------------------------------------------------------- -14.4 Popup ------------------------------------------------------------------------------*/ - -ImprovedTube.player_popup_button = function() { - if (this.storage.player_popup_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - this.createPlayerButton(node, { - id: 'it-popup-player-button', - html: '', - opacity: 1, - onclick: function() { - node.pauseVideo(); - - window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(node.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'location=0,menubar=0,status=0,titlebar=0,width=' + node.offsetWidth + ',height=' + node.offsetHeight); - }, - title: 'Popup' - }); - } else if (document.querySelector('.it-popup-player-button')) { - document.querySelector('.it-popup-player-button').remove(); - } -}; - - -/*----------------------------------------------------------------------------- -# LOUDNESS NORMALIZATION ------------------------------------------------------------------------------*/ - -ImprovedTube.player_loudness_normalization = function() { - if (document.querySelector('video')) { - document.querySelector('video').onvolumechange = function(event) { - if (document.querySelector('.ytp-volume-panel') && ImprovedTube.storage.player_loudness_normalization === false) { - var volume = Number(document.querySelector('.ytp-volume-panel').getAttribute('aria-valuenow')); - - document.querySelector('video').volume = volume / 100; - } - }; - } - - if (ImprovedTube.storage.player_loudness_normalization === false) { - try { - var local_storage = localStorage['yt-player-volume']; - - if (ImprovedTube.isset(Number(ImprovedTube.storage.player_volume)) && ImprovedTube.storage.player_forced_volume === true) { - - } else if (local_storage) { - local_storage = JSON.parse(JSON.parse(local_storage).data); - local_storage = Number(local_storage.volume); - - document.querySelector('video').volume = local_storage / 100; - } else { - document.querySelector('video').volume = 100; - } - } catch (err) { - console.log(err); - } - } -}; \ No newline at end of file diff --git a/unstable/src/youtube/js/features/playlist.js b/unstable/src/youtube/js/features/playlist.js deleted file mode 100644 index 6a2ffb272..000000000 --- a/unstable/src/youtube/js/features/playlist.js +++ /dev/null @@ -1,245 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> PLAYLIST -------------------------------------------------------------------------------- -1.0 Reverse -2.0 Repeat -3.0 Shuffle ------------------------------------------------------------------------------*/ - - -/*----------------------------------------------------------------------------- -1.0 Reverse (todo) ------------------------------------------------------------------------------*/ - -ImprovedTube.playlist_reverse_wait = false; - -ImprovedTube.playlist_reverse_activated = false; - -ImprovedTube.playlist_reverse = function() { - if (this.storage.playlist_reverse === true) { - ImprovedTube.playlist_reverse_wait = setInterval(function() { - if ( - ( - document.querySelector('.playlist-nav-controls') || - document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #header-contents #playlist-actions ytd-menu-renderer #top-level-buttons') - ) && - (document.querySelector('.playlist-nav-controls .toggle-loop') || document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[0]) && - !document.querySelector('#it-playlist-reverse') - ) { - clearInterval(ImprovedTube.playlist_reverse_wait); - - ImprovedTube.playlist_reverse_wait = false; - - var button = document.createElement('div'); - - button.id = 'it-playlist-reverse'; - button.innerHTML = ''; - button.onclick = function() { - if (this.classList.contains('yt-uix-button-toggled')) { - ImprovedTube.playlist_reverse_activated = false; - - this.classList.remove('yt-uix-button-toggled'); - } else { - ImprovedTube.playlist_reverse_activated = true; - - this.classList.add('yt-uix-button-toggled'); - } - - ImprovedTube.newPlaylistReverse(); - }; - - (document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #header-contents #playlist-actions ytd-menu-renderer #top-level-buttons') || document.querySelector('.playlist-nav-controls')).appendChild(button); - - if ((ImprovedTube.playlist_reverse_activated === true || location.href.indexOf('it-playlist-reverse=true') !== -1) && document.querySelector('#it-playlist-reverse')) { - ImprovedTube.playlist_reverse_activated = true; - - document.querySelector('#it-playlist-reverse').classList.add('yt-uix-button-toggled'); - - ImprovedTube.newPlaylistReverse(); - } - } - }, 250); - } -}; - -ImprovedTube.newPlaylistReverse = function() { - var list = document.querySelector('#items.playlist-items'), - videos = document.querySelectorAll('#items.playlist-items > *'), - clones = [], - titles = [], - channels = [], - hrefs = []; - - if (videos) { - for (var i = videos.length - 1; i >= 0; i--) { - titles.push(videos[i].querySelector('#video-title').innerText); - channels.push(videos[i].querySelector('#byline').innerText); - hrefs.push(videos[i].querySelector('a').href + '&it-playlist-reverse=true'); - clones.push(videos[i].cloneNode(true)); - } - - list.innerHTML = ''; - - for (var i = 0, l = clones.length; i < l; i++) { - var clone = clones[i].cloneNode(true); - - list.appendChild(clone); - } - - function next(event) { - if ( - ImprovedTube.playlist_reverse_activated === true && - ( - (document.querySelector('#items.playlist-items > [selected]').nextElementSibling ? document.querySelector('#items.playlist-items > [selected]').nextElementSibling.querySelector('a') : null) || - document.querySelector('#items.playlist-items > * a') - ) - ) { - for (var i = 0, l = event.path.length; i < l; i++) { - if (event.path[i] === document.querySelector('.html5-video-player .ytp-next-button')) { - event.preventDefault(); - event.stopPropagation(); - - location.replace(((document.querySelector('#items.playlist-items > [selected]').nextElementSibling ? document.querySelector('#items.playlist-items > [selected]').nextElementSibling.querySelector('a') : null) || document.querySelector('#items.playlist-items > * a')).href); - - return false; - } - } - } - } - - window.removeEventListener('click', next); - window.addEventListener('click', next); - - function prev(event) { - if ( - ImprovedTube.playlist_reverse_activated === true && - ( - (document.querySelector('#items.playlist-items > [selected]').previousElementSibling ? document.querySelector('#items.playlist-items > [selected]').nextElementSibling.querySelector('a') : null) || - document.querySelector('#items.playlist-items > *:last-child a') - ) - ) { - for (var i = 0, l = event.path.length; i < l; i++) { - if (event.path[i] === document.querySelector('.html5-video-player .ytp-prev-button')) { - event.preventDefault(); - event.stopPropagation(); - - location.replace(((document.querySelector('#items.playlist-items > [selected]').previousElementSibling ? document.querySelector('#items.playlist-items > [selected]').nextElementSibling.querySelector('a') : null) || document.querySelector('#items.playlist-items > *:last-child a')).href); - - return false; - } - } - } - } - - window.removeEventListener('click', prev); - window.addEventListener('click', prev); - - setTimeout(function() { - var items = document.querySelectorAll('#items.playlist-items > *'); - - for (var i = 0, l = clones.length; i < l; i++) { - var item = items[i]; - - item.querySelector('a').href = hrefs[i]; - // index - item.querySelector('#index').innerHTML = clones[i].querySelector('#index').innerHTML; - // thumbnail - item.querySelector('#thumbnail-container').style.background = 'url(https://i.ytimg.com/vi/' + hrefs[i].match(/v=[^&]*/g)[0].substr(2) + '/hqdefault.jpg) no-repeat center'; - item.querySelector('#thumbnail-container').style.backgroundSize = 'cover'; - item.querySelector('yt-img-shadow').classList.remove('empty'); - // title - item.querySelector('#video-title').innerText = titles[i]; - // channel - item.querySelector('#byline').innerText = channels[i]; - } - - //document.querySelector('.html5-video-player .ytp-next-button').parentNode.replaceChild(document.querySelector('.html5-video-player .ytp-next-button').cloneNode.true, document.querySelector('.html5-video-player .ytp-next-button')); - - document.querySelector('#playlist .playlist-items').scrollTo(0, document.querySelector('ytd-playlist-panel-video-renderer[selected]').offsetTop - document.querySelector('ytd-playlist-panel-video-renderer[selected]').parentNode.offsetTop); - }, 500); - } -}; - - -/*----------------------------------------------------------------------------- -2.0 Repeat ------------------------------------------------------------------------------*/ - -ImprovedTube.playlist_repeat_wait = false; - -ImprovedTube.playlist_repeat = function() { - if (this.isset(this.storage.playlist_repeat) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { - ImprovedTube.playlist_repeat_wait = setInterval(function() { - if ( - document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[0] || - document.querySelector('.playlist-nav-controls .toggle-loop') - ) { - clearInterval(ImprovedTube.playlist_repeat_wait); - - ImprovedTube.playlist_repeat_wait = false; - - var option = ImprovedTube.storage.playlist_repeat, - new_youtube_toggle = document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer'), - old_youtube_toggle = document.querySelector('.playlist-nav-controls .toggle-loop'); - - if (new_youtube_toggle[0] && (option === true && new_youtube_toggle[0].className.search('style-default-active') === -1 || option === 'disabled' && new_youtube_toggle[0].className.search('style-default-active') !== -1)) { - new_youtube_toggle[0].click(); - } else if (old_youtube_toggle && (option === true && old_youtube_toggle.className.search('yt-uix-button-toggled') === -1 || option === 'disabled' && old_youtube_toggle.className.search('yt-uix-button-toggled') !== -1)) { - old_youtube_toggle.click(); - } - } - }, 250); - } -}; - - -/*----------------------------------------------------------------------------- -3.0 Shuffle ------------------------------------------------------------------------------*/ - -ImprovedTube.playlist_shuffle_wait = false; - -ImprovedTube.playlist_shuffle = function() { - if (this.isset(this.storage.playlist_shuffle) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { - ImprovedTube.playlist_shuffle_wait = setInterval(function() { - if ( - document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[1] || - document.querySelector('.playlist-nav-controls .shuffle-playlist') - ) { - clearInterval(ImprovedTube.playlist_shuffle_wait); - - ImprovedTube.playlist_shuffle_wait = false; - - var option = ImprovedTube.storage.playlist_shuffle, - new_youtube_toggle = document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer'), - old_youtube_toggle = document.querySelector('.playlist-nav-controls .shuffle-playlist'); - - if (new_youtube_toggle[1] && (option === true && new_youtube_toggle[1].className.search('style-default-active') === -1 || option === 'disabled' && new_youtube_toggle[1].className.search('style-default-active') !== -1)) { - new_youtube_toggle[1].click(); - } else if (old_youtube_toggle && (option === true && old_youtube_toggle.className.search('yt-uix-button-toggled') === -1 || option === 'disabled' && old_youtube_toggle.className.search('yt-uix-button-toggled') !== -1)) { - old_youtube_toggle.click(); - } - } - }, 250); - } -}; - - -/*----------------------------------------------------------------------------- -4.0 Up next autoplay ------------------------------------------------------------------------------*/ - -ImprovedTube.playlist_up_next_autoplay_f = function(event) { - if ( - ImprovedTube.getParam(location.href, 'list') && - ImprovedTube.storage.playlist_up_next_autoplay === false && - this.currentTime >= this.duration - 1 - ) { - this.pause(); - } -}; - -ImprovedTube.playlist_up_next_autoplay = function(player) { - player.querySelector('video').removeEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); - player.querySelector('video').addEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); -}; diff --git a/unstable/src/youtube/js/features/settings.js b/unstable/src/youtube/js/features/settings.js deleted file mode 100644 index 6bf3ee5c7..000000000 --- a/unstable/src/youtube/js/features/settings.js +++ /dev/null @@ -1,233 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> SETTINGS -------------------------------------------------------------------------------- -1.0 ImprovedTube icon on YouTube -2.0 Delete YouTube cookies -3.0 YouTube Language ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 ImprovedTube icon on YouTube ------------------------------------------------------------------------------*/ - -ImprovedTube.improvedtube_youtube_icon_wait = false; - -ImprovedTube.improvedtube_youtube_icon_resize = function() { - var iframe = document.querySelector('.it-btn__iframe'), - icon = document.querySelector('.it-btn__icon'); - - if (iframe && icon) { - var x = icon.getBoundingClientRect().x, - y = icon.getBoundingClientRect().y; - - if (x < window.innerWidth / 2) { - iframe.style.right = 'auto'; - iframe.style.left = '0px'; - } else { - iframe.style.right = '0px'; - iframe.style.left = 'auto'; - } - - if (y < window.innerHeight / 2) { - iframe.style.top = '50px'; - iframe.style.bottom = 'auto'; - - iframe.style.height = Math.min(500, window.innerHeight - Math.max(0, iframe.getBoundingClientRect().top) - 16) + 'px'; - } else { - iframe.style.top = 'auto'; - iframe.style.bottom = '50px'; - - iframe.style.height = Math.min(500, window.innerHeight - Math.max(0, window.innerHeight - iframe.getBoundingClientRect().y - iframe.getBoundingClientRect().height) - 16) + 'px'; - } - } -}; - -ImprovedTube.improvedtube_youtube_icon = function() { - if (window.self !== window.top) { - return false; - } - - if ( - ImprovedTube.storage.improvedtube_youtube_icon === 'disabled' && - document.querySelector('.it-btn') - ) { - document.querySelector('.it-btn').remove(); - } - - if (this.improvedtube_youtube_icon_wait === false) { - this.improvedtube_youtube_icon_wait = setInterval(function() { - var option = ImprovedTube.storage.improvedtube_youtube_icon, - parentNode, - referenceNode; - - if (option === 'header_left') { - parentNode = document.querySelector('ytd-masthead #start'); - referenceNode = document.querySelector('ytd-masthead #start #guide-button'); - } else if (option === 'header_right') { - parentNode = ( - document.querySelector('#end #buttons') || - document.querySelector('#yt-masthead-user') - ); - } else if (option === 'draggable') { - parentNode = document.body || document.querySelector('body'); - } else if (option === 'below_player') { - parentNode = ( - document.querySelector('.title.ytd-video-primary-info-renderer') || - document.querySelector('#watch-headline-title') - ); - } - - if (document.querySelector('.it-btn')) { - if (!parentNode.querySelector(':scope > .it-btn')) { - document.querySelector('.it-btn').remove(); - } else { - clearInterval(ImprovedTube.improvedtube_youtube_icon_wait); - - ImprovedTube.improvedtube_youtube_icon_wait = false; - - return false; - } - } - - if ( - ImprovedTube.isset(option) && - option !== 'disabled' && - parentNode && (option === 'header_left' ? referenceNode : true) - ) { - clearInterval(ImprovedTube.improvedtube_youtube_icon_wait); - - ImprovedTube.improvedtube_youtube_icon_wait = false; - - var button = document.createElement('div'); - - button.className = 'it-btn'; - button.innerHTML = '
'; - button.addEventListener('click', function() { - event.preventDefault(); - event.stopPropagation(); - - this.classList.toggle('it-btn--active'); - ImprovedTube.improvedtube_youtube_icon_resize(); - - return false; - }, true); - - if (option === 'draggable') { - var position = localStorage.getItem('IT_ICON'); - - if (ImprovedTube.isset(position)) { - position = JSON.parse(position); - - button.style.left = position.x + 'px'; - button.style.top = position.y + 'px'; - } - - function move(event) { - button.classList.add('it-btn--dragging'); - - if (event.clientX < window.innerWidth / 2) { - if (event.clientX - Number(button.dataset.x) >= 16) { - button.style.left = event.clientX - Number(button.dataset.x) + 'px'; - } else { - button.style.left = '16px'; - } - } else { - if (event.clientX + (48 + window.innerWidth - document.querySelector('body').offsetWidth) - Number(button.dataset.x) <= window.innerWidth) { - button.style.left = event.clientX - Number(button.dataset.x) + 'px'; - } else { - button.style.left = 'calc(100vw - ' + (48 + window.innerWidth - document.querySelector('body').offsetWidth) + 'px)'; - } - } - - if (event.clientY < window.innerHeight / 2) { - if (event.clientY - Number(button.dataset.y) >= 16) { - button.style.top = event.clientY - Number(button.dataset.y) + 'px'; - } else { - button.style.top = '16px'; - } - } else { - if (event.clientY + 48 - Number(button.dataset.y) <= window.innerHeight) { - button.style.top = event.clientY - Number(button.dataset.y) + 'px'; - } else { - button.style.top = 'calc(100vh - 48px)'; - } - } - - ImprovedTube.improvedtube_youtube_icon_resize(); - } - - button.addEventListener('mousedown', function(event) { - this.dataset.x = event.layerX; - this.dataset.y = event.layerY; - - window.addEventListener('mousemove', move); - }); - - window.addEventListener('mouseup', function() { - button.classList.remove('it-btn--dragging'); - - window.removeEventListener('mousemove', move); - - localStorage.setItem('IT_ICON', JSON.stringify({ - x: button.offsetLeft, - y: button.offsetTop - })); - - setTimeout(function() { - button.style.pointerEvents = ''; - }); - }); - } - - if (option === 'header_left') { - parentNode.insertBefore(button, referenceNode); - } else { - parentNode.appendChild(button); - } - - ImprovedTube.improvedtube_youtube_icon_resize(); - } - }, 250); - } -}; - - -/*----------------------------------------------------------------------------- -2.0 Delete YouTube cookies ------------------------------------------------------------------------------*/ - -ImprovedTube.delete_youtube_cookies = function() { - var cookies = document.cookie.split(';'); - - for (var i = 0, l = cookies.length; i < l; i++) { - var cookie = cookies[i], - eqPos = cookie.indexOf('='), - name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; - - document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; - } - - setTimeout(function() { - location.reload(); - }, 100); -}; - - -/*----------------------------------------------------------------------------- -3.0 YouTube Language ------------------------------------------------------------------------------*/ - -ImprovedTube.youtube_language = function() { - var pref = ImprovedTube.getCookieValueByName('PREF'), - hl = ImprovedTube.getParam(pref, 'hl'); - - if (hl) { - ImprovedTube.setCookie('PREF', pref.replace('hl=' + hl, 'hl=' + ImprovedTube.storage.youtube_language)); - } else { - ImprovedTube.setCookie('PREF', pref + '&hl=' + ImprovedTube.storage.youtube_language); - } - - setTimeout(function() { - location.reload(); - }, 100); -}; diff --git a/unstable/src/youtube/js/features/shortcuts.js b/unstable/src/youtube/js/features/shortcuts.js deleted file mode 100644 index 29acd0842..000000000 --- a/unstable/src/youtube/js/features/shortcuts.js +++ /dev/null @@ -1,400 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> SHORTCUTS -------------------------------------------------------------------------------- -1.0 Keyboard -2.0 Mouse ------------------------------------------------------------------------------*/ - -ImprovedTube.shortcuts = function() { - var self = this, - keys = {}, - wheel = 0, - hover = false, - status_timer; - - function showStatus(player, volume) { - if (!player.querySelector('#it-status')) { - var element = document.createElement('div'); - - element.id = 'it-status'; - element.innerHTML = volume; - - document.querySelector('.html5-video-container').appendChild(element); - } else { - player.querySelector('#it-status').innerHTML = volume; - } - - if (status_timer) { - clearTimeout(status_timer); - } - - status_timer = setTimeout(function() { - if (player.querySelector('#it-status')) { - player.querySelector('#it-status').remove(); - } - }, 500); - } - - function start(type = 'keys') { - if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || event.target.isContentEditable) { - return false; - } - - var features = { - shortcut_240p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('small'); - player.setPlaybackQuality('small'); - } - }, - shortcut_360p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('medium'); - player.setPlaybackQuality('medium'); - } - }, - shortcut_480p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('large'); - player.setPlaybackQuality('large'); - } - }, - shortcut_720p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd720'); - player.setPlaybackQuality('hd720'); - } - }, - shortcut_1080p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd1080'); - player.setPlaybackQuality('hd1080'); - } - }, - shortcut_1440p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd1440'); - player.setPlaybackQuality('hd1440'); - } - }, - shortcut_2160p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd2160'); - player.setPlaybackQuality('hd2160'); - } - }, - shortcut_2880p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd2880'); - player.setPlaybackQuality('hd2880'); - } - }, - shortcut_4320p: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('highres'); - player.setPlaybackQuality('highres'); - } - }, - shortcut_picture_in_picture: function() { - var video = document.querySelector('#movie_player video'); - - if (video) { - video.requestPictureInPicture(); - } - }, - shortcut_play_pause: function() { - var video = document.querySelector('#movie_player video'); - - if (video) { - if (video.paused) { - video.play(); - } else { - video.pause(); - } - } - }, - shortcut_stop: function() { - var player = document.querySelector('#movie_player'); - - if (player) { - player.stopVideo(); - } - }, - shortcut_next_video: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.nextVideo) { - player.nextVideo(); - } - }, - shortcut_prev_video: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.previousVideo) { - player.previousVideo(); - } - }, - shortcut_seek_backward: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.seekBy) { - player.seekBy(-10); - } - }, - shortcut_seek_forward: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.seekBy) { - player.seekBy(10); - } - }, - shortcut_increase_volume: function() { - var player = document.querySelector('.html5-video-player'); - - if (player && player.setVolume && player.getVolume) { - player.setVolume(player.getVolume() + (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); - } - - showStatus(player, player.getVolume()); - }, - shortcut_decrease_volume: function() { - var player = document.querySelector('.html5-video-player'); - - if (player && player.setVolume && player.getVolume) { - player.setVolume(player.getVolume() - (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); - } - - showStatus(player, player.getVolume()); - }, - shortcut_screenshot: function() { - var player = document.querySelector('.html5-video-player'); - - if (player && player.setVolume && player.getVolume) { - ImprovedTube.screenshot(); - } - }, - shortcut_increase_playback_speed: function() { - var video = document.querySelector('#movie_player video'); - - if (video && video.playbackRate) { - video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step)).toFixed(2)), .1); - - showStatus(document.querySelector('#movie_player'), video.playbackRate); - } - }, - shortcut_decrease_playback_speed: function() { - var video = document.querySelector('#movie_player video'); - - if (video && video.playbackRate) { - video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step)).toFixed(2)), .1); - - showStatus(document.querySelector('#movie_player'), video.playbackRate); - } - }, - shortcut_go_to_search_box: function() { - var search = document.querySelector('#search'); - - if (search && search.focus) { - search.focus(); - } - }, - shortcut_activate_fullscreen: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.toggleFullscreen) { - player.toggleFullscreen(); - } - }, - shortcut_activate_captions: function() { - var player = document.querySelector('#movie_player'); - - if (player && player.querySelector('.ytp-subtitles-button')) { - player.querySelector('.ytp-subtitles-button').click(); - } - }, - shortcut_like_shortcut: function() { - var like = (document.querySelectorAll('.like-button-renderer-like-button')[0] || document.querySelectorAll('#menu #top-level-buttons ytd-toggle-button-renderer')[0]); - - if (like) { - like.click(); - } - }, - shortcut_dislike_shortcut: function() { - var like = (document.querySelectorAll('.like-button-renderer-dislike-button')[0] || document.querySelectorAll('#menu #top-level-buttons ytd-toggle-button-renderer')[1]); - - if (like) { - like.click(); - } - }, - shortcut_dark_theme: function() { - if (document.documentElement.hasAttribute('dark')) { - document.documentElement.removeAttribute('dark'); - document.documentElement.removeAttribute('it-theme'); - } else { - document.documentElement.setAttribute('dark', ''); - document.documentElement.setAttribute('it-theme', 'true'); - } - }, - shortcut_custom_mini_player: function() { - ImprovedTube.storage.mini_player = !ImprovedTube.storage.mini_player; - - ImprovedTube.mini_player(); - - if (ImprovedTube.storage.mini_player === true) { - ImprovedTube.mini_player__mode = true; - - ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; - ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; - - ImprovedTube.mini_player__element.classList.add('it-mini-player'); - - ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); - ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); - - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); - - window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - - window.dispatchEvent(new Event('resize')); - } - }, - shortcut_stats_for_nerds: function() { - var player = document.querySelector('#movie_player'); - - if(player) { - if(player.querySelector('.html5-video-info-panel')) { - var statsForNerdsPanel = player.querySelector('.html5-video-info-panel'); - var displayType = statsForNerdsPanel.style.display; - - if(displayType != 'none') { - statsForNerdsPanel.querySelector('.html5-video-info-panel-close').click(); - } else { - var rightClickMenu = document.querySelector('.ytp-popup.ytp-contextmenu .ytp-panel .ytp-panel-menu'); - - if(rightClickMenu && rightClickMenu.querySelector('div:nth-child(7)')) { - rightClickMenu.querySelector('div:nth-child(7) .ytp-menuitem-content').click(); - } - } - } else { - if(document.createEvent) { - var rightClickEvent = document.createEvent('HTMLEvents'); - rightClickEvent.initEvent('contextmenu', true, false); - player.dispatchEvent(rightClickEvent); - } - var rightClickMenu = document.querySelector('.ytp-popup.ytp-contextmenu .ytp-panel .ytp-panel-menu'); - - if(rightClickMenu && rightClickMenu.querySelector('div:nth-child(7)')) { - rightClickMenu.querySelector('div:nth-child(7) .ytp-menuitem-content').click(); - } - } - } - }, - shortcut_toggle_cards: function() { - const html = document.getElementsByTagName("html")[0]; - if(html.getAttribute("it-player-hide-cards") === "true") { - html.setAttribute("it-player-hide-cards", "false"); - } else { - html.setAttribute("it-player-hide-cards", true); - } - } - }; - - for (var i in features) { - if (self.isset(self.storage[i])) { - var data = JSON.parse(self.storage[i]) || {}; - - if ( - (data.key === keys.key || !self.isset(data.key)) && - (data.shiftKey === keys.shiftKey || !self.isset(data.shiftKey)) && - (data.ctrlKey === keys.ctrlKey || !self.isset(data.ctrlKey)) && - (data.altKey === keys.altKey || !self.isset(data.altKey)) && - ((data.wheel > 0) === (wheel > 0) || !self.isset(data.wheel)) && - (((data.on_top_of_player === true ? hover === true : true) && (data.wheel > 0) === (wheel > 0) && Object.keys(keys).length === 0 && keys.constructor === Object) || (self.isset(data.key) || self.isset(data.altKey) || self.isset(data.ctrlKey))) - ) { - if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { - event.preventDefault(); - event.stopPropagation(); - } - - features[i](); - - if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { - return false; - } - } - } - } - } - - - /*------------------------------------------------------------------------- - 1.0 Keyboard - -------------------------------------------------------------------------*/ - - window.addEventListener('keydown', function(event) { - keys = { - key: event.key, - keyCode: event.keyCode, - shiftKey: event.shiftKey, - ctrlKey: event.ctrlKey, - altKey: event.altKey - }; - - start(); - }, true); - - window.addEventListener('keyup', function(event) { - keys = {}; - }, true); - - - /*------------------------------------------------------------------------- - 2.0 Mouse - -------------------------------------------------------------------------*/ - - window.addEventListener('mousemove', function(event) { - hover = false; - - for (var i = 0, l = event.path.length; i < l; i++) { - if (event.path[i].classList && event.path[i].classList.contains('html5-video-player')) { - hover = true; - } - } - }, { - passive: false, - capture: true - }); - - window.addEventListener('wheel', function(event) { - wheel = event.deltaY; - - start('wheel'); - }, { - passive: false, - capture: true - }); -}; diff --git a/unstable/src/youtube/js/features/themes.js b/unstable/src/youtube/js/features/themes.js deleted file mode 100644 index 302fea23a..000000000 --- a/unstable/src/youtube/js/features/themes.js +++ /dev/null @@ -1,237 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> THEMES -------------------------------------------------------------------------------- -1.0 Bluelight -2.0 Dim -3.0 Themes ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Bluelight ------------------------------------------------------------------------------*/ - -ImprovedTube.bluelight = function() { - var value = this.storage.bluelight, - times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); - - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; - } - - if ( - this.isset(value) && value !== 0 && value !== '0' && - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) - ) { - if (!document.querySelector('#it-bluelight')) { - var container = document.createElement('div'); - - container.id = 'it-bluelight'; - container.innerHTML = ''; - - document.documentElement.appendChild(container); - } else { - document.querySelector('#it-bluelight-filter feColorMatrix').setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 ' + (1 - parseFloat(value) / 100) + ' 0 0 0 0 0 1 0'); - } - } else if (document.querySelector('#it-bluelight')) { - document.querySelector('#it-bluelight').remove(); - } -}; - - -/*----------------------------------------------------------------------------- -2.0 Dim ------------------------------------------------------------------------------*/ - -ImprovedTube.dim = function() { - var value = this.storage.dim, - times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); - - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; - }; - - if ( - this.isset(value) && value !== 0 && value !== '0' && - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) - ) { - if (!document.querySelector('#it-dim')) { - var container = document.createElement('div'); - - container.id = 'it-dim'; - container.style.opacity = parseInt(Number(value)) / 100 || 0; - - document.documentElement.appendChild(container); - } else { - document.querySelector('#it-dim').style.opacity = parseInt(Number(value)) / 100 || 0; - } - - if (!document.querySelector('#it-dim-player')) { - var container = document.createElement('div'); - - container.id = 'it-dim-player'; - container.style.opacity = parseInt(Number(value)) / 100 || 0; - - if (document.querySelector('.html5-video-player')) { - document.querySelector('.html5-video-player').appendChild(container); - } - } else { - document.querySelector('#it-dim-player').style.opacity = parseInt(Number(value)) / 100 || 0; - } - } else { - if (document.querySelector('#it-dim')) { - document.querySelector('#it-dim').remove(); - } - - if (document.querySelector('#it-dim-player')) { - document.querySelector('#it-dim-player').remove(); - } - } -}; - - -ImprovedTube.font = function() { - if (this.storage.font) { - if(this.storage.font != 'Default') { - if (!document.querySelector('.it-font-family')) { - var link = document.createElement('link'); - - link.rel = 'stylesheet'; - - document.documentElement.appendChild(link); - } else { - var link = document.querySelector('.it-font-family'); - } - - link.href = '//fonts.googleapis.com/css2?family=' + this.storage.font; - - document.documentElement.style.fontFamily = this.storage.font.replace(/\+/g, ' '); - } - } -}; - - -/*----------------------------------------------------------------------------- -3.0 Themes ------------------------------------------------------------------------------*/ - -ImprovedTube.theme = function() { - var times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); - - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; - } - - if ( - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) && - ( - this.isset(ImprovedTube.storage.default_dark_theme) && ImprovedTube.storage.default_dark_theme !== false - || - this.isset(ImprovedTube.storage.night_theme) && ImprovedTube.storage.night_theme !== false - || - this.isset(ImprovedTube.storage.dawn_theme) && ImprovedTube.storage.dawn_theme !== false - || - this.isset(ImprovedTube.storage.sunset_theme) && ImprovedTube.storage.sunset_theme !== false - || - this.isset(ImprovedTube.storage.desert_theme) && ImprovedTube.storage.desert_theme !== false - || - this.isset(ImprovedTube.storage.plain_theme) && ImprovedTube.storage.plain_theme !== false - || - this.isset(ImprovedTube.storage.black_theme) && ImprovedTube.storage.black_theme !== false - ) - ) { - var PREF_OLD = this.getParams(this.getCookieValueByName('PREF')), - PREF = this.getParams(this.getCookieValueByName('PREF')), - result = ''; - - if (!this.isset(PREF.f6) || this.isset(PREF.f6) && PREF.f6.length !== 3) { - PREF.f6 = '400'; - } else if (PREF.f6.length === 3) { - PREF.f6 = '4' + PREF.f6.substr(1); - } - - for (var i in PREF) { - result += i + '=' + PREF[i] + '&'; - } - - this.setCookie('PREF', result.slice(0, -1)); - - document.documentElement.setAttribute('it-theme', 'true'); - } else { - document.documentElement.removeAttribute('it-theme'); - } -}; - - -ImprovedTube.themeEditor = function() { - if (this.storage.theme_my_colors !== true) { - if (document.querySelector('.it-theme-editor')) { - document.querySelector('.it-theme-editor').remove(); - } - - return false; - } - - var style = document.querySelector('.it-theme-editor') || document.createElement('style'); - - style.className = 'it-theme-editor'; - style.innerText = 'html{' + - '--yt-swatch-textbox-bg:rgba(19,19,19,1)!important;' + - '--yt-swatch-icon-color:rgba(136,136,136,1)!important;' + - '--yt-spec-brand-background-primary:rgba(0,0,0, 0.1) !important;' + - '--yt-spec-brand-background-secondary:rgba(0,0,0, 0.1) !important;' + - '--yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important;' + - '--yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important;' + - '--yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important;' + - '--yt-spec-brand-button-background:rgba(136,136,136,1) !important;' + - '--yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important;' + - '--yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important;' + - '--yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important;' + - '--yt-spec-10-percent-layer:rgba(136,136,136,1) !important;' + - '--yt-swatch-primary:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-swatch-primary-darker:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-brand-background-solid:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-a:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-b:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-c:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-touch-response:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-swatch-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-important-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-input-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-logo-override: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-spec-text-primary:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-primary-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-secondary:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-active-other:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-filled-button-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-call-to-action-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-icon-active:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-link-text:' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-spec-brand-subscribe-button-background:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-wordmark-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-selected-nav-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '}'; - - document.documentElement.appendChild(style); -} diff --git a/unstable/src/youtube/js/features/volume-mixer.js b/unstable/src/youtube/js/features/volume-mixer.js deleted file mode 100644 index 557198065..000000000 --- a/unstable/src/youtube/js/features/volume-mixer.js +++ /dev/null @@ -1,11 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> VOLUME MIXER -------------------------------------------------------------------------------- -1.0 Inject ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Inject ------------------------------------------------------------------------------*/ - -ImprovedTube.volumeMixer = function() {}; \ No newline at end of file diff --git a/unstable/src/youtube/js/functions.js b/unstable/src/youtube/js/functions.js deleted file mode 100644 index 8d195cc6c..000000000 --- a/unstable/src/youtube/js/functions.js +++ /dev/null @@ -1,102 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> FUNCTIONS -------------------------------------------------------------------------------- -1.0 ------------------------------------------------------------------------------*/ - -function injectScript(string) { - var script = document.createElement('script'); - - script.textContent = string; - - document.documentElement.appendChild(script); - - script.remove(); -} - -function injectStyle(string, id) { - var style = document.getElementById(id) || document.createElement('style'); - - style.textContent = string; - - document.documentElement.appendChild(style); -} - -ImprovedTube.isset = function(variable) { - if (typeof variable === 'undefined' || variable === null) { - return false; - } - - return true; -}; - -ImprovedTube.getCookieValueByName = function(name) { - var match = document.cookie.match(new RegExp('([; ]' + name + '|^' + name + ')([^\\s;]*)', 'g')); - - if (match) { - var cookie = match[0]; - - return cookie.replace(name + '=', '').replace(' ', ''); - } else - return ''; -}; - -ImprovedTube.getParam = function(query, name) { - var params = query.split('&'), - param = false; - - for (var i = 0; i < params.length; i++) { - params[i] = params[i].split('='); - - if (params[i][0] == name) { - param = params[i][1]; - } - } - - if (param) { - return param; - } else { - return false; - } -}; - -ImprovedTube.getParams = function(query) { - var params = query.split('&'), - result = {}; - - for (var i = 0, l = params.length; i < l; i++) { - params[i] = params[i].split('='); - - result[params[i][0]] = params[i][1]; - } - - return result; -}; - -ImprovedTube.setCookie = function(name, value) { - var date = new Date(); - - date.setTime(date.getTime() + 3.154e+10); - - document.cookie = name + '=' + value + '; path=/; domain=.youtube.com; expires=' + date.toGMTString(); -}; - -ImprovedTube.pageType = function() { - var href = location.href, - type = ''; - - if (location.pathname == '/') { - type = 'home'; - } else if (/\/watch\?/.test(href)) { - type = 'video'; - } else if (/\/channel|user\//.test(href)) { - type = 'channel'; - } - - document.documentElement.setAttribute('it-page-type', type); -}; - - -chrome.runtime.sendMessage({ - enabled: true -}); \ No newline at end of file diff --git a/unstable/src/youtube/js/injection.js b/unstable/src/youtube/js/injection.js deleted file mode 100644 index 3449f4fd6..000000000 --- a/unstable/src/youtube/js/injection.js +++ /dev/null @@ -1,142 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> INJECTION -------------------------------------------------------------------------------- -1.0 Initialization -2.0 Storage listener -3.0 Message listener ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -1.0 Initialization ------------------------------------------------------------------------------*/ - -chrome.storage.local.get(function(items) { - var content = 'var ImprovedTube={'; - - if (typeof items.player_volume === 'string') { - items.player_volume = Number(items.player_volume); - } - - if (!items.hasOwnProperty('header_position')) { - items.header_position = 'normal'; - } - - if (!items.hasOwnProperty('player_size')) { - items.player_size = 'do_not_change'; - } - - if (items.bluelight === '0') { - items.bluelight = 0; - } - - if (items.dim === '0') { - items.dim = 0; - } - - if (items.custom_js && items.custom_js.length > 0) { - injectScript('try{' + items.custom_js + '} catch (err) { console.error(err); }'); - } - - if (items.custom_css && items.custom_css.length > 0) { - injectStyle(items.custom_css, 'it-custom-css'); - } - - withoutInjection(items); - - content += 'storage:' + JSON.stringify(items); - - for (var key in items) { - document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), items[key]); - } - - for (var key in ImprovedTube) { - content += ',' + key + ':' + ImprovedTube[key]; - } - - content += '};ImprovedTube.init();'; - - injectScript(content); -}); - - -/*----------------------------------------------------------------------------- -2.0 Storage listener ------------------------------------------------------------------------------*/ - -chrome.storage.onChanged.addListener(function(changes) { - for (var key in changes) { - var value = changes[key].newValue; - - if (['watched'].indexOf(key) === -1) { - document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), value); - - injectScript('ImprovedTube.storage[\'' + key + '\']=' + (typeof value === 'boolean' ? value : '\'' + value + '\'') + ';'); - - if (typeof ImprovedTube[key] === 'function') { - injectScript('ImprovedTube.' + key + '();'); - } - - if (key === 'schedule' || key === 'schedule_time_from' || key === 'schedule_time_to') { - injectScript('ImprovedTube.bluelight();'); - injectScript('ImprovedTube.dim();'); - injectScript('ImprovedTube.theme();'); - } - - if (key.indexOf('theme') !== -1){ - injectScript('ImprovedTube.theme();'); - } - - if (key === 'theme_primary_color' || key === 'theme_text_color') { - injectScript('ImprovedTube.themeEditor();'); - } - - if (['custom_css'].indexOf(key) !== -1 && value.length > 0) { - injectStyle(value, 'it-custom-css'); - } else if (document.querySelector('#it-custom-css')) { - document.querySelector('#it-custom-css').remove(); - } - } - } -}); - - -/*----------------------------------------------------------------------------- -3.0 Message listener ------------------------------------------------------------------------------*/ - -chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { - var name = request.name || '', - value = request.value; - - if (name === 'improvedtube-play') { - if (request.id && request.id !== new URL(location.href).searchParams.get('v')) { - injectScript(['if (document.querySelector(".html5-video-player") && !ImprovedTube.focused && ImprovedTube.storage.only_one_player_instance_playing) { document.querySelector(".html5-video-player").pauseVideo();}']); - } - } else if (name == 'request_volume' && document.querySelector('video')) { - sendResponse({ - value: document.querySelector('video').volume * 100 - }); - } else if (name == 'change_volume') { - injectScript(['if(document.querySelector(".html5-video-player")){document.querySelector(".html5-video-player").setVolume(' + request.volume + ');}'], 'improvedtube-mixer-data'); - } else if (name == 'request_playback_speed' && document.querySelector('video')) { - sendResponse({ - value: document.querySelector('video').playbackRate - }); - } else if (name == 'change_playback_speed') { - injectScript(['if(document.querySelector(".html5-video-player video")){document.querySelector(".html5-video-player video").playbackRate = ' + request.playback_speed + ';}'], 'improvedtube-mixer-data'); - } else if (name === 'delete_youtube_cookies') { - var cookies = document.cookie.split(';'); - - for (var i = 0; i < cookies.length; i++) { - var cookie = cookies[i], - eqPos = cookie.indexOf('='), - name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; - - document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; - } - - setTimeout(function() { - location.reload(); - }, 250); - } -}); diff --git a/unstable/src/youtube/js/migration.js b/unstable/src/youtube/js/migration.js deleted file mode 100644 index 0405ef9cd..000000000 --- a/unstable/src/youtube/js/migration.js +++ /dev/null @@ -1,537 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> MIGRATION -------------------------------------------------------------------------------- -1.0 General - 1.1 Legacy YouTube - 1.2 YouTube Home Page - 1.3 Add «Scroll to top» - 1.4 Hide animated thumbnails - 1.5 Confirmation before closing -2.0 Appearance - 2.1 Header - 2.1.1 Header style - 2.1.2 Improve logo - 2.2 Player - 2.2.1 Annotations - 2.2.2 Cards - 2.2.3 Player size - 2.3 Footer - 2.3.5 Hide footer -3.0 Themes -4.0 Player - 4.1 Quality - 4.2 Volume - 4.3 Playback speed - 4.4 Autoplay - 4.5 Allow 60fps - 4.6 Codec h.264 - 4.7 Subtitles - 4.8 Loudness normalization - 4.9 Mini player - 4.10 Ads - 4.11 Autopause - 4.12 Auto-fullscreen - 4.13 Repeat button - 4.14 Screenshot button - 4.15 Rotate button - 4.16 Popup button -5.0 Playlist - 5.1 Repeat - 5.2 Shuffle -6.0 Channel - 6.1 Default tab - 6.2 Trailer autoplay - 6.3 Hide featured content ------------------------------------------------------------------------------*/ - -chrome.storage.local.get(function(object) { - if (object.migrated !== true) { - for (var key in object) { - var value = object[key]; - - if (value === 'true') { - object[key] = true; - } else if (value === 'false') { - object[key] = false; - } - - /*--------------------------------------------------------------------- - 1.0 General - ---------------------------------------------------------------------*/ - - /*--------------------------------------------------------------------- - 1.1 Legacy YouTube - ---------------------------------------------------------------------*/ - - if (key === 'youtube_version') { - if (value === 'old') { - object.legacy_youtube = true; - } else { - object.legacy_youtube = false; - } - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 1.2 YouTube Home Page - ---------------------------------------------------------------------*/ - else if (key === 'youtube_home_page') { - if (value === 'normal') { - object[key] = '/'; - } else if (value === 'trending') { - object[key] = '/feed/trending'; - } else if (value === 'subscriptions') { - object[key] = '/feed/subscriptions'; - } else if (value === 'history') { - object[key] = '/feed/history'; - } else if (value === 'watch_later') { - object[key] = '/playlist?list=WL'; - } - } - - - /*--------------------------------------------------------------------- - 1.3 Add «Scroll to top» - ---------------------------------------------------------------------*/ - else if (key === 'scroll_to_top') { - if (value === 'true') { - object.add_scroll_to_top = true; - } else { - object.add_scroll_to_top = false; - } - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 1.4 Hide animated thumbnails - ---------------------------------------------------------------------*/ - else if (key === 'play_videos_by_hovering_the_thumbnails') { - if (value === 'false') { - object.hide_animated_thumbnails = true; - } else { - object.hide_animated_thumbnails = false; - } - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 1.5 Confirmation before closing - ---------------------------------------------------------------------*/ - else if (key === 'youtube_prevent_closure') { - if (value === 'true') { - object.confirmation_before_closing = true; - } - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 2.0 Appearance - ---------------------------------------------------------------------*/ - - /*--------------------------------------------------------------------- - 2.1 Header - ---------------------------------------------------------------------*/ - - /*--------------------------------------------------------------------- - 2.1.1 Header style - ---------------------------------------------------------------------*/ - else if (key === 'header') { - if (value === 'top_of_page') { - object.header_position = 'static'; - } else { - object.header_position = value; - } - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 2.1.2 Improve logo - ---------------------------------------------------------------------*/ - else if (key === 'improve_youtube_logo') { - object.header_improve_logo = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 2.2 Player - ---------------------------------------------------------------------*/ - - /*--------------------------------------------------------------------- - 2.2.1 Annotations - ---------------------------------------------------------------------*/ - else if (key === 'annotations') { - object.player_hide_annotations = value; - - delete object[key]; - } - - /*--------------------------------------------------------------------- - 2.2.2 Cards - ---------------------------------------------------------------------*/ - else if (key === 'cards') { - object.player_hide_cards = value; - - delete object[key]; - } - - /*--------------------------------------------------------------------- - 2.2.3 Transparent background - ---------------------------------------------------------------------*/ - else if (key === 'transparent_background') { - object.player_transparent_background = value; - - delete object[key]; - } - - /*--------------------------------------------------------------------- - 2.2.4 Endscreen - ---------------------------------------------------------------------*/ - else if (key === 'endscreen') { - object.player_hide_endscreen = value; - - delete object[key]; - } - - /*--------------------------------------------------------------------- - 2.3 Footer - ---------------------------------------------------------------------*/ - - /*--------------------------------------------------------------------- - 2.3.5 Hide footer - ---------------------------------------------------------------------*/ - else if (key === 'footer') { - object.hide_footer = value === 'hidden' ? true : false; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 3.0 Themes - ---------------------------------------------------------------------*/ - else if (key === 'it_theme') { - object.theme = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.0 Player - ---------------------------------------------------------------------*/ - - /*--------------------------------------------------------------------- - 4.1 Quality - ---------------------------------------------------------------------*/ - else if (key === 'video_quality') { - object.player_quality = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.2 Volume - ---------------------------------------------------------------------*/ - else if (key === 'video_volume') { - object.player_volume = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.3 Playback speed - ---------------------------------------------------------------------*/ - else if (key === 'video_playback_speed') { - object.player_playback_speed = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.4 Autoplay - ---------------------------------------------------------------------*/ - else if (key === 'video_autoplay') { - object.player_autoplay = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.5 Allow 60fps - ---------------------------------------------------------------------*/ - else if (key === 'allow_60fps') { - object.player_60fps = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.6 Video codec h.264 - ---------------------------------------------------------------------*/ - else if (key === 'video_encode') { - object.player_h264 = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.7 Allow subtitles - ---------------------------------------------------------------------*/ - else if (key === 'allow_subtitles') { - object.player_subtitles = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.8 Loudness normalization - ---------------------------------------------------------------------*/ - else if (key === 'allow_loudness') { - object.player_loudness_normalization = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.8 Mini player - ---------------------------------------------------------------------*/ - else if (key === 'mini_player_b') { - object.mini_player = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.9 Ads - ---------------------------------------------------------------------*/ - else if (key === 'allow_video_ads') { - object.player_ads = 'all_videos'; - - delete object[key]; - } else if (key === 'subscribed_channel_player_ads' && value === true) { - object.player_ads = 'subscribed_channels'; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.10 Autopause - ---------------------------------------------------------------------*/ - else if (key === 'video_autopause') { - object.player_autopause = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.11 Auto-fullscreen - ---------------------------------------------------------------------*/ - else if (key === 'video_autofullscreen') { - object.player_autofullscreen = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.12 Repeat button - ---------------------------------------------------------------------*/ - else if (key === 'video_repeat_button') { - object.player_repeat_button = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.13 Screenshot button - ---------------------------------------------------------------------*/ - else if (key === 'screenshot_button') { - object.player_screenshot_button = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.14 Rotate button - ---------------------------------------------------------------------*/ - else if (key === 'video_rotate_button') { - object.player_rotate_button = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 4.15 Popup button - ---------------------------------------------------------------------*/ - else if (key === 'popup_player_button') { - object.player_popup_button = value; - - delete object[key]; - } - - - /*--------------------------------------------------------------------- - 5.0 Playlist - ---------------------------------------------------------------------*/ - - /*--------------------------------------------------------------------- - 5.1 Repeat - ---------------------------------------------------------------------*/ - else if (key === 'playlist_repeat') { - if (value === 'enabled') { - object.playlist_repeat = true; - } else if (value === 'disabled') { - object.playlist_repeat = false; - } - } - - /*--------------------------------------------------------------------- - 5.2 Shuffle - ---------------------------------------------------------------------*/ - else if (key === 'playlist_shuffle') { - if (value === 'enabled') { - object.playlist_repeat = true; - } else if (value === 'disabled') { - object.playlist_repeat = false; - } - } - - - /*--------------------------------------------------------------------- - 6.0 Channel - ---------------------------------------------------------------------*/ - - /*--------------------------------------------------------------------- - 6.1 Default tab - ---------------------------------------------------------------------*/ - else if (key === 'channel_default_page') { - if (value === 'normal') { - object.channel_default_tab = '/'; - } else { - object.channel_default_tab = '/' + value; - } - } - - /*--------------------------------------------------------------------- - 6.2 Trailer autoplay - ---------------------------------------------------------------------*/ - else if (key === 'channel_autoplay') { - object.channel_trailer_autoplay = value; - - delete object[key]; - } - - /*--------------------------------------------------------------------- - 6.3 Hide featured content - ---------------------------------------------------------------------*/ - else if (key === 'channel_featured_content') { - object.channel_hide_featured_content = value; - - delete object[key]; - } - } - - object.migrated = true; - - chrome.storage.local.clear(); - chrome.storage.local.set(object); - } - - if (object.bluelight_removed !== true && (object.bluelight || object.bluelight === 0)) { - object.bluelight_removed = true; - - delete object.bluelight; - - chrome.storage.local.clear(); - chrome.storage.local.set(object); - - location.reload(); - } - - if (object.player_size_migrated !== true && object.player_size) { - object.player_size_migrated = true; - - if ( - [ - 'do_not_change', - 'full_window', - 'fit_to_window', - '240p', - '360p', - '480p', - '576p', - '720p', - '1080p', - '1440p', - '2160p' - ].indexOf(object.player_size) === -1 - ) { - if (object.player_size === 'fit_window') { - object.player_size = 'fit_to_window'; - } else { - object.player_size = 'do_not_change'; - } - } - - chrome.storage.local.clear(); - chrome.storage.local.set(object); - - location.reload(); - } - - if (object.hasOwnProperty('legacy_youtube') && object.legacy_youtube_migration !== true) { - object.legacy_youtube_migration = true; - - if (object.legacy_youtube === true) { - object.legacy_youtube = 'enabled'; - } else if (object.legacy_youtube === false) { - object.legacy_youtube = 'disabled'; - } - - chrome.storage.local.clear(); - chrome.storage.local.set(object); - - location.reload(); - } - - if (object.hasOwnProperty('legacy_youtube') && object.legacy_youtube_migration2 !== true) { - object.legacy_youtube_migration2 = true; - - if (object.legacy_youtube === 'enabled' || object.legacy_youtube === 'enabledForced') { - object.legacy_youtube = true; - } else if (object.legacy_youtube === 'disabled') { - object.legacy_youtube = false; - } - - chrome.storage.local.clear(); - chrome.storage.local.set(object); - - location.reload(); - } -}); \ No newline at end of file diff --git a/unstable/src/youtube/js/mutations.js b/unstable/src/youtube/js/mutations.js deleted file mode 100644 index a5769d5b7..000000000 --- a/unstable/src/youtube/js/mutations.js +++ /dev/null @@ -1,158 +0,0 @@ -/*----------------------------------------------------------------------------- ->>> MUTATIONS -------------------------------------------------------------------------------- -1.0 Mutations - 1.1 JSON.parse - 1.2 HTMLMediaElement.play -3.0 Player vars -4.0 ytPlayerApplicationCreateMod ------------------------------------------------------------------------------*/ - -document.addEventListener('ImprovedTubePlayVideo', function(event) { - if (chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-play', - id: new URL(location.href).searchParams.get('v') - }); - } -}); - -/*----------------------------------------------------------------------------- -1.0 Mutations ------------------------------------------------------------------------------*/ - -ImprovedTube.mutations = function() { - /*------------------------------------------------------------------------- - 1.1 JSON.parse - -------------------------------------------------------------------------*/ - JSON.parse = (function(original) { - return function(text, reviver, bypass) { - var temp = original.apply(this, arguments); - - if (!bypass && temp && temp.player && temp.player.args) { - temp.player.args = ImprovedTube.changeArgs(temp.player.args); - } - - return temp; - }; - }(JSON.parse)); - - /*------------------------------------------------------------------------- - 1.2 HTMLMediaElement.play - -------------------------------------------------------------------------*/ - HTMLMediaElement.prototype.play = (function(original) { - return function() { - var self = this; - - if (ImprovedTube.videoUrl !== location.href) { - ImprovedTube.allow_autoplay = false; - } - - if ( - ImprovedTube.autoplay() === false && - ImprovedTube.allow_autoplay === false && - this.parentNode.parentNode.classList.contains('ad-showing') === false - ) { - setTimeout(function() { - self.parentNode.parentNode.pauseVideo(); - }); - - return; - } else if (self.paused === true && ImprovedTube.videoUrl !== location.href) { - ImprovedTube.playerUpdate(self.parentNode.parentNode, true); - } - - if (ImprovedTube.videoUrl !== location.href) { - ImprovedTube.videoUrl = location.href; - } - - ImprovedTube.player_loudness_normalization(); - - return original.apply(this, arguments); - } - })(HTMLMediaElement.prototype.play); -}; - - -/*----------------------------------------------------------------------------- -1.0 Change args ------------------------------------------------------------------------------*/ - -ImprovedTube.changeArgs = function(args) { - if (ImprovedTube.isset(args)) { - // Ads - if ( - ImprovedTube.storage.player_ads === 'block_all' || - ImprovedTube.storage.player_ads === 'subscribed_channels' && (args.player_response || '').indexOf('subscribed=1') === -1 - ) { - delete args.ad3_module; - - if (args.player_response) { - var player_response = JSON.parse(args.player_response); - - if (player_response && player_response.adPlacements) { - delete player_response.adPlacements; - delete player_response.playerAds; - - args.player_response = JSON.stringify(player_response); - } - } - } - - // 60 fps - if (ImprovedTube.storage.player_60fps === false && args.adaptive_fmts) { - var key_type = args.adaptive_fmts.indexOf(',') > -1 ? ',' : '%2C', - list = args.adaptive_fmts.split(key_type); - - for (var i = 0; i < list.length; i++) { - var fps = list[i].split(/fps(?:=|%3D)([0-9]{2})/); - - fps = fps && fps[1]; - - if (fps > 30) - list.splice(i--, 1); - } - - args.adaptive_fmts = list.join(key_type); - } - - // SUBTITLES - if (ImprovedTube.storage.player_subtitles === false && args.caption_audio_tracks) { - args.caption_audio_tracks = args.caption_audio_tracks.split(/&d=[0-9]|d=[0-9]&/).join(''); - } - } - - return args; -}; - - -/*----------------------------------------------------------------------------- -3.0 Player vars ------------------------------------------------------------------------------*/ - -ImprovedTube.playerVars = function(original) { - var context = this; - - return function(args) { - var temp; - - args = ImprovedTube.changeArgs(args); - - temp = original.apply(this, arguments); - - return temp; - }; -}; - - -/*----------------------------------------------------------------------------- -4.0 ytPlayerApplicationCreateMod ------------------------------------------------------------------------------*/ - -ImprovedTube.ytPlayerApplicationCreateMod = function(original) { - return function(api_name, config) { - config.args = ImprovedTube.changeArgs(config.args); - - return original.apply(this, arguments); - }; -}; From 4fd3c0e3b9b2d86f957eef1cc09506a7b8b7b23e Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 28 Dec 2020 15:16:09 +0300 Subject: [PATCH 0013/1224] Removed v3.120-pre --- _locales/ar/messages.json | 809 ++++ _locales/bn/messages.json | 809 ++++ _locales/de/messages.json | 809 ++++ _locales/el/messages.json | 809 ++++ _locales/en/messages.json | 812 ++++ _locales/es/messages.json | 809 ++++ _locales/fr/messages.json | 809 ++++ _locales/hin/messages.json | 809 ++++ _locales/id/messages.json | 806 ++++ _locales/it/messages.json | 806 ++++ _locales/ja/messages.json | 809 ++++ _locales/ko/messages.json | 806 ++++ _locales/nb_NO/messages.json | 812 ++++ _locales/nl/messages.json | 809 ++++ _locales/no/messages.json | 800 ++++ _locales/pt_BR/messages.json | 809 ++++ _locales/pt_PT/messages.json | 809 ++++ _locales/ru/messages.json | 809 ++++ _locales/sk/messages.json | 809 ++++ _locales/tr/messages.json | 809 ++++ _locales/zh_CN/messages.json | 815 ++++ _locales/zh_TW/messages.json | 809 ++++ assets/fonts/OpenSans-Regular.ttf | Bin 0 -> 96932 bytes assets/fonts/OpenSans-SemiBold.ttf | Bin 0 -> 100820 bytes assets/icons/128.png | Bin 0 -> 3060 bytes assets/icons/128g.png | Bin 0 -> 2569 bytes assets/icons/16.png | Bin 0 -> 645 bytes assets/icons/16g.png | Bin 0 -> 566 bytes assets/icons/32.png | Bin 0 -> 1162 bytes assets/icons/32g.png | Bin 0 -> 933 bytes assets/icons/48.png | Bin 0 -> 1495 bytes assets/icons/48g.png | Bin 0 -> 1208 bytes background.js | 368 ++ content-scripts.js | 186 + content-styles.css | 5954 ++++++++++++++++++++++++++++ index.html | 14 + manifest.json | 86 + options.html | 20 + page.js | 13 + popup.css | 1995 ++++++++++ popup.js | 3084 ++++++++++++++ satus.css | 1397 +++++++ satus.js | 2183 ++++++++++ youtube-scripts.js | 3196 +++++++++++++++ 44 files changed, 36288 insertions(+) create mode 100644 _locales/ar/messages.json create mode 100644 _locales/bn/messages.json create mode 100644 _locales/de/messages.json create mode 100644 _locales/el/messages.json create mode 100644 _locales/en/messages.json create mode 100644 _locales/es/messages.json create mode 100644 _locales/fr/messages.json create mode 100644 _locales/hin/messages.json create mode 100644 _locales/id/messages.json create mode 100644 _locales/it/messages.json create mode 100644 _locales/ja/messages.json create mode 100644 _locales/ko/messages.json create mode 100644 _locales/nb_NO/messages.json create mode 100644 _locales/nl/messages.json create mode 100644 _locales/no/messages.json create mode 100644 _locales/pt_BR/messages.json create mode 100644 _locales/pt_PT/messages.json create mode 100644 _locales/ru/messages.json create mode 100644 _locales/sk/messages.json create mode 100644 _locales/tr/messages.json create mode 100644 _locales/zh_CN/messages.json create mode 100644 _locales/zh_TW/messages.json create mode 100644 assets/fonts/OpenSans-Regular.ttf create mode 100644 assets/fonts/OpenSans-SemiBold.ttf create mode 100644 assets/icons/128.png create mode 100644 assets/icons/128g.png create mode 100644 assets/icons/16.png create mode 100644 assets/icons/16g.png create mode 100644 assets/icons/32.png create mode 100644 assets/icons/32g.png create mode 100644 assets/icons/48.png create mode 100644 assets/icons/48g.png create mode 100644 background.js create mode 100644 content-scripts.js create mode 100644 content-styles.css create mode 100644 index.html create mode 100644 manifest.json create mode 100644 options.html create mode 100644 page.js create mode 100644 popup.css create mode 100644 popup.js create mode 100644 satus.css create mode 100644 satus.js create mode 100644 youtube-scripts.js diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json new file mode 100644 index 000000000..187c8409c --- /dev/null +++ b/_locales/ar/messages.json @@ -0,0 +1,809 @@ +{ + "about": { + "message": "حول" + }, + "accept": { + "message": "قبول" + }, + "activate": { + "message": "تفعيل" + }, + "activateCaptions": { + "message": "تفعيل الترجمة" + }, + "activated": { + "message": "مفعل" + }, + "activatedFeatures": { + "message": "الميزات المفعلة" + }, + "activateFullscreen": { + "message": "تفعيل ملء الشاشة" + }, + "activeFeatures": { + "message": "الميزات النشطة" + }, + "addScrollToTop": { + "message": "آضف الصعود لأعلى" + }, + "ads": { + "message": "الاعلانات" + }, + "all": { + "message": "الكل" + }, + "allow": { + "message": "سماح" + }, + "allow60fps": { + "message": "السماح لـ60إطار" + }, + "alwaysActive": { + "message": "دائما نشط" + }, + "alwaysShowProgressBar": { + "message": "إظهار شريط التقدم دائمًا" + }, + "amber": { + "message": "العنبر" + }, + "analyzer": { + "message": "المحلل" + }, + "appearance": { + "message": "المظهر العام" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "الصوت" + }, + "audioFormats": { + "message": "تنسيقات الصوت" + }, + "auto": { + "message": "تلقائي" + }, + "autoFullscreen": { + "message": "ملء تلقائي للشاشة" + }, + "autopauseWhenSwitchingTabs": { + "message": "إيقاف تلقائي عند التبديل بين التبويبات" + }, + "autoplay": { + "message": "تشغيل تلقائي" + }, + "backupAndReset": { + "message": "إعادة تعيين والنسخ الاحتياطي" + }, + "baseOnSystemColorScheme": { + "message": "يناء على ألوان النظام" + }, + "belowPlayer": { + "message": "اسفل المشغل" + }, + "black": { + "message": "اسود" + }, + "blacklist": { + "message": "القائمة السوداء" + }, + "blockAll": { + "message": "حظر الكل" + }, + "blue": { + "message": "ازرق" + }, + "blueGray": { + "message": "ازرق رمادي" + }, + "bluelight": { + "message": "الضوء الأزرق" + }, + "brown": { + "message": "بنى" + }, + "browser": { + "message": "المتصفح" + }, + "browserVersion": { + "message": "إصدار المتصفح" + }, + "bubbles": { + "message": "فقاعات" + }, + "bug": { + "message": "خلل برمجي" + }, + "buttons": { + "message": "أزرار" + }, + "cancel": { + "message": "إلغاء" + }, + "categories": { + "message": "التصنيفات" + }, + "channel": { + "message": "قناة" + }, + "channels": { + "message": "القنوات" + }, + "clipboard": { + "message": "الحافظة" + }, + "codecH264": { + "message": "h.الترميز 264" + }, + "collapsed": { + "message": "ضغط" + }, + "collapseOfSubscriptionSections": { + "message": "ضغط قسم الاشتراكات" + }, + "comments": { + "message": "التعليقات" + }, + "confirmationBeforeClosing": { + "message": "التأكيد قبل الإغلاق" + }, + "cookies": { + "message": "ملفات تعريف الارتباط" + }, + "cores": { + "message": "النواه" + }, + "cropChapterTitles": { + "message": "اقتطاع عناوين الفصول" + }, + "customCss": { + "message": "مخصص CSS" + }, + "customJs": { + "message": "مخصص JS" + }, + "customMiniPlayer": { + "message": "المشغل الصغير المخصص" + }, + "cyan": { + "message": "ازرق سماوي" + }, + "dark": { + "message": "داكن" + }, + "darkTheme": { + "message": "مظهر داكن" + }, + "dateAndTime": { + "message": "التاريخ والوقت" + }, + "dawn": { + "message": "فجر" + }, + "decreasePlaybackSpeed": { + "message": "تقليل سرعة التشغيل" + }, + "decreaseVolume5": { + "message": "5% خفض الصوت" + }, + "deepOrange": { + "message": "برتقالي داكن" + }, + "deepPurple": { + "message": "أرجواني داكن" + }, + "defaultChannelTab": { + "message": "علامة تبويب القناة الافتراضية" + }, + "deleteYoutubeCookies": { + "message": "حذف ملفات تعريف الارتباط من اليوتيوب" + }, + "description": { + "message": "الوصف" + }, + "desert": { + "message": "صحراء" + }, + "details": { + "message": "التفاصيل" + }, + "developerOptions": { + "message": "خيارات المطور" + }, + "device": { + "message": "الجهاز" + }, + "dim": { + "message": "داكن" + }, + "disabled": { + "message": "معطل" + }, + "dislike": { + "message": "لم يعجبنى" + }, + "donate": { + "message": "تبرع" + }, + "doNotChange": { + "message": "الإفتراضي" + }, + "draggable": { + "message": "قابل للسحب" + }, + "email": { + "message": "البريد الإلكتروني" + }, + "empty": { + "message": "فارغة" + }, + "enabled": { + "message": "ممكّن" + }, + "enabledForced": { + "message": "ممكّن (إجباري)" + }, + "expanded": { + "message": "موسع" + }, + "exportSettings": { + "message": "تصدير الإعدادات" + }, + "extension": { + "message": "الإضافة" + }, + "file": { + "message": "ملف" + }, + "filters": { + "message": "مرشحات" + }, + "fitToWindow": { + "message": "مناسب للنافذة" + }, + "flash": { + "message": "فلاش" + }, + "font": { + "message": "الخط" + }, + "footer": { + "message": "الحزء السفلي" + }, + "forcedPlaybackSpeed": { + "message": "تثبيت سرعة التشغيل" + }, + "forcedTheaterMode": { + "message": "فرض وضع المسرح" + }, + "forcedVolume": { + "message": "تثبيت مستوى الصوت" + }, + "foundABug": { + "message": "وجدت خطأ؟" + }, + "fullWindow": { + "message": "نافذة كاملة" + }, + "general": { + "message": "عام" + }, + "github": { + "message": "جيتهب" + }, + "goToSearchBox": { + "message": "انتقل إلى مربع البحث" + }, + "gpu": { + "message": "كرت الشاشة" + }, + "green": { + "message": "أخضر" + }, + "hdThumbnail": { + "message": "صورة مصغرة عالية الدقة" + }, + "hdThumbnails": { + "message": "صور مصغرة عالية الدقة" + }, + "header": { + "message": "الجزء العلوي" + }, + "hidden": { + "message": "مخفي" + }, + "hiddenOnVideoPage": { + "message": "مخفي على صفحة الفيديو" + }, + "hideAnimatedThumbnails": { + "message": "إخفاء الصور المصغرة المتحركة" + }, + "hideAnnotations": { + "message": "إخفاء التعليقات التوضيحية" + }, + "hideCards": { + "message": "إخفاء البطاقات" + }, + "hideDetails": { + "message": "إخفاء التفاصيل" + }, + "hideEndscreen": { + "message": "إخفاء شاشة النهاية" + }, + "hideFeaturedContent": { + "message": "إخفاء المحتوى المميز" + }, + "hideFooter": { + "message": "إخفاء الجزء السفلي" + }, + "hideGradientBottom": { + "message": "إخفاء التدرج الأسود السفلي" + }, + "hidePlaylist": { + "message": "إخفاء قائمة التشغيل" + }, + "hideRightButtons": { + "message": "إخفاء الأزرار اليسرى" + }, + "hideScrollForDetails": { + "message": "«إخفاء «التمرير للحصول على التفاصيل" + }, + "hideViewsCount": { + "message": "إخفاء عدد المشاهدات" + }, + "history": { + "message": "السجلّ" + }, + "home": { + "message": "الصفحة الرئيسية" + }, + "hover": { + "message": "تمرير" + }, + "hoverOnVideoPage": { + "message": "تمرير فوق صفحة الفيديو" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "منذ متى تم تحميل الفيديو" + }, + "icons": { + "message": "أيقونات" + }, + "iconsOnly": { + "message": "أيقونات فقط" + }, + "importSettings": { + "message": "استيراد الاعدادات" + }, + "improvedtubeIconInBrowser": { + "message": "في المتصفح ImprovedTube ايقونة" + }, + "improvedtubeIconOnYoutube": { + "message": "في اليوتيوب ImprovedTube ايقونة" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube لغة" + }, + "improvedtubeVersion": { + "message": "ImprovedTube اصدار" + }, + "improveLogo": { + "message": "تحسين الشعار" + }, + "increasePlaybackSpeed": { + "message": "زيادة سرعة التشغيل" + }, + "increaseVolume5": { + "message": "5% زيادة الصوت" + }, + "indigo": { + "message": "نيلي" + }, + "items": { + "message": "العناصر" + }, + "languages": { + "message": "اللغات" + }, + "legacyYoutube": { + "message": "اليوتيوب القديم" + }, + "light": { + "message": "ضوء" + }, + "lightBlue": { + "message": "أزرق فاتح" + }, + "lightGreen": { + "message": "اخضر فاتح" + }, + "like": { + "message": "اعحبني" + }, + "likes": { + "message": "الإعجابات" + }, + "lime": { + "message": "جير" + }, + "list": { + "message": "قائمة" + }, + "liveChat": { + "message": "محادثة مباشرة" + }, + "liveChatType": { + "message": "نوع المحادثة مباشرة" + }, + "loudnessNormalization": { + "message": "تطبيع الإزعاج" + }, + "markWatchedVideos": { + "message": "التعليم على الفيديو المشاهد" + }, + "mixer": { + "message": "مهندس الصوت" + }, + "myColors": { + "message": "ألواني" + }, + "name": { + "message": "الاسم" + }, + "nativeMiniPlayer": { + "message": "المشغل الافتراضي الصغير" + }, + "new": { + "message": "جديد" + }, + "nextVideo": { + "message": "الفيديو التالي" + }, + "night": { + "message": "ليل" + }, + "noActiveFeatures": { + "message": "لا يوجد ميزات نشطة" + }, + "none": { + "message": "لاشيء" + }, + "noOpenVideoTabs": { + "message": "لا توجد علامات تبويب فيديو مفتوحة" + }, + "normal": { + "message": "عادي" + }, + "old": { + "message": "قديم" + }, + "onAllVideos": { + "message": "على جميع مقاطع الفيديو" + }, + "onlyActiveOnYoutube": { + "message": "نشط فقط على اليوتيوب" + }, + "onlyOnePlayerInstancePlaying": { + "message": "تشغيل مشغل واحد فقط" + }, + "onSubscribedChannels": { + "message": "على القنوات المشتركة" + }, + "orange": { + "message": "برتقالي" + }, + "os": { + "message": "نظام التشغيل" + }, + "other": { + "message": "آخر" + }, + "permissions": { + "message": "الأذونات" + }, + "pictureInPicture": { + "message": "فيديو عائم" + }, + "pink": { + "message": "زهري" + }, + "plain": { + "message": "عادي" + }, + "platform": { + "message": "المنصة" + }, + "playbackSpeed": { + "message": "سرعة التشغيل" + }, + "player": { + "message": "المشغل" + }, + "playerColor": { + "message": "لون المشغل" + }, + "playerSize": { + "message": "حجم المشغل" + }, + "playlist": { + "message": "قائمة التشغيل" + }, + "playlists": { + "message": "قوائم التشغيل" + }, + "playPause": { + "message": "تشغيل / ايقاف" + }, + "popupPlayer": { + "message": "مشفل منبثق" + }, + "position": { + "message": "التموضع" + }, + "pressAnyKeyOrScroll": { + "message": ".اضغط على أي مفتاح أو استخدم عجلة الماوس" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "اضغط على أي مفتاح أو استخدم عجلة الماوس" + }, + "previousVideo": { + "message": "الفيديو السابق" + }, + "primaryColor": { + "message": "اللون الأصلي" + }, + "purple": { + "message": "أرجواني" + }, + "quality": { + "message": "الجودة" + }, + "ram": { + "message": "الذاكرة العشوائية" + }, + "rateUs": { + "message": "قيمنا" + }, + "red": { + "message": "احمر" + }, + "redDislikeButton": { + "message": "إظهار زر لم يعجبني باللون الأحمر" + }, + "relatedVideos": { + "message": "فيديوهات ذات علاقة" + }, + "removeRelatedSearchResults": { + "message": "إزالة عمليات بحث مرتبطة بـ" + }, + "repeat": { + "message": "تكرار" + }, + "reset": { + "message": "إعادة تعيين" + }, + "resetAllSettings": { + "message": "إعادة تعيين كافة الإعدادات" + }, + "resetAllShortcuts": { + "message": "إعادة تعيين جميع الاختصارات" + }, + "reverse": { + "message": "عكس" + }, + "rotate": { + "message": "استدارة" + }, + "save": { + "message": "حفظ" + }, + "saveAs": { + "message": "حفظ باسم" + }, + "schedule": { + "message": "جدوله" + }, + "screen": { + "message": "الشاشة" + }, + "screenshot": { + "message": "لقطة شاشة" + }, + "search": { + "message": "بحث" + }, + "searchBarOnly": { + "message": "شريط البحث فقط" + }, + "seekBackward10Seconds": { + "message": "إرجاع بمقدار 10 ثوانٍ" + }, + "seekForward10Seconds": { + "message": "تقديم 10 ثوانٍ إلى الأمام" + }, + "settings": { + "message": "الإعدادات" + }, + "settingsSuccessfullyImported": { + "message": "تم استيراد الإعدادات بنجاح" + }, + "shortcuts": { + "message": "اختصارات" + }, + "showCardsOnMouseHover": { + "message": "عرض البطاقات عند تمرير الماوس" + }, + "showChannelVideosCount": { + "message": "إظهار عدد مقاطع الفيديو للقناة" + }, + "shuffle": { + "message": "عشوائي" + }, + "sidebar": { + "message": "الشريط الجانبي" + }, + "spacebar": { + "message": "مفتاح المسافة" + }, + "squaredUserImages": { + "message": "صور المستخدمين مربعة" + }, + "static": { + "message": "ثابت" + }, + "statsForNerds": { + "message": "عرض الإحصاءات المفصلة" + }, + "step": { + "message": "خطوة" + }, + "stop": { + "message": "ايقاف" + }, + "style": { + "message": "نمط" + }, + "styles": { + "message": "الأنماط" + }, + "subscriptions": { + "message": "الاشتراكات" + }, + "subtitles": { + "message": "الترجمات" + }, + "sunset": { + "message": "غروب الشمس" + }, + "sunsetToSunrise": { + "message": "من غروب الشمس إلى شروقها" + }, + "systemPeferenceDark": { + "message": "تفضيل النظام: داكن" + }, + "systemPeferenceLight": { + "message": "تفضيل النظام: فاتح" + }, + "teal": { + "message": "أزرق مخضر" + }, + "textColor": { + "message": "لون النص" + }, + "themes": { + "message": "المظاهر" + }, + "thisWillRemoveAllCookies": { + "message": ".سيؤدي هذا إلى إزالة كافة ملفات تعريف الارتباط" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "سيؤدي هذا إلى إزالة جميع ملفات تعريف ارتباط اليوتيوب" + }, + "thisWillResetAllSettings": { + "message": ".سيؤدي هذا إلى إعادة تعيين جميع الإعدادات" + }, + "thisWillResetAllShortcuts": { + "message": "سيؤدي هذا إلى إعادة تعيين جميع الاختصارات" + }, + "thumbnails": { + "message": "الصور المصغرة" + }, + "timeFrom": { + "message": "الوقت من" + }, + "timeTo": { + "message": "وقت ل" + }, + "todayAt": { + "message": "اليوم عند الساعة" + }, + "toggleCards": { + "message": "تبديل وضع البطاقات" + }, + "topChat": { + "message": "رسائل المحادثة الهامّة" + }, + "trailerAutoplay": { + "message": "التشغيل التلقائي للفيديو الدعائي" + }, + "translations": { + "message": "الترجمات" + }, + "transparentBackground": { + "message": "خلفية شفافة" + }, + "trending": { + "message": "المحتوى الرائج" + }, + "tryToReloadThePage": { + "message": "حاول إعادة تحميل الصفحة" + }, + "type": { + "message": "النوع" + }, + "upNextAutoplay": { + "message": "تشغيل التالي تلقائيا" + }, + "use24HourFormat": { + "message": "استخدم تنسيق 24 ساعة" + }, + "version": { + "message": "الإصدار" + }, + "video": { + "message": "الفيديو" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "سيتم توسيع وصف الفيديو للحصول على اسم الفئة" + }, + "videoFormats": { + "message": "تنسيقات الفيديو" + }, + "videos": { + "message": "الفيديوهات" + }, + "volume": { + "message": "الصوت" + }, + "watchLater": { + "message": "المشاهدة لاحقا" + }, + "watchTime": { + "message": "وقت المشاهدة" + }, + "whenTabIsChanged": { + "message": "عندما يتم تغيير علامة التبويب" + }, + "white": { + "message": "أبيض" + }, + "yellow": { + "message": "أصفر" + }, + "youtubeHeaderLeft": { + "message": "جزء اليوتيوب العلوي (يسار) " + }, + "youtubeHeaderRight": { + "message": "جزء اليوتيوب العلوي (يمين)" + }, + "youtubeHomePage": { + "message": "صفحة اليوتيوب الرئيسية" + }, + "youtubeLanguage": { + "message": "لغة اليوتيوب" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "h.264 يحد اليوتيوب من جودة الفيديو الى ١٠٨٠ لـ الترميز" + } +} \ No newline at end of file diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json new file mode 100644 index 000000000..733d62819 --- /dev/null +++ b/_locales/bn/messages.json @@ -0,0 +1,809 @@ +{ + "about": { + "message": "সম্পর্কিত" + }, + "accept": { + "message": "গ্রহণ করুন" + }, + "activate": { + "message": "সক্রিয় করুন" + }, + "activateCaptions": { + "message": "ক্যাপশন সক্রিয় করুন" + }, + "activated": { + "message": "সক্রিয়" + }, + "activatedFeatures": { + "message": "বৈশিষ্ট্য সক্রিয় করুন" + }, + "activateFullscreen": { + "message": "পূর্ণ পর্দা সক্রিয় করুন" + }, + "activeFeatures": { + "message": "সক্রিয় বৈশিষ্" + }, + "addScrollToTop": { + "message": "«উপরে যাবার বাটন» যোগ করুন" + }, + "ads": { + "message": "বিজ্ঞাপন" + }, + "all": { + "message": "সব" + }, + "allow": { + "message": "অনুমতি দিন" + }, + "allow60fps": { + "message": "60 ফ্রেম প্রতি সেকেন্ অনুমতি দিনড" + }, + "alwaysActive": { + "message": "সর্বদা সক্রিয়" + }, + "alwaysShowProgressBar": { + "message": "সর্বদা অগ্রগতি বার প্রদর্শন করুন" + }, + "amber": { + "message": "অ্যাম্বার" + }, + "analyzer": { + "message": "বিশ্লেষক" + }, + "appearance": { + "message": "উপস্থিতি" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "শ্রুতি" + }, + "audioFormats": { + "message": "শ্রুতি ফর্ম্যাট" + }, + "auto": { + "message": "অটো" + }, + "autoFullscreen": { + "message": "স্বতঃ পূর্ণস্ক্রীন" + }, + "autopauseWhenSwitchingTabs": { + "message": "ট্যাবগুলি স্যুইচ করার সময় অটো বিরাম দিন" + }, + "autoplay": { + "message": "স্বয়ংক্রিয় চালু" + }, + "backupAndReset": { + "message": "ব্যাকআপ এবং পুনরায় সেট করুন" + }, + "baseOnSystemColorScheme": { + "message": "সিস্টেম রঙের স্কিমের ভিত্তিতে" + }, + "belowPlayer": { + "message": "প্লেয়ারের নিচে" + }, + "black": { + "message": "কালো" + }, + "blacklist": { + "message": "কালো তালিকা" + }, + "blockAll": { + "message": "সবাইকে ব্লক" + }, + "blue": { + "message": "নীল" + }, + "blueGray": { + "message": "নীল ধূসর" + }, + "bluelight": { + "message": "নীল আলো" + }, + "brown": { + "message": "বাদামী" + }, + "browser": { + "message": "ব্রাউজার" + }, + "browserVersion": { + "message": "ব্রাউজার মারজান" + }, + "bubbles": { + "message": "বুলবুলা" + }, + "bug": { + "message": "বাগ" + }, + "buttons": { + "message": "বোতাম" + }, + "cancel": { + "message": "বাতিল" + }, + "categories": { + "message": "বিভাগসমূহ" + }, + "channel": { + "message": "চ্যানেল" + }, + "channels": { + "message": "চ্যানেলগুলি" + }, + "clipboard": { + "message": "ক্লিপবোর্ড" + }, + "codecH264": { + "message": "কোডেক h.264" + }, + "collapsed": { + "message": "ভেঙে দেবো" + }, + "collapseOfSubscriptionSections": { + "message": "সাবস্ক্রিপশন বিভাগ ভেঙে দেবো" + }, + "comments": { + "message": "মন্তব্য" + }, + "confirmationBeforeClosing": { + "message": "বন্ধ হওয়ার আগে নিশ্চিতকরণ" + }, + "cookies": { + "message": "কুকিজ" + }, + "cores": { + "message": "কোর" + }, + "cropChapterTitles": { + "message": "অধ্যায়ের শিরোনাম হ্রাস করুন" + }, + "customCss": { + "message": "কাস্টম CSS" + }, + "customJs": { + "message": "কাস্টম JS" + }, + "customMiniPlayer": { + "message": "কাস্টম মিনি প্লেয়ার" + }, + "cyan": { + "message": "হালকা নীল" + }, + "dark": { + "message": "গা .়" + }, + "darkTheme": { + "message": "গা .় থিম" + }, + "dateAndTime": { + "message": "তারিখ আর সময়" + }, + "dawn": { + "message": "ভোর" + }, + "decreasePlaybackSpeed": { + "message": "প্লেব্যাকের গতি হ্রাস করুন" + }, + "decreaseVolume": { + "message": "শব্দ হ্রাস করুন" + }, + "deepOrange": { + "message": "গভীর কমলা" + }, + "deepPurple": { + "message": "গভীর বেগুনি" + }, + "defaultChannelTab": { + "message": "ডিফল্ট চ্যানেল ট্যাব" + }, + "deleteYoutubeCookies": { + "message": "ইউটিউব এর কুকি ডিলিট করুন" + }, + "description": { + "message": "বর্ণনা" + }, + "desert": { + "message": "মরুভূমি" + }, + "details": { + "message": "বিশদ" + }, + "developerOptions": { + "message": "বিকাশকারী বিকল্পসমূহ" + }, + "device": { + "message": "যন্ত্র" + }, + "dim": { + "message": "ম্লান" + }, + "disabled": { + "message": "অক্ষম" + }, + "dislike": { + "message": "অপছন্দ" + }, + "donate": { + "message": "দান করুন" + }, + "doNotChange": { + "message": "পরিবর্তন করবেন না" + }, + "draggable": { + "message": "টেনে আনে" + }, + "email": { + "message": "ইমেল" + }, + "empty": { + "message": "খালি" + }, + "enabled": { + "message": "সক্ষম" + }, + "enabledForced": { + "message": "সক্ষম (জোরপূর্বক)" + }, + "expanded": { + "message": "প্রসারিত" + }, + "exportSettings": { + "message": "সেটিংস রফতানি করুন" + }, + "extension": { + "message": "এক্সটেনশন" + }, + "file": { + "message": "ফাইল" + }, + "filters": { + "message": "ফিল্টার" + }, + "fitToWindow": { + "message": "উইন্ডোতে ফিট করুন" + }, + "flash": { + "message": "ফ্ল্যাশ" + }, + "font": { + "message": "হরফ" + }, + "footer": { + "message": "পাদচরণ" + }, + "forcedPlaybackSpeed": { + "message": "জোর করে প্লেব্যাক গতি" + }, + "forcedTheaterMode": { + "message": "জোর করে থিয়েটার মোড" + }, + "forcedVolume": { + "message": "জোর করে শব্দ" + }, + "foundABug": { + "message": "একটি বাগ খুঁজে পেয়েছি?" + }, + "fullWindow": { + "message": "পুরো উইন্ডো" + }, + "general": { + "message": "সাধারণ" + }, + "github": { + "message": "গিটহাব" + }, + "goToSearchBox": { + "message": "অনুসন্ধান বাক্সে যান" + }, + "gpu": { + "message": "জিপিইউ" + }, + "green": { + "message": "সবুজ" + }, + "hdThumbnail": { + "message": "এইচডি থাম্বনেল" + }, + "hdThumbnails": { + "message": "এইচডি থামনেল গুলি" + }, + "header": { + "message": "শিরোনাম" + }, + "hidden": { + "message": "গোপন" + }, + "hiddenOnVideoPage": { + "message": "ভিডিও পৃষ্ঠায় লুকানো" + }, + "hideAnimatedThumbnails": { + "message": "অ্যানিমেটেড থাম্বনেলগুলি লুকান" + }, + "hideAnnotations": { + "message": "টীকাগুলি লুকান" + }, + "hideCards": { + "message": "কার্ড লুকান" + }, + "hideDetails": { + "message": "আড়াল বিস্তারিত" + }, + "hideEndscreen": { + "message": "এন্ডস্ক্রিন লুকান" + }, + "hideFeaturedContent": { + "message": "বৈশিষ্ট্যযুক্ত সামগ্রী লুকান" + }, + "hideFooter": { + "message": "পাদলেখ লুকান" + }, + "hideGradientBottom": { + "message": "গ্রেডিয়েন্ট নীচে লুকান" + }, + "hidePlaylist": { + "message": "প্লেলিস্ট লুকান" + }, + "hideRightButtons": { + "message": "ডান বোতামগুলি লুকান" + }, + "hideScrollForDetails": { + "message": "«বিশদ জন্য স্ক্রোলs» লুকান" + }, + "hideViewsCount": { + "message": "দর্শন গণনা লুকান" + }, + "history": { + "message": "ইতিহাস" + }, + "home": { + "message": "প্রধান" + }, + "hover": { + "message": "ঘোরা" + }, + "hoverOnVideoPage": { + "message": "ভিডিও পৃষ্ঠায় ঘোরা" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "ভিডিওটি কত আগে আপলোড হয়েছিল" + }, + "icons": { + "message": "আইকন" + }, + "iconsOnly": { + "message": "আইকন" + }, + "importSettings": { + "message": "সেটিংস আমদানি করুন" + }, + "improvedtubeIconInBrowser": { + "message": "ব্রাউজারে উন্নত YouTube আইকন" + }, + "improvedtubeIconOnYoutube": { + "message": "ইউটিউবে উন্নত আইকন" + }, + "improvedtubeLanguage": { + "message": "উন্নত ইউটিউব ভাষা" + }, + "improvedtubeVersion": { + "message": "উন্নত YouTube সংস্করণ" + }, + "improveLogo": { + "message": "লোগো উন্নত করুন" + }, + "increasePlaybackSpeed": { + "message": "প্লেব্যাকের গতি বাড়ান" + }, + "increaseVolume": { + "message": "শব্দ বৃদ্ধি" + }, + "indigo": { + "message": "নীল" + }, + "items": { + "message": "আইটেম" + }, + "languages": { + "message": "Languages" + }, + "legacyYoutube": { + "message": "উত্তরাধিকার ইউটিউব" + }, + "light": { + "message": "হালকাো" + }, + "lightBlue": { + "message": "হালকা নীল" + }, + "lightGreen": { + "message": "হালকা সবুজ" + }, + "like": { + "message": "লাইক" + }, + "likes": { + "message": "লাইক গুলি" + }, + "lime": { + "message": "চুন" + }, + "list": { + "message": "তালিকা" + }, + "liveChat": { + "message": "সরাসরি কথোপকথন" + }, + "liveChatType": { + "message": "লাইভ চ্যাট টাইপ" + }, + "loudnessNormalization": { + "message": "আওয়াজের স্বাভাবিককরণ" + }, + "markWatchedVideos": { + "message": "দেখা ভিডিওগুলি চিহ্নিত করুন" + }, + "mixer": { + "message": "মিক্সার" + }, + "myColors": { + "message": "আমার রং" + }, + "name": { + "message": "নাম" + }, + "nativeMiniPlayer": { + "message": "নেটিভ মিনি প্লেয়ার" + }, + "new": { + "message": "নতুন" + }, + "nextVideo": { + "message": "পরবর্তী ভিডিও" + }, + "night": { + "message": "রাত" + }, + "noActiveFeatures": { + "message": "কোনও সক্রিয় বৈশিষ্ট্য নেই" + }, + "none": { + "message": "কিছুই না" + }, + "noOpenVideoTabs": { + "message": "কোনও খোলা ভিডিও ট্যাব নেই" + }, + "normal": { + "message": "সাধারণ" + }, + "old": { + "message": "পুরাতন" + }, + "onAllVideos": { + "message": "সমস্ত ভিডিওতে" + }, + "onlyActiveOnYoutube": { + "message": "শুধুমাত্র ইউটিউবে সক্রিয়" + }, + "onlyOnePlayerInstancePlaying": { + "message": "কেবলমাত্র একজন খেলোয়াড় খেলছে" + }, + "onSubscribedChannels": { + "message": "সাবস্ক্রাইব করা চ্যানেলগুলিতে" + }, + "orange": { + "message": "কমলা" + }, + "os": { + "message": "ওএস" + }, + "other": { + "message": "অন্যান্য" + }, + "permissions": { + "message": "অনুমতি" + }, + "pictureInPicture": { + "message": "পিকচার ইন পিকচার" + }, + "pink": { + "message": "গোলাপী" + }, + "plain": { + "message": "সরল" + }, + "platform": { + "message": "প্ল্যাটফর্ম" + }, + "playbackSpeed": { + "message": "প্লেব্যাক গতি" + }, + "player": { + "message": "প্লেয়ার" + }, + "playerColor": { + "message": "প্লেয়ারের রঙ" + }, + "playerSize": { + "message": "খেলোয়াড়ের আকার" + }, + "playlist": { + "message": "প্লেলিস্ট" + }, + "playlists": { + "message": "প্লেলিস্ট" + }, + "playPause": { + "message": "খেলার / বিরতি" + }, + "popupPlayer": { + "message": "পপআপ প্লেয়ার" + }, + "position": { + "message": "অবস্থান" + }, + "pressAnyKeyOrScroll": { + "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" + }, + "previousVideo": { + "message": "পূর্ববর্তী ভিডিও" + }, + "primaryColor": { + "message": "মৌলিক রঙ" + }, + "purple": { + "message": "বেগুনি" + }, + "quality": { + "message": "গুণ" + }, + "ram": { + "message": "র্যাম" + }, + "rateUs": { + "message": "মতামত দিন" + }, + "red": { + "message": "লাল" + }, + "redDislikeButton": { + "message": "অপছন্দ বাটন লাল রঙ দেখান" + }, + "relatedVideos": { + "message": "সংশ্লিষ্ট ভিডিও" + }, + "removeRelatedSearchResults": { + "message": "সম্পর্কিত অনুসন্ধান ফলাফল সরান" + }, + "repeat": { + "message": "পুনরাবৃত্তি" + }, + "reset": { + "message": "রিসেট" + }, + "resetAllSettings": { + "message": "সমস্ত সেটিংস পুনরায় সেট করুন" + }, + "resetAllShortcuts": { + "message": "সমস্ত শর্টকাট পুনরায় সেট করুন" + }, + "reverse": { + "message": "বিপরীত" + }, + "rotate": { + "message": "ঘুরান" + }, + "save": { + "message": "সংরক্ষণ" + }, + "saveAs": { + "message": "সংরক্ষণ করুন" + }, + "schedule": { + "message": "সময়সূচী" + }, + "screen": { + "message": "পর্দা" + }, + "screenshot": { + "message": "স্ক্রিনশট" + }, + "search": { + "message": "অনুসন্ধান করুন" + }, + "searchBarOnly": { + "message": "অনুসন্ধান বার কেবল" + }, + "seekBackward10Seconds": { + "message": "পিছনে 10 সেকেন্ড সন্ধান করুন" + }, + "seekForward10Seconds": { + "message": "10 সেকেন্ড এগিয়ে যান" + }, + "settings": { + "message": "সেটিংস" + }, + "settingsSuccessfullyImported": { + "message": "সেটিংস সফলভাবে আমদানি করা হয়েছে" + }, + "shortcuts": { + "message": "শর্টকাটস" + }, + "showCardsOnMouseHover": { + "message": "মাউস হোভারে কার্ডগুলি দেখান" + }, + "showChannelVideosCount": { + "message": "চ্যানেল ভিডিও গণনা দেখান" + }, + "shuffle": { + "message": "অদলবদল" + }, + "sidebar": { + "message": "সাইডবার" + }, + "spacebar": { + "message": "স্পেসবার" + }, + "squaredUserImages": { + "message": "স্কোয়ার ব্যবহারকারীর চিত্রসমূহ" + }, + "static": { + "message": "স্থির" + }, + "statsForNerds": { + "message": "ডেভলপারের জন্য পরিসংখ্যান দেখান" + }, + "step": { + "message": "পদক্ষেপ" + }, + "stop": { + "message": "থামো" + }, + "style": { + "message": "স্টাইল" + }, + "styles": { + "message": "শৈলী" + }, + "subscriptions": { + "message": "সাবস্ক্রিপশন" + }, + "subtitles": { + "message": "সাবটাইটেল" + }, + "sunset": { + "message": "সূর্যাস্ত" + }, + "sunsetToSunrise": { + "message": "সূর্যোদয় সূর্যোদয়" + }, + "systemPeferenceDark": { + "message": "সিস্টেমের পছন্দসমূহ : dark" + }, + "systemPeferenceLight": { + "message": "সিস্টেমের পছন্দসমূহ : light" + }, + "teal": { + "message": "টিল" + }, + "textColor": { + "message": "লেখার রঙ" + }, + "themes": { + "message": "থিমস" + }, + "thisWillRemoveAllCookies": { + "message": "এটি সমস্ত কুকি মুছে ফেলবে।" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "এটি সমস্ত ইউটিউব কুকিজ অপসারণ করবে" + }, + "thisWillResetAllSettings": { + "message": "এটি সমস্ত সেটিংস পুনরায় সেট করবে।" + }, + "thisWillResetAllShortcuts": { + "message": "এটি সমস্ত শর্টকাট পুনরায় সেট করবে" + }, + "thumbnails": { + "message": "থাম্বনেইলস" + }, + "timeFrom": { + "message": "সময় থেকে" + }, + "timeTo": { + "message": "সময়" + }, + "todayAt": { + "message": "আজ এ" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "শীর্ষ চ্যাট" + }, + "trailerAutoplay": { + "message": "ট্রেলার অটোপ্লে" + }, + "translations": { + "message": "অনুবাদ" + }, + "transparentBackground": { + "message": "স্বচ্ছ পটভূমি" + }, + "trending": { + "message": "চলমান" + }, + "tryToReloadThePage": { + "message": "পৃষ্ঠাটি পুনরায় লোড করার চেষ্টা করুন" + }, + "type": { + "message": "প্রকার" + }, + "upNextAutoplay": { + "message": "পরবর্তী অটোপ্লে" + }, + "use24HourFormat": { + "message": "24 ঘন্টা বিন্যাস ব্যবহার করুন" + }, + "version": { + "message": "সংস্করণ" + }, + "video": { + "message": "ভিডিও" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "বিভাগটির নাম পেতে ভিডিওর বর্ণনাটি প্রসারিত হবে" + }, + "videoFormats": { + "message": "ভিডিও ফর্ম্যাট" + }, + "videos": { + "message": "ভিডিও" + }, + "volume": { + "message": "শব্দ" + }, + "watchLater": { + "message": "পরে দেখুন" + }, + "watchTime": { + "message": "দেখার সময়" + }, + "whenTabIsChanged": { + "message": "ট্যাব পরিবর্তন করা হয়" + }, + "white": { + "message": "সাদা" + }, + "yellow": { + "message": "হলুদ" + }, + "youtubeHeaderLeft": { + "message": "YouTube শিরোনাম (বাম)" + }, + "youtubeHeaderRight": { + "message": "YouTube শিরোনাম (ডানদিকে)" + }, + "youtubeHomePage": { + "message": "ইউটিউব হোম পৃষ্ঠা" + }, + "youtubeLanguage": { + "message": "ইউটিউব ভাষা" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "ইউটিউব h.264 কোডেকের জন্য ভিডিও গুণমানকে 1080p এর মধ্যে সীমাবদ্ধ করে" + } +} \ No newline at end of file diff --git a/_locales/de/messages.json b/_locales/de/messages.json new file mode 100644 index 000000000..efe0f75fd --- /dev/null +++ b/_locales/de/messages.json @@ -0,0 +1,809 @@ +{ + "about": { + "message": "Info" + }, + "accept": { + "message": "Akzeptieren" + }, + "activate": { + "message": "Aktivieren" + }, + "activateCaptions": { + "message": "Untertitel aktivieren" + }, + "activated": { + "message": "Aktiviert" + }, + "activatedFeatures": { + "message": "Aktivierte Features" + }, + "activateFullscreen": { + "message": "Vollbild aktivieren" + }, + "activeFeatures": { + "message": "Aktive Funktionen" + }, + "addScrollToTop": { + "message": "«Nach Oben»-Button" + }, + "ads": { + "message": "Werbung" + }, + "all": { + "message": "Alles" + }, + "allow": { + "message": "zulassen" + }, + "allow60fps": { + "message": "60fps zulassen" + }, + "alwaysActive": { + "message": "Immer aktiv" + }, + "alwaysShowProgressBar": { + "message": "Zeitleiste immer anzeigen" + }, + "amber": { + "message": "Bernstein" + }, + "analyzer": { + "message": "Analyse" + }, + "appearance": { + "message": "Aussehen" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio-Formate" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-Vollbild" + }, + "autopauseWhenSwitchingTabs": { + "message": "Video pausieren beim Tab-Wechsel" + }, + "autoplay": { + "message": "Autoplay" + }, + "backupAndReset": { + "message": "Sichern oder zurücksetzen" + }, + "baseOnSystemColorScheme": { + "message": "Basierend von Systemfarben" + }, + "belowPlayer": { + "message": "Unter dem Player" + }, + "black": { + "message": "Schwarz" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "immer blockieren" + }, + "blue": { + "message": "Blau" + }, + "blueGray": { + "message": "Blau grau" + }, + "bluelight": { + "message": "Blaues Licht" + }, + "brown": { + "message": "Braun" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser Version" + }, + "bubbles": { + "message": "Blasen" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Buttons" + }, + "cancel": { + "message": "Abbrechen" + }, + "categories": { + "message": "Kategorien" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanäle" + }, + "clipboard": { + "message": "Zwischenablage" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapsed": { + "message": "Eingeklappt" + }, + "collapseOfSubscriptionSections": { + "message": "Abos einklappen" + }, + "comments": { + "message": "Kommentare" + }, + "confirmationBeforeClosing": { + "message": "Bestätigung beim Schließen" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Kerne" + }, + "cropChapterTitles": { + "message": "Kapitel abschneiden" + }, + "customCss": { + "message": "CSS hinzufügen" + }, + "customJs": { + "message": "JS hinzufügen" + }, + "customMiniPlayer": { + "message": "Benutzerdefinierter Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Dunkel" + }, + "darkTheme": { + "message": "Dark-Theme" + }, + "dateAndTime": { + "message": "Datum & Uhrzeit" + }, + "dawn": { + "message": "Morgendämmerung" + }, + "decreasePlaybackSpeed": { + "message": "Abspielgeschwindigkeit verringern" + }, + "decreaseVolume": { + "message": "Lautstärke reduzieren" + }, + "deepOrange": { + "message": "Dunkel-Orange" + }, + "deepPurple": { + "message": "Dunkel-Lila" + }, + "defaultChannelTab": { + "message": "Standard-Kanal Tab" + }, + "deleteYoutubeCookies": { + "message": "YouTube-Cookies löschen" + }, + "description": { + "message": "Beschreibung" + }, + "desert": { + "message": "Wüste" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Entwickleroptionen" + }, + "device": { + "message": "Gerät" + }, + "dim": { + "message": "dimmen" + }, + "disabled": { + "message": "ausgeschaltet" + }, + "dislike": { + "message": "'Mag ich nicht'" + }, + "donate": { + "message": "Spenden" + }, + "doNotChange": { + "message": "Nicht ändern" + }, + "draggable": { + "message": "Verschiebbar" + }, + "email": { + "message": "E-Mail" + }, + "empty": { + "message": "leer" + }, + "enabled": { + "message": "aktiviert" + }, + "enabledForced": { + "message": "aktiviert (erzwungen)" + }, + "expanded": { + "message": "ausgeklappt" + }, + "exportSettings": { + "message": "Einstellungen als Datei exportieren" + }, + "extension": { + "message": "Erweiterung" + }, + "file": { + "message": "Datei" + }, + "filters": { + "message": "Filter" + }, + "fitToWindow": { + "message": "Ans Fenster anpassen" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Schriftart" + }, + "footer": { + "message": "Fußzeile" + }, + "forcedPlaybackSpeed": { + "message": "erzwungene Abspielgeschwindigkeit" + }, + "forcedTheaterMode": { + "message": "Kinomodus erzwingen" + }, + "forcedVolume": { + "message": "Fixe Lautstärke" + }, + "foundABug": { + "message": "Fehler gefunden?" + }, + "fullWindow": { + "message": "Ganzes Fenster" + }, + "general": { + "message": "Allgemein" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "YouTube Suche" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Grün" + }, + "hdThumbnail": { + "message": "HD-Vorschaubild" + }, + "hdThumbnails": { + "message": "HD-Vorschaubilder" + }, + "header": { + "message": "Header / 'Kopfzeile'" + }, + "hidden": { + "message": "Ausblenden" + }, + "hiddenOnVideoPage": { + "message": "Auf Videoseiten ausblenden" + }, + "hideAnimatedThumbnails": { + "message": "Keine animierten Vorschaubilder" + }, + "hideAnnotations": { + "message": "Anmerkungen ausblenden" + }, + "hideCards": { + "message": "Karten ausblenden" + }, + "hideDetails": { + "message": "Details ausblenden" + }, + "hideEndscreen": { + "message": "Endkarten ausblenden (Schlussbildschirme)" + }, + "hideFeaturedContent": { + "message": "'Empfohlene Inhalte' ausblenden" + }, + "hideFooter": { + "message": "Fußzeile ausblenden" + }, + "hideGradientBottom": { + "message": "Farbverlauf ausblenden" + }, + "hidePlaylist": { + "message": "Playlists ausblenden" + }, + "hideRightButtons": { + "message": "Rechte Buttons ausblenden" + }, + "hideScrollForDetails": { + "message": "«Für Details scrollen» ausblenden" + }, + "hideViewsCount": { + "message": "Videoaufrufe ausblenden" + }, + "history": { + "message": "Verlauf" + }, + "home": { + "message": "Standard" + }, + "hover": { + "message": "Nur anzeigen wenn die Maus darauf zeigt" + }, + "hoverOnVideoPage": { + "message": "auf Video-Seiten nur wenn die Maus..." + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Alter des Videos (seit Hochlade-Datum)" + }, + "icons": { + "message": "Icons" + }, + "iconsOnly": { + "message": "nur Icons" + }, + "importSettings": { + "message": "Einstellungen importieren" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube Icon im Browser" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube Icon auf YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube Sprache" + }, + "improvedtubeVersion": { + "message": "ImprovedTube Version" + }, + "improveLogo": { + "message": "Logo verbessern" + }, + "increasePlaybackSpeed": { + "message": "Abspiel Geschwingkeit erhöhen" + }, + "increaseVolume": { + "message": "Lautstärke erhöhen" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "Sprachen" + }, + "legacyYoutube": { + "message": "Klassiches YouTube" + }, + "light": { + "message": "Hell" + }, + "lightBlue": { + "message": "Hellblau" + }, + "lightGreen": { + "message": "Hellgrün" + }, + "like": { + "message": "Like" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Limette" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Live-Chat" + }, + "liveChatType": { + "message": "Live-Chat Typ" + }, + "loudnessNormalization": { + "message": "Lautstärke normalisieren" + }, + "markWatchedVideos": { + "message": "gesehene Videos markieren" + }, + "mixer": { + "message": "Mischpult" + }, + "myColors": { + "message": "Meine Farben" + }, + "name": { + "message": "Name" + }, + "nativeMiniPlayer": { + "message": "Standard Mini-Player" + }, + "new": { + "message": "Neu" + }, + "nextVideo": { + "message": "Nächstes Video" + }, + "night": { + "message": "Nacht" + }, + "noActiveFeatures": { + "message": "Keine aktiven Features" + }, + "none": { + "message": "Keine" + }, + "noOpenVideoTabs": { + "message": "Keine YouTube Videos geöffnet" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Alt" + }, + "onAllVideos": { + "message": "in allen Videos" + }, + "onlyActiveOnYoutube": { + "message": "nur auf YouTube rot färben" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Nur ein Video gleichzeitig" + }, + "onSubscribedChannels": { + "message": "nur in abonnierten Kanälen" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "Betriebsystem" + }, + "other": { + "message": "Andere" + }, + "permissions": { + "message": "Berechtigungen" + }, + "pictureInPicture": { + "message": "Bild-in-Bild" + }, + "pink": { + "message": "Pink" + }, + "plain": { + "message": "Schlicht" + }, + "platform": { + "message": "Plattform" + }, + "playbackSpeed": { + "message": "Abspiel-Geschwindigkeit" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Playerfarbe" + }, + "playerSize": { + "message": "Playergröße" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "playPause": { + "message": "Play / Pause" + }, + "popupPlayer": { + "message": "Player in eigenem Fenster" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Eine Taste drücken oder scrollen!" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Eine Taste drücken oder scrollen!" + }, + "previousVideo": { + "message": "Letztes Video" + }, + "primaryColor": { + "message": "Primäre Farbe" + }, + "purple": { + "message": "Lila" + }, + "quality": { + "message": "Qualität" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Bewerte mich!" + }, + "red": { + "message": "Rot" + }, + "redDislikeButton": { + "message": "Zeige 'Mag ich nicht' Button rot" + }, + "relatedVideos": { + "message": "Verwandte Videos" + }, + "removeRelatedSearchResults": { + "message": "Verwandte Suchergebnisse entfernen" + }, + "repeat": { + "message": "Repeat(Wiederholen)" + }, + "reset": { + "message": "Zurücksetzen" + }, + "resetAllSettings": { + "message": "Alle Einstellungen zurücksetzen" + }, + "resetAllShortcuts": { + "message": "Alle Shortcuts zurücksetzen" + }, + "reverse": { + "message": "Rückwärts" + }, + "rotate": { + "message": "Drehen" + }, + "save": { + "message": "Speichern" + }, + "saveAs": { + "message": "Speichern als" + }, + "schedule": { + "message": "Nachtschaltung planen" + }, + "screen": { + "message": "Bildschirm" + }, + "screenshot": { + "message": "Screenshot" + }, + "search": { + "message": "Suche" + }, + "searchBarOnly": { + "message": "Nur die Suchleiste" + }, + "seekBackward10Seconds": { + "message": "10 Sekunden zurück" + }, + "seekForward10Seconds": { + "message": "10 Sekunden überspringen" + }, + "settings": { + "message": "Einstellungen" + }, + "settingsSuccessfullyImported": { + "message": "Einstellungen erfolgreich importiert!" + }, + "shortcuts": { + "message": "Hotkeys" + }, + "showCardsOnMouseHover": { + "message": "Infokarten bei Mausover anzeigen" + }, + "showChannelVideosCount": { + "message": "Anzahl Videos je Channel anzeigen" + }, + "shuffle": { + "message": "Zufallswiedergabe" + }, + "sidebar": { + "message": "Seitenleiste" + }, + "spacebar": { + "message": "Leertaste" + }, + "squaredUserImages": { + "message": "Quadratische Profilbilder" + }, + "static": { + "message": "Statisch" + }, + "statsForNerds": { + "message": "Statistiken für Nerds" + }, + "step": { + "message": "Schritt" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscriptions": { + "message": "Abonnements" + }, + "subtitles": { + "message": "Untertitel" + }, + "sunset": { + "message": "Sonnenuntergang" + }, + "sunsetToSunrise": { + "message": "Abends bis Morgens" + }, + "systemPeferenceDark": { + "message": "System Einstellungen: dunkel" + }, + "systemPeferenceLight": { + "message": "System Einstellungen: hell" + }, + "teal": { + "message": "Blaugrün" + }, + "textColor": { + "message": "Textfarbe" + }, + "themes": { + "message": "Farbschemen" + }, + "thisWillRemoveAllCookies": { + "message": "Alle Cookies werden gelöscht" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Alle YouTube Cookies werden gelöscht" + }, + "thisWillResetAllSettings": { + "message": "Alle Einstellungen werden entfernt" + }, + "thisWillResetAllShortcuts": { + "message": "Alle Shortcuts werden entfernt" + }, + "thumbnails": { + "message": "Vorschaubilder" + }, + "timeFrom": { + "message": "Start" + }, + "timeTo": { + "message": "Stop" + }, + "todayAt": { + "message": "Heute um" + }, + "toggleCards": { + "message": "Karten ausblenden" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Trailer autoplay (Kanal-Intro automatisch losspielen)" + }, + "translations": { + "message": "Übersetzungen" + }, + "transparentBackground": { + "message": "Transparenter Hintergrund" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Versuche die Seite neu zu laden" + }, + "type": { + "message": "Typ" + }, + "upNextAutoplay": { + "message": "Nächstes Video automatisch abspielen" + }, + "use24HourFormat": { + "message": "24-Stunden Format" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Die Video-Beschreibung wird um den Kategorienamen erweitert" + }, + "videoFormats": { + "message": "Video Formate" + }, + "videos": { + "message": "Videos" + }, + "volume": { + "message": "Lautstärke" + }, + "watchLater": { + "message": "Später ansehen" + }, + "watchTime": { + "message": "Verbrauchte Zeit" + }, + "whenTabIsChanged": { + "message": "Beim Tab-Wechsel" + }, + "white": { + "message": "Weiß" + }, + "yellow": { + "message": "Gelb" + }, + "youtubeHeaderLeft": { + "message": "YouTube Kopfzeile (Links)" + }, + "youtubeHeaderRight": { + "message": "YouTube Kopfzeile (Rechts)" + }, + "youtubeHomePage": { + "message": "YouTube Startseite" + }, + "youtubeLanguage": { + "message": "YouTube Sprache" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube begrenzt die Qualität auf 1080p für den h.264 Codec" + } +} \ No newline at end of file diff --git a/_locales/el/messages.json b/_locales/el/messages.json new file mode 100644 index 000000000..c1c9dc02c --- /dev/null +++ b/_locales/el/messages.json @@ -0,0 +1,809 @@ +{ + "about": { + "message": "Σχετικά" + }, + "accept": { + "message": "Αποδοχή" + }, + "activate": { + "message": "Ενεργοποίηση" + }, + "activateCaptions": { + "message": "Ενεργοποίηση Υπότιτλων" + }, + "activated": { + "message": "Ενεργοποιήθηκε" + }, + "activatedFeatures": { + "message": "Ενεργοποιημένες Λειτουργίες" + }, + "activateFullscreen": { + "message": "Ενεργοποίηση Πλήρους Οθόνη" + }, + "activeFeatures": { + "message": "Ενεργές λειτουργίες" + }, + "addScrollToTop": { + "message": "Πρόσθεσε συντόμευση για την κορυφή της σελίδας" + }, + "ads": { + "message": "Διαφημίσεις" + }, + "all": { + "message": "Όλα" + }, + "allow": { + "message": "Αποδοχή" + }, + "allow60fps": { + "message": "Επίτρεψε 60fps" + }, + "alwaysActive": { + "message": "Πάντοτε ενεργό" + }, + "alwaysShowProgressBar": { + "message": "Πάντα ορατός ο ενδείκτης προόδου" + }, + "amber": { + "message": "Κεχρί" + }, + "analyzer": { + "message": "Αναλυτής" + }, + "appearance": { + "message": "Εμφάνιση" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Ήχος" + }, + "audioFormats": { + "message": "Μορφές ήχου" + }, + "auto": { + "message": "Αυτόματο" + }, + "autoFullscreen": { + "message": "Αυτόματη Πλήρης Οθόνη" + }, + "autopauseWhenSwitchingTabs": { + "message": "Αυτόματη παύση όταν αλλάζετε καρτέλα" + }, + "autoplay": { + "message": "Αυτόματη αναπαραγωγή" + }, + "backupAndReset": { + "message": "Αντίγραφα ασφαλείας & reset" + }, + "baseOnSystemColorScheme": { + "message": "Με βάση τις ρυθμίσεις χρώματος του συστήματος" + }, + "belowPlayer": { + "message": "Κάτω από το Player" + }, + "black": { + "message": "Μαύρο" + }, + "blacklist": { + "message": "Λίστα αποκλεισμού" + }, + "blockAll": { + "message": "Αποκλείστε όλα" + }, + "blue": { + "message": "Μπλε" + }, + "blueGray": { + "message": "Μπλε γκρίζο" + }, + "bluelight": { + "message": "Μπλε φως" + }, + "brown": { + "message": "Καφέ" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Έκδοση browser" + }, + "bubbles": { + "message": "Φούσκες" + }, + "bug": { + "message": "Σφάλμα κώδικα" + }, + "buttons": { + "message": "Κουμπιά" + }, + "cancel": { + "message": "Ακύρωση" + }, + "categories": { + "message": "Κατηγορίες" + }, + "channel": { + "message": "Κανάλι" + }, + "channels": { + "message": "Κανάλια" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapsed": { + "message": "Κλειστό" + }, + "collapseOfSubscriptionSections": { + "message": "Κλείσε το μενού συνδρομών" + }, + "comments": { + "message": "Σχόλιο" + }, + "confirmationBeforeClosing": { + "message": "Επιβεβαίωση πρωτού κλείσεις" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Πυρήνες" + }, + "cropChapterTitles": { + "message": "Περίκοψε τους τίτλους των κεφαλαίων" + }, + "customCss": { + "message": "Εξατομίκευση CSS" + }, + "customJs": { + "message": "Εξατομίκευση JS" + }, + "customMiniPlayer": { + "message": "Εξατομικευμένο Mini-Player" + }, + "cyan": { + "message": "Κυανό" + }, + "dark": { + "message": "Σκούρο" + }, + "darkTheme": { + "message": "Σκούρο θέμα" + }, + "dateAndTime": { + "message": "Ημερομηνία & ώρα" + }, + "dawn": { + "message": "Αυγή" + }, + "decreasePlaybackSpeed": { + "message": "Μείωσε ταχύτητα αναπαραγωγής" + }, + "decreaseVolume": { + "message": "Μειώστε ένταση" + }, + "deepOrange": { + "message": "Βαθύ πορτοκαλί" + }, + "deepPurple": { + "message": "Βαθύ μοβ" + }, + "defaultChannelTab": { + "message": "Προεπιλεγμένη καρτέλα καναλιού" + }, + "deleteYoutubeCookies": { + "message": "Κατάργησε τα cookies του YouTube" + }, + "description": { + "message": "Περιγραφή" + }, + "desert": { + "message": "Έρημος" + }, + "details": { + "message": "Λεπτομέρειες" + }, + "developerOptions": { + "message": "Επιλογές για προγραμματιστές" + }, + "device": { + "message": "Συσκευή" + }, + "dim": { + "message": "Σκοτεινό" + }, + "disabled": { + "message": "Απενεργοποιημένο" + }, + "dislike": { + "message": "Δε μου αρέσει" + }, + "donate": { + "message": "Συνεισφέρετε οικονομικά" + }, + "doNotChange": { + "message": "Να μην αλλάξει" + }, + "draggable": { + "message": "Μετακινήσιμο με σύρση" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Κενό" + }, + "enabled": { + "message": "Ενεργοποιημένο" + }, + "enabledForced": { + "message": "Ενεργοποιημένο (Υποχρεωτικά)" + }, + "expanded": { + "message": "Ανοικτό" + }, + "exportSettings": { + "message": "Εξαγωγή ρυθμίσεων" + }, + "extension": { + "message": "Επέκταση" + }, + "file": { + "message": "Αρχείο" + }, + "filters": { + "message": "Φίλτρα" + }, + "fitToWindow": { + "message": "Να χωράει στο παράθυρο" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Γραμματοσειρά" + }, + "footer": { + "message": "Υποσέλιδο" + }, + "forcedPlaybackSpeed": { + "message": "Υποχρεωτική ταχύτητα αναπαραγωγής" + }, + "forcedTheaterMode": { + "message": "Υποχρεωτική λειτουργία κινηματογράφου" + }, + "forcedVolume": { + "message": "Υποχρεωτική ένταση" + }, + "foundABug": { + "message": "Εντοπίσατε κάποιο σφάλμα;" + }, + "fullWindow": { + "message": "Πλήρες παράθυρο" + }, + "general": { + "message": "Γενικά" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Πήγαινε στο πεδίο αναζήτησης" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Πράσινο" + }, + "hdThumbnail": { + "message": "HD Εικονίδιο βίντεο" + }, + "hdThumbnails": { + "message": "HD Εικονίδια βίντεο" + }, + "header": { + "message": "Κεφαλίδα" + }, + "hidden": { + "message": "Κρυμμένο" + }, + "hiddenOnVideoPage": { + "message": "Κρυμμένο στη σελίδα βίντεο" + }, + "hideAnimatedThumbnails": { + "message": "Απόκρυψε τα κινούμενα εικονίδια βίντεο" + }, + "hideAnnotations": { + "message": "Απόκρυψε τα annotations" + }, + "hideCards": { + "message": "Απόκρυψε τις κάρτες" + }, + "hideDetails": { + "message": "Απόκρυψε τις λεπτομέρειες" + }, + "hideEndscreen": { + "message": "Απόκρυψε την κάρτα τέλους" + }, + "hideFeaturedContent": { + "message": "Απόκρυψε το προτεινόμενο περιεχόμενο" + }, + "hideFooter": { + "message": "Απόκρυψε το υποσέλιδο" + }, + "hideGradientBottom": { + "message": "Απόκρυψε το κάτω μέρος της χρωματικής διαβάθμισης" + }, + "hidePlaylist": { + "message": "Απόκρυψε τα playlists" + }, + "hideRightButtons": { + "message": "Απόκρυψε τα κουμπιά στα δεξιά" + }, + "hideScrollForDetails": { + "message": "Απόκρυψε το «Scroll for details»" + }, + "hideViewsCount": { + "message": "Απόκρυψε τον αριθμό προβολών" + }, + "history": { + "message": "Ιστορικό" + }, + "home": { + "message": "Αρχική σελίδα" + }, + "hover": { + "message": "Κέρσορας από πάνω" + }, + "hoverOnVideoPage": { + "message": "Κέρσορας πάνω στη σελίδα βίντεο" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Πριν από πόσο ανέβηκε το βίντεο" + }, + "icons": { + "message": "Εικονίδια" + }, + "iconsOnly": { + "message": "Εικονίδια μόνο" + }, + "importSettings": { + "message": "Εισαγωγή ρυθμίσεων" + }, + "improvedtubeIconInBrowser": { + "message": "Εικονίδιο ImprovedTube στο Browser" + }, + "improvedtubeIconOnYoutube": { + "message": "Εικονίδιο ImprovedTube στο YouTube" + }, + "improvedtubeLanguage": { + "message": "Γλώσσα ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Έκδοση ImprovedTube" + }, + "improveLogo": { + "message": "Λογότυπο Improve" + }, + "increasePlaybackSpeed": { + "message": "Αύξησε την ταχύτητα αναπαραγωγής" + }, + "increaseVolume": { + "message": "Αύξησε την ένταση" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Αντικείμενα" + }, + "languages": { + "message": "Γλώσσες" + }, + "legacyYoutube": { + "message": "Παλιά έκδοση YouTube" + }, + "light": { + "message": "Ανοιχτόχρωμο" + }, + "lightBlue": { + "message": "Ανοικτό μπλε" + }, + "lightGreen": { + "message": "Ανοικτό πράσινο" + }, + "like": { + "message": "Μου αρέσει" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Μοσχολέμονο" + }, + "list": { + "message": "Λίστα" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Τύπος live chat" + }, + "loudnessNormalization": { + "message": "Κανονικοποίηση έντασης" + }, + "markWatchedVideos": { + "message": "Επισήμανση βίντεο που προβλήθηκαν" + }, + "mixer": { + "message": "Mixer" + }, + "myColors": { + "message": "Τα χρώματά μου" + }, + "name": { + "message": "Όνομα" + }, + "nativeMiniPlayer": { + "message": "Mini player συστήματος" + }, + "new": { + "message": "Νέο" + }, + "nextVideo": { + "message": "Επόμενο βίντεο" + }, + "night": { + "message": "Νύχτα" + }, + "noActiveFeatures": { + "message": "Καμία λειτουργία ενεργή" + }, + "none": { + "message": "Κανένα" + }, + "noOpenVideoTabs": { + "message": "Καμία καρτέλα βίντεο ανοικτή" + }, + "normal": { + "message": "Κανονικό" + }, + "old": { + "message": "Παλιό" + }, + "onAllVideos": { + "message": "Σε όλα τα βίντεο" + }, + "onlyActiveOnYoutube": { + "message": "Μόνο ενεργό στο YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Μόνο ένα player λειτουργεί" + }, + "onSubscribedChannels": { + "message": "Σε κανάλια που έχει γίνει συνδρομή" + }, + "orange": { + "message": "Πορτοκαλί" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Άλλο" + }, + "permissions": { + "message": "Άδεια" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Ροζ" + }, + "plain": { + "message": "Σκέτο" + }, + "platform": { + "message": "Πλατφόρμα" + }, + "playbackSpeed": { + "message": "Ταχύτητα αναπαραγωγής" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Χρώμσ player" + }, + "playerSize": { + "message": "Μέγεθος player" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "playPause": { + "message": "Play / Pause" + }, + "popupPlayer": { + "message": "Popup player" + }, + "position": { + "message": "Θέση" + }, + "pressAnyKeyOrScroll": { + "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." + }, + "previousVideo": { + "message": "Προηγούμενο βίντεο" + }, + "primaryColor": { + "message": "Πρωτεύον χρώμα" + }, + "purple": { + "message": "Μοβ" + }, + "quality": { + "message": "Ποιότητα" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Αξιολόγησέ μας" + }, + "red": { + "message": "Κόκκινο" + }, + "redDislikeButton": { + "message": "Δείξτε το πλήκτρο «Δε μου αρέσει» σε κόκκινο" + }, + "relatedVideos": { + "message": "Σχετικά videos" + }, + "removeRelatedSearchResults": { + "message": "Αφαίρεσε σχετικά αποτελέσματα αναζήτησης" + }, + "repeat": { + "message": "Επανάληψη" + }, + "reset": { + "message": "Επαναφορά" + }, + "resetAllSettings": { + "message": "Επαναφορά όλων των ρυθμίσεων" + }, + "resetAllShortcuts": { + "message": "Επαναφορά όλων των συντομεύσεων" + }, + "reverse": { + "message": "Ανάποδα" + }, + "rotate": { + "message": "Περιστροφή" + }, + "save": { + "message": "Αποθήκευση" + }, + "saveAs": { + "message": "Αποθήκευση ως" + }, + "schedule": { + "message": "Πρόγραμμα" + }, + "screen": { + "message": "Οθόνη" + }, + "screenshot": { + "message": "Στιγμιότυπο" + }, + "search": { + "message": "Αναζήτηση" + }, + "searchBarOnly": { + "message": "Πεδίο αναζήτησης μόνο" + }, + "seekBackward10Seconds": { + "message": "Πίσω 10 δευτερόλεπτα" + }, + "seekForward10Seconds": { + "message": "Μπροστά 10 δευτερόλεπτα" + }, + "settings": { + "message": "Ρυθμίσεις" + }, + "settingsSuccessfullyImported": { + "message": "Επιτυχής εισαγωγή ρυθμίσεων" + }, + "shortcuts": { + "message": "Συντομεύσεις" + }, + "showCardsOnMouseHover": { + "message": "Δείξε τις κάρτες όταν ο κέρσορας είναι από πάνω" + }, + "showChannelVideosCount": { + "message": "Δείξε τις συνολικές προβολές του καναλιού" + }, + "shuffle": { + "message": "Τυχαία αναπαραγωγή" + }, + "sidebar": { + "message": "Sidebar" + }, + "spacebar": { + "message": "Spacebar" + }, + "squaredUserImages": { + "message": "Τετράγωνες εικόνες χρήστη" + }, + "static": { + "message": "Στατικό" + }, + "statsForNerds": { + "message": "Δείξε τα Στατιστικά για Σπασίκλες" + }, + "step": { + "message": "Βήμα" + }, + "stop": { + "message": "Στοπ" + }, + "style": { + "message": "Στυλ" + }, + "styles": { + "message": "Στυλ" + }, + "subscriptions": { + "message": "Συνδρομές" + }, + "subtitles": { + "message": "Υπότιτλοι" + }, + "sunset": { + "message": "Ηλιοβασίλεμα" + }, + "sunsetToSunrise": { + "message": "Από δύση έως ανατολή" + }, + "systemPeferenceDark": { + "message": "Προτίμηση συστήματος: Σκούρο" + }, + "systemPeferenceLight": { + "message": "Προτίμηση συστήματος: Ανοικτόχρωμο" + }, + "teal": { + "message": "Γαλαζιοπράσινο" + }, + "textColor": { + "message": "Χρώμα κειμένου" + }, + "themes": { + "message": "Θέματα" + }, + "thisWillRemoveAllCookies": { + "message": "Αυτό αφαιρεί όλα τα cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Αυτό αφαιρεί όλα τα cookies του YouTube." + }, + "thisWillResetAllSettings": { + "message": "Αυτό επαναφέρει όλες τις ρυθμίσεις." + }, + "thisWillResetAllShortcuts": { + "message": "Αυτό επαναφέρει όλες τις συντομεύσεις." + }, + "thumbnails": { + "message": "Εικονίδια" + }, + "timeFrom": { + "message": "Χρόνος από" + }, + "timeTo": { + "message": "Χρόνος έως" + }, + "todayAt": { + "message": "Σήμερα στις" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Trailer autoplay" + }, + "translations": { + "message": "Μεταφράσεις" + }, + "transparentBackground": { + "message": "Διαφανές υπόβαθρο" + }, + "trending": { + "message": "Τάσεις" + }, + "tryToReloadThePage": { + "message": "Προσπάθησε να επαναφορτώσεις τη σελίδα" + }, + "type": { + "message": "Τύπος" + }, + "upNextAutoplay": { + "message": "Επόμενο στο autoplay" + }, + "use24HourFormat": { + "message": "Χρησιμοποίησε 24ωρη μορφή ώρας" + }, + "version": { + "message": "Έκδοση" + }, + "video": { + "message": "Βίντεο" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Η περιγραφή του βίντεο θα επεκταθεί ωστε να συμπεριληφθεί το όνομα της κατηγορίας." + }, + "videoFormats": { + "message": "Μορφές βίντεο" + }, + "videos": { + "message": "Βίντεο" + }, + "volume": { + "message": "Ένταση" + }, + "watchLater": { + "message": "Δες αργότερα" + }, + "watchTime": { + "message": "Χρόνος προβολής" + }, + "whenTabIsChanged": { + "message": "Όταν αλλάζεις καρτέλα" + }, + "white": { + "message": "Λευκό" + }, + "yellow": { + "message": "Κίτρινο" + }, + "youtubeHeaderLeft": { + "message": "Κεφαλίδα YouTube (αριστερά)" + }, + "youtubeHeaderRight": { + "message": "Κεφαλίδα YouTube (δεξιά)" + }, + "youtubeHomePage": { + "message": "Αρχική σελίδα YouTube" + }, + "youtubeLanguage": { + "message": "Γλώσσα YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "Το YouTube περιορίζει την ποιότητα σε 1080p για το h.264 codec" + } +} \ No newline at end of file diff --git a/_locales/en/messages.json b/_locales/en/messages.json new file mode 100644 index 000000000..873cf124f --- /dev/null +++ b/_locales/en/messages.json @@ -0,0 +1,812 @@ +{ + "about": { + "message": "About" + }, + "accept": { + "message": "Accept" + }, + "activate": { + "message": "Activate" + }, + "activateCaptions": { + "message": "Activate captions" + }, + "activated": { + "message": "Activated" + }, + "activatedFeatures": { + "message": "Activated features" + }, + "activateFullscreen": { + "message": "Activate fullscreen" + }, + "activeFeatures": { + "message": "Active features" + }, + "addScrollToTop": { + "message": "Add «Scroll to top»" + }, + "ads": { + "message": "Ads" + }, + "all": { + "message": "All" + }, + "allow": { + "message": "Allow" + }, + "allow60fps": { + "message": "Allow 60fps" + }, + "alwaysActive": { + "message": "Always active" + }, + "alwaysShowProgressBar": { + "message": "Always show progress bar" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analyzer" + }, + "appearance": { + "message": "Appearance" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formats" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullscreen" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause when switching tabs" + }, + "autoplay": { + "message": "Autoplay" + }, + "backupAndReset": { + "message": "Backup & reset" + }, + "baseOnSystemColorScheme": { + "message": "Base on system color scheme" + }, + "belowPlayer": { + "message": "Below player" + }, + "black": { + "message": "Black" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "Block all" + }, + "blue": { + "message": "Blue" + }, + "blueGray": { + "message": "Blue gray" + }, + "bluelight": { + "message": "Bluelight" + }, + "brown": { + "message": "Brown" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser version" + }, + "bubbles": { + "message": "Bubbles" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Buttons" + }, + "cancel": { + "message": "Cancel" + }, + "categories": { + "message": "Categories" + }, + "channel": { + "message": "Channel" + }, + "channels": { + "message": "Channels" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapsed": { + "message": "Collapsed" + }, + "collapseOfSubscriptionSections": { + "message": "Collapse of subscription sections" + }, + "comments": { + "message": "Comments" + }, + "confirmationBeforeClosing": { + "message": "Confirmation before closing" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Custom JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Dark" + }, + "darkTheme": { + "message": "Dark theme" + }, + "dateAndTime": { + "message": "Date & time" + }, + "dawn": { + "message": "Dawn" + }, + "decreasePlaybackSpeed": { + "message": "Decrease playback speed" + }, + "decreaseVolume": { + "message": "Decrease volume" + }, + "deepOrange": { + "message": "Deep orange" + }, + "deepPurple": { + "message": "Deep purple" + }, + "defaultChannelTab": { + "message": "Default channel tab" + }, + "deleteYoutubeCookies": { + "message": "Delete YouTube cookies" + }, + "description": { + "message": "Description" + }, + "desert": { + "message": "Desert" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Developer options" + }, + "device": { + "message": "Device" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Disabled" + }, + "dislike": { + "message": "Dislike" + }, + "donate": { + "message": "Donate" + }, + "doNotChange": { + "message": "Don't change" + }, + "draggable": { + "message": "Draggable" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Empty" + }, + "enabled": { + "message": "Enabled" + }, + "enabledForced": { + "message": "Enabled (forced)" + }, + "expanded": { + "message": "Expanded" + }, + "exportSettings": { + "message": "Export settings" + }, + "extension": { + "message": "Extension" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filters" + }, + "fitToWindow": { + "message": "Fit to window" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "footer": { + "message": "Footer" + }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, + "forcedTheaterMode": { + "message": "Forced theater mode" + }, + "forcedVolume": { + "message": "Forced volume" + }, + "foundABug": { + "message": "Found a bug?" + }, + "fullWindow": { + "message": "Full window" + }, + "general": { + "message": "General" + }, + "geoPreference": { + "message": "Geo Preference" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Go to search box" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Green" + }, + "hdThumbnail": { + "message": "HD thumbnail" + }, + "hdThumbnails": { + "message": "HD thumbnails" + }, + "header": { + "message": "Header" + }, + "hidden": { + "message": "Hidden" + }, + "hiddenOnVideoPage": { + "message": "Hidden on video page" + }, + "hideAnimatedThumbnails": { + "message": "Hide animated thumbnails" + }, + "hideAnnotations": { + "message": "Hide annotations" + }, + "hideCards": { + "message": "Hide cards" + }, + "hideDetails": { + "message": "Hide details" + }, + "hideEndscreen": { + "message": "Hide endscreen" + }, + "hideFeaturedContent": { + "message": "Hide featured content" + }, + "hideFooter": { + "message": "Hide footer" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hidePlaylist": { + "message": "Hide playlist" + }, + "hideRightButtons": { + "message": "Hide right buttons" + }, + "hideScrollForDetails": { + "message": "Hide «Scroll for details»" + }, + "hideViewsCount": { + "message": "Hide views count" + }, + "history": { + "message": "History" + }, + "home": { + "message": "Home" + }, + "hover": { + "message": "Hover" + }, + "hoverOnVideoPage": { + "message": "Hover on video page" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "How long ago the video was uploaded" + }, + "icons": { + "message": "Icons" + }, + "iconsOnly": { + "message": "Icons only" + }, + "importSettings": { + "message": "Import settings" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube icon in Browser" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube icon on YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube language" + }, + "improvedtubeVersion": { + "message": "ImprovedTube version" + }, + "improveLogo": { + "message": "Improve logo" + }, + "increasePlaybackSpeed": { + "message": "Increase playback speed" + }, + "increaseVolume": { + "message": "Increase volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "Languages" + }, + "legacyYoutube": { + "message": "Legacy YouTube" + }, + "light": { + "message": "Light" + }, + "lightBlue": { + "message": "Light blue" + }, + "lightGreen": { + "message": "Light green" + }, + "like": { + "message": "Like" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Lime" + }, + "list": { + "message": "List" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Live chat type" + }, + "loudnessNormalization": { + "message": "Loudness normalization" + }, + "markWatchedVideos": { + "message": "Mark watched videos" + }, + "mixer": { + "message": "Mixer" + }, + "myColors": { + "message": "My colors" + }, + "name": { + "message": "Name" + }, + "nativeMiniPlayer": { + "message": "Native mini player" + }, + "new": { + "message": "New" + }, + "nextVideo": { + "message": "Next video" + }, + "night": { + "message": "Night" + }, + "noActiveFeatures": { + "message": "No active features" + }, + "none": { + "message": "None" + }, + "noOpenVideoTabs": { + "message": "No open video tabs" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Old" + }, + "onAllVideos": { + "message": "On all videos" + }, + "onlyActiveOnYoutube": { + "message": "Only active on YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "onSubscribedChannels": { + "message": "On subscribed channels" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Other" + }, + "permissions": { + "message": "Permissions" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Pink" + }, + "plain": { + "message": "Plain" + }, + "platform": { + "message": "Platform" + }, + "playbackSpeed": { + "message": "Playback speed" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Player color" + }, + "playerSize": { + "message": "Player size" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "playPause": { + "message": "Play / Pause" + }, + "popupPlayer": { + "message": "Popup player" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Press any key or use mouse wheel." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Press any key or use mouse wheel" + }, + "previousVideo": { + "message": "Previous video" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "Purple" + }, + "quality": { + "message": "Quality" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Rate us" + }, + "red": { + "message": "Red" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Related videos" + }, + "removeRelatedSearchResults": { + "message": "Remove related search results" + }, + "repeat": { + "message": "Repeat" + }, + "reset": { + "message": "Reset" + }, + "resetAllSettings": { + "message": "Reset all settings" + }, + "resetAllShortcuts": { + "message": "Reset all shortcuts" + }, + "reverse": { + "message": "Reverse" + }, + "rotate": { + "message": "Rotate" + }, + "save": { + "message": "Save" + }, + "saveAs": { + "message": "Save as" + }, + "schedule": { + "message": "Schedule" + }, + "screen": { + "message": "Screen" + }, + "screenshot": { + "message": "Screenshot" + }, + "search": { + "message": "Search" + }, + "searchBarOnly": { + "message": "Search bar only" + }, + "seekBackward10Seconds": { + "message": "Seek backward 10 seconds" + }, + "seekForward10Seconds": { + "message": "Seek forward 10 seconds" + }, + "settings": { + "message": "Settings" + }, + "settingsSuccessfullyImported": { + "message": "Settings successfully imported" + }, + "shortcuts": { + "message": "Shortcuts" + }, + "showCardsOnMouseHover": { + "message": "Show cards on mouse hover" + }, + "showChannelVideosCount": { + "message": "Show channel videos count" + }, + "shuffle": { + "message": "Shuffle" + }, + "sidebar": { + "message": "Sidebar" + }, + "spacebar": { + "message": "Spacebar" + }, + "squaredUserImages": { + "message": "Squared user images" + }, + "static": { + "message": "Static" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscriptions": { + "message": "Subscriptions" + }, + "subtitles": { + "message": "Subtitles" + }, + "sunset": { + "message": "Sunset" + }, + "sunsetToSunrise": { + "message": "Sunset to sunrise" + }, + "systemPeferenceDark": { + "message": "System peference: dark" + }, + "systemPeferenceLight": { + "message": "System peference: light" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Text color" + }, + "themes": { + "message": "Themes" + }, + "thisWillRemoveAllCookies": { + "message": "This will remove all cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "This will remove all YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "This will reset all settings." + }, + "thisWillResetAllShortcuts": { + "message": "This will reset all shortcuts" + }, + "thumbnails": { + "message": "Thumbnails" + }, + "timeFrom": { + "message": "Time from" + }, + "timeTo": { + "message": "Time to" + }, + "todayAt": { + "message": "Today at" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Trailer autoplay" + }, + "translations": { + "message": "Translations" + }, + "transparentBackground": { + "message": "Transparent background" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Try to reload the page" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Up next autoplay" + }, + "use24HourFormat": { + "message": "Use 24-hour format" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video description will be expanded to get the name of the category" + }, + "videoFormats": { + "message": "Video formats" + }, + "videos": { + "message": "Videos" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Watch later" + }, + "watchTime": { + "message": "Watch time" + }, + "whenTabIsChanged": { + "message": "When tab is changed" + }, + "white": { + "message": "White" + }, + "yellow": { + "message": "Yellow" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (left)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (right)" + }, + "youtubeHomePage": { + "message": "YouTube home page" + }, + "youtubeLanguage": { + "message": "YouTube language" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limits video quality to 1080p for h.264 codec" + } +} \ No newline at end of file diff --git a/_locales/es/messages.json b/_locales/es/messages.json new file mode 100644 index 000000000..c2ec8e487 --- /dev/null +++ b/_locales/es/messages.json @@ -0,0 +1,809 @@ +{ + "about": { + "message": "Acerca de" + }, + "accept": { + "message": "Aceptar" + }, + "activate": { + "message": "Activar" + }, + "activateCaptions": { + "message": "Activar subtítulos" + }, + "activated": { + "message": "Activado" + }, + "activatedFeatures": { + "message": "Características activadas" + }, + "activateFullscreen": { + "message": "Activar pantalla completa" + }, + "activeFeatures": { + "message": "Activar características" + }, + "addScrollToTop": { + "message": "Añadir «Volver arriba»" + }, + "ads": { + "message": "Ads" + }, + "all": { + "message": "Todo" + }, + "allow": { + "message": "Permitir" + }, + "allow60fps": { + "message": "Permitir 60fps" + }, + "alwaysActive": { + "message": "Siempre activo" + }, + "alwaysShowProgressBar": { + "message": "Siempre mostrar barra de progreso" + }, + "amber": { + "message": "Ámbar" + }, + "analyzer": { + "message": "Analizador" + }, + "appearance": { + "message": "Apariencia" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formatos de audio" + }, + "auto": { + "message": "Automático" + }, + "autoFullscreen": { + "message": "Pantalla completa automática" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausar al cambiar de pestaña" + }, + "autoplay": { + "message": "Reproducción automática" + }, + "backupAndReset": { + "message": "Backup & reset" + }, + "baseOnSystemColorScheme": { + "message": "Según tema del sistema" + }, + "belowPlayer": { + "message": "Debajo del reproductor" + }, + "black": { + "message": "Negro" + }, + "blacklist": { + "message": "Lista negra" + }, + "blockAll": { + "message": "Bloquear todo" + }, + "blue": { + "message": "Azul" + }, + "blueGray": { + "message": "Gris azulado" + }, + "bluelight": { + "message": "Luz azul" + }, + "brown": { + "message": "Marrón" + }, + "browser": { + "message": "Navegador" + }, + "browserVersion": { + "message": "Version del navegador" + }, + "bubbles": { + "message": "Burbujas" + }, + "bug": { + "message": "Error (Bug)" + }, + "buttons": { + "message": "Botones" + }, + "cancel": { + "message": "Cancelar" + }, + "categories": { + "message": "Categorías" + }, + "channel": { + "message": "Canal" + }, + "channels": { + "message": "Canales" + }, + "clipboard": { + "message": "Portapapeles" + }, + "codecH264": { + "message": "Códec h.264" + }, + "collapsed": { + "message": "Compacto" + }, + "collapseOfSubscriptionSections": { + "message": "Compactar sección de suscripciones" + }, + "comments": { + "message": "Comentarios" + }, + "confirmationBeforeClosing": { + "message": "Confirmar antes de cerrar" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Núcleos" + }, + "cropChapterTitles": { + "message": "Recortar título de capítulos" + }, + "customCss": { + "message": "CSS personalizado" + }, + "customJs": { + "message": "JS personalizado" + }, + "customMiniPlayer": { + "message": "Mini-Reproductor personalizado" + }, + "cyan": { + "message": "Cian" + }, + "dark": { + "message": "Oscuro" + }, + "darkTheme": { + "message": "Tema oscuro" + }, + "dateAndTime": { + "message": "Fecha y hora" + }, + "dawn": { + "message": "Amanecer" + }, + "decreasePlaybackSpeed": { + "message": "Disminuir velocidad de reproducción" + }, + "decreaseVolume": { + "message": "Bajar volumen" + }, + "deepOrange": { + "message": "Naranja profundo" + }, + "deepPurple": { + "message": "Violeta profundo" + }, + "defaultChannelTab": { + "message": "Pestaña del canal por defecto" + }, + "deleteYoutubeCookies": { + "message": "Borrar cookies de YouTube" + }, + "description": { + "message": "Descripción" + }, + "desert": { + "message": "Desierto" + }, + "details": { + "message": "Detalles" + }, + "developerOptions": { + "message": "Opciones de desarrollador" + }, + "device": { + "message": "Dispositivo" + }, + "dim": { + "message": "Oscuro" + }, + "disabled": { + "message": "Desactivado" + }, + "dislike": { + "message": "Dislike" + }, + "donate": { + "message": "Donar" + }, + "doNotChange": { + "message": "No cambiar" + }, + "draggable": { + "message": "Arrastrable" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Vacío" + }, + "enabled": { + "message": "Activado" + }, + "enabledForced": { + "message": "Activado (forzado)" + }, + "expanded": { + "message": "Expandido" + }, + "exportSettings": { + "message": "Exportar configuración" + }, + "extension": { + "message": "Extensión" + }, + "file": { + "message": "Archivo" + }, + "filters": { + "message": "Filtros" + }, + "fitToWindow": { + "message": "Ajustar a la ventana" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Fuente" + }, + "footer": { + "message": "Pie" + }, + "forcedPlaybackSpeed": { + "message": "Forzar velocidad de reproducción" + }, + "forcedTheaterMode": { + "message": "Forzar modo teatro" + }, + "forcedVolume": { + "message": "Forzar volumen" + }, + "foundABug": { + "message": "¿Encontraste un error (bug)?" + }, + "fullWindow": { + "message": "Pantalla completa" + }, + "general": { + "message": "General" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Ir a barra de búsqueda" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hdThumbnail": { + "message": "Miniatura HD" + }, + "hdThumbnails": { + "message": "Miniaturas HD" + }, + "header": { + "message": "Encabezado" + }, + "hidden": { + "message": "Oculto" + }, + "hiddenOnVideoPage": { + "message": "Oculto en la página de video" + }, + "hideAnimatedThumbnails": { + "message": "Ocultar miniaturas animadas" + }, + "hideAnnotations": { + "message": "Ocultar anotaciones" + }, + "hideCards": { + "message": "Ocultar tarjetas" + }, + "hideDetails": { + "message": "Ocultar detalles" + }, + "hideEndscreen": { + "message": "Ocultar pantalla final" + }, + "hideFeaturedContent": { + "message": "Ocultar contenido destacado" + }, + "hideFooter": { + "message": "Ocultar pie de página" + }, + "hideGradientBottom": { + "message": "Ocultar parte inferior degradada" + }, + "hidePlaylist": { + "message": "Ocultar playlist" + }, + "hideRightButtons": { + "message": "Ocultar botones de la derecha" + }, + "hideScrollForDetails": { + "message": "Ocultar «Desliza hacia abajo para ver más detalles»" + }, + "hideViewsCount": { + "message": "Ocultar contador de visitas" + }, + "history": { + "message": "Historial" + }, + "home": { + "message": "Inicio" + }, + "hover": { + "message": "Cursor sobre (hover)" + }, + "hoverOnVideoPage": { + "message": "Cursor sobre (hover) en página de video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Hace cuánto tiempo se subió el video" + }, + "icons": { + "message": "Iconos" + }, + "iconsOnly": { + "message": "Solo iconos" + }, + "importSettings": { + "message": "Importar configuración" + }, + "improvedtubeIconInBrowser": { + "message": "Icono ImprovedTube en el navegador" + }, + "improvedtubeIconOnYoutube": { + "message": "Icono ImprovedTube en YouTube" + }, + "improvedtubeLanguage": { + "message": "Idioma de ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Version de ImprovedTube" + }, + "improveLogo": { + "message": "Mejorar logo" + }, + "increasePlaybackSpeed": { + "message": "Aumentar velocidad de reproducción" + }, + "increaseVolume": { + "message": "Subir volumen" + }, + "indigo": { + "message": "Índigo" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "Idiomas" + }, + "legacyYoutube": { + "message": " YouTube antiguo" + }, + "light": { + "message": "Claro" + }, + "lightBlue": { + "message": "Azul claro" + }, + "lightGreen": { + "message": "Verde claro" + }, + "like": { + "message": "Like" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Lima" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Chat en directo" + }, + "liveChatType": { + "message": "Tipo de chat en directo" + }, + "loudnessNormalization": { + "message": "Normalización de volumen" + }, + "markWatchedVideos": { + "message": "Marcar videos vistos" + }, + "mixer": { + "message": "Mezclador" + }, + "myColors": { + "message": "Mis colores" + }, + "name": { + "message": "Nombre" + }, + "nativeMiniPlayer": { + "message": "Mini-Reproductor nativo" + }, + "new": { + "message": "Nuevo" + }, + "nextVideo": { + "message": "Siguiente video" + }, + "night": { + "message": "Noche" + }, + "noActiveFeatures": { + "message": "Sin características activas" + }, + "none": { + "message": "Ninguno" + }, + "noOpenVideoTabs": { + "message": "Sin pestañas de video abiertas" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Viejo" + }, + "onAllVideos": { + "message": "En todos los videos" + }, + "onlyActiveOnYoutube": { + "message": "Solo activo en YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Solo una pestaña reproduciendo" + }, + "onSubscribedChannels": { + "message": "En canales suscritos" + }, + "orange": { + "message": "Naranja" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Otro" + }, + "permissions": { + "message": "Permisos" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Plano" + }, + "platform": { + "message": "Plataforma" + }, + "playbackSpeed": { + "message": "Velocidad de reproducción" + }, + "player": { + "message": "Reproductor" + }, + "playerColor": { + "message": "Color del reproductor" + }, + "playerSize": { + "message": "Tamaño del reproductor" + }, + "playlist": { + "message": "Lista de reproducción" + }, + "playlists": { + "message": "Listas de reproducción" + }, + "playPause": { + "message": "Reproducir / pausar" + }, + "popupPlayer": { + "message": "Reproductor emergente" + }, + "position": { + "message": "Posición" + }, + "pressAnyKeyOrScroll": { + "message": "Aprieta una tecla o haz scroll" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Aprieta una tecla o usa la rueda del ratón" + }, + "previousVideo": { + "message": "Reproducir video anterior" + }, + "primaryColor": { + "message": "Color Primario" + }, + "purple": { + "message": "Morado" + }, + "quality": { + "message": "Calidad" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Califíquenos" + }, + "red": { + "message": "Rojo" + }, + "redDislikeButton": { + "message": "Mostrar el botón de dislike de color rojo" + }, + "relatedVideos": { + "message": "Vídeos relacionados" + }, + "removeRelatedSearchResults": { + "message": "Quitar resultados relacionados" + }, + "repeat": { + "message": "Repetir" + }, + "reset": { + "message": "Reiniciar" + }, + "resetAllSettings": { + "message": "Restablecer todos los ajustes" + }, + "resetAllShortcuts": { + "message": "Restablecer todos los atajos" + }, + "reverse": { + "message": "Revertir" + }, + "rotate": { + "message": "Rotar" + }, + "save": { + "message": "Guardar" + }, + "saveAs": { + "message": "Guardar como" + }, + "schedule": { + "message": "Programar" + }, + "screen": { + "message": "Pantalla" + }, + "screenshot": { + "message": "Captura de pantalla" + }, + "search": { + "message": "Búsqueda" + }, + "searchBarOnly": { + "message": "Solo barra de búsqueda" + }, + "seekBackward10Seconds": { + "message": "Retroceder 10 segundos" + }, + "seekForward10Seconds": { + "message": "Adelantar 10 segundos" + }, + "settings": { + "message": "Ajustes" + }, + "settingsSuccessfullyImported": { + "message": "Ajustes importados correctamente" + }, + "shortcuts": { + "message": "Atajos" + }, + "showCardsOnMouseHover": { + "message": "Mostrar tarjetas al pasar el ratón" + }, + "showChannelVideosCount": { + "message": "Mostrar recuento de videos del canal" + }, + "shuffle": { + "message": "Aleatorio" + }, + "sidebar": { + "message": "Barra lateral" + }, + "spacebar": { + "message": "Espacio" + }, + "squaredUserImages": { + "message": "Fotos de perfil cuadradas" + }, + "static": { + "message": "Estático" + }, + "statsForNerds": { + "message": "Mostrar estadísticas para Nerds" + }, + "step": { + "message": "Paso" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Estilo" + }, + "styles": { + "message": "Estilos" + }, + "subscriptions": { + "message": "Suscripciones" + }, + "subtitles": { + "message": "Subtítulos" + }, + "sunset": { + "message": "Atardecer" + }, + "sunsetToSunrise": { + "message": "De atardecer a amanecer" + }, + "systemPeferenceDark": { + "message": "Preferencia del sistema: Oscuro" + }, + "systemPeferenceLight": { + "message": "Preferencia del sistema: Claro" + }, + "teal": { + "message": "Verde azulado" + }, + "textColor": { + "message": "Color del texto" + }, + "themes": { + "message": "Temas" + }, + "thisWillRemoveAllCookies": { + "message": "Esto borrará todas las cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Esto borrará todas las cookies de YouTube" + }, + "thisWillResetAllSettings": { + "message": "Esto restablecerá todos los ajustes" + }, + "thisWillResetAllShortcuts": { + "message": "Esto restablecerá todos los atajos" + }, + "thumbnails": { + "message": "Miniaturas" + }, + "timeFrom": { + "message": "Desde" + }, + "timeTo": { + "message": "Hasta" + }, + "todayAt": { + "message": "Hoy a las" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Reproducción automática de trailer" + }, + "translations": { + "message": "Traducciones" + }, + "transparentBackground": { + "message": "Fondo transparente" + }, + "trending": { + "message": "Tendencias" + }, + "tryToReloadThePage": { + "message": "Trata de recargar la página" + }, + "type": { + "message": "Tipo" + }, + "upNextAutoplay": { + "message": "Siguiente reproducción automática" + }, + "use24HourFormat": { + "message": "Usar formato 24 horas" + }, + "version": { + "message": "Versión" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "La descripción del video se expandirá para obtener el nombre de la categoría." + }, + "videoFormats": { + "message": "Formatos de video" + }, + "videos": { + "message": "Videos" + }, + "volume": { + "message": "Volumen" + }, + "watchLater": { + "message": "Ver más tarde" + }, + "watchTime": { + "message": "Visualizaciones" + }, + "whenTabIsChanged": { + "message": "Al cambiar de pestaña" + }, + "white": { + "message": "Blanco" + }, + "yellow": { + "message": "Amarillo" + }, + "youtubeHeaderLeft": { + "message": "Encabezado YouTube (izq)" + }, + "youtubeHeaderRight": { + "message": "Encabezado YouTube (der)" + }, + "youtubeHomePage": { + "message": "Página de inicio de YouTube" + }, + "youtubeLanguage": { + "message": "Idioma de YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limita calidad de video a 1080p para el codec h.264" + } +} \ No newline at end of file diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json new file mode 100644 index 000000000..76019e5f4 --- /dev/null +++ b/_locales/fr/messages.json @@ -0,0 +1,809 @@ +{ + "about": { + "message": "À propos" + }, + "accept": { + "message": "Accepter" + }, + "activate": { + "message": "Activer" + }, + "activateCaptions": { + "message": "Activer les sous-titres" + }, + "activated": { + "message": "Activé" + }, + "activatedFeatures": { + "message": "Fonctionnalités activées" + }, + "activateFullscreen": { + "message": "Activer le plein écran" + }, + "activeFeatures": { + "message": "Fonctionnalités actives" + }, + "addScrollToTop": { + "message": "Ajouter « Remonter en haut »" + }, + "ads": { + "message": "Publicités" + }, + "all": { + "message": "Voir tout" + }, + "allow": { + "message": "Permettre" + }, + "allow60fps": { + "message": "Jouer à 60 fps" + }, + "alwaysActive": { + "message": "Toujours activé" + }, + "alwaysShowProgressBar": { + "message": "Toujours afficher la barre de progression" + }, + "amber": { + "message": "Ambre" + }, + "analyzer": { + "message": "Analyser" + }, + "appearance": { + "message": "Apparence" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formats de fichier audio" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Plein écran automatique" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pause automatique lors d'un changement d'onglet" + }, + "autoplay": { + "message": "Lecture automatique" + }, + "backupAndReset": { + "message": "Sauvegarde et réinitialisation" + }, + "baseOnSystemColorScheme": { + "message": "Selon les paramètres du système" + }, + "belowPlayer": { + "message": "Sous le player" + }, + "black": { + "message": "Noir" + }, + "blacklist": { + "message": "Liste noire" + }, + "blockAll": { + "message": "Tout bloquer" + }, + "blue": { + "message": "Bleu" + }, + "blueGray": { + "message": "Gris-bleu" + }, + "bluelight": { + "message": "Bleu pâle" + }, + "brown": { + "message": "Brun" + }, + "browser": { + "message": "Navigateur web" + }, + "browserVersion": { + "message": "Version du navigateur web" + }, + "bubbles": { + "message": "Bulles" + }, + "bug": { + "message": "Bogue" + }, + "buttons": { + "message": "Boutons" + }, + "cancel": { + "message": "Annuler" + }, + "categories": { + "message": "Catégories" + }, + "channel": { + "message": "Chaîne" + }, + "channels": { + "message": "Chaînes" + }, + "clipboard": { + "message": "Presse-papiers" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapsed": { + "message": "Réduire" + }, + "collapseOfSubscriptionSections": { + "message": "Réduire la section des abonnements" + }, + "comments": { + "message": "Commentaires" + }, + "confirmationBeforeClosing": { + "message": "Confirmation avant la fermeture" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Noyaux" + }, + "cropChapterTitles": { + "message": "Couper les titres des chapitres" + }, + "customCss": { + "message": "CSS customisé" + }, + "customJs": { + "message": "JS customisé" + }, + "customMiniPlayer": { + "message": "Mini-lecteur personnalisé" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Sombre" + }, + "darkTheme": { + "message": "Thème sombre" + }, + "dateAndTime": { + "message": "Date et temps" + }, + "dawn": { + "message": "Aube" + }, + "decreasePlaybackSpeed": { + "message": "Réduire la vitesse de lecture" + }, + "decreaseVolume": { + "message": "Réduire le volume" + }, + "deepOrange": { + "message": "Orange foncé" + }, + "deepPurple": { + "message": "Violet foncé" + }, + "defaultChannelTab": { + "message": "Onglet par défaut d'une chaîne" + }, + "deleteYoutubeCookies": { + "message": "Supprimer les cookies YouTube" + }, + "description": { + "message": "Description" + }, + "desert": { + "message": "Desert" + }, + "details": { + "message": "Détails" + }, + "developerOptions": { + "message": "Options de développeur" + }, + "device": { + "message": "Appareil" + }, + "dim": { + "message": "Assombrir" + }, + "disabled": { + "message": "Désactivé" + }, + "dislike": { + "message": "Je n'aime pas" + }, + "donate": { + "message": "Donner" + }, + "doNotChange": { + "message": "Ne pas changer" + }, + "draggable": { + "message": "Draggable" + }, + "email": { + "message": "Courriel" + }, + "empty": { + "message": "Vide" + }, + "enabled": { + "message": "Activé" + }, + "enabledForced": { + "message": "Activé (forcé)" + }, + "expanded": { + "message": "Étendu" + }, + "exportSettings": { + "message": "Exporter les réglages" + }, + "extension": { + "message": "Extension" + }, + "file": { + "message": "Fichier" + }, + "filters": { + "message": "Filtres" + }, + "fitToWindow": { + "message": "Ajuster à la fenêtre" + }, + "flash": { + "message": "Clignoter" + }, + "font": { + "message": "Police" + }, + "footer": { + "message": "Bas de page" + }, + "forcedPlaybackSpeed": { + "message": "Vitesse de lecture forcée" + }, + "forcedTheaterMode": { + "message": "Forcer le mode théâtre" + }, + "forcedVolume": { + "message": "Forcer le volume" + }, + "foundABug": { + "message": "Un bogue?" + }, + "fullWindow": { + "message": "Fenêtre pleine" + }, + "general": { + "message": "Général" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Aller à la barre de recherche" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Vert" + }, + "hdThumbnail": { + "message": "Vignette HD" + }, + "hdThumbnails": { + "message": "Vignettes HD" + }, + "header": { + "message": "Tête de page" + }, + "hidden": { + "message": "Caché" + }, + "hiddenOnVideoPage": { + "message": "Caché sur la page de la vidéo" + }, + "hideAnimatedThumbnails": { + "message": "Vignettes sans animation" + }, + "hideAnnotations": { + "message": "Cacher les annotations" + }, + "hideCards": { + "message": "Cacher les cartes" + }, + "hideDetails": { + "message": "Cacher les détails" + }, + "hideEndscreen": { + "message": "Cacher l'écran de fin" + }, + "hideFeaturedContent": { + "message": "Cacher le contenu recommandé" + }, + "hideFooter": { + "message": "Cacher le pied de page" + }, + "hideGradientBottom": { + "message": "Masquer le dégradé du bas" + }, + "hidePlaylist": { + "message": "Cacher la liste de lecture" + }, + "hideRightButtons": { + "message": "Cacher les boutons à droite" + }, + "hideScrollForDetails": { + "message": "Cacher « Faire défiler pour les détails »" + }, + "hideViewsCount": { + "message": "Voir le compte des vues" + }, + "history": { + "message": "Historique" + }, + "home": { + "message": "Accueil" + }, + "hover": { + "message": "Survoler" + }, + "hoverOnVideoPage": { + "message": "Survoler la page de la vidéo" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Depuis combien de temps la vidéo a été téléversé?" + }, + "icons": { + "message": "Icônes" + }, + "iconsOnly": { + "message": "Uniquement les icônes" + }, + "importSettings": { + "message": "Importer les réglages" + }, + "improvedtubeIconInBrowser": { + "message": "Afficher l'icône ImprovedTube dans le navigateur web" + }, + "improvedtubeIconOnYoutube": { + "message": "Afficher l'icône ImprovedTube sur YouTube" + }, + "improvedtubeLanguage": { + "message": "Langue d'ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Version d'ImprovedTube" + }, + "improveLogo": { + "message": "Améliorer le logo" + }, + "increasePlaybackSpeed": { + "message": "Accélérer la vitesse de lecture" + }, + "increaseVolume": { + "message": "Augmenter le volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Objets" + }, + "languages": { + "message": "Langues" + }, + "legacyYoutube": { + "message": "Ancienne version de Youtube" + }, + "light": { + "message": "Clair" + }, + "lightBlue": { + "message": "Bleu clair" + }, + "lightGreen": { + "message": "Vert clair" + }, + "like": { + "message": "J'aime" + }, + "likes": { + "message": "J'aime" + }, + "lime": { + "message": "Citron vert" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Chat en direct" + }, + "liveChatType": { + "message": "Type de chat en direct" + }, + "loudnessNormalization": { + "message": "Normalisation de l'intensité sonore" + }, + "markWatchedVideos": { + "message": "Marquer les vidéos déjà visionnées" + }, + "mixer": { + "message": "Mélangeur de volume" + }, + "myColors": { + "message": "Mes couleurs" + }, + "name": { + "message": "Nom" + }, + "nativeMiniPlayer": { + "message": "Mini-lecteur natif" + }, + "new": { + "message": "Nouveau" + }, + "nextVideo": { + "message": "Prochaine vidéo" + }, + "night": { + "message": "Nuit" + }, + "noActiveFeatures": { + "message": "Pas de fonctionalité active" + }, + "none": { + "message": "Aucun" + }, + "noOpenVideoTabs": { + "message": "Aucun onglet de vidéo ouvert" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Vieux" + }, + "onAllVideos": { + "message": "Pour toutes les vidéos" + }, + "onlyActiveOnYoutube": { + "message": "Uniquement actif sur YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Une seule instance à la fois" + }, + "onSubscribedChannels": { + "message": "Sur les chaînes auxquelles je suis abonné" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Autres" + }, + "permissions": { + "message": "Permissions" + }, + "pictureInPicture": { + "message": "Image dans l'image" + }, + "pink": { + "message": "Rose" + }, + "plain": { + "message": "Ordinaire" + }, + "platform": { + "message": "Platforme" + }, + "playbackSpeed": { + "message": "Vitesse de lecture" + }, + "player": { + "message": "Lecteur" + }, + "playerColor": { + "message": "Couleur du lecteur" + }, + "playerSize": { + "message": "Taille du lecteur" + }, + "playlist": { + "message": "Liste de lecture" + }, + "playlists": { + "message": "Listes de lecture" + }, + "playPause": { + "message": "Jouer / Pause" + }, + "popupPlayer": { + "message": "Détacher le lecteur" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." + }, + "previousVideo": { + "message": "Vidéo précédente" + }, + "primaryColor": { + "message": "Couleur primaire" + }, + "purple": { + "message": "Violet" + }, + "quality": { + "message": "Qualité" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Nous évaluer" + }, + "red": { + "message": "Rouge" + }, + "redDislikeButton": { + "message": "Afficher la couleur rouge du bouton Je n'aime pas" + }, + "relatedVideos": { + "message": "Vidéos associés" + }, + "removeRelatedSearchResults": { + "message": "Supprimer les résultats de recherche associés" + }, + "repeat": { + "message": "Lire en boucle" + }, + "reset": { + "message": "Réintialiser" + }, + "resetAllSettings": { + "message": "Réinitialiser les réglages" + }, + "resetAllShortcuts": { + "message": "Réinitialiser les raccourcis" + }, + "reverse": { + "message": "Inverser" + }, + "rotate": { + "message": "Faire pivoter la vidéo" + }, + "save": { + "message": "Sauvegarder" + }, + "saveAs": { + "message": "Sauvegarder sous" + }, + "schedule": { + "message": "Planifier" + }, + "screen": { + "message": "Écran" + }, + "screenshot": { + "message": "Capture d'écran" + }, + "search": { + "message": "Rechercher" + }, + "searchBarOnly": { + "message": "Uniquement la barre de recherche" + }, + "seekBackward10Seconds": { + "message": "Reculer de 10 secondes" + }, + "seekForward10Seconds": { + "message": "Avancer de 10 secondes" + }, + "settings": { + "message": "Réglages" + }, + "settingsSuccessfullyImported": { + "message": "Importation des réglages réussie" + }, + "shortcuts": { + "message": "Raccourcis" + }, + "showCardsOnMouseHover": { + "message": "Afficher les cartes au survol de la souris" + }, + "showChannelVideosCount": { + "message": "Afficher le nombre de vidéos de la chaîne" + }, + "shuffle": { + "message": "Aléatoire" + }, + "sidebar": { + "message": "Barre latérale" + }, + "spacebar": { + "message": "Barre d'espace" + }, + "squaredUserImages": { + "message": "Images des utilisateurs carrées" + }, + "static": { + "message": "Statique" + }, + "statsForNerds": { + "message": "Statistiques pour nerd" + }, + "step": { + "message": "Étape" + }, + "stop": { + "message": "Arrêter" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscriptions": { + "message": "Abonnements" + }, + "subtitles": { + "message": "Activer les sous-titres" + }, + "sunset": { + "message": "Coucher de soleil" + }, + "sunsetToSunrise": { + "message": "Du coucher au lever du Soleil" + }, + "systemPeferenceDark": { + "message": "Préférence système : sombre" + }, + "systemPeferenceLight": { + "message": "Préférence système : clair" + }, + "teal": { + "message": "Sarcelle" + }, + "textColor": { + "message": "Couleur du texte" + }, + "themes": { + "message": "Thèmes" + }, + "thisWillRemoveAllCookies": { + "message": "Supprimer tous les cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Supprimer tous les cookies Youtube." + }, + "thisWillResetAllSettings": { + "message": "Réintialiser les réglages." + }, + "thisWillResetAllShortcuts": { + "message": "Réintialiser les raccourcis." + }, + "thumbnails": { + "message": "Vignettes" + }, + "timeFrom": { + "message": "Temps de" + }, + "timeTo": { + "message": "Temps au" + }, + "todayAt": { + "message": "Aujourd'hui à" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Démarrage automatique des annonces" + }, + "translations": { + "message": "Traductions" + }, + "transparentBackground": { + "message": "Arrière-plan transparent" + }, + "trending": { + "message": "Tendances" + }, + "tryToReloadThePage": { + "message": "Essayez de rafraîchir la page" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Prochaine lecture automatique" + }, + "use24HourFormat": { + "message": "Utiliser le format 24 h" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Vidéo" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "La description de la vidéo sera développée pour obtenir le nom de la catégorie" + }, + "videoFormats": { + "message": "Formats de vidéo" + }, + "videos": { + "message": "Videos" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "À regarder plus tard" + }, + "watchTime": { + "message": "Temps de visionnage" + }, + "whenTabIsChanged": { + "message": "Quand l'onglet change" + }, + "white": { + "message": "Blanc" + }, + "yellow": { + "message": "Jaune" + }, + "youtubeHeaderLeft": { + "message": "En-tête YouTube (à gauche)" + }, + "youtubeHeaderRight": { + "message": "En-tête YouTube (à droite)" + }, + "youtubeHomePage": { + "message": "Page d'accueil de YouTube" + }, + "youtubeLanguage": { + "message": "Langue de YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limite la qualité vidéo à 1080p pour le codec h.264" + } +} \ No newline at end of file diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json new file mode 100644 index 000000000..633e8f335 --- /dev/null +++ b/_locales/hin/messages.json @@ -0,0 +1,809 @@ +{ + "about": { + "message": "के बारे में" + }, + "accept": { + "message": "स्वीकार" + }, + "activate": { + "message": "सक्रिय" + }, + "activateCaptions": { + "message": "कैप्शन सक्रिय करें" + }, + "activated": { + "message": "सक्रिय" + }, + "activatedFeatures": { + "message": "सक्रिय विशेषताएं" + }, + "activateFullscreen": { + "message": "पूर्णस्क्रीन सक्रिय करें" + }, + "activeFeatures": { + "message": "सक्रिय विशेषताएं" + }, + "addScrollToTop": { + "message": "«शीर्ष पर स्क्रॉल करें» जोड़ें" + }, + "ads": { + "message": "विज्ञापन" + }, + "all": { + "message": "सब" + }, + "allow": { + "message": "अनुमति" + }, + "allow60fps": { + "message": "60fps की अनुमति दें" + }, + "alwaysActive": { + "message": "हमेशा सक्रिय" + }, + "alwaysShowProgressBar": { + "message": "हमेशा प्रगति बार दिखाएं" + }, + "amber": { + "message": "अंबर" + }, + "analyzer": { + "message": "विश्लेषक" + }, + "appearance": { + "message": "दिखावट" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "ऑडियो" + }, + "audioFormats": { + "message": "ऑडियो प्रारूप" + }, + "auto": { + "message": "खुद ब खुद" + }, + "autoFullscreen": { + "message": "स्वत: पूर्ण स्क्रीन" + }, + "autopauseWhenSwitchingTabs": { + "message": "टैब स्विच करते समय ऑटोपॉज" + }, + "autoplay": { + "message": "स्वत: प्ले" + }, + "backupAndReset": { + "message": "बैकअप पुनर्स्थापित करना" + }, + "baseOnSystemColorScheme": { + "message": "सिस्टम रंग योजना के आधार पर" + }, + "belowPlayer": { + "message": "प्लेयर के नीचे" + }, + "black": { + "message": "काला" + }, + "blacklist": { + "message": "काला सूची में डालना" + }, + "blockAll": { + "message": "सभी को अवरोधित करें" + }, + "blue": { + "message": "नीला" + }, + "blueGray": { + "message": "नीला स्लेटी" + }, + "bluelight": { + "message": "नीली बत्ती" + }, + "brown": { + "message": "भूरा" + }, + "browser": { + "message": "ब्राउज़र" + }, + "browserVersion": { + "message": "ब्राउज़र संस्करण" + }, + "bubbles": { + "message": "बुलबुले" + }, + "bug": { + "message": "बग" + }, + "buttons": { + "message": "बटन" + }, + "cancel": { + "message": "रद्द" + }, + "categories": { + "message": "श्रेणियाँ" + }, + "channel": { + "message": "चैनल" + }, + "channels": { + "message": "चैनल" + }, + "clipboard": { + "message": "क्लिपबोर्ड" + }, + "codecH264": { + "message": "कोडक ज 64२६४ 64" + }, + "collapsed": { + "message": "संक्षिप्त" + }, + "collapseOfSubscriptionSections": { + "message": "सदस्यता वर्गों का पतन" + }, + "comments": { + "message": "टिप्पणियाँ" + }, + "confirmationBeforeClosing": { + "message": "बंद करने से पहले पुष्टि" + }, + "cookies": { + "message": "कुकीज़" + }, + "cores": { + "message": "कोर" + }, + "cropChapterTitles": { + "message": "फसल अध्याय के शीर्षक" + }, + "customCss": { + "message": "कस्टम सीएसएस" + }, + "customJs": { + "message": "कस्टम जेएस" + }, + "customMiniPlayer": { + "message": "कस्टम मिनी प्लेयर" + }, + "cyan": { + "message": "सियान" + }, + "dark": { + "message": "अंधेरा" + }, + "darkTheme": { + "message": "डार्क थीम" + }, + "dateAndTime": { + "message": "दिनांक और समय" + }, + "dawn": { + "message": "भोर" + }, + "decreasePlaybackSpeed": { + "message": "पार्श्व गति में कमी" + }, + "decreaseVolume": { + "message": "ध्वनि कम" + }, + "deepOrange": { + "message": "गहरा नारंगी" + }, + "deepPurple": { + "message": "गहरा बैंगनी" + }, + "defaultChannelTab": { + "message": "डिफ़ॉल्ट चैनल टैब" + }, + "deleteYoutubeCookies": { + "message": "यूट्यूब कुकीज़ हटाएं" + }, + "description": { + "message": "विवरण" + }, + "desert": { + "message": "रेगिस्तान" + }, + "details": { + "message": "विवरण" + }, + "developerOptions": { + "message": "डेवलपर विकल्प" + }, + "device": { + "message": "युक्ति" + }, + "dim": { + "message": "मंद" + }, + "disabled": { + "message": "विकलांग" + }, + "dislike": { + "message": "नापसन्द" + }, + "donate": { + "message": "दान" + }, + "doNotChange": { + "message": "मत बदलो" + }, + "draggable": { + "message": "खींचने योग्य" + }, + "email": { + "message": "ईमेल" + }, + "empty": { + "message": "खाली" + }, + "enabled": { + "message": "सक्रिय" + }, + "enabledForced": { + "message": "सक्रिय(मजबूर)" + }, + "expanded": { + "message": "विस्तारित" + }, + "exportSettings": { + "message": "निर्यात सेटिंग्स" + }, + "extension": { + "message": "एक्सटेंशन" + }, + "file": { + "message": "फ़ाइल" + }, + "filters": { + "message": "फिल्टर" + }, + "fitToWindow": { + "message": "स्क्रीन फिट" + }, + "flash": { + "message": "चमक" + }, + "font": { + "message": "फ़ॉन्ट" + }, + "footer": { + "message": "पाद लेख" + }, + "forcedPlaybackSpeed": { + "message": "जबरन पार्श्व गति" + }, + "forcedTheaterMode": { + "message": "जबरन थिएटर मोड" + }, + "forcedVolume": { + "message": "जबरन ध्वनि" + }, + "foundABug": { + "message": "बग मिला?" + }, + "fullWindow": { + "message": "पूर्ण स्क्रीन" + }, + "general": { + "message": "सामान्य" + }, + "github": { + "message": "गिटहब" + }, + "goToSearchBox": { + "message": "सर्च बॉक्स पर जाएं" + }, + "gpu": { + "message": "जी पी यू" + }, + "green": { + "message": "हरा" + }, + "hdThumbnail": { + "message": "एच डी थंबनेल" + }, + "hdThumbnails": { + "message": "एच डी थंबनेल" + }, + "header": { + "message": "हैडर" + }, + "hidden": { + "message": "छिपा हुआ" + }, + "hiddenOnVideoPage": { + "message": "वीडियो पेज पर छिपा हुआ" + }, + "hideAnimatedThumbnails": { + "message": "वीडियो पेज पर छिपा हुआ" + }, + "hideAnnotations": { + "message": "एनोटेशन छुपाएं" + }, + "hideCards": { + "message": "पत्ते छिपाओ" + }, + "hideDetails": { + "message": "जानकारी छिपाएँ" + }, + "hideEndscreen": { + "message": "अंत स्क्रीन छिपाएँ" + }, + "hideFeaturedContent": { + "message": "विशेषताओं को छिपाएँ" + }, + "hideFooter": { + "message": "पाद छिपाएँ" + }, + "hideGradientBottom": { + "message": "ग्रेडिएंट बॉटम छुपाएं" + }, + "hidePlaylist": { + "message": "प्लेलिस्ट छिपाएं" + }, + "hideRightButtons": { + "message": "दाएं बटन छुपाएं" + }, + "hideScrollForDetails": { + "message": "छिपाएँ «विवरण के लिए स्क्रॉल»" + }, + "hideViewsCount": { + "message": "व्यू काउंट छिपाएं" + }, + "history": { + "message": "इतिहास" + }, + "home": { + "message": "घर" + }, + "hover": { + "message": "होवर" + }, + "hoverOnVideoPage": { + "message": "वीडियो पेज पर होवर" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "वीडियो कितनी देर पहले अपलोड किया गया था" + }, + "icons": { + "message": "प्रतीक" + }, + "iconsOnly": { + "message": "केवल प्रतीक" + }, + "importSettings": { + "message": "सेटिंग आयात करना" + }, + "improvedtubeIconInBrowser": { + "message": "ब्राउज़र में बेहतर आइकन" + }, + "improvedtubeIconOnYoutube": { + "message": "यूट्यूब पर बेहतर आइकन" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube भाषा" + }, + "improvedtubeVersion": { + "message": "ImprovedTube संस्करण" + }, + "improveLogo": { + "message": "लोगो सुधारो" + }, + "increasePlaybackSpeed": { + "message": "प्लेबैक स्पीड बढ़ाएं" + }, + "increaseVolume": { + "message": "ध्वनि बढ़ाएं" + }, + "indigo": { + "message": "नील" + }, + "items": { + "message": "आइटम" + }, + "languages": { + "message": "बोली" + }, + "legacyYoutube": { + "message": "विरासत यूट्यूब" + }, + "light": { + "message": "हलका" + }, + "lightBlue": { + "message": "हल्का नीला" + }, + "lightGreen": { + "message": "हल्का हरा" + }, + "like": { + "message": "पसंद" + }, + "likes": { + "message": "को यह पसंद है" + }, + "lime": { + "message": "पीला हरा रंग" + }, + "list": { + "message": "सूची" + }, + "liveChat": { + "message": "सीधी बातचीत" + }, + "liveChatType": { + "message": "लाइव चैट प्रकार" + }, + "loudnessNormalization": { + "message": "जोर से सामान्य होना" + }, + "markWatchedVideos": { + "message": "चिह्नित वीडियो देखे गए" + }, + "mixer": { + "message": "मिक्सर" + }, + "myColors": { + "message": "मेरे रंग" + }, + "name": { + "message": "नाम" + }, + "nativeMiniPlayer": { + "message": "मूल निवासी मिनी प्लेयर" + }, + "new": { + "message": "नया" + }, + "nextVideo": { + "message": "अगला वीडियो" + }, + "night": { + "message": "रात" + }, + "noActiveFeatures": { + "message": "कोई सक्रिय सुविधाएँ नहीं" + }, + "none": { + "message": "कोई नहीं" + }, + "noOpenVideoTabs": { + "message": "कोई खुला वीडियो टैब नहीं" + }, + "normal": { + "message": "साधारण" + }, + "old": { + "message": "पुराना" + }, + "onAllVideos": { + "message": "सभी वीडियो पर" + }, + "onlyActiveOnYoutube": { + "message": "केवल यूट्यूब पर सक्रिय है" + }, + "onlyOnePlayerInstancePlaying": { + "message": "केवल एक प्लेयर का चल रहा है" + }, + "onSubscribedChannels": { + "message": "सदस्यता प्राप्त चैनलों पर" + }, + "orange": { + "message": "नारंगी रंग" + }, + "os": { + "message": "ओ एस" + }, + "other": { + "message": "अन्य" + }, + "permissions": { + "message": "अनुमतियां" + }, + "pictureInPicture": { + "message": "चित्र में चित्र" + }, + "pink": { + "message": "गुलाबी" + }, + "plain": { + "message": "सादा" + }, + "platform": { + "message": "मंच" + }, + "playbackSpeed": { + "message": "प्लेबैक स्पीड" + }, + "player": { + "message": "प्लेयर" + }, + "playerColor": { + "message": "प्लेयर रंग" + }, + "playerSize": { + "message": "प्लेयर आकार" + }, + "playlist": { + "message": "प्लेलिस्ट" + }, + "playlists": { + "message": "प्लेलिस्ट" + }, + "playPause": { + "message": "प्ले / ठहराव" + }, + "popupPlayer": { + "message": "पॉप अप प्लेयर" + }, + "position": { + "message": "स्थान" + }, + "pressAnyKeyOrScroll": { + "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" + }, + "previousVideo": { + "message": "पिछला वीडियो" + }, + "primaryColor": { + "message": "प्राथमिक रंग" + }, + "purple": { + "message": "बैंगनी" + }, + "quality": { + "message": "गुणवत्ता" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "हमें रेटिंग दें" + }, + "red": { + "message": "लाल" + }, + "redDislikeButton": { + "message": "नापसंद बटन लाल रंग दिखाएं" + }, + "relatedVideos": { + "message": "संबंधित वीडियो" + }, + "removeRelatedSearchResults": { + "message": "संबंधित खोज परिणाम निकालें" + }, + "repeat": { + "message": "दोहराना" + }, + "reset": { + "message": "रीसेट" + }, + "resetAllSettings": { + "message": "सभी सेटिंग्स को रीसेट" + }, + "resetAllShortcuts": { + "message": "सभी शॉर्टकट रीसेट करें" + }, + "reverse": { + "message": "उलटना" + }, + "rotate": { + "message": "घुमाएँ" + }, + "save": { + "message": "सहेजें" + }, + "saveAs": { + "message": "के रूप रक्षित करें" + }, + "schedule": { + "message": "अनुसूची" + }, + "screen": { + "message": "स्क्रीन" + }, + "screenshot": { + "message": "स्क्रीनशॉट" + }, + "search": { + "message": "खोज" + }, + "searchBarOnly": { + "message": "केवल बार खोजें" + }, + "seekBackward10Seconds": { + "message": "पिछड़े 10 सेकंड की तलाश करें" + }, + "seekForward10Seconds": { + "message": "पिछड़े 10 सेकंड की तलाश करें" + }, + "settings": { + "message": "समायोजन" + }, + "settingsSuccessfullyImported": { + "message": "सेटिंग्स सफलतापूर्वक आयात की गईं" + }, + "shortcuts": { + "message": "शॉर्टकट" + }, + "showCardsOnMouseHover": { + "message": "माउस होवर पर कार्ड दिखाएं" + }, + "showChannelVideosCount": { + "message": "चैनल वीडियो काउंट दिखाएं" + }, + "shuffle": { + "message": "मिश्रण" + }, + "sidebar": { + "message": "साइडबार" + }, + "spacebar": { + "message": "स्पेस बार" + }, + "squaredUserImages": { + "message": "चुकता उपयोगकर्ता चित्र" + }, + "static": { + "message": "स्थिर" + }, + "statsForNerds": { + "message": "डेवलपर के लिए आँकड़े दिखाएँ" + }, + "step": { + "message": "चरण" + }, + "stop": { + "message": "रुकें" + }, + "style": { + "message": "अंदाज" + }, + "styles": { + "message": "शैलियाँ" + }, + "subscriptions": { + "message": "सदस्यता" + }, + "subtitles": { + "message": "उपशीर्षक" + }, + "sunset": { + "message": "सूर्यास्त" + }, + "sunsetToSunrise": { + "message": "सूर्योदय से सूर्यास्त" + }, + "systemPeferenceDark": { + "message": "सिस्टम प्राथमिकताएं: अंधेरा" + }, + "systemPeferenceLight": { + "message": "सिस्टम वरीयताएँ: प्रकाश" + }, + "teal": { + "message": "टील रंग" + }, + "textColor": { + "message": "लिखावट का रंग" + }, + "themes": { + "message": "विषय-वस्तु" + }, + "thisWillRemoveAllCookies": { + "message": "यह सभी कुकीज़ को हटा देगा।" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "यह सभी यूट्यूब कुकीज़ को हटा देगा।" + }, + "thisWillResetAllSettings": { + "message": "यह सभी सेटिंग्स को रीसेट कर देगा।" + }, + "thisWillResetAllShortcuts": { + "message": "यह सभी शॉर्टकट रीसेट कर देगा।" + }, + "thumbnails": { + "message": "थंबनेल" + }, + "timeFrom": { + "message": "से समय" + }, + "timeTo": { + "message": "समय पर" + }, + "todayAt": { + "message": "आज इस समय" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "शीर्ष चैट" + }, + "trailerAutoplay": { + "message": "ट्रेलर ऑटोप्ले" + }, + "translations": { + "message": "अनुवाद" + }, + "transparentBackground": { + "message": "पारदर्शी पृष्ठभूमि" + }, + "trending": { + "message": "रुझान" + }, + "tryToReloadThePage": { + "message": "पृष्ठ को पुनः लोड करने का प्रयास करें" + }, + "type": { + "message": "टाइप" + }, + "upNextAutoplay": { + "message": "अगले ऑटोप्ले पर" + }, + "use24HourFormat": { + "message": "24-घंटे के प्रारूप का उपयोग करें" + }, + "version": { + "message": "संस्करण" + }, + "video": { + "message": "वीडियो" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "श्रेणी का नाम प्राप्त करने के लिए वीडियो विवरण का विस्तार किया जाएगा।" + }, + "videoFormats": { + "message": "वीडियो प्रारूप" + }, + "videos": { + "message": "वीडियो" + }, + "volume": { + "message": "ध्वनि" + }, + "watchLater": { + "message": "बाद में देखना" + }, + "watchTime": { + "message": "समय देखें" + }, + "whenTabIsChanged": { + "message": "जब टैब बदला जाता है" + }, + "white": { + "message": "सफेद" + }, + "yellow": { + "message": "पीला" + }, + "youtubeHeaderLeft": { + "message": "यूट्यूब हैडर (बाएं)" + }, + "youtubeHeaderRight": { + "message": "यूट्यूब हैडर (दाएं)" + }, + "youtubeHomePage": { + "message": "यूट्यूब होम पेज" + }, + "youtubeLanguage": { + "message": "यूट्यूब भाषा" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "यूट्यूब h.264 कोडेक के लिए वीडियो की गुणवत्ता 1080 पी तक सीमित है" + } +} \ No newline at end of file diff --git a/_locales/id/messages.json b/_locales/id/messages.json new file mode 100644 index 000000000..75f9af70b --- /dev/null +++ b/_locales/id/messages.json @@ -0,0 +1,806 @@ +{ + "cropChapterTitles": { + "message": "Hilangkan judul babak" + }, + "about": { + "message": "Tentang" + }, + "accept": { + "message": "Terima" + }, + "activate": { + "message": "Aktifkan" + }, + "activateCaptions": { + "message": "Aktifkan keterangan" + }, + "activated": { + "message": "Diaktifkan" + }, + "activatedFeatures": { + "message": "Fitur diaktifkan" + }, + "activateFullscreen": { + "message": "Aktifkan layar penuh" + }, + "activeFeatures": { + "message": "Fitur yang aktif" + }, + "addScrollToTop": { + "message": "Tambah «Gulir ke atas»" + }, + "ads": { + "message": "Tampilkan iklan" + }, + "all": { + "message": "Semua" + }, + "allow": { + "message": "Izinkan" + }, + "allow60fps": { + "message": "Izinkan 60fps" + }, + "alwaysActive": { + "message": "Selalu aktif" + }, + "alwaysShowProgressBar": { + "message": "Selalu tampilkan progress bar" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analisa" + }, + "appearance": { + "message": "Tampilan" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Suara" + }, + "audioFormats": { + "message": "Format suara" + }, + "auto": { + "message": "Otomatis" + }, + "autoFullscreen": { + "message": "Layar penuh otomatis" + }, + "autopauseWhenSwitchingTabs": { + "message": "Jeda saat mengganti tab" + }, + "autoplay": { + "message": "Putar secara otomatis" + }, + "backupAndReset": { + "message": "Cadangkan & setel ulang" + }, + "baseOnSystemColorScheme": { + "message": "Berdasarkan skema warna sistem" + }, + "belowPlayer": { + "message": "Dibawah pemutar" + }, + "black": { + "message": "Hitam" + }, + "blacklist": { + "message": "Blokir" + }, + "blockAll": { + "message": "Blokir semua" + }, + "blue": { + "message": "Biru" + }, + "blueGray": { + "message": "Abu-abu biru" + }, + "bluelight": { + "message": "Cahaya biru" + }, + "brown": { + "message": "Coklat" + }, + "browser": { + "message": "Peramban" + }, + "browserVersion": { + "message": "Versi peramban" + }, + "bubbles": { + "message": "Gelembung" + }, + "bug": { + "message": "Masalah" + }, + "buttons": { + "message": "Tombol" + }, + "cancel": { + "message": "Batalkan" + }, + "categories": { + "message": "Kategori" + }, + "channel": { + "message": "Saluran" + }, + "channels": { + "message": "Saluran" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapsed": { + "message": "Tutup" + }, + "collapseOfSubscriptionSections": { + "message": "Tutup bagian berlangganan" + }, + "comments": { + "message": "Komentar" + }, + "confirmationBeforeClosing": { + "message": "Konfirmasi sebelum ditutup" + }, + "cookies": { + "message": "Kuki" + }, + "cores": { + "message": "Inti" + }, + "customCss": { + "message": "Kostum CSS" + }, + "customJs": { + "message": "Kostum JS" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Gelap" + }, + "darkTheme": { + "message": "Tema gelap" + }, + "dateAndTime": { + "message": "Tanggal dan waktu" + }, + "dawn": { + "message": "Fajar" + }, + "decreasePlaybackSpeed": { + "message": "Kurangi kecepatan pemutaran" + }, + "decreaseVolume": { + "message": "Kurangi suara" + }, + "deepOrange": { + "message": "Oranye tua" + }, + "deepPurple": { + "message": "Ungu tua" + }, + "defaultChannelTab": { + "message": "Tab saluran standar" + }, + "deleteYoutubeCookies": { + "message": "Hapus kuki youtube" + }, + "description": { + "message": "Deskripsi" + }, + "desert": { + "message": "Gurun" + }, + "details": { + "message": "Detail" + }, + "developerOptions": { + "message": "Opsi pengembang" + }, + "device": { + "message": "Perangkat" + }, + "dim": { + "message": "Redupkan" + }, + "disabled": { + "message": "Dinonaktifkan" + }, + "dislike": { + "message": "Tidak Suka" + }, + "donate": { + "message": "Donasi" + }, + "doNotChange": { + "message": "Jangan ubah" + }, + "draggable": { + "message": "Dapat diseret" + }, + "email": { + "message": "Surel" + }, + "empty": { + "message": "Kosong" + }, + "enabled": { + "message": "Aktifkan" + }, + "enabledForced": { + "message": "Aktifkan (paksa)" + }, + "expanded": { + "message": "Perluas" + }, + "exportSettings": { + "message": "Ekspor pengaturan" + }, + "extension": { + "message": "Ekstensi" + }, + "file": { + "message": "Berkas" + }, + "filters": { + "message": "Saringan" + }, + "fitToWindow": { + "message": "Sesuaikan dengan layar" + }, + "flash": { + "message": "Cahaya" + }, + "font": { + "message": "Font" + }, + "footer": { + "message": "Catatan kaki" + }, + "forcedPlaybackSpeed": { + "message": "Paksa kecepatan pemutaran" + }, + "forcedTheaterMode": { + "message": "Paksa mode teater" + }, + "forcedVolume": { + "message": "Paksa suara" + }, + "foundABug": { + "message": "Menemukan masalah?" + }, + "fullWindow": { + "message": "Layar penuh" + }, + "general": { + "message": "Umum" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Ke kotak pencarian" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Hijau" + }, + "hdThumbnail": { + "message": "Gambar kecil HD" + }, + "hdThumbnails": { + "message": "Gambar kecil HD" + }, + "header": { + "message": "Kepala" + }, + "hidden": { + "message": "Sembunyikan" + }, + "hiddenOnVideoPage": { + "message": "Tersembunyi di halaman video" + }, + "hideAnimatedThumbnails": { + "message": "Sembunyikan animasi gambar kecil" + }, + "hideAnnotations": { + "message": "Sembunyikan penjelasan" + }, + "hideCards": { + "message": "Sembunyikan kartu" + }, + "hideDetails": { + "message": "Sembunyikan detail" + }, + "hideEndscreen": { + "message": "Sembunyikan layar akhir" + }, + "hideFeaturedContent": { + "message": "Sembunyikan konten unggulan" + }, + "hideFooter": { + "message": "Sembunyikan catatan kaki" + }, + "hidePlaylist": { + "message": "Sembunyikan daftar putar" + }, + "hideRightButtons": { + "message": "Sembunyikan tombol kanan" + }, + "hideScrollForDetails": { + "message": "Sembunyikan «gulir untuk detail»" + }, + "hideViewsCount": { + "message": "Sembunyikan jumlah penayangan" + }, + "history": { + "message": "Sejarah" + }, + "home": { + "message": "Beranda" + }, + "hover": { + "message": "Arahkan" + }, + "hoverOnVideoPage": { + "message": "Arahkan pada halaman video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Berapa lama video itu diunggah" + }, + "icons": { + "message": "Ikon" + }, + "iconsOnly": { + "message": "Ikon saja" + }, + "importSettings": { + "message": "Impor pengaturan" + }, + "improvedtubeIconInBrowser": { + "message": "Ikon ImprovedTube di peramban" + }, + "improvedtubeIconOnYoutube": { + "message": "Ikon ImprovedTube di YouTube" + }, + "improvedtubeLanguage": { + "message": "Bahasa ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Versi ImprovedTube" + }, + "improveLogo": { + "message": "Tingkatkan kualitas logo" + }, + "increasePlaybackSpeed": { + "message": "Tingkatkan kecepatan pemutaran" + }, + "increaseVolume": { + "message": "Tingkatkan suara" + }, + "indigo": { + "message": "Nila" + }, + "items": { + "message": "Item" + }, + "languages": { + "message": "Bahasa" + }, + "legacyYoutube": { + "message": "YouTube lama" + }, + "light": { + "message": "Terang" + }, + "lightBlue": { + "message": "Biru terang" + }, + "lightGreen": { + "message": "Hijau terang" + }, + "like": { + "message": "Suka" + }, + "likes": { + "message": "Suka" + }, + "lime": { + "message": "Limau" + }, + "list": { + "message": "Daftar" + }, + "liveChat": { + "message": "Obrolan langsung" + }, + "liveChatType": { + "message": "Jenis obrolan langsung" + }, + "loudnessNormalization": { + "message": "Normalkan suara" + }, + "markWatchedVideos": { + "message": "Tandai video yang ditonton" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "mixer": { + "message": "Mixer" + }, + "myColors": { + "message": "Warna saya" + }, + "name": { + "message": "Nama" + }, + "nativeMiniPlayer": { + "message": "Pemutar kecil bawaan" + }, + "new": { + "message": "Baru" + }, + "nextVideo": { + "message": "Video selanjutnya" + }, + "night": { + "message": "Malam" + }, + "noActiveFeatures": { + "message": "Tidak ada fitur aktif" + }, + "none": { + "message": "Tidak ada" + }, + "noOpenVideoTabs": { + "message": "Tidak ada tab video terbuka" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Lama" + }, + "onAllVideos": { + "message": "Disetiap video" + }, + "onlyActiveOnYoutube": { + "message": "Hanya aktif di YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Hanya mainkan satu pemutar" + }, + "onSubscribedChannels": { + "message": "Di saluran berlangganan" + }, + "orange": { + "message": "Oranye" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Lainnya" + }, + "permissions": { + "message": "Perizinan" + }, + "pictureInPicture": { + "message": "Gambar di dalam gambar" + }, + "pink": { + "message": "Merah jambu" + }, + "plain": { + "message": "Dataran" + }, + "platform": { + "message": "Platform" + }, + "playbackSpeed": { + "message": "Kecepatan pemutar" + }, + "player": { + "message": "Pemutar" + }, + "playerColor": { + "message": "Warna pemutar" + }, + "playerSize": { + "message": "Ukuran pemutar" + }, + "playlist": { + "message": "Daftar putar" + }, + "playlists": { + "message": "Daftar putar" + }, + "playPause": { + "message": "Mulai / Jeda" + }, + "popupPlayer": { + "message": "Pemutar sembulan" + }, + "position": { + "message": "Posisi" + }, + "pressAnyKeyOrScroll": { + "message": "Tekan tombol apa saja atau gunakan roda mouse." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Tekan tombol apa saja atau gunakan roda mouse" + }, + "previousVideo": { + "message": "Video sebelumnya" + }, + "primaryColor": { + "message": "Warna utama" + }, + "purple": { + "message": "Ungu" + }, + "quality": { + "message": "Kualitas video" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Nilai Kami" + }, + "red": { + "message": "Merah" + }, + "relatedVideos": { + "message": "Video terkait" + }, + "removeRelatedSearchResults": { + "message": "Hapus hasil pencarian terkait" + }, + "repeat": { + "message": "Putar ulang" + }, + "reset": { + "message": "Setel ulang" + }, + "resetAllSettings": { + "message": "Setel ulang semua pengaturan" + }, + "resetAllShortcuts": { + "message": "Setel ulang semua pintasan" + }, + "reverse": { + "message": "Putar secara terbalik" + }, + "rotate": { + "message": "Putar" + }, + "save": { + "message": "Simpan" + }, + "saveAs": { + "message": "Simpan dengan" + }, + "schedule": { + "message": "Jadwal" + }, + "screen": { + "message": "Layar" + }, + "screenshot": { + "message": "Tangkapan layar" + }, + "search": { + "message": "Cari" + }, + "searchBarOnly": { + "message": "Hanya bilah pencarian" + }, + "seekBackward10Seconds": { + "message": "Mundur 10 detik" + }, + "seekForward10Seconds": { + "message": "Maju 10 detik" + }, + "settings": { + "message": "Pengaturan" + }, + "settingsSuccessfullyImported": { + "message": "Berhasil mengimpor pengaturan" + }, + "shortcuts": { + "message": "Pintasan" + }, + "showCardsOnMouseHover": { + "message": "Tunjukkan kartu pada arah mouse" + }, + "showChannelVideosCount": { + "message": "Tampilkan jumlah video saluran" + }, + "shuffle": { + "message": "Putar secara acak" + }, + "sidebar": { + "message": "Bilah samping" + }, + "spacebar": { + "message": "Bilah spasi" + }, + "squaredUserImages": { + "message": "Gambar pengguna kotak" + }, + "static": { + "message": "Statis" + }, + "step": { + "message": "Langkah" + }, + "stop": { + "message": "Berhenti" + }, + "style": { + "message": "Mode" + }, + "styles": { + "message": "Mode" + }, + "subscriptions": { + "message": "Berlangganan" + }, + "subtitles": { + "message": "Teks" + }, + "sunset": { + "message": "Senja" + }, + "sunsetToSunrise": { + "message": "Matahari terbenam hingga matahari terbit" + }, + "systemPeferenceDark": { + "message": "Preferensi sistem: gelap" + }, + "systemPeferenceLight": { + "message": "Preferensi sistem: terang" + }, + "teal": { + "message": "Hijau kebiruan" + }, + "textColor": { + "message": "Warna teks" + }, + "themes": { + "message": "Tema" + }, + "thisWillRemoveAllCookies": { + "message": "Ini akan menghapus semua kuki." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Ini akan menghapus semua kuki YouTube" + }, + "thisWillResetAllSettings": { + "message": "Ini akan mengatur ulang semua pengaturan." + }, + "thisWillResetAllShortcuts": { + "message": "Ini akan mengatur ulang semua pintasan" + }, + "thumbnails": { + "message": "Gambar kecil" + }, + "timeFrom": { + "message": "Waktu dari" + }, + "timeTo": { + "message": "Waktu ke" + }, + "todayAt": { + "message": "Hari ini di" + }, + "topChat": { + "message": "Obrolan teratas" + }, + "trailerAutoplay": { + "message": "Putar otomatis cuplikan" + }, + "translations": { + "message": "Terjemahan" + }, + "transparentBackground": { + "message": "Latar belakang transparan" + }, + "trending": { + "message": "Populer" + }, + "tryToReloadThePage": { + "message": "Coba muat ulang halaman" + }, + "type": { + "message": "Tipe" + }, + "upNextAutoplay": { + "message": "Putar otomatis berikutnya" + }, + "use24HourFormat": { + "message": "Gunakan format 24 jam" + }, + "version": { + "message": "Versi" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Deskripsi video akan diperluas untuk mendapatkan nama kategori" + }, + "videoFormats": { + "message": "Format video" + }, + "videos": { + "message": "Video" + }, + "volume": { + "message": "Suara" + }, + "watchLater": { + "message": "Tonton nanti" + }, + "watchTime": { + "message": "Waktu tayang" + }, + "whenTabIsChanged": { + "message": "Saat tab berubah" + }, + "white": { + "message": "Putih" + }, + "yellow": { + "message": "Kuning" + }, + "youtubeHeaderLeft": { + "message": "Kepala YouTube (kiri)" + }, + "youtubeHeaderRight": { + "message": "Kepala YouTube (kanan)" + }, + "youtubeHomePage": { + "message": "Beranda YouTube" + }, + "youtubeLanguage": { + "message": "Bahasa YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube membatasi kualitas video hingga 1080p untuk codec h.264" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "toggleCards": { + "message": "Toggle cards" + } +} diff --git a/_locales/it/messages.json b/_locales/it/messages.json new file mode 100644 index 000000000..f0c222222 --- /dev/null +++ b/_locales/it/messages.json @@ -0,0 +1,806 @@ +{ + "about": { + "message": "Al riguardo" + }, + "accept": { + "message": "Accetta" + }, + "activate": { + "message": "Attivo/a" + }, + "activateCaptions": { + "message": "Attiva didascalie" + }, + "activated": { + "message": "Attivato/a" + }, + "activatedFeatures": { + "message": "Funzionalità attivate" + }, + "activateFullscreen": { + "message": "Attiva schermo intero" + }, + "activeFeatures": { + "message": "Funzioni disponibili" + }, + "addScrollToTop": { + "message": "Aggiungi «Scorri in cima»" + }, + "ads": { + "message": "Pubblicità" + }, + "all": { + "message": "Tutte" + }, + "allow": { + "message": "Permetti" + }, + "allow60fps": { + "message": "Permetti 60 fps" + }, + "alwaysActive": { + "message": "Sempre attivo" + }, + "alwaysShowProgressBar": { + "message": "Mostra sempre barra di avanzamento" + }, + "amber": { + "message": "Ambra" + }, + "analyzer": { + "message": "Analizzatore" + }, + "appearance": { + "message": "Aspetto" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formati audio" + }, + "auto": { + "message": "Automatico" + }, + "autoFullscreen": { + "message": "Schermo intero automatico" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausa automatica al cambio scheda" + }, + "autoplay": { + "message": "Avvio automatico" + }, + "backupAndReset": { + "message": "Backup e reimpostazione" + }, + "baseOnSystemColorScheme": { + "message": "Basato sullo schema colore di sistema" + }, + "belowPlayer": { + "message": "Sotto il lettore" + }, + "black": { + "message": "Nero" + }, + "blacklist": { + "message": "Lista nera" + }, + "blockAll": { + "message": "Blocca tutte" + }, + "blue": { + "message": "Blu" + }, + "blueGray": { + "message": "Grigio blu" + }, + "bluelight": { + "message": "Luce blu" + }, + "brown": { + "message": "Marrone" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Versione browser" + }, + "bubbles": { + "message": "Bolle" + }, + "bug": { + "message": "Difetto" + }, + "buttons": { + "message": "Pulsanti" + }, + "cancel": { + "message": "Annulla" + }, + "categories": { + "message": "Categorie" + }, + "channel": { + "message": "Canale" + }, + "channels": { + "message": "Canali" + }, + "clipboard": { + "message": "Appunti" + }, + "codecH264": { + "message": "Codec H.264" + }, + "collapsed": { + "message": "Compressa/i" + }, + "collapseOfSubscriptionSections": { + "message": "Comprimi sezioni di sottoscrizione" + }, + "comments": { + "message": "Commenti" + }, + "confirmationBeforeClosing": { + "message": "Conferma prima della chiusura" + }, + "cookies": { + "message": "Cookie" + }, + "cores": { + "message": "Core" + }, + "cropChapterTitles": { + "message": "Ritaglia titoli dei capitoli" + }, + "customCss": { + "message": "CSS personalizzato" + }, + "customJs": { + "message": "JS personalizzato" + }, + "customMiniPlayer": { + "message": "Mini lettore personalizzato" + }, + "cyan": { + "message": "Ciano" + }, + "dark": { + "message": "Scuro" + }, + "darkTheme": { + "message": "Tema scuro" + }, + "dateAndTime": { + "message": "Data e ora" + }, + "dawn": { + "message": "Albeggio" + }, + "decreasePlaybackSpeed": { + "message": "Riduci velocità riproduzione" + }, + "decreaseVolume": { + "message": "Riduci volume" + }, + "deepOrange": { + "message": "Arancione profondo" + }, + "deepPurple": { + "message": "Viola profondo" + }, + "defaultChannelTab": { + "message": "Scheda predefinita canale" + }, + "deleteYoutubeCookies": { + "message": "Cancella cookie di YouTube" + }, + "description": { + "message": "Descrizione" + }, + "desert": { + "message": "Deserto" + }, + "details": { + "message": "Dettagli" + }, + "developerOptions": { + "message": "Opzioni per gli sviluppatori" + }, + "device": { + "message": "Dispositivo" + }, + "dim": { + "message": "Smorzamento" + }, + "disabled": { + "message": "Disabilitato" + }, + "dislike": { + "message": "Non gradire" + }, + "donate": { + "message": "Donazione" + }, + "doNotChange": { + "message": "Non cambiare" + }, + "draggable": { + "message": "Trascinabile" + }, + "email": { + "message": "E-mail" + }, + "empty": { + "message": "Vuota" + }, + "enabled": { + "message": "Abilitato" + }, + "enabledForced": { + "message": "Abilitato (forzato)" + }, + "expanded": { + "message": "Estesa" + }, + "exportSettings": { + "message": "Esporta impostazioni" + }, + "extension": { + "message": "Estensione" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filtri" + }, + "fitToWindow": { + "message": "Adatta alla finestra" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "footer": { + "message": "Piè di pagina" + }, + "forcedPlaybackSpeed": { + "message": "Velocità riproduzione forzata" + }, + "forcedTheaterMode": { + "message": "Modalità cinema forzata" + }, + "forcedVolume": { + "message": "Volume forzato" + }, + "foundABug": { + "message": "Trovato un bug?" + }, + "fullWindow": { + "message": "Finestra intera" + }, + "general": { + "message": "Generale" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Vai alla casella di ricerca" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hdThumbnail": { + "message": "Miniatura in altà qualità" + }, + "hdThumbnails": { + "message": "Miniature in alta qualità" + }, + "header": { + "message": "Intestazione" + }, + "hidden": { + "message": "Nascosta/i" + }, + "hiddenOnVideoPage": { + "message": "Nascosta nella pagina video" + }, + "hideAnimatedThumbnails": { + "message": "Nascondi miniature animate" + }, + "hideAnnotations": { + "message": "Nascondi annotazioni" + }, + "hideCards": { + "message": "Nascondi tessere di fine video" + }, + "hideDetails": { + "message": "Nascondi dettagli" + }, + "hideEndscreen": { + "message": "Nascondi finale video" + }, + "hideFeaturedContent": { + "message": "Nascondi contenuti in primo piano" + }, + "hideFooter": { + "message": "Nascondi footer" + }, + "hideGradientBottom": { + "message": "Nascondi fondo gradiente" + }, + "hidePlaylist": { + "message": "Nascondi scaletta" + }, + "hideRightButtons": { + "message": "Nascondi pulsanti sulla destra" + }, + "hideScrollForDetails": { + "message": "Nascondi «Scorri per dettagli»" + }, + "hideViewsCount": { + "message": "Nascondi contatore visualizzazioni" + }, + "history": { + "message": "Cronologia" + }, + "home": { + "message": "Pagina iniziale" + }, + "hover": { + "message": "In sospensione" + }, + "hoverOnVideoPage": { + "message": "In sospensione sulla pagine del video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Quanto tempo fa il video è stato caricato" + }, + "icons": { + "message": "Icone" + }, + "iconsOnly": { + "message": "Solo icone" + }, + "importSettings": { + "message": "Importa impostazioni" + }, + "improvedtubeIconInBrowser": { + "message": "Icona nel browser" + }, + "improvedtubeIconOnYoutube": { + "message": "Icona su YouTube" + }, + "improvedtubeLanguage": { + "message": "Lingua" + }, + "improvedtubeVersion": { + "message": "Versione" + }, + "improveLogo": { + "message": "Migliora logo YouTube" + }, + "increasePlaybackSpeed": { + "message": "Aumenta velocità riproduzione" + }, + "increaseVolume": { + "message": "Aumenta volume" + }, + "indigo": { + "message": "Indaco" + }, + "items": { + "message": "Oggetti" + }, + "languages": { + "message": "Lingue" + }, + "legacyYoutube": { + "message": "YouTube versione legacy" + }, + "light": { + "message": "Chiaro" + }, + "lightBlue": { + "message": "Blu chiaro" + }, + "lightGreen": { + "message": "Verde chiaro" + }, + "like": { + "message": "Mi piace" + }, + "likes": { + "message": "Numero di Mi piace" + }, + "lime": { + "message": "Lime" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Chat dal vivo" + }, + "liveChatType": { + "message": "Tipologia chat dal vivo" + }, + "loudnessNormalization": { + "message": "Normalizzazione rumorosità" + }, + "markWatchedVideos": { + "message": "Contrassegna video visti" + }, + "mixer": { + "message": "Mixer" + }, + "myColors": { + "message": "Miei colori" + }, + "name": { + "message": "Nome" + }, + "nativeMiniPlayer": { + "message": "Mini lettore nativo" + }, + "new": { + "message": "Nuovo" + }, + "nextVideo": { + "message": "Prossimo video" + }, + "night": { + "message": "Notte" + }, + "noActiveFeatures": { + "message": "Nessuna funzione attivata" + }, + "none": { + "message": "Alcuno/a" + }, + "noOpenVideoTabs": { + "message": "Nessuna scheda video aperta" + }, + "normal": { + "message": "Standard" + }, + "old": { + "message": "Vecchio" + }, + "onAllVideos": { + "message": "Su tutti i video" + }, + "onlyActiveOnYoutube": { + "message": "Attivo solo su YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Istanza unica di riproduzione attiva" + }, + "onSubscribedChannels": { + "message": "In canali sottoscritti" + }, + "orange": { + "message": "Arancione" + }, + "os": { + "message": "Sistema Operativo" + }, + "other": { + "message": "Altro" + }, + "permissions": { + "message": "Autorizzazioni" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Pianura" + }, + "platform": { + "message": "Piattaforma" + }, + "playbackSpeed": { + "message": "Velocità riproduzione" + }, + "player": { + "message": "Lettore" + }, + "playerColor": { + "message": "Colore lettore" + }, + "playerSize": { + "message": "Dimensione lettore" + }, + "playlist": { + "message": "Scaletta" + }, + "playlists": { + "message": "Scalette" + }, + "playPause": { + "message": "Avvio/Pausa" + }, + "popupPlayer": { + "message": "Lettore pop-up" + }, + "position": { + "message": "Posizione" + }, + "pressAnyKeyOrScroll": { + "message": "Premere un qualunque tasto o scorrere" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Premere un qualunque tasto o usare rotella del mouse" + }, + "previousVideo": { + "message": "Video precedente" + }, + "primaryColor": { + "message": "Colore primario" + }, + "purple": { + "message": "Viola" + }, + "quality": { + "message": "Qualità" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Valutaci" + }, + "red": { + "message": "Rosso" + }, + "redDislikeButton": { + "message": "Mostra pulsante Non mi piace in rosso" + }, + "relatedVideos": { + "message": "Video correlati" + }, + "removeRelatedSearchResults": { + "message": "Rimuovi risultati di ricerca correlati" + }, + "repeat": { + "message": "Ripeti" + }, + "reset": { + "message": "Reimpostazione" + }, + "resetAllSettings": { + "message": "Reimposta tutte le impostazioni" + }, + "resetAllShortcuts": { + "message": "Reimposta tutte le scorciatoie" + }, + "reverse": { + "message": "Inverti" + }, + "rotate": { + "message": "Ruota" + }, + "save": { + "message": "Salva" + }, + "saveAs": { + "message": "Salva come" + }, + "schedule": { + "message": "Programmazione" + }, + "screen": { + "message": "Schermo" + }, + "screenshot": { + "message": "Screenshot" + }, + "search": { + "message": "Ricerca" + }, + "searchBarOnly": { + "message": "Cerca solamente nella barra" + }, + "seekBackward10Seconds": { + "message": "Muovi indietro 10 secondi" + }, + "seekForward10Seconds": { + "message": "Muovi avanti 10 secondi" + }, + "settings": { + "message": "Impostazioni" + }, + "settingsSuccessfullyImported": { + "message": "Impostazioni importate con successo" + }, + "shortcuts": { + "message": "Scorciatoie" + }, + "showCardsOnMouseHover": { + "message": "Mostra tessere di fine video al passaggio del puntatore" + }, + "showChannelVideosCount": { + "message": "Mostra contatore visualizzazioni canale" + }, + "shuffle": { + "message": "Riproduzione casuale" + }, + "sidebar": { + "message": "Barra laterale" + }, + "spacebar": { + "message": "Barra spaziatrice" + }, + "squaredUserImages": { + "message": "Immagini utenti squadrate" + }, + "static": { + "message": "Statica" + }, + "statsForNerds": { + "message": "Visualizza statistiche per nerd" + }, + "stop": { + "message": "Arresto" + }, + "style": { + "message": "Stile" + }, + "styles": { + "message": "Stili" + }, + "subscriptions": { + "message": "Sottoscrizioni" + }, + "subtitles": { + "message": "Sottotitoli" + }, + "sunset": { + "message": "Tramonto" + }, + "sunsetToSunrise": { + "message": "Dal tramonto all'alba" + }, + "systemPeferenceDark": { + "message": "Preferenza di sistema: scuro" + }, + "systemPeferenceLight": { + "message": "Preferenza di sistema: chiaro" + }, + "teal": { + "message": "Verde acqua" + }, + "textColor": { + "message": "Colore testo" + }, + "themes": { + "message": "Temi" + }, + "thisWillRemoveAllCookies": { + "message": "Questo rimuoverà tutti i cookie" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Questo rimuoverà tutti i cookie di YouTube" + }, + "thisWillResetAllSettings": { + "message": "Questo rimuoverà tutte le impostazioni" + }, + "thisWillResetAllShortcuts": { + "message": "Questo Reimposterà tutte le scorciatoie" + }, + "thumbnails": { + "message": "Miniature" + }, + "timeFrom": { + "message": "Dalle ore" + }, + "timeTo": { + "message": "Alle ore" + }, + "todayAt": { + "message": "Oggi alle" + }, + "toggleCards": { + "message": "Dis/attiva tessere di fine video" + }, + "topChat": { + "message": "Chat superiore" + }, + "trailerAutoplay": { + "message": "Avvio automatico trailer" + }, + "translations": { + "message": "Traduzioni" + }, + "transparentBackground": { + "message": "Sfondo trasparente" + }, + "trending": { + "message": "Di tendenza" + }, + "tryToReloadThePage": { + "message": "Provare a ricaricare la pagina" + }, + "type": { + "message": "Tipologia" + }, + "upNextAutoplay": { + "message": "Avvio automatico prossimo video" + }, + "use24HourFormat": { + "message": "Usa formato a 24 ore" + }, + "version": { + "message": "Numero versione" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "La descrizione del video verrà espansa per ottenere il nome della categoria" + }, + "videoFormats": { + "message": "Formati video" + }, + "videos": { + "message": "Video" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Guarda più tardi" + }, + "watchTime": { + "message": "Tempo di visione" + }, + "whenTabIsChanged": { + "message": "Quando si cambia scheda" + }, + "white": { + "message": "Bianco" + }, + "yellow": { + "message": "Giallo" + }, + "youtubeHeaderLeft": { + "message": "Intestazione YouTube (sinistra)" + }, + "youtubeHeaderRight": { + "message": "Intestazione YouTube (destra)" + }, + "youtubeHomePage": { + "message": "Pagina iniziale YouTube" + }, + "youtubeLanguage": { + "message": "Lingua YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limita la qualità video a 1080p per il codec h.264" + } +} diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json new file mode 100644 index 000000000..4961c702c --- /dev/null +++ b/_locales/ja/messages.json @@ -0,0 +1,809 @@ +{ + "about": { + "message": "このソフトについて" + }, + "accept": { + "message": "了解" + }, + "activate": { + "message": "有効にする" + }, + "activateCaptions": { + "message": "キャプションを有効にする" + }, + "activated": { + "message": "有効化" + }, + "activatedFeatures": { + "message": "有効化された機能" + }, + "activateFullscreen": { + "message": "全画面にする" + }, + "activeFeatures": { + "message": "機能の切り替え" + }, + "addScrollToTop": { + "message": "「一番上にスクロール」のボタンを追加する" + }, + "ads": { + "message": "広告" + }, + "all": { + "message": "すべて" + }, + "allow": { + "message": "許可" + }, + "allow60fps": { + "message": "60fpsを許可する" + }, + "alwaysActive": { + "message": "常に有効" + }, + "alwaysShowProgressBar": { + "message": "常にプログレスバーを表示する" + }, + "amber": { + "message": "アンバー" + }, + "analyzer": { + "message": "分析" + }, + "appearance": { + "message": "外観" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "音声" + }, + "audioFormats": { + "message": "音声形式" + }, + "auto": { + "message": "自動" + }, + "autoFullscreen": { + "message": "自動的に全画面にする" + }, + "autopauseWhenSwitchingTabs": { + "message": "タブ切り替えで自動的に一時停止" + }, + "autoplay": { + "message": "自動再生" + }, + "backupAndReset": { + "message": "バックアップとリセット" + }, + "baseOnSystemColorScheme": { + "message": "システムの色に合わせる" + }, + "belowPlayer": { + "message": "プレーヤーの下" + }, + "black": { + "message": "黒" + }, + "blacklist": { + "message": "ブラックリスト" + }, + "blockAll": { + "message": "すべてブロックする" + }, + "blue": { + "message": "青" + }, + "blueGray": { + "message": "青みがかった灰" + }, + "bluelight": { + "message": "ブルーライト" + }, + "brown": { + "message": "茶" + }, + "browser": { + "message": "ブラウザー" + }, + "browserVersion": { + "message": "ブラウザーのバージョン" + }, + "bubbles": { + "message": "バブル" + }, + "bug": { + "message": "バグ" + }, + "buttons": { + "message": "ボタン" + }, + "cancel": { + "message": "キャンセル" + }, + "categories": { + "message": "カテゴリー" + }, + "channel": { + "message": "チャンネル" + }, + "channels": { + "message": "チャンネル" + }, + "clipboard": { + "message": "クリップボード" + }, + "codecH264": { + "message": "H.264コーデック" + }, + "collapsed": { + "message": "畳む" + }, + "collapseOfSubscriptionSections": { + "message": "サブスクリプション部分を畳む" + }, + "comments": { + "message": "コメント" + }, + "confirmationBeforeClosing": { + "message": "閉じる前に確認する" + }, + "cookies": { + "message": "Cookie" + }, + "cores": { + "message": "コア数" + }, + "cropChapterTitles": { + "message": "チャプターのタイトルをトリミングする" + }, + "customCss": { + "message": "カスタム CSS" + }, + "customJs": { + "message": "カスタム JS" + }, + "customMiniPlayer": { + "message": "カスタムミニプレーヤー" + }, + "cyan": { + "message": "シアン" + }, + "dark": { + "message": "ダーク" + }, + "darkTheme": { + "message": "ダークテーマ" + }, + "dateAndTime": { + "message": "日付と時刻" + }, + "dawn": { + "message": "夜明け" + }, + "decreasePlaybackSpeed": { + "message": "再生速度を下げる" + }, + "decreaseVolume": { + "message": "音量を下げる" + }, + "deepOrange": { + "message": "深いオレンジ" + }, + "deepPurple": { + "message": "深い紫" + }, + "defaultChannelTab": { + "message": "デフォルトのチャンネルタブ" + }, + "deleteYoutubeCookies": { + "message": "YouTube の Cookie を削除する" + }, + "description": { + "message": "説明" + }, + "desert": { + "message": "砂漠" + }, + "details": { + "message": "詳細" + }, + "developerOptions": { + "message": "開発者向けオプション" + }, + "device": { + "message": "デバイス" + }, + "dim": { + "message": "暗さ" + }, + "disabled": { + "message": "無効" + }, + "dislike": { + "message": "低評価" + }, + "donate": { + "message": "寄付する" + }, + "doNotChange": { + "message": "変更しない" + }, + "draggable": { + "message": "ドラッグ可能にする" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "なし" + }, + "enabled": { + "message": "有効" + }, + "enabledForced": { + "message": "有効 (強制)" + }, + "expanded": { + "message": "広げる" + }, + "exportSettings": { + "message": "設定をエクスポートする" + }, + "extension": { + "message": "拡張" + }, + "file": { + "message": "ファイル" + }, + "filters": { + "message": "フィルター" + }, + "fitToWindow": { + "message": "ウィンドウに合わせる" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "フォント" + }, + "footer": { + "message": "フッター" + }, + "forcedPlaybackSpeed": { + "message": "再生速度を指定する" + }, + "forcedTheaterMode": { + "message": "シアターモードにする" + }, + "forcedVolume": { + "message": "音量を指定する" + }, + "foundABug": { + "message": "バグ報告" + }, + "fullWindow": { + "message": "フルウィンドウ" + }, + "general": { + "message": "一般" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "検索ボックスに行く" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "緑" + }, + "hdThumbnail": { + "message": "HDサムネイル" + }, + "hdThumbnails": { + "message": "HDサムネイル" + }, + "header": { + "message": "ヘッダー" + }, + "hidden": { + "message": "隠す" + }, + "hiddenOnVideoPage": { + "message": "動画ページでは隠す" + }, + "hideAnimatedThumbnails": { + "message": "サムネイルのアニメーションを行わない" + }, + "hideAnnotations": { + "message": "アノテーションを隠す" + }, + "hideCards": { + "message": "カードを隠す" + }, + "hideDetails": { + "message": "詳細を隠す" + }, + "hideEndscreen": { + "message": "再生終了時の画面を隠す" + }, + "hideFeaturedContent": { + "message": "おすすめチャンネルを非表示にする" + }, + "hideFooter": { + "message": "フッターを隠す" + }, + "hideGradientBottom": { + "message": "グラデーションの下部を隠す" + }, + "hidePlaylist": { + "message": "再生リストを隠す" + }, + "hideRightButtons": { + "message": "右ボタンを隠す" + }, + "hideScrollForDetails": { + "message": "「スクロールして詳細を表示」を隠す" + }, + "hideViewsCount": { + "message": "視聴数を隠す" + }, + "history": { + "message": "履歴" + }, + "home": { + "message": "ホーム" + }, + "hover": { + "message": "ホバー" + }, + "hoverOnVideoPage": { + "message": "動画ページではホバー" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "動画がアップロードされてからの時間" + }, + "icons": { + "message": "アイコン" + }, + "iconsOnly": { + "message": "アイコンのみ" + }, + "importSettings": { + "message": "設定をインポートする" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTubeアイコンをブラウザに表示する" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTubeアイコンをYouTubeに表示する" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube の言語" + }, + "improvedtubeVersion": { + "message": "ImprovedTube のバージョン" + }, + "improveLogo": { + "message": "ロゴを改良する" + }, + "increasePlaybackSpeed": { + "message": "再生速度を上げる" + }, + "increaseVolume": { + "message": "音量を上げる" + }, + "indigo": { + "message": "インディゴ" + }, + "items": { + "message": "アイテム" + }, + "languages": { + "message": "言語" + }, + "legacyYoutube": { + "message": "古い YouTube にする" + }, + "light": { + "message": "ライト" + }, + "lightBlue": { + "message": "薄い青" + }, + "lightGreen": { + "message": "薄い緑" + }, + "like": { + "message": "高評価" + }, + "likes": { + "message": "評価" + }, + "lime": { + "message": "ライム" + }, + "list": { + "message": "リスト" + }, + "liveChat": { + "message": "ライブチャット" + }, + "liveChatType": { + "message": "ライブチャットの種類" + }, + "loudnessNormalization": { + "message": "音量のノーマリゼーション" + }, + "markWatchedVideos": { + "message": "視聴した動画にマークを付ける" + }, + "mixer": { + "message": "ミキサー" + }, + "myColors": { + "message": "色設定" + }, + "name": { + "message": "名前" + }, + "nativeMiniPlayer": { + "message": "ネイティブミニプレーヤー" + }, + "new": { + "message": "新規" + }, + "nextVideo": { + "message": "次の動画" + }, + "night": { + "message": "夜" + }, + "noActiveFeatures": { + "message": "有効化された機能がありません" + }, + "none": { + "message": "なし" + }, + "noOpenVideoTabs": { + "message": "開いている動画タブがありません" + }, + "normal": { + "message": "標準" + }, + "old": { + "message": "Old" + }, + "onAllVideos": { + "message": "すべて許可する" + }, + "onlyActiveOnYoutube": { + "message": "YouTube で有効" + }, + "onlyOnePlayerInstancePlaying": { + "message": "1つのプレーヤーインスタンスのみにする" + }, + "onSubscribedChannels": { + "message": "登録したチャンネルでは許可する" + }, + "orange": { + "message": "オレンジ" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "その他" + }, + "permissions": { + "message": "権限" + }, + "pictureInPicture": { + "message": "ピクチャーインピクチャー" + }, + "pink": { + "message": "ピンク" + }, + "plain": { + "message": "プレーン" + }, + "platform": { + "message": "プラットフォーム" + }, + "playbackSpeed": { + "message": "再生速度" + }, + "player": { + "message": "プレーヤー" + }, + "playerColor": { + "message": "プレーヤーの色" + }, + "playerSize": { + "message": "プレーヤーのサイズ" + }, + "playlist": { + "message": "再生リスト" + }, + "playlists": { + "message": "再生リスト" + }, + "playPause": { + "message": "再生/一時停止" + }, + "popupPlayer": { + "message": "ポップアッププレーヤー" + }, + "position": { + "message": "位置" + }, + "pressAnyKeyOrScroll": { + "message": "任意のキーを押すか、マウスホイールを使用してください" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "任意のキーを押すか、マウスホイールを使用してください" + }, + "previousVideo": { + "message": "前の動画" + }, + "primaryColor": { + "message": "全体の色" + }, + "purple": { + "message": "紫" + }, + "quality": { + "message": "画質" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "評価する" + }, + "red": { + "message": "赤" + }, + "redDislikeButton": { + "message": "低評価ボタンを赤色で表示する" + }, + "relatedVideos": { + "message": "関連動画" + }, + "removeRelatedSearchResults": { + "message": "関連動画を検索結果から削除する" + }, + "repeat": { + "message": "リピート" + }, + "reset": { + "message": "リセット" + }, + "resetAllSettings": { + "message": "すべての設定をリセットする" + }, + "resetAllShortcuts": { + "message": "すべてのショートカットをリセットする" + }, + "reverse": { + "message": "逆順にする" + }, + "rotate": { + "message": "回転" + }, + "save": { + "message": "保存" + }, + "saveAs": { + "message": "別名で保存する" + }, + "schedule": { + "message": "スケジュール" + }, + "screen": { + "message": "スクリーン" + }, + "screenshot": { + "message": "スクリーンショット" + }, + "search": { + "message": "検索" + }, + "searchBarOnly": { + "message": "検索バーのみ" + }, + "seekBackward10Seconds": { + "message": "10秒戻る" + }, + "seekForward10Seconds": { + "message": "10秒進む" + }, + "settings": { + "message": "設定" + }, + "settingsSuccessfullyImported": { + "message": "設定を正常にインポートしました" + }, + "shortcuts": { + "message": "ショートカット" + }, + "showCardsOnMouseHover": { + "message": "マウスオーバーでカードを表示する" + }, + "showChannelVideosCount": { + "message": "チャンネルの動画数を表示する" + }, + "shuffle": { + "message": "シャッフル" + }, + "sidebar": { + "message": "サイドバー" + }, + "spacebar": { + "message": "スペースキー" + }, + "squaredUserImages": { + "message": "ユーザー画像を四角にする" + }, + "static": { + "message": "スタティック" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "ステップ" + }, + "stop": { + "message": "停止" + }, + "style": { + "message": "スタイル" + }, + "styles": { + "message": "スタイル" + }, + "subscriptions": { + "message": "登録チャンネル" + }, + "subtitles": { + "message": "サブタイトル" + }, + "sunset": { + "message": "夕焼け" + }, + "sunsetToSunrise": { + "message": "夕焼けから日の出へ" + }, + "systemPeferenceDark": { + "message": "システム設定: ダーク" + }, + "systemPeferenceLight": { + "message": "システム設定: ライト" + }, + "teal": { + "message": "ティール" + }, + "textColor": { + "message": "文字の色" + }, + "themes": { + "message": "テーマ" + }, + "thisWillRemoveAllCookies": { + "message": "これはすべての Cookie を削除します。" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "YouTube のすべての Cookie を削除します" + }, + "thisWillResetAllSettings": { + "message": "すべての設定をリセットします。" + }, + "thisWillResetAllShortcuts": { + "message": "すべてのショートカットをリセットします" + }, + "thumbnails": { + "message": "サムネイル" + }, + "timeFrom": { + "message": "この時間から" + }, + "timeTo": { + "message": "この時間まで" + }, + "todayAt": { + "message": "測定時刻" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "上位チャット" + }, + "trailerAutoplay": { + "message": "トレーラーを自動再生する" + }, + "translations": { + "message": "翻訳" + }, + "transparentBackground": { + "message": "透明な背景" + }, + "trending": { + "message": "急上昇" + }, + "tryToReloadThePage": { + "message": "ページをリロードしてみてください" + }, + "type": { + "message": "種類" + }, + "upNextAutoplay": { + "message": "次の動画を自動再生する" + }, + "use24HourFormat": { + "message": "24時間表示にする" + }, + "version": { + "message": "バージョン" + }, + "video": { + "message": "動画" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "動画の説明はカテゴリ名を取得するために広げられます" + }, + "videoFormats": { + "message": "動画形式" + }, + "videos": { + "message": "動画" + }, + "volume": { + "message": "音量" + }, + "watchLater": { + "message": "後で見る" + }, + "watchTime": { + "message": "視聴時間" + }, + "whenTabIsChanged": { + "message": "タブを変更したとき" + }, + "white": { + "message": "白" + }, + "yellow": { + "message": "黄" + }, + "youtubeHeaderLeft": { + "message": "YouTube のヘッダー左" + }, + "youtubeHeaderRight": { + "message": "YouTube のヘッダー右" + }, + "youtubeHomePage": { + "message": "YouTube のホームページ" + }, + "youtubeLanguage": { + "message": "YouTube の言語" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube はH.264コーデックの画質を1080pに制限しています" + } +} \ No newline at end of file diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json new file mode 100644 index 000000000..c3402b28a --- /dev/null +++ b/_locales/ko/messages.json @@ -0,0 +1,806 @@ +{ + "about": { + "message": "정보" + }, + "accept": { + "message": "동의" + }, + "activate": { + "message": "활성화" + }, + "activateCaptions": { + "message": "자막 활성화" + }, + "activated": { + "message": "활성화됨" + }, + "activatedFeatures": { + "message": "활성화된 기능" + }, + "activateFullscreen": { + "message": "전체화면 활성화" + }, + "activeFeatures": { + "message": "활성 기능" + }, + "addScrollToTop": { + "message": "<<맨위로>> 추가" + }, + "ads": { + "message": "광고" + }, + "all": { + "message": "모두" + }, + "allow": { + "message": "허용" + }, + "allow60fps": { + "message": "60에프피에스(fps) 허용" + }, + "alwaysActive": { + "message": "항상 활성화" + }, + "alwaysShowProgressBar": { + "message": "재생 진행 상태 항상 표시" + }, + "amber": { + "message": "호박색" + }, + "analyzer": { + "message": "분석" + }, + "appearance": { + "message": "외관" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "오디오" + }, + "audioFormats": { + "message": "오디오 형식" + }, + "auto": { + "message": "자동" + }, + "autoFullscreen": { + "message": "자동 전체화면" + }, + "autopauseWhenSwitchingTabs": { + "message": "탭전환시 자동 일시정지" + }, + "autoplay": { + "message": "자동재생" + }, + "backupAndReset": { + "message": "백업 & 리셋" + }, + "baseOnSystemColorScheme": { + "message": "시스템 색 구성표 기반" + }, + "belowPlayer": { + "message": "플레이어 아래" + }, + "black": { + "message": "검정" + }, + "blacklist": { + "message": "블랙리스트" + }, + "blockAll": { + "message": "모두 차단" + }, + "blue": { + "message": "파랑" + }, + "blueGray": { + "message": "블루그레이" + }, + "bluelight": { + "message": "블루라이트" + }, + "brown": { + "message": "갈색" + }, + "browser": { + "message": "브라우저" + }, + "browserVersion": { + "message": "브라우저 버전" + }, + "bubbles": { + "message": "버블" + }, + "bug": { + "message": "버그" + }, + "buttons": { + "message": "버튼" + }, + "cancel": { + "message": "취소" + }, + "categories": { + "message": "카테고리" + }, + "channel": { + "message": "채널" + }, + "channels": { + "message": "채널" + }, + "clipboard": { + "message": "클립보드" + }, + "codecH264": { + "message": "코덱 h.264" + }, + "collapsed": { + "message": "축소됨" + }, + "collapseOfSubscriptionSections": { + "message": "구독섹션 축소" + }, + "comments": { + "message": "댓글" + }, + "confirmationBeforeClosing": { + "message": "닫기전에 확인하기" + }, + "cookies": { + "message": "쿠키" + }, + "cores": { + "message": "코어" + }, + "cropChapterTitles": { + "message": "제목 자르기" + }, + "customCss": { + "message": "사용자 지정 캐스캐이팅 스타일 시트(CSS)" + }, + "customJs": { + "message": "사용자 지정 자바스크립트(JS)" + }, + "customMiniPlayer": { + "message": "커스텀 미니플레이어" + }, + "cyan": { + "message": "옥색" + }, + "dark": { + "message": "다크" + }, + "darkTheme": { + "message": "다크 테마" + }, + "dateAndTime": { + "message": "날짜 & 시간" + }, + "dawn": { + "message": "석양" + }, + "decreasePlaybackSpeed": { + "message": "되감기 속도 감소" + }, + "decreaseVolume": { + "message": "볼륨 감소" + }, + "deepOrange": { + "message": "진한 주황" + }, + "deepPurple": { + "message": "진한 보라" + }, + "defaultChannelTab": { + "message": "기본 채널 탭" + }, + "deleteYoutubeCookies": { + "message": "유튜브 쿠키 삭제" + }, + "description": { + "message": "설명" + }, + "desert": { + "message": "사막" + }, + "details": { + "message": "자세히" + }, + "developerOptions": { + "message": "개발자 옵션" + }, + "device": { + "message": "기기" + }, + "dim": { + "message": "어둡게" + }, + "disabled": { + "message": "비활성화" + }, + "dislike": { + "message": "싫어요" + }, + "donate": { + "message": "후원하기" + }, + "doNotChange": { + "message": "바꾸지 않음" + }, + "draggable": { + "message": "드래그 가능" + }, + "email": { + "message": "이메일" + }, + "empty": { + "message": "비어있음" + }, + "enabled": { + "message": "활성화" + }, + "enabledForced": { + "message": "활성화 (강제)" + }, + "expanded": { + "message": "확장" + }, + "exportSettings": { + "message": "설정 내보내기" + }, + "extension": { + "message": "확대" + }, + "file": { + "message": "파일" + }, + "filters": { + "message": "필터" + }, + "fitToWindow": { + "message": "창크기에 맞추기" + }, + "flash": { + "message": "플래시" + }, + "font": { + "message": "글꼴" + }, + "footer": { + "message": "하단" + }, + "forcedPlaybackSpeed": { + "message": "되감기 속도 강제설정" + }, + "forcedTheaterMode": { + "message": "강제 영화관 모드" + }, + "forcedVolume": { + "message": "볼륨 강제설정" + }, + "foundABug": { + "message": "버그신고" + }, + "fullWindow": { + "message": "전체 화면" + }, + "general": { + "message": "일반" + }, + "github": { + "message": "깃허브(GitHub)" + }, + "goToSearchBox": { + "message": "검색창으로 이동" + }, + "gpu": { + "message": "그래픽 처리 장치" + }, + "green": { + "message": "초록" + }, + "hdThumbnail": { + "message": "HD 썸네일" + }, + "hdThumbnails": { + "message": "HD 썸네일" + }, + "header": { + "message": "헤더" + }, + "hidden": { + "message": "숨김" + }, + "hiddenOnVideoPage": { + "message": "비디오 페이지 숨기기" + }, + "hideAnimatedThumbnails": { + "message": "썸네일 애니메이션 숨기기" + }, + "hideAnnotations": { + "message": "설명 숨기기" + }, + "hideCards": { + "message": "카드 숨기기" + }, + "hideDetails": { + "message": "상세설명 숨기기" + }, + "hideEndscreen": { + "message": "종료후 화면 숨기기" + }, + "hideFeaturedContent": { + "message": "추천 영상 숨기기" + }, + "hideFooter": { + "message": "하단 숨기기" + }, + "hideGradientBottom": { + "message": "그라데이션 맨 아래로 숨기기" + }, + "hidePlaylist": { + "message": "재생 목록 숨기기" + }, + "hideRightButtons": { + "message": "오른쪽 버튼 숨기기" + }, + "hideScrollForDetails": { + "message": "«스크롤 하여 자세한 설명» 숨기기" + }, + "hideViewsCount": { + "message": "조회수 숨기기" + }, + "history": { + "message": "히스토리" + }, + "home": { + "message": "홈" + }, + "hover": { + "message": "띄우기" + }, + "hoverOnVideoPage": { + "message": "비디오 페이지 띄우기" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "업로드 시기" + }, + "icons": { + "message": "아이콘" + }, + "iconsOnly": { + "message": "아이콘만" + }, + "importSettings": { + "message": "설정 불러오기" + }, + "improvedtubeIconInBrowser": { + "message": "향상된 브라우저 아이콘" + }, + "improvedtubeIconOnYoutube": { + "message": "향상된 유튜브 아이콘" + }, + "improvedtubeLanguage": { + "message": "향상된 유튜브 언어" + }, + "improvedtubeVersion": { + "message": "향상된 유튜브 버전" + }, + "improveLogo": { + "message": "향상된 로고" + }, + "increasePlaybackSpeed": { + "message": "되감기 속도 증가" + }, + "increaseVolume": { + "message": "볼륨 증가" + }, + "indigo": { + "message": "남색" + }, + "items": { + "message": "요소" + }, + "languages": { + "message": "언어" + }, + "legacyYoutube": { + "message": "레거시 유튜브" + }, + "light": { + "message": "밝게" + }, + "lightBlue": { + "message": "연파랑" + }, + "lightGreen": { + "message": "연초록" + }, + "like": { + "message": "좋아요" + }, + "likes": { + "message": "좋아요" + }, + "lime": { + "message": "라임" + }, + "list": { + "message": "리스트" + }, + "liveChat": { + "message": "실시간 채팅" + }, + "liveChatType": { + "message": "실시간 채팅 유형" + }, + "loudnessNormalization": { + "message": "볼륨 자동조정" + }, + "markWatchedVideos": { + "message": "시청한 영상 표시" + }, + "mixer": { + "message": "믹서" + }, + "myColors": { + "message": "내 컬러" + }, + "name": { + "message": "이름" + }, + "nativeMiniPlayer": { + "message": "네이티브 미니플레이어" + }, + "new": { + "message": "새로운 소식" + }, + "nextVideo": { + "message": "다음 영상" + }, + "night": { + "message": "저녘" + }, + "noActiveFeatures": { + "message": "활성 기능 없음" + }, + "none": { + "message": "없음" + }, + "noOpenVideoTabs": { + "message": "열린 비디오 탭 없음" + }, + "normal": { + "message": "기본" + }, + "old": { + "message": "오래됨" + }, + "onAllVideos": { + "message": "모든 비디오" + }, + "onlyActiveOnYoutube": { + "message": "유튜브만 활성화" + }, + "onlyOnePlayerInstancePlaying": { + "message": "하나의 플레이어만 재생" + }, + "onSubscribedChannels": { + "message": "구독한 채널" + }, + "orange": { + "message": "주황" + }, + "os": { + "message": "운영체제" + }, + "other": { + "message": "기타" + }, + "permissions": { + "message": "권한" + }, + "pictureInPicture": { + "message": "픽처 인 픽처(PIP) 재생" + }, + "pink": { + "message": "분홍" + }, + "plain": { + "message": "무색" + }, + "platform": { + "message": "플랫폼" + }, + "playbackSpeed": { + "message": "되감기 속도" + }, + "player": { + "message": "플레이어" + }, + "playerColor": { + "message": "플레이어 컬러" + }, + "playerSize": { + "message": "플레이어 크기" + }, + "playlist": { + "message": "플레이리스트" + }, + "playlists": { + "message": "플레이리스트" + }, + "playPause": { + "message": "재생 / 일시정지" + }, + "popupPlayer": { + "message": "팝업 플레이어" + }, + "position": { + "message": "위치" + }, + "pressAnyKeyOrScroll": { + "message": "사용할 단축키 또는 마우스 휠을 누르세요." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "사용할 단축키 또는 마우스 휠을 누르세요." + }, + "previousVideo": { + "message": "이전 영상" + }, + "primaryColor": { + "message": "주 색상" + }, + "purple": { + "message": "보라" + }, + "quality": { + "message": "퀄리티" + }, + "ram": { + "message": "램" + }, + "rateUs": { + "message": "평가하기" + }, + "red": { + "message": "빨강" + }, + "relatedVideos": { + "message": "관련 영상" + }, + "removeRelatedSearchResults": { + "message": "관련 검색결과 제거" + }, + "repeat": { + "message": "반복" + }, + "reset": { + "message": "리셋" + }, + "resetAllSettings": { + "message": "모든 설정 리셋" + }, + "resetAllShortcuts": { + "message": "모든 단축키 리셋" + }, + "reverse": { + "message": "반대로" + }, + "rotate": { + "message": "회전" + }, + "save": { + "message": "저장" + }, + "saveAs": { + "message": "다른이름으로 저장" + }, + "schedule": { + "message": "스케줄" + }, + "screen": { + "message": "스크린" + }, + "screenshot": { + "message": "스크린샷" + }, + "search": { + "message": "검색" + }, + "searchBarOnly": { + "message": "검색창만" + }, + "seekBackward10Seconds": { + "message": "뒤로 10초" + }, + "seekForward10Seconds": { + "message": "앞으로 10초" + }, + "settings": { + "message": "설정" + }, + "settingsSuccessfullyImported": { + "message": "설정 내보내기 완료" + }, + "shortcuts": { + "message": "단축키" + }, + "showCardsOnMouseHover": { + "message": "마우스 올릴 때 카드보기" + }, + "showChannelVideosCount": { + "message": "채널의 비디오수 표시" + }, + "shuffle": { + "message": "셔플" + }, + "sidebar": { + "message": "사이드바" + }, + "spacebar": { + "message": "스페이스바" + }, + "squaredUserImages": { + "message": "정사각형 프로필사진" + }, + "static": { + "message": "고정" + }, + "statsForNerds": { + "message": "너드 통계 표시" + }, + "step": { + "message": "스텝" + }, + "stop": { + "message": "정지" + }, + "style": { + "message": "스타일" + }, + "styles": { + "message": "스타일" + }, + "subscriptions": { + "message": "구독" + }, + "subtitles": { + "message": "자막" + }, + "sunset": { + "message": "일몰" + }, + "sunsetToSunrise": { + "message": "일몰부터 일출까지" + }, + "systemPeferenceDark": { + "message": "개인 설정: 다크" + }, + "systemPeferenceLight": { + "message": "개인 설정: 라이트" + }, + "teal": { + "message": "청록" + }, + "textColor": { + "message": "텍스트 색상" + }, + "themes": { + "message": "테마" + }, + "thisWillRemoveAllCookies": { + "message": "모든 쿠키를 삭제합니다." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "모든 유튜브 쿠키를 삭제합니다." + }, + "thisWillResetAllSettings": { + "message": "모든 설정을 초기화 합니다." + }, + "thisWillResetAllShortcuts": { + "message": "모든 단축키를 초기화 합니다." + }, + "thumbnails": { + "message": "썸네일" + }, + "timeFrom": { + "message": "다음시간 부터" + }, + "timeTo": { + "message": "다음시간 까지" + }, + "todayAt": { + "message": "오늘의" + }, + "toggleCards": { + "message": "토글 카드" + }, + "topChat": { + "message": "탑 챗" + }, + "trailerAutoplay": { + "message": "트레일러 자동재생" + }, + "translations": { + "message": "번역" + }, + "transparentBackground": { + "message": "투명한 배경" + }, + "trending": { + "message": "인기" + }, + "tryToReloadThePage": { + "message": "새로고침을 시도하십시오" + }, + "type": { + "message": "타입" + }, + "upNextAutoplay": { + "message": "다음영상 자동재생" + }, + "use24HourFormat": { + "message": "24시간 형식 사용" + }, + "version": { + "message": "버젼" + }, + "video": { + "message": "영상" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "카테고리의 이름을 얻기 위해 비디오 설명이 확장됩니다" + }, + "videoFormats": { + "message": "비디오 형식" + }, + "videos": { + "message": "비디오" + }, + "volume": { + "message": "음량" + }, + "watchLater": { + "message": "나중에 보기" + }, + "watchTime": { + "message": "시간 보기" + }, + "whenTabIsChanged": { + "message": "탭이 바뀔때" + }, + "white": { + "message": "하양" + }, + "yellow": { + "message": "노랑" + }, + "youtubeHeaderLeft": { + "message": "유튜브 헤더 (왼쪽)" + }, + "youtubeHeaderRight": { + "message": "유튜브 헤더 (오른쪽)" + }, + "youtubeHomePage": { + "message": "유튜브 홈페이지" + }, + "youtubeLanguage": { + "message": "유튜브 언어" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "유튜브는 h.264 코덱에서 비디오 품질을 1080p로 제한합니다" + } +} \ No newline at end of file diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json new file mode 100644 index 000000000..77df3b6de --- /dev/null +++ b/_locales/nb_NO/messages.json @@ -0,0 +1,812 @@ +{ + "about": { + "message": "Om" + }, + "accept": { + "message": "aksepter" + }, + "activate": { + "message": "Aktiver" + }, + "activateCaptions": { + "message": "Aktiver underteksting" + }, + "activated": { + "message": "Aktivert" + }, + "activatedFeatures": { + "message": "Aktiverte funksjoner" + }, + "activateFullscreen": { + "message": "Aktiver fullskjerm" + }, + "activeFeatures": { + "message": "Aktive funksjoner" + }, + "addScrollToTop": { + "message": "Legg til «Rull til toppen»" + }, + "ads": { + "message": "Reklamer" + }, + "all": { + "message": "Alle" + }, + "allow": { + "message": "Tillat" + }, + "allow60fps": { + "message": "Tillat 60 bps" + }, + "alwaysActive": { + "message": "Alltid aktiv" + }, + "alwaysShowProgressBar": { + "message": "Alltid vis fremdriftslinje" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analysator" + }, + "appearance": { + "message": "Utseende" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Lyd" + }, + "audioFormats": { + "message": "Lydformater" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullskjerm" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause når du bytter faner" + }, + "autoplay": { + "message": "Autoplay" + }, + "backupAndReset": { + "message": "Sikkerhetskopiering og tilbakestilling" + }, + "baseOnSystemColorScheme": { + "message": "Baser på systemfargevalg" + }, + "belowPlayer": { + "message": "Nedenfor avspiller" + }, + "black": { + "message": "Svart" + }, + "blacklist": { + "message": "Svartelist" + }, + "blockAll": { + "message": "Blokker alle" + }, + "blue": { + "message": "Blå" + }, + "blueGray": { + "message": "Blågrå" + }, + "bluelight": { + "message": "Blålys" + }, + "brown": { + "message": "Brun" + }, + "browser": { + "message": "Nettleser" + }, + "browserVersion": { + "message": "Nettleser-versjon" + }, + "bubbles": { + "message": "Bobler" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Knapper" + }, + "cancel": { + "message": "Avbryt" + }, + "categories": { + "message": "Kategorier" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanaler" + }, + "clipboard": { + "message": "Utklippstavle" + }, + "codecH264": { + "message": "H.264-kodek" + }, + "collapsed": { + "message": "kollapset" + }, + "collapseOfSubscriptionSections": { + "message": "Kollaps av abonnementsdelene" + }, + "comments": { + "message": "Kommentarer" + }, + "confirmationBeforeClosing": { + "message": "Bekreftelse før stenging" + }, + "cookies": { + "message": "Informasjonskapslene" + }, + "cores": { + "message": "Kjerner" + }, + "cropChapterTitles": { + "message": "Beskjær kapitteltitler" + }, + "customCss": { + "message": "Tilpasset CSS" + }, + "customJs": { + "message": "Tilpasset JS" + }, + "customMiniPlayer": { + "message": "Egendefinert miniavspiller" + }, + "cyan": { + "message": "Blålilla" + }, + "dark": { + "message": "Mørk" + }, + "darkTheme": { + "message": "Mørk drakt" + }, + "dateAndTime": { + "message": "Dato og klokkeslett" + }, + "dawn": { + "message": "Soloppgang" + }, + "decreasePlaybackSpeed": { + "message": "Reduser avspillingshastighet" + }, + "decreaseVolume": { + "message": "Reduser lydstyrken" + }, + "deepOrange": { + "message": "Dyporansje" + }, + "deepPurple": { + "message": "Mørkelilla" + }, + "defaultChannelTab": { + "message": "Forvalgt kanalfane" + }, + "deleteYoutubeCookies": { + "message": "Slett YouTube-informasjonskapsler" + }, + "description": { + "message": "Beskrivelse" + }, + "desert": { + "message": "Ørken" + }, + "details": { + "message": "Detaljer" + }, + "developerOptions": { + "message": "Utviklermuligheter" + }, + "device": { + "message": "Enhet" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Avslått" + }, + "dislike": { + "message": "Mislik" + }, + "donate": { + "message": "Doner" + }, + "doNotChange": { + "message": "Ikke endre" + }, + "draggable": { + "message": "Flyttbare" + }, + "email": { + "message": "E-post" + }, + "empty": { + "message": "Tom" + }, + "enabled": { + "message": "Aktivert" + }, + "enabledForced": { + "message": "Aktivert (tvunget)" + }, + "expanded": { + "message": "Utvidet" + }, + "exportSettings": { + "message": "Eksporter innstillinger" + }, + "extension": { + "message": "Utvidelse" + }, + "file": { + "message": "Fil" + }, + "filters": { + "message": "Filtre" + }, + "fitToWindow": { + "message": "Tilpass til vindu" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "footer": { + "message": "Bunntekst" + }, + "forcedPlaybackSpeed": { + "message": "Tvungen avspillingshastighet" + }, + "forcedTheaterMode": { + "message": "Tvunget teater-modus" + }, + "forcedVolume": { + "message": "Tvunget lydstyrke" + }, + "foundABug": { + "message": "Fant du en feil?" + }, + "fullWindow": { + "message": "Fullt vindu" + }, + "general": { + "message": "Generelt" + }, + "geoPreference": { + "message": "Geo-preferanse" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Gå til søkefeltet" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Grønn" + }, + "hdThumbnail": { + "message": "HD-miniatyrbilde" + }, + "hdThumbnails": { + "message": "HD-miniatyrbilder" + }, + "header": { + "message": "Overskrift" + }, + "hidden": { + "message": "Skjult" + }, + "hiddenOnVideoPage": { + "message": "Skjult på videosiden" + }, + "hideAnimatedThumbnails": { + "message": "Skjul animerte miniatyrbilder" + }, + "hideAnnotations": { + "message": "Skjul annoteringer" + }, + "hideCards": { + "message": "Skjul kort" + }, + "hideDetails": { + "message": "Skjul detaljer" + }, + "hideEndscreen": { + "message": "Skjul sluttskjerm" + }, + "hideFeaturedContent": { + "message": "Skjul omtalt innhold" + }, + "hideFooter": { + "message": "Skjul bunntekst" + }, + "hideGradientBottom": { + "message": "Skjul bunn-fargeovergang" + }, + "hidePlaylist": { + "message": "Skjul spilleliste" + }, + "hideRightButtons": { + "message": "Skjul høyre-knapper" + }, + "hideScrollForDetails": { + "message": "Skjul «Bla for detaljer»" + }, + "hideViewsCount": { + "message": "Skjul visningsteller" + }, + "history": { + "message": "Historie" + }, + "home": { + "message": "Hjem" + }, + "hover": { + "message": "Hold" + }, + "hoverOnVideoPage": { + "message": "Hold musepekeren på videosiden" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Hvor lenge siden videoen ble opplastet" + }, + "icons": { + "message": "Ikoner" + }, + "iconsOnly": { + "message": "Kun ikoner" + }, + "importSettings": { + "message": "Importer innstillinger" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube-ikonet i nettleseren" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube-ikonet på YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube-språk" + }, + "improvedtubeVersion": { + "message": "ImprovedTube-versjon" + }, + "improveLogo": { + "message": "Forbedre logo" + }, + "increasePlaybackSpeed": { + "message": "Øk avspillingshastigheten" + }, + "increaseVolume": { + "message": "Øk lydstyrken" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Elementer" + }, + "languages": { + "message": "Språk" + }, + "legacyYoutube": { + "message": "Gammeldags YouTube" + }, + "light": { + "message": "Lys" + }, + "lightBlue": { + "message": "Lyseblå" + }, + "lightGreen": { + "message": "Lysegrønn" + }, + "like": { + "message": "Gunst" + }, + "likes": { + "message": "Begunstninger" + }, + "lime": { + "message": "Lime" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Sanntidssludring" + }, + "liveChatType": { + "message": "Sanntidssludringstype" + }, + "loudnessNormalization": { + "message": "Lydstyrkenormalisering" + }, + "markWatchedVideos": { + "message": "Marker sette videoer" + }, + "mixer": { + "message": "Mikser" + }, + "myColors": { + "message": "Mine farger" + }, + "name": { + "message": "Navn" + }, + "nativeMiniPlayer": { + "message": "Innebygd miniavspiller" + }, + "new": { + "message": "Ny" + }, + "nextVideo": { + "message": "Neste video" + }, + "night": { + "message": "Natt" + }, + "noActiveFeatures": { + "message": "Ingen aktive funksjoner" + }, + "none": { + "message": "Ingen" + }, + "noOpenVideoTabs": { + "message": "Ingen åpne videofaner" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Gammel" + }, + "onAllVideos": { + "message": "På alle videoer" + }, + "onlyActiveOnYoutube": { + "message": "Kun aktiv på YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Kun én avspiller viser noe" + }, + "onSubscribedChannels": { + "message": "På abonnementskanaler" + }, + "orange": { + "message": "Oransje" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Andre" + }, + "permissions": { + "message": "rettigheter" + }, + "pictureInPicture": { + "message": "Bilde-i-bilde" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Vanlig" + }, + "platform": { + "message": "Plattform" + }, + "playbackSpeed": { + "message": "Avspillingshastighet" + }, + "player": { + "message": "Avspiller" + }, + "playerColor": { + "message": "Avspiller-farge" + }, + "playerSize": { + "message": "Avspiller-størrelse" + }, + "playlist": { + "message": "Spilleliste" + }, + "playlists": { + "message": "Spillelister" + }, + "playPause": { + "message": "Spill / Pause" + }, + "popupPlayer": { + "message": "Oppsprettsspiller" + }, + "position": { + "message": "Posisjon" + }, + "pressAnyKeyOrScroll": { + "message": "Trykk på hvilken som helst tast, eller bruk musehjulet." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Trykk på hvilken som helst tast, eller bruk musehjulet" + }, + "previousVideo": { + "message": "Forrige video" + }, + "primaryColor": { + "message": "Hovedfarge" + }, + "purple": { + "message": "Lilla" + }, + "quality": { + "message": "Kvalitet" + }, + "ram": { + "message": "Minne" + }, + "rateUs": { + "message": "Rangere oss" + }, + "red": { + "message": "Rød" + }, + "redDislikeButton": { + "message": "Vis tommel ned i rød farge" + }, + "relatedVideos": { + "message": "Relaterte videoer" + }, + "removeRelatedSearchResults": { + "message": "Fjern relaterte søkeresultater" + }, + "repeat": { + "message": "Gjenta" + }, + "reset": { + "message": "Tilbakestill" + }, + "resetAllSettings": { + "message": "Tilbakestill alle instillinger" + }, + "resetAllShortcuts": { + "message": "Tilbakestill alle snarveier" + }, + "reverse": { + "message": "Omvendt" + }, + "rotate": { + "message": "Roter" + }, + "save": { + "message": "Lagre" + }, + "saveAs": { + "message": "Lagre som" + }, + "schedule": { + "message": "Tidsplan" + }, + "screen": { + "message": "Skjerm" + }, + "screenshot": { + "message": "Skjeravbildning" + }, + "search": { + "message": "Søk" + }, + "searchBarOnly": { + "message": "Bare søkefelt" + }, + "seekBackward10Seconds": { + "message": "Spol 10 sekunder bakover" + }, + "seekForward10Seconds": { + "message": "Spol 10 sekunder fremover" + }, + "settings": { + "message": "Innstillinger" + }, + "settingsSuccessfullyImported": { + "message": "Innstillinger importert" + }, + "shortcuts": { + "message": "Snarveier" + }, + "showCardsOnMouseHover": { + "message": "Vis kort på musepekeren" + }, + "showChannelVideosCount": { + "message": "Vis antall kanaler" + }, + "shuffle": { + "message": "Tilfeldig rekkefølge" + }, + "sidebar": { + "message": "Sidepanel" + }, + "spacebar": { + "message": "Mellomrom" + }, + "squaredUserImages": { + "message": "Kvadratiske brukerbilder" + }, + "static": { + "message": "Statisk" + }, + "statsForNerds": { + "message": "Vis statistikk for nerder" + }, + "step": { + "message": "Steg" + }, + "stop": { + "message": "Stopp" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stiler" + }, + "subscriptions": { + "message": "Abonnementer" + }, + "subtitles": { + "message": "Undertekster" + }, + "sunset": { + "message": "Solnedgang" + }, + "sunsetToSunrise": { + "message": "Solnedgang til soloppgang" + }, + "systemPeferenceDark": { + "message": "Systeminnstillinger: mørk" + }, + "systemPeferenceLight": { + "message": "Systeminnstillinger: lys" + }, + "teal": { + "message": "Blågrønn" + }, + "textColor": { + "message": "Tekstfarge" + }, + "themes": { + "message": "Drakter" + }, + "thisWillRemoveAllCookies": { + "message": "Dette vil fjerne alle informasjonskapsler." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Dette vil fjerne alle YouTube-informasjonskapsler" + }, + "thisWillResetAllSettings": { + "message": "Dette vil tilbakestille alle innstillinger." + }, + "thisWillResetAllShortcuts": { + "message": "Dette vil tilbakestille alle snarveier" + }, + "thumbnails": { + "message": "miniatyrbilder " + }, + "timeFrom": { + "message": "Fra" + }, + "timeTo": { + "message": "Til" + }, + "todayAt": { + "message": "I dag kl." + }, + "toggleCards": { + "message": "Veksle kort" + }, + "topChat": { + "message": "Hovedsludring" + }, + "trailerAutoplay": { + "message": "Trailer autospilling" + }, + "translations": { + "message": "Oversettelser" + }, + "transparentBackground": { + "message": "Gjennomsiktig bakgrunn" + }, + "trending": { + "message": "Trender" + }, + "tryToReloadThePage": { + "message": "Forsøk å laste inn siden på nytt" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "«Spilles senere»-autospilling" + }, + "use24HourFormat": { + "message": "Bruk 24-timersformat" + }, + "version": { + "message": "Versjon" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Videobeskrivelsen vil bli utvidet for å få med navnet på kategorien" + }, + "videoFormats": { + "message": "Video-formater" + }, + "videos": { + "message": "Videoer" + }, + "volume": { + "message": "Lydstyrke" + }, + "watchLater": { + "message": "Se senere" + }, + "watchTime": { + "message": "Tid sett" + }, + "whenTabIsChanged": { + "message": "Når fanen endres" + }, + "white": { + "message": "Hvit" + }, + "yellow": { + "message": "Gul" + }, + "youtubeHeaderLeft": { + "message": "YouTube-topptekst (til venstre)" + }, + "youtubeHeaderRight": { + "message": "YouTube-topptekst (til høyre)" + }, + "youtubeHomePage": { + "message": "YouTube-startside" + }, + "youtubeLanguage": { + "message": "YouTube-språk" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube begrenser videokvaliteten til 1080p for H.264-kodeket" + } +} \ No newline at end of file diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json new file mode 100644 index 000000000..f752e7851 --- /dev/null +++ b/_locales/nl/messages.json @@ -0,0 +1,809 @@ +{ + "about": { + "message": "Over" + }, + "accept": { + "message": "Accepteren" + }, + "activate": { + "message": "Activeren" + }, + "activateCaptions": { + "message": "Activeer bijschriften" + }, + "activated": { + "message": "Geactiveerd" + }, + "activatedFeatures": { + "message": "Geactiveerde features" + }, + "activateFullscreen": { + "message": "Activeer volledig scherm" + }, + "activeFeatures": { + "message": "Actieve features" + }, + "addScrollToTop": { + "message": "Voeg «Scroll to top» toe" + }, + "ads": { + "message": "Reclames" + }, + "all": { + "message": "Alles" + }, + "allow": { + "message": "Toestaan" + }, + "allow60fps": { + "message": "60fps toestaan" + }, + "alwaysActive": { + "message": "Altijd actief" + }, + "alwaysShowProgressBar": { + "message": "Altijd voortgangsbalk laten zien" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analyse" + }, + "appearance": { + "message": "Uiterlijk" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formaten" + }, + "auto": { + "message": "Automatisch" + }, + "autoFullscreen": { + "message": "Automatisch volledig scherm" + }, + "autopauseWhenSwitchingTabs": { + "message": "Automatisch pauzeren bij het wisselen van tabbladen" + }, + "autoplay": { + "message": "Automatisch afspelen" + }, + "backupAndReset": { + "message": "Backup maken & reseten" + }, + "baseOnSystemColorScheme": { + "message": "Baseer op kleurenschema van systeem" + }, + "belowPlayer": { + "message": "Onder de speler" + }, + "black": { + "message": "Zwart" + }, + "blacklist": { + "message": "Zwarte lijst" + }, + "blockAll": { + "message": "Alles blokkeren" + }, + "blue": { + "message": "Blauw" + }, + "blueGray": { + "message": "Blauw grijs" + }, + "bluelight": { + "message": "Blauw licht" + }, + "brown": { + "message": "Bruin" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser versie" + }, + "bubbles": { + "message": "Bubbels" + }, + "bug": { + "message": "Insect" + }, + "buttons": { + "message": "Knoppen" + }, + "cancel": { + "message": "Annuleren" + }, + "categories": { + "message": "Categoriën" + }, + "channel": { + "message": "Kanaal" + }, + "channels": { + "message": "Kanalen" + }, + "clipboard": { + "message": "Klembord" + }, + "codecH264": { + "message": "Encoderen in h.264" + }, + "collapsed": { + "message": "Ingeklapt" + }, + "collapseOfSubscriptionSections": { + "message": "Uitklappen van abonnee sectie" + }, + "comments": { + "message": "Reacties" + }, + "confirmationBeforeClosing": { + "message": "Bevestiging voor sluiten" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Kernen" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Aangepaste CSS" + }, + "customJs": { + "message": "Aangepaste JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyaan" + }, + "dark": { + "message": "Donker" + }, + "darkTheme": { + "message": "Donker thema" + }, + "dateAndTime": { + "message": "Datum & tijd" + }, + "dawn": { + "message": "Morgenrood" + }, + "decreasePlaybackSpeed": { + "message": "Verminder afspeelsnelheid" + }, + "decreaseVolume": { + "message": "Verminder volume" + }, + "deepOrange": { + "message": "Donker oranje" + }, + "deepPurple": { + "message": "donker aars" + }, + "defaultChannelTab": { + "message": "Standaard kanaaltabblad" + }, + "deleteYoutubeCookies": { + "message": "YouTube-cookies verwijderen" + }, + "description": { + "message": "Beschrijving" + }, + "desert": { + "message": "Woestijn" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Ontwikkelaarsopties" + }, + "device": { + "message": "Apparaat" + }, + "dim": { + "message": "Dimmen" + }, + "disabled": { + "message": "Uitgeschakeld" + }, + "dislike": { + "message": "Niet leuk vinden" + }, + "donate": { + "message": "Doneer" + }, + "doNotChange": { + "message": "Niet aanpassen" + }, + "draggable": { + "message": "Sleepbaar" + }, + "email": { + "message": "E-mail" + }, + "empty": { + "message": "Leeg" + }, + "enabled": { + "message": "Ingeschakeld" + }, + "enabledForced": { + "message": "Ingeschakeld (geforceerd)" + }, + "expanded": { + "message": "Uitgeklapt" + }, + "exportSettings": { + "message": "Instellingen exporteren" + }, + "extension": { + "message": "Extensie" + }, + "file": { + "message": "Bestand" + }, + "filters": { + "message": "Filters" + }, + "fitToWindow": { + "message": "Aanpassen aan vensterbreedte" + }, + "flash": { + "message": "Flits" + }, + "font": { + "message": "Lettertype" + }, + "footer": { + "message": "Voettekst" + }, + "forcedPlaybackSpeed": { + "message": "Afspeelsnelheid afdwingen" + }, + "forcedTheaterMode": { + "message": "Altijd theatermodus gebruiken" + }, + "forcedVolume": { + "message": "Volume afdwingen" + }, + "foundABug": { + "message": "Heb je een bug gevonden?" + }, + "fullWindow": { + "message": "Volledige venstergrootte" + }, + "general": { + "message": "Algemeen" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Ga naar de zoekbalk" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Groen" + }, + "hdThumbnail": { + "message": "HD-miniatuurvoorbeeld" + }, + "hdThumbnails": { + "message": "HD-miniatuurvoorbeelden" + }, + "header": { + "message": "Kop" + }, + "hidden": { + "message": "Verborgen" + }, + "hiddenOnVideoPage": { + "message": "Verborgen op videopagina" + }, + "hideAnimatedThumbnails": { + "message": "Geen bewegende miniatuurvoorbeelden" + }, + "hideAnnotations": { + "message": "Verberg annotaties" + }, + "hideCards": { + "message": "Verberg kaarten" + }, + "hideDetails": { + "message": "Verberg details" + }, + "hideEndscreen": { + "message": "Verberg eindscherm" + }, + "hideFeaturedContent": { + "message": "Verberg uitgelichte inhoud" + }, + "hideFooter": { + "message": "Verberg voettekst" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hidePlaylist": { + "message": "Verberg afspeellijst" + }, + "hideRightButtons": { + "message": "Verberg rechter knoppen" + }, + "hideScrollForDetails": { + "message": "Verberg «Scroll for details»" + }, + "hideViewsCount": { + "message": "Verberg views teller" + }, + "history": { + "message": "Geschiedenis" + }, + "home": { + "message": "Thuis" + }, + "hover": { + "message": "Overzweven met cursor" + }, + "hoverOnVideoPage": { + "message": "Overzweven met cursor op videopagina" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Uploaddatum tonen" + }, + "icons": { + "message": "Iconen" + }, + "iconsOnly": { + "message": "Alleen pictogrammen" + }, + "importSettings": { + "message": "Instellingen importeren" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube-pictogram in browser" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube icoon op YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube taal" + }, + "improvedtubeVersion": { + "message": "ImprovedTube versie" + }, + "improveLogo": { + "message": "YouTube-logo verbeteren" + }, + "increasePlaybackSpeed": { + "message": "Verhoog afspeelsnelheid" + }, + "increaseVolume": { + "message": "Verhoog volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "Talen" + }, + "legacyYoutube": { + "message": "Oude YouTube-uiterlijk" + }, + "light": { + "message": "Licht" + }, + "lightBlue": { + "message": "Licht blauw" + }, + "lightGreen": { + "message": "Licht groen" + }, + "like": { + "message": "Vind ik leuk" + }, + "likes": { + "message": "Vind-ik-leuks" + }, + "lime": { + "message": "Limoen" + }, + "list": { + "message": "Lijst" + }, + "liveChat": { + "message": "Live berichtenvenster" + }, + "liveChatType": { + "message": "Live berichtenvenster type" + }, + "loudnessNormalization": { + "message": "Volume normaliseren" + }, + "markWatchedVideos": { + "message": "Merk bekeken videos aan" + }, + "mixer": { + "message": "Mixer" + }, + "myColors": { + "message": "Mijn kleuren" + }, + "name": { + "message": "Naam" + }, + "nativeMiniPlayer": { + "message": "Ingebouwde minispeler" + }, + "new": { + "message": "Nieuw" + }, + "nextVideo": { + "message": "Volgende video afspelen" + }, + "night": { + "message": "Nacht" + }, + "noActiveFeatures": { + "message": "Geen actieve features" + }, + "none": { + "message": "Geen" + }, + "noOpenVideoTabs": { + "message": "Geen openstaande videotabbladen" + }, + "normal": { + "message": "Normaal" + }, + "old": { + "message": "Oud" + }, + "onAllVideos": { + "message": "Bij alle videos" + }, + "onlyActiveOnYoutube": { + "message": "Alleen actief op YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Slechts één actieve speler toestaan" + }, + "onSubscribedChannels": { + "message": "Op geabonneerde kanalen" + }, + "orange": { + "message": "Oranje" + }, + "os": { + "message": "Besturingssysteem" + }, + "other": { + "message": "Anders" + }, + "permissions": { + "message": "Machtigingen" + }, + "pictureInPicture": { + "message": "Afbeelding-in-Afbeelding" + }, + "pink": { + "message": "Roze" + }, + "plain": { + "message": "Vlakte" + }, + "platform": { + "message": "Platform" + }, + "playbackSpeed": { + "message": "Afspeelsnelheid" + }, + "player": { + "message": "Speler" + }, + "playerColor": { + "message": "Spelerkleur" + }, + "playerSize": { + "message": "Spelergrootte" + }, + "playlist": { + "message": "Afspeellijst" + }, + "playlists": { + "message": "Afspeellijsten" + }, + "playPause": { + "message": "Video afspelen/pauzeren" + }, + "popupPlayer": { + "message": "Pop-upspeler" + }, + "position": { + "message": "Positie" + }, + "pressAnyKeyOrScroll": { + "message": "Druk op een toets of muiswiel." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Druk op een toets of gebruik muiswiel" + }, + "previousVideo": { + "message": "Vorige video afspelen" + }, + "primaryColor": { + "message": "Primaire kleur" + }, + "purple": { + "message": "Paars" + }, + "quality": { + "message": "Kwaliteit" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Geef ons een beoordeling" + }, + "red": { + "message": "Rood" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Gerelateerde video's" + }, + "removeRelatedSearchResults": { + "message": "Verwijder resultaten van gerelateerde videos" + }, + "repeat": { + "message": "Herhalen" + }, + "reset": { + "message": "Herstel" + }, + "resetAllSettings": { + "message": "Standaardwaarden herstellen" + }, + "resetAllShortcuts": { + "message": "Herstel alle snelkoppelingen" + }, + "reverse": { + "message": "Omdraaien" + }, + "rotate": { + "message": "Draaien" + }, + "save": { + "message": "Opslaan" + }, + "saveAs": { + "message": "Opslaan als" + }, + "schedule": { + "message": "Schema" + }, + "screen": { + "message": "Beeldscherm" + }, + "screenshot": { + "message": "Schermafbeelding" + }, + "search": { + "message": "Zoeken" + }, + "searchBarOnly": { + "message": "Alleen zoekbalk" + }, + "seekBackward10Seconds": { + "message": "Zoek 10 seconde terug" + }, + "seekForward10Seconds": { + "message": "Zoek 10 seconde naar voren" + }, + "settings": { + "message": "Instellingen" + }, + "settingsSuccessfullyImported": { + "message": "Instellingen succesvol geïmporteerd" + }, + "shortcuts": { + "message": "Sneltoetsen" + }, + "showCardsOnMouseHover": { + "message": "Laat kaarten zien onder muisaanwijzer" + }, + "showChannelVideosCount": { + "message": "Aantal kanaalvideo's tonen" + }, + "shuffle": { + "message": "Willekeurig" + }, + "sidebar": { + "message": "Zijbalk" + }, + "spacebar": { + "message": "Spatiebalk" + }, + "squaredUserImages": { + "message": "Vierkante gebruikersafbeeldingen" + }, + "static": { + "message": "Statisch" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Stap" + }, + "stop": { + "message": "Stoppen" + }, + "style": { + "message": "Stijl" + }, + "styles": { + "message": "Stijlen" + }, + "subscriptions": { + "message": "Abonnementen" + }, + "subtitles": { + "message": "Ondertiteling tonen" + }, + "sunset": { + "message": "Zonsondergang" + }, + "sunsetToSunrise": { + "message": "Zonsondergang tot zonsopkomst" + }, + "systemPeferenceDark": { + "message": "Systeem voorkeur: donker" + }, + "systemPeferenceLight": { + "message": "Systeem voorkeur: licht" + }, + "teal": { + "message": "Groenblauw" + }, + "textColor": { + "message": "Tekst kleur" + }, + "themes": { + "message": "Thema's" + }, + "thisWillRemoveAllCookies": { + "message": "Dit verwijdert alle cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Dit verwijdert alle YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "Dit herstelt alle instellingen." + }, + "thisWillResetAllShortcuts": { + "message": "Dit herstelt alle snelkoppelingen" + }, + "thumbnails": { + "message": "Miniatuurvoorbeelden" + }, + "timeFrom": { + "message": "Tijd vanaf" + }, + "timeTo": { + "message": "Tijd tot" + }, + "todayAt": { + "message": "Vandaag om" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top-chat" + }, + "trailerAutoplay": { + "message": "Trailer automatisch afspelen" + }, + "translations": { + "message": "vertalingen" + }, + "transparentBackground": { + "message": "Doorzichtige achtergrond" + }, + "trending": { + "message": "Populair" + }, + "tryToReloadThePage": { + "message": "Probeer de pagina te herladen" + }, + "type": { + "message": "Soort" + }, + "upNextAutoplay": { + "message": "Volgende in wachtrij automatisch afspelen" + }, + "use24HourFormat": { + "message": "24-uurstijd gebruiken" + }, + "version": { + "message": "Versie" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video omschrijving wordt uitgeklapt om de naam van de categorie te verkrijgen" + }, + "videoFormats": { + "message": "Video formaten" + }, + "videos": { + "message": "Video's" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Later bekijken" + }, + "watchTime": { + "message": "Kijk tijd" + }, + "whenTabIsChanged": { + "message": "Wanneer het tabblat veranderd" + }, + "white": { + "message": "Wit" + }, + "yellow": { + "message": "Geel" + }, + "youtubeHeaderLeft": { + "message": "YouTube-kop (links)" + }, + "youtubeHeaderRight": { + "message": "YouTube-kop (rechts)" + }, + "youtubeHomePage": { + "message": "YouTube-startpagina" + }, + "youtubeLanguage": { + "message": "YouTube taal" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limiteerd video kwaliteit tot 1080p voor h.264 codec" + } +} \ No newline at end of file diff --git a/_locales/no/messages.json b/_locales/no/messages.json new file mode 100644 index 000000000..b81b943ba --- /dev/null +++ b/_locales/no/messages.json @@ -0,0 +1,800 @@ +{ + "about": { + "message": "Om" + }, + "accept": { + "message": "aksepter" + }, + "activate": { + "message": "Aktiver" + }, + "activateCaptions": { + "message": "Aktiver texting" + }, + "activated": { + "message": "Aktivert" + }, + "activatedFeatures": { + "message": "Aktiverte funksjoner" + }, + "activateFullscreen": { + "message": "Aktiver fullskjerm" + }, + "activeFeatures": { + "message": "Aktive funksjoner" + }, + "addScrollToTop": { + "message": "Legg til «Rull til toppen»" + }, + "ads": { + "message": "Reklamer" + }, + "all": { + "message": "Alle" + }, + "allow": { + "message": "Tillat" + }, + "allow60fps": { + "message": "Tillat 60fps" + }, + "alwaysActive": { + "message": "Alltid aktiv" + }, + "alwaysShowProgressBar": { + "message": "Alltid vis fremdriftslinje" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analysator" + }, + "appearance": { + "message": "Utseende" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Lyd" + }, + "audioFormats": { + "message": "Lyd formater" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullskjerm" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause når du bytter faner" + }, + "autoplay": { + "message": "Autoplay" + }, + "backupAndReset": { + "message": "Sikkerhetskopiering og tilbakestilling" + }, + "baseOnSystemColorScheme": { + "message": "Baser på systemfargevalg" + }, + "belowPlayer": { + "message": "Nedenfor spiller" + }, + "black": { + "message": "Svart" + }, + "blacklist": { + "message": "Svartelist" + }, + "blockAll": { + "message": "Blokker alle" + }, + "blue": { + "message": "Blå" + }, + "blueGray": { + "message": "Blå grå" + }, + "bluelight": { + "message": "Blålys" + }, + "brown": { + "message": "Brun" + }, + "browser": { + "message": "Nettleser" + }, + "browserVersion": { + "message": "Nettleser versjon" + }, + "bubbles": { + "message": "Bobler" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Knapper" + }, + "cancel": { + "message": "Avbryt" + }, + "categories": { + "message": "Kategorier" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanaler" + }, + "clipboard": { + "message": "Utklippstavle" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapsed": { + "message": "kollapset" + }, + "collapseOfSubscriptionSections": { + "message": "Kollaps av abonnements seksjonene" + }, + "comments": { + "message": "Kommentarer" + }, + "confirmationBeforeClosing": { + "message": "Bekreftelse før stenging" + }, + "cookies": { + "message": "Informasjonskapslene" + }, + "cores": { + "message": "Kjerner" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Tilpasset CSS" + }, + "customJs": { + "message": "Tilpasset JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Mørk" + }, + "darkTheme": { + "message": "Mørkt tema" + }, + "dateAndTime": { + "message": "Dato og klokkeslett" + }, + "dawn": { + "message": "Soloppgang" + }, + "decreasePlaybackSpeed": { + "message": "Reduser avspillingshastighet" + }, + "decreaseVolume": { + "message": "Reduser volumet" + }, + "deepOrange": { + "message": "Dyporansje" + }, + "deepPurple": { + "message": "Mørkelilla" + }, + "defaultChannelTab": { + "message": "Standard kanalfane" + }, + "deleteYoutubeCookies": { + "message": "Slett YouTube-informasjonskapsler" + }, + "description": { + "message": "Beskrivelse" + }, + "desert": { + "message": "Ørken" + }, + "details": { + "message": "Detaljer" + }, + "developerOptions": { + "message": "Utviklermuligheter" + }, + "device": { + "message": "Enhet" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Avslått" + }, + "dislike": { + "message": "Mislik" + }, + "donate": { + "message": "Doner" + }, + "doNotChange": { + "message": "Ikke endre" + }, + "draggable": { + "message": "Flyttbare" + }, + "email": { + "message": "E-post" + }, + "empty": { + "message": "Tom" + }, + "enabled": { + "message": "Aktivert" + }, + "enabledForced": { + "message": "Aktivert (tvunget)" + }, + "expanded": { + "message": "Utvidet" + }, + "exportSettings": { + "message": "Eksporter innstillinger" + }, + "extension": { + "message": "Utvidelse" + }, + "file": { + "message": "Fil" + }, + "filters": { + "message": "Filtre" + }, + "fitToWindow": { + "message": "Tilpass til vindu" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "footer": { + "message": "Bunntekst" + }, + "forcedPlaybackSpeed": { + "message": "Tvungen avspillingshastighet" + }, + "forcedTheaterMode": { + "message": "Tvunget teater-modus" + }, + "forcedVolume": { + "message": "Tvangsvolum" + }, + "foundABug": { + "message": "Fant du en feil?" + }, + "fullWindow": { + "message": "Fullt vindu" + }, + "general": { + "message": "Generell" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Gå til søkefeltet" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Grønn" + }, + "hdThumbnail": { + "message": "HD-miniatyrbilde" + }, + "hdThumbnails": { + "message": "HD-miniatyrbilder" + }, + "header": { + "message": "Overskrift" + }, + "hidden": { + "message": "Skjult" + }, + "hiddenOnVideoPage": { + "message": "Skjult på video siden" + }, + "hideAnimatedThumbnails": { + "message": "Skjul animerte miniatyrbilder" + }, + "hideAnnotations": { + "message": "Skjul annoteringer" + }, + "hideCards": { + "message": "Skjul kort" + }, + "hideDetails": { + "message": "Skjul detaljer" + }, + "hideEndscreen": { + "message": "Skjul sluttskjerm" + }, + "hideFeaturedContent": { + "message": "Skjul omtalt innhold" + }, + "hideFooter": { + "message": "Skjul bunntekst " + }, + "hidePlaylist": { + "message": "Skjul spilleliste" + }, + "hideRightButtons": { + "message": "Skjul høyre knapper" + }, + "hideScrollForDetails": { + "message": "Skjul «Bla for detaljer»" + }, + "hideViewsCount": { + "message": "Skjul visninger teller" + }, + "history": { + "message": "Historie" + }, + "home": { + "message": "Hjem" + }, + "hover": { + "message": "Hold" + }, + "hoverOnVideoPage": { + "message": "Hold musepekeren på videosiden" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Hvor lenge siden videoen ble lastet opp" + }, + "icons": { + "message": "Ikoner" + }, + "iconsOnly": { + "message": "Bare Ikoner" + }, + "importSettings": { + "message": "Importer innstillinger" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube-ikonet i nettleseren" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube-ikonet på YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube språk" + }, + "improvedtubeVersion": { + "message": "ImprovedTube versjon" + }, + "improveLogo": { + "message": "Improve logo" + }, + "increasePlaybackSpeed": { + "message": "Øk avspillingshastigheten" + }, + "increaseVolume": { + "message": "Øk volumet" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Elementer" + }, + "languages": { + "message": "Språk" + }, + "legacyYoutube": { + "message": "Legacy YouTube" + }, + "light": { + "message": "Lys" + }, + "lightBlue": { + "message": "Lyse blå" + }, + "lightGreen": { + "message": "Lyse grønn" + }, + "like": { + "message": "Like" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Lime" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Live chat type" + }, + "loudnessNormalization": { + "message": "Høytthetsnormalisering" + }, + "markWatchedVideos": { + "message": "Marker sette videoer" + }, + "mixer": { + "message": "Mikser" + }, + "myColors": { + "message": "Mine farger" + }, + "name": { + "message": "Navn" + }, + "nativeMiniPlayer": { + "message": "Innfødt minispiller" + }, + "new": { + "message": "Ny" + }, + "nextVideo": { + "message": "Neste video" + }, + "night": { + "message": "Natt" + }, + "noActiveFeatures": { + "message": "Ingen aktive funksjoner" + }, + "none": { + "message": "Ingen" + }, + "noOpenVideoTabs": { + "message": "Ingen åpne videofaner" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Gammel" + }, + "onAllVideos": { + "message": "På alle videoer" + }, + "onlyActiveOnYoutube": { + "message": "Bare aktiv på YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Bare en spillerforekomst som spiller" + }, + "onSubscribedChannels": { + "message": "På abonnementskanaler" + }, + "orange": { + "message": "Oransje" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Andre" + }, + "permissions": { + "message": "rettigheter" + }, + "pictureInPicture": { + "message": "Bilde-i-bilde" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Vanlig" + }, + "platform": { + "message": "Plattform" + }, + "playbackSpeed": { + "message": "Avspillingshastighet" + }, + "player": { + "message": "Spiller" + }, + "playerColor": { + "message": "Spiller farge" + }, + "playerSize": { + "message": "Spiller størrelse" + }, + "playlist": { + "message": "Spilleliste" + }, + "playlists": { + "message": "Spillelister" + }, + "playPause": { + "message": "Spill / Pause" + }, + "popupPlayer": { + "message": "Popup-spiller" + }, + "position": { + "message": "Posisjon" + }, + "pressAnyKeyOrScroll": { + "message": "Trykk på hvilken som helst tast eller bruk musehjulet." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Trykk på hvilken som helst tast eller bruk musehjulet" + }, + "previousVideo": { + "message": "Forrige video" + }, + "primaryColor": { + "message": "Hovedfarge" + }, + "purple": { + "message": "Lilla" + }, + "quality": { + "message": "Quality" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Rangere oss" + }, + "red": { + "message": "Rød" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Relaterte videoer" + }, + "removeRelatedSearchResults": { + "message": "Fjern relaterte søkeresultater" + }, + "repeat": { + "message": "Gjenta" + }, + "reset": { + "message": "Tilbakestill" + }, + "resetAllSettings": { + "message": "Tilbakestill alle instillinger" + }, + "resetAllShortcuts": { + "message": "Tilbakestill alle snarveier" + }, + "reverse": { + "message": "Omvendt" + }, + "rotate": { + "message": "Roter" + }, + "save": { + "message": "Lagre" + }, + "saveAs": { + "message": "Lagre som" + }, + "schedule": { + "message": "Tidsplan" + }, + "screen": { + "message": "Skjerm" + }, + "screenshot": { + "message": "Skjermbilde" + }, + "search": { + "message": "Søk" + }, + "searchBarOnly": { + "message": "Bare søkefelt" + }, + "seekBackward10Seconds": { + "message": "Spol 10 sekunder bakover" + }, + "seekForward10Seconds": { + "message": "Spol 10 sekunder frem" + }, + "settings": { + "message": "Innstillinger" + }, + "settingsSuccessfullyImported": { + "message": "Innstillinger importert" + }, + "shortcuts": { + "message": "Snarveier" + }, + "showCardsOnMouseHover": { + "message": "Vis kort på musepekeren" + }, + "showChannelVideosCount": { + "message": "Vis antall kanaler" + }, + "shuffle": { + "message": "Tilfeldig rekkefølge" + }, + "sidebar": { + "message": "Sidepanel" + }, + "spacebar": { + "message": "Mellomrom" + }, + "squaredUserImages": { + "message": "Kvadratiske brukerbilder" + }, + "static": { + "message": "Statisk" + }, + "step": { + "message": "Steg" + }, + "stop": { + "message": "Stopp" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stiler" + }, + "subscriptions": { + "message": "Abonnementer" + }, + "subtitles": { + "message": "Undertekster" + }, + "sunset": { + "message": "Solnedgang" + }, + "sunsetToSunrise": { + "message": "Solnedgang til soloppgang" + }, + "systemPeferenceDark": { + "message": "Systeminnstillinger: mørk" + }, + "systemPeferenceLight": { + "message": "Systeminnstillinger: lys" + }, + "teal": { + "message": "Blågrønn" + }, + "textColor": { + "message": "Tekstfarge" + }, + "themes": { + "message": "Temaer" + }, + "thisWillRemoveAllCookies": { + "message": "Dette vil fjerne alle informasjonskapsler." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Dette vil fjerne alle YouTube-informasjonskapsler" + }, + "thisWillResetAllSettings": { + "message": "Dette vil tilbakestille alle innstillinger." + }, + "thisWillResetAllShortcuts": { + "message": "Dette vil tilbakestille alle snarveier" + }, + "thumbnails": { + "message": "miniatyrbilder " + }, + "timeFrom": { + "message": "Tid fra" + }, + "timeTo": { + "message": "Tid til" + }, + "todayAt": { + "message": "I dag kl" + }, + "topChat": { + "message": "Hoved chat" + }, + "trailerAutoplay": { + "message": "Trailer autospilling" + }, + "translations": { + "message": "Oversettelser" + }, + "transparentBackground": { + "message": "Gjennomsiktig bakgrunn" + }, + "trending": { + "message": "Trender" + }, + "tryToReloadThePage": { + "message": "Forsøk å laste inn siden på nytt" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Opp neste autospilling" + }, + "use24HourFormat": { + "message": "Bruk 24-timers format" + }, + "version": { + "message": "Versjon" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Videobeskrivelsen vil bli utvidet for å få navnet på kategorien" + }, + "videoFormats": { + "message": "Video formater" + }, + "videos": { + "message": "Videoer" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Se senere" + }, + "watchTime": { + "message": "Tid sett" + }, + "whenTabIsChanged": { + "message": "Når fanen endres" + }, + "white": { + "message": "Hvit" + }, + "yellow": { + "message": "Gul" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (til venstre)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (til høyre)" + }, + "youtubeHomePage": { + "message": "YouTube startside" + }, + "youtubeLanguage": { + "message": "YouTube språk" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube begrenser videokvaliteten til 1080p for h.264-kodeken" + } +} \ No newline at end of file diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json new file mode 100644 index 000000000..366c66f74 --- /dev/null +++ b/_locales/pt_BR/messages.json @@ -0,0 +1,809 @@ +{ + "about": { + "message": "Sobre" + }, + "accept": { + "message": "Accept" + }, + "activate": { + "message": "Activate" + }, + "activateCaptions": { + "message": "Ativar legendas" + }, + "activated": { + "message": "Activated" + }, + "activatedFeatures": { + "message": "Activated features" + }, + "activateFullscreen": { + "message": "Ativar tela cheia" + }, + "activeFeatures": { + "message": "Funções ativas" + }, + "addScrollToTop": { + "message": "Habilitar botão «Voltar ao Topo»" + }, + "ads": { + "message": "Anúncios" + }, + "all": { + "message": "All" + }, + "allow": { + "message": "Permitir" + }, + "allow60fps": { + "message": "Permitir 60fps" + }, + "alwaysActive": { + "message": "Sempre ativo" + }, + "alwaysShowProgressBar": { + "message": "Sempre exibir a barra de progresso" + }, + "amber": { + "message": "Âmbar" + }, + "analyzer": { + "message": "Analítico" + }, + "appearance": { + "message": "Aparência" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Áudio" + }, + "audioFormats": { + "message": "Formatos de áudio" + }, + "auto": { + "message": "Automático" + }, + "autoFullscreen": { + "message": "Tela cheia automática" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausar vídeo ao alternar entre abas" + }, + "autoplay": { + "message": "Reprodução automática" + }, + "backupAndReset": { + "message": "Backup & Restauração" + }, + "baseOnSystemColorScheme": { + "message": "Baseado nas cores do sistema" + }, + "belowPlayer": { + "message": "Abaixo do player" + }, + "black": { + "message": "Preto" + }, + "blacklist": { + "message": "Lista negra" + }, + "blockAll": { + "message": "Bloquear tudo" + }, + "blue": { + "message": "Azul" + }, + "blueGray": { + "message": "Cinza Azulado" + }, + "bluelight": { + "message": "Filtrar luz azul" + }, + "brown": { + "message": "Marrom" + }, + "browser": { + "message": "Navegador" + }, + "browserVersion": { + "message": "Versão do navegador" + }, + "bubbles": { + "message": "Bolhas" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Botões" + }, + "cancel": { + "message": "Cancelar" + }, + "categories": { + "message": "Categorias" + }, + "channel": { + "message": "Canal" + }, + "channels": { + "message": "Canais" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapsed": { + "message": "Retraído" + }, + "collapseOfSubscriptionSections": { + "message": "Collapse of subscription sections" + }, + "comments": { + "message": "Comentários" + }, + "confirmationBeforeClosing": { + "message": "Alerta ao fechar a página" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Núcleos" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Custom JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Ciano" + }, + "dark": { + "message": "Obscuro" + }, + "darkTheme": { + "message": "Tema escuro" + }, + "dateAndTime": { + "message": "Data & Hora" + }, + "dawn": { + "message": "Alvorecer" + }, + "decreasePlaybackSpeed": { + "message": "Diminuir velocidade" + }, + "decreaseVolume": { + "message": "Diminuir volume" + }, + "deepOrange": { + "message": "Laranja Escuro" + }, + "deepPurple": { + "message": "Roxo Escuro" + }, + "defaultChannelTab": { + "message": "Aba padrão do canal" + }, + "deleteYoutubeCookies": { + "message": "Deletar cookies do YouTube" + }, + "description": { + "message": "Descrição" + }, + "desert": { + "message": "Deserto" + }, + "details": { + "message": "Detalhes" + }, + "developerOptions": { + "message": "Developer options" + }, + "device": { + "message": "Dispositivo" + }, + "dim": { + "message": "Escurecer" + }, + "disabled": { + "message": "Desabilitado" + }, + "dislike": { + "message": "Não Gostei." + }, + "donate": { + "message": "Doar" + }, + "doNotChange": { + "message": "Não alterar" + }, + "draggable": { + "message": "Arrastável" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Vazio" + }, + "enabled": { + "message": "Habilitado" + }, + "enabledForced": { + "message": "Enabled (forced)" + }, + "expanded": { + "message": "Expandido" + }, + "exportSettings": { + "message": "Exportar configurações" + }, + "extension": { + "message": "Extensão" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filtros" + }, + "fitToWindow": { + "message": "Ajustar à janela" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "footer": { + "message": "Rodapé" + }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, + "forcedTheaterMode": { + "message": "Forçar modo teatro" + }, + "forcedVolume": { + "message": "Forçar volume" + }, + "foundABug": { + "message": "Encontrou um bug?" + }, + "fullWindow": { + "message": "Preencher a janela" + }, + "general": { + "message": "Geral" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Selecionar barra de pesquisa" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hdThumbnail": { + "message": "Miniatura em HD" + }, + "hdThumbnails": { + "message": "Miniaturas em HD" + }, + "header": { + "message": "Cabeçalho" + }, + "hidden": { + "message": "Oculto" + }, + "hiddenOnVideoPage": { + "message": "Oculto na página de vídeo" + }, + "hideAnimatedThumbnails": { + "message": "Desabilitar miniaturas animadas" + }, + "hideAnnotations": { + "message": "Ocultar anotações" + }, + "hideCards": { + "message": "Ocultar cards" + }, + "hideDetails": { + "message": "Ocultar detalhes" + }, + "hideEndscreen": { + "message": "Ocultar tela final" + }, + "hideFeaturedContent": { + "message": "Ocultar conteúdo em destaque" + }, + "hideFooter": { + "message": "Ocultar rodapé" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hidePlaylist": { + "message": "Ocultar playlist" + }, + "hideRightButtons": { + "message": "Ocultar botões à direita" + }, + "hideScrollForDetails": { + "message": "Ocultar «Rolar Para Ver Detalhes»" + }, + "hideViewsCount": { + "message": "Ocultar visualizações" + }, + "history": { + "message": "Histórico" + }, + "home": { + "message": "Início" + }, + "hover": { + "message": "Retrátil" + }, + "hoverOnVideoPage": { + "message": "Retrátil na página de video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Tempo decorrido desde a publicação" + }, + "icons": { + "message": "Ícones" + }, + "iconsOnly": { + "message": "Apenas ícones" + }, + "importSettings": { + "message": "Importar configurações" + }, + "improvedtubeIconInBrowser": { + "message": "Ícone do ImprovedTube no navegador" + }, + "improvedtubeIconOnYoutube": { + "message": "Ícone do ImprovedTube no YouTube" + }, + "improvedtubeLanguage": { + "message": "Idioma do ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Versão do ImprovedTube" + }, + "improveLogo": { + "message": "Aprimorar logomarca" + }, + "increasePlaybackSpeed": { + "message": "Aumentar velocidade" + }, + "increaseVolume": { + "message": "Diminuir volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Itens" + }, + "languages": { + "message": "Idiomas" + }, + "legacyYoutube": { + "message": "YouTube antigo" + }, + "light": { + "message": "Claro" + }, + "lightBlue": { + "message": "Azul Claro" + }, + "lightGreen": { + "message": "Verde Claro" + }, + "like": { + "message": "Gostei!" + }, + "likes": { + "message": "Avaliações" + }, + "lime": { + "message": "Verde Limão" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Bate-Papo Ao Vivo" + }, + "liveChatType": { + "message": "Live chat type" + }, + "loudnessNormalization": { + "message": "Normalização de volume" + }, + "markWatchedVideos": { + "message": "Mark watched videos" + }, + "mixer": { + "message": "Mixer" + }, + "myColors": { + "message": "My colors" + }, + "name": { + "message": "Nome" + }, + "nativeMiniPlayer": { + "message": "Mini player nativo" + }, + "new": { + "message": "Novo" + }, + "nextVideo": { + "message": "Próximo vídeo" + }, + "night": { + "message": "Noite" + }, + "noActiveFeatures": { + "message": "No active features" + }, + "none": { + "message": "Nenhum" + }, + "noOpenVideoTabs": { + "message": "Nenhuma aba de vídeo aberta" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Antigo" + }, + "onAllVideos": { + "message": "Em todos os vídeos" + }, + "onlyActiveOnYoutube": { + "message": "Ativo apenas no YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "onSubscribedChannels": { + "message": "Apenas em inscrições" + }, + "orange": { + "message": "Laranja" + }, + "os": { + "message": "Sistema Operacional" + }, + "other": { + "message": "Outras opções" + }, + "permissions": { + "message": "Permissões" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Panície" + }, + "platform": { + "message": "Plataforma" + }, + "playbackSpeed": { + "message": "Velocidade de reprodução" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Cor do player" + }, + "playerSize": { + "message": "Tamanho do player" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "playPause": { + "message": "Reproduzir / Pausar" + }, + "popupPlayer": { + "message": "Player externo" + }, + "position": { + "message": "Posição" + }, + "pressAnyKeyOrScroll": { + "message": "Pressione qualquer tecla ou use a roda do mouse" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Pressione qualquer tecla ou use a roda do mouse" + }, + "previousVideo": { + "message": "Vídeo anterior" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "Roxo" + }, + "quality": { + "message": "Qualidade" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Avalie-nos!" + }, + "red": { + "message": "Vermelho" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Vídeos relacionados" + }, + "removeRelatedSearchResults": { + "message": "Remove related search results" + }, + "repeat": { + "message": "Repetir" + }, + "reset": { + "message": "Restaurar" + }, + "resetAllSettings": { + "message": "Restaurar todas as configurações" + }, + "resetAllShortcuts": { + "message": "Reset all shortcuts" + }, + "reverse": { + "message": "Reverso" + }, + "rotate": { + "message": "Rotacionar" + }, + "save": { + "message": "Salvar" + }, + "saveAs": { + "message": "Salvar como" + }, + "schedule": { + "message": "Agendamento" + }, + "screen": { + "message": "Tela" + }, + "screenshot": { + "message": "Captura de tela" + }, + "search": { + "message": "Pesquisar" + }, + "searchBarOnly": { + "message": "Apenas barra de pesquisa" + }, + "seekBackward10Seconds": { + "message": "Retroceder 10 segundos" + }, + "seekForward10Seconds": { + "message": "Avançar 10 segundos" + }, + "settings": { + "message": "Configurações" + }, + "settingsSuccessfullyImported": { + "message": "Configurações importadas com sucesso" + }, + "shortcuts": { + "message": "Atalhos" + }, + "showCardsOnMouseHover": { + "message": "Show cards on mouse hover" + }, + "showChannelVideosCount": { + "message": "Número de vídeos do canal" + }, + "shuffle": { + "message": "Aleatório" + }, + "sidebar": { + "message": "Painel lateral" + }, + "spacebar": { + "message": "Espaço" + }, + "squaredUserImages": { + "message": "Avatares quadrados" + }, + "static": { + "message": "Estático" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Parar" + }, + "style": { + "message": "Estilo" + }, + "styles": { + "message": "Estilos" + }, + "subscriptions": { + "message": "Inscrições" + }, + "subtitles": { + "message": "Legendas" + }, + "sunset": { + "message": "Pôr do Sol" + }, + "sunsetToSunrise": { + "message": "Durante a noite" + }, + "systemPeferenceDark": { + "message": "Preferência do sistema: Escuro" + }, + "systemPeferenceLight": { + "message": "Preferência do sistema: Claro" + }, + "teal": { + "message": "Verde Azulado" + }, + "textColor": { + "message": "Text color" + }, + "themes": { + "message": "Temas" + }, + "thisWillRemoveAllCookies": { + "message": "Todos os cookies serão removidos." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Todos os cookies do YouTube serão removidos" + }, + "thisWillResetAllSettings": { + "message": "As configurações padrão serão restauradas." + }, + "thisWillResetAllShortcuts": { + "message": "This will reset all shortcuts" + }, + "thumbnails": { + "message": "Miniaturas" + }, + "timeFrom": { + "message": "Horário inicial" + }, + "timeTo": { + "message": "Horário final" + }, + "todayAt": { + "message": "Hoje às" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Reproduzir trailer" + }, + "translations": { + "message": "Translations" + }, + "transparentBackground": { + "message": "Fundo transparente" + }, + "trending": { + "message": "Em Alta" + }, + "tryToReloadThePage": { + "message": "Recarregue a página" + }, + "type": { + "message": "Tipo" + }, + "upNextAutoplay": { + "message": "Reproduzir vídeo em seguida" + }, + "use24HourFormat": { + "message": "Usar formato de 24 horas" + }, + "version": { + "message": "Versão" + }, + "video": { + "message": "Vídeo" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "A descrição se expandirá para acessar a categoria do vídeo" + }, + "videoFormats": { + "message": "Formatos de vídeo" + }, + "videos": { + "message": "Vídeos" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Assistir mais tarde" + }, + "watchTime": { + "message": "Tempo de exibição" + }, + "whenTabIsChanged": { + "message": "Quando alternar entre abas" + }, + "white": { + "message": "Branco" + }, + "yellow": { + "message": "Amarelo" + }, + "youtubeHeaderLeft": { + "message": "No cabeçalho à esquerda" + }, + "youtubeHeaderRight": { + "message": "No cabeçalho à direita" + }, + "youtubeHomePage": { + "message": "Página inicial do YouTube" + }, + "youtubeLanguage": { + "message": "Idioma do YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "O YouTube limita o codec h.264 à resolução de 1080p" + } +} \ No newline at end of file diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json new file mode 100644 index 000000000..2603e81ad --- /dev/null +++ b/_locales/pt_PT/messages.json @@ -0,0 +1,809 @@ +{ + "about": { + "message": "Acerca" + }, + "accept": { + "message": "Aceitar" + }, + "activate": { + "message": "Ativar" + }, + "activateCaptions": { + "message": "Ativar legendas" + }, + "activated": { + "message": "Ativado" + }, + "activatedFeatures": { + "message": "Opções ativadas" + }, + "activateFullscreen": { + "message": "Ativar ecrã completo" + }, + "activeFeatures": { + "message": "Opções ativas" + }, + "addScrollToTop": { + "message": "Adicionar «Ir para o topo»" + }, + "ads": { + "message": "Anúncios" + }, + "all": { + "message": "Todas" + }, + "allow": { + "message": "Permitir" + }, + "allow60fps": { + "message": "Permitir 60fps" + }, + "alwaysActive": { + "message": "Sempre ativo" + }, + "alwaysShowProgressBar": { + "message": "Mostrar sempre a barra de progressos" + }, + "amber": { + "message": "Âmbar" + }, + "analyzer": { + "message": "Analisador" + }, + "appearance": { + "message": "Aparência" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Áudio" + }, + "audioFormats": { + "message": "Formatos de áudio" + }, + "auto": { + "message": "Automático" + }, + "autoFullscreen": { + "message": "Ecrân completo automático" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausa quando muda de abas" + }, + "autoplay": { + "message": "Reprodução automática" + }, + "backupAndReset": { + "message": "Cópia de segurança e repor" + }, + "baseOnSystemColorScheme": { + "message": "Baseado no esquema de cores do sistema" + }, + "belowPlayer": { + "message": "Reprodutor abaixo" + }, + "black": { + "message": "Preto" + }, + "blacklist": { + "message": "Lista negra" + }, + "blockAll": { + "message": "Bloquear todos" + }, + "blue": { + "message": "Azul" + }, + "blueGray": { + "message": "Azul acizentado" + }, + "bluelight": { + "message": "Azul claro" + }, + "brown": { + "message": "Castanho" + }, + "browser": { + "message": "Navegador" + }, + "browserVersion": { + "message": "Versão do navegador" + }, + "bubbles": { + "message": "Bolhas" + }, + "bug": { + "message": "Erro" + }, + "buttons": { + "message": "Botões" + }, + "cancel": { + "message": "Cancelar" + }, + "categories": { + "message": "Categorias" + }, + "channel": { + "message": "Canal" + }, + "channels": { + "message": "Canais" + }, + "clipboard": { + "message": "Area de transferência" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapsed": { + "message": "Extender" + }, + "collapseOfSubscriptionSections": { + "message": "Extender as secções escolhidas" + }, + "comments": { + "message": "Comentários" + }, + "confirmationBeforeClosing": { + "message": "Confirmar antes de encerrar" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "CSS personalizadas" + }, + "customJs": { + "message": "JS personalizadas" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Esverdeado" + }, + "dark": { + "message": "Escuro" + }, + "darkTheme": { + "message": "Tema escuro" + }, + "dateAndTime": { + "message": "Data & hora" + }, + "dawn": { + "message": "Escurecer" + }, + "decreasePlaybackSpeed": { + "message": "Diminuir velocidade de leitura" + }, + "decreaseVolume": { + "message": "Diminuir volume" + }, + "deepOrange": { + "message": "Laranja forte" + }, + "deepPurple": { + "message": "Lilás forte" + }, + "defaultChannelTab": { + "message": "Aba padrão do canal" + }, + "deleteYoutubeCookies": { + "message": "Apagar os cookies do YouTube" + }, + "description": { + "message": "Descrição" + }, + "desert": { + "message": "Deserto" + }, + "details": { + "message": "Detalhes" + }, + "developerOptions": { + "message": "Opções de programador" + }, + "device": { + "message": "Aparelho" + }, + "dim": { + "message": "Escurecer" + }, + "disabled": { + "message": "Desabilitado" + }, + "dislike": { + "message": "Não gostar" + }, + "donate": { + "message": "Doar" + }, + "doNotChange": { + "message": "Não mudes" + }, + "draggable": { + "message": "Podes arrastar" + }, + "email": { + "message": "Correio electronico" + }, + "empty": { + "message": "Vazio" + }, + "enabled": { + "message": "Ativado" + }, + "enabledForced": { + "message": "Ativado (forçado)" + }, + "expanded": { + "message": "Expandir" + }, + "exportSettings": { + "message": "Exportar definições" + }, + "extension": { + "message": "Extenção" + }, + "file": { + "message": "Ficheiro" + }, + "filters": { + "message": "Filtros" + }, + "fitToWindow": { + "message": "Ajustar á janela" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Tipo de letra" + }, + "footer": { + "message": "Cabeçalho" + }, + "forcedPlaybackSpeed": { + "message": "Forçar velocidade de leitura" + }, + "forcedTheaterMode": { + "message": "Forçar modo de cinema" + }, + "forcedVolume": { + "message": "Volume forçado" + }, + "foundABug": { + "message": "Encontrou um erro?" + }, + "fullWindow": { + "message": "Janela completa" + }, + "general": { + "message": "Geral" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Vai à caixa de pesquisa" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hdThumbnail": { + "message": "Miniatura HD" + }, + "hdThumbnails": { + "message": "Miniaturas HD" + }, + "header": { + "message": "Cabeçalho" + }, + "hidden": { + "message": "Escondido" + }, + "hiddenOnVideoPage": { + "message": "Escondido na página do video" + }, + "hideAnimatedThumbnails": { + "message": "Esconder miniaturas animadas" + }, + "hideAnnotations": { + "message": "Esconder anotações" + }, + "hideCards": { + "message": "Esconder cartas" + }, + "hideDetails": { + "message": "Esconder detalhes" + }, + "hideEndscreen": { + "message": "Esconder ecãn final" + }, + "hideFeaturedContent": { + "message": "Esconder conteúdo" + }, + "hideFooter": { + "message": "Esconder rodapé" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hidePlaylist": { + "message": "Esconder lista de reprodução" + }, + "hideRightButtons": { + "message": "Esconder botões do lado direito" + }, + "hideScrollForDetails": { + "message": "Esconder «Rodar para detalhes»" + }, + "hideViewsCount": { + "message": "Esconder número de vistos" + }, + "history": { + "message": "História" + }, + "home": { + "message": "Casa" + }, + "hover": { + "message": "Aponta" + }, + "hoverOnVideoPage": { + "message": "Apontar na página do video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "À quanto tempo o video foi enviado" + }, + "icons": { + "message": "Ícones" + }, + "iconsOnly": { + "message": "Ícones apenas" + }, + "importSettings": { + "message": "Importar definições" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube icon in Browser" + }, + "improvedtubeIconOnYoutube": { + "message": "Ícon do ImprovedTube no YouTube" + }, + "improvedtubeLanguage": { + "message": "Linguagem do ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Versão do ImprovedTube" + }, + "improveLogo": { + "message": "Melhorar logotipo" + }, + "increasePlaybackSpeed": { + "message": "Aumentar velocidade de leitura" + }, + "increaseVolume": { + "message": "Aumentar o volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Artigos" + }, + "languages": { + "message": "Linguagens" + }, + "legacyYoutube": { + "message": "YouTube antigo" + }, + "light": { + "message": "Claro" + }, + "lightBlue": { + "message": "Azul claro" + }, + "lightGreen": { + "message": "Verde claro" + }, + "like": { + "message": "Gostar" + }, + "likes": { + "message": "Gostos" + }, + "lime": { + "message": "Limão" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Conversa do vivo" + }, + "liveChatType": { + "message": "Tipo de conversa do vivo" + }, + "loudnessNormalization": { + "message": "Normalização do volume" + }, + "markWatchedVideos": { + "message": "Marcar os videos como vistos" + }, + "mixer": { + "message": "Mistura" + }, + "myColors": { + "message": "Minhas cores" + }, + "name": { + "message": "Nome" + }, + "nativeMiniPlayer": { + "message": "Leitor pequeno padrão" + }, + "new": { + "message": "Novo" + }, + "nextVideo": { + "message": "Próximo video" + }, + "night": { + "message": "Noite" + }, + "noActiveFeatures": { + "message": "Sem opções ativas" + }, + "none": { + "message": "Nenhuma" + }, + "noOpenVideoTabs": { + "message": "Não abrir janelas de video" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Velho" + }, + "onAllVideos": { + "message": "Em todos os videos" + }, + "onlyActiveOnYoutube": { + "message": "Ativo apenas no YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Apenas uma instância do leitor de video" + }, + "onSubscribedChannels": { + "message": "Nos canais subscritos" + }, + "orange": { + "message": "Laranja" + }, + "os": { + "message": "SO" + }, + "other": { + "message": "Outro" + }, + "permissions": { + "message": "Permissões" + }, + "pictureInPicture": { + "message": "Janela em janela" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Simples" + }, + "platform": { + "message": "Plataforma" + }, + "playbackSpeed": { + "message": "Velocidade de leitura" + }, + "player": { + "message": "Leitor" + }, + "playerColor": { + "message": "Côr do leitor" + }, + "playerSize": { + "message": "Tamanho do leitor" + }, + "playlist": { + "message": "Lista de reprodução" + }, + "playlists": { + "message": "Listas de reprodução" + }, + "playPause": { + "message": "Reproduzir / Pausar" + }, + "popupPlayer": { + "message": "Leitor em janela" + }, + "position": { + "message": "Posição" + }, + "pressAnyKeyOrScroll": { + "message": "Carrega em qualquer tecla ou usa a roldana do rato" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Carrega em qualquer tecla ou usa a roldana do rato" + }, + "previousVideo": { + "message": "Video anterior" + }, + "primaryColor": { + "message": "Côr primaria" + }, + "purple": { + "message": "Violeta" + }, + "quality": { + "message": "Qualidade" + }, + "ram": { + "message": "Memoria" + }, + "rateUs": { + "message": "Avalia-nos" + }, + "red": { + "message": "Vermelho" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Videos relacionados" + }, + "removeRelatedSearchResults": { + "message": "Remove resultados relacionado com a pesquisa" + }, + "repeat": { + "message": "Repetir" + }, + "reset": { + "message": "Valores de origem" + }, + "resetAllSettings": { + "message": "Valores de origem em todas as definições" + }, + "resetAllShortcuts": { + "message": "Repôr todos os atalhos" + }, + "reverse": { + "message": "Recuar" + }, + "rotate": { + "message": "Rodar" + }, + "save": { + "message": "Gravar" + }, + "saveAs": { + "message": "Gravar como" + }, + "schedule": { + "message": "Agendar" + }, + "screen": { + "message": "Ecrân" + }, + "screenshot": { + "message": "Foto do ecrân" + }, + "search": { + "message": "Pesquisa" + }, + "searchBarOnly": { + "message": "Apenas barra de pesquisa" + }, + "seekBackward10Seconds": { + "message": "Andar para trás 10 segundos" + }, + "seekForward10Seconds": { + "message": "Andar para frente 10 segundos" + }, + "settings": { + "message": "Definições" + }, + "settingsSuccessfullyImported": { + "message": "Definições importadas com sucesso" + }, + "shortcuts": { + "message": "Atalhos" + }, + "showCardsOnMouseHover": { + "message": "Mostrar cartas ao passar o rato por cima" + }, + "showChannelVideosCount": { + "message": "Mostrar contagem de videos do canal" + }, + "shuffle": { + "message": "Misturar" + }, + "sidebar": { + "message": "Barra lateral" + }, + "spacebar": { + "message": "Barra de espaços" + }, + "squaredUserImages": { + "message": "Imagens de utilizador enquadradas" + }, + "static": { + "message": "Estática" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Passo" + }, + "stop": { + "message": "Parar" + }, + "style": { + "message": "Estilo" + }, + "styles": { + "message": "Estilos" + }, + "subscriptions": { + "message": "Subscrições" + }, + "subtitles": { + "message": "Legendas" + }, + "sunset": { + "message": "Pôr do sol" + }, + "sunsetToSunrise": { + "message": "Pôr do sol até de manhã" + }, + "systemPeferenceDark": { + "message": "Preferências do sistema: Escuro" + }, + "systemPeferenceLight": { + "message": "Preferências do sistema: Claro" + }, + "teal": { + "message": "Azul esverdeado" + }, + "textColor": { + "message": "Côr do texto" + }, + "themes": { + "message": "Temas" + }, + "thisWillRemoveAllCookies": { + "message": "Isto vai remover todos os cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Isto vai remover todos os cookies do YouTube" + }, + "thisWillResetAllSettings": { + "message": "Isto vai reiniciar todas as definições." + }, + "thisWillResetAllShortcuts": { + "message": "Isto vai reiniciar todos os atalhos" + }, + "thumbnails": { + "message": "Miniaturas" + }, + "timeFrom": { + "message": "Tempo de" + }, + "timeTo": { + "message": "Tempo para" + }, + "todayAt": { + "message": "Hoje em" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Conversa principal" + }, + "trailerAutoplay": { + "message": "Trailer toca automaticamente" + }, + "translations": { + "message": "Traduções" + }, + "transparentBackground": { + "message": "Fundo transparente" + }, + "trending": { + "message": "Tendências" + }, + "tryToReloadThePage": { + "message": "Tenta carregar a pagina de novo" + }, + "type": { + "message": "Escreve" + }, + "upNextAutoplay": { + "message": "Arquivo seguinte a tocar" + }, + "use24HourFormat": { + "message": "Usar formato de 24-horas" + }, + "version": { + "message": "Versão" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "A descrição do video vai ser expandida para ver o nome da categoria" + }, + "videoFormats": { + "message": "Formatos de video" + }, + "videos": { + "message": "Videos" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Vêr mais tarde" + }, + "watchTime": { + "message": "Tempo de visualização" + }, + "whenTabIsChanged": { + "message": "Quando a janela mudar" + }, + "white": { + "message": "Branco" + }, + "yellow": { + "message": "Amarelo" + }, + "youtubeHeaderLeft": { + "message": "Cabeçalho do YouTube (esquerda)" + }, + "youtubeHeaderRight": { + "message": "Cabeçalho do YouTube (direita)" + }, + "youtubeHomePage": { + "message": "Página principal do YouTube" + }, + "youtubeLanguage": { + "message": "Linguagem do YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "O YouTube limita a qualidade do video em 1080p para o codec h.264" + } +} \ No newline at end of file diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json new file mode 100644 index 000000000..98968af4a --- /dev/null +++ b/_locales/ru/messages.json @@ -0,0 +1,809 @@ +{ + "about": { + "message": "Об ImprovedTube" + }, + "accept": { + "message": "Принять" + }, + "activate": { + "message": "Активировать" + }, + "activateCaptions": { + "message": "Активировать субтитры" + }, + "activated": { + "message": "Активировано" + }, + "activatedFeatures": { + "message": "Активированные функции" + }, + "activateFullscreen": { + "message": "Перейти в полноэкранный режим" + }, + "activeFeatures": { + "message": "Активные функции" + }, + "addScrollToTop": { + "message": "Добавить кнопку «наверх»" + }, + "ads": { + "message": "Реклама" + }, + "all": { + "message": "Все" + }, + "allow": { + "message": "Разрешить" + }, + "allow60fps": { + "message": "Разрешить 60fps" + }, + "alwaysActive": { + "message": "Всегда активный" + }, + "alwaysShowProgressBar": { + "message": "Всегда показывать прогресс-бар" + }, + "amber": { + "message": "Янтарный" + }, + "analyzer": { + "message": "Анализатор" + }, + "appearance": { + "message": "Внешний вид" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Аудио" + }, + "audioFormats": { + "message": "Аудио форматы" + }, + "auto": { + "message": "Авто" + }, + "autoFullscreen": { + "message": "Автоматический переход в полноэкранный режим" + }, + "autopauseWhenSwitchingTabs": { + "message": "Автопауза при переходе между вкладками" + }, + "autoplay": { + "message": "Автовоспроизведение" + }, + "backupAndReset": { + "message": "Резервное копирование и сброс" + }, + "baseOnSystemColorScheme": { + "message": "Зависит от системной цветовой схемы" + }, + "belowPlayer": { + "message": "Ниже плеера" + }, + "black": { + "message": "Черный" + }, + "blacklist": { + "message": "Черный список" + }, + "blockAll": { + "message": "Заблокировать всё" + }, + "blue": { + "message": "Синий" + }, + "blueGray": { + "message": "Серо-голубой" + }, + "bluelight": { + "message": "Синий свет" + }, + "brown": { + "message": "Коричневый" + }, + "browser": { + "message": "Браузер" + }, + "browserVersion": { + "message": "Версия браузера" + }, + "bubbles": { + "message": "Пузыри" + }, + "bug": { + "message": "Ошибка" + }, + "buttons": { + "message": "Кнопки" + }, + "cancel": { + "message": "Отмена" + }, + "categories": { + "message": "Категории" + }, + "channel": { + "message": "Канал" + }, + "channels": { + "message": "Каналы" + }, + "clipboard": { + "message": "Буфер обмена" + }, + "codecH264": { + "message": "Кодек h.264" + }, + "collapsed": { + "message": "Свернуть" + }, + "collapseOfSubscriptionSections": { + "message": "Свернуть раздел подписок" + }, + "comments": { + "message": "Комментарии" + }, + "confirmationBeforeClosing": { + "message": "Подтверждение закрытия" + }, + "cookies": { + "message": "Куки" + }, + "cores": { + "message": "Ядра" + }, + "cropChapterTitles": { + "message": "Обрезать заголовки глав" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Сustom JS" + }, + "customMiniPlayer": { + "message": "Новый мини-плеер" + }, + "cyan": { + "message": "Сине-зелёный" + }, + "dark": { + "message": "Темная" + }, + "darkTheme": { + "message": "Ночная тема" + }, + "dateAndTime": { + "message": "Дата и время" + }, + "dawn": { + "message": "Рассвет" + }, + "decreasePlaybackSpeed": { + "message": "Уменьшить скорость видео" + }, + "decreaseVolume5": { + "message": "Уменьшить громкость на 5%" + }, + "deepOrange": { + "message": "Темно-оранжевый" + }, + "deepPurple": { + "message": "Темно-фиолетовый" + }, + "defaultChannelTab": { + "message": "Вкладка канала по умолчанию" + }, + "deleteYoutubeCookies": { + "message": "Удалить куки YouTube" + }, + "description": { + "message": "Описание" + }, + "desert": { + "message": "Пустыня" + }, + "details": { + "message": "Подробная информация" + }, + "developerOptions": { + "message": "Настройки разработчика" + }, + "device": { + "message": "Устройство" + }, + "dim": { + "message": "Тусклость" + }, + "disabled": { + "message": "Выключено" + }, + "dislike": { + "message": "Дизлайк" + }, + "donate": { + "message": "Пожертвовать" + }, + "doNotChange": { + "message": "Не менять" + }, + "draggable": { + "message": "Перетаскиваемый" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Пусто" + }, + "enabled": { + "message": "Включено" + }, + "enabledForced": { + "message": "Включено (принудительно)" + }, + "expanded": { + "message": "Развернуть" + }, + "exportSettings": { + "message": "Экспорт настроек" + }, + "extension": { + "message": "Расширение" + }, + "file": { + "message": "Файл" + }, + "filters": { + "message": "Фильтры" + }, + "fitToWindow": { + "message": "Подогнать под окно" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Шрифт" + }, + "footer": { + "message": "Нижний колонтитул" + }, + "forcedPlaybackSpeed": { + "message": "Форсировать скорость воспроизведения" + }, + "forcedTheaterMode": { + "message": "Принудительно переходить в режим кино" + }, + "forcedVolume": { + "message": "Принудительная громкость" + }, + "foundABug": { + "message": "Нашли ошибку?" + }, + "fullWindow": { + "message": "Растянуть на все окно" + }, + "general": { + "message": "Общее" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Перейти в окно поиска" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Зеленый" + }, + "hdThumbnail": { + "message": "Превью высокого качества" + }, + "hdThumbnails": { + "message": "Превью высокого качества" + }, + "header": { + "message": "Верхняя панель" + }, + "hidden": { + "message": "Скрыть" + }, + "hiddenOnVideoPage": { + "message": "Скрыть (только на странице с видео)" + }, + "hideAnimatedThumbnails": { + "message": "Скрыть анимированные превью" + }, + "hideAnnotations": { + "message": "Скрыть аннотации" + }, + "hideCards": { + "message": "Скрыть карточки" + }, + "hideDetails": { + "message": "Скрыть подробную информацию" + }, + "hideEndscreen": { + "message": "Скрыть экран после видео" + }, + "hideFeaturedContent": { + "message": "Скрыть рекомендации" + }, + "hideFooter": { + "message": "Скрыть нижний колонтитул" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hidePlaylist": { + "message": "Скрыть плейлист" + }, + "hideRightButtons": { + "message": "Скрыть кнопки (справа)" + }, + "hideScrollForDetails": { + "message": "Скрыть «Прокрутите для подробной информации»" + }, + "hideViewsCount": { + "message": "Скрыть количество просмотров" + }, + "history": { + "message": "История" + }, + "home": { + "message": "Домашняя страница" + }, + "hover": { + "message": "Показывать при наведении" + }, + "hoverOnVideoPage": { + "message": "Показывать при наведении (только на странице с видео)" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Показывать как давно было загружено видео" + }, + "icons": { + "message": "Иконки" + }, + "iconsOnly": { + "message": "Только иконки" + }, + "importSettings": { + "message": "Импорт настроек" + }, + "improvedtubeIconInBrowser": { + "message": "Значок ImprovedTube в браузере" + }, + "improvedtubeIconOnYoutube": { + "message": "Значок ImprovedTube в YouTube" + }, + "improvedtubeLanguage": { + "message": "Язык ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Версия ImprovedTube" + }, + "improveLogo": { + "message": "Улучшить логотип YouTube" + }, + "increasePlaybackSpeed": { + "message": "Увеличить скорость видео" + }, + "increaseVolume5": { + "message": "Увеличить громкости на 5%" + }, + "indigo": { + "message": "Индиго" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "Языки" + }, + "legacyYoutube": { + "message": "Старая версия YouTube" + }, + "light": { + "message": "Светлая" + }, + "lightBlue": { + "message": "Светло-синий" + }, + "lightGreen": { + "message": "Светло-зеленый" + }, + "like": { + "message": "Лайк" + }, + "likes": { + "message": "Лайки" + }, + "lime": { + "message": "Лайм" + }, + "list": { + "message": "Список" + }, + "liveChat": { + "message": "Live-чат" + }, + "liveChatType": { + "message": "Тип live-чата" + }, + "loudnessNormalization": { + "message": "Нормализировать громкость" + }, + "markWatchedVideos": { + "message": "Отмечать просмотренные видео" + }, + "mixer": { + "message": "Миксер" + }, + "myColors": { + "message": "Мои цвета" + }, + "name": { + "message": "Имя" + }, + "nativeMiniPlayer": { + "message": "Мини-плеер от YouTube" + }, + "new": { + "message": "Новый" + }, + "nextVideo": { + "message": "Следующее видео" + }, + "night": { + "message": "Ночь" + }, + "noActiveFeatures": { + "message": "Нет активных функций" + }, + "none": { + "message": "Пусто" + }, + "noOpenVideoTabs": { + "message": "Нет открытых вкладок с видео" + }, + "normal": { + "message": "Обычный" + }, + "old": { + "message": "Старый" + }, + "onAllVideos": { + "message": "Во всех видео" + }, + "onlyActiveOnYoutube": { + "message": "Активен только в YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Только один экземпляр плеера играет" + }, + "onSubscribedChannels": { + "message": "Только на каналах в подписках" + }, + "orange": { + "message": "Оранжевый" + }, + "os": { + "message": "ОС" + }, + "other": { + "message": "Другое" + }, + "permissions": { + "message": "Разрешения" + }, + "pictureInPicture": { + "message": "Картинка в картинке" + }, + "pink": { + "message": "Розовый" + }, + "plain": { + "message": "Равнина" + }, + "platform": { + "message": "Платформа" + }, + "playbackSpeed": { + "message": "Скорость воспроизведения" + }, + "player": { + "message": "Плеер" + }, + "playerColor": { + "message": "Цвет плеера" + }, + "playerSize": { + "message": "Размер плеера" + }, + "playlist": { + "message": "Плейлист" + }, + "playlists": { + "message": "Плейлисты" + }, + "playPause": { + "message": "Воспроизведение / Пауза" + }, + "popupPlayer": { + "message": "Плеер во всплывающем окне" + }, + "position": { + "message": "Позиция" + }, + "pressAnyKeyOrScroll": { + "message": "Нажмите любую клавишу или воспользуйтесь колесом мыши" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Нажмите любую клавишу или используйте колесо мыши" + }, + "previousVideo": { + "message": "Предыдущее видео" + }, + "primaryColor": { + "message": "Основной цвет" + }, + "purple": { + "message": "Фиолетовый" + }, + "quality": { + "message": "Качество" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Оцените нас" + }, + "red": { + "message": "Красный" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Похожие видео" + }, + "removeRelatedSearchResults": { + "message": "Удалить похожие результаты поиска" + }, + "repeat": { + "message": "Повтор" + }, + "reset": { + "message": "Сбросить" + }, + "resetAllSettings": { + "message": "Сбросить все настройки" + }, + "resetAllShortcuts": { + "message": "Сбросить все горячие клавиши" + }, + "reverse": { + "message": "Обратный порядок" + }, + "rotate": { + "message": "Повернуть" + }, + "save": { + "message": "Сохранить" + }, + "saveAs": { + "message": "Сохранить как" + }, + "schedule": { + "message": "Расписание" + }, + "screen": { + "message": "Экран" + }, + "screenshot": { + "message": "Скриншот" + }, + "search": { + "message": "Поиск" + }, + "searchBarOnly": { + "message": "Только поле поиска" + }, + "seekBackward10Seconds": { + "message": "Перемотать на 10 секунд назад" + }, + "seekForward10Seconds": { + "message": "Перемотать на 10 секунд вперед" + }, + "settings": { + "message": "Настройки" + }, + "settingsSuccessfullyImported": { + "message": "Настройки успешно импортированы" + }, + "shortcuts": { + "message": "Горячие клавиши" + }, + "showCardsOnMouseHover": { + "message": "Показывать карточки при наведении мыши" + }, + "showChannelVideosCount": { + "message": "Показывать количество видео на канале" + }, + "shuffle": { + "message": "Случайный порядок" + }, + "sidebar": { + "message": "Боковая панель" + }, + "spacebar": { + "message": "Пробел" + }, + "squaredUserImages": { + "message": "Квадратные аватарки пользователей" + }, + "static": { + "message": "Статично" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Стоп" + }, + "style": { + "message": "Стиль" + }, + "styles": { + "message": "Стили" + }, + "subscriptions": { + "message": "Подписки" + }, + "subtitles": { + "message": "Субтитры" + }, + "sunset": { + "message": "Закат" + }, + "sunsetToSunrise": { + "message": "От заката до рассвета" + }, + "systemPeferenceDark": { + "message": "Предпочитаемая системой: темная" + }, + "systemPeferenceLight": { + "message": "Предпочитаемая системой: светлая" + }, + "teal": { + "message": "Бирюзовый" + }, + "textColor": { + "message": "Цвет текста" + }, + "themes": { + "message": "Темы" + }, + "thisWillRemoveAllCookies": { + "message": "Это удалит все куки" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Вы действительно хотите удалить все куки YouTube?" + }, + "thisWillResetAllSettings": { + "message": "Это сбросит все настройки" + }, + "thisWillResetAllShortcuts": { + "message": "Это сбросит все горячие клавиши" + }, + "thumbnails": { + "message": "Превью" + }, + "timeFrom": { + "message": "Время от" + }, + "timeTo": { + "message": "Время до" + }, + "todayAt": { + "message": "Сегодня в" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Автовоспроизведение трейлера" + }, + "translations": { + "message": "Переводы" + }, + "transparentBackground": { + "message": "Прозрачный фон" + }, + "trending": { + "message": "Тренды" + }, + "tryToReloadThePage": { + "message": "Попробуйте перезагрузить страницу" + }, + "type": { + "message": "Тип" + }, + "upNextAutoplay": { + "message": "Автовоспроизведение следующего видео" + }, + "use24HourFormat": { + "message": "24-часовой формат" + }, + "version": { + "message": "Версия" + }, + "video": { + "message": "Видео" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Описание видео будет развернуто, чтобы получить название категории видео" + }, + "videoFormats": { + "message": "Форматы видео" + }, + "videos": { + "message": "Видео" + }, + "volume": { + "message": "Громкость" + }, + "watchLater": { + "message": "Посмотреть позже" + }, + "watchTime": { + "message": "Время просмотра" + }, + "whenTabIsChanged": { + "message": "При переключении вкладок" + }, + "white": { + "message": "Белый" + }, + "yellow": { + "message": "Желтый" + }, + "youtubeHeaderLeft": { + "message": "Верхняя панель (слева)" + }, + "youtubeHeaderRight": { + "message": "Верхняя панель (справа)" + }, + "youtubeHomePage": { + "message": "Домашняя страница YouTube" + }, + "youtubeLanguage": { + "message": "Язык YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube ограничивает качетво видео до 1080p для кодека h.264" + } +} \ No newline at end of file diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json new file mode 100644 index 000000000..89a2ae0f5 --- /dev/null +++ b/_locales/sk/messages.json @@ -0,0 +1,809 @@ +{ + "about": { + "message": "O" + }, + "accept": { + "message": "Prijať" + }, + "activate": { + "message": "Aktivovať" + }, + "activateCaptions": { + "message": "Aktivovať titulky" + }, + "activated": { + "message": "Aktivované" + }, + "activatedFeatures": { + "message": "Aktivované fukncie" + }, + "activateFullscreen": { + "message": "Aktivovať zobrazenie na celú obrazovku" + }, + "activeFeatures": { + "message": "Aktívne funkcie" + }, + "addScrollToTop": { + "message": "Prejdite «Vrátiť sa na začiatok»" + }, + "ads": { + "message": "Reklamy" + }, + "all": { + "message": "Všetko" + }, + "allow": { + "message": "Povoliť" + }, + "allow60fps": { + "message": "Povoliť 60fps" + }, + "alwaysActive": { + "message": "Vždy aktívne" + }, + "alwaysShowProgressBar": { + "message": "Vždy zobrazovať ukazateľ priebehu" + }, + "amber": { + "message": "Ambra" + }, + "analyzer": { + "message": "Analyzátor" + }, + "appearance": { + "message": "Vzhľad" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Zvuk" + }, + "audioFormats": { + "message": "Formát zvuku" + }, + "auto": { + "message": "Automaticky" + }, + "autoFullscreen": { + "message": "Automaticky-fullscreen" + }, + "autopauseWhenSwitchingTabs": { + "message": "Automatické pozastavenie pri prepínaní kariet" + }, + "autoplay": { + "message": "Automatické prehrávanie" + }, + "backupAndReset": { + "message": "Zálohovanie & Obnova" + }, + "baseOnSystemColorScheme": { + "message": "Nastavené podľa farby systému" + }, + "belowPlayer": { + "message": "Pod prehrávačom" + }, + "black": { + "message": "Čierna" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "Zablokovať všetko" + }, + "blue": { + "message": "Modrá" + }, + "blueGray": { + "message": "Šedo-modrá" + }, + "bluelight": { + "message": "Modré svetlo" + }, + "brown": { + "message": "Hnedá" + }, + "browser": { + "message": "Prehliadac" + }, + "browserVersion": { + "message": "Verzie prehliadača" + }, + "bubbles": { + "message": "Bubliny" + }, + "bug": { + "message": "Chyba" + }, + "buttons": { + "message": "Tlačidlá" + }, + "cancel": { + "message": "Zrušiť" + }, + "categories": { + "message": "Kategórie" + }, + "channel": { + "message": "Kanál" + }, + "channels": { + "message": "Kanály" + }, + "clipboard": { + "message": "Schránka" + }, + "codecH264": { + "message": "Kodek h.264" + }, + "collapsed": { + "message": "Zbaliť" + }, + "collapseOfSubscriptionSections": { + "message": "Zbaliť sekciu Odber" + }, + "comments": { + "message": "Komentáre" + }, + "confirmationBeforeClosing": { + "message": "Potvrdiť pred zatvorenímk" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Jadrá" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Vlastné CSS" + }, + "customJs": { + "message": "Vlastné JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Tyrkysová" + }, + "dark": { + "message": "Tmavý" + }, + "darkTheme": { + "message": "Tmavá téma" + }, + "dateAndTime": { + "message": "Dátum a čas" + }, + "dawn": { + "message": "Svitanie" + }, + "decreasePlaybackSpeed": { + "message": "Znížiť rýchlosť prehrávania" + }, + "decreaseVolume": { + "message": "Znížiť hlasitosť" + }, + "deepOrange": { + "message": "Tmavo oranžová" + }, + "deepPurple": { + "message": "Tmavo fialová" + }, + "defaultChannelTab": { + "message": "Predvolená karta kanálu" + }, + "deleteYoutubeCookies": { + "message": "Vymazať YouTube cookies" + }, + "description": { + "message": "Podrobnosti" + }, + "desert": { + "message": "Púšť" + }, + "details": { + "message": "Detaily" + }, + "developerOptions": { + "message": "Možnosti pre vývojara" + }, + "device": { + "message": "Zariadenie" + }, + "dim": { + "message": "Stmvaviť" + }, + "disabled": { + "message": "Vypnutý" + }, + "dislike": { + "message": "Dislike" + }, + "donate": { + "message": "Prispieť" + }, + "doNotChange": { + "message": "Nemeniť" + }, + "draggable": { + "message": "Posuvné" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Prázdny" + }, + "enabled": { + "message": "Zapnuté" + }, + "enabledForced": { + "message": "Zapnuté (vynútene)" + }, + "expanded": { + "message": "Rozbalené" + }, + "exportSettings": { + "message": "Exportovať nastavenia" + }, + "extension": { + "message": "Rozšírenia" + }, + "file": { + "message": "Súbor" + }, + "filters": { + "message": "Filtre" + }, + "fitToWindow": { + "message": "Prispôsobiť oknu" + }, + "flash": { + "message": "Blikať" + }, + "font": { + "message": "Písmo" + }, + "footer": { + "message": "Pätička" + }, + "forcedPlaybackSpeed": { + "message": "Vynútená rýchlosť prehrávania" + }, + "forcedTheaterMode": { + "message": "Vynútený divadelný režim" + }, + "forcedVolume": { + "message": "Vynútená hlasitosť" + }, + "foundABug": { + "message": "Našli ste chybu?" + }, + "fullWindow": { + "message": "Celé okno" + }, + "general": { + "message": "Všeobecné" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Prejdite do vyhľadávanieho poľa" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Zelená" + }, + "hdThumbnail": { + "message": "HD náhlad" + }, + "hdThumbnails": { + "message": "HD náhlady" + }, + "header": { + "message": "Hlavička" + }, + "hidden": { + "message": "Skryté" + }, + "hiddenOnVideoPage": { + "message": "Skyté na stránke videa" + }, + "hideAnimatedThumbnails": { + "message": "Skryť animované náhľady" + }, + "hideAnnotations": { + "message": "Skryť anotácie" + }, + "hideCards": { + "message": "Skryť karty" + }, + "hideDetails": { + "message": "Skryť detaily" + }, + "hideEndscreen": { + "message": "Skryť zobrazenie na konci videa" + }, + "hideFeaturedContent": { + "message": "Skryť odporúčaný obsah" + }, + "hideFooter": { + "message": "Hide pätičku" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hidePlaylist": { + "message": "Skryť zoznam videí" + }, + "hideRightButtons": { + "message": "Skryť tlčidlá v pravo" + }, + "hideScrollForDetails": { + "message": "Skryť «Zarolujte pre detaily»" + }, + "hideViewsCount": { + "message": "Skyť počet videní" + }, + "history": { + "message": "História" + }, + "home": { + "message": "Domov" + }, + "hover": { + "message": "Vznášať sa" + }, + "hoverOnVideoPage": { + "message": "Umiestnite kurzor na stránku videa" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Kedy bolo toto video nahrané?" + }, + "icons": { + "message": "Ikony" + }, + "iconsOnly": { + "message": "Iba ikony" + }, + "importSettings": { + "message": "Importovať nastavenia" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube ikona v prehliadači" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube ikona na YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube jazyk" + }, + "improvedtubeVersion": { + "message": "ImprovedTube verzia" + }, + "improveLogo": { + "message": "Improve logo" + }, + "increasePlaybackSpeed": { + "message": "Zvýšiť rýchlosť prehrávania" + }, + "increaseVolume": { + "message": "Zvýšiť hlasitosť" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "Jazyky" + }, + "legacyYoutube": { + "message": "Starý YouTube" + }, + "light": { + "message": "Svetlo" + }, + "lightBlue": { + "message": "Svetlo modrá" + }, + "lightGreen": { + "message": "Svetlo zelená" + }, + "like": { + "message": "Páči sa mi to" + }, + "likes": { + "message": "Páči sa mi to" + }, + "lime": { + "message": "Limetková" + }, + "list": { + "message": "Zoznam" + }, + "liveChat": { + "message": "Živí chat" + }, + "liveChatType": { + "message": "Typ živého chatu" + }, + "loudnessNormalization": { + "message": "Vyrovnanie hlasitosti" + }, + "markWatchedVideos": { + "message": "Označiť ako videné" + }, + "mixer": { + "message": "Mixér" + }, + "myColors": { + "message": "Moje farby" + }, + "name": { + "message": "Meno" + }, + "nativeMiniPlayer": { + "message": "Natívny mini prehrávač" + }, + "new": { + "message": "Nový" + }, + "nextVideo": { + "message": "Ďalšie video" + }, + "night": { + "message": "Noc" + }, + "noActiveFeatures": { + "message": "Žiadne aktívne fukncie" + }, + "none": { + "message": "Žiadny" + }, + "noOpenVideoTabs": { + "message": "Žiadne otvorené karty s videami" + }, + "normal": { + "message": "Normále" + }, + "old": { + "message": "Starý" + }, + "onAllVideos": { + "message": "Na všetkých videách" + }, + "onlyActiveOnYoutube": { + "message": "Aktívne iba na YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Prehrávať iba jedno video" + }, + "onSubscribedChannels": { + "message": "Na odoberaných kanáloch" + }, + "orange": { + "message": "Oranžová" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Ostatné" + }, + "permissions": { + "message": "Povolenia" + }, + "pictureInPicture": { + "message": "Obraz v obraze" + }, + "pink": { + "message": "Ružová" + }, + "plain": { + "message": "Jednoduchý" + }, + "platform": { + "message": "Platforma" + }, + "playbackSpeed": { + "message": "Rýchlosť prehrávania" + }, + "player": { + "message": "Prehrávač" + }, + "playerColor": { + "message": "Farba prehrávača" + }, + "playerSize": { + "message": "Veľkosť prehrávača" + }, + "playlist": { + "message": "Zoznam videí" + }, + "playlists": { + "message": "Zoznamy videí" + }, + "playPause": { + "message": "Prehrať / Pozastavť" + }, + "popupPlayer": { + "message": "Popup prehrávač" + }, + "position": { + "message": "Pozícia" + }, + "pressAnyKeyOrScroll": { + "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky" + }, + "previousVideo": { + "message": "Predchýdzajúce video" + }, + "primaryColor": { + "message": "Primárna farba" + }, + "purple": { + "message": "Fialová" + }, + "quality": { + "message": "Kvalita" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Ohodnoťte nás" + }, + "red": { + "message": "Červená" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Súvisiace videá" + }, + "removeRelatedSearchResults": { + "message": "Odstránte príbuzné výsledky vyhľadávania" + }, + "repeat": { + "message": "Opakovať" + }, + "reset": { + "message": "Obnoviť" + }, + "resetAllSettings": { + "message": "Obnoviť všetky nastavenia" + }, + "resetAllShortcuts": { + "message": "Obnoviť všetky skratky" + }, + "reverse": { + "message": "Obrátené" + }, + "rotate": { + "message": "Otočiť" + }, + "save": { + "message": "Uložiť" + }, + "saveAs": { + "message": "Uložiť ako" + }, + "schedule": { + "message": "Naplánovať" + }, + "screen": { + "message": "Obrazovka" + }, + "screenshot": { + "message": "Screenshot" + }, + "search": { + "message": "Vyhľadať" + }, + "searchBarOnly": { + "message": "Iba vyhľadávacie pole" + }, + "seekBackward10Seconds": { + "message": "Pretočiť spät o 10 sekúnd" + }, + "seekForward10Seconds": { + "message": "Pretočiť dopredu o 10 sekúnd" + }, + "settings": { + "message": "Nastavenia" + }, + "settingsSuccessfullyImported": { + "message": "Nastavenia úspešne importované" + }, + "shortcuts": { + "message": "Skratky" + }, + "showCardsOnMouseHover": { + "message": "Zobraziť karty pri prechode myšou" + }, + "showChannelVideosCount": { + "message": "Zobraziť počet videí kanálu" + }, + "shuffle": { + "message": "Náhodne" + }, + "sidebar": { + "message": "Bočný panel" + }, + "spacebar": { + "message": "Medzera" + }, + "squaredUserImages": { + "message": "Štvorcový obrázok užívateľa" + }, + "static": { + "message": "Statické" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Krok" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Štýl" + }, + "styles": { + "message": "Štýly" + }, + "subscriptions": { + "message": "Odbery" + }, + "subtitles": { + "message": "Titulky" + }, + "sunset": { + "message": "Západ slnka" + }, + "sunsetToSunrise": { + "message": "Západ slnka do východu slnka" + }, + "systemPeferenceDark": { + "message": "Predvolené: tmavé" + }, + "systemPeferenceLight": { + "message": "Predvolené: svetlé" + }, + "teal": { + "message": "Modrozelený" + }, + "textColor": { + "message": "Farba textu" + }, + "themes": { + "message": "Témy" + }, + "thisWillRemoveAllCookies": { + "message": "Toto odstráni všetky cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Toto odstráni všetky YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "Toto obnový všetky nastavenia." + }, + "thisWillResetAllShortcuts": { + "message": "Toto obnový všetky skratky" + }, + "thumbnails": { + "message": "Náhlady" + }, + "timeFrom": { + "message": "Čas od" + }, + "timeTo": { + "message": "Čas do" + }, + "todayAt": { + "message": "Dnes o" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Automatické prehrávanie ukážky" + }, + "translations": { + "message": "Preklady" + }, + "transparentBackground": { + "message": "Priehľadné pozadie" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Skúsťe obnoviť stránku" + }, + "type": { + "message": "Typ" + }, + "upNextAutoplay": { + "message": "Automaticky prehrať ďaľšie v poradí" + }, + "use24HourFormat": { + "message": "Použť 24-hodinový formát" + }, + "version": { + "message": "Verzia" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Podrobnosti videa budú zobrazené pre získanie názvu kategórie" + }, + "videoFormats": { + "message": "Formáty videa" + }, + "videos": { + "message": "Vedeá" + }, + "volume": { + "message": "Hlasitosť" + }, + "watchLater": { + "message": "Pozrieť neskor" + }, + "watchTime": { + "message": "Čas sledovania" + }, + "whenTabIsChanged": { + "message": "Pri zmene karty" + }, + "white": { + "message": "Biela" + }, + "yellow": { + "message": "Žltá" + }, + "youtubeHeaderLeft": { + "message": "YouTube hlavička (vľavo)" + }, + "youtubeHeaderRight": { + "message": "YouTube hlavička (vpravo)" + }, + "youtubeHomePage": { + "message": "Domáca stránka YouTube" + }, + "youtubeLanguage": { + "message": "Jazyk YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube obmedzuje kvalitu videa na 1080p pri kodeku h.264" + } +} \ No newline at end of file diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json new file mode 100644 index 000000000..323157a27 --- /dev/null +++ b/_locales/tr/messages.json @@ -0,0 +1,809 @@ +{ + "about": { + "message": "Hakkında" + }, + "accept": { + "message": "Onayla" + }, + "activate": { + "message": "Aktifleştir" + }, + "activateCaptions": { + "message": "Altyazıları Aktifleştir" + }, + "activated": { + "message": "Aktifleştirilmiş" + }, + "activatedFeatures": { + "message": "Aktifleştirilmiş özellikler" + }, + "activateFullscreen": { + "message": "Tam ekranı Aktifleştir" + }, + "activeFeatures": { + "message": "Etkin özellikler" + }, + "addScrollToTop": { + "message": "«Yukarı kaydır» ekle" + }, + "ads": { + "message": "Reklamlar" + }, + "all": { + "message": "Tümü" + }, + "allow": { + "message": "İzin ver" + }, + "allow60fps": { + "message": "60fps'e izin ver" + }, + "alwaysActive": { + "message": "Sürekli etkin" + }, + "alwaysShowProgressBar": { + "message": "İlerleme çubuğunu sürekli göster" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analizör" + }, + "appearance": { + "message": "Görünüm" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Ses" + }, + "audioFormats": { + "message": "Ses formatları" + }, + "auto": { + "message": "Otomatik" + }, + "autoFullscreen": { + "message": "Otomatik tam ekran" + }, + "autopauseWhenSwitchingTabs": { + "message": "Sekme değiştirildiğinde duraklat" + }, + "autoplay": { + "message": "Otomatik oynat" + }, + "backupAndReset": { + "message": "Yedek & sıfırla" + }, + "baseOnSystemColorScheme": { + "message": "Sistem renk şeması temelli" + }, + "belowPlayer": { + "message": "Oynatıcının altında" + }, + "black": { + "message": "Kara" + }, + "blacklist": { + "message": "Kara Liste" + }, + "blockAll": { + "message": "Tümünü engelle" + }, + "blue": { + "message": "Mavi" + }, + "blueGray": { + "message": "Mavi gri" + }, + "bluelight": { + "message": "Mavi Işık" + }, + "brown": { + "message": "Kahverengi" + }, + "browser": { + "message": "Tarayıcı" + }, + "browserVersion": { + "message": "Tarayıcı Sürümü" + }, + "bubbles": { + "message": "Baloncuklar" + }, + "bug": { + "message": "Hata" + }, + "buttons": { + "message": "Butonlar" + }, + "cancel": { + "message": "İptal" + }, + "categories": { + "message": "Kategoriler" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanallar" + }, + "clipboard": { + "message": "Pano" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapsed": { + "message": "Daraltılmış" + }, + "collapseOfSubscriptionSections": { + "message": "Abonelik bölümlerini daralt" + }, + "comments": { + "message": "Yorumlar" + }, + "confirmationBeforeClosing": { + "message": "Kapatmadan önce uyar" + }, + "cookies": { + "message": "Çerezler" + }, + "cores": { + "message": "Çekirdekler" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Özel CSS" + }, + "customJs": { + "message": "Özel JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Camgöbeği" + }, + "dark": { + "message": "Koyu" + }, + "darkTheme": { + "message": "Koyu tema" + }, + "dateAndTime": { + "message": "Tarih & zaman" + }, + "dawn": { + "message": "Şafak" + }, + "decreasePlaybackSpeed": { + "message": "Oynatma hızını azalt" + }, + "decreaseVolume": { + "message": "Sesi azalt" + }, + "deepOrange": { + "message": "Koyu turuncu" + }, + "deepPurple": { + "message": "Koyu mor" + }, + "defaultChannelTab": { + "message": "Varsayılan kanal sekmesi" + }, + "deleteYoutubeCookies": { + "message": "YouTube çerezleri sil" + }, + "description": { + "message": "Açıklama" + }, + "desert": { + "message": "Çöl" + }, + "details": { + "message": "Ayrıntılar" + }, + "developerOptions": { + "message": "Geliştirici seçenekleri" + }, + "device": { + "message": "Cihaz" + }, + "dim": { + "message": "Karart" + }, + "disabled": { + "message": "Devredışı" + }, + "dislike": { + "message": "Beğenmeme" + }, + "donate": { + "message": "Bağış" + }, + "doNotChange": { + "message": "Değiştirme" + }, + "draggable": { + "message": "Sürüklenebilir" + }, + "email": { + "message": "Eposta" + }, + "empty": { + "message": "Boş" + }, + "enabled": { + "message": "Etkin" + }, + "enabledForced": { + "message": "Etkin (Zorla)" + }, + "expanded": { + "message": "Genişletilmiş" + }, + "exportSettings": { + "message": "Ayarları dışa aktar" + }, + "extension": { + "message": "Uzantı" + }, + "file": { + "message": "Dosya" + }, + "filters": { + "message": "Filtreler" + }, + "fitToWindow": { + "message": "Pencereye sığdır" + }, + "flash": { + "message": "Flaş" + }, + "font": { + "message": "Yazı Tipi" + }, + "footer": { + "message": "Footer" + }, + "forcedPlaybackSpeed": { + "message": "Oynatma hızını uygulamaya zorla" + }, + "forcedTheaterMode": { + "message": "Sinema modunu zorla" + }, + "forcedVolume": { + "message": "Sesi zorla" + }, + "foundABug": { + "message": "Hata mı buldun?" + }, + "fullWindow": { + "message": "Tam pencere" + }, + "general": { + "message": "Genel" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Arama kutusuna git" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Yeşil" + }, + "hdThumbnail": { + "message": "HD küçük resim" + }, + "hdThumbnails": { + "message": "HD küçük resimler" + }, + "header": { + "message": "Header" + }, + "hidden": { + "message": "Gizli" + }, + "hiddenOnVideoPage": { + "message": "Video sayfasında gizli" + }, + "hideAnimatedThumbnails": { + "message": "Hareketli küçük resimleri gizle" + }, + "hideAnnotations": { + "message": "Ek açıklamaları gizle" + }, + "hideCards": { + "message": "Kartları gizle" + }, + "hideDetails": { + "message": "Detayları gizle" + }, + "hideEndscreen": { + "message": "Ekran sonunu gizle" + }, + "hideFeaturedContent": { + "message": "Öne çıkan içeriği gizle" + }, + "hideFooter": { + "message": "Footer'ı gizle" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hidePlaylist": { + "message": "Oynatma Listesi'ni gizle" + }, + "hideRightButtons": { + "message": "Sağ butonları gizle" + }, + "hideScrollForDetails": { + "message": "«Ayrıntılar için kaydır» gizle" + }, + "hideViewsCount": { + "message": "Görüntüleme sayısını gizle" + }, + "history": { + "message": "Geçmiş" + }, + "home": { + "message": "Ana Sayfa" + }, + "hover": { + "message": "Hover" + }, + "hoverOnVideoPage": { + "message": "Hover on video page" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Video ne kadar süre önce yüklendi" + }, + "icons": { + "message": "Simgeler" + }, + "iconsOnly": { + "message": "Yalnızca simgeler" + }, + "importSettings": { + "message": "Ayarları içe aktar" + }, + "improvedtubeIconInBrowser": { + "message": "Tarayıcıda ImprovedTube Simgesi" + }, + "improvedtubeIconOnYoutube": { + "message": "YouTube'da ImprovedTube Simgesi" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube dili" + }, + "improvedtubeVersion": { + "message": "ImprovedTube sürümü" + }, + "improveLogo": { + "message": "Logoyu geliştir" + }, + "increasePlaybackSpeed": { + "message": "Oynatma hızını artır" + }, + "increaseVolume": { + "message": "Sesi artır" + }, + "indigo": { + "message": "Çivit" + }, + "items": { + "message": "Öğeler" + }, + "languages": { + "message": "Diller" + }, + "legacyYoutube": { + "message": "Eski YouTube" + }, + "light": { + "message": "Açık" + }, + "lightBlue": { + "message": "Açık mavi" + }, + "lightGreen": { + "message": "Açık yeşil" + }, + "like": { + "message": "Beğen" + }, + "likes": { + "message": "Beğeniler" + }, + "lime": { + "message": "Lime" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Canlı sohbet" + }, + "liveChatType": { + "message": "Canlı sohbet türü" + }, + "loudnessNormalization": { + "message": "Gürültü normalleştirme" + }, + "markWatchedVideos": { + "message": "İzlenen videoları işaretle" + }, + "mixer": { + "message": "Karıştırıcı" + }, + "myColors": { + "message": "Renklerim" + }, + "name": { + "message": "İsim" + }, + "nativeMiniPlayer": { + "message": "Native mini player" + }, + "new": { + "message": "Yeni" + }, + "nextVideo": { + "message": "Sonraki video" + }, + "night": { + "message": "Gece" + }, + "noActiveFeatures": { + "message": "Aktif özellik yok" + }, + "none": { + "message": "Yok" + }, + "noOpenVideoTabs": { + "message": "Açık video sekmesi yok" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Eski" + }, + "onAllVideos": { + "message": "Tüm videolarda" + }, + "onlyActiveOnYoutube": { + "message": "Yalnızca YouTube'da etkin" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "onSubscribedChannels": { + "message": "Abone olunan kanallarda" + }, + "orange": { + "message": "Turuncu" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Diğer" + }, + "permissions": { + "message": "İzinler" + }, + "pictureInPicture": { + "message": "Resim içinde resim" + }, + "pink": { + "message": "Pembe" + }, + "plain": { + "message": "Sade" + }, + "platform": { + "message": "Platform" + }, + "playbackSpeed": { + "message": "Oynatma hızı" + }, + "player": { + "message": "Oynatıcı" + }, + "playerColor": { + "message": "Oynatıcı rengi" + }, + "playerSize": { + "message": "Oynatıcı boyutu" + }, + "playlist": { + "message": "Oynatma Listesi" + }, + "playlists": { + "message": "Oynatma Listeleri" + }, + "playPause": { + "message": "Oynat / Duraklat" + }, + "popupPlayer": { + "message": "Popup oynatıcı" + }, + "position": { + "message": "Konum" + }, + "pressAnyKeyOrScroll": { + "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan" + }, + "previousVideo": { + "message": "Önceki video" + }, + "primaryColor": { + "message": "Birincil renk" + }, + "purple": { + "message": "Mor" + }, + "quality": { + "message": "Kalite" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Bizi oyla" + }, + "red": { + "message": "Kırmızı" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "İlgili videolar" + }, + "removeRelatedSearchResults": { + "message": "İlgili arama sonuçlarını kaldır" + }, + "repeat": { + "message": "Tekrarla" + }, + "reset": { + "message": "Sıfırla" + }, + "resetAllSettings": { + "message": "Tüm ayarları sıfırla" + }, + "resetAllShortcuts": { + "message": "Tüm kısayolları sıfırla" + }, + "reverse": { + "message": "Ters" + }, + "rotate": { + "message": "Döndür" + }, + "save": { + "message": "Kaydet" + }, + "saveAs": { + "message": "Farklı kaydet" + }, + "schedule": { + "message": "Takvim" + }, + "screen": { + "message": "Ekran" + }, + "screenshot": { + "message": "Ekran görüntüsü" + }, + "search": { + "message": "Ara" + }, + "searchBarOnly": { + "message": "Yalnızca arama çubuğu" + }, + "seekBackward10Seconds": { + "message": "10 saniye geriye git" + }, + "seekForward10Seconds": { + "message": "10 saniye ileriye git" + }, + "settings": { + "message": "Ayarlar" + }, + "settingsSuccessfullyImported": { + "message": "Ayarlar başarıyla içe aktarıldı" + }, + "shortcuts": { + "message": "Kısayollar" + }, + "showCardsOnMouseHover": { + "message": "Fareyle üzerine gelindiğinde kartları göster" + }, + "showChannelVideosCount": { + "message": "Kanalın video sayısını göster" + }, + "shuffle": { + "message": "Karıştır" + }, + "sidebar": { + "message": "Kenar çubuğu" + }, + "spacebar": { + "message": "Spacebar" + }, + "squaredUserImages": { + "message": "Kare kullanıcı görüntüleri" + }, + "static": { + "message": "Statik" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Adım" + }, + "stop": { + "message": "Durdur" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stiller" + }, + "subscriptions": { + "message": "Aboneler" + }, + "subtitles": { + "message": "Altyazılar" + }, + "sunset": { + "message": "Gün batımı" + }, + "sunsetToSunrise": { + "message": "Gün batımından gün doğumuna" + }, + "systemPeferenceDark": { + "message": "Sistem tercihi: koyu" + }, + "systemPeferenceLight": { + "message": "Sistem tercihi: açık" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Yazı rengi" + }, + "themes": { + "message": "Temalar" + }, + "thisWillRemoveAllCookies": { + "message": "Bu, tüm çerezleri kaldıracaktır." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Bu, tüm YouTube çerezlerini kaldıracaktır." + }, + "thisWillResetAllSettings": { + "message": "Bu, tüm ayarları sıfırlayacaktır." + }, + "thisWillResetAllShortcuts": { + "message": "Bu, tüm kısayolları sıfırlayacaktır." + }, + "thumbnails": { + "message": "Küçük resimler" + }, + "timeFrom": { + "message": "Şu zamandan" + }, + "timeTo": { + "message": "Şu zamana" + }, + "todayAt": { + "message": "Bugün" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Fragman otomatik oynatımı" + }, + "translations": { + "message": "Çeviriler" + }, + "transparentBackground": { + "message": "Saydam arka plan" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Sayfayı yeniden yüklemeyi deneyin" + }, + "type": { + "message": "Tip" + }, + "upNextAutoplay": { + "message": "Sonraki otomatik oynatma" + }, + "use24HourFormat": { + "message": "24 saat biçimini kullan" + }, + "version": { + "message": "Sürüm" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Kategorinin adını almak için video açıklaması genişletilecek" + }, + "videoFormats": { + "message": "Video formatları" + }, + "videos": { + "message": "Videolar" + }, + "volume": { + "message": "Ses" + }, + "watchLater": { + "message": "Sonra izle" + }, + "watchTime": { + "message": "İzleme zamanı" + }, + "whenTabIsChanged": { + "message": "Sekme değiştirildiğinde" + }, + "white": { + "message": "Beyaz" + }, + "yellow": { + "message": "Sarı" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (sol)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (sağ)" + }, + "youtubeHomePage": { + "message": "YouTube ana sayfası" + }, + "youtubeLanguage": { + "message": "YouTube dili" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube, h.264 codec bileşeni için video kalitesini 1080p ile sınırlar" + } +} \ No newline at end of file diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json new file mode 100644 index 000000000..68b312438 --- /dev/null +++ b/_locales/zh_CN/messages.json @@ -0,0 +1,815 @@ +{ + "about": { + "message": "关于" + }, + "accept": { + "message": "接受" + }, + "activate": { + "message": "启用" + }, + "activateCaptions": { + "message": "启用字幕" + }, + "activated": { + "message": "启用" + }, + "activatedFeatures": { + "message": "已启用功能" + }, + "activateFullscreen": { + "message": "启用全屏" + }, + "activeFeatures": { + "message": "启用功能" + }, + "addScrollToTop": { + "message": "返回顶部按钮" + }, + "ads": { + "message": "广告" + }, + "all": { + "message": "所有" + }, + "allow": { + "message": "允许" + }, + "allow60fps": { + "message": "允许60FPS" + }, + "alwaysActive": { + "message": "始终启用" + }, + "alwaysShowProgressBar": { + "message": "始终显示进度条" + }, + "amber": { + "message": "琥珀色" + }, + "analyzer": { + "message": "分析仪" + }, + "appearance": { + "message": "外观" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "音频" + }, + "audioFormats": { + "message": "音频格式" + }, + "auto": { + "message": "自动" + }, + "autoFullscreen": { + "message": "自动全屏" + }, + "autopauseWhenSwitchingTabs": { + "message": "切换标签时暂停播放" + }, + "autoplay": { + "message": "自动播放" + }, + "backupAndReset": { + "message": "备份与恢复" + }, + "baseOnSystemColorScheme": { + "message": "使用系统配色" + }, + "belowPlayer": { + "message": "在播放器下方" + }, + "black": { + "message": "纯黑" + }, + "blacklist": { + "message": "黑名单" + }, + "blockAll": { + "message": "拦截所有" + }, + "blue": { + "message": "蓝色" + }, + "blueGray": { + "message": "蓝灰色" + }, + "bluelight": { + "message": "色彩柔和度" + }, + "brown": { + "message": "棕色" + }, + "browser": { + "message": "浏览器" + }, + "browserVersion": { + "message": "浏览器版本" + }, + "bubbles": { + "message": "网格" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "按钮" + }, + "cancel": { + "message": "取消" + }, + "categories": { + "message": "分类" + }, + "channel": { + "message": "电影和节目" + }, + "channels": { + "message": "频道" + }, + "clipboard": { + "message": "粘贴板" + }, + "codecH264": { + "message": "采用 h.264 编码" + }, + "collapsed": { + "message": "收起" + }, + "collapseOfSubscriptionSections": { + "message": "订阅区域显示展开/收起按钮" + }, + "comments": { + "message": "评论" + }, + "confirmationBeforeClosing": { + "message": "页面关闭前提示" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "核心" + }, + "cropChapterTitles": { + "message": "裁剪章节标题" + }, + "customCss": { + "message": "自定义CSS" + }, + "customJs": { + "message": "自定义JS" + }, + "customMiniPlayer": { + "message": "自定义迷你播放器" + }, + "cyan": { + "message": "青色" + }, + "dark": { + "message": "黑暗" + }, + "darkTheme": { + "message": "夜间模式" + }, + "dateAndTime": { + "message": "时间与日期" + }, + "dawn": { + "message": "黎明" + }, + "decreasePlaybackSpeed": { + "message": "视频减速" + }, + "decreaseVolume": { + "message": "-5%音量" + }, + "deepOrange": { + "message": "深橙色" + }, + "deepPurple": { + "message": "深紫色" + }, + "defaultChannelTab": { + "message": "默认频道页" + }, + "deleteYoutubeCookies": { + "message": "清空 YouTube cookies" + }, + "description": { + "message": "视频描述" + }, + "desert": { + "message": "沙漠" + }, + "details": { + "message": "细节信息" + }, + "developerOptions": { + "message": "开发者选项" + }, + "device": { + "message": "设备" + }, + "dim": { + "message": "遮罩程度" + }, + "disabled": { + "message": "停用" + }, + "dislike": { + "message": "踩一下" + }, + "donate": { + "message": "支持" + }, + "doNotChange": { + "message": "不做改变" + }, + "draggable": { + "message": "可拖动" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "暂无" + }, + "enabled": { + "message": "启用" + }, + "enabledForced": { + "message": "强制启用" + }, + "expanded": { + "message": "展开" + }, + "exportSettings": { + "message": "导出设置" + }, + "extension": { + "message": "扩展" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "过滤" + }, + "fitToWindow": { + "message": "窗口自适应" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "字体" + }, + "footer": { + "message": "底部栏" + }, + "forcedPlaybackSpeed": { + "message": "强制设置播放速度" + }, + "forcedTheaterMode": { + "message": "强制设置剧场模式" + }, + "forcedVolume": { + "message": "强制修改音量" + }, + "foundABug": { + "message": "发现了一个 Bug?" + }, + "fullWindow": { + "message": "全屏" + }, + "general": { + "message": "一般设置" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "转到搜索栏" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "绿色" + }, + "hdThumbnail": { + "message": "高清缩略图" + }, + "hdThumbnails": { + "message": "高清缩略图" + }, + "header": { + "message": "顶部栏" + }, + "hidden": { + "message": "隐藏" + }, + "hiddenOnVideoPage": { + "message": "在视频播放页面时隐藏" + }, + "hideAnimatedThumbnails": { + "message": "隐藏动态缩略图" + }, + "hideAnnotations": { + "message": "隐藏预览图" + }, + "hideCards": { + "message": "隐藏信息卡片" + }, + "hideDetails": { + "message": "隐藏详细信息" + }, + "hideEndscreen": { + "message": "隐藏结束画面" + }, + "hideFeaturedContent": { + "message": "隐藏精选频道" + }, + "hideFooter": { + "message": "隐藏底部栏" + }, + "hideGradientBottom": { + "message": "隐藏底部渐变层" + }, + "hidePlaylist": { + "message": "隐藏播放列表" + }, + "hideRightButtons": { + "message": "隐藏右侧按钮" + }, + "hideScrollForDetails": { + "message": "隐藏 «滚动至详细信息»" + }, + "hideViewsCount": { + "message": "隐藏播放量" + }, + "history": { + "message": "历史记录" + }, + "home": { + "message": "首页" + }, + "hover": { + "message": "悬浮" + }, + "hoverOnVideoPage": { + "message": "在视频播放页面时悬浮显示" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "投稿于多久之前" + }, + "icons": { + "message": "图标" + }, + "iconsOnly": { + "message": "仅显示图标" + }, + "importSettings": { + "message": "导入设置" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube 扩展程序图标" + }, + "improvedtubeIconOnYoutube": { + "message": "在 YouTube 显示 ImprovedTube 图标" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube 语言" + }, + "improvedtubeVersion": { + "message": "ImprovedTube 版本" + }, + "improveLogo": { + "message": "优化图标" + }, + "increasePlaybackSpeed": { + "message": "视频加速" + }, + "increaseVolume": { + "message": "+5%音量" + }, + "indigo": { + "message": "靛青色" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "语言" + }, + "legacyYoutube": { + "message": "旧版 YouTube" + }, + "light": { + "message": "明亮" + }, + "lightBlue": { + "message": "浅蓝色" + }, + "lightGreen": { + "message": "浅绿色" + }, + "like": { + "message": "顶一下" + }, + "likes": { + "message": "顶/踩总数" + }, + "lime": { + "message": "石灰色" + }, + "list": { + "message": "列表" + }, + "liveChat": { + "message": "实时聊天" + }, + "liveChatType": { + "message": "事实聊天类型" + }, + "loudnessNormalization": { + "message": "音量标准化" + }, + "markWatchedVideos": { + "message": "标记已观看的视频" + }, + "mixer": { + "message": "混音器" + }, + "myColors": { + "message": "自定义颜色" + }, + "name": { + "message": "名字" + }, + "nativeMiniPlayer": { + "message": "原版迷你播放器" + }, + "new": { + "message": "新的" + }, + "nextVideo": { + "message": "上一个视频" + }, + "night": { + "message": "夜色" + }, + "noActiveFeatures": { + "message": "没有已启用功能" + }, + "none": { + "message": "无" + }, + "noOpenVideoTabs": { + "message": "没有打开视频标签" + }, + "normal": { + "message": "正常" + }, + "old": { + "message": "旧版" + }, + "onAllVideos": { + "message": "在所有视频" + }, + "onlyActiveOnYoutube": { + "message": "仅在 YouTube 上启用" + }, + "onlyOnePlayerInstancePlaying": { + "message": "同时仅播放一个" + }, + "onSubscribedChannels": { + "message": "在订阅频道" + }, + "orange": { + "message": "橙色" + }, + "os": { + "message": "操作系统" + }, + "other": { + "message": "其他" + }, + "permissions": { + "message": "许可" + }, + "pictureInPicture": { + "message": "画中画" + }, + "pink": { + "message": "粉色" + }, + "plain": { + "message": "野外" + }, + "platform": { + "message": "平台" + }, + "playbackSpeed": { + "message": "播放速度" + }, + "player": { + "message": "播放器" + }, + "playerColor": { + "message": "播放器颜色" + }, + "playerSize": { + "message": "播放器大小" + }, + "playlist": { + "message": "播放列表" + }, + "playlists": { + "message": "稍后观看" + }, + "playPause": { + "message": "播放 / 暂停" + }, + "popupPlayer": { + "message": "弹出播放器" + }, + "position": { + "message": "位置" + }, + "pressAnyKeyOrScroll": { + "message": "按下任意键或滚动鼠标滚轴." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "按下任意键或鼠标滚轴." + }, + "previousVideo": { + "message": "下一个视频" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "紫色" + }, + "quality": { + "message": "画质" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "给我们评价" + }, + "red": { + "message": "红色" + }, + "redDislikeButton": { + "message": "踩按钮显示为红色" + }, + "relatedVideos": { + "message": "相关视频" + }, + "removeRelatedSearchResults": { + "message": "隐藏搜索相关结果" + }, + "repeat": { + "message": "循环" + }, + "reset": { + "message": "重置" + }, + "resetAllSettings": { + "message": "重置所有设置" + }, + "resetAllShortcuts": { + "message": "重置所有快捷键" + }, + "reverse": { + "message": "逆序" + }, + "rotate": { + "message": "旋转" + }, + "save": { + "message": "保存" + }, + "saveAs": { + "message": "另存为" + }, + "schedule": { + "message": "定时开/关" + }, + "screen": { + "message": "屏幕" + }, + "screenshot": { + "message": "截图" + }, + "search": { + "message": "搜索" + }, + "searchBarOnly": { + "message": "仅搜索栏" + }, + "seekBackward10Seconds": { + "message": "倒退10秒" + }, + "seekForward10Seconds": { + "message": "快进10秒" + }, + "settings": { + "message": "ImprovedTube 设置" + }, + "settingsSuccessfullyImported": { + "message": "设置导入成功" + }, + "shortcuts": { + "message": "快捷键" + }, + "showCardsOnMouseHover": { + "message": "鼠标悬浮时显示信息卡片" + }, + "showChannelVideosCount": { + "message": "显示频道内视频数" + }, + "shuffle": { + "message": "随机" + }, + "sidebar": { + "message": "侧边栏" + }, + "spacebar": { + "message": "空格" + }, + "squaredUserImages": { + "message": "方形用户头像" + }, + "static": { + "message": "静态" + }, + "statsForNerds": { + "message": "显示专业信息" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "停止" + }, + "style": { + "message": "样式" + }, + "styles": { + "message": "样式" + }, + "subscriptions": { + "message": "订阅内容" + }, + "subtitles": { + "message": "副标题" + }, + "sunset": { + "message": "晚霞" + }, + "sunsetToSunrise": { + "message": "日落到日出" + }, + "systemPeferenceDark": { + "message": "系统偏好: 深色" + }, + "systemPeferenceLight": { + "message": "系统偏好: 浅色" + }, + "teal": { + "message": "蓝绿色" + }, + "textColor": { + "message": "文字颜色" + }, + "themes": { + "message": "主题" + }, + "thisWillRemoveAllCookies": { + "message": "将清空所有 cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "将清空所有 YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "将重置所有设置." + }, + "thisWillResetAllShortcuts": { + "message": "将会重置所有快捷键" + }, + "thumbnails": { + "message": "缩略图" + }, + "timeFrom": { + "message": "开始时间" + }, + "timeTo": { + "message": "结束时间" + }, + "todayAt": { + "message": "截止今天" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "自动播放预告片" + }, + "translations": { + "message": "翻译" + }, + "transparentBackground": { + "message": "透明背景" + }, + "trending": { + "message": "时下流行" + }, + "tryToReloadThePage": { + "message": "尝试刷新页面" + }, + "turnOff": { + "message": "关闭时间" + }, + "turnOn": { + "message": "开启时间" + }, + "type": { + "message": "类型" + }, + "upNextAutoplay": { + "message": "自动播放下一视频" + }, + "use24HourFormat": { + "message": "使用24小时制" + }, + "version": { + "message": "版本" + }, + "video": { + "message": "视频" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video description will be expanded to get the name of the category" + }, + "videoFormats": { + "message": "视频格式" + }, + "videos": { + "message": "视频" + }, + "volume": { + "message": "音量" + }, + "watchLater": { + "message": "稍后观看" + }, + "watchTime": { + "message": "观看时间" + }, + "whenTabIsChanged": { + "message": "标签更改时" + }, + "white": { + "message": "白色" + }, + "yellow": { + "message": "黄色" + }, + "youtubeHeaderLeft": { + "message": "Youtube标题(左)" + }, + "youtubeHeaderRight": { + "message": "Youtube标题(右)" + }, + "youtubeHomePage": { + "message": "YouTube 主页" + }, + "youtubeLanguage": { + "message": "YouTube 语言" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "采用 H.264 编解码时,YouTube 会将视频画质设为 1080p" + } +} \ No newline at end of file diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json new file mode 100644 index 000000000..2d4c649d2 --- /dev/null +++ b/_locales/zh_TW/messages.json @@ -0,0 +1,809 @@ +{ + "about": { + "message": "關於" + }, + "accept": { + "message": "接受" + }, + "activate": { + "message": "啟用" + }, + "activateCaptions": { + "message": "開啟字幕" + }, + "activated": { + "message": "啟用" + }, + "activatedFeatures": { + "message": "已啟用功能" + }, + "activateFullscreen": { + "message": "開啟全螢幕" + }, + "activeFeatures": { + "message": "已啟用功能" + }, + "addScrollToTop": { + "message": "新增「回到頂部」按鈕" + }, + "ads": { + "message": "廣告" + }, + "all": { + "message": "所有" + }, + "allow": { + "message": "允許" + }, + "allow60fps": { + "message": "允許 60fps" + }, + "alwaysActive": { + "message": "始終有效" + }, + "alwaysShowProgressBar": { + "message": "一律顯示進度條" + }, + "amber": { + "message": "琥珀色" + }, + "analyzer": { + "message": "分析儀" + }, + "appearance": { + "message": "外貌" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "音頻" + }, + "audioFormats": { + "message": "音頻格式" + }, + "auto": { + "message": "自動" + }, + "autoFullscreen": { + "message": "自動全螢幕" + }, + "autopauseWhenSwitchingTabs": { + "message": "切換分頁時自動暫停" + }, + "autoplay": { + "message": "自動播放" + }, + "backupAndReset": { + "message": "備份&重置" + }, + "baseOnSystemColorScheme": { + "message": "使用系統配色方案" + }, + "belowPlayer": { + "message": "於播放器底下" + }, + "black": { + "message": "黑色" + }, + "blacklist": { + "message": "黑名單" + }, + "blockAll": { + "message": "封鎖所有" + }, + "blue": { + "message": "藍色" + }, + "blueGray": { + "message": "藍灰色" + }, + "bluelight": { + "message": "藍光" + }, + "brown": { + "message": "棕色" + }, + "browser": { + "message": "瀏覽器" + }, + "browserVersion": { + "message": "瀏覽器版本" + }, + "bubbles": { + "message": "Bubbles" + }, + "bug": { + "message": "問題" + }, + "buttons": { + "message": "按鈕" + }, + "cancel": { + "message": "取消" + }, + "categories": { + "message": "類別" + }, + "channel": { + "message": "頻道" + }, + "channels": { + "message": "頻道" + }, + "clipboard": { + "message": "剪贴板" + }, + "codecH264": { + "message": "影片編解碼器 h.264" + }, + "collapsed": { + "message": "簡縮" + }, + "collapseOfSubscriptionSections": { + "message": "於訂閱區顯示縮放按鈕" + }, + "comments": { + "message": "評論" + }, + "confirmationBeforeClosing": { + "message": "關閉前先確認" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "截斷章節名稱" + }, + "customCss": { + "message": "自訂 CSS" + }, + "customJs": { + "message": "自訂 JS" + }, + "customMiniPlayer": { + "message": "自訂迷你播放器" + }, + "cyan": { + "message": "青色" + }, + "dark": { + "message": "暗黑" + }, + "darkTheme": { + "message": "暗黑主題" + }, + "dateAndTime": { + "message": "日期和時間" + }, + "dawn": { + "message": "黎明" + }, + "decreasePlaybackSpeed": { + "message": "降低播放速度" + }, + "decreaseVolume": { + "message": "減輕音量" + }, + "deepOrange": { + "message": "深橙色" + }, + "deepPurple": { + "message": "深紫色" + }, + "defaultChannelTab": { + "message": "預設頻道標籤" + }, + "deleteYoutubeCookies": { + "message": "刪除 YouTube cookies" + }, + "description": { + "message": "影片描述" + }, + "desert": { + "message": "沙漠" + }, + "details": { + "message": "細節" + }, + "developerOptions": { + "message": "開發人員選項" + }, + "device": { + "message": "裝置" + }, + "dim": { + "message": "光線暗度" + }, + "disabled": { + "message": "關閉" + }, + "dislike": { + "message": "不喜歡" + }, + "donate": { + "message": "捐贈" + }, + "doNotChange": { + "message": "不要改變" + }, + "draggable": { + "message": "可拖動" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "空白" + }, + "enabled": { + "message": "啟用" + }, + "enabledForced": { + "message": "強制啟用" + }, + "expanded": { + "message": "擴展" + }, + "exportSettings": { + "message": "導出設定" + }, + "extension": { + "message": "擴充元件" + }, + "file": { + "message": "檔案" + }, + "filters": { + "message": "濾鏡" + }, + "fitToWindow": { + "message": "依視窗大小縮放" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "字體" + }, + "footer": { + "message": "頁腳" + }, + "forcedPlaybackSpeed": { + "message": "強制播放速度" + }, + "forcedTheaterMode": { + "message": "強制劇院模式" + }, + "forcedVolume": { + "message": "強制播放音量" + }, + "foundABug": { + "message": "遇到問題了嗎?" + }, + "fullWindow": { + "message": "全螢幕" + }, + "general": { + "message": "一般" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "轉到搜索框" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "綠色" + }, + "hdThumbnail": { + "message": "HD 縮圖" + }, + "hdThumbnails": { + "message": "HD 縮圖" + }, + "header": { + "message": "標頭" + }, + "hidden": { + "message": "隱藏" + }, + "hiddenOnVideoPage": { + "message": "於影片頁面自動隱藏" + }, + "hideAnimatedThumbnails": { + "message": "隱藏動態的縮略圖" + }, + "hideAnnotations": { + "message": "隱藏註解" + }, + "hideCards": { + "message": "隱藏資訊卡" + }, + "hideDetails": { + "message": "隱藏細節" + }, + "hideEndscreen": { + "message": "隱藏結束畫面" + }, + "hideFeaturedContent": { + "message": "隱藏精選影片" + }, + "hideFooter": { + "message": "隱藏頁腳" + }, + "hideGradientBottom": { + "message": "隱藏底部漸層圖層" + }, + "hidePlaylist": { + "message": "隱藏播放清單" + }, + "hideRightButtons": { + "message": "隱藏右側按鈕" + }, + "hideScrollForDetails": { + "message": "隱藏「向下捲動即可查看詳情」" + }, + "hideViewsCount": { + "message": "隱藏觀看次數" + }, + "history": { + "message": "觀看記錄" + }, + "home": { + "message": "首頁" + }, + "hover": { + "message": "滑鼠暫留時顯示" + }, + "hoverOnVideoPage": { + "message": "於影片頁面滑鼠暫留時顯示" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "影片上傳了多久" + }, + "icons": { + "message": "圖標" + }, + "iconsOnly": { + "message": "只有圖標" + }, + "importSettings": { + "message": "導入設定" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube icon in Browser" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube icon on YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube 語言" + }, + "improvedtubeVersion": { + "message": "ImprovedTube 版本" + }, + "improveLogo": { + "message": "改進 YouTube 圖示" + }, + "increasePlaybackSpeed": { + "message": "提高播放速度" + }, + "increaseVolume": { + "message": "增加音量" + }, + "indigo": { + "message": "靛青" + }, + "items": { + "message": "項目" + }, + "languages": { + "message": "語言" + }, + "legacyYoutube": { + "message": "舊版 YouTube" + }, + "light": { + "message": "Light" + }, + "lightBlue": { + "message": "淺藍色" + }, + "lightGreen": { + "message": "淺綠色" + }, + "like": { + "message": "喜歡" + }, + "likes": { + "message": "顯示按讚數量" + }, + "lime": { + "message": "萊姆色" + }, + "list": { + "message": "清單" + }, + "liveChat": { + "message": "Live 聊天視窗" + }, + "liveChatType": { + "message": "Live 聊天視窗種類" + }, + "loudnessNormalization": { + "message": "音量標準化" + }, + "markWatchedVideos": { + "message": "標記已觀看影片" + }, + "mixer": { + "message": "音量混合器" + }, + "myColors": { + "message": "自訂主色" + }, + "name": { + "message": "名稱" + }, + "nativeMiniPlayer": { + "message": "內建迷你播放器" + }, + "new": { + "message": "新增" + }, + "nextVideo": { + "message": "下一個影片" + }, + "night": { + "message": "夜晚" + }, + "noActiveFeatures": { + "message": "無已啟用功能" + }, + "none": { + "message": "無" + }, + "noOpenVideoTabs": { + "message": "無已開啟之影片頁面" + }, + "normal": { + "message": "正常" + }, + "old": { + "message": "舊版" + }, + "onAllVideos": { + "message": "於所有影片中" + }, + "onlyActiveOnYoutube": { + "message": "僅在YouTube上有效" + }, + "onlyOnePlayerInstancePlaying": { + "message": "同時間僅限播放單一影片" + }, + "onSubscribedChannels": { + "message": "於已訂閱的頻道中" + }, + "orange": { + "message": "橘色" + }, + "os": { + "message": "操作系統" + }, + "other": { + "message": "其他" + }, + "permissions": { + "message": "權限" + }, + "pictureInPicture": { + "message": "子母畫面" + }, + "pink": { + "message": "粉紅色" + }, + "plain": { + "message": "樸素" + }, + "platform": { + "message": "Platform" + }, + "playbackSpeed": { + "message": "播放速度" + }, + "player": { + "message": "播放器" + }, + "playerColor": { + "message": "影片進度條顏色" + }, + "playerSize": { + "message": "播放器大小" + }, + "playlist": { + "message": "播放列表" + }, + "playlists": { + "message": "播放清單" + }, + "playPause": { + "message": "播放/暫停" + }, + "popupPlayer": { + "message": "彈出播放器" + }, + "position": { + "message": "位置" + }, + "pressAnyKeyOrScroll": { + "message": "按任意鍵或使用滑鼠滾輪。" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "按任意鍵或使用鼠標滾輪。" + }, + "previousVideo": { + "message": "回到之前的影片" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "紫色" + }, + "quality": { + "message": "品質" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "評分" + }, + "red": { + "message": "紅色" + }, + "redDislikeButton": { + "message": "將「不喜歡」數量以紅色顯示" + }, + "relatedVideos": { + "message": "推薦影片" + }, + "removeRelatedSearchResults": { + "message": "移除搜尋相關結果" + }, + "repeat": { + "message": "重複播放" + }, + "reset": { + "message": "重置" + }, + "resetAllSettings": { + "message": "重置所有設定" + }, + "resetAllShortcuts": { + "message": "重置所有快捷鍵" + }, + "reverse": { + "message": "回播" + }, + "rotate": { + "message": "旋轉影片" + }, + "save": { + "message": "儲存" + }, + "saveAs": { + "message": "另存為" + }, + "schedule": { + "message": "排程" + }, + "screen": { + "message": "螢幕" + }, + "screenshot": { + "message": "截圖" + }, + "search": { + "message": "搜尋" + }, + "searchBarOnly": { + "message": "僅顯示搜尋列" + }, + "seekBackward10Seconds": { + "message": "倒退10秒" + }, + "seekForward10Seconds": { + "message": "前進10秒" + }, + "settings": { + "message": "設定" + }, + "settingsSuccessfullyImported": { + "message": "設定成功導入" + }, + "shortcuts": { + "message": "快捷鍵" + }, + "showCardsOnMouseHover": { + "message": "滑鼠暫留時顯示資訊卡" + }, + "showChannelVideosCount": { + "message": "顯示頻道影片數量" + }, + "shuffle": { + "message": "隨機播放" + }, + "sidebar": { + "message": "側邊欄" + }, + "spacebar": { + "message": "空格鍵" + }, + "squaredUserImages": { + "message": "方形用戶圖像" + }, + "static": { + "message": "靜止" + }, + "statsForNerds": { + "message": "顯示「統計資料」按鈕" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "停止" + }, + "style": { + "message": "樣式" + }, + "styles": { + "message": "樣式" + }, + "subscriptions": { + "message": "訂閱內容" + }, + "subtitles": { + "message": "允許字幕" + }, + "sunset": { + "message": "日落" + }, + "sunsetToSunrise": { + "message": "日出至入落" + }, + "systemPeferenceDark": { + "message": "系統預設: 暗黑模式" + }, + "systemPeferenceLight": { + "message": "系統預設: 白天模式" + }, + "teal": { + "message": "藍綠色" + }, + "textColor": { + "message": "文字顏色" + }, + "themes": { + "message": "主題" + }, + "thisWillRemoveAllCookies": { + "message": "這將刪除所有的 cookies。" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "這會刪除所有 YouTube Cookies。" + }, + "thisWillResetAllSettings": { + "message": "這會重置所有設定。" + }, + "thisWillResetAllShortcuts": { + "message": "這會重置所有快捷鍵。" + }, + "thumbnails": { + "message": "縮略圖" + }, + "timeFrom": { + "message": "開始時間" + }, + "timeTo": { + "message": "結束時間" + }, + "todayAt": { + "message": "自今日" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "預告片自動播放" + }, + "translations": { + "message": "翻譯" + }, + "transparentBackground": { + "message": "透明背景" + }, + "trending": { + "message": "發燒影片" + }, + "tryToReloadThePage": { + "message": "嘗試重新整理頁面" + }, + "type": { + "message": "種類" + }, + "upNextAutoplay": { + "message": "自動播放下一個影片" + }, + "use24HourFormat": { + "message": "使用24小時格式" + }, + "version": { + "message": "版本" + }, + "video": { + "message": "影片" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video description will be expanded to get the name of the category" + }, + "videoFormats": { + "message": "影片格式" + }, + "videos": { + "message": "影片" + }, + "volume": { + "message": "音量" + }, + "watchLater": { + "message": "稍後觀看" + }, + "watchTime": { + "message": "已觀看時間" + }, + "whenTabIsChanged": { + "message": "When tab is changed" + }, + "white": { + "message": "白色" + }, + "yellow": { + "message": "黃色" + }, + "youtubeHeaderLeft": { + "message": "YouTube 標頭 (左)" + }, + "youtubeHeaderRight": { + "message": "YouTube 標頭 (右)" + }, + "youtubeHomePage": { + "message": "預設的YouTube主頁" + }, + "youtubeLanguage": { + "message": "YouTube 語言" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "使用 H.264 編碼時,YouTube 會將畫質限定為 1080p 內。" + } +} \ No newline at end of file diff --git a/assets/fonts/OpenSans-Regular.ttf b/assets/fonts/OpenSans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..29bfd35a2bfdd92b6e8b4ec2970f4d1eebf49357 GIT binary patch literal 96932 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

_T_kl)Xoan=RX{3lY#VQTZ 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/OpenSans-SemiBold.ttf b/assets/fonts/OpenSans-SemiBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..54e7059cf36359cb5a3860085714a95306af0dea GIT binary patch literal 100820 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 DEZ%x^ literal 0 HcmV?d00001 diff --git a/assets/icons/128.png b/assets/icons/128.png new file mode 100644 index 0000000000000000000000000000000000000000..e6a56804d444718c30e08ccd4c65bec12283e420 GIT binary patch literal 3060 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 literal 0 HcmV?d00001 diff --git a/assets/icons/16g.png b/assets/icons/16g.png new file mode 100644 index 0000000000000000000000000000000000000000..0db3ae905f0909482aeed73c9657eafc46dfe8ac GIT binary patch literal 566 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMf^8lX^SN8&+)YR0pw6vW3uG4;7XumD+1dH|`I(uSWo2b?adALK zQc@C7S7c;lVq#)oU?9*mpk5$ZQBhG_TU%XSot&HuR2dZ&_4e&spt5)G-i3#U=jG+) z@_73h*TZ{ECo`SQ}GON$mQnml=OcX#)K1q&WOe!PAAcC8TW5}=n2 zN`m}?8Fct4m_@l7d89}t$xqV^k|cJ=#hK1|DPK+JP$uN*XJ1V(x8tq#W_oz7}w|Z@Dx5Sf08aM2Du1u8+W8^YDy-T==Ga%M{HseWy zoc0y3GItmG7GG|Ozf&60@@6jYbJ-Ocv+5jrZyJTQ+uQQ+tE4{vt^0#N*4X1qP3n|w z3md0TN?0DaN`on7)12fFdwzBq&DT$9;7q>uGF5HY3FZciubTc>e|N5K);N>&)ka^x l?%&kbpq(+VPJR5t)?KcA=JD-$OhBJ8c)I$ztaD0e0suE42SES; literal 0 HcmV?d00001 diff --git a/assets/icons/32.png b/assets/icons/32.png new file mode 100644 index 0000000000000000000000000000000000000000..673f7ba80d4dc37e467f69868cd8a97b30694180 GIT binary patch literal 1162 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 C-9ae; literal 0 HcmV?d00001 diff --git a/background.js b/background.js new file mode 100644 index 000000000..3e99e9e50 --- /dev/null +++ b/background.js @@ -0,0 +1,368 @@ +/*--------------------------------------------------------------- +>>> BACKGROUND +----------------------------------------------------------------- +# Global variables +# Functions +# Context menu items +# Message listener +# Storage change listener +# Initialization +# Uninstall URL +# Google Analytics +---------------------------------------------------------------*/ + +/*--------------------------------------------------------------- +# GLOBAL VARIABLES +---------------------------------------------------------------*/ + +var locale_code = 'en', + browser_icon = false; + + +/*--------------------------------------------------------------- +# FUNCTIONS +---------------------------------------------------------------*/ + +function isset(variable) { + if (typeof variable === 'undefined' || variable === null) { + return false; + } + + return true; +} + +function getTranslations(path) { + var xhr = new XMLHttpRequest(); + + xhr.addEventListener('load', function() { + if (chrome && chrome.tabs) { + chrome.tabs.query({}, function(tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + name: 'translation_response', + value: xhr.responseText + }); + } + } + }); + } + + chrome.runtime.sendMessage({ + name: 'translation_response', + value: xhr.responseText + }); + }); + + xhr.open('GET', path, true); + xhr.send(); +} + +function browserActionIcon() { + if (browser_icon === 'always') { + chrome.browserAction.setIcon({ + path: 'assets/icons/32.png' + }); + } else { + chrome.browserAction.setIcon({ + path: 'assets/icons/32g.png' + }); + } +} + + +/*--------------------------------------------------------------- +# CONTEXT MENU ITEMS +---------------------------------------------------------------*/ + +chrome.contextMenus.removeAll(); + +chrome.contextMenus.create({ + id: '1111', + title: 'Donate', + contexts: ['browser_action'] +}); + +chrome.contextMenus.create({ + id: '1112', + title: 'Rate me', + contexts: ['browser_action'] +}); + +chrome.contextMenus.create({ + id: '1113', + title: 'GitHub', + contexts: ['browser_action'] +}); + +chrome.contextMenus.onClicked.addListener(function(event) { + if (event.menuItemId === '1111') { + window.open('https://www.improvedtube.com/donate'); + } else if (event.menuItemId === '1112') { + window.open('https://chrome.google.com/webstore/detail/improvedtube-for-youtube/bnomihfieiccainjcjblhegjgglakjdd'); + } else if (event.menuItemId === '1113') { + window.open('https://github.com/ImprovedTube/ImprovedTube'); + } +}); + + +/*--------------------------------------------------------------- +# MESSAGE LISTENER +---------------------------------------------------------------*/ + +chrome.runtime.onMessage.addListener(function(request, sender) { + if (isset(request) && typeof request === 'object') { + if (request.enabled === true && browser_icon !== 'always') { + chrome.browserAction.setIcon({ + path: 'assets/icons/32.png', + tabId: sender.tab.id + }); + } + + if (request.name === 'translation_request') { + getTranslations(request.path); + } + + if (request.name === 'improvedtube-analyzer') { + var data = request.value, + date = new Date().toDateString(), + hours = new Date().getHours() + ':00'; + + chrome.storage.local.get(function(items) { + if (!items.analyzer) { + items.analyzer = {}; + } + + if (!items.analyzer[date]) { + items.analyzer[date] = {}; + } + + if (!items.analyzer[date][hours]) { + items.analyzer[date][hours] = {}; + } + + if (!items.analyzer[date][hours][data]) { + items.analyzer[date][hours][data] = 0; + } + + items.analyzer[date][hours][data]++; + + chrome.storage.local.set({ + analyzer: items.analyzer + }); + }); + } + + if (request.name === 'improvedtube-blacklist') { + chrome.storage.local.get(function(items) { + if (!items.blacklist || typeof items.blacklist !== 'object') { + items.blacklist = {}; + } + + if (request.data.type === 'channel') { + if (!items.blacklist.channels) { + items.blacklist.channels = {}; + } + + items.blacklist.channels[request.data.id] = { + title: request.data.title, + preview: request.data.preview + }; + } + + if (request.data.type === 'video') { + if (!items.blacklist.videos) { + items.blacklist.videos = {}; + } + + items.blacklist.videos[request.data.id] = { + title: request.data.title + }; + } + + chrome.storage.local.set({ + blacklist: items.blacklist + }); + }); + } + + if (request.name === 'improvedtube-watched') { + chrome.storage.local.get(function(items) { + if (!items.watched || typeof items.watched !== 'object') { + items.watched = {}; + } + + if (request.data.action === 'set') { + items.watched[request.data.id] = { + title: request.data.title + }; + } + + if (request.data.action === 'remove') { + delete items.watched[request.data.id]; + } + + chrome.storage.local.set({ + watched: items.watched + }); + }); + } + + if (request.name === 'download') { + chrome.permissions.request({ + permissions: ['downloads'], + origins: ['https://www.youtube.com/*'] + }, function(granted) { + if (granted) { + try { + var blob = new Blob([JSON.stringify(request.value)], { + type: 'application/json;charset=utf-8' + }); + + chrome.downloads.download({ + url: URL.createObjectURL(blob), + filename: request.filename, + saveAs: true + }); + } catch (err) { + chrome.runtime.sendMessage({ + name: 'dialog-error', + value: err + }); + } + } else { + chrome.runtime.sendMessage({ + name: 'dialog-error', + value: 'permissionIsNotGranted' + }); + } + }); + } + + if (request.name === 'improvedtube-play') { + chrome.tabs.query({}, function(tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + name: 'improvedtube-play', + id: request.id + }); + } + } + }); + } + + if (isset(request.export)) { + chrome.storage.local.get(function(data) { + chrome.permissions.request({ + permissions: ['downloads'], + origins: ['https://www.youtube.com/*'] + }, function(granted) { + if (granted) { + var blob = new Blob([JSON.stringify(data)], { + type: 'application/octet-stream' + }), + date = new Date(); + + chrome.downloads.download({ + url: URL.createObjectURL(blob), + filename: 'improvedtube_' + (date.getMonth() + 1) + '_' + date.getDate() + '_' + date.getFullYear() + '.json', + saveAs: true + }); + } + }); + }); + } + } +}); + + +/*--------------------------------------------------------------- +# STORAGE CHANGE LISTENER +---------------------------------------------------------------*/ + +chrome.storage.onChanged.addListener(function(changes) { + if (isset(changes.improvedtube_language)) { + locale_code = changes.improvedtube_language.newValue; + } + + if (isset(changes.improvedtube_browser_icon)) { + browser_icon = changes.improvedtube_browser_icon.newValue; + } + + browserActionIcon(); + + _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); +}); + + +/*--------------------------------------------------------------- +# INITIALIZATION +---------------------------------------------------------------*/ + +chrome.storage.local.get(function(items) { + if (isset(items.improvedtube_language)) { + locale_code = items.improvedtube_language; + } + + if (isset(items.improvedtube_browser_icon)) { + browser_icon = items.improvedtube_browser_icon; + } + + browserActionIcon(); + + _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); +}); + + +/*--------------------------------------------------------------- +# UNINSTALL URL +---------------------------------------------------------------*/ + +chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); + + +/*--------------------------------------------------------------- +# GOOGLE ANALYTICS +---------------------------------------------------------------*/ + +var _gaq = _gaq || []; + +/*(function() { + var ga = document.createElement('script'); + + _gaq.push(['_setAccount', 'UA-88354155-1']); + _gaq.push(['_setSessionCookieTimeout', 14400000]); + + ga.type = 'text/javascript'; + ga.async = true; + ga.src = 'https://ssl.google-analytics.com/ga.js'; + + document.body.appendChild(ga); +})();*/ + + + + + + + + + +chrome.tabs.onActivated.addListener(function(activeInfo) { + chrome.tabs.query({}, function(tabs) { + chrome.tabs.sendMessage(activeInfo.tabId, { + action: 'focus' + }); + + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].id !== activeInfo.tabId) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + action: 'blur' + }); + } + } + } + }); +}); \ No newline at end of file diff --git a/content-scripts.js b/content-scripts.js new file mode 100644 index 000000000..92921d8cf --- /dev/null +++ b/content-scripts.js @@ -0,0 +1,186 @@ +/*------------------------------------------------------------------------------ +>>> TABLE OF CONTENTS: +-------------------------------------------------------------------------------- +1.0 Features +2.0 Isset +3.0 Initialization +4.0 Change listener +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +1.0 FEATURES +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +1.1 YOUTUBE HOME PAGE +------------------------------------------------------------------------------*/ + +function youtubeHomePage(option) { + if (location.pathname === '/') { + if (location.hostname === 'www.youtube.com') { + if ( + option === '/feed/trending' || + option === '/feed/subscriptions' || + option === '/feed/history' || + option === '/playlist?list=WL' + ) { + location.replace(option); + } + } + } +} + + +/*------------------------------------------------------------------------------ +2.0 ISSET +------------------------------------------------------------------------------*/ + +function isset(variable) { + if (typeof variable === 'undefined' || variable === null) { + return false; + } + + return true; +}; + +function camelize(string) { + return string.replace(/_[a-z]/g, function(match) { + return match[1].toUpperCase(); + }); +} + +function attributes(items) { + var whitelist = { + 'remove-related-search-results': true, + 'squared-user-images': true, + 'hide-animated-thumbnails': true, + 'header-position': true, + 'header-improve-logo': true, + 'header-hide-right-buttons': true, + 'player-hide-annotations': true, + 'player-hide-cards': true, + 'player-show-cards-on-mouse-hover': true, + 'player-size': true, + 'player-color': true, + 'player-transparent-background': true, + 'player-hide-endscreen': true, + 'hide-scroll-for-details': true, + 'always-show-progress-bar': true, + 'hide-details': true, + 'description': true, + 'hide-views-count': true, + 'likes': true, + 'red-dislike-button': true, + 'livechat': true, + 'hide-playlist': true, + 'related-videos': true, + 'comments': true, + 'hide-footer': true, + 'night-theme': true, + 'dawn-theme': true, + 'sunset-theme': true, + 'desert-theme': true, + 'plain-theme': true, + 'black-theme': true, + 'player-crop-chapter-titles': true, + 'player-ads': true + }; + + for (var key in items) { + var attribute = key.replace(/_/g, '-'); + + if (whitelist.hasOwnProperty(attribute)) { + document.documentElement.setAttribute('it-' + attribute, items[key]); + } + } +} + + +/*------------------------------------------------------------------------------ +3.0 INITIALIZATION +------------------------------------------------------------------------------*/ + +function injectScript(string) { + var script = document.createElement('script'); + + script.textContent = string; + + document.documentElement.appendChild(script); + + script.remove(); +} + +function injectStyles(string, id) { + var style = document.createElement('style'); + + style.textContent = string; + + if (id) { + style.id = id; + } + + document.documentElement.appendChild(style); +} + +chrome.storage.local.get('youtube_home_page', function(items) { + youtubeHomePage(items.youtube_home_page); +}); + +chrome.storage.local.get(function(items) { + var textContent = 'var ImprovedTube={'; + + // attributes + attributes(items); + + // Isset + textContent += 'isset:' + isset + ','; + + // Features + for (var key in ImprovedTube) { + textContent += key + ': ' + ImprovedTube[key] + ','; + } + + // Storage + textContent += 'storage:' + JSON.stringify(items); + + // Initialization + textContent += '};ImprovedTube.init();'; + + injectScript(textContent); +}); + + +/*------------------------------------------------------------------------------ +4.0 CHANGE LISTENER +------------------------------------------------------------------------------*/ + +chrome.storage.onChanged.addListener(function(changes) { + for (var key in changes) { + var value = changes[key].newValue, + func = camelize(key); + + document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), value); + + injectScript('ImprovedTube.storage[\'' + key + '\']=' + (typeof value === 'boolean' ? value : '\'' + value + '\'') + ';'); + + if (typeof ImprovedTube[func] === 'function') { + injectScript('ImprovedTube.' + func + '();'); + } + } +}); + + +chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { + if (request.action === 'focus') { + injectScript('ImprovedTube.focus = true;'); + } else if (request.action === 'blur') { + injectScript('ImprovedTube.focus = false;'); + } + + injectScript('ImprovedTube.onfocus();'); +}); + + +chrome.runtime.sendMessage({ + enabled: true +}); \ No newline at end of file diff --git a/content-styles.css b/content-styles.css new file mode 100644 index 000000000..095aa73b3 --- /dev/null +++ b/content-styles.css @@ -0,0 +1,5954 @@ +/*------------------------------------------------------------------------------ +>>> TABLE OF CONTENTS: +-------------------------------------------------------------------------------- +1.0 General + 1.1 YouTube home page + 1.2 Collapse of subscription sections + 1.3 Add "Scroll to top" + 1.4 Remove related search results + 1.5 Mark watched videos + 1.6 Squared user images + 1.7 Hide animated thumbnails +2.0 Appearance + 2.1 Header + 2.1.1 Position + 2.1.2 Improve logo + 2.1.3 Hide right buttons + 2.2 Player + 2.2.1 Hide annotations + 2.2.2 Hide cards + 2.2.3 Show cards on mouse hover + 2.2.4 Player size + 2.2.5 Player color + 2.2.6 Transparent background + 2.2.7 Hide endscreen + 2.2.8 Hide "Scroll for details" + 2.2.9 Always show progress bar + 2.3 Sidebar + 2.3.1 Livachat + 2.3.2 Hide playlist + 2.3.3 Relative videos + 2.4 Details + 2.4.1 Hide details + 2.4.2 Description + 2.4.3 Hide views count + 2.4.4 Likes + 2.4.5 Show dislike button red colour + 2.5 Comments + 2.6 Footer +3.0 Themes + 3.1 Bluelight + 3.2 Dim + 3.3 Themes +4.0 Player + 4.1 Crop chapter titles + 4.2 Ads + 4.3 Mini player + 4.4 Screenshot + 4.5 Repeat + 4.6 Rotate + 4.7 Popup player +5.0 Playlist + 5.1 Reverse +6.0 Channel + 6.1 Featured content +7.0 Shortcuts +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +1.0 GENERAL +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +1.1 YOUTUBE HOME PAGE +------------------------------------------------------------------------------*/ + +html[it-page-type=home][it-youtube-home-page=search], +html[it-page-type=home][it-youtube-home-page=search] app-drawer[opened], +html[it-page-type=home][it-youtube-home-page=search] #appbar-guide-menu +{ + visibility: hidden; + overflow: hidden; + + width: 100vw; + height: 100vh; + + pointer-events: none; +} + +html[it-page-type=home][it-youtube-home-page=search] ytd-masthead ytd-searchbox, +html[it-page-type=home][it-youtube-home-page=search] #yt-masthead-content +{ + position: fixed; + z-index: 99999; + top: 0; + left: 0; + + display: flex; + visibility: visible; + + width: 100vw; + height: 100vh; + margin: 0; + padding: 0; + + pointer-events: all; + + justify-content: center; + align-items: center; +} + +html[it-page-type=home][it-youtube-home-page=search] ytd-searchbox > form +{ + width: 100%; + max-width: 768px; + padding: 16px 32px; +} + +html[it-page-type=home][it-youtube-home-page=search] .gstl_50.sbdd_a +{ + z-index: 99999; + + visibility: visible; + + pointer-events: all; +} + + +/*------------------------------------------------------------------------------ +1.2 COLLAPSE OF SUBSCRIPTION SECTION +------------------------------------------------------------------------------*/ + +ytd-item-section-renderer .grid-subheader + #contents +{ + overflow: hidden; +} + +ytd-item-section-renderer.it-section-collapsed .grid-subheader + #contents +{ + height: 0 !important; +} + +ytd-item-section-renderer .it-section-collapse +{ + cursor: pointer; +} + +ytd-item-section-renderer .it-section-collapse svg +{ + width: 24px; + height: 24px; + + transition: transform 150ms; + + fill: var(--ytd-menu-renderer-button-color, var(--yt-spec-icon-inactive)); +} + +ytd-item-section-renderer .it-section-collapse:hover svg +{ + fill: var(--yt-spec-icon-active-other); +} + +ytd-item-section-renderer.it-section-collapsed .it-section-collapse svg +{ + transform: rotate(180deg); +} + + +/*------------------------------------------------------------------------------ +1.3 ADD "SCROLL TO TOP" +------------------------------------------------------------------------------*/ + +#it-scroll-to-top +{ + position: fixed; + z-index: 999; + right: 32px; + bottom: 32px; + + display: flex; + visibility: hidden; + + box-sizing: border-box; + width: 56px; + height: 56px; + + cursor: pointer; + transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; + transform: translateY(88px); + pointer-events: none; + + opacity: 0; + border-radius: 50%; + background: linear-gradient(135deg, #f8d266, #f17953); + box-shadow: 0 1px 1px 1px rgba(230, 109, 70, .7), 0 3px 5px rgba(0,0,0,.35); + + justify-content: center; + align-items: center; +} + +html[it-show-scroll-to-top=true] #it-scroll-to-top +{ + visibility: visible; + + transform: translateY(0px); + pointer-events: all; + + opacity: 1; +} + +html:not([it-red-popup-theme]) #it-scroll-to-top, +html[it-red-popup-theme=true] #it-scroll-to-top +{ + background: #f73030; + box-shadow: 0 3px 5px rgba(0,0,0,.35); +} + +#it-scroll-to-top > svg +{ + width: 24px; + + fill: #fff; +} + +html[it-show-scroll-to-top=true] #it-scroll-to-top:hover +{ + transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; + transform: translateY(4px) scale(.975); + + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, .2), 0 8px 10px 1px rgba(0, 0, 0, .14), 0 3px 14px 2px rgba(0, 0, 0, .12); +} + + +/*------------------------------------------------------------------------------ +1.4 REMOVE RELATED SEARCH RESULTS +------------------------------------------------------------------------------*/ + +html[it-remove-related-search-results=true] ytd-horizontal-card-list-renderer.style-scope.ytd-item-section-renderer, +html[it-remove-related-search-results=true] li > div.feed-item-container.browse-list-item-container.yt-section-hover-container.compact-shelf.shelf-item.branded-page-box, +html[it-remove-related-search-results=true] li > div.search-refinements +{ + display: none; +} + + +/*------------------------------------------------------------------------------ +1.5 MARK WATCHED VIDEOS +------------------------------------------------------------------------------*/ + +.it-mark-watched +{ + position: absolute; + z-index: 999; + bottom: 4px; + left: 4px; + + visibility: hidden; + overflow: hidden; + + width: 28px; + height: 28px; + + cursor: pointer; + text-align: center; + + color: #fff; + border-radius: 2px; + background: rgba(0,0,0,.8); +} + +.it-mark-watched svg +{ + position: absolute; + top: 4px; + left: 4px; + + width: 20px; + height: 20px; + + fill: var(--ytd-menu-renderer-button-color, var(--yt-spec-icon-inactive, #aaa)); +} + +*:hover > .it-mark-watched +{ + visibility: visible; +} + +.it-mark-watched.watched svg +{ + fill: var(--yt-spec-icon-active-other, #fff); +} + + +/*------------------------------------------------------------------------------ +1.6 SQUARED USER IMAGES +------------------------------------------------------------------------------*/ + +html[it-squared-user-images=true] #avatar.ytd-shelf-renderer, +html[it-squared-user-images=true] yt-img-shadow, +html[it-squared-user-images=true] #yt-masthead-user .yt-masthead-user-icon +{ + border-radius: unset !important; +} + + +/*------------------------------------------------------------------------------ +1.7 HIDE ANIMATED THUMBNAILS +------------------------------------------------------------------------------*/ + +html[it-hide-animated-thumbnails=true] #mouseover-overlay, +html[it-hide-animated-thumbnails=true] .mouseover-play, +html[it-hide-animated-thumbnails=true] .mouseover-img +{ + visibility: hidden !important; +} + + +/*------------------------------------------------------------------------------- +2.0 APPEARANCE +-------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------- +2.1 HEADER +-------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------- +2.1.1 POSITION +-------------------------------------------------------------------------------*/ + +html[it-header-position=hidden]:not([it-search-focus=true]) #masthead-container +{ + transform: translateY(-100%); +} + +html[it-header-position=hidden] app-drawer#guide #guide-spacer, +html[it-header-position=hidden] ytd-app > ytd-masthead, +html[it-header-position=hover] app-drawer#guide #guide-spacer, +html[it-header-position=static] app-drawer#guide #guide-spacer, +html[it-header-position=hidden_on_video_page][it-page-type=video] #masthead-container, +html[it-header-position=hidden_on_video_page][it-page-type=video] app-drawer#guide #guide-spacer, +html[it-header-position=hover_on_video_page][it-page-type=video] app-drawer#guide #guide-spacer +{ + display: none; +} + +html[it-header-position=hover] ytd-app > ytd-masthead, +html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app > ytd-masthead, +html[it-header-position=hover] #masthead-container, +html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-container +{ + z-index: 2147483647; +} + +html[it-header-position=hidden] ytd-page-manager#page-manager, +html[it-header-position=hidden] app-header#header, +html[it-header-position=hidden_on_video_page][it-page-type='video'] ytd-page-manager#page-manager, +html[it-header-position=hidden_on_video_page][it-page-type='video'] app-header#header, +html[it-header-position=hidden] #appbar-guide-menu, +html[it-header-position=hidden_on_video_page][it-page-type='video'] #appbar-guide-menu, +html[it-header-position=hover] ytd-page-manager#page-manager, +html[it-header-position=hover] app-header#header, +html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-page-manager#page-manager, +html[it-header-position=hover_on_video_page][it-page-type='video'] app-header#header, +html[it-header-position=hover] #appbar-guide-menu, +html[it-header-position=hover_on_video_page][it-page-type='video'] #appbar-guide-menu, +html[it-header-position=static] ytd-page-manager#page-manager, +html[it-header-position=static] #appbar-guide-menu +{ + margin-top: 0; +} + +html[it-header-position=hover] ytd-app > ytd-masthead, +html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) ytd-app > ytd-masthead, +html[it-header-position=hover]:not([it-improvedtube-search=true]) #masthead-container, +html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) #masthead-container +{ + transition: transform 250ms; + transform: translateY(-75%); +} + +html[it-header-position=hover] #masthead-container:hover, +html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-container:hover, +html[it-header-position=hover][it-search-focus=true] #masthead-container, +html[it-header-position=hover_on_video_page][it-page-type='video'][it-search-focus=true] #masthead-container +{ + transform: translateY(0%); +} + +html[it-header-position=static] #masthead-container +{ + position: relative; + z-index: 999999999999; +} + +html[it-header-position=hover] ytd-app[masthead-hidden_] ytd-masthead, +html[it-header-position=hover] ytd-app[scrolling_] ytd-masthead, +html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app[masthead-hidden_] ytd-masthead, +html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app[scrolling_] ytd-masthead +{ + display: none; +} + + +/*------------------------------------------------------------------------------ +2.1.2 IMPROVE LOGO +------------------------------------------------------------------------------*/ + +html[it-header-improve-logo=true] ytd-topbar-logo-renderer#logo +{ + filter: grayscale(1); +} + +html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer path[fill*='#FF0000'] +{ + fill: #282828; +} + +html[it-header-improve-logo=true][dark] g.ytd-topbar-logo-renderer path[fill*='#FF0000'] +{ + fill: #fff; +} + +html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer polygon[fill*='#FFFFFF'] +{ + fill: #232323; +} + + +/*------------------------------------------------------------------------------ +2.1.3 HIDE RIGHT BUTTONS +------------------------------------------------------------------------------*/ + +html[it-header-hide-right-buttons=true] ytd-masthead#masthead #container #end +{ + visibility: hidden; + + pointer-events: none; +} + + +/*------------------------------------------------------------------------------ +2.2 PLAYER +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +2.2.1 HIDE ANNOTATIONS +------------------------------------------------------------------------------*/ + +html[it-player-hide-annotations=true] .annotation, +html[it-player-hide-annotations=true] .annotation-type-text, +html[it-player-hide-annotations=true] .annotation-shape +{ + display: none; +} + + +/*------------------------------------------------------------------------------ +2.2.2 HIDE CARDS +------------------------------------------------------------------------------*/ + +html[it-player-hide-cards=true] .ytp-ce-element, +html[it-player-hide-cards=true] .ytp-ce-video, +html[it-player-hide-cards=true] .ytp-cards-button, +html[it-player-hide-cards=true] .ytp-cards-teaser +{ + display: none; +} + + +/*------------------------------------------------------------------------------ +2.2.3 SHOW CARDS ON MOUSE HOVER +------------------------------------------------------------------------------*/ + +html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-ce-element, +html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-ce-video, +html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-cards-button, +html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-cards-teaser +{ + display: none; +} + +html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-ce-element, +html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-ce-video, +html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-cards-button, +html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-cards-teaser +{ + display: block; +} + + +/*------------------------------------------------------------------------------ +2.2.4 PLAYER SIZE +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +# VARIABLES +------------------------------------------------------------------------------*/ + +/* ---- HEADER --------------------------------------------------------------*/ + +/* ---- NORMAL --------------------------------------------------------------*/ + +html[it-page-type=video]:not([it-header-position]) ytd-app, +html[it-page-type=video][it-header-position=normal] ytd-app, +html[it-page-type=video][it-header-position=static] ytd-app +{ + --it-header-size: 56px; +} + +html[it-page-type=video]:not([it-header-position]) ytd-watch-flexy:not([theater]), +html[it-page-type=video][it-header-position=normal] ytd-watch-flexy:not([theater]), +html[it-page-type=video][it-header-position=static] ytd-watch-flexy:not([theater]) +{ + --it-header-size: 104px; +} + +html[it-page-type=video]:not([it-header-position]) div#page, +html[it-page-type=video][it-header-position=normal] div#page, +html[it-page-type=video][it-header-position=static] div#page +{ + --it-header-size: 50px; +} + +html[it-page-type=video]:not([it-header-position]) div#page:not(.watch-wide), +html[it-page-type=video][it-header-position=normal] div#page:not(.watch-wide), +html[it-page-type=video][it-header-position=static] div#page:not(.watch-wide) +{ + --it-header-size: 70px; +} + + +/* ---- HIDDEN ---------------------------------------------------------------*/ + +html[it-page-type=video][it-header-position=hidden], +html[it-page-type=video][it-header-position=hidden_on_video_page] +{ + --it-header-size: 0px; +} + +html[it-page-type=video][it-header-position=hidden] ytd-watch-flexy:not([theater]), +html[it-page-type=video][it-header-position=hidden_on_video_page] ytd-watch-flexy:not([theater]) +{ + --it-header-size: 48px; +} + +html[it-page-type=video][it-header-position=hidden] div#page, +html[it-page-type=video][it-header-position=hidden_on_video_page] div#page +{ + --it-header-size: 0px; +} + +html[it-page-type=video][it-header-position=hidden] div#page:not(.watch-wide), +html[it-page-type=video][it-header-position=hidden_on_video_page] div#page:not(.watch-wide) +{ + --it-header-size: 20px; +} + + +/* ---- HOVER ----------------------------------------------------------------*/ + +html[it-page-type=video][it-header-position=hover], +html[it-page-type=video][it-header-position=hover_on_video_page] +{ + --it-header-size: 14px; +} + +html[it-page-type=video][it-header-position=hover] ytd-watch-flexy:not([theater]), +html[it-page-type=video][it-header-position=hover_on_video_page] ytd-watch-flexy:not([theater]) +{ + --it-header-size: 62px; +} + +html[it-page-type=video][it-header-position=hover] div#page, +html[it-page-type=video][it-header-position=hover_on_video_page] div#page +{ + --it-header-size: 12px; +} + +html[it-page-type=video][it-header-position=hover] div#page:not(.watch-wide), +html[it-page-type=video][it-header-position=hover_on_video_page] div#page:not(.watch-wide) +{ + --it-header-size: 32px; +} + +html[it-page-type=video][it-header-position=hover] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container, +html[it-page-type=video][it-header-position=hover_on_video_page] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container +{ + margin-top: 14px; +} + +html[it-page-type=video][it-header-position=hover] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen), +html[it-page-type=video][it-header-position=hover_on_video_page] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen) +{ + margin-top: 12px; +} + + +/* ---- FIXED PLAYER SIZE ----------------------------------------------------*/ + +html[it-page-type=video][it-player-size='240p'] *, +html[it-page-type=video][it-player-size='360p'] *, +html[it-page-type=video][it-player-size='480p'] *, +html[it-page-type=video][it-player-size='576p'] *, +html[it-page-type=video][it-player-size='720p'] *, +html[it-page-type=video][it-player-size='1080p'] *, +html[it-page-type=video][it-player-size='1440p'] *, +html[it-page-type=video][it-player-size='2160p'] * +{ + --it-header-size: 0px !important; +} + + +/* ---- SIZES ----------------------------------------------------------------*/ + +html[it-page-type=video][it-player-size='240p'] +{ + --it-player-size: 240px; +} + +html[it-page-type=video][it-player-size='360p'] +{ + --it-player-size: 360px; +} + +html[it-page-type=video][it-player-size='480p'] +{ + --it-player-size: 480px; +} + +html[it-page-type=video][it-player-size='576p'] +{ + --it-player-size: 576px; +} + +html[it-page-type=video][it-player-size='720p'] +{ + --it-player-size: 720px; +} + +html[it-page-type=video][it-player-size='1080p'] +{ + --it-player-size: 1080px; +} + +html[it-page-type=video][it-player-size='1440p'] +{ + --it-player-size: 1440px; +} + +html[it-page-type=video][it-player-size='2160p'] +{ + --it-player-size: 2160px; +} + +html[it-page-type=video][it-player-size='full_window'] +{ + --it-player-size: 100vh; +} + +html[it-page-type=video][it-player-size='fit_to_window'] +{ + --it-player-size: 100vh; +} + + +/*------------------------------------------------------------------------------ +# ELEMENTS +------------------------------------------------------------------------------*/ + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-container-inner +{ + padding-top: calc(var(--it-player-size) - var(--it-header-size)) !important; +} + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container, +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container +{ + width: auto !important; + height: calc(var(--it-player-size) - var(--it-header-size)) !important; + min-height: auto !important; + max-height: 100vh !important; +} + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player +{ + background: #000 !important; +} + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-container +{ + position: absolute !important; + + display: flex !important; + + width: 100% !important; + height: 100% !important; + + justify-content: center !important; + align-items: center !important; +} + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video +{ + position: static !important; + top: 0 !important; + left: 0 !important; + + width: auto !important; + max-width: 100% !important; + height: calc(var(--it-player-size) - var(--it-header-size)) !important; +} + + +/*FIT TO WINDOW*/ + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-theater-container +{ + background: transparent !important; +} + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) +{ + display: table !important; + overflow: visible !important; + + width: auto !important; + margin: auto !important; +} + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-chrome-bottom +{ + width: calc(100% - 24px) !important; +} + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .html5-video-container +{ + position: static !important; + + display: inline-block !important; + + width: auto !important; +} + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video +{ + position: static !important; + + width: auto !important; + max-width: 100vw !important; +} + +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-iv-video-content +{ + pointer-events: none !important; +} + +html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, +html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player, +html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, +html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player +{ + margin-top: 14px !important; +} + + +/*------------------------------------------------------------------------------ +2.2.5 PLAYER COLOR +------------------------------------------------------------------------------*/ + +html[it-player-color='pink'] +{ + --it-player-color: #e91e63; +} + +html[it-player-color='purple'] +{ + --it-player-color: #9c27b0; +} + +html[it-player-color='deep_purple'] +{ + --it-player-color: #673ab7; +} + +html[it-player-color='indigo'] +{ + --it-player-color: #3f51b5; +} + +html[it-player-color='blue'] +{ + --it-player-color: #1e88e5; +} + +html[it-player-color='light_blue'] +{ + --it-player-color: #03a9f4; +} + +html[it-player-color='cyan'] +{ + --it-player-color: #00bcd4; +} + +html[it-player-color='teal'] +{ + --it-player-color: #009688; +} + +html[it-player-color='green'] +{ + --it-player-color: #4caf50; +} + +html[it-player-color='light_green'] +{ + --it-player-color: #8bc34a; +} + +html[it-player-color='lime'] +{ + --it-player-color: #cddc39; +} + +html[it-player-color='yellow'] +{ + --it-player-color: #ffeb3b; +} + +html[it-player-color='amber'] +{ + --it-player-color: #ffc107; +} + +html[it-player-color='orange'] +{ + --it-player-color: #ff9800; +} + +html[it-player-color='deep_orange'] +{ + --it-player-color: #ff5722; +} + +html[it-player-color='brown'] +{ + --it-player-color: #795548; +} + +html[it-player-color='blue_gray'] +{ + --it-player-color: #607d8b; +} + +html[it-player-color='white'] +{ + --it-player-color: #fff; +} + +html[it-player-color]:not([it-player-color='red']) .ytp-play-progress, +html[it-player-color]:not([it-player-color='red']) .ytp-scrubber-button, +html[it-player-color]:not([it-player-color='red']) .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, +html[it-player-color]:not([it-player-color='red']) .ytp-settings-button.ytp-hd-quality-badge:after +{ + background-color: var(--it-player-color) !important; +} + +html[it-player-color]([it-player-color='red']) .ytp-swatch-color +{ + color: var(--it-player-color) !important; +} + + +/*------------------------------------------------------------------------------ +2.2.6 TRANSPARENT BACKGROUND +------------------------------------------------------------------------------*/ + +[it-player-transparent-background=true] #player-theater-container, +[it-player-transparent-background=true] #theater-background, +[it-player-transparent-background=true] #player-api, +[it-player-transparent-background=true] .player-api, +[it-player-transparent-background=true] #movie_player, +[it-player-transparent-background=true] #player-container, +[it-player-transparent-background=true] #movie_player video +{ + background-color: transparent !important; +} + + +/*------------------------------------------------------------------------------ +2.2.7 HIDE ENDSCREEN +------------------------------------------------------------------------------*/ + +html[it-player-hide-endscreen=true] .html5-endscreen +{ + display: none !important; +} + + +/*------------------------------------------------------------------------------ +2.2.8 HIDE "SCROLL FOR DETAILS" +------------------------------------------------------------------------------*/ + +html[it-hide-scroll-for-details=true] button.ytp-fullerscreen-edu-button +{ + display: none !important; +} + +html[it-hide-scroll-for-details=true] ytd-app[scrolling_] +{ + overflow: hidden !important; +} + + +/*------------------------------------------------------------------------------ +2.2.9 ALWAYS SHOW PROGRESS BAR +------------------------------------------------------------------------------*/ + +html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom +{ + opacity: 1 !important; +} + +html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-chrome-controls +{ + opacity: 0 !important; +} + +html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-progress-bar-container +{ + bottom: 0 !important; +} + + +/*------------------------------------------------------------------------------ +2.3 SIDEBAR +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +2.3.1 LIVECHAT +------------------------------------------------------------------------------*/ + +html[it-livechat=hidden] ytd-live-chat-frame#chat, +html[it-livechat=hidden] div#watch-sidebar-live-chat +{ + display: none !important; +} + + +/*------------------------------------------------------------------------------ +2.3.2 HIDE PLAYLIST +------------------------------------------------------------------------------*/ + +html[it-hide-playlist=true] ytd-playlist-panel-renderer#playlist, +html[it-hide-playlist=true] div#player-playlist, +html[it-hide-playlist=true] #placeholder-playlist +{ + position: absolute !important; + + width: 0 !important; + height: 0 !important; + + pointer-events: none !important; + + opacity: 0 !important; +} + + +/*------------------------------------------------------------------------------ +2.3.3 RELATIVE VIDEOS +------------------------------------------------------------------------------*/ + +html[it-related-videos=hidden] div#related, +html[it-related-videos=hidden] div#watch7-sidebar-contents, +html[it-related-videos=collapsed].related-videos-collapsed #watch7-sidebar-modules, +html[it-related-videos=collapsed].related-videos-collapsed #related > *:not(#improvedtube-collapsed-related-videos), +html[it-related-videos=collapsed]:not(.related-videos-collapsed) #improvedtube-collapsed-related-videos .show-more-text, +html[it-related-videos=collapsed].related-videos-collapsed #improvedtube-collapsed-related-videos .show-less-text +{ + display: none !important; +} + +#improvedtube-collapsed-related-videos +{ + font-family: inherit; + font-size: 12px; + font-weight: 500; + + box-sizing: border-box; + width: 100%; + margin: 0 0 3rem; + padding: 1rem 0; + + cursor: pointer; + letter-spacing: .007px; + text-transform: uppercase; + + color: var(--yt-expand-color); + border: none; + border-bottom: 1px solid var(--yt-spec-10-percent-layer); + outline: none; + background: transparent; +} + +#watch7-sidebar #improvedtube-collapsed-related-videos +{ + font-size: 12px; + font-weight: 500; + + display: block; + + width: 95%; + height: 100%; + margin: 0 auto 15px !important; + padding: 10px 0; + + cursor: pointer; + text-align: center; + + color: #333; + border: 1px solid #d3d3d3; + border-color: #c6c6c6; + outline: 0; + background-color: #f8f8f8; + background-image: linear-gradient(to top, #f0f0f0 0, #f8f8f8 100%); + box-shadow: inset 0 1px 0 #ddd; +} + + +/*------------------------------------------------------------------------------ +2.4 DETAILS +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +2.4.1 HIDE DETAILS +------------------------------------------------------------------------------*/ + +html[it-hide-details=true] #watch-header, +html[it-hide-details=true] #watch-action-panels, +html[it-hide-details=true] #action-panel-details, +html[it-hide-details=true] #primary-inner > #info, +html[it-hide-details=true] #primary-inner > #meta +{ + display: none !important; +} + + +/*------------------------------------------------------------------------------ +2.4.2 DESCRIPTION +------------------------------------------------------------------------------*/ + +html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, +html[it-description=hidden] div#action-panel-details, +html[it-description=expanded] #meta-contents ytd-expander[collapsed] paper-button, +html[it-description=expanded] #action-panel-details button +{ + display: none !important; +} + +html[it-description=expanded] #meta-contents ytd-expander[collapsed] > #content.ytd-expander, +html[it-description=expanded] #watch-description-text +{ + max-height: unset !important; +} + +html[it-description=expanded] .yt-uix-expander .yt-uix-expander-collapsed-body, +html[it-description=expanded] .yt-uix-expander-collapsed .yt-uix-expander-body +{ + display: block !important; +} + + +/*------------------------------------------------------------------------------ +2.4.3 HIDE VIEWS COUNT +------------------------------------------------------------------------------*/ + +html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer, +html[it-hide-views-count=true] #watch7-views-info > .watch-view-count +{ + display: none !important; +} + + +/*------------------------------------------------------------------------------ +2.4.4 Likes +------------------------------------------------------------------------------*/ + +[it-likes=hidden] #watch8-sentiment-actions > .like-button-renderer, +[it-likes=hidden] .video-extras-sparkbar-likes, +[it-likes=hidden] .video-extras-sparkbar-dislikes, +[it-likes=hidden] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(1), +[it-likes=hidden] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(2), +[it-likes=hidden] #sentiment.ytd-video-primary-info-renderer +{ + visibility: hidden !important; + + pointer-events: none !important; +} + +[it-likes=icons_only] #watch8-sentiment-actions > .like-button-renderer button > span, +[it-likes=icons_only] .video-extras-sparkbar-likes, +[it-likes=icons_only] .video-extras-sparkbar-dislikes, +[it-likes=icons_only] #top-level-buttons ytd-toggle-button-renderer:nth-child(1) yt-formatted-string, +[it-likes=icons_only] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) yt-formatted-string, +[it-likes=icons_only] #sentiment.ytd-video-primary-info-renderer +{ + visibility: hidden !important; + + pointer-events: none !important; +} + +[it-likes=icons_only] #text.style-scope.ytd-toggle-button-renderer.style-text, +[it-likes=icons_only] #text.style-scope.ytd-toggle-button-renderer.style-default-active +{ + visibility: hidden !important; +} + +[it-likes=icons_only] .like-button-renderer-like-button, +[it-likes=icons_only] .like-button-renderer-dislike-button +{ + color: transparent !important; +} + + +/*------------------------------------------------------------------------------ +2.4.5 SHOW DISLIKE RED COLOR +------------------------------------------------------------------------------*/ + +[it-red-dislike-button=true] #top-level-buttons > ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active > a +{ + color: #fc0000 !important; +} + + +/*------------------------------------------------------------------------------ +2.5 COMMENTS +------------------------------------------------------------------------------*/ + +html[it-comments=hidden] ytd-comments#comments, +html[it-comments=hidden] div#watch-discussion, +html[it-comments=collapsed].comments-collapsed #comment-section-renderer-items + button, +html[it-comments=collapsed]:not(.comments-collapsed) #improvedtube-collapsed-comments .show-more-text, +html[it-comments=collapsed].comments-collapsed #improvedtube-collapsed-comments .show-less-text, +html[it-comments=collapsed].comments-collapsed #comments #spinner +{ + display: none !important; +} + +html[it-comments=collapsed].comments-collapsed #comment-section-renderer-items, +html[it-comments=collapsed].comments-collapsed #comments #sections #contents +{ + overflow: hidden !important; + + height: 0 !important; +} + +#sections #improvedtube-collapsed-comments +{ + font-family: inherit; + font-size: 12px; + font-weight: 500; + + box-sizing: border-box; + width: 100%; + margin: 0 0 3rem; + padding: 1rem 0; + + cursor: pointer; + letter-spacing: .007px; + text-transform: uppercase; + + color: var(--yt-expand-color); + border: none; + border-bottom: 1px solid var(--yt-spec-10-percent-layer); + outline: none; + background: transparent; +} + + +/*------------------------------------------------------------------------------ +2.6 FOOTER +------------------------------------------------------------------------------*/ + +html[it-hide-footer=true] app-drawer#guide #footer +{ + display: none !important; +} + + +/*------------------------------------------------------------------------------ +3.0 THEMES +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +3.1 BLUELIGHT +------------------------------------------------------------------------------*/ + +html[it-bluelight] +{ + height: auto; +} + +html[it-bluelight], +html[it-bluelight] .html5-video-player.ytp-fullscreen +{ + filter: url(#it-bluelight-filter); +} + +#it-bluelight +{ + position: fixed; + top: 0; + left: 0; + + visibility: hidden; + + width: 100%; + height: 100vh; + + pointer-events: none; +} + +html[it-bluelight][it-youtube-version=old] +{ + background-color: #f1f1f1; +} + +html[it-bluelight][it-youtube-version=old] body +{ + min-height: 100vh; +} + + +/*------------------------------------------------------------------------------ +3.2 DIM +------------------------------------------------------------------------------*/ + +#it-dim +{ + position: fixed; + z-index: 2147483645; + top: 0; + left: 0; + + width: 100%; + height: 100vh; + + pointer-events: none; + + background: #000; +} + +#it-dim-player +{ + position: fixed; + z-index: 2147483645; + top: 0; + left: 0; + + visibility: hidden; + + width: 100%; + height: 100vh; + + pointer-events: none; + + background: #000; +} + +.html5-video-player.ytp-fullscreen #it-dim-player +{ + visibility: visible !important; +} + + +/*------------------------------------------------------------------------------ +3.3 THEMES +------------------------------------------------------------------------------*/ + +[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) +{ + --yt-swatch-primary: #000!important; + --yt-swatch-primary-darker: #000!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #000; + + --yt-spec-brand-background-solid:#000 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#000 !important; + --yt-spec-general-background-b:#000 !important; + --yt-spec-general-background-c:#000 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#aaa !important; + --yt-spec-text-primary-inverse:#aaa !important; + --yt-spec-text-secondary:#aaa !important; + --yt-spec-text-disabled:#aaa !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#aaa !important; + --yt-spec-icon-inactive:#aaa !important; + --yt-spec-icon-disabled:#aaa !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#000000 !important; + --yt-spec-filled-button-text:#aaa !important; + --yt-spec-call-to-action-inverse:#aaa !important; + --yt-spec-brand-icon-active:#aaa !important; + --yt-spec-brand-icon-inactive:#aaa !important; + --yt-spec-brand-button-background:#242424 !important; + --yt-spec-brand-link-text:#aaa !important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#aaa !important; + --yt-spec-wordmark-text:#aaa !important; + --yt-spec-10-percent-layer:#242424 !important; + --yt-spec-selected-nav-text:#aaa !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; +} +html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo +{ + -webkit-filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); +} +[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead +{ + background: #000!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; +} +[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) +{ + --yt-live-chat-action-panel-background-color: #000; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; +} +[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] +{ + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #000; + --yt-playlist-background-item: #000; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #000; + --paper-listbox-background-color: #000; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #000; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #000; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #000; + --yt-menu-focus-background-color: #000; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #000; + --yt-main-app-background: #000; + --yt-main-app-background-tmp: #000; + --yt-guide-background: #000; + --yt-dialog-background: #000; + --yt-searchbox-background: #000!important; + --yt-channel-header-background: #000; + --yt-sidebar-background: #000; + --yt-transcript-background: #000; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #000; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #000; + --yt-blue-suggestive: transparent; +} + + + +@media (prefers-color-scheme: dark) { + [it-black-theme=true][it-schedule=system_peference_dark] + { + --yt-swatch-primary: #000!important; + --yt-swatch-primary-darker: #000!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #000; + + --yt-spec-brand-background-solid:#000 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#000 !important; + --yt-spec-general-background-b:#000 !important; + --yt-spec-general-background-c:#000 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#aaa !important; + --yt-spec-text-primary-inverse:#aaa !important; + --yt-spec-text-secondary:#aaa !important; + --yt-spec-text-disabled:#aaa !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#aaa !important; + --yt-spec-icon-inactive:#aaa !important; + --yt-spec-icon-disabled:#aaa !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#000000 !important; + --yt-spec-filled-button-text:#aaa !important; + --yt-spec-call-to-action-inverse:#aaa !important; + --yt-spec-brand-icon-active:#aaa !important; + --yt-spec-brand-icon-inactive:#aaa !important; + --yt-spec-brand-button-background:#242424 !important; + --yt-spec-brand-link-text:#aaa !important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#aaa !important; + --yt-spec-wordmark-text:#aaa !important; + --yt-spec-10-percent-layer:#242424 !important; + --yt-spec-selected-nav-text:#aaa !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + html[it-black-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo + { + -webkit-filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); + } + [it-black-theme=true][it-schedule=system_peference_dark] ytd-masthead + { + background: #000!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #000; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), + html[it-black-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], + [it-black-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #000; + --yt-playlist-background-item: #000; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #000; + --paper-listbox-background-color: #000; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #000; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #000; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #000; + --yt-menu-focus-background-color: #000; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #000; + --yt-main-app-background: #000; + --yt-main-app-background-tmp: #000; + --yt-guide-background: #000; + --yt-dialog-background: #000; + --yt-searchbox-background: #000!important; + --yt-channel-header-background: #000; + --yt-sidebar-background: #000; + --yt-transcript-background: #000; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #000; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #000; + --yt-blue-suggestive: transparent; + } +} + + + + + +@media (prefers-color-scheme: light) { + [it-black-theme=true][it-schedule=system_peference_light] + { + --yt-swatch-primary: #000!important; + --yt-swatch-primary-darker: #000!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #000; + + --yt-spec-brand-background-solid:#000 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#000 !important; + --yt-spec-general-background-b:#000 !important; + --yt-spec-general-background-c:#000 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#aaa !important; + --yt-spec-text-primary-inverse:#aaa !important; + --yt-spec-text-secondary:#aaa !important; + --yt-spec-text-disabled:#aaa !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#aaa !important; + --yt-spec-icon-inactive:#aaa !important; + --yt-spec-icon-disabled:#aaa !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#000000 !important; + --yt-spec-filled-button-text:#aaa !important; + --yt-spec-call-to-action-inverse:#aaa !important; + --yt-spec-brand-icon-active:#aaa !important; + --yt-spec-brand-icon-inactive:#aaa !important; + --yt-spec-brand-button-background:#242424 !important; + --yt-spec-brand-link-text:#aaa !important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#aaa !important; + --yt-spec-wordmark-text:#aaa !important; + --yt-spec-10-percent-layer:#242424 !important; + --yt-spec-selected-nav-text:#aaa !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + html[it-black-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo + { + -webkit-filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); + } + [it-black-theme=true][it-schedule=system_peference_light] ytd-masthead + { + background: #000!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #000; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), + html[it-black-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], + [it-black-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #000; + --yt-playlist-background-item: #000; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #000; + --paper-listbox-background-color: #000; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #000; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #000; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #000; + --yt-menu-focus-background-color: #000; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #000; + --yt-main-app-background: #000; + --yt-main-app-background-tmp: #000; + --yt-guide-background: #000; + --yt-dialog-background: #000; + --yt-searchbox-background: #000!important; + --yt-channel-header-background: #000; + --yt-sidebar-background: #000; + --yt-transcript-background: #000; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #000; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #000; + --yt-blue-suggestive: transparent; + } +} + +[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) +{ + --yt-swatch-primary: #d44d5c!important; + --yt-swatch-primary-darker: #d44d5c!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #734; + + --yt-spec-brand-background-solid:#d44d5c !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#d44d5c !important; + --yt-spec-general-background-b:#d44d5c !important; + --yt-spec-general-background-c:#d44d5c !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:rgb(255,255,255) !important; + --yt-spec-text-primary-inverse:rgb(255,255,255) !important; + --yt-spec-text-secondary:rgb(255,255,255) !important; + --yt-spec-text-disabled:rgb(255,255,255) !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:rgb(255,255,255) !important; + --yt-spec-icon-inactive:rgb(255,255,255) !important; + --yt-spec-icon-disabled:rgb(255,255,255) !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#d44d5c !important; + --yt-spec-filled-button-text:rgb(255,255,255) !important; + --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; + --yt-spec-brand-icon-active:rgb(255,255,255) !important; + --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:rgb(255,255,255)!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; + --yt-spec-wordmark-text:rgb(255,255,255) !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:rgb(255,255,255) !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; +} +[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead +{ + background: #734!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; +} +[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) +{ + --yt-live-chat-action-panel-background-color: #d44d5c; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; +} +[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] +{ + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #d44d5c; + --yt-playlist-background-item: #d44d5c; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #d44d5c; + --paper-listbox-background-color: #d44d5c; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #d44d5c; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #d44d5c; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #d44d5c; + --yt-menu-focus-background-color: #d44d5c; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #d44d5c; + --yt-main-app-background: #d44d5c; + --yt-main-app-background-tmp: #d44d5c; + --yt-guide-background: #d44d5c; + --yt-dialog-background: #734; + --yt-searchbox-background: #672c3b; + --yt-channel-header-background: #d44d5c; + --yt-sidebar-background: #d44d5c; + --yt-transcript-background: #d44d5c; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #d44d5c; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #d44d5c; + --yt-blue-suggestive: transparent; + --yt-spec-text-secondary: #f5dbe2; +} +html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo +{ + -webkit-filter: grayscale(1) brightness(4); + filter: grayscale(1) brightness(4); +} + + + + + +@media (prefers-color-scheme: dark) { + [it-dawn-theme=true][it-schedule=system_peference_dark] + { + --yt-swatch-primary: #d44d5c!important; + --yt-swatch-primary-darker: #d44d5c!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #734; + + --yt-spec-brand-background-solid:#d44d5c !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#d44d5c !important; + --yt-spec-general-background-b:#d44d5c !important; + --yt-spec-general-background-c:#d44d5c !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:rgb(255,255,255) !important; + --yt-spec-text-primary-inverse:rgb(255,255,255) !important; + --yt-spec-text-secondary:rgb(255,255,255) !important; + --yt-spec-text-disabled:rgb(255,255,255) !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:rgb(255,255,255) !important; + --yt-spec-icon-inactive:rgb(255,255,255) !important; + --yt-spec-icon-disabled:rgb(255,255,255) !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#d44d5c !important; + --yt-spec-filled-button-text:rgb(255,255,255) !important; + --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; + --yt-spec-brand-icon-active:rgb(255,255,255) !important; + --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:rgb(255,255,255)!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; + --yt-spec-wordmark-text:rgb(255,255,255) !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:rgb(255,255,255) !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + [it-dawn-theme=true][it-schedule=system_peference_dark] ytd-masthead + { + background: #734!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #d44d5c; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), + html[it-dawn-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], + [it-dawn-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #d44d5c; + --yt-playlist-background-item: #d44d5c; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #d44d5c; + --paper-listbox-background-color: #d44d5c; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #d44d5c; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #d44d5c; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #d44d5c; + --yt-menu-focus-background-color: #d44d5c; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #d44d5c; + --yt-main-app-background: #d44d5c; + --yt-main-app-background-tmp: #d44d5c; + --yt-guide-background: #d44d5c; + --yt-dialog-background: #734; + --yt-searchbox-background: #672c3b; + --yt-channel-header-background: #d44d5c; + --yt-sidebar-background: #d44d5c; + --yt-transcript-background: #d44d5c; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #d44d5c; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #d44d5c; + --yt-blue-suggestive: transparent; + --yt-spec-text-secondary: #f5dbe2; + } + html[it-dawn-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo + { + -webkit-filter: grayscale(1) brightness(4); + filter: grayscale(1) brightness(4); + } +} + + + + + +@media (prefers-color-scheme: light) { + [it-dawn-theme=true][it-schedule=system_peference_light] + { + --yt-swatch-primary: #d44d5c!important; + --yt-swatch-primary-darker: #d44d5c!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #734; + + --yt-spec-brand-background-solid:#d44d5c !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#d44d5c !important; + --yt-spec-general-background-b:#d44d5c !important; + --yt-spec-general-background-c:#d44d5c !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:rgb(255,255,255) !important; + --yt-spec-text-primary-inverse:rgb(255,255,255) !important; + --yt-spec-text-secondary:rgb(255,255,255) !important; + --yt-spec-text-disabled:rgb(255,255,255) !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:rgb(255,255,255) !important; + --yt-spec-icon-inactive:rgb(255,255,255) !important; + --yt-spec-icon-disabled:rgb(255,255,255) !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#d44d5c !important; + --yt-spec-filled-button-text:rgb(255,255,255) !important; + --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; + --yt-spec-brand-icon-active:rgb(255,255,255) !important; + --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:rgb(255,255,255)!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; + --yt-spec-wordmark-text:rgb(255,255,255) !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:rgb(255,255,255) !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + [it-dawn-theme=true][it-schedule=system_peference_light] ytd-masthead + { + background: #734!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #d44d5c; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), + html[it-dawn-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], + [it-dawn-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #d44d5c; + --yt-playlist-background-item: #d44d5c; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #d44d5c; + --paper-listbox-background-color: #d44d5c; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #d44d5c; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #d44d5c; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #d44d5c; + --yt-menu-focus-background-color: #d44d5c; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #d44d5c; + --yt-main-app-background: #d44d5c; + --yt-main-app-background-tmp: #d44d5c; + --yt-guide-background: #d44d5c; + --yt-dialog-background: #734; + --yt-searchbox-background: #672c3b; + --yt-channel-header-background: #d44d5c; + --yt-sidebar-background: #d44d5c; + --yt-transcript-background: #d44d5c; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #d44d5c; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #d44d5c; + --yt-blue-suggestive: transparent; + --yt-spec-text-secondary: #f5dbe2; + } + html[it-dawn-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo + { + -webkit-filter: grayscale(1) brightness(4); + filter: grayscale(1) brightness(4); + } + +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) +{ + --yt-swatch-header-primary: rgb(34,38,42)!important; + --yt-swatch-primary: rgb(34,38,42)!important; + --yt-swatch-primary-darker: rgb(28,32,36)!important; + --yt-swatch-text: rgb(200,200,200)!important; + --yt-swatch-important-text: rgb(200,200,200)!important; + --yt-swatch-input-text: rgba(200,200,200,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(200,200,200)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; +} + +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #masthead-search-term +{ + border: 1px solid #444!important; + border-right: none!important; +} +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light])[youtube-version=old] body +{ + height: auto; +} +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) +{ + background: var(--yt-swatch-primary-darker)!important; +} +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead +{ + background: #232323!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; +} +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) +{ + --yt-live-chat-action-panel-background-color: #282828; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; +} +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) +{ + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); + --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: hsl(0, 0%, 14%); + --paper-listbox-background-color: hsl(0, 0%, 14%); + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: hsl(0, 0%, 14%); + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); + --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: hsl(0, 0%, 7%); + --yt-main-app-background: hsl(0, 0%, 7%); + --yt-main-app-background-tmp: hsl(0, 0%, 7%); + --yt-guide-background: hsl(0, 0%, 11%); + --yt-dialog-background: hsl(0, 0%, 14%); + --yt-searchbox-background: hsl(0, 0%, 7%); + --yt-channel-header-background: hsla(0, 0%, 11%, .8); + --yt-sidebar-background: hsla(0, 0%, 11%, .8); + --yt-transcript-background: hsl(0, 0%, 11%); + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); + --yt-blue-suggestive: transparent; +} + +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light])[youtube-version=old] body +{ + height: auto!important; + + background: rgb(19,19,19)!important; +} + + + + + +@media (prefers-color-scheme: dark) { + [it-youtube-version=old][it-default-theme=true][it-schedule=system_peference_dark] + { + --yt-swatch-header-primary: rgb(34,38,42)!important; + --yt-swatch-primary: rgb(34,38,42)!important; + --yt-swatch-primary-darker: rgb(28,32,36)!important; + --yt-swatch-text: rgb(200,200,200)!important; + --yt-swatch-important-text: rgb(200,200,200)!important; + --yt-swatch-input-text: rgba(200,200,200,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(200,200,200)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + } + + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] #masthead-search-term + { + border: 1px solid #444!important; + border-right: none!important; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] html[youtube-version=old] body + { + height: auto; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] + { + background: var(--yt-swatch-primary-darker)!important; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] ytd-masthead + { + background: #232323!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #282828; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) + { + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); + --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: hsl(0, 0%, 14%); + --paper-listbox-background-color: hsl(0, 0%, 14%); + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: hsl(0, 0%, 14%); + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); + --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: hsl(0, 0%, 7%); + --yt-main-app-background: hsl(0, 0%, 7%); + --yt-main-app-background-tmp: hsl(0, 0%, 7%); + --yt-guide-background: hsl(0, 0%, 11%); + --yt-dialog-background: hsl(0, 0%, 14%); + --yt-searchbox-background: hsl(0, 0%, 7%); + --yt-channel-header-background: hsla(0, 0%, 11%, .8); + --yt-sidebar-background: hsla(0, 0%, 11%, .8); + --yt-transcript-background: hsl(0, 0%, 11%); + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); + --yt-blue-suggestive: transparent; + } + + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark][youtube-version=old] body + { + height: auto!important; + + background: rgb(19,19,19)!important; + } +} + + + + + +@media (prefers-color-scheme: light) { + [it-youtube-version=old][it-default-theme=true][it-schedule=system_peference_light] + { + --yt-swatch-header-primary: rgb(34,38,42)!important; + --yt-swatch-primary: rgb(34,38,42)!important; + --yt-swatch-primary-darker: rgb(28,32,36)!important; + --yt-swatch-text: rgb(200,200,200)!important; + --yt-swatch-important-text: rgb(200,200,200)!important; + --yt-swatch-input-text: rgba(200,200,200,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(200,200,200)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + } + + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] #masthead-search-term + { + border: 1px solid #444!important; + border-right: none!important; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] html[youtube-version=old] body + { + height: auto; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] + { + background: var(--yt-swatch-primary-darker)!important; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] ytd-masthead + { + background: #232323!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #282828; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) + { + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); + --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: hsl(0, 0%, 14%); + --paper-listbox-background-color: hsl(0, 0%, 14%); + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: hsl(0, 0%, 14%); + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); + --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: hsl(0, 0%, 7%); + --yt-main-app-background: hsl(0, 0%, 7%); + --yt-main-app-background-tmp: hsl(0, 0%, 7%); + --yt-guide-background: hsl(0, 0%, 11%); + --yt-dialog-background: hsl(0, 0%, 14%); + --yt-searchbox-background: hsl(0, 0%, 7%); + --yt-channel-header-background: hsla(0, 0%, 11%, .8); + --yt-sidebar-background: hsla(0, 0%, 11%, .8); + --yt-transcript-background: hsl(0, 0%, 11%); + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); + --yt-blue-suggestive: transparent; + } + + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light][youtube-version=old] body + { + height: auto!important; + + background: rgb(19,19,19)!important; + } +} + +[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) +{ + --yt-swatch-primary: #faf9f9!important; + --yt-swatch-primary-darker: #faf9f9!important; + --yt-swatch-text: #555!important; + --yt-swatch-important-text: #555!important; + --yt-swatch-input-text: #555!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: #555!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #bee3db; + + --yt-spec-brand-background-solid:#faf9f9 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#faf9f9 !important; + --yt-spec-general-background-b:#faf9f9 !important; + --yt-spec-general-background-c:#faf9f9 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#555 !important; + --yt-spec-text-primary-inverse:#555 !important; + --yt-spec-text-secondary:#555 !important; + --yt-spec-text-disabled:#555 !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#555 !important; + --yt-spec-icon-inactive:#555 !important; + --yt-spec-icon-disabled:#555 !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#faf9f9 !important; + --yt-spec-filled-button-text:#555 !important; + --yt-spec-call-to-action-inverse:#555 !important; + --yt-spec-brand-icon-active:#555 !important; + --yt-spec-brand-icon-inactive:#555 !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#555!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#555 !important; + --yt-spec-wordmark-text:#555 !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#555 !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; +} +[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead +{ + background: #bee3db!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: #555!important; + --yt-swatch-important-text: #555!important; + --yt-swatch-input-text: #555!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: #555!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; +} +[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) +{ + --yt-live-chat-action-panel-background-color: #faf9f9; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: #555; + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; +} +[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] +{ + --yt-spec-icon-inactive: #555; + --yt-spec-text-primary: #555; + --ytd-searchbox-border-color: #555; + --ytd-searchbox-legacy-border-color: #555; + --ytd-searchbox-legacy-border-shadow-color: #555; + --ytd-searchbox-legacy-button-color: #555; + --ytd-searchbox-legacy-button-border-color: #555; + --ytd-searchbox-legacy-button-focus-color: #555; + --ytd-searchbox-legacy-button-hover-color: #555; + --ytd-searchbox-legacy-button-hover-border-color: #555; + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: #555; + --ytd-moderation-panel-hover: #555; + --ytd-moderation-panel-comment-text: #555; + --ytd-moderation-panel-comment-metadata-text: #555; + --ytd-moderation-icon-color: #555; + --ytd-moderation-icon-hover-color: #555; + --ytd-comment-text-color: #555; + --ytd-comment-metadata-text-color: #555; + --ytd-watch-card-secondary-text-color: #555; + --ytd-watch-card-album-header-background: #555; + --ytd-backstage-metadata-text-color: #555; + --ytd-backstage-video-link-background-color: #555; + --ytd-backstage-image-alert-color: #555; + --ytd-backstage-cancel-background-color: #555; + --ytd-backstage-cancel-color: #555; + --ytd-backstage-creationbox-background-color: #555; + --ytd-backstage-creationbox-background-color-focus: #555; + --ytd-backstage-creationbox-inactive-color: #555; + --ytd-backstage-creationbox-text-color: #555; + --ytd-backstage-creationbox-input-text-color: #555; + --ytd-backstage-creationbox-disabled-button-color: #555; + --ytd-backstage-creationbox-disabled-button-text-color: #555; + --ytd-backstage-attachment-icon-hover-color: #555; + --ytd-sponsorships-background-color-focus: #555; + --ytd-badge-background: #555; + --ytd-badge-disabled-color: #555; + --ytd-collection-badge-color: #555; + --ytd-owner-badge-color: #555; + --ytd-simple-badge-color: #555; + --ytd-ad-badge-text-color: #555; + --ytd-shopping-product-info: #555; + --ytd-toggle-color: #555; + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: #555; + --ytd-transcript-toolbar-background-color: #555; + --ytd-transcript-toolbar-text: #555; + --ytd-video-publish-date-color: #555; + --ytd-vat-notice-text: #555; + --ytd-offer-background-color: #555; + --ytd-video-game-watch-card-logo-color: #555; + --ytd-watch-split-pane-sidebar-background-color: #555; + --yt-std-body-100: #555; + --yt-std-body-200: #555; + --yt-std-body-300: #555; + --yt-std-surface-200: #555; + --yt-std-surface-300: #555; + --yt-std-surface-400: #555; + --yt-primary-color: #555; + --yt-primary-text-color: #555; + --yt-hovered-text-color: #555; + --yt-secondary-text-color: #555; + --yt-tertiary-text-color: #555; + --yt-disabled-text-color: #555; + --yt-placeholder-text-color: #555; + --yt-border-color: #555; + --yt-commentbox-border-inactive: #555; + --yt-commentbox-border-active: #555; + --yt-alert-background: #555; + --yt-paper-button-ink-color: #555; + --yt-icon-color: #555; + --yt-icon-hover-color: #555; + --yt-icon-active-color: #555; + --yt-icon-disabled-color: #555; + --yt-endpoint-color: #555; + --yt-expand-color: #555; + --yt-metadata-color: #555; + --yt-channel-owner: #555; + --yt-placeholder-text: #555; + --yt-playlist-background-header: #faf9f9; + --yt-playlist-background-item: #faf9f9; + --yt-playlist-title-text: #555; + --yt-playlist-message-text: #555; + --yt-playlist-message-text-hover: #555; + --yt-subscribe-button-text-color: #555; + --yt-brand-color: #555; + --yt-button-text-color: #555; + --yt-button-payment-text-color: #555; + --yt-copyright-text: #555; + --yt-guide-entry-hover-background-color: #555; + --yt-thumbnail-placeholder-color: #555; + --yt-primary-disabled-button-text-color: #555; + --yt-featured-channel-title-text-color: #555; + --yt-formatted-string-deemphasize-color: #555; + --paper-menu-background-color: #faf9f9; + --paper-listbox-background-color: #faf9f9; + --paper-menu-color: #555; + --paper-listbox-color: #555; + --paper-dialog-background-color: #faf9f9; + --paper-toggle-button-unchecked-bar-color: #555; + --yt-simple-menu-header-background: #faf9f9; + --yt-item-section-header-color: #555; + --yt-menu-hover-backgound-color: #faf9f9; + --yt-menu-focus-background-color: #faf9f9; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: #555; + --yt-material-searchbox-active: #555; + --yt-material-searchbox-inactive-shadow: #555; + --yt-material-searchbox-active-shadow: #555; + --yt-material-searchbox-inset: #555; + --yt-material-searchbox-text-color: #555; + --yt-app-background: #faf9f9; + --yt-main-app-background: #faf9f9; + --yt-main-app-background-tmp: #faf9f9; + --yt-guide-background: #faf9f9; + --yt-dialog-background: #bee3db; + --yt-searchbox-background: #faf9f9; + --yt-channel-header-background: #faf9f9; + --yt-sidebar-background: #faf9f9; + --yt-transcript-background: #faf9f9; + --yt-chat-bubble-other-border-color: #555; + --yt-chat-bubble-other-background-color: #faf9f9; + --yt-chat-bubble-self-border-color: #555; + --yt-chat-bubble-self-background-color: #faf9f9; + --yt-blue-suggestive: transparent; +} + + + + + +@media (prefers-color-scheme: dark) { + [it-desert-theme=true][it-schedule=system_peference_dark] + { + --yt-swatch-primary: #faf9f9!important; + --yt-swatch-primary-darker: #faf9f9!important; + --yt-swatch-text: #555!important; + --yt-swatch-important-text: #555!important; + --yt-swatch-input-text: #555!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: #555!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #bee3db; + + --yt-spec-brand-background-solid:#faf9f9 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#faf9f9 !important; + --yt-spec-general-background-b:#faf9f9 !important; + --yt-spec-general-background-c:#faf9f9 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#555 !important; + --yt-spec-text-primary-inverse:#555 !important; + --yt-spec-text-secondary:#555 !important; + --yt-spec-text-disabled:#555 !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#555 !important; + --yt-spec-icon-inactive:#555 !important; + --yt-spec-icon-disabled:#555 !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#faf9f9 !important; + --yt-spec-filled-button-text:#555 !important; + --yt-spec-call-to-action-inverse:#555 !important; + --yt-spec-brand-icon-active:#555 !important; + --yt-spec-brand-icon-inactive:#555 !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#555!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#555 !important; + --yt-spec-wordmark-text:#555 !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#555 !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + [it-desert-theme=true][it-schedule=system_peference_dark] ytd-masthead + { + background: #bee3db!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: #555!important; + --yt-swatch-important-text: #555!important; + --yt-swatch-input-text: #555!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: #555!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #faf9f9; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: #555; + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), + html[it-desert-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], + [it-desert-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #555; + --yt-spec-text-primary: #555; + --ytd-searchbox-border-color: #555; + --ytd-searchbox-legacy-border-color: #555; + --ytd-searchbox-legacy-border-shadow-color: #555; + --ytd-searchbox-legacy-button-color: #555; + --ytd-searchbox-legacy-button-border-color: #555; + --ytd-searchbox-legacy-button-focus-color: #555; + --ytd-searchbox-legacy-button-hover-color: #555; + --ytd-searchbox-legacy-button-hover-border-color: #555; + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: #555; + --ytd-moderation-panel-hover: #555; + --ytd-moderation-panel-comment-text: #555; + --ytd-moderation-panel-comment-metadata-text: #555; + --ytd-moderation-icon-color: #555; + --ytd-moderation-icon-hover-color: #555; + --ytd-comment-text-color: #555; + --ytd-comment-metadata-text-color: #555; + --ytd-watch-card-secondary-text-color: #555; + --ytd-watch-card-album-header-background: #555; + --ytd-backstage-metadata-text-color: #555; + --ytd-backstage-video-link-background-color: #555; + --ytd-backstage-image-alert-color: #555; + --ytd-backstage-cancel-background-color: #555; + --ytd-backstage-cancel-color: #555; + --ytd-backstage-creationbox-background-color: #555; + --ytd-backstage-creationbox-background-color-focus: #555; + --ytd-backstage-creationbox-inactive-color: #555; + --ytd-backstage-creationbox-text-color: #555; + --ytd-backstage-creationbox-input-text-color: #555; + --ytd-backstage-creationbox-disabled-button-color: #555; + --ytd-backstage-creationbox-disabled-button-text-color: #555; + --ytd-backstage-attachment-icon-hover-color: #555; + --ytd-sponsorships-background-color-focus: #555; + --ytd-badge-background: #555; + --ytd-badge-disabled-color: #555; + --ytd-collection-badge-color: #555; + --ytd-owner-badge-color: #555; + --ytd-simple-badge-color: #555; + --ytd-ad-badge-text-color: #555; + --ytd-shopping-product-info: #555; + --ytd-toggle-color: #555; + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: #555; + --ytd-transcript-toolbar-background-color: #555; + --ytd-transcript-toolbar-text: #555; + --ytd-video-publish-date-color: #555; + --ytd-vat-notice-text: #555; + --ytd-offer-background-color: #555; + --ytd-video-game-watch-card-logo-color: #555; + --ytd-watch-split-pane-sidebar-background-color: #555; + --yt-std-body-100: #555; + --yt-std-body-200: #555; + --yt-std-body-300: #555; + --yt-std-surface-200: #555; + --yt-std-surface-300: #555; + --yt-std-surface-400: #555; + --yt-primary-color: #555; + --yt-primary-text-color: #555; + --yt-hovered-text-color: #555; + --yt-secondary-text-color: #555; + --yt-tertiary-text-color: #555; + --yt-disabled-text-color: #555; + --yt-placeholder-text-color: #555; + --yt-border-color: #555; + --yt-commentbox-border-inactive: #555; + --yt-commentbox-border-active: #555; + --yt-alert-background: #555; + --yt-paper-button-ink-color: #555; + --yt-icon-color: #555; + --yt-icon-hover-color: #555; + --yt-icon-active-color: #555; + --yt-icon-disabled-color: #555; + --yt-endpoint-color: #555; + --yt-expand-color: #555; + --yt-metadata-color: #555; + --yt-channel-owner: #555; + --yt-placeholder-text: #555; + --yt-playlist-background-header: #faf9f9; + --yt-playlist-background-item: #faf9f9; + --yt-playlist-title-text: #555; + --yt-playlist-message-text: #555; + --yt-playlist-message-text-hover: #555; + --yt-subscribe-button-text-color: #555; + --yt-brand-color: #555; + --yt-button-text-color: #555; + --yt-button-payment-text-color: #555; + --yt-copyright-text: #555; + --yt-guide-entry-hover-background-color: #555; + --yt-thumbnail-placeholder-color: #555; + --yt-primary-disabled-button-text-color: #555; + --yt-featured-channel-title-text-color: #555; + --yt-formatted-string-deemphasize-color: #555; + --paper-menu-background-color: #faf9f9; + --paper-listbox-background-color: #faf9f9; + --paper-menu-color: #555; + --paper-listbox-color: #555; + --paper-dialog-background-color: #faf9f9; + --paper-toggle-button-unchecked-bar-color: #555; + --yt-simple-menu-header-background: #faf9f9; + --yt-item-section-header-color: #555; + --yt-menu-hover-backgound-color: #faf9f9; + --yt-menu-focus-background-color: #faf9f9; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: #555; + --yt-material-searchbox-active: #555; + --yt-material-searchbox-inactive-shadow: #555; + --yt-material-searchbox-active-shadow: #555; + --yt-material-searchbox-inset: #555; + --yt-material-searchbox-text-color: #555; + --yt-app-background: #faf9f9; + --yt-main-app-background: #faf9f9; + --yt-main-app-background-tmp: #faf9f9; + --yt-guide-background: #faf9f9; + --yt-dialog-background: #bee3db; + --yt-searchbox-background: #faf9f9; + --yt-channel-header-background: #faf9f9; + --yt-sidebar-background: #faf9f9; + --yt-transcript-background: #faf9f9; + --yt-chat-bubble-other-border-color: #555; + --yt-chat-bubble-other-background-color: #faf9f9; + --yt-chat-bubble-self-border-color: #555; + --yt-chat-bubble-self-background-color: #faf9f9; + --yt-blue-suggestive: transparent; + } +} + + + + + +@media (prefers-color-scheme: light) { + [it-desert-theme=true][it-schedule=system_peference_light] + { + --yt-swatch-primary: #faf9f9!important; + --yt-swatch-primary-darker: #faf9f9!important; + --yt-swatch-text: #555!important; + --yt-swatch-important-text: #555!important; + --yt-swatch-input-text: #555!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: #555!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #bee3db; + + --yt-spec-brand-background-solid:#faf9f9 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#faf9f9 !important; + --yt-spec-general-background-b:#faf9f9 !important; + --yt-spec-general-background-c:#faf9f9 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#555 !important; + --yt-spec-text-primary-inverse:#555 !important; + --yt-spec-text-secondary:#555 !important; + --yt-spec-text-disabled:#555 !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#555 !important; + --yt-spec-icon-inactive:#555 !important; + --yt-spec-icon-disabled:#555 !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#faf9f9 !important; + --yt-spec-filled-button-text:#555 !important; + --yt-spec-call-to-action-inverse:#555 !important; + --yt-spec-brand-icon-active:#555 !important; + --yt-spec-brand-icon-inactive:#555 !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#555!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#555 !important; + --yt-spec-wordmark-text:#555 !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#555 !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + [it-desert-theme=true][it-schedule=system_peference_light] ytd-masthead + { + background: #bee3db!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: #555!important; + --yt-swatch-important-text: #555!important; + --yt-swatch-input-text: #555!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: #555!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #faf9f9; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: #555; + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), + html[it-desert-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], + [it-desert-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #555; + --yt-spec-text-primary: #555; + --ytd-searchbox-border-color: #555; + --ytd-searchbox-legacy-border-color: #555; + --ytd-searchbox-legacy-border-shadow-color: #555; + --ytd-searchbox-legacy-button-color: #555; + --ytd-searchbox-legacy-button-border-color: #555; + --ytd-searchbox-legacy-button-focus-color: #555; + --ytd-searchbox-legacy-button-hover-color: #555; + --ytd-searchbox-legacy-button-hover-border-color: #555; + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: #555; + --ytd-moderation-panel-hover: #555; + --ytd-moderation-panel-comment-text: #555; + --ytd-moderation-panel-comment-metadata-text: #555; + --ytd-moderation-icon-color: #555; + --ytd-moderation-icon-hover-color: #555; + --ytd-comment-text-color: #555; + --ytd-comment-metadata-text-color: #555; + --ytd-watch-card-secondary-text-color: #555; + --ytd-watch-card-album-header-background: #555; + --ytd-backstage-metadata-text-color: #555; + --ytd-backstage-video-link-background-color: #555; + --ytd-backstage-image-alert-color: #555; + --ytd-backstage-cancel-background-color: #555; + --ytd-backstage-cancel-color: #555; + --ytd-backstage-creationbox-background-color: #555; + --ytd-backstage-creationbox-background-color-focus: #555; + --ytd-backstage-creationbox-inactive-color: #555; + --ytd-backstage-creationbox-text-color: #555; + --ytd-backstage-creationbox-input-text-color: #555; + --ytd-backstage-creationbox-disabled-button-color: #555; + --ytd-backstage-creationbox-disabled-button-text-color: #555; + --ytd-backstage-attachment-icon-hover-color: #555; + --ytd-sponsorships-background-color-focus: #555; + --ytd-badge-background: #555; + --ytd-badge-disabled-color: #555; + --ytd-collection-badge-color: #555; + --ytd-owner-badge-color: #555; + --ytd-simple-badge-color: #555; + --ytd-ad-badge-text-color: #555; + --ytd-shopping-product-info: #555; + --ytd-toggle-color: #555; + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: #555; + --ytd-transcript-toolbar-background-color: #555; + --ytd-transcript-toolbar-text: #555; + --ytd-video-publish-date-color: #555; + --ytd-vat-notice-text: #555; + --ytd-offer-background-color: #555; + --ytd-video-game-watch-card-logo-color: #555; + --ytd-watch-split-pane-sidebar-background-color: #555; + --yt-std-body-100: #555; + --yt-std-body-200: #555; + --yt-std-body-300: #555; + --yt-std-surface-200: #555; + --yt-std-surface-300: #555; + --yt-std-surface-400: #555; + --yt-primary-color: #555; + --yt-primary-text-color: #555; + --yt-hovered-text-color: #555; + --yt-secondary-text-color: #555; + --yt-tertiary-text-color: #555; + --yt-disabled-text-color: #555; + --yt-placeholder-text-color: #555; + --yt-border-color: #555; + --yt-commentbox-border-inactive: #555; + --yt-commentbox-border-active: #555; + --yt-alert-background: #555; + --yt-paper-button-ink-color: #555; + --yt-icon-color: #555; + --yt-icon-hover-color: #555; + --yt-icon-active-color: #555; + --yt-icon-disabled-color: #555; + --yt-endpoint-color: #555; + --yt-expand-color: #555; + --yt-metadata-color: #555; + --yt-channel-owner: #555; + --yt-placeholder-text: #555; + --yt-playlist-background-header: #faf9f9; + --yt-playlist-background-item: #faf9f9; + --yt-playlist-title-text: #555; + --yt-playlist-message-text: #555; + --yt-playlist-message-text-hover: #555; + --yt-subscribe-button-text-color: #555; + --yt-brand-color: #555; + --yt-button-text-color: #555; + --yt-button-payment-text-color: #555; + --yt-copyright-text: #555; + --yt-guide-entry-hover-background-color: #555; + --yt-thumbnail-placeholder-color: #555; + --yt-primary-disabled-button-text-color: #555; + --yt-featured-channel-title-text-color: #555; + --yt-formatted-string-deemphasize-color: #555; + --paper-menu-background-color: #faf9f9; + --paper-listbox-background-color: #faf9f9; + --paper-menu-color: #555; + --paper-listbox-color: #555; + --paper-dialog-background-color: #faf9f9; + --paper-toggle-button-unchecked-bar-color: #555; + --yt-simple-menu-header-background: #faf9f9; + --yt-item-section-header-color: #555; + --yt-menu-hover-backgound-color: #faf9f9; + --yt-menu-focus-background-color: #faf9f9; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: #555; + --yt-material-searchbox-active: #555; + --yt-material-searchbox-inactive-shadow: #555; + --yt-material-searchbox-active-shadow: #555; + --yt-material-searchbox-inset: #555; + --yt-material-searchbox-text-color: #555; + --yt-app-background: #faf9f9; + --yt-main-app-background: #faf9f9; + --yt-main-app-background-tmp: #faf9f9; + --yt-guide-background: #faf9f9; + --yt-dialog-background: #bee3db; + --yt-searchbox-background: #faf9f9; + --yt-channel-header-background: #faf9f9; + --yt-sidebar-background: #faf9f9; + --yt-transcript-background: #faf9f9; + --yt-chat-bubble-other-border-color: #555; + --yt-chat-bubble-other-background-color: #faf9f9; + --yt-chat-bubble-self-border-color: #555; + --yt-chat-bubble-self-background-color: #faf9f9; + --yt-blue-suggestive: transparent; + } +} + +[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) +{ + --yt-swatch-primary: #003459!important; + --yt-swatch-primary-darker: #003459!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #007ea7; + + --yt-spec-brand-background-solid:#003459 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#003459 !important; + --yt-spec-general-background-b:#003459 !important; + --yt-spec-general-background-c:#003459 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#fff !important; + --yt-spec-text-primary-inverse:#fff !important; + --yt-spec-text-secondary:#fff !important; + --yt-spec-text-disabled:#fff !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#fff !important; + --yt-spec-icon-inactive:#fff !important; + --yt-spec-icon-disabled:#fff !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#003459 !important; + --yt-spec-filled-button-text:#fff !important; + --yt-spec-call-to-action-inverse:#fff !important; + --yt-spec-brand-icon-active:#fff !important; + --yt-spec-brand-icon-inactive:#fff !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#fff!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#fff !important; + --yt-spec-wordmark-text:#fff !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#fff !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; +} +html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo +{ + -webkit-filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); +} +[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead +{ + background: #007ea7!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; +} +[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) +{ + --yt-live-chat-action-panel-background-color: #003459; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; +} +[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] +{ + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #003459; + --yt-playlist-background-item: #003459; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #003459; + --paper-listbox-background-color: #003459; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #003459; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #003459; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #003459; + --yt-menu-focus-background-color: #003459; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #003459; + --yt-main-app-background: #003459; + --yt-main-app-background-tmp: #003459; + --yt-guide-background: #003459; + --yt-dialog-background: #007ea7; + --yt-searchbox-background: #003459!important; + --yt-channel-header-background: #003459; + --yt-sidebar-background: #003459; + --yt-transcript-background: #003459; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #003459; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #003459; + --yt-blue-suggestive: transparent; +} + + + + + +@media (prefers-color-scheme: dark) { + [it-night-theme=true][it-schedule=system_peference_dark] + { + --yt-swatch-primary: #003459!important; + --yt-swatch-primary-darker: #003459!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #007ea7; + + --yt-spec-brand-background-solid:#003459 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#003459 !important; + --yt-spec-general-background-b:#003459 !important; + --yt-spec-general-background-c:#003459 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#fff !important; + --yt-spec-text-primary-inverse:#fff !important; + --yt-spec-text-secondary:#fff !important; + --yt-spec-text-disabled:#fff !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#fff !important; + --yt-spec-icon-inactive:#fff !important; + --yt-spec-icon-disabled:#fff !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#003459 !important; + --yt-spec-filled-button-text:#fff !important; + --yt-spec-call-to-action-inverse:#fff !important; + --yt-spec-brand-icon-active:#fff !important; + --yt-spec-brand-icon-inactive:#fff !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#fff!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#fff !important; + --yt-spec-wordmark-text:#fff !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#fff !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + html[it-night-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo + { + -webkit-filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); + } + [it-night-theme=true][it-schedule=system_peference_dark] ytd-masthead + { + background: #007ea7!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #003459; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), + html[it-night-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], + [it-night-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #003459; + --yt-playlist-background-item: #003459; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #003459; + --paper-listbox-background-color: #003459; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #003459; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #003459; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #003459; + --yt-menu-focus-background-color: #003459; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #003459; + --yt-main-app-background: #003459; + --yt-main-app-background-tmp: #003459; + --yt-guide-background: #003459; + --yt-dialog-background: #007ea7; + --yt-searchbox-background: #003459!important; + --yt-channel-header-background: #003459; + --yt-sidebar-background: #003459; + --yt-transcript-background: #003459; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #003459; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #003459; + --yt-blue-suggestive: transparent; + } +} + + + + + +@media (prefers-color-scheme: light) { + [it-night-theme=true][it-schedule=system_peference_light] + { + --yt-swatch-primary: #003459!important; + --yt-swatch-primary-darker: #003459!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #007ea7; + + --yt-spec-brand-background-solid:#003459 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#003459 !important; + --yt-spec-general-background-b:#003459 !important; + --yt-spec-general-background-c:#003459 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#fff !important; + --yt-spec-text-primary-inverse:#fff !important; + --yt-spec-text-secondary:#fff !important; + --yt-spec-text-disabled:#fff !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#fff !important; + --yt-spec-icon-inactive:#fff !important; + --yt-spec-icon-disabled:#fff !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#003459 !important; + --yt-spec-filled-button-text:#fff !important; + --yt-spec-call-to-action-inverse:#fff !important; + --yt-spec-brand-icon-active:#fff !important; + --yt-spec-brand-icon-inactive:#fff !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#fff!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#fff !important; + --yt-spec-wordmark-text:#fff !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#fff !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + html[it-night-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo + { + -webkit-filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); + } + [it-night-theme=true][it-schedule=system_peference_light] ytd-masthead + { + background: #007ea7!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #003459; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), + html[it-night-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], + [it-night-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #003459; + --yt-playlist-background-item: #003459; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #003459; + --paper-listbox-background-color: #003459; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #003459; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #003459; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #003459; + --yt-menu-focus-background-color: #003459; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #003459; + --yt-main-app-background: #003459; + --yt-main-app-background-tmp: #003459; + --yt-guide-background: #003459; + --yt-dialog-background: #007ea7; + --yt-searchbox-background: #003459!important; + --yt-channel-header-background: #003459; + --yt-sidebar-background: #003459; + --yt-transcript-background: #003459; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #003459; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #003459; + --yt-blue-suggestive: transparent; + } +} + +[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) +{ + --yt-swatch-primary: #c7efcf!important; + --yt-swatch-primary-darker: #c7efcf!important; + --yt-swatch-text: #666!important; + --yt-swatch-important-text: #666!important; + --yt-swatch-input-text: #666!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: #666!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #d6d1b1; + + --yt-spec-brand-background-solid:#c7efcf !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#c7efcf !important; + --yt-spec-general-background-b:#c7efcf !important; + --yt-spec-general-background-c:#c7efcf !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#666 !important; + --yt-spec-text-primary-inverse:#666 !important; + --yt-spec-text-secondary:#666 !important; + --yt-spec-text-disabled:#666 !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#666 !important; + --yt-spec-icon-inactive:#666 !important; + --yt-spec-icon-disabled:#666 !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#c7efcf !important; + --yt-spec-filled-button-text:#666 !important; + --yt-spec-call-to-action-inverse:#666 !important; + --yt-spec-brand-icon-active:#666 !important; + --yt-spec-brand-icon-inactive:#666 !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#666!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#666 !important; + --yt-spec-wordmark-text:#666 !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#666 !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; +} +[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead +{ + background: #d6d1b1!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: #666!important; + --yt-swatch-important-text: #666!important; + --yt-swatch-input-text: #666!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: #666!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; +} +[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) +{ + --yt-live-chat-action-panel-background-color: #c7efcf; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; +} +[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] +{ + --yt-spec-icon-inactive: #666; + --yt-spec-text-primary: #666; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #c7efcf; + --yt-playlist-background-item: #c7efcf; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #c7efcf; + --paper-listbox-background-color: #c7efcf; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #c7efcf; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #c7efcf; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #c7efcf; + --yt-menu-focus-background-color: #c7efcf; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #c7efcf; + --yt-main-app-background: #c7efcf; + --yt-main-app-background-tmp: #c7efcf; + --yt-guide-background: #c7efcf; + --yt-dialog-background: #d6d1b1; + --yt-searchbox-background: #c7efcf; + --yt-channel-header-background: #c7efcf; + --yt-sidebar-background: #c7efcf; + --yt-transcript-background: #c7efcf; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #c7efcf; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #c7efcf; + --yt-blue-suggestive: transparent; +} + + + + + +@media (prefers-color-scheme: dark) { + [it-plain-theme=true][it-schedule=system_peference_dark] + { + --yt-swatch-primary: #c7efcf!important; + --yt-swatch-primary-darker: #c7efcf!important; + --yt-swatch-text: #666!important; + --yt-swatch-important-text: #666!important; + --yt-swatch-input-text: #666!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: #666!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #d6d1b1; + + --yt-spec-brand-background-solid:#c7efcf !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#c7efcf !important; + --yt-spec-general-background-b:#c7efcf !important; + --yt-spec-general-background-c:#c7efcf !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#666 !important; + --yt-spec-text-primary-inverse:#666 !important; + --yt-spec-text-secondary:#666 !important; + --yt-spec-text-disabled:#666 !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#666 !important; + --yt-spec-icon-inactive:#666 !important; + --yt-spec-icon-disabled:#666 !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#c7efcf !important; + --yt-spec-filled-button-text:#666 !important; + --yt-spec-call-to-action-inverse:#666 !important; + --yt-spec-brand-icon-active:#666 !important; + --yt-spec-brand-icon-inactive:#666 !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#666!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#666 !important; + --yt-spec-wordmark-text:#666 !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#666 !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + [it-plain-theme=true][it-schedule=system_peference_dark] ytd-masthead + { + background: #d6d1b1!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: #666!important; + --yt-swatch-important-text: #666!important; + --yt-swatch-input-text: #666!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: #666!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #c7efcf; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), + html[it-plain-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], + [it-plain-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #666; + --yt-spec-text-primary: #666; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #c7efcf; + --yt-playlist-background-item: #c7efcf; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #c7efcf; + --paper-listbox-background-color: #c7efcf; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #c7efcf; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #c7efcf; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #c7efcf; + --yt-menu-focus-background-color: #c7efcf; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #c7efcf; + --yt-main-app-background: #c7efcf; + --yt-main-app-background-tmp: #c7efcf; + --yt-guide-background: #c7efcf; + --yt-dialog-background: #d6d1b1; + --yt-searchbox-background: #c7efcf; + --yt-channel-header-background: #c7efcf; + --yt-sidebar-background: #c7efcf; + --yt-transcript-background: #c7efcf; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #c7efcf; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #c7efcf; + --yt-blue-suggestive: transparent; + } +} + + + + + +@media (prefers-color-scheme: light) { + [it-plain-theme=true][it-schedule=system_peference_light] + { + --yt-swatch-primary: #c7efcf!important; + --yt-swatch-primary-darker: #c7efcf!important; + --yt-swatch-text: #666!important; + --yt-swatch-important-text: #666!important; + --yt-swatch-input-text: #666!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: #666!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #d6d1b1; + + --yt-spec-brand-background-solid:#c7efcf !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#c7efcf !important; + --yt-spec-general-background-b:#c7efcf !important; + --yt-spec-general-background-c:#c7efcf !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#666 !important; + --yt-spec-text-primary-inverse:#666 !important; + --yt-spec-text-secondary:#666 !important; + --yt-spec-text-disabled:#666 !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#666 !important; + --yt-spec-icon-inactive:#666 !important; + --yt-spec-icon-disabled:#666 !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#c7efcf !important; + --yt-spec-filled-button-text:#666 !important; + --yt-spec-call-to-action-inverse:#666 !important; + --yt-spec-brand-icon-active:#666 !important; + --yt-spec-brand-icon-inactive:#666 !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#666!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#666 !important; + --yt-spec-wordmark-text:#666 !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#666 !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + [it-plain-theme=true][it-schedule=system_peference_light] ytd-masthead + { + background: #d6d1b1!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: #666!important; + --yt-swatch-important-text: #666!important; + --yt-swatch-input-text: #666!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: #666!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #c7efcf; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), + html[it-plain-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], + [it-plain-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #666; + --yt-spec-text-primary: #666; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #c7efcf; + --yt-playlist-background-item: #c7efcf; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #c7efcf; + --paper-listbox-background-color: #c7efcf; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #c7efcf; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #c7efcf; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #c7efcf; + --yt-menu-focus-background-color: #c7efcf; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #c7efcf; + --yt-main-app-background: #c7efcf; + --yt-main-app-background-tmp: #c7efcf; + --yt-guide-background: #c7efcf; + --yt-dialog-background: #d6d1b1; + --yt-searchbox-background: #c7efcf; + --yt-channel-header-background: #c7efcf; + --yt-sidebar-background: #c7efcf; + --yt-transcript-background: #c7efcf; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #c7efcf; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #c7efcf; + --yt-blue-suggestive: transparent; + } +} + +[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) +{ + --yt-swatch-primary: #2f3364!important; + --yt-swatch-primary-darker: #2f3364!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #f56264; + + --yt-spec-brand-background-solid:#2f3364 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#2f3364 !important; + --yt-spec-general-background-b:#2f3364 !important; + --yt-spec-general-background-c:#2f3364 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#fff !important; + --yt-spec-text-primary-inverse:#fff !important; + --yt-spec-text-secondary:#fff !important; + --yt-spec-text-disabled:#fff !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#fff !important; + --yt-spec-icon-inactive:#fff !important; + --yt-spec-icon-disabled:#fff !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#2f3364 !important; + --yt-spec-filled-button-text:#fff !important; + --yt-spec-call-to-action-inverse:#fff !important; + --yt-spec-brand-icon-active:#fff !important; + --yt-spec-brand-icon-inactive:#fff !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#fff!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#fff !important; + --yt-spec-wordmark-text:#fff !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#fff !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; +} +[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { + background: #f56264!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; +} +[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) +{ + --yt-live-chat-action-panel-background-color: #2f3364; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; +} +[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] +{ + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #2f3364; + --yt-playlist-background-item: #2f3364; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #2f3364; + --paper-listbox-background-color: #2f3364; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #2f3364; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #2f3364; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #2f3364; + --yt-menu-focus-background-color: #2f3364; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #2f3364; + --yt-main-app-background: #2f3364; + --yt-main-app-background-tmp: #2f3364; + --yt-guide-background: #2f3364; + --yt-dialog-background: #D62828; + --yt-searchbox-background: #fa7965!important; + --yt-channel-header-background: #2f3364; + --yt-sidebar-background: #2f3364; + --yt-transcript-background: #2f3364; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #2f3364; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #2f3364; + --yt-blue-suggestive: transparent; +} + + + + + +@media (prefers-color-scheme: dark) { + [it-sunset-theme=true][it-schedule=system_peference_dark] + { + --yt-swatch-primary: #2f3364!important; + --yt-swatch-primary-darker: #2f3364!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #f56264; + + --yt-spec-brand-background-solid:#2f3364 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#2f3364 !important; + --yt-spec-general-background-b:#2f3364 !important; + --yt-spec-general-background-c:#2f3364 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#fff !important; + --yt-spec-text-primary-inverse:#fff !important; + --yt-spec-text-secondary:#fff !important; + --yt-spec-text-disabled:#fff !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#fff !important; + --yt-spec-icon-inactive:#fff !important; + --yt-spec-icon-disabled:#fff !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#2f3364 !important; + --yt-spec-filled-button-text:#fff !important; + --yt-spec-call-to-action-inverse:#fff !important; + --yt-spec-brand-icon-active:#fff !important; + --yt-spec-brand-icon-inactive:#fff !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#fff!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#fff !important; + --yt-spec-wordmark-text:#fff !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#fff !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + [it-sunset-theme=true][it-schedule=system_peference_dark] ytd-masthead { + background: #f56264!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #2f3364; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), + html[it-sunset-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], + [it-sunset-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #2f3364; + --yt-playlist-background-item: #2f3364; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #2f3364; + --paper-listbox-background-color: #2f3364; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #2f3364; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #2f3364; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #2f3364; + --yt-menu-focus-background-color: #2f3364; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #2f3364; + --yt-main-app-background: #2f3364; + --yt-main-app-background-tmp: #2f3364; + --yt-guide-background: #2f3364; + --yt-dialog-background: #D62828; + --yt-searchbox-background: #fa7965!important; + --yt-channel-header-background: #2f3364; + --yt-sidebar-background: #2f3364; + --yt-transcript-background: #2f3364; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #2f3364; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #2f3364; + --yt-blue-suggestive: transparent; + } +} + + + + + +@media (prefers-color-scheme: light) { + [it-sunset-theme=true][it-schedule=system_peference_light] + { + --yt-swatch-primary: #2f3364!important; + --yt-swatch-primary-darker: #2f3364!important; + --yt-swatch-text: rgb(255,255,255)!important; + --yt-swatch-important-text: rgb(255,255,255)!important; + --yt-swatch-input-text: rgba(255,255,255,1)!important; + --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-logo-override: rgb(255,255,255)!important; + --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-header-primary: #f56264; + + --yt-spec-brand-background-solid:#2f3364 !important; + --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; + --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; + --yt-spec-general-background-a:#2f3364 !important; + --yt-spec-general-background-b:#2f3364 !important; + --yt-spec-general-background-c:#2f3364 !important; + --yt-spec-error-background:#1F1F1F !important; + --yt-spec-text-primary:#fff !important; + --yt-spec-text-primary-inverse:#fff !important; + --yt-spec-text-secondary:#fff !important; + --yt-spec-text-disabled:#fff !important; + --yt-spec-call-to-action:#065FD4 !important; + --yt-spec-icon-active-other:#fff !important; + --yt-spec-icon-inactive:#fff !important; + --yt-spec-icon-disabled:#fff !important; + --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action:#F2F8FF !important; + --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response:#2f3364 !important; + --yt-spec-filled-button-text:#fff !important; + --yt-spec-call-to-action-inverse:#fff !important; + --yt-spec-brand-icon-active:#fff !important; + --yt-spec-brand-icon-inactive:#fff !important; + --yt-spec-brand-button-background:rgba(136,136,136,1) !important; + --yt-spec-brand-link-text:#fff!important; + --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline:#aaa !important; + --yt-spec-brand-subscribe-button-background:#fff !important; + --yt-spec-wordmark-text:#fff !important; + --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; + --yt-spec-selected-nav-text:#fff !important; + --yt-spec-themed-blue:#065FD4 !important; + --yt-spec-themed-green:#107516 !important; + } + [it-sunset-theme=true][it-schedule=system_peference_light] ytd-masthead { + background: #f56264!important; + + --yt-swatch-primary: rgb(35, 35, 35)!important; + --yt-swatch-primary-darker: rgb(32, 32, 32)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + } + [it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) + { + --yt-live-chat-action-panel-background-color: #2f3364; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; + } + [it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), + html[it-sunset-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], + [it-sunset-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] + { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #2f3364; + --yt-playlist-background-item: #2f3364; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #2f3364; + --paper-listbox-background-color: #2f3364; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #2f3364; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #2f3364; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #2f3364; + --yt-menu-focus-background-color: #2f3364; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #2f3364; + --yt-main-app-background: #2f3364; + --yt-main-app-background-tmp: #2f3364; + --yt-guide-background: #2f3364; + --yt-dialog-background: #D62828; + --yt-searchbox-background: #fa7965!important; + --yt-channel-header-background: #2f3364; + --yt-sidebar-background: #2f3364; + --yt-transcript-background: #2f3364; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #2f3364; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #2f3364; + --yt-blue-suggestive: transparent; + } +} + + +/*------------------------------------------------------------------------------ +4.0 PLAYER +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +4.1 CROP CHAPTER TITLES +------------------------------------------------------------------------------*/ + +html[it-player-crop-chapter-titles=false] .ytp-chapter-title +{ + width: auto !important; +} + + +/*------------------------------------------------------------------------------ +4.2 ADS +------------------------------------------------------------------------------*/ + +html[it-player-ads=subscribed_channels] #related #player-ads, +html[it-player-ads=block_all] #related #player-ads, +html[it-player-ads=subscribed_channels] #masthead-ad, +html[it-player-ads=block_all] #masthead-ad +{ + display: none !important; +} + +/*------------------------------------------------------------------------------ +4.3 MINIPLAYER +------------------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------------- +# POSITION & SIZE +-----------------------------------------------------------------------------*/ + +.it-mini-player +{ + position: fixed !important; + z-index: 2147483648 !important; + left: 0!important; + top: 0!important; + + box-shadow: rgba(0, 0, 0, .4) 0 2px 8px !important; + + will-change: transform, width, height !important; + + background: #000 !important; +} + +html[it-page-type=video][it-header-position=hover_on_video_page][it-player-size=full_window] .html5-video-player.it-mini-player, +html[it-page-type=video][it-header-position=hover][it-player-size=full_window] .html5-video-player.it-mini-player +{ + margin-top: 0!important; +} + +.it-mini-player .html5-video-container, +.it-mini-player video +{ + left: 0 !important; + top: 0 !important; + width: 100% !important; + height: 100% !important; +} + +.it-mini-player .ytp-chrome-bottom +{ + width: calc(100% - 24px) !important; +} + +.it-mini-player .ytp-chapters-container +{ + display: flex; +} + +.it-mini-player .ytp-chapter-hover-container +{ + flex-grow: 1; +} + +html[it-mini-player=true] .ytp-contextmenu +{ + z-index: 2147483649 !important; +} + +.it-mini-player .ytp-miniplayer-button, +.it-mini-player .ytp-size-button +{ + display: none !important; +} + + +/*----------------------------------------------------------------------------- +# DRAGGING +-----------------------------------------------------------------------------*/ + +.improvedtube-mini-player.dragging +{ + pointer-events: none !important; +} + +.improvedtube-mini-player.dragging *:not(.html5-video-container):not(video) +{ + visibility: hidden !important; +} + +html[data-cursor='w-resize'], +html[data-cursor='w-resize'] * +{ + cursor: w-resize !important; +} + +html[data-cursor='e-resize'], +html[data-cursor='e-resize'] * +{ + cursor: e-resize !important; +} + +html[it-mini-player-cursor='n-resize']::after, +html[it-mini-player-cursor='e-resize']::after, +html[it-mini-player-cursor='s-resize']::after, +html[it-mini-player-cursor='w-resize']::after, +html[it-mini-player-cursor='ne-resize']::after, +html[it-mini-player-cursor='se-resize']::after, +html[it-mini-player-cursor='sw-resize']::after, +html[it-mini-player-cursor='nw-resize']::after +{ + content: ''; + position: fixed; + left: 0; + top: 0; + width: 100vw; + height: 100vh; + z-index: 2147483650; +} + +html[it-mini-player-cursor='n-resize']::after +{ + cursor: n-resize; +} + +html[it-mini-player-cursor='e-resize']::after +{ + cursor: e-resize; +} + +html[it-mini-player-cursor='s-resize']::after +{ + cursor: s-resize; +} + +html[it-mini-player-cursor='w-resize']::after +{ + cursor: w-resize; +} + +html[it-mini-player-cursor='ne-resize']::after +{ + cursor: ne-resize; +} + +html[it-mini-player-cursor='se-resize']::after +{ + cursor: se-resize; +} + +html[it-mini-player-cursor='sw-resize']::after +{ + cursor: sw-resize; +} + +html[it-mini-player-cursor='nw-resize']::after +{ + cursor: nw-resize; +} + + +/*------------------------------------------------------------------------------ +4.4 SCREENSHOT +------------------------------------------------------------------------------*/ + +#it-screenshot-button +{ + position: relative !important; +} + +#it-screenshot-button svg +{ + position: absolute !important; + top: 7px !important; + left: 7px !important; + + width: 22px !important; + + fill: #fff !important; +} + +.html5-video-player.ytp-big-mode #it-screenshot-button svg +{ + top: 10px !important; + left: 10px !important; + + width: 34px !important; +} + + +/*------------------------------------------------------------------------------ +4.5 REPEAT +------------------------------------------------------------------------------*/ + +#it-repeat-button +{ + position: relative !important; +} + +#it-repeat-button svg +{ + position: absolute !important; + top: 6px !important; + left: 6px !important; + + width: 24px !important; + + fill: #fff !important; +} + +.html5-video-player.ytp-big-mode #it-repeat-button svg +{ + top: 10px !important; + left: 10px !important; + + width: 34px !important; +} + + +/*------------------------------------------------------------------------------ +4.6 ROTATE +------------------------------------------------------------------------------*/ + +#it-rotate-button +{ + position: relative !important; +} + +#it-rotate-button svg +{ + position: absolute !important; + top: 7px !important; + left: 7px !important; + + width: 22px !important; + + fill: #fff !important; +} + +.html5-video-player.ytp-big-mode #it-rotate-button svg +{ + top: 10px !important; + left: 10px !important; + + width: 34px !important; +} + + +/*------------------------------------------------------------------------------ +4.7 POPUP PLAYER +------------------------------------------------------------------------------*/ + +#it-popup-player-button +{ + position: relative !important; +} + +#it-popup-player-button svg +{ + position: absolute !important; + top: 7px !important; + left: 7px !important; + + width: 22px !important; + + fill: #fff !important; +} + +.html5-video-player.ytp-big-mode #it-popup-player-button svg +{ + top: 10px !important; + left: 10px !important; + + width: 34px !important; +} + + +/*------------------------------------------------------------------------------ +5.0 PLAYLIST +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +5.1 REVERSE +------------------------------------------------------------------------------*/ + +#it-reverse-playlist +{ + width: 40px; + height: 40px; +} + +#it-reverse-playlist svg +{ + fill: var(--yt-spec-icon-inactive); +} + +#it-reverse-playlist.active svg +{ + fill: var(--yt-spec-icon-active-other); +} + + +/*------------------------------------------------------------------------------ +6.0 CHANNEL +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +6.1 FEATURED CONTENT +-------------------------------------------------------------------------------- +TODO: FIX +------------------------------------------------------------------------------*/ + +html[it-channel-hide-featured-content=true] #secondary.ytd-two-column-browse-results-renderer +{ + display: none; +} + + +/*------------------------------------------------------------------------------ +7.0 SHORTCUTS +------------------------------------------------------------------------------*/ + +#it-status +{ + font-size: 5rem; + + position: absolute; + top: 2rem; + right: 3rem; + + color: #0ff; + text-shadow: 1px 1px 2px #000; +} \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 000000000..1066531be --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + ImprovedTube + + + + + + + + \ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 000000000..ea033c4bd --- /dev/null +++ b/manifest.json @@ -0,0 +1,86 @@ +{ + "manifest_version": 2, + "name": "*Improve YouTube!☕🧩 YouTube-&Video-Tools 🎞️🧪", + "short_name": "ImprovedTube", + "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", + "version": "3.120", + "version_name": "3.120-testing", + "default_locale": "en", + "icons": { + "128": "assets/icons/128.png", + "16": "assets/icons/16.png", + "32": "assets/icons/32.png", + "48": "assets/icons/48.png" + }, + "background": { + "persistent": false, + "scripts": [ + "background.js" + ] + }, + "browser_action": { + "default_icon": { + "128": "assets/icons/128g.png", + "16": "assets/icons/16g.png", + "32": "assets/icons/32g.png", + "48": "assets/icons/48g.png" + }, + "default_popup": "index.html" + }, + "options_page": "options.html", + "content_scripts": [{ + "all_frames": true, + "css": [ + "content-styles.css" + ], + "exclude_matches": [ + "https://www.youtube.com/improvedtube", + "https://www.youtube.com/tv*", + "https://www.youtube.com/audiolibrary/*", + "http://studio.youtube.com/*" + ], + "js": [ + "youtube-scripts.js", + "content-scripts.js" + ], + "matches": [ + "https://www.youtube.com/*" + ], + "run_at": "document_start" + }, { + "all_frames": true, + "css": [ + "satus.css", + "popup.css" + ], + "js": [ + "satus.js", + "popup.js" + ], + "matches": [ + "https://www.youtube.com/improvedtube" + ], + "run_at": "document_end" + }, { + "all_frames": true, + "js": [ + "page.js" + ], + "matches": [ + "https://www.youtube.com/improvedtube" + ], + "run_at": "document_start" + }], + "content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'", + "offline_enabled": true, + "permissions": [ + "https://www.youtube.com/", + "contextMenus", + "storage" + ], + "optional_permissions": [ + "downloads", + "https://*.youtube.com/*" + ], + "update_url": "https://clients2.google.com/service/update2/crx" +} \ No newline at end of file diff --git a/options.html b/options.html new file mode 100644 index 000000000..61d11272a --- /dev/null +++ b/options.html @@ -0,0 +1,20 @@ + + + + + + ImprovedTube + + + + + + + + + \ No newline at end of file diff --git a/page.js b/page.js new file mode 100644 index 000000000..67668705f --- /dev/null +++ b/page.js @@ -0,0 +1,13 @@ +document.addEventListener('DOMContentLoaded', function() { + document.documentElement.innerHTML = [ + '', + '', + '', + '', + '', + 'ImprovedTube', + '', + '', + '' + ].join(''); +}); \ No newline at end of file diff --git a/popup.css b/popup.css new file mode 100644 index 000000000..bedb800d3 --- /dev/null +++ b/popup.css @@ -0,0 +1,1995 @@ + +/*--------------------------------------------------------------- +>>> THEMES +----------------------------------------------------------------- +1.0 Dark +2.0 Night +3.0 Dawn +4.0 Sunset +5.0 Desert +6.0 Plain +7.0 Black +---------------------------------------------------------------*/ + +html { + --satus-theme-primary: #ff4158; +} + + +/*--------------------------------------------------------------- +1.0 DARK +---------------------------------------------------------------*/ + +html[theme="dark"] +{ + --satus-theme-primary: #ff4158; + + --satus-theme-dialog: #2c2b2c; + --satus-theme-dialog-text: #b5b5b5; + + --satus-theme-header: #343334; + --satus-theme-header-text: #b5b5b5; + + --satus-theme-main: #2c2b2c; + --satus-theme-main-text: #b5b5b5; + + --satus-theme-section: #343334; + + --satus-theme-button: transparent; + + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + + --satus-theme-tooltip: rgba(10, 10, 10, .7); + + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + +/*--------------------------------------------------------------- +2.0 NIGHT +---------------------------------------------------------------*/ + +html[theme="night"] +{ + --satus-theme-primary: #ff4158; + + --satus-theme-dialog: #61a7f5; + --satus-theme-dialog-text: #fafafa; + + --satus-theme-header: #61a7f5; + --satus-theme-header-text: #fafafa; + + --satus-theme-main: #3a48b4; + --satus-theme-main-text: #fafafa; + + --satus-theme-section: #61a7f5; + + --satus-theme-button: transparent; + + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + + --satus-theme-tooltip: rgba(10, 10, 10, .7); + + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + + +/*--------------------------------------------------------------- +3.0 DAWN +---------------------------------------------------------------*/ + +html[theme="dawn"] +{ + --satus-theme-primary: #ff4158; + + --satus-theme-dialog: #ffba99; + --satus-theme-dialog-text: #fafafa; + + --satus-theme-header: #ffba99; + --satus-theme-header-text: #fafafa; + + --satus-theme-main: #ed74a9; + --satus-theme-main-text: #eee; + + --satus-theme-section: #ffba99; + + --satus-theme-button: transparent; + + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + + --satus-theme-tooltip: rgba(10, 10, 10, .7); + + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + + +/*--------------------------------------------------------------- +4.0 SUNSET +---------------------------------------------------------------*/ + +html[theme="sunset"] +{ + --satus-theme-primary: #ff4158; + + --satus-theme-dialog: #a96165; + --satus-theme-dialog-text: #fafafa; + + --satus-theme-header: #a96165; + --satus-theme-header-text: #fafafa; + + --satus-theme-main: #2f3364; + --satus-theme-main-text: #eee; + + --satus-theme-section: #a96165; + + --satus-theme-button: transparent; + + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + + --satus-theme-tooltip: rgba(10, 10, 10, .7); + + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + + +/*--------------------------------------------------------------- +5.0 DESERT +---------------------------------------------------------------*/ + +html[theme="desert"] +{ + --satus-theme-primary: #ff4158; + + --satus-theme-dialog: #9dc2ee; + --satus-theme-dialog-text: #fafafa; + + --satus-theme-header: #9dc2ee; + --satus-theme-header-text: #fafafa; + + --satus-theme-main: #ffe498; + --satus-theme-main-text: #eee; + + --satus-theme-section: #9dc2ee; + + --satus-theme-button: transparent; + + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + + --satus-theme-tooltip: rgba(10, 10, 10, .7); + + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + + +/*--------------------------------------------------------------- +6.0 PLAIN +---------------------------------------------------------------*/ + +html[theme="plain"] +{ + --satus-theme-primary: #ff4158; + + --satus-theme-dialog: #abceb8; + --satus-theme-dialog-text: #fafafa; + + --satus-theme-header: #abceb8; + --satus-theme-header-text: #fafafa; + + --satus-theme-main: #dea975; + --satus-theme-main-text: #eee; + + --satus-theme-section: #abceb8; + + --satus-theme-button: transparent; + + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + + --satus-theme-tooltip: rgba(10, 10, 10, .7); + + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + + +/*--------------------------------------------------------------- +7.0 BLACK +---------------------------------------------------------------*/ + +html[theme="black"] +{ + --satus-theme-primary: #ff4158; + + --satus-theme-dialog: #222; + --satus-theme-dialog-text: #fafafa; + + --satus-theme-header: #222; + --satus-theme-header-text: #fafafa; + + --satus-theme-main: #111; + --satus-theme-main-text: #eee; + + --satus-theme-section: #222; + + --satus-theme-button: transparent; + + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + + --satus-theme-tooltip: rgba(10, 10, 10, .7); + + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + +/*-------------------------------------------------------------- +>>> TABLE OF CONTENTS: +---------------------------------------------------------------- +# Fonts +# Basic +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# FONTS +--------------------------------------------------------------*/ + +@font-face +{ + font-family: 'Open Sans'; + font-weight: 400; + + src: url('assets/fonts/OpenSans-Regular.ttf'); +} + +@font-face +{ + font-family: 'Open Sans'; + font-weight: 600; + + src: url('assets/fonts/OpenSans-SemiBold.ttf'); +} + + +/*-------------------------------------------------------------- +# BASIC +--------------------------------------------------------------*/ + +body +{ + font-family: 'Open Sans', sans-serif; + font-size: 14px; + + display: flex; + overflow: hidden; + flex-direction: column; + + width: 300px; + height: 532px; + margin: 0; + + background-color: #eee; +} + +body.improvedtube-page +{ + width: 100vw; + height: 100vh; +} + +button +{ + font-family: 'Open Sans', sans-serif; +} + + + + + +.satus-dialog--confirm .satus-section +{ + display: flex; + background-color: transparent; +} + +.satus-dialog--confirm .satus-text +{ + display: block; + + box-sizing: border-box; + padding: 0 16px 8px; +} + +.satus-dialog--confirm .satus-button +{ + font-weight: 500; + + overflow: hidden; + + height: 28px; + min-height: 28px; + margin-right: 2px; + padding: 4px 8px; + + text-transform: uppercase; + + color: #f96754; + border-radius: 4px; +} + + + + + + + + + + + + + + + + + + + + + + +.satus-section--footer +{ + position: fixed; + z-index: 99; + bottom: 10px; + left: 16px; + display: flex; + box-sizing: border-box; + box-shadow: 0 0 3px rgba(0,0,0,.1); + width: 268px; + height: 38px; + padding: 8px 16px; + color: var(--satus-theme-main-text); + border-radius: 4px; + background: var(--satus-theme-section); + align-items: center; + justify-content: space-between; +} + +html[it-improvedtube-home='list'] .satus-section--footer +{ + position: relative; + left: 0; + top: 0; + margin: 50px 16px 16px; +} + +.satus-main .satus-section--footer .satus-button +{ + font-family: 'Open Sans', sans-serif; + font-weight: 700; + font-size: 13px; + text-decoration: none; + color: var(--satus-theme-main-text); + text-align: center; + height: 32px; + justify-content: center; + border-radius: 4px; + overflow: hidden; +} + +.satus-main .satus-section--footer .satus-button--found-a-bug { + width: 128px; + position: absolute; + bottom: 48px; + left: 70px; +} + +.satus-dialog--setup +{ + animation: unset; +} + +.satus-dialog--setup .satus-dialog__scrim +{ + display: none; +} + +.satus-dialog--setup .satus-dialog__surface +{ + position: absolute; + top: 0; + left: 0; + + padding: 0; + + width: 100%; + height: 100%; + max-height: unset; + + transform: unset; + animation: unset; + + opacity: 1; + border-radius: unset; +} + +.satus-dialog--setup-language .satus-button +{ + width: 100%; + height: 48px; +} + +/*--------------------------------------------------------------- +>>> HEADER: +----------------------------------------------------------------- +1.0 Buttons + 1.1 Back button +2.0 Title +3.0 Right section +4.0 Search +5.0 Vertical menu +---------------------------------------------------------------*/ + +/*--------------------------------------------------------------- +1.0 BUTTONS +---------------------------------------------------------------*/ + +.satus-header .satus-button +{ + width: 36px; + height: 36px; + padding: 6px; +} + +.satus-header .satus-button::before +{ + border-radius: 50%; +} + + +/*--------------------------------------------------------------- +1.1 BACK BUTTON +---------------------------------------------------------------*/ + +.satus-button--back +{ + position: absolute; +} + +.satus-button--back svg +{ + fill: none; + stroke: currentColor; +} + +body[data-appearance='home'] .satus-button--back +{ + visibility: hidden; +} + + +/*--------------------------------------------------------------- +2.0 TITLE +---------------------------------------------------------------*/ + +.satus-text--title +{ + font-size: 15px; + font-weight: 400; + + position: absolute; + left: 56px; + + letter-spacing: .0125em; +} + +html[it-title-version='true'] body[data-appearance='home'] .satus-text--title::after +{ + font: 700 10px sans-serif; + + margin: 0 0 0 4px; + + content: attr(data-version); + + opacity: .6; + color: var(--satus-theme-header-text); +} + +body[data-appearance='home'] .satus-text--title +{ + left: 14px; +} + + +/*--------------------------------------------------------------- +3.0 RIGHT SECTION +---------------------------------------------------------------*/ + +.satus-section--align-end +{ + justify-content: flex-end; +} + +.satus-section--align-end .satus-button + .satus-button +{ + margin-left: 8px; +} + + +/*--------------------------------------------------------------- +4.0 SEARCH +---------------------------------------------------------------*/ + +.satus-dialog--search +{ + pointer-events: none; +} + +.satus-dialog--search .satus-dialog__scrim +{ + display: none; +} + +.satus-dialog--search .satus-dialog__surface +{ + position: fixed; + top: 11px; + right: 8px; + + visibility: unset; + + width: calc(100% - 62px); + min-width: unset; + max-width: unset; + height: 34px; + padding: 0; + + transform: unset; + animation: unset; + pointer-events: all; + + opacity: unset; + border: 1px solid rgba(0,0,0,.05); + box-shadow: unset; +} + +.satus-dialog--search .satus-dialog__surface .satus-text-field +{ + height: 34px; +} + +.satus-dialog--search .satus-dialog__surface .satus-button +{ + position: absolute; + top: 3px; + right: 3px; + + overflow: hidden; + + width: 32px; + height: 32px; + + border-radius: 50%; +} + +.satus-dialog--search .satus-dialog__surface .satus-button svg +{ + fill: unset; + stroke: currentColor; +} + + +body[data-appearance='search'] .satus-switch--red, +body[data-appearance='search'] .satus-switch--dark, +body[data-appearance='search'] .satus-switch--night, +body[data-appearance='search'] .satus-switch--dawn, +body[data-appearance='search'] .satus-switch--sunset, +body[data-appearance='search'] .satus-switch--desert, +body[data-appearance='search'] .satus-switch--plain, +body[data-appearance='search'] .satus-switch--black +{ + width: calc(100% - 16px); + margin: 4px 8px; + + border-radius: 6px; +} + +body[data-appearance='search'] .satus-switch--red .satus-switch__label, +body[data-appearance='search'] .satus-switch--dark .satus-switch__label, +body[data-appearance='search'] .satus-switch--night .satus-switch__label, +body[data-appearance='search'] .satus-switch--dawn .satus-switch__label, +body[data-appearance='search'] .satus-switch--sunset .satus-switch__label, +body[data-appearance='search'] .satus-switch--black .satus-switch__label +{ + color: #fff; +} + +body[data-appearance='search'] .satus-switch--plain .satus-switch__label, +body[data-appearance='search'] .satus-switch--desert .satus-switch__label +{ + color: #222; +} + + +/*--------------------------------------------------------------- +5.0 VERTICAL MENU +---------------------------------------------------------------*/ + +.satus-dialog--vertical-menu .satus-dialog__surface +{ + position: absolute; + top: 8px; + right: 8px; + left: auto; + + min-width: 180px; + max-width: 180px; + + transform-origin: right top; +} + +.satus-dialog--vertical-menu .satus-button, +.satus-dialog--vertical-menu .satus-folder +{ + width: 100%; + height: 36px; + padding: 0 16px; + + text-align: left; +} + +.satus-dialog--vertical-menu .satus-folder svg, +.satus-dialog--vertical-menu .satus-button svg +{ + width: 20px; + height: 18px; + margin: 0 14px 0 0; + + opacity: .75; + + fill: none; + stroke: var(--satus-theme-primary); +} + +.satus-dialog--vertical-menu .satus-folder--mixer svg +{ + height: 20px; +} + +.satus-dialog--vertical-menu .satus-button--github svg +{ + width: 18px; + height: 18px; +} + +/*-------------------------------------------------------------- +>>> MAIN: +---------------------------------------------------------------- +1.0 Basic +2.0 Section +3.0 Folder +4.0 Button +5.0 Custom +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +1.0 BASIC +--------------------------------------------------------------*/ + +.satus-main +{ + flex: 1; +} + + +/*-------------------------------------------------------------- +2.0 SECTION +--------------------------------------------------------------*/ + +.satus-main .satus-section--label +{ + font-size: 17px; + + display: block; + + width: calc(100% - 16px); + max-width: 900px; + margin: 16px auto 8px; +} + +html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-section:not(.satus-section--footer), +.satus-main__container:not([data-appearance='home']) .satus-section:not(.satus-section--footer) +{ + display: block; + + width: calc(100% - 16px); + max-width: 900px; + margin: 8px auto; + padding: 8px 0; + + border: 1px solid rgba(0,0,0,.1); + border-radius: 8px; +} + +html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-section--message, +.satus-main__container:not([data-appearance='home']) .satus-section--message +{ + padding-right: 8px; + padding-left: 8px; +} + + +/*-------------------------------------------------------------- +3.0 FOLDER +--------------------------------------------------------------*/ + +.satus-main .satus-folder svg +{ + width: 20px; + height: 20px; + margin: 0 14px 0 0; + + opacity: .75; + + stroke: none; + fill: var(--satus-theme-primary); +} + + +/*-------------------------------------------------------------- +4.0 BUTTON +--------------------------------------------------------------*/ + +.satus-main .satus-button +{ + width: 100%; + height: 48px; + padding: 0 16px; + text-align: left; +} + + +/*-------------------------------------------------------------- +5.0 CUSTOM +--------------------------------------------------------------*/ + +#forced-playback-speed + *, +#forced-volume + * +{ + pointer-events: none; + + opacity: .5; +} + +#forced-playback-speed[data-value=true] + *, +#forced-volume[data-value=true] + * +{ + pointer-events: all; + + opacity: 1; +} + +/*-------------------------------------------------------------- +>>> HOME +--------------------------------------------------------------*/ + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-section:not(.satus-section--footer) +{ + width: 100%; + margin-top: 16px; + + flex-wrap: wrap; + + background-color: transparent; +} + + + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder +{ + position: relative; + + flex-direction: column; + + width: 64px; + height: 86px; + margin: 0 18px 14px; + padding: 0; + + cursor: default; +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder::before +{ + background-color: transparent +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder__label +{ + position: absolute; + bottom: 0; + + pointer-events: none; +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder:focus, +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder:hover +{ + background-color: transparent; +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg, +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--shortcut__icon +{ + display: block; + overflow: visible; + + width: 28px; + height: 28px; + margin: 0 0 5px 0; + padding: 16px; + + cursor: pointer; + transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; + + opacity: .95; + border-radius: 50%; + background: linear-gradient(135deg, #ff4158, #ff001f); + box-shadow: 0 2px 1px 1px rgb(222, 0, 27, .7), 0 3px 5px rgba(0,0,0,.35); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg:focus, +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg:hover +{ + transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; + transform: translateY(4px) scale(.975); + + box-shadow: 0 1px 1px 0 rgba(222, 0, 27, .7), 0 1px 2px rgba(0,0,0,.35); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--general svg +{ + width: 26px; + height: 26px; + padding: 19px 17px 15px 17px; + + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--appearance svg +{ + width: 26px; + height: 26px; + padding: 19px 17px 15px 17px; + + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--themes svg +{ + padding: 17px 16px 15px 16px; + + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--player svg +{ + width: 26px; + height: 26px; + padding: 19px 15px 15px 19px; + + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--playlist svg +{ + padding: 17px 16px 15px 16px; + + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--channel svg +{ + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--shortcut svg +{ + width: 26px; + height: 26px; + padding: 19px 17px 15px 17px; + + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--mixer svg +{ + padding: 17px 16px 15px 16px; + + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--blacklist svg +{ + width: 26px; + height: 26px; + padding: 18px 17px 16px 17px; + + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--analyzer svg +{ + width: 26px; + height: 26px; + padding: 18px 17px 16px 17px; + + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-folder svg +{ + fill: transparent; + stroke: var(--satus-theme-primary); +} + + + +html[it-it-general='false'] .satus-folder--general, +html[it-it-appearance='false'] .satus-folder--appearance, +html[it-it-themes='false'] .satus-folder--themes, +html[it-it-player='false'] .satus-folder--player, +html[it-it-playlist='false'] .satus-folder--playlist, +html[it-it-channel='false'] .satus-folder--channel, +html[it-it-shortcuts='false'] .satus-folder--shortcut, +html[it-it-blacklist='false'] .satus-folder--blacklist, +html[it-it-analyzer='false'] .satus-folder--analyzer +{ + display: none; +} + +/*-------------------------------------------------------------- +# APPEARANCE +--------------------------------------------------------------*/ + +.satus-main__container[data-appearance='appearance'] .satus-folder +{ + position: absolute; + + box-sizing: border-box; + padding: 0; + + transition-duration: .5s; + transition-property: transform, box-shadow; + transform: scale(1); + text-align: center; + + border: 1px solid var(--main-appearance-shadow, #dfdfdf); + border-radius: 6px; + box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0); + + justify-content: center; + align-items: center; +} + +.satus-main__container[data-appearance='appearance'] .satus-folder:hover +{ + z-index: 9; + + transition-duration: .25s; + transform: scale(1.03) translate(-8px, -4px); + + box-shadow: 1px 1px 0 0 var(--main-appearance-shadow, #dfdfdf), 2px 2px 0 0 var(--main-appearance-shadow, #dfdfdf), 3px 3px 0 0 var(--main-appearance-shadow, #dfdfdf), 4px 4px 0 0 var(--main-appearance-shadow, #dfdfdf), 5px 6px 4px 0 rgba(0, 0, 0, .1); +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--header +{ + top: 16px; + left: 16px; + + width: calc(100% - 32px); + height: 40px; + min-height: auto; + + background-color: var(--satus-theme-dialog); + color: var(--satus-theme-dialog-text); +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--header:hover +{ + transform: scale(1.03) translate(-9px, -4px); +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--player +{ + top: 64px; + left: 16px; + + width: calc(70% - 32px); + height: 96px; + min-height: auto; + + color: #eee; + border-color: #333; + background-color: #444; +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--player .label +{ + color: #fff; +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--player:hover +{ + transform: scale(1.03) translate(-7px, -4px); + + box-shadow: 1px 1px 0 0 #333, 2px 2px 0 0 #333, 3px 3px 0 0 #333, 4px 4px 0 0 #333, 5px 6px 4px 0 rgba(0, 0, 0, .1); +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--details +{ + top: 168px; + left: 16px; + + width: calc(70% - 32px); + height: 56px; + min-height: auto; + + background-color: var(--satus-theme-dialog); + color: var(--satus-theme-dialog-text); +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--description +{ + top: 13.5rem; + left: 1rem; + + width: calc(70% - 2rem); + height: 3.5rem; + min-height: 3.5rem; + + background-color: var(--satus-theme-dialog); + color: var(--satus-theme-dialog-text); +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--comments +{ + top: 232px; + left: 16px; + + width: calc(70% - 32px); + height: 80px; + min-height: auto; + + background-color: var(--satus-theme-dialog); + color: var(--satus-theme-dialog-text); +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--footer +{ + top: 320px; + left: 16px; + + width: calc(70% - 32px); + height: 64px; + min-height: auto; + + background-color: var(--satus-theme-dialog); + color: var(--satus-theme-dialog-text); +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--sidebar +{ + top: 64px; + left: calc(70% - 8px); + + width: calc(30% - 8px); + height: 160px; + + background-color: var(--satus-theme-dialog); + color: var(--satus-theme-dialog-text); +} + +/*----------------------------------------------------------------------------- +# THEMES CATEGORY +-----------------------------------------------------------------------------*/ + +.satus-main__container[data-appearance='themes'] .satus-switch:first-child +{ + margin-top: 16px; +} + +.satus-main__container[data-appearance='themes'] .satus-switch:last-child +{ + margin-bottom: 16px; +} + +.satus-main__container[data-appearance='themes'] .satus-switch +{ + width: calc(100% - 16px); + max-width: 900px; + height: 80px; + margin: 8px auto; + + border-radius: 8px; +} + +.satus-main__container[data-appearance='themes'] .satus-switch__label +{ + font-size: 15px; + font-weight: 500; + + color: #eee; + text-shadow: 0 1px 3px rgba(0, 0, 0, .7); +} + +.satus-switch--dark +{ + position: relative; + + overflow: hidden; + + background: linear-gradient(#0d1216, #353d46) !important; +} + +.satus-switch--dark::before +{ + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + animation-name: satus-switch--dark; + animation-duration: 4s; + animation-timing-function: ease-in-out; + animation-iteration-count: infinite; + pointer-events: none; + + background: radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%) !important; + background-repeat: no-repeat !important; + background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px !important; + background-size: 50px 50px, 50px 50px, 100px 100px, 75px 75px !important; + + filter: blur(8px); +} + +@keyframes satus-switch--dark +{ + 0% + { + background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; + } + + 50% + { + background-position: 20px 20px, 230px -20px, 0 -40px, 160px 10px; + } + + 100% + { + background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; + } +} + +.satus-switch--night +{ + position: relative; + + overflow: hidden; + + animation-name: satus-switch--night; + animation-duration: .75s; + animation-iteration-count: infinite; + + background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), + linear-gradient(#3a48b4, #61a7f5) !important; + background-repeat: no-repeat !important; + background-position: 75% 80%, 35% 65%, 30% 10%, 50% 40%, 10% 80%, 90% 10%, 0 0 !important; + background-size: 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, auto !important; +} + +@keyframes satus-switch--night +{ + 0% + { + background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), + linear-gradient(#3a48b4, #61a7f5); + } + + 25% + { + background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), + linear-gradient(#3a48b4, #61a7f5); + } + + 50% + { + background-image: radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .9) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), + linear-gradient(#3a48b4, #61a7f5); + } + + 75% + { + background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), + linear-gradient(#3a48b4, #61a7f5); + } + + 100% + { + background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), + linear-gradient(#3a48b4, #61a7f5); + } +} + +.satus-switch--dawn +{ + position: relative; + + overflow: hidden; + + background: linear-gradient(#ed74a9, #ffba99) !important; +} + +.satus-switch--dawn::before +{ + position: absolute; + right: 1rem; + bottom: -5rem; + + width: 10rem; + height: 10rem; + + content: ''; + animation-name: satus-switch--dawn; + animation-duration: .75s; + animation-iteration-count: infinite; + pointer-events: none; + + border-radius: 50%; + background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; +} + +@keyframes satus-switch--dawn +{ + 0% + { + background: radial-gradient(rgba(255, 255, 231, .85) 20%, + rgba(255, 255, 231, .25) 20%, + rgba(255, 255, 231, .25) 35%, + rgba(255, 255, 231, .15) 35%, + rgba(255, 255, 231, .15) 55%, + rgba(255, 255, 231, .05) 55%, + rgba(255, 255, 231, .05) 75%, transparent 75%); + } + + 50% + { + background: radial-gradient(rgba(255, 255, 231, .85) 20%, + rgba(255, 255, 231, .30) 20%, + rgba(255, 255, 231, .30) 35%, + rgba(255, 255, 231, .20) 35%, + rgba(255, 255, 231, .20) 55%, + rgba(255, 255, 231, .10) 55%, + rgba(255, 255, 231, .10) 75%, transparent 75%); + } + + 100% + { + background: radial-gradient(rgba(255, 255, 231, .85) 20%, + rgba(255, 255, 231, .25) 20%, + rgba(255, 255, 231, .25) 35%, + rgba(255, 255, 231, .15) 35%, + rgba(255, 255, 231, .15) 55%, + rgba(255, 255, 231, .05) 55%, + rgba(255, 255, 231, .05) 75%, transparent 75%); + } +} + +.satus-switch--sunset +{ + position: relative; + + overflow: hidden; + + background: linear-gradient(#2f3364, #a96165) !important; +} + +.satus-switch--sunset::before +{ + position: absolute; + top: -1rem; + left: 50%; + + overflow: hidden; + + width: 8rem; + height: 8rem; + + content: ''; + transform: translate(-50%, 0%); + pointer-events: none; + + border-radius: 50%; + background: linear-gradient(#fa7965, #f56264, transparent) !important; +} + +.satus-switch--desert +{ + position: relative; + + overflow: hidden; + + background-image: radial-gradient(#ffe498 50%, transparent 50%), + linear-gradient(#9dc2ee, #f5fdff) !important; + background-repeat: no-repeat !important; + background-position: -120px 36px, 0 !important; + background-size: 240%, 100% !important; +} + +.satus-switch--desert::before +{ + position: absolute; + top: -100%; + left: 40%; + + width: 10rem; + height: 10rem; + + content: ''; + animation-name: satus-switch--desert; + animation-duration: .75s; + animation-delay: .5s; + animation-iteration-count: infinite; + pointer-events: none; + + border-radius: 50%; + background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; +} + +@keyframes satus-switch--desert +{ + 0% + { + background: radial-gradient(#fefefe 20%, + rgba(255, 255, 231, .25) 20%, + rgba(255, 255, 231, .25) 35%, + rgba(255, 255, 231, .15) 35%, + rgba(255, 255, 231, .15) 55%, + rgba(255, 255, 231, .05) 55%, + rgba(255, 255, 231, .05) 75%, transparent 75%); + } + + 50% + { + background: radial-gradient(#fefefe 20%, + rgba(255, 255, 231, .30) 20%, + rgba(255, 255, 231, .30) 35%, + rgba(255, 255, 231, .20) 35%, + rgba(255, 255, 231, .20) 55%, + rgba(255, 255, 231, .10) 55%, + rgba(255, 255, 231, .1) 75%, transparent 75%); + } + + 100% + { + background: radial-gradient(#fefefe 20%, + rgba(255, 255, 231, .25) 20%, + rgba(255, 255, 231, .25) 35%, + rgba(255, 255, 231, .15) 35%, + rgba(255, 255, 231, .15) 55%, + rgba(255, 255, 231, .05) 55%, + rgba(255, 255, 231, .05) 75%, transparent 75%); + } +} + +.satus-switch--plain +{ + position: relative; + + overflow: hidden; + + background-image: radial-gradient(#dea975 50%, transparent 50%), + radial-gradient(#e8b887 50%, transparent 50%), + radial-gradient(#f1cc9f 50%, transparent 50%), + radial-gradient(#f3ddb8 50%, transparent 50%), + linear-gradient(#abceb8, #e7ede1) !important; + background-repeat: no-repeat !important; + background-position: -50px 50px, -370px 40px, 0 36px, -360px 26px, 0 !important; + background-size: 240%, 240%, 240%, 240%, 100% !important; +} + +.satus-switch--plain::before +{ + position: absolute; + top: -70%; + left: 10%; + + width: 7rem; + height: 7rem; + + content: ''; + animation-name: satus-switch--plain; + animation-duration: .75s; + animation-delay: .2s; + animation-iteration-count: infinite; + pointer-events: none; + + border-radius: 50%; + background: radial-gradient(#fff 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; +} + +.satus-switch--black +{ + background: #000 !important; +} + +/*----------------------------------------------------------------------------- +# BLACKLIST CATEGORY +-----------------------------------------------------------------------------*/ + +.satus-section.satus-section--blacklist +{ + position: relative; + + overflow: hidden; + flex-direction: column; + + width: calc(100% - 32px); + height: 116px; + margin: 8px 16px 0; + + transition: opacity .25s; + + opacity: 1; + border-radius: 10px; + background-color: #000; + background-position: center; + background-size: cover; + + flex: unset; + align-items: flex-start; +} + +.satus-section.satus-section--blacklist.removing +{ + opacity: 0; +} + +.satus-section.satus-section--blacklist::before +{ + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + margin: 0; + + content: ''; + + background: rgba(0, 0, 0, .5); +} + +.satus-section.satus-section--blacklist > .label +{ + font-size: 16px; + font-weight: 700; + + position: absolute; + z-index: 1; + bottom: 28px; + + text-transform: uppercase; + + opacity: 1; + color: #fff; +} + +.satus-section.satus-section--blacklist::after +{ + position: absolute; + z-index: 1; + bottom: 16px; + left: 16px; + + content: attr(data-label); + + color: rgba(255, 255, 255, .5); +} + +.satus-section.satus-section--blacklist > .satus-section +{ + position: absolute; + z-index: 999; + bottom: 0; + + visibility: hidden; + + width: 100%; + margin: 0; + padding: 0; + + transition: .15s; + + opacity: 0; + border: none; + border-radius: 0; + background: rgba(255, 255, 255, .95); + + justify-content: center; +} + +.satus-section.satus-section--blacklist:hover > .satus-section +{ + visibility: visible; + + opacity: 1; +} +/*----------------------------------------------------------------------------- +# ANALYZER CATEGORY +-----------------------------------------------------------------------------*/ + +.analyzer-top-text +{ + font-size: 13px; + + display: flex; + + box-sizing: border-box; + margin: 16px 0 0; + padding: 0 16px; + + background: transparent !important; + + justify-content: space-between; +} + +.analyzer-watch-time +{ + text-transform: uppercase; +} + +.analyzer-today-at +{ + box-sizing: border-box; +} + +.analyzer-container +{ + box-sizing: border-box; + margin: 8px 0 16px; + padding: 16px; + + background: var(--background-0) !important; + box-shadow: 0 0 2px rgba(0, 0, 0, .2); +} + +.analyzer-all-time +{ + font-size: 24px; + font-weight: 400; + + margin-bottom: 8px; + + color: #4c4c4c; +} + +.analyzer-chart +{ + position: relative; + + display: flex; + overflow: hidden; + + box-sizing: border-box; + height: 140px; + margin: 8px 0; + + border-bottom: 1px solid #ccc; + + justify-content: space-between; +} + +.analyzer-chart::before +{ + position: absolute; + top: -78%; + left: -15%; + + width: 125%; + height: 250%; + + content: ''; + transform: rotate(-45deg); + + background: linear-gradient(transparent 50%, rgba(0, 0, 0, .05) 50%); + background-size: 4px 4px; +} + +.analyzer-column +{ + z-index: 1; + + display: flex; + + border-right: 1px solid #ccc; + + flex: 1; +} + +.analyzer-column:first-child +{ + border-left: 1px solid #ccc; +} + +.analyzer-data-column +{ + display: flex; + flex-direction: column; + + justify-content: flex-end; + flex: 1; +} + +.analyzer-data +{ + height: 20px; + margin: 0 1px; + + background-color: #c5c5c5; +} + +.analyzer-data.first +{ + background-color: #1c00db; + + order: 3; +} + +.analyzer-data.second +{ + background-color: #4dd0e1; + + order: 2; +} + +.analyzer-data.third +{ + background-color: #ff9800; + + order: 1; +} + +/*.analyzer-data:first-child +{ + border-top-left-radius: 4px; + border-top-right-radius: 4px; +}*/ +.analyzer-bottom +{ + display: flex; + + margin: 14px 0 0; + + justify-content: space-between; +} + +.analyzer-bottom > div .label +{ + margin: 0 0 2px; +} + +.analyzer-bottom > div:first-child .label +{ + color: #1c00db; +} + +.analyzer-bottom > div:nth-child(2) .label +{ + color: #4dd0e1; +} + +.analyzer-bottom > div:nth-child(3) .label +{ + color: #ff9800; +} + +/*----------------------------------------------------------------------------- +# MIXER CATEGORY +-----------------------------------------------------------------------------*/ + +.satus-main__container[data-appearance='mixer'] .satus-section--mixer +{ + position: relative; + + overflow: hidden; + flex-direction: column; + + width: calc(100% - 32px); + height: 128px; + margin: 8px 16px 0; + + border: unset; + border-radius: 10px; + + flex: unset; + align-items: flex-start; +} + +.satus-main__container[data-appearance='mixer'] .satus-section--mixer::before +{ + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + + background: rgba(0, 0, 0, .5); +} + +.satus-main__container[data-appearance='mixer'] .satus-section--mixer > .satus-section +{ + position: absolute; + bottom: 0; + + visibility: hidden; + + width: 100%; + margin: 0; + padding: 0; + + transition: 200ms; + transform: translateY(32px); + + opacity: 0; + border: unset; + border-radius: unset; +} + +.satus-main__container[data-appearance='mixer'] .satus-section--mixer:hover > .satus-section +{ + visibility: visible; + + transform: translateY(0); + + opacity: 1; +} + +.satus-main__container[data-appearance='mixer'] .satus-section--mixer.noconnection > .satus-section > div +{ + visibility: hidden; + + pointer-events: none; +} + +.satus-main__container[data-appearance='mixer'] .satus-section--mixer.noconnection > .satus-section::after +{ + font-size: 18px; + font-weight: 500; + + position: absolute; + top: 50%; + + width: 100%; + + content: attr(data-no-connection-label); + transform: translateY(-50%); + text-align: center; + + opacity: .8; +} +.satus-main__container[data-appearance='about'] .satus-text +{ + display: flex; + + box-sizing: border-box; + width: 100%; + min-height: 48px; + padding: 0 16px; + + justify-content: space-between; + align-items: center; +} + +.satus-main__container[data-appearance='about'] .satus-text__value +{ + text-align: right; + + opacity: .7; +} + + +/*--------------------------------------------------------------- +# AD +---------------------------------------------------------------*/ + +.satus-section--info +{ + position: absolute; + z-index: 99; + bottom: 104px; + left: 32px; + + display: flex; + + width: calc(100% - 64px) !important; + + justify-content: space-between; +} + +.satus-section--info .satus-button +{ + font-weight: 700; + overflow: hidden; + width: auto; + height: 28px; + border-radius: 6px; + background: var(--satus-theme-primary); + color: #fff; + opacity: 0.5; + padding: 0 10px; +} + +.satus-section--info .satus-button:hover { + opacity: 1 +} + + + + +.satus-main .satus-button.satus-button--ad +{ + position: absolute; + z-index: 99; + bottom: 16px; + left: 16px; + + overflow: hidden; + + width: 268px; + height: 38px; + height: 80px; + padding: 8px 16px; + + color: var(--satus-theme-main-text); + border-radius: 8px; + background: #0f1911; + box-shadow: 0 0 3px rgba(0,0,0,.1); + + align-items: center; + justify-content: space-between; +} + +.satus-button--ad .satus-button__label +{ + font-size: 22px; + font-weight: 700; + + color: rgba(255,255,255,.85); + text-shadow: 2px 1px 2px rgba(0,0,0,.6); +} + + +@keyframes satusSwitchDark +{ + 0% + { + transform: translate(0, 0); + } + 33% + { + transform: translate(20px, 10px); + } + 66% + { + transform: translate(10px, -10px); + } + 100% + { + transform: translate(0, 0); + } +} + +.satus-button--ad::before +{ + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + opacity: 1; + animation-name: satusSwitchDark; + animation-duration: 8s; + animation-timing-function: linear; + animation-iteration-count: infinite; + pointer-events: none; + + background: radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%) !important; + background-repeat: no-repeat !important; + background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px !important; + background-size: 50px 50px, 50px 50px, 100px 100px, 75px 75px !important; + + filter: blur(8px); +} + +html[it-improvedtube-home='list'] .satus-main .satus-button.satus-button--ad +{ + position: relative; + top: 0; + left: 0; + + margin: 16px; +} + +.satus-button--ad:after +{ + position: absolute; + top: 0; + left: -100%; + + width: 100%; + height: 100%; + + content: ''; + transition: .5s; + transition-delay: .2s; + + background: linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent); +} + +.satus-button--ad:hover:after +{ + left: 100%; +} \ No newline at end of file diff --git a/popup.js b/popup.js new file mode 100644 index 000000000..f9d7d680b --- /dev/null +++ b/popup.js @@ -0,0 +1,3084 @@ +/*------------------------------------------------------------------------------ +>>> TABLE OF CONTENTS: +-------------------------------------------------------------------------------- +1.0 Header + 1.1 Mixer + 1.2 Settings + 1.3 Active features +2.0 Main + 2.1 General + 2.2 Appearance + 2.3 Themes + 2.4 Player + 2.5 Playlist + 2.6 Channel + 2.7 Shortcuts + 2.8 Blacklist + 2.9 Analyzer +3.0 Initialization +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +1.0 HEADER +------------------------------------------------------------------------------*/ + +var Menu = { + header: { + type: 'header', + + section_start: { + type: 'section', + class: 'satus-section--align-start', + + button_back: { + type: 'button', + class: 'satus-button--back', + before: '', + onclick: function() { + if (document.querySelector('.satus-dialog__scrim')) { + document.querySelector('.satus-dialog__scrim').click(); + } else { + document.querySelector('.satus-main').back(); + } + } + }, + title: { + type: 'text', + class: 'satus-text--title', + innerText: 'ImprovedTube', + dataset: { + version: chrome && chrome.runtime && chrome.runtime.getManifest ? chrome.runtime.getManifest().version : '' + } + } + }, + section_end: { + type: 'section', + class: 'satus-section--align-end', + + button_search: { + type: 'button', + icon: '', + onclick: function() { + document.querySelector('.satus-main').open({ + appearanceId: 'search' + }, function() { + satus.render({ + type: 'dialog', + class: 'satus-dialog--search', + onclose: function() { + document.querySelector('.satus-main').back(); + }, + + input: { + type: 'text-field', + placeholder: 'search', + oninput: function() { + if (this.value.length > 0) { + satus.search(this.value, Menu, function(results) { + var sorted_results = []; + + document.querySelector('.satus-main__container').innerHTML = ''; + + for (var key in results) { + results[key].type = 'section'; + + sorted_results.push({ + type: 'text', + label: key, + class: 'satus-section--label' + }); + sorted_results.push(results[key]); + } + + console.log(results); + + var scroll = satus.components.scrollbar(document.querySelector('.satus-main__container')); + + satus.render(sorted_results, scroll); + }, true); + } else { + document.querySelector('.satus-main__container').innerHTML = ''; + + satus.render({}, document.querySelector('.satus-main__container')); + } + } + } + }); + }); + } + }, + button_vert: { + type: 'button', + icon: '', + onClickRender: { + type: 'dialog', + class: 'satus-dialog--vertical-menu' + } + } + } + } +}; + + +/*------------------------------------------------------------------------------ +1.1 ACTIVE FEATURES +------------------------------------------------------------------------------*/ + +Menu.header.section_end.button_vert.onClickRender.active_features = { + type: 'folder', + before: '', + label: 'activeFeatures', + onclick: function() { + document.querySelector('.satus-dialog__scrim').click(); + }, + + section: { + type: 'section', + onrender: function() { + var component = this, + new_menu = {}, + storage = satus.storage; + + function search(string, object) { + let result = []; + + for (let i in object) { + if (object[i].type) { + if (/(button|select|shortcut|slider|switch)/.test(object[i].type)) { + if (i.indexOf(string) !== -1 || (object[i].tags && object[i].tags.indexOf(string) !== -1)) { + if (object[i].type.indexOf('button') === -1 || !object[i].label) { + new_menu[i] = object[i]; + } + } + } else { + let response = search(string, object[i]); + + if (response.length > 0) { + for (let j = 0, l = response.length; j < l; j++) { + result.push(response[i]); + } + } + } + } + } + + return result; + } + + for (var key in storage) { + search(key, Menu) + } + + setTimeout(function() { + if (Object.keys(new_menu).length > 0) { + satus.render(new_menu, component); + } else { + satus.render({ + text: { + type: 'text', + label: 'noActiveFeatures' + } + }, component); + } + }); + } + } +}; + + +/*------------------------------------------------------------------------------ +1.2 SETTINGS +------------------------------------------------------------------------------*/ + +Menu.header.section_end.button_vert.onClickRender.settings = { + type: 'folder', + before: '', + label: 'settings', + parent: '.satus-main__container', + onclick: function() { + document.querySelector('.satus-dialog__scrim').click(); + }, + + section: { + type: 'section', + + developer_options: { + type: 'folder', + before: '', + label: 'developerOptions', + + custom_js_section_label: { + type: 'text', + class: 'satus-section--label', + label: 'customJs' + }, + + custom_js_section: { + type: 'section', + custom_js: { + type: 'text-field', + onrender: function() { + this.value = satus.storage.get('custom_js') || ''; + }, + oninput: function() { + satus.storage.set('custom_js', this.value); + } + } + }, + + custom_css_section_label: { + type: 'text', + class: 'satus-section--label', + label: 'customCss' + }, + + custom_css_section: { + type: 'section', + custom_css: { + type: 'text-field', + onrender: function() { + this.value = satus.storage.get('custom_css') || ''; + }, + oninput: function() { + satus.storage.set('custom_css', this.value); + } + } + }, + + /*translations_section_label: { + type: 'text', + class: 'satus-section--label', + label: 'translations' + }, + + translations_section: { + type: 'section', + onrender: function() { + satus.search('language', Menu, function(result) { + var languages = result.language.options; + + for (var i = 0, l = languages.length; i < l; i++) { + + } + }) + } + }*/ + }, + }, + + section0: { + type: 'section', + + appearance: { + type: 'folder', + before: '', + label: 'appearance', + + general: { + type: 'section', + label: 'general', + + header: { + type: 'folder', + label: 'header', + + section: { + type: 'section', + + title_version: { + type: 'switch', + label: 'version' + } + } + }, + home: { + type: 'folder', + label: 'home', + + section: { + type: 'section', + + improvedtube_home: { + type: 'select', + label: 'style', + options: [{ + label: 'bubbles', + value: 'bubbles' + }, { + label: 'list', + value: 'list' + }] + } + }, + + categories: { + type: 'section', + label: 'categories', + + it_general: { + type: 'switch', + label: 'general', + value: true + }, + it_appearance: { + type: 'switch', + label: 'appearance', + value: true + }, + it_themes: { + type: 'switch', + label: 'themes', + value: true + }, + it_player: { + type: 'switch', + label: 'player', + value: true + }, + it_playlist: { + type: 'switch', + label: 'playlist', + value: true + }, + it_channel: { + type: 'switch', + label: 'channel', + value: true + }, + it_shortcuts: { + type: 'switch', + label: 'shortcuts', + value: true + }, + it_mixer: { + type: 'switch', + label: 'mixer', + value: true + }, + it_analyzer: { + type: 'switch', + label: 'analyzer', + value: true + }, + it_blacklist: { + type: 'switch', + label: 'blacklist', + value: true + } + } + } + }, + icons: { + type: 'section', + label: 'icons', + + improvedtube_youtube_icon: { + label: 'improvedtubeIconOnYoutube', + type: 'select', + options: [{ + label: 'disabled', + value: 'disabled' + }, { + label: 'youtubeHeaderLeft', + value: 'header_left' + }, { + label: 'youtubeHeaderRight', + value: 'header_right' + }, { + label: 'draggable', + value: 'draggable' + }, { + label: 'belowPlayer', + value: 'below_player' + }] + }, + improvedtube_browser_icon: { + label: 'improvedtubeIconInBrowser', + type: 'select', + + options: [{ + label: 'onlyActiveOnYoutube', + value: 'youtube' + }, { + label: 'alwaysActive', + value: 'always' + }] + } + } + }, + languages: { + type: 'folder', + before: '', + label: 'languages', + + section: { + type: 'section', + + language: { + label: 'improvedtubeLanguage', + type: 'select', + onchange: function(name, value) { + satus.memory.set('locale', {}); + + satus.locale(function() { + document.querySelector('.satus-main__container').innerHTML = ''; + + document.querySelector('.satus-header__title').innerText = satus.locale.getMessage('languages'); + document.querySelector('#search').placeholder = satus.locale.getMessage('search'); + + satus.render(document.querySelector('.satus-main__container'), Menu.main.section.settings.section.languages); + }); + }, + options: [{ + value: 'en', + label: 'English' + }, { + value: 'ko', + label: '한국어' + }, { + value: 'es', + label: 'Español (España)' + }, { + value: 'ru', + label: 'Русский' + }, { + value: 'de', + label: 'Deutsch' + }, { + value: 'zh_TW', + label: '中文 (繁體)' + }, { + value: 'pt_PT', + label: 'Português' + }, { + value: 'pt_BR', + label: 'Português (Brasil)' + }, { + value: 'zh_CN', + label: '中文 (简体)' + }, { + value: 'fr', + label: 'Français' + }, { + value: 'ja', + label: '日本語' + }, { + value: 'tr', + label: 'Türkçe' + }, { + value: 'tr', + label: 'Italiano' + }, { + value: 'nl', + label: 'Nederlands' + }, { + value: 'ar', + label: 'العربية' + }, { + value: 'id', + label: 'Bahasa Indonesia' + }, { + value: 'nb', + label: 'Norsk' + }, { + value: 'nb_NO', + label: 'Norsk (Bokmål)' + }, { + value: 'el', + label: 'Ελληνικά' + }, { + value: 'bn', + label: 'বাংলা' + }, { + value: 'hin', + label: 'हिन्दी' + }, { + value: 'sk', + label: 'Slovenčina' + }] + }, + youtube_language: { + label: 'youtubeLanguage', + type: 'select', + options: [{ + value: "en", + label: "English" + }, { + value: "es", + label: "Español (España)" + }, { + value: "es-419", + label: "Español (Latinoamérica)" + }, { + value: "es-US", + label: "Español (US)" + }, { + value: "ru", + label: "Русский" + }, { + value: "de", + label: "Deutsch" + }, { + value: "pt-PT", + label: "Português" + }, { + value: "pt", + label: "Português (Brasil)" + }, { + value: "fr", + label: "Français" + }, { + value: "pl", + label: "Polski" + }, { + value: "ja", + label: "日本語" + }, { + value: "af", + label: "Afrikaans" + }, { + value: "az", + label: "Azərbaycan" + }, { + value: "id", + label: "Bahasa Indonesia" + }, { + value: "ms", + label: "Bahasa Malaysia" + }, { + value: "bs", + label: "Bosanski" + }, { + value: "ca", + label: "Català" + }, { + value: "cs", + label: "Čeština" + }, { + value: "da", + label: "Dansk" + }, { + value: "et", + label: "Eesti" + }, { + value: "eu", + label: "Euskara" + }, { + value: "fil", + label: "Filipino" + }, { + value: "fr-CA", + label: "Français (Canada)" + }, { + value: "gl", + label: "Galego" + }, { + value: "hr", + label: "Hrvatski" + }, { + value: "zu", + label: "IsiZulu" + }, { + value: "is", + label: "Íslenska" + }, { + value: "it", + label: "Italiano" + }, { + value: "sw", + label: "Kiswahili" + }, { + value: "lv", + label: "Latviešu valoda" + }, { + value: "lt", + label: "Lietuvių" + }, { + value: "hu", + label: "Magyar" + }, { + value: "nl", + label: "Nederlands" + }, { + value: "no", + label: "Norsk" + }, { + value: "uz", + label: "O‘zbek" + }, { + value: "ro", + label: "Română" + }, { + value: "sq", + label: "Shqip" + }, { + value: "sk", + label: "Slovenčina" + }, { + value: "sl", + label: "Slovenščina" + }, { + value: "sr-Latn", + label: "Srpski" + }, { + value: "fi", + label: "Suomi" + }, { + value: "sv", + label: "Svenska" + }, { + value: "vi", + label: "Tiếng Việt" + }, { + value: "tr", + label: "Türkçe" + }, { + value: "be", + label: "Беларуская" + }, { + value: "bg", + label: "Български" + }, { + value: "ky", + label: "Кыргызча" + }, { + value: "kk", + label: "Қазақ Тілі" + }, { + value: "mk", + label: "Македонски" + }, { + value: "mn", + label: "Монгол" + }, { + value: "sr", + label: "Српски" + }, { + value: "uk", + label: "Українська" + }, { + value: "el", + label: "Ελληνικά" + }, { + value: "hy", + label: "Հայերեն" + }, { + value: "iw", + label: "עברית" + }, { + value: "ur", + label: "اردو" + }, { + value: "ar", + label: "العربية" + }, { + value: "fa", + label: "فارسی" + }, { + value: "ne", + label: "नेपाली" + }, { + value: "mr", + label: "मराठी" + }, { + value: "hi", + label: "हिन्दी" + }, { + value: "bn", + label: "বাংলা" + }, { + value: "pa", + label: "ਪੰਜਾਬੀ" + }, { + value: "gu", + label: "ગુજરાતી" + }, { + value: "ta", + label: "தமிழ்" + }, { + value: "te", + label: "తెలుగు" + }, { + value: "kn", + label: "ಕನ್ನಡ" + }, { + value: "ml", + label: "മലയാളം" + }, { + value: "si", + label: "සිංහල" + }, { + value: "th", + label: "ภาษาไทย" + }, { + value: "lo", + label: "ລາວ" + }, { + value: "my", + label: "ဗမာ" + }, { + value: "ka", + label: "ქართული" + }, { + value: "am", + label: "አማርኛ" + }, { + value: "km", + label: "ខ្មែរ" + }, { + value: "zh-CN", + label: "中文 (简体)" + }, { + value: "zh-TW", + label: "中文 (繁體)" + }, { + value: "zh-HK", + label: "中文 (香港)" + }, { + value: "ko", + label: "한국어" + }] + } + } + }, + backup_and_reset: { + type: 'folder', + label: 'backupAndReset', + before: '', + + section: { + type: 'section', + import_settings: { + type: 'button', + label: 'importSettings', + + onclick: function() { + try { + var input = document.createElement('input'); + + input.type = 'file'; + + input.addEventListener('change', function() { + var file_reader = new FileReader(); + + file_reader.onload = function() { + var data = JSON.parse(this.result); + + for (var i in data) { + satus.storage.set(i, data[i]); + } + + satus.render({ + type: 'dialog', + class: 'satus-dialog--confirm', + + message: { + type: 'text', + label: 'successfullyImportedSettings' + }, + section: { + type: 'section', + class: 'controls', + style: { + 'justify-content': 'flex-end', + 'display': 'flex' + }, + + cancel: { + type: 'button', + label: 'cancel', + onclick: function() { + var scrim = document.querySelectorAll('.satus-dialog__scrim'); + + scrim[scrim.length - 1].click(); + } + }, + ok: { + type: 'button', + label: 'OK', + onclick: function() { + var scrim = document.querySelectorAll('.satus-dialog__scrim'); + + scrim[scrim.length - 1].click(); + } + } + } + }); + }; + + file_reader.readAsText(this.files[0]); + }); + + input.click(); + } catch (err) { + chrome.runtime.sendMessage({ + name: 'dialog-error', + value: err + }); + } + } + }, + export_settings: { + type: 'button', + label: 'exportSettings', + + onclick: function() { + chrome.runtime.sendMessage({ + name: 'download', + filename: 'improvedtube-settings.json', + value: satus.storage + }); + } + }, + reset_all_settings: { + type: 'button', + label: 'resetAllSettings', + + onclick: function() { + satus.render({ + type: 'dialog', + class: 'satus-dialog--confirm', + + message: { + type: 'text', + label: 'thisWillResetAllSettings' + }, + section: { + type: 'section', + class: 'controls', + style: { + 'justify-content': 'flex-end', + 'display': 'flex' + }, + + cancel: { + type: 'button', + label: 'cancel', + onclick: function() { + var scrim = document.querySelectorAll('.satus-dialog__scrim'); + + scrim[scrim.length - 1].click(); + } + }, + accept: { + type: 'button', + label: 'accept', + onclick: function() { + var scrim = document.querySelectorAll('.satus-dialog__scrim'); + + satus.storage.clear(); + + scrim[scrim.length - 1].click(); + } + } + } + }); + } + }, + delete_youtube_cookies: { + type: 'button', + label: 'deleteYoutubeCookies', + + onclick: function() { + satus.render({ + type: 'dialog', + class: 'satus-dialog--confirm', + + message: { + type: 'text', + label: 'thisWillRemoveAllYouTubeCookies', + style: { + 'width': '100%', + 'opacity': '.8' + } + }, + section: { + type: 'section', + class: 'controls', + style: { + 'justify-content': 'flex-end', + 'display': 'flex' + }, + + cancel: { + type: 'button', + label: 'cancel', + onclick: function() { + var scrim = document.querySelectorAll('.satus-dialog__scrim'); + + scrim[scrim.length - 1].click(); + } + }, + accept: { + type: 'button', + label: 'accept', + onclick: function() { + var scrim = document.querySelectorAll('.satus-dialog__scrim'); + + chrome.tabs.query({}, function(tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + name: 'delete_youtube_cookies' + }); + } + } + }); + + scrim[scrim.length - 1].click(); + } + } + } + }); + } + } + } + }, + date_and_time: { + type: 'folder', + label: 'dateAndTime', + before: '', + + section: { + type: 'section', + + use_24_hour_format: { + type: 'switch', + label: 'use24HourFormat', + value: true + } + } + }, + about: { + type: 'folder', + before: '', + label: 'about', + appearanceId: 'about', + + section: { + type: 'section', + + onrender: function() { + var component = this, + manifest = chrome.runtime.getManifest(), + user = satus.modules.user(), + object = { + extension_section: { + type: 'section', + label: 'extension', + style: { + 'flex-direction': 'column', + 'flex': '0' + }, + + version: { + type: 'text', + label: 'version', + value: manifest.version + }, + permissions: { + type: 'text', + label: 'permissions', + value: manifest.permissions.join(', ').replace('https://www.youtube.com/', 'YouTube') + }, + }, + browser_section: { + type: 'section', + label: 'browser', + style: { + 'flex-direction': 'column', + 'flex': '0' + }, + + name: { + type: 'text', + label: 'name', + value: user.browser.name + }, + version: { + type: 'text', + label: 'version', + value: user.browser.version + }, + platform: { + type: 'text', + label: 'platform', + value: user.browser.platform + }, + video_formats: { + type: 'text', + label: 'videoFormats', + value: user.browser.video + }, + audio_formats: { + type: 'text', + label: 'audioFormats', + value: user.browser.audio + }, + flash: { + type: 'text', + label: 'flash', + value: user.browser.flash ? true : false + } + }, + os_section: { + type: 'section', + label: 'os', + style: { + 'flex-direction': 'column', + 'flex': '0' + }, + + os_name: { + type: 'text', + label: 'name', + value: user.os.name + }, + + os_type: { + type: 'text', + label: 'type', + value: user.os.type + } + }, + device_section: { + type: 'section', + label: 'device', + style: { + 'flex-direction': 'column', + 'flex': '0' + }, + + screen: { + type: 'text', + label: 'screen', + value: user.device.screen + }, + cores: { + type: 'text', + label: 'cores', + value: user.device.cores + }, + gpu: { + type: 'text', + label: 'gpu', + value: user.device.gpu + }, + ram: { + type: 'text', + label: 'ram', + value: user.device.ram + } + } + }; + + setTimeout(function() { + satus.render(object, component.parentNode); + + component.remove(); + }); + } + } + } + } +}; + + +/*------------------------------------------------------------------------------ +1.3 MIXER +------------------------------------------------------------------------------*/ + +Menu.header.section_end.button_vert.onClickRender.mixer = { + type: 'folder', + before: '', + label: 'mixer', + class: 'satus-folder--mixer', + appearanceId: 'mixer', + onopen: function() { + var self = this; + + if (chrome && chrome.tabs) { + chrome.tabs.query({}, function(tabs) { + var mixer = {}; + + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + var tab = tabs[i]; + + if (/(\?|\&)v=/.test(tab.url)) { + mixer[i] = { + type: 'section', + class: 'satus-section--mixer', + style: { + 'background': 'url(https://img.youtube.com/vi/' + tab.url.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '/0.jpg) center center / cover no-repeat #000', + }, + + section: { + type: 'section', + dataset: { + 'noConnectionLabel': satus.locale.getMessage('tryToReloadThePage') || 'tryToReloadThePage' + }, + + mixer_volume: { + type: 'slider', + label: 'volume', + dataset: { + id: tab.id, + element: 'audio' + }, + max: 100, + onrender: function() { + var self = this; + + chrome.tabs.sendMessage(Number(this.dataset.id), { + name: 'request_volume' + }, function(response) { + if (response) { + document.querySelector('div[data-element="audio"][data-id="' + Number(self.dataset.id) + '"]').change(response.value); + } else { + self.parentNode.parentNode.classList.add('noconnection'); + } + }); + }, + onchange: function(value) { + chrome.tabs.sendMessage(Number(this.dataset.id), { + name: 'change_volume', + volume: value + }); + } + }, + mixer_playback_speed: { + type: 'slider', + label: 'playbackSpeed', + dataset: { + id: tab.id, + element: 'playback_speed' + }, + min: .1, + max: 8, + step: .05, + onrender: function() { + var self = this; + + chrome.tabs.sendMessage(Number(this.dataset.id), { + name: 'request_playback_speed' + }, function(response) { + if (response) { + document.querySelector('div[data-element="playback_speed"][data-id="' + Number(self.dataset.id) + '"]').change(Number(response.value)); + } else { + self.parentNode.parentNode.classList.add('noconnection'); + } + }); + }, + onchange: function(value) { + chrome.tabs.sendMessage(Number(this.dataset.id), { + name: 'change_playback_speed', + playback_speed: value + }); + } + } + } + }; + } + } + } + + if (Object.entries(mixer).length === 0) { + mixer.section = { + type: 'section', + + message: { + type: 'text', + class: 'satus-section--message', + label: 'noOpenVideoTabs' + } + }; + } + + document.querySelector('.satus-dialog__scrim').click(); + + satus.render(mixer, self); + }); + } + } +}; + + +/*------------------------------------------------------------------------------ +2.0 MAIN +------------------------------------------------------------------------------*/ + +Menu.main = { + type: 'main', + appearanceId: 'home', + on: { + change: function(container) { + var item = this.history[this.history.length - 1], + id = item.appearanceId; + + document.body.dataset.appearance = id; + container.dataset.appearance = id; + + document.querySelector('.satus-text--title').innerText = satus.locale.getMessage(item.label) || 'ImprovedTube'; + } + }, + + section: { + type: 'section' + }, + + footer: { + type: 'button', + class: 'satus-button--ad', + label: 'DARK MODE', + title: 'Dark Mode', + onclick: function() { + window.open('https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl', '_blank'); + } + }, + + info: { + type: 'section', + class: 'satus-section--info', + + email: { + type: 'button', + label: 'Email', + title: 'bugs@improvedtube.com', + onclick: function() { + window.open('mailto:bugs@improvedtube.com', '_blank'); + } + }, + github: { + type: 'button', + label: 'GitHub', + title: '/ImprovedTube/ImprovedTube', + onclick: function() { + window.open('https://github.com/ImprovedTube/ImprovedTube/', '_blank'); + } + }, + website: { + type: 'button', + label: 'Website', + title: 'improvedtube.com', + onclick: function() { + window.open('http://www.improvedtube.com/', '_blank'); + } + } + } +}; + + +/*------------------------------------------------------------------------------ +2.1 GENERAL +------------------------------------------------------------------------------*/ + +Menu.main.section.general = { + type: 'folder', + before: '', + label: 'general', + class: 'satus-folder--general', + appearanceId: 'general', + + section: { + type: 'section', + + /*legacy_youtube: { + type: 'switch', + label: 'legacyYoutube', + tags: 'old' + },*/ + youtube_home_page: { + type: 'select', + label: 'youtubeHomePage', + options: [{ + label: 'home', + value: '/' + }, { + label: 'trending', + value: '/feed/trending' + }, { + label: 'subscriptions', + value: '/feed/subscriptions' + }, { + label: 'history', + value: '/feed/history' + }, { + label: 'watchLater', + value: '/playlist?list=WL' + }, { + label: 'search', + value: 'search' + }], + tags: 'trending,subscriptions,history,watch,search' + }, + collapse_of_subscription_sections: { + type: 'switch', + label: 'collapseOfSubscriptionSections' + }, + add_scroll_to_top: { + type: 'switch', + label: 'addScrollToTop', + tags: 'up' + }, + remove_related_search_results: { + type: 'switch', + label: 'removeRelatedSearchResults' + }, + confirmation_before_closing: { + type: 'switch', + label: 'confirmationBeforeClosing', + tags: 'random prevent close exit' + }, + mark_watched_videos: { + type: 'switch', + label: 'markWatchedVideos' + }, + only_one_player_instance_playing: { + type: 'switch', + label: 'onlyOnePlayerInstancePlaying' + } + }, + + section_label__thumbnails: { + type: 'text', + class: 'satus-section--label', + label: 'thumbnails' + }, + + thumbnails_section: { + type: 'section', + + squared_user_images: { + type: 'switch', + label: 'squaredUserImages', + tags: 'avatar' + }, + hd_thumbnails: { + type: 'switch', + label: 'hdThumbnails', + tags: 'preview quality' + }, + hide_animated_thumbnails: { + type: 'switch', + label: 'hideAnimatedThumbnails', + tags: 'preview' + } + } +}; + + +/*------------------------------------------------------------------------------ +2.2 APPEARANCE +------------------------------------------------------------------------------*/ + +Menu.main.section.appearance = { + type: 'folder', + before: '', + label: 'appearance', + class: 'satus-folder--appearance', + appearanceId: 'appearance', + + header: { + type: 'folder', + label: 'header', + class: 'satus-folder--header', + + section: { + type: 'section', + + header_position: { + type: 'select', + label: 'position', + options: [{ + label: 'normal', + value: 'normal' + }, { + label: 'hidden', + value: 'hidden' + }, { + label: 'hover', + value: 'hover' + }, { + label: 'hiddenOnVideoPage', + value: 'hidden_on_video_page' + }, { + label: 'hoverOnVideoPage', + value: 'hover_on_video_page' + }, { + label: 'static', + value: 'static' + }], + tags: 'hide,hover,static,top' + }, + header_improve_logo: { + type: 'switch', + label: 'improveLogo', + tags: 'youtube' + }, + header_hide_right_buttons: { + type: 'switch', + label: 'hideRightButtons', + tags: 'user' + } + } + }, + player: { + type: 'folder', + label: 'player', + class: 'satus-folder--player', + + section: { + type: 'section', + + player_hide_annotations: { + type: 'switch', + label: 'hideAnnotations', + tags: 'hide,remove,elements' + }, + player_hide_cards: { + type: 'switch', + label: 'hideCards', + tags: 'hide,remove,elements' + }, + player_show_cards_on_mouse_hover: { + type: 'switch', + label: 'showCardsOnMouseHover', + tags: 'hide,remove,elements' + }, + player_size: { + type: 'select', + label: 'playerSize', + options: [{ + label: 'doNotChange', + value: 'do_not_change' + }, { + label: 'fullWindow', + value: 'full_window' + }, { + label: 'fitToWindow', + value: 'fit_to_window' + }, { + label: '240p', + value: '240p' + }, { + label: '360p', + value: '360p' + }, { + label: '480p', + value: '480p' + }, { + label: '576p', + value: '576p' + }, { + label: '720p', + value: '720p' + }, { + label: '1080p', + value: '1080p' + }, { + label: '1440p', + value: '1440p' + }, { + label: '2160p', + value: '2160p' + }] + }, + forced_theater_mode: { + type: 'switch', + label: 'forcedTheaterMode', + tags: 'wide' + }, + player_color: { + label: 'playerColor', + type: 'select', + options: [{ + label: 'red', + value: 'red' + }, { + label: 'pink', + value: 'pink' + }, { + label: 'purple', + value: 'purple' + }, { + label: 'deepPurple', + value: 'deep_purple' + }, { + label: 'indigo', + value: 'indigo' + }, { + label: 'blue', + value: 'blue' + }, { + label: 'lightBlue', + value: 'light_blue' + }, { + label: 'cyan', + value: 'cyan' + }, { + label: 'teal', + value: 'teal' + }, { + label: 'green', + value: 'green' + }, { + label: 'lightGreen', + value: 'light_green' + }, { + label: 'lime', + value: 'lime' + }, { + label: 'yellow', + value: 'yellow' + }, { + label: 'amber', + value: 'amber' + }, { + label: 'orange', + value: 'orange' + }, { + label: 'deepOrange', + value: 'deep_orange' + }, { + label: 'brown', + value: 'brown' + }, { + label: 'blueGray', + value: 'blue_gray' + }, { + label: 'white', + value: 'white' + }], + tags: 'style' + }, + player_transparent_background: { + type: 'switch', + label: 'transparentBackground' + }, + player_hide_endscreen: { + type: 'switch', + label: 'hideEndscreen' + }, + player_hd_thumbnail: { + type: 'switch', + label: 'hdThumbnail', + tags: 'preview' + }, + hide_scroll_for_details: { + type: 'switch', + label: 'hideScrollForDetails', + tags: 'remove,hide' + }, + always_show_progress_bar: { + type: 'switch', + label: 'alwaysShowProgressBar' + } + } + }, + details: { + type: 'folder', + label: 'details', + class: 'satus-folder--details', + + section: { + type: 'section', + + hide_details: { + type: 'switch', + label: 'hideDetails', + tags: 'hide,remove' + }, + description: { + type: 'select', + label: 'description', + + options: [{ + label: 'normal', + value: 'normal' + }, { + label: 'expanded', + value: 'expanded' + }, { + label: 'hidden', + value: 'hidden' + }], + tags: 'hide,remove' + }, + hide_views_count: { + type: 'switch', + label: 'hideViewsCount', + tags: 'hide,remove' + }, + likes: { + type: 'select', + label: 'likes', + + options: [{ + label: 'normal', + value: 'normal' + }, { + label: 'iconsOnly', + value: 'icons_only' + }, { + label: 'hidden', + value: 'hidden' + }], + tags: 'hide,remove' + }, + how_long_ago_the_video_was_uploaded: { + type: 'switch', + label: 'howLongAgoTheVideoWasUploaded' + }, + channel_videos_count: { + type: 'switch', + label: 'showChannelVideosCount' + }, + red_dislike_button: { + type: 'switch', + label: 'redDislikeButton' + } + } + }, + sidebar: { + type: 'folder', + label: 'sidebar', + class: 'satus-folder--sidebar', + + section: { + type: 'section', + + livechat: { + type: 'select', + label: 'liveChat', + + options: [{ + label: 'normal', + value: 'normal' + }, { + label: 'collapsed', + value: 'collapsed' + }, { + label: 'hidden', + value: 'hidden' + }] + }, + hide_playlist: { + type: 'switch', + label: 'hidePlaylist' + }, + related_videos: { + type: 'select', + label: 'relatedVideos', + options: [{ + label: 'normal', + value: 'normal' + }, { + label: 'collapsed', + value: 'collapsed' + }, { + label: 'hidden', + value: 'hidden' + }], + tags: 'right' + } + } + }, + comments: { + type: 'folder', + label: 'comments', + class: 'satus-folder--comments', + + section: { + type: 'section', + + comments: { + type: 'select', + label: 'comments', + + options: [{ + label: 'normal', + value: 'normal' + }, { + label: 'collapsed', + value: 'collapsed' + }, { + label: 'hidden', + value: 'hidden' + }] + } + } + }, + footer: { + type: 'folder', + label: 'footer', + class: 'satus-folder--footer', + + section: { + type: 'section', + + hide_footer: { + type: 'switch', + label: 'hideFooter', + tags: 'bottom' + } + } + } +}; + + +/*------------------------------------------------------------------------------ +2.3 THEMES +------------------------------------------------------------------------------*/ + +Menu.main.section.themes = { + type: 'folder', + before: '', + label: 'themes', + class: 'satus-folder--themes', + appearanceId: 'themes', + + section: { + type: 'section', + + my_colors: { + type: 'folder', + label: 'myColors', + + section: { + type: 'section', + + theme_my_colors: { + type: 'switch', + label: 'activate' + } + }, + + section2: { + type: 'section', + + theme_primary_color: { + type: 'color-picker', + label: 'primaryColor', + value: 'rgba(200,200,200)' + }, + theme_text_color: { + type: 'color-picker', + label: 'textColor', + value: 'rgba(25,25,25)' + } + } + }, + filters: { + type: 'folder', + label: 'filters', + + section: { + type: 'section', + + bluelight: { + type: 'slider', + label: 'bluelight', + step: 1, + max: 90, + value: 0 + }, + dim: { + type: 'slider', + label: 'dim', + step: 1, + max: 90, + value: 0 + } + } + }, + schedule: { + type: 'folder', + label: 'schedule', + + section: { + type: 'section', + + schedule: { + type: 'select', + label: 'schedule', + + options: [{ + label: 'disabled', + value: 'disabled' + }, { + label: 'sunsetToSunrise', + value: 'sunset_to_sunrise' + }, { + label: 'systemPeferenceDark', + value: 'system_peference_dark' + }, { + label: 'systemPeferenceLight', + value: 'system_peference_light' + }] + }, + schedule_time_from: { + type: 'select', + label: 'timeFrom', + options: [{ + label: '00:00', + value: '00:00' + }, { + label: '01:00', + value: '01:00' + }, { + label: '02:00', + value: '02:00' + }, { + label: '03:00', + value: '03:00' + }, { + label: '04:00', + value: '04:00' + }, { + label: '05:00', + value: '05:00' + }, { + label: '06:00', + value: '06:00' + }, { + label: '07:00', + value: '07:00' + }, { + label: '08:00', + value: '08:00' + }, { + label: '09:00', + value: '09:00' + }, { + label: '10:00', + value: '10:00' + }, { + label: '11:00', + value: '11:00' + }, { + label: '12:00', + value: '12:00' + }, { + label: '13:00', + value: '13:00' + }, { + label: '14:00', + value: '14:00' + }, { + label: '15:00', + value: '15:00' + }, { + label: '16:00', + value: '16:00' + }, { + label: '17:00', + value: '17:00' + }, { + label: '18:00', + value: '18:00' + }, { + label: '19:00', + value: '19:00' + }, { + label: '20:00', + value: '20:00' + }, { + label: '21:00', + value: '21:00' + }, { + label: '22:00', + value: '22:00' + }, { + label: '23:00', + value: '23:00' + }] + }, + schedule_time_to: { + type: 'select', + label: 'timeTo', + options: [{ + label: '00:00', + value: '00:00' + }, { + label: '01:00', + value: '01:00' + }, { + label: '02:00', + value: '02:00' + }, { + label: '03:00', + value: '03:00' + }, { + label: '04:00', + value: '04:00' + }, { + label: '05:00', + value: '05:00' + }, { + label: '06:00', + value: '06:00' + }, { + label: '07:00', + value: '07:00' + }, { + label: '08:00', + value: '08:00' + }, { + label: '09:00', + value: '09:00' + }, { + label: '10:00', + value: '10:00' + }, { + label: '11:00', + value: '11:00' + }, { + label: '12:00', + value: '12:00' + }, { + label: '13:00', + value: '13:00' + }, { + label: '14:00', + value: '14:00' + }, { + label: '15:00', + value: '15:00' + }, { + label: '16:00', + value: '16:00' + }, { + label: '17:00', + value: '17:00' + }, { + label: '18:00', + value: '18:00' + }, { + label: '19:00', + value: '19:00' + }, { + label: '20:00', + value: '20:00' + }, { + label: '21:00', + value: '21:00' + }, { + label: '22:00', + value: '22:00' + }, { + label: '23:00', + value: '23:00' + }] + } + } + }, + font: { + type: 'select', + label: 'font', + options: [{ + label: 'Roboto', + value: 'Roboto' + }, { + label: 'Open Sans', + value: 'Open+Sans' + }, { + label: 'Lato', + value: 'Lato' + }, { + label: 'Montserrat', + value: 'Montserrat' + }, { + label: 'Source Sans Pro', + value: 'Source+Sans+Pro' + }, { + label: 'Roboto Condensed', + value: 'Roboto+Condensed' + }, { + label: 'Oswald', + value: 'Oswald' + }, { + label: 'Comfortaa', + value: 'Comfortaa' + }, { + label: 'Roboto Mono', + value: 'Roboto+Mono' + }, { + label: 'Raleway', + value: 'Raleway' + }, { + label: 'Poppins', + value: 'Poppins' + }, { + label: 'Noto Sans', + value: 'Noto+Sans' + }, { + label: 'Roboto Slab', + value: 'Roboto+Slab' + }, { + label: 'Marriweather', + value: 'Marriweather' + }, { + label: 'PT Sans', + value: 'PT+Sans' + }] + } + }, + + default_dark_theme: { + type: 'switch', + label: 'dark', + class: 'satus-switch--dark', + + onchange: themeChange + }, + night_theme: { + type: 'switch', + label: 'night', + class: 'satus-switch--night', + + onchange: themeChange + }, + dawn_theme: { + type: 'switch', + label: 'dawn', + class: 'satus-switch--dawn', + + onchange: themeChange + }, + sunset_theme: { + type: 'switch', + label: 'sunset', + class: 'satus-switch--sunset', + + onchange: themeChange + }, + desert_theme: { + type: 'switch', + label: 'desert', + class: 'satus-switch--desert', + + onchange: themeChange + }, + plain_theme: { + type: 'switch', + label: 'plain', + class: 'satus-switch--plain', + + onchange: themeChange + }, + black_theme: { + type: 'switch', + label: 'black', + class: 'satus-switch--black', + + onchange: themeChange + } +}; + + +/*------------------------------------------------------------------------------ +2.4 PLAYER +------------------------------------------------------------------------------*/ + +Menu.main.section.player = { + type: 'folder', + before: '', + label: 'player', + class: 'satus-folder--player', + appearanceId: 'player', + + general: { + type: 'section', + + player_autoplay: { + type: 'switch', + label: 'autoplay', + value: true + }, + player_autopause_when_switching_tabs: { + type: 'switch', + label: 'autopauseWhenSwitchingTabs' + }, + player_forced_playback_speed: { + type: 'switch', + label: 'forcedPlaybackSpeed', + id: 'forced-playback-speed', + onrender: function() { + this.dataset.value = satus.storage.player_forced_playback_speed; + }, + onchange: function() { + this.dataset.value = satus.storage.player_forced_playback_speed; + } + }, + player_playback_speed: { + type: 'slider', + label: 'playbackSpeed', + textarea: true, + value: 1, + min: .1, + max: 8, + step: .05 + }, + player_subtitles: { + type: 'switch', + label: 'subtitles', + value: true + }, + player_crop_chapter_titles: { + type: 'switch', + label: 'cropChapterTitles', + value: true + }, + up_next_autoplay: { + type: 'switch', + label: 'upNextAutoplay', + value: true + }, + player_ads: { + label: 'ads', + type: 'select', + options: [{ + label: 'onAllVideos', + value: 'all_videos', + default: 'true' + }, { + label: 'onSubscribedChannels', + value: 'subscribed_channels' + }, { + label: 'blockAll', + value: 'block_all' + }] + }, + mini_player: { + type: 'switch', + label: 'customMiniPlayer' + }, + player_autofullscreen: { + type: 'switch', + label: 'autoFullscreen' + } + }, + + section_label__videos: { + type: 'text', + class: 'satus-section--label', + label: 'videos' + }, + + video: { + type: 'section', + + player_quality: { + type: 'select', + label: 'quality', + options: [{ + label: 'auto', + value: 'auto' + }, { + label: '144p', + value: 'tiny' + }, { + label: '240p', + value: 'small' + }, { + label: '360p', + value: 'medium' + }, { + label: '480p', + value: 'large' + }, { + label: '720p', + value: 'hd720' + }, { + label: '1080p', + value: 'hd1080' + }, { + label: '1440p', + value: 'hd1440' + }, { + label: '2160p', + value: 'hd2160' + }, { + label: '2880p', + value: 'hd2880' + }, { + label: '4320p', + value: 'highres' + }] + }, + player_h264: { + type: 'switch', + label: 'codecH264', + + onclick: function() { + console.log(this.dataset.value); + if (this.querySelector('input').checked === true) { + satus.render({ + type: 'dialog', + class: 'satus-dialog--confirm', + + message: { + type: 'text', + label: 'youtubeLimitsVideoQualityTo1080pForH264Codec', + style: { + 'width': '100%', + 'opacity': '.8' + } + }, + section: { + type: 'section', + class: 'controls', + style: { + 'justify-content': 'flex-end' + }, + + cancel: { + type: 'button', + label: 'cancel', + onclick: function() { + let scrim = document.querySelectorAll('.satus-dialog__scrim'); + + scrim[scrim.length - 1].click(); + } + }, + ok: { + type: 'button', + label: 'OK', + onclick: function() { + let scrim = document.querySelectorAll('.satus-dialog__scrim'); + + scrim[scrim.length - 1].click(); + } + } + } + }); + } + } + }, + player_60fps: { + type: 'switch', + label: 'allow60fps', + value: true + }, + }, + + section_label__audio: { + type: 'text', + class: 'satus-section--label', + label: 'audio' + }, + + audio: { + type: 'section', + label: 'audio', + + player_forced_volume: { + type: 'switch', + label: 'forcedVolume', + id: 'forced-volume', + onrender: function() { + this.dataset.value = satus.storage.player_forced_volume; + }, + onchange: function() { + this.dataset.value = satus.storage.player_forced_volume; + } + }, + player_volume: { + type: 'slider', + label: 'volume', + step: 1, + max: 100, + value: 100 + }, + player_loudness_normalization: { + type: 'switch', + label: 'loudnessNormalization', + value: true + } + }, + + section_label__buttons: { + type: 'text', + class: 'satus-section--label', + label: 'buttons' + }, + + buttons: { + type: 'section', + + player_screenshot: { + type: 'folder', + label: 'screenshot', + + section: { + type: 'section', + + player_screenshot_button: { + type: 'switch', + label: 'activate' + }, + player_screenshot_save_as: { + type: 'select', + label: 'saveAs', + options: [{ + label: 'file', + value: 'file' + }, { + label: 'clipboard', + value: 'clipboard' + }] + } + } + }, + player_repeat: { + type: 'folder', + label: 'repeat', + + section: { + type: 'section', + + player_repeat_button: { + type: 'switch', + label: 'activate' + }, + player_always_repeat: { + type: 'switch', + label: 'alwaysActive' + } + } + }, + player_rotate_button: { + type: 'switch', + label: 'rotate' + }, + player_popup_button: { + type: 'switch', + label: 'popupPlayer' + } + } +}; + + +/*------------------------------------------------------------------------------ +2.5 PLAYLIST +------------------------------------------------------------------------------*/ + +Menu.main.section.playlist = { + type: 'folder', + before: '', + label: 'playlist', + class: 'satus-folder--playlist', + appearanceId: 'playlist', + + section: { + type: 'section', + + playlist_autoplay: { + type: 'switch', + label: 'autoplay', + value: true + }, + playlist_up_next_autoplay: { + type: 'switch', + label: 'upNextAutoplay', + value: true + }, + playlist_reverse: { + type: 'switch', + label: 'reverse' + } + }, + + section2: { + type: 'section', + + playlist_repeat: { + type: 'switch', + label: 'repeat' + }, + playlist_shuffle: { + type: 'switch', + label: 'shuffle' + } + } +}; + + +/*------------------------------------------------------------------------------ +2.6 CHANNEL +------------------------------------------------------------------------------*/ + +Menu.main.section.channel = { + type: 'folder', + before: '', + label: 'channel', + class: 'satus-folder--channel', + appearanceId: 'channel', + + section: { + type: 'section', + + channel_default_tab: { + type: 'select', + label: 'defaultChannelTab', + options: [{ + label: 'home', + value: '/home' + }, { + label: 'videos', + value: '/videos' + }, { + label: 'playlists', + value: '/playlists' + }] + }, + channel_trailer_autoplay: { + type: 'switch', + label: 'trailerAutoplay', + value: true + }, + channel_hide_featured_content: { + type: 'switch', + label: 'hideFeaturedContent' + } + } +}; + + +/*------------------------------------------------------------------------------ +2.7 SHORTCUTS +------------------------------------------------------------------------------*/ + +Menu.main.section.shortcuts = { + type: 'folder', + before: '', + label: 'shortcuts', + class: 'satus-folder--shortcut', + appearanceId: 'shortcuts', + + player_section_label: { + type: 'text', + class: 'satus-section--label', + label: 'player' + }, + + player_section: { + type: 'section', + + shortcut_picture_in_picture: { + type: 'shortcut', + label: 'pictureInPicture' + }, + shortcut_play_pause: { + type: 'shortcut', + label: 'playPause', + value: { + key: ' ' + } + }, + shortcut_stop: { + type: 'shortcut', + label: 'stop' + }, + shortcut_next_video: { + type: 'shortcut', + label: 'nextVideo', + value: { + key: 'N', + shiftKey: true + } + }, + shortcut_prev_video: { + type: 'shortcut', + label: 'previousVideo', + value: { + key: 'P', + shiftKey: true + } + }, + shortcut_seek_backward: { + type: 'shortcut', + label: 'seekBackward10Seconds', + value: { + key: 'J' + } + }, + shortcut_seek_forward: { + type: 'shortcut', + label: 'seekForward10Seconds', + value: { + key: 'I' + } + }, + shortcut_volume: { + type: 'folder', + label: 'volume', + + section_step: { + type: 'section', + + shortcut_volume_step: { + type: 'slider', + label: 'step', + min: 1, + max: 10, + step: 1, + value: 5 + } + }, + + section: { + type: 'section', + + shortcut_increase_volume: { + type: 'shortcut', + label: 'increaseVolume' + }, + shortcut_decrease_volume: { + type: 'shortcut', + label: 'decreaseVolume' + } + } + }, + shortcut_playback_speed: { + type: 'folder', + label: 'playbackSpeed', + + section_step: { + type: 'section', + + shortcut_playback_speed_step: { + type: 'slider', + label: 'step', + min: .05, + max: .5, + step: .05, + value: .05 + } + }, + + section: { + type: 'section', + + shortcut_increase_playback_speed: { + type: 'shortcut', + label: 'increasePlaybackSpeed' + }, + shortcut_decrease_playback_speed: { + type: 'shortcut', + label: 'decreasePlaybackSpeed' + } + } + }, + shortcut_activate_fullscreen: { + type: 'shortcut', + label: 'activateFullscreen', + value: { + key: 'F' + } + }, + shortcut_activate_captions: { + type: 'shortcut', + label: 'activateCaptions', + value: { + key: 'C' + } + }, + shortcut_quality: { + type: 'folder', + label: 'quality', + + section: { + type: 'section', + + shortcut_240p: { + type: 'shortcut', + label: '240p' + }, + shortcut_360p: { + type: 'shortcut', + label: '360p' + }, + shortcut_480p: { + type: 'shortcut', + label: '480p' + }, + shortcut_720p: { + type: 'shortcut', + label: '720p' + }, + shortcut_1080p: { + type: 'shortcut', + label: '1080p' + }, + shortcut_1440p: { + type: 'shortcut', + label: '1440p' + }, + shortcut_2160p: { + type: 'shortcut', + label: '2160p' + }, + shortcut_2880p: { + type: 'shortcut', + label: '2880p' + }, + shortcut_4320p: { + type: 'shortcut', + label: '4320p' + } + } + }, + shortcut_custom_mini_player: { + type: 'shortcut', + label: 'customMiniPlayer' + }, + shortcut_screenshot: { + type: 'shortcut', + label: 'screenshot' + }, + shortcut_stats_for_nerds: { + type: 'shortcut', + label: 'statsForNerds' + }, + shortcut_toggle_cards: { + type: 'shortcut', + label: 'toggleCards' + } + }, + + appearance_section_label: { + type: 'text', + class: 'satus-section--label', + label: 'appearance' + }, + + appearance_section: { + type: 'section', + + shortcut_go_to_search_box: { + type: 'shortcut', + label: 'goToSearchBox', + value: { + key: '/' + } + }, + shortcut_like_shortcut: { + type: 'shortcut', + label: 'like' + }, + shortcut_dislike_shortcut: { + type: 'shortcut', + label: 'dislike' + }, + shortcut_dark_theme: { + type: 'shortcut', + label: 'darkTheme' + } + } +}; + + +/*------------------------------------------------------------------------------ +2.8 BLACKLIST +------------------------------------------------------------------------------*/ + +Menu.main.section.blacklist = { + type: 'folder', + before: '', + label: 'blacklist', + class: 'satus-folder--blacklist', + appearanceId: 'blacklist', + + section_activate: { + type: 'section', + + blacklist_activate: { + type: 'switch', + label: 'activate' + } + }, + + section: { + type: 'section', + + channels: { + type: 'folder', + label: 'channels', + onopen: function() { + var self = this; + + if (satus.storage.blacklist && satus.storage.blacklist.channels) { + var list = {}; + + for (var item in satus.storage.blacklist.channels) { + if (satus.storage.blacklist.channels[item] !== false) { + var title = satus.storage.blacklist.channels[item].title || ''; + + list[item] = { + type: 'section', + label: title.length > 20 ? title.substr(0, 20) + '...' : title, + class: 'satus-section--blacklist', + style: { + 'background-image': 'url(' + satus.storage.blacklist.channels[item].preview + ')', + 'background-color': '#000' + }, + + section: { + type: 'section', + + delete: { + type: 'button', + icon: '', + onclick: function() { + delete satus.storage.blacklist.channels[item]; + + satus.storage.set('blacklist', satus.storage.blacklist); + + this.classList.add('removing'); + + setTimeout(function() { + self.remove(); + }, 250); + } + } + } + }; + } + } + + if (Object.keys(list).length === 0) { + list.section = { + type: 'section', + class: 'satus-section--message', + + error: { + type: 'text', + label: 'empty' + } + }; + } + + satus.render(list, this); + } else { + satus.render({ + type: 'section', + class: 'satus-section--message', + + error: { + type: 'text', + label: 'empty' + } + }, this); + } + } + }, + videos: { + type: 'folder', + label: 'videos', + onopen: function() { + var self = this; + + if (satus.storage.blacklist && satus.storage.blacklist.videos) { + let list = {}; + + for (let item in satus.storage.blacklist.videos) { + if (satus.storage.blacklist.videos[item] !== false) { + let title = satus.storage.blacklist.videos[item].title || ''; + + list[item] = { + type: 'section', + label: title.length > 20 ? title.substr(0, 20) + '...' : title, + class: 'satus-section--blacklist', + style: { + 'background-image': 'url(https://img.youtube.com/vi/' + item + '/0.jpg)' + }, + + section: { + type: 'section', + + delete: { + type: 'button', + icon: '', + onclick: function() { + delete satus.storage.blacklist.videos[item]; + + satus.storage.set('blacklist', satus.storage.blacklist); + this.parentNode.parentNode.classList.add('removing'); + + setTimeout(function() { + self.parentNode.parentNode.remove(); + }, 250); + } + } + } + }; + } + } + + if (Object.keys(list).length === 0) { + list.section = { + type: 'section', + class: 'satus-section--message', + + error: { + type: 'text', + label: 'empty' + } + }; + } + + satus.render(list, this); + } else { + satus.render({ + type: 'section', + class: 'satus-section--message', + + error: { + type: 'text', + label: 'empty' + } + }, this); + } + } + } + } +}; + + +/*------------------------------------------------------------------------------ +2.9 ANALYZER +------------------------------------------------------------------------------*/ + +Menu.main.section.analyzer = { + type: 'folder', + before: '', + label: 'analyzer', + class: 'satus-folder--analyzer', + appearanceId: 'analyzer', + + activ_section: { + type: 'section', + + analyzer_activation: { + type: 'switch', + label: 'activate' + } + }, + + section: { + type: 'section', + style: { + 'flex-direction': 'column', + 'align-items': 'flex-start' + }, + onrender: function() { + var data = satus.storage.get('analyzer') || {}, + all_data = {}, + all_data_sort = [], + all_time_value = 0, + current_date = new Date().toDateString(), + container = document.createElement('div'), + top_text_container = document.createElement('div'), + today_at = document.createElement('div'), + watch_time = document.createElement('div'), + all_time = document.createElement('div'), + chart = document.createElement('div'), + bottom_text_container = document.createElement('div'); + + container.className = 'analyzer-container'; + top_text_container.className = 'analyzer-top-text'; + watch_time.className = 'analyzer-watch-time'; + today_at.className = 'analyzer-today-at'; + all_time.className = 'analyzer-all-time'; + chart.className = 'analyzer-chart'; + bottom_text_container.className = 'analyzer-bottom'; + + if (data[current_date]) { + for (let i in data[current_date]) { + if (data[current_date][i]) { + for (let j in data[current_date][i]) { + if (!all_data[j]) { + all_data[j] = 0; + } + + all_data[j] += data[current_date][i][j]; + } + } + } + } + + for (let i in all_data) { + all_data_sort.push([i, all_data[i]]); + all_time_value += all_data[i]; + } + + all_data_sort.sort(function(a, b) { + return b[1] - a[1]; + }); + + var now_minutes = new Date().getMinutes(); + + watch_time.innerText = satus.locale.getMessage('watchTime') || 'watchTime'; + today_at.innerText = satus.locale.getMessage('todayAt') + ' ' + (new Date().getHours() + ':' + (now_minutes < 10 ? '0' + now_minutes : now_minutes)) || 'todayAt'; + all_time.innerText = Math.floor(all_time_value / 60) + 'h ' + (all_time_value - Math.floor(all_time_value / 60) * 60) + 'm'; + + let h = 0; + + for (let i = 0; i < 4; i++) { + let column = document.createElement('div'); + + column.className = 'analyzer-column'; + + for (let j = 0; j < 6; j++) { + let hours = h + ':00'; + + h++; + + let data_column = document.createElement('div'); + + data_column.className = 'analyzer-data-column'; + + if (data[current_date] && data[current_date][hours]) { + for (let k in data[current_date][hours]) { + let block = document.createElement('div'); + + block.className = 'analyzer-data'; + + let height = data[current_date][hours][k] * 100 / 60; + + block.title = k; + block.style.height = height + '%'; + + if (k === all_data_sort[0][0]) { + block.className += ' first'; + } else if (k === all_data_sort[1][0]) { + block.className += ' second'; + } else if (k === all_data_sort[2][0]) { + block.className += ' third'; + } + + data_column.appendChild(block); + } + } + + column.appendChild(data_column); + } + + chart.appendChild(column); + } + + + for (let i = 0; i < 3; i++) { + if (all_data_sort[i]) { + let cont = document.createElement('div'), + label = document.createElement('div'), + value = document.createElement('div'); + + label.className = 'label'; + + label.innerText = all_data_sort[i][0]; + value.innerText = Math.floor(all_data_sort[i][1] / 60) + 'h ' + (all_data_sort[i][1] - Math.floor(all_data_sort[i][1] / 60) * 60) + 'm'; + + cont.appendChild(label); + cont.appendChild(value); + bottom_text_container.appendChild(cont); + } + } + + container.appendChild(all_time); + container.appendChild(chart); + this.appendChild(top_text_container); + top_text_container.appendChild(watch_time); + top_text_container.appendChild(today_at); + container.appendChild(bottom_text_container); + this.appendChild(container); + } + } +}; + + +/*------------------------------------------------------------------------------ +3.0 INITIALIZATION +------------------------------------------------------------------------------*/ + +function themeChange(event) { + if (event.target.checked) { + let themes = document.querySelectorAll('.satus-switch > input:checked:not([data-storage-key="red_popup_theme"])'); + + for (let i = 0, l = themes.length; i < l; i++) { + if (themes[i] !== event.target) { + themes[i].click(); + } + } + } + + if (satus.storage.get('default_dark_theme') === true) { + document.documentElement.setAttribute('theme', 'dark'); + } else if (satus.storage.get('night_theme') === true) { + document.documentElement.setAttribute('theme', 'night'); + } else if (satus.storage.get('dawn_theme') === true) { + document.documentElement.setAttribute('theme', 'dawn'); + } else if (satus.storage.get('sunset_theme') === true) { + document.documentElement.setAttribute('theme', 'sunset'); + } else if (satus.storage.get('desert_theme') === true) { + document.documentElement.setAttribute('theme', 'desert'); + } else if (satus.storage.get('plain_theme') === true) { + document.documentElement.setAttribute('theme', 'plain'); + } else if (satus.storage.get('black_theme') === true) { + document.documentElement.setAttribute('theme', 'black'); + } else { + document.documentElement.removeAttribute('theme'); + } +} + +satus.storage.import(function() { + for (var key in satus.storage.data) { + document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), items[key]); + } + + if (satus.isset(satus.storage.get('red_popup_theme')) === false || satus.storage.get('red_popup_theme') === true) { + document.documentElement.setAttribute('popup-theme', 'red'); + } + + if (satus.storage.get('default_dark_theme') === true) { + document.documentElement.setAttribute('theme', 'dark'); + } + + if (satus.storage.get('night_theme') === true) { + document.documentElement.setAttribute('theme', 'night'); + } + + if (satus.storage.get('dawn_theme') === true) { + document.documentElement.setAttribute('theme', 'dawn'); + } + + if (satus.storage.get('sunset_theme') === true) { + document.documentElement.setAttribute('theme', 'sunset'); + } + + if (satus.storage.get('desert_theme') === true) { + document.documentElement.setAttribute('theme', 'desert'); + } + + if (satus.storage.get('plain_theme') === true) { + document.documentElement.setAttribute('theme', 'plain'); + } + + if (satus.storage.get('black_theme') === true) { + document.documentElement.setAttribute('theme', 'black'); + } + + satus.locale.import(satus.storage.get('language'), function() { + satus.modules.updateStorageKeys(Menu, function() { + satus.render(Menu, document.body); + }); + }); +}); + +chrome.storage.onChanged.addListener(function(changes) { + for (var key in changes) { + document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), changes[key].newValue); + } +}); \ No newline at end of file diff --git a/satus.css b/satus.css new file mode 100644 index 000000000..c740c65e7 --- /dev/null +++ b/satus.css @@ -0,0 +1,1397 @@ + +/*-------------------------------------------------------------- +>>> BUTTON +--------------------------------------------------------------*/ + +.satus-button +{ + font-size: inherit; + + position: relative; + + display: flex; + + margin: 0; + + cursor: pointer; + + color: inherit; + border: none; + outline: none; + background-color: var(--satus-theme-button); + + -webkit-tap-highlight-color: transparent; + align-items: center; + -webkit-appearance: none; +} + +.satus-button::before +{ + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + + opacity: 0; + background-color: var(--satus-theme-ripple); +} + +.satus-button:focus::before, +.satus-button:hover::before +{ + opacity: 1; +} + +.satus-button__icon +{ + width: 24px; + height: 24px; +} + +.satus-button svg +{ + width: 100%; + + color: inherit; + + fill: var(--satus-theme-primary); +} + +.satus-button__icon + .satus-button__label +{ + margin-left: 8px; +} + +/*-------------------------------------------------------------- +>>> COLOR PICKER +--------------------------------------------------------------*/ + +.satus-color-picker +{ + font-size: inherit; + + position: relative; + + display: flex; + + box-sizing: border-box; + margin: 0; + + cursor: pointer; + + color: inherit; + border: none; + outline: none; + background-color: var(--satus-theme-button); + + justify-content: space-between; + -webkit-tap-highlight-color: transparent; + align-items: center; + -webkit-appearance: none; +} + +.satus-color-picker__value +{ + width: 24px; + height: 24px; + + border-radius: 50%; +} + +.satus-dialog--color-picker .satus-scrollbar__content +{ + display: flex; + flex-direction: column; + + align-items: center; +} + +.satus-dialog--color-picker .satus-button +{ + box-sizing: unset; + width: 24px; + height: 24px; + margin: 0 0 8px; + padding: 8px; + + border-radius: 50%; +} + +.satus-dialog--color-picker .satus-button:hover +{ + background-color: var(--satus-theme-ripple); +} + +.satus-dialog--color-picker .satus-button::before +{ + content: unset; +} + +.satus-dialog--color-picker .satus-button svg +{ + fill: transparent; + stroke: var(--satus-theme-primary); +} + +.satus-dialog--color-picker canvas +{ + width: 200px; + height: 200px; + margin: 0 0 16px; +} + +/*-------------------------------------------------------------- +>>> DIALOG +--------------------------------------------------------------*/ + +.satus-dialog +{ + position: absolute; + z-index: 100; + top: 0; + left: 0; + + display: flex; + + width: 100%; + height: 100vh; + + justify-content: center; + align-items: center; +} + +.satus-dialog__scrim +{ + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + animation: fadeIn 150ms linear forwards; + + opacity: 0; + background: rgba(25,25,25,.2); + + fill: var(--satus-theme-dialog-text); + backdrop-filter: blur(8px); +} + +.satus-dialog__surface +{ + font-size: 14px; + + display: flex; + flex-direction: column; + + width: 95%; + min-width: 240px; + max-width: 560px; + max-height: 80%; + padding: 8px 0; + + transform: scale(.8); + animation: zoomIn 150ms linear forwards; + animation-delay: 20ms; + + opacity: 0; + color: var(--satus-theme-dialog-text); + border-radius: 6px; + background-color: var(--satus-theme-dialog); + box-shadow: inset 0 -1px 1px 1px rgba(0,0,0,.1), 0 2px 6px rgba(0, 0, 0, .15); +} + +.satus-dialog--closing .satus-dialog__scrim +{ + animation: fadeOut 70ms linear forwards; +} + +.satus-dialog--closing .satus-dialog__surface +{ + animation: zoomOut 70ms linear forwards; +} + +@keyframes fadeIn +{ + from + { + opacity: 0; + } + to + { + opacity: 1; + } +} + +@keyframes fadeOut +{ + from + { + opacity: 1; + } + to + { + opacity: 0; + } +} + +@keyframes zoomIn +{ + from + { + transform: scale(.8); + + opacity: 0; + } + to + { + transform: scale(1); + + opacity: 1; + } +} + +@keyframes zoomOut +{ + from + { + transform: scale(1); + + opacity: 1; + } + to + { + transform: scale(.8); + + opacity: 0; + } +} + +/*-------------------------------------------------------------- +>>> FOLDER +--------------------------------------------------------------*/ + +.satus-folder +{ + text-align: left +} + +/*-------------------------------------------------------------- +>>> HEADER +--------------------------------------------------------------*/ + +.satus-header +{ + position: relative; + z-index: 1; + + display: flex; + + box-sizing: border-box; + width: 100%; + min-height: 58px; + padding: 0 8px; + + color: var(--satus-theme-header-text); + background-color: var(--satus-theme-header); + box-shadow: 0 0 3px rgba(0,0,0,.1); + + fill: var(--satus-theme-header-text); +} + +.satus-header .satus-text--title +{ + font-size: 15px; + font-weight: 400; +} + +/*-------------------------------------------------------------- +>>> LIST +--------------------------------------------------------------*/ + +.satus-list--compact, +.satus-list--compact li +{ + margin: 0; + padding: 0; + + list-style: none; +} + +/*----------------------------------------------------------------------------- +>>> MAIN +------------------------------------------------------------------------------- +1.0 General +2.0 Animations + 2.1 Opening + 2.2 Closing +-----------------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------------- +1.0 General +-----------------------------------------------------------------------------*/ + +.satus-main +{ + position: relative; + + overflow: hidden; + + width: 100%; + height: 100%; + + color: var(--satus-theme-main-text); + background-color: var(--satus-theme-main); + + fill: var(--satus-theme-main-text); +} + +.satus-main__container +{ + position: absolute; + top: 0; + left: 0; + + overflow: auto; + + box-sizing: border-box; + width: 100%; + height: 100%; + + transition: 250ms; + + background-color: var(--satus-theme-main); + + will-change: transform; +} + + +/*----------------------------------------------------------------------------- +2.0 Animations +-----------------------------------------------------------------------------*/ + +.satus-main__container--fade-in-left +{ + animation: fadeInLeft 250ms; +} + +.satus-main__container--fade-in-right +{ + animation: fadeInRight 250ms; +} + +.satus-main__container--fade-out-left +{ + animation: fadeOutLeft 250ms; +} + +.satus-main__container--fade-out-right +{ + animation: fadeOutRight 250ms; +} + +@keyframes fadeInLeft +{ + from + { + transform: translateX(-10%); + + opacity: 0; + } + to + { + transform: translateX(0%); + + opacity: 1; + } +} + +@keyframes fadeInRight +{ + from + { + transform: translateX(10%); + + opacity: 0; + } + to + { + transform: translateX(0%); + + opacity: 1; + } +} + +@keyframes fadeOutLeft +{ + from + { + transform: translateX(0%); + + opacity: 1; + } + to + { + transform: translateX(-10%); + + opacity: 0; + } +} + +@keyframes fadeOutRight +{ + from + { + transform: translateX(0%); + + opacity: 1; + } + to + { + transform: translateX(10%); + + opacity: 0; + } +} + +.satus-scrollbar +{ + position: relative; + + overflow: hidden; + + width: 100%; + height: 100%; +} + +.satus-scrollbar__wrapper +{ + overflow-y: scroll; + + width: 150%; + height: 100%; +} + +.satus-scrollbar__thumb +{ + position: absolute; + z-index: 999; + top: 0; + right: 0; + + min-height: 32px; + padding: 0 2px; + + transition: background-color 200ms, opacity 300ms; + + opacity: 0; +} + +.satus-scrollbar__thumb::after +{ + display: block; + + width: 3px; + height: 100%; + + content: ''; + + background-color: var(--satus-theme-scrollbar); +} + +.satus-scrollbar__thumb:hover::after +{ + background-color: var(--satus-theme-scrollbar-focus); +} + +.satus-scrollbar.active .satus-scrollbar__thumb, +.satus-scrollbar__thumb:hover +{ + transition: background-color 200ms, opacity 100ms; + + opacity: 1; +} + +/*-------------------------------------------------------------- +>>> SECTION +--------------------------------------------------------------*/ + +.satus-section +{ + display: inline-flex; + + box-sizing: border-box; + + background-color: var(--satus-theme-section); + + align-items: center; + flex: 1; +} + +/*-------------------------------------------------------------- +>>> SELECT +--------------------------------------------------------------*/ + +.satus-select +{ + justify-content: space-between; +} + +.satus-select__value +{ + font-size: 12px; + + text-align: right; + + opacity: .7; +} + + +.satus-dialog--select-component .satus-dialog__surface +{ + position: absolute; + + max-width: unset; + + transform: unset; + animation: unset; + + opacity: 1; +} + +.satus-dialog--select-component .satus-section +{ + top: 48px; + + flex-direction: column; + + transform: translateY(-16px); + animation: listIn 50ms linear forwards; + animation-delay: 20ms; + + opacity: .5; +} + +.satus-dialog--select-component .satus-button +{ + width: 100%; + height: 48px; + padding: 0 16px; +} + +@keyframes listIn +{ + from + { + transform: translateY(-16px); + + opacity: .5; + } + to + { + transform: translateY(0); + + opacity: 1; + } +} + +.satus-shortcut +{ + position: relative; + + display: flex; + + box-sizing: border-box; + width: 100%; + height: 48px; + min-height: 48px; + padding: 0 16px; + + cursor: pointer; + + justify-content: space-between; + align-items: center; +} + +.satus-shortcut:hover +{ + background-color: var(--satus-theme-ripple); +} + +.satus-shortcut > .label +{ + margin: 0 0 4px 0; +} + +.satus-shortcut > .value +{ + font-size: 13px; + + opacity: .5; +} + +.satus-shortcut-dialog-label +{ + font-size: 16px; + font-weight: 500; + + box-sizing: border-box; + width: 100%; + margin: 4px 0 10px; + padding: 0 16px; +} + +.satus-shortcut__canvas +{ + display: flex; + + box-sizing: border-box; + width: 100%; + height: 68px; + padding: 16px; + + background: #dedede; + + align-items: center; +} + +.satus-shortcut__key +{ + display: flex; + + box-sizing: border-box; + min-width: 32px; + height: 32px; + padding: 4px 8px; + + border-radius: 4px; + background: #fff; + box-shadow: 0 1px 3px rgba(0,0,0,.15), inset 0 -3px 0 rgba(0,0,0,.1); + + align-items: center; + justify-content: center; +} + +.satus-shortcut__plus +{ + position: relative; + + width: 12px; + height: 12px; + margin: 8px; +} + +.satus-shortcut__plus::before +{ + position: absolute; + top: 0; + left: 5px; + + width: 2px; + height: 12px; + + content: ''; + + background-color: #aaa; +} + +.satus-shortcut__plus::after +{ + position: absolute; + top: 5px; + left: 0; + + width: 12px; + height: 2px; + + content: ''; + + background-color: #aaa; +} + +.satus-shortcut__mouse +{ + position: relative; + + display: flex; + + width: 28px; + height: 36px; + + border-radius: 50%; + border-top-left-radius: 12px; + border-top-right-radius: 12px; + background: #fff; + box-shadow: 0 1px 3px rgba(0,0,0,.15), inset 0 -3px 0 rgba(0,0,0,.1); +} + +.satus-shortcut__mouse > div +{ + position: absolute; + top: 0; + left: 13px; + + width: 2px; + height: 11px; + + border-radius: 2px; + background: #ccc; +} + +.satus-shortcut__mouse::before +{ + position: absolute; + top: -4px; + left: 21px; + + width: 2px; + height: 18px; + + content: ''; + + background: #f96754; +} + +.satus-shortcut__mouse.false::after +{ + position: absolute; + top: -12px; + left: 17px; + + width: 0; + height: 0; + + content: ''; + + border-right: 5px solid transparent; + border-bottom: 8px solid #f96754; + border-left: 5px solid transparent; +} + +.satus-shortcut__mouse.true::after +{ + position: absolute; + top: 14px; + left: 17px; + + width: 0; + height: 0; + + content: ''; + + border-top: 8px solid #f96754; + border-right: 5px solid transparent; + border-left: 5px solid transparent; +} + +.satus-section_shortcut +{ + width: 100%; + margin: 8px 0 0; + + justify-content: flex-end; +} + +.satus-button_shortcut +{ + font-weight: 500; + + overflow: hidden; + + height: 28px; + min-height: 28px; + margin-right: 2px; + padding: 4px 8px; + + text-transform: uppercase; + + color: #f96754; + border-radius: 4px; +} + +/*-------------------------------------------------------------- +>>> SLIDER +--------------------------------------------------------------*/ + +.satus-slider +{ + position: relative; + + display: flex; + flex-direction: column; + + box-sizing: border-box; + width: 100%; + min-height: 64px; + padding: 0 16px; + + -webkit-user-select: none; + -moz-user-select: -moz-none; + user-select: none; + + outline: none; + + align-items: flex-start; + justify-content: center; +} + +.satus-slider::before +{ + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + + opacity: 0; + background-color: var(--satus-theme-button); +} + +.satus-slider:hover::before +{ + opacity: 1; +} + + +/* LABEL */ + +.satus-slider__label +{ + cursor: default; +} + + +.satus-slider__range +{ + position: absolute; + z-index: 1; + top: 0; + left: 0; + + box-sizing: border-box; + width: 100%; + height: 100%; + margin: 0; + padding: 0; + + opacity: 0; +} + + +/* TRACK */ + +.satus-slider__container +{ + position: relative; + + width: 100%; + height: 12px; + margin: 8px 0 0; +} + +.satus-slider__track-container +{ + position: absolute; + top: calc(50% - 1px); + + width: 100%; + height: 2px; + + pointer-events: none; +} + +.satus-slider__track-container::before +{ + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 2px; + + content: ''; + + opacity: .26; + background-color: var(--satus-theme-primary); +} + +.satus-slider__track +{ + position: relative; + + width: 0; + height: 100%; + + background-color: var(--satus-theme-primary); + + will-change: width; +} + +.satus-slider:not(.satus-slider--dragging) .satus-slider__track +{ + transition: width 100ms ease-out; +} + +.satus-slider__thumb +{ + position: absolute; + top: -5px; + right: -12px; + + width: 12px; + height: 12px; + + border-radius: 50%; + background-color: var(--satus-theme-primary); + box-shadow: 0 1px 5px rgba(0, 0, 0, .15); +} + +.satus-slider .satus-slider__thumb::before +{ + font-size: 13px; + + position: absolute; + top: -34px; + left: 50%; + + visibility: hidden; + + box-sizing: border-box; + min-width: 28px; + padding: 4px 4px; + + content: attr(data-value); + transform: translateX(-50%); + text-align: center; + pointer-events: none; + + color: #fff; + border-radius: 4px; + background: var(--satus-theme-tooltip); +} + +.satus-slider:hover .satus-slider__thumb::before, +.satus-slider__range:focus .satus-slider__container .satus-slider__thumb::before +{ + visibility: visible; +} + +.satus-slider__ring +{ + position: absolute; + top: -11px; + right: -18px; + + width: 24px; + height: 24px; + + transition: 100ms; + transform: scale(0); + + opacity: 0; + border-radius: 50%; + background-color: var(--satus-theme-primary); +} + +.satus-slider__range:focus + .satus-slider__container .satus-slider__ring +{ + transform: scale(1); + + opacity: .25; +} + +/*-------------------------------------------------------------- +>>> SWITCH +--------------------------------------------------------------*/ + +.satus-switch +{ + position: relative; + + display: flex; + + box-sizing: border-box; + width: 100%; + height: 48px; + padding: 0 16px; + + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: -moz-none; + user-select: none; + + background-color: transparent; + + align-items: center; + justify-content: space-between; +} + +.satus-switch:hover +{ + background-color: var(--satus-theme-ripple); +} + +.satus-switch__input +{ + position: absolute; + z-index: 1; + top: 0; + left: 0; + + width: 100%; + height: 100%; + margin: 0; + padding: 0; + + opacity: 0; + outline: none; + + -webkit-appearance: none; +} + + +/* LABEL */ + +.satus-switch__label +{ + padding: 0 16px 0 0; +} + + +/* TRACK*/ + +.satus-switch__track +{ + position: relative; + + width: 32px; + min-width: 32px; + height: 18px; + + border-radius: 18px; + background: #bdbdbd; +} + +.satus-switch__track::before +{ + position: absolute; + top: -7px; + left: -7px; + + width: 32px; + height: 32px; + + content: ''; + transition: left .1s cubic-bezier(.4, 0, .2, 1), transform 200ms, background-color 200ms; + transform: scale(0); + + opacity: 0; + border-radius: 50%; + background-color: #000; + + will-change: left, transform, background-color; +} + +.satus-switch__input:checked + .satus-switch__track::before +{ + left: 8px; + + background-color: var(--satus-theme-primary, #54d2a3); +} + +.satus-switch__input:focus + .satus-switch__track::before +{ + transform: scale(1); + + opacity: .08; +} + +.satus-switch__input:checked:focus + .satus-switch__track::before +{ + opacity: .25; +} + +.satus-switch__track::after +{ + position: absolute; + + width: 14px; + height: 14px; + + content: ''; + transition: transform .1s cubic-bezier(.4, 0, .2, 1); + transform: translate(2px, 2px); + + border-radius: 50%; + background-color: #fff; + + will-change: transform; +} + +.satus-switch__input:checked + .satus-switch__track +{ + background: var(--satus-theme-primary, #54d2a3); +} + +.satus-switch__input:checked + .satus-switch__track::after +{ + transform: translate(16px, 2px); +} + +/*-------------------------------------------------------------- +>>> TABLE +--------------------------------------------------------------*/ + +.satus-table +{ + font-size: .875rem; + + position: relative; + + overflow: hidden; + display: flex; + flex-direction: column; + box-sizing: border-box; + + border: 1px solid #ececec; + border-radius: 6px; +} + +.satus-table__head +{ + position: relative; + z-index: 1; + + display: flex; + + box-sizing: border-box; + width: 100%; + height: 44px; + padding: 0 8px; + + background: #fff; + box-shadow: 0 2px 4px rgba(0, 0, 0, .1); +} + +.satus-table__head > div +{ + font-weight: 600; + + display: inline-flex; + + box-sizing: border-box; + padding: 0 8px 0 0; + + opacity: .7; + + flex-shrink: 0; + align-items: center; +} + +.satus-table__head > div:last-child +{ + padding: 0; +} + +.satus-table__head > div:hover +{ + cursor: pointer; + + opacity: 1; +} + +.satus-table__head > div[data-sorting=false]:hover +{ + cursor: default; +} + +.satus-table__head > div > span +{ + position: relative; +} + +.satus-table__head > div[data-sorting=asc] > span::after +{ + position: absolute; + top: calc(50% - 2px); + right: -14px; + + width: 0; + height: 0; + + content: ''; + + border-right: 4px solid transparent; + border-bottom: 5px solid currentColor; + border-left: 4px solid transparent; +} + +.satus-table__head > div[data-sorting=desc] > span::after +{ + position: absolute; + top: calc(50% - 2px); + right: -13px; + + width: 0; + height: 0; + + content: ''; + + border-top: 5px solid currentColor; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} + +.satus-table__body +{ + overflow: hidden; + flex: 1; + + width: 100%; + height: calc(100% - 48px); + + background: #fff; +} + +.satus-table__row +{ + display: flex; + + padding: 0 8px; + + box-sizing: border-box; + + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +.satus-table__row:nth-child(2n) +{ + background: rgba(0,0,0,.03) +} + +.satus-table__cell +{ + overflow: hidden; + + box-sizing: border-box; + padding: 8px 8px 8px 0; + + white-space: nowrap; + word-wrap: break-word; + -webkit-hyphens: auto; + -moz-hyphens: auto; + hyphens: auto; + + overflow-wrap: break-word; + flex-shrink: 0; + + text-overflow: ellipsis; +} + +.satus-table__cell:last-child +{ + padding-right: 0; +} + +.satus-table__cell input +{ + width: 100%; + margin: 5px 0; + border: 1px solid #d2d2d2; + box-sizing: border-box; + padding: 1px 2px; + border-radius: 4px; + height: calc(100% - 10px); + outline: none +} + + + +.satus-table__paging > button +{ + min-width: 32px; + height: 32px; + padding: 0 8px; + + cursor: pointer; + + color: var(--satus-theme-on-surface, #555); + border: none; + background: transparent; +} + +.satus-table__paging > button.active +{ + color: #2979ff; +} + +/*-------------------------------------------------------------- +>>> TEXT +--------------------------------------------------------------*/ + +.satus-text +{ + margin: 0; + + color: inherit; + border: none; +} + +/*-------------------------------------------------------------- +>>> TEXT +--------------------------------------------------------------*/ + +.satus-text-field +{ + font: inherit; + + box-sizing: border-box; + width: 100%; + margin: 0; + padding: 0; + padding: 0 8px; + + color: inherit; + border: none; + outline: none; + background: unset; +} + +/*----------------------------------------------------------------------------- +>>> THEMES +------------------------------------------------------------------------------- +1.0 Default +-----------------------------------------------------------------------------*/ + +html +{ + --satus-theme-primary: #f6b465; + + --satus-theme-dialog: #f7f7f6; + --satus-theme-dialog-text: #777; + + --satus-theme-header: #fff; + --satus-theme-header-text: #777; + + --satus-theme-main: #f7f7f6; + --satus-theme-main-text: #777; + + --satus-theme-section: #fff; + + --satus-theme-button: transparent; + + --satus-theme-scrollbar: rgba(0, 0, 0, .2); + --satus-theme-scrollbar-focus: rgba(0, 0, 0, .4); + + --satus-theme-tooltip: rgba(0, 0, 0, .4); + + --satus-theme-ripple: rgba(0, 0, 0, .04); +} \ No newline at end of file diff --git a/satus.js b/satus.js new file mode 100644 index 000000000..0ade2fb0e --- /dev/null +++ b/satus.js @@ -0,0 +1,2183 @@ + +/*-------------------------------------------------------------- +>>> TABLE OF CONTENTS: +---------------------------------------------------------------- +# Events +# Render +# Camelize +# Animation duration +--------------------------------------------------------------*/ + +var satus = {}; + + +/*-------------------------------------------------------------- +# EVENTS +--------------------------------------------------------------*/ + +satus.events = {}; + +satus.on = function(event, handler) { + if (!this.isset(this.events[event])) { + this.events[event] = []; + } + + this.events[event].push(handler); +}; + + +/*-------------------------------------------------------------- +# COMPONENTS +--------------------------------------------------------------*/ + +satus.components = {}; + + +/*-------------------------------------------------------------- +# MODULES +--------------------------------------------------------------*/ + +satus.modules = {}; + + +/*-------------------------------------------------------------- +# ISSET +--------------------------------------------------------------*/ + +satus.isset = function(variable) { + if (typeof variable === 'undefined' || variable === null) { + return false; + } + + return true; +}; + + +/*-------------------------------------------------------------- +# CAMELIZE +--------------------------------------------------------------*/ + +satus.camelize = function(string) { + return string.replace(/-[a-z]/g, function(match) { + return match[1].toUpperCase(); + }); +}; + + +/*-------------------------------------------------------------- +# ANIMATION DURATION +--------------------------------------------------------------*/ + +satus.getAnimationDuration = function(element) { + return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; +}; +/*-------------------------------------------------------------- +>>> CHROMIUM STORAGE +---------------------------------------------------------------- +1.0 Get +2.0 Set +3.0 Import +4.0 Clear +--------------------------------------------------------------*/ + +satus.storage = {}; + +/*-------------------------------------------------------------- +# GET +--------------------------------------------------------------*/ + +satus.storage.get = function(name) { + var target = satus.storage; + + name = name.split('/').filter(function(value) { + return value != ''; + }); + + for (var i = 0, l = name.length; i < l; i++) { + if (satus.isset(target[name[i]])) { + target = target[name[i]]; + } else { + return undefined; + } + } + + return target; +}; + + +/*-------------------------------------------------------------- +# SET +--------------------------------------------------------------*/ + +satus.storage.set = function(name, value) { + var items = {}, + target = satus.storage; + + if (!satus.isset(name)) { + return false; + } + + name = name.split('/').filter(function(value) { + return value != ''; + }); + + for (var i = 0, l = name.length; i < l; i++) { + var item = name[i]; + + if (i < l - 1) { + + if (target[item]) { + target = target[item]; + } else { + target[item] = {}; + + target = target[item]; + } + } else { + target[item] = value; + } + } + + for (var key in satus.storage) { + if (typeof satus.storage[key] !== 'function') { + items[key] = satus.storage[key]; + } + } + + chrome.storage.local.set(items); +}; + + +/*-------------------------------------------------------------- +# IMPORT +--------------------------------------------------------------*/ + +satus.storage.import = function(callback) { + chrome.storage.local.get(function(items) { + for (var key in items) { + satus.storage[key] = items[key]; + } + + if (callback) { + callback(); + } + }); +}; + + +/*-------------------------------------------------------------- +# CLEAR +--------------------------------------------------------------*/ + +satus.storage.clear = function() { + chrome.storage.local.clear(); + + for (var key in satus.storage) { + if (typeof satus.storage[key] !== 'function') { + delete satus.storage[key]; + } + } +}; + +/*--------------------------------------------------------------- +>>> LOCALE +----------------------------------------------------------------- +# Get message +# Import locale +---------------------------------------------------------------*/ + +satus.locale = { + messages: {} +}; + + +/*--------------------------------------------------------------- +# GET MESSAGE +---------------------------------------------------------------*/ + +satus.locale.getMessage = function(string) { + return this.messages[string] || string; +}; + +satus.locale.get = satus.locale.getMessage; + + +/*--------------------------------------------------------------- +# IMPORT LOCALE +---------------------------------------------------------------*/ + +satus.locale.import = function(language, callback) { + var xhr = new XMLHttpRequest(); + + if (typeof language === 'function') { + var callback = language; + } + + if (typeof language !== 'string') { + var language = chrome.i18n.getUILanguage(); + } + + xhr.onload = function() { + try { + var object = JSON.parse(this.responseText); + + for (var key in object) { + satus.locale.messages[key] = object[key].message; + } + + callback(language); + } catch (err) { + function listener(request) { + if (request !== null && typeof request === 'object') { + if (request.name === 'translation_response') { + var object = JSON.parse(request.value); + + chrome.runtime.onMessage.removeListener(listener); + + for (var key in object) { + satus.locale.messages[key] = object[key].message; + } + + callback(language); + } + } + } + + chrome.runtime.onMessage.addListener(listener); + + chrome.runtime.sendMessage({ + name: 'translation_request', + path: '_locales/' + language + '/messages.json' + }); + } + }; + + xhr.onerror = function() { + if (language === 'en') { + callback(); + } else { + satus.locale.import('en', callback); + } + }; + + xhr.open('GET', '_locales/' + language + '/messages.json', true); + xhr.send(); +}; + +/*-------------------------------------------------------------- +>>> RENDER +--------------------------------------------------------------*/ + +satus.render = function(element, container, callback) { + function convert(object) { + if (object && object.type) { + var type = satus.camelize(object.type), + component = satus.components[type](object), + excluded_properties = ['type', 'label', 'class', 'title', 'storage']; + + function applyProperties(object, target) { + for (var key in object) { + if (satus.isset(object[key]) && typeof object[key] === 'object' && !object[key].type) { + if (typeof target[key] !== 'object') { + target[key] = {}; + } + + applyProperties(object[key], target[key]); + } else if (excluded_properties.indexOf(key) === -1) { + target[key] = object[key]; + } + } + } + + applyProperties(object, component); + + component.classList.add('satus-' + object.type); + + if (object.class) { + var class_list = object.class.split(' '); + + for (var i = 0, l = class_list.length; i < l; i++) { + component.classList.add(class_list[i]); + } + } + + if (object.before) { + var component_before = document.createElement('span'); + + component_before.innerHTML = object.before; + + for (var i = component_before.children.length - 1; i > -1; i--) { + component.insertBefore(component_before.children[i], component.firstChild); + } + } + + if (object.after) { + var component_after = document.createElement('span'); + + component_after.innerHTML = object.after; + + for (var i = component_after.children.length - 1; i > -1; i--) { + component.appendChild(component_after.children[i]); + } + } + + (container || document.body).appendChild(component); + + if (typeof component.onClickRender === 'object') { + component.addEventListener('click', function() { + satus.render(component.onClickRender); + }); + } + + if (satus.isset(satus.events.render)) { + for (var i = 0, l = satus.events.render.length; i < l; i++) { + satus.events.render[i](component, object); + } + } + + if (typeof component.onrender === 'function') { + component.onrender(object); + } + + if (callback) { + callback(); + } + } + } + + if (element.type) { + convert(element); + } else { + for (var key in element) { + convert(element[key]); + } + } +}; +/*-------------------------------------------------------------- +# CLONE NODE STYLES +--------------------------------------------------------------*/ + +satus.cloneNodeStyles = function(origin, target) { + target.style.cssText = window.getComputedStyle(origin, '').cssText; + + for (var i = 0, l = origin.children.length; i < l; i++) { + satus.cloneNodeStyles(origin.children[i], target.children[i]); + } +}; +/*----------------------------------------------------------------------------- +>>> «SEARCH» MODULE +-----------------------------------------------------------------------------*/ + +satus.search = function(query, object, callback, categories) { + var threads = 0, + folder = '', + results = {}; + + function parse(items) { + threads++; + + for (var key in items) { + var item = items[key]; + + if (categories === true && item.type === 'folder' && folder !== item.label) { + folder = item.label; + } + + if (['switch', 'select', 'slider'].indexOf(item.type) !== -1 && key.indexOf(query) !== -1) { + if (categories === true) { + if (!results[folder]) { + results[folder] = {}; + } + + results[folder][key] = item; + } else { + results[key] = item; + } + } + + if (typeof item === 'object') { + parse(item); + } + } + + threads--; + + if (threads === 0) { + callback(results); + } + } + + parse(object); +}; + +/*-------------------------------------------------------------- +>>> STORAGE KEYS +--------------------------------------------------------------*/ + +satus.modules.updateStorageKeys = function(object, callback) { + var threads = 0; + + function parse(items) { + threads++; + + for (var key in items) { + var item = items[key]; + + + if (item.type) { + item.storage_key = key; + } + + if (typeof item === 'object') { + parse(item); + } + } + + threads--; + + if (threads === 0) { + callback(); + } + } + + parse(object); +}; +/*----------------------------------------------------------------------------- +>>> «USER» MODULE +------------------------------------------------------------------------------- +1.0 Variables +2.0 Software + 2.1 OS + 2.2.1 Name + 2.2.2 Type + 2.2 Browser + 2.2.1 Name + 2.2.2 Version + 2.2.3 Platform + 2.2.4 Languages + 2.2.5 Cookies + 2.2.6 Flash + 2.2.8 Video formats + 2.2.9 Audio formats + 2.2.10 WebGL +3.0 Hardware + 3.1 Screen + 3.2 RAM + 3.3 GPU + 3.4 Cores + 3.5 Touch + 3.6 Connection +4.0 Clearing +-----------------------------------------------------------------------------*/ + +satus.modules.user = function() { + /*----------------------------------------------------------------------------- + 1.0 VARIABLES + -----------------------------------------------------------------------------*/ + + var user_agent = navigator.userAgent, + random_cookie = 'ta{t`nX6cMXK,Wsc', + video = document.createElement('video'), + video_formats = { + ogg: 'video/ogg; codecs="theora"', + h264: 'video/mp4; codecs="avc1.42E01E"', + webm: 'video/webm; codecs="vp8, vorbis"', + vp9: 'video/webm; codecs="vp9"', + hls: 'application/x-mpegURL; codecs="avc1.42E01E"' + }, + audio = document.createElement('audio'), + audio_formats = { + mp3: 'audio/mpeg', + mp4: 'audio/mp4', + aif: 'audio/x-aiff' + }, + cvs = document.createElement('canvas'), + ctx = cvs.getContext('webgl'), + data = { + browser: { + audio: null, + cookies: null, + flash: null, + java: null, + languages: null, + name: null, + platform: null, + version: null, + video: null, + webgl: null + }, + os: { + name: null, + type: null + }, + device: { + connection: { + type: null, + speed: null + }, + cores: null, + gpu: null, + max_touch_points: null, + ram: null, + screen: null, + touch: null + } + }; + + + /*----------------------------------------------------------------------------- + 2.0 SOFTWARE + -----------------------------------------------------------------------------*/ + + /*----------------------------------------------------------------------------- + 2.1.0 OS + -----------------------------------------------------------------------------*/ + + /*----------------------------------------------------------------------------- + 2.1.1 NAME + -----------------------------------------------------------------------------*/ + + if (navigator.appVersion.indexOf('Win') !== -1) { + if (navigator.appVersion.match(/(Windows 10.0|Windows NT 10.0)/)) { + data.os.name = 'Windows 10'; + } else if (navigator.appVersion.match(/(Windows 8.1|Windows NT 6.3)/)) { + data.os.name = 'Windows 8.1'; + } else if (navigator.appVersion.match(/(Windows 8|Windows NT 6.2)/)) { + data.os.name = 'Windows 8'; + } else if (navigator.appVersion.match(/(Windows 7|Windows NT 6.1)/)) { + data.os.name = 'Windows 7'; + } else if (navigator.appVersion.match(/(Windows NT 6.0)/)) { + data.os.name = 'Windows Vista'; + } else if (navigator.appVersion.match(/(Windows NT 5.1|Windows XP)/)) { + data.os.name = 'Windows XP'; + } else { + data.os.name = 'Windows'; + } + } else if (navigator.appVersion.indexOf('(iPhone|iPad|iPod)') !== -1) { + data.os.name = 'iOS'; + } else if (navigator.appVersion.indexOf('Mac') !== -1) { + data.os.name = 'macOS'; + } else if (navigator.appVersion.indexOf('Android') !== -1) { + data.os.name = 'Android'; + } else if (navigator.appVersion.indexOf('OpenBSD') !== -1) { + data.os.name = 'OpenBSD'; + } else if (navigator.appVersion.indexOf('SunOS') !== -1) { + data.os.name = 'SunOS'; + } else if (navigator.appVersion.indexOf('Linux') !== -1) { + data.os.name = 'Linux'; + } else if (navigator.appVersion.indexOf('X11') !== -1) { + data.os.name = 'UNIX'; + } + + /*----------------------------------------------------------------------------- + 2.1.2 TYPE + -----------------------------------------------------------------------------*/ + + if (navigator.appVersion.match(/(Win64|x64|x86_64|WOW64)/)) { + data.os.type = '64-bit'; + } else { + data.os.type = '32-bit'; + } + + + /*----------------------------------------------------------------------------- + 2.2.0 BROWSER + -----------------------------------------------------------------------------*/ + + /*----------------------------------------------------------------------------- + 2.2.1 NAME + -----------------------------------------------------------------------------*/ + + if (user_agent.indexOf('Opera') !== -1) { + data.browser.name = 'Opera'; + } else if (user_agent.indexOf('Vivaldi') !== -1) { + data.browser.name = 'Vivaldi'; + } else if (user_agent.indexOf('Edge') !== -1) { + data.browser.name = 'Edge'; + } else if (user_agent.indexOf('Chrome') !== -1) { + data.browser.name = 'Chrome'; + } else if (user_agent.indexOf('Safari') !== -1) { + data.browser.name = 'Safari'; + } else if (user_agent.indexOf('Firefox') !== -1) { + data.browser.name = 'Firefox'; + } else if (user_agent.indexOf('MSIE') !== -1) { + data.browser.name = 'IE'; + } + + + /*----------------------------------------------------------------------------- + 2.2.2 VERSION + -----------------------------------------------------------------------------*/ + + var browser_version = user_agent.match(new RegExp(data.browser.name + '/([0-9.]+)')); + + if (browser_version[1]) { + data.browser.version = browser_version[1]; + } + + + /*----------------------------------------------------------------------------- + 2.2.3 PLATFORM + -----------------------------------------------------------------------------*/ + + data.browser.platform = navigator.platform || null; + + + /*----------------------------------------------------------------------------- + 2.2.4 LANGUAGES + -----------------------------------------------------------------------------*/ + + data.browser.languages = navigator.languages || null; + + + /*----------------------------------------------------------------------------- + 2.2.5 COOKIES + -----------------------------------------------------------------------------*/ + + if (document.cookie) { + document.cookie = random_cookie; + + if (document.cookie.indexOf(random_cookie) !== -1) { + data.browser.cookies = true; + } + } + + + /*----------------------------------------------------------------------------- + 2.2.6 FLASH + -----------------------------------------------------------------------------*/ + + try { + if (new ActiveXObject('ShockwaveFlash.ShockwaveFlash')) { + data.browser.flash = true; + } + } catch (e) { + if (navigator.mimeTypes['application/x-shockwave-flash']) { + data.browser.flash = true; + } + } + + + /*----------------------------------------------------------------------------- + 2.2.7 JAVA + -----------------------------------------------------------------------------*/ + + if (typeof navigator.javaEnabled === 'function' && navigator.javaEnabled()) { + data.browser.java = true; + } + + + /*----------------------------------------------------------------------------- + 2.2.8 VIDEO FORMATS + -----------------------------------------------------------------------------*/ + + if (typeof video.canPlayType === 'function') { + data.browser.video = {}; + + for (var i in video_formats) { + var can_play_type = video.canPlayType(video_formats[i]); + + if (can_play_type === '') { + data.browser.video[i] = false; + } else { + data.browser.video[i] = can_play_type; + } + } + } + + + /*----------------------------------------------------------------------------- + 2.2.9 AUDIO FORMATS + -----------------------------------------------------------------------------*/ + + if (typeof audio.canPlayType === 'function') { + data.browser.audio = {}; + + for (var i in audio_formats) { + var can_play_type = audio.canPlayType(audio_formats[i]); + + if (can_play_type == '') { + data.browser.audio[i] = false; + } else { + data.browser.audio[i] = can_play_type; + } + } + } + + + /*----------------------------------------------------------------------------- + 2.2.10 WEBGL + -----------------------------------------------------------------------------*/ + + if (ctx && ctx instanceof WebGLRenderingContext) { + data.browser.webgl = true; + } + + + /*----------------------------------------------------------------------------- + 3.0 HARDWARE + -----------------------------------------------------------------------------*/ + + /*----------------------------------------------------------------------------- + 3.1 SCREEN + -----------------------------------------------------------------------------*/ + + if (screen) { + data.device.screen = screen.width + 'x' + screen.height; + } + + + /*----------------------------------------------------------------------------- + 3.2 RAM + -----------------------------------------------------------------------------*/ + + if ('deviceMemory' in navigator) { + data.device.ram = navigator.deviceMemory + ' GB'; + } + + + /*----------------------------------------------------------------------------- + 3.3 GPU + -----------------------------------------------------------------------------*/ + + if ( + ctx && + ctx instanceof WebGLRenderingContext && + 'getParameter' in ctx && + 'getExtension' in ctx + ) { + var info = ctx.getExtension('WEBGL_debug_renderer_info'); + + if (info) { + data.device.gpu = ctx.getParameter(info.UNMASKED_RENDERER_WEBGL); + } + } + + + /*----------------------------------------------------------------------------- + 3.4 CORES + -----------------------------------------------------------------------------*/ + + if (navigator.hardwareConcurrency) { + data.device.cores = navigator.hardwareConcurrency; + } + + + /*----------------------------------------------------------------------------- + 3.5 TOUCH + -----------------------------------------------------------------------------*/ + + if ( + window.hasOwnProperty('ontouchstart') || + window.DocumentTouch && document instanceof window.DocumentTouch || + navigator.maxTouchPoints > 0 || + window.navigator.msMaxTouchPoints > 0 + ) { + data.device.touch = true; + data.device.max_touch_points = navigator.maxTouchPoints; + } + + + /*----------------------------------------------------------------------------- + 3.6 CONNECTION + -----------------------------------------------------------------------------*/ + + if (typeof navigator.connection === 'object') { + data.device.connection.type = navigator.connection.effectiveType || null; + + if (navigator.connection.downlink) { + data.device.connection.speed = navigator.connection.downlink + ' Mbps'; + } + } + + + /*----------------------------------------------------------------------------- + 4.0 CLEARING + -----------------------------------------------------------------------------*/ + + video.remove(); + audio.remove(); + cvs.remove(); + + + return data; +}; +satus.on('render', function(component, data) { + if (data.perspective === true) { + component.style.willChange = 'transform'; + component.style.transformStyle = 'preserve-3d'; + component.style.transition = '.4s'; + + component.addEventListener('mousemove', function(event) { + var bounding = component.getBoundingClientRect(), + dx = event.clientX - bounding.left - bounding.width / 2, + dy = event.clientY - bounding.top - bounding.height / 2; + + this.style.transform = 'perspective(440px) rotateX(' + dy * -1 + 'deg) rotateY(' + dx + 'deg) translateZ(0)'; + }); + + component.addEventListener('mouseout', function(event) { + this.style.transform = 'perspective(440px) rotateX(0deg) rotateY(0deg) translateZ(0)'; + }); + } +}); +/*-------------------------------------------------------------- +>>> BUTTON +--------------------------------------------------------------*/ + +satus.components.button = function(element) { + var component = document.createElement('button'); + + if (satus.isset(element.icon)) { + var component_icon = document.createElement('span'); + + component_icon.className = 'satus-button__icon'; + component_icon.innerHTML = element.icon; + + component.appendChild(component_icon); + } + + if (satus.isset(element.label)) { + var component_label = document.createElement('span'); + + component_label.className = 'satus-button__label'; + component_label.innerText = satus.locale.getMessage(element.label); + + component.appendChild(component_label); + } + + return component; +}; +/*-------------------------------------------------------------- +>>> COLOR PICKER +--------------------------------------------------------------*/ + +satus.components.colorPicker = function(element) { + var component = document.createElement('div'), + component_value = document.createElement('div'); + + element.class = 'satus-button'; + component_value.className = 'satus-color-picker__value'; + component_value.style.backgroundColor = satus.storage.get(element.storage_key) || element.value || ''; + + if (satus.isset(element.label)) { + var component_label = document.createElement('span'); + + component_label.className = 'satus-button__label'; + component_label.innerText = satus.locale.getMessage(element.label); + + component.appendChild(component_label); + } + + component.addEventListener('click', function() { + var component = document.createElement('div'), + component_canvas = document.createElement('canvas'), + close = document.createElement('button'), + ctx = component_canvas.getContext('2d'), + image = new Image(), + dialog = satus.components.dialog({}); + + close.className = 'satus-button'; + close.innerHTML = ''; + close.onclick = function() { + dialog.querySelector('.satus-dialog__scrim').click(); + }; + + dialog.className = 'satus-dialog satus-dialog--color-picker'; + + component_canvas.width = 200; + component_canvas.height = 200; + + function select(event) { + var coordinates = component_canvas.getBoundingClientRect(), + x = event.clientX - coordinates.left, + y = event.clientY - coordinates.top, + color = ctx.getImageData(x, y, 1, 1).data; + + component_value.style.backgroundColor = 'rgb(' + color[0] + ',' + color[1] + ',' + color[2] + ')'; + + satus.storage.set(element.storage_key, component_value.style.backgroundColor); + } + + function mouseup(event) { + component_canvas.removeEventListener('mousemove', select); + window.removeEventListener('mouseup', mouseup); + } + + component_canvas.addEventListener('mousedown', function() { + select(event); + this.addEventListener('mousemove', select); + window.addEventListener('mouseup', mouseup); + }); + + image.onload = function() { + ctx.drawImage(image, 0, 0); + + image.remove(); + }; + + image.src = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNzAgMjcwIj48ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9ImEiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iMTMzIiBjbGFzcz0iSXJvV2hlZWxIdWUiPjxwYXRoIHN0cm9rZT0iaHNsKDI0MCwgMTAwJSwgNTAlKSIgZD0iTTIwMS40NzcgMTM2Ljc0YTY2LjUgNjYuNSAwIDAwLjAyMy0xLjc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQxLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjQzNyAxMzcuOWE2Ni41IDY2LjUgMCAwMC4wNTMtMS43NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI0MiwgMTAwJSwgNTAlKSIgZD0iTTIwMS4zNzYgMTM5LjA2YTY2LjUgNjYuNSAwIDAwLjA4My0xLjc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQzLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjI5NSAxNDAuMjE4YTY2LjUgNjYuNSAwIDAwLjExNC0xLjczOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI0NCwgMTAwJSwgNTAlKSIgZD0iTTIwMS4xOTQgMTQxLjM3NGE2Ni41IDY2LjUgMCAwMC4xNDQtMS43MzUiLz48cGF0aCBzdHJva2U9ImhzbCgyNDUsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuMDczIDE0Mi41MjhhNjYuNSA2Ni41IDAgMDAuMTc0LTEuNzMyIi8+PHBhdGggc3Ryb2tlPSJoc2woMjQ2LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjkzMSAxNDMuNjhhNjYuNSA2Ni41IDAgMDAuMjA1LTEuNzI5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQ3LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjc3IDE0NC44M2E2Ni41IDY2LjUgMCAwMC4yMzQtMS43MjYiLz48cGF0aCBzdHJva2U9ImhzbCgyNDgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDAuNTg4IDE0NS45NzZhNjYuNSA2Ni41IDAgMDAuMjY1LTEuNzIxIi8+PHBhdGggc3Ryb2tlPSJoc2woMjQ5LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjM4NiAxNDcuMTE5YTY2LjUgNjYuNSAwIDAwLjI5NS0xLjcxNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1MCwgMTAwJSwgNTAlKSIgZD0iTTIwMC4xNjUgMTQ4LjI1OGE2Ni41IDY2LjUgMCAwMC4zMjUtMS43MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1MSwgMTAwJSwgNTAlKSIgZD0iTTE5OS45MjQgMTQ5LjM5M2E2Ni41IDY2LjUgMCAwMC4zNTQtMS43MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuNjYzIDE1MC41MjRhNjYuNSA2Ni41IDAgMDAuMzg0LTEuNjk4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjUzLCAxMDAlLCA1MCUpIiBkPSJNMTk5LjM4MiAxNTEuNjVhNjYuNSA2Ni41IDAgMDAuNDE0LTEuNjkiLz48cGF0aCBzdHJva2U9ImhzbCgyNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuMDgxIDE1Mi43NzFhNjYuNSA2Ni41IDAgMDAuNDQ0LTEuNjgzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjU1LCAxMDAlLCA1MCUpIiBkPSJNMTk4Ljc2MiAxNTMuODg3YTY2LjUgNjYuNSAwIDAwLjQ3Mi0xLjY3NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1NiwgMTAwJSwgNTAlKSIgZD0iTTE5OC40MjIgMTU0Ljk5N2E2Ni41IDY2LjUgMCAwMC41MDItMS42NjciLz48cGF0aCBzdHJva2U9ImhzbCgyNTcsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguMDY0IDE1Ni4xYTY2LjUgNjYuNSAwIDAwLjUzLTEuNjU3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjU4LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjY4NiAxNTcuMTk4YTY2LjUgNjYuNSAwIDAwLjU2LTEuNjQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjU5LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjI4OSAxNTguMjg5YTY2LjUgNjYuNSAwIDAwLjU4OC0xLjYzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2MCwgMTAwJSwgNTAlKSIgZD0iTTE5Ni44NzMgMTU5LjM3MmE2Ni41IDY2LjUgMCAwMC42MTctMS42MjgiLz48cGF0aCBzdHJva2U9ImhzbCgyNjEsIDEwMCUsIDUwJSkiIGQ9Ik0xOTYuNDM4IDE2MC40NDhhNjYuNSA2Ni41IDAgMDAuNjQ1LTEuNjE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjYyLCAxMDAlLCA1MCUpIiBkPSJNMTk1Ljk4NCAxNjEuNTE3YTY2LjUgNjYuNSAwIDAwLjY3NC0xLjYwNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2MywgMTAwJSwgNTAlKSIgZD0iTTE5NS41MTIgMTYyLjU3N2E2Ni41IDY2LjUgMCAwMC43MDItMS41OTMiLz48cGF0aCBzdHJva2U9ImhzbCgyNjQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTUuMDIyIDE2My42MjlhNjYuNSA2Ni41IDAgMDAuNzI5LTEuNTgxIi8+PHBhdGggc3Ryb2tlPSJoc2woMjY1LCAxMDAlLCA1MCUpIiBkPSJNMTk0LjUxMyAxNjQuNjcyYTY2LjUgNjYuNSAwIDAwLjc1Ni0xLjU2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2NiwgMTAwJSwgNTAlKSIgZD0iTTE5My45ODYgMTY1LjcwNmE2Ni41IDY2LjUgMCAwMC43ODQtMS41NTQiLz48cGF0aCBzdHJva2U9ImhzbCgyNjcsIDEwMCUsIDUwJSkiIGQ9Ik0xOTMuNDQxIDE2Ni43MzFhNjYuNSA2Ni41IDAgMDAuODEtMS41NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2OCwgMTAwJSwgNTAlKSIgZD0iTTE5Mi44NzkgMTY3Ljc0NmE2Ni41IDY2LjUgMCAwMC44MzctMS41MjYiLz48cGF0aCBzdHJva2U9ImhzbCgyNjksIDEwMCUsIDUwJSkiIGQ9Ik0xOTIuMjk4IDE2OC43NTFhNjYuNSA2Ni41IDAgMDAuODY0LTEuNTExIi8+PHBhdGggc3Ryb2tlPSJoc2woMjcwLCAxMDAlLCA1MCUpIiBkPSJNMTkxLjcgMTY5Ljc0NmE2Ni41IDY2LjUgMCAwMC44OS0xLjQ5NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3MSwgMTAwJSwgNTAlKSIgZD0iTTE5MS4wODYgMTcwLjczYTY2LjUgNjYuNSAwIDAwLjkxNi0xLjQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjcyLCAxMDAlLCA1MCUpIiBkPSJNMTkwLjQ1MyAxNzEuNzA0YTY2LjUgNjYuNSAwIDAwLjk0Mi0xLjQ2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3MywgMTAwJSwgNTAlKSIgZD0iTTE4OS44MDQgMTcyLjY2NmE2Ni41IDY2LjUgMCAwMC45NjgtMS40NDgiLz48cGF0aCBzdHJva2U9ImhzbCgyNzQsIDEwMCUsIDUwJSkiIGQ9Ik0xODkuMTM5IDE3My42MTdhNjYuNSA2Ni41IDAgMDAuOTkyLTEuNDMiLz48cGF0aCBzdHJva2U9ImhzbCgyNzUsIDEwMCUsIDUwJSkiIGQ9Ik0xODguNDU2IDE3NC41NTZhNjYuNSA2Ni41IDAgMDAxLjAxOC0xLjQxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3NiwgMTAwJSwgNTAlKSIgZD0iTTE4Ny43NTggMTc1LjQ4M2E2Ni41IDY2LjUgMCAwMDEuMDQyLTEuMzk1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjc3LCAxMDAlLCA1MCUpIiBkPSJNMTg3LjA0MyAxNzYuMzk3YTY2LjUgNjYuNSAwIDAwMS4wNjYtMS4zNzYiLz48cGF0aCBzdHJva2U9ImhzbCgyNzgsIDEwMCUsIDUwJSkiIGQ9Ik0xODYuMzEzIDE3Ny4zYTY2LjUgNjYuNSAwIDAwMS4wOS0xLjM1OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3OSwgMTAwJSwgNTAlKSIgZD0iTTE4NS41NjcgMTc4LjE4OGE2Ni41IDY2LjUgMCAwMDEuMTEzLTEuMzM4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjgwLCAxMDAlLCA1MCUpIiBkPSJNMTg0LjgwNiAxNzkuMDY0YTY2LjUgNjYuNSAwIDAwMS4xMzYtMS4zMTkiLz48cGF0aCBzdHJva2U9ImhzbCgyODEsIDEwMCUsIDUwJSkiIGQ9Ik0xODQuMDI5IDE3OS45MjdhNjYuNSA2Ni41IDAgMDAxLjE2LTEuMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4MiwgMTAwJSwgNTAlKSIgZD0iTTE4My4yMzcgMTgwLjc3NmE2Ni41IDY2LjUgMCAwMDEuMTgyLTEuMjc5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjgzLCAxMDAlLCA1MCUpIiBkPSJNMTgyLjQzMSAxODEuNjFhNjYuNSA2Ni41IDAgMDAxLjIwNC0xLjI1NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4NCwgMTAwJSwgNTAlKSIgZD0iTTE4MS42MSAxODIuNDMxYTY2LjUgNjYuNSAwIDAwMS4yMjYtMS4yMzYiLz48cGF0aCBzdHJva2U9ImhzbCgyODUsIDEwMCUsIDUwJSkiIGQ9Ik0xODAuNzc2IDE4My4yMzdhNjYuNSA2Ni41IDAgMDAxLjI0Ny0xLjIxNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4NiwgMTAwJSwgNTAlKSIgZD0iTTE3OS45MjcgMTg0LjAyOWE2Ni41IDY2LjUgMCAwMDEuMjY4LTEuMTkzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjg3LCAxMDAlLCA1MCUpIiBkPSJNMTc5LjA2NCAxODQuODA2YTY2LjUgNjYuNSAwIDAwMS4yODktMS4xNzEiLz48cGF0aCBzdHJva2U9ImhzbCgyODgsIDEwMCUsIDUwJSkiIGQ9Ik0xNzguMTg4IDE4NS41NjdhNjYuNSA2Ni41IDAgMDAxLjMxLTEuMTQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjg5LCAxMDAlLCA1MCUpIiBkPSJNMTc3LjMgMTg2LjMxM2E2Ni41IDY2LjUgMCAwMDEuMzI4LTEuMTI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjkwLCAxMDAlLCA1MCUpIiBkPSJNMTc2LjM5NyAxODcuMDQzYTY2LjUgNjYuNSAwIDAwMS4zNDgtMS4xMDEiLz48cGF0aCBzdHJva2U9ImhzbCgyOTEsIDEwMCUsIDUwJSkiIGQ9Ik0xNzUuNDgzIDE4Ny43NThhNjYuNSA2Ni41IDAgMDAxLjM2Ny0xLjA3OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI5MiwgMTAwJSwgNTAlKSIgZD0iTTE3NC41NTYgMTg4LjQ1NmE2Ni41IDY2LjUgMCAwMDEuMzg1LTEuMDUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjkzLCAxMDAlLCA1MCUpIiBkPSJNMTczLjYxNyAxODkuMTM5YTY2LjUgNjYuNSAwIDAwMS40MDQtMS4wMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI5NCwgMTAwJSwgNTAlKSIgZD0iTTE3Mi42NjYgMTg5LjgwNGE2Ni41IDY2LjUgMCAwMDEuNDIyLTEuMDA0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk1LCAxMDAlLCA1MCUpIiBkPSJNMTcxLjcwNCAxOTAuNDUzYTY2LjUgNjYuNSAwIDAwMS40MzktLjk4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk2LCAxMDAlLCA1MCUpIiBkPSJNMTcwLjczIDE5MS4wODZhNjYuNSA2Ni41IDAgMDAxLjQ1Ni0uOTU1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk3LCAxMDAlLCA1MCUpIiBkPSJNMTY5Ljc0NiAxOTEuN2E2Ni41IDY2LjUgMCAwMDEuNDcyLS45MjgiLz48cGF0aCBzdHJva2U9ImhzbCgyOTgsIDEwMCUsIDUwJSkiIGQ9Ik0xNjguNzUxIDE5Mi4yOThhNjYuNSA2Ni41IDAgMDAxLjQ4OS0uOTAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjk5LCAxMDAlLCA1MCUpIiBkPSJNMTY3Ljc0NiAxOTIuODc5YTY2LjUgNjYuNSAwIDAwMS41MDQtLjg3NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwMCwgMTAwJSwgNTAlKSIgZD0iTTE2Ni43MzEgMTkzLjQ0MWE2Ni41IDY2LjUgMCAwMDEuNTE5LS44NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwMSwgMTAwJSwgNTAlKSIgZD0iTTE2NS43MDYgMTkzLjk4NmE2Ni41IDY2LjUgMCAwMDEuNTM0LS44MjQiLz48cGF0aCBzdHJva2U9ImhzbCgzMDIsIDEwMCUsIDUwJSkiIGQ9Ik0xNjQuNjcyIDE5NC41MTNhNjYuNSA2Ni41IDAgMDAxLjU0OC0uNzk3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzAzLCAxMDAlLCA1MCUpIiBkPSJNMTYzLjYyOSAxOTUuMDIyYTY2LjUgNjYuNSAwIDAwMS41NjEtLjc3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzA0LCAxMDAlLCA1MCUpIiBkPSJNMTYyLjU3NyAxOTUuNTEyYTY2LjUgNjYuNSAwIDAwMS41NzUtLjc0MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwNSwgMTAwJSwgNTAlKSIgZD0iTTE2MS41MTcgMTk1Ljk4NGE2Ni41IDY2LjUgMCAwMDEuNTg3LS43MTUiLz48cGF0aCBzdHJva2U9ImhzbCgzMDYsIDEwMCUsIDUwJSkiIGQ9Ik0xNjAuNDQ4IDE5Ni40MzhhNjYuNSA2Ni41IDAgMDAxLjYtLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwNywgMTAwJSwgNTAlKSIgZD0iTTE1OS4zNzIgMTk2Ljg3M2E2Ni41IDY2LjUgMCAwMDEuNjEyLS42NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwOCwgMTAwJSwgNTAlKSIgZD0iTTE1OC4yODkgMTk3LjI4OWE2Ni41IDY2LjUgMCAwMDEuNjIyLS42MzEiLz48cGF0aCBzdHJva2U9ImhzbCgzMDksIDEwMCUsIDUwJSkiIGQ9Ik0xNTcuMTk4IDE5Ny42ODZhNjYuNSA2Ni41IDAgMDAxLjYzMy0uNjAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzEwLCAxMDAlLCA1MCUpIiBkPSJNMTU2LjEgMTk4LjA2NGE2Ni41IDY2LjUgMCAwMDEuNjQ0LS41NzQiLz48cGF0aCBzdHJva2U9ImhzbCgzMTEsIDEwMCUsIDUwJSkiIGQ9Ik0xNTQuOTk3IDE5OC40MjJhNjYuNSA2Ni41IDAgMDAxLjY1My0uNTQ1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzEyLCAxMDAlLCA1MCUpIiBkPSJNMTUzLjg4NyAxOTguNzYyYTY2LjUgNjYuNSAwIDAwMS42NjMtLjUxNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxMywgMTAwJSwgNTAlKSIgZD0iTTE1Mi43NzEgMTk5LjA4MWE2Ni41IDY2LjUgMCAwMDEuNjcyLS40ODciLz48cGF0aCBzdHJva2U9ImhzbCgzMTQsIDEwMCUsIDUwJSkiIGQ9Ik0xNTEuNjUgMTk5LjM4MmE2Ni41IDY2LjUgMCAwMDEuNjgtLjQ1OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxNSwgMTAwJSwgNTAlKSIgZD0iTTE1MC41MjQgMTk5LjY2M2E2Ni41IDY2LjUgMCAwMDEuNjg3LS40MjkiLz48cGF0aCBzdHJva2U9ImhzbCgzMTYsIDEwMCUsIDUwJSkiIGQ9Ik0xNDkuMzkzIDE5OS45MjRhNjYuNSA2Ni41IDAgMDAxLjY5NS0uNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxNywgMTAwJSwgNTAlKSIgZD0iTTE0OC4yNTggMjAwLjE2NWE2Ni41IDY2LjUgMCAwMDEuNzAxLS4zNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxOCwgMTAwJSwgNTAlKSIgZD0iTTE0Ny4xMTkgMjAwLjM4NmE2Ni41IDY2LjUgMCAwMDEuNzA3LS4zNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxOSwgMTAwJSwgNTAlKSIgZD0iTTE0NS45NzYgMjAwLjU4OGE2Ni41IDY2LjUgMCAwMDEuNzEzLS4zMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMCwgMTAwJSwgNTAlKSIgZD0iTTE0NC44MyAyMDAuNzdhNjYuNSA2Ni41IDAgMDAxLjcxOC0uMjgiLz48cGF0aCBzdHJva2U9ImhzbCgzMjEsIDEwMCUsIDUwJSkiIGQ9Ik0xNDMuNjggMjAwLjkzMWE2Ni41IDY2LjUgMCAwMDEuNzIzLS4yNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMiwgMTAwJSwgNTAlKSIgZD0iTTE0Mi41MjggMjAxLjA3M2E2Ni41IDY2LjUgMCAwMDEuNzI3LS4yMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMywgMTAwJSwgNTAlKSIgZD0iTTE0MS4zNzQgMjAxLjE5NGE2Ni41IDY2LjUgMCAwMDEuNzMtLjE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI0LCAxMDAlLCA1MCUpIiBkPSJNMTQwLjIxOCAyMDEuMjk1YTY2LjUgNjYuNSAwIDAwMS43MzMtLjE2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI1LCAxMDAlLCA1MCUpIiBkPSJNMTM5LjA2IDIwMS4zNzZhNjYuNSA2Ni41IDAgMDAxLjczNi0uMTMiLz48cGF0aCBzdHJva2U9ImhzbCgzMjYsIDEwMCUsIDUwJSkiIGQ9Ik0xMzcuOSAyMDEuNDM3YTY2LjUgNjYuNSAwIDAwMS43MzktLjA5OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyNywgMTAwJSwgNTAlKSIgZD0iTTEzNi43NCAyMDEuNDc3YTY2LjUgNjYuNSAwIDAwMS43NC0uMDY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI4LCAxMDAlLCA1MCUpIiBkPSJNMTM1LjU4IDIwMS40OTdhNjYuNSA2Ni41IDAgMDAxLjc0LS4wMzgiLz48cGF0aCBzdHJva2U9ImhzbCgzMjksIDEwMCUsIDUwJSkiIGQ9Ik0xMzQuNDIgMjAxLjQ5N2E2Ni41IDY2LjUgMCAwMDEuNzQtLjAwNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMzMCwgMTAwJSwgNTAlKSIgZD0iTTEzMy4yNiAyMDEuNDc3YTY2LjUgNjYuNSAwIDAwMS43NC4wMjMiLz48cGF0aCBzdHJva2U9ImhzbCgzMzEsIDEwMCUsIDUwJSkiIGQ9Ik0xMzIuMSAyMDEuNDM3YTY2LjUgNjYuNSAwIDAwMS43NC4wNTMiLz48cGF0aCBzdHJva2U9ImhzbCgzMzIsIDEwMCUsIDUwJSkiIGQ9Ik0xMzAuOTQgMjAxLjM3NmE2Ni41IDY2LjUgMCAwMDEuNzQuMDgzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzMzLCAxMDAlLCA1MCUpIiBkPSJNMTI5Ljc4MiAyMDEuMjk1YTY2LjUgNjYuNSAwIDAwMS43MzguMTE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM0LCAxMDAlLCA1MCUpIiBkPSJNMTI4LjYyNiAyMDEuMTk0YTY2LjUgNjYuNSAwIDAwMS43MzUuMTQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM1LCAxMDAlLCA1MCUpIiBkPSJNMTI3LjQ3MiAyMDEuMDczYTY2LjUgNjYuNSAwIDAwMS43MzIuMTc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM2LCAxMDAlLCA1MCUpIiBkPSJNMTI2LjMyIDIwMC45MzFhNjYuNSA2Ni41IDAgMDAxLjcyOS4yMDUiLz48cGF0aCBzdHJva2U9ImhzbCgzMzcsIDEwMCUsIDUwJSkiIGQ9Ik0xMjUuMTcgMjAwLjc3YTY2LjUgNjYuNSAwIDAwMS43MjYuMjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM4LCAxMDAlLCA1MCUpIiBkPSJNMTI0LjAyNCAyMDAuNTg4YTY2LjUgNjYuNSAwIDAwMS43MjEuMjY1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM5LCAxMDAlLCA1MCUpIiBkPSJNMTIyLjg4MSAyMDAuMzg2YTY2LjUgNjYuNSAwIDAwMS43MTYuMjk1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQwLCAxMDAlLCA1MCUpIiBkPSJNMTIxLjc0MiAyMDAuMTY1YTY2LjUgNjYuNSAwIDAwMS43MS4zMjUiLz48cGF0aCBzdHJva2U9ImhzbCgzNDEsIDEwMCUsIDUwJSkiIGQ9Ik0xMjAuNjA3IDE5OS45MjRhNjYuNSA2Ni41IDAgMDAxLjcwNC4zNTQiLz48cGF0aCBzdHJva2U9ImhzbCgzNDIsIDEwMCUsIDUwJSkiIGQ9Ik0xMTkuNDc2IDE5OS42NjNhNjYuNSA2Ni41IDAgMDAxLjY5OC4zODQiLz48cGF0aCBzdHJva2U9ImhzbCgzNDMsIDEwMCUsIDUwJSkiIGQ9Ik0xMTguMzUgMTk5LjM4MmE2Ni41IDY2LjUgMCAwMDEuNjkuNDE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQ0LCAxMDAlLCA1MCUpIiBkPSJNMTE3LjIyOSAxOTkuMDgxYTY2LjUgNjYuNSAwIDAwMS42ODMuNDQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQ1LCAxMDAlLCA1MCUpIiBkPSJNMTE2LjExMyAxOTguNzYyYTY2LjUgNjYuNSAwIDAwMS42NzYuNDcyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ2LCAxMDAlLCA1MCUpIiBkPSJNMTE1LjAwMyAxOTguNDIyYTY2LjUgNjYuNSAwIDAwMS42NjcuNTAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ3LCAxMDAlLCA1MCUpIiBkPSJNMTEzLjkgMTk4LjA2NGE2Ni41IDY2LjUgMCAwMDEuNjU3LjUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ4LCAxMDAlLCA1MCUpIiBkPSJNMTEyLjgwMiAxOTcuNjg2YTY2LjUgNjYuNSAwIDAwMS42NDguNTYiLz48cGF0aCBzdHJva2U9ImhzbCgzNDksIDEwMCUsIDUwJSkiIGQ9Ik0xMTEuNzExIDE5Ny4yODlhNjYuNSA2Ni41IDAgMDAxLjYzOS41ODgiLz48cGF0aCBzdHJva2U9ImhzbCgzNTAsIDEwMCUsIDUwJSkiIGQ9Ik0xMTAuNjI4IDE5Ni44NzNhNjYuNSA2Ni41IDAgMDAxLjYyOC42MTciLz48cGF0aCBzdHJva2U9ImhzbCgzNTEsIDEwMCUsIDUwJSkiIGQ9Ik0xMDkuNTUyIDE5Ni40MzhhNjYuNSA2Ni41IDAgMDAxLjYxNy42NDUiLz48cGF0aCBzdHJva2U9ImhzbCgzNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xMDguNDgzIDE5NS45ODRhNjYuNSA2Ni41IDAgMDAxLjYwNi42NzQiLz48cGF0aCBzdHJva2U9ImhzbCgzNTMsIDEwMCUsIDUwJSkiIGQ9Ik0xMDcuNDIzIDE5NS41MTJhNjYuNSA2Ni41IDAgMDAxLjU5My43MDIiLz48cGF0aCBzdHJva2U9ImhzbCgzNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xMDYuMzcxIDE5NS4wMjJhNjYuNSA2Ni41IDAgMDAxLjU4MS43MjkiLz48cGF0aCBzdHJva2U9ImhzbCgzNTUsIDEwMCUsIDUwJSkiIGQ9Ik0xMDUuMzI4IDE5NC41MTNhNjYuNSA2Ni41IDAgMDAxLjU2OC43NTYiLz48cGF0aCBzdHJva2U9ImhzbCgzNTYsIDEwMCUsIDUwJSkiIGQ9Ik0xMDQuMjk0IDE5My45ODZhNjYuNSA2Ni41IDAgMDAxLjU1NC43ODQiLz48cGF0aCBzdHJva2U9ImhzbCgzNTcsIDEwMCUsIDUwJSkiIGQ9Ik0xMDMuMjY5IDE5My40NDFhNjYuNSA2Ni41IDAgMDAxLjU0LjgxIi8+PHBhdGggc3Ryb2tlPSJoc2woMzU4LCAxMDAlLCA1MCUpIiBkPSJNMTAyLjI1NCAxOTIuODc5YTY2LjUgNjYuNSAwIDAwMS41MjYuODM3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzU5LCAxMDAlLCA1MCUpIiBkPSJNMTAxLjI0OSAxOTIuMjk4YTY2LjUgNjYuNSAwIDAwMS41MTEuODY0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMCwgMTAwJSwgNTAlKSIgZD0iTTEwMC4yNTQgMTkxLjdhNjYuNSA2Ni41IDAgMDAxLjQ5Ni44OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEsIDEwMCUsIDUwJSkiIGQ9Ik05OS4yNyAxOTEuMDg2YTY2LjUgNjYuNSAwIDAwMS40OC45MTYiLz48cGF0aCBzdHJva2U9ImhzbCgyLCAxMDAlLCA1MCUpIiBkPSJNOTguMjk2IDE5MC40NTNhNjYuNSA2Ni41IDAgMDAxLjQ2NC45NDIiLz48cGF0aCBzdHJva2U9ImhzbCgzLCAxMDAlLCA1MCUpIiBkPSJNOTcuMzM0IDE4OS44MDRhNjYuNSA2Ni41IDAgMDAxLjQ0OC45NjgiLz48cGF0aCBzdHJva2U9ImhzbCg0LCAxMDAlLCA1MCUpIiBkPSJNOTYuMzgzIDE4OS4xMzlhNjYuNSA2Ni41IDAgMDAxLjQzLjk5MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDUsIDEwMCUsIDUwJSkiIGQ9Ik05NS40NDQgMTg4LjQ1NmE2Ni41IDY2LjUgMCAwMDEuNDEzIDEuMDE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woNiwgMTAwJSwgNTAlKSIgZD0iTTk0LjUxNyAxODcuNzU4YTY2LjUgNjYuNSAwIDAwMS4zOTUgMS4wNDIiLz48cGF0aCBzdHJva2U9ImhzbCg3LCAxMDAlLCA1MCUpIiBkPSJNOTMuNjAzIDE4Ny4wNDNhNjYuNSA2Ni41IDAgMDAxLjM3NiAxLjA2NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDgsIDEwMCUsIDUwJSkiIGQ9Ik05Mi43IDE4Ni4zMTNhNjYuNSA2Ni41IDAgMDAxLjM1OSAxLjA5Ii8+PHBhdGggc3Ryb2tlPSJoc2woOSwgMTAwJSwgNTAlKSIgZD0iTTkxLjgxMiAxODUuNTY3YTY2LjUgNjYuNSAwIDAwMS4zMzggMS4xMTMiLz48cGF0aCBzdHJva2U9ImhzbCgxMCwgMTAwJSwgNTAlKSIgZD0iTTkwLjkzNiAxODQuODA2YTY2LjUgNjYuNSAwIDAwMS4zMTkgMS4xMzYiLz48cGF0aCBzdHJva2U9ImhzbCgxMSwgMTAwJSwgNTAlKSIgZD0iTTkwLjA3MyAxODQuMDI5YTY2LjUgNjYuNSAwIDAwMS4zIDEuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxMiwgMTAwJSwgNTAlKSIgZD0iTTg5LjIyNCAxODMuMjM3YTY2LjUgNjYuNSAwIDAwMS4yNzkgMS4xODIiLz48cGF0aCBzdHJva2U9ImhzbCgxMywgMTAwJSwgNTAlKSIgZD0iTTg4LjM5IDE4Mi40MzFhNjYuNSA2Ni41IDAgMDAxLjI1NyAxLjIwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE0LCAxMDAlLCA1MCUpIiBkPSJNODcuNTY5IDE4MS42MWE2Ni41IDY2LjUgMCAwMDEuMjM2IDEuMjI2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTUsIDEwMCUsIDUwJSkiIGQ9Ik04Ni43NjMgMTgwLjc3NmE2Ni41IDY2LjUgMCAwMDEuMjE0IDEuMjQ3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTYsIDEwMCUsIDUwJSkiIGQ9Ik04NS45NzEgMTc5LjkyN2E2Ni41IDY2LjUgMCAwMDEuMTkzIDEuMjY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTcsIDEwMCUsIDUwJSkiIGQ9Ik04NS4xOTQgMTc5LjA2NGE2Ni41IDY2LjUgMCAwMDEuMTcxIDEuMjg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTgsIDEwMCUsIDUwJSkiIGQ9Ik04NC40MzMgMTc4LjE4OGE2Ni41IDY2LjUgMCAwMDEuMTQ4IDEuMzEiLz48cGF0aCBzdHJva2U9ImhzbCgxOSwgMTAwJSwgNTAlKSIgZD0iTTgzLjY4NyAxNzcuM2E2Ni41IDY2LjUgMCAwMDEuMTI1IDEuMzI4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjAsIDEwMCUsIDUwJSkiIGQ9Ik04Mi45NTcgMTc2LjM5N2E2Ni41IDY2LjUgMCAwMDEuMTAxIDEuMzQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjEsIDEwMCUsIDUwJSkiIGQ9Ik04Mi4yNDIgMTc1LjQ4M2E2Ni41IDY2LjUgMCAwMDEuMDc4IDEuMzY3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjIsIDEwMCUsIDUwJSkiIGQ9Ik04MS41NDQgMTc0LjU1NmE2Ni41IDY2LjUgMCAwMDEuMDUzIDEuMzg1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjMsIDEwMCUsIDUwJSkiIGQ9Ik04MC44NjEgMTczLjYxN2E2Ni41IDY2LjUgMCAwMDEuMDMgMS40MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyNCwgMTAwJSwgNTAlKSIgZD0iTTgwLjE5NiAxNzIuNjY2YTY2LjUgNjYuNSAwIDAwMS4wMDQgMS40MjIiLz48cGF0aCBzdHJva2U9ImhzbCgyNSwgMTAwJSwgNTAlKSIgZD0iTTc5LjU0NyAxNzEuNzA0YTY2LjUgNjYuNSAwIDAwLjk4IDEuNDM5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjYsIDEwMCUsIDUwJSkiIGQ9Ik03OC45MTQgMTcwLjczYTY2LjUgNjYuNSAwIDAwLjk1NSAxLjQ1NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3LCAxMDAlLCA1MCUpIiBkPSJNNzguMyAxNjkuNzQ2YTY2LjUgNjYuNSAwIDAwLjkyOCAxLjQ3MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4LCAxMDAlLCA1MCUpIiBkPSJNNzcuNzAyIDE2OC43NTFhNjYuNSA2Ni41IDAgMDAuOTAzIDEuNDg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjksIDEwMCUsIDUwJSkiIGQ9Ik03Ny4xMjEgMTY3Ljc0NmE2Ni41IDY2LjUgMCAwMC44NzcgMS41MDQiLz48cGF0aCBzdHJva2U9ImhzbCgzMCwgMTAwJSwgNTAlKSIgZD0iTTc2LjU1OSAxNjYuNzMxYTY2LjUgNjYuNSAwIDAwLjg1IDEuNTE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzEsIDEwMCUsIDUwJSkiIGQ9Ik03Ni4wMTQgMTY1LjcwNmE2Ni41IDY2LjUgMCAwMC44MjQgMS41MzQiLz48cGF0aCBzdHJva2U9ImhzbCgzMiwgMTAwJSwgNTAlKSIgZD0iTTc1LjQ4NyAxNjQuNjcyYTY2LjUgNjYuNSAwIDAwLjc5NyAxLjU0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMzLCAxMDAlLCA1MCUpIiBkPSJNNzQuOTc4IDE2My42MjlhNjYuNSA2Ni41IDAgMDAuNzcgMS41NjEiLz48cGF0aCBzdHJva2U9ImhzbCgzNCwgMTAwJSwgNTAlKSIgZD0iTTc0LjQ4OCAxNjIuNTc3YTY2LjUgNjYuNSAwIDAwLjc0MiAxLjU3NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDM1LCAxMDAlLCA1MCUpIiBkPSJNNzQuMDE2IDE2MS41MTdhNjYuNSA2Ni41IDAgMDAuNzE1IDEuNTg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzYsIDEwMCUsIDUwJSkiIGQ9Ik03My41NjIgMTYwLjQ0OGE2Ni41IDY2LjUgMCAwMC42ODcgMS42Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzcsIDEwMCUsIDUwJSkiIGQ9Ik03My4xMjcgMTU5LjM3MmE2Ni41IDY2LjUgMCAwMC42NiAxLjYxMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDM4LCAxMDAlLCA1MCUpIiBkPSJNNzIuNzExIDE1OC4yODlhNjYuNSA2Ni41IDAgMDAuNjMxIDEuNjIyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzksIDEwMCUsIDUwJSkiIGQ9Ik03Mi4zMTQgMTU3LjE5OGE2Ni41IDY2LjUgMCAwMC42MDMgMS42MzMiLz48cGF0aCBzdHJva2U9ImhzbCg0MCwgMTAwJSwgNTAlKSIgZD0iTTcxLjkzNiAxNTYuMWE2Ni41IDY2LjUgMCAwMC41NzQgMS42NDQiLz48cGF0aCBzdHJva2U9ImhzbCg0MSwgMTAwJSwgNTAlKSIgZD0iTTcxLjU3OCAxNTQuOTk3YTY2LjUgNjYuNSAwIDAwLjU0NSAxLjY1MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDQyLCAxMDAlLCA1MCUpIiBkPSJNNzEuMjM4IDE1My44ODdhNjYuNSA2Ni41IDAgMDAuNTE3IDEuNjYzIi8+PHBhdGggc3Ryb2tlPSJoc2woNDMsIDEwMCUsIDUwJSkiIGQ9Ik03MC45MTkgMTUyLjc3MWE2Ni41IDY2LjUgMCAwMC40ODcgMS42NzIiLz48cGF0aCBzdHJva2U9ImhzbCg0NCwgMTAwJSwgNTAlKSIgZD0iTTcwLjYxOCAxNTEuNjVhNjYuNSA2Ni41IDAgMDAuNDU4IDEuNjgiLz48cGF0aCBzdHJva2U9ImhzbCg0NSwgMTAwJSwgNTAlKSIgZD0iTTcwLjMzNyAxNTAuNTI0YTY2LjUgNjYuNSAwIDAwLjQyOSAxLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDQ2LCAxMDAlLCA1MCUpIiBkPSJNNzAuMDc2IDE0OS4zOTNhNjYuNSA2Ni41IDAgMDAuNCAxLjY5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDQ3LCAxMDAlLCA1MCUpIiBkPSJNNjkuODM1IDE0OC4yNThhNjYuNSA2Ni41IDAgMDAuMzcgMS43MDEiLz48cGF0aCBzdHJva2U9ImhzbCg0OCwgMTAwJSwgNTAlKSIgZD0iTTY5LjYxNCAxNDcuMTE5YTY2LjUgNjYuNSAwIDAwLjM0IDEuNzA3Ii8+PHBhdGggc3Ryb2tlPSJoc2woNDksIDEwMCUsIDUwJSkiIGQ9Ik02OS40MTIgMTQ1Ljk3NmE2Ni41IDY2LjUgMCAwMC4zMSAxLjcxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDUwLCAxMDAlLCA1MCUpIiBkPSJNNjkuMjMgMTQ0LjgzYTY2LjUgNjYuNSAwIDAwLjI4IDEuNzE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woNTEsIDEwMCUsIDUwJSkiIGQ9Ik02OS4wNjkgMTQzLjY4YTY2LjUgNjYuNSAwIDAwLjI1IDEuNzIzIi8+PHBhdGggc3Ryb2tlPSJoc2woNTIsIDEwMCUsIDUwJSkiIGQ9Ik02OC45MjcgMTQyLjUyOGE2Ni41IDY2LjUgMCAwMC4yMiAxLjcyNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDUzLCAxMDAlLCA1MCUpIiBkPSJNNjguODA2IDE0MS4zNzRhNjYuNSA2Ni41IDAgMDAuMTkgMS43MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDU0LCAxMDAlLCA1MCUpIiBkPSJNNjguNzA1IDE0MC4yMThhNjYuNSA2Ni41IDAgMDAuMTYgMS43MzMiLz48cGF0aCBzdHJva2U9ImhzbCg1NSwgMTAwJSwgNTAlKSIgZD0iTTY4LjYyNCAxMzkuMDZhNjYuNSA2Ni41IDAgMDAuMTMgMS43MzYiLz48cGF0aCBzdHJva2U9ImhzbCg1NiwgMTAwJSwgNTAlKSIgZD0iTTY4LjU2MyAxMzcuOWE2Ni41IDY2LjUgMCAwMC4wOTkgMS43MzkiLz48cGF0aCBzdHJva2U9ImhzbCg1NywgMTAwJSwgNTAlKSIgZD0iTTY4LjUyMyAxMzYuNzRhNjYuNSA2Ni41IDAgMDAuMDY4IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg1OCwgMTAwJSwgNTAlKSIgZD0iTTY4LjUwMyAxMzUuNThhNjYuNSA2Ni41IDAgMDAuMDM4IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg1OSwgMTAwJSwgNTAlKSIgZD0iTTY4LjUwMyAxMzQuNDJhNjYuNSA2Ni41IDAgMDAuMDA3IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg2MCwgMTAwJSwgNTAlKSIgZD0iTTY4LjUyMyAxMzMuMjZBNjYuNSA2Ni41IDAgMDA2OC41IDEzNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDYxLCAxMDAlLCA1MCUpIiBkPSJNNjguNTYzIDEzMi4xYTY2LjUgNjYuNSAwIDAwLS4wNTMgMS43NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDYyLCAxMDAlLCA1MCUpIiBkPSJNNjguNjI0IDEzMC45NGE2Ni41IDY2LjUgMCAwMC0uMDgzIDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg2MywgMTAwJSwgNTAlKSIgZD0iTTY4LjcwNSAxMjkuNzgyYTY2LjUgNjYuNSAwIDAwLS4xMTQgMS43MzgiLz48cGF0aCBzdHJva2U9ImhzbCg2NCwgMTAwJSwgNTAlKSIgZD0iTTY4LjgwNiAxMjguNjI2YTY2LjUgNjYuNSAwIDAwLS4xNDQgMS43MzUiLz48cGF0aCBzdHJva2U9ImhzbCg2NSwgMTAwJSwgNTAlKSIgZD0iTTY4LjkyNyAxMjcuNDcyYTY2LjUgNjYuNSAwIDAwLS4xNzQgMS43MzIiLz48cGF0aCBzdHJva2U9ImhzbCg2NiwgMTAwJSwgNTAlKSIgZD0iTTY5LjA2OSAxMjYuMzJhNjYuNSA2Ni41IDAgMDAtLjIwNSAxLjcyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDY3LCAxMDAlLCA1MCUpIiBkPSJNNjkuMjMgMTI1LjE3YTY2LjUgNjYuNSAwIDAwLS4yMzQgMS43MjYiLz48cGF0aCBzdHJva2U9ImhzbCg2OCwgMTAwJSwgNTAlKSIgZD0iTTY5LjQxMiAxMjQuMDI0YTY2LjUgNjYuNSAwIDAwLS4yNjUgMS43MjEiLz48cGF0aCBzdHJva2U9ImhzbCg2OSwgMTAwJSwgNTAlKSIgZD0iTTY5LjYxNCAxMjIuODgxYTY2LjUgNjYuNSAwIDAwLS4yOTUgMS43MTYiLz48cGF0aCBzdHJva2U9ImhzbCg3MCwgMTAwJSwgNTAlKSIgZD0iTTY5LjgzNSAxMjEuNzQyYTY2LjUgNjYuNSAwIDAwLS4zMjUgMS43MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDcxLCAxMDAlLCA1MCUpIiBkPSJNNzAuMDc2IDEyMC42MDdhNjYuNSA2Ni41IDAgMDAtLjM1NCAxLjcwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDcyLCAxMDAlLCA1MCUpIiBkPSJNNzAuMzM3IDExOS40NzZhNjYuNSA2Ni41IDAgMDAtLjM4NCAxLjY5OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDczLCAxMDAlLCA1MCUpIiBkPSJNNzAuNjE4IDExOC4zNWE2Ni41IDY2LjUgMCAwMC0uNDE0IDEuNjkiLz48cGF0aCBzdHJva2U9ImhzbCg3NCwgMTAwJSwgNTAlKSIgZD0iTTcwLjkxOSAxMTcuMjI5YTY2LjUgNjYuNSAwIDAwLS40NDQgMS42ODMiLz48cGF0aCBzdHJva2U9ImhzbCg3NSwgMTAwJSwgNTAlKSIgZD0iTTcxLjIzOCAxMTYuMTEzYTY2LjUgNjYuNSAwIDAwLS40NzIgMS42NzYiLz48cGF0aCBzdHJva2U9ImhzbCg3NiwgMTAwJSwgNTAlKSIgZD0iTTcxLjU3OCAxMTUuMDAzYTY2LjUgNjYuNSAwIDAwLS41MDIgMS42NjciLz48cGF0aCBzdHJva2U9ImhzbCg3NywgMTAwJSwgNTAlKSIgZD0iTTcxLjkzNiAxMTMuOWE2Ni41IDY2LjUgMCAwMC0uNTMgMS42NTciLz48cGF0aCBzdHJva2U9ImhzbCg3OCwgMTAwJSwgNTAlKSIgZD0iTTcyLjMxNCAxMTIuODAyYTY2LjUgNjYuNSAwIDAwLS41NiAxLjY0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDc5LCAxMDAlLCA1MCUpIiBkPSJNNzIuNzExIDExMS43MTFhNjYuNSA2Ni41IDAgMDAtLjU4OCAxLjYzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDgwLCAxMDAlLCA1MCUpIiBkPSJNNzMuMTI3IDExMC42MjhhNjYuNSA2Ni41IDAgMDAtLjYxNyAxLjYyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDgxLCAxMDAlLCA1MCUpIiBkPSJNNzMuNTYyIDEwOS41NTJhNjYuNSA2Ni41IDAgMDAtLjY0NSAxLjYxNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDgyLCAxMDAlLCA1MCUpIiBkPSJNNzQuMDE2IDEwOC40ODNhNjYuNSA2Ni41IDAgMDAtLjY3NCAxLjYwNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDgzLCAxMDAlLCA1MCUpIiBkPSJNNzQuNDg4IDEwNy40MjNhNjYuNSA2Ni41IDAgMDAtLjcwMiAxLjU5MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDg0LCAxMDAlLCA1MCUpIiBkPSJNNzQuOTc4IDEwNi4zNzFhNjYuNSA2Ni41IDAgMDAtLjcyOSAxLjU4MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDg1LCAxMDAlLCA1MCUpIiBkPSJNNzUuNDg3IDEwNS4zMjhhNjYuNSA2Ni41IDAgMDAtLjc1NiAxLjU2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDg2LCAxMDAlLCA1MCUpIiBkPSJNNzYuMDE0IDEwNC4yOTRhNjYuNSA2Ni41IDAgMDAtLjc4NCAxLjU1NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDg3LCAxMDAlLCA1MCUpIiBkPSJNNzYuNTU5IDEwMy4yNjlhNjYuNSA2Ni41IDAgMDAtLjgxIDEuNTQiLz48cGF0aCBzdHJva2U9ImhzbCg4OCwgMTAwJSwgNTAlKSIgZD0iTTc3LjEyMSAxMDIuMjU0YTY2LjUgNjYuNSAwIDAwLS44MzcgMS41MjYiLz48cGF0aCBzdHJva2U9ImhzbCg4OSwgMTAwJSwgNTAlKSIgZD0iTTc3LjcwMiAxMDEuMjQ5YTY2LjUgNjYuNSAwIDAwLS44NjQgMS41MTEiLz48cGF0aCBzdHJva2U9ImhzbCg5MCwgMTAwJSwgNTAlKSIgZD0iTTc4LjMgMTAwLjI1NGE2Ni41IDY2LjUgMCAwMC0uODkgMS40OTYiLz48cGF0aCBzdHJva2U9ImhzbCg5MSwgMTAwJSwgNTAlKSIgZD0iTTc4LjkxNCA5OS4yN2E2Ni41IDY2LjUgMCAwMC0uOTE2IDEuNDgiLz48cGF0aCBzdHJva2U9ImhzbCg5MiwgMTAwJSwgNTAlKSIgZD0iTTc5LjU0NyA5OC4yOTZhNjYuNSA2Ni41IDAgMDAtLjk0MiAxLjQ2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDkzLCAxMDAlLCA1MCUpIiBkPSJNODAuMTk2IDk3LjMzNGE2Ni41IDY2LjUgMCAwMC0uOTY4IDEuNDQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woOTQsIDEwMCUsIDUwJSkiIGQ9Ik04MC44NjEgOTYuMzgzYTY2LjUgNjYuNSAwIDAwLS45OTIgMS40MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDk1LCAxMDAlLCA1MCUpIiBkPSJNODEuNTQ0IDk1LjQ0NGE2Ni41IDY2LjUgMCAwMC0xLjAxOCAxLjQxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDk2LCAxMDAlLCA1MCUpIiBkPSJNODIuMjQyIDk0LjUxN2E2Ni41IDY2LjUgMCAwMC0xLjA0MiAxLjM5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDk3LCAxMDAlLCA1MCUpIiBkPSJNODIuOTU3IDkzLjYwM2E2Ni41IDY2LjUgMCAwMC0xLjA2NiAxLjM3NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDk4LCAxMDAlLCA1MCUpIiBkPSJNODMuNjg3IDkyLjdhNjYuNSA2Ni41IDAgMDAtMS4wOSAxLjM1OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDk5LCAxMDAlLCA1MCUpIiBkPSJNODQuNDMzIDkxLjgxMmE2Ni41IDY2LjUgMCAwMC0xLjExMyAxLjMzOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwMCwgMTAwJSwgNTAlKSIgZD0iTTg1LjE5NCA5MC45MzZhNjYuNSA2Ni41IDAgMDAtMS4xMzYgMS4zMTkiLz48cGF0aCBzdHJva2U9ImhzbCgxMDEsIDEwMCUsIDUwJSkiIGQ9Ik04NS45NzEgOTAuMDczYTY2LjUgNjYuNSAwIDAwLTEuMTYgMS4zIi8+PHBhdGggc3Ryb2tlPSJoc2woMTAyLCAxMDAlLCA1MCUpIiBkPSJNODYuNzYzIDg5LjIyNGE2Ni41IDY2LjUgMCAwMC0xLjE4MiAxLjI3OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwMywgMTAwJSwgNTAlKSIgZD0iTTg3LjU2OSA4OC4zOWE2Ni41IDY2LjUgMCAwMC0xLjIwNCAxLjI1NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwNCwgMTAwJSwgNTAlKSIgZD0iTTg4LjM5IDg3LjU2OWE2Ni41IDY2LjUgMCAwMC0xLjIyNiAxLjIzNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwNSwgMTAwJSwgNTAlKSIgZD0iTTg5LjIyNCA4Ni43NjNhNjYuNSA2Ni41IDAgMDAtMS4yNDcgMS4yMTQiLz48cGF0aCBzdHJva2U9ImhzbCgxMDYsIDEwMCUsIDUwJSkiIGQ9Ik05MC4wNzMgODUuOTcxYTY2LjUgNjYuNSAwIDAwLTEuMjY4IDEuMTkzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTA3LCAxMDAlLCA1MCUpIiBkPSJNOTAuOTM2IDg1LjE5NGE2Ni41IDY2LjUgMCAwMC0xLjI4OSAxLjE3MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwOCwgMTAwJSwgNTAlKSIgZD0iTTkxLjgxMiA4NC40MzNhNjYuNSA2Ni41IDAgMDAtMS4zMSAxLjE0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwOSwgMTAwJSwgNTAlKSIgZD0iTTkyLjcgODMuNjg3YTY2LjUgNjYuNSAwIDAwLTEuMzI4IDEuMTI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTEwLCAxMDAlLCA1MCUpIiBkPSJNOTMuNjAzIDgyLjk1N2E2Ni41IDY2LjUgMCAwMC0xLjM0OCAxLjEwMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDExMSwgMTAwJSwgNTAlKSIgZD0iTTk0LjUxNyA4Mi4yNDJhNjYuNSA2Ni41IDAgMDAtMS4zNjcgMS4wNzgiLz48cGF0aCBzdHJva2U9ImhzbCgxMTIsIDEwMCUsIDUwJSkiIGQ9Ik05NS40NDQgODEuNTQ0YTY2LjUgNjYuNSAwIDAwLTEuMzg1IDEuMDUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTEzLCAxMDAlLCA1MCUpIiBkPSJNOTYuMzgzIDgwLjg2MWE2Ni41IDY2LjUgMCAwMC0xLjQwNCAxLjAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTE0LCAxMDAlLCA1MCUpIiBkPSJNOTcuMzM0IDgwLjE5NmE2Ni41IDY2LjUgMCAwMC0xLjQyMiAxLjAwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDExNSwgMTAwJSwgNTAlKSIgZD0iTTk4LjI5NiA3OS41NDdhNjYuNSA2Ni41IDAgMDAtMS40MzkuOTgiLz48cGF0aCBzdHJva2U9ImhzbCgxMTYsIDEwMCUsIDUwJSkiIGQ9Ik05OS4yNyA3OC45MTRhNjYuNSA2Ni41IDAgMDAtMS40NTYuOTU1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTE3LCAxMDAlLCA1MCUpIiBkPSJNMTAwLjI1NCA3OC4zYTY2LjUgNjYuNSAwIDAwLTEuNDcyLjkyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDExOCwgMTAwJSwgNTAlKSIgZD0iTTEwMS4yNDkgNzcuNzAyYTY2LjUgNjYuNSAwIDAwLTEuNDg5LjkwMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDExOSwgMTAwJSwgNTAlKSIgZD0iTTEwMi4yNTQgNzcuMTIxYTY2LjUgNjYuNSAwIDAwLTEuNTA0Ljg3NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEyMCwgMTAwJSwgNTAlKSIgZD0iTTEwMy4yNjkgNzYuNTU5YTY2LjUgNjYuNSAwIDAwLTEuNTE5Ljg1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIxLCAxMDAlLCA1MCUpIiBkPSJNMTA0LjI5NCA3Ni4wMTRhNjYuNSA2Ni41IDAgMDAtMS41MzQuODI0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIyLCAxMDAlLCA1MCUpIiBkPSJNMTA1LjMyOCA3NS40ODdhNjYuNSA2Ni41IDAgMDAtMS41NDguNzk3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIzLCAxMDAlLCA1MCUpIiBkPSJNMTA2LjM3MSA3NC45NzhhNjYuNSA2Ni41IDAgMDAtMS41NjEuNzciLz48cGF0aCBzdHJva2U9ImhzbCgxMjQsIDEwMCUsIDUwJSkiIGQ9Ik0xMDcuNDIzIDc0LjQ4OGE2Ni41IDY2LjUgMCAwMC0xLjU3NS43NDIiLz48cGF0aCBzdHJva2U9ImhzbCgxMjUsIDEwMCUsIDUwJSkiIGQ9Ik0xMDguNDgzIDc0LjAxNmE2Ni41IDY2LjUgMCAwMC0xLjU4Ny43MTUiLz48cGF0aCBzdHJva2U9ImhzbCgxMjYsIDEwMCUsIDUwJSkiIGQ9Ik0xMDkuNTUyIDczLjU2MmE2Ni41IDY2LjUgMCAwMC0xLjYuNjg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTI3LCAxMDAlLCA1MCUpIiBkPSJNMTEwLjYyOCA3My4xMjdhNjYuNSA2Ni41IDAgMDAtMS42MTIuNjYiLz48cGF0aCBzdHJva2U9ImhzbCgxMjgsIDEwMCUsIDUwJSkiIGQ9Ik0xMTEuNzExIDcyLjcxMWE2Ni41IDY2LjUgMCAwMC0xLjYyMi42MzEiLz48cGF0aCBzdHJva2U9ImhzbCgxMjksIDEwMCUsIDUwJSkiIGQ9Ik0xMTIuODAyIDcyLjMxNGE2Ni41IDY2LjUgMCAwMC0xLjYzMy42MDMiLz48cGF0aCBzdHJva2U9ImhzbCgxMzAsIDEwMCUsIDUwJSkiIGQ9Ik0xMTMuOSA3MS45MzZhNjYuNSA2Ni41IDAgMDAtMS42NDQuNTc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMxLCAxMDAlLCA1MCUpIiBkPSJNMTE1LjAwMyA3MS41NzhhNjYuNSA2Ni41IDAgMDAtMS42NTMuNTQ1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMyLCAxMDAlLCA1MCUpIiBkPSJNMTE2LjExMyA3MS4yMzhhNjYuNSA2Ni41IDAgMDAtMS42NjMuNTE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMzLCAxMDAlLCA1MCUpIiBkPSJNMTE3LjIyOSA3MC45MTlhNjYuNSA2Ni41IDAgMDAtMS42NzIuNDg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTM0LCAxMDAlLCA1MCUpIiBkPSJNMTE4LjM1IDcwLjYxOGE2Ni41IDY2LjUgMCAwMC0xLjY4LjQ1OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzNSwgMTAwJSwgNTAlKSIgZD0iTTExOS40NzYgNzAuMzM3YTY2LjUgNjYuNSAwIDAwLTEuNjg3LjQyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzNiwgMTAwJSwgNTAlKSIgZD0iTTEyMC42MDcgNzAuMDc2YTY2LjUgNjYuNSAwIDAwLTEuNjk1LjQiLz48cGF0aCBzdHJva2U9ImhzbCgxMzcsIDEwMCUsIDUwJSkiIGQ9Ik0xMjEuNzQyIDY5LjgzNWE2Ni41IDY2LjUgMCAwMC0xLjcwMS4zNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzOCwgMTAwJSwgNTAlKSIgZD0iTTEyMi44ODEgNjkuNjE0YTY2LjUgNjYuNSAwIDAwLTEuNzA3LjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTM5LCAxMDAlLCA1MCUpIiBkPSJNMTI0LjAyNCA2OS40MTJhNjYuNSA2Ni41IDAgMDAtMS43MTMuMzEiLz48cGF0aCBzdHJva2U9ImhzbCgxNDAsIDEwMCUsIDUwJSkiIGQ9Ik0xMjUuMTcgNjkuMjNhNjYuNSA2Ni41IDAgMDAtMS43MTguMjgiLz48cGF0aCBzdHJva2U9ImhzbCgxNDEsIDEwMCUsIDUwJSkiIGQ9Ik0xMjYuMzIgNjkuMDY5YTY2LjUgNjYuNSAwIDAwLTEuNzIzLjI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQyLCAxMDAlLCA1MCUpIiBkPSJNMTI3LjQ3MiA2OC45MjdhNjYuNSA2Ni41IDAgMDAtMS43MjcuMjIiLz48cGF0aCBzdHJva2U9ImhzbCgxNDMsIDEwMCUsIDUwJSkiIGQ9Ik0xMjguNjI2IDY4LjgwNmE2Ni41IDY2LjUgMCAwMC0xLjczLjE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQ0LCAxMDAlLCA1MCUpIiBkPSJNMTI5Ljc4MiA2OC43MDVhNjYuNSA2Ni41IDAgMDAtMS43MzMuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxNDUsIDEwMCUsIDUwJSkiIGQ9Ik0xMzAuOTQgNjguNjI0YTY2LjUgNjYuNSAwIDAwLTEuNzM2LjEzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTQ2LCAxMDAlLCA1MCUpIiBkPSJNMTMyLjEgNjguNTYzYTY2LjUgNjYuNSAwIDAwLTEuNzM5LjA5OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE0NywgMTAwJSwgNTAlKSIgZD0iTTEzMy4yNiA2OC41MjNhNjYuNSA2Ni41IDAgMDAtMS43NC4wNjgiLz48cGF0aCBzdHJva2U9ImhzbCgxNDgsIDEwMCUsIDUwJSkiIGQ9Ik0xMzQuNDIgNjguNTAzYTY2LjUgNjYuNSAwIDAwLTEuNzQuMDM4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQ5LCAxMDAlLCA1MCUpIiBkPSJNMTM1LjU4IDY4LjUwM2E2Ni41IDY2LjUgMCAwMC0xLjc0LjAwNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MCwgMTAwJSwgNTAlKSIgZD0iTTEzNi43NCA2OC41MjNBNjYuNSA2Ni41IDAgMDAxMzUgNjguNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MSwgMTAwJSwgNTAlKSIgZD0iTTEzNy45IDY4LjU2M2E2Ni41IDY2LjUgMCAwMC0xLjc0LS4wNTMiLz48cGF0aCBzdHJva2U9ImhzbCgxNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xMzkuMDYgNjguNjI0YTY2LjUgNjYuNSAwIDAwLTEuNzQtLjA4MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MywgMTAwJSwgNTAlKSIgZD0iTTE0MC4yMTggNjguNzA1YTY2LjUgNjYuNSAwIDAwLTEuNzM4LS4xMTQiLz48cGF0aCBzdHJva2U9ImhzbCgxNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xNDEuMzc0IDY4LjgwNmE2Ni41IDY2LjUgMCAwMC0xLjczNS0uMTQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTU1LCAxMDAlLCA1MCUpIiBkPSJNMTQyLjUyOCA2OC45MjdhNjYuNSA2Ni41IDAgMDAtMS43MzItLjE3NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1NiwgMTAwJSwgNTAlKSIgZD0iTTE0My42OCA2OS4wNjlhNjYuNSA2Ni41IDAgMDAtMS43MjktLjIwNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1NywgMTAwJSwgNTAlKSIgZD0iTTE0NC44MyA2OS4yM2E2Ni41IDY2LjUgMCAwMC0xLjcyNi0uMjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTU4LCAxMDAlLCA1MCUpIiBkPSJNMTQ1Ljk3NiA2OS40MTJhNjYuNSA2Ni41IDAgMDAtMS43MjEtLjI2NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1OSwgMTAwJSwgNTAlKSIgZD0iTTE0Ny4xMTkgNjkuNjE0YTY2LjUgNjYuNSAwIDAwLTEuNzE2LS4yOTUiLz48cGF0aCBzdHJva2U9ImhzbCgxNjAsIDEwMCUsIDUwJSkiIGQ9Ik0xNDguMjU4IDY5LjgzNWE2Ni41IDY2LjUgMCAwMC0xLjcxLS4zMjUiLz48cGF0aCBzdHJva2U9ImhzbCgxNjEsIDEwMCUsIDUwJSkiIGQ9Ik0xNDkuMzkzIDcwLjA3NmE2Ni41IDY2LjUgMCAwMC0xLjcwNC0uMzU0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTYyLCAxMDAlLCA1MCUpIiBkPSJNMTUwLjUyNCA3MC4zMzdhNjYuNSA2Ni41IDAgMDAtMS42OTgtLjM4NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2MywgMTAwJSwgNTAlKSIgZD0iTTE1MS42NSA3MC42MThhNjYuNSA2Ni41IDAgMDAtMS42OS0uNDE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTY0LCAxMDAlLCA1MCUpIiBkPSJNMTUyLjc3MSA3MC45MTlhNjYuNSA2Ni41IDAgMDAtMS42ODMtLjQ0NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2NSwgMTAwJSwgNTAlKSIgZD0iTTE1My44ODcgNzEuMjM4YTY2LjUgNjYuNSAwIDAwLTEuNjc2LS40NzIiLz48cGF0aCBzdHJva2U9ImhzbCgxNjYsIDEwMCUsIDUwJSkiIGQ9Ik0xNTQuOTk3IDcxLjU3OGE2Ni41IDY2LjUgMCAwMC0xLjY2Ny0uNTAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTY3LCAxMDAlLCA1MCUpIiBkPSJNMTU2LjEgNzEuOTM2YTY2LjUgNjYuNSAwIDAwLTEuNjU3LS41MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2OCwgMTAwJSwgNTAlKSIgZD0iTTE1Ny4xOTggNzIuMzE0YTY2LjUgNjYuNSAwIDAwLTEuNjQ4LS41NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2OSwgMTAwJSwgNTAlKSIgZD0iTTE1OC4yODkgNzIuNzExYTY2LjUgNjYuNSAwIDAwLTEuNjM5LS41ODgiLz48cGF0aCBzdHJva2U9ImhzbCgxNzAsIDEwMCUsIDUwJSkiIGQ9Ik0xNTkuMzcyIDczLjEyN2E2Ni41IDY2LjUgMCAwMC0xLjYyOC0uNjE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTcxLCAxMDAlLCA1MCUpIiBkPSJNMTYwLjQ0OCA3My41NjJhNjYuNSA2Ni41IDAgMDAtMS42MTctLjY0NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE3MiwgMTAwJSwgNTAlKSIgZD0iTTE2MS41MTcgNzQuMDE2YTY2LjUgNjYuNSAwIDAwLTEuNjA2LS42NzQiLz48cGF0aCBzdHJva2U9ImhzbCgxNzMsIDEwMCUsIDUwJSkiIGQ9Ik0xNjIuNTc3IDc0LjQ4OGE2Ni41IDY2LjUgMCAwMC0xLjU5My0uNzAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTc0LCAxMDAlLCA1MCUpIiBkPSJNMTYzLjYyOSA3NC45NzhhNjYuNSA2Ni41IDAgMDAtMS41ODEtLjcyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE3NSwgMTAwJSwgNTAlKSIgZD0iTTE2NC42NzIgNzUuNDg3YTY2LjUgNjYuNSAwIDAwLTEuNTY4LS43NTYiLz48cGF0aCBzdHJva2U9ImhzbCgxNzYsIDEwMCUsIDUwJSkiIGQ9Ik0xNjUuNzA2IDc2LjAxNGE2Ni41IDY2LjUgMCAwMC0xLjU1NC0uNzg0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTc3LCAxMDAlLCA1MCUpIiBkPSJNMTY2LjczMSA3Ni41NTlhNjYuNSA2Ni41IDAgMDAtMS41NC0uODEiLz48cGF0aCBzdHJva2U9ImhzbCgxNzgsIDEwMCUsIDUwJSkiIGQ9Ik0xNjcuNzQ2IDc3LjEyMWE2Ni41IDY2LjUgMCAwMC0xLjUyNi0uODM3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTc5LCAxMDAlLCA1MCUpIiBkPSJNMTY4Ljc1MSA3Ny43MDJhNjYuNSA2Ni41IDAgMDAtMS41MTEtLjg2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4MCwgMTAwJSwgNTAlKSIgZD0iTTE2OS43NDYgNzguM2E2Ni41IDY2LjUgMCAwMC0xLjQ5Ni0uODkiLz48cGF0aCBzdHJva2U9ImhzbCgxODEsIDEwMCUsIDUwJSkiIGQ9Ik0xNzAuNzMgNzguOTE0YTY2LjUgNjYuNSAwIDAwLTEuNDgtLjkxNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4MiwgMTAwJSwgNTAlKSIgZD0iTTE3MS43MDQgNzkuNTQ3YTY2LjUgNjYuNSAwIDAwLTEuNDY0LS45NDIiLz48cGF0aCBzdHJva2U9ImhzbCgxODMsIDEwMCUsIDUwJSkiIGQ9Ik0xNzIuNjY2IDgwLjE5NmE2Ni41IDY2LjUgMCAwMC0xLjQ0OC0uOTY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTg0LCAxMDAlLCA1MCUpIiBkPSJNMTczLjYxNyA4MC44NjFhNjYuNSA2Ni41IDAgMDAtMS40My0uOTkyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTg1LCAxMDAlLCA1MCUpIiBkPSJNMTc0LjU1NiA4MS41NDRhNjYuNSA2Ni41IDAgMDAtMS40MTMtMS4wMTgiLz48cGF0aCBzdHJva2U9ImhzbCgxODYsIDEwMCUsIDUwJSkiIGQ9Ik0xNzUuNDgzIDgyLjI0MmE2Ni41IDY2LjUgMCAwMC0xLjM5NS0xLjA0MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4NywgMTAwJSwgNTAlKSIgZD0iTTE3Ni4zOTcgODIuOTU3YTY2LjUgNjYuNSAwIDAwLTEuMzc2LTEuMDY2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTg4LCAxMDAlLCA1MCUpIiBkPSJNMTc3LjMgODMuNjg3YTY2LjUgNjYuNSAwIDAwLTEuMzU5LTEuMDkiLz48cGF0aCBzdHJva2U9ImhzbCgxODksIDEwMCUsIDUwJSkiIGQ9Ik0xNzguMTg4IDg0LjQzM2E2Ni41IDY2LjUgMCAwMC0xLjMzOC0xLjExMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5MCwgMTAwJSwgNTAlKSIgZD0iTTE3OS4wNjQgODUuMTk0YTY2LjUgNjYuNSAwIDAwLTEuMzE5LTEuMTM2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTkxLCAxMDAlLCA1MCUpIiBkPSJNMTc5LjkyNyA4NS45NzFhNjYuNSA2Ni41IDAgMDAtMS4zLTEuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxOTIsIDEwMCUsIDUwJSkiIGQ9Ik0xODAuNzc2IDg2Ljc2M2E2Ni41IDY2LjUgMCAwMC0xLjI3OS0xLjE4MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5MywgMTAwJSwgNTAlKSIgZD0iTTE4MS42MSA4Ny41NjlhNjYuNSA2Ni41IDAgMDAtMS4yNTctMS4yMDQiLz48cGF0aCBzdHJva2U9ImhzbCgxOTQsIDEwMCUsIDUwJSkiIGQ9Ik0xODIuNDMxIDg4LjM5YTY2LjUgNjYuNSAwIDAwLTEuMjM2LTEuMjI2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTk1LCAxMDAlLCA1MCUpIiBkPSJNMTgzLjIzNyA4OS4yMjRhNjYuNSA2Ni41IDAgMDAtMS4yMTQtMS4yNDciLz48cGF0aCBzdHJva2U9ImhzbCgxOTYsIDEwMCUsIDUwJSkiIGQ9Ik0xODQuMDI5IDkwLjA3M2E2Ni41IDY2LjUgMCAwMC0xLjE5My0xLjI2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5NywgMTAwJSwgNTAlKSIgZD0iTTE4NC44MDYgOTAuOTM2YTY2LjUgNjYuNSAwIDAwLTEuMTcxLTEuMjg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTk4LCAxMDAlLCA1MCUpIiBkPSJNMTg1LjU2NyA5MS44MTJhNjYuNSA2Ni41IDAgMDAtMS4xNDgtMS4zMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5OSwgMTAwJSwgNTAlKSIgZD0iTTE4Ni4zMTMgOTIuN2E2Ni41IDY2LjUgMCAwMC0xLjEyNS0xLjMyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwMCwgMTAwJSwgNTAlKSIgZD0iTTE4Ny4wNDMgOTMuNjAzYTY2LjUgNjYuNSAwIDAwLTEuMTAxLTEuMzQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjAxLCAxMDAlLCA1MCUpIiBkPSJNMTg3Ljc1OCA5NC41MTdhNjYuNSA2Ni41IDAgMDAtMS4wNzgtMS4zNjciLz48cGF0aCBzdHJva2U9ImhzbCgyMDIsIDEwMCUsIDUwJSkiIGQ9Ik0xODguNDU2IDk1LjQ0NGE2Ni41IDY2LjUgMCAwMC0xLjA1My0xLjM4NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwMywgMTAwJSwgNTAlKSIgZD0iTTE4OS4xMzkgOTYuMzgzYTY2LjUgNjYuNSAwIDAwLTEuMDMtMS40MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMDQsIDEwMCUsIDUwJSkiIGQ9Ik0xODkuODA0IDk3LjMzNGE2Ni41IDY2LjUgMCAwMC0xLjAwNC0xLjQyMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNSwgMTAwJSwgNTAlKSIgZD0iTTE5MC40NTMgOTguMjk2YTY2LjUgNjYuNSAwIDAwLS45OC0xLjQzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNiwgMTAwJSwgNTAlKSIgZD0iTTE5MS4wODYgOTkuMjdhNjYuNSA2Ni41IDAgMDAtLjk1NS0xLjQ1NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNywgMTAwJSwgNTAlKSIgZD0iTTE5MS43IDEwMC4yNTRhNjYuNSA2Ni41IDAgMDAtLjkyOC0xLjQ3MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwOCwgMTAwJSwgNTAlKSIgZD0iTTE5Mi4yOTggMTAxLjI0OWE2Ni41IDY2LjUgMCAwMC0uOTAzLTEuNDg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjA5LCAxMDAlLCA1MCUpIiBkPSJNMTkyLjg3OSAxMDIuMjU0YTY2LjUgNjYuNSAwIDAwLS44NzctMS41MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMTAsIDEwMCUsIDUwJSkiIGQ9Ik0xOTMuNDQxIDEwMy4yNjlhNjYuNSA2Ni41IDAgMDAtLjg1LTEuNTE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjExLCAxMDAlLCA1MCUpIiBkPSJNMTkzLjk4NiAxMDQuMjk0YTY2LjUgNjYuNSAwIDAwLS44MjQtMS41MzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMTIsIDEwMCUsIDUwJSkiIGQ9Ik0xOTQuNTEzIDEwNS4zMjhhNjYuNSA2Ni41IDAgMDAtLjc5Ny0xLjU0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxMywgMTAwJSwgNTAlKSIgZD0iTTE5NS4wMjIgMTA2LjM3MWE2Ni41IDY2LjUgMCAwMC0uNzctMS41NjEiLz48cGF0aCBzdHJva2U9ImhzbCgyMTQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTUuNTEyIDEwNy40MjNhNjYuNSA2Ni41IDAgMDAtLjc0Mi0xLjU3NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxNSwgMTAwJSwgNTAlKSIgZD0iTTE5NS45ODQgMTA4LjQ4M2E2Ni41IDY2LjUgMCAwMC0uNzE1LTEuNTg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjE2LCAxMDAlLCA1MCUpIiBkPSJNMTk2LjQzOCAxMDkuNTUyYTY2LjUgNjYuNSAwIDAwLS42ODctMS42Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjE3LCAxMDAlLCA1MCUpIiBkPSJNMTk2Ljg3MyAxMTAuNjI4YTY2LjUgNjYuNSAwIDAwLS42Ni0xLjYxMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxOCwgMTAwJSwgNTAlKSIgZD0iTTE5Ny4yODkgMTExLjcxMWE2Ni41IDY2LjUgMCAwMC0uNjMxLTEuNjIyIi8+PHBhdGggc3Ryb2tlPSJoc2woMjE5LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjY4NiAxMTIuODAyYTY2LjUgNjYuNSAwIDAwLS42MDMtMS42MzMiLz48cGF0aCBzdHJva2U9ImhzbCgyMjAsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguMDY0IDExMy45YTY2LjUgNjYuNSAwIDAwLS41NzQtMS42NDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMjEsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguNDIyIDExNS4wMDNhNjYuNSA2Ni41IDAgMDAtLjU0NS0xLjY1MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyMiwgMTAwJSwgNTAlKSIgZD0iTTE5OC43NjIgMTE2LjExM2E2Ni41IDY2LjUgMCAwMC0uNTE3LTEuNjYzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjIzLCAxMDAlLCA1MCUpIiBkPSJNMTk5LjA4MSAxMTcuMjI5YTY2LjUgNjYuNSAwIDAwLS40ODctMS42NzIiLz48cGF0aCBzdHJva2U9ImhzbCgyMjQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuMzgyIDExOC4zNWE2Ni41IDY2LjUgMCAwMC0uNDU4LTEuNjgiLz48cGF0aCBzdHJva2U9ImhzbCgyMjUsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuNjYzIDExOS40NzZhNjYuNSA2Ni41IDAgMDAtLjQyOS0xLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyNiwgMTAwJSwgNTAlKSIgZD0iTTE5OS45MjQgMTIwLjYwN2E2Ni41IDY2LjUgMCAwMC0uNC0xLjY5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyNywgMTAwJSwgNTAlKSIgZD0iTTIwMC4xNjUgMTIxLjc0MmE2Ni41IDY2LjUgMCAwMC0uMzctMS43MDEiLz48cGF0aCBzdHJva2U9ImhzbCgyMjgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDAuMzg2IDEyMi44ODFhNjYuNSA2Ni41IDAgMDAtLjM0LTEuNzA3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjI5LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjU4OCAxMjQuMDI0YTY2LjUgNjYuNSAwIDAwLS4zMS0xLjcxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzMCwgMTAwJSwgNTAlKSIgZD0iTTIwMC43NyAxMjUuMTdhNjYuNSA2Ni41IDAgMDAtLjI4LTEuNzE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjMxLCAxMDAlLCA1MCUpIiBkPSJNMjAwLjkzMSAxMjYuMzJhNjYuNSA2Ni41IDAgMDAtLjI1LTEuNzIzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjMyLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjA3MyAxMjcuNDcyYTY2LjUgNjYuNSAwIDAwLS4yMi0xLjcyNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzMywgMTAwJSwgNTAlKSIgZD0iTTIwMS4xOTQgMTI4LjYyNmE2Ni41IDY2LjUgMCAwMC0uMTktMS43MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzNCwgMTAwJSwgNTAlKSIgZD0iTTIwMS4yOTUgMTI5Ljc4MmE2Ni41IDY2LjUgMCAwMC0uMTYtMS43MzMiLz48cGF0aCBzdHJva2U9ImhzbCgyMzUsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuMzc2IDEzMC45NGE2Ni41IDY2LjUgMCAwMC0uMTMtMS43MzYiLz48cGF0aCBzdHJva2U9ImhzbCgyMzYsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDM3IDEzMi4xYTY2LjUgNjYuNSAwIDAwLS4wOTktMS43MzkiLz48cGF0aCBzdHJva2U9ImhzbCgyMzcsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDc3IDEzMy4yNmE2Ni41IDY2LjUgMCAwMC0uMDY4LTEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMzgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDk3IDEzNC40MmE2Ni41IDY2LjUgMCAwMC0uMDM4LTEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMzksIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDk3IDEzNS41OGE2Ni41IDY2LjUgMCAwMC0uMDA3LTEuNzQiLz48L2c+PGNpcmNsZSBjeD0iMTM1IiBjeT0iMTM1IiByPSIxMzMiIGZpbGw9InVybCgjYSkiIGNsYXNzPSJJcm9XaGVlbFNhdHVyYXRpb24iLz48Y2lyY2xlIGN4PSIxMzUiIGN5PSIxMzUiIHI9IjEzMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIGNsYXNzPSJJcm9XaGVlbEJvcmRlciIvPjwvc3ZnPg=='; + + dialog.querySelector('.satus-scrollbar__content').appendChild(close); + dialog.querySelector('.satus-scrollbar__content').appendChild(component_canvas); + + document.body.appendChild(dialog); + }); + + component.appendChild(component_value); + + return component; +}; +/*-------------------------------------------------------------- +>>> DIALOG +--------------------------------------------------------------*/ + +satus.components.dialog = function(element) { + var component = document.createElement('div'), + component_scrim = document.createElement('div'), + component_surface = document.createElement('div'), + component_scrollbar = satus.components.scrollbar(component_surface), + options = element.options || {}; + + component_scrim.className = 'satus-dialog__scrim'; + component_surface.className = 'satus-dialog__surface'; + + for (var key in element) { + satus.render(element[key], component_scrollbar); + } + + function close() { + window.removeEventListener('keydown', keydown); + + component.classList.add('satus-dialog--closing'); + + if (typeof element.onclose === 'function') { + element.onclose(); + } + + setTimeout(function() { + component.remove(); + }, satus.getAnimationDuration(component_surface)); + } + + function keydown(event) { + if (event.keyCode === 27) { + event.preventDefault(); + close(); + } + + if (event.keyCode === 9) { + var elements = component_surface.querySelectorAll('button, input'), + focused = false; + + event.preventDefault(); + + for (var i = 0, l = elements.length; i < l; i++) { + if (elements[i] === document.activeElement && elements[i + 1]) { + elements[i + 1].focus(); + + focused = true; + + i = l; + } + } + + if (focused === false) { + elements[0].focus(); + } + } + } + + component_scrim.addEventListener('click', close); + window.addEventListener('keydown', keydown); + + component.appendChild(component_scrim); + component.appendChild(component_surface); + + // OPTIONS + + if (options.left) { + component_surface.style.left = options.left + 'px'; + } + + if (options.top) { + component_surface.style.top = options.top + 'px'; + } + + if (options.width) { + component_surface.style.width = options.width + 'px'; + } + + if (options.height) { + component_surface.style.height = options.height + 'px'; + } + + // END OPTIONS + + return component; +}; +/*-------------------------------------------------------------- +>>> FOLDER +--------------------------------------------------------------*/ + +satus.components.folder = function(object) { + var component = document.createElement('button'); + + component.object = object; + + component.classList.add('satus-button'); + + component.addEventListener('click', function() { + var parent = document.querySelector(component.object.parent) || document.querySelector('.satus-main'); + + if (!component.object.parent || !parent.classList.contains('satus-main')) { + while (!parent.classList.contains('satus-main')) { + parent = parent.parentNode; + } + } + + parent.open(this.object, object.onopen); + }); + + if (satus.isset(object.label)) { + var component_label = document.createElement('span'); + + component_label.className = 'satus-folder__label'; + component_label.innerText = satus.locale.getMessage(object.label); + + component.appendChild(component_label); + } + + return component; +}; +/*-------------------------------------------------------------- +>>> HEADER +--------------------------------------------------------------*/ + +satus.components.header = function(object) { + var component = document.createElement('header'); + + for (var key in object) { + satus.render(object[key], component); + } + + return component; +}; +/*-------------------------------------------------------------- +>>> LIST +--------------------------------------------------------------*/ + +satus.components.list = function(object) { + var ul = document.createElement('ul'); + + if (object.compact === true) { + ul.classList.add('satus-list'); + ul.classList.add('satus-list--compact'); + } + + for (var key in object) { + if (satus.isset(object[key].type)) { + var li = document.createElement('li'); + + if (object.sortable === true) { + function mousedown(event) { + if (event.button === 0) { + var self = this, + dragging = false, + clone = false, + current_index = Array.from(self.parentNode.children).indexOf(self), + bounding = this.getBoundingClientRect(), + first_x = event.clientX, + first_y = event.clientY, + offset_x = event.clientX - bounding.left, + offset_y = event.clientY - bounding.top; + + function mousemove(event) { + if (Math.abs(first_y - event.clientY) <= 5) { + return false; + } + + if (dragging === false) { + clone = self.cloneNode(true); + + satus.cloneNodeStyles(self, clone); + clone.style.position = 'fixed'; + clone.style.pointerEvents = 'none'; + clone.style.backgroundColor = '#fff'; + self.style.visibility = 'hidden'; + + document.body.appendChild(clone); + + dragging = true; + } + + var x = bounding.left, //event.clientX - offset_x + y = event.clientY - offset_y, + index = Math.floor(y / self.offsetHeight) - 1; + + clone.style.left = x + 'px'; + clone.style.top = y + 'px'; + + //return false; + + if (index !== current_index && self.parentNode.children[index]) { + var new_clone = self.cloneNode(true); + + if (index > 0) { + self.parentNode.insertBefore(new_clone, self.parentNode.children[index].nextSibling); + } else { + self.parentNode.insertBefore(new_clone, self.parentNode.children[index]); + } + + self.remove(); + + self = new_clone; + + self.addEventListener('mousedown', mousedown); + + if (typeof object.onchange === 'function') { + object.onchange(current_index, index); + } + + current_index = index; + } + } + + function mouseup(event) { + if (clone) { + clone.remove(); + self.style.visibility = ''; + } + + window.removeEventListener('mousemove', mousemove); + window.removeEventListener('mouseup', mouseup); + } + + window.addEventListener('mousemove', mousemove); + window.addEventListener('mouseup', mouseup); + } + } + + li.addEventListener('mousedown', mousedown); + } + + satus.render(object[key], li); + + ul.appendChild(li); + } + } + + return ul; +}; + +/*-------------------------------------------------------------- +>>> MAIN +--------------------------------------------------------------*/ + +satus.components.main = function(object) { + var component = document.createElement('main'), + component_container = document.createElement('div'), + component_scrollbar = satus.components.scrollbar(component_container, object.scrollbar); + + component.history = [object]; + + component.back = function() { + var container = this.querySelector('.satus-main__container'), + component_container = document.createElement('div'), + component_scrollbar = satus.components.scrollbar(component_container); + + container.classList.add('satus-main__container--fade-out-right'); + component_container.className = 'satus-main__container satus-main__container--fade-in-left'; + + this.history.pop(); + + for (var key in this.history[this.history.length - 1]) { + satus.render(this.history[this.history.length - 1][key], component_scrollbar); + } + + this.appendChild(component_container); + + if (this.historyListener) { + this.historyListener(component_container); + } + + if (this.history[this.history.length - 1].onopen) { + component_scrollbar.onopen = this.history[this.history.length - 1].onopen; + + component_scrollbar.onopen(); + } + + setTimeout(function() { + container.remove(); + }, satus.getAnimationDuration(container)); + }; + + component.open = function(element, callback, animated) { + var container = this.querySelector('.satus-main__container'), + component_container = document.createElement('div'), + component_scrollbar = satus.components.scrollbar(component_container); + + if (animated !== false) { + container.classList.add('satus-main__container--fade-out-left'); + component_container.className = 'satus-main__container satus-main__container--fade-in-right'; + } else { + component_container.className = 'satus-main__container'; + } + + this.history.push(element); + + for (var key in this.history[this.history.length - 1]) { + satus.render(this.history[this.history.length - 1][key], component_scrollbar); + } + + this.appendChild(component_container); + + if (this.historyListener) { + this.historyListener(component_container); + } + + if (callback) { + component_scrollbar.onopen = callback; + + component_scrollbar.onopen(); + } + + setTimeout(function() { + container.remove(); + }, satus.getAnimationDuration(container)); + }; + + component_container.className = 'satus-main__container'; + + if (object.on && object.on.change) { + component.historyListener = object.on.change; + } + + if (component.historyListener) { + component.historyListener(component_container); + } + + for (var key in object) { + satus.render(object[key], component_scrollbar); + } + + component.appendChild(component_container); + + return component; +}; +/*----------------------------------------------------------------------------- +>>> SCROLL BAR +-----------------------------------------------------------------------------*/ + +satus.components.scrollbar = function(parent, enabled) { + if (enabled === false) { + return parent; + } + + var component = document.createElement('div'), + component_wrapper = document.createElement('div'), + component_content = document.createElement('div'), + component_thumb = document.createElement('div'); + + component.className = 'satus-scrollbar'; + component_wrapper.className = 'satus-scrollbar__wrapper'; + component_content.className = 'satus-scrollbar__content'; + component_thumb.className = 'satus-scrollbar__thumb'; + + + // RESIZE + + function resize() { + component_content.style.width = component.offsetWidth + 'px'; + component_wrapper.style.height = component.offsetHeight + 'px'; + + if (component_wrapper.scrollHeight > component_wrapper.offsetHeight) { + component_thumb.style.height = component_wrapper.offsetHeight / component_wrapper.scrollHeight * component_wrapper.offsetHeight + 'px'; + } + } + + window.addEventListener('resize', resize); + + new MutationObserver(resize).observe(component_content, { + subtree: true, + childList: true + }); + + + // HOVER + + component.timeout = false; + + function active() { + if (component.timeout) { + clearTimeout(component.timeout); + + component.timeout = false; + } + + component.classList.add('active'); + + component.timeout = setTimeout(function() { + component.classList.remove('active'); + + component.timeout = false; + }, 1000); + } + + component.addEventListener('mousemove', active); + + + // SCROLL + + component_wrapper.addEventListener('scroll', function(event) { + active(); + + component_thumb.style.top = Math.floor(component_wrapper.scrollTop * (component_wrapper.offsetHeight - component_thumb.offsetHeight) / (component_wrapper.scrollHeight - component_wrapper.offsetHeight)) + 'px'; + }); + + component_thumb.addEventListener('mousedown', function(event) { + var offsetY = event.layerY; + + if (event.button !== 0) { + return false; + } + + function mousemove(event) { + var offset = 100 / ((component.offsetHeight - component_thumb.offsetHeight) / (event.clientY - offsetY - component.getBoundingClientRect().top)), + scroll = component_wrapper.scrollHeight - component.offsetHeight; + + component_wrapper.scrollTop = scroll / 100 * offset; + + event.preventDefault(); + + return false; + } + + function mouseup() { + window.removeEventListener('mouseup', mouseup); + window.removeEventListener('mousemove', mousemove); + } + + window.addEventListener('mouseup', mouseup); + window.addEventListener('mousemove', mousemove); + }); + + component_wrapper.appendChild(component_content); + component.appendChild(component_wrapper); + component.appendChild(component_thumb); + + parent.appendChild(component); + + return component_content; +}; +/*-------------------------------------------------------------- +>>> SECTION +--------------------------------------------------------------*/ + +satus.components.section = function(element) { + var component = document.createElement('section'); + + for (var key in element) { + satus.render(element[key], component); + } + + return component; +}; + +/*-------------------------------------------------------------- +>>> SELECT +--------------------------------------------------------------*/ + +satus.components.select = function(element) { + var component = document.createElement('button'), + component_label = document.createElement('span'), + component_value = document.createElement('span'), + label = satus.locale.getMessage(element.label); + + component.classList.add('satus-button'); + + component_label.className = 'satus-select__label'; + component_label.innerText = label; + + component_value.className = 'satus-select__value'; + + if (element.storage_key) { + var value = satus.storage.get(element.storage_key); + + component.dataset.storageKey = element.storage_key; + + for (var i = 0, l = element.options.length; i < l; i++) { + if (value === element.options[i].value) { + value = element.options[i].label; + } + } + + component_value.innerText = satus.locale.getMessage(value || element.options[0].label); + } + + component.onclick = function() { + var position = this.getBoundingClientRect(), + dialog = { + type: 'dialog', + class: 'satus-dialog--select-component' + }; + + for (var key in element.options) { + dialog[key] = element.options[key]; + + dialog[key].type = 'button'; + dialog[key].dataset = {}; + dialog[key].dataset.key = element.options[key].label; + dialog[key].dataset.value = element.options[key].value; + dialog[key].onclick = function() { + component_value.innerText = satus.locale.getMessage(this.dataset.key); + + satus.storage.set(component.dataset.storageKey, this.dataset.value); + + var parent = this.parentNode; + + while (!parent.classList.contains('satus-dialog')) { + parent = parent.parentNode; + } + + parent.querySelector('.satus-dialog__scrim').click(); + }; + } + + satus.render(dialog); + }; + + component.appendChild(component_label); + component.appendChild(component_value); + + return component; +}; +/*------------------------------------------------------------------------------ +>>> SHORTCUT +------------------------------------------------------------------------------*/ + +satus.components.shortcut = function(element) { + var self = this, + value = (satus.storage.get(element.storage_key) ? JSON.parse(satus.storage.get(element.storage_key)) : false) || element.value || {}, + component = document.createElement('div'), + component_label = document.createElement('span'), + component_value = document.createElement('span'), + mousewheel_timeout = false, + mousewheel_only = false; + + component_label.className = 'satus-shortcut__label'; + component_value.className = 'satus-shortcut__value'; + + function update(canvas) { + let text_value = [], + keys_value = []; + + if (value.altKey === true) { + text_value.push('Alt'); + keys_value.push('

Alt
'); + } + + if (value.ctrlKey === true) { + text_value.push('Ctrl'); + keys_value.push('
Ctrl
'); + } + + if (value.shiftKey === true) { + text_value.push('Shift'); + keys_value.push('
Shift
'); + } + + if (value.key === ' ') { + text_value.push('Space bar'); + keys_value.push('
Space bar
'); + + } else if (typeof value.key === 'string' && ['Shift', 'Control', 'Alt'].indexOf(value.key) === -1) { + if (value.key === 'ArrowUp') { + text_value.push('↑'); + keys_value.push('
'); + } else if (value.key === 'ArrowRight') { + text_value.push('→'); + keys_value.push('
'); + } else if (value.key === 'ArrowDown') { + text_value.push('↓'); + keys_value.push('
'); + } else if (value.key === 'ArrowLeft') { + text_value.push('←'); + keys_value.push('
'); + } else { + let key = value.key.toUpperCase(); + + text_value.push(key); + keys_value.push('
' + key + '
'); + } + } + + if (value.wheel) { + keys_value.push('
'); + } + + component_value.innerText = text_value.join('+'); + + if (canvas) { + if (keys_value.length > 0) { + canvas.innerHTML = keys_value.join('
'); + } else { + canvas.innerText = satus.locale.getMessage('pressAnyKeyOrUseMouseWheel'); + } + } + } + + update(); + + component_value.dataset.value = component_value.innerText; + + component_label.innerText = satus.locale.getMessage(element.label); + + component.addEventListener('click', function() { + let component_dialog = document.createElement('div'), + component_dialog_label = document.createElement('span'), + component_scrim = document.createElement('div'), + component_surface = document.createElement('div'), + component_canvas = document.createElement('div'), + component_section = document.createElement('section'), + component_button_reset = document.createElement('div'), + component_button_cancel = document.createElement('div'), + component_button_save = document.createElement('div'); + + component_dialog.className = 'satus-dialog satus-dialog_open'; + component_dialog_label.className = 'satus-shortcut-dialog-label'; + component_scrim.className = 'satus-dialog__scrim'; + component_surface.className = 'satus-dialog__surface satus-dialog__surface_shortcut'; + component_canvas.className = 'satus-shortcut__canvas'; + component_section.className = 'satus-section satus-section--align-end satus-section_shortcut'; + component_button_reset.className = 'satus-button satus-button_shortcut'; + component_button_cancel.className = 'satus-button satus-button_shortcut'; + component_button_save.className = 'satus-button satus-button_shortcut'; + + component_dialog_label.innerText = component_label.innerText; + component_button_reset.innerText = satus.locale.getMessage('reset'); + component_button_cancel.innerText = satus.locale.getMessage('cancel'); + component_button_save.innerText = satus.locale.getMessage('save'); + + update(component_canvas); + + function keydown(event) { + event.preventDefault(); + event.stopPropagation(); + + mousewheel_only = false; + clearTimeout(mousewheel_timeout); + + value = { + key: event.key, + keyCode: event.keyCode, + shiftKey: event.shiftKey, + ctrlKey: event.ctrlKey, + altKey: event.altKey + }; + + update(component_canvas); + + return false; + } + + function mousewheel(event) { + event.stopPropagation(); + + if (mousewheel_only === true) { + delete value.shiftKey; + delete value.altKey; + delete value.ctrlKey; + delete value.keyCode; + delete value.key; + } + + clearTimeout(mousewheel_timeout); + + mousewheel_timeout = setTimeout(function() { + mousewheel_only = true; + }, 300); + + value.wheel = event.deltaY; + + update(component_canvas); + + return false; + } + + window.addEventListener('keydown', keydown); + window.addEventListener('mousewheel', mousewheel); + + function close(clear = true) { + window.removeEventListener('keydown', keydown); + window.removeEventListener('mousewheel', mousewheel); + + if (clear === true) { + component_value.innerText = component_value.dataset.value; + } + + component_dialog.classList.remove('satus-dialog_open'); + + setTimeout(function() { + component_dialog.remove(); + }, Number(document.defaultView.getComputedStyle(component_dialog, '').getPropertyValue('animation-duration').replace(/[^0-9.]/g, '') * 1000)); + } + + component_scrim.addEventListener('click', close); + component_button_reset.addEventListener('click', function() { + satus.storage.set(element.storage_key, null); + close(); + value = (satus.storage.get(element.storage_key) ? JSON.parse(satus.storage.get(element.storage_key)) : false) || object.value || {}; + update(); + }); + component_button_cancel.addEventListener('click', close); + component_button_save.addEventListener('click', function() { + satus.storage.set(element.storage_key, JSON.stringify(value)); + close(false); + }); + + component_section.appendChild(component_button_reset); + component_section.appendChild(component_button_cancel); + component_section.appendChild(component_button_save); + + component_surface.appendChild(component_dialog_label); + component_surface.appendChild(component_canvas); + component_surface.appendChild(component_section); + + component_dialog.appendChild(component_scrim); + component_dialog.appendChild(component_surface); + + document.body.appendChild(component_dialog); + }); + + component.appendChild(component_label); + component.appendChild(component_value); + + return component; +}; +/*-------------------------------------------------------------- +>>> SLIDER +--------------------------------------------------------------*/ + +satus.components.slider = function(element) { + var component = document.createElement('div'); + + // LABEL + if (satus.isset(element.label)) { + var component_label = document.createElement('span'); + + component_label.className = 'satus-slider__label'; + component_label.innerText = satus.locale.getMessage(element.label); + + component.appendChild(component_label); + } + + + // RANGE + var component_range = document.createElement('input'); + + component_range.type = 'range'; + component_range.className = 'satus-slider__range'; + component_range.min = element.min || 0; + component_range.max = element.max || 10; + component_range.step = element.step || 1; + + component_range.oninput = function() { + var track = this.parentNode.querySelector('.satus-slider__track'), + thumb = this.parentNode.querySelector('.satus-slider__thumb'), + min = Number(this.min) || 0, + max = Number(this.max) || 1, + step = Number(this.step) || 1, + value = Number(this.value) || 0, + offset = (value - min) / (max - min) * 100; + + track.style.width = 'calc(' + offset + '% - ' + Math.floor(offset * 12 / 100) + 'px)'; + + satus.storage.set(this.dataset.storageKey, Number(this.value)); + + component_thumb.dataset.value = this.value; + + if (component.onchange) { + component.onchange(Number(this.value)); + } + }; + + component.change = function(value) { + component_range.value = value; + + component_thumb.dataset.value = value; + + component_range.oninput(); + }; + + component.addEventListener('mousedown', function() { + function mousemove() { + component.classList.add('satus-slider--dragging'); + } + + function mouseup() { + component.classList.remove('satus-slider--dragging'); + + window.removeEventListener('mousemove', mousemove); + window.removeEventListener('mouseup', mouseup); + } + + window.addEventListener('mousemove', mousemove); + window.addEventListener('mouseup', mouseup); + }); + + if (element.onchange) { + component.onchange = element.onchange; + } + + component.appendChild(component_range); + + + // CONTAINER + var component_container = document.createElement('div'); + + component_container.className = 'satus-slider__container'; + + component.appendChild(component_container); + + + // TRACK + var component_track_container = document.createElement('div'), + component_track = document.createElement('div'); + + component_track_container.className = 'satus-slider__track-container'; + component_track.className = 'satus-slider__track'; + + component_track_container.appendChild(component_track); + component_container.appendChild(component_track_container); + + + // FOCUS RING + var component_ring = document.createElement('div'); + + component_ring.className = 'satus-slider__ring'; + + component_track.appendChild(component_ring); + + + // THUMB + var component_thumb = document.createElement('div'); + + component_thumb.className = 'satus-slider__thumb'; + + component_track.appendChild(component_thumb); + + if (element.storage_key) { + var value = satus.storage.get(element.storage_key) || element.value; + + component_range.dataset.storageKey = element.storage_key; + + if (value) { + component_range.value = value; + + if (!satus.isset(value)) { + value = element.value; + } + + var offset = (Number(component_range.value) - Number(component_range.min)) / (Number(component_range.max) - Number(component_range.min)) * 100; + + component_track.style.width = 'calc(' + offset + '% - ' + Math.floor(offset * 12 / 100) + 'px)'; + component_thumb.dataset.value = value; + } else { + component_range.value = 0; + component_thumb.dataset.value = 0; + } + } + + + return component; +}; +/*-------------------------------------------------------------- +>>> SWITCH +--------------------------------------------------------------*/ + +satus.components.switch = function(element) { + var component = document.createElement('div'), + value; + + // LABEL + if (satus.isset(element.label)) { + var component_label = document.createElement('span'); + + component_label.className = 'satus-switch__label'; + component_label.innerText = satus.locale.getMessage(element.label); + + component.appendChild(component_label); + } + + + // INPUT + var component_input = document.createElement('input'); + + component_input.type = 'checkbox'; + component_input.className = 'satus-switch__input'; + + if (element.storage_key) { + value = satus.storage.get(element.storage_key); + + component_input.dataset.storageKey = element.storage_key; + } + + if (!satus.isset(value)) { + value = element.value; + } + + if (value) { + component_input.checked = value; + } + + component_input.addEventListener('change', function() { + satus.storage.set(this.dataset.storageKey, this.checked); + }); + + component.appendChild(component_input); + + + // TRACK + var component_track = document.createElement('div'); + + component_track.className = 'satus-switch__track'; + + component.appendChild(component_track); + + + // MOUSE MOVE + component_track.addEventListener('mousedown', function(event) { + var prevent = false, + difference = 0; + + function click(event) { + event.preventDefault(); + event.stopPropagation(); + + component.removeEventListener('click', click); + + return false; + } + + function mousemove(event) { + var checkbox = component.querySelector('input'), + movement = event.movementX; + + if (movement * difference < 0) { + difference = 0; + } else { + difference += movement; + + if (prevent === false) { + prevent = true; + component.addEventListener('click', click); + } + } + + if (difference < -5) { + checkbox.checked = false; + } else if (difference > 5) { + checkbox.checked = true; + } + } + + function mouseup(event) { + window.removeEventListener('mousemove', mousemove); + window.removeEventListener('mouseup', mouseup); + } + + window.addEventListener('mousemove', mousemove); + window.addEventListener('mouseup', mouseup); + }); + + + // TOUCH MOVE + component_track.addEventListener('touchstart', function(event) { + var previous_x = 0, + difference = 0; + + function mousemove(event) { + var checkbox = component.querySelector('input'), + movement = event.touches[0].clientX - previous_x; + + previous_x = event.touches[0].clientX; + + if (movement * difference < 0) { + difference = 0; + } else { + difference += movement; + } + + if (difference < -5) { + checkbox.checked = false; + } else if (difference > 5) { + checkbox.checked = true; + } + } + + function mouseup(event) { + window.removeEventListener('touchmove', mousemove); + window.removeEventListener('touchend', mouseup); + } + + window.addEventListener('touchmove', mousemove); + window.addEventListener('touchend', mouseup); + }); + + + return component; +}; +satus.components.table = function(item) { + var component = document.createElement('div'), + component_head = document.createElement('div'), + component_body = document.createElement('div'), + component_scrollbar = satus.components.scrollbar(component_body, item.scrollbar), + table = document.createElement('div'); + + table.className = 'satus-table__container'; + component_head.className = 'satus-table__head'; + component_body.className = 'satus-table__body'; + + function update(data) { + var pages = Math.ceil(component.data.length / component.paging), + start = Math.max((component.pagingIndex - 1) * component.paging, 0), + end = component.pagingIndex * component.paging; + + if (end > data.length) { + end = data.length; + } else if (end === 0) { + end = component.paging; + } + + table.innerHTML = ''; + + if (data) { + for (var i = start, l = end; i < l; i++) { + if (data[i]) { + var tr = document.createElement('div'); + + tr.className = 'satus-table__row'; + + for (var j = 0, k = data[i].length; j < k; j++) { + var td = document.createElement('div'); + + + td.className = 'satus-table__cell'; + + if (data[i][j].html) { + td.innerHTML = data[i][j].html; + } else if (data[i][j].text) { + td.innerText = data[i][j].text; + } + + if (data[i][j].onrender) { + td.onrender = data[i][j].onrender; + + td.onrender(); + } + + tr.appendChild(td); + } + + table.appendChild(tr); + } + } + } + + component.pagingUpdate(); + } + + function sortArray(array, index, mode) { + if (mode === 'asc') { + if (typeof array[0][index].text === 'number') { + sorted = array.sort(function(a, b) { + return a[index].text - b[index].text; + }); + } else { + sorted = array.sort(function(a, b) { + return a[index].text.localeCompare(b[index].text); + }); + } + } else { + if (typeof array[0][index].text === 'number') { + sorted = array.sort(function(a, b) { + return b[index].text - a[index].text; + }); + } else { + sorted = array.sort(function(a, b) { + return b[index].text.localeCompare(a[index].text); + }); + } + } + + return array; + } + + function sort() { + var mode = this.dataset.sorting, + index = Array.prototype.indexOf.call(this.parentElement.children, this), + sorted; + + if (component.data[0][index] && component.data[0][index].hasOwnProperty('text')) { + if (mode === 'none') { + mode = 'asc'; + } else if (mode === 'asc') { + mode = 'desc'; + } else if (mode === 'desc') { + mode = 'asc'; + } + + if (this.parentNode.querySelector('div[data-sorting=asc], div[data-sorting=desc]')) { + this.parentNode.querySelector('div[data-sorting=asc], div[data-sorting=desc]').dataset.sorting = 'none'; + } + + this.dataset.sorting = mode; + + sorted = sortArray(component.data, index, mode); + + update(sorted); + } else { + this.dataset.sorting = false; + } + } + + function resize() {} + + for (var i = 0, l = item.columns.length; i < l; i++) { + var column = document.createElement('div'); + + column.dataset.sorting = 'none'; + column.addEventListener('click', sort); + column.innerHTML = '' + item.columns[i].title + ''; + + component_head.appendChild(column); + } + + component_scrollbar.appendChild(table); + + component.appendChild(component_head); + component.appendChild(component_body); + + component.data = item.data; + component.paging = item.paging; + component.pagingIndex = 0; + + component.update = function(data, index, mode) { + if (satus.isset(data)) { + this.data = data; + } + + if (this.querySelector('div[data-sorting=asc], div[data-sorting=desc]')) { + var mode = this.querySelector('div[data-sorting=asc], div[data-sorting=desc]').dataset.sorting, + index = Array.prototype.indexOf.call(this.querySelector('div[data-sorting=asc], div[data-sorting=desc]').parentElement.children, this.querySelector('div[data-sorting=asc], div[data-sorting=desc]')); + + update(sortArray(this.data, index, mode)); + } else { + for (var i = 0, l = item.columns.length; i < l; i++) { + if (item.columns[i].hasOwnProperty('sorting')) { + if (this.data[0][i].hasOwnProperty('text')) { + this.querySelectorAll('.satus-table__head > div')[i].dataset.sorting = item.columns[i].sorting; + } else { + this.querySelectorAll('.satus-table__head > div')[i].dataset.sorting = false; + } + + update(sortArray(this.data, i, item.columns[i].sorting)); + + i = l; + } + } + } + }; + + + // PAGING + + function pagingUpdate() { + if (typeof this.paging === 'number') { + var pages = Math.ceil(this.data.length / this.paging); + + this.querySelector('.satus-table__paging').innerHTML = ''; + + for (var i = 1; i <= pages; i++) { + var button = document.createElement('button'); + + if (i === (this.pagingIndex || 1)) { + button.className = 'active'; + } + + button.innerText = i; + button.parentComponent = this; + button.addEventListener('click', function() { + if (this.parentNode.querySelector('button.active')) { + this.parentNode.querySelector('button.active').classList.remove('active'); + } + + this.classList.add('active'); + + this.parentComponent.pagingIndex = Number(this.innerText); + this.parentComponent.update(this.parentComponent.data); + }); + + this.querySelector('.satus-table__paging').appendChild(button); + } + } + + resize(); + } + + component.pagingUpdate = pagingUpdate; + + component_paging = document.createElement('div'); + + component_paging.className = 'satus-table__paging'; + + component_scrollbar.appendChild(component_paging); + + // END PAGING + + if (item.data) { + component.update(item.data); + } + + return component; +}; + +/*-------------------------------------------------------------- +>>> TEXT +--------------------------------------------------------------*/ + +satus.components.text = function(element) { + var component = document.createElement('span'); + + if (satus.isset(element.label)) { + var component_label = document.createElement('span'); + + component_label.className = 'satus-text__label'; + component_label.innerText = satus.locale.getMessage(element.label); + + component.appendChild(component_label); + } + + if (satus.isset(element.value)) { + var component_value = document.createElement('span'); + + component_value.className = 'satus-text__value'; + component_value.innerText = satus.locale.getMessage(element.value); + + component.appendChild(component_value); + } + + return component; +}; +/*-------------------------------------------------------------- +>>> TEXT FIELD +--------------------------------------------------------------*/ + +satus.components.textField = function(element) { + var component = element.rows > 1 ? document.createElement('textarea') : document.createElement('input'); + + component.type = 'text'; + + return component; +}; \ No newline at end of file diff --git a/youtube-scripts.js b/youtube-scripts.js new file mode 100644 index 000000000..c8646f18e --- /dev/null +++ b/youtube-scripts.js @@ -0,0 +1,3196 @@ +/*------------------------------------------------------------------------------ +>>> TABLE OF CONTENTS: +-------------------------------------------------------------------------------- +0.0 Global variable +0.0 Page update listener +0.0 Initialization +0.0 Onfocus +0.0 Onplay + +1.0 General + 1.1 YouTube home page + 1.2 Collapse of subscription sections + 1.3 Add "Scroll to top" + 1.4 Confirmation before closing + 1.5 Mark watched videos + 1.6 Only one player instance playing + 1.7 HD thumbnails +2.0 Appearance + 2.1 Player + 2.1.1 Forced theater mode + 2.1.2 HD thumbnail + 2.1.3 Always show progress bar + 2.2 Sidebar + 2.2.1 Livechat + 2.2.2 Relative videos + 2.3 Details + 2.3.1 How long ago the video was uploaded + 2.3.2 Show channel videos count + 2.5 Comments +3.0 Themes + 3.1 My colors + 3.2 Bluelight + 3.3 Dim + 3.4 Font + 3.5 Themes +4.0 Player + 4.1 Autoplay + 4.2 Autopause when switching tabs + 4.3 Forced playback speed + 4.4 Subtitles + 4.5 Up next autoplay + 4.6 Ads + 4.7 Custom mini-player + 4.8 Auto fullscreen + 4.9 Quality + 4.10 Codec h.264 + 4.11 Allow 60fps + 4.12 Forced volume + 4.13 Loudness normalization + 4.14 Screenshot + 4.15 Repeat + 4.16 Rotate + 4.17 Popup player +5.0 Playlist + 5.1 Up next autoplay + 5.2 Reverse + 5.3 Repeat + 5.4 Shuffle +6.0 Channel + 6.1 Default channel tab +7.0 Shortcuts +8.0 Blacklist +9.0 Analyzer +10.0 Settings + 10.1 ImprovedTube icon + 10.2 Delete YouTube cookies + 10.3 YouTube language +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +0.0 GLOBAL VARIABLE +-------------------------------------------------------------------------------- +The variable "ImprovedTube" is used on the YouTube side. +------------------------------------------------------------------------------*/ + +var ImprovedTube = {}; + + +/*------------------------------------------------------------------------------ +0.0 PAGE UPDATE LISTENER +------------------------------------------------------------------------------*/ + +ImprovedTube.pageUpdateListener = function() { + window.addEventListener('yt-page-data-updated', function() { + ImprovedTube.played_before_blur = false; + + ImprovedTube.pageType(); + ImprovedTube.youtubeHomePage(); + ImprovedTube.collapseOfSubscriptionSections(); + ImprovedTube.markWatchedVideos(); + ImprovedTube.hdThumbnails(); + + ImprovedTube.videoPageUpdate(); + + ImprovedTube.blacklist(); + + ImprovedTube.improvedtubeYoutubeIcon(); + }); +}; + +ImprovedTube.videoPageUpdate = function() { + if (this.page_type === 'video') { + this.forcedTheaterMode(); + this.playerHdThumbnail(); + this.alwaysShowProgressBar(); + this.livechat(); + this.relatedVideos(); + this.howLongAgoTheVideoWasUploaded(); + this.channelVideosCount(); + this.comments(); + + this.upNextAutoplay(); + this.playerAutofullscreen(); + this.playerScreenshotButton(); + this.playerRepeatButton(); + this.playerRotateButton(); + this.playerPopupButton(); + + this.playlistUpNextAutoplay(); + this.playlistReverse(); + this.playlistRepeat(); + this.playlistShuffle(); + + this.channelDefaultTab(); + } +}; + + +/*------------------------------------------------------------------------------ +0.0 PLAYER UPDATE +------------------------------------------------------------------------------*/ + +ImprovedTube.playerUpdate = function() { + this.playerPlaybackSpeed(); + this.subtitles(); + this.playerAds(); + this.mini_player(); + this.playerQuality(); + this.playerVolume(); + this.playlistUpNextAutoplay(); +}; + + +/*------------------------------------------------------------------------------ +0.0 DOM CONTENT LOADED +------------------------------------------------------------------------------*/ + +ImprovedTube.DOMContentLoaded = function() { + window.addEventListener('DOMContentLoaded', function() { + ImprovedTube.youtubeHomePage(); + ImprovedTube.collapseOfSubscriptionSections(); + ImprovedTube.addScrollToTop(); + ImprovedTube.confirmationBeforeClosing(); + ImprovedTube.markWatchedVideos(); + ImprovedTube.hdThumbnails(); + + ImprovedTube.myColors(); + ImprovedTube.bluelight(); + ImprovedTube.dim(); + ImprovedTube.font(); + ImprovedTube.themes(); + + ImprovedTube.videoPageUpdate(); + + ImprovedTube.blacklist(); + + ImprovedTube.improvedtubeYoutubeIcon(); + + ImprovedTube.pageUpdateListener(); + }); +}; + + +/*------------------------------------------------------------------------------ +0.0 INITIALIZATION +------------------------------------------------------------------------------*/ + +ImprovedTube.init = function() { + this.playerH264(); + this.player60fps(); + this.pageType(); + this.shortcuts(); + this.DOMContentLoaded(); + this.onplay(); + this.onkeydown(); + this.onmousedown(); +}; + + +/*------------------------------------------------------------------------------ +0.0 PAGE TYPE +------------------------------------------------------------------------------*/ + +ImprovedTube.video_url = false; +ImprovedTube.page_type = false; + +ImprovedTube.pageType = function() { + var href = location.href, + type = ''; + + if (location.pathname == '/') { + type = 'home'; + } else if (/\/watch\?/.test(href)) { + type = 'video'; + } else if (/\/channel|user\//.test(href)) { + type = 'channel'; + } + + this.page_type = type; + + document.documentElement.setAttribute('it-page-type', type); +}; + + +/*------------------------------------------------------------------------------ +0.0 ONFOCUS +------------------------------------------------------------------------------*/ + +ImprovedTube.focus = false; +ImprovedTube.played_before_blur = false; + +ImprovedTube.onfocus = function() { + this.onlyOnePlayerInstancePlaying(); + this.playerAutopauseWhenSwitchingTabs(); +}; + + +/*------------------------------------------------------------------------------ +0.0 ONPLAY +------------------------------------------------------------------------------*/ + +ImprovedTube.onplay = function() { + HTMLMediaElement.prototype.play = (function(original) { + return function() { + ImprovedTube.autoplay(this); + ImprovedTube.playerLoudnessNormalization(); + + if (ImprovedTube.video_url !== location.href) { + ImprovedTube.video_url = location.href; + + ImprovedTube.playerUpdate(); + } + + return original.apply(this, arguments); + } + })(HTMLMediaElement.prototype.play); +}; + + +/*------------------------------------------------------------------------------ +0.0 ONKEYDOWN +------------------------------------------------------------------------------*/ + +ImprovedTube.onkeydown = function() { + window.addEventListener('keydown', function() { + if ( + document.querySelector('.html5-video-player') && + document.querySelector('.html5-video-player').classList.contains('ad-showing') === false + ) { + ImprovedTube.allow_autoplay = true; + } + }, true); +}; + + +/*------------------------------------------------------------------------------ +0.0 ONMOUSEDOWN +------------------------------------------------------------------------------*/ + +ImprovedTube.onmousedown = function(event) { + window.addEventListener('mousedown', function(event) { + for (var i = 0, l = event.path.length; i < l; i++) { + if ( + document.querySelector('.html5-video-player') && + document.querySelector('.html5-video-player').classList.contains('ad-showing') === false && + event.path[i].classList && + ( + event.path[i].classList.contains('html5-main-video') || + event.path[i].classList.contains('ytp-play-button') + ) + ) { + ImprovedTube.allow_autoplay = true; + } + } + }, true); +}; + + +ImprovedTube.getCookieValueByName = function(name) { + var match = document.cookie.match(new RegExp('([; ]' + name + '|^' + name + ')([^\\s;]*)', 'g')); + + if (match) { + var cookie = match[0]; + + return cookie.replace(name + '=', '').replace(' ', ''); + } else + return ''; +}; + +ImprovedTube.getParam = function(query, name) { + var params = query.split('&'), + param = false; + + for (var i = 0; i < params.length; i++) { + params[i] = params[i].split('='); + + if (params[i][0] == name) { + param = params[i][1]; + } + } + + if (param) { + return param; + } else { + return false; + } +}; + +ImprovedTube.getParams = function(query) { + var params = query.split('&'), + result = {}; + + for (var i = 0, l = params.length; i < l; i++) { + params[i] = params[i].split('='); + + result[params[i][0]] = params[i][1]; + } + + return result; +}; + +ImprovedTube.setCookie = function(name, value) { + var date = new Date(); + + date.setTime(date.getTime() + 3.154e+10); + + document.cookie = name + '=' + value + '; path=/; domain=.youtube.com; expires=' + date.toGMTString(); +}; + +ImprovedTube.createPlayerButton = function(node, options) { + var controls = document.querySelector('.html5-video-player .ytp-left-controls'); + + if (controls) { + var button = document.createElement('button'); + + button.className = 'ytp-button it-player-button'; + + button.dataset.title = options.title; + + if (options.id) { + if (node.querySelector('#' + options.id)) { + node.querySelector('#' + options.id).remove(); + } + + button.id = options.id; + } + + if (options.html) { + button.innerHTML = options.html; + } + + button.style.opacity = options.opacity || '.5'; + + if (options.onclick) { + button.onclick = options.onclick; + } + + controls.insertBefore(button, controls.childNodes[3]); + } +}; + +ImprovedTube.reverse = function(parent) { + for (var i = 1, l = parent.childNodes.length; i < l; i++) { + parent.insertBefore(parent.childNodes[i], parent.firstChild); + } +}; + + + + + + + + + +/*------------------------------------------------------------------------------ +1.0 GENERAL +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +1.1 YOUTUBE HOME PAGE +------------------------------------------------------------------------------*/ + +ImprovedTube.youtubeHomePage = function() { + var option = this.storage.youtube_home_page; + + if ( + option === '/feed/trending' || + option === '/feed/subscriptions' || + option === '/feed/history' || + option === '/playlist?list=WL' + ) { + var node_list = document.querySelectorAll(` + a[href="/"]:not([role=tablist]), + a[href="https://www.youtube.com/"]:not([role=tablist]), + a[it-origin="/"]:not([role=tablist]) + `); + + for (var i = 0, l = node_list.length; i < l; i++) { + var node = node_list[i]; + + if (node.hasAttribute('it-origin') === false) { + node.setAttribute('it-origin', '/'); + } + + node.href = option; + node.addEventListener('click', function() { + if ( + this.data && + this.data.commandMetadata && + this.data.commandMetadata.webCommandMetadata && + this.data.commandMetadata.webCommandMetadata.url + ) { + this.data.commandMetadata.webCommandMetadata.url = option; + } + }, true); + } + } else { + var node_list = document.querySelectorAll('a[it-origin="/"]:not([role=tablist])'); + + for (var i = 0, l = node_list.length; i < l; i++) { + node_list[i].href = '/'; + } + } +}; + + +/*------------------------------------------------------------------------------ +1.2 COLLAPSE OF SUBSCRIPTION SECTION +------------------------------------------------------------------------------*/ + +ImprovedTube.collapseOfSubscriptionSections = function() { + if (/\/feed\/subscriptions/.test(location.href)) { + if (this.storage.collapse_of_subscription_sections === true) { + var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'); + + for (var i = 0, l = sections.length; i < l; i++) { + if (!sections[i].querySelector('.it-section-collapse')) { + var section_title = sections[i].querySelector('h2'), + button = document.createElement('div'); + + button.className = 'it-section-collapse'; + button.innerHTML = ''; + button.section = sections[i]; + button.addEventListener('click', function() { + var section = this.section, + content = section.querySelector('.grid-subheader + #contents, .shelf-title-table + .multirow-shelf'); + + if (section.classList.contains('it-section-collapsed') === false) { + content.style.height = content.offsetHeight + 'px'; + content.style.transition = 'height 150ms'; + } + + setTimeout(function() { + section.classList.toggle('it-section-collapsed'); + }); + }); + + section_title.parentNode.insertBefore(button, section_title.nextSibling); + } + } + } else { + var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'), + buttons = document.querySelectorAll('.it-section-collapse'); + + for (var i = 0, l = sections.length; i < l; i++) { + sections[i].classList.remove('it-section-collapsed'); + sections[i].style.height = ''; + sections[i].style.transition = ''; + } + + for (var i = 0, l = buttons.length; i < l; i++) { + buttons[i].remove(); + } + } + } +}; + + +/*------------------------------------------------------------------------------ +1.3 ADD "SCROLL TO TOP" +------------------------------------------------------------------------------*/ + +ImprovedTube.addScrollToTop = function(is_update) { + if (this.storage.add_scroll_to_top === true) { + var button = document.createElement('div'); + + button.id = 'it-scroll-to-top'; + button.innerHTML = ''; + + button.addEventListener('click', function() { + window.scrollTo(0, 0); + }); + + document.documentElement.appendChild(button); + + window.addEventListener('scroll', this.scroll); + } else { + var button = document.querySelector('#it-scroll-to-top'); + + if (button) { + button.remove(); + } + + window.removeEventListener('scroll', this.scroll); + } +}; + +ImprovedTube.scroll = function() { + if (window.scrollY > window.innerHeight / 2) { + document.documentElement.setAttribute('it-show-scroll-to-top', true); + } else { + document.documentElement.setAttribute('it-show-scroll-to-top', false); + } +}; + + +/*------------------------------------------------------------------------------ +1.4 CONFIRMATION BEFORE CLOSING +------------------------------------------------------------------------------*/ + +ImprovedTube.confirmationBeforeClosing = function() { + window.onbeforeunload = function() { + if (ImprovedTube.storage.confirmation_before_closing === true) { + return 'You have attempted to leave this page. Are you sure?'; + } + }; +}; + + +/*------------------------------------------------------------------------------ +1.5 MARK WATCHED VIDEOS +-------------------------------------------------------------------------------- +TODO: OPTIMIZE +------------------------------------------------------------------------------*/ + +ImprovedTube.markWatchedVideos = function() { + if (ImprovedTube.storage.mark_watched_videos === true) { + var video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); + + for (var i = 0, l = video_items.length; i < l; i++) { + if (!video_items[i].querySelector('.it-mark-watched')) { + var button = document.createElement('div'); + + button.className = 'it-mark-watched' + (this.storage.watched && this.storage.watched[this.getParam(new URL(video_items[i].href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); + button.innerHTML = ''; + button.addEventListener('click', function(event) { + var watched = this.classList.contains('watched') ? false : true; + + event.preventDefault(); + event.stopPropagation(); + + this.classList.toggle('watched'); + + try { + var video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'), + item = this.parentNode; + + while ( + item.nodeName && + item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && + item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && + item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && + item.classList && + !item.classList.contains('yt-shelf-grid-item') && + !item.classList.contains('video-list-item') + ) { + item = item.parentNode; + } + + if (!ImprovedTube.storage.watched || typeof ImprovedTube.storage.watched !== 'object') { + ImprovedTube.storage.watched = {}; + } + + if (watched === true) { + ImprovedTube.storage.watched[video_id] = { + title: item.querySelector('a#video-title, .title, .yt-lockup-title > a').innerText + }; + + document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { + detail: { + action: 'set', + id: video_id, + title: item.querySelector('a#video-title, .title, .yt-lockup-title > a').innerText + } + })); + } else if (ImprovedTube.storage.watched[video_id]) { + delete ImprovedTube.storage.watched[video_id]; + + document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { + detail: { + action: 'remove', + id: video_id + } + })); + } + } catch (err) {} + }); + + video_items[i].appendChild(button); + } + } + } +}; + +document.addEventListener('ImprovedTubeWatched', function(event) { + if (chrome && chrome.runtime) { + chrome.runtime.sendMessage({ + name: 'improvedtube-watched', + data: { + action: event.detail.action, + id: event.detail.id, + title: event.detail.title + } + }); + } +}); + + +/*------------------------------------------------------------------------------ +1.6 ONLY ONE PLAYER INSTANCE PLAYING +-------------------------------------------------------------------------------- +TODO: FIX +------------------------------------------------------------------------------*/ + +ImprovedTube.onlyOnePlayerInstancePlaying = function() { + var video = document.querySelector('.html5-video-player video'); + + if (this.storage.only_one_player_instance_playing === true && video) { + + if (this.focus === false && video.paused === false) { + video.pause(); + + this.played_before_blur = true; + } else if (this.focus === true && this.played_before_blur === true) { + video.play(); + } + } +}; + + +/*------------------------------------------------------------------------------ +1.7 HD THUMBNAILS +------------------------------------------------------------------------------*/ + +ImprovedTube.hdThumbnails = function() { + if (this.storage.hd_thumbnails === true) { + var images = document.querySelectorAll('img'); + + for (var i = 0, l = images.length; i < l; i++) { + if (/(hqdefault\.jpg|hq720.jpg)+/.test(images[i].src) && !images[i].dataset.defaultSrc) { + images[i].dataset.defaultSrc = images[i].src; + + images[i].onload = function() { + if (this.naturalHeight <= 90) { + this.src = this.dataset.defaultSrc; + } + }; + + images[i].src = images[i].src.replace(/(hqdefault\.jpg|hq720.jpg)+/, 'maxresdefault.jpg'); + } + } + } else { + var images = document.querySelectorAll('img'); + + for (var i = 0, l = images.length; i < l; i++) { + if (images[i].dataset.defaultSrc) { + images[i].src = images[i].dataset.defaultSrc; + } + } + } +}; + + +/*------------------------------------------------------------------------------ +2.0 APPEARANCE +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +2.1 PLAYER +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +2.1.1 FORCED THEATER MODE +------------------------------------------------------------------------------*/ + +ImprovedTube.forcedTheaterMode = function() { + if (window.self === window.top && (ImprovedTube.storage.forced_theater_mode === true || ImprovedTube.storage.player_size === 'fit_to_window')) { + var button = document.querySelector('button.ytp-size-button'); + + if (button && ImprovedTube.isset(document.getElementById('player-theater-container').firstChild) === false) { + button.click(); + } + } +}; + + +/*------------------------------------------------------------------------------ +2.1.2 HD THUMBNAIL +-------------------------------------------------------------------------------- +TODO: OPTIMIZED +------------------------------------------------------------------------------*/ + +ImprovedTube.playerHdThumbnail = function() { + if (this.storage.player_hd_thumbnail === true) { + if (this.player_hd_thumbnail_wait !== false) { + clearInterval(ImprovedTube.player_hd_thumbnail_wait); + + ImprovedTube.player_hd_thumbnail_wait = false; + } + + this.player_hd_thumbnail_wait = setInterval(function() { + var thumbnail = document.querySelector('.ytp-cued-thumbnail-overlay-image'); + + if (thumbnail && thumbnail.style.backgroundImage) { + var style = document.getElementById('it-hd-thumbnail') || document.createElement('style'); + + style.textContent = '.ytp-cued-thumbnail-overlay-image{background-image:' + thumbnail.style.backgroundImage.replace('/hqdefault.jpg', '/maxresdefault.jpg') + ' !important}'; + + if (!document.getElementById('it-hd-thumbnail')) { + style.id = 'it-hd-thumbnail'; + thumbnail.parentNode.insertBefore(style, thumbnail); + } + } + }, 250); + } +}; + + +/*------------------------------------------------------------------------------ +2.1.3 ALWAYS SHOW PROGRESS BAR +------------------------------------------------------------------------------*/ + +ImprovedTube.alwaysShowProgressBar = function() { + if (ImprovedTube.always_show_progress_bar_interval) { + clearInterval(ImprovedTube.always_show_progress_bar_interval); + } + + if (this.storage.always_show_progress_bar === true) { + ImprovedTube.always_show_progress_bar_interval = setInterval(function() { + var player = document.querySelector('.html5-video-player'); + + if (player && player.classList.contains('ytp-autohide')) { + var played = player.getCurrentTime() * 100 / player.getDuration(), + loaded = player.getVideoBytesLoaded() * 100, + play_bars = player.querySelectorAll('.ytp-play-progress'), + load_bars = player.querySelectorAll('.ytp-load-progress'), + width = 0, + progress_play = 0, + progress_load = 0; + + for (var i = 0, l = play_bars.length; i < l; i++) { + width += play_bars[i].offsetWidth; + } + + var width_percent = width / 100; + + for (var i = 0, l = play_bars.length; i < l; i++) { + var a = play_bars[i].offsetWidth / width_percent, + b = 0, + c = 0; + + if (played - progress_play >= a) { + b = 100; + } else if (played > progress_play && played < a + progress_play) { + b = 100 * ((played - progress_play) * width_percent) / play_bars[i].offsetWidth; + } + + play_bars[i].style.transform = 'scaleX(' + b / 100 + ')'; + + if (loaded - progress_load >= a) { + c = 100; + } else if (loaded > progress_load && loaded < a + progress_load) { + c = 100 * ((loaded - progress_load) * width_percent) / play_bars[i].offsetWidth; + } + + load_bars[i].style.transform = 'scaleX(' + c / 100 + ')'; + + progress_play += a; + progress_load += a; + } + } + }, 100); + } +}; + + +/*------------------------------------------------------------------------------ +2.2 SIDEBAR +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +2.2.1 LIVECHAT +-------------------------------------------------------------------------------- +TODO: TEST +------------------------------------------------------------------------------*/ + +ImprovedTube.livechat_wait = false; +ImprovedTube.livechat_url = false; + +ImprovedTube.livechat = function() { + if ( + document.documentElement.getAttribute('it-page-type') === 'video' && + this.storage.livechat === 'collapsed' && + this.livechat_wait === false + ) { + this.livechat_wait = setInterval(function() { + var button = document.querySelector('#chat:not([collapsed]) #show-hide-button paper-button'), + expander = document.querySelector('#watch-sidebar-live-chat .yt-uix-expander'); + + if (document.documentElement.getAttribute('it-page-type') !== 'video' || button || expander) { + clearInterval(ImprovedTube.livechat_wait); + + ImprovedTube.livechat_wait = false; + } + + if (button) { + function click() { + ImprovedTube.livechat_url = location.href; + } + + button.addEventListener('mousedown', click); + button.addEventListener('touchdown', click); + + setTimeout(function() { + if (ImprovedTube.livechat_url !== location.href) { + button.click(); + } + }, 500); + } else if (expander) { + expander.classList.add('yt-uix-expander-collapsed'); + } + }, 250); + } +}; + + +/*------------------------------------------------------------------------------ +2.2.2 RELATIVE VIDEOS +-------------------------------------------------------------------------------- +TODO: TEST +------------------------------------------------------------------------------*/ + +ImprovedTube.related_videos_wait = false; + +ImprovedTube.relatedVideos = function() { + if (this.storage.related_videos === 'collapsed') { + if (!this.related_videos_wait) { + this.related_videos_wait = setInterval(function() { + if ( + document.querySelector('#related.ytd-watch-flexy') || + document.querySelector('#watch7-sidebar-contents') + ) { + clearInterval(this.related_videos_wait); + + this.related_videos_wait = false; + + if (!document.getElementById('improvedtube-collapsed-related-videos')) { + var button = document.createElement('button'), + parent = document.querySelector('#related.ytd-watch-flexy') || document.querySelector('#watch7-sidebar-contents'), + reference = document.querySelector('#related > *') || document.querySelector('#watch7-sidebar-contents > *'); + + button.id = 'improvedtube-collapsed-related-videos'; + button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; + button.innerHTML = 'Show moreShow less'; + + button.onclick = function() { + document.documentElement.classList.toggle('related-videos-collapsed'); + }; + + document.documentElement.classList.toggle('related-videos-collapsed'); + parent.insertBefore(button, reference); + } + } + }, 250); + } + } else { + clearInterval(this.related_videos_wait); + + this.related_videos_wait = false; + + setTimeout(function() { + var button = document.getElementById('improvedtube-collapsed-related-videos'); + + if (button) { + button.remove(); + } + }, 260); + } +}; + + +/*------------------------------------------------------------------------------ +2.3 DETAILS +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +2.3.1 HOW LONG AGO THE VIDEO WAS UPLOADED +-------------------------------------------------------------------------------- +TODO: TEST +------------------------------------------------------------------------------*/ + +ImprovedTube.howLongAgoTheVideoWasUploaded = function() { + if (ImprovedTube.storage.how_long_ago_the_video_was_uploaded === true) { + function timeSince(date) { + var seconds = Math.floor((new Date() - new Date(date)) / 1000), + interval = Math.floor(seconds / 31536000); + + if (interval > 1) { + return interval + ' years ago'; + } + interval = Math.floor(seconds / 2592000); + if (interval > 1) { + return interval + ' months ago'; + } + interval = Math.floor(seconds / 86400); + if (interval > 1) { + return interval + ' days ago'; + } + interval = Math.floor(seconds / 3600); + if (interval > 1) { + return interval + ' hours ago'; + } + interval = Math.floor(seconds / 60); + if (interval > 1) { + return interval + ' minutes ago'; + } + + return Math.floor(seconds) + ' seconds ago'; + } + + var waiting_channel_link = setInterval(function() { + var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; + + if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info a')) { + clearInterval(waiting_channel_link); + + var xhr = new XMLHttpRequest(); + + xhr.addEventListener('load', function() { + var response = JSON.parse(this.responseText), + element = document.querySelector('.itx-channel-video-uploaded') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); + + if (ImprovedTube.isset(response.items) && ImprovedTube.isset(response.items[0])) { + element.innerHTML = (youtube_version ? ' · ' + timeSince(response.items[0].snippet.publishedAt) + ' ' : timeSince(response.items[0].snippet.publishedAt) + ''); + + var date = new Date(response.items[0].snippet.publishedAt); + + element.title = ((date.getMonth() > 8) ? (date.getMonth() + 1) : ('0' + (date.getMonth() + 1))) + '/' + ((date.getDate() > 9) ? date.getDate() : ('0' + date.getDate())) + '/' + date.getFullYear(); + } + + if (!youtube_version) { + element.href = document.querySelector('#watch7-user-header a').href.indexOf('/videos') === -1 ? document.querySelector('#watch7-user-header a').href + '/videos' : document.querySelector('#watch7-user-header a').href; + } + + if (!document.querySelector('.itx-channel-video-uploaded') && document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info')) { + element.style.marginLeft = '8px'; + element.className = (youtube_version ? 'style-scope ytd-video-owner-renderer itx-channel-video-uploaded' : 'yt-uix-sessionlink spf-link itx-channel-video-uploaded'); + + document.querySelector(youtube_version ? '#info #info-text #date' : '.yt-user-info').appendChild(element); + } + }); + + xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?id=' + ImprovedTube.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v') + '&key=AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA&part=snippet', true); + xhr.send(); + } + }, 500); + } +}; + + +/*------------------------------------------------------------------------------ +2.3.2 SHOW CHANNEL VIDEOS COUNT +-------------------------------------------------------------------------------- +TODO: TEST +------------------------------------------------------------------------------*/ + +ImprovedTube.channelVideosCount = function() { + if (this.storage.channel_videos_count === true) { + var waiting_channel_link = setInterval(function() { + var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; + + if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a')) { + clearInterval(waiting_channel_link); + + var xhr = new XMLHttpRequest(); + + xhr.addEventListener('load', function() { + var response = JSON.parse(this.responseText), + element = document.querySelector('.itx-channel-videos-count') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); + + if (ImprovedTube.isset(response.items) && ImprovedTube.isset(response.items[0])) { + element.innerHTML = (youtube_version ? '' + response.items[0].statistics.videoCount + ' videos' : response.items[0].statistics.videoCount + ' videos'); + } + + if (!youtube_version) { + element.href = document.querySelector('#watch7-user-header a').href.indexOf('/videos') === -1 ? document.querySelector('#watch7-user-header a').href + '/videos' : document.querySelector('#watch7-user-header a').href; + } + + if (!document.querySelector('.itx-channel-videos-count') && document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info')) { + element.style.marginLeft = '8px'; + element.className = (youtube_version ? 'style-scope ytd-video-owner-renderer itx-channel-videos-count' : 'yt-uix-sessionlink spf-link itx-channel-videos-count'); + + document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info').appendChild(element); + } + }); + + xhr.open('GET', 'https://www.googleapis.com/youtube/v3/channels?id=' + (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a').getAttribute('it-origin') || document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a').href).replace('https://www.youtube.com/channel/', '') + '&key=AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA&part=statistics', true); + xhr.send(); + } + }, 500); + } +}; + + +/*------------------------------------------------------------------------------ +2.4 COMMENTS +-------------------------------------------------------------------------------- +TODO TEST +------------------------------------------------------------------------------*/ + +ImprovedTube.comments_wait = false; + +ImprovedTube.comments = function() { + if (this.storage.comments === 'collapsed') { + if (this.comments_wait === false) { + this.comments_wait = setInterval(function() { + if ( + document.getElementById('comment-section-renderer-items') || + document.querySelector('#comments #sections #contents') + ) { + clearInterval(this.comments_wait); + + this.comments_wait = false; + + if (!document.getElementById('improvedtube-collapsed-comments')) { + var button = document.createElement('button'), + parent = document.getElementById('comment-section-renderer') || document.querySelector('#comments #sections'), + reference = document.getElementById('comment-section-renderer-items') || document.querySelector('#comments #sections #contents'); + + button.id = 'improvedtube-collapsed-comments'; + button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; + button.innerHTML = 'Show moreShow less'; + + button.onclick = function() { + document.documentElement.classList.toggle('comments-collapsed'); + }; + + document.documentElement.classList.toggle('comments-collapsed'); + parent.insertBefore(button, reference); + } + } + }, 250); + } + } else { + clearInterval(this.comments_wait); + + this.comments_wait = false; + + setTimeout(function() { + if (document.getElementById('improvedtube-collapsed-comments')) { + document.getElementById('improvedtube-collapsed-comments').remove(); + } + }, 260); + } +}; + + +/*------------------------------------------------------------------------------ +3.0 THEMES +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +3.1 MY COLORS +------------------------------------------------------------------------------*/ + +ImprovedTube.myColors = function() { + if (this.storage.theme_my_colors !== true) { + if (document.querySelector('.it-theme-editor')) { + document.querySelector('.it-theme-editor').remove(); + } + + return false; + } + + var style = document.querySelector('.it-theme-editor') || document.createElement('style'); + + style.className = 'it-theme-editor'; + style.innerText = 'html{' + + '--yt-swatch-textbox-bg:rgba(19,19,19,1)!important;' + + '--yt-swatch-icon-color:rgba(136,136,136,1)!important;' + + '--yt-spec-brand-background-primary:rgba(0,0,0, 0.1) !important;' + + '--yt-spec-brand-background-secondary:rgba(0,0,0, 0.1) !important;' + + '--yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important;' + + '--yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important;' + + '--yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important;' + + '--yt-spec-brand-button-background:rgba(136,136,136,1) !important;' + + '--yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important;' + + '--yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important;' + + '--yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important;' + + '--yt-spec-10-percent-layer:rgba(136,136,136,1) !important;' + + '--yt-swatch-primary:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-swatch-primary-darker:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-brand-background-solid:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-general-background-a:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-general-background-b:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-general-background-c:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-touch-response:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-swatch-text: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-swatch-important-text: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-swatch-input-text: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-swatch-logo-override: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-spec-text-primary:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-text-primary-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-text-secondary:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-text-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-icon-active-other:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-icon-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-filled-button-text:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-call-to-action-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-brand-icon-active:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-brand-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-brand-link-text:' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-spec-brand-subscribe-button-background:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-wordmark-text:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-selected-nav-text:' + (this.storage.theme_text_color || '') + ' !important;' + + '}'; + + document.documentElement.appendChild(style); +}; + + +/*------------------------------------------------------------------------------ +3.2 BLUELIGHT +------------------------------------------------------------------------------*/ + +ImprovedTube.bluelight = function() { + var value = this.storage.bluelight, + times = { + from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), + to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) + }, + current_time = new Date().getHours(); + + if (times.to < times.from && current_time > times.from && current_time < 24) { + times.to += 24; + } else if (times.to < times.from && current_time < times.to) { + times.from = 0; + } + + if ( + this.isset(value) && value !== 0 && value !== '0' && + (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) + ) { + if (!document.querySelector('#it-bluelight')) { + var container = document.createElement('div'); + + container.id = 'it-bluelight'; + container.innerHTML = ''; + + document.documentElement.appendChild(container); + } else { + document.querySelector('#it-bluelight-filter feColorMatrix').setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 ' + (1 - parseFloat(value) / 100) + ' 0 0 0 0 0 1 0'); + } + } else if (document.querySelector('#it-bluelight')) { + document.querySelector('#it-bluelight').remove(); + } +}; + + +/*------------------------------------------------------------------------------ +3.3 DIM +------------------------------------------------------------------------------*/ + +ImprovedTube.dim = function() { + var value = this.storage.dim, + times = { + from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), + to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) + }, + current_time = new Date().getHours(); + + if (times.to < times.from && current_time > times.from && current_time < 24) { + times.to += 24; + } else if (times.to < times.from && current_time < times.to) { + times.from = 0; + }; + + if ( + this.isset(value) && value !== 0 && value !== '0' && + (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) + ) { + if (!document.querySelector('#it-dim')) { + var container = document.createElement('div'); + + container.id = 'it-dim'; + container.style.opacity = parseInt(Number(value)) / 100 || 0; + + document.documentElement.appendChild(container); + } else { + document.querySelector('#it-dim').style.opacity = parseInt(Number(value)) / 100 || 0; + } + + if (!document.querySelector('#it-dim-player')) { + var container = document.createElement('div'); + + container.id = 'it-dim-player'; + container.style.opacity = parseInt(Number(value)) / 100 || 0; + + if (document.querySelector('.html5-video-player')) { + document.querySelector('.html5-video-player').appendChild(container); + } + } else { + document.querySelector('#it-dim-player').style.opacity = parseInt(Number(value)) / 100 || 0; + } + } else { + if (document.querySelector('#it-dim')) { + document.querySelector('#it-dim').remove(); + } + + if (document.querySelector('#it-dim-player')) { + document.querySelector('#it-dim-player').remove(); + } + } +}; + + +/*------------------------------------------------------------------------------ +3.4 FONT +------------------------------------------------------------------------------*/ + +ImprovedTube.font = function() { + if (this.storage.font) { + if (this.storage.font != 'Default') { + if (!document.querySelector('.it-font-family')) { + var link = document.createElement('link'); + + link.rel = 'stylesheet'; + + document.documentElement.appendChild(link); + } else { + var link = document.querySelector('.it-font-family'); + } + + link.href = '//fonts.googleapis.com/css2?family=' + this.storage.font; + + document.documentElement.style.fontFamily = this.storage.font.replace(/\+/g, ' '); + } + } +}; + + +/*------------------------------------------------------------------------------ +3.5 THEMES +------------------------------------------------------------------------------*/ + +ImprovedTube.themes = function() { + var times = { + from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), + to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) + }, + current_time = new Date().getHours(); + + if (times.to < times.from && current_time > times.from && current_time < 24) { + times.to += 24; + } else if (times.to < times.from && current_time < times.to) { + times.from = 0; + } + + if ( + (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) && + ( + this.isset(ImprovedTube.storage.default_dark_theme) && ImprovedTube.storage.default_dark_theme !== false || + this.isset(ImprovedTube.storage.night_theme) && ImprovedTube.storage.night_theme !== false || + this.isset(ImprovedTube.storage.dawn_theme) && ImprovedTube.storage.dawn_theme !== false || + this.isset(ImprovedTube.storage.sunset_theme) && ImprovedTube.storage.sunset_theme !== false || + this.isset(ImprovedTube.storage.desert_theme) && ImprovedTube.storage.desert_theme !== false || + this.isset(ImprovedTube.storage.plain_theme) && ImprovedTube.storage.plain_theme !== false || + this.isset(ImprovedTube.storage.black_theme) && ImprovedTube.storage.black_theme !== false + ) + ) { + var PREF_OLD = this.getParams(this.getCookieValueByName('PREF')), + PREF = this.getParams(this.getCookieValueByName('PREF')), + result = ''; + + if (!this.isset(PREF.f6) || this.isset(PREF.f6) && PREF.f6.length !== 3) { + PREF.f6 = '400'; + } else if (PREF.f6.length === 3) { + PREF.f6 = '4' + PREF.f6.substr(1); + } + + for (var i in PREF) { + result += i + '=' + PREF[i] + '&'; + } + + this.setCookie('PREF', result.slice(0, -1)); + + document.documentElement.setAttribute('it-theme', 'true'); + } else { + document.documentElement.removeAttribute('it-theme'); + } +}; + + +/*------------------------------------------------------------------------------ +4.0 PLAYER +-------------------------------------------------------------------------------- +TODO: CONNECT & TEST +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +4.1 AUTOPLAY +------------------------------------------------------------------------------*/ + +ImprovedTube.allow_autoplay = false; + +ImprovedTube.autoplay = function(video) { + if (ImprovedTube.video_url !== location.href) { + ImprovedTube.allow_autoplay = false; + } + + if ( + ( + (/\/watch\?/.test(location.href) && !/list=/.test(location.href) && ImprovedTube.storage.player_autoplay === false) || + (/\/watch\?/.test(location.href) && /list=/.test(location.href) && ImprovedTube.storage.playlist_autoplay === false) || + (/\/(channel|user|c)\//.test(location.href) && ImprovedTube.storage.channel_trailer_autoplay === false) + ) === true && + ImprovedTube.allow_autoplay === false && + video.parentNode.parentNode.classList.contains('ad-showing') === false + ) { + setTimeout(function() { + video.parentNode.parentNode.pauseVideo(); + }); + } +}; + + +/*------------------------------------------------------------------------------ +4.2 AUTOPAUSE WHEN SWITCHING TABS +------------------------------------------------------------------------------*/ + +ImprovedTube.playerAutopauseWhenSwitchingTabs = function() { + var video = document.querySelector('.html5-video-player video'); + + if (this.storage.player_autopause_when_switching_tabs === true && video) { + + if (this.focus === false && video.paused === false) { + video.pause(); + + this.played_before_blur = true; + } else if (this.focus === true && this.played_before_blur === true) { + video.play(); + } + } +}; + + +/*------------------------------------------------------------------------------ +4.3 FORCED PLAYBACK SPEED +------------------------------------------------------------------------------*/ + +ImprovedTube.playerPlaybackSpeed = function(node) { + var option = Number(ImprovedTube.storage.player_playback_speed); + + if (ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) && ImprovedTube.storage.player_forced_playback_speed === true) { + try { + if (window.location.href.indexOf('music') < 0) { + document.querySelector('.html5-video-player').querySelector('video').playbackRate = option; + } + } catch (err) {} + } +}; + + +/*------------------------------------------------------------------------------ +4.4 SUBTITLES +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitles = function() { + +}; + + +/*------------------------------------------------------------------------------ +4.5 UP NEXT AUTOPLAY +------------------------------------------------------------------------------*/ + +ImprovedTube.upNextAutoplay = function() { + var option = this.storage.up_next_autoplay; + + if (this.isset(option)) { + var toggle = document.querySelector('#related #head.ytd-compact-autoplay-renderer #toggle'); + + if (toggle) { + var option = ImprovedTube.storage.up_next_autoplay; + + if (option === true && !toggle.hasAttribute('checked') || option === false && toggle.hasAttribute('checked')) { + toggle.click(); + } + } + } +}; + + +/*------------------------------------------------------------------------------ +4.6 ADS +------------------------------------------------------------------------------*/ + +ImprovedTube.adInterval = false; +ImprovedTube.AdSkipButton = false; + +ImprovedTube.playerAds = function() { + if (ImprovedTube.adInterval) { + clearInterval(ImprovedTube.adInterval); + } + + if (ImprovedTube.storage.player_ads === 'block_all' || ImprovedTube.storage.player_ads === 'subscribed_channels') { + ImprovedTube.adInterval = setInterval(function() { + if (!ImprovedTube.AdSkipButton) { + ImprovedTube.AdSkipButton = document.querySelector('.ytp-ad-skip-button.ytp-button'); + } + + if (ImprovedTube.AdSkipButton) { + ImprovedTube.AdSkipButton.click(); + } + }, 250); + } +}; + + +/*------------------------------------------------------------------------------ +4.7 CUSTOM MINI-PLAYER +------------------------------------------------------------------------------*/ + +ImprovedTube.mini_player__mode = false; +ImprovedTube.mini_player__move = false; +ImprovedTube.mini_player__cursor = '""'; +ImprovedTube.mini_player__x = 0; +ImprovedTube.mini_player__y = 0; +ImprovedTube.mini_player__max_x = 0; +ImprovedTube.mini_player__max_y = 0; +ImprovedTube.mini_player__original_width = 0; +ImprovedTube.mini_player__original_height = 0; +ImprovedTube.mini_player__width = 200; +ImprovedTube.mini_player__height = 160; +ImprovedTube.mini_player__mousedown_x = 0; +ImprovedTube.mini_player__mousedown_y = 0; +ImprovedTube.mini_player__player_offset_x = 0; +ImprovedTube.mini_player__player_offset_y = 0; +ImprovedTube.mini_player__resize_offset = 16; + + +ImprovedTube.mini_player__setPosition = function(x, y) { + ImprovedTube.mini_player__element.style.transform = 'translate3d(' + x + 'px, ' + y + 'px, 0)'; +}; + +ImprovedTube.mini_player__setSize = function(width, height) { + ImprovedTube.mini_player__element.style.width = width + 'px'; + ImprovedTube.mini_player__element.style.height = height + 'px'; +}; + +ImprovedTube.mini_player__scroll = function() { + if (window.scrollY >= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === false) { + ImprovedTube.mini_player__mode = true; + + ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; + ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; + + ImprovedTube.mini_player__element.classList.add('it-mini-player'); + + ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); + ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); + + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); + + ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); + + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); + + window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); + window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); + + window.dispatchEvent(new Event('resize')); + } else if (window.scrollY < 256 && ImprovedTube.mini_player__mode === true || ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === true) { + ImprovedTube.mini_player__mode = false; + ImprovedTube.mini_player__element.classList.remove('it-mini-player'); + ImprovedTube.mini_player__move = false; + ImprovedTube.mini_player__setPosition(0, 0); + ImprovedTube.mini_player__element.style.width = ''; + ImprovedTube.mini_player__element.style.height = ''; + + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); + + window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); + window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); + + window.dispatchEvent(new Event('resize')); + } +}; + +ImprovedTube.mini_player__mousedown = function(event) { + if (event.button !== 0) { + return false; + } + + if (ImprovedTube.mini_player__resize() === true) { + return false; + } + + var is_player = false; + + for (var i = 0, l = event.path.length; i < l; i++) { + if ((event.path[i].classList && event.path[i].classList.contains('it-mini-player')) === true) { + is_player = true; + } + } + + if (is_player === false) { + return false; + } + + event.preventDefault(); + + var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); + + ImprovedTube.mini_player__mousedown_x = event.clientX; + ImprovedTube.mini_player__mousedown_y = event.clientY; + ImprovedTube.mini_player__width = bcr.width; + ImprovedTube.mini_player__height = bcr.height; + + ImprovedTube.mini_player__player_offset_x = event.clientX - bcr.x; + ImprovedTube.mini_player__player_offset_y = event.clientY - bcr.y; + + ImprovedTube.mini_player__max_x = document.body.offsetWidth - ImprovedTube.mini_player__width; + ImprovedTube.mini_player__max_y = window.innerHeight - ImprovedTube.mini_player__height; + + window.addEventListener('mouseup', ImprovedTube.mini_player__mouseup); + window.addEventListener('mousemove', ImprovedTube.mini_player__mousemove); +}; + +ImprovedTube.mini_player__mouseup = function() { + var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; + + strg.x = ImprovedTube.mini_player__x; + strg.y = ImprovedTube.mini_player__y; + + localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); + + window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); + window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); + + ImprovedTube.mini_player__move = false; + + setTimeout(function() { + window.removeEventListener('click', ImprovedTube.mini_player__click, true); + }); +}; + +ImprovedTube.mini_player__click = function(event) { + event.stopPropagation(); + event.preventDefault(); +}; + +ImprovedTube.mini_player__mousemove = function(event) { + if ( + event.clientX < ImprovedTube.mini_player__mousedown_x - 5 || + event.clientY < ImprovedTube.mini_player__mousedown_y - 5 || + event.clientX > ImprovedTube.mini_player__mousedown_x + 5 || + event.clientY > ImprovedTube.mini_player__mousedown_y + 5 + ) { + var x = event.clientX - ImprovedTube.mini_player__player_offset_x, + y = event.clientY - ImprovedTube.mini_player__player_offset_y; + + if (ImprovedTube.mini_player__move === false) { + ImprovedTube.mini_player__move = true; + + window.addEventListener('click', ImprovedTube.mini_player__click, true); + } + + if (x < 0) { + x = 0; + } + + if (y < 0) { + y = 0; + } + + if (x > ImprovedTube.mini_player__max_x) { + x = ImprovedTube.mini_player__max_x; + } + + if (y > ImprovedTube.mini_player__max_y) { + y = ImprovedTube.mini_player__max_y; + } + + ImprovedTube.mini_player__x = x; + ImprovedTube.mini_player__y = y; + + ImprovedTube.mini_player__setPosition(x, y); + } +}; + +ImprovedTube.mini_player__cursorUpdate = function(event) { + var x = event.clientX, + y = event.clientY, + c = ImprovedTube.mini_player__cursor; + + if ( + x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset + ) { + c = 'ne-resize'; + } else if ( + x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'se-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && + y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'sw-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset + ) { + c = 'nw-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset + ) { + c = 'n-resize'; + } else if ( + x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'e-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 's-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'w-resize'; + } else { + c = ''; + } + + if (ImprovedTube.mini_player__cursor !== c) { + ImprovedTube.mini_player__cursor = c; + + document.documentElement.setAttribute('it-mini-player-cursor', ImprovedTube.mini_player__cursor); + } +}; + +ImprovedTube.mini_player__resize = function(event) { + if (ImprovedTube.mini_player__cursor !== '') { + window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); + window.addEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); + window.addEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); + + return true; + } +}; + +ImprovedTube.mini_player__resize_mouseMove = function(event) { + if (ImprovedTube.mini_player__cursor === 'n-resize') { + ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); + } else if (ImprovedTube.mini_player__cursor === 'e-resize') { + ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__height); + } else if (ImprovedTube.mini_player__cursor === 's-resize') { + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, event.clientY - ImprovedTube.mini_player__y); + } else if (ImprovedTube.mini_player__cursor === 'w-resize') { + ImprovedTube.mini_player__setPosition(event.clientX, ImprovedTube.mini_player__y); + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__height); + } else if (ImprovedTube.mini_player__cursor === 'ne-resize') { + ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); + ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); + } else if (ImprovedTube.mini_player__cursor === 'se-resize') { + ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, event.clientY - ImprovedTube.mini_player__y); + } else if (ImprovedTube.mini_player__cursor === 'sw-resize') { + ImprovedTube.mini_player__setPosition(event.clientX, ImprovedTube.mini_player__y); + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, event.clientY - ImprovedTube.mini_player__y); + } else if (ImprovedTube.mini_player__cursor === 'nw-resize') { + ImprovedTube.mini_player__setPosition(event.clientX, event.clientY); + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); + } +}; + +ImprovedTube.mini_player__resize_mouseUp = function(event) { + var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); + + ImprovedTube.mini_player__x = bcr.left; + ImprovedTube.mini_player__y = bcr.top; + ImprovedTube.mini_player__width = bcr.width; + ImprovedTube.mini_player__height = bcr.height; + + var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; + + strg.width = ImprovedTube.mini_player__width; + strg.height = ImprovedTube.mini_player__height; + + localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); + + window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); + window.removeEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); + window.removeEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); +}; + +ImprovedTube.mini_player = function() { + ImprovedTube.mini_player__element = document.querySelector('.html5-video-player'); + + if (ImprovedTube.storage.mini_player === true) { + var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; + + ImprovedTube.mini_player__x = ImprovedTube.isset(strg.x) ? strg.x : 16; + ImprovedTube.mini_player__y = ImprovedTube.isset(strg.y) ? strg.y : 16; + ImprovedTube.mini_player__width = strg.width || 200; + ImprovedTube.mini_player__height = strg.height || 150; + + window.addEventListener('scroll', ImprovedTube.mini_player__scroll); + } else { + ImprovedTube.mini_player__mode = false; + ImprovedTube.mini_player__element.classList.remove('it-mini-player'); + ImprovedTube.mini_player__move = false; + ImprovedTube.mini_player__setPosition(0, 0); + ImprovedTube.mini_player__element.style.width = ''; + ImprovedTube.mini_player__element.style.height = ''; + + ImprovedTube.mini_player__element.classList.remove('it-mini-player'); + + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); + + window.dispatchEvent(new Event('resize')); + + window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); + window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); + window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); + window.removeEventListener('click', ImprovedTube.mini_player__click); + window.removeEventListener('scroll', ImprovedTube.mini_player__scroll); + window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); + } +}; + + +/*------------------------------------------------------------------------------ +4.8 AUTO FULLSCREEN +------------------------------------------------------------------------------*/ + +ImprovedTube.playerAutofullscreen = function(node) { + if (!node) { + node = document.querySelector('.html5-video-player'); + } + + if ( + this.storage.player_autofullscreen === true && + !document.fullscreenElement && + document.documentElement.getAttribute('it-page-type') === 'video' && + node.toggleFullscreen + ) { + node.toggleFullscreen(); + } +}; + + +/*------------------------------------------------------------------------------ +4.9 QUALITY +------------------------------------------------------------------------------*/ + +ImprovedTube.playerQuality = function(node) { + var quality = ImprovedTube.storage.player_quality; + + if (!node) { + node = document.querySelector('.html5-video-player'); + } + + if (node.getAvailableQualityLevels) { + var available_quality_levels = node.getAvailableQualityLevels(); + + if (quality && quality !== 'auto') { + if (available_quality_levels.indexOf(quality) === -1) { + quality = available_quality_levels[0]; + } + + node.setPlaybackQualityRange(quality); + node.setPlaybackQuality(quality); + } + } +}; + + +/*------------------------------------------------------------------------------ +4.10 CODEC H.264 +------------------------------------------------------------------------------*/ + +ImprovedTube.playerH264 = function() { + if (this.storage.player_h264 === true) { + var canPlayType = HTMLMediaElement.prototype.canPlayType; + + function overwrite(self, callback, mime) { + if (/webm|vp8|vp9/.test(mime)) { + return false; + } else { + return callback.call(self, mime); + } + } + + if (window.MediaSource) { + var isTypeSupported = window.MediaSource.isTypeSupported; + + window.MediaSource.isTypeSupported = function(mime) { + return overwrite(this, isTypeSupported, mime); + }; + } + + HTMLMediaElement.prototype.canPlayType = function(mime) { + var status = overwrite(this, canPlayType, mime); + + if (!status) { + return ''; + } else { + return status; + } + }; + } +}; + + +/*------------------------------------------------------------------------------ +4.11 ALLOW 60FPS +------------------------------------------------------------------------------*/ + +ImprovedTube.player60fps = function() { + if (this.storage.player_60fps === false) { + var canPlayType = HTMLMediaElement.prototype.canPlayType; + + function overwrite(self, callback, mime) { + var match = /framerate=(\d+)/.exec(mime); + + if (match && match[1] > 30) { + return ''; + } else { + return callback.call(self, mime); + } + } + + if (window.MediaSource) { + var isTypeSupported = window.MediaSource.isTypeSupported; + + window.MediaSource.isTypeSupported = function(mime) { + return overwrite(this, isTypeSupported, mime); + }; + } + + HTMLMediaElement.prototype.canPlayType = function(mime) { + var status = overwrite(this, canPlayType, mime); + + if (!status) { + return ''; + } else { + return status; + } + }; + } +}; + + +/*------------------------------------------------------------------------------ +4.12 FORCED VOLUME +------------------------------------------------------------------------------*/ + +ImprovedTube.playerVolume = function(node) { + if (!node) { + node = document.querySelector('.html5-video-player'); + } + + if (node && ImprovedTube.storage.player_forced_volume === true) { + var volume = Number(ImprovedTube.storage.player_volume); + + if (!ImprovedTube.isset(volume) || !volume) { + volume = 1; + } + + node.setVolume(volume); + } +}; + + +/*------------------------------------------------------------------------------ +4.13 LOUDNESS NORMALIZATION +------------------------------------------------------------------------------*/ + +ImprovedTube.playerLoudnessNormalization = function() { + if (document.querySelector('video')) { + document.querySelector('video').onvolumechange = function(event) { + if (document.querySelector('.ytp-volume-panel') && ImprovedTube.storage.player_loudness_normalization === false) { + var volume = Number(document.querySelector('.ytp-volume-panel').getAttribute('aria-valuenow')); + + document.querySelector('video').volume = volume / 100; + } + }; + } + + if (ImprovedTube.storage.player_loudness_normalization === false) { + try { + var local_storage = localStorage['yt-player-volume']; + + if (ImprovedTube.isset(Number(ImprovedTube.storage.player_volume)) && ImprovedTube.storage.player_forced_volume === true) { + + } else if (local_storage) { + local_storage = JSON.parse(JSON.parse(local_storage).data); + local_storage = Number(local_storage.volume); + + document.querySelector('video').volume = local_storage / 100; + } else { + document.querySelector('video').volume = 100; + } + } catch (err) {} + } +}; + + +/*------------------------------------------------------------------------------ +4.14 SCREENSHOT +------------------------------------------------------------------------------*/ + +ImprovedTube.screenshot = function() { + document.body.style.opacity = '0'; + + var video = document.querySelector('.html5-video-player video'), + cvs = document.createElement('canvas'), + ctx = cvs.getContext('2d'), + old_w = video.offsetWidth, + old_h = video.offsetHeight; + + video.style.width = video.videoWidth + 'px'; + video.style.height = video.videoHeight + 'px'; + + setTimeout(function() { + cvs.width = video.videoWidth; + cvs.height = video.videoHeight; + + ctx.drawImage(video, 0, 0, cvs.width, cvs.height); + + cvs.toBlob(function(blob) { + if (ImprovedTube.storage.player_screenshot_save_as !== 'clipboard') { + var a = document.createElement('a'); + + a.href = URL.createObjectURL(blob); + + a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '-' + new Date(document.querySelector('video').getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; + + a.click(); + } else { + try { + navigator.clipboard.write([ + new ClipboardItem({ + 'image/png': blob + }) + ]); + } catch (error) {} + } + + setTimeout(function() { + video.style.width = old_w + 'px'; + video.style.height = old_h + 'px'; + + document.body.style.opacity = '1'; + }, 100); + }); + }, 100); +}; + +ImprovedTube.playerScreenshotButton = function() { + if (this.storage.player_screenshot_button === true) { + if (!node) { + var node = document.querySelector('.html5-video-player'); + } + + this.createPlayerButton(node, { + id: 'it-screenshot-button', + html: '', + opacity: 1, + onclick: ImprovedTube.screenshot, + title: 'Screenshot' + }); + } else if (document.querySelector('.it-screenshot-button')) { + document.querySelector('.it-screenshot-button').remove(); + } +}; + + +/*------------------------------------------------------------------------------ +4.15 REPEAT +------------------------------------------------------------------------------*/ + +ImprovedTube.playerRepeatButton = function(node) { + if (this.storage.player_repeat_button === true) { + if (!node) { + var node = document.querySelector('.html5-video-player'); + } + + this.createPlayerButton(node, { + id: 'it-repeat-button', + html: '', + onclick: function() { + if (node.querySelector('video').hasAttribute('loop')) { + node.querySelector('video').removeAttribute('loop'); + this.style.opacity = '.5'; + } else if (!/ad-showing/.test(player.className)) { + node.querySelector('video').setAttribute('loop', ''); + this.style.opacity = '1'; + } + }, + title: 'Repeat' + }); + + if (this.storage.player_always_repeat === true) { + setTimeout(function() { + node.querySelector('video').setAttribute('loop', ''); + node.querySelector('#it-repeat-button').style.opacity = '1'; + }, 100); + } + } else if (document.querySelector('.it-repeat-button')) { + document.querySelector('.it-repeat-button').remove(); + } +}; + + +/*------------------------------------------------------------------------------ +4.16 ROTATE +------------------------------------------------------------------------------*/ + +ImprovedTube.playerRotateButton = function() { + if (this.storage.player_rotate_button === true) { + if (!node) { + var node = document.querySelector('.html5-video-player'); + } + + this.createPlayerButton(node, { + id: 'it-rotate-button', + html: '', + opacity: 1, + onclick: function() { + var video = document.querySelector('.html5-video-player video'), + transform = '', + rotate = (document.querySelector('.it-rotate-styles') && document.querySelector('.it-rotate-styles').textContent.match(/rotate\([0-9.]+deg\)/g) || [''])[0]; + + rotate = Number((rotate.match(/[0-9.]+/g) || [])[0]) || 0; + + if (rotate < 270 && rotate % 90 == 0) { + rotate = rotate + 90; + } else { + rotate = 0; + } + + transform += 'rotate(' + rotate + 'deg)'; + + if (rotate == 90 || rotate == 270) { + transform += ' scale(' + video.offsetHeight / video.offsetWidth + ')'; + } + + //video.style.transform = transform; + + if (!document.querySelector('.it-rotate-styles')) { + var styles = document.createElement('style'); + + styles.className = 'it-rotate-styles'; + + document.body.appendChild(styles); + } + + document.querySelector('.it-rotate-styles').textContent = '.html5-video-player:not(it-mini-player) video {transform:' + transform + '}'; + }, + title: 'Rotate' + }); + } else if (document.querySelector('.it-rotate-button')) { + document.querySelector('.it-rotate-button').remove(); + document.querySelector('.it-rotate-styles').remove(); + } +}; + + +/*------------------------------------------------------------------------------ +4.15 POPUP PLAYER +------------------------------------------------------------------------------*/ + +ImprovedTube.playerPopupButton = function() { + if (this.storage.player_popup_button === true) { + if (!node) { + var node = document.querySelector('.html5-video-player'); + } + + this.createPlayerButton(node, { + id: 'it-popup-player-button', + html: '', + opacity: 1, + onclick: function() { + node.pauseVideo(); + + window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(node.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'location=0,menubar=0,status=0,titlebar=0,width=' + node.offsetWidth + ',height=' + node.offsetHeight); + }, + title: 'Popup' + }); + } else if (document.querySelector('.it-popup-player-button')) { + document.querySelector('.it-popup-player-button').remove(); + } +}; + + +/*------------------------------------------------------------------------------ +5.0 PLAYLIST +-------------------------------------------------------------------------------- +TODO: CONNECT & TEST +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +5.1 UP NEXT AUTOPLAY +------------------------------------------------------------------------------*/ + +ImprovedTube.playlist_up_next_autoplay_f = function(event) { + if ( + ImprovedTube.getParam(location.href, 'list') && + ImprovedTube.storage.playlist_up_next_autoplay === false && + this.currentTime >= this.duration - 1 + ) { + this.pause(); + } +}; + +ImprovedTube.playlistUpNextAutoplay = function() { + var video = document.querySelector('video'); + + video.removeEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); + video.addEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); +}; + + +/*------------------------------------------------------------------------------ +5.2 REVERSE +------------------------------------------------------------------------------*/ + +ImprovedTube.playlistReverseUrl = false; +ImprovedTube.playlistReversed = false; + +ImprovedTube.playlistReverseNextPrev = function() { + var ytd_watch = document.querySelector('ytd-watch-flexy'); + + for (var i = 0, l = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.sets.length; i < l; i++) { + var autoplay = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.sets; + + if (autoplay[i].previousButtonVideo && autoplay[i].nextButtonVideo) { + autoplay[i].autoplayVideo = autoplay[i].previousButtonVideo; + autoplay[i].previousButtonVideo = autoplay[i].nextButtonVideo; + autoplay[i].nextButtonVideo = autoplay[i].autoplayVideo; + } + } + + for (var i = 0, l = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.modifiedSets.length; i < l; i++) { + var autoplay = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.modifiedSets; + + if (autoplay[i].previousButtonVideo && autoplay[i].nextButtonVideo) { + autoplay[i].autoplayVideo = autoplay[i].previousButtonVideo; + autoplay[i].previousButtonVideo = autoplay[i].nextButtonVideo; + autoplay[i].nextButtonVideo = autoplay[i].autoplayVideo; + } + } + + ytd_watch.updatePageData_(JSON.parse(JSON.stringify(ytd_watch.data))); + + document.querySelector('yt-navigation-manager').updatePlayer_(null, ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay, null, ytd_watch.data.contents.twoColumnWatchNextResults.playlist); +}; + +ImprovedTube.playlistReverse = function() { + if (this.playlistReverseUrl !== location.href && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer') && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #playlist-action-menu')) { + var button = document.querySelector('#it-reverse-playlist'); + + this.playlistReverseUrl = location.href; + + if (this.storage.playlist_reverse === true) { + if (!button) { + button = document.createElement('button'); + + button.id = 'it-reverse-playlist'; + button.className = 'style-scope yt-icon-button'; + button.innerHTML = ''; + + button.addEventListener('click', function(event) { + event.preventDefault(); + event.stopPropagation(); + + this.classList.toggle('active'); + + ImprovedTube.playlistReversed = !ImprovedTube.playlistReversed; + + ImprovedTube.playlistReverseNextPrev(); + ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); + + return false; + }, true); + + document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #start-actions').appendChild(button); + } + } else if (button) { + button.remove(); + } + } +}; + + +/*------------------------------------------------------------------------------ +5.3 REPEAT +------------------------------------------------------------------------------*/ + +ImprovedTube.playlist_repeat_wait = false; + +ImprovedTube.playlistRepeat = function() { + if (this.isset(this.storage.playlist_repeat) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { + ImprovedTube.playlist_repeat_wait = setInterval(function() { + if ( + document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[0] || + document.querySelector('.playlist-nav-controls .toggle-loop') + ) { + clearInterval(ImprovedTube.playlist_repeat_wait); + + ImprovedTube.playlist_repeat_wait = false; + + var option = ImprovedTube.storage.playlist_repeat, + new_youtube_toggle = document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer'), + old_youtube_toggle = document.querySelector('.playlist-nav-controls .toggle-loop'); + + if (new_youtube_toggle[0] && (option === true && new_youtube_toggle[0].className.search('style-default-active') === -1 || option === 'disabled' && new_youtube_toggle[0].className.search('style-default-active') !== -1)) { + new_youtube_toggle[0].click(); + } else if (old_youtube_toggle && (option === true && old_youtube_toggle.className.search('yt-uix-button-toggled') === -1 || option === 'disabled' && old_youtube_toggle.className.search('yt-uix-button-toggled') !== -1)) { + old_youtube_toggle.click(); + } + } + }, 250); + } +}; + + +/*------------------------------------------------------------------------------ +5.4 SHUFFLE +------------------------------------------------------------------------------*/ + +ImprovedTube.playlist_shuffle_wait = false; + +ImprovedTube.playlistShuffle = function() { + if (this.isset(this.storage.playlist_shuffle) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { + ImprovedTube.playlist_shuffle_wait = setInterval(function() { + if ( + document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[1] || + document.querySelector('.playlist-nav-controls .shuffle-playlist') + ) { + clearInterval(ImprovedTube.playlist_shuffle_wait); + + ImprovedTube.playlist_shuffle_wait = false; + + var option = ImprovedTube.storage.playlist_shuffle, + new_youtube_toggle = document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer'), + old_youtube_toggle = document.querySelector('.playlist-nav-controls .shuffle-playlist'); + + if (new_youtube_toggle[1] && (option === true && new_youtube_toggle[1].className.search('style-default-active') === -1 || option === 'disabled' && new_youtube_toggle[1].className.search('style-default-active') !== -1)) { + new_youtube_toggle[1].click(); + } else if (old_youtube_toggle && (option === true && old_youtube_toggle.className.search('yt-uix-button-toggled') === -1 || option === 'disabled' && old_youtube_toggle.className.search('yt-uix-button-toggled') !== -1)) { + old_youtube_toggle.click(); + } + } + }, 250); + } +}; + + +/*------------------------------------------------------------------------------ +6.0 CHANNEL +-------------------------------------------------------------------------------- +TODO: CONNECT & TEST +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +6.1 DEFAULT CHANNEL TAB +------------------------------------------------------------------------------*/ + +ImprovedTube.channelDefaultTab = function() { + if (this.storage.channel_default_tab && this.storage.channel_default_tab !== '/') { + var value = this.storage.channel_default_tab, + node_list = document.querySelectorAll( + '*:not(#contenteditable-root) > a[href*="user"], ' + + '*:not(#contenteditable-root) > a[href*="channel"], ' + + '*:not(#contenteditable-root) > a[href*="/c/"]' + ); + + for (var i = 0, l = node_list.length; i < l; i++) { + var node = node_list[i]; + + if (!node.getAttribute('it-origin') || + node.hasAttribute('it-origin') && + node.getAttribute('it-origin').replace(/\/(home|videos|playlists)+$/g, '') != node.href.replace(/\/(home|videos|playlists)+$/g, '') + ) { + node.setAttribute('it-origin', node.href); + } + + node.href = node.getAttribute('it-origin') + value; + + function click(event) { + event.stopPropagation(); + } + + node.addEventListener('click', click, true); + node.parentNode.addEventListener('click', click, true); + node.parentNode.parentNode.addEventListener('click', click, true); + } + } else if (this.storage.channel_default_tab) { + var node_list = document.querySelectorAll('a[href*="user"], a[href*="channel"], a[href*="/c/"]'); + + for (var i = 0, l = node_list.length; i < l; i++) { + node_list[i].href = node_list[i].getAttribute('it-origin'); + } + } +}; + + +/*------------------------------------------------------------------------------ +7.0 SHORTCUTS +-------------------------------------------------------------------------------- +TODO: CONNECT & TEST +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcuts = function() { + var self = this, + keys = {}, + wheel = 0, + hover = false, + status_timer; + + function showStatus(player, volume) { + if (!player.querySelector('#it-status')) { + var element = document.createElement('div'); + + element.id = 'it-status'; + element.innerHTML = volume; + + document.querySelector('.html5-video-container').appendChild(element); + } else { + player.querySelector('#it-status').innerHTML = volume; + } + + if (status_timer) { + clearTimeout(status_timer); + } + + status_timer = setTimeout(function() { + if (player.querySelector('#it-status')) { + player.querySelector('#it-status').remove(); + } + }, 500); + } + + function start(type = 'keys') { + if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || event.target.isContentEditable) { + return false; + } + + var features = { + shortcut_240p: function() { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('small'); + player.setPlaybackQuality('small'); + } + }, + shortcut_360p: function() { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('medium'); + player.setPlaybackQuality('medium'); + } + }, + shortcut_480p: function() { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('large'); + player.setPlaybackQuality('large'); + } + }, + shortcut_720p: function() { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('hd720'); + player.setPlaybackQuality('hd720'); + } + }, + shortcut_1080p: function() { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('hd1080'); + player.setPlaybackQuality('hd1080'); + } + }, + shortcut_1440p: function() { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('hd1440'); + player.setPlaybackQuality('hd1440'); + } + }, + shortcut_2160p: function() { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('hd2160'); + player.setPlaybackQuality('hd2160'); + } + }, + shortcut_2880p: function() { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('hd2880'); + player.setPlaybackQuality('hd2880'); + } + }, + shortcut_4320p: function() { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('highres'); + player.setPlaybackQuality('highres'); + } + }, + shortcut_picture_in_picture: function() { + var video = document.querySelector('#movie_player video'); + + if (video) { + video.requestPictureInPicture(); + } + }, + shortcut_play_pause: function() { + var video = document.querySelector('#movie_player video'); + + if (video) { + if (video.paused) { + video.play(); + } else { + video.pause(); + } + } + }, + shortcut_stop: function() { + var player = document.querySelector('#movie_player'); + + if (player) { + player.stopVideo(); + } + }, + shortcut_next_video: function() { + var player = document.querySelector('#movie_player'); + + if (player && player.nextVideo) { + player.nextVideo(); + } + }, + shortcut_prev_video: function() { + var player = document.querySelector('#movie_player'); + + if (player && player.previousVideo) { + player.previousVideo(); + } + }, + shortcut_seek_backward: function() { + var player = document.querySelector('#movie_player'); + + if (player && player.seekBy) { + player.seekBy(-10); + } + }, + shortcut_seek_forward: function() { + var player = document.querySelector('#movie_player'); + + if (player && player.seekBy) { + player.seekBy(10); + } + }, + shortcut_increase_volume: function() { + var player = document.querySelector('.html5-video-player'); + + if (player && player.setVolume && player.getVolume) { + player.setVolume(player.getVolume() + (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); + } + + showStatus(player, player.getVolume()); + }, + shortcut_decrease_volume: function() { + var player = document.querySelector('.html5-video-player'); + + if (player && player.setVolume && player.getVolume) { + player.setVolume(player.getVolume() - (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); + } + + showStatus(player, player.getVolume()); + }, + shortcut_screenshot: function() { + var player = document.querySelector('.html5-video-player'); + + if (player && player.setVolume && player.getVolume) { + ImprovedTube.screenshot(); + } + }, + shortcut_increase_playback_speed: function() { + var video = document.querySelector('#movie_player video'); + + if (video && video.playbackRate) { + video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); + + showStatus(document.querySelector('#movie_player'), video.playbackRate); + } + }, + shortcut_decrease_playback_speed: function() { + var video = document.querySelector('#movie_player video'); + + if (video && video.playbackRate) { + video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); + + showStatus(document.querySelector('#movie_player'), video.playbackRate); + } + }, + shortcut_go_to_search_box: function() { + var search = document.querySelector('#search'); + + if (search && search.focus) { + search.focus(); + } + }, + shortcut_activate_fullscreen: function() { + var player = document.querySelector('#movie_player'); + + if (player && player.toggleFullscreen) { + player.toggleFullscreen(); + } + }, + shortcut_activate_captions: function() { + var player = document.querySelector('#movie_player'); + + if (player && player.querySelector('.ytp-subtitles-button')) { + player.querySelector('.ytp-subtitles-button').click(); + } + }, + shortcut_like_shortcut: function() { + var like = (document.querySelectorAll('.like-button-renderer-like-button')[0] || document.querySelectorAll('#menu #top-level-buttons ytd-toggle-button-renderer')[0]); + + if (like) { + like.click(); + } + }, + shortcut_dislike_shortcut: function() { + var like = (document.querySelectorAll('.like-button-renderer-dislike-button')[0] || document.querySelectorAll('#menu #top-level-buttons ytd-toggle-button-renderer')[1]); + + if (like) { + like.click(); + } + }, + shortcut_dark_theme: function() { + if (document.documentElement.hasAttribute('dark')) { + document.documentElement.removeAttribute('dark'); + document.documentElement.removeAttribute('it-theme'); + } else { + document.documentElement.setAttribute('dark', ''); + document.documentElement.setAttribute('it-theme', 'true'); + } + }, + shortcut_custom_mini_player: function() { + ImprovedTube.storage.mini_player = !ImprovedTube.storage.mini_player; + + ImprovedTube.mini_player(); + + if (ImprovedTube.storage.mini_player === true) { + ImprovedTube.mini_player__mode = true; + + ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; + ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; + + ImprovedTube.mini_player__element.classList.add('it-mini-player'); + + ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); + ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); + + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); + + ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); + + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); + + window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); + window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); + + window.dispatchEvent(new Event('resize')); + } + }, + shortcut_stats_for_nerds: function() { + var player = document.querySelector('.html5-video-player'); + + if (player.isVideoInfoVisible()) { + player.hideVideoInfo(); + } else { + player.showVideoInfo(); + } + }, + shortcut_toggle_cards: function() { + document.documentElement.toggleAttribute('it-player-hide-cards'); + } + }; + + for (var i in features) { + if (self.isset(self.storage[i])) { + var data = JSON.parse(self.storage[i]) || {}; + + if ( + (data.key === keys.key || !self.isset(data.key)) && + (data.shiftKey === keys.shiftKey || !self.isset(data.shiftKey)) && + (data.ctrlKey === keys.ctrlKey || !self.isset(data.ctrlKey)) && + (data.altKey === keys.altKey || !self.isset(data.altKey)) && + ((data.wheel > 0) === (wheel > 0) || !self.isset(data.wheel)) && + ((hover === true && (data.wheel > 0) === (wheel > 0) && Object.keys(keys).length === 0 && keys.constructor === Object) || (self.isset(data.key) || self.isset(data.altKey) || self.isset(data.ctrlKey))) + ) { + if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { + event.preventDefault(); + event.stopPropagation(); + } + + features[i](); + + if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { + return false; + } + } + } + } + } + + + /*------------------------------------------------------------------------- + 1.0 Keyboard + -------------------------------------------------------------------------*/ + + window.addEventListener('keydown', function(event) { + keys = { + key: event.key, + keyCode: event.keyCode, + shiftKey: event.shiftKey, + ctrlKey: event.ctrlKey, + altKey: event.altKey + }; + + start(); + }, true); + + window.addEventListener('keyup', function(event) { + keys = {}; + }, true); + + + /*------------------------------------------------------------------------- + 2.0 Mouse + -------------------------------------------------------------------------*/ + + window.addEventListener('mousemove', function(event) { + hover = false; + + for (var i = 0, l = event.path.length; i < l; i++) { + if (event.path[i].classList && event.path[i].classList.contains('html5-video-player')) { + hover = true; + } + } + }, { + passive: false, + capture: true + }); + + window.addEventListener('wheel', function(event) { + wheel = event.deltaY; + + start('wheel'); + }, { + passive: false, + capture: true + }); +}; + + +/*------------------------------------------------------------------------------ +8.0 BLACKLIST +-------------------------------------------------------------------------------- +TODO: CONNECT & TEST +------------------------------------------------------------------------------*/ + +document.addEventListener('ImprovedTubeBlacklist', function(event) { + if (chrome && chrome.runtime) { + chrome.runtime.sendMessage({ + name: 'improvedtube-blacklist', + data: { + type: event.detail.type, + id: event.detail.id, + title: event.detail.title, + preview: event.detail.preview + } + }); + } +}); + +ImprovedTube.blacklist = function() { + if (ImprovedTube.storage.blacklist_activate !== true) { + return false; + } + + if (typeof ImprovedTube.storage.blacklist === 'boolean' || !ImprovedTube.storage.blacklist) { + ImprovedTube.storage.blacklist = {}; + } + + // channel button + if (!ImprovedTube.isset(ImprovedTube.storage.blacklist.channels) || + (ImprovedTube.storage.blacklist.channels && + Object.keys(ImprovedTube.storage.blacklist.channels).indexOf(location.href.replace(/https:\/\/www.youtube.com\/(channel|user|c)\//g, '').replace(/\/(.)+/g, '')) === -1) + ) { + let channel_items = document.querySelectorAll('#inner-header-container #subscribe-button, .primary-header-upper-section .yt-uix-subscription-button'); + + for (let i = 0, l = channel_items.length; i < l; i++) { + if (!channel_items[i].parentNode.querySelector('.improvedtube-add-to-blacklist')) { + let button = document.createElement('div'); + + button.addEventListener('click', function(event) { + let video_id; + + event.preventDefault(); + event.stopPropagation(); + + try { + video_id = location.href.replace(/https:\/\/www.youtube.com\/(channel|user)\//g, '').replace(/\/(.)+/g, ''); + + document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { + detail: { + type: 'channel', + id: video_id, + title: document.querySelector('#channel-container yt-formatted-string.ytd-channel-name, a.branded-page-header-title-link').innerText, + preview: document.querySelector('#channel-container #avatar #img, .channel-header-profile-image').src + } + })); + + if (!ImprovedTube.storage.blacklist || typeof ImprovedTube.storage.blacklist !== 'object') { + ImprovedTube.storage.blacklist = {}; + } + + if (!ImprovedTube.storage.blacklist.channels) { + ImprovedTube.storage.blacklist.channels = {}; + } + + ImprovedTube.storage.blacklist.channels[video_id] = { + title: document.querySelector('yt-formatted-string.ytd-channel-name, a.branded-page-header-title-link').innerText, + preview: document.querySelector('#channel-container #avatar #img, .channel-header-profile-image').src + }; + + ImprovedTube.blacklist(); + + location.reload(); + } catch (err) {} + }, true); + + button.className = 'improvedtube-add-to-blacklist'; + button.innerText = 'Add to blacklist'; + button.style.position = 'static'; + button.style.transform = 'unset'; + button.style.opacity = '1'; + button.style.visibility = 'visible'; + button.style.pointerEvents = 'all'; + button.style.width = 'auto'; + button.style.fontSize = '16px'; + button.style.lineHeight = '28px'; + button.style.height = 'auto'; + button.style.padding = '6px 12px'; + button.style.borderRadius = '2px'; + button.style.boxSizing = 'border-box'; + button.style.background = '#bb1a1a'; + + channel_items[i].parentNode.insertBefore(button, channel_items[i]); + } + } + } + + // video button + let video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); + + for (let i = 0, l = video_items.length; i < l; i++) { + if (!video_items[i].querySelector('.improvedtube-add-to-blacklist')) { + let button = document.createElement('div'); + + button.addEventListener('click', function(event) { + let video_id; + + event.preventDefault(); + event.stopPropagation(); + + try { + video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'); + + let item = this.parentNode; + + while ( + item.nodeName && + item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && + item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && + item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && + item.classList && + !item.classList.contains('yt-shelf-grid-item') && + !item.classList.contains('video-list-item') + ) { + item = item.parentNode; + } + + document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { + detail: { + type: 'video', + id: video_id, + title: item.querySelector('#video-title').innerText + } + })); + + if (!ImprovedTube.storage.blacklist || typeof ImprovedTube.storage.blacklist !== 'object') { + ImprovedTube.storage.blacklist = {}; + } + + if (!ImprovedTube.storage.blacklist.videos) { + ImprovedTube.storage.blacklist.videos = {}; + } + + ImprovedTube.storage.blacklist.videos[video_id] = { + title: item.querySelector('#video-title').innerText + }; + + ImprovedTube.blacklist(); + } catch (err) {} + }, true); + button.className = 'improvedtube-add-to-blacklist'; + button.innerText = 'x'; + + video_items[i].appendChild(button); + } + } + + // remove channels + if (ImprovedTube.storage.blacklist && ImprovedTube.storage.blacklist.channels) { + let videos = document.querySelectorAll('a#thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); + + for (let i = 0, l = videos.length; i < l; i++) { + let item = videos[i]; + + while ( + item.nodeName && + item.nodeName !== 'YTD-VIDEO-RENDERER' && + item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && + item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && + item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && + item.classList && + !item.classList.contains('yt-shelf-grid-item') && + !item.classList.contains('video-list-item') + ) { + item = item.parentNode; + } + + if (item.querySelector('.ytd-channel-name a, a.spf-link[href*="/user/"], a.spf-link[href*="/channel/"]')) { + let channel_href = item.querySelector('.ytd-channel-name a, a.spf-link[href*="/user/"], a.spf-link[href*="/channel/"]').href; + + for (var key in ImprovedTube.storage.blacklist.channels) { + if (item.style && channel_href.indexOf(key) !== -1) { + item.style.display = 'none'; + } + } + } + } + } + + // remove videos + if (ImprovedTube.storage.blacklist && ImprovedTube.storage.blacklist.videos) { + let videos = document.querySelectorAll('a#thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); + + for (let i = 0, l = videos.length; i < l; i++) { + if (videos[i].href && videos[i].href != '' && ImprovedTube.getParam(new URL(videos[i].href).search.substr(1), 'v') in ImprovedTube.storage.blacklist.videos) { + let item = videos[i]; + + while ( + item.nodeName && + item.nodeName !== 'YTD-VIDEO-RENDERER' && + item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && + item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && + item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && + item.classList && + !item.classList.contains('yt-shelf-grid-item') && + !item.classList.contains('video-list-item') + ) { + item = item.parentNode; + } + + item.style.display = 'none'; + } + } + } +}; + + +/*------------------------------------------------------------------------------ +9.0 ANALYZER +-------------------------------------------------------------------------------- +TODO: CONNECT & TEST +------------------------------------------------------------------------------*/ + +document.addEventListener('ImprovedTubeAnalyzer', function() { + if (items.analyzer_activation === true) { + if (document.querySelector('ytd-channel-name a') && chrome && chrome.runtime) { + chrome.runtime.sendMessage({ + name: 'improvedtube-analyzer', + value: document.querySelector('ytd-channel-name a').innerText + }); + } + } +}); + + +/*------------------------------------------------------------------------------ +10.0 SETTINGS +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +10.1 IMPROVEDTUBE ICON +------------------------------------------------------------------------------*/ + +ImprovedTube.improvedtube_youtube_icon_wait = false; + +ImprovedTube.improvedtube_youtube_icon_resize = function() { + var iframe = document.querySelector('.it-btn__iframe'), + icon = document.querySelector('.it-btn__icon'); + + if (iframe && icon) { + var x = icon.getBoundingClientRect().x, + y = icon.getBoundingClientRect().y; + + if (x < window.innerWidth / 2) { + iframe.style.right = 'auto'; + iframe.style.left = '0px'; + } else { + iframe.style.right = '0px'; + iframe.style.left = 'auto'; + } + + if (y < window.innerHeight / 2) { + iframe.style.top = '50px'; + iframe.style.bottom = 'auto'; + + iframe.style.height = Math.min(500, window.innerHeight - Math.max(0, iframe.getBoundingClientRect().top) - 16) + 'px'; + } else { + iframe.style.top = 'auto'; + iframe.style.bottom = '50px'; + + iframe.style.height = Math.min(500, window.innerHeight - Math.max(0, window.innerHeight - iframe.getBoundingClientRect().y - iframe.getBoundingClientRect().height) - 16) + 'px'; + } + } +}; + +ImprovedTube.improvedtubeYoutubeIcon = function() { + if (window.self !== window.top) { + return false; + } + + if ( + ImprovedTube.storage.improvedtube_youtube_icon === 'disabled' && + document.querySelector('.it-btn') + ) { + document.querySelector('.it-btn').remove(); + } + + if (this.improvedtube_youtube_icon_wait === false) { + this.improvedtube_youtube_icon_wait = setInterval(function() { + var option = ImprovedTube.storage.improvedtube_youtube_icon, + parentNode, + referenceNode; + + if (option === 'header_left') { + parentNode = document.querySelector('ytd-masthead #start'); + referenceNode = document.querySelector('ytd-masthead #start #guide-button'); + } else if (option === 'header_right') { + parentNode = ( + document.querySelector('#end #buttons') || + document.querySelector('#yt-masthead-user') + ); + } else if (option === 'draggable') { + parentNode = document.body || document.querySelector('body'); + } else if (option === 'below_player') { + parentNode = ( + document.querySelector('.title.ytd-video-primary-info-renderer') || + document.querySelector('#watch-headline-title') + ); + } + + if (document.querySelector('.it-btn')) { + if (!parentNode.querySelector(':scope > .it-btn')) { + document.querySelector('.it-btn').remove(); + } else { + clearInterval(ImprovedTube.improvedtube_youtube_icon_wait); + + ImprovedTube.improvedtube_youtube_icon_wait = false; + + return false; + } + } + + if ( + ImprovedTube.isset(option) && + option !== 'disabled' && + parentNode && (option === 'header_left' ? referenceNode : true) + ) { + clearInterval(ImprovedTube.improvedtube_youtube_icon_wait); + + ImprovedTube.improvedtube_youtube_icon_wait = false; + + var button = document.createElement('div'); + + button.className = 'it-btn'; + button.innerHTML = '
'; + button.addEventListener('click', function() { + event.preventDefault(); + event.stopPropagation(); + + this.classList.toggle('it-btn--active'); + ImprovedTube.improvedtube_youtube_icon_resize(); + + return false; + }, true); + + if (option === 'draggable') { + var position = localStorage.getItem('IT_ICON'); + + if (ImprovedTube.isset(position)) { + position = JSON.parse(position); + + button.style.left = position.x + 'px'; + button.style.top = position.y + 'px'; + } + + function move(event) { + button.classList.add('it-btn--dragging'); + + if (event.clientX < window.innerWidth / 2) { + if (event.clientX - Number(button.dataset.x) >= 16) { + button.style.left = event.clientX - Number(button.dataset.x) + 'px'; + } else { + button.style.left = '16px'; + } + } else { + if (event.clientX + (48 + window.innerWidth - document.querySelector('body').offsetWidth) - Number(button.dataset.x) <= window.innerWidth) { + button.style.left = event.clientX - Number(button.dataset.x) + 'px'; + } else { + button.style.left = 'calc(100vw - ' + (48 + window.innerWidth - document.querySelector('body').offsetWidth) + 'px)'; + } + } + + if (event.clientY < window.innerHeight / 2) { + if (event.clientY - Number(button.dataset.y) >= 16) { + button.style.top = event.clientY - Number(button.dataset.y) + 'px'; + } else { + button.style.top = '16px'; + } + } else { + if (event.clientY + 48 - Number(button.dataset.y) <= window.innerHeight) { + button.style.top = event.clientY - Number(button.dataset.y) + 'px'; + } else { + button.style.top = 'calc(100vh - 48px)'; + } + } + + ImprovedTube.improvedtube_youtube_icon_resize(); + } + + button.addEventListener('mousedown', function(event) { + this.dataset.x = event.layerX; + this.dataset.y = event.layerY; + + window.addEventListener('mousemove', move); + }); + + window.addEventListener('mouseup', function() { + button.classList.remove('it-btn--dragging'); + + window.removeEventListener('mousemove', move); + + localStorage.setItem('IT_ICON', JSON.stringify({ + x: button.offsetLeft, + y: button.offsetTop + })); + + setTimeout(function() { + button.style.pointerEvents = ''; + }); + }); + } + + if (option === 'header_left') { + parentNode.insertBefore(button, referenceNode); + } else { + parentNode.appendChild(button); + } + + ImprovedTube.improvedtube_youtube_icon_resize(); + } + }, 250); + } +}; + + +/*----------------------------------------------------------------------------- +10.2 DELETE YOUTUBE COOKIES +-----------------------------------------------------------------------------*/ + +ImprovedTube.deleteYoutubeCookies = function() { + var cookies = document.cookie.split(';'); + + for (var i = 0, l = cookies.length; i < l; i++) { + var cookie = cookies[i], + eqPos = cookie.indexOf('='), + name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; + + document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; + } + + setTimeout(function() { + location.reload(); + }, 100); +}; + + +/*----------------------------------------------------------------------------- +10.3 YOUTUBE LANGUAGE +-----------------------------------------------------------------------------*/ + +ImprovedTube.youtubeLanguage = function() { + var pref = ImprovedTube.getCookieValueByName('PREF'), + hl = ImprovedTube.getParam(pref, 'hl'); + + if (hl) { + ImprovedTube.setCookie('PREF', pref.replace('hl=' + hl, 'hl=' + ImprovedTube.storage.youtube_language)); + } else { + ImprovedTube.setCookie('PREF', pref + '&hl=' + ImprovedTube.storage.youtube_language); + } + + setTimeout(function() { + location.reload(); + }, 100); +}; \ No newline at end of file From b3f74bbb09086cf7cd068484a55118ec22df2479 Mon Sep 17 00:00:00 2001 From: Adrian Date: Tue, 5 Jan 2021 05:12:06 +0100 Subject: [PATCH 0014/1224] Fix #328 by getting the correct channel id Blacklist only worked if URL contains "channel" and not "c". If a channel with "c" gets blocked then the video_id ends up being "https:" resulting in everything getting blocked --- youtube-scripts.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index c8646f18e..4fe8176a7 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -202,7 +202,7 @@ ImprovedTube.pageType = function() { type = 'home'; } else if (/\/watch\?/.test(href)) { type = 'video'; - } else if (/\/channel|user\//.test(href)) { + } else if (/\/channel|user|c\//.test(href)) { type = 'channel'; } @@ -2776,7 +2776,7 @@ ImprovedTube.blacklist = function() { event.stopPropagation(); try { - video_id = location.href.replace(/https:\/\/www.youtube.com\/(channel|user)\//g, '').replace(/\/(.)+/g, ''); + video_id = location.href.replace(/https:\/\/www.youtube.com\/(channel|user|c)\//g, '').replace(/\/(.)+/g, ''); document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { detail: { @@ -3193,4 +3193,4 @@ ImprovedTube.youtubeLanguage = function() { setTimeout(function() { location.reload(); }, 100); -}; \ No newline at end of file +}; From 7ae17099bdf2a8af7a113c9784f79a67b345b10d Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 5 Jan 2021 19:18:48 +0300 Subject: [PATCH 0015/1224] v3.120-testing.2 --- background.js | 4 + content-styles.css | 176 ++++++++++++++++++++++++++++++++++++- manifest.json | 4 +- page.js | 22 ++--- popup.js | 210 ++++++++++++++++++++++++++++++--------------- satus.js | 1 + youtube-scripts.js | 10 ++- 7 files changed, 341 insertions(+), 86 deletions(-) diff --git a/background.js b/background.js index 3e99e9e50..bf59fbb44 100644 --- a/background.js +++ b/background.js @@ -54,6 +54,10 @@ function getTranslations(path) { }); }); + xhr.addEventListener('error', function() { + getTranslations('_locales/en/messages.json'); + }); + xhr.open('GET', path, true); xhr.send(); } diff --git a/content-styles.css b/content-styles.css index 095aa73b3..72b6436e3 100644 --- a/content-styles.css +++ b/content-styles.css @@ -53,6 +53,8 @@ 6.0 Channel 6.1 Featured content 7.0 Shortcuts +8.0 Settings + 8.1 ImprovedTube icon on YouTube ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ @@ -375,7 +377,7 @@ html[it-header-position=hover_on_video_page][it-page-type='video'][it-search-foc transform: translateY(0%); } -html[it-header-position=static] #masthead-container +html[it-header-position=static] ytd-app:not([masthead-hidden_]) #masthead-container { position: relative; z-index: 999999999999; @@ -5951,4 +5953,174 @@ html[it-channel-hide-featured-content=true] #secondary.ytd-two-column-browse-res color: #0ff; text-shadow: 1px 1px 2px #000; -} \ No newline at end of file +} + + +/*------------------------------------------------------------------------------ +8.0 SETTINGS +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +8.1 IMPROVEDTUBE ICON ON YOUTUBE +------------------------------------------------------------------------------*/ + +html[it-improvedtube-youtube-icon='below_player'] .title.ytd-video-primary-info-renderer +{ + overflow: visible !important; +} + +html[it-improvedtube-youtube-icon='below_player'] h1.watch-title-container +{ + display: inline-block !important; +} + +html[it-improvedtube-youtube-icon='draggable'] .it-btn +{ + position: fixed; + z-index: 2147483645; + top: calc(100vh - 56px); + left: calc(100vw - 64px); +} + +.it-btn +{ + z-index: 2147483645; + + user-select: none; +} + +#container.ytd-masthead > .it-btn +{ + margin: 0 12px 0 0; +} + +.yt-masthead-logo-container > .it-btn +{ + float: left; + + margin: 0 12px 0 0; +} + +#end #buttons .it-btn +{ + margin: 3px 0 0 0; +} + +#yt-masthead-user > .it-btn +{ + float: right; + + margin: -2px 0 0 14px; +} + +.title.ytd-video-primary-info-renderer > .it-btn, +#watch-headline-title > .it-btn +{ + float: right; +} + +.it-btn__scrim +{ + position: fixed; + z-index: 2147483645; + top: 0; + left: 0; + + visibility: hidden; + + width: 100%; + height: 100vh; + + transition: 150ms; + pointer-events: none; + + opacity: 0; + background: #000; +} + +.it-btn__icon +{ + position: relative; + z-index: 2147483645; + + width: 32px; + height: 32px; + margin: 0 0 2px 0; + + cursor: pointer; + + border-radius: 50%; + background: #f00; +} + +.it-btn__icon::after +{ + position: absolute; + top: 9px; + left: 12px; + + display: block; + + content: ''; + + opacity: .9; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; + border-left: 11px solid #fff; +} + +.it-btn__iframe +{ + position: absolute; + z-index: 2147483645; + top: 50px; + + visibility: hidden; + + width: 320px; + max-width: 80vw; + height: 500px; + max-height: 80vh; + + transition: opacity 150ms; + pointer-events: none; + + opacity: 0; +} + +#end #buttons .it-btn__iframe, +#yt-masthead-user .it-btn__iframe +{ + right: 0; + left: auto; +} + +.it-btn.it-btn--active .it-btn__scrim +{ + visibility: visible; + + pointer-events: all; + + opacity: .5; +} + +.it-btn.it-btn--active .it-btn__iframe +{ + visibility: visible; + + pointer-events: all; + + opacity: 1; +} + +.it-btn--dragging, +.it-btn--dragging .it-btn__icon, +.it-btn--dragging .it-btn__iframe +{ + pointer-events: none !important; +} + +.it-btn--dragging .it-btn__iframe +{ + opacity: .75 !important; +} diff --git a/manifest.json b/manifest.json index ea033c4bd..6127e1996 100644 --- a/manifest.json +++ b/manifest.json @@ -3,8 +3,8 @@ "name": "*Improve YouTube!☕🧩 YouTube-&Video-Tools 🎞️🧪", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", - "version": "3.120", - "version_name": "3.120-testing", + "version": "3.121", + "version_name": "3.120-testing.1", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/page.js b/page.js index 67668705f..126c248b4 100644 --- a/page.js +++ b/page.js @@ -1,13 +1,13 @@ document.addEventListener('DOMContentLoaded', function() { - document.documentElement.innerHTML = [ - '', - '', - '', - '', - '', - 'ImprovedTube', - '', - '', - '' - ].join(''); + document.documentElement.innerHTML = ` + + + + + + ImprovedTube + + + + `; }); \ No newline at end of file diff --git a/popup.js b/popup.js index f9d7d680b..045c7b072 100644 --- a/popup.js +++ b/popup.js @@ -753,67 +753,11 @@ Menu.header.section_end.button_vert.onClickRender.settings = { label: 'importSettings', onclick: function() { - try { - var input = document.createElement('input'); - - input.type = 'file'; - - input.addEventListener('change', function() { - var file_reader = new FileReader(); - - file_reader.onload = function() { - var data = JSON.parse(this.result); - - for (var i in data) { - satus.storage.set(i, data[i]); - } - - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - label: 'successfullyImportedSettings' - }, - section: { - type: 'section', - class: 'controls', - style: { - 'justify-content': 'flex-end', - 'display': 'flex' - }, - - cancel: { - type: 'button', - label: 'cancel', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - ok: { - type: 'button', - label: 'OK', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - } - } - }); - }; - - file_reader.readAsText(this.files[0]); - }); - - input.click(); - } catch (err) { - chrome.runtime.sendMessage({ - name: 'dialog-error', - value: err + if (location.href.indexOf('/options.html') !== -1) { + importData(); + } else { + chrome.tabs.create({ + url: 'options.html?action=import' }); } } @@ -823,11 +767,13 @@ Menu.header.section_end.button_vert.onClickRender.settings = { label: 'exportSettings', onclick: function() { - chrome.runtime.sendMessage({ - name: 'download', - filename: 'improvedtube-settings.json', - value: satus.storage - }); + if (location.href.indexOf('/options.html') !== -1) { + exportData(); + } else { + chrome.tabs.create({ + url: 'options.html?action=export' + }); + } } }, reset_all_settings: { @@ -868,6 +814,8 @@ Menu.header.section_end.button_vert.onClickRender.settings = { satus.storage.clear(); + location.reload(); + scrim[scrim.length - 1].click(); } } @@ -3072,7 +3020,13 @@ satus.storage.import(function() { satus.locale.import(satus.storage.get('language'), function() { satus.modules.updateStorageKeys(Menu, function() { - satus.render(Menu, document.body); + if (location.href.indexOf('action=import') !== -1) { + importData(); + } else if (location.href.indexOf('action=export') !== -1) { + exportData(); + } else { + satus.render(Menu, document.body); + } }); }); }); @@ -3081,4 +3035,124 @@ chrome.storage.onChanged.addListener(function(changes) { for (var key in changes) { document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), changes[key].newValue); } -}); \ No newline at end of file +}); + + + + + +function importData() { + satus.render({ + type: 'dialog', + + select_file: { + type: 'button', + label: 'selectFile', + onclick: function() { + var input = document.createElement('input'); + + input.type = 'file'; + + input.addEventListener('change', function() { + var file_reader = new FileReader(); + + file_reader.onload = function() { + var data = JSON.parse(this.result); + + for (var key in data) { + satus.storage.set(key, data[key]); + } + + if (location.href.indexOf('action=import') !== -1) { + window.close(); + } else { + document.querySelector('.satus-dialog__scrim').click(); + + satus.render({ + type: 'dialog', + + message: { + type: 'text', + label: 'dataImportedSuccessfully' + }, + section: { + type: 'section', + class: 'controls', + + ok: { + type: 'button', + label: 'ok', + onclick: function() { + document.querySelector('.satus-dialog__scrim').click(); + } + } + } + }); + } + }; + + file_reader.readAsText(this.files[0]); + }); + + input.click(); + } + } + }); +} + +function exportData() { + var blob = new Blob([JSON.stringify(satus.storage.data)], { + type: 'application/json;charset=utf-8' + }); + + satus.render({ + type: 'dialog', + + export: { + type: 'button', + label: 'export', + onclick: function() { + chrome.permissions.request({ + permissions: ['downloads'] + }, function(granted) { + if (granted) { + chrome.downloads.download({ + url: URL.createObjectURL(blob), + filename: 'improvedtube.json', + saveAs: true + }, function() { + setTimeout(function() { + if (location.href.indexOf('action=export') !== -1) { + window.close(); + } else { + document.querySelector('.satus-dialog__scrim').click(); + + satus.render({ + type: 'dialog', + + message: { + type: 'text', + label: 'dataExportedSuccessfully' + }, + section: { + type: 'section', + class: 'controls', + + ok: { + type: 'button', + label: 'ok', + onclick: function() { + document.querySelector('.satus-dialog__scrim').click(); + } + } + } + }); + } + }, 100); + }); + } + }); + } + } + }); +} \ No newline at end of file diff --git a/satus.js b/satus.js index 0ade2fb0e..3ba5f1ed8 100644 --- a/satus.js +++ b/satus.js @@ -245,6 +245,7 @@ satus.locale.import = function(language, callback) { chrome.runtime.onMessage.addListener(listener); + console.log('_locales/' + language + '/messages.json'); chrome.runtime.sendMessage({ name: 'translation_request', path: '_locales/' + language + '/messages.json' diff --git a/youtube-scripts.js b/youtube-scripts.js index 4fe8176a7..04679f1b2 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -554,6 +554,7 @@ ImprovedTube.markWatchedVideos = function() { button.className = 'it-mark-watched' + (this.storage.watched && this.storage.watched[this.getParam(new URL(video_items[i].href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); button.innerHTML = ''; + button.addEventListener('click', function(event) { var watched = this.classList.contains('watched') ? false : true; @@ -584,14 +585,14 @@ ImprovedTube.markWatchedVideos = function() { if (watched === true) { ImprovedTube.storage.watched[video_id] = { - title: item.querySelector('a#video-title, .title, .yt-lockup-title > a').innerText + title: item.querySelector('#video-title').innerText }; document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { detail: { action: 'set', id: video_id, - title: item.querySelector('a#video-title, .title, .yt-lockup-title > a').innerText + title: item.querySelector('#video-title').innerText } })); } else if (ImprovedTube.storage.watched[video_id]) { @@ -604,7 +605,9 @@ ImprovedTube.markWatchedVideos = function() { } })); } - } catch (err) {} + } catch (err) { + console.log(err); + } }); video_items[i].appendChild(button); @@ -615,6 +618,7 @@ ImprovedTube.markWatchedVideos = function() { document.addEventListener('ImprovedTubeWatched', function(event) { if (chrome && chrome.runtime) { + console.log(event.detail); chrome.runtime.sendMessage({ name: 'improvedtube-watched', data: { From 03c479f10b7bf35a92e0066f3b3f4eac44353ff4 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 5 Jan 2021 19:20:12 +0300 Subject: [PATCH 0016/1224] v3.120-testing.2 --- background.js | 4 ++-- manifest.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/background.js b/background.js index bf59fbb44..d08514c7b 100644 --- a/background.js +++ b/background.js @@ -332,7 +332,7 @@ chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); var _gaq = _gaq || []; -/*(function() { +(function() { var ga = document.createElement('script'); _gaq.push(['_setAccount', 'UA-88354155-1']); @@ -343,7 +343,7 @@ var _gaq = _gaq || []; ga.src = 'https://ssl.google-analytics.com/ga.js'; document.body.appendChild(ga); -})();*/ +})(); diff --git a/manifest.json b/manifest.json index 6127e1996..a0ebabc8f 100644 --- a/manifest.json +++ b/manifest.json @@ -4,7 +4,7 @@ "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", "version": "3.121", - "version_name": "3.120-testing.1", + "version_name": "3.120-testing.2", "default_locale": "en", "icons": { "128": "assets/icons/128.png", @@ -83,4 +83,4 @@ "https://*.youtube.com/*" ], "update_url": "https://clients2.google.com/service/update2/crx" -} \ No newline at end of file +} From a950acd6a811d09339372eea9fe6c05fd3f03110 Mon Sep 17 00:00:00 2001 From: blind-reaper Date: Thu, 14 Jan 2021 14:16:59 +1100 Subject: [PATCH 0017/1224] Add feature to toggle HDR for ImprovedTube#694 --- _locales/ar/messages.json | 5 ++++- _locales/bn/messages.json | 5 ++++- _locales/de/messages.json | 5 ++++- _locales/el/messages.json | 5 ++++- _locales/en/messages.json | 5 ++++- _locales/es/messages.json | 5 ++++- _locales/fr/messages.json | 5 ++++- _locales/hin/messages.json | 5 ++++- _locales/id/messages.json | 3 +++ _locales/it/messages.json | 3 +++ _locales/ja/messages.json | 5 ++++- _locales/ko/messages.json | 5 ++++- _locales/nb_NO/messages.json | 5 ++++- _locales/nl/messages.json | 5 ++++- _locales/no/messages.json | 5 ++++- _locales/pt_BR/messages.json | 5 ++++- _locales/pt_PT/messages.json | 5 ++++- _locales/ru/messages.json | 5 ++++- _locales/sk/messages.json | 5 ++++- _locales/tr/messages.json | 5 ++++- _locales/zh_CN/messages.json | 5 ++++- _locales/zh_TW/messages.json | 5 ++++- popup.js | 7 ++++++- youtube-scripts.js | 17 ++++++++++++++++- 24 files changed, 108 insertions(+), 22 deletions(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 187c8409c..c0a3712ed 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "السماح لـ60إطار" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "دائما نشط" }, @@ -806,4 +809,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "h.264 يحد اليوتيوب من جودة الفيديو الى ١٠٨٠ لـ الترميز" } -} \ No newline at end of file +} diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 733d62819..b8af0ce9a 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "60 ফ্রেম প্রতি সেকেন্ অনুমতি দিনড" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "সর্বদা সক্রিয়" }, @@ -806,4 +809,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "ইউটিউব h.264 কোডেকের জন্য ভিডিও গুণমানকে 1080p এর মধ্যে সীমাবদ্ধ করে" } -} \ No newline at end of file +} diff --git a/_locales/de/messages.json b/_locales/de/messages.json index efe0f75fd..e4ea36577 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "60fps zulassen" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "Immer aktiv" }, @@ -806,4 +809,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube begrenzt die Qualität auf 1080p für den h.264 Codec" } -} \ No newline at end of file +} diff --git a/_locales/el/messages.json b/_locales/el/messages.json index c1c9dc02c..751babfcd 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "Επίτρεψε 60fps" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "Πάντοτε ενεργό" }, @@ -806,4 +809,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "Το YouTube περιορίζει την ποιότητα σε 1080p για το h.264 codec" } -} \ No newline at end of file +} diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 873cf124f..0aefe8387 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "Always active" }, @@ -809,4 +812,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube limits video quality to 1080p for h.264 codec" } -} \ No newline at end of file +} diff --git a/_locales/es/messages.json b/_locales/es/messages.json index c2ec8e487..04eb36e98 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "Permitir 60fps" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "Siempre activo" }, @@ -806,4 +809,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube limita calidad de video a 1080p para el codec h.264" } -} \ No newline at end of file +} diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 76019e5f4..adc8ea305 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "Jouer à 60 fps" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "Toujours activé" }, @@ -806,4 +809,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube limite la qualité vidéo à 1080p pour le codec h.264" } -} \ No newline at end of file +} diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index 633e8f335..ff1a90e87 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "60fps की अनुमति दें" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "हमेशा सक्रिय" }, @@ -806,4 +809,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "यूट्यूब h.264 कोडेक के लिए वीडियो की गुणवत्ता 1080 पी तक सीमित है" } -} \ No newline at end of file +} diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 75f9af70b..729034daf 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -41,6 +41,9 @@ "allow60fps": { "message": "Izinkan 60fps" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "Selalu aktif" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index f0c222222..c2136c40d 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "Permetti 60 fps" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "Sempre attivo" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 4961c702c..93c5bfc5b 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "60fpsを許可する" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "常に有効" }, @@ -806,4 +809,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube はH.264コーデックの画質を1080pに制限しています" } -} \ No newline at end of file +} diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index c3402b28a..6210eca6e 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "60에프피에스(fps) 허용" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "항상 활성화" }, @@ -803,4 +806,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "유튜브는 h.264 코덱에서 비디오 품질을 1080p로 제한합니다" } -} \ No newline at end of file +} diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 77df3b6de..0f19f6aba 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "Tillat 60 bps" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "Alltid aktiv" }, @@ -809,4 +812,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube begrenser videokvaliteten til 1080p for H.264-kodeket" } -} \ No newline at end of file +} diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index f752e7851..78ba32af6 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "60fps toestaan" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "Altijd actief" }, @@ -806,4 +809,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube limiteerd video kwaliteit tot 1080p voor h.264 codec" } -} \ No newline at end of file +} diff --git a/_locales/no/messages.json b/_locales/no/messages.json index b81b943ba..787fe420e 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "Tillat 60fps" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "Alltid aktiv" }, @@ -797,4 +800,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube begrenser videokvaliteten til 1080p for h.264-kodeken" } -} \ No newline at end of file +} diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 366c66f74..0d82d60b3 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "Permitir 60fps" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "Sempre ativo" }, @@ -806,4 +809,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "O YouTube limita o codec h.264 à resolução de 1080p" } -} \ No newline at end of file +} diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 2603e81ad..be6dbb13b 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "Permitir 60fps" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "Sempre ativo" }, @@ -806,4 +809,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "O YouTube limita a qualidade do video em 1080p para o codec h.264" } -} \ No newline at end of file +} diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 98968af4a..10f423f5a 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "Разрешить 60fps" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "Всегда активный" }, @@ -806,4 +809,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube ограничивает качетво видео до 1080p для кодека h.264" } -} \ No newline at end of file +} diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 89a2ae0f5..03a66fc5f 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "Povoliť 60fps" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "Vždy aktívne" }, @@ -806,4 +809,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube obmedzuje kvalitu videa na 1080p pri kodeku h.264" } -} \ No newline at end of file +} diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 323157a27..6d99c9d12 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "60fps'e izin ver" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "Sürekli etkin" }, @@ -806,4 +809,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube, h.264 codec bileşeni için video kalitesini 1080p ile sınırlar" } -} \ No newline at end of file +} diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 68b312438..7ceb3cc43 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "允许60FPS" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "始终启用" }, @@ -812,4 +815,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "采用 H.264 编解码时,YouTube 会将视频画质设为 1080p" } -} \ No newline at end of file +} diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 2d4c649d2..eda4ad739 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -38,6 +38,9 @@ "allow60fps": { "message": "允許 60fps" }, + "allowHDR": { + "message": "Allow HDR" + }, "alwaysActive": { "message": "始終有效" }, @@ -806,4 +809,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "使用 H.264 編碼時,YouTube 會將畫質限定為 1080p 內。" } -} \ No newline at end of file +} diff --git a/popup.js b/popup.js index 045c7b072..faa1f78ac 100644 --- a/popup.js +++ b/popup.js @@ -2209,6 +2209,11 @@ Menu.main.section.player = { label: 'allow60fps', value: true }, + player_HDR: { + type: 'switch', + label: 'allowHDR', + value: true + }, }, section_label__audio: { @@ -3155,4 +3160,4 @@ function exportData() { } } }); -} \ No newline at end of file +} diff --git a/youtube-scripts.js b/youtube-scripts.js index 04679f1b2..548037bf9 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -51,6 +51,7 @@ 4.15 Repeat 4.16 Rotate 4.17 Popup player + 4.18 Allow HDR 5.0 Playlist 5.1 Up next autoplay 5.2 Reverse @@ -178,6 +179,7 @@ ImprovedTube.DOMContentLoaded = function() { ImprovedTube.init = function() { this.playerH264(); this.player60fps(); + this.playerHDR(); this.pageType(); this.shortcuts(); this.DOMContentLoaded(); @@ -554,7 +556,7 @@ ImprovedTube.markWatchedVideos = function() { button.className = 'it-mark-watched' + (this.storage.watched && this.storage.watched[this.getParam(new URL(video_items[i].href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); button.innerHTML = ''; - + button.addEventListener('click', function(event) { var watched = this.classList.contains('watched') ? false : true; @@ -2145,6 +2147,19 @@ ImprovedTube.playerPopupButton = function() { } }; +/*------------------------------------------------------------------------------ +4.18 ALLOW HDR +------------------------------------------------------------------------------*/ + +ImprovedTube.playerHDR = function() { + if (this.storage.player_HDR === false) { + Object.defineProperty(window.screen, "pixelDepth", { + enumerable: true, + configurable: true, + value: 24 + }); + } +}; /*------------------------------------------------------------------------------ 5.0 PLAYLIST From 673066134503da1fe6303b9131b04f31925effc9 Mon Sep 17 00:00:00 2001 From: blind-reaper Date: Fri, 15 Jan 2021 14:48:08 +1100 Subject: [PATCH 0018/1224] Rename Allow HDR to Force SDR to avoid user confusion --- _locales/ar/messages.json | 4 ++-- _locales/bn/messages.json | 4 ++-- _locales/de/messages.json | 4 ++-- _locales/el/messages.json | 4 ++-- _locales/en/messages.json | 4 ++-- _locales/es/messages.json | 4 ++-- _locales/fr/messages.json | 4 ++-- _locales/hin/messages.json | 4 ++-- _locales/id/messages.json | 4 ++-- _locales/it/messages.json | 4 ++-- _locales/ja/messages.json | 4 ++-- _locales/ko/messages.json | 4 ++-- _locales/nb_NO/messages.json | 4 ++-- _locales/nl/messages.json | 4 ++-- _locales/no/messages.json | 4 ++-- _locales/pt_BR/messages.json | 4 ++-- _locales/pt_PT/messages.json | 4 ++-- _locales/ru/messages.json | 4 ++-- _locales/sk/messages.json | 4 ++-- _locales/tr/messages.json | 4 ++-- _locales/zh_CN/messages.json | 4 ++-- _locales/zh_TW/messages.json | 4 ++-- popup.js | 6 +++--- youtube-scripts.js | 10 +++++----- 24 files changed, 52 insertions(+), 52 deletions(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index c0a3712ed..78ee91488 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "السماح لـ60إطار" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "دائما نشط" diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index b8af0ce9a..b0fa624c6 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "60 ফ্রেম প্রতি সেকেন্ অনুমতি দিনড" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "সর্বদা সক্রিয়" diff --git a/_locales/de/messages.json b/_locales/de/messages.json index e4ea36577..597be54d1 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "60fps zulassen" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "Immer aktiv" diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 751babfcd..544f30646 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "Επίτρεψε 60fps" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "Πάντοτε ενεργό" diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 0aefe8387..f91275c80 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "Allow 60fps" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "Always active" diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 04eb36e98..8962590c1 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "Permitir 60fps" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "Siempre activo" diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index adc8ea305..706540a46 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "Jouer à 60 fps" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "Toujours activé" diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index ff1a90e87..1ee4d90de 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "60fps की अनुमति दें" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "हमेशा सक्रिय" diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 729034daf..28bc73670 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -41,8 +41,8 @@ "allow60fps": { "message": "Izinkan 60fps" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "Selalu aktif" diff --git a/_locales/it/messages.json b/_locales/it/messages.json index c2136c40d..279107b5d 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "Permetti 60 fps" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "Sempre attivo" diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 93c5bfc5b..e7c46d65a 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "60fpsを許可する" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "常に有効" diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 6210eca6e..f2c3b310d 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "60에프피에스(fps) 허용" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "항상 활성화" diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 0f19f6aba..718ca9566 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "Tillat 60 bps" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "Alltid aktiv" diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 78ba32af6..d414d68aa 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "60fps toestaan" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "Altijd actief" diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 787fe420e..45222e855 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "Tillat 60fps" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "Alltid aktiv" diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 0d82d60b3..1caf16d9d 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "Permitir 60fps" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "Sempre ativo" diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index be6dbb13b..ae0f1ab04 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "Permitir 60fps" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "Sempre ativo" diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 10f423f5a..8c037bd26 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "Разрешить 60fps" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "Всегда активный" diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 03a66fc5f..794ee18e7 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "Povoliť 60fps" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "Vždy aktívne" diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 6d99c9d12..058d4d5d3 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "60fps'e izin ver" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "Sürekli etkin" diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 7ceb3cc43..f4167c1bc 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "允许60FPS" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "始终启用" diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index eda4ad739..f1a795a8a 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -38,8 +38,8 @@ "allow60fps": { "message": "允許 60fps" }, - "allowHDR": { - "message": "Allow HDR" + "forceSDR": { + "message": "Force SDR" }, "alwaysActive": { "message": "始終有效" diff --git a/popup.js b/popup.js index faa1f78ac..7023434d3 100644 --- a/popup.js +++ b/popup.js @@ -2209,10 +2209,10 @@ Menu.main.section.player = { label: 'allow60fps', value: true }, - player_HDR: { + player_SDR: { type: 'switch', - label: 'allowHDR', - value: true + label: 'forceSDR', + value: false }, }, diff --git a/youtube-scripts.js b/youtube-scripts.js index 548037bf9..7f2777670 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -51,7 +51,7 @@ 4.15 Repeat 4.16 Rotate 4.17 Popup player - 4.18 Allow HDR + 4.18 Force SDR 5.0 Playlist 5.1 Up next autoplay 5.2 Reverse @@ -179,7 +179,7 @@ ImprovedTube.DOMContentLoaded = function() { ImprovedTube.init = function() { this.playerH264(); this.player60fps(); - this.playerHDR(); + this.playerSDR(); this.pageType(); this.shortcuts(); this.DOMContentLoaded(); @@ -2148,11 +2148,11 @@ ImprovedTube.playerPopupButton = function() { }; /*------------------------------------------------------------------------------ -4.18 ALLOW HDR +4.18 Force SDR ------------------------------------------------------------------------------*/ -ImprovedTube.playerHDR = function() { - if (this.storage.player_HDR === false) { +ImprovedTube.playerSDR = function() { + if (this.storage.player_SDR === true) { Object.defineProperty(window.screen, "pixelDepth", { enumerable: true, configurable: true, From 03b6689a22bc64ef37c4ad6bc656e225541937b2 Mon Sep 17 00:00:00 2001 From: Bhavy Date: Sat, 16 Jan 2021 22:06:03 +0530 Subject: [PATCH 0019/1224] Fix bug --- popup.css | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/popup.css b/popup.css index bedb800d3..25e92fc30 100644 --- a/popup.css +++ b/popup.css @@ -809,9 +809,7 @@ html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance=' html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder__label { - position: absolute; - bottom: 0; - + text-align: center; pointer-events: none; } @@ -1992,4 +1990,4 @@ html[it-improvedtube-home='list'] .satus-main .satus-button.satus-button--ad .satus-button--ad:hover:after { left: 100%; -} \ No newline at end of file +} From e7aa7c57fe24f303054d2702120d8b2b3b6b69cc Mon Sep 17 00:00:00 2001 From: axylen Date: Wed, 20 Jan 2021 22:42:55 +0300 Subject: [PATCH 0020/1224] Fix mini-player when browser is in dark mode --- content-styles.css | 1 + 1 file changed, 1 insertion(+) diff --git a/content-styles.css b/content-styles.css index 72b6436e3..a10521212 100644 --- a/content-styles.css +++ b/content-styles.css @@ -2539,6 +2539,7 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu -webkit-filter: grayscale(1) brightness(4); filter: grayscale(1) brightness(4); } +} [it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { From 7a82b4ca3c464af2e9340340f9c1e207fae4e9f1 Mon Sep 17 00:00:00 2001 From: axylen Date: Wed, 20 Jan 2021 22:45:31 +0300 Subject: [PATCH 0021/1224] Dispatch Resize event on mini player resize --- youtube-scripts.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/youtube-scripts.js b/youtube-scripts.js index 04679f1b2..e56ac9bc2 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1732,6 +1732,8 @@ ImprovedTube.mini_player__resize_mouseUp = function(event) { ImprovedTube.mini_player__width = bcr.width; ImprovedTube.mini_player__height = bcr.height; + window.dispatchEvent(new Event('resize')); + var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; strg.width = ImprovedTube.mini_player__width; From 11d3d0fe55659ae497448f75004d390e74be174f Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 27 Jan 2021 21:56:29 +0300 Subject: [PATCH 0022/1224] Some changes --- background.js | 4 +- content-scripts.js | 3 +- content-styles.css | 43 +++++++++++++++++++++ manifest.json | 6 +-- youtube-scripts.js | 93 +++++++++++++++++++++++++++++----------------- 5 files changed, 109 insertions(+), 40 deletions(-) diff --git a/background.js b/background.js index d08514c7b..bf59fbb44 100644 --- a/background.js +++ b/background.js @@ -332,7 +332,7 @@ chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); var _gaq = _gaq || []; -(function() { +/*(function() { var ga = document.createElement('script'); _gaq.push(['_setAccount', 'UA-88354155-1']); @@ -343,7 +343,7 @@ var _gaq = _gaq || []; ga.src = 'https://ssl.google-analytics.com/ga.js'; document.body.appendChild(ga); -})(); +})();*/ diff --git a/content-scripts.js b/content-scripts.js index 92921d8cf..77574bb05 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -83,7 +83,8 @@ function attributes(items) { 'plain-theme': true, 'black-theme': true, 'player-crop-chapter-titles': true, - 'player-ads': true + 'player-ads': true, + 'improvedtube-youtube-icon': true }; for (var key in items) { diff --git a/content-styles.css b/content-styles.css index 72b6436e3..e94b5a49d 100644 --- a/content-styles.css +++ b/content-styles.css @@ -55,6 +55,7 @@ 7.0 Shortcuts 8.0 Settings 8.1 ImprovedTube icon on YouTube +9.0 Blacklist ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ @@ -6124,3 +6125,45 @@ html[it-improvedtube-youtube-icon='draggable'] .it-btn { opacity: .75 !important; } + + +/*------------------------------------------------------------------------------ +9.0 BLACKLIST +------------------------------------------------------------------------------*/ + +.improvedtube-add-to-blacklist +{ + font-size: 32px; + line-height: 26px; + + position: absolute; + z-index: 999; + top: 4px; + left: 4px; + + visibility: hidden; + overflow: hidden; + + width: 32px; + height: 32px; + + cursor: pointer; + transition: transform .15s; + transform: scale(1); + text-align: center; + + opacity: .7; + color: #fff; + border-radius: 2px; + background: #000; +} + +*:hover > .improvedtube-add-to-blacklist +{ + visibility: visible; +} + +.improvedtube-add-to-blacklist:hover +{ + transform: scale(1.25); +} \ No newline at end of file diff --git a/manifest.json b/manifest.json index a0ebabc8f..949d2abd7 100644 --- a/manifest.json +++ b/manifest.json @@ -3,8 +3,8 @@ "name": "*Improve YouTube!☕🧩 YouTube-&Video-Tools 🎞️🧪", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", - "version": "3.121", - "version_name": "3.120-testing.2", + "version": "3.122", + "version_name": "3.120-testing.3", "default_locale": "en", "icons": { "128": "assets/icons/128.png", @@ -83,4 +83,4 @@ "https://*.youtube.com/*" ], "update_url": "https://clients2.google.com/service/update2/crx" -} +} \ No newline at end of file diff --git a/youtube-scripts.js b/youtube-scripts.js index 04679f1b2..4fcabe3fc 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -184,6 +184,10 @@ ImprovedTube.init = function() { this.onplay(); this.onkeydown(); this.onmousedown(); + + window.addEventListener('load', function() { + ImprovedTube.hdThumbnails(); + }); }; @@ -554,7 +558,7 @@ ImprovedTube.markWatchedVideos = function() { button.className = 'it-mark-watched' + (this.storage.watched && this.storage.watched[this.getParam(new URL(video_items[i].href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); button.innerHTML = ''; - + button.addEventListener('click', function(event) { var watched = this.classList.contains('watched') ? false : true; @@ -2181,41 +2185,36 @@ ImprovedTube.playlistUpNextAutoplay = function() { ImprovedTube.playlistReverseUrl = false; ImprovedTube.playlistReversed = false; -ImprovedTube.playlistReverseNextPrev = function() { - var ytd_watch = document.querySelector('ytd-watch-flexy'); +ImprovedTube.playlistReverse = function() { + if (this.playlistReverseUrl !== location.href && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer') && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #playlist-action-menu')) { + var button = document.querySelector('#it-reverse-playlist'); - for (var i = 0, l = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.sets.length; i < l; i++) { - var autoplay = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.sets; + this.playlistReverseUrl = location.href; - if (autoplay[i].previousButtonVideo && autoplay[i].nextButtonVideo) { - autoplay[i].autoplayVideo = autoplay[i].previousButtonVideo; - autoplay[i].previousButtonVideo = autoplay[i].nextButtonVideo; - autoplay[i].nextButtonVideo = autoplay[i].autoplayVideo; - } - } + if (this.storage.playlist_reverse === true) { + if (ImprovedTube.playlistReversed === true) { + setTimeout(function() { + ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); - for (var i = 0, l = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.modifiedSets.length; i < l; i++) { - var autoplay = ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay.modifiedSets; + setTimeout(function() { + var next_button = document.querySelector('.ytp-next-button'); - if (autoplay[i].previousButtonVideo && autoplay[i].nextButtonVideo) { - autoplay[i].autoplayVideo = autoplay[i].previousButtonVideo; - autoplay[i].previousButtonVideo = autoplay[i].nextButtonVideo; - autoplay[i].nextButtonVideo = autoplay[i].autoplayVideo; - } - } + next_button.addEventListener('click', function(event) { + event.preventDefault(); + event.stopPropagation(); - ytd_watch.updatePageData_(JSON.parse(JSON.stringify(ytd_watch.data))); + return false; + }, true); - document.querySelector('yt-navigation-manager').updatePlayer_(null, ytd_watch.data.contents.twoColumnWatchNextResults.autoplay.autoplay, null, ytd_watch.data.contents.twoColumnWatchNextResults.playlist); -}; + next_button.href = document.querySelector('#playlist [selected] + * a').href; + next_button.dataset.preview = document.querySelector('#playlist [selected] + * img').src; + next_button.dataset.tooltipText = document.querySelector('#playlist [selected] + * #video-title').innerText; -ImprovedTube.playlistReverse = function() { - if (this.playlistReverseUrl !== location.href && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer') && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #playlist-action-menu')) { - var button = document.querySelector('#it-reverse-playlist'); - - this.playlistReverseUrl = location.href; + console.log('reverse'); + }, 1000); + }, 500); + } - if (this.storage.playlist_reverse === true) { if (!button) { button = document.createElement('button'); @@ -2231,7 +2230,20 @@ ImprovedTube.playlistReverse = function() { ImprovedTube.playlistReversed = !ImprovedTube.playlistReversed; - ImprovedTube.playlistReverseNextPrev(); + setTimeout(function() { + var next_button = document.querySelector('.ytp-next-button'); + + next_button.addEventListener('click', function(event) { + event.preventDefault(); + + return false; + }, true); + + next_button.href = document.querySelector('#playlist [selected] + * a').href; + next_button.dataset.preview = document.querySelector('#playlist [selected] + * img').src; + next_button.dataset.tooltipText = document.querySelector('#playlist [selected] + * #video-title').innerText; + }, 500); + ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); return false; @@ -3073,6 +3085,19 @@ ImprovedTube.improvedtubeYoutubeIcon = function() { event.preventDefault(); event.stopPropagation(); + button.classList.remove('it-btn--dragging'); + + window.removeEventListener('mousemove', move); + + localStorage.setItem('IT_ICON', JSON.stringify({ + x: button.offsetLeft, + y: button.offsetTop + })); + + setTimeout(function() { + button.style.pointerEvents = ''; + }); + this.classList.toggle('it-btn--active'); ImprovedTube.improvedtube_youtube_icon_resize(); @@ -3107,16 +3132,16 @@ ImprovedTube.improvedtubeYoutubeIcon = function() { } if (event.clientY < window.innerHeight / 2) { - if (event.clientY - Number(button.dataset.y) >= 16) { + if (event.clientY - Number(button.dataset.y) >= 12) { button.style.top = event.clientY - Number(button.dataset.y) + 'px'; } else { - button.style.top = '16px'; + button.style.top = '12px'; } } else { - if (event.clientY + 48 - Number(button.dataset.y) <= window.innerHeight) { + if (event.clientY + 44 - Number(button.dataset.y) <= window.innerHeight) { button.style.top = event.clientY - Number(button.dataset.y) + 'px'; } else { - button.style.top = 'calc(100vh - 48px)'; + button.style.top = 'calc(100vh - 44px)'; } } @@ -3197,4 +3222,4 @@ ImprovedTube.youtubeLanguage = function() { setTimeout(function() { location.reload(); }, 100); -}; +}; \ No newline at end of file From 41227bf817987c18a309399bf60dfad1ed339afa Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 27 Jan 2021 23:16:31 +0300 Subject: [PATCH 0023/1224] v3.120-testing.3 --- popup.css | 1 + popup.js | 38 +++++++++++++++++++++++--------------- satus.js | 2 +- 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/popup.css b/popup.css index 25e92fc30..85e281d5d 100644 --- a/popup.css +++ b/popup.css @@ -811,6 +811,7 @@ html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance=' { text-align: center; pointer-events: none; + line-height: 12px; } html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder:focus, diff --git a/popup.js b/popup.js index 045c7b072..5dfd92284 100644 --- a/popup.js +++ b/popup.js @@ -2981,8 +2981,20 @@ function themeChange(event) { } } -satus.storage.import(function() { - for (var key in satus.storage.data) { +satus.storage.import(function(items) { + satus.locale.import(satus.storage.get('language'), function() { + satus.modules.updateStorageKeys(Menu, function() { + if (location.href.indexOf('action=import') !== -1) { + importData(); + } else if (location.href.indexOf('action=export') !== -1) { + exportData(); + } else { + satus.render(Menu, document.body); + } + }); + }); + + for (var key in satus.storage) { document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), items[key]); } @@ -3017,18 +3029,6 @@ satus.storage.import(function() { if (satus.storage.get('black_theme') === true) { document.documentElement.setAttribute('theme', 'black'); } - - satus.locale.import(satus.storage.get('language'), function() { - satus.modules.updateStorageKeys(Menu, function() { - if (location.href.indexOf('action=import') !== -1) { - importData(); - } else if (location.href.indexOf('action=export') !== -1) { - exportData(); - } else { - satus.render(Menu, document.body); - } - }); - }); }); chrome.storage.onChanged.addListener(function(changes) { @@ -3101,7 +3101,15 @@ function importData() { } function exportData() { - var blob = new Blob([JSON.stringify(satus.storage.data)], { + var data = {}; + + for (var key in satus.storage) { + if (typeof satus.storage[key] !== 'function') { + data[key] = satus.storage[key]; + } + } + + var blob = new Blob([JSON.stringify(data)], { type: 'application/json;charset=utf-8' }); diff --git a/satus.js b/satus.js index 3ba5f1ed8..beea610c4 100644 --- a/satus.js +++ b/satus.js @@ -159,7 +159,7 @@ satus.storage.import = function(callback) { } if (callback) { - callback(); + callback(items); } }); }; From 162f9eac2da6972f028362ae1914353ee174aeeb Mon Sep 17 00:00:00 2001 From: Abdulrahman <62434076+Raayib@users.noreply.github.com> Date: Thu, 4 Feb 2021 01:20:09 +0300 Subject: [PATCH 0024/1224] Update messages.json --- _locales/ar/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 78ee91488..40600394c 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -39,7 +39,7 @@ "message": "السماح لـ60إطار" }, "forceSDR": { - "message": "Force SDR" + "message": "SDR فرض" }, "alwaysActive": { "message": "دائما نشط" From 17332f7df929f025d17a41122d06e541e81691f3 Mon Sep 17 00:00:00 2001 From: urfausto <31393590+urfausto@users.noreply.github.com> Date: Tue, 9 Feb 2021 17:22:01 +0100 Subject: [PATCH 0025/1224] Update messages.json --- _locales/it/messages.json | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 279107b5d..e4b3f8183 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -39,7 +39,7 @@ "message": "Permetti 60 fps" }, "forceSDR": { - "message": "Force SDR" + "message": "Forza SDR" }, "alwaysActive": { "message": "Sempre attivo" @@ -195,22 +195,22 @@ "message": "Albeggio" }, "decreasePlaybackSpeed": { - "message": "Riduci velocità riproduzione" + "message": "Riduci velocità di riproduzione" }, "decreaseVolume": { - "message": "Riduci volume" + "message": "Diminuisci volume" }, "deepOrange": { - "message": "Arancione profondo" + "message": "Arancione intenso" }, "deepPurple": { - "message": "Viola profondo" + "message": "Viola intenso" }, "defaultChannelTab": { - "message": "Scheda predefinita canale" + "message": "Scheda predefinita" }, "deleteYoutubeCookies": { - "message": "Cancella cookie di YouTube" + "message": "Cancella cookie YouTube" }, "description": { "message": "Descrizione" @@ -222,7 +222,7 @@ "message": "Dettagli" }, "developerOptions": { - "message": "Opzioni per gli sviluppatori" + "message": "Opzioni per sviluppatori" }, "device": { "message": "Dispositivo" @@ -234,7 +234,7 @@ "message": "Disabilitato" }, "dislike": { - "message": "Non gradire" + "message": "Non mi piace" }, "donate": { "message": "Donazione" @@ -285,7 +285,7 @@ "message": "Piè di pagina" }, "forcedPlaybackSpeed": { - "message": "Velocità riproduzione forzata" + "message": "Velocità di riproduzione forzata" }, "forcedTheaterMode": { "message": "Modalità cinema forzata" @@ -294,7 +294,7 @@ "message": "Volume forzato" }, "foundABug": { - "message": "Trovato un bug?" + "message": "Trovato un difetto?" }, "fullWindow": { "message": "Finestra intera" @@ -348,7 +348,7 @@ "message": "Nascondi contenuti in primo piano" }, "hideFooter": { - "message": "Nascondi footer" + "message": "Nascondi piè di pagina" }, "hideGradientBottom": { "message": "Nascondi fondo gradiente" @@ -405,7 +405,7 @@ "message": "Migliora logo YouTube" }, "increasePlaybackSpeed": { - "message": "Aumenta velocità riproduzione" + "message": "Incrementa velocità di riproduzione" }, "increaseVolume": { "message": "Aumenta volume" @@ -528,7 +528,7 @@ "message": "Piattaforma" }, "playbackSpeed": { - "message": "Velocità riproduzione" + "message": "Velocità di riproduzione" }, "player": { "message": "Lettore" @@ -711,10 +711,10 @@ "message": "Questo rimuoverà tutti i cookie di YouTube" }, "thisWillResetAllSettings": { - "message": "Questo rimuoverà tutte le impostazioni" + "message": "Questo reimposterà l'intera configurazione" }, "thisWillResetAllShortcuts": { - "message": "Questo Reimposterà tutte le scorciatoie" + "message": "Questo reimposterà tutte le scorciatoie" }, "thumbnails": { "message": "Miniature" @@ -744,7 +744,7 @@ "message": "Sfondo trasparente" }, "trending": { - "message": "Di tendenza" + "message": "In tendenza" }, "tryToReloadThePage": { "message": "Provare a ricaricare la pagina" From 24427c9ef97a1ed398dd7150086b26c79ed480cf Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 11 Feb 2021 21:02:39 +0300 Subject: [PATCH 0026/1224] v3.120-pre-stable --- content-styles.css | 2773 +++++++++++++++++++------------------------- manifest.json | 4 +- youtube-scripts.js | 89 +- 3 files changed, 1223 insertions(+), 1643 deletions(-) diff --git a/content-styles.css b/content-styles.css index d96f0ccd9..4f337ae48 100644 --- a/content-styles.css +++ b/content-styles.css @@ -15,15 +15,15 @@ 2.1.2 Improve logo 2.1.3 Hide right buttons 2.2 Player - 2.2.1 Hide annotations - 2.2.2 Hide cards - 2.2.3 Show cards on mouse hover - 2.2.4 Player size - 2.2.5 Player color - 2.2.6 Transparent background - 2.2.7 Hide endscreen - 2.2.8 Hide "Scroll for details" - 2.2.9 Always show progress bar + 2.2.1 Hide annotations + 2.2.2 Hide cards + 2.2.3 Show cards on mouse hover + 2.2.4 Player size + 2.2.5 Player color + 2.2.6 Transparent background + 2.2.7 Hide endscreen + 2.2.8 Hide "Scroll for details" + 2.2.9 Always show progress bar 2.3 Sidebar 2.3.1 Livachat 2.3.2 Hide playlist @@ -58,62 +58,52 @@ 9.0 Blacklist ------------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------------ 1.0 GENERAL ------------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------------ 1.1 YOUTUBE HOME PAGE ------------------------------------------------------------------------------*/ html[it-page-type=home][it-youtube-home-page=search], html[it-page-type=home][it-youtube-home-page=search] app-drawer[opened], -html[it-page-type=home][it-youtube-home-page=search] #appbar-guide-menu -{ +html[it-page-type=home][it-youtube-home-page=search] #appbar-guide-menu { visibility: hidden; overflow: hidden; - width: 100vw; height: 100vh; - pointer-events: none; } html[it-page-type=home][it-youtube-home-page=search] ytd-masthead ytd-searchbox, -html[it-page-type=home][it-youtube-home-page=search] #yt-masthead-content -{ +html[it-page-type=home][it-youtube-home-page=search] #yt-masthead-content { position: fixed; z-index: 99999; top: 0; left: 0; - display: flex; visibility: visible; - width: 100vw; height: 100vh; margin: 0; padding: 0; - pointer-events: all; - justify-content: center; align-items: center; } -html[it-page-type=home][it-youtube-home-page=search] ytd-searchbox > form -{ +html[it-page-type=home][it-youtube-home-page=search] ytd-searchbox>form { width: 100%; max-width: 768px; padding: 16px 32px; } -html[it-page-type=home][it-youtube-home-page=search] .gstl_50.sbdd_a -{ +html[it-page-type=home][it-youtube-home-page=search] .gstl_50.sbdd_a { z-index: 99999; - visibility: visible; - pointer-events: all; } @@ -122,38 +112,30 @@ html[it-page-type=home][it-youtube-home-page=search] .gstl_50.sbdd_a 1.2 COLLAPSE OF SUBSCRIPTION SECTION ------------------------------------------------------------------------------*/ -ytd-item-section-renderer .grid-subheader + #contents -{ +ytd-item-section-renderer .grid-subheader+#contents { overflow: hidden; } -ytd-item-section-renderer.it-section-collapsed .grid-subheader + #contents -{ +ytd-item-section-renderer.it-section-collapsed .grid-subheader+#contents { height: 0 !important; } -ytd-item-section-renderer .it-section-collapse -{ +ytd-item-section-renderer .it-section-collapse { cursor: pointer; } -ytd-item-section-renderer .it-section-collapse svg -{ +ytd-item-section-renderer .it-section-collapse svg { width: 24px; height: 24px; - transition: transform 150ms; - fill: var(--ytd-menu-renderer-button-color, var(--yt-spec-icon-inactive)); } -ytd-item-section-renderer .it-section-collapse:hover svg -{ +ytd-item-section-renderer .it-section-collapse:hover svg { fill: var(--yt-spec-icon-active-other); } -ytd-item-section-renderer.it-section-collapsed .it-section-collapse svg -{ +ytd-item-section-renderer.it-section-collapsed .it-section-collapse svg { transform: rotate(180deg); } @@ -162,63 +144,49 @@ ytd-item-section-renderer.it-section-collapsed .it-section-collapse svg 1.3 ADD "SCROLL TO TOP" ------------------------------------------------------------------------------*/ -#it-scroll-to-top -{ +#it-scroll-to-top { position: fixed; z-index: 999; right: 32px; bottom: 32px; - display: flex; visibility: hidden; - box-sizing: border-box; width: 56px; height: 56px; - cursor: pointer; transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; transform: translateY(88px); pointer-events: none; - opacity: 0; border-radius: 50%; background: linear-gradient(135deg, #f8d266, #f17953); - box-shadow: 0 1px 1px 1px rgba(230, 109, 70, .7), 0 3px 5px rgba(0,0,0,.35); - + box-shadow: 0 1px 1px 1px rgba(230, 109, 70, .7), 0 3px 5px rgba(0, 0, 0, .35); justify-content: center; align-items: center; } -html[it-show-scroll-to-top=true] #it-scroll-to-top -{ +html[it-show-scroll-to-top=true] #it-scroll-to-top { visibility: visible; - transform: translateY(0px); pointer-events: all; - opacity: 1; } html:not([it-red-popup-theme]) #it-scroll-to-top, -html[it-red-popup-theme=true] #it-scroll-to-top -{ +html[it-red-popup-theme=true] #it-scroll-to-top { background: #f73030; - box-shadow: 0 3px 5px rgba(0,0,0,.35); + box-shadow: 0 3px 5px rgba(0, 0, 0, .35); } -#it-scroll-to-top > svg -{ +#it-scroll-to-top>svg { width: 24px; - fill: #fff; } -html[it-show-scroll-to-top=true] #it-scroll-to-top:hover -{ +html[it-show-scroll-to-top=true] #it-scroll-to-top:hover { transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; transform: translateY(4px) scale(.975); - box-shadow: 0 5px 5px -3px rgba(0, 0, 0, .2), 0 8px 10px 1px rgba(0, 0, 0, .14), 0 3px 14px 2px rgba(0, 0, 0, .12); } @@ -228,9 +196,8 @@ html[it-show-scroll-to-top=true] #it-scroll-to-top:hover ------------------------------------------------------------------------------*/ html[it-remove-related-search-results=true] ytd-horizontal-card-list-renderer.style-scope.ytd-item-section-renderer, -html[it-remove-related-search-results=true] li > div.feed-item-container.browse-list-item-container.yt-section-hover-container.compact-shelf.shelf-item.branded-page-box, -html[it-remove-related-search-results=true] li > div.search-refinements -{ +html[it-remove-related-search-results=true] li>div.feed-item-container.browse-list-item-container.yt-section-hover-container.compact-shelf.shelf-item.branded-page-box, +html[it-remove-related-search-results=true] li>div.search-refinements { display: none; } @@ -239,46 +206,36 @@ html[it-remove-related-search-results=true] li > div.search-refinements 1.5 MARK WATCHED VIDEOS ------------------------------------------------------------------------------*/ -.it-mark-watched -{ +.it-mark-watched { position: absolute; z-index: 999; bottom: 4px; left: 4px; - visibility: hidden; overflow: hidden; - width: 28px; height: 28px; - cursor: pointer; text-align: center; - color: #fff; border-radius: 2px; - background: rgba(0,0,0,.8); + background: rgba(0, 0, 0, .8); } -.it-mark-watched svg -{ +.it-mark-watched svg { position: absolute; top: 4px; left: 4px; - width: 20px; height: 20px; - fill: var(--ytd-menu-renderer-button-color, var(--yt-spec-icon-inactive, #aaa)); } -*:hover > .it-mark-watched -{ +*:hover>.it-mark-watched { visibility: visible; } -.it-mark-watched.watched svg -{ +.it-mark-watched.watched svg { fill: var(--yt-spec-icon-active-other, #fff); } @@ -289,8 +246,7 @@ html[it-remove-related-search-results=true] li > div.search-refinements html[it-squared-user-images=true] #avatar.ytd-shelf-renderer, html[it-squared-user-images=true] yt-img-shadow, -html[it-squared-user-images=true] #yt-masthead-user .yt-masthead-user-icon -{ +html[it-squared-user-images=true] #yt-masthead-user .yt-masthead-user-icon { border-radius: unset !important; } @@ -301,8 +257,7 @@ html[it-squared-user-images=true] #yt-masthead-user .yt-masthead-user-icon html[it-hide-animated-thumbnails=true] #mouseover-overlay, html[it-hide-animated-thumbnails=true] .mouseover-play, -html[it-hide-animated-thumbnails=true] .mouseover-img -{ +html[it-hide-animated-thumbnails=true] .mouseover-img { visibility: hidden !important; } @@ -311,35 +266,34 @@ html[it-hide-animated-thumbnails=true] .mouseover-img 2.0 APPEARANCE -------------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------------- 2.1 HEADER -------------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------------- 2.1.1 POSITION -------------------------------------------------------------------------------*/ -html[it-header-position=hidden]:not([it-search-focus=true]) #masthead-container -{ +html[it-header-position=hidden]:not([it-search-focus=true]) #masthead-container { transform: translateY(-100%); } html[it-header-position=hidden] app-drawer#guide #guide-spacer, -html[it-header-position=hidden] ytd-app > ytd-masthead, +html[it-header-position=hidden] ytd-app>ytd-masthead, html[it-header-position=hover] app-drawer#guide #guide-spacer, html[it-header-position=static] app-drawer#guide #guide-spacer, html[it-header-position=hidden_on_video_page][it-page-type=video] #masthead-container, html[it-header-position=hidden_on_video_page][it-page-type=video] app-drawer#guide #guide-spacer, -html[it-header-position=hover_on_video_page][it-page-type=video] app-drawer#guide #guide-spacer -{ +html[it-header-position=hover_on_video_page][it-page-type=video] app-drawer#guide #guide-spacer { display: none; } -html[it-header-position=hover] ytd-app > ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app > ytd-masthead, +html[it-header-position=hover] ytd-app>ytd-masthead, +html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app>ytd-masthead, html[it-header-position=hover] #masthead-container, -html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-container -{ +html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-container { z-index: 2147483647; } @@ -356,16 +310,14 @@ html[it-header-position=hover_on_video_page][it-page-type='video'] app-header#he html[it-header-position=hover] #appbar-guide-menu, html[it-header-position=hover_on_video_page][it-page-type='video'] #appbar-guide-menu, html[it-header-position=static] ytd-page-manager#page-manager, -html[it-header-position=static] #appbar-guide-menu -{ +html[it-header-position=static] #appbar-guide-menu { margin-top: 0; } -html[it-header-position=hover] ytd-app > ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) ytd-app > ytd-masthead, +html[it-header-position=hover] ytd-app>ytd-masthead, +html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) ytd-app>ytd-masthead, html[it-header-position=hover]:not([it-improvedtube-search=true]) #masthead-container, -html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) #masthead-container -{ +html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) #masthead-container { transition: transform 250ms; transform: translateY(-75%); } @@ -373,13 +325,11 @@ html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-impro html[it-header-position=hover] #masthead-container:hover, html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-container:hover, html[it-header-position=hover][it-search-focus=true] #masthead-container, -html[it-header-position=hover_on_video_page][it-page-type='video'][it-search-focus=true] #masthead-container -{ +html[it-header-position=hover_on_video_page][it-page-type='video'][it-search-focus=true] #masthead-container { transform: translateY(0%); } -html[it-header-position=static] ytd-app:not([masthead-hidden_]) #masthead-container -{ +html[it-header-position=static] ytd-app:not([masthead-hidden_]) #masthead-container { position: relative; z-index: 999999999999; } @@ -387,8 +337,7 @@ html[it-header-position=static] ytd-app:not([masthead-hidden_]) #masthead-contai html[it-header-position=hover] ytd-app[masthead-hidden_] ytd-masthead, html[it-header-position=hover] ytd-app[scrolling_] ytd-masthead, html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app[masthead-hidden_] ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app[scrolling_] ytd-masthead -{ +html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app[scrolling_] ytd-masthead { display: none; } @@ -397,23 +346,19 @@ html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app[scrol 2.1.2 IMPROVE LOGO ------------------------------------------------------------------------------*/ -html[it-header-improve-logo=true] ytd-topbar-logo-renderer#logo -{ +html[it-header-improve-logo=true] ytd-topbar-logo-renderer#logo { filter: grayscale(1); } -html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer path[fill*='#FF0000'] -{ +html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer path[fill*='#FF0000'] { fill: #282828; } -html[it-header-improve-logo=true][dark] g.ytd-topbar-logo-renderer path[fill*='#FF0000'] -{ +html[it-header-improve-logo=true][dark] g.ytd-topbar-logo-renderer path[fill*='#FF0000'] { fill: #fff; } -html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer polygon[fill*='#FFFFFF'] -{ +html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer polygon[fill*='#FFFFFF'] { fill: #232323; } @@ -422,10 +367,8 @@ html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer polygon[fill*='#FFF 2.1.3 HIDE RIGHT BUTTONS ------------------------------------------------------------------------------*/ -html[it-header-hide-right-buttons=true] ytd-masthead#masthead #container #end -{ +html[it-header-hide-right-buttons=true] ytd-masthead#masthead #container #end { visibility: hidden; - pointer-events: none; } @@ -434,14 +377,14 @@ html[it-header-hide-right-buttons=true] ytd-masthead#masthead #container #end 2.2 PLAYER ------------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------------ 2.2.1 HIDE ANNOTATIONS ------------------------------------------------------------------------------*/ html[it-player-hide-annotations=true] .annotation, html[it-player-hide-annotations=true] .annotation-type-text, -html[it-player-hide-annotations=true] .annotation-shape -{ +html[it-player-hide-annotations=true] .annotation-shape { display: none; } @@ -453,8 +396,7 @@ html[it-player-hide-annotations=true] .annotation-shape html[it-player-hide-cards=true] .ytp-ce-element, html[it-player-hide-cards=true] .ytp-ce-video, html[it-player-hide-cards=true] .ytp-cards-button, -html[it-player-hide-cards=true] .ytp-cards-teaser -{ +html[it-player-hide-cards=true] .ytp-cards-teaser { display: none; } @@ -466,16 +408,14 @@ html[it-player-hide-cards=true] .ytp-cards-teaser html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-ce-element, html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-ce-video, html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-cards-button, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-cards-teaser -{ +html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-cards-teaser { display: none; } html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-ce-element, html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-ce-video, html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-cards-button, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-cards-teaser -{ +html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-cards-teaser { display: block; } @@ -484,39 +424,38 @@ html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-ca 2.2.4 PLAYER SIZE ------------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------------ # VARIABLES ------------------------------------------------------------------------------*/ + /* ---- HEADER --------------------------------------------------------------*/ + /* ---- NORMAL --------------------------------------------------------------*/ html[it-page-type=video]:not([it-header-position]) ytd-app, html[it-page-type=video][it-header-position=normal] ytd-app, -html[it-page-type=video][it-header-position=static] ytd-app -{ +html[it-page-type=video][it-header-position=static] ytd-app { --it-header-size: 56px; } html[it-page-type=video]:not([it-header-position]) ytd-watch-flexy:not([theater]), html[it-page-type=video][it-header-position=normal] ytd-watch-flexy:not([theater]), -html[it-page-type=video][it-header-position=static] ytd-watch-flexy:not([theater]) -{ +html[it-page-type=video][it-header-position=static] ytd-watch-flexy:not([theater]) { --it-header-size: 104px; } html[it-page-type=video]:not([it-header-position]) div#page, html[it-page-type=video][it-header-position=normal] div#page, -html[it-page-type=video][it-header-position=static] div#page -{ +html[it-page-type=video][it-header-position=static] div#page { --it-header-size: 50px; } html[it-page-type=video]:not([it-header-position]) div#page:not(.watch-wide), html[it-page-type=video][it-header-position=normal] div#page:not(.watch-wide), -html[it-page-type=video][it-header-position=static] div#page:not(.watch-wide) -{ +html[it-page-type=video][it-header-position=static] div#page:not(.watch-wide) { --it-header-size: 70px; } @@ -524,26 +463,22 @@ html[it-page-type=video][it-header-position=static] div#page:not(.watch-wide) /* ---- HIDDEN ---------------------------------------------------------------*/ html[it-page-type=video][it-header-position=hidden], -html[it-page-type=video][it-header-position=hidden_on_video_page] -{ +html[it-page-type=video][it-header-position=hidden_on_video_page] { --it-header-size: 0px; } html[it-page-type=video][it-header-position=hidden] ytd-watch-flexy:not([theater]), -html[it-page-type=video][it-header-position=hidden_on_video_page] ytd-watch-flexy:not([theater]) -{ +html[it-page-type=video][it-header-position=hidden_on_video_page] ytd-watch-flexy:not([theater]) { --it-header-size: 48px; } html[it-page-type=video][it-header-position=hidden] div#page, -html[it-page-type=video][it-header-position=hidden_on_video_page] div#page -{ +html[it-page-type=video][it-header-position=hidden_on_video_page] div#page { --it-header-size: 0px; } html[it-page-type=video][it-header-position=hidden] div#page:not(.watch-wide), -html[it-page-type=video][it-header-position=hidden_on_video_page] div#page:not(.watch-wide) -{ +html[it-page-type=video][it-header-position=hidden_on_video_page] div#page:not(.watch-wide) { --it-header-size: 20px; } @@ -551,41 +486,40 @@ html[it-page-type=video][it-header-position=hidden_on_video_page] div#page:not(. /* ---- HOVER ----------------------------------------------------------------*/ html[it-page-type=video][it-header-position=hover], -html[it-page-type=video][it-header-position=hover_on_video_page] -{ +html[it-page-type=video][it-header-position=hover_on_video_page] { --it-header-size: 14px; } html[it-page-type=video][it-header-position=hover] ytd-watch-flexy:not([theater]), -html[it-page-type=video][it-header-position=hover_on_video_page] ytd-watch-flexy:not([theater]) -{ +html[it-page-type=video][it-header-position=hover_on_video_page] ytd-watch-flexy:not([theater]) { --it-header-size: 62px; } html[it-page-type=video][it-header-position=hover] div#page, -html[it-page-type=video][it-header-position=hover_on_video_page] div#page -{ +html[it-page-type=video][it-header-position=hover_on_video_page] div#page { --it-header-size: 12px; } html[it-page-type=video][it-header-position=hover] div#page:not(.watch-wide), -html[it-page-type=video][it-header-position=hover_on_video_page] div#page:not(.watch-wide) -{ +html[it-page-type=video][it-header-position=hover_on_video_page] div#page:not(.watch-wide) { --it-header-size: 32px; } html[it-page-type=video][it-header-position=hover] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container, -html[it-page-type=video][it-header-position=hover_on_video_page] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container -{ +html[it-page-type=video][it-header-position=hover_on_video_page] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container { margin-top: 14px; } html[it-page-type=video][it-header-position=hover] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen), -html[it-page-type=video][it-header-position=hover_on_video_page] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen) -{ +html[it-page-type=video][it-header-position=hover_on_video_page] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen) { margin-top: 12px; } +html[it-page-type=video][it-header-position=hover] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]), +html[it-page-type=video][it-header-position=hover_on_video_page] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) { + margin-top: 14px; +} + /* ---- FIXED PLAYER SIZE ----------------------------------------------------*/ @@ -596,61 +530,50 @@ html[it-page-type=video][it-player-size='576p'] *, html[it-page-type=video][it-player-size='720p'] *, html[it-page-type=video][it-player-size='1080p'] *, html[it-page-type=video][it-player-size='1440p'] *, -html[it-page-type=video][it-player-size='2160p'] * -{ +html[it-page-type=video][it-player-size='2160p'] * { --it-header-size: 0px !important; } /* ---- SIZES ----------------------------------------------------------------*/ -html[it-page-type=video][it-player-size='240p'] -{ +html[it-page-type=video][it-player-size='240p'] { --it-player-size: 240px; } -html[it-page-type=video][it-player-size='360p'] -{ +html[it-page-type=video][it-player-size='360p'] { --it-player-size: 360px; } -html[it-page-type=video][it-player-size='480p'] -{ +html[it-page-type=video][it-player-size='480p'] { --it-player-size: 480px; } -html[it-page-type=video][it-player-size='576p'] -{ +html[it-page-type=video][it-player-size='576p'] { --it-player-size: 576px; } -html[it-page-type=video][it-player-size='720p'] -{ +html[it-page-type=video][it-player-size='720p'] { --it-player-size: 720px; } -html[it-page-type=video][it-player-size='1080p'] -{ +html[it-page-type=video][it-player-size='1080p'] { --it-player-size: 1080px; } -html[it-page-type=video][it-player-size='1440p'] -{ +html[it-page-type=video][it-player-size='1440p'] { --it-player-size: 1440px; } -html[it-page-type=video][it-player-size='2160p'] -{ +html[it-page-type=video][it-player-size='2160p'] { --it-player-size: 2160px; } -html[it-page-type=video][it-player-size='full_window'] -{ +html[it-page-type=video][it-player-size='full_window'] { --it-player-size: 100vh; } -html[it-page-type=video][it-player-size='fit_to_window'] -{ +html[it-page-type=video][it-player-size='fit_to_window'] { --it-player-size: 100vh; } @@ -659,44 +582,35 @@ html[it-page-type=video][it-player-size='fit_to_window'] # ELEMENTS ------------------------------------------------------------------------------*/ -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-container-inner -{ +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-container-inner { padding-top: calc(var(--it-player-size) - var(--it-header-size)) !important; } html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container, -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container -{ +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container { width: auto !important; height: calc(var(--it-player-size) - var(--it-header-size)) !important; min-height: auto !important; max-height: 100vh !important; } -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player -{ +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player { background: #000 !important; } -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-container -{ +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-container { position: absolute !important; - display: flex !important; - width: 100% !important; height: 100% !important; - justify-content: center !important; align-items: center !important; } -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video -{ +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video { position: static !important; top: 0 !important; left: 0 !important; - width: auto !important; max-width: 100% !important; height: calc(var(--it-player-size) - var(--it-header-size)) !important; @@ -705,160 +619,134 @@ html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']) /*FIT TO WINDOW*/ -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-theater-container -{ +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-theater-container { background: transparent !important; } -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) -{ +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) { display: table !important; overflow: visible !important; - width: auto !important; margin: auto !important; } -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-chrome-bottom -{ +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-chrome-bottom { width: calc(100% - 24px) !important; } -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .html5-video-container -{ +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .html5-video-container { position: static !important; - display: inline-block !important; - width: auto !important; } -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video -{ +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video { position: static !important; - width: auto !important; max-width: 100vw !important; } -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-iv-video-content -{ +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-iv-video-content { pointer-events: none !important; } html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player, html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, -html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player -{ +html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player { margin-top: 14px !important; } +html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-tooltip.ytp-preview { + top: auto !important; + bottom: 80px !important; +} + /*------------------------------------------------------------------------------ 2.2.5 PLAYER COLOR ------------------------------------------------------------------------------*/ -html[it-player-color='pink'] -{ - --it-player-color: #e91e63; +html[it-player-color='pink'] { + --it-player-color: #e91e63; } -html[it-player-color='purple'] -{ - --it-player-color: #9c27b0; +html[it-player-color='purple'] { + --it-player-color: #9c27b0; } -html[it-player-color='deep_purple'] -{ - --it-player-color: #673ab7; +html[it-player-color='deep_purple'] { + --it-player-color: #673ab7; } -html[it-player-color='indigo'] -{ - --it-player-color: #3f51b5; +html[it-player-color='indigo'] { + --it-player-color: #3f51b5; } -html[it-player-color='blue'] -{ - --it-player-color: #1e88e5; +html[it-player-color='blue'] { + --it-player-color: #1e88e5; } -html[it-player-color='light_blue'] -{ - --it-player-color: #03a9f4; +html[it-player-color='light_blue'] { + --it-player-color: #03a9f4; } -html[it-player-color='cyan'] -{ - --it-player-color: #00bcd4; +html[it-player-color='cyan'] { + --it-player-color: #00bcd4; } -html[it-player-color='teal'] -{ - --it-player-color: #009688; +html[it-player-color='teal'] { + --it-player-color: #009688; } -html[it-player-color='green'] -{ - --it-player-color: #4caf50; +html[it-player-color='green'] { + --it-player-color: #4caf50; } -html[it-player-color='light_green'] -{ - --it-player-color: #8bc34a; +html[it-player-color='light_green'] { + --it-player-color: #8bc34a; } -html[it-player-color='lime'] -{ - --it-player-color: #cddc39; +html[it-player-color='lime'] { + --it-player-color: #cddc39; } -html[it-player-color='yellow'] -{ - --it-player-color: #ffeb3b; +html[it-player-color='yellow'] { + --it-player-color: #ffeb3b; } -html[it-player-color='amber'] -{ - --it-player-color: #ffc107; +html[it-player-color='amber'] { + --it-player-color: #ffc107; } -html[it-player-color='orange'] -{ - --it-player-color: #ff9800; +html[it-player-color='orange'] { + --it-player-color: #ff9800; } -html[it-player-color='deep_orange'] -{ - --it-player-color: #ff5722; +html[it-player-color='deep_orange'] { + --it-player-color: #ff5722; } -html[it-player-color='brown'] -{ - --it-player-color: #795548; +html[it-player-color='brown'] { + --it-player-color: #795548; } -html[it-player-color='blue_gray'] -{ - --it-player-color: #607d8b; +html[it-player-color='blue_gray'] { + --it-player-color: #607d8b; } -html[it-player-color='white'] -{ - --it-player-color: #fff; +html[it-player-color='white'] { + --it-player-color: #fff; } html[it-player-color]:not([it-player-color='red']) .ytp-play-progress, html[it-player-color]:not([it-player-color='red']) .ytp-scrubber-button, html[it-player-color]:not([it-player-color='red']) .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color]:not([it-player-color='red']) .ytp-settings-button.ytp-hd-quality-badge:after -{ +html[it-player-color]:not([it-player-color='red']) .ytp-settings-button.ytp-hd-quality-badge:after { background-color: var(--it-player-color) !important; } -html[it-player-color]([it-player-color='red']) .ytp-swatch-color -{ +html[it-player-color]([it-player-color='red']) .ytp-swatch-color { color: var(--it-player-color) !important; } @@ -873,8 +761,7 @@ html[it-player-color]([it-player-color='red']) .ytp-swatch-color [it-player-transparent-background=true] .player-api, [it-player-transparent-background=true] #movie_player, [it-player-transparent-background=true] #player-container, -[it-player-transparent-background=true] #movie_player video -{ +[it-player-transparent-background=true] #movie_player video { background-color: transparent !important; } @@ -883,8 +770,7 @@ html[it-player-color]([it-player-color='red']) .ytp-swatch-color 2.2.7 HIDE ENDSCREEN ------------------------------------------------------------------------------*/ -html[it-player-hide-endscreen=true] .html5-endscreen -{ +html[it-player-hide-endscreen=true] .html5-endscreen { display: none !important; } @@ -893,13 +779,11 @@ html[it-player-hide-endscreen=true] .html5-endscreen 2.2.8 HIDE "SCROLL FOR DETAILS" ------------------------------------------------------------------------------*/ -html[it-hide-scroll-for-details=true] button.ytp-fullerscreen-edu-button -{ +html[it-hide-scroll-for-details=true] button.ytp-fullerscreen-edu-button { display: none !important; } -html[it-hide-scroll-for-details=true] ytd-app[scrolling_] -{ +html[it-hide-scroll-for-details=true] ytd-app[scrolling_] { overflow: hidden !important; } @@ -908,18 +792,15 @@ html[it-hide-scroll-for-details=true] ytd-app[scrolling_] 2.2.9 ALWAYS SHOW PROGRESS BAR ------------------------------------------------------------------------------*/ -html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom -{ +html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom { opacity: 1 !important; } -html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-chrome-controls -{ +html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-chrome-controls { opacity: 0 !important; } -html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-progress-bar-container -{ +html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-progress-bar-container { bottom: 0 !important; } @@ -928,13 +809,13 @@ html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player). 2.3 SIDEBAR ------------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------------ 2.3.1 LIVECHAT ------------------------------------------------------------------------------*/ html[it-livechat=hidden] ytd-live-chat-frame#chat, -html[it-livechat=hidden] div#watch-sidebar-live-chat -{ +html[it-livechat=hidden] div#watch-sidebar-live-chat { display: none !important; } @@ -945,15 +826,11 @@ html[it-livechat=hidden] div#watch-sidebar-live-chat html[it-hide-playlist=true] ytd-playlist-panel-renderer#playlist, html[it-hide-playlist=true] div#player-playlist, -html[it-hide-playlist=true] #placeholder-playlist -{ +html[it-hide-playlist=true] #placeholder-playlist { position: absolute !important; - width: 0 !important; height: 0 !important; - pointer-events: none !important; - opacity: 0 !important; } @@ -965,28 +842,23 @@ html[it-hide-playlist=true] #placeholder-playlist html[it-related-videos=hidden] div#related, html[it-related-videos=hidden] div#watch7-sidebar-contents, html[it-related-videos=collapsed].related-videos-collapsed #watch7-sidebar-modules, -html[it-related-videos=collapsed].related-videos-collapsed #related > *:not(#improvedtube-collapsed-related-videos), +html[it-related-videos=collapsed].related-videos-collapsed #related>*:not(#improvedtube-collapsed-related-videos), html[it-related-videos=collapsed]:not(.related-videos-collapsed) #improvedtube-collapsed-related-videos .show-more-text, -html[it-related-videos=collapsed].related-videos-collapsed #improvedtube-collapsed-related-videos .show-less-text -{ +html[it-related-videos=collapsed].related-videos-collapsed #improvedtube-collapsed-related-videos .show-less-text { display: none !important; } -#improvedtube-collapsed-related-videos -{ +#improvedtube-collapsed-related-videos { font-family: inherit; font-size: 12px; font-weight: 500; - box-sizing: border-box; width: 100%; margin: 0 0 3rem; padding: 1rem 0; - cursor: pointer; letter-spacing: .007px; text-transform: uppercase; - color: var(--yt-expand-color); border: none; border-bottom: 1px solid var(--yt-spec-10-percent-layer); @@ -994,21 +866,16 @@ html[it-related-videos=collapsed].related-videos-collapsed #improvedtube-collaps background: transparent; } -#watch7-sidebar #improvedtube-collapsed-related-videos -{ +#watch7-sidebar #improvedtube-collapsed-related-videos { font-size: 12px; font-weight: 500; - display: block; - width: 95%; height: 100%; margin: 0 auto 15px !important; padding: 10px 0; - cursor: pointer; text-align: center; - color: #333; border: 1px solid #d3d3d3; border-color: #c6c6c6; @@ -1023,6 +890,7 @@ html[it-related-videos=collapsed].related-videos-collapsed #improvedtube-collaps 2.4 DETAILS ------------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------------ 2.4.1 HIDE DETAILS ------------------------------------------------------------------------------*/ @@ -1030,9 +898,8 @@ html[it-related-videos=collapsed].related-videos-collapsed #improvedtube-collaps html[it-hide-details=true] #watch-header, html[it-hide-details=true] #watch-action-panels, html[it-hide-details=true] #action-panel-details, -html[it-hide-details=true] #primary-inner > #info, -html[it-hide-details=true] #primary-inner > #meta -{ +html[it-hide-details=true] #primary-inner>#info, +html[it-hide-details=true] #primary-inner>#meta { display: none !important; } @@ -1044,20 +911,17 @@ html[it-hide-details=true] #primary-inner > #meta html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, html[it-description=hidden] div#action-panel-details, html[it-description=expanded] #meta-contents ytd-expander[collapsed] paper-button, -html[it-description=expanded] #action-panel-details button -{ +html[it-description=expanded] #action-panel-details button { display: none !important; } -html[it-description=expanded] #meta-contents ytd-expander[collapsed] > #content.ytd-expander, -html[it-description=expanded] #watch-description-text -{ +html[it-description=expanded] #meta-contents ytd-expander[collapsed]>#content.ytd-expander, +html[it-description=expanded] #watch-description-text { max-height: unset !important; } html[it-description=expanded] .yt-uix-expander .yt-uix-expander-collapsed-body, -html[it-description=expanded] .yt-uix-expander-collapsed .yt-uix-expander-body -{ +html[it-description=expanded] .yt-uix-expander-collapsed .yt-uix-expander-body { display: block !important; } @@ -1067,8 +931,7 @@ html[it-description=expanded] .yt-uix-expander-collapsed .yt-uix-expander-body ------------------------------------------------------------------------------*/ html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer, -html[it-hide-views-count=true] #watch7-views-info > .watch-view-count -{ +html[it-hide-views-count=true] #watch7-views-info>.watch-view-count { display: none !important; } @@ -1077,39 +940,33 @@ html[it-hide-views-count=true] #watch7-views-info > .watch-view-count 2.4.4 Likes ------------------------------------------------------------------------------*/ -[it-likes=hidden] #watch8-sentiment-actions > .like-button-renderer, +[it-likes=hidden] #watch8-sentiment-actions>.like-button-renderer, [it-likes=hidden] .video-extras-sparkbar-likes, [it-likes=hidden] .video-extras-sparkbar-dislikes, [it-likes=hidden] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(1), [it-likes=hidden] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(2), -[it-likes=hidden] #sentiment.ytd-video-primary-info-renderer -{ +[it-likes=hidden] #sentiment.ytd-video-primary-info-renderer { visibility: hidden !important; - pointer-events: none !important; } -[it-likes=icons_only] #watch8-sentiment-actions > .like-button-renderer button > span, +[it-likes=icons_only] #watch8-sentiment-actions>.like-button-renderer button>span, [it-likes=icons_only] .video-extras-sparkbar-likes, [it-likes=icons_only] .video-extras-sparkbar-dislikes, [it-likes=icons_only] #top-level-buttons ytd-toggle-button-renderer:nth-child(1) yt-formatted-string, [it-likes=icons_only] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) yt-formatted-string, -[it-likes=icons_only] #sentiment.ytd-video-primary-info-renderer -{ +[it-likes=icons_only] #sentiment.ytd-video-primary-info-renderer { visibility: hidden !important; - pointer-events: none !important; } [it-likes=icons_only] #text.style-scope.ytd-toggle-button-renderer.style-text, -[it-likes=icons_only] #text.style-scope.ytd-toggle-button-renderer.style-default-active -{ +[it-likes=icons_only] #text.style-scope.ytd-toggle-button-renderer.style-default-active { visibility: hidden !important; } [it-likes=icons_only] .like-button-renderer-like-button, -[it-likes=icons_only] .like-button-renderer-dislike-button -{ +[it-likes=icons_only] .like-button-renderer-dislike-button { color: transparent !important; } @@ -1118,8 +975,7 @@ html[it-hide-views-count=true] #watch7-views-info > .watch-view-count 2.4.5 SHOW DISLIKE RED COLOR ------------------------------------------------------------------------------*/ -[it-red-dislike-button=true] #top-level-buttons > ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active > a -{ +[it-red-dislike-button=true] #top-level-buttons>ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active>a { color: #fc0000 !important; } @@ -1130,37 +986,30 @@ html[it-hide-views-count=true] #watch7-views-info > .watch-view-count html[it-comments=hidden] ytd-comments#comments, html[it-comments=hidden] div#watch-discussion, -html[it-comments=collapsed].comments-collapsed #comment-section-renderer-items + button, +html[it-comments=collapsed].comments-collapsed #comment-section-renderer-items+button, html[it-comments=collapsed]:not(.comments-collapsed) #improvedtube-collapsed-comments .show-more-text, html[it-comments=collapsed].comments-collapsed #improvedtube-collapsed-comments .show-less-text, -html[it-comments=collapsed].comments-collapsed #comments #spinner -{ +html[it-comments=collapsed].comments-collapsed #comments #spinner { display: none !important; } html[it-comments=collapsed].comments-collapsed #comment-section-renderer-items, -html[it-comments=collapsed].comments-collapsed #comments #sections #contents -{ +html[it-comments=collapsed].comments-collapsed #comments #sections #contents { overflow: hidden !important; - height: 0 !important; } -#sections #improvedtube-collapsed-comments -{ +#sections #improvedtube-collapsed-comments { font-family: inherit; font-size: 12px; font-weight: 500; - box-sizing: border-box; width: 100%; margin: 0 0 3rem; padding: 1rem 0; - cursor: pointer; letter-spacing: .007px; text-transform: uppercase; - color: var(--yt-expand-color); border: none; border-bottom: 1px solid var(--yt-spec-10-percent-layer); @@ -1173,8 +1022,7 @@ html[it-comments=collapsed].comments-collapsed #comments #sections #contents 2.6 FOOTER ------------------------------------------------------------------------------*/ -html[it-hide-footer=true] app-drawer#guide #footer -{ +html[it-hide-footer=true] app-drawer#guide #footer { display: none !important; } @@ -1183,42 +1031,35 @@ html[it-hide-footer=true] app-drawer#guide #footer 3.0 THEMES ------------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------------ 3.1 BLUELIGHT ------------------------------------------------------------------------------*/ -html[it-bluelight] -{ +html[it-bluelight] { height: auto; } html[it-bluelight], -html[it-bluelight] .html5-video-player.ytp-fullscreen -{ +html[it-bluelight] .html5-video-player.ytp-fullscreen { filter: url(#it-bluelight-filter); } -#it-bluelight -{ +#it-bluelight { position: fixed; top: 0; left: 0; - visibility: hidden; - width: 100%; height: 100vh; - pointer-events: none; } -html[it-bluelight][it-youtube-version=old] -{ +html[it-bluelight][it-youtube-version=old] { background-color: #f1f1f1; } -html[it-bluelight][it-youtube-version=old] body -{ +html[it-bluelight][it-youtube-version=old] body { min-height: 100vh; } @@ -1227,40 +1068,30 @@ html[it-bluelight][it-youtube-version=old] body 3.2 DIM ------------------------------------------------------------------------------*/ -#it-dim -{ +#it-dim { position: fixed; z-index: 2147483645; top: 0; left: 0; - width: 100%; height: 100vh; - pointer-events: none; - background: #000; } -#it-dim-player -{ +#it-dim-player { position: fixed; z-index: 2147483645; top: 0; left: 0; - visibility: hidden; - width: 100%; height: 100vh; - pointer-events: none; - background: #000; } -.html5-video-player.ytp-fullscreen #it-dim-player -{ +.html5-video-player.ytp-fullscreen #it-dim-player { visibility: visible !important; } @@ -1269,64 +1100,61 @@ html[it-bluelight][it-youtube-version=old] body 3.3 THEMES ------------------------------------------------------------------------------*/ -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ +[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { --yt-swatch-primary: #000!important; --yt-swatch-primary-darker: #000!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #000; - - --yt-spec-brand-background-solid:#000 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#000 !important; - --yt-spec-general-background-b:#000 !important; - --yt-spec-general-background-c:#000 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#aaa !important; - --yt-spec-text-primary-inverse:#aaa !important; - --yt-spec-text-secondary:#aaa !important; - --yt-spec-text-disabled:#aaa !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#aaa !important; - --yt-spec-icon-inactive:#aaa !important; - --yt-spec-icon-disabled:#aaa !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#000000 !important; - --yt-spec-filled-button-text:#aaa !important; - --yt-spec-call-to-action-inverse:#aaa !important; - --yt-spec-brand-icon-active:#aaa !important; - --yt-spec-brand-icon-inactive:#aaa !important; - --yt-spec-brand-button-background:#242424 !important; - --yt-spec-brand-link-text:#aaa !important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#aaa !important; - --yt-spec-wordmark-text:#aaa !important; - --yt-spec-10-percent-layer:#242424 !important; - --yt-spec-selected-nav-text:#aaa !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo -{ + --yt-spec-brand-background-solid: #000 !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #000 !important; + --yt-spec-general-background-b: #000 !important; + --yt-spec-general-background-c: #000 !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: #aaa !important; + --yt-spec-text-primary-inverse: #aaa !important; + --yt-spec-text-secondary: #aaa !important; + --yt-spec-text-disabled: #aaa !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: #aaa !important; + --yt-spec-icon-inactive: #aaa !important; + --yt-spec-icon-disabled: #aaa !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #000000 !important; + --yt-spec-filled-button-text: #aaa !important; + --yt-spec-call-to-action-inverse: #aaa !important; + --yt-spec-brand-icon-active: #aaa !important; + --yt-spec-brand-icon-inactive: #aaa !important; + --yt-spec-brand-button-background: #242424 !important; + --yt-spec-brand-link-text: #aaa !important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #aaa !important; + --yt-spec-wordmark-text: #aaa !important; + --yt-spec-10-percent-layer: #242424 !important; + --yt-spec-selected-nav-text: #aaa !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; +} + +html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo { -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); } -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #000!important; +[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { + background: #000!important; --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -1336,8 +1164,8 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-logo-override: rgb(255, 255, 255)!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ + +[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #000; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -1347,10 +1175,10 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); --yt-formatted-string-emoji-size: 24px; } + [it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ +[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -1477,67 +1305,60 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-blue-suggestive: transparent; } - - @media (prefers-color-scheme: dark) { - [it-black-theme=true][it-schedule=system_peference_dark] - { + [it-black-theme=true][it-schedule=system_peference_dark] { --yt-swatch-primary: #000!important; --yt-swatch-primary-darker: #000!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #000; - - --yt-spec-brand-background-solid:#000 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#000 !important; - --yt-spec-general-background-b:#000 !important; - --yt-spec-general-background-c:#000 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#aaa !important; - --yt-spec-text-primary-inverse:#aaa !important; - --yt-spec-text-secondary:#aaa !important; - --yt-spec-text-disabled:#aaa !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#aaa !important; - --yt-spec-icon-inactive:#aaa !important; - --yt-spec-icon-disabled:#aaa !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#000000 !important; - --yt-spec-filled-button-text:#aaa !important; - --yt-spec-call-to-action-inverse:#aaa !important; - --yt-spec-brand-icon-active:#aaa !important; - --yt-spec-brand-icon-inactive:#aaa !important; - --yt-spec-brand-button-background:#242424 !important; - --yt-spec-brand-link-text:#aaa !important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#aaa !important; - --yt-spec-wordmark-text:#aaa !important; - --yt-spec-10-percent-layer:#242424 !important; - --yt-spec-selected-nav-text:#aaa !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; + --yt-spec-brand-background-solid: #000 !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #000 !important; + --yt-spec-general-background-b: #000 !important; + --yt-spec-general-background-c: #000 !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: #aaa !important; + --yt-spec-text-primary-inverse: #aaa !important; + --yt-spec-text-secondary: #aaa !important; + --yt-spec-text-disabled: #aaa !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: #aaa !important; + --yt-spec-icon-inactive: #aaa !important; + --yt-spec-icon-disabled: #aaa !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #000000 !important; + --yt-spec-filled-button-text: #aaa !important; + --yt-spec-call-to-action-inverse: #aaa !important; + --yt-spec-brand-icon-active: #aaa !important; + --yt-spec-brand-icon-inactive: #aaa !important; + --yt-spec-brand-button-background: #242424 !important; + --yt-spec-brand-link-text: #aaa !important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #aaa !important; + --yt-spec-wordmark-text: #aaa !important; + --yt-spec-10-percent-layer: #242424 !important; + --yt-spec-selected-nav-text: #aaa !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; } - html[it-black-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { + html[it-black-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); } - [it-black-theme=true][it-schedule=system_peference_dark] ytd-masthead - { + [it-black-theme=true][it-schedule=system_peference_dark] ytd-masthead { background: #000!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -1547,8 +1368,7 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-logo-override: rgb(255, 255, 255)!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } - [it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { + [it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #000; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -1560,8 +1380,7 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched } [it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), html[it-black-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-black-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { + [it-black-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -1689,69 +1508,60 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched } } - - - - @media (prefers-color-scheme: light) { - [it-black-theme=true][it-schedule=system_peference_light] - { + [it-black-theme=true][it-schedule=system_peference_light] { --yt-swatch-primary: #000!important; --yt-swatch-primary-darker: #000!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #000; - - --yt-spec-brand-background-solid:#000 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#000 !important; - --yt-spec-general-background-b:#000 !important; - --yt-spec-general-background-c:#000 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#aaa !important; - --yt-spec-text-primary-inverse:#aaa !important; - --yt-spec-text-secondary:#aaa !important; - --yt-spec-text-disabled:#aaa !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#aaa !important; - --yt-spec-icon-inactive:#aaa !important; - --yt-spec-icon-disabled:#aaa !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#000000 !important; - --yt-spec-filled-button-text:#aaa !important; - --yt-spec-call-to-action-inverse:#aaa !important; - --yt-spec-brand-icon-active:#aaa !important; - --yt-spec-brand-icon-inactive:#aaa !important; - --yt-spec-brand-button-background:#242424 !important; - --yt-spec-brand-link-text:#aaa !important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#aaa !important; - --yt-spec-wordmark-text:#aaa !important; - --yt-spec-10-percent-layer:#242424 !important; - --yt-spec-selected-nav-text:#aaa !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; + --yt-spec-brand-background-solid: #000 !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #000 !important; + --yt-spec-general-background-b: #000 !important; + --yt-spec-general-background-c: #000 !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: #aaa !important; + --yt-spec-text-primary-inverse: #aaa !important; + --yt-spec-text-secondary: #aaa !important; + --yt-spec-text-disabled: #aaa !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: #aaa !important; + --yt-spec-icon-inactive: #aaa !important; + --yt-spec-icon-disabled: #aaa !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #000000 !important; + --yt-spec-filled-button-text: #aaa !important; + --yt-spec-call-to-action-inverse: #aaa !important; + --yt-spec-brand-icon-active: #aaa !important; + --yt-spec-brand-icon-inactive: #aaa !important; + --yt-spec-brand-button-background: #242424 !important; + --yt-spec-brand-link-text: #aaa !important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #aaa !important; + --yt-spec-wordmark-text: #aaa !important; + --yt-spec-10-percent-layer: #242424 !important; + --yt-spec-selected-nav-text: #aaa !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; } - html[it-black-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { + html[it-black-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); } - [it-black-theme=true][it-schedule=system_peference_light] ytd-masthead - { + [it-black-theme=true][it-schedule=system_peference_light] ytd-masthead { background: #000!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -1761,8 +1571,7 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-logo-override: rgb(255, 255, 255)!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } - [it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { + [it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #000; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -1774,8 +1583,7 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched } [it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), html[it-black-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-black-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { + [it-black-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -1903,59 +1711,56 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched } } -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ +[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { --yt-swatch-primary: #d44d5c!important; --yt-swatch-primary-darker: #d44d5c!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #734; - - --yt-spec-brand-background-solid:#d44d5c !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#d44d5c !important; - --yt-spec-general-background-b:#d44d5c !important; - --yt-spec-general-background-c:#d44d5c !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:rgb(255,255,255) !important; - --yt-spec-text-primary-inverse:rgb(255,255,255) !important; - --yt-spec-text-secondary:rgb(255,255,255) !important; - --yt-spec-text-disabled:rgb(255,255,255) !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:rgb(255,255,255) !important; - --yt-spec-icon-inactive:rgb(255,255,255) !important; - --yt-spec-icon-disabled:rgb(255,255,255) !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#d44d5c !important; - --yt-spec-filled-button-text:rgb(255,255,255) !important; - --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; - --yt-spec-brand-icon-active:rgb(255,255,255) !important; - --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:rgb(255,255,255)!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; - --yt-spec-wordmark-text:rgb(255,255,255) !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:rgb(255,255,255) !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ + --yt-spec-brand-background-solid: #d44d5c !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #d44d5c !important; + --yt-spec-general-background-b: #d44d5c !important; + --yt-spec-general-background-c: #d44d5c !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: rgb(255, 255, 255) !important; + --yt-spec-text-primary-inverse: rgb(255, 255, 255) !important; + --yt-spec-text-secondary: rgb(255, 255, 255) !important; + --yt-spec-text-disabled: rgb(255, 255, 255) !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: rgb(255, 255, 255) !important; + --yt-spec-icon-inactive: rgb(255, 255, 255) !important; + --yt-spec-icon-disabled: rgb(255, 255, 255) !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #d44d5c !important; + --yt-spec-filled-button-text: rgb(255, 255, 255) !important; + --yt-spec-call-to-action-inverse: rgb(255, 255, 255) !important; + --yt-spec-brand-icon-active: rgb(255, 255, 255) !important; + --yt-spec-brand-icon-inactive: rgb(255, 255, 255) !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: rgb(255, 255, 255)!important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: rgb(255, 255, 255) !important; + --yt-spec-wordmark-text: rgb(255, 255, 255) !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: rgb(255, 255, 255) !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; +} + +[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { background: #734!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -1965,8 +1770,8 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-logo-override: rgb(255, 255, 255)!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ + +[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #d44d5c; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -1976,10 +1781,10 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); --yt-formatted-string-emoji-size: 24px; } + [it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ +[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -2106,70 +1911,62 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-blue-suggestive: transparent; --yt-spec-text-secondary: #f5dbe2; } -html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo -{ + +html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo { -webkit-filter: grayscale(1) brightness(4); - filter: grayscale(1) brightness(4); + filter: grayscale(1) brightness(4); } - - - - @media (prefers-color-scheme: dark) { - [it-dawn-theme=true][it-schedule=system_peference_dark] - { + [it-dawn-theme=true][it-schedule=system_peference_dark] { --yt-swatch-primary: #d44d5c!important; --yt-swatch-primary-darker: #d44d5c!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #734; - - --yt-spec-brand-background-solid:#d44d5c !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#d44d5c !important; - --yt-spec-general-background-b:#d44d5c !important; - --yt-spec-general-background-c:#d44d5c !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:rgb(255,255,255) !important; - --yt-spec-text-primary-inverse:rgb(255,255,255) !important; - --yt-spec-text-secondary:rgb(255,255,255) !important; - --yt-spec-text-disabled:rgb(255,255,255) !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:rgb(255,255,255) !important; - --yt-spec-icon-inactive:rgb(255,255,255) !important; - --yt-spec-icon-disabled:rgb(255,255,255) !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#d44d5c !important; - --yt-spec-filled-button-text:rgb(255,255,255) !important; - --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; - --yt-spec-brand-icon-active:rgb(255,255,255) !important; - --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:rgb(255,255,255)!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; - --yt-spec-wordmark-text:rgb(255,255,255) !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:rgb(255,255,255) !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; + --yt-spec-brand-background-solid: #d44d5c !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #d44d5c !important; + --yt-spec-general-background-b: #d44d5c !important; + --yt-spec-general-background-c: #d44d5c !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: rgb(255, 255, 255) !important; + --yt-spec-text-primary-inverse: rgb(255, 255, 255) !important; + --yt-spec-text-secondary: rgb(255, 255, 255) !important; + --yt-spec-text-disabled: rgb(255, 255, 255) !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: rgb(255, 255, 255) !important; + --yt-spec-icon-inactive: rgb(255, 255, 255) !important; + --yt-spec-icon-disabled: rgb(255, 255, 255) !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #d44d5c !important; + --yt-spec-filled-button-text: rgb(255, 255, 255) !important; + --yt-spec-call-to-action-inverse: rgb(255, 255, 255) !important; + --yt-spec-brand-icon-active: rgb(255, 255, 255) !important; + --yt-spec-brand-icon-inactive: rgb(255, 255, 255) !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: rgb(255, 255, 255)!important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: rgb(255, 255, 255) !important; + --yt-spec-wordmark-text: rgb(255, 255, 255) !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: rgb(255, 255, 255) !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; } - [it-dawn-theme=true][it-schedule=system_peference_dark] ytd-masthead - { + [it-dawn-theme=true][it-schedule=system_peference_dark] ytd-masthead { background: #734!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -2179,8 +1976,7 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-swatch-logo-override: rgb(255, 255, 255)!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } - [it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { + [it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #d44d5c; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -2192,8 +1988,7 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu } [it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), html[it-dawn-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-dawn-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { + [it-dawn-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -2320,71 +2115,62 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-blue-suggestive: transparent; --yt-spec-text-secondary: #f5dbe2; } - html[it-dawn-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { + html[it-dawn-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { -webkit-filter: grayscale(1) brightness(4); - filter: grayscale(1) brightness(4); + filter: grayscale(1) brightness(4); } } - - - - @media (prefers-color-scheme: light) { - [it-dawn-theme=true][it-schedule=system_peference_light] - { + [it-dawn-theme=true][it-schedule=system_peference_light] { --yt-swatch-primary: #d44d5c!important; --yt-swatch-primary-darker: #d44d5c!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #734; - - --yt-spec-brand-background-solid:#d44d5c !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#d44d5c !important; - --yt-spec-general-background-b:#d44d5c !important; - --yt-spec-general-background-c:#d44d5c !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:rgb(255,255,255) !important; - --yt-spec-text-primary-inverse:rgb(255,255,255) !important; - --yt-spec-text-secondary:rgb(255,255,255) !important; - --yt-spec-text-disabled:rgb(255,255,255) !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:rgb(255,255,255) !important; - --yt-spec-icon-inactive:rgb(255,255,255) !important; - --yt-spec-icon-disabled:rgb(255,255,255) !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#d44d5c !important; - --yt-spec-filled-button-text:rgb(255,255,255) !important; - --yt-spec-call-to-action-inverse:rgb(255,255,255) !important; - --yt-spec-brand-icon-active:rgb(255,255,255) !important; - --yt-spec-brand-icon-inactive:rgb(255,255,255) !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:rgb(255,255,255)!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:rgb(255,255,255) !important; - --yt-spec-wordmark-text:rgb(255,255,255) !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:rgb(255,255,255) !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; + --yt-spec-brand-background-solid: #d44d5c !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #d44d5c !important; + --yt-spec-general-background-b: #d44d5c !important; + --yt-spec-general-background-c: #d44d5c !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: rgb(255, 255, 255) !important; + --yt-spec-text-primary-inverse: rgb(255, 255, 255) !important; + --yt-spec-text-secondary: rgb(255, 255, 255) !important; + --yt-spec-text-disabled: rgb(255, 255, 255) !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: rgb(255, 255, 255) !important; + --yt-spec-icon-inactive: rgb(255, 255, 255) !important; + --yt-spec-icon-disabled: rgb(255, 255, 255) !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #d44d5c !important; + --yt-spec-filled-button-text: rgb(255, 255, 255) !important; + --yt-spec-call-to-action-inverse: rgb(255, 255, 255) !important; + --yt-spec-brand-icon-active: rgb(255, 255, 255) !important; + --yt-spec-brand-icon-inactive: rgb(255, 255, 255) !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: rgb(255, 255, 255)!important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: rgb(255, 255, 255) !important; + --yt-spec-wordmark-text: rgb(255, 255, 255) !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: rgb(255, 255, 255) !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; } - [it-dawn-theme=true][it-schedule=system_peference_light] ytd-masthead - { + [it-dawn-theme=true][it-schedule=system_peference_light] ytd-masthead { background: #734!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -2394,8 +2180,7 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-swatch-logo-override: rgb(255, 255, 255)!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } - [it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { + [it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #d44d5c; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -2407,8 +2192,7 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu } [it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), html[it-dawn-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-dawn-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { + [it-dawn-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -2535,43 +2319,39 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-blue-suggestive: transparent; --yt-spec-text-secondary: #f5dbe2; } - html[it-dawn-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { + html[it-dawn-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { -webkit-filter: grayscale(1) brightness(4); - filter: grayscale(1) brightness(4); + filter: grayscale(1) brightness(4); } } -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ - --yt-swatch-header-primary: rgb(34,38,42)!important; - --yt-swatch-primary: rgb(34,38,42)!important; - --yt-swatch-primary-darker: rgb(28,32,36)!important; - --yt-swatch-text: rgb(200,200,200)!important; - --yt-swatch-important-text: rgb(200,200,200)!important; - --yt-swatch-input-text: rgba(200,200,200,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(200,200,200)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { + --yt-swatch-header-primary: rgb(34, 38, 42)!important; + --yt-swatch-primary: rgb(34, 38, 42)!important; + --yt-swatch-primary-darker: rgb(28, 32, 36)!important; + --yt-swatch-text: rgb(200, 200, 200)!important; + --yt-swatch-important-text: rgb(200, 200, 200)!important; + --yt-swatch-input-text: rgba(200, 200, 200, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(200, 200, 200)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #masthead-search-term -{ +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #masthead-search-term { border: 1px solid #444!important; border-right: none!important; } -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light])[youtube-version=old] body -{ + +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light])[youtube-version=old] body { height: auto; } -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ + +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { background: var(--yt-swatch-primary-darker)!important; } -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #232323!important; +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { + background: #232323!important; --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -2581,8 +2361,8 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-swatch-logo-override: rgb(255, 255, 255)!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) -{ + +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #282828; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -2592,8 +2372,8 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); --yt-formatted-string-emoji-size: 24px; } -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) -{ + +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) { --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); @@ -2719,48 +2499,35 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-blue-suggestive: transparent; } -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light])[youtube-version=old] body -{ +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light])[youtube-version=old] body { height: auto!important; - - background: rgb(19,19,19)!important; + background: rgb(19, 19, 19)!important; } - - - - @media (prefers-color-scheme: dark) { - [it-youtube-version=old][it-default-theme=true][it-schedule=system_peference_dark] - { - --yt-swatch-header-primary: rgb(34,38,42)!important; - --yt-swatch-primary: rgb(34,38,42)!important; - --yt-swatch-primary-darker: rgb(28,32,36)!important; - --yt-swatch-text: rgb(200,200,200)!important; - --yt-swatch-important-text: rgb(200,200,200)!important; - --yt-swatch-input-text: rgba(200,200,200,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(200,200,200)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + [it-youtube-version=old][it-default-theme=true][it-schedule=system_peference_dark] { + --yt-swatch-header-primary: rgb(34, 38, 42)!important; + --yt-swatch-primary: rgb(34, 38, 42)!important; + --yt-swatch-primary-darker: rgb(28, 32, 36)!important; + --yt-swatch-text: rgb(200, 200, 200)!important; + --yt-swatch-important-text: rgb(200, 200, 200)!important; + --yt-swatch-input-text: rgba(200, 200, 200, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(200, 200, 200)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] #masthead-search-term - { + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] #masthead-search-term { border: 1px solid #444!important; border-right: none!important; } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] html[youtube-version=old] body - { + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] html[youtube-version=old] body { height: auto; } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] - { + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] { background: var(--yt-swatch-primary-darker)!important; } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] ytd-masthead - { + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] ytd-masthead { background: #232323!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -2770,8 +2537,7 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-swatch-logo-override: rgb(255, 255, 255)!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) - { + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #282828; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -2781,8 +2547,7 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); --yt-formatted-string-emoji-size: 24px; } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) - { + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) { --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); @@ -2907,50 +2672,36 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); --yt-blue-suggestive: transparent; } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark][youtube-version=old] body - { + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark][youtube-version=old] body { height: auto!important; - - background: rgb(19,19,19)!important; + background: rgb(19, 19, 19)!important; } } - - - - @media (prefers-color-scheme: light) { - [it-youtube-version=old][it-default-theme=true][it-schedule=system_peference_light] - { - --yt-swatch-header-primary: rgb(34,38,42)!important; - --yt-swatch-primary: rgb(34,38,42)!important; - --yt-swatch-primary-darker: rgb(28,32,36)!important; - --yt-swatch-text: rgb(200,200,200)!important; - --yt-swatch-important-text: rgb(200,200,200)!important; - --yt-swatch-input-text: rgba(200,200,200,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(200,200,200)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + [it-youtube-version=old][it-default-theme=true][it-schedule=system_peference_light] { + --yt-swatch-header-primary: rgb(34, 38, 42)!important; + --yt-swatch-primary: rgb(34, 38, 42)!important; + --yt-swatch-primary-darker: rgb(28, 32, 36)!important; + --yt-swatch-text: rgb(200, 200, 200)!important; + --yt-swatch-important-text: rgb(200, 200, 200)!important; + --yt-swatch-input-text: rgba(200, 200, 200, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(200, 200, 200)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] #masthead-search-term - { + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] #masthead-search-term { border: 1px solid #444!important; border-right: none!important; } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] html[youtube-version=old] body - { + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] html[youtube-version=old] body { height: auto; } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] - { + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] { background: var(--yt-swatch-primary-darker)!important; } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] ytd-masthead - { + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] ytd-masthead { background: #232323!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -2960,8 +2711,7 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-swatch-logo-override: rgb(255, 255, 255)!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) - { + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #282828; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -2971,8 +2721,7 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); --yt-formatted-string-emoji-size: 24px; } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) - { + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); @@ -3097,68 +2846,62 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); --yt-blue-suggestive: transparent; } - - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light][youtube-version=old] body - { + [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light][youtube-version=old] body { height: auto!important; - - background: rgb(19,19,19)!important; + background: rgb(19, 19, 19)!important; } } -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ +[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { --yt-swatch-primary: #faf9f9!important; --yt-swatch-primary-darker: #faf9f9!important; --yt-swatch-text: #555!important; --yt-swatch-important-text: #555!important; --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #bee3db; - - --yt-spec-brand-background-solid:#faf9f9 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#faf9f9 !important; - --yt-spec-general-background-b:#faf9f9 !important; - --yt-spec-general-background-c:#faf9f9 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#555 !important; - --yt-spec-text-primary-inverse:#555 !important; - --yt-spec-text-secondary:#555 !important; - --yt-spec-text-disabled:#555 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#555 !important; - --yt-spec-icon-inactive:#555 !important; - --yt-spec-icon-disabled:#555 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#faf9f9 !important; - --yt-spec-filled-button-text:#555 !important; - --yt-spec-call-to-action-inverse:#555 !important; - --yt-spec-brand-icon-active:#555 !important; - --yt-spec-brand-icon-inactive:#555 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#555!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#555 !important; - --yt-spec-wordmark-text:#555 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#555 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ + --yt-spec-brand-background-solid: #faf9f9 !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #faf9f9 !important; + --yt-spec-general-background-b: #faf9f9 !important; + --yt-spec-general-background-c: #faf9f9 !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: #555 !important; + --yt-spec-text-primary-inverse: #555 !important; + --yt-spec-text-secondary: #555 !important; + --yt-spec-text-disabled: #555 !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: #555 !important; + --yt-spec-icon-inactive: #555 !important; + --yt-spec-icon-disabled: #555 !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #faf9f9 !important; + --yt-spec-filled-button-text: #555 !important; + --yt-spec-call-to-action-inverse: #555 !important; + --yt-spec-brand-icon-active: #555 !important; + --yt-spec-brand-icon-inactive: #555 !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: #555!important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #555 !important; + --yt-spec-wordmark-text: #555 !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: #555 !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; +} + +[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { background: #bee3db!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: #555!important; @@ -3168,8 +2911,8 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-swatch-logo-override: #555!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ + +[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #faf9f9; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: #555; @@ -3179,10 +2922,10 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); --yt-formatted-string-emoji-size: 24px; } + [it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ +[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] { --yt-spec-icon-inactive: #555; --yt-spec-text-primary: #555; --ytd-searchbox-border-color: #555; @@ -3310,64 +3053,56 @@ html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche --yt-blue-suggestive: transparent; } - - - - @media (prefers-color-scheme: dark) { - [it-desert-theme=true][it-schedule=system_peference_dark] - { + [it-desert-theme=true][it-schedule=system_peference_dark] { --yt-swatch-primary: #faf9f9!important; --yt-swatch-primary-darker: #faf9f9!important; --yt-swatch-text: #555!important; --yt-swatch-important-text: #555!important; --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #bee3db; - - --yt-spec-brand-background-solid:#faf9f9 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#faf9f9 !important; - --yt-spec-general-background-b:#faf9f9 !important; - --yt-spec-general-background-c:#faf9f9 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#555 !important; - --yt-spec-text-primary-inverse:#555 !important; - --yt-spec-text-secondary:#555 !important; - --yt-spec-text-disabled:#555 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#555 !important; - --yt-spec-icon-inactive:#555 !important; - --yt-spec-icon-disabled:#555 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#faf9f9 !important; - --yt-spec-filled-button-text:#555 !important; - --yt-spec-call-to-action-inverse:#555 !important; - --yt-spec-brand-icon-active:#555 !important; - --yt-spec-brand-icon-inactive:#555 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#555!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#555 !important; - --yt-spec-wordmark-text:#555 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#555 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; + --yt-spec-brand-background-solid: #faf9f9 !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #faf9f9 !important; + --yt-spec-general-background-b: #faf9f9 !important; + --yt-spec-general-background-c: #faf9f9 !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: #555 !important; + --yt-spec-text-primary-inverse: #555 !important; + --yt-spec-text-secondary: #555 !important; + --yt-spec-text-disabled: #555 !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: #555 !important; + --yt-spec-icon-inactive: #555 !important; + --yt-spec-icon-disabled: #555 !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #faf9f9 !important; + --yt-spec-filled-button-text: #555 !important; + --yt-spec-call-to-action-inverse: #555 !important; + --yt-spec-brand-icon-active: #555 !important; + --yt-spec-brand-icon-inactive: #555 !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: #555!important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #555 !important; + --yt-spec-wordmark-text: #555 !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: #555 !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; } - [it-desert-theme=true][it-schedule=system_peference_dark] ytd-masthead - { + [it-desert-theme=true][it-schedule=system_peference_dark] ytd-masthead { background: #bee3db!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: #555!important; @@ -3377,8 +3112,7 @@ html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche --yt-swatch-logo-override: #555!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } - [it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { + [it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #faf9f9; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: #555; @@ -3390,8 +3124,7 @@ html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche } [it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), html[it-desert-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-desert-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { + [it-desert-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] { --yt-spec-icon-inactive: #555; --yt-spec-text-primary: #555; --ytd-searchbox-border-color: #555; @@ -3520,64 +3253,56 @@ html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche } } - - - - @media (prefers-color-scheme: light) { - [it-desert-theme=true][it-schedule=system_peference_light] - { + [it-desert-theme=true][it-schedule=system_peference_light] { --yt-swatch-primary: #faf9f9!important; --yt-swatch-primary-darker: #faf9f9!important; --yt-swatch-text: #555!important; --yt-swatch-important-text: #555!important; --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #bee3db; - - --yt-spec-brand-background-solid:#faf9f9 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#faf9f9 !important; - --yt-spec-general-background-b:#faf9f9 !important; - --yt-spec-general-background-c:#faf9f9 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#555 !important; - --yt-spec-text-primary-inverse:#555 !important; - --yt-spec-text-secondary:#555 !important; - --yt-spec-text-disabled:#555 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#555 !important; - --yt-spec-icon-inactive:#555 !important; - --yt-spec-icon-disabled:#555 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#faf9f9 !important; - --yt-spec-filled-button-text:#555 !important; - --yt-spec-call-to-action-inverse:#555 !important; - --yt-spec-brand-icon-active:#555 !important; - --yt-spec-brand-icon-inactive:#555 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#555!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#555 !important; - --yt-spec-wordmark-text:#555 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#555 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; + --yt-spec-brand-background-solid: #faf9f9 !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #faf9f9 !important; + --yt-spec-general-background-b: #faf9f9 !important; + --yt-spec-general-background-c: #faf9f9 !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: #555 !important; + --yt-spec-text-primary-inverse: #555 !important; + --yt-spec-text-secondary: #555 !important; + --yt-spec-text-disabled: #555 !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: #555 !important; + --yt-spec-icon-inactive: #555 !important; + --yt-spec-icon-disabled: #555 !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #faf9f9 !important; + --yt-spec-filled-button-text: #555 !important; + --yt-spec-call-to-action-inverse: #555 !important; + --yt-spec-brand-icon-active: #555 !important; + --yt-spec-brand-icon-inactive: #555 !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: #555!important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #555 !important; + --yt-spec-wordmark-text: #555 !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: #555 !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; } - [it-desert-theme=true][it-schedule=system_peference_light] ytd-masthead - { + [it-desert-theme=true][it-schedule=system_peference_light] ytd-masthead { background: #bee3db!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: #555!important; @@ -3587,8 +3312,7 @@ html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche --yt-swatch-logo-override: #555!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } - [it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { + [it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #faf9f9; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: #555; @@ -3600,8 +3324,7 @@ html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche } [it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), html[it-desert-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-desert-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { + [it-desert-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] { --yt-spec-icon-inactive: #555; --yt-spec-text-primary: #555; --ytd-searchbox-border-color: #555; @@ -3730,64 +3453,61 @@ html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche } } -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ +[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { --yt-swatch-primary: #003459!important; --yt-swatch-primary-darker: #003459!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #007ea7; - - --yt-spec-brand-background-solid:#003459 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#003459 !important; - --yt-spec-general-background-b:#003459 !important; - --yt-spec-general-background-c:#003459 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#003459 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo -{ + --yt-spec-brand-background-solid: #003459 !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #003459 !important; + --yt-spec-general-background-b: #003459 !important; + --yt-spec-general-background-c: #003459 !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: #fff !important; + --yt-spec-text-primary-inverse: #fff !important; + --yt-spec-text-secondary: #fff !important; + --yt-spec-text-disabled: #fff !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: #fff !important; + --yt-spec-icon-inactive: #fff !important; + --yt-spec-icon-disabled: #fff !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #003459 !important; + --yt-spec-filled-button-text: #fff !important; + --yt-spec-call-to-action-inverse: #fff !important; + --yt-spec-brand-icon-active: #fff !important; + --yt-spec-brand-icon-inactive: #fff !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: #fff!important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #fff !important; + --yt-spec-wordmark-text: #fff !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: #fff !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; +} + +html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo { -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); } -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ - background: #007ea7!important; +[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { + background: #007ea7!important; --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -3797,8 +3517,8 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-logo-override: rgb(255, 255, 255)!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ + +[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #003459; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -3808,10 +3528,10 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); --yt-formatted-string-emoji-size: 24px; } + [it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ +[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -3938,69 +3658,60 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-blue-suggestive: transparent; } - - - - @media (prefers-color-scheme: dark) { - [it-night-theme=true][it-schedule=system_peference_dark] - { + [it-night-theme=true][it-schedule=system_peference_dark] { --yt-swatch-primary: #003459!important; --yt-swatch-primary-darker: #003459!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #007ea7; - - --yt-spec-brand-background-solid:#003459 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#003459 !important; - --yt-spec-general-background-b:#003459 !important; - --yt-spec-general-background-c:#003459 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#003459 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; + --yt-spec-brand-background-solid: #003459 !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #003459 !important; + --yt-spec-general-background-b: #003459 !important; + --yt-spec-general-background-c: #003459 !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: #fff !important; + --yt-spec-text-primary-inverse: #fff !important; + --yt-spec-text-secondary: #fff !important; + --yt-spec-text-disabled: #fff !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: #fff !important; + --yt-spec-icon-inactive: #fff !important; + --yt-spec-icon-disabled: #fff !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #003459 !important; + --yt-spec-filled-button-text: #fff !important; + --yt-spec-call-to-action-inverse: #fff !important; + --yt-spec-brand-icon-active: #fff !important; + --yt-spec-brand-icon-inactive: #fff !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: #fff!important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #fff !important; + --yt-spec-wordmark-text: #fff !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: #fff !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; } - html[it-night-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { + html[it-night-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); } - [it-night-theme=true][it-schedule=system_peference_dark] ytd-masthead - { + [it-night-theme=true][it-schedule=system_peference_dark] ytd-masthead { background: #007ea7!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -4010,8 +3721,7 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-logo-override: rgb(255, 255, 255)!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } - [it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { + [it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #003459; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -4023,8 +3733,7 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched } [it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), html[it-night-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-night-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { + [it-night-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -4152,69 +3861,60 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched } } - - - - @media (prefers-color-scheme: light) { - [it-night-theme=true][it-schedule=system_peference_light] - { + [it-night-theme=true][it-schedule=system_peference_light] { --yt-swatch-primary: #003459!important; --yt-swatch-primary-darker: #003459!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #007ea7; - - --yt-spec-brand-background-solid:#003459 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#003459 !important; - --yt-spec-general-background-b:#003459 !important; - --yt-spec-general-background-c:#003459 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#003459 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; + --yt-spec-brand-background-solid: #003459 !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #003459 !important; + --yt-spec-general-background-b: #003459 !important; + --yt-spec-general-background-c: #003459 !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: #fff !important; + --yt-spec-text-primary-inverse: #fff !important; + --yt-spec-text-secondary: #fff !important; + --yt-spec-text-disabled: #fff !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: #fff !important; + --yt-spec-icon-inactive: #fff !important; + --yt-spec-icon-disabled: #fff !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #003459 !important; + --yt-spec-filled-button-text: #fff !important; + --yt-spec-call-to-action-inverse: #fff !important; + --yt-spec-brand-icon-active: #fff !important; + --yt-spec-brand-icon-inactive: #fff !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: #fff!important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #fff !important; + --yt-spec-wordmark-text: #fff !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: #fff !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; } - html[it-night-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo - { + html[it-night-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); } - [it-night-theme=true][it-schedule=system_peference_light] ytd-masthead - { + [it-night-theme=true][it-schedule=system_peference_light] ytd-masthead { background: #007ea7!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -4224,8 +3924,7 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-logo-override: rgb(255, 255, 255)!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } - [it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { + [it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #003459; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -4237,8 +3936,7 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched } [it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), html[it-night-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-night-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { + [it-night-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -4366,59 +4064,56 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched } } -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ +[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { --yt-swatch-primary: #c7efcf!important; --yt-swatch-primary-darker: #c7efcf!important; --yt-swatch-text: #666!important; --yt-swatch-important-text: #666!important; --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #d6d1b1; - - --yt-spec-brand-background-solid:#c7efcf !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#c7efcf !important; - --yt-spec-general-background-b:#c7efcf !important; - --yt-spec-general-background-c:#c7efcf !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#666 !important; - --yt-spec-text-primary-inverse:#666 !important; - --yt-spec-text-secondary:#666 !important; - --yt-spec-text-disabled:#666 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#666 !important; - --yt-spec-icon-inactive:#666 !important; - --yt-spec-icon-disabled:#666 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#c7efcf !important; - --yt-spec-filled-button-text:#666 !important; - --yt-spec-call-to-action-inverse:#666 !important; - --yt-spec-brand-icon-active:#666 !important; - --yt-spec-brand-icon-inactive:#666 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#666!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#666 !important; - --yt-spec-wordmark-text:#666 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#666 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; -} -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead -{ + --yt-spec-brand-background-solid: #c7efcf !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #c7efcf !important; + --yt-spec-general-background-b: #c7efcf !important; + --yt-spec-general-background-c: #c7efcf !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: #666 !important; + --yt-spec-text-primary-inverse: #666 !important; + --yt-spec-text-secondary: #666 !important; + --yt-spec-text-disabled: #666 !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: #666 !important; + --yt-spec-icon-inactive: #666 !important; + --yt-spec-icon-disabled: #666 !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #c7efcf !important; + --yt-spec-filled-button-text: #666 !important; + --yt-spec-call-to-action-inverse: #666 !important; + --yt-spec-brand-icon-active: #666 !important; + --yt-spec-brand-icon-inactive: #666 !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: #666!important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #666 !important; + --yt-spec-wordmark-text: #666 !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: #666 !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; +} + +[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { background: #d6d1b1!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: #666!important; @@ -4428,8 +4123,8 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-logo-override: #666!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ + +[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #c7efcf; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -4439,10 +4134,10 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); --yt-formatted-string-emoji-size: 24px; } + [it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ +[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] { --yt-spec-icon-inactive: #666; --yt-spec-text-primary: #666; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); @@ -4570,64 +4265,56 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-blue-suggestive: transparent; } - - - - @media (prefers-color-scheme: dark) { - [it-plain-theme=true][it-schedule=system_peference_dark] - { + [it-plain-theme=true][it-schedule=system_peference_dark] { --yt-swatch-primary: #c7efcf!important; --yt-swatch-primary-darker: #c7efcf!important; --yt-swatch-text: #666!important; --yt-swatch-important-text: #666!important; --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #d6d1b1; - - --yt-spec-brand-background-solid:#c7efcf !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#c7efcf !important; - --yt-spec-general-background-b:#c7efcf !important; - --yt-spec-general-background-c:#c7efcf !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#666 !important; - --yt-spec-text-primary-inverse:#666 !important; - --yt-spec-text-secondary:#666 !important; - --yt-spec-text-disabled:#666 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#666 !important; - --yt-spec-icon-inactive:#666 !important; - --yt-spec-icon-disabled:#666 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#c7efcf !important; - --yt-spec-filled-button-text:#666 !important; - --yt-spec-call-to-action-inverse:#666 !important; - --yt-spec-brand-icon-active:#666 !important; - --yt-spec-brand-icon-inactive:#666 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#666!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#666 !important; - --yt-spec-wordmark-text:#666 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#666 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; + --yt-spec-brand-background-solid: #c7efcf !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #c7efcf !important; + --yt-spec-general-background-b: #c7efcf !important; + --yt-spec-general-background-c: #c7efcf !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: #666 !important; + --yt-spec-text-primary-inverse: #666 !important; + --yt-spec-text-secondary: #666 !important; + --yt-spec-text-disabled: #666 !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: #666 !important; + --yt-spec-icon-inactive: #666 !important; + --yt-spec-icon-disabled: #666 !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #c7efcf !important; + --yt-spec-filled-button-text: #666 !important; + --yt-spec-call-to-action-inverse: #666 !important; + --yt-spec-brand-icon-active: #666 !important; + --yt-spec-brand-icon-inactive: #666 !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: #666!important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #666 !important; + --yt-spec-wordmark-text: #666 !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: #666 !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; } - [it-plain-theme=true][it-schedule=system_peference_dark] ytd-masthead - { + [it-plain-theme=true][it-schedule=system_peference_dark] ytd-masthead { background: #d6d1b1!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: #666!important; @@ -4637,8 +4324,7 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-logo-override: #666!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } - [it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { + [it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #c7efcf; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -4650,8 +4336,7 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched } [it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), html[it-plain-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-plain-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { + [it-plain-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] { --yt-spec-icon-inactive: #666; --yt-spec-text-primary: #666; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); @@ -4780,64 +4465,56 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched } } - - - - @media (prefers-color-scheme: light) { - [it-plain-theme=true][it-schedule=system_peference_light] - { + [it-plain-theme=true][it-schedule=system_peference_light] { --yt-swatch-primary: #c7efcf!important; --yt-swatch-primary-darker: #c7efcf!important; --yt-swatch-text: #666!important; --yt-swatch-important-text: #666!important; --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #d6d1b1; - - --yt-spec-brand-background-solid:#c7efcf !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#c7efcf !important; - --yt-spec-general-background-b:#c7efcf !important; - --yt-spec-general-background-c:#c7efcf !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#666 !important; - --yt-spec-text-primary-inverse:#666 !important; - --yt-spec-text-secondary:#666 !important; - --yt-spec-text-disabled:#666 !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#666 !important; - --yt-spec-icon-inactive:#666 !important; - --yt-spec-icon-disabled:#666 !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#c7efcf !important; - --yt-spec-filled-button-text:#666 !important; - --yt-spec-call-to-action-inverse:#666 !important; - --yt-spec-brand-icon-active:#666 !important; - --yt-spec-brand-icon-inactive:#666 !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#666!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#666 !important; - --yt-spec-wordmark-text:#666 !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#666 !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; + --yt-spec-brand-background-solid: #c7efcf !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #c7efcf !important; + --yt-spec-general-background-b: #c7efcf !important; + --yt-spec-general-background-c: #c7efcf !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: #666 !important; + --yt-spec-text-primary-inverse: #666 !important; + --yt-spec-text-secondary: #666 !important; + --yt-spec-text-disabled: #666 !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: #666 !important; + --yt-spec-icon-inactive: #666 !important; + --yt-spec-icon-disabled: #666 !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #c7efcf !important; + --yt-spec-filled-button-text: #666 !important; + --yt-spec-call-to-action-inverse: #666 !important; + --yt-spec-brand-icon-active: #666 !important; + --yt-spec-brand-icon-inactive: #666 !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: #666!important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #666 !important; + --yt-spec-wordmark-text: #666 !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: #666 !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; } - [it-plain-theme=true][it-schedule=system_peference_light] ytd-masthead - { + [it-plain-theme=true][it-schedule=system_peference_light] ytd-masthead { background: #d6d1b1!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: #666!important; @@ -4847,8 +4524,7 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-logo-override: #666!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } - [it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { + [it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #c7efcf; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -4860,8 +4536,7 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched } [it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), html[it-plain-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-plain-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { + [it-plain-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] { --yt-spec-icon-inactive: #666; --yt-spec-text-primary: #666; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); @@ -4990,58 +4665,56 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched } } -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) -{ +[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { --yt-swatch-primary: #2f3364!important; --yt-swatch-primary-darker: #2f3364!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #f56264; - - --yt-spec-brand-background-solid:#2f3364 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#2f3364 !important; - --yt-spec-general-background-b:#2f3364 !important; - --yt-spec-general-background-c:#2f3364 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#2f3364 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; + --yt-spec-brand-background-solid: #2f3364 !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #2f3364 !important; + --yt-spec-general-background-b: #2f3364 !important; + --yt-spec-general-background-c: #2f3364 !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: #fff !important; + --yt-spec-text-primary-inverse: #fff !important; + --yt-spec-text-secondary: #fff !important; + --yt-spec-text-disabled: #fff !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: #fff !important; + --yt-spec-icon-inactive: #fff !important; + --yt-spec-icon-disabled: #fff !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #2f3364 !important; + --yt-spec-filled-button-text: #fff !important; + --yt-spec-call-to-action-inverse: #fff !important; + --yt-spec-brand-icon-active: #fff !important; + --yt-spec-brand-icon-inactive: #fff !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: #fff!important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #fff !important; + --yt-spec-wordmark-text: #fff !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: #fff !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; } + [it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { background: #f56264!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -5051,8 +4724,8 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-logo-override: rgb(255, 255, 255)!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) -{ + +[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #2f3364; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -5062,10 +4735,10 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); --yt-formatted-string-emoji-size: 24px; } + [it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] -{ +[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -5192,63 +4865,56 @@ html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche --yt-blue-suggestive: transparent; } - - - - @media (prefers-color-scheme: dark) { - [it-sunset-theme=true][it-schedule=system_peference_dark] - { + [it-sunset-theme=true][it-schedule=system_peference_dark] { --yt-swatch-primary: #2f3364!important; --yt-swatch-primary-darker: #2f3364!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #f56264; - - --yt-spec-brand-background-solid:#2f3364 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#2f3364 !important; - --yt-spec-general-background-b:#2f3364 !important; - --yt-spec-general-background-c:#2f3364 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#2f3364 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; + --yt-spec-brand-background-solid: #2f3364 !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #2f3364 !important; + --yt-spec-general-background-b: #2f3364 !important; + --yt-spec-general-background-c: #2f3364 !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: #fff !important; + --yt-spec-text-primary-inverse: #fff !important; + --yt-spec-text-secondary: #fff !important; + --yt-spec-text-disabled: #fff !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: #fff !important; + --yt-spec-icon-inactive: #fff !important; + --yt-spec-icon-disabled: #fff !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #2f3364 !important; + --yt-spec-filled-button-text: #fff !important; + --yt-spec-call-to-action-inverse: #fff !important; + --yt-spec-brand-icon-active: #fff !important; + --yt-spec-brand-icon-inactive: #fff !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: #fff!important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #fff !important; + --yt-spec-wordmark-text: #fff !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: #fff !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; } [it-sunset-theme=true][it-schedule=system_peference_dark] ytd-masthead { background: #f56264!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -5258,8 +4924,7 @@ html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche --yt-swatch-logo-override: rgb(255, 255, 255)!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } - [it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { + [it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #2f3364; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -5271,8 +4936,7 @@ html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche } [it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), html[it-sunset-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-sunset-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] - { + [it-sunset-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -5400,63 +5064,56 @@ html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche } } - - - - @media (prefers-color-scheme: light) { - [it-sunset-theme=true][it-schedule=system_peference_light] - { + [it-sunset-theme=true][it-schedule=system_peference_light] { --yt-swatch-primary: #2f3364!important; --yt-swatch-primary-darker: #2f3364!important; - --yt-swatch-text: rgb(255,255,255)!important; - --yt-swatch-important-text: rgb(255,255,255)!important; - --yt-swatch-input-text: rgba(255,255,255,1)!important; - --yt-swatch-textbox-bg: rgba(19,19,19,1)!important; - --yt-swatch-logo-override: rgb(255,255,255)!important; - --yt-swatch-icon-color: rgba(136,136,136,1)!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #f56264; - - --yt-spec-brand-background-solid:#2f3364 !important; - --yt-spec-brand-background-primary:rgba(0,0,0, 0.98) !important; - --yt-spec-brand-background-secondary:rgba(0,0,0, 0.95) !important; - --yt-spec-general-background-a:#2f3364 !important; - --yt-spec-general-background-b:#2f3364 !important; - --yt-spec-general-background-c:#2f3364 !important; - --yt-spec-error-background:#1F1F1F !important; - --yt-spec-text-primary:#fff !important; - --yt-spec-text-primary-inverse:#fff !important; - --yt-spec-text-secondary:#fff !important; - --yt-spec-text-disabled:#fff !important; - --yt-spec-call-to-action:#065FD4 !important; - --yt-spec-icon-active-other:#fff !important; - --yt-spec-icon-inactive:#fff !important; - --yt-spec-icon-disabled:#fff !important; - --yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action:#F2F8FF !important; - --yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response:#2f3364 !important; - --yt-spec-filled-button-text:#fff !important; - --yt-spec-call-to-action-inverse:#fff !important; - --yt-spec-brand-icon-active:#fff !important; - --yt-spec-brand-icon-inactive:#fff !important; - --yt-spec-brand-button-background:rgba(136,136,136,1) !important; - --yt-spec-brand-link-text:#fff!important; - --yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline:#aaa !important; - --yt-spec-brand-subscribe-button-background:#fff !important; - --yt-spec-wordmark-text:#fff !important; - --yt-spec-10-percent-layer:rgba(136,136,136,1) !important; - --yt-spec-selected-nav-text:#fff !important; - --yt-spec-themed-blue:#065FD4 !important; - --yt-spec-themed-green:#107516 !important; + --yt-spec-brand-background-solid: #2f3364 !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #2f3364 !important; + --yt-spec-general-background-b: #2f3364 !important; + --yt-spec-general-background-c: #2f3364 !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: #fff !important; + --yt-spec-text-primary-inverse: #fff !important; + --yt-spec-text-secondary: #fff !important; + --yt-spec-text-disabled: #fff !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: #fff !important; + --yt-spec-icon-inactive: #fff !important; + --yt-spec-icon-disabled: #fff !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #2f3364 !important; + --yt-spec-filled-button-text: #fff !important; + --yt-spec-call-to-action-inverse: #fff !important; + --yt-spec-brand-icon-active: #fff !important; + --yt-spec-brand-icon-inactive: #fff !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: #fff!important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #fff !important; + --yt-spec-wordmark-text: #fff !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: #fff !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; } [it-sunset-theme=true][it-schedule=system_peference_light] ytd-masthead { background: #f56264!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -5466,8 +5123,7 @@ html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche --yt-swatch-logo-override: rgb(255, 255, 255)!important; --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } - [it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) - { + [it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #2f3364; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -5479,8 +5135,7 @@ html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche } [it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), html[it-sunset-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-sunset-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] - { + [it-sunset-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -5613,12 +5268,12 @@ html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche 4.0 PLAYER ------------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------------ 4.1 CROP CHAPTER TITLES ------------------------------------------------------------------------------*/ -html[it-player-crop-chapter-titles=false] .ytp-chapter-title -{ +html[it-player-crop-chapter-titles=false] .ytp-chapter-title { width: auto !important; } @@ -5630,71 +5285,61 @@ html[it-player-crop-chapter-titles=false] .ytp-chapter-title html[it-player-ads=subscribed_channels] #related #player-ads, html[it-player-ads=block_all] #related #player-ads, html[it-player-ads=subscribed_channels] #masthead-ad, -html[it-player-ads=block_all] #masthead-ad -{ +html[it-player-ads=block_all] #masthead-ad { display: none !important; } + /*------------------------------------------------------------------------------ 4.3 MINIPLAYER ------------------------------------------------------------------------------*/ + /*----------------------------------------------------------------------------- # POSITION & SIZE -----------------------------------------------------------------------------*/ -.it-mini-player -{ +.it-mini-player { position: fixed !important; z-index: 2147483648 !important; left: 0!important; top: 0!important; - box-shadow: rgba(0, 0, 0, .4) 0 2px 8px !important; - will-change: transform, width, height !important; - background: #000 !important; } html[it-page-type=video][it-header-position=hover_on_video_page][it-player-size=full_window] .html5-video-player.it-mini-player, -html[it-page-type=video][it-header-position=hover][it-player-size=full_window] .html5-video-player.it-mini-player -{ +html[it-page-type=video][it-header-position=hover][it-player-size=full_window] .html5-video-player.it-mini-player { margin-top: 0!important; } .it-mini-player .html5-video-container, -.it-mini-player video -{ +.it-mini-player video { left: 0 !important; top: 0 !important; width: 100% !important; height: 100% !important; } -.it-mini-player .ytp-chrome-bottom -{ +.it-mini-player .ytp-chrome-bottom { width: calc(100% - 24px) !important; } -.it-mini-player .ytp-chapters-container -{ +.it-mini-player .ytp-chapters-container { display: flex; } -.it-mini-player .ytp-chapter-hover-container -{ +.it-mini-player .ytp-chapter-hover-container { flex-grow: 1; } -html[it-mini-player=true] .ytp-contextmenu -{ +html[it-mini-player=true] .ytp-contextmenu { z-index: 2147483649 !important; } .it-mini-player .ytp-miniplayer-button, -.it-mini-player .ytp-size-button -{ +.it-mini-player .ytp-size-button { display: none !important; } @@ -5703,25 +5348,21 @@ html[it-mini-player=true] .ytp-contextmenu # DRAGGING -----------------------------------------------------------------------------*/ -.improvedtube-mini-player.dragging -{ +.improvedtube-mini-player.dragging { pointer-events: none !important; } -.improvedtube-mini-player.dragging *:not(.html5-video-container):not(video) -{ +.improvedtube-mini-player.dragging *:not(.html5-video-container):not(video) { visibility: hidden !important; } html[data-cursor='w-resize'], -html[data-cursor='w-resize'] * -{ +html[data-cursor='w-resize'] * { cursor: w-resize !important; } html[data-cursor='e-resize'], -html[data-cursor='e-resize'] * -{ +html[data-cursor='e-resize'] * { cursor: e-resize !important; } @@ -5732,8 +5373,7 @@ html[it-mini-player-cursor='w-resize']::after, html[it-mini-player-cursor='ne-resize']::after, html[it-mini-player-cursor='se-resize']::after, html[it-mini-player-cursor='sw-resize']::after, -html[it-mini-player-cursor='nw-resize']::after -{ +html[it-mini-player-cursor='nw-resize']::after { content: ''; position: fixed; left: 0; @@ -5743,43 +5383,35 @@ html[it-mini-player-cursor='nw-resize']::after z-index: 2147483650; } -html[it-mini-player-cursor='n-resize']::after -{ +html[it-mini-player-cursor='n-resize']::after { cursor: n-resize; } -html[it-mini-player-cursor='e-resize']::after -{ +html[it-mini-player-cursor='e-resize']::after { cursor: e-resize; } -html[it-mini-player-cursor='s-resize']::after -{ +html[it-mini-player-cursor='s-resize']::after { cursor: s-resize; } -html[it-mini-player-cursor='w-resize']::after -{ +html[it-mini-player-cursor='w-resize']::after { cursor: w-resize; } -html[it-mini-player-cursor='ne-resize']::after -{ +html[it-mini-player-cursor='ne-resize']::after { cursor: ne-resize; } -html[it-mini-player-cursor='se-resize']::after -{ +html[it-mini-player-cursor='se-resize']::after { cursor: se-resize; } -html[it-mini-player-cursor='sw-resize']::after -{ +html[it-mini-player-cursor='sw-resize']::after { cursor: sw-resize; } -html[it-mini-player-cursor='nw-resize']::after -{ +html[it-mini-player-cursor='nw-resize']::after { cursor: nw-resize; } @@ -5788,27 +5420,21 @@ html[it-mini-player-cursor='nw-resize']::after 4.4 SCREENSHOT ------------------------------------------------------------------------------*/ -#it-screenshot-button -{ +#it-screenshot-button { position: relative !important; } -#it-screenshot-button svg -{ +#it-screenshot-button svg { position: absolute !important; top: 7px !important; left: 7px !important; - width: 22px !important; - fill: #fff !important; } -.html5-video-player.ytp-big-mode #it-screenshot-button svg -{ +.html5-video-player.ytp-big-mode #it-screenshot-button svg { top: 10px !important; left: 10px !important; - width: 34px !important; } @@ -5817,27 +5443,21 @@ html[it-mini-player-cursor='nw-resize']::after 4.5 REPEAT ------------------------------------------------------------------------------*/ -#it-repeat-button -{ +#it-repeat-button { position: relative !important; } -#it-repeat-button svg -{ +#it-repeat-button svg { position: absolute !important; top: 6px !important; left: 6px !important; - width: 24px !important; - fill: #fff !important; } -.html5-video-player.ytp-big-mode #it-repeat-button svg -{ +.html5-video-player.ytp-big-mode #it-repeat-button svg { top: 10px !important; left: 10px !important; - width: 34px !important; } @@ -5846,27 +5466,21 @@ html[it-mini-player-cursor='nw-resize']::after 4.6 ROTATE ------------------------------------------------------------------------------*/ -#it-rotate-button -{ +#it-rotate-button { position: relative !important; } -#it-rotate-button svg -{ +#it-rotate-button svg { position: absolute !important; top: 7px !important; left: 7px !important; - width: 22px !important; - fill: #fff !important; } -.html5-video-player.ytp-big-mode #it-rotate-button svg -{ +.html5-video-player.ytp-big-mode #it-rotate-button svg { top: 10px !important; left: 10px !important; - width: 34px !important; } @@ -5875,27 +5489,21 @@ html[it-mini-player-cursor='nw-resize']::after 4.7 POPUP PLAYER ------------------------------------------------------------------------------*/ -#it-popup-player-button -{ +#it-popup-player-button { position: relative !important; } -#it-popup-player-button svg -{ +#it-popup-player-button svg { position: absolute !important; top: 7px !important; left: 7px !important; - width: 22px !important; - fill: #fff !important; } -.html5-video-player.ytp-big-mode #it-popup-player-button svg -{ +.html5-video-player.ytp-big-mode #it-popup-player-button svg { top: 10px !important; left: 10px !important; - width: 34px !important; } @@ -5904,23 +5512,21 @@ html[it-mini-player-cursor='nw-resize']::after 5.0 PLAYLIST ------------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------------ 5.1 REVERSE ------------------------------------------------------------------------------*/ -#it-reverse-playlist -{ +#it-reverse-playlist { width: 40px; height: 40px; } -#it-reverse-playlist svg -{ +#it-reverse-playlist svg { fill: var(--yt-spec-icon-inactive); } -#it-reverse-playlist.active svg -{ +#it-reverse-playlist.active svg { fill: var(--yt-spec-icon-active-other); } @@ -5929,14 +5535,14 @@ html[it-mini-player-cursor='nw-resize']::after 6.0 CHANNEL ------------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------------ 6.1 FEATURED CONTENT -------------------------------------------------------------------------------- TODO: FIX ------------------------------------------------------------------------------*/ -html[it-channel-hide-featured-content=true] #secondary.ytd-two-column-browse-results-renderer -{ +html[it-channel-hide-featured-content=true] #secondary.ytd-two-column-browse-results-renderer { display: none; } @@ -5945,14 +5551,11 @@ html[it-channel-hide-featured-content=true] #secondary.ytd-two-column-browse-res 7.0 SHORTCUTS ------------------------------------------------------------------------------*/ -#it-status -{ +#it-status { font-size: 5rem; - position: absolute; top: 2rem; right: 3rem; - color: #0ff; text-shadow: 1px 1px 2px #000; } @@ -5962,168 +5565,130 @@ html[it-channel-hide-featured-content=true] #secondary.ytd-two-column-browse-res 8.0 SETTINGS ------------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------------ 8.1 IMPROVEDTUBE ICON ON YOUTUBE ------------------------------------------------------------------------------*/ -html[it-improvedtube-youtube-icon='below_player'] .title.ytd-video-primary-info-renderer -{ +html[it-improvedtube-youtube-icon='below_player'] .title.ytd-video-primary-info-renderer { overflow: visible !important; } -html[it-improvedtube-youtube-icon='below_player'] h1.watch-title-container -{ +html[it-improvedtube-youtube-icon='below_player'] h1.watch-title-container { display: inline-block !important; } -html[it-improvedtube-youtube-icon='draggable'] .it-btn -{ +html[it-improvedtube-youtube-icon='draggable'] .it-btn { position: fixed; z-index: 2147483645; top: calc(100vh - 56px); left: calc(100vw - 64px); } -.it-btn -{ +.it-btn { z-index: 2147483645; - user-select: none; } -#container.ytd-masthead > .it-btn -{ +#container.ytd-masthead>.it-btn { margin: 0 12px 0 0; } -.yt-masthead-logo-container > .it-btn -{ +.yt-masthead-logo-container>.it-btn { float: left; - margin: 0 12px 0 0; } -#end #buttons .it-btn -{ +#end #buttons .it-btn { margin: 3px 0 0 0; } -#yt-masthead-user > .it-btn -{ +#yt-masthead-user>.it-btn { float: right; - margin: -2px 0 0 14px; } -.title.ytd-video-primary-info-renderer > .it-btn, -#watch-headline-title > .it-btn -{ +.title.ytd-video-primary-info-renderer>.it-btn, +#watch-headline-title>.it-btn { float: right; } -.it-btn__scrim -{ +.it-btn__scrim { position: fixed; z-index: 2147483645; top: 0; left: 0; - visibility: hidden; - width: 100%; height: 100vh; - transition: 150ms; pointer-events: none; - opacity: 0; background: #000; } -.it-btn__icon -{ +.it-btn__icon { position: relative; z-index: 2147483645; - width: 32px; height: 32px; margin: 0 0 2px 0; - cursor: pointer; - border-radius: 50%; background: #f00; } -.it-btn__icon::after -{ +.it-btn__icon::after { position: absolute; top: 9px; left: 12px; - display: block; - content: ''; - opacity: .9; border-top: 7px solid transparent; border-bottom: 7px solid transparent; border-left: 11px solid #fff; } -.it-btn__iframe -{ +.it-btn__iframe { position: absolute; z-index: 2147483645; top: 50px; - visibility: hidden; - width: 320px; max-width: 80vw; height: 500px; max-height: 80vh; - transition: opacity 150ms; pointer-events: none; - opacity: 0; } #end #buttons .it-btn__iframe, -#yt-masthead-user .it-btn__iframe -{ +#yt-masthead-user .it-btn__iframe { right: 0; left: auto; } -.it-btn.it-btn--active .it-btn__scrim -{ +.it-btn.it-btn--active .it-btn__scrim { visibility: visible; - pointer-events: all; - opacity: .5; } -.it-btn.it-btn--active .it-btn__iframe -{ +.it-btn.it-btn--active .it-btn__iframe { visibility: visible; - pointer-events: all; - opacity: 1; } .it-btn--dragging, .it-btn--dragging .it-btn__icon, -.it-btn--dragging .it-btn__iframe -{ +.it-btn--dragging .it-btn__iframe { pointer-events: none !important; } -.it-btn--dragging .it-btn__iframe -{ +.it-btn--dragging .it-btn__iframe { opacity: .75 !important; } @@ -6132,39 +5697,31 @@ html[it-improvedtube-youtube-icon='draggable'] .it-btn 9.0 BLACKLIST ------------------------------------------------------------------------------*/ -.improvedtube-add-to-blacklist -{ +.improvedtube-add-to-blacklist { font-size: 32px; line-height: 26px; - position: absolute; z-index: 999; top: 4px; left: 4px; - visibility: hidden; overflow: hidden; - width: 32px; height: 32px; - cursor: pointer; transition: transform .15s; transform: scale(1); text-align: center; - opacity: .7; color: #fff; border-radius: 2px; background: #000; } -*:hover > .improvedtube-add-to-blacklist -{ +*:hover>.improvedtube-add-to-blacklist { visibility: visible; } -.improvedtube-add-to-blacklist:hover -{ +.improvedtube-add-to-blacklist:hover { transform: scale(1.25); } \ No newline at end of file diff --git a/manifest.json b/manifest.json index 949d2abd7..cba6d755f 100644 --- a/manifest.json +++ b/manifest.json @@ -3,8 +3,8 @@ "name": "*Improve YouTube!☕🧩 YouTube-&Video-Tools 🎞️🧪", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", - "version": "3.122", - "version_name": "3.120-testing.3", + "version": "3.123", + "version_name": "3.120-pre-stable", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index ba2c49ad2..f3f3cfbb5 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -122,6 +122,18 @@ ImprovedTube.videoPageUpdate = function() { this.playlistShuffle(); this.channelDefaultTab(); + + var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); + + if (video_id) { + document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { + detail: { + action: 'set', + id: video_id, + title: document.title + } + })); + } } }; @@ -622,7 +634,6 @@ ImprovedTube.markWatchedVideos = function() { document.addEventListener('ImprovedTubeWatched', function(event) { if (chrome && chrome.runtime) { - console.log(event.detail); chrome.runtime.sendMessage({ name: 'improvedtube-watched', data: { @@ -1737,7 +1748,7 @@ ImprovedTube.mini_player__resize_mouseUp = function(event) { ImprovedTube.mini_player__height = bcr.height; window.dispatchEvent(new Event('resize')); - + var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; strg.width = ImprovedTube.mini_player__width; @@ -2142,7 +2153,7 @@ ImprovedTube.playerPopupButton = function() { onclick: function() { node.pauseVideo(); - window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(node.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'location=0,menubar=0,status=0,titlebar=0,width=' + node.offsetWidth + ',height=' + node.offsetHeight); + window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(node.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + node.offsetWidth + ',height=' + node.offsetHeight); }, title: 'Popup' }); @@ -2166,7 +2177,7 @@ ImprovedTube.playlist_up_next_autoplay_f = function(event) { if ( ImprovedTube.getParam(location.href, 'list') && ImprovedTube.storage.playlist_up_next_autoplay === false && - this.currentTime >= this.duration - 1 + this.currentTime >= this.duration - 2 ) { this.pause(); } @@ -2185,7 +2196,7 @@ ImprovedTube.playlistUpNextAutoplay = function() { ------------------------------------------------------------------------------*/ ImprovedTube.playlistReverseUrl = false; -ImprovedTube.playlistReversed = false; +ImprovedTube.playlistReversed = location.href.indexOf('reverse') !== -1; ImprovedTube.playlistReverse = function() { if (this.playlistReverseUrl !== location.href && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer') && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #playlist-action-menu')) { @@ -2194,26 +2205,46 @@ ImprovedTube.playlistReverse = function() { this.playlistReverseUrl = location.href; if (this.storage.playlist_reverse === true) { - if (ImprovedTube.playlistReversed === true) { - setTimeout(function() { - ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); + function updateNextButton() { + var next_button = document.querySelector('.ytp-next-button'), + prev_button = document.querySelector('.ytp-prev-button'); - setTimeout(function() { - var next_button = document.querySelector('.ytp-next-button'); + if (prev_button) { + prev_button.addEventListener('click', function(event) { + event.preventDefault(); + event.stopPropagation(); + + location.replace(this.href + '&reverse'); + + return false; + }, true); + + prev_button.href = (document.querySelector('#playlist [selected]').previousElementSibling || document.querySelector('#playlist ytd-playlist-panel-video-renderer:last-child')).querySelector('a').href; + prev_button.dataset.preview = (document.querySelector('#playlist [selected]').previousElementSibling || document.querySelector('#playlist ytd-playlist-panel-video-renderer:last-child')).querySelector('img').src; + prev_button.dataset.tooltipText = (document.querySelector('#playlist [selected]').previousElementSibling || document.querySelector('#playlist ytd-playlist-panel-video-renderer:last-child')).querySelector('#video-title').innerText; + } - next_button.addEventListener('click', function(event) { - event.preventDefault(); - event.stopPropagation(); + if (next_button) { + next_button.addEventListener('click', function(event) { + event.preventDefault(); + event.stopPropagation(); + + location.replace(this.href + '&reverse'); + + return false; + }, true); - return false; - }, true); + next_button.href = (document.querySelector('#playlist [selected] + * a') || document.querySelector('#playlist ytd-playlist-panel-video-renderer a')).href; + next_button.dataset.preview = (document.querySelector('#playlist [selected] + * img') || document.querySelector('#playlist ytd-playlist-panel-video-renderer img')).src; + next_button.dataset.tooltipText = (document.querySelector('#playlist [selected] + * #video-title') || document.querySelector('#playlist ytd-playlist-panel-video-renderer #video-title')).innerText; + } + } - next_button.href = document.querySelector('#playlist [selected] + * a').href; - next_button.dataset.preview = document.querySelector('#playlist [selected] + * img').src; - next_button.dataset.tooltipText = document.querySelector('#playlist [selected] + * #video-title').innerText; + if (ImprovedTube.playlistReversed === true) { + setTimeout(function() { + ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); - console.log('reverse'); - }, 1000); + setTimeout(updateNextButton, 1000); }, 500); } @@ -2224,6 +2255,10 @@ ImprovedTube.playlistReverse = function() { button.className = 'style-scope yt-icon-button'; button.innerHTML = ''; + if (ImprovedTube.playlistReversed === true) { + button.classList.add('active'); + } + button.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); @@ -2232,19 +2267,7 @@ ImprovedTube.playlistReverse = function() { ImprovedTube.playlistReversed = !ImprovedTube.playlistReversed; - setTimeout(function() { - var next_button = document.querySelector('.ytp-next-button'); - - next_button.addEventListener('click', function(event) { - event.preventDefault(); - - return false; - }, true); - - next_button.href = document.querySelector('#playlist [selected] + * a').href; - next_button.dataset.preview = document.querySelector('#playlist [selected] + * img').src; - next_button.dataset.tooltipText = document.querySelector('#playlist [selected] + * #video-title').innerText; - }, 500); + setTimeout(updateNextButton, 500); ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); From ef16e46e7b4d9031df6ae8bb7b51f710fb5cdfbd Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 11 Feb 2021 21:09:40 +0300 Subject: [PATCH 0027/1224] Fixed title --- manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index cba6d755f..358ded6c5 100644 --- a/manifest.json +++ b/manifest.json @@ -1,9 +1,9 @@ { "manifest_version": 2, - "name": "*Improve YouTube!☕🧩 YouTube-&Video-Tools 🎞️🧪", + "name": "*Improve YouTube!☕🧩 YouTube-&Video-Tools🎞️", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", - "version": "3.123", + "version": "3.153", "version_name": "3.120-pre-stable", "default_locale": "en", "icons": { From f9c6e3ab9753f28defea151a7b22a07779c36615 Mon Sep 17 00:00:00 2001 From: Serdar <35432275+daswareinfach@users.noreply.github.com> Date: Sat, 13 Feb 2021 21:19:25 +0300 Subject: [PATCH 0028/1224] Update Update for missing language lines. --- _locales/tr/messages.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 058d4d5d3..960c01827 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -39,7 +39,7 @@ "message": "60fps'e izin ver" }, "forceSDR": { - "message": "Force SDR" + "message": "SDR Zorla" }, "alwaysActive": { "message": "Sürekli etkin" @@ -177,7 +177,7 @@ "message": "Özel JS" }, "customMiniPlayer": { - "message": "Custom Mini-Player" + "message": "Özel Mini Oynatıcı" }, "cyan": { "message": "Camgöbeği" From b27e5334e060ccfaa4a27b069b3c27372f08d85a Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 14 Feb 2021 14:37:29 +0300 Subject: [PATCH 0029/1224] Fixed "Screenshot" feature --- manifest.json | 2 +- youtube-scripts.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 358ded6c5..9b9bcd4d1 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "*Improve YouTube!☕🧩 YouTube-&Video-Tools🎞️", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", - "version": "3.153", + "version": "3.154", "version_name": "3.120-pre-stable", "default_locale": "en", "icons": { diff --git a/youtube-scripts.js b/youtube-scripts.js index 50aeba711..4f770b28b 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2005,7 +2005,7 @@ ImprovedTube.screenshot = function() { a.href = URL.createObjectURL(blob); - a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '-' + new Date(document.querySelector('video').getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; + a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '-' + new Date(document.querySelector('.html5-video-player').getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; a.click(); } else { From 262f1a873443aa99c0daa6b943645a0838c54d5a Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 15 Feb 2021 01:17:27 +0300 Subject: [PATCH 0030/1224] Fixed "Default channel tab" --- manifest.json | 2 +- youtube-scripts.js | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/manifest.json b/manifest.json index 9b9bcd4d1..e37b34794 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "*Improve YouTube!☕🧩 YouTube-&Video-Tools🎞️", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", - "version": "3.154", + "version": "3.156", "version_name": "3.120-pre-stable", "default_locale": "en", "icons": { diff --git a/youtube-scripts.js b/youtube-scripts.js index 4f770b28b..da614bb71 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -91,6 +91,8 @@ ImprovedTube.pageUpdateListener = function() { ImprovedTube.markWatchedVideos(); ImprovedTube.hdThumbnails(); + ImprovedTube.channelDefaultTab(); + ImprovedTube.videoPageUpdate(); ImprovedTube.blacklist(); @@ -122,8 +124,6 @@ ImprovedTube.videoPageUpdate = function() { this.playlistRepeat(); this.playlistShuffle(); - this.channelDefaultTab(); - var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); if (video_id) { @@ -167,6 +167,8 @@ ImprovedTube.DOMContentLoaded = function() { ImprovedTube.markWatchedVideos(); ImprovedTube.hdThumbnails(); + ImprovedTube.channelDefaultTab(); + ImprovedTube.myColors(); ImprovedTube.bluelight(); ImprovedTube.dim(); @@ -201,6 +203,7 @@ ImprovedTube.init = function() { window.addEventListener('load', function() { ImprovedTube.hdThumbnails(); + ImprovedTube.channelDefaultTab(); }); }; @@ -2170,11 +2173,11 @@ ImprovedTube.playerPopupButton = function() { ImprovedTube.playerSDR = function() { if (this.storage.player_SDR === true) { - Object.defineProperty(window.screen, "pixelDepth", { + Object.defineProperty(window.screen, "pixelDepth", { enumerable: true, configurable: true, value: 24 - }); + }); } }; @@ -2384,7 +2387,8 @@ ImprovedTube.channelDefaultTab = function() { for (var i = 0, l = node_list.length; i < l; i++) { var node = node_list[i]; - if (!node.getAttribute('it-origin') || + if ( + !node.getAttribute('it-origin') || node.hasAttribute('it-origin') && node.getAttribute('it-origin').replace(/\/(home|videos|playlists)+$/g, '') != node.href.replace(/\/(home|videos|playlists)+$/g, '') ) { @@ -2968,7 +2972,7 @@ ImprovedTube.blacklist = function() { for (var key in ImprovedTube.storage.blacklist.channels) { if (item.style && channel_href.indexOf(key) !== -1) { - item.style.display = 'none'; + item.style.opacity = '.1'; } } } @@ -2996,7 +3000,7 @@ ImprovedTube.blacklist = function() { item = item.parentNode; } - item.style.display = 'none'; + item.style.opacity = '.1'; } } } From 58b227dbc738b30a5a2ec661e7e03a46c46dd177 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 15 Feb 2021 16:57:29 +0300 Subject: [PATCH 0031/1224] Added stores --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index e37b34794..23f041f4d 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "*Improve YouTube!☕🧩 YouTube-&Video-Tools🎞️", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", - "version": "3.156", + "version": "3.157", "version_name": "3.120-pre-stable", "default_locale": "en", "icons": { From 38d1f296c3f62b42b815518e61d77e0bef4780a1 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 15 Feb 2021 16:58:47 +0300 Subject: [PATCH 0032/1224] Added stores --- previews/chrome.png | Bin 0 -> 1915 bytes previews/edge.png | Bin 0 -> 1044 bytes previews/firefox.png | Bin 0 -> 2668 bytes previews/opera.png | Bin 0 -> 3787 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 previews/chrome.png create mode 100644 previews/edge.png create mode 100644 previews/firefox.png create mode 100644 previews/opera.png diff --git a/previews/chrome.png b/previews/chrome.png new file mode 100644 index 0000000000000000000000000000000000000000..5df6228d0e9f6a6f4eba06a108bbe65e5b8321f2 GIT binary patch literal 1915 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 O0000|4upoKtcaY zJ6bug-tG7QJwyLGMgLMa|5i2sNIm8aaR0R<|Is@C-bMN_P`W(mF{0W3*GH|??EmFN z|D_rK;zIxMOyUn`-V(-a!A`KL5u$|7|F0T;EzixFes-bzJI`Rr~*!692_Y zr%Cb|oYDV!AoVL#Ad${mNxRJc2%d1N9o~f zMQTdV|6e)P6?cd}+-y?WXFUkd-pcb3DuOGhz2&SeZcKnKjt{ zuTMLuy}M1&+K_VR*HzCNe7a(Tm`d>QnuD9~+RKZ1Xfl=v%evzs~i2tiC_fb8iM|Z78a+F+` z=uk?Ya@b)ubx z2WA$JyVXMK!A+-W+n^rY?0xl$O;E2~_4fAe&9p))Z8X-Yo4rw-w*IVUZu0X(RKG&2 zrxyDABdVX@=3*X+|wex4gq+Uw)^1xDmk4>poMIAi$iikDO2UID^ zUj8^dJO-?Zy5U&-k1*=R7yi`jxTsXBQaqptKco{9F8-W;&D*eb4c*u zH$2TY#c@Cfve*O^s=u<00oP+LSb*Au-5o25-By-)WNJQY>oHy^n5`-*&i1- zd-m+OxSE=mJxY}-B_&xX6pCvvjT|&O3y-JWVoKBul>}3(+%KZi+ZSfdXRLu|?_(*# z*3?`c7NC!pP%IRW3aP+uA&nh% z+X6%Dn?rL5HtyqxzPH1Ia)BUBEDjS3jjNT*k&iL8aRFFSxyHm0>$|@ou@G^G`jRj9 zsMY1=VGuy=H9Ac&hd-v&oVnkCb^cDzKsPtHz-96Ao`Hey`Z6-W+FvuAlA=;qmSe0? zIAT1*@}W{WQa&>Ue1`g^Qvkgo2&{`h3e--%df0cS3l_9qA)Cx=GVn5-Ov(S8XziUpg&%*$DyqdE~QU_IT=j#gAG zUAkfg;-(#K0P2za{QRV%qM~SlAU)lbia$^Z22^-&k&X&~NrL_h?47koF;p^zSwOw^ zmDalR#V>oBS{E-R*oKCN^}E*`ftrYV{J2OhD33O!ieSp*;PsV073Wz?_X3ru~SUTT)b2cad6MITT%Mx(wv-rR1$J z6;NE1Xg;RG*xR$1)q(Z}oM3d6Gs!0WT8a<1gjzCFV-1?SaC>56+p5*8!MeDjq5`CA z+PB}j6_r=jom8n_H#B6@0pJbogLNZFx;*TZGE|s;wG~1!O9p(j6psc_K`#|qMBR}+ zZORlUN1WJW$EPn@z6!9bTU%R4M@QGRpM2WUk+-oRDk-V5sA#Cu=sXE%tmT^b&{E|X z$52Hi$-0l8T(g3}bpljWy%LM4TXJVin?@2lYtgppU~wDamc{=d#Mut*?!<$|YrC0hKP5 zWg{z2tfNa~$#fEliHRq#g@lBJ$HqbtgzyhH9=>x%iJ| zTas1!L7Ds1nM`6GZ{K08_wJr(4uPz$MA(8e1*eQpBh^tI3_F0cVFwUVay|;P9e_)^ zt;7Nd@t5f{8DoSc5!ySM9CYx#OD2U!*F3>LJAi@j5(DinM7{y3Zlha0J|&7%F0|_>&EZ$l{qR^*MhOW3Pm<}A+i;| z5k4|k*9WCmcP(H`31EF95En&6gb#uquFtW;%NBI$Jy)3wxHx3sbZsfwVx<>@=$yJ; zEv`%)-c@SV*I4PC(j9g6_4Rc-w&a*xBDB8iRy0N9M=JmS literal 0 HcmV?d00001 diff --git a/previews/opera.png b/previews/opera.png new file mode 100644 index 0000000000000000000000000000000000000000..12bb52ef048d57b67dc597cc8ba58c28e515ec5e GIT binary patch literal 3787 zcmV;+4m9zJP)*?v#($eqj>+$aH^zrfd_xJMHv8)9W z;NIWp<>k;MD6#|><>TUuuGQBMA@mq3&9k~S=vJep2v5w^vCEgJu&Xrw{ z#^>BHG41#F?G-2XL`3=Q$olu`8bXp#kjJmr@A~)g?<6t078d;)EZ^MP%j@>}8Y_Ky zeenAF<1;twIz1X3L)I!S!5JR--?sAh_vSb|)$RB0%a-lNjoI}1`Rmkqdyg7bn9|D0 zT^btYqoc_pB*h*fG&Vf)>Epxa^xeLm8X8>iKR;0#8n=vdj7_UO#5eTk)MpUbnO zjlR|ACuyh0l2ZEe*X)v%*I8ZVMosBqWxF;y-{a}z_4b|4?0BfsLP1oQvc#06uYHD! z?C$iFcVf}t=tF?G>c+;euCD8WgV%|T%RWQ*`uerJ!pg9&_20qRsBf828mh+J=h3`& zjJ5gm?6Gz`cPARgp_dvOb8$l&kG$X8ZgJ!yFxYr}*15W#yw|qh@o5?wL?0TIj*nq@ zoW-Mou4o$c>cvYtJH^Muc$~Nz8fKq|dM7_zaAQ^Izl4iX8Z=aCYG!PRGa4E*dUIGB z*weS))6?0}(KK9x;@8N(hC{knS5aJVoMsxFTpHW<^uLEh{Py$(qfrt701O{VL_t(& z-pyKxUldmo?&+54W;$aJNN-?hdPXvXgJ&=?Mp1_q#i%%v01_0$h-x58)Tp4~eFe{; zq9$sx8t-#GW6m|%WRL9rQCsz1zn<4U1EQ;u&tdu<^;OmPs$OIAQwRhCxq)2x1o{NO zpU!p=@rA&UA+HR1#Rg0WaE%|cJ@=Sjd-?o;kej6OZg|>2)&~baSIA9uIS{x{Z*cI5 zoc>IoCEUy7r)bT*^a`?8Kp+knkr*D`2g&RElTp>RrV`#=u_@tgjx+j9S zLku21$Z;x8XU<$94NuS=X7KRyu{sRAIaAD@{3*D{gNF~*N$)np;}-}#{(fEcmDWI0 zdA@w8j>j|9GZa1^PlhK0KKS$tZ9C_ejha4lRN4I1ZGu3J>7Fw*uBGymq1gH#!zazg z%$QQYyt-`qpKMGo+a~*YcgzJl6*r#`g>a|y;`q7z-N9wQ$1iUyvz3e=Id;t0(QjO; zmp#tYvuynt{uDlZ9BIT8Tw2e-cgX6WPpSiJwhNCCp3TIJ8vXifufYet#$1#H+l`Hl zzxMQ;IPBzO*qVEX?KCzv>9y6)Gy5{AW(=K^xEH3cYm}4d>?b68Jr4%WPQ1p3En51P{Ex1hOQw zjk3hdJbo@GJ3Hs(KR7*}q%9!ctk-s$O}ajf@k?NcA!>R$H#S#P6RSdf8Q(x0-v$@o zks_b!!1y4CS1N>AZKkg&h{Oyd8p%Jm;?ESvO(7W;Fb}#2#_ip+{59+KitbtM75V|J zgmCBP>D#(~;3~Z9*FMw_bUePf|KZtLHJkN{{Z+y#nCPvKEA;MOR~1<50`TC=ezMBo zoQt1QMXT9R9fh)ksks=4h80ay!bbT?OHbt*C3!M1Xwr*?{~A%#JXq6G(X(D}ErHH! z?S&A9dNK52#c8nH+M??nk746}O$&BrZB-!%t$-h>s&zcc_^DOGJtm2-4C6TYq&m#h zFK%OMc9a`I^aBb*k#m)mm5bn~^0VROge*5D`aYo$Q`}dgpN;(5QdSueK^j4vSG%24ds|bRxj(d%l;pBsyaXsQ#J&4O&d~6$_Se z8lM#@WD0``0js<1gMltFZTBui&)GT;sofiCCAEKPA;@b76ds&85PBj~o zA4q>0eigF?YW(CB`-hXyS0`DVndKpkFIsF((L(rBv~YV^=3K!`?Z8baOYteVLGSP&LqneHj($)cjU_?f#w z1#`#j z*qY-QvXXW@=f&|!b*PDEmRV}bVnJeJn~KI|OU`yv>^lSl&x=_WW_x84#f^b>_4nKEyDN7Y4QB|L=J^$P%-1*e#a2WHu#~gv{3zg3x*<- zb%;Z3Hq_lKIM|1Ko9_b8rwEw|#*dq!r{}Zy`9cAkDADm2K#tQD$eB&CBdXAK-1o`t zU#o~)RdyHz+vihZbN@+0m2KOPd`u7vro0qEU`D&PhU)!~V&#j>iAiKa()8~)jy(0t%N z2JUZFXoHa1kuiz6)@4U;v|CyJT~`-<`Ls}%L7Lg|2cH=yH*t9c*6 zXp7Z&E2n9tU(w-Saq?1pcGdia%;#LAr@WO-eWm}hSRm(J*18ik&5F+)bxqWm`zd>T z{~?2)s`)OUD8OdJB~epCS1dK7cZ5V{LL>!0v(&u$GwiT+xU^H@0esT?Z(@S0;A_Fe z&#?*5-GCOH{5~wK+61PXjN7WZkA}9VBHq65R}nci*Ma}&Bb4)HgkZPN-k$11_us&9 z`C@!=>;`ocL;#6T^2eE79ry~z=8mQqxk19Jpb46b;cb?h)v>TVqm$JxF0e z0_DIu^hftndWjm;y^!xzAdpV^8#X6Gwx@8lx`zA2QalbUCh)(d%@&KrBD-Px2+H50 zJ^(pOW{@MCAjX?-(3@#B8#{VUw5x;2iypJ&jD3sbO_97gSE6~`fyDm`D)zvjeJKWk z9528@{~K;N{#Jz0pLU8=4z$Pl86vzesGQ_<>vc#}6z44kIdBe}Nb2-bScc1?;!vdX zzrU$2x8#&IFPYJJn_9bI%TYu{QOxq=V=QbBGd-CbSgRc^HzhGC6BAPBbo3k|*B|Am z9Vg+;&;Je`e(NxZoHN6c^M(4;;WO|$o2nq6n}X$%{hM##zyh~egN>vlc!JJt>bnK{(7&LwG0FRksac(G1UV`Un%EtgQbjHe#RYNl zbvl}=P&t?u!I1>Z(wfe@VZW%w-|QP_r^p;ZpCzk@|-m*UQ1%cip$yM(U2FmsSQ4vJsT_D zri$9COak7Hg=ONw5u=?$6DNT496?p|G8PC+0NHN(M7$$4^8rX;!7c-L$n*CZv?_Qmkw z?xfrDhC`+ijm2WIs9}b}-c;9o!Jj3y7sH2UOK!6*L}oBAOpq6}L-AqRm=ERPOV05h z!_UTMV>GYi^}-cMOLLFG5X_xnUp}A6ajRu+k;0w`Hs;-=JFS<;2RVJ4qFXnWxklg~ z+6*2(sZKie{0X_~tRdVsFQ0E$XCUBD<5}?H`L>)qZytR5cNg>q;gfzoIQS{m;obHX z!tHkO@UsQ{w-DJm1TY}Ld3KKT$@bZr+isBX{|8IGc=jsMisAqO002ovPDHLkV1oBN B%Nzgz literal 0 HcmV?d00001 From 043195cd6dd7670733bee306a02b5be965570b5a Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 15 Feb 2021 17:06:23 +0300 Subject: [PATCH 0033/1224] Added stores --- previews/edge-disabled.png | Bin 0 -> 9661 bytes previews/firefox-disabled.png | Bin 0 -> 10738 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 previews/edge-disabled.png create mode 100644 previews/firefox-disabled.png diff --git a/previews/edge-disabled.png b/previews/edge-disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..5308d60154db7bcb4cd4c44d804a9d919d163f52 GIT binary patch literal 9661 zcmeHN-D@316yL=Lc4oHou zAoxKQDg_axC_)3}J}A;!Z6qSKD2f)*Qf(oUA{xE^erIOx?%kB+=57)K-9z@y%$eCa zzx|zaW@eW>H?ebcqaM^z6m1+I8@U7J+qiB@uEOud8&7ONvEhN?9m7#{eRXu|*vqfHIyCj?%*;&t^P%G>PDY0=w!S|w{ma4j>~#BR)cWn8JzrdE|IzyQ zhi~S;KK|o{*5Ak8`|I#a?bCaHot>V(Fh93<_w2;=2d1KfCx>o6_uqcNi0|D#IuboQ zuz3s(_0ZVvN2ADG%`1*xdt*}+ZHdN5hIdU4#2;L&3A5|xw*Ee7;n>ltiqIqoe(|P6 zB+S#>6o=5~kqV57m-(}190EwL#JjA}=g8lXDIhBcZvxl*G)B&3E>qUX%P^ymD8vMy zmO+-eT-MxE&?g8rid6I|RNR78(75$TMlJT!cN{J@>5BF>2?G_xbHg!wKn&ROQi-!}Q6|suIMn@I8dMynn zTpHnEMdE8J(y=E9-Kxyp3}U75dr4+7qWg||2!m4?K|LO(y3Lnb9@>f`1TLN)a887S1R>5iqTq(e12@k+spejX zbGXfX9?AaaqCs<@?3{E1&qz{~L!}OfoJ|q~d4f8;>07vLxkDtc4JEX%czDXYU~N03AZw#cN9t?X!vq13-9SwGd)~V6MPEF$9E!183v? zN$e`4$r>~ol;siEy$0i4FMgrsEi4MD#UW0k%oW-#Ap{N=jbe^f*NFPu=P@<`X5O^dNus(Z)%w;0OAmlPbQicO2-ONP?UceYM z!Y!;isTqf|{1)jdRv3u*D8iR~RD?5N5RJ>JJjGqJd$3nR*jbxh#Ilp@kz0yTj*^ftk?UlG(l>|rW+N+zcHgkvhb_FGa#C!(_*8;! z`L06^KJmymCf6ChLGgvw4TRp`i?>yL#NaJnDhPvm9hD8j`p&pgIXragoZV)2E^fdms@T-vv0@flXv2Oouct=J4fEX_3o$s2OZ{9 AC;$Ke literal 0 HcmV?d00001 diff --git a/previews/firefox-disabled.png b/previews/firefox-disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..995ee949eebdf0c3516e918c6adec4e73e4d1658 GIT binary patch literal 10738 zcmeI232YQq7{_N^*?454k@3JtLcC(sA<9@v%hlFhceg+(6%cDtD#jvcQj1uxC`Hs_ zG?pMiN)<(*94T0pBM?zMFn~~sBA{3Vt+iMc%cUqjzwcf1W_C-L2)oqyvYq42oB4k4 z|Nifrx6Mw;%?TOjTzZbCX+|U*$b{WA>qD17{z4S6{J3$Gz5>{kh`kSk2lWQNw$Y-zGxwh z0Wz-(*_%c758QiRQA6iDkJ*DrON2Cs$n%#R{Nu0AGq-(bj3YH&-@f@5lHX(9p4PJW zzbALyK*puETt0$)W|KA7k}Y9Ub{QFSEg5Z*M|$o)e>9nP6Is-YtPYbe(@2F$%2UXW zKFfMHl2<$5S-YD&bmhG%%gORo(vU&E?ngdNCl6dRwqSRD#>y*ZZ=6uDZ`!aw$&3rg zC)w4J)-F}`!Q)x!;brR+F{;k5vpN@7_{1_{h?p4JGeXjTu$* z@UZF^L(O}}1;=LBk-O5iU07P)Z`b{KJBun3=I>X3CDgmk#c|;Jwv@wtQ7l(zJb8-K9^gy8G!@viI+wb=BCcIV8W= zqk+#SUH{hHiV4%!P5Hfe_?n9Qnw}|qEzrDt?t_!xo_2Uk@bEX0g{gJHB`aE6hOP}3 zmknv2{N&U{fpW6gIx?j1yijS)EhR4(%=j@k@^bq0h2iZVUR8Ez$lz_G?UUgp-SyyL{q6ywfL7kAYZy+> zE)L&5UenI)jDNaTS#^n~b<-k&%%NjC>1(de+^PBfK0`n4i{bP8HNSb#V zQBd*pgo_u|091$u8{t?$RbfqC>g@!x83t4&4%J3dlk#%$Yy*m^2y5yv&YoiWMMdIJ zDJkFRx@{vUY;D8ISeEVJNIog*A<+ z$>l>hm{`8V89-3-y@yp;*0iLETmd$3bTe_N%&7{m5Ecwz*an|qD6ePqY(K3?AgXKp zDKRxF71#2a6qTg|nUc7yKAHj&h${629&s#TK}(0#i>lLC0Pylx09w~+6O~tSf;pFY zciY>!rj@`G`q8~$g&g3Z(wyGjvrqE%*r* zsD|GUAMOA^g(x-(4Wk20I7Z3{BLcLhqT6s8)ugDjVH~RB(oYn8wx@6_Q&GKdR?34( zm35J!(n?_Fs1(ML0BWT*alio;=`m>gs_N>z@^Hc_?*+9%6e_Ij>5_>VN1)<*-Ud;etbzxQ5dsx*=uKYkB z#sh;s)EX+PS5=_lW{Fmnj*A^1stV*{6~oW_qI8xX()h?A<^{uGJ&@xLR}D7PEe<7a zhI2Fk%?nmssIV?oiv#4YmtPTO0}9DD*h5Z?Lk|!F75f7tPrq2uT5krx`2mfgo%D%} z;57hz8&y%k1$ei&GWPfjT8z(7X~qO{hDx)nf?z-+Y^&r|8jLGVuWy zH@oWvD*8Jf1K?=4%PK<2y^?sCz6{lJudMi)ybEICo7eBGtk3{-e#M81tZl>MH6>O; z4?SMR*vDbTO9{nOgT+8)*(An%LeS)qdfryN6O_qo16HYaGr`9(R0RUgiaV;VIA^{; z)rg~d7Coq#&&@V=42WH>Dxk$0oz7r6IR_eDj+y|CUIs-DUOROTb&jM z|D&FYVdzLd4)LsfPK6vN=b65a^g||CmY)ups2$~T>A3al4-PaQ-t{j0>P?FTa{^1U HMosz$8Eb2s literal 0 HcmV?d00001 From 42654b426691a3722d633ad1e9a00baac7810a12 Mon Sep 17 00:00:00 2001 From: Dinko Cejvanovic Date: Mon, 15 Feb 2021 16:33:22 +0100 Subject: [PATCH 0034/1224] Small fix and improvement --- background.js | 738 ++++++++++++++++++++++----------------------- content-scripts.js | 8 +- content-styles.css | 6 +- 3 files changed, 372 insertions(+), 380 deletions(-) diff --git a/background.js b/background.js index bf59fbb44..33a3e5814 100644 --- a/background.js +++ b/background.js @@ -1,372 +1,368 @@ -/*--------------------------------------------------------------- ->>> BACKGROUND ------------------------------------------------------------------ -# Global variables -# Functions -# Context menu items -# Message listener -# Storage change listener -# Initialization -# Uninstall URL -# Google Analytics ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -# GLOBAL VARIABLES ----------------------------------------------------------------*/ - -var locale_code = 'en', - browser_icon = false; - - -/*--------------------------------------------------------------- -# FUNCTIONS ----------------------------------------------------------------*/ - -function isset(variable) { - if (typeof variable === 'undefined' || variable === null) { - return false; - } - - return true; -} - -function getTranslations(path) { - var xhr = new XMLHttpRequest(); - - xhr.addEventListener('load', function() { - if (chrome && chrome.tabs) { - chrome.tabs.query({}, function(tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - name: 'translation_response', - value: xhr.responseText - }); - } - } - }); - } - - chrome.runtime.sendMessage({ - name: 'translation_response', - value: xhr.responseText - }); - }); - - xhr.addEventListener('error', function() { - getTranslations('_locales/en/messages.json'); - }); - - xhr.open('GET', path, true); - xhr.send(); -} - -function browserActionIcon() { - if (browser_icon === 'always') { - chrome.browserAction.setIcon({ - path: 'assets/icons/32.png' - }); - } else { - chrome.browserAction.setIcon({ - path: 'assets/icons/32g.png' - }); - } -} - - -/*--------------------------------------------------------------- -# CONTEXT MENU ITEMS ----------------------------------------------------------------*/ - -chrome.contextMenus.removeAll(); - -chrome.contextMenus.create({ - id: '1111', - title: 'Donate', - contexts: ['browser_action'] -}); - -chrome.contextMenus.create({ - id: '1112', - title: 'Rate me', - contexts: ['browser_action'] -}); - -chrome.contextMenus.create({ - id: '1113', - title: 'GitHub', - contexts: ['browser_action'] -}); - -chrome.contextMenus.onClicked.addListener(function(event) { - if (event.menuItemId === '1111') { - window.open('https://www.improvedtube.com/donate'); - } else if (event.menuItemId === '1112') { - window.open('https://chrome.google.com/webstore/detail/improvedtube-for-youtube/bnomihfieiccainjcjblhegjgglakjdd'); - } else if (event.menuItemId === '1113') { - window.open('https://github.com/ImprovedTube/ImprovedTube'); - } -}); - - -/*--------------------------------------------------------------- -# MESSAGE LISTENER ----------------------------------------------------------------*/ - -chrome.runtime.onMessage.addListener(function(request, sender) { - if (isset(request) && typeof request === 'object') { - if (request.enabled === true && browser_icon !== 'always') { - chrome.browserAction.setIcon({ - path: 'assets/icons/32.png', - tabId: sender.tab.id - }); - } - - if (request.name === 'translation_request') { - getTranslations(request.path); - } - - if (request.name === 'improvedtube-analyzer') { - var data = request.value, - date = new Date().toDateString(), - hours = new Date().getHours() + ':00'; - - chrome.storage.local.get(function(items) { - if (!items.analyzer) { - items.analyzer = {}; - } - - if (!items.analyzer[date]) { - items.analyzer[date] = {}; - } - - if (!items.analyzer[date][hours]) { - items.analyzer[date][hours] = {}; - } - - if (!items.analyzer[date][hours][data]) { - items.analyzer[date][hours][data] = 0; - } - - items.analyzer[date][hours][data]++; - - chrome.storage.local.set({ - analyzer: items.analyzer - }); - }); - } - - if (request.name === 'improvedtube-blacklist') { - chrome.storage.local.get(function(items) { - if (!items.blacklist || typeof items.blacklist !== 'object') { - items.blacklist = {}; - } - - if (request.data.type === 'channel') { - if (!items.blacklist.channels) { - items.blacklist.channels = {}; - } - - items.blacklist.channels[request.data.id] = { - title: request.data.title, - preview: request.data.preview - }; - } - - if (request.data.type === 'video') { - if (!items.blacklist.videos) { - items.blacklist.videos = {}; - } - - items.blacklist.videos[request.data.id] = { - title: request.data.title - }; - } - - chrome.storage.local.set({ - blacklist: items.blacklist - }); - }); - } - - if (request.name === 'improvedtube-watched') { - chrome.storage.local.get(function(items) { - if (!items.watched || typeof items.watched !== 'object') { - items.watched = {}; - } - - if (request.data.action === 'set') { - items.watched[request.data.id] = { - title: request.data.title - }; - } - - if (request.data.action === 'remove') { - delete items.watched[request.data.id]; - } - - chrome.storage.local.set({ - watched: items.watched - }); - }); - } - - if (request.name === 'download') { - chrome.permissions.request({ - permissions: ['downloads'], - origins: ['https://www.youtube.com/*'] - }, function(granted) { - if (granted) { - try { - var blob = new Blob([JSON.stringify(request.value)], { - type: 'application/json;charset=utf-8' - }); - - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: request.filename, - saveAs: true - }); - } catch (err) { - chrome.runtime.sendMessage({ - name: 'dialog-error', - value: err - }); - } - } else { - chrome.runtime.sendMessage({ - name: 'dialog-error', - value: 'permissionIsNotGranted' - }); - } - }); - } - - if (request.name === 'improvedtube-play') { - chrome.tabs.query({}, function(tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - name: 'improvedtube-play', - id: request.id - }); - } - } - }); - } - - if (isset(request.export)) { - chrome.storage.local.get(function(data) { - chrome.permissions.request({ - permissions: ['downloads'], - origins: ['https://www.youtube.com/*'] - }, function(granted) { - if (granted) { - var blob = new Blob([JSON.stringify(data)], { - type: 'application/octet-stream' - }), - date = new Date(); - - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: 'improvedtube_' + (date.getMonth() + 1) + '_' + date.getDate() + '_' + date.getFullYear() + '.json', - saveAs: true - }); - } - }); - }); - } - } -}); - - -/*--------------------------------------------------------------- -# STORAGE CHANGE LISTENER ----------------------------------------------------------------*/ - -chrome.storage.onChanged.addListener(function(changes) { - if (isset(changes.improvedtube_language)) { - locale_code = changes.improvedtube_language.newValue; - } - - if (isset(changes.improvedtube_browser_icon)) { - browser_icon = changes.improvedtube_browser_icon.newValue; - } - - browserActionIcon(); - - _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); -}); - - -/*--------------------------------------------------------------- -# INITIALIZATION ----------------------------------------------------------------*/ - -chrome.storage.local.get(function(items) { - if (isset(items.improvedtube_language)) { - locale_code = items.improvedtube_language; - } - - if (isset(items.improvedtube_browser_icon)) { - browser_icon = items.improvedtube_browser_icon; - } - - browserActionIcon(); - - _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); -}); - - -/*--------------------------------------------------------------- -# UNINSTALL URL ----------------------------------------------------------------*/ - -chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); - - -/*--------------------------------------------------------------- -# GOOGLE ANALYTICS ----------------------------------------------------------------*/ - -var _gaq = _gaq || []; - -/*(function() { - var ga = document.createElement('script'); - - _gaq.push(['_setAccount', 'UA-88354155-1']); - _gaq.push(['_setSessionCookieTimeout', 14400000]); - - ga.type = 'text/javascript'; - ga.async = true; - ga.src = 'https://ssl.google-analytics.com/ga.js'; - - document.body.appendChild(ga); -})();*/ - - - - - - - - - -chrome.tabs.onActivated.addListener(function(activeInfo) { - chrome.tabs.query({}, function(tabs) { - chrome.tabs.sendMessage(activeInfo.tabId, { - action: 'focus' - }); - - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].id !== activeInfo.tabId) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - action: 'blur' - }); - } - } - } - }); +/*--------------------------------------------------------------- +>>> BACKGROUND +----------------------------------------------------------------- +# Global variables +# Functions +# Context menu items +# Message listener +# Storage change listener +# Initialization +# Uninstall URL +# Google Analytics +---------------------------------------------------------------*/ + +/*--------------------------------------------------------------- +# GLOBAL VARIABLES +---------------------------------------------------------------*/ + +var locale_code = 'en', + browser_icon = false; + + +/*--------------------------------------------------------------- +# FUNCTIONS +---------------------------------------------------------------*/ + +function isset(variable) { + return !(typeof variable === 'undefined' || variable === null); +} + +function getTranslations(path) { + var xhr = new XMLHttpRequest(); + + xhr.addEventListener('load', function() { + if (chrome && chrome.tabs) { + chrome.tabs.query({}, function(tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + name: 'translation_response', + value: xhr.responseText + }); + } + } + }); + } + + chrome.runtime.sendMessage({ + name: 'translation_response', + value: xhr.responseText + }); + }); + + xhr.addEventListener('error', function() { + getTranslations('_locales/en/messages.json'); + }); + + xhr.open('GET', path, true); + xhr.send(); +} + +function browserActionIcon() { + if (browser_icon === 'always') { + chrome.browserAction.setIcon({ + path: 'assets/icons/32.png' + }); + } else { + chrome.browserAction.setIcon({ + path: 'assets/icons/32g.png' + }); + } +} + + +/*--------------------------------------------------------------- +# CONTEXT MENU ITEMS +---------------------------------------------------------------*/ + +chrome.contextMenus.removeAll(); + +chrome.contextMenus.create({ + id: '1111', + title: 'Donate', + contexts: ['browser_action'] +}); + +chrome.contextMenus.create({ + id: '1112', + title: 'Rate me', + contexts: ['browser_action'] +}); + +chrome.contextMenus.create({ + id: '1113', + title: 'GitHub', + contexts: ['browser_action'] +}); + +chrome.contextMenus.onClicked.addListener(function(event) { + if (event.menuItemId === '1111') { + window.open('https://www.improvedtube.com/donate'); + } else if (event.menuItemId === '1112') { + window.open('https://chrome.google.com/webstore/detail/improvedtube-for-youtube/bnomihfieiccainjcjblhegjgglakjdd'); + } else if (event.menuItemId === '1113') { + window.open('https://github.com/ImprovedTube/ImprovedTube'); + } +}); + + +/*--------------------------------------------------------------- +# MESSAGE LISTENER +---------------------------------------------------------------*/ + +chrome.runtime.onMessage.addListener(function(request, sender) { + if (isset(request) && typeof request === 'object') { + if (request.enabled === true && browser_icon !== 'always') { + chrome.browserAction.setIcon({ + path: 'assets/icons/32.png', + tabId: sender.tab.id + }); + } + + if (request.name === 'translation_request') { + getTranslations(request.path); + } + + if (request.name === 'improvedtube-analyzer') { + var data = request.value, + date = new Date().toDateString(), + hours = new Date().getHours() + ':00'; + + chrome.storage.local.get(function(items) { + if (!items.analyzer) { + items.analyzer = {}; + } + + if (!items.analyzer[date]) { + items.analyzer[date] = {}; + } + + if (!items.analyzer[date][hours]) { + items.analyzer[date][hours] = {}; + } + + if (!items.analyzer[date][hours][data]) { + items.analyzer[date][hours][data] = 0; + } + + items.analyzer[date][hours][data]++; + + chrome.storage.local.set({ + analyzer: items.analyzer + }); + }); + } + + if (request.name === 'improvedtube-blacklist') { + chrome.storage.local.get(function(items) { + if (!items.blacklist || typeof items.blacklist !== 'object') { + items.blacklist = {}; + } + + if (request.data.type === 'channel') { + if (!items.blacklist.channels) { + items.blacklist.channels = {}; + } + + items.blacklist.channels[request.data.id] = { + title: request.data.title, + preview: request.data.preview + }; + } + + if (request.data.type === 'video') { + if (!items.blacklist.videos) { + items.blacklist.videos = {}; + } + + items.blacklist.videos[request.data.id] = { + title: request.data.title + }; + } + + chrome.storage.local.set({ + blacklist: items.blacklist + }); + }); + } + + if (request.name === 'improvedtube-watched') { + chrome.storage.local.get(function(items) { + if (!items.watched || typeof items.watched !== 'object') { + items.watched = {}; + } + + if (request.data.action === 'set') { + items.watched[request.data.id] = { + title: request.data.title + }; + } + + if (request.data.action === 'remove') { + delete items.watched[request.data.id]; + } + + chrome.storage.local.set({ + watched: items.watched + }); + }); + } + + if (request.name === 'download') { + chrome.permissions.request({ + permissions: ['downloads'], + origins: ['https://www.youtube.com/*'] + }, function(granted) { + if (granted) { + try { + var blob = new Blob([JSON.stringify(request.value)], { + type: 'application/json;charset=utf-8' + }); + + chrome.downloads.download({ + url: URL.createObjectURL(blob), + filename: request.filename, + saveAs: true + }); + } catch (err) { + chrome.runtime.sendMessage({ + name: 'dialog-error', + value: err + }); + } + } else { + chrome.runtime.sendMessage({ + name: 'dialog-error', + value: 'permissionIsNotGranted' + }); + } + }); + } + + if (request.name === 'improvedtube-play') { + chrome.tabs.query({}, function(tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + name: 'improvedtube-play', + id: request.id + }); + } + } + }); + } + + if (isset(request.export)) { + chrome.storage.local.get(function(data) { + chrome.permissions.request({ + permissions: ['downloads'], + origins: ['https://www.youtube.com/*'] + }, function(granted) { + if (granted) { + var blob = new Blob([JSON.stringify(data)], { + type: 'application/octet-stream' + }), + date = new Date(); + + chrome.downloads.download({ + url: URL.createObjectURL(blob), + filename: 'improvedtube_' + (date.getMonth() + 1) + '_' + date.getDate() + '_' + date.getFullYear() + '.json', + saveAs: true + }); + } + }); + }); + } + } +}); + + +/*--------------------------------------------------------------- +# STORAGE CHANGE LISTENER +---------------------------------------------------------------*/ + +chrome.storage.onChanged.addListener(function(changes) { + if (isset(changes.improvedtube_language)) { + locale_code = changes.improvedtube_language.newValue; + } + + if (isset(changes.improvedtube_browser_icon)) { + browser_icon = changes.improvedtube_browser_icon.newValue; + } + + browserActionIcon(); + + _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); +}); + + +/*--------------------------------------------------------------- +# INITIALIZATION +---------------------------------------------------------------*/ + +chrome.storage.local.get(function(items) { + if (isset(items.improvedtube_language)) { + locale_code = items.improvedtube_language; + } + + if (isset(items.improvedtube_browser_icon)) { + browser_icon = items.improvedtube_browser_icon; + } + + browserActionIcon(); + + _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); +}); + + +/*--------------------------------------------------------------- +# UNINSTALL URL +---------------------------------------------------------------*/ + +chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); + + +/*--------------------------------------------------------------- +# GOOGLE ANALYTICS +---------------------------------------------------------------*/ + +var _gaq = _gaq || []; + +/*(function() { + var ga = document.createElement('script'); + + _gaq.push(['_setAccount', 'UA-88354155-1']); + _gaq.push(['_setSessionCookieTimeout', 14400000]); + + ga.type = 'text/javascript'; + ga.async = true; + ga.src = 'https://ssl.google-analytics.com/ga.js'; + + document.body.appendChild(ga); +})();*/ + + + + + + + + + +chrome.tabs.onActivated.addListener(function(activeInfo) { + chrome.tabs.query({}, function(tabs) { + chrome.tabs.sendMessage(activeInfo.tabId, { + action: 'focus' + }); + + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].id !== activeInfo.tabId) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + action: 'blur' + }); + } + } + } + }); }); \ No newline at end of file diff --git a/content-scripts.js b/content-scripts.js index 77574bb05..129e26e94 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -36,12 +36,8 @@ function youtubeHomePage(option) { ------------------------------------------------------------------------------*/ function isset(variable) { - if (typeof variable === 'undefined' || variable === null) { - return false; - } - - return true; -}; + return !(typeof variable === 'undefined' || variable === null); +} function camelize(string) { return string.replace(/_[a-z]/g, function(match) { diff --git a/content-styles.css b/content-styles.css index 4f337ae48..13879040f 100644 --- a/content-styles.css +++ b/content-styles.css @@ -128,7 +128,7 @@ ytd-item-section-renderer .it-section-collapse svg { width: 24px; height: 24px; transition: transform 150ms; - fill: var(--ytd-menu-renderer-button-color, var(--yt-spec-icon-inactive)); + fill: var(--yt-spec-icon-inactive); } ytd-item-section-renderer .it-section-collapse:hover svg { @@ -228,7 +228,7 @@ html[it-remove-related-search-results=true] li>div.search-refinements { left: 4px; width: 20px; height: 20px; - fill: var(--ytd-menu-renderer-button-color, var(--yt-spec-icon-inactive, #aaa)); + fill: var(--yt-spec-icon-inactive, #aaa); } *:hover>.it-mark-watched { @@ -746,7 +746,7 @@ html[it-player-color]:not([it-player-color='red']) .ytp-settings-button.ytp-hd-q background-color: var(--it-player-color) !important; } -html[it-player-color]([it-player-color='red']) .ytp-swatch-color { +html[it-player-color]:not([it-player-color='red']) .ytp-swatch-color { color: var(--it-player-color) !important; } From e299b7a93ed946d69eb6b5d27fe94ce6cdaa0f1b Mon Sep 17 00:00:00 2001 From: Dinko Cejvanovic Date: Tue, 16 Feb 2021 07:59:52 +0100 Subject: [PATCH 0035/1224] Some more fixes --- popup.css | 3988 ++++++++++++++-------------- popup.js | 6343 ++++++++++++++++++++++---------------------- satus.css | 40 +- youtube-scripts.js | 4 +- 4 files changed, 5188 insertions(+), 5187 deletions(-) diff --git a/popup.css b/popup.css index 85e281d5d..ad5a94e66 100644 --- a/popup.css +++ b/popup.css @@ -1,1994 +1,1994 @@ - -/*--------------------------------------------------------------- ->>> THEMES ------------------------------------------------------------------ -1.0 Dark -2.0 Night -3.0 Dawn -4.0 Sunset -5.0 Desert -6.0 Plain -7.0 Black ----------------------------------------------------------------*/ - -html { - --satus-theme-primary: #ff4158; -} - - -/*--------------------------------------------------------------- -1.0 DARK ----------------------------------------------------------------*/ - -html[theme="dark"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #2c2b2c; - --satus-theme-dialog-text: #b5b5b5; - - --satus-theme-header: #343334; - --satus-theme-header-text: #b5b5b5; - - --satus-theme-main: #2c2b2c; - --satus-theme-main-text: #b5b5b5; - - --satus-theme-section: #343334; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - -/*--------------------------------------------------------------- -2.0 NIGHT ----------------------------------------------------------------*/ - -html[theme="night"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #61a7f5; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #61a7f5; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #3a48b4; - --satus-theme-main-text: #fafafa; - - --satus-theme-section: #61a7f5; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -3.0 DAWN ----------------------------------------------------------------*/ - -html[theme="dawn"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #ffba99; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #ffba99; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #ed74a9; - --satus-theme-main-text: #eee; - - --satus-theme-section: #ffba99; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -4.0 SUNSET ----------------------------------------------------------------*/ - -html[theme="sunset"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #a96165; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #a96165; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #2f3364; - --satus-theme-main-text: #eee; - - --satus-theme-section: #a96165; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -5.0 DESERT ----------------------------------------------------------------*/ - -html[theme="desert"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #9dc2ee; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #9dc2ee; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #ffe498; - --satus-theme-main-text: #eee; - - --satus-theme-section: #9dc2ee; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -6.0 PLAIN ----------------------------------------------------------------*/ - -html[theme="plain"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #abceb8; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #abceb8; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #dea975; - --satus-theme-main-text: #eee; - - --satus-theme-section: #abceb8; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -7.0 BLACK ----------------------------------------------------------------*/ - -html[theme="black"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #222; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #222; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #111; - --satus-theme-main-text: #eee; - - --satus-theme-section: #222; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - -/*-------------------------------------------------------------- ->>> TABLE OF CONTENTS: ----------------------------------------------------------------- -# Fonts -# Basic ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# FONTS ---------------------------------------------------------------*/ - -@font-face -{ - font-family: 'Open Sans'; - font-weight: 400; - - src: url('assets/fonts/OpenSans-Regular.ttf'); -} - -@font-face -{ - font-family: 'Open Sans'; - font-weight: 600; - - src: url('assets/fonts/OpenSans-SemiBold.ttf'); -} - - -/*-------------------------------------------------------------- -# BASIC ---------------------------------------------------------------*/ - -body -{ - font-family: 'Open Sans', sans-serif; - font-size: 14px; - - display: flex; - overflow: hidden; - flex-direction: column; - - width: 300px; - height: 532px; - margin: 0; - - background-color: #eee; -} - -body.improvedtube-page -{ - width: 100vw; - height: 100vh; -} - -button -{ - font-family: 'Open Sans', sans-serif; -} - - - - - -.satus-dialog--confirm .satus-section -{ - display: flex; - background-color: transparent; -} - -.satus-dialog--confirm .satus-text -{ - display: block; - - box-sizing: border-box; - padding: 0 16px 8px; -} - -.satus-dialog--confirm .satus-button -{ - font-weight: 500; - - overflow: hidden; - - height: 28px; - min-height: 28px; - margin-right: 2px; - padding: 4px 8px; - - text-transform: uppercase; - - color: #f96754; - border-radius: 4px; -} - - - - - - - - - - - - - - - - - - - - - - -.satus-section--footer -{ - position: fixed; - z-index: 99; - bottom: 10px; - left: 16px; - display: flex; - box-sizing: border-box; - box-shadow: 0 0 3px rgba(0,0,0,.1); - width: 268px; - height: 38px; - padding: 8px 16px; - color: var(--satus-theme-main-text); - border-radius: 4px; - background: var(--satus-theme-section); - align-items: center; - justify-content: space-between; -} - -html[it-improvedtube-home='list'] .satus-section--footer -{ - position: relative; - left: 0; - top: 0; - margin: 50px 16px 16px; -} - -.satus-main .satus-section--footer .satus-button -{ - font-family: 'Open Sans', sans-serif; - font-weight: 700; - font-size: 13px; - text-decoration: none; - color: var(--satus-theme-main-text); - text-align: center; - height: 32px; - justify-content: center; - border-radius: 4px; - overflow: hidden; -} - -.satus-main .satus-section--footer .satus-button--found-a-bug { - width: 128px; - position: absolute; - bottom: 48px; - left: 70px; -} - -.satus-dialog--setup -{ - animation: unset; -} - -.satus-dialog--setup .satus-dialog__scrim -{ - display: none; -} - -.satus-dialog--setup .satus-dialog__surface -{ - position: absolute; - top: 0; - left: 0; - - padding: 0; - - width: 100%; - height: 100%; - max-height: unset; - - transform: unset; - animation: unset; - - opacity: 1; - border-radius: unset; -} - -.satus-dialog--setup-language .satus-button -{ - width: 100%; - height: 48px; -} - -/*--------------------------------------------------------------- ->>> HEADER: ------------------------------------------------------------------ -1.0 Buttons - 1.1 Back button -2.0 Title -3.0 Right section -4.0 Search -5.0 Vertical menu ----------------------------------------------------------------*/ - -/*--------------------------------------------------------------- -1.0 BUTTONS ----------------------------------------------------------------*/ - -.satus-header .satus-button -{ - width: 36px; - height: 36px; - padding: 6px; -} - -.satus-header .satus-button::before -{ - border-radius: 50%; -} - - -/*--------------------------------------------------------------- -1.1 BACK BUTTON ----------------------------------------------------------------*/ - -.satus-button--back -{ - position: absolute; -} - -.satus-button--back svg -{ - fill: none; - stroke: currentColor; -} - -body[data-appearance='home'] .satus-button--back -{ - visibility: hidden; -} - - -/*--------------------------------------------------------------- -2.0 TITLE ----------------------------------------------------------------*/ - -.satus-text--title -{ - font-size: 15px; - font-weight: 400; - - position: absolute; - left: 56px; - - letter-spacing: .0125em; -} - -html[it-title-version='true'] body[data-appearance='home'] .satus-text--title::after -{ - font: 700 10px sans-serif; - - margin: 0 0 0 4px; - - content: attr(data-version); - - opacity: .6; - color: var(--satus-theme-header-text); -} - -body[data-appearance='home'] .satus-text--title -{ - left: 14px; -} - - -/*--------------------------------------------------------------- -3.0 RIGHT SECTION ----------------------------------------------------------------*/ - -.satus-section--align-end -{ - justify-content: flex-end; -} - -.satus-section--align-end .satus-button + .satus-button -{ - margin-left: 8px; -} - - -/*--------------------------------------------------------------- -4.0 SEARCH ----------------------------------------------------------------*/ - -.satus-dialog--search -{ - pointer-events: none; -} - -.satus-dialog--search .satus-dialog__scrim -{ - display: none; -} - -.satus-dialog--search .satus-dialog__surface -{ - position: fixed; - top: 11px; - right: 8px; - - visibility: unset; - - width: calc(100% - 62px); - min-width: unset; - max-width: unset; - height: 34px; - padding: 0; - - transform: unset; - animation: unset; - pointer-events: all; - - opacity: unset; - border: 1px solid rgba(0,0,0,.05); - box-shadow: unset; -} - -.satus-dialog--search .satus-dialog__surface .satus-text-field -{ - height: 34px; -} - -.satus-dialog--search .satus-dialog__surface .satus-button -{ - position: absolute; - top: 3px; - right: 3px; - - overflow: hidden; - - width: 32px; - height: 32px; - - border-radius: 50%; -} - -.satus-dialog--search .satus-dialog__surface .satus-button svg -{ - fill: unset; - stroke: currentColor; -} - - -body[data-appearance='search'] .satus-switch--red, -body[data-appearance='search'] .satus-switch--dark, -body[data-appearance='search'] .satus-switch--night, -body[data-appearance='search'] .satus-switch--dawn, -body[data-appearance='search'] .satus-switch--sunset, -body[data-appearance='search'] .satus-switch--desert, -body[data-appearance='search'] .satus-switch--plain, -body[data-appearance='search'] .satus-switch--black -{ - width: calc(100% - 16px); - margin: 4px 8px; - - border-radius: 6px; -} - -body[data-appearance='search'] .satus-switch--red .satus-switch__label, -body[data-appearance='search'] .satus-switch--dark .satus-switch__label, -body[data-appearance='search'] .satus-switch--night .satus-switch__label, -body[data-appearance='search'] .satus-switch--dawn .satus-switch__label, -body[data-appearance='search'] .satus-switch--sunset .satus-switch__label, -body[data-appearance='search'] .satus-switch--black .satus-switch__label -{ - color: #fff; -} - -body[data-appearance='search'] .satus-switch--plain .satus-switch__label, -body[data-appearance='search'] .satus-switch--desert .satus-switch__label -{ - color: #222; -} - - -/*--------------------------------------------------------------- -5.0 VERTICAL MENU ----------------------------------------------------------------*/ - -.satus-dialog--vertical-menu .satus-dialog__surface -{ - position: absolute; - top: 8px; - right: 8px; - left: auto; - - min-width: 180px; - max-width: 180px; - - transform-origin: right top; -} - -.satus-dialog--vertical-menu .satus-button, -.satus-dialog--vertical-menu .satus-folder -{ - width: 100%; - height: 36px; - padding: 0 16px; - - text-align: left; -} - -.satus-dialog--vertical-menu .satus-folder svg, -.satus-dialog--vertical-menu .satus-button svg -{ - width: 20px; - height: 18px; - margin: 0 14px 0 0; - - opacity: .75; - - fill: none; - stroke: var(--satus-theme-primary); -} - -.satus-dialog--vertical-menu .satus-folder--mixer svg -{ - height: 20px; -} - -.satus-dialog--vertical-menu .satus-button--github svg -{ - width: 18px; - height: 18px; -} - -/*-------------------------------------------------------------- ->>> MAIN: ----------------------------------------------------------------- -1.0 Basic -2.0 Section -3.0 Folder -4.0 Button -5.0 Custom ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -1.0 BASIC ---------------------------------------------------------------*/ - -.satus-main -{ - flex: 1; -} - - -/*-------------------------------------------------------------- -2.0 SECTION ---------------------------------------------------------------*/ - -.satus-main .satus-section--label -{ - font-size: 17px; - - display: block; - - width: calc(100% - 16px); - max-width: 900px; - margin: 16px auto 8px; -} - -html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-section:not(.satus-section--footer), -.satus-main__container:not([data-appearance='home']) .satus-section:not(.satus-section--footer) -{ - display: block; - - width: calc(100% - 16px); - max-width: 900px; - margin: 8px auto; - padding: 8px 0; - - border: 1px solid rgba(0,0,0,.1); - border-radius: 8px; -} - -html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-section--message, -.satus-main__container:not([data-appearance='home']) .satus-section--message -{ - padding-right: 8px; - padding-left: 8px; -} - - -/*-------------------------------------------------------------- -3.0 FOLDER ---------------------------------------------------------------*/ - -.satus-main .satus-folder svg -{ - width: 20px; - height: 20px; - margin: 0 14px 0 0; - - opacity: .75; - - stroke: none; - fill: var(--satus-theme-primary); -} - - -/*-------------------------------------------------------------- -4.0 BUTTON ---------------------------------------------------------------*/ - -.satus-main .satus-button -{ - width: 100%; - height: 48px; - padding: 0 16px; - text-align: left; -} - - -/*-------------------------------------------------------------- -5.0 CUSTOM ---------------------------------------------------------------*/ - -#forced-playback-speed + *, -#forced-volume + * -{ - pointer-events: none; - - opacity: .5; -} - -#forced-playback-speed[data-value=true] + *, -#forced-volume[data-value=true] + * -{ - pointer-events: all; - - opacity: 1; -} - -/*-------------------------------------------------------------- ->>> HOME ---------------------------------------------------------------*/ - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-section:not(.satus-section--footer) -{ - width: 100%; - margin-top: 16px; - - flex-wrap: wrap; - - background-color: transparent; -} - - - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder -{ - position: relative; - - flex-direction: column; - - width: 64px; - height: 86px; - margin: 0 18px 14px; - padding: 0; - - cursor: default; -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder::before -{ - background-color: transparent -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder__label -{ - text-align: center; - pointer-events: none; - line-height: 12px; -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder:focus, -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder:hover -{ - background-color: transparent; -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg, -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--shortcut__icon -{ - display: block; - overflow: visible; - - width: 28px; - height: 28px; - margin: 0 0 5px 0; - padding: 16px; - - cursor: pointer; - transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; - - opacity: .95; - border-radius: 50%; - background: linear-gradient(135deg, #ff4158, #ff001f); - box-shadow: 0 2px 1px 1px rgb(222, 0, 27, .7), 0 3px 5px rgba(0,0,0,.35); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg:focus, -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg:hover -{ - transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; - transform: translateY(4px) scale(.975); - - box-shadow: 0 1px 1px 0 rgba(222, 0, 27, .7), 0 1px 2px rgba(0,0,0,.35); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--general svg -{ - width: 26px; - height: 26px; - padding: 19px 17px 15px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--appearance svg -{ - width: 26px; - height: 26px; - padding: 19px 17px 15px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--themes svg -{ - padding: 17px 16px 15px 16px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--player svg -{ - width: 26px; - height: 26px; - padding: 19px 15px 15px 19px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--playlist svg -{ - padding: 17px 16px 15px 16px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--channel svg -{ - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--shortcut svg -{ - width: 26px; - height: 26px; - padding: 19px 17px 15px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--mixer svg -{ - padding: 17px 16px 15px 16px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--blacklist svg -{ - width: 26px; - height: 26px; - padding: 18px 17px 16px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--analyzer svg -{ - width: 26px; - height: 26px; - padding: 18px 17px 16px 17px; - - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-folder svg -{ - fill: transparent; - stroke: var(--satus-theme-primary); -} - - - -html[it-it-general='false'] .satus-folder--general, -html[it-it-appearance='false'] .satus-folder--appearance, -html[it-it-themes='false'] .satus-folder--themes, -html[it-it-player='false'] .satus-folder--player, -html[it-it-playlist='false'] .satus-folder--playlist, -html[it-it-channel='false'] .satus-folder--channel, -html[it-it-shortcuts='false'] .satus-folder--shortcut, -html[it-it-blacklist='false'] .satus-folder--blacklist, -html[it-it-analyzer='false'] .satus-folder--analyzer -{ - display: none; -} - -/*-------------------------------------------------------------- -# APPEARANCE ---------------------------------------------------------------*/ - -.satus-main__container[data-appearance='appearance'] .satus-folder -{ - position: absolute; - - box-sizing: border-box; - padding: 0; - - transition-duration: .5s; - transition-property: transform, box-shadow; - transform: scale(1); - text-align: center; - - border: 1px solid var(--main-appearance-shadow, #dfdfdf); - border-radius: 6px; - box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0); - - justify-content: center; - align-items: center; -} - -.satus-main__container[data-appearance='appearance'] .satus-folder:hover -{ - z-index: 9; - - transition-duration: .25s; - transform: scale(1.03) translate(-8px, -4px); - - box-shadow: 1px 1px 0 0 var(--main-appearance-shadow, #dfdfdf), 2px 2px 0 0 var(--main-appearance-shadow, #dfdfdf), 3px 3px 0 0 var(--main-appearance-shadow, #dfdfdf), 4px 4px 0 0 var(--main-appearance-shadow, #dfdfdf), 5px 6px 4px 0 rgba(0, 0, 0, .1); -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--header -{ - top: 16px; - left: 16px; - - width: calc(100% - 32px); - height: 40px; - min-height: auto; - - background-color: var(--satus-theme-dialog); - color: var(--satus-theme-dialog-text); -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--header:hover -{ - transform: scale(1.03) translate(-9px, -4px); -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--player -{ - top: 64px; - left: 16px; - - width: calc(70% - 32px); - height: 96px; - min-height: auto; - - color: #eee; - border-color: #333; - background-color: #444; -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--player .label -{ - color: #fff; -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--player:hover -{ - transform: scale(1.03) translate(-7px, -4px); - - box-shadow: 1px 1px 0 0 #333, 2px 2px 0 0 #333, 3px 3px 0 0 #333, 4px 4px 0 0 #333, 5px 6px 4px 0 rgba(0, 0, 0, .1); -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--details -{ - top: 168px; - left: 16px; - - width: calc(70% - 32px); - height: 56px; - min-height: auto; - - background-color: var(--satus-theme-dialog); - color: var(--satus-theme-dialog-text); -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--description -{ - top: 13.5rem; - left: 1rem; - - width: calc(70% - 2rem); - height: 3.5rem; - min-height: 3.5rem; - - background-color: var(--satus-theme-dialog); - color: var(--satus-theme-dialog-text); -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--comments -{ - top: 232px; - left: 16px; - - width: calc(70% - 32px); - height: 80px; - min-height: auto; - - background-color: var(--satus-theme-dialog); - color: var(--satus-theme-dialog-text); -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--footer -{ - top: 320px; - left: 16px; - - width: calc(70% - 32px); - height: 64px; - min-height: auto; - - background-color: var(--satus-theme-dialog); - color: var(--satus-theme-dialog-text); -} - -.satus-main__container[data-appearance='appearance'] .satus-folder--sidebar -{ - top: 64px; - left: calc(70% - 8px); - - width: calc(30% - 8px); - height: 160px; - - background-color: var(--satus-theme-dialog); - color: var(--satus-theme-dialog-text); -} - -/*----------------------------------------------------------------------------- -# THEMES CATEGORY ------------------------------------------------------------------------------*/ - -.satus-main__container[data-appearance='themes'] .satus-switch:first-child -{ - margin-top: 16px; -} - -.satus-main__container[data-appearance='themes'] .satus-switch:last-child -{ - margin-bottom: 16px; -} - -.satus-main__container[data-appearance='themes'] .satus-switch -{ - width: calc(100% - 16px); - max-width: 900px; - height: 80px; - margin: 8px auto; - - border-radius: 8px; -} - -.satus-main__container[data-appearance='themes'] .satus-switch__label -{ - font-size: 15px; - font-weight: 500; - - color: #eee; - text-shadow: 0 1px 3px rgba(0, 0, 0, .7); -} - -.satus-switch--dark -{ - position: relative; - - overflow: hidden; - - background: linear-gradient(#0d1216, #353d46) !important; -} - -.satus-switch--dark::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - animation-name: satus-switch--dark; - animation-duration: 4s; - animation-timing-function: ease-in-out; - animation-iteration-count: infinite; - pointer-events: none; - - background: radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%) !important; - background-repeat: no-repeat !important; - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px !important; - background-size: 50px 50px, 50px 50px, 100px 100px, 75px 75px !important; - - filter: blur(8px); -} - -@keyframes satus-switch--dark -{ - 0% - { - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; - } - - 50% - { - background-position: 20px 20px, 230px -20px, 0 -40px, 160px 10px; - } - - 100% - { - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; - } -} - -.satus-switch--night -{ - position: relative; - - overflow: hidden; - - animation-name: satus-switch--night; - animation-duration: .75s; - animation-iteration-count: infinite; - - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5) !important; - background-repeat: no-repeat !important; - background-position: 75% 80%, 35% 65%, 30% 10%, 50% 40%, 10% 80%, 90% 10%, 0 0 !important; - background-size: 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, auto !important; -} - -@keyframes satus-switch--night -{ - 0% - { - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } - - 25% - { - background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } - - 50% - { - background-image: radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .9) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } - - 75% - { - background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } - - 100% - { - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); - } -} - -.satus-switch--dawn -{ - position: relative; - - overflow: hidden; - - background: linear-gradient(#ed74a9, #ffba99) !important; -} - -.satus-switch--dawn::before -{ - position: absolute; - right: 1rem; - bottom: -5rem; - - width: 10rem; - height: 10rem; - - content: ''; - animation-name: satus-switch--dawn; - animation-duration: .75s; - animation-iteration-count: infinite; - pointer-events: none; - - border-radius: 50%; - background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; -} - -@keyframes satus-switch--dawn -{ - 0% - { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); - } - - 50% - { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, - rgba(255, 255, 231, .30) 20%, - rgba(255, 255, 231, .30) 35%, - rgba(255, 255, 231, .20) 35%, - rgba(255, 255, 231, .20) 55%, - rgba(255, 255, 231, .10) 55%, - rgba(255, 255, 231, .10) 75%, transparent 75%); - } - - 100% - { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); - } -} - -.satus-switch--sunset -{ - position: relative; - - overflow: hidden; - - background: linear-gradient(#2f3364, #a96165) !important; -} - -.satus-switch--sunset::before -{ - position: absolute; - top: -1rem; - left: 50%; - - overflow: hidden; - - width: 8rem; - height: 8rem; - - content: ''; - transform: translate(-50%, 0%); - pointer-events: none; - - border-radius: 50%; - background: linear-gradient(#fa7965, #f56264, transparent) !important; -} - -.satus-switch--desert -{ - position: relative; - - overflow: hidden; - - background-image: radial-gradient(#ffe498 50%, transparent 50%), - linear-gradient(#9dc2ee, #f5fdff) !important; - background-repeat: no-repeat !important; - background-position: -120px 36px, 0 !important; - background-size: 240%, 100% !important; -} - -.satus-switch--desert::before -{ - position: absolute; - top: -100%; - left: 40%; - - width: 10rem; - height: 10rem; - - content: ''; - animation-name: satus-switch--desert; - animation-duration: .75s; - animation-delay: .5s; - animation-iteration-count: infinite; - pointer-events: none; - - border-radius: 50%; - background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; -} - -@keyframes satus-switch--desert -{ - 0% - { - background: radial-gradient(#fefefe 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); - } - - 50% - { - background: radial-gradient(#fefefe 20%, - rgba(255, 255, 231, .30) 20%, - rgba(255, 255, 231, .30) 35%, - rgba(255, 255, 231, .20) 35%, - rgba(255, 255, 231, .20) 55%, - rgba(255, 255, 231, .10) 55%, - rgba(255, 255, 231, .1) 75%, transparent 75%); - } - - 100% - { - background: radial-gradient(#fefefe 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); - } -} - -.satus-switch--plain -{ - position: relative; - - overflow: hidden; - - background-image: radial-gradient(#dea975 50%, transparent 50%), - radial-gradient(#e8b887 50%, transparent 50%), - radial-gradient(#f1cc9f 50%, transparent 50%), - radial-gradient(#f3ddb8 50%, transparent 50%), - linear-gradient(#abceb8, #e7ede1) !important; - background-repeat: no-repeat !important; - background-position: -50px 50px, -370px 40px, 0 36px, -360px 26px, 0 !important; - background-size: 240%, 240%, 240%, 240%, 100% !important; -} - -.satus-switch--plain::before -{ - position: absolute; - top: -70%; - left: 10%; - - width: 7rem; - height: 7rem; - - content: ''; - animation-name: satus-switch--plain; - animation-duration: .75s; - animation-delay: .2s; - animation-iteration-count: infinite; - pointer-events: none; - - border-radius: 50%; - background: radial-gradient(#fff 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; -} - -.satus-switch--black -{ - background: #000 !important; -} - -/*----------------------------------------------------------------------------- -# BLACKLIST CATEGORY ------------------------------------------------------------------------------*/ - -.satus-section.satus-section--blacklist -{ - position: relative; - - overflow: hidden; - flex-direction: column; - - width: calc(100% - 32px); - height: 116px; - margin: 8px 16px 0; - - transition: opacity .25s; - - opacity: 1; - border-radius: 10px; - background-color: #000; - background-position: center; - background-size: cover; - - flex: unset; - align-items: flex-start; -} - -.satus-section.satus-section--blacklist.removing -{ - opacity: 0; -} - -.satus-section.satus-section--blacklist::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - margin: 0; - - content: ''; - - background: rgba(0, 0, 0, .5); -} - -.satus-section.satus-section--blacklist > .label -{ - font-size: 16px; - font-weight: 700; - - position: absolute; - z-index: 1; - bottom: 28px; - - text-transform: uppercase; - - opacity: 1; - color: #fff; -} - -.satus-section.satus-section--blacklist::after -{ - position: absolute; - z-index: 1; - bottom: 16px; - left: 16px; - - content: attr(data-label); - - color: rgba(255, 255, 255, .5); -} - -.satus-section.satus-section--blacklist > .satus-section -{ - position: absolute; - z-index: 999; - bottom: 0; - - visibility: hidden; - - width: 100%; - margin: 0; - padding: 0; - - transition: .15s; - - opacity: 0; - border: none; - border-radius: 0; - background: rgba(255, 255, 255, .95); - - justify-content: center; -} - -.satus-section.satus-section--blacklist:hover > .satus-section -{ - visibility: visible; - - opacity: 1; -} -/*----------------------------------------------------------------------------- -# ANALYZER CATEGORY ------------------------------------------------------------------------------*/ - -.analyzer-top-text -{ - font-size: 13px; - - display: flex; - - box-sizing: border-box; - margin: 16px 0 0; - padding: 0 16px; - - background: transparent !important; - - justify-content: space-between; -} - -.analyzer-watch-time -{ - text-transform: uppercase; -} - -.analyzer-today-at -{ - box-sizing: border-box; -} - -.analyzer-container -{ - box-sizing: border-box; - margin: 8px 0 16px; - padding: 16px; - - background: var(--background-0) !important; - box-shadow: 0 0 2px rgba(0, 0, 0, .2); -} - -.analyzer-all-time -{ - font-size: 24px; - font-weight: 400; - - margin-bottom: 8px; - - color: #4c4c4c; -} - -.analyzer-chart -{ - position: relative; - - display: flex; - overflow: hidden; - - box-sizing: border-box; - height: 140px; - margin: 8px 0; - - border-bottom: 1px solid #ccc; - - justify-content: space-between; -} - -.analyzer-chart::before -{ - position: absolute; - top: -78%; - left: -15%; - - width: 125%; - height: 250%; - - content: ''; - transform: rotate(-45deg); - - background: linear-gradient(transparent 50%, rgba(0, 0, 0, .05) 50%); - background-size: 4px 4px; -} - -.analyzer-column -{ - z-index: 1; - - display: flex; - - border-right: 1px solid #ccc; - - flex: 1; -} - -.analyzer-column:first-child -{ - border-left: 1px solid #ccc; -} - -.analyzer-data-column -{ - display: flex; - flex-direction: column; - - justify-content: flex-end; - flex: 1; -} - -.analyzer-data -{ - height: 20px; - margin: 0 1px; - - background-color: #c5c5c5; -} - -.analyzer-data.first -{ - background-color: #1c00db; - - order: 3; -} - -.analyzer-data.second -{ - background-color: #4dd0e1; - - order: 2; -} - -.analyzer-data.third -{ - background-color: #ff9800; - - order: 1; -} - -/*.analyzer-data:first-child -{ - border-top-left-radius: 4px; - border-top-right-radius: 4px; -}*/ -.analyzer-bottom -{ - display: flex; - - margin: 14px 0 0; - - justify-content: space-between; -} - -.analyzer-bottom > div .label -{ - margin: 0 0 2px; -} - -.analyzer-bottom > div:first-child .label -{ - color: #1c00db; -} - -.analyzer-bottom > div:nth-child(2) .label -{ - color: #4dd0e1; -} - -.analyzer-bottom > div:nth-child(3) .label -{ - color: #ff9800; -} - -/*----------------------------------------------------------------------------- -# MIXER CATEGORY ------------------------------------------------------------------------------*/ - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer -{ - position: relative; - - overflow: hidden; - flex-direction: column; - - width: calc(100% - 32px); - height: 128px; - margin: 8px 16px 0; - - border: unset; - border-radius: 10px; - - flex: unset; - align-items: flex-start; -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - - background: rgba(0, 0, 0, .5); -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer > .satus-section -{ - position: absolute; - bottom: 0; - - visibility: hidden; - - width: 100%; - margin: 0; - padding: 0; - - transition: 200ms; - transform: translateY(32px); - - opacity: 0; - border: unset; - border-radius: unset; -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer:hover > .satus-section -{ - visibility: visible; - - transform: translateY(0); - - opacity: 1; -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer.noconnection > .satus-section > div -{ - visibility: hidden; - - pointer-events: none; -} - -.satus-main__container[data-appearance='mixer'] .satus-section--mixer.noconnection > .satus-section::after -{ - font-size: 18px; - font-weight: 500; - - position: absolute; - top: 50%; - - width: 100%; - - content: attr(data-no-connection-label); - transform: translateY(-50%); - text-align: center; - - opacity: .8; -} -.satus-main__container[data-appearance='about'] .satus-text -{ - display: flex; - - box-sizing: border-box; - width: 100%; - min-height: 48px; - padding: 0 16px; - - justify-content: space-between; - align-items: center; -} - -.satus-main__container[data-appearance='about'] .satus-text__value -{ - text-align: right; - - opacity: .7; -} - - -/*--------------------------------------------------------------- -# AD ----------------------------------------------------------------*/ - -.satus-section--info -{ - position: absolute; - z-index: 99; - bottom: 104px; - left: 32px; - - display: flex; - - width: calc(100% - 64px) !important; - - justify-content: space-between; -} - -.satus-section--info .satus-button -{ - font-weight: 700; - overflow: hidden; - width: auto; - height: 28px; - border-radius: 6px; - background: var(--satus-theme-primary); - color: #fff; - opacity: 0.5; - padding: 0 10px; -} - -.satus-section--info .satus-button:hover { - opacity: 1 -} - - - - -.satus-main .satus-button.satus-button--ad -{ - position: absolute; - z-index: 99; - bottom: 16px; - left: 16px; - - overflow: hidden; - - width: 268px; - height: 38px; - height: 80px; - padding: 8px 16px; - - color: var(--satus-theme-main-text); - border-radius: 8px; - background: #0f1911; - box-shadow: 0 0 3px rgba(0,0,0,.1); - - align-items: center; - justify-content: space-between; -} - -.satus-button--ad .satus-button__label -{ - font-size: 22px; - font-weight: 700; - - color: rgba(255,255,255,.85); - text-shadow: 2px 1px 2px rgba(0,0,0,.6); -} - - -@keyframes satusSwitchDark -{ - 0% - { - transform: translate(0, 0); - } - 33% - { - transform: translate(20px, 10px); - } - 66% - { - transform: translate(10px, -10px); - } - 100% - { - transform: translate(0, 0); - } -} - -.satus-button--ad::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - opacity: 1; - animation-name: satusSwitchDark; - animation-duration: 8s; - animation-timing-function: linear; - animation-iteration-count: infinite; - pointer-events: none; - - background: radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%) !important; - background-repeat: no-repeat !important; - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px !important; - background-size: 50px 50px, 50px 50px, 100px 100px, 75px 75px !important; - - filter: blur(8px); -} - -html[it-improvedtube-home='list'] .satus-main .satus-button.satus-button--ad -{ - position: relative; - top: 0; - left: 0; - - margin: 16px; -} - -.satus-button--ad:after -{ - position: absolute; - top: 0; - left: -100%; - - width: 100%; - height: 100%; - - content: ''; - transition: .5s; - transition-delay: .2s; - - background: linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent); -} - -.satus-button--ad:hover:after -{ - left: 100%; -} + +/*--------------------------------------------------------------- +>>> THEMES +----------------------------------------------------------------- +1.0 Dark +2.0 Night +3.0 Dawn +4.0 Sunset +5.0 Desert +6.0 Plain +7.0 Black +---------------------------------------------------------------*/ + +html { + --satus-theme-primary: #ff4158; +} + + +/*--------------------------------------------------------------- +1.0 DARK +---------------------------------------------------------------*/ + +html[theme="dark"] +{ + --satus-theme-primary: #ff4158; + + --satus-theme-dialog: #2c2b2c; + --satus-theme-dialog-text: #b5b5b5; + + --satus-theme-header: #343334; + --satus-theme-header-text: #b5b5b5; + + --satus-theme-main: #2c2b2c; + --satus-theme-main-text: #b5b5b5; + + --satus-theme-section: #343334; + + --satus-theme-button: transparent; + + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + + --satus-theme-tooltip: rgba(10, 10, 10, .7); + + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + +/*--------------------------------------------------------------- +2.0 NIGHT +---------------------------------------------------------------*/ + +html[theme="night"] +{ + --satus-theme-primary: #ff4158; + + --satus-theme-dialog: #61a7f5; + --satus-theme-dialog-text: #fafafa; + + --satus-theme-header: #61a7f5; + --satus-theme-header-text: #fafafa; + + --satus-theme-main: #3a48b4; + --satus-theme-main-text: #fafafa; + + --satus-theme-section: #61a7f5; + + --satus-theme-button: transparent; + + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + + --satus-theme-tooltip: rgba(10, 10, 10, .7); + + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + + +/*--------------------------------------------------------------- +3.0 DAWN +---------------------------------------------------------------*/ + +html[theme="dawn"] +{ + --satus-theme-primary: #ff4158; + + --satus-theme-dialog: #ffba99; + --satus-theme-dialog-text: #fafafa; + + --satus-theme-header: #ffba99; + --satus-theme-header-text: #fafafa; + + --satus-theme-main: #ed74a9; + --satus-theme-main-text: #eee; + + --satus-theme-section: #ffba99; + + --satus-theme-button: transparent; + + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + + --satus-theme-tooltip: rgba(10, 10, 10, .7); + + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + + +/*--------------------------------------------------------------- +4.0 SUNSET +---------------------------------------------------------------*/ + +html[theme="sunset"] +{ + --satus-theme-primary: #ff4158; + + --satus-theme-dialog: #a96165; + --satus-theme-dialog-text: #fafafa; + + --satus-theme-header: #a96165; + --satus-theme-header-text: #fafafa; + + --satus-theme-main: #2f3364; + --satus-theme-main-text: #eee; + + --satus-theme-section: #a96165; + + --satus-theme-button: transparent; + + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + + --satus-theme-tooltip: rgba(10, 10, 10, .7); + + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + + +/*--------------------------------------------------------------- +5.0 DESERT +---------------------------------------------------------------*/ + +html[theme="desert"] +{ + --satus-theme-primary: #ff4158; + + --satus-theme-dialog: #9dc2ee; + --satus-theme-dialog-text: #fafafa; + + --satus-theme-header: #9dc2ee; + --satus-theme-header-text: #fafafa; + + --satus-theme-main: #ffe498; + --satus-theme-main-text: #eee; + + --satus-theme-section: #9dc2ee; + + --satus-theme-button: transparent; + + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + + --satus-theme-tooltip: rgba(10, 10, 10, .7); + + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + + +/*--------------------------------------------------------------- +6.0 PLAIN +---------------------------------------------------------------*/ + +html[theme="plain"] +{ + --satus-theme-primary: #ff4158; + + --satus-theme-dialog: #abceb8; + --satus-theme-dialog-text: #fafafa; + + --satus-theme-header: #abceb8; + --satus-theme-header-text: #fafafa; + + --satus-theme-main: #dea975; + --satus-theme-main-text: #eee; + + --satus-theme-section: #abceb8; + + --satus-theme-button: transparent; + + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + + --satus-theme-tooltip: rgba(10, 10, 10, .7); + + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + + +/*--------------------------------------------------------------- +7.0 BLACK +---------------------------------------------------------------*/ + +html[theme="black"] +{ + --satus-theme-primary: #ff4158; + + --satus-theme-dialog: #222; + --satus-theme-dialog-text: #fafafa; + + --satus-theme-header: #222; + --satus-theme-header-text: #fafafa; + + --satus-theme-main: #111; + --satus-theme-main-text: #eee; + + --satus-theme-section: #222; + + --satus-theme-button: transparent; + + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + + --satus-theme-tooltip: rgba(10, 10, 10, .7); + + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + +/*-------------------------------------------------------------- +>>> TABLE OF CONTENTS: +---------------------------------------------------------------- +# Fonts +# Basic +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# FONTS +--------------------------------------------------------------*/ + +@font-face +{ + font-family: 'Open Sans'; + font-weight: 400; + + src: url('assets/fonts/OpenSans-Regular.ttf'); +} + +@font-face +{ + font-family: 'Open Sans'; + font-weight: 600; + + src: url('assets/fonts/OpenSans-SemiBold.ttf'); +} + + +/*-------------------------------------------------------------- +# BASIC +--------------------------------------------------------------*/ + +body +{ + font-family: 'Open Sans', sans-serif; + font-size: 14px; + + display: flex; + overflow: hidden; + flex-direction: column; + + width: 300px; + height: 532px; + margin: 0; + + background-color: #eee; +} + +body.improvedtube-page +{ + width: 100vw; + height: 100vh; +} + +button +{ + font-family: 'Open Sans', sans-serif; +} + + + + + +.satus-dialog--confirm .satus-section +{ + display: flex; + background-color: transparent; +} + +.satus-dialog--confirm .satus-text +{ + display: block; + + box-sizing: border-box; + padding: 0 16px 8px; +} + +.satus-dialog--confirm .satus-button +{ + font-weight: 500; + + overflow: hidden; + + height: 28px; + min-height: 28px; + margin-right: 2px; + padding: 4px 8px; + + text-transform: uppercase; + + color: #f96754; + border-radius: 4px; +} + + + + + + + + + + + + + + + + + + + + + + +.satus-section--footer +{ + position: fixed; + z-index: 99; + bottom: 10px; + left: 16px; + display: flex; + box-sizing: border-box; + box-shadow: 0 0 3px rgba(0,0,0,.1); + width: 268px; + height: 38px; + padding: 8px 16px; + color: var(--satus-theme-main-text); + border-radius: 4px; + background: var(--satus-theme-section); + align-items: center; + justify-content: space-between; +} + +html[it-improvedtube-home='list'] .satus-section--footer +{ + position: relative; + left: 0; + top: 0; + margin: 50px 16px 16px; +} + +.satus-main .satus-section--footer .satus-button +{ + font-family: 'Open Sans', sans-serif; + font-weight: 700; + font-size: 13px; + text-decoration: none; + color: var(--satus-theme-main-text); + text-align: center; + height: 32px; + justify-content: center; + border-radius: 4px; + overflow: hidden; +} + +.satus-main .satus-section--footer .satus-button--found-a-bug { + width: 128px; + position: absolute; + bottom: 48px; + left: 70px; +} + +.satus-dialog--setup +{ + animation: unset; +} + +.satus-dialog--setup .satus-dialog__scrim +{ + display: none; +} + +.satus-dialog--setup .satus-dialog__surface +{ + position: absolute; + top: 0; + left: 0; + + padding: 0; + + width: 100%; + height: 100%; + max-height: unset; + + transform: unset; + animation: unset; + + opacity: 1; + border-radius: unset; +} + +.satus-dialog--setup-language .satus-button +{ + width: 100%; + height: 48px; +} + +/*--------------------------------------------------------------- +>>> HEADER: +----------------------------------------------------------------- +1.0 Buttons + 1.1 Back button +2.0 Title +3.0 Right section +4.0 Search +5.0 Vertical menu +---------------------------------------------------------------*/ + +/*--------------------------------------------------------------- +1.0 BUTTONS +---------------------------------------------------------------*/ + +.satus-header .satus-button +{ + width: 36px; + height: 36px; + padding: 6px; +} + +.satus-header .satus-button::before +{ + border-radius: 50%; +} + + +/*--------------------------------------------------------------- +1.1 BACK BUTTON +---------------------------------------------------------------*/ + +.satus-button--back +{ + position: absolute; +} + +.satus-button--back svg +{ + fill: none; + stroke: currentColor; +} + +body[data-appearance='home'] .satus-button--back +{ + visibility: hidden; +} + + +/*--------------------------------------------------------------- +2.0 TITLE +---------------------------------------------------------------*/ + +.satus-text--title +{ + font-size: 15px; + font-weight: 400; + + position: absolute; + left: 56px; + + letter-spacing: .0125em; +} + +html[it-title-version='true'] body[data-appearance='home'] .satus-text--title::after +{ + font: 700 10px sans-serif; + + margin: 0 0 0 4px; + + content: attr(data-version); + + opacity: .6; + color: var(--satus-theme-header-text); +} + +body[data-appearance='home'] .satus-text--title +{ + left: 14px; +} + + +/*--------------------------------------------------------------- +3.0 RIGHT SECTION +---------------------------------------------------------------*/ + +.satus-section--align-end +{ + justify-content: flex-end; +} + +.satus-section--align-end .satus-button + .satus-button +{ + margin-left: 8px; +} + + +/*--------------------------------------------------------------- +4.0 SEARCH +---------------------------------------------------------------*/ + +.satus-dialog--search +{ + pointer-events: none; +} + +.satus-dialog--search .satus-dialog__scrim +{ + display: none; +} + +.satus-dialog--search .satus-dialog__surface +{ + position: fixed; + top: 11px; + right: 8px; + + visibility: unset; + + width: calc(100% - 62px); + min-width: unset; + max-width: unset; + height: 34px; + padding: 0; + + transform: unset; + animation: unset; + pointer-events: all; + + opacity: unset; + border: 1px solid rgba(0,0,0,.05); + box-shadow: unset; +} + +.satus-dialog--search .satus-dialog__surface .satus-text-field +{ + height: 34px; +} + +.satus-dialog--search .satus-dialog__surface .satus-button +{ + position: absolute; + top: 3px; + right: 3px; + + overflow: hidden; + + width: 32px; + height: 32px; + + border-radius: 50%; +} + +.satus-dialog--search .satus-dialog__surface .satus-button svg +{ + fill: none; + stroke: currentColor; +} + + +body[data-appearance='search'] .satus-switch--red, +body[data-appearance='search'] .satus-switch--dark, +body[data-appearance='search'] .satus-switch--night, +body[data-appearance='search'] .satus-switch--dawn, +body[data-appearance='search'] .satus-switch--sunset, +body[data-appearance='search'] .satus-switch--desert, +body[data-appearance='search'] .satus-switch--plain, +body[data-appearance='search'] .satus-switch--black +{ + width: calc(100% - 16px); + margin: 4px 8px; + + border-radius: 6px; +} + +body[data-appearance='search'] .satus-switch--red .satus-switch__label, +body[data-appearance='search'] .satus-switch--dark .satus-switch__label, +body[data-appearance='search'] .satus-switch--night .satus-switch__label, +body[data-appearance='search'] .satus-switch--dawn .satus-switch__label, +body[data-appearance='search'] .satus-switch--sunset .satus-switch__label, +body[data-appearance='search'] .satus-switch--black .satus-switch__label +{ + color: #fff; +} + +body[data-appearance='search'] .satus-switch--plain .satus-switch__label, +body[data-appearance='search'] .satus-switch--desert .satus-switch__label +{ + color: #222; +} + + +/*--------------------------------------------------------------- +5.0 VERTICAL MENU +---------------------------------------------------------------*/ + +.satus-dialog--vertical-menu .satus-dialog__surface +{ + position: absolute; + top: 8px; + right: 8px; + left: auto; + + min-width: 180px; + max-width: 180px; + + transform-origin: right top; +} + +.satus-dialog--vertical-menu .satus-button, +.satus-dialog--vertical-menu .satus-folder +{ + width: 100%; + height: 36px; + padding: 0 16px; + + text-align: left; +} + +.satus-dialog--vertical-menu .satus-folder svg, +.satus-dialog--vertical-menu .satus-button svg +{ + width: 20px; + height: 18px; + margin: 0 14px 0 0; + + opacity: .75; + + fill: none; + stroke: var(--satus-theme-primary); +} + +.satus-dialog--vertical-menu .satus-folder--mixer svg +{ + height: 20px; +} + +.satus-dialog--vertical-menu .satus-button--github svg +{ + width: 18px; + height: 18px; +} + +/*-------------------------------------------------------------- +>>> MAIN: +---------------------------------------------------------------- +1.0 Basic +2.0 Section +3.0 Folder +4.0 Button +5.0 Custom +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +1.0 BASIC +--------------------------------------------------------------*/ + +.satus-main +{ + flex: 1; +} + + +/*-------------------------------------------------------------- +2.0 SECTION +--------------------------------------------------------------*/ + +.satus-main .satus-section--label +{ + font-size: 17px; + + display: block; + + width: calc(100% - 16px); + max-width: 900px; + margin: 16px auto 8px; +} + +html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-section:not(.satus-section--footer), +.satus-main__container:not([data-appearance='home']) .satus-section:not(.satus-section--footer) +{ + display: block; + + width: calc(100% - 16px); + max-width: 900px; + margin: 8px auto; + padding: 8px 0; + + border: 1px solid rgba(0,0,0,.1); + border-radius: 8px; +} + +html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-section--message, +.satus-main__container:not([data-appearance='home']) .satus-section--message +{ + padding-right: 8px; + padding-left: 8px; +} + + +/*-------------------------------------------------------------- +3.0 FOLDER +--------------------------------------------------------------*/ + +.satus-main .satus-folder svg +{ + width: 20px; + height: 20px; + margin: 0 14px 0 0; + + opacity: .75; + + stroke: none; + fill: var(--satus-theme-primary); +} + + +/*-------------------------------------------------------------- +4.0 BUTTON +--------------------------------------------------------------*/ + +.satus-main .satus-button +{ + width: 100%; + height: 48px; + padding: 0 16px; + text-align: left; +} + + +/*-------------------------------------------------------------- +5.0 CUSTOM +--------------------------------------------------------------*/ + +#forced-playback-speed + *, +#forced-volume + * +{ + pointer-events: none; + + opacity: .5; +} + +#forced-playback-speed[data-value=true] + *, +#forced-volume[data-value=true] + * +{ + pointer-events: all; + + opacity: 1; +} + +/*-------------------------------------------------------------- +>>> HOME +--------------------------------------------------------------*/ + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-section:not(.satus-section--footer) +{ + width: 100%; + margin-top: 16px; + + flex-wrap: wrap; + + background-color: transparent; +} + + + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder +{ + position: relative; + + flex-direction: column; + + width: 64px; + height: 86px; + margin: 0 18px 14px; + padding: 0; + + cursor: default; +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder::before +{ + background-color: transparent +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder__label +{ + text-align: center; + pointer-events: none; + line-height: 12px; +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder:focus, +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder:hover +{ + background-color: transparent; +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg, +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--shortcut__icon +{ + display: block; + overflow: visible; + + width: 28px; + height: 28px; + margin: 0 0 5px 0; + padding: 16px; + + cursor: pointer; + transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; + + opacity: .95; + border-radius: 50%; + background: linear-gradient(135deg, #ff4158, #ff001f); + box-shadow: 0 2px 1px 1px rgba(222, 0, 27, .7), 0 3px 5px rgba(0,0,0,.35); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg:focus, +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg:hover +{ + transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; + transform: translateY(4px) scale(.975); + + box-shadow: 0 1px 1px 0 rgba(222, 0, 27, .7), 0 1px 2px rgba(0,0,0,.35); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--general svg +{ + width: 26px; + height: 26px; + padding: 19px 17px 15px 17px; + + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--appearance svg +{ + width: 26px; + height: 26px; + padding: 19px 17px 15px 17px; + + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--themes svg +{ + padding: 17px 16px 15px 16px; + + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--player svg +{ + width: 26px; + height: 26px; + padding: 19px 15px 15px 19px; + + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--playlist svg +{ + padding: 17px 16px 15px 16px; + + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--channel svg +{ + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--shortcut svg +{ + width: 26px; + height: 26px; + padding: 19px 17px 15px 17px; + + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--mixer svg +{ + padding: 17px 16px 15px 16px; + + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--blacklist svg +{ + width: 26px; + height: 26px; + padding: 18px 17px 16px 17px; + + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--analyzer svg +{ + width: 26px; + height: 26px; + padding: 18px 17px 16px 17px; + + fill: transparent; + stroke: rgba(255, 255, 255, .85); +} + +html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-folder svg +{ + fill: transparent; + stroke: var(--satus-theme-primary); +} + + + +html[it-it-general='false'] .satus-folder--general, +html[it-it-appearance='false'] .satus-folder--appearance, +html[it-it-themes='false'] .satus-folder--themes, +html[it-it-player='false'] .satus-folder--player, +html[it-it-playlist='false'] .satus-folder--playlist, +html[it-it-channel='false'] .satus-folder--channel, +html[it-it-shortcuts='false'] .satus-folder--shortcut, +html[it-it-blacklist='false'] .satus-folder--blacklist, +html[it-it-analyzer='false'] .satus-folder--analyzer +{ + display: none; +} + +/*-------------------------------------------------------------- +# APPEARANCE +--------------------------------------------------------------*/ + +.satus-main__container[data-appearance='appearance'] .satus-folder +{ + position: absolute; + + box-sizing: border-box; + padding: 0; + + transition-duration: .5s; + transition-property: transform, box-shadow; + transform: scale(1); + text-align: center; + + border: 1px solid var(--main-appearance-shadow, #dfdfdf); + border-radius: 6px; + box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0); + + justify-content: center; + align-items: center; +} + +.satus-main__container[data-appearance='appearance'] .satus-folder:hover +{ + z-index: 9; + + transition-duration: .25s; + transform: scale(1.03) translate(-8px, -4px); + + box-shadow: 1px 1px 0 0 var(--main-appearance-shadow, #dfdfdf), 2px 2px 0 0 var(--main-appearance-shadow, #dfdfdf), 3px 3px 0 0 var(--main-appearance-shadow, #dfdfdf), 4px 4px 0 0 var(--main-appearance-shadow, #dfdfdf), 5px 6px 4px 0 rgba(0, 0, 0, .1); +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--header +{ + top: 16px; + left: 16px; + + width: calc(100% - 32px); + height: 40px; + min-height: auto; + + background-color: var(--satus-theme-dialog); + color: var(--satus-theme-dialog-text); +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--header:hover +{ + transform: scale(1.03) translate(-9px, -4px); +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--player +{ + top: 64px; + left: 16px; + + width: calc(70% - 32px); + height: 96px; + min-height: auto; + + color: #eee; + border-color: #333; + background-color: #444; +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--player .label +{ + color: #fff; +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--player:hover +{ + transform: scale(1.03) translate(-7px, -4px); + + box-shadow: 1px 1px 0 0 #333, 2px 2px 0 0 #333, 3px 3px 0 0 #333, 4px 4px 0 0 #333, 5px 6px 4px 0 rgba(0, 0, 0, .1); +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--details +{ + top: 168px; + left: 16px; + + width: calc(70% - 32px); + height: 56px; + min-height: auto; + + background-color: var(--satus-theme-dialog); + color: var(--satus-theme-dialog-text); +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--description +{ + top: 13.5rem; + left: 1rem; + + width: calc(70% - 2rem); + height: 3.5rem; + min-height: 3.5rem; + + background-color: var(--satus-theme-dialog); + color: var(--satus-theme-dialog-text); +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--comments +{ + top: 232px; + left: 16px; + + width: calc(70% - 32px); + height: 80px; + min-height: auto; + + background-color: var(--satus-theme-dialog); + color: var(--satus-theme-dialog-text); +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--footer +{ + top: 320px; + left: 16px; + + width: calc(70% - 32px); + height: 64px; + min-height: auto; + + background-color: var(--satus-theme-dialog); + color: var(--satus-theme-dialog-text); +} + +.satus-main__container[data-appearance='appearance'] .satus-folder--sidebar +{ + top: 64px; + left: calc(70% - 8px); + + width: calc(30% - 8px); + height: 160px; + + background-color: var(--satus-theme-dialog); + color: var(--satus-theme-dialog-text); +} + +/*----------------------------------------------------------------------------- +# THEMES CATEGORY +-----------------------------------------------------------------------------*/ + +.satus-main__container[data-appearance='themes'] .satus-switch:first-child +{ + margin-top: 16px; +} + +.satus-main__container[data-appearance='themes'] .satus-switch:last-child +{ + margin-bottom: 16px; +} + +.satus-main__container[data-appearance='themes'] .satus-switch +{ + width: calc(100% - 16px); + max-width: 900px; + height: 80px; + margin: 8px auto; + + border-radius: 8px; +} + +.satus-main__container[data-appearance='themes'] .satus-switch__label +{ + font-size: 15px; + font-weight: 500; + + color: #eee; + text-shadow: 0 1px 3px rgba(0, 0, 0, .7); +} + +.satus-switch--dark +{ + position: relative; + + overflow: hidden; + + background: linear-gradient(#0d1216, #353d46) !important; +} + +.satus-switch--dark::before +{ + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + animation-name: satus-switch--dark; + animation-duration: 4s; + animation-timing-function: ease-in-out; + animation-iteration-count: infinite; + pointer-events: none; + + background: radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%) !important; + background-repeat: no-repeat !important; + background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px !important; + background-size: 50px 50px, 50px 50px, 100px 100px, 75px 75px !important; + + filter: blur(8px); +} + +@keyframes satus-switch--dark +{ + 0% + { + background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; + } + + 50% + { + background-position: 20px 20px, 230px -20px, 0 -40px, 160px 10px; + } + + 100% + { + background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; + } +} + +.satus-switch--night +{ + position: relative; + + overflow: hidden; + + animation-name: satus-switch--night; + animation-duration: .75s; + animation-iteration-count: infinite; + + background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), + linear-gradient(#3a48b4, #61a7f5) !important; + background-repeat: no-repeat !important; + background-position: 75% 80%, 35% 65%, 30% 10%, 50% 40%, 10% 80%, 90% 10%, 0 0 !important; + background-size: 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, auto !important; +} + +@keyframes satus-switch--night +{ + 0% + { + background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), + linear-gradient(#3a48b4, #61a7f5); + } + + 25% + { + background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), + linear-gradient(#3a48b4, #61a7f5); + } + + 50% + { + background-image: radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .9) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), + linear-gradient(#3a48b4, #61a7f5); + } + + 75% + { + background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), + linear-gradient(#3a48b4, #61a7f5); + } + + 100% + { + background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), + radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), + linear-gradient(#3a48b4, #61a7f5); + } +} + +.satus-switch--dawn +{ + position: relative; + + overflow: hidden; + + background: linear-gradient(#ed74a9, #ffba99) !important; +} + +.satus-switch--dawn::before +{ + position: absolute; + right: 1rem; + bottom: -5rem; + + width: 10rem; + height: 10rem; + + content: ''; + animation-name: satus-switch--dawn; + animation-duration: .75s; + animation-iteration-count: infinite; + pointer-events: none; + + border-radius: 50%; + background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; +} + +@keyframes satus-switch--dawn +{ + 0% + { + background: radial-gradient(rgba(255, 255, 231, .85) 20%, + rgba(255, 255, 231, .25) 20%, + rgba(255, 255, 231, .25) 35%, + rgba(255, 255, 231, .15) 35%, + rgba(255, 255, 231, .15) 55%, + rgba(255, 255, 231, .05) 55%, + rgba(255, 255, 231, .05) 75%, transparent 75%); + } + + 50% + { + background: radial-gradient(rgba(255, 255, 231, .85) 20%, + rgba(255, 255, 231, .30) 20%, + rgba(255, 255, 231, .30) 35%, + rgba(255, 255, 231, .20) 35%, + rgba(255, 255, 231, .20) 55%, + rgba(255, 255, 231, .10) 55%, + rgba(255, 255, 231, .10) 75%, transparent 75%); + } + + 100% + { + background: radial-gradient(rgba(255, 255, 231, .85) 20%, + rgba(255, 255, 231, .25) 20%, + rgba(255, 255, 231, .25) 35%, + rgba(255, 255, 231, .15) 35%, + rgba(255, 255, 231, .15) 55%, + rgba(255, 255, 231, .05) 55%, + rgba(255, 255, 231, .05) 75%, transparent 75%); + } +} + +.satus-switch--sunset +{ + position: relative; + + overflow: hidden; + + background: linear-gradient(#2f3364, #a96165) !important; +} + +.satus-switch--sunset::before +{ + position: absolute; + top: -1rem; + left: 50%; + + overflow: hidden; + + width: 8rem; + height: 8rem; + + content: ''; + transform: translate(-50%, 0%); + pointer-events: none; + + border-radius: 50%; + background: linear-gradient(#fa7965, #f56264, transparent) !important; +} + +.satus-switch--desert +{ + position: relative; + + overflow: hidden; + + background-image: radial-gradient(#ffe498 50%, transparent 50%), + linear-gradient(#9dc2ee, #f5fdff) !important; + background-repeat: no-repeat !important; + background-position: -120px 36px, 0 !important; + background-size: 240%, 100% !important; +} + +.satus-switch--desert::before +{ + position: absolute; + top: -100%; + left: 40%; + + width: 10rem; + height: 10rem; + + content: ''; + animation-name: satus-switch--desert; + animation-duration: .75s; + animation-delay: .5s; + animation-iteration-count: infinite; + pointer-events: none; + + border-radius: 50%; + background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; +} + +@keyframes satus-switch--desert +{ + 0% + { + background: radial-gradient(#fefefe 20%, + rgba(255, 255, 231, .25) 20%, + rgba(255, 255, 231, .25) 35%, + rgba(255, 255, 231, .15) 35%, + rgba(255, 255, 231, .15) 55%, + rgba(255, 255, 231, .05) 55%, + rgba(255, 255, 231, .05) 75%, transparent 75%); + } + + 50% + { + background: radial-gradient(#fefefe 20%, + rgba(255, 255, 231, .30) 20%, + rgba(255, 255, 231, .30) 35%, + rgba(255, 255, 231, .20) 35%, + rgba(255, 255, 231, .20) 55%, + rgba(255, 255, 231, .10) 55%, + rgba(255, 255, 231, .1) 75%, transparent 75%); + } + + 100% + { + background: radial-gradient(#fefefe 20%, + rgba(255, 255, 231, .25) 20%, + rgba(255, 255, 231, .25) 35%, + rgba(255, 255, 231, .15) 35%, + rgba(255, 255, 231, .15) 55%, + rgba(255, 255, 231, .05) 55%, + rgba(255, 255, 231, .05) 75%, transparent 75%); + } +} + +.satus-switch--plain +{ + position: relative; + + overflow: hidden; + + background-image: radial-gradient(#dea975 50%, transparent 50%), + radial-gradient(#e8b887 50%, transparent 50%), + radial-gradient(#f1cc9f 50%, transparent 50%), + radial-gradient(#f3ddb8 50%, transparent 50%), + linear-gradient(#abceb8, #e7ede1) !important; + background-repeat: no-repeat !important; + background-position: -50px 50px, -370px 40px, 0 36px, -360px 26px, 0 !important; + background-size: 240%, 240%, 240%, 240%, 100% !important; +} + +.satus-switch--plain::before +{ + position: absolute; + top: -70%; + left: 10%; + + width: 7rem; + height: 7rem; + + content: ''; + animation-name: satus-switch--plain; + animation-duration: .75s; + animation-delay: .2s; + animation-iteration-count: infinite; + pointer-events: none; + + border-radius: 50%; + background: radial-gradient(#fff 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; +} + +.satus-switch--black +{ + background: #000 !important; +} + +/*----------------------------------------------------------------------------- +# BLACKLIST CATEGORY +-----------------------------------------------------------------------------*/ + +.satus-section.satus-section--blacklist +{ + position: relative; + + overflow: hidden; + flex-direction: column; + + width: calc(100% - 32px); + height: 116px; + margin: 8px 16px 0; + + transition: opacity .25s; + + opacity: 1; + border-radius: 10px; + background-color: #000; + background-position: center; + background-size: cover; + + flex: unset; + align-items: flex-start; +} + +.satus-section.satus-section--blacklist.removing +{ + opacity: 0; +} + +.satus-section.satus-section--blacklist::before +{ + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + margin: 0; + + content: ''; + + background: rgba(0, 0, 0, .5); +} + +.satus-section.satus-section--blacklist > .label +{ + font-size: 16px; + font-weight: 700; + + position: absolute; + z-index: 1; + bottom: 28px; + + text-transform: uppercase; + + opacity: 1; + color: #fff; +} + +.satus-section.satus-section--blacklist::after +{ + position: absolute; + z-index: 1; + bottom: 16px; + left: 16px; + + content: attr(data-label); + + color: rgba(255, 255, 255, .5); +} + +.satus-section.satus-section--blacklist > .satus-section +{ + position: absolute; + z-index: 999; + bottom: 0; + + visibility: hidden; + + width: 100%; + margin: 0; + padding: 0; + + transition: .15s; + + opacity: 0; + border: none; + border-radius: 0; + background: rgba(255, 255, 255, .95); + + justify-content: center; +} + +.satus-section.satus-section--blacklist:hover > .satus-section +{ + visibility: visible; + + opacity: 1; +} +/*----------------------------------------------------------------------------- +# ANALYZER CATEGORY +-----------------------------------------------------------------------------*/ + +.analyzer-top-text +{ + font-size: 13px; + + display: flex; + + box-sizing: border-box; + margin: 16px 0 0; + padding: 0 16px; + + background: transparent !important; + + justify-content: space-between; +} + +.analyzer-watch-time +{ + text-transform: uppercase; +} + +.analyzer-today-at +{ + box-sizing: border-box; +} + +.analyzer-container +{ + box-sizing: border-box; + margin: 8px 0 16px; + padding: 16px; + + background: var(--background-0) !important; /* var --background-0 is not specified anywhere */ + box-shadow: 0 0 2px rgba(0, 0, 0, .2); +} + +.analyzer-all-time +{ + font-size: 24px; + font-weight: 400; + + margin-bottom: 8px; + + color: #4c4c4c; +} + +.analyzer-chart +{ + position: relative; + + display: flex; + overflow: hidden; + + box-sizing: border-box; + height: 140px; + margin: 8px 0; + + border-bottom: 1px solid #ccc; + + justify-content: space-between; +} + +.analyzer-chart::before +{ + position: absolute; + top: -78%; + left: -15%; + + width: 125%; + height: 250%; + + content: ''; + transform: rotate(-45deg); + + background: linear-gradient(transparent 50%, rgba(0, 0, 0, .05) 50%); + background-size: 4px 4px; +} + +.analyzer-column +{ + z-index: 1; + + display: flex; + + border-right: 1px solid #ccc; + + flex: 1; +} + +.analyzer-column:first-child +{ + border-left: 1px solid #ccc; +} + +.analyzer-data-column +{ + display: flex; + flex-direction: column; + + justify-content: flex-end; + flex: 1; +} + +.analyzer-data +{ + height: 20px; + margin: 0 1px; + + background-color: #c5c5c5; +} + +.analyzer-data.first +{ + background-color: #1c00db; + + order: 3; +} + +.analyzer-data.second +{ + background-color: #4dd0e1; + + order: 2; +} + +.analyzer-data.third +{ + background-color: #ff9800; + + order: 1; +} + +/*.analyzer-data:first-child +{ + border-top-left-radius: 4px; + border-top-right-radius: 4px; +}*/ +.analyzer-bottom +{ + display: flex; + + margin: 14px 0 0; + + justify-content: space-between; +} + +.analyzer-bottom > div .label +{ + margin: 0 0 2px; +} + +.analyzer-bottom > div:first-child .label +{ + color: #1c00db; +} + +.analyzer-bottom > div:nth-child(2) .label +{ + color: #4dd0e1; +} + +.analyzer-bottom > div:nth-child(3) .label +{ + color: #ff9800; +} + +/*----------------------------------------------------------------------------- +# MIXER CATEGORY +-----------------------------------------------------------------------------*/ + +.satus-main__container[data-appearance='mixer'] .satus-section--mixer +{ + position: relative; + + overflow: hidden; + flex-direction: column; + + width: calc(100% - 32px); + height: 128px; + margin: 8px 16px 0; + + border: unset; + border-radius: 10px; + + flex: unset; + align-items: flex-start; +} + +.satus-main__container[data-appearance='mixer'] .satus-section--mixer::before +{ + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + + background: rgba(0, 0, 0, .5); +} + +.satus-main__container[data-appearance='mixer'] .satus-section--mixer > .satus-section +{ + position: absolute; + bottom: 0; + + visibility: hidden; + + width: 100%; + margin: 0; + padding: 0; + + transition: 200ms; + transform: translateY(32px); + + opacity: 0; + border: unset; + border-radius: unset; +} + +.satus-main__container[data-appearance='mixer'] .satus-section--mixer:hover > .satus-section +{ + visibility: visible; + + transform: translateY(0); + + opacity: 1; +} + +.satus-main__container[data-appearance='mixer'] .satus-section--mixer.noconnection > .satus-section > div +{ + visibility: hidden; + + pointer-events: none; +} + +.satus-main__container[data-appearance='mixer'] .satus-section--mixer.noconnection > .satus-section::after +{ + font-size: 18px; + font-weight: 500; + + position: absolute; + top: 50%; + + width: 100%; + + content: attr(data-no-connection-label); + transform: translateY(-50%); + text-align: center; + + opacity: .8; +} +.satus-main__container[data-appearance='about'] .satus-text +{ + display: flex; + + box-sizing: border-box; + width: 100%; + min-height: 48px; + padding: 0 16px; + + justify-content: space-between; + align-items: center; +} + +.satus-main__container[data-appearance='about'] .satus-text__value +{ + text-align: right; + + opacity: .7; +} + + +/*--------------------------------------------------------------- +# AD +---------------------------------------------------------------*/ + +.satus-section--info +{ + position: absolute; + z-index: 99; + bottom: 104px; + left: 32px; + + display: flex; + + width: calc(100% - 64px) !important; + + justify-content: space-between; +} + +.satus-section--info .satus-button +{ + font-weight: 700; + overflow: hidden; + width: auto; + height: 28px; + border-radius: 6px; + background: var(--satus-theme-primary); + color: #fff; + opacity: 0.5; + padding: 0 10px; +} + +.satus-section--info .satus-button:hover { + opacity: 1 +} + + + + +.satus-main .satus-button.satus-button--ad +{ + position: absolute; + z-index: 99; + bottom: 16px; + left: 16px; + + overflow: hidden; + + width: 268px; + height: 38px; + height: 80px; + padding: 8px 16px; + + color: var(--satus-theme-main-text); + border-radius: 8px; + background: #0f1911; + box-shadow: 0 0 3px rgba(0,0,0,.1); + + align-items: center; + justify-content: space-between; +} + +.satus-button--ad .satus-button__label +{ + font-size: 22px; + font-weight: 700; + + color: rgba(255,255,255,.85); + text-shadow: 2px 1px 2px rgba(0,0,0,.6); +} + + +@keyframes satusSwitchDark +{ + 0% + { + transform: translate(0, 0); + } + 33% + { + transform: translate(20px, 10px); + } + 66% + { + transform: translate(10px, -10px); + } + 100% + { + transform: translate(0, 0); + } +} + +.satus-button--ad::before +{ + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + opacity: 1; + animation-name: satusSwitchDark; + animation-duration: 8s; + animation-timing-function: linear; + animation-iteration-count: infinite; + pointer-events: none; + + background: radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%) !important; + background-repeat: no-repeat !important; + background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px !important; + background-size: 50px 50px, 50px 50px, 100px 100px, 75px 75px !important; + + filter: blur(8px); +} + +html[it-improvedtube-home='list'] .satus-main .satus-button.satus-button--ad +{ + position: relative; + top: 0; + left: 0; + + margin: 16px; +} + +.satus-button--ad:after +{ + position: absolute; + top: 0; + left: -100%; + + width: 100%; + height: 100%; + + content: ''; + transition: .5s; + transition-delay: .2s; + + background: linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent); +} + +.satus-button--ad:hover:after +{ + left: 100%; +} diff --git a/popup.js b/popup.js index c6aba9746..0bc3e11fc 100644 --- a/popup.js +++ b/popup.js @@ -1,3171 +1,3172 @@ -/*------------------------------------------------------------------------------ ->>> TABLE OF CONTENTS: --------------------------------------------------------------------------------- -1.0 Header - 1.1 Mixer - 1.2 Settings - 1.3 Active features -2.0 Main - 2.1 General - 2.2 Appearance - 2.3 Themes - 2.4 Player - 2.5 Playlist - 2.6 Channel - 2.7 Shortcuts - 2.8 Blacklist - 2.9 Analyzer -3.0 Initialization -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -1.0 HEADER -------------------------------------------------------------------------------*/ - -var Menu = { - header: { - type: 'header', - - section_start: { - type: 'section', - class: 'satus-section--align-start', - - button_back: { - type: 'button', - class: 'satus-button--back', - before: '', - onclick: function() { - if (document.querySelector('.satus-dialog__scrim')) { - document.querySelector('.satus-dialog__scrim').click(); - } else { - document.querySelector('.satus-main').back(); - } - } - }, - title: { - type: 'text', - class: 'satus-text--title', - innerText: 'ImprovedTube', - dataset: { - version: chrome && chrome.runtime && chrome.runtime.getManifest ? chrome.runtime.getManifest().version : '' - } - } - }, - section_end: { - type: 'section', - class: 'satus-section--align-end', - - button_search: { - type: 'button', - icon: '', - onclick: function() { - document.querySelector('.satus-main').open({ - appearanceId: 'search' - }, function() { - satus.render({ - type: 'dialog', - class: 'satus-dialog--search', - onclose: function() { - document.querySelector('.satus-main').back(); - }, - - input: { - type: 'text-field', - placeholder: 'search', - oninput: function() { - if (this.value.length > 0) { - satus.search(this.value, Menu, function(results) { - var sorted_results = []; - - document.querySelector('.satus-main__container').innerHTML = ''; - - for (var key in results) { - results[key].type = 'section'; - - sorted_results.push({ - type: 'text', - label: key, - class: 'satus-section--label' - }); - sorted_results.push(results[key]); - } - - console.log(results); - - var scroll = satus.components.scrollbar(document.querySelector('.satus-main__container')); - - satus.render(sorted_results, scroll); - }, true); - } else { - document.querySelector('.satus-main__container').innerHTML = ''; - - satus.render({}, document.querySelector('.satus-main__container')); - } - } - } - }); - }); - } - }, - button_vert: { - type: 'button', - icon: '', - onClickRender: { - type: 'dialog', - class: 'satus-dialog--vertical-menu' - } - } - } - } -}; - - -/*------------------------------------------------------------------------------ -1.1 ACTIVE FEATURES -------------------------------------------------------------------------------*/ - -Menu.header.section_end.button_vert.onClickRender.active_features = { - type: 'folder', - before: '', - label: 'activeFeatures', - onclick: function() { - document.querySelector('.satus-dialog__scrim').click(); - }, - - section: { - type: 'section', - onrender: function() { - var component = this, - new_menu = {}, - storage = satus.storage; - - function search(string, object) { - let result = []; - - for (let i in object) { - if (object[i].type) { - if (/(button|select|shortcut|slider|switch)/.test(object[i].type)) { - if (i.indexOf(string) !== -1 || (object[i].tags && object[i].tags.indexOf(string) !== -1)) { - if (object[i].type.indexOf('button') === -1 || !object[i].label) { - new_menu[i] = object[i]; - } - } - } else { - let response = search(string, object[i]); - - if (response.length > 0) { - for (let j = 0, l = response.length; j < l; j++) { - result.push(response[i]); - } - } - } - } - } - - return result; - } - - for (var key in storage) { - search(key, Menu) - } - - setTimeout(function() { - if (Object.keys(new_menu).length > 0) { - satus.render(new_menu, component); - } else { - satus.render({ - text: { - type: 'text', - label: 'noActiveFeatures' - } - }, component); - } - }); - } - } -}; - - -/*------------------------------------------------------------------------------ -1.2 SETTINGS -------------------------------------------------------------------------------*/ - -Menu.header.section_end.button_vert.onClickRender.settings = { - type: 'folder', - before: '', - label: 'settings', - parent: '.satus-main__container', - onclick: function() { - document.querySelector('.satus-dialog__scrim').click(); - }, - - section: { - type: 'section', - - developer_options: { - type: 'folder', - before: '', - label: 'developerOptions', - - custom_js_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'customJs' - }, - - custom_js_section: { - type: 'section', - custom_js: { - type: 'text-field', - onrender: function() { - this.value = satus.storage.get('custom_js') || ''; - }, - oninput: function() { - satus.storage.set('custom_js', this.value); - } - } - }, - - custom_css_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'customCss' - }, - - custom_css_section: { - type: 'section', - custom_css: { - type: 'text-field', - onrender: function() { - this.value = satus.storage.get('custom_css') || ''; - }, - oninput: function() { - satus.storage.set('custom_css', this.value); - } - } - }, - - /*translations_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'translations' - }, - - translations_section: { - type: 'section', - onrender: function() { - satus.search('language', Menu, function(result) { - var languages = result.language.options; - - for (var i = 0, l = languages.length; i < l; i++) { - - } - }) - } - }*/ - }, - }, - - section0: { - type: 'section', - - appearance: { - type: 'folder', - before: '', - label: 'appearance', - - general: { - type: 'section', - label: 'general', - - header: { - type: 'folder', - label: 'header', - - section: { - type: 'section', - - title_version: { - type: 'switch', - label: 'version' - } - } - }, - home: { - type: 'folder', - label: 'home', - - section: { - type: 'section', - - improvedtube_home: { - type: 'select', - label: 'style', - options: [{ - label: 'bubbles', - value: 'bubbles' - }, { - label: 'list', - value: 'list' - }] - } - }, - - categories: { - type: 'section', - label: 'categories', - - it_general: { - type: 'switch', - label: 'general', - value: true - }, - it_appearance: { - type: 'switch', - label: 'appearance', - value: true - }, - it_themes: { - type: 'switch', - label: 'themes', - value: true - }, - it_player: { - type: 'switch', - label: 'player', - value: true - }, - it_playlist: { - type: 'switch', - label: 'playlist', - value: true - }, - it_channel: { - type: 'switch', - label: 'channel', - value: true - }, - it_shortcuts: { - type: 'switch', - label: 'shortcuts', - value: true - }, - it_mixer: { - type: 'switch', - label: 'mixer', - value: true - }, - it_analyzer: { - type: 'switch', - label: 'analyzer', - value: true - }, - it_blacklist: { - type: 'switch', - label: 'blacklist', - value: true - } - } - } - }, - icons: { - type: 'section', - label: 'icons', - - improvedtube_youtube_icon: { - label: 'improvedtubeIconOnYoutube', - type: 'select', - options: [{ - label: 'disabled', - value: 'disabled' - }, { - label: 'youtubeHeaderLeft', - value: 'header_left' - }, { - label: 'youtubeHeaderRight', - value: 'header_right' - }, { - label: 'draggable', - value: 'draggable' - }, { - label: 'belowPlayer', - value: 'below_player' - }] - }, - improvedtube_browser_icon: { - label: 'improvedtubeIconInBrowser', - type: 'select', - - options: [{ - label: 'onlyActiveOnYoutube', - value: 'youtube' - }, { - label: 'alwaysActive', - value: 'always' - }] - } - } - }, - languages: { - type: 'folder', - before: '', - label: 'languages', - - section: { - type: 'section', - - language: { - label: 'improvedtubeLanguage', - type: 'select', - onchange: function(name, value) { - satus.memory.set('locale', {}); - - satus.locale(function() { - document.querySelector('.satus-main__container').innerHTML = ''; - - document.querySelector('.satus-header__title').innerText = satus.locale.getMessage('languages'); - document.querySelector('#search').placeholder = satus.locale.getMessage('search'); - - satus.render(document.querySelector('.satus-main__container'), Menu.main.section.settings.section.languages); - }); - }, - options: [{ - value: 'en', - label: 'English' - }, { - value: 'ko', - label: '한국어' - }, { - value: 'es', - label: 'Español (España)' - }, { - value: 'ru', - label: 'Русский' - }, { - value: 'de', - label: 'Deutsch' - }, { - value: 'zh_TW', - label: '中文 (繁體)' - }, { - value: 'pt_PT', - label: 'Português' - }, { - value: 'pt_BR', - label: 'Português (Brasil)' - }, { - value: 'zh_CN', - label: '中文 (简体)' - }, { - value: 'fr', - label: 'Français' - }, { - value: 'ja', - label: '日本語' - }, { - value: 'tr', - label: 'Türkçe' - }, { - value: 'tr', - label: 'Italiano' - }, { - value: 'nl', - label: 'Nederlands' - }, { - value: 'ar', - label: 'العربية' - }, { - value: 'id', - label: 'Bahasa Indonesia' - }, { - value: 'nb', - label: 'Norsk' - }, { - value: 'nb_NO', - label: 'Norsk (Bokmål)' - }, { - value: 'el', - label: 'Ελληνικά' - }, { - value: 'bn', - label: 'বাংলা' - }, { - value: 'hin', - label: 'हिन्दी' - }, { - value: 'sk', - label: 'Slovenčina' - }] - }, - youtube_language: { - label: 'youtubeLanguage', - type: 'select', - options: [{ - value: "en", - label: "English" - }, { - value: "es", - label: "Español (España)" - }, { - value: "es-419", - label: "Español (Latinoamérica)" - }, { - value: "es-US", - label: "Español (US)" - }, { - value: "ru", - label: "Русский" - }, { - value: "de", - label: "Deutsch" - }, { - value: "pt-PT", - label: "Português" - }, { - value: "pt", - label: "Português (Brasil)" - }, { - value: "fr", - label: "Français" - }, { - value: "pl", - label: "Polski" - }, { - value: "ja", - label: "日本語" - }, { - value: "af", - label: "Afrikaans" - }, { - value: "az", - label: "Azərbaycan" - }, { - value: "id", - label: "Bahasa Indonesia" - }, { - value: "ms", - label: "Bahasa Malaysia" - }, { - value: "bs", - label: "Bosanski" - }, { - value: "ca", - label: "Català" - }, { - value: "cs", - label: "Čeština" - }, { - value: "da", - label: "Dansk" - }, { - value: "et", - label: "Eesti" - }, { - value: "eu", - label: "Euskara" - }, { - value: "fil", - label: "Filipino" - }, { - value: "fr-CA", - label: "Français (Canada)" - }, { - value: "gl", - label: "Galego" - }, { - value: "hr", - label: "Hrvatski" - }, { - value: "zu", - label: "IsiZulu" - }, { - value: "is", - label: "Íslenska" - }, { - value: "it", - label: "Italiano" - }, { - value: "sw", - label: "Kiswahili" - }, { - value: "lv", - label: "Latviešu valoda" - }, { - value: "lt", - label: "Lietuvių" - }, { - value: "hu", - label: "Magyar" - }, { - value: "nl", - label: "Nederlands" - }, { - value: "no", - label: "Norsk" - }, { - value: "uz", - label: "O‘zbek" - }, { - value: "ro", - label: "Română" - }, { - value: "sq", - label: "Shqip" - }, { - value: "sk", - label: "Slovenčina" - }, { - value: "sl", - label: "Slovenščina" - }, { - value: "sr-Latn", - label: "Srpski" - }, { - value: "fi", - label: "Suomi" - }, { - value: "sv", - label: "Svenska" - }, { - value: "vi", - label: "Tiếng Việt" - }, { - value: "tr", - label: "Türkçe" - }, { - value: "be", - label: "Беларуская" - }, { - value: "bg", - label: "Български" - }, { - value: "ky", - label: "Кыргызча" - }, { - value: "kk", - label: "Қазақ Тілі" - }, { - value: "mk", - label: "Македонски" - }, { - value: "mn", - label: "Монгол" - }, { - value: "sr", - label: "Српски" - }, { - value: "uk", - label: "Українська" - }, { - value: "el", - label: "Ελληνικά" - }, { - value: "hy", - label: "Հայերեն" - }, { - value: "iw", - label: "עברית" - }, { - value: "ur", - label: "اردو" - }, { - value: "ar", - label: "العربية" - }, { - value: "fa", - label: "فارسی" - }, { - value: "ne", - label: "नेपाली" - }, { - value: "mr", - label: "मराठी" - }, { - value: "hi", - label: "हिन्दी" - }, { - value: "bn", - label: "বাংলা" - }, { - value: "pa", - label: "ਪੰਜਾਬੀ" - }, { - value: "gu", - label: "ગુજરાતી" - }, { - value: "ta", - label: "தமிழ்" - }, { - value: "te", - label: "తెలుగు" - }, { - value: "kn", - label: "ಕನ್ನಡ" - }, { - value: "ml", - label: "മലയാളം" - }, { - value: "si", - label: "සිංහල" - }, { - value: "th", - label: "ภาษาไทย" - }, { - value: "lo", - label: "ລາວ" - }, { - value: "my", - label: "ဗမာ" - }, { - value: "ka", - label: "ქართული" - }, { - value: "am", - label: "አማርኛ" - }, { - value: "km", - label: "ខ្មែរ" - }, { - value: "zh-CN", - label: "中文 (简体)" - }, { - value: "zh-TW", - label: "中文 (繁體)" - }, { - value: "zh-HK", - label: "中文 (香港)" - }, { - value: "ko", - label: "한국어" - }] - } - } - }, - backup_and_reset: { - type: 'folder', - label: 'backupAndReset', - before: '', - - section: { - type: 'section', - import_settings: { - type: 'button', - label: 'importSettings', - - onclick: function() { - if (location.href.indexOf('/options.html') !== -1) { - importData(); - } else { - chrome.tabs.create({ - url: 'options.html?action=import' - }); - } - } - }, - export_settings: { - type: 'button', - label: 'exportSettings', - - onclick: function() { - if (location.href.indexOf('/options.html') !== -1) { - exportData(); - } else { - chrome.tabs.create({ - url: 'options.html?action=export' - }); - } - } - }, - reset_all_settings: { - type: 'button', - label: 'resetAllSettings', - - onclick: function() { - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - label: 'thisWillResetAllSettings' - }, - section: { - type: 'section', - class: 'controls', - style: { - 'justify-content': 'flex-end', - 'display': 'flex' - }, - - cancel: { - type: 'button', - label: 'cancel', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - accept: { - type: 'button', - label: 'accept', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - satus.storage.clear(); - - location.reload(); - - scrim[scrim.length - 1].click(); - } - } - } - }); - } - }, - delete_youtube_cookies: { - type: 'button', - label: 'deleteYoutubeCookies', - - onclick: function() { - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - label: 'thisWillRemoveAllYouTubeCookies', - style: { - 'width': '100%', - 'opacity': '.8' - } - }, - section: { - type: 'section', - class: 'controls', - style: { - 'justify-content': 'flex-end', - 'display': 'flex' - }, - - cancel: { - type: 'button', - label: 'cancel', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - accept: { - type: 'button', - label: 'accept', - onclick: function() { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - chrome.tabs.query({}, function(tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - name: 'delete_youtube_cookies' - }); - } - } - }); - - scrim[scrim.length - 1].click(); - } - } - } - }); - } - } - } - }, - date_and_time: { - type: 'folder', - label: 'dateAndTime', - before: '', - - section: { - type: 'section', - - use_24_hour_format: { - type: 'switch', - label: 'use24HourFormat', - value: true - } - } - }, - about: { - type: 'folder', - before: '', - label: 'about', - appearanceId: 'about', - - section: { - type: 'section', - - onrender: function() { - var component = this, - manifest = chrome.runtime.getManifest(), - user = satus.modules.user(), - object = { - extension_section: { - type: 'section', - label: 'extension', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - version: { - type: 'text', - label: 'version', - value: manifest.version - }, - permissions: { - type: 'text', - label: 'permissions', - value: manifest.permissions.join(', ').replace('https://www.youtube.com/', 'YouTube') - }, - }, - browser_section: { - type: 'section', - label: 'browser', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - name: { - type: 'text', - label: 'name', - value: user.browser.name - }, - version: { - type: 'text', - label: 'version', - value: user.browser.version - }, - platform: { - type: 'text', - label: 'platform', - value: user.browser.platform - }, - video_formats: { - type: 'text', - label: 'videoFormats', - value: user.browser.video - }, - audio_formats: { - type: 'text', - label: 'audioFormats', - value: user.browser.audio - }, - flash: { - type: 'text', - label: 'flash', - value: user.browser.flash ? true : false - } - }, - os_section: { - type: 'section', - label: 'os', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - os_name: { - type: 'text', - label: 'name', - value: user.os.name - }, - - os_type: { - type: 'text', - label: 'type', - value: user.os.type - } - }, - device_section: { - type: 'section', - label: 'device', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - screen: { - type: 'text', - label: 'screen', - value: user.device.screen - }, - cores: { - type: 'text', - label: 'cores', - value: user.device.cores - }, - gpu: { - type: 'text', - label: 'gpu', - value: user.device.gpu - }, - ram: { - type: 'text', - label: 'ram', - value: user.device.ram - } - } - }; - - setTimeout(function() { - satus.render(object, component.parentNode); - - component.remove(); - }); - } - } - } - } -}; - - -/*------------------------------------------------------------------------------ -1.3 MIXER -------------------------------------------------------------------------------*/ - -Menu.header.section_end.button_vert.onClickRender.mixer = { - type: 'folder', - before: '', - label: 'mixer', - class: 'satus-folder--mixer', - appearanceId: 'mixer', - onopen: function() { - var self = this; - - if (chrome && chrome.tabs) { - chrome.tabs.query({}, function(tabs) { - var mixer = {}; - - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - var tab = tabs[i]; - - if (/(\?|\&)v=/.test(tab.url)) { - mixer[i] = { - type: 'section', - class: 'satus-section--mixer', - style: { - 'background': 'url(https://img.youtube.com/vi/' + tab.url.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '/0.jpg) center center / cover no-repeat #000', - }, - - section: { - type: 'section', - dataset: { - 'noConnectionLabel': satus.locale.getMessage('tryToReloadThePage') || 'tryToReloadThePage' - }, - - mixer_volume: { - type: 'slider', - label: 'volume', - dataset: { - id: tab.id, - element: 'audio' - }, - max: 100, - onrender: function() { - var self = this; - - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'request_volume' - }, function(response) { - if (response) { - document.querySelector('div[data-element="audio"][data-id="' + Number(self.dataset.id) + '"]').change(response.value); - } else { - self.parentNode.parentNode.classList.add('noconnection'); - } - }); - }, - onchange: function(value) { - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'change_volume', - volume: value - }); - } - }, - mixer_playback_speed: { - type: 'slider', - label: 'playbackSpeed', - dataset: { - id: tab.id, - element: 'playback_speed' - }, - min: .1, - max: 8, - step: .05, - onrender: function() { - var self = this; - - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'request_playback_speed' - }, function(response) { - if (response) { - document.querySelector('div[data-element="playback_speed"][data-id="' + Number(self.dataset.id) + '"]').change(Number(response.value)); - } else { - self.parentNode.parentNode.classList.add('noconnection'); - } - }); - }, - onchange: function(value) { - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'change_playback_speed', - playback_speed: value - }); - } - } - } - }; - } - } - } - - if (Object.entries(mixer).length === 0) { - mixer.section = { - type: 'section', - - message: { - type: 'text', - class: 'satus-section--message', - label: 'noOpenVideoTabs' - } - }; - } - - document.querySelector('.satus-dialog__scrim').click(); - - satus.render(mixer, self); - }); - } - } -}; - - -/*------------------------------------------------------------------------------ -2.0 MAIN -------------------------------------------------------------------------------*/ - -Menu.main = { - type: 'main', - appearanceId: 'home', - on: { - change: function(container) { - var item = this.history[this.history.length - 1], - id = item.appearanceId; - - document.body.dataset.appearance = id; - container.dataset.appearance = id; - - document.querySelector('.satus-text--title').innerText = satus.locale.getMessage(item.label) || 'ImprovedTube'; - } - }, - - section: { - type: 'section' - }, - - footer: { - type: 'button', - class: 'satus-button--ad', - label: 'DARK MODE', - title: 'Dark Mode', - onclick: function() { - window.open('https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl', '_blank'); - } - }, - - info: { - type: 'section', - class: 'satus-section--info', - - email: { - type: 'button', - label: 'Email', - title: 'bugs@improvedtube.com', - onclick: function() { - window.open('mailto:bugs@improvedtube.com', '_blank'); - } - }, - github: { - type: 'button', - label: 'GitHub', - title: '/ImprovedTube/ImprovedTube', - onclick: function() { - window.open('https://github.com/ImprovedTube/ImprovedTube/', '_blank'); - } - }, - website: { - type: 'button', - label: 'Website', - title: 'improvedtube.com', - onclick: function() { - window.open('http://www.improvedtube.com/', '_blank'); - } - } - } -}; - - -/*------------------------------------------------------------------------------ -2.1 GENERAL -------------------------------------------------------------------------------*/ - -Menu.main.section.general = { - type: 'folder', - before: '', - label: 'general', - class: 'satus-folder--general', - appearanceId: 'general', - - section: { - type: 'section', - - /*legacy_youtube: { - type: 'switch', - label: 'legacyYoutube', - tags: 'old' - },*/ - youtube_home_page: { - type: 'select', - label: 'youtubeHomePage', - options: [{ - label: 'home', - value: '/' - }, { - label: 'trending', - value: '/feed/trending' - }, { - label: 'subscriptions', - value: '/feed/subscriptions' - }, { - label: 'history', - value: '/feed/history' - }, { - label: 'watchLater', - value: '/playlist?list=WL' - }, { - label: 'search', - value: 'search' - }], - tags: 'trending,subscriptions,history,watch,search' - }, - collapse_of_subscription_sections: { - type: 'switch', - label: 'collapseOfSubscriptionSections' - }, - add_scroll_to_top: { - type: 'switch', - label: 'addScrollToTop', - tags: 'up' - }, - remove_related_search_results: { - type: 'switch', - label: 'removeRelatedSearchResults' - }, - confirmation_before_closing: { - type: 'switch', - label: 'confirmationBeforeClosing', - tags: 'random prevent close exit' - }, - mark_watched_videos: { - type: 'switch', - label: 'markWatchedVideos' - }, - only_one_player_instance_playing: { - type: 'switch', - label: 'onlyOnePlayerInstancePlaying' - } - }, - - section_label__thumbnails: { - type: 'text', - class: 'satus-section--label', - label: 'thumbnails' - }, - - thumbnails_section: { - type: 'section', - - squared_user_images: { - type: 'switch', - label: 'squaredUserImages', - tags: 'avatar' - }, - hd_thumbnails: { - type: 'switch', - label: 'hdThumbnails', - tags: 'preview quality' - }, - hide_animated_thumbnails: { - type: 'switch', - label: 'hideAnimatedThumbnails', - tags: 'preview' - } - } -}; - - -/*------------------------------------------------------------------------------ -2.2 APPEARANCE -------------------------------------------------------------------------------*/ - -Menu.main.section.appearance = { - type: 'folder', - before: '', - label: 'appearance', - class: 'satus-folder--appearance', - appearanceId: 'appearance', - - header: { - type: 'folder', - label: 'header', - class: 'satus-folder--header', - - section: { - type: 'section', - - header_position: { - type: 'select', - label: 'position', - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'hidden', - value: 'hidden' - }, { - label: 'hover', - value: 'hover' - }, { - label: 'hiddenOnVideoPage', - value: 'hidden_on_video_page' - }, { - label: 'hoverOnVideoPage', - value: 'hover_on_video_page' - }, { - label: 'static', - value: 'static' - }], - tags: 'hide,hover,static,top' - }, - header_improve_logo: { - type: 'switch', - label: 'improveLogo', - tags: 'youtube' - }, - header_hide_right_buttons: { - type: 'switch', - label: 'hideRightButtons', - tags: 'user' - } - } - }, - player: { - type: 'folder', - label: 'player', - class: 'satus-folder--player', - - section: { - type: 'section', - - player_hide_annotations: { - type: 'switch', - label: 'hideAnnotations', - tags: 'hide,remove,elements' - }, - player_hide_cards: { - type: 'switch', - label: 'hideCards', - tags: 'hide,remove,elements' - }, - player_show_cards_on_mouse_hover: { - type: 'switch', - label: 'showCardsOnMouseHover', - tags: 'hide,remove,elements' - }, - player_size: { - type: 'select', - label: 'playerSize', - options: [{ - label: 'doNotChange', - value: 'do_not_change' - }, { - label: 'fullWindow', - value: 'full_window' - }, { - label: 'fitToWindow', - value: 'fit_to_window' - }, { - label: '240p', - value: '240p' - }, { - label: '360p', - value: '360p' - }, { - label: '480p', - value: '480p' - }, { - label: '576p', - value: '576p' - }, { - label: '720p', - value: '720p' - }, { - label: '1080p', - value: '1080p' - }, { - label: '1440p', - value: '1440p' - }, { - label: '2160p', - value: '2160p' - }] - }, - forced_theater_mode: { - type: 'switch', - label: 'forcedTheaterMode', - tags: 'wide' - }, - player_color: { - label: 'playerColor', - type: 'select', - options: [{ - label: 'red', - value: 'red' - }, { - label: 'pink', - value: 'pink' - }, { - label: 'purple', - value: 'purple' - }, { - label: 'deepPurple', - value: 'deep_purple' - }, { - label: 'indigo', - value: 'indigo' - }, { - label: 'blue', - value: 'blue' - }, { - label: 'lightBlue', - value: 'light_blue' - }, { - label: 'cyan', - value: 'cyan' - }, { - label: 'teal', - value: 'teal' - }, { - label: 'green', - value: 'green' - }, { - label: 'lightGreen', - value: 'light_green' - }, { - label: 'lime', - value: 'lime' - }, { - label: 'yellow', - value: 'yellow' - }, { - label: 'amber', - value: 'amber' - }, { - label: 'orange', - value: 'orange' - }, { - label: 'deepOrange', - value: 'deep_orange' - }, { - label: 'brown', - value: 'brown' - }, { - label: 'blueGray', - value: 'blue_gray' - }, { - label: 'white', - value: 'white' - }], - tags: 'style' - }, - player_transparent_background: { - type: 'switch', - label: 'transparentBackground' - }, - player_hide_endscreen: { - type: 'switch', - label: 'hideEndscreen' - }, - player_hd_thumbnail: { - type: 'switch', - label: 'hdThumbnail', - tags: 'preview' - }, - hide_scroll_for_details: { - type: 'switch', - label: 'hideScrollForDetails', - tags: 'remove,hide' - }, - always_show_progress_bar: { - type: 'switch', - label: 'alwaysShowProgressBar' - } - } - }, - details: { - type: 'folder', - label: 'details', - class: 'satus-folder--details', - - section: { - type: 'section', - - hide_details: { - type: 'switch', - label: 'hideDetails', - tags: 'hide,remove' - }, - description: { - type: 'select', - label: 'description', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'expanded', - value: 'expanded' - }, { - label: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - hide_views_count: { - type: 'switch', - label: 'hideViewsCount', - tags: 'hide,remove' - }, - likes: { - type: 'select', - label: 'likes', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'iconsOnly', - value: 'icons_only' - }, { - label: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - how_long_ago_the_video_was_uploaded: { - type: 'switch', - label: 'howLongAgoTheVideoWasUploaded' - }, - channel_videos_count: { - type: 'switch', - label: 'showChannelVideosCount' - }, - red_dislike_button: { - type: 'switch', - label: 'redDislikeButton' - } - } - }, - sidebar: { - type: 'folder', - label: 'sidebar', - class: 'satus-folder--sidebar', - - section: { - type: 'section', - - livechat: { - type: 'select', - label: 'liveChat', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'collapsed', - value: 'collapsed' - }, { - label: 'hidden', - value: 'hidden' - }] - }, - hide_playlist: { - type: 'switch', - label: 'hidePlaylist' - }, - related_videos: { - type: 'select', - label: 'relatedVideos', - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'collapsed', - value: 'collapsed' - }, { - label: 'hidden', - value: 'hidden' - }], - tags: 'right' - } - } - }, - comments: { - type: 'folder', - label: 'comments', - class: 'satus-folder--comments', - - section: { - type: 'section', - - comments: { - type: 'select', - label: 'comments', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'collapsed', - value: 'collapsed' - }, { - label: 'hidden', - value: 'hidden' - }] - } - } - }, - footer: { - type: 'folder', - label: 'footer', - class: 'satus-folder--footer', - - section: { - type: 'section', - - hide_footer: { - type: 'switch', - label: 'hideFooter', - tags: 'bottom' - } - } - } -}; - - -/*------------------------------------------------------------------------------ -2.3 THEMES -------------------------------------------------------------------------------*/ - -Menu.main.section.themes = { - type: 'folder', - before: '', - label: 'themes', - class: 'satus-folder--themes', - appearanceId: 'themes', - - section: { - type: 'section', - - my_colors: { - type: 'folder', - label: 'myColors', - - section: { - type: 'section', - - theme_my_colors: { - type: 'switch', - label: 'activate' - } - }, - - section2: { - type: 'section', - - theme_primary_color: { - type: 'color-picker', - label: 'primaryColor', - value: 'rgba(200,200,200)' - }, - theme_text_color: { - type: 'color-picker', - label: 'textColor', - value: 'rgba(25,25,25)' - } - } - }, - filters: { - type: 'folder', - label: 'filters', - - section: { - type: 'section', - - bluelight: { - type: 'slider', - label: 'bluelight', - step: 1, - max: 90, - value: 0 - }, - dim: { - type: 'slider', - label: 'dim', - step: 1, - max: 90, - value: 0 - } - } - }, - schedule: { - type: 'folder', - label: 'schedule', - - section: { - type: 'section', - - schedule: { - type: 'select', - label: 'schedule', - - options: [{ - label: 'disabled', - value: 'disabled' - }, { - label: 'sunsetToSunrise', - value: 'sunset_to_sunrise' - }, { - label: 'systemPeferenceDark', - value: 'system_peference_dark' - }, { - label: 'systemPeferenceLight', - value: 'system_peference_light' - }] - }, - schedule_time_from: { - type: 'select', - label: 'timeFrom', - options: [{ - label: '00:00', - value: '00:00' - }, { - label: '01:00', - value: '01:00' - }, { - label: '02:00', - value: '02:00' - }, { - label: '03:00', - value: '03:00' - }, { - label: '04:00', - value: '04:00' - }, { - label: '05:00', - value: '05:00' - }, { - label: '06:00', - value: '06:00' - }, { - label: '07:00', - value: '07:00' - }, { - label: '08:00', - value: '08:00' - }, { - label: '09:00', - value: '09:00' - }, { - label: '10:00', - value: '10:00' - }, { - label: '11:00', - value: '11:00' - }, { - label: '12:00', - value: '12:00' - }, { - label: '13:00', - value: '13:00' - }, { - label: '14:00', - value: '14:00' - }, { - label: '15:00', - value: '15:00' - }, { - label: '16:00', - value: '16:00' - }, { - label: '17:00', - value: '17:00' - }, { - label: '18:00', - value: '18:00' - }, { - label: '19:00', - value: '19:00' - }, { - label: '20:00', - value: '20:00' - }, { - label: '21:00', - value: '21:00' - }, { - label: '22:00', - value: '22:00' - }, { - label: '23:00', - value: '23:00' - }] - }, - schedule_time_to: { - type: 'select', - label: 'timeTo', - options: [{ - label: '00:00', - value: '00:00' - }, { - label: '01:00', - value: '01:00' - }, { - label: '02:00', - value: '02:00' - }, { - label: '03:00', - value: '03:00' - }, { - label: '04:00', - value: '04:00' - }, { - label: '05:00', - value: '05:00' - }, { - label: '06:00', - value: '06:00' - }, { - label: '07:00', - value: '07:00' - }, { - label: '08:00', - value: '08:00' - }, { - label: '09:00', - value: '09:00' - }, { - label: '10:00', - value: '10:00' - }, { - label: '11:00', - value: '11:00' - }, { - label: '12:00', - value: '12:00' - }, { - label: '13:00', - value: '13:00' - }, { - label: '14:00', - value: '14:00' - }, { - label: '15:00', - value: '15:00' - }, { - label: '16:00', - value: '16:00' - }, { - label: '17:00', - value: '17:00' - }, { - label: '18:00', - value: '18:00' - }, { - label: '19:00', - value: '19:00' - }, { - label: '20:00', - value: '20:00' - }, { - label: '21:00', - value: '21:00' - }, { - label: '22:00', - value: '22:00' - }, { - label: '23:00', - value: '23:00' - }] - } - } - }, - font: { - type: 'select', - label: 'font', - options: [{ - label: 'Roboto', - value: 'Roboto' - }, { - label: 'Open Sans', - value: 'Open+Sans' - }, { - label: 'Lato', - value: 'Lato' - }, { - label: 'Montserrat', - value: 'Montserrat' - }, { - label: 'Source Sans Pro', - value: 'Source+Sans+Pro' - }, { - label: 'Roboto Condensed', - value: 'Roboto+Condensed' - }, { - label: 'Oswald', - value: 'Oswald' - }, { - label: 'Comfortaa', - value: 'Comfortaa' - }, { - label: 'Roboto Mono', - value: 'Roboto+Mono' - }, { - label: 'Raleway', - value: 'Raleway' - }, { - label: 'Poppins', - value: 'Poppins' - }, { - label: 'Noto Sans', - value: 'Noto+Sans' - }, { - label: 'Roboto Slab', - value: 'Roboto+Slab' - }, { - label: 'Marriweather', - value: 'Marriweather' - }, { - label: 'PT Sans', - value: 'PT+Sans' - }] - } - }, - - default_dark_theme: { - type: 'switch', - label: 'dark', - class: 'satus-switch--dark', - - onchange: themeChange - }, - night_theme: { - type: 'switch', - label: 'night', - class: 'satus-switch--night', - - onchange: themeChange - }, - dawn_theme: { - type: 'switch', - label: 'dawn', - class: 'satus-switch--dawn', - - onchange: themeChange - }, - sunset_theme: { - type: 'switch', - label: 'sunset', - class: 'satus-switch--sunset', - - onchange: themeChange - }, - desert_theme: { - type: 'switch', - label: 'desert', - class: 'satus-switch--desert', - - onchange: themeChange - }, - plain_theme: { - type: 'switch', - label: 'plain', - class: 'satus-switch--plain', - - onchange: themeChange - }, - black_theme: { - type: 'switch', - label: 'black', - class: 'satus-switch--black', - - onchange: themeChange - } -}; - - -/*------------------------------------------------------------------------------ -2.4 PLAYER -------------------------------------------------------------------------------*/ - -Menu.main.section.player = { - type: 'folder', - before: '', - label: 'player', - class: 'satus-folder--player', - appearanceId: 'player', - - general: { - type: 'section', - - player_autoplay: { - type: 'switch', - label: 'autoplay', - value: true - }, - player_autopause_when_switching_tabs: { - type: 'switch', - label: 'autopauseWhenSwitchingTabs' - }, - player_forced_playback_speed: { - type: 'switch', - label: 'forcedPlaybackSpeed', - id: 'forced-playback-speed', - onrender: function() { - this.dataset.value = satus.storage.player_forced_playback_speed; - }, - onchange: function() { - this.dataset.value = satus.storage.player_forced_playback_speed; - } - }, - player_playback_speed: { - type: 'slider', - label: 'playbackSpeed', - textarea: true, - value: 1, - min: .1, - max: 8, - step: .05 - }, - player_subtitles: { - type: 'switch', - label: 'subtitles', - value: true - }, - player_crop_chapter_titles: { - type: 'switch', - label: 'cropChapterTitles', - value: true - }, - up_next_autoplay: { - type: 'switch', - label: 'upNextAutoplay', - value: true - }, - player_ads: { - label: 'ads', - type: 'select', - options: [{ - label: 'onAllVideos', - value: 'all_videos', - default: 'true' - }, { - label: 'onSubscribedChannels', - value: 'subscribed_channels' - }, { - label: 'blockAll', - value: 'block_all' - }] - }, - mini_player: { - type: 'switch', - label: 'customMiniPlayer' - }, - player_autofullscreen: { - type: 'switch', - label: 'autoFullscreen' - } - }, - - section_label__videos: { - type: 'text', - class: 'satus-section--label', - label: 'videos' - }, - - video: { - type: 'section', - - player_quality: { - type: 'select', - label: 'quality', - options: [{ - label: 'auto', - value: 'auto' - }, { - label: '144p', - value: 'tiny' - }, { - label: '240p', - value: 'small' - }, { - label: '360p', - value: 'medium' - }, { - label: '480p', - value: 'large' - }, { - label: '720p', - value: 'hd720' - }, { - label: '1080p', - value: 'hd1080' - }, { - label: '1440p', - value: 'hd1440' - }, { - label: '2160p', - value: 'hd2160' - }, { - label: '2880p', - value: 'hd2880' - }, { - label: '4320p', - value: 'highres' - }] - }, - player_h264: { - type: 'switch', - label: 'codecH264', - - onclick: function() { - console.log(this.dataset.value); - if (this.querySelector('input').checked === true) { - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - label: 'youtubeLimitsVideoQualityTo1080pForH264Codec', - style: { - 'width': '100%', - 'opacity': '.8' - } - }, - section: { - type: 'section', - class: 'controls', - style: { - 'justify-content': 'flex-end' - }, - - cancel: { - type: 'button', - label: 'cancel', - onclick: function() { - let scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - ok: { - type: 'button', - label: 'OK', - onclick: function() { - let scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - } - } - }); - } - } - }, - player_60fps: { - type: 'switch', - label: 'allow60fps', - value: true - }, - player_SDR: { - type: 'switch', - label: 'forceSDR', - value: false - }, - }, - - section_label__audio: { - type: 'text', - class: 'satus-section--label', - label: 'audio' - }, - - audio: { - type: 'section', - label: 'audio', - - player_forced_volume: { - type: 'switch', - label: 'forcedVolume', - id: 'forced-volume', - onrender: function() { - this.dataset.value = satus.storage.player_forced_volume; - }, - onchange: function() { - this.dataset.value = satus.storage.player_forced_volume; - } - }, - player_volume: { - type: 'slider', - label: 'volume', - step: 1, - max: 100, - value: 100 - }, - player_loudness_normalization: { - type: 'switch', - label: 'loudnessNormalization', - value: true - } - }, - - section_label__buttons: { - type: 'text', - class: 'satus-section--label', - label: 'buttons' - }, - - buttons: { - type: 'section', - - player_screenshot: { - type: 'folder', - label: 'screenshot', - - section: { - type: 'section', - - player_screenshot_button: { - type: 'switch', - label: 'activate' - }, - player_screenshot_save_as: { - type: 'select', - label: 'saveAs', - options: [{ - label: 'file', - value: 'file' - }, { - label: 'clipboard', - value: 'clipboard' - }] - } - } - }, - player_repeat: { - type: 'folder', - label: 'repeat', - - section: { - type: 'section', - - player_repeat_button: { - type: 'switch', - label: 'activate' - }, - player_always_repeat: { - type: 'switch', - label: 'alwaysActive' - } - } - }, - player_rotate_button: { - type: 'switch', - label: 'rotate' - }, - player_popup_button: { - type: 'switch', - label: 'popupPlayer' - } - } -}; - - -/*------------------------------------------------------------------------------ -2.5 PLAYLIST -------------------------------------------------------------------------------*/ - -Menu.main.section.playlist = { - type: 'folder', - before: '', - label: 'playlist', - class: 'satus-folder--playlist', - appearanceId: 'playlist', - - section: { - type: 'section', - - playlist_autoplay: { - type: 'switch', - label: 'autoplay', - value: true - }, - playlist_up_next_autoplay: { - type: 'switch', - label: 'upNextAutoplay', - value: true - }, - playlist_reverse: { - type: 'switch', - label: 'reverse' - } - }, - - section2: { - type: 'section', - - playlist_repeat: { - type: 'switch', - label: 'repeat' - }, - playlist_shuffle: { - type: 'switch', - label: 'shuffle' - } - } -}; - - -/*------------------------------------------------------------------------------ -2.6 CHANNEL -------------------------------------------------------------------------------*/ - -Menu.main.section.channel = { - type: 'folder', - before: '', - label: 'channel', - class: 'satus-folder--channel', - appearanceId: 'channel', - - section: { - type: 'section', - - channel_default_tab: { - type: 'select', - label: 'defaultChannelTab', - options: [{ - label: 'home', - value: '/home' - }, { - label: 'videos', - value: '/videos' - }, { - label: 'playlists', - value: '/playlists' - }] - }, - channel_trailer_autoplay: { - type: 'switch', - label: 'trailerAutoplay', - value: true - }, - channel_hide_featured_content: { - type: 'switch', - label: 'hideFeaturedContent' - } - } -}; - - -/*------------------------------------------------------------------------------ -2.7 SHORTCUTS -------------------------------------------------------------------------------*/ - -Menu.main.section.shortcuts = { - type: 'folder', - before: '', - label: 'shortcuts', - class: 'satus-folder--shortcut', - appearanceId: 'shortcuts', - - player_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'player' - }, - - player_section: { - type: 'section', - - shortcut_picture_in_picture: { - type: 'shortcut', - label: 'pictureInPicture' - }, - shortcut_play_pause: { - type: 'shortcut', - label: 'playPause', - value: { - key: ' ' - } - }, - shortcut_stop: { - type: 'shortcut', - label: 'stop' - }, - shortcut_next_video: { - type: 'shortcut', - label: 'nextVideo', - value: { - key: 'N', - shiftKey: true - } - }, - shortcut_prev_video: { - type: 'shortcut', - label: 'previousVideo', - value: { - key: 'P', - shiftKey: true - } - }, - shortcut_seek_backward: { - type: 'shortcut', - label: 'seekBackward10Seconds', - value: { - key: 'J' - } - }, - shortcut_seek_forward: { - type: 'shortcut', - label: 'seekForward10Seconds', - value: { - key: 'I' - } - }, - shortcut_volume: { - type: 'folder', - label: 'volume', - - section_step: { - type: 'section', - - shortcut_volume_step: { - type: 'slider', - label: 'step', - min: 1, - max: 10, - step: 1, - value: 5 - } - }, - - section: { - type: 'section', - - shortcut_increase_volume: { - type: 'shortcut', - label: 'increaseVolume' - }, - shortcut_decrease_volume: { - type: 'shortcut', - label: 'decreaseVolume' - } - } - }, - shortcut_playback_speed: { - type: 'folder', - label: 'playbackSpeed', - - section_step: { - type: 'section', - - shortcut_playback_speed_step: { - type: 'slider', - label: 'step', - min: .05, - max: .5, - step: .05, - value: .05 - } - }, - - section: { - type: 'section', - - shortcut_increase_playback_speed: { - type: 'shortcut', - label: 'increasePlaybackSpeed' - }, - shortcut_decrease_playback_speed: { - type: 'shortcut', - label: 'decreasePlaybackSpeed' - } - } - }, - shortcut_activate_fullscreen: { - type: 'shortcut', - label: 'activateFullscreen', - value: { - key: 'F' - } - }, - shortcut_activate_captions: { - type: 'shortcut', - label: 'activateCaptions', - value: { - key: 'C' - } - }, - shortcut_quality: { - type: 'folder', - label: 'quality', - - section: { - type: 'section', - - shortcut_240p: { - type: 'shortcut', - label: '240p' - }, - shortcut_360p: { - type: 'shortcut', - label: '360p' - }, - shortcut_480p: { - type: 'shortcut', - label: '480p' - }, - shortcut_720p: { - type: 'shortcut', - label: '720p' - }, - shortcut_1080p: { - type: 'shortcut', - label: '1080p' - }, - shortcut_1440p: { - type: 'shortcut', - label: '1440p' - }, - shortcut_2160p: { - type: 'shortcut', - label: '2160p' - }, - shortcut_2880p: { - type: 'shortcut', - label: '2880p' - }, - shortcut_4320p: { - type: 'shortcut', - label: '4320p' - } - } - }, - shortcut_custom_mini_player: { - type: 'shortcut', - label: 'customMiniPlayer' - }, - shortcut_screenshot: { - type: 'shortcut', - label: 'screenshot' - }, - shortcut_stats_for_nerds: { - type: 'shortcut', - label: 'statsForNerds' - }, - shortcut_toggle_cards: { - type: 'shortcut', - label: 'toggleCards' - } - }, - - appearance_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'appearance' - }, - - appearance_section: { - type: 'section', - - shortcut_go_to_search_box: { - type: 'shortcut', - label: 'goToSearchBox', - value: { - key: '/' - } - }, - shortcut_like_shortcut: { - type: 'shortcut', - label: 'like' - }, - shortcut_dislike_shortcut: { - type: 'shortcut', - label: 'dislike' - }, - shortcut_dark_theme: { - type: 'shortcut', - label: 'darkTheme' - } - } -}; - - -/*------------------------------------------------------------------------------ -2.8 BLACKLIST -------------------------------------------------------------------------------*/ - -Menu.main.section.blacklist = { - type: 'folder', - before: '', - label: 'blacklist', - class: 'satus-folder--blacklist', - appearanceId: 'blacklist', - - section_activate: { - type: 'section', - - blacklist_activate: { - type: 'switch', - label: 'activate' - } - }, - - section: { - type: 'section', - - channels: { - type: 'folder', - label: 'channels', - onopen: function() { - var self = this; - - if (satus.storage.blacklist && satus.storage.blacklist.channels) { - var list = {}; - - for (var item in satus.storage.blacklist.channels) { - if (satus.storage.blacklist.channels[item] !== false) { - var title = satus.storage.blacklist.channels[item].title || ''; - - list[item] = { - type: 'section', - label: title.length > 20 ? title.substr(0, 20) + '...' : title, - class: 'satus-section--blacklist', - style: { - 'background-image': 'url(' + satus.storage.blacklist.channels[item].preview + ')', - 'background-color': '#000' - }, - - section: { - type: 'section', - - delete: { - type: 'button', - icon: '', - onclick: function() { - delete satus.storage.blacklist.channels[item]; - - satus.storage.set('blacklist', satus.storage.blacklist); - - this.classList.add('removing'); - - setTimeout(function() { - self.remove(); - }, 250); - } - } - } - }; - } - } - - if (Object.keys(list).length === 0) { - list.section = { - type: 'section', - class: 'satus-section--message', - - error: { - type: 'text', - label: 'empty' - } - }; - } - - satus.render(list, this); - } else { - satus.render({ - type: 'section', - class: 'satus-section--message', - - error: { - type: 'text', - label: 'empty' - } - }, this); - } - } - }, - videos: { - type: 'folder', - label: 'videos', - onopen: function() { - var self = this; - - if (satus.storage.blacklist && satus.storage.blacklist.videos) { - let list = {}; - - for (let item in satus.storage.blacklist.videos) { - if (satus.storage.blacklist.videos[item] !== false) { - let title = satus.storage.blacklist.videos[item].title || ''; - - list[item] = { - type: 'section', - label: title.length > 20 ? title.substr(0, 20) + '...' : title, - class: 'satus-section--blacklist', - style: { - 'background-image': 'url(https://img.youtube.com/vi/' + item + '/0.jpg)' - }, - - section: { - type: 'section', - - delete: { - type: 'button', - icon: '', - onclick: function() { - delete satus.storage.blacklist.videos[item]; - - satus.storage.set('blacklist', satus.storage.blacklist); - this.parentNode.parentNode.classList.add('removing'); - - setTimeout(function() { - self.parentNode.parentNode.remove(); - }, 250); - } - } - } - }; - } - } - - if (Object.keys(list).length === 0) { - list.section = { - type: 'section', - class: 'satus-section--message', - - error: { - type: 'text', - label: 'empty' - } - }; - } - - satus.render(list, this); - } else { - satus.render({ - type: 'section', - class: 'satus-section--message', - - error: { - type: 'text', - label: 'empty' - } - }, this); - } - } - } - } -}; - - -/*------------------------------------------------------------------------------ -2.9 ANALYZER -------------------------------------------------------------------------------*/ - -Menu.main.section.analyzer = { - type: 'folder', - before: '', - label: 'analyzer', - class: 'satus-folder--analyzer', - appearanceId: 'analyzer', - - activ_section: { - type: 'section', - - analyzer_activation: { - type: 'switch', - label: 'activate' - } - }, - - section: { - type: 'section', - style: { - 'flex-direction': 'column', - 'align-items': 'flex-start' - }, - onrender: function() { - var data = satus.storage.get('analyzer') || {}, - all_data = {}, - all_data_sort = [], - all_time_value = 0, - current_date = new Date().toDateString(), - container = document.createElement('div'), - top_text_container = document.createElement('div'), - today_at = document.createElement('div'), - watch_time = document.createElement('div'), - all_time = document.createElement('div'), - chart = document.createElement('div'), - bottom_text_container = document.createElement('div'); - - container.className = 'analyzer-container'; - top_text_container.className = 'analyzer-top-text'; - watch_time.className = 'analyzer-watch-time'; - today_at.className = 'analyzer-today-at'; - all_time.className = 'analyzer-all-time'; - chart.className = 'analyzer-chart'; - bottom_text_container.className = 'analyzer-bottom'; - - if (data[current_date]) { - for (let i in data[current_date]) { - if (data[current_date][i]) { - for (let j in data[current_date][i]) { - if (!all_data[j]) { - all_data[j] = 0; - } - - all_data[j] += data[current_date][i][j]; - } - } - } - } - - for (let i in all_data) { - all_data_sort.push([i, all_data[i]]); - all_time_value += all_data[i]; - } - - all_data_sort.sort(function(a, b) { - return b[1] - a[1]; - }); - - var now_minutes = new Date().getMinutes(); - - watch_time.innerText = satus.locale.getMessage('watchTime') || 'watchTime'; - today_at.innerText = satus.locale.getMessage('todayAt') + ' ' + (new Date().getHours() + ':' + (now_minutes < 10 ? '0' + now_minutes : now_minutes)) || 'todayAt'; - all_time.innerText = Math.floor(all_time_value / 60) + 'h ' + (all_time_value - Math.floor(all_time_value / 60) * 60) + 'm'; - - let h = 0; - - for (let i = 0; i < 4; i++) { - let column = document.createElement('div'); - - column.className = 'analyzer-column'; - - for (let j = 0; j < 6; j++) { - let hours = h + ':00'; - - h++; - - let data_column = document.createElement('div'); - - data_column.className = 'analyzer-data-column'; - - if (data[current_date] && data[current_date][hours]) { - for (let k in data[current_date][hours]) { - let block = document.createElement('div'); - - block.className = 'analyzer-data'; - - let height = data[current_date][hours][k] * 100 / 60; - - block.title = k; - block.style.height = height + '%'; - - if (k === all_data_sort[0][0]) { - block.className += ' first'; - } else if (k === all_data_sort[1][0]) { - block.className += ' second'; - } else if (k === all_data_sort[2][0]) { - block.className += ' third'; - } - - data_column.appendChild(block); - } - } - - column.appendChild(data_column); - } - - chart.appendChild(column); - } - - - for (let i = 0; i < 3; i++) { - if (all_data_sort[i]) { - let cont = document.createElement('div'), - label = document.createElement('div'), - value = document.createElement('div'); - - label.className = 'label'; - - label.innerText = all_data_sort[i][0]; - value.innerText = Math.floor(all_data_sort[i][1] / 60) + 'h ' + (all_data_sort[i][1] - Math.floor(all_data_sort[i][1] / 60) * 60) + 'm'; - - cont.appendChild(label); - cont.appendChild(value); - bottom_text_container.appendChild(cont); - } - } - - container.appendChild(all_time); - container.appendChild(chart); - this.appendChild(top_text_container); - top_text_container.appendChild(watch_time); - top_text_container.appendChild(today_at); - container.appendChild(bottom_text_container); - this.appendChild(container); - } - } -}; - - -/*------------------------------------------------------------------------------ -3.0 INITIALIZATION -------------------------------------------------------------------------------*/ - -function themeChange(event) { - if (event.target.checked) { - let themes = document.querySelectorAll('.satus-switch > input:checked:not([data-storage-key="red_popup_theme"])'); - - for (let i = 0, l = themes.length; i < l; i++) { - if (themes[i] !== event.target) { - themes[i].click(); - } - } - } - - if (satus.storage.get('default_dark_theme') === true) { - document.documentElement.setAttribute('theme', 'dark'); - } else if (satus.storage.get('night_theme') === true) { - document.documentElement.setAttribute('theme', 'night'); - } else if (satus.storage.get('dawn_theme') === true) { - document.documentElement.setAttribute('theme', 'dawn'); - } else if (satus.storage.get('sunset_theme') === true) { - document.documentElement.setAttribute('theme', 'sunset'); - } else if (satus.storage.get('desert_theme') === true) { - document.documentElement.setAttribute('theme', 'desert'); - } else if (satus.storage.get('plain_theme') === true) { - document.documentElement.setAttribute('theme', 'plain'); - } else if (satus.storage.get('black_theme') === true) { - document.documentElement.setAttribute('theme', 'black'); - } else { - document.documentElement.removeAttribute('theme'); - } -} - -satus.storage.import(function(items) { - satus.locale.import(satus.storage.get('language'), function() { - satus.modules.updateStorageKeys(Menu, function() { - if (location.href.indexOf('action=import') !== -1) { - importData(); - } else if (location.href.indexOf('action=export') !== -1) { - exportData(); - } else { - satus.render(Menu, document.body); - } - }); - }); - - for (var key in satus.storage) { - document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), items[key]); - } - - if (satus.isset(satus.storage.get('red_popup_theme')) === false || satus.storage.get('red_popup_theme') === true) { - document.documentElement.setAttribute('popup-theme', 'red'); - } - - if (satus.storage.get('default_dark_theme') === true) { - document.documentElement.setAttribute('theme', 'dark'); - } - - if (satus.storage.get('night_theme') === true) { - document.documentElement.setAttribute('theme', 'night'); - } - - if (satus.storage.get('dawn_theme') === true) { - document.documentElement.setAttribute('theme', 'dawn'); - } - - if (satus.storage.get('sunset_theme') === true) { - document.documentElement.setAttribute('theme', 'sunset'); - } - - if (satus.storage.get('desert_theme') === true) { - document.documentElement.setAttribute('theme', 'desert'); - } - - if (satus.storage.get('plain_theme') === true) { - document.documentElement.setAttribute('theme', 'plain'); - } - - if (satus.storage.get('black_theme') === true) { - document.documentElement.setAttribute('theme', 'black'); - } -}); - -chrome.storage.onChanged.addListener(function(changes) { - for (var key in changes) { - document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), changes[key].newValue); - } -}); - - - - - -function importData() { - satus.render({ - type: 'dialog', - - select_file: { - type: 'button', - label: 'selectFile', - onclick: function() { - var input = document.createElement('input'); - - input.type = 'file'; - - input.addEventListener('change', function() { - var file_reader = new FileReader(); - - file_reader.onload = function() { - var data = JSON.parse(this.result); - - for (var key in data) { - satus.storage.set(key, data[key]); - } - - if (location.href.indexOf('action=import') !== -1) { - window.close(); - } else { - document.querySelector('.satus-dialog__scrim').click(); - - satus.render({ - type: 'dialog', - - message: { - type: 'text', - label: 'dataImportedSuccessfully' - }, - section: { - type: 'section', - class: 'controls', - - ok: { - type: 'button', - label: 'ok', - onclick: function() { - document.querySelector('.satus-dialog__scrim').click(); - } - } - } - }); - } - }; - - file_reader.readAsText(this.files[0]); - }); - - input.click(); - } - } - }); -} - -function exportData() { - var data = {}; - - for (var key in satus.storage) { - if (typeof satus.storage[key] !== 'function') { - data[key] = satus.storage[key]; - } - } - - var blob = new Blob([JSON.stringify(data)], { - type: 'application/json;charset=utf-8' - }); - - satus.render({ - type: 'dialog', - - export: { - type: 'button', - label: 'export', - onclick: function() { - chrome.permissions.request({ - permissions: ['downloads'] - }, function(granted) { - if (granted) { - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: 'improvedtube.json', - saveAs: true - }, function() { - setTimeout(function() { - if (location.href.indexOf('action=export') !== -1) { - window.close(); - } else { - document.querySelector('.satus-dialog__scrim').click(); - - satus.render({ - type: 'dialog', - - message: { - type: 'text', - label: 'dataExportedSuccessfully' - }, - section: { - type: 'section', - class: 'controls', - - ok: { - type: 'button', - label: 'ok', - onclick: function() { - document.querySelector('.satus-dialog__scrim').click(); - } - } - } - }); - } - }, 100); - }); - } - }); - } - } - }); -} +/*------------------------------------------------------------------------------ +>>> TABLE OF CONTENTS: +-------------------------------------------------------------------------------- +1.0 Header + 1.1 Mixer + 1.2 Settings + 1.3 Active features +2.0 Main + 2.1 General + 2.2 Appearance + 2.3 Themes + 2.4 Player + 2.5 Playlist + 2.6 Channel + 2.7 Shortcuts + 2.8 Blacklist + 2.9 Analyzer +3.0 Initialization +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +1.0 HEADER +------------------------------------------------------------------------------*/ + +var Menu = { + header: { + type: 'header', + + section_start: { + type: 'section', + class: 'satus-section--align-start', + + button_back: { + type: 'button', + class: 'satus-button--back', + before: '', + onclick: function() { + if (document.querySelector('.satus-dialog__scrim')) { + document.querySelector('.satus-dialog__scrim').click(); + } else { + document.querySelector('.satus-main').back(); + } + } + }, + title: { + type: 'text', + class: 'satus-text--title', + innerText: 'ImprovedTube', + dataset: { + version: chrome && chrome.runtime && chrome.runtime.getManifest ? chrome.runtime.getManifest().version : '' + } + } + }, + section_end: { + type: 'section', + class: 'satus-section--align-end', + + button_search: { + type: 'button', + icon: '', + onclick: function() { + document.querySelector('.satus-main').open({ + appearanceId: 'search' + }, function() { + satus.render({ + type: 'dialog', + class: 'satus-dialog--search', + onclose: function() { + document.querySelector('.satus-main').back(); + }, + + input: { + type: 'text-field', + placeholder: 'search', + oninput: function() { + if (this.value.length > 0) { + satus.search(this.value, Menu, function(results) { + var sorted_results = []; + + document.querySelector('.satus-main__container').innerHTML = ''; + + for (var key in results) { + results[key].type = 'section'; + + sorted_results.push({ + type: 'text', + label: key, + class: 'satus-section--label' + }); + sorted_results.push(results[key]); + } + + console.log(results); + + var scroll = satus.components.scrollbar(document.querySelector('.satus-main__container')); + + satus.render(sorted_results, scroll); + }, true); + } else { + document.querySelector('.satus-main__container').innerHTML = ''; + + satus.render({}, document.querySelector('.satus-main__container')); + } + } + } + }); + }); + } + }, + button_vert: { + type: 'button', + icon: '', + onClickRender: { + type: 'dialog', + class: 'satus-dialog--vertical-menu' + } + } + } + } +}; + + +/*------------------------------------------------------------------------------ +1.1 ACTIVE FEATURES +------------------------------------------------------------------------------*/ + +Menu.header.section_end.button_vert.onClickRender.active_features = { + type: 'folder', + before: '', + label: 'activeFeatures', + onclick: function() { + document.querySelector('.satus-dialog__scrim').click(); + }, + + section: { + type: 'section', + onrender: function() { + var component = this, + new_menu = {}, + storage = satus.storage; + + function search(string, object) { + let result = []; + + for (let i in object) { + if (object[i].type) { + if (/(button|select|shortcut|slider|switch)/.test(object[i].type)) { + if (i.indexOf(string) !== -1 || (object[i].tags && object[i].tags.indexOf(string) !== -1)) { + if (object[i].type.indexOf('button') === -1 || !object[i].label) { + new_menu[i] = object[i]; + } + } + } else { + let response = search(string, object[i]); + + if (response.length > 0) { + for (let j = 0, l = response.length; j < l; j++) { + result.push(response[i]); + } + } + } + } + } + + return result; + } + + for (var key in storage) { + search(key, Menu) + } + + setTimeout(function() { + if (Object.keys(new_menu).length > 0) { + satus.render(new_menu, component); + } else { + satus.render({ + text: { + type: 'text', + label: 'noActiveFeatures' + } + }, component); + } + }); + } + } +}; + + +/*------------------------------------------------------------------------------ +1.2 SETTINGS +------------------------------------------------------------------------------*/ + +Menu.header.section_end.button_vert.onClickRender.settings = { + type: 'folder', + before: '', + label: 'settings', + parent: '.satus-main__container', + onclick: function() { + document.querySelector('.satus-dialog__scrim').click(); + }, + + section: { + type: 'section', + + developer_options: { + type: 'folder', + before: '', + label: 'developerOptions', + + custom_js_section_label: { + type: 'text', + class: 'satus-section--label', + label: 'customJs' + }, + + custom_js_section: { + type: 'section', + custom_js: { + type: 'text-field', + onrender: function() { + this.value = satus.storage.get('custom_js') || ''; + }, + oninput: function() { + satus.storage.set('custom_js', this.value); + } + } + }, + + custom_css_section_label: { + type: 'text', + class: 'satus-section--label', + label: 'customCss' + }, + + custom_css_section: { + type: 'section', + custom_css: { + type: 'text-field', + onrender: function() { + this.value = satus.storage.get('custom_css') || ''; + }, + oninput: function() { + satus.storage.set('custom_css', this.value); + } + } + }, + + /*translations_section_label: { + type: 'text', + class: 'satus-section--label', + label: 'translations' + }, + + translations_section: { + type: 'section', + onrender: function() { + satus.search('language', Menu, function(result) { + var languages = result.language.options; + + for (var i = 0, l = languages.length; i < l; i++) { + + } + }) + } + }*/ + }, + }, + + section0: { + type: 'section', + + appearance: { + type: 'folder', + before: '', + label: 'appearance', + + general: { + type: 'section', + label: 'general', + + header: { + type: 'folder', + label: 'header', + + section: { + type: 'section', + + title_version: { + type: 'switch', + label: 'version' + } + } + }, + home: { + type: 'folder', + label: 'home', + + section: { + type: 'section', + + improvedtube_home: { + type: 'select', + label: 'style', + options: [{ + label: 'bubbles', + value: 'bubbles' + }, { + label: 'list', + value: 'list' + }] + } + }, + + categories: { + type: 'section', + label: 'categories', + + it_general: { + type: 'switch', + label: 'general', + value: true + }, + it_appearance: { + type: 'switch', + label: 'appearance', + value: true + }, + it_themes: { + type: 'switch', + label: 'themes', + value: true + }, + it_player: { + type: 'switch', + label: 'player', + value: true + }, + it_playlist: { + type: 'switch', + label: 'playlist', + value: true + }, + it_channel: { + type: 'switch', + label: 'channel', + value: true + }, + it_shortcuts: { + type: 'switch', + label: 'shortcuts', + value: true + }, + it_mixer: { + type: 'switch', + label: 'mixer', + value: true + }, + it_analyzer: { + type: 'switch', + label: 'analyzer', + value: true + }, + it_blacklist: { + type: 'switch', + label: 'blacklist', + value: true + } + } + } + }, + icons: { + type: 'section', + label: 'icons', + + improvedtube_youtube_icon: { + label: 'improvedtubeIconOnYoutube', + type: 'select', + options: [{ + label: 'disabled', + value: 'disabled' + }, { + label: 'youtubeHeaderLeft', + value: 'header_left' + }, { + label: 'youtubeHeaderRight', + value: 'header_right' + }, { + label: 'draggable', + value: 'draggable' + }, { + label: 'belowPlayer', + value: 'below_player' + }] + }, + improvedtube_browser_icon: { + label: 'improvedtubeIconInBrowser', + type: 'select', + + options: [{ + label: 'onlyActiveOnYoutube', + value: 'youtube' + }, { + label: 'alwaysActive', + value: 'always' + }] + } + } + }, + languages: { + type: 'folder', + before: '', + label: 'languages', + + section: { + type: 'section', + + language: { + label: 'improvedtubeLanguage', + type: 'select', + onchange: function(name, value) { + satus.memory.set('locale', {}); + + satus.locale(function() { + document.querySelector('.satus-main__container').innerHTML = ''; + + document.querySelector('.satus-header__title').innerText = satus.locale.getMessage('languages'); + document.querySelector('#search').placeholder = satus.locale.getMessage('search'); + + satus.render(document.querySelector('.satus-main__container'), Menu.main.section.settings.section.languages); + }); + }, + options: [{ + value: 'en', + label: 'English' + }, { + value: 'ko', + label: '한국어' + }, { + value: 'es', + label: 'Español (España)' + }, { + value: 'ru', + label: 'Русский' + }, { + value: 'de', + label: 'Deutsch' + }, { + value: 'zh_TW', + label: '中文 (繁體)' + }, { + value: 'pt_PT', + label: 'Português' + }, { + value: 'pt_BR', + label: 'Português (Brasil)' + }, { + value: 'zh_CN', + label: '中文 (简体)' + }, { + value: 'fr', + label: 'Français' + }, { + value: 'ja', + label: '日本語' + }, { + value: 'tr', + label: 'Türkçe' + }, { + value: 'tr', + label: 'Italiano' + }, { + value: 'nl', + label: 'Nederlands' + }, { + value: 'ar', + label: 'العربية' + }, { + value: 'id', + label: 'Bahasa Indonesia' + }, { + value: 'nb', + label: 'Norsk' + }, { + value: 'nb_NO', + label: 'Norsk (Bokmål)' + }, { + value: 'el', + label: 'Ελληνικά' + }, { + value: 'bn', + label: 'বাংলা' + }, { + value: 'hin', + label: 'हिन्दी' + }, { + value: 'sk', + label: 'Slovenčina' + }] + }, + youtube_language: { + label: 'youtubeLanguage', + type: 'select', + options: [{ + value: "en", + label: "English" + }, { + value: "es", + label: "Español (España)" + }, { + value: "es-419", + label: "Español (Latinoamérica)" + }, { + value: "es-US", + label: "Español (US)" + }, { + value: "ru", + label: "Русский" + }, { + value: "de", + label: "Deutsch" + }, { + value: "pt-PT", + label: "Português" + }, { + value: "pt", + label: "Português (Brasil)" + }, { + value: "fr", + label: "Français" + }, { + value: "pl", + label: "Polski" + }, { + value: "ja", + label: "日本語" + }, { + value: "af", + label: "Afrikaans" + }, { + value: "az", + label: "Azərbaycan" + }, { + value: "id", + label: "Bahasa Indonesia" + }, { + value: "ms", + label: "Bahasa Malaysia" + }, { + value: "bs", + label: "Bosanski" + }, { + value: "ca", + label: "Català" + }, { + value: "cs", + label: "Čeština" + }, { + value: "da", + label: "Dansk" + }, { + value: "et", + label: "Eesti" + }, { + value: "eu", + label: "Euskara" + }, { + value: "fil", + label: "Filipino" + }, { + value: "fr-CA", + label: "Français (Canada)" + }, { + value: "gl", + label: "Galego" + }, { + value: "hr", + label: "Hrvatski" + }, { + value: "zu", + label: "IsiZulu" + }, { + value: "is", + label: "Íslenska" + }, { + value: "it", + label: "Italiano" + }, { + value: "sw", + label: "Kiswahili" + }, { + value: "lv", + label: "Latviešu valoda" + }, { + value: "lt", + label: "Lietuvių" + }, { + value: "hu", + label: "Magyar" + }, { + value: "nl", + label: "Nederlands" + }, { + value: "no", + label: "Norsk" + }, { + value: "uz", + label: "O‘zbek" + }, { + value: "ro", + label: "Română" + }, { + value: "sq", + label: "Shqip" + }, { + value: "sk", + label: "Slovenčina" + }, { + value: "sl", + label: "Slovenščina" + }, { + value: "sr-Latn", + label: "Srpski" + }, { + value: "fi", + label: "Suomi" + }, { + value: "sv", + label: "Svenska" + }, { + value: "vi", + label: "Tiếng Việt" + }, { + value: "tr", + label: "Türkçe" + }, { + value: "be", + label: "Беларуская" + }, { + value: "bg", + label: "Български" + }, { + value: "ky", + label: "Кыргызча" + }, { + value: "kk", + label: "Қазақ Тілі" + }, { + value: "mk", + label: "Македонски" + }, { + value: "mn", + label: "Монгол" + }, { + value: "sr", + label: "Српски" + }, { + value: "uk", + label: "Українська" + }, { + value: "el", + label: "Ελληνικά" + }, { + value: "hy", + label: "Հայերեն" + }, { + value: "iw", + label: "עברית" + }, { + value: "ur", + label: "اردو" + }, { + value: "ar", + label: "العربية" + }, { + value: "fa", + label: "فارسی" + }, { + value: "ne", + label: "नेपाली" + }, { + value: "mr", + label: "मराठी" + }, { + value: "hi", + label: "हिन्दी" + }, { + value: "bn", + label: "বাংলা" + }, { + value: "pa", + label: "ਪੰਜਾਬੀ" + }, { + value: "gu", + label: "ગુજરાતી" + }, { + value: "ta", + label: "தமிழ்" + }, { + value: "te", + label: "తెలుగు" + }, { + value: "kn", + label: "ಕನ್ನಡ" + }, { + value: "ml", + label: "മലയാളം" + }, { + value: "si", + label: "සිංහල" + }, { + value: "th", + label: "ภาษาไทย" + }, { + value: "lo", + label: "ລາວ" + }, { + value: "my", + label: "ဗမာ" + }, { + value: "ka", + label: "ქართული" + }, { + value: "am", + label: "አማርኛ" + }, { + value: "km", + label: "ខ្មែរ" + }, { + value: "zh-CN", + label: "中文 (简体)" + }, { + value: "zh-TW", + label: "中文 (繁體)" + }, { + value: "zh-HK", + label: "中文 (香港)" + }, { + value: "ko", + label: "한국어" + }] + } + } + }, + backup_and_reset: { + type: 'folder', + label: 'backupAndReset', + before: '', + + section: { + type: 'section', + import_settings: { + type: 'button', + label: 'importSettings', + + onclick: function() { + if (location.href.indexOf('/options.html') !== -1) { + importData(); + } else { + chrome.tabs.create({ + url: 'options.html?action=import' + }); + } + } + }, + export_settings: { + type: 'button', + label: 'exportSettings', + + onclick: function() { + if (location.href.indexOf('/options.html') !== -1) { + exportData(); + } else { + chrome.tabs.create({ + url: 'options.html?action=export' + }); + } + } + }, + reset_all_settings: { + type: 'button', + label: 'resetAllSettings', + + onclick: function() { + satus.render({ + type: 'dialog', + class: 'satus-dialog--confirm', + + message: { + type: 'text', + label: 'thisWillResetAllSettings' + }, + section: { + type: 'section', + class: 'controls', + style: { + 'justify-content': 'flex-end', + 'display': 'flex' + }, + + cancel: { + type: 'button', + label: 'cancel', + onclick: function() { + var scrim = document.querySelectorAll('.satus-dialog__scrim'); + + scrim[scrim.length - 1].click(); + } + }, + accept: { + type: 'button', + label: 'accept', + onclick: function() { + var scrim = document.querySelectorAll('.satus-dialog__scrim'); + + satus.storage.clear(); + + location.reload(); + + scrim[scrim.length - 1].click(); + } + } + } + }); + } + }, + delete_youtube_cookies: { + type: 'button', + label: 'deleteYoutubeCookies', + + onclick: function() { + satus.render({ + type: 'dialog', + class: 'satus-dialog--confirm', + + message: { + type: 'text', + label: 'thisWillRemoveAllYouTubeCookies', + style: { + 'width': '100%', + 'opacity': '.8' + } + }, + section: { + type: 'section', + class: 'controls', + style: { + 'justify-content': 'flex-end', + 'display': 'flex' + }, + + cancel: { + type: 'button', + label: 'cancel', + onclick: function() { + var scrim = document.querySelectorAll('.satus-dialog__scrim'); + + scrim[scrim.length - 1].click(); + } + }, + accept: { + type: 'button', + label: 'accept', + onclick: function() { + var scrim = document.querySelectorAll('.satus-dialog__scrim'); + + chrome.tabs.query({}, function(tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + name: 'delete_youtube_cookies' + }); + } + } + }); + + scrim[scrim.length - 1].click(); + } + } + } + }); + } + } + } + }, + date_and_time: { + type: 'folder', + label: 'dateAndTime', + before: '', + + section: { + type: 'section', + + use_24_hour_format: { + type: 'switch', + label: 'use24HourFormat', + value: true + } + } + }, + about: { + type: 'folder', + before: '', + label: 'about', + appearanceId: 'about', + + section: { + type: 'section', + + onrender: function() { + var component = this, + manifest = chrome.runtime.getManifest(), + user = satus.modules.user(), + object = { + extension_section: { + type: 'section', + label: 'extension', + style: { + 'flex-direction': 'column', + 'flex': '0' + }, + + version: { + type: 'text', + label: 'version', + value: manifest.version + }, + permissions: { + type: 'text', + label: 'permissions', + value: manifest.permissions.join(', ').replace('https://www.youtube.com/', 'YouTube') + }, + }, + browser_section: { + type: 'section', + label: 'browser', + style: { + 'flex-direction': 'column', + 'flex': '0' + }, + + name: { + type: 'text', + label: 'name', + value: user.browser.name + }, + version: { + type: 'text', + label: 'version', + value: user.browser.version + }, + platform: { + type: 'text', + label: 'platform', + value: user.browser.platform + }, + video_formats: { + type: 'text', + label: 'videoFormats', + value: user.browser.video + }, + audio_formats: { + type: 'text', + label: 'audioFormats', + value: user.browser.audio + }, + flash: { + type: 'text', + label: 'flash', + value: !!user.browser.flash + } + }, + os_section: { + type: 'section', + label: 'os', + style: { + 'flex-direction': 'column', + 'flex': '0' + }, + + os_name: { + type: 'text', + label: 'name', + value: user.os.name + }, + + os_type: { + type: 'text', + label: 'type', + value: user.os.type + } + }, + device_section: { + type: 'section', + label: 'device', + style: { + 'flex-direction': 'column', + 'flex': '0' + }, + + screen: { + type: 'text', + label: 'screen', + value: user.device.screen + }, + cores: { + type: 'text', + label: 'cores', + value: user.device.cores + }, + gpu: { + type: 'text', + label: 'gpu', + value: user.device.gpu + }, + ram: { + type: 'text', + label: 'ram', + value: user.device.ram + } + } + }; + + setTimeout(function() { + satus.render(object, component.parentNode); + + component.remove(); + }); + } + } + } + } +}; + + +/*------------------------------------------------------------------------------ +1.3 MIXER +------------------------------------------------------------------------------*/ + +Menu.header.section_end.button_vert.onClickRender.mixer = { + type: 'folder', + before: '', + label: 'mixer', + class: 'satus-folder--mixer', + appearanceId: 'mixer', + onopen: function() { + var self = this; + + if (chrome && chrome.tabs) { + chrome.tabs.query({}, function(tabs) { + var mixer = {}; + + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + var tab = tabs[i]; + + if (/(\?|\&)v=/.test(tab.url)) { + mixer[i] = { + type: 'section', + class: 'satus-section--mixer', + style: { + 'background': 'url(https://img.youtube.com/vi/' + tab.url.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '/0.jpg) center center / cover no-repeat #000', + }, + + section: { + type: 'section', + dataset: { + 'noConnectionLabel': satus.locale.getMessage('tryToReloadThePage') || 'tryToReloadThePage' + }, + + mixer_volume: { + type: 'slider', + label: 'volume', + dataset: { + id: tab.id, + element: 'audio' + }, + max: 100, + onrender: function() { + var self = this; + + chrome.tabs.sendMessage(Number(this.dataset.id), { + name: 'request_volume' + }, function(response) { + if (response) { + document.querySelector('div[data-element="audio"][data-id="' + Number(self.dataset.id) + '"]').change(response.value); + } else { + self.parentNode.parentNode.classList.add('noconnection'); + } + }); + }, + onchange: function(value) { + chrome.tabs.sendMessage(Number(this.dataset.id), { + name: 'change_volume', + volume: value + }); + } + }, + mixer_playback_speed: { + type: 'slider', + label: 'playbackSpeed', + dataset: { + id: tab.id, + element: 'playback_speed' + }, + min: .1, + max: 8, + step: .05, + onrender: function() { + var self = this; + + chrome.tabs.sendMessage(Number(this.dataset.id), { + name: 'request_playback_speed' + }, function(response) { + if (response) { + document.querySelector('div[data-element="playback_speed"][data-id="' + Number(self.dataset.id) + '"]').change(Number(response.value)); + } else { + self.parentNode.parentNode.classList.add('noconnection'); + } + }); + }, + onchange: function(value) { + chrome.tabs.sendMessage(Number(this.dataset.id), { + name: 'change_playback_speed', + playback_speed: value + }); + } + } + } + }; + } + } + } + + if (Object.entries(mixer).length === 0) { + mixer.section = { + type: 'section', + + message: { + type: 'text', + class: 'satus-section--message', + label: 'noOpenVideoTabs' + } + }; + } + + document.querySelector('.satus-dialog__scrim').click(); + + satus.render(mixer, self); + }); + } + } +}; + + +/*------------------------------------------------------------------------------ +2.0 MAIN +------------------------------------------------------------------------------*/ + +Menu.main = { + type: 'main', + appearanceId: 'home', + on: { + change: function(container) { + var item = this.history[this.history.length - 1], + id = item.appearanceId; + + document.body.dataset.appearance = id; + container.dataset.appearance = id; + + document.querySelector('.satus-text--title').innerText = satus.locale.getMessage(item.label) || 'ImprovedTube'; + } + }, + + section: { + type: 'section' + }, + + footer: { + type: 'button', + class: 'satus-button--ad', + label: 'DARK MODE', + title: 'Dark Mode', + onclick: function() { + window.open('https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl', '_blank'); + } + }, + + info: { + type: 'section', + class: 'satus-section--info', + + email: { + type: 'button', + label: 'Email', + title: 'bugs@improvedtube.com', + onclick: function() { + window.open('mailto:bugs@improvedtube.com', '_blank'); + } + }, + github: { + type: 'button', + label: 'GitHub', + title: '/ImprovedTube/ImprovedTube', + onclick: function() { + window.open('https://github.com/ImprovedTube/ImprovedTube/', '_blank'); + } + }, + website: { + type: 'button', + label: 'Website', + title: 'improvedtube.com', + onclick: function() { + window.open('http://www.improvedtube.com/', '_blank'); + } + } + } +}; + + +/*------------------------------------------------------------------------------ +2.1 GENERAL +------------------------------------------------------------------------------*/ + +Menu.main.section.general = { + type: 'folder', + before: '', + label: 'general', + class: 'satus-folder--general', + appearanceId: 'general', + + section: { + type: 'section', + + /*legacy_youtube: { + type: 'switch', + label: 'legacyYoutube', + tags: 'old' + },*/ + youtube_home_page: { + type: 'select', + label: 'youtubeHomePage', + options: [{ + label: 'home', + value: '/' + }, { + label: 'trending', + value: '/feed/trending' + }, { + label: 'subscriptions', + value: '/feed/subscriptions' + }, { + label: 'history', + value: '/feed/history' + }, { + label: 'watchLater', + value: '/playlist?list=WL' + }, { + label: 'search', + value: 'search' + }], + tags: 'trending,subscriptions,history,watch,search' + }, + collapse_of_subscription_sections: { + type: 'switch', + label: 'collapseOfSubscriptionSections' + }, + add_scroll_to_top: { + type: 'switch', + label: 'addScrollToTop', + tags: 'up' + }, + remove_related_search_results: { + type: 'switch', + label: 'removeRelatedSearchResults' + }, + confirmation_before_closing: { + type: 'switch', + label: 'confirmationBeforeClosing', + tags: 'random prevent close exit' + }, + mark_watched_videos: { + type: 'switch', + label: 'markWatchedVideos' + }, + only_one_player_instance_playing: { + type: 'switch', + label: 'onlyOnePlayerInstancePlaying' + } + }, + + section_label__thumbnails: { + type: 'text', + class: 'satus-section--label', + label: 'thumbnails' + }, + + thumbnails_section: { + type: 'section', + + squared_user_images: { + type: 'switch', + label: 'squaredUserImages', + tags: 'avatar' + }, + hd_thumbnails: { + type: 'switch', + label: 'hdThumbnails', + tags: 'preview quality' + }, + hide_animated_thumbnails: { + type: 'switch', + label: 'hideAnimatedThumbnails', + tags: 'preview' + } + } +}; + + +/*------------------------------------------------------------------------------ +2.2 APPEARANCE +------------------------------------------------------------------------------*/ + +Menu.main.section.appearance = { + type: 'folder', + before: '', + label: 'appearance', + class: 'satus-folder--appearance', + appearanceId: 'appearance', + + header: { + type: 'folder', + label: 'header', + class: 'satus-folder--header', + + section: { + type: 'section', + + header_position: { + type: 'select', + label: 'position', + options: [{ + label: 'normal', + value: 'normal' + }, { + label: 'hidden', + value: 'hidden' + }, { + label: 'hover', + value: 'hover' + }, { + label: 'hiddenOnVideoPage', + value: 'hidden_on_video_page' + }, { + label: 'hoverOnVideoPage', + value: 'hover_on_video_page' + }, { + label: 'static', + value: 'static' + }], + tags: 'hide,hover,static,top' + }, + header_improve_logo: { + type: 'switch', + label: 'improveLogo', + tags: 'youtube' + }, + header_hide_right_buttons: { + type: 'switch', + label: 'hideRightButtons', + tags: 'user' + } + } + }, + player: { + type: 'folder', + label: 'player', + class: 'satus-folder--player', + + section: { + type: 'section', + + player_hide_annotations: { + type: 'switch', + label: 'hideAnnotations', + tags: 'hide,remove,elements' + }, + player_hide_cards: { + type: 'switch', + label: 'hideCards', + tags: 'hide,remove,elements' + }, + player_show_cards_on_mouse_hover: { + type: 'switch', + label: 'showCardsOnMouseHover', + tags: 'hide,remove,elements' + }, + player_size: { + type: 'select', + label: 'playerSize', + options: [{ + label: 'doNotChange', + value: 'do_not_change' + }, { + label: 'fullWindow', + value: 'full_window' + }, { + label: 'fitToWindow', + value: 'fit_to_window' + }, { + label: '240p', + value: '240p' + }, { + label: '360p', + value: '360p' + }, { + label: '480p', + value: '480p' + }, { + label: '576p', + value: '576p' + }, { + label: '720p', + value: '720p' + }, { + label: '1080p', + value: '1080p' + }, { + label: '1440p', + value: '1440p' + }, { + label: '2160p', + value: '2160p' + }] + }, + forced_theater_mode: { + type: 'switch', + label: 'forcedTheaterMode', + tags: 'wide' + }, + player_color: { + label: 'playerColor', + type: 'select', + options: [{ + label: 'red', + value: 'red' + }, { + label: 'pink', + value: 'pink' + }, { + label: 'purple', + value: 'purple' + }, { + label: 'deepPurple', + value: 'deep_purple' + }, { + label: 'indigo', + value: 'indigo' + }, { + label: 'blue', + value: 'blue' + }, { + label: 'lightBlue', + value: 'light_blue' + }, { + label: 'cyan', + value: 'cyan' + }, { + label: 'teal', + value: 'teal' + }, { + label: 'green', + value: 'green' + }, { + label: 'lightGreen', + value: 'light_green' + }, { + label: 'lime', + value: 'lime' + }, { + label: 'yellow', + value: 'yellow' + }, { + label: 'amber', + value: 'amber' + }, { + label: 'orange', + value: 'orange' + }, { + label: 'deepOrange', + value: 'deep_orange' + }, { + label: 'brown', + value: 'brown' + }, { + label: 'blueGray', + value: 'blue_gray' + }, { + label: 'white', + value: 'white' + }], + tags: 'style' + }, + player_transparent_background: { + type: 'switch', + label: 'transparentBackground' + }, + player_hide_endscreen: { + type: 'switch', + label: 'hideEndscreen' + }, + player_hd_thumbnail: { + type: 'switch', + label: 'hdThumbnail', + tags: 'preview' + }, + hide_scroll_for_details: { + type: 'switch', + label: 'hideScrollForDetails', + tags: 'remove,hide' + }, + always_show_progress_bar: { + type: 'switch', + label: 'alwaysShowProgressBar' + } + } + }, + details: { + type: 'folder', + label: 'details', + class: 'satus-folder--details', + + section: { + type: 'section', + + hide_details: { + type: 'switch', + label: 'hideDetails', + tags: 'hide,remove' + }, + description: { + type: 'select', + label: 'description', + + options: [{ + label: 'normal', + value: 'normal' + }, { + label: 'expanded', + value: 'expanded' + }, { + label: 'hidden', + value: 'hidden' + }], + tags: 'hide,remove' + }, + hide_views_count: { + type: 'switch', + label: 'hideViewsCount', + tags: 'hide,remove' + }, + likes: { + type: 'select', + label: 'likes', + + options: [{ + label: 'normal', + value: 'normal' + }, { + label: 'iconsOnly', + value: 'icons_only' + }, { + label: 'hidden', + value: 'hidden' + }], + tags: 'hide,remove' + }, + how_long_ago_the_video_was_uploaded: { + type: 'switch', + label: 'howLongAgoTheVideoWasUploaded' + }, + channel_videos_count: { + type: 'switch', + label: 'showChannelVideosCount' + }, + red_dislike_button: { + type: 'switch', + label: 'redDislikeButton' + } + } + }, + sidebar: { + type: 'folder', + label: 'sidebar', + class: 'satus-folder--sidebar', + + section: { + type: 'section', + + livechat: { + type: 'select', + label: 'liveChat', + + options: [{ + label: 'normal', + value: 'normal' + }, { + label: 'collapsed', + value: 'collapsed' + }, { + label: 'hidden', + value: 'hidden' + }] + }, + hide_playlist: { + type: 'switch', + label: 'hidePlaylist' + }, + related_videos: { + type: 'select', + label: 'relatedVideos', + options: [{ + label: 'normal', + value: 'normal' + }, { + label: 'collapsed', + value: 'collapsed' + }, { + label: 'hidden', + value: 'hidden' + }], + tags: 'right' + } + } + }, + comments: { + type: 'folder', + label: 'comments', + class: 'satus-folder--comments', + + section: { + type: 'section', + + comments: { + type: 'select', + label: 'comments', + + options: [{ + label: 'normal', + value: 'normal' + }, { + label: 'collapsed', + value: 'collapsed' + }, { + label: 'hidden', + value: 'hidden' + }] + } + } + }, + footer: { + type: 'folder', + label: 'footer', + class: 'satus-folder--footer', + + section: { + type: 'section', + + hide_footer: { + type: 'switch', + label: 'hideFooter', + tags: 'bottom' + } + } + } +}; + + +/*------------------------------------------------------------------------------ +2.3 THEMES +------------------------------------------------------------------------------*/ + +Menu.main.section.themes = { + type: 'folder', + before: '', + label: 'themes', + class: 'satus-folder--themes', + appearanceId: 'themes', + + section: { + type: 'section', + + my_colors: { + type: 'folder', + label: 'myColors', + + section: { + type: 'section', + + theme_my_colors: { + type: 'switch', + label: 'activate' + } + }, + + section2: { + type: 'section', + + theme_primary_color: { + type: 'color-picker', + label: 'primaryColor', + value: 'rgba(200,200,200)' + }, + theme_text_color: { + type: 'color-picker', + label: 'textColor', + value: 'rgba(25,25,25)' + } + } + }, + filters: { + type: 'folder', + label: 'filters', + + section: { + type: 'section', + + bluelight: { + type: 'slider', + label: 'bluelight', + step: 1, + max: 90, + value: 0 + }, + dim: { + type: 'slider', + label: 'dim', + step: 1, + max: 90, + value: 0 + } + } + }, + schedule: { + type: 'folder', + label: 'schedule', + + section: { + type: 'section', + + schedule: { + type: 'select', + label: 'schedule', + + options: [{ + label: 'disabled', + value: 'disabled' + }, { + label: 'sunsetToSunrise', + value: 'sunset_to_sunrise' + }, { + label: 'systemPeferenceDark', + value: 'system_peference_dark' + }, { + label: 'systemPeferenceLight', + value: 'system_peference_light' + }] + }, + schedule_time_from: { + type: 'select', + label: 'timeFrom', + options: [{ + label: '00:00', + value: '00:00' + }, { + label: '01:00', + value: '01:00' + }, { + label: '02:00', + value: '02:00' + }, { + label: '03:00', + value: '03:00' + }, { + label: '04:00', + value: '04:00' + }, { + label: '05:00', + value: '05:00' + }, { + label: '06:00', + value: '06:00' + }, { + label: '07:00', + value: '07:00' + }, { + label: '08:00', + value: '08:00' + }, { + label: '09:00', + value: '09:00' + }, { + label: '10:00', + value: '10:00' + }, { + label: '11:00', + value: '11:00' + }, { + label: '12:00', + value: '12:00' + }, { + label: '13:00', + value: '13:00' + }, { + label: '14:00', + value: '14:00' + }, { + label: '15:00', + value: '15:00' + }, { + label: '16:00', + value: '16:00' + }, { + label: '17:00', + value: '17:00' + }, { + label: '18:00', + value: '18:00' + }, { + label: '19:00', + value: '19:00' + }, { + label: '20:00', + value: '20:00' + }, { + label: '21:00', + value: '21:00' + }, { + label: '22:00', + value: '22:00' + }, { + label: '23:00', + value: '23:00' + }] + }, + schedule_time_to: { + type: 'select', + label: 'timeTo', + options: [{ + label: '00:00', + value: '00:00' + }, { + label: '01:00', + value: '01:00' + }, { + label: '02:00', + value: '02:00' + }, { + label: '03:00', + value: '03:00' + }, { + label: '04:00', + value: '04:00' + }, { + label: '05:00', + value: '05:00' + }, { + label: '06:00', + value: '06:00' + }, { + label: '07:00', + value: '07:00' + }, { + label: '08:00', + value: '08:00' + }, { + label: '09:00', + value: '09:00' + }, { + label: '10:00', + value: '10:00' + }, { + label: '11:00', + value: '11:00' + }, { + label: '12:00', + value: '12:00' + }, { + label: '13:00', + value: '13:00' + }, { + label: '14:00', + value: '14:00' + }, { + label: '15:00', + value: '15:00' + }, { + label: '16:00', + value: '16:00' + }, { + label: '17:00', + value: '17:00' + }, { + label: '18:00', + value: '18:00' + }, { + label: '19:00', + value: '19:00' + }, { + label: '20:00', + value: '20:00' + }, { + label: '21:00', + value: '21:00' + }, { + label: '22:00', + value: '22:00' + }, { + label: '23:00', + value: '23:00' + }] + } + } + }, + font: { + type: 'select', + label: 'font', + options: [{ + label: 'Roboto', + value: 'Roboto' + }, { + label: 'Open Sans', + value: 'Open+Sans' + }, { + label: 'Lato', + value: 'Lato' + }, { + label: 'Montserrat', + value: 'Montserrat' + }, { + label: 'Source Sans Pro', + value: 'Source+Sans+Pro' + }, { + label: 'Roboto Condensed', + value: 'Roboto+Condensed' + }, { + label: 'Oswald', + value: 'Oswald' + }, { + label: 'Comfortaa', + value: 'Comfortaa' + }, { + label: 'Roboto Mono', + value: 'Roboto+Mono' + }, { + label: 'Raleway', + value: 'Raleway' + }, { + label: 'Poppins', + value: 'Poppins' + }, { + label: 'Noto Sans', + value: 'Noto+Sans' + }, { + label: 'Roboto Slab', + value: 'Roboto+Slab' + }, { + label: 'Marriweather', + value: 'Marriweather' + }, { + label: 'PT Sans', + value: 'PT+Sans' + }] + } + }, + + default_dark_theme: { + type: 'switch', + label: 'dark', + class: 'satus-switch--dark', + + onchange: themeChange + }, + night_theme: { + type: 'switch', + label: 'night', + class: 'satus-switch--night', + + onchange: themeChange + }, + dawn_theme: { + type: 'switch', + label: 'dawn', + class: 'satus-switch--dawn', + + onchange: themeChange + }, + sunset_theme: { + type: 'switch', + label: 'sunset', + class: 'satus-switch--sunset', + + onchange: themeChange + }, + desert_theme: { + type: 'switch', + label: 'desert', + class: 'satus-switch--desert', + + onchange: themeChange + }, + plain_theme: { + type: 'switch', + label: 'plain', + class: 'satus-switch--plain', + + onchange: themeChange + }, + black_theme: { + type: 'switch', + label: 'black', + class: 'satus-switch--black', + + onchange: themeChange + } +}; + + +/*------------------------------------------------------------------------------ +2.4 PLAYER +------------------------------------------------------------------------------*/ + +Menu.main.section.player = { + type: 'folder', + before: '', + label: 'player', + class: 'satus-folder--player', + appearanceId: 'player', + + general: { + type: 'section', + + player_autoplay: { + type: 'switch', + label: 'autoplay', + value: true + }, + player_autopause_when_switching_tabs: { + type: 'switch', + label: 'autopauseWhenSwitchingTabs' + }, + player_forced_playback_speed: { + type: 'switch', + label: 'forcedPlaybackSpeed', + id: 'forced-playback-speed', + onrender: function() { + this.dataset.value = satus.storage.player_forced_playback_speed; + }, + onchange: function() { + this.dataset.value = satus.storage.player_forced_playback_speed; + } + }, + player_playback_speed: { + type: 'slider', + label: 'playbackSpeed', + textarea: true, + value: 1, + min: .1, + max: 8, + step: .05 + }, + player_subtitles: { + type: 'switch', + label: 'subtitles', + value: true + }, + player_crop_chapter_titles: { + type: 'switch', + label: 'cropChapterTitles', + value: true + }, + up_next_autoplay: { + type: 'switch', + label: 'upNextAutoplay', + value: true + }, + player_ads: { + label: 'ads', + type: 'select', + options: [{ + label: 'onAllVideos', + value: 'all_videos', + default: 'true' + }, { + label: 'onSubscribedChannels', + value: 'subscribed_channels' + }, { + label: 'blockAll', + value: 'block_all' + }] + }, + mini_player: { + type: 'switch', + label: 'customMiniPlayer' + }, + player_autofullscreen: { + type: 'switch', + label: 'autoFullscreen' + } + }, + + section_label__videos: { + type: 'text', + class: 'satus-section--label', + label: 'videos' + }, + + video: { + type: 'section', + + player_quality: { + type: 'select', + label: 'quality', + options: [{ + label: 'auto', + value: 'auto' + }, { + label: '144p', + value: 'tiny' + }, { + label: '240p', + value: 'small' + }, { + label: '360p', + value: 'medium' + }, { + label: '480p', + value: 'large' + }, { + label: '720p', + value: 'hd720' + }, { + label: '1080p', + value: 'hd1080' + }, { + label: '1440p', + value: 'hd1440' + }, { + label: '2160p', + value: 'hd2160' + }, { + label: '2880p', + value: 'hd2880' + }, { + label: '4320p', + value: 'highres' + }] + }, + player_h264: { + type: 'switch', + label: 'codecH264', + + onclick: function() { + console.log(this.dataset.value); + if (this.querySelector('input').checked === true) { + satus.render({ + type: 'dialog', + class: 'satus-dialog--confirm', + + message: { + type: 'text', + label: 'youtubeLimitsVideoQualityTo1080pForH264Codec', + style: { + 'width': '100%', + 'opacity': '.8' + } + }, + section: { + type: 'section', + class: 'controls', + style: { + 'justify-content': 'flex-end' + }, + + cancel: { + type: 'button', + label: 'cancel', + onclick: function() { + let scrim = document.querySelectorAll('.satus-dialog__scrim'); + + scrim[scrim.length - 1].click(); + } + }, + ok: { + type: 'button', + label: 'OK', + onclick: function() { + let scrim = document.querySelectorAll('.satus-dialog__scrim'); + + scrim[scrim.length - 1].click(); + } + } + } + }); + } + } + }, + player_60fps: { + type: 'switch', + label: 'allow60fps', + value: true + }, + player_SDR: { + type: 'switch', + label: 'forceSDR', + value: false + }, + }, + + section_label__audio: { + type: 'text', + class: 'satus-section--label', + label: 'audio' + }, + + audio: { + type: 'section', + label: 'audio', + + player_forced_volume: { + type: 'switch', + label: 'forcedVolume', + id: 'forced-volume', + onrender: function() { + this.dataset.value = satus.storage.player_forced_volume; + }, + onchange: function() { + this.dataset.value = satus.storage.player_forced_volume; + } + }, + player_volume: { + type: 'slider', + label: 'volume', + step: 1, + max: 100, + value: 100 + }, + player_loudness_normalization: { + type: 'switch', + label: 'loudnessNormalization', + value: true + } + }, + + section_label__buttons: { + type: 'text', + class: 'satus-section--label', + label: 'buttons' + }, + + buttons: { + type: 'section', + + player_screenshot: { + type: 'folder', + label: 'screenshot', + + section: { + type: 'section', + + player_screenshot_button: { + type: 'switch', + label: 'activate' + }, + player_screenshot_save_as: { + type: 'select', + label: 'saveAs', + options: [{ + label: 'file', + value: 'file' + }, { + label: 'clipboard', + value: 'clipboard' + }] + } + } + }, + player_repeat: { + type: 'folder', + label: 'repeat', + + section: { + type: 'section', + + player_repeat_button: { + type: 'switch', + label: 'activate' + }, + player_always_repeat: { + type: 'switch', + label: 'alwaysActive' + } + } + }, + player_rotate_button: { + type: 'switch', + label: 'rotate' + }, + player_popup_button: { + type: 'switch', + label: 'popupPlayer' + } + } +}; + + +/*------------------------------------------------------------------------------ +2.5 PLAYLIST +------------------------------------------------------------------------------*/ + +Menu.main.section.playlist = { + type: 'folder', + before: '', + label: 'playlist', + class: 'satus-folder--playlist', + appearanceId: 'playlist', + + section: { + type: 'section', + + playlist_autoplay: { + type: 'switch', + label: 'autoplay', + value: true + }, + playlist_up_next_autoplay: { + type: 'switch', + label: 'upNextAutoplay', + value: true + }, + playlist_reverse: { + type: 'switch', + label: 'reverse' + } + }, + + section2: { + type: 'section', + + playlist_repeat: { + type: 'switch', + label: 'repeat' + }, + playlist_shuffle: { + type: 'switch', + label: 'shuffle' + } + } +}; + + +/*------------------------------------------------------------------------------ +2.6 CHANNEL +------------------------------------------------------------------------------*/ + +Menu.main.section.channel = { + type: 'folder', + before: '', + label: 'channel', + class: 'satus-folder--channel', + appearanceId: 'channel', + + section: { + type: 'section', + + channel_default_tab: { + type: 'select', + label: 'defaultChannelTab', + options: [{ + label: 'home', + value: '/home' + }, { + label: 'videos', + value: '/videos' + }, { + label: 'playlists', + value: '/playlists' + }] + }, + channel_trailer_autoplay: { + type: 'switch', + label: 'trailerAutoplay', + value: true + }, + channel_hide_featured_content: { + type: 'switch', + label: 'hideFeaturedContent' + } + } +}; + + +/*------------------------------------------------------------------------------ +2.7 SHORTCUTS +------------------------------------------------------------------------------*/ + +Menu.main.section.shortcuts = { + type: 'folder', + before: '', + label: 'shortcuts', + class: 'satus-folder--shortcut', + appearanceId: 'shortcuts', + + player_section_label: { + type: 'text', + class: 'satus-section--label', + label: 'player' + }, + + player_section: { + type: 'section', + + shortcut_picture_in_picture: { + type: 'shortcut', + label: 'pictureInPicture' + }, + shortcut_play_pause: { + type: 'shortcut', + label: 'playPause', + value: { + key: ' ' + } + }, + shortcut_stop: { + type: 'shortcut', + label: 'stop' + }, + shortcut_next_video: { + type: 'shortcut', + label: 'nextVideo', + value: { + key: 'N', + shiftKey: true + } + }, + shortcut_prev_video: { + type: 'shortcut', + label: 'previousVideo', + value: { + key: 'P', + shiftKey: true + } + }, + shortcut_seek_backward: { + type: 'shortcut', + label: 'seekBackward10Seconds', + value: { + key: 'J' + } + }, + shortcut_seek_forward: { + type: 'shortcut', + label: 'seekForward10Seconds', + value: { + key: 'I' + } + }, + shortcut_volume: { + type: 'folder', + label: 'volume', + + section_step: { + type: 'section', + + shortcut_volume_step: { + type: 'slider', + label: 'step', + min: 1, + max: 10, + step: 1, + value: 5 + } + }, + + section: { + type: 'section', + + shortcut_increase_volume: { + type: 'shortcut', + label: 'increaseVolume' + }, + shortcut_decrease_volume: { + type: 'shortcut', + label: 'decreaseVolume' + } + } + }, + shortcut_playback_speed: { + type: 'folder', + label: 'playbackSpeed', + + section_step: { + type: 'section', + + shortcut_playback_speed_step: { + type: 'slider', + label: 'step', + min: .05, + max: .5, + step: .05, + value: .05 + } + }, + + section: { + type: 'section', + + shortcut_increase_playback_speed: { + type: 'shortcut', + label: 'increasePlaybackSpeed' + }, + shortcut_decrease_playback_speed: { + type: 'shortcut', + label: 'decreasePlaybackSpeed' + } + } + }, + shortcut_activate_fullscreen: { + type: 'shortcut', + label: 'activateFullscreen', + value: { + key: 'F' + } + }, + shortcut_activate_captions: { + type: 'shortcut', + label: 'activateCaptions', + value: { + key: 'C' + } + }, + shortcut_quality: { + type: 'folder', + label: 'quality', + + section: { + type: 'section', + + shortcut_240p: { + type: 'shortcut', + label: '240p' + }, + shortcut_360p: { + type: 'shortcut', + label: '360p' + }, + shortcut_480p: { + type: 'shortcut', + label: '480p' + }, + shortcut_720p: { + type: 'shortcut', + label: '720p' + }, + shortcut_1080p: { + type: 'shortcut', + label: '1080p' + }, + shortcut_1440p: { + type: 'shortcut', + label: '1440p' + }, + shortcut_2160p: { + type: 'shortcut', + label: '2160p' + }, + shortcut_2880p: { + type: 'shortcut', + label: '2880p' + }, + shortcut_4320p: { + type: 'shortcut', + label: '4320p' + } + } + }, + shortcut_custom_mini_player: { + type: 'shortcut', + label: 'customMiniPlayer' + }, + shortcut_screenshot: { + type: 'shortcut', + label: 'screenshot' + }, + shortcut_stats_for_nerds: { + type: 'shortcut', + label: 'statsForNerds' + }, + shortcut_toggle_cards: { + type: 'shortcut', + label: 'toggleCards' + } + }, + + appearance_section_label: { + type: 'text', + class: 'satus-section--label', + label: 'appearance' + }, + + appearance_section: { + type: 'section', + + shortcut_go_to_search_box: { + type: 'shortcut', + label: 'goToSearchBox', + value: { + key: '/' + } + }, + shortcut_like_shortcut: { + type: 'shortcut', + label: 'like' + }, + shortcut_dislike_shortcut: { + type: 'shortcut', + label: 'dislike' + }, + shortcut_dark_theme: { + type: 'shortcut', + label: 'darkTheme' + } + } +}; + + +/*------------------------------------------------------------------------------ +2.8 BLACKLIST +------------------------------------------------------------------------------*/ + +Menu.main.section.blacklist = { + type: 'folder', + before: '', + label: 'blacklist', + class: 'satus-folder--blacklist', + appearanceId: 'blacklist', + + section_activate: { + type: 'section', + + blacklist_activate: { + type: 'switch', + label: 'activate' + } + }, + + section: { + type: 'section', + + channels: { + type: 'folder', + label: 'channels', + onopen: function() { + var self = this; + + if (satus.storage.blacklist && satus.storage.blacklist.channels) { + var list = {}; + + for (var item in satus.storage.blacklist.channels) { + if (satus.storage.blacklist.channels[item] !== false) { + var title = satus.storage.blacklist.channels[item].title || ''; + + list[item] = { + type: 'section', + label: title.length > 20 ? title.substr(0, 20) + '...' : title, + class: 'satus-section--blacklist', + style: { + 'background-image': 'url(' + satus.storage.blacklist.channels[item].preview + ')', + 'background-color': '#000' + }, + + section: { + type: 'section', + + delete: { + type: 'button', + icon: '', + onclick: function() { + delete satus.storage.blacklist.channels[item]; + + satus.storage.set('blacklist', satus.storage.blacklist); + + this.classList.add('removing'); + + setTimeout(function() { + self.remove(); + }, 250); + } + } + } + }; + } + } + + if (Object.keys(list).length === 0) { + list.section = { + type: 'section', + class: 'satus-section--message', + + error: { + type: 'text', + label: 'empty' + } + }; + } + + satus.render(list, this); + } else { + satus.render({ + type: 'section', + class: 'satus-section--message', + + error: { + type: 'text', + label: 'empty' + } + }, this); + } + } + }, + videos: { + type: 'folder', + label: 'videos', + onopen: function() { + var self = this; + + if (satus.storage.blacklist && satus.storage.blacklist.videos) { + let list = {}; + + for (let item in satus.storage.blacklist.videos) { + if (satus.storage.blacklist.videos[item] !== false) { + let title = satus.storage.blacklist.videos[item].title || ''; + + list[item] = { + type: 'section', + label: title.length > 20 ? title.substr(0, 20) + '...' : title, + class: 'satus-section--blacklist', + style: { + 'background-image': 'url(https://img.youtube.com/vi/' + item + '/0.jpg)' + }, + + section: { + type: 'section', + + delete: { + type: 'button', + icon: '', + onclick: function() { + delete satus.storage.blacklist.videos[item]; + + satus.storage.set('blacklist', satus.storage.blacklist); + this.parentNode.parentNode.classList.add('removing'); + + setTimeout(function() { + self.parentNode.parentNode.remove(); + }, 250); + } + } + } + }; + } + } + + if (Object.keys(list).length === 0) { + list.section = { + type: 'section', + class: 'satus-section--message', + + error: { + type: 'text', + label: 'empty' + } + }; + } + + satus.render(list, this); + } else { + satus.render({ + type: 'section', + class: 'satus-section--message', + + error: { + type: 'text', + label: 'empty' + } + }, this); + } + } + } + } +}; + + +/*------------------------------------------------------------------------------ +2.9 ANALYZER +------------------------------------------------------------------------------*/ + +Menu.main.section.analyzer = { + type: 'folder', + before: '', + label: 'analyzer', + class: 'satus-folder--analyzer', + appearanceId: 'analyzer', + + activ_section: { + type: 'section', + + analyzer_activation: { + type: 'switch', + label: 'activate' + } + }, + + section: { + type: 'section', + style: { + 'flex-direction': 'column', + 'align-items': 'flex-start' + }, + onrender: function() { + var data = satus.storage.get('analyzer') || {}, + all_data = {}, + all_data_sort = [], + all_time_value = 0, + current_date = new Date().toDateString(), + container = document.createElement('div'), + top_text_container = document.createElement('div'), + today_at = document.createElement('div'), + watch_time = document.createElement('div'), + all_time = document.createElement('div'), + chart = document.createElement('div'), + bottom_text_container = document.createElement('div'); + + container.className = 'analyzer-container'; + top_text_container.className = 'analyzer-top-text'; + watch_time.className = 'analyzer-watch-time'; + today_at.className = 'analyzer-today-at'; + all_time.className = 'analyzer-all-time'; + chart.className = 'analyzer-chart'; + bottom_text_container.className = 'analyzer-bottom'; + + let currentDateData = data[current_date]; + if (currentDateData) { + for (let i in currentDateData) { + if (currentDateData[i]) { + for (let j in currentDateData[i]) { + if (!all_data[j]) { + all_data[j] = 0; + } + + all_data[j] += currentDateData[i][j]; + } + } + } + } + + for (let i in all_data) { + all_data_sort.push([i, all_data[i]]); + all_time_value += all_data[i]; + } + + all_data_sort.sort(function(a, b) { + return b[1] - a[1]; + }); + + var now_minutes = new Date().getMinutes(); + + watch_time.innerText = satus.locale.getMessage('watchTime') || 'watchTime'; + today_at.innerText = satus.locale.getMessage('todayAt') + ' ' + (new Date().getHours() + ':' + (now_minutes < 10 ? '0' + now_minutes : now_minutes)) || 'todayAt'; + all_time.innerText = Math.floor(all_time_value / 60) + 'h ' + (all_time_value - Math.floor(all_time_value / 60) * 60) + 'm'; + + let h = 0; + + for (let i = 0; i < 4; i++) { + let column = document.createElement('div'); + + column.className = 'analyzer-column'; + + for (let j = 0; j < 6; j++) { + let hours = h + ':00'; + + h++; + + let data_column = document.createElement('div'); + + data_column.className = 'analyzer-data-column'; + + if (currentDateData && currentDateData[hours]) { + for (let k in currentDateData[hours]) { + let block = document.createElement('div'); + + block.className = 'analyzer-data'; + + let height = data[current_date][hours][k] * 100 / 60; + + block.title = k; + block.style.height = height + '%'; + + if (k === all_data_sort[0][0]) { + block.className += ' first'; + } else if (k === all_data_sort[1][0]) { + block.className += ' second'; + } else if (k === all_data_sort[2][0]) { + block.className += ' third'; + } + + data_column.appendChild(block); + } + } + + column.appendChild(data_column); + } + + chart.appendChild(column); + } + + + for (let i = 0; i < 3; i++) { + if (all_data_sort[i]) { + let cont = document.createElement('div'), + label = document.createElement('div'), + value = document.createElement('div'); + + label.className = 'label'; + + label.innerText = all_data_sort[i][0]; + value.innerText = Math.floor(all_data_sort[i][1] / 60) + 'h ' + (all_data_sort[i][1] - Math.floor(all_data_sort[i][1] / 60) * 60) + 'm'; + + cont.appendChild(label); + cont.appendChild(value); + bottom_text_container.appendChild(cont); + } + } + + container.appendChild(all_time); + container.appendChild(chart); + this.appendChild(top_text_container); + top_text_container.appendChild(watch_time); + top_text_container.appendChild(today_at); + container.appendChild(bottom_text_container); + this.appendChild(container); + } + } +}; + + +/*------------------------------------------------------------------------------ +3.0 INITIALIZATION +------------------------------------------------------------------------------*/ + +function themeChange(event) { + if (event.target.checked) { + let themes = document.querySelectorAll('.satus-switch > input:checked:not([data-storage-key="red_popup_theme"])'); + + for (let i = 0, l = themes.length; i < l; i++) { + if (themes[i] !== event.target) { + themes[i].click(); + } + } + } + + if (satus.storage.get('default_dark_theme') === true) { + document.documentElement.setAttribute('theme', 'dark'); + } else if (satus.storage.get('night_theme') === true) { + document.documentElement.setAttribute('theme', 'night'); + } else if (satus.storage.get('dawn_theme') === true) { + document.documentElement.setAttribute('theme', 'dawn'); + } else if (satus.storage.get('sunset_theme') === true) { + document.documentElement.setAttribute('theme', 'sunset'); + } else if (satus.storage.get('desert_theme') === true) { + document.documentElement.setAttribute('theme', 'desert'); + } else if (satus.storage.get('plain_theme') === true) { + document.documentElement.setAttribute('theme', 'plain'); + } else if (satus.storage.get('black_theme') === true) { + document.documentElement.setAttribute('theme', 'black'); + } else { + document.documentElement.removeAttribute('theme'); + } +} + +satus.storage.import(function(items) { + satus.locale.import(satus.storage.get('language'), function() { + satus.modules.updateStorageKeys(Menu, function() { + if (location.href.indexOf('action=import') !== -1) { + importData(); + } else if (location.href.indexOf('action=export') !== -1) { + exportData(); + } else { + satus.render(Menu, document.body); + } + }); + }); + + for (var key in satus.storage) { + document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), items[key]); + } + + if (satus.isset(satus.storage.get('red_popup_theme')) === false || satus.storage.get('red_popup_theme') === true) { + document.documentElement.setAttribute('popup-theme', 'red'); + } + + if (satus.storage.get('default_dark_theme') === true) { + document.documentElement.setAttribute('theme', 'dark'); + } + + if (satus.storage.get('night_theme') === true) { + document.documentElement.setAttribute('theme', 'night'); + } + + if (satus.storage.get('dawn_theme') === true) { + document.documentElement.setAttribute('theme', 'dawn'); + } + + if (satus.storage.get('sunset_theme') === true) { + document.documentElement.setAttribute('theme', 'sunset'); + } + + if (satus.storage.get('desert_theme') === true) { + document.documentElement.setAttribute('theme', 'desert'); + } + + if (satus.storage.get('plain_theme') === true) { + document.documentElement.setAttribute('theme', 'plain'); + } + + if (satus.storage.get('black_theme') === true) { + document.documentElement.setAttribute('theme', 'black'); + } +}); + +chrome.storage.onChanged.addListener(function(changes) { + for (var key in changes) { + document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), changes[key].newValue); + } +}); + + + + + +function importData() { + satus.render({ + type: 'dialog', + + select_file: { + type: 'button', + label: 'selectFile', + onclick: function() { + var input = document.createElement('input'); + + input.type = 'file'; + + input.addEventListener('change', function() { + var file_reader = new FileReader(); + + file_reader.onload = function() { + var data = JSON.parse(this.result); + + for (var key in data) { + satus.storage.set(key, data[key]); + } + + if (location.href.indexOf('action=import') !== -1) { + window.close(); + } else { + document.querySelector('.satus-dialog__scrim').click(); + + satus.render({ + type: 'dialog', + + message: { + type: 'text', + label: 'dataImportedSuccessfully' + }, + section: { + type: 'section', + class: 'controls', + + ok: { + type: 'button', + label: 'ok', + onclick: function() { + document.querySelector('.satus-dialog__scrim').click(); + } + } + } + }); + } + }; + + file_reader.readAsText(this.files[0]); + }); + + input.click(); + } + } + }); +} + +function exportData() { + var data = {}; + + for (var key in satus.storage) { + if (typeof satus.storage[key] !== 'function') { + data[key] = satus.storage[key]; + } + } + + var blob = new Blob([JSON.stringify(data)], { + type: 'application/json;charset=utf-8' + }); + + satus.render({ + type: 'dialog', + + export: { + type: 'button', + label: 'export', + onclick: function() { + chrome.permissions.request({ + permissions: ['downloads'] + }, function(granted) { + if (granted) { + chrome.downloads.download({ + url: URL.createObjectURL(blob), + filename: 'improvedtube.json', + saveAs: true + }, function() { + setTimeout(function() { + if (location.href.indexOf('action=export') !== -1) { + window.close(); + } else { + document.querySelector('.satus-dialog__scrim').click(); + + satus.render({ + type: 'dialog', + + message: { + type: 'text', + label: 'dataExportedSuccessfully' + }, + section: { + type: 'section', + class: 'controls', + + ok: { + type: 'button', + label: 'ok', + onclick: function() { + document.querySelector('.satus-dialog__scrim').click(); + } + } + } + }); + } + }, 100); + }); + } + }); + } + } + }); +} diff --git a/satus.css b/satus.css index c740c65e7..2299b64be 100644 --- a/satus.css +++ b/satus.css @@ -1,4 +1,4 @@ - + /*-------------------------------------------------------------- >>> BUTTON --------------------------------------------------------------*/ @@ -65,7 +65,7 @@ { margin-left: 8px; } - + /*-------------------------------------------------------------- >>> COLOR PICKER --------------------------------------------------------------*/ @@ -143,7 +143,7 @@ height: 200px; margin: 0 0 16px; } - + /*-------------------------------------------------------------- >>> DIALOG --------------------------------------------------------------*/ @@ -271,7 +271,7 @@ opacity: 0; } } - + /*-------------------------------------------------------------- >>> FOLDER --------------------------------------------------------------*/ @@ -280,7 +280,7 @@ { text-align: left } - + /*-------------------------------------------------------------- >>> HEADER --------------------------------------------------------------*/ @@ -309,7 +309,7 @@ font-size: 15px; font-weight: 400; } - + /*-------------------------------------------------------------- >>> LIST --------------------------------------------------------------*/ @@ -322,7 +322,7 @@ list-style: none; } - + /*----------------------------------------------------------------------------- >>> MAIN ------------------------------------------------------------------------------- @@ -458,7 +458,7 @@ opacity: 0; } } - + .satus-scrollbar { position: relative; @@ -516,7 +516,7 @@ opacity: 1; } - + /*-------------------------------------------------------------- >>> SECTION --------------------------------------------------------------*/ @@ -532,7 +532,7 @@ align-items: center; flex: 1; } - + /*-------------------------------------------------------------- >>> SELECT --------------------------------------------------------------*/ @@ -599,7 +599,7 @@ opacity: 1; } } - + .satus-shortcut { position: relative; @@ -813,7 +813,7 @@ color: #f96754; border-radius: 4px; } - + /*-------------------------------------------------------------- >>> SLIDER --------------------------------------------------------------*/ @@ -831,7 +831,7 @@ padding: 0 16px; -webkit-user-select: none; - -moz-user-select: -moz-none; + -moz-user-select: none; user-select: none; outline: none; @@ -1007,7 +1007,7 @@ opacity: .25; } - + /*-------------------------------------------------------------- >>> SWITCH --------------------------------------------------------------*/ @@ -1025,7 +1025,7 @@ cursor: pointer; -webkit-user-select: none; - -moz-user-select: -moz-none; + -moz-user-select: none; user-select: none; background-color: transparent; @@ -1145,7 +1145,7 @@ { transform: translate(16px, 2px); } - + /*-------------------------------------------------------------- >>> TABLE --------------------------------------------------------------*/ @@ -1332,7 +1332,7 @@ { color: #2979ff; } - + /*-------------------------------------------------------------- >>> TEXT --------------------------------------------------------------*/ @@ -1344,7 +1344,7 @@ color: inherit; border: none; } - + /*-------------------------------------------------------------- >>> TEXT --------------------------------------------------------------*/ @@ -1357,14 +1357,14 @@ width: 100%; margin: 0; padding: 0; - padding: 0 8px; + padding: 0 8px; /* it overwrites padding above; remove one of them */ color: inherit; border: none; outline: none; background: unset; } - + /*----------------------------------------------------------------------------- >>> THEMES ------------------------------------------------------------------------------- diff --git a/youtube-scripts.js b/youtube-scripts.js index da614bb71..421f6d3f5 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -577,7 +577,7 @@ ImprovedTube.markWatchedVideos = function() { button.innerHTML = ''; button.addEventListener('click', function(event) { - var watched = this.classList.contains('watched') ? false : true; + var watched = !this.classList.contains('watched'); event.preventDefault(); event.stopPropagation(); @@ -1266,7 +1266,7 @@ ImprovedTube.dim = function() { ImprovedTube.font = function() { if (this.storage.font) { - if (this.storage.font != 'Default') { + if (this.storage.font !== 'Default') { if (!document.querySelector('.it-font-family')) { var link = document.createElement('link'); From 26b03daac7add9abe4d5404bf59667c357cad42e Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 16 Feb 2021 13:33:47 +0300 Subject: [PATCH 0036/1224] Fixed "SUBSCRIBE" button --- manifest.json | 2 +- youtube-scripts.js | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 23f041f4d..30a4a6987 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "*Improve YouTube!☕🧩 YouTube-&Video-Tools🎞️", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", - "version": "3.157", + "version": "3.158", "version_name": "3.120-pre-stable", "default_locale": "en", "icons": { diff --git a/youtube-scripts.js b/youtube-scripts.js index 421f6d3f5..f07c2d880 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2402,8 +2402,6 @@ ImprovedTube.channelDefaultTab = function() { } node.addEventListener('click', click, true); - node.parentNode.addEventListener('click', click, true); - node.parentNode.parentNode.addEventListener('click', click, true); } } else if (this.storage.channel_default_tab) { var node_list = document.querySelectorAll('a[href*="user"], a[href*="channel"], a[href*="/c/"]'); From 0154d68c3e66c15dab488e01d422931f9121a296 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 17 Feb 2021 01:33:44 +0300 Subject: [PATCH 0037/1224] Fixed "Player size" --- content-styles.css | 1 - manifest.json | 2 +- youtube-scripts.js | 2325 ++++++++++++++++++++++---------------------- 3 files changed, 1163 insertions(+), 1165 deletions(-) diff --git a/content-styles.css b/content-styles.css index 13879040f..64cc0abe3 100644 --- a/content-styles.css +++ b/content-styles.css @@ -591,7 +591,6 @@ html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']) width: auto !important; height: calc(var(--it-player-size) - var(--it-header-size)) !important; min-height: auto !important; - max-height: 100vh !important; } html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player { diff --git a/manifest.json b/manifest.json index 30a4a6987..2dca9aee9 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "manifest_version": 2, - "name": "*Improve YouTube!☕🧩 YouTube-&Video-Tools🎞️", + "name": "Improve YouTube! (testing)", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", "version": "3.158", diff --git a/youtube-scripts.js b/youtube-scripts.js index f07c2d880..5379d750f 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1,11 +1,7 @@ /*------------------------------------------------------------------------------ >>> TABLE OF CONTENTS: -------------------------------------------------------------------------------- -0.0 Global variable -0.0 Page update listener -0.0 Initialization -0.0 Onfocus -0.0 Onplay +1.0 Global variable 1.0 General 1.1 YouTube home page @@ -66,6 +62,11 @@ 10.1 ImprovedTube icon 10.2 Delete YouTube cookies 10.3 YouTube language + +0.0 Page update listener +0.0 Onfocus +0.0 Onplay +0.0 Initialization ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ @@ -77,1516 +78,1192 @@ The variable "ImprovedTube" is used on the YouTube side. var ImprovedTube = {}; -/*------------------------------------------------------------------------------ -0.0 PAGE UPDATE LISTENER -------------------------------------------------------------------------------*/ - -ImprovedTube.pageUpdateListener = function() { - window.addEventListener('yt-page-data-updated', function() { - ImprovedTube.played_before_blur = false; - - ImprovedTube.pageType(); - ImprovedTube.youtubeHomePage(); - ImprovedTube.collapseOfSubscriptionSections(); - ImprovedTube.markWatchedVideos(); - ImprovedTube.hdThumbnails(); - ImprovedTube.channelDefaultTab(); - ImprovedTube.videoPageUpdate(); - ImprovedTube.blacklist(); +/*------------------------------------------------------------------------------ +1.0 GENERAL +------------------------------------------------------------------------------*/ - ImprovedTube.improvedtubeYoutubeIcon(); - }); -}; +/*------------------------------------------------------------------------------ +1.1 YOUTUBE HOME PAGE +------------------------------------------------------------------------------*/ -ImprovedTube.videoPageUpdate = function() { - if (this.page_type === 'video') { - this.forcedTheaterMode(); - this.playerHdThumbnail(); - this.alwaysShowProgressBar(); - this.livechat(); - this.relatedVideos(); - this.howLongAgoTheVideoWasUploaded(); - this.channelVideosCount(); - this.comments(); +ImprovedTube.youtubeHomePage = function() { + var option = this.storage.youtube_home_page; - this.upNextAutoplay(); - this.playerAutofullscreen(); - this.playerScreenshotButton(); - this.playerRepeatButton(); - this.playerRotateButton(); - this.playerPopupButton(); + if ( + option === '/feed/trending' || + option === '/feed/subscriptions' || + option === '/feed/history' || + option === '/playlist?list=WL' + ) { + var node_list = document.querySelectorAll(` + a[href="/"]:not([role=tablist]), + a[href="https://www.youtube.com/"]:not([role=tablist]), + a[it-origin="/"]:not([role=tablist]) + `); - this.playlistUpNextAutoplay(); - this.playlistReverse(); - this.playlistRepeat(); - this.playlistShuffle(); + for (var i = 0, l = node_list.length; i < l; i++) { + var node = node_list[i]; - var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); + if (node.hasAttribute('it-origin') === false) { + node.setAttribute('it-origin', '/'); + } - if (video_id) { - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'set', - id: video_id, - title: document.title + node.href = option; + node.addEventListener('click', function() { + if ( + this.data && + this.data.commandMetadata && + this.data.commandMetadata.webCommandMetadata && + this.data.commandMetadata.webCommandMetadata.url + ) { + this.data.commandMetadata.webCommandMetadata.url = option; } - })); + }, true); + } + } else { + var node_list = document.querySelectorAll('a[it-origin="/"]:not([role=tablist])'); + + for (var i = 0, l = node_list.length; i < l; i++) { + node_list[i].href = '/'; } } }; /*------------------------------------------------------------------------------ -0.0 PLAYER UPDATE +1.2 COLLAPSE OF SUBSCRIPTION SECTION ------------------------------------------------------------------------------*/ -ImprovedTube.playerUpdate = function() { - this.playerPlaybackSpeed(); - this.subtitles(); - this.playerAds(); - this.mini_player(); - this.playerQuality(); - this.playerVolume(); - this.playlistUpNextAutoplay(); -}; - - -/*------------------------------------------------------------------------------ -0.0 DOM CONTENT LOADED -------------------------------------------------------------------------------*/ +ImprovedTube.collapseOfSubscriptionSections = function() { + if (/\/feed\/subscriptions/.test(location.href)) { + if (this.storage.collapse_of_subscription_sections === true) { + var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'); -ImprovedTube.DOMContentLoaded = function() { - window.addEventListener('DOMContentLoaded', function() { - ImprovedTube.youtubeHomePage(); - ImprovedTube.collapseOfSubscriptionSections(); - ImprovedTube.addScrollToTop(); - ImprovedTube.confirmationBeforeClosing(); - ImprovedTube.markWatchedVideos(); - ImprovedTube.hdThumbnails(); + for (var i = 0, l = sections.length; i < l; i++) { + if (!sections[i].querySelector('.it-section-collapse')) { + var section_title = sections[i].querySelector('h2'), + button = document.createElement('div'); - ImprovedTube.channelDefaultTab(); + button.className = 'it-section-collapse'; + button.innerHTML = ''; + button.section = sections[i]; + button.addEventListener('click', function() { + var section = this.section, + content = section.querySelector('.grid-subheader + #contents, .shelf-title-table + .multirow-shelf'); - ImprovedTube.myColors(); - ImprovedTube.bluelight(); - ImprovedTube.dim(); - ImprovedTube.font(); - ImprovedTube.themes(); + if (section.classList.contains('it-section-collapsed') === false) { + content.style.height = content.offsetHeight + 'px'; + content.style.transition = 'height 150ms'; + } - ImprovedTube.videoPageUpdate(); + setTimeout(function() { + section.classList.toggle('it-section-collapsed'); + }); + }); - ImprovedTube.blacklist(); + section_title.parentNode.insertBefore(button, section_title.nextSibling); + } + } + } else { + var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'), + buttons = document.querySelectorAll('.it-section-collapse'); - ImprovedTube.improvedtubeYoutubeIcon(); + for (var i = 0, l = sections.length; i < l; i++) { + sections[i].classList.remove('it-section-collapsed'); + sections[i].style.height = ''; + sections[i].style.transition = ''; + } - ImprovedTube.pageUpdateListener(); - }); + for (var i = 0, l = buttons.length; i < l; i++) { + buttons[i].remove(); + } + } + } }; /*------------------------------------------------------------------------------ -0.0 INITIALIZATION +1.3 ADD "SCROLL TO TOP" ------------------------------------------------------------------------------*/ -ImprovedTube.init = function() { - this.playerH264(); - this.player60fps(); - this.playerSDR(); - this.pageType(); - this.shortcuts(); - this.DOMContentLoaded(); - this.onplay(); - this.onkeydown(); - this.onmousedown(); +ImprovedTube.addScrollToTop = function(is_update) { + if (this.storage.add_scroll_to_top === true) { + var button = document.createElement('div'); - window.addEventListener('load', function() { - ImprovedTube.hdThumbnails(); - ImprovedTube.channelDefaultTab(); - }); -}; + button.id = 'it-scroll-to-top'; + button.innerHTML = ''; + button.addEventListener('click', function() { + window.scrollTo(0, 0); + }); -/*------------------------------------------------------------------------------ -0.0 PAGE TYPE -------------------------------------------------------------------------------*/ + document.documentElement.appendChild(button); -ImprovedTube.video_url = false; -ImprovedTube.page_type = false; + window.addEventListener('scroll', this.scroll); + } else { + var button = document.querySelector('#it-scroll-to-top'); -ImprovedTube.pageType = function() { - var href = location.href, - type = ''; + if (button) { + button.remove(); + } - if (location.pathname == '/') { - type = 'home'; - } else if (/\/watch\?/.test(href)) { - type = 'video'; - } else if (/\/channel|user|c\//.test(href)) { - type = 'channel'; + window.removeEventListener('scroll', this.scroll); } +}; - this.page_type = type; - - document.documentElement.setAttribute('it-page-type', type); +ImprovedTube.scroll = function() { + if (window.scrollY > window.innerHeight / 2) { + document.documentElement.setAttribute('it-show-scroll-to-top', true); + } else { + document.documentElement.setAttribute('it-show-scroll-to-top', false); + } }; /*------------------------------------------------------------------------------ -0.0 ONFOCUS +1.4 CONFIRMATION BEFORE CLOSING ------------------------------------------------------------------------------*/ -ImprovedTube.focus = false; -ImprovedTube.played_before_blur = false; - -ImprovedTube.onfocus = function() { - this.onlyOnePlayerInstancePlaying(); - this.playerAutopauseWhenSwitchingTabs(); +ImprovedTube.confirmationBeforeClosing = function() { + window.onbeforeunload = function() { + if (ImprovedTube.storage.confirmation_before_closing === true) { + return 'You have attempted to leave this page. Are you sure?'; + } + }; }; /*------------------------------------------------------------------------------ -0.0 ONPLAY +1.5 MARK WATCHED VIDEOS +-------------------------------------------------------------------------------- +TODO: OPTIMIZE ------------------------------------------------------------------------------*/ -ImprovedTube.onplay = function() { - HTMLMediaElement.prototype.play = (function(original) { - return function() { - ImprovedTube.autoplay(this); - ImprovedTube.playerLoudnessNormalization(); - - if (ImprovedTube.video_url !== location.href) { - ImprovedTube.video_url = location.href; +ImprovedTube.markWatchedVideos = function() { + if (ImprovedTube.storage.mark_watched_videos === true) { + var video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - ImprovedTube.playerUpdate(); - } + for (var i = 0, l = video_items.length; i < l; i++) { + if (!video_items[i].querySelector('.it-mark-watched')) { + var button = document.createElement('div'); - return original.apply(this, arguments); - } - })(HTMLMediaElement.prototype.play); -}; + button.className = 'it-mark-watched' + (this.storage.watched && this.storage.watched[this.getParam(new URL(video_items[i].href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); + button.innerHTML = ''; + button.addEventListener('click', function(event) { + var watched = !this.classList.contains('watched'); -/*------------------------------------------------------------------------------ -0.0 ONKEYDOWN -------------------------------------------------------------------------------*/ + event.preventDefault(); + event.stopPropagation(); -ImprovedTube.onkeydown = function() { - window.addEventListener('keydown', function() { - if ( - document.querySelector('.html5-video-player') && - document.querySelector('.html5-video-player').classList.contains('ad-showing') === false - ) { - ImprovedTube.allow_autoplay = true; - } - }, true); -}; + this.classList.toggle('watched'); + try { + var video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'), + item = this.parentNode; -/*------------------------------------------------------------------------------ -0.0 ONMOUSEDOWN -------------------------------------------------------------------------------*/ + while ( + item.nodeName && + item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && + item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && + item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && + item.classList && + !item.classList.contains('yt-shelf-grid-item') && + !item.classList.contains('video-list-item') + ) { + item = item.parentNode; + } -ImprovedTube.onmousedown = function(event) { - window.addEventListener('mousedown', function(event) { - for (var i = 0, l = event.path.length; i < l; i++) { - if ( - document.querySelector('.html5-video-player') && - document.querySelector('.html5-video-player').classList.contains('ad-showing') === false && - event.path[i].classList && - ( - event.path[i].classList.contains('html5-main-video') || - event.path[i].classList.contains('ytp-play-button') - ) - ) { - ImprovedTube.allow_autoplay = true; + if (!ImprovedTube.storage.watched || typeof ImprovedTube.storage.watched !== 'object') { + ImprovedTube.storage.watched = {}; + } + + if (watched === true) { + ImprovedTube.storage.watched[video_id] = { + title: item.querySelector('#video-title').innerText + }; + + document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { + detail: { + action: 'set', + id: video_id, + title: item.querySelector('#video-title').innerText + } + })); + } else if (ImprovedTube.storage.watched[video_id]) { + delete ImprovedTube.storage.watched[video_id]; + + document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { + detail: { + action: 'remove', + id: video_id + } + })); + } + } catch (err) { + console.log(err); + } + }); + + video_items[i].appendChild(button); } } - }, true); + } }; +document.addEventListener('ImprovedTubeWatched', function(event) { + if (chrome && chrome.runtime) { + chrome.runtime.sendMessage({ + name: 'improvedtube-watched', + data: { + action: event.detail.action, + id: event.detail.id, + title: event.detail.title + } + }); + } +}); -ImprovedTube.getCookieValueByName = function(name) { - var match = document.cookie.match(new RegExp('([; ]' + name + '|^' + name + ')([^\\s;]*)', 'g')); - if (match) { - var cookie = match[0]; +/*------------------------------------------------------------------------------ +1.6 ONLY ONE PLAYER INSTANCE PLAYING +-------------------------------------------------------------------------------- +TODO: FIX +------------------------------------------------------------------------------*/ - return cookie.replace(name + '=', '').replace(' ', ''); - } else - return ''; -}; +ImprovedTube.onlyOnePlayerInstancePlaying = function() { + var video = document.querySelector('.html5-video-player video'); -ImprovedTube.getParam = function(query, name) { - var params = query.split('&'), - param = false; + if (this.storage.only_one_player_instance_playing === true && video) { - for (var i = 0; i < params.length; i++) { - params[i] = params[i].split('='); + if (this.focus === false && video.paused === false) { + video.pause(); - if (params[i][0] == name) { - param = params[i][1]; + this.played_before_blur = true; + } else if (this.focus === true && this.played_before_blur === true) { + video.play(); } } - - if (param) { - return param; - } else { - return false; - } }; -ImprovedTube.getParams = function(query) { - var params = query.split('&'), - result = {}; - for (var i = 0, l = params.length; i < l; i++) { - params[i] = params[i].split('='); +/*------------------------------------------------------------------------------ +1.7 HD THUMBNAILS +------------------------------------------------------------------------------*/ - result[params[i][0]] = params[i][1]; - } +ImprovedTube.hdThumbnails = function() { + if (this.storage.hd_thumbnails === true) { + var images = document.querySelectorAll('img'); - return result; -}; + for (var i = 0, l = images.length; i < l; i++) { + if (/(hqdefault\.jpg|hq720.jpg)+/.test(images[i].src) && !images[i].dataset.defaultSrc) { + images[i].dataset.defaultSrc = images[i].src; -ImprovedTube.setCookie = function(name, value) { - var date = new Date(); + images[i].onload = function() { + if (this.naturalHeight <= 90) { + this.src = this.dataset.defaultSrc; + } + }; - date.setTime(date.getTime() + 3.154e+10); + images[i].src = images[i].src.replace(/(hqdefault\.jpg|hq720.jpg)+/, 'maxresdefault.jpg'); + } + } + } else { + var images = document.querySelectorAll('img'); - document.cookie = name + '=' + value + '; path=/; domain=.youtube.com; expires=' + date.toGMTString(); + for (var i = 0, l = images.length; i < l; i++) { + if (images[i].dataset.defaultSrc) { + images[i].src = images[i].dataset.defaultSrc; + } + } + } }; -ImprovedTube.createPlayerButton = function(node, options) { - var controls = document.querySelector('.html5-video-player .ytp-left-controls'); - - if (controls) { - var button = document.createElement('button'); - - button.className = 'ytp-button it-player-button'; - - button.dataset.title = options.title; - if (options.id) { - if (node.querySelector('#' + options.id)) { - node.querySelector('#' + options.id).remove(); - } +/*------------------------------------------------------------------------------ +2.0 APPEARANCE +------------------------------------------------------------------------------*/ - button.id = options.id; - } +/*------------------------------------------------------------------------------ +2.1 PLAYER +------------------------------------------------------------------------------*/ - if (options.html) { - button.innerHTML = options.html; - } +/*------------------------------------------------------------------------------ +2.1.1 FORCED THEATER MODE +------------------------------------------------------------------------------*/ - button.style.opacity = options.opacity || '.5'; +ImprovedTube.forcedTheaterMode = function() { + if (window.self === window.top && (ImprovedTube.storage.forced_theater_mode === true || ImprovedTube.storage.player_size === 'fit_to_window')) { + var button = document.querySelector('button.ytp-size-button'); - if (options.onclick) { - button.onclick = options.onclick; + if (button && ImprovedTube.isset(document.getElementById('player-theater-container').firstChild) === false) { + button.click(); } - - controls.insertBefore(button, controls.childNodes[3]); } }; -ImprovedTube.reverse = function(parent) { - for (var i = 1, l = parent.childNodes.length; i < l; i++) { - parent.insertBefore(parent.childNodes[i], parent.firstChild); - } -}; +/*------------------------------------------------------------------------------ +2.1.2 HD THUMBNAIL +-------------------------------------------------------------------------------- +TODO: OPTIMIZED +------------------------------------------------------------------------------*/ +ImprovedTube.playerHdThumbnail = function() { + if (this.storage.player_hd_thumbnail === true) { + if (this.player_hd_thumbnail_wait !== false) { + clearInterval(ImprovedTube.player_hd_thumbnail_wait); + ImprovedTube.player_hd_thumbnail_wait = false; + } + this.player_hd_thumbnail_wait = setInterval(function() { + var thumbnail = document.querySelector('.ytp-cued-thumbnail-overlay-image'); + if (thumbnail && thumbnail.style.backgroundImage) { + var style = document.getElementById('it-hd-thumbnail') || document.createElement('style'); + style.textContent = '.ytp-cued-thumbnail-overlay-image{background-image:' + thumbnail.style.backgroundImage.replace('/hqdefault.jpg', '/maxresdefault.jpg') + ' !important}'; + if (!document.getElementById('it-hd-thumbnail')) { + style.id = 'it-hd-thumbnail'; + thumbnail.parentNode.insertBefore(style, thumbnail); + } + } + }, 250); + } +}; /*------------------------------------------------------------------------------ -1.0 GENERAL +2.1.3 ALWAYS SHOW PROGRESS BAR ------------------------------------------------------------------------------*/ -/*------------------------------------------------------------------------------ -1.1 YOUTUBE HOME PAGE -------------------------------------------------------------------------------*/ +ImprovedTube.alwaysShowProgressBar = function() { + if (ImprovedTube.always_show_progress_bar_interval) { + clearInterval(ImprovedTube.always_show_progress_bar_interval); + } -ImprovedTube.youtubeHomePage = function() { - var option = this.storage.youtube_home_page; + if (this.storage.always_show_progress_bar === true) { + ImprovedTube.always_show_progress_bar_interval = setInterval(function() { + var player = document.querySelector('.html5-video-player'); - if ( - option === '/feed/trending' || - option === '/feed/subscriptions' || - option === '/feed/history' || - option === '/playlist?list=WL' - ) { - var node_list = document.querySelectorAll(` - a[href="/"]:not([role=tablist]), - a[href="https://www.youtube.com/"]:not([role=tablist]), - a[it-origin="/"]:not([role=tablist]) - `); + if (player && player.classList.contains('ytp-autohide')) { + var played = player.getCurrentTime() * 100 / player.getDuration(), + loaded = player.getVideoBytesLoaded() * 100, + play_bars = player.querySelectorAll('.ytp-play-progress'), + load_bars = player.querySelectorAll('.ytp-load-progress'), + width = 0, + progress_play = 0, + progress_load = 0; - for (var i = 0, l = node_list.length; i < l; i++) { - var node = node_list[i]; + for (var i = 0, l = play_bars.length; i < l; i++) { + width += play_bars[i].offsetWidth; + } - if (node.hasAttribute('it-origin') === false) { - node.setAttribute('it-origin', '/'); - } + var width_percent = width / 100; - node.href = option; - node.addEventListener('click', function() { - if ( - this.data && - this.data.commandMetadata && - this.data.commandMetadata.webCommandMetadata && - this.data.commandMetadata.webCommandMetadata.url - ) { - this.data.commandMetadata.webCommandMetadata.url = option; - } - }, true); - } - } else { - var node_list = document.querySelectorAll('a[it-origin="/"]:not([role=tablist])'); + for (var i = 0, l = play_bars.length; i < l; i++) { + var a = play_bars[i].offsetWidth / width_percent, + b = 0, + c = 0; - for (var i = 0, l = node_list.length; i < l; i++) { - node_list[i].href = '/'; - } + if (played - progress_play >= a) { + b = 100; + } else if (played > progress_play && played < a + progress_play) { + b = 100 * ((played - progress_play) * width_percent) / play_bars[i].offsetWidth; + } + + play_bars[i].style.transform = 'scaleX(' + b / 100 + ')'; + + if (loaded - progress_load >= a) { + c = 100; + } else if (loaded > progress_load && loaded < a + progress_load) { + c = 100 * ((loaded - progress_load) * width_percent) / play_bars[i].offsetWidth; + } + + load_bars[i].style.transform = 'scaleX(' + c / 100 + ')'; + + progress_play += a; + progress_load += a; + } + } + }, 100); } }; /*------------------------------------------------------------------------------ -1.2 COLLAPSE OF SUBSCRIPTION SECTION +2.2 SIDEBAR ------------------------------------------------------------------------------*/ -ImprovedTube.collapseOfSubscriptionSections = function() { - if (/\/feed\/subscriptions/.test(location.href)) { - if (this.storage.collapse_of_subscription_sections === true) { - var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'); +/*------------------------------------------------------------------------------ +2.2.1 LIVECHAT +-------------------------------------------------------------------------------- +TODO: TEST +------------------------------------------------------------------------------*/ - for (var i = 0, l = sections.length; i < l; i++) { - if (!sections[i].querySelector('.it-section-collapse')) { - var section_title = sections[i].querySelector('h2'), - button = document.createElement('div'); +ImprovedTube.livechat_wait = false; +ImprovedTube.livechat_url = false; - button.className = 'it-section-collapse'; - button.innerHTML = ''; - button.section = sections[i]; - button.addEventListener('click', function() { - var section = this.section, - content = section.querySelector('.grid-subheader + #contents, .shelf-title-table + .multirow-shelf'); +ImprovedTube.livechat = function() { + if ( + document.documentElement.getAttribute('it-page-type') === 'video' && + this.storage.livechat === 'collapsed' && + this.livechat_wait === false + ) { + this.livechat_wait = setInterval(function() { + var button = document.querySelector('#chat:not([collapsed]) #show-hide-button paper-button'), + expander = document.querySelector('#watch-sidebar-live-chat .yt-uix-expander'); - if (section.classList.contains('it-section-collapsed') === false) { - content.style.height = content.offsetHeight + 'px'; - content.style.transition = 'height 150ms'; - } + if (document.documentElement.getAttribute('it-page-type') !== 'video' || button || expander) { + clearInterval(ImprovedTube.livechat_wait); - setTimeout(function() { - section.classList.toggle('it-section-collapsed'); - }); - }); + ImprovedTube.livechat_wait = false; + } - section_title.parentNode.insertBefore(button, section_title.nextSibling); + if (button) { + function click() { + ImprovedTube.livechat_url = location.href; } - } - } else { - var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'), - buttons = document.querySelectorAll('.it-section-collapse'); - for (var i = 0, l = sections.length; i < l; i++) { - sections[i].classList.remove('it-section-collapsed'); - sections[i].style.height = ''; - sections[i].style.transition = ''; - } + button.addEventListener('mousedown', click); + button.addEventListener('touchdown', click); - for (var i = 0, l = buttons.length; i < l; i++) { - buttons[i].remove(); + setTimeout(function() { + if (ImprovedTube.livechat_url !== location.href) { + button.click(); + } + }, 500); + } else if (expander) { + expander.classList.add('yt-uix-expander-collapsed'); } - } + }, 250); } }; /*------------------------------------------------------------------------------ -1.3 ADD "SCROLL TO TOP" +2.2.2 RELATIVE VIDEOS +-------------------------------------------------------------------------------- +TODO: TEST ------------------------------------------------------------------------------*/ -ImprovedTube.addScrollToTop = function(is_update) { - if (this.storage.add_scroll_to_top === true) { - var button = document.createElement('div'); +ImprovedTube.related_videos_wait = false; - button.id = 'it-scroll-to-top'; - button.innerHTML = ''; +ImprovedTube.relatedVideos = function() { + if (this.storage.related_videos === 'collapsed') { + if (!this.related_videos_wait) { + this.related_videos_wait = setInterval(function() { + if ( + document.querySelector('#related.ytd-watch-flexy') || + document.querySelector('#watch7-sidebar-contents') + ) { + clearInterval(this.related_videos_wait); - button.addEventListener('click', function() { - window.scrollTo(0, 0); - }); + this.related_videos_wait = false; - document.documentElement.appendChild(button); + if (!document.getElementById('improvedtube-collapsed-related-videos')) { + var button = document.createElement('button'), + parent = document.querySelector('#related.ytd-watch-flexy') || document.querySelector('#watch7-sidebar-contents'), + reference = document.querySelector('#related > *') || document.querySelector('#watch7-sidebar-contents > *'); - window.addEventListener('scroll', this.scroll); - } else { - var button = document.querySelector('#it-scroll-to-top'); + button.id = 'improvedtube-collapsed-related-videos'; + button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; + button.innerHTML = 'Show moreShow less'; - if (button) { - button.remove(); + button.onclick = function() { + document.documentElement.classList.toggle('related-videos-collapsed'); + }; + + document.documentElement.classList.toggle('related-videos-collapsed'); + parent.insertBefore(button, reference); + } + } + }, 250); } + } else { + clearInterval(this.related_videos_wait); - window.removeEventListener('scroll', this.scroll); - } -}; + this.related_videos_wait = false; -ImprovedTube.scroll = function() { - if (window.scrollY > window.innerHeight / 2) { - document.documentElement.setAttribute('it-show-scroll-to-top', true); - } else { - document.documentElement.setAttribute('it-show-scroll-to-top', false); + setTimeout(function() { + var button = document.getElementById('improvedtube-collapsed-related-videos'); + + if (button) { + button.remove(); + } + }, 260); } }; /*------------------------------------------------------------------------------ -1.4 CONFIRMATION BEFORE CLOSING +2.3 DETAILS ------------------------------------------------------------------------------*/ -ImprovedTube.confirmationBeforeClosing = function() { - window.onbeforeunload = function() { - if (ImprovedTube.storage.confirmation_before_closing === true) { - return 'You have attempted to leave this page. Are you sure?'; - } - }; -}; - - /*------------------------------------------------------------------------------ -1.5 MARK WATCHED VIDEOS +2.3.1 HOW LONG AGO THE VIDEO WAS UPLOADED -------------------------------------------------------------------------------- -TODO: OPTIMIZE +TODO: TEST ------------------------------------------------------------------------------*/ -ImprovedTube.markWatchedVideos = function() { - if (ImprovedTube.storage.mark_watched_videos === true) { - var video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); +ImprovedTube.howLongAgoTheVideoWasUploaded = function() { + if (ImprovedTube.storage.how_long_ago_the_video_was_uploaded === true) { + function timeSince(date) { + var seconds = Math.floor((new Date() - new Date(date)) / 1000), + interval = Math.floor(seconds / 31536000); - for (var i = 0, l = video_items.length; i < l; i++) { - if (!video_items[i].querySelector('.it-mark-watched')) { - var button = document.createElement('div'); + if (interval > 1) { + return interval + ' years ago'; + } + interval = Math.floor(seconds / 2592000); + if (interval > 1) { + return interval + ' months ago'; + } + interval = Math.floor(seconds / 86400); + if (interval > 1) { + return interval + ' days ago'; + } + interval = Math.floor(seconds / 3600); + if (interval > 1) { + return interval + ' hours ago'; + } + interval = Math.floor(seconds / 60); + if (interval > 1) { + return interval + ' minutes ago'; + } - button.className = 'it-mark-watched' + (this.storage.watched && this.storage.watched[this.getParam(new URL(video_items[i].href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); - button.innerHTML = ''; + return Math.floor(seconds) + ' seconds ago'; + } - button.addEventListener('click', function(event) { - var watched = !this.classList.contains('watched'); + var waiting_channel_link = setInterval(function() { + var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; - event.preventDefault(); - event.stopPropagation(); + if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info a')) { + clearInterval(waiting_channel_link); - this.classList.toggle('watched'); + var xhr = new XMLHttpRequest(); - try { - var video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'), - item = this.parentNode; + xhr.addEventListener('load', function() { + var response = JSON.parse(this.responseText), + element = document.querySelector('.itx-channel-video-uploaded') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); - while ( - item.nodeName && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } + if (ImprovedTube.isset(response.items) && ImprovedTube.isset(response.items[0])) { + element.innerHTML = (youtube_version ? ' · ' + timeSince(response.items[0].snippet.publishedAt) + ' ' : timeSince(response.items[0].snippet.publishedAt) + ''); - if (!ImprovedTube.storage.watched || typeof ImprovedTube.storage.watched !== 'object') { - ImprovedTube.storage.watched = {}; - } + var date = new Date(response.items[0].snippet.publishedAt); - if (watched === true) { - ImprovedTube.storage.watched[video_id] = { - title: item.querySelector('#video-title').innerText - }; + element.title = ((date.getMonth() > 8) ? (date.getMonth() + 1) : ('0' + (date.getMonth() + 1))) + '/' + ((date.getDate() > 9) ? date.getDate() : ('0' + date.getDate())) + '/' + date.getFullYear(); + } - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'set', - id: video_id, - title: item.querySelector('#video-title').innerText - } - })); - } else if (ImprovedTube.storage.watched[video_id]) { - delete ImprovedTube.storage.watched[video_id]; + if (!youtube_version) { + element.href = document.querySelector('#watch7-user-header a').href.indexOf('/videos') === -1 ? document.querySelector('#watch7-user-header a').href + '/videos' : document.querySelector('#watch7-user-header a').href; + } - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'remove', - id: video_id - } - })); - } - } catch (err) { - console.log(err); + if (!document.querySelector('.itx-channel-video-uploaded') && document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info')) { + element.style.marginLeft = '8px'; + element.className = (youtube_version ? 'style-scope ytd-video-owner-renderer itx-channel-video-uploaded' : 'yt-uix-sessionlink spf-link itx-channel-video-uploaded'); + + document.querySelector(youtube_version ? '#info #info-text #date' : '.yt-user-info').appendChild(element); } }); - video_items[i].appendChild(button); + xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?id=' + ImprovedTube.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v') + '&key=AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA&part=snippet', true); + xhr.send(); } - } + }, 500); } }; -document.addEventListener('ImprovedTubeWatched', function(event) { - if (chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-watched', - data: { - action: event.detail.action, - id: event.detail.id, - title: event.detail.title - } - }); - } -}); - /*------------------------------------------------------------------------------ -1.6 ONLY ONE PLAYER INSTANCE PLAYING +2.3.2 SHOW CHANNEL VIDEOS COUNT -------------------------------------------------------------------------------- -TODO: FIX +TODO: TEST ------------------------------------------------------------------------------*/ -ImprovedTube.onlyOnePlayerInstancePlaying = function() { - var video = document.querySelector('.html5-video-player video'); - - if (this.storage.only_one_player_instance_playing === true && video) { +ImprovedTube.channelVideosCount = function() { + if (this.storage.channel_videos_count === true) { + var waiting_channel_link = setInterval(function() { + var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; - if (this.focus === false && video.paused === false) { - video.pause(); + if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a')) { + clearInterval(waiting_channel_link); - this.played_before_blur = true; - } else if (this.focus === true && this.played_before_blur === true) { - video.play(); - } - } -}; + var xhr = new XMLHttpRequest(); + xhr.addEventListener('load', function() { + var response = JSON.parse(this.responseText), + element = document.querySelector('.itx-channel-videos-count') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); -/*------------------------------------------------------------------------------ -1.7 HD THUMBNAILS -------------------------------------------------------------------------------*/ + if (ImprovedTube.isset(response.items) && ImprovedTube.isset(response.items[0])) { + element.innerHTML = (youtube_version ? '' + response.items[0].statistics.videoCount + ' videos' : response.items[0].statistics.videoCount + ' videos'); + } -ImprovedTube.hdThumbnails = function() { - if (this.storage.hd_thumbnails === true) { - var images = document.querySelectorAll('img'); + if (!youtube_version) { + element.href = document.querySelector('#watch7-user-header a').href.indexOf('/videos') === -1 ? document.querySelector('#watch7-user-header a').href + '/videos' : document.querySelector('#watch7-user-header a').href; + } - for (var i = 0, l = images.length; i < l; i++) { - if (/(hqdefault\.jpg|hq720.jpg)+/.test(images[i].src) && !images[i].dataset.defaultSrc) { - images[i].dataset.defaultSrc = images[i].src; + if (!document.querySelector('.itx-channel-videos-count') && document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info')) { + element.style.marginLeft = '8px'; + element.className = (youtube_version ? 'style-scope ytd-video-owner-renderer itx-channel-videos-count' : 'yt-uix-sessionlink spf-link itx-channel-videos-count'); - images[i].onload = function() { - if (this.naturalHeight <= 90) { - this.src = this.dataset.defaultSrc; + document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info').appendChild(element); } - }; - - images[i].src = images[i].src.replace(/(hqdefault\.jpg|hq720.jpg)+/, 'maxresdefault.jpg'); - } - } - } else { - var images = document.querySelectorAll('img'); + }); - for (var i = 0, l = images.length; i < l; i++) { - if (images[i].dataset.defaultSrc) { - images[i].src = images[i].dataset.defaultSrc; + xhr.open('GET', 'https://www.googleapis.com/youtube/v3/channels?id=' + (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a').getAttribute('it-origin') || document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a').href).replace('https://www.youtube.com/channel/', '') + '&key=AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA&part=statistics', true); + xhr.send(); } - } + }, 500); } }; /*------------------------------------------------------------------------------ -2.0 APPEARANCE -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -2.1 PLAYER +2.4 COMMENTS +-------------------------------------------------------------------------------- +TODO TEST ------------------------------------------------------------------------------*/ -/*------------------------------------------------------------------------------ -2.1.1 FORCED THEATER MODE -------------------------------------------------------------------------------*/ +ImprovedTube.comments_wait = false; -ImprovedTube.forcedTheaterMode = function() { - if (window.self === window.top && (ImprovedTube.storage.forced_theater_mode === true || ImprovedTube.storage.player_size === 'fit_to_window')) { - var button = document.querySelector('button.ytp-size-button'); +ImprovedTube.comments = function() { + if (this.storage.comments === 'collapsed') { + if (this.comments_wait === false) { + this.comments_wait = setInterval(function() { + if ( + document.getElementById('comment-section-renderer-items') || + document.querySelector('#comments #sections #contents') + ) { + clearInterval(this.comments_wait); - if (button && ImprovedTube.isset(document.getElementById('player-theater-container').firstChild) === false) { - button.click(); - } - } -}; + this.comments_wait = false; + if (!document.getElementById('improvedtube-collapsed-comments')) { + var button = document.createElement('button'), + parent = document.getElementById('comment-section-renderer') || document.querySelector('#comments #sections'), + reference = document.getElementById('comment-section-renderer-items') || document.querySelector('#comments #sections #contents'); -/*------------------------------------------------------------------------------ -2.1.2 HD THUMBNAIL --------------------------------------------------------------------------------- -TODO: OPTIMIZED -------------------------------------------------------------------------------*/ + button.id = 'improvedtube-collapsed-comments'; + button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; + button.innerHTML = 'Show moreShow less'; -ImprovedTube.playerHdThumbnail = function() { - if (this.storage.player_hd_thumbnail === true) { - if (this.player_hd_thumbnail_wait !== false) { - clearInterval(ImprovedTube.player_hd_thumbnail_wait); + button.onclick = function() { + document.documentElement.classList.toggle('comments-collapsed'); + }; - ImprovedTube.player_hd_thumbnail_wait = false; + document.documentElement.classList.toggle('comments-collapsed'); + parent.insertBefore(button, reference); + } + } + }, 250); } + } else { + clearInterval(this.comments_wait); - this.player_hd_thumbnail_wait = setInterval(function() { - var thumbnail = document.querySelector('.ytp-cued-thumbnail-overlay-image'); - - if (thumbnail && thumbnail.style.backgroundImage) { - var style = document.getElementById('it-hd-thumbnail') || document.createElement('style'); - - style.textContent = '.ytp-cued-thumbnail-overlay-image{background-image:' + thumbnail.style.backgroundImage.replace('/hqdefault.jpg', '/maxresdefault.jpg') + ' !important}'; + this.comments_wait = false; - if (!document.getElementById('it-hd-thumbnail')) { - style.id = 'it-hd-thumbnail'; - thumbnail.parentNode.insertBefore(style, thumbnail); - } + setTimeout(function() { + if (document.getElementById('improvedtube-collapsed-comments')) { + document.getElementById('improvedtube-collapsed-comments').remove(); } - }, 250); + }, 260); } }; /*------------------------------------------------------------------------------ -2.1.3 ALWAYS SHOW PROGRESS BAR +3.0 THEMES ------------------------------------------------------------------------------*/ -ImprovedTube.alwaysShowProgressBar = function() { - if (ImprovedTube.always_show_progress_bar_interval) { - clearInterval(ImprovedTube.always_show_progress_bar_interval); - } - - if (this.storage.always_show_progress_bar === true) { - ImprovedTube.always_show_progress_bar_interval = setInterval(function() { - var player = document.querySelector('.html5-video-player'); - - if (player && player.classList.contains('ytp-autohide')) { - var played = player.getCurrentTime() * 100 / player.getDuration(), - loaded = player.getVideoBytesLoaded() * 100, - play_bars = player.querySelectorAll('.ytp-play-progress'), - load_bars = player.querySelectorAll('.ytp-load-progress'), - width = 0, - progress_play = 0, - progress_load = 0; +/*------------------------------------------------------------------------------ +3.1 MY COLORS +------------------------------------------------------------------------------*/ - for (var i = 0, l = play_bars.length; i < l; i++) { - width += play_bars[i].offsetWidth; - } +ImprovedTube.myColors = function() { + if (this.storage.theme_my_colors !== true) { + if (document.querySelector('.it-theme-editor')) { + document.querySelector('.it-theme-editor').remove(); + } - var width_percent = width / 100; + return false; + } - for (var i = 0, l = play_bars.length; i < l; i++) { - var a = play_bars[i].offsetWidth / width_percent, - b = 0, - c = 0; + var style = document.querySelector('.it-theme-editor') || document.createElement('style'); - if (played - progress_play >= a) { - b = 100; - } else if (played > progress_play && played < a + progress_play) { - b = 100 * ((played - progress_play) * width_percent) / play_bars[i].offsetWidth; - } - - play_bars[i].style.transform = 'scaleX(' + b / 100 + ')'; - - if (loaded - progress_load >= a) { - c = 100; - } else if (loaded > progress_load && loaded < a + progress_load) { - c = 100 * ((loaded - progress_load) * width_percent) / play_bars[i].offsetWidth; - } - - load_bars[i].style.transform = 'scaleX(' + c / 100 + ')'; + style.className = 'it-theme-editor'; + style.innerText = 'html{' + + '--yt-swatch-textbox-bg:rgba(19,19,19,1)!important;' + + '--yt-swatch-icon-color:rgba(136,136,136,1)!important;' + + '--yt-spec-brand-background-primary:rgba(0,0,0, 0.1) !important;' + + '--yt-spec-brand-background-secondary:rgba(0,0,0, 0.1) !important;' + + '--yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important;' + + '--yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important;' + + '--yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important;' + + '--yt-spec-brand-button-background:rgba(136,136,136,1) !important;' + + '--yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important;' + + '--yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important;' + + '--yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important;' + + '--yt-spec-10-percent-layer:rgba(136,136,136,1) !important;' + + '--yt-swatch-primary:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-swatch-primary-darker:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-brand-background-solid:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-general-background-a:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-general-background-b:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-general-background-c:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-touch-response:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-swatch-text: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-swatch-important-text: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-swatch-input-text: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-swatch-logo-override: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-spec-text-primary:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-text-primary-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-text-secondary:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-text-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-icon-active-other:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-icon-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-filled-button-text:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-call-to-action-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-brand-icon-active:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-brand-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-brand-link-text:' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-spec-brand-subscribe-button-background:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-wordmark-text:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-selected-nav-text:' + (this.storage.theme_text_color || '') + ' !important;' + + '}'; - progress_play += a; - progress_load += a; - } - } - }, 100); - } + document.documentElement.appendChild(style); }; /*------------------------------------------------------------------------------ -2.2 SIDEBAR +3.2 BLUELIGHT ------------------------------------------------------------------------------*/ -/*------------------------------------------------------------------------------ -2.2.1 LIVECHAT --------------------------------------------------------------------------------- -TODO: TEST -------------------------------------------------------------------------------*/ +ImprovedTube.bluelight = function() { + var value = this.storage.bluelight, + times = { + from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), + to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) + }, + current_time = new Date().getHours(); -ImprovedTube.livechat_wait = false; -ImprovedTube.livechat_url = false; + if (times.to < times.from && current_time > times.from && current_time < 24) { + times.to += 24; + } else if (times.to < times.from && current_time < times.to) { + times.from = 0; + } -ImprovedTube.livechat = function() { if ( - document.documentElement.getAttribute('it-page-type') === 'video' && - this.storage.livechat === 'collapsed' && - this.livechat_wait === false + this.isset(value) && value !== 0 && value !== '0' && + (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) ) { - this.livechat_wait = setInterval(function() { - var button = document.querySelector('#chat:not([collapsed]) #show-hide-button paper-button'), - expander = document.querySelector('#watch-sidebar-live-chat .yt-uix-expander'); - - if (document.documentElement.getAttribute('it-page-type') !== 'video' || button || expander) { - clearInterval(ImprovedTube.livechat_wait); - - ImprovedTube.livechat_wait = false; - } - - if (button) { - function click() { - ImprovedTube.livechat_url = location.href; - } + if (!document.querySelector('#it-bluelight')) { + var container = document.createElement('div'); - button.addEventListener('mousedown', click); - button.addEventListener('touchdown', click); + container.id = 'it-bluelight'; + container.innerHTML = ''; - setTimeout(function() { - if (ImprovedTube.livechat_url !== location.href) { - button.click(); - } - }, 500); - } else if (expander) { - expander.classList.add('yt-uix-expander-collapsed'); - } - }, 250); + document.documentElement.appendChild(container); + } else { + document.querySelector('#it-bluelight-filter feColorMatrix').setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 ' + (1 - parseFloat(value) / 100) + ' 0 0 0 0 0 1 0'); + } + } else if (document.querySelector('#it-bluelight')) { + document.querySelector('#it-bluelight').remove(); } }; /*------------------------------------------------------------------------------ -2.2.2 RELATIVE VIDEOS --------------------------------------------------------------------------------- -TODO: TEST +3.3 DIM ------------------------------------------------------------------------------*/ -ImprovedTube.related_videos_wait = false; - -ImprovedTube.relatedVideos = function() { - if (this.storage.related_videos === 'collapsed') { - if (!this.related_videos_wait) { - this.related_videos_wait = setInterval(function() { - if ( - document.querySelector('#related.ytd-watch-flexy') || - document.querySelector('#watch7-sidebar-contents') - ) { - clearInterval(this.related_videos_wait); - - this.related_videos_wait = false; +ImprovedTube.dim = function() { + var value = this.storage.dim, + times = { + from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), + to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) + }, + current_time = new Date().getHours(); - if (!document.getElementById('improvedtube-collapsed-related-videos')) { - var button = document.createElement('button'), - parent = document.querySelector('#related.ytd-watch-flexy') || document.querySelector('#watch7-sidebar-contents'), - reference = document.querySelector('#related > *') || document.querySelector('#watch7-sidebar-contents > *'); + if (times.to < times.from && current_time > times.from && current_time < 24) { + times.to += 24; + } else if (times.to < times.from && current_time < times.to) { + times.from = 0; + }; - button.id = 'improvedtube-collapsed-related-videos'; - button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; - button.innerHTML = 'Show moreShow less'; + if ( + this.isset(value) && value !== 0 && value !== '0' && + (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) + ) { + if (!document.querySelector('#it-dim')) { + var container = document.createElement('div'); - button.onclick = function() { - document.documentElement.classList.toggle('related-videos-collapsed'); - }; + container.id = 'it-dim'; + container.style.opacity = parseInt(Number(value)) / 100 || 0; - document.documentElement.classList.toggle('related-videos-collapsed'); - parent.insertBefore(button, reference); - } - } - }, 250); + document.documentElement.appendChild(container); + } else { + document.querySelector('#it-dim').style.opacity = parseInt(Number(value)) / 100 || 0; } - } else { - clearInterval(this.related_videos_wait); - this.related_videos_wait = false; + if (!document.querySelector('#it-dim-player')) { + var container = document.createElement('div'); - setTimeout(function() { - var button = document.getElementById('improvedtube-collapsed-related-videos'); + container.id = 'it-dim-player'; + container.style.opacity = parseInt(Number(value)) / 100 || 0; - if (button) { - button.remove(); + if (document.querySelector('.html5-video-player')) { + document.querySelector('.html5-video-player').appendChild(container); } - }, 260); + } else { + document.querySelector('#it-dim-player').style.opacity = parseInt(Number(value)) / 100 || 0; + } + } else { + if (document.querySelector('#it-dim')) { + document.querySelector('#it-dim').remove(); + } + + if (document.querySelector('#it-dim-player')) { + document.querySelector('#it-dim-player').remove(); + } } }; /*------------------------------------------------------------------------------ -2.3 DETAILS +3.4 FONT ------------------------------------------------------------------------------*/ -/*------------------------------------------------------------------------------ -2.3.1 HOW LONG AGO THE VIDEO WAS UPLOADED --------------------------------------------------------------------------------- -TODO: TEST -------------------------------------------------------------------------------*/ +ImprovedTube.font = function() { + if (this.storage.font) { + if (this.storage.font !== 'Default') { + if (!document.querySelector('.it-font-family')) { + var link = document.createElement('link'); -ImprovedTube.howLongAgoTheVideoWasUploaded = function() { - if (ImprovedTube.storage.how_long_ago_the_video_was_uploaded === true) { - function timeSince(date) { - var seconds = Math.floor((new Date() - new Date(date)) / 1000), - interval = Math.floor(seconds / 31536000); + link.rel = 'stylesheet'; - if (interval > 1) { - return interval + ' years ago'; - } - interval = Math.floor(seconds / 2592000); - if (interval > 1) { - return interval + ' months ago'; - } - interval = Math.floor(seconds / 86400); - if (interval > 1) { - return interval + ' days ago'; - } - interval = Math.floor(seconds / 3600); - if (interval > 1) { - return interval + ' hours ago'; - } - interval = Math.floor(seconds / 60); - if (interval > 1) { - return interval + ' minutes ago'; + document.documentElement.appendChild(link); + } else { + var link = document.querySelector('.it-font-family'); } - return Math.floor(seconds) + ' seconds ago'; + link.href = '//fonts.googleapis.com/css2?family=' + this.storage.font; + + document.documentElement.style.fontFamily = this.storage.font.replace(/\+/g, ' '); } + } +}; - var waiting_channel_link = setInterval(function() { - var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; - if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info a')) { - clearInterval(waiting_channel_link); +/*------------------------------------------------------------------------------ +3.5 THEMES +------------------------------------------------------------------------------*/ - var xhr = new XMLHttpRequest(); - - xhr.addEventListener('load', function() { - var response = JSON.parse(this.responseText), - element = document.querySelector('.itx-channel-video-uploaded') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); - - if (ImprovedTube.isset(response.items) && ImprovedTube.isset(response.items[0])) { - element.innerHTML = (youtube_version ? ' · ' + timeSince(response.items[0].snippet.publishedAt) + ' ' : timeSince(response.items[0].snippet.publishedAt) + ''); +ImprovedTube.themes = function() { + var times = { + from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), + to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) + }, + current_time = new Date().getHours(); - var date = new Date(response.items[0].snippet.publishedAt); + if (times.to < times.from && current_time > times.from && current_time < 24) { + times.to += 24; + } else if (times.to < times.from && current_time < times.to) { + times.from = 0; + } - element.title = ((date.getMonth() > 8) ? (date.getMonth() + 1) : ('0' + (date.getMonth() + 1))) + '/' + ((date.getDate() > 9) ? date.getDate() : ('0' + date.getDate())) + '/' + date.getFullYear(); - } + if ( + (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) && + ( + this.isset(ImprovedTube.storage.default_dark_theme) && ImprovedTube.storage.default_dark_theme !== false || + this.isset(ImprovedTube.storage.night_theme) && ImprovedTube.storage.night_theme !== false || + this.isset(ImprovedTube.storage.dawn_theme) && ImprovedTube.storage.dawn_theme !== false || + this.isset(ImprovedTube.storage.sunset_theme) && ImprovedTube.storage.sunset_theme !== false || + this.isset(ImprovedTube.storage.desert_theme) && ImprovedTube.storage.desert_theme !== false || + this.isset(ImprovedTube.storage.plain_theme) && ImprovedTube.storage.plain_theme !== false || + this.isset(ImprovedTube.storage.black_theme) && ImprovedTube.storage.black_theme !== false + ) + ) { + var PREF_OLD = this.getParams(this.getCookieValueByName('PREF')), + PREF = this.getParams(this.getCookieValueByName('PREF')), + result = ''; - if (!youtube_version) { - element.href = document.querySelector('#watch7-user-header a').href.indexOf('/videos') === -1 ? document.querySelector('#watch7-user-header a').href + '/videos' : document.querySelector('#watch7-user-header a').href; - } + if (!this.isset(PREF.f6) || this.isset(PREF.f6) && PREF.f6.length !== 3) { + PREF.f6 = '400'; + } else if (PREF.f6.length === 3) { + PREF.f6 = '4' + PREF.f6.substr(1); + } - if (!document.querySelector('.itx-channel-video-uploaded') && document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info')) { - element.style.marginLeft = '8px'; - element.className = (youtube_version ? 'style-scope ytd-video-owner-renderer itx-channel-video-uploaded' : 'yt-uix-sessionlink spf-link itx-channel-video-uploaded'); + for (var i in PREF) { + result += i + '=' + PREF[i] + '&'; + } - document.querySelector(youtube_version ? '#info #info-text #date' : '.yt-user-info').appendChild(element); - } - }); + this.setCookie('PREF', result.slice(0, -1)); - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?id=' + ImprovedTube.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v') + '&key=AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA&part=snippet', true); - xhr.send(); - } - }, 500); + document.documentElement.setAttribute('it-theme', 'true'); + } else { + document.documentElement.removeAttribute('it-theme'); } }; /*------------------------------------------------------------------------------ -2.3.2 SHOW CHANNEL VIDEOS COUNT +4.0 PLAYER -------------------------------------------------------------------------------- -TODO: TEST +TODO: CONNECT & TEST ------------------------------------------------------------------------------*/ -ImprovedTube.channelVideosCount = function() { - if (this.storage.channel_videos_count === true) { - var waiting_channel_link = setInterval(function() { - var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; - - if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a')) { - clearInterval(waiting_channel_link); - - var xhr = new XMLHttpRequest(); - - xhr.addEventListener('load', function() { - var response = JSON.parse(this.responseText), - element = document.querySelector('.itx-channel-videos-count') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); - - if (ImprovedTube.isset(response.items) && ImprovedTube.isset(response.items[0])) { - element.innerHTML = (youtube_version ? '' + response.items[0].statistics.videoCount + ' videos' : response.items[0].statistics.videoCount + ' videos'); - } - - if (!youtube_version) { - element.href = document.querySelector('#watch7-user-header a').href.indexOf('/videos') === -1 ? document.querySelector('#watch7-user-header a').href + '/videos' : document.querySelector('#watch7-user-header a').href; - } +/*------------------------------------------------------------------------------ +4.1 AUTOPLAY +------------------------------------------------------------------------------*/ - if (!document.querySelector('.itx-channel-videos-count') && document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info')) { - element.style.marginLeft = '8px'; - element.className = (youtube_version ? 'style-scope ytd-video-owner-renderer itx-channel-videos-count' : 'yt-uix-sessionlink spf-link itx-channel-videos-count'); +ImprovedTube.allow_autoplay = false; - document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info').appendChild(element); - } - }); +ImprovedTube.autoplay = function(video) { + if (ImprovedTube.video_url !== location.href) { + ImprovedTube.allow_autoplay = false; + } - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/channels?id=' + (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a').getAttribute('it-origin') || document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a').href).replace('https://www.youtube.com/channel/', '') + '&key=AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA&part=statistics', true); - xhr.send(); - } - }, 500); + if ( + ( + (/\/watch\?/.test(location.href) && !/list=/.test(location.href) && ImprovedTube.storage.player_autoplay === false) || + (/\/watch\?/.test(location.href) && /list=/.test(location.href) && ImprovedTube.storage.playlist_autoplay === false) || + (/\/(channel|user|c)\//.test(location.href) && ImprovedTube.storage.channel_trailer_autoplay === false) + ) === true && + ImprovedTube.allow_autoplay === false && + video.parentNode.parentNode.classList.contains('ad-showing') === false + ) { + setTimeout(function() { + video.parentNode.parentNode.pauseVideo(); + }); } }; /*------------------------------------------------------------------------------ -2.4 COMMENTS --------------------------------------------------------------------------------- -TODO TEST +4.2 AUTOPAUSE WHEN SWITCHING TABS ------------------------------------------------------------------------------*/ -ImprovedTube.comments_wait = false; - -ImprovedTube.comments = function() { - if (this.storage.comments === 'collapsed') { - if (this.comments_wait === false) { - this.comments_wait = setInterval(function() { - if ( - document.getElementById('comment-section-renderer-items') || - document.querySelector('#comments #sections #contents') - ) { - clearInterval(this.comments_wait); +ImprovedTube.playerAutopauseWhenSwitchingTabs = function() { + var video = document.querySelector('.html5-video-player video'); - this.comments_wait = false; + if (this.storage.player_autopause_when_switching_tabs === true && video) { - if (!document.getElementById('improvedtube-collapsed-comments')) { - var button = document.createElement('button'), - parent = document.getElementById('comment-section-renderer') || document.querySelector('#comments #sections'), - reference = document.getElementById('comment-section-renderer-items') || document.querySelector('#comments #sections #contents'); + if (this.focus === false && video.paused === false) { + video.pause(); - button.id = 'improvedtube-collapsed-comments'; - button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; - button.innerHTML = 'Show moreShow less'; + this.played_before_blur = true; + } else if (this.focus === true && this.played_before_blur === true) { + video.play(); + } + } +}; - button.onclick = function() { - document.documentElement.classList.toggle('comments-collapsed'); - }; - document.documentElement.classList.toggle('comments-collapsed'); - parent.insertBefore(button, reference); - } - } - }, 250); - } - } else { - clearInterval(this.comments_wait); +/*------------------------------------------------------------------------------ +4.3 FORCED PLAYBACK SPEED +------------------------------------------------------------------------------*/ - this.comments_wait = false; +ImprovedTube.playerPlaybackSpeed = function(node) { + var option = Number(ImprovedTube.storage.player_playback_speed); - setTimeout(function() { - if (document.getElementById('improvedtube-collapsed-comments')) { - document.getElementById('improvedtube-collapsed-comments').remove(); + if (ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) && ImprovedTube.storage.player_forced_playback_speed === true) { + try { + if (window.location.href.indexOf('music') < 0) { + document.querySelector('.html5-video-player').querySelector('video').playbackRate = option; } - }, 260); + } catch (err) {} } }; /*------------------------------------------------------------------------------ -3.0 THEMES +4.4 SUBTITLES ------------------------------------------------------------------------------*/ +ImprovedTube.subtitles = function() { + +}; + + /*------------------------------------------------------------------------------ -3.1 MY COLORS +4.5 UP NEXT AUTOPLAY ------------------------------------------------------------------------------*/ -ImprovedTube.myColors = function() { - if (this.storage.theme_my_colors !== true) { - if (document.querySelector('.it-theme-editor')) { - document.querySelector('.it-theme-editor').remove(); - } - - return false; - } +ImprovedTube.upNextAutoplay = function() { + var option = this.storage.up_next_autoplay; - var style = document.querySelector('.it-theme-editor') || document.createElement('style'); + if (this.isset(option)) { + var toggle = document.querySelector('#related #head.ytd-compact-autoplay-renderer #toggle'); - style.className = 'it-theme-editor'; - style.innerText = 'html{' + - '--yt-swatch-textbox-bg:rgba(19,19,19,1)!important;' + - '--yt-swatch-icon-color:rgba(136,136,136,1)!important;' + - '--yt-spec-brand-background-primary:rgba(0,0,0, 0.1) !important;' + - '--yt-spec-brand-background-secondary:rgba(0,0,0, 0.1) !important;' + - '--yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important;' + - '--yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important;' + - '--yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important;' + - '--yt-spec-brand-button-background:rgba(136,136,136,1) !important;' + - '--yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important;' + - '--yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important;' + - '--yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important;' + - '--yt-spec-10-percent-layer:rgba(136,136,136,1) !important;' + - '--yt-swatch-primary:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-swatch-primary-darker:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-brand-background-solid:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-a:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-b:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-c:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-touch-response:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-swatch-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-important-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-input-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-logo-override: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-spec-text-primary:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-primary-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-secondary:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-active-other:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-filled-button-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-call-to-action-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-icon-active:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-link-text:' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-spec-brand-subscribe-button-background:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-wordmark-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-selected-nav-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '}'; + if (toggle) { + var option = ImprovedTube.storage.up_next_autoplay; - document.documentElement.appendChild(style); + if (option === true && !toggle.hasAttribute('checked') || option === false && toggle.hasAttribute('checked')) { + toggle.click(); + } + } + } }; /*------------------------------------------------------------------------------ -3.2 BLUELIGHT +4.6 ADS ------------------------------------------------------------------------------*/ -ImprovedTube.bluelight = function() { - var value = this.storage.bluelight, - times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); +ImprovedTube.adInterval = false; +ImprovedTube.AdSkipButton = false; - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; +ImprovedTube.playerAds = function() { + if (ImprovedTube.adInterval) { + clearInterval(ImprovedTube.adInterval); } - if ( - this.isset(value) && value !== 0 && value !== '0' && - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) - ) { - if (!document.querySelector('#it-bluelight')) { - var container = document.createElement('div'); - - container.id = 'it-bluelight'; - container.innerHTML = ''; + if (ImprovedTube.storage.player_ads === 'block_all' || ImprovedTube.storage.player_ads === 'subscribed_channels') { + ImprovedTube.adInterval = setInterval(function() { + if (!ImprovedTube.AdSkipButton) { + ImprovedTube.AdSkipButton = document.querySelector('.ytp-ad-skip-button.ytp-button'); + } - document.documentElement.appendChild(container); - } else { - document.querySelector('#it-bluelight-filter feColorMatrix').setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 ' + (1 - parseFloat(value) / 100) + ' 0 0 0 0 0 1 0'); - } - } else if (document.querySelector('#it-bluelight')) { - document.querySelector('#it-bluelight').remove(); + if (ImprovedTube.AdSkipButton) { + ImprovedTube.AdSkipButton.click(); + } + }, 250); } }; /*------------------------------------------------------------------------------ -3.3 DIM +4.7 CUSTOM MINI-PLAYER ------------------------------------------------------------------------------*/ -ImprovedTube.dim = function() { - var value = this.storage.dim, - times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); +ImprovedTube.mini_player__mode = false; +ImprovedTube.mini_player__move = false; +ImprovedTube.mini_player__cursor = '""'; +ImprovedTube.mini_player__x = 0; +ImprovedTube.mini_player__y = 0; +ImprovedTube.mini_player__max_x = 0; +ImprovedTube.mini_player__max_y = 0; +ImprovedTube.mini_player__original_width = 0; +ImprovedTube.mini_player__original_height = 0; +ImprovedTube.mini_player__width = 200; +ImprovedTube.mini_player__height = 160; +ImprovedTube.mini_player__mousedown_x = 0; +ImprovedTube.mini_player__mousedown_y = 0; +ImprovedTube.mini_player__player_offset_x = 0; +ImprovedTube.mini_player__player_offset_y = 0; +ImprovedTube.mini_player__resize_offset = 16; - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; - }; - if ( - this.isset(value) && value !== 0 && value !== '0' && - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) - ) { - if (!document.querySelector('#it-dim')) { - var container = document.createElement('div'); +ImprovedTube.mini_player__setPosition = function(x, y) { + ImprovedTube.mini_player__element.style.transform = 'translate3d(' + x + 'px, ' + y + 'px, 0)'; +}; - container.id = 'it-dim'; - container.style.opacity = parseInt(Number(value)) / 100 || 0; +ImprovedTube.mini_player__setSize = function(width, height) { + ImprovedTube.mini_player__element.style.width = width + 'px'; + ImprovedTube.mini_player__element.style.height = height + 'px'; +}; - document.documentElement.appendChild(container); - } else { - document.querySelector('#it-dim').style.opacity = parseInt(Number(value)) / 100 || 0; - } +ImprovedTube.mini_player__scroll = function() { + if (window.scrollY >= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === false) { + ImprovedTube.mini_player__mode = true; - if (!document.querySelector('#it-dim-player')) { - var container = document.createElement('div'); + ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; + ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; - container.id = 'it-dim-player'; - container.style.opacity = parseInt(Number(value)) / 100 || 0; + ImprovedTube.mini_player__element.classList.add('it-mini-player'); - if (document.querySelector('.html5-video-player')) { - document.querySelector('.html5-video-player').appendChild(container); - } - } else { - document.querySelector('#it-dim-player').style.opacity = parseInt(Number(value)) / 100 || 0; - } - } else { - if (document.querySelector('#it-dim')) { - document.querySelector('#it-dim').remove(); - } + ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); + ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); - if (document.querySelector('#it-dim-player')) { - document.querySelector('#it-dim-player').remove(); - } - } -}; + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); + ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); -/*------------------------------------------------------------------------------ -3.4 FONT -------------------------------------------------------------------------------*/ + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); -ImprovedTube.font = function() { - if (this.storage.font) { - if (this.storage.font !== 'Default') { - if (!document.querySelector('.it-font-family')) { - var link = document.createElement('link'); + window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); + window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - link.rel = 'stylesheet'; + window.dispatchEvent(new Event('resize')); + } else if (window.scrollY < 256 && ImprovedTube.mini_player__mode === true || ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === true) { + ImprovedTube.mini_player__mode = false; + ImprovedTube.mini_player__element.classList.remove('it-mini-player'); + ImprovedTube.mini_player__move = false; + ImprovedTube.mini_player__setPosition(0, 0); + ImprovedTube.mini_player__element.style.width = ''; + ImprovedTube.mini_player__element.style.height = ''; - document.documentElement.appendChild(link); - } else { - var link = document.querySelector('.it-font-family'); - } + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); - link.href = '//fonts.googleapis.com/css2?family=' + this.storage.font; + window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); + window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - document.documentElement.style.fontFamily = this.storage.font.replace(/\+/g, ' '); - } + window.dispatchEvent(new Event('resize')); } }; - -/*------------------------------------------------------------------------------ -3.5 THEMES -------------------------------------------------------------------------------*/ - -ImprovedTube.themes = function() { - var times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); - - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; +ImprovedTube.mini_player__mousedown = function(event) { + if (event.button !== 0) { + return false; } - if ( - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) && - ( - this.isset(ImprovedTube.storage.default_dark_theme) && ImprovedTube.storage.default_dark_theme !== false || - this.isset(ImprovedTube.storage.night_theme) && ImprovedTube.storage.night_theme !== false || - this.isset(ImprovedTube.storage.dawn_theme) && ImprovedTube.storage.dawn_theme !== false || - this.isset(ImprovedTube.storage.sunset_theme) && ImprovedTube.storage.sunset_theme !== false || - this.isset(ImprovedTube.storage.desert_theme) && ImprovedTube.storage.desert_theme !== false || - this.isset(ImprovedTube.storage.plain_theme) && ImprovedTube.storage.plain_theme !== false || - this.isset(ImprovedTube.storage.black_theme) && ImprovedTube.storage.black_theme !== false - ) - ) { - var PREF_OLD = this.getParams(this.getCookieValueByName('PREF')), - PREF = this.getParams(this.getCookieValueByName('PREF')), - result = ''; + if (ImprovedTube.mini_player__resize() === true) { + return false; + } - if (!this.isset(PREF.f6) || this.isset(PREF.f6) && PREF.f6.length !== 3) { - PREF.f6 = '400'; - } else if (PREF.f6.length === 3) { - PREF.f6 = '4' + PREF.f6.substr(1); - } + var is_player = false; - for (var i in PREF) { - result += i + '=' + PREF[i] + '&'; + for (var i = 0, l = event.path.length; i < l; i++) { + if ((event.path[i].classList && event.path[i].classList.contains('it-mini-player')) === true) { + is_player = true; } + } - this.setCookie('PREF', result.slice(0, -1)); - - document.documentElement.setAttribute('it-theme', 'true'); - } else { - document.documentElement.removeAttribute('it-theme'); + if (is_player === false) { + return false; } -}; + event.preventDefault(); -/*------------------------------------------------------------------------------ -4.0 PLAYER --------------------------------------------------------------------------------- -TODO: CONNECT & TEST -------------------------------------------------------------------------------*/ + var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); -/*------------------------------------------------------------------------------ -4.1 AUTOPLAY -------------------------------------------------------------------------------*/ + ImprovedTube.mini_player__mousedown_x = event.clientX; + ImprovedTube.mini_player__mousedown_y = event.clientY; + ImprovedTube.mini_player__width = bcr.width; + ImprovedTube.mini_player__height = bcr.height; -ImprovedTube.allow_autoplay = false; + ImprovedTube.mini_player__player_offset_x = event.clientX - bcr.x; + ImprovedTube.mini_player__player_offset_y = event.clientY - bcr.y; -ImprovedTube.autoplay = function(video) { - if (ImprovedTube.video_url !== location.href) { - ImprovedTube.allow_autoplay = false; - } + ImprovedTube.mini_player__max_x = document.body.offsetWidth - ImprovedTube.mini_player__width; + ImprovedTube.mini_player__max_y = window.innerHeight - ImprovedTube.mini_player__height; - if ( - ( - (/\/watch\?/.test(location.href) && !/list=/.test(location.href) && ImprovedTube.storage.player_autoplay === false) || - (/\/watch\?/.test(location.href) && /list=/.test(location.href) && ImprovedTube.storage.playlist_autoplay === false) || - (/\/(channel|user|c)\//.test(location.href) && ImprovedTube.storage.channel_trailer_autoplay === false) - ) === true && - ImprovedTube.allow_autoplay === false && - video.parentNode.parentNode.classList.contains('ad-showing') === false - ) { - setTimeout(function() { - video.parentNode.parentNode.pauseVideo(); - }); - } + window.addEventListener('mouseup', ImprovedTube.mini_player__mouseup); + window.addEventListener('mousemove', ImprovedTube.mini_player__mousemove); }; +ImprovedTube.mini_player__mouseup = function() { + var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; -/*------------------------------------------------------------------------------ -4.2 AUTOPAUSE WHEN SWITCHING TABS -------------------------------------------------------------------------------*/ + strg.x = ImprovedTube.mini_player__x; + strg.y = ImprovedTube.mini_player__y; -ImprovedTube.playerAutopauseWhenSwitchingTabs = function() { - var video = document.querySelector('.html5-video-player video'); + localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - if (this.storage.player_autopause_when_switching_tabs === true && video) { + window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); + window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); - if (this.focus === false && video.paused === false) { - video.pause(); - - this.played_before_blur = true; - } else if (this.focus === true && this.played_before_blur === true) { - video.play(); - } - } -}; - - -/*------------------------------------------------------------------------------ -4.3 FORCED PLAYBACK SPEED -------------------------------------------------------------------------------*/ - -ImprovedTube.playerPlaybackSpeed = function(node) { - var option = Number(ImprovedTube.storage.player_playback_speed); - - if (ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) && ImprovedTube.storage.player_forced_playback_speed === true) { - try { - if (window.location.href.indexOf('music') < 0) { - document.querySelector('.html5-video-player').querySelector('video').playbackRate = option; - } - } catch (err) {} - } -}; - - -/*------------------------------------------------------------------------------ -4.4 SUBTITLES -------------------------------------------------------------------------------*/ - -ImprovedTube.subtitles = function() { - -}; - - -/*------------------------------------------------------------------------------ -4.5 UP NEXT AUTOPLAY -------------------------------------------------------------------------------*/ - -ImprovedTube.upNextAutoplay = function() { - var option = this.storage.up_next_autoplay; - - if (this.isset(option)) { - var toggle = document.querySelector('#related #head.ytd-compact-autoplay-renderer #toggle'); - - if (toggle) { - var option = ImprovedTube.storage.up_next_autoplay; - - if (option === true && !toggle.hasAttribute('checked') || option === false && toggle.hasAttribute('checked')) { - toggle.click(); - } - } - } -}; - - -/*------------------------------------------------------------------------------ -4.6 ADS -------------------------------------------------------------------------------*/ - -ImprovedTube.adInterval = false; -ImprovedTube.AdSkipButton = false; - -ImprovedTube.playerAds = function() { - if (ImprovedTube.adInterval) { - clearInterval(ImprovedTube.adInterval); - } - - if (ImprovedTube.storage.player_ads === 'block_all' || ImprovedTube.storage.player_ads === 'subscribed_channels') { - ImprovedTube.adInterval = setInterval(function() { - if (!ImprovedTube.AdSkipButton) { - ImprovedTube.AdSkipButton = document.querySelector('.ytp-ad-skip-button.ytp-button'); - } - - if (ImprovedTube.AdSkipButton) { - ImprovedTube.AdSkipButton.click(); - } - }, 250); - } -}; - - -/*------------------------------------------------------------------------------ -4.7 CUSTOM MINI-PLAYER -------------------------------------------------------------------------------*/ - -ImprovedTube.mini_player__mode = false; -ImprovedTube.mini_player__move = false; -ImprovedTube.mini_player__cursor = '""'; -ImprovedTube.mini_player__x = 0; -ImprovedTube.mini_player__y = 0; -ImprovedTube.mini_player__max_x = 0; -ImprovedTube.mini_player__max_y = 0; -ImprovedTube.mini_player__original_width = 0; -ImprovedTube.mini_player__original_height = 0; -ImprovedTube.mini_player__width = 200; -ImprovedTube.mini_player__height = 160; -ImprovedTube.mini_player__mousedown_x = 0; -ImprovedTube.mini_player__mousedown_y = 0; -ImprovedTube.mini_player__player_offset_x = 0; -ImprovedTube.mini_player__player_offset_y = 0; -ImprovedTube.mini_player__resize_offset = 16; - - -ImprovedTube.mini_player__setPosition = function(x, y) { - ImprovedTube.mini_player__element.style.transform = 'translate3d(' + x + 'px, ' + y + 'px, 0)'; -}; - -ImprovedTube.mini_player__setSize = function(width, height) { - ImprovedTube.mini_player__element.style.width = width + 'px'; - ImprovedTube.mini_player__element.style.height = height + 'px'; -}; - -ImprovedTube.mini_player__scroll = function() { - if (window.scrollY >= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === false) { - ImprovedTube.mini_player__mode = true; - - ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; - ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; - - ImprovedTube.mini_player__element.classList.add('it-mini-player'); - - ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); - ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); - - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); - - window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - - window.dispatchEvent(new Event('resize')); - } else if (window.scrollY < 256 && ImprovedTube.mini_player__mode === true || ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === true) { - ImprovedTube.mini_player__mode = false; - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); - ImprovedTube.mini_player__move = false; - ImprovedTube.mini_player__setPosition(0, 0); - ImprovedTube.mini_player__element.style.width = ''; - ImprovedTube.mini_player__element.style.height = ''; - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - - window.dispatchEvent(new Event('resize')); - } -}; - -ImprovedTube.mini_player__mousedown = function(event) { - if (event.button !== 0) { - return false; - } - - if (ImprovedTube.mini_player__resize() === true) { - return false; - } - - var is_player = false; - - for (var i = 0, l = event.path.length; i < l; i++) { - if ((event.path[i].classList && event.path[i].classList.contains('it-mini-player')) === true) { - is_player = true; - } - } - - if (is_player === false) { - return false; - } - - event.preventDefault(); - - var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); - - ImprovedTube.mini_player__mousedown_x = event.clientX; - ImprovedTube.mini_player__mousedown_y = event.clientY; - ImprovedTube.mini_player__width = bcr.width; - ImprovedTube.mini_player__height = bcr.height; - - ImprovedTube.mini_player__player_offset_x = event.clientX - bcr.x; - ImprovedTube.mini_player__player_offset_y = event.clientY - bcr.y; - - ImprovedTube.mini_player__max_x = document.body.offsetWidth - ImprovedTube.mini_player__width; - ImprovedTube.mini_player__max_y = window.innerHeight - ImprovedTube.mini_player__height; - - window.addEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.addEventListener('mousemove', ImprovedTube.mini_player__mousemove); -}; - -ImprovedTube.mini_player__mouseup = function() { - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - - strg.x = ImprovedTube.mini_player__x; - strg.y = ImprovedTube.mini_player__y; - - localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - - window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); - - ImprovedTube.mini_player__move = false; + ImprovedTube.mini_player__move = false; setTimeout(function() { window.removeEventListener('click', ImprovedTube.mini_player__click, true); @@ -2387,8 +2064,7 @@ ImprovedTube.channelDefaultTab = function() { for (var i = 0, l = node_list.length; i < l; i++) { var node = node_list[i]; - if ( - !node.getAttribute('it-origin') || + if (!node.getAttribute('it-origin') || node.hasAttribute('it-origin') && node.getAttribute('it-origin').replace(/\/(home|videos|playlists)+$/g, '') != node.href.replace(/\/(home|videos|playlists)+$/g, '') ) { @@ -3264,4 +2940,327 @@ ImprovedTube.youtubeLanguage = function() { setTimeout(function() { location.reload(); }, 100); +}; + + + + + +/*------------------------------------------------------------------------------ +0.0 PAGE UPDATE LISTENER +------------------------------------------------------------------------------*/ + +ImprovedTube.pageUpdateListener = function() { + window.addEventListener('yt-page-data-updated', function() { + ImprovedTube.played_before_blur = false; + + ImprovedTube.pageType(); + ImprovedTube.youtubeHomePage(); + ImprovedTube.collapseOfSubscriptionSections(); + ImprovedTube.markWatchedVideos(); + ImprovedTube.hdThumbnails(); + + ImprovedTube.channelDefaultTab(); + + ImprovedTube.videoPageUpdate(); + + ImprovedTube.blacklist(); + + ImprovedTube.improvedtubeYoutubeIcon(); + }); +}; + +ImprovedTube.videoPageUpdate = function() { + if (this.page_type === 'video') { + this.forcedTheaterMode(); + this.playerHdThumbnail(); + this.alwaysShowProgressBar(); + this.livechat(); + this.relatedVideos(); + this.howLongAgoTheVideoWasUploaded(); + this.channelVideosCount(); + this.comments(); + + this.upNextAutoplay(); + this.playerAutofullscreen(); + this.playerScreenshotButton(); + this.playerRepeatButton(); + this.playerRotateButton(); + this.playerPopupButton(); + + this.playlistUpNextAutoplay(); + this.playlistReverse(); + this.playlistRepeat(); + this.playlistShuffle(); + + var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); + + if (video_id) { + document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { + detail: { + action: 'set', + id: video_id, + title: document.title + } + })); + } + } +}; + + +/*------------------------------------------------------------------------------ +0.0 PLAYER UPDATE +------------------------------------------------------------------------------*/ + +ImprovedTube.playerUpdate = function() { + this.playerPlaybackSpeed(); + this.subtitles(); + this.playerAds(); + this.mini_player(); + this.playerQuality(); + this.playerVolume(); + this.playlistUpNextAutoplay(); +}; + + +/*------------------------------------------------------------------------------ +0.0 DOM CONTENT LOADED +------------------------------------------------------------------------------*/ + +ImprovedTube.DOMContentLoaded = function() { + window.addEventListener('DOMContentLoaded', function() { + ImprovedTube.youtubeHomePage(); + ImprovedTube.collapseOfSubscriptionSections(); + ImprovedTube.addScrollToTop(); + ImprovedTube.confirmationBeforeClosing(); + ImprovedTube.markWatchedVideos(); + ImprovedTube.hdThumbnails(); + + ImprovedTube.channelDefaultTab(); + + ImprovedTube.myColors(); + ImprovedTube.bluelight(); + ImprovedTube.dim(); + ImprovedTube.font(); + ImprovedTube.themes(); + + ImprovedTube.videoPageUpdate(); + + ImprovedTube.blacklist(); + + ImprovedTube.improvedtubeYoutubeIcon(); + + ImprovedTube.pageUpdateListener(); + }); +}; + + +/*------------------------------------------------------------------------------ +0.0 PAGE TYPE +------------------------------------------------------------------------------*/ + +ImprovedTube.video_url = false; +ImprovedTube.page_type = false; + +ImprovedTube.pageType = function() { + var href = location.href, + type = ''; + + if (location.pathname == '/') { + type = 'home'; + } else if (/\/watch\?/.test(href)) { + type = 'video'; + } else if (/\/channel|user|c\//.test(href)) { + type = 'channel'; + } + + this.page_type = type; + + document.documentElement.setAttribute('it-page-type', type); +}; + + +/*------------------------------------------------------------------------------ +0.0 ONFOCUS +------------------------------------------------------------------------------*/ + +ImprovedTube.focus = false; +ImprovedTube.played_before_blur = false; + +ImprovedTube.onfocus = function() { + this.onlyOnePlayerInstancePlaying(); + this.playerAutopauseWhenSwitchingTabs(); +}; + + +/*------------------------------------------------------------------------------ +0.0 ONPLAY +------------------------------------------------------------------------------*/ + +ImprovedTube.onplay = function() { + HTMLMediaElement.prototype.play = (function(original) { + return function() { + ImprovedTube.autoplay(this); + ImprovedTube.playerLoudnessNormalization(); + + if (ImprovedTube.video_url !== location.href) { + ImprovedTube.video_url = location.href; + + ImprovedTube.playerUpdate(); + } + + return original.apply(this, arguments); + } + })(HTMLMediaElement.prototype.play); +}; + + +/*------------------------------------------------------------------------------ +0.0 ONKEYDOWN +------------------------------------------------------------------------------*/ + +ImprovedTube.onkeydown = function() { + window.addEventListener('keydown', function() { + if ( + document.querySelector('.html5-video-player') && + document.querySelector('.html5-video-player').classList.contains('ad-showing') === false + ) { + ImprovedTube.allow_autoplay = true; + } + }, true); +}; + + +/*------------------------------------------------------------------------------ +0.0 ONMOUSEDOWN +------------------------------------------------------------------------------*/ + +ImprovedTube.onmousedown = function(event) { + window.addEventListener('mousedown', function(event) { + for (var i = 0, l = event.path.length; i < l; i++) { + if ( + document.querySelector('.html5-video-player') && + document.querySelector('.html5-video-player').classList.contains('ad-showing') === false && + event.path[i].classList && + ( + event.path[i].classList.contains('html5-main-video') || + event.path[i].classList.contains('ytp-play-button') + ) + ) { + ImprovedTube.allow_autoplay = true; + } + } + }, true); +}; + + +ImprovedTube.getCookieValueByName = function(name) { + var match = document.cookie.match(new RegExp('([; ]' + name + '|^' + name + ')([^\\s;]*)', 'g')); + + if (match) { + var cookie = match[0]; + + return cookie.replace(name + '=', '').replace(' ', ''); + } else + return ''; +}; + +ImprovedTube.getParam = function(query, name) { + var params = query.split('&'), + param = false; + + for (var i = 0; i < params.length; i++) { + params[i] = params[i].split('='); + + if (params[i][0] == name) { + param = params[i][1]; + } + } + + if (param) { + return param; + } else { + return false; + } +}; + +ImprovedTube.getParams = function(query) { + var params = query.split('&'), + result = {}; + + for (var i = 0, l = params.length; i < l; i++) { + params[i] = params[i].split('='); + + result[params[i][0]] = params[i][1]; + } + + return result; +}; + +ImprovedTube.setCookie = function(name, value) { + var date = new Date(); + + date.setTime(date.getTime() + 3.154e+10); + + document.cookie = name + '=' + value + '; path=/; domain=.youtube.com; expires=' + date.toGMTString(); +}; + +ImprovedTube.createPlayerButton = function(node, options) { + var controls = document.querySelector('.html5-video-player .ytp-left-controls'); + + if (controls) { + var button = document.createElement('button'); + + button.className = 'ytp-button it-player-button'; + + button.dataset.title = options.title; + + if (options.id) { + if (node.querySelector('#' + options.id)) { + node.querySelector('#' + options.id).remove(); + } + + button.id = options.id; + } + + if (options.html) { + button.innerHTML = options.html; + } + + button.style.opacity = options.opacity || '.5'; + + if (options.onclick) { + button.onclick = options.onclick; + } + + controls.insertBefore(button, controls.childNodes[3]); + } +}; + +ImprovedTube.reverse = function(parent) { + for (var i = 1, l = parent.childNodes.length; i < l; i++) { + parent.insertBefore(parent.childNodes[i], parent.firstChild); + } +}; + + +/*------------------------------------------------------------------------------ +0.0 INITIALIZATION +------------------------------------------------------------------------------*/ + +ImprovedTube.init = function() { + this.playerH264(); + this.player60fps(); + this.playerSDR(); + this.pageType(); + this.shortcuts(); + this.DOMContentLoaded(); + this.onplay(); + this.onkeydown(); + this.onmousedown(); + + window.addEventListener('load', function() { + ImprovedTube.hdThumbnails(); + ImprovedTube.channelDefaultTab(); + }); }; \ No newline at end of file From e5ab1bf4d5d6636c550fb39b353ed395a45bb612 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 17 Feb 2021 02:14:20 +0300 Subject: [PATCH 0038/1224] Exported file extension changed from JSON to TXT --- background.js | 2 +- manifest.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/background.js b/background.js index 33a3e5814..7fc68800c 100644 --- a/background.js +++ b/background.js @@ -266,7 +266,7 @@ chrome.runtime.onMessage.addListener(function(request, sender) { chrome.downloads.download({ url: URL.createObjectURL(blob), - filename: 'improvedtube_' + (date.getMonth() + 1) + '_' + date.getDate() + '_' + date.getFullYear() + '.json', + filename: 'improvedtube_' + (date.getMonth() + 1) + '_' + date.getDate() + '_' + date.getFullYear() + '.txt', saveAs: true }); } diff --git a/manifest.json b/manifest.json index 2dca9aee9..4ec50b0af 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "Improve YouTube! (testing)", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", - "version": "3.158", + "version": "3.159", "version_name": "3.120-pre-stable", "default_locale": "en", "icons": { From 2ae1c7a88c06ed533c4894f992bae692317c492f Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 17 Feb 2021 13:12:00 +0300 Subject: [PATCH 0039/1224] Fix for Player size --- content-styles.css | 1 + manifest.json | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/content-styles.css b/content-styles.css index 64cc0abe3..bb07b97bc 100644 --- a/content-styles.css +++ b/content-styles.css @@ -590,6 +590,7 @@ html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']) html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container { width: auto !important; height: calc(var(--it-player-size) - var(--it-header-size)) !important; + max-height: none !important; min-height: auto !important; } diff --git a/manifest.json b/manifest.json index 4ec50b0af..57b8bdcc3 100644 --- a/manifest.json +++ b/manifest.json @@ -3,8 +3,8 @@ "name": "Improve YouTube! (testing)", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", - "version": "3.159", - "version_name": "3.120-pre-stable", + "version": "3.160", + "version_name": "3.160-testing", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 0e817d4d9279379055a80879bfa4cbbe79252873 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 17 Feb 2021 23:19:04 +0300 Subject: [PATCH 0040/1224] Fixed ad blocker + added video src change listener --- manifest.json | 4 ++-- youtube-scripts.js | 40 +++++++++++++++++++++++++++++++++------- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/manifest.json b/manifest.json index 57b8bdcc3..ccc2ecc8d 100644 --- a/manifest.json +++ b/manifest.json @@ -3,8 +3,8 @@ "name": "Improve YouTube! (testing)", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", - "version": "3.160", - "version_name": "3.160-testing", + "version": "3.162", + "version_name": "3.162-testing", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 5379d750f..249ad2a30 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1126,16 +1126,26 @@ ImprovedTube.playerAds = function() { clearInterval(ImprovedTube.adInterval); } - if (ImprovedTube.storage.player_ads === 'block_all' || ImprovedTube.storage.player_ads === 'subscribed_channels') { + if (ImprovedTube.storage.player_ads === 'block_all') { ImprovedTube.adInterval = setInterval(function() { - if (!ImprovedTube.AdSkipButton) { - ImprovedTube.AdSkipButton = document.querySelector('.ytp-ad-skip-button.ytp-button'); + var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); + + if (button) { + button.click(); + + clearInterval(ImprovedTube.adInterval); } + }, 50); + } else if (ImprovedTube.storage.player_ads === 'subscribed_channels') { + ImprovedTube.adInterval = setInterval(function() { + var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); - if (ImprovedTube.AdSkipButton) { - ImprovedTube.AdSkipButton.click(); + if (button && !document.querySelector('#meta paper-button[subscribed]')) { + button.click(); + + clearInterval(ImprovedTube.adInterval); } - }, 250); + }, 50); } }; @@ -3012,10 +3022,23 @@ ImprovedTube.videoPageUpdate = function() { 0.0 PLAYER UPDATE ------------------------------------------------------------------------------*/ +ImprovedTube.video_src = false; + +ImprovedTube.videoUpdated = function() { + this.playerAds(); +}; + +ImprovedTube.timeupdate = function() { + if (ImprovedTube.video_src !== this.src) { + ImprovedTube.video_src = this.src; + + ImprovedTube.videoUpdated(); + } +}; + ImprovedTube.playerUpdate = function() { this.playerPlaybackSpeed(); this.subtitles(); - this.playerAds(); this.mini_player(); this.playerQuality(); this.playerVolume(); @@ -3100,6 +3123,9 @@ ImprovedTube.onfocus = function() { ImprovedTube.onplay = function() { HTMLMediaElement.prototype.play = (function(original) { return function() { + this.removeEventListener('timeupdate', ImprovedTube.timeupdate); + this.addEventListener('timeupdate', ImprovedTube.timeupdate); + ImprovedTube.autoplay(this); ImprovedTube.playerLoudnessNormalization(); From 72bb9af6ea786a2fb1dc9bf993458a5781679459 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 17 Feb 2021 23:31:49 +0300 Subject: [PATCH 0041/1224] Improved Loudness normalization --- manifest.json | 4 ++-- youtube-scripts.js | 23 ++++++++++++++--------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/manifest.json b/manifest.json index ccc2ecc8d..8279d6012 100644 --- a/manifest.json +++ b/manifest.json @@ -3,8 +3,8 @@ "name": "Improve YouTube! (testing)", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", - "version": "3.162", - "version_name": "3.162-testing", + "version": "3.163", + "version_name": "3.163-testing", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 249ad2a30..dcb7bb2b9 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1637,15 +1637,20 @@ ImprovedTube.playerVolume = function(node) { 4.13 LOUDNESS NORMALIZATION ------------------------------------------------------------------------------*/ +ImprovedTube.onvolumechange = function(event) { + if (document.querySelector('.ytp-volume-panel') && ImprovedTube.storage.player_loudness_normalization === false) { + var volume = Number(document.querySelector('.ytp-volume-panel').getAttribute('aria-valuenow')); + + this.volume = volume / 100; + } +}; + ImprovedTube.playerLoudnessNormalization = function() { - if (document.querySelector('video')) { - document.querySelector('video').onvolumechange = function(event) { - if (document.querySelector('.ytp-volume-panel') && ImprovedTube.storage.player_loudness_normalization === false) { - var volume = Number(document.querySelector('.ytp-volume-panel').getAttribute('aria-valuenow')); + var video = document.querySelector('video'); - document.querySelector('video').volume = volume / 100; - } - }; + if (video) { + video.removeEventListener('volumechange', ImprovedTube.onvolumechange); + video.addEventListener('volumechange', ImprovedTube.onvolumechange); } if (ImprovedTube.storage.player_loudness_normalization === false) { @@ -1658,9 +1663,9 @@ ImprovedTube.playerLoudnessNormalization = function() { local_storage = JSON.parse(JSON.parse(local_storage).data); local_storage = Number(local_storage.volume); - document.querySelector('video').volume = local_storage / 100; + video.volume = local_storage / 100; } else { - document.querySelector('video').volume = 100; + video.volume = 100; } } catch (err) {} } From 84f6d4f111a3205b0651ddbb21e87b021a3575be Mon Sep 17 00:00:00 2001 From: Heimen Stoffels Date: Fri, 19 Feb 2021 14:56:39 +0100 Subject: [PATCH 0042/1224] Updated Dutch translation --- _locales/messages.json | 812 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 812 insertions(+) create mode 100644 _locales/messages.json diff --git a/_locales/messages.json b/_locales/messages.json new file mode 100644 index 000000000..295149896 --- /dev/null +++ b/_locales/messages.json @@ -0,0 +1,812 @@ +{ + "about": { + "message": "Over" + }, + "accept": { + "message": "Accepteren" + }, + "activate": { + "message": "Inschakelen" + }, + "activateCaptions": { + "message": "Bijschriften tonen" + }, + "activated": { + "message": "Ingeschakeld" + }, + "activatedFeatures": { + "message": "Ingeschakelde functies" + }, + "activateFullscreen": { + "message": "Volledig scherm" + }, + "activeFeatures": { + "message": "Ingeschakelde fucties" + }, + "addScrollToTop": { + "message": "«Scrollen naar bovenkant»-knop tonen" + }, + "ads": { + "message": "Reclames" + }, + "all": { + "message": "Alles" + }, + "allow": { + "message": "Toestaan" + }, + "allow60fps": { + "message": "60 fps toestaan" + }, + "forceSDR": { + "message": "SDR afdwingen" + }, + "alwaysActive": { + "message": "Altijd ingeschakeld" + }, + "alwaysShowProgressBar": { + "message": "Voortgangsbalk altijd tonen" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analyse" + }, + "appearance": { + "message": "Uiterlijk" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audioformaten" + }, + "auto": { + "message": "Automatisch" + }, + "autoFullscreen": { + "message": "Automatisch volledig scherm" + }, + "autopauseWhenSwitchingTabs": { + "message": "Automatisch pauzeren bij het wisselen van tabbladen" + }, + "autoplay": { + "message": "Automatisch afspelen" + }, + "backupAndReset": { + "message": "Back-up maken en herstellen" + }, + "baseOnSystemColorScheme": { + "message": "Op basis van systeem-kleurenschema" + }, + "belowPlayer": { + "message": "Onder de speler" + }, + "black": { + "message": "Zwart" + }, + "blacklist": { + "message": "Zwarte lijst" + }, + "blockAll": { + "message": "Alles blokkeren" + }, + "blue": { + "message": "Blauw" + }, + "blueGray": { + "message": "Blauwgrijs" + }, + "bluelight": { + "message": "Lichtblauw" + }, + "brown": { + "message": "Bruin" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browserversie" + }, + "bubbles": { + "message": "Bubbels" + }, + "bug": { + "message": "Insect" + }, + "buttons": { + "message": "Knoppen" + }, + "cancel": { + "message": "Annuleren" + }, + "categories": { + "message": "Categorieën" + }, + "channel": { + "message": "Kanaal" + }, + "channels": { + "message": "Kanalen" + }, + "clipboard": { + "message": "Klembord" + }, + "codecH264": { + "message": "h.264-codec gebruiken" + }, + "collapsed": { + "message": "Ingeklapt" + }, + "collapseOfSubscriptionSections": { + "message": "Abonnementsectie inklappen" + }, + "comments": { + "message": "Reacties" + }, + "confirmationBeforeClosing": { + "message": "Afsluiten bevestigen" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Kernen" + }, + "cropChapterTitles": { + "message": "Hoofdstuktitels inkorten" + }, + "customCss": { + "message": "Aangepaste css" + }, + "customJs": { + "message": "Aangepaste js" + }, + "customMiniPlayer": { + "message": "Aangepaste minispeler" + }, + "cyan": { + "message": "Groenblauw" + }, + "dark": { + "message": "Donker" + }, + "darkTheme": { + "message": "Donker thema" + }, + "dateAndTime": { + "message": "Datum en tijd" + }, + "dawn": { + "message": "Ochtendrood" + }, + "decreasePlaybackSpeed": { + "message": "Afspeelsnelheid verlagen" + }, + "decreaseVolume": { + "message": "Volumeniveau verlagen" + }, + "deepOrange": { + "message": "Donkeroranje" + }, + "deepPurple": { + "message": "Donkerpaars" + }, + "defaultChannelTab": { + "message": "Standaard kanaaltabblad" + }, + "deleteYoutubeCookies": { + "message": "YouTube-cookies verwijderen" + }, + "description": { + "message": "Beschrijving" + }, + "desert": { + "message": "Woestijn" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Ontwikkelaarsopties" + }, + "device": { + "message": "Apparaat" + }, + "dim": { + "message": "Dimmen" + }, + "disabled": { + "message": "Uitgeschakeld" + }, + "dislike": { + "message": "Niet leuk vinden" + }, + "donate": { + "message": "Doneren" + }, + "doNotChange": { + "message": "Niet aanpassen" + }, + "draggable": { + "message": "Versleepbaar" + }, + "email": { + "message": "E-mail" + }, + "empty": { + "message": "Leeg" + }, + "enabled": { + "message": "Ingeschakeld" + }, + "enabledForced": { + "message": "Ingeschakeld (afdwingen)" + }, + "expanded": { + "message": "Uitgeklapt" + }, + "exportSettings": { + "message": "Instellingen exporteren" + }, + "extension": { + "message": "Extensie" + }, + "file": { + "message": "Bestand" + }, + "filters": { + "message": "Filters" + }, + "fitToWindow": { + "message": "Aanpassen aan vensterbreedte" + }, + "flash": { + "message": "Flits" + }, + "font": { + "message": "Lettertype" + }, + "footer": { + "message": "Voettekst" + }, + "forcedPlaybackSpeed": { + "message": "Afspeelsnelheid afdwingen" + }, + "forcedTheaterMode": { + "message": "Altijd theatermodus gebruiken" + }, + "forcedVolume": { + "message": "Volumeniveau afdwingen" + }, + "foundABug": { + "message": "Heb je een bug gevonden?" + }, + "fullWindow": { + "message": "Volledige venstergrootte" + }, + "general": { + "message": "Algemeen" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Ga naar de zoekbalk" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Groen" + }, + "hdThumbnail": { + "message": "HD-miniatuurvoorbeeld" + }, + "hdThumbnails": { + "message": "HD-miniatuurvoorbeelden" + }, + "header": { + "message": "Kop" + }, + "hidden": { + "message": "Verborgen" + }, + "hiddenOnVideoPage": { + "message": "Verborgen op videopagina" + }, + "hideAnimatedThumbnails": { + "message": "Geen bewegende miniatuurvoorbeelden" + }, + "hideAnnotations": { + "message": "Aantekeningen verbergen" + }, + "hideCards": { + "message": "Kaarten verbergen" + }, + "hideDetails": { + "message": "Details verbergen" + }, + "hideEndscreen": { + "message": "Eindscherm verbergen" + }, + "hideFeaturedContent": { + "message": "Uitgelichte inhoud verbergen" + }, + "hideFooter": { + "message": "Voettekst verbergen" + }, + "hideGradientBottom": { + "message": "Kleurverloop aan onderkant verbergen" + }, + "hidePlaylist": { + "message": "Afspeellijst verbergen" + }, + "hideRightButtons": { + "message": "Rechterknoppen verbergen" + }, + "hideScrollForDetails": { + "message": "«Scrollen voor details» verbergen" + }, + "hideViewsCount": { + "message": "Aantal weergaven verbergen" + }, + "history": { + "message": "Geschiedenis" + }, + "home": { + "message": "Thuis" + }, + "hover": { + "message": "Overzweven met cursor" + }, + "hoverOnVideoPage": { + "message": "Overzweven met cursor op videopagina" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Uploaddatum tonen" + }, + "icons": { + "message": "Pictogrammen" + }, + "iconsOnly": { + "message": "Alleen pictogrammen" + }, + "importSettings": { + "message": "Instellingen importeren" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube-pictogram in browser" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube-pictogram op YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube-taal" + }, + "improvedtubeVersion": { + "message": "ImprovedTube-versie" + }, + "improveLogo": { + "message": "YouTube-logo verbeteren" + }, + "increasePlaybackSpeed": { + "message": "Afspeelsnelheid verhogen" + }, + "increaseVolume": { + "message": "Volumeniveau verhogen" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "Talen" + }, + "legacyYoutube": { + "message": "Oude YouTube-vormgeving" + }, + "light": { + "message": "Licht" + }, + "lightBlue": { + "message": "Lichtblauw" + }, + "lightGreen": { + "message": "Lichtgroen" + }, + "like": { + "message": "Vind ik leuk" + }, + "likes": { + "message": "Vind-ik-leuks" + }, + "lime": { + "message": "Limoen" + }, + "list": { + "message": "Lijst" + }, + "liveChat": { + "message": "Live-chat" + }, + "liveChatType": { + "message": "Soort live-chat" + }, + "loudnessNormalization": { + "message": "Volumeniveau normaliseren" + }, + "markWatchedVideos": { + "message": "Bekeken video's aanduiden" + }, + "mixer": { + "message": "Mixer" + }, + "myColors": { + "message": "Mijn kleuren" + }, + "name": { + "message": "Naam" + }, + "nativeMiniPlayer": { + "message": "Ingebouwde minispeler" + }, + "new": { + "message": "Nieuw" + }, + "nextVideo": { + "message": "Volgende video afspelen" + }, + "night": { + "message": "Nacht" + }, + "noActiveFeatures": { + "message": "Geen ingeschakelde functies" + }, + "none": { + "message": "Geen" + }, + "noOpenVideoTabs": { + "message": "Geen openstaande videotabbladen" + }, + "normal": { + "message": "Normaal" + }, + "old": { + "message": "Oud" + }, + "onAllVideos": { + "message": "Bij alle video's" + }, + "onlyActiveOnYoutube": { + "message": "Alleen actief op YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Slechts één actieve speler toestaan" + }, + "onSubscribedChannels": { + "message": "Op geabonneerde kanalen" + }, + "orange": { + "message": "Oranje" + }, + "os": { + "message": "Besturingssysteem" + }, + "other": { + "message": "Anders" + }, + "permissions": { + "message": "Rechten" + }, + "pictureInPicture": { + "message": "Afbeelding-in-afbeelding" + }, + "pink": { + "message": "Roze" + }, + "plain": { + "message": "Vlakte" + }, + "platform": { + "message": "Platform" + }, + "playbackSpeed": { + "message": "Afspeelsnelheid" + }, + "player": { + "message": "Speler" + }, + "playerColor": { + "message": "Spelerkleur" + }, + "playerSize": { + "message": "Spelergrootte" + }, + "playlist": { + "message": "Afspeellijst" + }, + "playlists": { + "message": "Afspeellijsten" + }, + "playPause": { + "message": "Video afspelen/pauzeren" + }, + "popupPlayer": { + "message": "Pop-upspeler" + }, + "position": { + "message": "Positie" + }, + "pressAnyKeyOrScroll": { + "message": "Druk op een toets of muiswiel." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Druk op een toets of gebruik het muiswiel" + }, + "previousVideo": { + "message": "Vorige video afspelen" + }, + "primaryColor": { + "message": "Primaire kleur" + }, + "purple": { + "message": "Paars" + }, + "quality": { + "message": "Kwaliteit" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Beoordeel deze extensie" + }, + "red": { + "message": "Rood" + }, + "redDislikeButton": { + "message": "Vind-ik-niet-leuks rood markeren" + }, + "relatedVideos": { + "message": "Gerelateerde video's" + }, + "removeRelatedSearchResults": { + "message": "Gerelateerde videoresultaten verwijderen" + }, + "repeat": { + "message": "Herhalen" + }, + "reset": { + "message": "Herstellen" + }, + "resetAllSettings": { + "message": "Standaardwaarden herstellen" + }, + "resetAllShortcuts": { + "message": "Alle sneltoetsen herstellen" + }, + "reverse": { + "message": "Omdraaien" + }, + "rotate": { + "message": "Draaien" + }, + "save": { + "message": "Opslaan" + }, + "saveAs": { + "message": "Opslaan als" + }, + "schedule": { + "message": "Schema" + }, + "screen": { + "message": "Beeldscherm" + }, + "screenshot": { + "message": "Schermfoto" + }, + "search": { + "message": "Zoeken" + }, + "searchBarOnly": { + "message": "Alleen zoekbalk" + }, + "seekBackward10Seconds": { + "message": "10 seconden terugspoelen" + }, + "seekForward10Seconds": { + "message": "10 seconden vooruitspoelen" + }, + "settings": { + "message": "Instellingen" + }, + "settingsSuccessfullyImported": { + "message": "De instellingen zijn geïmporteerd" + }, + "shortcuts": { + "message": "Sneltoetsen" + }, + "showCardsOnMouseHover": { + "message": "Kaarten tonen onder muisaanwijzer" + }, + "showChannelVideosCount": { + "message": "Aantal kanaalvideo's tonen" + }, + "shuffle": { + "message": "Willekeurig" + }, + "sidebar": { + "message": "Zijbalk" + }, + "spacebar": { + "message": "Spatiebalk" + }, + "squaredUserImages": { + "message": "Vierkante gebruikersafbeeldingen" + }, + "static": { + "message": "Statisch" + }, + "statsForNerds": { + "message": "Statistieken voor nerds tonen" + }, + "step": { + "message": "Stap" + }, + "stop": { + "message": "Stoppen" + }, + "style": { + "message": "Stijl" + }, + "styles": { + "message": "Stijlen" + }, + "subscriptions": { + "message": "Abonnementen" + }, + "subtitles": { + "message": "Ondertiteling tonen" + }, + "sunset": { + "message": "Zonsondergang" + }, + "sunsetToSunrise": { + "message": "Van zonsondergang tot zonsopkomst" + }, + "systemPeferenceDark": { + "message": "Systeemvoorkeur: donker" + }, + "systemPeferenceLight": { + "message": "Systeemvoorkeur: licht" + }, + "teal": { + "message": "Blauwgroen" + }, + "textColor": { + "message": "Tekstkleur" + }, + "themes": { + "message": "Thema's" + }, + "thisWillRemoveAllCookies": { + "message": "Hiermee worden alle cookies verwijderd." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Hiermee worden alle YouTube-cookies verwijderd." + }, + "thisWillResetAllSettings": { + "message": "Hiermee worden alle instellingen hersteld." + }, + "thisWillResetAllShortcuts": { + "message": "Hiermee worden alle sneltoetsen hersteld." + }, + "thumbnails": { + "message": "Miniatuurvoorbeelden" + }, + "timeFrom": { + "message": "Tijd vanaf" + }, + "timeTo": { + "message": "Tijd tot" + }, + "todayAt": { + "message": "Vandaag om" + }, + "toggleCards": { + "message": "Kaarten tonen/verbergen" + }, + "topChat": { + "message": "Chat aan bovenkant" + }, + "trailerAutoplay": { + "message": "Trailer automatisch afspelen" + }, + "translations": { + "message": "Vertalingen" + }, + "transparentBackground": { + "message": "Doorzichtige achtergrond" + }, + "trending": { + "message": "Populair" + }, + "tryToReloadThePage": { + "message": "Probeer de pagina te herladen" + }, + "type": { + "message": "Soort" + }, + "upNextAutoplay": { + "message": "Volgende in wachtrij automatisch afspelen" + }, + "use24HourFormat": { + "message": "24-uurstijd gebruiken" + }, + "version": { + "message": "Versie" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "De video-beschrijving wordt uitgeklapt om de naam van de categorie te verkrijgen" + }, + "videoFormats": { + "message": "Videoformaten" + }, + "videos": { + "message": "Video's" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Later bekijken" + }, + "watchTime": { + "message": "Kijktijd" + }, + "whenTabIsChanged": { + "message": "Als er van tabblad wordt gewisseld" + }, + "white": { + "message": "Wit" + }, + "yellow": { + "message": "Geel" + }, + "youtubeHeaderLeft": { + "message": "YouTube-kop (links)" + }, + "youtubeHeaderRight": { + "message": "YouTube-kop (rechts)" + }, + "youtubeHomePage": { + "message": "YouTube-startpagina" + }, + "youtubeLanguage": { + "message": "YouTube-taal" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube beperkt de videokwaliteit van de h.264-codec tot 1080p" + } +} From d9828bea3eda287f76ff230e255947de88aafcb2 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 20 Feb 2021 03:23:50 +0300 Subject: [PATCH 0043/1224] Improved privacy when exporting settings --- manifest.json | 4 ++-- popup.js | 8 ++++++-- youtube-scripts.js | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/manifest.json b/manifest.json index 8279d6012..6e5975a6a 100644 --- a/manifest.json +++ b/manifest.json @@ -3,8 +3,8 @@ "name": "Improve YouTube! (testing)", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", - "version": "3.163", - "version_name": "3.163-testing", + "version": "3.164", + "version_name": "3.164-testing", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 0bc3e11fc..1da9f2815 100644 --- a/popup.js +++ b/popup.js @@ -3110,7 +3110,11 @@ function exportData() { var data = {}; for (var key in satus.storage) { - if (typeof satus.storage[key] !== 'function') { + if ( + typeof satus.storage[key] !== 'function' && + key !== 'blacklist' && + key !== 'watched' + ) { data[key] = satus.storage[key]; } } @@ -3169,4 +3173,4 @@ function exportData() { } } }); -} +} \ No newline at end of file diff --git a/youtube-scripts.js b/youtube-scripts.js index dcb7bb2b9..9b240ddf4 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1865,7 +1865,7 @@ ImprovedTube.playerPopupButton = function() { ImprovedTube.playerSDR = function() { if (this.storage.player_SDR === true) { - Object.defineProperty(window.screen, "pixelDepth", { + Object.defineProperty(window.screen, 'pixelDepth', { enumerable: true, configurable: true, value: 24 From eb84b879dcbaabdd0f4fada493d2718c067d723e Mon Sep 17 00:00:00 2001 From: Marc Wouters Date: Sun, 21 Feb 2021 12:23:17 +0100 Subject: [PATCH 0044/1224] FIX header numbering; --- youtube-scripts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 9b240ddf4..aabee9cf9 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1834,7 +1834,7 @@ ImprovedTube.playerRotateButton = function() { /*------------------------------------------------------------------------------ -4.15 POPUP PLAYER +4.17 POPUP PLAYER ------------------------------------------------------------------------------*/ ImprovedTube.playerPopupButton = function() { From 29841cf58d30f681b68ec58492d52cc7335a46cb Mon Sep 17 00:00:00 2001 From: Marc Wouters Date: Sun, 21 Feb 2021 12:24:22 +0100 Subject: [PATCH 0045/1224] FEATURE popout player playlist support; --- youtube-scripts.js | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index aabee9cf9..e661f86dc 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1850,7 +1850,33 @@ ImprovedTube.playerPopupButton = function() { onclick: function() { node.pauseVideo(); - window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(node.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + node.offsetWidth + ',height=' + node.offsetHeight); + var url = new URL(window.location.href); + // Retrieve playlist identification parameter to check if single video or playlist + var playlistId = url.searchParams.get('list'); + + // Build Embedded url + var popOutUrl = '//www.youtube.com/embed/' + + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + + '?start=' + parseInt(node.getCurrentTime()) + + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'); + + + if(playlistId) { + // Use listType playlist and add id of the playlist + popOutUrl += '&listType=playlist&list=' + playlistId; + // Add index, this defines wich item of the playlist to start playing, if empty first item starts playing + popOutUrl += '&index=' + url.searchParams.get('index'); + /* + KNOWN LIMITATION: opening a playlist will neglect the 'start' parameter + This means the video will always start from the beginning of the video and + will NOT skip to the timestamp where the user left off + This issue could potentially be solved by executing + 'player.seekTo(seconds:Number, allowSeekAhead:Boolean):Void' + in the new window. + */ + } + + window.open(popOutUrl, '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + node.offsetWidth + ',height=' + node.offsetHeight); }, title: 'Popup' }); From a048ce16eab4813f929d89b17caa3c3009ced2e9 Mon Sep 17 00:00:00 2001 From: Marc Wouters Date: Sun, 21 Feb 2021 15:03:06 +0100 Subject: [PATCH 0046/1224] FIX resume video position on opening popout player playlist; --- youtube-scripts.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index e661f86dc..2123a36b7 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1853,11 +1853,12 @@ ImprovedTube.playerPopupButton = function() { var url = new URL(window.location.href); // Retrieve playlist identification parameter to check if single video or playlist var playlistId = url.searchParams.get('list'); + var startTime = parseInt(node.getCurrentTime()); // Build Embedded url var popOutUrl = '//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) - + '?start=' + parseInt(node.getCurrentTime()) + + '?start=' + startTime + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'); @@ -1866,17 +1867,16 @@ ImprovedTube.playerPopupButton = function() { popOutUrl += '&listType=playlist&list=' + playlistId; // Add index, this defines wich item of the playlist to start playing, if empty first item starts playing popOutUrl += '&index=' + url.searchParams.get('index'); - /* - KNOWN LIMITATION: opening a playlist will neglect the 'start' parameter - This means the video will always start from the beginning of the video and - will NOT skip to the timestamp where the user left off - This issue could potentially be solved by executing - 'player.seekTo(seconds:Number, allowSeekAhead:Boolean):Void' - in the new window. - */ } - window.open(popOutUrl, '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + node.offsetWidth + ',height=' + node.offsetHeight); + var popOutPlayerWindow = window.open(popOutUrl, '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + node.offsetWidth + ',height=' + node.offsetHeight); + + // Workaround to resume video on latest starting position on playing playlist + // Will only be triggered once + popOutPlayerWindow.window.onload = function () { + popOutPlayerWindow.document.querySelector('video').currentTime = startTime; + popOutPlayerWindow.window.onload = null; + } }, title: 'Popup' }); From fdc9603f704aa4522b03a3fd79edb12aed54ba85 Mon Sep 17 00:00:00 2001 From: Marc Wouters Date: Mon, 22 Feb 2021 17:15:23 +0100 Subject: [PATCH 0047/1224] IMPROVEMENT popout player hide address bar; --- background.js | 76 ++++++--- manifest.json | 3 +- youtube-scripts.js | 413 +++++++++++++++++++++++---------------------- 3 files changed, 267 insertions(+), 225 deletions(-) diff --git a/background.js b/background.js index 7fc68800c..dc3c1d847 100644 --- a/background.js +++ b/background.js @@ -30,9 +30,9 @@ function isset(variable) { function getTranslations(path) { var xhr = new XMLHttpRequest(); - xhr.addEventListener('load', function() { + xhr.addEventListener('load', function () { if (chrome && chrome.tabs) { - chrome.tabs.query({}, function(tabs) { + chrome.tabs.query({}, function (tabs) { for (var i = 0, l = tabs.length; i < l; i++) { if (tabs[i].hasOwnProperty('url')) { chrome.tabs.sendMessage(tabs[i].id, { @@ -50,7 +50,7 @@ function getTranslations(path) { }); }); - xhr.addEventListener('error', function() { + xhr.addEventListener('error', function () { getTranslations('_locales/en/messages.json'); }); @@ -95,7 +95,7 @@ chrome.contextMenus.create({ contexts: ['browser_action'] }); -chrome.contextMenus.onClicked.addListener(function(event) { +chrome.contextMenus.onClicked.addListener(function (event) { if (event.menuItemId === '1111') { window.open('https://www.improvedtube.com/donate'); } else if (event.menuItemId === '1112') { @@ -110,7 +110,7 @@ chrome.contextMenus.onClicked.addListener(function(event) { # MESSAGE LISTENER ---------------------------------------------------------------*/ -chrome.runtime.onMessage.addListener(function(request, sender) { +chrome.runtime.onMessage.addListener(function (request, sender) { if (isset(request) && typeof request === 'object') { if (request.enabled === true && browser_icon !== 'always') { chrome.browserAction.setIcon({ @@ -128,7 +128,7 @@ chrome.runtime.onMessage.addListener(function(request, sender) { date = new Date().toDateString(), hours = new Date().getHours() + ':00'; - chrome.storage.local.get(function(items) { + chrome.storage.local.get(function (items) { if (!items.analyzer) { items.analyzer = {}; } @@ -154,7 +154,7 @@ chrome.runtime.onMessage.addListener(function(request, sender) { } if (request.name === 'improvedtube-blacklist') { - chrome.storage.local.get(function(items) { + chrome.storage.local.get(function (items) { if (!items.blacklist || typeof items.blacklist !== 'object') { items.blacklist = {}; } @@ -187,7 +187,7 @@ chrome.runtime.onMessage.addListener(function(request, sender) { } if (request.name === 'improvedtube-watched') { - chrome.storage.local.get(function(items) { + chrome.storage.local.get(function (items) { if (!items.watched || typeof items.watched !== 'object') { items.watched = {}; } @@ -212,7 +212,7 @@ chrome.runtime.onMessage.addListener(function(request, sender) { chrome.permissions.request({ permissions: ['downloads'], origins: ['https://www.youtube.com/*'] - }, function(granted) { + }, function (granted) { if (granted) { try { var blob = new Blob([JSON.stringify(request.value)], { @@ -240,7 +240,7 @@ chrome.runtime.onMessage.addListener(function(request, sender) { } if (request.name === 'improvedtube-play') { - chrome.tabs.query({}, function(tabs) { + chrome.tabs.query({}, function (tabs) { for (var i = 0, l = tabs.length; i < l; i++) { if (tabs[i].hasOwnProperty('url')) { chrome.tabs.sendMessage(tabs[i].id, { @@ -252,16 +252,46 @@ chrome.runtime.onMessage.addListener(function(request, sender) { }); } + if (request.name === 'open-popup-player') { + chrome.tabs.create({ + url: request.data.url, + active: true + }, function (tab) { + // After the tab has been created, open a window to inject the tab + chrome.windows.create({ + tabId: tab.id, + type: 'popup', + focused: true, + width: request.data.width, + height: request.data.height + }); + + // WORKAROUND playlist on popout not resuming from last video timestamp + // If start time was found in the request data skip the video to that time + if (request.data.startTime) { + chrome.tabs.executeScript(tab.id, { + code: + ` + window.onload = function () { + window.document.querySelector('video').currentTime =` + request.data.startTime + ` + window.onload = null; + }; + ` + }); + } + }); + } + if (isset(request.export)) { - chrome.storage.local.get(function(data) { + chrome.storage.local.get(function (data) { chrome.permissions.request({ permissions: ['downloads'], origins: ['https://www.youtube.com/*'] - }, function(granted) { + }, function (granted) { if (granted) { var blob = new Blob([JSON.stringify(data)], { - type: 'application/octet-stream' - }), + type: 'application/octet-stream' + }), date = new Date(); chrome.downloads.download({ @@ -281,7 +311,7 @@ chrome.runtime.onMessage.addListener(function(request, sender) { # STORAGE CHANGE LISTENER ---------------------------------------------------------------*/ -chrome.storage.onChanged.addListener(function(changes) { +chrome.storage.onChanged.addListener(function (changes) { if (isset(changes.improvedtube_language)) { locale_code = changes.improvedtube_language.newValue; } @@ -300,7 +330,7 @@ chrome.storage.onChanged.addListener(function(changes) { # INITIALIZATION ---------------------------------------------------------------*/ -chrome.storage.local.get(function(items) { +chrome.storage.local.get(function (items) { if (isset(items.improvedtube_language)) { locale_code = items.improvedtube_language; } @@ -342,15 +372,8 @@ var _gaq = _gaq || []; })();*/ - - - - - - - -chrome.tabs.onActivated.addListener(function(activeInfo) { - chrome.tabs.query({}, function(tabs) { +chrome.tabs.onActivated.addListener(function (activeInfo) { + chrome.tabs.query({}, function (tabs) { chrome.tabs.sendMessage(activeInfo.tabId, { action: 'focus' }); @@ -365,4 +388,5 @@ chrome.tabs.onActivated.addListener(function(activeInfo) { } } }); -}); \ No newline at end of file +}); + diff --git a/manifest.json b/manifest.json index 6e5975a6a..9a89a1560 100644 --- a/manifest.json +++ b/manifest.json @@ -76,7 +76,8 @@ "permissions": [ "https://www.youtube.com/", "contextMenus", - "storage" + "storage", + "tabs" ], "optional_permissions": [ "downloads", diff --git a/youtube-scripts.js b/youtube-scripts.js index 2123a36b7..02f78da18 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -137,7 +137,7 @@ ImprovedTube.youtubeHomePage = function() { 1.2 COLLAPSE OF SUBSCRIPTION SECTION ------------------------------------------------------------------------------*/ -ImprovedTube.collapseOfSubscriptionSections = function() { +ImprovedTube.collapseOfSubscriptionSections = function () { if (/\/feed\/subscriptions/.test(location.href)) { if (this.storage.collapse_of_subscription_sections === true) { var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'); @@ -150,7 +150,7 @@ ImprovedTube.collapseOfSubscriptionSections = function() { button.className = 'it-section-collapse'; button.innerHTML = ''; button.section = sections[i]; - button.addEventListener('click', function() { + button.addEventListener('click', function () { var section = this.section, content = section.querySelector('.grid-subheader + #contents, .shelf-title-table + .multirow-shelf'); @@ -159,7 +159,7 @@ ImprovedTube.collapseOfSubscriptionSections = function() { content.style.transition = 'height 150ms'; } - setTimeout(function() { + setTimeout(function () { section.classList.toggle('it-section-collapsed'); }); }); @@ -189,14 +189,14 @@ ImprovedTube.collapseOfSubscriptionSections = function() { 1.3 ADD "SCROLL TO TOP" ------------------------------------------------------------------------------*/ -ImprovedTube.addScrollToTop = function(is_update) { +ImprovedTube.addScrollToTop = function (is_update) { if (this.storage.add_scroll_to_top === true) { var button = document.createElement('div'); button.id = 'it-scroll-to-top'; button.innerHTML = ''; - button.addEventListener('click', function() { + button.addEventListener('click', function () { window.scrollTo(0, 0); }); @@ -214,7 +214,7 @@ ImprovedTube.addScrollToTop = function(is_update) { } }; -ImprovedTube.scroll = function() { +ImprovedTube.scroll = function () { if (window.scrollY > window.innerHeight / 2) { document.documentElement.setAttribute('it-show-scroll-to-top', true); } else { @@ -227,8 +227,8 @@ ImprovedTube.scroll = function() { 1.4 CONFIRMATION BEFORE CLOSING ------------------------------------------------------------------------------*/ -ImprovedTube.confirmationBeforeClosing = function() { - window.onbeforeunload = function() { +ImprovedTube.confirmationBeforeClosing = function () { + window.onbeforeunload = function () { if (ImprovedTube.storage.confirmation_before_closing === true) { return 'You have attempted to leave this page. Are you sure?'; } @@ -242,7 +242,7 @@ ImprovedTube.confirmationBeforeClosing = function() { TODO: OPTIMIZE ------------------------------------------------------------------------------*/ -ImprovedTube.markWatchedVideos = function() { +ImprovedTube.markWatchedVideos = function () { if (ImprovedTube.storage.mark_watched_videos === true) { var video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); @@ -253,7 +253,7 @@ ImprovedTube.markWatchedVideos = function() { button.className = 'it-mark-watched' + (this.storage.watched && this.storage.watched[this.getParam(new URL(video_items[i].href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); button.innerHTML = ''; - button.addEventListener('click', function(event) { + button.addEventListener('click', function (event) { var watched = !this.classList.contains('watched'); event.preventDefault(); @@ -314,7 +314,7 @@ ImprovedTube.markWatchedVideos = function() { } }; -document.addEventListener('ImprovedTubeWatched', function(event) { +document.addEventListener('ImprovedTubeWatched', function (event) { if (chrome && chrome.runtime) { chrome.runtime.sendMessage({ name: 'improvedtube-watched', @@ -334,7 +334,7 @@ document.addEventListener('ImprovedTubeWatched', function(event) { TODO: FIX ------------------------------------------------------------------------------*/ -ImprovedTube.onlyOnePlayerInstancePlaying = function() { +ImprovedTube.onlyOnePlayerInstancePlaying = function () { var video = document.querySelector('.html5-video-player video'); if (this.storage.only_one_player_instance_playing === true && video) { @@ -354,7 +354,7 @@ ImprovedTube.onlyOnePlayerInstancePlaying = function() { 1.7 HD THUMBNAILS ------------------------------------------------------------------------------*/ -ImprovedTube.hdThumbnails = function() { +ImprovedTube.hdThumbnails = function () { if (this.storage.hd_thumbnails === true) { var images = document.querySelectorAll('img'); @@ -362,7 +362,7 @@ ImprovedTube.hdThumbnails = function() { if (/(hqdefault\.jpg|hq720.jpg)+/.test(images[i].src) && !images[i].dataset.defaultSrc) { images[i].dataset.defaultSrc = images[i].src; - images[i].onload = function() { + images[i].onload = function () { if (this.naturalHeight <= 90) { this.src = this.dataset.defaultSrc; } @@ -395,7 +395,7 @@ ImprovedTube.hdThumbnails = function() { 2.1.1 FORCED THEATER MODE ------------------------------------------------------------------------------*/ -ImprovedTube.forcedTheaterMode = function() { +ImprovedTube.forcedTheaterMode = function () { if (window.self === window.top && (ImprovedTube.storage.forced_theater_mode === true || ImprovedTube.storage.player_size === 'fit_to_window')) { var button = document.querySelector('button.ytp-size-button'); @@ -412,7 +412,7 @@ ImprovedTube.forcedTheaterMode = function() { TODO: OPTIMIZED ------------------------------------------------------------------------------*/ -ImprovedTube.playerHdThumbnail = function() { +ImprovedTube.playerHdThumbnail = function () { if (this.storage.player_hd_thumbnail === true) { if (this.player_hd_thumbnail_wait !== false) { clearInterval(ImprovedTube.player_hd_thumbnail_wait); @@ -420,7 +420,7 @@ ImprovedTube.playerHdThumbnail = function() { ImprovedTube.player_hd_thumbnail_wait = false; } - this.player_hd_thumbnail_wait = setInterval(function() { + this.player_hd_thumbnail_wait = setInterval(function () { var thumbnail = document.querySelector('.ytp-cued-thumbnail-overlay-image'); if (thumbnail && thumbnail.style.backgroundImage) { @@ -442,13 +442,13 @@ ImprovedTube.playerHdThumbnail = function() { 2.1.3 ALWAYS SHOW PROGRESS BAR ------------------------------------------------------------------------------*/ -ImprovedTube.alwaysShowProgressBar = function() { +ImprovedTube.alwaysShowProgressBar = function () { if (ImprovedTube.always_show_progress_bar_interval) { clearInterval(ImprovedTube.always_show_progress_bar_interval); } if (this.storage.always_show_progress_bar === true) { - ImprovedTube.always_show_progress_bar_interval = setInterval(function() { + ImprovedTube.always_show_progress_bar_interval = setInterval(function () { var player = document.querySelector('.html5-video-player'); if (player && player.classList.contains('ytp-autohide')) { @@ -509,13 +509,13 @@ TODO: TEST ImprovedTube.livechat_wait = false; ImprovedTube.livechat_url = false; -ImprovedTube.livechat = function() { +ImprovedTube.livechat = function () { if ( document.documentElement.getAttribute('it-page-type') === 'video' && this.storage.livechat === 'collapsed' && this.livechat_wait === false ) { - this.livechat_wait = setInterval(function() { + this.livechat_wait = setInterval(function () { var button = document.querySelector('#chat:not([collapsed]) #show-hide-button paper-button'), expander = document.querySelector('#watch-sidebar-live-chat .yt-uix-expander'); @@ -533,7 +533,7 @@ ImprovedTube.livechat = function() { button.addEventListener('mousedown', click); button.addEventListener('touchdown', click); - setTimeout(function() { + setTimeout(function () { if (ImprovedTube.livechat_url !== location.href) { button.click(); } @@ -554,10 +554,10 @@ TODO: TEST ImprovedTube.related_videos_wait = false; -ImprovedTube.relatedVideos = function() { +ImprovedTube.relatedVideos = function () { if (this.storage.related_videos === 'collapsed') { if (!this.related_videos_wait) { - this.related_videos_wait = setInterval(function() { + this.related_videos_wait = setInterval(function () { if ( document.querySelector('#related.ytd-watch-flexy') || document.querySelector('#watch7-sidebar-contents') @@ -575,7 +575,7 @@ ImprovedTube.relatedVideos = function() { button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; button.innerHTML = 'Show moreShow less'; - button.onclick = function() { + button.onclick = function () { document.documentElement.classList.toggle('related-videos-collapsed'); }; @@ -590,7 +590,7 @@ ImprovedTube.relatedVideos = function() { this.related_videos_wait = false; - setTimeout(function() { + setTimeout(function () { var button = document.getElementById('improvedtube-collapsed-related-videos'); if (button) { @@ -611,7 +611,7 @@ ImprovedTube.relatedVideos = function() { TODO: TEST ------------------------------------------------------------------------------*/ -ImprovedTube.howLongAgoTheVideoWasUploaded = function() { +ImprovedTube.howLongAgoTheVideoWasUploaded = function () { if (ImprovedTube.storage.how_long_ago_the_video_was_uploaded === true) { function timeSince(date) { var seconds = Math.floor((new Date() - new Date(date)) / 1000), @@ -640,7 +640,7 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function() { return Math.floor(seconds) + ' seconds ago'; } - var waiting_channel_link = setInterval(function() { + var waiting_channel_link = setInterval(function () { var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info a')) { @@ -648,7 +648,7 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function() { var xhr = new XMLHttpRequest(); - xhr.addEventListener('load', function() { + xhr.addEventListener('load', function () { var response = JSON.parse(this.responseText), element = document.querySelector('.itx-channel-video-uploaded') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); @@ -686,9 +686,9 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function() { TODO: TEST ------------------------------------------------------------------------------*/ -ImprovedTube.channelVideosCount = function() { +ImprovedTube.channelVideosCount = function () { if (this.storage.channel_videos_count === true) { - var waiting_channel_link = setInterval(function() { + var waiting_channel_link = setInterval(function () { var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a')) { @@ -696,7 +696,7 @@ ImprovedTube.channelVideosCount = function() { var xhr = new XMLHttpRequest(); - xhr.addEventListener('load', function() { + xhr.addEventListener('load', function () { var response = JSON.parse(this.responseText), element = document.querySelector('.itx-channel-videos-count') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); @@ -732,10 +732,10 @@ TODO TEST ImprovedTube.comments_wait = false; -ImprovedTube.comments = function() { +ImprovedTube.comments = function () { if (this.storage.comments === 'collapsed') { if (this.comments_wait === false) { - this.comments_wait = setInterval(function() { + this.comments_wait = setInterval(function () { if ( document.getElementById('comment-section-renderer-items') || document.querySelector('#comments #sections #contents') @@ -753,7 +753,7 @@ ImprovedTube.comments = function() { button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; button.innerHTML = 'Show moreShow less'; - button.onclick = function() { + button.onclick = function () { document.documentElement.classList.toggle('comments-collapsed'); }; @@ -768,7 +768,7 @@ ImprovedTube.comments = function() { this.comments_wait = false; - setTimeout(function() { + setTimeout(function () { if (document.getElementById('improvedtube-collapsed-comments')) { document.getElementById('improvedtube-collapsed-comments').remove(); } @@ -785,7 +785,7 @@ ImprovedTube.comments = function() { 3.1 MY COLORS ------------------------------------------------------------------------------*/ -ImprovedTube.myColors = function() { +ImprovedTube.myColors = function () { if (this.storage.theme_my_colors !== true) { if (document.querySelector('.it-theme-editor')) { document.querySelector('.it-theme-editor').remove(); @@ -846,7 +846,7 @@ ImprovedTube.myColors = function() { 3.2 BLUELIGHT ------------------------------------------------------------------------------*/ -ImprovedTube.bluelight = function() { +ImprovedTube.bluelight = function () { var value = this.storage.bluelight, times = { from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), @@ -884,7 +884,7 @@ ImprovedTube.bluelight = function() { 3.3 DIM ------------------------------------------------------------------------------*/ -ImprovedTube.dim = function() { +ImprovedTube.dim = function () { var value = this.storage.dim, times = { from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), @@ -941,7 +941,7 @@ ImprovedTube.dim = function() { 3.4 FONT ------------------------------------------------------------------------------*/ -ImprovedTube.font = function() { +ImprovedTube.font = function () { if (this.storage.font) { if (this.storage.font !== 'Default') { if (!document.querySelector('.it-font-family')) { @@ -966,11 +966,11 @@ ImprovedTube.font = function() { 3.5 THEMES ------------------------------------------------------------------------------*/ -ImprovedTube.themes = function() { +ImprovedTube.themes = function () { var times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, + from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), + to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) + }, current_time = new Date().getHours(); if (times.to < times.from && current_time > times.from && current_time < 24) { @@ -1026,7 +1026,7 @@ TODO: CONNECT & TEST ImprovedTube.allow_autoplay = false; -ImprovedTube.autoplay = function(video) { +ImprovedTube.autoplay = function (video) { if (ImprovedTube.video_url !== location.href) { ImprovedTube.allow_autoplay = false; } @@ -1040,7 +1040,7 @@ ImprovedTube.autoplay = function(video) { ImprovedTube.allow_autoplay === false && video.parentNode.parentNode.classList.contains('ad-showing') === false ) { - setTimeout(function() { + setTimeout(function () { video.parentNode.parentNode.pauseVideo(); }); } @@ -1051,7 +1051,7 @@ ImprovedTube.autoplay = function(video) { 4.2 AUTOPAUSE WHEN SWITCHING TABS ------------------------------------------------------------------------------*/ -ImprovedTube.playerAutopauseWhenSwitchingTabs = function() { +ImprovedTube.playerAutopauseWhenSwitchingTabs = function () { var video = document.querySelector('.html5-video-player video'); if (this.storage.player_autopause_when_switching_tabs === true && video) { @@ -1071,7 +1071,7 @@ ImprovedTube.playerAutopauseWhenSwitchingTabs = function() { 4.3 FORCED PLAYBACK SPEED ------------------------------------------------------------------------------*/ -ImprovedTube.playerPlaybackSpeed = function(node) { +ImprovedTube.playerPlaybackSpeed = function (node) { var option = Number(ImprovedTube.storage.player_playback_speed); if (ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) && ImprovedTube.storage.player_forced_playback_speed === true) { @@ -1079,7 +1079,7 @@ ImprovedTube.playerPlaybackSpeed = function(node) { if (window.location.href.indexOf('music') < 0) { document.querySelector('.html5-video-player').querySelector('video').playbackRate = option; } - } catch (err) {} + } catch (err) { } } }; @@ -1088,7 +1088,7 @@ ImprovedTube.playerPlaybackSpeed = function(node) { 4.4 SUBTITLES ------------------------------------------------------------------------------*/ -ImprovedTube.subtitles = function() { +ImprovedTube.subtitles = function () { }; @@ -1097,7 +1097,7 @@ ImprovedTube.subtitles = function() { 4.5 UP NEXT AUTOPLAY ------------------------------------------------------------------------------*/ -ImprovedTube.upNextAutoplay = function() { +ImprovedTube.upNextAutoplay = function () { var option = this.storage.up_next_autoplay; if (this.isset(option)) { @@ -1121,13 +1121,13 @@ ImprovedTube.upNextAutoplay = function() { ImprovedTube.adInterval = false; ImprovedTube.AdSkipButton = false; -ImprovedTube.playerAds = function() { +ImprovedTube.playerAds = function () { if (ImprovedTube.adInterval) { clearInterval(ImprovedTube.adInterval); } if (ImprovedTube.storage.player_ads === 'block_all') { - ImprovedTube.adInterval = setInterval(function() { + ImprovedTube.adInterval = setInterval(function () { var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); if (button) { @@ -1137,7 +1137,7 @@ ImprovedTube.playerAds = function() { } }, 50); } else if (ImprovedTube.storage.player_ads === 'subscribed_channels') { - ImprovedTube.adInterval = setInterval(function() { + ImprovedTube.adInterval = setInterval(function () { var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); if (button && !document.querySelector('#meta paper-button[subscribed]')) { @@ -1172,16 +1172,16 @@ ImprovedTube.mini_player__player_offset_y = 0; ImprovedTube.mini_player__resize_offset = 16; -ImprovedTube.mini_player__setPosition = function(x, y) { +ImprovedTube.mini_player__setPosition = function (x, y) { ImprovedTube.mini_player__element.style.transform = 'translate3d(' + x + 'px, ' + y + 'px, 0)'; }; -ImprovedTube.mini_player__setSize = function(width, height) { +ImprovedTube.mini_player__setSize = function (width, height) { ImprovedTube.mini_player__element.style.width = width + 'px'; ImprovedTube.mini_player__element.style.height = height + 'px'; }; -ImprovedTube.mini_player__scroll = function() { +ImprovedTube.mini_player__scroll = function () { if (window.scrollY >= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === false) { ImprovedTube.mini_player__mode = true; @@ -1222,7 +1222,7 @@ ImprovedTube.mini_player__scroll = function() { } }; -ImprovedTube.mini_player__mousedown = function(event) { +ImprovedTube.mini_player__mousedown = function (event) { if (event.button !== 0) { return false; } @@ -1262,7 +1262,7 @@ ImprovedTube.mini_player__mousedown = function(event) { window.addEventListener('mousemove', ImprovedTube.mini_player__mousemove); }; -ImprovedTube.mini_player__mouseup = function() { +ImprovedTube.mini_player__mouseup = function () { var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; strg.x = ImprovedTube.mini_player__x; @@ -1275,17 +1275,17 @@ ImprovedTube.mini_player__mouseup = function() { ImprovedTube.mini_player__move = false; - setTimeout(function() { + setTimeout(function () { window.removeEventListener('click', ImprovedTube.mini_player__click, true); }); }; -ImprovedTube.mini_player__click = function(event) { +ImprovedTube.mini_player__click = function (event) { event.stopPropagation(); event.preventDefault(); }; -ImprovedTube.mini_player__mousemove = function(event) { +ImprovedTube.mini_player__mousemove = function (event) { if ( event.clientX < ImprovedTube.mini_player__mousedown_x - 5 || event.clientY < ImprovedTube.mini_player__mousedown_y - 5 || @@ -1324,7 +1324,7 @@ ImprovedTube.mini_player__mousemove = function(event) { } }; -ImprovedTube.mini_player__cursorUpdate = function(event) { +ImprovedTube.mini_player__cursorUpdate = function (event) { var x = event.clientX, y = event.clientY, c = ImprovedTube.mini_player__cursor; @@ -1396,7 +1396,7 @@ ImprovedTube.mini_player__cursorUpdate = function(event) { } }; -ImprovedTube.mini_player__resize = function(event) { +ImprovedTube.mini_player__resize = function (event) { if (ImprovedTube.mini_player__cursor !== '') { window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); window.addEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); @@ -1406,7 +1406,7 @@ ImprovedTube.mini_player__resize = function(event) { } }; -ImprovedTube.mini_player__resize_mouseMove = function(event) { +ImprovedTube.mini_player__resize_mouseMove = function (event) { if (ImprovedTube.mini_player__cursor === 'n-resize') { ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); @@ -1431,7 +1431,7 @@ ImprovedTube.mini_player__resize_mouseMove = function(event) { } }; -ImprovedTube.mini_player__resize_mouseUp = function(event) { +ImprovedTube.mini_player__resize_mouseUp = function (event) { var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); ImprovedTube.mini_player__x = bcr.left; @@ -1453,7 +1453,7 @@ ImprovedTube.mini_player__resize_mouseUp = function(event) { window.removeEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); }; -ImprovedTube.mini_player = function() { +ImprovedTube.mini_player = function () { ImprovedTube.mini_player__element = document.querySelector('.html5-video-player'); if (ImprovedTube.storage.mini_player === true) { @@ -1494,7 +1494,7 @@ ImprovedTube.mini_player = function() { 4.8 AUTO FULLSCREEN ------------------------------------------------------------------------------*/ -ImprovedTube.playerAutofullscreen = function(node) { +ImprovedTube.playerAutofullscreen = function (node) { if (!node) { node = document.querySelector('.html5-video-player'); } @@ -1514,7 +1514,7 @@ ImprovedTube.playerAutofullscreen = function(node) { 4.9 QUALITY ------------------------------------------------------------------------------*/ -ImprovedTube.playerQuality = function(node) { +ImprovedTube.playerQuality = function (node) { var quality = ImprovedTube.storage.player_quality; if (!node) { @@ -1540,7 +1540,7 @@ ImprovedTube.playerQuality = function(node) { 4.10 CODEC H.264 ------------------------------------------------------------------------------*/ -ImprovedTube.playerH264 = function() { +ImprovedTube.playerH264 = function () { if (this.storage.player_h264 === true) { var canPlayType = HTMLMediaElement.prototype.canPlayType; @@ -1555,12 +1555,12 @@ ImprovedTube.playerH264 = function() { if (window.MediaSource) { var isTypeSupported = window.MediaSource.isTypeSupported; - window.MediaSource.isTypeSupported = function(mime) { + window.MediaSource.isTypeSupported = function (mime) { return overwrite(this, isTypeSupported, mime); }; } - HTMLMediaElement.prototype.canPlayType = function(mime) { + HTMLMediaElement.prototype.canPlayType = function (mime) { var status = overwrite(this, canPlayType, mime); if (!status) { @@ -1577,7 +1577,7 @@ ImprovedTube.playerH264 = function() { 4.11 ALLOW 60FPS ------------------------------------------------------------------------------*/ -ImprovedTube.player60fps = function() { +ImprovedTube.player60fps = function () { if (this.storage.player_60fps === false) { var canPlayType = HTMLMediaElement.prototype.canPlayType; @@ -1594,12 +1594,12 @@ ImprovedTube.player60fps = function() { if (window.MediaSource) { var isTypeSupported = window.MediaSource.isTypeSupported; - window.MediaSource.isTypeSupported = function(mime) { + window.MediaSource.isTypeSupported = function (mime) { return overwrite(this, isTypeSupported, mime); }; } - HTMLMediaElement.prototype.canPlayType = function(mime) { + HTMLMediaElement.prototype.canPlayType = function (mime) { var status = overwrite(this, canPlayType, mime); if (!status) { @@ -1616,7 +1616,7 @@ ImprovedTube.player60fps = function() { 4.12 FORCED VOLUME ------------------------------------------------------------------------------*/ -ImprovedTube.playerVolume = function(node) { +ImprovedTube.playerVolume = function (node) { if (!node) { node = document.querySelector('.html5-video-player'); } @@ -1637,7 +1637,7 @@ ImprovedTube.playerVolume = function(node) { 4.13 LOUDNESS NORMALIZATION ------------------------------------------------------------------------------*/ -ImprovedTube.onvolumechange = function(event) { +ImprovedTube.onvolumechange = function (event) { if (document.querySelector('.ytp-volume-panel') && ImprovedTube.storage.player_loudness_normalization === false) { var volume = Number(document.querySelector('.ytp-volume-panel').getAttribute('aria-valuenow')); @@ -1645,7 +1645,7 @@ ImprovedTube.onvolumechange = function(event) { } }; -ImprovedTube.playerLoudnessNormalization = function() { +ImprovedTube.playerLoudnessNormalization = function () { var video = document.querySelector('video'); if (video) { @@ -1667,7 +1667,7 @@ ImprovedTube.playerLoudnessNormalization = function() { } else { video.volume = 100; } - } catch (err) {} + } catch (err) { } } }; @@ -1676,7 +1676,7 @@ ImprovedTube.playerLoudnessNormalization = function() { 4.14 SCREENSHOT ------------------------------------------------------------------------------*/ -ImprovedTube.screenshot = function() { +ImprovedTube.screenshot = function () { document.body.style.opacity = '0'; var video = document.querySelector('.html5-video-player video'), @@ -1688,13 +1688,13 @@ ImprovedTube.screenshot = function() { video.style.width = video.videoWidth + 'px'; video.style.height = video.videoHeight + 'px'; - setTimeout(function() { + setTimeout(function () { cvs.width = video.videoWidth; cvs.height = video.videoHeight; ctx.drawImage(video, 0, 0, cvs.width, cvs.height); - cvs.toBlob(function(blob) { + cvs.toBlob(function (blob) { if (ImprovedTube.storage.player_screenshot_save_as !== 'clipboard') { var a = document.createElement('a'); @@ -1710,10 +1710,10 @@ ImprovedTube.screenshot = function() { 'image/png': blob }) ]); - } catch (error) {} + } catch (error) { } } - setTimeout(function() { + setTimeout(function () { video.style.width = old_w + 'px'; video.style.height = old_h + 'px'; @@ -1723,7 +1723,7 @@ ImprovedTube.screenshot = function() { }, 100); }; -ImprovedTube.playerScreenshotButton = function() { +ImprovedTube.playerScreenshotButton = function () { if (this.storage.player_screenshot_button === true) { if (!node) { var node = document.querySelector('.html5-video-player'); @@ -1746,7 +1746,7 @@ ImprovedTube.playerScreenshotButton = function() { 4.15 REPEAT ------------------------------------------------------------------------------*/ -ImprovedTube.playerRepeatButton = function(node) { +ImprovedTube.playerRepeatButton = function (node) { if (this.storage.player_repeat_button === true) { if (!node) { var node = document.querySelector('.html5-video-player'); @@ -1755,7 +1755,7 @@ ImprovedTube.playerRepeatButton = function(node) { this.createPlayerButton(node, { id: 'it-repeat-button', html: '', - onclick: function() { + onclick: function () { if (node.querySelector('video').hasAttribute('loop')) { node.querySelector('video').removeAttribute('loop'); this.style.opacity = '.5'; @@ -1768,7 +1768,7 @@ ImprovedTube.playerRepeatButton = function(node) { }); if (this.storage.player_always_repeat === true) { - setTimeout(function() { + setTimeout(function () { node.querySelector('video').setAttribute('loop', ''); node.querySelector('#it-repeat-button').style.opacity = '1'; }, 100); @@ -1783,7 +1783,7 @@ ImprovedTube.playerRepeatButton = function(node) { 4.16 ROTATE ------------------------------------------------------------------------------*/ -ImprovedTube.playerRotateButton = function() { +ImprovedTube.playerRotateButton = function () { if (this.storage.player_rotate_button === true) { if (!node) { var node = document.querySelector('.html5-video-player'); @@ -1793,7 +1793,7 @@ ImprovedTube.playerRotateButton = function() { id: 'it-rotate-button', html: '', opacity: 1, - onclick: function() { + onclick: function () { var video = document.querySelector('.html5-video-player video'), transform = '', rotate = (document.querySelector('.it-rotate-styles') && document.querySelector('.it-rotate-styles').textContent.match(/rotate\([0-9.]+deg\)/g) || [''])[0]; @@ -1837,7 +1837,7 @@ ImprovedTube.playerRotateButton = function() { 4.17 POPUP PLAYER ------------------------------------------------------------------------------*/ -ImprovedTube.playerPopupButton = function() { +ImprovedTube.playerPopupButton = function () { if (this.storage.player_popup_button === true) { if (!node) { var node = document.querySelector('.html5-video-player'); @@ -1847,7 +1847,7 @@ ImprovedTube.playerPopupButton = function() { id: 'it-popup-player-button', html: '', opacity: 1, - onclick: function() { + onclick: function (event) { node.pauseVideo(); var url = new URL(window.location.href); @@ -1856,27 +1856,30 @@ ImprovedTube.playerPopupButton = function() { var startTime = parseInt(node.getCurrentTime()); // Build Embedded url - var popOutUrl = '//www.youtube.com/embed/' - + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) - + '?start=' + startTime + var popOutUrl = location.protocol + '//www.youtube.com/embed/' + + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + + '?start=' + startTime + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'); - - if(playlistId) { + + if (playlistId) { // Use listType playlist and add id of the playlist popOutUrl += '&listType=playlist&list=' + playlistId; // Add index, this defines wich item of the playlist to start playing, if empty first item starts playing popOutUrl += '&index=' + url.searchParams.get('index'); } - var popOutPlayerWindow = window.open(popOutUrl, '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + node.offsetWidth + ',height=' + node.offsetHeight); - - // Workaround to resume video on latest starting position on playing playlist - // Will only be triggered once - popOutPlayerWindow.window.onload = function () { - popOutPlayerWindow.document.querySelector('video').currentTime = startTime; - popOutPlayerWindow.window.onload = null; - } + // Use dispatchEvent for sending it through the Chrome Runtime + // This makes it possible to open the popup player without address bar + // See 'background.js' for further implementation + document.dispatchEvent(new CustomEvent('OpenPopupPlayer', { + detail: { + url: popOutUrl, + width: node.offsetWidth, + height: node.offsetHeight, + startTime: startTime + } + })); }, title: 'Popup' }); @@ -1885,11 +1888,25 @@ ImprovedTube.playerPopupButton = function() { } }; +document.addEventListener('OpenPopupPlayer', function (event) { + if (chrome && chrome.runtime) { + chrome.runtime.sendMessage({ + name: 'open-popup-player', + data: { + url: event.detail.url, + width: event.detail.width, + height: event.detail.height, + startTime: event.detail.startTime + } + }); + } +}); + /*------------------------------------------------------------------------------ 4.18 Force SDR ------------------------------------------------------------------------------*/ -ImprovedTube.playerSDR = function() { +ImprovedTube.playerSDR = function () { if (this.storage.player_SDR === true) { Object.defineProperty(window.screen, 'pixelDepth', { enumerable: true, @@ -1909,7 +1926,7 @@ TODO: CONNECT & TEST 5.1 UP NEXT AUTOPLAY ------------------------------------------------------------------------------*/ -ImprovedTube.playlist_up_next_autoplay_f = function(event) { +ImprovedTube.playlist_up_next_autoplay_f = function (event) { if ( ImprovedTube.getParam(location.href, 'list') && ImprovedTube.storage.playlist_up_next_autoplay === false && @@ -1919,7 +1936,7 @@ ImprovedTube.playlist_up_next_autoplay_f = function(event) { } }; -ImprovedTube.playlistUpNextAutoplay = function() { +ImprovedTube.playlistUpNextAutoplay = function () { var video = document.querySelector('video'); video.removeEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); @@ -1934,7 +1951,7 @@ ImprovedTube.playlistUpNextAutoplay = function() { ImprovedTube.playlistReverseUrl = false; ImprovedTube.playlistReversed = location.href.indexOf('reverse') !== -1; -ImprovedTube.playlistReverse = function() { +ImprovedTube.playlistReverse = function () { if (this.playlistReverseUrl !== location.href && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer') && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #playlist-action-menu')) { var button = document.querySelector('#it-reverse-playlist'); @@ -1946,7 +1963,7 @@ ImprovedTube.playlistReverse = function() { prev_button = document.querySelector('.ytp-prev-button'); if (prev_button) { - prev_button.addEventListener('click', function(event) { + prev_button.addEventListener('click', function (event) { event.preventDefault(); event.stopPropagation(); @@ -1961,7 +1978,7 @@ ImprovedTube.playlistReverse = function() { } if (next_button) { - next_button.addEventListener('click', function(event) { + next_button.addEventListener('click', function (event) { event.preventDefault(); event.stopPropagation(); @@ -1977,7 +1994,7 @@ ImprovedTube.playlistReverse = function() { } if (ImprovedTube.playlistReversed === true) { - setTimeout(function() { + setTimeout(function () { ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); setTimeout(updateNextButton, 1000); @@ -1995,7 +2012,7 @@ ImprovedTube.playlistReverse = function() { button.classList.add('active'); } - button.addEventListener('click', function(event) { + button.addEventListener('click', function (event) { event.preventDefault(); event.stopPropagation(); @@ -2025,9 +2042,9 @@ ImprovedTube.playlistReverse = function() { ImprovedTube.playlist_repeat_wait = false; -ImprovedTube.playlistRepeat = function() { +ImprovedTube.playlistRepeat = function () { if (this.isset(this.storage.playlist_repeat) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { - ImprovedTube.playlist_repeat_wait = setInterval(function() { + ImprovedTube.playlist_repeat_wait = setInterval(function () { if ( document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[0] || document.querySelector('.playlist-nav-controls .toggle-loop') @@ -2057,9 +2074,9 @@ ImprovedTube.playlistRepeat = function() { ImprovedTube.playlist_shuffle_wait = false; -ImprovedTube.playlistShuffle = function() { +ImprovedTube.playlistShuffle = function () { if (this.isset(this.storage.playlist_shuffle) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { - ImprovedTube.playlist_shuffle_wait = setInterval(function() { + ImprovedTube.playlist_shuffle_wait = setInterval(function () { if ( document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[1] || document.querySelector('.playlist-nav-controls .shuffle-playlist') @@ -2093,7 +2110,7 @@ TODO: CONNECT & TEST 6.1 DEFAULT CHANNEL TAB ------------------------------------------------------------------------------*/ -ImprovedTube.channelDefaultTab = function() { +ImprovedTube.channelDefaultTab = function () { if (this.storage.channel_default_tab && this.storage.channel_default_tab !== '/') { var value = this.storage.channel_default_tab, node_list = document.querySelectorAll( @@ -2136,7 +2153,7 @@ ImprovedTube.channelDefaultTab = function() { TODO: CONNECT & TEST ------------------------------------------------------------------------------*/ -ImprovedTube.shortcuts = function() { +ImprovedTube.shortcuts = function () { var self = this, keys = {}, wheel = 0, @@ -2159,7 +2176,7 @@ ImprovedTube.shortcuts = function() { clearTimeout(status_timer); } - status_timer = setTimeout(function() { + status_timer = setTimeout(function () { if (player.querySelector('#it-status')) { player.querySelector('#it-status').remove(); } @@ -2172,7 +2189,7 @@ ImprovedTube.shortcuts = function() { } var features = { - shortcut_240p: function() { + shortcut_240p: function () { var player = document.querySelector('#movie_player'); if (player) { @@ -2180,7 +2197,7 @@ ImprovedTube.shortcuts = function() { player.setPlaybackQuality('small'); } }, - shortcut_360p: function() { + shortcut_360p: function () { var player = document.querySelector('#movie_player'); if (player) { @@ -2188,7 +2205,7 @@ ImprovedTube.shortcuts = function() { player.setPlaybackQuality('medium'); } }, - shortcut_480p: function() { + shortcut_480p: function () { var player = document.querySelector('#movie_player'); if (player) { @@ -2196,7 +2213,7 @@ ImprovedTube.shortcuts = function() { player.setPlaybackQuality('large'); } }, - shortcut_720p: function() { + shortcut_720p: function () { var player = document.querySelector('#movie_player'); if (player) { @@ -2204,7 +2221,7 @@ ImprovedTube.shortcuts = function() { player.setPlaybackQuality('hd720'); } }, - shortcut_1080p: function() { + shortcut_1080p: function () { var player = document.querySelector('#movie_player'); if (player) { @@ -2212,7 +2229,7 @@ ImprovedTube.shortcuts = function() { player.setPlaybackQuality('hd1080'); } }, - shortcut_1440p: function() { + shortcut_1440p: function () { var player = document.querySelector('#movie_player'); if (player) { @@ -2220,7 +2237,7 @@ ImprovedTube.shortcuts = function() { player.setPlaybackQuality('hd1440'); } }, - shortcut_2160p: function() { + shortcut_2160p: function () { var player = document.querySelector('#movie_player'); if (player) { @@ -2228,7 +2245,7 @@ ImprovedTube.shortcuts = function() { player.setPlaybackQuality('hd2160'); } }, - shortcut_2880p: function() { + shortcut_2880p: function () { var player = document.querySelector('#movie_player'); if (player) { @@ -2236,7 +2253,7 @@ ImprovedTube.shortcuts = function() { player.setPlaybackQuality('hd2880'); } }, - shortcut_4320p: function() { + shortcut_4320p: function () { var player = document.querySelector('#movie_player'); if (player) { @@ -2244,14 +2261,14 @@ ImprovedTube.shortcuts = function() { player.setPlaybackQuality('highres'); } }, - shortcut_picture_in_picture: function() { + shortcut_picture_in_picture: function () { var video = document.querySelector('#movie_player video'); if (video) { video.requestPictureInPicture(); } }, - shortcut_play_pause: function() { + shortcut_play_pause: function () { var video = document.querySelector('#movie_player video'); if (video) { @@ -2262,42 +2279,42 @@ ImprovedTube.shortcuts = function() { } } }, - shortcut_stop: function() { + shortcut_stop: function () { var player = document.querySelector('#movie_player'); if (player) { player.stopVideo(); } }, - shortcut_next_video: function() { + shortcut_next_video: function () { var player = document.querySelector('#movie_player'); if (player && player.nextVideo) { player.nextVideo(); } }, - shortcut_prev_video: function() { + shortcut_prev_video: function () { var player = document.querySelector('#movie_player'); if (player && player.previousVideo) { player.previousVideo(); } }, - shortcut_seek_backward: function() { + shortcut_seek_backward: function () { var player = document.querySelector('#movie_player'); if (player && player.seekBy) { player.seekBy(-10); } }, - shortcut_seek_forward: function() { + shortcut_seek_forward: function () { var player = document.querySelector('#movie_player'); if (player && player.seekBy) { player.seekBy(10); } }, - shortcut_increase_volume: function() { + shortcut_increase_volume: function () { var player = document.querySelector('.html5-video-player'); if (player && player.setVolume && player.getVolume) { @@ -2306,7 +2323,7 @@ ImprovedTube.shortcuts = function() { showStatus(player, player.getVolume()); }, - shortcut_decrease_volume: function() { + shortcut_decrease_volume: function () { var player = document.querySelector('.html5-video-player'); if (player && player.setVolume && player.getVolume) { @@ -2315,14 +2332,14 @@ ImprovedTube.shortcuts = function() { showStatus(player, player.getVolume()); }, - shortcut_screenshot: function() { + shortcut_screenshot: function () { var player = document.querySelector('.html5-video-player'); if (player && player.setVolume && player.getVolume) { ImprovedTube.screenshot(); } }, - shortcut_increase_playback_speed: function() { + shortcut_increase_playback_speed: function () { var video = document.querySelector('#movie_player video'); if (video && video.playbackRate) { @@ -2331,7 +2348,7 @@ ImprovedTube.shortcuts = function() { showStatus(document.querySelector('#movie_player'), video.playbackRate); } }, - shortcut_decrease_playback_speed: function() { + shortcut_decrease_playback_speed: function () { var video = document.querySelector('#movie_player video'); if (video && video.playbackRate) { @@ -2340,42 +2357,42 @@ ImprovedTube.shortcuts = function() { showStatus(document.querySelector('#movie_player'), video.playbackRate); } }, - shortcut_go_to_search_box: function() { + shortcut_go_to_search_box: function () { var search = document.querySelector('#search'); if (search && search.focus) { search.focus(); } }, - shortcut_activate_fullscreen: function() { + shortcut_activate_fullscreen: function () { var player = document.querySelector('#movie_player'); if (player && player.toggleFullscreen) { player.toggleFullscreen(); } }, - shortcut_activate_captions: function() { + shortcut_activate_captions: function () { var player = document.querySelector('#movie_player'); if (player && player.querySelector('.ytp-subtitles-button')) { player.querySelector('.ytp-subtitles-button').click(); } }, - shortcut_like_shortcut: function() { + shortcut_like_shortcut: function () { var like = (document.querySelectorAll('.like-button-renderer-like-button')[0] || document.querySelectorAll('#menu #top-level-buttons ytd-toggle-button-renderer')[0]); if (like) { like.click(); } }, - shortcut_dislike_shortcut: function() { + shortcut_dislike_shortcut: function () { var like = (document.querySelectorAll('.like-button-renderer-dislike-button')[0] || document.querySelectorAll('#menu #top-level-buttons ytd-toggle-button-renderer')[1]); if (like) { like.click(); } }, - shortcut_dark_theme: function() { + shortcut_dark_theme: function () { if (document.documentElement.hasAttribute('dark')) { document.documentElement.removeAttribute('dark'); document.documentElement.removeAttribute('it-theme'); @@ -2384,7 +2401,7 @@ ImprovedTube.shortcuts = function() { document.documentElement.setAttribute('it-theme', 'true'); } }, - shortcut_custom_mini_player: function() { + shortcut_custom_mini_player: function () { ImprovedTube.storage.mini_player = !ImprovedTube.storage.mini_player; ImprovedTube.mini_player(); @@ -2413,7 +2430,7 @@ ImprovedTube.shortcuts = function() { window.dispatchEvent(new Event('resize')); } }, - shortcut_stats_for_nerds: function() { + shortcut_stats_for_nerds: function () { var player = document.querySelector('.html5-video-player'); if (player.isVideoInfoVisible()) { @@ -2422,7 +2439,7 @@ ImprovedTube.shortcuts = function() { player.showVideoInfo(); } }, - shortcut_toggle_cards: function() { + shortcut_toggle_cards: function () { document.documentElement.toggleAttribute('it-player-hide-cards'); } }; @@ -2459,7 +2476,7 @@ ImprovedTube.shortcuts = function() { 1.0 Keyboard -------------------------------------------------------------------------*/ - window.addEventListener('keydown', function(event) { + window.addEventListener('keydown', function (event) { keys = { key: event.key, keyCode: event.keyCode, @@ -2471,7 +2488,7 @@ ImprovedTube.shortcuts = function() { start(); }, true); - window.addEventListener('keyup', function(event) { + window.addEventListener('keyup', function (event) { keys = {}; }, true); @@ -2480,7 +2497,7 @@ ImprovedTube.shortcuts = function() { 2.0 Mouse -------------------------------------------------------------------------*/ - window.addEventListener('mousemove', function(event) { + window.addEventListener('mousemove', function (event) { hover = false; for (var i = 0, l = event.path.length; i < l; i++) { @@ -2493,7 +2510,7 @@ ImprovedTube.shortcuts = function() { capture: true }); - window.addEventListener('wheel', function(event) { + window.addEventListener('wheel', function (event) { wheel = event.deltaY; start('wheel'); @@ -2510,7 +2527,7 @@ ImprovedTube.shortcuts = function() { TODO: CONNECT & TEST ------------------------------------------------------------------------------*/ -document.addEventListener('ImprovedTubeBlacklist', function(event) { +document.addEventListener('ImprovedTubeBlacklist', function (event) { if (chrome && chrome.runtime) { chrome.runtime.sendMessage({ name: 'improvedtube-blacklist', @@ -2524,7 +2541,7 @@ document.addEventListener('ImprovedTubeBlacklist', function(event) { } }); -ImprovedTube.blacklist = function() { +ImprovedTube.blacklist = function () { if (ImprovedTube.storage.blacklist_activate !== true) { return false; } @@ -2544,7 +2561,7 @@ ImprovedTube.blacklist = function() { if (!channel_items[i].parentNode.querySelector('.improvedtube-add-to-blacklist')) { let button = document.createElement('div'); - button.addEventListener('click', function(event) { + button.addEventListener('click', function (event) { let video_id; event.preventDefault(); @@ -2578,7 +2595,7 @@ ImprovedTube.blacklist = function() { ImprovedTube.blacklist(); location.reload(); - } catch (err) {} + } catch (err) { } }, true); button.className = 'improvedtube-add-to-blacklist'; @@ -2609,7 +2626,7 @@ ImprovedTube.blacklist = function() { if (!video_items[i].querySelector('.improvedtube-add-to-blacklist')) { let button = document.createElement('div'); - button.addEventListener('click', function(event) { + button.addEventListener('click', function (event) { let video_id; event.preventDefault(); @@ -2653,7 +2670,7 @@ ImprovedTube.blacklist = function() { }; ImprovedTube.blacklist(); - } catch (err) {} + } catch (err) { } }, true); button.className = 'improvedtube-add-to-blacklist'; button.innerText = 'x'; @@ -2728,7 +2745,7 @@ ImprovedTube.blacklist = function() { TODO: CONNECT & TEST ------------------------------------------------------------------------------*/ -document.addEventListener('ImprovedTubeAnalyzer', function() { +document.addEventListener('ImprovedTubeAnalyzer', function () { if (items.analyzer_activation === true) { if (document.querySelector('ytd-channel-name a') && chrome && chrome.runtime) { chrome.runtime.sendMessage({ @@ -2750,7 +2767,7 @@ document.addEventListener('ImprovedTubeAnalyzer', function() { ImprovedTube.improvedtube_youtube_icon_wait = false; -ImprovedTube.improvedtube_youtube_icon_resize = function() { +ImprovedTube.improvedtube_youtube_icon_resize = function () { var iframe = document.querySelector('.it-btn__iframe'), icon = document.querySelector('.it-btn__icon'); @@ -2780,7 +2797,7 @@ ImprovedTube.improvedtube_youtube_icon_resize = function() { } }; -ImprovedTube.improvedtubeYoutubeIcon = function() { +ImprovedTube.improvedtubeYoutubeIcon = function () { if (window.self !== window.top) { return false; } @@ -2793,7 +2810,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function() { } if (this.improvedtube_youtube_icon_wait === false) { - this.improvedtube_youtube_icon_wait = setInterval(function() { + this.improvedtube_youtube_icon_wait = setInterval(function () { var option = ImprovedTube.storage.improvedtube_youtube_icon, parentNode, referenceNode; @@ -2840,7 +2857,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function() { button.className = 'it-btn'; button.innerHTML = '
'; - button.addEventListener('click', function() { + button.addEventListener('click', function () { event.preventDefault(); event.stopPropagation(); @@ -2853,7 +2870,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function() { y: button.offsetTop })); - setTimeout(function() { + setTimeout(function () { button.style.pointerEvents = ''; }); @@ -2907,14 +2924,14 @@ ImprovedTube.improvedtubeYoutubeIcon = function() { ImprovedTube.improvedtube_youtube_icon_resize(); } - button.addEventListener('mousedown', function(event) { + button.addEventListener('mousedown', function (event) { this.dataset.x = event.layerX; this.dataset.y = event.layerY; window.addEventListener('mousemove', move); }); - window.addEventListener('mouseup', function() { + window.addEventListener('mouseup', function () { button.classList.remove('it-btn--dragging'); window.removeEventListener('mousemove', move); @@ -2924,7 +2941,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function() { y: button.offsetTop })); - setTimeout(function() { + setTimeout(function () { button.style.pointerEvents = ''; }); }); @@ -2947,7 +2964,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function() { 10.2 DELETE YOUTUBE COOKIES -----------------------------------------------------------------------------*/ -ImprovedTube.deleteYoutubeCookies = function() { +ImprovedTube.deleteYoutubeCookies = function () { var cookies = document.cookie.split(';'); for (var i = 0, l = cookies.length; i < l; i++) { @@ -2958,7 +2975,7 @@ ImprovedTube.deleteYoutubeCookies = function() { document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; } - setTimeout(function() { + setTimeout(function () { location.reload(); }, 100); }; @@ -2968,7 +2985,7 @@ ImprovedTube.deleteYoutubeCookies = function() { 10.3 YOUTUBE LANGUAGE -----------------------------------------------------------------------------*/ -ImprovedTube.youtubeLanguage = function() { +ImprovedTube.youtubeLanguage = function () { var pref = ImprovedTube.getCookieValueByName('PREF'), hl = ImprovedTube.getParam(pref, 'hl'); @@ -2978,7 +2995,7 @@ ImprovedTube.youtubeLanguage = function() { ImprovedTube.setCookie('PREF', pref + '&hl=' + ImprovedTube.storage.youtube_language); } - setTimeout(function() { + setTimeout(function () { location.reload(); }, 100); }; @@ -2991,8 +3008,8 @@ ImprovedTube.youtubeLanguage = function() { 0.0 PAGE UPDATE LISTENER ------------------------------------------------------------------------------*/ -ImprovedTube.pageUpdateListener = function() { - window.addEventListener('yt-page-data-updated', function() { +ImprovedTube.pageUpdateListener = function () { + window.addEventListener('yt-page-data-updated', function () { ImprovedTube.played_before_blur = false; ImprovedTube.pageType(); @@ -3011,7 +3028,7 @@ ImprovedTube.pageUpdateListener = function() { }); }; -ImprovedTube.videoPageUpdate = function() { +ImprovedTube.videoPageUpdate = function () { if (this.page_type === 'video') { this.forcedTheaterMode(); this.playerHdThumbnail(); @@ -3055,11 +3072,11 @@ ImprovedTube.videoPageUpdate = function() { ImprovedTube.video_src = false; -ImprovedTube.videoUpdated = function() { +ImprovedTube.videoUpdated = function () { this.playerAds(); }; -ImprovedTube.timeupdate = function() { +ImprovedTube.timeupdate = function () { if (ImprovedTube.video_src !== this.src) { ImprovedTube.video_src = this.src; @@ -3067,7 +3084,7 @@ ImprovedTube.timeupdate = function() { } }; -ImprovedTube.playerUpdate = function() { +ImprovedTube.playerUpdate = function () { this.playerPlaybackSpeed(); this.subtitles(); this.mini_player(); @@ -3081,8 +3098,8 @@ ImprovedTube.playerUpdate = function() { 0.0 DOM CONTENT LOADED ------------------------------------------------------------------------------*/ -ImprovedTube.DOMContentLoaded = function() { - window.addEventListener('DOMContentLoaded', function() { +ImprovedTube.DOMContentLoaded = function () { + window.addEventListener('DOMContentLoaded', function () { ImprovedTube.youtubeHomePage(); ImprovedTube.collapseOfSubscriptionSections(); ImprovedTube.addScrollToTop(); @@ -3116,7 +3133,7 @@ ImprovedTube.DOMContentLoaded = function() { ImprovedTube.video_url = false; ImprovedTube.page_type = false; -ImprovedTube.pageType = function() { +ImprovedTube.pageType = function () { var href = location.href, type = ''; @@ -3141,7 +3158,7 @@ ImprovedTube.pageType = function() { ImprovedTube.focus = false; ImprovedTube.played_before_blur = false; -ImprovedTube.onfocus = function() { +ImprovedTube.onfocus = function () { this.onlyOnePlayerInstancePlaying(); this.playerAutopauseWhenSwitchingTabs(); }; @@ -3151,9 +3168,9 @@ ImprovedTube.onfocus = function() { 0.0 ONPLAY ------------------------------------------------------------------------------*/ -ImprovedTube.onplay = function() { - HTMLMediaElement.prototype.play = (function(original) { - return function() { +ImprovedTube.onplay = function () { + HTMLMediaElement.prototype.play = (function (original) { + return function () { this.removeEventListener('timeupdate', ImprovedTube.timeupdate); this.addEventListener('timeupdate', ImprovedTube.timeupdate); @@ -3176,8 +3193,8 @@ ImprovedTube.onplay = function() { 0.0 ONKEYDOWN ------------------------------------------------------------------------------*/ -ImprovedTube.onkeydown = function() { - window.addEventListener('keydown', function() { +ImprovedTube.onkeydown = function () { + window.addEventListener('keydown', function () { if ( document.querySelector('.html5-video-player') && document.querySelector('.html5-video-player').classList.contains('ad-showing') === false @@ -3192,8 +3209,8 @@ ImprovedTube.onkeydown = function() { 0.0 ONMOUSEDOWN ------------------------------------------------------------------------------*/ -ImprovedTube.onmousedown = function(event) { - window.addEventListener('mousedown', function(event) { +ImprovedTube.onmousedown = function (event) { + window.addEventListener('mousedown', function (event) { for (var i = 0, l = event.path.length; i < l; i++) { if ( document.querySelector('.html5-video-player') && @@ -3211,7 +3228,7 @@ ImprovedTube.onmousedown = function(event) { }; -ImprovedTube.getCookieValueByName = function(name) { +ImprovedTube.getCookieValueByName = function (name) { var match = document.cookie.match(new RegExp('([; ]' + name + '|^' + name + ')([^\\s;]*)', 'g')); if (match) { @@ -3222,7 +3239,7 @@ ImprovedTube.getCookieValueByName = function(name) { return ''; }; -ImprovedTube.getParam = function(query, name) { +ImprovedTube.getParam = function (query, name) { var params = query.split('&'), param = false; @@ -3241,7 +3258,7 @@ ImprovedTube.getParam = function(query, name) { } }; -ImprovedTube.getParams = function(query) { +ImprovedTube.getParams = function (query) { var params = query.split('&'), result = {}; @@ -3254,7 +3271,7 @@ ImprovedTube.getParams = function(query) { return result; }; -ImprovedTube.setCookie = function(name, value) { +ImprovedTube.setCookie = function (name, value) { var date = new Date(); date.setTime(date.getTime() + 3.154e+10); @@ -3262,7 +3279,7 @@ ImprovedTube.setCookie = function(name, value) { document.cookie = name + '=' + value + '; path=/; domain=.youtube.com; expires=' + date.toGMTString(); }; -ImprovedTube.createPlayerButton = function(node, options) { +ImprovedTube.createPlayerButton = function (node, options) { var controls = document.querySelector('.html5-video-player .ytp-left-controls'); if (controls) { @@ -3294,7 +3311,7 @@ ImprovedTube.createPlayerButton = function(node, options) { } }; -ImprovedTube.reverse = function(parent) { +ImprovedTube.reverse = function (parent) { for (var i = 1, l = parent.childNodes.length; i < l; i++) { parent.insertBefore(parent.childNodes[i], parent.firstChild); } @@ -3305,7 +3322,7 @@ ImprovedTube.reverse = function(parent) { 0.0 INITIALIZATION ------------------------------------------------------------------------------*/ -ImprovedTube.init = function() { +ImprovedTube.init = function () { this.playerH264(); this.player60fps(); this.playerSDR(); @@ -3316,7 +3333,7 @@ ImprovedTube.init = function() { this.onkeydown(); this.onmousedown(); - window.addEventListener('load', function() { + window.addEventListener('load', function () { ImprovedTube.hdThumbnails(); ImprovedTube.channelDefaultTab(); }); From fed2866a1ade6333bfd24795b9594bfefa5d0b2a Mon Sep 17 00:00:00 2001 From: Marc Wouters Date: Mon, 22 Feb 2021 18:42:05 +0100 Subject: [PATCH 0048/1224] UPDATE popout player margin for black borders; --- background.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/background.js b/background.js index dc3c1d847..031efc3a8 100644 --- a/background.js +++ b/background.js @@ -18,6 +18,8 @@ var locale_code = 'en', browser_icon = false; +var POPOUT_PADDING_WIDTH = 16; +var POPOUT_PADDING_HEIGHT = 38; /*--------------------------------------------------------------- # FUNCTIONS @@ -262,8 +264,8 @@ chrome.runtime.onMessage.addListener(function (request, sender) { tabId: tab.id, type: 'popup', focused: true, - width: request.data.width, - height: request.data.height + width: request.data.width + POPOUT_PADDING_WIDTH, + height: request.data.height + POPOUT_PADDING_HEIGHT }); // WORKAROUND playlist on popout not resuming from last video timestamp From be79173319e3a2016434b9bd0ec5a4ef9658d9a8 Mon Sep 17 00:00:00 2001 From: unfitref Date: Wed, 24 Feb 2021 16:05:42 +0900 Subject: [PATCH 0049/1224] Fix rotation button behavior --- youtube-scripts.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 02f78da18..7bc5fb915 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -89,7 +89,7 @@ var ImprovedTube = {}; 1.1 YOUTUBE HOME PAGE ------------------------------------------------------------------------------*/ -ImprovedTube.youtubeHomePage = function() { +ImprovedTube.youtubeHomePage = function () { var option = this.storage.youtube_home_page; if ( @@ -112,7 +112,7 @@ ImprovedTube.youtubeHomePage = function() { } node.href = option; - node.addEventListener('click', function() { + node.addEventListener('click', function () { if ( this.data && this.data.commandMetadata && @@ -1809,7 +1809,7 @@ ImprovedTube.playerRotateButton = function () { transform += 'rotate(' + rotate + 'deg)'; if (rotate == 90 || rotate == 270) { - transform += ' scale(' + video.offsetHeight / video.offsetWidth + ')'; + transform += ' scale(' + video.offsetWidth / video.offsetHeight + ')'; } //video.style.transform = transform; From f3ea6eb1665997dfc09e428362881c659a2398b5 Mon Sep 17 00:00:00 2001 From: Marc Wouters Date: Wed, 24 Feb 2021 13:46:30 +0100 Subject: [PATCH 0050/1224] FEATURE add shortcut for opening video in popout player; --- _locales/messages.json | 3 ++ popup.js | 4 +++ youtube-scripts.js | 81 +++++++++++++++++++++++------------------- 3 files changed, 52 insertions(+), 36 deletions(-) diff --git a/_locales/messages.json b/_locales/messages.json index 295149896..090114d76 100644 --- a/_locales/messages.json +++ b/_locales/messages.json @@ -179,6 +179,9 @@ "customMiniPlayer": { "message": "Aangepaste minispeler" }, + "openPopupPlayer": { + "message": "Open de video in een nieuw venster" + }, "cyan": { "message": "Groenblauw" }, diff --git a/popup.js b/popup.js index 1da9f2815..ede4f6a4c 100644 --- a/popup.js +++ b/popup.js @@ -2598,6 +2598,10 @@ Menu.main.section.shortcuts = { shortcut_toggle_cards: { type: 'shortcut', label: 'toggleCards' + }, + shortcut_popup_player: { + type: 'shortcut', + label: 'openPopupPlayer' } }, diff --git a/youtube-scripts.js b/youtube-scripts.js index 02f78da18..5780cc460 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -89,7 +89,7 @@ var ImprovedTube = {}; 1.1 YOUTUBE HOME PAGE ------------------------------------------------------------------------------*/ -ImprovedTube.youtubeHomePage = function() { +ImprovedTube.youtubeHomePage = function () { var option = this.storage.youtube_home_page; if ( @@ -112,7 +112,7 @@ ImprovedTube.youtubeHomePage = function() { } node.href = option; - node.addEventListener('click', function() { + node.addEventListener('click', function () { if ( this.data && this.data.commandMetadata && @@ -1847,40 +1847,7 @@ ImprovedTube.playerPopupButton = function () { id: 'it-popup-player-button', html: '', opacity: 1, - onclick: function (event) { - node.pauseVideo(); - - var url = new URL(window.location.href); - // Retrieve playlist identification parameter to check if single video or playlist - var playlistId = url.searchParams.get('list'); - var startTime = parseInt(node.getCurrentTime()); - - // Build Embedded url - var popOutUrl = location.protocol + '//www.youtube.com/embed/' - + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) - + '?start=' + startTime - + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'); - - - if (playlistId) { - // Use listType playlist and add id of the playlist - popOutUrl += '&listType=playlist&list=' + playlistId; - // Add index, this defines wich item of the playlist to start playing, if empty first item starts playing - popOutUrl += '&index=' + url.searchParams.get('index'); - } - - // Use dispatchEvent for sending it through the Chrome Runtime - // This makes it possible to open the popup player without address bar - // See 'background.js' for further implementation - document.dispatchEvent(new CustomEvent('OpenPopupPlayer', { - detail: { - url: popOutUrl, - width: node.offsetWidth, - height: node.offsetHeight, - startTime: startTime - } - })); - }, + onclick: ImprovedTube.createPopUpWindow, title: 'Popup' }); } else if (document.querySelector('.it-popup-player-button')) { @@ -1888,6 +1855,45 @@ ImprovedTube.playerPopupButton = function () { } }; +ImprovedTube.createPopUpWindow = function () { + if (!node) { + var node = document.querySelector('.html5-video-player'); + } + + node.pauseVideo(); + + var url = new URL(window.location.href); + // Retrieve playlist identification parameter to check if single video or playlist + var playlistId = url.searchParams.get('list'); + var startTime = parseInt(node.getCurrentTime()); + + // Build Embedded url + var popOutUrl = location.protocol + '//www.youtube.com/embed/' + + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + + '?start=' + startTime + + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'); + + + if (playlistId) { + // Use listType playlist and add id of the playlist + popOutUrl += '&listType=playlist&list=' + playlistId; + // Add index, this defines wich item of the playlist to start playing, if empty first item starts playing + popOutUrl += '&index=' + url.searchParams.get('index'); + } + + // Use dispatchEvent for sending it through the Chrome Runtime + // This makes it possible to open the popup player without address bar + // See 'background.js' for further implementation + document.dispatchEvent(new CustomEvent('OpenPopupPlayer', { + detail: { + url: popOutUrl, + width: node.offsetWidth, + height: node.offsetHeight, + startTime: startTime + } + })); +} + document.addEventListener('OpenPopupPlayer', function (event) { if (chrome && chrome.runtime) { chrome.runtime.sendMessage({ @@ -2441,6 +2447,9 @@ ImprovedTube.shortcuts = function () { }, shortcut_toggle_cards: function () { document.documentElement.toggleAttribute('it-player-hide-cards'); + }, + shortcut_popup_player: function () { + ImprovedTube.createPopUpWindow(); } }; From ea3981f8caf4703500999227f4c360a85380290c Mon Sep 17 00:00:00 2001 From: Marc Wouters Date: Wed, 24 Feb 2021 13:48:58 +0100 Subject: [PATCH 0051/1224] UPDATE translation; --- _locales/en/messages.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index f91275c80..1643e3546 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -179,6 +179,9 @@ "customMiniPlayer": { "message": "Custom Mini-Player" }, + "openPopupPlayer": { + "message": "Open video/playlist in a new window" + }, "cyan": { "message": "Cyan" }, From 4f552e5e86fd0e6e126be747e7943b41e162404c Mon Sep 17 00:00:00 2001 From: Marc Wouters Date: Wed, 24 Feb 2021 18:22:19 +0100 Subject: [PATCH 0052/1224] UPDATE changed permission for TABS to optional; --- manifest.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 9a89a1560..b96fe8fb5 100644 --- a/manifest.json +++ b/manifest.json @@ -76,12 +76,12 @@ "permissions": [ "https://www.youtube.com/", "contextMenus", - "storage", - "tabs" + "storage" ], "optional_permissions": [ "downloads", - "https://*.youtube.com/*" + "https://*.youtube.com/*", + "tabs" ], "update_url": "https://clients2.google.com/service/update2/crx" } \ No newline at end of file From aac02c58288b9258e22148d8a0738d1e0d5cf3c6 Mon Sep 17 00:00:00 2001 From: niceRAM Date: Thu, 25 Feb 2021 15:58:34 +0800 Subject: [PATCH 0053/1224] update "_locales\zh_CN\messages.json" --- _locales/zh_CN/messages.json | 42 ++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index f4167c1bc..f5c7a0327 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -24,7 +24,7 @@ "message": "启用功能" }, "addScrollToTop": { - "message": "返回顶部按钮" + "message": "增加【返回顶部】按钮" }, "ads": { "message": "广告" @@ -138,7 +138,7 @@ "message": "分类" }, "channel": { - "message": "电影和节目" + "message": "频道" }, "channels": { "message": "频道" @@ -159,7 +159,7 @@ "message": "评论" }, "confirmationBeforeClosing": { - "message": "页面关闭前提示" + "message": "页面关闭确认" }, "cookies": { "message": "Cookies" @@ -198,7 +198,7 @@ "message": "视频减速" }, "decreaseVolume": { - "message": "-5%音量" + "message": "降低音量" }, "deepOrange": { "message": "深橙色" @@ -228,7 +228,7 @@ "message": "设备" }, "dim": { - "message": "遮罩程度" + "message": "遮罩层厚度" }, "disabled": { "message": "停用" @@ -267,10 +267,10 @@ "message": "扩展" }, "file": { - "message": "File" + "message": "文件" }, "filters": { - "message": "过滤" + "message": "滤镜" }, "fitToWindow": { "message": "窗口自适应" @@ -294,7 +294,7 @@ "message": "强制修改音量" }, "foundABug": { - "message": "发现了一个 Bug?" + "message": "遇到了Bug?" }, "fullWindow": { "message": "全屏" @@ -306,7 +306,7 @@ "message": "GitHub" }, "goToSearchBox": { - "message": "转到搜索栏" + "message": "转到搜索框" }, "gpu": { "message": "GPU" @@ -408,13 +408,13 @@ "message": "视频加速" }, "increaseVolume": { - "message": "+5%音量" + "message": "增加音量" }, "indigo": { "message": "靛青色" }, "items": { - "message": "Items" + "message": "项目" }, "languages": { "message": "语言" @@ -444,16 +444,16 @@ "message": "列表" }, "liveChat": { - "message": "实时聊天" + "message": "实时聊天窗" }, "liveChatType": { - "message": "事实聊天类型" + "message": "实时聊天窗类型" }, "loudnessNormalization": { "message": "音量标准化" }, "markWatchedVideos": { - "message": "标记已观看的视频" + "message": "标记为已观看" }, "mixer": { "message": "混音器" @@ -477,13 +477,13 @@ "message": "夜色" }, "noActiveFeatures": { - "message": "没有已启用功能" + "message": "没有已启用的功能" }, "none": { "message": "无" }, "noOpenVideoTabs": { - "message": "没有打开视频标签" + "message": "没有已打开的视频标签" }, "normal": { "message": "正常" @@ -546,7 +546,7 @@ "message": "稍后观看" }, "playPause": { - "message": "播放 / 暂停" + "message": "播放/暂停" }, "popupPlayer": { "message": "弹出播放器" @@ -564,7 +564,7 @@ "message": "下一个视频" }, "primaryColor": { - "message": "Primary color" + "message": "主色调" }, "purple": { "message": "紫色" @@ -582,7 +582,7 @@ "message": "红色" }, "redDislikeButton": { - "message": "踩按钮显示为红色" + "message": "将【踩一下】设置为红色" }, "relatedVideos": { "message": "相关视频" @@ -792,7 +792,7 @@ "message": "观看时间" }, "whenTabIsChanged": { - "message": "标签更改时" + "message": "切换标签时" }, "white": { "message": "白色" @@ -807,7 +807,7 @@ "message": "Youtube标题(右)" }, "youtubeHomePage": { - "message": "YouTube 主页" + "message": "YouTube默认主页" }, "youtubeLanguage": { "message": "YouTube 语言" From a895ffef020ed61ebdb6eebc8c083fb3c19ab988 Mon Sep 17 00:00:00 2001 From: unfitref Date: Thu, 25 Feb 2021 17:17:31 +0900 Subject: [PATCH 0054/1224] Fix rotation button behavior! --- youtube-scripts.js | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 7bc5fb915..c6286f48c 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1794,26 +1794,27 @@ ImprovedTube.playerRotateButton = function () { html: '', opacity: 1, onclick: function () { - var video = document.querySelector('.html5-video-player video'), + var video = node.querySelector('video'), + player = node, transform = '', rotate = (document.querySelector('.it-rotate-styles') && document.querySelector('.it-rotate-styles').textContent.match(/rotate\([0-9.]+deg\)/g) || [''])[0]; - rotate = Number((rotate.match(/[0-9.]+/g) || [])[0]) || 0; - if (rotate < 270 && rotate % 90 == 0) { - rotate = rotate + 90; - } else { - rotate = 0; - } + var nextRotate = (rotate < 270 && rotate % 90 == 0) ? rotate + 90 : 0; - transform += 'rotate(' + rotate + 'deg)'; + transform += 'rotate(' + nextRotate + 'deg)'; - if (rotate == 90 || rotate == 270) { - transform += ' scale(' + video.offsetWidth / video.offsetHeight + ')'; - } + if (nextRotate == 90 || nextRotate == 270) { + var isVerticalVideo = video.videoHeight > video.videoWidth; - //video.style.transform = transform; + var playerLongSide = isVerticalVideo ? player.clientWidth : player.clientHeight; + var playerShortSide = isVerticalVideo ? player.clientHeight : player.clientWidth; + + var videoScaleForPlayerSize = playerLongSide / playerShortSide; + transform += ' scale(' + videoScaleForPlayerSize + ')'; + } + //video.style.transform = transform; if (!document.querySelector('.it-rotate-styles')) { var styles = document.createElement('style'); From cc97036457e5ae1c4f1db6a8058386c695ea6ee3 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 26 Feb 2021 16:27:21 +0300 Subject: [PATCH 0055/1224] Updated GA --- background.js | 89 ++++------ manifest.json | 10 +- popup.css | 83 +-------- popup.js | 287 +++++++++++++++++++++++++++++- youtube-scripts.js | 433 ++++++++++++++++++++------------------------- 5 files changed, 515 insertions(+), 387 deletions(-) diff --git a/background.js b/background.js index 031efc3a8..bac6d0727 100644 --- a/background.js +++ b/background.js @@ -32,9 +32,9 @@ function isset(variable) { function getTranslations(path) { var xhr = new XMLHttpRequest(); - xhr.addEventListener('load', function () { + xhr.addEventListener('load', function() { if (chrome && chrome.tabs) { - chrome.tabs.query({}, function (tabs) { + chrome.tabs.query({}, function(tabs) { for (var i = 0, l = tabs.length; i < l; i++) { if (tabs[i].hasOwnProperty('url')) { chrome.tabs.sendMessage(tabs[i].id, { @@ -52,7 +52,7 @@ function getTranslations(path) { }); }); - xhr.addEventListener('error', function () { + xhr.addEventListener('error', function() { getTranslations('_locales/en/messages.json'); }); @@ -97,7 +97,7 @@ chrome.contextMenus.create({ contexts: ['browser_action'] }); -chrome.contextMenus.onClicked.addListener(function (event) { +chrome.contextMenus.onClicked.addListener(function(event) { if (event.menuItemId === '1111') { window.open('https://www.improvedtube.com/donate'); } else if (event.menuItemId === '1112') { @@ -112,7 +112,7 @@ chrome.contextMenus.onClicked.addListener(function (event) { # MESSAGE LISTENER ---------------------------------------------------------------*/ -chrome.runtime.onMessage.addListener(function (request, sender) { +chrome.runtime.onMessage.addListener(function(request, sender) { if (isset(request) && typeof request === 'object') { if (request.enabled === true && browser_icon !== 'always') { chrome.browserAction.setIcon({ @@ -130,7 +130,7 @@ chrome.runtime.onMessage.addListener(function (request, sender) { date = new Date().toDateString(), hours = new Date().getHours() + ':00'; - chrome.storage.local.get(function (items) { + chrome.storage.local.get(function(items) { if (!items.analyzer) { items.analyzer = {}; } @@ -156,7 +156,7 @@ chrome.runtime.onMessage.addListener(function (request, sender) { } if (request.name === 'improvedtube-blacklist') { - chrome.storage.local.get(function (items) { + chrome.storage.local.get(function(items) { if (!items.blacklist || typeof items.blacklist !== 'object') { items.blacklist = {}; } @@ -189,7 +189,7 @@ chrome.runtime.onMessage.addListener(function (request, sender) { } if (request.name === 'improvedtube-watched') { - chrome.storage.local.get(function (items) { + chrome.storage.local.get(function(items) { if (!items.watched || typeof items.watched !== 'object') { items.watched = {}; } @@ -214,7 +214,7 @@ chrome.runtime.onMessage.addListener(function (request, sender) { chrome.permissions.request({ permissions: ['downloads'], origins: ['https://www.youtube.com/*'] - }, function (granted) { + }, function(granted) { if (granted) { try { var blob = new Blob([JSON.stringify(request.value)], { @@ -242,7 +242,7 @@ chrome.runtime.onMessage.addListener(function (request, sender) { } if (request.name === 'improvedtube-play') { - chrome.tabs.query({}, function (tabs) { + chrome.tabs.query({}, function(tabs) { for (var i = 0, l = tabs.length; i < l; i++) { if (tabs[i].hasOwnProperty('url')) { chrome.tabs.sendMessage(tabs[i].id, { @@ -254,46 +254,16 @@ chrome.runtime.onMessage.addListener(function (request, sender) { }); } - if (request.name === 'open-popup-player') { - chrome.tabs.create({ - url: request.data.url, - active: true - }, function (tab) { - // After the tab has been created, open a window to inject the tab - chrome.windows.create({ - tabId: tab.id, - type: 'popup', - focused: true, - width: request.data.width + POPOUT_PADDING_WIDTH, - height: request.data.height + POPOUT_PADDING_HEIGHT - }); - - // WORKAROUND playlist on popout not resuming from last video timestamp - // If start time was found in the request data skip the video to that time - if (request.data.startTime) { - chrome.tabs.executeScript(tab.id, { - code: - ` - window.onload = function () { - window.document.querySelector('video').currentTime =` + request.data.startTime + ` - window.onload = null; - }; - ` - }); - } - }); - } - if (isset(request.export)) { - chrome.storage.local.get(function (data) { + chrome.storage.local.get(function(data) { chrome.permissions.request({ permissions: ['downloads'], origins: ['https://www.youtube.com/*'] - }, function (granted) { + }, function(granted) { if (granted) { var blob = new Blob([JSON.stringify(data)], { - type: 'application/octet-stream' - }), + type: 'application/octet-stream' + }), date = new Date(); chrome.downloads.download({ @@ -313,7 +283,7 @@ chrome.runtime.onMessage.addListener(function (request, sender) { # STORAGE CHANGE LISTENER ---------------------------------------------------------------*/ -chrome.storage.onChanged.addListener(function (changes) { +chrome.storage.onChanged.addListener(function(changes) { if (isset(changes.improvedtube_language)) { locale_code = changes.improvedtube_language.newValue; } @@ -323,8 +293,6 @@ chrome.storage.onChanged.addListener(function (changes) { } browserActionIcon(); - - _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); }); @@ -332,7 +300,7 @@ chrome.storage.onChanged.addListener(function (changes) { # INITIALIZATION ---------------------------------------------------------------*/ -chrome.storage.local.get(function (items) { +chrome.storage.local.get(function(items) { if (isset(items.improvedtube_language)) { locale_code = items.improvedtube_language; } @@ -342,8 +310,20 @@ chrome.storage.local.get(function (items) { } browserActionIcon(); +}); + +chrome.storage.local.get(function(items) { + var a = new Date().getTime(); + + if (a - (items.ga || 0) >= 86400000) { + _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); + + chrome.storage.local.set({ + ga: a + }); + } - _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); + console.log(a - (items.ga || 0)); }); @@ -360,7 +340,7 @@ chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); var _gaq = _gaq || []; -/*(function() { +(function() { var ga = document.createElement('script'); _gaq.push(['_setAccount', 'UA-88354155-1']); @@ -371,11 +351,11 @@ var _gaq = _gaq || []; ga.src = 'https://ssl.google-analytics.com/ga.js'; document.body.appendChild(ga); -})();*/ +})(); -chrome.tabs.onActivated.addListener(function (activeInfo) { - chrome.tabs.query({}, function (tabs) { +chrome.tabs.onActivated.addListener(function(activeInfo) { + chrome.tabs.query({}, function(tabs) { chrome.tabs.sendMessage(activeInfo.tabId, { action: 'focus' }); @@ -390,5 +370,4 @@ chrome.tabs.onActivated.addListener(function (activeInfo) { } } }); -}); - +}); \ No newline at end of file diff --git a/manifest.json b/manifest.json index 9a89a1560..5509c12ed 100644 --- a/manifest.json +++ b/manifest.json @@ -1,10 +1,9 @@ { "manifest_version": 2, - "name": "Improve YouTube! (testing)", + "name": "Improve YouTube! (Open-Source for YouTube)", "short_name": "ImprovedTube", - "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Colors ad-block Playback Speed Style Playlist Channel H.264 Auto HD", - "version": "3.164", - "version_name": "3.164-testing", + "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", + "version": "3.167", "default_locale": "en", "icons": { "128": "assets/icons/128.png", @@ -76,8 +75,7 @@ "permissions": [ "https://www.youtube.com/", "contextMenus", - "storage", - "tabs" + "storage" ], "optional_permissions": [ "downloads", diff --git a/popup.css b/popup.css index ad5a94e66..5b035fa02 100644 --- a/popup.css +++ b/popup.css @@ -1899,70 +1899,10 @@ html[it-it-analyzer='false'] .satus-folder--analyzer height: 80px; padding: 8px 16px; - color: var(--satus-theme-main-text); - border-radius: 8px; - background: #0f1911; - box-shadow: 0 0 3px rgba(0,0,0,.1); - align-items: center; justify-content: space-between; } -.satus-button--ad .satus-button__label -{ - font-size: 22px; - font-weight: 700; - - color: rgba(255,255,255,.85); - text-shadow: 2px 1px 2px rgba(0,0,0,.6); -} - - -@keyframes satusSwitchDark -{ - 0% - { - transform: translate(0, 0); - } - 33% - { - transform: translate(20px, 10px); - } - 66% - { - transform: translate(10px, -10px); - } - 100% - { - transform: translate(0, 0); - } -} - -.satus-button--ad::before -{ - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - opacity: 1; - animation-name: satusSwitchDark; - animation-duration: 8s; - animation-timing-function: linear; - animation-iteration-count: infinite; - pointer-events: none; - - background: radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%) !important; - background-repeat: no-repeat !important; - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px !important; - background-size: 50px 50px, 50px 50px, 100px 100px, 75px 75px !important; - - filter: blur(8px); -} - html[it-improvedtube-home='list'] .satus-main .satus-button.satus-button--ad { position: relative; @@ -1970,25 +1910,4 @@ html[it-improvedtube-home='list'] .satus-main .satus-button.satus-button--ad left: 0; margin: 16px; -} - -.satus-button--ad:after -{ - position: absolute; - top: 0; - left: -100%; - - width: 100%; - height: 100%; - - content: ''; - transition: .5s; - transition-delay: .2s; - - background: linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent); -} - -.satus-button--ad:hover:after -{ - left: 100%; -} +} \ No newline at end of file diff --git a/popup.js b/popup.js index ede4f6a4c..3fe91e35c 100644 --- a/popup.js +++ b/popup.js @@ -1178,10 +1178,291 @@ Menu.main = { footer: { type: 'button', class: 'satus-button--ad', - label: 'DARK MODE', - title: 'Dark Mode', + title: 'Frame By Frame', + innerHTML: ` +
+
+
+ +
Frame By Frame
+
Frame By Frame
+ +
For videos
+
For videos
+ +
+ + `, onclick: function() { - window.open('https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl', '_blank'); + window.open('https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh', '_blank'); } }, diff --git a/youtube-scripts.js b/youtube-scripts.js index 5780cc460..c2f27ee7a 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -89,7 +89,7 @@ var ImprovedTube = {}; 1.1 YOUTUBE HOME PAGE ------------------------------------------------------------------------------*/ -ImprovedTube.youtubeHomePage = function () { +ImprovedTube.youtubeHomePage = function() { var option = this.storage.youtube_home_page; if ( @@ -112,7 +112,7 @@ ImprovedTube.youtubeHomePage = function () { } node.href = option; - node.addEventListener('click', function () { + node.addEventListener('click', function() { if ( this.data && this.data.commandMetadata && @@ -137,7 +137,7 @@ ImprovedTube.youtubeHomePage = function () { 1.2 COLLAPSE OF SUBSCRIPTION SECTION ------------------------------------------------------------------------------*/ -ImprovedTube.collapseOfSubscriptionSections = function () { +ImprovedTube.collapseOfSubscriptionSections = function() { if (/\/feed\/subscriptions/.test(location.href)) { if (this.storage.collapse_of_subscription_sections === true) { var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'); @@ -150,7 +150,7 @@ ImprovedTube.collapseOfSubscriptionSections = function () { button.className = 'it-section-collapse'; button.innerHTML = ''; button.section = sections[i]; - button.addEventListener('click', function () { + button.addEventListener('click', function() { var section = this.section, content = section.querySelector('.grid-subheader + #contents, .shelf-title-table + .multirow-shelf'); @@ -159,7 +159,7 @@ ImprovedTube.collapseOfSubscriptionSections = function () { content.style.transition = 'height 150ms'; } - setTimeout(function () { + setTimeout(function() { section.classList.toggle('it-section-collapsed'); }); }); @@ -189,14 +189,14 @@ ImprovedTube.collapseOfSubscriptionSections = function () { 1.3 ADD "SCROLL TO TOP" ------------------------------------------------------------------------------*/ -ImprovedTube.addScrollToTop = function (is_update) { +ImprovedTube.addScrollToTop = function(is_update) { if (this.storage.add_scroll_to_top === true) { var button = document.createElement('div'); button.id = 'it-scroll-to-top'; button.innerHTML = ''; - button.addEventListener('click', function () { + button.addEventListener('click', function() { window.scrollTo(0, 0); }); @@ -214,7 +214,7 @@ ImprovedTube.addScrollToTop = function (is_update) { } }; -ImprovedTube.scroll = function () { +ImprovedTube.scroll = function() { if (window.scrollY > window.innerHeight / 2) { document.documentElement.setAttribute('it-show-scroll-to-top', true); } else { @@ -227,8 +227,8 @@ ImprovedTube.scroll = function () { 1.4 CONFIRMATION BEFORE CLOSING ------------------------------------------------------------------------------*/ -ImprovedTube.confirmationBeforeClosing = function () { - window.onbeforeunload = function () { +ImprovedTube.confirmationBeforeClosing = function() { + window.onbeforeunload = function() { if (ImprovedTube.storage.confirmation_before_closing === true) { return 'You have attempted to leave this page. Are you sure?'; } @@ -242,7 +242,7 @@ ImprovedTube.confirmationBeforeClosing = function () { TODO: OPTIMIZE ------------------------------------------------------------------------------*/ -ImprovedTube.markWatchedVideos = function () { +ImprovedTube.markWatchedVideos = function() { if (ImprovedTube.storage.mark_watched_videos === true) { var video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); @@ -253,7 +253,7 @@ ImprovedTube.markWatchedVideos = function () { button.className = 'it-mark-watched' + (this.storage.watched && this.storage.watched[this.getParam(new URL(video_items[i].href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); button.innerHTML = ''; - button.addEventListener('click', function (event) { + button.addEventListener('click', function(event) { var watched = !this.classList.contains('watched'); event.preventDefault(); @@ -314,7 +314,7 @@ ImprovedTube.markWatchedVideos = function () { } }; -document.addEventListener('ImprovedTubeWatched', function (event) { +document.addEventListener('ImprovedTubeWatched', function(event) { if (chrome && chrome.runtime) { chrome.runtime.sendMessage({ name: 'improvedtube-watched', @@ -334,7 +334,7 @@ document.addEventListener('ImprovedTubeWatched', function (event) { TODO: FIX ------------------------------------------------------------------------------*/ -ImprovedTube.onlyOnePlayerInstancePlaying = function () { +ImprovedTube.onlyOnePlayerInstancePlaying = function() { var video = document.querySelector('.html5-video-player video'); if (this.storage.only_one_player_instance_playing === true && video) { @@ -354,7 +354,7 @@ ImprovedTube.onlyOnePlayerInstancePlaying = function () { 1.7 HD THUMBNAILS ------------------------------------------------------------------------------*/ -ImprovedTube.hdThumbnails = function () { +ImprovedTube.hdThumbnails = function() { if (this.storage.hd_thumbnails === true) { var images = document.querySelectorAll('img'); @@ -362,7 +362,7 @@ ImprovedTube.hdThumbnails = function () { if (/(hqdefault\.jpg|hq720.jpg)+/.test(images[i].src) && !images[i].dataset.defaultSrc) { images[i].dataset.defaultSrc = images[i].src; - images[i].onload = function () { + images[i].onload = function() { if (this.naturalHeight <= 90) { this.src = this.dataset.defaultSrc; } @@ -395,7 +395,7 @@ ImprovedTube.hdThumbnails = function () { 2.1.1 FORCED THEATER MODE ------------------------------------------------------------------------------*/ -ImprovedTube.forcedTheaterMode = function () { +ImprovedTube.forcedTheaterMode = function() { if (window.self === window.top && (ImprovedTube.storage.forced_theater_mode === true || ImprovedTube.storage.player_size === 'fit_to_window')) { var button = document.querySelector('button.ytp-size-button'); @@ -412,7 +412,7 @@ ImprovedTube.forcedTheaterMode = function () { TODO: OPTIMIZED ------------------------------------------------------------------------------*/ -ImprovedTube.playerHdThumbnail = function () { +ImprovedTube.playerHdThumbnail = function() { if (this.storage.player_hd_thumbnail === true) { if (this.player_hd_thumbnail_wait !== false) { clearInterval(ImprovedTube.player_hd_thumbnail_wait); @@ -420,7 +420,7 @@ ImprovedTube.playerHdThumbnail = function () { ImprovedTube.player_hd_thumbnail_wait = false; } - this.player_hd_thumbnail_wait = setInterval(function () { + this.player_hd_thumbnail_wait = setInterval(function() { var thumbnail = document.querySelector('.ytp-cued-thumbnail-overlay-image'); if (thumbnail && thumbnail.style.backgroundImage) { @@ -442,13 +442,13 @@ ImprovedTube.playerHdThumbnail = function () { 2.1.3 ALWAYS SHOW PROGRESS BAR ------------------------------------------------------------------------------*/ -ImprovedTube.alwaysShowProgressBar = function () { +ImprovedTube.alwaysShowProgressBar = function() { if (ImprovedTube.always_show_progress_bar_interval) { clearInterval(ImprovedTube.always_show_progress_bar_interval); } if (this.storage.always_show_progress_bar === true) { - ImprovedTube.always_show_progress_bar_interval = setInterval(function () { + ImprovedTube.always_show_progress_bar_interval = setInterval(function() { var player = document.querySelector('.html5-video-player'); if (player && player.classList.contains('ytp-autohide')) { @@ -509,13 +509,13 @@ TODO: TEST ImprovedTube.livechat_wait = false; ImprovedTube.livechat_url = false; -ImprovedTube.livechat = function () { +ImprovedTube.livechat = function() { if ( document.documentElement.getAttribute('it-page-type') === 'video' && this.storage.livechat === 'collapsed' && this.livechat_wait === false ) { - this.livechat_wait = setInterval(function () { + this.livechat_wait = setInterval(function() { var button = document.querySelector('#chat:not([collapsed]) #show-hide-button paper-button'), expander = document.querySelector('#watch-sidebar-live-chat .yt-uix-expander'); @@ -533,7 +533,7 @@ ImprovedTube.livechat = function () { button.addEventListener('mousedown', click); button.addEventListener('touchdown', click); - setTimeout(function () { + setTimeout(function() { if (ImprovedTube.livechat_url !== location.href) { button.click(); } @@ -554,10 +554,10 @@ TODO: TEST ImprovedTube.related_videos_wait = false; -ImprovedTube.relatedVideos = function () { +ImprovedTube.relatedVideos = function() { if (this.storage.related_videos === 'collapsed') { if (!this.related_videos_wait) { - this.related_videos_wait = setInterval(function () { + this.related_videos_wait = setInterval(function() { if ( document.querySelector('#related.ytd-watch-flexy') || document.querySelector('#watch7-sidebar-contents') @@ -575,7 +575,7 @@ ImprovedTube.relatedVideos = function () { button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; button.innerHTML = 'Show moreShow less'; - button.onclick = function () { + button.onclick = function() { document.documentElement.classList.toggle('related-videos-collapsed'); }; @@ -590,7 +590,7 @@ ImprovedTube.relatedVideos = function () { this.related_videos_wait = false; - setTimeout(function () { + setTimeout(function() { var button = document.getElementById('improvedtube-collapsed-related-videos'); if (button) { @@ -611,7 +611,7 @@ ImprovedTube.relatedVideos = function () { TODO: TEST ------------------------------------------------------------------------------*/ -ImprovedTube.howLongAgoTheVideoWasUploaded = function () { +ImprovedTube.howLongAgoTheVideoWasUploaded = function() { if (ImprovedTube.storage.how_long_ago_the_video_was_uploaded === true) { function timeSince(date) { var seconds = Math.floor((new Date() - new Date(date)) / 1000), @@ -640,7 +640,7 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { return Math.floor(seconds) + ' seconds ago'; } - var waiting_channel_link = setInterval(function () { + var waiting_channel_link = setInterval(function() { var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info a')) { @@ -648,7 +648,7 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { var xhr = new XMLHttpRequest(); - xhr.addEventListener('load', function () { + xhr.addEventListener('load', function() { var response = JSON.parse(this.responseText), element = document.querySelector('.itx-channel-video-uploaded') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); @@ -686,9 +686,9 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { TODO: TEST ------------------------------------------------------------------------------*/ -ImprovedTube.channelVideosCount = function () { +ImprovedTube.channelVideosCount = function() { if (this.storage.channel_videos_count === true) { - var waiting_channel_link = setInterval(function () { + var waiting_channel_link = setInterval(function() { var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a')) { @@ -696,7 +696,7 @@ ImprovedTube.channelVideosCount = function () { var xhr = new XMLHttpRequest(); - xhr.addEventListener('load', function () { + xhr.addEventListener('load', function() { var response = JSON.parse(this.responseText), element = document.querySelector('.itx-channel-videos-count') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); @@ -732,10 +732,10 @@ TODO TEST ImprovedTube.comments_wait = false; -ImprovedTube.comments = function () { +ImprovedTube.comments = function() { if (this.storage.comments === 'collapsed') { if (this.comments_wait === false) { - this.comments_wait = setInterval(function () { + this.comments_wait = setInterval(function() { if ( document.getElementById('comment-section-renderer-items') || document.querySelector('#comments #sections #contents') @@ -753,7 +753,7 @@ ImprovedTube.comments = function () { button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; button.innerHTML = 'Show moreShow less'; - button.onclick = function () { + button.onclick = function() { document.documentElement.classList.toggle('comments-collapsed'); }; @@ -768,7 +768,7 @@ ImprovedTube.comments = function () { this.comments_wait = false; - setTimeout(function () { + setTimeout(function() { if (document.getElementById('improvedtube-collapsed-comments')) { document.getElementById('improvedtube-collapsed-comments').remove(); } @@ -785,7 +785,7 @@ ImprovedTube.comments = function () { 3.1 MY COLORS ------------------------------------------------------------------------------*/ -ImprovedTube.myColors = function () { +ImprovedTube.myColors = function() { if (this.storage.theme_my_colors !== true) { if (document.querySelector('.it-theme-editor')) { document.querySelector('.it-theme-editor').remove(); @@ -846,7 +846,7 @@ ImprovedTube.myColors = function () { 3.2 BLUELIGHT ------------------------------------------------------------------------------*/ -ImprovedTube.bluelight = function () { +ImprovedTube.bluelight = function() { var value = this.storage.bluelight, times = { from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), @@ -884,7 +884,7 @@ ImprovedTube.bluelight = function () { 3.3 DIM ------------------------------------------------------------------------------*/ -ImprovedTube.dim = function () { +ImprovedTube.dim = function() { var value = this.storage.dim, times = { from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), @@ -941,7 +941,7 @@ ImprovedTube.dim = function () { 3.4 FONT ------------------------------------------------------------------------------*/ -ImprovedTube.font = function () { +ImprovedTube.font = function() { if (this.storage.font) { if (this.storage.font !== 'Default') { if (!document.querySelector('.it-font-family')) { @@ -966,11 +966,11 @@ ImprovedTube.font = function () { 3.5 THEMES ------------------------------------------------------------------------------*/ -ImprovedTube.themes = function () { +ImprovedTube.themes = function() { var times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, + from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), + to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) + }, current_time = new Date().getHours(); if (times.to < times.from && current_time > times.from && current_time < 24) { @@ -1026,7 +1026,7 @@ TODO: CONNECT & TEST ImprovedTube.allow_autoplay = false; -ImprovedTube.autoplay = function (video) { +ImprovedTube.autoplay = function(video) { if (ImprovedTube.video_url !== location.href) { ImprovedTube.allow_autoplay = false; } @@ -1040,7 +1040,7 @@ ImprovedTube.autoplay = function (video) { ImprovedTube.allow_autoplay === false && video.parentNode.parentNode.classList.contains('ad-showing') === false ) { - setTimeout(function () { + setTimeout(function() { video.parentNode.parentNode.pauseVideo(); }); } @@ -1051,7 +1051,7 @@ ImprovedTube.autoplay = function (video) { 4.2 AUTOPAUSE WHEN SWITCHING TABS ------------------------------------------------------------------------------*/ -ImprovedTube.playerAutopauseWhenSwitchingTabs = function () { +ImprovedTube.playerAutopauseWhenSwitchingTabs = function() { var video = document.querySelector('.html5-video-player video'); if (this.storage.player_autopause_when_switching_tabs === true && video) { @@ -1071,7 +1071,7 @@ ImprovedTube.playerAutopauseWhenSwitchingTabs = function () { 4.3 FORCED PLAYBACK SPEED ------------------------------------------------------------------------------*/ -ImprovedTube.playerPlaybackSpeed = function (node) { +ImprovedTube.playerPlaybackSpeed = function(node) { var option = Number(ImprovedTube.storage.player_playback_speed); if (ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) && ImprovedTube.storage.player_forced_playback_speed === true) { @@ -1079,7 +1079,7 @@ ImprovedTube.playerPlaybackSpeed = function (node) { if (window.location.href.indexOf('music') < 0) { document.querySelector('.html5-video-player').querySelector('video').playbackRate = option; } - } catch (err) { } + } catch (err) {} } }; @@ -1088,7 +1088,7 @@ ImprovedTube.playerPlaybackSpeed = function (node) { 4.4 SUBTITLES ------------------------------------------------------------------------------*/ -ImprovedTube.subtitles = function () { +ImprovedTube.subtitles = function() { }; @@ -1097,7 +1097,7 @@ ImprovedTube.subtitles = function () { 4.5 UP NEXT AUTOPLAY ------------------------------------------------------------------------------*/ -ImprovedTube.upNextAutoplay = function () { +ImprovedTube.upNextAutoplay = function() { var option = this.storage.up_next_autoplay; if (this.isset(option)) { @@ -1121,13 +1121,13 @@ ImprovedTube.upNextAutoplay = function () { ImprovedTube.adInterval = false; ImprovedTube.AdSkipButton = false; -ImprovedTube.playerAds = function () { +ImprovedTube.playerAds = function() { if (ImprovedTube.adInterval) { clearInterval(ImprovedTube.adInterval); } if (ImprovedTube.storage.player_ads === 'block_all') { - ImprovedTube.adInterval = setInterval(function () { + ImprovedTube.adInterval = setInterval(function() { var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); if (button) { @@ -1137,7 +1137,7 @@ ImprovedTube.playerAds = function () { } }, 50); } else if (ImprovedTube.storage.player_ads === 'subscribed_channels') { - ImprovedTube.adInterval = setInterval(function () { + ImprovedTube.adInterval = setInterval(function() { var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); if (button && !document.querySelector('#meta paper-button[subscribed]')) { @@ -1172,16 +1172,16 @@ ImprovedTube.mini_player__player_offset_y = 0; ImprovedTube.mini_player__resize_offset = 16; -ImprovedTube.mini_player__setPosition = function (x, y) { +ImprovedTube.mini_player__setPosition = function(x, y) { ImprovedTube.mini_player__element.style.transform = 'translate3d(' + x + 'px, ' + y + 'px, 0)'; }; -ImprovedTube.mini_player__setSize = function (width, height) { +ImprovedTube.mini_player__setSize = function(width, height) { ImprovedTube.mini_player__element.style.width = width + 'px'; ImprovedTube.mini_player__element.style.height = height + 'px'; }; -ImprovedTube.mini_player__scroll = function () { +ImprovedTube.mini_player__scroll = function() { if (window.scrollY >= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === false) { ImprovedTube.mini_player__mode = true; @@ -1222,7 +1222,7 @@ ImprovedTube.mini_player__scroll = function () { } }; -ImprovedTube.mini_player__mousedown = function (event) { +ImprovedTube.mini_player__mousedown = function(event) { if (event.button !== 0) { return false; } @@ -1262,7 +1262,7 @@ ImprovedTube.mini_player__mousedown = function (event) { window.addEventListener('mousemove', ImprovedTube.mini_player__mousemove); }; -ImprovedTube.mini_player__mouseup = function () { +ImprovedTube.mini_player__mouseup = function() { var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; strg.x = ImprovedTube.mini_player__x; @@ -1275,17 +1275,17 @@ ImprovedTube.mini_player__mouseup = function () { ImprovedTube.mini_player__move = false; - setTimeout(function () { + setTimeout(function() { window.removeEventListener('click', ImprovedTube.mini_player__click, true); }); }; -ImprovedTube.mini_player__click = function (event) { +ImprovedTube.mini_player__click = function(event) { event.stopPropagation(); event.preventDefault(); }; -ImprovedTube.mini_player__mousemove = function (event) { +ImprovedTube.mini_player__mousemove = function(event) { if ( event.clientX < ImprovedTube.mini_player__mousedown_x - 5 || event.clientY < ImprovedTube.mini_player__mousedown_y - 5 || @@ -1324,7 +1324,7 @@ ImprovedTube.mini_player__mousemove = function (event) { } }; -ImprovedTube.mini_player__cursorUpdate = function (event) { +ImprovedTube.mini_player__cursorUpdate = function(event) { var x = event.clientX, y = event.clientY, c = ImprovedTube.mini_player__cursor; @@ -1396,7 +1396,7 @@ ImprovedTube.mini_player__cursorUpdate = function (event) { } }; -ImprovedTube.mini_player__resize = function (event) { +ImprovedTube.mini_player__resize = function(event) { if (ImprovedTube.mini_player__cursor !== '') { window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); window.addEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); @@ -1406,7 +1406,7 @@ ImprovedTube.mini_player__resize = function (event) { } }; -ImprovedTube.mini_player__resize_mouseMove = function (event) { +ImprovedTube.mini_player__resize_mouseMove = function(event) { if (ImprovedTube.mini_player__cursor === 'n-resize') { ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); @@ -1431,7 +1431,7 @@ ImprovedTube.mini_player__resize_mouseMove = function (event) { } }; -ImprovedTube.mini_player__resize_mouseUp = function (event) { +ImprovedTube.mini_player__resize_mouseUp = function(event) { var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); ImprovedTube.mini_player__x = bcr.left; @@ -1453,7 +1453,7 @@ ImprovedTube.mini_player__resize_mouseUp = function (event) { window.removeEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); }; -ImprovedTube.mini_player = function () { +ImprovedTube.mini_player = function() { ImprovedTube.mini_player__element = document.querySelector('.html5-video-player'); if (ImprovedTube.storage.mini_player === true) { @@ -1494,7 +1494,7 @@ ImprovedTube.mini_player = function () { 4.8 AUTO FULLSCREEN ------------------------------------------------------------------------------*/ -ImprovedTube.playerAutofullscreen = function (node) { +ImprovedTube.playerAutofullscreen = function(node) { if (!node) { node = document.querySelector('.html5-video-player'); } @@ -1514,7 +1514,7 @@ ImprovedTube.playerAutofullscreen = function (node) { 4.9 QUALITY ------------------------------------------------------------------------------*/ -ImprovedTube.playerQuality = function (node) { +ImprovedTube.playerQuality = function(node) { var quality = ImprovedTube.storage.player_quality; if (!node) { @@ -1540,7 +1540,7 @@ ImprovedTube.playerQuality = function (node) { 4.10 CODEC H.264 ------------------------------------------------------------------------------*/ -ImprovedTube.playerH264 = function () { +ImprovedTube.playerH264 = function() { if (this.storage.player_h264 === true) { var canPlayType = HTMLMediaElement.prototype.canPlayType; @@ -1555,12 +1555,12 @@ ImprovedTube.playerH264 = function () { if (window.MediaSource) { var isTypeSupported = window.MediaSource.isTypeSupported; - window.MediaSource.isTypeSupported = function (mime) { + window.MediaSource.isTypeSupported = function(mime) { return overwrite(this, isTypeSupported, mime); }; } - HTMLMediaElement.prototype.canPlayType = function (mime) { + HTMLMediaElement.prototype.canPlayType = function(mime) { var status = overwrite(this, canPlayType, mime); if (!status) { @@ -1577,7 +1577,7 @@ ImprovedTube.playerH264 = function () { 4.11 ALLOW 60FPS ------------------------------------------------------------------------------*/ -ImprovedTube.player60fps = function () { +ImprovedTube.player60fps = function() { if (this.storage.player_60fps === false) { var canPlayType = HTMLMediaElement.prototype.canPlayType; @@ -1594,12 +1594,12 @@ ImprovedTube.player60fps = function () { if (window.MediaSource) { var isTypeSupported = window.MediaSource.isTypeSupported; - window.MediaSource.isTypeSupported = function (mime) { + window.MediaSource.isTypeSupported = function(mime) { return overwrite(this, isTypeSupported, mime); }; } - HTMLMediaElement.prototype.canPlayType = function (mime) { + HTMLMediaElement.prototype.canPlayType = function(mime) { var status = overwrite(this, canPlayType, mime); if (!status) { @@ -1616,7 +1616,7 @@ ImprovedTube.player60fps = function () { 4.12 FORCED VOLUME ------------------------------------------------------------------------------*/ -ImprovedTube.playerVolume = function (node) { +ImprovedTube.playerVolume = function(node) { if (!node) { node = document.querySelector('.html5-video-player'); } @@ -1637,7 +1637,7 @@ ImprovedTube.playerVolume = function (node) { 4.13 LOUDNESS NORMALIZATION ------------------------------------------------------------------------------*/ -ImprovedTube.onvolumechange = function (event) { +ImprovedTube.onvolumechange = function(event) { if (document.querySelector('.ytp-volume-panel') && ImprovedTube.storage.player_loudness_normalization === false) { var volume = Number(document.querySelector('.ytp-volume-panel').getAttribute('aria-valuenow')); @@ -1645,7 +1645,7 @@ ImprovedTube.onvolumechange = function (event) { } }; -ImprovedTube.playerLoudnessNormalization = function () { +ImprovedTube.playerLoudnessNormalization = function() { var video = document.querySelector('video'); if (video) { @@ -1667,7 +1667,7 @@ ImprovedTube.playerLoudnessNormalization = function () { } else { video.volume = 100; } - } catch (err) { } + } catch (err) {} } }; @@ -1676,7 +1676,7 @@ ImprovedTube.playerLoudnessNormalization = function () { 4.14 SCREENSHOT ------------------------------------------------------------------------------*/ -ImprovedTube.screenshot = function () { +ImprovedTube.screenshot = function() { document.body.style.opacity = '0'; var video = document.querySelector('.html5-video-player video'), @@ -1688,13 +1688,13 @@ ImprovedTube.screenshot = function () { video.style.width = video.videoWidth + 'px'; video.style.height = video.videoHeight + 'px'; - setTimeout(function () { + setTimeout(function() { cvs.width = video.videoWidth; cvs.height = video.videoHeight; ctx.drawImage(video, 0, 0, cvs.width, cvs.height); - cvs.toBlob(function (blob) { + cvs.toBlob(function(blob) { if (ImprovedTube.storage.player_screenshot_save_as !== 'clipboard') { var a = document.createElement('a'); @@ -1710,10 +1710,10 @@ ImprovedTube.screenshot = function () { 'image/png': blob }) ]); - } catch (error) { } + } catch (error) {} } - setTimeout(function () { + setTimeout(function() { video.style.width = old_w + 'px'; video.style.height = old_h + 'px'; @@ -1723,7 +1723,7 @@ ImprovedTube.screenshot = function () { }, 100); }; -ImprovedTube.playerScreenshotButton = function () { +ImprovedTube.playerScreenshotButton = function() { if (this.storage.player_screenshot_button === true) { if (!node) { var node = document.querySelector('.html5-video-player'); @@ -1746,7 +1746,7 @@ ImprovedTube.playerScreenshotButton = function () { 4.15 REPEAT ------------------------------------------------------------------------------*/ -ImprovedTube.playerRepeatButton = function (node) { +ImprovedTube.playerRepeatButton = function(node) { if (this.storage.player_repeat_button === true) { if (!node) { var node = document.querySelector('.html5-video-player'); @@ -1755,7 +1755,7 @@ ImprovedTube.playerRepeatButton = function (node) { this.createPlayerButton(node, { id: 'it-repeat-button', html: '', - onclick: function () { + onclick: function() { if (node.querySelector('video').hasAttribute('loop')) { node.querySelector('video').removeAttribute('loop'); this.style.opacity = '.5'; @@ -1768,7 +1768,7 @@ ImprovedTube.playerRepeatButton = function (node) { }); if (this.storage.player_always_repeat === true) { - setTimeout(function () { + setTimeout(function() { node.querySelector('video').setAttribute('loop', ''); node.querySelector('#it-repeat-button').style.opacity = '1'; }, 100); @@ -1783,7 +1783,7 @@ ImprovedTube.playerRepeatButton = function (node) { 4.16 ROTATE ------------------------------------------------------------------------------*/ -ImprovedTube.playerRotateButton = function () { +ImprovedTube.playerRotateButton = function() { if (this.storage.player_rotate_button === true) { if (!node) { var node = document.querySelector('.html5-video-player'); @@ -1793,7 +1793,7 @@ ImprovedTube.playerRotateButton = function () { id: 'it-rotate-button', html: '', opacity: 1, - onclick: function () { + onclick: function() { var video = document.querySelector('.html5-video-player video'), transform = '', rotate = (document.querySelector('.it-rotate-styles') && document.querySelector('.it-rotate-styles').textContent.match(/rotate\([0-9.]+deg\)/g) || [''])[0]; @@ -1837,7 +1837,7 @@ ImprovedTube.playerRotateButton = function () { 4.17 POPUP PLAYER ------------------------------------------------------------------------------*/ -ImprovedTube.playerPopupButton = function () { +ImprovedTube.playerPopupButton = function() { if (this.storage.player_popup_button === true) { if (!node) { var node = document.querySelector('.html5-video-player'); @@ -1847,7 +1847,11 @@ ImprovedTube.playerPopupButton = function () { id: 'it-popup-player-button', html: '', opacity: 1, - onclick: ImprovedTube.createPopUpWindow, + onclick: function() { + node.pauseVideo(); + + window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(node.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + node.offsetWidth + ',height=' + node.offsetHeight); + }, title: 'Popup' }); } else if (document.querySelector('.it-popup-player-button')) { @@ -1855,64 +1859,11 @@ ImprovedTube.playerPopupButton = function () { } }; -ImprovedTube.createPopUpWindow = function () { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - - node.pauseVideo(); - - var url = new URL(window.location.href); - // Retrieve playlist identification parameter to check if single video or playlist - var playlistId = url.searchParams.get('list'); - var startTime = parseInt(node.getCurrentTime()); - - // Build Embedded url - var popOutUrl = location.protocol + '//www.youtube.com/embed/' - + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) - + '?start=' + startTime - + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'); - - - if (playlistId) { - // Use listType playlist and add id of the playlist - popOutUrl += '&listType=playlist&list=' + playlistId; - // Add index, this defines wich item of the playlist to start playing, if empty first item starts playing - popOutUrl += '&index=' + url.searchParams.get('index'); - } - - // Use dispatchEvent for sending it through the Chrome Runtime - // This makes it possible to open the popup player without address bar - // See 'background.js' for further implementation - document.dispatchEvent(new CustomEvent('OpenPopupPlayer', { - detail: { - url: popOutUrl, - width: node.offsetWidth, - height: node.offsetHeight, - startTime: startTime - } - })); -} - -document.addEventListener('OpenPopupPlayer', function (event) { - if (chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'open-popup-player', - data: { - url: event.detail.url, - width: event.detail.width, - height: event.detail.height, - startTime: event.detail.startTime - } - }); - } -}); - /*------------------------------------------------------------------------------ 4.18 Force SDR ------------------------------------------------------------------------------*/ -ImprovedTube.playerSDR = function () { +ImprovedTube.playerSDR = function() { if (this.storage.player_SDR === true) { Object.defineProperty(window.screen, 'pixelDepth', { enumerable: true, @@ -1932,7 +1883,7 @@ TODO: CONNECT & TEST 5.1 UP NEXT AUTOPLAY ------------------------------------------------------------------------------*/ -ImprovedTube.playlist_up_next_autoplay_f = function (event) { +ImprovedTube.playlist_up_next_autoplay_f = function(event) { if ( ImprovedTube.getParam(location.href, 'list') && ImprovedTube.storage.playlist_up_next_autoplay === false && @@ -1942,7 +1893,7 @@ ImprovedTube.playlist_up_next_autoplay_f = function (event) { } }; -ImprovedTube.playlistUpNextAutoplay = function () { +ImprovedTube.playlistUpNextAutoplay = function() { var video = document.querySelector('video'); video.removeEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); @@ -1957,7 +1908,7 @@ ImprovedTube.playlistUpNextAutoplay = function () { ImprovedTube.playlistReverseUrl = false; ImprovedTube.playlistReversed = location.href.indexOf('reverse') !== -1; -ImprovedTube.playlistReverse = function () { +ImprovedTube.playlistReverse = function() { if (this.playlistReverseUrl !== location.href && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer') && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #playlist-action-menu')) { var button = document.querySelector('#it-reverse-playlist'); @@ -1969,7 +1920,7 @@ ImprovedTube.playlistReverse = function () { prev_button = document.querySelector('.ytp-prev-button'); if (prev_button) { - prev_button.addEventListener('click', function (event) { + prev_button.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); @@ -1984,7 +1935,7 @@ ImprovedTube.playlistReverse = function () { } if (next_button) { - next_button.addEventListener('click', function (event) { + next_button.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); @@ -2000,7 +1951,7 @@ ImprovedTube.playlistReverse = function () { } if (ImprovedTube.playlistReversed === true) { - setTimeout(function () { + setTimeout(function() { ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); setTimeout(updateNextButton, 1000); @@ -2018,7 +1969,7 @@ ImprovedTube.playlistReverse = function () { button.classList.add('active'); } - button.addEventListener('click', function (event) { + button.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); @@ -2048,9 +1999,9 @@ ImprovedTube.playlistReverse = function () { ImprovedTube.playlist_repeat_wait = false; -ImprovedTube.playlistRepeat = function () { +ImprovedTube.playlistRepeat = function() { if (this.isset(this.storage.playlist_repeat) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { - ImprovedTube.playlist_repeat_wait = setInterval(function () { + ImprovedTube.playlist_repeat_wait = setInterval(function() { if ( document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[0] || document.querySelector('.playlist-nav-controls .toggle-loop') @@ -2080,9 +2031,9 @@ ImprovedTube.playlistRepeat = function () { ImprovedTube.playlist_shuffle_wait = false; -ImprovedTube.playlistShuffle = function () { +ImprovedTube.playlistShuffle = function() { if (this.isset(this.storage.playlist_shuffle) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { - ImprovedTube.playlist_shuffle_wait = setInterval(function () { + ImprovedTube.playlist_shuffle_wait = setInterval(function() { if ( document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[1] || document.querySelector('.playlist-nav-controls .shuffle-playlist') @@ -2116,7 +2067,7 @@ TODO: CONNECT & TEST 6.1 DEFAULT CHANNEL TAB ------------------------------------------------------------------------------*/ -ImprovedTube.channelDefaultTab = function () { +ImprovedTube.channelDefaultTab = function() { if (this.storage.channel_default_tab && this.storage.channel_default_tab !== '/') { var value = this.storage.channel_default_tab, node_list = document.querySelectorAll( @@ -2159,7 +2110,7 @@ ImprovedTube.channelDefaultTab = function () { TODO: CONNECT & TEST ------------------------------------------------------------------------------*/ -ImprovedTube.shortcuts = function () { +ImprovedTube.shortcuts = function() { var self = this, keys = {}, wheel = 0, @@ -2182,7 +2133,7 @@ ImprovedTube.shortcuts = function () { clearTimeout(status_timer); } - status_timer = setTimeout(function () { + status_timer = setTimeout(function() { if (player.querySelector('#it-status')) { player.querySelector('#it-status').remove(); } @@ -2195,7 +2146,7 @@ ImprovedTube.shortcuts = function () { } var features = { - shortcut_240p: function () { + shortcut_240p: function() { var player = document.querySelector('#movie_player'); if (player) { @@ -2203,7 +2154,7 @@ ImprovedTube.shortcuts = function () { player.setPlaybackQuality('small'); } }, - shortcut_360p: function () { + shortcut_360p: function() { var player = document.querySelector('#movie_player'); if (player) { @@ -2211,7 +2162,7 @@ ImprovedTube.shortcuts = function () { player.setPlaybackQuality('medium'); } }, - shortcut_480p: function () { + shortcut_480p: function() { var player = document.querySelector('#movie_player'); if (player) { @@ -2219,7 +2170,7 @@ ImprovedTube.shortcuts = function () { player.setPlaybackQuality('large'); } }, - shortcut_720p: function () { + shortcut_720p: function() { var player = document.querySelector('#movie_player'); if (player) { @@ -2227,7 +2178,7 @@ ImprovedTube.shortcuts = function () { player.setPlaybackQuality('hd720'); } }, - shortcut_1080p: function () { + shortcut_1080p: function() { var player = document.querySelector('#movie_player'); if (player) { @@ -2235,7 +2186,7 @@ ImprovedTube.shortcuts = function () { player.setPlaybackQuality('hd1080'); } }, - shortcut_1440p: function () { + shortcut_1440p: function() { var player = document.querySelector('#movie_player'); if (player) { @@ -2243,7 +2194,7 @@ ImprovedTube.shortcuts = function () { player.setPlaybackQuality('hd1440'); } }, - shortcut_2160p: function () { + shortcut_2160p: function() { var player = document.querySelector('#movie_player'); if (player) { @@ -2251,7 +2202,7 @@ ImprovedTube.shortcuts = function () { player.setPlaybackQuality('hd2160'); } }, - shortcut_2880p: function () { + shortcut_2880p: function() { var player = document.querySelector('#movie_player'); if (player) { @@ -2259,7 +2210,7 @@ ImprovedTube.shortcuts = function () { player.setPlaybackQuality('hd2880'); } }, - shortcut_4320p: function () { + shortcut_4320p: function() { var player = document.querySelector('#movie_player'); if (player) { @@ -2267,14 +2218,14 @@ ImprovedTube.shortcuts = function () { player.setPlaybackQuality('highres'); } }, - shortcut_picture_in_picture: function () { + shortcut_picture_in_picture: function() { var video = document.querySelector('#movie_player video'); if (video) { video.requestPictureInPicture(); } }, - shortcut_play_pause: function () { + shortcut_play_pause: function() { var video = document.querySelector('#movie_player video'); if (video) { @@ -2285,42 +2236,42 @@ ImprovedTube.shortcuts = function () { } } }, - shortcut_stop: function () { + shortcut_stop: function() { var player = document.querySelector('#movie_player'); if (player) { player.stopVideo(); } }, - shortcut_next_video: function () { + shortcut_next_video: function() { var player = document.querySelector('#movie_player'); if (player && player.nextVideo) { player.nextVideo(); } }, - shortcut_prev_video: function () { + shortcut_prev_video: function() { var player = document.querySelector('#movie_player'); if (player && player.previousVideo) { player.previousVideo(); } }, - shortcut_seek_backward: function () { + shortcut_seek_backward: function() { var player = document.querySelector('#movie_player'); if (player && player.seekBy) { player.seekBy(-10); } }, - shortcut_seek_forward: function () { + shortcut_seek_forward: function() { var player = document.querySelector('#movie_player'); if (player && player.seekBy) { player.seekBy(10); } }, - shortcut_increase_volume: function () { + shortcut_increase_volume: function() { var player = document.querySelector('.html5-video-player'); if (player && player.setVolume && player.getVolume) { @@ -2329,7 +2280,7 @@ ImprovedTube.shortcuts = function () { showStatus(player, player.getVolume()); }, - shortcut_decrease_volume: function () { + shortcut_decrease_volume: function() { var player = document.querySelector('.html5-video-player'); if (player && player.setVolume && player.getVolume) { @@ -2338,14 +2289,14 @@ ImprovedTube.shortcuts = function () { showStatus(player, player.getVolume()); }, - shortcut_screenshot: function () { + shortcut_screenshot: function() { var player = document.querySelector('.html5-video-player'); if (player && player.setVolume && player.getVolume) { ImprovedTube.screenshot(); } }, - shortcut_increase_playback_speed: function () { + shortcut_increase_playback_speed: function() { var video = document.querySelector('#movie_player video'); if (video && video.playbackRate) { @@ -2354,7 +2305,7 @@ ImprovedTube.shortcuts = function () { showStatus(document.querySelector('#movie_player'), video.playbackRate); } }, - shortcut_decrease_playback_speed: function () { + shortcut_decrease_playback_speed: function() { var video = document.querySelector('#movie_player video'); if (video && video.playbackRate) { @@ -2363,42 +2314,42 @@ ImprovedTube.shortcuts = function () { showStatus(document.querySelector('#movie_player'), video.playbackRate); } }, - shortcut_go_to_search_box: function () { + shortcut_go_to_search_box: function() { var search = document.querySelector('#search'); if (search && search.focus) { search.focus(); } }, - shortcut_activate_fullscreen: function () { + shortcut_activate_fullscreen: function() { var player = document.querySelector('#movie_player'); if (player && player.toggleFullscreen) { player.toggleFullscreen(); } }, - shortcut_activate_captions: function () { + shortcut_activate_captions: function() { var player = document.querySelector('#movie_player'); if (player && player.querySelector('.ytp-subtitles-button')) { player.querySelector('.ytp-subtitles-button').click(); } }, - shortcut_like_shortcut: function () { + shortcut_like_shortcut: function() { var like = (document.querySelectorAll('.like-button-renderer-like-button')[0] || document.querySelectorAll('#menu #top-level-buttons ytd-toggle-button-renderer')[0]); if (like) { like.click(); } }, - shortcut_dislike_shortcut: function () { + shortcut_dislike_shortcut: function() { var like = (document.querySelectorAll('.like-button-renderer-dislike-button')[0] || document.querySelectorAll('#menu #top-level-buttons ytd-toggle-button-renderer')[1]); if (like) { like.click(); } }, - shortcut_dark_theme: function () { + shortcut_dark_theme: function() { if (document.documentElement.hasAttribute('dark')) { document.documentElement.removeAttribute('dark'); document.documentElement.removeAttribute('it-theme'); @@ -2407,7 +2358,7 @@ ImprovedTube.shortcuts = function () { document.documentElement.setAttribute('it-theme', 'true'); } }, - shortcut_custom_mini_player: function () { + shortcut_custom_mini_player: function() { ImprovedTube.storage.mini_player = !ImprovedTube.storage.mini_player; ImprovedTube.mini_player(); @@ -2436,7 +2387,7 @@ ImprovedTube.shortcuts = function () { window.dispatchEvent(new Event('resize')); } }, - shortcut_stats_for_nerds: function () { + shortcut_stats_for_nerds: function() { var player = document.querySelector('.html5-video-player'); if (player.isVideoInfoVisible()) { @@ -2445,10 +2396,10 @@ ImprovedTube.shortcuts = function () { player.showVideoInfo(); } }, - shortcut_toggle_cards: function () { + shortcut_toggle_cards: function() { document.documentElement.toggleAttribute('it-player-hide-cards'); }, - shortcut_popup_player: function () { + shortcut_popup_player: function() { ImprovedTube.createPopUpWindow(); } }; @@ -2485,7 +2436,7 @@ ImprovedTube.shortcuts = function () { 1.0 Keyboard -------------------------------------------------------------------------*/ - window.addEventListener('keydown', function (event) { + window.addEventListener('keydown', function(event) { keys = { key: event.key, keyCode: event.keyCode, @@ -2497,7 +2448,7 @@ ImprovedTube.shortcuts = function () { start(); }, true); - window.addEventListener('keyup', function (event) { + window.addEventListener('keyup', function(event) { keys = {}; }, true); @@ -2506,7 +2457,7 @@ ImprovedTube.shortcuts = function () { 2.0 Mouse -------------------------------------------------------------------------*/ - window.addEventListener('mousemove', function (event) { + window.addEventListener('mousemove', function(event) { hover = false; for (var i = 0, l = event.path.length; i < l; i++) { @@ -2519,7 +2470,7 @@ ImprovedTube.shortcuts = function () { capture: true }); - window.addEventListener('wheel', function (event) { + window.addEventListener('wheel', function(event) { wheel = event.deltaY; start('wheel'); @@ -2536,7 +2487,7 @@ ImprovedTube.shortcuts = function () { TODO: CONNECT & TEST ------------------------------------------------------------------------------*/ -document.addEventListener('ImprovedTubeBlacklist', function (event) { +document.addEventListener('ImprovedTubeBlacklist', function(event) { if (chrome && chrome.runtime) { chrome.runtime.sendMessage({ name: 'improvedtube-blacklist', @@ -2550,7 +2501,7 @@ document.addEventListener('ImprovedTubeBlacklist', function (event) { } }); -ImprovedTube.blacklist = function () { +ImprovedTube.blacklist = function() { if (ImprovedTube.storage.blacklist_activate !== true) { return false; } @@ -2570,7 +2521,7 @@ ImprovedTube.blacklist = function () { if (!channel_items[i].parentNode.querySelector('.improvedtube-add-to-blacklist')) { let button = document.createElement('div'); - button.addEventListener('click', function (event) { + button.addEventListener('click', function(event) { let video_id; event.preventDefault(); @@ -2604,7 +2555,7 @@ ImprovedTube.blacklist = function () { ImprovedTube.blacklist(); location.reload(); - } catch (err) { } + } catch (err) {} }, true); button.className = 'improvedtube-add-to-blacklist'; @@ -2635,7 +2586,7 @@ ImprovedTube.blacklist = function () { if (!video_items[i].querySelector('.improvedtube-add-to-blacklist')) { let button = document.createElement('div'); - button.addEventListener('click', function (event) { + button.addEventListener('click', function(event) { let video_id; event.preventDefault(); @@ -2679,7 +2630,7 @@ ImprovedTube.blacklist = function () { }; ImprovedTube.blacklist(); - } catch (err) { } + } catch (err) {} }, true); button.className = 'improvedtube-add-to-blacklist'; button.innerText = 'x'; @@ -2754,7 +2705,7 @@ ImprovedTube.blacklist = function () { TODO: CONNECT & TEST ------------------------------------------------------------------------------*/ -document.addEventListener('ImprovedTubeAnalyzer', function () { +document.addEventListener('ImprovedTubeAnalyzer', function() { if (items.analyzer_activation === true) { if (document.querySelector('ytd-channel-name a') && chrome && chrome.runtime) { chrome.runtime.sendMessage({ @@ -2776,7 +2727,7 @@ document.addEventListener('ImprovedTubeAnalyzer', function () { ImprovedTube.improvedtube_youtube_icon_wait = false; -ImprovedTube.improvedtube_youtube_icon_resize = function () { +ImprovedTube.improvedtube_youtube_icon_resize = function() { var iframe = document.querySelector('.it-btn__iframe'), icon = document.querySelector('.it-btn__icon'); @@ -2806,7 +2757,7 @@ ImprovedTube.improvedtube_youtube_icon_resize = function () { } }; -ImprovedTube.improvedtubeYoutubeIcon = function () { +ImprovedTube.improvedtubeYoutubeIcon = function() { if (window.self !== window.top) { return false; } @@ -2819,7 +2770,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { } if (this.improvedtube_youtube_icon_wait === false) { - this.improvedtube_youtube_icon_wait = setInterval(function () { + this.improvedtube_youtube_icon_wait = setInterval(function() { var option = ImprovedTube.storage.improvedtube_youtube_icon, parentNode, referenceNode; @@ -2866,7 +2817,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { button.className = 'it-btn'; button.innerHTML = '
'; - button.addEventListener('click', function () { + button.addEventListener('click', function() { event.preventDefault(); event.stopPropagation(); @@ -2879,7 +2830,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { y: button.offsetTop })); - setTimeout(function () { + setTimeout(function() { button.style.pointerEvents = ''; }); @@ -2933,14 +2884,14 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { ImprovedTube.improvedtube_youtube_icon_resize(); } - button.addEventListener('mousedown', function (event) { + button.addEventListener('mousedown', function(event) { this.dataset.x = event.layerX; this.dataset.y = event.layerY; window.addEventListener('mousemove', move); }); - window.addEventListener('mouseup', function () { + window.addEventListener('mouseup', function() { button.classList.remove('it-btn--dragging'); window.removeEventListener('mousemove', move); @@ -2950,7 +2901,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { y: button.offsetTop })); - setTimeout(function () { + setTimeout(function() { button.style.pointerEvents = ''; }); }); @@ -2973,7 +2924,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { 10.2 DELETE YOUTUBE COOKIES -----------------------------------------------------------------------------*/ -ImprovedTube.deleteYoutubeCookies = function () { +ImprovedTube.deleteYoutubeCookies = function() { var cookies = document.cookie.split(';'); for (var i = 0, l = cookies.length; i < l; i++) { @@ -2984,7 +2935,7 @@ ImprovedTube.deleteYoutubeCookies = function () { document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; } - setTimeout(function () { + setTimeout(function() { location.reload(); }, 100); }; @@ -2994,7 +2945,7 @@ ImprovedTube.deleteYoutubeCookies = function () { 10.3 YOUTUBE LANGUAGE -----------------------------------------------------------------------------*/ -ImprovedTube.youtubeLanguage = function () { +ImprovedTube.youtubeLanguage = function() { var pref = ImprovedTube.getCookieValueByName('PREF'), hl = ImprovedTube.getParam(pref, 'hl'); @@ -3004,7 +2955,7 @@ ImprovedTube.youtubeLanguage = function () { ImprovedTube.setCookie('PREF', pref + '&hl=' + ImprovedTube.storage.youtube_language); } - setTimeout(function () { + setTimeout(function() { location.reload(); }, 100); }; @@ -3017,8 +2968,8 @@ ImprovedTube.youtubeLanguage = function () { 0.0 PAGE UPDATE LISTENER ------------------------------------------------------------------------------*/ -ImprovedTube.pageUpdateListener = function () { - window.addEventListener('yt-page-data-updated', function () { +ImprovedTube.pageUpdateListener = function() { + window.addEventListener('yt-page-data-updated', function() { ImprovedTube.played_before_blur = false; ImprovedTube.pageType(); @@ -3037,7 +2988,7 @@ ImprovedTube.pageUpdateListener = function () { }); }; -ImprovedTube.videoPageUpdate = function () { +ImprovedTube.videoPageUpdate = function() { if (this.page_type === 'video') { this.forcedTheaterMode(); this.playerHdThumbnail(); @@ -3081,11 +3032,11 @@ ImprovedTube.videoPageUpdate = function () { ImprovedTube.video_src = false; -ImprovedTube.videoUpdated = function () { +ImprovedTube.videoUpdated = function() { this.playerAds(); }; -ImprovedTube.timeupdate = function () { +ImprovedTube.timeupdate = function() { if (ImprovedTube.video_src !== this.src) { ImprovedTube.video_src = this.src; @@ -3093,7 +3044,7 @@ ImprovedTube.timeupdate = function () { } }; -ImprovedTube.playerUpdate = function () { +ImprovedTube.playerUpdate = function() { this.playerPlaybackSpeed(); this.subtitles(); this.mini_player(); @@ -3107,8 +3058,8 @@ ImprovedTube.playerUpdate = function () { 0.0 DOM CONTENT LOADED ------------------------------------------------------------------------------*/ -ImprovedTube.DOMContentLoaded = function () { - window.addEventListener('DOMContentLoaded', function () { +ImprovedTube.DOMContentLoaded = function() { + window.addEventListener('DOMContentLoaded', function() { ImprovedTube.youtubeHomePage(); ImprovedTube.collapseOfSubscriptionSections(); ImprovedTube.addScrollToTop(); @@ -3142,7 +3093,7 @@ ImprovedTube.DOMContentLoaded = function () { ImprovedTube.video_url = false; ImprovedTube.page_type = false; -ImprovedTube.pageType = function () { +ImprovedTube.pageType = function() { var href = location.href, type = ''; @@ -3167,7 +3118,7 @@ ImprovedTube.pageType = function () { ImprovedTube.focus = false; ImprovedTube.played_before_blur = false; -ImprovedTube.onfocus = function () { +ImprovedTube.onfocus = function() { this.onlyOnePlayerInstancePlaying(); this.playerAutopauseWhenSwitchingTabs(); }; @@ -3177,9 +3128,9 @@ ImprovedTube.onfocus = function () { 0.0 ONPLAY ------------------------------------------------------------------------------*/ -ImprovedTube.onplay = function () { - HTMLMediaElement.prototype.play = (function (original) { - return function () { +ImprovedTube.onplay = function() { + HTMLMediaElement.prototype.play = (function(original) { + return function() { this.removeEventListener('timeupdate', ImprovedTube.timeupdate); this.addEventListener('timeupdate', ImprovedTube.timeupdate); @@ -3202,8 +3153,8 @@ ImprovedTube.onplay = function () { 0.0 ONKEYDOWN ------------------------------------------------------------------------------*/ -ImprovedTube.onkeydown = function () { - window.addEventListener('keydown', function () { +ImprovedTube.onkeydown = function() { + window.addEventListener('keydown', function() { if ( document.querySelector('.html5-video-player') && document.querySelector('.html5-video-player').classList.contains('ad-showing') === false @@ -3218,8 +3169,8 @@ ImprovedTube.onkeydown = function () { 0.0 ONMOUSEDOWN ------------------------------------------------------------------------------*/ -ImprovedTube.onmousedown = function (event) { - window.addEventListener('mousedown', function (event) { +ImprovedTube.onmousedown = function(event) { + window.addEventListener('mousedown', function(event) { for (var i = 0, l = event.path.length; i < l; i++) { if ( document.querySelector('.html5-video-player') && @@ -3237,7 +3188,7 @@ ImprovedTube.onmousedown = function (event) { }; -ImprovedTube.getCookieValueByName = function (name) { +ImprovedTube.getCookieValueByName = function(name) { var match = document.cookie.match(new RegExp('([; ]' + name + '|^' + name + ')([^\\s;]*)', 'g')); if (match) { @@ -3248,7 +3199,7 @@ ImprovedTube.getCookieValueByName = function (name) { return ''; }; -ImprovedTube.getParam = function (query, name) { +ImprovedTube.getParam = function(query, name) { var params = query.split('&'), param = false; @@ -3267,7 +3218,7 @@ ImprovedTube.getParam = function (query, name) { } }; -ImprovedTube.getParams = function (query) { +ImprovedTube.getParams = function(query) { var params = query.split('&'), result = {}; @@ -3280,7 +3231,7 @@ ImprovedTube.getParams = function (query) { return result; }; -ImprovedTube.setCookie = function (name, value) { +ImprovedTube.setCookie = function(name, value) { var date = new Date(); date.setTime(date.getTime() + 3.154e+10); @@ -3288,7 +3239,7 @@ ImprovedTube.setCookie = function (name, value) { document.cookie = name + '=' + value + '; path=/; domain=.youtube.com; expires=' + date.toGMTString(); }; -ImprovedTube.createPlayerButton = function (node, options) { +ImprovedTube.createPlayerButton = function(node, options) { var controls = document.querySelector('.html5-video-player .ytp-left-controls'); if (controls) { @@ -3320,7 +3271,7 @@ ImprovedTube.createPlayerButton = function (node, options) { } }; -ImprovedTube.reverse = function (parent) { +ImprovedTube.reverse = function(parent) { for (var i = 1, l = parent.childNodes.length; i < l; i++) { parent.insertBefore(parent.childNodes[i], parent.firstChild); } @@ -3331,7 +3282,7 @@ ImprovedTube.reverse = function (parent) { 0.0 INITIALIZATION ------------------------------------------------------------------------------*/ -ImprovedTube.init = function () { +ImprovedTube.init = function() { this.playerH264(); this.player60fps(); this.playerSDR(); @@ -3342,7 +3293,7 @@ ImprovedTube.init = function () { this.onkeydown(); this.onmousedown(); - window.addEventListener('load', function () { + window.addEventListener('load', function() { ImprovedTube.hdThumbnails(); ImprovedTube.channelDefaultTab(); }); From b0888bf75c6054958288df1b9b1ee7379eccdce4 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 28 Feb 2021 17:01:48 +0300 Subject: [PATCH 0056/1224] v3.175 --- background.js | 12 ++++++++++++ content-scripts.js | 2 ++ content-styles.css | 10 +++++----- manifest.json | 2 +- youtube-scripts.js | 15 ++++++++++----- 5 files changed, 30 insertions(+), 11 deletions(-) diff --git a/background.js b/background.js index bac6d0727..d088b639b 100644 --- a/background.js +++ b/background.js @@ -125,6 +125,18 @@ chrome.runtime.onMessage.addListener(function(request, sender) { getTranslations(request.path); } + if (request.name === 'improvedtube-only-one-player') { + chrome.tabs.query({}, function(tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url') && sender.tab.id !== tabs[i].id) { + chrome.tabs.sendMessage(tabs[i].id, { + action: 'improvedtube-pause' + }); + } + } + }); + } + if (request.name === 'improvedtube-analyzer') { var data = request.value, date = new Date().toDateString(), diff --git a/content-scripts.js b/content-scripts.js index 129e26e94..264f93c92 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -172,6 +172,8 @@ chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { injectScript('ImprovedTube.focus = true;'); } else if (request.action === 'blur') { injectScript('ImprovedTube.focus = false;'); + } else if (request.action === 'improvedtube-pause') { + injectScript('if (document.querySelector("video")) { document.querySelector("video").pause(); }'); } injectScript('ImprovedTube.onfocus();'); diff --git a/content-styles.css b/content-styles.css index bb07b97bc..84b1cff61 100644 --- a/content-styles.css +++ b/content-styles.css @@ -608,7 +608,7 @@ html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']) } html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video { - position: static !important; + position: relative !important; top: 0 !important; left: 0 !important; width: auto !important; @@ -635,13 +635,13 @@ html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']) } html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .html5-video-container { - position: static !important; + position: relative !important; display: inline-block !important; width: auto !important; } html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video { - position: static !important; + position: relative !important; width: auto !important; max-width: 100vw !important; } @@ -650,12 +650,12 @@ html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']) pointer-events: none !important; } -html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, +/*html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player, html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player { margin-top: 14px !important; -} +}*/ html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-tooltip.ytp-preview { top: auto !important; diff --git a/manifest.json b/manifest.json index 5509c12ed..6f8a4168f 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "Improve YouTube! (Open-Source for YouTube)", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", - "version": "3.167", + "version": "3.175", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index c2f27ee7a..38739d35b 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -338,17 +338,22 @@ ImprovedTube.onlyOnePlayerInstancePlaying = function() { var video = document.querySelector('.html5-video-player video'); if (this.storage.only_one_player_instance_playing === true && video) { + if (this.focus === true) { + document.dispatchEvent(new CustomEvent('ImprovedTubeOnlyOnePlayer')); - if (this.focus === false && video.paused === false) { - video.pause(); - - this.played_before_blur = true; - } else if (this.focus === true && this.played_before_blur === true) { video.play(); } } }; +document.addEventListener('ImprovedTubeOnlyOnePlayer', function(event) { + if (chrome && chrome.runtime) { + chrome.runtime.sendMessage({ + name: 'improvedtube-only-one-player' + }); + } +}); + /*------------------------------------------------------------------------------ 1.7 HD THUMBNAILS From f5ca24d01446ad759875ef99f5a1823e9a13bcd6 Mon Sep 17 00:00:00 2001 From: Daniel Royer <2CATteam@gmail.com> Date: Wed, 3 Mar 2021 11:26:56 -0600 Subject: [PATCH 0057/1224] Implemented backwards-compatibility with 'normal' --- content-styles.css | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content-styles.css b/content-styles.css index 84b1cff61..a2ab8a51c 100644 --- a/content-styles.css +++ b/content-styles.css @@ -739,14 +739,14 @@ html[it-player-color='white'] { --it-player-color: #fff; } -html[it-player-color]:not([it-player-color='red']) .ytp-play-progress, -html[it-player-color]:not([it-player-color='red']) .ytp-scrubber-button, -html[it-player-color]:not([it-player-color='red']) .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color]:not([it-player-color='red']) .ytp-settings-button.ytp-hd-quality-badge:after { +html[it-player-color]:not([it-player-color='red']):not([it-player-color='normal']) .ytp-play-progress, +html[it-player-color]:not([it-player-color='red']):not([it-player-color='normal']) .ytp-scrubber-button, +html[it-player-color]:not([it-player-color='red']):not([it-player-color='normal']) .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, +html[it-player-color]:not([it-player-color='red']):not([it-player-color='normal']) .ytp-settings-button.ytp-hd-quality-badge:after { background-color: var(--it-player-color) !important; } -html[it-player-color]:not([it-player-color='red']) .ytp-swatch-color { +html[it-player-color]:not([it-player-color='red']):not([it-player-color='normal']) .ytp-swatch-color { color: var(--it-player-color) !important; } From b4ca8eac629a0e0669903eaf9f469769b98dd810 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 6 Mar 2021 00:06:27 +0300 Subject: [PATCH 0058/1224] Fixed "Player" -> "Up next autoplay" --- manifest.json | 2 +- youtube-scripts.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 61388b974..73301b643 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "Improve YouTube! (Open-Source for YouTube)", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", - "version": "3.175", + "version": "3.177", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 38739d35b..236e14268 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1106,12 +1106,13 @@ ImprovedTube.upNextAutoplay = function() { var option = this.storage.up_next_autoplay; if (this.isset(option)) { - var toggle = document.querySelector('#related #head.ytd-compact-autoplay-renderer #toggle'); + var toggle = document.querySelector('.ytp-right-controls .ytp-autonav-toggle-button'), + attribute = toggle.getAttribute('aria-checked'); if (toggle) { var option = ImprovedTube.storage.up_next_autoplay; - if (option === true && !toggle.hasAttribute('checked') || option === false && toggle.hasAttribute('checked')) { + if (option === true && attribute === 'false' || option === false && attribute === 'true') { toggle.click(); } } From 1b4f2b568e6c7c885897e7d471210368784d5916 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 6 Mar 2021 00:25:35 +0300 Subject: [PATCH 0059/1224] Optimized "Player" -> "Up next autoplay" --- youtube-scripts.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 236e14268..b2c2e7603 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1106,13 +1106,11 @@ ImprovedTube.upNextAutoplay = function() { var option = this.storage.up_next_autoplay; if (this.isset(option)) { - var toggle = document.querySelector('.ytp-right-controls .ytp-autonav-toggle-button'), - attribute = toggle.getAttribute('aria-checked'); + var toggle = document.querySelector('.ytp-autonav-toggle-button'), + attribute = toggle.getAttribute('aria-checked') === 'true'; if (toggle) { - var option = ImprovedTube.storage.up_next_autoplay; - - if (option === true && attribute === 'false' || option === false && attribute === 'true') { + if (option !== attribute) { toggle.click(); } } From 1cc07abccb8af7c58b5b2dc43008786827dae923 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 6 Mar 2021 00:34:24 +0300 Subject: [PATCH 0060/1224] Fixed "General" -> "YouTube home page" -> "Search" --- background.js | 2 -- content-scripts.js | 1 + content-styles.css | 1 + manifest.json | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/background.js b/background.js index d088b639b..7040a8377 100644 --- a/background.js +++ b/background.js @@ -334,8 +334,6 @@ chrome.storage.local.get(function(items) { ga: a }); } - - console.log(a - (items.ga || 0)); }); diff --git a/content-scripts.js b/content-scripts.js index 264f93c92..9a2128301 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -47,6 +47,7 @@ function camelize(string) { function attributes(items) { var whitelist = { + 'youtube-home-page': true, 'remove-related-search-results': true, 'squared-user-images': true, 'hide-animated-thumbnails': true, diff --git a/content-styles.css b/content-styles.css index 84b1cff61..3bd3a6b9a 100644 --- a/content-styles.css +++ b/content-styles.css @@ -93,6 +93,7 @@ html[it-page-type=home][it-youtube-home-page=search] #yt-masthead-content { pointer-events: all; justify-content: center; align-items: center; + background: var(--yt-spec-general-background-a); } html[it-page-type=home][it-youtube-home-page=search] ytd-searchbox>form { diff --git a/manifest.json b/manifest.json index 73301b643..b914d7f3c 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "Improve YouTube! (Open-Source for YouTube)", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", - "version": "3.177", + "version": "3.179", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 005286ea73f762c78077e13e6e9cfaa5e3d4602b Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 6 Mar 2021 17:09:36 +0300 Subject: [PATCH 0061/1224] Some updates --- background.js | 3 --- manifest.json | 5 ++--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/background.js b/background.js index 7040a8377..3c2a3d34d 100644 --- a/background.js +++ b/background.js @@ -18,9 +18,6 @@ var locale_code = 'en', browser_icon = false; -var POPOUT_PADDING_WIDTH = 16; -var POPOUT_PADDING_HEIGHT = 38; - /*--------------------------------------------------------------- # FUNCTIONS ---------------------------------------------------------------*/ diff --git a/manifest.json b/manifest.json index b914d7f3c..4bd55eb62 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "Improve YouTube! (Open-Source for YouTube)", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", - "version": "3.179", + "version": "3.181", "default_locale": "en", "icons": { "128": "assets/icons/128.png", @@ -79,8 +79,7 @@ ], "optional_permissions": [ "downloads", - "https://*.youtube.com/*", - "tabs" + "https://*.youtube.com/*" ], "update_url": "https://clients2.google.com/service/update2/crx" } \ No newline at end of file From 9760419ab443455efdf24481d473df726b5d2713 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 6 Mar 2021 17:22:46 +0300 Subject: [PATCH 0062/1224] Some updates --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 4bd55eb62..79df21746 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "Improve YouTube! (Open-Source for YouTube)", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", - "version": "3.181", + "version": "3.182", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From f59117a01099e2759aeb27284f1ad1473a596e8d Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 11 Mar 2021 17:39:33 +0300 Subject: [PATCH 0063/1224] Fixed an issue where ads disabled some features --- youtube-scripts.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/youtube-scripts.js b/youtube-scripts.js index b2c2e7603..0ebc0b9b2 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3038,6 +3038,10 @@ ImprovedTube.video_src = false; ImprovedTube.videoUpdated = function() { this.playerAds(); + this.playerPlaybackSpeed(); + this.playerQuality(); + this.playerVolume(); + this.playlistUpNextAutoplay(); }; ImprovedTube.timeupdate = function() { From 969276c348d9d464ff91e9535a3ba3c8fab5edfa Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 11 Mar 2021 17:39:56 +0300 Subject: [PATCH 0064/1224] Updated manifest.json --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 79df21746..f9579ca5a 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "Improve YouTube! (Open-Source for YouTube)", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", - "version": "3.182", + "version": "3.183", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From a3d53ae2d8d203cde1a4c6b57ca28c86d9457a40 Mon Sep 17 00:00:00 2001 From: Serban Andrei Date: Sun, 14 Mar 2021 19:52:40 +0200 Subject: [PATCH 0065/1224] Create messages.json --- _locales/ro/messages.json | 818 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 818 insertions(+) create mode 100644 _locales/ro/messages.json diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json new file mode 100644 index 000000000..1caff4eb7 --- /dev/null +++ b/_locales/ro/messages.json @@ -0,0 +1,818 @@ +{ + "about": { + "message": "About" + }, + "accept": { + "message": "Accept" + }, + "activate": { + "message": "Activate" + }, + "activateCaptions": { + "message": "Activate captions" + }, + "activated": { + "message": "Activated" + }, + "activatedFeatures": { + "message": "Activated features" + }, + "activateFullscreen": { + "message": "Activate fullscreen" + }, + "activeFeatures": { + "message": "Active features" + }, + "addScrollToTop": { + "message": "Add «Scroll to top»" + }, + "ads": { + "message": "Ads" + }, + "all": { + "message": "All" + }, + "allow": { + "message": "Allow" + }, + "allow60fps": { + "message": "Allow 60fps" + }, + "forceSDR": { + "message": "Force SDR" + }, + "alwaysActive": { + "message": "Always active" + }, + "alwaysShowProgressBar": { + "message": "Always show progress bar" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analyzer" + }, + "appearance": { + "message": "Appearance" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formats" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullscreen" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause when switching tabs" + }, + "autoplay": { + "message": "Autoplay" + }, + "backupAndReset": { + "message": "Backup & reset" + }, + "baseOnSystemColorScheme": { + "message": "Base on system color scheme" + }, + "belowPlayer": { + "message": "Below player" + }, + "black": { + "message": "Black" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "Block all" + }, + "blue": { + "message": "Blue" + }, + "blueGray": { + "message": "Blue gray" + }, + "bluelight": { + "message": "Bluelight" + }, + "brown": { + "message": "Brown" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser version" + }, + "bubbles": { + "message": "Bubbles" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Buttons" + }, + "cancel": { + "message": "Cancel" + }, + "categories": { + "message": "Categories" + }, + "channel": { + "message": "Channel" + }, + "channels": { + "message": "Channels" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapsed": { + "message": "Collapsed" + }, + "collapseOfSubscriptionSections": { + "message": "Collapse of subscription sections" + }, + "comments": { + "message": "Comments" + }, + "confirmationBeforeClosing": { + "message": "Confirmation before closing" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Custom JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "openPopupPlayer": { + "message": "Open video/playlist in a new window" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Dark" + }, + "darkTheme": { + "message": "Dark theme" + }, + "dateAndTime": { + "message": "Date & time" + }, + "dawn": { + "message": "Dawn" + }, + "decreasePlaybackSpeed": { + "message": "Decrease playback speed" + }, + "decreaseVolume": { + "message": "Decrease volume" + }, + "deepOrange": { + "message": "Deep orange" + }, + "deepPurple": { + "message": "Deep purple" + }, + "defaultChannelTab": { + "message": "Default channel tab" + }, + "deleteYoutubeCookies": { + "message": "Delete YouTube cookies" + }, + "description": { + "message": "Description" + }, + "desert": { + "message": "Desert" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Developer options" + }, + "device": { + "message": "Device" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Disabled" + }, + "dislike": { + "message": "Dislike" + }, + "donate": { + "message": "Donate" + }, + "doNotChange": { + "message": "Don't change" + }, + "draggable": { + "message": "Draggable" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Empty" + }, + "enabled": { + "message": "Enabled" + }, + "enabledForced": { + "message": "Enabled (forced)" + }, + "expanded": { + "message": "Expanded" + }, + "exportSettings": { + "message": "Export settings" + }, + "extension": { + "message": "Extension" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filters" + }, + "fitToWindow": { + "message": "Fit to window" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "footer": { + "message": "Footer" + }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, + "forcedTheaterMode": { + "message": "Forced theater mode" + }, + "forcedVolume": { + "message": "Forced volume" + }, + "foundABug": { + "message": "Found a bug?" + }, + "fullWindow": { + "message": "Full window" + }, + "general": { + "message": "General" + }, + "geoPreference": { + "message": "Geo Preference" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Go to search box" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Green" + }, + "hdThumbnail": { + "message": "HD thumbnail" + }, + "hdThumbnails": { + "message": "HD thumbnails" + }, + "header": { + "message": "Header" + }, + "hidden": { + "message": "Hidden" + }, + "hiddenOnVideoPage": { + "message": "Hidden on video page" + }, + "hideAnimatedThumbnails": { + "message": "Hide animated thumbnails" + }, + "hideAnnotations": { + "message": "Hide annotations" + }, + "hideCards": { + "message": "Hide cards" + }, + "hideDetails": { + "message": "Hide details" + }, + "hideEndscreen": { + "message": "Hide endscreen" + }, + "hideFeaturedContent": { + "message": "Hide featured content" + }, + "hideFooter": { + "message": "Hide footer" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hidePlaylist": { + "message": "Hide playlist" + }, + "hideRightButtons": { + "message": "Hide right buttons" + }, + "hideScrollForDetails": { + "message": "Hide «Scroll for details»" + }, + "hideViewsCount": { + "message": "Hide views count" + }, + "history": { + "message": "History" + }, + "home": { + "message": "Home" + }, + "hover": { + "message": "Hover" + }, + "hoverOnVideoPage": { + "message": "Hover on video page" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "How long ago the video was uploaded" + }, + "icons": { + "message": "Icons" + }, + "iconsOnly": { + "message": "Icons only" + }, + "importSettings": { + "message": "Import settings" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube icon in Browser" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube icon on YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube language" + }, + "improvedtubeVersion": { + "message": "ImprovedTube version" + }, + "improveLogo": { + "message": "Improve logo" + }, + "increasePlaybackSpeed": { + "message": "Increase playback speed" + }, + "increaseVolume": { + "message": "Increase volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "Languages" + }, + "legacyYoutube": { + "message": "Legacy YouTube" + }, + "light": { + "message": "Light" + }, + "lightBlue": { + "message": "Light blue" + }, + "lightGreen": { + "message": "Light green" + }, + "like": { + "message": "Like" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Lime" + }, + "list": { + "message": "List" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Live chat type" + }, + "loudnessNormalization": { + "message": "Loudness normalization" + }, + "markWatchedVideos": { + "message": "Mark watched videos" + }, + "mixer": { + "message": "Mixer" + }, + "myColors": { + "message": "My colors" + }, + "name": { + "message": "Name" + }, + "nativeMiniPlayer": { + "message": "Native mini player" + }, + "new": { + "message": "New" + }, + "nextVideo": { + "message": "Next video" + }, + "night": { + "message": "Night" + }, + "noActiveFeatures": { + "message": "No active features" + }, + "none": { + "message": "None" + }, + "noOpenVideoTabs": { + "message": "No open video tabs" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Old" + }, + "onAllVideos": { + "message": "On all videos" + }, + "onlyActiveOnYoutube": { + "message": "Only active on YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "onSubscribedChannels": { + "message": "On subscribed channels" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Other" + }, + "permissions": { + "message": "Permissions" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Pink" + }, + "plain": { + "message": "Plain" + }, + "platform": { + "message": "Platform" + }, + "playbackSpeed": { + "message": "Playback speed" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Player color" + }, + "playerSize": { + "message": "Player size" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "playPause": { + "message": "Play / Pause" + }, + "popupPlayer": { + "message": "Popup player" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Press any key or use mouse wheel." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Press any key or use mouse wheel" + }, + "previousVideo": { + "message": "Previous video" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "Purple" + }, + "quality": { + "message": "Quality" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Rate us" + }, + "red": { + "message": "Red" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Related videos" + }, + "removeRelatedSearchResults": { + "message": "Remove related search results" + }, + "repeat": { + "message": "Repeat" + }, + "reset": { + "message": "Reset" + }, + "resetAllSettings": { + "message": "Reset all settings" + }, + "resetAllShortcuts": { + "message": "Reset all shortcuts" + }, + "reverse": { + "message": "Reverse" + }, + "rotate": { + "message": "Rotate" + }, + "save": { + "message": "Save" + }, + "saveAs": { + "message": "Save as" + }, + "schedule": { + "message": "Schedule" + }, + "screen": { + "message": "Screen" + }, + "screenshot": { + "message": "Screenshot" + }, + "search": { + "message": "Search" + }, + "searchBarOnly": { + "message": "Search bar only" + }, + "seekBackward10Seconds": { + "message": "Seek backward 10 seconds" + }, + "seekForward10Seconds": { + "message": "Seek forward 10 seconds" + }, + "settings": { + "message": "Settings" + }, + "settingsSuccessfullyImported": { + "message": "Settings successfully imported" + }, + "shortcuts": { + "message": "Shortcuts" + }, + "showCardsOnMouseHover": { + "message": "Show cards on mouse hover" + }, + "showChannelVideosCount": { + "message": "Show channel videos count" + }, + "shuffle": { + "message": "Shuffle" + }, + "sidebar": { + "message": "Sidebar" + }, + "spacebar": { + "message": "Spacebar" + }, + "squaredUserImages": { + "message": "Squared user images" + }, + "static": { + "message": "Static" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscriptions": { + "message": "Subscriptions" + }, + "subtitles": { + "message": "Subtitles" + }, + "sunset": { + "message": "Sunset" + }, + "sunsetToSunrise": { + "message": "Sunset to sunrise" + }, + "systemPeferenceDark": { + "message": "System peference: dark" + }, + "systemPeferenceLight": { + "message": "System peference: light" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Text color" + }, + "themes": { + "message": "Themes" + }, + "thisWillRemoveAllCookies": { + "message": "This will remove all cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "This will remove all YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "This will reset all settings." + }, + "thisWillResetAllShortcuts": { + "message": "This will reset all shortcuts" + }, + "thumbnails": { + "message": "Thumbnails" + }, + "timeFrom": { + "message": "Time from" + }, + "timeTo": { + "message": "Time to" + }, + "todayAt": { + "message": "Today at" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Trailer autoplay" + }, + "translations": { + "message": "Translations" + }, + "transparentBackground": { + "message": "Transparent background" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Try to reload the page" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Up next autoplay" + }, + "use24HourFormat": { + "message": "Use 24-hour format" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video description will be expanded to get the name of the category" + }, + "videoFormats": { + "message": "Video formats" + }, + "videos": { + "message": "Videos" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Watch later" + }, + "watchTime": { + "message": "Watch time" + }, + "whenTabIsChanged": { + "message": "When tab is changed" + }, + "white": { + "message": "White" + }, + "yellow": { + "message": "Yellow" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (left)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (right)" + }, + "youtubeHomePage": { + "message": "YouTube home page" + }, + "youtubeLanguage": { + "message": "YouTube language" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limits video quality to 1080p for h.264 codec" + } +} From 7389d453595b0e3ef4689fd1655785fcfe63e9a9 Mon Sep 17 00:00:00 2001 From: Serban Andrei Date: Sun, 14 Mar 2021 20:38:38 +0200 Subject: [PATCH 0066/1224] Added romanian translation --- _locales/ro/messages.json | 474 +++++++++++++++++++------------------- 1 file changed, 237 insertions(+), 237 deletions(-) diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 1caff4eb7..937d10bdd 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -1,60 +1,60 @@ { "about": { - "message": "About" + "message": "Despre" }, "accept": { - "message": "Accept" + "message": "Acceptă" }, "activate": { - "message": "Activate" + "message": "Activează" }, "activateCaptions": { - "message": "Activate captions" + "message": "Activează subtitrările" }, "activated": { - "message": "Activated" + "message": "Activat" }, "activatedFeatures": { - "message": "Activated features" + "message": "Caracteristici activate" }, "activateFullscreen": { - "message": "Activate fullscreen" + "message": "Activează ecran complet" }, "activeFeatures": { - "message": "Active features" + "message": "Caracteristici active" }, "addScrollToTop": { - "message": "Add «Scroll to top»" + "message": "Adaugă «Derulează la început»" }, "ads": { - "message": "Ads" + "message": "Reclame" }, "all": { - "message": "All" + "message": "Tot" }, "allow": { - "message": "Allow" + "message": "Permite" }, "allow60fps": { - "message": "Allow 60fps" + "message": "Permite 60fps" }, "forceSDR": { - "message": "Force SDR" + "message": "Forțează SDR" }, "alwaysActive": { - "message": "Always active" + "message": "Mereu activ" }, "alwaysShowProgressBar": { - "message": "Always show progress bar" + "message": "Arată mereu bara de progres" }, "amber": { "message": "Amber" }, "analyzer": { - "message": "Analyzer" + "message": "Analizator" }, "appearance": { - "message": "Appearance" + "message": "Aparențe" }, "ARROWDOWN": { "message": "⇩" @@ -72,7 +72,7 @@ "message": "Audio" }, "audioFormats": { - "message": "Audio formats" + "message": "Formaturi audio" }, "auto": { "message": "Auto" @@ -81,67 +81,67 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pauzează automat la schimbarea tab-ului" }, "autoplay": { - "message": "Autoplay" + "message": "Pornește automat" }, "backupAndReset": { - "message": "Backup & reset" + "message": "Salvează & resetează" }, "baseOnSystemColorScheme": { - "message": "Base on system color scheme" + "message": "Bazat pe schema de culori a sistemului" }, "belowPlayer": { "message": "Below player" }, "black": { - "message": "Black" + "message": "Înapoi" }, "blacklist": { - "message": "Blacklist" + "message": "Lista neagră" }, "blockAll": { - "message": "Block all" + "message": "Blochează tot" }, "blue": { - "message": "Blue" + "message": "Albastru" }, "blueGray": { - "message": "Blue gray" + "message": "Gri albastru" }, "bluelight": { - "message": "Bluelight" + "message": "Lumină albastră" }, "brown": { - "message": "Brown" + "message": "Maro" }, "browser": { "message": "Browser" }, "browserVersion": { - "message": "Browser version" + "message": "Versiunea browserului" }, "bubbles": { - "message": "Bubbles" + "message": "Bule" }, "bug": { "message": "Bug" }, "buttons": { - "message": "Buttons" + "message": "Butoane" }, "cancel": { - "message": "Cancel" + "message": "Anulează" }, "categories": { - "message": "Categories" + "message": "Categorii" }, "channel": { - "message": "Channel" + "message": "Canal" }, "channels": { - "message": "Channels" + "message": "Canale" }, "clipboard": { "message": "Clipboard" @@ -150,133 +150,133 @@ "message": "Codec h.264" }, "collapsed": { - "message": "Collapsed" + "message": "Închis" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Închide secțiunea de subscripții" }, "comments": { - "message": "Comments" + "message": "Comentarii" }, "confirmationBeforeClosing": { - "message": "Confirmation before closing" + "message": "Confirmă înainte să închizi" }, "cookies": { "message": "Cookies" }, "cores": { - "message": "Cores" + "message": "Nuclee" }, "cropChapterTitles": { - "message": "Crop chapter titles" + "message": "Taie titlurile capitolelor" }, "customCss": { - "message": "Custom CSS" + "message": "CSS Personalizat" }, "customJs": { - "message": "Custom JS" + "message": "JS Personalizat" }, "customMiniPlayer": { - "message": "Custom Mini-Player" + "message": "Mini-Player Personalizat" }, "openPopupPlayer": { - "message": "Open video/playlist in a new window" + "message": "Deschide videoclipul/playlistul într-o fereastră nouă" }, "cyan": { "message": "Cyan" }, "dark": { - "message": "Dark" + "message": "Închis" }, "darkTheme": { - "message": "Dark theme" + "message": "Temă închisă" }, "dateAndTime": { - "message": "Date & time" + "message": "Data & timpul" }, "dawn": { - "message": "Dawn" + "message": "Răsărit" }, "decreasePlaybackSpeed": { - "message": "Decrease playback speed" + "message": "Scade viteza playback-ului" }, "decreaseVolume": { - "message": "Decrease volume" + "message": "Scade volumul" }, "deepOrange": { - "message": "Deep orange" + "message": "Portocaliu închis" }, "deepPurple": { - "message": "Deep purple" + "message": "Mov închis" }, "defaultChannelTab": { - "message": "Default channel tab" + "message": "Tab-ul implicit al canalului" }, "deleteYoutubeCookies": { - "message": "Delete YouTube cookies" + "message": "Șterge cookie-urile YouTube" }, "description": { - "message": "Description" + "message": "Descriere" }, "desert": { - "message": "Desert" + "message": "Deșert" }, "details": { - "message": "Details" + "message": "Detalii" }, "developerOptions": { - "message": "Developer options" + "message": "Opțiunile dezvoltatorului" }, "device": { - "message": "Device" + "message": "Dispozitiv" }, "dim": { - "message": "Dim" + "message": "Întunecă" }, "disabled": { - "message": "Disabled" + "message": "Dezactivat" }, "dislike": { - "message": "Dislike" + "message": "Nu îmi place" }, "donate": { - "message": "Donate" + "message": "Donează" }, "doNotChange": { - "message": "Don't change" + "message": "Nu schimba" }, "draggable": { - "message": "Draggable" + "message": "Poate fi tras" }, "email": { "message": "Email" }, "empty": { - "message": "Empty" + "message": "Gol" }, "enabled": { - "message": "Enabled" + "message": "Activat" }, "enabledForced": { - "message": "Enabled (forced)" + "message": "Activat (forțat)" }, "expanded": { - "message": "Expanded" + "message": "Deschis" }, "exportSettings": { - "message": "Export settings" + "message": "Exportă setările" }, "extension": { - "message": "Extension" + "message": "Extensie" }, "file": { - "message": "File" + "message": "Fișier" }, "filters": { - "message": "Filters" + "message": "Filtre" }, "fitToWindow": { - "message": "Fit to window" + "message": "Potrivește în fereastră" }, "flash": { "message": "Flash" @@ -285,534 +285,534 @@ "message": "Font" }, "footer": { - "message": "Footer" + "message": "Subsol" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Viteză de playback forțată" }, "forcedTheaterMode": { - "message": "Forced theater mode" + "message": "Modul teatru forțat" }, "forcedVolume": { - "message": "Forced volume" + "message": "Volum forțat" }, "foundABug": { - "message": "Found a bug?" + "message": "Ai găsit un bug?" }, "fullWindow": { - "message": "Full window" + "message": "Ecran complet" }, "general": { "message": "General" }, "geoPreference": { - "message": "Geo Preference" + "message": "Preferințe Geo" }, "github": { "message": "GitHub" }, "goToSearchBox": { - "message": "Go to search box" + "message": "Du-te la casuța de căutare" }, "gpu": { "message": "GPU" }, "green": { - "message": "Green" + "message": "Verde" }, "hdThumbnail": { - "message": "HD thumbnail" + "message": "Miniatură HD" }, "hdThumbnails": { - "message": "HD thumbnails" + "message": "Miniaturi HD" }, "header": { - "message": "Header" + "message": "Antet" }, "hidden": { - "message": "Hidden" + "message": "Ascuns" }, "hiddenOnVideoPage": { - "message": "Hidden on video page" + "message": "Ascuns pe pagina video" }, "hideAnimatedThumbnails": { - "message": "Hide animated thumbnails" + "message": "Ascunde miniaturile animate" }, "hideAnnotations": { - "message": "Hide annotations" + "message": "Ascunde adnotările" }, "hideCards": { - "message": "Hide cards" + "message": "Ascunde cardurile" }, "hideDetails": { - "message": "Hide details" + "message": "Ascunde detaliile" }, "hideEndscreen": { - "message": "Hide endscreen" + "message": "Ascunde ecranul de final" }, "hideFeaturedContent": { - "message": "Hide featured content" + "message": "Ascunde conținutul prezentat" }, "hideFooter": { - "message": "Hide footer" + "message": "Ascunde subsolul" }, "hideGradientBottom": { - "message": "Hide Gradient Bottom" + "message": "Ascunde Gradient Bottom" }, "hidePlaylist": { - "message": "Hide playlist" + "message": "Ascunde playlistul" }, "hideRightButtons": { - "message": "Hide right buttons" + "message": "Ascunde butoanele din dreapta" }, "hideScrollForDetails": { - "message": "Hide «Scroll for details»" + "message": "Ascunde «Derulează pentru detalii»" }, "hideViewsCount": { - "message": "Hide views count" + "message": "Ascunde numărul vizualizărilor" }, "history": { - "message": "History" + "message": "Istoric" }, "home": { - "message": "Home" + "message": "Acasă" }, "hover": { "message": "Hover" }, "hoverOnVideoPage": { - "message": "Hover on video page" + "message": "Hover pe pagina video" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Acum cât timp a fost încărcat videoclipul" }, "icons": { - "message": "Icons" + "message": "Iconițe" }, "iconsOnly": { - "message": "Icons only" + "message": "Doar iconițe" }, "importSettings": { - "message": "Import settings" + "message": "Importă setările" }, "improvedtubeIconInBrowser": { - "message": "ImprovedTube icon in Browser" + "message": "Iconița ImprovedTube în browser" }, "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icon on YouTube" + "message": "Iconița ImprovedTube pe YouTube" }, "improvedtubeLanguage": { - "message": "ImprovedTube language" + "message": "Limba ImprovedTube" }, "improvedtubeVersion": { - "message": "ImprovedTube version" + "message": "Versiunea ImprovedTube" }, "improveLogo": { - "message": "Improve logo" + "message": "Îmbunătățește sigla" }, "increasePlaybackSpeed": { - "message": "Increase playback speed" + "message": "Crește viteza de playback" }, "increaseVolume": { - "message": "Increase volume" + "message": "Crește volumul" }, "indigo": { "message": "Indigo" }, "items": { - "message": "Items" + "message": "Obiecte" }, "languages": { - "message": "Languages" + "message": "Limbi" }, "legacyYoutube": { - "message": "Legacy YouTube" + "message": "YouTube vechi" }, "light": { - "message": "Light" + "message": "Deschis" }, "lightBlue": { - "message": "Light blue" + "message": "Albastru deschis" }, "lightGreen": { - "message": "Light green" + "message": "Verde deschis" }, "like": { - "message": "Like" + "message": "Îmi place" }, "likes": { - "message": "Likes" + "message": "Like-uri" }, "lime": { "message": "Lime" }, "list": { - "message": "List" + "message": "Listă" }, "liveChat": { - "message": "Live chat" + "message": "Chat live" }, "liveChatType": { - "message": "Live chat type" + "message": "Chat live scrie" }, "loudnessNormalization": { - "message": "Loudness normalization" + "message": "Normalizează zgomotul" }, "markWatchedVideos": { - "message": "Mark watched videos" + "message": "Marchează videoclipurile văzute" }, "mixer": { "message": "Mixer" }, "myColors": { - "message": "My colors" + "message": "Culorile mele" }, "name": { - "message": "Name" + "message": "Nume" }, "nativeMiniPlayer": { - "message": "Native mini player" + "message": "Mini-Player nativ" }, "new": { - "message": "New" + "message": "Nou" }, "nextVideo": { - "message": "Next video" + "message": "Următorul video" }, "night": { - "message": "Night" + "message": "Noapte" }, "noActiveFeatures": { - "message": "No active features" + "message": "Nici o caracteristică activată" }, "none": { - "message": "None" + "message": "Nimic" }, "noOpenVideoTabs": { - "message": "No open video tabs" + "message": "Niciun tab video deschis" }, "normal": { "message": "Normal" }, "old": { - "message": "Old" + "message": "Vechi" }, "onAllVideos": { - "message": "On all videos" + "message": "Pe toate videoclipurile" }, "onlyActiveOnYoutube": { - "message": "Only active on YouTube" + "message": "Activ doar pe YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Doar o instanță de player care merge" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Pe canalele abonate" }, "orange": { - "message": "Orange" + "message": "Portocaliu" }, "os": { - "message": "OS" + "message": "SO" }, "other": { - "message": "Other" + "message": "Altele" }, "permissions": { - "message": "Permissions" + "message": "Permisiuni" }, "pictureInPicture": { "message": "Picture-in-Picture" }, "pink": { - "message": "Pink" + "message": "Roz" }, "plain": { - "message": "Plain" + "message": "Simplu" }, "platform": { - "message": "Platform" + "message": "Platformă" }, "playbackSpeed": { - "message": "Playback speed" + "message": "Viteza playbackului" }, "player": { "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Culoare player" }, "playerSize": { - "message": "Player size" + "message": "Mărime player" }, "playlist": { "message": "Playlist" }, "playlists": { - "message": "Playlists" + "message": "Playlisturi" }, "playPause": { - "message": "Play / Pause" + "message": "Redă / Pauză" }, "popupPlayer": { - "message": "Popup player" + "message": "Player popup" }, "position": { - "message": "Position" + "message": "Poziție" }, "pressAnyKeyOrScroll": { - "message": "Press any key or use mouse wheel." + "message": "Apasă orice buton sau folosește rotița mouseului." }, "pressAnyKeyOrUseMouseWheel": { - "message": "Press any key or use mouse wheel" + "message": "Apasă orice buton sau folosește rotița mouseului" }, "previousVideo": { - "message": "Previous video" + "message": "Videoclipul anterior" }, "primaryColor": { - "message": "Primary color" + "message": "Culoarea primară" }, "purple": { - "message": "Purple" + "message": "Mov" }, "quality": { - "message": "Quality" + "message": "Calitate" }, "ram": { "message": "RAM" }, "rateUs": { - "message": "Rate us" + "message": "Dă-ne o notă" }, "red": { - "message": "Red" + "message": "Roșu" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Arată butonul nu îmi place cu culoare roșie" }, "relatedVideos": { - "message": "Related videos" + "message": "Videoclipuri asemănătoare" }, "removeRelatedSearchResults": { - "message": "Remove related search results" + "message": "Elimină rezultatele asemănătoare a căutării" }, "repeat": { - "message": "Repeat" + "message": "Repetă" }, "reset": { - "message": "Reset" + "message": "Resetează" }, "resetAllSettings": { - "message": "Reset all settings" + "message": "Resetează toate setările" }, "resetAllShortcuts": { - "message": "Reset all shortcuts" + "message": "Resetează toate scurtăturile" }, "reverse": { - "message": "Reverse" + "message": "Invers" }, "rotate": { - "message": "Rotate" + "message": "Rotește" }, "save": { - "message": "Save" + "message": "Salvează" }, "saveAs": { - "message": "Save as" + "message": "Salvează ca" }, "schedule": { - "message": "Schedule" + "message": "Program" }, "screen": { - "message": "Screen" + "message": "Ecran" }, "screenshot": { - "message": "Screenshot" + "message": "Captură de ecran" }, "search": { - "message": "Search" + "message": "Caută" }, "searchBarOnly": { - "message": "Search bar only" + "message": "Doar bara de căutare" }, "seekBackward10Seconds": { - "message": "Seek backward 10 seconds" + "message": "Sari înapoi 10 secunde" }, "seekForward10Seconds": { - "message": "Seek forward 10 seconds" + "message": "Sari înainte 10 secunde" }, "settings": { - "message": "Settings" + "message": "Setări" }, "settingsSuccessfullyImported": { - "message": "Settings successfully imported" + "message": "Setările au fost importate cu succes" }, "shortcuts": { - "message": "Shortcuts" + "message": "Scurtături" }, "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" + "message": "Arată cardurile la hover-ul cu mouseul" }, "showChannelVideosCount": { - "message": "Show channel videos count" + "message": "Arată numărul de videoclipuri al canalului" }, "shuffle": { - "message": "Shuffle" + "message": "Amestecă" }, "sidebar": { - "message": "Sidebar" + "message": "Bara laterală" }, "spacebar": { - "message": "Spacebar" + "message": "Bara de spațiu" }, "squaredUserImages": { - "message": "Squared user images" + "message": "Avatarele utilizatorului pătrat" }, "static": { "message": "Static" }, "statsForNerds": { - "message": "Show Stats for Nerds" + "message": "Arată Statisticile pentru Tocilari" }, "step": { - "message": "Step" + "message": "Pas" }, "stop": { "message": "Stop" }, "style": { - "message": "Style" + "message": "Stil" }, "styles": { - "message": "Styles" + "message": "Stiluri" }, "subscriptions": { - "message": "Subscriptions" + "message": "Abonamente" }, "subtitles": { - "message": "Subtitles" + "message": "Subtitrări" }, "sunset": { - "message": "Sunset" + "message": "Apus" }, "sunsetToSunrise": { - "message": "Sunset to sunrise" + "message": "De la apus la răsărit" }, "systemPeferenceDark": { - "message": "System peference: dark" + "message": "Preferința sitemului: închis" }, "systemPeferenceLight": { - "message": "System peference: light" + "message": "Preferința sitemului: deschis" }, "teal": { "message": "Teal" }, "textColor": { - "message": "Text color" + "message": "Culoarea textului" }, "themes": { - "message": "Themes" + "message": "Teme" }, "thisWillRemoveAllCookies": { - "message": "This will remove all cookies." + "message": "Asta va șterge toate cookie-urile." }, "thisWillRemoveAllYouTubeCookies": { - "message": "This will remove all YouTube cookies" + "message": "Asta va șterge toate cooki-urile YouTube." }, "thisWillResetAllSettings": { - "message": "This will reset all settings." + "message": "Asta va reseta toate setările." }, "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" + "message": "Asta va șterge toate scurtăturile" }, "thumbnails": { - "message": "Thumbnails" + "message": "Miniaturi" }, "timeFrom": { - "message": "Time from" + "message": "Timp de la" }, "timeTo": { - "message": "Time to" + "message": "Timp până la" }, "todayAt": { - "message": "Today at" + "message": "Azi la" }, "toggleCards": { - "message": "Toggle cards" + "message": "Comută cardurile" }, "topChat": { "message": "Top chat" }, "trailerAutoplay": { - "message": "Trailer autoplay" + "message": "Auto-redă trailerul" }, "translations": { - "message": "Translations" + "message": "Traduceri" }, "transparentBackground": { - "message": "Transparent background" + "message": "Fundal Transparent" }, "trending": { - "message": "Trending" + "message": "Tendințe" }, "tryToReloadThePage": { - "message": "Try to reload the page" + "message": "Încearcă să reîmprospătezi pagina" }, "type": { - "message": "Type" + "message": "Scrie" }, "upNextAutoplay": { - "message": "Up next autoplay" + "message": "Urmează" }, "use24HourFormat": { - "message": "Use 24-hour format" + "message": "Folosește formatul de 24 de ore" }, "version": { - "message": "Version" + "message": "Versiune" }, "video": { "message": "Video" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" + "message": "Descripția videoclipului va fi extinsă pentru a afla numele categoriei" }, "videoFormats": { - "message": "Video formats" + "message": "Formatul videoclipului" }, "videos": { - "message": "Videos" + "message": "Videoclipuri" }, "volume": { - "message": "Volume" + "message": "Volum" }, "watchLater": { - "message": "Watch later" + "message": "Vezi mai târziu" }, "watchTime": { - "message": "Watch time" + "message": "Timp de vizionare" }, "whenTabIsChanged": { - "message": "When tab is changed" + "message": "Când tabul este schimbat" }, "white": { - "message": "White" + "message": "Alb" }, "yellow": { - "message": "Yellow" + "message": "Galben" }, "youtubeHeaderLeft": { - "message": "YouTube Header (left)" + "message": "Antetul YouTube (stânga)" }, "youtubeHeaderRight": { - "message": "YouTube Header (right)" + "message": "Antetul YouTube (dreapta)" }, "youtubeHomePage": { - "message": "YouTube home page" + "message": "Pagina de pornire YouTube" }, "youtubeLanguage": { - "message": "YouTube language" + "message": "Limba de afișare YouTube" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limits video quality to 1080p for h.264 codec" + "message": "YouTube limitează calitatea videoclipului la 1080p pentru codecul h.264" } } From b156e8aa023ee2cc5a91946257b83dacd285eff5 Mon Sep 17 00:00:00 2001 From: JuniorGenius Date: Wed, 17 Mar 2021 15:09:38 -0700 Subject: [PATCH 0067/1224] Added autoplay toggle shortcut --- _locales/en/messages.json | 3 +++ popup.js | 4 ++++ youtube-scripts.js | 8 ++++++++ 3 files changed, 15 insertions(+) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 1643e3546..cef685d13 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -737,6 +737,9 @@ "todayAt": { "message": "Today at" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "Toggle cards" }, diff --git a/popup.js b/popup.js index 3fe91e35c..a536cb7a2 100644 --- a/popup.js +++ b/popup.js @@ -2715,6 +2715,10 @@ Menu.main.section.shortcuts = { type: 'shortcut', label: 'stop' }, + shortcut_toggle_autoplay: { + type: 'shortcut', + label: 'toggleAutoplay' + }, shortcut_next_video: { type: 'shortcut', label: 'nextVideo', diff --git a/youtube-scripts.js b/youtube-scripts.js index 0ebc0b9b2..cc24fb052 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2247,6 +2247,14 @@ ImprovedTube.shortcuts = function() { player.stopVideo(); } }, + shortcut_toggle_autoplay: function() { + var toggle = document.querySelector('.ytp-autonav-toggle-button'), + attribute = toggle.getAttribute('aria-checked') === 'true'; + + if (toggle) { + toggle.click(); + } + }, shortcut_next_video: function() { var player = document.querySelector('#movie_player'); From 3c7132ecfdf31d28a47e938d9d9cef2b7752712c Mon Sep 17 00:00:00 2001 From: JuniorGenius Date: Wed, 17 Mar 2021 15:20:58 -0700 Subject: [PATCH 0068/1224] Detabbed code --- youtube-scripts.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index cc24fb052..e780f0d45 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -99,9 +99,9 @@ ImprovedTube.youtubeHomePage = function() { option === '/playlist?list=WL' ) { var node_list = document.querySelectorAll(` - a[href="/"]:not([role=tablist]), - a[href="https://www.youtube.com/"]:not([role=tablist]), - a[it-origin="/"]:not([role=tablist]) + a[href="/"]:not([role=tablist]), + a[href="https://www.youtube.com/"]:not([role=tablist]), + a[it-origin="/"]:not([role=tablist]) `); for (var i = 0, l = node_list.length; i < l; i++) { @@ -2249,10 +2249,10 @@ ImprovedTube.shortcuts = function() { }, shortcut_toggle_autoplay: function() { var toggle = document.querySelector('.ytp-autonav-toggle-button'), - attribute = toggle.getAttribute('aria-checked') === 'true'; + attribute = toggle.getAttribute('aria-checked') === 'true'; if (toggle) { - toggle.click(); + toggle.click(); } }, shortcut_next_video: function() { From 4b2e2c3b0a76a370224b84c250a47cc4502709f7 Mon Sep 17 00:00:00 2001 From: JuniorGenius Date: Sat, 20 Mar 2021 02:37:01 -0700 Subject: [PATCH 0069/1224] Added option to hide controls & shortcut to toggle them + Option "Hide player controls" will permanently hide the YouTube player overlay until the option is disabled (or toggled via shortcut) + New shortcut that allows toggling of the player controls while watching a video. --- _locales/en/messages.json | 6 ++++++ popup.js | 9 +++++++++ youtube-scripts.js | 39 ++++++++++++++++++++++++++++++++++++--- 3 files changed, 51 insertions(+), 3 deletions(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 1643e3546..bc47f45b2 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -344,6 +344,9 @@ "hideCards": { "message": "Hide cards" }, + "hideControls": { + "message": "Hide player controls" + }, "hideDetails": { "message": "Hide details" }, @@ -740,6 +743,9 @@ "toggleCards": { "message": "Toggle cards" }, + "toggleControls": { + "message": "Toggle player controls" + }, "topChat": { "message": "Top chat" }, diff --git a/popup.js b/popup.js index 3fe91e35c..c6dd839e4 100644 --- a/popup.js +++ b/popup.js @@ -2589,6 +2589,11 @@ Menu.main.section.player = { player_popup_button: { type: 'switch', label: 'popupPlayer' + }, + player_hide_controls: { + type: 'switch', + label: 'hideControls', + value: false } } }; @@ -2700,6 +2705,10 @@ Menu.main.section.shortcuts = { player_section: { type: 'section', + shortcut_toggle_controls: { + type: 'shortcut', + label: 'toggleControls' + }, shortcut_picture_in_picture: { type: 'shortcut', label: 'pictureInPicture' diff --git a/youtube-scripts.js b/youtube-scripts.js index 0ebc0b9b2..67963bfad 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -48,6 +48,7 @@ 4.16 Rotate 4.17 Popup player 4.18 Force SDR + 4.19 Hide controls 5.0 Playlist 5.1 Up next autoplay 5.2 Reverse @@ -99,9 +100,9 @@ ImprovedTube.youtubeHomePage = function() { option === '/playlist?list=WL' ) { var node_list = document.querySelectorAll(` - a[href="/"]:not([role=tablist]), - a[href="https://www.youtube.com/"]:not([role=tablist]), - a[it-origin="/"]:not([role=tablist]) + a[href="/"]:not([role=tablist]), + a[href="https://www.youtube.com/"]:not([role=tablist]), + a[it-origin="/"]:not([role=tablist]) `); for (var i = 0, l = node_list.length; i < l; i++) { @@ -1877,6 +1878,23 @@ ImprovedTube.playerSDR = function() { } }; +/*------------------------------------------------------------------------------ +4.19 Hide controls +------------------------------------------------------------------------------*/ + +ImprovedTube.playerControls = function() { + if (!node) { + var node = document.querySelector('.html5-video-player'); + } + + if (this.storage.player_hide_controls === true) { + node.hideControls(); + } + else { + node.showControls(); + } +}; + /*------------------------------------------------------------------------------ 5.0 PLAYLIST -------------------------------------------------------------------------------- @@ -2229,6 +2247,20 @@ ImprovedTube.shortcuts = function() { video.requestPictureInPicture(); } }, + shortcut_toggle_controls: function() { + var player = document.querySelector('.html5-video-player'); + + if (player && player.hideControls && player.showControls) { + ImprovedTube.storage.player_hide_controls = !ImprovedTube.storage.player_hide_controls; + + if (ImprovedTube.storage.player_hide_controls === true) { + player.hideControls(); + } + else { + player.showControls(); + } + } + }, shortcut_play_pause: function() { var video = document.querySelector('#movie_player video'); @@ -3009,6 +3041,7 @@ ImprovedTube.videoPageUpdate = function() { this.playerRepeatButton(); this.playerRotateButton(); this.playerPopupButton(); + this.playerControls(); this.playlistUpNextAutoplay(); this.playlistReverse(); From f666840b5b881235ea9160f952dad7765f02bbb9 Mon Sep 17 00:00:00 2001 From: JuniorGenius Date: Sat, 20 Mar 2021 03:05:47 -0700 Subject: [PATCH 0070/1224] Added option to hide thumbnail overlays --- _locales/en/messages.json | 3 +++ popup.js | 5 +++++ youtube-scripts.js | 24 +++++++++++++++++++++--- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 1643e3546..54c91b882 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -368,6 +368,9 @@ "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideThumbnailOverlay": { + "message": "Hide buttons on thumbnails" + }, "hideViewsCount": { "message": "Hide views count" }, diff --git a/popup.js b/popup.js index 3fe91e35c..aef939bb7 100644 --- a/popup.js +++ b/popup.js @@ -1592,6 +1592,11 @@ Menu.main.section.general = { type: 'switch', label: 'hideAnimatedThumbnails', tags: 'preview' + }, + hide_thumbnail_overlay: { + type: 'switch', + label: 'hideThumbnailOverlay', + tags: 'preview' } } }; diff --git a/youtube-scripts.js b/youtube-scripts.js index 0ebc0b9b2..5124b845c 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -11,6 +11,7 @@ 1.5 Mark watched videos 1.6 Only one player instance playing 1.7 HD thumbnails + 1.8 Hide thumbnail overlay 2.0 Appearance 2.1 Player 2.1.1 Forced theater mode @@ -99,9 +100,9 @@ ImprovedTube.youtubeHomePage = function() { option === '/playlist?list=WL' ) { var node_list = document.querySelectorAll(` - a[href="/"]:not([role=tablist]), - a[href="https://www.youtube.com/"]:not([role=tablist]), - a[it-origin="/"]:not([role=tablist]) + a[href="/"]:not([role=tablist]), + a[href="https://www.youtube.com/"]:not([role=tablist]), + a[it-origin="/"]:not([role=tablist]) `); for (var i = 0, l = node_list.length; i < l; i++) { @@ -387,6 +388,20 @@ ImprovedTube.hdThumbnails = function() { } }; +/*------------------------------------------------------------------------------ +1.8 HIDE THUMBNAIL OVERLAY +------------------------------------------------------------------------------*/ + +ImprovedTube.hideThumbnailOverlay = function() { + if (this.storage.hide_thumbnail_overlay === true) { + var overlays = document.querySelectorAll('#hover-overlays'); + + for (var i = 0, l = overlays.length; i < l; i++) { + overlays[i].remove(); + } + } +}; + /*------------------------------------------------------------------------------ 2.0 APPEARANCE @@ -2981,6 +2996,7 @@ ImprovedTube.pageUpdateListener = function() { ImprovedTube.collapseOfSubscriptionSections(); ImprovedTube.markWatchedVideos(); ImprovedTube.hdThumbnails(); + ImprovedTube.hideThumbnailOverlay(); ImprovedTube.channelDefaultTab(); @@ -3074,6 +3090,7 @@ ImprovedTube.DOMContentLoaded = function() { ImprovedTube.confirmationBeforeClosing(); ImprovedTube.markWatchedVideos(); ImprovedTube.hdThumbnails(); + ImprovedTube.hideThumbnailOverlay(); ImprovedTube.channelDefaultTab(); @@ -3303,6 +3320,7 @@ ImprovedTube.init = function() { window.addEventListener('load', function() { ImprovedTube.hdThumbnails(); + ImprovedTube.hideThumbnailOverlay(); ImprovedTube.channelDefaultTab(); }); }; \ No newline at end of file From c06ba2fe493aca63228bfdcb28f37f0efed249f8 Mon Sep 17 00:00:00 2001 From: JuniorGenius Date: Sun, 21 Mar 2021 03:05:27 -0700 Subject: [PATCH 0071/1224] Use CSS instead of remove() --- youtube-scripts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 5124b845c..89cbd2afc 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -397,7 +397,7 @@ ImprovedTube.hideThumbnailOverlay = function() { var overlays = document.querySelectorAll('#hover-overlays'); for (var i = 0, l = overlays.length; i < l; i++) { - overlays[i].remove(); + overlays[i].style.display = "none"; } } }; From faa008482ed92138b72bd055215b86d4357244ee Mon Sep 17 00:00:00 2001 From: Serdar <35432275+daswareinfach@users.noreply.github.com> Date: Sun, 21 Mar 2021 19:37:14 +0300 Subject: [PATCH 0072/1224] Update messages.json A update for missing translations. --- _locales/tr/messages.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 960c01827..8b2f51dc1 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -168,7 +168,7 @@ "message": "Çekirdekler" }, "cropChapterTitles": { - "message": "Crop chapter titles" + "message": "Bölüm başlıklarını kırp" }, "customCss": { "message": "Özel CSS" @@ -375,7 +375,7 @@ "message": "Hover" }, "hoverOnVideoPage": { - "message": "Hover on video page" + "message": "Videonun Üzerinde Hover" }, "howLongAgoTheVideoWasUploaded": { "message": "Video ne kadar süre önce yüklendi" @@ -498,7 +498,7 @@ "message": "Yalnızca YouTube'da etkin" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Sadece bir oynatıcı örneği" }, "onSubscribedChannels": { "message": "Abone olunan kanallarda" @@ -582,7 +582,7 @@ "message": "Kırmızı" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Beğenmeme düğmesinini kırmızı renkte göster" }, "relatedVideos": { "message": "İlgili videolar" @@ -732,10 +732,10 @@ "message": "Bugün" }, "toggleCards": { - "message": "Toggle cards" + "message": "Kartları aç/kapat" }, "topChat": { - "message": "Top chat" + "message": "En İyi Sohbet Mesajları" }, "trailerAutoplay": { "message": "Fragman otomatik oynatımı" @@ -747,7 +747,7 @@ "message": "Saydam arka plan" }, "trending": { - "message": "Trending" + "message": "Trendler" }, "tryToReloadThePage": { "message": "Sayfayı yeniden yüklemeyi deneyin" From b584c2f57c944a93d445a95c22ee455aac3e3310 Mon Sep 17 00:00:00 2001 From: Abdul Muttaqin Date: Mon, 22 Mar 2021 12:08:19 +0700 Subject: [PATCH 0073/1224] Fix untranslated and wrong grammar --- _locales/id/messages.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 28bc73670..076f39375 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -783,10 +783,10 @@ "message": "Kuning" }, "youtubeHeaderLeft": { - "message": "Kepala YouTube (kiri)" + "message": "Header YouTube (kiri)" }, "youtubeHeaderRight": { - "message": "Kepala YouTube (kanan)" + "message": "Header YouTube (kanan)" }, "youtubeHomePage": { "message": "Beranda YouTube" @@ -798,12 +798,12 @@ "message": "YouTube membatasi kualitas video hingga 1080p untuk codec h.264" }, "hideGradientBottom": { - "message": "Hide Gradient Bottom" + "message": "Sembunyikan Gradient Bagian Bawah" }, "statsForNerds": { - "message": "Show Stats for Nerds" + "message": "Tampilkan statistik bagi para 'kutu buku'" }, "toggleCards": { - "message": "Toggle cards" + "message": "Alihkan kartu" } } From 4215a05c22ebd09a5677db31e68bd874229ace21 Mon Sep 17 00:00:00 2001 From: Abdul Muttaqin Date: Mon, 22 Mar 2021 12:12:45 +0700 Subject: [PATCH 0074/1224] Update messages.json --- _locales/id/messages.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 28bc73670..08efe0fb4 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -1,6 +1,6 @@ { "cropChapterTitles": { - "message": "Hilangkan judul babak" + "message": "Potong bagian judul " }, "about": { "message": "Tentang" @@ -54,7 +54,7 @@ "message": "Amber" }, "analyzer": { - "message": "Analisa" + "message": "Pengnalisa" }, "appearance": { "message": "Tampilan" From 32c06a02ea618ed36267f25e90221656b314f388 Mon Sep 17 00:00:00 2001 From: JuniorGenius Date: Mon, 22 Mar 2021 02:23:22 -0700 Subject: [PATCH 0075/1224] Fixed stuck video quality --- youtube-scripts.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 0ebc0b9b2..8f21e013f 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3015,6 +3015,8 @@ ImprovedTube.videoPageUpdate = function() { this.playlistRepeat(); this.playlistShuffle(); + ImprovedTube.initialVideoUpdateDone = true; + var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); if (video_id) { @@ -3035,13 +3037,17 @@ ImprovedTube.videoPageUpdate = function() { ------------------------------------------------------------------------------*/ ImprovedTube.video_src = false; +ImprovedTube.initialVideoUpdateDone = false; ImprovedTube.videoUpdated = function() { this.playerAds(); this.playerPlaybackSpeed(); - this.playerQuality(); this.playerVolume(); this.playlistUpNextAutoplay(); + + if (ImprovedTube.initialVideoUpdateDone !== true) { + this.playerQuality(); + } }; ImprovedTube.timeupdate = function() { From 2bd76ae667d11243bd55f710a54441b1b50f7617 Mon Sep 17 00:00:00 2001 From: JuniorGenius Date: Mon, 22 Mar 2021 13:09:12 -0700 Subject: [PATCH 0076/1224] Included other affected funcs Included playbackSpeed, playerVolume, and playlistUpNextAutoplay, as they were also affected by this, as per @EvgenKo423's suggestion --- youtube-scripts.js | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 8f21e013f..6aae2120f 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1130,27 +1130,27 @@ ImprovedTube.playerAds = function() { clearInterval(ImprovedTube.adInterval); } - if (ImprovedTube.storage.player_ads === 'block_all') { - ImprovedTube.adInterval = setInterval(function() { - var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); + var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); - if (button) { - button.click(); - - clearInterval(ImprovedTube.adInterval); - } - }, 50); - } else if (ImprovedTube.storage.player_ads === 'subscribed_channels') { - ImprovedTube.adInterval = setInterval(function() { - var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); + if(button) { + if (ImprovedTube.storage.player_ads === 'block_all') { + ImprovedTube.adInterval = setInterval(function() { + if (button) { + button.click(); - if (button && !document.querySelector('#meta paper-button[subscribed]')) { - button.click(); + clearInterval(ImprovedTube.adInterval); + } + }, 50); + } else if (ImprovedTube.storage.player_ads === 'subscribed_channels') { + ImprovedTube.adInterval = setInterval(function() { + if (button && !document.querySelector('#meta paper-button[subscribed]')) { + button.click(); - clearInterval(ImprovedTube.adInterval); - } - }, 50); - } + clearInterval(ImprovedTube.adInterval); + } + }, 50); + } + } }; @@ -3041,12 +3041,12 @@ ImprovedTube.initialVideoUpdateDone = false; ImprovedTube.videoUpdated = function() { this.playerAds(); - this.playerPlaybackSpeed(); - this.playerVolume(); - this.playlistUpNextAutoplay(); if (ImprovedTube.initialVideoUpdateDone !== true) { this.playerQuality(); + this.playerPlaybackSpeed(); + this.playerVolume(); + this.playlistUpNextAutoplay(); } }; From 778c6d34d35d213f8a39bdcf8f838fe8c677ab82 Mon Sep 17 00:00:00 2001 From: JuniorGenius Date: Mon, 22 Mar 2021 13:23:36 -0700 Subject: [PATCH 0077/1224] Detabbed code --- youtube-scripts.js | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 6aae2120f..4722ff24f 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1133,24 +1133,24 @@ ImprovedTube.playerAds = function() { var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); if(button) { - if (ImprovedTube.storage.player_ads === 'block_all') { - ImprovedTube.adInterval = setInterval(function() { - if (button) { - button.click(); - - clearInterval(ImprovedTube.adInterval); - } - }, 50); - } else if (ImprovedTube.storage.player_ads === 'subscribed_channels') { - ImprovedTube.adInterval = setInterval(function() { - if (button && !document.querySelector('#meta paper-button[subscribed]')) { - button.click(); - - clearInterval(ImprovedTube.adInterval); - } - }, 50); - } - } + if (ImprovedTube.storage.player_ads === 'block_all') { + ImprovedTube.adInterval = setInterval(function() { + if (button) { + button.click(); + + clearInterval(ImprovedTube.adInterval); + } + }, 50); + } else if (ImprovedTube.storage.player_ads === 'subscribed_channels') { + ImprovedTube.adInterval = setInterval(function() { + if (button && !document.querySelector('#meta paper-button[subscribed]')) { + button.click(); + + clearInterval(ImprovedTube.adInterval); + } + }, 50); + } + } }; From 891c720ac193b60b4fbc5f0cb118d04553c616ad Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 23 Mar 2021 01:02:26 +0300 Subject: [PATCH 0078/1224] Moved ad --- manifest.json | 2 +- popup.css | 23 +- popup.js | 1134 ++++++++++++++++++++++++------------------------- 3 files changed, 576 insertions(+), 583 deletions(-) diff --git a/manifest.json b/manifest.json index f9579ca5a..17ee95118 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "Improve YouTube! (Open-Source for YouTube)", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", - "version": "3.183", + "version": "3.184", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.css b/popup.css index 5b035fa02..47780e162 100644 --- a/popup.css +++ b/popup.css @@ -1855,7 +1855,7 @@ html[it-it-analyzer='false'] .satus-folder--analyzer { position: absolute; z-index: 99; - bottom: 104px; + bottom: 16px; left: 32px; display: flex; @@ -1887,27 +1887,20 @@ html[it-it-analyzer='false'] .satus-folder--analyzer .satus-main .satus-button.satus-button--ad { - position: absolute; + position: relative; + margin: 8px 8px; z-index: 99; - bottom: 16px; - left: 16px; overflow: hidden; - width: 268px; - height: 38px; - height: 80px; - padding: 8px 16px; - align-items: center; justify-content: space-between; } -html[it-improvedtube-home='list'] .satus-main .satus-button.satus-button--ad +html[it-improvedtube-home='list'] .satus-section--info { - position: relative; - top: 0; - left: 0; - - margin: 16px; + position: static !important; + background: transparent !important; + border: none !important; + display: flex !important; } \ No newline at end of file diff --git a/popup.js b/popup.js index 3fe91e35c..c8914e054 100644 --- a/popup.js +++ b/popup.js @@ -1175,490 +1175,199 @@ Menu.main = { type: 'section' }, - footer: { - type: 'button', - class: 'satus-button--ad', - title: 'Frame By Frame', - innerHTML: ` -
-
-
- -
Frame By Frame
-
Frame By Frame
- -
For videos
-
For videos
- -
- - `, - onclick: function() { - window.open('https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh', '_blank'); - } - }, - - info: { - type: 'section', - class: 'satus-section--info', - - email: { - type: 'button', - label: 'Email', - title: 'bugs@improvedtube.com', - onclick: function() { - window.open('mailto:bugs@improvedtube.com', '_blank'); - } - }, - github: { - type: 'button', - label: 'GitHub', - title: '/ImprovedTube/ImprovedTube', - onclick: function() { - window.open('https://github.com/ImprovedTube/ImprovedTube/', '_blank'); - } - }, - website: { - type: 'button', - label: 'Website', - title: 'improvedtube.com', - onclick: function() { - window.open('http://www.improvedtube.com/', '_blank'); - } - } - } -}; - - -/*------------------------------------------------------------------------------ -2.1 GENERAL -------------------------------------------------------------------------------*/ - -Menu.main.section.general = { - type: 'folder', - before: '', - label: 'general', - class: 'satus-folder--general', - appearanceId: 'general', - - section: { - type: 'section', - - /*legacy_youtube: { - type: 'switch', - label: 'legacyYoutube', - tags: 'old' - },*/ - youtube_home_page: { - type: 'select', - label: 'youtubeHomePage', - options: [{ - label: 'home', - value: '/' - }, { - label: 'trending', - value: '/feed/trending' - }, { - label: 'subscriptions', - value: '/feed/subscriptions' - }, { - label: 'history', - value: '/feed/history' - }, { - label: 'watchLater', - value: '/playlist?list=WL' - }, { - label: 'search', - value: 'search' - }], - tags: 'trending,subscriptions,history,watch,search' - }, - collapse_of_subscription_sections: { - type: 'switch', - label: 'collapseOfSubscriptionSections' - }, - add_scroll_to_top: { - type: 'switch', - label: 'addScrollToTop', - tags: 'up' - }, - remove_related_search_results: { - type: 'switch', - label: 'removeRelatedSearchResults' - }, - confirmation_before_closing: { - type: 'switch', - label: 'confirmationBeforeClosing', - tags: 'random prevent close exit' - }, - mark_watched_videos: { - type: 'switch', - label: 'markWatchedVideos' - }, - only_one_player_instance_playing: { - type: 'switch', - label: 'onlyOnePlayerInstancePlaying' - } - }, - - section_label__thumbnails: { - type: 'text', - class: 'satus-section--label', - label: 'thumbnails' - }, - - thumbnails_section: { - type: 'section', - - squared_user_images: { - type: 'switch', - label: 'squaredUserImages', - tags: 'avatar' - }, - hd_thumbnails: { - type: 'switch', - label: 'hdThumbnails', - tags: 'preview quality' - }, - hide_animated_thumbnails: { - type: 'switch', - label: 'hideAnimatedThumbnails', - tags: 'preview' - } - } -}; - - -/*------------------------------------------------------------------------------ -2.2 APPEARANCE -------------------------------------------------------------------------------*/ - -Menu.main.section.appearance = { - type: 'folder', - before: '', - label: 'appearance', - class: 'satus-folder--appearance', - appearanceId: 'appearance', - - header: { - type: 'folder', - label: 'header', - class: 'satus-folder--header', - - section: { - type: 'section', - - header_position: { - type: 'select', - label: 'position', - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'hidden', - value: 'hidden' - }, { - label: 'hover', - value: 'hover' - }, { - label: 'hiddenOnVideoPage', - value: 'hidden_on_video_page' - }, { - label: 'hoverOnVideoPage', - value: 'hover_on_video_page' - }, { - label: 'static', - value: 'static' - }], - tags: 'hide,hover,static,top' - }, - header_improve_logo: { - type: 'switch', - label: 'improveLogo', - tags: 'youtube' - }, - header_hide_right_buttons: { - type: 'switch', - label: 'hideRightButtons', - tags: 'user' - } - } - }, - player: { - type: 'folder', - label: 'player', - class: 'satus-folder--player', - - section: { - type: 'section', + section: { + type: 'section', player_hide_annotations: { type: 'switch', @@ -2201,121 +1910,412 @@ Menu.main.section.themes = { }] } } - }, - font: { - type: 'select', - label: 'font', - options: [{ - label: 'Roboto', - value: 'Roboto' - }, { - label: 'Open Sans', - value: 'Open+Sans' - }, { - label: 'Lato', - value: 'Lato' - }, { - label: 'Montserrat', - value: 'Montserrat' - }, { - label: 'Source Sans Pro', - value: 'Source+Sans+Pro' - }, { - label: 'Roboto Condensed', - value: 'Roboto+Condensed' - }, { - label: 'Oswald', - value: 'Oswald' - }, { - label: 'Comfortaa', - value: 'Comfortaa' - }, { - label: 'Roboto Mono', - value: 'Roboto+Mono' - }, { - label: 'Raleway', - value: 'Raleway' - }, { - label: 'Poppins', - value: 'Poppins' - }, { - label: 'Noto Sans', - value: 'Noto+Sans' - }, { - label: 'Roboto Slab', - value: 'Roboto+Slab' - }, { - label: 'Marriweather', - value: 'Marriweather' - }, { - label: 'PT Sans', - value: 'PT+Sans' - }] + }, + font: { + type: 'select', + label: 'font', + options: [{ + label: 'Roboto', + value: 'Roboto' + }, { + label: 'Open Sans', + value: 'Open+Sans' + }, { + label: 'Lato', + value: 'Lato' + }, { + label: 'Montserrat', + value: 'Montserrat' + }, { + label: 'Source Sans Pro', + value: 'Source+Sans+Pro' + }, { + label: 'Roboto Condensed', + value: 'Roboto+Condensed' + }, { + label: 'Oswald', + value: 'Oswald' + }, { + label: 'Comfortaa', + value: 'Comfortaa' + }, { + label: 'Roboto Mono', + value: 'Roboto+Mono' + }, { + label: 'Raleway', + value: 'Raleway' + }, { + label: 'Poppins', + value: 'Poppins' + }, { + label: 'Noto Sans', + value: 'Noto+Sans' + }, { + label: 'Roboto Slab', + value: 'Roboto+Slab' + }, { + label: 'Marriweather', + value: 'Marriweather' + }, { + label: 'PT Sans', + value: 'PT+Sans' + }] + } + }, + + default_dark_theme: { + type: 'switch', + label: 'dark', + class: 'satus-switch--dark', + + onchange: themeChange + }, + night_theme: { + type: 'switch', + label: 'night', + class: 'satus-switch--night', + + onchange: themeChange + }, + dawn_theme: { + type: 'switch', + label: 'dawn', + class: 'satus-switch--dawn', + + onchange: themeChange + }, + sunset_theme: { + type: 'switch', + label: 'sunset', + class: 'satus-switch--sunset', + + onchange: themeChange + }, + desert_theme: { + type: 'switch', + label: 'desert', + class: 'satus-switch--desert', + + onchange: themeChange + }, + plain_theme: { + type: 'switch', + label: 'plain', + class: 'satus-switch--plain', + + onchange: themeChange + }, + black_theme: { + type: 'switch', + label: 'black', + class: 'satus-switch--black', + + onchange: themeChange + } +}; + + +/*------------------------------------------------------------------------------ +2.4 PLAYER +------------------------------------------------------------------------------*/ + +Menu.main.section.player = { + type: 'folder', + before: '', + label: 'player', + class: 'satus-folder--player', + appearanceId: 'player', + + footer: { + type: 'button', + class: 'satus-button--ad', + title: 'Frame By Frame', + innerHTML: ` +
+
+
+ +
Frame By Frame
+
Frame By Frame
+ +
For videos
+
For videos
+ +
+ + `, + onclick: function() { + window.open('https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh', '_blank'); + } + }, general: { type: 'section', From 71b45610565c53c66c5f8e6437571faa0f4b7c2f Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 23 Mar 2021 18:18:32 +0300 Subject: [PATCH 0079/1224] Added new buttons for YouTube --- content-styles.css | 121 ++++++++++++++++++++++++++++++++++++++++++++- manifest.json | 2 +- youtube-scripts.js | 116 ++++++++++++++++++++++++++++++++++++------- 3 files changed, 218 insertions(+), 21 deletions(-) diff --git a/content-styles.css b/content-styles.css index 298d3687f..9f08e31ae 100644 --- a/content-styles.css +++ b/content-styles.css @@ -5725,4 +5725,123 @@ html[it-improvedtube-youtube-icon='draggable'] .it-btn { .improvedtube-add-to-blacklist:hover { transform: scale(1.25); -} \ No newline at end of file +} + + + + + + + + + + + + + + + + + + + + + + + + +/*------------NEW---------------*/ + +.improvedtube-sidebar-a +{ + font-size: 1.4rem; + line-height: var(--yt-guide-highlight-line-height, 1.8rem); + + position: relative; + + display: flex; + + box-sizing: border-box; + width: 100%; + height: 40px; + padding: 0 24px; + + text-decoration: none; + + color: var(--yt-spec-text-primary); + + justify-content: flex-start; + align-items: center; +} + +.improvedtube-sidebar-a:hover +{ + background-color: var(--yt-spec-10-percent-layer); +} + +.improvedtube-sidebar-a::before +{ + width: 20px; + height: 20px; + margin: 2px 26px 2px 2px; + + content: ''; + + border-radius: 50%; + background: #f00; +} + +.improvedtube-sidebar-a::after +{ + position: absolute; + left: 33px; + + display: block; + + content: ''; + + opacity: .9; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 8px solid rgb(255, 255, 255); +} + + +.improvedtube-player-button +{ + position: relative; + + width: 40px; + height: 36px; + margin: 0 8px; + padding: 6px; + + cursor: pointer; + + border: none; + outline: none; + background: none; + + fill: var(--yt-spec-icon-inactive); +} + +.improvedtube-player-button:last-of-type +{ + margin-right: 24px; +} + +.improvedtube-player-button:hover::after +{ + position: absolute; + top: 150%; + left: 50%; + + padding: 8px; + + content: attr(data-tooltip); + transform: translateX(-50%); + + color: var(--paper-tooltip-text-color, white); + border-radius: 2px; + background-color: var(--paper-tooltip-background, #616161); +} diff --git a/manifest.json b/manifest.json index 17ee95118..cc4aa2ed4 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "Improve YouTube! (Open-Source for YouTube)", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", - "version": "3.184", + "version": "3.200", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 7e5f3276c..2e368e8c3 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -62,8 +62,10 @@ 9.0 Analyzer 10.0 Settings 10.1 ImprovedTube icon - 10.2 Delete YouTube cookies - 10.3 YouTube language + 10.2 ImprovedTube button (sidebar) + 10.3 ImprovedTube player buttons + 10.4 Delete YouTube cookies + 10.5 YouTube language 0.0 Page update listener 0.0 Onfocus @@ -80,9 +82,6 @@ The variable "ImprovedTube" is used on the YouTube side. var ImprovedTube = {}; - - - /*------------------------------------------------------------------------------ 1.0 GENERAL ------------------------------------------------------------------------------*/ @@ -91,7 +90,7 @@ var ImprovedTube = {}; 1.1 YOUTUBE HOME PAGE ------------------------------------------------------------------------------*/ -ImprovedTube.youtubeHomePage = function () { +ImprovedTube.youtubeHomePage = function() { var option = this.storage.youtube_home_page; if ( @@ -114,7 +113,7 @@ ImprovedTube.youtubeHomePage = function () { } node.href = option; - node.addEventListener('click', function () { + node.addEventListener('click', function() { if ( this.data && this.data.commandMetadata && @@ -1148,7 +1147,7 @@ ImprovedTube.playerAds = function() { var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); - if(button) { + if (button) { if (ImprovedTube.storage.player_ads === 'block_all') { ImprovedTube.adInterval = setInterval(function() { if (button) { @@ -1813,7 +1812,7 @@ ImprovedTube.playerRotateButton = function() { id: 'it-rotate-button', html: '', opacity: 1, - onclick: function () { + onclick: function() { var video = node.querySelector('video'), player = node, transform = '', @@ -1900,13 +1899,12 @@ ImprovedTube.playerSDR = function() { ImprovedTube.playerControls = function() { if (!node) { - var node = document.querySelector('.html5-video-player'); - } + var node = document.querySelector('.html5-video-player'); + } if (this.storage.player_hide_controls === true) { node.hideControls(); - } - else { + } else { node.showControls(); } }; @@ -2267,13 +2265,12 @@ ImprovedTube.shortcuts = function() { var player = document.querySelector('.html5-video-player'); if (player && player.hideControls && player.showControls) { - ImprovedTube.storage.player_hide_controls = !ImprovedTube.storage.player_hide_controls; + ImprovedTube.storage.player_hide_controls = !ImprovedTube.storage.player_hide_controls; if (ImprovedTube.storage.player_hide_controls === true) { player.hideControls(); - } - else { - player.showControls(); + } else { + player.showControls(); } } }, @@ -2979,9 +2976,86 @@ ImprovedTube.improvedtubeYoutubeIcon = function() { } }; +/*------------------------------------------------------------------------------ +10.2 IMPROVEDTUBE BUTTON (SIDEBAR) +------------------------------------------------------------------------------*/ + +ImprovedTube.improvedtube_youtube_sidebar_button_wait = false; + +ImprovedTube.improvedtubeYoutubeSidebarButton = function() { + if (window.self !== window.top) { + return false; + } + + if ( + ImprovedTube.storage.improvedtube_youtube_sidebar_button_wait === false && + document.querySelector('.improvedtube-sidebar-a') + ) { + document.querySelector('.improvedtube-sidebar-a').remove(); + } + + if (this.improvedtube_youtube_sidebar_button_wait === false) { + this.improvedtube_youtube_sidebar_button_wait = setInterval(function() { + var second_section = document.querySelector('#guide ytd-guide-collapsible-section-entry-renderer'); + + if (second_section && !document.querySelector('.improvedtube-sidebar-a')) { + var a = document.createElement('a'); + + a.className = 'improvedtube-sidebar-a'; + a.href = 'https://www.youtube.com/improvedtube'; + a.innerText = 'ImprovedTube'; + + second_section.parentNode.insertBefore(a, second_section); + } + }, 250); + } +}; + +/*------------------------------------------------------------------------------ +10.3 IMPROVEDTUBE PLAYER BUTTONS +------------------------------------------------------------------------------*/ + +ImprovedTube.improvedtube_youtube_player_buttons_wait = false; + +ImprovedTube.improvedtubeYoutubePlayerButtons = function() { + if (window.self !== window.top) { + return false; + } + + if (this.improvedtube_youtube_player_buttons_wait === false) { + this.improvedtube_youtube_player_buttons_wait = setInterval(function() { + var second_section = document.querySelector('#info #menu-container.ytd-video-primary-info-renderer'); + + if (second_section && !document.querySelector('.improvedtube-player-button')) { + var screenshot_button = document.createElement('button'), + pip_button = document.createElement('button'); + + screenshot_button.className = 'improvedtube-player-button'; + screenshot_button.innerHTML = ''; + screenshot_button.dataset.tooltip = 'Screenshot'; + screenshot_button.onclick = ImprovedTube.screenshot; + + pip_button.className = 'improvedtube-player-button'; + pip_button.innerHTML = ''; + pip_button.dataset.tooltip = 'Picture in picture'; + pip_button.onclick = function() { + var video = document.querySelector('#movie_player video'); + + if (video) { + video.requestPictureInPicture(); + } + }; + + second_section.parentNode.insertBefore(screenshot_button, second_section); + second_section.parentNode.insertBefore(pip_button, second_section); + } + }, 250); + } +}; + /*----------------------------------------------------------------------------- -10.2 DELETE YOUTUBE COOKIES +10.4 DELETE YOUTUBE COOKIES -----------------------------------------------------------------------------*/ ImprovedTube.deleteYoutubeCookies = function() { @@ -3002,7 +3076,7 @@ ImprovedTube.deleteYoutubeCookies = function() { /*----------------------------------------------------------------------------- -10.3 YOUTUBE LANGUAGE +10.5 YOUTUBE LANGUAGE -----------------------------------------------------------------------------*/ ImprovedTube.youtubeLanguage = function() { @@ -3046,6 +3120,8 @@ ImprovedTube.pageUpdateListener = function() { ImprovedTube.blacklist(); ImprovedTube.improvedtubeYoutubeIcon(); + ImprovedTube.improvedtubeYoutubeSidebarButton(); + ImprovedTube.improvedtubeYoutubePlayerButtons(); }); }; @@ -3153,6 +3229,8 @@ ImprovedTube.DOMContentLoaded = function() { ImprovedTube.blacklist(); ImprovedTube.improvedtubeYoutubeIcon(); + ImprovedTube.improvedtubeYoutubeSidebarButton(); + ImprovedTube.improvedtubeYoutubePlayerButtons(); ImprovedTube.pageUpdateListener(); }); From 06f09ee3222d7c93c810b08980416dc6b0e61033 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 25 Mar 2021 21:47:25 +0300 Subject: [PATCH 0080/1224] Added firefox link --- manifest.json | 2 +- popup.css | 11 +++++++++++ popup.js | 9 +++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index cc4aa2ed4..2622f84f4 100644 --- a/manifest.json +++ b/manifest.json @@ -82,4 +82,4 @@ "https://*.youtube.com/*" ], "update_url": "https://clients2.google.com/service/update2/crx" -} \ No newline at end of file +} diff --git a/popup.css b/popup.css index 47780e162..7b0bd414b 100644 --- a/popup.css +++ b/popup.css @@ -11,6 +11,17 @@ 7.0 Black ---------------------------------------------------------------*/ +.satus-firefox { + justify-content: center; + height: auto; + margin: 20px 16px; + background: transparent; +} + +.satus-firefox::before { + content: none +} + html { --satus-theme-primary: #ff4158; } diff --git a/popup.js b/popup.js index 4a16e62ec..324a36964 100644 --- a/popup.js +++ b/popup.js @@ -3255,6 +3255,15 @@ Menu.main.section.analyzer = { } }; +Menu.main.section.firefox = { + type: 'button', + class: 'satus-firefox', + innerHTML: '', + onclick: function() { + window.open('https://addons.mozilla.org/en-US/firefox/addon/youtube-addon/', '_blank'); + } +}; + /*------------------------------------------------------------------------------ 3.0 INITIALIZATION From d7f6fe9a778b540e317244317452e522c1ab6233 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 30 Mar 2021 06:03:05 +0200 Subject: [PATCH 0081/1224] Update content-styles.css --- content-styles.css | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/content-styles.css b/content-styles.css index 9f08e31ae..5eecf15b7 100644 --- a/content-styles.css +++ b/content-styles.css @@ -25,9 +25,11 @@ 2.2.8 Hide "Scroll for details" 2.2.9 Always show progress bar 2.3 Sidebar - 2.3.1 Livachat + 2.3.1 Livechat 2.3.2 Hide playlist - 2.3.3 Relative videos + 2.3.3 Related videos + 2.3.4 Sidebar Position + 2.3.5 Thumbnails 2.4 Details 2.4.1 Hide details 2.4.2 Description @@ -886,6 +888,29 @@ html[it-related-videos=collapsed].related-videos-collapsed #improvedtube-collaps box-shadow: inset 0 1px 0 #ddd; } +/*----------------------------------------------------------------------------- +2.3.4 Sidebar position +-----------------------------------------------------------------------------*/ + +html[it-sidebar-left='true'] #columns>#primary, +html[it-sidebar-left='true'] #head>#upnext /* also moving autoplay button to the outside as the glow bothers next to the video */ +{ + order:7; +} + +/*----------------------------------------------------------------------------- +2.3.5 Thumbnails +-----------------------------------------------------------------------------*/ + +html[it-thumbnails-right='true'] #dismissable>ytd-thumbnail +{ + order:7; +} + +html[it-thumbnails-hide='true'] #dismissable>ytd-thumbnail +{ + display:none; +} /*------------------------------------------------------------------------------ 2.4 DETAILS From 5129ecae659bbb86990f38eba91a681d784dff4e Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 30 Mar 2021 06:38:53 +0200 Subject: [PATCH 0082/1224] Update popup.js --- popup.js | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/popup.js b/popup.js index 324a36964..de2af7130 100644 --- a/popup.js +++ b/popup.js @@ -1591,10 +1591,21 @@ Menu.main.section.appearance = { section: { type: 'section', - livechat: { + sidebar_left: { + type: 'switch', + label: 'Sidebar to the Left' + }, + thumbnails_right: { + type: 'switch', + label: 'Thumbnails to the Right' + }, + thumbnails_hide: { + type: 'switch', + label: 'Hide Thumbnails' + }, + related_videos: { type: 'select', - label: 'liveChat', - + label: 'relatedVideos', options: [{ label: 'normal', value: 'normal' @@ -1604,15 +1615,14 @@ Menu.main.section.appearance = { }, { label: 'hidden', value: 'hidden' - }] - }, - hide_playlist: { - type: 'switch', - label: 'hidePlaylist' + }], + tags: 'right' }, - related_videos: { + + livechat: { type: 'select', - label: 'relatedVideos', + label: 'liveChat', + options: [{ label: 'normal', value: 'normal' @@ -1622,8 +1632,11 @@ Menu.main.section.appearance = { }, { label: 'hidden', value: 'hidden' - }], - tags: 'right' + }] + }, + hide_playlist: { + type: 'switch', + label: 'hidePlaylist' } } }, @@ -3485,4 +3498,4 @@ function exportData() { } } }); -} \ No newline at end of file +} From 4eb298cd423805aa9f7ad97ea7f750d62a0977ff Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 30 Mar 2021 06:44:10 +0200 Subject: [PATCH 0083/1224] Update and rename popup.js to alwaysShowProgressBar --- popup.js => alwaysShowProgressBar | 4 ++++ 1 file changed, 4 insertions(+) rename popup.js => alwaysShowProgressBar (99%) diff --git a/popup.js b/alwaysShowProgressBar similarity index 99% rename from popup.js rename to alwaysShowProgressBar index de2af7130..b92c8a48f 100644 --- a/popup.js +++ b/alwaysShowProgressBar @@ -1516,6 +1516,10 @@ Menu.main.section.appearance = { always_show_progress_bar: { type: 'switch', label: 'alwaysShowProgressBar' + }, + hide_gradient_bottom: { + type: 'switch', + label: 'hideGradientBottom' } } }, From 81d2583b54fb897e5a5046d7da10e702e88cbc9f Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 30 Mar 2021 06:44:59 +0200 Subject: [PATCH 0084/1224] Rename alwaysShowProgressBar to popup.js --- alwaysShowProgressBar => popup.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename alwaysShowProgressBar => popup.js (100%) diff --git a/alwaysShowProgressBar b/popup.js similarity index 100% rename from alwaysShowProgressBar rename to popup.js From 3241c4ca1020b8edf072210bd8c4638d39b17ce5 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 30 Mar 2021 06:46:48 +0200 Subject: [PATCH 0085/1224] Update content-styles.css --- content-styles.css | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/content-styles.css b/content-styles.css index 5eecf15b7..95f773330 100644 --- a/content-styles.css +++ b/content-styles.css @@ -24,6 +24,7 @@ 2.2.7 Hide endscreen 2.2.8 Hide "Scroll for details" 2.2.9 Always show progress bar + 2.2.10 Hide Gradient Bottom 2.3 Sidebar 2.3.1 Livechat 2.3.2 Hide playlist @@ -807,6 +808,15 @@ html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player). bottom: 0 !important; } +/*----------------------------------------------------------------------------- +2.2.10 Hide Gradient Bottom +-----------------------------------------------------------------------------*/ + +html[it-hide-gradient-bottom=true] .ytp-gradient-bottom +{ + display: none; +} + /*------------------------------------------------------------------------------ 2.3 SIDEBAR From 77793d6e221631f74bf23c7b9fada05f0b21741c Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 30 Mar 2021 06:55:07 +0200 Subject: [PATCH 0086/1224] Update messages.json --- _locales/en/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index ca7db7ba7..9dca901c9 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -360,7 +360,7 @@ "message": "Hide footer" }, "hideGradientBottom": { - "message": "Hide Gradient Bottom" + "message": "Hide shadow around player-bar" }, "hidePlaylist": { "message": "Hide playlist" From 1c8aab0f1ce8b10cc2e18d3c8dda2788b0383dc7 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 30 Mar 2021 07:11:50 +0200 Subject: [PATCH 0087/1224] Update popup.js --- popup.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/popup.js b/popup.js index b92c8a48f..844408a53 100644 --- a/popup.js +++ b/popup.js @@ -1937,8 +1937,8 @@ Menu.main.section.themes = { type: 'select', label: 'font', options: [{ - label: 'Roboto', - value: 'Roboto' + label: 'Youtube standard (Roboto)', + value: 'Default' }, { label: 'Open Sans', value: 'Open+Sans' From 20584c6c212c8a0e83d4c63e2ab8e2b67a61d9d0 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 30 Mar 2021 07:21:37 +0200 Subject: [PATCH 0088/1224] Update content-styles.css --- content-styles.css | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/content-styles.css b/content-styles.css index 95f773330..14ab5272f 100644 --- a/content-styles.css +++ b/content-styles.css @@ -5575,13 +5575,22 @@ html[it-mini-player-cursor='nw-resize']::after { /*------------------------------------------------------------------------------ 6.1 FEATURED CONTENT -------------------------------------------------------------------------------- -TODO: FIX +FIXED #535 FlaviuIusan ------------------------------------------------------------------------------*/ -html[it-channel-hide-featured-content=true] #secondary.ytd-two-column-browse-results-renderer { - display: none; +html[it-channel-hide-featured-content=true] #secondary #contents.style-scope.ytd-browse-secondary-contents-renderer, +html[it-channel-hide-featured-content=true] .branded-page-v2-secondary-col +{ + display: none !important; } +html[it-channel-hide-featured-content=true] #secondary.ytd-two-column-browse-results-renderer, +html[it-channel-hide-featured-content=true] #secondary ytd-browse-secondary-contents-renderer +{ + padding: 0; + width: fit-content; + height: fit-content; +} /*------------------------------------------------------------------------------ 7.0 SHORTCUTS From d80adfc7279f3bd80f5b4cb4a008798843d6bcfb Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 30 Mar 2021 07:27:26 +0200 Subject: [PATCH 0089/1224] Update satus.js --- satus.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/satus.js b/satus.js index beea610c4..e4ed90b0a 100644 --- a/satus.js +++ b/satus.js @@ -1628,7 +1628,7 @@ satus.components.shortcut = function(element) { component_button_reset.addEventListener('click', function() { satus.storage.set(element.storage_key, null); close(); - value = (satus.storage.get(element.storage_key) ? JSON.parse(satus.storage.get(element.storage_key)) : false) || object.value || {}; + value = (satus.storage.get(element.storage_key) ? JSON.parse(satus.storage.get(element.storage_key)) : false) || element.value || {}; update(); }); component_button_cancel.addEventListener('click', close); @@ -2181,4 +2181,4 @@ satus.components.textField = function(element) { component.type = 'text'; return component; -}; \ No newline at end of file +}; From 998b63e92893b23929758b58b31aa350419029ef Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 30 Mar 2021 07:31:47 +0200 Subject: [PATCH 0090/1224] Update manifest.json --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 2622f84f4..f0cdcf6e4 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "Improve YouTube! (Open-Source for YouTube)", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", - "version": "3.200", + "version": "3.203", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 2c17a3b1772a62baed4e1e3286f8090def50a481 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 30 Mar 2021 07:50:41 +0200 Subject: [PATCH 0091/1224] Update content-styles.css --- content-styles.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content-styles.css b/content-styles.css index 14ab5272f..b5d7bb52d 100644 --- a/content-styles.css +++ b/content-styles.css @@ -912,12 +912,12 @@ html[it-sidebar-left='true'] #head>#upnext /* also moving autoplay button to t 2.3.5 Thumbnails -----------------------------------------------------------------------------*/ -html[it-thumbnails-right='true'] #dismissable>ytd-thumbnail +html[it-thumbnails-right='true'] #dismissible>ytd-thumbnail { order:7; } -html[it-thumbnails-hide='true'] #dismissable>ytd-thumbnail +html[it-thumbnails-hide='true'] #dismissible>ytd-thumbnail { display:none; } From efb2de9dcc0bd625c3862f4785d5db9b574b425b Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 30 Mar 2021 08:13:08 +0200 Subject: [PATCH 0092/1224] Update manifest.json --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index f0cdcf6e4..c0a0e9e14 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "manifest_version": 2, - "name": "Improve YouTube! (Open-Source for YouTube)", + "name": "'Improve YouTube!'(Video & YouTube Tools)🎛☕️", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", "version": "3.203", From 200941dc3ab5bdeb4b16bf562049c2b476da49df Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 30 Mar 2021 19:45:19 +0200 Subject: [PATCH 0093/1224] Update manifest.json --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index c0a0e9e14..4d1f2ccbf 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "manifest_version": 2, - "name": "'Improve YouTube!'(Video & YouTube Tools)🎛☕️", + "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", "version": "3.203", From 6927a2c011c039bc568b03df891956a072df12c5 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 30 Mar 2021 21:20:45 +0200 Subject: [PATCH 0094/1224] Update popup.js --- popup.js | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/popup.js b/popup.js index 844408a53..8678d37f0 100644 --- a/popup.js +++ b/popup.js @@ -1595,18 +1595,7 @@ Menu.main.section.appearance = { section: { type: 'section', - sidebar_left: { - type: 'switch', - label: 'Sidebar to the Left' - }, - thumbnails_right: { - type: 'switch', - label: 'Thumbnails to the Right' - }, - thumbnails_hide: { - type: 'switch', - label: 'Hide Thumbnails' - }, + related_videos: { type: 'select', label: 'relatedVideos', @@ -1641,6 +1630,18 @@ Menu.main.section.appearance = { hide_playlist: { type: 'switch', label: 'hidePlaylist' + }, + sidebar_left: { + type: 'switch', + label: 'Sidebar to the Left' + }, + thumbnails_right: { + type: 'switch', + label: 'Thumbnails to the Right' + }, + thumbnails_hide: { + type: 'switch', + label: 'Hide Thumbnails' } } }, From c8c44cab57a73faad65282b5177c385e7510c0ff Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 30 Mar 2021 23:27:45 +0200 Subject: [PATCH 0095/1224] Update youtube-scripts.js --- youtube-scripts.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 2e368e8c3..bd3178f80 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -97,7 +97,9 @@ ImprovedTube.youtubeHomePage = function() { option === '/feed/trending' || option === '/feed/subscriptions' || option === '/feed/history' || - option === '/playlist?list=WL' + option === '/playlist?list=WL' || + option === '/playlist?list=LL' || + option === '/feed/library' ) { var node_list = document.querySelectorAll(` a[href="/"]:not([role=tablist]), @@ -3449,4 +3451,4 @@ ImprovedTube.init = function() { ImprovedTube.hideThumbnailOverlay(); ImprovedTube.channelDefaultTab(); }); -}; \ No newline at end of file +}; From bc8b66ba2fd418e252011621aae1455d4072702d Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 30 Mar 2021 23:29:04 +0200 Subject: [PATCH 0096/1224] Update content-scripts.js --- content-scripts.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index 9a2128301..ea1de107c 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -22,7 +22,9 @@ function youtubeHomePage(option) { option === '/feed/trending' || option === '/feed/subscriptions' || option === '/feed/history' || - option === '/playlist?list=WL' + option === '/playlist?list=WL' || + option === '/playlist?list=LL' || + option === '/feed/library' ) { location.replace(option); } @@ -183,4 +185,4 @@ chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { chrome.runtime.sendMessage({ enabled: true -}); \ No newline at end of file +}); From 00a82a886f3c5a218939efed86bf9c2876a64a7a Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 30 Mar 2021 23:33:44 +0200 Subject: [PATCH 0097/1224] Update popup.js --- popup.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/popup.js b/popup.js index 8678d37f0..5f3acd7c0 100644 --- a/popup.js +++ b/popup.js @@ -1232,6 +1232,9 @@ Menu.main.section.general = { options: [{ label: 'home', value: '/' + }, { + label: 'search', + value: 'search' }, { label: 'trending', value: '/feed/trending' @@ -1245,8 +1248,11 @@ Menu.main.section.general = { label: 'watchLater', value: '/playlist?list=WL' }, { - label: 'search', - value: 'search' + label: '👍 liked', + value: '/playlist?list=LL' + }, { + label: 'library', + value: '/feed/library' }], tags: 'trending,subscriptions,history,watch,search' }, From f9d1afaa77f1584bc2b9c4d6f3af2c5c31f7cea0 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 30 Mar 2021 23:51:55 +0200 Subject: [PATCH 0098/1224] Update popup.js --- popup.js | 115 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 58 insertions(+), 57 deletions(-) diff --git a/popup.js b/popup.js index 5f3acd7c0..002c4fc01 100644 --- a/popup.js +++ b/popup.js @@ -1232,9 +1232,6 @@ Menu.main.section.general = { options: [{ label: 'home', value: '/' - }, { - label: 'search', - value: 'search' }, { label: 'trending', value: '/feed/trending' @@ -1247,6 +1244,9 @@ Menu.main.section.general = { }, { label: 'watchLater', value: '/playlist?list=WL' + }, { + label: 'search', + value: 'search' }, { label: '👍 liked', value: '/playlist?list=LL' @@ -2734,59 +2734,10 @@ Menu.main.section.shortcuts = { player_section: { type: 'section', - shortcut_toggle_controls: { - type: 'shortcut', - label: 'toggleControls' - }, shortcut_picture_in_picture: { type: 'shortcut', label: 'pictureInPicture' }, - shortcut_play_pause: { - type: 'shortcut', - label: 'playPause', - value: { - key: ' ' - } - }, - shortcut_stop: { - type: 'shortcut', - label: 'stop' - }, - shortcut_toggle_autoplay: { - type: 'shortcut', - label: 'toggleAutoplay' - }, - shortcut_next_video: { - type: 'shortcut', - label: 'nextVideo', - value: { - key: 'N', - shiftKey: true - } - }, - shortcut_prev_video: { - type: 'shortcut', - label: 'previousVideo', - value: { - key: 'P', - shiftKey: true - } - }, - shortcut_seek_backward: { - type: 'shortcut', - label: 'seekBackward10Seconds', - value: { - key: 'J' - } - }, - shortcut_seek_forward: { - type: 'shortcut', - label: 'seekForward10Seconds', - value: { - key: 'I' - } - }, shortcut_volume: { type: 'folder', label: 'volume', @@ -2817,6 +2768,10 @@ Menu.main.section.shortcuts = { } } }, + shortcut_screenshot: { + type: 'shortcut', + label: 'screenshot' + }, shortcut_playback_speed: { type: 'folder', label: 'playbackSpeed', @@ -2847,6 +2802,56 @@ Menu.main.section.shortcuts = { } } }, + shortcut_toggle_controls: { + type: 'shortcut', + label: 'toggleControls' + }, + shortcut_next_video: { + type: 'shortcut', + label: 'nextVideo', + value: { + key: 'N', + shiftKey: true + } + }, + shortcut_prev_video: { + type: 'shortcut', + label: 'previousVideo', + value: { + key: 'P', + shiftKey: true + } + }, + shortcut_play_pause: { + type: 'shortcut', + label: 'playPause', + value: { + key: ' ' + } + }, + shortcut_stop: { + type: 'shortcut', + label: 'stop' + }, + shortcut_toggle_autoplay: { + type: 'shortcut', + label: 'toggleAutoplay' + }, + shortcut_seek_backward: { + type: 'shortcut', + label: 'seekBackward10Seconds', + value: { + key: 'J' + } + }, + shortcut_seek_forward: { + type: 'shortcut', + label: 'seekForward10Seconds', + value: { + key: 'I' + } + }, + shortcut_activate_fullscreen: { type: 'shortcut', label: 'activateFullscreen', @@ -2910,10 +2915,6 @@ Menu.main.section.shortcuts = { type: 'shortcut', label: 'customMiniPlayer' }, - shortcut_screenshot: { - type: 'shortcut', - label: 'screenshot' - }, shortcut_stats_for_nerds: { type: 'shortcut', label: 'statsForNerds' @@ -2931,7 +2932,7 @@ Menu.main.section.shortcuts = { appearance_section_label: { type: 'text', class: 'satus-section--label', - label: 'appearance' + label: 'YouTube' }, appearance_section: { From b38a4b47e29ab79dc75ed6b3043b13959de032ce Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Wed, 31 Mar 2021 05:44:48 +0200 Subject: [PATCH 0099/1224] speed increase: align @ 1.0 independent of minimum #847 --- youtube-scripts.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index bd3178f80..29c414a75 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2359,8 +2359,11 @@ ImprovedTube.shortcuts = function() { var video = document.querySelector('#movie_player video'); if (video && video.playbackRate) { - video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); + if ( video.playbackRate < 1 && video.playbackRate > 1-ImprovedTube.storage.shortcut_playback_speed_step ) { + video.playbackRate = 1 } else { // aligning at 1.0 independent of minimum + video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); + } showStatus(document.querySelector('#movie_player'), video.playbackRate); } }, From d1508f7a89535cd3ff3172c0a76ad919fc52f8f4 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Wed, 31 Mar 2021 06:10:33 +0200 Subject: [PATCH 0100/1224] decreasing speed: slow down near minimum --- youtube-scripts.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 29c414a75..e2527f328 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2363,16 +2363,19 @@ ImprovedTube.shortcuts = function() { video.playbackRate = 1 } else { // aligning at 1.0 independent of minimum video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); - } + } showStatus(document.querySelector('#movie_player'), video.playbackRate); } }, shortcut_decrease_playback_speed: function() { var video = document.querySelector('#movie_player video'); - + if (video && video.playbackRate) { - video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); + if ( video.playbackRate < 0.1+ImprovedTube.storage.shortcut_playback_speed_step ) { + video.playbackRate = video.playbackRate*0.7 } else { // slow down near minimum + video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); + } showStatus(document.querySelector('#movie_player'), video.playbackRate); } }, From 0797d02b13a372dff3a4f87596efe571e1a05ad9 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Wed, 31 Mar 2021 06:14:21 +0200 Subject: [PATCH 0101/1224] decreasing speed: slow down near minimum --- youtube-scripts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index e2527f328..e3bdee6b5 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2371,7 +2371,7 @@ ImprovedTube.shortcuts = function() { var video = document.querySelector('#movie_player video'); if (video && video.playbackRate) { - if ( video.playbackRate < 0.1+ImprovedTube.storage.shortcut_playback_speed_step ) { + if ( video.playbackRate < 0.15+ImprovedTube.storage.shortcut_playback_speed_step ) { video.playbackRate = video.playbackRate*0.7 } else { // slow down near minimum video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); From b87973d138766f8377ff05551bf424c5cabac783 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Wed, 31 Mar 2021 06:55:08 +0200 Subject: [PATCH 0102/1224] Update youtube-scripts.js --- youtube-scripts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index e3bdee6b5..ebddbc773 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2372,7 +2372,7 @@ ImprovedTube.shortcuts = function() { if (video && video.playbackRate) { if ( video.playbackRate < 0.15+ImprovedTube.storage.shortcut_playback_speed_step ) { - video.playbackRate = video.playbackRate*0.7 } else { // slow down near minimum + video.playbackRate = (video.playbackRate*0.7).toFixed(3) } else { // slow down near minimum video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); } From 956b6988005351b255219b57c6c9894368f0cc48 Mon Sep 17 00:00:00 2001 From: medaey Date: Wed, 31 Mar 2021 07:13:39 +0200 Subject: [PATCH 0103/1224] Update messages.json --- _locales/fr/messages.json | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 706540a46..cc1c092da 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -132,7 +132,7 @@ "message": "Boutons" }, "cancel": { - "message": "Annuler" + "message": "Retour" }, "categories": { "message": "Catégories" @@ -179,6 +179,9 @@ "customMiniPlayer": { "message": "Mini-lecteur personnalisé" }, + "openPopupPlayer": { + "message": "Ouvrir Video/playlist dans un nouvelle onglet" + }, "cyan": { "message": "Cyan" }, @@ -306,7 +309,7 @@ "message": "GitHub" }, "goToSearchBox": { - "message": "Aller à la barre de recherche" + "message": "Barre de recherche" }, "gpu": { "message": "GPU" @@ -315,10 +318,10 @@ "message": "Vert" }, "hdThumbnail": { - "message": "Vignette HD" + "message": "Miniature HD" }, "hdThumbnails": { - "message": "Vignettes HD" + "message": "Miniatures HD" }, "header": { "message": "Tête de page" @@ -330,7 +333,7 @@ "message": "Caché sur la page de la vidéo" }, "hideAnimatedThumbnails": { - "message": "Vignettes sans animation" + "message": "Miniatures sans animation" }, "hideAnnotations": { "message": "Cacher les annotations" @@ -546,7 +549,7 @@ "message": "Listes de lecture" }, "playPause": { - "message": "Jouer / Pause" + "message": "Lire / Pause" }, "popupPlayer": { "message": "Détacher le lecteur" @@ -597,10 +600,10 @@ "message": "Réintialiser" }, "resetAllSettings": { - "message": "Réinitialiser les réglages" + "message": "Annuler réglages" }, "resetAllShortcuts": { - "message": "Réinitialiser les raccourcis" + "message": "Annuler raccourcis" }, "reverse": { "message": "Inverser" @@ -609,13 +612,13 @@ "message": "Faire pivoter la vidéo" }, "save": { - "message": "Sauvegarder" + "message": "Ok" }, "saveAs": { "message": "Sauvegarder sous" }, "schedule": { - "message": "Planifier" + "message": "Plage horaire" }, "screen": { "message": "Écran" @@ -720,7 +723,7 @@ "message": "Réintialiser les raccourcis." }, "thumbnails": { - "message": "Vignettes" + "message": "Miniature" }, "timeFrom": { "message": "Temps de" @@ -731,6 +734,9 @@ "todayAt": { "message": "Aujourd'hui à" }, + "toggleAutoplay": { + "message": "Basculer lecture auto" + }, "toggleCards": { "message": "Toggle cards" }, From 80ba794ab7c776dfabb5582c3777ce359fc52619 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 3 Apr 2021 03:07:06 +0200 Subject: [PATCH 0104/1224] Update youtube-scripts.js --- youtube-scripts.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index ebddbc773..ccc05df91 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2987,7 +2987,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function() { /*------------------------------------------------------------------------------ 10.2 IMPROVEDTUBE BUTTON (SIDEBAR) ------------------------------------------------------------------------------*/ - +/* ImprovedTube.improvedtube_youtube_sidebar_button_wait = false; ImprovedTube.improvedtubeYoutubeSidebarButton = function() { @@ -3022,7 +3022,7 @@ ImprovedTube.improvedtubeYoutubeSidebarButton = function() { /*------------------------------------------------------------------------------ 10.3 IMPROVEDTUBE PLAYER BUTTONS ------------------------------------------------------------------------------*/ - +/* ImprovedTube.improvedtube_youtube_player_buttons_wait = false; ImprovedTube.improvedtubeYoutubePlayerButtons = function() { From c96394aaf6dfcd8e91614b7dff8db21fb61c15dc Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 3 Apr 2021 03:08:54 +0200 Subject: [PATCH 0105/1224] Update manifest.json --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 4d1f2ccbf..8d62ac583 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", - "version": "3.203", + "version": "3.224", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 3e55cd8a278ab500a4b00ccbbbf1034be70377c8 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 3 Apr 2021 13:25:28 +0200 Subject: [PATCH 0106/1224] undo ads #836 --- youtube-scripts.js | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index ccc05df91..aa3d3942d 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1147,30 +1147,29 @@ ImprovedTube.playerAds = function() { clearInterval(ImprovedTube.adInterval); } - var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); + if (ImprovedTube.storage.player_ads === 'block_all') { + ImprovedTube.adInterval = setInterval(function() { + var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); - if (button) { - if (ImprovedTube.storage.player_ads === 'block_all') { - ImprovedTube.adInterval = setInterval(function() { - if (button) { - button.click(); + if (button) { + button.click(); - clearInterval(ImprovedTube.adInterval); - } - }, 50); - } else if (ImprovedTube.storage.player_ads === 'subscribed_channels') { - ImprovedTube.adInterval = setInterval(function() { - if (button && !document.querySelector('#meta paper-button[subscribed]')) { - button.click(); + clearInterval(ImprovedTube.adInterval); + } + }, 50); + } else if (ImprovedTube.storage.player_ads === 'subscribed_channels') { + ImprovedTube.adInterval = setInterval(function() { + var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); - clearInterval(ImprovedTube.adInterval); - } - }, 50); - } + if (button && !document.querySelector('#meta paper-button[subscribed]')) { + button.click(); + + clearInterval(ImprovedTube.adInterval); + } + }, 50); } }; - /*------------------------------------------------------------------------------ 4.7 CUSTOM MINI-PLAYER ------------------------------------------------------------------------------*/ From 107b6547fa8e082a9d6f346c927cc5ea8b2afbf3 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 5 Apr 2021 22:37:53 +0200 Subject: [PATCH 0107/1224] Update youtube-scripts.js --- youtube-scripts.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index aa3d3942d..d4730d98d 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3127,8 +3127,8 @@ ImprovedTube.pageUpdateListener = function() { ImprovedTube.blacklist(); ImprovedTube.improvedtubeYoutubeIcon(); - ImprovedTube.improvedtubeYoutubeSidebarButton(); - ImprovedTube.improvedtubeYoutubePlayerButtons(); + // ImprovedTube.improvedtubeYoutubeSidebarButton(); + // ImprovedTube.improvedtubeYoutubePlayerButtons(); }); }; @@ -3236,8 +3236,8 @@ ImprovedTube.DOMContentLoaded = function() { ImprovedTube.blacklist(); ImprovedTube.improvedtubeYoutubeIcon(); - ImprovedTube.improvedtubeYoutubeSidebarButton(); - ImprovedTube.improvedtubeYoutubePlayerButtons(); + // ImprovedTube.improvedtubeYoutubeSidebarButton(); + // ImprovedTube.improvedtubeYoutubePlayerButtons(); ImprovedTube.pageUpdateListener(); }); From 1bc897c6e4be703bfd8e8f3ad4c8db6325241dc4 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 6 Apr 2021 03:02:56 +0200 Subject: [PATCH 0108/1224] Update popup.js --- popup.js | 60 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/popup.js b/popup.js index 002c4fc01..f40c0b9c7 100644 --- a/popup.js +++ b/popup.js @@ -1259,21 +1259,11 @@ Menu.main.section.general = { collapse_of_subscription_sections: { type: 'switch', label: 'collapseOfSubscriptionSections' - }, - add_scroll_to_top: { - type: 'switch', - label: 'addScrollToTop', - tags: 'up' - }, + }, remove_related_search_results: { type: 'switch', label: 'removeRelatedSearchResults' }, - confirmation_before_closing: { - type: 'switch', - label: 'confirmationBeforeClosing', - tags: 'random prevent close exit' - }, mark_watched_videos: { type: 'switch', label: 'markWatchedVideos' @@ -1281,6 +1271,16 @@ Menu.main.section.general = { only_one_player_instance_playing: { type: 'switch', label: 'onlyOnePlayerInstancePlaying' + }, + confirmation_before_closing: { + type: 'switch', + label: 'confirmationBeforeClosing', + tags: 'random prevent close exit' + }, + add_scroll_to_top: { + type: 'switch', + label: 'addScrollToTop', + tags: 'up' } }, @@ -2354,6 +2354,25 @@ Menu.main.section.player = { label: 'autoplay', value: true }, + player_autofullscreen: { + type: 'switch', + label: 'autoFullscreen' + }, + player_ads: { + label: 'ads', + type: 'select', + options: [{ + label: 'onAllVideos', + value: 'all_videos', + default: 'true' + }, { + label: 'onSubscribedChannels', + value: 'subscribed_channels' + }, { + label: 'blockAll', + value: 'block_all' + }] + }, player_autopause_when_switching_tabs: { type: 'switch', label: 'autopauseWhenSwitchingTabs' @@ -2393,28 +2412,9 @@ Menu.main.section.player = { label: 'upNextAutoplay', value: true }, - player_ads: { - label: 'ads', - type: 'select', - options: [{ - label: 'onAllVideos', - value: 'all_videos', - default: 'true' - }, { - label: 'onSubscribedChannels', - value: 'subscribed_channels' - }, { - label: 'blockAll', - value: 'block_all' - }] - }, mini_player: { type: 'switch', label: 'customMiniPlayer' - }, - player_autofullscreen: { - type: 'switch', - label: 'autoFullscreen' } }, From e3e86e93229aee0d93b29641ac056315540dd656 Mon Sep 17 00:00:00 2001 From: FluidExtractor Date: Wed, 7 Apr 2021 14:42:16 +0200 Subject: [PATCH 0109/1224] Added Polish translation --- _locales/pl/messages.json | 830 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 830 insertions(+) create mode 100644 _locales/pl/messages.json diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json new file mode 100644 index 000000000..3caaf7a8d --- /dev/null +++ b/_locales/pl/messages.json @@ -0,0 +1,830 @@ +{ + "about": { + "message": "Informacje" + }, + "accept": { + "message": "Akceptuj" + }, + "activate": { + "message": "Aktywuj" + }, + "activateCaptions": { + "message": "Aktywuj napisy" + }, + "activated": { + "message": "Aktywowane" + }, + "activatedFeatures": { + "message": "Aktywowane funkcje" + }, + "activateFullscreen": { + "message": "Aktywuj tryb pełnoekranowy" + }, + "activeFeatures": { + "message": "Aktywne funkcje" + }, + "addScrollToTop": { + "message": "Dodaj «Przewiń do góry»" + }, + "ads": { + "message": "Reklamy" + }, + "all": { + "message": "Wszystkie" + }, + "allow": { + "message": "Zezwól" + }, + "allow60fps": { + "message": "Zezwól na 60fps" + }, + "forceSDR": { + "message": "Wymuś SDR" + }, + "alwaysActive": { + "message": "Zawsze aktywne" + }, + "alwaysShowProgressBar": { + "message": "Zawsze pokazuj pasek postępu" + }, + "amber": { + "message": "Bursztynowy" + }, + "analyzer": { + "message": "Analizator" + }, + "appearance": { + "message": "Wygląd" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formaty audio" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Automatyczny tryb pełnoekranowy" + }, + "autopauseWhenSwitchingTabs": { + "message": "Automatyczna pauza przy zmianie kart" + }, + "autoplay": { + "message": "Autoodtwarzanie" + }, + "backupAndReset": { + "message": "Kopia zapasowa i reset" + }, + "baseOnSystemColorScheme": { + "message": "Bazuj na systemowym schemacie kolorów" + }, + "belowPlayer": { + "message": "Pod odtwarzaczem" + }, + "black": { + "message": "Czarny" + }, + "blacklist": { + "message": "Czarna lista" + }, + "blockAll": { + "message": "Blokuj wszystkie" + }, + "blue": { + "message": "Niebieski" + }, + "blueGray": { + "message": "Szaroniebieski" + }, + "bluelight": { + "message": "Niebieskie światło" + }, + "brown": { + "message": "Brązowy" + }, + "browser": { + "message": "Przeglądarka" + }, + "browserVersion": { + "message": "Wersja przeglądarki" + }, + "bubbles": { + "message": "Dymki" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Przyciski" + }, + "cancel": { + "message": "Anuluj" + }, + "categories": { + "message": "Kategorie" + }, + "channel": { + "message": "Kanał" + }, + "channels": { + "message": "Kanały" + }, + "clipboard": { + "message": "Schowek" + }, + "codecH264": { + "message": "Kodek h.264" + }, + "collapsed": { + "message": "Zwinięte" + }, + "collapseOfSubscriptionSections": { + "message": "Zwinięcie sekcji subskrypcji" + }, + "comments": { + "message": "Komentarze" + }, + "confirmationBeforeClosing": { + "message": "Potwierdzenie przy zamknięciu" + }, + "cookies": { + "message": "Ciasteczka" + }, + "cores": { + "message": "Rdzenie" + }, + "cropChapterTitles": { + "message": "Przycinaj tytuły rozdziałów" + }, + "customCss": { + "message": "Niestandardowy CSS" + }, + "customJs": { + "message": "Niestandardowy JS" + }, + "customMiniPlayer": { + "message": "Niestandardowy Mini-Odtwarzacz" + }, + "openPopupPlayer": { + "message": "Otwórz wideo/playliste w nowym oknie" + }, + "cyan": { + "message": "Cyjan" + }, + "dark": { + "message": "Ciemny" + }, + "darkTheme": { + "message": "Ciemny motyw" + }, + "dateAndTime": { + "message": "Data i godzina" + }, + "dawn": { + "message": "Świt" + }, + "decreasePlaybackSpeed": { + "message": "Zmniejsz prędkość odtwarzania" + }, + "decreaseVolume": { + "message": "Zmniejsz głośność" + }, + "deepOrange": { + "message": "Głęboki pomarańczowy" + }, + "deepPurple": { + "message": "Glęboki fioletowy" + }, + "defaultChannelTab": { + "message": "Domyślna zakładka na kanałach" + }, + "deleteYoutubeCookies": { + "message": "Usuń ciasteczka YouTube" + }, + "description": { + "message": "Opis" + }, + "desert": { + "message": "Pustynia" + }, + "details": { + "message": "Szczegóły" + }, + "developerOptions": { + "message": "Ustawienia deweloperskie" + }, + "device": { + "message": "Urządzenie" + }, + "dim": { + "message": "Przyciemnij" + }, + "disabled": { + "message": "Wyłączony" + }, + "dislike": { + "message": "Nie podoba mi się" + }, + "donate": { + "message": "Dotacja" + }, + "doNotChange": { + "message": "Nie zmieniaj" + }, + "draggable": { + "message": "Przeciągalne" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Pusty" + }, + "enabled": { + "message": "Włączony" + }, + "enabledForced": { + "message": "Włączony (wymuszony)" + }, + "expanded": { + "message": "Rozwinięte" + }, + "exportSettings": { + "message": "Eksport ustawień" + }, + "extension": { + "message": "Rozszerzenie" + }, + "file": { + "message": "Plik" + }, + "filters": { + "message": "Filtry" + }, + "fitToWindow": { + "message": "Dopasuj do okna" + }, + "flash": { + "message": "Błysk" + }, + "font": { + "message": "Czcionka" + }, + "footer": { + "message": "Stopka" + }, + "forcedPlaybackSpeed": { + "message": "Wymuś prędkość odtwarzania" + }, + "forcedTheaterMode": { + "message": "Wymuś tryb kinowy" + }, + "forcedVolume": { + "message": "Wymuś poziom głośności" + }, + "foundABug": { + "message": "Znalazłeś buga?" + }, + "fullWindow": { + "message": "Pełne okno" + }, + "general": { + "message": "Ogólne" + }, + "geoPreference": { + "message": "Geo preferencja" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Idź do paska wyszukiwania" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Zielony" + }, + "hdThumbnail": { + "message": "Miniatura HD" + }, + "hdThumbnails": { + "message": "Miniatury HD" + }, + "header": { + "message": "Nagłówki" + }, + "hidden": { + "message": "Ukryty" + }, + "hiddenOnVideoPage": { + "message": "Ukryty na stronie z wideo" + }, + "hideAnimatedThumbnails": { + "message": "Ukryj animowane miniatury" + }, + "hideAnnotations": { + "message": "Ukryj adnotacje" + }, + "hideCards": { + "message": "Ukryj karty" + }, + "hideControls": { + "message": "Ukryj sterowanie odtwarzaczem" + }, + "hideDetails": { + "message": "Ukryj szczegóły" + }, + "hideEndscreen": { + "message": "Ukryj ekran końcowy" + }, + "hideFeaturedContent": { + "message": "Ukryj wyróżnioną zawartość" + }, + "hideFooter": { + "message": "Ukryj stopkę" + }, + "hideGradientBottom": { + "message": "Ukryj cień dookoła paska odtwarzania" + }, + "hidePlaylist": { + "message": "Ukryj playliste" + }, + "hideRightButtons": { + "message": "Ukryj przyciski po prawej" + }, + "hideScrollForDetails": { + "message": "Ukryj «Przewiń do szczegółów»" + }, + "hideThumbnailOverlay": { + "message": "Ukryj przyciski na miniaturach" + }, + "hideViewsCount": { + "message": "Ukryj ilość wyświetleń" + }, + "history": { + "message": "Historia" + }, + "home": { + "message": "Strona główna" + }, + "hover": { + "message": "Najedź" + }, + "hoverOnVideoPage": { + "message": "Najedź na stronie wideo" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Jak dawno wideo zostało przesłane" + }, + "icons": { + "message": "Ikony" + }, + "iconsOnly": { + "message": "Tylko ikony" + }, + "importSettings": { + "message": "Import ustawień" + }, + "improvedtubeIconInBrowser": { + "message": "Ikona ImprovedTube w przeglądarce" + }, + "improvedtubeIconOnYoutube": { + "message": "Ikona ImprovedTube na YouTube" + }, + "improvedtubeLanguage": { + "message": "Język ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Wersja ImprovedTube" + }, + "improveLogo": { + "message": "Ulepsz logo" + }, + "increasePlaybackSpeed": { + "message": "Zwiększ prędkość odtwarzania" + }, + "increaseVolume": { + "message": "Zwiększ głośność" + }, + "indigo": { + "message": "Indygo" + }, + "items": { + "message": "Przedmioty" + }, + "languages": { + "message": "Języki" + }, + "legacyYoutube": { + "message": "Stara wersja YouTube" + }, + "light": { + "message": "Jasny" + }, + "lightBlue": { + "message": "jasnoniebieski" + }, + "lightGreen": { + "message": "Jasnozielony" + }, + "like": { + "message": "Polub" + }, + "likes": { + "message": "Polubienia" + }, + "lime": { + "message": "Lime" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Czat na żywo" + }, + "liveChatType": { + "message": "Rodzaj czatu na żywo" + }, + "loudnessNormalization": { + "message": "Normalizacja głośności" + }, + "markWatchedVideos": { + "message": "Oznacz obejrzane wideo" + }, + "mixer": { + "message": "Mikser" + }, + "myColors": { + "message": "Moje kolory" + }, + "name": { + "message": "Nazwa" + }, + "nativeMiniPlayer": { + "message": "Natywny mini-odtwarzacz" + }, + "new": { + "message": "Nowe" + }, + "nextVideo": { + "message": "Następne wideo" + }, + "night": { + "message": "Noc" + }, + "noActiveFeatures": { + "message": "Brak aktywnych funkcji" + }, + "none": { + "message": "Brak" + }, + "noOpenVideoTabs": { + "message": "Brak otwartych kart wideo" + }, + "normal": { + "message": "Normalny" + }, + "old": { + "message": "Stary" + }, + "onAllVideos": { + "message": "Na wszystkich wideo" + }, + "onlyActiveOnYoutube": { + "message": "Aktywny tylko na YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Odtwarzanie tylko jednej instancji odtwarzacza" + }, + "onSubscribedChannels": { + "message": "Na subskrybowanych kanałach" + }, + "orange": { + "message": "Pomarańczowy" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Inne" + }, + "permissions": { + "message": "Uprawnienia" + }, + "pictureInPicture": { + "message": "Obraz w Obrazie" + }, + "pink": { + "message": "Różowy" + }, + "plain": { + "message": "Zwykły" + }, + "platform": { + "message": "Platforma" + }, + "playbackSpeed": { + "message": "Prędkość odtwarzania" + }, + "player": { + "message": "Odtwarzacz" + }, + "playerColor": { + "message": "Kolor odtwarzacza" + }, + "playerSize": { + "message": "Rozmiar odtwarzacza" + }, + "playlist": { + "message": "Playlista" + }, + "playlists": { + "message": "Playlisty" + }, + "playPause": { + "message": "Odtwarzanie / Pauza" + }, + "popupPlayer": { + "message": "Odtwarzacz popout" + }, + "position": { + "message": "Pozycja" + }, + "pressAnyKeyOrScroll": { + "message": "Wciśnij dowolny przycisk lub użyj kółka myszy." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Wciśnij dowolny przycisk lub użyj kółka myszy" + }, + "previousVideo": { + "message": "Poprzednie wideo" + }, + "primaryColor": { + "message": "Kolor główny" + }, + "purple": { + "message": "Fioletowy" + }, + "quality": { + "message": "Jakość" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Oceń nas" + }, + "red": { + "message": "Czerwony" + }, + "redDislikeButton": { + "message": "Koloruj przycisk 'Nie lubię' na czerwono" + }, + "relatedVideos": { + "message": "Wideo powiązane" + }, + "removeRelatedSearchResults": { + "message": "Usuń powiązane wyniki wyszukiwania" + }, + "repeat": { + "message": "Powtarzaj" + }, + "reset": { + "message": "Reset" + }, + "resetAllSettings": { + "message": "Resetuj wszystkie ustawienia" + }, + "resetAllShortcuts": { + "message": "Resetuj wszystkie skróty" + }, + "reverse": { + "message": "Odwróć" + }, + "rotate": { + "message": "Obróć" + }, + "save": { + "message": "Zapisz" + }, + "saveAs": { + "message": "Zapisz jako" + }, + "schedule": { + "message": "Harmonogram" + }, + "screen": { + "message": "Ekran" + }, + "screenshot": { + "message": "Zrzut ekranu" + }, + "search": { + "message": "Wyszukaj" + }, + "searchBarOnly": { + "message": "Tylko pasek wyszukiwania" + }, + "seekBackward10Seconds": { + "message": "Przewiń 10 sekund do tyłu" + }, + "seekForward10Seconds": { + "message": "Przewiń 10 sekund do przodu" + }, + "settings": { + "message": "Ustawienia" + }, + "settingsSuccessfullyImported": { + "message": "Ustawienia pomyślnie zaimportowane" + }, + "shortcuts": { + "message": "Skróty" + }, + "showCardsOnMouseHover": { + "message": "Pokaż karty po najechaniu myszą" + }, + "showChannelVideosCount": { + "message": "Pokaż ilość wideo na kanale" + }, + "shuffle": { + "message": "Shuffle" + }, + "sidebar": { + "message": "Panel boczny" + }, + "spacebar": { + "message": "Spacja" + }, + "squaredUserImages": { + "message": "Kwadratowe avatary użytkowników" + }, + "static": { + "message": "Statyczne" + }, + "statsForNerds": { + "message": "Statystyki dla nerdów" + }, + "step": { + "message": "Stopień" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Styl" + }, + "styles": { + "message": "Style" + }, + "subscriptions": { + "message": "Subskrypcje" + }, + "subtitles": { + "message": "Napisy" + }, + "sunset": { + "message": "Zachód słońca" + }, + "sunsetToSunrise": { + "message": "Od zachodu do wschodu słońca" + }, + "systemPeferenceDark": { + "message": "Preferencja systemowa: ciemne" + }, + "systemPeferenceLight": { + "message": "Preferencja systemowa: jasne" + }, + "teal": { + "message": "Morski" + }, + "textColor": { + "message": "Kolor tekstu" + }, + "themes": { + "message": "Motywy" + }, + "thisWillRemoveAllCookies": { + "message": "To usunie wszystkie ciasteczka." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "To usunie wszystkie ciasteczka YouTube." + }, + "thisWillResetAllSettings": { + "message": "To zresetuje wszystkie ustawienia." + }, + "thisWillResetAllShortcuts": { + "message": "To zresetuje wszystkie skróty" + }, + "thumbnails": { + "message": "Miniatury" + }, + "timeFrom": { + "message": "Czas od" + }, + "timeTo": { + "message": "Czas do" + }, + "todayAt": { + "message": "Dzisiaj o" + }, + "toggleAutoplay": { + "message": "Przełącz autoodtwarzanie" + }, + "toggleCards": { + "message": "Przełącz karty" + }, + "toggleControls": { + "message": "Przełącz widoczność sterowania odtwarzaczew" + }, + "topChat": { + "message": "Czat na górze" + }, + "trailerAutoplay": { + "message": "Autoodtwarzanie zwiastunów" + }, + "translations": { + "message": "Tłumaczenia" + }, + "transparentBackground": { + "message": "Przezroczyste tło" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Spróbuj przeładować stronę" + }, + "type": { + "message": "Typ" + }, + "upNextAutoplay": { + "message": "Autoodwarzanie następnego wideo" + }, + "use24HourFormat": { + "message": "Używaj 24-godzinnego formatu czasu" + }, + "version": { + "message": "Wersja" + }, + "video": { + "message": "Wideo" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Opis wideo zostanie rozwinięty aby pozyskać nazwę kategorii" + }, + "videoFormats": { + "message": "Formaty wideo" + }, + "videos": { + "message": "Wideo" + }, + "volume": { + "message": "Głośność" + }, + "watchLater": { + "message": "Obejrzyj później" + }, + "watchTime": { + "message": "Czas oglądania" + }, + "whenTabIsChanged": { + "message": "Kiedy zostaje zmieniona karta" + }, + "white": { + "message": "Biały" + }, + "yellow": { + "message": "Żółty" + }, + "youtubeHeaderLeft": { + "message": "Nagłówek YouTube (lewy)" + }, + "youtubeHeaderRight": { + "message": "Nagłówek YouTube (prawy)" + }, + "youtubeHomePage": { + "message": "Strona główna YouTube" + }, + "youtubeLanguage": { + "message": "Język YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube ogranicza jakość wideo do 1080p przy kodeku h.264" + } +} From 8ecf3afdfa6017f97abe3f917572af4e49a18d55 Mon Sep 17 00:00:00 2001 From: FluidExtractor Date: Wed, 7 Apr 2021 14:56:33 +0200 Subject: [PATCH 0110/1224] Update Polish translation Fixed some incorrect translations --- _locales/pl/messages.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 3caaf7a8d..59e2e3b1c 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -207,7 +207,7 @@ "message": "Głęboki pomarańczowy" }, "deepPurple": { - "message": "Glęboki fioletowy" + "message": "Głęboki fioletowy" }, "defaultChannelTab": { "message": "Domyślna zakładka na kanałach" @@ -261,7 +261,7 @@ "message": "Włączony (wymuszony)" }, "expanded": { - "message": "Rozwinięte" + "message": "Rozwinięty" }, "exportSettings": { "message": "Eksport ustawień" @@ -327,7 +327,7 @@ "message": "Miniatury HD" }, "header": { - "message": "Nagłówki" + "message": "Nagłówek" }, "hidden": { "message": "Ukryty" @@ -438,7 +438,7 @@ "message": "Jasny" }, "lightBlue": { - "message": "jasnoniebieski" + "message": "Jasnoniebieski" }, "lightGreen": { "message": "Jasnozielony" @@ -450,7 +450,7 @@ "message": "Polubienia" }, "lime": { - "message": "Lime" + "message": "Limonkowy" }, "list": { "message": "Lista" @@ -699,7 +699,7 @@ "message": "Napisy" }, "sunset": { - "message": "Zachód słońca" + "message": "Zachód" }, "sunsetToSunrise": { "message": "Od zachodu do wschodu słońca" @@ -735,10 +735,10 @@ "message": "Miniatury" }, "timeFrom": { - "message": "Czas od" + "message": "Od" }, "timeTo": { - "message": "Czas do" + "message": "Do" }, "todayAt": { "message": "Dzisiaj o" From af65efacf4533ce6c3f9d576b12d8148e4d3cd12 Mon Sep 17 00:00:00 2001 From: FluidExtractor Date: Wed, 7 Apr 2021 15:01:06 +0200 Subject: [PATCH 0111/1224] Update popup.js Added Polish language selection --- popup.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/popup.js b/popup.js index f40c0b9c7..7349ac6b0 100644 --- a/popup.js +++ b/popup.js @@ -495,6 +495,9 @@ Menu.header.section_end.button_vert.onClickRender.settings = { }, { value: 'sk', label: 'Slovenčina' + }, { + value: 'pl', + label: 'Polski' }] }, youtube_language: { From 55d53e5c78a3514087c7fba5f3c76fd0f541119b Mon Sep 17 00:00:00 2001 From: jqnv Date: Fri, 9 Apr 2021 22:00:50 -0600 Subject: [PATCH 0112/1224] Update messages.json --- _locales/en/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 9dca901c9..64786ea45 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -1,6 +1,6 @@ { "about": { - "message": "About" + "message": "Acerca de" }, "accept": { "message": "Accept" From 9cc1a371480124c7c233a4b8df31ace49ff797f9 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 24 Apr 2021 16:27:19 +0300 Subject: [PATCH 0113/1224] Removed options.html --- manifest.json | 4 ++-- options.html | 20 -------------------- 2 files changed, 2 insertions(+), 22 deletions(-) delete mode 100644 options.html diff --git a/manifest.json b/manifest.json index 8d62ac583..613db8fa6 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", - "version": "3.224", + "version": "3.227", "default_locale": "en", "icons": { "128": "assets/icons/128.png", @@ -26,7 +26,7 @@ }, "default_popup": "index.html" }, - "options_page": "options.html", + "options_page": "index.html", "content_scripts": [{ "all_frames": true, "css": [ diff --git a/options.html b/options.html deleted file mode 100644 index 61d11272a..000000000 --- a/options.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - ImprovedTube - - - - - - - - - \ No newline at end of file From 1361a271fdc4a02ea50c6955bb4b4f5dac4e1ef7 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 24 Apr 2021 16:33:41 +0300 Subject: [PATCH 0114/1224] Fixed options page --- manifest.json | 2 +- popup.css | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 613db8fa6..cd2e958cb 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", - "version": "3.227", + "version": "3.228", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.css b/popup.css index 7b0bd414b..c701452b9 100644 --- a/popup.css +++ b/popup.css @@ -1914,4 +1914,25 @@ html[it-improvedtube-home='list'] .satus-section--info background: transparent !important; border: none !important; display: flex !important; +} + + +/*--------------------------------------------------------------- +# OPTIONS +---------------------------------------------------------------*/ + +@media (min-width: 301px) +{ + html + { + display: flex; + justify-content: center; + } + + body + { + height: 100vh; + width: 100%; + max-width: 768px; + } } \ No newline at end of file From 81b48f1d065c0e11197d63c102732539df839707 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 24 Apr 2021 23:00:08 +0300 Subject: [PATCH 0115/1224] Improving code readability --- background.js | 119 ++-- manifest.json | 2 +- page.js | 2 +- popup.css | 1471 ++++++++++++++----------------------------------- popup.js | 408 +++++++------- satus.css | 790 ++++++++------------------ satus.js | 296 +++++----- 7 files changed, 1093 insertions(+), 1995 deletions(-) diff --git a/background.js b/background.js index 3c2a3d34d..f2be215d4 100644 --- a/background.js +++ b/background.js @@ -1,26 +1,27 @@ -/*--------------------------------------------------------------- +/*-------------------------------------------------------------- >>> BACKGROUND ------------------------------------------------------------------ +---------------------------------------------------------------- # Global variables # Functions # Context menu items # Message listener # Storage change listener -# Initialization +# Tab focus/blur # Uninstall URL # Google Analytics ----------------------------------------------------------------*/ +# Initialization +--------------------------------------------------------------*/ -/*--------------------------------------------------------------- +/*-------------------------------------------------------------- # GLOBAL VARIABLES ----------------------------------------------------------------*/ +--------------------------------------------------------------*/ var locale_code = 'en', browser_icon = false; -/*--------------------------------------------------------------- +/*-------------------------------------------------------------- # FUNCTIONS ----------------------------------------------------------------*/ +--------------------------------------------------------------*/ function isset(variable) { return !(typeof variable === 'undefined' || variable === null); @@ -70,9 +71,9 @@ function browserActionIcon() { } -/*--------------------------------------------------------------- +/*-------------------------------------------------------------- # CONTEXT MENU ITEMS ----------------------------------------------------------------*/ +--------------------------------------------------------------*/ chrome.contextMenus.removeAll(); @@ -105,9 +106,9 @@ chrome.contextMenus.onClicked.addListener(function(event) { }); -/*--------------------------------------------------------------- +/*-------------------------------------------------------------- # MESSAGE LISTENER ----------------------------------------------------------------*/ +--------------------------------------------------------------*/ chrome.runtime.onMessage.addListener(function(request, sender) { if (isset(request) && typeof request === 'object') { @@ -288,9 +289,9 @@ chrome.runtime.onMessage.addListener(function(request, sender) { }); -/*--------------------------------------------------------------- +/*-------------------------------------------------------------- # STORAGE CHANGE LISTENER ----------------------------------------------------------------*/ +--------------------------------------------------------------*/ chrome.storage.onChanged.addListener(function(changes) { if (isset(changes.improvedtube_language)) { @@ -305,45 +306,39 @@ chrome.storage.onChanged.addListener(function(changes) { }); -/*--------------------------------------------------------------- -# INITIALIZATION ----------------------------------------------------------------*/ - -chrome.storage.local.get(function(items) { - if (isset(items.improvedtube_language)) { - locale_code = items.improvedtube_language; - } - - if (isset(items.improvedtube_browser_icon)) { - browser_icon = items.improvedtube_browser_icon; - } - - browserActionIcon(); -}); - -chrome.storage.local.get(function(items) { - var a = new Date().getTime(); +/*-------------------------------------------------------------- +# TAB FOCUS/BLUR +--------------------------------------------------------------*/ - if (a - (items.ga || 0) >= 86400000) { - _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); - - chrome.storage.local.set({ - ga: a +chrome.tabs.onActivated.addListener(function(activeInfo) { + chrome.tabs.query({}, function(tabs) { + chrome.tabs.sendMessage(activeInfo.tabId, { + action: 'focus' }); - } + + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].id !== activeInfo.tabId) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + action: 'blur' + }); + } + } + } + }); }); -/*--------------------------------------------------------------- +/*-------------------------------------------------------------- # UNINSTALL URL ----------------------------------------------------------------*/ +--------------------------------------------------------------*/ chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); -/*--------------------------------------------------------------- +/*-------------------------------------------------------------- # GOOGLE ANALYTICS ----------------------------------------------------------------*/ +--------------------------------------------------------------*/ var _gaq = _gaq || []; @@ -361,20 +356,30 @@ var _gaq = _gaq || []; })(); -chrome.tabs.onActivated.addListener(function(activeInfo) { - chrome.tabs.query({}, function(tabs) { - chrome.tabs.sendMessage(activeInfo.tabId, { - action: 'focus' - }); +/*-------------------------------------------------------------- +# INITIALIZATION +--------------------------------------------------------------*/ - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].id !== activeInfo.tabId) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - action: 'blur' - }); - } - } - } - }); +chrome.storage.local.get(function(items) { + if (isset(items.improvedtube_language)) { + locale_code = items.improvedtube_language; + } + + if (isset(items.improvedtube_browser_icon)) { + browser_icon = items.improvedtube_browser_icon; + } + + browserActionIcon(); +}); + +chrome.storage.local.get(function(items) { + var a = new Date().getTime(); + + if (a - (items.ga || 0) >= 86400000) { + _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); + + chrome.storage.local.set({ + ga: a + }); + } }); \ No newline at end of file diff --git a/manifest.json b/manifest.json index cd2e958cb..652fb5891 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", - "version": "3.228", + "version": "3.229", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/page.js b/page.js index 126c248b4..c8abfe5b8 100644 --- a/page.js +++ b/page.js @@ -7,7 +7,7 @@ document.addEventListener('DOMContentLoaded', function() { ImprovedTube - + `; }); \ No newline at end of file diff --git a/popup.css b/popup.css index c701452b9..1307418b4 100644 --- a/popup.css +++ b/popup.css @@ -1,598 +1,152 @@ - -/*--------------------------------------------------------------- ->>> THEMES ------------------------------------------------------------------ -1.0 Dark -2.0 Night -3.0 Dawn -4.0 Sunset -5.0 Desert -6.0 Plain -7.0 Black ----------------------------------------------------------------*/ - -.satus-firefox { - justify-content: center; - height: auto; - margin: 20px 16px; - background: transparent; -} - -.satus-firefox::before { - content: none -} - -html { - --satus-theme-primary: #ff4158; -} - - -/*--------------------------------------------------------------- -1.0 DARK ----------------------------------------------------------------*/ - -html[theme="dark"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #2c2b2c; - --satus-theme-dialog-text: #b5b5b5; - - --satus-theme-header: #343334; - --satus-theme-header-text: #b5b5b5; - - --satus-theme-main: #2c2b2c; - --satus-theme-main-text: #b5b5b5; - - --satus-theme-section: #343334; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - -/*--------------------------------------------------------------- -2.0 NIGHT ----------------------------------------------------------------*/ - -html[theme="night"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #61a7f5; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #61a7f5; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #3a48b4; - --satus-theme-main-text: #fafafa; - - --satus-theme-section: #61a7f5; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -3.0 DAWN ----------------------------------------------------------------*/ - -html[theme="dawn"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #ffba99; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #ffba99; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #ed74a9; - --satus-theme-main-text: #eee; - - --satus-theme-section: #ffba99; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -4.0 SUNSET ----------------------------------------------------------------*/ - -html[theme="sunset"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #a96165; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #a96165; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #2f3364; - --satus-theme-main-text: #eee; - - --satus-theme-section: #a96165; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -5.0 DESERT ----------------------------------------------------------------*/ - -html[theme="desert"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #9dc2ee; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #9dc2ee; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #ffe498; - --satus-theme-main-text: #eee; - - --satus-theme-section: #9dc2ee; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -6.0 PLAIN ----------------------------------------------------------------*/ - -html[theme="plain"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #abceb8; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #abceb8; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #dea975; - --satus-theme-main-text: #eee; - - --satus-theme-section: #abceb8; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*--------------------------------------------------------------- -7.0 BLACK ----------------------------------------------------------------*/ - -html[theme="black"] -{ - --satus-theme-primary: #ff4158; - - --satus-theme-dialog: #222; - --satus-theme-dialog-text: #fafafa; - - --satus-theme-header: #222; - --satus-theme-header-text: #fafafa; - - --satus-theme-main: #111; - --satus-theme-main-text: #eee; - - --satus-theme-section: #222; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - - --satus-theme-tooltip: rgba(10, 10, 10, .7); - - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - /*-------------------------------------------------------------- >>> TABLE OF CONTENTS: ---------------------------------------------------------------- -# Fonts -# Basic +# Body +# Header +# Main +# Dialog +# Themes --------------------------------------------------------------*/ /*-------------------------------------------------------------- -# FONTS +# BODY --------------------------------------------------------------*/ -@font-face -{ - font-family: 'Open Sans'; - font-weight: 400; - - src: url('assets/fonts/OpenSans-Regular.ttf'); -} - -@font-face -{ - font-family: 'Open Sans'; - font-weight: 600; - - src: url('assets/fonts/OpenSans-SemiBold.ttf'); -} - - -/*-------------------------------------------------------------- -# BASIC ---------------------------------------------------------------*/ - -body -{ - font-family: 'Open Sans', sans-serif; +body { + font-family: sans-serif; font-size: 14px; - display: flex; - overflow: hidden; flex-direction: column; - - width: 300px; + width: 320px; height: 532px; margin: 0; - - background-color: #eee; -} - -body.improvedtube-page -{ - width: 100vw; - height: 100vh; -} - -button -{ - font-family: 'Open Sans', sans-serif; -} - - - - - -.satus-dialog--confirm .satus-section -{ - display: flex; - background-color: transparent; -} - -.satus-dialog--confirm .satus-text -{ - display: block; - - box-sizing: border-box; - padding: 0 16px 8px; -} - -.satus-dialog--confirm .satus-button -{ - font-weight: 500; - - overflow: hidden; - - height: 28px; - min-height: 28px; - margin-right: 2px; - padding: 4px 8px; - - text-transform: uppercase; - - color: #f96754; - border-radius: 4px; -} - - - - - - - - - - - - - - - - - - - - - - -.satus-section--footer -{ - position: fixed; - z-index: 99; - bottom: 10px; - left: 16px; - display: flex; - box-sizing: border-box; - box-shadow: 0 0 3px rgba(0,0,0,.1); - width: 268px; - height: 38px; - padding: 8px 16px; - color: var(--satus-theme-main-text); - border-radius: 4px; - background: var(--satus-theme-section); - align-items: center; - justify-content: space-between; -} - -html[it-improvedtube-home='list'] .satus-section--footer -{ - position: relative; - left: 0; - top: 0; - margin: 50px 16px 16px; -} - -.satus-main .satus-section--footer .satus-button -{ - font-family: 'Open Sans', sans-serif; - font-weight: 700; - font-size: 13px; - text-decoration: none; - color: var(--satus-theme-main-text); - text-align: center; - height: 32px; - justify-content: center; - border-radius: 4px; - overflow: hidden; -} - -.satus-main .satus-section--footer .satus-button--found-a-bug { - width: 128px; - position: absolute; - bottom: 48px; - left: 70px; -} - -.satus-dialog--setup -{ - animation: unset; -} - -.satus-dialog--setup .satus-dialog__scrim -{ - display: none; -} - -.satus-dialog--setup .satus-dialog__surface -{ - position: absolute; - top: 0; - left: 0; - - padding: 0; - - width: 100%; - height: 100%; - max-height: unset; - - transform: unset; - animation: unset; - - opacity: 1; - border-radius: unset; } -.satus-dialog--setup-language .satus-button -{ - width: 100%; - height: 48px; -} -/*--------------------------------------------------------------- ->>> HEADER: ------------------------------------------------------------------ -1.0 Buttons - 1.1 Back button -2.0 Title -3.0 Right section -4.0 Search -5.0 Vertical menu ----------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# HEADER +--------------------------------------------------------------*/ -/*--------------------------------------------------------------- -1.0 BUTTONS ----------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# BUTTONS +--------------------------------------------------------------*/ -.satus-header .satus-button -{ +.satus-header .satus-button { width: 36px; height: 36px; padding: 6px; } -.satus-header .satus-button::before -{ +.satus-header .satus-button::before { border-radius: 50%; } -/*--------------------------------------------------------------- -1.1 BACK BUTTON ----------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# BACK BUTTON +--------------------------------------------------------------*/ -.satus-button--back -{ +.satus-button--back { position: absolute; } -.satus-button--back svg -{ +.satus-button--back svg { fill: none; stroke: currentColor; } -body[data-appearance='home'] .satus-button--back -{ +body[data-appearance='home'] .satus-button--back { visibility: hidden; } -/*--------------------------------------------------------------- -2.0 TITLE ----------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# TITLE +--------------------------------------------------------------*/ -.satus-text--title -{ +.satus-text--title { font-size: 15px; font-weight: 400; - position: absolute; left: 56px; - letter-spacing: .0125em; } -html[it-title-version='true'] body[data-appearance='home'] .satus-text--title::after -{ +html[it-title-version='true'] body[data-appearance='home'] .satus-text--title::after { font: 700 10px sans-serif; - margin: 0 0 0 4px; - content: attr(data-version); - opacity: .6; color: var(--satus-theme-header-text); } -body[data-appearance='home'] .satus-text--title -{ +body[data-appearance='home'] .satus-text--title { left: 14px; } -/*--------------------------------------------------------------- -3.0 RIGHT SECTION ----------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# RIGHT SECTION +--------------------------------------------------------------*/ -.satus-section--align-end -{ +.satus-section--align-end { justify-content: flex-end; } -.satus-section--align-end .satus-button + .satus-button -{ +.satus-section--align-end .satus-button+.satus-button { margin-left: 8px; } -/*--------------------------------------------------------------- -4.0 SEARCH ----------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# SEARCH +--------------------------------------------------------------*/ -.satus-dialog--search -{ +.satus-dialog--search { pointer-events: none; } -.satus-dialog--search .satus-dialog__scrim -{ +.satus-dialog--search .satus-dialog__scrim { display: none; } -.satus-dialog--search .satus-dialog__surface -{ +.satus-dialog--search .satus-dialog__surface { position: fixed; top: 11px; right: 8px; - visibility: unset; - width: calc(100% - 62px); min-width: unset; max-width: unset; height: 34px; padding: 0; - transform: unset; animation: unset; pointer-events: all; - opacity: unset; - border: 1px solid rgba(0,0,0,.05); + border: 1px solid rgba(0, 0, 0, .05); box-shadow: unset; } -.satus-dialog--search .satus-dialog__surface .satus-text-field -{ +.satus-dialog--search .satus-dialog__surface .satus-text-field { height: 34px; } -.satus-dialog--search .satus-dialog__surface .satus-button -{ +.satus-dialog--search .satus-dialog__surface .satus-button { position: absolute; top: 3px; right: 3px; - overflow: hidden; - width: 32px; height: 32px; - border-radius: 50%; } -.satus-dialog--search .satus-dialog__surface .satus-button svg -{ +.satus-dialog--search .satus-dialog__surface .satus-button svg { fill: none; stroke: currentColor; } - body[data-appearance='search'] .satus-switch--red, body[data-appearance='search'] .satus-switch--dark, body[data-appearance='search'] .satus-switch--night, @@ -600,11 +154,9 @@ body[data-appearance='search'] .satus-switch--dawn, body[data-appearance='search'] .satus-switch--sunset, body[data-appearance='search'] .satus-switch--desert, body[data-appearance='search'] .satus-switch--plain, -body[data-appearance='search'] .satus-switch--black -{ +body[data-appearance='search'] .satus-switch--black { width: calc(100% - 16px); margin: 4px 8px; - border-radius: 6px; } @@ -613,85 +165,63 @@ body[data-appearance='search'] .satus-switch--dark .satus-switch__label, body[data-appearance='search'] .satus-switch--night .satus-switch__label, body[data-appearance='search'] .satus-switch--dawn .satus-switch__label, body[data-appearance='search'] .satus-switch--sunset .satus-switch__label, -body[data-appearance='search'] .satus-switch--black .satus-switch__label -{ +body[data-appearance='search'] .satus-switch--black .satus-switch__label { color: #fff; } body[data-appearance='search'] .satus-switch--plain .satus-switch__label, -body[data-appearance='search'] .satus-switch--desert .satus-switch__label -{ +body[data-appearance='search'] .satus-switch--desert .satus-switch__label { color: #222; } -/*--------------------------------------------------------------- -5.0 VERTICAL MENU ----------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# VERTICAL MENU +--------------------------------------------------------------*/ -.satus-dialog--vertical-menu .satus-dialog__surface -{ +.satus-dialog--vertical-menu .satus-dialog__surface { position: absolute; top: 8px; right: 8px; left: auto; - min-width: 180px; max-width: 180px; - transform-origin: right top; } .satus-dialog--vertical-menu .satus-button, -.satus-dialog--vertical-menu .satus-folder -{ +.satus-dialog--vertical-menu .satus-folder { width: 100%; height: 36px; padding: 0 16px; - text-align: left; } .satus-dialog--vertical-menu .satus-folder svg, -.satus-dialog--vertical-menu .satus-button svg -{ +.satus-dialog--vertical-menu .satus-button svg { width: 20px; height: 18px; margin: 0 14px 0 0; - opacity: .75; - fill: none; stroke: var(--satus-theme-primary); } -.satus-dialog--vertical-menu .satus-folder--mixer svg -{ +.satus-dialog--vertical-menu .satus-folder--mixer svg { height: 20px; } -.satus-dialog--vertical-menu .satus-button--github svg -{ +.satus-dialog--vertical-menu .satus-button--github svg { width: 18px; height: 18px; } -/*-------------------------------------------------------------- ->>> MAIN: ----------------------------------------------------------------- -1.0 Basic -2.0 Section -3.0 Folder -4.0 Button -5.0 Custom ---------------------------------------------------------------*/ /*-------------------------------------------------------------- -1.0 BASIC +# MAIN --------------------------------------------------------------*/ -.satus-main -{ +.satus-main { flex: 1; } @@ -700,34 +230,27 @@ body[data-appearance='search'] .satus-switch--desert .satus-switch__label 2.0 SECTION --------------------------------------------------------------*/ -.satus-main .satus-section--label -{ +.satus-main .satus-section--label { font-size: 17px; - display: block; - width: calc(100% - 16px); max-width: 900px; margin: 16px auto 8px; } html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-section:not(.satus-section--footer), -.satus-main__container:not([data-appearance='home']) .satus-section:not(.satus-section--footer) -{ +.satus-main__container:not([data-appearance='home']) .satus-section:not(.satus-section--footer) { display: block; - width: calc(100% - 16px); max-width: 900px; margin: 8px auto; padding: 8px 0; - - border: 1px solid rgba(0,0,0,.1); + border: 1px solid rgba(0, 0, 0, .1); border-radius: 8px; } html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-section--message, -.satus-main__container:not([data-appearance='home']) .satus-section--message -{ +.satus-main__container:not([data-appearance='home']) .satus-section--message { padding-right: 8px; padding-left: 8px; } @@ -737,14 +260,11 @@ html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] 3.0 FOLDER --------------------------------------------------------------*/ -.satus-main .satus-folder svg -{ +.satus-main .satus-folder svg { width: 20px; height: 20px; margin: 0 14px 0 0; - opacity: .75; - stroke: none; fill: var(--satus-theme-primary); } @@ -754,8 +274,7 @@ html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] 4.0 BUTTON --------------------------------------------------------------*/ -.satus-main .satus-button -{ +.satus-main .satus-button { width: 100%; height: 48px; padding: 0 16px; @@ -767,197 +286,154 @@ html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] 5.0 CUSTOM --------------------------------------------------------------*/ -#forced-playback-speed + *, -#forced-volume + * -{ +#forced-playback-speed+*, +#forced-volume+* { pointer-events: none; - opacity: .5; } -#forced-playback-speed[data-value=true] + *, -#forced-volume[data-value=true] + * -{ +#forced-playback-speed[data-value=true]+*, +#forced-volume[data-value=true]+* { pointer-events: all; - opacity: 1; } + /*-------------------------------------------------------------- ->>> HOME +# HOME --------------------------------------------------------------*/ -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-section:not(.satus-section--footer) -{ +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-section:not(.satus-section--footer) { width: 100%; margin-top: 16px; - - flex-wrap: wrap; - background-color: transparent; + flex-wrap: wrap; } - - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder -{ +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder { position: relative; - flex-direction: column; - width: 64px; height: 86px; margin: 0 18px 14px; padding: 0; - cursor: default; } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder::before -{ - background-color: transparent +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder::before { + background-color: transparent; } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder__label -{ +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder__label { + line-height: 12px; text-align: center; pointer-events: none; - line-height: 12px; } html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder:focus, -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder:hover -{ +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder:hover { background-color: transparent; } html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg, -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--shortcut__icon -{ +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--shortcut__icon { display: block; overflow: visible; - width: 28px; height: 28px; margin: 0 0 5px 0; padding: 16px; - cursor: pointer; transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; - opacity: .95; border-radius: 50%; background: linear-gradient(135deg, #ff4158, #ff001f); - box-shadow: 0 2px 1px 1px rgba(222, 0, 27, .7), 0 3px 5px rgba(0,0,0,.35); + box-shadow: 0 2px 1px 1px rgba(222, 0, 27, .7), 0 3px 5px rgba(0, 0, 0, .35); } html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg:focus, -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg:hover -{ +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg:hover { transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; transform: translateY(4px) scale(.975); - - box-shadow: 0 1px 1px 0 rgba(222, 0, 27, .7), 0 1px 2px rgba(0,0,0,.35); + box-shadow: 0 1px 1px 0 rgba(222, 0, 27, .7), 0 1px 2px rgba(0, 0, 0, .35); } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--general svg -{ +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--general svg { width: 26px; height: 26px; padding: 19px 17px 15px 17px; - fill: transparent; stroke: rgba(255, 255, 255, .85); } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--appearance svg -{ +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--appearance svg { width: 26px; height: 26px; padding: 19px 17px 15px 17px; - fill: transparent; stroke: rgba(255, 255, 255, .85); } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--themes svg -{ +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--themes svg { padding: 17px 16px 15px 16px; - fill: transparent; stroke: rgba(255, 255, 255, .85); } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--player svg -{ +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--player svg { width: 26px; height: 26px; padding: 19px 15px 15px 19px; - fill: transparent; stroke: rgba(255, 255, 255, .85); } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--playlist svg -{ +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--playlist svg { padding: 17px 16px 15px 16px; - fill: transparent; stroke: rgba(255, 255, 255, .85); } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--channel svg -{ +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--channel svg { fill: transparent; stroke: rgba(255, 255, 255, .85); } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--shortcut svg -{ +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--shortcut svg { width: 26px; height: 26px; padding: 19px 17px 15px 17px; - fill: transparent; stroke: rgba(255, 255, 255, .85); } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--mixer svg -{ +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--mixer svg { padding: 17px 16px 15px 16px; - fill: transparent; stroke: rgba(255, 255, 255, .85); } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--blacklist svg -{ +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--blacklist svg { width: 26px; height: 26px; padding: 18px 17px 16px 17px; - fill: transparent; stroke: rgba(255, 255, 255, .85); } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--analyzer svg -{ +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--analyzer svg { width: 26px; height: 26px; padding: 18px 17px 16px 17px; - fill: transparent; stroke: rgba(255, 255, 255, .85); } -html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-folder svg -{ +html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-folder svg { fill: transparent; stroke: var(--satus-theme-primary); } - - html[it-it-general='false'] .satus-folder--general, html[it-it-appearance='false'] .satus-folder--appearance, html[it-it-themes='false'] .satus-folder--themes, @@ -966,901 +442,635 @@ html[it-it-playlist='false'] .satus-folder--playlist, html[it-it-channel='false'] .satus-folder--channel, html[it-it-shortcuts='false'] .satus-folder--shortcut, html[it-it-blacklist='false'] .satus-folder--blacklist, -html[it-it-analyzer='false'] .satus-folder--analyzer -{ +html[it-it-analyzer='false'] .satus-folder--analyzer { display: none; } + /*-------------------------------------------------------------- # APPEARANCE --------------------------------------------------------------*/ -.satus-main__container[data-appearance='appearance'] .satus-folder -{ +.satus-main__container[data-appearance='appearance'] .satus-folder { position: absolute; - box-sizing: border-box; padding: 0; - transition-duration: .5s; transition-property: transform, box-shadow; transform: scale(1); text-align: center; - border: 1px solid var(--main-appearance-shadow, #dfdfdf); border-radius: 6px; box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0); - justify-content: center; align-items: center; } -.satus-main__container[data-appearance='appearance'] .satus-folder:hover -{ +.satus-main__container[data-appearance='appearance'] .satus-folder:hover { z-index: 9; - transition-duration: .25s; transform: scale(1.03) translate(-8px, -4px); - box-shadow: 1px 1px 0 0 var(--main-appearance-shadow, #dfdfdf), 2px 2px 0 0 var(--main-appearance-shadow, #dfdfdf), 3px 3px 0 0 var(--main-appearance-shadow, #dfdfdf), 4px 4px 0 0 var(--main-appearance-shadow, #dfdfdf), 5px 6px 4px 0 rgba(0, 0, 0, .1); } -.satus-main__container[data-appearance='appearance'] .satus-folder--header -{ +.satus-main__container[data-appearance='appearance'] .satus-folder--header { top: 16px; left: 16px; - width: calc(100% - 32px); height: 40px; min-height: auto; - - background-color: var(--satus-theme-dialog); color: var(--satus-theme-dialog-text); + background-color: var(--satus-theme-dialog); } -.satus-main__container[data-appearance='appearance'] .satus-folder--header:hover -{ +.satus-main__container[data-appearance='appearance'] .satus-folder--header:hover { transform: scale(1.03) translate(-9px, -4px); } -.satus-main__container[data-appearance='appearance'] .satus-folder--player -{ +.satus-main__container[data-appearance='appearance'] .satus-folder--player { top: 64px; left: 16px; - width: calc(70% - 32px); height: 96px; min-height: auto; - color: #eee; border-color: #333; background-color: #444; } -.satus-main__container[data-appearance='appearance'] .satus-folder--player .label -{ +.satus-main__container[data-appearance='appearance'] .satus-folder--player .label { color: #fff; } -.satus-main__container[data-appearance='appearance'] .satus-folder--player:hover -{ +.satus-main__container[data-appearance='appearance'] .satus-folder--player:hover { transform: scale(1.03) translate(-7px, -4px); - box-shadow: 1px 1px 0 0 #333, 2px 2px 0 0 #333, 3px 3px 0 0 #333, 4px 4px 0 0 #333, 5px 6px 4px 0 rgba(0, 0, 0, .1); } -.satus-main__container[data-appearance='appearance'] .satus-folder--details -{ +.satus-main__container[data-appearance='appearance'] .satus-folder--details { top: 168px; left: 16px; - width: calc(70% - 32px); height: 56px; min-height: auto; - - background-color: var(--satus-theme-dialog); color: var(--satus-theme-dialog-text); + background-color: var(--satus-theme-dialog); } -.satus-main__container[data-appearance='appearance'] .satus-folder--description -{ +.satus-main__container[data-appearance='appearance'] .satus-folder--description { top: 13.5rem; left: 1rem; - width: calc(70% - 2rem); height: 3.5rem; min-height: 3.5rem; - - background-color: var(--satus-theme-dialog); color: var(--satus-theme-dialog-text); + background-color: var(--satus-theme-dialog); } -.satus-main__container[data-appearance='appearance'] .satus-folder--comments -{ +.satus-main__container[data-appearance='appearance'] .satus-folder--comments { top: 232px; left: 16px; - width: calc(70% - 32px); height: 80px; min-height: auto; - - background-color: var(--satus-theme-dialog); color: var(--satus-theme-dialog-text); + background-color: var(--satus-theme-dialog); } -.satus-main__container[data-appearance='appearance'] .satus-folder--footer -{ +.satus-main__container[data-appearance='appearance'] .satus-folder--footer { top: 320px; left: 16px; - width: calc(70% - 32px); height: 64px; min-height: auto; - - background-color: var(--satus-theme-dialog); color: var(--satus-theme-dialog-text); + background-color: var(--satus-theme-dialog); } -.satus-main__container[data-appearance='appearance'] .satus-folder--sidebar -{ +.satus-main__container[data-appearance='appearance'] .satus-folder--sidebar { top: 64px; left: calc(70% - 8px); - width: calc(30% - 8px); height: 160px; - - background-color: var(--satus-theme-dialog); color: var(--satus-theme-dialog-text); + background-color: var(--satus-theme-dialog); } -/*----------------------------------------------------------------------------- -# THEMES CATEGORY ------------------------------------------------------------------------------*/ -.satus-main__container[data-appearance='themes'] .satus-switch:first-child -{ +/*-------------------------------------------------------------- +# THEMES +--------------------------------------------------------------*/ + +.satus-main__container[data-appearance='themes'] .satus-switch:first-child { margin-top: 16px; } -.satus-main__container[data-appearance='themes'] .satus-switch:last-child -{ +.satus-main__container[data-appearance='themes'] .satus-switch:last-child { margin-bottom: 16px; } -.satus-main__container[data-appearance='themes'] .satus-switch -{ +.satus-main__container[data-appearance='themes'] .satus-switch { width: calc(100% - 16px); max-width: 900px; height: 80px; margin: 8px auto; - border-radius: 8px; } -.satus-main__container[data-appearance='themes'] .satus-switch__label -{ +.satus-main__container[data-appearance='themes'] .satus-switch__label { font-size: 15px; font-weight: 500; - color: #eee; text-shadow: 0 1px 3px rgba(0, 0, 0, .7); } -.satus-switch--dark -{ +.satus-switch--dark { position: relative; - overflow: hidden; - background: linear-gradient(#0d1216, #353d46) !important; } -.satus-switch--dark::before -{ +.satus-switch--dark::before { position: absolute; top: 0; left: 0; - width: 100%; height: 100%; - content: ''; animation-name: satus-switch--dark; animation-duration: 4s; animation-timing-function: ease-in-out; animation-iteration-count: infinite; pointer-events: none; - background: radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%) !important; background-repeat: no-repeat !important; background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px !important; background-size: 50px 50px, 50px 50px, 100px 100px, 75px 75px !important; - filter: blur(8px); } -@keyframes satus-switch--dark -{ - 0% - { +@keyframes satus-switch--dark { + 0% { background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; } - - 50% - { + 50% { background-position: 20px 20px, 230px -20px, 0 -40px, 160px 10px; } - - 100% - { + 100% { background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; } } -.satus-switch--night -{ +.satus-switch--night { position: relative; - overflow: hidden; - animation-name: satus-switch--night; animation-duration: .75s; animation-iteration-count: infinite; - - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5) !important; + background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5) !important; background-repeat: no-repeat !important; background-position: 75% 80%, 35% 65%, 30% 10%, 50% 40%, 10% 80%, 90% 10%, 0 0 !important; background-size: 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, auto !important; } -@keyframes satus-switch--night -{ - 0% - { - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); +@keyframes satus-switch--night { + 0% { + background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); } - - 25% - { - background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); + 25% { + background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); } - - 50% - { - background-image: radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .9) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); + 50% { + background-image: radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .9) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); } - - 75% - { - background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); + 75% { + background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); } - - 100% - { - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), - radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), - linear-gradient(#3a48b4, #61a7f5); + 100% { + background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); } } -.satus-switch--dawn -{ +.satus-switch--dawn { position: relative; - overflow: hidden; - background: linear-gradient(#ed74a9, #ffba99) !important; } -.satus-switch--dawn::before -{ +.satus-switch--dawn::before { position: absolute; right: 1rem; bottom: -5rem; - width: 10rem; height: 10rem; - content: ''; animation-name: satus-switch--dawn; animation-duration: .75s; animation-iteration-count: infinite; pointer-events: none; - border-radius: 50%; background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; } -@keyframes satus-switch--dawn -{ - 0% - { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); +@keyframes satus-switch--dawn { + 0% { + background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); } - - 50% - { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, - rgba(255, 255, 231, .30) 20%, - rgba(255, 255, 231, .30) 35%, - rgba(255, 255, 231, .20) 35%, - rgba(255, 255, 231, .20) 55%, - rgba(255, 255, 231, .10) 55%, - rgba(255, 255, 231, .10) 75%, transparent 75%); + 50% { + background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .30) 20%, rgba(255, 255, 231, .30) 35%, rgba(255, 255, 231, .20) 35%, rgba(255, 255, 231, .20) 55%, rgba(255, 255, 231, .10) 55%, rgba(255, 255, 231, .10) 75%, transparent 75%); } - - 100% - { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); + 100% { + background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); } } -.satus-switch--sunset -{ +.satus-switch--sunset { position: relative; - overflow: hidden; - background: linear-gradient(#2f3364, #a96165) !important; } -.satus-switch--sunset::before -{ +.satus-switch--sunset::before { position: absolute; top: -1rem; left: 50%; - overflow: hidden; - width: 8rem; height: 8rem; - content: ''; transform: translate(-50%, 0%); pointer-events: none; - border-radius: 50%; background: linear-gradient(#fa7965, #f56264, transparent) !important; } -.satus-switch--desert -{ +.satus-switch--desert { position: relative; - overflow: hidden; - - background-image: radial-gradient(#ffe498 50%, transparent 50%), - linear-gradient(#9dc2ee, #f5fdff) !important; + background-image: radial-gradient(#ffe498 50%, transparent 50%), linear-gradient(#9dc2ee, #f5fdff) !important; background-repeat: no-repeat !important; background-position: -120px 36px, 0 !important; background-size: 240%, 100% !important; } -.satus-switch--desert::before -{ +.satus-switch--desert::before { position: absolute; top: -100%; left: 40%; - width: 10rem; height: 10rem; - content: ''; animation-name: satus-switch--desert; animation-duration: .75s; animation-delay: .5s; animation-iteration-count: infinite; pointer-events: none; - border-radius: 50%; background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; } -@keyframes satus-switch--desert -{ - 0% - { - background: radial-gradient(#fefefe 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); +@keyframes satus-switch--desert { + 0% { + background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); } - - 50% - { - background: radial-gradient(#fefefe 20%, - rgba(255, 255, 231, .30) 20%, - rgba(255, 255, 231, .30) 35%, - rgba(255, 255, 231, .20) 35%, - rgba(255, 255, 231, .20) 55%, - rgba(255, 255, 231, .10) 55%, - rgba(255, 255, 231, .1) 75%, transparent 75%); + 50% { + background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .30) 20%, rgba(255, 255, 231, .30) 35%, rgba(255, 255, 231, .20) 35%, rgba(255, 255, 231, .20) 55%, rgba(255, 255, 231, .10) 55%, rgba(255, 255, 231, .1) 75%, transparent 75%); } - - 100% - { - background: radial-gradient(#fefefe 20%, - rgba(255, 255, 231, .25) 20%, - rgba(255, 255, 231, .25) 35%, - rgba(255, 255, 231, .15) 35%, - rgba(255, 255, 231, .15) 55%, - rgba(255, 255, 231, .05) 55%, - rgba(255, 255, 231, .05) 75%, transparent 75%); + 100% { + background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); } } -.satus-switch--plain -{ +.satus-switch--plain { position: relative; - overflow: hidden; - - background-image: radial-gradient(#dea975 50%, transparent 50%), - radial-gradient(#e8b887 50%, transparent 50%), - radial-gradient(#f1cc9f 50%, transparent 50%), - radial-gradient(#f3ddb8 50%, transparent 50%), - linear-gradient(#abceb8, #e7ede1) !important; + background-image: radial-gradient(#dea975 50%, transparent 50%), radial-gradient(#e8b887 50%, transparent 50%), radial-gradient(#f1cc9f 50%, transparent 50%), radial-gradient(#f3ddb8 50%, transparent 50%), linear-gradient(#abceb8, #e7ede1) !important; background-repeat: no-repeat !important; background-position: -50px 50px, -370px 40px, 0 36px, -360px 26px, 0 !important; background-size: 240%, 240%, 240%, 240%, 100% !important; } -.satus-switch--plain::before -{ +.satus-switch--plain::before { position: absolute; top: -70%; left: 10%; - width: 7rem; height: 7rem; - content: ''; animation-name: satus-switch--plain; animation-duration: .75s; animation-delay: .2s; animation-iteration-count: infinite; pointer-events: none; - border-radius: 50%; background: radial-gradient(#fff 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; } -.satus-switch--black -{ +.satus-switch--black { background: #000 !important; } -/*----------------------------------------------------------------------------- -# BLACKLIST CATEGORY ------------------------------------------------------------------------------*/ -.satus-section.satus-section--blacklist -{ - position: relative; +/*-------------------------------------------------------------- +# BLACKLIST +--------------------------------------------------------------*/ +.satus-section.satus-section--blacklist { + position: relative; overflow: hidden; flex-direction: column; - width: calc(100% - 32px); height: 116px; margin: 8px 16px 0; - transition: opacity .25s; - opacity: 1; border-radius: 10px; background-color: #000; background-position: center; background-size: cover; - flex: unset; align-items: flex-start; } -.satus-section.satus-section--blacklist.removing -{ +.satus-section.satus-section--blacklist.removing { opacity: 0; } -.satus-section.satus-section--blacklist::before -{ +.satus-section.satus-section--blacklist::before { position: absolute; top: 0; left: 0; - width: 100%; height: 100%; margin: 0; - content: ''; - background: rgba(0, 0, 0, .5); } -.satus-section.satus-section--blacklist > .label -{ +.satus-section.satus-section--blacklist>.label { font-size: 16px; font-weight: 700; - position: absolute; z-index: 1; bottom: 28px; - text-transform: uppercase; - opacity: 1; color: #fff; } -.satus-section.satus-section--blacklist::after -{ +.satus-section.satus-section--blacklist::after { position: absolute; z-index: 1; bottom: 16px; left: 16px; - content: attr(data-label); - color: rgba(255, 255, 255, .5); } -.satus-section.satus-section--blacklist > .satus-section -{ +.satus-section.satus-section--blacklist>.satus-section { position: absolute; z-index: 999; bottom: 0; - visibility: hidden; - width: 100%; margin: 0; padding: 0; - transition: .15s; - opacity: 0; border: none; border-radius: 0; background: rgba(255, 255, 255, .95); - justify-content: center; } -.satus-section.satus-section--blacklist:hover > .satus-section -{ +.satus-section.satus-section--blacklist:hover>.satus-section { visibility: visible; - opacity: 1; } -/*----------------------------------------------------------------------------- -# ANALYZER CATEGORY ------------------------------------------------------------------------------*/ -.analyzer-top-text -{ - font-size: 13px; - display: flex; +/*-------------------------------------------------------------- +# ANALYZER +--------------------------------------------------------------*/ +.analyzer-top-text { + font-size: 13px; + display: flex; box-sizing: border-box; margin: 16px 0 0; padding: 0 16px; - background: transparent !important; - justify-content: space-between; } -.analyzer-watch-time -{ +.analyzer-watch-time { text-transform: uppercase; } -.analyzer-today-at -{ +.analyzer-today-at { box-sizing: border-box; } -.analyzer-container -{ +.analyzer-container { box-sizing: border-box; margin: 8px 0 16px; padding: 16px; - - background: var(--background-0) !important; /* var --background-0 is not specified anywhere */ + background: var(--background-0) !important; + /* var --background-0 is not specified anywhere */ box-shadow: 0 0 2px rgba(0, 0, 0, .2); } -.analyzer-all-time -{ +.analyzer-all-time { font-size: 24px; font-weight: 400; - margin-bottom: 8px; - color: #4c4c4c; } -.analyzer-chart -{ +.analyzer-chart { position: relative; - display: flex; overflow: hidden; - box-sizing: border-box; height: 140px; margin: 8px 0; - border-bottom: 1px solid #ccc; - justify-content: space-between; } -.analyzer-chart::before -{ +.analyzer-chart::before { position: absolute; top: -78%; left: -15%; - width: 125%; height: 250%; - content: ''; transform: rotate(-45deg); - background: linear-gradient(transparent 50%, rgba(0, 0, 0, .05) 50%); background-size: 4px 4px; } -.analyzer-column -{ +.analyzer-column { z-index: 1; - display: flex; - border-right: 1px solid #ccc; - flex: 1; } -.analyzer-column:first-child -{ +.analyzer-column:first-child { border-left: 1px solid #ccc; } -.analyzer-data-column -{ +.analyzer-data-column { display: flex; flex-direction: column; - justify-content: flex-end; flex: 1; } -.analyzer-data -{ +.analyzer-data { height: 20px; margin: 0 1px; - background-color: #c5c5c5; } -.analyzer-data.first -{ +.analyzer-data.first { background-color: #1c00db; - order: 3; } -.analyzer-data.second -{ +.analyzer-data.second { background-color: #4dd0e1; - order: 2; } -.analyzer-data.third -{ +.analyzer-data.third { background-color: #ff9800; - order: 1; } -/*.analyzer-data:first-child -{ - border-top-left-radius: 4px; - border-top-right-radius: 4px; -}*/ -.analyzer-bottom -{ +.analyzer-bottom { display: flex; - margin: 14px 0 0; - justify-content: space-between; } -.analyzer-bottom > div .label -{ +.analyzer-bottom>div .label { margin: 0 0 2px; } -.analyzer-bottom > div:first-child .label -{ +.analyzer-bottom>div:first-child .label { color: #1c00db; } -.analyzer-bottom > div:nth-child(2) .label -{ +.analyzer-bottom>div:nth-child(2) .label { color: #4dd0e1; } -.analyzer-bottom > div:nth-child(3) .label -{ +.analyzer-bottom>div:nth-child(3) .label { color: #ff9800; } -/*----------------------------------------------------------------------------- -# MIXER CATEGORY ------------------------------------------------------------------------------*/ -.satus-main__container[data-appearance='mixer'] .satus-section--mixer -{ - position: relative; +/*-------------------------------------------------------------- +# MIXER +--------------------------------------------------------------*/ +.satus-main__container[data-appearance='mixer'] .satus-section--mixer { + position: relative; overflow: hidden; flex-direction: column; - width: calc(100% - 32px); height: 128px; margin: 8px 16px 0; - border: unset; border-radius: 10px; - flex: unset; align-items: flex-start; } -.satus-main__container[data-appearance='mixer'] .satus-section--mixer::before -{ +.satus-main__container[data-appearance='mixer'] .satus-section--mixer::before { position: absolute; top: 0; left: 0; - width: 100%; height: 100%; - content: ''; - background: rgba(0, 0, 0, .5); } -.satus-main__container[data-appearance='mixer'] .satus-section--mixer > .satus-section -{ +.satus-main__container[data-appearance='mixer'] .satus-section--mixer>.satus-section { position: absolute; bottom: 0; - visibility: hidden; - width: 100%; margin: 0; padding: 0; - transition: 200ms; transform: translateY(32px); - opacity: 0; border: unset; border-radius: unset; } -.satus-main__container[data-appearance='mixer'] .satus-section--mixer:hover > .satus-section -{ +.satus-main__container[data-appearance='mixer'] .satus-section--mixer:hover>.satus-section { visibility: visible; - transform: translateY(0); - opacity: 1; } -.satus-main__container[data-appearance='mixer'] .satus-section--mixer.noconnection > .satus-section > div -{ +.satus-main__container[data-appearance='mixer'] .satus-section--mixer.noconnection>.satus-section>div { visibility: hidden; - pointer-events: none; } -.satus-main__container[data-appearance='mixer'] .satus-section--mixer.noconnection > .satus-section::after -{ +.satus-main__container[data-appearance='mixer'] .satus-section--mixer.noconnection>.satus-section::after { font-size: 18px; font-weight: 500; - position: absolute; top: 50%; - width: 100%; - content: attr(data-no-connection-label); transform: translateY(-50%); text-align: center; - opacity: .8; } -.satus-main__container[data-appearance='about'] .satus-text -{ - display: flex; +.satus-main__container[data-appearance='about'] .satus-text { + display: flex; box-sizing: border-box; width: 100%; min-height: 48px; padding: 0 16px; - justify-content: space-between; align-items: center; } -.satus-main__container[data-appearance='about'] .satus-text__value -{ +.satus-main__container[data-appearance='about'] .satus-text__value { text-align: right; - opacity: .7; } -/*--------------------------------------------------------------- -# AD ----------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# FIREFOX BUTTON +--------------------------------------------------------------*/ + +.satus-firefox { + height: auto; + margin: 20px 16px; + background: transparent; + justify-content: center; +} + +.satus-firefox::before { + content: none; +} + + +/*-------------------------------------------------------------- +# INFO +--------------------------------------------------------------*/ .satus-section--info { @@ -1893,21 +1103,6 @@ html[it-it-analyzer='false'] .satus-folder--analyzer opacity: 1 } - - - -.satus-main .satus-button.satus-button--ad -{ - position: relative; - margin: 8px 8px; - z-index: 99; - - overflow: hidden; - - align-items: center; - justify-content: space-between; -} - html[it-improvedtube-home='list'] .satus-section--info { position: static !important; @@ -1917,22 +1112,202 @@ html[it-improvedtube-home='list'] .satus-section--info } -/*--------------------------------------------------------------- +/*-------------------------------------------------------------- +# DIALOG +--------------------------------------------------------------*/ + +.satus-dialog--confirm .satus-section { + display: flex; + background-color: transparent; +} + +.satus-dialog--confirm .satus-text { + display: block; + box-sizing: border-box; + padding: 0 16px 8px; +} + +.satus-dialog--confirm .satus-button { + font-weight: 500; + overflow: hidden; + height: 28px; + min-height: 28px; + margin-right: 2px; + padding: 4px 8px; + text-transform: uppercase; + color: #f96754; + border-radius: 4px; +} + + +/*-------------------------------------------------------------- # OPTIONS ----------------------------------------------------------------*/ +--------------------------------------------------------------*/ -@media (min-width: 301px) -{ - html - { +@media (min-width: 321px) { + html { display: flex; justify-content: center; } - - body - { - height: 100vh; + body { width: 100%; max-width: 768px; + height: 100vh; } +} + + +/*-------------------------------------------------------------- +# THEMES +--------------------------------------------------------------*/ + +body { + --satus-theme-primary: #ff4158; +} + + +/*-------------------------------------------------------------- +# DARK +--------------------------------------------------------------*/ + +html[theme='dark'] body { + --satus-theme-primary: #ff4158; + --satus-theme-dialog: #2c2b2c; + --satus-theme-dialog-text: #b5b5b5; + --satus-theme-header: #343334; + --satus-theme-header-text: #b5b5b5; + --satus-theme-main: #2c2b2c; + --satus-theme-main-text: #b5b5b5; + --satus-theme-section: #343334; + --satus-theme-button: transparent; + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + --satus-theme-tooltip: rgba(10, 10, 10, .7); + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + + +/*-------------------------------------------------------------- +# NIGHT +--------------------------------------------------------------*/ + +html[theme='night'] body { + --satus-theme-primary: #ff4158; + --satus-theme-dialog: #61a7f5; + --satus-theme-dialog-text: #fafafa; + --satus-theme-header: #61a7f5; + --satus-theme-header-text: #fafafa; + --satus-theme-main: #3a48b4; + --satus-theme-main-text: #fafafa; + --satus-theme-section: #61a7f5; + --satus-theme-button: transparent; + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + --satus-theme-tooltip: rgba(10, 10, 10, .7); + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + + +/*-------------------------------------------------------------- +# DAWN +--------------------------------------------------------------*/ + +html[theme='dawn'] body { + --satus-theme-primary: #ff4158; + --satus-theme-dialog: #ffba99; + --satus-theme-dialog-text: #fafafa; + --satus-theme-header: #ffba99; + --satus-theme-header-text: #fafafa; + --satus-theme-main: #ed74a9; + --satus-theme-main-text: #eee; + --satus-theme-section: #ffba99; + --satus-theme-button: transparent; + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + --satus-theme-tooltip: rgba(10, 10, 10, .7); + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + + +/*-------------------------------------------------------------- +#SUNSET +--------------------------------------------------------------*/ + +html[theme='sunset'] body { + --satus-theme-primary: #ff4158; + --satus-theme-dialog: #a96165; + --satus-theme-dialog-text: #fafafa; + --satus-theme-header: #a96165; + --satus-theme-header-text: #fafafa; + --satus-theme-main: #2f3364; + --satus-theme-main-text: #eee; + --satus-theme-section: #a96165; + --satus-theme-button: transparent; + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + --satus-theme-tooltip: rgba(10, 10, 10, .7); + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + + +/*-------------------------------------------------------------- +# DESERT +--------------------------------------------------------------*/ + +html[theme='desert'] body { + --satus-theme-primary: #ff4158; + --satus-theme-dialog: #9dc2ee; + --satus-theme-dialog-text: #fafafa; + --satus-theme-header: #9dc2ee; + --satus-theme-header-text: #fafafa; + --satus-theme-main: #ffe498; + --satus-theme-main-text: #eee; + --satus-theme-section: #9dc2ee; + --satus-theme-button: transparent; + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + --satus-theme-tooltip: rgba(10, 10, 10, .7); + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + + +/*-------------------------------------------------------------- +# PLAIN +--------------------------------------------------------------*/ + +html[theme='plain'] body { + --satus-theme-primary: #ff4158; + --satus-theme-dialog: #abceb8; + --satus-theme-dialog-text: #fafafa; + --satus-theme-header: #abceb8; + --satus-theme-header-text: #fafafa; + --satus-theme-main: #dea975; + --satus-theme-main-text: #eee; + --satus-theme-section: #abceb8; + --satus-theme-button: transparent; + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + --satus-theme-tooltip: rgba(10, 10, 10, .7); + --satus-theme-ripple: rgba(255, 255, 255, .04); +} + + +/*-------------------------------------------------------------- +# BLACK +--------------------------------------------------------------*/ + +html[theme='black'] body { + --satus-theme-primary: #ff4158; + --satus-theme-dialog: #222; + --satus-theme-dialog-text: #fafafa; + --satus-theme-header: #222; + --satus-theme-header-text: #fafafa; + --satus-theme-main: #111; + --satus-theme-main-text: #eee; + --satus-theme-section: #222; + --satus-theme-button: transparent; + --satus-theme-scrollbar: rgba(255, 255, 255, .2); + --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); + --satus-theme-tooltip: rgba(10, 10, 10, .7); + --satus-theme-ripple: rgba(255, 255, 255, .04); } \ No newline at end of file diff --git a/popup.js b/popup.js index 7349ac6b0..f7898ed04 100644 --- a/popup.js +++ b/popup.js @@ -1,26 +1,29 @@ -/*------------------------------------------------------------------------------ +/*-------------------------------------------------------------- >>> TABLE OF CONTENTS: --------------------------------------------------------------------------------- -1.0 Header - 1.1 Mixer - 1.2 Settings - 1.3 Active features -2.0 Main - 2.1 General - 2.2 Appearance - 2.3 Themes - 2.4 Player - 2.5 Playlist - 2.6 Channel - 2.7 Shortcuts - 2.8 Blacklist - 2.9 Analyzer -3.0 Initialization -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -1.0 HEADER -------------------------------------------------------------------------------*/ +---------------------------------------------------------------- +# Header + # Mixer + # Settings + # Active features +# Main + # General + # Appearance + # Themes + # Player + # Playlist + # Channel + # Shortcuts + # Blacklist + # Analyzer + # Firefox button +# Export data +# Import data +# Initialization +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# HEADER +--------------------------------------------------------------*/ var Menu = { header: { @@ -120,9 +123,9 @@ var Menu = { }; -/*------------------------------------------------------------------------------ -1.1 ACTIVE FEATURES -------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# ACTIVE FEATURES +--------------------------------------------------------------*/ Menu.header.section_end.button_vert.onClickRender.active_features = { type: 'folder', @@ -186,9 +189,9 @@ Menu.header.section_end.button_vert.onClickRender.active_features = { }; -/*------------------------------------------------------------------------------ -1.2 SETTINGS -------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# SETTINGS +--------------------------------------------------------------*/ Menu.header.section_end.button_vert.onClickRender.settings = { type: 'folder', @@ -1035,9 +1038,9 @@ Menu.header.section_end.button_vert.onClickRender.settings = { }; -/*------------------------------------------------------------------------------ -1.3 MIXER -------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# MIXER +--------------------------------------------------------------*/ Menu.header.section_end.button_vert.onClickRender.mixer = { type: 'folder', @@ -1155,9 +1158,9 @@ Menu.header.section_end.button_vert.onClickRender.mixer = { }; -/*------------------------------------------------------------------------------ -2.0 MAIN -------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# MAIN +--------------------------------------------------------------*/ Menu.main = { type: 'main', @@ -1210,9 +1213,9 @@ Menu.main = { }; -/*------------------------------------------------------------------------------ -2.1 GENERAL -------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# GENERAL +--------------------------------------------------------------*/ Menu.main.section.general = { type: 'folder', @@ -1320,9 +1323,9 @@ Menu.main.section.general = { }; -/*------------------------------------------------------------------------------ -2.2 APPEARANCE -------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# APPEARANCE +--------------------------------------------------------------*/ Menu.main.section.appearance = { type: 'folder', @@ -1697,9 +1700,9 @@ Menu.main.section.appearance = { }; -/*------------------------------------------------------------------------------ -2.3 THEMES -------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# THEMES +--------------------------------------------------------------*/ Menu.main.section.themes = { type: 'folder', @@ -2047,9 +2050,9 @@ Menu.main.section.themes = { }; -/*------------------------------------------------------------------------------ -2.4 PLAYER -------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# PLAYER +--------------------------------------------------------------*/ Menu.main.section.player = { type: 'folder', @@ -2631,9 +2634,9 @@ Menu.main.section.player = { }; -/*------------------------------------------------------------------------------ -2.5 PLAYLIST -------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# PLAYLIST +--------------------------------------------------------------*/ Menu.main.section.playlist = { type: 'folder', @@ -2676,9 +2679,9 @@ Menu.main.section.playlist = { }; -/*------------------------------------------------------------------------------ -2.6 CHANNEL -------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# CHANNEL +--------------------------------------------------------------*/ Menu.main.section.channel = { type: 'folder', @@ -2717,9 +2720,9 @@ Menu.main.section.channel = { }; -/*------------------------------------------------------------------------------ -2.7 SHORTCUTS -------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# SHORTCUTS +--------------------------------------------------------------*/ Menu.main.section.shortcuts = { type: 'folder', @@ -2964,9 +2967,9 @@ Menu.main.section.shortcuts = { }; -/*------------------------------------------------------------------------------ -2.8 BLACKLIST -------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# BLACKLIST +--------------------------------------------------------------*/ Menu.main.section.blacklist = { type: 'folder', @@ -3131,9 +3134,9 @@ Menu.main.section.blacklist = { }; -/*------------------------------------------------------------------------------ -2.9 ANALYZER -------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# ANALYZER +--------------------------------------------------------------*/ Menu.main.section.analyzer = { type: 'folder', @@ -3283,6 +3286,11 @@ Menu.main.section.analyzer = { } }; + +/*-------------------------------------------------------------- +# FIREFOX BUTTON +--------------------------------------------------------------*/ + Menu.main.section.firefox = { type: 'button', class: 'satus-firefox', @@ -3293,9 +3301,147 @@ Menu.main.section.firefox = { }; -/*------------------------------------------------------------------------------ -3.0 INITIALIZATION -------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# EXPORT DATA +--------------------------------------------------------------*/ + +function exportData() { + var data = {}; + + for (var key in satus.storage) { + if ( + typeof satus.storage[key] !== 'function' && + key !== 'blacklist' && + key !== 'watched' + ) { + data[key] = satus.storage[key]; + } + } + + var blob = new Blob([JSON.stringify(data)], { + type: 'application/json;charset=utf-8' + }); + + satus.render({ + type: 'dialog', + + export: { + type: 'button', + label: 'export', + onclick: function() { + chrome.permissions.request({ + permissions: ['downloads'] + }, function(granted) { + if (granted) { + chrome.downloads.download({ + url: URL.createObjectURL(blob), + filename: 'improvedtube.json', + saveAs: true + }, function() { + setTimeout(function() { + if (location.href.indexOf('action=export') !== -1) { + window.close(); + } else { + document.querySelector('.satus-dialog__scrim').click(); + + satus.render({ + type: 'dialog', + + message: { + type: 'text', + label: 'dataExportedSuccessfully' + }, + section: { + type: 'section', + class: 'controls', + + ok: { + type: 'button', + label: 'ok', + onclick: function() { + document.querySelector('.satus-dialog__scrim').click(); + } + } + } + }); + } + }, 100); + }); + } + }); + } + } + }); +} + + +/*-------------------------------------------------------------- +# IMPORT DATA +--------------------------------------------------------------*/ + +function importData() { + satus.render({ + type: 'dialog', + + select_file: { + type: 'button', + label: 'selectFile', + onclick: function() { + var input = document.createElement('input'); + + input.type = 'file'; + + input.addEventListener('change', function() { + var file_reader = new FileReader(); + + file_reader.onload = function() { + var data = JSON.parse(this.result); + + for (var key in data) { + satus.storage.set(key, data[key]); + } + + if (location.href.indexOf('action=import') !== -1) { + window.close(); + } else { + document.querySelector('.satus-dialog__scrim').click(); + + satus.render({ + type: 'dialog', + + message: { + type: 'text', + label: 'dataImportedSuccessfully' + }, + section: { + type: 'section', + class: 'controls', + + ok: { + type: 'button', + label: 'ok', + onclick: function() { + document.querySelector('.satus-dialog__scrim').click(); + } + } + } + }); + } + }; + + file_reader.readAsText(this.files[0]); + }); + + input.click(); + } + } + }); +} + + +/*-------------------------------------------------------------- +# INITIALIZATION +--------------------------------------------------------------*/ function themeChange(event) { if (event.target.checked) { @@ -3381,136 +3527,4 @@ chrome.storage.onChanged.addListener(function(changes) { for (var key in changes) { document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), changes[key].newValue); } -}); - - - - - -function importData() { - satus.render({ - type: 'dialog', - - select_file: { - type: 'button', - label: 'selectFile', - onclick: function() { - var input = document.createElement('input'); - - input.type = 'file'; - - input.addEventListener('change', function() { - var file_reader = new FileReader(); - - file_reader.onload = function() { - var data = JSON.parse(this.result); - - for (var key in data) { - satus.storage.set(key, data[key]); - } - - if (location.href.indexOf('action=import') !== -1) { - window.close(); - } else { - document.querySelector('.satus-dialog__scrim').click(); - - satus.render({ - type: 'dialog', - - message: { - type: 'text', - label: 'dataImportedSuccessfully' - }, - section: { - type: 'section', - class: 'controls', - - ok: { - type: 'button', - label: 'ok', - onclick: function() { - document.querySelector('.satus-dialog__scrim').click(); - } - } - } - }); - } - }; - - file_reader.readAsText(this.files[0]); - }); - - input.click(); - } - } - }); -} - -function exportData() { - var data = {}; - - for (var key in satus.storage) { - if ( - typeof satus.storage[key] !== 'function' && - key !== 'blacklist' && - key !== 'watched' - ) { - data[key] = satus.storage[key]; - } - } - - var blob = new Blob([JSON.stringify(data)], { - type: 'application/json;charset=utf-8' - }); - - satus.render({ - type: 'dialog', - - export: { - type: 'button', - label: 'export', - onclick: function() { - chrome.permissions.request({ - permissions: ['downloads'] - }, function(granted) { - if (granted) { - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: 'improvedtube.json', - saveAs: true - }, function() { - setTimeout(function() { - if (location.href.indexOf('action=export') !== -1) { - window.close(); - } else { - document.querySelector('.satus-dialog__scrim').click(); - - satus.render({ - type: 'dialog', - - message: { - type: 'text', - label: 'dataExportedSuccessfully' - }, - section: { - type: 'section', - class: 'controls', - - ok: { - type: 'button', - label: 'ok', - onclick: function() { - document.querySelector('.satus-dialog__scrim').click(); - } - } - } - }); - } - }, 100); - }); - } - }); - } - } - }); -} +}); \ No newline at end of file diff --git a/satus.css b/satus.css index 2299b64be..c5a9d8dcf 100644 --- a/satus.css +++ b/satus.css @@ -1,1397 +1,1091 @@ +/*-------------------------------------------------------------- +>>> SATUS +---------------------------------------------------------------- +# Body +# Components + # Button + # Color picker + # Dialog + # Folder + # Header + # List + # Main + # Section + # Select + # Slider + # Switch + # Table + # Text + # Text field +--------------------------------------------------------------*/ /*-------------------------------------------------------------- ->>> BUTTON +# BODY --------------------------------------------------------------*/ -.satus-button -{ - font-size: inherit; +body { + --satus-theme-primary: #f6b465; + --satus-theme-dialog: #f7f7f6; + --satus-theme-dialog-text: #777; + --satus-theme-header: #fff; + --satus-theme-header-text: #777; + --satus-theme-main: #f7f7f6; + --satus-theme-main-text: #777; + --satus-theme-section: #fff; + --satus-theme-button: transparent; + --satus-theme-scrollbar: rgba(0, 0, 0, .2); + --satus-theme-scrollbar-focus: rgba(0, 0, 0, .4); + --satus-theme-tooltip: rgba(0, 0, 0, .4); + --satus-theme-ripple: rgba(0, 0, 0, .04); +} - position: relative; - display: flex; +/*-------------------------------------------------------------- +# COMPONENTS +--------------------------------------------------------------*/ - margin: 0; +/*-------------------------------------------------------------- +# BUTTON +--------------------------------------------------------------*/ +.satus-button { + font-size: inherit; + position: relative; + display: flex; + margin: 0; cursor: pointer; - color: inherit; border: none; outline: none; background-color: var(--satus-theme-button); - -webkit-tap-highlight-color: transparent; align-items: center; -webkit-appearance: none; } -.satus-button::before -{ +.satus-button::before { position: absolute; top: 0; left: 0; - width: 100%; height: 100%; - content: ''; - opacity: 0; background-color: var(--satus-theme-ripple); } .satus-button:focus::before, -.satus-button:hover::before -{ +.satus-button:hover::before { opacity: 1; } -.satus-button__icon -{ +.satus-button__icon { width: 24px; height: 24px; } -.satus-button svg -{ +.satus-button svg { width: 100%; - color: inherit; - fill: var(--satus-theme-primary); } -.satus-button__icon + .satus-button__label -{ +.satus-button__icon+.satus-button__label { margin-left: 8px; } + /*-------------------------------------------------------------- ->>> COLOR PICKER +# COLOR PICKER --------------------------------------------------------------*/ -.satus-color-picker -{ +.satus-color-picker { font-size: inherit; - position: relative; - display: flex; - box-sizing: border-box; margin: 0; - cursor: pointer; - color: inherit; border: none; outline: none; background-color: var(--satus-theme-button); - justify-content: space-between; -webkit-tap-highlight-color: transparent; align-items: center; -webkit-appearance: none; } -.satus-color-picker__value -{ +.satus-color-picker__value { width: 24px; height: 24px; - border-radius: 50%; } -.satus-dialog--color-picker .satus-scrollbar__content -{ +.satus-dialog--color-picker .satus-scrollbar__content { display: flex; flex-direction: column; - align-items: center; } -.satus-dialog--color-picker .satus-button -{ +.satus-dialog--color-picker .satus-button { box-sizing: unset; width: 24px; height: 24px; margin: 0 0 8px; padding: 8px; - border-radius: 50%; } -.satus-dialog--color-picker .satus-button:hover -{ +.satus-dialog--color-picker .satus-button:hover { background-color: var(--satus-theme-ripple); } -.satus-dialog--color-picker .satus-button::before -{ +.satus-dialog--color-picker .satus-button::before { content: unset; } -.satus-dialog--color-picker .satus-button svg -{ +.satus-dialog--color-picker .satus-button svg { fill: transparent; stroke: var(--satus-theme-primary); } -.satus-dialog--color-picker canvas -{ +.satus-dialog--color-picker canvas { width: 200px; height: 200px; margin: 0 0 16px; } + /*-------------------------------------------------------------- ->>> DIALOG +# DIALOG --------------------------------------------------------------*/ -.satus-dialog -{ +.satus-dialog { position: absolute; z-index: 100; top: 0; left: 0; - display: flex; - width: 100%; height: 100vh; - justify-content: center; align-items: center; } -.satus-dialog__scrim -{ +.satus-dialog__scrim { position: absolute; top: 0; left: 0; - width: 100%; height: 100%; - animation: fadeIn 150ms linear forwards; - opacity: 0; - background: rgba(25,25,25,.2); - + background: rgba(25, 25, 25, .2); fill: var(--satus-theme-dialog-text); backdrop-filter: blur(8px); } -.satus-dialog__surface -{ +.satus-dialog__surface { font-size: 14px; - display: flex; flex-direction: column; - width: 95%; min-width: 240px; max-width: 560px; max-height: 80%; padding: 8px 0; - transform: scale(.8); animation: zoomIn 150ms linear forwards; animation-delay: 20ms; - opacity: 0; color: var(--satus-theme-dialog-text); border-radius: 6px; background-color: var(--satus-theme-dialog); - box-shadow: inset 0 -1px 1px 1px rgba(0,0,0,.1), 0 2px 6px rgba(0, 0, 0, .15); + box-shadow: inset 0 -1px 1px 1px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .15); } -.satus-dialog--closing .satus-dialog__scrim -{ +.satus-dialog--closing .satus-dialog__scrim { animation: fadeOut 70ms linear forwards; } -.satus-dialog--closing .satus-dialog__surface -{ +.satus-dialog--closing .satus-dialog__surface { animation: zoomOut 70ms linear forwards; } -@keyframes fadeIn -{ - from - { +@keyframes fadeIn { + from { opacity: 0; } - to - { + to { opacity: 1; } } -@keyframes fadeOut -{ - from - { +@keyframes fadeOut { + from { opacity: 1; } - to - { + to { opacity: 0; } } -@keyframes zoomIn -{ - from - { +@keyframes zoomIn { + from { transform: scale(.8); - opacity: 0; } - to - { + to { transform: scale(1); - opacity: 1; } } -@keyframes zoomOut -{ - from - { +@keyframes zoomOut { + from { transform: scale(1); - opacity: 1; } - to - { + to { transform: scale(.8); - opacity: 0; } } + /*-------------------------------------------------------------- ->>> FOLDER +# FOLDER --------------------------------------------------------------*/ -.satus-folder -{ - text-align: left +.satus-folder { + text-align: left; } + /*-------------------------------------------------------------- ->>> HEADER +# HEADER --------------------------------------------------------------*/ -.satus-header -{ +.satus-header { position: relative; z-index: 1; - display: flex; - box-sizing: border-box; width: 100%; min-height: 58px; padding: 0 8px; - color: var(--satus-theme-header-text); background-color: var(--satus-theme-header); - box-shadow: 0 0 3px rgba(0,0,0,.1); - + box-shadow: 0 0 3px rgba(0, 0, 0, .1); fill: var(--satus-theme-header-text); } -.satus-header .satus-text--title -{ +.satus-header .satus-text--title { font-size: 15px; font-weight: 400; } + /*-------------------------------------------------------------- ->>> LIST +# LIST --------------------------------------------------------------*/ .satus-list--compact, -.satus-list--compact li -{ +.satus-list--compact li { margin: 0; padding: 0; - list-style: none; } -/*----------------------------------------------------------------------------- ->>> MAIN -------------------------------------------------------------------------------- -1.0 General -2.0 Animations - 2.1 Opening - 2.2 Closing ------------------------------------------------------------------------------*/ -/*----------------------------------------------------------------------------- -1.0 General ------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# MAIN +---------------------------------------------------------------- +# General +# Animations + # Opening + # Closing +--------------------------------------------------------------*/ -.satus-main -{ - position: relative; +/*-------------------------------------------------------------- +# General +--------------------------------------------------------------*/ +.satus-main { + position: relative; overflow: hidden; - width: 100%; height: 100%; - color: var(--satus-theme-main-text); background-color: var(--satus-theme-main); - fill: var(--satus-theme-main-text); } -.satus-main__container -{ +.satus-main__container { position: absolute; top: 0; left: 0; - overflow: auto; - box-sizing: border-box; width: 100%; height: 100%; - transition: 250ms; - background-color: var(--satus-theme-main); - will-change: transform; } -/*----------------------------------------------------------------------------- -2.0 Animations ------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# Animations +--------------------------------------------------------------*/ -.satus-main__container--fade-in-left -{ +.satus-main__container--fade-in-left { animation: fadeInLeft 250ms; } -.satus-main__container--fade-in-right -{ +.satus-main__container--fade-in-right { animation: fadeInRight 250ms; } -.satus-main__container--fade-out-left -{ +.satus-main__container--fade-out-left { animation: fadeOutLeft 250ms; } -.satus-main__container--fade-out-right -{ +.satus-main__container--fade-out-right { animation: fadeOutRight 250ms; } -@keyframes fadeInLeft -{ - from - { +@keyframes fadeInLeft { + from { transform: translateX(-10%); - opacity: 0; } - to - { + to { transform: translateX(0%); - opacity: 1; } } -@keyframes fadeInRight -{ - from - { +@keyframes fadeInRight { + from { transform: translateX(10%); - opacity: 0; } - to - { + to { transform: translateX(0%); - opacity: 1; } } -@keyframes fadeOutLeft -{ - from - { +@keyframes fadeOutLeft { + from { transform: translateX(0%); - opacity: 1; } - to - { + to { transform: translateX(-10%); - opacity: 0; } } -@keyframes fadeOutRight -{ - from - { +@keyframes fadeOutRight { + from { transform: translateX(0%); - opacity: 1; } - to - { + to { transform: translateX(10%); - opacity: 0; } } -.satus-scrollbar -{ +.satus-scrollbar { position: relative; - overflow: hidden; - width: 100%; height: 100%; } -.satus-scrollbar__wrapper -{ +.satus-scrollbar__wrapper { overflow-y: scroll; - width: 150%; height: 100%; } -.satus-scrollbar__thumb -{ +.satus-scrollbar__thumb { position: absolute; z-index: 999; top: 0; right: 0; - min-height: 32px; padding: 0 2px; - transition: background-color 200ms, opacity 300ms; - opacity: 0; } -.satus-scrollbar__thumb::after -{ +.satus-scrollbar__thumb::after { display: block; - width: 3px; height: 100%; - content: ''; - background-color: var(--satus-theme-scrollbar); } -.satus-scrollbar__thumb:hover::after -{ +.satus-scrollbar__thumb:hover::after { background-color: var(--satus-theme-scrollbar-focus); } .satus-scrollbar.active .satus-scrollbar__thumb, -.satus-scrollbar__thumb:hover -{ +.satus-scrollbar__thumb:hover { transition: background-color 200ms, opacity 100ms; - opacity: 1; } + /*-------------------------------------------------------------- ->>> SECTION +# SECTION --------------------------------------------------------------*/ -.satus-section -{ +.satus-section { display: inline-flex; - box-sizing: border-box; - background-color: var(--satus-theme-section); - align-items: center; flex: 1; } + /*-------------------------------------------------------------- ->>> SELECT +# SELECT --------------------------------------------------------------*/ -.satus-select -{ +.satus-select { justify-content: space-between; } -.satus-select__value -{ +.satus-select__value { font-size: 12px; - text-align: right; - opacity: .7; } - -.satus-dialog--select-component .satus-dialog__surface -{ +.satus-dialog--select-component .satus-dialog__surface { position: absolute; - max-width: unset; - transform: unset; animation: unset; - opacity: 1; } -.satus-dialog--select-component .satus-section -{ +.satus-dialog--select-component .satus-section { top: 48px; - flex-direction: column; - transform: translateY(-16px); animation: listIn 50ms linear forwards; animation-delay: 20ms; - opacity: .5; } -.satus-dialog--select-component .satus-button -{ +.satus-dialog--select-component .satus-button { width: 100%; height: 48px; padding: 0 16px; } -@keyframes listIn -{ - from - { +@keyframes listIn { + from { transform: translateY(-16px); - opacity: .5; } - to - { + to { transform: translateY(0); - opacity: 1; } } -.satus-shortcut -{ +.satus-shortcut { position: relative; - display: flex; - box-sizing: border-box; width: 100%; height: 48px; min-height: 48px; padding: 0 16px; - cursor: pointer; - justify-content: space-between; align-items: center; } -.satus-shortcut:hover -{ +.satus-shortcut:hover { background-color: var(--satus-theme-ripple); } -.satus-shortcut > .label -{ +.satus-shortcut>.label { margin: 0 0 4px 0; } -.satus-shortcut > .value -{ +.satus-shortcut>.value { font-size: 13px; - opacity: .5; } -.satus-shortcut-dialog-label -{ +.satus-shortcut-dialog-label { font-size: 16px; font-weight: 500; - box-sizing: border-box; width: 100%; margin: 4px 0 10px; padding: 0 16px; } -.satus-shortcut__canvas -{ +.satus-shortcut__canvas { display: flex; - box-sizing: border-box; width: 100%; height: 68px; padding: 16px; - background: #dedede; - align-items: center; } -.satus-shortcut__key -{ +.satus-shortcut__key { display: flex; - box-sizing: border-box; min-width: 32px; height: 32px; padding: 4px 8px; - border-radius: 4px; background: #fff; - box-shadow: 0 1px 3px rgba(0,0,0,.15), inset 0 -3px 0 rgba(0,0,0,.1); - + box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); align-items: center; justify-content: center; } -.satus-shortcut__plus -{ +.satus-shortcut__plus { position: relative; - width: 12px; height: 12px; margin: 8px; } -.satus-shortcut__plus::before -{ +.satus-shortcut__plus::before { position: absolute; top: 0; left: 5px; - width: 2px; height: 12px; - content: ''; - background-color: #aaa; } -.satus-shortcut__plus::after -{ +.satus-shortcut__plus::after { position: absolute; top: 5px; left: 0; - width: 12px; height: 2px; - content: ''; - background-color: #aaa; } -.satus-shortcut__mouse -{ +.satus-shortcut__mouse { position: relative; - display: flex; - width: 28px; height: 36px; - border-radius: 50%; border-top-left-radius: 12px; border-top-right-radius: 12px; background: #fff; - box-shadow: 0 1px 3px rgba(0,0,0,.15), inset 0 -3px 0 rgba(0,0,0,.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); } -.satus-shortcut__mouse > div -{ +.satus-shortcut__mouse>div { position: absolute; top: 0; left: 13px; - width: 2px; height: 11px; - border-radius: 2px; background: #ccc; } -.satus-shortcut__mouse::before -{ +.satus-shortcut__mouse::before { position: absolute; top: -4px; left: 21px; - width: 2px; height: 18px; - content: ''; - background: #f96754; } -.satus-shortcut__mouse.false::after -{ +.satus-shortcut__mouse.false::after { position: absolute; top: -12px; left: 17px; - width: 0; height: 0; - content: ''; - border-right: 5px solid transparent; border-bottom: 8px solid #f96754; border-left: 5px solid transparent; } -.satus-shortcut__mouse.true::after -{ +.satus-shortcut__mouse.true::after { position: absolute; top: 14px; left: 17px; - width: 0; height: 0; - content: ''; - border-top: 8px solid #f96754; border-right: 5px solid transparent; border-left: 5px solid transparent; } -.satus-section_shortcut -{ +.satus-section_shortcut { width: 100%; margin: 8px 0 0; - justify-content: flex-end; } -.satus-button_shortcut -{ +.satus-button_shortcut { font-weight: 500; - overflow: hidden; - height: 28px; min-height: 28px; margin-right: 2px; padding: 4px 8px; - text-transform: uppercase; - color: #f96754; border-radius: 4px; } + /*-------------------------------------------------------------- ->>> SLIDER +# SLIDER --------------------------------------------------------------*/ -.satus-slider -{ +.satus-slider { position: relative; - display: flex; flex-direction: column; - box-sizing: border-box; width: 100%; min-height: 64px; padding: 0 16px; - - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; outline: none; - align-items: flex-start; justify-content: center; } -.satus-slider::before -{ +.satus-slider::before { position: absolute; top: 0; left: 0; - width: 100%; height: 100%; - content: ''; - opacity: 0; background-color: var(--satus-theme-button); } -.satus-slider:hover::before -{ +.satus-slider:hover::before { opacity: 1; } /* LABEL */ -.satus-slider__label -{ +.satus-slider__label { cursor: default; } - -.satus-slider__range -{ +.satus-slider__range { position: absolute; z-index: 1; top: 0; left: 0; - box-sizing: border-box; width: 100%; height: 100%; margin: 0; padding: 0; - opacity: 0; } /* TRACK */ -.satus-slider__container -{ +.satus-slider__container { position: relative; - width: 100%; height: 12px; margin: 8px 0 0; } -.satus-slider__track-container -{ +.satus-slider__track-container { position: absolute; top: calc(50% - 1px); - width: 100%; height: 2px; - pointer-events: none; } -.satus-slider__track-container::before -{ +.satus-slider__track-container::before { position: absolute; top: 0; left: 0; - width: 100%; height: 2px; - content: ''; - opacity: .26; background-color: var(--satus-theme-primary); } -.satus-slider__track -{ +.satus-slider__track { position: relative; - width: 0; height: 100%; - background-color: var(--satus-theme-primary); - will-change: width; } -.satus-slider:not(.satus-slider--dragging) .satus-slider__track -{ +.satus-slider:not(.satus-slider--dragging) .satus-slider__track { transition: width 100ms ease-out; } -.satus-slider__thumb -{ +.satus-slider__thumb { position: absolute; top: -5px; right: -12px; - width: 12px; height: 12px; - border-radius: 50%; background-color: var(--satus-theme-primary); box-shadow: 0 1px 5px rgba(0, 0, 0, .15); } -.satus-slider .satus-slider__thumb::before -{ +.satus-slider .satus-slider__thumb::before { font-size: 13px; - position: absolute; top: -34px; left: 50%; - visibility: hidden; - box-sizing: border-box; min-width: 28px; padding: 4px 4px; - content: attr(data-value); transform: translateX(-50%); text-align: center; pointer-events: none; - color: #fff; border-radius: 4px; background: var(--satus-theme-tooltip); } .satus-slider:hover .satus-slider__thumb::before, -.satus-slider__range:focus .satus-slider__container .satus-slider__thumb::before -{ +.satus-slider__range:focus .satus-slider__container .satus-slider__thumb::before { visibility: visible; } -.satus-slider__ring -{ +.satus-slider__ring { position: absolute; top: -11px; right: -18px; - width: 24px; height: 24px; - transition: 100ms; transform: scale(0); - opacity: 0; border-radius: 50%; background-color: var(--satus-theme-primary); } -.satus-slider__range:focus + .satus-slider__container .satus-slider__ring -{ +.satus-slider__range:focus+.satus-slider__container .satus-slider__ring { transform: scale(1); - opacity: .25; } + /*-------------------------------------------------------------- ->>> SWITCH +# SWITCH --------------------------------------------------------------*/ -.satus-switch -{ +.satus-switch { position: relative; - display: flex; - box-sizing: border-box; width: 100%; height: 48px; padding: 0 16px; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; background-color: transparent; - align-items: center; justify-content: space-between; } -.satus-switch:hover -{ +.satus-switch:hover { background-color: var(--satus-theme-ripple); } -.satus-switch__input -{ +.satus-switch__input { position: absolute; z-index: 1; top: 0; left: 0; - width: 100%; height: 100%; margin: 0; padding: 0; - opacity: 0; outline: none; - -webkit-appearance: none; } /* LABEL */ -.satus-switch__label -{ +.satus-switch__label { padding: 0 16px 0 0; } /* TRACK*/ -.satus-switch__track -{ +.satus-switch__track { position: relative; - width: 32px; min-width: 32px; height: 18px; - border-radius: 18px; background: #bdbdbd; } -.satus-switch__track::before -{ +.satus-switch__track::before { position: absolute; top: -7px; left: -7px; - width: 32px; height: 32px; - content: ''; transition: left .1s cubic-bezier(.4, 0, .2, 1), transform 200ms, background-color 200ms; transform: scale(0); - opacity: 0; border-radius: 50%; background-color: #000; - will-change: left, transform, background-color; } -.satus-switch__input:checked + .satus-switch__track::before -{ +.satus-switch__input:checked+.satus-switch__track::before { left: 8px; - background-color: var(--satus-theme-primary, #54d2a3); } -.satus-switch__input:focus + .satus-switch__track::before -{ +.satus-switch__input:focus+.satus-switch__track::before { transform: scale(1); - opacity: .08; } -.satus-switch__input:checked:focus + .satus-switch__track::before -{ +.satus-switch__input:checked:focus+.satus-switch__track::before { opacity: .25; } -.satus-switch__track::after -{ +.satus-switch__track::after { position: absolute; - width: 14px; height: 14px; - content: ''; transition: transform .1s cubic-bezier(.4, 0, .2, 1); transform: translate(2px, 2px); - border-radius: 50%; background-color: #fff; - will-change: transform; } -.satus-switch__input:checked + .satus-switch__track -{ +.satus-switch__input:checked+.satus-switch__track { background: var(--satus-theme-primary, #54d2a3); } -.satus-switch__input:checked + .satus-switch__track::after -{ +.satus-switch__input:checked+.satus-switch__track::after { transform: translate(16px, 2px); } + /*-------------------------------------------------------------- ->>> TABLE +# TABLE --------------------------------------------------------------*/ -.satus-table -{ +.satus-table { font-size: .875rem; - position: relative; - - overflow: hidden; display: flex; + overflow: hidden; flex-direction: column; box-sizing: border-box; - border: 1px solid #ececec; border-radius: 6px; } -.satus-table__head -{ +.satus-table__head { position: relative; z-index: 1; - display: flex; - box-sizing: border-box; width: 100%; height: 44px; padding: 0 8px; - background: #fff; box-shadow: 0 2px 4px rgba(0, 0, 0, .1); } -.satus-table__head > div -{ +.satus-table__head>div { font-weight: 600; - display: inline-flex; - box-sizing: border-box; padding: 0 8px 0 0; - opacity: .7; - flex-shrink: 0; align-items: center; } -.satus-table__head > div:last-child -{ +.satus-table__head>div:last-child { padding: 0; } -.satus-table__head > div:hover -{ +.satus-table__head>div:hover { cursor: pointer; - opacity: 1; } -.satus-table__head > div[data-sorting=false]:hover -{ +.satus-table__head>div[data-sorting=false]:hover { cursor: default; } -.satus-table__head > div > span -{ +.satus-table__head>div>span { position: relative; } -.satus-table__head > div[data-sorting=asc] > span::after -{ +.satus-table__head>div[data-sorting=asc]>span::after { position: absolute; top: calc(50% - 2px); right: -14px; - width: 0; height: 0; - content: ''; - border-right: 4px solid transparent; border-bottom: 5px solid currentColor; border-left: 4px solid transparent; } -.satus-table__head > div[data-sorting=desc] > span::after -{ +.satus-table__head>div[data-sorting=desc]>span::after { position: absolute; top: calc(50% - 2px); right: -13px; - width: 0; height: 0; - content: ''; - border-top: 5px solid currentColor; border-right: 4px solid transparent; border-left: 4px solid transparent; } -.satus-table__body -{ +.satus-table__body { overflow: hidden; - flex: 1; - width: 100%; height: calc(100% - 48px); - background: #fff; + flex: 1; } -.satus-table__row -{ +.satus-table__row { display: flex; - - padding: 0 8px; - box-sizing: border-box; - - border-bottom: 1px solid rgba(0, 0, 0, 0.1); + padding: 0 8px; + border-bottom: 1px solid rgba(0, 0, 0, .1); } -.satus-table__row:nth-child(2n) -{ - background: rgba(0,0,0,.03) +.satus-table__row:nth-child(2n) { + background: rgba(0, 0, 0, .03); } -.satus-table__cell -{ +.satus-table__cell { overflow: hidden; - box-sizing: border-box; padding: 8px 8px 8px 0; - white-space: nowrap; + text-overflow: ellipsis; word-wrap: break-word; -webkit-hyphens: auto; - -moz-hyphens: auto; - hyphens: auto; - + -moz-hyphens: auto; + hyphens: auto; overflow-wrap: break-word; flex-shrink: 0; - - text-overflow: ellipsis; } -.satus-table__cell:last-child -{ +.satus-table__cell:last-child { padding-right: 0; } -.satus-table__cell input -{ +.satus-table__cell input { + box-sizing: border-box; width: 100%; + height: calc(100% - 10px); margin: 5px 0; - border: 1px solid #d2d2d2; - box-sizing: border-box; padding: 1px 2px; + border: 1px solid #d2d2d2; border-radius: 4px; - height: calc(100% - 10px); - outline: none + outline: none; } - - -.satus-table__paging > button -{ +.satus-table__paging>button { min-width: 32px; height: 32px; padding: 0 8px; - cursor: pointer; - color: var(--satus-theme-on-surface, #555); border: none; background: transparent; } -.satus-table__paging > button.active -{ +.satus-table__paging>button.active { color: #2979ff; } + /*-------------------------------------------------------------- ->>> TEXT +# TEXT --------------------------------------------------------------*/ -.satus-text -{ +.satus-text { margin: 0; - color: inherit; border: none; } + /*-------------------------------------------------------------- ->>> TEXT +# TEXT FIELD --------------------------------------------------------------*/ -.satus-text-field -{ +.satus-text-field { font: inherit; - box-sizing: border-box; width: 100%; margin: 0; padding: 0; - padding: 0 8px; /* it overwrites padding above; remove one of them */ - + padding: 0 8px; + /* it overwrites padding above; remove one of them */ color: inherit; border: none; outline: none; background: unset; -} - -/*----------------------------------------------------------------------------- ->>> THEMES -------------------------------------------------------------------------------- -1.0 Default ------------------------------------------------------------------------------*/ - -html -{ - --satus-theme-primary: #f6b465; - - --satus-theme-dialog: #f7f7f6; - --satus-theme-dialog-text: #777; - - --satus-theme-header: #fff; - --satus-theme-header-text: #777; - - --satus-theme-main: #f7f7f6; - --satus-theme-main-text: #777; - - --satus-theme-section: #fff; - - --satus-theme-button: transparent; - - --satus-theme-scrollbar: rgba(0, 0, 0, .2); - --satus-theme-scrollbar-focus: rgba(0, 0, 0, .4); - - --satus-theme-tooltip: rgba(0, 0, 0, .4); - - --satus-theme-ripple: rgba(0, 0, 0, .04); } \ No newline at end of file diff --git a/satus.js b/satus.js index e4ed90b0a..fdfd77b67 100644 --- a/satus.js +++ b/satus.js @@ -1,11 +1,36 @@ /*-------------------------------------------------------------- ->>> TABLE OF CONTENTS: +>>> SATUS ---------------------------------------------------------------- -# Events -# Render -# Camelize -# Animation duration +# Core + # Events + # Render + # Camelize + # Animation duration +# Modules + # Browser storage + # Localization + # Render + # Clone node styles + # Search + # Storage keys + # User +# Components + # Button + # Colop picker + # Dialog + # Folder + # Header + # List + # Main + # Scroll bar + # Section + # Select + # Shortcut + # Slider + # Switch + # Text + # Text field --------------------------------------------------------------*/ var satus = {}; @@ -71,21 +96,18 @@ satus.camelize = function(string) { satus.getAnimationDuration = function(element) { return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; }; + + /*-------------------------------------------------------------- ->>> CHROMIUM STORAGE ----------------------------------------------------------------- -1.0 Get -2.0 Set -3.0 Import -4.0 Clear +# MODULES --------------------------------------------------------------*/ -satus.storage = {}; - /*-------------------------------------------------------------- -# GET +# BROWSER STORAGE --------------------------------------------------------------*/ +satus.storage = {}; + satus.storage.get = function(name) { var target = satus.storage; @@ -104,11 +126,6 @@ satus.storage.get = function(name) { return target; }; - -/*-------------------------------------------------------------- -# SET ---------------------------------------------------------------*/ - satus.storage.set = function(name, value) { var items = {}, target = satus.storage; @@ -147,11 +164,6 @@ satus.storage.set = function(name, value) { chrome.storage.local.set(items); }; - -/*-------------------------------------------------------------- -# IMPORT ---------------------------------------------------------------*/ - satus.storage.import = function(callback) { chrome.storage.local.get(function(items) { for (var key in items) { @@ -164,11 +176,6 @@ satus.storage.import = function(callback) { }); }; - -/*-------------------------------------------------------------- -# CLEAR ---------------------------------------------------------------*/ - satus.storage.clear = function() { chrome.storage.local.clear(); @@ -179,33 +186,21 @@ satus.storage.clear = function() { } }; + /*--------------------------------------------------------------- ->>> LOCALE ------------------------------------------------------------------ -# Get message -# Import locale +# LOCALIZATION ---------------------------------------------------------------*/ satus.locale = { messages: {} }; - -/*--------------------------------------------------------------- -# GET MESSAGE ----------------------------------------------------------------*/ - satus.locale.getMessage = function(string) { return this.messages[string] || string; }; satus.locale.get = satus.locale.getMessage; - -/*--------------------------------------------------------------- -# IMPORT LOCALE ----------------------------------------------------------------*/ - satus.locale.import = function(language, callback) { var xhr = new XMLHttpRequest(); @@ -265,8 +260,9 @@ satus.locale.import = function(language, callback) { xhr.send(); }; + /*-------------------------------------------------------------- ->>> RENDER +# RENDER --------------------------------------------------------------*/ satus.render = function(element, container, callback) { @@ -354,6 +350,8 @@ satus.render = function(element, container, callback) { } } }; + + /*-------------------------------------------------------------- # CLONE NODE STYLES --------------------------------------------------------------*/ @@ -365,9 +363,11 @@ satus.cloneNodeStyles = function(origin, target) { satus.cloneNodeStyles(origin.children[i], target.children[i]); } }; -/*----------------------------------------------------------------------------- ->>> «SEARCH» MODULE ------------------------------------------------------------------------------*/ + + +/*-------------------------------------------------------------- +# SEARCH +--------------------------------------------------------------*/ satus.search = function(query, object, callback, categories) { var threads = 0, @@ -411,8 +411,9 @@ satus.search = function(query, object, callback, categories) { parse(object); }; + /*-------------------------------------------------------------- ->>> STORAGE KEYS +# STORAGE KEYS --------------------------------------------------------------*/ satus.modules.updateStorageKeys = function(object, callback) { @@ -443,38 +444,16 @@ satus.modules.updateStorageKeys = function(object, callback) { parse(object); }; -/*----------------------------------------------------------------------------- ->>> «USER» MODULE -------------------------------------------------------------------------------- -1.0 Variables -2.0 Software - 2.1 OS - 2.2.1 Name - 2.2.2 Type - 2.2 Browser - 2.2.1 Name - 2.2.2 Version - 2.2.3 Platform - 2.2.4 Languages - 2.2.5 Cookies - 2.2.6 Flash - 2.2.8 Video formats - 2.2.9 Audio formats - 2.2.10 WebGL -3.0 Hardware - 3.1 Screen - 3.2 RAM - 3.3 GPU - 3.4 Cores - 3.5 Touch - 3.6 Connection -4.0 Clearing ------------------------------------------------------------------------------*/ + + +/*-------------------------------------------------------------- +# USER +--------------------------------------------------------------*/ satus.modules.user = function() { - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 1.0 VARIABLES - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ var user_agent = navigator.userAgent, random_cookie = 'ta{t`nX6cMXK,Wsc', @@ -526,17 +505,17 @@ satus.modules.user = function() { }; - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 2.0 SOFTWARE - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 2.1.0 OS - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 2.1.1 NAME - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ if (navigator.appVersion.indexOf('Win') !== -1) { if (navigator.appVersion.match(/(Windows 10.0|Windows NT 10.0)/)) { @@ -570,9 +549,9 @@ satus.modules.user = function() { data.os.name = 'UNIX'; } - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 2.1.2 TYPE - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ if (navigator.appVersion.match(/(Win64|x64|x86_64|WOW64)/)) { data.os.type = '64-bit'; @@ -581,13 +560,13 @@ satus.modules.user = function() { } - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 2.2.0 BROWSER - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 2.2.1 NAME - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ if (user_agent.indexOf('Opera') !== -1) { data.browser.name = 'Opera'; @@ -606,9 +585,9 @@ satus.modules.user = function() { } - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 2.2.2 VERSION - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ var browser_version = user_agent.match(new RegExp(data.browser.name + '/([0-9.]+)')); @@ -617,23 +596,23 @@ satus.modules.user = function() { } - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 2.2.3 PLATFORM - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ data.browser.platform = navigator.platform || null; - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 2.2.4 LANGUAGES - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ data.browser.languages = navigator.languages || null; - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 2.2.5 COOKIES - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ if (document.cookie) { document.cookie = random_cookie; @@ -644,9 +623,9 @@ satus.modules.user = function() { } - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 2.2.6 FLASH - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ try { if (new ActiveXObject('ShockwaveFlash.ShockwaveFlash')) { @@ -659,18 +638,18 @@ satus.modules.user = function() { } - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 2.2.7 JAVA - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ if (typeof navigator.javaEnabled === 'function' && navigator.javaEnabled()) { data.browser.java = true; } - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 2.2.8 VIDEO FORMATS - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ if (typeof video.canPlayType === 'function') { data.browser.video = {}; @@ -687,9 +666,9 @@ satus.modules.user = function() { } - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 2.2.9 AUDIO FORMATS - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ if (typeof audio.canPlayType === 'function') { data.browser.audio = {}; @@ -706,40 +685,40 @@ satus.modules.user = function() { } - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 2.2.10 WEBGL - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ if (ctx && ctx instanceof WebGLRenderingContext) { data.browser.webgl = true; } - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 3.0 HARDWARE - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 3.1 SCREEN - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ if (screen) { data.device.screen = screen.width + 'x' + screen.height; } - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 3.2 RAM - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ if ('deviceMemory' in navigator) { data.device.ram = navigator.deviceMemory + ' GB'; } - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 3.3 GPU - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ if ( ctx && @@ -755,18 +734,18 @@ satus.modules.user = function() { } - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 3.4 CORES - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ if (navigator.hardwareConcurrency) { data.device.cores = navigator.hardwareConcurrency; } - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 3.5 TOUCH - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ if ( window.hasOwnProperty('ontouchstart') || @@ -779,9 +758,9 @@ satus.modules.user = function() { } - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 3.6 CONNECTION - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ if (typeof navigator.connection === 'object') { data.device.connection.type = navigator.connection.effectiveType || null; @@ -792,9 +771,9 @@ satus.modules.user = function() { } - /*----------------------------------------------------------------------------- + /*-------------------------------------------------------------- 4.0 CLEARING - -----------------------------------------------------------------------------*/ + --------------------------------------------------------------*/ video.remove(); audio.remove(); @@ -822,8 +801,14 @@ satus.on('render', function(component, data) { }); } }); + + /*-------------------------------------------------------------- ->>> BUTTON +# COMPONENTS +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# BUTTON --------------------------------------------------------------*/ satus.components.button = function(element) { @@ -849,8 +834,10 @@ satus.components.button = function(element) { return component; }; + + /*-------------------------------------------------------------- ->>> COLOR PICKER +# COLOR PICKER --------------------------------------------------------------*/ satus.components.colorPicker = function(element) { @@ -929,8 +916,10 @@ satus.components.colorPicker = function(element) { return component; }; + + /*-------------------------------------------------------------- ->>> DIALOG +# DIALOG --------------------------------------------------------------*/ satus.components.dialog = function(element) { @@ -1017,8 +1006,10 @@ satus.components.dialog = function(element) { return component; }; + + /*-------------------------------------------------------------- ->>> FOLDER +# FOLDER --------------------------------------------------------------*/ satus.components.folder = function(object) { @@ -1051,8 +1042,10 @@ satus.components.folder = function(object) { return component; }; + + /*-------------------------------------------------------------- ->>> HEADER +# HEADER --------------------------------------------------------------*/ satus.components.header = function(object) { @@ -1064,8 +1057,10 @@ satus.components.header = function(object) { return component; }; + + /*-------------------------------------------------------------- ->>> LIST +# LIST --------------------------------------------------------------*/ satus.components.list = function(object) { @@ -1171,8 +1166,9 @@ satus.components.list = function(object) { return ul; }; + /*-------------------------------------------------------------- ->>> MAIN +# MAIN --------------------------------------------------------------*/ satus.components.main = function(object) { @@ -1266,9 +1262,11 @@ satus.components.main = function(object) { return component; }; -/*----------------------------------------------------------------------------- ->>> SCROLL BAR ------------------------------------------------------------------------------*/ + + +/*-------------------------------------------------------------- +# SCROLL BAR +--------------------------------------------------------------*/ satus.components.scrollbar = function(parent, enabled) { if (enabled === false) { @@ -1371,8 +1369,10 @@ satus.components.scrollbar = function(parent, enabled) { return component_content; }; + + /*-------------------------------------------------------------- ->>> SECTION +# SECTION --------------------------------------------------------------*/ satus.components.section = function(element) { @@ -1385,8 +1385,9 @@ satus.components.section = function(element) { return component; }; + /*-------------------------------------------------------------- ->>> SELECT +# SELECT --------------------------------------------------------------*/ satus.components.select = function(element) { @@ -1453,9 +1454,11 @@ satus.components.select = function(element) { return component; }; -/*------------------------------------------------------------------------------ ->>> SHORTCUT -------------------------------------------------------------------------------*/ + + +/*--------------------------------------------------------------- +# SHORTCUT +---------------------------------------------------------------*/ satus.components.shortcut = function(element) { var self = this, @@ -1656,8 +1659,10 @@ satus.components.shortcut = function(element) { return component; }; + + /*-------------------------------------------------------------- ->>> SLIDER +# SLIDER --------------------------------------------------------------*/ satus.components.slider = function(element) { @@ -1793,8 +1798,10 @@ satus.components.slider = function(element) { return component; }; + + /*-------------------------------------------------------------- ->>> SWITCH +# SWITCH --------------------------------------------------------------*/ satus.components.switch = function(element) { @@ -2144,8 +2151,9 @@ satus.components.table = function(item) { return component; }; + /*-------------------------------------------------------------- ->>> TEXT +# TEXT --------------------------------------------------------------*/ satus.components.text = function(element) { @@ -2171,8 +2179,10 @@ satus.components.text = function(element) { return component; }; + + /*-------------------------------------------------------------- ->>> TEXT FIELD +# TEXT FIELD --------------------------------------------------------------*/ satus.components.textField = function(element) { @@ -2181,4 +2191,4 @@ satus.components.textField = function(element) { component.type = 'text'; return component; -}; +}; \ No newline at end of file From 903fbe061977a459ef12e902c7919991a30affb8 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 24 Apr 2021 23:18:52 +0300 Subject: [PATCH 0116/1224] Removed fonts --- assets/fonts/OpenSans-Regular.ttf | Bin 96932 -> 0 bytes assets/fonts/OpenSans-SemiBold.ttf | Bin 100820 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 assets/fonts/OpenSans-Regular.ttf delete mode 100644 assets/fonts/OpenSans-SemiBold.ttf diff --git a/assets/fonts/OpenSans-Regular.ttf b/assets/fonts/OpenSans-Regular.ttf deleted file mode 100644 index 29bfd35a2bfdd92b6e8b4ec2970f4d1eebf49357..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96932 zcmafc2Vhji*8iQ`w)d7z-z-T80Yb7VgkqK!AhZYpSwy5u5$PcE5CJ0~AkvF~fEY3I z5HS>ahy@i96%iYv@+sD*A5VS0r$To4|7PxP3hMtO#w2@Z&&-@TbNV?e5J3#X+t(YKxjdyRpewi%i z@3soLVYg&3h_Y<66Ji$4>VSyZD@sCHS+2t=lqTdkoTStd3ON9i1f`Hv7%K33+-fi* zi)CfFVJ{t>^&F~C9w zIEckzaVS2QWK@K_P+7=XTAG)4+iloxu0vpZj{W3I^@SXGjukt7rTm-!R#2e50_;cu z4|d_=-$eme0N){re|rf2l-}=3lIUAi%d6jNX>X85wO`8r#{`f{)KpYeRaRD2 zRgg1V)<3jm!`g=)rL_M2byBV@*4C0LGH`G0m)~8vbouKm^%tLd@`=Ac_4wmYUH@F{ zJK5B}n{RLT*Y#L1w9mpp{YH(vwtXwv+dVSA%k1S>7r#FK_R*6{ zH|~96!{kG^(RnvLF@}Dzo_>08((w1d))>biWt?NUj|h?^DhuM(#DR~j-Tm;I^(%I++bZT0 z19^M@OSIsZA8GOPwd6GhwKJfa<4|QI;0jioQIfNpLnU@m7c6!b6^hv*uTwNXvUcZ+ z^=ls9&A`&%X@|YX$(bL2A#cC*G|dOpA>u;Ws=5WM&@P-LDKgPnj0TgzW|xh`BAU$> zBlwrzDhOq-6g1E#J3O}YOrPQc-^_MpmMD_ACYL;vNSFM!@4(IjKhvctWNEJIrn9FW zPNT<0kV$mo2vVMQcq&=Jb~8b^Ea%84K~XKkEFZbbx<3LgFg2jgDPG$CIrqB;SK{2&sLL>;v2~`Wu-dToLqwA_b79@4CT=9*izs{II3WnpoRpf$LCQb*vI}VA0BIBhzb|*{mURP1T zQ$@Zf7dCIk%Un_kKV$U?VUsEdW{W`@5HWZ`=5e|x;g?mDNSiyCcIeWzG}LWUw;nyZ zbt#7=B7z$tW6-g4E@uLKCaht`9(MvUqlK3?gh4I&aklXNE=mXZ=PQk1S zsz1Tt=@T*NBwL?|@V%jA$x7L|c$TN_z8NGJ5TVP+ znc$v&$b4S{(YXYdmB@)nc4ME2T}Kl7Mi^kmJ{q|O00)Z5O<)d;3+l2NU-Y=a8$1Cy zv%ZWhIxwyML-*eL*w~?OTzUJS+diN#ia)LK&=glXX4w4J(O;S$a zJe)$OaH>-=h@wd+36dhY+(dCIeIo{&&gqnNs?=~k@teh#%p|F%MDe>t@J9e=76iYQ zCtY|nS}GnsaDgr}>f5!VC8UxbAeC#RPwR8Y*Q@JBmPO|Pf7QTW3TPrx=nzh`Nq)E9 z?UUr>Bmu}01l8lg8G2OJ+$W;`0dkfFkY&8G;fQ#wui%cQzS7dQI=rZ_M|=!Zngq)_bcYi7?7$#h zL9SX96@puOo!TaFZ<%J2C1*w_%<5h_{>T5A%q53sy!_?$cQ#zQo4QwTdwAWgTZRr? zCzaRNxK}6Ql7k+eIy=i$dI?kk^oa6DT%mmKm~u1SH1+i@)f!RxcS z21Km(1|bq-cICm}RUW)%>)0Atn{AbAW3!qm|*dPlEkwLDI zyUa#oib5tSA|O&Zr@l;jss3ll`ZK8+O)hPqtLRaNley$2*)LrN)#`*+VUJFf@uER5 zE0qx#PL&ZGA&|tk;c_x&+hCqCkxcMCSK3`aLfS12TfUs$v3&U-R-_P!SDjv!8du~Z zd`S}|Tm4U1QW;rJ%E{~vG%%VDV=GF!epxC7eI>z?DGjFtz{_+lmym3gvtf$2u(wDZ z5NYAH8+%9WG1Zn|6mFHqwIoOaW{Sks+PIK{FjT=3o7$^^UZa=wTrz*a#!(%gfBS{^ zvisgUuFJs&`?YxXrmC5<29BSanZI<*@uzxE9dp-^8Mg=MhcTm86y{woSC1-n(9FwV zd1M6J7F#>&+)09vX{!d(*Dx0gHX9VUF`rWHt8xs668j4Uny;@1I$z=eUE--GP< zbzt1iCwbglhKVhL8M5eM+_1!>2Ga#77cBw>vXkJs%f%$JdUWW{2}9+i&s?I1_mi$9@7*t6{Dp3yQ$HXpiSQvAaOB#5Po8yJdktQ^PQ38Y z4~r+7L1%pJ7Sj8U_vLrxvk(# z=|b;tmP<}C+Wda2QPx?Z59n{)&jzDflWPc;6pbZWI2*MNc3d(h+)v z>~PCL810(O2|66H-%gY5P#EPkD@Z^3>lG^2l7zY)2VT5N@}GJ3$Ul_B`;RYv(r+xK z7hm~A>OTE}`BS26qMt5byX-!8TNZ$up5?M43tkti+hCP^2~MGR#3`Fp;LFvpJ}#|6 z*cmu;ArwFULT8Im0nBZw<4^QEV)=c`E1NIT=jpB|N!dqV@9R~ggy;+OJNh|2RkER! zEF%-YAXP`J*7j#N4H#2~0%OqEnNDk!4REbFU5ce5qDZo}BEn87uKYDPW3~7!($#b_d65hz_tasouYNsC+K~eBJGzlBQV!Dx=o2KBWL%pDr4xI`ywY!& z*Ti%d)o3KLpeOLhsD|DVh%Zr8dPhWw;D(dN1;o_72Azd10yYW%mVT>0C*?)wizA}D z#cJj7CYrM``gN0;3_?LT5w-%6^h7e6ZkULv{xKfHh%v5AVt26_$jsU}cmR)nw<&gV zN@vceunV`|FN)SAy_}pPB=v^orI^i*-Vw8`_Pvo__2Uj&M;|&uhJN$UH@d!dg#L%VM*<{a^BVe`NTa2hS!4wn`z5*M(2$K)^kw=r z{fNFDBrj`wSJF6^Lt(!GTwE{9ilA7`dZ~9ruUCw!1Ra&TL0~vExrLkyvCTs%4dMSG zC9Sre*49d5t#}|>30r%uco)M!6^LjEpP?k2tPrCFjb0)W3^G}jDe(f z)lDc)f&OTPAeN!a!y>?PW2DTM%h$`;eZX_NmJ#gLFSly%Rk2XP1!_&u!($0884f$Q zhZr4_3d_POz{6J-VqQrQXVk1C;UJo-Pu)+|2!i*qNCAI6V+lfHV>dARpYt>V; zV&D2+{RrjowF()wt+apliK{=ysD*i2>_XeH#{fY|Y&I}*htnkKYRJu0%|FHx&Cv#efx`2ie9vekIH90s;hqq6Lv@#(BW?loNkuP4|u%WXaY$ zA~jx_2AzX|;V^;6{@>J^R!-3E^cBYR$Vk#1*7E3UGowHK`?p_z{&y5s^)7lB?#Ki( zjx49s=uY|}eTx*3R025Xlo@>)a6*OQL?iGHJPR(j5j1QxsydysBBGNR=9_W} zjUQ?PTgGhx=F>^c&J4;E=sEiJzFIP0Y!NkW`QnWer%%Y{&;At!9->KWcddDdV}b7B zSg=9YDGbBt_JUp{BY22p(OLYxBNkcb0{ehjUiMmpdDL)$APeAcg6PrxIaa=Sn+*Sz zUM~4d%zQ&vcBLChh4_Es=PdAJhX1iwIMYIiXf`->CZkb@7=hPku;6M|L@XBg<~%q# z$;5mqp(eO$Vxluz>(7j%4SbfYA((-FOjezyJLuW(>h?bM{HNl`=uYME z+h^%#k!x44UUMI4mRTYqIB*Mwy;K*J`2?3DXJ(mGC9fA;*egqrC{0L7z@f$2 z4|5jC!SuMv3nL?&TT)z_LXBburO)e?Mf&ZJw0`BV_a@Zt>%4mHn@`hoA0H_?^wiSL z?W>o6{dZFR(nsC)WVK#2v+t;Zg}q-)~SqwlDj^9RCVLqJu6JPi2L!E56b zh(aVu50{Y)o*+w1z%^xyjMFeLni~BloLh*%$}Ex1N1{LNjs8+cDm!Gf z=%9Jb>ia*ob@whngC?x&3uu1kv+^605;Z+r>* z&9pl5HSKtuOeS|7q8-I0(FJ0?cr5z7*e%+Z!Dm>T5BPc^J#2%YTG2@cNEM=!n2e2K zj%gOa9e{%T;g#!59ym%9_EG;a@uGOKeo^$am?td-w1I%exUqrx<)E_Y1f5J|qe+p$ z4kV&)rWrLVEbz;5pF}_|t9MEIs9k!Y{x>PLTHd^+`r1Umt$`nVD&Xp{N~;RJ3y3km zsjd=uvLROZDa6Pprdx?q;d(kvFOdK}u3lYrHNbYuoIIZbjwHB_0DU+3PhG&>F)>&Z z{hyfo6z>SpXO6CrB%N(?M=uRv*n=j z64-M>*ns${y|ulK^r z9fz2;Oz`dy&VnBdrp3_F(hmCS5`mEA@&(DM25<_l!-8xws`tSZPKWR}tc7QyUsI*bk+9u};61$TJ_8bjlnLEi~Y z;w&*rDsXbQcUE>#$23Z}E>!H}3|8a&;{K2R_0tEFpXp={&aKhwXT4dwack|CjT_}* z^aA}EU+)hXxC+sX2NsUov*P48-<-O1?t^z3HOvHtSIEN!uK?T02I*sv5`3x!E3*qu ztc-;Onz*j>+bJ>IiNz+Po#|iv&4F^(GpJ25*R7ZNi>9Jv1#EjrM&||PmuJVY~ zxCkbFnxTgiU1kt|JS|4x3uR{mKS6$$+`G32y&DVV1b?-}D=zeDd~>QH%22-e>+k zbo;jZw_C-|E8V0eK~#dYr$2o*@uk-*)@KEzul8-;{scR<6c`CsH4QNscz4`pvr9z$ zUy(dsBd!7xAQYWa9&zbx61xrDTdqYP81}Fv+;p%|W}5_yO5mwx#xE1skeEB@cQvoP zLPp&(J9lLF5yOa2I#pjPo$Ax6Gg%+3PFwIGbWcghrfxYOm}w=H2wjA`!Z+pm+h>~7 zIxG1u;!?y`8Odpxeq+~e$+jX}QF%n)v1i1Xp>Ji=+w|U6t;C*@R<@R9JtHmc-nKm> z-lQ0f#cwUV*Koa+mgaJUvO(KmH-WPlPuz8z&8}*Q$4*$Vg1M`-_<39lX^b^vdpsOn zREXc?{4>d|KY1}fcT&Z$mk+)`KcU}#_}zW8T9t--44(YaYeRZa$HtZCPT#fp)bx9Y zEuQu7|IWTw?lmzXIKAht7xnE2x5?eO`tS=o*N$DA=&CI0G^|x{@11og-PeT3@CB12 zJ?@k`&7AYYulM4d4nPKV2c3Hb*pF7T9_-p{@cI(02B%Xlk2vk{`WkRX2%^XL$^|() zBS=t(M!+~H?Zz`Vmd7FOxM%U-AFZj;8}kp%I(=Gv^@013e-J&1+nqDG{eW9vcqdxK zG~?YMl<~?XoR$sp+QIzGgxDPxU9X5mv=K%bZ*z+^=A?zvge(+3g_edgq^72>eXEuo zI<#!nUhYM5N{foyw=XFH?CWc&o5ME4pWiy{b(u^Sz22YbwfBm6!v>oG>Vww8IY(l% zNnA|~OncMWa&Pb0qg(&pjWbfWf2n)$Epq)eJ3X$uEk3!1(-h#;E)+xGw;GKmlU|h- zz3gy8d$rs3dP!&UNH$Gl$OFZ*pf%J6{KnBrxJCp4r&*(J9jVG4N=Cm*yOWEj>4F7& z_UOg@&SS`2+9tX}RPUtYRd@ZV667JV^CUwsw3sYigDz>GPhNM92Vr{;|2oo)b?mS#t2X=r;EA zAMZzBl6!5e9CmET*caYq6ceLXtk*5%hZ6)hBUiV<>oFVbb`Y!GZnXUsu{NjGhP5zC z-M5o1BXo57Yp*j(J@x^g_vQ$nRFedwF(;!W_|IH|1$tVd-{=J&vrG17%)hA>i@1$g z#C&){;~mGv9!-C~vhK^j5%ZO=iLL(my^lTiHqD1@B$?@q^Fj84{M% zm@G5r9z37<^&6MZp1rUFP5=|E&9=20e}9v_Keqe{jgF*jtkaHYh}&W?7>y!)AU2C& z^l;7)({`MtO|wZzTnI64$B-xP>D|HCy|DWEn&mEi=Y8^U^H$qOyP|b+uQQWpVHQ}f z(oD?K0(>A@vs@KdgXLNt@!D0%&_F+V8iQ?ayFzPdv|Y1fxjHdfsF|+P%rD>m_?`iW zsur)Dx@*g#vX4(Z^JK@zADDA@o3Rg_L~72KnjTwQwjDG$eCti6gYWF~z$3kucCYBt z`lj|pJs-vz)2{y@?p4ac|Cw*X?M7ybQ<4*WMwi{yGhz+fZ8{v3E_P6fZ#8r7A@GFr zfvx~8iwWwIkcatF-CohzdSF7*#8&j>?c2*olAGwuBW7E43oQ;ZKwMeb_+c_o>eOM!i_Er`-w|uHXB_=kJoIm*!6DY$lz9cO-vFn9gpe%jn)g7v|PL6-oRj7 zYj%*nxYUoBXmb> zTsaTL?O%A=V4jAGoi5mjJL$-SKU7-vrrB>Eq$2@z&X?VbNI$XNHD*u4R#Jn2mJDg* zHYBB_`n*;Ptae$S=!Ce@Gu8>_sae4+B_L)ABm99x02T^yIvGusxU?yYF{PY$+Eu7; znR@m``u_e&Q}udNzVme5EA8ESIrzdpdQM!@@!Zq5M;F3>Fost4DLqsq&W^6wH@n3~ z@e?cxtIEb6^?Z*RVTVppp?9%F8lpFOWNel#iLFR8hhvs7v#WySC|&YA36S)E&?RKe zarzd0r+Rk=f>(cVd+1m3Z`abFd&E&~esLSy z5o~5@3TFJH&D=Ah*oeMogh{)m1_2j(4K}khrT#1UpwEimL=TF$O_zo&T2y}wa9Qpb z+;;r@JpRN)6Asj-b4!raQc9|;Aqh+i8-O=y@-7o0cn@?rrUw-v5b1z=;!!=Yemq_e zxj1|JiFfY3d-1G~4u5^=l6m}aaiv(hmE=u`tP+QhBn6M`TcN&0FMOD7&i)Xx`U3+kFHy9iGdKL}plIHaqCU%yXIT5<&+W z`8CUB1`!5bZk|=amT-}!GSBPOsjM_qF7CT_N$I<^XSl3a7`r+F{(X_her^hqOZz;OpI<#?-|k1BSoP44#p>&CrxV9jQh(FFJyO88GIajJduKXgRY+}b=5Q2`+=hlIV4aCa+6LO*1F>6Z%ICem_#Y?0qAy1VKT9Q1gV7W~oUU6*o#Yux}Ox z#g8I*8jw;2f);B})OOywdj0}ZLx**#kdm%ld+W8={zo}oRo(AzE9r%WpN?JDdh4pZ zUoI^qoeqMxio$%N%077~H0*5npe)Hk2Ewr|bJ9GXOdUKi$W!P1Pn+FUSdv}h!&&%B zd^%*j=zO|t#vOFoC0QkLtpxZwTCsG*(g}+fj$eNJ0~HlZhA$t#@PV;QhgVlD+CFR6 zj-4}RZ5PkqGkN9k>fXJphd(%d&XPOuuqS?BHu-PUc0M|N#%>f1K;i*^EdJsZhJ@QX ztvZv*ZbnX*K{C6o9-S}2XtnBWD)PAmm&fKxbBQ*W&1EJY)yy)37{5fOIE+7@|IKVw z&OX^zVyDgcD8nPZpeexH#J=DM>_z79rz434a~Ajyot`5^&m}u$>qa6~I24 zEBUUt70Yfg^RaMR#$9Hlqopi0DlJ*iT5yU!AJZ+fRdvOX{uNbcUmfx2sG`wJ`_7s* zf9tW011q-t^SzJn>;Lk=2UfMabLK-2bX|M@6Zy;6J=cA(lrv;`X3MFA=dDP|UXq>E zG2E%Dr2D4H!&c?oymsZ5F6%Sf^zGTULx-?ljIElTf-}JnkAndu*t`s(iBXB1XlBD|24+!FW>!f_R%Q`dP?VWjQj(cjq)abt z+qSSEKffUMlX)A)B0s&m7T*_&VM}Fa`y^XlTAJHn^C>0mk%8p2nbXXo;It!Q*lBhq zBXGy&0JpPFPO#LM*B^gy!F==6J$Kp=^d#hHe!zIWRzxIX;uH;7S?ExYX8GXhON zh?GQ*e@7-#UAV7PbSDg7dHd9@kI!B|c0%rq>cz`x<+RhIr`;h1sz!|&KYpSrXIF6c21+$h-27_!-kt%Lh^epqZ$x>phi1-M6 zTAA99fn>;B<`SPvYY{seI-7n@(q_}WVm8^-gYKrgdXh~^jlXg^Nc50{K2$6uh0P-T z&Zq^377k_m z1lZ`Z0hDDin4Lbgq`ldW(N>q$sdw3&X-*M*-z7R-PS;;j7(0MQp2ha9F%NG11%oJr z(7A#V4|Spx;{PBv@%){YqlVlzi5wi<@59VYHekz?! zM$;YA{KfRu|BK+r^{XoMO?4e^+@JgPW%b%GD3Eb41O+UVhKpBlCz;(I2wN@SddTHY zv>RXaO6=k#zS*=A2|P`^_KX;tN}Yv=7B4xa3I*z zd?cN7fCl~w+CZ+vjakmuv+lcQqAgs+E;>Ra5s zM^?emsf(voZhG)>%oz|%`J6#`Uo&jTZMzuwz^ETHMm)O@uOs*uC=yK^318EjL zyb7ERp#bW(IAvfZO_@3FVqx%)8P?*=f!z-r-Me|#y7}k7nLYQ8F_qoAPHW$zY~_e$ z+vRU6@9^dAzHfE=`Q3M~nLMC-=kB?|VQq@%Lep&;b1@*|CEo|0+!%9VWhh{Jx*%EJ zZfg1)t@nqg%0J(9po^!=i9+m-`9r$H2Ji|+;Y7t~)Y}CVg6Z7|3wUhqB#X#A3(RTB zMOc$~SDe=EJWvX83EK;bM$8{VhR~-Ttyz|6och(qp+;j(4Ou|1KK~v!8=n|nwUfT6 zve~E8dU+(YbeoWk7^4D1QZY$(2XbvBn}SR@t(;8D%#7VFcA0_>&gSgJp@2Mc#``mG zs`}{6$KQ%=XuW#i_ev?`yn2nu6!15TeaUiZ7?WFJBjRBeL>dM}kXjjYg~E)A(<(@H z^G)rw!Uyqu*B(8(#ws5&;r*-w6*`&b;INv&B3QP%)qzN|UC4X0peYyTM;)`qxR5Rh z>Aa+F%f?WfHXR4tJYdSuyGrWlrBRa%lk_c%bBi1YXJ%uaeZ>m$xxymIh%$<(+cBEK zU!`0fw9X7W zS&%DyhwBA@0noA6(?eQ`)X2SWj!?;Og>9|Er>?^T$WtKyR-+2O2gPC z{wa3dOz_qgYo1dmg8o_2u4Dm8PMx-!32xn?Tw61@+HOvfDIqS{Dt|%VG zZE&eb02%3yB#V{F?>N z)J0KelwLj{9+OT-kBceM%VPIyRpi7Ro>m)6o+R&zhZq$t07pfBD%P9@RO^I$L{VU` z^Bhi&cO+$VydU8hA(lAKZX7X3DAPuG{$d2_bN!k&BC+`hhE;8rNrIDORV0B1tagIB zIfSpIwYC!a>BW<9=WpFg4w9S6-ws7jeS@l|>J#E< zEe%&(zERvnm(x9BI9k7v8nrW2%5;pX^BLx_pLI9vn&;_pycB4-73T2~qCb8@H;$M? zjM@n8fEWd_T)##bxLtMHh^*!?*gE(uc)ImZVKD4#>zE|Gj}h#4wbAGRQm2~OWwX2) za>5@r=-|pU5VJ)u_~X)sb0)6D6OB*r8%cMP5hIaiwr3m}L3fTNqvXwF@aN7kisAj-%U|6}RB}No4B%7xyy>5i#6RZ<;SvM)9-}PA;cS(K8jwn;P(20=*+Pr(TgI zyG53e!l$zIGoHNn8g3;Ilr}M%dBQt8Qq8BqavL>Yhh)ztUS2imBU#7~&~hBVUq9~d zI}c)A-Op_wb@!wf>+Xt@i<~><@z`124de@ z-*+HOd!$#lN>BGj;v-ImXO!`iX&*b?a*lU|!DGDh#u0Obv)YKHzZikjU7(FfZ$5&Z zoi@uPVKYBFkz{LU$8I0Yn)!SsxM$!dbA)^iijxn)-2yj}=kdGcVKEa6YF1ST6alZ# zf;3G7u8+lFF~DEW^EA0DhK1l`VK+_JKvf{qw!j$E<;GOac}Ug#{Ag|Mhs003^;h>I zS@VrICHv(o6kgx!!rACQSMS;IAeO~5W40l4p&gTvIjxkGpx`r`g%n3CCBMMwY}K}H zR(YhY(8|N(Zn3~f6F+0z+sY}?ttIO)M<;hFXnqmq3DMF3AS~fIPG>2-T&a`&tB1Bv z>e+wg_?MqOKDlgLuMY>^wQyvQo_)g07SbPTKKbnJ&*h(&&Mfa1NN-gdx_$e&olo`H znw@vJ&*buf^Q+1x6_pMvsvLajT3`9#!GCNA&Ut>48o;@9$L3U_8*)-1H?thEv%m5A z9GES5-u5q^lRh8u=V$|<$zA?_<vsZDm9@`yiQ&hHs% z-y+)~%hrr+Z;{@rFORsb2vP^-S~V? zfBwA1Upyy$a2}wDoMzAYiE8jCA#a26=yuw9UB7<)W6V2-ui)SK4cZ#L87tI3OO!Z_ zCn0AGnv9rpJzX1NiH*4aEJh4&906I4v?2z>86WWjMx^m|XtPYBM=-)zClbH567Umr zRggy`w~tksRfKZ`syR6s`NMv%)#0+MhU}JxwDO2a@;dxh8+0&(iymD z5k0nzztZ>Y=EwKeZKF>=z5D51Vu*f2-zAnWz9#BC`GXf8xwHDF{Mo(xJUDsoYC3~{ zyRMdQe&Wb!cD4t=AG`D028TrNXtW~^ zOIS?B>U3o zu6po6`faDqWgSYxW#TWfU$BCi*N@Ai<)txs-v<@EX~}N45fsu)*!z)Q5fk=yDS&i3 zmhJb~!k#5KL)gax7`%#$Q-nIK!IRm~W&2+1H@XI0G}wXpvAB663emit(;s_M%M0l-yZ@5SDDXgPNZ+}At2h7t)OhiMq7UBNGd8*)bdga8kE8RG zAF7@FE1WXC@sqpp`JCzec?0F#@SOB<^5?;3@8>70!Jib+?piB8fbnr23+5{r&Q~x; zgOJ7t;4bnk7WhrPLWXctI4xaGa@+05sB95*3XUYR*B}{Ekx%KBe7Jwj(oLHtn{pCB zpAzt6o^F~Q^zniimVTBQOJhk#G?onQT07~(AAkDbvwO_49_db`*WS%YV<(hIb0;jpBmr*pnJMGky;F1{PSUu`#&z(pBv$!*v#n2lmr>u}e& zO-lO3EFV$RW&lHzjiWJw%U;s&Km4|6f(_3(1YJo3g#JP<*M~$~T&vO`eANJ<|Cby> zX8cqH+EsBV$2ADBHE))7av3m!c125+VcPrH>*8wuI<$28EZ4wb=P?Zo-6fbEO&at# za1dz)KSf9raF97zI(r_U@dgOc1ovqWGUIE$0Rrj6c@Sw>vj!m_YvXG`Mo7}1twFhj z5o`@Q)caQgRsX+L^c7yxU}Q91#jeJEkiHNSfY89{plK>YIVO-JfjRmLLpcPo!5e^m zD2r4#R?(A<5Zg;g-ebO(AYxqim$1U@SV2rR&fYCPnkogzzCJ}d4sK4 zs*LYjgTQ!%2BANs0LOiDGYA}W8if9Da|m6VLtyt!gD^lGt3hbEv3w2uzA*?4b7>rN zQlADGv?Hs6)nFjDQA%)YfT0^!FLvPELMo5HkKM8~zJHh%fZRvesLkEr`{5dmt`?Bt zALS#`$Z~eB%#_S!6&CoXd;^=%1%FFbxHST+Ho@+e&1RiRZ?Ze#bn(GS<~1Vd#VYt* zK70|g-H8&cSX_gJ$zu)On6Vgho3UHOEk+k|G6MMK_lDQQ28&1$E80XY?CYe3I-OOUZd1lF*Xf`K$B?FWzEwvgdW*$o__*0|ghCFLHh1h!W#VRZy2V?ox`*+|{ z*N~TJSv>1{2Xa~8kA5RxTzKr*!dI$T;`O`H;n2@vf{AZ%j}Z5Ak%1`0<1`h&OV=O9 zh`YI-2eye*8Az9Lia^`EnB50j5*Krxpuy-zqZ*7jPheJnSipIL2BRPSy9PrShmndA z4|1-c!RSwa*I>lC!u2;XqCKZ=4MzXC6(Gl9RMD=iIvK zUbVAV!4Kd=WH&*ZZ-7wQbl=SO$8LupvJ}srR^(V7I`c7bPiriDTJFW*(S@=dl&Q_F z6WWM-`K{Ou%j{0%wPy)zcAd}<5(4wH8fS4FzYT3PTBk8@YWyyy7m_5N(fVkx_D++IkM%Mk<53;Qi56~ zCR!9#)(Zxk97|0E4K}#A;1?pP7dqQjuvE*T*!c2jMYbzqM{3Mhu9JNJOJD+;j_G;y(P-v}24v0|wheK0CDt z?MQCnJHz|fj_J32$9zWRNPI@IJxRI#800fS;kYKBahl@J_&bRzwg*n|To;$$8U%(* zHXrz&C`a$WjO=}TA;&0qP-*Lt`DK%QYf8Kf8 z3Dx4)>#>$>ti{CgD`H*TM2p@mAYn-luLJ5siGmVD7VT`9ixs-DR9QY7K~@#qOMFT) zWO=W1HFuTQ)kq^pOj{K#6RUbnpDU#^JOdl>6SEV{*UpEC+6gx2)m&C_>rl5dvpq^2Kz-bf7U<{w2&F);j;(hE~hy2NWkghe_eDT|$S-Xw%k-iX1n6E(>Md(## z`H$Jc&B9Ww8NKH~8aUx(P60Tv({v$Q5vudrhm-9Vi&gJ-`+TBRN=$MZtsa|%{vb`7 z3^ZoLGWQ|-f+-iT2O&WxbJMW`c&+(>bb54g&p{I>)xQ|4gSS5V67NHB&s6yg{cT4* zB6!#OZ}=an^VOjz-(Sj6S>k3a6P-%|w<={0Dd}|6%2-K*v9Rv0GpAPaGL?POyoSn#fkR(-w|>>u zTAU2iE>3VRUck;An%yaW24aKfmuXd_ITs(uFiiS!t4?h2CUFRyhiee}$24)VA?~I@ zV49r}6JGH@7*C3axILx->FgPV>Fb1KA5F62&ivgx3U>)i= z=r!O*CeomA+XU6-a-|3sM~bSX2W(FG>urL`1VzCl8Bo8DG&+=yOHKhnxA;}%`EKzF zFRc+$+?UHjY)EqFZ3zl|JjTXiZ6sD{SmMZ1zljRthtuciqhvSxBF|?Uq~I=z=r}O$r|HX}wG2?dY|0f%Pf~$g@)+b>OekrJY&w-po9YCpl9u7ld+Knp(p9jM@`Xv6|YpRU9UJLWTnKK|p0`Qy-_3d99i`IAh*T zC7t^&wf-`!fmn0bX47I7W>CYYscfVd7u!uDb-h28=G+R$9M(ny} z=;mvI%}+eG<&np0Hpo2}t}%=0_q)HJH5bLXdPHYh&z&)C9{u%;iF7W!nc3-L>G_NA zpZoOvk3QP7W5*txE%;8%CN0wVPCWXQ7T0jWkELvW`hyt_3UfZ;e4xRr1-^smCF47Q z!1&7o#$QH4nxMu5ui{-?Zu~1QH=51|zN6WnXagCOLyMcu2ix%a96$i)X`p)ElYrA~ zacs>oO`>fa2Cx0#Yle%Bt@)oELW5uZ1_+3X{!`0sF%m zpk>?>)5-BVt2)8!n3=sUywCT2UDX0 zMiPxCW6y}sWKtbrmrX^549cXryia^9zJexq537JA$>e3Va1Qgl>c(;zuFH$Q!JX14 zwW6=DS`{yuA#LdS+3tl_I~h(F!6(YfX08j1e)*K)SBu%PXey7l0k=~%{5EiI?$P5q zJongpaL8icqNp!pOz@7Eyo^K%FZaot;61G7yv2>pc>8iWQ9 zn6?JS`!xvtaj3XQp5_ofY=BTHYy$-5XVVtJc)#YEtZsl&3I7Wlp)G@rxFLQ?1___X zplBv;BNXNt*H$uUf(9iPWnxg^OGD=kZ7tjj02e2lAHKA4axd+j{Pkb>>u_!B`f>{I zz<2=Z!&*JF-L;J0Cm$|Jkn;eDD>j04Z)YPkCn8|uU(<*vxWNBtFd94zH+WS^9~e=9 z(BRY1ATVRO6Pp7yXFtXEp30ZO_70gTYnokWK4y;4Rhy;ZE@Ff;feX^`)Jy=*E3tk3ZwvNaOQ*RqJOZEo}!FcQf z<;J`#KVeDP&@5f7MIU1Bu77FrT7bG3@=ULks zp4pr~-ghQ_Z`Y~kyM{ttJCzoNm5tTyuVs@pbgKMe;j(cvX4e;!10B}1Tbe+tXA?M zEU9{D+_}^7jvb_S{`hh8=8YTow<%pXx(dVU1$(QzQPVTA`|sI}4Lug$Q<%OmH`KhN zhthfU+*xBr&zw7=edo^Y@eR(UWt?#iwT#_KVGc4&8HZ~0ar4MJzxR8!5d>{?Fhc4P zzxg~ThQrtz8{y|LBrPQe+=WNcIE-T$0p0<%0}$H8AxwhS(5R26j8P#)fsnx2^Gw zU#JEuW-jjN@4o()oO>A>NgJ%OS{V&(9XaTzug5REj)31C$a2y~92(uLj9!khnHal9 z`AXZ5S>pTAvrp@YC!aIEk(C`v6YhBnyIXHUm?9ok$j|iFYz#+s4?G4qn0?IB7 z$dMLV@mGxNdO1gA9JEYg$-FsXaVVUAQUcR)b>lB7_J=XoB z@+myPEy6Z~C&BMP>qW=`vxg^+zsW11G>*oPA)_r?vg0_JanpcX$(=iJK<|u#kae_W z=B;gq^zW6P-_AD1GF`ry*(S47=XuNVqvK8UmP5=4-(beWT2~-e%VAYq2HEYg$oIJ# z$&r_|HZaA^hTpzvaaY>0%%?hxBIEMMC9>Z}%0IU|*27cwN;`k|XF9N-Y*+P|!>-N* zcXJ(<1(WeFv*7EKip)oyQ}V~k|Lt{ops(V8`w9|CLVeQ`wGO?g+>l}TG#4NyDG6Q2 z&}byVtjCv>>SU)HLr$F8vnv!!ug`80MsHg8Bnn;9o)63mRen{Nm6Kl*%qk>x@!yo{ zCm(Qkd$zM&*tW2(RtCj?YT67UqDDyg7T6w|R?zh8n^?rm8TYuwa@*k#h3g0$>OE*C zvsI&jsLlfZj_61H9f+T6K0G!;IfN0}=)=BIgZhUtUqXB7&d0RI=MrdezP$m?m+%jW ze5L{vE@N#`ZG@QIbf#(!r4unWpUDy*gPGJ2gF@z%HHAXrF~RHK!Kzuuv}yw71@jE1 zZ{rr24@n}4B|$Ka4F6aUUEl$j!r#mWMps+>ory<{y;BvY=}59HppFP;4*IpSHe<{s z#G0_+B;kb!I;7vC^J|sETdrP)xddp4&B#+2G_hqII`^xpEOv(HT$|&wK@-zvXFWtQ zI~=57XWXX)Uy7EafsPZRWJfDzugsbj@-CMG(li=67qZ5M@mfJ-w8mGbsT5cvcw#0} z9yRYtdb6gEsX-8V4vqM{;7dxoJm1R)? zm3j8H9dR$Y%Dv|33;F($ki;<&~sf~n*6u7-Z^7+H`@Gagz zPkQvQXn#i9SwC#WY1U6ugU$MPVlG_b81|UgQ)PZr;H($s%EVl(*R}~=4N{CcNmTXd zL#Lt6h`?vT}|X z_9pNhg*e;_>}WV1nNe>86&dVYG^wajRV-GWUPhZbYy)k48~kW2KRwQE7?p;K&|hq$%b+qZ1OCQ8)^iWLgoOjF z!jGZ+2EE-6eK=RB4CiFK6Ge+9*KbYL>F{|2t=pLGiLLCdDk2#z5?WM5!~{FOSj`o# zj>Zd_?#}i1#&z;oAiq)w1QxJtO;lF~@v%paCkI23ZRs-eQHTuD=XL*m7K;d$fi|7k~cw{Y2iiIYu>#gnqM0qio>+D44-I6Cg7N9jKUIi{-PwRBTLIQrqUh^@sPLeJ`mt<^0(L z57X$=ZODmxe%(VZ)4=i5(%AZKul)nRr#=4bd`4T9Sl2J$32CS(OP4Gut^}9YuQQ^l zQhLCSM%H#Y(W@Ht=)~#g*NUMx#G3)fDS@dv{G)h4)B)ZaCjgd!j}!rA6cw}bRVi@g z>fh_4hsm9rc9PMg18efSV-uMiJ$&TJ-<2YIJ^DF)_WtV4bI6D@q?nAPkJD3UY0cf6 zs~;f!KdUDq@Ch3E|7Y;WDT-(L$8F|+L8oOtg+`m1d7MwFuvW>v*uF}tQkYgN7RI&O zVaStN%Adnq$ezE>ZPmQ^bMEWs&+pfs<9K0FH+Wz6ayh}^YjUEBzJl||hz7qn^LtF^ zl4LE1Fc=WH9MRT*LLn{V;&7B7ltj<6&~U##N}Yl6a5G<1rH>1?cRi7Hk;xpDK8^xV4Y z53c<3`Mh1l=7gL@p5&^OK-(@iN1T?9Ps}~}vF)oJCL4{H~C9C3Nt{6D;>SUeqYA`{Z|eip-q^y84e6VJH z%#GW(?|Eq5^7*VYv=KY8B7*Eh&8gic6GcXgVS|BK(VPTP9iCCDaUCo!Scp$b;{9H3 z64CEP6-9SlIG2{~`*DOzujJ(Zb03}Du86uvlB^kWr|8k|??`=UkvQer`M=RmfHjug zIue=iELzYpoSvC%m(sjmgd~%d+}3s>L-MPBL<{_0-Yu~Swwi=`Ig(<{=x!|LM-F2P zd{77Bb^BU>C^4{d*2{bDc>dmA(;mHf@Tkd8y!#CO@rTRw$1lWD^H;t7!ohXB_e*>G zKRRad<~C(ZZ)!cDYtN~-&irZ5_w={l-hGBBbmo0WDvB=beE2D5EDHPSdzc0%~s7Hj0$uT7_9A3R6(5AXo^6q_X?KA0A3DITf-tEE(I)AFmWkoA+KeTU0FcrN| zaowPJaJO{RJH`;sQdm`ieFB?S7yv^hUJ`%;IyG=W{P9EjKM!_Xuy4b%g*6MNu0C_T zKQOIIzbL#yXYHKXVB&PxMnMCb#dL*y7^LGu}D*)yEJgjd4adqW(>~ zq-ibE%myP21?1kAv4C-dE*ZNnP5Swh$XTvY1eu~Dl>jrq2_`U zIU$*QhqJwQyNaHourCvnyy%i<^Sc|sBn^1tJQ#P?CZLNuvFfZ2yA2)(&R;lZY1Ff|gl?Ytk6r~1 z(!cjDnd6euCKl{mBloJmI$<2|ZngJG$praw05Tm}7m(>!nM}X_GjLN5TQURr&PjUW zk)ZSk6M%#SZ)#c^!jdYcB)s*MM#x-lY88I@?ScdyG|(5Jh@FPlhxQ5$EEtYC);!8e zE_6sO=$7B1w0qgD^M)3a$*xwxq(HmQ6@yZ?Re24`L#bS{dvJLROSPlZ;?4Eu{E%^8 zLf=88?#Gd{&PBP-r^TjwVa;>79)kbz?pRg~bKlJF;<3=;|5^CN z)3xHy2Op{&-MNJ`<*s2}HjL@HuCS!DKjZZSE8opFhcC?DQD9!Rr1Ih0XWohP=Fw?H z+*D>+VV8cK_b;F;R>PEHH0fOE5o@w2UZ2xov7wzJh|HsaJ+O!^lUW*%Xu`gDq$rqC z6iY^fA2J96low>R%dNUdgEgP7mixXRn(bVY5EakWmrKVgx<3@{R8az%P=o8qx)s{d z$qL;kJ?L$h2(u?8Rh3Y13L$DYCh-jG#<{f*S7Qccj0y1Mb*(6#f1Dk{z#a#vjv-ba zeO>tO*}L`nz1RMEv7QEYY`W*jqnjT_n)*-lgAtwIqZj2g6bGi!bGy%;qx;9d^VtV5 z;Wci#8|z9J+J=2re0Hrzmn3BbWT!L1lz_bN1iMK)X||e1wH(JAXOi5VgB4`4(ka$g zG1f+jq;*`qbNvz=WpTIAU8CMSN!-5;*il@xc*cQR(YW;f%8c~M!@6$1y?lK^%e*XS zCO$DLl@tdOR)s!}X;6o8Ru*urc40q0rctLe3nn=!(d;uI6CDXsz?vMxmPUxNdYXo}K1 zA|PT!L_`EcqzH&8h!JB{7HJ})*pWq4*0msutYTTqy6U<}GKc?p&z(s@cfUU&Bs00W z_tf{i^?A;3!J#J)Wk2%^dm3M=+y2N?&-D7+TdeWnf8EK_x!mKvC-{F}dGGc8%yH;l z8X?c6uatFYiC1bHL6Rdf6(*B6`m#oi;g+~?veK}h7yDLW|^{% z4?R(MLvrS<4*Tl(hwIgf`=T4q+Kn|%4+t$559&+L6Z)lCr9hguc~Qa$EdvISuwL;15S6|m|+x*1#l#JS}6wZAYnFapO-7mlTL&Ke)-E;q6 zSAnktD?ngFYJ;%?D2~x9l4()X6B29^YCeE^u4ZPrfL)0r!#aw)mO2}wHx++a?gdw*}~f< z4y=6c4ZtIOVuhjaWO>n%^FF%`l~(ff7mo1L7x(an`%OGY&3*p#EjL9UaD4~){T=qy zP_+_kw>%Pt$*cJj(u^6wu$Ex*gL*jGjRw1u4Nd{S2?43^X>4rD`$AAknDivOy+DS7 zylj@=Xo5ocNf7RPI#u>)yO#CX%d3ub7}m30yKY_QuI{>#Z`{M)tyz=Tt2gr&mc% zNs^2{Cj%NMR47-#Db!I~(TIY?Q_GvoM}`3;Ia=buBx}%{G2CMIgKlNy;p0i!wLLl1 zzMbG1__cQLL4)Vw6z5lezUA9p{KsGTcl;d}&tadKSq8`}LebN&eqz@)lN5mMei&;m z7p+UPC^=p)ph44JijtR~<916a24?{9f&Hs9B`kG8PAotl0g)S@em%mcWxysUZdV;d zO}A@x2_;Bbu@nf`!@z#of4r=3ec$q1rj4Dled?HLx0Lm(?^S+$|EGP;y?|fMw=%YQ z>!pW}ezc~BmGNVDtorEagG_z+0sh;=jr_0s$=_opON}Z)bW0793oK`0E$Sr=@#yj# zagDImq^afl70uNm;*21Bkj@CQ7sJAyY^q1ltv#{_b!)E*PCQtHdi9Kc#%PCyJsI~sSKo3Sf+R5uXm5rJ(dFd*? zw2tpq4)8u~)rm8&`2rigx6NL9$DC*~@m}z;FYQ@#

_T_kl)Xoan=RX{3lY#VQTZ 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 diff --git a/assets/fonts/OpenSans-SemiBold.ttf b/assets/fonts/OpenSans-SemiBold.ttf deleted file mode 100644 index 54e7059cf36359cb5a3860085714a95306af0dea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100820 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 DEZ%x^ From 4dc2008283f5aed89ee8f4b69453e4f97e78c7bc Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 24 Apr 2021 23:23:03 +0300 Subject: [PATCH 0117/1224] Compressed icons --- assets/icons/128.png | Bin 3060 -> 3054 bytes assets/icons/16g.png | Bin 566 -> 557 bytes assets/icons/32.png | Bin 1162 -> 1145 bytes assets/icons/32g.png | Bin 933 -> 926 bytes assets/icons/48.png | Bin 1495 -> 1479 bytes assets/icons/48g.png | Bin 1208 -> 1188 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/icons/128.png b/assets/icons/128.png index e6a56804d444718c30e08ccd4c65bec12283e420..5aba153b495fb2854babebc37b3052bd72ef048f 100644 GIT binary patch delta 3023 zcmW+&c|6qVAD^~M+EQ%nD#qMLxvy~!%4S=caz>6#E2NroTg=y%5|xq4lyewnGOQWQj3YBl<~RNRdtRUC^M2mP=k>f^pEb2*wKO=Oc+Sz){`5`9d5CEr zT#pYidxJzY!ZF=2-BxwPILxpGaUu@|$;5zjF>>R}OIT~DnM6sbJ^200?mx0lg z_wXQQEU0l7MymyWq6&!~ff;nbwKLILIcP{OTI($e$O0jSEn)muTo~6s!xb z!-4|FGz3=8Is-AzM?ooQ@FdiT2f-~sX363vC0hNb;d5m_ya)v^M8W0KoNII5O&_57mr^77%T-9=l^@&kIv0UwX=y86kaIE#} z)a2JC^4jc*c#A{-y1^GMt<9~756vmR0fF|p{&vdNHF|=I^XtLzOy zz_MAGz^VbJVBVUOm3FkShujkpqei3u0J$|E=NYuPRM8v$W0&6}VU(+7ipqH7kCxv6U172k zhtQ*M>77-)H9cQ!0maApi`#8|lpu9BTZ^{RM>yY04E4+tzv_ox0EM&rz7(-RY$%WVVy(%M8DjWp$bDmHH$mx@zcmkwUbO&rPH z96uiCp%$s^_>{(U77Zy(3J5E3QlcRJ%O&$G`@~8y%}<>3+*FqH{O~d%+e7rgZqN0G z^-dv2!HZJ6zM>6iYfEmGC&X5BN2b-m#n5SgWpH~wI`tPDNJMkn0h@<}ixsp7UoLv} zRFk0b4TuAOu&4IoWak)lj*dZKTdVJ-yogJXio5Y&PmuiWRuw{j;cEnd&h8g5ZCuK^ zjg5`N#QYySOhyT_428|S%py)>qubrI730g)g(9IpaN>H{>Xen$V3e&%NH)J{1-%{J z+rP1P$~S2){$c!F8nxv2_m#WZjrnnesNbTaGP)+`Ha+89R7$!IdT}~etgM=w*=H=f zCIhxESf;#x|Bq_TvcH6tc~gD)@{O=~M_)ze7P*@CV5Qj^M}Iu8MQQF|w~cOq24@zr zV>J#Y0a9$&6+vaZo^Q_m0&;cxsL;?bRO4x7U4u0mZ*mX2LeRp0=}KqWCHT}5cXZ_k zUGw%tqUb3=s+}bk35p!2BXQGX|B*H}2?m1uLS5gc;=?YWn@wxCg#JdmEe~xo?mypk zH{nwm`GHz~#1hO}6zD4L>bhl=00zxlfU^PO!$&hmv3MwhdQqRh;Hi&MV zdVz!oQLRYX{5$yAh-=sUmHqme^C@@tj7Xd&uZh=$|3T_KGTulhz3<#SBu6f=j~=~l z!Ym!NI%psWFWmpjSo`RWu+Dh%nCt^(k0D7&(QwlzU({!%9jO%S8!Xl2_Z>BEfH9H0 zqC?@=pHsw5MQ;9)OlC8J6z>_y;+{sGy|NE)^D)YIXVcH+c3FYt!YAl6iNqb9y|>CC zn)Wx3^b%f7Xjj`h)%nu<+S&`TtFNROqlA!zcj*S8Z%zHRiCn_jS16F#)L#cyOfG^t zskDd?o1modXH9!zm}6&*L~Z6AfOue0mHxeUFI<15LJCsl4ZI1nP3BN(saV zQNDv76X4mVbV^L8(+%BU?id;o@#alUa`iLSxLccBM-%-WJi1GX0FN;)1H3t<;_WIk zJM8QC?BVXc(}yIa$M{$iPdz{>=vs7ys6V9iR%Q`*U_|luxjjMr=yl=Whpa{1Kr&~t zAuJ*YG`v{rM5Y+7zMi-kxH3O*vE8o+yOhdvzQA#?slpSBt+U zNEyFVW~qAp(|V0(H1)s=hn2x?ekE?3iITp;jJ<^qYC4N8&U=V^DP=vNl;9=T4$x=I zlIG`q`70D%k9*m}v2QHRC;!rtb|AGxZc;+cPu%Yt@Gx9unqA+?a<_tF6+3JcRwx~G&FEq8>E@o(|*$3WH% z=W|}-G>7H$z(`@4Kvr_|xeSM^MSyv3uc)TeB`V)VeS6`2t4~Sz4}#D#V*6*7_Hw1i z3o8!Qx+?8mXaGBA^fkYx_N!JhVU`-8Ok6{J`?)u13tPIwZE2yTQ9-t-z|D#{P?&vO zLw9e+v%^hZ7n5}A^rbGDvZXrpiMy@g-WF~t>t~G;AJqipMyRpj_w9}r1KL(!&^cFdFLq$!!+8N-!KUr%8o#gqwYbWY(Bt4~@%@$>eT~)OWuW2V~ z?Mib6f4_65{7XCYFITl~XS~sV&!_LwQ)#i7Cp<+BV19Fmk>lhfUG~mhl!R9! z1rAdf>0|ZnfotiN;@SprJ4HP1s6mzF1y?MN)=id(Ju%pD(o%p^kAZuX0o5aT#*olU znlVw!7W*HoQ5TOLC`%1K($rgakE%^jdHAcd*=T4f`vG=P_J=s+;>*hWHT?*onZ?)P zVCNeQ(yyG$n%f^mL%%Ydd(THz#f%tTDr)l%E@KeGE=zVEF|&}ds|=20IJ$EJz3|!Z z`s`B+np6kCn933Oe)$eFZ*+m5Vz7GfSd3ZpjE(P=^SQ(6`NR>~o+8B;c>>!#iSi{4 O^qalYsdsjN-2NXma}wMD delta 3054 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 LS3j3^P6mM0&-Br2FFADSp2vmhqDCMoA6J=-HS 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 delta 890 zcmbQozLb4}O1(>fPl&5~flnnEgoTAwRaFHC2L}ZOMMXscxmj6Rk&%(Pxw$npH9#ey zp`ir@1;xe185tQsWk3ZH5fO25aX|GzjX*|BOiXEMX=-XJP(4rtqBt)vuc)X9C|*`p z79JiR7#IlD2sAb{)G#zQHZ~o1}C$D(mhGwEvnTQ6g*gli43;H9e!&bqT%E69{$p2E)P1e|u8ps2 z);I1imo8j+`AVX5*6Ckir{8;iy*0xvSmM=>OZwk_UHo_qryoAi{Vr<}0|VoA zPZ!4!i_^K6)8lU&2(W!PZPpTRw)hQi?#p>)J>Iy)QJJQ6S~sr~=`Mas!d%-`#c z{;OY_tHa1LH9j)N>)Pv+OK()k%)5T&(eck#D>q*bJ|3xkroYhUo7_*H%K0I=I|U+B zv&>Fyz4h?nZO(_)p7Ui7uD#}1rvIZpsDO8;>yHID&ulV%w0X*V_wwzD*G%3zx3MK{ z`S^E#m(G0)#k}oTS-G93b^ zyk_SWtu**Ct-aK4db`)_SMxUJ-nI^S&|7^+^ykLQ-*(>r&$qfpPj1277`}@+AA(SZ|!6huJCnc6BAL=1F=pi_mC?CWmEuAPJl_w$4 zBQUA}0Nf%p>K;0}B`VJ&FzF#WvL+_2Cno74I+iFPr6(i1C4Va8A~vcgCE6l1+afg8 zBQnz?GN30S-y$~VAvo+IIlCk)rY9xJBroeBIkYAy$0RPAC?K*XDa|D>vnMFfBr(n; zFyLEJDB`%gJAJ-!@`0DEU>gxLH>!2ti(<3tX>gvNKEy*M={ORkaCnTIGALEF&CnTaMBcmuI(IYX&B`)D2Hp?V0o+u&JBQoM5HrOLG+aomI zA~pHy>&_%F!6hukB`xJ5H?Aipz9lQ@Avo~P(6J^byMHAruqG$3CMUHfD7Ypm^Ul%r z&e8bi=f6)+u`De2;^WG5a=1i9*M*1Nn3?U4m*%>&Qn?Ko~7{A)ZwYB+@+<$E;Q?}v&3Ox*prjzy}sZ#NWV2X)hRgKS7F6vWZgwl zOJGI_0Dk}gM08S4QvhpODE?6v4HN`vX%&l(?q>1w^NPpI^6ieeCQbwLD)M$rNcVYk z^2qYfkH_=-!n?urcy{sd{La+Yyt(k&*V)L{*@AliH6hQ?+G)jyj_RiV@*h|z{(|_y#%*+n6I}5Ac&+qbF4u_cqAaoKW z^5&OWUT@ZmCb=XU+%Pc_neX6u?RNWoXJ_a5NOMHYH9SFnTgWXI%Tz&a!WBHWoaW<* zPfeLjlkEk?v0}cEEHf|U?d=n7b&=t|yx{e;6gJ|SF(xoxo< z{TOwqF(gMn$Kfcy9&y};cz1Ud0MRBoc0bS2Z0@*ezTDdz4J5(F;Mn~FKRvBHI3s)+ z@((TvsO34#(MRiPC7i(Smqm`dTnqqsTKKG zybH+EE9o4AJW+Pt%Sn7ApDrWRQ5nfGH@(ovq=~tYva_w(uX7Wn;UE4VyZLfS2%QM3 P00000NkvXXu0mjf{h`2o delta 1477 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 Date: Sun, 25 Apr 2021 21:17:09 +0300 Subject: [PATCH 0118/1224] Fixed next autoplay in playlist reverse --- manifest.json | 2 +- popup.css | 32 +++-- popup.js | 291 --------------------------------------------- youtube-scripts.js | 13 ++ 4 files changed, 35 insertions(+), 303 deletions(-) diff --git a/manifest.json b/manifest.json index 652fb5891..93a04750a 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", - "version": "3.229", + "version": "3.230", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.css b/popup.css index 1307418b4..6542c19b6 100644 --- a/popup.css +++ b/popup.css @@ -6,6 +6,14 @@ # Main # Dialog # Themes + # Default + # Dark + # Night + # Dawn + # Sunset + # Desert + # Plain + # Black --------------------------------------------------------------*/ /*-------------------------------------------------------------- @@ -15,8 +23,6 @@ body { font-family: sans-serif; font-size: 14px; - display: flex; - flex-direction: column; width: 320px; height: 532px; margin: 0; @@ -222,7 +228,7 @@ body[data-appearance='search'] .satus-switch--desert .satus-switch__label { --------------------------------------------------------------*/ .satus-main { - flex: 1; + height: calc(100% - 58px); } @@ -1161,6 +1167,10 @@ html[it-improvedtube-home='list'] .satus-section--info # THEMES --------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# DEFAULT +--------------------------------------------------------------*/ + body { --satus-theme-primary: #ff4158; } @@ -1170,7 +1180,7 @@ body { # DARK --------------------------------------------------------------*/ -html[theme='dark'] body { +html[theme=dark] body { --satus-theme-primary: #ff4158; --satus-theme-dialog: #2c2b2c; --satus-theme-dialog-text: #b5b5b5; @@ -1191,7 +1201,7 @@ html[theme='dark'] body { # NIGHT --------------------------------------------------------------*/ -html[theme='night'] body { +html[theme=night] body { --satus-theme-primary: #ff4158; --satus-theme-dialog: #61a7f5; --satus-theme-dialog-text: #fafafa; @@ -1212,7 +1222,7 @@ html[theme='night'] body { # DAWN --------------------------------------------------------------*/ -html[theme='dawn'] body { +html[theme=dawn] body { --satus-theme-primary: #ff4158; --satus-theme-dialog: #ffba99; --satus-theme-dialog-text: #fafafa; @@ -1230,10 +1240,10 @@ html[theme='dawn'] body { /*-------------------------------------------------------------- -#SUNSET +# SUNSET --------------------------------------------------------------*/ -html[theme='sunset'] body { +html[theme=sunset] body { --satus-theme-primary: #ff4158; --satus-theme-dialog: #a96165; --satus-theme-dialog-text: #fafafa; @@ -1254,7 +1264,7 @@ html[theme='sunset'] body { # DESERT --------------------------------------------------------------*/ -html[theme='desert'] body { +html[theme=desert] body { --satus-theme-primary: #ff4158; --satus-theme-dialog: #9dc2ee; --satus-theme-dialog-text: #fafafa; @@ -1275,7 +1285,7 @@ html[theme='desert'] body { # PLAIN --------------------------------------------------------------*/ -html[theme='plain'] body { +html[theme=plain] body { --satus-theme-primary: #ff4158; --satus-theme-dialog: #abceb8; --satus-theme-dialog-text: #fafafa; @@ -1296,7 +1306,7 @@ html[theme='plain'] body { # BLACK --------------------------------------------------------------*/ -html[theme='black'] body { +html[theme=black] body { --satus-theme-primary: #ff4158; --satus-theme-dialog: #222; --satus-theme-dialog-text: #fafafa; diff --git a/popup.js b/popup.js index f7898ed04..138f14762 100644 --- a/popup.js +++ b/popup.js @@ -2061,297 +2061,6 @@ Menu.main.section.player = { class: 'satus-folder--player', appearanceId: 'player', - footer: { - type: 'button', - class: 'satus-button--ad', - title: 'Frame By Frame', - innerHTML: ` -

-
-
- -
Frame By Frame
-
Frame By Frame
- -
For videos
-
For videos
- -
- - `, - onclick: function() { - window.open('https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh', '_blank'); - } - }, - general: { type: 'section', diff --git a/youtube-scripts.js b/youtube-scripts.js index d4730d98d..e7ad1988d 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2029,6 +2029,12 @@ ImprovedTube.playlistReverse = function() { } }; +ImprovedTube.playlistReverseOnEnded = function() { + if (this.playlistReversed === true) { + window.open((document.querySelector('#playlist [selected] + * a') || document.querySelector('#playlist ytd-playlist-panel-video-renderer a')).href + '&reverse', '_self'); + } +}; + /*------------------------------------------------------------------------------ 5.3 REPEAT @@ -3199,6 +3205,10 @@ ImprovedTube.timeupdate = function() { } }; +ImprovedTube.ended = function() { + ImprovedTube.playlistReverseOnEnded(); +}; + ImprovedTube.playerUpdate = function() { this.playerPlaybackSpeed(); this.subtitles(); @@ -3292,6 +3302,9 @@ ImprovedTube.onplay = function() { this.removeEventListener('timeupdate', ImprovedTube.timeupdate); this.addEventListener('timeupdate', ImprovedTube.timeupdate); + this.removeEventListener('ended', ImprovedTube.ended, true); + this.addEventListener('ended', ImprovedTube.ended, true); + ImprovedTube.autoplay(this); ImprovedTube.playerLoudnessNormalization(); From 65fd18bf1e6af024b82588db1756982d85a4ca9e Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 25 Apr 2021 21:20:05 +0300 Subject: [PATCH 0119/1224] Use system fonts --- popup.css | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/popup.css b/popup.css index 6542c19b6..5dd58bdbf 100644 --- a/popup.css +++ b/popup.css @@ -21,7 +21,6 @@ --------------------------------------------------------------*/ body { - font-family: sans-serif; font-size: 14px; width: 320px; height: 532px; @@ -79,7 +78,7 @@ body[data-appearance='home'] .satus-button--back { } html[it-title-version='true'] body[data-appearance='home'] .satus-text--title::after { - font: 700 10px sans-serif; + font: 700 10px; margin: 0 0 0 4px; content: attr(data-version); opacity: .6; From 74e161b528bc4bc370438b392688a5bad53a5224 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 25 Apr 2021 22:24:58 +0300 Subject: [PATCH 0120/1224] Fixed forced player volume --- youtube-scripts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index e7ad1988d..1ba750eed 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1644,7 +1644,7 @@ ImprovedTube.playerVolume = function(node) { if (node && ImprovedTube.storage.player_forced_volume === true) { var volume = Number(ImprovedTube.storage.player_volume); - if (!ImprovedTube.isset(volume) || !volume) { + if (!ImprovedTube.isset(volume)) { volume = 1; } From 35e8fd77edf967158ccce65fabf14a384526e594 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 25 Apr 2021 23:25:43 +0300 Subject: [PATCH 0121/1224] Fixed forced playback speed --- manifest.json | 2 +- youtube-scripts.js | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 93a04750a..ed861b609 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", - "version": "3.230", + "version": "3.232", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 1ba750eed..eb1b62a32 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1098,7 +1098,7 @@ ImprovedTube.playerPlaybackSpeed = function(node) { if (ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) && ImprovedTube.storage.player_forced_playback_speed === true) { try { - if (window.location.href.indexOf('music') < 0) { + if (window.location.href.indexOf('music') === -1) { document.querySelector('.html5-video-player').querySelector('video').playbackRate = option; } } catch (err) {} @@ -3202,6 +3202,13 @@ ImprovedTube.timeupdate = function() { ImprovedTube.video_src = this.src; ImprovedTube.videoUpdated(); + } else if (ImprovedTube.latestVideoDuration !== this.duration) { + ImprovedTube.latestVideoDuration = this.duration; + + ImprovedTube.playerQuality(); + ImprovedTube.playerPlaybackSpeed(); + ImprovedTube.playerVolume(); + ImprovedTube.playlistUpNextAutoplay(); } }; @@ -3209,6 +3216,8 @@ ImprovedTube.ended = function() { ImprovedTube.playlistReverseOnEnded(); }; +ImprovedTube.latestVideoDuration = 0; + ImprovedTube.playerUpdate = function() { this.playerPlaybackSpeed(); this.subtitles(); From 821bef431a6e2b9adb63363bf43edb63e11674fd Mon Sep 17 00:00:00 2001 From: Marina Beara Date: Thu, 29 Apr 2021 16:36:02 +0200 Subject: [PATCH 0122/1224] Added files via upload Added new translations for CROATIAN (HRVATSKI) language --- _locales/hr/messages.json | 830 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 830 insertions(+) create mode 100644 _locales/hr/messages.json diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json new file mode 100644 index 000000000..369348ffd --- /dev/null +++ b/_locales/hr/messages.json @@ -0,0 +1,830 @@ +{ + "about": { + "message": "O" + }, + "accept": { + "message": "Prihvati" + }, + "activate": { + "message": "Aktiviraj" + }, + "activateCaptions": { + "message": "Aktiviraj naslove" + }, + "activated": { + "message": "Aktivirano" + }, + "activatedFeatures": { + "message": "Aktivirane značajke" + }, + "activateFullscreen": { + "message": "Aktiviraj puni zaslon" + }, + "activeFeatures": { + "message": "Aktivne značajke" + }, + "addScrollToTop": { + "message": "Dodaj «Pomaknite se na vrh»" + }, + "ads": { + "message": "Oglasi" + }, + "all": { + "message": "Sve" + }, + "allow": { + "message": "Dopusti" + }, + "allow60fps": { + "message": "Dopusti 60fps" + }, + "forceSDR": { + "message": "Prisilno SDR" + }, + "alwaysActive": { + "message": "Uvijek aktivan" + }, + "alwaysShowProgressBar": { + "message": "Uvijek prikaži traku napretka" + }, + "amber": { + "message": "Jantar" + }, + "analyzer": { + "message": "Analizator" + }, + "appearance": { + "message": "Izgled" + }, + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formati" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Automatski prikaz preko cijelog zaslona" + }, + "autopauseWhenSwitchingTabs": { + "message": "Automatska pauza prilikom zamjene kartica" + }, + "autoplay": { + "message": "Auto Play" + }, + "backupAndReset": { + "message": "Sigurnosna kopija i resetiranje" + }, + "baseOnSystemColorScheme": { + "message": "Na temelju shema boja sustava" + }, + "belowPlayer": { + "message": "Ispod Playera" + }, + "black": { + "message": "Crno" + }, + "blacklist": { + "message": "Crna lista" + }, + "blockAll": { + "message": "Blokiraj sve" + }, + "blue": { + "message": "Plava" + }, + "blueGray": { + "message": "Plavo siva" + }, + "bluelight": { + "message": "Svijetlo plava" + }, + "brown": { + "message": "Smeđa" + }, + "browser": { + "message": "Preglednik" + }, + "browserVersion": { + "message": "Verzija preglednika" + }, + "bubbles": { + "message": "Mjehurići" + }, + "bug": { + "message": "Greška" + }, + "buttons": { + "message": "Gumbi" + }, + "cancel": { + "message": "Otkaži" + }, + "categories": { + "message": "Kategorije" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanali" + }, + "clipboard": { + "message": "Međuspremnik" + }, + "codecH264": { + "message": "Kodek h.264" + }, + "collapsed": { + "message": "Skupljeno" + }, + "collapseOfSubscriptionSections": { + "message": "Skupljanje pretplatničkih odjeljaka" + }, + "comments": { + "message": "Komentari" + }, + "confirmationBeforeClosing": { + "message": "Potvrda prije zatvaranja" + }, + "cookies": { + "message": "Kolačići" + }, + "cores": { + "message": "Jezgre" + }, + "cropChapterTitles": { + "message": "Izreži naslove poglavlja" + }, + "customCss": { + "message": "Prilagođeni CSS" + }, + "customJs": { + "message": "Prilagođeni JS" + }, + "customMiniPlayer": { + "message": "Prilagođeni Mini-Player" + }, + "openPopupPlayer": { + "message": "Otvorite videozapis / popis za reprodukciju u novom prozoru" + }, + "cyan": { + "message": "Cijan" + }, + "dark": { + "message": "Tamno" + }, + "darkTheme": { + "message": "Tamna tema" + }, + "dateAndTime": { + "message": "Datum & vrijeme" + }, + "dawn": { + "message": "Zora" + }, + "decreasePlaybackSpeed": { + "message": "Smanji brzinu reprodukcije" + }, + "decreaseVolume": { + "message": "Smanji glasnoću" + }, + "deepOrange": { + "message": "Duboko narančasta" + }, + "deepPurple": { + "message": "Duboko ljubičasta" + }, + "defaultChannelTab": { + "message": "Zadana kartica kanala" + }, + "deleteYoutubeCookies": { + "message": "Izbrišite YouTube kolačiće" + }, + "description": { + "message": "Opis" + }, + "desert": { + "message": "Zasluga" + }, + "details": { + "message": "Pojedinosti" + }, + "developerOptions": { + "message": "Opcije za programere" + }, + "device": { + "message": "Uređaj" + }, + "dim": { + "message": "Priguši" + }, + "disabled": { + "message": "Onemogućeno" + }, + "dislike": { + "message": "Ne sviđa mi se" + }, + "donate": { + "message": "Doniraj" + }, + "doNotChange": { + "message": "Nemoj mijenjati" + }, + "draggable": { + "message": "Povuci" + }, + "email": { + "message": "E-mail" + }, + "empty": { + "message": "Prazno" + }, + "enabled": { + "message": "Omogućeno" + }, + "enabledForced": { + "message": "Omogućeno (prisilno)" + }, + "expanded": { + "message": "Prošireno" + }, + "exportSettings": { + "message": "Izvoz postavki" + }, + "extension": { + "message": "Proširenje" + }, + "file": { + "message": "Datoteka" + }, + "filters": { + "message": "Filteri" + }, + "fitToWindow": { + "message": "Prilagodi prozoru" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "footer": { + "message": "Podnožje" + }, + "forcedPlaybackSpeed": { + "message": "Prisiljena brzina reprodukcije" + }, + "forcedTheaterMode": { + "message": "Prisiljen kazališni način" + }, + "forcedVolume": { + "message": "Prisiljena glasnoća" + }, + "foundABug": { + "message": "Pronašli ste grešku?" + }, + "fullWindow": { + "message": "Puni prozor" + }, + "general": { + "message": "Općenito" + }, + "geoPreference": { + "message": "Geografske preferencije" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Idite na okvir za pretraživanje" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Zelena" + }, + "hdThumbnail": { + "message": "HD sličica" + }, + "hdThumbnails": { + "message": "HD sličice" + }, + "header": { + "message": "Zaglavlje" + }, + "hidden": { + "message": "Skriven" + }, + "hiddenOnVideoPage": { + "message": "Skriveno na stranici videozapisa" + }, + "hideAnimatedThumbnails": { + "message": "Sakrij animirane sličice" + }, + "hideAnnotations": { + "message": "Sakrij napomene" + }, + "hideCards": { + "message": "Sakrij kartice" + }, + "hideControls": { + "message": "Sakrij kontrole playera" + }, + "hideDetails": { + "message": "Sakrij detalje" + }, + "hideEndscreen": { + "message": "Sakrij završni zaslon" + }, + "hideFeaturedContent": { + "message": "Sakrij istaknuti sadržaj" + }, + "hideFooter": { + "message": "Sakrij podnožje" + }, + "hideGradientBottom": { + "message": "Sakrij sjenu oko trake playera" + }, + "hidePlaylist": { + "message": "Sakrij popis za reprodukciju" + }, + "hideRightButtons": { + "message": "Sakrij desne gumbe" + }, + "hideScrollForDetails": { + "message": "Sakrij «Pomakni za detalje»" + }, + "hideThumbnailOverlay": { + "message": "Sakrij gumbe na sličicama" + }, + "hideViewsCount": { + "message": "Sakrij broj pregleda" + }, + "history": { + "message": "Povijest" + }, + "home": { + "message": "Početna" + }, + "hover": { + "message": "Pređite mišem preko" + }, + "hoverOnVideoPage": { + "message": "Zadržite pokazivač miša na stranici videozapisa" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Prije koliko je vremena video prenesen" + }, + "icons": { + "message": "Ikone" + }, + "iconsOnly": { + "message": "Samo ikone" + }, + "importSettings": { + "message": "Uvezi postavke" + }, + "improvedtubeIconInBrowser": { + "message": "Ikona ImprovedTube u pregledniku" + }, + "improvedtubeIconOnYoutube": { + "message": "Ikona ImprovedTube na YouTubeu" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube jezik" + }, + "improvedtubeVersion": { + "message": "ImprovedTube verzija" + }, + "improveLogo": { + "message": "Poboljšajte logotip" + }, + "increasePlaybackSpeed": { + "message": "Povećajte brzinu reprodukcije" + }, + "increaseVolume": { + "message": "Povećajte glasnoću" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Predmeti" + }, + "languages": { + "message": "Jezici" + }, + "legacyYoutube": { + "message": "Naslijeđeni YouTube" + }, + "light": { + "message": "Svjetlo" + }, + "lightBlue": { + "message": "Svjetlo plava" + }, + "lightGreen": { + "message": "Svjetlo zelena" + }, + "like": { + "message": "Sviđa mi se" + }, + "likes": { + "message": "Sviđaju mi se" + }, + "lime": { + "message": "Limeta" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Chat uživo" + }, + "liveChatType": { + "message": "Vrsta chata uživo" + }, + "loudnessNormalization": { + "message": "Normalizacija glasnoće" + }, + "markWatchedVideos": { + "message": "Označi pogledane videozapise" + }, + "mixer": { + "message": "Mikser" + }, + "myColors": { + "message": "Moje boje" + }, + "name": { + "message": "Naziv" + }, + "nativeMiniPlayer": { + "message": "Izvorni mini player" + }, + "new": { + "message": "Novo" + }, + "nextVideo": { + "message": "Sljedeći video" + }, + "night": { + "message": "Noć" + }, + "noActiveFeatures": { + "message": "Nema aktivnih značajki" + }, + "none": { + "message": "Nijedna" + }, + "noOpenVideoTabs": { + "message": "Nema otvorenih video kartica" + }, + "normal": { + "message": "Normalno" + }, + "old": { + "message": "Staro" + }, + "onAllVideos": { + "message": "Na svim video zapisima" + }, + "onlyActiveOnYoutube": { + "message": "Aktivno samo na YouTubeu" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Svira samo jedna instanca playera" + }, + "onSubscribedChannels": { + "message": "Na pretplaćenim kanalima" + }, + "orange": { + "message": "Narančasto" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Ostalo" + }, + "permissions": { + "message": "Dopuštenja" + }, + "pictureInPicture": { + "message": "Slika u slici" + }, + "pink": { + "message": "Ružičasto" + }, + "plain": { + "message": "Jednostavno" + }, + "platform": { + "message": "Platforma" + }, + "playbackSpeed": { + "message": "Brzina reprodukcije" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Boja playera" + }, + "playerSize": { + "message": "Veličina playera" + }, + "playlist": { + "message": "Popis za reprodukciju" + }, + "playlists": { + "message": "Popisi za reprodukciju" + }, + "playPause": { + "message": "Reprodukcija / pauza" + }, + "popupPlayer": { + "message": "Player u skočnom prozoru" + }, + "position": { + "message": "Položaj" + }, + "pressAnyKeyOrScroll": { + "message": "Pritisnite bilo koju tipku ili upotrijebite kotačić miša." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Pritisnite bilo koju tipku ili upotrijebite kotačić miša" + }, + "previousVideo": { + "message": "Prethodni videozapis" + }, + "primaryColor": { + "message": "Primarna boja" + }, + "purple": { + "message": "Ljubičasta" + }, + "quality": { + "message": "Kvaliteta" + }, + "ram": { + "message": "Radna memorija" + }, + "rateUs": { + "message": "Ocijenite nas" + }, + "red": { + "message": "Crvena" + }, + "redDislikeButton": { + "message": "Prikaži ne sviđa mi se botun u crvenoj boji" + }, + "relatedVideos": { + "message": "Slični videozapisi" + }, + "removeRelatedSearchResults": { + "message": "Uklonite slične rezultate pretraživanja" + }, + "repeat": { + "message": "Ponovi" + }, + "reset": { + "message": "Resetiraj" + }, + "resetAllSettings": { + "message": "Resetirajte sve postavke" + }, + "resetAllShortcuts": { + "message": "Resetirajte sve prečace" + }, + "reverse": { + "message": "Preokreni" + }, + "rotate": { + "message": "Rotiraj" + }, + "save": { + "message": "Sačuvaj" + }, + "saveAs": { + "message": "Sačuvaj kao" + }, + "schedule": { + "message": "Stavi na raspored" + }, + "screen": { + "message": "Zaslon" + }, + "screenshot": { + "message": "Snimka zaslona" + }, + "search": { + "message": "Pretraži" + }, + "searchBarOnly": { + "message": "Samo traka za pretraživanje" + }, + "seekBackward10Seconds": { + "message": "Traži unatrag 10 sekundi" + }, + "seekForward10Seconds": { + "message": "Traži 10 sekundi prema naprijed" + }, + "settings": { + "message": "Postavke" + }, + "settingsSuccessfullyImported": { + "message": "Postavke su uspješno uvezene" + }, + "shortcuts": { + "message": "Prečaci" + }, + "showCardsOnMouseHover": { + "message": "Pokaži kartice prilikom prelaska miša" + }, + "showChannelVideosCount": { + "message": "Prikaži broj videozapisa na kanalu" + }, + "shuffle": { + "message": "Nasumično" + }, + "sidebar": { + "message": "Bočna traka" + }, + "spacebar": { + "message": "Tipka razmaka" + }, + "squaredUserImages": { + "message": "Korisničke slike u kvadratu" + }, + "static": { + "message": "Statički" + }, + "statsForNerds": { + "message": "Prikaži statistiku za štrebere" + }, + "step": { + "message": "Korak" + }, + "stop": { + "message": "Stani" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stilovi" + }, + "subscriptions": { + "message": "Pretplate" + }, + "subtitles": { + "message": "Titlovi" + }, + "sunset": { + "message": "Zalazak sunca" + }, + "sunsetToSunrise": { + "message": "Od zalaska do izlaska sunca" + }, + "systemPeferenceDark": { + "message": "Postavke sustava: tamno" + }, + "systemPeferenceLight": { + "message": "Postavke sustava: svjetlo" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Boja teksta" + }, + "themes": { + "message": "Teme" + }, + "thisWillRemoveAllCookies": { + "message": "Ovo će ukloniti sve kolačiće." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Ovo će ukloniti sve YouTube kolačiće" + }, + "thisWillResetAllSettings": { + "message": "Ovo će resetirati sve postavke." + }, + "thisWillResetAllShortcuts": { + "message": "Ovo će resetirati sve prečace" + }, + "thumbnails": { + "message": "Sličice" + }, + "timeFrom": { + "message": "Vrijeme od" + }, + "timeTo": { + "message": "Vrijeme do" + }, + "todayAt": { + "message": "Danas u" + }, + "toggleAutoplay": { + "message": "Uključi / isključi automatsku reprodukciju" + }, + "toggleCards": { + "message": "Uključi / isključi kartice" + }, + "toggleControls": { + "message": "Uključi / isključi kontrole playera" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Automatska reprodukcija kratkog filma" + }, + "translations": { + "message": "Prijevodi" + }, + "transparentBackground": { + "message": "Prozirna pozadina" + }, + "trending": { + "message": "U trendu" + }, + "tryToReloadThePage": { + "message": "Pokušajte ponovo učitati stranicu" + }, + "type": { + "message": "Tip" + }, + "upNextAutoplay": { + "message": "Sljedeća automatska reprodukcija" + }, + "use24HourFormat": { + "message": "Koristite 24-satni format" + }, + "version": { + "message": "Verzija" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Opis videozapisa biti će proširen kako bi se dobio naziv kategorije" + }, + "videoFormats": { + "message": "Video formati" + }, + "videos": { + "message": "Videozapisi" + }, + "volume": { + "message": "Glasnoća" + }, + "watchLater": { + "message": "Gledaj kasnije" + }, + "watchTime": { + "message": "Vrijeme gledanja" + }, + "whenTabIsChanged": { + "message": "Kada se kartica promijeni" + }, + "white": { + "message": "Bijela" + }, + "yellow": { + "message": "Žuta" + }, + "youtubeHeaderLeft": { + "message": "YouTube zaglavlje (lijevo)" + }, + "youtubeHeaderRight": { + "message": "YouTube zaglavlje (desno)" + }, + "youtubeHomePage": { + "message": "YouTube početna stranica" + }, + "youtubeLanguage": { + "message": "YouTube jezik" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube ograničava kvalitetu videozapisa na 1080p za h.264 kodek" + } +} From db58f7c0560a59e118c957b196f46719ec9741ad Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 3 May 2021 13:32:39 +0300 Subject: [PATCH 0123/1224] Added some files for Firefox --- background-firefox.js | 352 ++++++++++++++++++++++++++++++++++++++++++ manifest-firefox.json | 82 ++++++++++ 2 files changed, 434 insertions(+) create mode 100644 background-firefox.js create mode 100644 manifest-firefox.json diff --git a/background-firefox.js b/background-firefox.js new file mode 100644 index 000000000..8b4482d6a --- /dev/null +++ b/background-firefox.js @@ -0,0 +1,352 @@ +/*-------------------------------------------------------------- +>>> BACKGROUND +---------------------------------------------------------------- +# Global variables +# Functions +# Context menu items +# Message listener +# Storage change listener +# Tab focus/blur +# Uninstall URL +# Initialization +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# GLOBAL VARIABLES +--------------------------------------------------------------*/ + +var locale_code = 'en', + browser_icon = false; + +/*-------------------------------------------------------------- +# FUNCTIONS +--------------------------------------------------------------*/ + +function isset(variable) { + return !(typeof variable === 'undefined' || variable === null); +} + +function getTranslations(path) { + var xhr = new XMLHttpRequest(); + + xhr.addEventListener('load', function() { + if (chrome && chrome.tabs) { + chrome.tabs.query({}, function(tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + name: 'translation_response', + value: xhr.responseText + }); + } + } + }); + } + + chrome.runtime.sendMessage({ + name: 'translation_response', + value: xhr.responseText + }); + }); + + xhr.addEventListener('error', function() { + getTranslations('_locales/en/messages.json'); + }); + + xhr.open('GET', path, true); + xhr.send(); +} + +function browserActionIcon() { + if (browser_icon === 'always') { + chrome.browserAction.setIcon({ + path: 'assets/icons/32.png' + }); + } else { + chrome.browserAction.setIcon({ + path: 'assets/icons/32g.png' + }); + } +} + + +/*-------------------------------------------------------------- +# CONTEXT MENU ITEMS +--------------------------------------------------------------*/ + +chrome.contextMenus.removeAll(); + +chrome.contextMenus.create({ + id: '1111', + title: 'Donate', + contexts: ['browser_action'] +}); + +chrome.contextMenus.create({ + id: '1112', + title: 'Rate me', + contexts: ['browser_action'] +}); + +chrome.contextMenus.create({ + id: '1113', + title: 'GitHub', + contexts: ['browser_action'] +}); + +chrome.contextMenus.onClicked.addListener(function(event) { + if (event.menuItemId === '1111') { + window.open('https://www.improvedtube.com/donate'); + } else if (event.menuItemId === '1112') { + window.open('https://chrome.google.com/webstore/detail/improvedtube-for-youtube/bnomihfieiccainjcjblhegjgglakjdd'); + } else if (event.menuItemId === '1113') { + window.open('https://github.com/ImprovedTube/ImprovedTube'); + } +}); + + +/*-------------------------------------------------------------- +# MESSAGE LISTENER +--------------------------------------------------------------*/ + +chrome.runtime.onMessage.addListener(function(request, sender) { + if (isset(request) && typeof request === 'object') { + if (request.enabled === true && browser_icon !== 'always') { + chrome.browserAction.setIcon({ + path: 'assets/icons/32.png', + tabId: sender.tab.id + }); + } + + if (request.name === 'translation_request') { + getTranslations(request.path); + } + + if (request.name === 'improvedtube-only-one-player') { + chrome.tabs.query({}, function(tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url') && sender.tab.id !== tabs[i].id) { + chrome.tabs.sendMessage(tabs[i].id, { + action: 'improvedtube-pause' + }); + } + } + }); + } + + if (request.name === 'improvedtube-analyzer') { + var data = request.value, + date = new Date().toDateString(), + hours = new Date().getHours() + ':00'; + + chrome.storage.local.get(function(items) { + if (!items.analyzer) { + items.analyzer = {}; + } + + if (!items.analyzer[date]) { + items.analyzer[date] = {}; + } + + if (!items.analyzer[date][hours]) { + items.analyzer[date][hours] = {}; + } + + if (!items.analyzer[date][hours][data]) { + items.analyzer[date][hours][data] = 0; + } + + items.analyzer[date][hours][data]++; + + chrome.storage.local.set({ + analyzer: items.analyzer + }); + }); + } + + if (request.name === 'improvedtube-blacklist') { + chrome.storage.local.get(function(items) { + if (!items.blacklist || typeof items.blacklist !== 'object') { + items.blacklist = {}; + } + + if (request.data.type === 'channel') { + if (!items.blacklist.channels) { + items.blacklist.channels = {}; + } + + items.blacklist.channels[request.data.id] = { + title: request.data.title, + preview: request.data.preview + }; + } + + if (request.data.type === 'video') { + if (!items.blacklist.videos) { + items.blacklist.videos = {}; + } + + items.blacklist.videos[request.data.id] = { + title: request.data.title + }; + } + + chrome.storage.local.set({ + blacklist: items.blacklist + }); + }); + } + + if (request.name === 'improvedtube-watched') { + chrome.storage.local.get(function(items) { + if (!items.watched || typeof items.watched !== 'object') { + items.watched = {}; + } + + if (request.data.action === 'set') { + items.watched[request.data.id] = { + title: request.data.title + }; + } + + if (request.data.action === 'remove') { + delete items.watched[request.data.id]; + } + + chrome.storage.local.set({ + watched: items.watched + }); + }); + } + + if (request.name === 'download') { + chrome.permissions.request({ + permissions: ['downloads'], + origins: ['https://www.youtube.com/*'] + }, function(granted) { + if (granted) { + try { + var blob = new Blob([JSON.stringify(request.value)], { + type: 'application/json;charset=utf-8' + }); + + chrome.downloads.download({ + url: URL.createObjectURL(blob), + filename: request.filename, + saveAs: true + }); + } catch (err) { + chrome.runtime.sendMessage({ + name: 'dialog-error', + value: err + }); + } + } else { + chrome.runtime.sendMessage({ + name: 'dialog-error', + value: 'permissionIsNotGranted' + }); + } + }); + } + + if (request.name === 'improvedtube-play') { + chrome.tabs.query({}, function(tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + name: 'improvedtube-play', + id: request.id + }); + } + } + }); + } + + if (isset(request.export)) { + chrome.storage.local.get(function(data) { + chrome.permissions.request({ + permissions: ['downloads'], + origins: ['https://www.youtube.com/*'] + }, function(granted) { + if (granted) { + var blob = new Blob([JSON.stringify(data)], { + type: 'application/octet-stream' + }), + date = new Date(); + + chrome.downloads.download({ + url: URL.createObjectURL(blob), + filename: 'improvedtube_' + (date.getMonth() + 1) + '_' + date.getDate() + '_' + date.getFullYear() + '.txt', + saveAs: true + }); + } + }); + }); + } + } +}); + + +/*-------------------------------------------------------------- +# STORAGE CHANGE LISTENER +--------------------------------------------------------------*/ + +chrome.storage.onChanged.addListener(function(changes) { + if (isset(changes.improvedtube_language)) { + locale_code = changes.improvedtube_language.newValue; + } + + if (isset(changes.improvedtube_browser_icon)) { + browser_icon = changes.improvedtube_browser_icon.newValue; + } + + browserActionIcon(); +}); + + +/*-------------------------------------------------------------- +# TAB FOCUS/BLUR +--------------------------------------------------------------*/ + +chrome.tabs.onActivated.addListener(function(activeInfo) { + chrome.tabs.query({}, function(tabs) { + chrome.tabs.sendMessage(activeInfo.tabId, { + action: 'focus' + }); + + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].id !== activeInfo.tabId) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + action: 'blur' + }); + } + } + } + }); +}); + + +/*-------------------------------------------------------------- +# UNINSTALL URL +--------------------------------------------------------------*/ + +chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); + + +/*-------------------------------------------------------------- +# INITIALIZATION +--------------------------------------------------------------*/ + +chrome.storage.local.get(function(items) { + if (isset(items.improvedtube_language)) { + locale_code = items.improvedtube_language; + } + + if (isset(items.improvedtube_browser_icon)) { + browser_icon = items.improvedtube_browser_icon; + } + + browserActionIcon(); +}); \ No newline at end of file diff --git a/manifest-firefox.json b/manifest-firefox.json new file mode 100644 index 000000000..132b989c2 --- /dev/null +++ b/manifest-firefox.json @@ -0,0 +1,82 @@ +{ + "manifest_version": 2, + "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", + "short_name": "ImprovedTube", + "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", + "version": "3.232", + "default_locale": "en", + "icons": { + "128": "assets/icons/128.png", + "16": "assets/icons/16.png", + "32": "assets/icons/32.png", + "48": "assets/icons/48.png" + }, + "background": { + "persistent": false, + "scripts": [ + "background.js" + ] + }, + "browser_action": { + "default_icon": { + "128": "assets/icons/128g.png", + "16": "assets/icons/16g.png", + "32": "assets/icons/32g.png", + "48": "assets/icons/48g.png" + }, + "default_popup": "index.html" + }, + "options_page": "index.html", + "content_scripts": [{ + "all_frames": true, + "css": [ + "content-styles.css" + ], + "exclude_matches": [ + "https://www.youtube.com/improvedtube", + "https://www.youtube.com/tv*", + "https://www.youtube.com/audiolibrary/*", + "http://studio.youtube.com/*" + ], + "js": [ + "youtube-scripts.js", + "content-scripts.js" + ], + "matches": [ + "https://*.youtube.com/*" + ], + "run_at": "document_start" + }, { + "all_frames": true, + "css": [ + "satus.css", + "popup.css" + ], + "js": [ + "satus.js", + "popup.js" + ], + "matches": [ + "https://www.youtube.com/improvedtube" + ], + "run_at": "document_end" + }, { + "all_frames": true, + "js": [ + "page.js" + ], + "matches": [ + "https://www.youtube.com/improvedtube" + ], + "run_at": "document_start" + }], + "offline_enabled": true, + "permissions": [ + "https://*.youtube.com/*", + "contextMenus", + "storage" + ], + "optional_permissions": [ + "downloads" + ] +} From 73a80864e2f137966a11e8cb28d498c0f027540f Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 3 May 2021 17:32:23 +0300 Subject: [PATCH 0124/1224] Restored locale.py --- locale.py | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 locale.py diff --git a/locale.py b/locale.py new file mode 100644 index 000000000..cae0700ff --- /dev/null +++ b/locale.py @@ -0,0 +1,71 @@ +# TODO: reduce script length + +import json +import os +import pathlib +import re + +def lowerCamelCase(string): + string = re.sub(r"(-|_)+", " ", string).title().replace(" ", "") + + return string[0].lower() + string[1:] + +def getListOfFiles(dirName): + allFiles = list() + + for entry in os.listdir(dirName): + fullPath = os.path.join(dirName, entry) + + if not os.path.isdir(fullPath): + allFiles.append(fullPath) + + for entry in os.listdir(dirName): + fullPath = os.path.join(dirName, entry) + + if os.path.isdir(fullPath): + allFiles = allFiles + getListOfFiles(fullPath) + + return allFiles + +def addItem(allFiles): + message = input("Enter your message: ") + + for keyFile in allFiles: + with open(keyFile, "r+") as json_file: + data = json.load(json_file) + + data[lowerCamelCase(message)] = { + "message": message + } + + json_file.seek(0) + json.dump(data, json_file, indent=4) + json_file.truncate() + +def removeItem(allFiles): + key = input("Enter your key (lowerCamelCase): ") + + for keyFile in allFiles: + with open(keyFile, "r+") as json_file: + data = json.load(json_file) + + if data[key]: + del data[key] + + json_file.seek(0) + json.dump(data, json_file, indent=4) + json_file.truncate() + +allFiles = getListOfFiles("_locales/") + +operation = input("""-------------------------------- +Add item: 1 +Remove item: 2 +-------------------------------- + +Enter number: """) + +if operation == "1": + addItem(allFiles) +elif operation == "2" : + removeItem(allFiles) From 57d2acd9c41708774298cdc87c3f3cc2909c5a47 Mon Sep 17 00:00:00 2001 From: Schwi <39186981+cyb233@users.noreply.github.com> Date: Mon, 3 May 2021 22:57:12 +0800 Subject: [PATCH 0125/1224] Update messages.json --- _locales/zh_CN/messages.json | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index f5c7a0327..9c088d395 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -179,6 +179,9 @@ "customMiniPlayer": { "message": "自定义迷你播放器" }, + "openPopupPlayer": { + "message": "在新窗口打开视频/播放列表" + }, "cyan": { "message": "青色" }, @@ -302,6 +305,9 @@ "general": { "message": "一般设置" }, + "geoPreference": { + "message": "Geo Preference" + }, "github": { "message": "GitHub" }, @@ -338,6 +344,9 @@ "hideCards": { "message": "隐藏信息卡片" }, + "hideControls": { + "message": "隐藏播放控制器" + }, "hideDetails": { "message": "隐藏详细信息" }, @@ -362,8 +371,11 @@ "hideScrollForDetails": { "message": "隐藏 «滚动至详细信息»" }, + "hideThumbnailOverlay": { + "message": "隐藏缩略图上的按钮" + }, "hideViewsCount": { - "message": "隐藏播放量" + "message": "隐藏观看量" }, "history": { "message": "历史记录" @@ -732,10 +744,10 @@ "message": "截止今天" }, "toggleCards": { - "message": "Toggle cards" + "message": "切换卡片" }, "topChat": { - "message": "Top chat" + "message": "热门聊天" }, "trailerAutoplay": { "message": "自动播放预告片" @@ -774,7 +786,7 @@ "message": "视频" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" + "message": "扩展视频简介到分类" }, "videoFormats": { "message": "视频格式" From 364dadd02368286a1cafb370c070893024d36563 Mon Sep 17 00:00:00 2001 From: Still Hsu Date: Tue, 4 May 2021 23:04:25 +0800 Subject: [PATCH 0126/1224] Update zh-tw localization Signed-off-by: Still Hsu --- _locales/zh_TW/messages.json | 53 +++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index f1a795a8a..63d998d33 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -39,7 +39,7 @@ "message": "允許 60fps" }, "forceSDR": { - "message": "Force SDR" + "message": "強制使用標準動態範圍 (SDR)" }, "alwaysActive": { "message": "始終有效" @@ -51,7 +51,7 @@ "message": "琥珀色" }, "analyzer": { - "message": "分析儀" + "message": "觀看紀錄" }, "appearance": { "message": "外貌" @@ -87,7 +87,7 @@ "message": "自動播放" }, "backupAndReset": { - "message": "備份&重置" + "message": "備份 & 重置" }, "baseOnSystemColorScheme": { "message": "使用系統配色方案" @@ -144,10 +144,10 @@ "message": "頻道" }, "clipboard": { - "message": "剪贴板" + "message": "剪貼簿" }, "codecH264": { - "message": "影片編解碼器 h.264" + "message": "使用 H.264 解碼" }, "collapsed": { "message": "簡縮" @@ -338,6 +338,9 @@ "hideCards": { "message": "隱藏資訊卡" }, + "hideControls": { + "message": "隱藏播放器控制" + }, "hideDetails": { "message": "隱藏細節" }, @@ -362,6 +365,9 @@ "hideScrollForDetails": { "message": "隱藏「向下捲動即可查看詳情」" }, + "hideThumbnailOverlay": { + "message": "隱藏縮圖上的按鈕" + }, "hideViewsCount": { "message": "隱藏觀看次數" }, @@ -378,7 +384,7 @@ "message": "於影片頁面滑鼠暫留時顯示" }, "howLongAgoTheVideoWasUploaded": { - "message": "影片上傳了多久" + "message": "顯示影片上傳時間" }, "icons": { "message": "圖標" @@ -390,10 +396,10 @@ "message": "導入設定" }, "improvedtubeIconInBrowser": { - "message": "ImprovedTube icon in Browser" + "message": "於瀏覽器中顯示 ImprovedTube 圖示" }, "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icon on YouTube" + "message": "於 YouTube 中顯示 ImprovedTube 圖示" }, "improvedtubeLanguage": { "message": "ImprovedTube 語言" @@ -405,7 +411,7 @@ "message": "改進 YouTube 圖示" }, "increasePlaybackSpeed": { - "message": "提高播放速度" + "message": "加快播放速度" }, "increaseVolume": { "message": "增加音量" @@ -495,7 +501,7 @@ "message": "於所有影片中" }, "onlyActiveOnYoutube": { - "message": "僅在YouTube上有效" + "message": "僅在 YouTube 上有效" }, "onlyOnePlayerInstancePlaying": { "message": "同時間僅限播放單一影片" @@ -507,7 +513,7 @@ "message": "橘色" }, "os": { - "message": "操作系統" + "message": "作業系統" }, "other": { "message": "其他" @@ -525,7 +531,7 @@ "message": "樸素" }, "platform": { - "message": "Platform" + "message": "平台" }, "playbackSpeed": { "message": "播放速度" @@ -564,7 +570,7 @@ "message": "回到之前的影片" }, "primaryColor": { - "message": "Primary color" + "message": "主要顏色" }, "purple": { "message": "紫色" @@ -711,13 +717,13 @@ "message": "這將刪除所有的 cookies。" }, "thisWillRemoveAllYouTubeCookies": { - "message": "這會刪除所有 YouTube Cookies。" + "message": "這將刪除所有 YouTube Cookies。" }, "thisWillResetAllSettings": { - "message": "這會重置所有設定。" + "message": "這將重置所有設定。" }, "thisWillResetAllShortcuts": { - "message": "這會重置所有快捷鍵。" + "message": "這將重置所有快捷鍵。" }, "thumbnails": { "message": "縮略圖" @@ -732,7 +738,10 @@ "message": "自今日" }, "toggleCards": { - "message": "Toggle cards" + "message": "啟用" + }, + "toggleControls": { + "message": "開關播放器控制" }, "topChat": { "message": "Top chat" @@ -768,7 +777,7 @@ "message": "影片" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" + "message": "影片敘述將自動展開以顯示影片分類名稱" }, "videoFormats": { "message": "影片格式" @@ -786,7 +795,7 @@ "message": "已觀看時間" }, "whenTabIsChanged": { - "message": "When tab is changed" + "message": "當分頁改變時" }, "white": { "message": "白色" @@ -801,12 +810,12 @@ "message": "YouTube 標頭 (右)" }, "youtubeHomePage": { - "message": "預設的YouTube主頁" + "message": "預設的 YouTube 主頁" }, "youtubeLanguage": { "message": "YouTube 語言" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "使用 H.264 編碼時,YouTube 會將畫質限定為 1080p 內。" + "message": "使用 H.264 編碼時,YouTube 會將畫質限制為 1080p 內。" } -} +} \ No newline at end of file From 349649668bd9a4cd4c77d43bc7dc12364c0f8790 Mon Sep 17 00:00:00 2001 From: Still Hsu Date: Tue, 4 May 2021 23:08:54 +0800 Subject: [PATCH 0127/1224] Fix typo Signed-off-by: Still Hsu --- _locales/zh_TW/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 63d998d33..be07b28b0 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -738,7 +738,7 @@ "message": "自今日" }, "toggleCards": { - "message": "啟用" + "message": "啟用結束畫面" }, "toggleControls": { "message": "開關播放器控制" From 3ce43dfeb7fd366a9f2a336ded58ee88219b356e Mon Sep 17 00:00:00 2001 From: Still Hsu Date: Tue, 4 May 2021 23:11:31 +0800 Subject: [PATCH 0128/1224] Add missing openPopupPlayer Signed-off-by: Still Hsu --- _locales/zh_TW/messages.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index be07b28b0..53382d1d3 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -509,6 +509,9 @@ "onSubscribedChannels": { "message": "於已訂閱的頻道中" }, + "openPopupPlayer": { + "message": "開啟影片或播放清單於新視窗中" + }, "orange": { "message": "橘色" }, From 37c5c022165641c32a653f2858c55ee374fd55e4 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 4 May 2021 23:56:04 +0200 Subject: [PATCH 0129/1224] Update manifest.json --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index ed861b609..8c9eaf54c 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", - "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", + "description": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist", "version": "3.232", "default_locale": "en", "icons": { From 8fafc96dc697533500519e4c92044e4da69c538a Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 8 May 2021 12:52:02 +0300 Subject: [PATCH 0130/1224] Search and other changes --- popup.css | 142 ++++++++++++------------ popup.js | 321 +++++++++++++++++++++++++++++++++--------------------- satus.css | 5 +- satus.js | 222 ++++++++++++++++++++----------------- 4 files changed, 393 insertions(+), 297 deletions(-) diff --git a/popup.css b/popup.css index 5dd58bdbf..a53ea2085 100644 --- a/popup.css +++ b/popup.css @@ -16,6 +16,7 @@ # Black --------------------------------------------------------------*/ + /*-------------------------------------------------------------- # BODY --------------------------------------------------------------*/ @@ -32,6 +33,7 @@ body { # HEADER --------------------------------------------------------------*/ + /*-------------------------------------------------------------- # BUTTONS --------------------------------------------------------------*/ @@ -107,76 +109,83 @@ body[data-appearance='home'] .satus-text--title { # SEARCH --------------------------------------------------------------*/ -.satus-dialog--search { - pointer-events: none; +.satus-button--close-search { + position: absolute; + display: none; + min-width: 36px; + padding: 8px !important; +} + +.satus-button--close-search::before { + top: 15%; + left: 15%; + width: 70%; + height: 70%; } -.satus-dialog--search .satus-dialog__scrim { +.search-field { display: none; + height: 36px; + background: var(--satus-theme-main); + box-shadow: 0 0 1px 1px rgba(0, 0, 0, .1); } -.satus-dialog--search .satus-dialog__surface { - position: fixed; - top: 11px; - right: 8px; - visibility: unset; - width: calc(100% - 62px); - min-width: unset; - max-width: unset; - height: 34px; - padding: 0; - transform: unset; - animation: unset; - pointer-events: all; - opacity: unset; - border: 1px solid rgba(0, 0, 0, .05); - box-shadow: unset; +body[data-search='true'] .search-field, +body[data-search='true'] .satus-button--close-search { + display: block; } -.satus-dialog--search .satus-dialog__surface .satus-text-field { - height: 34px; +body[data-search='true'] .satus-section--align-start { + flex: 0; } -.satus-dialog--search .satus-dialog__surface .satus-button { +body[data-search='true'] .search-button, +body[data-search='true'] .vert-button, +body[data-search='true'] .satus-text--title, +body[data-search='true'] .satus-button--back { + display: none; +} + +.search-results { + top: 48px; + overflow: hidden; + height: calc(100vh - 48px); +} + +.search-results .satus-dialog__scrim { + backdrop-filter: none; +} + +.search-results .satus-dialog__surface { position: absolute; - top: 3px; - right: 3px; + top: 0; overflow: hidden; - width: 32px; - height: 32px; - border-radius: 50%; + padding: 0; + transform-origin: top; + border-top-left-radius: 0; + border-top-right-radius: 0; + background-color: var(--satus-theme-main); + box-shadow: 0 2px 4px 2px rgba(0, 0, 0, .2); } -.satus-dialog--search .satus-dialog__surface .satus-button svg { - fill: none; - stroke: currentColor; +.search-results .satus-scrollbar__content { + display: flex; + flex-direction: column; } -body[data-appearance='search'] .satus-switch--red, -body[data-appearance='search'] .satus-switch--dark, -body[data-appearance='search'] .satus-switch--night, -body[data-appearance='search'] .satus-switch--dawn, -body[data-appearance='search'] .satus-switch--sunset, -body[data-appearance='search'] .satus-switch--desert, -body[data-appearance='search'] .satus-switch--plain, -body[data-appearance='search'] .satus-switch--black { - width: calc(100% - 16px); - margin: 4px 8px; - border-radius: 6px; +.search-results .satus-section { + flex-direction: column; + background: var(--satus-theme-main); } -body[data-appearance='search'] .satus-switch--red .satus-switch__label, -body[data-appearance='search'] .satus-switch--dark .satus-switch__label, -body[data-appearance='search'] .satus-switch--night .satus-switch__label, -body[data-appearance='search'] .satus-switch--dawn .satus-switch__label, -body[data-appearance='search'] .satus-switch--sunset .satus-switch__label, -body[data-appearance='search'] .satus-switch--black .satus-switch__label { - color: #fff; +.search-results .satus-section>* { + width: 100%; + height: 40px; + padding: 0 16px; } -body[data-appearance='search'] .satus-switch--plain .satus-switch__label, -body[data-appearance='search'] .satus-switch--desert .satus-switch__label { - color: #222; +.search-results .satus-select__label { + text-align: left; } @@ -318,7 +327,7 @@ html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance=' html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder { position: relative; flex-direction: column; - width: 64px; + width: 70px; height: 86px; margin: 0 18px 14px; padding: 0; @@ -1077,43 +1086,37 @@ html[it-it-analyzer='false'] .satus-folder--analyzer { # INFO --------------------------------------------------------------*/ -.satus-section--info -{ +.satus-section--info { position: absolute; z-index: 99; bottom: 16px; - left: 32px; - + left: 16px; display: flex; - - width: calc(100% - 64px) !important; - + width: calc(100% - 32px) !important; justify-content: space-between; } -.satus-section--info .satus-button -{ +.satus-section--info .satus-button { font-weight: 700; overflow: hidden; width: auto; height: 28px; + padding: 0 10px; + opacity: .5; + color: #fff; border-radius: 6px; background: var(--satus-theme-primary); - color: #fff; - opacity: 0.5; - padding: 0 10px; } .satus-section--info .satus-button:hover { - opacity: 1 + opacity: 1; } -html[it-improvedtube-home='list'] .satus-section--info -{ +html[it-improvedtube-home='list'] .satus-section--info { position: static !important; - background: transparent !important; - border: none !important; display: flex !important; + border: none !important; + background: transparent !important; } @@ -1166,6 +1169,7 @@ html[it-improvedtube-home='list'] .satus-section--info # THEMES --------------------------------------------------------------*/ + /*-------------------------------------------------------------- # DEFAULT --------------------------------------------------------------*/ diff --git a/popup.js b/popup.js index 138f14762..32877070b 100644 --- a/popup.js +++ b/popup.js @@ -15,7 +15,6 @@ # Shortcuts # Blacklist # Analyzer - # Firefox button # Export data # Import data # Initialization @@ -37,7 +36,7 @@ var Menu = { type: 'button', class: 'satus-button--back', before: '', - onclick: function() { + onclick: function () { if (document.querySelector('.satus-dialog__scrim')) { document.querySelector('.satus-dialog__scrim').click(); } else { @@ -58,60 +57,111 @@ var Menu = { type: 'section', class: 'satus-section--align-end', - button_search: { - type: 'button', - icon: '', - onclick: function() { - document.querySelector('.satus-main').open({ - appearanceId: 'search' - }, function() { - satus.render({ - type: 'dialog', - class: 'satus-dialog--search', - onclose: function() { - document.querySelector('.satus-main').back(); - }, + search_field: { + type: 'text-field', + class: 'search-field', + placeholder: 'search', + autofocus: true, + oninput: function (event) { + var value = this.value.trim(); + + if (value.length > 0) { + satus.search(value, Menu, function (results) { + var parent = document.querySelector('.search-results .satus-scrollbar__content'), + skeleton = { + type: 'dialog', + class: 'search-results' + }; + + for (var key in results) { + results[key].type = 'section'; + + skeleton[key] = results[key]; + } - input: { - type: 'text-field', - placeholder: 'search', - oninput: function() { - if (this.value.length > 0) { - satus.search(this.value, Menu, function(results) { - var sorted_results = []; - - document.querySelector('.satus-main__container').innerHTML = ''; - - for (var key in results) { - results[key].type = 'section'; - - sorted_results.push({ - type: 'text', - label: key, - class: 'satus-section--label' - }); - sorted_results.push(results[key]); - } + if (Object.keys(results).length === 0) { + if (parent) { + document.querySelector('.search-results').remove(); + } + } else { + if (parent) { + while (parent.children[0]) { + parent.children[0].remove(); + } + + satus.render(results, parent); + } else { + satus.render(skeleton); - console.log(results); + document.querySelector('.search-results .satus-dialog__scrim').addEventListener('click', function () { + document.body.dataset.search = false; + }); + } + } + }, true); + } else { + var results = document.querySelector('.search-results'); - var scroll = satus.components.scrollbar(document.querySelector('.satus-main__container')); + if (results) { + results.close(); + } + } + }, + onblur: function () { + if (this.value.length === 0) { + document.body.dataset.search = false; + } + }, + onkeydown: function (event) { + var value = this.value, + key = event.key; - satus.render(sorted_results, scroll); - }, true); - } else { - document.querySelector('.satus-main__container').innerHTML = ''; + setTimeout(function () { + if (value.length === 0 && key === 'Backspace') { + var results = document.querySelector('.search-results'); - satus.render({}, document.querySelector('.satus-main__container')); - } - } + if (results) { + results.close(); } - }); + + document.body.dataset.search = false; + } + }); + } + }, + search_close: { + type: 'button', + class: 'satus-button--close-search', + before: '', + onclick: function () { + var results = document.querySelector('.search-results'); + + if (results) { + results.close(); + } + + document.body.dataset.search = false; + } + }, + button_search: { + type: 'button', + class: 'search-button', + icon: '', + onclick: function () { + var search_field = document.querySelector('.search-field'); + + search_field.value = ''; + + document.body.dataset.search = true; + + setTimeout(function () { + search_field.focus(); }); } }, button_vert: { type: 'button', + class: 'vert-button', icon: '', onClickRender: { type: 'dialog', @@ -122,6 +172,28 @@ var Menu = { } }; +window.addEventListener('keypress', function (event) { + if ( + document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || + event.target.isContentEditable || + document.querySelector('.satus-dialog') + ) { + return false; + } + + if (event.key === 'f' && document.body.dataset.search === 'false') { + var search_field = document.querySelector('.search-field'); + + search_field.value = ''; + + document.body.dataset.search = true; + + setTimeout(function () { + search_field.focus(); + }); + } +}); + /*-------------------------------------------------------------- # ACTIVE FEATURES @@ -131,13 +203,13 @@ Menu.header.section_end.button_vert.onClickRender.active_features = { type: 'folder', before: '', label: 'activeFeatures', - onclick: function() { + onclick: function () { document.querySelector('.satus-dialog__scrim').click(); }, section: { type: 'section', - onrender: function() { + onrender: function () { var component = this, new_menu = {}, storage = satus.storage; @@ -172,7 +244,7 @@ Menu.header.section_end.button_vert.onClickRender.active_features = { search(key, Menu) } - setTimeout(function() { + setTimeout(function () { if (Object.keys(new_menu).length > 0) { satus.render(new_menu, component); } else { @@ -198,7 +270,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { before: '', label: 'settings', parent: '.satus-main__container', - onclick: function() { + onclick: function () { document.querySelector('.satus-dialog__scrim').click(); }, @@ -220,10 +292,10 @@ Menu.header.section_end.button_vert.onClickRender.settings = { type: 'section', custom_js: { type: 'text-field', - onrender: function() { + onrender: function () { this.value = satus.storage.get('custom_js') || ''; }, - oninput: function() { + oninput: function () { satus.storage.set('custom_js', this.value); } } @@ -239,10 +311,10 @@ Menu.header.section_end.button_vert.onClickRender.settings = { type: 'section', custom_css: { type: 'text-field', - onrender: function() { + onrender: function () { this.value = satus.storage.get('custom_css') || ''; }, - oninput: function() { + oninput: function () { satus.storage.set('custom_css', this.value); } } @@ -420,10 +492,10 @@ Menu.header.section_end.button_vert.onClickRender.settings = { language: { label: 'improvedtubeLanguage', type: 'select', - onchange: function(name, value) { + onchange: function (name, value) { satus.memory.set('locale', {}); - satus.locale(function() { + satus.locale(function () { document.querySelector('.satus-main__container').innerHTML = ''; document.querySelector('.satus-header__title').innerText = satus.locale.getMessage('languages'); @@ -758,7 +830,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { type: 'button', label: 'importSettings', - onclick: function() { + onclick: function () { if (location.href.indexOf('/options.html') !== -1) { importData(); } else { @@ -772,7 +844,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { type: 'button', label: 'exportSettings', - onclick: function() { + onclick: function () { if (location.href.indexOf('/options.html') !== -1) { exportData(); } else { @@ -786,7 +858,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { type: 'button', label: 'resetAllSettings', - onclick: function() { + onclick: function () { satus.render({ type: 'dialog', class: 'satus-dialog--confirm', @@ -806,7 +878,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { cancel: { type: 'button', label: 'cancel', - onclick: function() { + onclick: function () { var scrim = document.querySelectorAll('.satus-dialog__scrim'); scrim[scrim.length - 1].click(); @@ -815,7 +887,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { accept: { type: 'button', label: 'accept', - onclick: function() { + onclick: function () { var scrim = document.querySelectorAll('.satus-dialog__scrim'); satus.storage.clear(); @@ -833,7 +905,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { type: 'button', label: 'deleteYoutubeCookies', - onclick: function() { + onclick: function () { satus.render({ type: 'dialog', class: 'satus-dialog--confirm', @@ -857,7 +929,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { cancel: { type: 'button', label: 'cancel', - onclick: function() { + onclick: function () { var scrim = document.querySelectorAll('.satus-dialog__scrim'); scrim[scrim.length - 1].click(); @@ -866,10 +938,10 @@ Menu.header.section_end.button_vert.onClickRender.settings = { accept: { type: 'button', label: 'accept', - onclick: function() { + onclick: function () { var scrim = document.querySelectorAll('.satus-dialog__scrim'); - chrome.tabs.query({}, function(tabs) { + chrome.tabs.query({}, function (tabs) { for (var i = 0, l = tabs.length; i < l; i++) { if (tabs[i].hasOwnProperty('url')) { chrome.tabs.sendMessage(tabs[i].id, { @@ -912,7 +984,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { section: { type: 'section', - onrender: function() { + onrender: function () { var component = this, manifest = chrome.runtime.getManifest(), user = satus.modules.user(), @@ -1026,7 +1098,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { } }; - setTimeout(function() { + setTimeout(function () { satus.render(object, component.parentNode); component.remove(); @@ -1048,11 +1120,11 @@ Menu.header.section_end.button_vert.onClickRender.mixer = { label: 'mixer', class: 'satus-folder--mixer', appearanceId: 'mixer', - onopen: function() { + onopen: function () { var self = this; if (chrome && chrome.tabs) { - chrome.tabs.query({}, function(tabs) { + chrome.tabs.query({}, function (tabs) { var mixer = {}; for (var i = 0, l = tabs.length; i < l; i++) { @@ -1081,12 +1153,12 @@ Menu.header.section_end.button_vert.onClickRender.mixer = { element: 'audio' }, max: 100, - onrender: function() { + onrender: function () { var self = this; chrome.tabs.sendMessage(Number(this.dataset.id), { name: 'request_volume' - }, function(response) { + }, function (response) { if (response) { document.querySelector('div[data-element="audio"][data-id="' + Number(self.dataset.id) + '"]').change(response.value); } else { @@ -1094,7 +1166,7 @@ Menu.header.section_end.button_vert.onClickRender.mixer = { } }); }, - onchange: function(value) { + onchange: function (value) { chrome.tabs.sendMessage(Number(this.dataset.id), { name: 'change_volume', volume: value @@ -1111,12 +1183,12 @@ Menu.header.section_end.button_vert.onClickRender.mixer = { min: .1, max: 8, step: .05, - onrender: function() { + onrender: function () { var self = this; chrome.tabs.sendMessage(Number(this.dataset.id), { name: 'request_playback_speed' - }, function(response) { + }, function (response) { if (response) { document.querySelector('div[data-element="playback_speed"][data-id="' + Number(self.dataset.id) + '"]').change(Number(response.value)); } else { @@ -1124,7 +1196,7 @@ Menu.header.section_end.button_vert.onClickRender.mixer = { } }); }, - onchange: function(value) { + onchange: function (value) { chrome.tabs.sendMessage(Number(this.dataset.id), { name: 'change_playback_speed', playback_speed: value @@ -1166,10 +1238,16 @@ Menu.main = { type: 'main', appearanceId: 'home', on: { - change: function(container) { + change: function (container) { var item = this.history[this.history.length - 1], id = item.appearanceId; + if (!satus.isset(document.body.dataset.search)) { + document.body.dataset.search = true; + } else { + document.body.dataset.search = false; + } + document.body.dataset.appearance = id; container.dataset.appearance = id; @@ -1189,7 +1267,7 @@ Menu.main = { type: 'button', label: 'Email', title: 'bugs@improvedtube.com', - onclick: function() { + onclick: function () { window.open('mailto:bugs@improvedtube.com', '_blank'); } }, @@ -1197,7 +1275,7 @@ Menu.main = { type: 'button', label: 'GitHub', title: '/ImprovedTube/ImprovedTube', - onclick: function() { + onclick: function () { window.open('https://github.com/ImprovedTube/ImprovedTube/', '_blank'); } }, @@ -1205,9 +1283,16 @@ Menu.main = { type: 'button', label: 'Website', title: 'improvedtube.com', - onclick: function() { + onclick: function () { window.open('http://www.improvedtube.com/', '_blank'); } + }, + firefox: { + type: 'button', + label: 'Firefox', + onclick: function () { + window.open('https://addons.mozilla.org/en-US/firefox/addon/youtube-addon/', '_blank'); + } } } }; @@ -1265,7 +1350,7 @@ Menu.main.section.general = { collapse_of_subscription_sections: { type: 'switch', label: 'collapseOfSubscriptionSections' - }, + }, remove_related_search_results: { type: 'switch', label: 'removeRelatedSearchResults' @@ -1607,7 +1692,7 @@ Menu.main.section.appearance = { section: { type: 'section', - + related_videos: { type: 'select', label: 'relatedVideos', @@ -1623,8 +1708,8 @@ Menu.main.section.appearance = { }], tags: 'right' }, - - livechat: { + + livechat: { type: 'select', label: 'liveChat', @@ -2096,10 +2181,10 @@ Menu.main.section.player = { type: 'switch', label: 'forcedPlaybackSpeed', id: 'forced-playback-speed', - onrender: function() { + onrender: function () { this.dataset.value = satus.storage.player_forced_playback_speed; }, - onchange: function() { + onchange: function () { this.dataset.value = satus.storage.player_forced_playback_speed; } }, @@ -2184,7 +2269,7 @@ Menu.main.section.player = { type: 'switch', label: 'codecH264', - onclick: function() { + onclick: function () { console.log(this.dataset.value); if (this.querySelector('input').checked === true) { satus.render({ @@ -2209,7 +2294,7 @@ Menu.main.section.player = { cancel: { type: 'button', label: 'cancel', - onclick: function() { + onclick: function () { let scrim = document.querySelectorAll('.satus-dialog__scrim'); scrim[scrim.length - 1].click(); @@ -2218,7 +2303,7 @@ Menu.main.section.player = { ok: { type: 'button', label: 'OK', - onclick: function() { + onclick: function () { let scrim = document.querySelectorAll('.satus-dialog__scrim'); scrim[scrim.length - 1].click(); @@ -2255,10 +2340,10 @@ Menu.main.section.player = { type: 'switch', label: 'forcedVolume', id: 'forced-volume', - onrender: function() { + onrender: function () { this.dataset.value = satus.storage.player_forced_volume; }, - onchange: function() { + onchange: function () { this.dataset.value = satus.storage.player_forced_volume; } }, @@ -2536,7 +2621,7 @@ Menu.main.section.shortcuts = { key: 'P', shiftKey: true } - }, + }, shortcut_play_pause: { type: 'shortcut', label: 'playPause', @@ -2702,7 +2787,7 @@ Menu.main.section.blacklist = { channels: { type: 'folder', label: 'channels', - onopen: function() { + onopen: function () { var self = this; if (satus.storage.blacklist && satus.storage.blacklist.channels) { @@ -2727,14 +2812,14 @@ Menu.main.section.blacklist = { delete: { type: 'button', icon: '', - onclick: function() { + onclick: function () { delete satus.storage.blacklist.channels[item]; satus.storage.set('blacklist', satus.storage.blacklist); this.classList.add('removing'); - setTimeout(function() { + setTimeout(function () { self.remove(); }, 250); } @@ -2773,7 +2858,7 @@ Menu.main.section.blacklist = { videos: { type: 'folder', label: 'videos', - onopen: function() { + onopen: function () { var self = this; if (satus.storage.blacklist && satus.storage.blacklist.videos) { @@ -2797,13 +2882,13 @@ Menu.main.section.blacklist = { delete: { type: 'button', icon: '', - onclick: function() { + onclick: function () { delete satus.storage.blacklist.videos[item]; satus.storage.set('blacklist', satus.storage.blacklist); this.parentNode.parentNode.classList.add('removing'); - setTimeout(function() { + setTimeout(function () { self.parentNode.parentNode.remove(); }, 250); } @@ -2869,7 +2954,7 @@ Menu.main.section.analyzer = { 'flex-direction': 'column', 'align-items': 'flex-start' }, - onrender: function() { + onrender: function () { var data = satus.storage.get('analyzer') || {}, all_data = {}, all_data_sort = [], @@ -2911,7 +2996,7 @@ Menu.main.section.analyzer = { all_time_value += all_data[i]; } - all_data_sort.sort(function(a, b) { + all_data_sort.sort(function (a, b) { return b[1] - a[1]; }); @@ -2996,20 +3081,6 @@ Menu.main.section.analyzer = { }; -/*-------------------------------------------------------------- -# FIREFOX BUTTON ---------------------------------------------------------------*/ - -Menu.main.section.firefox = { - type: 'button', - class: 'satus-firefox', - innerHTML: '', - onclick: function() { - window.open('https://addons.mozilla.org/en-US/firefox/addon/youtube-addon/', '_blank'); - } -}; - - /*-------------------------------------------------------------- # EXPORT DATA --------------------------------------------------------------*/ @@ -3037,17 +3108,17 @@ function exportData() { export: { type: 'button', label: 'export', - onclick: function() { + onclick: function () { chrome.permissions.request({ permissions: ['downloads'] - }, function(granted) { + }, function (granted) { if (granted) { chrome.downloads.download({ url: URL.createObjectURL(blob), filename: 'improvedtube.json', saveAs: true - }, function() { - setTimeout(function() { + }, function () { + setTimeout(function () { if (location.href.indexOf('action=export') !== -1) { window.close(); } else { @@ -3067,7 +3138,7 @@ function exportData() { ok: { type: 'button', label: 'ok', - onclick: function() { + onclick: function () { document.querySelector('.satus-dialog__scrim').click(); } } @@ -3095,15 +3166,15 @@ function importData() { select_file: { type: 'button', label: 'selectFile', - onclick: function() { + onclick: function () { var input = document.createElement('input'); input.type = 'file'; - input.addEventListener('change', function() { + input.addEventListener('change', function () { var file_reader = new FileReader(); - file_reader.onload = function() { + file_reader.onload = function () { var data = JSON.parse(this.result); for (var key in data) { @@ -3129,7 +3200,7 @@ function importData() { ok: { type: 'button', label: 'ok', - onclick: function() { + onclick: function () { document.querySelector('.satus-dialog__scrim').click(); } } @@ -3182,9 +3253,9 @@ function themeChange(event) { } } -satus.storage.import(function(items) { - satus.locale.import(satus.storage.get('language'), function() { - satus.modules.updateStorageKeys(Menu, function() { +satus.storage.import(function (items) { + satus.locale.import(satus.storage.get('language'), function () { + satus.modules.updateStorageKeys(Menu, function () { if (location.href.indexOf('action=import') !== -1) { importData(); } else if (location.href.indexOf('action=export') !== -1) { @@ -3232,7 +3303,7 @@ satus.storage.import(function(items) { } }); -chrome.storage.onChanged.addListener(function(changes) { +chrome.storage.onChanged.addListener(function (changes) { for (var key in changes) { document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), changes[key].newValue); } diff --git a/satus.css b/satus.css index c5a9d8dcf..9c5a20d9a 100644 --- a/satus.css +++ b/satus.css @@ -19,6 +19,7 @@ # Text field --------------------------------------------------------------*/ + /*-------------------------------------------------------------- # BODY --------------------------------------------------------------*/ @@ -44,6 +45,7 @@ body { # COMPONENTS --------------------------------------------------------------*/ + /*-------------------------------------------------------------- # BUTTON --------------------------------------------------------------*/ @@ -87,7 +89,7 @@ body { .satus-button svg { width: 100%; color: inherit; - fill: var(--satus-theme-primary); + fill: currentColor; } .satus-button__icon+.satus-button__label { @@ -308,6 +310,7 @@ body { # Closing --------------------------------------------------------------*/ + /*-------------------------------------------------------------- # General --------------------------------------------------------------*/ diff --git a/satus.js b/satus.js index fdfd77b67..e9ef61b95 100644 --- a/satus.js +++ b/satus.js @@ -1,4 +1,3 @@ - /*-------------------------------------------------------------- >>> SATUS ---------------------------------------------------------------- @@ -42,7 +41,7 @@ var satus = {}; satus.events = {}; -satus.on = function(event, handler) { +satus.on = function (event, handler) { if (!this.isset(this.events[event])) { this.events[event] = []; } @@ -69,7 +68,7 @@ satus.modules = {}; # ISSET --------------------------------------------------------------*/ -satus.isset = function(variable) { +satus.isset = function (variable) { if (typeof variable === 'undefined' || variable === null) { return false; } @@ -82,8 +81,8 @@ satus.isset = function(variable) { # CAMELIZE --------------------------------------------------------------*/ -satus.camelize = function(string) { - return string.replace(/-[a-z]/g, function(match) { +satus.camelize = function (string) { + return string.replace(/-[a-z]/g, function (match) { return match[1].toUpperCase(); }); }; @@ -93,7 +92,7 @@ satus.camelize = function(string) { # ANIMATION DURATION --------------------------------------------------------------*/ -satus.getAnimationDuration = function(element) { +satus.getAnimationDuration = function (element) { return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; }; @@ -108,10 +107,10 @@ satus.getAnimationDuration = function(element) { satus.storage = {}; -satus.storage.get = function(name) { +satus.storage.get = function (name) { var target = satus.storage; - name = name.split('/').filter(function(value) { + name = name.split('/').filter(function (value) { return value != ''; }); @@ -126,15 +125,15 @@ satus.storage.get = function(name) { return target; }; -satus.storage.set = function(name, value) { +satus.storage.set = function (name, value) { var items = {}, target = satus.storage; - + if (!satus.isset(name)) { return false; } - name = name.split('/').filter(function(value) { + name = name.split('/').filter(function (value) { return value != ''; }); @@ -164,8 +163,8 @@ satus.storage.set = function(name, value) { chrome.storage.local.set(items); }; -satus.storage.import = function(callback) { - chrome.storage.local.get(function(items) { +satus.storage.import = function (callback) { + chrome.storage.local.get(function (items) { for (var key in items) { satus.storage[key] = items[key]; } @@ -176,7 +175,7 @@ satus.storage.import = function(callback) { }); }; -satus.storage.clear = function() { +satus.storage.clear = function () { chrome.storage.local.clear(); for (var key in satus.storage) { @@ -195,13 +194,13 @@ satus.locale = { messages: {} }; -satus.locale.getMessage = function(string) { +satus.locale.getMessage = function (string) { return this.messages[string] || string; }; satus.locale.get = satus.locale.getMessage; -satus.locale.import = function(language, callback) { +satus.locale.import = function (language, callback) { var xhr = new XMLHttpRequest(); if (typeof language === 'function') { @@ -212,7 +211,7 @@ satus.locale.import = function(language, callback) { var language = chrome.i18n.getUILanguage(); } - xhr.onload = function() { + xhr.onload = function () { try { var object = JSON.parse(this.responseText); @@ -248,7 +247,7 @@ satus.locale.import = function(language, callback) { } }; - xhr.onerror = function() { + xhr.onerror = function () { if (language === 'en') { callback(); } else { @@ -265,7 +264,7 @@ satus.locale.import = function(language, callback) { # RENDER --------------------------------------------------------------*/ -satus.render = function(element, container, callback) { +satus.render = function (element, container, callback) { function convert(object) { if (object && object.type) { var type = satus.camelize(object.type), @@ -321,7 +320,7 @@ satus.render = function(element, container, callback) { (container || document.body).appendChild(component); if (typeof component.onClickRender === 'object') { - component.addEventListener('click', function() { + component.addEventListener('click', function () { satus.render(component.onClickRender); }); } @@ -356,7 +355,7 @@ satus.render = function(element, container, callback) { # CLONE NODE STYLES --------------------------------------------------------------*/ -satus.cloneNodeStyles = function(origin, target) { +satus.cloneNodeStyles = function (origin, target) { target.style.cssText = window.getComputedStyle(origin, '').cssText; for (var i = 0, l = origin.children.length; i < l; i++) { @@ -369,27 +368,36 @@ satus.cloneNodeStyles = function(origin, target) { # SEARCH --------------------------------------------------------------*/ -satus.search = function(query, object, callback, categories) { +satus.search = function (query, object, callback, categories) { var threads = 0, folder = '', results = {}; + query = query.toLowerCase(); + function parse(items) { threads++; for (var key in items) { - var item = items[key]; - + var item = items[key], + key_locale = (satus.locale.messages[item.label] || '').toLowerCase(); + if (categories === true && item.type === 'folder' && folder !== item.label) { folder = item.label; } - if (['switch', 'select', 'slider'].indexOf(item.type) !== -1 && key.indexOf(query) !== -1) { + if ( + ['switch', 'select', 'slider'].indexOf(item.type) !== -1 && + ( + key.indexOf(query) !== -1 || + key_locale.indexOf(query) !== -1 + ) + ) { if (categories === true) { if (!results[folder]) { results[folder] = {}; } - + results[folder][key] = item; } else { results[key] = item; @@ -416,7 +424,7 @@ satus.search = function(query, object, callback, categories) { # STORAGE KEYS --------------------------------------------------------------*/ -satus.modules.updateStorageKeys = function(object, callback) { +satus.modules.updateStorageKeys = function (object, callback) { var threads = 0; function parse(items) { @@ -450,7 +458,7 @@ satus.modules.updateStorageKeys = function(object, callback) { # USER --------------------------------------------------------------*/ -satus.modules.user = function() { +satus.modules.user = function () { /*-------------------------------------------------------------- 1.0 VARIABLES --------------------------------------------------------------*/ @@ -782,13 +790,13 @@ satus.modules.user = function() { return data; }; -satus.on('render', function(component, data) { +satus.on('render', function (component, data) { if (data.perspective === true) { component.style.willChange = 'transform'; component.style.transformStyle = 'preserve-3d'; component.style.transition = '.4s'; - component.addEventListener('mousemove', function(event) { + component.addEventListener('mousemove', function (event) { var bounding = component.getBoundingClientRect(), dx = event.clientX - bounding.left - bounding.width / 2, dy = event.clientY - bounding.top - bounding.height / 2; @@ -796,7 +804,7 @@ satus.on('render', function(component, data) { this.style.transform = 'perspective(440px) rotateX(' + dy * -1 + 'deg) rotateY(' + dx + 'deg) translateZ(0)'; }); - component.addEventListener('mouseout', function(event) { + component.addEventListener('mouseout', function (event) { this.style.transform = 'perspective(440px) rotateX(0deg) rotateY(0deg) translateZ(0)'; }); } @@ -811,7 +819,7 @@ satus.on('render', function(component, data) { # BUTTON --------------------------------------------------------------*/ -satus.components.button = function(element) { +satus.components.button = function (element) { var component = document.createElement('button'); if (satus.isset(element.icon)) { @@ -840,7 +848,7 @@ satus.components.button = function(element) { # COLOR PICKER --------------------------------------------------------------*/ -satus.components.colorPicker = function(element) { +satus.components.colorPicker = function (element) { var component = document.createElement('div'), component_value = document.createElement('div'); @@ -857,7 +865,7 @@ satus.components.colorPicker = function(element) { component.appendChild(component_label); } - component.addEventListener('click', function() { + component.addEventListener('click', function () { var component = document.createElement('div'), component_canvas = document.createElement('canvas'), close = document.createElement('button'), @@ -867,7 +875,7 @@ satus.components.colorPicker = function(element) { close.className = 'satus-button'; close.innerHTML = ''; - close.onclick = function() { + close.onclick = function () { dialog.querySelector('.satus-dialog__scrim').click(); }; @@ -892,13 +900,13 @@ satus.components.colorPicker = function(element) { window.removeEventListener('mouseup', mouseup); } - component_canvas.addEventListener('mousedown', function() { + component_canvas.addEventListener('mousedown', function () { select(event); this.addEventListener('mousemove', select); window.addEventListener('mouseup', mouseup); }); - image.onload = function() { + image.onload = function () { ctx.drawImage(image, 0, 0); image.remove(); @@ -922,11 +930,11 @@ satus.components.colorPicker = function(element) { # DIALOG --------------------------------------------------------------*/ -satus.components.dialog = function(element) { +satus.components.dialog = function (element) { var component = document.createElement('div'), component_scrim = document.createElement('div'), component_surface = document.createElement('div'), - component_scrollbar = satus.components.scrollbar(component_surface), + component_scrollbar = satus.components.scrollbar(component_surface, element.scrollbar), options = element.options || {}; component_scrim.className = 'satus-dialog__scrim'; @@ -945,7 +953,7 @@ satus.components.dialog = function(element) { element.onclose(); } - setTimeout(function() { + setTimeout(function () { component.remove(); }, satus.getAnimationDuration(component_surface)); } @@ -978,6 +986,8 @@ satus.components.dialog = function(element) { } } + component.close = close; + component_scrim.addEventListener('click', close); window.addEventListener('keydown', keydown); @@ -1012,14 +1022,14 @@ satus.components.dialog = function(element) { # FOLDER --------------------------------------------------------------*/ -satus.components.folder = function(object) { +satus.components.folder = function (object) { var component = document.createElement('button'); component.object = object; component.classList.add('satus-button'); - component.addEventListener('click', function() { + component.addEventListener('click', function () { var parent = document.querySelector(component.object.parent) || document.querySelector('.satus-main'); if (!component.object.parent || !parent.classList.contains('satus-main')) { @@ -1048,12 +1058,12 @@ satus.components.folder = function(object) { # HEADER --------------------------------------------------------------*/ -satus.components.header = function(object) { +satus.components.header = function (object) { var component = document.createElement('header'); - for (var key in object) { - satus.render(object[key], component); - } + for (var key in object) { + satus.render(object[key], component); + } return component; }; @@ -1063,7 +1073,7 @@ satus.components.header = function(object) { # LIST --------------------------------------------------------------*/ -satus.components.list = function(object) { +satus.components.list = function (object) { var ul = document.createElement('ul'); if (object.compact === true) { @@ -1092,7 +1102,7 @@ satus.components.list = function(object) { if (Math.abs(first_y - event.clientY) <= 5) { return false; } - + if (dragging === false) { clone = self.cloneNode(true); @@ -1113,7 +1123,7 @@ satus.components.list = function(object) { clone.style.left = x + 'px'; clone.style.top = y + 'px'; - + //return false; if (index !== current_index && self.parentNode.children[index]) { @@ -1171,14 +1181,14 @@ satus.components.list = function(object) { # MAIN --------------------------------------------------------------*/ -satus.components.main = function(object) { +satus.components.main = function (object) { var component = document.createElement('main'), component_container = document.createElement('div'), component_scrollbar = satus.components.scrollbar(component_container, object.scrollbar); component.history = [object]; - component.back = function() { + component.back = function () { var container = this.querySelector('.satus-main__container'), component_container = document.createElement('div'), component_scrollbar = satus.components.scrollbar(component_container); @@ -1204,12 +1214,12 @@ satus.components.main = function(object) { component_scrollbar.onopen(); } - setTimeout(function() { + setTimeout(function () { container.remove(); }, satus.getAnimationDuration(container)); }; - component.open = function(element, callback, animated) { + component.open = function (element, callback, animated) { var container = this.querySelector('.satus-main__container'), component_container = document.createElement('div'), component_scrollbar = satus.components.scrollbar(component_container); @@ -1239,7 +1249,7 @@ satus.components.main = function(object) { component_scrollbar.onopen(); } - setTimeout(function() { + setTimeout(function () { container.remove(); }, satus.getAnimationDuration(container)); }; @@ -1268,7 +1278,7 @@ satus.components.main = function(object) { # SCROLL BAR --------------------------------------------------------------*/ -satus.components.scrollbar = function(parent, enabled) { +satus.components.scrollbar = function (parent, enabled) { if (enabled === false) { return parent; } @@ -1292,6 +1302,9 @@ satus.components.scrollbar = function(parent, enabled) { if (component_wrapper.scrollHeight > component_wrapper.offsetHeight) { component_thumb.style.height = component_wrapper.offsetHeight / component_wrapper.scrollHeight * component_wrapper.offsetHeight + 'px'; + } else { + component_wrapper.style.height = ''; + component_thumb.style.height = ''; } } @@ -1316,7 +1329,7 @@ satus.components.scrollbar = function(parent, enabled) { component.classList.add('active'); - component.timeout = setTimeout(function() { + component.timeout = setTimeout(function () { component.classList.remove('active'); component.timeout = false; @@ -1328,13 +1341,13 @@ satus.components.scrollbar = function(parent, enabled) { // SCROLL - component_wrapper.addEventListener('scroll', function(event) { + component_wrapper.addEventListener('scroll', function (event) { active(); component_thumb.style.top = Math.floor(component_wrapper.scrollTop * (component_wrapper.offsetHeight - component_thumb.offsetHeight) / (component_wrapper.scrollHeight - component_wrapper.offsetHeight)) + 'px'; }); - component_thumb.addEventListener('mousedown', function(event) { + component_thumb.addEventListener('mousedown', function (event) { var offsetY = event.layerY; if (event.button !== 0) { @@ -1375,12 +1388,12 @@ satus.components.scrollbar = function(parent, enabled) { # SECTION --------------------------------------------------------------*/ -satus.components.section = function(element) { +satus.components.section = function (element) { var component = document.createElement('section'); - for (var key in element) { - satus.render(element[key], component); - } + for (var key in element) { + satus.render(element[key], component); + } return component; }; @@ -1390,7 +1403,7 @@ satus.components.section = function(element) { # SELECT --------------------------------------------------------------*/ -satus.components.select = function(element) { +satus.components.select = function (element) { var component = document.createElement('button'), component_label = document.createElement('span'), component_value = document.createElement('span'), @@ -1417,7 +1430,7 @@ satus.components.select = function(element) { component_value.innerText = satus.locale.getMessage(value || element.options[0].label); } - component.onclick = function() { + component.onclick = function () { var position = this.getBoundingClientRect(), dialog = { type: 'dialog', @@ -1431,7 +1444,7 @@ satus.components.select = function(element) { dialog[key].dataset = {}; dialog[key].dataset.key = element.options[key].label; dialog[key].dataset.value = element.options[key].value; - dialog[key].onclick = function() { + dialog[key].onclick = function () { component_value.innerText = satus.locale.getMessage(this.dataset.key); satus.storage.set(component.dataset.storageKey, this.dataset.value); @@ -1460,7 +1473,7 @@ satus.components.select = function(element) { # SHORTCUT ---------------------------------------------------------------*/ -satus.components.shortcut = function(element) { +satus.components.shortcut = function (element) { var self = this, value = (satus.storage.get(element.storage_key) ? JSON.parse(satus.storage.get(element.storage_key)) : false) || element.value || {}, component = document.createElement('div'), @@ -1537,7 +1550,7 @@ satus.components.shortcut = function(element) { component_label.innerText = satus.locale.getMessage(element.label); - component.addEventListener('click', function() { + component.addEventListener('click', function () { let component_dialog = document.createElement('div'), component_dialog_label = document.createElement('span'), component_scrim = document.createElement('div'), @@ -1598,7 +1611,7 @@ satus.components.shortcut = function(element) { clearTimeout(mousewheel_timeout); - mousewheel_timeout = setTimeout(function() { + mousewheel_timeout = setTimeout(function () { mousewheel_only = true; }, 300); @@ -1622,20 +1635,20 @@ satus.components.shortcut = function(element) { component_dialog.classList.remove('satus-dialog_open'); - setTimeout(function() { + setTimeout(function () { component_dialog.remove(); }, Number(document.defaultView.getComputedStyle(component_dialog, '').getPropertyValue('animation-duration').replace(/[^0-9.]/g, '') * 1000)); } component_scrim.addEventListener('click', close); - component_button_reset.addEventListener('click', function() { + component_button_reset.addEventListener('click', function () { satus.storage.set(element.storage_key, null); close(); value = (satus.storage.get(element.storage_key) ? JSON.parse(satus.storage.get(element.storage_key)) : false) || element.value || {}; update(); }); component_button_cancel.addEventListener('click', close); - component_button_save.addEventListener('click', function() { + component_button_save.addEventListener('click', function () { satus.storage.set(element.storage_key, JSON.stringify(value)); close(false); }); @@ -1665,7 +1678,7 @@ satus.components.shortcut = function(element) { # SLIDER --------------------------------------------------------------*/ -satus.components.slider = function(element) { +satus.components.slider = function (element) { var component = document.createElement('div'); // LABEL @@ -1688,7 +1701,7 @@ satus.components.slider = function(element) { component_range.max = element.max || 10; component_range.step = element.step || 1; - component_range.oninput = function() { + component_range.oninput = function () { var track = this.parentNode.querySelector('.satus-slider__track'), thumb = this.parentNode.querySelector('.satus-slider__thumb'), min = Number(this.min) || 0, @@ -1708,7 +1721,7 @@ satus.components.slider = function(element) { } }; - component.change = function(value) { + component.change = function (value) { component_range.value = value; component_thumb.dataset.value = value; @@ -1716,14 +1729,14 @@ satus.components.slider = function(element) { component_range.oninput(); }; - component.addEventListener('mousedown', function() { + component.addEventListener('mousedown', function () { function mousemove() { component.classList.add('satus-slider--dragging'); } function mouseup() { component.classList.remove('satus-slider--dragging'); - + window.removeEventListener('mousemove', mousemove); window.removeEventListener('mouseup', mouseup); } @@ -1804,7 +1817,7 @@ satus.components.slider = function(element) { # SWITCH --------------------------------------------------------------*/ -satus.components.switch = function(element) { +satus.components.switch = function (element) { var component = document.createElement('div'), value; @@ -1839,7 +1852,7 @@ satus.components.switch = function(element) { component_input.checked = value; } - component_input.addEventListener('change', function() { + component_input.addEventListener('change', function () { satus.storage.set(this.dataset.storageKey, this.checked); }); @@ -1855,7 +1868,7 @@ satus.components.switch = function(element) { // MOUSE MOVE - component_track.addEventListener('mousedown', function(event) { + component_track.addEventListener('mousedown', function (event) { var prevent = false, difference = 0; @@ -1901,7 +1914,7 @@ satus.components.switch = function(element) { // TOUCH MOVE - component_track.addEventListener('touchstart', function(event) { + component_track.addEventListener('touchstart', function (event) { var previous_x = 0, difference = 0; @@ -1936,13 +1949,13 @@ satus.components.switch = function(element) { return component; }; -satus.components.table = function(item) { +satus.components.table = function (item) { var component = document.createElement('div'), component_head = document.createElement('div'), component_body = document.createElement('div'), component_scrollbar = satus.components.scrollbar(component_body, item.scrollbar), table = document.createElement('div'); - + table.className = 'satus-table__container'; component_head.className = 'satus-table__head'; component_body.className = 'satus-table__body'; @@ -1964,24 +1977,24 @@ satus.components.table = function(item) { for (var i = start, l = end; i < l; i++) { if (data[i]) { var tr = document.createElement('div'); - + tr.className = 'satus-table__row'; for (var j = 0, k = data[i].length; j < k; j++) { var td = document.createElement('div'); - + td.className = 'satus-table__cell'; - + if (data[i][j].html) { td.innerHTML = data[i][j].html; } else if (data[i][j].text) { td.innerText = data[i][j].text; } - + if (data[i][j].onrender) { td.onrender = data[i][j].onrender; - + td.onrender(); } @@ -1999,21 +2012,21 @@ satus.components.table = function(item) { function sortArray(array, index, mode) { if (mode === 'asc') { if (typeof array[0][index].text === 'number') { - sorted = array.sort(function(a, b) { + sorted = array.sort(function (a, b) { return a[index].text - b[index].text; }); } else { - sorted = array.sort(function(a, b) { + sorted = array.sort(function (a, b) { return a[index].text.localeCompare(b[index].text); }); } } else { if (typeof array[0][index].text === 'number') { - sorted = array.sort(function(a, b) { + sorted = array.sort(function (a, b) { return b[index].text - a[index].text; }); } else { - sorted = array.sort(function(a, b) { + sorted = array.sort(function (a, b) { return b[index].text.localeCompare(a[index].text); }); } @@ -2026,7 +2039,7 @@ satus.components.table = function(item) { var mode = this.dataset.sorting, index = Array.prototype.indexOf.call(this.parentElement.children, this), sorted; - + if (component.data[0][index] && component.data[0][index].hasOwnProperty('text')) { if (mode === 'none') { mode = 'asc'; @@ -2071,15 +2084,15 @@ satus.components.table = function(item) { component.paging = item.paging; component.pagingIndex = 0; - component.update = function(data, index, mode) { + component.update = function (data, index, mode) { if (satus.isset(data)) { this.data = data; } - + if (this.querySelector('div[data-sorting=asc], div[data-sorting=desc]')) { var mode = this.querySelector('div[data-sorting=asc], div[data-sorting=desc]').dataset.sorting, index = Array.prototype.indexOf.call(this.querySelector('div[data-sorting=asc], div[data-sorting=desc]').parentElement.children, this.querySelector('div[data-sorting=asc], div[data-sorting=desc]')); - + update(sortArray(this.data, index, mode)); } else { for (var i = 0, l = item.columns.length; i < l; i++) { @@ -2089,7 +2102,7 @@ satus.components.table = function(item) { } else { this.querySelectorAll('.satus-table__head > div')[i].dataset.sorting = false; } - + update(sortArray(this.data, i, item.columns[i].sorting)); i = l; @@ -2116,7 +2129,7 @@ satus.components.table = function(item) { button.innerText = i; button.parentComponent = this; - button.addEventListener('click', function() { + button.addEventListener('click', function () { if (this.parentNode.querySelector('button.active')) { this.parentNode.querySelector('button.active').classList.remove('active'); } @@ -2130,7 +2143,7 @@ satus.components.table = function(item) { this.querySelector('.satus-table__paging').appendChild(button); } } - + resize(); } @@ -2143,11 +2156,11 @@ satus.components.table = function(item) { component_scrollbar.appendChild(component_paging); // END PAGING - + if (item.data) { component.update(item.data); } - + return component; }; @@ -2156,7 +2169,7 @@ satus.components.table = function(item) { # TEXT --------------------------------------------------------------*/ -satus.components.text = function(element) { +satus.components.text = function (element) { var component = document.createElement('span'); if (satus.isset(element.label)) { @@ -2185,10 +2198,15 @@ satus.components.text = function(element) { # TEXT FIELD --------------------------------------------------------------*/ -satus.components.textField = function(element) { +satus.components.textField = function (element) { var component = element.rows > 1 ? document.createElement('textarea') : document.createElement('input'); component.type = 'text'; + // PLACEHOLDER + if (satus.isset(element.placeholder)) { + element.placeholder = satus.locale.getMessage(element.placeholder); + } + return component; }; \ No newline at end of file From cfdde07a5cad908aab6cdb4c2f9f9476d6353310 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 8 May 2021 22:33:24 +0300 Subject: [PATCH 0131/1224] Fixed "About" --- _locales/en/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 64786ea45..9dca901c9 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -1,6 +1,6 @@ { "about": { - "message": "Acerca de" + "message": "About" }, "accept": { "message": "Accept" From 9494023ea9055327892b8faa60f2a2ca0eb5fc69 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 9 May 2021 22:18:49 +0300 Subject: [PATCH 0132/1224] Added Python scripts & other changes --- _locales/ar/messages.json | 593 ++++++------ _locales/bn/messages.json | 589 ++++++------ _locales/de/messages.json | 163 ++-- _locales/el/messages.json | 545 +++++------ _locales/en/messages.json | 1663 +++++++++++++++++----------------- _locales/es/messages.json | 1627 ++++++++++++++++----------------- _locales/fr/messages.json | 1639 ++++++++++++++++----------------- _locales/hin/messages.json | 1627 ++++++++++++++++----------------- _locales/hr/messages.json | 1663 +++++++++++++++++----------------- _locales/id/messages.json | 109 +-- _locales/it/messages.json | 1621 ++++++++++++++++----------------- _locales/ja/messages.json | 573 ++++++------ _locales/ko/messages.json | 591 ++++++------ _locales/messages.json | 815 ----------------- _locales/nb_NO/messages.json | 173 ++-- _locales/nl/messages.json | 87 +- _locales/no/messages.json | 167 ++-- _locales/pl/messages.json | 301 +++--- _locales/pt_BR/messages.json | 1627 ++++++++++++++++----------------- _locales/pt_PT/messages.json | 247 ++--- _locales/ro/messages.json | 303 ++++--- _locales/ru/messages.json | 1627 ++++++++++++++++----------------- _locales/sk/messages.json | 455 +++++----- _locales/tr/messages.json | 377 ++++---- _locales/zh_CN/messages.json | 1663 +++++++++++++++++----------------- _locales/zh_TW/messages.json | 1649 ++++++++++++++++----------------- background-firefox.js | 352 ------- background.js | 4 +- index.html | 12 +- locale.py | 51 +- manifest-firefox.json | 82 -- manifest.json | 4 +- popup.css | 50 +- popup.js | 67 +- py/build.py | 231 +++++ satus.css | 10 +- 36 files changed, 11242 insertions(+), 12115 deletions(-) delete mode 100644 _locales/messages.json delete mode 100644 background-firefox.js delete mode 100644 manifest-firefox.json create mode 100644 py/build.py diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 40600394c..b47acadaf 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -1,812 +1,815 @@ { + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "about": { - "message": "حول" + "message": "\u062d\u0648\u0644" }, "accept": { - "message": "قبول" + "message": "\u0642\u0628\u0648\u0644" }, "activate": { - "message": "تفعيل" + "message": "\u062a\u0641\u0639\u064a\u0644" }, "activateCaptions": { - "message": "تفعيل الترجمة" + "message": "\u062a\u0641\u0639\u064a\u0644 \u0627\u0644\u062a\u0631\u062c\u0645\u0629" + }, + "activateFullscreen": { + "message": "\u062a\u0641\u0639\u064a\u0644 \u0645\u0644\u0621 \u0627\u0644\u0634\u0627\u0634\u0629" }, "activated": { - "message": "مفعل" + "message": "\u0645\u0641\u0639\u0644" }, "activatedFeatures": { - "message": "الميزات المفعلة" - }, - "activateFullscreen": { - "message": "تفعيل ملء الشاشة" + "message": "\u0627\u0644\u0645\u064a\u0632\u0627\u062a \u0627\u0644\u0645\u0641\u0639\u0644\u0629" }, "activeFeatures": { - "message": "الميزات النشطة" + "message": "\u0627\u0644\u0645\u064a\u0632\u0627\u062a \u0627\u0644\u0646\u0634\u0637\u0629" }, "addScrollToTop": { - "message": "آضف الصعود لأعلى" + "message": "\u0622\u0636\u0641 \u0627\u0644\u0635\u0639\u0648\u062f \u0644\u0623\u0639\u0644\u0649" }, "ads": { - "message": "الاعلانات" + "message": "\u0627\u0644\u0627\u0639\u0644\u0627\u0646\u0627\u062a" }, "all": { - "message": "الكل" + "message": "\u0627\u0644\u0643\u0644" }, "allow": { - "message": "سماح" + "message": "\u0633\u0645\u0627\u062d" }, "allow60fps": { - "message": "السماح لـ60إطار" - }, - "forceSDR": { - "message": "SDR فرض" + "message": "\u0627\u0644\u0633\u0645\u0627\u062d \u0644\u064060\u0625\u0637\u0627\u0631" }, "alwaysActive": { - "message": "دائما نشط" + "message": "\u062f\u0627\u0626\u0645\u0627 \u0646\u0634\u0637" }, "alwaysShowProgressBar": { - "message": "إظهار شريط التقدم دائمًا" + "message": "\u0625\u0638\u0647\u0627\u0631 \u0634\u0631\u064a\u0637 \u0627\u0644\u062a\u0642\u062f\u0645 \u062f\u0627\u0626\u0645\u064b\u0627" }, "amber": { - "message": "العنبر" + "message": "\u0627\u0644\u0639\u0646\u0628\u0631" }, "analyzer": { - "message": "المحلل" + "message": "\u0627\u0644\u0645\u062d\u0644\u0644" }, "appearance": { - "message": "المظهر العام" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" + "message": "\u0627\u0644\u0645\u0638\u0647\u0631 \u0627\u0644\u0639\u0627\u0645" }, "audio": { - "message": "الصوت" + "message": "\u0627\u0644\u0635\u0648\u062a" }, "audioFormats": { - "message": "تنسيقات الصوت" + "message": "\u062a\u0646\u0633\u064a\u0642\u0627\u062a \u0627\u0644\u0635\u0648\u062a" }, "auto": { - "message": "تلقائي" + "message": "\u062a\u0644\u0642\u0627\u0626\u064a" }, "autoFullscreen": { - "message": "ملء تلقائي للشاشة" + "message": "\u0645\u0644\u0621 \u062a\u0644\u0642\u0627\u0626\u064a \u0644\u0644\u0634\u0627\u0634\u0629" }, "autopauseWhenSwitchingTabs": { - "message": "إيقاف تلقائي عند التبديل بين التبويبات" + "message": "\u0625\u064a\u0642\u0627\u0641 \u062a\u0644\u0642\u0627\u0626\u064a \u0639\u0646\u062f \u0627\u0644\u062a\u0628\u062f\u064a\u0644 \u0628\u064a\u0646 \u0627\u0644\u062a\u0628\u0648\u064a\u0628\u0627\u062a" }, "autoplay": { - "message": "تشغيل تلقائي" + "message": "\u062a\u0634\u063a\u064a\u0644 \u062a\u0644\u0642\u0627\u0626\u064a" }, "backupAndReset": { - "message": "إعادة تعيين والنسخ الاحتياطي" + "message": "\u0625\u0639\u0627\u062f\u0629 \u062a\u0639\u064a\u064a\u0646 \u0648\u0627\u0644\u0646\u0633\u062e \u0627\u0644\u0627\u062d\u062a\u064a\u0627\u0637\u064a" }, "baseOnSystemColorScheme": { - "message": "يناء على ألوان النظام" + "message": "\u064a\u0646\u0627\u0621 \u0639\u0644\u0649 \u0623\u0644\u0648\u0627\u0646 \u0627\u0644\u0646\u0638\u0627\u0645" }, "belowPlayer": { - "message": "اسفل المشغل" + "message": "\u0627\u0633\u0641\u0644 \u0627\u0644\u0645\u0634\u063a\u0644" }, "black": { - "message": "اسود" + "message": "\u0627\u0633\u0648\u062f" }, "blacklist": { - "message": "القائمة السوداء" + "message": "\u0627\u0644\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0633\u0648\u062f\u0627\u0621" }, "blockAll": { - "message": "حظر الكل" + "message": "\u062d\u0638\u0631 \u0627\u0644\u0643\u0644" }, "blue": { - "message": "ازرق" + "message": "\u0627\u0632\u0631\u0642" }, "blueGray": { - "message": "ازرق رمادي" + "message": "\u0627\u0632\u0631\u0642 \u0631\u0645\u0627\u062f\u064a" }, "bluelight": { - "message": "الضوء الأزرق" + "message": "\u0627\u0644\u0636\u0648\u0621 \u0627\u0644\u0623\u0632\u0631\u0642" }, "brown": { - "message": "بنى" + "message": "\u0628\u0646\u0649" }, "browser": { - "message": "المتصفح" + "message": "\u0627\u0644\u0645\u062a\u0635\u0641\u062d" }, "browserVersion": { - "message": "إصدار المتصفح" + "message": "\u0625\u0635\u062f\u0627\u0631 \u0627\u0644\u0645\u062a\u0635\u0641\u062d" }, "bubbles": { - "message": "فقاعات" + "message": "\u0641\u0642\u0627\u0639\u0627\u062a" }, "bug": { - "message": "خلل برمجي" + "message": "\u062e\u0644\u0644 \u0628\u0631\u0645\u062c\u064a" }, "buttons": { - "message": "أزرار" + "message": "\u0623\u0632\u0631\u0627\u0631" }, "cancel": { - "message": "إلغاء" + "message": "\u0625\u0644\u063a\u0627\u0621" }, "categories": { - "message": "التصنيفات" + "message": "\u0627\u0644\u062a\u0635\u0646\u064a\u0641\u0627\u062a" }, "channel": { - "message": "قناة" + "message": "\u0642\u0646\u0627\u0629" }, "channels": { - "message": "القنوات" + "message": "\u0627\u0644\u0642\u0646\u0648\u0627\u062a" }, "clipboard": { - "message": "الحافظة" + "message": "\u0627\u0644\u062d\u0627\u0641\u0638\u0629" }, "codecH264": { - "message": "h.الترميز 264" - }, - "collapsed": { - "message": "ضغط" + "message": "h.\u0627\u0644\u062a\u0631\u0645\u064a\u0632 264" }, "collapseOfSubscriptionSections": { - "message": "ضغط قسم الاشتراكات" + "message": "\u0636\u063a\u0637 \u0642\u0633\u0645 \u0627\u0644\u0627\u0634\u062a\u0631\u0627\u0643\u0627\u062a" + }, + "collapsed": { + "message": "\u0636\u063a\u0637" }, "comments": { - "message": "التعليقات" + "message": "\u0627\u0644\u062a\u0639\u0644\u064a\u0642\u0627\u062a" }, "confirmationBeforeClosing": { - "message": "التأكيد قبل الإغلاق" + "message": "\u0627\u0644\u062a\u0623\u0643\u064a\u062f \u0642\u0628\u0644 \u0627\u0644\u0625\u063a\u0644\u0627\u0642" }, "cookies": { - "message": "ملفات تعريف الارتباط" + "message": "\u0645\u0644\u0641\u0627\u062a \u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0627\u0631\u062a\u0628\u0627\u0637" }, "cores": { - "message": "النواه" + "message": "\u0627\u0644\u0646\u0648\u0627\u0647" }, "cropChapterTitles": { - "message": "اقتطاع عناوين الفصول" + "message": "\u0627\u0642\u062a\u0637\u0627\u0639 \u0639\u0646\u0627\u0648\u064a\u0646 \u0627\u0644\u0641\u0635\u0648\u0644" }, "customCss": { - "message": "مخصص CSS" + "message": "\u0645\u062e\u0635\u0635 CSS" }, "customJs": { - "message": "مخصص JS" + "message": "\u0645\u062e\u0635\u0635 JS" }, "customMiniPlayer": { - "message": "المشغل الصغير المخصص" + "message": "\u0627\u0644\u0645\u0634\u063a\u0644 \u0627\u0644\u0635\u063a\u064a\u0631 \u0627\u0644\u0645\u062e\u0635\u0635" }, "cyan": { - "message": "ازرق سماوي" + "message": "\u0627\u0632\u0631\u0642 \u0633\u0645\u0627\u0648\u064a" }, "dark": { - "message": "داكن" + "message": "\u062f\u0627\u0643\u0646" }, "darkTheme": { - "message": "مظهر داكن" + "message": "\u0645\u0638\u0647\u0631 \u062f\u0627\u0643\u0646" }, "dateAndTime": { - "message": "التاريخ والوقت" + "message": "\u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0648\u0627\u0644\u0648\u0642\u062a" }, "dawn": { - "message": "فجر" + "message": "\u0641\u062c\u0631" }, "decreasePlaybackSpeed": { - "message": "تقليل سرعة التشغيل" + "message": "\u062a\u0642\u0644\u064a\u0644 \u0633\u0631\u0639\u0629 \u0627\u0644\u062a\u0634\u063a\u064a\u0644" }, "decreaseVolume5": { - "message": "5% خفض الصوت" + "message": "5% \u062e\u0641\u0636 \u0627\u0644\u0635\u0648\u062a" }, "deepOrange": { - "message": "برتقالي داكن" + "message": "\u0628\u0631\u062a\u0642\u0627\u0644\u064a \u062f\u0627\u0643\u0646" }, "deepPurple": { - "message": "أرجواني داكن" + "message": "\u0623\u0631\u062c\u0648\u0627\u0646\u064a \u062f\u0627\u0643\u0646" }, "defaultChannelTab": { - "message": "علامة تبويب القناة الافتراضية" + "message": "\u0639\u0644\u0627\u0645\u0629 \u062a\u0628\u0648\u064a\u0628 \u0627\u0644\u0642\u0646\u0627\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629" }, "deleteYoutubeCookies": { - "message": "حذف ملفات تعريف الارتباط من اليوتيوب" + "message": "\u062d\u0630\u0641 \u0645\u0644\u0641\u0627\u062a \u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0627\u0631\u062a\u0628\u0627\u0637 \u0645\u0646 \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628" }, "description": { - "message": "الوصف" + "message": "\u0627\u0644\u0648\u0635\u0641" }, "desert": { - "message": "صحراء" + "message": "\u0635\u062d\u0631\u0627\u0621" }, "details": { - "message": "التفاصيل" + "message": "\u0627\u0644\u062a\u0641\u0627\u0635\u064a\u0644" }, "developerOptions": { - "message": "خيارات المطور" + "message": "\u062e\u064a\u0627\u0631\u0627\u062a \u0627\u0644\u0645\u0637\u0648\u0631" }, "device": { - "message": "الجهاز" + "message": "\u0627\u0644\u062c\u0647\u0627\u0632" }, "dim": { - "message": "داكن" + "message": "\u062f\u0627\u0643\u0646" }, "disabled": { - "message": "معطل" + "message": "\u0645\u0639\u0637\u0644" }, "dislike": { - "message": "لم يعجبنى" - }, - "donate": { - "message": "تبرع" + "message": "\u0644\u0645 \u064a\u0639\u062c\u0628\u0646\u0649" }, "doNotChange": { - "message": "الإفتراضي" + "message": "\u0627\u0644\u0625\u0641\u062a\u0631\u0627\u0636\u064a" + }, + "donate": { + "message": "\u062a\u0628\u0631\u0639" }, "draggable": { - "message": "قابل للسحب" + "message": "\u0642\u0627\u0628\u0644 \u0644\u0644\u0633\u062d\u0628" }, "email": { - "message": "البريد الإلكتروني" + "message": "\u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a" }, "empty": { - "message": "فارغة" + "message": "\u0641\u0627\u0631\u063a\u0629" }, "enabled": { - "message": "ممكّن" + "message": "\u0645\u0645\u0643\u0651\u0646" }, "enabledForced": { - "message": "ممكّن (إجباري)" + "message": "\u0645\u0645\u0643\u0651\u0646 (\u0625\u062c\u0628\u0627\u0631\u064a)" }, "expanded": { - "message": "موسع" + "message": "\u0645\u0648\u0633\u0639" }, "exportSettings": { - "message": "تصدير الإعدادات" + "message": "\u062a\u0635\u062f\u064a\u0631 \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a" }, "extension": { - "message": "الإضافة" + "message": "\u0627\u0644\u0625\u0636\u0627\u0641\u0629" }, "file": { - "message": "ملف" + "message": "\u0645\u0644\u0641" }, "filters": { - "message": "مرشحات" + "message": "\u0645\u0631\u0634\u062d\u0627\u062a" }, "fitToWindow": { - "message": "مناسب للنافذة" + "message": "\u0645\u0646\u0627\u0633\u0628 \u0644\u0644\u0646\u0627\u0641\u0630\u0629" }, "flash": { - "message": "فلاش" + "message": "\u0641\u0644\u0627\u0634" }, "font": { - "message": "الخط" + "message": "\u0627\u0644\u062e\u0637" }, "footer": { - "message": "الحزء السفلي" + "message": "\u0627\u0644\u062d\u0632\u0621 \u0627\u0644\u0633\u0641\u0644\u064a" + }, + "forceSDR": { + "message": "SDR \u0641\u0631\u0636" }, "forcedPlaybackSpeed": { - "message": "تثبيت سرعة التشغيل" + "message": "\u062a\u062b\u0628\u064a\u062a \u0633\u0631\u0639\u0629 \u0627\u0644\u062a\u0634\u063a\u064a\u0644" }, "forcedTheaterMode": { - "message": "فرض وضع المسرح" + "message": "\u0641\u0631\u0636 \u0648\u0636\u0639 \u0627\u0644\u0645\u0633\u0631\u062d" }, "forcedVolume": { - "message": "تثبيت مستوى الصوت" + "message": "\u062a\u062b\u0628\u064a\u062a \u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u0635\u0648\u062a" }, "foundABug": { - "message": "وجدت خطأ؟" + "message": "\u0648\u062c\u062f\u062a \u062e\u0637\u0623\u061f" }, "fullWindow": { - "message": "نافذة كاملة" + "message": "\u0646\u0627\u0641\u0630\u0629 \u0643\u0627\u0645\u0644\u0629" }, "general": { - "message": "عام" + "message": "\u0639\u0627\u0645" }, "github": { - "message": "جيتهب" + "message": "\u062c\u064a\u062a\u0647\u0628" }, "goToSearchBox": { - "message": "انتقل إلى مربع البحث" + "message": "\u0627\u0646\u062a\u0642\u0644 \u0625\u0644\u0649 \u0645\u0631\u0628\u0639 \u0627\u0644\u0628\u062d\u062b" }, "gpu": { - "message": "كرت الشاشة" + "message": "\u0643\u0631\u062a \u0627\u0644\u0634\u0627\u0634\u0629" }, "green": { - "message": "أخضر" + "message": "\u0623\u062e\u0636\u0631" }, "hdThumbnail": { - "message": "صورة مصغرة عالية الدقة" + "message": "\u0635\u0648\u0631\u0629 \u0645\u0635\u063a\u0631\u0629 \u0639\u0627\u0644\u064a\u0629 \u0627\u0644\u062f\u0642\u0629" }, "hdThumbnails": { - "message": "صور مصغرة عالية الدقة" + "message": "\u0635\u0648\u0631 \u0645\u0635\u063a\u0631\u0629 \u0639\u0627\u0644\u064a\u0629 \u0627\u0644\u062f\u0642\u0629" }, "header": { - "message": "الجزء العلوي" + "message": "\u0627\u0644\u062c\u0632\u0621 \u0627\u0644\u0639\u0644\u0648\u064a" }, "hidden": { - "message": "مخفي" + "message": "\u0645\u062e\u0641\u064a" }, "hiddenOnVideoPage": { - "message": "مخفي على صفحة الفيديو" + "message": "\u0645\u062e\u0641\u064a \u0639\u0644\u0649 \u0635\u0641\u062d\u0629 \u0627\u0644\u0641\u064a\u062f\u064a\u0648" }, "hideAnimatedThumbnails": { - "message": "إخفاء الصور المصغرة المتحركة" + "message": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0635\u0648\u0631 \u0627\u0644\u0645\u0635\u063a\u0631\u0629 \u0627\u0644\u0645\u062a\u062d\u0631\u0643\u0629" }, "hideAnnotations": { - "message": "إخفاء التعليقات التوضيحية" + "message": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u062a\u0639\u0644\u064a\u0642\u0627\u062a \u0627\u0644\u062a\u0648\u0636\u064a\u062d\u064a\u0629" }, "hideCards": { - "message": "إخفاء البطاقات" + "message": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0628\u0637\u0627\u0642\u0627\u062a" }, "hideDetails": { - "message": "إخفاء التفاصيل" + "message": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u062a\u0641\u0627\u0635\u064a\u0644" }, "hideEndscreen": { - "message": "إخفاء شاشة النهاية" + "message": "\u0625\u062e\u0641\u0627\u0621 \u0634\u0627\u0634\u0629 \u0627\u0644\u0646\u0647\u0627\u064a\u0629" }, "hideFeaturedContent": { - "message": "إخفاء المحتوى المميز" + "message": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0627\u0644\u0645\u0645\u064a\u0632" }, "hideFooter": { - "message": "إخفاء الجزء السفلي" + "message": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u062c\u0632\u0621 \u0627\u0644\u0633\u0641\u0644\u064a" }, "hideGradientBottom": { - "message": "إخفاء التدرج الأسود السفلي" + "message": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u062a\u062f\u0631\u062c \u0627\u0644\u0623\u0633\u0648\u062f \u0627\u0644\u0633\u0641\u0644\u064a" }, "hidePlaylist": { - "message": "إخفاء قائمة التشغيل" + "message": "\u0625\u062e\u0641\u0627\u0621 \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u062a\u0634\u063a\u064a\u0644" }, "hideRightButtons": { - "message": "إخفاء الأزرار اليسرى" + "message": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0623\u0632\u0631\u0627\u0631 \u0627\u0644\u064a\u0633\u0631\u0649" }, "hideScrollForDetails": { - "message": "«إخفاء «التمرير للحصول على التفاصيل" + "message": "\u00ab\u0625\u062e\u0641\u0627\u0621 \u00ab\u0627\u0644\u062a\u0645\u0631\u064a\u0631 \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0627\u0644\u062a\u0641\u0627\u0635\u064a\u0644" }, "hideViewsCount": { - "message": "إخفاء عدد المشاهدات" + "message": "\u0625\u062e\u0641\u0627\u0621 \u0639\u062f\u062f \u0627\u0644\u0645\u0634\u0627\u0647\u062f\u0627\u062a" }, "history": { - "message": "السجلّ" + "message": "\u0627\u0644\u0633\u062c\u0644\u0651" }, "home": { - "message": "الصفحة الرئيسية" + "message": "\u0627\u0644\u0635\u0641\u062d\u0629 \u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0629" }, "hover": { - "message": "تمرير" + "message": "\u062a\u0645\u0631\u064a\u0631" }, "hoverOnVideoPage": { - "message": "تمرير فوق صفحة الفيديو" + "message": "\u062a\u0645\u0631\u064a\u0631 \u0641\u0648\u0642 \u0635\u0641\u062d\u0629 \u0627\u0644\u0641\u064a\u062f\u064a\u0648" }, "howLongAgoTheVideoWasUploaded": { - "message": "منذ متى تم تحميل الفيديو" + "message": "\u0645\u0646\u0630 \u0645\u062a\u0649 \u062a\u0645 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0641\u064a\u062f\u064a\u0648" }, "icons": { - "message": "أيقونات" + "message": "\u0623\u064a\u0642\u0648\u0646\u0627\u062a" }, "iconsOnly": { - "message": "أيقونات فقط" + "message": "\u0623\u064a\u0642\u0648\u0646\u0627\u062a \u0641\u0642\u0637" }, "importSettings": { - "message": "استيراد الاعدادات" + "message": "\u0627\u0633\u062a\u064a\u0631\u0627\u062f \u0627\u0644\u0627\u0639\u062f\u0627\u062f\u0627\u062a" + }, + "improveLogo": { + "message": "\u062a\u062d\u0633\u064a\u0646 \u0627\u0644\u0634\u0639\u0627\u0631" }, "improvedtubeIconInBrowser": { - "message": "في المتصفح ImprovedTube ايقونة" + "message": "\u0641\u064a \u0627\u0644\u0645\u062a\u0635\u0641\u062d ImprovedTube \u0627\u064a\u0642\u0648\u0646\u0629" }, "improvedtubeIconOnYoutube": { - "message": "في اليوتيوب ImprovedTube ايقونة" + "message": "\u0641\u064a \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628 ImprovedTube \u0627\u064a\u0642\u0648\u0646\u0629" }, "improvedtubeLanguage": { - "message": "ImprovedTube لغة" + "message": "ImprovedTube \u0644\u063a\u0629" }, "improvedtubeVersion": { - "message": "ImprovedTube اصدار" - }, - "improveLogo": { - "message": "تحسين الشعار" + "message": "ImprovedTube \u0627\u0635\u062f\u0627\u0631" }, "increasePlaybackSpeed": { - "message": "زيادة سرعة التشغيل" + "message": "\u0632\u064a\u0627\u062f\u0629 \u0633\u0631\u0639\u0629 \u0627\u0644\u062a\u0634\u063a\u064a\u0644" }, "increaseVolume5": { - "message": "5% زيادة الصوت" + "message": "5% \u0632\u064a\u0627\u062f\u0629 \u0627\u0644\u0635\u0648\u062a" }, "indigo": { - "message": "نيلي" + "message": "\u0646\u064a\u0644\u064a" }, "items": { - "message": "العناصر" + "message": "\u0627\u0644\u0639\u0646\u0627\u0635\u0631" }, "languages": { - "message": "اللغات" + "message": "\u0627\u0644\u0644\u063a\u0627\u062a" }, "legacyYoutube": { - "message": "اليوتيوب القديم" + "message": "\u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628 \u0627\u0644\u0642\u062f\u064a\u0645" }, "light": { - "message": "ضوء" + "message": "\u0636\u0648\u0621" }, "lightBlue": { - "message": "أزرق فاتح" + "message": "\u0623\u0632\u0631\u0642 \u0641\u0627\u062a\u062d" }, "lightGreen": { - "message": "اخضر فاتح" + "message": "\u0627\u062e\u0636\u0631 \u0641\u0627\u062a\u062d" }, "like": { - "message": "اعحبني" + "message": "\u0627\u0639\u062d\u0628\u0646\u064a" }, "likes": { - "message": "الإعجابات" + "message": "\u0627\u0644\u0625\u0639\u062c\u0627\u0628\u0627\u062a" }, "lime": { - "message": "جير" + "message": "\u062c\u064a\u0631" }, "list": { - "message": "قائمة" + "message": "\u0642\u0627\u0626\u0645\u0629" }, "liveChat": { - "message": "محادثة مباشرة" + "message": "\u0645\u062d\u0627\u062f\u062b\u0629 \u0645\u0628\u0627\u0634\u0631\u0629" }, "liveChatType": { - "message": "نوع المحادثة مباشرة" + "message": "\u0646\u0648\u0639 \u0627\u0644\u0645\u062d\u0627\u062f\u062b\u0629 \u0645\u0628\u0627\u0634\u0631\u0629" }, "loudnessNormalization": { - "message": "تطبيع الإزعاج" + "message": "\u062a\u0637\u0628\u064a\u0639 \u0627\u0644\u0625\u0632\u0639\u0627\u062c" }, "markWatchedVideos": { - "message": "التعليم على الفيديو المشاهد" + "message": "\u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0644\u0649 \u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0627\u0644\u0645\u0634\u0627\u0647\u062f" }, "mixer": { - "message": "مهندس الصوت" + "message": "\u0645\u0647\u0646\u062f\u0633 \u0627\u0644\u0635\u0648\u062a" }, "myColors": { - "message": "ألواني" + "message": "\u0623\u0644\u0648\u0627\u0646\u064a" }, "name": { - "message": "الاسم" + "message": "\u0627\u0644\u0627\u0633\u0645" }, "nativeMiniPlayer": { - "message": "المشغل الافتراضي الصغير" + "message": "\u0627\u0644\u0645\u0634\u063a\u0644 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a \u0627\u0644\u0635\u063a\u064a\u0631" }, "new": { - "message": "جديد" + "message": "\u062c\u062f\u064a\u062f" }, "nextVideo": { - "message": "الفيديو التالي" + "message": "\u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0627\u0644\u062a\u0627\u0644\u064a" }, "night": { - "message": "ليل" + "message": "\u0644\u064a\u0644" }, "noActiveFeatures": { - "message": "لا يوجد ميزات نشطة" - }, - "none": { - "message": "لاشيء" + "message": "\u0644\u0627 \u064a\u0648\u062c\u062f \u0645\u064a\u0632\u0627\u062a \u0646\u0634\u0637\u0629" }, "noOpenVideoTabs": { - "message": "لا توجد علامات تبويب فيديو مفتوحة" + "message": "\u0644\u0627 \u062a\u0648\u062c\u062f \u0639\u0644\u0627\u0645\u0627\u062a \u062a\u0628\u0648\u064a\u0628 \u0641\u064a\u062f\u064a\u0648 \u0645\u0641\u062a\u0648\u062d\u0629" + }, + "none": { + "message": "\u0644\u0627\u0634\u064a\u0621" }, "normal": { - "message": "عادي" + "message": "\u0639\u0627\u062f\u064a" }, "old": { - "message": "قديم" + "message": "\u0642\u062f\u064a\u0645" }, "onAllVideos": { - "message": "على جميع مقاطع الفيديو" + "message": "\u0639\u0644\u0649 \u062c\u0645\u064a\u0639 \u0645\u0642\u0627\u0637\u0639 \u0627\u0644\u0641\u064a\u062f\u064a\u0648" + }, + "onSubscribedChannels": { + "message": "\u0639\u0644\u0649 \u0627\u0644\u0642\u0646\u0648\u0627\u062a \u0627\u0644\u0645\u0634\u062a\u0631\u0643\u0629" }, "onlyActiveOnYoutube": { - "message": "نشط فقط على اليوتيوب" + "message": "\u0646\u0634\u0637 \u0641\u0642\u0637 \u0639\u0644\u0649 \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628" }, "onlyOnePlayerInstancePlaying": { - "message": "تشغيل مشغل واحد فقط" - }, - "onSubscribedChannels": { - "message": "على القنوات المشتركة" + "message": "\u062a\u0634\u063a\u064a\u0644 \u0645\u0634\u063a\u0644 \u0648\u0627\u062d\u062f \u0641\u0642\u0637" }, "orange": { - "message": "برتقالي" + "message": "\u0628\u0631\u062a\u0642\u0627\u0644\u064a" }, "os": { - "message": "نظام التشغيل" + "message": "\u0646\u0638\u0627\u0645 \u0627\u0644\u062a\u0634\u063a\u064a\u0644" }, "other": { - "message": "آخر" + "message": "\u0622\u062e\u0631" }, "permissions": { - "message": "الأذونات" + "message": "\u0627\u0644\u0623\u0630\u0648\u0646\u0627\u062a" }, "pictureInPicture": { - "message": "فيديو عائم" + "message": "\u0641\u064a\u062f\u064a\u0648 \u0639\u0627\u0626\u0645" }, "pink": { - "message": "زهري" + "message": "\u0632\u0647\u0631\u064a" }, "plain": { - "message": "عادي" + "message": "\u0639\u0627\u062f\u064a" }, "platform": { - "message": "المنصة" + "message": "\u0627\u0644\u0645\u0646\u0635\u0629" + }, + "playPause": { + "message": "\u062a\u0634\u063a\u064a\u0644 / \u0627\u064a\u0642\u0627\u0641" }, "playbackSpeed": { - "message": "سرعة التشغيل" + "message": "\u0633\u0631\u0639\u0629 \u0627\u0644\u062a\u0634\u063a\u064a\u0644" }, "player": { - "message": "المشغل" + "message": "\u0627\u0644\u0645\u0634\u063a\u0644" }, "playerColor": { - "message": "لون المشغل" + "message": "\u0644\u0648\u0646 \u0627\u0644\u0645\u0634\u063a\u0644" }, "playerSize": { - "message": "حجم المشغل" + "message": "\u062d\u062c\u0645 \u0627\u0644\u0645\u0634\u063a\u0644" }, "playlist": { - "message": "قائمة التشغيل" + "message": "\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u062a\u0634\u063a\u064a\u0644" }, "playlists": { - "message": "قوائم التشغيل" - }, - "playPause": { - "message": "تشغيل / ايقاف" + "message": "\u0642\u0648\u0627\u0626\u0645 \u0627\u0644\u062a\u0634\u063a\u064a\u0644" }, "popupPlayer": { - "message": "مشفل منبثق" + "message": "\u0645\u0634\u0641\u0644 \u0645\u0646\u0628\u062b\u0642" }, "position": { - "message": "التموضع" + "message": "\u0627\u0644\u062a\u0645\u0648\u0636\u0639" }, "pressAnyKeyOrScroll": { - "message": ".اضغط على أي مفتاح أو استخدم عجلة الماوس" + "message": ".\u0627\u0636\u063a\u0637 \u0639\u0644\u0649 \u0623\u064a \u0645\u0641\u062a\u0627\u062d \u0623\u0648 \u0627\u0633\u062a\u062e\u062f\u0645 \u0639\u062c\u0644\u0629 \u0627\u0644\u0645\u0627\u0648\u0633" }, "pressAnyKeyOrUseMouseWheel": { - "message": "اضغط على أي مفتاح أو استخدم عجلة الماوس" + "message": "\u0627\u0636\u063a\u0637 \u0639\u0644\u0649 \u0623\u064a \u0645\u0641\u062a\u0627\u062d \u0623\u0648 \u0627\u0633\u062a\u062e\u062f\u0645 \u0639\u062c\u0644\u0629 \u0627\u0644\u0645\u0627\u0648\u0633" }, "previousVideo": { - "message": "الفيديو السابق" + "message": "\u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0627\u0644\u0633\u0627\u0628\u0642" }, "primaryColor": { - "message": "اللون الأصلي" + "message": "\u0627\u0644\u0644\u0648\u0646 \u0627\u0644\u0623\u0635\u0644\u064a" }, "purple": { - "message": "أرجواني" + "message": "\u0623\u0631\u062c\u0648\u0627\u0646\u064a" }, "quality": { - "message": "الجودة" + "message": "\u0627\u0644\u062c\u0648\u062f\u0629" }, "ram": { - "message": "الذاكرة العشوائية" + "message": "\u0627\u0644\u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u0639\u0634\u0648\u0627\u0626\u064a\u0629" }, "rateUs": { - "message": "قيمنا" + "message": "\u0642\u064a\u0645\u0646\u0627" }, "red": { - "message": "احمر" + "message": "\u0627\u062d\u0645\u0631" }, "redDislikeButton": { - "message": "إظهار زر لم يعجبني باللون الأحمر" + "message": "\u0625\u0638\u0647\u0627\u0631 \u0632\u0631 \u0644\u0645 \u064a\u0639\u062c\u0628\u0646\u064a \u0628\u0627\u0644\u0644\u0648\u0646 \u0627\u0644\u0623\u062d\u0645\u0631" }, "relatedVideos": { - "message": "فيديوهات ذات علاقة" + "message": "\u0641\u064a\u062f\u064a\u0648\u0647\u0627\u062a \u0630\u0627\u062a \u0639\u0644\u0627\u0642\u0629" }, "removeRelatedSearchResults": { - "message": "إزالة عمليات بحث مرتبطة بـ" + "message": "\u0625\u0632\u0627\u0644\u0629 \u0639\u0645\u0644\u064a\u0627\u062a \u0628\u062d\u062b \u0645\u0631\u062a\u0628\u0637\u0629 \u0628\u0640" }, "repeat": { - "message": "تكرار" + "message": "\u062a\u0643\u0631\u0627\u0631" }, "reset": { - "message": "إعادة تعيين" + "message": "\u0625\u0639\u0627\u062f\u0629 \u062a\u0639\u064a\u064a\u0646" }, "resetAllSettings": { - "message": "إعادة تعيين كافة الإعدادات" + "message": "\u0625\u0639\u0627\u062f\u0629 \u062a\u0639\u064a\u064a\u0646 \u0643\u0627\u0641\u0629 \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a" }, "resetAllShortcuts": { - "message": "إعادة تعيين جميع الاختصارات" + "message": "\u0625\u0639\u0627\u062f\u0629 \u062a\u0639\u064a\u064a\u0646 \u062c\u0645\u064a\u0639 \u0627\u0644\u0627\u062e\u062a\u0635\u0627\u0631\u0627\u062a" }, "reverse": { - "message": "عكس" + "message": "\u0639\u0643\u0633" }, "rotate": { - "message": "استدارة" + "message": "\u0627\u0633\u062a\u062f\u0627\u0631\u0629" }, "save": { - "message": "حفظ" + "message": "\u062d\u0641\u0638" }, "saveAs": { - "message": "حفظ باسم" + "message": "\u062d\u0641\u0638 \u0628\u0627\u0633\u0645" }, "schedule": { - "message": "جدوله" + "message": "\u062c\u062f\u0648\u0644\u0647" }, "screen": { - "message": "الشاشة" + "message": "\u0627\u0644\u0634\u0627\u0634\u0629" }, "screenshot": { - "message": "لقطة شاشة" + "message": "\u0644\u0642\u0637\u0629 \u0634\u0627\u0634\u0629" }, "search": { - "message": "بحث" + "message": "\u0628\u062d\u062b" }, "searchBarOnly": { - "message": "شريط البحث فقط" + "message": "\u0634\u0631\u064a\u0637 \u0627\u0644\u0628\u062d\u062b \u0641\u0642\u0637" }, "seekBackward10Seconds": { - "message": "إرجاع بمقدار 10 ثوانٍ" + "message": "\u0625\u0631\u062c\u0627\u0639 \u0628\u0645\u0642\u062f\u0627\u0631 10 \u062b\u0648\u0627\u0646\u064d" }, "seekForward10Seconds": { - "message": "تقديم 10 ثوانٍ إلى الأمام" + "message": "\u062a\u0642\u062f\u064a\u0645 10 \u062b\u0648\u0627\u0646\u064d \u0625\u0644\u0649 \u0627\u0644\u0623\u0645\u0627\u0645" }, "settings": { - "message": "الإعدادات" + "message": "\u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a" }, "settingsSuccessfullyImported": { - "message": "تم استيراد الإعدادات بنجاح" + "message": "\u062a\u0645 \u0627\u0633\u062a\u064a\u0631\u0627\u062f \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0628\u0646\u062c\u0627\u062d" }, "shortcuts": { - "message": "اختصارات" + "message": "\u0627\u062e\u062a\u0635\u0627\u0631\u0627\u062a" }, "showCardsOnMouseHover": { - "message": "عرض البطاقات عند تمرير الماوس" + "message": "\u0639\u0631\u0636 \u0627\u0644\u0628\u0637\u0627\u0642\u0627\u062a \u0639\u0646\u062f \u062a\u0645\u0631\u064a\u0631 \u0627\u0644\u0645\u0627\u0648\u0633" }, "showChannelVideosCount": { - "message": "إظهار عدد مقاطع الفيديو للقناة" + "message": "\u0625\u0638\u0647\u0627\u0631 \u0639\u062f\u062f \u0645\u0642\u0627\u0637\u0639 \u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0644\u0644\u0642\u0646\u0627\u0629" }, "shuffle": { - "message": "عشوائي" + "message": "\u0639\u0634\u0648\u0627\u0626\u064a" }, "sidebar": { - "message": "الشريط الجانبي" + "message": "\u0627\u0644\u0634\u0631\u064a\u0637 \u0627\u0644\u062c\u0627\u0646\u0628\u064a" }, "spacebar": { - "message": "مفتاح المسافة" + "message": "\u0645\u0641\u062a\u0627\u062d \u0627\u0644\u0645\u0633\u0627\u0641\u0629" }, "squaredUserImages": { - "message": "صور المستخدمين مربعة" + "message": "\u0635\u0648\u0631 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0645\u0631\u0628\u0639\u0629" }, "static": { - "message": "ثابت" + "message": "\u062b\u0627\u0628\u062a" }, "statsForNerds": { - "message": "عرض الإحصاءات المفصلة" + "message": "\u0639\u0631\u0636 \u0627\u0644\u0625\u062d\u0635\u0627\u0621\u0627\u062a \u0627\u0644\u0645\u0641\u0635\u0644\u0629" }, "step": { - "message": "خطوة" + "message": "\u062e\u0637\u0648\u0629" }, "stop": { - "message": "ايقاف" + "message": "\u0627\u064a\u0642\u0627\u0641" }, "style": { - "message": "نمط" + "message": "\u0646\u0645\u0637" }, "styles": { - "message": "الأنماط" + "message": "\u0627\u0644\u0623\u0646\u0645\u0627\u0637" }, "subscriptions": { - "message": "الاشتراكات" + "message": "\u0627\u0644\u0627\u0634\u062a\u0631\u0627\u0643\u0627\u062a" }, "subtitles": { - "message": "الترجمات" + "message": "\u0627\u0644\u062a\u0631\u062c\u0645\u0627\u062a" }, "sunset": { - "message": "غروب الشمس" + "message": "\u063a\u0631\u0648\u0628 \u0627\u0644\u0634\u0645\u0633" }, "sunsetToSunrise": { - "message": "من غروب الشمس إلى شروقها" + "message": "\u0645\u0646 \u063a\u0631\u0648\u0628 \u0627\u0644\u0634\u0645\u0633 \u0625\u0644\u0649 \u0634\u0631\u0648\u0642\u0647\u0627" }, "systemPeferenceDark": { - "message": "تفضيل النظام: داكن" + "message": "\u062a\u0641\u0636\u064a\u0644 \u0627\u0644\u0646\u0638\u0627\u0645: \u062f\u0627\u0643\u0646" }, "systemPeferenceLight": { - "message": "تفضيل النظام: فاتح" + "message": "\u062a\u0641\u0636\u064a\u0644 \u0627\u0644\u0646\u0638\u0627\u0645: \u0641\u0627\u062a\u062d" }, "teal": { - "message": "أزرق مخضر" + "message": "\u0623\u0632\u0631\u0642 \u0645\u062e\u0636\u0631" }, "textColor": { - "message": "لون النص" + "message": "\u0644\u0648\u0646 \u0627\u0644\u0646\u0635" }, "themes": { - "message": "المظاهر" + "message": "\u0627\u0644\u0645\u0638\u0627\u0647\u0631" }, "thisWillRemoveAllCookies": { - "message": ".سيؤدي هذا إلى إزالة كافة ملفات تعريف الارتباط" + "message": ".\u0633\u064a\u0624\u062f\u064a \u0647\u0630\u0627 \u0625\u0644\u0649 \u0625\u0632\u0627\u0644\u0629 \u0643\u0627\u0641\u0629 \u0645\u0644\u0641\u0627\u062a \u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0627\u0631\u062a\u0628\u0627\u0637" }, "thisWillRemoveAllYouTubeCookies": { - "message": "سيؤدي هذا إلى إزالة جميع ملفات تعريف ارتباط اليوتيوب" + "message": "\u0633\u064a\u0624\u062f\u064a \u0647\u0630\u0627 \u0625\u0644\u0649 \u0625\u0632\u0627\u0644\u0629 \u062c\u0645\u064a\u0639 \u0645\u0644\u0641\u0627\u062a \u062a\u0639\u0631\u064a\u0641 \u0627\u0631\u062a\u0628\u0627\u0637 \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628" }, "thisWillResetAllSettings": { - "message": ".سيؤدي هذا إلى إعادة تعيين جميع الإعدادات" + "message": ".\u0633\u064a\u0624\u062f\u064a \u0647\u0630\u0627 \u0625\u0644\u0649 \u0625\u0639\u0627\u062f\u0629 \u062a\u0639\u064a\u064a\u0646 \u062c\u0645\u064a\u0639 \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a" }, "thisWillResetAllShortcuts": { - "message": "سيؤدي هذا إلى إعادة تعيين جميع الاختصارات" + "message": "\u0633\u064a\u0624\u062f\u064a \u0647\u0630\u0627 \u0625\u0644\u0649 \u0625\u0639\u0627\u062f\u0629 \u062a\u0639\u064a\u064a\u0646 \u062c\u0645\u064a\u0639 \u0627\u0644\u0627\u062e\u062a\u0635\u0627\u0631\u0627\u062a" }, "thumbnails": { - "message": "الصور المصغرة" + "message": "\u0627\u0644\u0635\u0648\u0631 \u0627\u0644\u0645\u0635\u063a\u0631\u0629" }, "timeFrom": { - "message": "الوقت من" + "message": "\u0627\u0644\u0648\u0642\u062a \u0645\u0646" }, "timeTo": { - "message": "وقت ل" + "message": "\u0648\u0642\u062a \u0644" }, "todayAt": { - "message": "اليوم عند الساعة" + "message": "\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629" }, "toggleCards": { - "message": "تبديل وضع البطاقات" + "message": "\u062a\u0628\u062f\u064a\u0644 \u0648\u0636\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0627\u062a" }, "topChat": { - "message": "رسائل المحادثة الهامّة" + "message": "\u0631\u0633\u0627\u0626\u0644 \u0627\u0644\u0645\u062d\u0627\u062f\u062b\u0629 \u0627\u0644\u0647\u0627\u0645\u0651\u0629" }, "trailerAutoplay": { - "message": "التشغيل التلقائي للفيديو الدعائي" + "message": "\u0627\u0644\u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u062a\u0644\u0642\u0627\u0626\u064a \u0644\u0644\u0641\u064a\u062f\u064a\u0648 \u0627\u0644\u062f\u0639\u0627\u0626\u064a" }, "translations": { - "message": "الترجمات" + "message": "\u0627\u0644\u062a\u0631\u062c\u0645\u0627\u062a" }, "transparentBackground": { - "message": "خلفية شفافة" + "message": "\u062e\u0644\u0641\u064a\u0629 \u0634\u0641\u0627\u0641\u0629" }, "trending": { - "message": "المحتوى الرائج" + "message": "\u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0627\u0644\u0631\u0627\u0626\u062c" }, "tryToReloadThePage": { - "message": "حاول إعادة تحميل الصفحة" + "message": "\u062d\u0627\u0648\u0644 \u0625\u0639\u0627\u062f\u0629 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0635\u0641\u062d\u0629" }, "type": { - "message": "النوع" + "message": "\u0627\u0644\u0646\u0648\u0639" }, "upNextAutoplay": { - "message": "تشغيل التالي تلقائيا" + "message": "\u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u062a\u0627\u0644\u064a \u062a\u0644\u0642\u0627\u0626\u064a\u0627" }, "use24HourFormat": { - "message": "استخدم تنسيق 24 ساعة" + "message": "\u0627\u0633\u062a\u062e\u062f\u0645 \u062a\u0646\u0633\u064a\u0642 24 \u0633\u0627\u0639\u0629" }, "version": { - "message": "الإصدار" + "message": "\u0627\u0644\u0625\u0635\u062f\u0627\u0631" }, "video": { - "message": "الفيديو" + "message": "\u0627\u0644\u0641\u064a\u062f\u064a\u0648" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "سيتم توسيع وصف الفيديو للحصول على اسم الفئة" + "message": "\u0633\u064a\u062a\u0645 \u062a\u0648\u0633\u064a\u0639 \u0648\u0635\u0641 \u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0627\u0633\u0645 \u0627\u0644\u0641\u0626\u0629" }, "videoFormats": { - "message": "تنسيقات الفيديو" + "message": "\u062a\u0646\u0633\u064a\u0642\u0627\u062a \u0627\u0644\u0641\u064a\u062f\u064a\u0648" }, "videos": { - "message": "الفيديوهات" + "message": "\u0627\u0644\u0641\u064a\u062f\u064a\u0648\u0647\u0627\u062a" }, "volume": { - "message": "الصوت" + "message": "\u0627\u0644\u0635\u0648\u062a" }, "watchLater": { - "message": "المشاهدة لاحقا" + "message": "\u0627\u0644\u0645\u0634\u0627\u0647\u062f\u0629 \u0644\u0627\u062d\u0642\u0627" }, "watchTime": { - "message": "وقت المشاهدة" + "message": "\u0648\u0642\u062a \u0627\u0644\u0645\u0634\u0627\u0647\u062f\u0629" }, "whenTabIsChanged": { - "message": "عندما يتم تغيير علامة التبويب" + "message": "\u0639\u0646\u062f\u0645\u0627 \u064a\u062a\u0645 \u062a\u063a\u064a\u064a\u0631 \u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u062a\u0628\u0648\u064a\u0628" }, "white": { - "message": "أبيض" + "message": "\u0623\u0628\u064a\u0636" }, "yellow": { - "message": "أصفر" + "message": "\u0623\u0635\u0641\u0631" }, "youtubeHeaderLeft": { - "message": "جزء اليوتيوب العلوي (يسار) " + "message": "\u062c\u0632\u0621 \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628 \u0627\u0644\u0639\u0644\u0648\u064a (\u064a\u0633\u0627\u0631) " }, "youtubeHeaderRight": { - "message": "جزء اليوتيوب العلوي (يمين)" + "message": "\u062c\u0632\u0621 \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628 \u0627\u0644\u0639\u0644\u0648\u064a (\u064a\u0645\u064a\u0646)" }, "youtubeHomePage": { - "message": "صفحة اليوتيوب الرئيسية" + "message": "\u0635\u0641\u062d\u0629 \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628 \u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0629" }, "youtubeLanguage": { - "message": "لغة اليوتيوب" + "message": "\u0644\u063a\u0629 \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "h.264 يحد اليوتيوب من جودة الفيديو الى ١٠٨٠ لـ الترميز" + "message": "h.264 \u064a\u062d\u062f \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628 \u0645\u0646 \u062c\u0648\u062f\u0629 \u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0627\u0644\u0649 \u0661\u0660\u0668\u0660 \u0644\u0640 \u0627\u0644\u062a\u0631\u0645\u064a\u0632" } -} +} \ No newline at end of file diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index b0fa624c6..4ecaf197b 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -1,812 +1,815 @@ { + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "about": { - "message": "সম্পর্কিত" + "message": "\u09b8\u09ae\u09cd\u09aa\u09b0\u09cd\u0995\u09bf\u09a4" }, "accept": { - "message": "গ্রহণ করুন" + "message": "\u0997\u09cd\u09b0\u09b9\u09a3 \u0995\u09b0\u09c1\u09a8" }, "activate": { - "message": "সক্রিয় করুন" + "message": "\u09b8\u0995\u09cd\u09b0\u09bf\u09af\u09bc \u0995\u09b0\u09c1\u09a8" }, "activateCaptions": { - "message": "ক্যাপশন সক্রিয় করুন" + "message": "\u0995\u09cd\u09af\u09be\u09aa\u09b6\u09a8 \u09b8\u0995\u09cd\u09b0\u09bf\u09af\u09bc \u0995\u09b0\u09c1\u09a8" + }, + "activateFullscreen": { + "message": "\u09aa\u09c2\u09b0\u09cd\u09a3 \u09aa\u09b0\u09cd\u09a6\u09be \u09b8\u0995\u09cd\u09b0\u09bf\u09af\u09bc \u0995\u09b0\u09c1\u09a8" }, "activated": { - "message": "সক্রিয়" + "message": "\u09b8\u0995\u09cd\u09b0\u09bf\u09af\u09bc" }, "activatedFeatures": { - "message": "বৈশিষ্ট্য সক্রিয় করুন" - }, - "activateFullscreen": { - "message": "পূর্ণ পর্দা সক্রিয় করুন" + "message": "\u09ac\u09c8\u09b6\u09bf\u09b7\u09cd\u099f\u09cd\u09af \u09b8\u0995\u09cd\u09b0\u09bf\u09af\u09bc \u0995\u09b0\u09c1\u09a8" }, "activeFeatures": { - "message": "সক্রিয় বৈশিষ্" + "message": "\u09b8\u0995\u09cd\u09b0\u09bf\u09af\u09bc \u09ac\u09c8\u09b6\u09bf\u09b7\u09cd" }, "addScrollToTop": { - "message": "«উপরে যাবার বাটন» যোগ করুন" + "message": "\u00ab\u0989\u09aa\u09b0\u09c7 \u09af\u09be\u09ac\u09be\u09b0 \u09ac\u09be\u099f\u09a8\u00bb \u09af\u09cb\u0997 \u0995\u09b0\u09c1\u09a8" }, "ads": { - "message": "বিজ্ঞাপন" + "message": "\u09ac\u09bf\u099c\u09cd\u099e\u09be\u09aa\u09a8" }, "all": { - "message": "সব" + "message": "\u09b8\u09ac" }, "allow": { - "message": "অনুমতি দিন" + "message": "\u0985\u09a8\u09c1\u09ae\u09a4\u09bf \u09a6\u09bf\u09a8" }, "allow60fps": { - "message": "60 ফ্রেম প্রতি সেকেন্ অনুমতি দিনড" - }, - "forceSDR": { - "message": "Force SDR" + "message": "60 \u09ab\u09cd\u09b0\u09c7\u09ae \u09aa\u09cd\u09b0\u09a4\u09bf \u09b8\u09c7\u0995\u09c7\u09a8\u09cd \u0985\u09a8\u09c1\u09ae\u09a4\u09bf \u09a6\u09bf\u09a8\u09a1" }, "alwaysActive": { - "message": "সর্বদা সক্রিয়" + "message": "\u09b8\u09b0\u09cd\u09ac\u09a6\u09be \u09b8\u0995\u09cd\u09b0\u09bf\u09af\u09bc" }, "alwaysShowProgressBar": { - "message": "সর্বদা অগ্রগতি বার প্রদর্শন করুন" + "message": "\u09b8\u09b0\u09cd\u09ac\u09a6\u09be \u0985\u0997\u09cd\u09b0\u0997\u09a4\u09bf \u09ac\u09be\u09b0 \u09aa\u09cd\u09b0\u09a6\u09b0\u09cd\u09b6\u09a8 \u0995\u09b0\u09c1\u09a8" }, "amber": { - "message": "অ্যাম্বার" + "message": "\u0985\u09cd\u09af\u09be\u09ae\u09cd\u09ac\u09be\u09b0" }, "analyzer": { - "message": "বিশ্লেষক" + "message": "\u09ac\u09bf\u09b6\u09cd\u09b2\u09c7\u09b7\u0995" }, "appearance": { - "message": "উপস্থিতি" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" + "message": "\u0989\u09aa\u09b8\u09cd\u09a5\u09bf\u09a4\u09bf" }, "audio": { - "message": "শ্রুতি" + "message": "\u09b6\u09cd\u09b0\u09c1\u09a4\u09bf" }, "audioFormats": { - "message": "শ্রুতি ফর্ম্যাট" + "message": "\u09b6\u09cd\u09b0\u09c1\u09a4\u09bf \u09ab\u09b0\u09cd\u09ae\u09cd\u09af\u09be\u099f" }, "auto": { - "message": "অটো" + "message": "\u0985\u099f\u09cb" }, "autoFullscreen": { - "message": "স্বতঃ পূর্ণস্ক্রীন" + "message": "\u09b8\u09cd\u09ac\u09a4\u0983 \u09aa\u09c2\u09b0\u09cd\u09a3\u09b8\u09cd\u0995\u09cd\u09b0\u09c0\u09a8" }, "autopauseWhenSwitchingTabs": { - "message": "ট্যাবগুলি স্যুইচ করার সময় অটো বিরাম দিন" + "message": "\u099f\u09cd\u09af\u09be\u09ac\u0997\u09c1\u09b2\u09bf \u09b8\u09cd\u09af\u09c1\u0987\u099a \u0995\u09b0\u09be\u09b0 \u09b8\u09ae\u09af\u09bc \u0985\u099f\u09cb \u09ac\u09bf\u09b0\u09be\u09ae \u09a6\u09bf\u09a8" }, "autoplay": { - "message": "স্বয়ংক্রিয় চালু" + "message": "\u09b8\u09cd\u09ac\u09af\u09bc\u0982\u0995\u09cd\u09b0\u09bf\u09af\u09bc \u099a\u09be\u09b2\u09c1" }, "backupAndReset": { - "message": "ব্যাকআপ এবং পুনরায় সেট করুন" + "message": "\u09ac\u09cd\u09af\u09be\u0995\u0986\u09aa \u098f\u09ac\u0982 \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u099f \u0995\u09b0\u09c1\u09a8" }, "baseOnSystemColorScheme": { - "message": "সিস্টেম রঙের স্কিমের ভিত্তিতে" + "message": "\u09b8\u09bf\u09b8\u09cd\u099f\u09c7\u09ae \u09b0\u0999\u09c7\u09b0 \u09b8\u09cd\u0995\u09bf\u09ae\u09c7\u09b0 \u09ad\u09bf\u09a4\u09cd\u09a4\u09bf\u09a4\u09c7" }, "belowPlayer": { - "message": "প্লেয়ারের নিচে" + "message": "\u09aa\u09cd\u09b2\u09c7\u09af\u09bc\u09be\u09b0\u09c7\u09b0 \u09a8\u09bf\u099a\u09c7" }, "black": { - "message": "কালো" + "message": "\u0995\u09be\u09b2\u09cb" }, "blacklist": { - "message": "কালো তালিকা" + "message": "\u0995\u09be\u09b2\u09cb \u09a4\u09be\u09b2\u09bf\u0995\u09be" }, "blockAll": { - "message": "সবাইকে ব্লক" + "message": "\u09b8\u09ac\u09be\u0987\u0995\u09c7 \u09ac\u09cd\u09b2\u0995" }, "blue": { - "message": "নীল" + "message": "\u09a8\u09c0\u09b2" }, "blueGray": { - "message": "নীল ধূসর" + "message": "\u09a8\u09c0\u09b2 \u09a7\u09c2\u09b8\u09b0" }, "bluelight": { - "message": "নীল আলো" + "message": "\u09a8\u09c0\u09b2 \u0986\u09b2\u09cb" }, "brown": { - "message": "বাদামী" + "message": "\u09ac\u09be\u09a6\u09be\u09ae\u09c0" }, "browser": { - "message": "ব্রাউজার" + "message": "\u09ac\u09cd\u09b0\u09be\u0989\u099c\u09be\u09b0" }, "browserVersion": { - "message": "ব্রাউজার মারজান" + "message": "\u09ac\u09cd\u09b0\u09be\u0989\u099c\u09be\u09b0 \u09ae\u09be\u09b0\u099c\u09be\u09a8" }, "bubbles": { - "message": "বুলবুলা" + "message": "\u09ac\u09c1\u09b2\u09ac\u09c1\u09b2\u09be" }, "bug": { - "message": "বাগ" + "message": "\u09ac\u09be\u0997" }, "buttons": { - "message": "বোতাম" + "message": "\u09ac\u09cb\u09a4\u09be\u09ae" }, "cancel": { - "message": "বাতিল" + "message": "\u09ac\u09be\u09a4\u09bf\u09b2" }, "categories": { - "message": "বিভাগসমূহ" + "message": "\u09ac\u09bf\u09ad\u09be\u0997\u09b8\u09ae\u09c2\u09b9" }, "channel": { - "message": "চ্যানেল" + "message": "\u099a\u09cd\u09af\u09be\u09a8\u09c7\u09b2" }, "channels": { - "message": "চ্যানেলগুলি" + "message": "\u099a\u09cd\u09af\u09be\u09a8\u09c7\u09b2\u0997\u09c1\u09b2\u09bf" }, "clipboard": { - "message": "ক্লিপবোর্ড" + "message": "\u0995\u09cd\u09b2\u09bf\u09aa\u09ac\u09cb\u09b0\u09cd\u09a1" }, "codecH264": { - "message": "কোডেক h.264" - }, - "collapsed": { - "message": "ভেঙে দেবো" + "message": "\u0995\u09cb\u09a1\u09c7\u0995 h.264" }, "collapseOfSubscriptionSections": { - "message": "সাবস্ক্রিপশন বিভাগ ভেঙে দেবো" + "message": "\u09b8\u09be\u09ac\u09b8\u09cd\u0995\u09cd\u09b0\u09bf\u09aa\u09b6\u09a8 \u09ac\u09bf\u09ad\u09be\u0997 \u09ad\u09c7\u0999\u09c7 \u09a6\u09c7\u09ac\u09cb" + }, + "collapsed": { + "message": "\u09ad\u09c7\u0999\u09c7 \u09a6\u09c7\u09ac\u09cb" }, "comments": { - "message": "মন্তব্য" + "message": "\u09ae\u09a8\u09cd\u09a4\u09ac\u09cd\u09af" }, "confirmationBeforeClosing": { - "message": "বন্ধ হওয়ার আগে নিশ্চিতকরণ" + "message": "\u09ac\u09a8\u09cd\u09a7 \u09b9\u0993\u09af\u09bc\u09be\u09b0 \u0986\u0997\u09c7 \u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4\u0995\u09b0\u09a3" }, "cookies": { - "message": "কুকিজ" + "message": "\u0995\u09c1\u0995\u09bf\u099c" }, "cores": { - "message": "কোর" + "message": "\u0995\u09cb\u09b0" }, "cropChapterTitles": { - "message": "অধ্যায়ের শিরোনাম হ্রাস করুন" + "message": "\u0985\u09a7\u09cd\u09af\u09be\u09af\u09bc\u09c7\u09b0 \u09b6\u09bf\u09b0\u09cb\u09a8\u09be\u09ae \u09b9\u09cd\u09b0\u09be\u09b8 \u0995\u09b0\u09c1\u09a8" }, "customCss": { - "message": "কাস্টম CSS" + "message": "\u0995\u09be\u09b8\u09cd\u099f\u09ae CSS" }, "customJs": { - "message": "কাস্টম JS" + "message": "\u0995\u09be\u09b8\u09cd\u099f\u09ae JS" }, "customMiniPlayer": { - "message": "কাস্টম মিনি প্লেয়ার" + "message": "\u0995\u09be\u09b8\u09cd\u099f\u09ae \u09ae\u09bf\u09a8\u09bf \u09aa\u09cd\u09b2\u09c7\u09af\u09bc\u09be\u09b0" }, "cyan": { - "message": "হালকা নীল" + "message": "\u09b9\u09be\u09b2\u0995\u09be \u09a8\u09c0\u09b2" }, "dark": { - "message": "গা .়" + "message": "\u0997\u09be .\u09bc" }, "darkTheme": { - "message": "গা .় থিম" + "message": "\u0997\u09be .\u09bc \u09a5\u09bf\u09ae" }, "dateAndTime": { - "message": "তারিখ আর সময়" + "message": "\u09a4\u09be\u09b0\u09bf\u0996 \u0986\u09b0 \u09b8\u09ae\u09af\u09bc" }, "dawn": { - "message": "ভোর" + "message": "\u09ad\u09cb\u09b0" }, "decreasePlaybackSpeed": { - "message": "প্লেব্যাকের গতি হ্রাস করুন" + "message": "\u09aa\u09cd\u09b2\u09c7\u09ac\u09cd\u09af\u09be\u0995\u09c7\u09b0 \u0997\u09a4\u09bf \u09b9\u09cd\u09b0\u09be\u09b8 \u0995\u09b0\u09c1\u09a8" }, "decreaseVolume": { - "message": "শব্দ হ্রাস করুন" + "message": "\u09b6\u09ac\u09cd\u09a6 \u09b9\u09cd\u09b0\u09be\u09b8 \u0995\u09b0\u09c1\u09a8" }, "deepOrange": { - "message": "গভীর কমলা" + "message": "\u0997\u09ad\u09c0\u09b0 \u0995\u09ae\u09b2\u09be" }, "deepPurple": { - "message": "গভীর বেগুনি" + "message": "\u0997\u09ad\u09c0\u09b0 \u09ac\u09c7\u0997\u09c1\u09a8\u09bf" }, "defaultChannelTab": { - "message": "ডিফল্ট চ্যানেল ট্যাব" + "message": "\u09a1\u09bf\u09ab\u09b2\u09cd\u099f \u099a\u09cd\u09af\u09be\u09a8\u09c7\u09b2 \u099f\u09cd\u09af\u09be\u09ac" }, "deleteYoutubeCookies": { - "message": "ইউটিউব এর কুকি ডিলিট করুন" + "message": "\u0987\u0989\u099f\u09bf\u0989\u09ac \u098f\u09b0 \u0995\u09c1\u0995\u09bf \u09a1\u09bf\u09b2\u09bf\u099f \u0995\u09b0\u09c1\u09a8" }, "description": { - "message": "বর্ণনা" + "message": "\u09ac\u09b0\u09cd\u09a3\u09a8\u09be" }, "desert": { - "message": "মরুভূমি" + "message": "\u09ae\u09b0\u09c1\u09ad\u09c2\u09ae\u09bf" }, "details": { - "message": "বিশদ" + "message": "\u09ac\u09bf\u09b6\u09a6" }, "developerOptions": { - "message": "বিকাশকারী বিকল্পসমূহ" + "message": "\u09ac\u09bf\u0995\u09be\u09b6\u0995\u09be\u09b0\u09c0 \u09ac\u09bf\u0995\u09b2\u09cd\u09aa\u09b8\u09ae\u09c2\u09b9" }, "device": { - "message": "যন্ত্র" + "message": "\u09af\u09a8\u09cd\u09a4\u09cd\u09b0" }, "dim": { - "message": "ম্লান" + "message": "\u09ae\u09cd\u09b2\u09be\u09a8" }, "disabled": { - "message": "অক্ষম" + "message": "\u0985\u0995\u09cd\u09b7\u09ae" }, "dislike": { - "message": "অপছন্দ" - }, - "donate": { - "message": "দান করুন" + "message": "\u0985\u09aa\u099b\u09a8\u09cd\u09a6" }, "doNotChange": { - "message": "পরিবর্তন করবেন না" + "message": "\u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0995\u09b0\u09ac\u09c7\u09a8 \u09a8\u09be" + }, + "donate": { + "message": "\u09a6\u09be\u09a8 \u0995\u09b0\u09c1\u09a8" }, "draggable": { - "message": "টেনে আনে" + "message": "\u099f\u09c7\u09a8\u09c7 \u0986\u09a8\u09c7" }, "email": { - "message": "ইমেল" + "message": "\u0987\u09ae\u09c7\u09b2" }, "empty": { - "message": "খালি" + "message": "\u0996\u09be\u09b2\u09bf" }, "enabled": { - "message": "সক্ষম" + "message": "\u09b8\u0995\u09cd\u09b7\u09ae" }, "enabledForced": { - "message": "সক্ষম (জোরপূর্বক)" + "message": "\u09b8\u0995\u09cd\u09b7\u09ae (\u099c\u09cb\u09b0\u09aa\u09c2\u09b0\u09cd\u09ac\u0995)" }, "expanded": { - "message": "প্রসারিত" + "message": "\u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09bf\u09a4" }, "exportSettings": { - "message": "সেটিংস রফতানি করুন" + "message": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09b0\u09ab\u09a4\u09be\u09a8\u09bf \u0995\u09b0\u09c1\u09a8" }, "extension": { - "message": "এক্সটেনশন" + "message": "\u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8" }, "file": { - "message": "ফাইল" + "message": "\u09ab\u09be\u0987\u09b2" }, "filters": { - "message": "ফিল্টার" + "message": "\u09ab\u09bf\u09b2\u09cd\u099f\u09be\u09b0" }, "fitToWindow": { - "message": "উইন্ডোতে ফিট করুন" + "message": "\u0989\u0987\u09a8\u09cd\u09a1\u09cb\u09a4\u09c7 \u09ab\u09bf\u099f \u0995\u09b0\u09c1\u09a8" }, "flash": { - "message": "ফ্ল্যাশ" + "message": "\u09ab\u09cd\u09b2\u09cd\u09af\u09be\u09b6" }, "font": { - "message": "হরফ" + "message": "\u09b9\u09b0\u09ab" }, "footer": { - "message": "পাদচরণ" + "message": "\u09aa\u09be\u09a6\u099a\u09b0\u09a3" + }, + "forceSDR": { + "message": "Force SDR" }, "forcedPlaybackSpeed": { - "message": "জোর করে প্লেব্যাক গতি" + "message": "\u099c\u09cb\u09b0 \u0995\u09b0\u09c7 \u09aa\u09cd\u09b2\u09c7\u09ac\u09cd\u09af\u09be\u0995 \u0997\u09a4\u09bf" }, "forcedTheaterMode": { - "message": "জোর করে থিয়েটার মোড" + "message": "\u099c\u09cb\u09b0 \u0995\u09b0\u09c7 \u09a5\u09bf\u09af\u09bc\u09c7\u099f\u09be\u09b0 \u09ae\u09cb\u09a1" }, "forcedVolume": { - "message": "জোর করে শব্দ" + "message": "\u099c\u09cb\u09b0 \u0995\u09b0\u09c7 \u09b6\u09ac\u09cd\u09a6" }, "foundABug": { - "message": "একটি বাগ খুঁজে পেয়েছি?" + "message": "\u098f\u0995\u099f\u09bf \u09ac\u09be\u0997 \u0996\u09c1\u0981\u099c\u09c7 \u09aa\u09c7\u09af\u09bc\u09c7\u099b\u09bf?" }, "fullWindow": { - "message": "পুরো উইন্ডো" + "message": "\u09aa\u09c1\u09b0\u09cb \u0989\u0987\u09a8\u09cd\u09a1\u09cb" }, "general": { - "message": "সাধারণ" + "message": "\u09b8\u09be\u09a7\u09be\u09b0\u09a3" }, "github": { - "message": "গিটহাব" + "message": "\u0997\u09bf\u099f\u09b9\u09be\u09ac" }, "goToSearchBox": { - "message": "অনুসন্ধান বাক্সে যান" + "message": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8 \u09ac\u09be\u0995\u09cd\u09b8\u09c7 \u09af\u09be\u09a8" }, "gpu": { - "message": "জিপিইউ" + "message": "\u099c\u09bf\u09aa\u09bf\u0987\u0989" }, "green": { - "message": "সবুজ" + "message": "\u09b8\u09ac\u09c1\u099c" }, "hdThumbnail": { - "message": "এইচডি থাম্বনেল" + "message": "\u098f\u0987\u099a\u09a1\u09bf \u09a5\u09be\u09ae\u09cd\u09ac\u09a8\u09c7\u09b2" }, "hdThumbnails": { - "message": "এইচডি থামনেল গুলি" + "message": "\u098f\u0987\u099a\u09a1\u09bf \u09a5\u09be\u09ae\u09a8\u09c7\u09b2 \u0997\u09c1\u09b2\u09bf" }, "header": { - "message": "শিরোনাম" + "message": "\u09b6\u09bf\u09b0\u09cb\u09a8\u09be\u09ae" }, "hidden": { - "message": "গোপন" + "message": "\u0997\u09cb\u09aa\u09a8" }, "hiddenOnVideoPage": { - "message": "ভিডিও পৃষ্ঠায় লুকানো" + "message": "\u09ad\u09bf\u09a1\u09bf\u0993 \u09aa\u09c3\u09b7\u09cd\u09a0\u09be\u09af\u09bc \u09b2\u09c1\u0995\u09be\u09a8\u09cb" }, "hideAnimatedThumbnails": { - "message": "অ্যানিমেটেড থাম্বনেলগুলি লুকান" + "message": "\u0985\u09cd\u09af\u09be\u09a8\u09bf\u09ae\u09c7\u099f\u09c7\u09a1 \u09a5\u09be\u09ae\u09cd\u09ac\u09a8\u09c7\u09b2\u0997\u09c1\u09b2\u09bf \u09b2\u09c1\u0995\u09be\u09a8" }, "hideAnnotations": { - "message": "টীকাগুলি লুকান" + "message": "\u099f\u09c0\u0995\u09be\u0997\u09c1\u09b2\u09bf \u09b2\u09c1\u0995\u09be\u09a8" }, "hideCards": { - "message": "কার্ড লুকান" + "message": "\u0995\u09be\u09b0\u09cd\u09a1 \u09b2\u09c1\u0995\u09be\u09a8" }, "hideDetails": { - "message": "আড়াল বিস্তারিত" + "message": "\u0986\u09a1\u09bc\u09be\u09b2 \u09ac\u09bf\u09b8\u09cd\u09a4\u09be\u09b0\u09bf\u09a4" }, "hideEndscreen": { - "message": "এন্ডস্ক্রিন লুকান" + "message": "\u098f\u09a8\u09cd\u09a1\u09b8\u09cd\u0995\u09cd\u09b0\u09bf\u09a8 \u09b2\u09c1\u0995\u09be\u09a8" }, "hideFeaturedContent": { - "message": "বৈশিষ্ট্যযুক্ত সামগ্রী লুকান" + "message": "\u09ac\u09c8\u09b6\u09bf\u09b7\u09cd\u099f\u09cd\u09af\u09af\u09c1\u0995\u09cd\u09a4 \u09b8\u09be\u09ae\u0997\u09cd\u09b0\u09c0 \u09b2\u09c1\u0995\u09be\u09a8" }, "hideFooter": { - "message": "পাদলেখ লুকান" + "message": "\u09aa\u09be\u09a6\u09b2\u09c7\u0996 \u09b2\u09c1\u0995\u09be\u09a8" }, "hideGradientBottom": { - "message": "গ্রেডিয়েন্ট নীচে লুকান" + "message": "\u0997\u09cd\u09b0\u09c7\u09a1\u09bf\u09af\u09bc\u09c7\u09a8\u09cd\u099f \u09a8\u09c0\u099a\u09c7 \u09b2\u09c1\u0995\u09be\u09a8" }, "hidePlaylist": { - "message": "প্লেলিস্ট লুকান" + "message": "\u09aa\u09cd\u09b2\u09c7\u09b2\u09bf\u09b8\u09cd\u099f \u09b2\u09c1\u0995\u09be\u09a8" }, "hideRightButtons": { - "message": "ডান বোতামগুলি লুকান" + "message": "\u09a1\u09be\u09a8 \u09ac\u09cb\u09a4\u09be\u09ae\u0997\u09c1\u09b2\u09bf \u09b2\u09c1\u0995\u09be\u09a8" }, "hideScrollForDetails": { - "message": "«বিশদ জন্য স্ক্রোলs» লুকান" + "message": "\u00ab\u09ac\u09bf\u09b6\u09a6 \u099c\u09a8\u09cd\u09af \u09b8\u09cd\u0995\u09cd\u09b0\u09cb\u09b2s\u00bb \u09b2\u09c1\u0995\u09be\u09a8" }, "hideViewsCount": { - "message": "দর্শন গণনা লুকান" + "message": "\u09a6\u09b0\u09cd\u09b6\u09a8 \u0997\u09a3\u09a8\u09be \u09b2\u09c1\u0995\u09be\u09a8" }, "history": { - "message": "ইতিহাস" + "message": "\u0987\u09a4\u09bf\u09b9\u09be\u09b8" }, "home": { - "message": "প্রধান" + "message": "\u09aa\u09cd\u09b0\u09a7\u09be\u09a8" }, "hover": { - "message": "ঘোরা" + "message": "\u0998\u09cb\u09b0\u09be" }, "hoverOnVideoPage": { - "message": "ভিডিও পৃষ্ঠায় ঘোরা" + "message": "\u09ad\u09bf\u09a1\u09bf\u0993 \u09aa\u09c3\u09b7\u09cd\u09a0\u09be\u09af\u09bc \u0998\u09cb\u09b0\u09be" }, "howLongAgoTheVideoWasUploaded": { - "message": "ভিডিওটি কত আগে আপলোড হয়েছিল" + "message": "\u09ad\u09bf\u09a1\u09bf\u0993\u099f\u09bf \u0995\u09a4 \u0986\u0997\u09c7 \u0986\u09aa\u09b2\u09cb\u09a1 \u09b9\u09af\u09bc\u09c7\u099b\u09bf\u09b2" }, "icons": { - "message": "আইকন" + "message": "\u0986\u0987\u0995\u09a8" }, "iconsOnly": { - "message": "আইকন" + "message": "\u0986\u0987\u0995\u09a8" }, "importSettings": { - "message": "সেটিংস আমদানি করুন" + "message": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u0986\u09ae\u09a6\u09be\u09a8\u09bf \u0995\u09b0\u09c1\u09a8" + }, + "improveLogo": { + "message": "\u09b2\u09cb\u0997\u09cb \u0989\u09a8\u09cd\u09a8\u09a4 \u0995\u09b0\u09c1\u09a8" }, "improvedtubeIconInBrowser": { - "message": "ব্রাউজারে উন্নত YouTube আইকন" + "message": "\u09ac\u09cd\u09b0\u09be\u0989\u099c\u09be\u09b0\u09c7 \u0989\u09a8\u09cd\u09a8\u09a4 YouTube \u0986\u0987\u0995\u09a8" }, "improvedtubeIconOnYoutube": { - "message": "ইউটিউবে উন্নত আইকন" + "message": "\u0987\u0989\u099f\u09bf\u0989\u09ac\u09c7 \u0989\u09a8\u09cd\u09a8\u09a4 \u0986\u0987\u0995\u09a8" }, "improvedtubeLanguage": { - "message": "উন্নত ইউটিউব ভাষা" + "message": "\u0989\u09a8\u09cd\u09a8\u09a4 \u0987\u0989\u099f\u09bf\u0989\u09ac \u09ad\u09be\u09b7\u09be" }, "improvedtubeVersion": { - "message": "উন্নত YouTube সংস্করণ" - }, - "improveLogo": { - "message": "লোগো উন্নত করুন" + "message": "\u0989\u09a8\u09cd\u09a8\u09a4 YouTube \u09b8\u0982\u09b8\u09cd\u0995\u09b0\u09a3" }, "increasePlaybackSpeed": { - "message": "প্লেব্যাকের গতি বাড়ান" + "message": "\u09aa\u09cd\u09b2\u09c7\u09ac\u09cd\u09af\u09be\u0995\u09c7\u09b0 \u0997\u09a4\u09bf \u09ac\u09be\u09a1\u09bc\u09be\u09a8" }, "increaseVolume": { - "message": "শব্দ বৃদ্ধি" + "message": "\u09b6\u09ac\u09cd\u09a6 \u09ac\u09c3\u09a6\u09cd\u09a7\u09bf" }, "indigo": { - "message": "নীল" + "message": "\u09a8\u09c0\u09b2" }, "items": { - "message": "আইটেম" + "message": "\u0986\u0987\u099f\u09c7\u09ae" }, "languages": { "message": "Languages" }, "legacyYoutube": { - "message": "উত্তরাধিকার ইউটিউব" + "message": "\u0989\u09a4\u09cd\u09a4\u09b0\u09be\u09a7\u09bf\u0995\u09be\u09b0 \u0987\u0989\u099f\u09bf\u0989\u09ac" }, "light": { - "message": "হালকাো" + "message": "\u09b9\u09be\u09b2\u0995\u09be\u09cb" }, "lightBlue": { - "message": "হালকা নীল" + "message": "\u09b9\u09be\u09b2\u0995\u09be \u09a8\u09c0\u09b2" }, "lightGreen": { - "message": "হালকা সবুজ" + "message": "\u09b9\u09be\u09b2\u0995\u09be \u09b8\u09ac\u09c1\u099c" }, "like": { - "message": "লাইক" + "message": "\u09b2\u09be\u0987\u0995" }, "likes": { - "message": "লাইক গুলি" + "message": "\u09b2\u09be\u0987\u0995 \u0997\u09c1\u09b2\u09bf" }, "lime": { - "message": "চুন" + "message": "\u099a\u09c1\u09a8" }, "list": { - "message": "তালিকা" + "message": "\u09a4\u09be\u09b2\u09bf\u0995\u09be" }, "liveChat": { - "message": "সরাসরি কথোপকথন" + "message": "\u09b8\u09b0\u09be\u09b8\u09b0\u09bf \u0995\u09a5\u09cb\u09aa\u0995\u09a5\u09a8" }, "liveChatType": { - "message": "লাইভ চ্যাট টাইপ" + "message": "\u09b2\u09be\u0987\u09ad \u099a\u09cd\u09af\u09be\u099f \u099f\u09be\u0987\u09aa" }, "loudnessNormalization": { - "message": "আওয়াজের স্বাভাবিককরণ" + "message": "\u0986\u0993\u09af\u09bc\u09be\u099c\u09c7\u09b0 \u09b8\u09cd\u09ac\u09be\u09ad\u09be\u09ac\u09bf\u0995\u0995\u09b0\u09a3" }, "markWatchedVideos": { - "message": "দেখা ভিডিওগুলি চিহ্নিত করুন" + "message": "\u09a6\u09c7\u0996\u09be \u09ad\u09bf\u09a1\u09bf\u0993\u0997\u09c1\u09b2\u09bf \u099a\u09bf\u09b9\u09cd\u09a8\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8" }, "mixer": { - "message": "মিক্সার" + "message": "\u09ae\u09bf\u0995\u09cd\u09b8\u09be\u09b0" }, "myColors": { - "message": "আমার রং" + "message": "\u0986\u09ae\u09be\u09b0 \u09b0\u0982" }, "name": { - "message": "নাম" + "message": "\u09a8\u09be\u09ae" }, "nativeMiniPlayer": { - "message": "নেটিভ মিনি প্লেয়ার" + "message": "\u09a8\u09c7\u099f\u09bf\u09ad \u09ae\u09bf\u09a8\u09bf \u09aa\u09cd\u09b2\u09c7\u09af\u09bc\u09be\u09b0" }, "new": { - "message": "নতুন" + "message": "\u09a8\u09a4\u09c1\u09a8" }, "nextVideo": { - "message": "পরবর্তী ভিডিও" + "message": "\u09aa\u09b0\u09ac\u09b0\u09cd\u09a4\u09c0 \u09ad\u09bf\u09a1\u09bf\u0993" }, "night": { - "message": "রাত" + "message": "\u09b0\u09be\u09a4" }, "noActiveFeatures": { - "message": "কোনও সক্রিয় বৈশিষ্ট্য নেই" - }, - "none": { - "message": "কিছুই না" + "message": "\u0995\u09cb\u09a8\u0993 \u09b8\u0995\u09cd\u09b0\u09bf\u09af\u09bc \u09ac\u09c8\u09b6\u09bf\u09b7\u09cd\u099f\u09cd\u09af \u09a8\u09c7\u0987" }, "noOpenVideoTabs": { - "message": "কোনও খোলা ভিডিও ট্যাব নেই" + "message": "\u0995\u09cb\u09a8\u0993 \u0996\u09cb\u09b2\u09be \u09ad\u09bf\u09a1\u09bf\u0993 \u099f\u09cd\u09af\u09be\u09ac \u09a8\u09c7\u0987" + }, + "none": { + "message": "\u0995\u09bf\u099b\u09c1\u0987 \u09a8\u09be" }, "normal": { - "message": "সাধারণ" + "message": "\u09b8\u09be\u09a7\u09be\u09b0\u09a3" }, "old": { - "message": "পুরাতন" + "message": "\u09aa\u09c1\u09b0\u09be\u09a4\u09a8" }, "onAllVideos": { - "message": "সমস্ত ভিডিওতে" + "message": "\u09b8\u09ae\u09b8\u09cd\u09a4 \u09ad\u09bf\u09a1\u09bf\u0993\u09a4\u09c7" + }, + "onSubscribedChannels": { + "message": "\u09b8\u09be\u09ac\u09b8\u09cd\u0995\u09cd\u09b0\u09be\u0987\u09ac \u0995\u09b0\u09be \u099a\u09cd\u09af\u09be\u09a8\u09c7\u09b2\u0997\u09c1\u09b2\u09bf\u09a4\u09c7" }, "onlyActiveOnYoutube": { - "message": "শুধুমাত্র ইউটিউবে সক্রিয়" + "message": "\u09b6\u09c1\u09a7\u09c1\u09ae\u09be\u09a4\u09cd\u09b0 \u0987\u0989\u099f\u09bf\u0989\u09ac\u09c7 \u09b8\u0995\u09cd\u09b0\u09bf\u09af\u09bc" }, "onlyOnePlayerInstancePlaying": { - "message": "কেবলমাত্র একজন খেলোয়াড় খেলছে" - }, - "onSubscribedChannels": { - "message": "সাবস্ক্রাইব করা চ্যানেলগুলিতে" + "message": "\u0995\u09c7\u09ac\u09b2\u09ae\u09be\u09a4\u09cd\u09b0 \u098f\u0995\u099c\u09a8 \u0996\u09c7\u09b2\u09cb\u09af\u09bc\u09be\u09a1\u09bc \u0996\u09c7\u09b2\u099b\u09c7" }, "orange": { - "message": "কমলা" + "message": "\u0995\u09ae\u09b2\u09be" }, "os": { - "message": "ওএস" + "message": "\u0993\u098f\u09b8" }, "other": { - "message": "অন্যান্য" + "message": "\u0985\u09a8\u09cd\u09af\u09be\u09a8\u09cd\u09af" }, "permissions": { - "message": "অনুমতি" + "message": "\u0985\u09a8\u09c1\u09ae\u09a4\u09bf" }, "pictureInPicture": { - "message": "পিকচার ইন পিকচার" + "message": "\u09aa\u09bf\u0995\u099a\u09be\u09b0 \u0987\u09a8 \u09aa\u09bf\u0995\u099a\u09be\u09b0" }, "pink": { - "message": "গোলাপী" + "message": "\u0997\u09cb\u09b2\u09be\u09aa\u09c0" }, "plain": { - "message": "সরল" + "message": "\u09b8\u09b0\u09b2" }, "platform": { - "message": "প্ল্যাটফর্ম" + "message": "\u09aa\u09cd\u09b2\u09cd\u09af\u09be\u099f\u09ab\u09b0\u09cd\u09ae" + }, + "playPause": { + "message": "\u0996\u09c7\u09b2\u09be\u09b0 / \u09ac\u09bf\u09b0\u09a4\u09bf" }, "playbackSpeed": { - "message": "প্লেব্যাক গতি" + "message": "\u09aa\u09cd\u09b2\u09c7\u09ac\u09cd\u09af\u09be\u0995 \u0997\u09a4\u09bf" }, "player": { - "message": "প্লেয়ার" + "message": "\u09aa\u09cd\u09b2\u09c7\u09af\u09bc\u09be\u09b0" }, "playerColor": { - "message": "প্লেয়ারের রঙ" + "message": "\u09aa\u09cd\u09b2\u09c7\u09af\u09bc\u09be\u09b0\u09c7\u09b0 \u09b0\u0999" }, "playerSize": { - "message": "খেলোয়াড়ের আকার" + "message": "\u0996\u09c7\u09b2\u09cb\u09af\u09bc\u09be\u09a1\u09bc\u09c7\u09b0 \u0986\u0995\u09be\u09b0" }, "playlist": { - "message": "প্লেলিস্ট" + "message": "\u09aa\u09cd\u09b2\u09c7\u09b2\u09bf\u09b8\u09cd\u099f" }, "playlists": { - "message": "প্লেলিস্ট" - }, - "playPause": { - "message": "খেলার / বিরতি" + "message": "\u09aa\u09cd\u09b2\u09c7\u09b2\u09bf\u09b8\u09cd\u099f" }, "popupPlayer": { - "message": "পপআপ প্লেয়ার" + "message": "\u09aa\u09aa\u0986\u09aa \u09aa\u09cd\u09b2\u09c7\u09af\u09bc\u09be\u09b0" }, "position": { - "message": "অবস্থান" + "message": "\u0985\u09ac\u09b8\u09cd\u09a5\u09be\u09a8" }, "pressAnyKeyOrScroll": { - "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" + "message": "\u09af\u09c7 \u0995\u09cb\u09a8\u0993 \u0995\u09c0 \u099f\u09bf\u09aa\u09c1\u09a8 \u09ac\u09be \u09ae\u09be\u0989\u09b8 \u09b9\u09c1\u0987\u09b2 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c1\u09a8\u0964" }, "pressAnyKeyOrUseMouseWheel": { - "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" + "message": "\u09af\u09c7 \u0995\u09cb\u09a8\u0993 \u0995\u09c0 \u099f\u09bf\u09aa\u09c1\u09a8 \u09ac\u09be \u09ae\u09be\u0989\u09b8 \u09b9\u09c1\u0987\u09b2 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c1\u09a8\u0964" }, "previousVideo": { - "message": "পূর্ববর্তী ভিডিও" + "message": "\u09aa\u09c2\u09b0\u09cd\u09ac\u09ac\u09b0\u09cd\u09a4\u09c0 \u09ad\u09bf\u09a1\u09bf\u0993" }, "primaryColor": { - "message": "মৌলিক রঙ" + "message": "\u09ae\u09cc\u09b2\u09bf\u0995 \u09b0\u0999" }, "purple": { - "message": "বেগুনি" + "message": "\u09ac\u09c7\u0997\u09c1\u09a8\u09bf" }, "quality": { - "message": "গুণ" + "message": "\u0997\u09c1\u09a3" }, "ram": { - "message": "র্যাম" + "message": "\u09b0\u09cd\u09af\u09be\u09ae" }, "rateUs": { - "message": "মতামত দিন" + "message": "\u09ae\u09a4\u09be\u09ae\u09a4 \u09a6\u09bf\u09a8" }, "red": { - "message": "লাল" + "message": "\u09b2\u09be\u09b2" }, "redDislikeButton": { - "message": "অপছন্দ বাটন লাল রঙ দেখান" + "message": "\u0985\u09aa\u099b\u09a8\u09cd\u09a6 \u09ac\u09be\u099f\u09a8 \u09b2\u09be\u09b2 \u09b0\u0999 \u09a6\u09c7\u0996\u09be\u09a8" }, "relatedVideos": { - "message": "সংশ্লিষ্ট ভিডিও" + "message": "\u09b8\u0982\u09b6\u09cd\u09b2\u09bf\u09b7\u09cd\u099f \u09ad\u09bf\u09a1\u09bf\u0993" }, "removeRelatedSearchResults": { - "message": "সম্পর্কিত অনুসন্ধান ফলাফল সরান" + "message": "\u09b8\u09ae\u09cd\u09aa\u09b0\u09cd\u0995\u09bf\u09a4 \u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8 \u09ab\u09b2\u09be\u09ab\u09b2 \u09b8\u09b0\u09be\u09a8" }, "repeat": { - "message": "পুনরাবৃত্তি" + "message": "\u09aa\u09c1\u09a8\u09b0\u09be\u09ac\u09c3\u09a4\u09cd\u09a4\u09bf" }, "reset": { - "message": "রিসেট" + "message": "\u09b0\u09bf\u09b8\u09c7\u099f" }, "resetAllSettings": { - "message": "সমস্ত সেটিংস পুনরায় সেট করুন" + "message": "\u09b8\u09ae\u09b8\u09cd\u09a4 \u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u099f \u0995\u09b0\u09c1\u09a8" }, "resetAllShortcuts": { - "message": "সমস্ত শর্টকাট পুনরায় সেট করুন" + "message": "\u09b8\u09ae\u09b8\u09cd\u09a4 \u09b6\u09b0\u09cd\u099f\u0995\u09be\u099f \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u099f \u0995\u09b0\u09c1\u09a8" }, "reverse": { - "message": "বিপরীত" + "message": "\u09ac\u09bf\u09aa\u09b0\u09c0\u09a4" }, "rotate": { - "message": "ঘুরান" + "message": "\u0998\u09c1\u09b0\u09be\u09a8" }, "save": { - "message": "সংরক্ষণ" + "message": "\u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09a3" }, "saveAs": { - "message": "সংরক্ষণ করুন" + "message": "\u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09a3 \u0995\u09b0\u09c1\u09a8" }, "schedule": { - "message": "সময়সূচী" + "message": "\u09b8\u09ae\u09af\u09bc\u09b8\u09c2\u099a\u09c0" }, "screen": { - "message": "পর্দা" + "message": "\u09aa\u09b0\u09cd\u09a6\u09be" }, "screenshot": { - "message": "স্ক্রিনশট" + "message": "\u09b8\u09cd\u0995\u09cd\u09b0\u09bf\u09a8\u09b6\u099f" }, "search": { - "message": "অনুসন্ধান করুন" + "message": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8 \u0995\u09b0\u09c1\u09a8" }, "searchBarOnly": { - "message": "অনুসন্ধান বার কেবল" + "message": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8 \u09ac\u09be\u09b0 \u0995\u09c7\u09ac\u09b2" }, "seekBackward10Seconds": { - "message": "পিছনে 10 সেকেন্ড সন্ধান করুন" + "message": "\u09aa\u09bf\u099b\u09a8\u09c7 10 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1 \u09b8\u09a8\u09cd\u09a7\u09be\u09a8 \u0995\u09b0\u09c1\u09a8" }, "seekForward10Seconds": { - "message": "10 সেকেন্ড এগিয়ে যান" + "message": "10 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1 \u098f\u0997\u09bf\u09af\u09bc\u09c7 \u09af\u09be\u09a8" }, "settings": { - "message": "সেটিংস" + "message": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8" }, "settingsSuccessfullyImported": { - "message": "সেটিংস সফলভাবে আমদানি করা হয়েছে" + "message": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09b8\u09ab\u09b2\u09ad\u09be\u09ac\u09c7 \u0986\u09ae\u09a6\u09be\u09a8\u09bf \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7" }, "shortcuts": { - "message": "শর্টকাটস" + "message": "\u09b6\u09b0\u09cd\u099f\u0995\u09be\u099f\u09b8" }, "showCardsOnMouseHover": { - "message": "মাউস হোভারে কার্ডগুলি দেখান" + "message": "\u09ae\u09be\u0989\u09b8 \u09b9\u09cb\u09ad\u09be\u09b0\u09c7 \u0995\u09be\u09b0\u09cd\u09a1\u0997\u09c1\u09b2\u09bf \u09a6\u09c7\u0996\u09be\u09a8" }, "showChannelVideosCount": { - "message": "চ্যানেল ভিডিও গণনা দেখান" + "message": "\u099a\u09cd\u09af\u09be\u09a8\u09c7\u09b2 \u09ad\u09bf\u09a1\u09bf\u0993 \u0997\u09a3\u09a8\u09be \u09a6\u09c7\u0996\u09be\u09a8" }, "shuffle": { - "message": "অদলবদল" + "message": "\u0985\u09a6\u09b2\u09ac\u09a6\u09b2" }, "sidebar": { - "message": "সাইডবার" + "message": "\u09b8\u09be\u0987\u09a1\u09ac\u09be\u09b0" }, "spacebar": { - "message": "স্পেসবার" + "message": "\u09b8\u09cd\u09aa\u09c7\u09b8\u09ac\u09be\u09b0" }, "squaredUserImages": { - "message": "স্কোয়ার ব্যবহারকারীর চিত্রসমূহ" + "message": "\u09b8\u09cd\u0995\u09cb\u09af\u09bc\u09be\u09b0 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0\u0995\u09be\u09b0\u09c0\u09b0 \u099a\u09bf\u09a4\u09cd\u09b0\u09b8\u09ae\u09c2\u09b9" }, "static": { - "message": "স্থির" + "message": "\u09b8\u09cd\u09a5\u09bf\u09b0" }, "statsForNerds": { - "message": "ডেভলপারের জন্য পরিসংখ্যান দেখান" + "message": "\u09a1\u09c7\u09ad\u09b2\u09aa\u09be\u09b0\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u09aa\u09b0\u09bf\u09b8\u0982\u0996\u09cd\u09af\u09be\u09a8 \u09a6\u09c7\u0996\u09be\u09a8" }, "step": { - "message": "পদক্ষেপ" + "message": "\u09aa\u09a6\u0995\u09cd\u09b7\u09c7\u09aa" }, "stop": { - "message": "থামো" + "message": "\u09a5\u09be\u09ae\u09cb" }, "style": { - "message": "স্টাইল" + "message": "\u09b8\u09cd\u099f\u09be\u0987\u09b2" }, "styles": { - "message": "শৈলী" + "message": "\u09b6\u09c8\u09b2\u09c0" }, "subscriptions": { - "message": "সাবস্ক্রিপশন" + "message": "\u09b8\u09be\u09ac\u09b8\u09cd\u0995\u09cd\u09b0\u09bf\u09aa\u09b6\u09a8" }, "subtitles": { - "message": "সাবটাইটেল" + "message": "\u09b8\u09be\u09ac\u099f\u09be\u0987\u099f\u09c7\u09b2" }, "sunset": { - "message": "সূর্যাস্ত" + "message": "\u09b8\u09c2\u09b0\u09cd\u09af\u09be\u09b8\u09cd\u09a4" }, "sunsetToSunrise": { - "message": "সূর্যোদয় সূর্যোদয়" + "message": "\u09b8\u09c2\u09b0\u09cd\u09af\u09cb\u09a6\u09af\u09bc \u09b8\u09c2\u09b0\u09cd\u09af\u09cb\u09a6\u09af\u09bc" }, "systemPeferenceDark": { - "message": "সিস্টেমের পছন্দসমূহ : dark" + "message": "\u09b8\u09bf\u09b8\u09cd\u099f\u09c7\u09ae\u09c7\u09b0 \u09aa\u099b\u09a8\u09cd\u09a6\u09b8\u09ae\u09c2\u09b9 : dark" }, "systemPeferenceLight": { - "message": "সিস্টেমের পছন্দসমূহ : light" + "message": "\u09b8\u09bf\u09b8\u09cd\u099f\u09c7\u09ae\u09c7\u09b0 \u09aa\u099b\u09a8\u09cd\u09a6\u09b8\u09ae\u09c2\u09b9 : light" }, "teal": { - "message": "টিল" + "message": "\u099f\u09bf\u09b2" }, "textColor": { - "message": "লেখার রঙ" + "message": "\u09b2\u09c7\u0996\u09be\u09b0 \u09b0\u0999" }, "themes": { - "message": "থিমস" + "message": "\u09a5\u09bf\u09ae\u09b8" }, "thisWillRemoveAllCookies": { - "message": "এটি সমস্ত কুকি মুছে ফেলবে।" + "message": "\u098f\u099f\u09bf \u09b8\u09ae\u09b8\u09cd\u09a4 \u0995\u09c1\u0995\u09bf \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09ac\u09c7\u0964" }, "thisWillRemoveAllYouTubeCookies": { - "message": "এটি সমস্ত ইউটিউব কুকিজ অপসারণ করবে" + "message": "\u098f\u099f\u09bf \u09b8\u09ae\u09b8\u09cd\u09a4 \u0987\u0989\u099f\u09bf\u0989\u09ac \u0995\u09c1\u0995\u09bf\u099c \u0985\u09aa\u09b8\u09be\u09b0\u09a3 \u0995\u09b0\u09ac\u09c7" }, "thisWillResetAllSettings": { - "message": "এটি সমস্ত সেটিংস পুনরায় সেট করবে।" + "message": "\u098f\u099f\u09bf \u09b8\u09ae\u09b8\u09cd\u09a4 \u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u099f \u0995\u09b0\u09ac\u09c7\u0964" }, "thisWillResetAllShortcuts": { - "message": "এটি সমস্ত শর্টকাট পুনরায় সেট করবে" + "message": "\u098f\u099f\u09bf \u09b8\u09ae\u09b8\u09cd\u09a4 \u09b6\u09b0\u09cd\u099f\u0995\u09be\u099f \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u099f \u0995\u09b0\u09ac\u09c7" }, "thumbnails": { - "message": "থাম্বনেইলস" + "message": "\u09a5\u09be\u09ae\u09cd\u09ac\u09a8\u09c7\u0987\u09b2\u09b8" }, "timeFrom": { - "message": "সময় থেকে" + "message": "\u09b8\u09ae\u09af\u09bc \u09a5\u09c7\u0995\u09c7" }, "timeTo": { - "message": "সময়" + "message": "\u09b8\u09ae\u09af\u09bc" }, "todayAt": { - "message": "আজ এ" + "message": "\u0986\u099c \u098f" }, "toggleCards": { "message": "Toggle cards" }, "topChat": { - "message": "শীর্ষ চ্যাট" + "message": "\u09b6\u09c0\u09b0\u09cd\u09b7 \u099a\u09cd\u09af\u09be\u099f" }, "trailerAutoplay": { - "message": "ট্রেলার অটোপ্লে" + "message": "\u099f\u09cd\u09b0\u09c7\u09b2\u09be\u09b0 \u0985\u099f\u09cb\u09aa\u09cd\u09b2\u09c7" }, "translations": { - "message": "অনুবাদ" + "message": "\u0985\u09a8\u09c1\u09ac\u09be\u09a6" }, "transparentBackground": { - "message": "স্বচ্ছ পটভূমি" + "message": "\u09b8\u09cd\u09ac\u099a\u09cd\u099b \u09aa\u099f\u09ad\u09c2\u09ae\u09bf" }, "trending": { - "message": "চলমান" + "message": "\u099a\u09b2\u09ae\u09be\u09a8" }, "tryToReloadThePage": { - "message": "পৃষ্ঠাটি পুনরায় লোড করার চেষ্টা করুন" + "message": "\u09aa\u09c3\u09b7\u09cd\u09a0\u09be\u099f\u09bf \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b2\u09cb\u09a1 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8" }, "type": { - "message": "প্রকার" + "message": "\u09aa\u09cd\u09b0\u0995\u09be\u09b0" }, "upNextAutoplay": { - "message": "পরবর্তী অটোপ্লে" + "message": "\u09aa\u09b0\u09ac\u09b0\u09cd\u09a4\u09c0 \u0985\u099f\u09cb\u09aa\u09cd\u09b2\u09c7" }, "use24HourFormat": { - "message": "24 ঘন্টা বিন্যাস ব্যবহার করুন" + "message": "24 \u0998\u09a8\u09cd\u099f\u09be \u09ac\u09bf\u09a8\u09cd\u09af\u09be\u09b8 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c1\u09a8" }, "version": { - "message": "সংস্করণ" + "message": "\u09b8\u0982\u09b8\u09cd\u0995\u09b0\u09a3" }, "video": { - "message": "ভিডিও" + "message": "\u09ad\u09bf\u09a1\u09bf\u0993" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "বিভাগটির নাম পেতে ভিডিওর বর্ণনাটি প্রসারিত হবে" + "message": "\u09ac\u09bf\u09ad\u09be\u0997\u099f\u09bf\u09b0 \u09a8\u09be\u09ae \u09aa\u09c7\u09a4\u09c7 \u09ad\u09bf\u09a1\u09bf\u0993\u09b0 \u09ac\u09b0\u09cd\u09a3\u09a8\u09be\u099f\u09bf \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09bf\u09a4 \u09b9\u09ac\u09c7" }, "videoFormats": { - "message": "ভিডিও ফর্ম্যাট" + "message": "\u09ad\u09bf\u09a1\u09bf\u0993 \u09ab\u09b0\u09cd\u09ae\u09cd\u09af\u09be\u099f" }, "videos": { - "message": "ভিডিও" + "message": "\u09ad\u09bf\u09a1\u09bf\u0993" }, "volume": { - "message": "শব্দ" + "message": "\u09b6\u09ac\u09cd\u09a6" }, "watchLater": { - "message": "পরে দেখুন" + "message": "\u09aa\u09b0\u09c7 \u09a6\u09c7\u0996\u09c1\u09a8" }, "watchTime": { - "message": "দেখার সময়" + "message": "\u09a6\u09c7\u0996\u09be\u09b0 \u09b8\u09ae\u09af\u09bc" }, "whenTabIsChanged": { - "message": "ট্যাব পরিবর্তন করা হয়" + "message": "\u099f\u09cd\u09af\u09be\u09ac \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0995\u09b0\u09be \u09b9\u09af\u09bc" }, "white": { - "message": "সাদা" + "message": "\u09b8\u09be\u09a6\u09be" }, "yellow": { - "message": "হলুদ" + "message": "\u09b9\u09b2\u09c1\u09a6" }, "youtubeHeaderLeft": { - "message": "YouTube শিরোনাম (বাম)" + "message": "YouTube \u09b6\u09bf\u09b0\u09cb\u09a8\u09be\u09ae (\u09ac\u09be\u09ae)" }, "youtubeHeaderRight": { - "message": "YouTube শিরোনাম (ডানদিকে)" + "message": "YouTube \u09b6\u09bf\u09b0\u09cb\u09a8\u09be\u09ae (\u09a1\u09be\u09a8\u09a6\u09bf\u0995\u09c7)" }, "youtubeHomePage": { - "message": "ইউটিউব হোম পৃষ্ঠা" + "message": "\u0987\u0989\u099f\u09bf\u0989\u09ac \u09b9\u09cb\u09ae \u09aa\u09c3\u09b7\u09cd\u09a0\u09be" }, "youtubeLanguage": { - "message": "ইউটিউব ভাষা" + "message": "\u0987\u0989\u099f\u09bf\u0989\u09ac \u09ad\u09be\u09b7\u09be" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "ইউটিউব h.264 কোডেকের জন্য ভিডিও গুণমানকে 1080p এর মধ্যে সীমাবদ্ধ করে" + "message": "\u0987\u0989\u099f\u09bf\u0989\u09ac h.264 \u0995\u09cb\u09a1\u09c7\u0995\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u09ad\u09bf\u09a1\u09bf\u0993 \u0997\u09c1\u09a3\u09ae\u09be\u09a8\u0995\u09c7 1080p \u098f\u09b0 \u09ae\u09a7\u09cd\u09af\u09c7 \u09b8\u09c0\u09ae\u09be\u09ac\u09a6\u09cd\u09a7 \u0995\u09b0\u09c7" } -} +} \ No newline at end of file diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 597be54d1..606a2af6c 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -1,4 +1,19 @@ { + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "about": { "message": "Info" }, @@ -11,20 +26,20 @@ "activateCaptions": { "message": "Untertitel aktivieren" }, + "activateFullscreen": { + "message": "Vollbild aktivieren" + }, "activated": { "message": "Aktiviert" }, "activatedFeatures": { "message": "Aktivierte Features" }, - "activateFullscreen": { - "message": "Vollbild aktivieren" - }, "activeFeatures": { "message": "Aktive Funktionen" }, "addScrollToTop": { - "message": "«Nach Oben»-Button" + "message": "\u00abNach Oben\u00bb-Button" }, "ads": { "message": "Werbung" @@ -38,9 +53,6 @@ "allow60fps": { "message": "60fps zulassen" }, - "forceSDR": { - "message": "Force SDR" - }, "alwaysActive": { "message": "Immer aktiv" }, @@ -56,18 +68,6 @@ "appearance": { "message": "Aussehen" }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, "audio": { "message": "Audio" }, @@ -87,7 +87,7 @@ "message": "Autoplay" }, "backupAndReset": { - "message": "Sichern oder zurücksetzen" + "message": "Sichern oder zur\u00fccksetzen" }, "baseOnSystemColorScheme": { "message": "Basierend von Systemfarben" @@ -141,7 +141,7 @@ "message": "Kanal" }, "channels": { - "message": "Kanäle" + "message": "Kan\u00e4le" }, "clipboard": { "message": "Zwischenablage" @@ -149,17 +149,17 @@ "codecH264": { "message": "Codec h.264" }, - "collapsed": { - "message": "Eingeklappt" - }, "collapseOfSubscriptionSections": { "message": "Abos einklappen" }, + "collapsed": { + "message": "Eingeklappt" + }, "comments": { "message": "Kommentare" }, "confirmationBeforeClosing": { - "message": "Bestätigung beim Schließen" + "message": "Best\u00e4tigung beim Schlie\u00dfen" }, "cookies": { "message": "Cookies" @@ -171,10 +171,10 @@ "message": "Kapitel abschneiden" }, "customCss": { - "message": "CSS hinzufügen" + "message": "CSS hinzuf\u00fcgen" }, "customJs": { - "message": "JS hinzufügen" + "message": "JS hinzuf\u00fcgen" }, "customMiniPlayer": { "message": "Benutzerdefinierter Mini-Player" @@ -192,13 +192,13 @@ "message": "Datum & Uhrzeit" }, "dawn": { - "message": "Morgendämmerung" + "message": "Morgend\u00e4mmerung" }, "decreasePlaybackSpeed": { "message": "Abspielgeschwindigkeit verringern" }, "decreaseVolume": { - "message": "Lautstärke reduzieren" + "message": "Lautst\u00e4rke reduzieren" }, "deepOrange": { "message": "Dunkel-Orange" @@ -210,13 +210,13 @@ "message": "Standard-Kanal Tab" }, "deleteYoutubeCookies": { - "message": "YouTube-Cookies löschen" + "message": "YouTube-Cookies l\u00f6schen" }, "description": { "message": "Beschreibung" }, "desert": { - "message": "Wüste" + "message": "W\u00fcste" }, "details": { "message": "Details" @@ -225,7 +225,7 @@ "message": "Entwickleroptionen" }, "device": { - "message": "Gerät" + "message": "Ger\u00e4t" }, "dim": { "message": "dimmen" @@ -236,12 +236,12 @@ "dislike": { "message": "'Mag ich nicht'" }, + "doNotChange": { + "message": "Nicht \u00e4ndern" + }, "donate": { "message": "Spenden" }, - "doNotChange": { - "message": "Nicht ändern" - }, "draggable": { "message": "Verschiebbar" }, @@ -282,7 +282,10 @@ "message": "Schriftart" }, "footer": { - "message": "Fußzeile" + "message": "Fu\u00dfzeile" + }, + "forceSDR": { + "message": "Force SDR" }, "forcedPlaybackSpeed": { "message": "erzwungene Abspielgeschwindigkeit" @@ -291,7 +294,7 @@ "message": "Kinomodus erzwingen" }, "forcedVolume": { - "message": "Fixe Lautstärke" + "message": "Fixe Lautst\u00e4rke" }, "foundABug": { "message": "Fehler gefunden?" @@ -312,7 +315,7 @@ "message": "GPU" }, "green": { - "message": "Grün" + "message": "Gr\u00fcn" }, "hdThumbnail": { "message": "HD-Vorschaubild" @@ -348,7 +351,7 @@ "message": "'Empfohlene Inhalte' ausblenden" }, "hideFooter": { - "message": "Fußzeile ausblenden" + "message": "Fu\u00dfzeile ausblenden" }, "hideGradientBottom": { "message": "Farbverlauf ausblenden" @@ -360,7 +363,7 @@ "message": "Rechte Buttons ausblenden" }, "hideScrollForDetails": { - "message": "«Für Details scrollen» ausblenden" + "message": "\u00abF\u00fcr Details scrollen\u00bb ausblenden" }, "hideViewsCount": { "message": "Videoaufrufe ausblenden" @@ -389,6 +392,9 @@ "importSettings": { "message": "Einstellungen importieren" }, + "improveLogo": { + "message": "Logo verbessern" + }, "improvedtubeIconInBrowser": { "message": "ImprovedTube Icon im Browser" }, @@ -401,14 +407,11 @@ "improvedtubeVersion": { "message": "ImprovedTube Version" }, - "improveLogo": { - "message": "Logo verbessern" - }, "increasePlaybackSpeed": { - "message": "Abspiel Geschwingkeit erhöhen" + "message": "Abspiel Geschwingkeit erh\u00f6hen" }, "increaseVolume": { - "message": "Lautstärke erhöhen" + "message": "Lautst\u00e4rke erh\u00f6hen" }, "indigo": { "message": "Indigo" @@ -429,7 +432,7 @@ "message": "Hellblau" }, "lightGreen": { - "message": "Hellgrün" + "message": "Hellgr\u00fcn" }, "like": { "message": "Like" @@ -450,7 +453,7 @@ "message": "Live-Chat Typ" }, "loudnessNormalization": { - "message": "Lautstärke normalisieren" + "message": "Lautst\u00e4rke normalisieren" }, "markWatchedVideos": { "message": "gesehene Videos markieren" @@ -471,7 +474,7 @@ "message": "Neu" }, "nextVideo": { - "message": "Nächstes Video" + "message": "N\u00e4chstes Video" }, "night": { "message": "Nacht" @@ -479,12 +482,12 @@ "noActiveFeatures": { "message": "Keine aktiven Features" }, + "noOpenVideoTabs": { + "message": "Keine YouTube Videos ge\u00f6ffnet" + }, "none": { "message": "Keine" }, - "noOpenVideoTabs": { - "message": "Keine YouTube Videos geöffnet" - }, "normal": { "message": "Normal" }, @@ -494,15 +497,15 @@ "onAllVideos": { "message": "in allen Videos" }, + "onSubscribedChannels": { + "message": "nur in abonnierten Kan\u00e4len" + }, "onlyActiveOnYoutube": { - "message": "nur auf YouTube rot färben" + "message": "nur auf YouTube rot f\u00e4rben" }, "onlyOnePlayerInstancePlaying": { "message": "Nur ein Video gleichzeitig" }, - "onSubscribedChannels": { - "message": "nur in abonnierten Kanälen" - }, "orange": { "message": "Orange" }, @@ -527,6 +530,9 @@ "platform": { "message": "Plattform" }, + "playPause": { + "message": "Play / Pause" + }, "playbackSpeed": { "message": "Abspiel-Geschwindigkeit" }, @@ -537,7 +543,7 @@ "message": "Playerfarbe" }, "playerSize": { - "message": "Playergröße" + "message": "Playergr\u00f6\u00dfe" }, "playlist": { "message": "Playlist" @@ -545,9 +551,6 @@ "playlists": { "message": "Playlists" }, - "playPause": { - "message": "Play / Pause" - }, "popupPlayer": { "message": "Player in eigenem Fenster" }, @@ -555,22 +558,22 @@ "message": "Position" }, "pressAnyKeyOrScroll": { - "message": "Eine Taste drücken oder scrollen!" + "message": "Eine Taste dr\u00fccken oder scrollen!" }, "pressAnyKeyOrUseMouseWheel": { - "message": "Eine Taste drücken oder scrollen!" + "message": "Eine Taste dr\u00fccken oder scrollen!" }, "previousVideo": { "message": "Letztes Video" }, "primaryColor": { - "message": "Primäre Farbe" + "message": "Prim\u00e4re Farbe" }, "purple": { "message": "Lila" }, "quality": { - "message": "Qualität" + "message": "Qualit\u00e4t" }, "ram": { "message": "RAM" @@ -594,16 +597,16 @@ "message": "Repeat(Wiederholen)" }, "reset": { - "message": "Zurücksetzen" + "message": "Zur\u00fccksetzen" }, "resetAllSettings": { - "message": "Alle Einstellungen zurücksetzen" + "message": "Alle Einstellungen zur\u00fccksetzen" }, "resetAllShortcuts": { - "message": "Alle Shortcuts zurücksetzen" + "message": "Alle Shortcuts zur\u00fccksetzen" }, "reverse": { - "message": "Rückwärts" + "message": "R\u00fcckw\u00e4rts" }, "rotate": { "message": "Drehen" @@ -630,10 +633,10 @@ "message": "Nur die Suchleiste" }, "seekBackward10Seconds": { - "message": "10 Sekunden zurück" + "message": "10 Sekunden zur\u00fcck" }, "seekForward10Seconds": { - "message": "10 Sekunden überspringen" + "message": "10 Sekunden \u00fcberspringen" }, "settings": { "message": "Einstellungen" @@ -666,7 +669,7 @@ "message": "Statisch" }, "statsForNerds": { - "message": "Statistiken für Nerds" + "message": "Statistiken f\u00fcr Nerds" }, "step": { "message": "Schritt" @@ -699,7 +702,7 @@ "message": "System Einstellungen: hell" }, "teal": { - "message": "Blaugrün" + "message": "Blaugr\u00fcn" }, "textColor": { "message": "Textfarbe" @@ -708,10 +711,10 @@ "message": "Farbschemen" }, "thisWillRemoveAllCookies": { - "message": "Alle Cookies werden gelöscht" + "message": "Alle Cookies werden gel\u00f6scht" }, "thisWillRemoveAllYouTubeCookies": { - "message": "Alle YouTube Cookies werden gelöscht" + "message": "Alle YouTube Cookies werden gel\u00f6scht" }, "thisWillResetAllSettings": { "message": "Alle Einstellungen werden entfernt" @@ -741,7 +744,7 @@ "message": "Trailer autoplay (Kanal-Intro automatisch losspielen)" }, "translations": { - "message": "Übersetzungen" + "message": "\u00dcbersetzungen" }, "transparentBackground": { "message": "Transparenter Hintergrund" @@ -756,7 +759,7 @@ "message": "Typ" }, "upNextAutoplay": { - "message": "Nächstes Video automatisch abspielen" + "message": "N\u00e4chstes Video automatisch abspielen" }, "use24HourFormat": { "message": "24-Stunden Format" @@ -777,10 +780,10 @@ "message": "Videos" }, "volume": { - "message": "Lautstärke" + "message": "Lautst\u00e4rke" }, "watchLater": { - "message": "Später ansehen" + "message": "Sp\u00e4ter ansehen" }, "watchTime": { "message": "Verbrauchte Zeit" @@ -789,7 +792,7 @@ "message": "Beim Tab-Wechsel" }, "white": { - "message": "Weiß" + "message": "Wei\u00df" }, "yellow": { "message": "Gelb" @@ -807,6 +810,6 @@ "message": "YouTube Sprache" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube begrenzt die Qualität auf 1080p für den h.264 Codec" + "message": "YouTube begrenzt die Qualit\u00e4t auf 1080p f\u00fcr den h.264 Codec" } -} +} \ No newline at end of file diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 544f30646..33a178854 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -1,147 +1,147 @@ { + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "about": { - "message": "Σχετικά" + "message": "\u03a3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac" }, "accept": { - "message": "Αποδοχή" + "message": "\u0391\u03c0\u03bf\u03b4\u03bf\u03c7\u03ae" }, "activate": { - "message": "Ενεργοποίηση" + "message": "\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7" }, "activateCaptions": { - "message": "Ενεργοποίηση Υπότιτλων" + "message": "\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03a5\u03c0\u03cc\u03c4\u03b9\u03c4\u03bb\u03c9\u03bd" + }, + "activateFullscreen": { + "message": "\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03a0\u03bb\u03ae\u03c1\u03bf\u03c5\u03c2 \u039f\u03b8\u03cc\u03bd\u03b7" }, "activated": { - "message": "Ενεργοποιήθηκε" + "message": "\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03b8\u03b7\u03ba\u03b5" }, "activatedFeatures": { - "message": "Ενεργοποιημένες Λειτουργίες" - }, - "activateFullscreen": { - "message": "Ενεργοποίηση Πλήρους Οθόνη" + "message": "\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03b5\u03c2 \u039b\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b5\u03c2" }, "activeFeatures": { - "message": "Ενεργές λειτουργίες" + "message": "\u0395\u03bd\u03b5\u03c1\u03b3\u03ad\u03c2 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b5\u03c2" }, "addScrollToTop": { - "message": "Πρόσθεσε συντόμευση για την κορυφή της σελίδας" + "message": "\u03a0\u03c1\u03cc\u03c3\u03b8\u03b5\u03c3\u03b5 \u03c3\u03c5\u03bd\u03c4\u03cc\u03bc\u03b5\u03c5\u03c3\u03b7 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03ba\u03bf\u03c1\u03c5\u03c6\u03ae \u03c4\u03b7\u03c2 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1\u03c2" }, "ads": { - "message": "Διαφημίσεις" + "message": "\u0394\u03b9\u03b1\u03c6\u03b7\u03bc\u03af\u03c3\u03b5\u03b9\u03c2" }, "all": { - "message": "Όλα" + "message": "\u038c\u03bb\u03b1" }, "allow": { - "message": "Αποδοχή" + "message": "\u0391\u03c0\u03bf\u03b4\u03bf\u03c7\u03ae" }, "allow60fps": { - "message": "Επίτρεψε 60fps" - }, - "forceSDR": { - "message": "Force SDR" + "message": "\u0395\u03c0\u03af\u03c4\u03c1\u03b5\u03c8\u03b5 60fps" }, "alwaysActive": { - "message": "Πάντοτε ενεργό" + "message": "\u03a0\u03ac\u03bd\u03c4\u03bf\u03c4\u03b5 \u03b5\u03bd\u03b5\u03c1\u03b3\u03cc" }, "alwaysShowProgressBar": { - "message": "Πάντα ορατός ο ενδείκτης προόδου" + "message": "\u03a0\u03ac\u03bd\u03c4\u03b1 \u03bf\u03c1\u03b1\u03c4\u03cc\u03c2 \u03bf \u03b5\u03bd\u03b4\u03b5\u03af\u03ba\u03c4\u03b7\u03c2 \u03c0\u03c1\u03bf\u03cc\u03b4\u03bf\u03c5" }, "amber": { - "message": "Κεχρί" + "message": "\u039a\u03b5\u03c7\u03c1\u03af" }, "analyzer": { - "message": "Αναλυτής" + "message": "\u0391\u03bd\u03b1\u03bb\u03c5\u03c4\u03ae\u03c2" }, "appearance": { - "message": "Εμφάνιση" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" + "message": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7" }, "audio": { - "message": "Ήχος" + "message": "\u0389\u03c7\u03bf\u03c2" }, "audioFormats": { - "message": "Μορφές ήχου" + "message": "\u039c\u03bf\u03c1\u03c6\u03ad\u03c2 \u03ae\u03c7\u03bf\u03c5" }, "auto": { - "message": "Αυτόματο" + "message": "\u0391\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03bf" }, "autoFullscreen": { - "message": "Αυτόματη Πλήρης Οθόνη" + "message": "\u0391\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b7 \u03a0\u03bb\u03ae\u03c1\u03b7\u03c2 \u039f\u03b8\u03cc\u03bd\u03b7" }, "autopauseWhenSwitchingTabs": { - "message": "Αυτόματη παύση όταν αλλάζετε καρτέλα" + "message": "\u0391\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b7 \u03c0\u03b1\u03cd\u03c3\u03b7 \u03cc\u03c4\u03b1\u03bd \u03b1\u03bb\u03bb\u03ac\u03b6\u03b5\u03c4\u03b5 \u03ba\u03b1\u03c1\u03c4\u03ad\u03bb\u03b1" }, "autoplay": { - "message": "Αυτόματη αναπαραγωγή" + "message": "\u0391\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b7 \u03b1\u03bd\u03b1\u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae" }, "backupAndReset": { - "message": "Αντίγραφα ασφαλείας & reset" + "message": "\u0391\u03bd\u03c4\u03af\u03b3\u03c1\u03b1\u03c6\u03b1 \u03b1\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2 & reset" }, "baseOnSystemColorScheme": { - "message": "Με βάση τις ρυθμίσεις χρώματος του συστήματος" + "message": "\u039c\u03b5 \u03b2\u03ac\u03c3\u03b7 \u03c4\u03b9\u03c2 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 \u03c7\u03c1\u03ce\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c4\u03bf\u03c5 \u03c3\u03c5\u03c3\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2" }, "belowPlayer": { - "message": "Κάτω από το Player" + "message": "\u039a\u03ac\u03c4\u03c9 \u03b1\u03c0\u03cc \u03c4\u03bf Player" }, "black": { - "message": "Μαύρο" + "message": "\u039c\u03b1\u03cd\u03c1\u03bf" }, "blacklist": { - "message": "Λίστα αποκλεισμού" + "message": "\u039b\u03af\u03c3\u03c4\u03b1 \u03b1\u03c0\u03bf\u03ba\u03bb\u03b5\u03b9\u03c3\u03bc\u03bf\u03cd" }, "blockAll": { - "message": "Αποκλείστε όλα" + "message": "\u0391\u03c0\u03bf\u03ba\u03bb\u03b5\u03af\u03c3\u03c4\u03b5 \u03cc\u03bb\u03b1" }, "blue": { - "message": "Μπλε" + "message": "\u039c\u03c0\u03bb\u03b5" }, "blueGray": { - "message": "Μπλε γκρίζο" + "message": "\u039c\u03c0\u03bb\u03b5 \u03b3\u03ba\u03c1\u03af\u03b6\u03bf" }, "bluelight": { - "message": "Μπλε φως" + "message": "\u039c\u03c0\u03bb\u03b5 \u03c6\u03c9\u03c2" }, "brown": { - "message": "Καφέ" + "message": "\u039a\u03b1\u03c6\u03ad" }, "browser": { "message": "Browser" }, "browserVersion": { - "message": "Έκδοση browser" + "message": "\u0388\u03ba\u03b4\u03bf\u03c3\u03b7 browser" }, "bubbles": { - "message": "Φούσκες" + "message": "\u03a6\u03bf\u03cd\u03c3\u03ba\u03b5\u03c2" }, "bug": { - "message": "Σφάλμα κώδικα" + "message": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03ce\u03b4\u03b9\u03ba\u03b1" }, "buttons": { - "message": "Κουμπιά" + "message": "\u039a\u03bf\u03c5\u03bc\u03c0\u03b9\u03ac" }, "cancel": { - "message": "Ακύρωση" + "message": "\u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7" }, "categories": { - "message": "Κατηγορίες" + "message": "\u039a\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b5\u03c2" }, "channel": { - "message": "Κανάλι" + "message": "\u039a\u03b1\u03bd\u03ac\u03bb\u03b9" }, "channels": { - "message": "Κανάλια" + "message": "\u039a\u03b1\u03bd\u03ac\u03bb\u03b9\u03b1" }, "clipboard": { "message": "Clipboard" @@ -149,395 +149,401 @@ "codecH264": { "message": "Codec h.264" }, - "collapsed": { - "message": "Κλειστό" - }, "collapseOfSubscriptionSections": { - "message": "Κλείσε το μενού συνδρομών" + "message": "\u039a\u03bb\u03b5\u03af\u03c3\u03b5 \u03c4\u03bf \u03bc\u03b5\u03bd\u03bf\u03cd \u03c3\u03c5\u03bd\u03b4\u03c1\u03bf\u03bc\u03ce\u03bd" + }, + "collapsed": { + "message": "\u039a\u03bb\u03b5\u03b9\u03c3\u03c4\u03cc" }, "comments": { - "message": "Σχόλιο" + "message": "\u03a3\u03c7\u03cc\u03bb\u03b9\u03bf" }, "confirmationBeforeClosing": { - "message": "Επιβεβαίωση πρωτού κλείσεις" + "message": "\u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7 \u03c0\u03c1\u03c9\u03c4\u03bf\u03cd \u03ba\u03bb\u03b5\u03af\u03c3\u03b5\u03b9\u03c2" }, "cookies": { "message": "Cookies" }, "cores": { - "message": "Πυρήνες" + "message": "\u03a0\u03c5\u03c1\u03ae\u03bd\u03b5\u03c2" }, "cropChapterTitles": { - "message": "Περίκοψε τους τίτλους των κεφαλαίων" + "message": "\u03a0\u03b5\u03c1\u03af\u03ba\u03bf\u03c8\u03b5 \u03c4\u03bf\u03c5\u03c2 \u03c4\u03af\u03c4\u03bb\u03bf\u03c5\u03c2 \u03c4\u03c9\u03bd \u03ba\u03b5\u03c6\u03b1\u03bb\u03b1\u03af\u03c9\u03bd" }, "customCss": { - "message": "Εξατομίκευση CSS" + "message": "\u0395\u03be\u03b1\u03c4\u03bf\u03bc\u03af\u03ba\u03b5\u03c5\u03c3\u03b7 CSS" }, "customJs": { - "message": "Εξατομίκευση JS" + "message": "\u0395\u03be\u03b1\u03c4\u03bf\u03bc\u03af\u03ba\u03b5\u03c5\u03c3\u03b7 JS" }, "customMiniPlayer": { - "message": "Εξατομικευμένο Mini-Player" + "message": "\u0395\u03be\u03b1\u03c4\u03bf\u03bc\u03b9\u03ba\u03b5\u03c5\u03bc\u03ad\u03bd\u03bf Mini-Player" }, "cyan": { - "message": "Κυανό" + "message": "\u039a\u03c5\u03b1\u03bd\u03cc" }, "dark": { - "message": "Σκούρο" + "message": "\u03a3\u03ba\u03bf\u03cd\u03c1\u03bf" }, "darkTheme": { - "message": "Σκούρο θέμα" + "message": "\u03a3\u03ba\u03bf\u03cd\u03c1\u03bf \u03b8\u03ad\u03bc\u03b1" }, "dateAndTime": { - "message": "Ημερομηνία & ώρα" + "message": "\u0397\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1 & \u03ce\u03c1\u03b1" }, "dawn": { - "message": "Αυγή" + "message": "\u0391\u03c5\u03b3\u03ae" }, "decreasePlaybackSpeed": { - "message": "Μείωσε ταχύτητα αναπαραγωγής" + "message": "\u039c\u03b5\u03af\u03c9\u03c3\u03b5 \u03c4\u03b1\u03c7\u03cd\u03c4\u03b7\u03c4\u03b1 \u03b1\u03bd\u03b1\u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae\u03c2" }, "decreaseVolume": { - "message": "Μειώστε ένταση" + "message": "\u039c\u03b5\u03b9\u03ce\u03c3\u03c4\u03b5 \u03ad\u03bd\u03c4\u03b1\u03c3\u03b7" }, "deepOrange": { - "message": "Βαθύ πορτοκαλί" + "message": "\u0392\u03b1\u03b8\u03cd \u03c0\u03bf\u03c1\u03c4\u03bf\u03ba\u03b1\u03bb\u03af" }, "deepPurple": { - "message": "Βαθύ μοβ" + "message": "\u0392\u03b1\u03b8\u03cd \u03bc\u03bf\u03b2" }, "defaultChannelTab": { - "message": "Προεπιλεγμένη καρτέλα καναλιού" + "message": "\u03a0\u03c1\u03bf\u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03b7 \u03ba\u03b1\u03c1\u03c4\u03ad\u03bb\u03b1 \u03ba\u03b1\u03bd\u03b1\u03bb\u03b9\u03bf\u03cd" }, "deleteYoutubeCookies": { - "message": "Κατάργησε τα cookies του YouTube" + "message": "\u039a\u03b1\u03c4\u03ac\u03c1\u03b3\u03b7\u03c3\u03b5 \u03c4\u03b1 cookies \u03c4\u03bf\u03c5 YouTube" }, "description": { - "message": "Περιγραφή" + "message": "\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae" }, "desert": { - "message": "Έρημος" + "message": "\u0388\u03c1\u03b7\u03bc\u03bf\u03c2" }, "details": { - "message": "Λεπτομέρειες" + "message": "\u039b\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2" }, "developerOptions": { - "message": "Επιλογές για προγραμματιστές" + "message": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ad\u03c2 \u03b3\u03b9\u03b1 \u03c0\u03c1\u03bf\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1\u03c4\u03b9\u03c3\u03c4\u03ad\u03c2" }, "device": { - "message": "Συσκευή" + "message": "\u03a3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae" }, "dim": { - "message": "Σκοτεινό" + "message": "\u03a3\u03ba\u03bf\u03c4\u03b5\u03b9\u03bd\u03cc" }, "disabled": { - "message": "Απενεργοποιημένο" + "message": "\u0391\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03bf" }, "dislike": { - "message": "Δε μου αρέσει" - }, - "donate": { - "message": "Συνεισφέρετε οικονομικά" + "message": "\u0394\u03b5 \u03bc\u03bf\u03c5 \u03b1\u03c1\u03ad\u03c3\u03b5\u03b9" }, "doNotChange": { - "message": "Να μην αλλάξει" + "message": "\u039d\u03b1 \u03bc\u03b7\u03bd \u03b1\u03bb\u03bb\u03ac\u03be\u03b5\u03b9" + }, + "donate": { + "message": "\u03a3\u03c5\u03bd\u03b5\u03b9\u03c3\u03c6\u03ad\u03c1\u03b5\u03c4\u03b5 \u03bf\u03b9\u03ba\u03bf\u03bd\u03bf\u03bc\u03b9\u03ba\u03ac" }, "draggable": { - "message": "Μετακινήσιμο με σύρση" + "message": "\u039c\u03b5\u03c4\u03b1\u03ba\u03b9\u03bd\u03ae\u03c3\u03b9\u03bc\u03bf \u03bc\u03b5 \u03c3\u03cd\u03c1\u03c3\u03b7" }, "email": { "message": "Email" }, "empty": { - "message": "Κενό" + "message": "\u039a\u03b5\u03bd\u03cc" }, "enabled": { - "message": "Ενεργοποιημένο" + "message": "\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03bf" }, "enabledForced": { - "message": "Ενεργοποιημένο (Υποχρεωτικά)" + "message": "\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03bf (\u03a5\u03c0\u03bf\u03c7\u03c1\u03b5\u03c9\u03c4\u03b9\u03ba\u03ac)" }, "expanded": { - "message": "Ανοικτό" + "message": "\u0391\u03bd\u03bf\u03b9\u03ba\u03c4\u03cc" }, "exportSettings": { - "message": "Εξαγωγή ρυθμίσεων" + "message": "\u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd" }, "extension": { - "message": "Επέκταση" + "message": "\u0395\u03c0\u03ad\u03ba\u03c4\u03b1\u03c3\u03b7" }, "file": { - "message": "Αρχείο" + "message": "\u0391\u03c1\u03c7\u03b5\u03af\u03bf" }, "filters": { - "message": "Φίλτρα" + "message": "\u03a6\u03af\u03bb\u03c4\u03c1\u03b1" }, "fitToWindow": { - "message": "Να χωράει στο παράθυρο" + "message": "\u039d\u03b1 \u03c7\u03c9\u03c1\u03ac\u03b5\u03b9 \u03c3\u03c4\u03bf \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf" }, "flash": { "message": "Flash" }, "font": { - "message": "Γραμματοσειρά" + "message": "\u0393\u03c1\u03b1\u03bc\u03bc\u03b1\u03c4\u03bf\u03c3\u03b5\u03b9\u03c1\u03ac" }, "footer": { - "message": "Υποσέλιδο" + "message": "\u03a5\u03c0\u03bf\u03c3\u03ad\u03bb\u03b9\u03b4\u03bf" + }, + "forceSDR": { + "message": "Force SDR" }, "forcedPlaybackSpeed": { - "message": "Υποχρεωτική ταχύτητα αναπαραγωγής" + "message": "\u03a5\u03c0\u03bf\u03c7\u03c1\u03b5\u03c9\u03c4\u03b9\u03ba\u03ae \u03c4\u03b1\u03c7\u03cd\u03c4\u03b7\u03c4\u03b1 \u03b1\u03bd\u03b1\u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae\u03c2" }, "forcedTheaterMode": { - "message": "Υποχρεωτική λειτουργία κινηματογράφου" + "message": "\u03a5\u03c0\u03bf\u03c7\u03c1\u03b5\u03c9\u03c4\u03b9\u03ba\u03ae \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03ba\u03b9\u03bd\u03b7\u03bc\u03b1\u03c4\u03bf\u03b3\u03c1\u03ac\u03c6\u03bf\u03c5" }, "forcedVolume": { - "message": "Υποχρεωτική ένταση" + "message": "\u03a5\u03c0\u03bf\u03c7\u03c1\u03b5\u03c9\u03c4\u03b9\u03ba\u03ae \u03ad\u03bd\u03c4\u03b1\u03c3\u03b7" }, "foundABug": { - "message": "Εντοπίσατε κάποιο σφάλμα;" + "message": "\u0395\u03bd\u03c4\u03bf\u03c0\u03af\u03c3\u03b1\u03c4\u03b5 \u03ba\u03ac\u03c0\u03bf\u03b9\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1;" }, "fullWindow": { - "message": "Πλήρες παράθυρο" + "message": "\u03a0\u03bb\u03ae\u03c1\u03b5\u03c2 \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf" }, "general": { - "message": "Γενικά" + "message": "\u0393\u03b5\u03bd\u03b9\u03ba\u03ac" }, "github": { "message": "GitHub" }, "goToSearchBox": { - "message": "Πήγαινε στο πεδίο αναζήτησης" + "message": "\u03a0\u03ae\u03b3\u03b1\u03b9\u03bd\u03b5 \u03c3\u03c4\u03bf \u03c0\u03b5\u03b4\u03af\u03bf \u03b1\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7\u03c2" }, "gpu": { "message": "GPU" }, "green": { - "message": "Πράσινο" + "message": "\u03a0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf" }, "hdThumbnail": { - "message": "HD Εικονίδιο βίντεο" + "message": "HD \u0395\u03b9\u03ba\u03bf\u03bd\u03af\u03b4\u03b9\u03bf \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" }, "hdThumbnails": { - "message": "HD Εικονίδια βίντεο" + "message": "HD \u0395\u03b9\u03ba\u03bf\u03bd\u03af\u03b4\u03b9\u03b1 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" }, "header": { - "message": "Κεφαλίδα" + "message": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1" }, "hidden": { - "message": "Κρυμμένο" + "message": "\u039a\u03c1\u03c5\u03bc\u03bc\u03ad\u03bd\u03bf" }, "hiddenOnVideoPage": { - "message": "Κρυμμένο στη σελίδα βίντεο" + "message": "\u039a\u03c1\u03c5\u03bc\u03bc\u03ad\u03bd\u03bf \u03c3\u03c4\u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" }, "hideAnimatedThumbnails": { - "message": "Απόκρυψε τα κινούμενα εικονίδια βίντεο" + "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03b1 \u03ba\u03b9\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03b1 \u03b5\u03b9\u03ba\u03bf\u03bd\u03af\u03b4\u03b9\u03b1 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" }, "hideAnnotations": { - "message": "Απόκρυψε τα annotations" + "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03b1 annotations" }, "hideCards": { - "message": "Απόκρυψε τις κάρτες" + "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03b9\u03c2 \u03ba\u03ac\u03c1\u03c4\u03b5\u03c2" }, "hideDetails": { - "message": "Απόκρυψε τις λεπτομέρειες" + "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03b9\u03c2 \u03bb\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2" }, "hideEndscreen": { - "message": "Απόκρυψε την κάρτα τέλους" + "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03b7\u03bd \u03ba\u03ac\u03c1\u03c4\u03b1 \u03c4\u03ad\u03bb\u03bf\u03c5\u03c2" }, "hideFeaturedContent": { - "message": "Απόκρυψε το προτεινόμενο περιεχόμενο" + "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03bf \u03c0\u03c1\u03bf\u03c4\u03b5\u03b9\u03bd\u03cc\u03bc\u03b5\u03bd\u03bf \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03bf" }, "hideFooter": { - "message": "Απόκρυψε το υποσέλιδο" + "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03bf \u03c5\u03c0\u03bf\u03c3\u03ad\u03bb\u03b9\u03b4\u03bf" }, "hideGradientBottom": { - "message": "Απόκρυψε το κάτω μέρος της χρωματικής διαβάθμισης" + "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03bf \u03ba\u03ac\u03c4\u03c9 \u03bc\u03ad\u03c1\u03bf\u03c2 \u03c4\u03b7\u03c2 \u03c7\u03c1\u03c9\u03bc\u03b1\u03c4\u03b9\u03ba\u03ae\u03c2 \u03b4\u03b9\u03b1\u03b2\u03ac\u03b8\u03bc\u03b9\u03c3\u03b7\u03c2" }, "hidePlaylist": { - "message": "Απόκρυψε τα playlists" + "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03b1 playlists" }, "hideRightButtons": { - "message": "Απόκρυψε τα κουμπιά στα δεξιά" + "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03b1 \u03ba\u03bf\u03c5\u03bc\u03c0\u03b9\u03ac \u03c3\u03c4\u03b1 \u03b4\u03b5\u03be\u03b9\u03ac" }, "hideScrollForDetails": { - "message": "Απόκρυψε το «Scroll for details»" + "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03bf \u00abScroll for details\u00bb" }, "hideViewsCount": { - "message": "Απόκρυψε τον αριθμό προβολών" + "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03bf\u03bd \u03b1\u03c1\u03b9\u03b8\u03bc\u03cc \u03c0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ce\u03bd" }, "history": { - "message": "Ιστορικό" + "message": "\u0399\u03c3\u03c4\u03bf\u03c1\u03b9\u03ba\u03cc" }, "home": { - "message": "Αρχική σελίδα" + "message": "\u0391\u03c1\u03c7\u03b9\u03ba\u03ae \u03c3\u03b5\u03bb\u03af\u03b4\u03b1" }, "hover": { - "message": "Κέρσορας από πάνω" + "message": "\u039a\u03ad\u03c1\u03c3\u03bf\u03c1\u03b1\u03c2 \u03b1\u03c0\u03cc \u03c0\u03ac\u03bd\u03c9" }, "hoverOnVideoPage": { - "message": "Κέρσορας πάνω στη σελίδα βίντεο" + "message": "\u039a\u03ad\u03c1\u03c3\u03bf\u03c1\u03b1\u03c2 \u03c0\u03ac\u03bd\u03c9 \u03c3\u03c4\u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" }, "howLongAgoTheVideoWasUploaded": { - "message": "Πριν από πόσο ανέβηκε το βίντεο" + "message": "\u03a0\u03c1\u03b9\u03bd \u03b1\u03c0\u03cc \u03c0\u03cc\u03c3\u03bf \u03b1\u03bd\u03ad\u03b2\u03b7\u03ba\u03b5 \u03c4\u03bf \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" }, "icons": { - "message": "Εικονίδια" + "message": "\u0395\u03b9\u03ba\u03bf\u03bd\u03af\u03b4\u03b9\u03b1" }, "iconsOnly": { - "message": "Εικονίδια μόνο" + "message": "\u0395\u03b9\u03ba\u03bf\u03bd\u03af\u03b4\u03b9\u03b1 \u03bc\u03cc\u03bd\u03bf" }, "importSettings": { - "message": "Εισαγωγή ρυθμίσεων" + "message": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd" + }, + "improveLogo": { + "message": "\u039b\u03bf\u03b3\u03cc\u03c4\u03c5\u03c0\u03bf Improve" }, "improvedtubeIconInBrowser": { - "message": "Εικονίδιο ImprovedTube στο Browser" + "message": "\u0395\u03b9\u03ba\u03bf\u03bd\u03af\u03b4\u03b9\u03bf ImprovedTube \u03c3\u03c4\u03bf Browser" }, "improvedtubeIconOnYoutube": { - "message": "Εικονίδιο ImprovedTube στο YouTube" + "message": "\u0395\u03b9\u03ba\u03bf\u03bd\u03af\u03b4\u03b9\u03bf ImprovedTube \u03c3\u03c4\u03bf YouTube" }, "improvedtubeLanguage": { - "message": "Γλώσσα ImprovedTube" + "message": "\u0393\u03bb\u03ce\u03c3\u03c3\u03b1 ImprovedTube" }, "improvedtubeVersion": { - "message": "Έκδοση ImprovedTube" - }, - "improveLogo": { - "message": "Λογότυπο Improve" + "message": "\u0388\u03ba\u03b4\u03bf\u03c3\u03b7 ImprovedTube" }, "increasePlaybackSpeed": { - "message": "Αύξησε την ταχύτητα αναπαραγωγής" + "message": "\u0391\u03cd\u03be\u03b7\u03c3\u03b5 \u03c4\u03b7\u03bd \u03c4\u03b1\u03c7\u03cd\u03c4\u03b7\u03c4\u03b1 \u03b1\u03bd\u03b1\u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae\u03c2" }, "increaseVolume": { - "message": "Αύξησε την ένταση" + "message": "\u0391\u03cd\u03be\u03b7\u03c3\u03b5 \u03c4\u03b7\u03bd \u03ad\u03bd\u03c4\u03b1\u03c3\u03b7" }, "indigo": { "message": "Indigo" }, "items": { - "message": "Αντικείμενα" + "message": "\u0391\u03bd\u03c4\u03b9\u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03b1" }, "languages": { - "message": "Γλώσσες" + "message": "\u0393\u03bb\u03ce\u03c3\u03c3\u03b5\u03c2" }, "legacyYoutube": { - "message": "Παλιά έκδοση YouTube" + "message": "\u03a0\u03b1\u03bb\u03b9\u03ac \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7 YouTube" }, "light": { - "message": "Ανοιχτόχρωμο" + "message": "\u0391\u03bd\u03bf\u03b9\u03c7\u03c4\u03cc\u03c7\u03c1\u03c9\u03bc\u03bf" }, "lightBlue": { - "message": "Ανοικτό μπλε" + "message": "\u0391\u03bd\u03bf\u03b9\u03ba\u03c4\u03cc \u03bc\u03c0\u03bb\u03b5" }, "lightGreen": { - "message": "Ανοικτό πράσινο" + "message": "\u0391\u03bd\u03bf\u03b9\u03ba\u03c4\u03cc \u03c0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf" }, "like": { - "message": "Μου αρέσει" + "message": "\u039c\u03bf\u03c5 \u03b1\u03c1\u03ad\u03c3\u03b5\u03b9" }, "likes": { "message": "Likes" }, "lime": { - "message": "Μοσχολέμονο" + "message": "\u039c\u03bf\u03c3\u03c7\u03bf\u03bb\u03ad\u03bc\u03bf\u03bd\u03bf" }, "list": { - "message": "Λίστα" + "message": "\u039b\u03af\u03c3\u03c4\u03b1" }, "liveChat": { "message": "Live chat" }, "liveChatType": { - "message": "Τύπος live chat" + "message": "\u03a4\u03cd\u03c0\u03bf\u03c2 live chat" }, "loudnessNormalization": { - "message": "Κανονικοποίηση έντασης" + "message": "\u039a\u03b1\u03bd\u03bf\u03bd\u03b9\u03ba\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03ad\u03bd\u03c4\u03b1\u03c3\u03b7\u03c2" }, "markWatchedVideos": { - "message": "Επισήμανση βίντεο που προβλήθηκαν" + "message": "\u0395\u03c0\u03b9\u03c3\u03ae\u03bc\u03b1\u03bd\u03c3\u03b7 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf \u03c0\u03bf\u03c5 \u03c0\u03c1\u03bf\u03b2\u03bb\u03ae\u03b8\u03b7\u03ba\u03b1\u03bd" }, "mixer": { "message": "Mixer" }, "myColors": { - "message": "Τα χρώματά μου" + "message": "\u03a4\u03b1 \u03c7\u03c1\u03ce\u03bc\u03b1\u03c4\u03ac \u03bc\u03bf\u03c5" }, "name": { - "message": "Όνομα" + "message": "\u038c\u03bd\u03bf\u03bc\u03b1" }, "nativeMiniPlayer": { - "message": "Mini player συστήματος" + "message": "Mini player \u03c3\u03c5\u03c3\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2" }, "new": { - "message": "Νέο" + "message": "\u039d\u03ad\u03bf" }, "nextVideo": { - "message": "Επόμενο βίντεο" + "message": "\u0395\u03c0\u03cc\u03bc\u03b5\u03bd\u03bf \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" }, "night": { - "message": "Νύχτα" + "message": "\u039d\u03cd\u03c7\u03c4\u03b1" }, "noActiveFeatures": { - "message": "Καμία λειτουργία ενεργή" - }, - "none": { - "message": "Κανένα" + "message": "\u039a\u03b1\u03bc\u03af\u03b1 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b5\u03bd\u03b5\u03c1\u03b3\u03ae" }, "noOpenVideoTabs": { - "message": "Καμία καρτέλα βίντεο ανοικτή" + "message": "\u039a\u03b1\u03bc\u03af\u03b1 \u03ba\u03b1\u03c1\u03c4\u03ad\u03bb\u03b1 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf \u03b1\u03bd\u03bf\u03b9\u03ba\u03c4\u03ae" + }, + "none": { + "message": "\u039a\u03b1\u03bd\u03ad\u03bd\u03b1" }, "normal": { - "message": "Κανονικό" + "message": "\u039a\u03b1\u03bd\u03bf\u03bd\u03b9\u03ba\u03cc" }, "old": { - "message": "Παλιό" + "message": "\u03a0\u03b1\u03bb\u03b9\u03cc" }, "onAllVideos": { - "message": "Σε όλα τα βίντεο" + "message": "\u03a3\u03b5 \u03cc\u03bb\u03b1 \u03c4\u03b1 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" + }, + "onSubscribedChannels": { + "message": "\u03a3\u03b5 \u03ba\u03b1\u03bd\u03ac\u03bb\u03b9\u03b1 \u03c0\u03bf\u03c5 \u03ad\u03c7\u03b5\u03b9 \u03b3\u03af\u03bd\u03b5\u03b9 \u03c3\u03c5\u03bd\u03b4\u03c1\u03bf\u03bc\u03ae" }, "onlyActiveOnYoutube": { - "message": "Μόνο ενεργό στο YouTube" + "message": "\u039c\u03cc\u03bd\u03bf \u03b5\u03bd\u03b5\u03c1\u03b3\u03cc \u03c3\u03c4\u03bf YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Μόνο ένα player λειτουργεί" - }, - "onSubscribedChannels": { - "message": "Σε κανάλια που έχει γίνει συνδρομή" + "message": "\u039c\u03cc\u03bd\u03bf \u03ad\u03bd\u03b1 player \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03b5\u03af" }, "orange": { - "message": "Πορτοκαλί" + "message": "\u03a0\u03bf\u03c1\u03c4\u03bf\u03ba\u03b1\u03bb\u03af" }, "os": { "message": "OS" }, "other": { - "message": "Άλλο" + "message": "\u0386\u03bb\u03bb\u03bf" }, "permissions": { - "message": "Άδεια" + "message": "\u0386\u03b4\u03b5\u03b9\u03b1" }, "pictureInPicture": { "message": "Picture-in-Picture" }, "pink": { - "message": "Ροζ" + "message": "\u03a1\u03bf\u03b6" }, "plain": { - "message": "Σκέτο" + "message": "\u03a3\u03ba\u03ad\u03c4\u03bf" }, "platform": { - "message": "Πλατφόρμα" + "message": "\u03a0\u03bb\u03b1\u03c4\u03c6\u03cc\u03c1\u03bc\u03b1" + }, + "playPause": { + "message": "Play / Pause" }, "playbackSpeed": { - "message": "Ταχύτητα αναπαραγωγής" + "message": "\u03a4\u03b1\u03c7\u03cd\u03c4\u03b7\u03c4\u03b1 \u03b1\u03bd\u03b1\u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae\u03c2" }, "player": { "message": "Player" }, "playerColor": { - "message": "Χρώμσ player" + "message": "\u03a7\u03c1\u03ce\u03bc\u03c3 player" }, "playerSize": { - "message": "Μέγεθος player" + "message": "\u039c\u03ad\u03b3\u03b5\u03b8\u03bf\u03c2 player" }, "playlist": { "message": "Playlist" @@ -545,113 +551,110 @@ "playlists": { "message": "Playlists" }, - "playPause": { - "message": "Play / Pause" - }, "popupPlayer": { "message": "Popup player" }, "position": { - "message": "Θέση" + "message": "\u0398\u03ad\u03c3\u03b7" }, "pressAnyKeyOrScroll": { - "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." + "message": "\u03a0\u03af\u03b5\u03c3\u03b5 \u03bf\u03c0\u03bf\u03b9\u03bf\u03b4\u03ae\u03c0\u03bf\u03c4\u03b5 \u03c0\u03bb\u03ae\u03ba\u03c4\u03c1\u03bf \u03ae \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b5 \u03c4\u03b7 \u03c1\u03bf\u03b4\u03ad\u03bb\u03b1 \u03c3\u03c4\u03bf \u03c0\u03bf\u03bd\u03c4\u03af\u03ba\u03b9." }, "pressAnyKeyOrUseMouseWheel": { - "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." + "message": "\u03a0\u03af\u03b5\u03c3\u03b5 \u03bf\u03c0\u03bf\u03b9\u03bf\u03b4\u03ae\u03c0\u03bf\u03c4\u03b5 \u03c0\u03bb\u03ae\u03ba\u03c4\u03c1\u03bf \u03ae \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b5 \u03c4\u03b7 \u03c1\u03bf\u03b4\u03ad\u03bb\u03b1 \u03c3\u03c4\u03bf \u03c0\u03bf\u03bd\u03c4\u03af\u03ba\u03b9." }, "previousVideo": { - "message": "Προηγούμενο βίντεο" + "message": "\u03a0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" }, "primaryColor": { - "message": "Πρωτεύον χρώμα" + "message": "\u03a0\u03c1\u03c9\u03c4\u03b5\u03cd\u03bf\u03bd \u03c7\u03c1\u03ce\u03bc\u03b1" }, "purple": { - "message": "Μοβ" + "message": "\u039c\u03bf\u03b2" }, "quality": { - "message": "Ποιότητα" + "message": "\u03a0\u03bf\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1" }, "ram": { "message": "RAM" }, "rateUs": { - "message": "Αξιολόγησέ μας" + "message": "\u0391\u03be\u03b9\u03bf\u03bb\u03cc\u03b3\u03b7\u03c3\u03ad \u03bc\u03b1\u03c2" }, "red": { - "message": "Κόκκινο" + "message": "\u039a\u03cc\u03ba\u03ba\u03b9\u03bd\u03bf" }, "redDislikeButton": { - "message": "Δείξτε το πλήκτρο «Δε μου αρέσει» σε κόκκινο" + "message": "\u0394\u03b5\u03af\u03be\u03c4\u03b5 \u03c4\u03bf \u03c0\u03bb\u03ae\u03ba\u03c4\u03c1\u03bf \u00ab\u0394\u03b5 \u03bc\u03bf\u03c5 \u03b1\u03c1\u03ad\u03c3\u03b5\u03b9\u00bb \u03c3\u03b5 \u03ba\u03cc\u03ba\u03ba\u03b9\u03bd\u03bf" }, "relatedVideos": { - "message": "Σχετικά videos" + "message": "\u03a3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac videos" }, "removeRelatedSearchResults": { - "message": "Αφαίρεσε σχετικά αποτελέσματα αναζήτησης" + "message": "\u0391\u03c6\u03b1\u03af\u03c1\u03b5\u03c3\u03b5 \u03c3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03b1 \u03b1\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7\u03c2" }, "repeat": { - "message": "Επανάληψη" + "message": "\u0395\u03c0\u03b1\u03bd\u03ac\u03bb\u03b7\u03c8\u03b7" }, "reset": { - "message": "Επαναφορά" + "message": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac" }, "resetAllSettings": { - "message": "Επαναφορά όλων των ρυθμίσεων" + "message": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd" }, "resetAllShortcuts": { - "message": "Επαναφορά όλων των συντομεύσεων" + "message": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03c3\u03c5\u03bd\u03c4\u03bf\u03bc\u03b5\u03cd\u03c3\u03b5\u03c9\u03bd" }, "reverse": { - "message": "Ανάποδα" + "message": "\u0391\u03bd\u03ac\u03c0\u03bf\u03b4\u03b1" }, "rotate": { - "message": "Περιστροφή" + "message": "\u03a0\u03b5\u03c1\u03b9\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae" }, "save": { - "message": "Αποθήκευση" + "message": "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7" }, "saveAs": { - "message": "Αποθήκευση ως" + "message": "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c9\u03c2" }, "schedule": { - "message": "Πρόγραμμα" + "message": "\u03a0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1" }, "screen": { - "message": "Οθόνη" + "message": "\u039f\u03b8\u03cc\u03bd\u03b7" }, "screenshot": { - "message": "Στιγμιότυπο" + "message": "\u03a3\u03c4\u03b9\u03b3\u03bc\u03b9\u03cc\u03c4\u03c5\u03c0\u03bf" }, "search": { - "message": "Αναζήτηση" + "message": "\u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7" }, "searchBarOnly": { - "message": "Πεδίο αναζήτησης μόνο" + "message": "\u03a0\u03b5\u03b4\u03af\u03bf \u03b1\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7\u03c2 \u03bc\u03cc\u03bd\u03bf" }, "seekBackward10Seconds": { - "message": "Πίσω 10 δευτερόλεπτα" + "message": "\u03a0\u03af\u03c3\u03c9 10 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1" }, "seekForward10Seconds": { - "message": "Μπροστά 10 δευτερόλεπτα" + "message": "\u039c\u03c0\u03c1\u03bf\u03c3\u03c4\u03ac 10 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1" }, "settings": { - "message": "Ρυθμίσεις" + "message": "\u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2" }, "settingsSuccessfullyImported": { - "message": "Επιτυχής εισαγωγή ρυθμίσεων" + "message": "\u0395\u03c0\u03b9\u03c4\u03c5\u03c7\u03ae\u03c2 \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd" }, "shortcuts": { - "message": "Συντομεύσεις" + "message": "\u03a3\u03c5\u03bd\u03c4\u03bf\u03bc\u03b5\u03cd\u03c3\u03b5\u03b9\u03c2" }, "showCardsOnMouseHover": { - "message": "Δείξε τις κάρτες όταν ο κέρσορας είναι από πάνω" + "message": "\u0394\u03b5\u03af\u03be\u03b5 \u03c4\u03b9\u03c2 \u03ba\u03ac\u03c1\u03c4\u03b5\u03c2 \u03cc\u03c4\u03b1\u03bd \u03bf \u03ba\u03ad\u03c1\u03c3\u03bf\u03c1\u03b1\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03c0\u03cc \u03c0\u03ac\u03bd\u03c9" }, "showChannelVideosCount": { - "message": "Δείξε τις συνολικές προβολές του καναλιού" + "message": "\u0394\u03b5\u03af\u03be\u03b5 \u03c4\u03b9\u03c2 \u03c3\u03c5\u03bd\u03bf\u03bb\u03b9\u03ba\u03ad\u03c2 \u03c0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ad\u03c2 \u03c4\u03bf\u03c5 \u03ba\u03b1\u03bd\u03b1\u03bb\u03b9\u03bf\u03cd" }, "shuffle": { - "message": "Τυχαία αναπαραγωγή" + "message": "\u03a4\u03c5\u03c7\u03b1\u03af\u03b1 \u03b1\u03bd\u03b1\u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae" }, "sidebar": { "message": "Sidebar" @@ -660,76 +663,76 @@ "message": "Spacebar" }, "squaredUserImages": { - "message": "Τετράγωνες εικόνες χρήστη" + "message": "\u03a4\u03b5\u03c4\u03c1\u03ac\u03b3\u03c9\u03bd\u03b5\u03c2 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b5\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7" }, "static": { - "message": "Στατικό" + "message": "\u03a3\u03c4\u03b1\u03c4\u03b9\u03ba\u03cc" }, "statsForNerds": { - "message": "Δείξε τα Στατιστικά για Σπασίκλες" + "message": "\u0394\u03b5\u03af\u03be\u03b5 \u03c4\u03b1 \u03a3\u03c4\u03b1\u03c4\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac \u03b3\u03b9\u03b1 \u03a3\u03c0\u03b1\u03c3\u03af\u03ba\u03bb\u03b5\u03c2" }, "step": { - "message": "Βήμα" + "message": "\u0392\u03ae\u03bc\u03b1" }, "stop": { - "message": "Στοπ" + "message": "\u03a3\u03c4\u03bf\u03c0" }, "style": { - "message": "Στυλ" + "message": "\u03a3\u03c4\u03c5\u03bb" }, "styles": { - "message": "Στυλ" + "message": "\u03a3\u03c4\u03c5\u03bb" }, "subscriptions": { - "message": "Συνδρομές" + "message": "\u03a3\u03c5\u03bd\u03b4\u03c1\u03bf\u03bc\u03ad\u03c2" }, "subtitles": { - "message": "Υπότιτλοι" + "message": "\u03a5\u03c0\u03cc\u03c4\u03b9\u03c4\u03bb\u03bf\u03b9" }, "sunset": { - "message": "Ηλιοβασίλεμα" + "message": "\u0397\u03bb\u03b9\u03bf\u03b2\u03b1\u03c3\u03af\u03bb\u03b5\u03bc\u03b1" }, "sunsetToSunrise": { - "message": "Από δύση έως ανατολή" + "message": "\u0391\u03c0\u03cc \u03b4\u03cd\u03c3\u03b7 \u03ad\u03c9\u03c2 \u03b1\u03bd\u03b1\u03c4\u03bf\u03bb\u03ae" }, "systemPeferenceDark": { - "message": "Προτίμηση συστήματος: Σκούρο" + "message": "\u03a0\u03c1\u03bf\u03c4\u03af\u03bc\u03b7\u03c3\u03b7 \u03c3\u03c5\u03c3\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2: \u03a3\u03ba\u03bf\u03cd\u03c1\u03bf" }, "systemPeferenceLight": { - "message": "Προτίμηση συστήματος: Ανοικτόχρωμο" + "message": "\u03a0\u03c1\u03bf\u03c4\u03af\u03bc\u03b7\u03c3\u03b7 \u03c3\u03c5\u03c3\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2: \u0391\u03bd\u03bf\u03b9\u03ba\u03c4\u03cc\u03c7\u03c1\u03c9\u03bc\u03bf" }, "teal": { - "message": "Γαλαζιοπράσινο" + "message": "\u0393\u03b1\u03bb\u03b1\u03b6\u03b9\u03bf\u03c0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf" }, "textColor": { - "message": "Χρώμα κειμένου" + "message": "\u03a7\u03c1\u03ce\u03bc\u03b1 \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5" }, "themes": { - "message": "Θέματα" + "message": "\u0398\u03ad\u03bc\u03b1\u03c4\u03b1" }, "thisWillRemoveAllCookies": { - "message": "Αυτό αφαιρεί όλα τα cookies." + "message": "\u0391\u03c5\u03c4\u03cc \u03b1\u03c6\u03b1\u03b9\u03c1\u03b5\u03af \u03cc\u03bb\u03b1 \u03c4\u03b1 cookies." }, "thisWillRemoveAllYouTubeCookies": { - "message": "Αυτό αφαιρεί όλα τα cookies του YouTube." + "message": "\u0391\u03c5\u03c4\u03cc \u03b1\u03c6\u03b1\u03b9\u03c1\u03b5\u03af \u03cc\u03bb\u03b1 \u03c4\u03b1 cookies \u03c4\u03bf\u03c5 YouTube." }, "thisWillResetAllSettings": { - "message": "Αυτό επαναφέρει όλες τις ρυθμίσεις." + "message": "\u0391\u03c5\u03c4\u03cc \u03b5\u03c0\u03b1\u03bd\u03b1\u03c6\u03ad\u03c1\u03b5\u03b9 \u03cc\u03bb\u03b5\u03c2 \u03c4\u03b9\u03c2 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2." }, "thisWillResetAllShortcuts": { - "message": "Αυτό επαναφέρει όλες τις συντομεύσεις." + "message": "\u0391\u03c5\u03c4\u03cc \u03b5\u03c0\u03b1\u03bd\u03b1\u03c6\u03ad\u03c1\u03b5\u03b9 \u03cc\u03bb\u03b5\u03c2 \u03c4\u03b9\u03c2 \u03c3\u03c5\u03bd\u03c4\u03bf\u03bc\u03b5\u03cd\u03c3\u03b5\u03b9\u03c2." }, "thumbnails": { - "message": "Εικονίδια" + "message": "\u0395\u03b9\u03ba\u03bf\u03bd\u03af\u03b4\u03b9\u03b1" }, "timeFrom": { - "message": "Χρόνος από" + "message": "\u03a7\u03c1\u03cc\u03bd\u03bf\u03c2 \u03b1\u03c0\u03cc" }, "timeTo": { - "message": "Χρόνος έως" + "message": "\u03a7\u03c1\u03cc\u03bd\u03bf\u03c2 \u03ad\u03c9\u03c2" }, "todayAt": { - "message": "Σήμερα στις" + "message": "\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1 \u03c3\u03c4\u03b9\u03c2" }, "toggleCards": { "message": "Toggle cards" @@ -741,72 +744,72 @@ "message": "Trailer autoplay" }, "translations": { - "message": "Μεταφράσεις" + "message": "\u039c\u03b5\u03c4\u03b1\u03c6\u03c1\u03ac\u03c3\u03b5\u03b9\u03c2" }, "transparentBackground": { - "message": "Διαφανές υπόβαθρο" + "message": "\u0394\u03b9\u03b1\u03c6\u03b1\u03bd\u03ad\u03c2 \u03c5\u03c0\u03cc\u03b2\u03b1\u03b8\u03c1\u03bf" }, "trending": { - "message": "Τάσεις" + "message": "\u03a4\u03ac\u03c3\u03b5\u03b9\u03c2" }, "tryToReloadThePage": { - "message": "Προσπάθησε να επαναφορτώσεις τη σελίδα" + "message": "\u03a0\u03c1\u03bf\u03c3\u03c0\u03ac\u03b8\u03b7\u03c3\u03b5 \u03bd\u03b1 \u03b5\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03c4\u03ce\u03c3\u03b5\u03b9\u03c2 \u03c4\u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1" }, "type": { - "message": "Τύπος" + "message": "\u03a4\u03cd\u03c0\u03bf\u03c2" }, "upNextAutoplay": { - "message": "Επόμενο στο autoplay" + "message": "\u0395\u03c0\u03cc\u03bc\u03b5\u03bd\u03bf \u03c3\u03c4\u03bf autoplay" }, "use24HourFormat": { - "message": "Χρησιμοποίησε 24ωρη μορφή ώρας" + "message": "\u03a7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b5 24\u03c9\u03c1\u03b7 \u03bc\u03bf\u03c1\u03c6\u03ae \u03ce\u03c1\u03b1\u03c2" }, "version": { - "message": "Έκδοση" + "message": "\u0388\u03ba\u03b4\u03bf\u03c3\u03b7" }, "video": { - "message": "Βίντεο" + "message": "\u0392\u03af\u03bd\u03c4\u03b5\u03bf" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Η περιγραφή του βίντεο θα επεκταθεί ωστε να συμπεριληφθεί το όνομα της κατηγορίας." + "message": "\u0397 \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03bf\u03c5 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf \u03b8\u03b1 \u03b5\u03c0\u03b5\u03ba\u03c4\u03b1\u03b8\u03b5\u03af \u03c9\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bc\u03c0\u03b5\u03c1\u03b9\u03bb\u03b7\u03c6\u03b8\u03b5\u03af \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c4\u03b7\u03c2 \u03ba\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1\u03c2." }, "videoFormats": { - "message": "Μορφές βίντεο" + "message": "\u039c\u03bf\u03c1\u03c6\u03ad\u03c2 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" }, "videos": { - "message": "Βίντεο" + "message": "\u0392\u03af\u03bd\u03c4\u03b5\u03bf" }, "volume": { - "message": "Ένταση" + "message": "\u0388\u03bd\u03c4\u03b1\u03c3\u03b7" }, "watchLater": { - "message": "Δες αργότερα" + "message": "\u0394\u03b5\u03c2 \u03b1\u03c1\u03b3\u03cc\u03c4\u03b5\u03c1\u03b1" }, "watchTime": { - "message": "Χρόνος προβολής" + "message": "\u03a7\u03c1\u03cc\u03bd\u03bf\u03c2 \u03c0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae\u03c2" }, "whenTabIsChanged": { - "message": "Όταν αλλάζεις καρτέλα" + "message": "\u038c\u03c4\u03b1\u03bd \u03b1\u03bb\u03bb\u03ac\u03b6\u03b5\u03b9\u03c2 \u03ba\u03b1\u03c1\u03c4\u03ad\u03bb\u03b1" }, "white": { - "message": "Λευκό" + "message": "\u039b\u03b5\u03c5\u03ba\u03cc" }, "yellow": { - "message": "Κίτρινο" + "message": "\u039a\u03af\u03c4\u03c1\u03b9\u03bd\u03bf" }, "youtubeHeaderLeft": { - "message": "Κεφαλίδα YouTube (αριστερά)" + "message": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 YouTube (\u03b1\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03ac)" }, "youtubeHeaderRight": { - "message": "Κεφαλίδα YouTube (δεξιά)" + "message": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 YouTube (\u03b4\u03b5\u03be\u03b9\u03ac)" }, "youtubeHomePage": { - "message": "Αρχική σελίδα YouTube" + "message": "\u0391\u03c1\u03c7\u03b9\u03ba\u03ae \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 YouTube" }, "youtubeLanguage": { - "message": "Γλώσσα YouTube" + "message": "\u0393\u03bb\u03ce\u03c3\u03c3\u03b1 YouTube" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "Το YouTube περιορίζει την ποιότητα σε 1080p για το h.264 codec" + "message": "\u03a4\u03bf YouTube \u03c0\u03b5\u03c1\u03b9\u03bf\u03c1\u03af\u03b6\u03b5\u03b9 \u03c4\u03b7\u03bd \u03c0\u03bf\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1 \u03c3\u03b5 1080p \u03b3\u03b9\u03b1 \u03c4\u03bf h.264 codec" } -} +} \ No newline at end of file diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 9dca901c9..1edd0f72d 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -1,830 +1,833 @@ -{ - "about": { - "message": "About" - }, - "accept": { - "message": "Accept" - }, - "activate": { - "message": "Activate" - }, - "activateCaptions": { - "message": "Activate captions" - }, - "activated": { - "message": "Activated" - }, - "activatedFeatures": { - "message": "Activated features" - }, - "activateFullscreen": { - "message": "Activate fullscreen" - }, - "activeFeatures": { - "message": "Active features" - }, - "addScrollToTop": { - "message": "Add «Scroll to top»" - }, - "ads": { - "message": "Ads" - }, - "all": { - "message": "All" - }, - "allow": { - "message": "Allow" - }, - "allow60fps": { - "message": "Allow 60fps" - }, - "forceSDR": { - "message": "Force SDR" - }, - "alwaysActive": { - "message": "Always active" - }, - "alwaysShowProgressBar": { - "message": "Always show progress bar" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analyzer" - }, - "appearance": { - "message": "Appearance" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio formats" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-fullscreen" - }, - "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" - }, - "autoplay": { - "message": "Autoplay" - }, - "backupAndReset": { - "message": "Backup & reset" - }, - "baseOnSystemColorScheme": { - "message": "Base on system color scheme" - }, - "belowPlayer": { - "message": "Below player" - }, - "black": { - "message": "Black" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "Block all" - }, - "blue": { - "message": "Blue" - }, - "blueGray": { - "message": "Blue gray" - }, - "bluelight": { - "message": "Bluelight" - }, - "brown": { - "message": "Brown" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser version" - }, - "bubbles": { - "message": "Bubbles" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Buttons" - }, - "cancel": { - "message": "Cancel" - }, - "categories": { - "message": "Categories" - }, - "channel": { - "message": "Channel" - }, - "channels": { - "message": "Channels" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Collapsed" - }, - "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" - }, - "comments": { - "message": "Comments" - }, - "confirmationBeforeClosing": { - "message": "Confirmation before closing" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Custom JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "openPopupPlayer": { - "message": "Open video/playlist in a new window" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Dark" - }, - "darkTheme": { - "message": "Dark theme" - }, - "dateAndTime": { - "message": "Date & time" - }, - "dawn": { - "message": "Dawn" - }, - "decreasePlaybackSpeed": { - "message": "Decrease playback speed" - }, - "decreaseVolume": { - "message": "Decrease volume" - }, - "deepOrange": { - "message": "Deep orange" - }, - "deepPurple": { - "message": "Deep purple" - }, - "defaultChannelTab": { - "message": "Default channel tab" - }, - "deleteYoutubeCookies": { - "message": "Delete YouTube cookies" - }, - "description": { - "message": "Description" - }, - "desert": { - "message": "Desert" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Developer options" - }, - "device": { - "message": "Device" - }, - "dim": { - "message": "Dim" - }, - "disabled": { - "message": "Disabled" - }, - "dislike": { - "message": "Dislike" - }, - "donate": { - "message": "Donate" - }, - "doNotChange": { - "message": "Don't change" - }, - "draggable": { - "message": "Draggable" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Empty" - }, - "enabled": { - "message": "Enabled" - }, - "enabledForced": { - "message": "Enabled (forced)" - }, - "expanded": { - "message": "Expanded" - }, - "exportSettings": { - "message": "Export settings" - }, - "extension": { - "message": "Extension" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filters" - }, - "fitToWindow": { - "message": "Fit to window" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Footer" - }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, - "forcedTheaterMode": { - "message": "Forced theater mode" - }, - "forcedVolume": { - "message": "Forced volume" - }, - "foundABug": { - "message": "Found a bug?" - }, - "fullWindow": { - "message": "Full window" - }, - "general": { - "message": "General" - }, - "geoPreference": { - "message": "Geo Preference" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Go to search box" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Green" - }, - "hdThumbnail": { - "message": "HD thumbnail" - }, - "hdThumbnails": { - "message": "HD thumbnails" - }, - "header": { - "message": "Header" - }, - "hidden": { - "message": "Hidden" - }, - "hiddenOnVideoPage": { - "message": "Hidden on video page" - }, - "hideAnimatedThumbnails": { - "message": "Hide animated thumbnails" - }, - "hideAnnotations": { - "message": "Hide annotations" - }, - "hideCards": { - "message": "Hide cards" - }, - "hideControls": { - "message": "Hide player controls" - }, - "hideDetails": { - "message": "Hide details" - }, - "hideEndscreen": { - "message": "Hide endscreen" - }, - "hideFeaturedContent": { - "message": "Hide featured content" - }, - "hideFooter": { - "message": "Hide footer" - }, - "hideGradientBottom": { - "message": "Hide shadow around player-bar" - }, - "hidePlaylist": { - "message": "Hide playlist" - }, - "hideRightButtons": { - "message": "Hide right buttons" - }, - "hideScrollForDetails": { - "message": "Hide «Scroll for details»" - }, - "hideThumbnailOverlay": { - "message": "Hide buttons on thumbnails" - }, - "hideViewsCount": { - "message": "Hide views count" - }, - "history": { - "message": "History" - }, - "home": { - "message": "Home" - }, - "hover": { - "message": "Hover" - }, - "hoverOnVideoPage": { - "message": "Hover on video page" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" - }, - "icons": { - "message": "Icons" - }, - "iconsOnly": { - "message": "Icons only" - }, - "importSettings": { - "message": "Import settings" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube icon in Browser" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icon on YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube language" - }, - "improvedtubeVersion": { - "message": "ImprovedTube version" - }, - "improveLogo": { - "message": "Improve logo" - }, - "increasePlaybackSpeed": { - "message": "Increase playback speed" - }, - "increaseVolume": { - "message": "Increase volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Languages" - }, - "legacyYoutube": { - "message": "Legacy YouTube" - }, - "light": { - "message": "Light" - }, - "lightBlue": { - "message": "Light blue" - }, - "lightGreen": { - "message": "Light green" - }, - "like": { - "message": "Like" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Lime" - }, - "list": { - "message": "List" - }, - "liveChat": { - "message": "Live chat" - }, - "liveChatType": { - "message": "Live chat type" - }, - "loudnessNormalization": { - "message": "Loudness normalization" - }, - "markWatchedVideos": { - "message": "Mark watched videos" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "My colors" - }, - "name": { - "message": "Name" - }, - "nativeMiniPlayer": { - "message": "Native mini player" - }, - "new": { - "message": "New" - }, - "nextVideo": { - "message": "Next video" - }, - "night": { - "message": "Night" - }, - "noActiveFeatures": { - "message": "No active features" - }, - "none": { - "message": "None" - }, - "noOpenVideoTabs": { - "message": "No open video tabs" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Old" - }, - "onAllVideos": { - "message": "On all videos" - }, - "onlyActiveOnYoutube": { - "message": "Only active on YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "onSubscribedChannels": { - "message": "On subscribed channels" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Other" - }, - "permissions": { - "message": "Permissions" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Pink" - }, - "plain": { - "message": "Plain" - }, - "platform": { - "message": "Platform" - }, - "playbackSpeed": { - "message": "Playback speed" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Player color" - }, - "playerSize": { - "message": "Player size" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "playPause": { - "message": "Play / Pause" - }, - "popupPlayer": { - "message": "Popup player" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Press any key or use mouse wheel." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Press any key or use mouse wheel" - }, - "previousVideo": { - "message": "Previous video" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "Purple" - }, - "quality": { - "message": "Quality" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Rate us" - }, - "red": { - "message": "Red" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Related videos" - }, - "removeRelatedSearchResults": { - "message": "Remove related search results" - }, - "repeat": { - "message": "Repeat" - }, - "reset": { - "message": "Reset" - }, - "resetAllSettings": { - "message": "Reset all settings" - }, - "resetAllShortcuts": { - "message": "Reset all shortcuts" - }, - "reverse": { - "message": "Reverse" - }, - "rotate": { - "message": "Rotate" - }, - "save": { - "message": "Save" - }, - "saveAs": { - "message": "Save as" - }, - "schedule": { - "message": "Schedule" - }, - "screen": { - "message": "Screen" - }, - "screenshot": { - "message": "Screenshot" - }, - "search": { - "message": "Search" - }, - "searchBarOnly": { - "message": "Search bar only" - }, - "seekBackward10Seconds": { - "message": "Seek backward 10 seconds" - }, - "seekForward10Seconds": { - "message": "Seek forward 10 seconds" - }, - "settings": { - "message": "Settings" - }, - "settingsSuccessfullyImported": { - "message": "Settings successfully imported" - }, - "shortcuts": { - "message": "Shortcuts" - }, - "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" - }, - "showChannelVideosCount": { - "message": "Show channel videos count" - }, - "shuffle": { - "message": "Shuffle" - }, - "sidebar": { - "message": "Sidebar" - }, - "spacebar": { - "message": "Spacebar" - }, - "squaredUserImages": { - "message": "Squared user images" - }, - "static": { - "message": "Static" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscriptions": { - "message": "Subscriptions" - }, - "subtitles": { - "message": "Subtitles" - }, - "sunset": { - "message": "Sunset" - }, - "sunsetToSunrise": { - "message": "Sunset to sunrise" - }, - "systemPeferenceDark": { - "message": "System peference: dark" - }, - "systemPeferenceLight": { - "message": "System peference: light" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Text color" - }, - "themes": { - "message": "Themes" - }, - "thisWillRemoveAllCookies": { - "message": "This will remove all cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "This will remove all YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "This will reset all settings." - }, - "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" - }, - "thumbnails": { - "message": "Thumbnails" - }, - "timeFrom": { - "message": "Time from" - }, - "timeTo": { - "message": "Time to" - }, - "todayAt": { - "message": "Today at" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle player controls" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Trailer autoplay" - }, - "translations": { - "message": "Translations" - }, - "transparentBackground": { - "message": "Transparent background" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Try to reload the page" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "Up next autoplay" - }, - "use24HourFormat": { - "message": "Use 24-hour format" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" - }, - "videoFormats": { - "message": "Video formats" - }, - "videos": { - "message": "Videos" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Watch later" - }, - "watchTime": { - "message": "Watch time" - }, - "whenTabIsChanged": { - "message": "When tab is changed" - }, - "white": { - "message": "White" - }, - "yellow": { - "message": "Yellow" - }, - "youtubeHeaderLeft": { - "message": "YouTube Header (left)" - }, - "youtubeHeaderRight": { - "message": "YouTube Header (right)" - }, - "youtubeHomePage": { - "message": "YouTube home page" - }, - "youtubeLanguage": { - "message": "YouTube language" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limits video quality to 1080p for h.264 codec" - } -} +{ + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "about": { + "message": "About" + }, + "accept": { + "message": "Accept" + }, + "activate": { + "message": "Activate" + }, + "activateCaptions": { + "message": "Activate captions" + }, + "activateFullscreen": { + "message": "Activate fullscreen" + }, + "activated": { + "message": "Activated" + }, + "activatedFeatures": { + "message": "Activated features" + }, + "activeFeatures": { + "message": "Active features" + }, + "addScrollToTop": { + "message": "Add \u00abScroll to top\u00bb" + }, + "ads": { + "message": "Ads" + }, + "all": { + "message": "All" + }, + "allow": { + "message": "Allow" + }, + "allow60fps": { + "message": "Allow 60fps" + }, + "alwaysActive": { + "message": "Always active" + }, + "alwaysShowProgressBar": { + "message": "Always show progress bar" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analyzer" + }, + "appearance": { + "message": "Appearance" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formats" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullscreen" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause when switching tabs" + }, + "autoplay": { + "message": "Autoplay" + }, + "backupAndReset": { + "message": "Backup & reset" + }, + "baseOnSystemColorScheme": { + "message": "Base on system color scheme" + }, + "belowPlayer": { + "message": "Below player" + }, + "black": { + "message": "Black" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "Block all" + }, + "blue": { + "message": "Blue" + }, + "blueGray": { + "message": "Blue gray" + }, + "bluelight": { + "message": "Bluelight" + }, + "brown": { + "message": "Brown" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser version" + }, + "bubbles": { + "message": "Bubbles" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Buttons" + }, + "cancel": { + "message": "Cancel" + }, + "categories": { + "message": "Categories" + }, + "channel": { + "message": "Channel" + }, + "channels": { + "message": "Channels" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Collapse of subscription sections" + }, + "collapsed": { + "message": "Collapsed" + }, + "comments": { + "message": "Comments" + }, + "confirmationBeforeClosing": { + "message": "Confirmation before closing" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Custom JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Dark" + }, + "darkTheme": { + "message": "Dark theme" + }, + "dateAndTime": { + "message": "Date & time" + }, + "dawn": { + "message": "Dawn" + }, + "decreasePlaybackSpeed": { + "message": "Decrease playback speed" + }, + "decreaseVolume": { + "message": "Decrease volume" + }, + "deepOrange": { + "message": "Deep orange" + }, + "deepPurple": { + "message": "Deep purple" + }, + "defaultChannelTab": { + "message": "Default channel tab" + }, + "deleteYoutubeCookies": { + "message": "Delete YouTube cookies" + }, + "description": { + "message": "Description" + }, + "desert": { + "message": "Desert" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Developer options" + }, + "device": { + "message": "Device" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Disabled" + }, + "dislike": { + "message": "Dislike" + }, + "doNotChange": { + "message": "Don't change" + }, + "donate": { + "message": "Donate" + }, + "draggable": { + "message": "Draggable" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Empty" + }, + "enabled": { + "message": "Enabled" + }, + "enabledForced": { + "message": "Enabled (forced)" + }, + "expanded": { + "message": "Expanded" + }, + "exportSettings": { + "message": "Export settings" + }, + "extension": { + "message": "Extension" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filters" + }, + "fitToWindow": { + "message": "Fit to window" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "footer": { + "message": "Footer" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, + "forcedTheaterMode": { + "message": "Forced theater mode" + }, + "forcedVolume": { + "message": "Forced volume" + }, + "foundABug": { + "message": "Found a bug?" + }, + "fullWindow": { + "message": "Full window" + }, + "general": { + "message": "General" + }, + "geoPreference": { + "message": "Geo Preference" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Go to search box" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Green" + }, + "hdThumbnail": { + "message": "HD thumbnail" + }, + "hdThumbnails": { + "message": "HD thumbnails" + }, + "header": { + "message": "Header" + }, + "hidden": { + "message": "Hidden" + }, + "hiddenOnVideoPage": { + "message": "Hidden on video page" + }, + "hideAnimatedThumbnails": { + "message": "Hide animated thumbnails" + }, + "hideAnnotations": { + "message": "Hide annotations" + }, + "hideCards": { + "message": "Hide cards" + }, + "hideControls": { + "message": "Hide player controls" + }, + "hideDetails": { + "message": "Hide details" + }, + "hideEndscreen": { + "message": "Hide endscreen" + }, + "hideFeaturedContent": { + "message": "Hide featured content" + }, + "hideFooter": { + "message": "Hide footer" + }, + "hideGradientBottom": { + "message": "Hide shadow around player-bar" + }, + "hidePlaylist": { + "message": "Hide playlist" + }, + "hideRightButtons": { + "message": "Hide right buttons" + }, + "hideScrollForDetails": { + "message": "Hide \u00abScroll for details\u00bb" + }, + "hideThumbnailOverlay": { + "message": "Hide buttons on thumbnails" + }, + "hideViewsCount": { + "message": "Hide views count" + }, + "history": { + "message": "History" + }, + "home": { + "message": "Home" + }, + "hover": { + "message": "Hover" + }, + "hoverOnVideoPage": { + "message": "Hover on video page" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "How long ago the video was uploaded" + }, + "icons": { + "message": "Icons" + }, + "iconsOnly": { + "message": "Icons only" + }, + "importSettings": { + "message": "Import settings" + }, + "improveLogo": { + "message": "Improve logo" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube icon in Browser" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube icon on YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube language" + }, + "improvedtubeVersion": { + "message": "ImprovedTube version" + }, + "increasePlaybackSpeed": { + "message": "Increase playback speed" + }, + "increaseVolume": { + "message": "Increase volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "Languages" + }, + "legacyYoutube": { + "message": "Legacy YouTube" + }, + "light": { + "message": "Light" + }, + "lightBlue": { + "message": "Light blue" + }, + "lightGreen": { + "message": "Light green" + }, + "like": { + "message": "Like" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Lime" + }, + "list": { + "message": "List" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Live chat type" + }, + "loudnessNormalization": { + "message": "Loudness normalization" + }, + "markWatchedVideos": { + "message": "Mark watched videos" + }, + "mixer": { + "message": "Mixer" + }, + "myColors": { + "message": "My colors" + }, + "name": { + "message": "Name" + }, + "nativeMiniPlayer": { + "message": "Native mini player" + }, + "new": { + "message": "New" + }, + "nextVideo": { + "message": "Next video" + }, + "night": { + "message": "Night" + }, + "noActiveFeatures": { + "message": "No active features" + }, + "noOpenVideoTabs": { + "message": "No open video tabs" + }, + "none": { + "message": "None" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Old" + }, + "onAllVideos": { + "message": "On all videos" + }, + "onSubscribedChannels": { + "message": "On subscribed channels" + }, + "onlyActiveOnYoutube": { + "message": "Only active on YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "openPopupPlayer": { + "message": "Open video/playlist in a new window" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Other" + }, + "permissions": { + "message": "Permissions" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Pink" + }, + "plain": { + "message": "Plain" + }, + "platform": { + "message": "Platform" + }, + "playPause": { + "message": "Play / Pause" + }, + "playbackSpeed": { + "message": "Playback speed" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Player color" + }, + "playerSize": { + "message": "Player size" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "popupPlayer": { + "message": "Popup player" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Press any key or use mouse wheel." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Press any key or use mouse wheel" + }, + "previousVideo": { + "message": "Previous video" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "Purple" + }, + "quality": { + "message": "Quality" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Rate us" + }, + "red": { + "message": "Red" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Related videos" + }, + "removeRelatedSearchResults": { + "message": "Remove related search results" + }, + "repeat": { + "message": "Repeat" + }, + "reset": { + "message": "Reset" + }, + "resetAllSettings": { + "message": "Reset all settings" + }, + "resetAllShortcuts": { + "message": "Reset all shortcuts" + }, + "reverse": { + "message": "Reverse" + }, + "rotate": { + "message": "Rotate" + }, + "save": { + "message": "Save" + }, + "saveAs": { + "message": "Save as" + }, + "schedule": { + "message": "Schedule" + }, + "screen": { + "message": "Screen" + }, + "screenshot": { + "message": "Screenshot" + }, + "search": { + "message": "Search" + }, + "searchBarOnly": { + "message": "Search bar only" + }, + "seekBackward10Seconds": { + "message": "Seek backward 10 seconds" + }, + "seekForward10Seconds": { + "message": "Seek forward 10 seconds" + }, + "settings": { + "message": "Settings" + }, + "settingsSuccessfullyImported": { + "message": "Settings successfully imported" + }, + "shortcuts": { + "message": "Shortcuts" + }, + "showCardsOnMouseHover": { + "message": "Show cards on mouse hover" + }, + "showChannelVideosCount": { + "message": "Show channel videos count" + }, + "shuffle": { + "message": "Shuffle" + }, + "sidebar": { + "message": "Sidebar" + }, + "spacebar": { + "message": "Spacebar" + }, + "squaredUserImages": { + "message": "Squared user images" + }, + "static": { + "message": "Static" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscriptions": { + "message": "Subscriptions" + }, + "subtitles": { + "message": "Subtitles" + }, + "sunset": { + "message": "Sunset" + }, + "sunsetToSunrise": { + "message": "Sunset to sunrise" + }, + "systemPeferenceDark": { + "message": "System peference: dark" + }, + "systemPeferenceLight": { + "message": "System peference: light" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Text color" + }, + "themes": { + "message": "Themes" + }, + "thisWillRemoveAllCookies": { + "message": "This will remove all cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "This will remove all YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "This will reset all settings." + }, + "thisWillResetAllShortcuts": { + "message": "This will reset all shortcuts" + }, + "thumbnails": { + "message": "Thumbnails" + }, + "timeFrom": { + "message": "Time from" + }, + "timeTo": { + "message": "Time to" + }, + "todayAt": { + "message": "Today at" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle player controls" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Trailer autoplay" + }, + "translations": { + "message": "Translations" + }, + "transparentBackground": { + "message": "Transparent background" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Try to reload the page" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Up next autoplay" + }, + "use24HourFormat": { + "message": "Use 24-hour format" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video description will be expanded to get the name of the category" + }, + "videoFormats": { + "message": "Video formats" + }, + "videos": { + "message": "Videos" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Watch later" + }, + "watchTime": { + "message": "Watch time" + }, + "whenTabIsChanged": { + "message": "When tab is changed" + }, + "white": { + "message": "White" + }, + "yellow": { + "message": "Yellow" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (left)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (right)" + }, + "youtubeHomePage": { + "message": "YouTube home page" + }, + "youtubeLanguage": { + "message": "YouTube language" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limits video quality to 1080p for h.264 codec" + } +} \ No newline at end of file diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 8962590c1..f6eb8c491 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -1,812 +1,815 @@ -{ - "about": { - "message": "Acerca de" - }, - "accept": { - "message": "Aceptar" - }, - "activate": { - "message": "Activar" - }, - "activateCaptions": { - "message": "Activar subtítulos" - }, - "activated": { - "message": "Activado" - }, - "activatedFeatures": { - "message": "Características activadas" - }, - "activateFullscreen": { - "message": "Activar pantalla completa" - }, - "activeFeatures": { - "message": "Activar características" - }, - "addScrollToTop": { - "message": "Añadir «Volver arriba»" - }, - "ads": { - "message": "Ads" - }, - "all": { - "message": "Todo" - }, - "allow": { - "message": "Permitir" - }, - "allow60fps": { - "message": "Permitir 60fps" - }, - "forceSDR": { - "message": "Force SDR" - }, - "alwaysActive": { - "message": "Siempre activo" - }, - "alwaysShowProgressBar": { - "message": "Siempre mostrar barra de progreso" - }, - "amber": { - "message": "Ámbar" - }, - "analyzer": { - "message": "Analizador" - }, - "appearance": { - "message": "Apariencia" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formatos de audio" - }, - "auto": { - "message": "Automático" - }, - "autoFullscreen": { - "message": "Pantalla completa automática" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausar al cambiar de pestaña" - }, - "autoplay": { - "message": "Reproducción automática" - }, - "backupAndReset": { - "message": "Backup & reset" - }, - "baseOnSystemColorScheme": { - "message": "Según tema del sistema" - }, - "belowPlayer": { - "message": "Debajo del reproductor" - }, - "black": { - "message": "Negro" - }, - "blacklist": { - "message": "Lista negra" - }, - "blockAll": { - "message": "Bloquear todo" - }, - "blue": { - "message": "Azul" - }, - "blueGray": { - "message": "Gris azulado" - }, - "bluelight": { - "message": "Luz azul" - }, - "brown": { - "message": "Marrón" - }, - "browser": { - "message": "Navegador" - }, - "browserVersion": { - "message": "Version del navegador" - }, - "bubbles": { - "message": "Burbujas" - }, - "bug": { - "message": "Error (Bug)" - }, - "buttons": { - "message": "Botones" - }, - "cancel": { - "message": "Cancelar" - }, - "categories": { - "message": "Categorías" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canales" - }, - "clipboard": { - "message": "Portapapeles" - }, - "codecH264": { - "message": "Códec h.264" - }, - "collapsed": { - "message": "Compacto" - }, - "collapseOfSubscriptionSections": { - "message": "Compactar sección de suscripciones" - }, - "comments": { - "message": "Comentarios" - }, - "confirmationBeforeClosing": { - "message": "Confirmar antes de cerrar" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Núcleos" - }, - "cropChapterTitles": { - "message": "Recortar título de capítulos" - }, - "customCss": { - "message": "CSS personalizado" - }, - "customJs": { - "message": "JS personalizado" - }, - "customMiniPlayer": { - "message": "Mini-Reproductor personalizado" - }, - "cyan": { - "message": "Cian" - }, - "dark": { - "message": "Oscuro" - }, - "darkTheme": { - "message": "Tema oscuro" - }, - "dateAndTime": { - "message": "Fecha y hora" - }, - "dawn": { - "message": "Amanecer" - }, - "decreasePlaybackSpeed": { - "message": "Disminuir velocidad de reproducción" - }, - "decreaseVolume": { - "message": "Bajar volumen" - }, - "deepOrange": { - "message": "Naranja profundo" - }, - "deepPurple": { - "message": "Violeta profundo" - }, - "defaultChannelTab": { - "message": "Pestaña del canal por defecto" - }, - "deleteYoutubeCookies": { - "message": "Borrar cookies de YouTube" - }, - "description": { - "message": "Descripción" - }, - "desert": { - "message": "Desierto" - }, - "details": { - "message": "Detalles" - }, - "developerOptions": { - "message": "Opciones de desarrollador" - }, - "device": { - "message": "Dispositivo" - }, - "dim": { - "message": "Oscuro" - }, - "disabled": { - "message": "Desactivado" - }, - "dislike": { - "message": "Dislike" - }, - "donate": { - "message": "Donar" - }, - "doNotChange": { - "message": "No cambiar" - }, - "draggable": { - "message": "Arrastrable" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Vacío" - }, - "enabled": { - "message": "Activado" - }, - "enabledForced": { - "message": "Activado (forzado)" - }, - "expanded": { - "message": "Expandido" - }, - "exportSettings": { - "message": "Exportar configuración" - }, - "extension": { - "message": "Extensión" - }, - "file": { - "message": "Archivo" - }, - "filters": { - "message": "Filtros" - }, - "fitToWindow": { - "message": "Ajustar a la ventana" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Fuente" - }, - "footer": { - "message": "Pie" - }, - "forcedPlaybackSpeed": { - "message": "Forzar velocidad de reproducción" - }, - "forcedTheaterMode": { - "message": "Forzar modo teatro" - }, - "forcedVolume": { - "message": "Forzar volumen" - }, - "foundABug": { - "message": "¿Encontraste un error (bug)?" - }, - "fullWindow": { - "message": "Pantalla completa" - }, - "general": { - "message": "General" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Ir a barra de búsqueda" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura HD" - }, - "hdThumbnails": { - "message": "Miniaturas HD" - }, - "header": { - "message": "Encabezado" - }, - "hidden": { - "message": "Oculto" - }, - "hiddenOnVideoPage": { - "message": "Oculto en la página de video" - }, - "hideAnimatedThumbnails": { - "message": "Ocultar miniaturas animadas" - }, - "hideAnnotations": { - "message": "Ocultar anotaciones" - }, - "hideCards": { - "message": "Ocultar tarjetas" - }, - "hideDetails": { - "message": "Ocultar detalles" - }, - "hideEndscreen": { - "message": "Ocultar pantalla final" - }, - "hideFeaturedContent": { - "message": "Ocultar contenido destacado" - }, - "hideFooter": { - "message": "Ocultar pie de página" - }, - "hideGradientBottom": { - "message": "Ocultar parte inferior degradada" - }, - "hidePlaylist": { - "message": "Ocultar playlist" - }, - "hideRightButtons": { - "message": "Ocultar botones de la derecha" - }, - "hideScrollForDetails": { - "message": "Ocultar «Desliza hacia abajo para ver más detalles»" - }, - "hideViewsCount": { - "message": "Ocultar contador de visitas" - }, - "history": { - "message": "Historial" - }, - "home": { - "message": "Inicio" - }, - "hover": { - "message": "Cursor sobre (hover)" - }, - "hoverOnVideoPage": { - "message": "Cursor sobre (hover) en página de video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Hace cuánto tiempo se subió el video" - }, - "icons": { - "message": "Iconos" - }, - "iconsOnly": { - "message": "Solo iconos" - }, - "importSettings": { - "message": "Importar configuración" - }, - "improvedtubeIconInBrowser": { - "message": "Icono ImprovedTube en el navegador" - }, - "improvedtubeIconOnYoutube": { - "message": "Icono ImprovedTube en YouTube" - }, - "improvedtubeLanguage": { - "message": "Idioma de ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Version de ImprovedTube" - }, - "improveLogo": { - "message": "Mejorar logo" - }, - "increasePlaybackSpeed": { - "message": "Aumentar velocidad de reproducción" - }, - "increaseVolume": { - "message": "Subir volumen" - }, - "indigo": { - "message": "Índigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Idiomas" - }, - "legacyYoutube": { - "message": " YouTube antiguo" - }, - "light": { - "message": "Claro" - }, - "lightBlue": { - "message": "Azul claro" - }, - "lightGreen": { - "message": "Verde claro" - }, - "like": { - "message": "Like" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Lima" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Chat en directo" - }, - "liveChatType": { - "message": "Tipo de chat en directo" - }, - "loudnessNormalization": { - "message": "Normalización de volumen" - }, - "markWatchedVideos": { - "message": "Marcar videos vistos" - }, - "mixer": { - "message": "Mezclador" - }, - "myColors": { - "message": "Mis colores" - }, - "name": { - "message": "Nombre" - }, - "nativeMiniPlayer": { - "message": "Mini-Reproductor nativo" - }, - "new": { - "message": "Nuevo" - }, - "nextVideo": { - "message": "Siguiente video" - }, - "night": { - "message": "Noche" - }, - "noActiveFeatures": { - "message": "Sin características activas" - }, - "none": { - "message": "Ninguno" - }, - "noOpenVideoTabs": { - "message": "Sin pestañas de video abiertas" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Viejo" - }, - "onAllVideos": { - "message": "En todos los videos" - }, - "onlyActiveOnYoutube": { - "message": "Solo activo en YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Solo una pestaña reproduciendo" - }, - "onSubscribedChannels": { - "message": "En canales suscritos" - }, - "orange": { - "message": "Naranja" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Otro" - }, - "permissions": { - "message": "Permisos" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Plano" - }, - "platform": { - "message": "Plataforma" - }, - "playbackSpeed": { - "message": "Velocidad de reproducción" - }, - "player": { - "message": "Reproductor" - }, - "playerColor": { - "message": "Color del reproductor" - }, - "playerSize": { - "message": "Tamaño del reproductor" - }, - "playlist": { - "message": "Lista de reproducción" - }, - "playlists": { - "message": "Listas de reproducción" - }, - "playPause": { - "message": "Reproducir / pausar" - }, - "popupPlayer": { - "message": "Reproductor emergente" - }, - "position": { - "message": "Posición" - }, - "pressAnyKeyOrScroll": { - "message": "Aprieta una tecla o haz scroll" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Aprieta una tecla o usa la rueda del ratón" - }, - "previousVideo": { - "message": "Reproducir video anterior" - }, - "primaryColor": { - "message": "Color Primario" - }, - "purple": { - "message": "Morado" - }, - "quality": { - "message": "Calidad" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Califíquenos" - }, - "red": { - "message": "Rojo" - }, - "redDislikeButton": { - "message": "Mostrar el botón de dislike de color rojo" - }, - "relatedVideos": { - "message": "Vídeos relacionados" - }, - "removeRelatedSearchResults": { - "message": "Quitar resultados relacionados" - }, - "repeat": { - "message": "Repetir" - }, - "reset": { - "message": "Reiniciar" - }, - "resetAllSettings": { - "message": "Restablecer todos los ajustes" - }, - "resetAllShortcuts": { - "message": "Restablecer todos los atajos" - }, - "reverse": { - "message": "Revertir" - }, - "rotate": { - "message": "Rotar" - }, - "save": { - "message": "Guardar" - }, - "saveAs": { - "message": "Guardar como" - }, - "schedule": { - "message": "Programar" - }, - "screen": { - "message": "Pantalla" - }, - "screenshot": { - "message": "Captura de pantalla" - }, - "search": { - "message": "Búsqueda" - }, - "searchBarOnly": { - "message": "Solo barra de búsqueda" - }, - "seekBackward10Seconds": { - "message": "Retroceder 10 segundos" - }, - "seekForward10Seconds": { - "message": "Adelantar 10 segundos" - }, - "settings": { - "message": "Ajustes" - }, - "settingsSuccessfullyImported": { - "message": "Ajustes importados correctamente" - }, - "shortcuts": { - "message": "Atajos" - }, - "showCardsOnMouseHover": { - "message": "Mostrar tarjetas al pasar el ratón" - }, - "showChannelVideosCount": { - "message": "Mostrar recuento de videos del canal" - }, - "shuffle": { - "message": "Aleatorio" - }, - "sidebar": { - "message": "Barra lateral" - }, - "spacebar": { - "message": "Espacio" - }, - "squaredUserImages": { - "message": "Fotos de perfil cuadradas" - }, - "static": { - "message": "Estático" - }, - "statsForNerds": { - "message": "Mostrar estadísticas para Nerds" - }, - "step": { - "message": "Paso" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Estilo" - }, - "styles": { - "message": "Estilos" - }, - "subscriptions": { - "message": "Suscripciones" - }, - "subtitles": { - "message": "Subtítulos" - }, - "sunset": { - "message": "Atardecer" - }, - "sunsetToSunrise": { - "message": "De atardecer a amanecer" - }, - "systemPeferenceDark": { - "message": "Preferencia del sistema: Oscuro" - }, - "systemPeferenceLight": { - "message": "Preferencia del sistema: Claro" - }, - "teal": { - "message": "Verde azulado" - }, - "textColor": { - "message": "Color del texto" - }, - "themes": { - "message": "Temas" - }, - "thisWillRemoveAllCookies": { - "message": "Esto borrará todas las cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Esto borrará todas las cookies de YouTube" - }, - "thisWillResetAllSettings": { - "message": "Esto restablecerá todos los ajustes" - }, - "thisWillResetAllShortcuts": { - "message": "Esto restablecerá todos los atajos" - }, - "thumbnails": { - "message": "Miniaturas" - }, - "timeFrom": { - "message": "Desde" - }, - "timeTo": { - "message": "Hasta" - }, - "todayAt": { - "message": "Hoy a las" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Reproducción automática de trailer" - }, - "translations": { - "message": "Traducciones" - }, - "transparentBackground": { - "message": "Fondo transparente" - }, - "trending": { - "message": "Tendencias" - }, - "tryToReloadThePage": { - "message": "Trata de recargar la página" - }, - "type": { - "message": "Tipo" - }, - "upNextAutoplay": { - "message": "Siguiente reproducción automática" - }, - "use24HourFormat": { - "message": "Usar formato 24 horas" - }, - "version": { - "message": "Versión" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La descripción del video se expandirá para obtener el nombre de la categoría." - }, - "videoFormats": { - "message": "Formatos de video" - }, - "videos": { - "message": "Videos" - }, - "volume": { - "message": "Volumen" - }, - "watchLater": { - "message": "Ver más tarde" - }, - "watchTime": { - "message": "Visualizaciones" - }, - "whenTabIsChanged": { - "message": "Al cambiar de pestaña" - }, - "white": { - "message": "Blanco" - }, - "yellow": { - "message": "Amarillo" - }, - "youtubeHeaderLeft": { - "message": "Encabezado YouTube (izq)" - }, - "youtubeHeaderRight": { - "message": "Encabezado YouTube (der)" - }, - "youtubeHomePage": { - "message": "Página de inicio de YouTube" - }, - "youtubeLanguage": { - "message": "Idioma de YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limita calidad de video a 1080p para el codec h.264" - } -} +{ + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "about": { + "message": "Acerca de" + }, + "accept": { + "message": "Aceptar" + }, + "activate": { + "message": "Activar" + }, + "activateCaptions": { + "message": "Activar subt\u00edtulos" + }, + "activateFullscreen": { + "message": "Activar pantalla completa" + }, + "activated": { + "message": "Activado" + }, + "activatedFeatures": { + "message": "Caracter\u00edsticas activadas" + }, + "activeFeatures": { + "message": "Activar caracter\u00edsticas" + }, + "addScrollToTop": { + "message": "A\u00f1adir \u00abVolver arriba\u00bb" + }, + "ads": { + "message": "Ads" + }, + "all": { + "message": "Todo" + }, + "allow": { + "message": "Permitir" + }, + "allow60fps": { + "message": "Permitir 60fps" + }, + "alwaysActive": { + "message": "Siempre activo" + }, + "alwaysShowProgressBar": { + "message": "Siempre mostrar barra de progreso" + }, + "amber": { + "message": "\u00c1mbar" + }, + "analyzer": { + "message": "Analizador" + }, + "appearance": { + "message": "Apariencia" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formatos de audio" + }, + "auto": { + "message": "Autom\u00e1tico" + }, + "autoFullscreen": { + "message": "Pantalla completa autom\u00e1tica" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausar al cambiar de pesta\u00f1a" + }, + "autoplay": { + "message": "Reproducci\u00f3n autom\u00e1tica" + }, + "backupAndReset": { + "message": "Backup & reset" + }, + "baseOnSystemColorScheme": { + "message": "Seg\u00fan tema del sistema" + }, + "belowPlayer": { + "message": "Debajo del reproductor" + }, + "black": { + "message": "Negro" + }, + "blacklist": { + "message": "Lista negra" + }, + "blockAll": { + "message": "Bloquear todo" + }, + "blue": { + "message": "Azul" + }, + "blueGray": { + "message": "Gris azulado" + }, + "bluelight": { + "message": "Luz azul" + }, + "brown": { + "message": "Marr\u00f3n" + }, + "browser": { + "message": "Navegador" + }, + "browserVersion": { + "message": "Version del navegador" + }, + "bubbles": { + "message": "Burbujas" + }, + "bug": { + "message": "Error (Bug)" + }, + "buttons": { + "message": "Botones" + }, + "cancel": { + "message": "Cancelar" + }, + "categories": { + "message": "Categor\u00edas" + }, + "channel": { + "message": "Canal" + }, + "channels": { + "message": "Canales" + }, + "clipboard": { + "message": "Portapapeles" + }, + "codecH264": { + "message": "C\u00f3dec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Compactar secci\u00f3n de suscripciones" + }, + "collapsed": { + "message": "Compacto" + }, + "comments": { + "message": "Comentarios" + }, + "confirmationBeforeClosing": { + "message": "Confirmar antes de cerrar" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "N\u00facleos" + }, + "cropChapterTitles": { + "message": "Recortar t\u00edtulo de cap\u00edtulos" + }, + "customCss": { + "message": "CSS personalizado" + }, + "customJs": { + "message": "JS personalizado" + }, + "customMiniPlayer": { + "message": "Mini-Reproductor personalizado" + }, + "cyan": { + "message": "Cian" + }, + "dark": { + "message": "Oscuro" + }, + "darkTheme": { + "message": "Tema oscuro" + }, + "dateAndTime": { + "message": "Fecha y hora" + }, + "dawn": { + "message": "Amanecer" + }, + "decreasePlaybackSpeed": { + "message": "Disminuir velocidad de reproducci\u00f3n" + }, + "decreaseVolume": { + "message": "Bajar volumen" + }, + "deepOrange": { + "message": "Naranja profundo" + }, + "deepPurple": { + "message": "Violeta profundo" + }, + "defaultChannelTab": { + "message": "Pesta\u00f1a del canal por defecto" + }, + "deleteYoutubeCookies": { + "message": "Borrar cookies de YouTube" + }, + "description": { + "message": "Descripci\u00f3n" + }, + "desert": { + "message": "Desierto" + }, + "details": { + "message": "Detalles" + }, + "developerOptions": { + "message": "Opciones de desarrollador" + }, + "device": { + "message": "Dispositivo" + }, + "dim": { + "message": "Oscuro" + }, + "disabled": { + "message": "Desactivado" + }, + "dislike": { + "message": "Dislike" + }, + "doNotChange": { + "message": "No cambiar" + }, + "donate": { + "message": "Donar" + }, + "draggable": { + "message": "Arrastrable" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Vac\u00edo" + }, + "enabled": { + "message": "Activado" + }, + "enabledForced": { + "message": "Activado (forzado)" + }, + "expanded": { + "message": "Expandido" + }, + "exportSettings": { + "message": "Exportar configuraci\u00f3n" + }, + "extension": { + "message": "Extensi\u00f3n" + }, + "file": { + "message": "Archivo" + }, + "filters": { + "message": "Filtros" + }, + "fitToWindow": { + "message": "Ajustar a la ventana" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Fuente" + }, + "footer": { + "message": "Pie" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlaybackSpeed": { + "message": "Forzar velocidad de reproducci\u00f3n" + }, + "forcedTheaterMode": { + "message": "Forzar modo teatro" + }, + "forcedVolume": { + "message": "Forzar volumen" + }, + "foundABug": { + "message": "\u00bfEncontraste un error (bug)?" + }, + "fullWindow": { + "message": "Pantalla completa" + }, + "general": { + "message": "General" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Ir a barra de b\u00fasqueda" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hdThumbnail": { + "message": "Miniatura HD" + }, + "hdThumbnails": { + "message": "Miniaturas HD" + }, + "header": { + "message": "Encabezado" + }, + "hidden": { + "message": "Oculto" + }, + "hiddenOnVideoPage": { + "message": "Oculto en la p\u00e1gina de video" + }, + "hideAnimatedThumbnails": { + "message": "Ocultar miniaturas animadas" + }, + "hideAnnotations": { + "message": "Ocultar anotaciones" + }, + "hideCards": { + "message": "Ocultar tarjetas" + }, + "hideDetails": { + "message": "Ocultar detalles" + }, + "hideEndscreen": { + "message": "Ocultar pantalla final" + }, + "hideFeaturedContent": { + "message": "Ocultar contenido destacado" + }, + "hideFooter": { + "message": "Ocultar pie de p\u00e1gina" + }, + "hideGradientBottom": { + "message": "Ocultar parte inferior degradada" + }, + "hidePlaylist": { + "message": "Ocultar playlist" + }, + "hideRightButtons": { + "message": "Ocultar botones de la derecha" + }, + "hideScrollForDetails": { + "message": "Ocultar \u00abDesliza hacia abajo para ver m\u00e1s detalles\u00bb" + }, + "hideViewsCount": { + "message": "Ocultar contador de visitas" + }, + "history": { + "message": "Historial" + }, + "home": { + "message": "Inicio" + }, + "hover": { + "message": "Cursor sobre (hover)" + }, + "hoverOnVideoPage": { + "message": "Cursor sobre (hover) en p\u00e1gina de video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Hace cu\u00e1nto tiempo se subi\u00f3 el video" + }, + "icons": { + "message": "Iconos" + }, + "iconsOnly": { + "message": "Solo iconos" + }, + "importSettings": { + "message": "Importar configuraci\u00f3n" + }, + "improveLogo": { + "message": "Mejorar logo" + }, + "improvedtubeIconInBrowser": { + "message": "Icono ImprovedTube en el navegador" + }, + "improvedtubeIconOnYoutube": { + "message": "Icono ImprovedTube en YouTube" + }, + "improvedtubeLanguage": { + "message": "Idioma de ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Version de ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Aumentar velocidad de reproducci\u00f3n" + }, + "increaseVolume": { + "message": "Subir volumen" + }, + "indigo": { + "message": "\u00cdndigo" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "Idiomas" + }, + "legacyYoutube": { + "message": " YouTube antiguo" + }, + "light": { + "message": "Claro" + }, + "lightBlue": { + "message": "Azul claro" + }, + "lightGreen": { + "message": "Verde claro" + }, + "like": { + "message": "Like" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Lima" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Chat en directo" + }, + "liveChatType": { + "message": "Tipo de chat en directo" + }, + "loudnessNormalization": { + "message": "Normalizaci\u00f3n de volumen" + }, + "markWatchedVideos": { + "message": "Marcar videos vistos" + }, + "mixer": { + "message": "Mezclador" + }, + "myColors": { + "message": "Mis colores" + }, + "name": { + "message": "Nombre" + }, + "nativeMiniPlayer": { + "message": "Mini-Reproductor nativo" + }, + "new": { + "message": "Nuevo" + }, + "nextVideo": { + "message": "Siguiente video" + }, + "night": { + "message": "Noche" + }, + "noActiveFeatures": { + "message": "Sin caracter\u00edsticas activas" + }, + "noOpenVideoTabs": { + "message": "Sin pesta\u00f1as de video abiertas" + }, + "none": { + "message": "Ninguno" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Viejo" + }, + "onAllVideos": { + "message": "En todos los videos" + }, + "onSubscribedChannels": { + "message": "En canales suscritos" + }, + "onlyActiveOnYoutube": { + "message": "Solo activo en YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Solo una pesta\u00f1a reproduciendo" + }, + "orange": { + "message": "Naranja" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Otro" + }, + "permissions": { + "message": "Permisos" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Plano" + }, + "platform": { + "message": "Plataforma" + }, + "playPause": { + "message": "Reproducir / pausar" + }, + "playbackSpeed": { + "message": "Velocidad de reproducci\u00f3n" + }, + "player": { + "message": "Reproductor" + }, + "playerColor": { + "message": "Color del reproductor" + }, + "playerSize": { + "message": "Tama\u00f1o del reproductor" + }, + "playlist": { + "message": "Lista de reproducci\u00f3n" + }, + "playlists": { + "message": "Listas de reproducci\u00f3n" + }, + "popupPlayer": { + "message": "Reproductor emergente" + }, + "position": { + "message": "Posici\u00f3n" + }, + "pressAnyKeyOrScroll": { + "message": "Aprieta una tecla o haz scroll" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Aprieta una tecla o usa la rueda del rat\u00f3n" + }, + "previousVideo": { + "message": "Reproducir video anterior" + }, + "primaryColor": { + "message": "Color Primario" + }, + "purple": { + "message": "Morado" + }, + "quality": { + "message": "Calidad" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Calif\u00edquenos" + }, + "red": { + "message": "Rojo" + }, + "redDislikeButton": { + "message": "Mostrar el bot\u00f3n de dislike de color rojo" + }, + "relatedVideos": { + "message": "V\u00eddeos relacionados" + }, + "removeRelatedSearchResults": { + "message": "Quitar resultados relacionados" + }, + "repeat": { + "message": "Repetir" + }, + "reset": { + "message": "Reiniciar" + }, + "resetAllSettings": { + "message": "Restablecer todos los ajustes" + }, + "resetAllShortcuts": { + "message": "Restablecer todos los atajos" + }, + "reverse": { + "message": "Revertir" + }, + "rotate": { + "message": "Rotar" + }, + "save": { + "message": "Guardar" + }, + "saveAs": { + "message": "Guardar como" + }, + "schedule": { + "message": "Programar" + }, + "screen": { + "message": "Pantalla" + }, + "screenshot": { + "message": "Captura de pantalla" + }, + "search": { + "message": "B\u00fasqueda" + }, + "searchBarOnly": { + "message": "Solo barra de b\u00fasqueda" + }, + "seekBackward10Seconds": { + "message": "Retroceder 10 segundos" + }, + "seekForward10Seconds": { + "message": "Adelantar 10 segundos" + }, + "settings": { + "message": "Ajustes" + }, + "settingsSuccessfullyImported": { + "message": "Ajustes importados correctamente" + }, + "shortcuts": { + "message": "Atajos" + }, + "showCardsOnMouseHover": { + "message": "Mostrar tarjetas al pasar el rat\u00f3n" + }, + "showChannelVideosCount": { + "message": "Mostrar recuento de videos del canal" + }, + "shuffle": { + "message": "Aleatorio" + }, + "sidebar": { + "message": "Barra lateral" + }, + "spacebar": { + "message": "Espacio" + }, + "squaredUserImages": { + "message": "Fotos de perfil cuadradas" + }, + "static": { + "message": "Est\u00e1tico" + }, + "statsForNerds": { + "message": "Mostrar estad\u00edsticas para Nerds" + }, + "step": { + "message": "Paso" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Estilo" + }, + "styles": { + "message": "Estilos" + }, + "subscriptions": { + "message": "Suscripciones" + }, + "subtitles": { + "message": "Subt\u00edtulos" + }, + "sunset": { + "message": "Atardecer" + }, + "sunsetToSunrise": { + "message": "De atardecer a amanecer" + }, + "systemPeferenceDark": { + "message": "Preferencia del sistema: Oscuro" + }, + "systemPeferenceLight": { + "message": "Preferencia del sistema: Claro" + }, + "teal": { + "message": "Verde azulado" + }, + "textColor": { + "message": "Color del texto" + }, + "themes": { + "message": "Temas" + }, + "thisWillRemoveAllCookies": { + "message": "Esto borrar\u00e1 todas las cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Esto borrar\u00e1 todas las cookies de YouTube" + }, + "thisWillResetAllSettings": { + "message": "Esto restablecer\u00e1 todos los ajustes" + }, + "thisWillResetAllShortcuts": { + "message": "Esto restablecer\u00e1 todos los atajos" + }, + "thumbnails": { + "message": "Miniaturas" + }, + "timeFrom": { + "message": "Desde" + }, + "timeTo": { + "message": "Hasta" + }, + "todayAt": { + "message": "Hoy a las" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Reproducci\u00f3n autom\u00e1tica de trailer" + }, + "translations": { + "message": "Traducciones" + }, + "transparentBackground": { + "message": "Fondo transparente" + }, + "trending": { + "message": "Tendencias" + }, + "tryToReloadThePage": { + "message": "Trata de recargar la p\u00e1gina" + }, + "type": { + "message": "Tipo" + }, + "upNextAutoplay": { + "message": "Siguiente reproducci\u00f3n autom\u00e1tica" + }, + "use24HourFormat": { + "message": "Usar formato 24 horas" + }, + "version": { + "message": "Versi\u00f3n" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "La descripci\u00f3n del video se expandir\u00e1 para obtener el nombre de la categor\u00eda." + }, + "videoFormats": { + "message": "Formatos de video" + }, + "videos": { + "message": "Videos" + }, + "volume": { + "message": "Volumen" + }, + "watchLater": { + "message": "Ver m\u00e1s tarde" + }, + "watchTime": { + "message": "Visualizaciones" + }, + "whenTabIsChanged": { + "message": "Al cambiar de pesta\u00f1a" + }, + "white": { + "message": "Blanco" + }, + "yellow": { + "message": "Amarillo" + }, + "youtubeHeaderLeft": { + "message": "Encabezado YouTube (izq)" + }, + "youtubeHeaderRight": { + "message": "Encabezado YouTube (der)" + }, + "youtubeHomePage": { + "message": "P\u00e1gina de inicio de YouTube" + }, + "youtubeLanguage": { + "message": "Idioma de YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limita calidad de video a 1080p para el codec h.264" + } +} \ No newline at end of file diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index cc1c092da..52bb5b23c 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -1,818 +1,821 @@ -{ - "about": { - "message": "À propos" - }, - "accept": { - "message": "Accepter" - }, - "activate": { - "message": "Activer" - }, - "activateCaptions": { - "message": "Activer les sous-titres" - }, - "activated": { - "message": "Activé" - }, - "activatedFeatures": { - "message": "Fonctionnalités activées" - }, - "activateFullscreen": { - "message": "Activer le plein écran" - }, - "activeFeatures": { - "message": "Fonctionnalités actives" - }, - "addScrollToTop": { - "message": "Ajouter « Remonter en haut »" - }, - "ads": { - "message": "Publicités" - }, - "all": { - "message": "Voir tout" - }, - "allow": { - "message": "Permettre" - }, - "allow60fps": { - "message": "Jouer à 60 fps" - }, - "forceSDR": { - "message": "Force SDR" - }, - "alwaysActive": { - "message": "Toujours activé" - }, - "alwaysShowProgressBar": { - "message": "Toujours afficher la barre de progression" - }, - "amber": { - "message": "Ambre" - }, - "analyzer": { - "message": "Analyser" - }, - "appearance": { - "message": "Apparence" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formats de fichier audio" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Plein écran automatique" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pause automatique lors d'un changement d'onglet" - }, - "autoplay": { - "message": "Lecture automatique" - }, - "backupAndReset": { - "message": "Sauvegarde et réinitialisation" - }, - "baseOnSystemColorScheme": { - "message": "Selon les paramètres du système" - }, - "belowPlayer": { - "message": "Sous le player" - }, - "black": { - "message": "Noir" - }, - "blacklist": { - "message": "Liste noire" - }, - "blockAll": { - "message": "Tout bloquer" - }, - "blue": { - "message": "Bleu" - }, - "blueGray": { - "message": "Gris-bleu" - }, - "bluelight": { - "message": "Bleu pâle" - }, - "brown": { - "message": "Brun" - }, - "browser": { - "message": "Navigateur web" - }, - "browserVersion": { - "message": "Version du navigateur web" - }, - "bubbles": { - "message": "Bulles" - }, - "bug": { - "message": "Bogue" - }, - "buttons": { - "message": "Boutons" - }, - "cancel": { - "message": "Retour" - }, - "categories": { - "message": "Catégories" - }, - "channel": { - "message": "Chaîne" - }, - "channels": { - "message": "Chaînes" - }, - "clipboard": { - "message": "Presse-papiers" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Réduire" - }, - "collapseOfSubscriptionSections": { - "message": "Réduire la section des abonnements" - }, - "comments": { - "message": "Commentaires" - }, - "confirmationBeforeClosing": { - "message": "Confirmation avant la fermeture" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Noyaux" - }, - "cropChapterTitles": { - "message": "Couper les titres des chapitres" - }, - "customCss": { - "message": "CSS customisé" - }, - "customJs": { - "message": "JS customisé" - }, - "customMiniPlayer": { - "message": "Mini-lecteur personnalisé" - }, - "openPopupPlayer": { - "message": "Ouvrir Video/playlist dans un nouvelle onglet" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Sombre" - }, - "darkTheme": { - "message": "Thème sombre" - }, - "dateAndTime": { - "message": "Date et temps" - }, - "dawn": { - "message": "Aube" - }, - "decreasePlaybackSpeed": { - "message": "Réduire la vitesse de lecture" - }, - "decreaseVolume": { - "message": "Réduire le volume" - }, - "deepOrange": { - "message": "Orange foncé" - }, - "deepPurple": { - "message": "Violet foncé" - }, - "defaultChannelTab": { - "message": "Onglet par défaut d'une chaîne" - }, - "deleteYoutubeCookies": { - "message": "Supprimer les cookies YouTube" - }, - "description": { - "message": "Description" - }, - "desert": { - "message": "Desert" - }, - "details": { - "message": "Détails" - }, - "developerOptions": { - "message": "Options de développeur" - }, - "device": { - "message": "Appareil" - }, - "dim": { - "message": "Assombrir" - }, - "disabled": { - "message": "Désactivé" - }, - "dislike": { - "message": "Je n'aime pas" - }, - "donate": { - "message": "Donner" - }, - "doNotChange": { - "message": "Ne pas changer" - }, - "draggable": { - "message": "Draggable" - }, - "email": { - "message": "Courriel" - }, - "empty": { - "message": "Vide" - }, - "enabled": { - "message": "Activé" - }, - "enabledForced": { - "message": "Activé (forcé)" - }, - "expanded": { - "message": "Étendu" - }, - "exportSettings": { - "message": "Exporter les réglages" - }, - "extension": { - "message": "Extension" - }, - "file": { - "message": "Fichier" - }, - "filters": { - "message": "Filtres" - }, - "fitToWindow": { - "message": "Ajuster à la fenêtre" - }, - "flash": { - "message": "Clignoter" - }, - "font": { - "message": "Police" - }, - "footer": { - "message": "Bas de page" - }, - "forcedPlaybackSpeed": { - "message": "Vitesse de lecture forcée" - }, - "forcedTheaterMode": { - "message": "Forcer le mode théâtre" - }, - "forcedVolume": { - "message": "Forcer le volume" - }, - "foundABug": { - "message": "Un bogue?" - }, - "fullWindow": { - "message": "Fenêtre pleine" - }, - "general": { - "message": "Général" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Barre de recherche" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Vert" - }, - "hdThumbnail": { - "message": "Miniature HD" - }, - "hdThumbnails": { - "message": "Miniatures HD" - }, - "header": { - "message": "Tête de page" - }, - "hidden": { - "message": "Caché" - }, - "hiddenOnVideoPage": { - "message": "Caché sur la page de la vidéo" - }, - "hideAnimatedThumbnails": { - "message": "Miniatures sans animation" - }, - "hideAnnotations": { - "message": "Cacher les annotations" - }, - "hideCards": { - "message": "Cacher les cartes" - }, - "hideDetails": { - "message": "Cacher les détails" - }, - "hideEndscreen": { - "message": "Cacher l'écran de fin" - }, - "hideFeaturedContent": { - "message": "Cacher le contenu recommandé" - }, - "hideFooter": { - "message": "Cacher le pied de page" - }, - "hideGradientBottom": { - "message": "Masquer le dégradé du bas" - }, - "hidePlaylist": { - "message": "Cacher la liste de lecture" - }, - "hideRightButtons": { - "message": "Cacher les boutons à droite" - }, - "hideScrollForDetails": { - "message": "Cacher « Faire défiler pour les détails »" - }, - "hideViewsCount": { - "message": "Voir le compte des vues" - }, - "history": { - "message": "Historique" - }, - "home": { - "message": "Accueil" - }, - "hover": { - "message": "Survoler" - }, - "hoverOnVideoPage": { - "message": "Survoler la page de la vidéo" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Depuis combien de temps la vidéo a été téléversé?" - }, - "icons": { - "message": "Icônes" - }, - "iconsOnly": { - "message": "Uniquement les icônes" - }, - "importSettings": { - "message": "Importer les réglages" - }, - "improvedtubeIconInBrowser": { - "message": "Afficher l'icône ImprovedTube dans le navigateur web" - }, - "improvedtubeIconOnYoutube": { - "message": "Afficher l'icône ImprovedTube sur YouTube" - }, - "improvedtubeLanguage": { - "message": "Langue d'ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Version d'ImprovedTube" - }, - "improveLogo": { - "message": "Améliorer le logo" - }, - "increasePlaybackSpeed": { - "message": "Accélérer la vitesse de lecture" - }, - "increaseVolume": { - "message": "Augmenter le volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Objets" - }, - "languages": { - "message": "Langues" - }, - "legacyYoutube": { - "message": "Ancienne version de Youtube" - }, - "light": { - "message": "Clair" - }, - "lightBlue": { - "message": "Bleu clair" - }, - "lightGreen": { - "message": "Vert clair" - }, - "like": { - "message": "J'aime" - }, - "likes": { - "message": "J'aime" - }, - "lime": { - "message": "Citron vert" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Chat en direct" - }, - "liveChatType": { - "message": "Type de chat en direct" - }, - "loudnessNormalization": { - "message": "Normalisation de l'intensité sonore" - }, - "markWatchedVideos": { - "message": "Marquer les vidéos déjà visionnées" - }, - "mixer": { - "message": "Mélangeur de volume" - }, - "myColors": { - "message": "Mes couleurs" - }, - "name": { - "message": "Nom" - }, - "nativeMiniPlayer": { - "message": "Mini-lecteur natif" - }, - "new": { - "message": "Nouveau" - }, - "nextVideo": { - "message": "Prochaine vidéo" - }, - "night": { - "message": "Nuit" - }, - "noActiveFeatures": { - "message": "Pas de fonctionalité active" - }, - "none": { - "message": "Aucun" - }, - "noOpenVideoTabs": { - "message": "Aucun onglet de vidéo ouvert" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Vieux" - }, - "onAllVideos": { - "message": "Pour toutes les vidéos" - }, - "onlyActiveOnYoutube": { - "message": "Uniquement actif sur YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Une seule instance à la fois" - }, - "onSubscribedChannels": { - "message": "Sur les chaînes auxquelles je suis abonné" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Autres" - }, - "permissions": { - "message": "Permissions" - }, - "pictureInPicture": { - "message": "Image dans l'image" - }, - "pink": { - "message": "Rose" - }, - "plain": { - "message": "Ordinaire" - }, - "platform": { - "message": "Platforme" - }, - "playbackSpeed": { - "message": "Vitesse de lecture" - }, - "player": { - "message": "Lecteur" - }, - "playerColor": { - "message": "Couleur du lecteur" - }, - "playerSize": { - "message": "Taille du lecteur" - }, - "playlist": { - "message": "Liste de lecture" - }, - "playlists": { - "message": "Listes de lecture" - }, - "playPause": { - "message": "Lire / Pause" - }, - "popupPlayer": { - "message": "Détacher le lecteur" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." - }, - "previousVideo": { - "message": "Vidéo précédente" - }, - "primaryColor": { - "message": "Couleur primaire" - }, - "purple": { - "message": "Violet" - }, - "quality": { - "message": "Qualité" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Nous évaluer" - }, - "red": { - "message": "Rouge" - }, - "redDislikeButton": { - "message": "Afficher la couleur rouge du bouton Je n'aime pas" - }, - "relatedVideos": { - "message": "Vidéos associés" - }, - "removeRelatedSearchResults": { - "message": "Supprimer les résultats de recherche associés" - }, - "repeat": { - "message": "Lire en boucle" - }, - "reset": { - "message": "Réintialiser" - }, - "resetAllSettings": { - "message": "Annuler réglages" - }, - "resetAllShortcuts": { - "message": "Annuler raccourcis" - }, - "reverse": { - "message": "Inverser" - }, - "rotate": { - "message": "Faire pivoter la vidéo" - }, - "save": { - "message": "Ok" - }, - "saveAs": { - "message": "Sauvegarder sous" - }, - "schedule": { - "message": "Plage horaire" - }, - "screen": { - "message": "Écran" - }, - "screenshot": { - "message": "Capture d'écran" - }, - "search": { - "message": "Rechercher" - }, - "searchBarOnly": { - "message": "Uniquement la barre de recherche" - }, - "seekBackward10Seconds": { - "message": "Reculer de 10 secondes" - }, - "seekForward10Seconds": { - "message": "Avancer de 10 secondes" - }, - "settings": { - "message": "Réglages" - }, - "settingsSuccessfullyImported": { - "message": "Importation des réglages réussie" - }, - "shortcuts": { - "message": "Raccourcis" - }, - "showCardsOnMouseHover": { - "message": "Afficher les cartes au survol de la souris" - }, - "showChannelVideosCount": { - "message": "Afficher le nombre de vidéos de la chaîne" - }, - "shuffle": { - "message": "Aléatoire" - }, - "sidebar": { - "message": "Barre latérale" - }, - "spacebar": { - "message": "Barre d'espace" - }, - "squaredUserImages": { - "message": "Images des utilisateurs carrées" - }, - "static": { - "message": "Statique" - }, - "statsForNerds": { - "message": "Statistiques pour nerd" - }, - "step": { - "message": "Étape" - }, - "stop": { - "message": "Arrêter" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscriptions": { - "message": "Abonnements" - }, - "subtitles": { - "message": "Activer les sous-titres" - }, - "sunset": { - "message": "Coucher de soleil" - }, - "sunsetToSunrise": { - "message": "Du coucher au lever du Soleil" - }, - "systemPeferenceDark": { - "message": "Préférence système : sombre" - }, - "systemPeferenceLight": { - "message": "Préférence système : clair" - }, - "teal": { - "message": "Sarcelle" - }, - "textColor": { - "message": "Couleur du texte" - }, - "themes": { - "message": "Thèmes" - }, - "thisWillRemoveAllCookies": { - "message": "Supprimer tous les cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Supprimer tous les cookies Youtube." - }, - "thisWillResetAllSettings": { - "message": "Réintialiser les réglages." - }, - "thisWillResetAllShortcuts": { - "message": "Réintialiser les raccourcis." - }, - "thumbnails": { - "message": "Miniature" - }, - "timeFrom": { - "message": "Temps de" - }, - "timeTo": { - "message": "Temps au" - }, - "todayAt": { - "message": "Aujourd'hui à" - }, - "toggleAutoplay": { - "message": "Basculer lecture auto" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Démarrage automatique des annonces" - }, - "translations": { - "message": "Traductions" - }, - "transparentBackground": { - "message": "Arrière-plan transparent" - }, - "trending": { - "message": "Tendances" - }, - "tryToReloadThePage": { - "message": "Essayez de rafraîchir la page" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "Prochaine lecture automatique" - }, - "use24HourFormat": { - "message": "Utiliser le format 24 h" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Vidéo" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La description de la vidéo sera développée pour obtenir le nom de la catégorie" - }, - "videoFormats": { - "message": "Formats de vidéo" - }, - "videos": { - "message": "Videos" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "À regarder plus tard" - }, - "watchTime": { - "message": "Temps de visionnage" - }, - "whenTabIsChanged": { - "message": "Quand l'onglet change" - }, - "white": { - "message": "Blanc" - }, - "yellow": { - "message": "Jaune" - }, - "youtubeHeaderLeft": { - "message": "En-tête YouTube (à gauche)" - }, - "youtubeHeaderRight": { - "message": "En-tête YouTube (à droite)" - }, - "youtubeHomePage": { - "message": "Page d'accueil de YouTube" - }, - "youtubeLanguage": { - "message": "Langue de YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limite la qualité vidéo à 1080p pour le codec h.264" - } -} +{ + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "about": { + "message": "\u00c0 propos" + }, + "accept": { + "message": "Accepter" + }, + "activate": { + "message": "Activer" + }, + "activateCaptions": { + "message": "Activer les sous-titres" + }, + "activateFullscreen": { + "message": "Activer le plein \u00e9cran" + }, + "activated": { + "message": "Activ\u00e9" + }, + "activatedFeatures": { + "message": "Fonctionnalit\u00e9s activ\u00e9es" + }, + "activeFeatures": { + "message": "Fonctionnalit\u00e9s actives" + }, + "addScrollToTop": { + "message": "Ajouter \u00ab Remonter en haut \u00bb" + }, + "ads": { + "message": "Publicit\u00e9s" + }, + "all": { + "message": "Voir tout" + }, + "allow": { + "message": "Permettre" + }, + "allow60fps": { + "message": "Jouer \u00e0 60 fps" + }, + "alwaysActive": { + "message": "Toujours activ\u00e9" + }, + "alwaysShowProgressBar": { + "message": "Toujours afficher la barre de progression" + }, + "amber": { + "message": "Ambre" + }, + "analyzer": { + "message": "Analyser" + }, + "appearance": { + "message": "Apparence" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formats de fichier audio" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Plein \u00e9cran automatique" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pause automatique lors d'un changement d'onglet" + }, + "autoplay": { + "message": "Lecture automatique" + }, + "backupAndReset": { + "message": "Sauvegarde et r\u00e9initialisation" + }, + "baseOnSystemColorScheme": { + "message": "Selon les param\u00e8tres du syst\u00e8me" + }, + "belowPlayer": { + "message": "Sous le player" + }, + "black": { + "message": "Noir" + }, + "blacklist": { + "message": "Liste noire" + }, + "blockAll": { + "message": "Tout bloquer" + }, + "blue": { + "message": "Bleu" + }, + "blueGray": { + "message": "Gris-bleu" + }, + "bluelight": { + "message": "Bleu p\u00e2le" + }, + "brown": { + "message": "Brun" + }, + "browser": { + "message": "Navigateur web" + }, + "browserVersion": { + "message": "Version du navigateur web" + }, + "bubbles": { + "message": "Bulles" + }, + "bug": { + "message": "Bogue" + }, + "buttons": { + "message": "Boutons" + }, + "cancel": { + "message": "Retour" + }, + "categories": { + "message": "Cat\u00e9gories" + }, + "channel": { + "message": "Cha\u00eene" + }, + "channels": { + "message": "Cha\u00eenes" + }, + "clipboard": { + "message": "Presse-papiers" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "R\u00e9duire la section des abonnements" + }, + "collapsed": { + "message": "R\u00e9duire" + }, + "comments": { + "message": "Commentaires" + }, + "confirmationBeforeClosing": { + "message": "Confirmation avant la fermeture" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Noyaux" + }, + "cropChapterTitles": { + "message": "Couper les titres des chapitres" + }, + "customCss": { + "message": "CSS customis\u00e9" + }, + "customJs": { + "message": "JS customis\u00e9" + }, + "customMiniPlayer": { + "message": "Mini-lecteur personnalis\u00e9" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Sombre" + }, + "darkTheme": { + "message": "Th\u00e8me sombre" + }, + "dateAndTime": { + "message": "Date et temps" + }, + "dawn": { + "message": "Aube" + }, + "decreasePlaybackSpeed": { + "message": "R\u00e9duire la vitesse de lecture" + }, + "decreaseVolume": { + "message": "R\u00e9duire le volume" + }, + "deepOrange": { + "message": "Orange fonc\u00e9" + }, + "deepPurple": { + "message": "Violet fonc\u00e9" + }, + "defaultChannelTab": { + "message": "Onglet par d\u00e9faut d'une cha\u00eene" + }, + "deleteYoutubeCookies": { + "message": "Supprimer les cookies YouTube" + }, + "description": { + "message": "Description" + }, + "desert": { + "message": "Desert" + }, + "details": { + "message": "D\u00e9tails" + }, + "developerOptions": { + "message": "Options de d\u00e9veloppeur" + }, + "device": { + "message": "Appareil" + }, + "dim": { + "message": "Assombrir" + }, + "disabled": { + "message": "D\u00e9sactiv\u00e9" + }, + "dislike": { + "message": "Je n'aime pas" + }, + "doNotChange": { + "message": "Ne pas changer" + }, + "donate": { + "message": "Donner" + }, + "draggable": { + "message": "Draggable" + }, + "email": { + "message": "Courriel" + }, + "empty": { + "message": "Vide" + }, + "enabled": { + "message": "Activ\u00e9" + }, + "enabledForced": { + "message": "Activ\u00e9 (forc\u00e9)" + }, + "expanded": { + "message": "\u00c9tendu" + }, + "exportSettings": { + "message": "Exporter les r\u00e9glages" + }, + "extension": { + "message": "Extension" + }, + "file": { + "message": "Fichier" + }, + "filters": { + "message": "Filtres" + }, + "fitToWindow": { + "message": "Ajuster \u00e0 la fen\u00eatre" + }, + "flash": { + "message": "Clignoter" + }, + "font": { + "message": "Police" + }, + "footer": { + "message": "Bas de page" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlaybackSpeed": { + "message": "Vitesse de lecture forc\u00e9e" + }, + "forcedTheaterMode": { + "message": "Forcer le mode th\u00e9\u00e2tre" + }, + "forcedVolume": { + "message": "Forcer le volume" + }, + "foundABug": { + "message": "Un bogue?" + }, + "fullWindow": { + "message": "Fen\u00eatre pleine" + }, + "general": { + "message": "G\u00e9n\u00e9ral" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Barre de recherche" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Vert" + }, + "hdThumbnail": { + "message": "Miniature HD" + }, + "hdThumbnails": { + "message": "Miniatures HD" + }, + "header": { + "message": "T\u00eate de page" + }, + "hidden": { + "message": "Cach\u00e9" + }, + "hiddenOnVideoPage": { + "message": "Cach\u00e9 sur la page de la vid\u00e9o" + }, + "hideAnimatedThumbnails": { + "message": "Miniatures sans animation" + }, + "hideAnnotations": { + "message": "Cacher les annotations" + }, + "hideCards": { + "message": "Cacher les cartes" + }, + "hideDetails": { + "message": "Cacher les d\u00e9tails" + }, + "hideEndscreen": { + "message": "Cacher l'\u00e9cran de fin" + }, + "hideFeaturedContent": { + "message": "Cacher le contenu recommand\u00e9" + }, + "hideFooter": { + "message": "Cacher le pied de page" + }, + "hideGradientBottom": { + "message": "Masquer le d\u00e9grad\u00e9 du bas" + }, + "hidePlaylist": { + "message": "Cacher la liste de lecture" + }, + "hideRightButtons": { + "message": "Cacher les boutons \u00e0 droite" + }, + "hideScrollForDetails": { + "message": "Cacher \u00ab Faire d\u00e9filer pour les d\u00e9tails \u00bb" + }, + "hideViewsCount": { + "message": "Voir le compte des vues" + }, + "history": { + "message": "Historique" + }, + "home": { + "message": "Accueil" + }, + "hover": { + "message": "Survoler" + }, + "hoverOnVideoPage": { + "message": "Survoler la page de la vid\u00e9o" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Depuis combien de temps la vid\u00e9o a \u00e9t\u00e9 t\u00e9l\u00e9vers\u00e9?" + }, + "icons": { + "message": "Ic\u00f4nes" + }, + "iconsOnly": { + "message": "Uniquement les ic\u00f4nes" + }, + "importSettings": { + "message": "Importer les r\u00e9glages" + }, + "improveLogo": { + "message": "Am\u00e9liorer le logo" + }, + "improvedtubeIconInBrowser": { + "message": "Afficher l'ic\u00f4ne ImprovedTube dans le navigateur web" + }, + "improvedtubeIconOnYoutube": { + "message": "Afficher l'ic\u00f4ne ImprovedTube sur YouTube" + }, + "improvedtubeLanguage": { + "message": "Langue d'ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Version d'ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Acc\u00e9l\u00e9rer la vitesse de lecture" + }, + "increaseVolume": { + "message": "Augmenter le volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Objets" + }, + "languages": { + "message": "Langues" + }, + "legacyYoutube": { + "message": "Ancienne version de Youtube" + }, + "light": { + "message": "Clair" + }, + "lightBlue": { + "message": "Bleu clair" + }, + "lightGreen": { + "message": "Vert clair" + }, + "like": { + "message": "J'aime" + }, + "likes": { + "message": "J'aime" + }, + "lime": { + "message": "Citron vert" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Chat en direct" + }, + "liveChatType": { + "message": "Type de chat en direct" + }, + "loudnessNormalization": { + "message": "Normalisation de l'intensit\u00e9 sonore" + }, + "markWatchedVideos": { + "message": "Marquer les vid\u00e9os d\u00e9j\u00e0 visionn\u00e9es" + }, + "mixer": { + "message": "M\u00e9langeur de volume" + }, + "myColors": { + "message": "Mes couleurs" + }, + "name": { + "message": "Nom" + }, + "nativeMiniPlayer": { + "message": "Mini-lecteur natif" + }, + "new": { + "message": "Nouveau" + }, + "nextVideo": { + "message": "Prochaine vid\u00e9o" + }, + "night": { + "message": "Nuit" + }, + "noActiveFeatures": { + "message": "Pas de fonctionalit\u00e9 active" + }, + "noOpenVideoTabs": { + "message": "Aucun onglet de vid\u00e9o ouvert" + }, + "none": { + "message": "Aucun" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Vieux" + }, + "onAllVideos": { + "message": "Pour toutes les vid\u00e9os" + }, + "onSubscribedChannels": { + "message": "Sur les cha\u00eenes auxquelles je suis abonn\u00e9" + }, + "onlyActiveOnYoutube": { + "message": "Uniquement actif sur YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Une seule instance \u00e0 la fois" + }, + "openPopupPlayer": { + "message": "Ouvrir Video/playlist dans un nouvelle onglet" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Autres" + }, + "permissions": { + "message": "Permissions" + }, + "pictureInPicture": { + "message": "Image dans l'image" + }, + "pink": { + "message": "Rose" + }, + "plain": { + "message": "Ordinaire" + }, + "platform": { + "message": "Platforme" + }, + "playPause": { + "message": "Lire / Pause" + }, + "playbackSpeed": { + "message": "Vitesse de lecture" + }, + "player": { + "message": "Lecteur" + }, + "playerColor": { + "message": "Couleur du lecteur" + }, + "playerSize": { + "message": "Taille du lecteur" + }, + "playlist": { + "message": "Liste de lecture" + }, + "playlists": { + "message": "Listes de lecture" + }, + "popupPlayer": { + "message": "D\u00e9tacher le lecteur" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." + }, + "previousVideo": { + "message": "Vid\u00e9o pr\u00e9c\u00e9dente" + }, + "primaryColor": { + "message": "Couleur primaire" + }, + "purple": { + "message": "Violet" + }, + "quality": { + "message": "Qualit\u00e9" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Nous \u00e9valuer" + }, + "red": { + "message": "Rouge" + }, + "redDislikeButton": { + "message": "Afficher la couleur rouge du bouton Je n'aime pas" + }, + "relatedVideos": { + "message": "Vid\u00e9os associ\u00e9s" + }, + "removeRelatedSearchResults": { + "message": "Supprimer les r\u00e9sultats de recherche associ\u00e9s" + }, + "repeat": { + "message": "Lire en boucle" + }, + "reset": { + "message": "R\u00e9intialiser" + }, + "resetAllSettings": { + "message": "Annuler r\u00e9glages" + }, + "resetAllShortcuts": { + "message": "Annuler raccourcis" + }, + "reverse": { + "message": "Inverser" + }, + "rotate": { + "message": "Faire pivoter la vid\u00e9o" + }, + "save": { + "message": "Ok" + }, + "saveAs": { + "message": "Sauvegarder sous" + }, + "schedule": { + "message": "Plage horaire" + }, + "screen": { + "message": "\u00c9cran" + }, + "screenshot": { + "message": "Capture d'\u00e9cran" + }, + "search": { + "message": "Rechercher" + }, + "searchBarOnly": { + "message": "Uniquement la barre de recherche" + }, + "seekBackward10Seconds": { + "message": "Reculer de 10 secondes" + }, + "seekForward10Seconds": { + "message": "Avancer de 10 secondes" + }, + "settings": { + "message": "R\u00e9glages" + }, + "settingsSuccessfullyImported": { + "message": "Importation des r\u00e9glages r\u00e9ussie" + }, + "shortcuts": { + "message": "Raccourcis" + }, + "showCardsOnMouseHover": { + "message": "Afficher les cartes au survol de la souris" + }, + "showChannelVideosCount": { + "message": "Afficher le nombre de vid\u00e9os de la cha\u00eene" + }, + "shuffle": { + "message": "Al\u00e9atoire" + }, + "sidebar": { + "message": "Barre lat\u00e9rale" + }, + "spacebar": { + "message": "Barre d'espace" + }, + "squaredUserImages": { + "message": "Images des utilisateurs carr\u00e9es" + }, + "static": { + "message": "Statique" + }, + "statsForNerds": { + "message": "Statistiques pour nerd" + }, + "step": { + "message": "\u00c9tape" + }, + "stop": { + "message": "Arr\u00eater" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscriptions": { + "message": "Abonnements" + }, + "subtitles": { + "message": "Activer les sous-titres" + }, + "sunset": { + "message": "Coucher de soleil" + }, + "sunsetToSunrise": { + "message": "Du coucher au lever du Soleil" + }, + "systemPeferenceDark": { + "message": "Pr\u00e9f\u00e9rence syst\u00e8me : sombre" + }, + "systemPeferenceLight": { + "message": "Pr\u00e9f\u00e9rence syst\u00e8me : clair" + }, + "teal": { + "message": "Sarcelle" + }, + "textColor": { + "message": "Couleur du texte" + }, + "themes": { + "message": "Th\u00e8mes" + }, + "thisWillRemoveAllCookies": { + "message": "Supprimer tous les cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Supprimer tous les cookies Youtube." + }, + "thisWillResetAllSettings": { + "message": "R\u00e9intialiser les r\u00e9glages." + }, + "thisWillResetAllShortcuts": { + "message": "R\u00e9intialiser les raccourcis." + }, + "thumbnails": { + "message": "Miniature" + }, + "timeFrom": { + "message": "Temps de" + }, + "timeTo": { + "message": "Temps au" + }, + "todayAt": { + "message": "Aujourd'hui \u00e0" + }, + "toggleAutoplay": { + "message": "Basculer lecture auto" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "D\u00e9marrage automatique des annonces" + }, + "translations": { + "message": "Traductions" + }, + "transparentBackground": { + "message": "Arri\u00e8re-plan transparent" + }, + "trending": { + "message": "Tendances" + }, + "tryToReloadThePage": { + "message": "Essayez de rafra\u00eechir la page" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Prochaine lecture automatique" + }, + "use24HourFormat": { + "message": "Utiliser le format 24 h" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Vid\u00e9o" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "La description de la vid\u00e9o sera d\u00e9velopp\u00e9e pour obtenir le nom de la cat\u00e9gorie" + }, + "videoFormats": { + "message": "Formats de vid\u00e9o" + }, + "videos": { + "message": "Videos" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "\u00c0 regarder plus tard" + }, + "watchTime": { + "message": "Temps de visionnage" + }, + "whenTabIsChanged": { + "message": "Quand l'onglet change" + }, + "white": { + "message": "Blanc" + }, + "yellow": { + "message": "Jaune" + }, + "youtubeHeaderLeft": { + "message": "En-t\u00eate YouTube (\u00e0 gauche)" + }, + "youtubeHeaderRight": { + "message": "En-t\u00eate YouTube (\u00e0 droite)" + }, + "youtubeHomePage": { + "message": "Page d'accueil de YouTube" + }, + "youtubeLanguage": { + "message": "Langue de YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limite la qualit\u00e9 vid\u00e9o \u00e0 1080p pour le codec h.264" + } +} \ No newline at end of file diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index 1ee4d90de..121de9dc6 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -1,812 +1,815 @@ -{ - "about": { - "message": "के बारे में" - }, - "accept": { - "message": "स्वीकार" - }, - "activate": { - "message": "सक्रिय" - }, - "activateCaptions": { - "message": "कैप्शन सक्रिय करें" - }, - "activated": { - "message": "सक्रिय" - }, - "activatedFeatures": { - "message": "सक्रिय विशेषताएं" - }, - "activateFullscreen": { - "message": "पूर्णस्क्रीन सक्रिय करें" - }, - "activeFeatures": { - "message": "सक्रिय विशेषताएं" - }, - "addScrollToTop": { - "message": "«शीर्ष पर स्क्रॉल करें» जोड़ें" - }, - "ads": { - "message": "विज्ञापन" - }, - "all": { - "message": "सब" - }, - "allow": { - "message": "अनुमति" - }, - "allow60fps": { - "message": "60fps की अनुमति दें" - }, - "forceSDR": { - "message": "Force SDR" - }, - "alwaysActive": { - "message": "हमेशा सक्रिय" - }, - "alwaysShowProgressBar": { - "message": "हमेशा प्रगति बार दिखाएं" - }, - "amber": { - "message": "अंबर" - }, - "analyzer": { - "message": "विश्लेषक" - }, - "appearance": { - "message": "दिखावट" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "ऑडियो" - }, - "audioFormats": { - "message": "ऑडियो प्रारूप" - }, - "auto": { - "message": "खुद ब खुद" - }, - "autoFullscreen": { - "message": "स्वत: पूर्ण स्क्रीन" - }, - "autopauseWhenSwitchingTabs": { - "message": "टैब स्विच करते समय ऑटोपॉज" - }, - "autoplay": { - "message": "स्वत: प्ले" - }, - "backupAndReset": { - "message": "बैकअप पुनर्स्थापित करना" - }, - "baseOnSystemColorScheme": { - "message": "सिस्टम रंग योजना के आधार पर" - }, - "belowPlayer": { - "message": "प्लेयर के नीचे" - }, - "black": { - "message": "काला" - }, - "blacklist": { - "message": "काला सूची में डालना" - }, - "blockAll": { - "message": "सभी को अवरोधित करें" - }, - "blue": { - "message": "नीला" - }, - "blueGray": { - "message": "नीला स्लेटी" - }, - "bluelight": { - "message": "नीली बत्ती" - }, - "brown": { - "message": "भूरा" - }, - "browser": { - "message": "ब्राउज़र" - }, - "browserVersion": { - "message": "ब्राउज़र संस्करण" - }, - "bubbles": { - "message": "बुलबुले" - }, - "bug": { - "message": "बग" - }, - "buttons": { - "message": "बटन" - }, - "cancel": { - "message": "रद्द" - }, - "categories": { - "message": "श्रेणियाँ" - }, - "channel": { - "message": "चैनल" - }, - "channels": { - "message": "चैनल" - }, - "clipboard": { - "message": "क्लिपबोर्ड" - }, - "codecH264": { - "message": "कोडक ज 64२६४ 64" - }, - "collapsed": { - "message": "संक्षिप्त" - }, - "collapseOfSubscriptionSections": { - "message": "सदस्यता वर्गों का पतन" - }, - "comments": { - "message": "टिप्पणियाँ" - }, - "confirmationBeforeClosing": { - "message": "बंद करने से पहले पुष्टि" - }, - "cookies": { - "message": "कुकीज़" - }, - "cores": { - "message": "कोर" - }, - "cropChapterTitles": { - "message": "फसल अध्याय के शीर्षक" - }, - "customCss": { - "message": "कस्टम सीएसएस" - }, - "customJs": { - "message": "कस्टम जेएस" - }, - "customMiniPlayer": { - "message": "कस्टम मिनी प्लेयर" - }, - "cyan": { - "message": "सियान" - }, - "dark": { - "message": "अंधेरा" - }, - "darkTheme": { - "message": "डार्क थीम" - }, - "dateAndTime": { - "message": "दिनांक और समय" - }, - "dawn": { - "message": "भोर" - }, - "decreasePlaybackSpeed": { - "message": "पार्श्व गति में कमी" - }, - "decreaseVolume": { - "message": "ध्वनि कम" - }, - "deepOrange": { - "message": "गहरा नारंगी" - }, - "deepPurple": { - "message": "गहरा बैंगनी" - }, - "defaultChannelTab": { - "message": "डिफ़ॉल्ट चैनल टैब" - }, - "deleteYoutubeCookies": { - "message": "यूट्यूब कुकीज़ हटाएं" - }, - "description": { - "message": "विवरण" - }, - "desert": { - "message": "रेगिस्तान" - }, - "details": { - "message": "विवरण" - }, - "developerOptions": { - "message": "डेवलपर विकल्प" - }, - "device": { - "message": "युक्ति" - }, - "dim": { - "message": "मंद" - }, - "disabled": { - "message": "विकलांग" - }, - "dislike": { - "message": "नापसन्द" - }, - "donate": { - "message": "दान" - }, - "doNotChange": { - "message": "मत बदलो" - }, - "draggable": { - "message": "खींचने योग्य" - }, - "email": { - "message": "ईमेल" - }, - "empty": { - "message": "खाली" - }, - "enabled": { - "message": "सक्रिय" - }, - "enabledForced": { - "message": "सक्रिय(मजबूर)" - }, - "expanded": { - "message": "विस्तारित" - }, - "exportSettings": { - "message": "निर्यात सेटिंग्स" - }, - "extension": { - "message": "एक्सटेंशन" - }, - "file": { - "message": "फ़ाइल" - }, - "filters": { - "message": "फिल्टर" - }, - "fitToWindow": { - "message": "स्क्रीन फिट" - }, - "flash": { - "message": "चमक" - }, - "font": { - "message": "फ़ॉन्ट" - }, - "footer": { - "message": "पाद लेख" - }, - "forcedPlaybackSpeed": { - "message": "जबरन पार्श्व गति" - }, - "forcedTheaterMode": { - "message": "जबरन थिएटर मोड" - }, - "forcedVolume": { - "message": "जबरन ध्वनि" - }, - "foundABug": { - "message": "बग मिला?" - }, - "fullWindow": { - "message": "पूर्ण स्क्रीन" - }, - "general": { - "message": "सामान्य" - }, - "github": { - "message": "गिटहब" - }, - "goToSearchBox": { - "message": "सर्च बॉक्स पर जाएं" - }, - "gpu": { - "message": "जी पी यू" - }, - "green": { - "message": "हरा" - }, - "hdThumbnail": { - "message": "एच डी थंबनेल" - }, - "hdThumbnails": { - "message": "एच डी थंबनेल" - }, - "header": { - "message": "हैडर" - }, - "hidden": { - "message": "छिपा हुआ" - }, - "hiddenOnVideoPage": { - "message": "वीडियो पेज पर छिपा हुआ" - }, - "hideAnimatedThumbnails": { - "message": "वीडियो पेज पर छिपा हुआ" - }, - "hideAnnotations": { - "message": "एनोटेशन छुपाएं" - }, - "hideCards": { - "message": "पत्ते छिपाओ" - }, - "hideDetails": { - "message": "जानकारी छिपाएँ" - }, - "hideEndscreen": { - "message": "अंत स्क्रीन छिपाएँ" - }, - "hideFeaturedContent": { - "message": "विशेषताओं को छिपाएँ" - }, - "hideFooter": { - "message": "पाद छिपाएँ" - }, - "hideGradientBottom": { - "message": "ग्रेडिएंट बॉटम छुपाएं" - }, - "hidePlaylist": { - "message": "प्लेलिस्ट छिपाएं" - }, - "hideRightButtons": { - "message": "दाएं बटन छुपाएं" - }, - "hideScrollForDetails": { - "message": "छिपाएँ «विवरण के लिए स्क्रॉल»" - }, - "hideViewsCount": { - "message": "व्यू काउंट छिपाएं" - }, - "history": { - "message": "इतिहास" - }, - "home": { - "message": "घर" - }, - "hover": { - "message": "होवर" - }, - "hoverOnVideoPage": { - "message": "वीडियो पेज पर होवर" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "वीडियो कितनी देर पहले अपलोड किया गया था" - }, - "icons": { - "message": "प्रतीक" - }, - "iconsOnly": { - "message": "केवल प्रतीक" - }, - "importSettings": { - "message": "सेटिंग आयात करना" - }, - "improvedtubeIconInBrowser": { - "message": "ब्राउज़र में बेहतर आइकन" - }, - "improvedtubeIconOnYoutube": { - "message": "यूट्यूब पर बेहतर आइकन" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube भाषा" - }, - "improvedtubeVersion": { - "message": "ImprovedTube संस्करण" - }, - "improveLogo": { - "message": "लोगो सुधारो" - }, - "increasePlaybackSpeed": { - "message": "प्लेबैक स्पीड बढ़ाएं" - }, - "increaseVolume": { - "message": "ध्वनि बढ़ाएं" - }, - "indigo": { - "message": "नील" - }, - "items": { - "message": "आइटम" - }, - "languages": { - "message": "बोली" - }, - "legacyYoutube": { - "message": "विरासत यूट्यूब" - }, - "light": { - "message": "हलका" - }, - "lightBlue": { - "message": "हल्का नीला" - }, - "lightGreen": { - "message": "हल्का हरा" - }, - "like": { - "message": "पसंद" - }, - "likes": { - "message": "को यह पसंद है" - }, - "lime": { - "message": "पीला हरा रंग" - }, - "list": { - "message": "सूची" - }, - "liveChat": { - "message": "सीधी बातचीत" - }, - "liveChatType": { - "message": "लाइव चैट प्रकार" - }, - "loudnessNormalization": { - "message": "जोर से सामान्य होना" - }, - "markWatchedVideos": { - "message": "चिह्नित वीडियो देखे गए" - }, - "mixer": { - "message": "मिक्सर" - }, - "myColors": { - "message": "मेरे रंग" - }, - "name": { - "message": "नाम" - }, - "nativeMiniPlayer": { - "message": "मूल निवासी मिनी प्लेयर" - }, - "new": { - "message": "नया" - }, - "nextVideo": { - "message": "अगला वीडियो" - }, - "night": { - "message": "रात" - }, - "noActiveFeatures": { - "message": "कोई सक्रिय सुविधाएँ नहीं" - }, - "none": { - "message": "कोई नहीं" - }, - "noOpenVideoTabs": { - "message": "कोई खुला वीडियो टैब नहीं" - }, - "normal": { - "message": "साधारण" - }, - "old": { - "message": "पुराना" - }, - "onAllVideos": { - "message": "सभी वीडियो पर" - }, - "onlyActiveOnYoutube": { - "message": "केवल यूट्यूब पर सक्रिय है" - }, - "onlyOnePlayerInstancePlaying": { - "message": "केवल एक प्लेयर का चल रहा है" - }, - "onSubscribedChannels": { - "message": "सदस्यता प्राप्त चैनलों पर" - }, - "orange": { - "message": "नारंगी रंग" - }, - "os": { - "message": "ओ एस" - }, - "other": { - "message": "अन्य" - }, - "permissions": { - "message": "अनुमतियां" - }, - "pictureInPicture": { - "message": "चित्र में चित्र" - }, - "pink": { - "message": "गुलाबी" - }, - "plain": { - "message": "सादा" - }, - "platform": { - "message": "मंच" - }, - "playbackSpeed": { - "message": "प्लेबैक स्पीड" - }, - "player": { - "message": "प्लेयर" - }, - "playerColor": { - "message": "प्लेयर रंग" - }, - "playerSize": { - "message": "प्लेयर आकार" - }, - "playlist": { - "message": "प्लेलिस्ट" - }, - "playlists": { - "message": "प्लेलिस्ट" - }, - "playPause": { - "message": "प्ले / ठहराव" - }, - "popupPlayer": { - "message": "पॉप अप प्लेयर" - }, - "position": { - "message": "स्थान" - }, - "pressAnyKeyOrScroll": { - "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" - }, - "previousVideo": { - "message": "पिछला वीडियो" - }, - "primaryColor": { - "message": "प्राथमिक रंग" - }, - "purple": { - "message": "बैंगनी" - }, - "quality": { - "message": "गुणवत्ता" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "हमें रेटिंग दें" - }, - "red": { - "message": "लाल" - }, - "redDislikeButton": { - "message": "नापसंद बटन लाल रंग दिखाएं" - }, - "relatedVideos": { - "message": "संबंधित वीडियो" - }, - "removeRelatedSearchResults": { - "message": "संबंधित खोज परिणाम निकालें" - }, - "repeat": { - "message": "दोहराना" - }, - "reset": { - "message": "रीसेट" - }, - "resetAllSettings": { - "message": "सभी सेटिंग्स को रीसेट" - }, - "resetAllShortcuts": { - "message": "सभी शॉर्टकट रीसेट करें" - }, - "reverse": { - "message": "उलटना" - }, - "rotate": { - "message": "घुमाएँ" - }, - "save": { - "message": "सहेजें" - }, - "saveAs": { - "message": "के रूप रक्षित करें" - }, - "schedule": { - "message": "अनुसूची" - }, - "screen": { - "message": "स्क्रीन" - }, - "screenshot": { - "message": "स्क्रीनशॉट" - }, - "search": { - "message": "खोज" - }, - "searchBarOnly": { - "message": "केवल बार खोजें" - }, - "seekBackward10Seconds": { - "message": "पिछड़े 10 सेकंड की तलाश करें" - }, - "seekForward10Seconds": { - "message": "पिछड़े 10 सेकंड की तलाश करें" - }, - "settings": { - "message": "समायोजन" - }, - "settingsSuccessfullyImported": { - "message": "सेटिंग्स सफलतापूर्वक आयात की गईं" - }, - "shortcuts": { - "message": "शॉर्टकट" - }, - "showCardsOnMouseHover": { - "message": "माउस होवर पर कार्ड दिखाएं" - }, - "showChannelVideosCount": { - "message": "चैनल वीडियो काउंट दिखाएं" - }, - "shuffle": { - "message": "मिश्रण" - }, - "sidebar": { - "message": "साइडबार" - }, - "spacebar": { - "message": "स्पेस बार" - }, - "squaredUserImages": { - "message": "चुकता उपयोगकर्ता चित्र" - }, - "static": { - "message": "स्थिर" - }, - "statsForNerds": { - "message": "डेवलपर के लिए आँकड़े दिखाएँ" - }, - "step": { - "message": "चरण" - }, - "stop": { - "message": "रुकें" - }, - "style": { - "message": "अंदाज" - }, - "styles": { - "message": "शैलियाँ" - }, - "subscriptions": { - "message": "सदस्यता" - }, - "subtitles": { - "message": "उपशीर्षक" - }, - "sunset": { - "message": "सूर्यास्त" - }, - "sunsetToSunrise": { - "message": "सूर्योदय से सूर्यास्त" - }, - "systemPeferenceDark": { - "message": "सिस्टम प्राथमिकताएं: अंधेरा" - }, - "systemPeferenceLight": { - "message": "सिस्टम वरीयताएँ: प्रकाश" - }, - "teal": { - "message": "टील रंग" - }, - "textColor": { - "message": "लिखावट का रंग" - }, - "themes": { - "message": "विषय-वस्तु" - }, - "thisWillRemoveAllCookies": { - "message": "यह सभी कुकीज़ को हटा देगा।" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "यह सभी यूट्यूब कुकीज़ को हटा देगा।" - }, - "thisWillResetAllSettings": { - "message": "यह सभी सेटिंग्स को रीसेट कर देगा।" - }, - "thisWillResetAllShortcuts": { - "message": "यह सभी शॉर्टकट रीसेट कर देगा।" - }, - "thumbnails": { - "message": "थंबनेल" - }, - "timeFrom": { - "message": "से समय" - }, - "timeTo": { - "message": "समय पर" - }, - "todayAt": { - "message": "आज इस समय" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "शीर्ष चैट" - }, - "trailerAutoplay": { - "message": "ट्रेलर ऑटोप्ले" - }, - "translations": { - "message": "अनुवाद" - }, - "transparentBackground": { - "message": "पारदर्शी पृष्ठभूमि" - }, - "trending": { - "message": "रुझान" - }, - "tryToReloadThePage": { - "message": "पृष्ठ को पुनः लोड करने का प्रयास करें" - }, - "type": { - "message": "टाइप" - }, - "upNextAutoplay": { - "message": "अगले ऑटोप्ले पर" - }, - "use24HourFormat": { - "message": "24-घंटे के प्रारूप का उपयोग करें" - }, - "version": { - "message": "संस्करण" - }, - "video": { - "message": "वीडियो" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "श्रेणी का नाम प्राप्त करने के लिए वीडियो विवरण का विस्तार किया जाएगा।" - }, - "videoFormats": { - "message": "वीडियो प्रारूप" - }, - "videos": { - "message": "वीडियो" - }, - "volume": { - "message": "ध्वनि" - }, - "watchLater": { - "message": "बाद में देखना" - }, - "watchTime": { - "message": "समय देखें" - }, - "whenTabIsChanged": { - "message": "जब टैब बदला जाता है" - }, - "white": { - "message": "सफेद" - }, - "yellow": { - "message": "पीला" - }, - "youtubeHeaderLeft": { - "message": "यूट्यूब हैडर (बाएं)" - }, - "youtubeHeaderRight": { - "message": "यूट्यूब हैडर (दाएं)" - }, - "youtubeHomePage": { - "message": "यूट्यूब होम पेज" - }, - "youtubeLanguage": { - "message": "यूट्यूब भाषा" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "यूट्यूब h.264 कोडेक के लिए वीडियो की गुणवत्ता 1080 पी तक सीमित है" - } -} +{ + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "about": { + "message": "\u0915\u0947 \u092c\u093e\u0930\u0947 \u092e\u0947\u0902" + }, + "accept": { + "message": "\u0938\u094d\u0935\u0940\u0915\u093e\u0930" + }, + "activate": { + "message": "\u0938\u0915\u094d\u0930\u093f\u092f" + }, + "activateCaptions": { + "message": "\u0915\u0948\u092a\u094d\u0936\u0928 \u0938\u0915\u094d\u0930\u093f\u092f \u0915\u0930\u0947\u0902" + }, + "activateFullscreen": { + "message": "\u092a\u0942\u0930\u094d\u0923\u0938\u094d\u0915\u094d\u0930\u0940\u0928 \u0938\u0915\u094d\u0930\u093f\u092f \u0915\u0930\u0947\u0902" + }, + "activated": { + "message": "\u0938\u0915\u094d\u0930\u093f\u092f" + }, + "activatedFeatures": { + "message": "\u0938\u0915\u094d\u0930\u093f\u092f \u0935\u093f\u0936\u0947\u0937\u0924\u093e\u090f\u0902" + }, + "activeFeatures": { + "message": "\u0938\u0915\u094d\u0930\u093f\u092f \u0935\u093f\u0936\u0947\u0937\u0924\u093e\u090f\u0902" + }, + "addScrollToTop": { + "message": "\u00ab\u0936\u0940\u0930\u094d\u0937 \u092a\u0930 \u0938\u094d\u0915\u094d\u0930\u0949\u0932 \u0915\u0930\u0947\u0902\u00bb \u091c\u094b\u0921\u093c\u0947\u0902" + }, + "ads": { + "message": "\u0935\u093f\u091c\u094d\u091e\u093e\u092a\u0928" + }, + "all": { + "message": "\u0938\u092c" + }, + "allow": { + "message": "\u0905\u0928\u0941\u092e\u0924\u093f" + }, + "allow60fps": { + "message": "60fps \u0915\u0940 \u0905\u0928\u0941\u092e\u0924\u093f \u0926\u0947\u0902" + }, + "alwaysActive": { + "message": "\u0939\u092e\u0947\u0936\u093e \u0938\u0915\u094d\u0930\u093f\u092f" + }, + "alwaysShowProgressBar": { + "message": "\u0939\u092e\u0947\u0936\u093e \u092a\u094d\u0930\u0917\u0924\u093f \u092c\u093e\u0930 \u0926\u093f\u0916\u093e\u090f\u0902" + }, + "amber": { + "message": "\u0905\u0902\u092c\u0930" + }, + "analyzer": { + "message": "\u0935\u093f\u0936\u094d\u0932\u0947\u0937\u0915" + }, + "appearance": { + "message": "\u0926\u093f\u0916\u093e\u0935\u091f" + }, + "audio": { + "message": "\u0911\u0921\u093f\u092f\u094b" + }, + "audioFormats": { + "message": "\u0911\u0921\u093f\u092f\u094b \u092a\u094d\u0930\u093e\u0930\u0942\u092a" + }, + "auto": { + "message": "\u0916\u0941\u0926 \u092c \u0916\u0941\u0926" + }, + "autoFullscreen": { + "message": "\u0938\u094d\u0935\u0924: \u092a\u0942\u0930\u094d\u0923 \u0938\u094d\u0915\u094d\u0930\u0940\u0928" + }, + "autopauseWhenSwitchingTabs": { + "message": "\u091f\u0948\u092c \u0938\u094d\u0935\u093f\u091a \u0915\u0930\u0924\u0947 \u0938\u092e\u092f \u0911\u091f\u094b\u092a\u0949\u091c" + }, + "autoplay": { + "message": "\u0938\u094d\u0935\u0924: \u092a\u094d\u0932\u0947" + }, + "backupAndReset": { + "message": "\u092c\u0948\u0915\u0905\u092a \u092a\u0941\u0928\u0930\u094d\u0938\u094d\u0925\u093e\u092a\u093f\u0924 \u0915\u0930\u0928\u093e" + }, + "baseOnSystemColorScheme": { + "message": "\u0938\u093f\u0938\u094d\u091f\u092e \u0930\u0902\u0917 \u092f\u094b\u091c\u0928\u093e \u0915\u0947 \u0906\u0927\u093e\u0930 \u092a\u0930" + }, + "belowPlayer": { + "message": "\u092a\u094d\u0932\u0947\u092f\u0930 \u0915\u0947 \u0928\u0940\u091a\u0947" + }, + "black": { + "message": "\u0915\u093e\u0932\u093e" + }, + "blacklist": { + "message": "\u0915\u093e\u0932\u093e \u0938\u0942\u091a\u0940 \u092e\u0947\u0902 \u0921\u093e\u0932\u0928\u093e" + }, + "blockAll": { + "message": "\u0938\u092d\u0940 \u0915\u094b \u0905\u0935\u0930\u094b\u0927\u093f\u0924 \u0915\u0930\u0947\u0902" + }, + "blue": { + "message": "\u0928\u0940\u0932\u093e" + }, + "blueGray": { + "message": "\u0928\u0940\u0932\u093e \u0938\u094d\u0932\u0947\u091f\u0940" + }, + "bluelight": { + "message": "\u0928\u0940\u0932\u0940 \u092c\u0924\u094d\u0924\u0940" + }, + "brown": { + "message": "\u092d\u0942\u0930\u093e" + }, + "browser": { + "message": "\u092c\u094d\u0930\u093e\u0909\u091c\u093c\u0930" + }, + "browserVersion": { + "message": "\u092c\u094d\u0930\u093e\u0909\u091c\u093c\u0930 \u0938\u0902\u0938\u094d\u0915\u0930\u0923" + }, + "bubbles": { + "message": "\u092c\u0941\u0932\u092c\u0941\u0932\u0947" + }, + "bug": { + "message": "\u092c\u0917" + }, + "buttons": { + "message": "\u092c\u091f\u0928" + }, + "cancel": { + "message": "\u0930\u0926\u094d\u0926" + }, + "categories": { + "message": "\u0936\u094d\u0930\u0947\u0923\u093f\u092f\u093e\u0901" + }, + "channel": { + "message": "\u091a\u0948\u0928\u0932" + }, + "channels": { + "message": "\u091a\u0948\u0928\u0932" + }, + "clipboard": { + "message": "\u0915\u094d\u0932\u093f\u092a\u092c\u094b\u0930\u094d\u0921" + }, + "codecH264": { + "message": "\u0915\u094b\u0921\u0915 \u091c 64\u0968\u096c\u096a 64" + }, + "collapseOfSubscriptionSections": { + "message": "\u0938\u0926\u0938\u094d\u092f\u0924\u093e \u0935\u0930\u094d\u0917\u094b\u0902 \u0915\u093e \u092a\u0924\u0928" + }, + "collapsed": { + "message": "\u0938\u0902\u0915\u094d\u0937\u093f\u092a\u094d\u0924" + }, + "comments": { + "message": "\u091f\u093f\u092a\u094d\u092a\u0923\u093f\u092f\u093e\u0901" + }, + "confirmationBeforeClosing": { + "message": "\u092c\u0902\u0926 \u0915\u0930\u0928\u0947 \u0938\u0947 \u092a\u0939\u0932\u0947 \u092a\u0941\u0937\u094d\u091f\u093f" + }, + "cookies": { + "message": "\u0915\u0941\u0915\u0940\u091c\u093c" + }, + "cores": { + "message": "\u0915\u094b\u0930" + }, + "cropChapterTitles": { + "message": "\u092b\u0938\u0932 \u0905\u0927\u094d\u092f\u093e\u092f \u0915\u0947 \u0936\u0940\u0930\u094d\u0937\u0915" + }, + "customCss": { + "message": "\u0915\u0938\u094d\u091f\u092e \u0938\u0940\u090f\u0938\u090f\u0938" + }, + "customJs": { + "message": "\u0915\u0938\u094d\u091f\u092e \u091c\u0947\u090f\u0938" + }, + "customMiniPlayer": { + "message": "\u0915\u0938\u094d\u091f\u092e \u092e\u093f\u0928\u0940 \u092a\u094d\u0932\u0947\u092f\u0930" + }, + "cyan": { + "message": "\u0938\u093f\u092f\u093e\u0928" + }, + "dark": { + "message": "\u0905\u0902\u0927\u0947\u0930\u093e" + }, + "darkTheme": { + "message": "\u0921\u093e\u0930\u094d\u0915 \u0925\u0940\u092e" + }, + "dateAndTime": { + "message": "\u0926\u093f\u0928\u093e\u0902\u0915 \u0914\u0930 \u0938\u092e\u092f" + }, + "dawn": { + "message": "\u092d\u094b\u0930" + }, + "decreasePlaybackSpeed": { + "message": "\u092a\u093e\u0930\u094d\u0936\u094d\u0935 \u0917\u0924\u093f \u092e\u0947\u0902 \u0915\u092e\u0940" + }, + "decreaseVolume": { + "message": "\u0927\u094d\u0935\u0928\u093f \u0915\u092e" + }, + "deepOrange": { + "message": "\u0917\u0939\u0930\u093e \u0928\u093e\u0930\u0902\u0917\u0940" + }, + "deepPurple": { + "message": "\u0917\u0939\u0930\u093e \u092c\u0948\u0902\u0917\u0928\u0940" + }, + "defaultChannelTab": { + "message": "\u0921\u093f\u092b\u093c\u0949\u0932\u094d\u091f \u091a\u0948\u0928\u0932 \u091f\u0948\u092c" + }, + "deleteYoutubeCookies": { + "message": "\u092f\u0942\u091f\u094d\u092f\u0942\u092c \u0915\u0941\u0915\u0940\u091c\u093c \u0939\u091f\u093e\u090f\u0902" + }, + "description": { + "message": "\u0935\u093f\u0935\u0930\u0923" + }, + "desert": { + "message": "\u0930\u0947\u0917\u093f\u0938\u094d\u0924\u093e\u0928" + }, + "details": { + "message": "\u0935\u093f\u0935\u0930\u0923" + }, + "developerOptions": { + "message": "\u0921\u0947\u0935\u0932\u092a\u0930 \u0935\u093f\u0915\u0932\u094d\u092a" + }, + "device": { + "message": "\u092f\u0941\u0915\u094d\u0924\u093f" + }, + "dim": { + "message": "\u092e\u0902\u0926" + }, + "disabled": { + "message": "\u0935\u093f\u0915\u0932\u093e\u0902\u0917" + }, + "dislike": { + "message": "\u0928\u093e\u092a\u0938\u0928\u094d\u0926" + }, + "doNotChange": { + "message": "\u092e\u0924 \u092c\u0926\u0932\u094b" + }, + "donate": { + "message": "\u0926\u093e\u0928" + }, + "draggable": { + "message": "\u0916\u0940\u0902\u091a\u0928\u0947 \u092f\u094b\u0917\u094d\u092f" + }, + "email": { + "message": "\u0908\u092e\u0947\u0932" + }, + "empty": { + "message": "\u0916\u093e\u0932\u0940" + }, + "enabled": { + "message": "\u0938\u0915\u094d\u0930\u093f\u092f" + }, + "enabledForced": { + "message": "\u0938\u0915\u094d\u0930\u093f\u092f(\u092e\u091c\u092c\u0942\u0930)" + }, + "expanded": { + "message": "\u0935\u093f\u0938\u094d\u0924\u093e\u0930\u093f\u0924" + }, + "exportSettings": { + "message": "\u0928\u093f\u0930\u094d\u092f\u093e\u0924 \u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938" + }, + "extension": { + "message": "\u090f\u0915\u094d\u0938\u091f\u0947\u0902\u0936\u0928" + }, + "file": { + "message": "\u092b\u093c\u093e\u0907\u0932" + }, + "filters": { + "message": "\u092b\u093f\u0932\u094d\u091f\u0930" + }, + "fitToWindow": { + "message": "\u0938\u094d\u0915\u094d\u0930\u0940\u0928 \u092b\u093f\u091f" + }, + "flash": { + "message": "\u091a\u092e\u0915" + }, + "font": { + "message": "\u092b\u093c\u0949\u0928\u094d\u091f" + }, + "footer": { + "message": "\u092a\u093e\u0926 \u0932\u0947\u0916" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlaybackSpeed": { + "message": "\u091c\u092c\u0930\u0928 \u092a\u093e\u0930\u094d\u0936\u094d\u0935 \u0917\u0924\u093f" + }, + "forcedTheaterMode": { + "message": "\u091c\u092c\u0930\u0928 \u0925\u093f\u090f\u091f\u0930 \u092e\u094b\u0921" + }, + "forcedVolume": { + "message": "\u091c\u092c\u0930\u0928 \u0927\u094d\u0935\u0928\u093f" + }, + "foundABug": { + "message": "\u092c\u0917 \u092e\u093f\u0932\u093e?" + }, + "fullWindow": { + "message": "\u092a\u0942\u0930\u094d\u0923 \u0938\u094d\u0915\u094d\u0930\u0940\u0928" + }, + "general": { + "message": "\u0938\u093e\u092e\u093e\u0928\u094d\u092f" + }, + "github": { + "message": "\u0917\u093f\u091f\u0939\u092c" + }, + "goToSearchBox": { + "message": "\u0938\u0930\u094d\u091a \u092c\u0949\u0915\u094d\u0938 \u092a\u0930 \u091c\u093e\u090f\u0902" + }, + "gpu": { + "message": "\u091c\u0940 \u092a\u0940 \u092f\u0942" + }, + "green": { + "message": "\u0939\u0930\u093e" + }, + "hdThumbnail": { + "message": "\u090f\u091a \u0921\u0940 \u0925\u0902\u092c\u0928\u0947\u0932" + }, + "hdThumbnails": { + "message": "\u090f\u091a \u0921\u0940 \u0925\u0902\u092c\u0928\u0947\u0932" + }, + "header": { + "message": "\u0939\u0948\u0921\u0930" + }, + "hidden": { + "message": "\u091b\u093f\u092a\u093e \u0939\u0941\u0906" + }, + "hiddenOnVideoPage": { + "message": "\u0935\u0940\u0921\u093f\u092f\u094b \u092a\u0947\u091c \u092a\u0930 \u091b\u093f\u092a\u093e \u0939\u0941\u0906" + }, + "hideAnimatedThumbnails": { + "message": "\u0935\u0940\u0921\u093f\u092f\u094b \u092a\u0947\u091c \u092a\u0930 \u091b\u093f\u092a\u093e \u0939\u0941\u0906" + }, + "hideAnnotations": { + "message": "\u090f\u0928\u094b\u091f\u0947\u0936\u0928 \u091b\u0941\u092a\u093e\u090f\u0902" + }, + "hideCards": { + "message": "\u092a\u0924\u094d\u0924\u0947 \u091b\u093f\u092a\u093e\u0913" + }, + "hideDetails": { + "message": "\u091c\u093e\u0928\u0915\u093e\u0930\u0940 \u091b\u093f\u092a\u093e\u090f\u0901" + }, + "hideEndscreen": { + "message": "\u0905\u0902\u0924 \u0938\u094d\u0915\u094d\u0930\u0940\u0928 \u091b\u093f\u092a\u093e\u090f\u0901" + }, + "hideFeaturedContent": { + "message": "\u0935\u093f\u0936\u0947\u0937\u0924\u093e\u0913\u0902 \u0915\u094b \u091b\u093f\u092a\u093e\u090f\u0901" + }, + "hideFooter": { + "message": "\u092a\u093e\u0926 \u091b\u093f\u092a\u093e\u090f\u0901" + }, + "hideGradientBottom": { + "message": "\u0917\u094d\u0930\u0947\u0921\u093f\u090f\u0902\u091f \u092c\u0949\u091f\u092e \u091b\u0941\u092a\u093e\u090f\u0902" + }, + "hidePlaylist": { + "message": "\u092a\u094d\u0932\u0947\u0932\u093f\u0938\u094d\u091f \u091b\u093f\u092a\u093e\u090f\u0902" + }, + "hideRightButtons": { + "message": "\u0926\u093e\u090f\u0902 \u092c\u091f\u0928 \u091b\u0941\u092a\u093e\u090f\u0902" + }, + "hideScrollForDetails": { + "message": "\u091b\u093f\u092a\u093e\u090f\u0901 \u00ab\u0935\u093f\u0935\u0930\u0923 \u0915\u0947 \u0932\u093f\u090f \u0938\u094d\u0915\u094d\u0930\u0949\u0932\u00bb" + }, + "hideViewsCount": { + "message": "\u0935\u094d\u092f\u0942 \u0915\u093e\u0909\u0902\u091f \u091b\u093f\u092a\u093e\u090f\u0902" + }, + "history": { + "message": "\u0907\u0924\u093f\u0939\u093e\u0938" + }, + "home": { + "message": "\u0918\u0930" + }, + "hover": { + "message": "\u0939\u094b\u0935\u0930" + }, + "hoverOnVideoPage": { + "message": "\u0935\u0940\u0921\u093f\u092f\u094b \u092a\u0947\u091c \u092a\u0930 \u0939\u094b\u0935\u0930" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "\u0935\u0940\u0921\u093f\u092f\u094b \u0915\u093f\u0924\u0928\u0940 \u0926\u0947\u0930 \u092a\u0939\u0932\u0947 \u0905\u092a\u0932\u094b\u0921 \u0915\u093f\u092f\u093e \u0917\u092f\u093e \u0925\u093e" + }, + "icons": { + "message": "\u092a\u094d\u0930\u0924\u0940\u0915" + }, + "iconsOnly": { + "message": "\u0915\u0947\u0935\u0932 \u092a\u094d\u0930\u0924\u0940\u0915" + }, + "importSettings": { + "message": "\u0938\u0947\u091f\u093f\u0902\u0917 \u0906\u092f\u093e\u0924 \u0915\u0930\u0928\u093e" + }, + "improveLogo": { + "message": "\u0932\u094b\u0917\u094b \u0938\u0941\u0927\u093e\u0930\u094b" + }, + "improvedtubeIconInBrowser": { + "message": "\u092c\u094d\u0930\u093e\u0909\u091c\u093c\u0930 \u092e\u0947\u0902 \u092c\u0947\u0939\u0924\u0930 \u0906\u0907\u0915\u0928" + }, + "improvedtubeIconOnYoutube": { + "message": "\u092f\u0942\u091f\u094d\u092f\u0942\u092c \u092a\u0930 \u092c\u0947\u0939\u0924\u0930 \u0906\u0907\u0915\u0928" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube \u092d\u093e\u0937\u093e" + }, + "improvedtubeVersion": { + "message": "ImprovedTube \u0938\u0902\u0938\u094d\u0915\u0930\u0923" + }, + "increasePlaybackSpeed": { + "message": "\u092a\u094d\u0932\u0947\u092c\u0948\u0915 \u0938\u094d\u092a\u0940\u0921 \u092c\u0922\u093c\u093e\u090f\u0902" + }, + "increaseVolume": { + "message": "\u0927\u094d\u0935\u0928\u093f \u092c\u0922\u093c\u093e\u090f\u0902" + }, + "indigo": { + "message": "\u0928\u0940\u0932" + }, + "items": { + "message": "\u0906\u0907\u091f\u092e" + }, + "languages": { + "message": "\u092c\u094b\u0932\u0940" + }, + "legacyYoutube": { + "message": "\u0935\u093f\u0930\u093e\u0938\u0924 \u092f\u0942\u091f\u094d\u092f\u0942\u092c" + }, + "light": { + "message": "\u0939\u0932\u0915\u093e" + }, + "lightBlue": { + "message": "\u0939\u0932\u094d\u0915\u093e \u0928\u0940\u0932\u093e" + }, + "lightGreen": { + "message": "\u0939\u0932\u094d\u0915\u093e \u0939\u0930\u093e" + }, + "like": { + "message": "\u092a\u0938\u0902\u0926" + }, + "likes": { + "message": "\u0915\u094b \u092f\u0939 \u092a\u0938\u0902\u0926 \u0939\u0948" + }, + "lime": { + "message": "\u092a\u0940\u0932\u093e \u0939\u0930\u093e \u0930\u0902\u0917" + }, + "list": { + "message": "\u0938\u0942\u091a\u0940" + }, + "liveChat": { + "message": "\u0938\u0940\u0927\u0940 \u092c\u093e\u0924\u091a\u0940\u0924" + }, + "liveChatType": { + "message": "\u0932\u093e\u0907\u0935 \u091a\u0948\u091f \u092a\u094d\u0930\u0915\u093e\u0930" + }, + "loudnessNormalization": { + "message": "\u091c\u094b\u0930 \u0938\u0947 \u0938\u093e\u092e\u093e\u0928\u094d\u092f \u0939\u094b\u0928\u093e" + }, + "markWatchedVideos": { + "message": "\u091a\u093f\u0939\u094d\u0928\u093f\u0924 \u0935\u0940\u0921\u093f\u092f\u094b \u0926\u0947\u0916\u0947 \u0917\u090f" + }, + "mixer": { + "message": "\u092e\u093f\u0915\u094d\u0938\u0930" + }, + "myColors": { + "message": "\u092e\u0947\u0930\u0947 \u0930\u0902\u0917" + }, + "name": { + "message": "\u0928\u093e\u092e" + }, + "nativeMiniPlayer": { + "message": "\u092e\u0942\u0932 \u0928\u093f\u0935\u093e\u0938\u0940 \u092e\u093f\u0928\u0940 \u092a\u094d\u0932\u0947\u092f\u0930" + }, + "new": { + "message": "\u0928\u092f\u093e" + }, + "nextVideo": { + "message": "\u0905\u0917\u0932\u093e \u0935\u0940\u0921\u093f\u092f\u094b" + }, + "night": { + "message": "\u0930\u093e\u0924" + }, + "noActiveFeatures": { + "message": "\u0915\u094b\u0908 \u0938\u0915\u094d\u0930\u093f\u092f \u0938\u0941\u0935\u093f\u0927\u093e\u090f\u0901 \u0928\u0939\u0940\u0902" + }, + "noOpenVideoTabs": { + "message": "\u0915\u094b\u0908 \u0916\u0941\u0932\u093e \u0935\u0940\u0921\u093f\u092f\u094b \u091f\u0948\u092c \u0928\u0939\u0940\u0902" + }, + "none": { + "message": "\u0915\u094b\u0908 \u0928\u0939\u0940\u0902" + }, + "normal": { + "message": "\u0938\u093e\u0927\u093e\u0930\u0923" + }, + "old": { + "message": "\u092a\u0941\u0930\u093e\u0928\u093e" + }, + "onAllVideos": { + "message": "\u0938\u092d\u0940 \u0935\u0940\u0921\u093f\u092f\u094b \u092a\u0930" + }, + "onSubscribedChannels": { + "message": "\u0938\u0926\u0938\u094d\u092f\u0924\u093e \u092a\u094d\u0930\u093e\u092a\u094d\u0924 \u091a\u0948\u0928\u0932\u094b\u0902 \u092a\u0930" + }, + "onlyActiveOnYoutube": { + "message": "\u0915\u0947\u0935\u0932 \u092f\u0942\u091f\u094d\u092f\u0942\u092c \u092a\u0930 \u0938\u0915\u094d\u0930\u093f\u092f \u0939\u0948" + }, + "onlyOnePlayerInstancePlaying": { + "message": "\u0915\u0947\u0935\u0932 \u090f\u0915 \u092a\u094d\u0932\u0947\u092f\u0930 \u0915\u093e \u091a\u0932 \u0930\u0939\u093e \u0939\u0948" + }, + "orange": { + "message": "\u0928\u093e\u0930\u0902\u0917\u0940 \u0930\u0902\u0917" + }, + "os": { + "message": "\u0913 \u090f\u0938" + }, + "other": { + "message": "\u0905\u0928\u094d\u092f" + }, + "permissions": { + "message": "\u0905\u0928\u0941\u092e\u0924\u093f\u092f\u093e\u0902" + }, + "pictureInPicture": { + "message": "\u091a\u093f\u0924\u094d\u0930 \u092e\u0947\u0902 \u091a\u093f\u0924\u094d\u0930" + }, + "pink": { + "message": "\u0917\u0941\u0932\u093e\u092c\u0940" + }, + "plain": { + "message": "\u0938\u093e\u0926\u093e" + }, + "platform": { + "message": "\u092e\u0902\u091a" + }, + "playPause": { + "message": "\u092a\u094d\u0932\u0947 / \u0920\u0939\u0930\u093e\u0935" + }, + "playbackSpeed": { + "message": "\u092a\u094d\u0932\u0947\u092c\u0948\u0915 \u0938\u094d\u092a\u0940\u0921" + }, + "player": { + "message": "\u092a\u094d\u0932\u0947\u092f\u0930" + }, + "playerColor": { + "message": "\u092a\u094d\u0932\u0947\u092f\u0930 \u0930\u0902\u0917" + }, + "playerSize": { + "message": "\u092a\u094d\u0932\u0947\u092f\u0930 \u0906\u0915\u093e\u0930" + }, + "playlist": { + "message": "\u092a\u094d\u0932\u0947\u0932\u093f\u0938\u094d\u091f" + }, + "playlists": { + "message": "\u092a\u094d\u0932\u0947\u0932\u093f\u0938\u094d\u091f" + }, + "popupPlayer": { + "message": "\u092a\u0949\u092a \u0905\u092a \u092a\u094d\u0932\u0947\u092f\u0930" + }, + "position": { + "message": "\u0938\u094d\u0925\u093e\u0928" + }, + "pressAnyKeyOrScroll": { + "message": "\u0915\u093f\u0938\u0940 \u092d\u0940 \u0915\u0941\u0902\u091c\u0940 \u0915\u094b \u0926\u092c\u093e\u090f\u0902 \u092f\u093e \u092e\u093e\u0909\u0938 \u0935\u094d\u0939\u0940\u0932 \u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0947\u0902\u0964" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "\u0915\u093f\u0938\u0940 \u092d\u0940 \u0915\u0941\u0902\u091c\u0940 \u0915\u094b \u0926\u092c\u093e\u090f\u0902 \u092f\u093e \u092e\u093e\u0909\u0938 \u0935\u094d\u0939\u0940\u0932 \u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0947\u0902\u0964" + }, + "previousVideo": { + "message": "\u092a\u093f\u091b\u0932\u093e \u0935\u0940\u0921\u093f\u092f\u094b" + }, + "primaryColor": { + "message": "\u092a\u094d\u0930\u093e\u0925\u092e\u093f\u0915 \u0930\u0902\u0917" + }, + "purple": { + "message": "\u092c\u0948\u0902\u0917\u0928\u0940" + }, + "quality": { + "message": "\u0917\u0941\u0923\u0935\u0924\u094d\u0924\u093e" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "\u0939\u092e\u0947\u0902 \u0930\u0947\u091f\u093f\u0902\u0917 \u0926\u0947\u0902" + }, + "red": { + "message": "\u0932\u093e\u0932" + }, + "redDislikeButton": { + "message": "\u0928\u093e\u092a\u0938\u0902\u0926 \u092c\u091f\u0928 \u0932\u093e\u0932 \u0930\u0902\u0917 \u0926\u093f\u0916\u093e\u090f\u0902" + }, + "relatedVideos": { + "message": "\u0938\u0902\u092c\u0902\u0927\u093f\u0924 \u0935\u0940\u0921\u093f\u092f\u094b" + }, + "removeRelatedSearchResults": { + "message": "\u0938\u0902\u092c\u0902\u0927\u093f\u0924 \u0916\u094b\u091c \u092a\u0930\u093f\u0923\u093e\u092e \u0928\u093f\u0915\u093e\u0932\u0947\u0902" + }, + "repeat": { + "message": "\u0926\u094b\u0939\u0930\u093e\u0928\u093e" + }, + "reset": { + "message": "\u0930\u0940\u0938\u0947\u091f" + }, + "resetAllSettings": { + "message": "\u0938\u092d\u0940 \u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938 \u0915\u094b \u0930\u0940\u0938\u0947\u091f" + }, + "resetAllShortcuts": { + "message": "\u0938\u092d\u0940 \u0936\u0949\u0930\u094d\u091f\u0915\u091f \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0947\u0902" + }, + "reverse": { + "message": "\u0909\u0932\u091f\u0928\u093e" + }, + "rotate": { + "message": "\u0918\u0941\u092e\u093e\u090f\u0901" + }, + "save": { + "message": "\u0938\u0939\u0947\u091c\u0947\u0902" + }, + "saveAs": { + "message": "\u0915\u0947 \u0930\u0942\u092a \u0930\u0915\u094d\u0937\u093f\u0924 \u0915\u0930\u0947\u0902" + }, + "schedule": { + "message": "\u0905\u0928\u0941\u0938\u0942\u091a\u0940" + }, + "screen": { + "message": "\u0938\u094d\u0915\u094d\u0930\u0940\u0928" + }, + "screenshot": { + "message": "\u0938\u094d\u0915\u094d\u0930\u0940\u0928\u0936\u0949\u091f" + }, + "search": { + "message": "\u0916\u094b\u091c" + }, + "searchBarOnly": { + "message": "\u0915\u0947\u0935\u0932 \u092c\u093e\u0930 \u0916\u094b\u091c\u0947\u0902" + }, + "seekBackward10Seconds": { + "message": "\u092a\u093f\u091b\u0921\u093c\u0947 10 \u0938\u0947\u0915\u0902\u0921 \u0915\u0940 \u0924\u0932\u093e\u0936 \u0915\u0930\u0947\u0902" + }, + "seekForward10Seconds": { + "message": "\u092a\u093f\u091b\u0921\u093c\u0947 10 \u0938\u0947\u0915\u0902\u0921 \u0915\u0940 \u0924\u0932\u093e\u0936 \u0915\u0930\u0947\u0902" + }, + "settings": { + "message": "\u0938\u092e\u093e\u092f\u094b\u091c\u0928" + }, + "settingsSuccessfullyImported": { + "message": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938 \u0938\u092b\u0932\u0924\u093e\u092a\u0942\u0930\u094d\u0935\u0915 \u0906\u092f\u093e\u0924 \u0915\u0940 \u0917\u0908\u0902" + }, + "shortcuts": { + "message": "\u0936\u0949\u0930\u094d\u091f\u0915\u091f" + }, + "showCardsOnMouseHover": { + "message": "\u092e\u093e\u0909\u0938 \u0939\u094b\u0935\u0930 \u092a\u0930 \u0915\u093e\u0930\u094d\u0921 \u0926\u093f\u0916\u093e\u090f\u0902" + }, + "showChannelVideosCount": { + "message": "\u091a\u0948\u0928\u0932 \u0935\u0940\u0921\u093f\u092f\u094b \u0915\u093e\u0909\u0902\u091f \u0926\u093f\u0916\u093e\u090f\u0902" + }, + "shuffle": { + "message": "\u092e\u093f\u0936\u094d\u0930\u0923" + }, + "sidebar": { + "message": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930" + }, + "spacebar": { + "message": "\u0938\u094d\u092a\u0947\u0938 \u092c\u093e\u0930" + }, + "squaredUserImages": { + "message": "\u091a\u0941\u0915\u0924\u093e \u0909\u092a\u092f\u094b\u0917\u0915\u0930\u094d\u0924\u093e \u091a\u093f\u0924\u094d\u0930" + }, + "static": { + "message": "\u0938\u094d\u0925\u093f\u0930" + }, + "statsForNerds": { + "message": "\u0921\u0947\u0935\u0932\u092a\u0930 \u0915\u0947 \u0932\u093f\u090f \u0906\u0901\u0915\u0921\u093c\u0947 \u0926\u093f\u0916\u093e\u090f\u0901" + }, + "step": { + "message": "\u091a\u0930\u0923" + }, + "stop": { + "message": "\u0930\u0941\u0915\u0947\u0902" + }, + "style": { + "message": "\u0905\u0902\u0926\u093e\u091c" + }, + "styles": { + "message": "\u0936\u0948\u0932\u093f\u092f\u093e\u0901" + }, + "subscriptions": { + "message": "\u0938\u0926\u0938\u094d\u092f\u0924\u093e" + }, + "subtitles": { + "message": "\u0909\u092a\u0936\u0940\u0930\u094d\u0937\u0915" + }, + "sunset": { + "message": "\u0938\u0942\u0930\u094d\u092f\u093e\u0938\u094d\u0924" + }, + "sunsetToSunrise": { + "message": "\u0938\u0942\u0930\u094d\u092f\u094b\u0926\u092f \u0938\u0947 \u0938\u0942\u0930\u094d\u092f\u093e\u0938\u094d\u0924" + }, + "systemPeferenceDark": { + "message": "\u0938\u093f\u0938\u094d\u091f\u092e \u092a\u094d\u0930\u093e\u0925\u092e\u093f\u0915\u0924\u093e\u090f\u0902: \u0905\u0902\u0927\u0947\u0930\u093e" + }, + "systemPeferenceLight": { + "message": "\u0938\u093f\u0938\u094d\u091f\u092e \u0935\u0930\u0940\u092f\u0924\u093e\u090f\u0901: \u092a\u094d\u0930\u0915\u093e\u0936" + }, + "teal": { + "message": "\u091f\u0940\u0932 \u0930\u0902\u0917" + }, + "textColor": { + "message": "\u0932\u093f\u0916\u093e\u0935\u091f \u0915\u093e \u0930\u0902\u0917" + }, + "themes": { + "message": "\u0935\u093f\u0937\u092f-\u0935\u0938\u094d\u0924\u0941" + }, + "thisWillRemoveAllCookies": { + "message": "\u092f\u0939 \u0938\u092d\u0940 \u0915\u0941\u0915\u0940\u091c\u093c \u0915\u094b \u0939\u091f\u093e \u0926\u0947\u0917\u093e\u0964" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "\u092f\u0939 \u0938\u092d\u0940 \u092f\u0942\u091f\u094d\u092f\u0942\u092c \u0915\u0941\u0915\u0940\u091c\u093c \u0915\u094b \u0939\u091f\u093e \u0926\u0947\u0917\u093e\u0964" + }, + "thisWillResetAllSettings": { + "message": "\u092f\u0939 \u0938\u092d\u0940 \u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938 \u0915\u094b \u0930\u0940\u0938\u0947\u091f \u0915\u0930 \u0926\u0947\u0917\u093e\u0964" + }, + "thisWillResetAllShortcuts": { + "message": "\u092f\u0939 \u0938\u092d\u0940 \u0936\u0949\u0930\u094d\u091f\u0915\u091f \u0930\u0940\u0938\u0947\u091f \u0915\u0930 \u0926\u0947\u0917\u093e\u0964" + }, + "thumbnails": { + "message": "\u0925\u0902\u092c\u0928\u0947\u0932" + }, + "timeFrom": { + "message": "\u0938\u0947 \u0938\u092e\u092f" + }, + "timeTo": { + "message": "\u0938\u092e\u092f \u092a\u0930" + }, + "todayAt": { + "message": "\u0906\u091c \u0907\u0938 \u0938\u092e\u092f" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "\u0936\u0940\u0930\u094d\u0937 \u091a\u0948\u091f" + }, + "trailerAutoplay": { + "message": "\u091f\u094d\u0930\u0947\u0932\u0930 \u0911\u091f\u094b\u092a\u094d\u0932\u0947" + }, + "translations": { + "message": "\u0905\u0928\u0941\u0935\u093e\u0926" + }, + "transparentBackground": { + "message": "\u092a\u093e\u0930\u0926\u0930\u094d\u0936\u0940 \u092a\u0943\u0937\u094d\u0920\u092d\u0942\u092e\u093f" + }, + "trending": { + "message": "\u0930\u0941\u091d\u093e\u0928" + }, + "tryToReloadThePage": { + "message": "\u092a\u0943\u0937\u094d\u0920 \u0915\u094b \u092a\u0941\u0928\u0903 \u0932\u094b\u0921 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902" + }, + "type": { + "message": "\u091f\u093e\u0907\u092a" + }, + "upNextAutoplay": { + "message": "\u0905\u0917\u0932\u0947 \u0911\u091f\u094b\u092a\u094d\u0932\u0947 \u092a\u0930" + }, + "use24HourFormat": { + "message": "24-\u0918\u0902\u091f\u0947 \u0915\u0947 \u092a\u094d\u0930\u093e\u0930\u0942\u092a \u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0947\u0902" + }, + "version": { + "message": "\u0938\u0902\u0938\u094d\u0915\u0930\u0923" + }, + "video": { + "message": "\u0935\u0940\u0921\u093f\u092f\u094b" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "\u0936\u094d\u0930\u0947\u0923\u0940 \u0915\u093e \u0928\u093e\u092e \u092a\u094d\u0930\u093e\u092a\u094d\u0924 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0935\u0940\u0921\u093f\u092f\u094b \u0935\u093f\u0935\u0930\u0923 \u0915\u093e \u0935\u093f\u0938\u094d\u0924\u093e\u0930 \u0915\u093f\u092f\u093e \u091c\u093e\u090f\u0917\u093e\u0964" + }, + "videoFormats": { + "message": "\u0935\u0940\u0921\u093f\u092f\u094b \u092a\u094d\u0930\u093e\u0930\u0942\u092a" + }, + "videos": { + "message": "\u0935\u0940\u0921\u093f\u092f\u094b" + }, + "volume": { + "message": "\u0927\u094d\u0935\u0928\u093f" + }, + "watchLater": { + "message": "\u092c\u093e\u0926 \u092e\u0947\u0902 \u0926\u0947\u0916\u0928\u093e" + }, + "watchTime": { + "message": "\u0938\u092e\u092f \u0926\u0947\u0916\u0947\u0902" + }, + "whenTabIsChanged": { + "message": "\u091c\u092c \u091f\u0948\u092c \u092c\u0926\u0932\u093e \u091c\u093e\u0924\u093e \u0939\u0948" + }, + "white": { + "message": "\u0938\u092b\u0947\u0926" + }, + "yellow": { + "message": "\u092a\u0940\u0932\u093e" + }, + "youtubeHeaderLeft": { + "message": "\u092f\u0942\u091f\u094d\u092f\u0942\u092c \u0939\u0948\u0921\u0930 (\u092c\u093e\u090f\u0902)" + }, + "youtubeHeaderRight": { + "message": "\u092f\u0942\u091f\u094d\u092f\u0942\u092c \u0939\u0948\u0921\u0930 (\u0926\u093e\u090f\u0902)" + }, + "youtubeHomePage": { + "message": "\u092f\u0942\u091f\u094d\u092f\u0942\u092c \u0939\u094b\u092e \u092a\u0947\u091c" + }, + "youtubeLanguage": { + "message": "\u092f\u0942\u091f\u094d\u092f\u0942\u092c \u092d\u093e\u0937\u093e" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "\u092f\u0942\u091f\u094d\u092f\u0942\u092c h.264 \u0915\u094b\u0921\u0947\u0915 \u0915\u0947 \u0932\u093f\u090f \u0935\u0940\u0921\u093f\u092f\u094b \u0915\u0940 \u0917\u0941\u0923\u0935\u0924\u094d\u0924\u093e 1080 \u092a\u0940 \u0924\u0915 \u0938\u0940\u092e\u093f\u0924 \u0939\u0948" + } +} \ No newline at end of file diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 369348ffd..b8b7cc09d 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -1,830 +1,833 @@ -{ - "about": { - "message": "O" - }, - "accept": { - "message": "Prihvati" - }, - "activate": { - "message": "Aktiviraj" - }, - "activateCaptions": { - "message": "Aktiviraj naslove" - }, - "activated": { - "message": "Aktivirano" - }, - "activatedFeatures": { - "message": "Aktivirane značajke" - }, - "activateFullscreen": { - "message": "Aktiviraj puni zaslon" - }, - "activeFeatures": { - "message": "Aktivne značajke" - }, - "addScrollToTop": { - "message": "Dodaj «Pomaknite se na vrh»" - }, - "ads": { - "message": "Oglasi" - }, - "all": { - "message": "Sve" - }, - "allow": { - "message": "Dopusti" - }, - "allow60fps": { - "message": "Dopusti 60fps" - }, - "forceSDR": { - "message": "Prisilno SDR" - }, - "alwaysActive": { - "message": "Uvijek aktivan" - }, - "alwaysShowProgressBar": { - "message": "Uvijek prikaži traku napretka" - }, - "amber": { - "message": "Jantar" - }, - "analyzer": { - "message": "Analizator" - }, - "appearance": { - "message": "Izgled" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio formati" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Automatski prikaz preko cijelog zaslona" - }, - "autopauseWhenSwitchingTabs": { - "message": "Automatska pauza prilikom zamjene kartica" - }, - "autoplay": { - "message": "Auto Play" - }, - "backupAndReset": { - "message": "Sigurnosna kopija i resetiranje" - }, - "baseOnSystemColorScheme": { - "message": "Na temelju shema boja sustava" - }, - "belowPlayer": { - "message": "Ispod Playera" - }, - "black": { - "message": "Crno" - }, - "blacklist": { - "message": "Crna lista" - }, - "blockAll": { - "message": "Blokiraj sve" - }, - "blue": { - "message": "Plava" - }, - "blueGray": { - "message": "Plavo siva" - }, - "bluelight": { - "message": "Svijetlo plava" - }, - "brown": { - "message": "Smeđa" - }, - "browser": { - "message": "Preglednik" - }, - "browserVersion": { - "message": "Verzija preglednika" - }, - "bubbles": { - "message": "Mjehurići" - }, - "bug": { - "message": "Greška" - }, - "buttons": { - "message": "Gumbi" - }, - "cancel": { - "message": "Otkaži" - }, - "categories": { - "message": "Kategorije" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanali" - }, - "clipboard": { - "message": "Međuspremnik" - }, - "codecH264": { - "message": "Kodek h.264" - }, - "collapsed": { - "message": "Skupljeno" - }, - "collapseOfSubscriptionSections": { - "message": "Skupljanje pretplatničkih odjeljaka" - }, - "comments": { - "message": "Komentari" - }, - "confirmationBeforeClosing": { - "message": "Potvrda prije zatvaranja" - }, - "cookies": { - "message": "Kolačići" - }, - "cores": { - "message": "Jezgre" - }, - "cropChapterTitles": { - "message": "Izreži naslove poglavlja" - }, - "customCss": { - "message": "Prilagođeni CSS" - }, - "customJs": { - "message": "Prilagođeni JS" - }, - "customMiniPlayer": { - "message": "Prilagođeni Mini-Player" - }, - "openPopupPlayer": { - "message": "Otvorite videozapis / popis za reprodukciju u novom prozoru" - }, - "cyan": { - "message": "Cijan" - }, - "dark": { - "message": "Tamno" - }, - "darkTheme": { - "message": "Tamna tema" - }, - "dateAndTime": { - "message": "Datum & vrijeme" - }, - "dawn": { - "message": "Zora" - }, - "decreasePlaybackSpeed": { - "message": "Smanji brzinu reprodukcije" - }, - "decreaseVolume": { - "message": "Smanji glasnoću" - }, - "deepOrange": { - "message": "Duboko narančasta" - }, - "deepPurple": { - "message": "Duboko ljubičasta" - }, - "defaultChannelTab": { - "message": "Zadana kartica kanala" - }, - "deleteYoutubeCookies": { - "message": "Izbrišite YouTube kolačiće" - }, - "description": { - "message": "Opis" - }, - "desert": { - "message": "Zasluga" - }, - "details": { - "message": "Pojedinosti" - }, - "developerOptions": { - "message": "Opcije za programere" - }, - "device": { - "message": "Uređaj" - }, - "dim": { - "message": "Priguši" - }, - "disabled": { - "message": "Onemogućeno" - }, - "dislike": { - "message": "Ne sviđa mi se" - }, - "donate": { - "message": "Doniraj" - }, - "doNotChange": { - "message": "Nemoj mijenjati" - }, - "draggable": { - "message": "Povuci" - }, - "email": { - "message": "E-mail" - }, - "empty": { - "message": "Prazno" - }, - "enabled": { - "message": "Omogućeno" - }, - "enabledForced": { - "message": "Omogućeno (prisilno)" - }, - "expanded": { - "message": "Prošireno" - }, - "exportSettings": { - "message": "Izvoz postavki" - }, - "extension": { - "message": "Proširenje" - }, - "file": { - "message": "Datoteka" - }, - "filters": { - "message": "Filteri" - }, - "fitToWindow": { - "message": "Prilagodi prozoru" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Podnožje" - }, - "forcedPlaybackSpeed": { - "message": "Prisiljena brzina reprodukcije" - }, - "forcedTheaterMode": { - "message": "Prisiljen kazališni način" - }, - "forcedVolume": { - "message": "Prisiljena glasnoća" - }, - "foundABug": { - "message": "Pronašli ste grešku?" - }, - "fullWindow": { - "message": "Puni prozor" - }, - "general": { - "message": "Općenito" - }, - "geoPreference": { - "message": "Geografske preferencije" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Idite na okvir za pretraživanje" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Zelena" - }, - "hdThumbnail": { - "message": "HD sličica" - }, - "hdThumbnails": { - "message": "HD sličice" - }, - "header": { - "message": "Zaglavlje" - }, - "hidden": { - "message": "Skriven" - }, - "hiddenOnVideoPage": { - "message": "Skriveno na stranici videozapisa" - }, - "hideAnimatedThumbnails": { - "message": "Sakrij animirane sličice" - }, - "hideAnnotations": { - "message": "Sakrij napomene" - }, - "hideCards": { - "message": "Sakrij kartice" - }, - "hideControls": { - "message": "Sakrij kontrole playera" - }, - "hideDetails": { - "message": "Sakrij detalje" - }, - "hideEndscreen": { - "message": "Sakrij završni zaslon" - }, - "hideFeaturedContent": { - "message": "Sakrij istaknuti sadržaj" - }, - "hideFooter": { - "message": "Sakrij podnožje" - }, - "hideGradientBottom": { - "message": "Sakrij sjenu oko trake playera" - }, - "hidePlaylist": { - "message": "Sakrij popis za reprodukciju" - }, - "hideRightButtons": { - "message": "Sakrij desne gumbe" - }, - "hideScrollForDetails": { - "message": "Sakrij «Pomakni za detalje»" - }, - "hideThumbnailOverlay": { - "message": "Sakrij gumbe na sličicama" - }, - "hideViewsCount": { - "message": "Sakrij broj pregleda" - }, - "history": { - "message": "Povijest" - }, - "home": { - "message": "Početna" - }, - "hover": { - "message": "Pređite mišem preko" - }, - "hoverOnVideoPage": { - "message": "Zadržite pokazivač miša na stranici videozapisa" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Prije koliko je vremena video prenesen" - }, - "icons": { - "message": "Ikone" - }, - "iconsOnly": { - "message": "Samo ikone" - }, - "importSettings": { - "message": "Uvezi postavke" - }, - "improvedtubeIconInBrowser": { - "message": "Ikona ImprovedTube u pregledniku" - }, - "improvedtubeIconOnYoutube": { - "message": "Ikona ImprovedTube na YouTubeu" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube jezik" - }, - "improvedtubeVersion": { - "message": "ImprovedTube verzija" - }, - "improveLogo": { - "message": "Poboljšajte logotip" - }, - "increasePlaybackSpeed": { - "message": "Povećajte brzinu reprodukcije" - }, - "increaseVolume": { - "message": "Povećajte glasnoću" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Predmeti" - }, - "languages": { - "message": "Jezici" - }, - "legacyYoutube": { - "message": "Naslijeđeni YouTube" - }, - "light": { - "message": "Svjetlo" - }, - "lightBlue": { - "message": "Svjetlo plava" - }, - "lightGreen": { - "message": "Svjetlo zelena" - }, - "like": { - "message": "Sviđa mi se" - }, - "likes": { - "message": "Sviđaju mi se" - }, - "lime": { - "message": "Limeta" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Chat uživo" - }, - "liveChatType": { - "message": "Vrsta chata uživo" - }, - "loudnessNormalization": { - "message": "Normalizacija glasnoće" - }, - "markWatchedVideos": { - "message": "Označi pogledane videozapise" - }, - "mixer": { - "message": "Mikser" - }, - "myColors": { - "message": "Moje boje" - }, - "name": { - "message": "Naziv" - }, - "nativeMiniPlayer": { - "message": "Izvorni mini player" - }, - "new": { - "message": "Novo" - }, - "nextVideo": { - "message": "Sljedeći video" - }, - "night": { - "message": "Noć" - }, - "noActiveFeatures": { - "message": "Nema aktivnih značajki" - }, - "none": { - "message": "Nijedna" - }, - "noOpenVideoTabs": { - "message": "Nema otvorenih video kartica" - }, - "normal": { - "message": "Normalno" - }, - "old": { - "message": "Staro" - }, - "onAllVideos": { - "message": "Na svim video zapisima" - }, - "onlyActiveOnYoutube": { - "message": "Aktivno samo na YouTubeu" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Svira samo jedna instanca playera" - }, - "onSubscribedChannels": { - "message": "Na pretplaćenim kanalima" - }, - "orange": { - "message": "Narančasto" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Ostalo" - }, - "permissions": { - "message": "Dopuštenja" - }, - "pictureInPicture": { - "message": "Slika u slici" - }, - "pink": { - "message": "Ružičasto" - }, - "plain": { - "message": "Jednostavno" - }, - "platform": { - "message": "Platforma" - }, - "playbackSpeed": { - "message": "Brzina reprodukcije" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Boja playera" - }, - "playerSize": { - "message": "Veličina playera" - }, - "playlist": { - "message": "Popis za reprodukciju" - }, - "playlists": { - "message": "Popisi za reprodukciju" - }, - "playPause": { - "message": "Reprodukcija / pauza" - }, - "popupPlayer": { - "message": "Player u skočnom prozoru" - }, - "position": { - "message": "Položaj" - }, - "pressAnyKeyOrScroll": { - "message": "Pritisnite bilo koju tipku ili upotrijebite kotačić miša." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Pritisnite bilo koju tipku ili upotrijebite kotačić miša" - }, - "previousVideo": { - "message": "Prethodni videozapis" - }, - "primaryColor": { - "message": "Primarna boja" - }, - "purple": { - "message": "Ljubičasta" - }, - "quality": { - "message": "Kvaliteta" - }, - "ram": { - "message": "Radna memorija" - }, - "rateUs": { - "message": "Ocijenite nas" - }, - "red": { - "message": "Crvena" - }, - "redDislikeButton": { - "message": "Prikaži ne sviđa mi se botun u crvenoj boji" - }, - "relatedVideos": { - "message": "Slični videozapisi" - }, - "removeRelatedSearchResults": { - "message": "Uklonite slične rezultate pretraživanja" - }, - "repeat": { - "message": "Ponovi" - }, - "reset": { - "message": "Resetiraj" - }, - "resetAllSettings": { - "message": "Resetirajte sve postavke" - }, - "resetAllShortcuts": { - "message": "Resetirajte sve prečace" - }, - "reverse": { - "message": "Preokreni" - }, - "rotate": { - "message": "Rotiraj" - }, - "save": { - "message": "Sačuvaj" - }, - "saveAs": { - "message": "Sačuvaj kao" - }, - "schedule": { - "message": "Stavi na raspored" - }, - "screen": { - "message": "Zaslon" - }, - "screenshot": { - "message": "Snimka zaslona" - }, - "search": { - "message": "Pretraži" - }, - "searchBarOnly": { - "message": "Samo traka za pretraživanje" - }, - "seekBackward10Seconds": { - "message": "Traži unatrag 10 sekundi" - }, - "seekForward10Seconds": { - "message": "Traži 10 sekundi prema naprijed" - }, - "settings": { - "message": "Postavke" - }, - "settingsSuccessfullyImported": { - "message": "Postavke su uspješno uvezene" - }, - "shortcuts": { - "message": "Prečaci" - }, - "showCardsOnMouseHover": { - "message": "Pokaži kartice prilikom prelaska miša" - }, - "showChannelVideosCount": { - "message": "Prikaži broj videozapisa na kanalu" - }, - "shuffle": { - "message": "Nasumično" - }, - "sidebar": { - "message": "Bočna traka" - }, - "spacebar": { - "message": "Tipka razmaka" - }, - "squaredUserImages": { - "message": "Korisničke slike u kvadratu" - }, - "static": { - "message": "Statički" - }, - "statsForNerds": { - "message": "Prikaži statistiku za štrebere" - }, - "step": { - "message": "Korak" - }, - "stop": { - "message": "Stani" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stilovi" - }, - "subscriptions": { - "message": "Pretplate" - }, - "subtitles": { - "message": "Titlovi" - }, - "sunset": { - "message": "Zalazak sunca" - }, - "sunsetToSunrise": { - "message": "Od zalaska do izlaska sunca" - }, - "systemPeferenceDark": { - "message": "Postavke sustava: tamno" - }, - "systemPeferenceLight": { - "message": "Postavke sustava: svjetlo" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Boja teksta" - }, - "themes": { - "message": "Teme" - }, - "thisWillRemoveAllCookies": { - "message": "Ovo će ukloniti sve kolačiće." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Ovo će ukloniti sve YouTube kolačiće" - }, - "thisWillResetAllSettings": { - "message": "Ovo će resetirati sve postavke." - }, - "thisWillResetAllShortcuts": { - "message": "Ovo će resetirati sve prečace" - }, - "thumbnails": { - "message": "Sličice" - }, - "timeFrom": { - "message": "Vrijeme od" - }, - "timeTo": { - "message": "Vrijeme do" - }, - "todayAt": { - "message": "Danas u" - }, - "toggleAutoplay": { - "message": "Uključi / isključi automatsku reprodukciju" - }, - "toggleCards": { - "message": "Uključi / isključi kartice" - }, - "toggleControls": { - "message": "Uključi / isključi kontrole playera" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Automatska reprodukcija kratkog filma" - }, - "translations": { - "message": "Prijevodi" - }, - "transparentBackground": { - "message": "Prozirna pozadina" - }, - "trending": { - "message": "U trendu" - }, - "tryToReloadThePage": { - "message": "Pokušajte ponovo učitati stranicu" - }, - "type": { - "message": "Tip" - }, - "upNextAutoplay": { - "message": "Sljedeća automatska reprodukcija" - }, - "use24HourFormat": { - "message": "Koristite 24-satni format" - }, - "version": { - "message": "Verzija" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Opis videozapisa biti će proširen kako bi se dobio naziv kategorije" - }, - "videoFormats": { - "message": "Video formati" - }, - "videos": { - "message": "Videozapisi" - }, - "volume": { - "message": "Glasnoća" - }, - "watchLater": { - "message": "Gledaj kasnije" - }, - "watchTime": { - "message": "Vrijeme gledanja" - }, - "whenTabIsChanged": { - "message": "Kada se kartica promijeni" - }, - "white": { - "message": "Bijela" - }, - "yellow": { - "message": "Žuta" - }, - "youtubeHeaderLeft": { - "message": "YouTube zaglavlje (lijevo)" - }, - "youtubeHeaderRight": { - "message": "YouTube zaglavlje (desno)" - }, - "youtubeHomePage": { - "message": "YouTube početna stranica" - }, - "youtubeLanguage": { - "message": "YouTube jezik" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube ograničava kvalitetu videozapisa na 1080p za h.264 kodek" - } -} +{ + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "about": { + "message": "O" + }, + "accept": { + "message": "Prihvati" + }, + "activate": { + "message": "Aktiviraj" + }, + "activateCaptions": { + "message": "Aktiviraj naslove" + }, + "activateFullscreen": { + "message": "Aktiviraj puni zaslon" + }, + "activated": { + "message": "Aktivirano" + }, + "activatedFeatures": { + "message": "Aktivirane zna\u010dajke" + }, + "activeFeatures": { + "message": "Aktivne zna\u010dajke" + }, + "addScrollToTop": { + "message": "Dodaj \u00abPomaknite se na vrh\u00bb" + }, + "ads": { + "message": "Oglasi" + }, + "all": { + "message": "Sve" + }, + "allow": { + "message": "Dopusti" + }, + "allow60fps": { + "message": "Dopusti 60fps" + }, + "alwaysActive": { + "message": "Uvijek aktivan" + }, + "alwaysShowProgressBar": { + "message": "Uvijek prika\u017ei traku napretka" + }, + "amber": { + "message": "Jantar" + }, + "analyzer": { + "message": "Analizator" + }, + "appearance": { + "message": "Izgled" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formati" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Automatski prikaz preko cijelog zaslona" + }, + "autopauseWhenSwitchingTabs": { + "message": "Automatska pauza prilikom zamjene kartica" + }, + "autoplay": { + "message": "Auto Play" + }, + "backupAndReset": { + "message": "Sigurnosna kopija i resetiranje" + }, + "baseOnSystemColorScheme": { + "message": "Na temelju shema boja sustava" + }, + "belowPlayer": { + "message": "Ispod Playera" + }, + "black": { + "message": "Crno" + }, + "blacklist": { + "message": "Crna lista" + }, + "blockAll": { + "message": "Blokiraj sve" + }, + "blue": { + "message": "Plava" + }, + "blueGray": { + "message": "Plavo siva" + }, + "bluelight": { + "message": "Svijetlo plava" + }, + "brown": { + "message": "Sme\u0111a" + }, + "browser": { + "message": "Preglednik" + }, + "browserVersion": { + "message": "Verzija preglednika" + }, + "bubbles": { + "message": "Mjehuri\u0107i" + }, + "bug": { + "message": "Gre\u0161ka" + }, + "buttons": { + "message": "Gumbi" + }, + "cancel": { + "message": "Otka\u017ei" + }, + "categories": { + "message": "Kategorije" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanali" + }, + "clipboard": { + "message": "Me\u0111uspremnik" + }, + "codecH264": { + "message": "Kodek h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Skupljanje pretplatni\u010dkih odjeljaka" + }, + "collapsed": { + "message": "Skupljeno" + }, + "comments": { + "message": "Komentari" + }, + "confirmationBeforeClosing": { + "message": "Potvrda prije zatvaranja" + }, + "cookies": { + "message": "Kola\u010di\u0107i" + }, + "cores": { + "message": "Jezgre" + }, + "cropChapterTitles": { + "message": "Izre\u017ei naslove poglavlja" + }, + "customCss": { + "message": "Prilago\u0111eni CSS" + }, + "customJs": { + "message": "Prilago\u0111eni JS" + }, + "customMiniPlayer": { + "message": "Prilago\u0111eni Mini-Player" + }, + "cyan": { + "message": "Cijan" + }, + "dark": { + "message": "Tamno" + }, + "darkTheme": { + "message": "Tamna tema" + }, + "dateAndTime": { + "message": "Datum & vrijeme" + }, + "dawn": { + "message": "Zora" + }, + "decreasePlaybackSpeed": { + "message": "Smanji brzinu reprodukcije" + }, + "decreaseVolume": { + "message": "Smanji glasno\u0107u" + }, + "deepOrange": { + "message": "Duboko naran\u010dasta" + }, + "deepPurple": { + "message": "Duboko ljubi\u010dasta" + }, + "defaultChannelTab": { + "message": "Zadana kartica kanala" + }, + "deleteYoutubeCookies": { + "message": "Izbri\u0161ite YouTube kola\u010di\u0107e" + }, + "description": { + "message": "Opis" + }, + "desert": { + "message": "Zasluga" + }, + "details": { + "message": "Pojedinosti" + }, + "developerOptions": { + "message": "Opcije za programere" + }, + "device": { + "message": "Ure\u0111aj" + }, + "dim": { + "message": "Prigu\u0161i" + }, + "disabled": { + "message": "Onemogu\u0107eno" + }, + "dislike": { + "message": "Ne svi\u0111a mi se" + }, + "doNotChange": { + "message": "Nemoj mijenjati" + }, + "donate": { + "message": "Doniraj" + }, + "draggable": { + "message": "Povuci" + }, + "email": { + "message": "E-mail" + }, + "empty": { + "message": "Prazno" + }, + "enabled": { + "message": "Omogu\u0107eno" + }, + "enabledForced": { + "message": "Omogu\u0107eno (prisilno)" + }, + "expanded": { + "message": "Pro\u0161ireno" + }, + "exportSettings": { + "message": "Izvoz postavki" + }, + "extension": { + "message": "Pro\u0161irenje" + }, + "file": { + "message": "Datoteka" + }, + "filters": { + "message": "Filteri" + }, + "fitToWindow": { + "message": "Prilagodi prozoru" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "footer": { + "message": "Podno\u017eje" + }, + "forceSDR": { + "message": "Prisilno SDR" + }, + "forcedPlaybackSpeed": { + "message": "Prisiljena brzina reprodukcije" + }, + "forcedTheaterMode": { + "message": "Prisiljen kazali\u0161ni na\u010din" + }, + "forcedVolume": { + "message": "Prisiljena glasno\u0107a" + }, + "foundABug": { + "message": "Prona\u0161li ste gre\u0161ku?" + }, + "fullWindow": { + "message": "Puni prozor" + }, + "general": { + "message": "Op\u0107enito" + }, + "geoPreference": { + "message": "Geografske preferencije" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Idite na okvir za pretra\u017eivanje" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Zelena" + }, + "hdThumbnail": { + "message": "HD sli\u010dica" + }, + "hdThumbnails": { + "message": "HD sli\u010dice" + }, + "header": { + "message": "Zaglavlje" + }, + "hidden": { + "message": "Skriven" + }, + "hiddenOnVideoPage": { + "message": "Skriveno na stranici videozapisa" + }, + "hideAnimatedThumbnails": { + "message": "Sakrij animirane sli\u010dice" + }, + "hideAnnotations": { + "message": "Sakrij napomene" + }, + "hideCards": { + "message": "Sakrij kartice" + }, + "hideControls": { + "message": "Sakrij kontrole playera" + }, + "hideDetails": { + "message": "Sakrij detalje" + }, + "hideEndscreen": { + "message": "Sakrij zavr\u0161ni zaslon" + }, + "hideFeaturedContent": { + "message": "Sakrij istaknuti sadr\u017eaj" + }, + "hideFooter": { + "message": "Sakrij podno\u017eje" + }, + "hideGradientBottom": { + "message": "Sakrij sjenu oko trake playera" + }, + "hidePlaylist": { + "message": "Sakrij popis za reprodukciju" + }, + "hideRightButtons": { + "message": "Sakrij desne gumbe" + }, + "hideScrollForDetails": { + "message": "Sakrij \u00abPomakni za detalje\u00bb" + }, + "hideThumbnailOverlay": { + "message": "Sakrij gumbe na sli\u010dicama" + }, + "hideViewsCount": { + "message": "Sakrij broj pregleda" + }, + "history": { + "message": "Povijest" + }, + "home": { + "message": "Po\u010detna" + }, + "hover": { + "message": "Pre\u0111ite mi\u0161em preko" + }, + "hoverOnVideoPage": { + "message": "Zadr\u017eite pokaziva\u010d mi\u0161a na stranici videozapisa" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Prije koliko je vremena video prenesen" + }, + "icons": { + "message": "Ikone" + }, + "iconsOnly": { + "message": "Samo ikone" + }, + "importSettings": { + "message": "Uvezi postavke" + }, + "improveLogo": { + "message": "Pobolj\u0161ajte logotip" + }, + "improvedtubeIconInBrowser": { + "message": "Ikona ImprovedTube u pregledniku" + }, + "improvedtubeIconOnYoutube": { + "message": "Ikona ImprovedTube na YouTubeu" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube jezik" + }, + "improvedtubeVersion": { + "message": "ImprovedTube verzija" + }, + "increasePlaybackSpeed": { + "message": "Pove\u0107ajte brzinu reprodukcije" + }, + "increaseVolume": { + "message": "Pove\u0107ajte glasno\u0107u" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Predmeti" + }, + "languages": { + "message": "Jezici" + }, + "legacyYoutube": { + "message": "Naslije\u0111eni YouTube" + }, + "light": { + "message": "Svjetlo" + }, + "lightBlue": { + "message": "Svjetlo plava" + }, + "lightGreen": { + "message": "Svjetlo zelena" + }, + "like": { + "message": "Svi\u0111a mi se" + }, + "likes": { + "message": "Svi\u0111aju mi se" + }, + "lime": { + "message": "Limeta" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Chat u\u017eivo" + }, + "liveChatType": { + "message": "Vrsta chata u\u017eivo" + }, + "loudnessNormalization": { + "message": "Normalizacija glasno\u0107e" + }, + "markWatchedVideos": { + "message": "Ozna\u010di pogledane videozapise" + }, + "mixer": { + "message": "Mikser" + }, + "myColors": { + "message": "Moje boje" + }, + "name": { + "message": "Naziv" + }, + "nativeMiniPlayer": { + "message": "Izvorni mini player" + }, + "new": { + "message": "Novo" + }, + "nextVideo": { + "message": "Sljede\u0107i video" + }, + "night": { + "message": "No\u0107" + }, + "noActiveFeatures": { + "message": "Nema aktivnih zna\u010dajki" + }, + "noOpenVideoTabs": { + "message": "Nema otvorenih video kartica" + }, + "none": { + "message": "Nijedna" + }, + "normal": { + "message": "Normalno" + }, + "old": { + "message": "Staro" + }, + "onAllVideos": { + "message": "Na svim video zapisima" + }, + "onSubscribedChannels": { + "message": "Na pretpla\u0107enim kanalima" + }, + "onlyActiveOnYoutube": { + "message": "Aktivno samo na YouTubeu" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Svira samo jedna instanca playera" + }, + "openPopupPlayer": { + "message": "Otvorite videozapis / popis za reprodukciju u novom prozoru" + }, + "orange": { + "message": "Naran\u010dasto" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Ostalo" + }, + "permissions": { + "message": "Dopu\u0161tenja" + }, + "pictureInPicture": { + "message": "Slika u slici" + }, + "pink": { + "message": "Ru\u017ei\u010dasto" + }, + "plain": { + "message": "Jednostavno" + }, + "platform": { + "message": "Platforma" + }, + "playPause": { + "message": "Reprodukcija / pauza" + }, + "playbackSpeed": { + "message": "Brzina reprodukcije" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Boja playera" + }, + "playerSize": { + "message": "Veli\u010dina playera" + }, + "playlist": { + "message": "Popis za reprodukciju" + }, + "playlists": { + "message": "Popisi za reprodukciju" + }, + "popupPlayer": { + "message": "Player u sko\u010dnom prozoru" + }, + "position": { + "message": "Polo\u017eaj" + }, + "pressAnyKeyOrScroll": { + "message": "Pritisnite bilo koju tipku ili upotrijebite kota\u010di\u0107 mi\u0161a." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Pritisnite bilo koju tipku ili upotrijebite kota\u010di\u0107 mi\u0161a" + }, + "previousVideo": { + "message": "Prethodni videozapis" + }, + "primaryColor": { + "message": "Primarna boja" + }, + "purple": { + "message": "Ljubi\u010dasta" + }, + "quality": { + "message": "Kvaliteta" + }, + "ram": { + "message": "Radna memorija" + }, + "rateUs": { + "message": "Ocijenite nas" + }, + "red": { + "message": "Crvena" + }, + "redDislikeButton": { + "message": "Prika\u017ei ne svi\u0111a mi se botun u crvenoj boji" + }, + "relatedVideos": { + "message": "Sli\u010dni videozapisi" + }, + "removeRelatedSearchResults": { + "message": "Uklonite sli\u010dne rezultate pretra\u017eivanja" + }, + "repeat": { + "message": "Ponovi" + }, + "reset": { + "message": "Resetiraj" + }, + "resetAllSettings": { + "message": "Resetirajte sve postavke" + }, + "resetAllShortcuts": { + "message": "Resetirajte sve pre\u010dace" + }, + "reverse": { + "message": "Preokreni" + }, + "rotate": { + "message": "Rotiraj" + }, + "save": { + "message": "Sa\u010duvaj" + }, + "saveAs": { + "message": "Sa\u010duvaj kao" + }, + "schedule": { + "message": "Stavi na raspored" + }, + "screen": { + "message": "Zaslon" + }, + "screenshot": { + "message": "Snimka zaslona" + }, + "search": { + "message": "Pretra\u017ei" + }, + "searchBarOnly": { + "message": "Samo traka za pretra\u017eivanje" + }, + "seekBackward10Seconds": { + "message": "Tra\u017ei unatrag 10 sekundi" + }, + "seekForward10Seconds": { + "message": "Tra\u017ei 10 sekundi prema naprijed" + }, + "settings": { + "message": "Postavke" + }, + "settingsSuccessfullyImported": { + "message": "Postavke su uspje\u0161no uvezene" + }, + "shortcuts": { + "message": "Pre\u010daci" + }, + "showCardsOnMouseHover": { + "message": "Poka\u017ei kartice prilikom prelaska mi\u0161a" + }, + "showChannelVideosCount": { + "message": "Prika\u017ei broj videozapisa na kanalu" + }, + "shuffle": { + "message": "Nasumi\u010dno" + }, + "sidebar": { + "message": "Bo\u010dna traka" + }, + "spacebar": { + "message": "Tipka razmaka" + }, + "squaredUserImages": { + "message": "Korisni\u010dke slike u kvadratu" + }, + "static": { + "message": "Stati\u010dki" + }, + "statsForNerds": { + "message": "Prika\u017ei statistiku za \u0161trebere" + }, + "step": { + "message": "Korak" + }, + "stop": { + "message": "Stani" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stilovi" + }, + "subscriptions": { + "message": "Pretplate" + }, + "subtitles": { + "message": "Titlovi" + }, + "sunset": { + "message": "Zalazak sunca" + }, + "sunsetToSunrise": { + "message": "Od zalaska do izlaska sunca" + }, + "systemPeferenceDark": { + "message": "Postavke sustava: tamno" + }, + "systemPeferenceLight": { + "message": "Postavke sustava: svjetlo" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Boja teksta" + }, + "themes": { + "message": "Teme" + }, + "thisWillRemoveAllCookies": { + "message": "Ovo \u0107e ukloniti sve kola\u010di\u0107e." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Ovo \u0107e ukloniti sve YouTube kola\u010di\u0107e" + }, + "thisWillResetAllSettings": { + "message": "Ovo \u0107e resetirati sve postavke." + }, + "thisWillResetAllShortcuts": { + "message": "Ovo \u0107e resetirati sve pre\u010dace" + }, + "thumbnails": { + "message": "Sli\u010dice" + }, + "timeFrom": { + "message": "Vrijeme od" + }, + "timeTo": { + "message": "Vrijeme do" + }, + "todayAt": { + "message": "Danas u" + }, + "toggleAutoplay": { + "message": "Uklju\u010di / isklju\u010di automatsku reprodukciju" + }, + "toggleCards": { + "message": "Uklju\u010di / isklju\u010di kartice" + }, + "toggleControls": { + "message": "Uklju\u010di / isklju\u010di kontrole playera" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Automatska reprodukcija kratkog filma" + }, + "translations": { + "message": "Prijevodi" + }, + "transparentBackground": { + "message": "Prozirna pozadina" + }, + "trending": { + "message": "U trendu" + }, + "tryToReloadThePage": { + "message": "Poku\u0161ajte ponovo u\u010ditati stranicu" + }, + "type": { + "message": "Tip" + }, + "upNextAutoplay": { + "message": "Sljede\u0107a automatska reprodukcija" + }, + "use24HourFormat": { + "message": "Koristite 24-satni format" + }, + "version": { + "message": "Verzija" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Opis videozapisa biti \u0107e pro\u0161iren kako bi se dobio naziv kategorije" + }, + "videoFormats": { + "message": "Video formati" + }, + "videos": { + "message": "Videozapisi" + }, + "volume": { + "message": "Glasno\u0107a" + }, + "watchLater": { + "message": "Gledaj kasnije" + }, + "watchTime": { + "message": "Vrijeme gledanja" + }, + "whenTabIsChanged": { + "message": "Kada se kartica promijeni" + }, + "white": { + "message": "Bijela" + }, + "yellow": { + "message": "\u017duta" + }, + "youtubeHeaderLeft": { + "message": "YouTube zaglavlje (lijevo)" + }, + "youtubeHeaderRight": { + "message": "YouTube zaglavlje (desno)" + }, + "youtubeHomePage": { + "message": "YouTube po\u010detna stranica" + }, + "youtubeLanguage": { + "message": "YouTube jezik" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube ograni\u010dava kvalitetu videozapisa na 1080p za h.264 kodek" + } +} \ No newline at end of file diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 0d07cdc6d..d9625860b 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -1,6 +1,18 @@ { - "cropChapterTitles": { - "message": "Potong bagian judul " + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { "message": "Tentang" @@ -14,20 +26,20 @@ "activateCaptions": { "message": "Aktifkan keterangan" }, + "activateFullscreen": { + "message": "Aktifkan layar penuh" + }, "activated": { "message": "Diaktifkan" }, "activatedFeatures": { "message": "Fitur diaktifkan" }, - "activateFullscreen": { - "message": "Aktifkan layar penuh" - }, "activeFeatures": { "message": "Fitur yang aktif" }, "addScrollToTop": { - "message": "Tambah «Gulir ke atas»" + "message": "Tambah \u00abGulir ke atas\u00bb" }, "ads": { "message": "Tampilkan iklan" @@ -41,9 +53,6 @@ "allow60fps": { "message": "Izinkan 60fps" }, - "forceSDR": { - "message": "Force SDR" - }, "alwaysActive": { "message": "Selalu aktif" }, @@ -59,18 +68,6 @@ "appearance": { "message": "Tampilan" }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, "audio": { "message": "Suara" }, @@ -152,12 +149,12 @@ "codecH264": { "message": "Codec h.264" }, - "collapsed": { - "message": "Tutup" - }, "collapseOfSubscriptionSections": { "message": "Tutup bagian berlangganan" }, + "collapsed": { + "message": "Tutup" + }, "comments": { "message": "Komentar" }, @@ -170,12 +167,18 @@ "cores": { "message": "Inti" }, + "cropChapterTitles": { + "message": "Potong bagian judul " + }, "customCss": { "message": "Kostum CSS" }, "customJs": { "message": "Kostum JS" }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, "cyan": { "message": "Cyan" }, @@ -233,12 +236,12 @@ "dislike": { "message": "Tidak Suka" }, - "donate": { - "message": "Donasi" - }, "doNotChange": { "message": "Jangan ubah" }, + "donate": { + "message": "Donasi" + }, "draggable": { "message": "Dapat diseret" }, @@ -281,6 +284,9 @@ "footer": { "message": "Catatan kaki" }, + "forceSDR": { + "message": "Force SDR" + }, "forcedPlaybackSpeed": { "message": "Paksa kecepatan pemutaran" }, @@ -347,6 +353,9 @@ "hideFooter": { "message": "Sembunyikan catatan kaki" }, + "hideGradientBottom": { + "message": "Sembunyikan Gradient Bagian Bawah" + }, "hidePlaylist": { "message": "Sembunyikan daftar putar" }, @@ -354,7 +363,7 @@ "message": "Sembunyikan tombol kanan" }, "hideScrollForDetails": { - "message": "Sembunyikan «gulir untuk detail»" + "message": "Sembunyikan \u00abgulir untuk detail\u00bb" }, "hideViewsCount": { "message": "Sembunyikan jumlah penayangan" @@ -383,6 +392,9 @@ "importSettings": { "message": "Impor pengaturan" }, + "improveLogo": { + "message": "Tingkatkan kualitas logo" + }, "improvedtubeIconInBrowser": { "message": "Ikon ImprovedTube di peramban" }, @@ -395,9 +407,6 @@ "improvedtubeVersion": { "message": "Versi ImprovedTube" }, - "improveLogo": { - "message": "Tingkatkan kualitas logo" - }, "increasePlaybackSpeed": { "message": "Tingkatkan kecepatan pemutaran" }, @@ -449,9 +458,6 @@ "markWatchedVideos": { "message": "Tandai video yang ditonton" }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, "mixer": { "message": "Mixer" }, @@ -476,12 +482,12 @@ "noActiveFeatures": { "message": "Tidak ada fitur aktif" }, - "none": { - "message": "Tidak ada" - }, "noOpenVideoTabs": { "message": "Tidak ada tab video terbuka" }, + "none": { + "message": "Tidak ada" + }, "normal": { "message": "Normal" }, @@ -491,15 +497,15 @@ "onAllVideos": { "message": "Disetiap video" }, + "onSubscribedChannels": { + "message": "Di saluran berlangganan" + }, "onlyActiveOnYoutube": { "message": "Hanya aktif di YouTube" }, "onlyOnePlayerInstancePlaying": { "message": "Hanya mainkan satu pemutar" }, - "onSubscribedChannels": { - "message": "Di saluran berlangganan" - }, "orange": { "message": "Oranye" }, @@ -524,6 +530,9 @@ "platform": { "message": "Platform" }, + "playPause": { + "message": "Mulai / Jeda" + }, "playbackSpeed": { "message": "Kecepatan pemutar" }, @@ -542,9 +551,6 @@ "playlists": { "message": "Daftar putar" }, - "playPause": { - "message": "Mulai / Jeda" - }, "popupPlayer": { "message": "Pemutar sembulan" }, @@ -659,6 +665,9 @@ "static": { "message": "Statis" }, + "statsForNerds": { + "message": "Tampilkan statistik bagi para 'kutu buku'" + }, "step": { "message": "Langkah" }, @@ -722,6 +731,9 @@ "todayAt": { "message": "Hari ini di" }, + "toggleCards": { + "message": "Alihkan kartu" + }, "topChat": { "message": "Obrolan teratas" }, @@ -796,14 +808,5 @@ }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube membatasi kualitas video hingga 1080p untuk codec h.264" - }, - "hideGradientBottom": { - "message": "Sembunyikan Gradient Bagian Bawah" - }, - "statsForNerds": { - "message": "Tampilkan statistik bagi para 'kutu buku'" - }, - "toggleCards": { - "message": "Alihkan kartu" } -} +} \ No newline at end of file diff --git a/_locales/it/messages.json b/_locales/it/messages.json index e4b3f8183..ad3074f83 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -1,809 +1,812 @@ -{ - "about": { - "message": "Al riguardo" - }, - "accept": { - "message": "Accetta" - }, - "activate": { - "message": "Attivo/a" - }, - "activateCaptions": { - "message": "Attiva didascalie" - }, - "activated": { - "message": "Attivato/a" - }, - "activatedFeatures": { - "message": "Funzionalità attivate" - }, - "activateFullscreen": { - "message": "Attiva schermo intero" - }, - "activeFeatures": { - "message": "Funzioni disponibili" - }, - "addScrollToTop": { - "message": "Aggiungi «Scorri in cima»" - }, - "ads": { - "message": "Pubblicità" - }, - "all": { - "message": "Tutte" - }, - "allow": { - "message": "Permetti" - }, - "allow60fps": { - "message": "Permetti 60 fps" - }, - "forceSDR": { - "message": "Forza SDR" - }, - "alwaysActive": { - "message": "Sempre attivo" - }, - "alwaysShowProgressBar": { - "message": "Mostra sempre barra di avanzamento" - }, - "amber": { - "message": "Ambra" - }, - "analyzer": { - "message": "Analizzatore" - }, - "appearance": { - "message": "Aspetto" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formati audio" - }, - "auto": { - "message": "Automatico" - }, - "autoFullscreen": { - "message": "Schermo intero automatico" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausa automatica al cambio scheda" - }, - "autoplay": { - "message": "Avvio automatico" - }, - "backupAndReset": { - "message": "Backup e reimpostazione" - }, - "baseOnSystemColorScheme": { - "message": "Basato sullo schema colore di sistema" - }, - "belowPlayer": { - "message": "Sotto il lettore" - }, - "black": { - "message": "Nero" - }, - "blacklist": { - "message": "Lista nera" - }, - "blockAll": { - "message": "Blocca tutte" - }, - "blue": { - "message": "Blu" - }, - "blueGray": { - "message": "Grigio blu" - }, - "bluelight": { - "message": "Luce blu" - }, - "brown": { - "message": "Marrone" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Versione browser" - }, - "bubbles": { - "message": "Bolle" - }, - "bug": { - "message": "Difetto" - }, - "buttons": { - "message": "Pulsanti" - }, - "cancel": { - "message": "Annulla" - }, - "categories": { - "message": "Categorie" - }, - "channel": { - "message": "Canale" - }, - "channels": { - "message": "Canali" - }, - "clipboard": { - "message": "Appunti" - }, - "codecH264": { - "message": "Codec H.264" - }, - "collapsed": { - "message": "Compressa/i" - }, - "collapseOfSubscriptionSections": { - "message": "Comprimi sezioni di sottoscrizione" - }, - "comments": { - "message": "Commenti" - }, - "confirmationBeforeClosing": { - "message": "Conferma prima della chiusura" - }, - "cookies": { - "message": "Cookie" - }, - "cores": { - "message": "Core" - }, - "cropChapterTitles": { - "message": "Ritaglia titoli dei capitoli" - }, - "customCss": { - "message": "CSS personalizzato" - }, - "customJs": { - "message": "JS personalizzato" - }, - "customMiniPlayer": { - "message": "Mini lettore personalizzato" - }, - "cyan": { - "message": "Ciano" - }, - "dark": { - "message": "Scuro" - }, - "darkTheme": { - "message": "Tema scuro" - }, - "dateAndTime": { - "message": "Data e ora" - }, - "dawn": { - "message": "Albeggio" - }, - "decreasePlaybackSpeed": { - "message": "Riduci velocità di riproduzione" - }, - "decreaseVolume": { - "message": "Diminuisci volume" - }, - "deepOrange": { - "message": "Arancione intenso" - }, - "deepPurple": { - "message": "Viola intenso" - }, - "defaultChannelTab": { - "message": "Scheda predefinita" - }, - "deleteYoutubeCookies": { - "message": "Cancella cookie YouTube" - }, - "description": { - "message": "Descrizione" - }, - "desert": { - "message": "Deserto" - }, - "details": { - "message": "Dettagli" - }, - "developerOptions": { - "message": "Opzioni per sviluppatori" - }, - "device": { - "message": "Dispositivo" - }, - "dim": { - "message": "Smorzamento" - }, - "disabled": { - "message": "Disabilitato" - }, - "dislike": { - "message": "Non mi piace" - }, - "donate": { - "message": "Donazione" - }, - "doNotChange": { - "message": "Non cambiare" - }, - "draggable": { - "message": "Trascinabile" - }, - "email": { - "message": "E-mail" - }, - "empty": { - "message": "Vuota" - }, - "enabled": { - "message": "Abilitato" - }, - "enabledForced": { - "message": "Abilitato (forzato)" - }, - "expanded": { - "message": "Estesa" - }, - "exportSettings": { - "message": "Esporta impostazioni" - }, - "extension": { - "message": "Estensione" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filtri" - }, - "fitToWindow": { - "message": "Adatta alla finestra" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Piè di pagina" - }, - "forcedPlaybackSpeed": { - "message": "Velocità di riproduzione forzata" - }, - "forcedTheaterMode": { - "message": "Modalità cinema forzata" - }, - "forcedVolume": { - "message": "Volume forzato" - }, - "foundABug": { - "message": "Trovato un difetto?" - }, - "fullWindow": { - "message": "Finestra intera" - }, - "general": { - "message": "Generale" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Vai alla casella di ricerca" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura in altà qualità" - }, - "hdThumbnails": { - "message": "Miniature in alta qualità" - }, - "header": { - "message": "Intestazione" - }, - "hidden": { - "message": "Nascosta/i" - }, - "hiddenOnVideoPage": { - "message": "Nascosta nella pagina video" - }, - "hideAnimatedThumbnails": { - "message": "Nascondi miniature animate" - }, - "hideAnnotations": { - "message": "Nascondi annotazioni" - }, - "hideCards": { - "message": "Nascondi tessere di fine video" - }, - "hideDetails": { - "message": "Nascondi dettagli" - }, - "hideEndscreen": { - "message": "Nascondi finale video" - }, - "hideFeaturedContent": { - "message": "Nascondi contenuti in primo piano" - }, - "hideFooter": { - "message": "Nascondi piè di pagina" - }, - "hideGradientBottom": { - "message": "Nascondi fondo gradiente" - }, - "hidePlaylist": { - "message": "Nascondi scaletta" - }, - "hideRightButtons": { - "message": "Nascondi pulsanti sulla destra" - }, - "hideScrollForDetails": { - "message": "Nascondi «Scorri per dettagli»" - }, - "hideViewsCount": { - "message": "Nascondi contatore visualizzazioni" - }, - "history": { - "message": "Cronologia" - }, - "home": { - "message": "Pagina iniziale" - }, - "hover": { - "message": "In sospensione" - }, - "hoverOnVideoPage": { - "message": "In sospensione sulla pagine del video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Quanto tempo fa il video è stato caricato" - }, - "icons": { - "message": "Icone" - }, - "iconsOnly": { - "message": "Solo icone" - }, - "importSettings": { - "message": "Importa impostazioni" - }, - "improvedtubeIconInBrowser": { - "message": "Icona nel browser" - }, - "improvedtubeIconOnYoutube": { - "message": "Icona su YouTube" - }, - "improvedtubeLanguage": { - "message": "Lingua" - }, - "improvedtubeVersion": { - "message": "Versione" - }, - "improveLogo": { - "message": "Migliora logo YouTube" - }, - "increasePlaybackSpeed": { - "message": "Incrementa velocità di riproduzione" - }, - "increaseVolume": { - "message": "Aumenta volume" - }, - "indigo": { - "message": "Indaco" - }, - "items": { - "message": "Oggetti" - }, - "languages": { - "message": "Lingue" - }, - "legacyYoutube": { - "message": "YouTube versione legacy" - }, - "light": { - "message": "Chiaro" - }, - "lightBlue": { - "message": "Blu chiaro" - }, - "lightGreen": { - "message": "Verde chiaro" - }, - "like": { - "message": "Mi piace" - }, - "likes": { - "message": "Numero di Mi piace" - }, - "lime": { - "message": "Lime" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Chat dal vivo" - }, - "liveChatType": { - "message": "Tipologia chat dal vivo" - }, - "loudnessNormalization": { - "message": "Normalizzazione rumorosità" - }, - "markWatchedVideos": { - "message": "Contrassegna video visti" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "Miei colori" - }, - "name": { - "message": "Nome" - }, - "nativeMiniPlayer": { - "message": "Mini lettore nativo" - }, - "new": { - "message": "Nuovo" - }, - "nextVideo": { - "message": "Prossimo video" - }, - "night": { - "message": "Notte" - }, - "noActiveFeatures": { - "message": "Nessuna funzione attivata" - }, - "none": { - "message": "Alcuno/a" - }, - "noOpenVideoTabs": { - "message": "Nessuna scheda video aperta" - }, - "normal": { - "message": "Standard" - }, - "old": { - "message": "Vecchio" - }, - "onAllVideos": { - "message": "Su tutti i video" - }, - "onlyActiveOnYoutube": { - "message": "Attivo solo su YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Istanza unica di riproduzione attiva" - }, - "onSubscribedChannels": { - "message": "In canali sottoscritti" - }, - "orange": { - "message": "Arancione" - }, - "os": { - "message": "Sistema Operativo" - }, - "other": { - "message": "Altro" - }, - "permissions": { - "message": "Autorizzazioni" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Pianura" - }, - "platform": { - "message": "Piattaforma" - }, - "playbackSpeed": { - "message": "Velocità di riproduzione" - }, - "player": { - "message": "Lettore" - }, - "playerColor": { - "message": "Colore lettore" - }, - "playerSize": { - "message": "Dimensione lettore" - }, - "playlist": { - "message": "Scaletta" - }, - "playlists": { - "message": "Scalette" - }, - "playPause": { - "message": "Avvio/Pausa" - }, - "popupPlayer": { - "message": "Lettore pop-up" - }, - "position": { - "message": "Posizione" - }, - "pressAnyKeyOrScroll": { - "message": "Premere un qualunque tasto o scorrere" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Premere un qualunque tasto o usare rotella del mouse" - }, - "previousVideo": { - "message": "Video precedente" - }, - "primaryColor": { - "message": "Colore primario" - }, - "purple": { - "message": "Viola" - }, - "quality": { - "message": "Qualità" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Valutaci" - }, - "red": { - "message": "Rosso" - }, - "redDislikeButton": { - "message": "Mostra pulsante Non mi piace in rosso" - }, - "relatedVideos": { - "message": "Video correlati" - }, - "removeRelatedSearchResults": { - "message": "Rimuovi risultati di ricerca correlati" - }, - "repeat": { - "message": "Ripeti" - }, - "reset": { - "message": "Reimpostazione" - }, - "resetAllSettings": { - "message": "Reimposta tutte le impostazioni" - }, - "resetAllShortcuts": { - "message": "Reimposta tutte le scorciatoie" - }, - "reverse": { - "message": "Inverti" - }, - "rotate": { - "message": "Ruota" - }, - "save": { - "message": "Salva" - }, - "saveAs": { - "message": "Salva come" - }, - "schedule": { - "message": "Programmazione" - }, - "screen": { - "message": "Schermo" - }, - "screenshot": { - "message": "Screenshot" - }, - "search": { - "message": "Ricerca" - }, - "searchBarOnly": { - "message": "Cerca solamente nella barra" - }, - "seekBackward10Seconds": { - "message": "Muovi indietro 10 secondi" - }, - "seekForward10Seconds": { - "message": "Muovi avanti 10 secondi" - }, - "settings": { - "message": "Impostazioni" - }, - "settingsSuccessfullyImported": { - "message": "Impostazioni importate con successo" - }, - "shortcuts": { - "message": "Scorciatoie" - }, - "showCardsOnMouseHover": { - "message": "Mostra tessere di fine video al passaggio del puntatore" - }, - "showChannelVideosCount": { - "message": "Mostra contatore visualizzazioni canale" - }, - "shuffle": { - "message": "Riproduzione casuale" - }, - "sidebar": { - "message": "Barra laterale" - }, - "spacebar": { - "message": "Barra spaziatrice" - }, - "squaredUserImages": { - "message": "Immagini utenti squadrate" - }, - "static": { - "message": "Statica" - }, - "statsForNerds": { - "message": "Visualizza statistiche per nerd" - }, - "stop": { - "message": "Arresto" - }, - "style": { - "message": "Stile" - }, - "styles": { - "message": "Stili" - }, - "subscriptions": { - "message": "Sottoscrizioni" - }, - "subtitles": { - "message": "Sottotitoli" - }, - "sunset": { - "message": "Tramonto" - }, - "sunsetToSunrise": { - "message": "Dal tramonto all'alba" - }, - "systemPeferenceDark": { - "message": "Preferenza di sistema: scuro" - }, - "systemPeferenceLight": { - "message": "Preferenza di sistema: chiaro" - }, - "teal": { - "message": "Verde acqua" - }, - "textColor": { - "message": "Colore testo" - }, - "themes": { - "message": "Temi" - }, - "thisWillRemoveAllCookies": { - "message": "Questo rimuoverà tutti i cookie" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Questo rimuoverà tutti i cookie di YouTube" - }, - "thisWillResetAllSettings": { - "message": "Questo reimposterà l'intera configurazione" - }, - "thisWillResetAllShortcuts": { - "message": "Questo reimposterà tutte le scorciatoie" - }, - "thumbnails": { - "message": "Miniature" - }, - "timeFrom": { - "message": "Dalle ore" - }, - "timeTo": { - "message": "Alle ore" - }, - "todayAt": { - "message": "Oggi alle" - }, - "toggleCards": { - "message": "Dis/attiva tessere di fine video" - }, - "topChat": { - "message": "Chat superiore" - }, - "trailerAutoplay": { - "message": "Avvio automatico trailer" - }, - "translations": { - "message": "Traduzioni" - }, - "transparentBackground": { - "message": "Sfondo trasparente" - }, - "trending": { - "message": "In tendenza" - }, - "tryToReloadThePage": { - "message": "Provare a ricaricare la pagina" - }, - "type": { - "message": "Tipologia" - }, - "upNextAutoplay": { - "message": "Avvio automatico prossimo video" - }, - "use24HourFormat": { - "message": "Usa formato a 24 ore" - }, - "version": { - "message": "Numero versione" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La descrizione del video verrà espansa per ottenere il nome della categoria" - }, - "videoFormats": { - "message": "Formati video" - }, - "videos": { - "message": "Video" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Guarda più tardi" - }, - "watchTime": { - "message": "Tempo di visione" - }, - "whenTabIsChanged": { - "message": "Quando si cambia scheda" - }, - "white": { - "message": "Bianco" - }, - "yellow": { - "message": "Giallo" - }, - "youtubeHeaderLeft": { - "message": "Intestazione YouTube (sinistra)" - }, - "youtubeHeaderRight": { - "message": "Intestazione YouTube (destra)" - }, - "youtubeHomePage": { - "message": "Pagina iniziale YouTube" - }, - "youtubeLanguage": { - "message": "Lingua YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limita la qualità video a 1080p per il codec h.264" - } -} +{ + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "about": { + "message": "Al riguardo" + }, + "accept": { + "message": "Accetta" + }, + "activate": { + "message": "Attivo/a" + }, + "activateCaptions": { + "message": "Attiva didascalie" + }, + "activateFullscreen": { + "message": "Attiva schermo intero" + }, + "activated": { + "message": "Attivato/a" + }, + "activatedFeatures": { + "message": "Funzionalit\u00e0 attivate" + }, + "activeFeatures": { + "message": "Funzioni disponibili" + }, + "addScrollToTop": { + "message": "Aggiungi \u00abScorri in cima\u00bb" + }, + "ads": { + "message": "Pubblicit\u00e0" + }, + "all": { + "message": "Tutte" + }, + "allow": { + "message": "Permetti" + }, + "allow60fps": { + "message": "Permetti 60 fps" + }, + "alwaysActive": { + "message": "Sempre attivo" + }, + "alwaysShowProgressBar": { + "message": "Mostra sempre barra di avanzamento" + }, + "amber": { + "message": "Ambra" + }, + "analyzer": { + "message": "Analizzatore" + }, + "appearance": { + "message": "Aspetto" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formati audio" + }, + "auto": { + "message": "Automatico" + }, + "autoFullscreen": { + "message": "Schermo intero automatico" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausa automatica al cambio scheda" + }, + "autoplay": { + "message": "Avvio automatico" + }, + "backupAndReset": { + "message": "Backup e reimpostazione" + }, + "baseOnSystemColorScheme": { + "message": "Basato sullo schema colore di sistema" + }, + "belowPlayer": { + "message": "Sotto il lettore" + }, + "black": { + "message": "Nero" + }, + "blacklist": { + "message": "Lista nera" + }, + "blockAll": { + "message": "Blocca tutte" + }, + "blue": { + "message": "Blu" + }, + "blueGray": { + "message": "Grigio blu" + }, + "bluelight": { + "message": "Luce blu" + }, + "brown": { + "message": "Marrone" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Versione browser" + }, + "bubbles": { + "message": "Bolle" + }, + "bug": { + "message": "Difetto" + }, + "buttons": { + "message": "Pulsanti" + }, + "cancel": { + "message": "Annulla" + }, + "categories": { + "message": "Categorie" + }, + "channel": { + "message": "Canale" + }, + "channels": { + "message": "Canali" + }, + "clipboard": { + "message": "Appunti" + }, + "codecH264": { + "message": "Codec H.264" + }, + "collapseOfSubscriptionSections": { + "message": "Comprimi sezioni di sottoscrizione" + }, + "collapsed": { + "message": "Compressa/i" + }, + "comments": { + "message": "Commenti" + }, + "confirmationBeforeClosing": { + "message": "Conferma prima della chiusura" + }, + "cookies": { + "message": "Cookie" + }, + "cores": { + "message": "Core" + }, + "cropChapterTitles": { + "message": "Ritaglia titoli dei capitoli" + }, + "customCss": { + "message": "CSS personalizzato" + }, + "customJs": { + "message": "JS personalizzato" + }, + "customMiniPlayer": { + "message": "Mini lettore personalizzato" + }, + "cyan": { + "message": "Ciano" + }, + "dark": { + "message": "Scuro" + }, + "darkTheme": { + "message": "Tema scuro" + }, + "dateAndTime": { + "message": "Data e ora" + }, + "dawn": { + "message": "Albeggio" + }, + "decreasePlaybackSpeed": { + "message": "Riduci velocit\u00e0 di riproduzione" + }, + "decreaseVolume": { + "message": "Diminuisci volume" + }, + "deepOrange": { + "message": "Arancione intenso" + }, + "deepPurple": { + "message": "Viola intenso" + }, + "defaultChannelTab": { + "message": "Scheda predefinita" + }, + "deleteYoutubeCookies": { + "message": "Cancella cookie YouTube" + }, + "description": { + "message": "Descrizione" + }, + "desert": { + "message": "Deserto" + }, + "details": { + "message": "Dettagli" + }, + "developerOptions": { + "message": "Opzioni per sviluppatori" + }, + "device": { + "message": "Dispositivo" + }, + "dim": { + "message": "Smorzamento" + }, + "disabled": { + "message": "Disabilitato" + }, + "dislike": { + "message": "Non mi piace" + }, + "doNotChange": { + "message": "Non cambiare" + }, + "donate": { + "message": "Donazione" + }, + "draggable": { + "message": "Trascinabile" + }, + "email": { + "message": "E-mail" + }, + "empty": { + "message": "Vuota" + }, + "enabled": { + "message": "Abilitato" + }, + "enabledForced": { + "message": "Abilitato (forzato)" + }, + "expanded": { + "message": "Estesa" + }, + "exportSettings": { + "message": "Esporta impostazioni" + }, + "extension": { + "message": "Estensione" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filtri" + }, + "fitToWindow": { + "message": "Adatta alla finestra" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "footer": { + "message": "Pi\u00e8 di pagina" + }, + "forceSDR": { + "message": "Forza SDR" + }, + "forcedPlaybackSpeed": { + "message": "Velocit\u00e0 di riproduzione forzata" + }, + "forcedTheaterMode": { + "message": "Modalit\u00e0 cinema forzata" + }, + "forcedVolume": { + "message": "Volume forzato" + }, + "foundABug": { + "message": "Trovato un difetto?" + }, + "fullWindow": { + "message": "Finestra intera" + }, + "general": { + "message": "Generale" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Vai alla casella di ricerca" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hdThumbnail": { + "message": "Miniatura in alt\u00e0 qualit\u00e0" + }, + "hdThumbnails": { + "message": "Miniature in alta qualit\u00e0" + }, + "header": { + "message": "Intestazione" + }, + "hidden": { + "message": "Nascosta/i" + }, + "hiddenOnVideoPage": { + "message": "Nascosta nella pagina video" + }, + "hideAnimatedThumbnails": { + "message": "Nascondi miniature animate" + }, + "hideAnnotations": { + "message": "Nascondi annotazioni" + }, + "hideCards": { + "message": "Nascondi tessere di fine video" + }, + "hideDetails": { + "message": "Nascondi dettagli" + }, + "hideEndscreen": { + "message": "Nascondi finale video" + }, + "hideFeaturedContent": { + "message": "Nascondi contenuti in primo piano" + }, + "hideFooter": { + "message": "Nascondi pi\u00e8 di pagina" + }, + "hideGradientBottom": { + "message": "Nascondi fondo gradiente" + }, + "hidePlaylist": { + "message": "Nascondi scaletta" + }, + "hideRightButtons": { + "message": "Nascondi pulsanti sulla destra" + }, + "hideScrollForDetails": { + "message": "Nascondi \u00abScorri per dettagli\u00bb" + }, + "hideViewsCount": { + "message": "Nascondi contatore visualizzazioni" + }, + "history": { + "message": "Cronologia" + }, + "home": { + "message": "Pagina iniziale" + }, + "hover": { + "message": "In sospensione" + }, + "hoverOnVideoPage": { + "message": "In sospensione sulla pagine del video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Quanto tempo fa il video \u00e8 stato caricato" + }, + "icons": { + "message": "Icone" + }, + "iconsOnly": { + "message": "Solo icone" + }, + "importSettings": { + "message": "Importa impostazioni" + }, + "improveLogo": { + "message": "Migliora logo YouTube" + }, + "improvedtubeIconInBrowser": { + "message": "Icona nel browser" + }, + "improvedtubeIconOnYoutube": { + "message": "Icona su YouTube" + }, + "improvedtubeLanguage": { + "message": "Lingua" + }, + "improvedtubeVersion": { + "message": "Versione" + }, + "increasePlaybackSpeed": { + "message": "Incrementa velocit\u00e0 di riproduzione" + }, + "increaseVolume": { + "message": "Aumenta volume" + }, + "indigo": { + "message": "Indaco" + }, + "items": { + "message": "Oggetti" + }, + "languages": { + "message": "Lingue" + }, + "legacyYoutube": { + "message": "YouTube versione legacy" + }, + "light": { + "message": "Chiaro" + }, + "lightBlue": { + "message": "Blu chiaro" + }, + "lightGreen": { + "message": "Verde chiaro" + }, + "like": { + "message": "Mi piace" + }, + "likes": { + "message": "Numero di Mi piace" + }, + "lime": { + "message": "Lime" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Chat dal vivo" + }, + "liveChatType": { + "message": "Tipologia chat dal vivo" + }, + "loudnessNormalization": { + "message": "Normalizzazione rumorosit\u00e0" + }, + "markWatchedVideos": { + "message": "Contrassegna video visti" + }, + "mixer": { + "message": "Mixer" + }, + "myColors": { + "message": "Miei colori" + }, + "name": { + "message": "Nome" + }, + "nativeMiniPlayer": { + "message": "Mini lettore nativo" + }, + "new": { + "message": "Nuovo" + }, + "nextVideo": { + "message": "Prossimo video" + }, + "night": { + "message": "Notte" + }, + "noActiveFeatures": { + "message": "Nessuna funzione attivata" + }, + "noOpenVideoTabs": { + "message": "Nessuna scheda video aperta" + }, + "none": { + "message": "Alcuno/a" + }, + "normal": { + "message": "Standard" + }, + "old": { + "message": "Vecchio" + }, + "onAllVideos": { + "message": "Su tutti i video" + }, + "onSubscribedChannels": { + "message": "In canali sottoscritti" + }, + "onlyActiveOnYoutube": { + "message": "Attivo solo su YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Istanza unica di riproduzione attiva" + }, + "orange": { + "message": "Arancione" + }, + "os": { + "message": "Sistema Operativo" + }, + "other": { + "message": "Altro" + }, + "permissions": { + "message": "Autorizzazioni" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Pianura" + }, + "platform": { + "message": "Piattaforma" + }, + "playPause": { + "message": "Avvio/Pausa" + }, + "playbackSpeed": { + "message": "Velocit\u00e0 di riproduzione" + }, + "player": { + "message": "Lettore" + }, + "playerColor": { + "message": "Colore lettore" + }, + "playerSize": { + "message": "Dimensione lettore" + }, + "playlist": { + "message": "Scaletta" + }, + "playlists": { + "message": "Scalette" + }, + "popupPlayer": { + "message": "Lettore pop-up" + }, + "position": { + "message": "Posizione" + }, + "pressAnyKeyOrScroll": { + "message": "Premere un qualunque tasto o scorrere" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Premere un qualunque tasto o usare rotella del mouse" + }, + "previousVideo": { + "message": "Video precedente" + }, + "primaryColor": { + "message": "Colore primario" + }, + "purple": { + "message": "Viola" + }, + "quality": { + "message": "Qualit\u00e0" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Valutaci" + }, + "red": { + "message": "Rosso" + }, + "redDislikeButton": { + "message": "Mostra pulsante Non mi piace in rosso" + }, + "relatedVideos": { + "message": "Video correlati" + }, + "removeRelatedSearchResults": { + "message": "Rimuovi risultati di ricerca correlati" + }, + "repeat": { + "message": "Ripeti" + }, + "reset": { + "message": "Reimpostazione" + }, + "resetAllSettings": { + "message": "Reimposta tutte le impostazioni" + }, + "resetAllShortcuts": { + "message": "Reimposta tutte le scorciatoie" + }, + "reverse": { + "message": "Inverti" + }, + "rotate": { + "message": "Ruota" + }, + "save": { + "message": "Salva" + }, + "saveAs": { + "message": "Salva come" + }, + "schedule": { + "message": "Programmazione" + }, + "screen": { + "message": "Schermo" + }, + "screenshot": { + "message": "Screenshot" + }, + "search": { + "message": "Ricerca" + }, + "searchBarOnly": { + "message": "Cerca solamente nella barra" + }, + "seekBackward10Seconds": { + "message": "Muovi indietro 10 secondi" + }, + "seekForward10Seconds": { + "message": "Muovi avanti 10 secondi" + }, + "settings": { + "message": "Impostazioni" + }, + "settingsSuccessfullyImported": { + "message": "Impostazioni importate con successo" + }, + "shortcuts": { + "message": "Scorciatoie" + }, + "showCardsOnMouseHover": { + "message": "Mostra tessere di fine video al passaggio del puntatore" + }, + "showChannelVideosCount": { + "message": "Mostra contatore visualizzazioni canale" + }, + "shuffle": { + "message": "Riproduzione casuale" + }, + "sidebar": { + "message": "Barra laterale" + }, + "spacebar": { + "message": "Barra spaziatrice" + }, + "squaredUserImages": { + "message": "Immagini utenti squadrate" + }, + "static": { + "message": "Statica" + }, + "statsForNerds": { + "message": "Visualizza statistiche per nerd" + }, + "stop": { + "message": "Arresto" + }, + "style": { + "message": "Stile" + }, + "styles": { + "message": "Stili" + }, + "subscriptions": { + "message": "Sottoscrizioni" + }, + "subtitles": { + "message": "Sottotitoli" + }, + "sunset": { + "message": "Tramonto" + }, + "sunsetToSunrise": { + "message": "Dal tramonto all'alba" + }, + "systemPeferenceDark": { + "message": "Preferenza di sistema: scuro" + }, + "systemPeferenceLight": { + "message": "Preferenza di sistema: chiaro" + }, + "teal": { + "message": "Verde acqua" + }, + "textColor": { + "message": "Colore testo" + }, + "themes": { + "message": "Temi" + }, + "thisWillRemoveAllCookies": { + "message": "Questo rimuover\u00e0 tutti i cookie" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Questo rimuover\u00e0 tutti i cookie di YouTube" + }, + "thisWillResetAllSettings": { + "message": "Questo reimposter\u00e0 l'intera configurazione" + }, + "thisWillResetAllShortcuts": { + "message": "Questo reimposter\u00e0 tutte le scorciatoie" + }, + "thumbnails": { + "message": "Miniature" + }, + "timeFrom": { + "message": "Dalle ore" + }, + "timeTo": { + "message": "Alle ore" + }, + "todayAt": { + "message": "Oggi alle" + }, + "toggleCards": { + "message": "Dis/attiva tessere di fine video" + }, + "topChat": { + "message": "Chat superiore" + }, + "trailerAutoplay": { + "message": "Avvio automatico trailer" + }, + "translations": { + "message": "Traduzioni" + }, + "transparentBackground": { + "message": "Sfondo trasparente" + }, + "trending": { + "message": "In tendenza" + }, + "tryToReloadThePage": { + "message": "Provare a ricaricare la pagina" + }, + "type": { + "message": "Tipologia" + }, + "upNextAutoplay": { + "message": "Avvio automatico prossimo video" + }, + "use24HourFormat": { + "message": "Usa formato a 24 ore" + }, + "version": { + "message": "Numero versione" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "La descrizione del video verr\u00e0 espansa per ottenere il nome della categoria" + }, + "videoFormats": { + "message": "Formati video" + }, + "videos": { + "message": "Video" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Guarda pi\u00f9 tardi" + }, + "watchTime": { + "message": "Tempo di visione" + }, + "whenTabIsChanged": { + "message": "Quando si cambia scheda" + }, + "white": { + "message": "Bianco" + }, + "yellow": { + "message": "Giallo" + }, + "youtubeHeaderLeft": { + "message": "Intestazione YouTube (sinistra)" + }, + "youtubeHeaderRight": { + "message": "Intestazione YouTube (destra)" + }, + "youtubeHomePage": { + "message": "Pagina iniziale YouTube" + }, + "youtubeLanguage": { + "message": "Lingua YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limita la qualit\u00e0 video a 1080p per il codec h.264" + } +} \ No newline at end of file diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index e7c46d65a..31e6af3fb 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -1,812 +1,815 @@ { + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "about": { - "message": "このソフトについて" + "message": "\u3053\u306e\u30bd\u30d5\u30c8\u306b\u3064\u3044\u3066" }, "accept": { - "message": "了解" + "message": "\u4e86\u89e3" }, "activate": { - "message": "有効にする" + "message": "\u6709\u52b9\u306b\u3059\u308b" }, "activateCaptions": { - "message": "キャプションを有効にする" + "message": "\u30ad\u30e3\u30d7\u30b7\u30e7\u30f3\u3092\u6709\u52b9\u306b\u3059\u308b" + }, + "activateFullscreen": { + "message": "\u5168\u753b\u9762\u306b\u3059\u308b" }, "activated": { - "message": "有効化" + "message": "\u6709\u52b9\u5316" }, "activatedFeatures": { - "message": "有効化された機能" - }, - "activateFullscreen": { - "message": "全画面にする" + "message": "\u6709\u52b9\u5316\u3055\u308c\u305f\u6a5f\u80fd" }, "activeFeatures": { - "message": "機能の切り替え" + "message": "\u6a5f\u80fd\u306e\u5207\u308a\u66ff\u3048" }, "addScrollToTop": { - "message": "「一番上にスクロール」のボタンを追加する" + "message": "\u300c\u4e00\u756a\u4e0a\u306b\u30b9\u30af\u30ed\u30fc\u30eb\u300d\u306e\u30dc\u30bf\u30f3\u3092\u8ffd\u52a0\u3059\u308b" }, "ads": { - "message": "広告" + "message": "\u5e83\u544a" }, "all": { - "message": "すべて" + "message": "\u3059\u3079\u3066" }, "allow": { - "message": "許可" + "message": "\u8a31\u53ef" }, "allow60fps": { - "message": "60fpsを許可する" - }, - "forceSDR": { - "message": "Force SDR" + "message": "60fps\u3092\u8a31\u53ef\u3059\u308b" }, "alwaysActive": { - "message": "常に有効" + "message": "\u5e38\u306b\u6709\u52b9" }, "alwaysShowProgressBar": { - "message": "常にプログレスバーを表示する" + "message": "\u5e38\u306b\u30d7\u30ed\u30b0\u30ec\u30b9\u30d0\u30fc\u3092\u8868\u793a\u3059\u308b" }, "amber": { - "message": "アンバー" + "message": "\u30a2\u30f3\u30d0\u30fc" }, "analyzer": { - "message": "分析" + "message": "\u5206\u6790" }, "appearance": { - "message": "外観" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" + "message": "\u5916\u89b3" }, "audio": { - "message": "音声" + "message": "\u97f3\u58f0" }, "audioFormats": { - "message": "音声形式" + "message": "\u97f3\u58f0\u5f62\u5f0f" }, "auto": { - "message": "自動" + "message": "\u81ea\u52d5" }, "autoFullscreen": { - "message": "自動的に全画面にする" + "message": "\u81ea\u52d5\u7684\u306b\u5168\u753b\u9762\u306b\u3059\u308b" }, "autopauseWhenSwitchingTabs": { - "message": "タブ切り替えで自動的に一時停止" + "message": "\u30bf\u30d6\u5207\u308a\u66ff\u3048\u3067\u81ea\u52d5\u7684\u306b\u4e00\u6642\u505c\u6b62" }, "autoplay": { - "message": "自動再生" + "message": "\u81ea\u52d5\u518d\u751f" }, "backupAndReset": { - "message": "バックアップとリセット" + "message": "\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3068\u30ea\u30bb\u30c3\u30c8" }, "baseOnSystemColorScheme": { - "message": "システムの色に合わせる" + "message": "\u30b7\u30b9\u30c6\u30e0\u306e\u8272\u306b\u5408\u308f\u305b\u308b" }, "belowPlayer": { - "message": "プレーヤーの下" + "message": "\u30d7\u30ec\u30fc\u30e4\u30fc\u306e\u4e0b" }, "black": { - "message": "黒" + "message": "\u9ed2" }, "blacklist": { - "message": "ブラックリスト" + "message": "\u30d6\u30e9\u30c3\u30af\u30ea\u30b9\u30c8" }, "blockAll": { - "message": "すべてブロックする" + "message": "\u3059\u3079\u3066\u30d6\u30ed\u30c3\u30af\u3059\u308b" }, "blue": { - "message": "青" + "message": "\u9752" }, "blueGray": { - "message": "青みがかった灰" + "message": "\u9752\u307f\u304c\u304b\u3063\u305f\u7070" }, "bluelight": { - "message": "ブルーライト" + "message": "\u30d6\u30eb\u30fc\u30e9\u30a4\u30c8" }, "brown": { - "message": "茶" + "message": "\u8336" }, "browser": { - "message": "ブラウザー" + "message": "\u30d6\u30e9\u30a6\u30b6\u30fc" }, "browserVersion": { - "message": "ブラウザーのバージョン" + "message": "\u30d6\u30e9\u30a6\u30b6\u30fc\u306e\u30d0\u30fc\u30b8\u30e7\u30f3" }, "bubbles": { - "message": "バブル" + "message": "\u30d0\u30d6\u30eb" }, "bug": { - "message": "バグ" + "message": "\u30d0\u30b0" }, "buttons": { - "message": "ボタン" + "message": "\u30dc\u30bf\u30f3" }, "cancel": { - "message": "キャンセル" + "message": "\u30ad\u30e3\u30f3\u30bb\u30eb" }, "categories": { - "message": "カテゴリー" + "message": "\u30ab\u30c6\u30b4\u30ea\u30fc" }, "channel": { - "message": "チャンネル" + "message": "\u30c1\u30e3\u30f3\u30cd\u30eb" }, "channels": { - "message": "チャンネル" + "message": "\u30c1\u30e3\u30f3\u30cd\u30eb" }, "clipboard": { - "message": "クリップボード" + "message": "\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9" }, "codecH264": { - "message": "H.264コーデック" - }, - "collapsed": { - "message": "畳む" + "message": "H.264\u30b3\u30fc\u30c7\u30c3\u30af" }, "collapseOfSubscriptionSections": { - "message": "サブスクリプション部分を畳む" + "message": "\u30b5\u30d6\u30b9\u30af\u30ea\u30d7\u30b7\u30e7\u30f3\u90e8\u5206\u3092\u7573\u3080" + }, + "collapsed": { + "message": "\u7573\u3080" }, "comments": { - "message": "コメント" + "message": "\u30b3\u30e1\u30f3\u30c8" }, "confirmationBeforeClosing": { - "message": "閉じる前に確認する" + "message": "\u9589\u3058\u308b\u524d\u306b\u78ba\u8a8d\u3059\u308b" }, "cookies": { "message": "Cookie" }, "cores": { - "message": "コア数" + "message": "\u30b3\u30a2\u6570" }, "cropChapterTitles": { - "message": "チャプターのタイトルをトリミングする" + "message": "\u30c1\u30e3\u30d7\u30bf\u30fc\u306e\u30bf\u30a4\u30c8\u30eb\u3092\u30c8\u30ea\u30df\u30f3\u30b0\u3059\u308b" }, "customCss": { - "message": "カスタム CSS" + "message": "\u30ab\u30b9\u30bf\u30e0 CSS" }, "customJs": { - "message": "カスタム JS" + "message": "\u30ab\u30b9\u30bf\u30e0 JS" }, "customMiniPlayer": { - "message": "カスタムミニプレーヤー" + "message": "\u30ab\u30b9\u30bf\u30e0\u30df\u30cb\u30d7\u30ec\u30fc\u30e4\u30fc" }, "cyan": { - "message": "シアン" + "message": "\u30b7\u30a2\u30f3" }, "dark": { - "message": "ダーク" + "message": "\u30c0\u30fc\u30af" }, "darkTheme": { - "message": "ダークテーマ" + "message": "\u30c0\u30fc\u30af\u30c6\u30fc\u30de" }, "dateAndTime": { - "message": "日付と時刻" + "message": "\u65e5\u4ed8\u3068\u6642\u523b" }, "dawn": { - "message": "夜明け" + "message": "\u591c\u660e\u3051" }, "decreasePlaybackSpeed": { - "message": "再生速度を下げる" + "message": "\u518d\u751f\u901f\u5ea6\u3092\u4e0b\u3052\u308b" }, "decreaseVolume": { - "message": "音量を下げる" + "message": "\u97f3\u91cf\u3092\u4e0b\u3052\u308b" }, "deepOrange": { - "message": "深いオレンジ" + "message": "\u6df1\u3044\u30aa\u30ec\u30f3\u30b8" }, "deepPurple": { - "message": "深い紫" + "message": "\u6df1\u3044\u7d2b" }, "defaultChannelTab": { - "message": "デフォルトのチャンネルタブ" + "message": "\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30c1\u30e3\u30f3\u30cd\u30eb\u30bf\u30d6" }, "deleteYoutubeCookies": { - "message": "YouTube の Cookie を削除する" + "message": "YouTube \u306e Cookie \u3092\u524a\u9664\u3059\u308b" }, "description": { - "message": "説明" + "message": "\u8aac\u660e" }, "desert": { - "message": "砂漠" + "message": "\u7802\u6f20" }, "details": { - "message": "詳細" + "message": "\u8a73\u7d30" }, "developerOptions": { - "message": "開発者向けオプション" + "message": "\u958b\u767a\u8005\u5411\u3051\u30aa\u30d7\u30b7\u30e7\u30f3" }, "device": { - "message": "デバイス" + "message": "\u30c7\u30d0\u30a4\u30b9" }, "dim": { - "message": "暗さ" + "message": "\u6697\u3055" }, "disabled": { - "message": "無効" + "message": "\u7121\u52b9" }, "dislike": { - "message": "低評価" - }, - "donate": { - "message": "寄付する" + "message": "\u4f4e\u8a55\u4fa1" }, "doNotChange": { - "message": "変更しない" + "message": "\u5909\u66f4\u3057\u306a\u3044" + }, + "donate": { + "message": "\u5bc4\u4ed8\u3059\u308b" }, "draggable": { - "message": "ドラッグ可能にする" + "message": "\u30c9\u30e9\u30c3\u30b0\u53ef\u80fd\u306b\u3059\u308b" }, "email": { "message": "Email" }, "empty": { - "message": "なし" + "message": "\u306a\u3057" }, "enabled": { - "message": "有効" + "message": "\u6709\u52b9" }, "enabledForced": { - "message": "有効 (強制)" + "message": "\u6709\u52b9 (\u5f37\u5236)" }, "expanded": { - "message": "広げる" + "message": "\u5e83\u3052\u308b" }, "exportSettings": { - "message": "設定をエクスポートする" + "message": "\u8a2d\u5b9a\u3092\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3059\u308b" }, "extension": { - "message": "拡張" + "message": "\u62e1\u5f35" }, "file": { - "message": "ファイル" + "message": "\u30d5\u30a1\u30a4\u30eb" }, "filters": { - "message": "フィルター" + "message": "\u30d5\u30a3\u30eb\u30bf\u30fc" }, "fitToWindow": { - "message": "ウィンドウに合わせる" + "message": "\u30a6\u30a3\u30f3\u30c9\u30a6\u306b\u5408\u308f\u305b\u308b" }, "flash": { "message": "Flash" }, "font": { - "message": "フォント" + "message": "\u30d5\u30a9\u30f3\u30c8" }, "footer": { - "message": "フッター" + "message": "\u30d5\u30c3\u30bf\u30fc" + }, + "forceSDR": { + "message": "Force SDR" }, "forcedPlaybackSpeed": { - "message": "再生速度を指定する" + "message": "\u518d\u751f\u901f\u5ea6\u3092\u6307\u5b9a\u3059\u308b" }, "forcedTheaterMode": { - "message": "シアターモードにする" + "message": "\u30b7\u30a2\u30bf\u30fc\u30e2\u30fc\u30c9\u306b\u3059\u308b" }, "forcedVolume": { - "message": "音量を指定する" + "message": "\u97f3\u91cf\u3092\u6307\u5b9a\u3059\u308b" }, "foundABug": { - "message": "バグ報告" + "message": "\u30d0\u30b0\u5831\u544a" }, "fullWindow": { - "message": "フルウィンドウ" + "message": "\u30d5\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6" }, "general": { - "message": "一般" + "message": "\u4e00\u822c" }, "github": { "message": "GitHub" }, "goToSearchBox": { - "message": "検索ボックスに行く" + "message": "\u691c\u7d22\u30dc\u30c3\u30af\u30b9\u306b\u884c\u304f" }, "gpu": { "message": "GPU" }, "green": { - "message": "緑" + "message": "\u7dd1" }, "hdThumbnail": { - "message": "HDサムネイル" + "message": "HD\u30b5\u30e0\u30cd\u30a4\u30eb" }, "hdThumbnails": { - "message": "HDサムネイル" + "message": "HD\u30b5\u30e0\u30cd\u30a4\u30eb" }, "header": { - "message": "ヘッダー" + "message": "\u30d8\u30c3\u30c0\u30fc" }, "hidden": { - "message": "隠す" + "message": "\u96a0\u3059" }, "hiddenOnVideoPage": { - "message": "動画ページでは隠す" + "message": "\u52d5\u753b\u30da\u30fc\u30b8\u3067\u306f\u96a0\u3059" }, "hideAnimatedThumbnails": { - "message": "サムネイルのアニメーションを行わない" + "message": "\u30b5\u30e0\u30cd\u30a4\u30eb\u306e\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u3092\u884c\u308f\u306a\u3044" }, "hideAnnotations": { - "message": "アノテーションを隠す" + "message": "\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u3092\u96a0\u3059" }, "hideCards": { - "message": "カードを隠す" + "message": "\u30ab\u30fc\u30c9\u3092\u96a0\u3059" }, "hideDetails": { - "message": "詳細を隠す" + "message": "\u8a73\u7d30\u3092\u96a0\u3059" }, "hideEndscreen": { - "message": "再生終了時の画面を隠す" + "message": "\u518d\u751f\u7d42\u4e86\u6642\u306e\u753b\u9762\u3092\u96a0\u3059" }, "hideFeaturedContent": { - "message": "おすすめチャンネルを非表示にする" + "message": "\u304a\u3059\u3059\u3081\u30c1\u30e3\u30f3\u30cd\u30eb\u3092\u975e\u8868\u793a\u306b\u3059\u308b" }, "hideFooter": { - "message": "フッターを隠す" + "message": "\u30d5\u30c3\u30bf\u30fc\u3092\u96a0\u3059" }, "hideGradientBottom": { - "message": "グラデーションの下部を隠す" + "message": "\u30b0\u30e9\u30c7\u30fc\u30b7\u30e7\u30f3\u306e\u4e0b\u90e8\u3092\u96a0\u3059" }, "hidePlaylist": { - "message": "再生リストを隠す" + "message": "\u518d\u751f\u30ea\u30b9\u30c8\u3092\u96a0\u3059" }, "hideRightButtons": { - "message": "右ボタンを隠す" + "message": "\u53f3\u30dc\u30bf\u30f3\u3092\u96a0\u3059" }, "hideScrollForDetails": { - "message": "「スクロールして詳細を表示」を隠す" + "message": "\u300c\u30b9\u30af\u30ed\u30fc\u30eb\u3057\u3066\u8a73\u7d30\u3092\u8868\u793a\u300d\u3092\u96a0\u3059" }, "hideViewsCount": { - "message": "視聴数を隠す" + "message": "\u8996\u8074\u6570\u3092\u96a0\u3059" }, "history": { - "message": "履歴" + "message": "\u5c65\u6b74" }, "home": { - "message": "ホーム" + "message": "\u30db\u30fc\u30e0" }, "hover": { - "message": "ホバー" + "message": "\u30db\u30d0\u30fc" }, "hoverOnVideoPage": { - "message": "動画ページではホバー" + "message": "\u52d5\u753b\u30da\u30fc\u30b8\u3067\u306f\u30db\u30d0\u30fc" }, "howLongAgoTheVideoWasUploaded": { - "message": "動画がアップロードされてからの時間" + "message": "\u52d5\u753b\u304c\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3055\u308c\u3066\u304b\u3089\u306e\u6642\u9593" }, "icons": { - "message": "アイコン" + "message": "\u30a2\u30a4\u30b3\u30f3" }, "iconsOnly": { - "message": "アイコンのみ" + "message": "\u30a2\u30a4\u30b3\u30f3\u306e\u307f" }, "importSettings": { - "message": "設定をインポートする" + "message": "\u8a2d\u5b9a\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b" + }, + "improveLogo": { + "message": "\u30ed\u30b4\u3092\u6539\u826f\u3059\u308b" }, "improvedtubeIconInBrowser": { - "message": "ImprovedTubeアイコンをブラウザに表示する" + "message": "ImprovedTube\u30a2\u30a4\u30b3\u30f3\u3092\u30d6\u30e9\u30a6\u30b6\u306b\u8868\u793a\u3059\u308b" }, "improvedtubeIconOnYoutube": { - "message": "ImprovedTubeアイコンをYouTubeに表示する" + "message": "ImprovedTube\u30a2\u30a4\u30b3\u30f3\u3092YouTube\u306b\u8868\u793a\u3059\u308b" }, "improvedtubeLanguage": { - "message": "ImprovedTube の言語" + "message": "ImprovedTube \u306e\u8a00\u8a9e" }, "improvedtubeVersion": { - "message": "ImprovedTube のバージョン" - }, - "improveLogo": { - "message": "ロゴを改良する" + "message": "ImprovedTube \u306e\u30d0\u30fc\u30b8\u30e7\u30f3" }, "increasePlaybackSpeed": { - "message": "再生速度を上げる" + "message": "\u518d\u751f\u901f\u5ea6\u3092\u4e0a\u3052\u308b" }, "increaseVolume": { - "message": "音量を上げる" + "message": "\u97f3\u91cf\u3092\u4e0a\u3052\u308b" }, "indigo": { - "message": "インディゴ" + "message": "\u30a4\u30f3\u30c7\u30a3\u30b4" }, "items": { - "message": "アイテム" + "message": "\u30a2\u30a4\u30c6\u30e0" }, "languages": { - "message": "言語" + "message": "\u8a00\u8a9e" }, "legacyYoutube": { - "message": "古い YouTube にする" + "message": "\u53e4\u3044 YouTube \u306b\u3059\u308b" }, "light": { - "message": "ライト" + "message": "\u30e9\u30a4\u30c8" }, "lightBlue": { - "message": "薄い青" + "message": "\u8584\u3044\u9752" }, "lightGreen": { - "message": "薄い緑" + "message": "\u8584\u3044\u7dd1" }, "like": { - "message": "高評価" + "message": "\u9ad8\u8a55\u4fa1" }, "likes": { - "message": "評価" + "message": "\u8a55\u4fa1" }, "lime": { - "message": "ライム" + "message": "\u30e9\u30a4\u30e0" }, "list": { - "message": "リスト" + "message": "\u30ea\u30b9\u30c8" }, "liveChat": { - "message": "ライブチャット" + "message": "\u30e9\u30a4\u30d6\u30c1\u30e3\u30c3\u30c8" }, "liveChatType": { - "message": "ライブチャットの種類" + "message": "\u30e9\u30a4\u30d6\u30c1\u30e3\u30c3\u30c8\u306e\u7a2e\u985e" }, "loudnessNormalization": { - "message": "音量のノーマリゼーション" + "message": "\u97f3\u91cf\u306e\u30ce\u30fc\u30de\u30ea\u30bc\u30fc\u30b7\u30e7\u30f3" }, "markWatchedVideos": { - "message": "視聴した動画にマークを付ける" + "message": "\u8996\u8074\u3057\u305f\u52d5\u753b\u306b\u30de\u30fc\u30af\u3092\u4ed8\u3051\u308b" }, "mixer": { - "message": "ミキサー" + "message": "\u30df\u30ad\u30b5\u30fc" }, "myColors": { - "message": "色設定" + "message": "\u8272\u8a2d\u5b9a" }, "name": { - "message": "名前" + "message": "\u540d\u524d" }, "nativeMiniPlayer": { - "message": "ネイティブミニプレーヤー" + "message": "\u30cd\u30a4\u30c6\u30a3\u30d6\u30df\u30cb\u30d7\u30ec\u30fc\u30e4\u30fc" }, "new": { - "message": "新規" + "message": "\u65b0\u898f" }, "nextVideo": { - "message": "次の動画" + "message": "\u6b21\u306e\u52d5\u753b" }, "night": { - "message": "夜" + "message": "\u591c" }, "noActiveFeatures": { - "message": "有効化された機能がありません" - }, - "none": { - "message": "なし" + "message": "\u6709\u52b9\u5316\u3055\u308c\u305f\u6a5f\u80fd\u304c\u3042\u308a\u307e\u305b\u3093" }, "noOpenVideoTabs": { - "message": "開いている動画タブがありません" + "message": "\u958b\u3044\u3066\u3044\u308b\u52d5\u753b\u30bf\u30d6\u304c\u3042\u308a\u307e\u305b\u3093" + }, + "none": { + "message": "\u306a\u3057" }, "normal": { - "message": "標準" + "message": "\u6a19\u6e96" }, "old": { "message": "Old" }, "onAllVideos": { - "message": "すべて許可する" + "message": "\u3059\u3079\u3066\u8a31\u53ef\u3059\u308b" + }, + "onSubscribedChannels": { + "message": "\u767b\u9332\u3057\u305f\u30c1\u30e3\u30f3\u30cd\u30eb\u3067\u306f\u8a31\u53ef\u3059\u308b" }, "onlyActiveOnYoutube": { - "message": "YouTube で有効" + "message": "YouTube \u3067\u6709\u52b9" }, "onlyOnePlayerInstancePlaying": { - "message": "1つのプレーヤーインスタンスのみにする" - }, - "onSubscribedChannels": { - "message": "登録したチャンネルでは許可する" + "message": "1\u3064\u306e\u30d7\u30ec\u30fc\u30e4\u30fc\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u307f\u306b\u3059\u308b" }, "orange": { - "message": "オレンジ" + "message": "\u30aa\u30ec\u30f3\u30b8" }, "os": { "message": "OS" }, "other": { - "message": "その他" + "message": "\u305d\u306e\u4ed6" }, "permissions": { - "message": "権限" + "message": "\u6a29\u9650" }, "pictureInPicture": { - "message": "ピクチャーインピクチャー" + "message": "\u30d4\u30af\u30c1\u30e3\u30fc\u30a4\u30f3\u30d4\u30af\u30c1\u30e3\u30fc" }, "pink": { - "message": "ピンク" + "message": "\u30d4\u30f3\u30af" }, "plain": { - "message": "プレーン" + "message": "\u30d7\u30ec\u30fc\u30f3" }, "platform": { - "message": "プラットフォーム" + "message": "\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0" + }, + "playPause": { + "message": "\u518d\u751f/\u4e00\u6642\u505c\u6b62" }, "playbackSpeed": { - "message": "再生速度" + "message": "\u518d\u751f\u901f\u5ea6" }, "player": { - "message": "プレーヤー" + "message": "\u30d7\u30ec\u30fc\u30e4\u30fc" }, "playerColor": { - "message": "プレーヤーの色" + "message": "\u30d7\u30ec\u30fc\u30e4\u30fc\u306e\u8272" }, "playerSize": { - "message": "プレーヤーのサイズ" + "message": "\u30d7\u30ec\u30fc\u30e4\u30fc\u306e\u30b5\u30a4\u30ba" }, "playlist": { - "message": "再生リスト" + "message": "\u518d\u751f\u30ea\u30b9\u30c8" }, "playlists": { - "message": "再生リスト" - }, - "playPause": { - "message": "再生/一時停止" + "message": "\u518d\u751f\u30ea\u30b9\u30c8" }, "popupPlayer": { - "message": "ポップアッププレーヤー" + "message": "\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u30d7\u30ec\u30fc\u30e4\u30fc" }, "position": { - "message": "位置" + "message": "\u4f4d\u7f6e" }, "pressAnyKeyOrScroll": { - "message": "任意のキーを押すか、マウスホイールを使用してください" + "message": "\u4efb\u610f\u306e\u30ad\u30fc\u3092\u62bc\u3059\u304b\u3001\u30de\u30a6\u30b9\u30db\u30a4\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044" }, "pressAnyKeyOrUseMouseWheel": { - "message": "任意のキーを押すか、マウスホイールを使用してください" + "message": "\u4efb\u610f\u306e\u30ad\u30fc\u3092\u62bc\u3059\u304b\u3001\u30de\u30a6\u30b9\u30db\u30a4\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044" }, "previousVideo": { - "message": "前の動画" + "message": "\u524d\u306e\u52d5\u753b" }, "primaryColor": { - "message": "全体の色" + "message": "\u5168\u4f53\u306e\u8272" }, "purple": { - "message": "紫" + "message": "\u7d2b" }, "quality": { - "message": "画質" + "message": "\u753b\u8cea" }, "ram": { "message": "RAM" }, "rateUs": { - "message": "評価する" + "message": "\u8a55\u4fa1\u3059\u308b" }, "red": { - "message": "赤" + "message": "\u8d64" }, "redDislikeButton": { - "message": "低評価ボタンを赤色で表示する" + "message": "\u4f4e\u8a55\u4fa1\u30dc\u30bf\u30f3\u3092\u8d64\u8272\u3067\u8868\u793a\u3059\u308b" }, "relatedVideos": { - "message": "関連動画" + "message": "\u95a2\u9023\u52d5\u753b" }, "removeRelatedSearchResults": { - "message": "関連動画を検索結果から削除する" + "message": "\u95a2\u9023\u52d5\u753b\u3092\u691c\u7d22\u7d50\u679c\u304b\u3089\u524a\u9664\u3059\u308b" }, "repeat": { - "message": "リピート" + "message": "\u30ea\u30d4\u30fc\u30c8" }, "reset": { - "message": "リセット" + "message": "\u30ea\u30bb\u30c3\u30c8" }, "resetAllSettings": { - "message": "すべての設定をリセットする" + "message": "\u3059\u3079\u3066\u306e\u8a2d\u5b9a\u3092\u30ea\u30bb\u30c3\u30c8\u3059\u308b" }, "resetAllShortcuts": { - "message": "すべてのショートカットをリセットする" + "message": "\u3059\u3079\u3066\u306e\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3092\u30ea\u30bb\u30c3\u30c8\u3059\u308b" }, "reverse": { - "message": "逆順にする" + "message": "\u9006\u9806\u306b\u3059\u308b" }, "rotate": { - "message": "回転" + "message": "\u56de\u8ee2" }, "save": { - "message": "保存" + "message": "\u4fdd\u5b58" }, "saveAs": { - "message": "別名で保存する" + "message": "\u5225\u540d\u3067\u4fdd\u5b58\u3059\u308b" }, "schedule": { - "message": "スケジュール" + "message": "\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb" }, "screen": { - "message": "スクリーン" + "message": "\u30b9\u30af\u30ea\u30fc\u30f3" }, "screenshot": { - "message": "スクリーンショット" + "message": "\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8" }, "search": { - "message": "検索" + "message": "\u691c\u7d22" }, "searchBarOnly": { - "message": "検索バーのみ" + "message": "\u691c\u7d22\u30d0\u30fc\u306e\u307f" }, "seekBackward10Seconds": { - "message": "10秒戻る" + "message": "10\u79d2\u623b\u308b" }, "seekForward10Seconds": { - "message": "10秒進む" + "message": "10\u79d2\u9032\u3080" }, "settings": { - "message": "設定" + "message": "\u8a2d\u5b9a" }, "settingsSuccessfullyImported": { - "message": "設定を正常にインポートしました" + "message": "\u8a2d\u5b9a\u3092\u6b63\u5e38\u306b\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u307e\u3057\u305f" }, "shortcuts": { - "message": "ショートカット" + "message": "\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8" }, "showCardsOnMouseHover": { - "message": "マウスオーバーでカードを表示する" + "message": "\u30de\u30a6\u30b9\u30aa\u30fc\u30d0\u30fc\u3067\u30ab\u30fc\u30c9\u3092\u8868\u793a\u3059\u308b" }, "showChannelVideosCount": { - "message": "チャンネルの動画数を表示する" + "message": "\u30c1\u30e3\u30f3\u30cd\u30eb\u306e\u52d5\u753b\u6570\u3092\u8868\u793a\u3059\u308b" }, "shuffle": { - "message": "シャッフル" + "message": "\u30b7\u30e3\u30c3\u30d5\u30eb" }, "sidebar": { - "message": "サイドバー" + "message": "\u30b5\u30a4\u30c9\u30d0\u30fc" }, "spacebar": { - "message": "スペースキー" + "message": "\u30b9\u30da\u30fc\u30b9\u30ad\u30fc" }, "squaredUserImages": { - "message": "ユーザー画像を四角にする" + "message": "\u30e6\u30fc\u30b6\u30fc\u753b\u50cf\u3092\u56db\u89d2\u306b\u3059\u308b" }, "static": { - "message": "スタティック" + "message": "\u30b9\u30bf\u30c6\u30a3\u30c3\u30af" }, "statsForNerds": { "message": "Show Stats for Nerds" }, "step": { - "message": "ステップ" + "message": "\u30b9\u30c6\u30c3\u30d7" }, "stop": { - "message": "停止" + "message": "\u505c\u6b62" }, "style": { - "message": "スタイル" + "message": "\u30b9\u30bf\u30a4\u30eb" }, "styles": { - "message": "スタイル" + "message": "\u30b9\u30bf\u30a4\u30eb" }, "subscriptions": { - "message": "登録チャンネル" + "message": "\u767b\u9332\u30c1\u30e3\u30f3\u30cd\u30eb" }, "subtitles": { - "message": "サブタイトル" + "message": "\u30b5\u30d6\u30bf\u30a4\u30c8\u30eb" }, "sunset": { - "message": "夕焼け" + "message": "\u5915\u713c\u3051" }, "sunsetToSunrise": { - "message": "夕焼けから日の出へ" + "message": "\u5915\u713c\u3051\u304b\u3089\u65e5\u306e\u51fa\u3078" }, "systemPeferenceDark": { - "message": "システム設定: ダーク" + "message": "\u30b7\u30b9\u30c6\u30e0\u8a2d\u5b9a: \u30c0\u30fc\u30af" }, "systemPeferenceLight": { - "message": "システム設定: ライト" + "message": "\u30b7\u30b9\u30c6\u30e0\u8a2d\u5b9a: \u30e9\u30a4\u30c8" }, "teal": { - "message": "ティール" + "message": "\u30c6\u30a3\u30fc\u30eb" }, "textColor": { - "message": "文字の色" + "message": "\u6587\u5b57\u306e\u8272" }, "themes": { - "message": "テーマ" + "message": "\u30c6\u30fc\u30de" }, "thisWillRemoveAllCookies": { - "message": "これはすべての Cookie を削除します。" + "message": "\u3053\u308c\u306f\u3059\u3079\u3066\u306e Cookie \u3092\u524a\u9664\u3057\u307e\u3059\u3002" }, "thisWillRemoveAllYouTubeCookies": { - "message": "YouTube のすべての Cookie を削除します" + "message": "YouTube \u306e\u3059\u3079\u3066\u306e Cookie \u3092\u524a\u9664\u3057\u307e\u3059" }, "thisWillResetAllSettings": { - "message": "すべての設定をリセットします。" + "message": "\u3059\u3079\u3066\u306e\u8a2d\u5b9a\u3092\u30ea\u30bb\u30c3\u30c8\u3057\u307e\u3059\u3002" }, "thisWillResetAllShortcuts": { - "message": "すべてのショートカットをリセットします" + "message": "\u3059\u3079\u3066\u306e\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3092\u30ea\u30bb\u30c3\u30c8\u3057\u307e\u3059" }, "thumbnails": { - "message": "サムネイル" + "message": "\u30b5\u30e0\u30cd\u30a4\u30eb" }, "timeFrom": { - "message": "この時間から" + "message": "\u3053\u306e\u6642\u9593\u304b\u3089" }, "timeTo": { - "message": "この時間まで" + "message": "\u3053\u306e\u6642\u9593\u307e\u3067" }, "todayAt": { - "message": "測定時刻" + "message": "\u6e2c\u5b9a\u6642\u523b" }, "toggleCards": { "message": "Toggle cards" }, "topChat": { - "message": "上位チャット" + "message": "\u4e0a\u4f4d\u30c1\u30e3\u30c3\u30c8" }, "trailerAutoplay": { - "message": "トレーラーを自動再生する" + "message": "\u30c8\u30ec\u30fc\u30e9\u30fc\u3092\u81ea\u52d5\u518d\u751f\u3059\u308b" }, "translations": { - "message": "翻訳" + "message": "\u7ffb\u8a33" }, "transparentBackground": { - "message": "透明な背景" + "message": "\u900f\u660e\u306a\u80cc\u666f" }, "trending": { - "message": "急上昇" + "message": "\u6025\u4e0a\u6607" }, "tryToReloadThePage": { - "message": "ページをリロードしてみてください" + "message": "\u30da\u30fc\u30b8\u3092\u30ea\u30ed\u30fc\u30c9\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044" }, "type": { - "message": "種類" + "message": "\u7a2e\u985e" }, "upNextAutoplay": { - "message": "次の動画を自動再生する" + "message": "\u6b21\u306e\u52d5\u753b\u3092\u81ea\u52d5\u518d\u751f\u3059\u308b" }, "use24HourFormat": { - "message": "24時間表示にする" + "message": "24\u6642\u9593\u8868\u793a\u306b\u3059\u308b" }, "version": { - "message": "バージョン" + "message": "\u30d0\u30fc\u30b8\u30e7\u30f3" }, "video": { - "message": "動画" + "message": "\u52d5\u753b" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "動画の説明はカテゴリ名を取得するために広げられます" + "message": "\u52d5\u753b\u306e\u8aac\u660e\u306f\u30ab\u30c6\u30b4\u30ea\u540d\u3092\u53d6\u5f97\u3059\u308b\u305f\u3081\u306b\u5e83\u3052\u3089\u308c\u307e\u3059" }, "videoFormats": { - "message": "動画形式" + "message": "\u52d5\u753b\u5f62\u5f0f" }, "videos": { - "message": "動画" + "message": "\u52d5\u753b" }, "volume": { - "message": "音量" + "message": "\u97f3\u91cf" }, "watchLater": { - "message": "後で見る" + "message": "\u5f8c\u3067\u898b\u308b" }, "watchTime": { - "message": "視聴時間" + "message": "\u8996\u8074\u6642\u9593" }, "whenTabIsChanged": { - "message": "タブを変更したとき" + "message": "\u30bf\u30d6\u3092\u5909\u66f4\u3057\u305f\u3068\u304d" }, "white": { - "message": "白" + "message": "\u767d" }, "yellow": { - "message": "黄" + "message": "\u9ec4" }, "youtubeHeaderLeft": { - "message": "YouTube のヘッダー左" + "message": "YouTube \u306e\u30d8\u30c3\u30c0\u30fc\u5de6" }, "youtubeHeaderRight": { - "message": "YouTube のヘッダー右" + "message": "YouTube \u306e\u30d8\u30c3\u30c0\u30fc\u53f3" }, "youtubeHomePage": { - "message": "YouTube のホームページ" + "message": "YouTube \u306e\u30db\u30fc\u30e0\u30da\u30fc\u30b8" }, "youtubeLanguage": { - "message": "YouTube の言語" + "message": "YouTube \u306e\u8a00\u8a9e" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube はH.264コーデックの画質を1080pに制限しています" + "message": "YouTube \u306fH.264\u30b3\u30fc\u30c7\u30c3\u30af\u306e\u753b\u8cea\u30921080p\u306b\u5236\u9650\u3057\u3066\u3044\u307e\u3059" } -} +} \ No newline at end of file diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index f2c3b310d..66597d344 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -1,809 +1,812 @@ { + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "about": { - "message": "정보" + "message": "\uc815\ubcf4" }, "accept": { - "message": "동의" + "message": "\ub3d9\uc758" }, "activate": { - "message": "활성화" + "message": "\ud65c\uc131\ud654" }, "activateCaptions": { - "message": "자막 활성화" + "message": "\uc790\ub9c9 \ud65c\uc131\ud654" + }, + "activateFullscreen": { + "message": "\uc804\uccb4\ud654\uba74 \ud65c\uc131\ud654" }, "activated": { - "message": "활성화됨" + "message": "\ud65c\uc131\ud654\ub428" }, "activatedFeatures": { - "message": "활성화된 기능" - }, - "activateFullscreen": { - "message": "전체화면 활성화" + "message": "\ud65c\uc131\ud654\ub41c \uae30\ub2a5" }, "activeFeatures": { - "message": "활성 기능" + "message": "\ud65c\uc131 \uae30\ub2a5" }, "addScrollToTop": { - "message": "<<맨위로>> 추가" + "message": "<<\ub9e8\uc704\ub85c>> \ucd94\uac00" }, "ads": { - "message": "광고" + "message": "\uad11\uace0" }, "all": { - "message": "모두" + "message": "\ubaa8\ub450" }, "allow": { - "message": "허용" + "message": "\ud5c8\uc6a9" }, "allow60fps": { - "message": "60에프피에스(fps) 허용" - }, - "forceSDR": { - "message": "Force SDR" + "message": "60\uc5d0\ud504\ud53c\uc5d0\uc2a4(fps) \ud5c8\uc6a9" }, "alwaysActive": { - "message": "항상 활성화" + "message": "\ud56d\uc0c1 \ud65c\uc131\ud654" }, "alwaysShowProgressBar": { - "message": "재생 진행 상태 항상 표시" + "message": "\uc7ac\uc0dd \uc9c4\ud589 \uc0c1\ud0dc \ud56d\uc0c1 \ud45c\uc2dc" }, "amber": { - "message": "호박색" + "message": "\ud638\ubc15\uc0c9" }, "analyzer": { - "message": "분석" + "message": "\ubd84\uc11d" }, "appearance": { - "message": "외관" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" + "message": "\uc678\uad00" }, "audio": { - "message": "오디오" + "message": "\uc624\ub514\uc624" }, "audioFormats": { - "message": "오디오 형식" + "message": "\uc624\ub514\uc624 \ud615\uc2dd" }, "auto": { - "message": "자동" + "message": "\uc790\ub3d9" }, "autoFullscreen": { - "message": "자동 전체화면" + "message": "\uc790\ub3d9 \uc804\uccb4\ud654\uba74" }, "autopauseWhenSwitchingTabs": { - "message": "탭전환시 자동 일시정지" + "message": "\ud0ed\uc804\ud658\uc2dc \uc790\ub3d9 \uc77c\uc2dc\uc815\uc9c0" }, "autoplay": { - "message": "자동재생" + "message": "\uc790\ub3d9\uc7ac\uc0dd" }, "backupAndReset": { - "message": "백업 & 리셋" + "message": "\ubc31\uc5c5 & \ub9ac\uc14b" }, "baseOnSystemColorScheme": { - "message": "시스템 색 구성표 기반" + "message": "\uc2dc\uc2a4\ud15c \uc0c9 \uad6c\uc131\ud45c \uae30\ubc18" }, "belowPlayer": { - "message": "플레이어 아래" + "message": "\ud50c\ub808\uc774\uc5b4 \uc544\ub798" }, "black": { - "message": "검정" + "message": "\uac80\uc815" }, "blacklist": { - "message": "블랙리스트" + "message": "\ube14\ub799\ub9ac\uc2a4\ud2b8" }, "blockAll": { - "message": "모두 차단" + "message": "\ubaa8\ub450 \ucc28\ub2e8" }, "blue": { - "message": "파랑" + "message": "\ud30c\ub791" }, "blueGray": { - "message": "블루그레이" + "message": "\ube14\ub8e8\uadf8\ub808\uc774" }, "bluelight": { - "message": "블루라이트" + "message": "\ube14\ub8e8\ub77c\uc774\ud2b8" }, "brown": { - "message": "갈색" + "message": "\uac08\uc0c9" }, "browser": { - "message": "브라우저" + "message": "\ube0c\ub77c\uc6b0\uc800" }, "browserVersion": { - "message": "브라우저 버전" + "message": "\ube0c\ub77c\uc6b0\uc800 \ubc84\uc804" }, "bubbles": { - "message": "버블" + "message": "\ubc84\ube14" }, "bug": { - "message": "버그" + "message": "\ubc84\uadf8" }, "buttons": { - "message": "버튼" + "message": "\ubc84\ud2bc" }, "cancel": { - "message": "취소" + "message": "\ucde8\uc18c" }, "categories": { - "message": "카테고리" + "message": "\uce74\ud14c\uace0\ub9ac" }, "channel": { - "message": "채널" + "message": "\ucc44\ub110" }, "channels": { - "message": "채널" + "message": "\ucc44\ub110" }, "clipboard": { - "message": "클립보드" + "message": "\ud074\ub9bd\ubcf4\ub4dc" }, "codecH264": { - "message": "코덱 h.264" - }, - "collapsed": { - "message": "축소됨" + "message": "\ucf54\ub371 h.264" }, "collapseOfSubscriptionSections": { - "message": "구독섹션 축소" + "message": "\uad6c\ub3c5\uc139\uc158 \ucd95\uc18c" + }, + "collapsed": { + "message": "\ucd95\uc18c\ub428" }, "comments": { - "message": "댓글" + "message": "\ub313\uae00" }, "confirmationBeforeClosing": { - "message": "닫기전에 확인하기" + "message": "\ub2eb\uae30\uc804\uc5d0 \ud655\uc778\ud558\uae30" }, "cookies": { - "message": "쿠키" + "message": "\ucfe0\ud0a4" }, "cores": { - "message": "코어" + "message": "\ucf54\uc5b4" }, "cropChapterTitles": { - "message": "제목 자르기" + "message": "\uc81c\ubaa9 \uc790\ub974\uae30" }, "customCss": { - "message": "사용자 지정 캐스캐이팅 스타일 시트(CSS)" + "message": "\uc0ac\uc6a9\uc790 \uc9c0\uc815 \uce90\uc2a4\uce90\uc774\ud305 \uc2a4\ud0c0\uc77c \uc2dc\ud2b8(CSS)" }, "customJs": { - "message": "사용자 지정 자바스크립트(JS)" + "message": "\uc0ac\uc6a9\uc790 \uc9c0\uc815 \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8(JS)" }, "customMiniPlayer": { - "message": "커스텀 미니플레이어" + "message": "\ucee4\uc2a4\ud140 \ubbf8\ub2c8\ud50c\ub808\uc774\uc5b4" }, "cyan": { - "message": "옥색" + "message": "\uc625\uc0c9" }, "dark": { - "message": "다크" + "message": "\ub2e4\ud06c" }, "darkTheme": { - "message": "다크 테마" + "message": "\ub2e4\ud06c \ud14c\ub9c8" }, "dateAndTime": { - "message": "날짜 & 시간" + "message": "\ub0a0\uc9dc & \uc2dc\uac04" }, "dawn": { - "message": "석양" + "message": "\uc11d\uc591" }, "decreasePlaybackSpeed": { - "message": "되감기 속도 감소" + "message": "\ub418\uac10\uae30 \uc18d\ub3c4 \uac10\uc18c" }, "decreaseVolume": { - "message": "볼륨 감소" + "message": "\ubcfc\ub968 \uac10\uc18c" }, "deepOrange": { - "message": "진한 주황" + "message": "\uc9c4\ud55c \uc8fc\ud669" }, "deepPurple": { - "message": "진한 보라" + "message": "\uc9c4\ud55c \ubcf4\ub77c" }, "defaultChannelTab": { - "message": "기본 채널 탭" + "message": "\uae30\ubcf8 \ucc44\ub110 \ud0ed" }, "deleteYoutubeCookies": { - "message": "유튜브 쿠키 삭제" + "message": "\uc720\ud29c\ube0c \ucfe0\ud0a4 \uc0ad\uc81c" }, "description": { - "message": "설명" + "message": "\uc124\uba85" }, "desert": { - "message": "사막" + "message": "\uc0ac\ub9c9" }, "details": { - "message": "자세히" + "message": "\uc790\uc138\ud788" }, "developerOptions": { - "message": "개발자 옵션" + "message": "\uac1c\ubc1c\uc790 \uc635\uc158" }, "device": { - "message": "기기" + "message": "\uae30\uae30" }, "dim": { - "message": "어둡게" + "message": "\uc5b4\ub461\uac8c" }, "disabled": { - "message": "비활성화" + "message": "\ube44\ud65c\uc131\ud654" }, "dislike": { - "message": "싫어요" - }, - "donate": { - "message": "후원하기" + "message": "\uc2eb\uc5b4\uc694" }, "doNotChange": { - "message": "바꾸지 않음" + "message": "\ubc14\uafb8\uc9c0 \uc54a\uc74c" + }, + "donate": { + "message": "\ud6c4\uc6d0\ud558\uae30" }, "draggable": { - "message": "드래그 가능" + "message": "\ub4dc\ub798\uadf8 \uac00\ub2a5" }, "email": { - "message": "이메일" + "message": "\uc774\uba54\uc77c" }, "empty": { - "message": "비어있음" + "message": "\ube44\uc5b4\uc788\uc74c" }, "enabled": { - "message": "활성화" + "message": "\ud65c\uc131\ud654" }, "enabledForced": { - "message": "활성화 (강제)" + "message": "\ud65c\uc131\ud654 (\uac15\uc81c)" }, "expanded": { - "message": "확장" + "message": "\ud655\uc7a5" }, "exportSettings": { - "message": "설정 내보내기" + "message": "\uc124\uc815 \ub0b4\ubcf4\ub0b4\uae30" }, "extension": { - "message": "확대" + "message": "\ud655\ub300" }, "file": { - "message": "파일" + "message": "\ud30c\uc77c" }, "filters": { - "message": "필터" + "message": "\ud544\ud130" }, "fitToWindow": { - "message": "창크기에 맞추기" + "message": "\ucc3d\ud06c\uae30\uc5d0 \ub9de\ucd94\uae30" }, "flash": { - "message": "플래시" + "message": "\ud50c\ub798\uc2dc" }, "font": { - "message": "글꼴" + "message": "\uae00\uaf34" }, "footer": { - "message": "하단" + "message": "\ud558\ub2e8" + }, + "forceSDR": { + "message": "Force SDR" }, "forcedPlaybackSpeed": { - "message": "되감기 속도 강제설정" + "message": "\ub418\uac10\uae30 \uc18d\ub3c4 \uac15\uc81c\uc124\uc815" }, "forcedTheaterMode": { - "message": "강제 영화관 모드" + "message": "\uac15\uc81c \uc601\ud654\uad00 \ubaa8\ub4dc" }, "forcedVolume": { - "message": "볼륨 강제설정" + "message": "\ubcfc\ub968 \uac15\uc81c\uc124\uc815" }, "foundABug": { - "message": "버그신고" + "message": "\ubc84\uadf8\uc2e0\uace0" }, "fullWindow": { - "message": "전체 화면" + "message": "\uc804\uccb4 \ud654\uba74" }, "general": { - "message": "일반" + "message": "\uc77c\ubc18" }, "github": { - "message": "깃허브(GitHub)" + "message": "\uae43\ud5c8\ube0c(GitHub)" }, "goToSearchBox": { - "message": "검색창으로 이동" + "message": "\uac80\uc0c9\ucc3d\uc73c\ub85c \uc774\ub3d9" }, "gpu": { - "message": "그래픽 처리 장치" + "message": "\uadf8\ub798\ud53d \ucc98\ub9ac \uc7a5\uce58" }, "green": { - "message": "초록" + "message": "\ucd08\ub85d" }, "hdThumbnail": { - "message": "HD 썸네일" + "message": "HD \uc378\ub124\uc77c" }, "hdThumbnails": { - "message": "HD 썸네일" + "message": "HD \uc378\ub124\uc77c" }, "header": { - "message": "헤더" + "message": "\ud5e4\ub354" }, "hidden": { - "message": "숨김" + "message": "\uc228\uae40" }, "hiddenOnVideoPage": { - "message": "비디오 페이지 숨기기" + "message": "\ube44\ub514\uc624 \ud398\uc774\uc9c0 \uc228\uae30\uae30" }, "hideAnimatedThumbnails": { - "message": "썸네일 애니메이션 숨기기" + "message": "\uc378\ub124\uc77c \uc560\ub2c8\uba54\uc774\uc158 \uc228\uae30\uae30" }, "hideAnnotations": { - "message": "설명 숨기기" + "message": "\uc124\uba85 \uc228\uae30\uae30" }, "hideCards": { - "message": "카드 숨기기" + "message": "\uce74\ub4dc \uc228\uae30\uae30" }, "hideDetails": { - "message": "상세설명 숨기기" + "message": "\uc0c1\uc138\uc124\uba85 \uc228\uae30\uae30" }, "hideEndscreen": { - "message": "종료후 화면 숨기기" + "message": "\uc885\ub8cc\ud6c4 \ud654\uba74 \uc228\uae30\uae30" }, "hideFeaturedContent": { - "message": "추천 영상 숨기기" + "message": "\ucd94\ucc9c \uc601\uc0c1 \uc228\uae30\uae30" }, "hideFooter": { - "message": "하단 숨기기" + "message": "\ud558\ub2e8 \uc228\uae30\uae30" }, "hideGradientBottom": { - "message": "그라데이션 맨 아래로 숨기기" + "message": "\uadf8\ub77c\ub370\uc774\uc158 \ub9e8 \uc544\ub798\ub85c \uc228\uae30\uae30" }, "hidePlaylist": { - "message": "재생 목록 숨기기" + "message": "\uc7ac\uc0dd \ubaa9\ub85d \uc228\uae30\uae30" }, "hideRightButtons": { - "message": "오른쪽 버튼 숨기기" + "message": "\uc624\ub978\ucabd \ubc84\ud2bc \uc228\uae30\uae30" }, "hideScrollForDetails": { - "message": "«스크롤 하여 자세한 설명» 숨기기" + "message": "\u00ab\uc2a4\ud06c\ub864 \ud558\uc5ec \uc790\uc138\ud55c \uc124\uba85\u00bb \uc228\uae30\uae30" }, "hideViewsCount": { - "message": "조회수 숨기기" + "message": "\uc870\ud68c\uc218 \uc228\uae30\uae30" }, "history": { - "message": "히스토리" + "message": "\ud788\uc2a4\ud1a0\ub9ac" }, "home": { - "message": "홈" + "message": "\ud648" }, "hover": { - "message": "띄우기" + "message": "\ub744\uc6b0\uae30" }, "hoverOnVideoPage": { - "message": "비디오 페이지 띄우기" + "message": "\ube44\ub514\uc624 \ud398\uc774\uc9c0 \ub744\uc6b0\uae30" }, "howLongAgoTheVideoWasUploaded": { - "message": "업로드 시기" + "message": "\uc5c5\ub85c\ub4dc \uc2dc\uae30" }, "icons": { - "message": "아이콘" + "message": "\uc544\uc774\ucf58" }, "iconsOnly": { - "message": "아이콘만" + "message": "\uc544\uc774\ucf58\ub9cc" }, "importSettings": { - "message": "설정 불러오기" + "message": "\uc124\uc815 \ubd88\ub7ec\uc624\uae30" + }, + "improveLogo": { + "message": "\ud5a5\uc0c1\ub41c \ub85c\uace0" }, "improvedtubeIconInBrowser": { - "message": "향상된 브라우저 아이콘" + "message": "\ud5a5\uc0c1\ub41c \ube0c\ub77c\uc6b0\uc800 \uc544\uc774\ucf58" }, "improvedtubeIconOnYoutube": { - "message": "향상된 유튜브 아이콘" + "message": "\ud5a5\uc0c1\ub41c \uc720\ud29c\ube0c \uc544\uc774\ucf58" }, "improvedtubeLanguage": { - "message": "향상된 유튜브 언어" + "message": "\ud5a5\uc0c1\ub41c \uc720\ud29c\ube0c \uc5b8\uc5b4" }, "improvedtubeVersion": { - "message": "향상된 유튜브 버전" - }, - "improveLogo": { - "message": "향상된 로고" + "message": "\ud5a5\uc0c1\ub41c \uc720\ud29c\ube0c \ubc84\uc804" }, "increasePlaybackSpeed": { - "message": "되감기 속도 증가" + "message": "\ub418\uac10\uae30 \uc18d\ub3c4 \uc99d\uac00" }, "increaseVolume": { - "message": "볼륨 증가" + "message": "\ubcfc\ub968 \uc99d\uac00" }, "indigo": { - "message": "남색" + "message": "\ub0a8\uc0c9" }, "items": { - "message": "요소" + "message": "\uc694\uc18c" }, "languages": { - "message": "언어" + "message": "\uc5b8\uc5b4" }, "legacyYoutube": { - "message": "레거시 유튜브" + "message": "\ub808\uac70\uc2dc \uc720\ud29c\ube0c" }, "light": { - "message": "밝게" + "message": "\ubc1d\uac8c" }, "lightBlue": { - "message": "연파랑" + "message": "\uc5f0\ud30c\ub791" }, "lightGreen": { - "message": "연초록" + "message": "\uc5f0\ucd08\ub85d" }, "like": { - "message": "좋아요" + "message": "\uc88b\uc544\uc694" }, "likes": { - "message": "좋아요" + "message": "\uc88b\uc544\uc694" }, "lime": { - "message": "라임" + "message": "\ub77c\uc784" }, "list": { - "message": "리스트" + "message": "\ub9ac\uc2a4\ud2b8" }, "liveChat": { - "message": "실시간 채팅" + "message": "\uc2e4\uc2dc\uac04 \ucc44\ud305" }, "liveChatType": { - "message": "실시간 채팅 유형" + "message": "\uc2e4\uc2dc\uac04 \ucc44\ud305 \uc720\ud615" }, "loudnessNormalization": { - "message": "볼륨 자동조정" + "message": "\ubcfc\ub968 \uc790\ub3d9\uc870\uc815" }, "markWatchedVideos": { - "message": "시청한 영상 표시" + "message": "\uc2dc\uccad\ud55c \uc601\uc0c1 \ud45c\uc2dc" }, "mixer": { - "message": "믹서" + "message": "\ubbf9\uc11c" }, "myColors": { - "message": "내 컬러" + "message": "\ub0b4 \uceec\ub7ec" }, "name": { - "message": "이름" + "message": "\uc774\ub984" }, "nativeMiniPlayer": { - "message": "네이티브 미니플레이어" + "message": "\ub124\uc774\ud2f0\ube0c \ubbf8\ub2c8\ud50c\ub808\uc774\uc5b4" }, "new": { - "message": "새로운 소식" + "message": "\uc0c8\ub85c\uc6b4 \uc18c\uc2dd" }, "nextVideo": { - "message": "다음 영상" + "message": "\ub2e4\uc74c \uc601\uc0c1" }, "night": { - "message": "저녘" + "message": "\uc800\ub158" }, "noActiveFeatures": { - "message": "활성 기능 없음" - }, - "none": { - "message": "없음" + "message": "\ud65c\uc131 \uae30\ub2a5 \uc5c6\uc74c" }, "noOpenVideoTabs": { - "message": "열린 비디오 탭 없음" + "message": "\uc5f4\ub9b0 \ube44\ub514\uc624 \ud0ed \uc5c6\uc74c" + }, + "none": { + "message": "\uc5c6\uc74c" }, "normal": { - "message": "기본" + "message": "\uae30\ubcf8" }, "old": { - "message": "오래됨" + "message": "\uc624\ub798\ub428" }, "onAllVideos": { - "message": "모든 비디오" + "message": "\ubaa8\ub4e0 \ube44\ub514\uc624" + }, + "onSubscribedChannels": { + "message": "\uad6c\ub3c5\ud55c \ucc44\ub110" }, "onlyActiveOnYoutube": { - "message": "유튜브만 활성화" + "message": "\uc720\ud29c\ube0c\ub9cc \ud65c\uc131\ud654" }, "onlyOnePlayerInstancePlaying": { - "message": "하나의 플레이어만 재생" - }, - "onSubscribedChannels": { - "message": "구독한 채널" + "message": "\ud558\ub098\uc758 \ud50c\ub808\uc774\uc5b4\ub9cc \uc7ac\uc0dd" }, "orange": { - "message": "주황" + "message": "\uc8fc\ud669" }, "os": { - "message": "운영체제" + "message": "\uc6b4\uc601\uccb4\uc81c" }, "other": { - "message": "기타" + "message": "\uae30\ud0c0" }, "permissions": { - "message": "권한" + "message": "\uad8c\ud55c" }, "pictureInPicture": { - "message": "픽처 인 픽처(PIP) 재생" + "message": "\ud53d\ucc98 \uc778 \ud53d\ucc98(PIP) \uc7ac\uc0dd" }, "pink": { - "message": "분홍" + "message": "\ubd84\ud64d" }, "plain": { - "message": "무색" + "message": "\ubb34\uc0c9" }, "platform": { - "message": "플랫폼" + "message": "\ud50c\ub7ab\ud3fc" + }, + "playPause": { + "message": "\uc7ac\uc0dd / \uc77c\uc2dc\uc815\uc9c0" }, "playbackSpeed": { - "message": "되감기 속도" + "message": "\ub418\uac10\uae30 \uc18d\ub3c4" }, "player": { - "message": "플레이어" + "message": "\ud50c\ub808\uc774\uc5b4" }, "playerColor": { - "message": "플레이어 컬러" + "message": "\ud50c\ub808\uc774\uc5b4 \uceec\ub7ec" }, "playerSize": { - "message": "플레이어 크기" + "message": "\ud50c\ub808\uc774\uc5b4 \ud06c\uae30" }, "playlist": { - "message": "플레이리스트" + "message": "\ud50c\ub808\uc774\ub9ac\uc2a4\ud2b8" }, "playlists": { - "message": "플레이리스트" - }, - "playPause": { - "message": "재생 / 일시정지" + "message": "\ud50c\ub808\uc774\ub9ac\uc2a4\ud2b8" }, "popupPlayer": { - "message": "팝업 플레이어" + "message": "\ud31d\uc5c5 \ud50c\ub808\uc774\uc5b4" }, "position": { - "message": "위치" + "message": "\uc704\uce58" }, "pressAnyKeyOrScroll": { - "message": "사용할 단축키 또는 마우스 휠을 누르세요." + "message": "\uc0ac\uc6a9\ud560 \ub2e8\ucd95\ud0a4 \ub610\ub294 \ub9c8\uc6b0\uc2a4 \ud720\uc744 \ub204\ub974\uc138\uc694." }, "pressAnyKeyOrUseMouseWheel": { - "message": "사용할 단축키 또는 마우스 휠을 누르세요." + "message": "\uc0ac\uc6a9\ud560 \ub2e8\ucd95\ud0a4 \ub610\ub294 \ub9c8\uc6b0\uc2a4 \ud720\uc744 \ub204\ub974\uc138\uc694." }, "previousVideo": { - "message": "이전 영상" + "message": "\uc774\uc804 \uc601\uc0c1" }, "primaryColor": { - "message": "주 색상" + "message": "\uc8fc \uc0c9\uc0c1" }, "purple": { - "message": "보라" + "message": "\ubcf4\ub77c" }, "quality": { - "message": "퀄리티" + "message": "\ud004\ub9ac\ud2f0" }, "ram": { - "message": "램" + "message": "\ub7a8" }, "rateUs": { - "message": "평가하기" + "message": "\ud3c9\uac00\ud558\uae30" }, "red": { - "message": "빨강" + "message": "\ube68\uac15" }, "relatedVideos": { - "message": "관련 영상" + "message": "\uad00\ub828 \uc601\uc0c1" }, "removeRelatedSearchResults": { - "message": "관련 검색결과 제거" + "message": "\uad00\ub828 \uac80\uc0c9\uacb0\uacfc \uc81c\uac70" }, "repeat": { - "message": "반복" + "message": "\ubc18\ubcf5" }, "reset": { - "message": "리셋" + "message": "\ub9ac\uc14b" }, "resetAllSettings": { - "message": "모든 설정 리셋" + "message": "\ubaa8\ub4e0 \uc124\uc815 \ub9ac\uc14b" }, "resetAllShortcuts": { - "message": "모든 단축키 리셋" + "message": "\ubaa8\ub4e0 \ub2e8\ucd95\ud0a4 \ub9ac\uc14b" }, "reverse": { - "message": "반대로" + "message": "\ubc18\ub300\ub85c" }, "rotate": { - "message": "회전" + "message": "\ud68c\uc804" }, "save": { - "message": "저장" + "message": "\uc800\uc7a5" }, "saveAs": { - "message": "다른이름으로 저장" + "message": "\ub2e4\ub978\uc774\ub984\uc73c\ub85c \uc800\uc7a5" }, "schedule": { - "message": "스케줄" + "message": "\uc2a4\ucf00\uc904" }, "screen": { - "message": "스크린" + "message": "\uc2a4\ud06c\ub9b0" }, "screenshot": { - "message": "스크린샷" + "message": "\uc2a4\ud06c\ub9b0\uc0f7" }, "search": { - "message": "검색" + "message": "\uac80\uc0c9" }, "searchBarOnly": { - "message": "검색창만" + "message": "\uac80\uc0c9\ucc3d\ub9cc" }, "seekBackward10Seconds": { - "message": "뒤로 10초" + "message": "\ub4a4\ub85c 10\ucd08" }, "seekForward10Seconds": { - "message": "앞으로 10초" + "message": "\uc55e\uc73c\ub85c 10\ucd08" }, "settings": { - "message": "설정" + "message": "\uc124\uc815" }, "settingsSuccessfullyImported": { - "message": "설정 내보내기 완료" + "message": "\uc124\uc815 \ub0b4\ubcf4\ub0b4\uae30 \uc644\ub8cc" }, "shortcuts": { - "message": "단축키" + "message": "\ub2e8\ucd95\ud0a4" }, "showCardsOnMouseHover": { - "message": "마우스 올릴 때 카드보기" + "message": "\ub9c8\uc6b0\uc2a4 \uc62c\ub9b4 \ub54c \uce74\ub4dc\ubcf4\uae30" }, "showChannelVideosCount": { - "message": "채널의 비디오수 표시" + "message": "\ucc44\ub110\uc758 \ube44\ub514\uc624\uc218 \ud45c\uc2dc" }, "shuffle": { - "message": "셔플" + "message": "\uc154\ud50c" }, "sidebar": { - "message": "사이드바" + "message": "\uc0ac\uc774\ub4dc\ubc14" }, "spacebar": { - "message": "스페이스바" + "message": "\uc2a4\ud398\uc774\uc2a4\ubc14" }, "squaredUserImages": { - "message": "정사각형 프로필사진" + "message": "\uc815\uc0ac\uac01\ud615 \ud504\ub85c\ud544\uc0ac\uc9c4" }, "static": { - "message": "고정" + "message": "\uace0\uc815" }, "statsForNerds": { - "message": "너드 통계 표시" + "message": "\ub108\ub4dc \ud1b5\uacc4 \ud45c\uc2dc" }, "step": { - "message": "스텝" + "message": "\uc2a4\ud15d" }, "stop": { - "message": "정지" + "message": "\uc815\uc9c0" }, "style": { - "message": "스타일" + "message": "\uc2a4\ud0c0\uc77c" }, "styles": { - "message": "스타일" + "message": "\uc2a4\ud0c0\uc77c" }, "subscriptions": { - "message": "구독" + "message": "\uad6c\ub3c5" }, "subtitles": { - "message": "자막" + "message": "\uc790\ub9c9" }, "sunset": { - "message": "일몰" + "message": "\uc77c\ubab0" }, "sunsetToSunrise": { - "message": "일몰부터 일출까지" + "message": "\uc77c\ubab0\ubd80\ud130 \uc77c\ucd9c\uae4c\uc9c0" }, "systemPeferenceDark": { - "message": "개인 설정: 다크" + "message": "\uac1c\uc778 \uc124\uc815: \ub2e4\ud06c" }, "systemPeferenceLight": { - "message": "개인 설정: 라이트" + "message": "\uac1c\uc778 \uc124\uc815: \ub77c\uc774\ud2b8" }, "teal": { - "message": "청록" + "message": "\uccad\ub85d" }, "textColor": { - "message": "텍스트 색상" + "message": "\ud14d\uc2a4\ud2b8 \uc0c9\uc0c1" }, "themes": { - "message": "테마" + "message": "\ud14c\ub9c8" }, "thisWillRemoveAllCookies": { - "message": "모든 쿠키를 삭제합니다." + "message": "\ubaa8\ub4e0 \ucfe0\ud0a4\ub97c \uc0ad\uc81c\ud569\ub2c8\ub2e4." }, "thisWillRemoveAllYouTubeCookies": { - "message": "모든 유튜브 쿠키를 삭제합니다." + "message": "\ubaa8\ub4e0 \uc720\ud29c\ube0c \ucfe0\ud0a4\ub97c \uc0ad\uc81c\ud569\ub2c8\ub2e4." }, "thisWillResetAllSettings": { - "message": "모든 설정을 초기화 합니다." + "message": "\ubaa8\ub4e0 \uc124\uc815\uc744 \ucd08\uae30\ud654 \ud569\ub2c8\ub2e4." }, "thisWillResetAllShortcuts": { - "message": "모든 단축키를 초기화 합니다." + "message": "\ubaa8\ub4e0 \ub2e8\ucd95\ud0a4\ub97c \ucd08\uae30\ud654 \ud569\ub2c8\ub2e4." }, "thumbnails": { - "message": "썸네일" + "message": "\uc378\ub124\uc77c" }, "timeFrom": { - "message": "다음시간 부터" + "message": "\ub2e4\uc74c\uc2dc\uac04 \ubd80\ud130" }, "timeTo": { - "message": "다음시간 까지" + "message": "\ub2e4\uc74c\uc2dc\uac04 \uae4c\uc9c0" }, "todayAt": { - "message": "오늘의" + "message": "\uc624\ub298\uc758" }, "toggleCards": { - "message": "토글 카드" + "message": "\ud1a0\uae00 \uce74\ub4dc" }, "topChat": { - "message": "탑 챗" + "message": "\ud0d1 \ucc57" }, "trailerAutoplay": { - "message": "트레일러 자동재생" + "message": "\ud2b8\ub808\uc77c\ub7ec \uc790\ub3d9\uc7ac\uc0dd" }, "translations": { - "message": "번역" + "message": "\ubc88\uc5ed" }, "transparentBackground": { - "message": "투명한 배경" + "message": "\ud22c\uba85\ud55c \ubc30\uacbd" }, "trending": { - "message": "인기" + "message": "\uc778\uae30" }, "tryToReloadThePage": { - "message": "새로고침을 시도하십시오" + "message": "\uc0c8\ub85c\uace0\uce68\uc744 \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624" }, "type": { - "message": "타입" + "message": "\ud0c0\uc785" }, "upNextAutoplay": { - "message": "다음영상 자동재생" + "message": "\ub2e4\uc74c\uc601\uc0c1 \uc790\ub3d9\uc7ac\uc0dd" }, "use24HourFormat": { - "message": "24시간 형식 사용" + "message": "24\uc2dc\uac04 \ud615\uc2dd \uc0ac\uc6a9" }, "version": { - "message": "버젼" + "message": "\ubc84\uc83c" }, "video": { - "message": "영상" + "message": "\uc601\uc0c1" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "카테고리의 이름을 얻기 위해 비디오 설명이 확장됩니다" + "message": "\uce74\ud14c\uace0\ub9ac\uc758 \uc774\ub984\uc744 \uc5bb\uae30 \uc704\ud574 \ube44\ub514\uc624 \uc124\uba85\uc774 \ud655\uc7a5\ub429\ub2c8\ub2e4" }, "videoFormats": { - "message": "비디오 형식" + "message": "\ube44\ub514\uc624 \ud615\uc2dd" }, "videos": { - "message": "비디오" + "message": "\ube44\ub514\uc624" }, "volume": { - "message": "음량" + "message": "\uc74c\ub7c9" }, "watchLater": { - "message": "나중에 보기" + "message": "\ub098\uc911\uc5d0 \ubcf4\uae30" }, "watchTime": { - "message": "시간 보기" + "message": "\uc2dc\uac04 \ubcf4\uae30" }, "whenTabIsChanged": { - "message": "탭이 바뀔때" + "message": "\ud0ed\uc774 \ubc14\ub014\ub54c" }, "white": { - "message": "하양" + "message": "\ud558\uc591" }, "yellow": { - "message": "노랑" + "message": "\ub178\ub791" }, "youtubeHeaderLeft": { - "message": "유튜브 헤더 (왼쪽)" + "message": "\uc720\ud29c\ube0c \ud5e4\ub354 (\uc67c\ucabd)" }, "youtubeHeaderRight": { - "message": "유튜브 헤더 (오른쪽)" + "message": "\uc720\ud29c\ube0c \ud5e4\ub354 (\uc624\ub978\ucabd)" }, "youtubeHomePage": { - "message": "유튜브 홈페이지" + "message": "\uc720\ud29c\ube0c \ud648\ud398\uc774\uc9c0" }, "youtubeLanguage": { - "message": "유튜브 언어" + "message": "\uc720\ud29c\ube0c \uc5b8\uc5b4" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "유튜브는 h.264 코덱에서 비디오 품질을 1080p로 제한합니다" + "message": "\uc720\ud29c\ube0c\ub294 h.264 \ucf54\ub371\uc5d0\uc11c \ube44\ub514\uc624 \ud488\uc9c8\uc744 1080p\ub85c \uc81c\ud55c\ud569\ub2c8\ub2e4" } -} +} \ No newline at end of file diff --git a/_locales/messages.json b/_locales/messages.json deleted file mode 100644 index 090114d76..000000000 --- a/_locales/messages.json +++ /dev/null @@ -1,815 +0,0 @@ -{ - "about": { - "message": "Over" - }, - "accept": { - "message": "Accepteren" - }, - "activate": { - "message": "Inschakelen" - }, - "activateCaptions": { - "message": "Bijschriften tonen" - }, - "activated": { - "message": "Ingeschakeld" - }, - "activatedFeatures": { - "message": "Ingeschakelde functies" - }, - "activateFullscreen": { - "message": "Volledig scherm" - }, - "activeFeatures": { - "message": "Ingeschakelde fucties" - }, - "addScrollToTop": { - "message": "«Scrollen naar bovenkant»-knop tonen" - }, - "ads": { - "message": "Reclames" - }, - "all": { - "message": "Alles" - }, - "allow": { - "message": "Toestaan" - }, - "allow60fps": { - "message": "60 fps toestaan" - }, - "forceSDR": { - "message": "SDR afdwingen" - }, - "alwaysActive": { - "message": "Altijd ingeschakeld" - }, - "alwaysShowProgressBar": { - "message": "Voortgangsbalk altijd tonen" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analyse" - }, - "appearance": { - "message": "Uiterlijk" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audioformaten" - }, - "auto": { - "message": "Automatisch" - }, - "autoFullscreen": { - "message": "Automatisch volledig scherm" - }, - "autopauseWhenSwitchingTabs": { - "message": "Automatisch pauzeren bij het wisselen van tabbladen" - }, - "autoplay": { - "message": "Automatisch afspelen" - }, - "backupAndReset": { - "message": "Back-up maken en herstellen" - }, - "baseOnSystemColorScheme": { - "message": "Op basis van systeem-kleurenschema" - }, - "belowPlayer": { - "message": "Onder de speler" - }, - "black": { - "message": "Zwart" - }, - "blacklist": { - "message": "Zwarte lijst" - }, - "blockAll": { - "message": "Alles blokkeren" - }, - "blue": { - "message": "Blauw" - }, - "blueGray": { - "message": "Blauwgrijs" - }, - "bluelight": { - "message": "Lichtblauw" - }, - "brown": { - "message": "Bruin" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browserversie" - }, - "bubbles": { - "message": "Bubbels" - }, - "bug": { - "message": "Insect" - }, - "buttons": { - "message": "Knoppen" - }, - "cancel": { - "message": "Annuleren" - }, - "categories": { - "message": "Categorieën" - }, - "channel": { - "message": "Kanaal" - }, - "channels": { - "message": "Kanalen" - }, - "clipboard": { - "message": "Klembord" - }, - "codecH264": { - "message": "h.264-codec gebruiken" - }, - "collapsed": { - "message": "Ingeklapt" - }, - "collapseOfSubscriptionSections": { - "message": "Abonnementsectie inklappen" - }, - "comments": { - "message": "Reacties" - }, - "confirmationBeforeClosing": { - "message": "Afsluiten bevestigen" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Kernen" - }, - "cropChapterTitles": { - "message": "Hoofdstuktitels inkorten" - }, - "customCss": { - "message": "Aangepaste css" - }, - "customJs": { - "message": "Aangepaste js" - }, - "customMiniPlayer": { - "message": "Aangepaste minispeler" - }, - "openPopupPlayer": { - "message": "Open de video in een nieuw venster" - }, - "cyan": { - "message": "Groenblauw" - }, - "dark": { - "message": "Donker" - }, - "darkTheme": { - "message": "Donker thema" - }, - "dateAndTime": { - "message": "Datum en tijd" - }, - "dawn": { - "message": "Ochtendrood" - }, - "decreasePlaybackSpeed": { - "message": "Afspeelsnelheid verlagen" - }, - "decreaseVolume": { - "message": "Volumeniveau verlagen" - }, - "deepOrange": { - "message": "Donkeroranje" - }, - "deepPurple": { - "message": "Donkerpaars" - }, - "defaultChannelTab": { - "message": "Standaard kanaaltabblad" - }, - "deleteYoutubeCookies": { - "message": "YouTube-cookies verwijderen" - }, - "description": { - "message": "Beschrijving" - }, - "desert": { - "message": "Woestijn" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Ontwikkelaarsopties" - }, - "device": { - "message": "Apparaat" - }, - "dim": { - "message": "Dimmen" - }, - "disabled": { - "message": "Uitgeschakeld" - }, - "dislike": { - "message": "Niet leuk vinden" - }, - "donate": { - "message": "Doneren" - }, - "doNotChange": { - "message": "Niet aanpassen" - }, - "draggable": { - "message": "Versleepbaar" - }, - "email": { - "message": "E-mail" - }, - "empty": { - "message": "Leeg" - }, - "enabled": { - "message": "Ingeschakeld" - }, - "enabledForced": { - "message": "Ingeschakeld (afdwingen)" - }, - "expanded": { - "message": "Uitgeklapt" - }, - "exportSettings": { - "message": "Instellingen exporteren" - }, - "extension": { - "message": "Extensie" - }, - "file": { - "message": "Bestand" - }, - "filters": { - "message": "Filters" - }, - "fitToWindow": { - "message": "Aanpassen aan vensterbreedte" - }, - "flash": { - "message": "Flits" - }, - "font": { - "message": "Lettertype" - }, - "footer": { - "message": "Voettekst" - }, - "forcedPlaybackSpeed": { - "message": "Afspeelsnelheid afdwingen" - }, - "forcedTheaterMode": { - "message": "Altijd theatermodus gebruiken" - }, - "forcedVolume": { - "message": "Volumeniveau afdwingen" - }, - "foundABug": { - "message": "Heb je een bug gevonden?" - }, - "fullWindow": { - "message": "Volledige venstergrootte" - }, - "general": { - "message": "Algemeen" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Ga naar de zoekbalk" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Groen" - }, - "hdThumbnail": { - "message": "HD-miniatuurvoorbeeld" - }, - "hdThumbnails": { - "message": "HD-miniatuurvoorbeelden" - }, - "header": { - "message": "Kop" - }, - "hidden": { - "message": "Verborgen" - }, - "hiddenOnVideoPage": { - "message": "Verborgen op videopagina" - }, - "hideAnimatedThumbnails": { - "message": "Geen bewegende miniatuurvoorbeelden" - }, - "hideAnnotations": { - "message": "Aantekeningen verbergen" - }, - "hideCards": { - "message": "Kaarten verbergen" - }, - "hideDetails": { - "message": "Details verbergen" - }, - "hideEndscreen": { - "message": "Eindscherm verbergen" - }, - "hideFeaturedContent": { - "message": "Uitgelichte inhoud verbergen" - }, - "hideFooter": { - "message": "Voettekst verbergen" - }, - "hideGradientBottom": { - "message": "Kleurverloop aan onderkant verbergen" - }, - "hidePlaylist": { - "message": "Afspeellijst verbergen" - }, - "hideRightButtons": { - "message": "Rechterknoppen verbergen" - }, - "hideScrollForDetails": { - "message": "«Scrollen voor details» verbergen" - }, - "hideViewsCount": { - "message": "Aantal weergaven verbergen" - }, - "history": { - "message": "Geschiedenis" - }, - "home": { - "message": "Thuis" - }, - "hover": { - "message": "Overzweven met cursor" - }, - "hoverOnVideoPage": { - "message": "Overzweven met cursor op videopagina" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Uploaddatum tonen" - }, - "icons": { - "message": "Pictogrammen" - }, - "iconsOnly": { - "message": "Alleen pictogrammen" - }, - "importSettings": { - "message": "Instellingen importeren" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube-pictogram in browser" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube-pictogram op YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube-taal" - }, - "improvedtubeVersion": { - "message": "ImprovedTube-versie" - }, - "improveLogo": { - "message": "YouTube-logo verbeteren" - }, - "increasePlaybackSpeed": { - "message": "Afspeelsnelheid verhogen" - }, - "increaseVolume": { - "message": "Volumeniveau verhogen" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Talen" - }, - "legacyYoutube": { - "message": "Oude YouTube-vormgeving" - }, - "light": { - "message": "Licht" - }, - "lightBlue": { - "message": "Lichtblauw" - }, - "lightGreen": { - "message": "Lichtgroen" - }, - "like": { - "message": "Vind ik leuk" - }, - "likes": { - "message": "Vind-ik-leuks" - }, - "lime": { - "message": "Limoen" - }, - "list": { - "message": "Lijst" - }, - "liveChat": { - "message": "Live-chat" - }, - "liveChatType": { - "message": "Soort live-chat" - }, - "loudnessNormalization": { - "message": "Volumeniveau normaliseren" - }, - "markWatchedVideos": { - "message": "Bekeken video's aanduiden" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "Mijn kleuren" - }, - "name": { - "message": "Naam" - }, - "nativeMiniPlayer": { - "message": "Ingebouwde minispeler" - }, - "new": { - "message": "Nieuw" - }, - "nextVideo": { - "message": "Volgende video afspelen" - }, - "night": { - "message": "Nacht" - }, - "noActiveFeatures": { - "message": "Geen ingeschakelde functies" - }, - "none": { - "message": "Geen" - }, - "noOpenVideoTabs": { - "message": "Geen openstaande videotabbladen" - }, - "normal": { - "message": "Normaal" - }, - "old": { - "message": "Oud" - }, - "onAllVideos": { - "message": "Bij alle video's" - }, - "onlyActiveOnYoutube": { - "message": "Alleen actief op YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Slechts één actieve speler toestaan" - }, - "onSubscribedChannels": { - "message": "Op geabonneerde kanalen" - }, - "orange": { - "message": "Oranje" - }, - "os": { - "message": "Besturingssysteem" - }, - "other": { - "message": "Anders" - }, - "permissions": { - "message": "Rechten" - }, - "pictureInPicture": { - "message": "Afbeelding-in-afbeelding" - }, - "pink": { - "message": "Roze" - }, - "plain": { - "message": "Vlakte" - }, - "platform": { - "message": "Platform" - }, - "playbackSpeed": { - "message": "Afspeelsnelheid" - }, - "player": { - "message": "Speler" - }, - "playerColor": { - "message": "Spelerkleur" - }, - "playerSize": { - "message": "Spelergrootte" - }, - "playlist": { - "message": "Afspeellijst" - }, - "playlists": { - "message": "Afspeellijsten" - }, - "playPause": { - "message": "Video afspelen/pauzeren" - }, - "popupPlayer": { - "message": "Pop-upspeler" - }, - "position": { - "message": "Positie" - }, - "pressAnyKeyOrScroll": { - "message": "Druk op een toets of muiswiel." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Druk op een toets of gebruik het muiswiel" - }, - "previousVideo": { - "message": "Vorige video afspelen" - }, - "primaryColor": { - "message": "Primaire kleur" - }, - "purple": { - "message": "Paars" - }, - "quality": { - "message": "Kwaliteit" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Beoordeel deze extensie" - }, - "red": { - "message": "Rood" - }, - "redDislikeButton": { - "message": "Vind-ik-niet-leuks rood markeren" - }, - "relatedVideos": { - "message": "Gerelateerde video's" - }, - "removeRelatedSearchResults": { - "message": "Gerelateerde videoresultaten verwijderen" - }, - "repeat": { - "message": "Herhalen" - }, - "reset": { - "message": "Herstellen" - }, - "resetAllSettings": { - "message": "Standaardwaarden herstellen" - }, - "resetAllShortcuts": { - "message": "Alle sneltoetsen herstellen" - }, - "reverse": { - "message": "Omdraaien" - }, - "rotate": { - "message": "Draaien" - }, - "save": { - "message": "Opslaan" - }, - "saveAs": { - "message": "Opslaan als" - }, - "schedule": { - "message": "Schema" - }, - "screen": { - "message": "Beeldscherm" - }, - "screenshot": { - "message": "Schermfoto" - }, - "search": { - "message": "Zoeken" - }, - "searchBarOnly": { - "message": "Alleen zoekbalk" - }, - "seekBackward10Seconds": { - "message": "10 seconden terugspoelen" - }, - "seekForward10Seconds": { - "message": "10 seconden vooruitspoelen" - }, - "settings": { - "message": "Instellingen" - }, - "settingsSuccessfullyImported": { - "message": "De instellingen zijn geïmporteerd" - }, - "shortcuts": { - "message": "Sneltoetsen" - }, - "showCardsOnMouseHover": { - "message": "Kaarten tonen onder muisaanwijzer" - }, - "showChannelVideosCount": { - "message": "Aantal kanaalvideo's tonen" - }, - "shuffle": { - "message": "Willekeurig" - }, - "sidebar": { - "message": "Zijbalk" - }, - "spacebar": { - "message": "Spatiebalk" - }, - "squaredUserImages": { - "message": "Vierkante gebruikersafbeeldingen" - }, - "static": { - "message": "Statisch" - }, - "statsForNerds": { - "message": "Statistieken voor nerds tonen" - }, - "step": { - "message": "Stap" - }, - "stop": { - "message": "Stoppen" - }, - "style": { - "message": "Stijl" - }, - "styles": { - "message": "Stijlen" - }, - "subscriptions": { - "message": "Abonnementen" - }, - "subtitles": { - "message": "Ondertiteling tonen" - }, - "sunset": { - "message": "Zonsondergang" - }, - "sunsetToSunrise": { - "message": "Van zonsondergang tot zonsopkomst" - }, - "systemPeferenceDark": { - "message": "Systeemvoorkeur: donker" - }, - "systemPeferenceLight": { - "message": "Systeemvoorkeur: licht" - }, - "teal": { - "message": "Blauwgroen" - }, - "textColor": { - "message": "Tekstkleur" - }, - "themes": { - "message": "Thema's" - }, - "thisWillRemoveAllCookies": { - "message": "Hiermee worden alle cookies verwijderd." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Hiermee worden alle YouTube-cookies verwijderd." - }, - "thisWillResetAllSettings": { - "message": "Hiermee worden alle instellingen hersteld." - }, - "thisWillResetAllShortcuts": { - "message": "Hiermee worden alle sneltoetsen hersteld." - }, - "thumbnails": { - "message": "Miniatuurvoorbeelden" - }, - "timeFrom": { - "message": "Tijd vanaf" - }, - "timeTo": { - "message": "Tijd tot" - }, - "todayAt": { - "message": "Vandaag om" - }, - "toggleCards": { - "message": "Kaarten tonen/verbergen" - }, - "topChat": { - "message": "Chat aan bovenkant" - }, - "trailerAutoplay": { - "message": "Trailer automatisch afspelen" - }, - "translations": { - "message": "Vertalingen" - }, - "transparentBackground": { - "message": "Doorzichtige achtergrond" - }, - "trending": { - "message": "Populair" - }, - "tryToReloadThePage": { - "message": "Probeer de pagina te herladen" - }, - "type": { - "message": "Soort" - }, - "upNextAutoplay": { - "message": "Volgende in wachtrij automatisch afspelen" - }, - "use24HourFormat": { - "message": "24-uurstijd gebruiken" - }, - "version": { - "message": "Versie" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "De video-beschrijving wordt uitgeklapt om de naam van de categorie te verkrijgen" - }, - "videoFormats": { - "message": "Videoformaten" - }, - "videos": { - "message": "Video's" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Later bekijken" - }, - "watchTime": { - "message": "Kijktijd" - }, - "whenTabIsChanged": { - "message": "Als er van tabblad wordt gewisseld" - }, - "white": { - "message": "Wit" - }, - "yellow": { - "message": "Geel" - }, - "youtubeHeaderLeft": { - "message": "YouTube-kop (links)" - }, - "youtubeHeaderRight": { - "message": "YouTube-kop (rechts)" - }, - "youtubeHomePage": { - "message": "YouTube-startpagina" - }, - "youtubeLanguage": { - "message": "YouTube-taal" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube beperkt de videokwaliteit van de h.264-codec tot 1080p" - } -} diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 718ca9566..26bacbd78 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -1,4 +1,19 @@ { + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "about": { "message": "Om" }, @@ -11,20 +26,20 @@ "activateCaptions": { "message": "Aktiver underteksting" }, + "activateFullscreen": { + "message": "Aktiver fullskjerm" + }, "activated": { "message": "Aktivert" }, "activatedFeatures": { "message": "Aktiverte funksjoner" }, - "activateFullscreen": { - "message": "Aktiver fullskjerm" - }, "activeFeatures": { "message": "Aktive funksjoner" }, "addScrollToTop": { - "message": "Legg til «Rull til toppen»" + "message": "Legg til \u00abRull til toppen\u00bb" }, "ads": { "message": "Reklamer" @@ -38,9 +53,6 @@ "allow60fps": { "message": "Tillat 60 bps" }, - "forceSDR": { - "message": "Force SDR" - }, "alwaysActive": { "message": "Alltid aktiv" }, @@ -56,18 +68,6 @@ "appearance": { "message": "Utseende" }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, "audio": { "message": "Lyd" }, @@ -81,7 +81,7 @@ "message": "Auto-fullskjerm" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause når du bytter faner" + "message": "Autopause n\u00e5r du bytter faner" }, "autoplay": { "message": "Autoplay" @@ -90,7 +90,7 @@ "message": "Sikkerhetskopiering og tilbakestilling" }, "baseOnSystemColorScheme": { - "message": "Baser på systemfargevalg" + "message": "Baser p\u00e5 systemfargevalg" }, "belowPlayer": { "message": "Nedenfor avspiller" @@ -105,13 +105,13 @@ "message": "Blokker alle" }, "blue": { - "message": "Blå" + "message": "Bl\u00e5" }, "blueGray": { - "message": "Blågrå" + "message": "Bl\u00e5gr\u00e5" }, "bluelight": { - "message": "Blålys" + "message": "Bl\u00e5lys" }, "brown": { "message": "Brun" @@ -149,17 +149,17 @@ "codecH264": { "message": "H.264-kodek" }, - "collapsed": { - "message": "kollapset" - }, "collapseOfSubscriptionSections": { "message": "Kollaps av abonnementsdelene" }, + "collapsed": { + "message": "kollapset" + }, "comments": { "message": "Kommentarer" }, "confirmationBeforeClosing": { - "message": "Bekreftelse før stenging" + "message": "Bekreftelse f\u00f8r stenging" }, "cookies": { "message": "Informasjonskapslene" @@ -168,7 +168,7 @@ "message": "Kjerner" }, "cropChapterTitles": { - "message": "Beskjær kapitteltitler" + "message": "Beskj\u00e6r kapitteltitler" }, "customCss": { "message": "Tilpasset CSS" @@ -180,13 +180,13 @@ "message": "Egendefinert miniavspiller" }, "cyan": { - "message": "Blålilla" + "message": "Bl\u00e5lilla" }, "dark": { - "message": "Mørk" + "message": "M\u00f8rk" }, "darkTheme": { - "message": "Mørk drakt" + "message": "M\u00f8rk drakt" }, "dateAndTime": { "message": "Dato og klokkeslett" @@ -204,7 +204,7 @@ "message": "Dyporansje" }, "deepPurple": { - "message": "Mørkelilla" + "message": "M\u00f8rkelilla" }, "defaultChannelTab": { "message": "Forvalgt kanalfane" @@ -216,7 +216,7 @@ "message": "Beskrivelse" }, "desert": { - "message": "Ørken" + "message": "\u00d8rken" }, "details": { "message": "Detaljer" @@ -231,17 +231,17 @@ "message": "Dim" }, "disabled": { - "message": "Avslått" + "message": "Avsl\u00e5tt" }, "dislike": { "message": "Mislik" }, - "donate": { - "message": "Doner" - }, "doNotChange": { "message": "Ikke endre" }, + "donate": { + "message": "Doner" + }, "draggable": { "message": "Flyttbare" }, @@ -284,6 +284,9 @@ "footer": { "message": "Bunntekst" }, + "forceSDR": { + "message": "Force SDR" + }, "forcedPlaybackSpeed": { "message": "Tvungen avspillingshastighet" }, @@ -309,13 +312,13 @@ "message": "GitHub" }, "goToSearchBox": { - "message": "Gå til søkefeltet" + "message": "G\u00e5 til s\u00f8kefeltet" }, "gpu": { "message": "GPU" }, "green": { - "message": "Grønn" + "message": "Gr\u00f8nn" }, "hdThumbnail": { "message": "HD-miniatyrbilde" @@ -330,7 +333,7 @@ "message": "Skjult" }, "hiddenOnVideoPage": { - "message": "Skjult på videosiden" + "message": "Skjult p\u00e5 videosiden" }, "hideAnimatedThumbnails": { "message": "Skjul animerte miniatyrbilder" @@ -360,10 +363,10 @@ "message": "Skjul spilleliste" }, "hideRightButtons": { - "message": "Skjul høyre-knapper" + "message": "Skjul h\u00f8yre-knapper" }, "hideScrollForDetails": { - "message": "Skjul «Bla for detaljer»" + "message": "Skjul \u00abBla for detaljer\u00bb" }, "hideViewsCount": { "message": "Skjul visningsteller" @@ -378,7 +381,7 @@ "message": "Hold" }, "hoverOnVideoPage": { - "message": "Hold musepekeren på videosiden" + "message": "Hold musepekeren p\u00e5 videosiden" }, "howLongAgoTheVideoWasUploaded": { "message": "Hvor lenge siden videoen ble opplastet" @@ -392,26 +395,26 @@ "importSettings": { "message": "Importer innstillinger" }, + "improveLogo": { + "message": "Forbedre logo" + }, "improvedtubeIconInBrowser": { "message": "ImprovedTube-ikonet i nettleseren" }, "improvedtubeIconOnYoutube": { - "message": "ImprovedTube-ikonet på YouTube" + "message": "ImprovedTube-ikonet p\u00e5 YouTube" }, "improvedtubeLanguage": { - "message": "ImprovedTube-språk" + "message": "ImprovedTube-spr\u00e5k" }, "improvedtubeVersion": { "message": "ImprovedTube-versjon" }, - "improveLogo": { - "message": "Forbedre logo" - }, "increasePlaybackSpeed": { - "message": "Øk avspillingshastigheten" + "message": "\u00d8k avspillingshastigheten" }, "increaseVolume": { - "message": "Øk lydstyrken" + "message": "\u00d8k lydstyrken" }, "indigo": { "message": "Indigo" @@ -420,7 +423,7 @@ "message": "Elementer" }, "languages": { - "message": "Språk" + "message": "Spr\u00e5k" }, "legacyYoutube": { "message": "Gammeldags YouTube" @@ -429,10 +432,10 @@ "message": "Lys" }, "lightBlue": { - "message": "Lyseblå" + "message": "Lysebl\u00e5" }, "lightGreen": { - "message": "Lysegrønn" + "message": "Lysegr\u00f8nn" }, "like": { "message": "Gunst" @@ -482,12 +485,12 @@ "noActiveFeatures": { "message": "Ingen aktive funksjoner" }, + "noOpenVideoTabs": { + "message": "Ingen \u00e5pne videofaner" + }, "none": { "message": "Ingen" }, - "noOpenVideoTabs": { - "message": "Ingen åpne videofaner" - }, "normal": { "message": "Normal" }, @@ -495,16 +498,16 @@ "message": "Gammel" }, "onAllVideos": { - "message": "På alle videoer" + "message": "P\u00e5 alle videoer" + }, + "onSubscribedChannels": { + "message": "P\u00e5 abonnementskanaler" }, "onlyActiveOnYoutube": { - "message": "Kun aktiv på YouTube" + "message": "Kun aktiv p\u00e5 YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Kun én avspiller viser noe" - }, - "onSubscribedChannels": { - "message": "På abonnementskanaler" + "message": "Kun \u00e9n avspiller viser noe" }, "orange": { "message": "Oransje" @@ -530,6 +533,9 @@ "platform": { "message": "Plattform" }, + "playPause": { + "message": "Spill / Pause" + }, "playbackSpeed": { "message": "Avspillingshastighet" }, @@ -540,7 +546,7 @@ "message": "Avspiller-farge" }, "playerSize": { - "message": "Avspiller-størrelse" + "message": "Avspiller-st\u00f8rrelse" }, "playlist": { "message": "Spilleliste" @@ -548,9 +554,6 @@ "playlists": { "message": "Spillelister" }, - "playPause": { - "message": "Spill / Pause" - }, "popupPlayer": { "message": "Oppsprettsspiller" }, @@ -558,10 +561,10 @@ "message": "Posisjon" }, "pressAnyKeyOrScroll": { - "message": "Trykk på hvilken som helst tast, eller bruk musehjulet." + "message": "Trykk p\u00e5 hvilken som helst tast, eller bruk musehjulet." }, "pressAnyKeyOrUseMouseWheel": { - "message": "Trykk på hvilken som helst tast, eller bruk musehjulet" + "message": "Trykk p\u00e5 hvilken som helst tast, eller bruk musehjulet" }, "previousVideo": { "message": "Forrige video" @@ -582,16 +585,16 @@ "message": "Rangere oss" }, "red": { - "message": "Rød" + "message": "R\u00f8d" }, "redDislikeButton": { - "message": "Vis tommel ned i rød farge" + "message": "Vis tommel ned i r\u00f8d farge" }, "relatedVideos": { "message": "Relaterte videoer" }, "removeRelatedSearchResults": { - "message": "Fjern relaterte søkeresultater" + "message": "Fjern relaterte s\u00f8keresultater" }, "repeat": { "message": "Gjenta" @@ -627,10 +630,10 @@ "message": "Skjeravbildning" }, "search": { - "message": "Søk" + "message": "S\u00f8k" }, "searchBarOnly": { - "message": "Bare søkefelt" + "message": "Bare s\u00f8kefelt" }, "seekBackward10Seconds": { "message": "Spol 10 sekunder bakover" @@ -648,13 +651,13 @@ "message": "Snarveier" }, "showCardsOnMouseHover": { - "message": "Vis kort på musepekeren" + "message": "Vis kort p\u00e5 musepekeren" }, "showChannelVideosCount": { "message": "Vis antall kanaler" }, "shuffle": { - "message": "Tilfeldig rekkefølge" + "message": "Tilfeldig rekkef\u00f8lge" }, "sidebar": { "message": "Sidepanel" @@ -696,13 +699,13 @@ "message": "Solnedgang til soloppgang" }, "systemPeferenceDark": { - "message": "Systeminnstillinger: mørk" + "message": "Systeminnstillinger: m\u00f8rk" }, "systemPeferenceLight": { "message": "Systeminnstillinger: lys" }, "teal": { - "message": "Blågrønn" + "message": "Bl\u00e5gr\u00f8nn" }, "textColor": { "message": "Tekstfarge" @@ -753,13 +756,13 @@ "message": "Trender" }, "tryToReloadThePage": { - "message": "Forsøk å laste inn siden på nytt" + "message": "Fors\u00f8k \u00e5 laste inn siden p\u00e5 nytt" }, "type": { "message": "Type" }, "upNextAutoplay": { - "message": "«Spilles senere»-autospilling" + "message": "\u00abSpilles senere\u00bb-autospilling" }, "use24HourFormat": { "message": "Bruk 24-timersformat" @@ -771,7 +774,7 @@ "message": "Video" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Videobeskrivelsen vil bli utvidet for å få med navnet på kategorien" + "message": "Videobeskrivelsen vil bli utvidet for \u00e5 f\u00e5 med navnet p\u00e5 kategorien" }, "videoFormats": { "message": "Video-formater" @@ -789,7 +792,7 @@ "message": "Tid sett" }, "whenTabIsChanged": { - "message": "Når fanen endres" + "message": "N\u00e5r fanen endres" }, "white": { "message": "Hvit" @@ -801,15 +804,15 @@ "message": "YouTube-topptekst (til venstre)" }, "youtubeHeaderRight": { - "message": "YouTube-topptekst (til høyre)" + "message": "YouTube-topptekst (til h\u00f8yre)" }, "youtubeHomePage": { "message": "YouTube-startside" }, "youtubeLanguage": { - "message": "YouTube-språk" + "message": "YouTube-spr\u00e5k" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube begrenser videokvaliteten til 1080p for H.264-kodeket" } -} +} \ No newline at end of file diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index d414d68aa..794556b69 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -1,4 +1,19 @@ { + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "about": { "message": "Over" }, @@ -11,20 +26,20 @@ "activateCaptions": { "message": "Activeer bijschriften" }, + "activateFullscreen": { + "message": "Activeer volledig scherm" + }, "activated": { "message": "Geactiveerd" }, "activatedFeatures": { "message": "Geactiveerde features" }, - "activateFullscreen": { - "message": "Activeer volledig scherm" - }, "activeFeatures": { "message": "Actieve features" }, "addScrollToTop": { - "message": "Voeg «Scroll to top» toe" + "message": "Voeg \u00abScroll to top\u00bb toe" }, "ads": { "message": "Reclames" @@ -38,9 +53,6 @@ "allow60fps": { "message": "60fps toestaan" }, - "forceSDR": { - "message": "Force SDR" - }, "alwaysActive": { "message": "Altijd actief" }, @@ -56,18 +68,6 @@ "appearance": { "message": "Uiterlijk" }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, "audio": { "message": "Audio" }, @@ -135,7 +135,7 @@ "message": "Annuleren" }, "categories": { - "message": "Categoriën" + "message": "Categori\u00ebn" }, "channel": { "message": "Kanaal" @@ -149,12 +149,12 @@ "codecH264": { "message": "Encoderen in h.264" }, - "collapsed": { - "message": "Ingeklapt" - }, "collapseOfSubscriptionSections": { "message": "Uitklappen van abonnee sectie" }, + "collapsed": { + "message": "Ingeklapt" + }, "comments": { "message": "Reacties" }, @@ -236,12 +236,12 @@ "dislike": { "message": "Niet leuk vinden" }, - "donate": { - "message": "Doneer" - }, "doNotChange": { "message": "Niet aanpassen" }, + "donate": { + "message": "Doneer" + }, "draggable": { "message": "Sleepbaar" }, @@ -284,6 +284,9 @@ "footer": { "message": "Voettekst" }, + "forceSDR": { + "message": "Force SDR" + }, "forcedPlaybackSpeed": { "message": "Afspeelsnelheid afdwingen" }, @@ -360,7 +363,7 @@ "message": "Verberg rechter knoppen" }, "hideScrollForDetails": { - "message": "Verberg «Scroll for details»" + "message": "Verberg \u00abScroll for details\u00bb" }, "hideViewsCount": { "message": "Verberg views teller" @@ -389,6 +392,9 @@ "importSettings": { "message": "Instellingen importeren" }, + "improveLogo": { + "message": "YouTube-logo verbeteren" + }, "improvedtubeIconInBrowser": { "message": "ImprovedTube-pictogram in browser" }, @@ -401,9 +407,6 @@ "improvedtubeVersion": { "message": "ImprovedTube versie" }, - "improveLogo": { - "message": "YouTube-logo verbeteren" - }, "increasePlaybackSpeed": { "message": "Verhoog afspeelsnelheid" }, @@ -479,12 +482,12 @@ "noActiveFeatures": { "message": "Geen actieve features" }, - "none": { - "message": "Geen" - }, "noOpenVideoTabs": { "message": "Geen openstaande videotabbladen" }, + "none": { + "message": "Geen" + }, "normal": { "message": "Normaal" }, @@ -494,14 +497,14 @@ "onAllVideos": { "message": "Bij alle videos" }, + "onSubscribedChannels": { + "message": "Op geabonneerde kanalen" + }, "onlyActiveOnYoutube": { "message": "Alleen actief op YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Slechts één actieve speler toestaan" - }, - "onSubscribedChannels": { - "message": "Op geabonneerde kanalen" + "message": "Slechts \u00e9\u00e9n actieve speler toestaan" }, "orange": { "message": "Oranje" @@ -527,6 +530,9 @@ "platform": { "message": "Platform" }, + "playPause": { + "message": "Video afspelen/pauzeren" + }, "playbackSpeed": { "message": "Afspeelsnelheid" }, @@ -545,9 +551,6 @@ "playlists": { "message": "Afspeellijsten" }, - "playPause": { - "message": "Video afspelen/pauzeren" - }, "popupPlayer": { "message": "Pop-upspeler" }, @@ -639,7 +642,7 @@ "message": "Instellingen" }, "settingsSuccessfullyImported": { - "message": "Instellingen succesvol geïmporteerd" + "message": "Instellingen succesvol ge\u00efmporteerd" }, "shortcuts": { "message": "Sneltoetsen" @@ -809,4 +812,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube limiteerd video kwaliteit tot 1080p voor h.264 codec" } -} +} \ No newline at end of file diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 45222e855..08f7c6cc4 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -1,4 +1,19 @@ { + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "about": { "message": "Om" }, @@ -11,20 +26,20 @@ "activateCaptions": { "message": "Aktiver texting" }, + "activateFullscreen": { + "message": "Aktiver fullskjerm" + }, "activated": { "message": "Aktivert" }, "activatedFeatures": { "message": "Aktiverte funksjoner" }, - "activateFullscreen": { - "message": "Aktiver fullskjerm" - }, "activeFeatures": { "message": "Aktive funksjoner" }, "addScrollToTop": { - "message": "Legg til «Rull til toppen»" + "message": "Legg til \u00abRull til toppen\u00bb" }, "ads": { "message": "Reklamer" @@ -38,9 +53,6 @@ "allow60fps": { "message": "Tillat 60fps" }, - "forceSDR": { - "message": "Force SDR" - }, "alwaysActive": { "message": "Alltid aktiv" }, @@ -56,18 +68,6 @@ "appearance": { "message": "Utseende" }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, "audio": { "message": "Lyd" }, @@ -81,7 +81,7 @@ "message": "Auto-fullskjerm" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause når du bytter faner" + "message": "Autopause n\u00e5r du bytter faner" }, "autoplay": { "message": "Autoplay" @@ -90,7 +90,7 @@ "message": "Sikkerhetskopiering og tilbakestilling" }, "baseOnSystemColorScheme": { - "message": "Baser på systemfargevalg" + "message": "Baser p\u00e5 systemfargevalg" }, "belowPlayer": { "message": "Nedenfor spiller" @@ -105,13 +105,13 @@ "message": "Blokker alle" }, "blue": { - "message": "Blå" + "message": "Bl\u00e5" }, "blueGray": { - "message": "Blå grå" + "message": "Bl\u00e5 gr\u00e5" }, "bluelight": { - "message": "Blålys" + "message": "Bl\u00e5lys" }, "brown": { "message": "Brun" @@ -149,17 +149,17 @@ "codecH264": { "message": "Codec h.264" }, - "collapsed": { - "message": "kollapset" - }, "collapseOfSubscriptionSections": { "message": "Kollaps av abonnements seksjonene" }, + "collapsed": { + "message": "kollapset" + }, "comments": { "message": "Kommentarer" }, "confirmationBeforeClosing": { - "message": "Bekreftelse før stenging" + "message": "Bekreftelse f\u00f8r stenging" }, "cookies": { "message": "Informasjonskapslene" @@ -183,10 +183,10 @@ "message": "Cyan" }, "dark": { - "message": "Mørk" + "message": "M\u00f8rk" }, "darkTheme": { - "message": "Mørkt tema" + "message": "M\u00f8rkt tema" }, "dateAndTime": { "message": "Dato og klokkeslett" @@ -204,7 +204,7 @@ "message": "Dyporansje" }, "deepPurple": { - "message": "Mørkelilla" + "message": "M\u00f8rkelilla" }, "defaultChannelTab": { "message": "Standard kanalfane" @@ -216,7 +216,7 @@ "message": "Beskrivelse" }, "desert": { - "message": "Ørken" + "message": "\u00d8rken" }, "details": { "message": "Detaljer" @@ -231,17 +231,17 @@ "message": "Dim" }, "disabled": { - "message": "Avslått" + "message": "Avsl\u00e5tt" }, "dislike": { "message": "Mislik" }, - "donate": { - "message": "Doner" - }, "doNotChange": { "message": "Ikke endre" }, + "donate": { + "message": "Doner" + }, "draggable": { "message": "Flyttbare" }, @@ -284,6 +284,9 @@ "footer": { "message": "Bunntekst" }, + "forceSDR": { + "message": "Force SDR" + }, "forcedPlaybackSpeed": { "message": "Tvungen avspillingshastighet" }, @@ -306,13 +309,13 @@ "message": "GitHub" }, "goToSearchBox": { - "message": "Gå til søkefeltet" + "message": "G\u00e5 til s\u00f8kefeltet" }, "gpu": { "message": "GPU" }, "green": { - "message": "Grønn" + "message": "Gr\u00f8nn" }, "hdThumbnail": { "message": "HD-miniatyrbilde" @@ -327,7 +330,7 @@ "message": "Skjult" }, "hiddenOnVideoPage": { - "message": "Skjult på video siden" + "message": "Skjult p\u00e5 video siden" }, "hideAnimatedThumbnails": { "message": "Skjul animerte miniatyrbilder" @@ -354,10 +357,10 @@ "message": "Skjul spilleliste" }, "hideRightButtons": { - "message": "Skjul høyre knapper" + "message": "Skjul h\u00f8yre knapper" }, "hideScrollForDetails": { - "message": "Skjul «Bla for detaljer»" + "message": "Skjul \u00abBla for detaljer\u00bb" }, "hideViewsCount": { "message": "Skjul visninger teller" @@ -372,7 +375,7 @@ "message": "Hold" }, "hoverOnVideoPage": { - "message": "Hold musepekeren på videosiden" + "message": "Hold musepekeren p\u00e5 videosiden" }, "howLongAgoTheVideoWasUploaded": { "message": "Hvor lenge siden videoen ble lastet opp" @@ -386,26 +389,26 @@ "importSettings": { "message": "Importer innstillinger" }, + "improveLogo": { + "message": "Improve logo" + }, "improvedtubeIconInBrowser": { "message": "ImprovedTube-ikonet i nettleseren" }, "improvedtubeIconOnYoutube": { - "message": "ImprovedTube-ikonet på YouTube" + "message": "ImprovedTube-ikonet p\u00e5 YouTube" }, "improvedtubeLanguage": { - "message": "ImprovedTube språk" + "message": "ImprovedTube spr\u00e5k" }, "improvedtubeVersion": { "message": "ImprovedTube versjon" }, - "improveLogo": { - "message": "Improve logo" - }, "increasePlaybackSpeed": { - "message": "Øk avspillingshastigheten" + "message": "\u00d8k avspillingshastigheten" }, "increaseVolume": { - "message": "Øk volumet" + "message": "\u00d8k volumet" }, "indigo": { "message": "Indigo" @@ -414,7 +417,7 @@ "message": "Elementer" }, "languages": { - "message": "Språk" + "message": "Spr\u00e5k" }, "legacyYoutube": { "message": "Legacy YouTube" @@ -423,10 +426,10 @@ "message": "Lys" }, "lightBlue": { - "message": "Lyse blå" + "message": "Lyse bl\u00e5" }, "lightGreen": { - "message": "Lyse grønn" + "message": "Lyse gr\u00f8nn" }, "like": { "message": "Like" @@ -447,7 +450,7 @@ "message": "Live chat type" }, "loudnessNormalization": { - "message": "Høytthetsnormalisering" + "message": "H\u00f8ytthetsnormalisering" }, "markWatchedVideos": { "message": "Marker sette videoer" @@ -462,7 +465,7 @@ "message": "Navn" }, "nativeMiniPlayer": { - "message": "Innfødt minispiller" + "message": "Innf\u00f8dt minispiller" }, "new": { "message": "Ny" @@ -476,12 +479,12 @@ "noActiveFeatures": { "message": "Ingen aktive funksjoner" }, + "noOpenVideoTabs": { + "message": "Ingen \u00e5pne videofaner" + }, "none": { "message": "Ingen" }, - "noOpenVideoTabs": { - "message": "Ingen åpne videofaner" - }, "normal": { "message": "Normal" }, @@ -489,17 +492,17 @@ "message": "Gammel" }, "onAllVideos": { - "message": "På alle videoer" + "message": "P\u00e5 alle videoer" + }, + "onSubscribedChannels": { + "message": "P\u00e5 abonnementskanaler" }, "onlyActiveOnYoutube": { - "message": "Bare aktiv på YouTube" + "message": "Bare aktiv p\u00e5 YouTube" }, "onlyOnePlayerInstancePlaying": { "message": "Bare en spillerforekomst som spiller" }, - "onSubscribedChannels": { - "message": "På abonnementskanaler" - }, "orange": { "message": "Oransje" }, @@ -524,6 +527,9 @@ "platform": { "message": "Plattform" }, + "playPause": { + "message": "Spill / Pause" + }, "playbackSpeed": { "message": "Avspillingshastighet" }, @@ -534,7 +540,7 @@ "message": "Spiller farge" }, "playerSize": { - "message": "Spiller størrelse" + "message": "Spiller st\u00f8rrelse" }, "playlist": { "message": "Spilleliste" @@ -542,9 +548,6 @@ "playlists": { "message": "Spillelister" }, - "playPause": { - "message": "Spill / Pause" - }, "popupPlayer": { "message": "Popup-spiller" }, @@ -552,10 +555,10 @@ "message": "Posisjon" }, "pressAnyKeyOrScroll": { - "message": "Trykk på hvilken som helst tast eller bruk musehjulet." + "message": "Trykk p\u00e5 hvilken som helst tast eller bruk musehjulet." }, "pressAnyKeyOrUseMouseWheel": { - "message": "Trykk på hvilken som helst tast eller bruk musehjulet" + "message": "Trykk p\u00e5 hvilken som helst tast eller bruk musehjulet" }, "previousVideo": { "message": "Forrige video" @@ -576,7 +579,7 @@ "message": "Rangere oss" }, "red": { - "message": "Rød" + "message": "R\u00f8d" }, "redDislikeButton": { "message": "Show dislike button red colour" @@ -585,7 +588,7 @@ "message": "Relaterte videoer" }, "removeRelatedSearchResults": { - "message": "Fjern relaterte søkeresultater" + "message": "Fjern relaterte s\u00f8keresultater" }, "repeat": { "message": "Gjenta" @@ -621,10 +624,10 @@ "message": "Skjermbilde" }, "search": { - "message": "Søk" + "message": "S\u00f8k" }, "searchBarOnly": { - "message": "Bare søkefelt" + "message": "Bare s\u00f8kefelt" }, "seekBackward10Seconds": { "message": "Spol 10 sekunder bakover" @@ -642,13 +645,13 @@ "message": "Snarveier" }, "showCardsOnMouseHover": { - "message": "Vis kort på musepekeren" + "message": "Vis kort p\u00e5 musepekeren" }, "showChannelVideosCount": { "message": "Vis antall kanaler" }, "shuffle": { - "message": "Tilfeldig rekkefølge" + "message": "Tilfeldig rekkef\u00f8lge" }, "sidebar": { "message": "Sidepanel" @@ -687,13 +690,13 @@ "message": "Solnedgang til soloppgang" }, "systemPeferenceDark": { - "message": "Systeminnstillinger: mørk" + "message": "Systeminnstillinger: m\u00f8rk" }, "systemPeferenceLight": { "message": "Systeminnstillinger: lys" }, "teal": { - "message": "Blågrønn" + "message": "Bl\u00e5gr\u00f8nn" }, "textColor": { "message": "Tekstfarge" @@ -741,7 +744,7 @@ "message": "Trender" }, "tryToReloadThePage": { - "message": "Forsøk å laste inn siden på nytt" + "message": "Fors\u00f8k \u00e5 laste inn siden p\u00e5 nytt" }, "type": { "message": "Type" @@ -759,7 +762,7 @@ "message": "Video" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Videobeskrivelsen vil bli utvidet for å få navnet på kategorien" + "message": "Videobeskrivelsen vil bli utvidet for \u00e5 f\u00e5 navnet p\u00e5 kategorien" }, "videoFormats": { "message": "Video formater" @@ -777,7 +780,7 @@ "message": "Tid sett" }, "whenTabIsChanged": { - "message": "Når fanen endres" + "message": "N\u00e5r fanen endres" }, "white": { "message": "Hvit" @@ -789,15 +792,15 @@ "message": "YouTube Header (til venstre)" }, "youtubeHeaderRight": { - "message": "YouTube Header (til høyre)" + "message": "YouTube Header (til h\u00f8yre)" }, "youtubeHomePage": { "message": "YouTube startside" }, "youtubeLanguage": { - "message": "YouTube språk" + "message": "YouTube spr\u00e5k" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube begrenser videokvaliteten til 1080p for h.264-kodeken" } -} +} \ No newline at end of file diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 59e2e3b1c..bc1d14ff4 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -1,4 +1,19 @@ { + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "about": { "message": "Informacje" }, @@ -11,20 +26,20 @@ "activateCaptions": { "message": "Aktywuj napisy" }, + "activateFullscreen": { + "message": "Aktywuj tryb pe\u0142noekranowy" + }, "activated": { "message": "Aktywowane" }, "activatedFeatures": { "message": "Aktywowane funkcje" }, - "activateFullscreen": { - "message": "Aktywuj tryb pełnoekranowy" - }, "activeFeatures": { "message": "Aktywne funkcje" }, "addScrollToTop": { - "message": "Dodaj «Przewiń do góry»" + "message": "Dodaj \u00abPrzewi\u0144 do g\u00f3ry\u00bb" }, "ads": { "message": "Reklamy" @@ -33,19 +48,16 @@ "message": "Wszystkie" }, "allow": { - "message": "Zezwól" + "message": "Zezw\u00f3l" }, "allow60fps": { - "message": "Zezwól na 60fps" - }, - "forceSDR": { - "message": "Wymuś SDR" + "message": "Zezw\u00f3l na 60fps" }, "alwaysActive": { "message": "Zawsze aktywne" }, "alwaysShowProgressBar": { - "message": "Zawsze pokazuj pasek postępu" + "message": "Zawsze pokazuj pasek post\u0119pu" }, "amber": { "message": "Bursztynowy" @@ -54,19 +66,7 @@ "message": "Analizator" }, "appearance": { - "message": "Wygląd" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" + "message": "Wygl\u0105d" }, "audio": { "message": "Audio" @@ -78,7 +78,7 @@ "message": "Auto" }, "autoFullscreen": { - "message": "Automatyczny tryb pełnoekranowy" + "message": "Automatyczny tryb pe\u0142noekranowy" }, "autopauseWhenSwitchingTabs": { "message": "Automatyczna pauza przy zmianie kart" @@ -90,7 +90,7 @@ "message": "Kopia zapasowa i reset" }, "baseOnSystemColorScheme": { - "message": "Bazuj na systemowym schemacie kolorów" + "message": "Bazuj na systemowym schemacie kolor\u00f3w" }, "belowPlayer": { "message": "Pod odtwarzaczem" @@ -111,16 +111,16 @@ "message": "Szaroniebieski" }, "bluelight": { - "message": "Niebieskie światło" + "message": "Niebieskie \u015bwiat\u0142o" }, "brown": { - "message": "Brązowy" + "message": "Br\u0105zowy" }, "browser": { - "message": "Przeglądarka" + "message": "Przegl\u0105darka" }, "browserVersion": { - "message": "Wersja przeglądarki" + "message": "Wersja przegl\u0105darki" }, "bubbles": { "message": "Dymki" @@ -138,10 +138,10 @@ "message": "Kategorie" }, "channel": { - "message": "Kanał" + "message": "Kana\u0142" }, "channels": { - "message": "Kanały" + "message": "Kana\u0142y" }, "clipboard": { "message": "Schowek" @@ -149,17 +149,17 @@ "codecH264": { "message": "Kodek h.264" }, - "collapsed": { - "message": "Zwinięte" - }, "collapseOfSubscriptionSections": { - "message": "Zwinięcie sekcji subskrypcji" + "message": "Zwini\u0119cie sekcji subskrypcji" + }, + "collapsed": { + "message": "Zwini\u0119te" }, "comments": { "message": "Komentarze" }, "confirmationBeforeClosing": { - "message": "Potwierdzenie przy zamknięciu" + "message": "Potwierdzenie przy zamkni\u0119ciu" }, "cookies": { "message": "Ciasteczka" @@ -168,7 +168,7 @@ "message": "Rdzenie" }, "cropChapterTitles": { - "message": "Przycinaj tytuły rozdziałów" + "message": "Przycinaj tytu\u0142y rozdzia\u0142\u00f3w" }, "customCss": { "message": "Niestandardowy CSS" @@ -179,9 +179,6 @@ "customMiniPlayer": { "message": "Niestandardowy Mini-Odtwarzacz" }, - "openPopupPlayer": { - "message": "Otwórz wideo/playliste w nowym oknie" - }, "cyan": { "message": "Cyjan" }, @@ -195,25 +192,25 @@ "message": "Data i godzina" }, "dawn": { - "message": "Świt" + "message": "\u015awit" }, "decreasePlaybackSpeed": { - "message": "Zmniejsz prędkość odtwarzania" + "message": "Zmniejsz pr\u0119dko\u015b\u0107 odtwarzania" }, "decreaseVolume": { - "message": "Zmniejsz głośność" + "message": "Zmniejsz g\u0142o\u015bno\u015b\u0107" }, "deepOrange": { - "message": "Głęboki pomarańczowy" + "message": "G\u0142\u0119boki pomara\u0144czowy" }, "deepPurple": { - "message": "Głęboki fioletowy" + "message": "G\u0142\u0119boki fioletowy" }, "defaultChannelTab": { - "message": "Domyślna zakładka na kanałach" + "message": "Domy\u015blna zak\u0142adka na kana\u0142ach" }, "deleteYoutubeCookies": { - "message": "Usuń ciasteczka YouTube" + "message": "Usu\u0144 ciasteczka YouTube" }, "description": { "message": "Opis" @@ -222,31 +219,31 @@ "message": "Pustynia" }, "details": { - "message": "Szczegóły" + "message": "Szczeg\u00f3\u0142y" }, "developerOptions": { "message": "Ustawienia deweloperskie" }, "device": { - "message": "Urządzenie" + "message": "Urz\u0105dzenie" }, "dim": { "message": "Przyciemnij" }, "disabled": { - "message": "Wyłączony" + "message": "Wy\u0142\u0105czony" }, "dislike": { - "message": "Nie podoba mi się" - }, - "donate": { - "message": "Dotacja" + "message": "Nie podoba mi si\u0119" }, "doNotChange": { "message": "Nie zmieniaj" }, + "donate": { + "message": "Dotacja" + }, "draggable": { - "message": "Przeciągalne" + "message": "Przeci\u0105galne" }, "email": { "message": "Email" @@ -255,16 +252,16 @@ "message": "Pusty" }, "enabled": { - "message": "Włączony" + "message": "W\u0142\u0105czony" }, "enabledForced": { - "message": "Włączony (wymuszony)" + "message": "W\u0142\u0105czony (wymuszony)" }, "expanded": { - "message": "Rozwinięty" + "message": "Rozwini\u0119ty" }, "exportSettings": { - "message": "Eksport ustawień" + "message": "Eksport ustawie\u0144" }, "extension": { "message": "Rozszerzenie" @@ -279,7 +276,7 @@ "message": "Dopasuj do okna" }, "flash": { - "message": "Błysk" + "message": "B\u0142ysk" }, "font": { "message": "Czcionka" @@ -287,23 +284,26 @@ "footer": { "message": "Stopka" }, + "forceSDR": { + "message": "Wymu\u015b SDR" + }, "forcedPlaybackSpeed": { - "message": "Wymuś prędkość odtwarzania" + "message": "Wymu\u015b pr\u0119dko\u015b\u0107 odtwarzania" }, "forcedTheaterMode": { - "message": "Wymuś tryb kinowy" + "message": "Wymu\u015b tryb kinowy" }, "forcedVolume": { - "message": "Wymuś poziom głośności" + "message": "Wymu\u015b poziom g\u0142o\u015bno\u015bci" }, "foundABug": { - "message": "Znalazłeś buga?" + "message": "Znalaz\u0142e\u015b buga?" }, "fullWindow": { - "message": "Pełne okno" + "message": "Pe\u0142ne okno" }, "general": { - "message": "Ogólne" + "message": "Og\u00f3lne" }, "geoPreference": { "message": "Geo preferencja" @@ -312,7 +312,7 @@ "message": "GitHub" }, "goToSearchBox": { - "message": "Idź do paska wyszukiwania" + "message": "Id\u017a do paska wyszukiwania" }, "gpu": { "message": "GPU" @@ -327,7 +327,7 @@ "message": "Miniatury HD" }, "header": { - "message": "Nagłówek" + "message": "Nag\u0142\u00f3wek" }, "hidden": { "message": "Ukryty" @@ -348,19 +348,19 @@ "message": "Ukryj sterowanie odtwarzaczem" }, "hideDetails": { - "message": "Ukryj szczegóły" + "message": "Ukryj szczeg\u00f3\u0142y" }, "hideEndscreen": { - "message": "Ukryj ekran końcowy" + "message": "Ukryj ekran ko\u0144cowy" }, "hideFeaturedContent": { - "message": "Ukryj wyróżnioną zawartość" + "message": "Ukryj wyr\u00f3\u017cnion\u0105 zawarto\u015b\u0107" }, "hideFooter": { - "message": "Ukryj stopkę" + "message": "Ukryj stopk\u0119" }, "hideGradientBottom": { - "message": "Ukryj cień dookoła paska odtwarzania" + "message": "Ukryj cie\u0144 dooko\u0142a paska odtwarzania" }, "hidePlaylist": { "message": "Ukryj playliste" @@ -369,28 +369,28 @@ "message": "Ukryj przyciski po prawej" }, "hideScrollForDetails": { - "message": "Ukryj «Przewiń do szczegółów»" + "message": "Ukryj \u00abPrzewi\u0144 do szczeg\u00f3\u0142\u00f3w\u00bb" }, "hideThumbnailOverlay": { "message": "Ukryj przyciski na miniaturach" }, "hideViewsCount": { - "message": "Ukryj ilość wyświetleń" + "message": "Ukryj ilo\u015b\u0107 wy\u015bwietle\u0144" }, "history": { "message": "Historia" }, "home": { - "message": "Strona główna" + "message": "Strona g\u0142\u00f3wna" }, "hover": { - "message": "Najedź" + "message": "Najed\u017a" }, "hoverOnVideoPage": { - "message": "Najedź na stronie wideo" + "message": "Najed\u017a na stronie wideo" }, "howLongAgoTheVideoWasUploaded": { - "message": "Jak dawno wideo zostało przesłane" + "message": "Jak dawno wideo zosta\u0142o przes\u0142ane" }, "icons": { "message": "Ikony" @@ -399,28 +399,28 @@ "message": "Tylko ikony" }, "importSettings": { - "message": "Import ustawień" + "message": "Import ustawie\u0144" + }, + "improveLogo": { + "message": "Ulepsz logo" }, "improvedtubeIconInBrowser": { - "message": "Ikona ImprovedTube w przeglądarce" + "message": "Ikona ImprovedTube w przegl\u0105darce" }, "improvedtubeIconOnYoutube": { "message": "Ikona ImprovedTube na YouTube" }, "improvedtubeLanguage": { - "message": "Język ImprovedTube" + "message": "J\u0119zyk ImprovedTube" }, "improvedtubeVersion": { "message": "Wersja ImprovedTube" }, - "improveLogo": { - "message": "Ulepsz logo" - }, "increasePlaybackSpeed": { - "message": "Zwiększ prędkość odtwarzania" + "message": "Zwi\u0119ksz pr\u0119dko\u015b\u0107 odtwarzania" }, "increaseVolume": { - "message": "Zwiększ głośność" + "message": "Zwi\u0119ksz g\u0142o\u015bno\u015b\u0107" }, "indigo": { "message": "Indygo" @@ -429,7 +429,7 @@ "message": "Przedmioty" }, "languages": { - "message": "Języki" + "message": "J\u0119zyki" }, "legacyYoutube": { "message": "Stara wersja YouTube" @@ -456,13 +456,13 @@ "message": "Lista" }, "liveChat": { - "message": "Czat na żywo" + "message": "Czat na \u017cywo" }, "liveChatType": { - "message": "Rodzaj czatu na żywo" + "message": "Rodzaj czatu na \u017cywo" }, "loudnessNormalization": { - "message": "Normalizacja głośności" + "message": "Normalizacja g\u0142o\u015bno\u015bci" }, "markWatchedVideos": { "message": "Oznacz obejrzane wideo" @@ -483,7 +483,7 @@ "message": "Nowe" }, "nextVideo": { - "message": "Następne wideo" + "message": "Nast\u0119pne wideo" }, "night": { "message": "Noc" @@ -491,12 +491,12 @@ "noActiveFeatures": { "message": "Brak aktywnych funkcji" }, - "none": { - "message": "Brak" - }, "noOpenVideoTabs": { "message": "Brak otwartych kart wideo" }, + "none": { + "message": "Brak" + }, "normal": { "message": "Normalny" }, @@ -506,17 +506,20 @@ "onAllVideos": { "message": "Na wszystkich wideo" }, + "onSubscribedChannels": { + "message": "Na subskrybowanych kana\u0142ach" + }, "onlyActiveOnYoutube": { "message": "Aktywny tylko na YouTube" }, "onlyOnePlayerInstancePlaying": { "message": "Odtwarzanie tylko jednej instancji odtwarzacza" }, - "onSubscribedChannels": { - "message": "Na subskrybowanych kanałach" + "openPopupPlayer": { + "message": "Otw\u00f3rz wideo/playliste w nowym oknie" }, "orange": { - "message": "Pomarańczowy" + "message": "Pomara\u0144czowy" }, "os": { "message": "OS" @@ -531,16 +534,19 @@ "message": "Obraz w Obrazie" }, "pink": { - "message": "Różowy" + "message": "R\u00f3\u017cowy" }, "plain": { - "message": "Zwykły" + "message": "Zwyk\u0142y" }, "platform": { "message": "Platforma" }, + "playPause": { + "message": "Odtwarzanie / Pauza" + }, "playbackSpeed": { - "message": "Prędkość odtwarzania" + "message": "Pr\u0119dko\u015b\u0107 odtwarzania" }, "player": { "message": "Odtwarzacz" @@ -557,9 +563,6 @@ "playlists": { "message": "Playlisty" }, - "playPause": { - "message": "Odtwarzanie / Pauza" - }, "popupPlayer": { "message": "Odtwarzacz popout" }, @@ -567,40 +570,40 @@ "message": "Pozycja" }, "pressAnyKeyOrScroll": { - "message": "Wciśnij dowolny przycisk lub użyj kółka myszy." + "message": "Wci\u015bnij dowolny przycisk lub u\u017cyj k\u00f3\u0142ka myszy." }, "pressAnyKeyOrUseMouseWheel": { - "message": "Wciśnij dowolny przycisk lub użyj kółka myszy" + "message": "Wci\u015bnij dowolny przycisk lub u\u017cyj k\u00f3\u0142ka myszy" }, "previousVideo": { "message": "Poprzednie wideo" }, "primaryColor": { - "message": "Kolor główny" + "message": "Kolor g\u0142\u00f3wny" }, "purple": { "message": "Fioletowy" }, "quality": { - "message": "Jakość" + "message": "Jako\u015b\u0107" }, "ram": { "message": "RAM" }, "rateUs": { - "message": "Oceń nas" + "message": "Oce\u0144 nas" }, "red": { "message": "Czerwony" }, "redDislikeButton": { - "message": "Koloruj przycisk 'Nie lubię' na czerwono" + "message": "Koloruj przycisk 'Nie lubi\u0119' na czerwono" }, "relatedVideos": { - "message": "Wideo powiązane" + "message": "Wideo powi\u0105zane" }, "removeRelatedSearchResults": { - "message": "Usuń powiązane wyniki wyszukiwania" + "message": "Usu\u0144 powi\u0105zane wyniki wyszukiwania" }, "repeat": { "message": "Powtarzaj" @@ -612,13 +615,13 @@ "message": "Resetuj wszystkie ustawienia" }, "resetAllShortcuts": { - "message": "Resetuj wszystkie skróty" + "message": "Resetuj wszystkie skr\u00f3ty" }, "reverse": { - "message": "Odwróć" + "message": "Odwr\u00f3\u0107" }, "rotate": { - "message": "Obróć" + "message": "Obr\u00f3\u0107" }, "save": { "message": "Zapisz" @@ -642,25 +645,25 @@ "message": "Tylko pasek wyszukiwania" }, "seekBackward10Seconds": { - "message": "Przewiń 10 sekund do tyłu" + "message": "Przewi\u0144 10 sekund do ty\u0142u" }, "seekForward10Seconds": { - "message": "Przewiń 10 sekund do przodu" + "message": "Przewi\u0144 10 sekund do przodu" }, "settings": { "message": "Ustawienia" }, "settingsSuccessfullyImported": { - "message": "Ustawienia pomyślnie zaimportowane" + "message": "Ustawienia pomy\u015blnie zaimportowane" }, "shortcuts": { - "message": "Skróty" + "message": "Skr\u00f3ty" }, "showCardsOnMouseHover": { - "message": "Pokaż karty po najechaniu myszą" + "message": "Poka\u017c karty po najechaniu mysz\u0105" }, "showChannelVideosCount": { - "message": "Pokaż ilość wideo na kanale" + "message": "Poka\u017c ilo\u015b\u0107 wideo na kanale" }, "shuffle": { "message": "Shuffle" @@ -672,16 +675,16 @@ "message": "Spacja" }, "squaredUserImages": { - "message": "Kwadratowe avatary użytkowników" + "message": "Kwadratowe avatary u\u017cytkownik\u00f3w" }, "static": { "message": "Statyczne" }, "statsForNerds": { - "message": "Statystyki dla nerdów" + "message": "Statystyki dla nerd\u00f3w" }, "step": { - "message": "Stopień" + "message": "Stopie\u0144" }, "stop": { "message": "Stop" @@ -699,10 +702,10 @@ "message": "Napisy" }, "sunset": { - "message": "Zachód" + "message": "Zach\u00f3d" }, "sunsetToSunrise": { - "message": "Od zachodu do wschodu słońca" + "message": "Od zachodu do wschodu s\u0142o\u0144ca" }, "systemPeferenceDark": { "message": "Preferencja systemowa: ciemne" @@ -729,7 +732,7 @@ "message": "To zresetuje wszystkie ustawienia." }, "thisWillResetAllShortcuts": { - "message": "To zresetuje wszystkie skróty" + "message": "To zresetuje wszystkie skr\u00f3ty" }, "thumbnails": { "message": "Miniatury" @@ -744,40 +747,40 @@ "message": "Dzisiaj o" }, "toggleAutoplay": { - "message": "Przełącz autoodtwarzanie" + "message": "Prze\u0142\u0105cz autoodtwarzanie" }, "toggleCards": { - "message": "Przełącz karty" + "message": "Prze\u0142\u0105cz karty" }, "toggleControls": { - "message": "Przełącz widoczność sterowania odtwarzaczew" + "message": "Prze\u0142\u0105cz widoczno\u015b\u0107 sterowania odtwarzaczew" }, "topChat": { - "message": "Czat na górze" + "message": "Czat na g\u00f3rze" }, "trailerAutoplay": { - "message": "Autoodtwarzanie zwiastunów" + "message": "Autoodtwarzanie zwiastun\u00f3w" }, "translations": { - "message": "Tłumaczenia" + "message": "T\u0142umaczenia" }, "transparentBackground": { - "message": "Przezroczyste tło" + "message": "Przezroczyste t\u0142o" }, "trending": { "message": "Trending" }, "tryToReloadThePage": { - "message": "Spróbuj przeładować stronę" + "message": "Spr\u00f3buj prze\u0142adowa\u0107 stron\u0119" }, "type": { "message": "Typ" }, "upNextAutoplay": { - "message": "Autoodwarzanie następnego wideo" + "message": "Autoodwarzanie nast\u0119pnego wideo" }, "use24HourFormat": { - "message": "Używaj 24-godzinnego formatu czasu" + "message": "U\u017cywaj 24-godzinnego formatu czasu" }, "version": { "message": "Wersja" @@ -786,7 +789,7 @@ "message": "Wideo" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Opis wideo zostanie rozwinięty aby pozyskać nazwę kategorii" + "message": "Opis wideo zostanie rozwini\u0119ty aby pozyska\u0107 nazw\u0119 kategorii" }, "videoFormats": { "message": "Formaty wideo" @@ -795,36 +798,36 @@ "message": "Wideo" }, "volume": { - "message": "Głośność" + "message": "G\u0142o\u015bno\u015b\u0107" }, "watchLater": { - "message": "Obejrzyj później" + "message": "Obejrzyj p\u00f3\u017aniej" }, "watchTime": { - "message": "Czas oglądania" + "message": "Czas ogl\u0105dania" }, "whenTabIsChanged": { "message": "Kiedy zostaje zmieniona karta" }, "white": { - "message": "Biały" + "message": "Bia\u0142y" }, "yellow": { - "message": "Żółty" + "message": "\u017b\u00f3\u0142ty" }, "youtubeHeaderLeft": { - "message": "Nagłówek YouTube (lewy)" + "message": "Nag\u0142\u00f3wek YouTube (lewy)" }, "youtubeHeaderRight": { - "message": "Nagłówek YouTube (prawy)" + "message": "Nag\u0142\u00f3wek YouTube (prawy)" }, "youtubeHomePage": { - "message": "Strona główna YouTube" + "message": "Strona g\u0142\u00f3wna YouTube" }, "youtubeLanguage": { - "message": "Język YouTube" + "message": "J\u0119zyk YouTube" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube ogranicza jakość wideo do 1080p przy kodeku h.264" + "message": "YouTube ogranicza jako\u015b\u0107 wideo do 1080p przy kodeku h.264" } -} +} \ No newline at end of file diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 1caf16d9d..03c493c5c 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -1,812 +1,815 @@ -{ - "about": { - "message": "Sobre" - }, - "accept": { - "message": "Accept" - }, - "activate": { - "message": "Activate" - }, - "activateCaptions": { - "message": "Ativar legendas" - }, - "activated": { - "message": "Activated" - }, - "activatedFeatures": { - "message": "Activated features" - }, - "activateFullscreen": { - "message": "Ativar tela cheia" - }, - "activeFeatures": { - "message": "Funções ativas" - }, - "addScrollToTop": { - "message": "Habilitar botão «Voltar ao Topo»" - }, - "ads": { - "message": "Anúncios" - }, - "all": { - "message": "All" - }, - "allow": { - "message": "Permitir" - }, - "allow60fps": { - "message": "Permitir 60fps" - }, - "forceSDR": { - "message": "Force SDR" - }, - "alwaysActive": { - "message": "Sempre ativo" - }, - "alwaysShowProgressBar": { - "message": "Sempre exibir a barra de progresso" - }, - "amber": { - "message": "Âmbar" - }, - "analyzer": { - "message": "Analítico" - }, - "appearance": { - "message": "Aparência" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Áudio" - }, - "audioFormats": { - "message": "Formatos de áudio" - }, - "auto": { - "message": "Automático" - }, - "autoFullscreen": { - "message": "Tela cheia automática" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausar vídeo ao alternar entre abas" - }, - "autoplay": { - "message": "Reprodução automática" - }, - "backupAndReset": { - "message": "Backup & Restauração" - }, - "baseOnSystemColorScheme": { - "message": "Baseado nas cores do sistema" - }, - "belowPlayer": { - "message": "Abaixo do player" - }, - "black": { - "message": "Preto" - }, - "blacklist": { - "message": "Lista negra" - }, - "blockAll": { - "message": "Bloquear tudo" - }, - "blue": { - "message": "Azul" - }, - "blueGray": { - "message": "Cinza Azulado" - }, - "bluelight": { - "message": "Filtrar luz azul" - }, - "brown": { - "message": "Marrom" - }, - "browser": { - "message": "Navegador" - }, - "browserVersion": { - "message": "Versão do navegador" - }, - "bubbles": { - "message": "Bolhas" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Botões" - }, - "cancel": { - "message": "Cancelar" - }, - "categories": { - "message": "Categorias" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canais" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapsed": { - "message": "Retraído" - }, - "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" - }, - "comments": { - "message": "Comentários" - }, - "confirmationBeforeClosing": { - "message": "Alerta ao fechar a página" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Núcleos" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Custom JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Ciano" - }, - "dark": { - "message": "Obscuro" - }, - "darkTheme": { - "message": "Tema escuro" - }, - "dateAndTime": { - "message": "Data & Hora" - }, - "dawn": { - "message": "Alvorecer" - }, - "decreasePlaybackSpeed": { - "message": "Diminuir velocidade" - }, - "decreaseVolume": { - "message": "Diminuir volume" - }, - "deepOrange": { - "message": "Laranja Escuro" - }, - "deepPurple": { - "message": "Roxo Escuro" - }, - "defaultChannelTab": { - "message": "Aba padrão do canal" - }, - "deleteYoutubeCookies": { - "message": "Deletar cookies do YouTube" - }, - "description": { - "message": "Descrição" - }, - "desert": { - "message": "Deserto" - }, - "details": { - "message": "Detalhes" - }, - "developerOptions": { - "message": "Developer options" - }, - "device": { - "message": "Dispositivo" - }, - "dim": { - "message": "Escurecer" - }, - "disabled": { - "message": "Desabilitado" - }, - "dislike": { - "message": "Não Gostei." - }, - "donate": { - "message": "Doar" - }, - "doNotChange": { - "message": "Não alterar" - }, - "draggable": { - "message": "Arrastável" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Vazio" - }, - "enabled": { - "message": "Habilitado" - }, - "enabledForced": { - "message": "Enabled (forced)" - }, - "expanded": { - "message": "Expandido" - }, - "exportSettings": { - "message": "Exportar configurações" - }, - "extension": { - "message": "Extensão" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filtros" - }, - "fitToWindow": { - "message": "Ajustar à janela" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "footer": { - "message": "Rodapé" - }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, - "forcedTheaterMode": { - "message": "Forçar modo teatro" - }, - "forcedVolume": { - "message": "Forçar volume" - }, - "foundABug": { - "message": "Encontrou um bug?" - }, - "fullWindow": { - "message": "Preencher a janela" - }, - "general": { - "message": "Geral" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Selecionar barra de pesquisa" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura em HD" - }, - "hdThumbnails": { - "message": "Miniaturas em HD" - }, - "header": { - "message": "Cabeçalho" - }, - "hidden": { - "message": "Oculto" - }, - "hiddenOnVideoPage": { - "message": "Oculto na página de vídeo" - }, - "hideAnimatedThumbnails": { - "message": "Desabilitar miniaturas animadas" - }, - "hideAnnotations": { - "message": "Ocultar anotações" - }, - "hideCards": { - "message": "Ocultar cards" - }, - "hideDetails": { - "message": "Ocultar detalhes" - }, - "hideEndscreen": { - "message": "Ocultar tela final" - }, - "hideFeaturedContent": { - "message": "Ocultar conteúdo em destaque" - }, - "hideFooter": { - "message": "Ocultar rodapé" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "hidePlaylist": { - "message": "Ocultar playlist" - }, - "hideRightButtons": { - "message": "Ocultar botões à direita" - }, - "hideScrollForDetails": { - "message": "Ocultar «Rolar Para Ver Detalhes»" - }, - "hideViewsCount": { - "message": "Ocultar visualizações" - }, - "history": { - "message": "Histórico" - }, - "home": { - "message": "Início" - }, - "hover": { - "message": "Retrátil" - }, - "hoverOnVideoPage": { - "message": "Retrátil na página de video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Tempo decorrido desde a publicação" - }, - "icons": { - "message": "Ícones" - }, - "iconsOnly": { - "message": "Apenas ícones" - }, - "importSettings": { - "message": "Importar configurações" - }, - "improvedtubeIconInBrowser": { - "message": "Ícone do ImprovedTube no navegador" - }, - "improvedtubeIconOnYoutube": { - "message": "Ícone do ImprovedTube no YouTube" - }, - "improvedtubeLanguage": { - "message": "Idioma do ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versão do ImprovedTube" - }, - "improveLogo": { - "message": "Aprimorar logomarca" - }, - "increasePlaybackSpeed": { - "message": "Aumentar velocidade" - }, - "increaseVolume": { - "message": "Diminuir volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Itens" - }, - "languages": { - "message": "Idiomas" - }, - "legacyYoutube": { - "message": "YouTube antigo" - }, - "light": { - "message": "Claro" - }, - "lightBlue": { - "message": "Azul Claro" - }, - "lightGreen": { - "message": "Verde Claro" - }, - "like": { - "message": "Gostei!" - }, - "likes": { - "message": "Avaliações" - }, - "lime": { - "message": "Verde Limão" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Bate-Papo Ao Vivo" - }, - "liveChatType": { - "message": "Live chat type" - }, - "loudnessNormalization": { - "message": "Normalização de volume" - }, - "markWatchedVideos": { - "message": "Mark watched videos" - }, - "mixer": { - "message": "Mixer" - }, - "myColors": { - "message": "My colors" - }, - "name": { - "message": "Nome" - }, - "nativeMiniPlayer": { - "message": "Mini player nativo" - }, - "new": { - "message": "Novo" - }, - "nextVideo": { - "message": "Próximo vídeo" - }, - "night": { - "message": "Noite" - }, - "noActiveFeatures": { - "message": "No active features" - }, - "none": { - "message": "Nenhum" - }, - "noOpenVideoTabs": { - "message": "Nenhuma aba de vídeo aberta" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Antigo" - }, - "onAllVideos": { - "message": "Em todos os vídeos" - }, - "onlyActiveOnYoutube": { - "message": "Ativo apenas no YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "onSubscribedChannels": { - "message": "Apenas em inscrições" - }, - "orange": { - "message": "Laranja" - }, - "os": { - "message": "Sistema Operacional" - }, - "other": { - "message": "Outras opções" - }, - "permissions": { - "message": "Permissões" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Panície" - }, - "platform": { - "message": "Plataforma" - }, - "playbackSpeed": { - "message": "Velocidade de reprodução" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Cor do player" - }, - "playerSize": { - "message": "Tamanho do player" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "playPause": { - "message": "Reproduzir / Pausar" - }, - "popupPlayer": { - "message": "Player externo" - }, - "position": { - "message": "Posição" - }, - "pressAnyKeyOrScroll": { - "message": "Pressione qualquer tecla ou use a roda do mouse" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Pressione qualquer tecla ou use a roda do mouse" - }, - "previousVideo": { - "message": "Vídeo anterior" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "Roxo" - }, - "quality": { - "message": "Qualidade" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Avalie-nos!" - }, - "red": { - "message": "Vermelho" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Vídeos relacionados" - }, - "removeRelatedSearchResults": { - "message": "Remove related search results" - }, - "repeat": { - "message": "Repetir" - }, - "reset": { - "message": "Restaurar" - }, - "resetAllSettings": { - "message": "Restaurar todas as configurações" - }, - "resetAllShortcuts": { - "message": "Reset all shortcuts" - }, - "reverse": { - "message": "Reverso" - }, - "rotate": { - "message": "Rotacionar" - }, - "save": { - "message": "Salvar" - }, - "saveAs": { - "message": "Salvar como" - }, - "schedule": { - "message": "Agendamento" - }, - "screen": { - "message": "Tela" - }, - "screenshot": { - "message": "Captura de tela" - }, - "search": { - "message": "Pesquisar" - }, - "searchBarOnly": { - "message": "Apenas barra de pesquisa" - }, - "seekBackward10Seconds": { - "message": "Retroceder 10 segundos" - }, - "seekForward10Seconds": { - "message": "Avançar 10 segundos" - }, - "settings": { - "message": "Configurações" - }, - "settingsSuccessfullyImported": { - "message": "Configurações importadas com sucesso" - }, - "shortcuts": { - "message": "Atalhos" - }, - "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" - }, - "showChannelVideosCount": { - "message": "Número de vídeos do canal" - }, - "shuffle": { - "message": "Aleatório" - }, - "sidebar": { - "message": "Painel lateral" - }, - "spacebar": { - "message": "Espaço" - }, - "squaredUserImages": { - "message": "Avatares quadrados" - }, - "static": { - "message": "Estático" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Parar" - }, - "style": { - "message": "Estilo" - }, - "styles": { - "message": "Estilos" - }, - "subscriptions": { - "message": "Inscrições" - }, - "subtitles": { - "message": "Legendas" - }, - "sunset": { - "message": "Pôr do Sol" - }, - "sunsetToSunrise": { - "message": "Durante a noite" - }, - "systemPeferenceDark": { - "message": "Preferência do sistema: Escuro" - }, - "systemPeferenceLight": { - "message": "Preferência do sistema: Claro" - }, - "teal": { - "message": "Verde Azulado" - }, - "textColor": { - "message": "Text color" - }, - "themes": { - "message": "Temas" - }, - "thisWillRemoveAllCookies": { - "message": "Todos os cookies serão removidos." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Todos os cookies do YouTube serão removidos" - }, - "thisWillResetAllSettings": { - "message": "As configurações padrão serão restauradas." - }, - "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" - }, - "thumbnails": { - "message": "Miniaturas" - }, - "timeFrom": { - "message": "Horário inicial" - }, - "timeTo": { - "message": "Horário final" - }, - "todayAt": { - "message": "Hoje às" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Reproduzir trailer" - }, - "translations": { - "message": "Translations" - }, - "transparentBackground": { - "message": "Fundo transparente" - }, - "trending": { - "message": "Em Alta" - }, - "tryToReloadThePage": { - "message": "Recarregue a página" - }, - "type": { - "message": "Tipo" - }, - "upNextAutoplay": { - "message": "Reproduzir vídeo em seguida" - }, - "use24HourFormat": { - "message": "Usar formato de 24 horas" - }, - "version": { - "message": "Versão" - }, - "video": { - "message": "Vídeo" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "A descrição se expandirá para acessar a categoria do vídeo" - }, - "videoFormats": { - "message": "Formatos de vídeo" - }, - "videos": { - "message": "Vídeos" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Assistir mais tarde" - }, - "watchTime": { - "message": "Tempo de exibição" - }, - "whenTabIsChanged": { - "message": "Quando alternar entre abas" - }, - "white": { - "message": "Branco" - }, - "yellow": { - "message": "Amarelo" - }, - "youtubeHeaderLeft": { - "message": "No cabeçalho à esquerda" - }, - "youtubeHeaderRight": { - "message": "No cabeçalho à direita" - }, - "youtubeHomePage": { - "message": "Página inicial do YouTube" - }, - "youtubeLanguage": { - "message": "Idioma do YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "O YouTube limita o codec h.264 à resolução de 1080p" - } -} +{ + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "about": { + "message": "Sobre" + }, + "accept": { + "message": "Accept" + }, + "activate": { + "message": "Activate" + }, + "activateCaptions": { + "message": "Ativar legendas" + }, + "activateFullscreen": { + "message": "Ativar tela cheia" + }, + "activated": { + "message": "Activated" + }, + "activatedFeatures": { + "message": "Activated features" + }, + "activeFeatures": { + "message": "Fun\u00e7\u00f5es ativas" + }, + "addScrollToTop": { + "message": "Habilitar bot\u00e3o \u00abVoltar ao Topo\u00bb" + }, + "ads": { + "message": "An\u00fancios" + }, + "all": { + "message": "All" + }, + "allow": { + "message": "Permitir" + }, + "allow60fps": { + "message": "Permitir 60fps" + }, + "alwaysActive": { + "message": "Sempre ativo" + }, + "alwaysShowProgressBar": { + "message": "Sempre exibir a barra de progresso" + }, + "amber": { + "message": "\u00c2mbar" + }, + "analyzer": { + "message": "Anal\u00edtico" + }, + "appearance": { + "message": "Apar\u00eancia" + }, + "audio": { + "message": "\u00c1udio" + }, + "audioFormats": { + "message": "Formatos de \u00e1udio" + }, + "auto": { + "message": "Autom\u00e1tico" + }, + "autoFullscreen": { + "message": "Tela cheia autom\u00e1tica" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausar v\u00eddeo ao alternar entre abas" + }, + "autoplay": { + "message": "Reprodu\u00e7\u00e3o autom\u00e1tica" + }, + "backupAndReset": { + "message": "Backup & Restaura\u00e7\u00e3o" + }, + "baseOnSystemColorScheme": { + "message": "Baseado nas cores do sistema" + }, + "belowPlayer": { + "message": "Abaixo do player" + }, + "black": { + "message": "Preto" + }, + "blacklist": { + "message": "Lista negra" + }, + "blockAll": { + "message": "Bloquear tudo" + }, + "blue": { + "message": "Azul" + }, + "blueGray": { + "message": "Cinza Azulado" + }, + "bluelight": { + "message": "Filtrar luz azul" + }, + "brown": { + "message": "Marrom" + }, + "browser": { + "message": "Navegador" + }, + "browserVersion": { + "message": "Vers\u00e3o do navegador" + }, + "bubbles": { + "message": "Bolhas" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Bot\u00f5es" + }, + "cancel": { + "message": "Cancelar" + }, + "categories": { + "message": "Categorias" + }, + "channel": { + "message": "Canal" + }, + "channels": { + "message": "Canais" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Collapse of subscription sections" + }, + "collapsed": { + "message": "Retra\u00eddo" + }, + "comments": { + "message": "Coment\u00e1rios" + }, + "confirmationBeforeClosing": { + "message": "Alerta ao fechar a p\u00e1gina" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "N\u00facleos" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Custom JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Ciano" + }, + "dark": { + "message": "Obscuro" + }, + "darkTheme": { + "message": "Tema escuro" + }, + "dateAndTime": { + "message": "Data & Hora" + }, + "dawn": { + "message": "Alvorecer" + }, + "decreasePlaybackSpeed": { + "message": "Diminuir velocidade" + }, + "decreaseVolume": { + "message": "Diminuir volume" + }, + "deepOrange": { + "message": "Laranja Escuro" + }, + "deepPurple": { + "message": "Roxo Escuro" + }, + "defaultChannelTab": { + "message": "Aba padr\u00e3o do canal" + }, + "deleteYoutubeCookies": { + "message": "Deletar cookies do YouTube" + }, + "description": { + "message": "Descri\u00e7\u00e3o" + }, + "desert": { + "message": "Deserto" + }, + "details": { + "message": "Detalhes" + }, + "developerOptions": { + "message": "Developer options" + }, + "device": { + "message": "Dispositivo" + }, + "dim": { + "message": "Escurecer" + }, + "disabled": { + "message": "Desabilitado" + }, + "dislike": { + "message": "N\u00e3o Gostei." + }, + "doNotChange": { + "message": "N\u00e3o alterar" + }, + "donate": { + "message": "Doar" + }, + "draggable": { + "message": "Arrast\u00e1vel" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Vazio" + }, + "enabled": { + "message": "Habilitado" + }, + "enabledForced": { + "message": "Enabled (forced)" + }, + "expanded": { + "message": "Expandido" + }, + "exportSettings": { + "message": "Exportar configura\u00e7\u00f5es" + }, + "extension": { + "message": "Extens\u00e3o" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filtros" + }, + "fitToWindow": { + "message": "Ajustar \u00e0 janela" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "footer": { + "message": "Rodap\u00e9" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, + "forcedTheaterMode": { + "message": "For\u00e7ar modo teatro" + }, + "forcedVolume": { + "message": "For\u00e7ar volume" + }, + "foundABug": { + "message": "Encontrou um bug?" + }, + "fullWindow": { + "message": "Preencher a janela" + }, + "general": { + "message": "Geral" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Selecionar barra de pesquisa" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hdThumbnail": { + "message": "Miniatura em HD" + }, + "hdThumbnails": { + "message": "Miniaturas em HD" + }, + "header": { + "message": "Cabe\u00e7alho" + }, + "hidden": { + "message": "Oculto" + }, + "hiddenOnVideoPage": { + "message": "Oculto na p\u00e1gina de v\u00eddeo" + }, + "hideAnimatedThumbnails": { + "message": "Desabilitar miniaturas animadas" + }, + "hideAnnotations": { + "message": "Ocultar anota\u00e7\u00f5es" + }, + "hideCards": { + "message": "Ocultar cards" + }, + "hideDetails": { + "message": "Ocultar detalhes" + }, + "hideEndscreen": { + "message": "Ocultar tela final" + }, + "hideFeaturedContent": { + "message": "Ocultar conte\u00fado em destaque" + }, + "hideFooter": { + "message": "Ocultar rodap\u00e9" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hidePlaylist": { + "message": "Ocultar playlist" + }, + "hideRightButtons": { + "message": "Ocultar bot\u00f5es \u00e0 direita" + }, + "hideScrollForDetails": { + "message": "Ocultar \u00abRolar Para Ver Detalhes\u00bb" + }, + "hideViewsCount": { + "message": "Ocultar visualiza\u00e7\u00f5es" + }, + "history": { + "message": "Hist\u00f3rico" + }, + "home": { + "message": "In\u00edcio" + }, + "hover": { + "message": "Retr\u00e1til" + }, + "hoverOnVideoPage": { + "message": "Retr\u00e1til na p\u00e1gina de video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Tempo decorrido desde a publica\u00e7\u00e3o" + }, + "icons": { + "message": "\u00cdcones" + }, + "iconsOnly": { + "message": "Apenas \u00edcones" + }, + "importSettings": { + "message": "Importar configura\u00e7\u00f5es" + }, + "improveLogo": { + "message": "Aprimorar logomarca" + }, + "improvedtubeIconInBrowser": { + "message": "\u00cdcone do ImprovedTube no navegador" + }, + "improvedtubeIconOnYoutube": { + "message": "\u00cdcone do ImprovedTube no YouTube" + }, + "improvedtubeLanguage": { + "message": "Idioma do ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Vers\u00e3o do ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Aumentar velocidade" + }, + "increaseVolume": { + "message": "Diminuir volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Itens" + }, + "languages": { + "message": "Idiomas" + }, + "legacyYoutube": { + "message": "YouTube antigo" + }, + "light": { + "message": "Claro" + }, + "lightBlue": { + "message": "Azul Claro" + }, + "lightGreen": { + "message": "Verde Claro" + }, + "like": { + "message": "Gostei!" + }, + "likes": { + "message": "Avalia\u00e7\u00f5es" + }, + "lime": { + "message": "Verde Lim\u00e3o" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Bate-Papo Ao Vivo" + }, + "liveChatType": { + "message": "Live chat type" + }, + "loudnessNormalization": { + "message": "Normaliza\u00e7\u00e3o de volume" + }, + "markWatchedVideos": { + "message": "Mark watched videos" + }, + "mixer": { + "message": "Mixer" + }, + "myColors": { + "message": "My colors" + }, + "name": { + "message": "Nome" + }, + "nativeMiniPlayer": { + "message": "Mini player nativo" + }, + "new": { + "message": "Novo" + }, + "nextVideo": { + "message": "Pr\u00f3ximo v\u00eddeo" + }, + "night": { + "message": "Noite" + }, + "noActiveFeatures": { + "message": "No active features" + }, + "noOpenVideoTabs": { + "message": "Nenhuma aba de v\u00eddeo aberta" + }, + "none": { + "message": "Nenhum" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Antigo" + }, + "onAllVideos": { + "message": "Em todos os v\u00eddeos" + }, + "onSubscribedChannels": { + "message": "Apenas em inscri\u00e7\u00f5es" + }, + "onlyActiveOnYoutube": { + "message": "Ativo apenas no YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "orange": { + "message": "Laranja" + }, + "os": { + "message": "Sistema Operacional" + }, + "other": { + "message": "Outras op\u00e7\u00f5es" + }, + "permissions": { + "message": "Permiss\u00f5es" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Pan\u00edcie" + }, + "platform": { + "message": "Plataforma" + }, + "playPause": { + "message": "Reproduzir / Pausar" + }, + "playbackSpeed": { + "message": "Velocidade de reprodu\u00e7\u00e3o" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Cor do player" + }, + "playerSize": { + "message": "Tamanho do player" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "popupPlayer": { + "message": "Player externo" + }, + "position": { + "message": "Posi\u00e7\u00e3o" + }, + "pressAnyKeyOrScroll": { + "message": "Pressione qualquer tecla ou use a roda do mouse" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Pressione qualquer tecla ou use a roda do mouse" + }, + "previousVideo": { + "message": "V\u00eddeo anterior" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "Roxo" + }, + "quality": { + "message": "Qualidade" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "Avalie-nos!" + }, + "red": { + "message": "Vermelho" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "V\u00eddeos relacionados" + }, + "removeRelatedSearchResults": { + "message": "Remove related search results" + }, + "repeat": { + "message": "Repetir" + }, + "reset": { + "message": "Restaurar" + }, + "resetAllSettings": { + "message": "Restaurar todas as configura\u00e7\u00f5es" + }, + "resetAllShortcuts": { + "message": "Reset all shortcuts" + }, + "reverse": { + "message": "Reverso" + }, + "rotate": { + "message": "Rotacionar" + }, + "save": { + "message": "Salvar" + }, + "saveAs": { + "message": "Salvar como" + }, + "schedule": { + "message": "Agendamento" + }, + "screen": { + "message": "Tela" + }, + "screenshot": { + "message": "Captura de tela" + }, + "search": { + "message": "Pesquisar" + }, + "searchBarOnly": { + "message": "Apenas barra de pesquisa" + }, + "seekBackward10Seconds": { + "message": "Retroceder 10 segundos" + }, + "seekForward10Seconds": { + "message": "Avan\u00e7ar 10 segundos" + }, + "settings": { + "message": "Configura\u00e7\u00f5es" + }, + "settingsSuccessfullyImported": { + "message": "Configura\u00e7\u00f5es importadas com sucesso" + }, + "shortcuts": { + "message": "Atalhos" + }, + "showCardsOnMouseHover": { + "message": "Show cards on mouse hover" + }, + "showChannelVideosCount": { + "message": "N\u00famero de v\u00eddeos do canal" + }, + "shuffle": { + "message": "Aleat\u00f3rio" + }, + "sidebar": { + "message": "Painel lateral" + }, + "spacebar": { + "message": "Espa\u00e7o" + }, + "squaredUserImages": { + "message": "Avatares quadrados" + }, + "static": { + "message": "Est\u00e1tico" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Parar" + }, + "style": { + "message": "Estilo" + }, + "styles": { + "message": "Estilos" + }, + "subscriptions": { + "message": "Inscri\u00e7\u00f5es" + }, + "subtitles": { + "message": "Legendas" + }, + "sunset": { + "message": "P\u00f4r do Sol" + }, + "sunsetToSunrise": { + "message": "Durante a noite" + }, + "systemPeferenceDark": { + "message": "Prefer\u00eancia do sistema: Escuro" + }, + "systemPeferenceLight": { + "message": "Prefer\u00eancia do sistema: Claro" + }, + "teal": { + "message": "Verde Azulado" + }, + "textColor": { + "message": "Text color" + }, + "themes": { + "message": "Temas" + }, + "thisWillRemoveAllCookies": { + "message": "Todos os cookies ser\u00e3o removidos." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Todos os cookies do YouTube ser\u00e3o removidos" + }, + "thisWillResetAllSettings": { + "message": "As configura\u00e7\u00f5es padr\u00e3o ser\u00e3o restauradas." + }, + "thisWillResetAllShortcuts": { + "message": "This will reset all shortcuts" + }, + "thumbnails": { + "message": "Miniaturas" + }, + "timeFrom": { + "message": "Hor\u00e1rio inicial" + }, + "timeTo": { + "message": "Hor\u00e1rio final" + }, + "todayAt": { + "message": "Hoje \u00e0s" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "Reproduzir trailer" + }, + "translations": { + "message": "Translations" + }, + "transparentBackground": { + "message": "Fundo transparente" + }, + "trending": { + "message": "Em Alta" + }, + "tryToReloadThePage": { + "message": "Recarregue a p\u00e1gina" + }, + "type": { + "message": "Tipo" + }, + "upNextAutoplay": { + "message": "Reproduzir v\u00eddeo em seguida" + }, + "use24HourFormat": { + "message": "Usar formato de 24 horas" + }, + "version": { + "message": "Vers\u00e3o" + }, + "video": { + "message": "V\u00eddeo" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "A descri\u00e7\u00e3o se expandir\u00e1 para acessar a categoria do v\u00eddeo" + }, + "videoFormats": { + "message": "Formatos de v\u00eddeo" + }, + "videos": { + "message": "V\u00eddeos" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Assistir mais tarde" + }, + "watchTime": { + "message": "Tempo de exibi\u00e7\u00e3o" + }, + "whenTabIsChanged": { + "message": "Quando alternar entre abas" + }, + "white": { + "message": "Branco" + }, + "yellow": { + "message": "Amarelo" + }, + "youtubeHeaderLeft": { + "message": "No cabe\u00e7alho \u00e0 esquerda" + }, + "youtubeHeaderRight": { + "message": "No cabe\u00e7alho \u00e0 direita" + }, + "youtubeHomePage": { + "message": "P\u00e1gina inicial do YouTube" + }, + "youtubeLanguage": { + "message": "Idioma do YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "O YouTube limita o codec h.264 \u00e0 resolu\u00e7\u00e3o de 1080p" + } +} \ No newline at end of file diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index ae0f1ab04..975265600 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -1,4 +1,19 @@ { + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "about": { "message": "Acerca" }, @@ -11,23 +26,23 @@ "activateCaptions": { "message": "Ativar legendas" }, + "activateFullscreen": { + "message": "Ativar ecr\u00e3 completo" + }, "activated": { "message": "Ativado" }, "activatedFeatures": { - "message": "Opções ativadas" - }, - "activateFullscreen": { - "message": "Ativar ecrã completo" + "message": "Op\u00e7\u00f5es ativadas" }, "activeFeatures": { - "message": "Opções ativas" + "message": "Op\u00e7\u00f5es ativas" }, "addScrollToTop": { - "message": "Adicionar «Ir para o topo»" + "message": "Adicionar \u00abIr para o topo\u00bb" }, "ads": { - "message": "Anúncios" + "message": "An\u00fancios" }, "all": { "message": "Todas" @@ -38,9 +53,6 @@ "allow60fps": { "message": "Permitir 60fps" }, - "forceSDR": { - "message": "Force SDR" - }, "alwaysActive": { "message": "Sempre ativo" }, @@ -48,46 +60,34 @@ "message": "Mostrar sempre a barra de progressos" }, "amber": { - "message": "Âmbar" + "message": "\u00c2mbar" }, "analyzer": { "message": "Analisador" }, "appearance": { - "message": "Aparência" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" + "message": "Apar\u00eancia" }, "audio": { - "message": "Áudio" + "message": "\u00c1udio" }, "audioFormats": { - "message": "Formatos de áudio" + "message": "Formatos de \u00e1udio" }, "auto": { - "message": "Automático" + "message": "Autom\u00e1tico" }, "autoFullscreen": { - "message": "Ecrân completo automático" + "message": "Ecr\u00e2n completo autom\u00e1tico" }, "autopauseWhenSwitchingTabs": { "message": "Pausa quando muda de abas" }, "autoplay": { - "message": "Reprodução automática" + "message": "Reprodu\u00e7\u00e3o autom\u00e1tica" }, "backupAndReset": { - "message": "Cópia de segurança e repor" + "message": "C\u00f3pia de seguran\u00e7a e repor" }, "baseOnSystemColorScheme": { "message": "Baseado no esquema de cores do sistema" @@ -120,7 +120,7 @@ "message": "Navegador" }, "browserVersion": { - "message": "Versão do navegador" + "message": "Vers\u00e3o do navegador" }, "bubbles": { "message": "Bolhas" @@ -129,7 +129,7 @@ "message": "Erro" }, "buttons": { - "message": "Botões" + "message": "Bot\u00f5es" }, "cancel": { "message": "Cancelar" @@ -144,19 +144,19 @@ "message": "Canais" }, "clipboard": { - "message": "Area de transferência" + "message": "Area de transfer\u00eancia" }, "codecH264": { "message": "Codec h.264" }, + "collapseOfSubscriptionSections": { + "message": "Extender as sec\u00e7\u00f5es escolhidas" + }, "collapsed": { "message": "Extender" }, - "collapseOfSubscriptionSections": { - "message": "Extender as secções escolhidas" - }, "comments": { - "message": "Comentários" + "message": "Coment\u00e1rios" }, "confirmationBeforeClosing": { "message": "Confirmar antes de encerrar" @@ -204,16 +204,16 @@ "message": "Laranja forte" }, "deepPurple": { - "message": "Lilás forte" + "message": "Lil\u00e1s forte" }, "defaultChannelTab": { - "message": "Aba padrão do canal" + "message": "Aba padr\u00e3o do canal" }, "deleteYoutubeCookies": { "message": "Apagar os cookies do YouTube" }, "description": { - "message": "Descrição" + "message": "Descri\u00e7\u00e3o" }, "desert": { "message": "Deserto" @@ -222,7 +222,7 @@ "message": "Detalhes" }, "developerOptions": { - "message": "Opções de programador" + "message": "Op\u00e7\u00f5es de programador" }, "device": { "message": "Aparelho" @@ -234,14 +234,14 @@ "message": "Desabilitado" }, "dislike": { - "message": "Não gostar" + "message": "N\u00e3o gostar" + }, + "doNotChange": { + "message": "N\u00e3o mudes" }, "donate": { "message": "Doar" }, - "doNotChange": { - "message": "Não mudes" - }, "draggable": { "message": "Podes arrastar" }, @@ -255,16 +255,16 @@ "message": "Ativado" }, "enabledForced": { - "message": "Ativado (forçado)" + "message": "Ativado (for\u00e7ado)" }, "expanded": { "message": "Expandir" }, "exportSettings": { - "message": "Exportar definições" + "message": "Exportar defini\u00e7\u00f5es" }, "extension": { - "message": "Extenção" + "message": "Exten\u00e7\u00e3o" }, "file": { "message": "Ficheiro" @@ -273,7 +273,7 @@ "message": "Filtros" }, "fitToWindow": { - "message": "Ajustar á janela" + "message": "Ajustar \u00e1 janela" }, "flash": { "message": "Flash" @@ -282,16 +282,19 @@ "message": "Tipo de letra" }, "footer": { - "message": "Cabeçalho" + "message": "Cabe\u00e7alho" + }, + "forceSDR": { + "message": "Force SDR" }, "forcedPlaybackSpeed": { - "message": "Forçar velocidade de leitura" + "message": "For\u00e7ar velocidade de leitura" }, "forcedTheaterMode": { - "message": "Forçar modo de cinema" + "message": "For\u00e7ar modo de cinema" }, "forcedVolume": { - "message": "Volume forçado" + "message": "Volume for\u00e7ado" }, "foundABug": { "message": "Encontrou um erro?" @@ -306,7 +309,7 @@ "message": "GitHub" }, "goToSearchBox": { - "message": "Vai à caixa de pesquisa" + "message": "Vai \u00e0 caixa de pesquisa" }, "gpu": { "message": "GPU" @@ -321,19 +324,19 @@ "message": "Miniaturas HD" }, "header": { - "message": "Cabeçalho" + "message": "Cabe\u00e7alho" }, "hidden": { "message": "Escondido" }, "hiddenOnVideoPage": { - "message": "Escondido na página do video" + "message": "Escondido na p\u00e1gina do video" }, "hideAnimatedThumbnails": { "message": "Esconder miniaturas animadas" }, "hideAnnotations": { - "message": "Esconder anotações" + "message": "Esconder anota\u00e7\u00f5es" }, "hideCards": { "message": "Esconder cartas" @@ -342,31 +345,31 @@ "message": "Esconder detalhes" }, "hideEndscreen": { - "message": "Esconder ecãn final" + "message": "Esconder ec\u00e3n final" }, "hideFeaturedContent": { - "message": "Esconder conteúdo" + "message": "Esconder conte\u00fado" }, "hideFooter": { - "message": "Esconder rodapé" + "message": "Esconder rodap\u00e9" }, "hideGradientBottom": { "message": "Hide Gradient Bottom" }, "hidePlaylist": { - "message": "Esconder lista de reprodução" + "message": "Esconder lista de reprodu\u00e7\u00e3o" }, "hideRightButtons": { - "message": "Esconder botões do lado direito" + "message": "Esconder bot\u00f5es do lado direito" }, "hideScrollForDetails": { - "message": "Esconder «Rodar para detalhes»" + "message": "Esconder \u00abRodar para detalhes\u00bb" }, "hideViewsCount": { - "message": "Esconder número de vistos" + "message": "Esconder n\u00famero de vistos" }, "history": { - "message": "História" + "message": "Hist\u00f3ria" }, "home": { "message": "Casa" @@ -375,34 +378,34 @@ "message": "Aponta" }, "hoverOnVideoPage": { - "message": "Apontar na página do video" + "message": "Apontar na p\u00e1gina do video" }, "howLongAgoTheVideoWasUploaded": { - "message": "À quanto tempo o video foi enviado" + "message": "\u00c0 quanto tempo o video foi enviado" }, "icons": { - "message": "Ícones" + "message": "\u00cdcones" }, "iconsOnly": { - "message": "Ícones apenas" + "message": "\u00cdcones apenas" }, "importSettings": { - "message": "Importar definições" + "message": "Importar defini\u00e7\u00f5es" + }, + "improveLogo": { + "message": "Melhorar logotipo" }, "improvedtubeIconInBrowser": { "message": "ImprovedTube icon in Browser" }, "improvedtubeIconOnYoutube": { - "message": "Ícon do ImprovedTube no YouTube" + "message": "\u00cdcon do ImprovedTube no YouTube" }, "improvedtubeLanguage": { "message": "Linguagem do ImprovedTube" }, "improvedtubeVersion": { - "message": "Versão do ImprovedTube" - }, - "improveLogo": { - "message": "Melhorar logotipo" + "message": "Vers\u00e3o do ImprovedTube" }, "increasePlaybackSpeed": { "message": "Aumentar velocidade de leitura" @@ -438,7 +441,7 @@ "message": "Gostos" }, "lime": { - "message": "Limão" + "message": "Lim\u00e3o" }, "list": { "message": "Lista" @@ -450,7 +453,7 @@ "message": "Tipo de conversa do vivo" }, "loudnessNormalization": { - "message": "Normalização do volume" + "message": "Normaliza\u00e7\u00e3o do volume" }, "markWatchedVideos": { "message": "Marcar os videos como vistos" @@ -465,26 +468,26 @@ "message": "Nome" }, "nativeMiniPlayer": { - "message": "Leitor pequeno padrão" + "message": "Leitor pequeno padr\u00e3o" }, "new": { "message": "Novo" }, "nextVideo": { - "message": "Próximo video" + "message": "Pr\u00f3ximo video" }, "night": { "message": "Noite" }, "noActiveFeatures": { - "message": "Sem opções ativas" + "message": "Sem op\u00e7\u00f5es ativas" + }, + "noOpenVideoTabs": { + "message": "N\u00e3o abrir janelas de video" }, "none": { "message": "Nenhuma" }, - "noOpenVideoTabs": { - "message": "Não abrir janelas de video" - }, "normal": { "message": "Normal" }, @@ -494,14 +497,14 @@ "onAllVideos": { "message": "Em todos os videos" }, + "onSubscribedChannels": { + "message": "Nos canais subscritos" + }, "onlyActiveOnYoutube": { "message": "Ativo apenas no YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Apenas uma instância do leitor de video" - }, - "onSubscribedChannels": { - "message": "Nos canais subscritos" + "message": "Apenas uma inst\u00e2ncia do leitor de video" }, "orange": { "message": "Laranja" @@ -513,7 +516,7 @@ "message": "Outro" }, "permissions": { - "message": "Permissões" + "message": "Permiss\u00f5es" }, "pictureInPicture": { "message": "Janela em janela" @@ -527,6 +530,9 @@ "platform": { "message": "Plataforma" }, + "playPause": { + "message": "Reproduzir / Pausar" + }, "playbackSpeed": { "message": "Velocidade de leitura" }, @@ -534,25 +540,22 @@ "message": "Leitor" }, "playerColor": { - "message": "Côr do leitor" + "message": "C\u00f4r do leitor" }, "playerSize": { "message": "Tamanho do leitor" }, "playlist": { - "message": "Lista de reprodução" + "message": "Lista de reprodu\u00e7\u00e3o" }, "playlists": { - "message": "Listas de reprodução" - }, - "playPause": { - "message": "Reproduzir / Pausar" + "message": "Listas de reprodu\u00e7\u00e3o" }, "popupPlayer": { "message": "Leitor em janela" }, "position": { - "message": "Posição" + "message": "Posi\u00e7\u00e3o" }, "pressAnyKeyOrScroll": { "message": "Carrega em qualquer tecla ou usa a roldana do rato" @@ -564,7 +567,7 @@ "message": "Video anterior" }, "primaryColor": { - "message": "Côr primaria" + "message": "C\u00f4r primaria" }, "purple": { "message": "Violeta" @@ -597,10 +600,10 @@ "message": "Valores de origem" }, "resetAllSettings": { - "message": "Valores de origem em todas as definições" + "message": "Valores de origem em todas as defini\u00e7\u00f5es" }, "resetAllShortcuts": { - "message": "Repôr todos os atalhos" + "message": "Rep\u00f4r todos os atalhos" }, "reverse": { "message": "Recuar" @@ -618,10 +621,10 @@ "message": "Agendar" }, "screen": { - "message": "Ecrân" + "message": "Ecr\u00e2n" }, "screenshot": { - "message": "Foto do ecrân" + "message": "Foto do ecr\u00e2n" }, "search": { "message": "Pesquisa" @@ -630,16 +633,16 @@ "message": "Apenas barra de pesquisa" }, "seekBackward10Seconds": { - "message": "Andar para trás 10 segundos" + "message": "Andar para tr\u00e1s 10 segundos" }, "seekForward10Seconds": { "message": "Andar para frente 10 segundos" }, "settings": { - "message": "Definições" + "message": "Defini\u00e7\u00f5es" }, "settingsSuccessfullyImported": { - "message": "Definições importadas com sucesso" + "message": "Defini\u00e7\u00f5es importadas com sucesso" }, "shortcuts": { "message": "Atalhos" @@ -657,13 +660,13 @@ "message": "Barra lateral" }, "spacebar": { - "message": "Barra de espaços" + "message": "Barra de espa\u00e7os" }, "squaredUserImages": { "message": "Imagens de utilizador enquadradas" }, "static": { - "message": "Estática" + "message": "Est\u00e1tica" }, "statsForNerds": { "message": "Show Stats for Nerds" @@ -681,28 +684,28 @@ "message": "Estilos" }, "subscriptions": { - "message": "Subscrições" + "message": "Subscri\u00e7\u00f5es" }, "subtitles": { "message": "Legendas" }, "sunset": { - "message": "Pôr do sol" + "message": "P\u00f4r do sol" }, "sunsetToSunrise": { - "message": "Pôr do sol até de manhã" + "message": "P\u00f4r do sol at\u00e9 de manh\u00e3" }, "systemPeferenceDark": { - "message": "Preferências do sistema: Escuro" + "message": "Prefer\u00eancias do sistema: Escuro" }, "systemPeferenceLight": { - "message": "Preferências do sistema: Claro" + "message": "Prefer\u00eancias do sistema: Claro" }, "teal": { "message": "Azul esverdeado" }, "textColor": { - "message": "Côr do texto" + "message": "C\u00f4r do texto" }, "themes": { "message": "Temas" @@ -714,7 +717,7 @@ "message": "Isto vai remover todos os cookies do YouTube" }, "thisWillResetAllSettings": { - "message": "Isto vai reiniciar todas as definições." + "message": "Isto vai reiniciar todas as defini\u00e7\u00f5es." }, "thisWillResetAllShortcuts": { "message": "Isto vai reiniciar todos os atalhos" @@ -741,13 +744,13 @@ "message": "Trailer toca automaticamente" }, "translations": { - "message": "Traduções" + "message": "Tradu\u00e7\u00f5es" }, "transparentBackground": { "message": "Fundo transparente" }, "trending": { - "message": "Tendências" + "message": "Tend\u00eancias" }, "tryToReloadThePage": { "message": "Tenta carregar a pagina de novo" @@ -762,13 +765,13 @@ "message": "Usar formato de 24-horas" }, "version": { - "message": "Versão" + "message": "Vers\u00e3o" }, "video": { "message": "Video" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "A descrição do video vai ser expandida para ver o nome da categoria" + "message": "A descri\u00e7\u00e3o do video vai ser expandida para ver o nome da categoria" }, "videoFormats": { "message": "Formatos de video" @@ -780,10 +783,10 @@ "message": "Volume" }, "watchLater": { - "message": "Vêr mais tarde" + "message": "V\u00ear mais tarde" }, "watchTime": { - "message": "Tempo de visualização" + "message": "Tempo de visualiza\u00e7\u00e3o" }, "whenTabIsChanged": { "message": "Quando a janela mudar" @@ -795,13 +798,13 @@ "message": "Amarelo" }, "youtubeHeaderLeft": { - "message": "Cabeçalho do YouTube (esquerda)" + "message": "Cabe\u00e7alho do YouTube (esquerda)" }, "youtubeHeaderRight": { - "message": "Cabeçalho do YouTube (direita)" + "message": "Cabe\u00e7alho do YouTube (direita)" }, "youtubeHomePage": { - "message": "Página principal do YouTube" + "message": "P\u00e1gina principal do YouTube" }, "youtubeLanguage": { "message": "Linguagem do YouTube" @@ -809,4 +812,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "O YouTube limita a qualidade do video em 1080p para o codec h.264" } -} +} \ No newline at end of file diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 937d10bdd..3217f0da8 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -1,15 +1,33 @@ { + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "about": { "message": "Despre" }, "accept": { - "message": "Acceptă" + "message": "Accept\u0103" }, "activate": { - "message": "Activează" + "message": "Activeaz\u0103" }, "activateCaptions": { - "message": "Activează subtitrările" + "message": "Activeaz\u0103 subtitr\u0103rile" + }, + "activateFullscreen": { + "message": "Activeaz\u0103 ecran complet" }, "activated": { "message": "Activat" @@ -17,14 +35,11 @@ "activatedFeatures": { "message": "Caracteristici activate" }, - "activateFullscreen": { - "message": "Activează ecran complet" - }, "activeFeatures": { "message": "Caracteristici active" }, "addScrollToTop": { - "message": "Adaugă «Derulează la început»" + "message": "Adaug\u0103 \u00abDeruleaz\u0103 la \u00eenceput\u00bb" }, "ads": { "message": "Reclame" @@ -38,14 +53,11 @@ "allow60fps": { "message": "Permite 60fps" }, - "forceSDR": { - "message": "Forțează SDR" - }, "alwaysActive": { "message": "Mereu activ" }, "alwaysShowProgressBar": { - "message": "Arată mereu bara de progres" + "message": "Arat\u0103 mereu bara de progres" }, "amber": { "message": "Amber" @@ -54,19 +66,7 @@ "message": "Analizator" }, "appearance": { - "message": "Aparențe" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" + "message": "Aparen\u021be" }, "audio": { "message": "Audio" @@ -81,13 +81,13 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pauzează automat la schimbarea tab-ului" + "message": "Pauzeaz\u0103 automat la schimbarea tab-ului" }, "autoplay": { - "message": "Pornește automat" + "message": "Porne\u0219te automat" }, "backupAndReset": { - "message": "Salvează & resetează" + "message": "Salveaz\u0103 & reseteaz\u0103" }, "baseOnSystemColorScheme": { "message": "Bazat pe schema de culori a sistemului" @@ -96,13 +96,13 @@ "message": "Below player" }, "black": { - "message": "Înapoi" + "message": "\u00cenapoi" }, "blacklist": { - "message": "Lista neagră" + "message": "Lista neagr\u0103" }, "blockAll": { - "message": "Blochează tot" + "message": "Blocheaz\u0103 tot" }, "blue": { "message": "Albastru" @@ -111,7 +111,7 @@ "message": "Gri albastru" }, "bluelight": { - "message": "Lumină albastră" + "message": "Lumin\u0103 albastr\u0103" }, "brown": { "message": "Maro" @@ -132,7 +132,7 @@ "message": "Butoane" }, "cancel": { - "message": "Anulează" + "message": "Anuleaz\u0103" }, "categories": { "message": "Categorii" @@ -149,17 +149,17 @@ "codecH264": { "message": "Codec h.264" }, - "collapsed": { - "message": "Închis" - }, "collapseOfSubscriptionSections": { - "message": "Închide secțiunea de subscripții" + "message": "\u00cenchide sec\u021biunea de subscrip\u021bii" + }, + "collapsed": { + "message": "\u00cenchis" }, "comments": { "message": "Comentarii" }, "confirmationBeforeClosing": { - "message": "Confirmă înainte să închizi" + "message": "Confirm\u0103 \u00eenainte s\u0103 \u00eenchizi" }, "cookies": { "message": "Cookies" @@ -179,23 +179,20 @@ "customMiniPlayer": { "message": "Mini-Player Personalizat" }, - "openPopupPlayer": { - "message": "Deschide videoclipul/playlistul într-o fereastră nouă" - }, "cyan": { "message": "Cyan" }, "dark": { - "message": "Închis" + "message": "\u00cenchis" }, "darkTheme": { - "message": "Temă închisă" + "message": "Tem\u0103 \u00eenchis\u0103" }, "dateAndTime": { "message": "Data & timpul" }, "dawn": { - "message": "Răsărit" + "message": "R\u0103s\u0103rit" }, "decreasePlaybackSpeed": { "message": "Scade viteza playback-ului" @@ -204,47 +201,47 @@ "message": "Scade volumul" }, "deepOrange": { - "message": "Portocaliu închis" + "message": "Portocaliu \u00eenchis" }, "deepPurple": { - "message": "Mov închis" + "message": "Mov \u00eenchis" }, "defaultChannelTab": { "message": "Tab-ul implicit al canalului" }, "deleteYoutubeCookies": { - "message": "Șterge cookie-urile YouTube" + "message": "\u0218terge cookie-urile YouTube" }, "description": { "message": "Descriere" }, "desert": { - "message": "Deșert" + "message": "De\u0219ert" }, "details": { "message": "Detalii" }, "developerOptions": { - "message": "Opțiunile dezvoltatorului" + "message": "Op\u021biunile dezvoltatorului" }, "device": { "message": "Dispozitiv" }, "dim": { - "message": "Întunecă" + "message": "\u00centunec\u0103" }, "disabled": { "message": "Dezactivat" }, "dislike": { - "message": "Nu îmi place" - }, - "donate": { - "message": "Donează" + "message": "Nu \u00eemi place" }, "doNotChange": { "message": "Nu schimba" }, + "donate": { + "message": "Doneaz\u0103" + }, "draggable": { "message": "Poate fi tras" }, @@ -258,25 +255,25 @@ "message": "Activat" }, "enabledForced": { - "message": "Activat (forțat)" + "message": "Activat (for\u021bat)" }, "expanded": { "message": "Deschis" }, "exportSettings": { - "message": "Exportă setările" + "message": "Export\u0103 set\u0103rile" }, "extension": { "message": "Extensie" }, "file": { - "message": "Fișier" + "message": "Fi\u0219ier" }, "filters": { "message": "Filtre" }, "fitToWindow": { - "message": "Potrivește în fereastră" + "message": "Potrive\u0219te \u00een fereastr\u0103" }, "flash": { "message": "Flash" @@ -287,17 +284,20 @@ "footer": { "message": "Subsol" }, + "forceSDR": { + "message": "For\u021beaz\u0103 SDR" + }, "forcedPlaybackSpeed": { - "message": "Viteză de playback forțată" + "message": "Vitez\u0103 de playback for\u021bat\u0103" }, "forcedTheaterMode": { - "message": "Modul teatru forțat" + "message": "Modul teatru for\u021bat" }, "forcedVolume": { - "message": "Volum forțat" + "message": "Volum for\u021bat" }, "foundABug": { - "message": "Ai găsit un bug?" + "message": "Ai g\u0103sit un bug?" }, "fullWindow": { "message": "Ecran complet" @@ -306,13 +306,13 @@ "message": "General" }, "geoPreference": { - "message": "Preferințe Geo" + "message": "Preferin\u021be Geo" }, "github": { "message": "GitHub" }, "goToSearchBox": { - "message": "Du-te la casuța de căutare" + "message": "Du-te la casu\u021ba de c\u0103utare" }, "gpu": { "message": "GPU" @@ -321,7 +321,7 @@ "message": "Verde" }, "hdThumbnail": { - "message": "Miniatură HD" + "message": "Miniatur\u0103 HD" }, "hdThumbnails": { "message": "Miniaturi HD" @@ -339,7 +339,7 @@ "message": "Ascunde miniaturile animate" }, "hideAnnotations": { - "message": "Ascunde adnotările" + "message": "Ascunde adnot\u0103rile" }, "hideCards": { "message": "Ascunde cardurile" @@ -351,7 +351,7 @@ "message": "Ascunde ecranul de final" }, "hideFeaturedContent": { - "message": "Ascunde conținutul prezentat" + "message": "Ascunde con\u021binutul prezentat" }, "hideFooter": { "message": "Ascunde subsolul" @@ -366,16 +366,16 @@ "message": "Ascunde butoanele din dreapta" }, "hideScrollForDetails": { - "message": "Ascunde «Derulează pentru detalii»" + "message": "Ascunde \u00abDeruleaz\u0103 pentru detalii\u00bb" }, "hideViewsCount": { - "message": "Ascunde numărul vizualizărilor" + "message": "Ascunde num\u0103rul vizualiz\u0103rilor" }, "history": { "message": "Istoric" }, "home": { - "message": "Acasă" + "message": "Acas\u0103" }, "hover": { "message": "Hover" @@ -384,22 +384,25 @@ "message": "Hover pe pagina video" }, "howLongAgoTheVideoWasUploaded": { - "message": "Acum cât timp a fost încărcat videoclipul" + "message": "Acum c\u00e2t timp a fost \u00eenc\u0103rcat videoclipul" }, "icons": { - "message": "Iconițe" + "message": "Iconi\u021be" }, "iconsOnly": { - "message": "Doar iconițe" + "message": "Doar iconi\u021be" }, "importSettings": { - "message": "Importă setările" + "message": "Import\u0103 set\u0103rile" + }, + "improveLogo": { + "message": "\u00cembun\u0103t\u0103\u021be\u0219te sigla" }, "improvedtubeIconInBrowser": { - "message": "Iconița ImprovedTube în browser" + "message": "Iconi\u021ba ImprovedTube \u00een browser" }, "improvedtubeIconOnYoutube": { - "message": "Iconița ImprovedTube pe YouTube" + "message": "Iconi\u021ba ImprovedTube pe YouTube" }, "improvedtubeLanguage": { "message": "Limba ImprovedTube" @@ -407,14 +410,11 @@ "improvedtubeVersion": { "message": "Versiunea ImprovedTube" }, - "improveLogo": { - "message": "Îmbunătățește sigla" - }, "increasePlaybackSpeed": { - "message": "Crește viteza de playback" + "message": "Cre\u0219te viteza de playback" }, "increaseVolume": { - "message": "Crește volumul" + "message": "Cre\u0219te volumul" }, "indigo": { "message": "Indigo" @@ -438,7 +438,7 @@ "message": "Verde deschis" }, "like": { - "message": "Îmi place" + "message": "\u00cemi place" }, "likes": { "message": "Like-uri" @@ -447,7 +447,7 @@ "message": "Lime" }, "list": { - "message": "Listă" + "message": "List\u0103" }, "liveChat": { "message": "Chat live" @@ -456,10 +456,10 @@ "message": "Chat live scrie" }, "loudnessNormalization": { - "message": "Normalizează zgomotul" + "message": "Normalizeaz\u0103 zgomotul" }, "markWatchedVideos": { - "message": "Marchează videoclipurile văzute" + "message": "Marcheaz\u0103 videoclipurile v\u0103zute" }, "mixer": { "message": "Mixer" @@ -477,20 +477,20 @@ "message": "Nou" }, "nextVideo": { - "message": "Următorul video" + "message": "Urm\u0103torul video" }, "night": { "message": "Noapte" }, "noActiveFeatures": { - "message": "Nici o caracteristică activată" - }, - "none": { - "message": "Nimic" + "message": "Nici o caracteristic\u0103 activat\u0103" }, "noOpenVideoTabs": { "message": "Niciun tab video deschis" }, + "none": { + "message": "Nimic" + }, "normal": { "message": "Normal" }, @@ -500,14 +500,17 @@ "onAllVideos": { "message": "Pe toate videoclipurile" }, + "onSubscribedChannels": { + "message": "Pe canalele abonate" + }, "onlyActiveOnYoutube": { "message": "Activ doar pe YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Doar o instanță de player care merge" + "message": "Doar o instan\u021b\u0103 de player care merge" }, - "onSubscribedChannels": { - "message": "Pe canalele abonate" + "openPopupPlayer": { + "message": "Deschide videoclipul/playlistul \u00eentr-o fereastr\u0103 nou\u0103" }, "orange": { "message": "Portocaliu" @@ -531,7 +534,10 @@ "message": "Simplu" }, "platform": { - "message": "Platformă" + "message": "Platform\u0103" + }, + "playPause": { + "message": "Red\u0103 / Pauz\u0103" }, "playbackSpeed": { "message": "Viteza playbackului" @@ -543,7 +549,7 @@ "message": "Culoare player" }, "playerSize": { - "message": "Mărime player" + "message": "M\u0103rime player" }, "playlist": { "message": "Playlist" @@ -551,26 +557,23 @@ "playlists": { "message": "Playlisturi" }, - "playPause": { - "message": "Redă / Pauză" - }, "popupPlayer": { "message": "Player popup" }, "position": { - "message": "Poziție" + "message": "Pozi\u021bie" }, "pressAnyKeyOrScroll": { - "message": "Apasă orice buton sau folosește rotița mouseului." + "message": "Apas\u0103 orice buton sau folose\u0219te roti\u021ba mouseului." }, "pressAnyKeyOrUseMouseWheel": { - "message": "Apasă orice buton sau folosește rotița mouseului" + "message": "Apas\u0103 orice buton sau folose\u0219te roti\u021ba mouseului" }, "previousVideo": { "message": "Videoclipul anterior" }, "primaryColor": { - "message": "Culoarea primară" + "message": "Culoarea primar\u0103" }, "purple": { "message": "Mov" @@ -582,43 +585,43 @@ "message": "RAM" }, "rateUs": { - "message": "Dă-ne o notă" + "message": "D\u0103-ne o not\u0103" }, "red": { - "message": "Roșu" + "message": "Ro\u0219u" }, "redDislikeButton": { - "message": "Arată butonul nu îmi place cu culoare roșie" + "message": "Arat\u0103 butonul nu \u00eemi place cu culoare ro\u0219ie" }, "relatedVideos": { - "message": "Videoclipuri asemănătoare" + "message": "Videoclipuri asem\u0103n\u0103toare" }, "removeRelatedSearchResults": { - "message": "Elimină rezultatele asemănătoare a căutării" + "message": "Elimin\u0103 rezultatele asem\u0103n\u0103toare a c\u0103ut\u0103rii" }, "repeat": { - "message": "Repetă" + "message": "Repet\u0103" }, "reset": { - "message": "Resetează" + "message": "Reseteaz\u0103" }, "resetAllSettings": { - "message": "Resetează toate setările" + "message": "Reseteaz\u0103 toate set\u0103rile" }, "resetAllShortcuts": { - "message": "Resetează toate scurtăturile" + "message": "Reseteaz\u0103 toate scurt\u0103turile" }, "reverse": { "message": "Invers" }, "rotate": { - "message": "Rotește" + "message": "Rote\u0219te" }, "save": { - "message": "Salvează" + "message": "Salveaz\u0103" }, "saveAs": { - "message": "Salvează ca" + "message": "Salveaz\u0103 ca" }, "schedule": { "message": "Program" @@ -627,52 +630,52 @@ "message": "Ecran" }, "screenshot": { - "message": "Captură de ecran" + "message": "Captur\u0103 de ecran" }, "search": { - "message": "Caută" + "message": "Caut\u0103" }, "searchBarOnly": { - "message": "Doar bara de căutare" + "message": "Doar bara de c\u0103utare" }, "seekBackward10Seconds": { - "message": "Sari înapoi 10 secunde" + "message": "Sari \u00eenapoi 10 secunde" }, "seekForward10Seconds": { - "message": "Sari înainte 10 secunde" + "message": "Sari \u00eenainte 10 secunde" }, "settings": { - "message": "Setări" + "message": "Set\u0103ri" }, "settingsSuccessfullyImported": { - "message": "Setările au fost importate cu succes" + "message": "Set\u0103rile au fost importate cu succes" }, "shortcuts": { - "message": "Scurtături" + "message": "Scurt\u0103turi" }, "showCardsOnMouseHover": { - "message": "Arată cardurile la hover-ul cu mouseul" + "message": "Arat\u0103 cardurile la hover-ul cu mouseul" }, "showChannelVideosCount": { - "message": "Arată numărul de videoclipuri al canalului" + "message": "Arat\u0103 num\u0103rul de videoclipuri al canalului" }, "shuffle": { - "message": "Amestecă" + "message": "Amestec\u0103" }, "sidebar": { - "message": "Bara laterală" + "message": "Bara lateral\u0103" }, "spacebar": { - "message": "Bara de spațiu" + "message": "Bara de spa\u021biu" }, "squaredUserImages": { - "message": "Avatarele utilizatorului pătrat" + "message": "Avatarele utilizatorului p\u0103trat" }, "static": { "message": "Static" }, "statsForNerds": { - "message": "Arată Statisticile pentru Tocilari" + "message": "Arat\u0103 Statisticile pentru Tocilari" }, "step": { "message": "Pas" @@ -690,19 +693,19 @@ "message": "Abonamente" }, "subtitles": { - "message": "Subtitrări" + "message": "Subtitr\u0103ri" }, "sunset": { "message": "Apus" }, "sunsetToSunrise": { - "message": "De la apus la răsărit" + "message": "De la apus la r\u0103s\u0103rit" }, "systemPeferenceDark": { - "message": "Preferința sitemului: închis" + "message": "Preferin\u021ba sitemului: \u00eenchis" }, "systemPeferenceLight": { - "message": "Preferința sitemului: deschis" + "message": "Preferin\u021ba sitemului: deschis" }, "teal": { "message": "Teal" @@ -714,16 +717,16 @@ "message": "Teme" }, "thisWillRemoveAllCookies": { - "message": "Asta va șterge toate cookie-urile." + "message": "Asta va \u0219terge toate cookie-urile." }, "thisWillRemoveAllYouTubeCookies": { - "message": "Asta va șterge toate cooki-urile YouTube." + "message": "Asta va \u0219terge toate cooki-urile YouTube." }, "thisWillResetAllSettings": { - "message": "Asta va reseta toate setările." + "message": "Asta va reseta toate set\u0103rile." }, "thisWillResetAllShortcuts": { - "message": "Asta va șterge toate scurtăturile" + "message": "Asta va \u0219terge toate scurt\u0103turile" }, "thumbnails": { "message": "Miniaturi" @@ -732,19 +735,19 @@ "message": "Timp de la" }, "timeTo": { - "message": "Timp până la" + "message": "Timp p\u00e2n\u0103 la" }, "todayAt": { "message": "Azi la" }, "toggleCards": { - "message": "Comută cardurile" + "message": "Comut\u0103 cardurile" }, "topChat": { "message": "Top chat" }, "trailerAutoplay": { - "message": "Auto-redă trailerul" + "message": "Auto-red\u0103 trailerul" }, "translations": { "message": "Traduceri" @@ -753,19 +756,19 @@ "message": "Fundal Transparent" }, "trending": { - "message": "Tendințe" + "message": "Tendin\u021be" }, "tryToReloadThePage": { - "message": "Încearcă să reîmprospătezi pagina" + "message": "\u00cencearc\u0103 s\u0103 re\u00eemprosp\u0103tezi pagina" }, "type": { "message": "Scrie" }, "upNextAutoplay": { - "message": "Urmează" + "message": "Urmeaz\u0103" }, "use24HourFormat": { - "message": "Folosește formatul de 24 de ore" + "message": "Folose\u0219te formatul de 24 de ore" }, "version": { "message": "Versiune" @@ -774,7 +777,7 @@ "message": "Video" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Descripția videoclipului va fi extinsă pentru a afla numele categoriei" + "message": "Descrip\u021bia videoclipului va fi extins\u0103 pentru a afla numele categoriei" }, "videoFormats": { "message": "Formatul videoclipului" @@ -786,13 +789,13 @@ "message": "Volum" }, "watchLater": { - "message": "Vezi mai târziu" + "message": "Vezi mai t\u00e2rziu" }, "watchTime": { "message": "Timp de vizionare" }, "whenTabIsChanged": { - "message": "Când tabul este schimbat" + "message": "C\u00e2nd tabul este schimbat" }, "white": { "message": "Alb" @@ -801,7 +804,7 @@ "message": "Galben" }, "youtubeHeaderLeft": { - "message": "Antetul YouTube (stânga)" + "message": "Antetul YouTube (st\u00e2nga)" }, "youtubeHeaderRight": { "message": "Antetul YouTube (dreapta)" @@ -810,9 +813,9 @@ "message": "Pagina de pornire YouTube" }, "youtubeLanguage": { - "message": "Limba de afișare YouTube" + "message": "Limba de afi\u0219are YouTube" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limitează calitatea videoclipului la 1080p pentru codecul h.264" + "message": "YouTube limiteaz\u0103 calitatea videoclipului la 1080p pentru codecul h.264" } -} +} \ No newline at end of file diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 8c037bd26..240e96b20 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -1,812 +1,815 @@ -{ - "about": { - "message": "Об ImprovedTube" - }, - "accept": { - "message": "Принять" - }, - "activate": { - "message": "Активировать" - }, - "activateCaptions": { - "message": "Активировать субтитры" - }, - "activated": { - "message": "Активировано" - }, - "activatedFeatures": { - "message": "Активированные функции" - }, - "activateFullscreen": { - "message": "Перейти в полноэкранный режим" - }, - "activeFeatures": { - "message": "Активные функции" - }, - "addScrollToTop": { - "message": "Добавить кнопку «наверх»" - }, - "ads": { - "message": "Реклама" - }, - "all": { - "message": "Все" - }, - "allow": { - "message": "Разрешить" - }, - "allow60fps": { - "message": "Разрешить 60fps" - }, - "forceSDR": { - "message": "Force SDR" - }, - "alwaysActive": { - "message": "Всегда активный" - }, - "alwaysShowProgressBar": { - "message": "Всегда показывать прогресс-бар" - }, - "amber": { - "message": "Янтарный" - }, - "analyzer": { - "message": "Анализатор" - }, - "appearance": { - "message": "Внешний вид" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "Аудио" - }, - "audioFormats": { - "message": "Аудио форматы" - }, - "auto": { - "message": "Авто" - }, - "autoFullscreen": { - "message": "Автоматический переход в полноэкранный режим" - }, - "autopauseWhenSwitchingTabs": { - "message": "Автопауза при переходе между вкладками" - }, - "autoplay": { - "message": "Автовоспроизведение" - }, - "backupAndReset": { - "message": "Резервное копирование и сброс" - }, - "baseOnSystemColorScheme": { - "message": "Зависит от системной цветовой схемы" - }, - "belowPlayer": { - "message": "Ниже плеера" - }, - "black": { - "message": "Черный" - }, - "blacklist": { - "message": "Черный список" - }, - "blockAll": { - "message": "Заблокировать всё" - }, - "blue": { - "message": "Синий" - }, - "blueGray": { - "message": "Серо-голубой" - }, - "bluelight": { - "message": "Синий свет" - }, - "brown": { - "message": "Коричневый" - }, - "browser": { - "message": "Браузер" - }, - "browserVersion": { - "message": "Версия браузера" - }, - "bubbles": { - "message": "Пузыри" - }, - "bug": { - "message": "Ошибка" - }, - "buttons": { - "message": "Кнопки" - }, - "cancel": { - "message": "Отмена" - }, - "categories": { - "message": "Категории" - }, - "channel": { - "message": "Канал" - }, - "channels": { - "message": "Каналы" - }, - "clipboard": { - "message": "Буфер обмена" - }, - "codecH264": { - "message": "Кодек h.264" - }, - "collapsed": { - "message": "Свернуть" - }, - "collapseOfSubscriptionSections": { - "message": "Свернуть раздел подписок" - }, - "comments": { - "message": "Комментарии" - }, - "confirmationBeforeClosing": { - "message": "Подтверждение закрытия" - }, - "cookies": { - "message": "Куки" - }, - "cores": { - "message": "Ядра" - }, - "cropChapterTitles": { - "message": "Обрезать заголовки глав" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Сustom JS" - }, - "customMiniPlayer": { - "message": "Новый мини-плеер" - }, - "cyan": { - "message": "Сине-зелёный" - }, - "dark": { - "message": "Темная" - }, - "darkTheme": { - "message": "Ночная тема" - }, - "dateAndTime": { - "message": "Дата и время" - }, - "dawn": { - "message": "Рассвет" - }, - "decreasePlaybackSpeed": { - "message": "Уменьшить скорость видео" - }, - "decreaseVolume5": { - "message": "Уменьшить громкость на 5%" - }, - "deepOrange": { - "message": "Темно-оранжевый" - }, - "deepPurple": { - "message": "Темно-фиолетовый" - }, - "defaultChannelTab": { - "message": "Вкладка канала по умолчанию" - }, - "deleteYoutubeCookies": { - "message": "Удалить куки YouTube" - }, - "description": { - "message": "Описание" - }, - "desert": { - "message": "Пустыня" - }, - "details": { - "message": "Подробная информация" - }, - "developerOptions": { - "message": "Настройки разработчика" - }, - "device": { - "message": "Устройство" - }, - "dim": { - "message": "Тусклость" - }, - "disabled": { - "message": "Выключено" - }, - "dislike": { - "message": "Дизлайк" - }, - "donate": { - "message": "Пожертвовать" - }, - "doNotChange": { - "message": "Не менять" - }, - "draggable": { - "message": "Перетаскиваемый" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Пусто" - }, - "enabled": { - "message": "Включено" - }, - "enabledForced": { - "message": "Включено (принудительно)" - }, - "expanded": { - "message": "Развернуть" - }, - "exportSettings": { - "message": "Экспорт настроек" - }, - "extension": { - "message": "Расширение" - }, - "file": { - "message": "Файл" - }, - "filters": { - "message": "Фильтры" - }, - "fitToWindow": { - "message": "Подогнать под окно" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Шрифт" - }, - "footer": { - "message": "Нижний колонтитул" - }, - "forcedPlaybackSpeed": { - "message": "Форсировать скорость воспроизведения" - }, - "forcedTheaterMode": { - "message": "Принудительно переходить в режим кино" - }, - "forcedVolume": { - "message": "Принудительная громкость" - }, - "foundABug": { - "message": "Нашли ошибку?" - }, - "fullWindow": { - "message": "Растянуть на все окно" - }, - "general": { - "message": "Общее" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Перейти в окно поиска" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Зеленый" - }, - "hdThumbnail": { - "message": "Превью высокого качества" - }, - "hdThumbnails": { - "message": "Превью высокого качества" - }, - "header": { - "message": "Верхняя панель" - }, - "hidden": { - "message": "Скрыть" - }, - "hiddenOnVideoPage": { - "message": "Скрыть (только на странице с видео)" - }, - "hideAnimatedThumbnails": { - "message": "Скрыть анимированные превью" - }, - "hideAnnotations": { - "message": "Скрыть аннотации" - }, - "hideCards": { - "message": "Скрыть карточки" - }, - "hideDetails": { - "message": "Скрыть подробную информацию" - }, - "hideEndscreen": { - "message": "Скрыть экран после видео" - }, - "hideFeaturedContent": { - "message": "Скрыть рекомендации" - }, - "hideFooter": { - "message": "Скрыть нижний колонтитул" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "hidePlaylist": { - "message": "Скрыть плейлист" - }, - "hideRightButtons": { - "message": "Скрыть кнопки (справа)" - }, - "hideScrollForDetails": { - "message": "Скрыть «Прокрутите для подробной информации»" - }, - "hideViewsCount": { - "message": "Скрыть количество просмотров" - }, - "history": { - "message": "История" - }, - "home": { - "message": "Домашняя страница" - }, - "hover": { - "message": "Показывать при наведении" - }, - "hoverOnVideoPage": { - "message": "Показывать при наведении (только на странице с видео)" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Показывать как давно было загружено видео" - }, - "icons": { - "message": "Иконки" - }, - "iconsOnly": { - "message": "Только иконки" - }, - "importSettings": { - "message": "Импорт настроек" - }, - "improvedtubeIconInBrowser": { - "message": "Значок ImprovedTube в браузере" - }, - "improvedtubeIconOnYoutube": { - "message": "Значок ImprovedTube в YouTube" - }, - "improvedtubeLanguage": { - "message": "Язык ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Версия ImprovedTube" - }, - "improveLogo": { - "message": "Улучшить логотип YouTube" - }, - "increasePlaybackSpeed": { - "message": "Увеличить скорость видео" - }, - "increaseVolume5": { - "message": "Увеличить громкости на 5%" - }, - "indigo": { - "message": "Индиго" - }, - "items": { - "message": "Items" - }, - "languages": { - "message": "Языки" - }, - "legacyYoutube": { - "message": "Старая версия YouTube" - }, - "light": { - "message": "Светлая" - }, - "lightBlue": { - "message": "Светло-синий" - }, - "lightGreen": { - "message": "Светло-зеленый" - }, - "like": { - "message": "Лайк" - }, - "likes": { - "message": "Лайки" - }, - "lime": { - "message": "Лайм" - }, - "list": { - "message": "Список" - }, - "liveChat": { - "message": "Live-чат" - }, - "liveChatType": { - "message": "Тип live-чата" - }, - "loudnessNormalization": { - "message": "Нормализировать громкость" - }, - "markWatchedVideos": { - "message": "Отмечать просмотренные видео" - }, - "mixer": { - "message": "Миксер" - }, - "myColors": { - "message": "Мои цвета" - }, - "name": { - "message": "Имя" - }, - "nativeMiniPlayer": { - "message": "Мини-плеер от YouTube" - }, - "new": { - "message": "Новый" - }, - "nextVideo": { - "message": "Следующее видео" - }, - "night": { - "message": "Ночь" - }, - "noActiveFeatures": { - "message": "Нет активных функций" - }, - "none": { - "message": "Пусто" - }, - "noOpenVideoTabs": { - "message": "Нет открытых вкладок с видео" - }, - "normal": { - "message": "Обычный" - }, - "old": { - "message": "Старый" - }, - "onAllVideos": { - "message": "Во всех видео" - }, - "onlyActiveOnYoutube": { - "message": "Активен только в YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Только один экземпляр плеера играет" - }, - "onSubscribedChannels": { - "message": "Только на каналах в подписках" - }, - "orange": { - "message": "Оранжевый" - }, - "os": { - "message": "ОС" - }, - "other": { - "message": "Другое" - }, - "permissions": { - "message": "Разрешения" - }, - "pictureInPicture": { - "message": "Картинка в картинке" - }, - "pink": { - "message": "Розовый" - }, - "plain": { - "message": "Равнина" - }, - "platform": { - "message": "Платформа" - }, - "playbackSpeed": { - "message": "Скорость воспроизведения" - }, - "player": { - "message": "Плеер" - }, - "playerColor": { - "message": "Цвет плеера" - }, - "playerSize": { - "message": "Размер плеера" - }, - "playlist": { - "message": "Плейлист" - }, - "playlists": { - "message": "Плейлисты" - }, - "playPause": { - "message": "Воспроизведение / Пауза" - }, - "popupPlayer": { - "message": "Плеер во всплывающем окне" - }, - "position": { - "message": "Позиция" - }, - "pressAnyKeyOrScroll": { - "message": "Нажмите любую клавишу или воспользуйтесь колесом мыши" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Нажмите любую клавишу или используйте колесо мыши" - }, - "previousVideo": { - "message": "Предыдущее видео" - }, - "primaryColor": { - "message": "Основной цвет" - }, - "purple": { - "message": "Фиолетовый" - }, - "quality": { - "message": "Качество" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "Оцените нас" - }, - "red": { - "message": "Красный" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Похожие видео" - }, - "removeRelatedSearchResults": { - "message": "Удалить похожие результаты поиска" - }, - "repeat": { - "message": "Повтор" - }, - "reset": { - "message": "Сбросить" - }, - "resetAllSettings": { - "message": "Сбросить все настройки" - }, - "resetAllShortcuts": { - "message": "Сбросить все горячие клавиши" - }, - "reverse": { - "message": "Обратный порядок" - }, - "rotate": { - "message": "Повернуть" - }, - "save": { - "message": "Сохранить" - }, - "saveAs": { - "message": "Сохранить как" - }, - "schedule": { - "message": "Расписание" - }, - "screen": { - "message": "Экран" - }, - "screenshot": { - "message": "Скриншот" - }, - "search": { - "message": "Поиск" - }, - "searchBarOnly": { - "message": "Только поле поиска" - }, - "seekBackward10Seconds": { - "message": "Перемотать на 10 секунд назад" - }, - "seekForward10Seconds": { - "message": "Перемотать на 10 секунд вперед" - }, - "settings": { - "message": "Настройки" - }, - "settingsSuccessfullyImported": { - "message": "Настройки успешно импортированы" - }, - "shortcuts": { - "message": "Горячие клавиши" - }, - "showCardsOnMouseHover": { - "message": "Показывать карточки при наведении мыши" - }, - "showChannelVideosCount": { - "message": "Показывать количество видео на канале" - }, - "shuffle": { - "message": "Случайный порядок" - }, - "sidebar": { - "message": "Боковая панель" - }, - "spacebar": { - "message": "Пробел" - }, - "squaredUserImages": { - "message": "Квадратные аватарки пользователей" - }, - "static": { - "message": "Статично" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Стоп" - }, - "style": { - "message": "Стиль" - }, - "styles": { - "message": "Стили" - }, - "subscriptions": { - "message": "Подписки" - }, - "subtitles": { - "message": "Субтитры" - }, - "sunset": { - "message": "Закат" - }, - "sunsetToSunrise": { - "message": "От заката до рассвета" - }, - "systemPeferenceDark": { - "message": "Предпочитаемая системой: темная" - }, - "systemPeferenceLight": { - "message": "Предпочитаемая системой: светлая" - }, - "teal": { - "message": "Бирюзовый" - }, - "textColor": { - "message": "Цвет текста" - }, - "themes": { - "message": "Темы" - }, - "thisWillRemoveAllCookies": { - "message": "Это удалит все куки" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Вы действительно хотите удалить все куки YouTube?" - }, - "thisWillResetAllSettings": { - "message": "Это сбросит все настройки" - }, - "thisWillResetAllShortcuts": { - "message": "Это сбросит все горячие клавиши" - }, - "thumbnails": { - "message": "Превью" - }, - "timeFrom": { - "message": "Время от" - }, - "timeTo": { - "message": "Время до" - }, - "todayAt": { - "message": "Сегодня в" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "Автовоспроизведение трейлера" - }, - "translations": { - "message": "Переводы" - }, - "transparentBackground": { - "message": "Прозрачный фон" - }, - "trending": { - "message": "Тренды" - }, - "tryToReloadThePage": { - "message": "Попробуйте перезагрузить страницу" - }, - "type": { - "message": "Тип" - }, - "upNextAutoplay": { - "message": "Автовоспроизведение следующего видео" - }, - "use24HourFormat": { - "message": "24-часовой формат" - }, - "version": { - "message": "Версия" - }, - "video": { - "message": "Видео" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Описание видео будет развернуто, чтобы получить название категории видео" - }, - "videoFormats": { - "message": "Форматы видео" - }, - "videos": { - "message": "Видео" - }, - "volume": { - "message": "Громкость" - }, - "watchLater": { - "message": "Посмотреть позже" - }, - "watchTime": { - "message": "Время просмотра" - }, - "whenTabIsChanged": { - "message": "При переключении вкладок" - }, - "white": { - "message": "Белый" - }, - "yellow": { - "message": "Желтый" - }, - "youtubeHeaderLeft": { - "message": "Верхняя панель (слева)" - }, - "youtubeHeaderRight": { - "message": "Верхняя панель (справа)" - }, - "youtubeHomePage": { - "message": "Домашняя страница YouTube" - }, - "youtubeLanguage": { - "message": "Язык YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube ограничивает качетво видео до 1080p для кодека h.264" - } -} +{ + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "about": { + "message": "\u041e\u0431 ImprovedTube" + }, + "accept": { + "message": "\u041f\u0440\u0438\u043d\u044f\u0442\u044c" + }, + "activate": { + "message": "\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c" + }, + "activateCaptions": { + "message": "\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b" + }, + "activateFullscreen": { + "message": "\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u043f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c" + }, + "activated": { + "message": "\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043e" + }, + "activatedFeatures": { + "message": "\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438" + }, + "activeFeatures": { + "message": "\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438" + }, + "addScrollToTop": { + "message": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u00ab\u043d\u0430\u0432\u0435\u0440\u0445\u00bb" + }, + "ads": { + "message": "\u0420\u0435\u043a\u043b\u0430\u043c\u0430" + }, + "all": { + "message": "\u0412\u0441\u0435" + }, + "allow": { + "message": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c" + }, + "allow60fps": { + "message": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c 60fps" + }, + "alwaysActive": { + "message": "\u0412\u0441\u0435\u0433\u0434\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439" + }, + "alwaysShowProgressBar": { + "message": "\u0412\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441-\u0431\u0430\u0440" + }, + "amber": { + "message": "\u042f\u043d\u0442\u0430\u0440\u043d\u044b\u0439" + }, + "analyzer": { + "message": "\u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440" + }, + "appearance": { + "message": "\u0412\u043d\u0435\u0448\u043d\u0438\u0439 \u0432\u0438\u0434" + }, + "audio": { + "message": "\u0410\u0443\u0434\u0438\u043e" + }, + "audioFormats": { + "message": "\u0410\u0443\u0434\u0438\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u044b" + }, + "auto": { + "message": "\u0410\u0432\u0442\u043e" + }, + "autoFullscreen": { + "message": "\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0432 \u043f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c" + }, + "autopauseWhenSwitchingTabs": { + "message": "\u0410\u0432\u0442\u043e\u043f\u0430\u0443\u0437\u0430 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043c\u0435\u0436\u0434\u0443 \u0432\u043a\u043b\u0430\u0434\u043a\u0430\u043c\u0438" + }, + "autoplay": { + "message": "\u0410\u0432\u0442\u043e\u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435" + }, + "backupAndReset": { + "message": "\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0441\u0431\u0440\u043e\u0441" + }, + "baseOnSystemColorScheme": { + "message": "\u0417\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u0441\u0445\u0435\u043c\u044b" + }, + "belowPlayer": { + "message": "\u041d\u0438\u0436\u0435 \u043f\u043b\u0435\u0435\u0440\u0430" + }, + "black": { + "message": "\u0427\u0435\u0440\u043d\u044b\u0439" + }, + "blacklist": { + "message": "\u0427\u0435\u0440\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a" + }, + "blockAll": { + "message": "\u0417\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0451" + }, + "blue": { + "message": "\u0421\u0438\u043d\u0438\u0439" + }, + "blueGray": { + "message": "\u0421\u0435\u0440\u043e-\u0433\u043e\u043b\u0443\u0431\u043e\u0439" + }, + "bluelight": { + "message": "\u0421\u0438\u043d\u0438\u0439 \u0441\u0432\u0435\u0442" + }, + "brown": { + "message": "\u041a\u043e\u0440\u0438\u0447\u043d\u0435\u0432\u044b\u0439" + }, + "browser": { + "message": "\u0411\u0440\u0430\u0443\u0437\u0435\u0440" + }, + "browserVersion": { + "message": "\u0412\u0435\u0440\u0441\u0438\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430" + }, + "bubbles": { + "message": "\u041f\u0443\u0437\u044b\u0440\u0438" + }, + "bug": { + "message": "\u041e\u0448\u0438\u0431\u043a\u0430" + }, + "buttons": { + "message": "\u041a\u043d\u043e\u043f\u043a\u0438" + }, + "cancel": { + "message": "\u041e\u0442\u043c\u0435\u043d\u0430" + }, + "categories": { + "message": "\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438" + }, + "channel": { + "message": "\u041a\u0430\u043d\u0430\u043b" + }, + "channels": { + "message": "\u041a\u0430\u043d\u0430\u043b\u044b" + }, + "clipboard": { + "message": "\u0411\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430" + }, + "codecH264": { + "message": "\u041a\u043e\u0434\u0435\u043a h.264" + }, + "collapseOfSubscriptionSections": { + "message": "\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b \u043f\u043e\u0434\u043f\u0438\u0441\u043e\u043a" + }, + "collapsed": { + "message": "\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c" + }, + "comments": { + "message": "\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438" + }, + "confirmationBeforeClosing": { + "message": "\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f" + }, + "cookies": { + "message": "\u041a\u0443\u043a\u0438" + }, + "cores": { + "message": "\u042f\u0434\u0440\u0430" + }, + "cropChapterTitles": { + "message": "\u041e\u0431\u0440\u0435\u0437\u0430\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0433\u043b\u0430\u0432" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "\u0421ustom JS" + }, + "customMiniPlayer": { + "message": "\u041d\u043e\u0432\u044b\u0439 \u043c\u0438\u043d\u0438-\u043f\u043b\u0435\u0435\u0440" + }, + "cyan": { + "message": "\u0421\u0438\u043d\u0435-\u0437\u0435\u043b\u0451\u043d\u044b\u0439" + }, + "dark": { + "message": "\u0422\u0435\u043c\u043d\u0430\u044f" + }, + "darkTheme": { + "message": "\u041d\u043e\u0447\u043d\u0430\u044f \u0442\u0435\u043c\u0430" + }, + "dateAndTime": { + "message": "\u0414\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043c\u044f" + }, + "dawn": { + "message": "\u0420\u0430\u0441\u0441\u0432\u0435\u0442" + }, + "decreasePlaybackSpeed": { + "message": "\u0423\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u0438\u0434\u0435\u043e" + }, + "decreaseVolume5": { + "message": "\u0423\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c \u043d\u0430 5%" + }, + "deepOrange": { + "message": "\u0422\u0435\u043c\u043d\u043e-\u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439" + }, + "deepPurple": { + "message": "\u0422\u0435\u043c\u043d\u043e-\u0444\u0438\u043e\u043b\u0435\u0442\u043e\u0432\u044b\u0439" + }, + "defaultChannelTab": { + "message": "\u0412\u043a\u043b\u0430\u0434\u043a\u0430 \u043a\u0430\u043d\u0430\u043b\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e" + }, + "deleteYoutubeCookies": { + "message": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043a\u0443\u043a\u0438 YouTube" + }, + "description": { + "message": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435" + }, + "desert": { + "message": "\u041f\u0443\u0441\u0442\u044b\u043d\u044f" + }, + "details": { + "message": "\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f" + }, + "developerOptions": { + "message": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430" + }, + "device": { + "message": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e" + }, + "dim": { + "message": "\u0422\u0443\u0441\u043a\u043b\u043e\u0441\u0442\u044c" + }, + "disabled": { + "message": "\u0412\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043e" + }, + "dislike": { + "message": "\u0414\u0438\u0437\u043b\u0430\u0439\u043a" + }, + "doNotChange": { + "message": "\u041d\u0435 \u043c\u0435\u043d\u044f\u0442\u044c" + }, + "donate": { + "message": "\u041f\u043e\u0436\u0435\u0440\u0442\u0432\u043e\u0432\u0430\u0442\u044c" + }, + "draggable": { + "message": "\u041f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0435\u043c\u044b\u0439" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "\u041f\u0443\u0441\u0442\u043e" + }, + "enabled": { + "message": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u043e" + }, + "enabledForced": { + "message": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u043e (\u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e)" + }, + "expanded": { + "message": "\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c" + }, + "exportSettings": { + "message": "\u042d\u043a\u0441\u043f\u043e\u0440\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a" + }, + "extension": { + "message": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435" + }, + "file": { + "message": "\u0424\u0430\u0439\u043b" + }, + "filters": { + "message": "\u0424\u0438\u043b\u044c\u0442\u0440\u044b" + }, + "fitToWindow": { + "message": "\u041f\u043e\u0434\u043e\u0433\u043d\u0430\u0442\u044c \u043f\u043e\u0434 \u043e\u043a\u043d\u043e" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "\u0428\u0440\u0438\u0444\u0442" + }, + "footer": { + "message": "\u041d\u0438\u0436\u043d\u0438\u0439 \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlaybackSpeed": { + "message": "\u0424\u043e\u0440\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f" + }, + "forcedTheaterMode": { + "message": "\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u0440\u0435\u0436\u0438\u043c \u043a\u0438\u043d\u043e" + }, + "forcedVolume": { + "message": "\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c" + }, + "foundABug": { + "message": "\u041d\u0430\u0448\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0443?" + }, + "fullWindow": { + "message": "\u0420\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u0432\u0441\u0435 \u043e\u043a\u043d\u043e" + }, + "general": { + "message": "\u041e\u0431\u0449\u0435\u0435" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u043e\u043a\u043d\u043e \u043f\u043e\u0438\u0441\u043a\u0430" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "\u0417\u0435\u043b\u0435\u043d\u044b\u0439" + }, + "hdThumbnail": { + "message": "\u041f\u0440\u0435\u0432\u044c\u044e \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430" + }, + "hdThumbnails": { + "message": "\u041f\u0440\u0435\u0432\u044c\u044e \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430" + }, + "header": { + "message": "\u0412\u0435\u0440\u0445\u043d\u044f\u044f \u043f\u0430\u043d\u0435\u043b\u044c" + }, + "hidden": { + "message": "\u0421\u043a\u0440\u044b\u0442\u044c" + }, + "hiddenOnVideoPage": { + "message": "\u0421\u043a\u0440\u044b\u0442\u044c (\u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0441 \u0432\u0438\u0434\u0435\u043e)" + }, + "hideAnimatedThumbnails": { + "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0435\u0432\u044c\u044e" + }, + "hideAnnotations": { + "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438" + }, + "hideCards": { + "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438" + }, + "hideDetails": { + "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e" + }, + "hideEndscreen": { + "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u044d\u043a\u0440\u0430\u043d \u043f\u043e\u0441\u043b\u0435 \u0432\u0438\u0434\u0435\u043e" + }, + "hideFeaturedContent": { + "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438" + }, + "hideFooter": { + "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u043d\u0438\u0436\u043d\u0438\u0439 \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hidePlaylist": { + "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u043f\u043b\u0435\u0439\u043b\u0438\u0441\u0442" + }, + "hideRightButtons": { + "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0438 (\u0441\u043f\u0440\u0430\u0432\u0430)" + }, + "hideScrollForDetails": { + "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u00ab\u041f\u0440\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u0435 \u0434\u043b\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438\u00bb" + }, + "hideViewsCount": { + "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u0432" + }, + "history": { + "message": "\u0418\u0441\u0442\u043e\u0440\u0438\u044f" + }, + "home": { + "message": "\u0414\u043e\u043c\u0430\u0448\u043d\u044f\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430" + }, + "hover": { + "message": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0438" + }, + "hoverOnVideoPage": { + "message": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0438 (\u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0441 \u0432\u0438\u0434\u0435\u043e)" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043e \u0432\u0438\u0434\u0435\u043e" + }, + "icons": { + "message": "\u0418\u043a\u043e\u043d\u043a\u0438" + }, + "iconsOnly": { + "message": "\u0422\u043e\u043b\u044c\u043a\u043e \u0438\u043a\u043e\u043d\u043a\u0438" + }, + "importSettings": { + "message": "\u0418\u043c\u043f\u043e\u0440\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a" + }, + "improveLogo": { + "message": "\u0423\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043b\u043e\u0433\u043e\u0442\u0438\u043f YouTube" + }, + "improvedtubeIconInBrowser": { + "message": "\u0417\u043d\u0430\u0447\u043e\u043a ImprovedTube \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435" + }, + "improvedtubeIconOnYoutube": { + "message": "\u0417\u043d\u0430\u0447\u043e\u043a ImprovedTube \u0432 YouTube" + }, + "improvedtubeLanguage": { + "message": "\u042f\u0437\u044b\u043a ImprovedTube" + }, + "improvedtubeVersion": { + "message": "\u0412\u0435\u0440\u0441\u0438\u044f ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u0438\u0434\u0435\u043e" + }, + "increaseVolume5": { + "message": "\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u0438 \u043d\u0430 5%" + }, + "indigo": { + "message": "\u0418\u043d\u0434\u0438\u0433\u043e" + }, + "items": { + "message": "Items" + }, + "languages": { + "message": "\u042f\u0437\u044b\u043a\u0438" + }, + "legacyYoutube": { + "message": "\u0421\u0442\u0430\u0440\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f YouTube" + }, + "light": { + "message": "\u0421\u0432\u0435\u0442\u043b\u0430\u044f" + }, + "lightBlue": { + "message": "\u0421\u0432\u0435\u0442\u043b\u043e-\u0441\u0438\u043d\u0438\u0439" + }, + "lightGreen": { + "message": "\u0421\u0432\u0435\u0442\u043b\u043e-\u0437\u0435\u043b\u0435\u043d\u044b\u0439" + }, + "like": { + "message": "\u041b\u0430\u0439\u043a" + }, + "likes": { + "message": "\u041b\u0430\u0439\u043a\u0438" + }, + "lime": { + "message": "\u041b\u0430\u0439\u043c" + }, + "list": { + "message": "\u0421\u043f\u0438\u0441\u043e\u043a" + }, + "liveChat": { + "message": "Live-\u0447\u0430\u0442" + }, + "liveChatType": { + "message": "\u0422\u0438\u043f live-\u0447\u0430\u0442\u0430" + }, + "loudnessNormalization": { + "message": "\u041d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c" + }, + "markWatchedVideos": { + "message": "\u041e\u0442\u043c\u0435\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0435 \u0432\u0438\u0434\u0435\u043e" + }, + "mixer": { + "message": "\u041c\u0438\u043a\u0441\u0435\u0440" + }, + "myColors": { + "message": "\u041c\u043e\u0438 \u0446\u0432\u0435\u0442\u0430" + }, + "name": { + "message": "\u0418\u043c\u044f" + }, + "nativeMiniPlayer": { + "message": "\u041c\u0438\u043d\u0438-\u043f\u043b\u0435\u0435\u0440 \u043e\u0442 YouTube" + }, + "new": { + "message": "\u041d\u043e\u0432\u044b\u0439" + }, + "nextVideo": { + "message": "\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0432\u0438\u0434\u0435\u043e" + }, + "night": { + "message": "\u041d\u043e\u0447\u044c" + }, + "noActiveFeatures": { + "message": "\u041d\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439" + }, + "noOpenVideoTabs": { + "message": "\u041d\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0432\u043a\u043b\u0430\u0434\u043e\u043a \u0441 \u0432\u0438\u0434\u0435\u043e" + }, + "none": { + "message": "\u041f\u0443\u0441\u0442\u043e" + }, + "normal": { + "message": "\u041e\u0431\u044b\u0447\u043d\u044b\u0439" + }, + "old": { + "message": "\u0421\u0442\u0430\u0440\u044b\u0439" + }, + "onAllVideos": { + "message": "\u0412\u043e \u0432\u0441\u0435\u0445 \u0432\u0438\u0434\u0435\u043e" + }, + "onSubscribedChannels": { + "message": "\u0422\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u0430\u0445 \u0432 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430\u0445" + }, + "onlyActiveOnYoutube": { + "message": "\u0410\u043a\u0442\u0438\u0432\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "\u0422\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043f\u043b\u0435\u0435\u0440\u0430 \u0438\u0433\u0440\u0430\u0435\u0442" + }, + "orange": { + "message": "\u041e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439" + }, + "os": { + "message": "\u041e\u0421" + }, + "other": { + "message": "\u0414\u0440\u0443\u0433\u043e\u0435" + }, + "permissions": { + "message": "\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f" + }, + "pictureInPicture": { + "message": "\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0432 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435" + }, + "pink": { + "message": "\u0420\u043e\u0437\u043e\u0432\u044b\u0439" + }, + "plain": { + "message": "\u0420\u0430\u0432\u043d\u0438\u043d\u0430" + }, + "platform": { + "message": "\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430" + }, + "playPause": { + "message": "\u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 / \u041f\u0430\u0443\u0437\u0430" + }, + "playbackSpeed": { + "message": "\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f" + }, + "player": { + "message": "\u041f\u043b\u0435\u0435\u0440" + }, + "playerColor": { + "message": "\u0426\u0432\u0435\u0442 \u043f\u043b\u0435\u0435\u0440\u0430" + }, + "playerSize": { + "message": "\u0420\u0430\u0437\u043c\u0435\u0440 \u043f\u043b\u0435\u0435\u0440\u0430" + }, + "playlist": { + "message": "\u041f\u043b\u0435\u0439\u043b\u0438\u0441\u0442" + }, + "playlists": { + "message": "\u041f\u043b\u0435\u0439\u043b\u0438\u0441\u0442\u044b" + }, + "popupPlayer": { + "message": "\u041f\u043b\u0435\u0435\u0440 \u0432\u043e \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0435\u043c \u043e\u043a\u043d\u0435" + }, + "position": { + "message": "\u041f\u043e\u0437\u0438\u0446\u0438\u044f" + }, + "pressAnyKeyOrScroll": { + "message": "\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043b\u044e\u0431\u0443\u044e \u043a\u043b\u0430\u0432\u0438\u0448\u0443 \u0438\u043b\u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u043a\u043e\u043b\u0435\u0441\u043e\u043c \u043c\u044b\u0448\u0438" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043b\u044e\u0431\u0443\u044e \u043a\u043b\u0430\u0432\u0438\u0448\u0443 \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u043e\u043b\u0435\u0441\u043e \u043c\u044b\u0448\u0438" + }, + "previousVideo": { + "message": "\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0435 \u0432\u0438\u0434\u0435\u043e" + }, + "primaryColor": { + "message": "\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0432\u0435\u0442" + }, + "purple": { + "message": "\u0424\u0438\u043e\u043b\u0435\u0442\u043e\u0432\u044b\u0439" + }, + "quality": { + "message": "\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "\u041e\u0446\u0435\u043d\u0438\u0442\u0435 \u043d\u0430\u0441" + }, + "red": { + "message": "\u041a\u0440\u0430\u0441\u043d\u044b\u0439" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "\u041f\u043e\u0445\u043e\u0436\u0438\u0435 \u0432\u0438\u0434\u0435\u043e" + }, + "removeRelatedSearchResults": { + "message": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u043e\u0445\u043e\u0436\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e\u0438\u0441\u043a\u0430" + }, + "repeat": { + "message": "\u041f\u043e\u0432\u0442\u043e\u0440" + }, + "reset": { + "message": "\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c" + }, + "resetAllSettings": { + "message": "\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0432\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438" + }, + "resetAllShortcuts": { + "message": "\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0432\u0441\u0435 \u0433\u043e\u0440\u044f\u0447\u0438\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438" + }, + "reverse": { + "message": "\u041e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a" + }, + "rotate": { + "message": "\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c" + }, + "save": { + "message": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c" + }, + "saveAs": { + "message": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a" + }, + "schedule": { + "message": "\u0420\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435" + }, + "screen": { + "message": "\u042d\u043a\u0440\u0430\u043d" + }, + "screenshot": { + "message": "\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442" + }, + "search": { + "message": "\u041f\u043e\u0438\u0441\u043a" + }, + "searchBarOnly": { + "message": "\u0422\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435 \u043f\u043e\u0438\u0441\u043a\u0430" + }, + "seekBackward10Seconds": { + "message": "\u041f\u0435\u0440\u0435\u043c\u043e\u0442\u0430\u0442\u044c \u043d\u0430 10 \u0441\u0435\u043a\u0443\u043d\u0434 \u043d\u0430\u0437\u0430\u0434" + }, + "seekForward10Seconds": { + "message": "\u041f\u0435\u0440\u0435\u043c\u043e\u0442\u0430\u0442\u044c \u043d\u0430 10 \u0441\u0435\u043a\u0443\u043d\u0434 \u0432\u043f\u0435\u0440\u0435\u0434" + }, + "settings": { + "message": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438" + }, + "settingsSuccessfullyImported": { + "message": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b" + }, + "shortcuts": { + "message": "\u0413\u043e\u0440\u044f\u0447\u0438\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438" + }, + "showCardsOnMouseHover": { + "message": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 \u043f\u0440\u0438 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043c\u044b\u0448\u0438" + }, + "showChannelVideosCount": { + "message": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0438\u0434\u0435\u043e \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u0435" + }, + "shuffle": { + "message": "\u0421\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a" + }, + "sidebar": { + "message": "\u0411\u043e\u043a\u043e\u0432\u0430\u044f \u043f\u0430\u043d\u0435\u043b\u044c" + }, + "spacebar": { + "message": "\u041f\u0440\u043e\u0431\u0435\u043b" + }, + "squaredUserImages": { + "message": "\u041a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0435 \u0430\u0432\u0430\u0442\u0430\u0440\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439" + }, + "static": { + "message": "\u0421\u0442\u0430\u0442\u0438\u0447\u043d\u043e" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "\u0421\u0442\u043e\u043f" + }, + "style": { + "message": "\u0421\u0442\u0438\u043b\u044c" + }, + "styles": { + "message": "\u0421\u0442\u0438\u043b\u0438" + }, + "subscriptions": { + "message": "\u041f\u043e\u0434\u043f\u0438\u0441\u043a\u0438" + }, + "subtitles": { + "message": "\u0421\u0443\u0431\u0442\u0438\u0442\u0440\u044b" + }, + "sunset": { + "message": "\u0417\u0430\u043a\u0430\u0442" + }, + "sunsetToSunrise": { + "message": "\u041e\u0442 \u0437\u0430\u043a\u0430\u0442\u0430 \u0434\u043e \u0440\u0430\u0441\u0441\u0432\u0435\u0442\u0430" + }, + "systemPeferenceDark": { + "message": "\u041f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439: \u0442\u0435\u043c\u043d\u0430\u044f" + }, + "systemPeferenceLight": { + "message": "\u041f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439: \u0441\u0432\u0435\u0442\u043b\u0430\u044f" + }, + "teal": { + "message": "\u0411\u0438\u0440\u044e\u0437\u043e\u0432\u044b\u0439" + }, + "textColor": { + "message": "\u0426\u0432\u0435\u0442 \u0442\u0435\u043a\u0441\u0442\u0430" + }, + "themes": { + "message": "\u0422\u0435\u043c\u044b" + }, + "thisWillRemoveAllCookies": { + "message": "\u042d\u0442\u043e \u0443\u0434\u0430\u043b\u0438\u0442 \u0432\u0441\u0435 \u043a\u0443\u043a\u0438" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u043a\u0443\u043a\u0438 YouTube?" + }, + "thisWillResetAllSettings": { + "message": "\u042d\u0442\u043e \u0441\u0431\u0440\u043e\u0441\u0438\u0442 \u0432\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438" + }, + "thisWillResetAllShortcuts": { + "message": "\u042d\u0442\u043e \u0441\u0431\u0440\u043e\u0441\u0438\u0442 \u0432\u0441\u0435 \u0433\u043e\u0440\u044f\u0447\u0438\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438" + }, + "thumbnails": { + "message": "\u041f\u0440\u0435\u0432\u044c\u044e" + }, + "timeFrom": { + "message": "\u0412\u0440\u0435\u043c\u044f \u043e\u0442" + }, + "timeTo": { + "message": "\u0412\u0440\u0435\u043c\u044f \u0434\u043e" + }, + "todayAt": { + "message": "\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0432" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "\u0410\u0432\u0442\u043e\u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0440\u0435\u0439\u043b\u0435\u0440\u0430" + }, + "translations": { + "message": "\u041f\u0435\u0440\u0435\u0432\u043e\u0434\u044b" + }, + "transparentBackground": { + "message": "\u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439 \u0444\u043e\u043d" + }, + "trending": { + "message": "\u0422\u0440\u0435\u043d\u0434\u044b" + }, + "tryToReloadThePage": { + "message": "\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443" + }, + "type": { + "message": "\u0422\u0438\u043f" + }, + "upNextAutoplay": { + "message": "\u0410\u0432\u0442\u043e\u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0432\u0438\u0434\u0435\u043e" + }, + "use24HourFormat": { + "message": "24-\u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442" + }, + "version": { + "message": "\u0412\u0435\u0440\u0441\u0438\u044f" + }, + "video": { + "message": "\u0412\u0438\u0434\u0435\u043e" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432\u0438\u0434\u0435\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432\u0438\u0434\u0435\u043e" + }, + "videoFormats": { + "message": "\u0424\u043e\u0440\u043c\u0430\u0442\u044b \u0432\u0438\u0434\u0435\u043e" + }, + "videos": { + "message": "\u0412\u0438\u0434\u0435\u043e" + }, + "volume": { + "message": "\u0413\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c" + }, + "watchLater": { + "message": "\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e\u0437\u0436\u0435" + }, + "watchTime": { + "message": "\u0412\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430" + }, + "whenTabIsChanged": { + "message": "\u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0432\u043a\u043b\u0430\u0434\u043e\u043a" + }, + "white": { + "message": "\u0411\u0435\u043b\u044b\u0439" + }, + "yellow": { + "message": "\u0416\u0435\u043b\u0442\u044b\u0439" + }, + "youtubeHeaderLeft": { + "message": "\u0412\u0435\u0440\u0445\u043d\u044f\u044f \u043f\u0430\u043d\u0435\u043b\u044c (\u0441\u043b\u0435\u0432\u0430)" + }, + "youtubeHeaderRight": { + "message": "\u0412\u0435\u0440\u0445\u043d\u044f\u044f \u043f\u0430\u043d\u0435\u043b\u044c (\u0441\u043f\u0440\u0430\u0432\u0430)" + }, + "youtubeHomePage": { + "message": "\u0414\u043e\u043c\u0430\u0448\u043d\u044f\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 YouTube" + }, + "youtubeLanguage": { + "message": "\u042f\u0437\u044b\u043a YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u043a\u0430\u0447\u0435\u0442\u0432\u043e \u0432\u0438\u0434\u0435\u043e \u0434\u043e 1080p \u0434\u043b\u044f \u043a\u043e\u0434\u0435\u043a\u0430 h.264" + } +} \ No newline at end of file diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 794ee18e7..e9cf0fe92 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -1,78 +1,78 @@ { + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "about": { "message": "O" }, "accept": { - "message": "Prijať" + "message": "Prija\u0165" }, "activate": { - "message": "Aktivovať" + "message": "Aktivova\u0165" }, "activateCaptions": { - "message": "Aktivovať titulky" + "message": "Aktivova\u0165 titulky" + }, + "activateFullscreen": { + "message": "Aktivova\u0165 zobrazenie na cel\u00fa obrazovku" }, "activated": { - "message": "Aktivované" + "message": "Aktivovan\u00e9" }, "activatedFeatures": { - "message": "Aktivované fukncie" - }, - "activateFullscreen": { - "message": "Aktivovať zobrazenie na celú obrazovku" + "message": "Aktivovan\u00e9 fukncie" }, "activeFeatures": { - "message": "Aktívne funkcie" + "message": "Akt\u00edvne funkcie" }, "addScrollToTop": { - "message": "Prejdite «Vrátiť sa na začiatok»" + "message": "Prejdite \u00abVr\u00e1ti\u0165 sa na za\u010diatok\u00bb" }, "ads": { "message": "Reklamy" }, "all": { - "message": "Všetko" + "message": "V\u0161etko" }, "allow": { - "message": "Povoliť" + "message": "Povoli\u0165" }, "allow60fps": { - "message": "Povoliť 60fps" - }, - "forceSDR": { - "message": "Force SDR" + "message": "Povoli\u0165 60fps" }, "alwaysActive": { - "message": "Vždy aktívne" + "message": "V\u017edy akt\u00edvne" }, "alwaysShowProgressBar": { - "message": "Vždy zobrazovať ukazateľ priebehu" + "message": "V\u017edy zobrazova\u0165 ukazate\u013e priebehu" }, "amber": { "message": "Ambra" }, "analyzer": { - "message": "Analyzátor" + "message": "Analyz\u00e1tor" }, "appearance": { - "message": "Vzhľad" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" + "message": "Vzh\u013ead" }, "audio": { "message": "Zvuk" }, "audioFormats": { - "message": "Formát zvuku" + "message": "Form\u00e1t zvuku" }, "auto": { "message": "Automaticky" @@ -81,46 +81,46 @@ "message": "Automaticky-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Automatické pozastavenie pri prepínaní kariet" + "message": "Automatick\u00e9 pozastavenie pri prep\u00ednan\u00ed kariet" }, "autoplay": { - "message": "Automatické prehrávanie" + "message": "Automatick\u00e9 prehr\u00e1vanie" }, "backupAndReset": { - "message": "Zálohovanie & Obnova" + "message": "Z\u00e1lohovanie & Obnova" }, "baseOnSystemColorScheme": { - "message": "Nastavené podľa farby systému" + "message": "Nastaven\u00e9 pod\u013ea farby syst\u00e9mu" }, "belowPlayer": { - "message": "Pod prehrávačom" + "message": "Pod prehr\u00e1va\u010dom" }, "black": { - "message": "Čierna" + "message": "\u010cierna" }, "blacklist": { "message": "Blacklist" }, "blockAll": { - "message": "Zablokovať všetko" + "message": "Zablokova\u0165 v\u0161etko" }, "blue": { - "message": "Modrá" + "message": "Modr\u00e1" }, "blueGray": { - "message": "Šedo-modrá" + "message": "\u0160edo-modr\u00e1" }, "bluelight": { - "message": "Modré svetlo" + "message": "Modr\u00e9 svetlo" }, "brown": { - "message": "Hnedá" + "message": "Hned\u00e1" }, "browser": { "message": "Prehliadac" }, "browserVersion": { - "message": "Verzie prehliadača" + "message": "Verzie prehliada\u010da" }, "bubbles": { "message": "Bubliny" @@ -129,256 +129,259 @@ "message": "Chyba" }, "buttons": { - "message": "Tlačidlá" + "message": "Tla\u010didl\u00e1" }, "cancel": { - "message": "Zrušiť" + "message": "Zru\u0161i\u0165" }, "categories": { - "message": "Kategórie" + "message": "Kateg\u00f3rie" }, "channel": { - "message": "Kanál" + "message": "Kan\u00e1l" }, "channels": { - "message": "Kanály" + "message": "Kan\u00e1ly" }, "clipboard": { - "message": "Schránka" + "message": "Schr\u00e1nka" }, "codecH264": { "message": "Kodek h.264" }, - "collapsed": { - "message": "Zbaliť" - }, "collapseOfSubscriptionSections": { - "message": "Zbaliť sekciu Odber" + "message": "Zbali\u0165 sekciu Odber" + }, + "collapsed": { + "message": "Zbali\u0165" }, "comments": { - "message": "Komentáre" + "message": "Koment\u00e1re" }, "confirmationBeforeClosing": { - "message": "Potvrdiť pred zatvorenímk" + "message": "Potvrdi\u0165 pred zatvoren\u00edmk" }, "cookies": { "message": "Cookies" }, "cores": { - "message": "Jadrá" + "message": "Jadr\u00e1" }, "cropChapterTitles": { "message": "Crop chapter titles" }, "customCss": { - "message": "Vlastné CSS" + "message": "Vlastn\u00e9 CSS" }, "customJs": { - "message": "Vlastné JS" + "message": "Vlastn\u00e9 JS" }, "customMiniPlayer": { "message": "Custom Mini-Player" }, "cyan": { - "message": "Tyrkysová" + "message": "Tyrkysov\u00e1" }, "dark": { - "message": "Tmavý" + "message": "Tmav\u00fd" }, "darkTheme": { - "message": "Tmavá téma" + "message": "Tmav\u00e1 t\u00e9ma" }, "dateAndTime": { - "message": "Dátum a čas" + "message": "D\u00e1tum a \u010das" }, "dawn": { "message": "Svitanie" }, "decreasePlaybackSpeed": { - "message": "Znížiť rýchlosť prehrávania" + "message": "Zn\u00ed\u017ei\u0165 r\u00fdchlos\u0165 prehr\u00e1vania" }, "decreaseVolume": { - "message": "Znížiť hlasitosť" + "message": "Zn\u00ed\u017ei\u0165 hlasitos\u0165" }, "deepOrange": { - "message": "Tmavo oranžová" + "message": "Tmavo oran\u017eov\u00e1" }, "deepPurple": { - "message": "Tmavo fialová" + "message": "Tmavo fialov\u00e1" }, "defaultChannelTab": { - "message": "Predvolená karta kanálu" + "message": "Predvolen\u00e1 karta kan\u00e1lu" }, "deleteYoutubeCookies": { - "message": "Vymazať YouTube cookies" + "message": "Vymaza\u0165 YouTube cookies" }, "description": { "message": "Podrobnosti" }, "desert": { - "message": "Púšť" + "message": "P\u00fa\u0161\u0165" }, "details": { "message": "Detaily" }, "developerOptions": { - "message": "Možnosti pre vývojara" + "message": "Mo\u017enosti pre v\u00fdvojara" }, "device": { "message": "Zariadenie" }, "dim": { - "message": "Stmvaviť" + "message": "Stmvavi\u0165" }, "disabled": { - "message": "Vypnutý" + "message": "Vypnut\u00fd" }, "dislike": { "message": "Dislike" }, - "donate": { - "message": "Prispieť" - }, "doNotChange": { - "message": "Nemeniť" + "message": "Nemeni\u0165" + }, + "donate": { + "message": "Prispie\u0165" }, "draggable": { - "message": "Posuvné" + "message": "Posuvn\u00e9" }, "email": { "message": "Email" }, "empty": { - "message": "Prázdny" + "message": "Pr\u00e1zdny" }, "enabled": { - "message": "Zapnuté" + "message": "Zapnut\u00e9" }, "enabledForced": { - "message": "Zapnuté (vynútene)" + "message": "Zapnut\u00e9 (vyn\u00fatene)" }, "expanded": { - "message": "Rozbalené" + "message": "Rozbalen\u00e9" }, "exportSettings": { - "message": "Exportovať nastavenia" + "message": "Exportova\u0165 nastavenia" }, "extension": { - "message": "Rozšírenia" + "message": "Roz\u0161\u00edrenia" }, "file": { - "message": "Súbor" + "message": "S\u00fabor" }, "filters": { "message": "Filtre" }, "fitToWindow": { - "message": "Prispôsobiť oknu" + "message": "Prisp\u00f4sobi\u0165 oknu" }, "flash": { - "message": "Blikať" + "message": "Blika\u0165" }, "font": { - "message": "Písmo" + "message": "P\u00edsmo" }, "footer": { - "message": "Pätička" + "message": "P\u00e4ti\u010dka" + }, + "forceSDR": { + "message": "Force SDR" }, "forcedPlaybackSpeed": { - "message": "Vynútená rýchlosť prehrávania" + "message": "Vyn\u00faten\u00e1 r\u00fdchlos\u0165 prehr\u00e1vania" }, "forcedTheaterMode": { - "message": "Vynútený divadelný režim" + "message": "Vyn\u00faten\u00fd divadeln\u00fd re\u017eim" }, "forcedVolume": { - "message": "Vynútená hlasitosť" + "message": "Vyn\u00faten\u00e1 hlasitos\u0165" }, "foundABug": { - "message": "Našli ste chybu?" + "message": "Na\u0161li ste chybu?" }, "fullWindow": { - "message": "Celé okno" + "message": "Cel\u00e9 okno" }, "general": { - "message": "Všeobecné" + "message": "V\u0161eobecn\u00e9" }, "github": { "message": "GitHub" }, "goToSearchBox": { - "message": "Prejdite do vyhľadávanieho poľa" + "message": "Prejdite do vyh\u013ead\u00e1vanieho po\u013ea" }, "gpu": { "message": "GPU" }, "green": { - "message": "Zelená" + "message": "Zelen\u00e1" }, "hdThumbnail": { - "message": "HD náhlad" + "message": "HD n\u00e1hlad" }, "hdThumbnails": { - "message": "HD náhlady" + "message": "HD n\u00e1hlady" }, "header": { - "message": "Hlavička" + "message": "Hlavi\u010dka" }, "hidden": { - "message": "Skryté" + "message": "Skryt\u00e9" }, "hiddenOnVideoPage": { - "message": "Skyté na stránke videa" + "message": "Skyt\u00e9 na str\u00e1nke videa" }, "hideAnimatedThumbnails": { - "message": "Skryť animované náhľady" + "message": "Skry\u0165 animovan\u00e9 n\u00e1h\u013eady" }, "hideAnnotations": { - "message": "Skryť anotácie" + "message": "Skry\u0165 anot\u00e1cie" }, "hideCards": { - "message": "Skryť karty" + "message": "Skry\u0165 karty" }, "hideDetails": { - "message": "Skryť detaily" + "message": "Skry\u0165 detaily" }, "hideEndscreen": { - "message": "Skryť zobrazenie na konci videa" + "message": "Skry\u0165 zobrazenie na konci videa" }, "hideFeaturedContent": { - "message": "Skryť odporúčaný obsah" + "message": "Skry\u0165 odpor\u00fa\u010dan\u00fd obsah" }, "hideFooter": { - "message": "Hide pätičku" + "message": "Hide p\u00e4ti\u010dku" }, "hideGradientBottom": { "message": "Hide Gradient Bottom" }, "hidePlaylist": { - "message": "Skryť zoznam videí" + "message": "Skry\u0165 zoznam vide\u00ed" }, "hideRightButtons": { - "message": "Skryť tlčidlá v pravo" + "message": "Skry\u0165 tl\u010didl\u00e1 v pravo" }, "hideScrollForDetails": { - "message": "Skryť «Zarolujte pre detaily»" + "message": "Skry\u0165 \u00abZarolujte pre detaily\u00bb" }, "hideViewsCount": { - "message": "Skyť počet videní" + "message": "Sky\u0165 po\u010det viden\u00ed" }, "history": { - "message": "História" + "message": "Hist\u00f3ria" }, "home": { "message": "Domov" }, "hover": { - "message": "Vznášať sa" + "message": "Vzn\u00e1\u0161a\u0165 sa" }, "hoverOnVideoPage": { - "message": "Umiestnite kurzor na stránku videa" + "message": "Umiestnite kurzor na str\u00e1nku videa" }, "howLongAgoTheVideoWasUploaded": { - "message": "Kedy bolo toto video nahrané?" + "message": "Kedy bolo toto video nahran\u00e9?" }, "icons": { "message": "Ikony" @@ -387,10 +390,13 @@ "message": "Iba ikony" }, "importSettings": { - "message": "Importovať nastavenia" + "message": "Importova\u0165 nastavenia" + }, + "improveLogo": { + "message": "Improve logo" }, "improvedtubeIconInBrowser": { - "message": "ImprovedTube ikona v prehliadači" + "message": "ImprovedTube ikona v prehliada\u010di" }, "improvedtubeIconOnYoutube": { "message": "ImprovedTube ikona na YouTube" @@ -401,14 +407,11 @@ "improvedtubeVersion": { "message": "ImprovedTube verzia" }, - "improveLogo": { - "message": "Improve logo" - }, "increasePlaybackSpeed": { - "message": "Zvýšiť rýchlosť prehrávania" + "message": "Zv\u00fd\u0161i\u0165 r\u00fdchlos\u0165 prehr\u00e1vania" }, "increaseVolume": { - "message": "Zvýšiť hlasitosť" + "message": "Zv\u00fd\u0161i\u0165 hlasitos\u0165" }, "indigo": { "message": "Indigo" @@ -420,43 +423,43 @@ "message": "Jazyky" }, "legacyYoutube": { - "message": "Starý YouTube" + "message": "Star\u00fd YouTube" }, "light": { "message": "Svetlo" }, "lightBlue": { - "message": "Svetlo modrá" + "message": "Svetlo modr\u00e1" }, "lightGreen": { - "message": "Svetlo zelená" + "message": "Svetlo zelen\u00e1" }, "like": { - "message": "Páči sa mi to" + "message": "P\u00e1\u010di sa mi to" }, "likes": { - "message": "Páči sa mi to" + "message": "P\u00e1\u010di sa mi to" }, "lime": { - "message": "Limetková" + "message": "Limetkov\u00e1" }, "list": { "message": "Zoznam" }, "liveChat": { - "message": "Živí chat" + "message": "\u017div\u00ed chat" }, "liveChatType": { - "message": "Typ živého chatu" + "message": "Typ \u017eiv\u00e9ho chatu" }, "loudnessNormalization": { "message": "Vyrovnanie hlasitosti" }, "markWatchedVideos": { - "message": "Označiť ako videné" + "message": "Ozna\u010di\u0165 ako viden\u00e9" }, "mixer": { - "message": "Mixér" + "message": "Mix\u00e9r" }, "myColors": { "message": "Moje farby" @@ -465,52 +468,52 @@ "message": "Meno" }, "nativeMiniPlayer": { - "message": "Natívny mini prehrávač" + "message": "Nat\u00edvny mini prehr\u00e1va\u010d" }, "new": { - "message": "Nový" + "message": "Nov\u00fd" }, "nextVideo": { - "message": "Ďalšie video" + "message": "\u010eal\u0161ie video" }, "night": { "message": "Noc" }, "noActiveFeatures": { - "message": "Žiadne aktívne fukncie" - }, - "none": { - "message": "Žiadny" + "message": "\u017diadne akt\u00edvne fukncie" }, "noOpenVideoTabs": { - "message": "Žiadne otvorené karty s videami" + "message": "\u017diadne otvoren\u00e9 karty s videami" + }, + "none": { + "message": "\u017diadny" }, "normal": { - "message": "Normále" + "message": "Norm\u00e1le" }, "old": { - "message": "Starý" + "message": "Star\u00fd" }, "onAllVideos": { - "message": "Na všetkých videách" + "message": "Na v\u0161etk\u00fdch vide\u00e1ch" + }, + "onSubscribedChannels": { + "message": "Na odoberan\u00fdch kan\u00e1loch" }, "onlyActiveOnYoutube": { - "message": "Aktívne iba na YouTube" + "message": "Akt\u00edvne iba na YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Prehrávať iba jedno video" - }, - "onSubscribedChannels": { - "message": "Na odoberaných kanáloch" + "message": "Prehr\u00e1va\u0165 iba jedno video" }, "orange": { - "message": "Oranžová" + "message": "Oran\u017eov\u00e1" }, "os": { "message": "OS" }, "other": { - "message": "Ostatné" + "message": "Ostatn\u00e9" }, "permissions": { "message": "Povolenia" @@ -519,55 +522,55 @@ "message": "Obraz v obraze" }, "pink": { - "message": "Ružová" + "message": "Ru\u017eov\u00e1" }, "plain": { - "message": "Jednoduchý" + "message": "Jednoduch\u00fd" }, "platform": { "message": "Platforma" }, + "playPause": { + "message": "Prehra\u0165 / Pozastav\u0165" + }, "playbackSpeed": { - "message": "Rýchlosť prehrávania" + "message": "R\u00fdchlos\u0165 prehr\u00e1vania" }, "player": { - "message": "Prehrávač" + "message": "Prehr\u00e1va\u010d" }, "playerColor": { - "message": "Farba prehrávača" + "message": "Farba prehr\u00e1va\u010da" }, "playerSize": { - "message": "Veľkosť prehrávača" + "message": "Ve\u013ekos\u0165 prehr\u00e1va\u010da" }, "playlist": { - "message": "Zoznam videí" + "message": "Zoznam vide\u00ed" }, "playlists": { - "message": "Zoznamy videí" - }, - "playPause": { - "message": "Prehrať / Pozastavť" + "message": "Zoznamy vide\u00ed" }, "popupPlayer": { - "message": "Popup prehrávač" + "message": "Popup prehr\u00e1va\u010d" }, "position": { - "message": "Pozícia" + "message": "Poz\u00edcia" }, "pressAnyKeyOrScroll": { - "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky." + "message": "Stla\u010dte \u013eubovoln\u00fa kl\u00e1vesu alebo pou\u017eite kolisko my\u0161ky." }, "pressAnyKeyOrUseMouseWheel": { - "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky" + "message": "Stla\u010dte \u013eubovoln\u00fa kl\u00e1vesu alebo pou\u017eite kolisko my\u0161ky" }, "previousVideo": { - "message": "Predchýdzajúce video" + "message": "Predch\u00fddzaj\u00face video" }, "primaryColor": { - "message": "Primárna farba" + "message": "Prim\u00e1rna farba" }, "purple": { - "message": "Fialová" + "message": "Fialov\u00e1" }, "quality": { "message": "Kvalita" @@ -576,46 +579,46 @@ "message": "RAM" }, "rateUs": { - "message": "Ohodnoťte nás" + "message": "Ohodno\u0165te n\u00e1s" }, "red": { - "message": "Červená" + "message": "\u010cerven\u00e1" }, "redDislikeButton": { "message": "Show dislike button red colour" }, "relatedVideos": { - "message": "Súvisiace videá" + "message": "S\u00favisiace vide\u00e1" }, "removeRelatedSearchResults": { - "message": "Odstránte príbuzné výsledky vyhľadávania" + "message": "Odstr\u00e1nte pr\u00edbuzn\u00e9 v\u00fdsledky vyh\u013ead\u00e1vania" }, "repeat": { - "message": "Opakovať" + "message": "Opakova\u0165" }, "reset": { - "message": "Obnoviť" + "message": "Obnovi\u0165" }, "resetAllSettings": { - "message": "Obnoviť všetky nastavenia" + "message": "Obnovi\u0165 v\u0161etky nastavenia" }, "resetAllShortcuts": { - "message": "Obnoviť všetky skratky" + "message": "Obnovi\u0165 v\u0161etky skratky" }, "reverse": { - "message": "Obrátené" + "message": "Obr\u00e1ten\u00e9" }, "rotate": { - "message": "Otočiť" + "message": "Oto\u010di\u0165" }, "save": { - "message": "Uložiť" + "message": "Ulo\u017ei\u0165" }, "saveAs": { - "message": "Uložiť ako" + "message": "Ulo\u017ei\u0165 ako" }, "schedule": { - "message": "Naplánovať" + "message": "Napl\u00e1nova\u0165" }, "screen": { "message": "Obrazovka" @@ -624,46 +627,46 @@ "message": "Screenshot" }, "search": { - "message": "Vyhľadať" + "message": "Vyh\u013eada\u0165" }, "searchBarOnly": { - "message": "Iba vyhľadávacie pole" + "message": "Iba vyh\u013ead\u00e1vacie pole" }, "seekBackward10Seconds": { - "message": "Pretočiť spät o 10 sekúnd" + "message": "Preto\u010di\u0165 sp\u00e4t o 10 sek\u00fand" }, "seekForward10Seconds": { - "message": "Pretočiť dopredu o 10 sekúnd" + "message": "Preto\u010di\u0165 dopredu o 10 sek\u00fand" }, "settings": { "message": "Nastavenia" }, "settingsSuccessfullyImported": { - "message": "Nastavenia úspešne importované" + "message": "Nastavenia \u00faspe\u0161ne importovan\u00e9" }, "shortcuts": { "message": "Skratky" }, "showCardsOnMouseHover": { - "message": "Zobraziť karty pri prechode myšou" + "message": "Zobrazi\u0165 karty pri prechode my\u0161ou" }, "showChannelVideosCount": { - "message": "Zobraziť počet videí kanálu" + "message": "Zobrazi\u0165 po\u010det vide\u00ed kan\u00e1lu" }, "shuffle": { - "message": "Náhodne" + "message": "N\u00e1hodne" }, "sidebar": { - "message": "Bočný panel" + "message": "Bo\u010dn\u00fd panel" }, "spacebar": { "message": "Medzera" }, "squaredUserImages": { - "message": "Štvorcový obrázok užívateľa" + "message": "\u0160tvorcov\u00fd obr\u00e1zok u\u017e\u00edvate\u013ea" }, "static": { - "message": "Statické" + "message": "Statick\u00e9" }, "statsForNerds": { "message": "Show Stats for Nerds" @@ -675,10 +678,10 @@ "message": "Stop" }, "style": { - "message": "Štýl" + "message": "\u0160t\u00fdl" }, "styles": { - "message": "Štýly" + "message": "\u0160t\u00fdly" }, "subscriptions": { "message": "Odbery" @@ -687,46 +690,46 @@ "message": "Titulky" }, "sunset": { - "message": "Západ slnka" + "message": "Z\u00e1pad slnka" }, "sunsetToSunrise": { - "message": "Západ slnka do východu slnka" + "message": "Z\u00e1pad slnka do v\u00fdchodu slnka" }, "systemPeferenceDark": { - "message": "Predvolené: tmavé" + "message": "Predvolen\u00e9: tmav\u00e9" }, "systemPeferenceLight": { - "message": "Predvolené: svetlé" + "message": "Predvolen\u00e9: svetl\u00e9" }, "teal": { - "message": "Modrozelený" + "message": "Modrozelen\u00fd" }, "textColor": { "message": "Farba textu" }, "themes": { - "message": "Témy" + "message": "T\u00e9my" }, "thisWillRemoveAllCookies": { - "message": "Toto odstráni všetky cookies." + "message": "Toto odstr\u00e1ni v\u0161etky cookies." }, "thisWillRemoveAllYouTubeCookies": { - "message": "Toto odstráni všetky YouTube cookies" + "message": "Toto odstr\u00e1ni v\u0161etky YouTube cookies" }, "thisWillResetAllSettings": { - "message": "Toto obnový všetky nastavenia." + "message": "Toto obnov\u00fd v\u0161etky nastavenia." }, "thisWillResetAllShortcuts": { - "message": "Toto obnový všetky skratky" + "message": "Toto obnov\u00fd v\u0161etky skratky" }, "thumbnails": { - "message": "Náhlady" + "message": "N\u00e1hlady" }, "timeFrom": { - "message": "Čas od" + "message": "\u010cas od" }, "timeTo": { - "message": "Čas do" + "message": "\u010cas do" }, "todayAt": { "message": "Dnes o" @@ -738,28 +741,28 @@ "message": "Top chat" }, "trailerAutoplay": { - "message": "Automatické prehrávanie ukážky" + "message": "Automatick\u00e9 prehr\u00e1vanie uk\u00e1\u017eky" }, "translations": { "message": "Preklady" }, "transparentBackground": { - "message": "Priehľadné pozadie" + "message": "Prieh\u013eadn\u00e9 pozadie" }, "trending": { "message": "Trending" }, "tryToReloadThePage": { - "message": "Skúsťe obnoviť stránku" + "message": "Sk\u00fas\u0165e obnovi\u0165 str\u00e1nku" }, "type": { "message": "Typ" }, "upNextAutoplay": { - "message": "Automaticky prehrať ďaľšie v poradí" + "message": "Automaticky prehra\u0165 \u010fa\u013e\u0161ie v porad\u00ed" }, "use24HourFormat": { - "message": "Použť 24-hodinový formát" + "message": "Pou\u017e\u0165 24-hodinov\u00fd form\u00e1t" }, "version": { "message": "Verzia" @@ -768,22 +771,22 @@ "message": "Video" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Podrobnosti videa budú zobrazené pre získanie názvu kategórie" + "message": "Podrobnosti videa bud\u00fa zobrazen\u00e9 pre z\u00edskanie n\u00e1zvu kateg\u00f3rie" }, "videoFormats": { - "message": "Formáty videa" + "message": "Form\u00e1ty videa" }, "videos": { - "message": "Vedeá" + "message": "Vede\u00e1" }, "volume": { - "message": "Hlasitosť" + "message": "Hlasitos\u0165" }, "watchLater": { - "message": "Pozrieť neskor" + "message": "Pozrie\u0165 neskor" }, "watchTime": { - "message": "Čas sledovania" + "message": "\u010cas sledovania" }, "whenTabIsChanged": { "message": "Pri zmene karty" @@ -792,16 +795,16 @@ "message": "Biela" }, "yellow": { - "message": "Žltá" + "message": "\u017dlt\u00e1" }, "youtubeHeaderLeft": { - "message": "YouTube hlavička (vľavo)" + "message": "YouTube hlavi\u010dka (v\u013eavo)" }, "youtubeHeaderRight": { - "message": "YouTube hlavička (vpravo)" + "message": "YouTube hlavi\u010dka (vpravo)" }, "youtubeHomePage": { - "message": "Domáca stránka YouTube" + "message": "Dom\u00e1ca str\u00e1nka YouTube" }, "youtubeLanguage": { "message": "Jazyk YouTube" @@ -809,4 +812,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube obmedzuje kvalitu videa na 1080p pri kodeku h.264" } -} +} \ No newline at end of file diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 8b2f51dc1..8e0afc1bb 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -1,78 +1,78 @@ { + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "about": { - "message": "Hakkında" + "message": "Hakk\u0131nda" }, "accept": { "message": "Onayla" }, "activate": { - "message": "Aktifleştir" + "message": "Aktifle\u015ftir" }, "activateCaptions": { - "message": "Altyazıları Aktifleştir" + "message": "Altyaz\u0131lar\u0131 Aktifle\u015ftir" + }, + "activateFullscreen": { + "message": "Tam ekran\u0131 Aktifle\u015ftir" }, "activated": { - "message": "Aktifleştirilmiş" + "message": "Aktifle\u015ftirilmi\u015f" }, "activatedFeatures": { - "message": "Aktifleştirilmiş özellikler" - }, - "activateFullscreen": { - "message": "Tam ekranı Aktifleştir" + "message": "Aktifle\u015ftirilmi\u015f \u00f6zellikler" }, "activeFeatures": { - "message": "Etkin özellikler" + "message": "Etkin \u00f6zellikler" }, "addScrollToTop": { - "message": "«Yukarı kaydır» ekle" + "message": "\u00abYukar\u0131 kayd\u0131r\u00bb ekle" }, "ads": { "message": "Reklamlar" }, "all": { - "message": "Tümü" + "message": "T\u00fcm\u00fc" }, "allow": { - "message": "İzin ver" + "message": "\u0130zin ver" }, "allow60fps": { "message": "60fps'e izin ver" }, - "forceSDR": { - "message": "SDR Zorla" - }, "alwaysActive": { - "message": "Sürekli etkin" + "message": "S\u00fcrekli etkin" }, "alwaysShowProgressBar": { - "message": "İlerleme çubuğunu sürekli göster" + "message": "\u0130lerleme \u00e7ubu\u011funu s\u00fcrekli g\u00f6ster" }, "amber": { "message": "Amber" }, "analyzer": { - "message": "Analizör" + "message": "Analiz\u00f6r" }, "appearance": { - "message": "Görünüm" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" + "message": "G\u00f6r\u00fcn\u00fcm" }, "audio": { "message": "Ses" }, "audioFormats": { - "message": "Ses formatları" + "message": "Ses formatlar\u0131" }, "auto": { "message": "Otomatik" @@ -81,19 +81,19 @@ "message": "Otomatik tam ekran" }, "autopauseWhenSwitchingTabs": { - "message": "Sekme değiştirildiğinde duraklat" + "message": "Sekme de\u011fi\u015ftirildi\u011finde duraklat" }, "autoplay": { "message": "Otomatik oynat" }, "backupAndReset": { - "message": "Yedek & sıfırla" + "message": "Yedek & s\u0131f\u0131rla" }, "baseOnSystemColorScheme": { - "message": "Sistem renk şeması temelli" + "message": "Sistem renk \u015femas\u0131 temelli" }, "belowPlayer": { - "message": "Oynatıcının altında" + "message": "Oynat\u0131c\u0131n\u0131n alt\u0131nda" }, "black": { "message": "Kara" @@ -102,7 +102,7 @@ "message": "Kara Liste" }, "blockAll": { - "message": "Tümünü engelle" + "message": "T\u00fcm\u00fcn\u00fc engelle" }, "blue": { "message": "Mavi" @@ -111,16 +111,16 @@ "message": "Mavi gri" }, "bluelight": { - "message": "Mavi Işık" + "message": "Mavi I\u015f\u0131k" }, "brown": { "message": "Kahverengi" }, "browser": { - "message": "Tarayıcı" + "message": "Taray\u0131c\u0131" }, "browserVersion": { - "message": "Tarayıcı Sürümü" + "message": "Taray\u0131c\u0131 S\u00fcr\u00fcm\u00fc" }, "bubbles": { "message": "Baloncuklar" @@ -132,7 +132,7 @@ "message": "Butonlar" }, "cancel": { - "message": "İptal" + "message": "\u0130ptal" }, "categories": { "message": "Kategoriler" @@ -149,38 +149,38 @@ "codecH264": { "message": "Codec h.264" }, - "collapsed": { - "message": "Daraltılmış" - }, "collapseOfSubscriptionSections": { - "message": "Abonelik bölümlerini daralt" + "message": "Abonelik b\u00f6l\u00fcmlerini daralt" + }, + "collapsed": { + "message": "Daralt\u0131lm\u0131\u015f" }, "comments": { "message": "Yorumlar" }, "confirmationBeforeClosing": { - "message": "Kapatmadan önce uyar" + "message": "Kapatmadan \u00f6nce uyar" }, "cookies": { - "message": "Çerezler" + "message": "\u00c7erezler" }, "cores": { - "message": "Çekirdekler" + "message": "\u00c7ekirdekler" }, "cropChapterTitles": { - "message": "Bölüm başlıklarını kırp" + "message": "B\u00f6l\u00fcm ba\u015fl\u0131klar\u0131n\u0131 k\u0131rp" }, "customCss": { - "message": "Özel CSS" + "message": "\u00d6zel CSS" }, "customJs": { - "message": "Özel JS" + "message": "\u00d6zel JS" }, "customMiniPlayer": { - "message": "Özel Mini Oynatıcı" + "message": "\u00d6zel Mini Oynat\u0131c\u0131" }, "cyan": { - "message": "Camgöbeği" + "message": "Camg\u00f6be\u011fi" }, "dark": { "message": "Koyu" @@ -192,10 +192,10 @@ "message": "Tarih & zaman" }, "dawn": { - "message": "Şafak" + "message": "\u015eafak" }, "decreasePlaybackSpeed": { - "message": "Oynatma hızını azalt" + "message": "Oynatma h\u0131z\u0131n\u0131 azalt" }, "decreaseVolume": { "message": "Sesi azalt" @@ -207,22 +207,22 @@ "message": "Koyu mor" }, "defaultChannelTab": { - "message": "Varsayılan kanal sekmesi" + "message": "Varsay\u0131lan kanal sekmesi" }, "deleteYoutubeCookies": { - "message": "YouTube çerezleri sil" + "message": "YouTube \u00e7erezleri sil" }, "description": { - "message": "Açıklama" + "message": "A\u00e7\u0131klama" }, "desert": { - "message": "Çöl" + "message": "\u00c7\u00f6l" }, "details": { - "message": "Ayrıntılar" + "message": "Ayr\u0131nt\u0131lar" }, "developerOptions": { - "message": "Geliştirici seçenekleri" + "message": "Geli\u015ftirici se\u00e7enekleri" }, "device": { "message": "Cihaz" @@ -231,25 +231,25 @@ "message": "Karart" }, "disabled": { - "message": "Devredışı" + "message": "Devred\u0131\u015f\u0131" }, "dislike": { - "message": "Beğenmeme" - }, - "donate": { - "message": "Bağış" + "message": "Be\u011fenmeme" }, "doNotChange": { - "message": "Değiştirme" + "message": "De\u011fi\u015ftirme" + }, + "donate": { + "message": "Ba\u011f\u0131\u015f" }, "draggable": { - "message": "Sürüklenebilir" + "message": "S\u00fcr\u00fcklenebilir" }, "email": { "message": "Eposta" }, "empty": { - "message": "Boş" + "message": "Bo\u015f" }, "enabled": { "message": "Etkin" @@ -258,13 +258,13 @@ "message": "Etkin (Zorla)" }, "expanded": { - "message": "Genişletilmiş" + "message": "Geni\u015fletilmi\u015f" }, "exportSettings": { - "message": "Ayarları dışa aktar" + "message": "Ayarlar\u0131 d\u0131\u015fa aktar" }, "extension": { - "message": "Uzantı" + "message": "Uzant\u0131" }, "file": { "message": "Dosya" @@ -273,19 +273,22 @@ "message": "Filtreler" }, "fitToWindow": { - "message": "Pencereye sığdır" + "message": "Pencereye s\u0131\u011fd\u0131r" }, "flash": { - "message": "Flaş" + "message": "Fla\u015f" }, "font": { - "message": "Yazı Tipi" + "message": "Yaz\u0131 Tipi" }, "footer": { "message": "Footer" }, + "forceSDR": { + "message": "SDR Zorla" + }, "forcedPlaybackSpeed": { - "message": "Oynatma hızını uygulamaya zorla" + "message": "Oynatma h\u0131z\u0131n\u0131 uygulamaya zorla" }, "forcedTheaterMode": { "message": "Sinema modunu zorla" @@ -294,7 +297,7 @@ "message": "Sesi zorla" }, "foundABug": { - "message": "Hata mı buldun?" + "message": "Hata m\u0131 buldun?" }, "fullWindow": { "message": "Tam pencere" @@ -312,13 +315,13 @@ "message": "GPU" }, "green": { - "message": "Yeşil" + "message": "Ye\u015fil" }, "hdThumbnail": { - "message": "HD küçük resim" + "message": "HD k\u00fc\u00e7\u00fck resim" }, "hdThumbnails": { - "message": "HD küçük resimler" + "message": "HD k\u00fc\u00e7\u00fck resimler" }, "header": { "message": "Header" @@ -327,28 +330,28 @@ "message": "Gizli" }, "hiddenOnVideoPage": { - "message": "Video sayfasında gizli" + "message": "Video sayfas\u0131nda gizli" }, "hideAnimatedThumbnails": { - "message": "Hareketli küçük resimleri gizle" + "message": "Hareketli k\u00fc\u00e7\u00fck resimleri gizle" }, "hideAnnotations": { - "message": "Ek açıklamaları gizle" + "message": "Ek a\u00e7\u0131klamalar\u0131 gizle" }, "hideCards": { - "message": "Kartları gizle" + "message": "Kartlar\u0131 gizle" }, "hideDetails": { - "message": "Detayları gizle" + "message": "Detaylar\u0131 gizle" }, "hideEndscreen": { "message": "Ekran sonunu gizle" }, "hideFeaturedContent": { - "message": "Öne çıkan içeriği gizle" + "message": "\u00d6ne \u00e7\u0131kan i\u00e7eri\u011fi gizle" }, "hideFooter": { - "message": "Footer'ı gizle" + "message": "Footer'\u0131 gizle" }, "hideGradientBottom": { "message": "Hide Gradient Bottom" @@ -357,16 +360,16 @@ "message": "Oynatma Listesi'ni gizle" }, "hideRightButtons": { - "message": "Sağ butonları gizle" + "message": "Sa\u011f butonlar\u0131 gizle" }, "hideScrollForDetails": { - "message": "«Ayrıntılar için kaydır» gizle" + "message": "\u00abAyr\u0131nt\u0131lar i\u00e7in kayd\u0131r\u00bb gizle" }, "hideViewsCount": { - "message": "Görüntüleme sayısını gizle" + "message": "G\u00f6r\u00fcnt\u00fcleme say\u0131s\u0131n\u0131 gizle" }, "history": { - "message": "Geçmiş" + "message": "Ge\u00e7mi\u015f" }, "home": { "message": "Ana Sayfa" @@ -375,22 +378,25 @@ "message": "Hover" }, "hoverOnVideoPage": { - "message": "Videonun Üzerinde Hover" + "message": "Videonun \u00dczerinde Hover" }, "howLongAgoTheVideoWasUploaded": { - "message": "Video ne kadar süre önce yüklendi" + "message": "Video ne kadar s\u00fcre \u00f6nce y\u00fcklendi" }, "icons": { "message": "Simgeler" }, "iconsOnly": { - "message": "Yalnızca simgeler" + "message": "Yaln\u0131zca simgeler" }, "importSettings": { - "message": "Ayarları içe aktar" + "message": "Ayarlar\u0131 i\u00e7e aktar" + }, + "improveLogo": { + "message": "Logoyu geli\u015ftir" }, "improvedtubeIconInBrowser": { - "message": "Tarayıcıda ImprovedTube Simgesi" + "message": "Taray\u0131c\u0131da ImprovedTube Simgesi" }, "improvedtubeIconOnYoutube": { "message": "YouTube'da ImprovedTube Simgesi" @@ -399,22 +405,19 @@ "message": "ImprovedTube dili" }, "improvedtubeVersion": { - "message": "ImprovedTube sürümü" - }, - "improveLogo": { - "message": "Logoyu geliştir" + "message": "ImprovedTube s\u00fcr\u00fcm\u00fc" }, "increasePlaybackSpeed": { - "message": "Oynatma hızını artır" + "message": "Oynatma h\u0131z\u0131n\u0131 art\u0131r" }, "increaseVolume": { - "message": "Sesi artır" + "message": "Sesi art\u0131r" }, "indigo": { - "message": "Çivit" + "message": "\u00c7ivit" }, "items": { - "message": "Öğeler" + "message": "\u00d6\u011feler" }, "languages": { "message": "Diller" @@ -423,19 +426,19 @@ "message": "Eski YouTube" }, "light": { - "message": "Açık" + "message": "A\u00e7\u0131k" }, "lightBlue": { - "message": "Açık mavi" + "message": "A\u00e7\u0131k mavi" }, "lightGreen": { - "message": "Açık yeşil" + "message": "A\u00e7\u0131k ye\u015fil" }, "like": { - "message": "Beğen" + "message": "Be\u011fen" }, "likes": { - "message": "Beğeniler" + "message": "Be\u011feniler" }, "lime": { "message": "Lime" @@ -444,25 +447,25 @@ "message": "Liste" }, "liveChat": { - "message": "Canlı sohbet" + "message": "Canl\u0131 sohbet" }, "liveChatType": { - "message": "Canlı sohbet türü" + "message": "Canl\u0131 sohbet t\u00fcr\u00fc" }, "loudnessNormalization": { - "message": "Gürültü normalleştirme" + "message": "G\u00fcr\u00fclt\u00fc normalle\u015ftirme" }, "markWatchedVideos": { - "message": "İzlenen videoları işaretle" + "message": "\u0130zlenen videolar\u0131 i\u015faretle" }, "mixer": { - "message": "Karıştırıcı" + "message": "Kar\u0131\u015ft\u0131r\u0131c\u0131" }, "myColors": { "message": "Renklerim" }, "name": { - "message": "İsim" + "message": "\u0130sim" }, "nativeMiniPlayer": { "message": "Native mini player" @@ -477,14 +480,14 @@ "message": "Gece" }, "noActiveFeatures": { - "message": "Aktif özellik yok" + "message": "Aktif \u00f6zellik yok" + }, + "noOpenVideoTabs": { + "message": "A\u00e7\u0131k video sekmesi yok" }, "none": { "message": "Yok" }, - "noOpenVideoTabs": { - "message": "Açık video sekmesi yok" - }, "normal": { "message": "Normal" }, @@ -492,16 +495,16 @@ "message": "Eski" }, "onAllVideos": { - "message": "Tüm videolarda" + "message": "T\u00fcm videolarda" + }, + "onSubscribedChannels": { + "message": "Abone olunan kanallarda" }, "onlyActiveOnYoutube": { - "message": "Yalnızca YouTube'da etkin" + "message": "Yaln\u0131zca YouTube'da etkin" }, "onlyOnePlayerInstancePlaying": { - "message": "Sadece bir oynatıcı örneği" - }, - "onSubscribedChannels": { - "message": "Abone olunan kanallarda" + "message": "Sadece bir oynat\u0131c\u0131 \u00f6rne\u011fi" }, "orange": { "message": "Turuncu" @@ -510,13 +513,13 @@ "message": "OS" }, "other": { - "message": "Diğer" + "message": "Di\u011fer" }, "permissions": { - "message": "İzinler" + "message": "\u0130zinler" }, "pictureInPicture": { - "message": "Resim içinde resim" + "message": "Resim i\u00e7inde resim" }, "pink": { "message": "Pembe" @@ -527,17 +530,20 @@ "platform": { "message": "Platform" }, + "playPause": { + "message": "Oynat / Duraklat" + }, "playbackSpeed": { - "message": "Oynatma hızı" + "message": "Oynatma h\u0131z\u0131" }, "player": { - "message": "Oynatıcı" + "message": "Oynat\u0131c\u0131" }, "playerColor": { - "message": "Oynatıcı rengi" + "message": "Oynat\u0131c\u0131 rengi" }, "playerSize": { - "message": "Oynatıcı boyutu" + "message": "Oynat\u0131c\u0131 boyutu" }, "playlist": { "message": "Oynatma Listesi" @@ -545,23 +551,20 @@ "playlists": { "message": "Oynatma Listeleri" }, - "playPause": { - "message": "Oynat / Duraklat" - }, "popupPlayer": { - "message": "Popup oynatıcı" + "message": "Popup oynat\u0131c\u0131" }, "position": { "message": "Konum" }, "pressAnyKeyOrScroll": { - "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan." + "message": "Herhangi bir tu\u015fa bas veya farenin tekerle\u011fini kullan." }, "pressAnyKeyOrUseMouseWheel": { - "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan" + "message": "Herhangi bir tu\u015fa bas veya farenin tekerle\u011fini kullan" }, "previousVideo": { - "message": "Önceki video" + "message": "\u00d6nceki video" }, "primaryColor": { "message": "Birincil renk" @@ -579,40 +582,40 @@ "message": "Bizi oyla" }, "red": { - "message": "Kırmızı" + "message": "K\u0131rm\u0131z\u0131" }, "redDislikeButton": { - "message": "Beğenmeme düğmesinini kırmızı renkte göster" + "message": "Be\u011fenmeme d\u00fc\u011fmesinini k\u0131rm\u0131z\u0131 renkte g\u00f6ster" }, "relatedVideos": { - "message": "İlgili videolar" + "message": "\u0130lgili videolar" }, "removeRelatedSearchResults": { - "message": "İlgili arama sonuçlarını kaldır" + "message": "\u0130lgili arama sonu\u00e7lar\u0131n\u0131 kald\u0131r" }, "repeat": { "message": "Tekrarla" }, "reset": { - "message": "Sıfırla" + "message": "S\u0131f\u0131rla" }, "resetAllSettings": { - "message": "Tüm ayarları sıfırla" + "message": "T\u00fcm ayarlar\u0131 s\u0131f\u0131rla" }, "resetAllShortcuts": { - "message": "Tüm kısayolları sıfırla" + "message": "T\u00fcm k\u0131sayollar\u0131 s\u0131f\u0131rla" }, "reverse": { "message": "Ters" }, "rotate": { - "message": "Döndür" + "message": "D\u00f6nd\u00fcr" }, "save": { "message": "Kaydet" }, "saveAs": { - "message": "Farklı kaydet" + "message": "Farkl\u0131 kaydet" }, "schedule": { "message": "Takvim" @@ -621,13 +624,13 @@ "message": "Ekran" }, "screenshot": { - "message": "Ekran görüntüsü" + "message": "Ekran g\u00f6r\u00fcnt\u00fcs\u00fc" }, "search": { "message": "Ara" }, "searchBarOnly": { - "message": "Yalnızca arama çubuğu" + "message": "Yaln\u0131zca arama \u00e7ubu\u011fu" }, "seekBackward10Seconds": { "message": "10 saniye geriye git" @@ -639,28 +642,28 @@ "message": "Ayarlar" }, "settingsSuccessfullyImported": { - "message": "Ayarlar başarıyla içe aktarıldı" + "message": "Ayarlar ba\u015far\u0131yla i\u00e7e aktar\u0131ld\u0131" }, "shortcuts": { - "message": "Kısayollar" + "message": "K\u0131sayollar" }, "showCardsOnMouseHover": { - "message": "Fareyle üzerine gelindiğinde kartları göster" + "message": "Fareyle \u00fczerine gelindi\u011finde kartlar\u0131 g\u00f6ster" }, "showChannelVideosCount": { - "message": "Kanalın video sayısını göster" + "message": "Kanal\u0131n video say\u0131s\u0131n\u0131 g\u00f6ster" }, "shuffle": { - "message": "Karıştır" + "message": "Kar\u0131\u015ft\u0131r" }, "sidebar": { - "message": "Kenar çubuğu" + "message": "Kenar \u00e7ubu\u011fu" }, "spacebar": { "message": "Spacebar" }, "squaredUserImages": { - "message": "Kare kullanıcı görüntüleri" + "message": "Kare kullan\u0131c\u0131 g\u00f6r\u00fcnt\u00fcleri" }, "static": { "message": "Statik" @@ -669,7 +672,7 @@ "message": "Show Stats for Nerds" }, "step": { - "message": "Adım" + "message": "Ad\u0131m" }, "stop": { "message": "Durdur" @@ -684,64 +687,64 @@ "message": "Aboneler" }, "subtitles": { - "message": "Altyazılar" + "message": "Altyaz\u0131lar" }, "sunset": { - "message": "Gün batımı" + "message": "G\u00fcn bat\u0131m\u0131" }, "sunsetToSunrise": { - "message": "Gün batımından gün doğumuna" + "message": "G\u00fcn bat\u0131m\u0131ndan g\u00fcn do\u011fumuna" }, "systemPeferenceDark": { "message": "Sistem tercihi: koyu" }, "systemPeferenceLight": { - "message": "Sistem tercihi: açık" + "message": "Sistem tercihi: a\u00e7\u0131k" }, "teal": { "message": "Teal" }, "textColor": { - "message": "Yazı rengi" + "message": "Yaz\u0131 rengi" }, "themes": { "message": "Temalar" }, "thisWillRemoveAllCookies": { - "message": "Bu, tüm çerezleri kaldıracaktır." + "message": "Bu, t\u00fcm \u00e7erezleri kald\u0131racakt\u0131r." }, "thisWillRemoveAllYouTubeCookies": { - "message": "Bu, tüm YouTube çerezlerini kaldıracaktır." + "message": "Bu, t\u00fcm YouTube \u00e7erezlerini kald\u0131racakt\u0131r." }, "thisWillResetAllSettings": { - "message": "Bu, tüm ayarları sıfırlayacaktır." + "message": "Bu, t\u00fcm ayarlar\u0131 s\u0131f\u0131rlayacakt\u0131r." }, "thisWillResetAllShortcuts": { - "message": "Bu, tüm kısayolları sıfırlayacaktır." + "message": "Bu, t\u00fcm k\u0131sayollar\u0131 s\u0131f\u0131rlayacakt\u0131r." }, "thumbnails": { - "message": "Küçük resimler" + "message": "K\u00fc\u00e7\u00fck resimler" }, "timeFrom": { - "message": "Şu zamandan" + "message": "\u015eu zamandan" }, "timeTo": { - "message": "Şu zamana" + "message": "\u015eu zamana" }, "todayAt": { - "message": "Bugün" + "message": "Bug\u00fcn" }, "toggleCards": { - "message": "Kartları aç/kapat" + "message": "Kartlar\u0131 a\u00e7/kapat" }, "topChat": { - "message": "En İyi Sohbet Mesajları" + "message": "En \u0130yi Sohbet Mesajlar\u0131" }, "trailerAutoplay": { - "message": "Fragman otomatik oynatımı" + "message": "Fragman otomatik oynat\u0131m\u0131" }, "translations": { - "message": "Çeviriler" + "message": "\u00c7eviriler" }, "transparentBackground": { "message": "Saydam arka plan" @@ -750,7 +753,7 @@ "message": "Trendler" }, "tryToReloadThePage": { - "message": "Sayfayı yeniden yüklemeyi deneyin" + "message": "Sayfay\u0131 yeniden y\u00fcklemeyi deneyin" }, "type": { "message": "Tip" @@ -759,19 +762,19 @@ "message": "Sonraki otomatik oynatma" }, "use24HourFormat": { - "message": "24 saat biçimini kullan" + "message": "24 saat bi\u00e7imini kullan" }, "version": { - "message": "Sürüm" + "message": "S\u00fcr\u00fcm" }, "video": { "message": "Video" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Kategorinin adını almak için video açıklaması genişletilecek" + "message": "Kategorinin ad\u0131n\u0131 almak i\u00e7in video a\u00e7\u0131klamas\u0131 geni\u015fletilecek" }, "videoFormats": { - "message": "Video formatları" + "message": "Video formatlar\u0131" }, "videos": { "message": "Videolar" @@ -783,30 +786,30 @@ "message": "Sonra izle" }, "watchTime": { - "message": "İzleme zamanı" + "message": "\u0130zleme zaman\u0131" }, "whenTabIsChanged": { - "message": "Sekme değiştirildiğinde" + "message": "Sekme de\u011fi\u015ftirildi\u011finde" }, "white": { "message": "Beyaz" }, "yellow": { - "message": "Sarı" + "message": "Sar\u0131" }, "youtubeHeaderLeft": { "message": "YouTube Header (sol)" }, "youtubeHeaderRight": { - "message": "YouTube Header (sağ)" + "message": "YouTube Header (sa\u011f)" }, "youtubeHomePage": { - "message": "YouTube ana sayfası" + "message": "YouTube ana sayfas\u0131" }, "youtubeLanguage": { "message": "YouTube dili" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube, h.264 codec bileşeni için video kalitesini 1080p ile sınırlar" + "message": "YouTube, h.264 codec bile\u015feni i\u00e7in video kalitesini 1080p ile s\u0131n\u0131rlar" } -} +} \ No newline at end of file diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 9c088d395..d15b19b26 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -1,830 +1,833 @@ -{ - "about": { - "message": "关于" - }, - "accept": { - "message": "接受" - }, - "activate": { - "message": "启用" - }, - "activateCaptions": { - "message": "启用字幕" - }, - "activated": { - "message": "启用" - }, - "activatedFeatures": { - "message": "已启用功能" - }, - "activateFullscreen": { - "message": "启用全屏" - }, - "activeFeatures": { - "message": "启用功能" - }, - "addScrollToTop": { - "message": "增加【返回顶部】按钮" - }, - "ads": { - "message": "广告" - }, - "all": { - "message": "所有" - }, - "allow": { - "message": "允许" - }, - "allow60fps": { - "message": "允许60FPS" - }, - "forceSDR": { - "message": "Force SDR" - }, - "alwaysActive": { - "message": "始终启用" - }, - "alwaysShowProgressBar": { - "message": "始终显示进度条" - }, - "amber": { - "message": "琥珀色" - }, - "analyzer": { - "message": "分析仪" - }, - "appearance": { - "message": "外观" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "音频" - }, - "audioFormats": { - "message": "音频格式" - }, - "auto": { - "message": "自动" - }, - "autoFullscreen": { - "message": "自动全屏" - }, - "autopauseWhenSwitchingTabs": { - "message": "切换标签时暂停播放" - }, - "autoplay": { - "message": "自动播放" - }, - "backupAndReset": { - "message": "备份与恢复" - }, - "baseOnSystemColorScheme": { - "message": "使用系统配色" - }, - "belowPlayer": { - "message": "在播放器下方" - }, - "black": { - "message": "纯黑" - }, - "blacklist": { - "message": "黑名单" - }, - "blockAll": { - "message": "拦截所有" - }, - "blue": { - "message": "蓝色" - }, - "blueGray": { - "message": "蓝灰色" - }, - "bluelight": { - "message": "色彩柔和度" - }, - "brown": { - "message": "棕色" - }, - "browser": { - "message": "浏览器" - }, - "browserVersion": { - "message": "浏览器版本" - }, - "bubbles": { - "message": "网格" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "按钮" - }, - "cancel": { - "message": "取消" - }, - "categories": { - "message": "分类" - }, - "channel": { - "message": "频道" - }, - "channels": { - "message": "频道" - }, - "clipboard": { - "message": "粘贴板" - }, - "codecH264": { - "message": "采用 h.264 编码" - }, - "collapsed": { - "message": "收起" - }, - "collapseOfSubscriptionSections": { - "message": "订阅区域显示展开/收起按钮" - }, - "comments": { - "message": "评论" - }, - "confirmationBeforeClosing": { - "message": "页面关闭确认" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "核心" - }, - "cropChapterTitles": { - "message": "裁剪章节标题" - }, - "customCss": { - "message": "自定义CSS" - }, - "customJs": { - "message": "自定义JS" - }, - "customMiniPlayer": { - "message": "自定义迷你播放器" - }, - "openPopupPlayer": { - "message": "在新窗口打开视频/播放列表" - }, - "cyan": { - "message": "青色" - }, - "dark": { - "message": "黑暗" - }, - "darkTheme": { - "message": "夜间模式" - }, - "dateAndTime": { - "message": "时间与日期" - }, - "dawn": { - "message": "黎明" - }, - "decreasePlaybackSpeed": { - "message": "视频减速" - }, - "decreaseVolume": { - "message": "降低音量" - }, - "deepOrange": { - "message": "深橙色" - }, - "deepPurple": { - "message": "深紫色" - }, - "defaultChannelTab": { - "message": "默认频道页" - }, - "deleteYoutubeCookies": { - "message": "清空 YouTube cookies" - }, - "description": { - "message": "视频描述" - }, - "desert": { - "message": "沙漠" - }, - "details": { - "message": "细节信息" - }, - "developerOptions": { - "message": "开发者选项" - }, - "device": { - "message": "设备" - }, - "dim": { - "message": "遮罩层厚度" - }, - "disabled": { - "message": "停用" - }, - "dislike": { - "message": "踩一下" - }, - "donate": { - "message": "支持" - }, - "doNotChange": { - "message": "不做改变" - }, - "draggable": { - "message": "可拖动" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "暂无" - }, - "enabled": { - "message": "启用" - }, - "enabledForced": { - "message": "强制启用" - }, - "expanded": { - "message": "展开" - }, - "exportSettings": { - "message": "导出设置" - }, - "extension": { - "message": "扩展" - }, - "file": { - "message": "文件" - }, - "filters": { - "message": "滤镜" - }, - "fitToWindow": { - "message": "窗口自适应" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "字体" - }, - "footer": { - "message": "底部栏" - }, - "forcedPlaybackSpeed": { - "message": "强制设置播放速度" - }, - "forcedTheaterMode": { - "message": "强制设置剧场模式" - }, - "forcedVolume": { - "message": "强制修改音量" - }, - "foundABug": { - "message": "遇到了Bug?" - }, - "fullWindow": { - "message": "全屏" - }, - "general": { - "message": "一般设置" - }, - "geoPreference": { - "message": "Geo Preference" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "转到搜索框" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "绿色" - }, - "hdThumbnail": { - "message": "高清缩略图" - }, - "hdThumbnails": { - "message": "高清缩略图" - }, - "header": { - "message": "顶部栏" - }, - "hidden": { - "message": "隐藏" - }, - "hiddenOnVideoPage": { - "message": "在视频播放页面时隐藏" - }, - "hideAnimatedThumbnails": { - "message": "隐藏动态缩略图" - }, - "hideAnnotations": { - "message": "隐藏预览图" - }, - "hideCards": { - "message": "隐藏信息卡片" - }, - "hideControls": { - "message": "隐藏播放控制器" - }, - "hideDetails": { - "message": "隐藏详细信息" - }, - "hideEndscreen": { - "message": "隐藏结束画面" - }, - "hideFeaturedContent": { - "message": "隐藏精选频道" - }, - "hideFooter": { - "message": "隐藏底部栏" - }, - "hideGradientBottom": { - "message": "隐藏底部渐变层" - }, - "hidePlaylist": { - "message": "隐藏播放列表" - }, - "hideRightButtons": { - "message": "隐藏右侧按钮" - }, - "hideScrollForDetails": { - "message": "隐藏 «滚动至详细信息»" - }, - "hideThumbnailOverlay": { - "message": "隐藏缩略图上的按钮" - }, - "hideViewsCount": { - "message": "隐藏观看量" - }, - "history": { - "message": "历史记录" - }, - "home": { - "message": "首页" - }, - "hover": { - "message": "悬浮" - }, - "hoverOnVideoPage": { - "message": "在视频播放页面时悬浮显示" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "投稿于多久之前" - }, - "icons": { - "message": "图标" - }, - "iconsOnly": { - "message": "仅显示图标" - }, - "importSettings": { - "message": "导入设置" - }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube 扩展程序图标" - }, - "improvedtubeIconOnYoutube": { - "message": "在 YouTube 显示 ImprovedTube 图标" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube 语言" - }, - "improvedtubeVersion": { - "message": "ImprovedTube 版本" - }, - "improveLogo": { - "message": "优化图标" - }, - "increasePlaybackSpeed": { - "message": "视频加速" - }, - "increaseVolume": { - "message": "增加音量" - }, - "indigo": { - "message": "靛青色" - }, - "items": { - "message": "项目" - }, - "languages": { - "message": "语言" - }, - "legacyYoutube": { - "message": "旧版 YouTube" - }, - "light": { - "message": "明亮" - }, - "lightBlue": { - "message": "浅蓝色" - }, - "lightGreen": { - "message": "浅绿色" - }, - "like": { - "message": "顶一下" - }, - "likes": { - "message": "顶/踩总数" - }, - "lime": { - "message": "石灰色" - }, - "list": { - "message": "列表" - }, - "liveChat": { - "message": "实时聊天窗" - }, - "liveChatType": { - "message": "实时聊天窗类型" - }, - "loudnessNormalization": { - "message": "音量标准化" - }, - "markWatchedVideos": { - "message": "标记为已观看" - }, - "mixer": { - "message": "混音器" - }, - "myColors": { - "message": "自定义颜色" - }, - "name": { - "message": "名字" - }, - "nativeMiniPlayer": { - "message": "原版迷你播放器" - }, - "new": { - "message": "新的" - }, - "nextVideo": { - "message": "上一个视频" - }, - "night": { - "message": "夜色" - }, - "noActiveFeatures": { - "message": "没有已启用的功能" - }, - "none": { - "message": "无" - }, - "noOpenVideoTabs": { - "message": "没有已打开的视频标签" - }, - "normal": { - "message": "正常" - }, - "old": { - "message": "旧版" - }, - "onAllVideos": { - "message": "在所有视频" - }, - "onlyActiveOnYoutube": { - "message": "仅在 YouTube 上启用" - }, - "onlyOnePlayerInstancePlaying": { - "message": "同时仅播放一个" - }, - "onSubscribedChannels": { - "message": "在订阅频道" - }, - "orange": { - "message": "橙色" - }, - "os": { - "message": "操作系统" - }, - "other": { - "message": "其他" - }, - "permissions": { - "message": "许可" - }, - "pictureInPicture": { - "message": "画中画" - }, - "pink": { - "message": "粉色" - }, - "plain": { - "message": "野外" - }, - "platform": { - "message": "平台" - }, - "playbackSpeed": { - "message": "播放速度" - }, - "player": { - "message": "播放器" - }, - "playerColor": { - "message": "播放器颜色" - }, - "playerSize": { - "message": "播放器大小" - }, - "playlist": { - "message": "播放列表" - }, - "playlists": { - "message": "稍后观看" - }, - "playPause": { - "message": "播放/暂停" - }, - "popupPlayer": { - "message": "弹出播放器" - }, - "position": { - "message": "位置" - }, - "pressAnyKeyOrScroll": { - "message": "按下任意键或滚动鼠标滚轴." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "按下任意键或鼠标滚轴." - }, - "previousVideo": { - "message": "下一个视频" - }, - "primaryColor": { - "message": "主色调" - }, - "purple": { - "message": "紫色" - }, - "quality": { - "message": "画质" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "给我们评价" - }, - "red": { - "message": "红色" - }, - "redDislikeButton": { - "message": "将【踩一下】设置为红色" - }, - "relatedVideos": { - "message": "相关视频" - }, - "removeRelatedSearchResults": { - "message": "隐藏搜索相关结果" - }, - "repeat": { - "message": "循环" - }, - "reset": { - "message": "重置" - }, - "resetAllSettings": { - "message": "重置所有设置" - }, - "resetAllShortcuts": { - "message": "重置所有快捷键" - }, - "reverse": { - "message": "逆序" - }, - "rotate": { - "message": "旋转" - }, - "save": { - "message": "保存" - }, - "saveAs": { - "message": "另存为" - }, - "schedule": { - "message": "定时开/关" - }, - "screen": { - "message": "屏幕" - }, - "screenshot": { - "message": "截图" - }, - "search": { - "message": "搜索" - }, - "searchBarOnly": { - "message": "仅搜索栏" - }, - "seekBackward10Seconds": { - "message": "倒退10秒" - }, - "seekForward10Seconds": { - "message": "快进10秒" - }, - "settings": { - "message": "ImprovedTube 设置" - }, - "settingsSuccessfullyImported": { - "message": "设置导入成功" - }, - "shortcuts": { - "message": "快捷键" - }, - "showCardsOnMouseHover": { - "message": "鼠标悬浮时显示信息卡片" - }, - "showChannelVideosCount": { - "message": "显示频道内视频数" - }, - "shuffle": { - "message": "随机" - }, - "sidebar": { - "message": "侧边栏" - }, - "spacebar": { - "message": "空格" - }, - "squaredUserImages": { - "message": "方形用户头像" - }, - "static": { - "message": "静态" - }, - "statsForNerds": { - "message": "显示专业信息" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "停止" - }, - "style": { - "message": "样式" - }, - "styles": { - "message": "样式" - }, - "subscriptions": { - "message": "订阅内容" - }, - "subtitles": { - "message": "副标题" - }, - "sunset": { - "message": "晚霞" - }, - "sunsetToSunrise": { - "message": "日落到日出" - }, - "systemPeferenceDark": { - "message": "系统偏好: 深色" - }, - "systemPeferenceLight": { - "message": "系统偏好: 浅色" - }, - "teal": { - "message": "蓝绿色" - }, - "textColor": { - "message": "文字颜色" - }, - "themes": { - "message": "主题" - }, - "thisWillRemoveAllCookies": { - "message": "将清空所有 cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "将清空所有 YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "将重置所有设置." - }, - "thisWillResetAllShortcuts": { - "message": "将会重置所有快捷键" - }, - "thumbnails": { - "message": "缩略图" - }, - "timeFrom": { - "message": "开始时间" - }, - "timeTo": { - "message": "结束时间" - }, - "todayAt": { - "message": "截止今天" - }, - "toggleCards": { - "message": "切换卡片" - }, - "topChat": { - "message": "热门聊天" - }, - "trailerAutoplay": { - "message": "自动播放预告片" - }, - "translations": { - "message": "翻译" - }, - "transparentBackground": { - "message": "透明背景" - }, - "trending": { - "message": "时下流行" - }, - "tryToReloadThePage": { - "message": "尝试刷新页面" - }, - "turnOff": { - "message": "关闭时间" - }, - "turnOn": { - "message": "开启时间" - }, - "type": { - "message": "类型" - }, - "upNextAutoplay": { - "message": "自动播放下一视频" - }, - "use24HourFormat": { - "message": "使用24小时制" - }, - "version": { - "message": "版本" - }, - "video": { - "message": "视频" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "扩展视频简介到分类" - }, - "videoFormats": { - "message": "视频格式" - }, - "videos": { - "message": "视频" - }, - "volume": { - "message": "音量" - }, - "watchLater": { - "message": "稍后观看" - }, - "watchTime": { - "message": "观看时间" - }, - "whenTabIsChanged": { - "message": "切换标签时" - }, - "white": { - "message": "白色" - }, - "yellow": { - "message": "黄色" - }, - "youtubeHeaderLeft": { - "message": "Youtube标题(左)" - }, - "youtubeHeaderRight": { - "message": "Youtube标题(右)" - }, - "youtubeHomePage": { - "message": "YouTube默认主页" - }, - "youtubeLanguage": { - "message": "YouTube 语言" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "采用 H.264 编解码时,YouTube 会将视频画质设为 1080p" - } -} +{ + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "about": { + "message": "\u5173\u4e8e" + }, + "accept": { + "message": "\u63a5\u53d7" + }, + "activate": { + "message": "\u542f\u7528" + }, + "activateCaptions": { + "message": "\u542f\u7528\u5b57\u5e55" + }, + "activateFullscreen": { + "message": "\u542f\u7528\u5168\u5c4f" + }, + "activated": { + "message": "\u542f\u7528" + }, + "activatedFeatures": { + "message": "\u5df2\u542f\u7528\u529f\u80fd" + }, + "activeFeatures": { + "message": "\u542f\u7528\u529f\u80fd" + }, + "addScrollToTop": { + "message": "\u589e\u52a0\u3010\u8fd4\u56de\u9876\u90e8\u3011\u6309\u94ae" + }, + "ads": { + "message": "\u5e7f\u544a" + }, + "all": { + "message": "\u6240\u6709" + }, + "allow": { + "message": "\u5141\u8bb8" + }, + "allow60fps": { + "message": "\u5141\u8bb860FPS" + }, + "alwaysActive": { + "message": "\u59cb\u7ec8\u542f\u7528" + }, + "alwaysShowProgressBar": { + "message": "\u59cb\u7ec8\u663e\u793a\u8fdb\u5ea6\u6761" + }, + "amber": { + "message": "\u7425\u73c0\u8272" + }, + "analyzer": { + "message": "\u5206\u6790\u4eea" + }, + "appearance": { + "message": "\u5916\u89c2" + }, + "audio": { + "message": "\u97f3\u9891" + }, + "audioFormats": { + "message": "\u97f3\u9891\u683c\u5f0f" + }, + "auto": { + "message": "\u81ea\u52a8" + }, + "autoFullscreen": { + "message": "\u81ea\u52a8\u5168\u5c4f" + }, + "autopauseWhenSwitchingTabs": { + "message": "\u5207\u6362\u6807\u7b7e\u65f6\u6682\u505c\u64ad\u653e" + }, + "autoplay": { + "message": "\u81ea\u52a8\u64ad\u653e" + }, + "backupAndReset": { + "message": "\u5907\u4efd\u4e0e\u6062\u590d" + }, + "baseOnSystemColorScheme": { + "message": "\u4f7f\u7528\u7cfb\u7edf\u914d\u8272" + }, + "belowPlayer": { + "message": "\u5728\u64ad\u653e\u5668\u4e0b\u65b9" + }, + "black": { + "message": "\u7eaf\u9ed1" + }, + "blacklist": { + "message": "\u9ed1\u540d\u5355" + }, + "blockAll": { + "message": "\u62e6\u622a\u6240\u6709" + }, + "blue": { + "message": "\u84dd\u8272" + }, + "blueGray": { + "message": "\u84dd\u7070\u8272" + }, + "bluelight": { + "message": "\u8272\u5f69\u67d4\u548c\u5ea6" + }, + "brown": { + "message": "\u68d5\u8272" + }, + "browser": { + "message": "\u6d4f\u89c8\u5668" + }, + "browserVersion": { + "message": "\u6d4f\u89c8\u5668\u7248\u672c" + }, + "bubbles": { + "message": "\u7f51\u683c" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "\u6309\u94ae" + }, + "cancel": { + "message": "\u53d6\u6d88" + }, + "categories": { + "message": "\u5206\u7c7b" + }, + "channel": { + "message": "\u9891\u9053" + }, + "channels": { + "message": "\u9891\u9053" + }, + "clipboard": { + "message": "\u7c98\u8d34\u677f" + }, + "codecH264": { + "message": "\u91c7\u7528 h.264 \u7f16\u7801" + }, + "collapseOfSubscriptionSections": { + "message": "\u8ba2\u9605\u533a\u57df\u663e\u793a\u5c55\u5f00/\u6536\u8d77\u6309\u94ae" + }, + "collapsed": { + "message": "\u6536\u8d77" + }, + "comments": { + "message": "\u8bc4\u8bba" + }, + "confirmationBeforeClosing": { + "message": "\u9875\u9762\u5173\u95ed\u786e\u8ba4" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "\u6838\u5fc3" + }, + "cropChapterTitles": { + "message": "\u88c1\u526a\u7ae0\u8282\u6807\u9898" + }, + "customCss": { + "message": "\u81ea\u5b9a\u4e49CSS" + }, + "customJs": { + "message": "\u81ea\u5b9a\u4e49JS" + }, + "customMiniPlayer": { + "message": "\u81ea\u5b9a\u4e49\u8ff7\u4f60\u64ad\u653e\u5668" + }, + "cyan": { + "message": "\u9752\u8272" + }, + "dark": { + "message": "\u9ed1\u6697" + }, + "darkTheme": { + "message": "\u591c\u95f4\u6a21\u5f0f" + }, + "dateAndTime": { + "message": "\u65f6\u95f4\u4e0e\u65e5\u671f" + }, + "dawn": { + "message": "\u9ece\u660e" + }, + "decreasePlaybackSpeed": { + "message": "\u89c6\u9891\u51cf\u901f" + }, + "decreaseVolume": { + "message": "\u964d\u4f4e\u97f3\u91cf" + }, + "deepOrange": { + "message": "\u6df1\u6a59\u8272" + }, + "deepPurple": { + "message": "\u6df1\u7d2b\u8272" + }, + "defaultChannelTab": { + "message": "\u9ed8\u8ba4\u9891\u9053\u9875" + }, + "deleteYoutubeCookies": { + "message": "\u6e05\u7a7a YouTube cookies" + }, + "description": { + "message": "\u89c6\u9891\u63cf\u8ff0" + }, + "desert": { + "message": "\u6c99\u6f20" + }, + "details": { + "message": "\u7ec6\u8282\u4fe1\u606f" + }, + "developerOptions": { + "message": "\u5f00\u53d1\u8005\u9009\u9879" + }, + "device": { + "message": "\u8bbe\u5907" + }, + "dim": { + "message": "\u906e\u7f69\u5c42\u539a\u5ea6" + }, + "disabled": { + "message": "\u505c\u7528" + }, + "dislike": { + "message": "\u8e29\u4e00\u4e0b" + }, + "doNotChange": { + "message": "\u4e0d\u505a\u6539\u53d8" + }, + "donate": { + "message": "\u652f\u6301" + }, + "draggable": { + "message": "\u53ef\u62d6\u52a8" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "\u6682\u65e0" + }, + "enabled": { + "message": "\u542f\u7528" + }, + "enabledForced": { + "message": "\u5f3a\u5236\u542f\u7528" + }, + "expanded": { + "message": "\u5c55\u5f00" + }, + "exportSettings": { + "message": "\u5bfc\u51fa\u8bbe\u7f6e" + }, + "extension": { + "message": "\u6269\u5c55" + }, + "file": { + "message": "\u6587\u4ef6" + }, + "filters": { + "message": "\u6ee4\u955c" + }, + "fitToWindow": { + "message": "\u7a97\u53e3\u81ea\u9002\u5e94" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "\u5b57\u4f53" + }, + "footer": { + "message": "\u5e95\u90e8\u680f" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlaybackSpeed": { + "message": "\u5f3a\u5236\u8bbe\u7f6e\u64ad\u653e\u901f\u5ea6" + }, + "forcedTheaterMode": { + "message": "\u5f3a\u5236\u8bbe\u7f6e\u5267\u573a\u6a21\u5f0f" + }, + "forcedVolume": { + "message": "\u5f3a\u5236\u4fee\u6539\u97f3\u91cf" + }, + "foundABug": { + "message": "\u9047\u5230\u4e86Bug?" + }, + "fullWindow": { + "message": "\u5168\u5c4f" + }, + "general": { + "message": "\u4e00\u822c\u8bbe\u7f6e" + }, + "geoPreference": { + "message": "Geo Preference" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "\u8f6c\u5230\u641c\u7d22\u6846" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "\u7eff\u8272" + }, + "hdThumbnail": { + "message": "\u9ad8\u6e05\u7f29\u7565\u56fe" + }, + "hdThumbnails": { + "message": "\u9ad8\u6e05\u7f29\u7565\u56fe" + }, + "header": { + "message": "\u9876\u90e8\u680f" + }, + "hidden": { + "message": "\u9690\u85cf" + }, + "hiddenOnVideoPage": { + "message": "\u5728\u89c6\u9891\u64ad\u653e\u9875\u9762\u65f6\u9690\u85cf" + }, + "hideAnimatedThumbnails": { + "message": "\u9690\u85cf\u52a8\u6001\u7f29\u7565\u56fe" + }, + "hideAnnotations": { + "message": "\u9690\u85cf\u9884\u89c8\u56fe" + }, + "hideCards": { + "message": "\u9690\u85cf\u4fe1\u606f\u5361\u7247" + }, + "hideControls": { + "message": "\u9690\u85cf\u64ad\u653e\u63a7\u5236\u5668" + }, + "hideDetails": { + "message": "\u9690\u85cf\u8be6\u7ec6\u4fe1\u606f" + }, + "hideEndscreen": { + "message": "\u9690\u85cf\u7ed3\u675f\u753b\u9762" + }, + "hideFeaturedContent": { + "message": "\u9690\u85cf\u7cbe\u9009\u9891\u9053" + }, + "hideFooter": { + "message": "\u9690\u85cf\u5e95\u90e8\u680f" + }, + "hideGradientBottom": { + "message": "\u9690\u85cf\u5e95\u90e8\u6e10\u53d8\u5c42" + }, + "hidePlaylist": { + "message": "\u9690\u85cf\u64ad\u653e\u5217\u8868" + }, + "hideRightButtons": { + "message": "\u9690\u85cf\u53f3\u4fa7\u6309\u94ae" + }, + "hideScrollForDetails": { + "message": "\u9690\u85cf \u00ab\u6eda\u52a8\u81f3\u8be6\u7ec6\u4fe1\u606f\u00bb" + }, + "hideThumbnailOverlay": { + "message": "\u9690\u85cf\u7f29\u7565\u56fe\u4e0a\u7684\u6309\u94ae" + }, + "hideViewsCount": { + "message": "\u9690\u85cf\u89c2\u770b\u91cf" + }, + "history": { + "message": "\u5386\u53f2\u8bb0\u5f55" + }, + "home": { + "message": "\u9996\u9875" + }, + "hover": { + "message": "\u60ac\u6d6e" + }, + "hoverOnVideoPage": { + "message": "\u5728\u89c6\u9891\u64ad\u653e\u9875\u9762\u65f6\u60ac\u6d6e\u663e\u793a" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "\u6295\u7a3f\u4e8e\u591a\u4e45\u4e4b\u524d" + }, + "icons": { + "message": "\u56fe\u6807" + }, + "iconsOnly": { + "message": "\u4ec5\u663e\u793a\u56fe\u6807" + }, + "importSettings": { + "message": "\u5bfc\u5165\u8bbe\u7f6e" + }, + "improveLogo": { + "message": "\u4f18\u5316\u56fe\u6807" + }, + "improvedtubeIconInBrowser": { + "message": "ImprovedTube \u6269\u5c55\u7a0b\u5e8f\u56fe\u6807" + }, + "improvedtubeIconOnYoutube": { + "message": "\u5728 YouTube \u663e\u793a ImprovedTube \u56fe\u6807" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube \u8bed\u8a00" + }, + "improvedtubeVersion": { + "message": "ImprovedTube \u7248\u672c" + }, + "increasePlaybackSpeed": { + "message": "\u89c6\u9891\u52a0\u901f" + }, + "increaseVolume": { + "message": "\u589e\u52a0\u97f3\u91cf" + }, + "indigo": { + "message": "\u975b\u9752\u8272" + }, + "items": { + "message": "\u9879\u76ee" + }, + "languages": { + "message": "\u8bed\u8a00" + }, + "legacyYoutube": { + "message": "\u65e7\u7248 YouTube" + }, + "light": { + "message": "\u660e\u4eae" + }, + "lightBlue": { + "message": "\u6d45\u84dd\u8272" + }, + "lightGreen": { + "message": "\u6d45\u7eff\u8272" + }, + "like": { + "message": "\u9876\u4e00\u4e0b" + }, + "likes": { + "message": "\u9876/\u8e29\u603b\u6570" + }, + "lime": { + "message": "\u77f3\u7070\u8272" + }, + "list": { + "message": "\u5217\u8868" + }, + "liveChat": { + "message": "\u5b9e\u65f6\u804a\u5929\u7a97" + }, + "liveChatType": { + "message": "\u5b9e\u65f6\u804a\u5929\u7a97\u7c7b\u578b" + }, + "loudnessNormalization": { + "message": "\u97f3\u91cf\u6807\u51c6\u5316" + }, + "markWatchedVideos": { + "message": "\u6807\u8bb0\u4e3a\u5df2\u89c2\u770b" + }, + "mixer": { + "message": "\u6df7\u97f3\u5668" + }, + "myColors": { + "message": "\u81ea\u5b9a\u4e49\u989c\u8272" + }, + "name": { + "message": "\u540d\u5b57" + }, + "nativeMiniPlayer": { + "message": "\u539f\u7248\u8ff7\u4f60\u64ad\u653e\u5668" + }, + "new": { + "message": "\u65b0\u7684" + }, + "nextVideo": { + "message": "\u4e0a\u4e00\u4e2a\u89c6\u9891" + }, + "night": { + "message": "\u591c\u8272" + }, + "noActiveFeatures": { + "message": "\u6ca1\u6709\u5df2\u542f\u7528\u7684\u529f\u80fd" + }, + "noOpenVideoTabs": { + "message": "\u6ca1\u6709\u5df2\u6253\u5f00\u7684\u89c6\u9891\u6807\u7b7e" + }, + "none": { + "message": "\u65e0" + }, + "normal": { + "message": "\u6b63\u5e38" + }, + "old": { + "message": "\u65e7\u7248" + }, + "onAllVideos": { + "message": "\u5728\u6240\u6709\u89c6\u9891" + }, + "onSubscribedChannels": { + "message": "\u5728\u8ba2\u9605\u9891\u9053" + }, + "onlyActiveOnYoutube": { + "message": "\u4ec5\u5728 YouTube \u4e0a\u542f\u7528" + }, + "onlyOnePlayerInstancePlaying": { + "message": "\u540c\u65f6\u4ec5\u64ad\u653e\u4e00\u4e2a" + }, + "openPopupPlayer": { + "message": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00\u89c6\u9891/\u64ad\u653e\u5217\u8868" + }, + "orange": { + "message": "\u6a59\u8272" + }, + "os": { + "message": "\u64cd\u4f5c\u7cfb\u7edf" + }, + "other": { + "message": "\u5176\u4ed6" + }, + "permissions": { + "message": "\u8bb8\u53ef" + }, + "pictureInPicture": { + "message": "\u753b\u4e2d\u753b" + }, + "pink": { + "message": "\u7c89\u8272" + }, + "plain": { + "message": "\u91ce\u5916" + }, + "platform": { + "message": "\u5e73\u53f0" + }, + "playPause": { + "message": "\u64ad\u653e/\u6682\u505c" + }, + "playbackSpeed": { + "message": "\u64ad\u653e\u901f\u5ea6" + }, + "player": { + "message": "\u64ad\u653e\u5668" + }, + "playerColor": { + "message": "\u64ad\u653e\u5668\u989c\u8272" + }, + "playerSize": { + "message": "\u64ad\u653e\u5668\u5927\u5c0f" + }, + "playlist": { + "message": "\u64ad\u653e\u5217\u8868" + }, + "playlists": { + "message": "\u7a0d\u540e\u89c2\u770b" + }, + "popupPlayer": { + "message": "\u5f39\u51fa\u64ad\u653e\u5668" + }, + "position": { + "message": "\u4f4d\u7f6e" + }, + "pressAnyKeyOrScroll": { + "message": "\u6309\u4e0b\u4efb\u610f\u952e\u6216\u6eda\u52a8\u9f20\u6807\u6eda\u8f74." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "\u6309\u4e0b\u4efb\u610f\u952e\u6216\u9f20\u6807\u6eda\u8f74." + }, + "previousVideo": { + "message": "\u4e0b\u4e00\u4e2a\u89c6\u9891" + }, + "primaryColor": { + "message": "\u4e3b\u8272\u8c03" + }, + "purple": { + "message": "\u7d2b\u8272" + }, + "quality": { + "message": "\u753b\u8d28" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "\u7ed9\u6211\u4eec\u8bc4\u4ef7" + }, + "red": { + "message": "\u7ea2\u8272" + }, + "redDislikeButton": { + "message": "\u5c06\u3010\u8e29\u4e00\u4e0b\u3011\u8bbe\u7f6e\u4e3a\u7ea2\u8272" + }, + "relatedVideos": { + "message": "\u76f8\u5173\u89c6\u9891" + }, + "removeRelatedSearchResults": { + "message": "\u9690\u85cf\u641c\u7d22\u76f8\u5173\u7ed3\u679c" + }, + "repeat": { + "message": "\u5faa\u73af" + }, + "reset": { + "message": "\u91cd\u7f6e" + }, + "resetAllSettings": { + "message": "\u91cd\u7f6e\u6240\u6709\u8bbe\u7f6e" + }, + "resetAllShortcuts": { + "message": "\u91cd\u7f6e\u6240\u6709\u5feb\u6377\u952e" + }, + "reverse": { + "message": "\u9006\u5e8f" + }, + "rotate": { + "message": "\u65cb\u8f6c" + }, + "save": { + "message": "\u4fdd\u5b58" + }, + "saveAs": { + "message": "\u53e6\u5b58\u4e3a" + }, + "schedule": { + "message": "\u5b9a\u65f6\u5f00/\u5173" + }, + "screen": { + "message": "\u5c4f\u5e55" + }, + "screenshot": { + "message": "\u622a\u56fe" + }, + "search": { + "message": "\u641c\u7d22" + }, + "searchBarOnly": { + "message": "\u4ec5\u641c\u7d22\u680f" + }, + "seekBackward10Seconds": { + "message": "\u5012\u900010\u79d2" + }, + "seekForward10Seconds": { + "message": "\u5feb\u8fdb10\u79d2" + }, + "settings": { + "message": "ImprovedTube \u8bbe\u7f6e" + }, + "settingsSuccessfullyImported": { + "message": "\u8bbe\u7f6e\u5bfc\u5165\u6210\u529f" + }, + "shortcuts": { + "message": "\u5feb\u6377\u952e" + }, + "showCardsOnMouseHover": { + "message": "\u9f20\u6807\u60ac\u6d6e\u65f6\u663e\u793a\u4fe1\u606f\u5361\u7247" + }, + "showChannelVideosCount": { + "message": "\u663e\u793a\u9891\u9053\u5185\u89c6\u9891\u6570" + }, + "shuffle": { + "message": "\u968f\u673a" + }, + "sidebar": { + "message": "\u4fa7\u8fb9\u680f" + }, + "spacebar": { + "message": "\u7a7a\u683c" + }, + "squaredUserImages": { + "message": "\u65b9\u5f62\u7528\u6237\u5934\u50cf" + }, + "static": { + "message": "\u9759\u6001" + }, + "statsForNerds": { + "message": "\u663e\u793a\u4e13\u4e1a\u4fe1\u606f" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "\u505c\u6b62" + }, + "style": { + "message": "\u6837\u5f0f" + }, + "styles": { + "message": "\u6837\u5f0f" + }, + "subscriptions": { + "message": "\u8ba2\u9605\u5185\u5bb9" + }, + "subtitles": { + "message": "\u526f\u6807\u9898" + }, + "sunset": { + "message": "\u665a\u971e" + }, + "sunsetToSunrise": { + "message": "\u65e5\u843d\u5230\u65e5\u51fa" + }, + "systemPeferenceDark": { + "message": "\u7cfb\u7edf\u504f\u597d: \u6df1\u8272" + }, + "systemPeferenceLight": { + "message": "\u7cfb\u7edf\u504f\u597d: \u6d45\u8272" + }, + "teal": { + "message": "\u84dd\u7eff\u8272" + }, + "textColor": { + "message": "\u6587\u5b57\u989c\u8272" + }, + "themes": { + "message": "\u4e3b\u9898" + }, + "thisWillRemoveAllCookies": { + "message": "\u5c06\u6e05\u7a7a\u6240\u6709 cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "\u5c06\u6e05\u7a7a\u6240\u6709 YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "\u5c06\u91cd\u7f6e\u6240\u6709\u8bbe\u7f6e." + }, + "thisWillResetAllShortcuts": { + "message": "\u5c06\u4f1a\u91cd\u7f6e\u6240\u6709\u5feb\u6377\u952e" + }, + "thumbnails": { + "message": "\u7f29\u7565\u56fe" + }, + "timeFrom": { + "message": "\u5f00\u59cb\u65f6\u95f4" + }, + "timeTo": { + "message": "\u7ed3\u675f\u65f6\u95f4" + }, + "todayAt": { + "message": "\u622a\u6b62\u4eca\u5929" + }, + "toggleCards": { + "message": "\u5207\u6362\u5361\u7247" + }, + "topChat": { + "message": "\u70ed\u95e8\u804a\u5929" + }, + "trailerAutoplay": { + "message": "\u81ea\u52a8\u64ad\u653e\u9884\u544a\u7247" + }, + "translations": { + "message": "\u7ffb\u8bd1" + }, + "transparentBackground": { + "message": "\u900f\u660e\u80cc\u666f" + }, + "trending": { + "message": "\u65f6\u4e0b\u6d41\u884c" + }, + "tryToReloadThePage": { + "message": "\u5c1d\u8bd5\u5237\u65b0\u9875\u9762" + }, + "turnOff": { + "message": "\u5173\u95ed\u65f6\u95f4" + }, + "turnOn": { + "message": "\u5f00\u542f\u65f6\u95f4" + }, + "type": { + "message": "\u7c7b\u578b" + }, + "upNextAutoplay": { + "message": "\u81ea\u52a8\u64ad\u653e\u4e0b\u4e00\u89c6\u9891" + }, + "use24HourFormat": { + "message": "\u4f7f\u752824\u5c0f\u65f6\u5236" + }, + "version": { + "message": "\u7248\u672c" + }, + "video": { + "message": "\u89c6\u9891" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "\u6269\u5c55\u89c6\u9891\u7b80\u4ecb\u5230\u5206\u7c7b" + }, + "videoFormats": { + "message": "\u89c6\u9891\u683c\u5f0f" + }, + "videos": { + "message": "\u89c6\u9891" + }, + "volume": { + "message": "\u97f3\u91cf" + }, + "watchLater": { + "message": "\u7a0d\u540e\u89c2\u770b" + }, + "watchTime": { + "message": "\u89c2\u770b\u65f6\u95f4" + }, + "whenTabIsChanged": { + "message": "\u5207\u6362\u6807\u7b7e\u65f6" + }, + "white": { + "message": "\u767d\u8272" + }, + "yellow": { + "message": "\u9ec4\u8272" + }, + "youtubeHeaderLeft": { + "message": "Youtube\u6807\u9898\uff08\u5de6\uff09" + }, + "youtubeHeaderRight": { + "message": "Youtube\u6807\u9898\uff08\u53f3\uff09" + }, + "youtubeHomePage": { + "message": "YouTube\u9ed8\u8ba4\u4e3b\u9875" + }, + "youtubeLanguage": { + "message": "YouTube \u8bed\u8a00" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "\u91c7\u7528 H.264 \u7f16\u89e3\u7801\u65f6\uff0cYouTube \u4f1a\u5c06\u89c6\u9891\u753b\u8d28\u8bbe\u4e3a 1080p" + } +} \ No newline at end of file diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 53382d1d3..9d1cde224 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -1,824 +1,827 @@ -{ - "about": { - "message": "關於" - }, - "accept": { - "message": "接受" - }, - "activate": { - "message": "啟用" - }, - "activateCaptions": { - "message": "開啟字幕" - }, - "activated": { - "message": "啟用" - }, - "activatedFeatures": { - "message": "已啟用功能" - }, - "activateFullscreen": { - "message": "開啟全螢幕" - }, - "activeFeatures": { - "message": "已啟用功能" - }, - "addScrollToTop": { - "message": "新增「回到頂部」按鈕" - }, - "ads": { - "message": "廣告" - }, - "all": { - "message": "所有" - }, - "allow": { - "message": "允許" - }, - "allow60fps": { - "message": "允許 60fps" - }, - "forceSDR": { - "message": "強制使用標準動態範圍 (SDR)" - }, - "alwaysActive": { - "message": "始終有效" - }, - "alwaysShowProgressBar": { - "message": "一律顯示進度條" - }, - "amber": { - "message": "琥珀色" - }, - "analyzer": { - "message": "觀看紀錄" - }, - "appearance": { - "message": "外貌" - }, - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "audio": { - "message": "音頻" - }, - "audioFormats": { - "message": "音頻格式" - }, - "auto": { - "message": "自動" - }, - "autoFullscreen": { - "message": "自動全螢幕" - }, - "autopauseWhenSwitchingTabs": { - "message": "切換分頁時自動暫停" - }, - "autoplay": { - "message": "自動播放" - }, - "backupAndReset": { - "message": "備份 & 重置" - }, - "baseOnSystemColorScheme": { - "message": "使用系統配色方案" - }, - "belowPlayer": { - "message": "於播放器底下" - }, - "black": { - "message": "黑色" - }, - "blacklist": { - "message": "黑名單" - }, - "blockAll": { - "message": "封鎖所有" - }, - "blue": { - "message": "藍色" - }, - "blueGray": { - "message": "藍灰色" - }, - "bluelight": { - "message": "藍光" - }, - "brown": { - "message": "棕色" - }, - "browser": { - "message": "瀏覽器" - }, - "browserVersion": { - "message": "瀏覽器版本" - }, - "bubbles": { - "message": "Bubbles" - }, - "bug": { - "message": "問題" - }, - "buttons": { - "message": "按鈕" - }, - "cancel": { - "message": "取消" - }, - "categories": { - "message": "類別" - }, - "channel": { - "message": "頻道" - }, - "channels": { - "message": "頻道" - }, - "clipboard": { - "message": "剪貼簿" - }, - "codecH264": { - "message": "使用 H.264 解碼" - }, - "collapsed": { - "message": "簡縮" - }, - "collapseOfSubscriptionSections": { - "message": "於訂閱區顯示縮放按鈕" - }, - "comments": { - "message": "評論" - }, - "confirmationBeforeClosing": { - "message": "關閉前先確認" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "cropChapterTitles": { - "message": "截斷章節名稱" - }, - "customCss": { - "message": "自訂 CSS" - }, - "customJs": { - "message": "自訂 JS" - }, - "customMiniPlayer": { - "message": "自訂迷你播放器" - }, - "cyan": { - "message": "青色" - }, - "dark": { - "message": "暗黑" - }, - "darkTheme": { - "message": "暗黑主題" - }, - "dateAndTime": { - "message": "日期和時間" - }, - "dawn": { - "message": "黎明" - }, - "decreasePlaybackSpeed": { - "message": "降低播放速度" - }, - "decreaseVolume": { - "message": "減輕音量" - }, - "deepOrange": { - "message": "深橙色" - }, - "deepPurple": { - "message": "深紫色" - }, - "defaultChannelTab": { - "message": "預設頻道標籤" - }, - "deleteYoutubeCookies": { - "message": "刪除 YouTube cookies" - }, - "description": { - "message": "影片描述" - }, - "desert": { - "message": "沙漠" - }, - "details": { - "message": "細節" - }, - "developerOptions": { - "message": "開發人員選項" - }, - "device": { - "message": "裝置" - }, - "dim": { - "message": "光線暗度" - }, - "disabled": { - "message": "關閉" - }, - "dislike": { - "message": "不喜歡" - }, - "donate": { - "message": "捐贈" - }, - "doNotChange": { - "message": "不要改變" - }, - "draggable": { - "message": "可拖動" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "空白" - }, - "enabled": { - "message": "啟用" - }, - "enabledForced": { - "message": "強制啟用" - }, - "expanded": { - "message": "擴展" - }, - "exportSettings": { - "message": "導出設定" - }, - "extension": { - "message": "擴充元件" - }, - "file": { - "message": "檔案" - }, - "filters": { - "message": "濾鏡" - }, - "fitToWindow": { - "message": "依視窗大小縮放" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "字體" - }, - "footer": { - "message": "頁腳" - }, - "forcedPlaybackSpeed": { - "message": "強制播放速度" - }, - "forcedTheaterMode": { - "message": "強制劇院模式" - }, - "forcedVolume": { - "message": "強制播放音量" - }, - "foundABug": { - "message": "遇到問題了嗎?" - }, - "fullWindow": { - "message": "全螢幕" - }, - "general": { - "message": "一般" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "轉到搜索框" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "綠色" - }, - "hdThumbnail": { - "message": "HD 縮圖" - }, - "hdThumbnails": { - "message": "HD 縮圖" - }, - "header": { - "message": "標頭" - }, - "hidden": { - "message": "隱藏" - }, - "hiddenOnVideoPage": { - "message": "於影片頁面自動隱藏" - }, - "hideAnimatedThumbnails": { - "message": "隱藏動態的縮略圖" - }, - "hideAnnotations": { - "message": "隱藏註解" - }, - "hideCards": { - "message": "隱藏資訊卡" - }, - "hideControls": { - "message": "隱藏播放器控制" - }, - "hideDetails": { - "message": "隱藏細節" - }, - "hideEndscreen": { - "message": "隱藏結束畫面" - }, - "hideFeaturedContent": { - "message": "隱藏精選影片" - }, - "hideFooter": { - "message": "隱藏頁腳" - }, - "hideGradientBottom": { - "message": "隱藏底部漸層圖層" - }, - "hidePlaylist": { - "message": "隱藏播放清單" - }, - "hideRightButtons": { - "message": "隱藏右側按鈕" - }, - "hideScrollForDetails": { - "message": "隱藏「向下捲動即可查看詳情」" - }, - "hideThumbnailOverlay": { - "message": "隱藏縮圖上的按鈕" - }, - "hideViewsCount": { - "message": "隱藏觀看次數" - }, - "history": { - "message": "觀看記錄" - }, - "home": { - "message": "首頁" - }, - "hover": { - "message": "滑鼠暫留時顯示" - }, - "hoverOnVideoPage": { - "message": "於影片頁面滑鼠暫留時顯示" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "顯示影片上傳時間" - }, - "icons": { - "message": "圖標" - }, - "iconsOnly": { - "message": "只有圖標" - }, - "importSettings": { - "message": "導入設定" - }, - "improvedtubeIconInBrowser": { - "message": "於瀏覽器中顯示 ImprovedTube 圖示" - }, - "improvedtubeIconOnYoutube": { - "message": "於 YouTube 中顯示 ImprovedTube 圖示" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube 語言" - }, - "improvedtubeVersion": { - "message": "ImprovedTube 版本" - }, - "improveLogo": { - "message": "改進 YouTube 圖示" - }, - "increasePlaybackSpeed": { - "message": "加快播放速度" - }, - "increaseVolume": { - "message": "增加音量" - }, - "indigo": { - "message": "靛青" - }, - "items": { - "message": "項目" - }, - "languages": { - "message": "語言" - }, - "legacyYoutube": { - "message": "舊版 YouTube" - }, - "light": { - "message": "Light" - }, - "lightBlue": { - "message": "淺藍色" - }, - "lightGreen": { - "message": "淺綠色" - }, - "like": { - "message": "喜歡" - }, - "likes": { - "message": "顯示按讚數量" - }, - "lime": { - "message": "萊姆色" - }, - "list": { - "message": "清單" - }, - "liveChat": { - "message": "Live 聊天視窗" - }, - "liveChatType": { - "message": "Live 聊天視窗種類" - }, - "loudnessNormalization": { - "message": "音量標準化" - }, - "markWatchedVideos": { - "message": "標記已觀看影片" - }, - "mixer": { - "message": "音量混合器" - }, - "myColors": { - "message": "自訂主色" - }, - "name": { - "message": "名稱" - }, - "nativeMiniPlayer": { - "message": "內建迷你播放器" - }, - "new": { - "message": "新增" - }, - "nextVideo": { - "message": "下一個影片" - }, - "night": { - "message": "夜晚" - }, - "noActiveFeatures": { - "message": "無已啟用功能" - }, - "none": { - "message": "無" - }, - "noOpenVideoTabs": { - "message": "無已開啟之影片頁面" - }, - "normal": { - "message": "正常" - }, - "old": { - "message": "舊版" - }, - "onAllVideos": { - "message": "於所有影片中" - }, - "onlyActiveOnYoutube": { - "message": "僅在 YouTube 上有效" - }, - "onlyOnePlayerInstancePlaying": { - "message": "同時間僅限播放單一影片" - }, - "onSubscribedChannels": { - "message": "於已訂閱的頻道中" - }, - "openPopupPlayer": { - "message": "開啟影片或播放清單於新視窗中" - }, - "orange": { - "message": "橘色" - }, - "os": { - "message": "作業系統" - }, - "other": { - "message": "其他" - }, - "permissions": { - "message": "權限" - }, - "pictureInPicture": { - "message": "子母畫面" - }, - "pink": { - "message": "粉紅色" - }, - "plain": { - "message": "樸素" - }, - "platform": { - "message": "平台" - }, - "playbackSpeed": { - "message": "播放速度" - }, - "player": { - "message": "播放器" - }, - "playerColor": { - "message": "影片進度條顏色" - }, - "playerSize": { - "message": "播放器大小" - }, - "playlist": { - "message": "播放列表" - }, - "playlists": { - "message": "播放清單" - }, - "playPause": { - "message": "播放/暫停" - }, - "popupPlayer": { - "message": "彈出播放器" - }, - "position": { - "message": "位置" - }, - "pressAnyKeyOrScroll": { - "message": "按任意鍵或使用滑鼠滾輪。" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "按任意鍵或使用鼠標滾輪。" - }, - "previousVideo": { - "message": "回到之前的影片" - }, - "primaryColor": { - "message": "主要顏色" - }, - "purple": { - "message": "紫色" - }, - "quality": { - "message": "品質" - }, - "ram": { - "message": "RAM" - }, - "rateUs": { - "message": "評分" - }, - "red": { - "message": "紅色" - }, - "redDislikeButton": { - "message": "將「不喜歡」數量以紅色顯示" - }, - "relatedVideos": { - "message": "推薦影片" - }, - "removeRelatedSearchResults": { - "message": "移除搜尋相關結果" - }, - "repeat": { - "message": "重複播放" - }, - "reset": { - "message": "重置" - }, - "resetAllSettings": { - "message": "重置所有設定" - }, - "resetAllShortcuts": { - "message": "重置所有快捷鍵" - }, - "reverse": { - "message": "回播" - }, - "rotate": { - "message": "旋轉影片" - }, - "save": { - "message": "儲存" - }, - "saveAs": { - "message": "另存為" - }, - "schedule": { - "message": "排程" - }, - "screen": { - "message": "螢幕" - }, - "screenshot": { - "message": "截圖" - }, - "search": { - "message": "搜尋" - }, - "searchBarOnly": { - "message": "僅顯示搜尋列" - }, - "seekBackward10Seconds": { - "message": "倒退10秒" - }, - "seekForward10Seconds": { - "message": "前進10秒" - }, - "settings": { - "message": "設定" - }, - "settingsSuccessfullyImported": { - "message": "設定成功導入" - }, - "shortcuts": { - "message": "快捷鍵" - }, - "showCardsOnMouseHover": { - "message": "滑鼠暫留時顯示資訊卡" - }, - "showChannelVideosCount": { - "message": "顯示頻道影片數量" - }, - "shuffle": { - "message": "隨機播放" - }, - "sidebar": { - "message": "側邊欄" - }, - "spacebar": { - "message": "空格鍵" - }, - "squaredUserImages": { - "message": "方形用戶圖像" - }, - "static": { - "message": "靜止" - }, - "statsForNerds": { - "message": "顯示「統計資料」按鈕" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "停止" - }, - "style": { - "message": "樣式" - }, - "styles": { - "message": "樣式" - }, - "subscriptions": { - "message": "訂閱內容" - }, - "subtitles": { - "message": "允許字幕" - }, - "sunset": { - "message": "日落" - }, - "sunsetToSunrise": { - "message": "日出至入落" - }, - "systemPeferenceDark": { - "message": "系統預設: 暗黑模式" - }, - "systemPeferenceLight": { - "message": "系統預設: 白天模式" - }, - "teal": { - "message": "藍綠色" - }, - "textColor": { - "message": "文字顏色" - }, - "themes": { - "message": "主題" - }, - "thisWillRemoveAllCookies": { - "message": "這將刪除所有的 cookies。" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "這將刪除所有 YouTube Cookies。" - }, - "thisWillResetAllSettings": { - "message": "這將重置所有設定。" - }, - "thisWillResetAllShortcuts": { - "message": "這將重置所有快捷鍵。" - }, - "thumbnails": { - "message": "縮略圖" - }, - "timeFrom": { - "message": "開始時間" - }, - "timeTo": { - "message": "結束時間" - }, - "todayAt": { - "message": "自今日" - }, - "toggleCards": { - "message": "啟用結束畫面" - }, - "toggleControls": { - "message": "開關播放器控制" - }, - "topChat": { - "message": "Top chat" - }, - "trailerAutoplay": { - "message": "預告片自動播放" - }, - "translations": { - "message": "翻譯" - }, - "transparentBackground": { - "message": "透明背景" - }, - "trending": { - "message": "發燒影片" - }, - "tryToReloadThePage": { - "message": "嘗試重新整理頁面" - }, - "type": { - "message": "種類" - }, - "upNextAutoplay": { - "message": "自動播放下一個影片" - }, - "use24HourFormat": { - "message": "使用24小時格式" - }, - "version": { - "message": "版本" - }, - "video": { - "message": "影片" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "影片敘述將自動展開以顯示影片分類名稱" - }, - "videoFormats": { - "message": "影片格式" - }, - "videos": { - "message": "影片" - }, - "volume": { - "message": "音量" - }, - "watchLater": { - "message": "稍後觀看" - }, - "watchTime": { - "message": "已觀看時間" - }, - "whenTabIsChanged": { - "message": "當分頁改變時" - }, - "white": { - "message": "白色" - }, - "yellow": { - "message": "黃色" - }, - "youtubeHeaderLeft": { - "message": "YouTube 標頭 (左)" - }, - "youtubeHeaderRight": { - "message": "YouTube 標頭 (右)" - }, - "youtubeHomePage": { - "message": "預設的 YouTube 主頁" - }, - "youtubeLanguage": { - "message": "YouTube 語言" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "使用 H.264 編碼時,YouTube 會將畫質限制為 1080p 內。" - } +{ + "ARROWDOWN": { + "message": "\u21e9" + }, + "ARROWLEFT": { + "message": "\u21e6" + }, + "ARROWRIGHT": { + "message": "\u21e8" + }, + "ARROWUP": { + "message": "\u21e7" + }, + "__MSG_description__": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "about": { + "message": "\u95dc\u65bc" + }, + "accept": { + "message": "\u63a5\u53d7" + }, + "activate": { + "message": "\u555f\u7528" + }, + "activateCaptions": { + "message": "\u958b\u555f\u5b57\u5e55" + }, + "activateFullscreen": { + "message": "\u958b\u555f\u5168\u87a2\u5e55" + }, + "activated": { + "message": "\u555f\u7528" + }, + "activatedFeatures": { + "message": "\u5df2\u555f\u7528\u529f\u80fd" + }, + "activeFeatures": { + "message": "\u5df2\u555f\u7528\u529f\u80fd" + }, + "addScrollToTop": { + "message": "\u65b0\u589e\u300c\u56de\u5230\u9802\u90e8\u300d\u6309\u9215" + }, + "ads": { + "message": "\u5ee3\u544a" + }, + "all": { + "message": "\u6240\u6709" + }, + "allow": { + "message": "\u5141\u8a31" + }, + "allow60fps": { + "message": "\u5141\u8a31 60fps" + }, + "alwaysActive": { + "message": "\u59cb\u7d42\u6709\u6548" + }, + "alwaysShowProgressBar": { + "message": "\u4e00\u5f8b\u986f\u793a\u9032\u5ea6\u689d" + }, + "amber": { + "message": "\u7425\u73c0\u8272" + }, + "analyzer": { + "message": "\u89c0\u770b\u7d00\u9304" + }, + "appearance": { + "message": "\u5916\u8c8c" + }, + "audio": { + "message": "\u97f3\u983b" + }, + "audioFormats": { + "message": "\u97f3\u983b\u683c\u5f0f" + }, + "auto": { + "message": "\u81ea\u52d5" + }, + "autoFullscreen": { + "message": "\u81ea\u52d5\u5168\u87a2\u5e55" + }, + "autopauseWhenSwitchingTabs": { + "message": "\u5207\u63db\u5206\u9801\u6642\u81ea\u52d5\u66ab\u505c" + }, + "autoplay": { + "message": "\u81ea\u52d5\u64ad\u653e" + }, + "backupAndReset": { + "message": "\u5099\u4efd & \u91cd\u7f6e" + }, + "baseOnSystemColorScheme": { + "message": "\u4f7f\u7528\u7cfb\u7d71\u914d\u8272\u65b9\u6848" + }, + "belowPlayer": { + "message": "\u65bc\u64ad\u653e\u5668\u5e95\u4e0b" + }, + "black": { + "message": "\u9ed1\u8272" + }, + "blacklist": { + "message": "\u9ed1\u540d\u55ae" + }, + "blockAll": { + "message": "\u5c01\u9396\u6240\u6709" + }, + "blue": { + "message": "\u85cd\u8272" + }, + "blueGray": { + "message": "\u85cd\u7070\u8272" + }, + "bluelight": { + "message": "\u85cd\u5149" + }, + "brown": { + "message": "\u68d5\u8272" + }, + "browser": { + "message": "\u700f\u89bd\u5668" + }, + "browserVersion": { + "message": "\u700f\u89bd\u5668\u7248\u672c" + }, + "bubbles": { + "message": "Bubbles" + }, + "bug": { + "message": "\u554f\u984c" + }, + "buttons": { + "message": "\u6309\u9215" + }, + "cancel": { + "message": "\u53d6\u6d88" + }, + "categories": { + "message": "\u985e\u5225" + }, + "channel": { + "message": "\u983b\u9053" + }, + "channels": { + "message": "\u983b\u9053" + }, + "clipboard": { + "message": "\u526a\u8cbc\u7c3f" + }, + "codecH264": { + "message": "\u4f7f\u7528 H.264 \u89e3\u78bc" + }, + "collapseOfSubscriptionSections": { + "message": "\u65bc\u8a02\u95b1\u5340\u986f\u793a\u7e2e\u653e\u6309\u9215" + }, + "collapsed": { + "message": "\u7c21\u7e2e" + }, + "comments": { + "message": "\u8a55\u8ad6" + }, + "confirmationBeforeClosing": { + "message": "\u95dc\u9589\u524d\u5148\u78ba\u8a8d" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "\u622a\u65b7\u7ae0\u7bc0\u540d\u7a31" + }, + "customCss": { + "message": "\u81ea\u8a02 CSS" + }, + "customJs": { + "message": "\u81ea\u8a02 JS" + }, + "customMiniPlayer": { + "message": "\u81ea\u8a02\u8ff7\u4f60\u64ad\u653e\u5668" + }, + "cyan": { + "message": "\u9752\u8272" + }, + "dark": { + "message": "\u6697\u9ed1" + }, + "darkTheme": { + "message": "\u6697\u9ed1\u4e3b\u984c" + }, + "dateAndTime": { + "message": "\u65e5\u671f\u548c\u6642\u9593" + }, + "dawn": { + "message": "\u9ece\u660e" + }, + "decreasePlaybackSpeed": { + "message": "\u964d\u4f4e\u64ad\u653e\u901f\u5ea6" + }, + "decreaseVolume": { + "message": "\u6e1b\u8f15\u97f3\u91cf" + }, + "deepOrange": { + "message": "\u6df1\u6a59\u8272" + }, + "deepPurple": { + "message": "\u6df1\u7d2b\u8272" + }, + "defaultChannelTab": { + "message": "\u9810\u8a2d\u983b\u9053\u6a19\u7c64" + }, + "deleteYoutubeCookies": { + "message": "\u522a\u9664 YouTube cookies" + }, + "description": { + "message": "\u5f71\u7247\u63cf\u8ff0" + }, + "desert": { + "message": "\u6c99\u6f20" + }, + "details": { + "message": "\u7d30\u7bc0" + }, + "developerOptions": { + "message": "\u958b\u767c\u4eba\u54e1\u9078\u9805" + }, + "device": { + "message": "\u88dd\u7f6e" + }, + "dim": { + "message": "\u5149\u7dda\u6697\u5ea6" + }, + "disabled": { + "message": "\u95dc\u9589" + }, + "dislike": { + "message": "\u4e0d\u559c\u6b61" + }, + "doNotChange": { + "message": "\u4e0d\u8981\u6539\u8b8a" + }, + "donate": { + "message": "\u6350\u8d08" + }, + "draggable": { + "message": "\u53ef\u62d6\u52d5" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "\u7a7a\u767d" + }, + "enabled": { + "message": "\u555f\u7528" + }, + "enabledForced": { + "message": "\u5f37\u5236\u555f\u7528" + }, + "expanded": { + "message": "\u64f4\u5c55" + }, + "exportSettings": { + "message": "\u5c0e\u51fa\u8a2d\u5b9a" + }, + "extension": { + "message": "\u64f4\u5145\u5143\u4ef6" + }, + "file": { + "message": "\u6a94\u6848" + }, + "filters": { + "message": "\u6ffe\u93e1" + }, + "fitToWindow": { + "message": "\u4f9d\u8996\u7a97\u5927\u5c0f\u7e2e\u653e" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "\u5b57\u9ad4" + }, + "footer": { + "message": "\u9801\u8173" + }, + "forceSDR": { + "message": "\u5f37\u5236\u4f7f\u7528\u6a19\u6e96\u52d5\u614b\u7bc4\u570d (SDR)" + }, + "forcedPlaybackSpeed": { + "message": "\u5f37\u5236\u64ad\u653e\u901f\u5ea6" + }, + "forcedTheaterMode": { + "message": "\u5f37\u5236\u5287\u9662\u6a21\u5f0f" + }, + "forcedVolume": { + "message": "\u5f37\u5236\u64ad\u653e\u97f3\u91cf" + }, + "foundABug": { + "message": "\u9047\u5230\u554f\u984c\u4e86\u55ce?" + }, + "fullWindow": { + "message": "\u5168\u87a2\u5e55" + }, + "general": { + "message": "\u4e00\u822c" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "\u8f49\u5230\u641c\u7d22\u6846" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "\u7da0\u8272" + }, + "hdThumbnail": { + "message": "HD \u7e2e\u5716" + }, + "hdThumbnails": { + "message": "HD \u7e2e\u5716" + }, + "header": { + "message": "\u6a19\u982d" + }, + "hidden": { + "message": "\u96b1\u85cf" + }, + "hiddenOnVideoPage": { + "message": "\u65bc\u5f71\u7247\u9801\u9762\u81ea\u52d5\u96b1\u85cf" + }, + "hideAnimatedThumbnails": { + "message": "\u96b1\u85cf\u52d5\u614b\u7684\u7e2e\u7565\u5716" + }, + "hideAnnotations": { + "message": "\u96b1\u85cf\u8a3b\u89e3" + }, + "hideCards": { + "message": "\u96b1\u85cf\u8cc7\u8a0a\u5361" + }, + "hideControls": { + "message": "\u96b1\u85cf\u64ad\u653e\u5668\u63a7\u5236" + }, + "hideDetails": { + "message": "\u96b1\u85cf\u7d30\u7bc0" + }, + "hideEndscreen": { + "message": "\u96b1\u85cf\u7d50\u675f\u756b\u9762" + }, + "hideFeaturedContent": { + "message": "\u96b1\u85cf\u7cbe\u9078\u5f71\u7247" + }, + "hideFooter": { + "message": "\u96b1\u85cf\u9801\u8173" + }, + "hideGradientBottom": { + "message": "\u96b1\u85cf\u5e95\u90e8\u6f38\u5c64\u5716\u5c64" + }, + "hidePlaylist": { + "message": "\u96b1\u85cf\u64ad\u653e\u6e05\u55ae" + }, + "hideRightButtons": { + "message": "\u96b1\u85cf\u53f3\u5074\u6309\u9215" + }, + "hideScrollForDetails": { + "message": "\u96b1\u85cf\u300c\u5411\u4e0b\u6372\u52d5\u5373\u53ef\u67e5\u770b\u8a73\u60c5\u300d" + }, + "hideThumbnailOverlay": { + "message": "\u96b1\u85cf\u7e2e\u5716\u4e0a\u7684\u6309\u9215" + }, + "hideViewsCount": { + "message": "\u96b1\u85cf\u89c0\u770b\u6b21\u6578" + }, + "history": { + "message": "\u89c0\u770b\u8a18\u9304" + }, + "home": { + "message": "\u9996\u9801" + }, + "hover": { + "message": "\u6ed1\u9f20\u66ab\u7559\u6642\u986f\u793a" + }, + "hoverOnVideoPage": { + "message": "\u65bc\u5f71\u7247\u9801\u9762\u6ed1\u9f20\u66ab\u7559\u6642\u986f\u793a" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "\u986f\u793a\u5f71\u7247\u4e0a\u50b3\u6642\u9593" + }, + "icons": { + "message": "\u5716\u6a19" + }, + "iconsOnly": { + "message": "\u53ea\u6709\u5716\u6a19" + }, + "importSettings": { + "message": "\u5c0e\u5165\u8a2d\u5b9a" + }, + "improveLogo": { + "message": "\u6539\u9032 YouTube \u5716\u793a" + }, + "improvedtubeIconInBrowser": { + "message": "\u65bc\u700f\u89bd\u5668\u4e2d\u986f\u793a ImprovedTube \u5716\u793a" + }, + "improvedtubeIconOnYoutube": { + "message": "\u65bc YouTube \u4e2d\u986f\u793a ImprovedTube \u5716\u793a" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube \u8a9e\u8a00" + }, + "improvedtubeVersion": { + "message": "ImprovedTube \u7248\u672c" + }, + "increasePlaybackSpeed": { + "message": "\u52a0\u5feb\u64ad\u653e\u901f\u5ea6" + }, + "increaseVolume": { + "message": "\u589e\u52a0\u97f3\u91cf" + }, + "indigo": { + "message": "\u975b\u9752" + }, + "items": { + "message": "\u9805\u76ee" + }, + "languages": { + "message": "\u8a9e\u8a00" + }, + "legacyYoutube": { + "message": "\u820a\u7248 YouTube" + }, + "light": { + "message": "Light" + }, + "lightBlue": { + "message": "\u6dfa\u85cd\u8272" + }, + "lightGreen": { + "message": "\u6dfa\u7da0\u8272" + }, + "like": { + "message": "\u559c\u6b61" + }, + "likes": { + "message": "\u986f\u793a\u6309\u8b9a\u6578\u91cf" + }, + "lime": { + "message": "\u840a\u59c6\u8272" + }, + "list": { + "message": "\u6e05\u55ae" + }, + "liveChat": { + "message": "Live \u804a\u5929\u8996\u7a97" + }, + "liveChatType": { + "message": "Live \u804a\u5929\u8996\u7a97\u7a2e\u985e" + }, + "loudnessNormalization": { + "message": "\u97f3\u91cf\u6a19\u6e96\u5316" + }, + "markWatchedVideos": { + "message": "\u6a19\u8a18\u5df2\u89c0\u770b\u5f71\u7247" + }, + "mixer": { + "message": "\u97f3\u91cf\u6df7\u5408\u5668" + }, + "myColors": { + "message": "\u81ea\u8a02\u4e3b\u8272" + }, + "name": { + "message": "\u540d\u7a31" + }, + "nativeMiniPlayer": { + "message": "\u5167\u5efa\u8ff7\u4f60\u64ad\u653e\u5668" + }, + "new": { + "message": "\u65b0\u589e" + }, + "nextVideo": { + "message": "\u4e0b\u4e00\u500b\u5f71\u7247" + }, + "night": { + "message": "\u591c\u665a" + }, + "noActiveFeatures": { + "message": "\u7121\u5df2\u555f\u7528\u529f\u80fd" + }, + "noOpenVideoTabs": { + "message": "\u7121\u5df2\u958b\u555f\u4e4b\u5f71\u7247\u9801\u9762" + }, + "none": { + "message": "\u7121" + }, + "normal": { + "message": "\u6b63\u5e38" + }, + "old": { + "message": "\u820a\u7248" + }, + "onAllVideos": { + "message": "\u65bc\u6240\u6709\u5f71\u7247\u4e2d" + }, + "onSubscribedChannels": { + "message": "\u65bc\u5df2\u8a02\u95b1\u7684\u983b\u9053\u4e2d" + }, + "onlyActiveOnYoutube": { + "message": "\u50c5\u5728 YouTube \u4e0a\u6709\u6548" + }, + "onlyOnePlayerInstancePlaying": { + "message": "\u540c\u6642\u9593\u50c5\u9650\u64ad\u653e\u55ae\u4e00\u5f71\u7247" + }, + "openPopupPlayer": { + "message": "\u958b\u555f\u5f71\u7247\u6216\u64ad\u653e\u6e05\u55ae\u65bc\u65b0\u8996\u7a97\u4e2d" + }, + "orange": { + "message": "\u6a58\u8272" + }, + "os": { + "message": "\u4f5c\u696d\u7cfb\u7d71" + }, + "other": { + "message": "\u5176\u4ed6" + }, + "permissions": { + "message": "\u6b0a\u9650" + }, + "pictureInPicture": { + "message": "\u5b50\u6bcd\u756b\u9762" + }, + "pink": { + "message": "\u7c89\u7d05\u8272" + }, + "plain": { + "message": "\u6a38\u7d20" + }, + "platform": { + "message": "\u5e73\u53f0" + }, + "playPause": { + "message": "\u64ad\u653e/\u66ab\u505c" + }, + "playbackSpeed": { + "message": "\u64ad\u653e\u901f\u5ea6" + }, + "player": { + "message": "\u64ad\u653e\u5668" + }, + "playerColor": { + "message": "\u5f71\u7247\u9032\u5ea6\u689d\u984f\u8272" + }, + "playerSize": { + "message": "\u64ad\u653e\u5668\u5927\u5c0f" + }, + "playlist": { + "message": "\u64ad\u653e\u5217\u8868" + }, + "playlists": { + "message": "\u64ad\u653e\u6e05\u55ae" + }, + "popupPlayer": { + "message": "\u5f48\u51fa\u64ad\u653e\u5668" + }, + "position": { + "message": "\u4f4d\u7f6e" + }, + "pressAnyKeyOrScroll": { + "message": "\u6309\u4efb\u610f\u9375\u6216\u4f7f\u7528\u6ed1\u9f20\u6efe\u8f2a\u3002" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "\u6309\u4efb\u610f\u9375\u6216\u4f7f\u7528\u9f20\u6a19\u6efe\u8f2a\u3002" + }, + "previousVideo": { + "message": "\u56de\u5230\u4e4b\u524d\u7684\u5f71\u7247" + }, + "primaryColor": { + "message": "\u4e3b\u8981\u984f\u8272" + }, + "purple": { + "message": "\u7d2b\u8272" + }, + "quality": { + "message": "\u54c1\u8cea" + }, + "ram": { + "message": "RAM" + }, + "rateUs": { + "message": "\u8a55\u5206" + }, + "red": { + "message": "\u7d05\u8272" + }, + "redDislikeButton": { + "message": "\u5c07\u300c\u4e0d\u559c\u6b61\u300d\u6578\u91cf\u4ee5\u7d05\u8272\u986f\u793a" + }, + "relatedVideos": { + "message": "\u63a8\u85a6\u5f71\u7247" + }, + "removeRelatedSearchResults": { + "message": "\u79fb\u9664\u641c\u5c0b\u76f8\u95dc\u7d50\u679c" + }, + "repeat": { + "message": "\u91cd\u8907\u64ad\u653e" + }, + "reset": { + "message": "\u91cd\u7f6e" + }, + "resetAllSettings": { + "message": "\u91cd\u7f6e\u6240\u6709\u8a2d\u5b9a" + }, + "resetAllShortcuts": { + "message": "\u91cd\u7f6e\u6240\u6709\u5feb\u6377\u9375" + }, + "reverse": { + "message": "\u56de\u64ad" + }, + "rotate": { + "message": "\u65cb\u8f49\u5f71\u7247" + }, + "save": { + "message": "\u5132\u5b58" + }, + "saveAs": { + "message": "\u53e6\u5b58\u70ba" + }, + "schedule": { + "message": "\u6392\u7a0b" + }, + "screen": { + "message": "\u87a2\u5e55" + }, + "screenshot": { + "message": "\u622a\u5716" + }, + "search": { + "message": "\u641c\u5c0b" + }, + "searchBarOnly": { + "message": "\u50c5\u986f\u793a\u641c\u5c0b\u5217" + }, + "seekBackward10Seconds": { + "message": "\u5012\u900010\u79d2" + }, + "seekForward10Seconds": { + "message": "\u524d\u903210\u79d2" + }, + "settings": { + "message": "\u8a2d\u5b9a" + }, + "settingsSuccessfullyImported": { + "message": "\u8a2d\u5b9a\u6210\u529f\u5c0e\u5165" + }, + "shortcuts": { + "message": "\u5feb\u6377\u9375" + }, + "showCardsOnMouseHover": { + "message": "\u6ed1\u9f20\u66ab\u7559\u6642\u986f\u793a\u8cc7\u8a0a\u5361" + }, + "showChannelVideosCount": { + "message": "\u986f\u793a\u983b\u9053\u5f71\u7247\u6578\u91cf" + }, + "shuffle": { + "message": "\u96a8\u6a5f\u64ad\u653e" + }, + "sidebar": { + "message": "\u5074\u908a\u6b04" + }, + "spacebar": { + "message": "\u7a7a\u683c\u9375" + }, + "squaredUserImages": { + "message": "\u65b9\u5f62\u7528\u6236\u5716\u50cf" + }, + "static": { + "message": "\u975c\u6b62" + }, + "statsForNerds": { + "message": "\u986f\u793a\u300c\u7d71\u8a08\u8cc7\u6599\u300d\u6309\u9215" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "\u505c\u6b62" + }, + "style": { + "message": "\u6a23\u5f0f" + }, + "styles": { + "message": "\u6a23\u5f0f" + }, + "subscriptions": { + "message": "\u8a02\u95b1\u5167\u5bb9" + }, + "subtitles": { + "message": "\u5141\u8a31\u5b57\u5e55" + }, + "sunset": { + "message": "\u65e5\u843d" + }, + "sunsetToSunrise": { + "message": "\u65e5\u51fa\u81f3\u5165\u843d" + }, + "systemPeferenceDark": { + "message": "\u7cfb\u7d71\u9810\u8a2d: \u6697\u9ed1\u6a21\u5f0f" + }, + "systemPeferenceLight": { + "message": "\u7cfb\u7d71\u9810\u8a2d: \u767d\u5929\u6a21\u5f0f" + }, + "teal": { + "message": "\u85cd\u7da0\u8272" + }, + "textColor": { + "message": "\u6587\u5b57\u984f\u8272" + }, + "themes": { + "message": "\u4e3b\u984c" + }, + "thisWillRemoveAllCookies": { + "message": "\u9019\u5c07\u522a\u9664\u6240\u6709\u7684 cookies\u3002" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "\u9019\u5c07\u522a\u9664\u6240\u6709 YouTube Cookies\u3002" + }, + "thisWillResetAllSettings": { + "message": "\u9019\u5c07\u91cd\u7f6e\u6240\u6709\u8a2d\u5b9a\u3002" + }, + "thisWillResetAllShortcuts": { + "message": "\u9019\u5c07\u91cd\u7f6e\u6240\u6709\u5feb\u6377\u9375\u3002" + }, + "thumbnails": { + "message": "\u7e2e\u7565\u5716" + }, + "timeFrom": { + "message": "\u958b\u59cb\u6642\u9593" + }, + "timeTo": { + "message": "\u7d50\u675f\u6642\u9593" + }, + "todayAt": { + "message": "\u81ea\u4eca\u65e5" + }, + "toggleCards": { + "message": "\u555f\u7528\u7d50\u675f\u756b\u9762" + }, + "toggleControls": { + "message": "\u958b\u95dc\u64ad\u653e\u5668\u63a7\u5236" + }, + "topChat": { + "message": "Top chat" + }, + "trailerAutoplay": { + "message": "\u9810\u544a\u7247\u81ea\u52d5\u64ad\u653e" + }, + "translations": { + "message": "\u7ffb\u8b6f" + }, + "transparentBackground": { + "message": "\u900f\u660e\u80cc\u666f" + }, + "trending": { + "message": "\u767c\u71d2\u5f71\u7247" + }, + "tryToReloadThePage": { + "message": "\u5617\u8a66\u91cd\u65b0\u6574\u7406\u9801\u9762" + }, + "type": { + "message": "\u7a2e\u985e" + }, + "upNextAutoplay": { + "message": "\u81ea\u52d5\u64ad\u653e\u4e0b\u4e00\u500b\u5f71\u7247" + }, + "use24HourFormat": { + "message": "\u4f7f\u752824\u5c0f\u6642\u683c\u5f0f" + }, + "version": { + "message": "\u7248\u672c" + }, + "video": { + "message": "\u5f71\u7247" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "\u5f71\u7247\u6558\u8ff0\u5c07\u81ea\u52d5\u5c55\u958b\u4ee5\u986f\u793a\u5f71\u7247\u5206\u985e\u540d\u7a31" + }, + "videoFormats": { + "message": "\u5f71\u7247\u683c\u5f0f" + }, + "videos": { + "message": "\u5f71\u7247" + }, + "volume": { + "message": "\u97f3\u91cf" + }, + "watchLater": { + "message": "\u7a0d\u5f8c\u89c0\u770b" + }, + "watchTime": { + "message": "\u5df2\u89c0\u770b\u6642\u9593" + }, + "whenTabIsChanged": { + "message": "\u7576\u5206\u9801\u6539\u8b8a\u6642" + }, + "white": { + "message": "\u767d\u8272" + }, + "yellow": { + "message": "\u9ec3\u8272" + }, + "youtubeHeaderLeft": { + "message": "YouTube \u6a19\u982d (\u5de6)" + }, + "youtubeHeaderRight": { + "message": "YouTube \u6a19\u982d (\u53f3)" + }, + "youtubeHomePage": { + "message": "\u9810\u8a2d\u7684 YouTube \u4e3b\u9801" + }, + "youtubeLanguage": { + "message": "YouTube \u8a9e\u8a00" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "\u4f7f\u7528 H.264 \u7de8\u78bc\u6642\uff0cYouTube \u6703\u5c07\u756b\u8cea\u9650\u5236\u70ba 1080p \u5167\u3002" + } } \ No newline at end of file diff --git a/background-firefox.js b/background-firefox.js deleted file mode 100644 index 8b4482d6a..000000000 --- a/background-firefox.js +++ /dev/null @@ -1,352 +0,0 @@ -/*-------------------------------------------------------------- ->>> BACKGROUND ----------------------------------------------------------------- -# Global variables -# Functions -# Context menu items -# Message listener -# Storage change listener -# Tab focus/blur -# Uninstall URL -# Initialization ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# GLOBAL VARIABLES ---------------------------------------------------------------*/ - -var locale_code = 'en', - browser_icon = false; - -/*-------------------------------------------------------------- -# FUNCTIONS ---------------------------------------------------------------*/ - -function isset(variable) { - return !(typeof variable === 'undefined' || variable === null); -} - -function getTranslations(path) { - var xhr = new XMLHttpRequest(); - - xhr.addEventListener('load', function() { - if (chrome && chrome.tabs) { - chrome.tabs.query({}, function(tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - name: 'translation_response', - value: xhr.responseText - }); - } - } - }); - } - - chrome.runtime.sendMessage({ - name: 'translation_response', - value: xhr.responseText - }); - }); - - xhr.addEventListener('error', function() { - getTranslations('_locales/en/messages.json'); - }); - - xhr.open('GET', path, true); - xhr.send(); -} - -function browserActionIcon() { - if (browser_icon === 'always') { - chrome.browserAction.setIcon({ - path: 'assets/icons/32.png' - }); - } else { - chrome.browserAction.setIcon({ - path: 'assets/icons/32g.png' - }); - } -} - - -/*-------------------------------------------------------------- -# CONTEXT MENU ITEMS ---------------------------------------------------------------*/ - -chrome.contextMenus.removeAll(); - -chrome.contextMenus.create({ - id: '1111', - title: 'Donate', - contexts: ['browser_action'] -}); - -chrome.contextMenus.create({ - id: '1112', - title: 'Rate me', - contexts: ['browser_action'] -}); - -chrome.contextMenus.create({ - id: '1113', - title: 'GitHub', - contexts: ['browser_action'] -}); - -chrome.contextMenus.onClicked.addListener(function(event) { - if (event.menuItemId === '1111') { - window.open('https://www.improvedtube.com/donate'); - } else if (event.menuItemId === '1112') { - window.open('https://chrome.google.com/webstore/detail/improvedtube-for-youtube/bnomihfieiccainjcjblhegjgglakjdd'); - } else if (event.menuItemId === '1113') { - window.open('https://github.com/ImprovedTube/ImprovedTube'); - } -}); - - -/*-------------------------------------------------------------- -# MESSAGE LISTENER ---------------------------------------------------------------*/ - -chrome.runtime.onMessage.addListener(function(request, sender) { - if (isset(request) && typeof request === 'object') { - if (request.enabled === true && browser_icon !== 'always') { - chrome.browserAction.setIcon({ - path: 'assets/icons/32.png', - tabId: sender.tab.id - }); - } - - if (request.name === 'translation_request') { - getTranslations(request.path); - } - - if (request.name === 'improvedtube-only-one-player') { - chrome.tabs.query({}, function(tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url') && sender.tab.id !== tabs[i].id) { - chrome.tabs.sendMessage(tabs[i].id, { - action: 'improvedtube-pause' - }); - } - } - }); - } - - if (request.name === 'improvedtube-analyzer') { - var data = request.value, - date = new Date().toDateString(), - hours = new Date().getHours() + ':00'; - - chrome.storage.local.get(function(items) { - if (!items.analyzer) { - items.analyzer = {}; - } - - if (!items.analyzer[date]) { - items.analyzer[date] = {}; - } - - if (!items.analyzer[date][hours]) { - items.analyzer[date][hours] = {}; - } - - if (!items.analyzer[date][hours][data]) { - items.analyzer[date][hours][data] = 0; - } - - items.analyzer[date][hours][data]++; - - chrome.storage.local.set({ - analyzer: items.analyzer - }); - }); - } - - if (request.name === 'improvedtube-blacklist') { - chrome.storage.local.get(function(items) { - if (!items.blacklist || typeof items.blacklist !== 'object') { - items.blacklist = {}; - } - - if (request.data.type === 'channel') { - if (!items.blacklist.channels) { - items.blacklist.channels = {}; - } - - items.blacklist.channels[request.data.id] = { - title: request.data.title, - preview: request.data.preview - }; - } - - if (request.data.type === 'video') { - if (!items.blacklist.videos) { - items.blacklist.videos = {}; - } - - items.blacklist.videos[request.data.id] = { - title: request.data.title - }; - } - - chrome.storage.local.set({ - blacklist: items.blacklist - }); - }); - } - - if (request.name === 'improvedtube-watched') { - chrome.storage.local.get(function(items) { - if (!items.watched || typeof items.watched !== 'object') { - items.watched = {}; - } - - if (request.data.action === 'set') { - items.watched[request.data.id] = { - title: request.data.title - }; - } - - if (request.data.action === 'remove') { - delete items.watched[request.data.id]; - } - - chrome.storage.local.set({ - watched: items.watched - }); - }); - } - - if (request.name === 'download') { - chrome.permissions.request({ - permissions: ['downloads'], - origins: ['https://www.youtube.com/*'] - }, function(granted) { - if (granted) { - try { - var blob = new Blob([JSON.stringify(request.value)], { - type: 'application/json;charset=utf-8' - }); - - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: request.filename, - saveAs: true - }); - } catch (err) { - chrome.runtime.sendMessage({ - name: 'dialog-error', - value: err - }); - } - } else { - chrome.runtime.sendMessage({ - name: 'dialog-error', - value: 'permissionIsNotGranted' - }); - } - }); - } - - if (request.name === 'improvedtube-play') { - chrome.tabs.query({}, function(tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - name: 'improvedtube-play', - id: request.id - }); - } - } - }); - } - - if (isset(request.export)) { - chrome.storage.local.get(function(data) { - chrome.permissions.request({ - permissions: ['downloads'], - origins: ['https://www.youtube.com/*'] - }, function(granted) { - if (granted) { - var blob = new Blob([JSON.stringify(data)], { - type: 'application/octet-stream' - }), - date = new Date(); - - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: 'improvedtube_' + (date.getMonth() + 1) + '_' + date.getDate() + '_' + date.getFullYear() + '.txt', - saveAs: true - }); - } - }); - }); - } - } -}); - - -/*-------------------------------------------------------------- -# STORAGE CHANGE LISTENER ---------------------------------------------------------------*/ - -chrome.storage.onChanged.addListener(function(changes) { - if (isset(changes.improvedtube_language)) { - locale_code = changes.improvedtube_language.newValue; - } - - if (isset(changes.improvedtube_browser_icon)) { - browser_icon = changes.improvedtube_browser_icon.newValue; - } - - browserActionIcon(); -}); - - -/*-------------------------------------------------------------- -# TAB FOCUS/BLUR ---------------------------------------------------------------*/ - -chrome.tabs.onActivated.addListener(function(activeInfo) { - chrome.tabs.query({}, function(tabs) { - chrome.tabs.sendMessage(activeInfo.tabId, { - action: 'focus' - }); - - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].id !== activeInfo.tabId) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - action: 'blur' - }); - } - } - } - }); -}); - - -/*-------------------------------------------------------------- -# UNINSTALL URL ---------------------------------------------------------------*/ - -chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); - - -/*-------------------------------------------------------------- -# INITIALIZATION ---------------------------------------------------------------*/ - -chrome.storage.local.get(function(items) { - if (isset(items.improvedtube_language)) { - locale_code = items.improvedtube_language; - } - - if (isset(items.improvedtube_browser_icon)) { - browser_icon = items.improvedtube_browser_icon; - } - - browserActionIcon(); -}); \ No newline at end of file diff --git a/background.js b/background.js index f2be215d4..c076f9d1a 100644 --- a/background.js +++ b/background.js @@ -336,7 +336,7 @@ chrome.tabs.onActivated.addListener(function(activeInfo) { chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); -/*-------------------------------------------------------------- +/**-------------------------------------------------------------- # GOOGLE ANALYTICS --------------------------------------------------------------*/ @@ -355,6 +355,8 @@ var _gaq = _gaq || []; document.body.appendChild(ga); })(); +//** + /*-------------------------------------------------------------- # INITIALIZATION diff --git a/index.html b/index.html index 1066531be..661818358 100644 --- a/index.html +++ b/index.html @@ -4,10 +4,18 @@ ImprovedTube - - + + + diff --git a/locale.py b/locale.py index cae0700ff..60afcf245 100644 --- a/locale.py +++ b/locale.py @@ -1,15 +1,38 @@ -# TODO: reduce script length +#--------------------------------------------------------------- +# >>> TABLE OF CONTENTS: +#--------------------------------------------------------------- +# 1.0 Import modules +# 2.0 Lower camel case +# 3.0 Get list of files +# 4.0 Add item +# 5.0 Remove item +# 6.0 Initialization +#--------------------------------------------------------------- + +#--------------------------------------------------------------- +# 1.0 IMPORT MODULES +#--------------------------------------------------------------- import json import os import pathlib import re + +#--------------------------------------------------------------- +# 2.0 LOWER CAMEL CASE +#--------------------------------------------------------------- + def lowerCamelCase(string): string = re.sub(r"(-|_)+", " ", string).title().replace(" ", "") return string[0].lower() + string[1:] + +#--------------------------------------------------------------- +# 3.0 GET LIST OF FILES +#--------------------------------------------------------------- + def getListOfFiles(dirName): allFiles = list() @@ -27,6 +50,11 @@ def getListOfFiles(dirName): return allFiles + +#--------------------------------------------------------------- +# 4.0 ADD ITEM +#--------------------------------------------------------------- + def addItem(allFiles): message = input("Enter your message: ") @@ -39,9 +67,14 @@ def addItem(allFiles): } json_file.seek(0) - json.dump(data, json_file, indent=4) + json.dump(data, json_file, indent=4, sort_keys=True) json_file.truncate() + +#--------------------------------------------------------------- +# 5.0 REMOVE ITEM +#--------------------------------------------------------------- + def removeItem(allFiles): key = input("Enter your key (lowerCamelCase): ") @@ -53,12 +86,18 @@ def removeItem(allFiles): del data[key] json_file.seek(0) - json.dump(data, json_file, indent=4) + json.dump(data, json_file, indent=4, sort_keys=True) json_file.truncate() -allFiles = getListOfFiles("_locales/") -operation = input("""-------------------------------- +#--------------------------------------------------------------- +# 6.0 INITIALIZATION +#--------------------------------------------------------------- + +allFiles = getListOfFiles("../_locales/") + +operation = input(""" +-------------------------------- Add item: 1 Remove item: 2 -------------------------------- @@ -68,4 +107,4 @@ def removeItem(allFiles): if operation == "1": addItem(allFiles) elif operation == "2" : - removeItem(allFiles) + removeItem(allFiles) \ No newline at end of file diff --git a/manifest-firefox.json b/manifest-firefox.json deleted file mode 100644 index 132b989c2..000000000 --- a/manifest-firefox.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "manifest_version": 2, - "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", - "short_name": "ImprovedTube", - "description": "Make YouTube tidy & powerful! YouTube Player Size Theme Quality Auto HD Colors Playback Speed Style ad block Playlist Channel H.264", - "version": "3.232", - "default_locale": "en", - "icons": { - "128": "assets/icons/128.png", - "16": "assets/icons/16.png", - "32": "assets/icons/32.png", - "48": "assets/icons/48.png" - }, - "background": { - "persistent": false, - "scripts": [ - "background.js" - ] - }, - "browser_action": { - "default_icon": { - "128": "assets/icons/128g.png", - "16": "assets/icons/16g.png", - "32": "assets/icons/32g.png", - "48": "assets/icons/48g.png" - }, - "default_popup": "index.html" - }, - "options_page": "index.html", - "content_scripts": [{ - "all_frames": true, - "css": [ - "content-styles.css" - ], - "exclude_matches": [ - "https://www.youtube.com/improvedtube", - "https://www.youtube.com/tv*", - "https://www.youtube.com/audiolibrary/*", - "http://studio.youtube.com/*" - ], - "js": [ - "youtube-scripts.js", - "content-scripts.js" - ], - "matches": [ - "https://*.youtube.com/*" - ], - "run_at": "document_start" - }, { - "all_frames": true, - "css": [ - "satus.css", - "popup.css" - ], - "js": [ - "satus.js", - "popup.js" - ], - "matches": [ - "https://www.youtube.com/improvedtube" - ], - "run_at": "document_end" - }, { - "all_frames": true, - "js": [ - "page.js" - ], - "matches": [ - "https://www.youtube.com/improvedtube" - ], - "run_at": "document_start" - }], - "offline_enabled": true, - "permissions": [ - "https://*.youtube.com/*", - "contextMenus", - "storage" - ], - "optional_permissions": [ - "downloads" - ] -} diff --git a/manifest.json b/manifest.json index 8c9eaf54c..88433118c 100644 --- a/manifest.json +++ b/manifest.json @@ -2,8 +2,8 @@ "manifest_version": 2, "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", - "description": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist", - "version": "3.232", + "description": "__MSG_description__", + "version": "3.300", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.css b/popup.css index a53ea2085..818397613 100644 --- a/popup.css +++ b/popup.css @@ -1,7 +1,6 @@ /*-------------------------------------------------------------- >>> TABLE OF CONTENTS: ---------------------------------------------------------------- -# Body # Header # Main # Dialog @@ -16,24 +15,10 @@ # Black --------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# BODY ---------------------------------------------------------------*/ - -body { - font-size: 14px; - width: 320px; - height: 532px; - margin: 0; -} - - /*-------------------------------------------------------------- # HEADER --------------------------------------------------------------*/ - /*-------------------------------------------------------------- # BUTTONS --------------------------------------------------------------*/ @@ -114,6 +99,7 @@ body[data-appearance='home'] .satus-text--title { display: none; min-width: 36px; padding: 8px !important; + right: 52px; } .satus-button--close-search::before { @@ -125,11 +111,17 @@ body[data-appearance='home'] .satus-text--title { .search-field { display: none; + flex: 1; + padding-right: 36px; height: 36px; background: var(--satus-theme-main); box-shadow: 0 0 1px 1px rgba(0, 0, 0, .1); } +.search-field:focus { + outline: 4px solid rgba(13,110,253,.25) +} + body[data-search='true'] .search-field, body[data-search='true'] .satus-button--close-search { display: block; @@ -140,7 +132,6 @@ body[data-search='true'] .satus-section--align-start { } body[data-search='true'] .search-button, -body[data-search='true'] .vert-button, body[data-search='true'] .satus-text--title, body[data-search='true'] .satus-button--back { display: none; @@ -166,6 +157,9 @@ body[data-search='true'] .satus-button--back { border-top-right-radius: 0; background-color: var(--satus-theme-main); box-shadow: 0 2px 4px 2px rgba(0, 0, 0, .2); + width: calc(100% - 60px); + left: 8px; + max-width: unset; } .search-results .satus-scrollbar__content { @@ -175,7 +169,13 @@ body[data-search='true'] .satus-button--back { .search-results .satus-section { flex-direction: column; - background: var(--satus-theme-main); + width: calc(100% - 16px); + max-width: 900px; + margin: 8px auto; + padding: 8px 0; + border: 1px solid rgba(0, 0, 0, .1); + border-radius: 8px; + background: var(--satus-theme-section); } .search-results .satus-section>* { @@ -188,6 +188,15 @@ body[data-search='true'] .satus-button--back { text-align: left; } +.search-results .satus-section--label { + font-size: 15px; + font-weight: 500; + display: block; + width: calc(100% - 16px); + max-width: 900px; + margin: 8px auto 0 12px; +} + /*-------------------------------------------------------------- # VERTICAL MENU @@ -261,6 +270,7 @@ html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] padding: 8px 0; border: 1px solid rgba(0, 0, 0, .1); border-radius: 8px; + background: var(--satus-theme-section); } html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-section--message, @@ -317,11 +327,8 @@ html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] # HOME --------------------------------------------------------------*/ -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-section:not(.satus-section--footer) { - width: 100%; +html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-section { margin-top: 16px; - background-color: transparent; - flex-wrap: wrap; } html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder { @@ -1161,6 +1168,7 @@ html[it-improvedtube-home='list'] .satus-section--info { width: 100%; max-width: 768px; height: 100vh; + position: relative; } } diff --git a/popup.js b/popup.js index 32877070b..20fb662cd 100644 --- a/popup.js +++ b/popup.js @@ -24,7 +24,7 @@ # HEADER --------------------------------------------------------------*/ -var Menu = { +var skeleton = { header: { type: 'header', @@ -66,7 +66,7 @@ var Menu = { var value = this.value.trim(); if (value.length > 0) { - satus.search(value, Menu, function (results) { + satus.search(value, skeleton, function (results) { var parent = document.querySelector('.search-results .satus-scrollbar__content'), skeleton = { type: 'dialog', @@ -76,6 +76,12 @@ var Menu = { for (var key in results) { results[key].type = 'section'; + skeleton[key + '_label'] = { + type: 'text', + class: 'satus-section--label', + label: key + }; + skeleton[key] = results[key]; } @@ -199,7 +205,7 @@ window.addEventListener('keypress', function (event) { # ACTIVE FEATURES --------------------------------------------------------------*/ -Menu.header.section_end.button_vert.onClickRender.active_features = { +skeleton.header.section_end.button_vert.onClickRender.active_features = { type: 'folder', before: '', label: 'activeFeatures', @@ -241,7 +247,7 @@ Menu.header.section_end.button_vert.onClickRender.active_features = { } for (var key in storage) { - search(key, Menu) + search(key, skeleton) } setTimeout(function () { @@ -265,7 +271,7 @@ Menu.header.section_end.button_vert.onClickRender.active_features = { # SETTINGS --------------------------------------------------------------*/ -Menu.header.section_end.button_vert.onClickRender.settings = { +skeleton.header.section_end.button_vert.onClickRender.settings = { type: 'folder', before: '', label: 'settings', @@ -329,7 +335,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { translations_section: { type: 'section', onrender: function() { - satus.search('language', Menu, function(result) { + satus.search('language', skeleton, function(result) { var languages = result.language.options; for (var i = 0, l = languages.length; i < l; i++) { @@ -501,7 +507,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { document.querySelector('.satus-header__title').innerText = satus.locale.getMessage('languages'); document.querySelector('#search').placeholder = satus.locale.getMessage('search'); - satus.render(document.querySelector('.satus-main__container'), Menu.main.section.settings.section.languages); + satus.render(document.querySelector('.satus-main__container'), skeleton.main.section.settings.section.languages); }); }, options: [{ @@ -1114,7 +1120,7 @@ Menu.header.section_end.button_vert.onClickRender.settings = { # MIXER --------------------------------------------------------------*/ -Menu.header.section_end.button_vert.onClickRender.mixer = { +skeleton.header.section_end.button_vert.onClickRender.mixer = { type: 'folder', before: '', label: 'mixer', @@ -1234,7 +1240,7 @@ Menu.header.section_end.button_vert.onClickRender.mixer = { # MAIN --------------------------------------------------------------*/ -Menu.main = { +skeleton.main = { type: 'main', appearanceId: 'home', on: { @@ -1302,7 +1308,7 @@ Menu.main = { # GENERAL --------------------------------------------------------------*/ -Menu.main.section.general = { +skeleton.main.section.general = { type: 'folder', before: '', label: 'general', @@ -1412,7 +1418,7 @@ Menu.main.section.general = { # APPEARANCE --------------------------------------------------------------*/ -Menu.main.section.appearance = { +skeleton.main.section.appearance = { type: 'folder', before: '', label: 'appearance', @@ -1789,7 +1795,7 @@ Menu.main.section.appearance = { # THEMES --------------------------------------------------------------*/ -Menu.main.section.themes = { +skeleton.main.section.themes = { type: 'folder', before: '', label: 'themes', @@ -2139,7 +2145,7 @@ Menu.main.section.themes = { # PLAYER --------------------------------------------------------------*/ -Menu.main.section.player = { +skeleton.main.section.player = { type: 'folder', before: '', label: 'player', @@ -2432,7 +2438,7 @@ Menu.main.section.player = { # PLAYLIST --------------------------------------------------------------*/ -Menu.main.section.playlist = { +skeleton.main.section.playlist = { type: 'folder', before: '', label: 'playlist', @@ -2477,7 +2483,7 @@ Menu.main.section.playlist = { # CHANNEL --------------------------------------------------------------*/ -Menu.main.section.channel = { +skeleton.main.section.channel = { type: 'folder', before: '', label: 'channel', @@ -2518,7 +2524,7 @@ Menu.main.section.channel = { # SHORTCUTS --------------------------------------------------------------*/ -Menu.main.section.shortcuts = { +skeleton.main.section.shortcuts = { type: 'folder', before: '', label: 'shortcuts', @@ -2765,7 +2771,7 @@ Menu.main.section.shortcuts = { # BLACKLIST --------------------------------------------------------------*/ -Menu.main.section.blacklist = { +skeleton.main.section.blacklist = { type: 'folder', before: '', label: 'blacklist', @@ -2932,7 +2938,7 @@ Menu.main.section.blacklist = { # ANALYZER --------------------------------------------------------------*/ -Menu.main.section.analyzer = { +skeleton.main.section.analyzer = { type: 'folder', before: '', label: 'analyzer', @@ -3253,23 +3259,36 @@ function themeChange(event) { } } +function updateAttributes() { + var whitelist = { + 'improvedtube-home': true + }, + items = satus.storage; + + for (var key in items) { + var attribute = key.replace(/_/g, '-'); + + if (whitelist.hasOwnProperty(attribute)) { + document.documentElement.setAttribute('it-' + attribute, items[key]); + } + } +} + satus.storage.import(function (items) { + updateAttributes(); + satus.locale.import(satus.storage.get('language'), function () { - satus.modules.updateStorageKeys(Menu, function () { + satus.modules.updateStorageKeys(skeleton, function () { if (location.href.indexOf('action=import') !== -1) { importData(); } else if (location.href.indexOf('action=export') !== -1) { exportData(); } else { - satus.render(Menu, document.body); + satus.render(skeleton, document.body); } }); }); - for (var key in satus.storage) { - document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), items[key]); - } - if (satus.isset(satus.storage.get('red_popup_theme')) === false || satus.storage.get('red_popup_theme') === true) { document.documentElement.setAttribute('popup-theme', 'red'); } diff --git a/py/build.py b/py/build.py new file mode 100644 index 000000000..308fe66e4 --- /dev/null +++ b/py/build.py @@ -0,0 +1,231 @@ +#--------------------------------------------------------------- +# >>> TABLE OF CONTENTS: +#--------------------------------------------------------------- +# 1.0 Import modules +# 2.0 Chromium +# 2.1 Beta +# 2.2 Stable +# 3.0 Firefox +# 4.0 Initialization +#--------------------------------------------------------------- + +#--------------------------------------------------------------- +# 1.0 IMPORT MODULES +#--------------------------------------------------------------- + +import shutil +import json +import os +import pathlib +import re +import zipfile + + +#--------------------------------------------------------------- +# 2.0 CHROMIUM +#--------------------------------------------------------------- + +#--------------------------------------------------------------- +# 2.1 BETA +#--------------------------------------------------------------- + +def chromiumBeta(): + temporary_path = '../cached' + + if (os.path.isdir(temporary_path)): + shutil.rmtree(temporary_path, ignore_errors=True) + + os.mkdir(temporary_path) + os.chdir(temporary_path) + + for item in os.listdir('../'): + if ( + item != '.git' and + item != '.github' and + item != 'cached' and + item != 'previews' and + item != 'py' and + item != 'wiki' and + item != 'LICENSE' and + item != 'README.md' and + item != 'SECURITY.md' and + item.find('.zip') == -1 + ): + s = os.path.join('../', item) + d = os.path.join(temporary_path, item) + if os.path.isdir(s): + shutil.copytree(s, d, True, None) + else: + shutil.copy2(s, d) + + with open('manifest.json', 'r+') as json_file: + data = json.load(json_file) + + version = data['version'] + + data['name'] = 'ImprovedTube (testing)'; + + json_file.seek(0) + json.dump(data, json_file, indent=4, sort_keys=True) + json_file.truncate() + + archive = zipfile.ZipFile('../chromium-' + version + '.zip', 'w', zipfile.ZIP_DEFLATED) + + for root, dirs, files in os.walk('.'): + for file in files: + archive.write(os.path.join(root, file), + os.path.relpath(os.path.join(root, file), + os.path.join('.', '.'))) + + archive.close() + shutil.rmtree(temporary_path) + + +#--------------------------------------------------------------- +# 2.2 STABLE +#--------------------------------------------------------------- + +def chromiumStable(): + temporary_path = '../cached' + + if (os.path.isdir(temporary_path)): + shutil.rmtree(temporary_path, ignore_errors=True) + + os.mkdir(temporary_path) + os.chdir(temporary_path) + + for item in os.listdir('../'): + if ( + item != '.git' and + item != '.github' and + item != 'cached' and + item != 'previews' and + item != 'py' and + item != 'wiki' and + item != 'LICENSE' and + item != 'README.md' and + item != 'SECURITY.md' and + item.find('.zip') == -1 + ): + s = os.path.join('../', item) + d = os.path.join(temporary_path, item) + if os.path.isdir(s): + shutil.copytree(s, d, True, None) + else: + shutil.copy2(s, d) + + with open('manifest.json', 'r+') as json_file: + data = json.load(json_file) + + version = data['version'] + + json_file.seek(0) + json.dump(data, json_file, indent=4, sort_keys=True) + json_file.truncate() + + archive = zipfile.ZipFile('../chromium-' + version + '.zip', 'w', zipfile.ZIP_DEFLATED) + + for root, dirs, files in os.walk('.'): + for file in files: + archive.write(os.path.join(root, file), + os.path.relpath(os.path.join(root, file), + os.path.join('.', '.'))) + + archive.close() + shutil.rmtree(temporary_path) + + +#--------------------------------------------------------------- +# 3.0 FIREFOX +#--------------------------------------------------------------- + +def firefox(): + temporary_path = '../cached' + + if (os.path.isdir(temporary_path)): + shutil.rmtree(temporary_path, ignore_errors=True) + + os.mkdir(temporary_path) + os.chdir(temporary_path) + + for item in os.listdir('../'): + if ( + item != '.git' and + item != '.github' and + item != 'cached' and + item != 'previews' and + item != 'py' and + item != 'wiki' and + item != 'LICENSE' and + item != 'README.md' and + item != 'SECURITY.md' and + item.find('.zip') == -1 + ): + s = os.path.join('../', item) + d = os.path.join(temporary_path, item) + if os.path.isdir(s): + shutil.copytree(s, d, True, None) + else: + shutil.copy2(s, d) + + with open('background.js', 'r') as file: + lines = file.readlines() + + with open('background.js', 'w') as file: + skip = False + + for pos, line in enumerate(lines): + if (line.find('/**') != -1): + skip = True + + if (skip == False): + file.write(line) + + if (line.find('//**') != -1): + skip = False + + with open('manifest.json', 'r+') as json_file: + data = json.load(json_file) + + version = data['version'] + + del data['content_security_policy'] + del data['update_url'] + + json_file.seek(0) + json.dump(data, json_file, indent=4, sort_keys=True) + json_file.truncate() + + archive = zipfile.ZipFile('../firefox-' + version + '.zip', 'w', zipfile.ZIP_DEFLATED) + + for root, dirs, files in os.walk('.'): + for file in files: + archive.write(os.path.join(root, file), + os.path.relpath(os.path.join(root, file), + os.path.join('.', '.'))) + + archive.close() + shutil.rmtree(temporary_path) + + + + +#--------------------------------------------------------------- +# 4.0 INITIALIZATION +#--------------------------------------------------------------- + +operation = input(""" +-------------------------------- +1 - Chromium (beta) +2 - Chromium (stable) +3 - Firefox +-------------------------------- + +Enter number: """) + +if operation == "1": + chromiumBeta() +elif operation == "2" : + chromiumStable() +elif operation == "3" : + firefox() \ No newline at end of file diff --git a/satus.css b/satus.css index 9c5a20d9a..e33dd7ddc 100644 --- a/satus.css +++ b/satus.css @@ -275,17 +275,15 @@ body { display: flex; box-sizing: border-box; width: 100%; - min-height: 58px; + height: 58px; padding: 0 8px; color: var(--satus-theme-header-text); background-color: var(--satus-theme-header); box-shadow: 0 0 3px rgba(0, 0, 0, .1); - fill: var(--satus-theme-header-text); } .satus-header .satus-text--title { font-size: 15px; - font-weight: 400; } @@ -318,18 +316,14 @@ body { .satus-main { position: relative; overflow: hidden; - width: 100%; - height: 100%; color: var(--satus-theme-main-text); background-color: var(--satus-theme-main); - fill: var(--satus-theme-main-text); } .satus-main__container { position: absolute; top: 0; left: 0; - overflow: auto; box-sizing: border-box; width: 100%; height: 100%; @@ -453,9 +447,9 @@ body { .satus-section { display: inline-flex; box-sizing: border-box; - background-color: var(--satus-theme-section); align-items: center; flex: 1; + flex-wrap: wrap; } From a363142bb22982608ddfae63ef9d75a5d6f20bbb Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 9 May 2021 22:20:05 +0300 Subject: [PATCH 0133/1224] Moved locale.py --- locale.py | 110 ------------------------------------------------------ 1 file changed, 110 deletions(-) delete mode 100644 locale.py diff --git a/locale.py b/locale.py deleted file mode 100644 index 60afcf245..000000000 --- a/locale.py +++ /dev/null @@ -1,110 +0,0 @@ -#--------------------------------------------------------------- -# >>> TABLE OF CONTENTS: -#--------------------------------------------------------------- -# 1.0 Import modules -# 2.0 Lower camel case -# 3.0 Get list of files -# 4.0 Add item -# 5.0 Remove item -# 6.0 Initialization -#--------------------------------------------------------------- - -#--------------------------------------------------------------- -# 1.0 IMPORT MODULES -#--------------------------------------------------------------- - -import json -import os -import pathlib -import re - - -#--------------------------------------------------------------- -# 2.0 LOWER CAMEL CASE -#--------------------------------------------------------------- - -def lowerCamelCase(string): - string = re.sub(r"(-|_)+", " ", string).title().replace(" ", "") - - return string[0].lower() + string[1:] - - -#--------------------------------------------------------------- -# 3.0 GET LIST OF FILES -#--------------------------------------------------------------- - -def getListOfFiles(dirName): - allFiles = list() - - for entry in os.listdir(dirName): - fullPath = os.path.join(dirName, entry) - - if not os.path.isdir(fullPath): - allFiles.append(fullPath) - - for entry in os.listdir(dirName): - fullPath = os.path.join(dirName, entry) - - if os.path.isdir(fullPath): - allFiles = allFiles + getListOfFiles(fullPath) - - return allFiles - - -#--------------------------------------------------------------- -# 4.0 ADD ITEM -#--------------------------------------------------------------- - -def addItem(allFiles): - message = input("Enter your message: ") - - for keyFile in allFiles: - with open(keyFile, "r+") as json_file: - data = json.load(json_file) - - data[lowerCamelCase(message)] = { - "message": message - } - - json_file.seek(0) - json.dump(data, json_file, indent=4, sort_keys=True) - json_file.truncate() - - -#--------------------------------------------------------------- -# 5.0 REMOVE ITEM -#--------------------------------------------------------------- - -def removeItem(allFiles): - key = input("Enter your key (lowerCamelCase): ") - - for keyFile in allFiles: - with open(keyFile, "r+") as json_file: - data = json.load(json_file) - - if data[key]: - del data[key] - - json_file.seek(0) - json.dump(data, json_file, indent=4, sort_keys=True) - json_file.truncate() - - -#--------------------------------------------------------------- -# 6.0 INITIALIZATION -#--------------------------------------------------------------- - -allFiles = getListOfFiles("../_locales/") - -operation = input(""" --------------------------------- -Add item: 1 -Remove item: 2 --------------------------------- - -Enter number: """) - -if operation == "1": - addItem(allFiles) -elif operation == "2" : - removeItem(allFiles) \ No newline at end of file From 55566eb86e1c41286c8ab20ab2ec494c1fda8b48 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 9 May 2021 22:20:28 +0300 Subject: [PATCH 0134/1224] Moved locale.py --- py/locale.py | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 py/locale.py diff --git a/py/locale.py b/py/locale.py new file mode 100644 index 000000000..60afcf245 --- /dev/null +++ b/py/locale.py @@ -0,0 +1,110 @@ +#--------------------------------------------------------------- +# >>> TABLE OF CONTENTS: +#--------------------------------------------------------------- +# 1.0 Import modules +# 2.0 Lower camel case +# 3.0 Get list of files +# 4.0 Add item +# 5.0 Remove item +# 6.0 Initialization +#--------------------------------------------------------------- + +#--------------------------------------------------------------- +# 1.0 IMPORT MODULES +#--------------------------------------------------------------- + +import json +import os +import pathlib +import re + + +#--------------------------------------------------------------- +# 2.0 LOWER CAMEL CASE +#--------------------------------------------------------------- + +def lowerCamelCase(string): + string = re.sub(r"(-|_)+", " ", string).title().replace(" ", "") + + return string[0].lower() + string[1:] + + +#--------------------------------------------------------------- +# 3.0 GET LIST OF FILES +#--------------------------------------------------------------- + +def getListOfFiles(dirName): + allFiles = list() + + for entry in os.listdir(dirName): + fullPath = os.path.join(dirName, entry) + + if not os.path.isdir(fullPath): + allFiles.append(fullPath) + + for entry in os.listdir(dirName): + fullPath = os.path.join(dirName, entry) + + if os.path.isdir(fullPath): + allFiles = allFiles + getListOfFiles(fullPath) + + return allFiles + + +#--------------------------------------------------------------- +# 4.0 ADD ITEM +#--------------------------------------------------------------- + +def addItem(allFiles): + message = input("Enter your message: ") + + for keyFile in allFiles: + with open(keyFile, "r+") as json_file: + data = json.load(json_file) + + data[lowerCamelCase(message)] = { + "message": message + } + + json_file.seek(0) + json.dump(data, json_file, indent=4, sort_keys=True) + json_file.truncate() + + +#--------------------------------------------------------------- +# 5.0 REMOVE ITEM +#--------------------------------------------------------------- + +def removeItem(allFiles): + key = input("Enter your key (lowerCamelCase): ") + + for keyFile in allFiles: + with open(keyFile, "r+") as json_file: + data = json.load(json_file) + + if data[key]: + del data[key] + + json_file.seek(0) + json.dump(data, json_file, indent=4, sort_keys=True) + json_file.truncate() + + +#--------------------------------------------------------------- +# 6.0 INITIALIZATION +#--------------------------------------------------------------- + +allFiles = getListOfFiles("../_locales/") + +operation = input(""" +-------------------------------- +Add item: 1 +Remove item: 2 +-------------------------------- + +Enter number: """) + +if operation == "1": + addItem(allFiles) +elif operation == "2" : + removeItem(allFiles) \ No newline at end of file From f5541aaaea8ea4ee1a97a6415d411fad5144068c Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 9 May 2021 22:42:53 +0300 Subject: [PATCH 0135/1224] Fixed locales --- _locales/ar/messages.json | 540 +++++++++++++++++------------------ _locales/bn/messages.json | 534 +++++++++++++++++----------------- _locales/de/messages.json | 100 +++---- _locales/el/messages.json | 488 +++++++++++++++---------------- _locales/en/messages.json | 12 +- _locales/es/messages.json | 136 ++++----- _locales/fr/messages.json | 210 +++++++------- _locales/hin/messages.json | 534 +++++++++++++++++----------------- _locales/hr/messages.json | 210 +++++++------- _locales/id/messages.json | 12 +- _locales/it/messages.json | 54 ++-- _locales/ja/messages.json | 518 ++++++++++++++++----------------- _locales/ko/messages.json | 536 +++++++++++++++++----------------- _locales/nb_NO/messages.json | 108 +++---- _locales/nl/messages.json | 18 +- _locales/no/messages.json | 102 +++---- _locales/pl/messages.json | 238 +++++++-------- _locales/pt_BR/messages.json | 194 ++++++------- _locales/pt_PT/messages.json | 186 ++++++------ _locales/ro/messages.json | 244 ++++++++-------- _locales/ru/messages.json | 512 ++++++++++++++++----------------- _locales/sk/messages.json | 398 +++++++++++++------------- _locales/tr/messages.json | 318 ++++++++++----------- _locales/zh_CN/messages.json | 532 +++++++++++++++++----------------- _locales/zh_TW/messages.json | 526 +++++++++++++++++----------------- py/locale.py | 28 +- 26 files changed, 3653 insertions(+), 3635 deletions(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index b47acadaf..ceefa49cf 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -1,815 +1,815 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { - "message": "\u062d\u0648\u0644" + "message": "حول" }, "accept": { - "message": "\u0642\u0628\u0648\u0644" + "message": "قبول" }, "activate": { - "message": "\u062a\u0641\u0639\u064a\u0644" + "message": "تفعيل" }, "activateCaptions": { - "message": "\u062a\u0641\u0639\u064a\u0644 \u0627\u0644\u062a\u0631\u062c\u0645\u0629" + "message": "تفعيل الترجمة" }, "activateFullscreen": { - "message": "\u062a\u0641\u0639\u064a\u0644 \u0645\u0644\u0621 \u0627\u0644\u0634\u0627\u0634\u0629" + "message": "تفعيل ملء الشاشة" }, "activated": { - "message": "\u0645\u0641\u0639\u0644" + "message": "مفعل" }, "activatedFeatures": { - "message": "\u0627\u0644\u0645\u064a\u0632\u0627\u062a \u0627\u0644\u0645\u0641\u0639\u0644\u0629" + "message": "الميزات المفعلة" }, "activeFeatures": { - "message": "\u0627\u0644\u0645\u064a\u0632\u0627\u062a \u0627\u0644\u0646\u0634\u0637\u0629" + "message": "الميزات النشطة" }, "addScrollToTop": { - "message": "\u0622\u0636\u0641 \u0627\u0644\u0635\u0639\u0648\u062f \u0644\u0623\u0639\u0644\u0649" + "message": "آضف الصعود لأعلى" }, "ads": { - "message": "\u0627\u0644\u0627\u0639\u0644\u0627\u0646\u0627\u062a" + "message": "الاعلانات" }, "all": { - "message": "\u0627\u0644\u0643\u0644" + "message": "الكل" }, "allow": { - "message": "\u0633\u0645\u0627\u062d" + "message": "سماح" }, "allow60fps": { - "message": "\u0627\u0644\u0633\u0645\u0627\u062d \u0644\u064060\u0625\u0637\u0627\u0631" + "message": "السماح لـ60إطار" }, "alwaysActive": { - "message": "\u062f\u0627\u0626\u0645\u0627 \u0646\u0634\u0637" + "message": "دائما نشط" }, "alwaysShowProgressBar": { - "message": "\u0625\u0638\u0647\u0627\u0631 \u0634\u0631\u064a\u0637 \u0627\u0644\u062a\u0642\u062f\u0645 \u062f\u0627\u0626\u0645\u064b\u0627" + "message": "إظهار شريط التقدم دائمًا" }, "amber": { - "message": "\u0627\u0644\u0639\u0646\u0628\u0631" + "message": "العنبر" }, "analyzer": { - "message": "\u0627\u0644\u0645\u062d\u0644\u0644" + "message": "المحلل" }, "appearance": { - "message": "\u0627\u0644\u0645\u0638\u0647\u0631 \u0627\u0644\u0639\u0627\u0645" + "message": "المظهر العام" }, "audio": { - "message": "\u0627\u0644\u0635\u0648\u062a" + "message": "الصوت" }, "audioFormats": { - "message": "\u062a\u0646\u0633\u064a\u0642\u0627\u062a \u0627\u0644\u0635\u0648\u062a" + "message": "تنسيقات الصوت" }, "auto": { - "message": "\u062a\u0644\u0642\u0627\u0626\u064a" + "message": "تلقائي" }, "autoFullscreen": { - "message": "\u0645\u0644\u0621 \u062a\u0644\u0642\u0627\u0626\u064a \u0644\u0644\u0634\u0627\u0634\u0629" + "message": "ملء تلقائي للشاشة" }, "autopauseWhenSwitchingTabs": { - "message": "\u0625\u064a\u0642\u0627\u0641 \u062a\u0644\u0642\u0627\u0626\u064a \u0639\u0646\u062f \u0627\u0644\u062a\u0628\u062f\u064a\u0644 \u0628\u064a\u0646 \u0627\u0644\u062a\u0628\u0648\u064a\u0628\u0627\u062a" + "message": "إيقاف تلقائي عند التبديل بين التبويبات" }, "autoplay": { - "message": "\u062a\u0634\u063a\u064a\u0644 \u062a\u0644\u0642\u0627\u0626\u064a" + "message": "تشغيل تلقائي" }, "backupAndReset": { - "message": "\u0625\u0639\u0627\u062f\u0629 \u062a\u0639\u064a\u064a\u0646 \u0648\u0627\u0644\u0646\u0633\u062e \u0627\u0644\u0627\u062d\u062a\u064a\u0627\u0637\u064a" + "message": "إعادة تعيين والنسخ الاحتياطي" }, "baseOnSystemColorScheme": { - "message": "\u064a\u0646\u0627\u0621 \u0639\u0644\u0649 \u0623\u0644\u0648\u0627\u0646 \u0627\u0644\u0646\u0638\u0627\u0645" + "message": "يناء على ألوان النظام" }, "belowPlayer": { - "message": "\u0627\u0633\u0641\u0644 \u0627\u0644\u0645\u0634\u063a\u0644" + "message": "اسفل المشغل" }, "black": { - "message": "\u0627\u0633\u0648\u062f" + "message": "اسود" }, "blacklist": { - "message": "\u0627\u0644\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0633\u0648\u062f\u0627\u0621" + "message": "القائمة السوداء" }, "blockAll": { - "message": "\u062d\u0638\u0631 \u0627\u0644\u0643\u0644" + "message": "حظر الكل" }, "blue": { - "message": "\u0627\u0632\u0631\u0642" + "message": "ازرق" }, "blueGray": { - "message": "\u0627\u0632\u0631\u0642 \u0631\u0645\u0627\u062f\u064a" + "message": "ازرق رمادي" }, "bluelight": { - "message": "\u0627\u0644\u0636\u0648\u0621 \u0627\u0644\u0623\u0632\u0631\u0642" + "message": "الضوء الأزرق" }, "brown": { - "message": "\u0628\u0646\u0649" + "message": "بنى" }, "browser": { - "message": "\u0627\u0644\u0645\u062a\u0635\u0641\u062d" + "message": "المتصفح" }, "browserVersion": { - "message": "\u0625\u0635\u062f\u0627\u0631 \u0627\u0644\u0645\u062a\u0635\u0641\u062d" + "message": "إصدار المتصفح" }, "bubbles": { - "message": "\u0641\u0642\u0627\u0639\u0627\u062a" + "message": "فقاعات" }, "bug": { - "message": "\u062e\u0644\u0644 \u0628\u0631\u0645\u062c\u064a" + "message": "خلل برمجي" }, "buttons": { - "message": "\u0623\u0632\u0631\u0627\u0631" + "message": "أزرار" }, "cancel": { - "message": "\u0625\u0644\u063a\u0627\u0621" + "message": "إلغاء" }, "categories": { - "message": "\u0627\u0644\u062a\u0635\u0646\u064a\u0641\u0627\u062a" + "message": "التصنيفات" }, "channel": { - "message": "\u0642\u0646\u0627\u0629" + "message": "قناة" }, "channels": { - "message": "\u0627\u0644\u0642\u0646\u0648\u0627\u062a" + "message": "القنوات" }, "clipboard": { - "message": "\u0627\u0644\u062d\u0627\u0641\u0638\u0629" + "message": "الحافظة" }, "codecH264": { - "message": "h.\u0627\u0644\u062a\u0631\u0645\u064a\u0632 264" + "message": "h.الترميز 264" }, "collapseOfSubscriptionSections": { - "message": "\u0636\u063a\u0637 \u0642\u0633\u0645 \u0627\u0644\u0627\u0634\u062a\u0631\u0627\u0643\u0627\u062a" + "message": "ضغط قسم الاشتراكات" }, "collapsed": { - "message": "\u0636\u063a\u0637" + "message": "ضغط" }, "comments": { - "message": "\u0627\u0644\u062a\u0639\u0644\u064a\u0642\u0627\u062a" + "message": "التعليقات" }, "confirmationBeforeClosing": { - "message": "\u0627\u0644\u062a\u0623\u0643\u064a\u062f \u0642\u0628\u0644 \u0627\u0644\u0625\u063a\u0644\u0627\u0642" + "message": "التأكيد قبل الإغلاق" }, "cookies": { - "message": "\u0645\u0644\u0641\u0627\u062a \u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0627\u0631\u062a\u0628\u0627\u0637" + "message": "ملفات تعريف الارتباط" }, "cores": { - "message": "\u0627\u0644\u0646\u0648\u0627\u0647" + "message": "النواه" }, "cropChapterTitles": { - "message": "\u0627\u0642\u062a\u0637\u0627\u0639 \u0639\u0646\u0627\u0648\u064a\u0646 \u0627\u0644\u0641\u0635\u0648\u0644" + "message": "اقتطاع عناوين الفصول" }, "customCss": { - "message": "\u0645\u062e\u0635\u0635 CSS" + "message": "مخصص CSS" }, "customJs": { - "message": "\u0645\u062e\u0635\u0635 JS" + "message": "مخصص JS" }, "customMiniPlayer": { - "message": "\u0627\u0644\u0645\u0634\u063a\u0644 \u0627\u0644\u0635\u063a\u064a\u0631 \u0627\u0644\u0645\u062e\u0635\u0635" + "message": "المشغل الصغير المخصص" }, "cyan": { - "message": "\u0627\u0632\u0631\u0642 \u0633\u0645\u0627\u0648\u064a" + "message": "ازرق سماوي" }, "dark": { - "message": "\u062f\u0627\u0643\u0646" + "message": "داكن" }, "darkTheme": { - "message": "\u0645\u0638\u0647\u0631 \u062f\u0627\u0643\u0646" + "message": "مظهر داكن" }, "dateAndTime": { - "message": "\u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0648\u0627\u0644\u0648\u0642\u062a" + "message": "التاريخ والوقت" }, "dawn": { - "message": "\u0641\u062c\u0631" + "message": "فجر" }, "decreasePlaybackSpeed": { - "message": "\u062a\u0642\u0644\u064a\u0644 \u0633\u0631\u0639\u0629 \u0627\u0644\u062a\u0634\u063a\u064a\u0644" + "message": "تقليل سرعة التشغيل" }, "decreaseVolume5": { - "message": "5% \u062e\u0641\u0636 \u0627\u0644\u0635\u0648\u062a" + "message": "5% خفض الصوت" }, "deepOrange": { - "message": "\u0628\u0631\u062a\u0642\u0627\u0644\u064a \u062f\u0627\u0643\u0646" + "message": "برتقالي داكن" }, "deepPurple": { - "message": "\u0623\u0631\u062c\u0648\u0627\u0646\u064a \u062f\u0627\u0643\u0646" + "message": "أرجواني داكن" }, "defaultChannelTab": { - "message": "\u0639\u0644\u0627\u0645\u0629 \u062a\u0628\u0648\u064a\u0628 \u0627\u0644\u0642\u0646\u0627\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629" + "message": "علامة تبويب القناة الافتراضية" }, "deleteYoutubeCookies": { - "message": "\u062d\u0630\u0641 \u0645\u0644\u0641\u0627\u062a \u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0627\u0631\u062a\u0628\u0627\u0637 \u0645\u0646 \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628" + "message": "حذف ملفات تعريف الارتباط من اليوتيوب" }, "description": { - "message": "\u0627\u0644\u0648\u0635\u0641" + "message": "الوصف" }, "desert": { - "message": "\u0635\u062d\u0631\u0627\u0621" + "message": "صحراء" }, "details": { - "message": "\u0627\u0644\u062a\u0641\u0627\u0635\u064a\u0644" + "message": "التفاصيل" }, "developerOptions": { - "message": "\u062e\u064a\u0627\u0631\u0627\u062a \u0627\u0644\u0645\u0637\u0648\u0631" + "message": "خيارات المطور" }, "device": { - "message": "\u0627\u0644\u062c\u0647\u0627\u0632" + "message": "الجهاز" }, "dim": { - "message": "\u062f\u0627\u0643\u0646" + "message": "داكن" }, "disabled": { - "message": "\u0645\u0639\u0637\u0644" + "message": "معطل" }, "dislike": { - "message": "\u0644\u0645 \u064a\u0639\u062c\u0628\u0646\u0649" + "message": "لم يعجبنى" }, "doNotChange": { - "message": "\u0627\u0644\u0625\u0641\u062a\u0631\u0627\u0636\u064a" + "message": "الإفتراضي" }, "donate": { - "message": "\u062a\u0628\u0631\u0639" + "message": "تبرع" }, "draggable": { - "message": "\u0642\u0627\u0628\u0644 \u0644\u0644\u0633\u062d\u0628" + "message": "قابل للسحب" }, "email": { - "message": "\u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a" + "message": "البريد الإلكتروني" }, "empty": { - "message": "\u0641\u0627\u0631\u063a\u0629" + "message": "فارغة" }, "enabled": { - "message": "\u0645\u0645\u0643\u0651\u0646" + "message": "ممكّن" }, "enabledForced": { - "message": "\u0645\u0645\u0643\u0651\u0646 (\u0625\u062c\u0628\u0627\u0631\u064a)" + "message": "ممكّن (إجباري)" }, "expanded": { - "message": "\u0645\u0648\u0633\u0639" + "message": "موسع" }, "exportSettings": { - "message": "\u062a\u0635\u062f\u064a\u0631 \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a" + "message": "تصدير الإعدادات" }, "extension": { - "message": "\u0627\u0644\u0625\u0636\u0627\u0641\u0629" + "message": "الإضافة" }, "file": { - "message": "\u0645\u0644\u0641" + "message": "ملف" }, "filters": { - "message": "\u0645\u0631\u0634\u062d\u0627\u062a" + "message": "مرشحات" }, "fitToWindow": { - "message": "\u0645\u0646\u0627\u0633\u0628 \u0644\u0644\u0646\u0627\u0641\u0630\u0629" + "message": "مناسب للنافذة" }, "flash": { - "message": "\u0641\u0644\u0627\u0634" + "message": "فلاش" }, "font": { - "message": "\u0627\u0644\u062e\u0637" + "message": "الخط" }, "footer": { - "message": "\u0627\u0644\u062d\u0632\u0621 \u0627\u0644\u0633\u0641\u0644\u064a" + "message": "الحزء السفلي" }, "forceSDR": { - "message": "SDR \u0641\u0631\u0636" + "message": "SDR فرض" }, "forcedPlaybackSpeed": { - "message": "\u062a\u062b\u0628\u064a\u062a \u0633\u0631\u0639\u0629 \u0627\u0644\u062a\u0634\u063a\u064a\u0644" + "message": "تثبيت سرعة التشغيل" }, "forcedTheaterMode": { - "message": "\u0641\u0631\u0636 \u0648\u0636\u0639 \u0627\u0644\u0645\u0633\u0631\u062d" + "message": "فرض وضع المسرح" }, "forcedVolume": { - "message": "\u062a\u062b\u0628\u064a\u062a \u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u0635\u0648\u062a" + "message": "تثبيت مستوى الصوت" }, "foundABug": { - "message": "\u0648\u062c\u062f\u062a \u062e\u0637\u0623\u061f" + "message": "وجدت خطأ؟" }, "fullWindow": { - "message": "\u0646\u0627\u0641\u0630\u0629 \u0643\u0627\u0645\u0644\u0629" + "message": "نافذة كاملة" }, "general": { - "message": "\u0639\u0627\u0645" + "message": "عام" }, "github": { - "message": "\u062c\u064a\u062a\u0647\u0628" + "message": "جيتهب" }, "goToSearchBox": { - "message": "\u0627\u0646\u062a\u0642\u0644 \u0625\u0644\u0649 \u0645\u0631\u0628\u0639 \u0627\u0644\u0628\u062d\u062b" + "message": "انتقل إلى مربع البحث" }, "gpu": { - "message": "\u0643\u0631\u062a \u0627\u0644\u0634\u0627\u0634\u0629" + "message": "كرت الشاشة" }, "green": { - "message": "\u0623\u062e\u0636\u0631" + "message": "أخضر" }, "hdThumbnail": { - "message": "\u0635\u0648\u0631\u0629 \u0645\u0635\u063a\u0631\u0629 \u0639\u0627\u0644\u064a\u0629 \u0627\u0644\u062f\u0642\u0629" + "message": "صورة مصغرة عالية الدقة" }, "hdThumbnails": { - "message": "\u0635\u0648\u0631 \u0645\u0635\u063a\u0631\u0629 \u0639\u0627\u0644\u064a\u0629 \u0627\u0644\u062f\u0642\u0629" + "message": "صور مصغرة عالية الدقة" }, "header": { - "message": "\u0627\u0644\u062c\u0632\u0621 \u0627\u0644\u0639\u0644\u0648\u064a" + "message": "الجزء العلوي" }, "hidden": { - "message": "\u0645\u062e\u0641\u064a" + "message": "مخفي" }, "hiddenOnVideoPage": { - "message": "\u0645\u062e\u0641\u064a \u0639\u0644\u0649 \u0635\u0641\u062d\u0629 \u0627\u0644\u0641\u064a\u062f\u064a\u0648" + "message": "مخفي على صفحة الفيديو" }, "hideAnimatedThumbnails": { - "message": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0635\u0648\u0631 \u0627\u0644\u0645\u0635\u063a\u0631\u0629 \u0627\u0644\u0645\u062a\u062d\u0631\u0643\u0629" + "message": "إخفاء الصور المصغرة المتحركة" }, "hideAnnotations": { - "message": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u062a\u0639\u0644\u064a\u0642\u0627\u062a \u0627\u0644\u062a\u0648\u0636\u064a\u062d\u064a\u0629" + "message": "إخفاء التعليقات التوضيحية" }, "hideCards": { - "message": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0628\u0637\u0627\u0642\u0627\u062a" + "message": "إخفاء البطاقات" }, "hideDetails": { - "message": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u062a\u0641\u0627\u0635\u064a\u0644" + "message": "إخفاء التفاصيل" }, "hideEndscreen": { - "message": "\u0625\u062e\u0641\u0627\u0621 \u0634\u0627\u0634\u0629 \u0627\u0644\u0646\u0647\u0627\u064a\u0629" + "message": "إخفاء شاشة النهاية" }, "hideFeaturedContent": { - "message": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0627\u0644\u0645\u0645\u064a\u0632" + "message": "إخفاء المحتوى المميز" }, "hideFooter": { - "message": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u062c\u0632\u0621 \u0627\u0644\u0633\u0641\u0644\u064a" + "message": "إخفاء الجزء السفلي" }, "hideGradientBottom": { - "message": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u062a\u062f\u0631\u062c \u0627\u0644\u0623\u0633\u0648\u062f \u0627\u0644\u0633\u0641\u0644\u064a" + "message": "إخفاء التدرج الأسود السفلي" }, "hidePlaylist": { - "message": "\u0625\u062e\u0641\u0627\u0621 \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u062a\u0634\u063a\u064a\u0644" + "message": "إخفاء قائمة التشغيل" }, "hideRightButtons": { - "message": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0623\u0632\u0631\u0627\u0631 \u0627\u0644\u064a\u0633\u0631\u0649" + "message": "إخفاء الأزرار اليسرى" }, "hideScrollForDetails": { - "message": "\u00ab\u0625\u062e\u0641\u0627\u0621 \u00ab\u0627\u0644\u062a\u0645\u0631\u064a\u0631 \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0627\u0644\u062a\u0641\u0627\u0635\u064a\u0644" + "message": "«إخفاء «التمرير للحصول على التفاصيل" }, "hideViewsCount": { - "message": "\u0625\u062e\u0641\u0627\u0621 \u0639\u062f\u062f \u0627\u0644\u0645\u0634\u0627\u0647\u062f\u0627\u062a" + "message": "إخفاء عدد المشاهدات" }, "history": { - "message": "\u0627\u0644\u0633\u062c\u0644\u0651" + "message": "السجلّ" }, "home": { - "message": "\u0627\u0644\u0635\u0641\u062d\u0629 \u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0629" + "message": "الصفحة الرئيسية" }, "hover": { - "message": "\u062a\u0645\u0631\u064a\u0631" + "message": "تمرير" }, "hoverOnVideoPage": { - "message": "\u062a\u0645\u0631\u064a\u0631 \u0641\u0648\u0642 \u0635\u0641\u062d\u0629 \u0627\u0644\u0641\u064a\u062f\u064a\u0648" + "message": "تمرير فوق صفحة الفيديو" }, "howLongAgoTheVideoWasUploaded": { - "message": "\u0645\u0646\u0630 \u0645\u062a\u0649 \u062a\u0645 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0641\u064a\u062f\u064a\u0648" + "message": "منذ متى تم تحميل الفيديو" }, "icons": { - "message": "\u0623\u064a\u0642\u0648\u0646\u0627\u062a" + "message": "أيقونات" }, "iconsOnly": { - "message": "\u0623\u064a\u0642\u0648\u0646\u0627\u062a \u0641\u0642\u0637" + "message": "أيقونات فقط" }, "importSettings": { - "message": "\u0627\u0633\u062a\u064a\u0631\u0627\u062f \u0627\u0644\u0627\u0639\u062f\u0627\u062f\u0627\u062a" + "message": "استيراد الاعدادات" }, "improveLogo": { - "message": "\u062a\u062d\u0633\u064a\u0646 \u0627\u0644\u0634\u0639\u0627\u0631" + "message": "تحسين الشعار" }, "improvedtubeIconInBrowser": { - "message": "\u0641\u064a \u0627\u0644\u0645\u062a\u0635\u0641\u062d ImprovedTube \u0627\u064a\u0642\u0648\u0646\u0629" + "message": "في المتصفح ImprovedTube ايقونة" }, "improvedtubeIconOnYoutube": { - "message": "\u0641\u064a \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628 ImprovedTube \u0627\u064a\u0642\u0648\u0646\u0629" + "message": "في اليوتيوب ImprovedTube ايقونة" }, "improvedtubeLanguage": { - "message": "ImprovedTube \u0644\u063a\u0629" + "message": "ImprovedTube لغة" }, "improvedtubeVersion": { - "message": "ImprovedTube \u0627\u0635\u062f\u0627\u0631" + "message": "ImprovedTube اصدار" }, "increasePlaybackSpeed": { - "message": "\u0632\u064a\u0627\u062f\u0629 \u0633\u0631\u0639\u0629 \u0627\u0644\u062a\u0634\u063a\u064a\u0644" + "message": "زيادة سرعة التشغيل" }, "increaseVolume5": { - "message": "5% \u0632\u064a\u0627\u062f\u0629 \u0627\u0644\u0635\u0648\u062a" + "message": "5% زيادة الصوت" }, "indigo": { - "message": "\u0646\u064a\u0644\u064a" + "message": "نيلي" }, "items": { - "message": "\u0627\u0644\u0639\u0646\u0627\u0635\u0631" + "message": "العناصر" }, "languages": { - "message": "\u0627\u0644\u0644\u063a\u0627\u062a" + "message": "اللغات" }, "legacyYoutube": { - "message": "\u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628 \u0627\u0644\u0642\u062f\u064a\u0645" + "message": "اليوتيوب القديم" }, "light": { - "message": "\u0636\u0648\u0621" + "message": "ضوء" }, "lightBlue": { - "message": "\u0623\u0632\u0631\u0642 \u0641\u0627\u062a\u062d" + "message": "أزرق فاتح" }, "lightGreen": { - "message": "\u0627\u062e\u0636\u0631 \u0641\u0627\u062a\u062d" + "message": "اخضر فاتح" }, "like": { - "message": "\u0627\u0639\u062d\u0628\u0646\u064a" + "message": "اعحبني" }, "likes": { - "message": "\u0627\u0644\u0625\u0639\u062c\u0627\u0628\u0627\u062a" + "message": "الإعجابات" }, "lime": { - "message": "\u062c\u064a\u0631" + "message": "جير" }, "list": { - "message": "\u0642\u0627\u0626\u0645\u0629" + "message": "قائمة" }, "liveChat": { - "message": "\u0645\u062d\u0627\u062f\u062b\u0629 \u0645\u0628\u0627\u0634\u0631\u0629" + "message": "محادثة مباشرة" }, "liveChatType": { - "message": "\u0646\u0648\u0639 \u0627\u0644\u0645\u062d\u0627\u062f\u062b\u0629 \u0645\u0628\u0627\u0634\u0631\u0629" + "message": "نوع المحادثة مباشرة" }, "loudnessNormalization": { - "message": "\u062a\u0637\u0628\u064a\u0639 \u0627\u0644\u0625\u0632\u0639\u0627\u062c" + "message": "تطبيع الإزعاج" }, "markWatchedVideos": { - "message": "\u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0639\u0644\u0649 \u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0627\u0644\u0645\u0634\u0627\u0647\u062f" + "message": "التعليم على الفيديو المشاهد" }, "mixer": { - "message": "\u0645\u0647\u0646\u062f\u0633 \u0627\u0644\u0635\u0648\u062a" + "message": "مهندس الصوت" }, "myColors": { - "message": "\u0623\u0644\u0648\u0627\u0646\u064a" + "message": "ألواني" }, "name": { - "message": "\u0627\u0644\u0627\u0633\u0645" + "message": "الاسم" }, "nativeMiniPlayer": { - "message": "\u0627\u0644\u0645\u0634\u063a\u0644 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a \u0627\u0644\u0635\u063a\u064a\u0631" + "message": "المشغل الافتراضي الصغير" }, "new": { - "message": "\u062c\u062f\u064a\u062f" + "message": "جديد" }, "nextVideo": { - "message": "\u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0627\u0644\u062a\u0627\u0644\u064a" + "message": "الفيديو التالي" }, "night": { - "message": "\u0644\u064a\u0644" + "message": "ليل" }, "noActiveFeatures": { - "message": "\u0644\u0627 \u064a\u0648\u062c\u062f \u0645\u064a\u0632\u0627\u062a \u0646\u0634\u0637\u0629" + "message": "لا يوجد ميزات نشطة" }, "noOpenVideoTabs": { - "message": "\u0644\u0627 \u062a\u0648\u062c\u062f \u0639\u0644\u0627\u0645\u0627\u062a \u062a\u0628\u0648\u064a\u0628 \u0641\u064a\u062f\u064a\u0648 \u0645\u0641\u062a\u0648\u062d\u0629" + "message": "لا توجد علامات تبويب فيديو مفتوحة" }, "none": { - "message": "\u0644\u0627\u0634\u064a\u0621" + "message": "لاشيء" }, "normal": { - "message": "\u0639\u0627\u062f\u064a" + "message": "عادي" }, "old": { - "message": "\u0642\u062f\u064a\u0645" + "message": "قديم" }, "onAllVideos": { - "message": "\u0639\u0644\u0649 \u062c\u0645\u064a\u0639 \u0645\u0642\u0627\u0637\u0639 \u0627\u0644\u0641\u064a\u062f\u064a\u0648" + "message": "على جميع مقاطع الفيديو" }, "onSubscribedChannels": { - "message": "\u0639\u0644\u0649 \u0627\u0644\u0642\u0646\u0648\u0627\u062a \u0627\u0644\u0645\u0634\u062a\u0631\u0643\u0629" + "message": "على القنوات المشتركة" }, "onlyActiveOnYoutube": { - "message": "\u0646\u0634\u0637 \u0641\u0642\u0637 \u0639\u0644\u0649 \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628" + "message": "نشط فقط على اليوتيوب" }, "onlyOnePlayerInstancePlaying": { - "message": "\u062a\u0634\u063a\u064a\u0644 \u0645\u0634\u063a\u0644 \u0648\u0627\u062d\u062f \u0641\u0642\u0637" + "message": "تشغيل مشغل واحد فقط" }, "orange": { - "message": "\u0628\u0631\u062a\u0642\u0627\u0644\u064a" + "message": "برتقالي" }, "os": { - "message": "\u0646\u0638\u0627\u0645 \u0627\u0644\u062a\u0634\u063a\u064a\u0644" + "message": "نظام التشغيل" }, "other": { - "message": "\u0622\u062e\u0631" + "message": "آخر" }, "permissions": { - "message": "\u0627\u0644\u0623\u0630\u0648\u0646\u0627\u062a" + "message": "الأذونات" }, "pictureInPicture": { - "message": "\u0641\u064a\u062f\u064a\u0648 \u0639\u0627\u0626\u0645" + "message": "فيديو عائم" }, "pink": { - "message": "\u0632\u0647\u0631\u064a" + "message": "زهري" }, "plain": { - "message": "\u0639\u0627\u062f\u064a" + "message": "عادي" }, "platform": { - "message": "\u0627\u0644\u0645\u0646\u0635\u0629" + "message": "المنصة" }, "playPause": { - "message": "\u062a\u0634\u063a\u064a\u0644 / \u0627\u064a\u0642\u0627\u0641" + "message": "تشغيل / ايقاف" }, "playbackSpeed": { - "message": "\u0633\u0631\u0639\u0629 \u0627\u0644\u062a\u0634\u063a\u064a\u0644" + "message": "سرعة التشغيل" }, "player": { - "message": "\u0627\u0644\u0645\u0634\u063a\u0644" + "message": "المشغل" }, "playerColor": { - "message": "\u0644\u0648\u0646 \u0627\u0644\u0645\u0634\u063a\u0644" + "message": "لون المشغل" }, "playerSize": { - "message": "\u062d\u062c\u0645 \u0627\u0644\u0645\u0634\u063a\u0644" + "message": "حجم المشغل" }, "playlist": { - "message": "\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u062a\u0634\u063a\u064a\u0644" + "message": "قائمة التشغيل" }, "playlists": { - "message": "\u0642\u0648\u0627\u0626\u0645 \u0627\u0644\u062a\u0634\u063a\u064a\u0644" + "message": "قوائم التشغيل" }, "popupPlayer": { - "message": "\u0645\u0634\u0641\u0644 \u0645\u0646\u0628\u062b\u0642" + "message": "مشفل منبثق" }, "position": { - "message": "\u0627\u0644\u062a\u0645\u0648\u0636\u0639" + "message": "التموضع" }, "pressAnyKeyOrScroll": { - "message": ".\u0627\u0636\u063a\u0637 \u0639\u0644\u0649 \u0623\u064a \u0645\u0641\u062a\u0627\u062d \u0623\u0648 \u0627\u0633\u062a\u062e\u062f\u0645 \u0639\u062c\u0644\u0629 \u0627\u0644\u0645\u0627\u0648\u0633" + "message": ".اضغط على أي مفتاح أو استخدم عجلة الماوس" }, "pressAnyKeyOrUseMouseWheel": { - "message": "\u0627\u0636\u063a\u0637 \u0639\u0644\u0649 \u0623\u064a \u0645\u0641\u062a\u0627\u062d \u0623\u0648 \u0627\u0633\u062a\u062e\u062f\u0645 \u0639\u062c\u0644\u0629 \u0627\u0644\u0645\u0627\u0648\u0633" + "message": "اضغط على أي مفتاح أو استخدم عجلة الماوس" }, "previousVideo": { - "message": "\u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0627\u0644\u0633\u0627\u0628\u0642" + "message": "الفيديو السابق" }, "primaryColor": { - "message": "\u0627\u0644\u0644\u0648\u0646 \u0627\u0644\u0623\u0635\u0644\u064a" + "message": "اللون الأصلي" }, "purple": { - "message": "\u0623\u0631\u062c\u0648\u0627\u0646\u064a" + "message": "أرجواني" }, "quality": { - "message": "\u0627\u0644\u062c\u0648\u062f\u0629" + "message": "الجودة" }, "ram": { - "message": "\u0627\u0644\u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u0639\u0634\u0648\u0627\u0626\u064a\u0629" + "message": "الذاكرة العشوائية" }, "rateUs": { - "message": "\u0642\u064a\u0645\u0646\u0627" + "message": "قيمنا" }, "red": { - "message": "\u0627\u062d\u0645\u0631" + "message": "احمر" }, "redDislikeButton": { - "message": "\u0625\u0638\u0647\u0627\u0631 \u0632\u0631 \u0644\u0645 \u064a\u0639\u062c\u0628\u0646\u064a \u0628\u0627\u0644\u0644\u0648\u0646 \u0627\u0644\u0623\u062d\u0645\u0631" + "message": "إظهار زر لم يعجبني باللون الأحمر" }, "relatedVideos": { - "message": "\u0641\u064a\u062f\u064a\u0648\u0647\u0627\u062a \u0630\u0627\u062a \u0639\u0644\u0627\u0642\u0629" + "message": "فيديوهات ذات علاقة" }, "removeRelatedSearchResults": { - "message": "\u0625\u0632\u0627\u0644\u0629 \u0639\u0645\u0644\u064a\u0627\u062a \u0628\u062d\u062b \u0645\u0631\u062a\u0628\u0637\u0629 \u0628\u0640" + "message": "إزالة عمليات بحث مرتبطة بـ" }, "repeat": { - "message": "\u062a\u0643\u0631\u0627\u0631" + "message": "تكرار" }, "reset": { - "message": "\u0625\u0639\u0627\u062f\u0629 \u062a\u0639\u064a\u064a\u0646" + "message": "إعادة تعيين" }, "resetAllSettings": { - "message": "\u0625\u0639\u0627\u062f\u0629 \u062a\u0639\u064a\u064a\u0646 \u0643\u0627\u0641\u0629 \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a" + "message": "إعادة تعيين كافة الإعدادات" }, "resetAllShortcuts": { - "message": "\u0625\u0639\u0627\u062f\u0629 \u062a\u0639\u064a\u064a\u0646 \u062c\u0645\u064a\u0639 \u0627\u0644\u0627\u062e\u062a\u0635\u0627\u0631\u0627\u062a" + "message": "إعادة تعيين جميع الاختصارات" }, "reverse": { - "message": "\u0639\u0643\u0633" + "message": "عكس" }, "rotate": { - "message": "\u0627\u0633\u062a\u062f\u0627\u0631\u0629" + "message": "استدارة" }, "save": { - "message": "\u062d\u0641\u0638" + "message": "حفظ" }, "saveAs": { - "message": "\u062d\u0641\u0638 \u0628\u0627\u0633\u0645" + "message": "حفظ باسم" }, "schedule": { - "message": "\u062c\u062f\u0648\u0644\u0647" + "message": "جدوله" }, "screen": { - "message": "\u0627\u0644\u0634\u0627\u0634\u0629" + "message": "الشاشة" }, "screenshot": { - "message": "\u0644\u0642\u0637\u0629 \u0634\u0627\u0634\u0629" + "message": "لقطة شاشة" }, "search": { - "message": "\u0628\u062d\u062b" + "message": "بحث" }, "searchBarOnly": { - "message": "\u0634\u0631\u064a\u0637 \u0627\u0644\u0628\u062d\u062b \u0641\u0642\u0637" + "message": "شريط البحث فقط" }, "seekBackward10Seconds": { - "message": "\u0625\u0631\u062c\u0627\u0639 \u0628\u0645\u0642\u062f\u0627\u0631 10 \u062b\u0648\u0627\u0646\u064d" + "message": "إرجاع بمقدار 10 ثوانٍ" }, "seekForward10Seconds": { - "message": "\u062a\u0642\u062f\u064a\u0645 10 \u062b\u0648\u0627\u0646\u064d \u0625\u0644\u0649 \u0627\u0644\u0623\u0645\u0627\u0645" + "message": "تقديم 10 ثوانٍ إلى الأمام" }, "settings": { - "message": "\u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a" + "message": "الإعدادات" }, "settingsSuccessfullyImported": { - "message": "\u062a\u0645 \u0627\u0633\u062a\u064a\u0631\u0627\u062f \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0628\u0646\u062c\u0627\u062d" + "message": "تم استيراد الإعدادات بنجاح" }, "shortcuts": { - "message": "\u0627\u062e\u062a\u0635\u0627\u0631\u0627\u062a" + "message": "اختصارات" }, "showCardsOnMouseHover": { - "message": "\u0639\u0631\u0636 \u0627\u0644\u0628\u0637\u0627\u0642\u0627\u062a \u0639\u0646\u062f \u062a\u0645\u0631\u064a\u0631 \u0627\u0644\u0645\u0627\u0648\u0633" + "message": "عرض البطاقات عند تمرير الماوس" }, "showChannelVideosCount": { - "message": "\u0625\u0638\u0647\u0627\u0631 \u0639\u062f\u062f \u0645\u0642\u0627\u0637\u0639 \u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0644\u0644\u0642\u0646\u0627\u0629" + "message": "إظهار عدد مقاطع الفيديو للقناة" }, "shuffle": { - "message": "\u0639\u0634\u0648\u0627\u0626\u064a" + "message": "عشوائي" }, "sidebar": { - "message": "\u0627\u0644\u0634\u0631\u064a\u0637 \u0627\u0644\u062c\u0627\u0646\u0628\u064a" + "message": "الشريط الجانبي" }, "spacebar": { - "message": "\u0645\u0641\u062a\u0627\u062d \u0627\u0644\u0645\u0633\u0627\u0641\u0629" + "message": "مفتاح المسافة" }, "squaredUserImages": { - "message": "\u0635\u0648\u0631 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0645\u0631\u0628\u0639\u0629" + "message": "صور المستخدمين مربعة" }, "static": { - "message": "\u062b\u0627\u0628\u062a" + "message": "ثابت" }, "statsForNerds": { - "message": "\u0639\u0631\u0636 \u0627\u0644\u0625\u062d\u0635\u0627\u0621\u0627\u062a \u0627\u0644\u0645\u0641\u0635\u0644\u0629" + "message": "عرض الإحصاءات المفصلة" }, "step": { - "message": "\u062e\u0637\u0648\u0629" + "message": "خطوة" }, "stop": { - "message": "\u0627\u064a\u0642\u0627\u0641" + "message": "ايقاف" }, "style": { - "message": "\u0646\u0645\u0637" + "message": "نمط" }, "styles": { - "message": "\u0627\u0644\u0623\u0646\u0645\u0627\u0637" + "message": "الأنماط" }, "subscriptions": { - "message": "\u0627\u0644\u0627\u0634\u062a\u0631\u0627\u0643\u0627\u062a" + "message": "الاشتراكات" }, "subtitles": { - "message": "\u0627\u0644\u062a\u0631\u062c\u0645\u0627\u062a" + "message": "الترجمات" }, "sunset": { - "message": "\u063a\u0631\u0648\u0628 \u0627\u0644\u0634\u0645\u0633" + "message": "غروب الشمس" }, "sunsetToSunrise": { - "message": "\u0645\u0646 \u063a\u0631\u0648\u0628 \u0627\u0644\u0634\u0645\u0633 \u0625\u0644\u0649 \u0634\u0631\u0648\u0642\u0647\u0627" + "message": "من غروب الشمس إلى شروقها" }, "systemPeferenceDark": { - "message": "\u062a\u0641\u0636\u064a\u0644 \u0627\u0644\u0646\u0638\u0627\u0645: \u062f\u0627\u0643\u0646" + "message": "تفضيل النظام: داكن" }, "systemPeferenceLight": { - "message": "\u062a\u0641\u0636\u064a\u0644 \u0627\u0644\u0646\u0638\u0627\u0645: \u0641\u0627\u062a\u062d" + "message": "تفضيل النظام: فاتح" }, "teal": { - "message": "\u0623\u0632\u0631\u0642 \u0645\u062e\u0636\u0631" + "message": "أزرق مخضر" }, "textColor": { - "message": "\u0644\u0648\u0646 \u0627\u0644\u0646\u0635" + "message": "لون النص" }, "themes": { - "message": "\u0627\u0644\u0645\u0638\u0627\u0647\u0631" + "message": "المظاهر" }, "thisWillRemoveAllCookies": { - "message": ".\u0633\u064a\u0624\u062f\u064a \u0647\u0630\u0627 \u0625\u0644\u0649 \u0625\u0632\u0627\u0644\u0629 \u0643\u0627\u0641\u0629 \u0645\u0644\u0641\u0627\u062a \u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0627\u0631\u062a\u0628\u0627\u0637" + "message": ".سيؤدي هذا إلى إزالة كافة ملفات تعريف الارتباط" }, "thisWillRemoveAllYouTubeCookies": { - "message": "\u0633\u064a\u0624\u062f\u064a \u0647\u0630\u0627 \u0625\u0644\u0649 \u0625\u0632\u0627\u0644\u0629 \u062c\u0645\u064a\u0639 \u0645\u0644\u0641\u0627\u062a \u062a\u0639\u0631\u064a\u0641 \u0627\u0631\u062a\u0628\u0627\u0637 \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628" + "message": "سيؤدي هذا إلى إزالة جميع ملفات تعريف ارتباط اليوتيوب" }, "thisWillResetAllSettings": { - "message": ".\u0633\u064a\u0624\u062f\u064a \u0647\u0630\u0627 \u0625\u0644\u0649 \u0625\u0639\u0627\u062f\u0629 \u062a\u0639\u064a\u064a\u0646 \u062c\u0645\u064a\u0639 \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a" + "message": ".سيؤدي هذا إلى إعادة تعيين جميع الإعدادات" }, "thisWillResetAllShortcuts": { - "message": "\u0633\u064a\u0624\u062f\u064a \u0647\u0630\u0627 \u0625\u0644\u0649 \u0625\u0639\u0627\u062f\u0629 \u062a\u0639\u064a\u064a\u0646 \u062c\u0645\u064a\u0639 \u0627\u0644\u0627\u062e\u062a\u0635\u0627\u0631\u0627\u062a" + "message": "سيؤدي هذا إلى إعادة تعيين جميع الاختصارات" }, "thumbnails": { - "message": "\u0627\u0644\u0635\u0648\u0631 \u0627\u0644\u0645\u0635\u063a\u0631\u0629" + "message": "الصور المصغرة" }, "timeFrom": { - "message": "\u0627\u0644\u0648\u0642\u062a \u0645\u0646" + "message": "الوقت من" }, "timeTo": { - "message": "\u0648\u0642\u062a \u0644" + "message": "وقت ل" }, "todayAt": { - "message": "\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629" + "message": "اليوم عند الساعة" }, "toggleCards": { - "message": "\u062a\u0628\u062f\u064a\u0644 \u0648\u0636\u0639 \u0627\u0644\u0628\u0637\u0627\u0642\u0627\u062a" + "message": "تبديل وضع البطاقات" }, "topChat": { - "message": "\u0631\u0633\u0627\u0626\u0644 \u0627\u0644\u0645\u062d\u0627\u062f\u062b\u0629 \u0627\u0644\u0647\u0627\u0645\u0651\u0629" + "message": "رسائل المحادثة الهامّة" }, "trailerAutoplay": { - "message": "\u0627\u0644\u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u062a\u0644\u0642\u0627\u0626\u064a \u0644\u0644\u0641\u064a\u062f\u064a\u0648 \u0627\u0644\u062f\u0639\u0627\u0626\u064a" + "message": "التشغيل التلقائي للفيديو الدعائي" }, "translations": { - "message": "\u0627\u0644\u062a\u0631\u062c\u0645\u0627\u062a" + "message": "الترجمات" }, "transparentBackground": { - "message": "\u062e\u0644\u0641\u064a\u0629 \u0634\u0641\u0627\u0641\u0629" + "message": "خلفية شفافة" }, "trending": { - "message": "\u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0627\u0644\u0631\u0627\u0626\u062c" + "message": "المحتوى الرائج" }, "tryToReloadThePage": { - "message": "\u062d\u0627\u0648\u0644 \u0625\u0639\u0627\u062f\u0629 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0635\u0641\u062d\u0629" + "message": "حاول إعادة تحميل الصفحة" }, "type": { - "message": "\u0627\u0644\u0646\u0648\u0639" + "message": "النوع" }, "upNextAutoplay": { - "message": "\u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u062a\u0627\u0644\u064a \u062a\u0644\u0642\u0627\u0626\u064a\u0627" + "message": "تشغيل التالي تلقائيا" }, "use24HourFormat": { - "message": "\u0627\u0633\u062a\u062e\u062f\u0645 \u062a\u0646\u0633\u064a\u0642 24 \u0633\u0627\u0639\u0629" + "message": "استخدم تنسيق 24 ساعة" }, "version": { - "message": "\u0627\u0644\u0625\u0635\u062f\u0627\u0631" + "message": "الإصدار" }, "video": { - "message": "\u0627\u0644\u0641\u064a\u062f\u064a\u0648" + "message": "الفيديو" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "\u0633\u064a\u062a\u0645 \u062a\u0648\u0633\u064a\u0639 \u0648\u0635\u0641 \u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0627\u0633\u0645 \u0627\u0644\u0641\u0626\u0629" + "message": "سيتم توسيع وصف الفيديو للحصول على اسم الفئة" }, "videoFormats": { - "message": "\u062a\u0646\u0633\u064a\u0642\u0627\u062a \u0627\u0644\u0641\u064a\u062f\u064a\u0648" + "message": "تنسيقات الفيديو" }, "videos": { - "message": "\u0627\u0644\u0641\u064a\u062f\u064a\u0648\u0647\u0627\u062a" + "message": "الفيديوهات" }, "volume": { - "message": "\u0627\u0644\u0635\u0648\u062a" + "message": "الصوت" }, "watchLater": { - "message": "\u0627\u0644\u0645\u0634\u0627\u0647\u062f\u0629 \u0644\u0627\u062d\u0642\u0627" + "message": "المشاهدة لاحقا" }, "watchTime": { - "message": "\u0648\u0642\u062a \u0627\u0644\u0645\u0634\u0627\u0647\u062f\u0629" + "message": "وقت المشاهدة" }, "whenTabIsChanged": { - "message": "\u0639\u0646\u062f\u0645\u0627 \u064a\u062a\u0645 \u062a\u063a\u064a\u064a\u0631 \u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u062a\u0628\u0648\u064a\u0628" + "message": "عندما يتم تغيير علامة التبويب" }, "white": { - "message": "\u0623\u0628\u064a\u0636" + "message": "أبيض" }, "yellow": { - "message": "\u0623\u0635\u0641\u0631" + "message": "أصفر" }, "youtubeHeaderLeft": { - "message": "\u062c\u0632\u0621 \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628 \u0627\u0644\u0639\u0644\u0648\u064a (\u064a\u0633\u0627\u0631) " + "message": "جزء اليوتيوب العلوي (يسار) " }, "youtubeHeaderRight": { - "message": "\u062c\u0632\u0621 \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628 \u0627\u0644\u0639\u0644\u0648\u064a (\u064a\u0645\u064a\u0646)" + "message": "جزء اليوتيوب العلوي (يمين)" }, "youtubeHomePage": { - "message": "\u0635\u0641\u062d\u0629 \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628 \u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0629" + "message": "صفحة اليوتيوب الرئيسية" }, "youtubeLanguage": { - "message": "\u0644\u063a\u0629 \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628" + "message": "لغة اليوتيوب" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "h.264 \u064a\u062d\u062f \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628 \u0645\u0646 \u062c\u0648\u062f\u0629 \u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0627\u0644\u0649 \u0661\u0660\u0668\u0660 \u0644\u0640 \u0627\u0644\u062a\u0631\u0645\u064a\u0632" + "message": "h.264 يحد اليوتيوب من جودة الفيديو الى ١٠٨٠ لـ الترميز" } } \ No newline at end of file diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 4ecaf197b..f68271dd2 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -1,815 +1,815 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { - "message": "\u09b8\u09ae\u09cd\u09aa\u09b0\u09cd\u0995\u09bf\u09a4" + "message": "সম্পর্কিত" }, "accept": { - "message": "\u0997\u09cd\u09b0\u09b9\u09a3 \u0995\u09b0\u09c1\u09a8" + "message": "গ্রহণ করুন" }, "activate": { - "message": "\u09b8\u0995\u09cd\u09b0\u09bf\u09af\u09bc \u0995\u09b0\u09c1\u09a8" + "message": "সক্রিয় করুন" }, "activateCaptions": { - "message": "\u0995\u09cd\u09af\u09be\u09aa\u09b6\u09a8 \u09b8\u0995\u09cd\u09b0\u09bf\u09af\u09bc \u0995\u09b0\u09c1\u09a8" + "message": "ক্যাপশন সক্রিয় করুন" }, "activateFullscreen": { - "message": "\u09aa\u09c2\u09b0\u09cd\u09a3 \u09aa\u09b0\u09cd\u09a6\u09be \u09b8\u0995\u09cd\u09b0\u09bf\u09af\u09bc \u0995\u09b0\u09c1\u09a8" + "message": "পূর্ণ পর্দা সক্রিয় করুন" }, "activated": { - "message": "\u09b8\u0995\u09cd\u09b0\u09bf\u09af\u09bc" + "message": "সক্রিয়" }, "activatedFeatures": { - "message": "\u09ac\u09c8\u09b6\u09bf\u09b7\u09cd\u099f\u09cd\u09af \u09b8\u0995\u09cd\u09b0\u09bf\u09af\u09bc \u0995\u09b0\u09c1\u09a8" + "message": "বৈশিষ্ট্য সক্রিয় করুন" }, "activeFeatures": { - "message": "\u09b8\u0995\u09cd\u09b0\u09bf\u09af\u09bc \u09ac\u09c8\u09b6\u09bf\u09b7\u09cd" + "message": "সক্রিয় বৈশিষ্" }, "addScrollToTop": { - "message": "\u00ab\u0989\u09aa\u09b0\u09c7 \u09af\u09be\u09ac\u09be\u09b0 \u09ac\u09be\u099f\u09a8\u00bb \u09af\u09cb\u0997 \u0995\u09b0\u09c1\u09a8" + "message": "«উপরে যাবার বাটন» যোগ করুন" }, "ads": { - "message": "\u09ac\u09bf\u099c\u09cd\u099e\u09be\u09aa\u09a8" + "message": "বিজ্ঞাপন" }, "all": { - "message": "\u09b8\u09ac" + "message": "সব" }, "allow": { - "message": "\u0985\u09a8\u09c1\u09ae\u09a4\u09bf \u09a6\u09bf\u09a8" + "message": "অনুমতি দিন" }, "allow60fps": { - "message": "60 \u09ab\u09cd\u09b0\u09c7\u09ae \u09aa\u09cd\u09b0\u09a4\u09bf \u09b8\u09c7\u0995\u09c7\u09a8\u09cd \u0985\u09a8\u09c1\u09ae\u09a4\u09bf \u09a6\u09bf\u09a8\u09a1" + "message": "60 ফ্রেম প্রতি সেকেন্ অনুমতি দিনড" }, "alwaysActive": { - "message": "\u09b8\u09b0\u09cd\u09ac\u09a6\u09be \u09b8\u0995\u09cd\u09b0\u09bf\u09af\u09bc" + "message": "সর্বদা সক্রিয়" }, "alwaysShowProgressBar": { - "message": "\u09b8\u09b0\u09cd\u09ac\u09a6\u09be \u0985\u0997\u09cd\u09b0\u0997\u09a4\u09bf \u09ac\u09be\u09b0 \u09aa\u09cd\u09b0\u09a6\u09b0\u09cd\u09b6\u09a8 \u0995\u09b0\u09c1\u09a8" + "message": "সর্বদা অগ্রগতি বার প্রদর্শন করুন" }, "amber": { - "message": "\u0985\u09cd\u09af\u09be\u09ae\u09cd\u09ac\u09be\u09b0" + "message": "অ্যাম্বার" }, "analyzer": { - "message": "\u09ac\u09bf\u09b6\u09cd\u09b2\u09c7\u09b7\u0995" + "message": "বিশ্লেষক" }, "appearance": { - "message": "\u0989\u09aa\u09b8\u09cd\u09a5\u09bf\u09a4\u09bf" + "message": "উপস্থিতি" }, "audio": { - "message": "\u09b6\u09cd\u09b0\u09c1\u09a4\u09bf" + "message": "শ্রুতি" }, "audioFormats": { - "message": "\u09b6\u09cd\u09b0\u09c1\u09a4\u09bf \u09ab\u09b0\u09cd\u09ae\u09cd\u09af\u09be\u099f" + "message": "শ্রুতি ফর্ম্যাট" }, "auto": { - "message": "\u0985\u099f\u09cb" + "message": "অটো" }, "autoFullscreen": { - "message": "\u09b8\u09cd\u09ac\u09a4\u0983 \u09aa\u09c2\u09b0\u09cd\u09a3\u09b8\u09cd\u0995\u09cd\u09b0\u09c0\u09a8" + "message": "স্বতঃ পূর্ণস্ক্রীন" }, "autopauseWhenSwitchingTabs": { - "message": "\u099f\u09cd\u09af\u09be\u09ac\u0997\u09c1\u09b2\u09bf \u09b8\u09cd\u09af\u09c1\u0987\u099a \u0995\u09b0\u09be\u09b0 \u09b8\u09ae\u09af\u09bc \u0985\u099f\u09cb \u09ac\u09bf\u09b0\u09be\u09ae \u09a6\u09bf\u09a8" + "message": "ট্যাবগুলি স্যুইচ করার সময় অটো বিরাম দিন" }, "autoplay": { - "message": "\u09b8\u09cd\u09ac\u09af\u09bc\u0982\u0995\u09cd\u09b0\u09bf\u09af\u09bc \u099a\u09be\u09b2\u09c1" + "message": "স্বয়ংক্রিয় চালু" }, "backupAndReset": { - "message": "\u09ac\u09cd\u09af\u09be\u0995\u0986\u09aa \u098f\u09ac\u0982 \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u099f \u0995\u09b0\u09c1\u09a8" + "message": "ব্যাকআপ এবং পুনরায় সেট করুন" }, "baseOnSystemColorScheme": { - "message": "\u09b8\u09bf\u09b8\u09cd\u099f\u09c7\u09ae \u09b0\u0999\u09c7\u09b0 \u09b8\u09cd\u0995\u09bf\u09ae\u09c7\u09b0 \u09ad\u09bf\u09a4\u09cd\u09a4\u09bf\u09a4\u09c7" + "message": "সিস্টেম রঙের স্কিমের ভিত্তিতে" }, "belowPlayer": { - "message": "\u09aa\u09cd\u09b2\u09c7\u09af\u09bc\u09be\u09b0\u09c7\u09b0 \u09a8\u09bf\u099a\u09c7" + "message": "প্লেয়ারের নিচে" }, "black": { - "message": "\u0995\u09be\u09b2\u09cb" + "message": "কালো" }, "blacklist": { - "message": "\u0995\u09be\u09b2\u09cb \u09a4\u09be\u09b2\u09bf\u0995\u09be" + "message": "কালো তালিকা" }, "blockAll": { - "message": "\u09b8\u09ac\u09be\u0987\u0995\u09c7 \u09ac\u09cd\u09b2\u0995" + "message": "সবাইকে ব্লক" }, "blue": { - "message": "\u09a8\u09c0\u09b2" + "message": "নীল" }, "blueGray": { - "message": "\u09a8\u09c0\u09b2 \u09a7\u09c2\u09b8\u09b0" + "message": "নীল ধূসর" }, "bluelight": { - "message": "\u09a8\u09c0\u09b2 \u0986\u09b2\u09cb" + "message": "নীল আলো" }, "brown": { - "message": "\u09ac\u09be\u09a6\u09be\u09ae\u09c0" + "message": "বাদামী" }, "browser": { - "message": "\u09ac\u09cd\u09b0\u09be\u0989\u099c\u09be\u09b0" + "message": "ব্রাউজার" }, "browserVersion": { - "message": "\u09ac\u09cd\u09b0\u09be\u0989\u099c\u09be\u09b0 \u09ae\u09be\u09b0\u099c\u09be\u09a8" + "message": "ব্রাউজার মারজান" }, "bubbles": { - "message": "\u09ac\u09c1\u09b2\u09ac\u09c1\u09b2\u09be" + "message": "বুলবুলা" }, "bug": { - "message": "\u09ac\u09be\u0997" + "message": "বাগ" }, "buttons": { - "message": "\u09ac\u09cb\u09a4\u09be\u09ae" + "message": "বোতাম" }, "cancel": { - "message": "\u09ac\u09be\u09a4\u09bf\u09b2" + "message": "বাতিল" }, "categories": { - "message": "\u09ac\u09bf\u09ad\u09be\u0997\u09b8\u09ae\u09c2\u09b9" + "message": "বিভাগসমূহ" }, "channel": { - "message": "\u099a\u09cd\u09af\u09be\u09a8\u09c7\u09b2" + "message": "চ্যানেল" }, "channels": { - "message": "\u099a\u09cd\u09af\u09be\u09a8\u09c7\u09b2\u0997\u09c1\u09b2\u09bf" + "message": "চ্যানেলগুলি" }, "clipboard": { - "message": "\u0995\u09cd\u09b2\u09bf\u09aa\u09ac\u09cb\u09b0\u09cd\u09a1" + "message": "ক্লিপবোর্ড" }, "codecH264": { - "message": "\u0995\u09cb\u09a1\u09c7\u0995 h.264" + "message": "কোডেক h.264" }, "collapseOfSubscriptionSections": { - "message": "\u09b8\u09be\u09ac\u09b8\u09cd\u0995\u09cd\u09b0\u09bf\u09aa\u09b6\u09a8 \u09ac\u09bf\u09ad\u09be\u0997 \u09ad\u09c7\u0999\u09c7 \u09a6\u09c7\u09ac\u09cb" + "message": "সাবস্ক্রিপশন বিভাগ ভেঙে দেবো" }, "collapsed": { - "message": "\u09ad\u09c7\u0999\u09c7 \u09a6\u09c7\u09ac\u09cb" + "message": "ভেঙে দেবো" }, "comments": { - "message": "\u09ae\u09a8\u09cd\u09a4\u09ac\u09cd\u09af" + "message": "মন্তব্য" }, "confirmationBeforeClosing": { - "message": "\u09ac\u09a8\u09cd\u09a7 \u09b9\u0993\u09af\u09bc\u09be\u09b0 \u0986\u0997\u09c7 \u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4\u0995\u09b0\u09a3" + "message": "বন্ধ হওয়ার আগে নিশ্চিতকরণ" }, "cookies": { - "message": "\u0995\u09c1\u0995\u09bf\u099c" + "message": "কুকিজ" }, "cores": { - "message": "\u0995\u09cb\u09b0" + "message": "কোর" }, "cropChapterTitles": { - "message": "\u0985\u09a7\u09cd\u09af\u09be\u09af\u09bc\u09c7\u09b0 \u09b6\u09bf\u09b0\u09cb\u09a8\u09be\u09ae \u09b9\u09cd\u09b0\u09be\u09b8 \u0995\u09b0\u09c1\u09a8" + "message": "অধ্যায়ের শিরোনাম হ্রাস করুন" }, "customCss": { - "message": "\u0995\u09be\u09b8\u09cd\u099f\u09ae CSS" + "message": "কাস্টম CSS" }, "customJs": { - "message": "\u0995\u09be\u09b8\u09cd\u099f\u09ae JS" + "message": "কাস্টম JS" }, "customMiniPlayer": { - "message": "\u0995\u09be\u09b8\u09cd\u099f\u09ae \u09ae\u09bf\u09a8\u09bf \u09aa\u09cd\u09b2\u09c7\u09af\u09bc\u09be\u09b0" + "message": "কাস্টম মিনি প্লেয়ার" }, "cyan": { - "message": "\u09b9\u09be\u09b2\u0995\u09be \u09a8\u09c0\u09b2" + "message": "হালকা নীল" }, "dark": { - "message": "\u0997\u09be .\u09bc" + "message": "গা .়" }, "darkTheme": { - "message": "\u0997\u09be .\u09bc \u09a5\u09bf\u09ae" + "message": "গা .় থিম" }, "dateAndTime": { - "message": "\u09a4\u09be\u09b0\u09bf\u0996 \u0986\u09b0 \u09b8\u09ae\u09af\u09bc" + "message": "তারিখ আর সময়" }, "dawn": { - "message": "\u09ad\u09cb\u09b0" + "message": "ভোর" }, "decreasePlaybackSpeed": { - "message": "\u09aa\u09cd\u09b2\u09c7\u09ac\u09cd\u09af\u09be\u0995\u09c7\u09b0 \u0997\u09a4\u09bf \u09b9\u09cd\u09b0\u09be\u09b8 \u0995\u09b0\u09c1\u09a8" + "message": "প্লেব্যাকের গতি হ্রাস করুন" }, "decreaseVolume": { - "message": "\u09b6\u09ac\u09cd\u09a6 \u09b9\u09cd\u09b0\u09be\u09b8 \u0995\u09b0\u09c1\u09a8" + "message": "শব্দ হ্রাস করুন" }, "deepOrange": { - "message": "\u0997\u09ad\u09c0\u09b0 \u0995\u09ae\u09b2\u09be" + "message": "গভীর কমলা" }, "deepPurple": { - "message": "\u0997\u09ad\u09c0\u09b0 \u09ac\u09c7\u0997\u09c1\u09a8\u09bf" + "message": "গভীর বেগুনি" }, "defaultChannelTab": { - "message": "\u09a1\u09bf\u09ab\u09b2\u09cd\u099f \u099a\u09cd\u09af\u09be\u09a8\u09c7\u09b2 \u099f\u09cd\u09af\u09be\u09ac" + "message": "ডিফল্ট চ্যানেল ট্যাব" }, "deleteYoutubeCookies": { - "message": "\u0987\u0989\u099f\u09bf\u0989\u09ac \u098f\u09b0 \u0995\u09c1\u0995\u09bf \u09a1\u09bf\u09b2\u09bf\u099f \u0995\u09b0\u09c1\u09a8" + "message": "ইউটিউব এর কুকি ডিলিট করুন" }, "description": { - "message": "\u09ac\u09b0\u09cd\u09a3\u09a8\u09be" + "message": "বর্ণনা" }, "desert": { - "message": "\u09ae\u09b0\u09c1\u09ad\u09c2\u09ae\u09bf" + "message": "মরুভূমি" }, "details": { - "message": "\u09ac\u09bf\u09b6\u09a6" + "message": "বিশদ" }, "developerOptions": { - "message": "\u09ac\u09bf\u0995\u09be\u09b6\u0995\u09be\u09b0\u09c0 \u09ac\u09bf\u0995\u09b2\u09cd\u09aa\u09b8\u09ae\u09c2\u09b9" + "message": "বিকাশকারী বিকল্পসমূহ" }, "device": { - "message": "\u09af\u09a8\u09cd\u09a4\u09cd\u09b0" + "message": "যন্ত্র" }, "dim": { - "message": "\u09ae\u09cd\u09b2\u09be\u09a8" + "message": "ম্লান" }, "disabled": { - "message": "\u0985\u0995\u09cd\u09b7\u09ae" + "message": "অক্ষম" }, "dislike": { - "message": "\u0985\u09aa\u099b\u09a8\u09cd\u09a6" + "message": "অপছন্দ" }, "doNotChange": { - "message": "\u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0995\u09b0\u09ac\u09c7\u09a8 \u09a8\u09be" + "message": "পরিবর্তন করবেন না" }, "donate": { - "message": "\u09a6\u09be\u09a8 \u0995\u09b0\u09c1\u09a8" + "message": "দান করুন" }, "draggable": { - "message": "\u099f\u09c7\u09a8\u09c7 \u0986\u09a8\u09c7" + "message": "টেনে আনে" }, "email": { - "message": "\u0987\u09ae\u09c7\u09b2" + "message": "ইমেল" }, "empty": { - "message": "\u0996\u09be\u09b2\u09bf" + "message": "খালি" }, "enabled": { - "message": "\u09b8\u0995\u09cd\u09b7\u09ae" + "message": "সক্ষম" }, "enabledForced": { - "message": "\u09b8\u0995\u09cd\u09b7\u09ae (\u099c\u09cb\u09b0\u09aa\u09c2\u09b0\u09cd\u09ac\u0995)" + "message": "সক্ষম (জোরপূর্বক)" }, "expanded": { - "message": "\u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09bf\u09a4" + "message": "প্রসারিত" }, "exportSettings": { - "message": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09b0\u09ab\u09a4\u09be\u09a8\u09bf \u0995\u09b0\u09c1\u09a8" + "message": "সেটিংস রফতানি করুন" }, "extension": { - "message": "\u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8" + "message": "এক্সটেনশন" }, "file": { - "message": "\u09ab\u09be\u0987\u09b2" + "message": "ফাইল" }, "filters": { - "message": "\u09ab\u09bf\u09b2\u09cd\u099f\u09be\u09b0" + "message": "ফিল্টার" }, "fitToWindow": { - "message": "\u0989\u0987\u09a8\u09cd\u09a1\u09cb\u09a4\u09c7 \u09ab\u09bf\u099f \u0995\u09b0\u09c1\u09a8" + "message": "উইন্ডোতে ফিট করুন" }, "flash": { - "message": "\u09ab\u09cd\u09b2\u09cd\u09af\u09be\u09b6" + "message": "ফ্ল্যাশ" }, "font": { - "message": "\u09b9\u09b0\u09ab" + "message": "হরফ" }, "footer": { - "message": "\u09aa\u09be\u09a6\u099a\u09b0\u09a3" + "message": "পাদচরণ" }, "forceSDR": { "message": "Force SDR" }, "forcedPlaybackSpeed": { - "message": "\u099c\u09cb\u09b0 \u0995\u09b0\u09c7 \u09aa\u09cd\u09b2\u09c7\u09ac\u09cd\u09af\u09be\u0995 \u0997\u09a4\u09bf" + "message": "জোর করে প্লেব্যাক গতি" }, "forcedTheaterMode": { - "message": "\u099c\u09cb\u09b0 \u0995\u09b0\u09c7 \u09a5\u09bf\u09af\u09bc\u09c7\u099f\u09be\u09b0 \u09ae\u09cb\u09a1" + "message": "জোর করে থিয়েটার মোড" }, "forcedVolume": { - "message": "\u099c\u09cb\u09b0 \u0995\u09b0\u09c7 \u09b6\u09ac\u09cd\u09a6" + "message": "জোর করে শব্দ" }, "foundABug": { - "message": "\u098f\u0995\u099f\u09bf \u09ac\u09be\u0997 \u0996\u09c1\u0981\u099c\u09c7 \u09aa\u09c7\u09af\u09bc\u09c7\u099b\u09bf?" + "message": "একটি বাগ খুঁজে পেয়েছি?" }, "fullWindow": { - "message": "\u09aa\u09c1\u09b0\u09cb \u0989\u0987\u09a8\u09cd\u09a1\u09cb" + "message": "পুরো উইন্ডো" }, "general": { - "message": "\u09b8\u09be\u09a7\u09be\u09b0\u09a3" + "message": "সাধারণ" }, "github": { - "message": "\u0997\u09bf\u099f\u09b9\u09be\u09ac" + "message": "গিটহাব" }, "goToSearchBox": { - "message": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8 \u09ac\u09be\u0995\u09cd\u09b8\u09c7 \u09af\u09be\u09a8" + "message": "অনুসন্ধান বাক্সে যান" }, "gpu": { - "message": "\u099c\u09bf\u09aa\u09bf\u0987\u0989" + "message": "জিপিইউ" }, "green": { - "message": "\u09b8\u09ac\u09c1\u099c" + "message": "সবুজ" }, "hdThumbnail": { - "message": "\u098f\u0987\u099a\u09a1\u09bf \u09a5\u09be\u09ae\u09cd\u09ac\u09a8\u09c7\u09b2" + "message": "এইচডি থাম্বনেল" }, "hdThumbnails": { - "message": "\u098f\u0987\u099a\u09a1\u09bf \u09a5\u09be\u09ae\u09a8\u09c7\u09b2 \u0997\u09c1\u09b2\u09bf" + "message": "এইচডি থামনেল গুলি" }, "header": { - "message": "\u09b6\u09bf\u09b0\u09cb\u09a8\u09be\u09ae" + "message": "শিরোনাম" }, "hidden": { - "message": "\u0997\u09cb\u09aa\u09a8" + "message": "গোপন" }, "hiddenOnVideoPage": { - "message": "\u09ad\u09bf\u09a1\u09bf\u0993 \u09aa\u09c3\u09b7\u09cd\u09a0\u09be\u09af\u09bc \u09b2\u09c1\u0995\u09be\u09a8\u09cb" + "message": "ভিডিও পৃষ্ঠায় লুকানো" }, "hideAnimatedThumbnails": { - "message": "\u0985\u09cd\u09af\u09be\u09a8\u09bf\u09ae\u09c7\u099f\u09c7\u09a1 \u09a5\u09be\u09ae\u09cd\u09ac\u09a8\u09c7\u09b2\u0997\u09c1\u09b2\u09bf \u09b2\u09c1\u0995\u09be\u09a8" + "message": "অ্যানিমেটেড থাম্বনেলগুলি লুকান" }, "hideAnnotations": { - "message": "\u099f\u09c0\u0995\u09be\u0997\u09c1\u09b2\u09bf \u09b2\u09c1\u0995\u09be\u09a8" + "message": "টীকাগুলি লুকান" }, "hideCards": { - "message": "\u0995\u09be\u09b0\u09cd\u09a1 \u09b2\u09c1\u0995\u09be\u09a8" + "message": "কার্ড লুকান" }, "hideDetails": { - "message": "\u0986\u09a1\u09bc\u09be\u09b2 \u09ac\u09bf\u09b8\u09cd\u09a4\u09be\u09b0\u09bf\u09a4" + "message": "আড়াল বিস্তারিত" }, "hideEndscreen": { - "message": "\u098f\u09a8\u09cd\u09a1\u09b8\u09cd\u0995\u09cd\u09b0\u09bf\u09a8 \u09b2\u09c1\u0995\u09be\u09a8" + "message": "এন্ডস্ক্রিন লুকান" }, "hideFeaturedContent": { - "message": "\u09ac\u09c8\u09b6\u09bf\u09b7\u09cd\u099f\u09cd\u09af\u09af\u09c1\u0995\u09cd\u09a4 \u09b8\u09be\u09ae\u0997\u09cd\u09b0\u09c0 \u09b2\u09c1\u0995\u09be\u09a8" + "message": "বৈশিষ্ট্যযুক্ত সামগ্রী লুকান" }, "hideFooter": { - "message": "\u09aa\u09be\u09a6\u09b2\u09c7\u0996 \u09b2\u09c1\u0995\u09be\u09a8" + "message": "পাদলেখ লুকান" }, "hideGradientBottom": { - "message": "\u0997\u09cd\u09b0\u09c7\u09a1\u09bf\u09af\u09bc\u09c7\u09a8\u09cd\u099f \u09a8\u09c0\u099a\u09c7 \u09b2\u09c1\u0995\u09be\u09a8" + "message": "গ্রেডিয়েন্ট নীচে লুকান" }, "hidePlaylist": { - "message": "\u09aa\u09cd\u09b2\u09c7\u09b2\u09bf\u09b8\u09cd\u099f \u09b2\u09c1\u0995\u09be\u09a8" + "message": "প্লেলিস্ট লুকান" }, "hideRightButtons": { - "message": "\u09a1\u09be\u09a8 \u09ac\u09cb\u09a4\u09be\u09ae\u0997\u09c1\u09b2\u09bf \u09b2\u09c1\u0995\u09be\u09a8" + "message": "ডান বোতামগুলি লুকান" }, "hideScrollForDetails": { - "message": "\u00ab\u09ac\u09bf\u09b6\u09a6 \u099c\u09a8\u09cd\u09af \u09b8\u09cd\u0995\u09cd\u09b0\u09cb\u09b2s\u00bb \u09b2\u09c1\u0995\u09be\u09a8" + "message": "«বিশদ জন্য স্ক্রোলs» লুকান" }, "hideViewsCount": { - "message": "\u09a6\u09b0\u09cd\u09b6\u09a8 \u0997\u09a3\u09a8\u09be \u09b2\u09c1\u0995\u09be\u09a8" + "message": "দর্শন গণনা লুকান" }, "history": { - "message": "\u0987\u09a4\u09bf\u09b9\u09be\u09b8" + "message": "ইতিহাস" }, "home": { - "message": "\u09aa\u09cd\u09b0\u09a7\u09be\u09a8" + "message": "প্রধান" }, "hover": { - "message": "\u0998\u09cb\u09b0\u09be" + "message": "ঘোরা" }, "hoverOnVideoPage": { - "message": "\u09ad\u09bf\u09a1\u09bf\u0993 \u09aa\u09c3\u09b7\u09cd\u09a0\u09be\u09af\u09bc \u0998\u09cb\u09b0\u09be" + "message": "ভিডিও পৃষ্ঠায় ঘোরা" }, "howLongAgoTheVideoWasUploaded": { - "message": "\u09ad\u09bf\u09a1\u09bf\u0993\u099f\u09bf \u0995\u09a4 \u0986\u0997\u09c7 \u0986\u09aa\u09b2\u09cb\u09a1 \u09b9\u09af\u09bc\u09c7\u099b\u09bf\u09b2" + "message": "ভিডিওটি কত আগে আপলোড হয়েছিল" }, "icons": { - "message": "\u0986\u0987\u0995\u09a8" + "message": "আইকন" }, "iconsOnly": { - "message": "\u0986\u0987\u0995\u09a8" + "message": "আইকন" }, "importSettings": { - "message": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u0986\u09ae\u09a6\u09be\u09a8\u09bf \u0995\u09b0\u09c1\u09a8" + "message": "সেটিংস আমদানি করুন" }, "improveLogo": { - "message": "\u09b2\u09cb\u0997\u09cb \u0989\u09a8\u09cd\u09a8\u09a4 \u0995\u09b0\u09c1\u09a8" + "message": "লোগো উন্নত করুন" }, "improvedtubeIconInBrowser": { - "message": "\u09ac\u09cd\u09b0\u09be\u0989\u099c\u09be\u09b0\u09c7 \u0989\u09a8\u09cd\u09a8\u09a4 YouTube \u0986\u0987\u0995\u09a8" + "message": "ব্রাউজারে উন্নত YouTube আইকন" }, "improvedtubeIconOnYoutube": { - "message": "\u0987\u0989\u099f\u09bf\u0989\u09ac\u09c7 \u0989\u09a8\u09cd\u09a8\u09a4 \u0986\u0987\u0995\u09a8" + "message": "ইউটিউবে উন্নত আইকন" }, "improvedtubeLanguage": { - "message": "\u0989\u09a8\u09cd\u09a8\u09a4 \u0987\u0989\u099f\u09bf\u0989\u09ac \u09ad\u09be\u09b7\u09be" + "message": "উন্নত ইউটিউব ভাষা" }, "improvedtubeVersion": { - "message": "\u0989\u09a8\u09cd\u09a8\u09a4 YouTube \u09b8\u0982\u09b8\u09cd\u0995\u09b0\u09a3" + "message": "উন্নত YouTube সংস্করণ" }, "increasePlaybackSpeed": { - "message": "\u09aa\u09cd\u09b2\u09c7\u09ac\u09cd\u09af\u09be\u0995\u09c7\u09b0 \u0997\u09a4\u09bf \u09ac\u09be\u09a1\u09bc\u09be\u09a8" + "message": "প্লেব্যাকের গতি বাড়ান" }, "increaseVolume": { - "message": "\u09b6\u09ac\u09cd\u09a6 \u09ac\u09c3\u09a6\u09cd\u09a7\u09bf" + "message": "শব্দ বৃদ্ধি" }, "indigo": { - "message": "\u09a8\u09c0\u09b2" + "message": "নীল" }, "items": { - "message": "\u0986\u0987\u099f\u09c7\u09ae" + "message": "আইটেম" }, "languages": { "message": "Languages" }, "legacyYoutube": { - "message": "\u0989\u09a4\u09cd\u09a4\u09b0\u09be\u09a7\u09bf\u0995\u09be\u09b0 \u0987\u0989\u099f\u09bf\u0989\u09ac" + "message": "উত্তরাধিকার ইউটিউব" }, "light": { - "message": "\u09b9\u09be\u09b2\u0995\u09be\u09cb" + "message": "হালকাো" }, "lightBlue": { - "message": "\u09b9\u09be\u09b2\u0995\u09be \u09a8\u09c0\u09b2" + "message": "হালকা নীল" }, "lightGreen": { - "message": "\u09b9\u09be\u09b2\u0995\u09be \u09b8\u09ac\u09c1\u099c" + "message": "হালকা সবুজ" }, "like": { - "message": "\u09b2\u09be\u0987\u0995" + "message": "লাইক" }, "likes": { - "message": "\u09b2\u09be\u0987\u0995 \u0997\u09c1\u09b2\u09bf" + "message": "লাইক গুলি" }, "lime": { - "message": "\u099a\u09c1\u09a8" + "message": "চুন" }, "list": { - "message": "\u09a4\u09be\u09b2\u09bf\u0995\u09be" + "message": "তালিকা" }, "liveChat": { - "message": "\u09b8\u09b0\u09be\u09b8\u09b0\u09bf \u0995\u09a5\u09cb\u09aa\u0995\u09a5\u09a8" + "message": "সরাসরি কথোপকথন" }, "liveChatType": { - "message": "\u09b2\u09be\u0987\u09ad \u099a\u09cd\u09af\u09be\u099f \u099f\u09be\u0987\u09aa" + "message": "লাইভ চ্যাট টাইপ" }, "loudnessNormalization": { - "message": "\u0986\u0993\u09af\u09bc\u09be\u099c\u09c7\u09b0 \u09b8\u09cd\u09ac\u09be\u09ad\u09be\u09ac\u09bf\u0995\u0995\u09b0\u09a3" + "message": "আওয়াজের স্বাভাবিককরণ" }, "markWatchedVideos": { - "message": "\u09a6\u09c7\u0996\u09be \u09ad\u09bf\u09a1\u09bf\u0993\u0997\u09c1\u09b2\u09bf \u099a\u09bf\u09b9\u09cd\u09a8\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8" + "message": "দেখা ভিডিওগুলি চিহ্নিত করুন" }, "mixer": { - "message": "\u09ae\u09bf\u0995\u09cd\u09b8\u09be\u09b0" + "message": "মিক্সার" }, "myColors": { - "message": "\u0986\u09ae\u09be\u09b0 \u09b0\u0982" + "message": "আমার রং" }, "name": { - "message": "\u09a8\u09be\u09ae" + "message": "নাম" }, "nativeMiniPlayer": { - "message": "\u09a8\u09c7\u099f\u09bf\u09ad \u09ae\u09bf\u09a8\u09bf \u09aa\u09cd\u09b2\u09c7\u09af\u09bc\u09be\u09b0" + "message": "নেটিভ মিনি প্লেয়ার" }, "new": { - "message": "\u09a8\u09a4\u09c1\u09a8" + "message": "নতুন" }, "nextVideo": { - "message": "\u09aa\u09b0\u09ac\u09b0\u09cd\u09a4\u09c0 \u09ad\u09bf\u09a1\u09bf\u0993" + "message": "পরবর্তী ভিডিও" }, "night": { - "message": "\u09b0\u09be\u09a4" + "message": "রাত" }, "noActiveFeatures": { - "message": "\u0995\u09cb\u09a8\u0993 \u09b8\u0995\u09cd\u09b0\u09bf\u09af\u09bc \u09ac\u09c8\u09b6\u09bf\u09b7\u09cd\u099f\u09cd\u09af \u09a8\u09c7\u0987" + "message": "কোনও সক্রিয় বৈশিষ্ট্য নেই" }, "noOpenVideoTabs": { - "message": "\u0995\u09cb\u09a8\u0993 \u0996\u09cb\u09b2\u09be \u09ad\u09bf\u09a1\u09bf\u0993 \u099f\u09cd\u09af\u09be\u09ac \u09a8\u09c7\u0987" + "message": "কোনও খোলা ভিডিও ট্যাব নেই" }, "none": { - "message": "\u0995\u09bf\u099b\u09c1\u0987 \u09a8\u09be" + "message": "কিছুই না" }, "normal": { - "message": "\u09b8\u09be\u09a7\u09be\u09b0\u09a3" + "message": "সাধারণ" }, "old": { - "message": "\u09aa\u09c1\u09b0\u09be\u09a4\u09a8" + "message": "পুরাতন" }, "onAllVideos": { - "message": "\u09b8\u09ae\u09b8\u09cd\u09a4 \u09ad\u09bf\u09a1\u09bf\u0993\u09a4\u09c7" + "message": "সমস্ত ভিডিওতে" }, "onSubscribedChannels": { - "message": "\u09b8\u09be\u09ac\u09b8\u09cd\u0995\u09cd\u09b0\u09be\u0987\u09ac \u0995\u09b0\u09be \u099a\u09cd\u09af\u09be\u09a8\u09c7\u09b2\u0997\u09c1\u09b2\u09bf\u09a4\u09c7" + "message": "সাবস্ক্রাইব করা চ্যানেলগুলিতে" }, "onlyActiveOnYoutube": { - "message": "\u09b6\u09c1\u09a7\u09c1\u09ae\u09be\u09a4\u09cd\u09b0 \u0987\u0989\u099f\u09bf\u0989\u09ac\u09c7 \u09b8\u0995\u09cd\u09b0\u09bf\u09af\u09bc" + "message": "শুধুমাত্র ইউটিউবে সক্রিয়" }, "onlyOnePlayerInstancePlaying": { - "message": "\u0995\u09c7\u09ac\u09b2\u09ae\u09be\u09a4\u09cd\u09b0 \u098f\u0995\u099c\u09a8 \u0996\u09c7\u09b2\u09cb\u09af\u09bc\u09be\u09a1\u09bc \u0996\u09c7\u09b2\u099b\u09c7" + "message": "কেবলমাত্র একজন খেলোয়াড় খেলছে" }, "orange": { - "message": "\u0995\u09ae\u09b2\u09be" + "message": "কমলা" }, "os": { - "message": "\u0993\u098f\u09b8" + "message": "ওএস" }, "other": { - "message": "\u0985\u09a8\u09cd\u09af\u09be\u09a8\u09cd\u09af" + "message": "অন্যান্য" }, "permissions": { - "message": "\u0985\u09a8\u09c1\u09ae\u09a4\u09bf" + "message": "অনুমতি" }, "pictureInPicture": { - "message": "\u09aa\u09bf\u0995\u099a\u09be\u09b0 \u0987\u09a8 \u09aa\u09bf\u0995\u099a\u09be\u09b0" + "message": "পিকচার ইন পিকচার" }, "pink": { - "message": "\u0997\u09cb\u09b2\u09be\u09aa\u09c0" + "message": "গোলাপী" }, "plain": { - "message": "\u09b8\u09b0\u09b2" + "message": "সরল" }, "platform": { - "message": "\u09aa\u09cd\u09b2\u09cd\u09af\u09be\u099f\u09ab\u09b0\u09cd\u09ae" + "message": "প্ল্যাটফর্ম" }, "playPause": { - "message": "\u0996\u09c7\u09b2\u09be\u09b0 / \u09ac\u09bf\u09b0\u09a4\u09bf" + "message": "খেলার / বিরতি" }, "playbackSpeed": { - "message": "\u09aa\u09cd\u09b2\u09c7\u09ac\u09cd\u09af\u09be\u0995 \u0997\u09a4\u09bf" + "message": "প্লেব্যাক গতি" }, "player": { - "message": "\u09aa\u09cd\u09b2\u09c7\u09af\u09bc\u09be\u09b0" + "message": "প্লেয়ার" }, "playerColor": { - "message": "\u09aa\u09cd\u09b2\u09c7\u09af\u09bc\u09be\u09b0\u09c7\u09b0 \u09b0\u0999" + "message": "প্লেয়ারের রঙ" }, "playerSize": { - "message": "\u0996\u09c7\u09b2\u09cb\u09af\u09bc\u09be\u09a1\u09bc\u09c7\u09b0 \u0986\u0995\u09be\u09b0" + "message": "খেলোয়াড়ের আকার" }, "playlist": { - "message": "\u09aa\u09cd\u09b2\u09c7\u09b2\u09bf\u09b8\u09cd\u099f" + "message": "প্লেলিস্ট" }, "playlists": { - "message": "\u09aa\u09cd\u09b2\u09c7\u09b2\u09bf\u09b8\u09cd\u099f" + "message": "প্লেলিস্ট" }, "popupPlayer": { - "message": "\u09aa\u09aa\u0986\u09aa \u09aa\u09cd\u09b2\u09c7\u09af\u09bc\u09be\u09b0" + "message": "পপআপ প্লেয়ার" }, "position": { - "message": "\u0985\u09ac\u09b8\u09cd\u09a5\u09be\u09a8" + "message": "অবস্থান" }, "pressAnyKeyOrScroll": { - "message": "\u09af\u09c7 \u0995\u09cb\u09a8\u0993 \u0995\u09c0 \u099f\u09bf\u09aa\u09c1\u09a8 \u09ac\u09be \u09ae\u09be\u0989\u09b8 \u09b9\u09c1\u0987\u09b2 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c1\u09a8\u0964" + "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" }, "pressAnyKeyOrUseMouseWheel": { - "message": "\u09af\u09c7 \u0995\u09cb\u09a8\u0993 \u0995\u09c0 \u099f\u09bf\u09aa\u09c1\u09a8 \u09ac\u09be \u09ae\u09be\u0989\u09b8 \u09b9\u09c1\u0987\u09b2 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c1\u09a8\u0964" + "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" }, "previousVideo": { - "message": "\u09aa\u09c2\u09b0\u09cd\u09ac\u09ac\u09b0\u09cd\u09a4\u09c0 \u09ad\u09bf\u09a1\u09bf\u0993" + "message": "পূর্ববর্তী ভিডিও" }, "primaryColor": { - "message": "\u09ae\u09cc\u09b2\u09bf\u0995 \u09b0\u0999" + "message": "মৌলিক রঙ" }, "purple": { - "message": "\u09ac\u09c7\u0997\u09c1\u09a8\u09bf" + "message": "বেগুনি" }, "quality": { - "message": "\u0997\u09c1\u09a3" + "message": "গুণ" }, "ram": { - "message": "\u09b0\u09cd\u09af\u09be\u09ae" + "message": "র্যাম" }, "rateUs": { - "message": "\u09ae\u09a4\u09be\u09ae\u09a4 \u09a6\u09bf\u09a8" + "message": "মতামত দিন" }, "red": { - "message": "\u09b2\u09be\u09b2" + "message": "লাল" }, "redDislikeButton": { - "message": "\u0985\u09aa\u099b\u09a8\u09cd\u09a6 \u09ac\u09be\u099f\u09a8 \u09b2\u09be\u09b2 \u09b0\u0999 \u09a6\u09c7\u0996\u09be\u09a8" + "message": "অপছন্দ বাটন লাল রঙ দেখান" }, "relatedVideos": { - "message": "\u09b8\u0982\u09b6\u09cd\u09b2\u09bf\u09b7\u09cd\u099f \u09ad\u09bf\u09a1\u09bf\u0993" + "message": "সংশ্লিষ্ট ভিডিও" }, "removeRelatedSearchResults": { - "message": "\u09b8\u09ae\u09cd\u09aa\u09b0\u09cd\u0995\u09bf\u09a4 \u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8 \u09ab\u09b2\u09be\u09ab\u09b2 \u09b8\u09b0\u09be\u09a8" + "message": "সম্পর্কিত অনুসন্ধান ফলাফল সরান" }, "repeat": { - "message": "\u09aa\u09c1\u09a8\u09b0\u09be\u09ac\u09c3\u09a4\u09cd\u09a4\u09bf" + "message": "পুনরাবৃত্তি" }, "reset": { - "message": "\u09b0\u09bf\u09b8\u09c7\u099f" + "message": "রিসেট" }, "resetAllSettings": { - "message": "\u09b8\u09ae\u09b8\u09cd\u09a4 \u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u099f \u0995\u09b0\u09c1\u09a8" + "message": "সমস্ত সেটিংস পুনরায় সেট করুন" }, "resetAllShortcuts": { - "message": "\u09b8\u09ae\u09b8\u09cd\u09a4 \u09b6\u09b0\u09cd\u099f\u0995\u09be\u099f \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u099f \u0995\u09b0\u09c1\u09a8" + "message": "সমস্ত শর্টকাট পুনরায় সেট করুন" }, "reverse": { - "message": "\u09ac\u09bf\u09aa\u09b0\u09c0\u09a4" + "message": "বিপরীত" }, "rotate": { - "message": "\u0998\u09c1\u09b0\u09be\u09a8" + "message": "ঘুরান" }, "save": { - "message": "\u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09a3" + "message": "সংরক্ষণ" }, "saveAs": { - "message": "\u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09a3 \u0995\u09b0\u09c1\u09a8" + "message": "সংরক্ষণ করুন" }, "schedule": { - "message": "\u09b8\u09ae\u09af\u09bc\u09b8\u09c2\u099a\u09c0" + "message": "সময়সূচী" }, "screen": { - "message": "\u09aa\u09b0\u09cd\u09a6\u09be" + "message": "পর্দা" }, "screenshot": { - "message": "\u09b8\u09cd\u0995\u09cd\u09b0\u09bf\u09a8\u09b6\u099f" + "message": "স্ক্রিনশট" }, "search": { - "message": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8 \u0995\u09b0\u09c1\u09a8" + "message": "অনুসন্ধান করুন" }, "searchBarOnly": { - "message": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8 \u09ac\u09be\u09b0 \u0995\u09c7\u09ac\u09b2" + "message": "অনুসন্ধান বার কেবল" }, "seekBackward10Seconds": { - "message": "\u09aa\u09bf\u099b\u09a8\u09c7 10 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1 \u09b8\u09a8\u09cd\u09a7\u09be\u09a8 \u0995\u09b0\u09c1\u09a8" + "message": "পিছনে 10 সেকেন্ড সন্ধান করুন" }, "seekForward10Seconds": { - "message": "10 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1 \u098f\u0997\u09bf\u09af\u09bc\u09c7 \u09af\u09be\u09a8" + "message": "10 সেকেন্ড এগিয়ে যান" }, "settings": { - "message": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8" + "message": "সেটিংস" }, "settingsSuccessfullyImported": { - "message": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09b8\u09ab\u09b2\u09ad\u09be\u09ac\u09c7 \u0986\u09ae\u09a6\u09be\u09a8\u09bf \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7" + "message": "সেটিংস সফলভাবে আমদানি করা হয়েছে" }, "shortcuts": { - "message": "\u09b6\u09b0\u09cd\u099f\u0995\u09be\u099f\u09b8" + "message": "শর্টকাটস" }, "showCardsOnMouseHover": { - "message": "\u09ae\u09be\u0989\u09b8 \u09b9\u09cb\u09ad\u09be\u09b0\u09c7 \u0995\u09be\u09b0\u09cd\u09a1\u0997\u09c1\u09b2\u09bf \u09a6\u09c7\u0996\u09be\u09a8" + "message": "মাউস হোভারে কার্ডগুলি দেখান" }, "showChannelVideosCount": { - "message": "\u099a\u09cd\u09af\u09be\u09a8\u09c7\u09b2 \u09ad\u09bf\u09a1\u09bf\u0993 \u0997\u09a3\u09a8\u09be \u09a6\u09c7\u0996\u09be\u09a8" + "message": "চ্যানেল ভিডিও গণনা দেখান" }, "shuffle": { - "message": "\u0985\u09a6\u09b2\u09ac\u09a6\u09b2" + "message": "অদলবদল" }, "sidebar": { - "message": "\u09b8\u09be\u0987\u09a1\u09ac\u09be\u09b0" + "message": "সাইডবার" }, "spacebar": { - "message": "\u09b8\u09cd\u09aa\u09c7\u09b8\u09ac\u09be\u09b0" + "message": "স্পেসবার" }, "squaredUserImages": { - "message": "\u09b8\u09cd\u0995\u09cb\u09af\u09bc\u09be\u09b0 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0\u0995\u09be\u09b0\u09c0\u09b0 \u099a\u09bf\u09a4\u09cd\u09b0\u09b8\u09ae\u09c2\u09b9" + "message": "স্কোয়ার ব্যবহারকারীর চিত্রসমূহ" }, "static": { - "message": "\u09b8\u09cd\u09a5\u09bf\u09b0" + "message": "স্থির" }, "statsForNerds": { - "message": "\u09a1\u09c7\u09ad\u09b2\u09aa\u09be\u09b0\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u09aa\u09b0\u09bf\u09b8\u0982\u0996\u09cd\u09af\u09be\u09a8 \u09a6\u09c7\u0996\u09be\u09a8" + "message": "ডেভলপারের জন্য পরিসংখ্যান দেখান" }, "step": { - "message": "\u09aa\u09a6\u0995\u09cd\u09b7\u09c7\u09aa" + "message": "পদক্ষেপ" }, "stop": { - "message": "\u09a5\u09be\u09ae\u09cb" + "message": "থামো" }, "style": { - "message": "\u09b8\u09cd\u099f\u09be\u0987\u09b2" + "message": "স্টাইল" }, "styles": { - "message": "\u09b6\u09c8\u09b2\u09c0" + "message": "শৈলী" }, "subscriptions": { - "message": "\u09b8\u09be\u09ac\u09b8\u09cd\u0995\u09cd\u09b0\u09bf\u09aa\u09b6\u09a8" + "message": "সাবস্ক্রিপশন" }, "subtitles": { - "message": "\u09b8\u09be\u09ac\u099f\u09be\u0987\u099f\u09c7\u09b2" + "message": "সাবটাইটেল" }, "sunset": { - "message": "\u09b8\u09c2\u09b0\u09cd\u09af\u09be\u09b8\u09cd\u09a4" + "message": "সূর্যাস্ত" }, "sunsetToSunrise": { - "message": "\u09b8\u09c2\u09b0\u09cd\u09af\u09cb\u09a6\u09af\u09bc \u09b8\u09c2\u09b0\u09cd\u09af\u09cb\u09a6\u09af\u09bc" + "message": "সূর্যোদয় সূর্যোদয়" }, "systemPeferenceDark": { - "message": "\u09b8\u09bf\u09b8\u09cd\u099f\u09c7\u09ae\u09c7\u09b0 \u09aa\u099b\u09a8\u09cd\u09a6\u09b8\u09ae\u09c2\u09b9 : dark" + "message": "সিস্টেমের পছন্দসমূহ : dark" }, "systemPeferenceLight": { - "message": "\u09b8\u09bf\u09b8\u09cd\u099f\u09c7\u09ae\u09c7\u09b0 \u09aa\u099b\u09a8\u09cd\u09a6\u09b8\u09ae\u09c2\u09b9 : light" + "message": "সিস্টেমের পছন্দসমূহ : light" }, "teal": { - "message": "\u099f\u09bf\u09b2" + "message": "টিল" }, "textColor": { - "message": "\u09b2\u09c7\u0996\u09be\u09b0 \u09b0\u0999" + "message": "লেখার রঙ" }, "themes": { - "message": "\u09a5\u09bf\u09ae\u09b8" + "message": "থিমস" }, "thisWillRemoveAllCookies": { - "message": "\u098f\u099f\u09bf \u09b8\u09ae\u09b8\u09cd\u09a4 \u0995\u09c1\u0995\u09bf \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09ac\u09c7\u0964" + "message": "এটি সমস্ত কুকি মুছে ফেলবে।" }, "thisWillRemoveAllYouTubeCookies": { - "message": "\u098f\u099f\u09bf \u09b8\u09ae\u09b8\u09cd\u09a4 \u0987\u0989\u099f\u09bf\u0989\u09ac \u0995\u09c1\u0995\u09bf\u099c \u0985\u09aa\u09b8\u09be\u09b0\u09a3 \u0995\u09b0\u09ac\u09c7" + "message": "এটি সমস্ত ইউটিউব কুকিজ অপসারণ করবে" }, "thisWillResetAllSettings": { - "message": "\u098f\u099f\u09bf \u09b8\u09ae\u09b8\u09cd\u09a4 \u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u099f \u0995\u09b0\u09ac\u09c7\u0964" + "message": "এটি সমস্ত সেটিংস পুনরায় সেট করবে।" }, "thisWillResetAllShortcuts": { - "message": "\u098f\u099f\u09bf \u09b8\u09ae\u09b8\u09cd\u09a4 \u09b6\u09b0\u09cd\u099f\u0995\u09be\u099f \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u099f \u0995\u09b0\u09ac\u09c7" + "message": "এটি সমস্ত শর্টকাট পুনরায় সেট করবে" }, "thumbnails": { - "message": "\u09a5\u09be\u09ae\u09cd\u09ac\u09a8\u09c7\u0987\u09b2\u09b8" + "message": "থাম্বনেইলস" }, "timeFrom": { - "message": "\u09b8\u09ae\u09af\u09bc \u09a5\u09c7\u0995\u09c7" + "message": "সময় থেকে" }, "timeTo": { - "message": "\u09b8\u09ae\u09af\u09bc" + "message": "সময়" }, "todayAt": { - "message": "\u0986\u099c \u098f" + "message": "আজ এ" }, "toggleCards": { "message": "Toggle cards" }, "topChat": { - "message": "\u09b6\u09c0\u09b0\u09cd\u09b7 \u099a\u09cd\u09af\u09be\u099f" + "message": "শীর্ষ চ্যাট" }, "trailerAutoplay": { - "message": "\u099f\u09cd\u09b0\u09c7\u09b2\u09be\u09b0 \u0985\u099f\u09cb\u09aa\u09cd\u09b2\u09c7" + "message": "ট্রেলার অটোপ্লে" }, "translations": { - "message": "\u0985\u09a8\u09c1\u09ac\u09be\u09a6" + "message": "অনুবাদ" }, "transparentBackground": { - "message": "\u09b8\u09cd\u09ac\u099a\u09cd\u099b \u09aa\u099f\u09ad\u09c2\u09ae\u09bf" + "message": "স্বচ্ছ পটভূমি" }, "trending": { - "message": "\u099a\u09b2\u09ae\u09be\u09a8" + "message": "চলমান" }, "tryToReloadThePage": { - "message": "\u09aa\u09c3\u09b7\u09cd\u09a0\u09be\u099f\u09bf \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b2\u09cb\u09a1 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8" + "message": "পৃষ্ঠাটি পুনরায় লোড করার চেষ্টা করুন" }, "type": { - "message": "\u09aa\u09cd\u09b0\u0995\u09be\u09b0" + "message": "প্রকার" }, "upNextAutoplay": { - "message": "\u09aa\u09b0\u09ac\u09b0\u09cd\u09a4\u09c0 \u0985\u099f\u09cb\u09aa\u09cd\u09b2\u09c7" + "message": "পরবর্তী অটোপ্লে" }, "use24HourFormat": { - "message": "24 \u0998\u09a8\u09cd\u099f\u09be \u09ac\u09bf\u09a8\u09cd\u09af\u09be\u09b8 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c1\u09a8" + "message": "24 ঘন্টা বিন্যাস ব্যবহার করুন" }, "version": { - "message": "\u09b8\u0982\u09b8\u09cd\u0995\u09b0\u09a3" + "message": "সংস্করণ" }, "video": { - "message": "\u09ad\u09bf\u09a1\u09bf\u0993" + "message": "ভিডিও" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "\u09ac\u09bf\u09ad\u09be\u0997\u099f\u09bf\u09b0 \u09a8\u09be\u09ae \u09aa\u09c7\u09a4\u09c7 \u09ad\u09bf\u09a1\u09bf\u0993\u09b0 \u09ac\u09b0\u09cd\u09a3\u09a8\u09be\u099f\u09bf \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09bf\u09a4 \u09b9\u09ac\u09c7" + "message": "বিভাগটির নাম পেতে ভিডিওর বর্ণনাটি প্রসারিত হবে" }, "videoFormats": { - "message": "\u09ad\u09bf\u09a1\u09bf\u0993 \u09ab\u09b0\u09cd\u09ae\u09cd\u09af\u09be\u099f" + "message": "ভিডিও ফর্ম্যাট" }, "videos": { - "message": "\u09ad\u09bf\u09a1\u09bf\u0993" + "message": "ভিডিও" }, "volume": { - "message": "\u09b6\u09ac\u09cd\u09a6" + "message": "শব্দ" }, "watchLater": { - "message": "\u09aa\u09b0\u09c7 \u09a6\u09c7\u0996\u09c1\u09a8" + "message": "পরে দেখুন" }, "watchTime": { - "message": "\u09a6\u09c7\u0996\u09be\u09b0 \u09b8\u09ae\u09af\u09bc" + "message": "দেখার সময়" }, "whenTabIsChanged": { - "message": "\u099f\u09cd\u09af\u09be\u09ac \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0995\u09b0\u09be \u09b9\u09af\u09bc" + "message": "ট্যাব পরিবর্তন করা হয়" }, "white": { - "message": "\u09b8\u09be\u09a6\u09be" + "message": "সাদা" }, "yellow": { - "message": "\u09b9\u09b2\u09c1\u09a6" + "message": "হলুদ" }, "youtubeHeaderLeft": { - "message": "YouTube \u09b6\u09bf\u09b0\u09cb\u09a8\u09be\u09ae (\u09ac\u09be\u09ae)" + "message": "YouTube শিরোনাম (বাম)" }, "youtubeHeaderRight": { - "message": "YouTube \u09b6\u09bf\u09b0\u09cb\u09a8\u09be\u09ae (\u09a1\u09be\u09a8\u09a6\u09bf\u0995\u09c7)" + "message": "YouTube শিরোনাম (ডানদিকে)" }, "youtubeHomePage": { - "message": "\u0987\u0989\u099f\u09bf\u0989\u09ac \u09b9\u09cb\u09ae \u09aa\u09c3\u09b7\u09cd\u09a0\u09be" + "message": "ইউটিউব হোম পৃষ্ঠা" }, "youtubeLanguage": { - "message": "\u0987\u0989\u099f\u09bf\u0989\u09ac \u09ad\u09be\u09b7\u09be" + "message": "ইউটিউব ভাষা" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "\u0987\u0989\u099f\u09bf\u0989\u09ac h.264 \u0995\u09cb\u09a1\u09c7\u0995\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u09ad\u09bf\u09a1\u09bf\u0993 \u0997\u09c1\u09a3\u09ae\u09be\u09a8\u0995\u09c7 1080p \u098f\u09b0 \u09ae\u09a7\u09cd\u09af\u09c7 \u09b8\u09c0\u09ae\u09be\u09ac\u09a6\u09cd\u09a7 \u0995\u09b0\u09c7" + "message": "ইউটিউব h.264 কোডেকের জন্য ভিডিও গুণমানকে 1080p এর মধ্যে সীমাবদ্ধ করে" } } \ No newline at end of file diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 606a2af6c..5103bc6f1 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -1,15 +1,15 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" @@ -39,7 +39,7 @@ "message": "Aktive Funktionen" }, "addScrollToTop": { - "message": "\u00abNach Oben\u00bb-Button" + "message": "«Nach Oben»-Button" }, "ads": { "message": "Werbung" @@ -87,7 +87,7 @@ "message": "Autoplay" }, "backupAndReset": { - "message": "Sichern oder zur\u00fccksetzen" + "message": "Sichern oder zurücksetzen" }, "baseOnSystemColorScheme": { "message": "Basierend von Systemfarben" @@ -141,7 +141,7 @@ "message": "Kanal" }, "channels": { - "message": "Kan\u00e4le" + "message": "Kanäle" }, "clipboard": { "message": "Zwischenablage" @@ -159,7 +159,7 @@ "message": "Kommentare" }, "confirmationBeforeClosing": { - "message": "Best\u00e4tigung beim Schlie\u00dfen" + "message": "Bestätigung beim Schließen" }, "cookies": { "message": "Cookies" @@ -171,10 +171,10 @@ "message": "Kapitel abschneiden" }, "customCss": { - "message": "CSS hinzuf\u00fcgen" + "message": "CSS hinzufügen" }, "customJs": { - "message": "JS hinzuf\u00fcgen" + "message": "JS hinzufügen" }, "customMiniPlayer": { "message": "Benutzerdefinierter Mini-Player" @@ -192,13 +192,13 @@ "message": "Datum & Uhrzeit" }, "dawn": { - "message": "Morgend\u00e4mmerung" + "message": "Morgendämmerung" }, "decreasePlaybackSpeed": { "message": "Abspielgeschwindigkeit verringern" }, "decreaseVolume": { - "message": "Lautst\u00e4rke reduzieren" + "message": "Lautstärke reduzieren" }, "deepOrange": { "message": "Dunkel-Orange" @@ -210,13 +210,13 @@ "message": "Standard-Kanal Tab" }, "deleteYoutubeCookies": { - "message": "YouTube-Cookies l\u00f6schen" + "message": "YouTube-Cookies löschen" }, "description": { "message": "Beschreibung" }, "desert": { - "message": "W\u00fcste" + "message": "Wüste" }, "details": { "message": "Details" @@ -225,7 +225,7 @@ "message": "Entwickleroptionen" }, "device": { - "message": "Ger\u00e4t" + "message": "Gerät" }, "dim": { "message": "dimmen" @@ -237,7 +237,7 @@ "message": "'Mag ich nicht'" }, "doNotChange": { - "message": "Nicht \u00e4ndern" + "message": "Nicht ändern" }, "donate": { "message": "Spenden" @@ -282,7 +282,7 @@ "message": "Schriftart" }, "footer": { - "message": "Fu\u00dfzeile" + "message": "Fußzeile" }, "forceSDR": { "message": "Force SDR" @@ -294,7 +294,7 @@ "message": "Kinomodus erzwingen" }, "forcedVolume": { - "message": "Fixe Lautst\u00e4rke" + "message": "Fixe Lautstärke" }, "foundABug": { "message": "Fehler gefunden?" @@ -315,7 +315,7 @@ "message": "GPU" }, "green": { - "message": "Gr\u00fcn" + "message": "Grün" }, "hdThumbnail": { "message": "HD-Vorschaubild" @@ -351,7 +351,7 @@ "message": "'Empfohlene Inhalte' ausblenden" }, "hideFooter": { - "message": "Fu\u00dfzeile ausblenden" + "message": "Fußzeile ausblenden" }, "hideGradientBottom": { "message": "Farbverlauf ausblenden" @@ -363,7 +363,7 @@ "message": "Rechte Buttons ausblenden" }, "hideScrollForDetails": { - "message": "\u00abF\u00fcr Details scrollen\u00bb ausblenden" + "message": "«Für Details scrollen» ausblenden" }, "hideViewsCount": { "message": "Videoaufrufe ausblenden" @@ -408,10 +408,10 @@ "message": "ImprovedTube Version" }, "increasePlaybackSpeed": { - "message": "Abspiel Geschwingkeit erh\u00f6hen" + "message": "Abspiel Geschwingkeit erhöhen" }, "increaseVolume": { - "message": "Lautst\u00e4rke erh\u00f6hen" + "message": "Lautstärke erhöhen" }, "indigo": { "message": "Indigo" @@ -432,7 +432,7 @@ "message": "Hellblau" }, "lightGreen": { - "message": "Hellgr\u00fcn" + "message": "Hellgrün" }, "like": { "message": "Like" @@ -453,7 +453,7 @@ "message": "Live-Chat Typ" }, "loudnessNormalization": { - "message": "Lautst\u00e4rke normalisieren" + "message": "Lautstärke normalisieren" }, "markWatchedVideos": { "message": "gesehene Videos markieren" @@ -474,7 +474,7 @@ "message": "Neu" }, "nextVideo": { - "message": "N\u00e4chstes Video" + "message": "Nächstes Video" }, "night": { "message": "Nacht" @@ -483,7 +483,7 @@ "message": "Keine aktiven Features" }, "noOpenVideoTabs": { - "message": "Keine YouTube Videos ge\u00f6ffnet" + "message": "Keine YouTube Videos geöffnet" }, "none": { "message": "Keine" @@ -498,10 +498,10 @@ "message": "in allen Videos" }, "onSubscribedChannels": { - "message": "nur in abonnierten Kan\u00e4len" + "message": "nur in abonnierten Kanälen" }, "onlyActiveOnYoutube": { - "message": "nur auf YouTube rot f\u00e4rben" + "message": "nur auf YouTube rot färben" }, "onlyOnePlayerInstancePlaying": { "message": "Nur ein Video gleichzeitig" @@ -543,7 +543,7 @@ "message": "Playerfarbe" }, "playerSize": { - "message": "Playergr\u00f6\u00dfe" + "message": "Playergröße" }, "playlist": { "message": "Playlist" @@ -558,22 +558,22 @@ "message": "Position" }, "pressAnyKeyOrScroll": { - "message": "Eine Taste dr\u00fccken oder scrollen!" + "message": "Eine Taste drücken oder scrollen!" }, "pressAnyKeyOrUseMouseWheel": { - "message": "Eine Taste dr\u00fccken oder scrollen!" + "message": "Eine Taste drücken oder scrollen!" }, "previousVideo": { "message": "Letztes Video" }, "primaryColor": { - "message": "Prim\u00e4re Farbe" + "message": "Primäre Farbe" }, "purple": { "message": "Lila" }, "quality": { - "message": "Qualit\u00e4t" + "message": "Qualität" }, "ram": { "message": "RAM" @@ -597,16 +597,16 @@ "message": "Repeat(Wiederholen)" }, "reset": { - "message": "Zur\u00fccksetzen" + "message": "Zurücksetzen" }, "resetAllSettings": { - "message": "Alle Einstellungen zur\u00fccksetzen" + "message": "Alle Einstellungen zurücksetzen" }, "resetAllShortcuts": { - "message": "Alle Shortcuts zur\u00fccksetzen" + "message": "Alle Shortcuts zurücksetzen" }, "reverse": { - "message": "R\u00fcckw\u00e4rts" + "message": "Rückwärts" }, "rotate": { "message": "Drehen" @@ -633,10 +633,10 @@ "message": "Nur die Suchleiste" }, "seekBackward10Seconds": { - "message": "10 Sekunden zur\u00fcck" + "message": "10 Sekunden zurück" }, "seekForward10Seconds": { - "message": "10 Sekunden \u00fcberspringen" + "message": "10 Sekunden überspringen" }, "settings": { "message": "Einstellungen" @@ -669,7 +669,7 @@ "message": "Statisch" }, "statsForNerds": { - "message": "Statistiken f\u00fcr Nerds" + "message": "Statistiken für Nerds" }, "step": { "message": "Schritt" @@ -702,7 +702,7 @@ "message": "System Einstellungen: hell" }, "teal": { - "message": "Blaugr\u00fcn" + "message": "Blaugrün" }, "textColor": { "message": "Textfarbe" @@ -711,10 +711,10 @@ "message": "Farbschemen" }, "thisWillRemoveAllCookies": { - "message": "Alle Cookies werden gel\u00f6scht" + "message": "Alle Cookies werden gelöscht" }, "thisWillRemoveAllYouTubeCookies": { - "message": "Alle YouTube Cookies werden gel\u00f6scht" + "message": "Alle YouTube Cookies werden gelöscht" }, "thisWillResetAllSettings": { "message": "Alle Einstellungen werden entfernt" @@ -744,7 +744,7 @@ "message": "Trailer autoplay (Kanal-Intro automatisch losspielen)" }, "translations": { - "message": "\u00dcbersetzungen" + "message": "Übersetzungen" }, "transparentBackground": { "message": "Transparenter Hintergrund" @@ -759,7 +759,7 @@ "message": "Typ" }, "upNextAutoplay": { - "message": "N\u00e4chstes Video automatisch abspielen" + "message": "Nächstes Video automatisch abspielen" }, "use24HourFormat": { "message": "24-Stunden Format" @@ -780,10 +780,10 @@ "message": "Videos" }, "volume": { - "message": "Lautst\u00e4rke" + "message": "Lautstärke" }, "watchLater": { - "message": "Sp\u00e4ter ansehen" + "message": "Später ansehen" }, "watchTime": { "message": "Verbrauchte Zeit" @@ -792,7 +792,7 @@ "message": "Beim Tab-Wechsel" }, "white": { - "message": "Wei\u00df" + "message": "Weiß" }, "yellow": { "message": "Gelb" @@ -810,6 +810,6 @@ "message": "YouTube Sprache" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube begrenzt die Qualit\u00e4t auf 1080p f\u00fcr den h.264 Codec" + "message": "YouTube begrenzt die Qualität auf 1080p für den h.264 Codec" } } \ No newline at end of file diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 33a178854..9086dfe56 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -1,147 +1,147 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { - "message": "\u03a3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac" + "message": "Σχετικά" }, "accept": { - "message": "\u0391\u03c0\u03bf\u03b4\u03bf\u03c7\u03ae" + "message": "Αποδοχή" }, "activate": { - "message": "\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7" + "message": "Ενεργοποίηση" }, "activateCaptions": { - "message": "\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03a5\u03c0\u03cc\u03c4\u03b9\u03c4\u03bb\u03c9\u03bd" + "message": "Ενεργοποίηση Υπότιτλων" }, "activateFullscreen": { - "message": "\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03a0\u03bb\u03ae\u03c1\u03bf\u03c5\u03c2 \u039f\u03b8\u03cc\u03bd\u03b7" + "message": "Ενεργοποίηση Πλήρους Οθόνη" }, "activated": { - "message": "\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03b8\u03b7\u03ba\u03b5" + "message": "Ενεργοποιήθηκε" }, "activatedFeatures": { - "message": "\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03b5\u03c2 \u039b\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b5\u03c2" + "message": "Ενεργοποιημένες Λειτουργίες" }, "activeFeatures": { - "message": "\u0395\u03bd\u03b5\u03c1\u03b3\u03ad\u03c2 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b5\u03c2" + "message": "Ενεργές λειτουργίες" }, "addScrollToTop": { - "message": "\u03a0\u03c1\u03cc\u03c3\u03b8\u03b5\u03c3\u03b5 \u03c3\u03c5\u03bd\u03c4\u03cc\u03bc\u03b5\u03c5\u03c3\u03b7 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03ba\u03bf\u03c1\u03c5\u03c6\u03ae \u03c4\u03b7\u03c2 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1\u03c2" + "message": "Πρόσθεσε συντόμευση για την κορυφή της σελίδας" }, "ads": { - "message": "\u0394\u03b9\u03b1\u03c6\u03b7\u03bc\u03af\u03c3\u03b5\u03b9\u03c2" + "message": "Διαφημίσεις" }, "all": { - "message": "\u038c\u03bb\u03b1" + "message": "Όλα" }, "allow": { - "message": "\u0391\u03c0\u03bf\u03b4\u03bf\u03c7\u03ae" + "message": "Αποδοχή" }, "allow60fps": { - "message": "\u0395\u03c0\u03af\u03c4\u03c1\u03b5\u03c8\u03b5 60fps" + "message": "Επίτρεψε 60fps" }, "alwaysActive": { - "message": "\u03a0\u03ac\u03bd\u03c4\u03bf\u03c4\u03b5 \u03b5\u03bd\u03b5\u03c1\u03b3\u03cc" + "message": "Πάντοτε ενεργό" }, "alwaysShowProgressBar": { - "message": "\u03a0\u03ac\u03bd\u03c4\u03b1 \u03bf\u03c1\u03b1\u03c4\u03cc\u03c2 \u03bf \u03b5\u03bd\u03b4\u03b5\u03af\u03ba\u03c4\u03b7\u03c2 \u03c0\u03c1\u03bf\u03cc\u03b4\u03bf\u03c5" + "message": "Πάντα ορατός ο ενδείκτης προόδου" }, "amber": { - "message": "\u039a\u03b5\u03c7\u03c1\u03af" + "message": "Κεχρί" }, "analyzer": { - "message": "\u0391\u03bd\u03b1\u03bb\u03c5\u03c4\u03ae\u03c2" + "message": "Αναλυτής" }, "appearance": { - "message": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7" + "message": "Εμφάνιση" }, "audio": { - "message": "\u0389\u03c7\u03bf\u03c2" + "message": "Ήχος" }, "audioFormats": { - "message": "\u039c\u03bf\u03c1\u03c6\u03ad\u03c2 \u03ae\u03c7\u03bf\u03c5" + "message": "Μορφές ήχου" }, "auto": { - "message": "\u0391\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03bf" + "message": "Αυτόματο" }, "autoFullscreen": { - "message": "\u0391\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b7 \u03a0\u03bb\u03ae\u03c1\u03b7\u03c2 \u039f\u03b8\u03cc\u03bd\u03b7" + "message": "Αυτόματη Πλήρης Οθόνη" }, "autopauseWhenSwitchingTabs": { - "message": "\u0391\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b7 \u03c0\u03b1\u03cd\u03c3\u03b7 \u03cc\u03c4\u03b1\u03bd \u03b1\u03bb\u03bb\u03ac\u03b6\u03b5\u03c4\u03b5 \u03ba\u03b1\u03c1\u03c4\u03ad\u03bb\u03b1" + "message": "Αυτόματη παύση όταν αλλάζετε καρτέλα" }, "autoplay": { - "message": "\u0391\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b7 \u03b1\u03bd\u03b1\u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae" + "message": "Αυτόματη αναπαραγωγή" }, "backupAndReset": { - "message": "\u0391\u03bd\u03c4\u03af\u03b3\u03c1\u03b1\u03c6\u03b1 \u03b1\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2 & reset" + "message": "Αντίγραφα ασφαλείας & reset" }, "baseOnSystemColorScheme": { - "message": "\u039c\u03b5 \u03b2\u03ac\u03c3\u03b7 \u03c4\u03b9\u03c2 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 \u03c7\u03c1\u03ce\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c4\u03bf\u03c5 \u03c3\u03c5\u03c3\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2" + "message": "Με βάση τις ρυθμίσεις χρώματος του συστήματος" }, "belowPlayer": { - "message": "\u039a\u03ac\u03c4\u03c9 \u03b1\u03c0\u03cc \u03c4\u03bf Player" + "message": "Κάτω από το Player" }, "black": { - "message": "\u039c\u03b1\u03cd\u03c1\u03bf" + "message": "Μαύρο" }, "blacklist": { - "message": "\u039b\u03af\u03c3\u03c4\u03b1 \u03b1\u03c0\u03bf\u03ba\u03bb\u03b5\u03b9\u03c3\u03bc\u03bf\u03cd" + "message": "Λίστα αποκλεισμού" }, "blockAll": { - "message": "\u0391\u03c0\u03bf\u03ba\u03bb\u03b5\u03af\u03c3\u03c4\u03b5 \u03cc\u03bb\u03b1" + "message": "Αποκλείστε όλα" }, "blue": { - "message": "\u039c\u03c0\u03bb\u03b5" + "message": "Μπλε" }, "blueGray": { - "message": "\u039c\u03c0\u03bb\u03b5 \u03b3\u03ba\u03c1\u03af\u03b6\u03bf" + "message": "Μπλε γκρίζο" }, "bluelight": { - "message": "\u039c\u03c0\u03bb\u03b5 \u03c6\u03c9\u03c2" + "message": "Μπλε φως" }, "brown": { - "message": "\u039a\u03b1\u03c6\u03ad" + "message": "Καφέ" }, "browser": { "message": "Browser" }, "browserVersion": { - "message": "\u0388\u03ba\u03b4\u03bf\u03c3\u03b7 browser" + "message": "Έκδοση browser" }, "bubbles": { - "message": "\u03a6\u03bf\u03cd\u03c3\u03ba\u03b5\u03c2" + "message": "Φούσκες" }, "bug": { - "message": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03ce\u03b4\u03b9\u03ba\u03b1" + "message": "Σφάλμα κώδικα" }, "buttons": { - "message": "\u039a\u03bf\u03c5\u03bc\u03c0\u03b9\u03ac" + "message": "Κουμπιά" }, "cancel": { - "message": "\u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7" + "message": "Ακύρωση" }, "categories": { - "message": "\u039a\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b5\u03c2" + "message": "Κατηγορίες" }, "channel": { - "message": "\u039a\u03b1\u03bd\u03ac\u03bb\u03b9" + "message": "Κανάλι" }, "channels": { - "message": "\u039a\u03b1\u03bd\u03ac\u03bb\u03b9\u03b1" + "message": "Κανάλια" }, "clipboard": { "message": "Clipboard" @@ -150,400 +150,400 @@ "message": "Codec h.264" }, "collapseOfSubscriptionSections": { - "message": "\u039a\u03bb\u03b5\u03af\u03c3\u03b5 \u03c4\u03bf \u03bc\u03b5\u03bd\u03bf\u03cd \u03c3\u03c5\u03bd\u03b4\u03c1\u03bf\u03bc\u03ce\u03bd" + "message": "Κλείσε το μενού συνδρομών" }, "collapsed": { - "message": "\u039a\u03bb\u03b5\u03b9\u03c3\u03c4\u03cc" + "message": "Κλειστό" }, "comments": { - "message": "\u03a3\u03c7\u03cc\u03bb\u03b9\u03bf" + "message": "Σχόλιο" }, "confirmationBeforeClosing": { - "message": "\u0395\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03af\u03c9\u03c3\u03b7 \u03c0\u03c1\u03c9\u03c4\u03bf\u03cd \u03ba\u03bb\u03b5\u03af\u03c3\u03b5\u03b9\u03c2" + "message": "Επιβεβαίωση πρωτού κλείσεις" }, "cookies": { "message": "Cookies" }, "cores": { - "message": "\u03a0\u03c5\u03c1\u03ae\u03bd\u03b5\u03c2" + "message": "Πυρήνες" }, "cropChapterTitles": { - "message": "\u03a0\u03b5\u03c1\u03af\u03ba\u03bf\u03c8\u03b5 \u03c4\u03bf\u03c5\u03c2 \u03c4\u03af\u03c4\u03bb\u03bf\u03c5\u03c2 \u03c4\u03c9\u03bd \u03ba\u03b5\u03c6\u03b1\u03bb\u03b1\u03af\u03c9\u03bd" + "message": "Περίκοψε τους τίτλους των κεφαλαίων" }, "customCss": { - "message": "\u0395\u03be\u03b1\u03c4\u03bf\u03bc\u03af\u03ba\u03b5\u03c5\u03c3\u03b7 CSS" + "message": "Εξατομίκευση CSS" }, "customJs": { - "message": "\u0395\u03be\u03b1\u03c4\u03bf\u03bc\u03af\u03ba\u03b5\u03c5\u03c3\u03b7 JS" + "message": "Εξατομίκευση JS" }, "customMiniPlayer": { - "message": "\u0395\u03be\u03b1\u03c4\u03bf\u03bc\u03b9\u03ba\u03b5\u03c5\u03bc\u03ad\u03bd\u03bf Mini-Player" + "message": "Εξατομικευμένο Mini-Player" }, "cyan": { - "message": "\u039a\u03c5\u03b1\u03bd\u03cc" + "message": "Κυανό" }, "dark": { - "message": "\u03a3\u03ba\u03bf\u03cd\u03c1\u03bf" + "message": "Σκούρο" }, "darkTheme": { - "message": "\u03a3\u03ba\u03bf\u03cd\u03c1\u03bf \u03b8\u03ad\u03bc\u03b1" + "message": "Σκούρο θέμα" }, "dateAndTime": { - "message": "\u0397\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1 & \u03ce\u03c1\u03b1" + "message": "Ημερομηνία & ώρα" }, "dawn": { - "message": "\u0391\u03c5\u03b3\u03ae" + "message": "Αυγή" }, "decreasePlaybackSpeed": { - "message": "\u039c\u03b5\u03af\u03c9\u03c3\u03b5 \u03c4\u03b1\u03c7\u03cd\u03c4\u03b7\u03c4\u03b1 \u03b1\u03bd\u03b1\u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae\u03c2" + "message": "Μείωσε ταχύτητα αναπαραγωγής" }, "decreaseVolume": { - "message": "\u039c\u03b5\u03b9\u03ce\u03c3\u03c4\u03b5 \u03ad\u03bd\u03c4\u03b1\u03c3\u03b7" + "message": "Μειώστε ένταση" }, "deepOrange": { - "message": "\u0392\u03b1\u03b8\u03cd \u03c0\u03bf\u03c1\u03c4\u03bf\u03ba\u03b1\u03bb\u03af" + "message": "Βαθύ πορτοκαλί" }, "deepPurple": { - "message": "\u0392\u03b1\u03b8\u03cd \u03bc\u03bf\u03b2" + "message": "Βαθύ μοβ" }, "defaultChannelTab": { - "message": "\u03a0\u03c1\u03bf\u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03b7 \u03ba\u03b1\u03c1\u03c4\u03ad\u03bb\u03b1 \u03ba\u03b1\u03bd\u03b1\u03bb\u03b9\u03bf\u03cd" + "message": "Προεπιλεγμένη καρτέλα καναλιού" }, "deleteYoutubeCookies": { - "message": "\u039a\u03b1\u03c4\u03ac\u03c1\u03b3\u03b7\u03c3\u03b5 \u03c4\u03b1 cookies \u03c4\u03bf\u03c5 YouTube" + "message": "Κατάργησε τα cookies του YouTube" }, "description": { - "message": "\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae" + "message": "Περιγραφή" }, "desert": { - "message": "\u0388\u03c1\u03b7\u03bc\u03bf\u03c2" + "message": "Έρημος" }, "details": { - "message": "\u039b\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2" + "message": "Λεπτομέρειες" }, "developerOptions": { - "message": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ad\u03c2 \u03b3\u03b9\u03b1 \u03c0\u03c1\u03bf\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1\u03c4\u03b9\u03c3\u03c4\u03ad\u03c2" + "message": "Επιλογές για προγραμματιστές" }, "device": { - "message": "\u03a3\u03c5\u03c3\u03ba\u03b5\u03c5\u03ae" + "message": "Συσκευή" }, "dim": { - "message": "\u03a3\u03ba\u03bf\u03c4\u03b5\u03b9\u03bd\u03cc" + "message": "Σκοτεινό" }, "disabled": { - "message": "\u0391\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03bf" + "message": "Απενεργοποιημένο" }, "dislike": { - "message": "\u0394\u03b5 \u03bc\u03bf\u03c5 \u03b1\u03c1\u03ad\u03c3\u03b5\u03b9" + "message": "Δε μου αρέσει" }, "doNotChange": { - "message": "\u039d\u03b1 \u03bc\u03b7\u03bd \u03b1\u03bb\u03bb\u03ac\u03be\u03b5\u03b9" + "message": "Να μην αλλάξει" }, "donate": { - "message": "\u03a3\u03c5\u03bd\u03b5\u03b9\u03c3\u03c6\u03ad\u03c1\u03b5\u03c4\u03b5 \u03bf\u03b9\u03ba\u03bf\u03bd\u03bf\u03bc\u03b9\u03ba\u03ac" + "message": "Συνεισφέρετε οικονομικά" }, "draggable": { - "message": "\u039c\u03b5\u03c4\u03b1\u03ba\u03b9\u03bd\u03ae\u03c3\u03b9\u03bc\u03bf \u03bc\u03b5 \u03c3\u03cd\u03c1\u03c3\u03b7" + "message": "Μετακινήσιμο με σύρση" }, "email": { "message": "Email" }, "empty": { - "message": "\u039a\u03b5\u03bd\u03cc" + "message": "Κενό" }, "enabled": { - "message": "\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03bf" + "message": "Ενεργοποιημένο" }, "enabledForced": { - "message": "\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03bf (\u03a5\u03c0\u03bf\u03c7\u03c1\u03b5\u03c9\u03c4\u03b9\u03ba\u03ac)" + "message": "Ενεργοποιημένο (Υποχρεωτικά)" }, "expanded": { - "message": "\u0391\u03bd\u03bf\u03b9\u03ba\u03c4\u03cc" + "message": "Ανοικτό" }, "exportSettings": { - "message": "\u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd" + "message": "Εξαγωγή ρυθμίσεων" }, "extension": { - "message": "\u0395\u03c0\u03ad\u03ba\u03c4\u03b1\u03c3\u03b7" + "message": "Επέκταση" }, "file": { - "message": "\u0391\u03c1\u03c7\u03b5\u03af\u03bf" + "message": "Αρχείο" }, "filters": { - "message": "\u03a6\u03af\u03bb\u03c4\u03c1\u03b1" + "message": "Φίλτρα" }, "fitToWindow": { - "message": "\u039d\u03b1 \u03c7\u03c9\u03c1\u03ac\u03b5\u03b9 \u03c3\u03c4\u03bf \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf" + "message": "Να χωράει στο παράθυρο" }, "flash": { "message": "Flash" }, "font": { - "message": "\u0393\u03c1\u03b1\u03bc\u03bc\u03b1\u03c4\u03bf\u03c3\u03b5\u03b9\u03c1\u03ac" + "message": "Γραμματοσειρά" }, "footer": { - "message": "\u03a5\u03c0\u03bf\u03c3\u03ad\u03bb\u03b9\u03b4\u03bf" + "message": "Υποσέλιδο" }, "forceSDR": { "message": "Force SDR" }, "forcedPlaybackSpeed": { - "message": "\u03a5\u03c0\u03bf\u03c7\u03c1\u03b5\u03c9\u03c4\u03b9\u03ba\u03ae \u03c4\u03b1\u03c7\u03cd\u03c4\u03b7\u03c4\u03b1 \u03b1\u03bd\u03b1\u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae\u03c2" + "message": "Υποχρεωτική ταχύτητα αναπαραγωγής" }, "forcedTheaterMode": { - "message": "\u03a5\u03c0\u03bf\u03c7\u03c1\u03b5\u03c9\u03c4\u03b9\u03ba\u03ae \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03ba\u03b9\u03bd\u03b7\u03bc\u03b1\u03c4\u03bf\u03b3\u03c1\u03ac\u03c6\u03bf\u03c5" + "message": "Υποχρεωτική λειτουργία κινηματογράφου" }, "forcedVolume": { - "message": "\u03a5\u03c0\u03bf\u03c7\u03c1\u03b5\u03c9\u03c4\u03b9\u03ba\u03ae \u03ad\u03bd\u03c4\u03b1\u03c3\u03b7" + "message": "Υποχρεωτική ένταση" }, "foundABug": { - "message": "\u0395\u03bd\u03c4\u03bf\u03c0\u03af\u03c3\u03b1\u03c4\u03b5 \u03ba\u03ac\u03c0\u03bf\u03b9\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1;" + "message": "Εντοπίσατε κάποιο σφάλμα;" }, "fullWindow": { - "message": "\u03a0\u03bb\u03ae\u03c1\u03b5\u03c2 \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf" + "message": "Πλήρες παράθυρο" }, "general": { - "message": "\u0393\u03b5\u03bd\u03b9\u03ba\u03ac" + "message": "Γενικά" }, "github": { "message": "GitHub" }, "goToSearchBox": { - "message": "\u03a0\u03ae\u03b3\u03b1\u03b9\u03bd\u03b5 \u03c3\u03c4\u03bf \u03c0\u03b5\u03b4\u03af\u03bf \u03b1\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7\u03c2" + "message": "Πήγαινε στο πεδίο αναζήτησης" }, "gpu": { "message": "GPU" }, "green": { - "message": "\u03a0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf" + "message": "Πράσινο" }, "hdThumbnail": { - "message": "HD \u0395\u03b9\u03ba\u03bf\u03bd\u03af\u03b4\u03b9\u03bf \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" + "message": "HD Εικονίδιο βίντεο" }, "hdThumbnails": { - "message": "HD \u0395\u03b9\u03ba\u03bf\u03bd\u03af\u03b4\u03b9\u03b1 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" + "message": "HD Εικονίδια βίντεο" }, "header": { - "message": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1" + "message": "Κεφαλίδα" }, "hidden": { - "message": "\u039a\u03c1\u03c5\u03bc\u03bc\u03ad\u03bd\u03bf" + "message": "Κρυμμένο" }, "hiddenOnVideoPage": { - "message": "\u039a\u03c1\u03c5\u03bc\u03bc\u03ad\u03bd\u03bf \u03c3\u03c4\u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" + "message": "Κρυμμένο στη σελίδα βίντεο" }, "hideAnimatedThumbnails": { - "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03b1 \u03ba\u03b9\u03bd\u03bf\u03cd\u03bc\u03b5\u03bd\u03b1 \u03b5\u03b9\u03ba\u03bf\u03bd\u03af\u03b4\u03b9\u03b1 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" + "message": "Απόκρυψε τα κινούμενα εικονίδια βίντεο" }, "hideAnnotations": { - "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03b1 annotations" + "message": "Απόκρυψε τα annotations" }, "hideCards": { - "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03b9\u03c2 \u03ba\u03ac\u03c1\u03c4\u03b5\u03c2" + "message": "Απόκρυψε τις κάρτες" }, "hideDetails": { - "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03b9\u03c2 \u03bb\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2" + "message": "Απόκρυψε τις λεπτομέρειες" }, "hideEndscreen": { - "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03b7\u03bd \u03ba\u03ac\u03c1\u03c4\u03b1 \u03c4\u03ad\u03bb\u03bf\u03c5\u03c2" + "message": "Απόκρυψε την κάρτα τέλους" }, "hideFeaturedContent": { - "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03bf \u03c0\u03c1\u03bf\u03c4\u03b5\u03b9\u03bd\u03cc\u03bc\u03b5\u03bd\u03bf \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03bf" + "message": "Απόκρυψε το προτεινόμενο περιεχόμενο" }, "hideFooter": { - "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03bf \u03c5\u03c0\u03bf\u03c3\u03ad\u03bb\u03b9\u03b4\u03bf" + "message": "Απόκρυψε το υποσέλιδο" }, "hideGradientBottom": { - "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03bf \u03ba\u03ac\u03c4\u03c9 \u03bc\u03ad\u03c1\u03bf\u03c2 \u03c4\u03b7\u03c2 \u03c7\u03c1\u03c9\u03bc\u03b1\u03c4\u03b9\u03ba\u03ae\u03c2 \u03b4\u03b9\u03b1\u03b2\u03ac\u03b8\u03bc\u03b9\u03c3\u03b7\u03c2" + "message": "Απόκρυψε το κάτω μέρος της χρωματικής διαβάθμισης" }, "hidePlaylist": { - "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03b1 playlists" + "message": "Απόκρυψε τα playlists" }, "hideRightButtons": { - "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03b1 \u03ba\u03bf\u03c5\u03bc\u03c0\u03b9\u03ac \u03c3\u03c4\u03b1 \u03b4\u03b5\u03be\u03b9\u03ac" + "message": "Απόκρυψε τα κουμπιά στα δεξιά" }, "hideScrollForDetails": { - "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03bf \u00abScroll for details\u00bb" + "message": "Απόκρυψε το «Scroll for details»" }, "hideViewsCount": { - "message": "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b5 \u03c4\u03bf\u03bd \u03b1\u03c1\u03b9\u03b8\u03bc\u03cc \u03c0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ce\u03bd" + "message": "Απόκρυψε τον αριθμό προβολών" }, "history": { - "message": "\u0399\u03c3\u03c4\u03bf\u03c1\u03b9\u03ba\u03cc" + "message": "Ιστορικό" }, "home": { - "message": "\u0391\u03c1\u03c7\u03b9\u03ba\u03ae \u03c3\u03b5\u03bb\u03af\u03b4\u03b1" + "message": "Αρχική σελίδα" }, "hover": { - "message": "\u039a\u03ad\u03c1\u03c3\u03bf\u03c1\u03b1\u03c2 \u03b1\u03c0\u03cc \u03c0\u03ac\u03bd\u03c9" + "message": "Κέρσορας από πάνω" }, "hoverOnVideoPage": { - "message": "\u039a\u03ad\u03c1\u03c3\u03bf\u03c1\u03b1\u03c2 \u03c0\u03ac\u03bd\u03c9 \u03c3\u03c4\u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" + "message": "Κέρσορας πάνω στη σελίδα βίντεο" }, "howLongAgoTheVideoWasUploaded": { - "message": "\u03a0\u03c1\u03b9\u03bd \u03b1\u03c0\u03cc \u03c0\u03cc\u03c3\u03bf \u03b1\u03bd\u03ad\u03b2\u03b7\u03ba\u03b5 \u03c4\u03bf \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" + "message": "Πριν από πόσο ανέβηκε το βίντεο" }, "icons": { - "message": "\u0395\u03b9\u03ba\u03bf\u03bd\u03af\u03b4\u03b9\u03b1" + "message": "Εικονίδια" }, "iconsOnly": { - "message": "\u0395\u03b9\u03ba\u03bf\u03bd\u03af\u03b4\u03b9\u03b1 \u03bc\u03cc\u03bd\u03bf" + "message": "Εικονίδια μόνο" }, "importSettings": { - "message": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd" + "message": "Εισαγωγή ρυθμίσεων" }, "improveLogo": { - "message": "\u039b\u03bf\u03b3\u03cc\u03c4\u03c5\u03c0\u03bf Improve" + "message": "Λογότυπο Improve" }, "improvedtubeIconInBrowser": { - "message": "\u0395\u03b9\u03ba\u03bf\u03bd\u03af\u03b4\u03b9\u03bf ImprovedTube \u03c3\u03c4\u03bf Browser" + "message": "Εικονίδιο ImprovedTube στο Browser" }, "improvedtubeIconOnYoutube": { - "message": "\u0395\u03b9\u03ba\u03bf\u03bd\u03af\u03b4\u03b9\u03bf ImprovedTube \u03c3\u03c4\u03bf YouTube" + "message": "Εικονίδιο ImprovedTube στο YouTube" }, "improvedtubeLanguage": { - "message": "\u0393\u03bb\u03ce\u03c3\u03c3\u03b1 ImprovedTube" + "message": "Γλώσσα ImprovedTube" }, "improvedtubeVersion": { - "message": "\u0388\u03ba\u03b4\u03bf\u03c3\u03b7 ImprovedTube" + "message": "Έκδοση ImprovedTube" }, "increasePlaybackSpeed": { - "message": "\u0391\u03cd\u03be\u03b7\u03c3\u03b5 \u03c4\u03b7\u03bd \u03c4\u03b1\u03c7\u03cd\u03c4\u03b7\u03c4\u03b1 \u03b1\u03bd\u03b1\u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae\u03c2" + "message": "Αύξησε την ταχύτητα αναπαραγωγής" }, "increaseVolume": { - "message": "\u0391\u03cd\u03be\u03b7\u03c3\u03b5 \u03c4\u03b7\u03bd \u03ad\u03bd\u03c4\u03b1\u03c3\u03b7" + "message": "Αύξησε την ένταση" }, "indigo": { "message": "Indigo" }, "items": { - "message": "\u0391\u03bd\u03c4\u03b9\u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03b1" + "message": "Αντικείμενα" }, "languages": { - "message": "\u0393\u03bb\u03ce\u03c3\u03c3\u03b5\u03c2" + "message": "Γλώσσες" }, "legacyYoutube": { - "message": "\u03a0\u03b1\u03bb\u03b9\u03ac \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7 YouTube" + "message": "Παλιά έκδοση YouTube" }, "light": { - "message": "\u0391\u03bd\u03bf\u03b9\u03c7\u03c4\u03cc\u03c7\u03c1\u03c9\u03bc\u03bf" + "message": "Ανοιχτόχρωμο" }, "lightBlue": { - "message": "\u0391\u03bd\u03bf\u03b9\u03ba\u03c4\u03cc \u03bc\u03c0\u03bb\u03b5" + "message": "Ανοικτό μπλε" }, "lightGreen": { - "message": "\u0391\u03bd\u03bf\u03b9\u03ba\u03c4\u03cc \u03c0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf" + "message": "Ανοικτό πράσινο" }, "like": { - "message": "\u039c\u03bf\u03c5 \u03b1\u03c1\u03ad\u03c3\u03b5\u03b9" + "message": "Μου αρέσει" }, "likes": { "message": "Likes" }, "lime": { - "message": "\u039c\u03bf\u03c3\u03c7\u03bf\u03bb\u03ad\u03bc\u03bf\u03bd\u03bf" + "message": "Μοσχολέμονο" }, "list": { - "message": "\u039b\u03af\u03c3\u03c4\u03b1" + "message": "Λίστα" }, "liveChat": { "message": "Live chat" }, "liveChatType": { - "message": "\u03a4\u03cd\u03c0\u03bf\u03c2 live chat" + "message": "Τύπος live chat" }, "loudnessNormalization": { - "message": "\u039a\u03b1\u03bd\u03bf\u03bd\u03b9\u03ba\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03ad\u03bd\u03c4\u03b1\u03c3\u03b7\u03c2" + "message": "Κανονικοποίηση έντασης" }, "markWatchedVideos": { - "message": "\u0395\u03c0\u03b9\u03c3\u03ae\u03bc\u03b1\u03bd\u03c3\u03b7 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf \u03c0\u03bf\u03c5 \u03c0\u03c1\u03bf\u03b2\u03bb\u03ae\u03b8\u03b7\u03ba\u03b1\u03bd" + "message": "Επισήμανση βίντεο που προβλήθηκαν" }, "mixer": { "message": "Mixer" }, "myColors": { - "message": "\u03a4\u03b1 \u03c7\u03c1\u03ce\u03bc\u03b1\u03c4\u03ac \u03bc\u03bf\u03c5" + "message": "Τα χρώματά μου" }, "name": { - "message": "\u038c\u03bd\u03bf\u03bc\u03b1" + "message": "Όνομα" }, "nativeMiniPlayer": { - "message": "Mini player \u03c3\u03c5\u03c3\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2" + "message": "Mini player συστήματος" }, "new": { - "message": "\u039d\u03ad\u03bf" + "message": "Νέο" }, "nextVideo": { - "message": "\u0395\u03c0\u03cc\u03bc\u03b5\u03bd\u03bf \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" + "message": "Επόμενο βίντεο" }, "night": { - "message": "\u039d\u03cd\u03c7\u03c4\u03b1" + "message": "Νύχτα" }, "noActiveFeatures": { - "message": "\u039a\u03b1\u03bc\u03af\u03b1 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b5\u03bd\u03b5\u03c1\u03b3\u03ae" + "message": "Καμία λειτουργία ενεργή" }, "noOpenVideoTabs": { - "message": "\u039a\u03b1\u03bc\u03af\u03b1 \u03ba\u03b1\u03c1\u03c4\u03ad\u03bb\u03b1 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf \u03b1\u03bd\u03bf\u03b9\u03ba\u03c4\u03ae" + "message": "Καμία καρτέλα βίντεο ανοικτή" }, "none": { - "message": "\u039a\u03b1\u03bd\u03ad\u03bd\u03b1" + "message": "Κανένα" }, "normal": { - "message": "\u039a\u03b1\u03bd\u03bf\u03bd\u03b9\u03ba\u03cc" + "message": "Κανονικό" }, "old": { - "message": "\u03a0\u03b1\u03bb\u03b9\u03cc" + "message": "Παλιό" }, "onAllVideos": { - "message": "\u03a3\u03b5 \u03cc\u03bb\u03b1 \u03c4\u03b1 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" + "message": "Σε όλα τα βίντεο" }, "onSubscribedChannels": { - "message": "\u03a3\u03b5 \u03ba\u03b1\u03bd\u03ac\u03bb\u03b9\u03b1 \u03c0\u03bf\u03c5 \u03ad\u03c7\u03b5\u03b9 \u03b3\u03af\u03bd\u03b5\u03b9 \u03c3\u03c5\u03bd\u03b4\u03c1\u03bf\u03bc\u03ae" + "message": "Σε κανάλια που έχει γίνει συνδρομή" }, "onlyActiveOnYoutube": { - "message": "\u039c\u03cc\u03bd\u03bf \u03b5\u03bd\u03b5\u03c1\u03b3\u03cc \u03c3\u03c4\u03bf YouTube" + "message": "Μόνο ενεργό στο YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "\u039c\u03cc\u03bd\u03bf \u03ad\u03bd\u03b1 player \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03b5\u03af" + "message": "Μόνο ένα player λειτουργεί" }, "orange": { - "message": "\u03a0\u03bf\u03c1\u03c4\u03bf\u03ba\u03b1\u03bb\u03af" + "message": "Πορτοκαλί" }, "os": { "message": "OS" }, "other": { - "message": "\u0386\u03bb\u03bb\u03bf" + "message": "Άλλο" }, "permissions": { - "message": "\u0386\u03b4\u03b5\u03b9\u03b1" + "message": "Άδεια" }, "pictureInPicture": { "message": "Picture-in-Picture" }, "pink": { - "message": "\u03a1\u03bf\u03b6" + "message": "Ροζ" }, "plain": { - "message": "\u03a3\u03ba\u03ad\u03c4\u03bf" + "message": "Σκέτο" }, "platform": { - "message": "\u03a0\u03bb\u03b1\u03c4\u03c6\u03cc\u03c1\u03bc\u03b1" + "message": "Πλατφόρμα" }, "playPause": { "message": "Play / Pause" }, "playbackSpeed": { - "message": "\u03a4\u03b1\u03c7\u03cd\u03c4\u03b7\u03c4\u03b1 \u03b1\u03bd\u03b1\u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae\u03c2" + "message": "Ταχύτητα αναπαραγωγής" }, "player": { "message": "Player" }, "playerColor": { - "message": "\u03a7\u03c1\u03ce\u03bc\u03c3 player" + "message": "Χρώμσ player" }, "playerSize": { - "message": "\u039c\u03ad\u03b3\u03b5\u03b8\u03bf\u03c2 player" + "message": "Μέγεθος player" }, "playlist": { "message": "Playlist" @@ -555,106 +555,106 @@ "message": "Popup player" }, "position": { - "message": "\u0398\u03ad\u03c3\u03b7" + "message": "Θέση" }, "pressAnyKeyOrScroll": { - "message": "\u03a0\u03af\u03b5\u03c3\u03b5 \u03bf\u03c0\u03bf\u03b9\u03bf\u03b4\u03ae\u03c0\u03bf\u03c4\u03b5 \u03c0\u03bb\u03ae\u03ba\u03c4\u03c1\u03bf \u03ae \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b5 \u03c4\u03b7 \u03c1\u03bf\u03b4\u03ad\u03bb\u03b1 \u03c3\u03c4\u03bf \u03c0\u03bf\u03bd\u03c4\u03af\u03ba\u03b9." + "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." }, "pressAnyKeyOrUseMouseWheel": { - "message": "\u03a0\u03af\u03b5\u03c3\u03b5 \u03bf\u03c0\u03bf\u03b9\u03bf\u03b4\u03ae\u03c0\u03bf\u03c4\u03b5 \u03c0\u03bb\u03ae\u03ba\u03c4\u03c1\u03bf \u03ae \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b5 \u03c4\u03b7 \u03c1\u03bf\u03b4\u03ad\u03bb\u03b1 \u03c3\u03c4\u03bf \u03c0\u03bf\u03bd\u03c4\u03af\u03ba\u03b9." + "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." }, "previousVideo": { - "message": "\u03a0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" + "message": "Προηγούμενο βίντεο" }, "primaryColor": { - "message": "\u03a0\u03c1\u03c9\u03c4\u03b5\u03cd\u03bf\u03bd \u03c7\u03c1\u03ce\u03bc\u03b1" + "message": "Πρωτεύον χρώμα" }, "purple": { - "message": "\u039c\u03bf\u03b2" + "message": "Μοβ" }, "quality": { - "message": "\u03a0\u03bf\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1" + "message": "Ποιότητα" }, "ram": { "message": "RAM" }, "rateUs": { - "message": "\u0391\u03be\u03b9\u03bf\u03bb\u03cc\u03b3\u03b7\u03c3\u03ad \u03bc\u03b1\u03c2" + "message": "Αξιολόγησέ μας" }, "red": { - "message": "\u039a\u03cc\u03ba\u03ba\u03b9\u03bd\u03bf" + "message": "Κόκκινο" }, "redDislikeButton": { - "message": "\u0394\u03b5\u03af\u03be\u03c4\u03b5 \u03c4\u03bf \u03c0\u03bb\u03ae\u03ba\u03c4\u03c1\u03bf \u00ab\u0394\u03b5 \u03bc\u03bf\u03c5 \u03b1\u03c1\u03ad\u03c3\u03b5\u03b9\u00bb \u03c3\u03b5 \u03ba\u03cc\u03ba\u03ba\u03b9\u03bd\u03bf" + "message": "Δείξτε το πλήκτρο «Δε μου αρέσει» σε κόκκινο" }, "relatedVideos": { - "message": "\u03a3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac videos" + "message": "Σχετικά videos" }, "removeRelatedSearchResults": { - "message": "\u0391\u03c6\u03b1\u03af\u03c1\u03b5\u03c3\u03b5 \u03c3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac \u03b1\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03b1 \u03b1\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7\u03c2" + "message": "Αφαίρεσε σχετικά αποτελέσματα αναζήτησης" }, "repeat": { - "message": "\u0395\u03c0\u03b1\u03bd\u03ac\u03bb\u03b7\u03c8\u03b7" + "message": "Επανάληψη" }, "reset": { - "message": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac" + "message": "Επαναφορά" }, "resetAllSettings": { - "message": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd" + "message": "Επαναφορά όλων των ρυθμίσεων" }, "resetAllShortcuts": { - "message": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03c3\u03c5\u03bd\u03c4\u03bf\u03bc\u03b5\u03cd\u03c3\u03b5\u03c9\u03bd" + "message": "Επαναφορά όλων των συντομεύσεων" }, "reverse": { - "message": "\u0391\u03bd\u03ac\u03c0\u03bf\u03b4\u03b1" + "message": "Ανάποδα" }, "rotate": { - "message": "\u03a0\u03b5\u03c1\u03b9\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae" + "message": "Περιστροφή" }, "save": { - "message": "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7" + "message": "Αποθήκευση" }, "saveAs": { - "message": "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c9\u03c2" + "message": "Αποθήκευση ως" }, "schedule": { - "message": "\u03a0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1" + "message": "Πρόγραμμα" }, "screen": { - "message": "\u039f\u03b8\u03cc\u03bd\u03b7" + "message": "Οθόνη" }, "screenshot": { - "message": "\u03a3\u03c4\u03b9\u03b3\u03bc\u03b9\u03cc\u03c4\u03c5\u03c0\u03bf" + "message": "Στιγμιότυπο" }, "search": { - "message": "\u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7" + "message": "Αναζήτηση" }, "searchBarOnly": { - "message": "\u03a0\u03b5\u03b4\u03af\u03bf \u03b1\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7\u03c2 \u03bc\u03cc\u03bd\u03bf" + "message": "Πεδίο αναζήτησης μόνο" }, "seekBackward10Seconds": { - "message": "\u03a0\u03af\u03c3\u03c9 10 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1" + "message": "Πίσω 10 δευτερόλεπτα" }, "seekForward10Seconds": { - "message": "\u039c\u03c0\u03c1\u03bf\u03c3\u03c4\u03ac 10 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1" + "message": "Μπροστά 10 δευτερόλεπτα" }, "settings": { - "message": "\u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2" + "message": "Ρυθμίσεις" }, "settingsSuccessfullyImported": { - "message": "\u0395\u03c0\u03b9\u03c4\u03c5\u03c7\u03ae\u03c2 \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd" + "message": "Επιτυχής εισαγωγή ρυθμίσεων" }, "shortcuts": { - "message": "\u03a3\u03c5\u03bd\u03c4\u03bf\u03bc\u03b5\u03cd\u03c3\u03b5\u03b9\u03c2" + "message": "Συντομεύσεις" }, "showCardsOnMouseHover": { - "message": "\u0394\u03b5\u03af\u03be\u03b5 \u03c4\u03b9\u03c2 \u03ba\u03ac\u03c1\u03c4\u03b5\u03c2 \u03cc\u03c4\u03b1\u03bd \u03bf \u03ba\u03ad\u03c1\u03c3\u03bf\u03c1\u03b1\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03c0\u03cc \u03c0\u03ac\u03bd\u03c9" + "message": "Δείξε τις κάρτες όταν ο κέρσορας είναι από πάνω" }, "showChannelVideosCount": { - "message": "\u0394\u03b5\u03af\u03be\u03b5 \u03c4\u03b9\u03c2 \u03c3\u03c5\u03bd\u03bf\u03bb\u03b9\u03ba\u03ad\u03c2 \u03c0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ad\u03c2 \u03c4\u03bf\u03c5 \u03ba\u03b1\u03bd\u03b1\u03bb\u03b9\u03bf\u03cd" + "message": "Δείξε τις συνολικές προβολές του καναλιού" }, "shuffle": { - "message": "\u03a4\u03c5\u03c7\u03b1\u03af\u03b1 \u03b1\u03bd\u03b1\u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae" + "message": "Τυχαία αναπαραγωγή" }, "sidebar": { "message": "Sidebar" @@ -663,76 +663,76 @@ "message": "Spacebar" }, "squaredUserImages": { - "message": "\u03a4\u03b5\u03c4\u03c1\u03ac\u03b3\u03c9\u03bd\u03b5\u03c2 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b5\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7" + "message": "Τετράγωνες εικόνες χρήστη" }, "static": { - "message": "\u03a3\u03c4\u03b1\u03c4\u03b9\u03ba\u03cc" + "message": "Στατικό" }, "statsForNerds": { - "message": "\u0394\u03b5\u03af\u03be\u03b5 \u03c4\u03b1 \u03a3\u03c4\u03b1\u03c4\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac \u03b3\u03b9\u03b1 \u03a3\u03c0\u03b1\u03c3\u03af\u03ba\u03bb\u03b5\u03c2" + "message": "Δείξε τα Στατιστικά για Σπασίκλες" }, "step": { - "message": "\u0392\u03ae\u03bc\u03b1" + "message": "Βήμα" }, "stop": { - "message": "\u03a3\u03c4\u03bf\u03c0" + "message": "Στοπ" }, "style": { - "message": "\u03a3\u03c4\u03c5\u03bb" + "message": "Στυλ" }, "styles": { - "message": "\u03a3\u03c4\u03c5\u03bb" + "message": "Στυλ" }, "subscriptions": { - "message": "\u03a3\u03c5\u03bd\u03b4\u03c1\u03bf\u03bc\u03ad\u03c2" + "message": "Συνδρομές" }, "subtitles": { - "message": "\u03a5\u03c0\u03cc\u03c4\u03b9\u03c4\u03bb\u03bf\u03b9" + "message": "Υπότιτλοι" }, "sunset": { - "message": "\u0397\u03bb\u03b9\u03bf\u03b2\u03b1\u03c3\u03af\u03bb\u03b5\u03bc\u03b1" + "message": "Ηλιοβασίλεμα" }, "sunsetToSunrise": { - "message": "\u0391\u03c0\u03cc \u03b4\u03cd\u03c3\u03b7 \u03ad\u03c9\u03c2 \u03b1\u03bd\u03b1\u03c4\u03bf\u03bb\u03ae" + "message": "Από δύση έως ανατολή" }, "systemPeferenceDark": { - "message": "\u03a0\u03c1\u03bf\u03c4\u03af\u03bc\u03b7\u03c3\u03b7 \u03c3\u03c5\u03c3\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2: \u03a3\u03ba\u03bf\u03cd\u03c1\u03bf" + "message": "Προτίμηση συστήματος: Σκούρο" }, "systemPeferenceLight": { - "message": "\u03a0\u03c1\u03bf\u03c4\u03af\u03bc\u03b7\u03c3\u03b7 \u03c3\u03c5\u03c3\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2: \u0391\u03bd\u03bf\u03b9\u03ba\u03c4\u03cc\u03c7\u03c1\u03c9\u03bc\u03bf" + "message": "Προτίμηση συστήματος: Ανοικτόχρωμο" }, "teal": { - "message": "\u0393\u03b1\u03bb\u03b1\u03b6\u03b9\u03bf\u03c0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf" + "message": "Γαλαζιοπράσινο" }, "textColor": { - "message": "\u03a7\u03c1\u03ce\u03bc\u03b1 \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5" + "message": "Χρώμα κειμένου" }, "themes": { - "message": "\u0398\u03ad\u03bc\u03b1\u03c4\u03b1" + "message": "Θέματα" }, "thisWillRemoveAllCookies": { - "message": "\u0391\u03c5\u03c4\u03cc \u03b1\u03c6\u03b1\u03b9\u03c1\u03b5\u03af \u03cc\u03bb\u03b1 \u03c4\u03b1 cookies." + "message": "Αυτό αφαιρεί όλα τα cookies." }, "thisWillRemoveAllYouTubeCookies": { - "message": "\u0391\u03c5\u03c4\u03cc \u03b1\u03c6\u03b1\u03b9\u03c1\u03b5\u03af \u03cc\u03bb\u03b1 \u03c4\u03b1 cookies \u03c4\u03bf\u03c5 YouTube." + "message": "Αυτό αφαιρεί όλα τα cookies του YouTube." }, "thisWillResetAllSettings": { - "message": "\u0391\u03c5\u03c4\u03cc \u03b5\u03c0\u03b1\u03bd\u03b1\u03c6\u03ad\u03c1\u03b5\u03b9 \u03cc\u03bb\u03b5\u03c2 \u03c4\u03b9\u03c2 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2." + "message": "Αυτό επαναφέρει όλες τις ρυθμίσεις." }, "thisWillResetAllShortcuts": { - "message": "\u0391\u03c5\u03c4\u03cc \u03b5\u03c0\u03b1\u03bd\u03b1\u03c6\u03ad\u03c1\u03b5\u03b9 \u03cc\u03bb\u03b5\u03c2 \u03c4\u03b9\u03c2 \u03c3\u03c5\u03bd\u03c4\u03bf\u03bc\u03b5\u03cd\u03c3\u03b5\u03b9\u03c2." + "message": "Αυτό επαναφέρει όλες τις συντομεύσεις." }, "thumbnails": { - "message": "\u0395\u03b9\u03ba\u03bf\u03bd\u03af\u03b4\u03b9\u03b1" + "message": "Εικονίδια" }, "timeFrom": { - "message": "\u03a7\u03c1\u03cc\u03bd\u03bf\u03c2 \u03b1\u03c0\u03cc" + "message": "Χρόνος από" }, "timeTo": { - "message": "\u03a7\u03c1\u03cc\u03bd\u03bf\u03c2 \u03ad\u03c9\u03c2" + "message": "Χρόνος έως" }, "todayAt": { - "message": "\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1 \u03c3\u03c4\u03b9\u03c2" + "message": "Σήμερα στις" }, "toggleCards": { "message": "Toggle cards" @@ -744,72 +744,72 @@ "message": "Trailer autoplay" }, "translations": { - "message": "\u039c\u03b5\u03c4\u03b1\u03c6\u03c1\u03ac\u03c3\u03b5\u03b9\u03c2" + "message": "Μεταφράσεις" }, "transparentBackground": { - "message": "\u0394\u03b9\u03b1\u03c6\u03b1\u03bd\u03ad\u03c2 \u03c5\u03c0\u03cc\u03b2\u03b1\u03b8\u03c1\u03bf" + "message": "Διαφανές υπόβαθρο" }, "trending": { - "message": "\u03a4\u03ac\u03c3\u03b5\u03b9\u03c2" + "message": "Τάσεις" }, "tryToReloadThePage": { - "message": "\u03a0\u03c1\u03bf\u03c3\u03c0\u03ac\u03b8\u03b7\u03c3\u03b5 \u03bd\u03b1 \u03b5\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03c4\u03ce\u03c3\u03b5\u03b9\u03c2 \u03c4\u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1" + "message": "Προσπάθησε να επαναφορτώσεις τη σελίδα" }, "type": { - "message": "\u03a4\u03cd\u03c0\u03bf\u03c2" + "message": "Τύπος" }, "upNextAutoplay": { - "message": "\u0395\u03c0\u03cc\u03bc\u03b5\u03bd\u03bf \u03c3\u03c4\u03bf autoplay" + "message": "Επόμενο στο autoplay" }, "use24HourFormat": { - "message": "\u03a7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b5 24\u03c9\u03c1\u03b7 \u03bc\u03bf\u03c1\u03c6\u03ae \u03ce\u03c1\u03b1\u03c2" + "message": "Χρησιμοποίησε 24ωρη μορφή ώρας" }, "version": { - "message": "\u0388\u03ba\u03b4\u03bf\u03c3\u03b7" + "message": "Έκδοση" }, "video": { - "message": "\u0392\u03af\u03bd\u03c4\u03b5\u03bf" + "message": "Βίντεο" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "\u0397 \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03bf\u03c5 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf \u03b8\u03b1 \u03b5\u03c0\u03b5\u03ba\u03c4\u03b1\u03b8\u03b5\u03af \u03c9\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03c3\u03c5\u03bc\u03c0\u03b5\u03c1\u03b9\u03bb\u03b7\u03c6\u03b8\u03b5\u03af \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c4\u03b7\u03c2 \u03ba\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1\u03c2." + "message": "Η περιγραφή του βίντεο θα επεκταθεί ωστε να συμπεριληφθεί το όνομα της κατηγορίας." }, "videoFormats": { - "message": "\u039c\u03bf\u03c1\u03c6\u03ad\u03c2 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf" + "message": "Μορφές βίντεο" }, "videos": { - "message": "\u0392\u03af\u03bd\u03c4\u03b5\u03bf" + "message": "Βίντεο" }, "volume": { - "message": "\u0388\u03bd\u03c4\u03b1\u03c3\u03b7" + "message": "Ένταση" }, "watchLater": { - "message": "\u0394\u03b5\u03c2 \u03b1\u03c1\u03b3\u03cc\u03c4\u03b5\u03c1\u03b1" + "message": "Δες αργότερα" }, "watchTime": { - "message": "\u03a7\u03c1\u03cc\u03bd\u03bf\u03c2 \u03c0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae\u03c2" + "message": "Χρόνος προβολής" }, "whenTabIsChanged": { - "message": "\u038c\u03c4\u03b1\u03bd \u03b1\u03bb\u03bb\u03ac\u03b6\u03b5\u03b9\u03c2 \u03ba\u03b1\u03c1\u03c4\u03ad\u03bb\u03b1" + "message": "Όταν αλλάζεις καρτέλα" }, "white": { - "message": "\u039b\u03b5\u03c5\u03ba\u03cc" + "message": "Λευκό" }, "yellow": { - "message": "\u039a\u03af\u03c4\u03c1\u03b9\u03bd\u03bf" + "message": "Κίτρινο" }, "youtubeHeaderLeft": { - "message": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 YouTube (\u03b1\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03ac)" + "message": "Κεφαλίδα YouTube (αριστερά)" }, "youtubeHeaderRight": { - "message": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 YouTube (\u03b4\u03b5\u03be\u03b9\u03ac)" + "message": "Κεφαλίδα YouTube (δεξιά)" }, "youtubeHomePage": { - "message": "\u0391\u03c1\u03c7\u03b9\u03ba\u03ae \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 YouTube" + "message": "Αρχική σελίδα YouTube" }, "youtubeLanguage": { - "message": "\u0393\u03bb\u03ce\u03c3\u03c3\u03b1 YouTube" + "message": "Γλώσσα YouTube" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "\u03a4\u03bf YouTube \u03c0\u03b5\u03c1\u03b9\u03bf\u03c1\u03af\u03b6\u03b5\u03b9 \u03c4\u03b7\u03bd \u03c0\u03bf\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1 \u03c3\u03b5 1080p \u03b3\u03b9\u03b1 \u03c4\u03bf h.264 codec" + "message": "Το YouTube περιορίζει την ποιότητα σε 1080p για το h.264 codec" } } \ No newline at end of file diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 1edd0f72d..70ac3d127 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -1,15 +1,15 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" @@ -39,7 +39,7 @@ "message": "Active features" }, "addScrollToTop": { - "message": "Add \u00abScroll to top\u00bb" + "message": "Add «Scroll to top»" }, "ads": { "message": "Ads" @@ -369,7 +369,7 @@ "message": "Hide right buttons" }, "hideScrollForDetails": { - "message": "Hide \u00abScroll for details\u00bb" + "message": "Hide «Scroll for details»" }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" diff --git a/_locales/es/messages.json b/_locales/es/messages.json index f6eb8c491..756549635 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -1,15 +1,15 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" @@ -24,7 +24,7 @@ "message": "Activar" }, "activateCaptions": { - "message": "Activar subt\u00edtulos" + "message": "Activar subtítulos" }, "activateFullscreen": { "message": "Activar pantalla completa" @@ -33,13 +33,13 @@ "message": "Activado" }, "activatedFeatures": { - "message": "Caracter\u00edsticas activadas" + "message": "Características activadas" }, "activeFeatures": { - "message": "Activar caracter\u00edsticas" + "message": "Activar características" }, "addScrollToTop": { - "message": "A\u00f1adir \u00abVolver arriba\u00bb" + "message": "Añadir «Volver arriba»" }, "ads": { "message": "Ads" @@ -60,7 +60,7 @@ "message": "Siempre mostrar barra de progreso" }, "amber": { - "message": "\u00c1mbar" + "message": "Ámbar" }, "analyzer": { "message": "Analizador" @@ -75,22 +75,22 @@ "message": "Formatos de audio" }, "auto": { - "message": "Autom\u00e1tico" + "message": "Automático" }, "autoFullscreen": { - "message": "Pantalla completa autom\u00e1tica" + "message": "Pantalla completa automática" }, "autopauseWhenSwitchingTabs": { - "message": "Pausar al cambiar de pesta\u00f1a" + "message": "Pausar al cambiar de pestaña" }, "autoplay": { - "message": "Reproducci\u00f3n autom\u00e1tica" + "message": "Reproducción automática" }, "backupAndReset": { "message": "Backup & reset" }, "baseOnSystemColorScheme": { - "message": "Seg\u00fan tema del sistema" + "message": "Según tema del sistema" }, "belowPlayer": { "message": "Debajo del reproductor" @@ -114,7 +114,7 @@ "message": "Luz azul" }, "brown": { - "message": "Marr\u00f3n" + "message": "Marrón" }, "browser": { "message": "Navegador" @@ -135,7 +135,7 @@ "message": "Cancelar" }, "categories": { - "message": "Categor\u00edas" + "message": "Categorías" }, "channel": { "message": "Canal" @@ -147,10 +147,10 @@ "message": "Portapapeles" }, "codecH264": { - "message": "C\u00f3dec h.264" + "message": "Códec h.264" }, "collapseOfSubscriptionSections": { - "message": "Compactar secci\u00f3n de suscripciones" + "message": "Compactar sección de suscripciones" }, "collapsed": { "message": "Compacto" @@ -165,10 +165,10 @@ "message": "Cookies" }, "cores": { - "message": "N\u00facleos" + "message": "Núcleos" }, "cropChapterTitles": { - "message": "Recortar t\u00edtulo de cap\u00edtulos" + "message": "Recortar título de capítulos" }, "customCss": { "message": "CSS personalizado" @@ -195,7 +195,7 @@ "message": "Amanecer" }, "decreasePlaybackSpeed": { - "message": "Disminuir velocidad de reproducci\u00f3n" + "message": "Disminuir velocidad de reproducción" }, "decreaseVolume": { "message": "Bajar volumen" @@ -207,13 +207,13 @@ "message": "Violeta profundo" }, "defaultChannelTab": { - "message": "Pesta\u00f1a del canal por defecto" + "message": "Pestaña del canal por defecto" }, "deleteYoutubeCookies": { "message": "Borrar cookies de YouTube" }, "description": { - "message": "Descripci\u00f3n" + "message": "Descripción" }, "desert": { "message": "Desierto" @@ -249,7 +249,7 @@ "message": "Email" }, "empty": { - "message": "Vac\u00edo" + "message": "Vacío" }, "enabled": { "message": "Activado" @@ -261,10 +261,10 @@ "message": "Expandido" }, "exportSettings": { - "message": "Exportar configuraci\u00f3n" + "message": "Exportar configuración" }, "extension": { - "message": "Extensi\u00f3n" + "message": "Extensión" }, "file": { "message": "Archivo" @@ -288,7 +288,7 @@ "message": "Force SDR" }, "forcedPlaybackSpeed": { - "message": "Forzar velocidad de reproducci\u00f3n" + "message": "Forzar velocidad de reproducción" }, "forcedTheaterMode": { "message": "Forzar modo teatro" @@ -297,7 +297,7 @@ "message": "Forzar volumen" }, "foundABug": { - "message": "\u00bfEncontraste un error (bug)?" + "message": "¿Encontraste un error (bug)?" }, "fullWindow": { "message": "Pantalla completa" @@ -309,7 +309,7 @@ "message": "GitHub" }, "goToSearchBox": { - "message": "Ir a barra de b\u00fasqueda" + "message": "Ir a barra de búsqueda" }, "gpu": { "message": "GPU" @@ -330,7 +330,7 @@ "message": "Oculto" }, "hiddenOnVideoPage": { - "message": "Oculto en la p\u00e1gina de video" + "message": "Oculto en la página de video" }, "hideAnimatedThumbnails": { "message": "Ocultar miniaturas animadas" @@ -351,7 +351,7 @@ "message": "Ocultar contenido destacado" }, "hideFooter": { - "message": "Ocultar pie de p\u00e1gina" + "message": "Ocultar pie de página" }, "hideGradientBottom": { "message": "Ocultar parte inferior degradada" @@ -363,7 +363,7 @@ "message": "Ocultar botones de la derecha" }, "hideScrollForDetails": { - "message": "Ocultar \u00abDesliza hacia abajo para ver m\u00e1s detalles\u00bb" + "message": "Ocultar «Desliza hacia abajo para ver más detalles»" }, "hideViewsCount": { "message": "Ocultar contador de visitas" @@ -378,10 +378,10 @@ "message": "Cursor sobre (hover)" }, "hoverOnVideoPage": { - "message": "Cursor sobre (hover) en p\u00e1gina de video" + "message": "Cursor sobre (hover) en página de video" }, "howLongAgoTheVideoWasUploaded": { - "message": "Hace cu\u00e1nto tiempo se subi\u00f3 el video" + "message": "Hace cuánto tiempo se subió el video" }, "icons": { "message": "Iconos" @@ -390,7 +390,7 @@ "message": "Solo iconos" }, "importSettings": { - "message": "Importar configuraci\u00f3n" + "message": "Importar configuración" }, "improveLogo": { "message": "Mejorar logo" @@ -408,13 +408,13 @@ "message": "Version de ImprovedTube" }, "increasePlaybackSpeed": { - "message": "Aumentar velocidad de reproducci\u00f3n" + "message": "Aumentar velocidad de reproducción" }, "increaseVolume": { "message": "Subir volumen" }, "indigo": { - "message": "\u00cdndigo" + "message": "Índigo" }, "items": { "message": "Items" @@ -453,7 +453,7 @@ "message": "Tipo de chat en directo" }, "loudnessNormalization": { - "message": "Normalizaci\u00f3n de volumen" + "message": "Normalización de volumen" }, "markWatchedVideos": { "message": "Marcar videos vistos" @@ -480,10 +480,10 @@ "message": "Noche" }, "noActiveFeatures": { - "message": "Sin caracter\u00edsticas activas" + "message": "Sin características activas" }, "noOpenVideoTabs": { - "message": "Sin pesta\u00f1as de video abiertas" + "message": "Sin pestañas de video abiertas" }, "none": { "message": "Ninguno" @@ -504,7 +504,7 @@ "message": "Solo activo en YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Solo una pesta\u00f1a reproduciendo" + "message": "Solo una pestaña reproduciendo" }, "orange": { "message": "Naranja" @@ -534,7 +534,7 @@ "message": "Reproducir / pausar" }, "playbackSpeed": { - "message": "Velocidad de reproducci\u00f3n" + "message": "Velocidad de reproducción" }, "player": { "message": "Reproductor" @@ -543,25 +543,25 @@ "message": "Color del reproductor" }, "playerSize": { - "message": "Tama\u00f1o del reproductor" + "message": "Tamaño del reproductor" }, "playlist": { - "message": "Lista de reproducci\u00f3n" + "message": "Lista de reproducción" }, "playlists": { - "message": "Listas de reproducci\u00f3n" + "message": "Listas de reproducción" }, "popupPlayer": { "message": "Reproductor emergente" }, "position": { - "message": "Posici\u00f3n" + "message": "Posición" }, "pressAnyKeyOrScroll": { "message": "Aprieta una tecla o haz scroll" }, "pressAnyKeyOrUseMouseWheel": { - "message": "Aprieta una tecla o usa la rueda del rat\u00f3n" + "message": "Aprieta una tecla o usa la rueda del ratón" }, "previousVideo": { "message": "Reproducir video anterior" @@ -579,16 +579,16 @@ "message": "RAM" }, "rateUs": { - "message": "Calif\u00edquenos" + "message": "Califíquenos" }, "red": { "message": "Rojo" }, "redDislikeButton": { - "message": "Mostrar el bot\u00f3n de dislike de color rojo" + "message": "Mostrar el botón de dislike de color rojo" }, "relatedVideos": { - "message": "V\u00eddeos relacionados" + "message": "Vídeos relacionados" }, "removeRelatedSearchResults": { "message": "Quitar resultados relacionados" @@ -627,10 +627,10 @@ "message": "Captura de pantalla" }, "search": { - "message": "B\u00fasqueda" + "message": "Búsqueda" }, "searchBarOnly": { - "message": "Solo barra de b\u00fasqueda" + "message": "Solo barra de búsqueda" }, "seekBackward10Seconds": { "message": "Retroceder 10 segundos" @@ -648,7 +648,7 @@ "message": "Atajos" }, "showCardsOnMouseHover": { - "message": "Mostrar tarjetas al pasar el rat\u00f3n" + "message": "Mostrar tarjetas al pasar el ratón" }, "showChannelVideosCount": { "message": "Mostrar recuento de videos del canal" @@ -666,10 +666,10 @@ "message": "Fotos de perfil cuadradas" }, "static": { - "message": "Est\u00e1tico" + "message": "Estático" }, "statsForNerds": { - "message": "Mostrar estad\u00edsticas para Nerds" + "message": "Mostrar estadísticas para Nerds" }, "step": { "message": "Paso" @@ -687,7 +687,7 @@ "message": "Suscripciones" }, "subtitles": { - "message": "Subt\u00edtulos" + "message": "Subtítulos" }, "sunset": { "message": "Atardecer" @@ -711,16 +711,16 @@ "message": "Temas" }, "thisWillRemoveAllCookies": { - "message": "Esto borrar\u00e1 todas las cookies." + "message": "Esto borrará todas las cookies." }, "thisWillRemoveAllYouTubeCookies": { - "message": "Esto borrar\u00e1 todas las cookies de YouTube" + "message": "Esto borrará todas las cookies de YouTube" }, "thisWillResetAllSettings": { - "message": "Esto restablecer\u00e1 todos los ajustes" + "message": "Esto restablecerá todos los ajustes" }, "thisWillResetAllShortcuts": { - "message": "Esto restablecer\u00e1 todos los atajos" + "message": "Esto restablecerá todos los atajos" }, "thumbnails": { "message": "Miniaturas" @@ -741,7 +741,7 @@ "message": "Top chat" }, "trailerAutoplay": { - "message": "Reproducci\u00f3n autom\u00e1tica de trailer" + "message": "Reproducción automática de trailer" }, "translations": { "message": "Traducciones" @@ -753,25 +753,25 @@ "message": "Tendencias" }, "tryToReloadThePage": { - "message": "Trata de recargar la p\u00e1gina" + "message": "Trata de recargar la página" }, "type": { "message": "Tipo" }, "upNextAutoplay": { - "message": "Siguiente reproducci\u00f3n autom\u00e1tica" + "message": "Siguiente reproducción automática" }, "use24HourFormat": { "message": "Usar formato 24 horas" }, "version": { - "message": "Versi\u00f3n" + "message": "Versión" }, "video": { "message": "Video" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La descripci\u00f3n del video se expandir\u00e1 para obtener el nombre de la categor\u00eda." + "message": "La descripción del video se expandirá para obtener el nombre de la categoría." }, "videoFormats": { "message": "Formatos de video" @@ -783,13 +783,13 @@ "message": "Volumen" }, "watchLater": { - "message": "Ver m\u00e1s tarde" + "message": "Ver más tarde" }, "watchTime": { "message": "Visualizaciones" }, "whenTabIsChanged": { - "message": "Al cambiar de pesta\u00f1a" + "message": "Al cambiar de pestaña" }, "white": { "message": "Blanco" @@ -804,7 +804,7 @@ "message": "Encabezado YouTube (der)" }, "youtubeHomePage": { - "message": "P\u00e1gina de inicio de YouTube" + "message": "Página de inicio de YouTube" }, "youtubeLanguage": { "message": "Idioma de YouTube" diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 52bb5b23c..523dd70ba 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -1,21 +1,21 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { - "message": "\u00c0 propos" + "message": "À propos" }, "accept": { "message": "Accepter" @@ -27,22 +27,22 @@ "message": "Activer les sous-titres" }, "activateFullscreen": { - "message": "Activer le plein \u00e9cran" + "message": "Activer le plein écran" }, "activated": { - "message": "Activ\u00e9" + "message": "Activé" }, "activatedFeatures": { - "message": "Fonctionnalit\u00e9s activ\u00e9es" + "message": "Fonctionnalités activées" }, "activeFeatures": { - "message": "Fonctionnalit\u00e9s actives" + "message": "Fonctionnalités actives" }, "addScrollToTop": { - "message": "Ajouter \u00ab Remonter en haut \u00bb" + "message": "Ajouter « Remonter en haut »" }, "ads": { - "message": "Publicit\u00e9s" + "message": "Publicités" }, "all": { "message": "Voir tout" @@ -51,10 +51,10 @@ "message": "Permettre" }, "allow60fps": { - "message": "Jouer \u00e0 60 fps" + "message": "Jouer à 60 fps" }, "alwaysActive": { - "message": "Toujours activ\u00e9" + "message": "Toujours activé" }, "alwaysShowProgressBar": { "message": "Toujours afficher la barre de progression" @@ -78,7 +78,7 @@ "message": "Auto" }, "autoFullscreen": { - "message": "Plein \u00e9cran automatique" + "message": "Plein écran automatique" }, "autopauseWhenSwitchingTabs": { "message": "Pause automatique lors d'un changement d'onglet" @@ -87,10 +87,10 @@ "message": "Lecture automatique" }, "backupAndReset": { - "message": "Sauvegarde et r\u00e9initialisation" + "message": "Sauvegarde et réinitialisation" }, "baseOnSystemColorScheme": { - "message": "Selon les param\u00e8tres du syst\u00e8me" + "message": "Selon les paramètres du système" }, "belowPlayer": { "message": "Sous le player" @@ -111,7 +111,7 @@ "message": "Gris-bleu" }, "bluelight": { - "message": "Bleu p\u00e2le" + "message": "Bleu pâle" }, "brown": { "message": "Brun" @@ -135,13 +135,13 @@ "message": "Retour" }, "categories": { - "message": "Cat\u00e9gories" + "message": "Catégories" }, "channel": { - "message": "Cha\u00eene" + "message": "Chaîne" }, "channels": { - "message": "Cha\u00eenes" + "message": "Chaînes" }, "clipboard": { "message": "Presse-papiers" @@ -150,10 +150,10 @@ "message": "Codec h.264" }, "collapseOfSubscriptionSections": { - "message": "R\u00e9duire la section des abonnements" + "message": "Réduire la section des abonnements" }, "collapsed": { - "message": "R\u00e9duire" + "message": "Réduire" }, "comments": { "message": "Commentaires" @@ -171,13 +171,13 @@ "message": "Couper les titres des chapitres" }, "customCss": { - "message": "CSS customis\u00e9" + "message": "CSS customisé" }, "customJs": { - "message": "JS customis\u00e9" + "message": "JS customisé" }, "customMiniPlayer": { - "message": "Mini-lecteur personnalis\u00e9" + "message": "Mini-lecteur personnalisé" }, "cyan": { "message": "Cyan" @@ -186,7 +186,7 @@ "message": "Sombre" }, "darkTheme": { - "message": "Th\u00e8me sombre" + "message": "Thème sombre" }, "dateAndTime": { "message": "Date et temps" @@ -195,19 +195,19 @@ "message": "Aube" }, "decreasePlaybackSpeed": { - "message": "R\u00e9duire la vitesse de lecture" + "message": "Réduire la vitesse de lecture" }, "decreaseVolume": { - "message": "R\u00e9duire le volume" + "message": "Réduire le volume" }, "deepOrange": { - "message": "Orange fonc\u00e9" + "message": "Orange foncé" }, "deepPurple": { - "message": "Violet fonc\u00e9" + "message": "Violet foncé" }, "defaultChannelTab": { - "message": "Onglet par d\u00e9faut d'une cha\u00eene" + "message": "Onglet par défaut d'une chaîne" }, "deleteYoutubeCookies": { "message": "Supprimer les cookies YouTube" @@ -219,10 +219,10 @@ "message": "Desert" }, "details": { - "message": "D\u00e9tails" + "message": "Détails" }, "developerOptions": { - "message": "Options de d\u00e9veloppeur" + "message": "Options de développeur" }, "device": { "message": "Appareil" @@ -231,7 +231,7 @@ "message": "Assombrir" }, "disabled": { - "message": "D\u00e9sactiv\u00e9" + "message": "Désactivé" }, "dislike": { "message": "Je n'aime pas" @@ -252,16 +252,16 @@ "message": "Vide" }, "enabled": { - "message": "Activ\u00e9" + "message": "Activé" }, "enabledForced": { - "message": "Activ\u00e9 (forc\u00e9)" + "message": "Activé (forcé)" }, "expanded": { - "message": "\u00c9tendu" + "message": "Étendu" }, "exportSettings": { - "message": "Exporter les r\u00e9glages" + "message": "Exporter les réglages" }, "extension": { "message": "Extension" @@ -273,7 +273,7 @@ "message": "Filtres" }, "fitToWindow": { - "message": "Ajuster \u00e0 la fen\u00eatre" + "message": "Ajuster à la fenêtre" }, "flash": { "message": "Clignoter" @@ -288,10 +288,10 @@ "message": "Force SDR" }, "forcedPlaybackSpeed": { - "message": "Vitesse de lecture forc\u00e9e" + "message": "Vitesse de lecture forcée" }, "forcedTheaterMode": { - "message": "Forcer le mode th\u00e9\u00e2tre" + "message": "Forcer le mode théâtre" }, "forcedVolume": { "message": "Forcer le volume" @@ -300,10 +300,10 @@ "message": "Un bogue?" }, "fullWindow": { - "message": "Fen\u00eatre pleine" + "message": "Fenêtre pleine" }, "general": { - "message": "G\u00e9n\u00e9ral" + "message": "Général" }, "github": { "message": "GitHub" @@ -324,13 +324,13 @@ "message": "Miniatures HD" }, "header": { - "message": "T\u00eate de page" + "message": "Tête de page" }, "hidden": { - "message": "Cach\u00e9" + "message": "Caché" }, "hiddenOnVideoPage": { - "message": "Cach\u00e9 sur la page de la vid\u00e9o" + "message": "Caché sur la page de la vidéo" }, "hideAnimatedThumbnails": { "message": "Miniatures sans animation" @@ -342,28 +342,28 @@ "message": "Cacher les cartes" }, "hideDetails": { - "message": "Cacher les d\u00e9tails" + "message": "Cacher les détails" }, "hideEndscreen": { - "message": "Cacher l'\u00e9cran de fin" + "message": "Cacher l'écran de fin" }, "hideFeaturedContent": { - "message": "Cacher le contenu recommand\u00e9" + "message": "Cacher le contenu recommandé" }, "hideFooter": { "message": "Cacher le pied de page" }, "hideGradientBottom": { - "message": "Masquer le d\u00e9grad\u00e9 du bas" + "message": "Masquer le dégradé du bas" }, "hidePlaylist": { "message": "Cacher la liste de lecture" }, "hideRightButtons": { - "message": "Cacher les boutons \u00e0 droite" + "message": "Cacher les boutons à droite" }, "hideScrollForDetails": { - "message": "Cacher \u00ab Faire d\u00e9filer pour les d\u00e9tails \u00bb" + "message": "Cacher « Faire défiler pour les détails »" }, "hideViewsCount": { "message": "Voir le compte des vues" @@ -378,28 +378,28 @@ "message": "Survoler" }, "hoverOnVideoPage": { - "message": "Survoler la page de la vid\u00e9o" + "message": "Survoler la page de la vidéo" }, "howLongAgoTheVideoWasUploaded": { - "message": "Depuis combien de temps la vid\u00e9o a \u00e9t\u00e9 t\u00e9l\u00e9vers\u00e9?" + "message": "Depuis combien de temps la vidéo a été téléversé?" }, "icons": { - "message": "Ic\u00f4nes" + "message": "Icônes" }, "iconsOnly": { - "message": "Uniquement les ic\u00f4nes" + "message": "Uniquement les icônes" }, "importSettings": { - "message": "Importer les r\u00e9glages" + "message": "Importer les réglages" }, "improveLogo": { - "message": "Am\u00e9liorer le logo" + "message": "Améliorer le logo" }, "improvedtubeIconInBrowser": { - "message": "Afficher l'ic\u00f4ne ImprovedTube dans le navigateur web" + "message": "Afficher l'icône ImprovedTube dans le navigateur web" }, "improvedtubeIconOnYoutube": { - "message": "Afficher l'ic\u00f4ne ImprovedTube sur YouTube" + "message": "Afficher l'icône ImprovedTube sur YouTube" }, "improvedtubeLanguage": { "message": "Langue d'ImprovedTube" @@ -408,7 +408,7 @@ "message": "Version d'ImprovedTube" }, "increasePlaybackSpeed": { - "message": "Acc\u00e9l\u00e9rer la vitesse de lecture" + "message": "Accélérer la vitesse de lecture" }, "increaseVolume": { "message": "Augmenter le volume" @@ -453,13 +453,13 @@ "message": "Type de chat en direct" }, "loudnessNormalization": { - "message": "Normalisation de l'intensit\u00e9 sonore" + "message": "Normalisation de l'intensité sonore" }, "markWatchedVideos": { - "message": "Marquer les vid\u00e9os d\u00e9j\u00e0 visionn\u00e9es" + "message": "Marquer les vidéos déjà visionnées" }, "mixer": { - "message": "M\u00e9langeur de volume" + "message": "Mélangeur de volume" }, "myColors": { "message": "Mes couleurs" @@ -474,16 +474,16 @@ "message": "Nouveau" }, "nextVideo": { - "message": "Prochaine vid\u00e9o" + "message": "Prochaine vidéo" }, "night": { "message": "Nuit" }, "noActiveFeatures": { - "message": "Pas de fonctionalit\u00e9 active" + "message": "Pas de fonctionalité active" }, "noOpenVideoTabs": { - "message": "Aucun onglet de vid\u00e9o ouvert" + "message": "Aucun onglet de vidéo ouvert" }, "none": { "message": "Aucun" @@ -495,16 +495,16 @@ "message": "Vieux" }, "onAllVideos": { - "message": "Pour toutes les vid\u00e9os" + "message": "Pour toutes les vidéos" }, "onSubscribedChannels": { - "message": "Sur les cha\u00eenes auxquelles je suis abonn\u00e9" + "message": "Sur les chaînes auxquelles je suis abonné" }, "onlyActiveOnYoutube": { "message": "Uniquement actif sur YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Une seule instance \u00e0 la fois" + "message": "Une seule instance à la fois" }, "openPopupPlayer": { "message": "Ouvrir Video/playlist dans un nouvelle onglet" @@ -555,7 +555,7 @@ "message": "Listes de lecture" }, "popupPlayer": { - "message": "D\u00e9tacher le lecteur" + "message": "Détacher le lecteur" }, "position": { "message": "Position" @@ -567,7 +567,7 @@ "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." }, "previousVideo": { - "message": "Vid\u00e9o pr\u00e9c\u00e9dente" + "message": "Vidéo précédente" }, "primaryColor": { "message": "Couleur primaire" @@ -576,13 +576,13 @@ "message": "Violet" }, "quality": { - "message": "Qualit\u00e9" + "message": "Qualité" }, "ram": { "message": "RAM" }, "rateUs": { - "message": "Nous \u00e9valuer" + "message": "Nous évaluer" }, "red": { "message": "Rouge" @@ -591,19 +591,19 @@ "message": "Afficher la couleur rouge du bouton Je n'aime pas" }, "relatedVideos": { - "message": "Vid\u00e9os associ\u00e9s" + "message": "Vidéos associés" }, "removeRelatedSearchResults": { - "message": "Supprimer les r\u00e9sultats de recherche associ\u00e9s" + "message": "Supprimer les résultats de recherche associés" }, "repeat": { "message": "Lire en boucle" }, "reset": { - "message": "R\u00e9intialiser" + "message": "Réintialiser" }, "resetAllSettings": { - "message": "Annuler r\u00e9glages" + "message": "Annuler réglages" }, "resetAllShortcuts": { "message": "Annuler raccourcis" @@ -612,7 +612,7 @@ "message": "Inverser" }, "rotate": { - "message": "Faire pivoter la vid\u00e9o" + "message": "Faire pivoter la vidéo" }, "save": { "message": "Ok" @@ -624,10 +624,10 @@ "message": "Plage horaire" }, "screen": { - "message": "\u00c9cran" + "message": "Écran" }, "screenshot": { - "message": "Capture d'\u00e9cran" + "message": "Capture d'écran" }, "search": { "message": "Rechercher" @@ -642,10 +642,10 @@ "message": "Avancer de 10 secondes" }, "settings": { - "message": "R\u00e9glages" + "message": "Réglages" }, "settingsSuccessfullyImported": { - "message": "Importation des r\u00e9glages r\u00e9ussie" + "message": "Importation des réglages réussie" }, "shortcuts": { "message": "Raccourcis" @@ -654,19 +654,19 @@ "message": "Afficher les cartes au survol de la souris" }, "showChannelVideosCount": { - "message": "Afficher le nombre de vid\u00e9os de la cha\u00eene" + "message": "Afficher le nombre de vidéos de la chaîne" }, "shuffle": { - "message": "Al\u00e9atoire" + "message": "Aléatoire" }, "sidebar": { - "message": "Barre lat\u00e9rale" + "message": "Barre latérale" }, "spacebar": { "message": "Barre d'espace" }, "squaredUserImages": { - "message": "Images des utilisateurs carr\u00e9es" + "message": "Images des utilisateurs carrées" }, "static": { "message": "Statique" @@ -675,10 +675,10 @@ "message": "Statistiques pour nerd" }, "step": { - "message": "\u00c9tape" + "message": "Étape" }, "stop": { - "message": "Arr\u00eater" + "message": "Arrêter" }, "style": { "message": "Style" @@ -699,10 +699,10 @@ "message": "Du coucher au lever du Soleil" }, "systemPeferenceDark": { - "message": "Pr\u00e9f\u00e9rence syst\u00e8me : sombre" + "message": "Préférence système : sombre" }, "systemPeferenceLight": { - "message": "Pr\u00e9f\u00e9rence syst\u00e8me : clair" + "message": "Préférence système : clair" }, "teal": { "message": "Sarcelle" @@ -711,7 +711,7 @@ "message": "Couleur du texte" }, "themes": { - "message": "Th\u00e8mes" + "message": "Thèmes" }, "thisWillRemoveAllCookies": { "message": "Supprimer tous les cookies." @@ -720,10 +720,10 @@ "message": "Supprimer tous les cookies Youtube." }, "thisWillResetAllSettings": { - "message": "R\u00e9intialiser les r\u00e9glages." + "message": "Réintialiser les réglages." }, "thisWillResetAllShortcuts": { - "message": "R\u00e9intialiser les raccourcis." + "message": "Réintialiser les raccourcis." }, "thumbnails": { "message": "Miniature" @@ -735,7 +735,7 @@ "message": "Temps au" }, "todayAt": { - "message": "Aujourd'hui \u00e0" + "message": "Aujourd'hui à" }, "toggleAutoplay": { "message": "Basculer lecture auto" @@ -747,19 +747,19 @@ "message": "Top chat" }, "trailerAutoplay": { - "message": "D\u00e9marrage automatique des annonces" + "message": "Démarrage automatique des annonces" }, "translations": { "message": "Traductions" }, "transparentBackground": { - "message": "Arri\u00e8re-plan transparent" + "message": "Arrière-plan transparent" }, "trending": { "message": "Tendances" }, "tryToReloadThePage": { - "message": "Essayez de rafra\u00eechir la page" + "message": "Essayez de rafraîchir la page" }, "type": { "message": "Type" @@ -774,13 +774,13 @@ "message": "Version" }, "video": { - "message": "Vid\u00e9o" + "message": "Vidéo" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La description de la vid\u00e9o sera d\u00e9velopp\u00e9e pour obtenir le nom de la cat\u00e9gorie" + "message": "La description de la vidéo sera développée pour obtenir le nom de la catégorie" }, "videoFormats": { - "message": "Formats de vid\u00e9o" + "message": "Formats de vidéo" }, "videos": { "message": "Videos" @@ -789,7 +789,7 @@ "message": "Volume" }, "watchLater": { - "message": "\u00c0 regarder plus tard" + "message": "À regarder plus tard" }, "watchTime": { "message": "Temps de visionnage" @@ -804,10 +804,10 @@ "message": "Jaune" }, "youtubeHeaderLeft": { - "message": "En-t\u00eate YouTube (\u00e0 gauche)" + "message": "En-tête YouTube (à gauche)" }, "youtubeHeaderRight": { - "message": "En-t\u00eate YouTube (\u00e0 droite)" + "message": "En-tête YouTube (à droite)" }, "youtubeHomePage": { "message": "Page d'accueil de YouTube" @@ -816,6 +816,6 @@ "message": "Langue de YouTube" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limite la qualit\u00e9 vid\u00e9o \u00e0 1080p pour le codec h.264" + "message": "YouTube limite la qualité vidéo à 1080p pour le codec h.264" } } \ No newline at end of file diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index 121de9dc6..a4c289cfb 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -1,815 +1,815 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { - "message": "\u0915\u0947 \u092c\u093e\u0930\u0947 \u092e\u0947\u0902" + "message": "के बारे में" }, "accept": { - "message": "\u0938\u094d\u0935\u0940\u0915\u093e\u0930" + "message": "स्वीकार" }, "activate": { - "message": "\u0938\u0915\u094d\u0930\u093f\u092f" + "message": "सक्रिय" }, "activateCaptions": { - "message": "\u0915\u0948\u092a\u094d\u0936\u0928 \u0938\u0915\u094d\u0930\u093f\u092f \u0915\u0930\u0947\u0902" + "message": "कैप्शन सक्रिय करें" }, "activateFullscreen": { - "message": "\u092a\u0942\u0930\u094d\u0923\u0938\u094d\u0915\u094d\u0930\u0940\u0928 \u0938\u0915\u094d\u0930\u093f\u092f \u0915\u0930\u0947\u0902" + "message": "पूर्णस्क्रीन सक्रिय करें" }, "activated": { - "message": "\u0938\u0915\u094d\u0930\u093f\u092f" + "message": "सक्रिय" }, "activatedFeatures": { - "message": "\u0938\u0915\u094d\u0930\u093f\u092f \u0935\u093f\u0936\u0947\u0937\u0924\u093e\u090f\u0902" + "message": "सक्रिय विशेषताएं" }, "activeFeatures": { - "message": "\u0938\u0915\u094d\u0930\u093f\u092f \u0935\u093f\u0936\u0947\u0937\u0924\u093e\u090f\u0902" + "message": "सक्रिय विशेषताएं" }, "addScrollToTop": { - "message": "\u00ab\u0936\u0940\u0930\u094d\u0937 \u092a\u0930 \u0938\u094d\u0915\u094d\u0930\u0949\u0932 \u0915\u0930\u0947\u0902\u00bb \u091c\u094b\u0921\u093c\u0947\u0902" + "message": "«शीर्ष पर स्क्रॉल करें» जोड़ें" }, "ads": { - "message": "\u0935\u093f\u091c\u094d\u091e\u093e\u092a\u0928" + "message": "विज्ञापन" }, "all": { - "message": "\u0938\u092c" + "message": "सब" }, "allow": { - "message": "\u0905\u0928\u0941\u092e\u0924\u093f" + "message": "अनुमति" }, "allow60fps": { - "message": "60fps \u0915\u0940 \u0905\u0928\u0941\u092e\u0924\u093f \u0926\u0947\u0902" + "message": "60fps की अनुमति दें" }, "alwaysActive": { - "message": "\u0939\u092e\u0947\u0936\u093e \u0938\u0915\u094d\u0930\u093f\u092f" + "message": "हमेशा सक्रिय" }, "alwaysShowProgressBar": { - "message": "\u0939\u092e\u0947\u0936\u093e \u092a\u094d\u0930\u0917\u0924\u093f \u092c\u093e\u0930 \u0926\u093f\u0916\u093e\u090f\u0902" + "message": "हमेशा प्रगति बार दिखाएं" }, "amber": { - "message": "\u0905\u0902\u092c\u0930" + "message": "अंबर" }, "analyzer": { - "message": "\u0935\u093f\u0936\u094d\u0932\u0947\u0937\u0915" + "message": "विश्लेषक" }, "appearance": { - "message": "\u0926\u093f\u0916\u093e\u0935\u091f" + "message": "दिखावट" }, "audio": { - "message": "\u0911\u0921\u093f\u092f\u094b" + "message": "ऑडियो" }, "audioFormats": { - "message": "\u0911\u0921\u093f\u092f\u094b \u092a\u094d\u0930\u093e\u0930\u0942\u092a" + "message": "ऑडियो प्रारूप" }, "auto": { - "message": "\u0916\u0941\u0926 \u092c \u0916\u0941\u0926" + "message": "खुद ब खुद" }, "autoFullscreen": { - "message": "\u0938\u094d\u0935\u0924: \u092a\u0942\u0930\u094d\u0923 \u0938\u094d\u0915\u094d\u0930\u0940\u0928" + "message": "स्वत: पूर्ण स्क्रीन" }, "autopauseWhenSwitchingTabs": { - "message": "\u091f\u0948\u092c \u0938\u094d\u0935\u093f\u091a \u0915\u0930\u0924\u0947 \u0938\u092e\u092f \u0911\u091f\u094b\u092a\u0949\u091c" + "message": "टैब स्विच करते समय ऑटोपॉज" }, "autoplay": { - "message": "\u0938\u094d\u0935\u0924: \u092a\u094d\u0932\u0947" + "message": "स्वत: प्ले" }, "backupAndReset": { - "message": "\u092c\u0948\u0915\u0905\u092a \u092a\u0941\u0928\u0930\u094d\u0938\u094d\u0925\u093e\u092a\u093f\u0924 \u0915\u0930\u0928\u093e" + "message": "बैकअप पुनर्स्थापित करना" }, "baseOnSystemColorScheme": { - "message": "\u0938\u093f\u0938\u094d\u091f\u092e \u0930\u0902\u0917 \u092f\u094b\u091c\u0928\u093e \u0915\u0947 \u0906\u0927\u093e\u0930 \u092a\u0930" + "message": "सिस्टम रंग योजना के आधार पर" }, "belowPlayer": { - "message": "\u092a\u094d\u0932\u0947\u092f\u0930 \u0915\u0947 \u0928\u0940\u091a\u0947" + "message": "प्लेयर के नीचे" }, "black": { - "message": "\u0915\u093e\u0932\u093e" + "message": "काला" }, "blacklist": { - "message": "\u0915\u093e\u0932\u093e \u0938\u0942\u091a\u0940 \u092e\u0947\u0902 \u0921\u093e\u0932\u0928\u093e" + "message": "काला सूची में डालना" }, "blockAll": { - "message": "\u0938\u092d\u0940 \u0915\u094b \u0905\u0935\u0930\u094b\u0927\u093f\u0924 \u0915\u0930\u0947\u0902" + "message": "सभी को अवरोधित करें" }, "blue": { - "message": "\u0928\u0940\u0932\u093e" + "message": "नीला" }, "blueGray": { - "message": "\u0928\u0940\u0932\u093e \u0938\u094d\u0932\u0947\u091f\u0940" + "message": "नीला स्लेटी" }, "bluelight": { - "message": "\u0928\u0940\u0932\u0940 \u092c\u0924\u094d\u0924\u0940" + "message": "नीली बत्ती" }, "brown": { - "message": "\u092d\u0942\u0930\u093e" + "message": "भूरा" }, "browser": { - "message": "\u092c\u094d\u0930\u093e\u0909\u091c\u093c\u0930" + "message": "ब्राउज़र" }, "browserVersion": { - "message": "\u092c\u094d\u0930\u093e\u0909\u091c\u093c\u0930 \u0938\u0902\u0938\u094d\u0915\u0930\u0923" + "message": "ब्राउज़र संस्करण" }, "bubbles": { - "message": "\u092c\u0941\u0932\u092c\u0941\u0932\u0947" + "message": "बुलबुले" }, "bug": { - "message": "\u092c\u0917" + "message": "बग" }, "buttons": { - "message": "\u092c\u091f\u0928" + "message": "बटन" }, "cancel": { - "message": "\u0930\u0926\u094d\u0926" + "message": "रद्द" }, "categories": { - "message": "\u0936\u094d\u0930\u0947\u0923\u093f\u092f\u093e\u0901" + "message": "श्रेणियाँ" }, "channel": { - "message": "\u091a\u0948\u0928\u0932" + "message": "चैनल" }, "channels": { - "message": "\u091a\u0948\u0928\u0932" + "message": "चैनल" }, "clipboard": { - "message": "\u0915\u094d\u0932\u093f\u092a\u092c\u094b\u0930\u094d\u0921" + "message": "क्लिपबोर्ड" }, "codecH264": { - "message": "\u0915\u094b\u0921\u0915 \u091c 64\u0968\u096c\u096a 64" + "message": "कोडक ज 64२६४ 64" }, "collapseOfSubscriptionSections": { - "message": "\u0938\u0926\u0938\u094d\u092f\u0924\u093e \u0935\u0930\u094d\u0917\u094b\u0902 \u0915\u093e \u092a\u0924\u0928" + "message": "सदस्यता वर्गों का पतन" }, "collapsed": { - "message": "\u0938\u0902\u0915\u094d\u0937\u093f\u092a\u094d\u0924" + "message": "संक्षिप्त" }, "comments": { - "message": "\u091f\u093f\u092a\u094d\u092a\u0923\u093f\u092f\u093e\u0901" + "message": "टिप्पणियाँ" }, "confirmationBeforeClosing": { - "message": "\u092c\u0902\u0926 \u0915\u0930\u0928\u0947 \u0938\u0947 \u092a\u0939\u0932\u0947 \u092a\u0941\u0937\u094d\u091f\u093f" + "message": "बंद करने से पहले पुष्टि" }, "cookies": { - "message": "\u0915\u0941\u0915\u0940\u091c\u093c" + "message": "कुकीज़" }, "cores": { - "message": "\u0915\u094b\u0930" + "message": "कोर" }, "cropChapterTitles": { - "message": "\u092b\u0938\u0932 \u0905\u0927\u094d\u092f\u093e\u092f \u0915\u0947 \u0936\u0940\u0930\u094d\u0937\u0915" + "message": "फसल अध्याय के शीर्षक" }, "customCss": { - "message": "\u0915\u0938\u094d\u091f\u092e \u0938\u0940\u090f\u0938\u090f\u0938" + "message": "कस्टम सीएसएस" }, "customJs": { - "message": "\u0915\u0938\u094d\u091f\u092e \u091c\u0947\u090f\u0938" + "message": "कस्टम जेएस" }, "customMiniPlayer": { - "message": "\u0915\u0938\u094d\u091f\u092e \u092e\u093f\u0928\u0940 \u092a\u094d\u0932\u0947\u092f\u0930" + "message": "कस्टम मिनी प्लेयर" }, "cyan": { - "message": "\u0938\u093f\u092f\u093e\u0928" + "message": "सियान" }, "dark": { - "message": "\u0905\u0902\u0927\u0947\u0930\u093e" + "message": "अंधेरा" }, "darkTheme": { - "message": "\u0921\u093e\u0930\u094d\u0915 \u0925\u0940\u092e" + "message": "डार्क थीम" }, "dateAndTime": { - "message": "\u0926\u093f\u0928\u093e\u0902\u0915 \u0914\u0930 \u0938\u092e\u092f" + "message": "दिनांक और समय" }, "dawn": { - "message": "\u092d\u094b\u0930" + "message": "भोर" }, "decreasePlaybackSpeed": { - "message": "\u092a\u093e\u0930\u094d\u0936\u094d\u0935 \u0917\u0924\u093f \u092e\u0947\u0902 \u0915\u092e\u0940" + "message": "पार्श्व गति में कमी" }, "decreaseVolume": { - "message": "\u0927\u094d\u0935\u0928\u093f \u0915\u092e" + "message": "ध्वनि कम" }, "deepOrange": { - "message": "\u0917\u0939\u0930\u093e \u0928\u093e\u0930\u0902\u0917\u0940" + "message": "गहरा नारंगी" }, "deepPurple": { - "message": "\u0917\u0939\u0930\u093e \u092c\u0948\u0902\u0917\u0928\u0940" + "message": "गहरा बैंगनी" }, "defaultChannelTab": { - "message": "\u0921\u093f\u092b\u093c\u0949\u0932\u094d\u091f \u091a\u0948\u0928\u0932 \u091f\u0948\u092c" + "message": "डिफ़ॉल्ट चैनल टैब" }, "deleteYoutubeCookies": { - "message": "\u092f\u0942\u091f\u094d\u092f\u0942\u092c \u0915\u0941\u0915\u0940\u091c\u093c \u0939\u091f\u093e\u090f\u0902" + "message": "यूट्यूब कुकीज़ हटाएं" }, "description": { - "message": "\u0935\u093f\u0935\u0930\u0923" + "message": "विवरण" }, "desert": { - "message": "\u0930\u0947\u0917\u093f\u0938\u094d\u0924\u093e\u0928" + "message": "रेगिस्तान" }, "details": { - "message": "\u0935\u093f\u0935\u0930\u0923" + "message": "विवरण" }, "developerOptions": { - "message": "\u0921\u0947\u0935\u0932\u092a\u0930 \u0935\u093f\u0915\u0932\u094d\u092a" + "message": "डेवलपर विकल्प" }, "device": { - "message": "\u092f\u0941\u0915\u094d\u0924\u093f" + "message": "युक्ति" }, "dim": { - "message": "\u092e\u0902\u0926" + "message": "मंद" }, "disabled": { - "message": "\u0935\u093f\u0915\u0932\u093e\u0902\u0917" + "message": "विकलांग" }, "dislike": { - "message": "\u0928\u093e\u092a\u0938\u0928\u094d\u0926" + "message": "नापसन्द" }, "doNotChange": { - "message": "\u092e\u0924 \u092c\u0926\u0932\u094b" + "message": "मत बदलो" }, "donate": { - "message": "\u0926\u093e\u0928" + "message": "दान" }, "draggable": { - "message": "\u0916\u0940\u0902\u091a\u0928\u0947 \u092f\u094b\u0917\u094d\u092f" + "message": "खींचने योग्य" }, "email": { - "message": "\u0908\u092e\u0947\u0932" + "message": "ईमेल" }, "empty": { - "message": "\u0916\u093e\u0932\u0940" + "message": "खाली" }, "enabled": { - "message": "\u0938\u0915\u094d\u0930\u093f\u092f" + "message": "सक्रिय" }, "enabledForced": { - "message": "\u0938\u0915\u094d\u0930\u093f\u092f(\u092e\u091c\u092c\u0942\u0930)" + "message": "सक्रिय(मजबूर)" }, "expanded": { - "message": "\u0935\u093f\u0938\u094d\u0924\u093e\u0930\u093f\u0924" + "message": "विस्तारित" }, "exportSettings": { - "message": "\u0928\u093f\u0930\u094d\u092f\u093e\u0924 \u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938" + "message": "निर्यात सेटिंग्स" }, "extension": { - "message": "\u090f\u0915\u094d\u0938\u091f\u0947\u0902\u0936\u0928" + "message": "एक्सटेंशन" }, "file": { - "message": "\u092b\u093c\u093e\u0907\u0932" + "message": "फ़ाइल" }, "filters": { - "message": "\u092b\u093f\u0932\u094d\u091f\u0930" + "message": "फिल्टर" }, "fitToWindow": { - "message": "\u0938\u094d\u0915\u094d\u0930\u0940\u0928 \u092b\u093f\u091f" + "message": "स्क्रीन फिट" }, "flash": { - "message": "\u091a\u092e\u0915" + "message": "चमक" }, "font": { - "message": "\u092b\u093c\u0949\u0928\u094d\u091f" + "message": "फ़ॉन्ट" }, "footer": { - "message": "\u092a\u093e\u0926 \u0932\u0947\u0916" + "message": "पाद लेख" }, "forceSDR": { "message": "Force SDR" }, "forcedPlaybackSpeed": { - "message": "\u091c\u092c\u0930\u0928 \u092a\u093e\u0930\u094d\u0936\u094d\u0935 \u0917\u0924\u093f" + "message": "जबरन पार्श्व गति" }, "forcedTheaterMode": { - "message": "\u091c\u092c\u0930\u0928 \u0925\u093f\u090f\u091f\u0930 \u092e\u094b\u0921" + "message": "जबरन थिएटर मोड" }, "forcedVolume": { - "message": "\u091c\u092c\u0930\u0928 \u0927\u094d\u0935\u0928\u093f" + "message": "जबरन ध्वनि" }, "foundABug": { - "message": "\u092c\u0917 \u092e\u093f\u0932\u093e?" + "message": "बग मिला?" }, "fullWindow": { - "message": "\u092a\u0942\u0930\u094d\u0923 \u0938\u094d\u0915\u094d\u0930\u0940\u0928" + "message": "पूर्ण स्क्रीन" }, "general": { - "message": "\u0938\u093e\u092e\u093e\u0928\u094d\u092f" + "message": "सामान्य" }, "github": { - "message": "\u0917\u093f\u091f\u0939\u092c" + "message": "गिटहब" }, "goToSearchBox": { - "message": "\u0938\u0930\u094d\u091a \u092c\u0949\u0915\u094d\u0938 \u092a\u0930 \u091c\u093e\u090f\u0902" + "message": "सर्च बॉक्स पर जाएं" }, "gpu": { - "message": "\u091c\u0940 \u092a\u0940 \u092f\u0942" + "message": "जी पी यू" }, "green": { - "message": "\u0939\u0930\u093e" + "message": "हरा" }, "hdThumbnail": { - "message": "\u090f\u091a \u0921\u0940 \u0925\u0902\u092c\u0928\u0947\u0932" + "message": "एच डी थंबनेल" }, "hdThumbnails": { - "message": "\u090f\u091a \u0921\u0940 \u0925\u0902\u092c\u0928\u0947\u0932" + "message": "एच डी थंबनेल" }, "header": { - "message": "\u0939\u0948\u0921\u0930" + "message": "हैडर" }, "hidden": { - "message": "\u091b\u093f\u092a\u093e \u0939\u0941\u0906" + "message": "छिपा हुआ" }, "hiddenOnVideoPage": { - "message": "\u0935\u0940\u0921\u093f\u092f\u094b \u092a\u0947\u091c \u092a\u0930 \u091b\u093f\u092a\u093e \u0939\u0941\u0906" + "message": "वीडियो पेज पर छिपा हुआ" }, "hideAnimatedThumbnails": { - "message": "\u0935\u0940\u0921\u093f\u092f\u094b \u092a\u0947\u091c \u092a\u0930 \u091b\u093f\u092a\u093e \u0939\u0941\u0906" + "message": "वीडियो पेज पर छिपा हुआ" }, "hideAnnotations": { - "message": "\u090f\u0928\u094b\u091f\u0947\u0936\u0928 \u091b\u0941\u092a\u093e\u090f\u0902" + "message": "एनोटेशन छुपाएं" }, "hideCards": { - "message": "\u092a\u0924\u094d\u0924\u0947 \u091b\u093f\u092a\u093e\u0913" + "message": "पत्ते छिपाओ" }, "hideDetails": { - "message": "\u091c\u093e\u0928\u0915\u093e\u0930\u0940 \u091b\u093f\u092a\u093e\u090f\u0901" + "message": "जानकारी छिपाएँ" }, "hideEndscreen": { - "message": "\u0905\u0902\u0924 \u0938\u094d\u0915\u094d\u0930\u0940\u0928 \u091b\u093f\u092a\u093e\u090f\u0901" + "message": "अंत स्क्रीन छिपाएँ" }, "hideFeaturedContent": { - "message": "\u0935\u093f\u0936\u0947\u0937\u0924\u093e\u0913\u0902 \u0915\u094b \u091b\u093f\u092a\u093e\u090f\u0901" + "message": "विशेषताओं को छिपाएँ" }, "hideFooter": { - "message": "\u092a\u093e\u0926 \u091b\u093f\u092a\u093e\u090f\u0901" + "message": "पाद छिपाएँ" }, "hideGradientBottom": { - "message": "\u0917\u094d\u0930\u0947\u0921\u093f\u090f\u0902\u091f \u092c\u0949\u091f\u092e \u091b\u0941\u092a\u093e\u090f\u0902" + "message": "ग्रेडिएंट बॉटम छुपाएं" }, "hidePlaylist": { - "message": "\u092a\u094d\u0932\u0947\u0932\u093f\u0938\u094d\u091f \u091b\u093f\u092a\u093e\u090f\u0902" + "message": "प्लेलिस्ट छिपाएं" }, "hideRightButtons": { - "message": "\u0926\u093e\u090f\u0902 \u092c\u091f\u0928 \u091b\u0941\u092a\u093e\u090f\u0902" + "message": "दाएं बटन छुपाएं" }, "hideScrollForDetails": { - "message": "\u091b\u093f\u092a\u093e\u090f\u0901 \u00ab\u0935\u093f\u0935\u0930\u0923 \u0915\u0947 \u0932\u093f\u090f \u0938\u094d\u0915\u094d\u0930\u0949\u0932\u00bb" + "message": "छिपाएँ «विवरण के लिए स्क्रॉल»" }, "hideViewsCount": { - "message": "\u0935\u094d\u092f\u0942 \u0915\u093e\u0909\u0902\u091f \u091b\u093f\u092a\u093e\u090f\u0902" + "message": "व्यू काउंट छिपाएं" }, "history": { - "message": "\u0907\u0924\u093f\u0939\u093e\u0938" + "message": "इतिहास" }, "home": { - "message": "\u0918\u0930" + "message": "घर" }, "hover": { - "message": "\u0939\u094b\u0935\u0930" + "message": "होवर" }, "hoverOnVideoPage": { - "message": "\u0935\u0940\u0921\u093f\u092f\u094b \u092a\u0947\u091c \u092a\u0930 \u0939\u094b\u0935\u0930" + "message": "वीडियो पेज पर होवर" }, "howLongAgoTheVideoWasUploaded": { - "message": "\u0935\u0940\u0921\u093f\u092f\u094b \u0915\u093f\u0924\u0928\u0940 \u0926\u0947\u0930 \u092a\u0939\u0932\u0947 \u0905\u092a\u0932\u094b\u0921 \u0915\u093f\u092f\u093e \u0917\u092f\u093e \u0925\u093e" + "message": "वीडियो कितनी देर पहले अपलोड किया गया था" }, "icons": { - "message": "\u092a\u094d\u0930\u0924\u0940\u0915" + "message": "प्रतीक" }, "iconsOnly": { - "message": "\u0915\u0947\u0935\u0932 \u092a\u094d\u0930\u0924\u0940\u0915" + "message": "केवल प्रतीक" }, "importSettings": { - "message": "\u0938\u0947\u091f\u093f\u0902\u0917 \u0906\u092f\u093e\u0924 \u0915\u0930\u0928\u093e" + "message": "सेटिंग आयात करना" }, "improveLogo": { - "message": "\u0932\u094b\u0917\u094b \u0938\u0941\u0927\u093e\u0930\u094b" + "message": "लोगो सुधारो" }, "improvedtubeIconInBrowser": { - "message": "\u092c\u094d\u0930\u093e\u0909\u091c\u093c\u0930 \u092e\u0947\u0902 \u092c\u0947\u0939\u0924\u0930 \u0906\u0907\u0915\u0928" + "message": "ब्राउज़र में बेहतर आइकन" }, "improvedtubeIconOnYoutube": { - "message": "\u092f\u0942\u091f\u094d\u092f\u0942\u092c \u092a\u0930 \u092c\u0947\u0939\u0924\u0930 \u0906\u0907\u0915\u0928" + "message": "यूट्यूब पर बेहतर आइकन" }, "improvedtubeLanguage": { - "message": "ImprovedTube \u092d\u093e\u0937\u093e" + "message": "ImprovedTube भाषा" }, "improvedtubeVersion": { - "message": "ImprovedTube \u0938\u0902\u0938\u094d\u0915\u0930\u0923" + "message": "ImprovedTube संस्करण" }, "increasePlaybackSpeed": { - "message": "\u092a\u094d\u0932\u0947\u092c\u0948\u0915 \u0938\u094d\u092a\u0940\u0921 \u092c\u0922\u093c\u093e\u090f\u0902" + "message": "प्लेबैक स्पीड बढ़ाएं" }, "increaseVolume": { - "message": "\u0927\u094d\u0935\u0928\u093f \u092c\u0922\u093c\u093e\u090f\u0902" + "message": "ध्वनि बढ़ाएं" }, "indigo": { - "message": "\u0928\u0940\u0932" + "message": "नील" }, "items": { - "message": "\u0906\u0907\u091f\u092e" + "message": "आइटम" }, "languages": { - "message": "\u092c\u094b\u0932\u0940" + "message": "बोली" }, "legacyYoutube": { - "message": "\u0935\u093f\u0930\u093e\u0938\u0924 \u092f\u0942\u091f\u094d\u092f\u0942\u092c" + "message": "विरासत यूट्यूब" }, "light": { - "message": "\u0939\u0932\u0915\u093e" + "message": "हलका" }, "lightBlue": { - "message": "\u0939\u0932\u094d\u0915\u093e \u0928\u0940\u0932\u093e" + "message": "हल्का नीला" }, "lightGreen": { - "message": "\u0939\u0932\u094d\u0915\u093e \u0939\u0930\u093e" + "message": "हल्का हरा" }, "like": { - "message": "\u092a\u0938\u0902\u0926" + "message": "पसंद" }, "likes": { - "message": "\u0915\u094b \u092f\u0939 \u092a\u0938\u0902\u0926 \u0939\u0948" + "message": "को यह पसंद है" }, "lime": { - "message": "\u092a\u0940\u0932\u093e \u0939\u0930\u093e \u0930\u0902\u0917" + "message": "पीला हरा रंग" }, "list": { - "message": "\u0938\u0942\u091a\u0940" + "message": "सूची" }, "liveChat": { - "message": "\u0938\u0940\u0927\u0940 \u092c\u093e\u0924\u091a\u0940\u0924" + "message": "सीधी बातचीत" }, "liveChatType": { - "message": "\u0932\u093e\u0907\u0935 \u091a\u0948\u091f \u092a\u094d\u0930\u0915\u093e\u0930" + "message": "लाइव चैट प्रकार" }, "loudnessNormalization": { - "message": "\u091c\u094b\u0930 \u0938\u0947 \u0938\u093e\u092e\u093e\u0928\u094d\u092f \u0939\u094b\u0928\u093e" + "message": "जोर से सामान्य होना" }, "markWatchedVideos": { - "message": "\u091a\u093f\u0939\u094d\u0928\u093f\u0924 \u0935\u0940\u0921\u093f\u092f\u094b \u0926\u0947\u0916\u0947 \u0917\u090f" + "message": "चिह्नित वीडियो देखे गए" }, "mixer": { - "message": "\u092e\u093f\u0915\u094d\u0938\u0930" + "message": "मिक्सर" }, "myColors": { - "message": "\u092e\u0947\u0930\u0947 \u0930\u0902\u0917" + "message": "मेरे रंग" }, "name": { - "message": "\u0928\u093e\u092e" + "message": "नाम" }, "nativeMiniPlayer": { - "message": "\u092e\u0942\u0932 \u0928\u093f\u0935\u093e\u0938\u0940 \u092e\u093f\u0928\u0940 \u092a\u094d\u0932\u0947\u092f\u0930" + "message": "मूल निवासी मिनी प्लेयर" }, "new": { - "message": "\u0928\u092f\u093e" + "message": "नया" }, "nextVideo": { - "message": "\u0905\u0917\u0932\u093e \u0935\u0940\u0921\u093f\u092f\u094b" + "message": "अगला वीडियो" }, "night": { - "message": "\u0930\u093e\u0924" + "message": "रात" }, "noActiveFeatures": { - "message": "\u0915\u094b\u0908 \u0938\u0915\u094d\u0930\u093f\u092f \u0938\u0941\u0935\u093f\u0927\u093e\u090f\u0901 \u0928\u0939\u0940\u0902" + "message": "कोई सक्रिय सुविधाएँ नहीं" }, "noOpenVideoTabs": { - "message": "\u0915\u094b\u0908 \u0916\u0941\u0932\u093e \u0935\u0940\u0921\u093f\u092f\u094b \u091f\u0948\u092c \u0928\u0939\u0940\u0902" + "message": "कोई खुला वीडियो टैब नहीं" }, "none": { - "message": "\u0915\u094b\u0908 \u0928\u0939\u0940\u0902" + "message": "कोई नहीं" }, "normal": { - "message": "\u0938\u093e\u0927\u093e\u0930\u0923" + "message": "साधारण" }, "old": { - "message": "\u092a\u0941\u0930\u093e\u0928\u093e" + "message": "पुराना" }, "onAllVideos": { - "message": "\u0938\u092d\u0940 \u0935\u0940\u0921\u093f\u092f\u094b \u092a\u0930" + "message": "सभी वीडियो पर" }, "onSubscribedChannels": { - "message": "\u0938\u0926\u0938\u094d\u092f\u0924\u093e \u092a\u094d\u0930\u093e\u092a\u094d\u0924 \u091a\u0948\u0928\u0932\u094b\u0902 \u092a\u0930" + "message": "सदस्यता प्राप्त चैनलों पर" }, "onlyActiveOnYoutube": { - "message": "\u0915\u0947\u0935\u0932 \u092f\u0942\u091f\u094d\u092f\u0942\u092c \u092a\u0930 \u0938\u0915\u094d\u0930\u093f\u092f \u0939\u0948" + "message": "केवल यूट्यूब पर सक्रिय है" }, "onlyOnePlayerInstancePlaying": { - "message": "\u0915\u0947\u0935\u0932 \u090f\u0915 \u092a\u094d\u0932\u0947\u092f\u0930 \u0915\u093e \u091a\u0932 \u0930\u0939\u093e \u0939\u0948" + "message": "केवल एक प्लेयर का चल रहा है" }, "orange": { - "message": "\u0928\u093e\u0930\u0902\u0917\u0940 \u0930\u0902\u0917" + "message": "नारंगी रंग" }, "os": { - "message": "\u0913 \u090f\u0938" + "message": "ओ एस" }, "other": { - "message": "\u0905\u0928\u094d\u092f" + "message": "अन्य" }, "permissions": { - "message": "\u0905\u0928\u0941\u092e\u0924\u093f\u092f\u093e\u0902" + "message": "अनुमतियां" }, "pictureInPicture": { - "message": "\u091a\u093f\u0924\u094d\u0930 \u092e\u0947\u0902 \u091a\u093f\u0924\u094d\u0930" + "message": "चित्र में चित्र" }, "pink": { - "message": "\u0917\u0941\u0932\u093e\u092c\u0940" + "message": "गुलाबी" }, "plain": { - "message": "\u0938\u093e\u0926\u093e" + "message": "सादा" }, "platform": { - "message": "\u092e\u0902\u091a" + "message": "मंच" }, "playPause": { - "message": "\u092a\u094d\u0932\u0947 / \u0920\u0939\u0930\u093e\u0935" + "message": "प्ले / ठहराव" }, "playbackSpeed": { - "message": "\u092a\u094d\u0932\u0947\u092c\u0948\u0915 \u0938\u094d\u092a\u0940\u0921" + "message": "प्लेबैक स्पीड" }, "player": { - "message": "\u092a\u094d\u0932\u0947\u092f\u0930" + "message": "प्लेयर" }, "playerColor": { - "message": "\u092a\u094d\u0932\u0947\u092f\u0930 \u0930\u0902\u0917" + "message": "प्लेयर रंग" }, "playerSize": { - "message": "\u092a\u094d\u0932\u0947\u092f\u0930 \u0906\u0915\u093e\u0930" + "message": "प्लेयर आकार" }, "playlist": { - "message": "\u092a\u094d\u0932\u0947\u0932\u093f\u0938\u094d\u091f" + "message": "प्लेलिस्ट" }, "playlists": { - "message": "\u092a\u094d\u0932\u0947\u0932\u093f\u0938\u094d\u091f" + "message": "प्लेलिस्ट" }, "popupPlayer": { - "message": "\u092a\u0949\u092a \u0905\u092a \u092a\u094d\u0932\u0947\u092f\u0930" + "message": "पॉप अप प्लेयर" }, "position": { - "message": "\u0938\u094d\u0925\u093e\u0928" + "message": "स्थान" }, "pressAnyKeyOrScroll": { - "message": "\u0915\u093f\u0938\u0940 \u092d\u0940 \u0915\u0941\u0902\u091c\u0940 \u0915\u094b \u0926\u092c\u093e\u090f\u0902 \u092f\u093e \u092e\u093e\u0909\u0938 \u0935\u094d\u0939\u0940\u0932 \u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0947\u0902\u0964" + "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" }, "pressAnyKeyOrUseMouseWheel": { - "message": "\u0915\u093f\u0938\u0940 \u092d\u0940 \u0915\u0941\u0902\u091c\u0940 \u0915\u094b \u0926\u092c\u093e\u090f\u0902 \u092f\u093e \u092e\u093e\u0909\u0938 \u0935\u094d\u0939\u0940\u0932 \u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0947\u0902\u0964" + "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" }, "previousVideo": { - "message": "\u092a\u093f\u091b\u0932\u093e \u0935\u0940\u0921\u093f\u092f\u094b" + "message": "पिछला वीडियो" }, "primaryColor": { - "message": "\u092a\u094d\u0930\u093e\u0925\u092e\u093f\u0915 \u0930\u0902\u0917" + "message": "प्राथमिक रंग" }, "purple": { - "message": "\u092c\u0948\u0902\u0917\u0928\u0940" + "message": "बैंगनी" }, "quality": { - "message": "\u0917\u0941\u0923\u0935\u0924\u094d\u0924\u093e" + "message": "गुणवत्ता" }, "ram": { "message": "RAM" }, "rateUs": { - "message": "\u0939\u092e\u0947\u0902 \u0930\u0947\u091f\u093f\u0902\u0917 \u0926\u0947\u0902" + "message": "हमें रेटिंग दें" }, "red": { - "message": "\u0932\u093e\u0932" + "message": "लाल" }, "redDislikeButton": { - "message": "\u0928\u093e\u092a\u0938\u0902\u0926 \u092c\u091f\u0928 \u0932\u093e\u0932 \u0930\u0902\u0917 \u0926\u093f\u0916\u093e\u090f\u0902" + "message": "नापसंद बटन लाल रंग दिखाएं" }, "relatedVideos": { - "message": "\u0938\u0902\u092c\u0902\u0927\u093f\u0924 \u0935\u0940\u0921\u093f\u092f\u094b" + "message": "संबंधित वीडियो" }, "removeRelatedSearchResults": { - "message": "\u0938\u0902\u092c\u0902\u0927\u093f\u0924 \u0916\u094b\u091c \u092a\u0930\u093f\u0923\u093e\u092e \u0928\u093f\u0915\u093e\u0932\u0947\u0902" + "message": "संबंधित खोज परिणाम निकालें" }, "repeat": { - "message": "\u0926\u094b\u0939\u0930\u093e\u0928\u093e" + "message": "दोहराना" }, "reset": { - "message": "\u0930\u0940\u0938\u0947\u091f" + "message": "रीसेट" }, "resetAllSettings": { - "message": "\u0938\u092d\u0940 \u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938 \u0915\u094b \u0930\u0940\u0938\u0947\u091f" + "message": "सभी सेटिंग्स को रीसेट" }, "resetAllShortcuts": { - "message": "\u0938\u092d\u0940 \u0936\u0949\u0930\u094d\u091f\u0915\u091f \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0947\u0902" + "message": "सभी शॉर्टकट रीसेट करें" }, "reverse": { - "message": "\u0909\u0932\u091f\u0928\u093e" + "message": "उलटना" }, "rotate": { - "message": "\u0918\u0941\u092e\u093e\u090f\u0901" + "message": "घुमाएँ" }, "save": { - "message": "\u0938\u0939\u0947\u091c\u0947\u0902" + "message": "सहेजें" }, "saveAs": { - "message": "\u0915\u0947 \u0930\u0942\u092a \u0930\u0915\u094d\u0937\u093f\u0924 \u0915\u0930\u0947\u0902" + "message": "के रूप रक्षित करें" }, "schedule": { - "message": "\u0905\u0928\u0941\u0938\u0942\u091a\u0940" + "message": "अनुसूची" }, "screen": { - "message": "\u0938\u094d\u0915\u094d\u0930\u0940\u0928" + "message": "स्क्रीन" }, "screenshot": { - "message": "\u0938\u094d\u0915\u094d\u0930\u0940\u0928\u0936\u0949\u091f" + "message": "स्क्रीनशॉट" }, "search": { - "message": "\u0916\u094b\u091c" + "message": "खोज" }, "searchBarOnly": { - "message": "\u0915\u0947\u0935\u0932 \u092c\u093e\u0930 \u0916\u094b\u091c\u0947\u0902" + "message": "केवल बार खोजें" }, "seekBackward10Seconds": { - "message": "\u092a\u093f\u091b\u0921\u093c\u0947 10 \u0938\u0947\u0915\u0902\u0921 \u0915\u0940 \u0924\u0932\u093e\u0936 \u0915\u0930\u0947\u0902" + "message": "पिछड़े 10 सेकंड की तलाश करें" }, "seekForward10Seconds": { - "message": "\u092a\u093f\u091b\u0921\u093c\u0947 10 \u0938\u0947\u0915\u0902\u0921 \u0915\u0940 \u0924\u0932\u093e\u0936 \u0915\u0930\u0947\u0902" + "message": "पिछड़े 10 सेकंड की तलाश करें" }, "settings": { - "message": "\u0938\u092e\u093e\u092f\u094b\u091c\u0928" + "message": "समायोजन" }, "settingsSuccessfullyImported": { - "message": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938 \u0938\u092b\u0932\u0924\u093e\u092a\u0942\u0930\u094d\u0935\u0915 \u0906\u092f\u093e\u0924 \u0915\u0940 \u0917\u0908\u0902" + "message": "सेटिंग्स सफलतापूर्वक आयात की गईं" }, "shortcuts": { - "message": "\u0936\u0949\u0930\u094d\u091f\u0915\u091f" + "message": "शॉर्टकट" }, "showCardsOnMouseHover": { - "message": "\u092e\u093e\u0909\u0938 \u0939\u094b\u0935\u0930 \u092a\u0930 \u0915\u093e\u0930\u094d\u0921 \u0926\u093f\u0916\u093e\u090f\u0902" + "message": "माउस होवर पर कार्ड दिखाएं" }, "showChannelVideosCount": { - "message": "\u091a\u0948\u0928\u0932 \u0935\u0940\u0921\u093f\u092f\u094b \u0915\u093e\u0909\u0902\u091f \u0926\u093f\u0916\u093e\u090f\u0902" + "message": "चैनल वीडियो काउंट दिखाएं" }, "shuffle": { - "message": "\u092e\u093f\u0936\u094d\u0930\u0923" + "message": "मिश्रण" }, "sidebar": { - "message": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930" + "message": "साइडबार" }, "spacebar": { - "message": "\u0938\u094d\u092a\u0947\u0938 \u092c\u093e\u0930" + "message": "स्पेस बार" }, "squaredUserImages": { - "message": "\u091a\u0941\u0915\u0924\u093e \u0909\u092a\u092f\u094b\u0917\u0915\u0930\u094d\u0924\u093e \u091a\u093f\u0924\u094d\u0930" + "message": "चुकता उपयोगकर्ता चित्र" }, "static": { - "message": "\u0938\u094d\u0925\u093f\u0930" + "message": "स्थिर" }, "statsForNerds": { - "message": "\u0921\u0947\u0935\u0932\u092a\u0930 \u0915\u0947 \u0932\u093f\u090f \u0906\u0901\u0915\u0921\u093c\u0947 \u0926\u093f\u0916\u093e\u090f\u0901" + "message": "डेवलपर के लिए आँकड़े दिखाएँ" }, "step": { - "message": "\u091a\u0930\u0923" + "message": "चरण" }, "stop": { - "message": "\u0930\u0941\u0915\u0947\u0902" + "message": "रुकें" }, "style": { - "message": "\u0905\u0902\u0926\u093e\u091c" + "message": "अंदाज" }, "styles": { - "message": "\u0936\u0948\u0932\u093f\u092f\u093e\u0901" + "message": "शैलियाँ" }, "subscriptions": { - "message": "\u0938\u0926\u0938\u094d\u092f\u0924\u093e" + "message": "सदस्यता" }, "subtitles": { - "message": "\u0909\u092a\u0936\u0940\u0930\u094d\u0937\u0915" + "message": "उपशीर्षक" }, "sunset": { - "message": "\u0938\u0942\u0930\u094d\u092f\u093e\u0938\u094d\u0924" + "message": "सूर्यास्त" }, "sunsetToSunrise": { - "message": "\u0938\u0942\u0930\u094d\u092f\u094b\u0926\u092f \u0938\u0947 \u0938\u0942\u0930\u094d\u092f\u093e\u0938\u094d\u0924" + "message": "सूर्योदय से सूर्यास्त" }, "systemPeferenceDark": { - "message": "\u0938\u093f\u0938\u094d\u091f\u092e \u092a\u094d\u0930\u093e\u0925\u092e\u093f\u0915\u0924\u093e\u090f\u0902: \u0905\u0902\u0927\u0947\u0930\u093e" + "message": "सिस्टम प्राथमिकताएं: अंधेरा" }, "systemPeferenceLight": { - "message": "\u0938\u093f\u0938\u094d\u091f\u092e \u0935\u0930\u0940\u092f\u0924\u093e\u090f\u0901: \u092a\u094d\u0930\u0915\u093e\u0936" + "message": "सिस्टम वरीयताएँ: प्रकाश" }, "teal": { - "message": "\u091f\u0940\u0932 \u0930\u0902\u0917" + "message": "टील रंग" }, "textColor": { - "message": "\u0932\u093f\u0916\u093e\u0935\u091f \u0915\u093e \u0930\u0902\u0917" + "message": "लिखावट का रंग" }, "themes": { - "message": "\u0935\u093f\u0937\u092f-\u0935\u0938\u094d\u0924\u0941" + "message": "विषय-वस्तु" }, "thisWillRemoveAllCookies": { - "message": "\u092f\u0939 \u0938\u092d\u0940 \u0915\u0941\u0915\u0940\u091c\u093c \u0915\u094b \u0939\u091f\u093e \u0926\u0947\u0917\u093e\u0964" + "message": "यह सभी कुकीज़ को हटा देगा।" }, "thisWillRemoveAllYouTubeCookies": { - "message": "\u092f\u0939 \u0938\u092d\u0940 \u092f\u0942\u091f\u094d\u092f\u0942\u092c \u0915\u0941\u0915\u0940\u091c\u093c \u0915\u094b \u0939\u091f\u093e \u0926\u0947\u0917\u093e\u0964" + "message": "यह सभी यूट्यूब कुकीज़ को हटा देगा।" }, "thisWillResetAllSettings": { - "message": "\u092f\u0939 \u0938\u092d\u0940 \u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938 \u0915\u094b \u0930\u0940\u0938\u0947\u091f \u0915\u0930 \u0926\u0947\u0917\u093e\u0964" + "message": "यह सभी सेटिंग्स को रीसेट कर देगा।" }, "thisWillResetAllShortcuts": { - "message": "\u092f\u0939 \u0938\u092d\u0940 \u0936\u0949\u0930\u094d\u091f\u0915\u091f \u0930\u0940\u0938\u0947\u091f \u0915\u0930 \u0926\u0947\u0917\u093e\u0964" + "message": "यह सभी शॉर्टकट रीसेट कर देगा।" }, "thumbnails": { - "message": "\u0925\u0902\u092c\u0928\u0947\u0932" + "message": "थंबनेल" }, "timeFrom": { - "message": "\u0938\u0947 \u0938\u092e\u092f" + "message": "से समय" }, "timeTo": { - "message": "\u0938\u092e\u092f \u092a\u0930" + "message": "समय पर" }, "todayAt": { - "message": "\u0906\u091c \u0907\u0938 \u0938\u092e\u092f" + "message": "आज इस समय" }, "toggleCards": { "message": "Toggle cards" }, "topChat": { - "message": "\u0936\u0940\u0930\u094d\u0937 \u091a\u0948\u091f" + "message": "शीर्ष चैट" }, "trailerAutoplay": { - "message": "\u091f\u094d\u0930\u0947\u0932\u0930 \u0911\u091f\u094b\u092a\u094d\u0932\u0947" + "message": "ट्रेलर ऑटोप्ले" }, "translations": { - "message": "\u0905\u0928\u0941\u0935\u093e\u0926" + "message": "अनुवाद" }, "transparentBackground": { - "message": "\u092a\u093e\u0930\u0926\u0930\u094d\u0936\u0940 \u092a\u0943\u0937\u094d\u0920\u092d\u0942\u092e\u093f" + "message": "पारदर्शी पृष्ठभूमि" }, "trending": { - "message": "\u0930\u0941\u091d\u093e\u0928" + "message": "रुझान" }, "tryToReloadThePage": { - "message": "\u092a\u0943\u0937\u094d\u0920 \u0915\u094b \u092a\u0941\u0928\u0903 \u0932\u094b\u0921 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902" + "message": "पृष्ठ को पुनः लोड करने का प्रयास करें" }, "type": { - "message": "\u091f\u093e\u0907\u092a" + "message": "टाइप" }, "upNextAutoplay": { - "message": "\u0905\u0917\u0932\u0947 \u0911\u091f\u094b\u092a\u094d\u0932\u0947 \u092a\u0930" + "message": "अगले ऑटोप्ले पर" }, "use24HourFormat": { - "message": "24-\u0918\u0902\u091f\u0947 \u0915\u0947 \u092a\u094d\u0930\u093e\u0930\u0942\u092a \u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0947\u0902" + "message": "24-घंटे के प्रारूप का उपयोग करें" }, "version": { - "message": "\u0938\u0902\u0938\u094d\u0915\u0930\u0923" + "message": "संस्करण" }, "video": { - "message": "\u0935\u0940\u0921\u093f\u092f\u094b" + "message": "वीडियो" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "\u0936\u094d\u0930\u0947\u0923\u0940 \u0915\u093e \u0928\u093e\u092e \u092a\u094d\u0930\u093e\u092a\u094d\u0924 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0935\u0940\u0921\u093f\u092f\u094b \u0935\u093f\u0935\u0930\u0923 \u0915\u093e \u0935\u093f\u0938\u094d\u0924\u093e\u0930 \u0915\u093f\u092f\u093e \u091c\u093e\u090f\u0917\u093e\u0964" + "message": "श्रेणी का नाम प्राप्त करने के लिए वीडियो विवरण का विस्तार किया जाएगा।" }, "videoFormats": { - "message": "\u0935\u0940\u0921\u093f\u092f\u094b \u092a\u094d\u0930\u093e\u0930\u0942\u092a" + "message": "वीडियो प्रारूप" }, "videos": { - "message": "\u0935\u0940\u0921\u093f\u092f\u094b" + "message": "वीडियो" }, "volume": { - "message": "\u0927\u094d\u0935\u0928\u093f" + "message": "ध्वनि" }, "watchLater": { - "message": "\u092c\u093e\u0926 \u092e\u0947\u0902 \u0926\u0947\u0916\u0928\u093e" + "message": "बाद में देखना" }, "watchTime": { - "message": "\u0938\u092e\u092f \u0926\u0947\u0916\u0947\u0902" + "message": "समय देखें" }, "whenTabIsChanged": { - "message": "\u091c\u092c \u091f\u0948\u092c \u092c\u0926\u0932\u093e \u091c\u093e\u0924\u093e \u0939\u0948" + "message": "जब टैब बदला जाता है" }, "white": { - "message": "\u0938\u092b\u0947\u0926" + "message": "सफेद" }, "yellow": { - "message": "\u092a\u0940\u0932\u093e" + "message": "पीला" }, "youtubeHeaderLeft": { - "message": "\u092f\u0942\u091f\u094d\u092f\u0942\u092c \u0939\u0948\u0921\u0930 (\u092c\u093e\u090f\u0902)" + "message": "यूट्यूब हैडर (बाएं)" }, "youtubeHeaderRight": { - "message": "\u092f\u0942\u091f\u094d\u092f\u0942\u092c \u0939\u0948\u0921\u0930 (\u0926\u093e\u090f\u0902)" + "message": "यूट्यूब हैडर (दाएं)" }, "youtubeHomePage": { - "message": "\u092f\u0942\u091f\u094d\u092f\u0942\u092c \u0939\u094b\u092e \u092a\u0947\u091c" + "message": "यूट्यूब होम पेज" }, "youtubeLanguage": { - "message": "\u092f\u0942\u091f\u094d\u092f\u0942\u092c \u092d\u093e\u0937\u093e" + "message": "यूट्यूब भाषा" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "\u092f\u0942\u091f\u094d\u092f\u0942\u092c h.264 \u0915\u094b\u0921\u0947\u0915 \u0915\u0947 \u0932\u093f\u090f \u0935\u0940\u0921\u093f\u092f\u094b \u0915\u0940 \u0917\u0941\u0923\u0935\u0924\u094d\u0924\u093e 1080 \u092a\u0940 \u0924\u0915 \u0938\u0940\u092e\u093f\u0924 \u0939\u0948" + "message": "यूट्यूब h.264 कोडेक के लिए वीडियो की गुणवत्ता 1080 पी तक सीमित है" } } \ No newline at end of file diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index b8b7cc09d..02aabdfe7 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -1,15 +1,15 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" @@ -33,13 +33,13 @@ "message": "Aktivirano" }, "activatedFeatures": { - "message": "Aktivirane zna\u010dajke" + "message": "Aktivirane značajke" }, "activeFeatures": { - "message": "Aktivne zna\u010dajke" + "message": "Aktivne značajke" }, "addScrollToTop": { - "message": "Dodaj \u00abPomaknite se na vrh\u00bb" + "message": "Dodaj «Pomaknite se na vrh»" }, "ads": { "message": "Oglasi" @@ -57,7 +57,7 @@ "message": "Uvijek aktivan" }, "alwaysShowProgressBar": { - "message": "Uvijek prika\u017ei traku napretka" + "message": "Uvijek prikaži traku napretka" }, "amber": { "message": "Jantar" @@ -114,7 +114,7 @@ "message": "Svijetlo plava" }, "brown": { - "message": "Sme\u0111a" + "message": "Smeđa" }, "browser": { "message": "Preglednik" @@ -123,16 +123,16 @@ "message": "Verzija preglednika" }, "bubbles": { - "message": "Mjehuri\u0107i" + "message": "Mjehurići" }, "bug": { - "message": "Gre\u0161ka" + "message": "Greška" }, "buttons": { "message": "Gumbi" }, "cancel": { - "message": "Otka\u017ei" + "message": "Otkaži" }, "categories": { "message": "Kategorije" @@ -144,13 +144,13 @@ "message": "Kanali" }, "clipboard": { - "message": "Me\u0111uspremnik" + "message": "Međuspremnik" }, "codecH264": { "message": "Kodek h.264" }, "collapseOfSubscriptionSections": { - "message": "Skupljanje pretplatni\u010dkih odjeljaka" + "message": "Skupljanje pretplatničkih odjeljaka" }, "collapsed": { "message": "Skupljeno" @@ -162,22 +162,22 @@ "message": "Potvrda prije zatvaranja" }, "cookies": { - "message": "Kola\u010di\u0107i" + "message": "Kolačići" }, "cores": { "message": "Jezgre" }, "cropChapterTitles": { - "message": "Izre\u017ei naslove poglavlja" + "message": "Izreži naslove poglavlja" }, "customCss": { - "message": "Prilago\u0111eni CSS" + "message": "Prilagođeni CSS" }, "customJs": { - "message": "Prilago\u0111eni JS" + "message": "Prilagođeni JS" }, "customMiniPlayer": { - "message": "Prilago\u0111eni Mini-Player" + "message": "Prilagođeni Mini-Player" }, "cyan": { "message": "Cijan" @@ -198,19 +198,19 @@ "message": "Smanji brzinu reprodukcije" }, "decreaseVolume": { - "message": "Smanji glasno\u0107u" + "message": "Smanji glasnoću" }, "deepOrange": { - "message": "Duboko naran\u010dasta" + "message": "Duboko narančasta" }, "deepPurple": { - "message": "Duboko ljubi\u010dasta" + "message": "Duboko ljubičasta" }, "defaultChannelTab": { "message": "Zadana kartica kanala" }, "deleteYoutubeCookies": { - "message": "Izbri\u0161ite YouTube kola\u010di\u0107e" + "message": "Izbrišite YouTube kolačiće" }, "description": { "message": "Opis" @@ -225,16 +225,16 @@ "message": "Opcije za programere" }, "device": { - "message": "Ure\u0111aj" + "message": "Uređaj" }, "dim": { - "message": "Prigu\u0161i" + "message": "Priguši" }, "disabled": { - "message": "Onemogu\u0107eno" + "message": "Onemogućeno" }, "dislike": { - "message": "Ne svi\u0111a mi se" + "message": "Ne sviđa mi se" }, "doNotChange": { "message": "Nemoj mijenjati" @@ -252,19 +252,19 @@ "message": "Prazno" }, "enabled": { - "message": "Omogu\u0107eno" + "message": "Omogućeno" }, "enabledForced": { - "message": "Omogu\u0107eno (prisilno)" + "message": "Omogućeno (prisilno)" }, "expanded": { - "message": "Pro\u0161ireno" + "message": "Prošireno" }, "exportSettings": { "message": "Izvoz postavki" }, "extension": { - "message": "Pro\u0161irenje" + "message": "Proširenje" }, "file": { "message": "Datoteka" @@ -282,7 +282,7 @@ "message": "Font" }, "footer": { - "message": "Podno\u017eje" + "message": "Podnožje" }, "forceSDR": { "message": "Prisilno SDR" @@ -291,19 +291,19 @@ "message": "Prisiljena brzina reprodukcije" }, "forcedTheaterMode": { - "message": "Prisiljen kazali\u0161ni na\u010din" + "message": "Prisiljen kazališni način" }, "forcedVolume": { - "message": "Prisiljena glasno\u0107a" + "message": "Prisiljena glasnoća" }, "foundABug": { - "message": "Prona\u0161li ste gre\u0161ku?" + "message": "Pronašli ste grešku?" }, "fullWindow": { "message": "Puni prozor" }, "general": { - "message": "Op\u0107enito" + "message": "Općenito" }, "geoPreference": { "message": "Geografske preferencije" @@ -312,7 +312,7 @@ "message": "GitHub" }, "goToSearchBox": { - "message": "Idite na okvir za pretra\u017eivanje" + "message": "Idite na okvir za pretraživanje" }, "gpu": { "message": "GPU" @@ -321,10 +321,10 @@ "message": "Zelena" }, "hdThumbnail": { - "message": "HD sli\u010dica" + "message": "HD sličica" }, "hdThumbnails": { - "message": "HD sli\u010dice" + "message": "HD sličice" }, "header": { "message": "Zaglavlje" @@ -336,7 +336,7 @@ "message": "Skriveno na stranici videozapisa" }, "hideAnimatedThumbnails": { - "message": "Sakrij animirane sli\u010dice" + "message": "Sakrij animirane sličice" }, "hideAnnotations": { "message": "Sakrij napomene" @@ -351,13 +351,13 @@ "message": "Sakrij detalje" }, "hideEndscreen": { - "message": "Sakrij zavr\u0161ni zaslon" + "message": "Sakrij završni zaslon" }, "hideFeaturedContent": { - "message": "Sakrij istaknuti sadr\u017eaj" + "message": "Sakrij istaknuti sadržaj" }, "hideFooter": { - "message": "Sakrij podno\u017eje" + "message": "Sakrij podnožje" }, "hideGradientBottom": { "message": "Sakrij sjenu oko trake playera" @@ -369,10 +369,10 @@ "message": "Sakrij desne gumbe" }, "hideScrollForDetails": { - "message": "Sakrij \u00abPomakni za detalje\u00bb" + "message": "Sakrij «Pomakni za detalje»" }, "hideThumbnailOverlay": { - "message": "Sakrij gumbe na sli\u010dicama" + "message": "Sakrij gumbe na sličicama" }, "hideViewsCount": { "message": "Sakrij broj pregleda" @@ -381,13 +381,13 @@ "message": "Povijest" }, "home": { - "message": "Po\u010detna" + "message": "Početna" }, "hover": { - "message": "Pre\u0111ite mi\u0161em preko" + "message": "Pređite mišem preko" }, "hoverOnVideoPage": { - "message": "Zadr\u017eite pokaziva\u010d mi\u0161a na stranici videozapisa" + "message": "Zadržite pokazivač miša na stranici videozapisa" }, "howLongAgoTheVideoWasUploaded": { "message": "Prije koliko je vremena video prenesen" @@ -402,7 +402,7 @@ "message": "Uvezi postavke" }, "improveLogo": { - "message": "Pobolj\u0161ajte logotip" + "message": "Poboljšajte logotip" }, "improvedtubeIconInBrowser": { "message": "Ikona ImprovedTube u pregledniku" @@ -417,10 +417,10 @@ "message": "ImprovedTube verzija" }, "increasePlaybackSpeed": { - "message": "Pove\u0107ajte brzinu reprodukcije" + "message": "Povećajte brzinu reprodukcije" }, "increaseVolume": { - "message": "Pove\u0107ajte glasno\u0107u" + "message": "Povećajte glasnoću" }, "indigo": { "message": "Indigo" @@ -432,7 +432,7 @@ "message": "Jezici" }, "legacyYoutube": { - "message": "Naslije\u0111eni YouTube" + "message": "Naslijeđeni YouTube" }, "light": { "message": "Svjetlo" @@ -444,10 +444,10 @@ "message": "Svjetlo zelena" }, "like": { - "message": "Svi\u0111a mi se" + "message": "Sviđa mi se" }, "likes": { - "message": "Svi\u0111aju mi se" + "message": "Sviđaju mi se" }, "lime": { "message": "Limeta" @@ -456,16 +456,16 @@ "message": "Lista" }, "liveChat": { - "message": "Chat u\u017eivo" + "message": "Chat uživo" }, "liveChatType": { - "message": "Vrsta chata u\u017eivo" + "message": "Vrsta chata uživo" }, "loudnessNormalization": { - "message": "Normalizacija glasno\u0107e" + "message": "Normalizacija glasnoće" }, "markWatchedVideos": { - "message": "Ozna\u010di pogledane videozapise" + "message": "Označi pogledane videozapise" }, "mixer": { "message": "Mikser" @@ -483,13 +483,13 @@ "message": "Novo" }, "nextVideo": { - "message": "Sljede\u0107i video" + "message": "Sljedeći video" }, "night": { - "message": "No\u0107" + "message": "Noć" }, "noActiveFeatures": { - "message": "Nema aktivnih zna\u010dajki" + "message": "Nema aktivnih značajki" }, "noOpenVideoTabs": { "message": "Nema otvorenih video kartica" @@ -507,7 +507,7 @@ "message": "Na svim video zapisima" }, "onSubscribedChannels": { - "message": "Na pretpla\u0107enim kanalima" + "message": "Na pretplaćenim kanalima" }, "onlyActiveOnYoutube": { "message": "Aktivno samo na YouTubeu" @@ -519,7 +519,7 @@ "message": "Otvorite videozapis / popis za reprodukciju u novom prozoru" }, "orange": { - "message": "Naran\u010dasto" + "message": "Narančasto" }, "os": { "message": "OS" @@ -528,13 +528,13 @@ "message": "Ostalo" }, "permissions": { - "message": "Dopu\u0161tenja" + "message": "Dopuštenja" }, "pictureInPicture": { "message": "Slika u slici" }, "pink": { - "message": "Ru\u017ei\u010dasto" + "message": "Ružičasto" }, "plain": { "message": "Jednostavno" @@ -555,7 +555,7 @@ "message": "Boja playera" }, "playerSize": { - "message": "Veli\u010dina playera" + "message": "Veličina playera" }, "playlist": { "message": "Popis za reprodukciju" @@ -564,16 +564,16 @@ "message": "Popisi za reprodukciju" }, "popupPlayer": { - "message": "Player u sko\u010dnom prozoru" + "message": "Player u skočnom prozoru" }, "position": { - "message": "Polo\u017eaj" + "message": "Položaj" }, "pressAnyKeyOrScroll": { - "message": "Pritisnite bilo koju tipku ili upotrijebite kota\u010di\u0107 mi\u0161a." + "message": "Pritisnite bilo koju tipku ili upotrijebite kotačić miša." }, "pressAnyKeyOrUseMouseWheel": { - "message": "Pritisnite bilo koju tipku ili upotrijebite kota\u010di\u0107 mi\u0161a" + "message": "Pritisnite bilo koju tipku ili upotrijebite kotačić miša" }, "previousVideo": { "message": "Prethodni videozapis" @@ -582,7 +582,7 @@ "message": "Primarna boja" }, "purple": { - "message": "Ljubi\u010dasta" + "message": "Ljubičasta" }, "quality": { "message": "Kvaliteta" @@ -597,13 +597,13 @@ "message": "Crvena" }, "redDislikeButton": { - "message": "Prika\u017ei ne svi\u0111a mi se botun u crvenoj boji" + "message": "Prikaži ne sviđa mi se botun u crvenoj boji" }, "relatedVideos": { - "message": "Sli\u010dni videozapisi" + "message": "Slični videozapisi" }, "removeRelatedSearchResults": { - "message": "Uklonite sli\u010dne rezultate pretra\u017eivanja" + "message": "Uklonite slične rezultate pretraživanja" }, "repeat": { "message": "Ponovi" @@ -615,7 +615,7 @@ "message": "Resetirajte sve postavke" }, "resetAllShortcuts": { - "message": "Resetirajte sve pre\u010dace" + "message": "Resetirajte sve prečace" }, "reverse": { "message": "Preokreni" @@ -624,10 +624,10 @@ "message": "Rotiraj" }, "save": { - "message": "Sa\u010duvaj" + "message": "Sačuvaj" }, "saveAs": { - "message": "Sa\u010duvaj kao" + "message": "Sačuvaj kao" }, "schedule": { "message": "Stavi na raspored" @@ -639,49 +639,49 @@ "message": "Snimka zaslona" }, "search": { - "message": "Pretra\u017ei" + "message": "Pretraži" }, "searchBarOnly": { - "message": "Samo traka za pretra\u017eivanje" + "message": "Samo traka za pretraživanje" }, "seekBackward10Seconds": { - "message": "Tra\u017ei unatrag 10 sekundi" + "message": "Traži unatrag 10 sekundi" }, "seekForward10Seconds": { - "message": "Tra\u017ei 10 sekundi prema naprijed" + "message": "Traži 10 sekundi prema naprijed" }, "settings": { "message": "Postavke" }, "settingsSuccessfullyImported": { - "message": "Postavke su uspje\u0161no uvezene" + "message": "Postavke su uspješno uvezene" }, "shortcuts": { - "message": "Pre\u010daci" + "message": "Prečaci" }, "showCardsOnMouseHover": { - "message": "Poka\u017ei kartice prilikom prelaska mi\u0161a" + "message": "Pokaži kartice prilikom prelaska miša" }, "showChannelVideosCount": { - "message": "Prika\u017ei broj videozapisa na kanalu" + "message": "Prikaži broj videozapisa na kanalu" }, "shuffle": { - "message": "Nasumi\u010dno" + "message": "Nasumično" }, "sidebar": { - "message": "Bo\u010dna traka" + "message": "Bočna traka" }, "spacebar": { "message": "Tipka razmaka" }, "squaredUserImages": { - "message": "Korisni\u010dke slike u kvadratu" + "message": "Korisničke slike u kvadratu" }, "static": { - "message": "Stati\u010dki" + "message": "Statički" }, "statsForNerds": { - "message": "Prika\u017ei statistiku za \u0161trebere" + "message": "Prikaži statistiku za štrebere" }, "step": { "message": "Korak" @@ -723,19 +723,19 @@ "message": "Teme" }, "thisWillRemoveAllCookies": { - "message": "Ovo \u0107e ukloniti sve kola\u010di\u0107e." + "message": "Ovo će ukloniti sve kolačiće." }, "thisWillRemoveAllYouTubeCookies": { - "message": "Ovo \u0107e ukloniti sve YouTube kola\u010di\u0107e" + "message": "Ovo će ukloniti sve YouTube kolačiće" }, "thisWillResetAllSettings": { - "message": "Ovo \u0107e resetirati sve postavke." + "message": "Ovo će resetirati sve postavke." }, "thisWillResetAllShortcuts": { - "message": "Ovo \u0107e resetirati sve pre\u010dace" + "message": "Ovo će resetirati sve prečace" }, "thumbnails": { - "message": "Sli\u010dice" + "message": "Sličice" }, "timeFrom": { "message": "Vrijeme od" @@ -747,13 +747,13 @@ "message": "Danas u" }, "toggleAutoplay": { - "message": "Uklju\u010di / isklju\u010di automatsku reprodukciju" + "message": "Uključi / isključi automatsku reprodukciju" }, "toggleCards": { - "message": "Uklju\u010di / isklju\u010di kartice" + "message": "Uključi / isključi kartice" }, "toggleControls": { - "message": "Uklju\u010di / isklju\u010di kontrole playera" + "message": "Uključi / isključi kontrole playera" }, "topChat": { "message": "Top chat" @@ -771,13 +771,13 @@ "message": "U trendu" }, "tryToReloadThePage": { - "message": "Poku\u0161ajte ponovo u\u010ditati stranicu" + "message": "Pokušajte ponovo učitati stranicu" }, "type": { "message": "Tip" }, "upNextAutoplay": { - "message": "Sljede\u0107a automatska reprodukcija" + "message": "Sljedeća automatska reprodukcija" }, "use24HourFormat": { "message": "Koristite 24-satni format" @@ -789,7 +789,7 @@ "message": "Video" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Opis videozapisa biti \u0107e pro\u0161iren kako bi se dobio naziv kategorije" + "message": "Opis videozapisa biti će proširen kako bi se dobio naziv kategorije" }, "videoFormats": { "message": "Video formati" @@ -798,7 +798,7 @@ "message": "Videozapisi" }, "volume": { - "message": "Glasno\u0107a" + "message": "Glasnoća" }, "watchLater": { "message": "Gledaj kasnije" @@ -813,7 +813,7 @@ "message": "Bijela" }, "yellow": { - "message": "\u017duta" + "message": "Žuta" }, "youtubeHeaderLeft": { "message": "YouTube zaglavlje (lijevo)" @@ -822,12 +822,12 @@ "message": "YouTube zaglavlje (desno)" }, "youtubeHomePage": { - "message": "YouTube po\u010detna stranica" + "message": "YouTube početna stranica" }, "youtubeLanguage": { "message": "YouTube jezik" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube ograni\u010dava kvalitetu videozapisa na 1080p za h.264 kodek" + "message": "YouTube ograničava kvalitetu videozapisa na 1080p za h.264 kodek" } } \ No newline at end of file diff --git a/_locales/id/messages.json b/_locales/id/messages.json index d9625860b..dc2247a98 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -1,15 +1,15 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" @@ -39,7 +39,7 @@ "message": "Fitur yang aktif" }, "addScrollToTop": { - "message": "Tambah \u00abGulir ke atas\u00bb" + "message": "Tambah «Gulir ke atas»" }, "ads": { "message": "Tampilkan iklan" @@ -363,7 +363,7 @@ "message": "Sembunyikan tombol kanan" }, "hideScrollForDetails": { - "message": "Sembunyikan \u00abgulir untuk detail\u00bb" + "message": "Sembunyikan «gulir untuk detail»" }, "hideViewsCount": { "message": "Sembunyikan jumlah penayangan" diff --git a/_locales/it/messages.json b/_locales/it/messages.json index ad3074f83..d68603aab 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -1,15 +1,15 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" @@ -33,16 +33,16 @@ "message": "Attivato/a" }, "activatedFeatures": { - "message": "Funzionalit\u00e0 attivate" + "message": "Funzionalità attivate" }, "activeFeatures": { "message": "Funzioni disponibili" }, "addScrollToTop": { - "message": "Aggiungi \u00abScorri in cima\u00bb" + "message": "Aggiungi «Scorri in cima»" }, "ads": { - "message": "Pubblicit\u00e0" + "message": "Pubblicità" }, "all": { "message": "Tutte" @@ -195,7 +195,7 @@ "message": "Albeggio" }, "decreasePlaybackSpeed": { - "message": "Riduci velocit\u00e0 di riproduzione" + "message": "Riduci velocità di riproduzione" }, "decreaseVolume": { "message": "Diminuisci volume" @@ -282,16 +282,16 @@ "message": "Font" }, "footer": { - "message": "Pi\u00e8 di pagina" + "message": "Piè di pagina" }, "forceSDR": { "message": "Forza SDR" }, "forcedPlaybackSpeed": { - "message": "Velocit\u00e0 di riproduzione forzata" + "message": "Velocità di riproduzione forzata" }, "forcedTheaterMode": { - "message": "Modalit\u00e0 cinema forzata" + "message": "Modalità cinema forzata" }, "forcedVolume": { "message": "Volume forzato" @@ -318,10 +318,10 @@ "message": "Verde" }, "hdThumbnail": { - "message": "Miniatura in alt\u00e0 qualit\u00e0" + "message": "Miniatura in altà qualità" }, "hdThumbnails": { - "message": "Miniature in alta qualit\u00e0" + "message": "Miniature in alta qualità" }, "header": { "message": "Intestazione" @@ -351,7 +351,7 @@ "message": "Nascondi contenuti in primo piano" }, "hideFooter": { - "message": "Nascondi pi\u00e8 di pagina" + "message": "Nascondi piè di pagina" }, "hideGradientBottom": { "message": "Nascondi fondo gradiente" @@ -363,7 +363,7 @@ "message": "Nascondi pulsanti sulla destra" }, "hideScrollForDetails": { - "message": "Nascondi \u00abScorri per dettagli\u00bb" + "message": "Nascondi «Scorri per dettagli»" }, "hideViewsCount": { "message": "Nascondi contatore visualizzazioni" @@ -381,7 +381,7 @@ "message": "In sospensione sulla pagine del video" }, "howLongAgoTheVideoWasUploaded": { - "message": "Quanto tempo fa il video \u00e8 stato caricato" + "message": "Quanto tempo fa il video è stato caricato" }, "icons": { "message": "Icone" @@ -408,7 +408,7 @@ "message": "Versione" }, "increasePlaybackSpeed": { - "message": "Incrementa velocit\u00e0 di riproduzione" + "message": "Incrementa velocità di riproduzione" }, "increaseVolume": { "message": "Aumenta volume" @@ -453,7 +453,7 @@ "message": "Tipologia chat dal vivo" }, "loudnessNormalization": { - "message": "Normalizzazione rumorosit\u00e0" + "message": "Normalizzazione rumorosità" }, "markWatchedVideos": { "message": "Contrassegna video visti" @@ -534,7 +534,7 @@ "message": "Avvio/Pausa" }, "playbackSpeed": { - "message": "Velocit\u00e0 di riproduzione" + "message": "Velocità di riproduzione" }, "player": { "message": "Lettore" @@ -573,7 +573,7 @@ "message": "Viola" }, "quality": { - "message": "Qualit\u00e0" + "message": "Qualità" }, "ram": { "message": "RAM" @@ -708,16 +708,16 @@ "message": "Temi" }, "thisWillRemoveAllCookies": { - "message": "Questo rimuover\u00e0 tutti i cookie" + "message": "Questo rimuoverà tutti i cookie" }, "thisWillRemoveAllYouTubeCookies": { - "message": "Questo rimuover\u00e0 tutti i cookie di YouTube" + "message": "Questo rimuoverà tutti i cookie di YouTube" }, "thisWillResetAllSettings": { - "message": "Questo reimposter\u00e0 l'intera configurazione" + "message": "Questo reimposterà l'intera configurazione" }, "thisWillResetAllShortcuts": { - "message": "Questo reimposter\u00e0 tutte le scorciatoie" + "message": "Questo reimposterà tutte le scorciatoie" }, "thumbnails": { "message": "Miniature" @@ -768,7 +768,7 @@ "message": "Video" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La descrizione del video verr\u00e0 espansa per ottenere il nome della categoria" + "message": "La descrizione del video verrà espansa per ottenere il nome della categoria" }, "videoFormats": { "message": "Formati video" @@ -780,7 +780,7 @@ "message": "Volume" }, "watchLater": { - "message": "Guarda pi\u00f9 tardi" + "message": "Guarda più tardi" }, "watchTime": { "message": "Tempo di visione" @@ -807,6 +807,6 @@ "message": "Lingua YouTube" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limita la qualit\u00e0 video a 1080p per il codec h.264" + "message": "YouTube limita la qualità video a 1080p per il codec h.264" } } \ No newline at end of file diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 31e6af3fb..650d26478 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -1,815 +1,815 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { - "message": "\u3053\u306e\u30bd\u30d5\u30c8\u306b\u3064\u3044\u3066" + "message": "このソフトについて" }, "accept": { - "message": "\u4e86\u89e3" + "message": "了解" }, "activate": { - "message": "\u6709\u52b9\u306b\u3059\u308b" + "message": "有効にする" }, "activateCaptions": { - "message": "\u30ad\u30e3\u30d7\u30b7\u30e7\u30f3\u3092\u6709\u52b9\u306b\u3059\u308b" + "message": "キャプションを有効にする" }, "activateFullscreen": { - "message": "\u5168\u753b\u9762\u306b\u3059\u308b" + "message": "全画面にする" }, "activated": { - "message": "\u6709\u52b9\u5316" + "message": "有効化" }, "activatedFeatures": { - "message": "\u6709\u52b9\u5316\u3055\u308c\u305f\u6a5f\u80fd" + "message": "有効化された機能" }, "activeFeatures": { - "message": "\u6a5f\u80fd\u306e\u5207\u308a\u66ff\u3048" + "message": "機能の切り替え" }, "addScrollToTop": { - "message": "\u300c\u4e00\u756a\u4e0a\u306b\u30b9\u30af\u30ed\u30fc\u30eb\u300d\u306e\u30dc\u30bf\u30f3\u3092\u8ffd\u52a0\u3059\u308b" + "message": "「一番上にスクロール」のボタンを追加する" }, "ads": { - "message": "\u5e83\u544a" + "message": "広告" }, "all": { - "message": "\u3059\u3079\u3066" + "message": "すべて" }, "allow": { - "message": "\u8a31\u53ef" + "message": "許可" }, "allow60fps": { - "message": "60fps\u3092\u8a31\u53ef\u3059\u308b" + "message": "60fpsを許可する" }, "alwaysActive": { - "message": "\u5e38\u306b\u6709\u52b9" + "message": "常に有効" }, "alwaysShowProgressBar": { - "message": "\u5e38\u306b\u30d7\u30ed\u30b0\u30ec\u30b9\u30d0\u30fc\u3092\u8868\u793a\u3059\u308b" + "message": "常にプログレスバーを表示する" }, "amber": { - "message": "\u30a2\u30f3\u30d0\u30fc" + "message": "アンバー" }, "analyzer": { - "message": "\u5206\u6790" + "message": "分析" }, "appearance": { - "message": "\u5916\u89b3" + "message": "外観" }, "audio": { - "message": "\u97f3\u58f0" + "message": "音声" }, "audioFormats": { - "message": "\u97f3\u58f0\u5f62\u5f0f" + "message": "音声形式" }, "auto": { - "message": "\u81ea\u52d5" + "message": "自動" }, "autoFullscreen": { - "message": "\u81ea\u52d5\u7684\u306b\u5168\u753b\u9762\u306b\u3059\u308b" + "message": "自動的に全画面にする" }, "autopauseWhenSwitchingTabs": { - "message": "\u30bf\u30d6\u5207\u308a\u66ff\u3048\u3067\u81ea\u52d5\u7684\u306b\u4e00\u6642\u505c\u6b62" + "message": "タブ切り替えで自動的に一時停止" }, "autoplay": { - "message": "\u81ea\u52d5\u518d\u751f" + "message": "自動再生" }, "backupAndReset": { - "message": "\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3068\u30ea\u30bb\u30c3\u30c8" + "message": "バックアップとリセット" }, "baseOnSystemColorScheme": { - "message": "\u30b7\u30b9\u30c6\u30e0\u306e\u8272\u306b\u5408\u308f\u305b\u308b" + "message": "システムの色に合わせる" }, "belowPlayer": { - "message": "\u30d7\u30ec\u30fc\u30e4\u30fc\u306e\u4e0b" + "message": "プレーヤーの下" }, "black": { - "message": "\u9ed2" + "message": "黒" }, "blacklist": { - "message": "\u30d6\u30e9\u30c3\u30af\u30ea\u30b9\u30c8" + "message": "ブラックリスト" }, "blockAll": { - "message": "\u3059\u3079\u3066\u30d6\u30ed\u30c3\u30af\u3059\u308b" + "message": "すべてブロックする" }, "blue": { - "message": "\u9752" + "message": "青" }, "blueGray": { - "message": "\u9752\u307f\u304c\u304b\u3063\u305f\u7070" + "message": "青みがかった灰" }, "bluelight": { - "message": "\u30d6\u30eb\u30fc\u30e9\u30a4\u30c8" + "message": "ブルーライト" }, "brown": { - "message": "\u8336" + "message": "茶" }, "browser": { - "message": "\u30d6\u30e9\u30a6\u30b6\u30fc" + "message": "ブラウザー" }, "browserVersion": { - "message": "\u30d6\u30e9\u30a6\u30b6\u30fc\u306e\u30d0\u30fc\u30b8\u30e7\u30f3" + "message": "ブラウザーのバージョン" }, "bubbles": { - "message": "\u30d0\u30d6\u30eb" + "message": "バブル" }, "bug": { - "message": "\u30d0\u30b0" + "message": "バグ" }, "buttons": { - "message": "\u30dc\u30bf\u30f3" + "message": "ボタン" }, "cancel": { - "message": "\u30ad\u30e3\u30f3\u30bb\u30eb" + "message": "キャンセル" }, "categories": { - "message": "\u30ab\u30c6\u30b4\u30ea\u30fc" + "message": "カテゴリー" }, "channel": { - "message": "\u30c1\u30e3\u30f3\u30cd\u30eb" + "message": "チャンネル" }, "channels": { - "message": "\u30c1\u30e3\u30f3\u30cd\u30eb" + "message": "チャンネル" }, "clipboard": { - "message": "\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9" + "message": "クリップボード" }, "codecH264": { - "message": "H.264\u30b3\u30fc\u30c7\u30c3\u30af" + "message": "H.264コーデック" }, "collapseOfSubscriptionSections": { - "message": "\u30b5\u30d6\u30b9\u30af\u30ea\u30d7\u30b7\u30e7\u30f3\u90e8\u5206\u3092\u7573\u3080" + "message": "サブスクリプション部分を畳む" }, "collapsed": { - "message": "\u7573\u3080" + "message": "畳む" }, "comments": { - "message": "\u30b3\u30e1\u30f3\u30c8" + "message": "コメント" }, "confirmationBeforeClosing": { - "message": "\u9589\u3058\u308b\u524d\u306b\u78ba\u8a8d\u3059\u308b" + "message": "閉じる前に確認する" }, "cookies": { "message": "Cookie" }, "cores": { - "message": "\u30b3\u30a2\u6570" + "message": "コア数" }, "cropChapterTitles": { - "message": "\u30c1\u30e3\u30d7\u30bf\u30fc\u306e\u30bf\u30a4\u30c8\u30eb\u3092\u30c8\u30ea\u30df\u30f3\u30b0\u3059\u308b" + "message": "チャプターのタイトルをトリミングする" }, "customCss": { - "message": "\u30ab\u30b9\u30bf\u30e0 CSS" + "message": "カスタム CSS" }, "customJs": { - "message": "\u30ab\u30b9\u30bf\u30e0 JS" + "message": "カスタム JS" }, "customMiniPlayer": { - "message": "\u30ab\u30b9\u30bf\u30e0\u30df\u30cb\u30d7\u30ec\u30fc\u30e4\u30fc" + "message": "カスタムミニプレーヤー" }, "cyan": { - "message": "\u30b7\u30a2\u30f3" + "message": "シアン" }, "dark": { - "message": "\u30c0\u30fc\u30af" + "message": "ダーク" }, "darkTheme": { - "message": "\u30c0\u30fc\u30af\u30c6\u30fc\u30de" + "message": "ダークテーマ" }, "dateAndTime": { - "message": "\u65e5\u4ed8\u3068\u6642\u523b" + "message": "日付と時刻" }, "dawn": { - "message": "\u591c\u660e\u3051" + "message": "夜明け" }, "decreasePlaybackSpeed": { - "message": "\u518d\u751f\u901f\u5ea6\u3092\u4e0b\u3052\u308b" + "message": "再生速度を下げる" }, "decreaseVolume": { - "message": "\u97f3\u91cf\u3092\u4e0b\u3052\u308b" + "message": "音量を下げる" }, "deepOrange": { - "message": "\u6df1\u3044\u30aa\u30ec\u30f3\u30b8" + "message": "深いオレンジ" }, "deepPurple": { - "message": "\u6df1\u3044\u7d2b" + "message": "深い紫" }, "defaultChannelTab": { - "message": "\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30c1\u30e3\u30f3\u30cd\u30eb\u30bf\u30d6" + "message": "デフォルトのチャンネルタブ" }, "deleteYoutubeCookies": { - "message": "YouTube \u306e Cookie \u3092\u524a\u9664\u3059\u308b" + "message": "YouTube の Cookie を削除する" }, "description": { - "message": "\u8aac\u660e" + "message": "説明" }, "desert": { - "message": "\u7802\u6f20" + "message": "砂漠" }, "details": { - "message": "\u8a73\u7d30" + "message": "詳細" }, "developerOptions": { - "message": "\u958b\u767a\u8005\u5411\u3051\u30aa\u30d7\u30b7\u30e7\u30f3" + "message": "開発者向けオプション" }, "device": { - "message": "\u30c7\u30d0\u30a4\u30b9" + "message": "デバイス" }, "dim": { - "message": "\u6697\u3055" + "message": "暗さ" }, "disabled": { - "message": "\u7121\u52b9" + "message": "無効" }, "dislike": { - "message": "\u4f4e\u8a55\u4fa1" + "message": "低評価" }, "doNotChange": { - "message": "\u5909\u66f4\u3057\u306a\u3044" + "message": "変更しない" }, "donate": { - "message": "\u5bc4\u4ed8\u3059\u308b" + "message": "寄付する" }, "draggable": { - "message": "\u30c9\u30e9\u30c3\u30b0\u53ef\u80fd\u306b\u3059\u308b" + "message": "ドラッグ可能にする" }, "email": { "message": "Email" }, "empty": { - "message": "\u306a\u3057" + "message": "なし" }, "enabled": { - "message": "\u6709\u52b9" + "message": "有効" }, "enabledForced": { - "message": "\u6709\u52b9 (\u5f37\u5236)" + "message": "有効 (強制)" }, "expanded": { - "message": "\u5e83\u3052\u308b" + "message": "広げる" }, "exportSettings": { - "message": "\u8a2d\u5b9a\u3092\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3059\u308b" + "message": "設定をエクスポートする" }, "extension": { - "message": "\u62e1\u5f35" + "message": "拡張" }, "file": { - "message": "\u30d5\u30a1\u30a4\u30eb" + "message": "ファイル" }, "filters": { - "message": "\u30d5\u30a3\u30eb\u30bf\u30fc" + "message": "フィルター" }, "fitToWindow": { - "message": "\u30a6\u30a3\u30f3\u30c9\u30a6\u306b\u5408\u308f\u305b\u308b" + "message": "ウィンドウに合わせる" }, "flash": { "message": "Flash" }, "font": { - "message": "\u30d5\u30a9\u30f3\u30c8" + "message": "フォント" }, "footer": { - "message": "\u30d5\u30c3\u30bf\u30fc" + "message": "フッター" }, "forceSDR": { "message": "Force SDR" }, "forcedPlaybackSpeed": { - "message": "\u518d\u751f\u901f\u5ea6\u3092\u6307\u5b9a\u3059\u308b" + "message": "再生速度を指定する" }, "forcedTheaterMode": { - "message": "\u30b7\u30a2\u30bf\u30fc\u30e2\u30fc\u30c9\u306b\u3059\u308b" + "message": "シアターモードにする" }, "forcedVolume": { - "message": "\u97f3\u91cf\u3092\u6307\u5b9a\u3059\u308b" + "message": "音量を指定する" }, "foundABug": { - "message": "\u30d0\u30b0\u5831\u544a" + "message": "バグ報告" }, "fullWindow": { - "message": "\u30d5\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6" + "message": "フルウィンドウ" }, "general": { - "message": "\u4e00\u822c" + "message": "一般" }, "github": { "message": "GitHub" }, "goToSearchBox": { - "message": "\u691c\u7d22\u30dc\u30c3\u30af\u30b9\u306b\u884c\u304f" + "message": "検索ボックスに行く" }, "gpu": { "message": "GPU" }, "green": { - "message": "\u7dd1" + "message": "緑" }, "hdThumbnail": { - "message": "HD\u30b5\u30e0\u30cd\u30a4\u30eb" + "message": "HDサムネイル" }, "hdThumbnails": { - "message": "HD\u30b5\u30e0\u30cd\u30a4\u30eb" + "message": "HDサムネイル" }, "header": { - "message": "\u30d8\u30c3\u30c0\u30fc" + "message": "ヘッダー" }, "hidden": { - "message": "\u96a0\u3059" + "message": "隠す" }, "hiddenOnVideoPage": { - "message": "\u52d5\u753b\u30da\u30fc\u30b8\u3067\u306f\u96a0\u3059" + "message": "動画ページでは隠す" }, "hideAnimatedThumbnails": { - "message": "\u30b5\u30e0\u30cd\u30a4\u30eb\u306e\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u3092\u884c\u308f\u306a\u3044" + "message": "サムネイルのアニメーションを行わない" }, "hideAnnotations": { - "message": "\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u3092\u96a0\u3059" + "message": "アノテーションを隠す" }, "hideCards": { - "message": "\u30ab\u30fc\u30c9\u3092\u96a0\u3059" + "message": "カードを隠す" }, "hideDetails": { - "message": "\u8a73\u7d30\u3092\u96a0\u3059" + "message": "詳細を隠す" }, "hideEndscreen": { - "message": "\u518d\u751f\u7d42\u4e86\u6642\u306e\u753b\u9762\u3092\u96a0\u3059" + "message": "再生終了時の画面を隠す" }, "hideFeaturedContent": { - "message": "\u304a\u3059\u3059\u3081\u30c1\u30e3\u30f3\u30cd\u30eb\u3092\u975e\u8868\u793a\u306b\u3059\u308b" + "message": "おすすめチャンネルを非表示にする" }, "hideFooter": { - "message": "\u30d5\u30c3\u30bf\u30fc\u3092\u96a0\u3059" + "message": "フッターを隠す" }, "hideGradientBottom": { - "message": "\u30b0\u30e9\u30c7\u30fc\u30b7\u30e7\u30f3\u306e\u4e0b\u90e8\u3092\u96a0\u3059" + "message": "グラデーションの下部を隠す" }, "hidePlaylist": { - "message": "\u518d\u751f\u30ea\u30b9\u30c8\u3092\u96a0\u3059" + "message": "再生リストを隠す" }, "hideRightButtons": { - "message": "\u53f3\u30dc\u30bf\u30f3\u3092\u96a0\u3059" + "message": "右ボタンを隠す" }, "hideScrollForDetails": { - "message": "\u300c\u30b9\u30af\u30ed\u30fc\u30eb\u3057\u3066\u8a73\u7d30\u3092\u8868\u793a\u300d\u3092\u96a0\u3059" + "message": "「スクロールして詳細を表示」を隠す" }, "hideViewsCount": { - "message": "\u8996\u8074\u6570\u3092\u96a0\u3059" + "message": "視聴数を隠す" }, "history": { - "message": "\u5c65\u6b74" + "message": "履歴" }, "home": { - "message": "\u30db\u30fc\u30e0" + "message": "ホーム" }, "hover": { - "message": "\u30db\u30d0\u30fc" + "message": "ホバー" }, "hoverOnVideoPage": { - "message": "\u52d5\u753b\u30da\u30fc\u30b8\u3067\u306f\u30db\u30d0\u30fc" + "message": "動画ページではホバー" }, "howLongAgoTheVideoWasUploaded": { - "message": "\u52d5\u753b\u304c\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3055\u308c\u3066\u304b\u3089\u306e\u6642\u9593" + "message": "動画がアップロードされてからの時間" }, "icons": { - "message": "\u30a2\u30a4\u30b3\u30f3" + "message": "アイコン" }, "iconsOnly": { - "message": "\u30a2\u30a4\u30b3\u30f3\u306e\u307f" + "message": "アイコンのみ" }, "importSettings": { - "message": "\u8a2d\u5b9a\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b" + "message": "設定をインポートする" }, "improveLogo": { - "message": "\u30ed\u30b4\u3092\u6539\u826f\u3059\u308b" + "message": "ロゴを改良する" }, "improvedtubeIconInBrowser": { - "message": "ImprovedTube\u30a2\u30a4\u30b3\u30f3\u3092\u30d6\u30e9\u30a6\u30b6\u306b\u8868\u793a\u3059\u308b" + "message": "ImprovedTubeアイコンをブラウザに表示する" }, "improvedtubeIconOnYoutube": { - "message": "ImprovedTube\u30a2\u30a4\u30b3\u30f3\u3092YouTube\u306b\u8868\u793a\u3059\u308b" + "message": "ImprovedTubeアイコンをYouTubeに表示する" }, "improvedtubeLanguage": { - "message": "ImprovedTube \u306e\u8a00\u8a9e" + "message": "ImprovedTube の言語" }, "improvedtubeVersion": { - "message": "ImprovedTube \u306e\u30d0\u30fc\u30b8\u30e7\u30f3" + "message": "ImprovedTube のバージョン" }, "increasePlaybackSpeed": { - "message": "\u518d\u751f\u901f\u5ea6\u3092\u4e0a\u3052\u308b" + "message": "再生速度を上げる" }, "increaseVolume": { - "message": "\u97f3\u91cf\u3092\u4e0a\u3052\u308b" + "message": "音量を上げる" }, "indigo": { - "message": "\u30a4\u30f3\u30c7\u30a3\u30b4" + "message": "インディゴ" }, "items": { - "message": "\u30a2\u30a4\u30c6\u30e0" + "message": "アイテム" }, "languages": { - "message": "\u8a00\u8a9e" + "message": "言語" }, "legacyYoutube": { - "message": "\u53e4\u3044 YouTube \u306b\u3059\u308b" + "message": "古い YouTube にする" }, "light": { - "message": "\u30e9\u30a4\u30c8" + "message": "ライト" }, "lightBlue": { - "message": "\u8584\u3044\u9752" + "message": "薄い青" }, "lightGreen": { - "message": "\u8584\u3044\u7dd1" + "message": "薄い緑" }, "like": { - "message": "\u9ad8\u8a55\u4fa1" + "message": "高評価" }, "likes": { - "message": "\u8a55\u4fa1" + "message": "評価" }, "lime": { - "message": "\u30e9\u30a4\u30e0" + "message": "ライム" }, "list": { - "message": "\u30ea\u30b9\u30c8" + "message": "リスト" }, "liveChat": { - "message": "\u30e9\u30a4\u30d6\u30c1\u30e3\u30c3\u30c8" + "message": "ライブチャット" }, "liveChatType": { - "message": "\u30e9\u30a4\u30d6\u30c1\u30e3\u30c3\u30c8\u306e\u7a2e\u985e" + "message": "ライブチャットの種類" }, "loudnessNormalization": { - "message": "\u97f3\u91cf\u306e\u30ce\u30fc\u30de\u30ea\u30bc\u30fc\u30b7\u30e7\u30f3" + "message": "音量のノーマリゼーション" }, "markWatchedVideos": { - "message": "\u8996\u8074\u3057\u305f\u52d5\u753b\u306b\u30de\u30fc\u30af\u3092\u4ed8\u3051\u308b" + "message": "視聴した動画にマークを付ける" }, "mixer": { - "message": "\u30df\u30ad\u30b5\u30fc" + "message": "ミキサー" }, "myColors": { - "message": "\u8272\u8a2d\u5b9a" + "message": "色設定" }, "name": { - "message": "\u540d\u524d" + "message": "名前" }, "nativeMiniPlayer": { - "message": "\u30cd\u30a4\u30c6\u30a3\u30d6\u30df\u30cb\u30d7\u30ec\u30fc\u30e4\u30fc" + "message": "ネイティブミニプレーヤー" }, "new": { - "message": "\u65b0\u898f" + "message": "新規" }, "nextVideo": { - "message": "\u6b21\u306e\u52d5\u753b" + "message": "次の動画" }, "night": { - "message": "\u591c" + "message": "夜" }, "noActiveFeatures": { - "message": "\u6709\u52b9\u5316\u3055\u308c\u305f\u6a5f\u80fd\u304c\u3042\u308a\u307e\u305b\u3093" + "message": "有効化された機能がありません" }, "noOpenVideoTabs": { - "message": "\u958b\u3044\u3066\u3044\u308b\u52d5\u753b\u30bf\u30d6\u304c\u3042\u308a\u307e\u305b\u3093" + "message": "開いている動画タブがありません" }, "none": { - "message": "\u306a\u3057" + "message": "なし" }, "normal": { - "message": "\u6a19\u6e96" + "message": "標準" }, "old": { "message": "Old" }, "onAllVideos": { - "message": "\u3059\u3079\u3066\u8a31\u53ef\u3059\u308b" + "message": "すべて許可する" }, "onSubscribedChannels": { - "message": "\u767b\u9332\u3057\u305f\u30c1\u30e3\u30f3\u30cd\u30eb\u3067\u306f\u8a31\u53ef\u3059\u308b" + "message": "登録したチャンネルでは許可する" }, "onlyActiveOnYoutube": { - "message": "YouTube \u3067\u6709\u52b9" + "message": "YouTube で有効" }, "onlyOnePlayerInstancePlaying": { - "message": "1\u3064\u306e\u30d7\u30ec\u30fc\u30e4\u30fc\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u307f\u306b\u3059\u308b" + "message": "1つのプレーヤーインスタンスのみにする" }, "orange": { - "message": "\u30aa\u30ec\u30f3\u30b8" + "message": "オレンジ" }, "os": { "message": "OS" }, "other": { - "message": "\u305d\u306e\u4ed6" + "message": "その他" }, "permissions": { - "message": "\u6a29\u9650" + "message": "権限" }, "pictureInPicture": { - "message": "\u30d4\u30af\u30c1\u30e3\u30fc\u30a4\u30f3\u30d4\u30af\u30c1\u30e3\u30fc" + "message": "ピクチャーインピクチャー" }, "pink": { - "message": "\u30d4\u30f3\u30af" + "message": "ピンク" }, "plain": { - "message": "\u30d7\u30ec\u30fc\u30f3" + "message": "プレーン" }, "platform": { - "message": "\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0" + "message": "プラットフォーム" }, "playPause": { - "message": "\u518d\u751f/\u4e00\u6642\u505c\u6b62" + "message": "再生/一時停止" }, "playbackSpeed": { - "message": "\u518d\u751f\u901f\u5ea6" + "message": "再生速度" }, "player": { - "message": "\u30d7\u30ec\u30fc\u30e4\u30fc" + "message": "プレーヤー" }, "playerColor": { - "message": "\u30d7\u30ec\u30fc\u30e4\u30fc\u306e\u8272" + "message": "プレーヤーの色" }, "playerSize": { - "message": "\u30d7\u30ec\u30fc\u30e4\u30fc\u306e\u30b5\u30a4\u30ba" + "message": "プレーヤーのサイズ" }, "playlist": { - "message": "\u518d\u751f\u30ea\u30b9\u30c8" + "message": "再生リスト" }, "playlists": { - "message": "\u518d\u751f\u30ea\u30b9\u30c8" + "message": "再生リスト" }, "popupPlayer": { - "message": "\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u30d7\u30ec\u30fc\u30e4\u30fc" + "message": "ポップアッププレーヤー" }, "position": { - "message": "\u4f4d\u7f6e" + "message": "位置" }, "pressAnyKeyOrScroll": { - "message": "\u4efb\u610f\u306e\u30ad\u30fc\u3092\u62bc\u3059\u304b\u3001\u30de\u30a6\u30b9\u30db\u30a4\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044" + "message": "任意のキーを押すか、マウスホイールを使用してください" }, "pressAnyKeyOrUseMouseWheel": { - "message": "\u4efb\u610f\u306e\u30ad\u30fc\u3092\u62bc\u3059\u304b\u3001\u30de\u30a6\u30b9\u30db\u30a4\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044" + "message": "任意のキーを押すか、マウスホイールを使用してください" }, "previousVideo": { - "message": "\u524d\u306e\u52d5\u753b" + "message": "前の動画" }, "primaryColor": { - "message": "\u5168\u4f53\u306e\u8272" + "message": "全体の色" }, "purple": { - "message": "\u7d2b" + "message": "紫" }, "quality": { - "message": "\u753b\u8cea" + "message": "画質" }, "ram": { "message": "RAM" }, "rateUs": { - "message": "\u8a55\u4fa1\u3059\u308b" + "message": "評価する" }, "red": { - "message": "\u8d64" + "message": "赤" }, "redDislikeButton": { - "message": "\u4f4e\u8a55\u4fa1\u30dc\u30bf\u30f3\u3092\u8d64\u8272\u3067\u8868\u793a\u3059\u308b" + "message": "低評価ボタンを赤色で表示する" }, "relatedVideos": { - "message": "\u95a2\u9023\u52d5\u753b" + "message": "関連動画" }, "removeRelatedSearchResults": { - "message": "\u95a2\u9023\u52d5\u753b\u3092\u691c\u7d22\u7d50\u679c\u304b\u3089\u524a\u9664\u3059\u308b" + "message": "関連動画を検索結果から削除する" }, "repeat": { - "message": "\u30ea\u30d4\u30fc\u30c8" + "message": "リピート" }, "reset": { - "message": "\u30ea\u30bb\u30c3\u30c8" + "message": "リセット" }, "resetAllSettings": { - "message": "\u3059\u3079\u3066\u306e\u8a2d\u5b9a\u3092\u30ea\u30bb\u30c3\u30c8\u3059\u308b" + "message": "すべての設定をリセットする" }, "resetAllShortcuts": { - "message": "\u3059\u3079\u3066\u306e\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3092\u30ea\u30bb\u30c3\u30c8\u3059\u308b" + "message": "すべてのショートカットをリセットする" }, "reverse": { - "message": "\u9006\u9806\u306b\u3059\u308b" + "message": "逆順にする" }, "rotate": { - "message": "\u56de\u8ee2" + "message": "回転" }, "save": { - "message": "\u4fdd\u5b58" + "message": "保存" }, "saveAs": { - "message": "\u5225\u540d\u3067\u4fdd\u5b58\u3059\u308b" + "message": "別名で保存する" }, "schedule": { - "message": "\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb" + "message": "スケジュール" }, "screen": { - "message": "\u30b9\u30af\u30ea\u30fc\u30f3" + "message": "スクリーン" }, "screenshot": { - "message": "\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8" + "message": "スクリーンショット" }, "search": { - "message": "\u691c\u7d22" + "message": "検索" }, "searchBarOnly": { - "message": "\u691c\u7d22\u30d0\u30fc\u306e\u307f" + "message": "検索バーのみ" }, "seekBackward10Seconds": { - "message": "10\u79d2\u623b\u308b" + "message": "10秒戻る" }, "seekForward10Seconds": { - "message": "10\u79d2\u9032\u3080" + "message": "10秒進む" }, "settings": { - "message": "\u8a2d\u5b9a" + "message": "設定" }, "settingsSuccessfullyImported": { - "message": "\u8a2d\u5b9a\u3092\u6b63\u5e38\u306b\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u307e\u3057\u305f" + "message": "設定を正常にインポートしました" }, "shortcuts": { - "message": "\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8" + "message": "ショートカット" }, "showCardsOnMouseHover": { - "message": "\u30de\u30a6\u30b9\u30aa\u30fc\u30d0\u30fc\u3067\u30ab\u30fc\u30c9\u3092\u8868\u793a\u3059\u308b" + "message": "マウスオーバーでカードを表示する" }, "showChannelVideosCount": { - "message": "\u30c1\u30e3\u30f3\u30cd\u30eb\u306e\u52d5\u753b\u6570\u3092\u8868\u793a\u3059\u308b" + "message": "チャンネルの動画数を表示する" }, "shuffle": { - "message": "\u30b7\u30e3\u30c3\u30d5\u30eb" + "message": "シャッフル" }, "sidebar": { - "message": "\u30b5\u30a4\u30c9\u30d0\u30fc" + "message": "サイドバー" }, "spacebar": { - "message": "\u30b9\u30da\u30fc\u30b9\u30ad\u30fc" + "message": "スペースキー" }, "squaredUserImages": { - "message": "\u30e6\u30fc\u30b6\u30fc\u753b\u50cf\u3092\u56db\u89d2\u306b\u3059\u308b" + "message": "ユーザー画像を四角にする" }, "static": { - "message": "\u30b9\u30bf\u30c6\u30a3\u30c3\u30af" + "message": "スタティック" }, "statsForNerds": { "message": "Show Stats for Nerds" }, "step": { - "message": "\u30b9\u30c6\u30c3\u30d7" + "message": "ステップ" }, "stop": { - "message": "\u505c\u6b62" + "message": "停止" }, "style": { - "message": "\u30b9\u30bf\u30a4\u30eb" + "message": "スタイル" }, "styles": { - "message": "\u30b9\u30bf\u30a4\u30eb" + "message": "スタイル" }, "subscriptions": { - "message": "\u767b\u9332\u30c1\u30e3\u30f3\u30cd\u30eb" + "message": "登録チャンネル" }, "subtitles": { - "message": "\u30b5\u30d6\u30bf\u30a4\u30c8\u30eb" + "message": "サブタイトル" }, "sunset": { - "message": "\u5915\u713c\u3051" + "message": "夕焼け" }, "sunsetToSunrise": { - "message": "\u5915\u713c\u3051\u304b\u3089\u65e5\u306e\u51fa\u3078" + "message": "夕焼けから日の出へ" }, "systemPeferenceDark": { - "message": "\u30b7\u30b9\u30c6\u30e0\u8a2d\u5b9a: \u30c0\u30fc\u30af" + "message": "システム設定: ダーク" }, "systemPeferenceLight": { - "message": "\u30b7\u30b9\u30c6\u30e0\u8a2d\u5b9a: \u30e9\u30a4\u30c8" + "message": "システム設定: ライト" }, "teal": { - "message": "\u30c6\u30a3\u30fc\u30eb" + "message": "ティール" }, "textColor": { - "message": "\u6587\u5b57\u306e\u8272" + "message": "文字の色" }, "themes": { - "message": "\u30c6\u30fc\u30de" + "message": "テーマ" }, "thisWillRemoveAllCookies": { - "message": "\u3053\u308c\u306f\u3059\u3079\u3066\u306e Cookie \u3092\u524a\u9664\u3057\u307e\u3059\u3002" + "message": "これはすべての Cookie を削除します。" }, "thisWillRemoveAllYouTubeCookies": { - "message": "YouTube \u306e\u3059\u3079\u3066\u306e Cookie \u3092\u524a\u9664\u3057\u307e\u3059" + "message": "YouTube のすべての Cookie を削除します" }, "thisWillResetAllSettings": { - "message": "\u3059\u3079\u3066\u306e\u8a2d\u5b9a\u3092\u30ea\u30bb\u30c3\u30c8\u3057\u307e\u3059\u3002" + "message": "すべての設定をリセットします。" }, "thisWillResetAllShortcuts": { - "message": "\u3059\u3079\u3066\u306e\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3092\u30ea\u30bb\u30c3\u30c8\u3057\u307e\u3059" + "message": "すべてのショートカットをリセットします" }, "thumbnails": { - "message": "\u30b5\u30e0\u30cd\u30a4\u30eb" + "message": "サムネイル" }, "timeFrom": { - "message": "\u3053\u306e\u6642\u9593\u304b\u3089" + "message": "この時間から" }, "timeTo": { - "message": "\u3053\u306e\u6642\u9593\u307e\u3067" + "message": "この時間まで" }, "todayAt": { - "message": "\u6e2c\u5b9a\u6642\u523b" + "message": "測定時刻" }, "toggleCards": { "message": "Toggle cards" }, "topChat": { - "message": "\u4e0a\u4f4d\u30c1\u30e3\u30c3\u30c8" + "message": "上位チャット" }, "trailerAutoplay": { - "message": "\u30c8\u30ec\u30fc\u30e9\u30fc\u3092\u81ea\u52d5\u518d\u751f\u3059\u308b" + "message": "トレーラーを自動再生する" }, "translations": { - "message": "\u7ffb\u8a33" + "message": "翻訳" }, "transparentBackground": { - "message": "\u900f\u660e\u306a\u80cc\u666f" + "message": "透明な背景" }, "trending": { - "message": "\u6025\u4e0a\u6607" + "message": "急上昇" }, "tryToReloadThePage": { - "message": "\u30da\u30fc\u30b8\u3092\u30ea\u30ed\u30fc\u30c9\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044" + "message": "ページをリロードしてみてください" }, "type": { - "message": "\u7a2e\u985e" + "message": "種類" }, "upNextAutoplay": { - "message": "\u6b21\u306e\u52d5\u753b\u3092\u81ea\u52d5\u518d\u751f\u3059\u308b" + "message": "次の動画を自動再生する" }, "use24HourFormat": { - "message": "24\u6642\u9593\u8868\u793a\u306b\u3059\u308b" + "message": "24時間表示にする" }, "version": { - "message": "\u30d0\u30fc\u30b8\u30e7\u30f3" + "message": "バージョン" }, "video": { - "message": "\u52d5\u753b" + "message": "動画" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "\u52d5\u753b\u306e\u8aac\u660e\u306f\u30ab\u30c6\u30b4\u30ea\u540d\u3092\u53d6\u5f97\u3059\u308b\u305f\u3081\u306b\u5e83\u3052\u3089\u308c\u307e\u3059" + "message": "動画の説明はカテゴリ名を取得するために広げられます" }, "videoFormats": { - "message": "\u52d5\u753b\u5f62\u5f0f" + "message": "動画形式" }, "videos": { - "message": "\u52d5\u753b" + "message": "動画" }, "volume": { - "message": "\u97f3\u91cf" + "message": "音量" }, "watchLater": { - "message": "\u5f8c\u3067\u898b\u308b" + "message": "後で見る" }, "watchTime": { - "message": "\u8996\u8074\u6642\u9593" + "message": "視聴時間" }, "whenTabIsChanged": { - "message": "\u30bf\u30d6\u3092\u5909\u66f4\u3057\u305f\u3068\u304d" + "message": "タブを変更したとき" }, "white": { - "message": "\u767d" + "message": "白" }, "yellow": { - "message": "\u9ec4" + "message": "黄" }, "youtubeHeaderLeft": { - "message": "YouTube \u306e\u30d8\u30c3\u30c0\u30fc\u5de6" + "message": "YouTube のヘッダー左" }, "youtubeHeaderRight": { - "message": "YouTube \u306e\u30d8\u30c3\u30c0\u30fc\u53f3" + "message": "YouTube のヘッダー右" }, "youtubeHomePage": { - "message": "YouTube \u306e\u30db\u30fc\u30e0\u30da\u30fc\u30b8" + "message": "YouTube のホームページ" }, "youtubeLanguage": { - "message": "YouTube \u306e\u8a00\u8a9e" + "message": "YouTube の言語" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube \u306fH.264\u30b3\u30fc\u30c7\u30c3\u30af\u306e\u753b\u8cea\u30921080p\u306b\u5236\u9650\u3057\u3066\u3044\u307e\u3059" + "message": "YouTube はH.264コーデックの画質を1080pに制限しています" } } \ No newline at end of file diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 66597d344..fa9c0e85e 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -1,812 +1,812 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { - "message": "\uc815\ubcf4" + "message": "정보" }, "accept": { - "message": "\ub3d9\uc758" + "message": "동의" }, "activate": { - "message": "\ud65c\uc131\ud654" + "message": "활성화" }, "activateCaptions": { - "message": "\uc790\ub9c9 \ud65c\uc131\ud654" + "message": "자막 활성화" }, "activateFullscreen": { - "message": "\uc804\uccb4\ud654\uba74 \ud65c\uc131\ud654" + "message": "전체화면 활성화" }, "activated": { - "message": "\ud65c\uc131\ud654\ub428" + "message": "활성화됨" }, "activatedFeatures": { - "message": "\ud65c\uc131\ud654\ub41c \uae30\ub2a5" + "message": "활성화된 기능" }, "activeFeatures": { - "message": "\ud65c\uc131 \uae30\ub2a5" + "message": "활성 기능" }, "addScrollToTop": { - "message": "<<\ub9e8\uc704\ub85c>> \ucd94\uac00" + "message": "<<맨위로>> 추가" }, "ads": { - "message": "\uad11\uace0" + "message": "광고" }, "all": { - "message": "\ubaa8\ub450" + "message": "모두" }, "allow": { - "message": "\ud5c8\uc6a9" + "message": "허용" }, "allow60fps": { - "message": "60\uc5d0\ud504\ud53c\uc5d0\uc2a4(fps) \ud5c8\uc6a9" + "message": "60에프피에스(fps) 허용" }, "alwaysActive": { - "message": "\ud56d\uc0c1 \ud65c\uc131\ud654" + "message": "항상 활성화" }, "alwaysShowProgressBar": { - "message": "\uc7ac\uc0dd \uc9c4\ud589 \uc0c1\ud0dc \ud56d\uc0c1 \ud45c\uc2dc" + "message": "재생 진행 상태 항상 표시" }, "amber": { - "message": "\ud638\ubc15\uc0c9" + "message": "호박색" }, "analyzer": { - "message": "\ubd84\uc11d" + "message": "분석" }, "appearance": { - "message": "\uc678\uad00" + "message": "외관" }, "audio": { - "message": "\uc624\ub514\uc624" + "message": "오디오" }, "audioFormats": { - "message": "\uc624\ub514\uc624 \ud615\uc2dd" + "message": "오디오 형식" }, "auto": { - "message": "\uc790\ub3d9" + "message": "자동" }, "autoFullscreen": { - "message": "\uc790\ub3d9 \uc804\uccb4\ud654\uba74" + "message": "자동 전체화면" }, "autopauseWhenSwitchingTabs": { - "message": "\ud0ed\uc804\ud658\uc2dc \uc790\ub3d9 \uc77c\uc2dc\uc815\uc9c0" + "message": "탭전환시 자동 일시정지" }, "autoplay": { - "message": "\uc790\ub3d9\uc7ac\uc0dd" + "message": "자동재생" }, "backupAndReset": { - "message": "\ubc31\uc5c5 & \ub9ac\uc14b" + "message": "백업 & 리셋" }, "baseOnSystemColorScheme": { - "message": "\uc2dc\uc2a4\ud15c \uc0c9 \uad6c\uc131\ud45c \uae30\ubc18" + "message": "시스템 색 구성표 기반" }, "belowPlayer": { - "message": "\ud50c\ub808\uc774\uc5b4 \uc544\ub798" + "message": "플레이어 아래" }, "black": { - "message": "\uac80\uc815" + "message": "검정" }, "blacklist": { - "message": "\ube14\ub799\ub9ac\uc2a4\ud2b8" + "message": "블랙리스트" }, "blockAll": { - "message": "\ubaa8\ub450 \ucc28\ub2e8" + "message": "모두 차단" }, "blue": { - "message": "\ud30c\ub791" + "message": "파랑" }, "blueGray": { - "message": "\ube14\ub8e8\uadf8\ub808\uc774" + "message": "블루그레이" }, "bluelight": { - "message": "\ube14\ub8e8\ub77c\uc774\ud2b8" + "message": "블루라이트" }, "brown": { - "message": "\uac08\uc0c9" + "message": "갈색" }, "browser": { - "message": "\ube0c\ub77c\uc6b0\uc800" + "message": "브라우저" }, "browserVersion": { - "message": "\ube0c\ub77c\uc6b0\uc800 \ubc84\uc804" + "message": "브라우저 버전" }, "bubbles": { - "message": "\ubc84\ube14" + "message": "버블" }, "bug": { - "message": "\ubc84\uadf8" + "message": "버그" }, "buttons": { - "message": "\ubc84\ud2bc" + "message": "버튼" }, "cancel": { - "message": "\ucde8\uc18c" + "message": "취소" }, "categories": { - "message": "\uce74\ud14c\uace0\ub9ac" + "message": "카테고리" }, "channel": { - "message": "\ucc44\ub110" + "message": "채널" }, "channels": { - "message": "\ucc44\ub110" + "message": "채널" }, "clipboard": { - "message": "\ud074\ub9bd\ubcf4\ub4dc" + "message": "클립보드" }, "codecH264": { - "message": "\ucf54\ub371 h.264" + "message": "코덱 h.264" }, "collapseOfSubscriptionSections": { - "message": "\uad6c\ub3c5\uc139\uc158 \ucd95\uc18c" + "message": "구독섹션 축소" }, "collapsed": { - "message": "\ucd95\uc18c\ub428" + "message": "축소됨" }, "comments": { - "message": "\ub313\uae00" + "message": "댓글" }, "confirmationBeforeClosing": { - "message": "\ub2eb\uae30\uc804\uc5d0 \ud655\uc778\ud558\uae30" + "message": "닫기전에 확인하기" }, "cookies": { - "message": "\ucfe0\ud0a4" + "message": "쿠키" }, "cores": { - "message": "\ucf54\uc5b4" + "message": "코어" }, "cropChapterTitles": { - "message": "\uc81c\ubaa9 \uc790\ub974\uae30" + "message": "제목 자르기" }, "customCss": { - "message": "\uc0ac\uc6a9\uc790 \uc9c0\uc815 \uce90\uc2a4\uce90\uc774\ud305 \uc2a4\ud0c0\uc77c \uc2dc\ud2b8(CSS)" + "message": "사용자 지정 캐스캐이팅 스타일 시트(CSS)" }, "customJs": { - "message": "\uc0ac\uc6a9\uc790 \uc9c0\uc815 \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8(JS)" + "message": "사용자 지정 자바스크립트(JS)" }, "customMiniPlayer": { - "message": "\ucee4\uc2a4\ud140 \ubbf8\ub2c8\ud50c\ub808\uc774\uc5b4" + "message": "커스텀 미니플레이어" }, "cyan": { - "message": "\uc625\uc0c9" + "message": "옥색" }, "dark": { - "message": "\ub2e4\ud06c" + "message": "다크" }, "darkTheme": { - "message": "\ub2e4\ud06c \ud14c\ub9c8" + "message": "다크 테마" }, "dateAndTime": { - "message": "\ub0a0\uc9dc & \uc2dc\uac04" + "message": "날짜 & 시간" }, "dawn": { - "message": "\uc11d\uc591" + "message": "석양" }, "decreasePlaybackSpeed": { - "message": "\ub418\uac10\uae30 \uc18d\ub3c4 \uac10\uc18c" + "message": "되감기 속도 감소" }, "decreaseVolume": { - "message": "\ubcfc\ub968 \uac10\uc18c" + "message": "볼륨 감소" }, "deepOrange": { - "message": "\uc9c4\ud55c \uc8fc\ud669" + "message": "진한 주황" }, "deepPurple": { - "message": "\uc9c4\ud55c \ubcf4\ub77c" + "message": "진한 보라" }, "defaultChannelTab": { - "message": "\uae30\ubcf8 \ucc44\ub110 \ud0ed" + "message": "기본 채널 탭" }, "deleteYoutubeCookies": { - "message": "\uc720\ud29c\ube0c \ucfe0\ud0a4 \uc0ad\uc81c" + "message": "유튜브 쿠키 삭제" }, "description": { - "message": "\uc124\uba85" + "message": "설명" }, "desert": { - "message": "\uc0ac\ub9c9" + "message": "사막" }, "details": { - "message": "\uc790\uc138\ud788" + "message": "자세히" }, "developerOptions": { - "message": "\uac1c\ubc1c\uc790 \uc635\uc158" + "message": "개발자 옵션" }, "device": { - "message": "\uae30\uae30" + "message": "기기" }, "dim": { - "message": "\uc5b4\ub461\uac8c" + "message": "어둡게" }, "disabled": { - "message": "\ube44\ud65c\uc131\ud654" + "message": "비활성화" }, "dislike": { - "message": "\uc2eb\uc5b4\uc694" + "message": "싫어요" }, "doNotChange": { - "message": "\ubc14\uafb8\uc9c0 \uc54a\uc74c" + "message": "바꾸지 않음" }, "donate": { - "message": "\ud6c4\uc6d0\ud558\uae30" + "message": "후원하기" }, "draggable": { - "message": "\ub4dc\ub798\uadf8 \uac00\ub2a5" + "message": "드래그 가능" }, "email": { - "message": "\uc774\uba54\uc77c" + "message": "이메일" }, "empty": { - "message": "\ube44\uc5b4\uc788\uc74c" + "message": "비어있음" }, "enabled": { - "message": "\ud65c\uc131\ud654" + "message": "활성화" }, "enabledForced": { - "message": "\ud65c\uc131\ud654 (\uac15\uc81c)" + "message": "활성화 (강제)" }, "expanded": { - "message": "\ud655\uc7a5" + "message": "확장" }, "exportSettings": { - "message": "\uc124\uc815 \ub0b4\ubcf4\ub0b4\uae30" + "message": "설정 내보내기" }, "extension": { - "message": "\ud655\ub300" + "message": "확대" }, "file": { - "message": "\ud30c\uc77c" + "message": "파일" }, "filters": { - "message": "\ud544\ud130" + "message": "필터" }, "fitToWindow": { - "message": "\ucc3d\ud06c\uae30\uc5d0 \ub9de\ucd94\uae30" + "message": "창크기에 맞추기" }, "flash": { - "message": "\ud50c\ub798\uc2dc" + "message": "플래시" }, "font": { - "message": "\uae00\uaf34" + "message": "글꼴" }, "footer": { - "message": "\ud558\ub2e8" + "message": "하단" }, "forceSDR": { "message": "Force SDR" }, "forcedPlaybackSpeed": { - "message": "\ub418\uac10\uae30 \uc18d\ub3c4 \uac15\uc81c\uc124\uc815" + "message": "되감기 속도 강제설정" }, "forcedTheaterMode": { - "message": "\uac15\uc81c \uc601\ud654\uad00 \ubaa8\ub4dc" + "message": "강제 영화관 모드" }, "forcedVolume": { - "message": "\ubcfc\ub968 \uac15\uc81c\uc124\uc815" + "message": "볼륨 강제설정" }, "foundABug": { - "message": "\ubc84\uadf8\uc2e0\uace0" + "message": "버그신고" }, "fullWindow": { - "message": "\uc804\uccb4 \ud654\uba74" + "message": "전체 화면" }, "general": { - "message": "\uc77c\ubc18" + "message": "일반" }, "github": { - "message": "\uae43\ud5c8\ube0c(GitHub)" + "message": "깃허브(GitHub)" }, "goToSearchBox": { - "message": "\uac80\uc0c9\ucc3d\uc73c\ub85c \uc774\ub3d9" + "message": "검색창으로 이동" }, "gpu": { - "message": "\uadf8\ub798\ud53d \ucc98\ub9ac \uc7a5\uce58" + "message": "그래픽 처리 장치" }, "green": { - "message": "\ucd08\ub85d" + "message": "초록" }, "hdThumbnail": { - "message": "HD \uc378\ub124\uc77c" + "message": "HD 썸네일" }, "hdThumbnails": { - "message": "HD \uc378\ub124\uc77c" + "message": "HD 썸네일" }, "header": { - "message": "\ud5e4\ub354" + "message": "헤더" }, "hidden": { - "message": "\uc228\uae40" + "message": "숨김" }, "hiddenOnVideoPage": { - "message": "\ube44\ub514\uc624 \ud398\uc774\uc9c0 \uc228\uae30\uae30" + "message": "비디오 페이지 숨기기" }, "hideAnimatedThumbnails": { - "message": "\uc378\ub124\uc77c \uc560\ub2c8\uba54\uc774\uc158 \uc228\uae30\uae30" + "message": "썸네일 애니메이션 숨기기" }, "hideAnnotations": { - "message": "\uc124\uba85 \uc228\uae30\uae30" + "message": "설명 숨기기" }, "hideCards": { - "message": "\uce74\ub4dc \uc228\uae30\uae30" + "message": "카드 숨기기" }, "hideDetails": { - "message": "\uc0c1\uc138\uc124\uba85 \uc228\uae30\uae30" + "message": "상세설명 숨기기" }, "hideEndscreen": { - "message": "\uc885\ub8cc\ud6c4 \ud654\uba74 \uc228\uae30\uae30" + "message": "종료후 화면 숨기기" }, "hideFeaturedContent": { - "message": "\ucd94\ucc9c \uc601\uc0c1 \uc228\uae30\uae30" + "message": "추천 영상 숨기기" }, "hideFooter": { - "message": "\ud558\ub2e8 \uc228\uae30\uae30" + "message": "하단 숨기기" }, "hideGradientBottom": { - "message": "\uadf8\ub77c\ub370\uc774\uc158 \ub9e8 \uc544\ub798\ub85c \uc228\uae30\uae30" + "message": "그라데이션 맨 아래로 숨기기" }, "hidePlaylist": { - "message": "\uc7ac\uc0dd \ubaa9\ub85d \uc228\uae30\uae30" + "message": "재생 목록 숨기기" }, "hideRightButtons": { - "message": "\uc624\ub978\ucabd \ubc84\ud2bc \uc228\uae30\uae30" + "message": "오른쪽 버튼 숨기기" }, "hideScrollForDetails": { - "message": "\u00ab\uc2a4\ud06c\ub864 \ud558\uc5ec \uc790\uc138\ud55c \uc124\uba85\u00bb \uc228\uae30\uae30" + "message": "«스크롤 하여 자세한 설명» 숨기기" }, "hideViewsCount": { - "message": "\uc870\ud68c\uc218 \uc228\uae30\uae30" + "message": "조회수 숨기기" }, "history": { - "message": "\ud788\uc2a4\ud1a0\ub9ac" + "message": "히스토리" }, "home": { - "message": "\ud648" + "message": "홈" }, "hover": { - "message": "\ub744\uc6b0\uae30" + "message": "띄우기" }, "hoverOnVideoPage": { - "message": "\ube44\ub514\uc624 \ud398\uc774\uc9c0 \ub744\uc6b0\uae30" + "message": "비디오 페이지 띄우기" }, "howLongAgoTheVideoWasUploaded": { - "message": "\uc5c5\ub85c\ub4dc \uc2dc\uae30" + "message": "업로드 시기" }, "icons": { - "message": "\uc544\uc774\ucf58" + "message": "아이콘" }, "iconsOnly": { - "message": "\uc544\uc774\ucf58\ub9cc" + "message": "아이콘만" }, "importSettings": { - "message": "\uc124\uc815 \ubd88\ub7ec\uc624\uae30" + "message": "설정 불러오기" }, "improveLogo": { - "message": "\ud5a5\uc0c1\ub41c \ub85c\uace0" + "message": "향상된 로고" }, "improvedtubeIconInBrowser": { - "message": "\ud5a5\uc0c1\ub41c \ube0c\ub77c\uc6b0\uc800 \uc544\uc774\ucf58" + "message": "향상된 브라우저 아이콘" }, "improvedtubeIconOnYoutube": { - "message": "\ud5a5\uc0c1\ub41c \uc720\ud29c\ube0c \uc544\uc774\ucf58" + "message": "향상된 유튜브 아이콘" }, "improvedtubeLanguage": { - "message": "\ud5a5\uc0c1\ub41c \uc720\ud29c\ube0c \uc5b8\uc5b4" + "message": "향상된 유튜브 언어" }, "improvedtubeVersion": { - "message": "\ud5a5\uc0c1\ub41c \uc720\ud29c\ube0c \ubc84\uc804" + "message": "향상된 유튜브 버전" }, "increasePlaybackSpeed": { - "message": "\ub418\uac10\uae30 \uc18d\ub3c4 \uc99d\uac00" + "message": "되감기 속도 증가" }, "increaseVolume": { - "message": "\ubcfc\ub968 \uc99d\uac00" + "message": "볼륨 증가" }, "indigo": { - "message": "\ub0a8\uc0c9" + "message": "남색" }, "items": { - "message": "\uc694\uc18c" + "message": "요소" }, "languages": { - "message": "\uc5b8\uc5b4" + "message": "언어" }, "legacyYoutube": { - "message": "\ub808\uac70\uc2dc \uc720\ud29c\ube0c" + "message": "레거시 유튜브" }, "light": { - "message": "\ubc1d\uac8c" + "message": "밝게" }, "lightBlue": { - "message": "\uc5f0\ud30c\ub791" + "message": "연파랑" }, "lightGreen": { - "message": "\uc5f0\ucd08\ub85d" + "message": "연초록" }, "like": { - "message": "\uc88b\uc544\uc694" + "message": "좋아요" }, "likes": { - "message": "\uc88b\uc544\uc694" + "message": "좋아요" }, "lime": { - "message": "\ub77c\uc784" + "message": "라임" }, "list": { - "message": "\ub9ac\uc2a4\ud2b8" + "message": "리스트" }, "liveChat": { - "message": "\uc2e4\uc2dc\uac04 \ucc44\ud305" + "message": "실시간 채팅" }, "liveChatType": { - "message": "\uc2e4\uc2dc\uac04 \ucc44\ud305 \uc720\ud615" + "message": "실시간 채팅 유형" }, "loudnessNormalization": { - "message": "\ubcfc\ub968 \uc790\ub3d9\uc870\uc815" + "message": "볼륨 자동조정" }, "markWatchedVideos": { - "message": "\uc2dc\uccad\ud55c \uc601\uc0c1 \ud45c\uc2dc" + "message": "시청한 영상 표시" }, "mixer": { - "message": "\ubbf9\uc11c" + "message": "믹서" }, "myColors": { - "message": "\ub0b4 \uceec\ub7ec" + "message": "내 컬러" }, "name": { - "message": "\uc774\ub984" + "message": "이름" }, "nativeMiniPlayer": { - "message": "\ub124\uc774\ud2f0\ube0c \ubbf8\ub2c8\ud50c\ub808\uc774\uc5b4" + "message": "네이티브 미니플레이어" }, "new": { - "message": "\uc0c8\ub85c\uc6b4 \uc18c\uc2dd" + "message": "새로운 소식" }, "nextVideo": { - "message": "\ub2e4\uc74c \uc601\uc0c1" + "message": "다음 영상" }, "night": { - "message": "\uc800\ub158" + "message": "저녘" }, "noActiveFeatures": { - "message": "\ud65c\uc131 \uae30\ub2a5 \uc5c6\uc74c" + "message": "활성 기능 없음" }, "noOpenVideoTabs": { - "message": "\uc5f4\ub9b0 \ube44\ub514\uc624 \ud0ed \uc5c6\uc74c" + "message": "열린 비디오 탭 없음" }, "none": { - "message": "\uc5c6\uc74c" + "message": "없음" }, "normal": { - "message": "\uae30\ubcf8" + "message": "기본" }, "old": { - "message": "\uc624\ub798\ub428" + "message": "오래됨" }, "onAllVideos": { - "message": "\ubaa8\ub4e0 \ube44\ub514\uc624" + "message": "모든 비디오" }, "onSubscribedChannels": { - "message": "\uad6c\ub3c5\ud55c \ucc44\ub110" + "message": "구독한 채널" }, "onlyActiveOnYoutube": { - "message": "\uc720\ud29c\ube0c\ub9cc \ud65c\uc131\ud654" + "message": "유튜브만 활성화" }, "onlyOnePlayerInstancePlaying": { - "message": "\ud558\ub098\uc758 \ud50c\ub808\uc774\uc5b4\ub9cc \uc7ac\uc0dd" + "message": "하나의 플레이어만 재생" }, "orange": { - "message": "\uc8fc\ud669" + "message": "주황" }, "os": { - "message": "\uc6b4\uc601\uccb4\uc81c" + "message": "운영체제" }, "other": { - "message": "\uae30\ud0c0" + "message": "기타" }, "permissions": { - "message": "\uad8c\ud55c" + "message": "권한" }, "pictureInPicture": { - "message": "\ud53d\ucc98 \uc778 \ud53d\ucc98(PIP) \uc7ac\uc0dd" + "message": "픽처 인 픽처(PIP) 재생" }, "pink": { - "message": "\ubd84\ud64d" + "message": "분홍" }, "plain": { - "message": "\ubb34\uc0c9" + "message": "무색" }, "platform": { - "message": "\ud50c\ub7ab\ud3fc" + "message": "플랫폼" }, "playPause": { - "message": "\uc7ac\uc0dd / \uc77c\uc2dc\uc815\uc9c0" + "message": "재생 / 일시정지" }, "playbackSpeed": { - "message": "\ub418\uac10\uae30 \uc18d\ub3c4" + "message": "되감기 속도" }, "player": { - "message": "\ud50c\ub808\uc774\uc5b4" + "message": "플레이어" }, "playerColor": { - "message": "\ud50c\ub808\uc774\uc5b4 \uceec\ub7ec" + "message": "플레이어 컬러" }, "playerSize": { - "message": "\ud50c\ub808\uc774\uc5b4 \ud06c\uae30" + "message": "플레이어 크기" }, "playlist": { - "message": "\ud50c\ub808\uc774\ub9ac\uc2a4\ud2b8" + "message": "플레이리스트" }, "playlists": { - "message": "\ud50c\ub808\uc774\ub9ac\uc2a4\ud2b8" + "message": "플레이리스트" }, "popupPlayer": { - "message": "\ud31d\uc5c5 \ud50c\ub808\uc774\uc5b4" + "message": "팝업 플레이어" }, "position": { - "message": "\uc704\uce58" + "message": "위치" }, "pressAnyKeyOrScroll": { - "message": "\uc0ac\uc6a9\ud560 \ub2e8\ucd95\ud0a4 \ub610\ub294 \ub9c8\uc6b0\uc2a4 \ud720\uc744 \ub204\ub974\uc138\uc694." + "message": "사용할 단축키 또는 마우스 휠을 누르세요." }, "pressAnyKeyOrUseMouseWheel": { - "message": "\uc0ac\uc6a9\ud560 \ub2e8\ucd95\ud0a4 \ub610\ub294 \ub9c8\uc6b0\uc2a4 \ud720\uc744 \ub204\ub974\uc138\uc694." + "message": "사용할 단축키 또는 마우스 휠을 누르세요." }, "previousVideo": { - "message": "\uc774\uc804 \uc601\uc0c1" + "message": "이전 영상" }, "primaryColor": { - "message": "\uc8fc \uc0c9\uc0c1" + "message": "주 색상" }, "purple": { - "message": "\ubcf4\ub77c" + "message": "보라" }, "quality": { - "message": "\ud004\ub9ac\ud2f0" + "message": "퀄리티" }, "ram": { - "message": "\ub7a8" + "message": "램" }, "rateUs": { - "message": "\ud3c9\uac00\ud558\uae30" + "message": "평가하기" }, "red": { - "message": "\ube68\uac15" + "message": "빨강" }, "relatedVideos": { - "message": "\uad00\ub828 \uc601\uc0c1" + "message": "관련 영상" }, "removeRelatedSearchResults": { - "message": "\uad00\ub828 \uac80\uc0c9\uacb0\uacfc \uc81c\uac70" + "message": "관련 검색결과 제거" }, "repeat": { - "message": "\ubc18\ubcf5" + "message": "반복" }, "reset": { - "message": "\ub9ac\uc14b" + "message": "리셋" }, "resetAllSettings": { - "message": "\ubaa8\ub4e0 \uc124\uc815 \ub9ac\uc14b" + "message": "모든 설정 리셋" }, "resetAllShortcuts": { - "message": "\ubaa8\ub4e0 \ub2e8\ucd95\ud0a4 \ub9ac\uc14b" + "message": "모든 단축키 리셋" }, "reverse": { - "message": "\ubc18\ub300\ub85c" + "message": "반대로" }, "rotate": { - "message": "\ud68c\uc804" + "message": "회전" }, "save": { - "message": "\uc800\uc7a5" + "message": "저장" }, "saveAs": { - "message": "\ub2e4\ub978\uc774\ub984\uc73c\ub85c \uc800\uc7a5" + "message": "다른이름으로 저장" }, "schedule": { - "message": "\uc2a4\ucf00\uc904" + "message": "스케줄" }, "screen": { - "message": "\uc2a4\ud06c\ub9b0" + "message": "스크린" }, "screenshot": { - "message": "\uc2a4\ud06c\ub9b0\uc0f7" + "message": "스크린샷" }, "search": { - "message": "\uac80\uc0c9" + "message": "검색" }, "searchBarOnly": { - "message": "\uac80\uc0c9\ucc3d\ub9cc" + "message": "검색창만" }, "seekBackward10Seconds": { - "message": "\ub4a4\ub85c 10\ucd08" + "message": "뒤로 10초" }, "seekForward10Seconds": { - "message": "\uc55e\uc73c\ub85c 10\ucd08" + "message": "앞으로 10초" }, "settings": { - "message": "\uc124\uc815" + "message": "설정" }, "settingsSuccessfullyImported": { - "message": "\uc124\uc815 \ub0b4\ubcf4\ub0b4\uae30 \uc644\ub8cc" + "message": "설정 내보내기 완료" }, "shortcuts": { - "message": "\ub2e8\ucd95\ud0a4" + "message": "단축키" }, "showCardsOnMouseHover": { - "message": "\ub9c8\uc6b0\uc2a4 \uc62c\ub9b4 \ub54c \uce74\ub4dc\ubcf4\uae30" + "message": "마우스 올릴 때 카드보기" }, "showChannelVideosCount": { - "message": "\ucc44\ub110\uc758 \ube44\ub514\uc624\uc218 \ud45c\uc2dc" + "message": "채널의 비디오수 표시" }, "shuffle": { - "message": "\uc154\ud50c" + "message": "셔플" }, "sidebar": { - "message": "\uc0ac\uc774\ub4dc\ubc14" + "message": "사이드바" }, "spacebar": { - "message": "\uc2a4\ud398\uc774\uc2a4\ubc14" + "message": "스페이스바" }, "squaredUserImages": { - "message": "\uc815\uc0ac\uac01\ud615 \ud504\ub85c\ud544\uc0ac\uc9c4" + "message": "정사각형 프로필사진" }, "static": { - "message": "\uace0\uc815" + "message": "고정" }, "statsForNerds": { - "message": "\ub108\ub4dc \ud1b5\uacc4 \ud45c\uc2dc" + "message": "너드 통계 표시" }, "step": { - "message": "\uc2a4\ud15d" + "message": "스텝" }, "stop": { - "message": "\uc815\uc9c0" + "message": "정지" }, "style": { - "message": "\uc2a4\ud0c0\uc77c" + "message": "스타일" }, "styles": { - "message": "\uc2a4\ud0c0\uc77c" + "message": "스타일" }, "subscriptions": { - "message": "\uad6c\ub3c5" + "message": "구독" }, "subtitles": { - "message": "\uc790\ub9c9" + "message": "자막" }, "sunset": { - "message": "\uc77c\ubab0" + "message": "일몰" }, "sunsetToSunrise": { - "message": "\uc77c\ubab0\ubd80\ud130 \uc77c\ucd9c\uae4c\uc9c0" + "message": "일몰부터 일출까지" }, "systemPeferenceDark": { - "message": "\uac1c\uc778 \uc124\uc815: \ub2e4\ud06c" + "message": "개인 설정: 다크" }, "systemPeferenceLight": { - "message": "\uac1c\uc778 \uc124\uc815: \ub77c\uc774\ud2b8" + "message": "개인 설정: 라이트" }, "teal": { - "message": "\uccad\ub85d" + "message": "청록" }, "textColor": { - "message": "\ud14d\uc2a4\ud2b8 \uc0c9\uc0c1" + "message": "텍스트 색상" }, "themes": { - "message": "\ud14c\ub9c8" + "message": "테마" }, "thisWillRemoveAllCookies": { - "message": "\ubaa8\ub4e0 \ucfe0\ud0a4\ub97c \uc0ad\uc81c\ud569\ub2c8\ub2e4." + "message": "모든 쿠키를 삭제합니다." }, "thisWillRemoveAllYouTubeCookies": { - "message": "\ubaa8\ub4e0 \uc720\ud29c\ube0c \ucfe0\ud0a4\ub97c \uc0ad\uc81c\ud569\ub2c8\ub2e4." + "message": "모든 유튜브 쿠키를 삭제합니다." }, "thisWillResetAllSettings": { - "message": "\ubaa8\ub4e0 \uc124\uc815\uc744 \ucd08\uae30\ud654 \ud569\ub2c8\ub2e4." + "message": "모든 설정을 초기화 합니다." }, "thisWillResetAllShortcuts": { - "message": "\ubaa8\ub4e0 \ub2e8\ucd95\ud0a4\ub97c \ucd08\uae30\ud654 \ud569\ub2c8\ub2e4." + "message": "모든 단축키를 초기화 합니다." }, "thumbnails": { - "message": "\uc378\ub124\uc77c" + "message": "썸네일" }, "timeFrom": { - "message": "\ub2e4\uc74c\uc2dc\uac04 \ubd80\ud130" + "message": "다음시간 부터" }, "timeTo": { - "message": "\ub2e4\uc74c\uc2dc\uac04 \uae4c\uc9c0" + "message": "다음시간 까지" }, "todayAt": { - "message": "\uc624\ub298\uc758" + "message": "오늘의" }, "toggleCards": { - "message": "\ud1a0\uae00 \uce74\ub4dc" + "message": "토글 카드" }, "topChat": { - "message": "\ud0d1 \ucc57" + "message": "탑 챗" }, "trailerAutoplay": { - "message": "\ud2b8\ub808\uc77c\ub7ec \uc790\ub3d9\uc7ac\uc0dd" + "message": "트레일러 자동재생" }, "translations": { - "message": "\ubc88\uc5ed" + "message": "번역" }, "transparentBackground": { - "message": "\ud22c\uba85\ud55c \ubc30\uacbd" + "message": "투명한 배경" }, "trending": { - "message": "\uc778\uae30" + "message": "인기" }, "tryToReloadThePage": { - "message": "\uc0c8\ub85c\uace0\uce68\uc744 \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624" + "message": "새로고침을 시도하십시오" }, "type": { - "message": "\ud0c0\uc785" + "message": "타입" }, "upNextAutoplay": { - "message": "\ub2e4\uc74c\uc601\uc0c1 \uc790\ub3d9\uc7ac\uc0dd" + "message": "다음영상 자동재생" }, "use24HourFormat": { - "message": "24\uc2dc\uac04 \ud615\uc2dd \uc0ac\uc6a9" + "message": "24시간 형식 사용" }, "version": { - "message": "\ubc84\uc83c" + "message": "버젼" }, "video": { - "message": "\uc601\uc0c1" + "message": "영상" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "\uce74\ud14c\uace0\ub9ac\uc758 \uc774\ub984\uc744 \uc5bb\uae30 \uc704\ud574 \ube44\ub514\uc624 \uc124\uba85\uc774 \ud655\uc7a5\ub429\ub2c8\ub2e4" + "message": "카테고리의 이름을 얻기 위해 비디오 설명이 확장됩니다" }, "videoFormats": { - "message": "\ube44\ub514\uc624 \ud615\uc2dd" + "message": "비디오 형식" }, "videos": { - "message": "\ube44\ub514\uc624" + "message": "비디오" }, "volume": { - "message": "\uc74c\ub7c9" + "message": "음량" }, "watchLater": { - "message": "\ub098\uc911\uc5d0 \ubcf4\uae30" + "message": "나중에 보기" }, "watchTime": { - "message": "\uc2dc\uac04 \ubcf4\uae30" + "message": "시간 보기" }, "whenTabIsChanged": { - "message": "\ud0ed\uc774 \ubc14\ub014\ub54c" + "message": "탭이 바뀔때" }, "white": { - "message": "\ud558\uc591" + "message": "하양" }, "yellow": { - "message": "\ub178\ub791" + "message": "노랑" }, "youtubeHeaderLeft": { - "message": "\uc720\ud29c\ube0c \ud5e4\ub354 (\uc67c\ucabd)" + "message": "유튜브 헤더 (왼쪽)" }, "youtubeHeaderRight": { - "message": "\uc720\ud29c\ube0c \ud5e4\ub354 (\uc624\ub978\ucabd)" + "message": "유튜브 헤더 (오른쪽)" }, "youtubeHomePage": { - "message": "\uc720\ud29c\ube0c \ud648\ud398\uc774\uc9c0" + "message": "유튜브 홈페이지" }, "youtubeLanguage": { - "message": "\uc720\ud29c\ube0c \uc5b8\uc5b4" + "message": "유튜브 언어" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "\uc720\ud29c\ube0c\ub294 h.264 \ucf54\ub371\uc5d0\uc11c \ube44\ub514\uc624 \ud488\uc9c8\uc744 1080p\ub85c \uc81c\ud55c\ud569\ub2c8\ub2e4" + "message": "유튜브는 h.264 코덱에서 비디오 품질을 1080p로 제한합니다" } } \ No newline at end of file diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 26bacbd78..aaf25586b 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -1,15 +1,15 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" @@ -39,7 +39,7 @@ "message": "Aktive funksjoner" }, "addScrollToTop": { - "message": "Legg til \u00abRull til toppen\u00bb" + "message": "Legg til «Rull til toppen»" }, "ads": { "message": "Reklamer" @@ -81,7 +81,7 @@ "message": "Auto-fullskjerm" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause n\u00e5r du bytter faner" + "message": "Autopause når du bytter faner" }, "autoplay": { "message": "Autoplay" @@ -90,7 +90,7 @@ "message": "Sikkerhetskopiering og tilbakestilling" }, "baseOnSystemColorScheme": { - "message": "Baser p\u00e5 systemfargevalg" + "message": "Baser på systemfargevalg" }, "belowPlayer": { "message": "Nedenfor avspiller" @@ -105,13 +105,13 @@ "message": "Blokker alle" }, "blue": { - "message": "Bl\u00e5" + "message": "Blå" }, "blueGray": { - "message": "Bl\u00e5gr\u00e5" + "message": "Blågrå" }, "bluelight": { - "message": "Bl\u00e5lys" + "message": "Blålys" }, "brown": { "message": "Brun" @@ -159,7 +159,7 @@ "message": "Kommentarer" }, "confirmationBeforeClosing": { - "message": "Bekreftelse f\u00f8r stenging" + "message": "Bekreftelse før stenging" }, "cookies": { "message": "Informasjonskapslene" @@ -168,7 +168,7 @@ "message": "Kjerner" }, "cropChapterTitles": { - "message": "Beskj\u00e6r kapitteltitler" + "message": "Beskjær kapitteltitler" }, "customCss": { "message": "Tilpasset CSS" @@ -180,13 +180,13 @@ "message": "Egendefinert miniavspiller" }, "cyan": { - "message": "Bl\u00e5lilla" + "message": "Blålilla" }, "dark": { - "message": "M\u00f8rk" + "message": "Mørk" }, "darkTheme": { - "message": "M\u00f8rk drakt" + "message": "Mørk drakt" }, "dateAndTime": { "message": "Dato og klokkeslett" @@ -204,7 +204,7 @@ "message": "Dyporansje" }, "deepPurple": { - "message": "M\u00f8rkelilla" + "message": "Mørkelilla" }, "defaultChannelTab": { "message": "Forvalgt kanalfane" @@ -216,7 +216,7 @@ "message": "Beskrivelse" }, "desert": { - "message": "\u00d8rken" + "message": "Ørken" }, "details": { "message": "Detaljer" @@ -231,7 +231,7 @@ "message": "Dim" }, "disabled": { - "message": "Avsl\u00e5tt" + "message": "Avslått" }, "dislike": { "message": "Mislik" @@ -312,13 +312,13 @@ "message": "GitHub" }, "goToSearchBox": { - "message": "G\u00e5 til s\u00f8kefeltet" + "message": "Gå til søkefeltet" }, "gpu": { "message": "GPU" }, "green": { - "message": "Gr\u00f8nn" + "message": "Grønn" }, "hdThumbnail": { "message": "HD-miniatyrbilde" @@ -333,7 +333,7 @@ "message": "Skjult" }, "hiddenOnVideoPage": { - "message": "Skjult p\u00e5 videosiden" + "message": "Skjult på videosiden" }, "hideAnimatedThumbnails": { "message": "Skjul animerte miniatyrbilder" @@ -363,10 +363,10 @@ "message": "Skjul spilleliste" }, "hideRightButtons": { - "message": "Skjul h\u00f8yre-knapper" + "message": "Skjul høyre-knapper" }, "hideScrollForDetails": { - "message": "Skjul \u00abBla for detaljer\u00bb" + "message": "Skjul «Bla for detaljer»" }, "hideViewsCount": { "message": "Skjul visningsteller" @@ -381,7 +381,7 @@ "message": "Hold" }, "hoverOnVideoPage": { - "message": "Hold musepekeren p\u00e5 videosiden" + "message": "Hold musepekeren på videosiden" }, "howLongAgoTheVideoWasUploaded": { "message": "Hvor lenge siden videoen ble opplastet" @@ -402,19 +402,19 @@ "message": "ImprovedTube-ikonet i nettleseren" }, "improvedtubeIconOnYoutube": { - "message": "ImprovedTube-ikonet p\u00e5 YouTube" + "message": "ImprovedTube-ikonet på YouTube" }, "improvedtubeLanguage": { - "message": "ImprovedTube-spr\u00e5k" + "message": "ImprovedTube-språk" }, "improvedtubeVersion": { "message": "ImprovedTube-versjon" }, "increasePlaybackSpeed": { - "message": "\u00d8k avspillingshastigheten" + "message": "Øk avspillingshastigheten" }, "increaseVolume": { - "message": "\u00d8k lydstyrken" + "message": "Øk lydstyrken" }, "indigo": { "message": "Indigo" @@ -423,7 +423,7 @@ "message": "Elementer" }, "languages": { - "message": "Spr\u00e5k" + "message": "Språk" }, "legacyYoutube": { "message": "Gammeldags YouTube" @@ -432,10 +432,10 @@ "message": "Lys" }, "lightBlue": { - "message": "Lysebl\u00e5" + "message": "Lyseblå" }, "lightGreen": { - "message": "Lysegr\u00f8nn" + "message": "Lysegrønn" }, "like": { "message": "Gunst" @@ -486,7 +486,7 @@ "message": "Ingen aktive funksjoner" }, "noOpenVideoTabs": { - "message": "Ingen \u00e5pne videofaner" + "message": "Ingen åpne videofaner" }, "none": { "message": "Ingen" @@ -498,16 +498,16 @@ "message": "Gammel" }, "onAllVideos": { - "message": "P\u00e5 alle videoer" + "message": "På alle videoer" }, "onSubscribedChannels": { - "message": "P\u00e5 abonnementskanaler" + "message": "På abonnementskanaler" }, "onlyActiveOnYoutube": { - "message": "Kun aktiv p\u00e5 YouTube" + "message": "Kun aktiv på YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Kun \u00e9n avspiller viser noe" + "message": "Kun én avspiller viser noe" }, "orange": { "message": "Oransje" @@ -546,7 +546,7 @@ "message": "Avspiller-farge" }, "playerSize": { - "message": "Avspiller-st\u00f8rrelse" + "message": "Avspiller-størrelse" }, "playlist": { "message": "Spilleliste" @@ -561,10 +561,10 @@ "message": "Posisjon" }, "pressAnyKeyOrScroll": { - "message": "Trykk p\u00e5 hvilken som helst tast, eller bruk musehjulet." + "message": "Trykk på hvilken som helst tast, eller bruk musehjulet." }, "pressAnyKeyOrUseMouseWheel": { - "message": "Trykk p\u00e5 hvilken som helst tast, eller bruk musehjulet" + "message": "Trykk på hvilken som helst tast, eller bruk musehjulet" }, "previousVideo": { "message": "Forrige video" @@ -585,16 +585,16 @@ "message": "Rangere oss" }, "red": { - "message": "R\u00f8d" + "message": "Rød" }, "redDislikeButton": { - "message": "Vis tommel ned i r\u00f8d farge" + "message": "Vis tommel ned i rød farge" }, "relatedVideos": { "message": "Relaterte videoer" }, "removeRelatedSearchResults": { - "message": "Fjern relaterte s\u00f8keresultater" + "message": "Fjern relaterte søkeresultater" }, "repeat": { "message": "Gjenta" @@ -630,10 +630,10 @@ "message": "Skjeravbildning" }, "search": { - "message": "S\u00f8k" + "message": "Søk" }, "searchBarOnly": { - "message": "Bare s\u00f8kefelt" + "message": "Bare søkefelt" }, "seekBackward10Seconds": { "message": "Spol 10 sekunder bakover" @@ -651,13 +651,13 @@ "message": "Snarveier" }, "showCardsOnMouseHover": { - "message": "Vis kort p\u00e5 musepekeren" + "message": "Vis kort på musepekeren" }, "showChannelVideosCount": { "message": "Vis antall kanaler" }, "shuffle": { - "message": "Tilfeldig rekkef\u00f8lge" + "message": "Tilfeldig rekkefølge" }, "sidebar": { "message": "Sidepanel" @@ -699,13 +699,13 @@ "message": "Solnedgang til soloppgang" }, "systemPeferenceDark": { - "message": "Systeminnstillinger: m\u00f8rk" + "message": "Systeminnstillinger: mørk" }, "systemPeferenceLight": { "message": "Systeminnstillinger: lys" }, "teal": { - "message": "Bl\u00e5gr\u00f8nn" + "message": "Blågrønn" }, "textColor": { "message": "Tekstfarge" @@ -756,13 +756,13 @@ "message": "Trender" }, "tryToReloadThePage": { - "message": "Fors\u00f8k \u00e5 laste inn siden p\u00e5 nytt" + "message": "Forsøk å laste inn siden på nytt" }, "type": { "message": "Type" }, "upNextAutoplay": { - "message": "\u00abSpilles senere\u00bb-autospilling" + "message": "«Spilles senere»-autospilling" }, "use24HourFormat": { "message": "Bruk 24-timersformat" @@ -774,7 +774,7 @@ "message": "Video" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Videobeskrivelsen vil bli utvidet for \u00e5 f\u00e5 med navnet p\u00e5 kategorien" + "message": "Videobeskrivelsen vil bli utvidet for å få med navnet på kategorien" }, "videoFormats": { "message": "Video-formater" @@ -792,7 +792,7 @@ "message": "Tid sett" }, "whenTabIsChanged": { - "message": "N\u00e5r fanen endres" + "message": "Når fanen endres" }, "white": { "message": "Hvit" @@ -804,13 +804,13 @@ "message": "YouTube-topptekst (til venstre)" }, "youtubeHeaderRight": { - "message": "YouTube-topptekst (til h\u00f8yre)" + "message": "YouTube-topptekst (til høyre)" }, "youtubeHomePage": { "message": "YouTube-startside" }, "youtubeLanguage": { - "message": "YouTube-spr\u00e5k" + "message": "YouTube-språk" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube begrenser videokvaliteten til 1080p for H.264-kodeket" diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 794556b69..ad9546b4a 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -1,15 +1,15 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" @@ -39,7 +39,7 @@ "message": "Actieve features" }, "addScrollToTop": { - "message": "Voeg \u00abScroll to top\u00bb toe" + "message": "Voeg «Scroll to top» toe" }, "ads": { "message": "Reclames" @@ -135,7 +135,7 @@ "message": "Annuleren" }, "categories": { - "message": "Categori\u00ebn" + "message": "Categoriën" }, "channel": { "message": "Kanaal" @@ -363,7 +363,7 @@ "message": "Verberg rechter knoppen" }, "hideScrollForDetails": { - "message": "Verberg \u00abScroll for details\u00bb" + "message": "Verberg «Scroll for details»" }, "hideViewsCount": { "message": "Verberg views teller" @@ -504,7 +504,7 @@ "message": "Alleen actief op YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Slechts \u00e9\u00e9n actieve speler toestaan" + "message": "Slechts één actieve speler toestaan" }, "orange": { "message": "Oranje" @@ -642,7 +642,7 @@ "message": "Instellingen" }, "settingsSuccessfullyImported": { - "message": "Instellingen succesvol ge\u00efmporteerd" + "message": "Instellingen succesvol geïmporteerd" }, "shortcuts": { "message": "Sneltoetsen" diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 08f7c6cc4..a5d2f31e0 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -1,15 +1,15 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" @@ -39,7 +39,7 @@ "message": "Aktive funksjoner" }, "addScrollToTop": { - "message": "Legg til \u00abRull til toppen\u00bb" + "message": "Legg til «Rull til toppen»" }, "ads": { "message": "Reklamer" @@ -81,7 +81,7 @@ "message": "Auto-fullskjerm" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause n\u00e5r du bytter faner" + "message": "Autopause når du bytter faner" }, "autoplay": { "message": "Autoplay" @@ -90,7 +90,7 @@ "message": "Sikkerhetskopiering og tilbakestilling" }, "baseOnSystemColorScheme": { - "message": "Baser p\u00e5 systemfargevalg" + "message": "Baser på systemfargevalg" }, "belowPlayer": { "message": "Nedenfor spiller" @@ -105,13 +105,13 @@ "message": "Blokker alle" }, "blue": { - "message": "Bl\u00e5" + "message": "Blå" }, "blueGray": { - "message": "Bl\u00e5 gr\u00e5" + "message": "Blå grå" }, "bluelight": { - "message": "Bl\u00e5lys" + "message": "Blålys" }, "brown": { "message": "Brun" @@ -159,7 +159,7 @@ "message": "Kommentarer" }, "confirmationBeforeClosing": { - "message": "Bekreftelse f\u00f8r stenging" + "message": "Bekreftelse før stenging" }, "cookies": { "message": "Informasjonskapslene" @@ -183,10 +183,10 @@ "message": "Cyan" }, "dark": { - "message": "M\u00f8rk" + "message": "Mørk" }, "darkTheme": { - "message": "M\u00f8rkt tema" + "message": "Mørkt tema" }, "dateAndTime": { "message": "Dato og klokkeslett" @@ -204,7 +204,7 @@ "message": "Dyporansje" }, "deepPurple": { - "message": "M\u00f8rkelilla" + "message": "Mørkelilla" }, "defaultChannelTab": { "message": "Standard kanalfane" @@ -216,7 +216,7 @@ "message": "Beskrivelse" }, "desert": { - "message": "\u00d8rken" + "message": "Ørken" }, "details": { "message": "Detaljer" @@ -231,7 +231,7 @@ "message": "Dim" }, "disabled": { - "message": "Avsl\u00e5tt" + "message": "Avslått" }, "dislike": { "message": "Mislik" @@ -309,13 +309,13 @@ "message": "GitHub" }, "goToSearchBox": { - "message": "G\u00e5 til s\u00f8kefeltet" + "message": "Gå til søkefeltet" }, "gpu": { "message": "GPU" }, "green": { - "message": "Gr\u00f8nn" + "message": "Grønn" }, "hdThumbnail": { "message": "HD-miniatyrbilde" @@ -330,7 +330,7 @@ "message": "Skjult" }, "hiddenOnVideoPage": { - "message": "Skjult p\u00e5 video siden" + "message": "Skjult på video siden" }, "hideAnimatedThumbnails": { "message": "Skjul animerte miniatyrbilder" @@ -357,10 +357,10 @@ "message": "Skjul spilleliste" }, "hideRightButtons": { - "message": "Skjul h\u00f8yre knapper" + "message": "Skjul høyre knapper" }, "hideScrollForDetails": { - "message": "Skjul \u00abBla for detaljer\u00bb" + "message": "Skjul «Bla for detaljer»" }, "hideViewsCount": { "message": "Skjul visninger teller" @@ -375,7 +375,7 @@ "message": "Hold" }, "hoverOnVideoPage": { - "message": "Hold musepekeren p\u00e5 videosiden" + "message": "Hold musepekeren på videosiden" }, "howLongAgoTheVideoWasUploaded": { "message": "Hvor lenge siden videoen ble lastet opp" @@ -396,19 +396,19 @@ "message": "ImprovedTube-ikonet i nettleseren" }, "improvedtubeIconOnYoutube": { - "message": "ImprovedTube-ikonet p\u00e5 YouTube" + "message": "ImprovedTube-ikonet på YouTube" }, "improvedtubeLanguage": { - "message": "ImprovedTube spr\u00e5k" + "message": "ImprovedTube språk" }, "improvedtubeVersion": { "message": "ImprovedTube versjon" }, "increasePlaybackSpeed": { - "message": "\u00d8k avspillingshastigheten" + "message": "Øk avspillingshastigheten" }, "increaseVolume": { - "message": "\u00d8k volumet" + "message": "Øk volumet" }, "indigo": { "message": "Indigo" @@ -417,7 +417,7 @@ "message": "Elementer" }, "languages": { - "message": "Spr\u00e5k" + "message": "Språk" }, "legacyYoutube": { "message": "Legacy YouTube" @@ -426,10 +426,10 @@ "message": "Lys" }, "lightBlue": { - "message": "Lyse bl\u00e5" + "message": "Lyse blå" }, "lightGreen": { - "message": "Lyse gr\u00f8nn" + "message": "Lyse grønn" }, "like": { "message": "Like" @@ -450,7 +450,7 @@ "message": "Live chat type" }, "loudnessNormalization": { - "message": "H\u00f8ytthetsnormalisering" + "message": "Høytthetsnormalisering" }, "markWatchedVideos": { "message": "Marker sette videoer" @@ -465,7 +465,7 @@ "message": "Navn" }, "nativeMiniPlayer": { - "message": "Innf\u00f8dt minispiller" + "message": "Innfødt minispiller" }, "new": { "message": "Ny" @@ -480,7 +480,7 @@ "message": "Ingen aktive funksjoner" }, "noOpenVideoTabs": { - "message": "Ingen \u00e5pne videofaner" + "message": "Ingen åpne videofaner" }, "none": { "message": "Ingen" @@ -492,13 +492,13 @@ "message": "Gammel" }, "onAllVideos": { - "message": "P\u00e5 alle videoer" + "message": "På alle videoer" }, "onSubscribedChannels": { - "message": "P\u00e5 abonnementskanaler" + "message": "På abonnementskanaler" }, "onlyActiveOnYoutube": { - "message": "Bare aktiv p\u00e5 YouTube" + "message": "Bare aktiv på YouTube" }, "onlyOnePlayerInstancePlaying": { "message": "Bare en spillerforekomst som spiller" @@ -540,7 +540,7 @@ "message": "Spiller farge" }, "playerSize": { - "message": "Spiller st\u00f8rrelse" + "message": "Spiller størrelse" }, "playlist": { "message": "Spilleliste" @@ -555,10 +555,10 @@ "message": "Posisjon" }, "pressAnyKeyOrScroll": { - "message": "Trykk p\u00e5 hvilken som helst tast eller bruk musehjulet." + "message": "Trykk på hvilken som helst tast eller bruk musehjulet." }, "pressAnyKeyOrUseMouseWheel": { - "message": "Trykk p\u00e5 hvilken som helst tast eller bruk musehjulet" + "message": "Trykk på hvilken som helst tast eller bruk musehjulet" }, "previousVideo": { "message": "Forrige video" @@ -579,7 +579,7 @@ "message": "Rangere oss" }, "red": { - "message": "R\u00f8d" + "message": "Rød" }, "redDislikeButton": { "message": "Show dislike button red colour" @@ -588,7 +588,7 @@ "message": "Relaterte videoer" }, "removeRelatedSearchResults": { - "message": "Fjern relaterte s\u00f8keresultater" + "message": "Fjern relaterte søkeresultater" }, "repeat": { "message": "Gjenta" @@ -624,10 +624,10 @@ "message": "Skjermbilde" }, "search": { - "message": "S\u00f8k" + "message": "Søk" }, "searchBarOnly": { - "message": "Bare s\u00f8kefelt" + "message": "Bare søkefelt" }, "seekBackward10Seconds": { "message": "Spol 10 sekunder bakover" @@ -645,13 +645,13 @@ "message": "Snarveier" }, "showCardsOnMouseHover": { - "message": "Vis kort p\u00e5 musepekeren" + "message": "Vis kort på musepekeren" }, "showChannelVideosCount": { "message": "Vis antall kanaler" }, "shuffle": { - "message": "Tilfeldig rekkef\u00f8lge" + "message": "Tilfeldig rekkefølge" }, "sidebar": { "message": "Sidepanel" @@ -690,13 +690,13 @@ "message": "Solnedgang til soloppgang" }, "systemPeferenceDark": { - "message": "Systeminnstillinger: m\u00f8rk" + "message": "Systeminnstillinger: mørk" }, "systemPeferenceLight": { "message": "Systeminnstillinger: lys" }, "teal": { - "message": "Bl\u00e5gr\u00f8nn" + "message": "Blågrønn" }, "textColor": { "message": "Tekstfarge" @@ -744,7 +744,7 @@ "message": "Trender" }, "tryToReloadThePage": { - "message": "Fors\u00f8k \u00e5 laste inn siden p\u00e5 nytt" + "message": "Forsøk å laste inn siden på nytt" }, "type": { "message": "Type" @@ -762,7 +762,7 @@ "message": "Video" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Videobeskrivelsen vil bli utvidet for \u00e5 f\u00e5 navnet p\u00e5 kategorien" + "message": "Videobeskrivelsen vil bli utvidet for å få navnet på kategorien" }, "videoFormats": { "message": "Video formater" @@ -780,7 +780,7 @@ "message": "Tid sett" }, "whenTabIsChanged": { - "message": "N\u00e5r fanen endres" + "message": "Når fanen endres" }, "white": { "message": "Hvit" @@ -792,13 +792,13 @@ "message": "YouTube Header (til venstre)" }, "youtubeHeaderRight": { - "message": "YouTube Header (til h\u00f8yre)" + "message": "YouTube Header (til høyre)" }, "youtubeHomePage": { "message": "YouTube startside" }, "youtubeLanguage": { - "message": "YouTube spr\u00e5k" + "message": "YouTube språk" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube begrenser videokvaliteten til 1080p for h.264-kodeken" diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index bc1d14ff4..95d395a75 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -1,15 +1,15 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" @@ -27,7 +27,7 @@ "message": "Aktywuj napisy" }, "activateFullscreen": { - "message": "Aktywuj tryb pe\u0142noekranowy" + "message": "Aktywuj tryb pełnoekranowy" }, "activated": { "message": "Aktywowane" @@ -39,7 +39,7 @@ "message": "Aktywne funkcje" }, "addScrollToTop": { - "message": "Dodaj \u00abPrzewi\u0144 do g\u00f3ry\u00bb" + "message": "Dodaj «Przewiń do góry»" }, "ads": { "message": "Reklamy" @@ -48,16 +48,16 @@ "message": "Wszystkie" }, "allow": { - "message": "Zezw\u00f3l" + "message": "Zezwól" }, "allow60fps": { - "message": "Zezw\u00f3l na 60fps" + "message": "Zezwól na 60fps" }, "alwaysActive": { "message": "Zawsze aktywne" }, "alwaysShowProgressBar": { - "message": "Zawsze pokazuj pasek post\u0119pu" + "message": "Zawsze pokazuj pasek postępu" }, "amber": { "message": "Bursztynowy" @@ -66,7 +66,7 @@ "message": "Analizator" }, "appearance": { - "message": "Wygl\u0105d" + "message": "Wygląd" }, "audio": { "message": "Audio" @@ -78,7 +78,7 @@ "message": "Auto" }, "autoFullscreen": { - "message": "Automatyczny tryb pe\u0142noekranowy" + "message": "Automatyczny tryb pełnoekranowy" }, "autopauseWhenSwitchingTabs": { "message": "Automatyczna pauza przy zmianie kart" @@ -90,7 +90,7 @@ "message": "Kopia zapasowa i reset" }, "baseOnSystemColorScheme": { - "message": "Bazuj na systemowym schemacie kolor\u00f3w" + "message": "Bazuj na systemowym schemacie kolorów" }, "belowPlayer": { "message": "Pod odtwarzaczem" @@ -111,16 +111,16 @@ "message": "Szaroniebieski" }, "bluelight": { - "message": "Niebieskie \u015bwiat\u0142o" + "message": "Niebieskie światło" }, "brown": { - "message": "Br\u0105zowy" + "message": "Brązowy" }, "browser": { - "message": "Przegl\u0105darka" + "message": "Przeglądarka" }, "browserVersion": { - "message": "Wersja przegl\u0105darki" + "message": "Wersja przeglądarki" }, "bubbles": { "message": "Dymki" @@ -138,10 +138,10 @@ "message": "Kategorie" }, "channel": { - "message": "Kana\u0142" + "message": "Kanał" }, "channels": { - "message": "Kana\u0142y" + "message": "Kanały" }, "clipboard": { "message": "Schowek" @@ -150,16 +150,16 @@ "message": "Kodek h.264" }, "collapseOfSubscriptionSections": { - "message": "Zwini\u0119cie sekcji subskrypcji" + "message": "Zwinięcie sekcji subskrypcji" }, "collapsed": { - "message": "Zwini\u0119te" + "message": "Zwinięte" }, "comments": { "message": "Komentarze" }, "confirmationBeforeClosing": { - "message": "Potwierdzenie przy zamkni\u0119ciu" + "message": "Potwierdzenie przy zamknięciu" }, "cookies": { "message": "Ciasteczka" @@ -168,7 +168,7 @@ "message": "Rdzenie" }, "cropChapterTitles": { - "message": "Przycinaj tytu\u0142y rozdzia\u0142\u00f3w" + "message": "Przycinaj tytuły rozdziałów" }, "customCss": { "message": "Niestandardowy CSS" @@ -192,25 +192,25 @@ "message": "Data i godzina" }, "dawn": { - "message": "\u015awit" + "message": "Świt" }, "decreasePlaybackSpeed": { - "message": "Zmniejsz pr\u0119dko\u015b\u0107 odtwarzania" + "message": "Zmniejsz prędkość odtwarzania" }, "decreaseVolume": { - "message": "Zmniejsz g\u0142o\u015bno\u015b\u0107" + "message": "Zmniejsz głośność" }, "deepOrange": { - "message": "G\u0142\u0119boki pomara\u0144czowy" + "message": "Głęboki pomarańczowy" }, "deepPurple": { - "message": "G\u0142\u0119boki fioletowy" + "message": "Głęboki fioletowy" }, "defaultChannelTab": { - "message": "Domy\u015blna zak\u0142adka na kana\u0142ach" + "message": "Domyślna zakładka na kanałach" }, "deleteYoutubeCookies": { - "message": "Usu\u0144 ciasteczka YouTube" + "message": "Usuń ciasteczka YouTube" }, "description": { "message": "Opis" @@ -219,22 +219,22 @@ "message": "Pustynia" }, "details": { - "message": "Szczeg\u00f3\u0142y" + "message": "Szczegóły" }, "developerOptions": { "message": "Ustawienia deweloperskie" }, "device": { - "message": "Urz\u0105dzenie" + "message": "Urządzenie" }, "dim": { "message": "Przyciemnij" }, "disabled": { - "message": "Wy\u0142\u0105czony" + "message": "Wyłączony" }, "dislike": { - "message": "Nie podoba mi si\u0119" + "message": "Nie podoba mi się" }, "doNotChange": { "message": "Nie zmieniaj" @@ -243,7 +243,7 @@ "message": "Dotacja" }, "draggable": { - "message": "Przeci\u0105galne" + "message": "Przeciągalne" }, "email": { "message": "Email" @@ -252,16 +252,16 @@ "message": "Pusty" }, "enabled": { - "message": "W\u0142\u0105czony" + "message": "Włączony" }, "enabledForced": { - "message": "W\u0142\u0105czony (wymuszony)" + "message": "Włączony (wymuszony)" }, "expanded": { - "message": "Rozwini\u0119ty" + "message": "Rozwinięty" }, "exportSettings": { - "message": "Eksport ustawie\u0144" + "message": "Eksport ustawień" }, "extension": { "message": "Rozszerzenie" @@ -276,7 +276,7 @@ "message": "Dopasuj do okna" }, "flash": { - "message": "B\u0142ysk" + "message": "Błysk" }, "font": { "message": "Czcionka" @@ -285,25 +285,25 @@ "message": "Stopka" }, "forceSDR": { - "message": "Wymu\u015b SDR" + "message": "Wymuś SDR" }, "forcedPlaybackSpeed": { - "message": "Wymu\u015b pr\u0119dko\u015b\u0107 odtwarzania" + "message": "Wymuś prędkość odtwarzania" }, "forcedTheaterMode": { - "message": "Wymu\u015b tryb kinowy" + "message": "Wymuś tryb kinowy" }, "forcedVolume": { - "message": "Wymu\u015b poziom g\u0142o\u015bno\u015bci" + "message": "Wymuś poziom głośności" }, "foundABug": { - "message": "Znalaz\u0142e\u015b buga?" + "message": "Znalazłeś buga?" }, "fullWindow": { - "message": "Pe\u0142ne okno" + "message": "Pełne okno" }, "general": { - "message": "Og\u00f3lne" + "message": "Ogólne" }, "geoPreference": { "message": "Geo preferencja" @@ -312,7 +312,7 @@ "message": "GitHub" }, "goToSearchBox": { - "message": "Id\u017a do paska wyszukiwania" + "message": "Idź do paska wyszukiwania" }, "gpu": { "message": "GPU" @@ -327,7 +327,7 @@ "message": "Miniatury HD" }, "header": { - "message": "Nag\u0142\u00f3wek" + "message": "Nagłówek" }, "hidden": { "message": "Ukryty" @@ -348,19 +348,19 @@ "message": "Ukryj sterowanie odtwarzaczem" }, "hideDetails": { - "message": "Ukryj szczeg\u00f3\u0142y" + "message": "Ukryj szczegóły" }, "hideEndscreen": { - "message": "Ukryj ekran ko\u0144cowy" + "message": "Ukryj ekran końcowy" }, "hideFeaturedContent": { - "message": "Ukryj wyr\u00f3\u017cnion\u0105 zawarto\u015b\u0107" + "message": "Ukryj wyróżnioną zawartość" }, "hideFooter": { - "message": "Ukryj stopk\u0119" + "message": "Ukryj stopkę" }, "hideGradientBottom": { - "message": "Ukryj cie\u0144 dooko\u0142a paska odtwarzania" + "message": "Ukryj cień dookoła paska odtwarzania" }, "hidePlaylist": { "message": "Ukryj playliste" @@ -369,28 +369,28 @@ "message": "Ukryj przyciski po prawej" }, "hideScrollForDetails": { - "message": "Ukryj \u00abPrzewi\u0144 do szczeg\u00f3\u0142\u00f3w\u00bb" + "message": "Ukryj «Przewiń do szczegółów»" }, "hideThumbnailOverlay": { "message": "Ukryj przyciski na miniaturach" }, "hideViewsCount": { - "message": "Ukryj ilo\u015b\u0107 wy\u015bwietle\u0144" + "message": "Ukryj ilość wyświetleń" }, "history": { "message": "Historia" }, "home": { - "message": "Strona g\u0142\u00f3wna" + "message": "Strona główna" }, "hover": { - "message": "Najed\u017a" + "message": "Najedź" }, "hoverOnVideoPage": { - "message": "Najed\u017a na stronie wideo" + "message": "Najedź na stronie wideo" }, "howLongAgoTheVideoWasUploaded": { - "message": "Jak dawno wideo zosta\u0142o przes\u0142ane" + "message": "Jak dawno wideo zostało przesłane" }, "icons": { "message": "Ikony" @@ -399,28 +399,28 @@ "message": "Tylko ikony" }, "importSettings": { - "message": "Import ustawie\u0144" + "message": "Import ustawień" }, "improveLogo": { "message": "Ulepsz logo" }, "improvedtubeIconInBrowser": { - "message": "Ikona ImprovedTube w przegl\u0105darce" + "message": "Ikona ImprovedTube w przeglądarce" }, "improvedtubeIconOnYoutube": { "message": "Ikona ImprovedTube na YouTube" }, "improvedtubeLanguage": { - "message": "J\u0119zyk ImprovedTube" + "message": "Język ImprovedTube" }, "improvedtubeVersion": { "message": "Wersja ImprovedTube" }, "increasePlaybackSpeed": { - "message": "Zwi\u0119ksz pr\u0119dko\u015b\u0107 odtwarzania" + "message": "Zwiększ prędkość odtwarzania" }, "increaseVolume": { - "message": "Zwi\u0119ksz g\u0142o\u015bno\u015b\u0107" + "message": "Zwiększ głośność" }, "indigo": { "message": "Indygo" @@ -429,7 +429,7 @@ "message": "Przedmioty" }, "languages": { - "message": "J\u0119zyki" + "message": "Języki" }, "legacyYoutube": { "message": "Stara wersja YouTube" @@ -456,13 +456,13 @@ "message": "Lista" }, "liveChat": { - "message": "Czat na \u017cywo" + "message": "Czat na żywo" }, "liveChatType": { - "message": "Rodzaj czatu na \u017cywo" + "message": "Rodzaj czatu na żywo" }, "loudnessNormalization": { - "message": "Normalizacja g\u0142o\u015bno\u015bci" + "message": "Normalizacja głośności" }, "markWatchedVideos": { "message": "Oznacz obejrzane wideo" @@ -483,7 +483,7 @@ "message": "Nowe" }, "nextVideo": { - "message": "Nast\u0119pne wideo" + "message": "Następne wideo" }, "night": { "message": "Noc" @@ -507,7 +507,7 @@ "message": "Na wszystkich wideo" }, "onSubscribedChannels": { - "message": "Na subskrybowanych kana\u0142ach" + "message": "Na subskrybowanych kanałach" }, "onlyActiveOnYoutube": { "message": "Aktywny tylko na YouTube" @@ -516,10 +516,10 @@ "message": "Odtwarzanie tylko jednej instancji odtwarzacza" }, "openPopupPlayer": { - "message": "Otw\u00f3rz wideo/playliste w nowym oknie" + "message": "Otwórz wideo/playliste w nowym oknie" }, "orange": { - "message": "Pomara\u0144czowy" + "message": "Pomarańczowy" }, "os": { "message": "OS" @@ -534,10 +534,10 @@ "message": "Obraz w Obrazie" }, "pink": { - "message": "R\u00f3\u017cowy" + "message": "Różowy" }, "plain": { - "message": "Zwyk\u0142y" + "message": "Zwykły" }, "platform": { "message": "Platforma" @@ -546,7 +546,7 @@ "message": "Odtwarzanie / Pauza" }, "playbackSpeed": { - "message": "Pr\u0119dko\u015b\u0107 odtwarzania" + "message": "Prędkość odtwarzania" }, "player": { "message": "Odtwarzacz" @@ -570,40 +570,40 @@ "message": "Pozycja" }, "pressAnyKeyOrScroll": { - "message": "Wci\u015bnij dowolny przycisk lub u\u017cyj k\u00f3\u0142ka myszy." + "message": "Wciśnij dowolny przycisk lub użyj kółka myszy." }, "pressAnyKeyOrUseMouseWheel": { - "message": "Wci\u015bnij dowolny przycisk lub u\u017cyj k\u00f3\u0142ka myszy" + "message": "Wciśnij dowolny przycisk lub użyj kółka myszy" }, "previousVideo": { "message": "Poprzednie wideo" }, "primaryColor": { - "message": "Kolor g\u0142\u00f3wny" + "message": "Kolor główny" }, "purple": { "message": "Fioletowy" }, "quality": { - "message": "Jako\u015b\u0107" + "message": "Jakość" }, "ram": { "message": "RAM" }, "rateUs": { - "message": "Oce\u0144 nas" + "message": "Oceń nas" }, "red": { "message": "Czerwony" }, "redDislikeButton": { - "message": "Koloruj przycisk 'Nie lubi\u0119' na czerwono" + "message": "Koloruj przycisk 'Nie lubię' na czerwono" }, "relatedVideos": { - "message": "Wideo powi\u0105zane" + "message": "Wideo powiązane" }, "removeRelatedSearchResults": { - "message": "Usu\u0144 powi\u0105zane wyniki wyszukiwania" + "message": "Usuń powiązane wyniki wyszukiwania" }, "repeat": { "message": "Powtarzaj" @@ -615,13 +615,13 @@ "message": "Resetuj wszystkie ustawienia" }, "resetAllShortcuts": { - "message": "Resetuj wszystkie skr\u00f3ty" + "message": "Resetuj wszystkie skróty" }, "reverse": { - "message": "Odwr\u00f3\u0107" + "message": "Odwróć" }, "rotate": { - "message": "Obr\u00f3\u0107" + "message": "Obróć" }, "save": { "message": "Zapisz" @@ -645,25 +645,25 @@ "message": "Tylko pasek wyszukiwania" }, "seekBackward10Seconds": { - "message": "Przewi\u0144 10 sekund do ty\u0142u" + "message": "Przewiń 10 sekund do tyłu" }, "seekForward10Seconds": { - "message": "Przewi\u0144 10 sekund do przodu" + "message": "Przewiń 10 sekund do przodu" }, "settings": { "message": "Ustawienia" }, "settingsSuccessfullyImported": { - "message": "Ustawienia pomy\u015blnie zaimportowane" + "message": "Ustawienia pomyślnie zaimportowane" }, "shortcuts": { - "message": "Skr\u00f3ty" + "message": "Skróty" }, "showCardsOnMouseHover": { - "message": "Poka\u017c karty po najechaniu mysz\u0105" + "message": "Pokaż karty po najechaniu myszą" }, "showChannelVideosCount": { - "message": "Poka\u017c ilo\u015b\u0107 wideo na kanale" + "message": "Pokaż ilość wideo na kanale" }, "shuffle": { "message": "Shuffle" @@ -675,16 +675,16 @@ "message": "Spacja" }, "squaredUserImages": { - "message": "Kwadratowe avatary u\u017cytkownik\u00f3w" + "message": "Kwadratowe avatary użytkowników" }, "static": { "message": "Statyczne" }, "statsForNerds": { - "message": "Statystyki dla nerd\u00f3w" + "message": "Statystyki dla nerdów" }, "step": { - "message": "Stopie\u0144" + "message": "Stopień" }, "stop": { "message": "Stop" @@ -702,10 +702,10 @@ "message": "Napisy" }, "sunset": { - "message": "Zach\u00f3d" + "message": "Zachód" }, "sunsetToSunrise": { - "message": "Od zachodu do wschodu s\u0142o\u0144ca" + "message": "Od zachodu do wschodu słońca" }, "systemPeferenceDark": { "message": "Preferencja systemowa: ciemne" @@ -732,7 +732,7 @@ "message": "To zresetuje wszystkie ustawienia." }, "thisWillResetAllShortcuts": { - "message": "To zresetuje wszystkie skr\u00f3ty" + "message": "To zresetuje wszystkie skróty" }, "thumbnails": { "message": "Miniatury" @@ -747,40 +747,40 @@ "message": "Dzisiaj o" }, "toggleAutoplay": { - "message": "Prze\u0142\u0105cz autoodtwarzanie" + "message": "Przełącz autoodtwarzanie" }, "toggleCards": { - "message": "Prze\u0142\u0105cz karty" + "message": "Przełącz karty" }, "toggleControls": { - "message": "Prze\u0142\u0105cz widoczno\u015b\u0107 sterowania odtwarzaczew" + "message": "Przełącz widoczność sterowania odtwarzaczew" }, "topChat": { - "message": "Czat na g\u00f3rze" + "message": "Czat na górze" }, "trailerAutoplay": { - "message": "Autoodtwarzanie zwiastun\u00f3w" + "message": "Autoodtwarzanie zwiastunów" }, "translations": { - "message": "T\u0142umaczenia" + "message": "Tłumaczenia" }, "transparentBackground": { - "message": "Przezroczyste t\u0142o" + "message": "Przezroczyste tło" }, "trending": { "message": "Trending" }, "tryToReloadThePage": { - "message": "Spr\u00f3buj prze\u0142adowa\u0107 stron\u0119" + "message": "Spróbuj przeładować stronę" }, "type": { "message": "Typ" }, "upNextAutoplay": { - "message": "Autoodwarzanie nast\u0119pnego wideo" + "message": "Autoodwarzanie następnego wideo" }, "use24HourFormat": { - "message": "U\u017cywaj 24-godzinnego formatu czasu" + "message": "Używaj 24-godzinnego formatu czasu" }, "version": { "message": "Wersja" @@ -789,7 +789,7 @@ "message": "Wideo" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Opis wideo zostanie rozwini\u0119ty aby pozyska\u0107 nazw\u0119 kategorii" + "message": "Opis wideo zostanie rozwinięty aby pozyskać nazwę kategorii" }, "videoFormats": { "message": "Formaty wideo" @@ -798,36 +798,36 @@ "message": "Wideo" }, "volume": { - "message": "G\u0142o\u015bno\u015b\u0107" + "message": "Głośność" }, "watchLater": { - "message": "Obejrzyj p\u00f3\u017aniej" + "message": "Obejrzyj później" }, "watchTime": { - "message": "Czas ogl\u0105dania" + "message": "Czas oglądania" }, "whenTabIsChanged": { "message": "Kiedy zostaje zmieniona karta" }, "white": { - "message": "Bia\u0142y" + "message": "Biały" }, "yellow": { - "message": "\u017b\u00f3\u0142ty" + "message": "Żółty" }, "youtubeHeaderLeft": { - "message": "Nag\u0142\u00f3wek YouTube (lewy)" + "message": "Nagłówek YouTube (lewy)" }, "youtubeHeaderRight": { - "message": "Nag\u0142\u00f3wek YouTube (prawy)" + "message": "Nagłówek YouTube (prawy)" }, "youtubeHomePage": { - "message": "Strona g\u0142\u00f3wna YouTube" + "message": "Strona główna YouTube" }, "youtubeLanguage": { - "message": "J\u0119zyk YouTube" + "message": "Język YouTube" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube ogranicza jako\u015b\u0107 wideo do 1080p przy kodeku h.264" + "message": "YouTube ogranicza jakość wideo do 1080p przy kodeku h.264" } } \ No newline at end of file diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 03c493c5c..5749f9bf1 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -1,15 +1,15 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" @@ -36,13 +36,13 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Fun\u00e7\u00f5es ativas" + "message": "Funções ativas" }, "addScrollToTop": { - "message": "Habilitar bot\u00e3o \u00abVoltar ao Topo\u00bb" + "message": "Habilitar botão «Voltar ao Topo»" }, "ads": { - "message": "An\u00fancios" + "message": "Anúncios" }, "all": { "message": "All" @@ -60,34 +60,34 @@ "message": "Sempre exibir a barra de progresso" }, "amber": { - "message": "\u00c2mbar" + "message": "Âmbar" }, "analyzer": { - "message": "Anal\u00edtico" + "message": "Analítico" }, "appearance": { - "message": "Apar\u00eancia" + "message": "Aparência" }, "audio": { - "message": "\u00c1udio" + "message": "Áudio" }, "audioFormats": { - "message": "Formatos de \u00e1udio" + "message": "Formatos de áudio" }, "auto": { - "message": "Autom\u00e1tico" + "message": "Automático" }, "autoFullscreen": { - "message": "Tela cheia autom\u00e1tica" + "message": "Tela cheia automática" }, "autopauseWhenSwitchingTabs": { - "message": "Pausar v\u00eddeo ao alternar entre abas" + "message": "Pausar vídeo ao alternar entre abas" }, "autoplay": { - "message": "Reprodu\u00e7\u00e3o autom\u00e1tica" + "message": "Reprodução automática" }, "backupAndReset": { - "message": "Backup & Restaura\u00e7\u00e3o" + "message": "Backup & Restauração" }, "baseOnSystemColorScheme": { "message": "Baseado nas cores do sistema" @@ -120,7 +120,7 @@ "message": "Navegador" }, "browserVersion": { - "message": "Vers\u00e3o do navegador" + "message": "Versão do navegador" }, "bubbles": { "message": "Bolhas" @@ -129,7 +129,7 @@ "message": "Bug" }, "buttons": { - "message": "Bot\u00f5es" + "message": "Botões" }, "cancel": { "message": "Cancelar" @@ -153,19 +153,19 @@ "message": "Collapse of subscription sections" }, "collapsed": { - "message": "Retra\u00eddo" + "message": "Retraído" }, "comments": { - "message": "Coment\u00e1rios" + "message": "Comentários" }, "confirmationBeforeClosing": { - "message": "Alerta ao fechar a p\u00e1gina" + "message": "Alerta ao fechar a página" }, "cookies": { "message": "Cookies" }, "cores": { - "message": "N\u00facleos" + "message": "Núcleos" }, "cropChapterTitles": { "message": "Crop chapter titles" @@ -207,13 +207,13 @@ "message": "Roxo Escuro" }, "defaultChannelTab": { - "message": "Aba padr\u00e3o do canal" + "message": "Aba padrão do canal" }, "deleteYoutubeCookies": { "message": "Deletar cookies do YouTube" }, "description": { - "message": "Descri\u00e7\u00e3o" + "message": "Descrição" }, "desert": { "message": "Deserto" @@ -234,16 +234,16 @@ "message": "Desabilitado" }, "dislike": { - "message": "N\u00e3o Gostei." + "message": "Não Gostei." }, "doNotChange": { - "message": "N\u00e3o alterar" + "message": "Não alterar" }, "donate": { "message": "Doar" }, "draggable": { - "message": "Arrast\u00e1vel" + "message": "Arrastável" }, "email": { "message": "Email" @@ -261,10 +261,10 @@ "message": "Expandido" }, "exportSettings": { - "message": "Exportar configura\u00e7\u00f5es" + "message": "Exportar configurações" }, "extension": { - "message": "Extens\u00e3o" + "message": "Extensão" }, "file": { "message": "File" @@ -273,7 +273,7 @@ "message": "Filtros" }, "fitToWindow": { - "message": "Ajustar \u00e0 janela" + "message": "Ajustar à janela" }, "flash": { "message": "Flash" @@ -282,7 +282,7 @@ "message": "Font" }, "footer": { - "message": "Rodap\u00e9" + "message": "Rodapé" }, "forceSDR": { "message": "Force SDR" @@ -291,10 +291,10 @@ "message": "Forced playback speed" }, "forcedTheaterMode": { - "message": "For\u00e7ar modo teatro" + "message": "Forçar modo teatro" }, "forcedVolume": { - "message": "For\u00e7ar volume" + "message": "Forçar volume" }, "foundABug": { "message": "Encontrou um bug?" @@ -324,19 +324,19 @@ "message": "Miniaturas em HD" }, "header": { - "message": "Cabe\u00e7alho" + "message": "Cabeçalho" }, "hidden": { "message": "Oculto" }, "hiddenOnVideoPage": { - "message": "Oculto na p\u00e1gina de v\u00eddeo" + "message": "Oculto na página de vídeo" }, "hideAnimatedThumbnails": { "message": "Desabilitar miniaturas animadas" }, "hideAnnotations": { - "message": "Ocultar anota\u00e7\u00f5es" + "message": "Ocultar anotações" }, "hideCards": { "message": "Ocultar cards" @@ -348,10 +348,10 @@ "message": "Ocultar tela final" }, "hideFeaturedContent": { - "message": "Ocultar conte\u00fado em destaque" + "message": "Ocultar conteúdo em destaque" }, "hideFooter": { - "message": "Ocultar rodap\u00e9" + "message": "Ocultar rodapé" }, "hideGradientBottom": { "message": "Hide Gradient Bottom" @@ -360,52 +360,52 @@ "message": "Ocultar playlist" }, "hideRightButtons": { - "message": "Ocultar bot\u00f5es \u00e0 direita" + "message": "Ocultar botões à direita" }, "hideScrollForDetails": { - "message": "Ocultar \u00abRolar Para Ver Detalhes\u00bb" + "message": "Ocultar «Rolar Para Ver Detalhes»" }, "hideViewsCount": { - "message": "Ocultar visualiza\u00e7\u00f5es" + "message": "Ocultar visualizações" }, "history": { - "message": "Hist\u00f3rico" + "message": "Histórico" }, "home": { - "message": "In\u00edcio" + "message": "Início" }, "hover": { - "message": "Retr\u00e1til" + "message": "Retrátil" }, "hoverOnVideoPage": { - "message": "Retr\u00e1til na p\u00e1gina de video" + "message": "Retrátil na página de video" }, "howLongAgoTheVideoWasUploaded": { - "message": "Tempo decorrido desde a publica\u00e7\u00e3o" + "message": "Tempo decorrido desde a publicação" }, "icons": { - "message": "\u00cdcones" + "message": "Ícones" }, "iconsOnly": { - "message": "Apenas \u00edcones" + "message": "Apenas ícones" }, "importSettings": { - "message": "Importar configura\u00e7\u00f5es" + "message": "Importar configurações" }, "improveLogo": { "message": "Aprimorar logomarca" }, "improvedtubeIconInBrowser": { - "message": "\u00cdcone do ImprovedTube no navegador" + "message": "Ícone do ImprovedTube no navegador" }, "improvedtubeIconOnYoutube": { - "message": "\u00cdcone do ImprovedTube no YouTube" + "message": "Ícone do ImprovedTube no YouTube" }, "improvedtubeLanguage": { "message": "Idioma do ImprovedTube" }, "improvedtubeVersion": { - "message": "Vers\u00e3o do ImprovedTube" + "message": "Versão do ImprovedTube" }, "increasePlaybackSpeed": { "message": "Aumentar velocidade" @@ -438,10 +438,10 @@ "message": "Gostei!" }, "likes": { - "message": "Avalia\u00e7\u00f5es" + "message": "Avaliações" }, "lime": { - "message": "Verde Lim\u00e3o" + "message": "Verde Limão" }, "list": { "message": "Lista" @@ -453,7 +453,7 @@ "message": "Live chat type" }, "loudnessNormalization": { - "message": "Normaliza\u00e7\u00e3o de volume" + "message": "Normalização de volume" }, "markWatchedVideos": { "message": "Mark watched videos" @@ -474,7 +474,7 @@ "message": "Novo" }, "nextVideo": { - "message": "Pr\u00f3ximo v\u00eddeo" + "message": "Próximo vídeo" }, "night": { "message": "Noite" @@ -483,7 +483,7 @@ "message": "No active features" }, "noOpenVideoTabs": { - "message": "Nenhuma aba de v\u00eddeo aberta" + "message": "Nenhuma aba de vídeo aberta" }, "none": { "message": "Nenhum" @@ -495,10 +495,10 @@ "message": "Antigo" }, "onAllVideos": { - "message": "Em todos os v\u00eddeos" + "message": "Em todos os vídeos" }, "onSubscribedChannels": { - "message": "Apenas em inscri\u00e7\u00f5es" + "message": "Apenas em inscrições" }, "onlyActiveOnYoutube": { "message": "Ativo apenas no YouTube" @@ -513,10 +513,10 @@ "message": "Sistema Operacional" }, "other": { - "message": "Outras op\u00e7\u00f5es" + "message": "Outras opções" }, "permissions": { - "message": "Permiss\u00f5es" + "message": "Permissões" }, "pictureInPicture": { "message": "Picture-in-Picture" @@ -525,7 +525,7 @@ "message": "Rosa" }, "plain": { - "message": "Pan\u00edcie" + "message": "Panície" }, "platform": { "message": "Plataforma" @@ -534,7 +534,7 @@ "message": "Reproduzir / Pausar" }, "playbackSpeed": { - "message": "Velocidade de reprodu\u00e7\u00e3o" + "message": "Velocidade de reprodução" }, "player": { "message": "Player" @@ -555,7 +555,7 @@ "message": "Player externo" }, "position": { - "message": "Posi\u00e7\u00e3o" + "message": "Posição" }, "pressAnyKeyOrScroll": { "message": "Pressione qualquer tecla ou use a roda do mouse" @@ -564,7 +564,7 @@ "message": "Pressione qualquer tecla ou use a roda do mouse" }, "previousVideo": { - "message": "V\u00eddeo anterior" + "message": "Vídeo anterior" }, "primaryColor": { "message": "Primary color" @@ -588,7 +588,7 @@ "message": "Show dislike button red colour" }, "relatedVideos": { - "message": "V\u00eddeos relacionados" + "message": "Vídeos relacionados" }, "removeRelatedSearchResults": { "message": "Remove related search results" @@ -600,7 +600,7 @@ "message": "Restaurar" }, "resetAllSettings": { - "message": "Restaurar todas as configura\u00e7\u00f5es" + "message": "Restaurar todas as configurações" }, "resetAllShortcuts": { "message": "Reset all shortcuts" @@ -636,13 +636,13 @@ "message": "Retroceder 10 segundos" }, "seekForward10Seconds": { - "message": "Avan\u00e7ar 10 segundos" + "message": "Avançar 10 segundos" }, "settings": { - "message": "Configura\u00e7\u00f5es" + "message": "Configurações" }, "settingsSuccessfullyImported": { - "message": "Configura\u00e7\u00f5es importadas com sucesso" + "message": "Configurações importadas com sucesso" }, "shortcuts": { "message": "Atalhos" @@ -651,22 +651,22 @@ "message": "Show cards on mouse hover" }, "showChannelVideosCount": { - "message": "N\u00famero de v\u00eddeos do canal" + "message": "Número de vídeos do canal" }, "shuffle": { - "message": "Aleat\u00f3rio" + "message": "Aleatório" }, "sidebar": { "message": "Painel lateral" }, "spacebar": { - "message": "Espa\u00e7o" + "message": "Espaço" }, "squaredUserImages": { "message": "Avatares quadrados" }, "static": { - "message": "Est\u00e1tico" + "message": "Estático" }, "statsForNerds": { "message": "Show Stats for Nerds" @@ -684,22 +684,22 @@ "message": "Estilos" }, "subscriptions": { - "message": "Inscri\u00e7\u00f5es" + "message": "Inscrições" }, "subtitles": { "message": "Legendas" }, "sunset": { - "message": "P\u00f4r do Sol" + "message": "Pôr do Sol" }, "sunsetToSunrise": { "message": "Durante a noite" }, "systemPeferenceDark": { - "message": "Prefer\u00eancia do sistema: Escuro" + "message": "Preferência do sistema: Escuro" }, "systemPeferenceLight": { - "message": "Prefer\u00eancia do sistema: Claro" + "message": "Preferência do sistema: Claro" }, "teal": { "message": "Verde Azulado" @@ -711,13 +711,13 @@ "message": "Temas" }, "thisWillRemoveAllCookies": { - "message": "Todos os cookies ser\u00e3o removidos." + "message": "Todos os cookies serão removidos." }, "thisWillRemoveAllYouTubeCookies": { - "message": "Todos os cookies do YouTube ser\u00e3o removidos" + "message": "Todos os cookies do YouTube serão removidos" }, "thisWillResetAllSettings": { - "message": "As configura\u00e7\u00f5es padr\u00e3o ser\u00e3o restauradas." + "message": "As configurações padrão serão restauradas." }, "thisWillResetAllShortcuts": { "message": "This will reset all shortcuts" @@ -726,13 +726,13 @@ "message": "Miniaturas" }, "timeFrom": { - "message": "Hor\u00e1rio inicial" + "message": "Horário inicial" }, "timeTo": { - "message": "Hor\u00e1rio final" + "message": "Horário final" }, "todayAt": { - "message": "Hoje \u00e0s" + "message": "Hoje às" }, "toggleCards": { "message": "Toggle cards" @@ -753,31 +753,31 @@ "message": "Em Alta" }, "tryToReloadThePage": { - "message": "Recarregue a p\u00e1gina" + "message": "Recarregue a página" }, "type": { "message": "Tipo" }, "upNextAutoplay": { - "message": "Reproduzir v\u00eddeo em seguida" + "message": "Reproduzir vídeo em seguida" }, "use24HourFormat": { "message": "Usar formato de 24 horas" }, "version": { - "message": "Vers\u00e3o" + "message": "Versão" }, "video": { - "message": "V\u00eddeo" + "message": "Vídeo" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "A descri\u00e7\u00e3o se expandir\u00e1 para acessar a categoria do v\u00eddeo" + "message": "A descrição se expandirá para acessar a categoria do vídeo" }, "videoFormats": { - "message": "Formatos de v\u00eddeo" + "message": "Formatos de vídeo" }, "videos": { - "message": "V\u00eddeos" + "message": "Vídeos" }, "volume": { "message": "Volume" @@ -786,7 +786,7 @@ "message": "Assistir mais tarde" }, "watchTime": { - "message": "Tempo de exibi\u00e7\u00e3o" + "message": "Tempo de exibição" }, "whenTabIsChanged": { "message": "Quando alternar entre abas" @@ -798,18 +798,18 @@ "message": "Amarelo" }, "youtubeHeaderLeft": { - "message": "No cabe\u00e7alho \u00e0 esquerda" + "message": "No cabeçalho à esquerda" }, "youtubeHeaderRight": { - "message": "No cabe\u00e7alho \u00e0 direita" + "message": "No cabeçalho à direita" }, "youtubeHomePage": { - "message": "P\u00e1gina inicial do YouTube" + "message": "Página inicial do YouTube" }, "youtubeLanguage": { "message": "Idioma do YouTube" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "O YouTube limita o codec h.264 \u00e0 resolu\u00e7\u00e3o de 1080p" + "message": "O YouTube limita o codec h.264 à resolução de 1080p" } } \ No newline at end of file diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 975265600..d853d1504 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -1,15 +1,15 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" @@ -27,22 +27,22 @@ "message": "Ativar legendas" }, "activateFullscreen": { - "message": "Ativar ecr\u00e3 completo" + "message": "Ativar ecrã completo" }, "activated": { "message": "Ativado" }, "activatedFeatures": { - "message": "Op\u00e7\u00f5es ativadas" + "message": "Opções ativadas" }, "activeFeatures": { - "message": "Op\u00e7\u00f5es ativas" + "message": "Opções ativas" }, "addScrollToTop": { - "message": "Adicionar \u00abIr para o topo\u00bb" + "message": "Adicionar «Ir para o topo»" }, "ads": { - "message": "An\u00fancios" + "message": "Anúncios" }, "all": { "message": "Todas" @@ -60,34 +60,34 @@ "message": "Mostrar sempre a barra de progressos" }, "amber": { - "message": "\u00c2mbar" + "message": "Âmbar" }, "analyzer": { "message": "Analisador" }, "appearance": { - "message": "Apar\u00eancia" + "message": "Aparência" }, "audio": { - "message": "\u00c1udio" + "message": "Áudio" }, "audioFormats": { - "message": "Formatos de \u00e1udio" + "message": "Formatos de áudio" }, "auto": { - "message": "Autom\u00e1tico" + "message": "Automático" }, "autoFullscreen": { - "message": "Ecr\u00e2n completo autom\u00e1tico" + "message": "Ecrân completo automático" }, "autopauseWhenSwitchingTabs": { "message": "Pausa quando muda de abas" }, "autoplay": { - "message": "Reprodu\u00e7\u00e3o autom\u00e1tica" + "message": "Reprodução automática" }, "backupAndReset": { - "message": "C\u00f3pia de seguran\u00e7a e repor" + "message": "Cópia de segurança e repor" }, "baseOnSystemColorScheme": { "message": "Baseado no esquema de cores do sistema" @@ -120,7 +120,7 @@ "message": "Navegador" }, "browserVersion": { - "message": "Vers\u00e3o do navegador" + "message": "Versão do navegador" }, "bubbles": { "message": "Bolhas" @@ -129,7 +129,7 @@ "message": "Erro" }, "buttons": { - "message": "Bot\u00f5es" + "message": "Botões" }, "cancel": { "message": "Cancelar" @@ -144,19 +144,19 @@ "message": "Canais" }, "clipboard": { - "message": "Area de transfer\u00eancia" + "message": "Area de transferência" }, "codecH264": { "message": "Codec h.264" }, "collapseOfSubscriptionSections": { - "message": "Extender as sec\u00e7\u00f5es escolhidas" + "message": "Extender as secções escolhidas" }, "collapsed": { "message": "Extender" }, "comments": { - "message": "Coment\u00e1rios" + "message": "Comentários" }, "confirmationBeforeClosing": { "message": "Confirmar antes de encerrar" @@ -204,16 +204,16 @@ "message": "Laranja forte" }, "deepPurple": { - "message": "Lil\u00e1s forte" + "message": "Lilás forte" }, "defaultChannelTab": { - "message": "Aba padr\u00e3o do canal" + "message": "Aba padrão do canal" }, "deleteYoutubeCookies": { "message": "Apagar os cookies do YouTube" }, "description": { - "message": "Descri\u00e7\u00e3o" + "message": "Descrição" }, "desert": { "message": "Deserto" @@ -222,7 +222,7 @@ "message": "Detalhes" }, "developerOptions": { - "message": "Op\u00e7\u00f5es de programador" + "message": "Opções de programador" }, "device": { "message": "Aparelho" @@ -234,10 +234,10 @@ "message": "Desabilitado" }, "dislike": { - "message": "N\u00e3o gostar" + "message": "Não gostar" }, "doNotChange": { - "message": "N\u00e3o mudes" + "message": "Não mudes" }, "donate": { "message": "Doar" @@ -255,16 +255,16 @@ "message": "Ativado" }, "enabledForced": { - "message": "Ativado (for\u00e7ado)" + "message": "Ativado (forçado)" }, "expanded": { "message": "Expandir" }, "exportSettings": { - "message": "Exportar defini\u00e7\u00f5es" + "message": "Exportar definições" }, "extension": { - "message": "Exten\u00e7\u00e3o" + "message": "Extenção" }, "file": { "message": "Ficheiro" @@ -273,7 +273,7 @@ "message": "Filtros" }, "fitToWindow": { - "message": "Ajustar \u00e1 janela" + "message": "Ajustar á janela" }, "flash": { "message": "Flash" @@ -282,19 +282,19 @@ "message": "Tipo de letra" }, "footer": { - "message": "Cabe\u00e7alho" + "message": "Cabeçalho" }, "forceSDR": { "message": "Force SDR" }, "forcedPlaybackSpeed": { - "message": "For\u00e7ar velocidade de leitura" + "message": "Forçar velocidade de leitura" }, "forcedTheaterMode": { - "message": "For\u00e7ar modo de cinema" + "message": "Forçar modo de cinema" }, "forcedVolume": { - "message": "Volume for\u00e7ado" + "message": "Volume forçado" }, "foundABug": { "message": "Encontrou um erro?" @@ -309,7 +309,7 @@ "message": "GitHub" }, "goToSearchBox": { - "message": "Vai \u00e0 caixa de pesquisa" + "message": "Vai à caixa de pesquisa" }, "gpu": { "message": "GPU" @@ -324,19 +324,19 @@ "message": "Miniaturas HD" }, "header": { - "message": "Cabe\u00e7alho" + "message": "Cabeçalho" }, "hidden": { "message": "Escondido" }, "hiddenOnVideoPage": { - "message": "Escondido na p\u00e1gina do video" + "message": "Escondido na página do video" }, "hideAnimatedThumbnails": { "message": "Esconder miniaturas animadas" }, "hideAnnotations": { - "message": "Esconder anota\u00e7\u00f5es" + "message": "Esconder anotações" }, "hideCards": { "message": "Esconder cartas" @@ -345,31 +345,31 @@ "message": "Esconder detalhes" }, "hideEndscreen": { - "message": "Esconder ec\u00e3n final" + "message": "Esconder ecãn final" }, "hideFeaturedContent": { - "message": "Esconder conte\u00fado" + "message": "Esconder conteúdo" }, "hideFooter": { - "message": "Esconder rodap\u00e9" + "message": "Esconder rodapé" }, "hideGradientBottom": { "message": "Hide Gradient Bottom" }, "hidePlaylist": { - "message": "Esconder lista de reprodu\u00e7\u00e3o" + "message": "Esconder lista de reprodução" }, "hideRightButtons": { - "message": "Esconder bot\u00f5es do lado direito" + "message": "Esconder botões do lado direito" }, "hideScrollForDetails": { - "message": "Esconder \u00abRodar para detalhes\u00bb" + "message": "Esconder «Rodar para detalhes»" }, "hideViewsCount": { - "message": "Esconder n\u00famero de vistos" + "message": "Esconder número de vistos" }, "history": { - "message": "Hist\u00f3ria" + "message": "História" }, "home": { "message": "Casa" @@ -378,19 +378,19 @@ "message": "Aponta" }, "hoverOnVideoPage": { - "message": "Apontar na p\u00e1gina do video" + "message": "Apontar na página do video" }, "howLongAgoTheVideoWasUploaded": { - "message": "\u00c0 quanto tempo o video foi enviado" + "message": "À quanto tempo o video foi enviado" }, "icons": { - "message": "\u00cdcones" + "message": "Ícones" }, "iconsOnly": { - "message": "\u00cdcones apenas" + "message": "Ícones apenas" }, "importSettings": { - "message": "Importar defini\u00e7\u00f5es" + "message": "Importar definições" }, "improveLogo": { "message": "Melhorar logotipo" @@ -399,13 +399,13 @@ "message": "ImprovedTube icon in Browser" }, "improvedtubeIconOnYoutube": { - "message": "\u00cdcon do ImprovedTube no YouTube" + "message": "Ícon do ImprovedTube no YouTube" }, "improvedtubeLanguage": { "message": "Linguagem do ImprovedTube" }, "improvedtubeVersion": { - "message": "Vers\u00e3o do ImprovedTube" + "message": "Versão do ImprovedTube" }, "increasePlaybackSpeed": { "message": "Aumentar velocidade de leitura" @@ -441,7 +441,7 @@ "message": "Gostos" }, "lime": { - "message": "Lim\u00e3o" + "message": "Limão" }, "list": { "message": "Lista" @@ -453,7 +453,7 @@ "message": "Tipo de conversa do vivo" }, "loudnessNormalization": { - "message": "Normaliza\u00e7\u00e3o do volume" + "message": "Normalização do volume" }, "markWatchedVideos": { "message": "Marcar os videos como vistos" @@ -468,22 +468,22 @@ "message": "Nome" }, "nativeMiniPlayer": { - "message": "Leitor pequeno padr\u00e3o" + "message": "Leitor pequeno padrão" }, "new": { "message": "Novo" }, "nextVideo": { - "message": "Pr\u00f3ximo video" + "message": "Próximo video" }, "night": { "message": "Noite" }, "noActiveFeatures": { - "message": "Sem op\u00e7\u00f5es ativas" + "message": "Sem opções ativas" }, "noOpenVideoTabs": { - "message": "N\u00e3o abrir janelas de video" + "message": "Não abrir janelas de video" }, "none": { "message": "Nenhuma" @@ -504,7 +504,7 @@ "message": "Ativo apenas no YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Apenas uma inst\u00e2ncia do leitor de video" + "message": "Apenas uma instância do leitor de video" }, "orange": { "message": "Laranja" @@ -516,7 +516,7 @@ "message": "Outro" }, "permissions": { - "message": "Permiss\u00f5es" + "message": "Permissões" }, "pictureInPicture": { "message": "Janela em janela" @@ -540,22 +540,22 @@ "message": "Leitor" }, "playerColor": { - "message": "C\u00f4r do leitor" + "message": "Côr do leitor" }, "playerSize": { "message": "Tamanho do leitor" }, "playlist": { - "message": "Lista de reprodu\u00e7\u00e3o" + "message": "Lista de reprodução" }, "playlists": { - "message": "Listas de reprodu\u00e7\u00e3o" + "message": "Listas de reprodução" }, "popupPlayer": { "message": "Leitor em janela" }, "position": { - "message": "Posi\u00e7\u00e3o" + "message": "Posição" }, "pressAnyKeyOrScroll": { "message": "Carrega em qualquer tecla ou usa a roldana do rato" @@ -567,7 +567,7 @@ "message": "Video anterior" }, "primaryColor": { - "message": "C\u00f4r primaria" + "message": "Côr primaria" }, "purple": { "message": "Violeta" @@ -600,10 +600,10 @@ "message": "Valores de origem" }, "resetAllSettings": { - "message": "Valores de origem em todas as defini\u00e7\u00f5es" + "message": "Valores de origem em todas as definições" }, "resetAllShortcuts": { - "message": "Rep\u00f4r todos os atalhos" + "message": "Repôr todos os atalhos" }, "reverse": { "message": "Recuar" @@ -621,10 +621,10 @@ "message": "Agendar" }, "screen": { - "message": "Ecr\u00e2n" + "message": "Ecrân" }, "screenshot": { - "message": "Foto do ecr\u00e2n" + "message": "Foto do ecrân" }, "search": { "message": "Pesquisa" @@ -633,16 +633,16 @@ "message": "Apenas barra de pesquisa" }, "seekBackward10Seconds": { - "message": "Andar para tr\u00e1s 10 segundos" + "message": "Andar para trás 10 segundos" }, "seekForward10Seconds": { "message": "Andar para frente 10 segundos" }, "settings": { - "message": "Defini\u00e7\u00f5es" + "message": "Definições" }, "settingsSuccessfullyImported": { - "message": "Defini\u00e7\u00f5es importadas com sucesso" + "message": "Definições importadas com sucesso" }, "shortcuts": { "message": "Atalhos" @@ -660,13 +660,13 @@ "message": "Barra lateral" }, "spacebar": { - "message": "Barra de espa\u00e7os" + "message": "Barra de espaços" }, "squaredUserImages": { "message": "Imagens de utilizador enquadradas" }, "static": { - "message": "Est\u00e1tica" + "message": "Estática" }, "statsForNerds": { "message": "Show Stats for Nerds" @@ -684,28 +684,28 @@ "message": "Estilos" }, "subscriptions": { - "message": "Subscri\u00e7\u00f5es" + "message": "Subscrições" }, "subtitles": { "message": "Legendas" }, "sunset": { - "message": "P\u00f4r do sol" + "message": "Pôr do sol" }, "sunsetToSunrise": { - "message": "P\u00f4r do sol at\u00e9 de manh\u00e3" + "message": "Pôr do sol até de manhã" }, "systemPeferenceDark": { - "message": "Prefer\u00eancias do sistema: Escuro" + "message": "Preferências do sistema: Escuro" }, "systemPeferenceLight": { - "message": "Prefer\u00eancias do sistema: Claro" + "message": "Preferências do sistema: Claro" }, "teal": { "message": "Azul esverdeado" }, "textColor": { - "message": "C\u00f4r do texto" + "message": "Côr do texto" }, "themes": { "message": "Temas" @@ -717,7 +717,7 @@ "message": "Isto vai remover todos os cookies do YouTube" }, "thisWillResetAllSettings": { - "message": "Isto vai reiniciar todas as defini\u00e7\u00f5es." + "message": "Isto vai reiniciar todas as definições." }, "thisWillResetAllShortcuts": { "message": "Isto vai reiniciar todos os atalhos" @@ -744,13 +744,13 @@ "message": "Trailer toca automaticamente" }, "translations": { - "message": "Tradu\u00e7\u00f5es" + "message": "Traduções" }, "transparentBackground": { "message": "Fundo transparente" }, "trending": { - "message": "Tend\u00eancias" + "message": "Tendências" }, "tryToReloadThePage": { "message": "Tenta carregar a pagina de novo" @@ -765,13 +765,13 @@ "message": "Usar formato de 24-horas" }, "version": { - "message": "Vers\u00e3o" + "message": "Versão" }, "video": { "message": "Video" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "A descri\u00e7\u00e3o do video vai ser expandida para ver o nome da categoria" + "message": "A descrição do video vai ser expandida para ver o nome da categoria" }, "videoFormats": { "message": "Formatos de video" @@ -783,10 +783,10 @@ "message": "Volume" }, "watchLater": { - "message": "V\u00ear mais tarde" + "message": "Vêr mais tarde" }, "watchTime": { - "message": "Tempo de visualiza\u00e7\u00e3o" + "message": "Tempo de visualização" }, "whenTabIsChanged": { "message": "Quando a janela mudar" @@ -798,13 +798,13 @@ "message": "Amarelo" }, "youtubeHeaderLeft": { - "message": "Cabe\u00e7alho do YouTube (esquerda)" + "message": "Cabeçalho do YouTube (esquerda)" }, "youtubeHeaderRight": { - "message": "Cabe\u00e7alho do YouTube (direita)" + "message": "Cabeçalho do YouTube (direita)" }, "youtubeHomePage": { - "message": "P\u00e1gina principal do YouTube" + "message": "Página principal do YouTube" }, "youtubeLanguage": { "message": "Linguagem do YouTube" diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 3217f0da8..2cefbd7d1 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -1,15 +1,15 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" @@ -18,16 +18,16 @@ "message": "Despre" }, "accept": { - "message": "Accept\u0103" + "message": "Acceptă" }, "activate": { - "message": "Activeaz\u0103" + "message": "Activează" }, "activateCaptions": { - "message": "Activeaz\u0103 subtitr\u0103rile" + "message": "Activează subtitrările" }, "activateFullscreen": { - "message": "Activeaz\u0103 ecran complet" + "message": "Activează ecran complet" }, "activated": { "message": "Activat" @@ -39,7 +39,7 @@ "message": "Caracteristici active" }, "addScrollToTop": { - "message": "Adaug\u0103 \u00abDeruleaz\u0103 la \u00eenceput\u00bb" + "message": "Adaugă «Derulează la început»" }, "ads": { "message": "Reclame" @@ -57,7 +57,7 @@ "message": "Mereu activ" }, "alwaysShowProgressBar": { - "message": "Arat\u0103 mereu bara de progres" + "message": "Arată mereu bara de progres" }, "amber": { "message": "Amber" @@ -66,7 +66,7 @@ "message": "Analizator" }, "appearance": { - "message": "Aparen\u021be" + "message": "Aparențe" }, "audio": { "message": "Audio" @@ -81,13 +81,13 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pauzeaz\u0103 automat la schimbarea tab-ului" + "message": "Pauzează automat la schimbarea tab-ului" }, "autoplay": { - "message": "Porne\u0219te automat" + "message": "Pornește automat" }, "backupAndReset": { - "message": "Salveaz\u0103 & reseteaz\u0103" + "message": "Salvează & resetează" }, "baseOnSystemColorScheme": { "message": "Bazat pe schema de culori a sistemului" @@ -96,13 +96,13 @@ "message": "Below player" }, "black": { - "message": "\u00cenapoi" + "message": "Înapoi" }, "blacklist": { - "message": "Lista neagr\u0103" + "message": "Lista neagră" }, "blockAll": { - "message": "Blocheaz\u0103 tot" + "message": "Blochează tot" }, "blue": { "message": "Albastru" @@ -111,7 +111,7 @@ "message": "Gri albastru" }, "bluelight": { - "message": "Lumin\u0103 albastr\u0103" + "message": "Lumină albastră" }, "brown": { "message": "Maro" @@ -132,7 +132,7 @@ "message": "Butoane" }, "cancel": { - "message": "Anuleaz\u0103" + "message": "Anulează" }, "categories": { "message": "Categorii" @@ -150,16 +150,16 @@ "message": "Codec h.264" }, "collapseOfSubscriptionSections": { - "message": "\u00cenchide sec\u021biunea de subscrip\u021bii" + "message": "Închide secțiunea de subscripții" }, "collapsed": { - "message": "\u00cenchis" + "message": "Închis" }, "comments": { "message": "Comentarii" }, "confirmationBeforeClosing": { - "message": "Confirm\u0103 \u00eenainte s\u0103 \u00eenchizi" + "message": "Confirmă înainte să închizi" }, "cookies": { "message": "Cookies" @@ -183,16 +183,16 @@ "message": "Cyan" }, "dark": { - "message": "\u00cenchis" + "message": "Închis" }, "darkTheme": { - "message": "Tem\u0103 \u00eenchis\u0103" + "message": "Temă închisă" }, "dateAndTime": { "message": "Data & timpul" }, "dawn": { - "message": "R\u0103s\u0103rit" + "message": "Răsărit" }, "decreasePlaybackSpeed": { "message": "Scade viteza playback-ului" @@ -201,46 +201,46 @@ "message": "Scade volumul" }, "deepOrange": { - "message": "Portocaliu \u00eenchis" + "message": "Portocaliu închis" }, "deepPurple": { - "message": "Mov \u00eenchis" + "message": "Mov închis" }, "defaultChannelTab": { "message": "Tab-ul implicit al canalului" }, "deleteYoutubeCookies": { - "message": "\u0218terge cookie-urile YouTube" + "message": "Șterge cookie-urile YouTube" }, "description": { "message": "Descriere" }, "desert": { - "message": "De\u0219ert" + "message": "Deșert" }, "details": { "message": "Detalii" }, "developerOptions": { - "message": "Op\u021biunile dezvoltatorului" + "message": "Opțiunile dezvoltatorului" }, "device": { "message": "Dispozitiv" }, "dim": { - "message": "\u00centunec\u0103" + "message": "Întunecă" }, "disabled": { "message": "Dezactivat" }, "dislike": { - "message": "Nu \u00eemi place" + "message": "Nu îmi place" }, "doNotChange": { "message": "Nu schimba" }, "donate": { - "message": "Doneaz\u0103" + "message": "Donează" }, "draggable": { "message": "Poate fi tras" @@ -255,25 +255,25 @@ "message": "Activat" }, "enabledForced": { - "message": "Activat (for\u021bat)" + "message": "Activat (forțat)" }, "expanded": { "message": "Deschis" }, "exportSettings": { - "message": "Export\u0103 set\u0103rile" + "message": "Exportă setările" }, "extension": { "message": "Extensie" }, "file": { - "message": "Fi\u0219ier" + "message": "Fișier" }, "filters": { "message": "Filtre" }, "fitToWindow": { - "message": "Potrive\u0219te \u00een fereastr\u0103" + "message": "Potrivește în fereastră" }, "flash": { "message": "Flash" @@ -285,19 +285,19 @@ "message": "Subsol" }, "forceSDR": { - "message": "For\u021beaz\u0103 SDR" + "message": "Forțează SDR" }, "forcedPlaybackSpeed": { - "message": "Vitez\u0103 de playback for\u021bat\u0103" + "message": "Viteză de playback forțată" }, "forcedTheaterMode": { - "message": "Modul teatru for\u021bat" + "message": "Modul teatru forțat" }, "forcedVolume": { - "message": "Volum for\u021bat" + "message": "Volum forțat" }, "foundABug": { - "message": "Ai g\u0103sit un bug?" + "message": "Ai găsit un bug?" }, "fullWindow": { "message": "Ecran complet" @@ -306,13 +306,13 @@ "message": "General" }, "geoPreference": { - "message": "Preferin\u021be Geo" + "message": "Preferințe Geo" }, "github": { "message": "GitHub" }, "goToSearchBox": { - "message": "Du-te la casu\u021ba de c\u0103utare" + "message": "Du-te la casuța de căutare" }, "gpu": { "message": "GPU" @@ -321,7 +321,7 @@ "message": "Verde" }, "hdThumbnail": { - "message": "Miniatur\u0103 HD" + "message": "Miniatură HD" }, "hdThumbnails": { "message": "Miniaturi HD" @@ -339,7 +339,7 @@ "message": "Ascunde miniaturile animate" }, "hideAnnotations": { - "message": "Ascunde adnot\u0103rile" + "message": "Ascunde adnotările" }, "hideCards": { "message": "Ascunde cardurile" @@ -351,7 +351,7 @@ "message": "Ascunde ecranul de final" }, "hideFeaturedContent": { - "message": "Ascunde con\u021binutul prezentat" + "message": "Ascunde conținutul prezentat" }, "hideFooter": { "message": "Ascunde subsolul" @@ -366,16 +366,16 @@ "message": "Ascunde butoanele din dreapta" }, "hideScrollForDetails": { - "message": "Ascunde \u00abDeruleaz\u0103 pentru detalii\u00bb" + "message": "Ascunde «Derulează pentru detalii»" }, "hideViewsCount": { - "message": "Ascunde num\u0103rul vizualiz\u0103rilor" + "message": "Ascunde numărul vizualizărilor" }, "history": { "message": "Istoric" }, "home": { - "message": "Acas\u0103" + "message": "Acasă" }, "hover": { "message": "Hover" @@ -384,25 +384,25 @@ "message": "Hover pe pagina video" }, "howLongAgoTheVideoWasUploaded": { - "message": "Acum c\u00e2t timp a fost \u00eenc\u0103rcat videoclipul" + "message": "Acum cât timp a fost încărcat videoclipul" }, "icons": { - "message": "Iconi\u021be" + "message": "Iconițe" }, "iconsOnly": { - "message": "Doar iconi\u021be" + "message": "Doar iconițe" }, "importSettings": { - "message": "Import\u0103 set\u0103rile" + "message": "Importă setările" }, "improveLogo": { - "message": "\u00cembun\u0103t\u0103\u021be\u0219te sigla" + "message": "Îmbunătățește sigla" }, "improvedtubeIconInBrowser": { - "message": "Iconi\u021ba ImprovedTube \u00een browser" + "message": "Iconița ImprovedTube în browser" }, "improvedtubeIconOnYoutube": { - "message": "Iconi\u021ba ImprovedTube pe YouTube" + "message": "Iconița ImprovedTube pe YouTube" }, "improvedtubeLanguage": { "message": "Limba ImprovedTube" @@ -411,10 +411,10 @@ "message": "Versiunea ImprovedTube" }, "increasePlaybackSpeed": { - "message": "Cre\u0219te viteza de playback" + "message": "Crește viteza de playback" }, "increaseVolume": { - "message": "Cre\u0219te volumul" + "message": "Crește volumul" }, "indigo": { "message": "Indigo" @@ -438,7 +438,7 @@ "message": "Verde deschis" }, "like": { - "message": "\u00cemi place" + "message": "Îmi place" }, "likes": { "message": "Like-uri" @@ -447,7 +447,7 @@ "message": "Lime" }, "list": { - "message": "List\u0103" + "message": "Listă" }, "liveChat": { "message": "Chat live" @@ -456,10 +456,10 @@ "message": "Chat live scrie" }, "loudnessNormalization": { - "message": "Normalizeaz\u0103 zgomotul" + "message": "Normalizează zgomotul" }, "markWatchedVideos": { - "message": "Marcheaz\u0103 videoclipurile v\u0103zute" + "message": "Marchează videoclipurile văzute" }, "mixer": { "message": "Mixer" @@ -477,13 +477,13 @@ "message": "Nou" }, "nextVideo": { - "message": "Urm\u0103torul video" + "message": "Următorul video" }, "night": { "message": "Noapte" }, "noActiveFeatures": { - "message": "Nici o caracteristic\u0103 activat\u0103" + "message": "Nici o caracteristică activată" }, "noOpenVideoTabs": { "message": "Niciun tab video deschis" @@ -507,10 +507,10 @@ "message": "Activ doar pe YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Doar o instan\u021b\u0103 de player care merge" + "message": "Doar o instanță de player care merge" }, "openPopupPlayer": { - "message": "Deschide videoclipul/playlistul \u00eentr-o fereastr\u0103 nou\u0103" + "message": "Deschide videoclipul/playlistul într-o fereastră nouă" }, "orange": { "message": "Portocaliu" @@ -534,10 +534,10 @@ "message": "Simplu" }, "platform": { - "message": "Platform\u0103" + "message": "Platformă" }, "playPause": { - "message": "Red\u0103 / Pauz\u0103" + "message": "Redă / Pauză" }, "playbackSpeed": { "message": "Viteza playbackului" @@ -549,7 +549,7 @@ "message": "Culoare player" }, "playerSize": { - "message": "M\u0103rime player" + "message": "Mărime player" }, "playlist": { "message": "Playlist" @@ -561,19 +561,19 @@ "message": "Player popup" }, "position": { - "message": "Pozi\u021bie" + "message": "Poziție" }, "pressAnyKeyOrScroll": { - "message": "Apas\u0103 orice buton sau folose\u0219te roti\u021ba mouseului." + "message": "Apasă orice buton sau folosește rotița mouseului." }, "pressAnyKeyOrUseMouseWheel": { - "message": "Apas\u0103 orice buton sau folose\u0219te roti\u021ba mouseului" + "message": "Apasă orice buton sau folosește rotița mouseului" }, "previousVideo": { "message": "Videoclipul anterior" }, "primaryColor": { - "message": "Culoarea primar\u0103" + "message": "Culoarea primară" }, "purple": { "message": "Mov" @@ -585,43 +585,43 @@ "message": "RAM" }, "rateUs": { - "message": "D\u0103-ne o not\u0103" + "message": "Dă-ne o notă" }, "red": { - "message": "Ro\u0219u" + "message": "Roșu" }, "redDislikeButton": { - "message": "Arat\u0103 butonul nu \u00eemi place cu culoare ro\u0219ie" + "message": "Arată butonul nu îmi place cu culoare roșie" }, "relatedVideos": { - "message": "Videoclipuri asem\u0103n\u0103toare" + "message": "Videoclipuri asemănătoare" }, "removeRelatedSearchResults": { - "message": "Elimin\u0103 rezultatele asem\u0103n\u0103toare a c\u0103ut\u0103rii" + "message": "Elimină rezultatele asemănătoare a căutării" }, "repeat": { - "message": "Repet\u0103" + "message": "Repetă" }, "reset": { - "message": "Reseteaz\u0103" + "message": "Resetează" }, "resetAllSettings": { - "message": "Reseteaz\u0103 toate set\u0103rile" + "message": "Resetează toate setările" }, "resetAllShortcuts": { - "message": "Reseteaz\u0103 toate scurt\u0103turile" + "message": "Resetează toate scurtăturile" }, "reverse": { "message": "Invers" }, "rotate": { - "message": "Rote\u0219te" + "message": "Rotește" }, "save": { - "message": "Salveaz\u0103" + "message": "Salvează" }, "saveAs": { - "message": "Salveaz\u0103 ca" + "message": "Salvează ca" }, "schedule": { "message": "Program" @@ -630,52 +630,52 @@ "message": "Ecran" }, "screenshot": { - "message": "Captur\u0103 de ecran" + "message": "Captură de ecran" }, "search": { - "message": "Caut\u0103" + "message": "Caută" }, "searchBarOnly": { - "message": "Doar bara de c\u0103utare" + "message": "Doar bara de căutare" }, "seekBackward10Seconds": { - "message": "Sari \u00eenapoi 10 secunde" + "message": "Sari înapoi 10 secunde" }, "seekForward10Seconds": { - "message": "Sari \u00eenainte 10 secunde" + "message": "Sari înainte 10 secunde" }, "settings": { - "message": "Set\u0103ri" + "message": "Setări" }, "settingsSuccessfullyImported": { - "message": "Set\u0103rile au fost importate cu succes" + "message": "Setările au fost importate cu succes" }, "shortcuts": { - "message": "Scurt\u0103turi" + "message": "Scurtături" }, "showCardsOnMouseHover": { - "message": "Arat\u0103 cardurile la hover-ul cu mouseul" + "message": "Arată cardurile la hover-ul cu mouseul" }, "showChannelVideosCount": { - "message": "Arat\u0103 num\u0103rul de videoclipuri al canalului" + "message": "Arată numărul de videoclipuri al canalului" }, "shuffle": { - "message": "Amestec\u0103" + "message": "Amestecă" }, "sidebar": { - "message": "Bara lateral\u0103" + "message": "Bara laterală" }, "spacebar": { - "message": "Bara de spa\u021biu" + "message": "Bara de spațiu" }, "squaredUserImages": { - "message": "Avatarele utilizatorului p\u0103trat" + "message": "Avatarele utilizatorului pătrat" }, "static": { "message": "Static" }, "statsForNerds": { - "message": "Arat\u0103 Statisticile pentru Tocilari" + "message": "Arată Statisticile pentru Tocilari" }, "step": { "message": "Pas" @@ -693,19 +693,19 @@ "message": "Abonamente" }, "subtitles": { - "message": "Subtitr\u0103ri" + "message": "Subtitrări" }, "sunset": { "message": "Apus" }, "sunsetToSunrise": { - "message": "De la apus la r\u0103s\u0103rit" + "message": "De la apus la răsărit" }, "systemPeferenceDark": { - "message": "Preferin\u021ba sitemului: \u00eenchis" + "message": "Preferința sitemului: închis" }, "systemPeferenceLight": { - "message": "Preferin\u021ba sitemului: deschis" + "message": "Preferința sitemului: deschis" }, "teal": { "message": "Teal" @@ -717,16 +717,16 @@ "message": "Teme" }, "thisWillRemoveAllCookies": { - "message": "Asta va \u0219terge toate cookie-urile." + "message": "Asta va șterge toate cookie-urile." }, "thisWillRemoveAllYouTubeCookies": { - "message": "Asta va \u0219terge toate cooki-urile YouTube." + "message": "Asta va șterge toate cooki-urile YouTube." }, "thisWillResetAllSettings": { - "message": "Asta va reseta toate set\u0103rile." + "message": "Asta va reseta toate setările." }, "thisWillResetAllShortcuts": { - "message": "Asta va \u0219terge toate scurt\u0103turile" + "message": "Asta va șterge toate scurtăturile" }, "thumbnails": { "message": "Miniaturi" @@ -735,19 +735,19 @@ "message": "Timp de la" }, "timeTo": { - "message": "Timp p\u00e2n\u0103 la" + "message": "Timp până la" }, "todayAt": { "message": "Azi la" }, "toggleCards": { - "message": "Comut\u0103 cardurile" + "message": "Comută cardurile" }, "topChat": { "message": "Top chat" }, "trailerAutoplay": { - "message": "Auto-red\u0103 trailerul" + "message": "Auto-redă trailerul" }, "translations": { "message": "Traduceri" @@ -756,19 +756,19 @@ "message": "Fundal Transparent" }, "trending": { - "message": "Tendin\u021be" + "message": "Tendințe" }, "tryToReloadThePage": { - "message": "\u00cencearc\u0103 s\u0103 re\u00eemprosp\u0103tezi pagina" + "message": "Încearcă să reîmprospătezi pagina" }, "type": { "message": "Scrie" }, "upNextAutoplay": { - "message": "Urmeaz\u0103" + "message": "Urmează" }, "use24HourFormat": { - "message": "Folose\u0219te formatul de 24 de ore" + "message": "Folosește formatul de 24 de ore" }, "version": { "message": "Versiune" @@ -777,7 +777,7 @@ "message": "Video" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Descrip\u021bia videoclipului va fi extins\u0103 pentru a afla numele categoriei" + "message": "Descripția videoclipului va fi extinsă pentru a afla numele categoriei" }, "videoFormats": { "message": "Formatul videoclipului" @@ -789,13 +789,13 @@ "message": "Volum" }, "watchLater": { - "message": "Vezi mai t\u00e2rziu" + "message": "Vezi mai târziu" }, "watchTime": { "message": "Timp de vizionare" }, "whenTabIsChanged": { - "message": "C\u00e2nd tabul este schimbat" + "message": "Când tabul este schimbat" }, "white": { "message": "Alb" @@ -804,7 +804,7 @@ "message": "Galben" }, "youtubeHeaderLeft": { - "message": "Antetul YouTube (st\u00e2nga)" + "message": "Antetul YouTube (stânga)" }, "youtubeHeaderRight": { "message": "Antetul YouTube (dreapta)" @@ -813,9 +813,9 @@ "message": "Pagina de pornire YouTube" }, "youtubeLanguage": { - "message": "Limba de afi\u0219are YouTube" + "message": "Limba de afișare YouTube" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limiteaz\u0103 calitatea videoclipului la 1080p pentru codecul h.264" + "message": "YouTube limitează calitatea videoclipului la 1080p pentru codecul h.264" } } \ No newline at end of file diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 240e96b20..bc6a5a9cc 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -1,672 +1,672 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { - "message": "\u041e\u0431 ImprovedTube" + "message": "Об ImprovedTube" }, "accept": { - "message": "\u041f\u0440\u0438\u043d\u044f\u0442\u044c" + "message": "Принять" }, "activate": { - "message": "\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c" + "message": "Активировать" }, "activateCaptions": { - "message": "\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b" + "message": "Активировать субтитры" }, "activateFullscreen": { - "message": "\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u043f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c" + "message": "Перейти в полноэкранный режим" }, "activated": { - "message": "\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043e" + "message": "Активировано" }, "activatedFeatures": { - "message": "\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438" + "message": "Активированные функции" }, "activeFeatures": { - "message": "\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438" + "message": "Активные функции" }, "addScrollToTop": { - "message": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u00ab\u043d\u0430\u0432\u0435\u0440\u0445\u00bb" + "message": "Добавить кнопку «наверх»" }, "ads": { - "message": "\u0420\u0435\u043a\u043b\u0430\u043c\u0430" + "message": "Реклама" }, "all": { - "message": "\u0412\u0441\u0435" + "message": "Все" }, "allow": { - "message": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c" + "message": "Разрешить" }, "allow60fps": { - "message": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c 60fps" + "message": "Разрешить 60fps" }, "alwaysActive": { - "message": "\u0412\u0441\u0435\u0433\u0434\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439" + "message": "Всегда активный" }, "alwaysShowProgressBar": { - "message": "\u0412\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441-\u0431\u0430\u0440" + "message": "Всегда показывать прогресс-бар" }, "amber": { - "message": "\u042f\u043d\u0442\u0430\u0440\u043d\u044b\u0439" + "message": "Янтарный" }, "analyzer": { - "message": "\u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440" + "message": "Анализатор" }, "appearance": { - "message": "\u0412\u043d\u0435\u0448\u043d\u0438\u0439 \u0432\u0438\u0434" + "message": "Внешний вид" }, "audio": { - "message": "\u0410\u0443\u0434\u0438\u043e" + "message": "Аудио" }, "audioFormats": { - "message": "\u0410\u0443\u0434\u0438\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u044b" + "message": "Аудио форматы" }, "auto": { - "message": "\u0410\u0432\u0442\u043e" + "message": "Авто" }, "autoFullscreen": { - "message": "\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0432 \u043f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c" + "message": "Автоматический переход в полноэкранный режим" }, "autopauseWhenSwitchingTabs": { - "message": "\u0410\u0432\u0442\u043e\u043f\u0430\u0443\u0437\u0430 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043c\u0435\u0436\u0434\u0443 \u0432\u043a\u043b\u0430\u0434\u043a\u0430\u043c\u0438" + "message": "Автопауза при переходе между вкладками" }, "autoplay": { - "message": "\u0410\u0432\u0442\u043e\u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435" + "message": "Автовоспроизведение" }, "backupAndReset": { - "message": "\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0441\u0431\u0440\u043e\u0441" + "message": "Резервное копирование и сброс" }, "baseOnSystemColorScheme": { - "message": "\u0417\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u0441\u0445\u0435\u043c\u044b" + "message": "Зависит от системной цветовой схемы" }, "belowPlayer": { - "message": "\u041d\u0438\u0436\u0435 \u043f\u043b\u0435\u0435\u0440\u0430" + "message": "Ниже плеера" }, "black": { - "message": "\u0427\u0435\u0440\u043d\u044b\u0439" + "message": "Черный" }, "blacklist": { - "message": "\u0427\u0435\u0440\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a" + "message": "Черный список" }, "blockAll": { - "message": "\u0417\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0451" + "message": "Заблокировать всё" }, "blue": { - "message": "\u0421\u0438\u043d\u0438\u0439" + "message": "Синий" }, "blueGray": { - "message": "\u0421\u0435\u0440\u043e-\u0433\u043e\u043b\u0443\u0431\u043e\u0439" + "message": "Серо-голубой" }, "bluelight": { - "message": "\u0421\u0438\u043d\u0438\u0439 \u0441\u0432\u0435\u0442" + "message": "Синий свет" }, "brown": { - "message": "\u041a\u043e\u0440\u0438\u0447\u043d\u0435\u0432\u044b\u0439" + "message": "Коричневый" }, "browser": { - "message": "\u0411\u0440\u0430\u0443\u0437\u0435\u0440" + "message": "Браузер" }, "browserVersion": { - "message": "\u0412\u0435\u0440\u0441\u0438\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430" + "message": "Версия браузера" }, "bubbles": { - "message": "\u041f\u0443\u0437\u044b\u0440\u0438" + "message": "Пузыри" }, "bug": { - "message": "\u041e\u0448\u0438\u0431\u043a\u0430" + "message": "Ошибка" }, "buttons": { - "message": "\u041a\u043d\u043e\u043f\u043a\u0438" + "message": "Кнопки" }, "cancel": { - "message": "\u041e\u0442\u043c\u0435\u043d\u0430" + "message": "Отмена" }, "categories": { - "message": "\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438" + "message": "Категории" }, "channel": { - "message": "\u041a\u0430\u043d\u0430\u043b" + "message": "Канал" }, "channels": { - "message": "\u041a\u0430\u043d\u0430\u043b\u044b" + "message": "Каналы" }, "clipboard": { - "message": "\u0411\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430" + "message": "Буфер обмена" }, "codecH264": { - "message": "\u041a\u043e\u0434\u0435\u043a h.264" + "message": "Кодек h.264" }, "collapseOfSubscriptionSections": { - "message": "\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b \u043f\u043e\u0434\u043f\u0438\u0441\u043e\u043a" + "message": "Свернуть раздел подписок" }, "collapsed": { - "message": "\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c" + "message": "Свернуть" }, "comments": { - "message": "\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438" + "message": "Комментарии" }, "confirmationBeforeClosing": { - "message": "\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f" + "message": "Подтверждение закрытия" }, "cookies": { - "message": "\u041a\u0443\u043a\u0438" + "message": "Куки" }, "cores": { - "message": "\u042f\u0434\u0440\u0430" + "message": "Ядра" }, "cropChapterTitles": { - "message": "\u041e\u0431\u0440\u0435\u0437\u0430\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0433\u043b\u0430\u0432" + "message": "Обрезать заголовки глав" }, "customCss": { "message": "Custom CSS" }, "customJs": { - "message": "\u0421ustom JS" + "message": "Сustom JS" }, "customMiniPlayer": { - "message": "\u041d\u043e\u0432\u044b\u0439 \u043c\u0438\u043d\u0438-\u043f\u043b\u0435\u0435\u0440" + "message": "Новый мини-плеер" }, "cyan": { - "message": "\u0421\u0438\u043d\u0435-\u0437\u0435\u043b\u0451\u043d\u044b\u0439" + "message": "Сине-зелёный" }, "dark": { - "message": "\u0422\u0435\u043c\u043d\u0430\u044f" + "message": "Темная" }, "darkTheme": { - "message": "\u041d\u043e\u0447\u043d\u0430\u044f \u0442\u0435\u043c\u0430" + "message": "Ночная тема" }, "dateAndTime": { - "message": "\u0414\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043c\u044f" + "message": "Дата и время" }, "dawn": { - "message": "\u0420\u0430\u0441\u0441\u0432\u0435\u0442" + "message": "Рассвет" }, "decreasePlaybackSpeed": { - "message": "\u0423\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u0438\u0434\u0435\u043e" + "message": "Уменьшить скорость видео" }, "decreaseVolume5": { - "message": "\u0423\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c \u043d\u0430 5%" + "message": "Уменьшить громкость на 5%" }, "deepOrange": { - "message": "\u0422\u0435\u043c\u043d\u043e-\u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439" + "message": "Темно-оранжевый" }, "deepPurple": { - "message": "\u0422\u0435\u043c\u043d\u043e-\u0444\u0438\u043e\u043b\u0435\u0442\u043e\u0432\u044b\u0439" + "message": "Темно-фиолетовый" }, "defaultChannelTab": { - "message": "\u0412\u043a\u043b\u0430\u0434\u043a\u0430 \u043a\u0430\u043d\u0430\u043b\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e" + "message": "Вкладка канала по умолчанию" }, "deleteYoutubeCookies": { - "message": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043a\u0443\u043a\u0438 YouTube" + "message": "Удалить куки YouTube" }, "description": { - "message": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435" + "message": "Описание" }, "desert": { - "message": "\u041f\u0443\u0441\u0442\u044b\u043d\u044f" + "message": "Пустыня" }, "details": { - "message": "\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f" + "message": "Подробная информация" }, "developerOptions": { - "message": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430" + "message": "Настройки разработчика" }, "device": { - "message": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e" + "message": "Устройство" }, "dim": { - "message": "\u0422\u0443\u0441\u043a\u043b\u043e\u0441\u0442\u044c" + "message": "Тусклость" }, "disabled": { - "message": "\u0412\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043e" + "message": "Выключено" }, "dislike": { - "message": "\u0414\u0438\u0437\u043b\u0430\u0439\u043a" + "message": "Дизлайк" }, "doNotChange": { - "message": "\u041d\u0435 \u043c\u0435\u043d\u044f\u0442\u044c" + "message": "Не менять" }, "donate": { - "message": "\u041f\u043e\u0436\u0435\u0440\u0442\u0432\u043e\u0432\u0430\u0442\u044c" + "message": "Пожертвовать" }, "draggable": { - "message": "\u041f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0435\u043c\u044b\u0439" + "message": "Перетаскиваемый" }, "email": { "message": "Email" }, "empty": { - "message": "\u041f\u0443\u0441\u0442\u043e" + "message": "Пусто" }, "enabled": { - "message": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u043e" + "message": "Включено" }, "enabledForced": { - "message": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u043e (\u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e)" + "message": "Включено (принудительно)" }, "expanded": { - "message": "\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c" + "message": "Развернуть" }, "exportSettings": { - "message": "\u042d\u043a\u0441\u043f\u043e\u0440\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a" + "message": "Экспорт настроек" }, "extension": { - "message": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435" + "message": "Расширение" }, "file": { - "message": "\u0424\u0430\u0439\u043b" + "message": "Файл" }, "filters": { - "message": "\u0424\u0438\u043b\u044c\u0442\u0440\u044b" + "message": "Фильтры" }, "fitToWindow": { - "message": "\u041f\u043e\u0434\u043e\u0433\u043d\u0430\u0442\u044c \u043f\u043e\u0434 \u043e\u043a\u043d\u043e" + "message": "Подогнать под окно" }, "flash": { "message": "Flash" }, "font": { - "message": "\u0428\u0440\u0438\u0444\u0442" + "message": "Шрифт" }, "footer": { - "message": "\u041d\u0438\u0436\u043d\u0438\u0439 \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b" + "message": "Нижний колонтитул" }, "forceSDR": { "message": "Force SDR" }, "forcedPlaybackSpeed": { - "message": "\u0424\u043e\u0440\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f" + "message": "Форсировать скорость воспроизведения" }, "forcedTheaterMode": { - "message": "\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u0440\u0435\u0436\u0438\u043c \u043a\u0438\u043d\u043e" + "message": "Принудительно переходить в режим кино" }, "forcedVolume": { - "message": "\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c" + "message": "Принудительная громкость" }, "foundABug": { - "message": "\u041d\u0430\u0448\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0443?" + "message": "Нашли ошибку?" }, "fullWindow": { - "message": "\u0420\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u0432\u0441\u0435 \u043e\u043a\u043d\u043e" + "message": "Растянуть на все окно" }, "general": { - "message": "\u041e\u0431\u0449\u0435\u0435" + "message": "Общее" }, "github": { "message": "GitHub" }, "goToSearchBox": { - "message": "\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u043e\u043a\u043d\u043e \u043f\u043e\u0438\u0441\u043a\u0430" + "message": "Перейти в окно поиска" }, "gpu": { "message": "GPU" }, "green": { - "message": "\u0417\u0435\u043b\u0435\u043d\u044b\u0439" + "message": "Зеленый" }, "hdThumbnail": { - "message": "\u041f\u0440\u0435\u0432\u044c\u044e \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430" + "message": "Превью высокого качества" }, "hdThumbnails": { - "message": "\u041f\u0440\u0435\u0432\u044c\u044e \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430" + "message": "Превью высокого качества" }, "header": { - "message": "\u0412\u0435\u0440\u0445\u043d\u044f\u044f \u043f\u0430\u043d\u0435\u043b\u044c" + "message": "Верхняя панель" }, "hidden": { - "message": "\u0421\u043a\u0440\u044b\u0442\u044c" + "message": "Скрыть" }, "hiddenOnVideoPage": { - "message": "\u0421\u043a\u0440\u044b\u0442\u044c (\u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0441 \u0432\u0438\u0434\u0435\u043e)" + "message": "Скрыть (только на странице с видео)" }, "hideAnimatedThumbnails": { - "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0435\u0432\u044c\u044e" + "message": "Скрыть анимированные превью" }, "hideAnnotations": { - "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438" + "message": "Скрыть аннотации" }, "hideCards": { - "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438" + "message": "Скрыть карточки" }, "hideDetails": { - "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e" + "message": "Скрыть подробную информацию" }, "hideEndscreen": { - "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u044d\u043a\u0440\u0430\u043d \u043f\u043e\u0441\u043b\u0435 \u0432\u0438\u0434\u0435\u043e" + "message": "Скрыть экран после видео" }, "hideFeaturedContent": { - "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438" + "message": "Скрыть рекомендации" }, "hideFooter": { - "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u043d\u0438\u0436\u043d\u0438\u0439 \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b" + "message": "Скрыть нижний колонтитул" }, "hideGradientBottom": { "message": "Hide Gradient Bottom" }, "hidePlaylist": { - "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u043f\u043b\u0435\u0439\u043b\u0438\u0441\u0442" + "message": "Скрыть плейлист" }, "hideRightButtons": { - "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0438 (\u0441\u043f\u0440\u0430\u0432\u0430)" + "message": "Скрыть кнопки (справа)" }, "hideScrollForDetails": { - "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u00ab\u041f\u0440\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u0435 \u0434\u043b\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438\u00bb" + "message": "Скрыть «Прокрутите для подробной информации»" }, "hideViewsCount": { - "message": "\u0421\u043a\u0440\u044b\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u0432" + "message": "Скрыть количество просмотров" }, "history": { - "message": "\u0418\u0441\u0442\u043e\u0440\u0438\u044f" + "message": "История" }, "home": { - "message": "\u0414\u043e\u043c\u0430\u0448\u043d\u044f\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430" + "message": "Домашняя страница" }, "hover": { - "message": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0438" + "message": "Показывать при наведении" }, "hoverOnVideoPage": { - "message": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0438 (\u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0441 \u0432\u0438\u0434\u0435\u043e)" + "message": "Показывать при наведении (только на странице с видео)" }, "howLongAgoTheVideoWasUploaded": { - "message": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043e \u0432\u0438\u0434\u0435\u043e" + "message": "Показывать как давно было загружено видео" }, "icons": { - "message": "\u0418\u043a\u043e\u043d\u043a\u0438" + "message": "Иконки" }, "iconsOnly": { - "message": "\u0422\u043e\u043b\u044c\u043a\u043e \u0438\u043a\u043e\u043d\u043a\u0438" + "message": "Только иконки" }, "importSettings": { - "message": "\u0418\u043c\u043f\u043e\u0440\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a" + "message": "Импорт настроек" }, "improveLogo": { - "message": "\u0423\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043b\u043e\u0433\u043e\u0442\u0438\u043f YouTube" + "message": "Улучшить логотип YouTube" }, "improvedtubeIconInBrowser": { - "message": "\u0417\u043d\u0430\u0447\u043e\u043a ImprovedTube \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435" + "message": "Значок ImprovedTube в браузере" }, "improvedtubeIconOnYoutube": { - "message": "\u0417\u043d\u0430\u0447\u043e\u043a ImprovedTube \u0432 YouTube" + "message": "Значок ImprovedTube в YouTube" }, "improvedtubeLanguage": { - "message": "\u042f\u0437\u044b\u043a ImprovedTube" + "message": "Язык ImprovedTube" }, "improvedtubeVersion": { - "message": "\u0412\u0435\u0440\u0441\u0438\u044f ImprovedTube" + "message": "Версия ImprovedTube" }, "increasePlaybackSpeed": { - "message": "\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u0438\u0434\u0435\u043e" + "message": "Увеличить скорость видео" }, "increaseVolume5": { - "message": "\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u0438 \u043d\u0430 5%" + "message": "Увеличить громкости на 5%" }, "indigo": { - "message": "\u0418\u043d\u0434\u0438\u0433\u043e" + "message": "Индиго" }, "items": { "message": "Items" }, "languages": { - "message": "\u042f\u0437\u044b\u043a\u0438" + "message": "Языки" }, "legacyYoutube": { - "message": "\u0421\u0442\u0430\u0440\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f YouTube" + "message": "Старая версия YouTube" }, "light": { - "message": "\u0421\u0432\u0435\u0442\u043b\u0430\u044f" + "message": "Светлая" }, "lightBlue": { - "message": "\u0421\u0432\u0435\u0442\u043b\u043e-\u0441\u0438\u043d\u0438\u0439" + "message": "Светло-синий" }, "lightGreen": { - "message": "\u0421\u0432\u0435\u0442\u043b\u043e-\u0437\u0435\u043b\u0435\u043d\u044b\u0439" + "message": "Светло-зеленый" }, "like": { - "message": "\u041b\u0430\u0439\u043a" + "message": "Лайк" }, "likes": { - "message": "\u041b\u0430\u0439\u043a\u0438" + "message": "Лайки" }, "lime": { - "message": "\u041b\u0430\u0439\u043c" + "message": "Лайм" }, "list": { - "message": "\u0421\u043f\u0438\u0441\u043e\u043a" + "message": "Список" }, "liveChat": { - "message": "Live-\u0447\u0430\u0442" + "message": "Live-чат" }, "liveChatType": { - "message": "\u0422\u0438\u043f live-\u0447\u0430\u0442\u0430" + "message": "Тип live-чата" }, "loudnessNormalization": { - "message": "\u041d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c" + "message": "Нормализировать громкость" }, "markWatchedVideos": { - "message": "\u041e\u0442\u043c\u0435\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0435 \u0432\u0438\u0434\u0435\u043e" + "message": "Отмечать просмотренные видео" }, "mixer": { - "message": "\u041c\u0438\u043a\u0441\u0435\u0440" + "message": "Миксер" }, "myColors": { - "message": "\u041c\u043e\u0438 \u0446\u0432\u0435\u0442\u0430" + "message": "Мои цвета" }, "name": { - "message": "\u0418\u043c\u044f" + "message": "Имя" }, "nativeMiniPlayer": { - "message": "\u041c\u0438\u043d\u0438-\u043f\u043b\u0435\u0435\u0440 \u043e\u0442 YouTube" + "message": "Мини-плеер от YouTube" }, "new": { - "message": "\u041d\u043e\u0432\u044b\u0439" + "message": "Новый" }, "nextVideo": { - "message": "\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0432\u0438\u0434\u0435\u043e" + "message": "Следующее видео" }, "night": { - "message": "\u041d\u043e\u0447\u044c" + "message": "Ночь" }, "noActiveFeatures": { - "message": "\u041d\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439" + "message": "Нет активных функций" }, "noOpenVideoTabs": { - "message": "\u041d\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0432\u043a\u043b\u0430\u0434\u043e\u043a \u0441 \u0432\u0438\u0434\u0435\u043e" + "message": "Нет открытых вкладок с видео" }, "none": { - "message": "\u041f\u0443\u0441\u0442\u043e" + "message": "Пусто" }, "normal": { - "message": "\u041e\u0431\u044b\u0447\u043d\u044b\u0439" + "message": "Обычный" }, "old": { - "message": "\u0421\u0442\u0430\u0440\u044b\u0439" + "message": "Старый" }, "onAllVideos": { - "message": "\u0412\u043e \u0432\u0441\u0435\u0445 \u0432\u0438\u0434\u0435\u043e" + "message": "Во всех видео" }, "onSubscribedChannels": { - "message": "\u0422\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u0430\u0445 \u0432 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430\u0445" + "message": "Только на каналах в подписках" }, "onlyActiveOnYoutube": { - "message": "\u0410\u043a\u0442\u0438\u0432\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 YouTube" + "message": "Активен только в YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "\u0422\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043f\u043b\u0435\u0435\u0440\u0430 \u0438\u0433\u0440\u0430\u0435\u0442" + "message": "Только один экземпляр плеера играет" }, "orange": { - "message": "\u041e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439" + "message": "Оранжевый" }, "os": { - "message": "\u041e\u0421" + "message": "ОС" }, "other": { - "message": "\u0414\u0440\u0443\u0433\u043e\u0435" + "message": "Другое" }, "permissions": { - "message": "\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f" + "message": "Разрешения" }, "pictureInPicture": { - "message": "\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0432 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435" + "message": "Картинка в картинке" }, "pink": { - "message": "\u0420\u043e\u0437\u043e\u0432\u044b\u0439" + "message": "Розовый" }, "plain": { - "message": "\u0420\u0430\u0432\u043d\u0438\u043d\u0430" + "message": "Равнина" }, "platform": { - "message": "\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430" + "message": "Платформа" }, "playPause": { - "message": "\u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 / \u041f\u0430\u0443\u0437\u0430" + "message": "Воспроизведение / Пауза" }, "playbackSpeed": { - "message": "\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f" + "message": "Скорость воспроизведения" }, "player": { - "message": "\u041f\u043b\u0435\u0435\u0440" + "message": "Плеер" }, "playerColor": { - "message": "\u0426\u0432\u0435\u0442 \u043f\u043b\u0435\u0435\u0440\u0430" + "message": "Цвет плеера" }, "playerSize": { - "message": "\u0420\u0430\u0437\u043c\u0435\u0440 \u043f\u043b\u0435\u0435\u0440\u0430" + "message": "Размер плеера" }, "playlist": { - "message": "\u041f\u043b\u0435\u0439\u043b\u0438\u0441\u0442" + "message": "Плейлист" }, "playlists": { - "message": "\u041f\u043b\u0435\u0439\u043b\u0438\u0441\u0442\u044b" + "message": "Плейлисты" }, "popupPlayer": { - "message": "\u041f\u043b\u0435\u0435\u0440 \u0432\u043e \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0435\u043c \u043e\u043a\u043d\u0435" + "message": "Плеер во всплывающем окне" }, "position": { - "message": "\u041f\u043e\u0437\u0438\u0446\u0438\u044f" + "message": "Позиция" }, "pressAnyKeyOrScroll": { - "message": "\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043b\u044e\u0431\u0443\u044e \u043a\u043b\u0430\u0432\u0438\u0448\u0443 \u0438\u043b\u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u043a\u043e\u043b\u0435\u0441\u043e\u043c \u043c\u044b\u0448\u0438" + "message": "Нажмите любую клавишу или воспользуйтесь колесом мыши" }, "pressAnyKeyOrUseMouseWheel": { - "message": "\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043b\u044e\u0431\u0443\u044e \u043a\u043b\u0430\u0432\u0438\u0448\u0443 \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u043e\u043b\u0435\u0441\u043e \u043c\u044b\u0448\u0438" + "message": "Нажмите любую клавишу или используйте колесо мыши" }, "previousVideo": { - "message": "\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0435 \u0432\u0438\u0434\u0435\u043e" + "message": "Предыдущее видео" }, "primaryColor": { - "message": "\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0432\u0435\u0442" + "message": "Основной цвет" }, "purple": { - "message": "\u0424\u0438\u043e\u043b\u0435\u0442\u043e\u0432\u044b\u0439" + "message": "Фиолетовый" }, "quality": { - "message": "\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e" + "message": "Качество" }, "ram": { "message": "RAM" }, "rateUs": { - "message": "\u041e\u0446\u0435\u043d\u0438\u0442\u0435 \u043d\u0430\u0441" + "message": "Оцените нас" }, "red": { - "message": "\u041a\u0440\u0430\u0441\u043d\u044b\u0439" + "message": "Красный" }, "redDislikeButton": { "message": "Show dislike button red colour" }, "relatedVideos": { - "message": "\u041f\u043e\u0445\u043e\u0436\u0438\u0435 \u0432\u0438\u0434\u0435\u043e" + "message": "Похожие видео" }, "removeRelatedSearchResults": { - "message": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u043e\u0445\u043e\u0436\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e\u0438\u0441\u043a\u0430" + "message": "Удалить похожие результаты поиска" }, "repeat": { - "message": "\u041f\u043e\u0432\u0442\u043e\u0440" + "message": "Повтор" }, "reset": { - "message": "\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c" + "message": "Сбросить" }, "resetAllSettings": { - "message": "\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0432\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438" + "message": "Сбросить все настройки" }, "resetAllShortcuts": { - "message": "\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0432\u0441\u0435 \u0433\u043e\u0440\u044f\u0447\u0438\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438" + "message": "Сбросить все горячие клавиши" }, "reverse": { - "message": "\u041e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a" + "message": "Обратный порядок" }, "rotate": { - "message": "\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c" + "message": "Повернуть" }, "save": { - "message": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c" + "message": "Сохранить" }, "saveAs": { - "message": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a" + "message": "Сохранить как" }, "schedule": { - "message": "\u0420\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435" + "message": "Расписание" }, "screen": { - "message": "\u042d\u043a\u0440\u0430\u043d" + "message": "Экран" }, "screenshot": { - "message": "\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442" + "message": "Скриншот" }, "search": { - "message": "\u041f\u043e\u0438\u0441\u043a" + "message": "Поиск" }, "searchBarOnly": { - "message": "\u0422\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435 \u043f\u043e\u0438\u0441\u043a\u0430" + "message": "Только поле поиска" }, "seekBackward10Seconds": { - "message": "\u041f\u0435\u0440\u0435\u043c\u043e\u0442\u0430\u0442\u044c \u043d\u0430 10 \u0441\u0435\u043a\u0443\u043d\u0434 \u043d\u0430\u0437\u0430\u0434" + "message": "Перемотать на 10 секунд назад" }, "seekForward10Seconds": { - "message": "\u041f\u0435\u0440\u0435\u043c\u043e\u0442\u0430\u0442\u044c \u043d\u0430 10 \u0441\u0435\u043a\u0443\u043d\u0434 \u0432\u043f\u0435\u0440\u0435\u0434" + "message": "Перемотать на 10 секунд вперед" }, "settings": { - "message": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438" + "message": "Настройки" }, "settingsSuccessfullyImported": { - "message": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b" + "message": "Настройки успешно импортированы" }, "shortcuts": { - "message": "\u0413\u043e\u0440\u044f\u0447\u0438\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438" + "message": "Горячие клавиши" }, "showCardsOnMouseHover": { - "message": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 \u043f\u0440\u0438 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043c\u044b\u0448\u0438" + "message": "Показывать карточки при наведении мыши" }, "showChannelVideosCount": { - "message": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0438\u0434\u0435\u043e \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u0435" + "message": "Показывать количество видео на канале" }, "shuffle": { - "message": "\u0421\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a" + "message": "Случайный порядок" }, "sidebar": { - "message": "\u0411\u043e\u043a\u043e\u0432\u0430\u044f \u043f\u0430\u043d\u0435\u043b\u044c" + "message": "Боковая панель" }, "spacebar": { - "message": "\u041f\u0440\u043e\u0431\u0435\u043b" + "message": "Пробел" }, "squaredUserImages": { - "message": "\u041a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0435 \u0430\u0432\u0430\u0442\u0430\u0440\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439" + "message": "Квадратные аватарки пользователей" }, "static": { - "message": "\u0421\u0442\u0430\u0442\u0438\u0447\u043d\u043e" + "message": "Статично" }, "statsForNerds": { "message": "Show Stats for Nerds" @@ -675,64 +675,64 @@ "message": "Step" }, "stop": { - "message": "\u0421\u0442\u043e\u043f" + "message": "Стоп" }, "style": { - "message": "\u0421\u0442\u0438\u043b\u044c" + "message": "Стиль" }, "styles": { - "message": "\u0421\u0442\u0438\u043b\u0438" + "message": "Стили" }, "subscriptions": { - "message": "\u041f\u043e\u0434\u043f\u0438\u0441\u043a\u0438" + "message": "Подписки" }, "subtitles": { - "message": "\u0421\u0443\u0431\u0442\u0438\u0442\u0440\u044b" + "message": "Субтитры" }, "sunset": { - "message": "\u0417\u0430\u043a\u0430\u0442" + "message": "Закат" }, "sunsetToSunrise": { - "message": "\u041e\u0442 \u0437\u0430\u043a\u0430\u0442\u0430 \u0434\u043e \u0440\u0430\u0441\u0441\u0432\u0435\u0442\u0430" + "message": "От заката до рассвета" }, "systemPeferenceDark": { - "message": "\u041f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439: \u0442\u0435\u043c\u043d\u0430\u044f" + "message": "Предпочитаемая системой: темная" }, "systemPeferenceLight": { - "message": "\u041f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439: \u0441\u0432\u0435\u0442\u043b\u0430\u044f" + "message": "Предпочитаемая системой: светлая" }, "teal": { - "message": "\u0411\u0438\u0440\u044e\u0437\u043e\u0432\u044b\u0439" + "message": "Бирюзовый" }, "textColor": { - "message": "\u0426\u0432\u0435\u0442 \u0442\u0435\u043a\u0441\u0442\u0430" + "message": "Цвет текста" }, "themes": { - "message": "\u0422\u0435\u043c\u044b" + "message": "Темы" }, "thisWillRemoveAllCookies": { - "message": "\u042d\u0442\u043e \u0443\u0434\u0430\u043b\u0438\u0442 \u0432\u0441\u0435 \u043a\u0443\u043a\u0438" + "message": "Это удалит все куки" }, "thisWillRemoveAllYouTubeCookies": { - "message": "\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u043a\u0443\u043a\u0438 YouTube?" + "message": "Вы действительно хотите удалить все куки YouTube?" }, "thisWillResetAllSettings": { - "message": "\u042d\u0442\u043e \u0441\u0431\u0440\u043e\u0441\u0438\u0442 \u0432\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438" + "message": "Это сбросит все настройки" }, "thisWillResetAllShortcuts": { - "message": "\u042d\u0442\u043e \u0441\u0431\u0440\u043e\u0441\u0438\u0442 \u0432\u0441\u0435 \u0433\u043e\u0440\u044f\u0447\u0438\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438" + "message": "Это сбросит все горячие клавиши" }, "thumbnails": { - "message": "\u041f\u0440\u0435\u0432\u044c\u044e" + "message": "Превью" }, "timeFrom": { - "message": "\u0412\u0440\u0435\u043c\u044f \u043e\u0442" + "message": "Время от" }, "timeTo": { - "message": "\u0412\u0440\u0435\u043c\u044f \u0434\u043e" + "message": "Время до" }, "todayAt": { - "message": "\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0432" + "message": "Сегодня в" }, "toggleCards": { "message": "Toggle cards" @@ -741,75 +741,75 @@ "message": "Top chat" }, "trailerAutoplay": { - "message": "\u0410\u0432\u0442\u043e\u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0440\u0435\u0439\u043b\u0435\u0440\u0430" + "message": "Автовоспроизведение трейлера" }, "translations": { - "message": "\u041f\u0435\u0440\u0435\u0432\u043e\u0434\u044b" + "message": "Переводы" }, "transparentBackground": { - "message": "\u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439 \u0444\u043e\u043d" + "message": "Прозрачный фон" }, "trending": { - "message": "\u0422\u0440\u0435\u043d\u0434\u044b" + "message": "Тренды" }, "tryToReloadThePage": { - "message": "\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443" + "message": "Попробуйте перезагрузить страницу" }, "type": { - "message": "\u0422\u0438\u043f" + "message": "Тип" }, "upNextAutoplay": { - "message": "\u0410\u0432\u0442\u043e\u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0432\u0438\u0434\u0435\u043e" + "message": "Автовоспроизведение следующего видео" }, "use24HourFormat": { - "message": "24-\u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442" + "message": "24-часовой формат" }, "version": { - "message": "\u0412\u0435\u0440\u0441\u0438\u044f" + "message": "Версия" }, "video": { - "message": "\u0412\u0438\u0434\u0435\u043e" + "message": "Видео" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432\u0438\u0434\u0435\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432\u0438\u0434\u0435\u043e" + "message": "Описание видео будет развернуто, чтобы получить название категории видео" }, "videoFormats": { - "message": "\u0424\u043e\u0440\u043c\u0430\u0442\u044b \u0432\u0438\u0434\u0435\u043e" + "message": "Форматы видео" }, "videos": { - "message": "\u0412\u0438\u0434\u0435\u043e" + "message": "Видео" }, "volume": { - "message": "\u0413\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c" + "message": "Громкость" }, "watchLater": { - "message": "\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e\u0437\u0436\u0435" + "message": "Посмотреть позже" }, "watchTime": { - "message": "\u0412\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430" + "message": "Время просмотра" }, "whenTabIsChanged": { - "message": "\u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0432\u043a\u043b\u0430\u0434\u043e\u043a" + "message": "При переключении вкладок" }, "white": { - "message": "\u0411\u0435\u043b\u044b\u0439" + "message": "Белый" }, "yellow": { - "message": "\u0416\u0435\u043b\u0442\u044b\u0439" + "message": "Желтый" }, "youtubeHeaderLeft": { - "message": "\u0412\u0435\u0440\u0445\u043d\u044f\u044f \u043f\u0430\u043d\u0435\u043b\u044c (\u0441\u043b\u0435\u0432\u0430)" + "message": "Верхняя панель (слева)" }, "youtubeHeaderRight": { - "message": "\u0412\u0435\u0440\u0445\u043d\u044f\u044f \u043f\u0430\u043d\u0435\u043b\u044c (\u0441\u043f\u0440\u0430\u0432\u0430)" + "message": "Верхняя панель (справа)" }, "youtubeHomePage": { - "message": "\u0414\u043e\u043c\u0430\u0448\u043d\u044f\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 YouTube" + "message": "Домашняя страница YouTube" }, "youtubeLanguage": { - "message": "\u042f\u0437\u044b\u043a YouTube" + "message": "Язык YouTube" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u043a\u0430\u0447\u0435\u0442\u0432\u043e \u0432\u0438\u0434\u0435\u043e \u0434\u043e 1080p \u0434\u043b\u044f \u043a\u043e\u0434\u0435\u043a\u0430 h.264" + "message": "YouTube ограничивает качетво видео до 1080p для кодека h.264" } } \ No newline at end of file diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index e9cf0fe92..c51630d2d 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -1,15 +1,15 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" @@ -18,61 +18,61 @@ "message": "O" }, "accept": { - "message": "Prija\u0165" + "message": "Prijať" }, "activate": { - "message": "Aktivova\u0165" + "message": "Aktivovať" }, "activateCaptions": { - "message": "Aktivova\u0165 titulky" + "message": "Aktivovať titulky" }, "activateFullscreen": { - "message": "Aktivova\u0165 zobrazenie na cel\u00fa obrazovku" + "message": "Aktivovať zobrazenie na celú obrazovku" }, "activated": { - "message": "Aktivovan\u00e9" + "message": "Aktivované" }, "activatedFeatures": { - "message": "Aktivovan\u00e9 fukncie" + "message": "Aktivované fukncie" }, "activeFeatures": { - "message": "Akt\u00edvne funkcie" + "message": "Aktívne funkcie" }, "addScrollToTop": { - "message": "Prejdite \u00abVr\u00e1ti\u0165 sa na za\u010diatok\u00bb" + "message": "Prejdite «Vrátiť sa na začiatok»" }, "ads": { "message": "Reklamy" }, "all": { - "message": "V\u0161etko" + "message": "Všetko" }, "allow": { - "message": "Povoli\u0165" + "message": "Povoliť" }, "allow60fps": { - "message": "Povoli\u0165 60fps" + "message": "Povoliť 60fps" }, "alwaysActive": { - "message": "V\u017edy akt\u00edvne" + "message": "Vždy aktívne" }, "alwaysShowProgressBar": { - "message": "V\u017edy zobrazova\u0165 ukazate\u013e priebehu" + "message": "Vždy zobrazovať ukazateľ priebehu" }, "amber": { "message": "Ambra" }, "analyzer": { - "message": "Analyz\u00e1tor" + "message": "Analyzátor" }, "appearance": { - "message": "Vzh\u013ead" + "message": "Vzhľad" }, "audio": { "message": "Zvuk" }, "audioFormats": { - "message": "Form\u00e1t zvuku" + "message": "Formát zvuku" }, "auto": { "message": "Automaticky" @@ -81,46 +81,46 @@ "message": "Automaticky-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Automatick\u00e9 pozastavenie pri prep\u00ednan\u00ed kariet" + "message": "Automatické pozastavenie pri prepínaní kariet" }, "autoplay": { - "message": "Automatick\u00e9 prehr\u00e1vanie" + "message": "Automatické prehrávanie" }, "backupAndReset": { - "message": "Z\u00e1lohovanie & Obnova" + "message": "Zálohovanie & Obnova" }, "baseOnSystemColorScheme": { - "message": "Nastaven\u00e9 pod\u013ea farby syst\u00e9mu" + "message": "Nastavené podľa farby systému" }, "belowPlayer": { - "message": "Pod prehr\u00e1va\u010dom" + "message": "Pod prehrávačom" }, "black": { - "message": "\u010cierna" + "message": "Čierna" }, "blacklist": { "message": "Blacklist" }, "blockAll": { - "message": "Zablokova\u0165 v\u0161etko" + "message": "Zablokovať všetko" }, "blue": { - "message": "Modr\u00e1" + "message": "Modrá" }, "blueGray": { - "message": "\u0160edo-modr\u00e1" + "message": "Šedo-modrá" }, "bluelight": { - "message": "Modr\u00e9 svetlo" + "message": "Modré svetlo" }, "brown": { - "message": "Hned\u00e1" + "message": "Hnedá" }, "browser": { "message": "Prehliadac" }, "browserVersion": { - "message": "Verzie prehliada\u010da" + "message": "Verzie prehliadača" }, "bubbles": { "message": "Bubliny" @@ -129,259 +129,259 @@ "message": "Chyba" }, "buttons": { - "message": "Tla\u010didl\u00e1" + "message": "Tlačidlá" }, "cancel": { - "message": "Zru\u0161i\u0165" + "message": "Zrušiť" }, "categories": { - "message": "Kateg\u00f3rie" + "message": "Kategórie" }, "channel": { - "message": "Kan\u00e1l" + "message": "Kanál" }, "channels": { - "message": "Kan\u00e1ly" + "message": "Kanály" }, "clipboard": { - "message": "Schr\u00e1nka" + "message": "Schránka" }, "codecH264": { "message": "Kodek h.264" }, "collapseOfSubscriptionSections": { - "message": "Zbali\u0165 sekciu Odber" + "message": "Zbaliť sekciu Odber" }, "collapsed": { - "message": "Zbali\u0165" + "message": "Zbaliť" }, "comments": { - "message": "Koment\u00e1re" + "message": "Komentáre" }, "confirmationBeforeClosing": { - "message": "Potvrdi\u0165 pred zatvoren\u00edmk" + "message": "Potvrdiť pred zatvorenímk" }, "cookies": { "message": "Cookies" }, "cores": { - "message": "Jadr\u00e1" + "message": "Jadrá" }, "cropChapterTitles": { "message": "Crop chapter titles" }, "customCss": { - "message": "Vlastn\u00e9 CSS" + "message": "Vlastné CSS" }, "customJs": { - "message": "Vlastn\u00e9 JS" + "message": "Vlastné JS" }, "customMiniPlayer": { "message": "Custom Mini-Player" }, "cyan": { - "message": "Tyrkysov\u00e1" + "message": "Tyrkysová" }, "dark": { - "message": "Tmav\u00fd" + "message": "Tmavý" }, "darkTheme": { - "message": "Tmav\u00e1 t\u00e9ma" + "message": "Tmavá téma" }, "dateAndTime": { - "message": "D\u00e1tum a \u010das" + "message": "Dátum a čas" }, "dawn": { "message": "Svitanie" }, "decreasePlaybackSpeed": { - "message": "Zn\u00ed\u017ei\u0165 r\u00fdchlos\u0165 prehr\u00e1vania" + "message": "Znížiť rýchlosť prehrávania" }, "decreaseVolume": { - "message": "Zn\u00ed\u017ei\u0165 hlasitos\u0165" + "message": "Znížiť hlasitosť" }, "deepOrange": { - "message": "Tmavo oran\u017eov\u00e1" + "message": "Tmavo oranžová" }, "deepPurple": { - "message": "Tmavo fialov\u00e1" + "message": "Tmavo fialová" }, "defaultChannelTab": { - "message": "Predvolen\u00e1 karta kan\u00e1lu" + "message": "Predvolená karta kanálu" }, "deleteYoutubeCookies": { - "message": "Vymaza\u0165 YouTube cookies" + "message": "Vymazať YouTube cookies" }, "description": { "message": "Podrobnosti" }, "desert": { - "message": "P\u00fa\u0161\u0165" + "message": "Púšť" }, "details": { "message": "Detaily" }, "developerOptions": { - "message": "Mo\u017enosti pre v\u00fdvojara" + "message": "Možnosti pre vývojara" }, "device": { "message": "Zariadenie" }, "dim": { - "message": "Stmvavi\u0165" + "message": "Stmvaviť" }, "disabled": { - "message": "Vypnut\u00fd" + "message": "Vypnutý" }, "dislike": { "message": "Dislike" }, "doNotChange": { - "message": "Nemeni\u0165" + "message": "Nemeniť" }, "donate": { - "message": "Prispie\u0165" + "message": "Prispieť" }, "draggable": { - "message": "Posuvn\u00e9" + "message": "Posuvné" }, "email": { "message": "Email" }, "empty": { - "message": "Pr\u00e1zdny" + "message": "Prázdny" }, "enabled": { - "message": "Zapnut\u00e9" + "message": "Zapnuté" }, "enabledForced": { - "message": "Zapnut\u00e9 (vyn\u00fatene)" + "message": "Zapnuté (vynútene)" }, "expanded": { - "message": "Rozbalen\u00e9" + "message": "Rozbalené" }, "exportSettings": { - "message": "Exportova\u0165 nastavenia" + "message": "Exportovať nastavenia" }, "extension": { - "message": "Roz\u0161\u00edrenia" + "message": "Rozšírenia" }, "file": { - "message": "S\u00fabor" + "message": "Súbor" }, "filters": { "message": "Filtre" }, "fitToWindow": { - "message": "Prisp\u00f4sobi\u0165 oknu" + "message": "Prispôsobiť oknu" }, "flash": { - "message": "Blika\u0165" + "message": "Blikať" }, "font": { - "message": "P\u00edsmo" + "message": "Písmo" }, "footer": { - "message": "P\u00e4ti\u010dka" + "message": "Pätička" }, "forceSDR": { "message": "Force SDR" }, "forcedPlaybackSpeed": { - "message": "Vyn\u00faten\u00e1 r\u00fdchlos\u0165 prehr\u00e1vania" + "message": "Vynútená rýchlosť prehrávania" }, "forcedTheaterMode": { - "message": "Vyn\u00faten\u00fd divadeln\u00fd re\u017eim" + "message": "Vynútený divadelný režim" }, "forcedVolume": { - "message": "Vyn\u00faten\u00e1 hlasitos\u0165" + "message": "Vynútená hlasitosť" }, "foundABug": { - "message": "Na\u0161li ste chybu?" + "message": "Našli ste chybu?" }, "fullWindow": { - "message": "Cel\u00e9 okno" + "message": "Celé okno" }, "general": { - "message": "V\u0161eobecn\u00e9" + "message": "Všeobecné" }, "github": { "message": "GitHub" }, "goToSearchBox": { - "message": "Prejdite do vyh\u013ead\u00e1vanieho po\u013ea" + "message": "Prejdite do vyhľadávanieho poľa" }, "gpu": { "message": "GPU" }, "green": { - "message": "Zelen\u00e1" + "message": "Zelená" }, "hdThumbnail": { - "message": "HD n\u00e1hlad" + "message": "HD náhlad" }, "hdThumbnails": { - "message": "HD n\u00e1hlady" + "message": "HD náhlady" }, "header": { - "message": "Hlavi\u010dka" + "message": "Hlavička" }, "hidden": { - "message": "Skryt\u00e9" + "message": "Skryté" }, "hiddenOnVideoPage": { - "message": "Skyt\u00e9 na str\u00e1nke videa" + "message": "Skyté na stránke videa" }, "hideAnimatedThumbnails": { - "message": "Skry\u0165 animovan\u00e9 n\u00e1h\u013eady" + "message": "Skryť animované náhľady" }, "hideAnnotations": { - "message": "Skry\u0165 anot\u00e1cie" + "message": "Skryť anotácie" }, "hideCards": { - "message": "Skry\u0165 karty" + "message": "Skryť karty" }, "hideDetails": { - "message": "Skry\u0165 detaily" + "message": "Skryť detaily" }, "hideEndscreen": { - "message": "Skry\u0165 zobrazenie na konci videa" + "message": "Skryť zobrazenie na konci videa" }, "hideFeaturedContent": { - "message": "Skry\u0165 odpor\u00fa\u010dan\u00fd obsah" + "message": "Skryť odporúčaný obsah" }, "hideFooter": { - "message": "Hide p\u00e4ti\u010dku" + "message": "Hide pätičku" }, "hideGradientBottom": { "message": "Hide Gradient Bottom" }, "hidePlaylist": { - "message": "Skry\u0165 zoznam vide\u00ed" + "message": "Skryť zoznam videí" }, "hideRightButtons": { - "message": "Skry\u0165 tl\u010didl\u00e1 v pravo" + "message": "Skryť tlčidlá v pravo" }, "hideScrollForDetails": { - "message": "Skry\u0165 \u00abZarolujte pre detaily\u00bb" + "message": "Skryť «Zarolujte pre detaily»" }, "hideViewsCount": { - "message": "Sky\u0165 po\u010det viden\u00ed" + "message": "Skyť počet videní" }, "history": { - "message": "Hist\u00f3ria" + "message": "História" }, "home": { "message": "Domov" }, "hover": { - "message": "Vzn\u00e1\u0161a\u0165 sa" + "message": "Vznášať sa" }, "hoverOnVideoPage": { - "message": "Umiestnite kurzor na str\u00e1nku videa" + "message": "Umiestnite kurzor na stránku videa" }, "howLongAgoTheVideoWasUploaded": { - "message": "Kedy bolo toto video nahran\u00e9?" + "message": "Kedy bolo toto video nahrané?" }, "icons": { "message": "Ikony" @@ -390,13 +390,13 @@ "message": "Iba ikony" }, "importSettings": { - "message": "Importova\u0165 nastavenia" + "message": "Importovať nastavenia" }, "improveLogo": { "message": "Improve logo" }, "improvedtubeIconInBrowser": { - "message": "ImprovedTube ikona v prehliada\u010di" + "message": "ImprovedTube ikona v prehliadači" }, "improvedtubeIconOnYoutube": { "message": "ImprovedTube ikona na YouTube" @@ -408,10 +408,10 @@ "message": "ImprovedTube verzia" }, "increasePlaybackSpeed": { - "message": "Zv\u00fd\u0161i\u0165 r\u00fdchlos\u0165 prehr\u00e1vania" + "message": "Zvýšiť rýchlosť prehrávania" }, "increaseVolume": { - "message": "Zv\u00fd\u0161i\u0165 hlasitos\u0165" + "message": "Zvýšiť hlasitosť" }, "indigo": { "message": "Indigo" @@ -423,43 +423,43 @@ "message": "Jazyky" }, "legacyYoutube": { - "message": "Star\u00fd YouTube" + "message": "Starý YouTube" }, "light": { "message": "Svetlo" }, "lightBlue": { - "message": "Svetlo modr\u00e1" + "message": "Svetlo modrá" }, "lightGreen": { - "message": "Svetlo zelen\u00e1" + "message": "Svetlo zelená" }, "like": { - "message": "P\u00e1\u010di sa mi to" + "message": "Páči sa mi to" }, "likes": { - "message": "P\u00e1\u010di sa mi to" + "message": "Páči sa mi to" }, "lime": { - "message": "Limetkov\u00e1" + "message": "Limetková" }, "list": { "message": "Zoznam" }, "liveChat": { - "message": "\u017div\u00ed chat" + "message": "Živí chat" }, "liveChatType": { - "message": "Typ \u017eiv\u00e9ho chatu" + "message": "Typ živého chatu" }, "loudnessNormalization": { "message": "Vyrovnanie hlasitosti" }, "markWatchedVideos": { - "message": "Ozna\u010di\u0165 ako viden\u00e9" + "message": "Označiť ako videné" }, "mixer": { - "message": "Mix\u00e9r" + "message": "Mixér" }, "myColors": { "message": "Moje farby" @@ -468,52 +468,52 @@ "message": "Meno" }, "nativeMiniPlayer": { - "message": "Nat\u00edvny mini prehr\u00e1va\u010d" + "message": "Natívny mini prehrávač" }, "new": { - "message": "Nov\u00fd" + "message": "Nový" }, "nextVideo": { - "message": "\u010eal\u0161ie video" + "message": "Ďalšie video" }, "night": { "message": "Noc" }, "noActiveFeatures": { - "message": "\u017diadne akt\u00edvne fukncie" + "message": "Žiadne aktívne fukncie" }, "noOpenVideoTabs": { - "message": "\u017diadne otvoren\u00e9 karty s videami" + "message": "Žiadne otvorené karty s videami" }, "none": { - "message": "\u017diadny" + "message": "Žiadny" }, "normal": { - "message": "Norm\u00e1le" + "message": "Normále" }, "old": { - "message": "Star\u00fd" + "message": "Starý" }, "onAllVideos": { - "message": "Na v\u0161etk\u00fdch vide\u00e1ch" + "message": "Na všetkých videách" }, "onSubscribedChannels": { - "message": "Na odoberan\u00fdch kan\u00e1loch" + "message": "Na odoberaných kanáloch" }, "onlyActiveOnYoutube": { - "message": "Akt\u00edvne iba na YouTube" + "message": "Aktívne iba na YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Prehr\u00e1va\u0165 iba jedno video" + "message": "Prehrávať iba jedno video" }, "orange": { - "message": "Oran\u017eov\u00e1" + "message": "Oranžová" }, "os": { "message": "OS" }, "other": { - "message": "Ostatn\u00e9" + "message": "Ostatné" }, "permissions": { "message": "Povolenia" @@ -522,55 +522,55 @@ "message": "Obraz v obraze" }, "pink": { - "message": "Ru\u017eov\u00e1" + "message": "Ružová" }, "plain": { - "message": "Jednoduch\u00fd" + "message": "Jednoduchý" }, "platform": { "message": "Platforma" }, "playPause": { - "message": "Prehra\u0165 / Pozastav\u0165" + "message": "Prehrať / Pozastavť" }, "playbackSpeed": { - "message": "R\u00fdchlos\u0165 prehr\u00e1vania" + "message": "Rýchlosť prehrávania" }, "player": { - "message": "Prehr\u00e1va\u010d" + "message": "Prehrávač" }, "playerColor": { - "message": "Farba prehr\u00e1va\u010da" + "message": "Farba prehrávača" }, "playerSize": { - "message": "Ve\u013ekos\u0165 prehr\u00e1va\u010da" + "message": "Veľkosť prehrávača" }, "playlist": { - "message": "Zoznam vide\u00ed" + "message": "Zoznam videí" }, "playlists": { - "message": "Zoznamy vide\u00ed" + "message": "Zoznamy videí" }, "popupPlayer": { - "message": "Popup prehr\u00e1va\u010d" + "message": "Popup prehrávač" }, "position": { - "message": "Poz\u00edcia" + "message": "Pozícia" }, "pressAnyKeyOrScroll": { - "message": "Stla\u010dte \u013eubovoln\u00fa kl\u00e1vesu alebo pou\u017eite kolisko my\u0161ky." + "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky." }, "pressAnyKeyOrUseMouseWheel": { - "message": "Stla\u010dte \u013eubovoln\u00fa kl\u00e1vesu alebo pou\u017eite kolisko my\u0161ky" + "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky" }, "previousVideo": { - "message": "Predch\u00fddzaj\u00face video" + "message": "Predchýdzajúce video" }, "primaryColor": { - "message": "Prim\u00e1rna farba" + "message": "Primárna farba" }, "purple": { - "message": "Fialov\u00e1" + "message": "Fialová" }, "quality": { "message": "Kvalita" @@ -579,46 +579,46 @@ "message": "RAM" }, "rateUs": { - "message": "Ohodno\u0165te n\u00e1s" + "message": "Ohodnoťte nás" }, "red": { - "message": "\u010cerven\u00e1" + "message": "Červená" }, "redDislikeButton": { "message": "Show dislike button red colour" }, "relatedVideos": { - "message": "S\u00favisiace vide\u00e1" + "message": "Súvisiace videá" }, "removeRelatedSearchResults": { - "message": "Odstr\u00e1nte pr\u00edbuzn\u00e9 v\u00fdsledky vyh\u013ead\u00e1vania" + "message": "Odstránte príbuzné výsledky vyhľadávania" }, "repeat": { - "message": "Opakova\u0165" + "message": "Opakovať" }, "reset": { - "message": "Obnovi\u0165" + "message": "Obnoviť" }, "resetAllSettings": { - "message": "Obnovi\u0165 v\u0161etky nastavenia" + "message": "Obnoviť všetky nastavenia" }, "resetAllShortcuts": { - "message": "Obnovi\u0165 v\u0161etky skratky" + "message": "Obnoviť všetky skratky" }, "reverse": { - "message": "Obr\u00e1ten\u00e9" + "message": "Obrátené" }, "rotate": { - "message": "Oto\u010di\u0165" + "message": "Otočiť" }, "save": { - "message": "Ulo\u017ei\u0165" + "message": "Uložiť" }, "saveAs": { - "message": "Ulo\u017ei\u0165 ako" + "message": "Uložiť ako" }, "schedule": { - "message": "Napl\u00e1nova\u0165" + "message": "Naplánovať" }, "screen": { "message": "Obrazovka" @@ -627,46 +627,46 @@ "message": "Screenshot" }, "search": { - "message": "Vyh\u013eada\u0165" + "message": "Vyhľadať" }, "searchBarOnly": { - "message": "Iba vyh\u013ead\u00e1vacie pole" + "message": "Iba vyhľadávacie pole" }, "seekBackward10Seconds": { - "message": "Preto\u010di\u0165 sp\u00e4t o 10 sek\u00fand" + "message": "Pretočiť spät o 10 sekúnd" }, "seekForward10Seconds": { - "message": "Preto\u010di\u0165 dopredu o 10 sek\u00fand" + "message": "Pretočiť dopredu o 10 sekúnd" }, "settings": { "message": "Nastavenia" }, "settingsSuccessfullyImported": { - "message": "Nastavenia \u00faspe\u0161ne importovan\u00e9" + "message": "Nastavenia úspešne importované" }, "shortcuts": { "message": "Skratky" }, "showCardsOnMouseHover": { - "message": "Zobrazi\u0165 karty pri prechode my\u0161ou" + "message": "Zobraziť karty pri prechode myšou" }, "showChannelVideosCount": { - "message": "Zobrazi\u0165 po\u010det vide\u00ed kan\u00e1lu" + "message": "Zobraziť počet videí kanálu" }, "shuffle": { - "message": "N\u00e1hodne" + "message": "Náhodne" }, "sidebar": { - "message": "Bo\u010dn\u00fd panel" + "message": "Bočný panel" }, "spacebar": { "message": "Medzera" }, "squaredUserImages": { - "message": "\u0160tvorcov\u00fd obr\u00e1zok u\u017e\u00edvate\u013ea" + "message": "Štvorcový obrázok užívateľa" }, "static": { - "message": "Statick\u00e9" + "message": "Statické" }, "statsForNerds": { "message": "Show Stats for Nerds" @@ -678,10 +678,10 @@ "message": "Stop" }, "style": { - "message": "\u0160t\u00fdl" + "message": "Štýl" }, "styles": { - "message": "\u0160t\u00fdly" + "message": "Štýly" }, "subscriptions": { "message": "Odbery" @@ -690,46 +690,46 @@ "message": "Titulky" }, "sunset": { - "message": "Z\u00e1pad slnka" + "message": "Západ slnka" }, "sunsetToSunrise": { - "message": "Z\u00e1pad slnka do v\u00fdchodu slnka" + "message": "Západ slnka do východu slnka" }, "systemPeferenceDark": { - "message": "Predvolen\u00e9: tmav\u00e9" + "message": "Predvolené: tmavé" }, "systemPeferenceLight": { - "message": "Predvolen\u00e9: svetl\u00e9" + "message": "Predvolené: svetlé" }, "teal": { - "message": "Modrozelen\u00fd" + "message": "Modrozelený" }, "textColor": { "message": "Farba textu" }, "themes": { - "message": "T\u00e9my" + "message": "Témy" }, "thisWillRemoveAllCookies": { - "message": "Toto odstr\u00e1ni v\u0161etky cookies." + "message": "Toto odstráni všetky cookies." }, "thisWillRemoveAllYouTubeCookies": { - "message": "Toto odstr\u00e1ni v\u0161etky YouTube cookies" + "message": "Toto odstráni všetky YouTube cookies" }, "thisWillResetAllSettings": { - "message": "Toto obnov\u00fd v\u0161etky nastavenia." + "message": "Toto obnový všetky nastavenia." }, "thisWillResetAllShortcuts": { - "message": "Toto obnov\u00fd v\u0161etky skratky" + "message": "Toto obnový všetky skratky" }, "thumbnails": { - "message": "N\u00e1hlady" + "message": "Náhlady" }, "timeFrom": { - "message": "\u010cas od" + "message": "Čas od" }, "timeTo": { - "message": "\u010cas do" + "message": "Čas do" }, "todayAt": { "message": "Dnes o" @@ -741,28 +741,28 @@ "message": "Top chat" }, "trailerAutoplay": { - "message": "Automatick\u00e9 prehr\u00e1vanie uk\u00e1\u017eky" + "message": "Automatické prehrávanie ukážky" }, "translations": { "message": "Preklady" }, "transparentBackground": { - "message": "Prieh\u013eadn\u00e9 pozadie" + "message": "Priehľadné pozadie" }, "trending": { "message": "Trending" }, "tryToReloadThePage": { - "message": "Sk\u00fas\u0165e obnovi\u0165 str\u00e1nku" + "message": "Skúsťe obnoviť stránku" }, "type": { "message": "Typ" }, "upNextAutoplay": { - "message": "Automaticky prehra\u0165 \u010fa\u013e\u0161ie v porad\u00ed" + "message": "Automaticky prehrať ďaľšie v poradí" }, "use24HourFormat": { - "message": "Pou\u017e\u0165 24-hodinov\u00fd form\u00e1t" + "message": "Použť 24-hodinový formát" }, "version": { "message": "Verzia" @@ -771,22 +771,22 @@ "message": "Video" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Podrobnosti videa bud\u00fa zobrazen\u00e9 pre z\u00edskanie n\u00e1zvu kateg\u00f3rie" + "message": "Podrobnosti videa budú zobrazené pre získanie názvu kategórie" }, "videoFormats": { - "message": "Form\u00e1ty videa" + "message": "Formáty videa" }, "videos": { - "message": "Vede\u00e1" + "message": "Vedeá" }, "volume": { - "message": "Hlasitos\u0165" + "message": "Hlasitosť" }, "watchLater": { - "message": "Pozrie\u0165 neskor" + "message": "Pozrieť neskor" }, "watchTime": { - "message": "\u010cas sledovania" + "message": "Čas sledovania" }, "whenTabIsChanged": { "message": "Pri zmene karty" @@ -795,16 +795,16 @@ "message": "Biela" }, "yellow": { - "message": "\u017dlt\u00e1" + "message": "Žltá" }, "youtubeHeaderLeft": { - "message": "YouTube hlavi\u010dka (v\u013eavo)" + "message": "YouTube hlavička (vľavo)" }, "youtubeHeaderRight": { - "message": "YouTube hlavi\u010dka (vpravo)" + "message": "YouTube hlavička (vpravo)" }, "youtubeHomePage": { - "message": "Dom\u00e1ca str\u00e1nka YouTube" + "message": "Domáca stránka YouTube" }, "youtubeLanguage": { "message": "Jazyk YouTube" diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 8e0afc1bb..053629ad4 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -1,78 +1,78 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { - "message": "Hakk\u0131nda" + "message": "Hakkında" }, "accept": { "message": "Onayla" }, "activate": { - "message": "Aktifle\u015ftir" + "message": "Aktifleştir" }, "activateCaptions": { - "message": "Altyaz\u0131lar\u0131 Aktifle\u015ftir" + "message": "Altyazıları Aktifleştir" }, "activateFullscreen": { - "message": "Tam ekran\u0131 Aktifle\u015ftir" + "message": "Tam ekranı Aktifleştir" }, "activated": { - "message": "Aktifle\u015ftirilmi\u015f" + "message": "Aktifleştirilmiş" }, "activatedFeatures": { - "message": "Aktifle\u015ftirilmi\u015f \u00f6zellikler" + "message": "Aktifleştirilmiş özellikler" }, "activeFeatures": { - "message": "Etkin \u00f6zellikler" + "message": "Etkin özellikler" }, "addScrollToTop": { - "message": "\u00abYukar\u0131 kayd\u0131r\u00bb ekle" + "message": "«Yukarı kaydır» ekle" }, "ads": { "message": "Reklamlar" }, "all": { - "message": "T\u00fcm\u00fc" + "message": "Tümü" }, "allow": { - "message": "\u0130zin ver" + "message": "İzin ver" }, "allow60fps": { "message": "60fps'e izin ver" }, "alwaysActive": { - "message": "S\u00fcrekli etkin" + "message": "Sürekli etkin" }, "alwaysShowProgressBar": { - "message": "\u0130lerleme \u00e7ubu\u011funu s\u00fcrekli g\u00f6ster" + "message": "İlerleme çubuğunu sürekli göster" }, "amber": { "message": "Amber" }, "analyzer": { - "message": "Analiz\u00f6r" + "message": "Analizör" }, "appearance": { - "message": "G\u00f6r\u00fcn\u00fcm" + "message": "Görünüm" }, "audio": { "message": "Ses" }, "audioFormats": { - "message": "Ses formatlar\u0131" + "message": "Ses formatları" }, "auto": { "message": "Otomatik" @@ -81,19 +81,19 @@ "message": "Otomatik tam ekran" }, "autopauseWhenSwitchingTabs": { - "message": "Sekme de\u011fi\u015ftirildi\u011finde duraklat" + "message": "Sekme değiştirildiğinde duraklat" }, "autoplay": { "message": "Otomatik oynat" }, "backupAndReset": { - "message": "Yedek & s\u0131f\u0131rla" + "message": "Yedek & sıfırla" }, "baseOnSystemColorScheme": { - "message": "Sistem renk \u015femas\u0131 temelli" + "message": "Sistem renk şeması temelli" }, "belowPlayer": { - "message": "Oynat\u0131c\u0131n\u0131n alt\u0131nda" + "message": "Oynatıcının altında" }, "black": { "message": "Kara" @@ -102,7 +102,7 @@ "message": "Kara Liste" }, "blockAll": { - "message": "T\u00fcm\u00fcn\u00fc engelle" + "message": "Tümünü engelle" }, "blue": { "message": "Mavi" @@ -111,16 +111,16 @@ "message": "Mavi gri" }, "bluelight": { - "message": "Mavi I\u015f\u0131k" + "message": "Mavi Işık" }, "brown": { "message": "Kahverengi" }, "browser": { - "message": "Taray\u0131c\u0131" + "message": "Tarayıcı" }, "browserVersion": { - "message": "Taray\u0131c\u0131 S\u00fcr\u00fcm\u00fc" + "message": "Tarayıcı Sürümü" }, "bubbles": { "message": "Baloncuklar" @@ -132,7 +132,7 @@ "message": "Butonlar" }, "cancel": { - "message": "\u0130ptal" + "message": "İptal" }, "categories": { "message": "Kategoriler" @@ -150,37 +150,37 @@ "message": "Codec h.264" }, "collapseOfSubscriptionSections": { - "message": "Abonelik b\u00f6l\u00fcmlerini daralt" + "message": "Abonelik bölümlerini daralt" }, "collapsed": { - "message": "Daralt\u0131lm\u0131\u015f" + "message": "Daraltılmış" }, "comments": { "message": "Yorumlar" }, "confirmationBeforeClosing": { - "message": "Kapatmadan \u00f6nce uyar" + "message": "Kapatmadan önce uyar" }, "cookies": { - "message": "\u00c7erezler" + "message": "Çerezler" }, "cores": { - "message": "\u00c7ekirdekler" + "message": "Çekirdekler" }, "cropChapterTitles": { - "message": "B\u00f6l\u00fcm ba\u015fl\u0131klar\u0131n\u0131 k\u0131rp" + "message": "Bölüm başlıklarını kırp" }, "customCss": { - "message": "\u00d6zel CSS" + "message": "Özel CSS" }, "customJs": { - "message": "\u00d6zel JS" + "message": "Özel JS" }, "customMiniPlayer": { - "message": "\u00d6zel Mini Oynat\u0131c\u0131" + "message": "Özel Mini Oynatıcı" }, "cyan": { - "message": "Camg\u00f6be\u011fi" + "message": "Camgöbeği" }, "dark": { "message": "Koyu" @@ -192,10 +192,10 @@ "message": "Tarih & zaman" }, "dawn": { - "message": "\u015eafak" + "message": "Şafak" }, "decreasePlaybackSpeed": { - "message": "Oynatma h\u0131z\u0131n\u0131 azalt" + "message": "Oynatma hızını azalt" }, "decreaseVolume": { "message": "Sesi azalt" @@ -207,22 +207,22 @@ "message": "Koyu mor" }, "defaultChannelTab": { - "message": "Varsay\u0131lan kanal sekmesi" + "message": "Varsayılan kanal sekmesi" }, "deleteYoutubeCookies": { - "message": "YouTube \u00e7erezleri sil" + "message": "YouTube çerezleri sil" }, "description": { - "message": "A\u00e7\u0131klama" + "message": "Açıklama" }, "desert": { - "message": "\u00c7\u00f6l" + "message": "Çöl" }, "details": { - "message": "Ayr\u0131nt\u0131lar" + "message": "Ayrıntılar" }, "developerOptions": { - "message": "Geli\u015ftirici se\u00e7enekleri" + "message": "Geliştirici seçenekleri" }, "device": { "message": "Cihaz" @@ -231,25 +231,25 @@ "message": "Karart" }, "disabled": { - "message": "Devred\u0131\u015f\u0131" + "message": "Devredışı" }, "dislike": { - "message": "Be\u011fenmeme" + "message": "Beğenmeme" }, "doNotChange": { - "message": "De\u011fi\u015ftirme" + "message": "Değiştirme" }, "donate": { - "message": "Ba\u011f\u0131\u015f" + "message": "Bağış" }, "draggable": { - "message": "S\u00fcr\u00fcklenebilir" + "message": "Sürüklenebilir" }, "email": { "message": "Eposta" }, "empty": { - "message": "Bo\u015f" + "message": "Boş" }, "enabled": { "message": "Etkin" @@ -258,13 +258,13 @@ "message": "Etkin (Zorla)" }, "expanded": { - "message": "Geni\u015fletilmi\u015f" + "message": "Genişletilmiş" }, "exportSettings": { - "message": "Ayarlar\u0131 d\u0131\u015fa aktar" + "message": "Ayarları dışa aktar" }, "extension": { - "message": "Uzant\u0131" + "message": "Uzantı" }, "file": { "message": "Dosya" @@ -273,13 +273,13 @@ "message": "Filtreler" }, "fitToWindow": { - "message": "Pencereye s\u0131\u011fd\u0131r" + "message": "Pencereye sığdır" }, "flash": { - "message": "Fla\u015f" + "message": "Flaş" }, "font": { - "message": "Yaz\u0131 Tipi" + "message": "Yazı Tipi" }, "footer": { "message": "Footer" @@ -288,7 +288,7 @@ "message": "SDR Zorla" }, "forcedPlaybackSpeed": { - "message": "Oynatma h\u0131z\u0131n\u0131 uygulamaya zorla" + "message": "Oynatma hızını uygulamaya zorla" }, "forcedTheaterMode": { "message": "Sinema modunu zorla" @@ -297,7 +297,7 @@ "message": "Sesi zorla" }, "foundABug": { - "message": "Hata m\u0131 buldun?" + "message": "Hata mı buldun?" }, "fullWindow": { "message": "Tam pencere" @@ -315,13 +315,13 @@ "message": "GPU" }, "green": { - "message": "Ye\u015fil" + "message": "Yeşil" }, "hdThumbnail": { - "message": "HD k\u00fc\u00e7\u00fck resim" + "message": "HD küçük resim" }, "hdThumbnails": { - "message": "HD k\u00fc\u00e7\u00fck resimler" + "message": "HD küçük resimler" }, "header": { "message": "Header" @@ -330,28 +330,28 @@ "message": "Gizli" }, "hiddenOnVideoPage": { - "message": "Video sayfas\u0131nda gizli" + "message": "Video sayfasında gizli" }, "hideAnimatedThumbnails": { - "message": "Hareketli k\u00fc\u00e7\u00fck resimleri gizle" + "message": "Hareketli küçük resimleri gizle" }, "hideAnnotations": { - "message": "Ek a\u00e7\u0131klamalar\u0131 gizle" + "message": "Ek açıklamaları gizle" }, "hideCards": { - "message": "Kartlar\u0131 gizle" + "message": "Kartları gizle" }, "hideDetails": { - "message": "Detaylar\u0131 gizle" + "message": "Detayları gizle" }, "hideEndscreen": { "message": "Ekran sonunu gizle" }, "hideFeaturedContent": { - "message": "\u00d6ne \u00e7\u0131kan i\u00e7eri\u011fi gizle" + "message": "Öne çıkan içeriği gizle" }, "hideFooter": { - "message": "Footer'\u0131 gizle" + "message": "Footer'ı gizle" }, "hideGradientBottom": { "message": "Hide Gradient Bottom" @@ -360,16 +360,16 @@ "message": "Oynatma Listesi'ni gizle" }, "hideRightButtons": { - "message": "Sa\u011f butonlar\u0131 gizle" + "message": "Sağ butonları gizle" }, "hideScrollForDetails": { - "message": "\u00abAyr\u0131nt\u0131lar i\u00e7in kayd\u0131r\u00bb gizle" + "message": "«Ayrıntılar için kaydır» gizle" }, "hideViewsCount": { - "message": "G\u00f6r\u00fcnt\u00fcleme say\u0131s\u0131n\u0131 gizle" + "message": "Görüntüleme sayısını gizle" }, "history": { - "message": "Ge\u00e7mi\u015f" + "message": "Geçmiş" }, "home": { "message": "Ana Sayfa" @@ -378,25 +378,25 @@ "message": "Hover" }, "hoverOnVideoPage": { - "message": "Videonun \u00dczerinde Hover" + "message": "Videonun Üzerinde Hover" }, "howLongAgoTheVideoWasUploaded": { - "message": "Video ne kadar s\u00fcre \u00f6nce y\u00fcklendi" + "message": "Video ne kadar süre önce yüklendi" }, "icons": { "message": "Simgeler" }, "iconsOnly": { - "message": "Yaln\u0131zca simgeler" + "message": "Yalnızca simgeler" }, "importSettings": { - "message": "Ayarlar\u0131 i\u00e7e aktar" + "message": "Ayarları içe aktar" }, "improveLogo": { - "message": "Logoyu geli\u015ftir" + "message": "Logoyu geliştir" }, "improvedtubeIconInBrowser": { - "message": "Taray\u0131c\u0131da ImprovedTube Simgesi" + "message": "Tarayıcıda ImprovedTube Simgesi" }, "improvedtubeIconOnYoutube": { "message": "YouTube'da ImprovedTube Simgesi" @@ -405,19 +405,19 @@ "message": "ImprovedTube dili" }, "improvedtubeVersion": { - "message": "ImprovedTube s\u00fcr\u00fcm\u00fc" + "message": "ImprovedTube sürümü" }, "increasePlaybackSpeed": { - "message": "Oynatma h\u0131z\u0131n\u0131 art\u0131r" + "message": "Oynatma hızını artır" }, "increaseVolume": { - "message": "Sesi art\u0131r" + "message": "Sesi artır" }, "indigo": { - "message": "\u00c7ivit" + "message": "Çivit" }, "items": { - "message": "\u00d6\u011feler" + "message": "Öğeler" }, "languages": { "message": "Diller" @@ -426,19 +426,19 @@ "message": "Eski YouTube" }, "light": { - "message": "A\u00e7\u0131k" + "message": "Açık" }, "lightBlue": { - "message": "A\u00e7\u0131k mavi" + "message": "Açık mavi" }, "lightGreen": { - "message": "A\u00e7\u0131k ye\u015fil" + "message": "Açık yeşil" }, "like": { - "message": "Be\u011fen" + "message": "Beğen" }, "likes": { - "message": "Be\u011feniler" + "message": "Beğeniler" }, "lime": { "message": "Lime" @@ -447,25 +447,25 @@ "message": "Liste" }, "liveChat": { - "message": "Canl\u0131 sohbet" + "message": "Canlı sohbet" }, "liveChatType": { - "message": "Canl\u0131 sohbet t\u00fcr\u00fc" + "message": "Canlı sohbet türü" }, "loudnessNormalization": { - "message": "G\u00fcr\u00fclt\u00fc normalle\u015ftirme" + "message": "Gürültü normalleştirme" }, "markWatchedVideos": { - "message": "\u0130zlenen videolar\u0131 i\u015faretle" + "message": "İzlenen videoları işaretle" }, "mixer": { - "message": "Kar\u0131\u015ft\u0131r\u0131c\u0131" + "message": "Karıştırıcı" }, "myColors": { "message": "Renklerim" }, "name": { - "message": "\u0130sim" + "message": "İsim" }, "nativeMiniPlayer": { "message": "Native mini player" @@ -480,10 +480,10 @@ "message": "Gece" }, "noActiveFeatures": { - "message": "Aktif \u00f6zellik yok" + "message": "Aktif özellik yok" }, "noOpenVideoTabs": { - "message": "A\u00e7\u0131k video sekmesi yok" + "message": "Açık video sekmesi yok" }, "none": { "message": "Yok" @@ -495,16 +495,16 @@ "message": "Eski" }, "onAllVideos": { - "message": "T\u00fcm videolarda" + "message": "Tüm videolarda" }, "onSubscribedChannels": { "message": "Abone olunan kanallarda" }, "onlyActiveOnYoutube": { - "message": "Yaln\u0131zca YouTube'da etkin" + "message": "Yalnızca YouTube'da etkin" }, "onlyOnePlayerInstancePlaying": { - "message": "Sadece bir oynat\u0131c\u0131 \u00f6rne\u011fi" + "message": "Sadece bir oynatıcı örneği" }, "orange": { "message": "Turuncu" @@ -513,13 +513,13 @@ "message": "OS" }, "other": { - "message": "Di\u011fer" + "message": "Diğer" }, "permissions": { - "message": "\u0130zinler" + "message": "İzinler" }, "pictureInPicture": { - "message": "Resim i\u00e7inde resim" + "message": "Resim içinde resim" }, "pink": { "message": "Pembe" @@ -534,16 +534,16 @@ "message": "Oynat / Duraklat" }, "playbackSpeed": { - "message": "Oynatma h\u0131z\u0131" + "message": "Oynatma hızı" }, "player": { - "message": "Oynat\u0131c\u0131" + "message": "Oynatıcı" }, "playerColor": { - "message": "Oynat\u0131c\u0131 rengi" + "message": "Oynatıcı rengi" }, "playerSize": { - "message": "Oynat\u0131c\u0131 boyutu" + "message": "Oynatıcı boyutu" }, "playlist": { "message": "Oynatma Listesi" @@ -552,19 +552,19 @@ "message": "Oynatma Listeleri" }, "popupPlayer": { - "message": "Popup oynat\u0131c\u0131" + "message": "Popup oynatıcı" }, "position": { "message": "Konum" }, "pressAnyKeyOrScroll": { - "message": "Herhangi bir tu\u015fa bas veya farenin tekerle\u011fini kullan." + "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan." }, "pressAnyKeyOrUseMouseWheel": { - "message": "Herhangi bir tu\u015fa bas veya farenin tekerle\u011fini kullan" + "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan" }, "previousVideo": { - "message": "\u00d6nceki video" + "message": "Önceki video" }, "primaryColor": { "message": "Birincil renk" @@ -582,40 +582,40 @@ "message": "Bizi oyla" }, "red": { - "message": "K\u0131rm\u0131z\u0131" + "message": "Kırmızı" }, "redDislikeButton": { - "message": "Be\u011fenmeme d\u00fc\u011fmesinini k\u0131rm\u0131z\u0131 renkte g\u00f6ster" + "message": "Beğenmeme düğmesinini kırmızı renkte göster" }, "relatedVideos": { - "message": "\u0130lgili videolar" + "message": "İlgili videolar" }, "removeRelatedSearchResults": { - "message": "\u0130lgili arama sonu\u00e7lar\u0131n\u0131 kald\u0131r" + "message": "İlgili arama sonuçlarını kaldır" }, "repeat": { "message": "Tekrarla" }, "reset": { - "message": "S\u0131f\u0131rla" + "message": "Sıfırla" }, "resetAllSettings": { - "message": "T\u00fcm ayarlar\u0131 s\u0131f\u0131rla" + "message": "Tüm ayarları sıfırla" }, "resetAllShortcuts": { - "message": "T\u00fcm k\u0131sayollar\u0131 s\u0131f\u0131rla" + "message": "Tüm kısayolları sıfırla" }, "reverse": { "message": "Ters" }, "rotate": { - "message": "D\u00f6nd\u00fcr" + "message": "Döndür" }, "save": { "message": "Kaydet" }, "saveAs": { - "message": "Farkl\u0131 kaydet" + "message": "Farklı kaydet" }, "schedule": { "message": "Takvim" @@ -624,13 +624,13 @@ "message": "Ekran" }, "screenshot": { - "message": "Ekran g\u00f6r\u00fcnt\u00fcs\u00fc" + "message": "Ekran görüntüsü" }, "search": { "message": "Ara" }, "searchBarOnly": { - "message": "Yaln\u0131zca arama \u00e7ubu\u011fu" + "message": "Yalnızca arama çubuğu" }, "seekBackward10Seconds": { "message": "10 saniye geriye git" @@ -642,28 +642,28 @@ "message": "Ayarlar" }, "settingsSuccessfullyImported": { - "message": "Ayarlar ba\u015far\u0131yla i\u00e7e aktar\u0131ld\u0131" + "message": "Ayarlar başarıyla içe aktarıldı" }, "shortcuts": { - "message": "K\u0131sayollar" + "message": "Kısayollar" }, "showCardsOnMouseHover": { - "message": "Fareyle \u00fczerine gelindi\u011finde kartlar\u0131 g\u00f6ster" + "message": "Fareyle üzerine gelindiğinde kartları göster" }, "showChannelVideosCount": { - "message": "Kanal\u0131n video say\u0131s\u0131n\u0131 g\u00f6ster" + "message": "Kanalın video sayısını göster" }, "shuffle": { - "message": "Kar\u0131\u015ft\u0131r" + "message": "Karıştır" }, "sidebar": { - "message": "Kenar \u00e7ubu\u011fu" + "message": "Kenar çubuğu" }, "spacebar": { "message": "Spacebar" }, "squaredUserImages": { - "message": "Kare kullan\u0131c\u0131 g\u00f6r\u00fcnt\u00fcleri" + "message": "Kare kullanıcı görüntüleri" }, "static": { "message": "Statik" @@ -672,7 +672,7 @@ "message": "Show Stats for Nerds" }, "step": { - "message": "Ad\u0131m" + "message": "Adım" }, "stop": { "message": "Durdur" @@ -687,64 +687,64 @@ "message": "Aboneler" }, "subtitles": { - "message": "Altyaz\u0131lar" + "message": "Altyazılar" }, "sunset": { - "message": "G\u00fcn bat\u0131m\u0131" + "message": "Gün batımı" }, "sunsetToSunrise": { - "message": "G\u00fcn bat\u0131m\u0131ndan g\u00fcn do\u011fumuna" + "message": "Gün batımından gün doğumuna" }, "systemPeferenceDark": { "message": "Sistem tercihi: koyu" }, "systemPeferenceLight": { - "message": "Sistem tercihi: a\u00e7\u0131k" + "message": "Sistem tercihi: açık" }, "teal": { "message": "Teal" }, "textColor": { - "message": "Yaz\u0131 rengi" + "message": "Yazı rengi" }, "themes": { "message": "Temalar" }, "thisWillRemoveAllCookies": { - "message": "Bu, t\u00fcm \u00e7erezleri kald\u0131racakt\u0131r." + "message": "Bu, tüm çerezleri kaldıracaktır." }, "thisWillRemoveAllYouTubeCookies": { - "message": "Bu, t\u00fcm YouTube \u00e7erezlerini kald\u0131racakt\u0131r." + "message": "Bu, tüm YouTube çerezlerini kaldıracaktır." }, "thisWillResetAllSettings": { - "message": "Bu, t\u00fcm ayarlar\u0131 s\u0131f\u0131rlayacakt\u0131r." + "message": "Bu, tüm ayarları sıfırlayacaktır." }, "thisWillResetAllShortcuts": { - "message": "Bu, t\u00fcm k\u0131sayollar\u0131 s\u0131f\u0131rlayacakt\u0131r." + "message": "Bu, tüm kısayolları sıfırlayacaktır." }, "thumbnails": { - "message": "K\u00fc\u00e7\u00fck resimler" + "message": "Küçük resimler" }, "timeFrom": { - "message": "\u015eu zamandan" + "message": "Şu zamandan" }, "timeTo": { - "message": "\u015eu zamana" + "message": "Şu zamana" }, "todayAt": { - "message": "Bug\u00fcn" + "message": "Bugün" }, "toggleCards": { - "message": "Kartlar\u0131 a\u00e7/kapat" + "message": "Kartları aç/kapat" }, "topChat": { - "message": "En \u0130yi Sohbet Mesajlar\u0131" + "message": "En İyi Sohbet Mesajları" }, "trailerAutoplay": { - "message": "Fragman otomatik oynat\u0131m\u0131" + "message": "Fragman otomatik oynatımı" }, "translations": { - "message": "\u00c7eviriler" + "message": "Çeviriler" }, "transparentBackground": { "message": "Saydam arka plan" @@ -753,7 +753,7 @@ "message": "Trendler" }, "tryToReloadThePage": { - "message": "Sayfay\u0131 yeniden y\u00fcklemeyi deneyin" + "message": "Sayfayı yeniden yüklemeyi deneyin" }, "type": { "message": "Tip" @@ -762,19 +762,19 @@ "message": "Sonraki otomatik oynatma" }, "use24HourFormat": { - "message": "24 saat bi\u00e7imini kullan" + "message": "24 saat biçimini kullan" }, "version": { - "message": "S\u00fcr\u00fcm" + "message": "Sürüm" }, "video": { "message": "Video" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Kategorinin ad\u0131n\u0131 almak i\u00e7in video a\u00e7\u0131klamas\u0131 geni\u015fletilecek" + "message": "Kategorinin adını almak için video açıklaması genişletilecek" }, "videoFormats": { - "message": "Video formatlar\u0131" + "message": "Video formatları" }, "videos": { "message": "Videolar" @@ -786,30 +786,30 @@ "message": "Sonra izle" }, "watchTime": { - "message": "\u0130zleme zaman\u0131" + "message": "İzleme zamanı" }, "whenTabIsChanged": { - "message": "Sekme de\u011fi\u015ftirildi\u011finde" + "message": "Sekme değiştirildiğinde" }, "white": { "message": "Beyaz" }, "yellow": { - "message": "Sar\u0131" + "message": "Sarı" }, "youtubeHeaderLeft": { "message": "YouTube Header (sol)" }, "youtubeHeaderRight": { - "message": "YouTube Header (sa\u011f)" + "message": "YouTube Header (sağ)" }, "youtubeHomePage": { - "message": "YouTube ana sayfas\u0131" + "message": "YouTube ana sayfası" }, "youtubeLanguage": { "message": "YouTube dili" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube, h.264 codec bile\u015feni i\u00e7in video kalitesini 1080p ile s\u0131n\u0131rlar" + "message": "YouTube, h.264 codec bileşeni için video kalitesini 1080p ile sınırlar" } } \ No newline at end of file diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index d15b19b26..a1da5481d 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -1,309 +1,309 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { - "message": "\u5173\u4e8e" + "message": "关于" }, "accept": { - "message": "\u63a5\u53d7" + "message": "接受" }, "activate": { - "message": "\u542f\u7528" + "message": "启用" }, "activateCaptions": { - "message": "\u542f\u7528\u5b57\u5e55" + "message": "启用字幕" }, "activateFullscreen": { - "message": "\u542f\u7528\u5168\u5c4f" + "message": "启用全屏" }, "activated": { - "message": "\u542f\u7528" + "message": "启用" }, "activatedFeatures": { - "message": "\u5df2\u542f\u7528\u529f\u80fd" + "message": "已启用功能" }, "activeFeatures": { - "message": "\u542f\u7528\u529f\u80fd" + "message": "启用功能" }, "addScrollToTop": { - "message": "\u589e\u52a0\u3010\u8fd4\u56de\u9876\u90e8\u3011\u6309\u94ae" + "message": "增加【返回顶部】按钮" }, "ads": { - "message": "\u5e7f\u544a" + "message": "广告" }, "all": { - "message": "\u6240\u6709" + "message": "所有" }, "allow": { - "message": "\u5141\u8bb8" + "message": "允许" }, "allow60fps": { - "message": "\u5141\u8bb860FPS" + "message": "允许60FPS" }, "alwaysActive": { - "message": "\u59cb\u7ec8\u542f\u7528" + "message": "始终启用" }, "alwaysShowProgressBar": { - "message": "\u59cb\u7ec8\u663e\u793a\u8fdb\u5ea6\u6761" + "message": "始终显示进度条" }, "amber": { - "message": "\u7425\u73c0\u8272" + "message": "琥珀色" }, "analyzer": { - "message": "\u5206\u6790\u4eea" + "message": "分析仪" }, "appearance": { - "message": "\u5916\u89c2" + "message": "外观" }, "audio": { - "message": "\u97f3\u9891" + "message": "音频" }, "audioFormats": { - "message": "\u97f3\u9891\u683c\u5f0f" + "message": "音频格式" }, "auto": { - "message": "\u81ea\u52a8" + "message": "自动" }, "autoFullscreen": { - "message": "\u81ea\u52a8\u5168\u5c4f" + "message": "自动全屏" }, "autopauseWhenSwitchingTabs": { - "message": "\u5207\u6362\u6807\u7b7e\u65f6\u6682\u505c\u64ad\u653e" + "message": "切换标签时暂停播放" }, "autoplay": { - "message": "\u81ea\u52a8\u64ad\u653e" + "message": "自动播放" }, "backupAndReset": { - "message": "\u5907\u4efd\u4e0e\u6062\u590d" + "message": "备份与恢复" }, "baseOnSystemColorScheme": { - "message": "\u4f7f\u7528\u7cfb\u7edf\u914d\u8272" + "message": "使用系统配色" }, "belowPlayer": { - "message": "\u5728\u64ad\u653e\u5668\u4e0b\u65b9" + "message": "在播放器下方" }, "black": { - "message": "\u7eaf\u9ed1" + "message": "纯黑" }, "blacklist": { - "message": "\u9ed1\u540d\u5355" + "message": "黑名单" }, "blockAll": { - "message": "\u62e6\u622a\u6240\u6709" + "message": "拦截所有" }, "blue": { - "message": "\u84dd\u8272" + "message": "蓝色" }, "blueGray": { - "message": "\u84dd\u7070\u8272" + "message": "蓝灰色" }, "bluelight": { - "message": "\u8272\u5f69\u67d4\u548c\u5ea6" + "message": "色彩柔和度" }, "brown": { - "message": "\u68d5\u8272" + "message": "棕色" }, "browser": { - "message": "\u6d4f\u89c8\u5668" + "message": "浏览器" }, "browserVersion": { - "message": "\u6d4f\u89c8\u5668\u7248\u672c" + "message": "浏览器版本" }, "bubbles": { - "message": "\u7f51\u683c" + "message": "网格" }, "bug": { "message": "Bug" }, "buttons": { - "message": "\u6309\u94ae" + "message": "按钮" }, "cancel": { - "message": "\u53d6\u6d88" + "message": "取消" }, "categories": { - "message": "\u5206\u7c7b" + "message": "分类" }, "channel": { - "message": "\u9891\u9053" + "message": "频道" }, "channels": { - "message": "\u9891\u9053" + "message": "频道" }, "clipboard": { - "message": "\u7c98\u8d34\u677f" + "message": "粘贴板" }, "codecH264": { - "message": "\u91c7\u7528 h.264 \u7f16\u7801" + "message": "采用 h.264 编码" }, "collapseOfSubscriptionSections": { - "message": "\u8ba2\u9605\u533a\u57df\u663e\u793a\u5c55\u5f00/\u6536\u8d77\u6309\u94ae" + "message": "订阅区域显示展开/收起按钮" }, "collapsed": { - "message": "\u6536\u8d77" + "message": "收起" }, "comments": { - "message": "\u8bc4\u8bba" + "message": "评论" }, "confirmationBeforeClosing": { - "message": "\u9875\u9762\u5173\u95ed\u786e\u8ba4" + "message": "页面关闭确认" }, "cookies": { "message": "Cookies" }, "cores": { - "message": "\u6838\u5fc3" + "message": "核心" }, "cropChapterTitles": { - "message": "\u88c1\u526a\u7ae0\u8282\u6807\u9898" + "message": "裁剪章节标题" }, "customCss": { - "message": "\u81ea\u5b9a\u4e49CSS" + "message": "自定义CSS" }, "customJs": { - "message": "\u81ea\u5b9a\u4e49JS" + "message": "自定义JS" }, "customMiniPlayer": { - "message": "\u81ea\u5b9a\u4e49\u8ff7\u4f60\u64ad\u653e\u5668" + "message": "自定义迷你播放器" }, "cyan": { - "message": "\u9752\u8272" + "message": "青色" }, "dark": { - "message": "\u9ed1\u6697" + "message": "黑暗" }, "darkTheme": { - "message": "\u591c\u95f4\u6a21\u5f0f" + "message": "夜间模式" }, "dateAndTime": { - "message": "\u65f6\u95f4\u4e0e\u65e5\u671f" + "message": "时间与日期" }, "dawn": { - "message": "\u9ece\u660e" + "message": "黎明" }, "decreasePlaybackSpeed": { - "message": "\u89c6\u9891\u51cf\u901f" + "message": "视频减速" }, "decreaseVolume": { - "message": "\u964d\u4f4e\u97f3\u91cf" + "message": "降低音量" }, "deepOrange": { - "message": "\u6df1\u6a59\u8272" + "message": "深橙色" }, "deepPurple": { - "message": "\u6df1\u7d2b\u8272" + "message": "深紫色" }, "defaultChannelTab": { - "message": "\u9ed8\u8ba4\u9891\u9053\u9875" + "message": "默认频道页" }, "deleteYoutubeCookies": { - "message": "\u6e05\u7a7a YouTube cookies" + "message": "清空 YouTube cookies" }, "description": { - "message": "\u89c6\u9891\u63cf\u8ff0" + "message": "视频描述" }, "desert": { - "message": "\u6c99\u6f20" + "message": "沙漠" }, "details": { - "message": "\u7ec6\u8282\u4fe1\u606f" + "message": "细节信息" }, "developerOptions": { - "message": "\u5f00\u53d1\u8005\u9009\u9879" + "message": "开发者选项" }, "device": { - "message": "\u8bbe\u5907" + "message": "设备" }, "dim": { - "message": "\u906e\u7f69\u5c42\u539a\u5ea6" + "message": "遮罩层厚度" }, "disabled": { - "message": "\u505c\u7528" + "message": "停用" }, "dislike": { - "message": "\u8e29\u4e00\u4e0b" + "message": "踩一下" }, "doNotChange": { - "message": "\u4e0d\u505a\u6539\u53d8" + "message": "不做改变" }, "donate": { - "message": "\u652f\u6301" + "message": "支持" }, "draggable": { - "message": "\u53ef\u62d6\u52a8" + "message": "可拖动" }, "email": { "message": "Email" }, "empty": { - "message": "\u6682\u65e0" + "message": "暂无" }, "enabled": { - "message": "\u542f\u7528" + "message": "启用" }, "enabledForced": { - "message": "\u5f3a\u5236\u542f\u7528" + "message": "强制启用" }, "expanded": { - "message": "\u5c55\u5f00" + "message": "展开" }, "exportSettings": { - "message": "\u5bfc\u51fa\u8bbe\u7f6e" + "message": "导出设置" }, "extension": { - "message": "\u6269\u5c55" + "message": "扩展" }, "file": { - "message": "\u6587\u4ef6" + "message": "文件" }, "filters": { - "message": "\u6ee4\u955c" + "message": "滤镜" }, "fitToWindow": { - "message": "\u7a97\u53e3\u81ea\u9002\u5e94" + "message": "窗口自适应" }, "flash": { "message": "Flash" }, "font": { - "message": "\u5b57\u4f53" + "message": "字体" }, "footer": { - "message": "\u5e95\u90e8\u680f" + "message": "底部栏" }, "forceSDR": { "message": "Force SDR" }, "forcedPlaybackSpeed": { - "message": "\u5f3a\u5236\u8bbe\u7f6e\u64ad\u653e\u901f\u5ea6" + "message": "强制设置播放速度" }, "forcedTheaterMode": { - "message": "\u5f3a\u5236\u8bbe\u7f6e\u5267\u573a\u6a21\u5f0f" + "message": "强制设置剧场模式" }, "forcedVolume": { - "message": "\u5f3a\u5236\u4fee\u6539\u97f3\u91cf" + "message": "强制修改音量" }, "foundABug": { - "message": "\u9047\u5230\u4e86Bug?" + "message": "遇到了Bug?" }, "fullWindow": { - "message": "\u5168\u5c4f" + "message": "全屏" }, "general": { - "message": "\u4e00\u822c\u8bbe\u7f6e" + "message": "一般设置" }, "geoPreference": { "message": "Geo Preference" @@ -312,522 +312,522 @@ "message": "GitHub" }, "goToSearchBox": { - "message": "\u8f6c\u5230\u641c\u7d22\u6846" + "message": "转到搜索框" }, "gpu": { "message": "GPU" }, "green": { - "message": "\u7eff\u8272" + "message": "绿色" }, "hdThumbnail": { - "message": "\u9ad8\u6e05\u7f29\u7565\u56fe" + "message": "高清缩略图" }, "hdThumbnails": { - "message": "\u9ad8\u6e05\u7f29\u7565\u56fe" + "message": "高清缩略图" }, "header": { - "message": "\u9876\u90e8\u680f" + "message": "顶部栏" }, "hidden": { - "message": "\u9690\u85cf" + "message": "隐藏" }, "hiddenOnVideoPage": { - "message": "\u5728\u89c6\u9891\u64ad\u653e\u9875\u9762\u65f6\u9690\u85cf" + "message": "在视频播放页面时隐藏" }, "hideAnimatedThumbnails": { - "message": "\u9690\u85cf\u52a8\u6001\u7f29\u7565\u56fe" + "message": "隐藏动态缩略图" }, "hideAnnotations": { - "message": "\u9690\u85cf\u9884\u89c8\u56fe" + "message": "隐藏预览图" }, "hideCards": { - "message": "\u9690\u85cf\u4fe1\u606f\u5361\u7247" + "message": "隐藏信息卡片" }, "hideControls": { - "message": "\u9690\u85cf\u64ad\u653e\u63a7\u5236\u5668" + "message": "隐藏播放控制器" }, "hideDetails": { - "message": "\u9690\u85cf\u8be6\u7ec6\u4fe1\u606f" + "message": "隐藏详细信息" }, "hideEndscreen": { - "message": "\u9690\u85cf\u7ed3\u675f\u753b\u9762" + "message": "隐藏结束画面" }, "hideFeaturedContent": { - "message": "\u9690\u85cf\u7cbe\u9009\u9891\u9053" + "message": "隐藏精选频道" }, "hideFooter": { - "message": "\u9690\u85cf\u5e95\u90e8\u680f" + "message": "隐藏底部栏" }, "hideGradientBottom": { - "message": "\u9690\u85cf\u5e95\u90e8\u6e10\u53d8\u5c42" + "message": "隐藏底部渐变层" }, "hidePlaylist": { - "message": "\u9690\u85cf\u64ad\u653e\u5217\u8868" + "message": "隐藏播放列表" }, "hideRightButtons": { - "message": "\u9690\u85cf\u53f3\u4fa7\u6309\u94ae" + "message": "隐藏右侧按钮" }, "hideScrollForDetails": { - "message": "\u9690\u85cf \u00ab\u6eda\u52a8\u81f3\u8be6\u7ec6\u4fe1\u606f\u00bb" + "message": "隐藏 «滚动至详细信息»" }, "hideThumbnailOverlay": { - "message": "\u9690\u85cf\u7f29\u7565\u56fe\u4e0a\u7684\u6309\u94ae" + "message": "隐藏缩略图上的按钮" }, "hideViewsCount": { - "message": "\u9690\u85cf\u89c2\u770b\u91cf" + "message": "隐藏观看量" }, "history": { - "message": "\u5386\u53f2\u8bb0\u5f55" + "message": "历史记录" }, "home": { - "message": "\u9996\u9875" + "message": "首页" }, "hover": { - "message": "\u60ac\u6d6e" + "message": "悬浮" }, "hoverOnVideoPage": { - "message": "\u5728\u89c6\u9891\u64ad\u653e\u9875\u9762\u65f6\u60ac\u6d6e\u663e\u793a" + "message": "在视频播放页面时悬浮显示" }, "howLongAgoTheVideoWasUploaded": { - "message": "\u6295\u7a3f\u4e8e\u591a\u4e45\u4e4b\u524d" + "message": "投稿于多久之前" }, "icons": { - "message": "\u56fe\u6807" + "message": "图标" }, "iconsOnly": { - "message": "\u4ec5\u663e\u793a\u56fe\u6807" + "message": "仅显示图标" }, "importSettings": { - "message": "\u5bfc\u5165\u8bbe\u7f6e" + "message": "导入设置" }, "improveLogo": { - "message": "\u4f18\u5316\u56fe\u6807" + "message": "优化图标" }, "improvedtubeIconInBrowser": { - "message": "ImprovedTube \u6269\u5c55\u7a0b\u5e8f\u56fe\u6807" + "message": "ImprovedTube 扩展程序图标" }, "improvedtubeIconOnYoutube": { - "message": "\u5728 YouTube \u663e\u793a ImprovedTube \u56fe\u6807" + "message": "在 YouTube 显示 ImprovedTube 图标" }, "improvedtubeLanguage": { - "message": "ImprovedTube \u8bed\u8a00" + "message": "ImprovedTube 语言" }, "improvedtubeVersion": { - "message": "ImprovedTube \u7248\u672c" + "message": "ImprovedTube 版本" }, "increasePlaybackSpeed": { - "message": "\u89c6\u9891\u52a0\u901f" + "message": "视频加速" }, "increaseVolume": { - "message": "\u589e\u52a0\u97f3\u91cf" + "message": "增加音量" }, "indigo": { - "message": "\u975b\u9752\u8272" + "message": "靛青色" }, "items": { - "message": "\u9879\u76ee" + "message": "项目" }, "languages": { - "message": "\u8bed\u8a00" + "message": "语言" }, "legacyYoutube": { - "message": "\u65e7\u7248 YouTube" + "message": "旧版 YouTube" }, "light": { - "message": "\u660e\u4eae" + "message": "明亮" }, "lightBlue": { - "message": "\u6d45\u84dd\u8272" + "message": "浅蓝色" }, "lightGreen": { - "message": "\u6d45\u7eff\u8272" + "message": "浅绿色" }, "like": { - "message": "\u9876\u4e00\u4e0b" + "message": "顶一下" }, "likes": { - "message": "\u9876/\u8e29\u603b\u6570" + "message": "顶/踩总数" }, "lime": { - "message": "\u77f3\u7070\u8272" + "message": "石灰色" }, "list": { - "message": "\u5217\u8868" + "message": "列表" }, "liveChat": { - "message": "\u5b9e\u65f6\u804a\u5929\u7a97" + "message": "实时聊天窗" }, "liveChatType": { - "message": "\u5b9e\u65f6\u804a\u5929\u7a97\u7c7b\u578b" + "message": "实时聊天窗类型" }, "loudnessNormalization": { - "message": "\u97f3\u91cf\u6807\u51c6\u5316" + "message": "音量标准化" }, "markWatchedVideos": { - "message": "\u6807\u8bb0\u4e3a\u5df2\u89c2\u770b" + "message": "标记为已观看" }, "mixer": { - "message": "\u6df7\u97f3\u5668" + "message": "混音器" }, "myColors": { - "message": "\u81ea\u5b9a\u4e49\u989c\u8272" + "message": "自定义颜色" }, "name": { - "message": "\u540d\u5b57" + "message": "名字" }, "nativeMiniPlayer": { - "message": "\u539f\u7248\u8ff7\u4f60\u64ad\u653e\u5668" + "message": "原版迷你播放器" }, "new": { - "message": "\u65b0\u7684" + "message": "新的" }, "nextVideo": { - "message": "\u4e0a\u4e00\u4e2a\u89c6\u9891" + "message": "上一个视频" }, "night": { - "message": "\u591c\u8272" + "message": "夜色" }, "noActiveFeatures": { - "message": "\u6ca1\u6709\u5df2\u542f\u7528\u7684\u529f\u80fd" + "message": "没有已启用的功能" }, "noOpenVideoTabs": { - "message": "\u6ca1\u6709\u5df2\u6253\u5f00\u7684\u89c6\u9891\u6807\u7b7e" + "message": "没有已打开的视频标签" }, "none": { - "message": "\u65e0" + "message": "无" }, "normal": { - "message": "\u6b63\u5e38" + "message": "正常" }, "old": { - "message": "\u65e7\u7248" + "message": "旧版" }, "onAllVideos": { - "message": "\u5728\u6240\u6709\u89c6\u9891" + "message": "在所有视频" }, "onSubscribedChannels": { - "message": "\u5728\u8ba2\u9605\u9891\u9053" + "message": "在订阅频道" }, "onlyActiveOnYoutube": { - "message": "\u4ec5\u5728 YouTube \u4e0a\u542f\u7528" + "message": "仅在 YouTube 上启用" }, "onlyOnePlayerInstancePlaying": { - "message": "\u540c\u65f6\u4ec5\u64ad\u653e\u4e00\u4e2a" + "message": "同时仅播放一个" }, "openPopupPlayer": { - "message": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00\u89c6\u9891/\u64ad\u653e\u5217\u8868" + "message": "在新窗口打开视频/播放列表" }, "orange": { - "message": "\u6a59\u8272" + "message": "橙色" }, "os": { - "message": "\u64cd\u4f5c\u7cfb\u7edf" + "message": "操作系统" }, "other": { - "message": "\u5176\u4ed6" + "message": "其他" }, "permissions": { - "message": "\u8bb8\u53ef" + "message": "许可" }, "pictureInPicture": { - "message": "\u753b\u4e2d\u753b" + "message": "画中画" }, "pink": { - "message": "\u7c89\u8272" + "message": "粉色" }, "plain": { - "message": "\u91ce\u5916" + "message": "野外" }, "platform": { - "message": "\u5e73\u53f0" + "message": "平台" }, "playPause": { - "message": "\u64ad\u653e/\u6682\u505c" + "message": "播放/暂停" }, "playbackSpeed": { - "message": "\u64ad\u653e\u901f\u5ea6" + "message": "播放速度" }, "player": { - "message": "\u64ad\u653e\u5668" + "message": "播放器" }, "playerColor": { - "message": "\u64ad\u653e\u5668\u989c\u8272" + "message": "播放器颜色" }, "playerSize": { - "message": "\u64ad\u653e\u5668\u5927\u5c0f" + "message": "播放器大小" }, "playlist": { - "message": "\u64ad\u653e\u5217\u8868" + "message": "播放列表" }, "playlists": { - "message": "\u7a0d\u540e\u89c2\u770b" + "message": "稍后观看" }, "popupPlayer": { - "message": "\u5f39\u51fa\u64ad\u653e\u5668" + "message": "弹出播放器" }, "position": { - "message": "\u4f4d\u7f6e" + "message": "位置" }, "pressAnyKeyOrScroll": { - "message": "\u6309\u4e0b\u4efb\u610f\u952e\u6216\u6eda\u52a8\u9f20\u6807\u6eda\u8f74." + "message": "按下任意键或滚动鼠标滚轴." }, "pressAnyKeyOrUseMouseWheel": { - "message": "\u6309\u4e0b\u4efb\u610f\u952e\u6216\u9f20\u6807\u6eda\u8f74." + "message": "按下任意键或鼠标滚轴." }, "previousVideo": { - "message": "\u4e0b\u4e00\u4e2a\u89c6\u9891" + "message": "下一个视频" }, "primaryColor": { - "message": "\u4e3b\u8272\u8c03" + "message": "主色调" }, "purple": { - "message": "\u7d2b\u8272" + "message": "紫色" }, "quality": { - "message": "\u753b\u8d28" + "message": "画质" }, "ram": { "message": "RAM" }, "rateUs": { - "message": "\u7ed9\u6211\u4eec\u8bc4\u4ef7" + "message": "给我们评价" }, "red": { - "message": "\u7ea2\u8272" + "message": "红色" }, "redDislikeButton": { - "message": "\u5c06\u3010\u8e29\u4e00\u4e0b\u3011\u8bbe\u7f6e\u4e3a\u7ea2\u8272" + "message": "将【踩一下】设置为红色" }, "relatedVideos": { - "message": "\u76f8\u5173\u89c6\u9891" + "message": "相关视频" }, "removeRelatedSearchResults": { - "message": "\u9690\u85cf\u641c\u7d22\u76f8\u5173\u7ed3\u679c" + "message": "隐藏搜索相关结果" }, "repeat": { - "message": "\u5faa\u73af" + "message": "循环" }, "reset": { - "message": "\u91cd\u7f6e" + "message": "重置" }, "resetAllSettings": { - "message": "\u91cd\u7f6e\u6240\u6709\u8bbe\u7f6e" + "message": "重置所有设置" }, "resetAllShortcuts": { - "message": "\u91cd\u7f6e\u6240\u6709\u5feb\u6377\u952e" + "message": "重置所有快捷键" }, "reverse": { - "message": "\u9006\u5e8f" + "message": "逆序" }, "rotate": { - "message": "\u65cb\u8f6c" + "message": "旋转" }, "save": { - "message": "\u4fdd\u5b58" + "message": "保存" }, "saveAs": { - "message": "\u53e6\u5b58\u4e3a" + "message": "另存为" }, "schedule": { - "message": "\u5b9a\u65f6\u5f00/\u5173" + "message": "定时开/关" }, "screen": { - "message": "\u5c4f\u5e55" + "message": "屏幕" }, "screenshot": { - "message": "\u622a\u56fe" + "message": "截图" }, "search": { - "message": "\u641c\u7d22" + "message": "搜索" }, "searchBarOnly": { - "message": "\u4ec5\u641c\u7d22\u680f" + "message": "仅搜索栏" }, "seekBackward10Seconds": { - "message": "\u5012\u900010\u79d2" + "message": "倒退10秒" }, "seekForward10Seconds": { - "message": "\u5feb\u8fdb10\u79d2" + "message": "快进10秒" }, "settings": { - "message": "ImprovedTube \u8bbe\u7f6e" + "message": "ImprovedTube 设置" }, "settingsSuccessfullyImported": { - "message": "\u8bbe\u7f6e\u5bfc\u5165\u6210\u529f" + "message": "设置导入成功" }, "shortcuts": { - "message": "\u5feb\u6377\u952e" + "message": "快捷键" }, "showCardsOnMouseHover": { - "message": "\u9f20\u6807\u60ac\u6d6e\u65f6\u663e\u793a\u4fe1\u606f\u5361\u7247" + "message": "鼠标悬浮时显示信息卡片" }, "showChannelVideosCount": { - "message": "\u663e\u793a\u9891\u9053\u5185\u89c6\u9891\u6570" + "message": "显示频道内视频数" }, "shuffle": { - "message": "\u968f\u673a" + "message": "随机" }, "sidebar": { - "message": "\u4fa7\u8fb9\u680f" + "message": "侧边栏" }, "spacebar": { - "message": "\u7a7a\u683c" + "message": "空格" }, "squaredUserImages": { - "message": "\u65b9\u5f62\u7528\u6237\u5934\u50cf" + "message": "方形用户头像" }, "static": { - "message": "\u9759\u6001" + "message": "静态" }, "statsForNerds": { - "message": "\u663e\u793a\u4e13\u4e1a\u4fe1\u606f" + "message": "显示专业信息" }, "step": { "message": "Step" }, "stop": { - "message": "\u505c\u6b62" + "message": "停止" }, "style": { - "message": "\u6837\u5f0f" + "message": "样式" }, "styles": { - "message": "\u6837\u5f0f" + "message": "样式" }, "subscriptions": { - "message": "\u8ba2\u9605\u5185\u5bb9" + "message": "订阅内容" }, "subtitles": { - "message": "\u526f\u6807\u9898" + "message": "副标题" }, "sunset": { - "message": "\u665a\u971e" + "message": "晚霞" }, "sunsetToSunrise": { - "message": "\u65e5\u843d\u5230\u65e5\u51fa" + "message": "日落到日出" }, "systemPeferenceDark": { - "message": "\u7cfb\u7edf\u504f\u597d: \u6df1\u8272" + "message": "系统偏好: 深色" }, "systemPeferenceLight": { - "message": "\u7cfb\u7edf\u504f\u597d: \u6d45\u8272" + "message": "系统偏好: 浅色" }, "teal": { - "message": "\u84dd\u7eff\u8272" + "message": "蓝绿色" }, "textColor": { - "message": "\u6587\u5b57\u989c\u8272" + "message": "文字颜色" }, "themes": { - "message": "\u4e3b\u9898" + "message": "主题" }, "thisWillRemoveAllCookies": { - "message": "\u5c06\u6e05\u7a7a\u6240\u6709 cookies." + "message": "将清空所有 cookies." }, "thisWillRemoveAllYouTubeCookies": { - "message": "\u5c06\u6e05\u7a7a\u6240\u6709 YouTube cookies" + "message": "将清空所有 YouTube cookies" }, "thisWillResetAllSettings": { - "message": "\u5c06\u91cd\u7f6e\u6240\u6709\u8bbe\u7f6e." + "message": "将重置所有设置." }, "thisWillResetAllShortcuts": { - "message": "\u5c06\u4f1a\u91cd\u7f6e\u6240\u6709\u5feb\u6377\u952e" + "message": "将会重置所有快捷键" }, "thumbnails": { - "message": "\u7f29\u7565\u56fe" + "message": "缩略图" }, "timeFrom": { - "message": "\u5f00\u59cb\u65f6\u95f4" + "message": "开始时间" }, "timeTo": { - "message": "\u7ed3\u675f\u65f6\u95f4" + "message": "结束时间" }, "todayAt": { - "message": "\u622a\u6b62\u4eca\u5929" + "message": "截止今天" }, "toggleCards": { - "message": "\u5207\u6362\u5361\u7247" + "message": "切换卡片" }, "topChat": { - "message": "\u70ed\u95e8\u804a\u5929" + "message": "热门聊天" }, "trailerAutoplay": { - "message": "\u81ea\u52a8\u64ad\u653e\u9884\u544a\u7247" + "message": "自动播放预告片" }, "translations": { - "message": "\u7ffb\u8bd1" + "message": "翻译" }, "transparentBackground": { - "message": "\u900f\u660e\u80cc\u666f" + "message": "透明背景" }, "trending": { - "message": "\u65f6\u4e0b\u6d41\u884c" + "message": "时下流行" }, "tryToReloadThePage": { - "message": "\u5c1d\u8bd5\u5237\u65b0\u9875\u9762" + "message": "尝试刷新页面" }, "turnOff": { - "message": "\u5173\u95ed\u65f6\u95f4" + "message": "关闭时间" }, "turnOn": { - "message": "\u5f00\u542f\u65f6\u95f4" + "message": "开启时间" }, "type": { - "message": "\u7c7b\u578b" + "message": "类型" }, "upNextAutoplay": { - "message": "\u81ea\u52a8\u64ad\u653e\u4e0b\u4e00\u89c6\u9891" + "message": "自动播放下一视频" }, "use24HourFormat": { - "message": "\u4f7f\u752824\u5c0f\u65f6\u5236" + "message": "使用24小时制" }, "version": { - "message": "\u7248\u672c" + "message": "版本" }, "video": { - "message": "\u89c6\u9891" + "message": "视频" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "\u6269\u5c55\u89c6\u9891\u7b80\u4ecb\u5230\u5206\u7c7b" + "message": "扩展视频简介到分类" }, "videoFormats": { - "message": "\u89c6\u9891\u683c\u5f0f" + "message": "视频格式" }, "videos": { - "message": "\u89c6\u9891" + "message": "视频" }, "volume": { - "message": "\u97f3\u91cf" + "message": "音量" }, "watchLater": { - "message": "\u7a0d\u540e\u89c2\u770b" + "message": "稍后观看" }, "watchTime": { - "message": "\u89c2\u770b\u65f6\u95f4" + "message": "观看时间" }, "whenTabIsChanged": { - "message": "\u5207\u6362\u6807\u7b7e\u65f6" + "message": "切换标签时" }, "white": { - "message": "\u767d\u8272" + "message": "白色" }, "yellow": { - "message": "\u9ec4\u8272" + "message": "黄色" }, "youtubeHeaderLeft": { - "message": "Youtube\u6807\u9898\uff08\u5de6\uff09" + "message": "Youtube标题(左)" }, "youtubeHeaderRight": { - "message": "Youtube\u6807\u9898\uff08\u53f3\uff09" + "message": "Youtube标题(右)" }, "youtubeHomePage": { - "message": "YouTube\u9ed8\u8ba4\u4e3b\u9875" + "message": "YouTube默认主页" }, "youtubeLanguage": { - "message": "YouTube \u8bed\u8a00" + "message": "YouTube 语言" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "\u91c7\u7528 H.264 \u7f16\u89e3\u7801\u65f6\uff0cYouTube \u4f1a\u5c06\u89c6\u9891\u753b\u8d28\u8bbe\u4e3a 1080p" + "message": "采用 H.264 编解码时,YouTube 会将视频画质设为 1080p" } } \ No newline at end of file diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 9d1cde224..677cc7638 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -1,165 +1,165 @@ { "ARROWDOWN": { - "message": "\u21e9" + "message": "⇩" }, "ARROWLEFT": { - "message": "\u21e6" + "message": "⇦" }, "ARROWRIGHT": { - "message": "\u21e8" + "message": "⇨" }, "ARROWUP": { - "message": "\u21e7" + "message": "⇧" }, "__MSG_description__": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { - "message": "\u95dc\u65bc" + "message": "關於" }, "accept": { - "message": "\u63a5\u53d7" + "message": "接受" }, "activate": { - "message": "\u555f\u7528" + "message": "啟用" }, "activateCaptions": { - "message": "\u958b\u555f\u5b57\u5e55" + "message": "開啟字幕" }, "activateFullscreen": { - "message": "\u958b\u555f\u5168\u87a2\u5e55" + "message": "開啟全螢幕" }, "activated": { - "message": "\u555f\u7528" + "message": "啟用" }, "activatedFeatures": { - "message": "\u5df2\u555f\u7528\u529f\u80fd" + "message": "已啟用功能" }, "activeFeatures": { - "message": "\u5df2\u555f\u7528\u529f\u80fd" + "message": "已啟用功能" }, "addScrollToTop": { - "message": "\u65b0\u589e\u300c\u56de\u5230\u9802\u90e8\u300d\u6309\u9215" + "message": "新增「回到頂部」按鈕" }, "ads": { - "message": "\u5ee3\u544a" + "message": "廣告" }, "all": { - "message": "\u6240\u6709" + "message": "所有" }, "allow": { - "message": "\u5141\u8a31" + "message": "允許" }, "allow60fps": { - "message": "\u5141\u8a31 60fps" + "message": "允許 60fps" }, "alwaysActive": { - "message": "\u59cb\u7d42\u6709\u6548" + "message": "始終有效" }, "alwaysShowProgressBar": { - "message": "\u4e00\u5f8b\u986f\u793a\u9032\u5ea6\u689d" + "message": "一律顯示進度條" }, "amber": { - "message": "\u7425\u73c0\u8272" + "message": "琥珀色" }, "analyzer": { - "message": "\u89c0\u770b\u7d00\u9304" + "message": "觀看紀錄" }, "appearance": { - "message": "\u5916\u8c8c" + "message": "外貌" }, "audio": { - "message": "\u97f3\u983b" + "message": "音頻" }, "audioFormats": { - "message": "\u97f3\u983b\u683c\u5f0f" + "message": "音頻格式" }, "auto": { - "message": "\u81ea\u52d5" + "message": "自動" }, "autoFullscreen": { - "message": "\u81ea\u52d5\u5168\u87a2\u5e55" + "message": "自動全螢幕" }, "autopauseWhenSwitchingTabs": { - "message": "\u5207\u63db\u5206\u9801\u6642\u81ea\u52d5\u66ab\u505c" + "message": "切換分頁時自動暫停" }, "autoplay": { - "message": "\u81ea\u52d5\u64ad\u653e" + "message": "自動播放" }, "backupAndReset": { - "message": "\u5099\u4efd & \u91cd\u7f6e" + "message": "備份 & 重置" }, "baseOnSystemColorScheme": { - "message": "\u4f7f\u7528\u7cfb\u7d71\u914d\u8272\u65b9\u6848" + "message": "使用系統配色方案" }, "belowPlayer": { - "message": "\u65bc\u64ad\u653e\u5668\u5e95\u4e0b" + "message": "於播放器底下" }, "black": { - "message": "\u9ed1\u8272" + "message": "黑色" }, "blacklist": { - "message": "\u9ed1\u540d\u55ae" + "message": "黑名單" }, "blockAll": { - "message": "\u5c01\u9396\u6240\u6709" + "message": "封鎖所有" }, "blue": { - "message": "\u85cd\u8272" + "message": "藍色" }, "blueGray": { - "message": "\u85cd\u7070\u8272" + "message": "藍灰色" }, "bluelight": { - "message": "\u85cd\u5149" + "message": "藍光" }, "brown": { - "message": "\u68d5\u8272" + "message": "棕色" }, "browser": { - "message": "\u700f\u89bd\u5668" + "message": "瀏覽器" }, "browserVersion": { - "message": "\u700f\u89bd\u5668\u7248\u672c" + "message": "瀏覽器版本" }, "bubbles": { "message": "Bubbles" }, "bug": { - "message": "\u554f\u984c" + "message": "問題" }, "buttons": { - "message": "\u6309\u9215" + "message": "按鈕" }, "cancel": { - "message": "\u53d6\u6d88" + "message": "取消" }, "categories": { - "message": "\u985e\u5225" + "message": "類別" }, "channel": { - "message": "\u983b\u9053" + "message": "頻道" }, "channels": { - "message": "\u983b\u9053" + "message": "頻道" }, "clipboard": { - "message": "\u526a\u8cbc\u7c3f" + "message": "剪貼簿" }, "codecH264": { - "message": "\u4f7f\u7528 H.264 \u89e3\u78bc" + "message": "使用 H.264 解碼" }, "collapseOfSubscriptionSections": { - "message": "\u65bc\u8a02\u95b1\u5340\u986f\u793a\u7e2e\u653e\u6309\u9215" + "message": "於訂閱區顯示縮放按鈕" }, "collapsed": { - "message": "\u7c21\u7e2e" + "message": "簡縮" }, "comments": { - "message": "\u8a55\u8ad6" + "message": "評論" }, "confirmationBeforeClosing": { - "message": "\u95dc\u9589\u524d\u5148\u78ba\u8a8d" + "message": "關閉前先確認" }, "cookies": { "message": "Cookies" @@ -168,660 +168,660 @@ "message": "Cores" }, "cropChapterTitles": { - "message": "\u622a\u65b7\u7ae0\u7bc0\u540d\u7a31" + "message": "截斷章節名稱" }, "customCss": { - "message": "\u81ea\u8a02 CSS" + "message": "自訂 CSS" }, "customJs": { - "message": "\u81ea\u8a02 JS" + "message": "自訂 JS" }, "customMiniPlayer": { - "message": "\u81ea\u8a02\u8ff7\u4f60\u64ad\u653e\u5668" + "message": "自訂迷你播放器" }, "cyan": { - "message": "\u9752\u8272" + "message": "青色" }, "dark": { - "message": "\u6697\u9ed1" + "message": "暗黑" }, "darkTheme": { - "message": "\u6697\u9ed1\u4e3b\u984c" + "message": "暗黑主題" }, "dateAndTime": { - "message": "\u65e5\u671f\u548c\u6642\u9593" + "message": "日期和時間" }, "dawn": { - "message": "\u9ece\u660e" + "message": "黎明" }, "decreasePlaybackSpeed": { - "message": "\u964d\u4f4e\u64ad\u653e\u901f\u5ea6" + "message": "降低播放速度" }, "decreaseVolume": { - "message": "\u6e1b\u8f15\u97f3\u91cf" + "message": "減輕音量" }, "deepOrange": { - "message": "\u6df1\u6a59\u8272" + "message": "深橙色" }, "deepPurple": { - "message": "\u6df1\u7d2b\u8272" + "message": "深紫色" }, "defaultChannelTab": { - "message": "\u9810\u8a2d\u983b\u9053\u6a19\u7c64" + "message": "預設頻道標籤" }, "deleteYoutubeCookies": { - "message": "\u522a\u9664 YouTube cookies" + "message": "刪除 YouTube cookies" }, "description": { - "message": "\u5f71\u7247\u63cf\u8ff0" + "message": "影片描述" }, "desert": { - "message": "\u6c99\u6f20" + "message": "沙漠" }, "details": { - "message": "\u7d30\u7bc0" + "message": "細節" }, "developerOptions": { - "message": "\u958b\u767c\u4eba\u54e1\u9078\u9805" + "message": "開發人員選項" }, "device": { - "message": "\u88dd\u7f6e" + "message": "裝置" }, "dim": { - "message": "\u5149\u7dda\u6697\u5ea6" + "message": "光線暗度" }, "disabled": { - "message": "\u95dc\u9589" + "message": "關閉" }, "dislike": { - "message": "\u4e0d\u559c\u6b61" + "message": "不喜歡" }, "doNotChange": { - "message": "\u4e0d\u8981\u6539\u8b8a" + "message": "不要改變" }, "donate": { - "message": "\u6350\u8d08" + "message": "捐贈" }, "draggable": { - "message": "\u53ef\u62d6\u52d5" + "message": "可拖動" }, "email": { "message": "Email" }, "empty": { - "message": "\u7a7a\u767d" + "message": "空白" }, "enabled": { - "message": "\u555f\u7528" + "message": "啟用" }, "enabledForced": { - "message": "\u5f37\u5236\u555f\u7528" + "message": "強制啟用" }, "expanded": { - "message": "\u64f4\u5c55" + "message": "擴展" }, "exportSettings": { - "message": "\u5c0e\u51fa\u8a2d\u5b9a" + "message": "導出設定" }, "extension": { - "message": "\u64f4\u5145\u5143\u4ef6" + "message": "擴充元件" }, "file": { - "message": "\u6a94\u6848" + "message": "檔案" }, "filters": { - "message": "\u6ffe\u93e1" + "message": "濾鏡" }, "fitToWindow": { - "message": "\u4f9d\u8996\u7a97\u5927\u5c0f\u7e2e\u653e" + "message": "依視窗大小縮放" }, "flash": { "message": "Flash" }, "font": { - "message": "\u5b57\u9ad4" + "message": "字體" }, "footer": { - "message": "\u9801\u8173" + "message": "頁腳" }, "forceSDR": { - "message": "\u5f37\u5236\u4f7f\u7528\u6a19\u6e96\u52d5\u614b\u7bc4\u570d (SDR)" + "message": "強制使用標準動態範圍 (SDR)" }, "forcedPlaybackSpeed": { - "message": "\u5f37\u5236\u64ad\u653e\u901f\u5ea6" + "message": "強制播放速度" }, "forcedTheaterMode": { - "message": "\u5f37\u5236\u5287\u9662\u6a21\u5f0f" + "message": "強制劇院模式" }, "forcedVolume": { - "message": "\u5f37\u5236\u64ad\u653e\u97f3\u91cf" + "message": "強制播放音量" }, "foundABug": { - "message": "\u9047\u5230\u554f\u984c\u4e86\u55ce?" + "message": "遇到問題了嗎?" }, "fullWindow": { - "message": "\u5168\u87a2\u5e55" + "message": "全螢幕" }, "general": { - "message": "\u4e00\u822c" + "message": "一般" }, "github": { "message": "GitHub" }, "goToSearchBox": { - "message": "\u8f49\u5230\u641c\u7d22\u6846" + "message": "轉到搜索框" }, "gpu": { "message": "GPU" }, "green": { - "message": "\u7da0\u8272" + "message": "綠色" }, "hdThumbnail": { - "message": "HD \u7e2e\u5716" + "message": "HD 縮圖" }, "hdThumbnails": { - "message": "HD \u7e2e\u5716" + "message": "HD 縮圖" }, "header": { - "message": "\u6a19\u982d" + "message": "標頭" }, "hidden": { - "message": "\u96b1\u85cf" + "message": "隱藏" }, "hiddenOnVideoPage": { - "message": "\u65bc\u5f71\u7247\u9801\u9762\u81ea\u52d5\u96b1\u85cf" + "message": "於影片頁面自動隱藏" }, "hideAnimatedThumbnails": { - "message": "\u96b1\u85cf\u52d5\u614b\u7684\u7e2e\u7565\u5716" + "message": "隱藏動態的縮略圖" }, "hideAnnotations": { - "message": "\u96b1\u85cf\u8a3b\u89e3" + "message": "隱藏註解" }, "hideCards": { - "message": "\u96b1\u85cf\u8cc7\u8a0a\u5361" + "message": "隱藏資訊卡" }, "hideControls": { - "message": "\u96b1\u85cf\u64ad\u653e\u5668\u63a7\u5236" + "message": "隱藏播放器控制" }, "hideDetails": { - "message": "\u96b1\u85cf\u7d30\u7bc0" + "message": "隱藏細節" }, "hideEndscreen": { - "message": "\u96b1\u85cf\u7d50\u675f\u756b\u9762" + "message": "隱藏結束畫面" }, "hideFeaturedContent": { - "message": "\u96b1\u85cf\u7cbe\u9078\u5f71\u7247" + "message": "隱藏精選影片" }, "hideFooter": { - "message": "\u96b1\u85cf\u9801\u8173" + "message": "隱藏頁腳" }, "hideGradientBottom": { - "message": "\u96b1\u85cf\u5e95\u90e8\u6f38\u5c64\u5716\u5c64" + "message": "隱藏底部漸層圖層" }, "hidePlaylist": { - "message": "\u96b1\u85cf\u64ad\u653e\u6e05\u55ae" + "message": "隱藏播放清單" }, "hideRightButtons": { - "message": "\u96b1\u85cf\u53f3\u5074\u6309\u9215" + "message": "隱藏右側按鈕" }, "hideScrollForDetails": { - "message": "\u96b1\u85cf\u300c\u5411\u4e0b\u6372\u52d5\u5373\u53ef\u67e5\u770b\u8a73\u60c5\u300d" + "message": "隱藏「向下捲動即可查看詳情」" }, "hideThumbnailOverlay": { - "message": "\u96b1\u85cf\u7e2e\u5716\u4e0a\u7684\u6309\u9215" + "message": "隱藏縮圖上的按鈕" }, "hideViewsCount": { - "message": "\u96b1\u85cf\u89c0\u770b\u6b21\u6578" + "message": "隱藏觀看次數" }, "history": { - "message": "\u89c0\u770b\u8a18\u9304" + "message": "觀看記錄" }, "home": { - "message": "\u9996\u9801" + "message": "首頁" }, "hover": { - "message": "\u6ed1\u9f20\u66ab\u7559\u6642\u986f\u793a" + "message": "滑鼠暫留時顯示" }, "hoverOnVideoPage": { - "message": "\u65bc\u5f71\u7247\u9801\u9762\u6ed1\u9f20\u66ab\u7559\u6642\u986f\u793a" + "message": "於影片頁面滑鼠暫留時顯示" }, "howLongAgoTheVideoWasUploaded": { - "message": "\u986f\u793a\u5f71\u7247\u4e0a\u50b3\u6642\u9593" + "message": "顯示影片上傳時間" }, "icons": { - "message": "\u5716\u6a19" + "message": "圖標" }, "iconsOnly": { - "message": "\u53ea\u6709\u5716\u6a19" + "message": "只有圖標" }, "importSettings": { - "message": "\u5c0e\u5165\u8a2d\u5b9a" + "message": "導入設定" }, "improveLogo": { - "message": "\u6539\u9032 YouTube \u5716\u793a" + "message": "改進 YouTube 圖示" }, "improvedtubeIconInBrowser": { - "message": "\u65bc\u700f\u89bd\u5668\u4e2d\u986f\u793a ImprovedTube \u5716\u793a" + "message": "於瀏覽器中顯示 ImprovedTube 圖示" }, "improvedtubeIconOnYoutube": { - "message": "\u65bc YouTube \u4e2d\u986f\u793a ImprovedTube \u5716\u793a" + "message": "於 YouTube 中顯示 ImprovedTube 圖示" }, "improvedtubeLanguage": { - "message": "ImprovedTube \u8a9e\u8a00" + "message": "ImprovedTube 語言" }, "improvedtubeVersion": { - "message": "ImprovedTube \u7248\u672c" + "message": "ImprovedTube 版本" }, "increasePlaybackSpeed": { - "message": "\u52a0\u5feb\u64ad\u653e\u901f\u5ea6" + "message": "加快播放速度" }, "increaseVolume": { - "message": "\u589e\u52a0\u97f3\u91cf" + "message": "增加音量" }, "indigo": { - "message": "\u975b\u9752" + "message": "靛青" }, "items": { - "message": "\u9805\u76ee" + "message": "項目" }, "languages": { - "message": "\u8a9e\u8a00" + "message": "語言" }, "legacyYoutube": { - "message": "\u820a\u7248 YouTube" + "message": "舊版 YouTube" }, "light": { "message": "Light" }, "lightBlue": { - "message": "\u6dfa\u85cd\u8272" + "message": "淺藍色" }, "lightGreen": { - "message": "\u6dfa\u7da0\u8272" + "message": "淺綠色" }, "like": { - "message": "\u559c\u6b61" + "message": "喜歡" }, "likes": { - "message": "\u986f\u793a\u6309\u8b9a\u6578\u91cf" + "message": "顯示按讚數量" }, "lime": { - "message": "\u840a\u59c6\u8272" + "message": "萊姆色" }, "list": { - "message": "\u6e05\u55ae" + "message": "清單" }, "liveChat": { - "message": "Live \u804a\u5929\u8996\u7a97" + "message": "Live 聊天視窗" }, "liveChatType": { - "message": "Live \u804a\u5929\u8996\u7a97\u7a2e\u985e" + "message": "Live 聊天視窗種類" }, "loudnessNormalization": { - "message": "\u97f3\u91cf\u6a19\u6e96\u5316" + "message": "音量標準化" }, "markWatchedVideos": { - "message": "\u6a19\u8a18\u5df2\u89c0\u770b\u5f71\u7247" + "message": "標記已觀看影片" }, "mixer": { - "message": "\u97f3\u91cf\u6df7\u5408\u5668" + "message": "音量混合器" }, "myColors": { - "message": "\u81ea\u8a02\u4e3b\u8272" + "message": "自訂主色" }, "name": { - "message": "\u540d\u7a31" + "message": "名稱" }, "nativeMiniPlayer": { - "message": "\u5167\u5efa\u8ff7\u4f60\u64ad\u653e\u5668" + "message": "內建迷你播放器" }, "new": { - "message": "\u65b0\u589e" + "message": "新增" }, "nextVideo": { - "message": "\u4e0b\u4e00\u500b\u5f71\u7247" + "message": "下一個影片" }, "night": { - "message": "\u591c\u665a" + "message": "夜晚" }, "noActiveFeatures": { - "message": "\u7121\u5df2\u555f\u7528\u529f\u80fd" + "message": "無已啟用功能" }, "noOpenVideoTabs": { - "message": "\u7121\u5df2\u958b\u555f\u4e4b\u5f71\u7247\u9801\u9762" + "message": "無已開啟之影片頁面" }, "none": { - "message": "\u7121" + "message": "無" }, "normal": { - "message": "\u6b63\u5e38" + "message": "正常" }, "old": { - "message": "\u820a\u7248" + "message": "舊版" }, "onAllVideos": { - "message": "\u65bc\u6240\u6709\u5f71\u7247\u4e2d" + "message": "於所有影片中" }, "onSubscribedChannels": { - "message": "\u65bc\u5df2\u8a02\u95b1\u7684\u983b\u9053\u4e2d" + "message": "於已訂閱的頻道中" }, "onlyActiveOnYoutube": { - "message": "\u50c5\u5728 YouTube \u4e0a\u6709\u6548" + "message": "僅在 YouTube 上有效" }, "onlyOnePlayerInstancePlaying": { - "message": "\u540c\u6642\u9593\u50c5\u9650\u64ad\u653e\u55ae\u4e00\u5f71\u7247" + "message": "同時間僅限播放單一影片" }, "openPopupPlayer": { - "message": "\u958b\u555f\u5f71\u7247\u6216\u64ad\u653e\u6e05\u55ae\u65bc\u65b0\u8996\u7a97\u4e2d" + "message": "開啟影片或播放清單於新視窗中" }, "orange": { - "message": "\u6a58\u8272" + "message": "橘色" }, "os": { - "message": "\u4f5c\u696d\u7cfb\u7d71" + "message": "作業系統" }, "other": { - "message": "\u5176\u4ed6" + "message": "其他" }, "permissions": { - "message": "\u6b0a\u9650" + "message": "權限" }, "pictureInPicture": { - "message": "\u5b50\u6bcd\u756b\u9762" + "message": "子母畫面" }, "pink": { - "message": "\u7c89\u7d05\u8272" + "message": "粉紅色" }, "plain": { - "message": "\u6a38\u7d20" + "message": "樸素" }, "platform": { - "message": "\u5e73\u53f0" + "message": "平台" }, "playPause": { - "message": "\u64ad\u653e/\u66ab\u505c" + "message": "播放/暫停" }, "playbackSpeed": { - "message": "\u64ad\u653e\u901f\u5ea6" + "message": "播放速度" }, "player": { - "message": "\u64ad\u653e\u5668" + "message": "播放器" }, "playerColor": { - "message": "\u5f71\u7247\u9032\u5ea6\u689d\u984f\u8272" + "message": "影片進度條顏色" }, "playerSize": { - "message": "\u64ad\u653e\u5668\u5927\u5c0f" + "message": "播放器大小" }, "playlist": { - "message": "\u64ad\u653e\u5217\u8868" + "message": "播放列表" }, "playlists": { - "message": "\u64ad\u653e\u6e05\u55ae" + "message": "播放清單" }, "popupPlayer": { - "message": "\u5f48\u51fa\u64ad\u653e\u5668" + "message": "彈出播放器" }, "position": { - "message": "\u4f4d\u7f6e" + "message": "位置" }, "pressAnyKeyOrScroll": { - "message": "\u6309\u4efb\u610f\u9375\u6216\u4f7f\u7528\u6ed1\u9f20\u6efe\u8f2a\u3002" + "message": "按任意鍵或使用滑鼠滾輪。" }, "pressAnyKeyOrUseMouseWheel": { - "message": "\u6309\u4efb\u610f\u9375\u6216\u4f7f\u7528\u9f20\u6a19\u6efe\u8f2a\u3002" + "message": "按任意鍵或使用鼠標滾輪。" }, "previousVideo": { - "message": "\u56de\u5230\u4e4b\u524d\u7684\u5f71\u7247" + "message": "回到之前的影片" }, "primaryColor": { - "message": "\u4e3b\u8981\u984f\u8272" + "message": "主要顏色" }, "purple": { - "message": "\u7d2b\u8272" + "message": "紫色" }, "quality": { - "message": "\u54c1\u8cea" + "message": "品質" }, "ram": { "message": "RAM" }, "rateUs": { - "message": "\u8a55\u5206" + "message": "評分" }, "red": { - "message": "\u7d05\u8272" + "message": "紅色" }, "redDislikeButton": { - "message": "\u5c07\u300c\u4e0d\u559c\u6b61\u300d\u6578\u91cf\u4ee5\u7d05\u8272\u986f\u793a" + "message": "將「不喜歡」數量以紅色顯示" }, "relatedVideos": { - "message": "\u63a8\u85a6\u5f71\u7247" + "message": "推薦影片" }, "removeRelatedSearchResults": { - "message": "\u79fb\u9664\u641c\u5c0b\u76f8\u95dc\u7d50\u679c" + "message": "移除搜尋相關結果" }, "repeat": { - "message": "\u91cd\u8907\u64ad\u653e" + "message": "重複播放" }, "reset": { - "message": "\u91cd\u7f6e" + "message": "重置" }, "resetAllSettings": { - "message": "\u91cd\u7f6e\u6240\u6709\u8a2d\u5b9a" + "message": "重置所有設定" }, "resetAllShortcuts": { - "message": "\u91cd\u7f6e\u6240\u6709\u5feb\u6377\u9375" + "message": "重置所有快捷鍵" }, "reverse": { - "message": "\u56de\u64ad" + "message": "回播" }, "rotate": { - "message": "\u65cb\u8f49\u5f71\u7247" + "message": "旋轉影片" }, "save": { - "message": "\u5132\u5b58" + "message": "儲存" }, "saveAs": { - "message": "\u53e6\u5b58\u70ba" + "message": "另存為" }, "schedule": { - "message": "\u6392\u7a0b" + "message": "排程" }, "screen": { - "message": "\u87a2\u5e55" + "message": "螢幕" }, "screenshot": { - "message": "\u622a\u5716" + "message": "截圖" }, "search": { - "message": "\u641c\u5c0b" + "message": "搜尋" }, "searchBarOnly": { - "message": "\u50c5\u986f\u793a\u641c\u5c0b\u5217" + "message": "僅顯示搜尋列" }, "seekBackward10Seconds": { - "message": "\u5012\u900010\u79d2" + "message": "倒退10秒" }, "seekForward10Seconds": { - "message": "\u524d\u903210\u79d2" + "message": "前進10秒" }, "settings": { - "message": "\u8a2d\u5b9a" + "message": "設定" }, "settingsSuccessfullyImported": { - "message": "\u8a2d\u5b9a\u6210\u529f\u5c0e\u5165" + "message": "設定成功導入" }, "shortcuts": { - "message": "\u5feb\u6377\u9375" + "message": "快捷鍵" }, "showCardsOnMouseHover": { - "message": "\u6ed1\u9f20\u66ab\u7559\u6642\u986f\u793a\u8cc7\u8a0a\u5361" + "message": "滑鼠暫留時顯示資訊卡" }, "showChannelVideosCount": { - "message": "\u986f\u793a\u983b\u9053\u5f71\u7247\u6578\u91cf" + "message": "顯示頻道影片數量" }, "shuffle": { - "message": "\u96a8\u6a5f\u64ad\u653e" + "message": "隨機播放" }, "sidebar": { - "message": "\u5074\u908a\u6b04" + "message": "側邊欄" }, "spacebar": { - "message": "\u7a7a\u683c\u9375" + "message": "空格鍵" }, "squaredUserImages": { - "message": "\u65b9\u5f62\u7528\u6236\u5716\u50cf" + "message": "方形用戶圖像" }, "static": { - "message": "\u975c\u6b62" + "message": "靜止" }, "statsForNerds": { - "message": "\u986f\u793a\u300c\u7d71\u8a08\u8cc7\u6599\u300d\u6309\u9215" + "message": "顯示「統計資料」按鈕" }, "step": { "message": "Step" }, "stop": { - "message": "\u505c\u6b62" + "message": "停止" }, "style": { - "message": "\u6a23\u5f0f" + "message": "樣式" }, "styles": { - "message": "\u6a23\u5f0f" + "message": "樣式" }, "subscriptions": { - "message": "\u8a02\u95b1\u5167\u5bb9" + "message": "訂閱內容" }, "subtitles": { - "message": "\u5141\u8a31\u5b57\u5e55" + "message": "允許字幕" }, "sunset": { - "message": "\u65e5\u843d" + "message": "日落" }, "sunsetToSunrise": { - "message": "\u65e5\u51fa\u81f3\u5165\u843d" + "message": "日出至入落" }, "systemPeferenceDark": { - "message": "\u7cfb\u7d71\u9810\u8a2d: \u6697\u9ed1\u6a21\u5f0f" + "message": "系統預設: 暗黑模式" }, "systemPeferenceLight": { - "message": "\u7cfb\u7d71\u9810\u8a2d: \u767d\u5929\u6a21\u5f0f" + "message": "系統預設: 白天模式" }, "teal": { - "message": "\u85cd\u7da0\u8272" + "message": "藍綠色" }, "textColor": { - "message": "\u6587\u5b57\u984f\u8272" + "message": "文字顏色" }, "themes": { - "message": "\u4e3b\u984c" + "message": "主題" }, "thisWillRemoveAllCookies": { - "message": "\u9019\u5c07\u522a\u9664\u6240\u6709\u7684 cookies\u3002" + "message": "這將刪除所有的 cookies。" }, "thisWillRemoveAllYouTubeCookies": { - "message": "\u9019\u5c07\u522a\u9664\u6240\u6709 YouTube Cookies\u3002" + "message": "這將刪除所有 YouTube Cookies。" }, "thisWillResetAllSettings": { - "message": "\u9019\u5c07\u91cd\u7f6e\u6240\u6709\u8a2d\u5b9a\u3002" + "message": "這將重置所有設定。" }, "thisWillResetAllShortcuts": { - "message": "\u9019\u5c07\u91cd\u7f6e\u6240\u6709\u5feb\u6377\u9375\u3002" + "message": "這將重置所有快捷鍵。" }, "thumbnails": { - "message": "\u7e2e\u7565\u5716" + "message": "縮略圖" }, "timeFrom": { - "message": "\u958b\u59cb\u6642\u9593" + "message": "開始時間" }, "timeTo": { - "message": "\u7d50\u675f\u6642\u9593" + "message": "結束時間" }, "todayAt": { - "message": "\u81ea\u4eca\u65e5" + "message": "自今日" }, "toggleCards": { - "message": "\u555f\u7528\u7d50\u675f\u756b\u9762" + "message": "啟用結束畫面" }, "toggleControls": { - "message": "\u958b\u95dc\u64ad\u653e\u5668\u63a7\u5236" + "message": "開關播放器控制" }, "topChat": { "message": "Top chat" }, "trailerAutoplay": { - "message": "\u9810\u544a\u7247\u81ea\u52d5\u64ad\u653e" + "message": "預告片自動播放" }, "translations": { - "message": "\u7ffb\u8b6f" + "message": "翻譯" }, "transparentBackground": { - "message": "\u900f\u660e\u80cc\u666f" + "message": "透明背景" }, "trending": { - "message": "\u767c\u71d2\u5f71\u7247" + "message": "發燒影片" }, "tryToReloadThePage": { - "message": "\u5617\u8a66\u91cd\u65b0\u6574\u7406\u9801\u9762" + "message": "嘗試重新整理頁面" }, "type": { - "message": "\u7a2e\u985e" + "message": "種類" }, "upNextAutoplay": { - "message": "\u81ea\u52d5\u64ad\u653e\u4e0b\u4e00\u500b\u5f71\u7247" + "message": "自動播放下一個影片" }, "use24HourFormat": { - "message": "\u4f7f\u752824\u5c0f\u6642\u683c\u5f0f" + "message": "使用24小時格式" }, "version": { - "message": "\u7248\u672c" + "message": "版本" }, "video": { - "message": "\u5f71\u7247" + "message": "影片" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "\u5f71\u7247\u6558\u8ff0\u5c07\u81ea\u52d5\u5c55\u958b\u4ee5\u986f\u793a\u5f71\u7247\u5206\u985e\u540d\u7a31" + "message": "影片敘述將自動展開以顯示影片分類名稱" }, "videoFormats": { - "message": "\u5f71\u7247\u683c\u5f0f" + "message": "影片格式" }, "videos": { - "message": "\u5f71\u7247" + "message": "影片" }, "volume": { - "message": "\u97f3\u91cf" + "message": "音量" }, "watchLater": { - "message": "\u7a0d\u5f8c\u89c0\u770b" + "message": "稍後觀看" }, "watchTime": { - "message": "\u5df2\u89c0\u770b\u6642\u9593" + "message": "已觀看時間" }, "whenTabIsChanged": { - "message": "\u7576\u5206\u9801\u6539\u8b8a\u6642" + "message": "當分頁改變時" }, "white": { - "message": "\u767d\u8272" + "message": "白色" }, "yellow": { - "message": "\u9ec3\u8272" + "message": "黃色" }, "youtubeHeaderLeft": { - "message": "YouTube \u6a19\u982d (\u5de6)" + "message": "YouTube 標頭 (左)" }, "youtubeHeaderRight": { - "message": "YouTube \u6a19\u982d (\u53f3)" + "message": "YouTube 標頭 (右)" }, "youtubeHomePage": { - "message": "\u9810\u8a2d\u7684 YouTube \u4e3b\u9801" + "message": "預設的 YouTube 主頁" }, "youtubeLanguage": { - "message": "YouTube \u8a9e\u8a00" + "message": "YouTube 語言" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "\u4f7f\u7528 H.264 \u7de8\u78bc\u6642\uff0cYouTube \u6703\u5c07\u756b\u8cea\u9650\u5236\u70ba 1080p \u5167\u3002" + "message": "使用 H.264 編碼時,YouTube 會將畫質限制為 1080p 內。" } } \ No newline at end of file diff --git a/py/locale.py b/py/locale.py index 60afcf245..0f484d3d0 100644 --- a/py/locale.py +++ b/py/locale.py @@ -6,7 +6,8 @@ # 3.0 Get list of files # 4.0 Add item # 5.0 Remove item -# 6.0 Initialization +# 6.0 Decode +# 7.0 Initialization #--------------------------------------------------------------- #--------------------------------------------------------------- @@ -67,7 +68,7 @@ def addItem(allFiles): } json_file.seek(0) - json.dump(data, json_file, indent=4, sort_keys=True) + json.dump(data, json_file, ensure_ascii=False, indent=4, sort_keys=True) json_file.truncate() @@ -86,12 +87,26 @@ def removeItem(allFiles): del data[key] json_file.seek(0) - json.dump(data, json_file, indent=4, sort_keys=True) + json.dump(data, json_file, ensure_ascii=False, indent=4, sort_keys=True) json_file.truncate() #--------------------------------------------------------------- -# 6.0 INITIALIZATION +# 6.0 DECODE +#--------------------------------------------------------------- + +def decodeCharacters(allFiles): + for keyFile in allFiles: + with open(keyFile, "r+") as json_file: + data = json.load(json_file) + + json_file.seek(0) + json.dump(data, json_file, ensure_ascii=False, indent=4, sort_keys=True) + json_file.truncate() + + +#--------------------------------------------------------------- +# 7.0 INITIALIZATION #--------------------------------------------------------------- allFiles = getListOfFiles("../_locales/") @@ -100,6 +115,7 @@ def removeItem(allFiles): -------------------------------- Add item: 1 Remove item: 2 +Decode: 3 -------------------------------- Enter number: """) @@ -107,4 +123,6 @@ def removeItem(allFiles): if operation == "1": addItem(allFiles) elif operation == "2" : - removeItem(allFiles) \ No newline at end of file + removeItem(allFiles) +elif operation == "3" : + decodeCharacters(allFiles) \ No newline at end of file From 75fa432b33e003c5b5ec09b8b2a225fa5877c4b8 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 10 May 2021 11:53:27 +0300 Subject: [PATCH 0136/1224] Fixed extension description --- _locales/ar/messages.json | 2 +- _locales/bn/messages.json | 2 +- _locales/de/messages.json | 2 +- _locales/el/messages.json | 2 +- _locales/en/messages.json | 2 +- _locales/es/messages.json | 2 +- _locales/fr/messages.json | 2 +- _locales/hin/messages.json | 2 +- _locales/hr/messages.json | 2 +- _locales/id/messages.json | 2 +- _locales/it/messages.json | 2 +- _locales/ja/messages.json | 2 +- _locales/ko/messages.json | 2 +- _locales/nb_NO/messages.json | 2 +- _locales/nl/messages.json | 2 +- _locales/no/messages.json | 2 +- _locales/pl/messages.json | 2 +- _locales/pt_BR/messages.json | 2 +- _locales/pt_PT/messages.json | 2 +- _locales/ro/messages.json | 2 +- _locales/ru/messages.json | 2 +- _locales/sk/messages.json | 2 +- _locales/tr/messages.json | 2 +- _locales/zh_CN/messages.json | 2 +- _locales/zh_TW/messages.json | 2 +- manifest.json | 2 +- 26 files changed, 26 insertions(+), 26 deletions(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index ceefa49cf..c13b8f767 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index f68271dd2..93dde5775 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 5103bc6f1..5f8223ca8 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 9086dfe56..ddad5cb20 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 70ac3d127..cec8f8ee3 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 756549635..7c37a7313 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 523dd70ba..6781843d1 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index a4c289cfb..a199357b2 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 02aabdfe7..844ca59a9 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/id/messages.json b/_locales/id/messages.json index dc2247a98..154548659 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/it/messages.json b/_locales/it/messages.json index d68603aab..d96060c0a 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 650d26478..36dae6662 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index fa9c0e85e..6a5580c97 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index aaf25586b..c556d1765 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index ad9546b4a..c69cdd4c5 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/no/messages.json b/_locales/no/messages.json index a5d2f31e0..3871982b5 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 95d395a75..5a7add1a2 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 5749f9bf1..0aa16b601 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index d853d1504..9eb9fbbcf 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 2cefbd7d1..3619a8ba4 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index bc6a5a9cc..cce2669ea 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index c51630d2d..43eaaaf14 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 053629ad4..ee4d19375 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index a1da5481d..67c499bc7 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 677cc7638..8d854d5de 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -11,7 +11,7 @@ "ARROWUP": { "message": "⇧" }, - "__MSG_description__": { + "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "about": { diff --git a/manifest.json b/manifest.json index 88433118c..140b53f39 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", - "description": "__MSG_description__", + "description": "__MSG_description_ext__", "version": "3.300", "default_locale": "en", "icons": { From cffb1d32e62f17a33de586c4951a819ecc493caf Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 10 May 2021 14:15:01 +0300 Subject: [PATCH 0137/1224] Fixed player buttons size --- content-styles.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content-styles.css b/content-styles.css index b5d7bb52d..a01d21b40 100644 --- a/content-styles.css +++ b/content-styles.css @@ -5456,6 +5456,10 @@ html[it-mini-player-cursor='nw-resize']::after { 4.4 SCREENSHOT ------------------------------------------------------------------------------*/ +.it-player-button { + min-width: 40px; +} + #it-screenshot-button { position: relative !important; } From 437ff3ed0e8d7ff2332af1981351abfa5df7f0d2 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 10 May 2021 14:26:25 +0300 Subject: [PATCH 0138/1224] Fixed export --- popup.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/popup.js b/popup.js index 20fb662cd..b00c72715 100644 --- a/popup.js +++ b/popup.js @@ -837,11 +837,11 @@ skeleton.header.section_end.button_vert.onClickRender.settings = { label: 'importSettings', onclick: function () { - if (location.href.indexOf('/options.html') !== -1) { + if (location.href.indexOf('/index.html?action=import') !== -1) { importData(); } else { chrome.tabs.create({ - url: 'options.html?action=import' + url: 'index.html?action=import' }); } } @@ -851,11 +851,11 @@ skeleton.header.section_end.button_vert.onClickRender.settings = { label: 'exportSettings', onclick: function () { - if (location.href.indexOf('/options.html') !== -1) { + if (location.href.indexOf('/index.html?action=export') !== -1) { exportData(); } else { chrome.tabs.create({ - url: 'options.html?action=export' + url: 'index.html?action=export' }); } } From d0f01ba94435ecd86ab5b6e791e83dfb1e55ef1e Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 10 May 2021 14:38:22 +0300 Subject: [PATCH 0139/1224] Disable "Playback speed" for live streams --- youtube-scripts.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index eb1b62a32..bdf5b439c 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1098,8 +1098,10 @@ ImprovedTube.playerPlaybackSpeed = function(node) { if (ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) && ImprovedTube.storage.player_forced_playback_speed === true) { try { - if (window.location.href.indexOf('music') === -1) { - document.querySelector('.html5-video-player').querySelector('video').playbackRate = option; + if (window.location.href.indexOf('music') === -1 && !document.querySelector('ytd-live-chat-frame')) { + document.querySelector('.html5-video-player video').playbackRate = option; + } else { + document.querySelector('.html5-video-player video').playbackRate = 1; } } catch (err) {} } From 9bde63576ccb8fdeab52275b73d54463a050b8cf Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 10 May 2021 16:35:12 +0300 Subject: [PATCH 0140/1224] Random things --- popup.css | 2 +- popup.js | 47 ++++++++++++++++++++++++++++++++++++++++++----- satus.css | 15 ++++++++------- 3 files changed, 51 insertions(+), 13 deletions(-) diff --git a/popup.css b/popup.css index 818397613..5c044e8ee 100644 --- a/popup.css +++ b/popup.css @@ -1057,7 +1057,7 @@ html[it-it-analyzer='false'] .satus-folder--analyzer { opacity: .8; } -.satus-main__container[data-appearance='about'] .satus-text { +.satus-main__container[data-appearance='about'] .satus-text:not(.satus-section--label) { display: flex; box-sizing: border-box; width: 100%; diff --git a/popup.js b/popup.js index b00c72715..f2e477c35 100644 --- a/popup.js +++ b/popup.js @@ -994,7 +994,12 @@ skeleton.header.section_end.button_vert.onClickRender.settings = { var component = this, manifest = chrome.runtime.getManifest(), user = satus.modules.user(), - object = { + skeleton_about = { + extension_section_label: { + type: 'text', + class: 'satus-section--label', + label: 'extension' + }, extension_section: { type: 'section', label: 'extension', @@ -1014,6 +1019,11 @@ skeleton.header.section_end.button_vert.onClickRender.settings = { value: manifest.permissions.join(', ').replace('https://www.youtube.com/', 'YouTube') }, }, + browser_section_label: { + type: 'text', + class: 'satus-section--label', + label: 'browser' + }, browser_section: { type: 'section', label: 'browser', @@ -1040,12 +1050,12 @@ skeleton.header.section_end.button_vert.onClickRender.settings = { video_formats: { type: 'text', label: 'videoFormats', - value: user.browser.video + value: '' }, audio_formats: { type: 'text', label: 'audioFormats', - value: user.browser.audio + value: '' }, flash: { type: 'text', @@ -1053,6 +1063,11 @@ skeleton.header.section_end.button_vert.onClickRender.settings = { value: !!user.browser.flash } }, + os_section_label: { + type: 'text', + class: 'satus-section--label', + label: 'os' + }, os_section: { type: 'section', label: 'os', @@ -1073,6 +1088,11 @@ skeleton.header.section_end.button_vert.onClickRender.settings = { value: user.os.type } }, + device_section_label: { + type: 'text', + class: 'satus-section--label', + label: 'device' + }, device_section: { type: 'section', label: 'device', @@ -1102,10 +1122,27 @@ skeleton.header.section_end.button_vert.onClickRender.settings = { value: user.device.ram } } - }; + }, + video_formats = [], + audio_formats = []; + + for (var key in user.browser.video) { + if (user.browser.video[key] !== false) { + video_formats.push(key); + } + } + + for (var key in user.browser.audio) { + if (user.browser.audio[key] !== false) { + audio_formats.push(key); + } + } + + skeleton_about.browser_section.video_formats.value = video_formats.join(', '); + skeleton_about.browser_section.audio_formats.value = audio_formats.join(', '); setTimeout(function () { - satus.render(object, component.parentNode); + satus.render(skeleton_about, component.parentNode); component.remove(); }); diff --git a/satus.css b/satus.css index e33dd7ddc..fd5d953a7 100644 --- a/satus.css +++ b/satus.css @@ -270,16 +270,14 @@ body { --------------------------------------------------------------*/ .satus-header { - position: relative; - z-index: 1; display: flex; - box-sizing: border-box; - width: 100%; height: 58px; padding: 0 8px; color: var(--satus-theme-header-text); background-color: var(--satus-theme-header); box-shadow: 0 0 3px rgba(0, 0, 0, .1); + z-index: 1; + position: relative; } .satus-header .satus-text--title { @@ -324,7 +322,6 @@ body { position: absolute; top: 0; left: 0; - box-sizing: border-box; width: 100%; height: 100%; transition: 250ms; @@ -431,6 +428,7 @@ body { .satus-scrollbar__thumb:hover::after { background-color: var(--satus-theme-scrollbar-focus); + width: 6px } .satus-scrollbar.active .satus-scrollbar__thumb, @@ -445,8 +443,7 @@ body { --------------------------------------------------------------*/ .satus-section { - display: inline-flex; - box-sizing: border-box; + display: flex; align-items: center; flex: 1; flex-wrap: wrap; @@ -1068,6 +1065,10 @@ body { border: none; } +.satus-text__label { + margin-right: 16px +} + /*-------------------------------------------------------------- # TEXT FIELD From 3422da54c5ca78f9f7a80bce1b15b67f339dd0e4 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 10 May 2021 17:57:24 +0300 Subject: [PATCH 0141/1224] Improved "Active features" --- popup.js | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/popup.js b/popup.js index f2e477c35..88a23c9bd 100644 --- a/popup.js +++ b/popup.js @@ -220,22 +220,42 @@ skeleton.header.section_end.button_vert.onClickRender.active_features = { new_menu = {}, storage = satus.storage; - function search(string, object) { - let result = []; + function search(string, object, parent) { + var result = [], + label = parent || ''; + + for (var i in object) { + if (object.type === 'folder') { + label = object.label; + } - for (let i in object) { if (object[i].type) { - if (/(button|select|shortcut|slider|switch)/.test(object[i].type)) { - if (i.indexOf(string) !== -1 || (object[i].tags && object[i].tags.indexOf(string) !== -1)) { + if (object[i].type.match(/(button|select|shortcut|slider|switch)/)) { + if (string === i || (object[i].tags && object[i].tags.indexOf(string) !== -1)) { if (object[i].type.indexOf('button') === -1 || !object[i].label) { - new_menu[i] = object[i]; + if (!satus.isset(object[i].value) && satus.storage[string] !== false || satus.isset(object[i].value) && satus.storage[string] != object[i].value) { + if (!new_menu[label]) { + new_menu[label + '__label'] = { + type: 'text', + class: 'satus-section--label', + label: label + }; + + new_menu[label] = { + type: 'section' + }; + } + + new_menu[label][i] = object[i]; + } } } + } else { - let response = search(string, object[i]); + var response = search(string, object[i], label); if (response.length > 0) { - for (let j = 0, l = response.length; j < l; j++) { + for (var j = 0, l = response.length; j < l; j++) { result.push(response[i]); } } @@ -252,7 +272,9 @@ skeleton.header.section_end.button_vert.onClickRender.active_features = { setTimeout(function () { if (Object.keys(new_menu).length > 0) { - satus.render(new_menu, component); + satus.render(new_menu, component. parentNode); + + component.remove(); } else { satus.render({ text: { From 80b2b16fd694aaa8e4d804450b50d3e07345c15b Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 10 May 2021 19:49:25 +0300 Subject: [PATCH 0142/1224] Optimized themes --- content-scripts.js | 2 + content-styles.css | 2644 +++----------------------------------------- 2 files changed, 149 insertions(+), 2497 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index ea1de107c..93e30a123 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -146,6 +146,8 @@ chrome.storage.local.get(function(items) { // Initialization textContent += '};ImprovedTube.init();'; + document.documentElement.dataset.systemColorScheme = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; + injectScript(textContent); }); diff --git a/content-styles.css b/content-styles.css index a01d21b40..1bd91d0c6 100644 --- a/content-styles.css +++ b/content-styles.css @@ -1136,7 +1136,11 @@ html[it-bluelight][it-youtube-version=old] body { 3.3 THEMES ------------------------------------------------------------------------------*/ -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { +/*BLACK*/ + +[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), +[data-system-color-scheme=dark][it-black-theme=true][it-schedule=system_peference_dark], +[data-system-color-scheme=light][it-black-theme=true][it-schedule=system_peference_light] { --yt-swatch-primary: #000!important; --yt-swatch-primary-darker: #000!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -1184,12 +1188,16 @@ html[it-bluelight][it-youtube-version=old] body { --yt-spec-themed-green: #107516 !important; } -html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo { +html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo, +[data-system-color-scheme=dark][it-black-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo, +[data-system-color-scheme=light][it-black-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { -webkit-filter: grayscale(1) brightness(3.5); filter: grayscale(1) brightness(3.5); } -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { +[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, +[data-system-color-scheme=dark][it-black-theme=true][it-schedule=system_peference_dark] ytd-masthead, +[data-system-color-scheme=light][it-black-theme=true][it-schedule=system_peference_light] ytd-masthead { background: #000!important; --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; @@ -1201,7 +1209,9 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { +[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=dark][it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #000; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -1214,7 +1224,9 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched [it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] { +[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], +[data-system-color-scheme=dark][it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -1341,461 +1353,61 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-blue-suggestive: transparent; } -@media (prefers-color-scheme: dark) { - [it-black-theme=true][it-schedule=system_peference_dark] { - --yt-swatch-primary: #000!important; - --yt-swatch-primary-darker: #000!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - --yt-swatch-header-primary: #000; - --yt-spec-brand-background-solid: #000 !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; - --yt-spec-general-background-a: #000 !important; - --yt-spec-general-background-b: #000 !important; - --yt-spec-general-background-c: #000 !important; - --yt-spec-error-background: #1F1F1F !important; - --yt-spec-text-primary: #aaa !important; - --yt-spec-text-primary-inverse: #aaa !important; - --yt-spec-text-secondary: #aaa !important; - --yt-spec-text-disabled: #aaa !important; - --yt-spec-call-to-action: #065FD4 !important; - --yt-spec-icon-active-other: #aaa !important; - --yt-spec-icon-inactive: #aaa !important; - --yt-spec-icon-disabled: #aaa !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response: #000000 !important; - --yt-spec-filled-button-text: #aaa !important; - --yt-spec-call-to-action-inverse: #aaa !important; - --yt-spec-brand-icon-active: #aaa !important; - --yt-spec-brand-icon-inactive: #aaa !important; - --yt-spec-brand-button-background: #242424 !important; - --yt-spec-brand-link-text: #aaa !important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: #aaa !important; - --yt-spec-wordmark-text: #aaa !important; - --yt-spec-10-percent-layer: #242424 !important; - --yt-spec-selected-nav-text: #aaa !important; - --yt-spec-themed-blue: #065FD4 !important; - --yt-spec-themed-green: #107516 !important; - } - html[it-black-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-black-theme=true][it-schedule=system_peference_dark] ytd-masthead { - background: #000!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #000; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-black-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-black-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #000; - --yt-playlist-background-item: #000; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #000; - --paper-listbox-background-color: #000; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #000; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #000; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #000; - --yt-menu-focus-background-color: #000; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #000; - --yt-main-app-background: #000; - --yt-main-app-background-tmp: #000; - --yt-guide-background: #000; - --yt-dialog-background: #000; - --yt-searchbox-background: #000!important; - --yt-channel-header-background: #000; - --yt-sidebar-background: #000; - --yt-transcript-background: #000; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #000; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #000; - --yt-blue-suggestive: transparent; - } +/*DAWN*/ + +[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), +[data-system-color-scheme=dark][it-dawn-theme=true][it-schedule=system_peference_dark], +[data-system-color-scheme=light][it-dawn-theme=true][it-schedule=system_peference_light] { + --yt-swatch-primary: #d44d5c!important; + --yt-swatch-primary-darker: #d44d5c!important; + --yt-swatch-text: rgb(255, 255, 255)!important; + --yt-swatch-important-text: rgb(255, 255, 255)!important; + --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(255, 255, 255)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; + --yt-swatch-header-primary: #734; + --yt-spec-brand-background-solid: #d44d5c !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-general-background-a: #d44d5c !important; + --yt-spec-general-background-b: #d44d5c !important; + --yt-spec-general-background-c: #d44d5c !important; + --yt-spec-error-background: #1F1F1F !important; + --yt-spec-text-primary: rgb(255, 255, 255) !important; + --yt-spec-text-primary-inverse: rgb(255, 255, 255) !important; + --yt-spec-text-secondary: rgb(255, 255, 255) !important; + --yt-spec-text-disabled: rgb(255, 255, 255) !important; + --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-icon-active-other: rgb(255, 255, 255) !important; + --yt-spec-icon-inactive: rgb(255, 255, 255) !important; + --yt-spec-icon-disabled: rgb(255, 255, 255) !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; + --yt-spec-suggested-action: #F2F8FF !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-touch-response: #d44d5c !important; + --yt-spec-filled-button-text: rgb(255, 255, 255) !important; + --yt-spec-call-to-action-inverse: rgb(255, 255, 255) !important; + --yt-spec-brand-icon-active: rgb(255, 255, 255) !important; + --yt-spec-brand-icon-inactive: rgb(255, 255, 255) !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: rgb(255, 255, 255)!important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: rgb(255, 255, 255) !important; + --yt-spec-wordmark-text: rgb(255, 255, 255) !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: rgb(255, 255, 255) !important; + --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-green: #107516 !important; } -@media (prefers-color-scheme: light) { - [it-black-theme=true][it-schedule=system_peference_light] { - --yt-swatch-primary: #000!important; - --yt-swatch-primary-darker: #000!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - --yt-swatch-header-primary: #000; - --yt-spec-brand-background-solid: #000 !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; - --yt-spec-general-background-a: #000 !important; - --yt-spec-general-background-b: #000 !important; - --yt-spec-general-background-c: #000 !important; - --yt-spec-error-background: #1F1F1F !important; - --yt-spec-text-primary: #aaa !important; - --yt-spec-text-primary-inverse: #aaa !important; - --yt-spec-text-secondary: #aaa !important; - --yt-spec-text-disabled: #aaa !important; - --yt-spec-call-to-action: #065FD4 !important; - --yt-spec-icon-active-other: #aaa !important; - --yt-spec-icon-inactive: #aaa !important; - --yt-spec-icon-disabled: #aaa !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response: #000000 !important; - --yt-spec-filled-button-text: #aaa !important; - --yt-spec-call-to-action-inverse: #aaa !important; - --yt-spec-brand-icon-active: #aaa !important; - --yt-spec-brand-icon-inactive: #aaa !important; - --yt-spec-brand-button-background: #242424 !important; - --yt-spec-brand-link-text: #aaa !important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: #aaa !important; - --yt-spec-wordmark-text: #aaa !important; - --yt-spec-10-percent-layer: #242424 !important; - --yt-spec-selected-nav-text: #aaa !important; - --yt-spec-themed-blue: #065FD4 !important; - --yt-spec-themed-green: #107516 !important; - } - html[it-black-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-black-theme=true][it-schedule=system_peference_light] ytd-masthead { - background: #000!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #000; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-black-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-black-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #000; - --yt-playlist-background-item: #000; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #000; - --paper-listbox-background-color: #000; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #000; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #000; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #000; - --yt-menu-focus-background-color: #000; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #000; - --yt-main-app-background: #000; - --yt-main-app-background-tmp: #000; - --yt-guide-background: #000; - --yt-dialog-background: #000; - --yt-searchbox-background: #000!important; - --yt-channel-header-background: #000; - --yt-sidebar-background: #000; - --yt-transcript-background: #000; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #000; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #000; - --yt-blue-suggestive: transparent; - } -} - -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { - --yt-swatch-primary: #d44d5c!important; - --yt-swatch-primary-darker: #d44d5c!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - --yt-swatch-header-primary: #734; - --yt-spec-brand-background-solid: #d44d5c !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; - --yt-spec-general-background-a: #d44d5c !important; - --yt-spec-general-background-b: #d44d5c !important; - --yt-spec-general-background-c: #d44d5c !important; - --yt-spec-error-background: #1F1F1F !important; - --yt-spec-text-primary: rgb(255, 255, 255) !important; - --yt-spec-text-primary-inverse: rgb(255, 255, 255) !important; - --yt-spec-text-secondary: rgb(255, 255, 255) !important; - --yt-spec-text-disabled: rgb(255, 255, 255) !important; - --yt-spec-call-to-action: #065FD4 !important; - --yt-spec-icon-active-other: rgb(255, 255, 255) !important; - --yt-spec-icon-inactive: rgb(255, 255, 255) !important; - --yt-spec-icon-disabled: rgb(255, 255, 255) !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response: #d44d5c !important; - --yt-spec-filled-button-text: rgb(255, 255, 255) !important; - --yt-spec-call-to-action-inverse: rgb(255, 255, 255) !important; - --yt-spec-brand-icon-active: rgb(255, 255, 255) !important; - --yt-spec-brand-icon-inactive: rgb(255, 255, 255) !important; - --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; - --yt-spec-brand-link-text: rgb(255, 255, 255)!important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: rgb(255, 255, 255) !important; - --yt-spec-wordmark-text: rgb(255, 255, 255) !important; - --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; - --yt-spec-selected-nav-text: rgb(255, 255, 255) !important; - --yt-spec-themed-blue: #065FD4 !important; - --yt-spec-themed-green: #107516 !important; -} - -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { +[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, +[data-system-color-scheme=dark][it-dawn-theme=true][it-schedule=system_peference_dark] ytd-masthead, +[data-system-color-scheme=light][it-dawn-theme=true][it-schedule=system_peference_light] ytd-masthead { background: #734!important; --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; @@ -1807,7 +1419,9 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { +[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=dark][it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #d44d5c; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -1820,7 +1434,9 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched [it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] { +[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], +[data-system-color-scheme=dark][it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -1948,429 +1564,25 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-spec-text-secondary: #f5dbe2; } -html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo { +html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo, +[data-system-color-scheme=dark][it-dawn-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo, +[data-system-color-scheme=light][it-dawn-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { -webkit-filter: grayscale(1) brightness(4); filter: grayscale(1) brightness(4); } -@media (prefers-color-scheme: dark) { - [it-dawn-theme=true][it-schedule=system_peference_dark] { - --yt-swatch-primary: #d44d5c!important; - --yt-swatch-primary-darker: #d44d5c!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - --yt-swatch-header-primary: #734; - --yt-spec-brand-background-solid: #d44d5c !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; - --yt-spec-general-background-a: #d44d5c !important; - --yt-spec-general-background-b: #d44d5c !important; - --yt-spec-general-background-c: #d44d5c !important; - --yt-spec-error-background: #1F1F1F !important; - --yt-spec-text-primary: rgb(255, 255, 255) !important; - --yt-spec-text-primary-inverse: rgb(255, 255, 255) !important; - --yt-spec-text-secondary: rgb(255, 255, 255) !important; - --yt-spec-text-disabled: rgb(255, 255, 255) !important; - --yt-spec-call-to-action: #065FD4 !important; - --yt-spec-icon-active-other: rgb(255, 255, 255) !important; - --yt-spec-icon-inactive: rgb(255, 255, 255) !important; - --yt-spec-icon-disabled: rgb(255, 255, 255) !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response: #d44d5c !important; - --yt-spec-filled-button-text: rgb(255, 255, 255) !important; - --yt-spec-call-to-action-inverse: rgb(255, 255, 255) !important; - --yt-spec-brand-icon-active: rgb(255, 255, 255) !important; - --yt-spec-brand-icon-inactive: rgb(255, 255, 255) !important; - --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; - --yt-spec-brand-link-text: rgb(255, 255, 255)!important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: rgb(255, 255, 255) !important; - --yt-spec-wordmark-text: rgb(255, 255, 255) !important; - --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; - --yt-spec-selected-nav-text: rgb(255, 255, 255) !important; - --yt-spec-themed-blue: #065FD4 !important; - --yt-spec-themed-green: #107516 !important; - } - [it-dawn-theme=true][it-schedule=system_peference_dark] ytd-masthead { - background: #734!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #d44d5c; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-dawn-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-dawn-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #d44d5c; - --yt-playlist-background-item: #d44d5c; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #d44d5c; - --paper-listbox-background-color: #d44d5c; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #d44d5c; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #d44d5c; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #d44d5c; - --yt-menu-focus-background-color: #d44d5c; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #d44d5c; - --yt-main-app-background: #d44d5c; - --yt-main-app-background-tmp: #d44d5c; - --yt-guide-background: #d44d5c; - --yt-dialog-background: #734; - --yt-searchbox-background: #672c3b; - --yt-channel-header-background: #d44d5c; - --yt-sidebar-background: #d44d5c; - --yt-transcript-background: #d44d5c; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #d44d5c; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #d44d5c; - --yt-blue-suggestive: transparent; - --yt-spec-text-secondary: #f5dbe2; - } - html[it-dawn-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { - -webkit-filter: grayscale(1) brightness(4); - filter: grayscale(1) brightness(4); - } -} - -@media (prefers-color-scheme: light) { - [it-dawn-theme=true][it-schedule=system_peference_light] { - --yt-swatch-primary: #d44d5c!important; - --yt-swatch-primary-darker: #d44d5c!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - --yt-swatch-header-primary: #734; - --yt-spec-brand-background-solid: #d44d5c !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; - --yt-spec-general-background-a: #d44d5c !important; - --yt-spec-general-background-b: #d44d5c !important; - --yt-spec-general-background-c: #d44d5c !important; - --yt-spec-error-background: #1F1F1F !important; - --yt-spec-text-primary: rgb(255, 255, 255) !important; - --yt-spec-text-primary-inverse: rgb(255, 255, 255) !important; - --yt-spec-text-secondary: rgb(255, 255, 255) !important; - --yt-spec-text-disabled: rgb(255, 255, 255) !important; - --yt-spec-call-to-action: #065FD4 !important; - --yt-spec-icon-active-other: rgb(255, 255, 255) !important; - --yt-spec-icon-inactive: rgb(255, 255, 255) !important; - --yt-spec-icon-disabled: rgb(255, 255, 255) !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response: #d44d5c !important; - --yt-spec-filled-button-text: rgb(255, 255, 255) !important; - --yt-spec-call-to-action-inverse: rgb(255, 255, 255) !important; - --yt-spec-brand-icon-active: rgb(255, 255, 255) !important; - --yt-spec-brand-icon-inactive: rgb(255, 255, 255) !important; - --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; - --yt-spec-brand-link-text: rgb(255, 255, 255)!important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: rgb(255, 255, 255) !important; - --yt-spec-wordmark-text: rgb(255, 255, 255) !important; - --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; - --yt-spec-selected-nav-text: rgb(255, 255, 255) !important; - --yt-spec-themed-blue: #065FD4 !important; - --yt-spec-themed-green: #107516 !important; - } - [it-dawn-theme=true][it-schedule=system_peference_light] ytd-masthead { - background: #734!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #d44d5c; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-dawn-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-dawn-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #d44d5c; - --yt-playlist-background-item: #d44d5c; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #d44d5c; - --paper-listbox-background-color: #d44d5c; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #d44d5c; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #d44d5c; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #d44d5c; - --yt-menu-focus-background-color: #d44d5c; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #d44d5c; - --yt-main-app-background: #d44d5c; - --yt-main-app-background-tmp: #d44d5c; - --yt-guide-background: #d44d5c; - --yt-dialog-background: #734; - --yt-searchbox-background: #672c3b; - --yt-channel-header-background: #d44d5c; - --yt-sidebar-background: #d44d5c; - --yt-transcript-background: #d44d5c; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #d44d5c; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #d44d5c; - --yt-blue-suggestive: transparent; - --yt-spec-text-secondary: #f5dbe2; - } - html[it-dawn-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { - -webkit-filter: grayscale(1) brightness(4); - filter: grayscale(1) brightness(4); - } -} - -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { - --yt-swatch-header-primary: rgb(34, 38, 42)!important; - --yt-swatch-primary: rgb(34, 38, 42)!important; - --yt-swatch-primary-darker: rgb(28, 32, 36)!important; - --yt-swatch-text: rgb(200, 200, 200)!important; - --yt-swatch-important-text: rgb(200, 200, 200)!important; - --yt-swatch-input-text: rgba(200, 200, 200, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(200, 200, 200)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; +/*DEFAULT DARK*/ + +[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { + --yt-swatch-header-primary: rgb(34, 38, 42)!important; + --yt-swatch-primary: rgb(34, 38, 42)!important; + --yt-swatch-primary-darker: rgb(28, 32, 36)!important; + --yt-swatch-text: rgb(200, 200, 200)!important; + --yt-swatch-important-text: rgb(200, 200, 200)!important; + --yt-swatch-input-text: rgba(200, 200, 200, 1)!important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; + --yt-swatch-logo-override: rgb(200, 200, 200)!important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } [it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #masthead-search-term { @@ -2888,7 +2100,11 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu } } -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { +/*DESERT*/ + +[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), +[data-system-color-scheme=dark][it-desert-theme=true][it-schedule=system_peference_dark], +[data-system-color-scheme=light][it-desert-theme=true][it-schedule=system_peference_light] { --yt-swatch-primary: #faf9f9!important; --yt-swatch-primary-darker: #faf9f9!important; --yt-swatch-text: #555!important; @@ -2936,7 +2152,9 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-spec-themed-green: #107516 !important; } -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { +[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, +[data-system-color-scheme=dark][it-desert-theme=true][it-schedule=system_peference_dark] ytd-masthead, +[data-system-color-scheme=light][it-desert-theme=true][it-schedule=system_peference_light] ytd-masthead { background: #bee3db!important; --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; @@ -2948,7 +2166,9 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { +[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=dark][it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #faf9f9; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: #555; @@ -2961,7 +2181,9 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu [it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] { +[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], +[data-system-color-scheme=dark][it-desert-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], +[data-system-color-scheme=light][it-desert-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark] { --yt-spec-icon-inactive: #555; --yt-spec-text-primary: #555; --ytd-searchbox-border-color: #555; @@ -3089,407 +2311,11 @@ html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche --yt-blue-suggestive: transparent; } -@media (prefers-color-scheme: dark) { - [it-desert-theme=true][it-schedule=system_peference_dark] { - --yt-swatch-primary: #faf9f9!important; - --yt-swatch-primary-darker: #faf9f9!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - --yt-swatch-header-primary: #bee3db; - --yt-spec-brand-background-solid: #faf9f9 !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; - --yt-spec-general-background-a: #faf9f9 !important; - --yt-spec-general-background-b: #faf9f9 !important; - --yt-spec-general-background-c: #faf9f9 !important; - --yt-spec-error-background: #1F1F1F !important; - --yt-spec-text-primary: #555 !important; - --yt-spec-text-primary-inverse: #555 !important; - --yt-spec-text-secondary: #555 !important; - --yt-spec-text-disabled: #555 !important; - --yt-spec-call-to-action: #065FD4 !important; - --yt-spec-icon-active-other: #555 !important; - --yt-spec-icon-inactive: #555 !important; - --yt-spec-icon-disabled: #555 !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response: #faf9f9 !important; - --yt-spec-filled-button-text: #555 !important; - --yt-spec-call-to-action-inverse: #555 !important; - --yt-spec-brand-icon-active: #555 !important; - --yt-spec-brand-icon-inactive: #555 !important; - --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; - --yt-spec-brand-link-text: #555!important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: #555 !important; - --yt-spec-wordmark-text: #555 !important; - --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; - --yt-spec-selected-nav-text: #555 !important; - --yt-spec-themed-blue: #065FD4 !important; - --yt-spec-themed-green: #107516 !important; - } - [it-desert-theme=true][it-schedule=system_peference_dark] ytd-masthead { - background: #bee3db!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #faf9f9; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: #555; - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-desert-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-desert-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] { - --yt-spec-icon-inactive: #555; - --yt-spec-text-primary: #555; - --ytd-searchbox-border-color: #555; - --ytd-searchbox-legacy-border-color: #555; - --ytd-searchbox-legacy-border-shadow-color: #555; - --ytd-searchbox-legacy-button-color: #555; - --ytd-searchbox-legacy-button-border-color: #555; - --ytd-searchbox-legacy-button-focus-color: #555; - --ytd-searchbox-legacy-button-hover-color: #555; - --ytd-searchbox-legacy-button-hover-border-color: #555; - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: #555; - --ytd-moderation-panel-hover: #555; - --ytd-moderation-panel-comment-text: #555; - --ytd-moderation-panel-comment-metadata-text: #555; - --ytd-moderation-icon-color: #555; - --ytd-moderation-icon-hover-color: #555; - --ytd-comment-text-color: #555; - --ytd-comment-metadata-text-color: #555; - --ytd-watch-card-secondary-text-color: #555; - --ytd-watch-card-album-header-background: #555; - --ytd-backstage-metadata-text-color: #555; - --ytd-backstage-video-link-background-color: #555; - --ytd-backstage-image-alert-color: #555; - --ytd-backstage-cancel-background-color: #555; - --ytd-backstage-cancel-color: #555; - --ytd-backstage-creationbox-background-color: #555; - --ytd-backstage-creationbox-background-color-focus: #555; - --ytd-backstage-creationbox-inactive-color: #555; - --ytd-backstage-creationbox-text-color: #555; - --ytd-backstage-creationbox-input-text-color: #555; - --ytd-backstage-creationbox-disabled-button-color: #555; - --ytd-backstage-creationbox-disabled-button-text-color: #555; - --ytd-backstage-attachment-icon-hover-color: #555; - --ytd-sponsorships-background-color-focus: #555; - --ytd-badge-background: #555; - --ytd-badge-disabled-color: #555; - --ytd-collection-badge-color: #555; - --ytd-owner-badge-color: #555; - --ytd-simple-badge-color: #555; - --ytd-ad-badge-text-color: #555; - --ytd-shopping-product-info: #555; - --ytd-toggle-color: #555; - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: #555; - --ytd-transcript-toolbar-background-color: #555; - --ytd-transcript-toolbar-text: #555; - --ytd-video-publish-date-color: #555; - --ytd-vat-notice-text: #555; - --ytd-offer-background-color: #555; - --ytd-video-game-watch-card-logo-color: #555; - --ytd-watch-split-pane-sidebar-background-color: #555; - --yt-std-body-100: #555; - --yt-std-body-200: #555; - --yt-std-body-300: #555; - --yt-std-surface-200: #555; - --yt-std-surface-300: #555; - --yt-std-surface-400: #555; - --yt-primary-color: #555; - --yt-primary-text-color: #555; - --yt-hovered-text-color: #555; - --yt-secondary-text-color: #555; - --yt-tertiary-text-color: #555; - --yt-disabled-text-color: #555; - --yt-placeholder-text-color: #555; - --yt-border-color: #555; - --yt-commentbox-border-inactive: #555; - --yt-commentbox-border-active: #555; - --yt-alert-background: #555; - --yt-paper-button-ink-color: #555; - --yt-icon-color: #555; - --yt-icon-hover-color: #555; - --yt-icon-active-color: #555; - --yt-icon-disabled-color: #555; - --yt-endpoint-color: #555; - --yt-expand-color: #555; - --yt-metadata-color: #555; - --yt-channel-owner: #555; - --yt-placeholder-text: #555; - --yt-playlist-background-header: #faf9f9; - --yt-playlist-background-item: #faf9f9; - --yt-playlist-title-text: #555; - --yt-playlist-message-text: #555; - --yt-playlist-message-text-hover: #555; - --yt-subscribe-button-text-color: #555; - --yt-brand-color: #555; - --yt-button-text-color: #555; - --yt-button-payment-text-color: #555; - --yt-copyright-text: #555; - --yt-guide-entry-hover-background-color: #555; - --yt-thumbnail-placeholder-color: #555; - --yt-primary-disabled-button-text-color: #555; - --yt-featured-channel-title-text-color: #555; - --yt-formatted-string-deemphasize-color: #555; - --paper-menu-background-color: #faf9f9; - --paper-listbox-background-color: #faf9f9; - --paper-menu-color: #555; - --paper-listbox-color: #555; - --paper-dialog-background-color: #faf9f9; - --paper-toggle-button-unchecked-bar-color: #555; - --yt-simple-menu-header-background: #faf9f9; - --yt-item-section-header-color: #555; - --yt-menu-hover-backgound-color: #faf9f9; - --yt-menu-focus-background-color: #faf9f9; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: #555; - --yt-material-searchbox-active: #555; - --yt-material-searchbox-inactive-shadow: #555; - --yt-material-searchbox-active-shadow: #555; - --yt-material-searchbox-inset: #555; - --yt-material-searchbox-text-color: #555; - --yt-app-background: #faf9f9; - --yt-main-app-background: #faf9f9; - --yt-main-app-background-tmp: #faf9f9; - --yt-guide-background: #faf9f9; - --yt-dialog-background: #bee3db; - --yt-searchbox-background: #faf9f9; - --yt-channel-header-background: #faf9f9; - --yt-sidebar-background: #faf9f9; - --yt-transcript-background: #faf9f9; - --yt-chat-bubble-other-border-color: #555; - --yt-chat-bubble-other-background-color: #faf9f9; - --yt-chat-bubble-self-border-color: #555; - --yt-chat-bubble-self-background-color: #faf9f9; - --yt-blue-suggestive: transparent; - } -} - -@media (prefers-color-scheme: light) { - [it-desert-theme=true][it-schedule=system_peference_light] { - --yt-swatch-primary: #faf9f9!important; - --yt-swatch-primary-darker: #faf9f9!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - --yt-swatch-header-primary: #bee3db; - --yt-spec-brand-background-solid: #faf9f9 !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; - --yt-spec-general-background-a: #faf9f9 !important; - --yt-spec-general-background-b: #faf9f9 !important; - --yt-spec-general-background-c: #faf9f9 !important; - --yt-spec-error-background: #1F1F1F !important; - --yt-spec-text-primary: #555 !important; - --yt-spec-text-primary-inverse: #555 !important; - --yt-spec-text-secondary: #555 !important; - --yt-spec-text-disabled: #555 !important; - --yt-spec-call-to-action: #065FD4 !important; - --yt-spec-icon-active-other: #555 !important; - --yt-spec-icon-inactive: #555 !important; - --yt-spec-icon-disabled: #555 !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response: #faf9f9 !important; - --yt-spec-filled-button-text: #555 !important; - --yt-spec-call-to-action-inverse: #555 !important; - --yt-spec-brand-icon-active: #555 !important; - --yt-spec-brand-icon-inactive: #555 !important; - --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; - --yt-spec-brand-link-text: #555!important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: #555 !important; - --yt-spec-wordmark-text: #555 !important; - --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; - --yt-spec-selected-nav-text: #555 !important; - --yt-spec-themed-blue: #065FD4 !important; - --yt-spec-themed-green: #107516 !important; - } - [it-desert-theme=true][it-schedule=system_peference_light] ytd-masthead { - background: #bee3db!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #555!important; - --yt-swatch-important-text: #555!important; - --yt-swatch-input-text: #555!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #555!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #faf9f9; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: #555; - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-desert-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-desert-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] { - --yt-spec-icon-inactive: #555; - --yt-spec-text-primary: #555; - --ytd-searchbox-border-color: #555; - --ytd-searchbox-legacy-border-color: #555; - --ytd-searchbox-legacy-border-shadow-color: #555; - --ytd-searchbox-legacy-button-color: #555; - --ytd-searchbox-legacy-button-border-color: #555; - --ytd-searchbox-legacy-button-focus-color: #555; - --ytd-searchbox-legacy-button-hover-color: #555; - --ytd-searchbox-legacy-button-hover-border-color: #555; - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: #555; - --ytd-moderation-panel-hover: #555; - --ytd-moderation-panel-comment-text: #555; - --ytd-moderation-panel-comment-metadata-text: #555; - --ytd-moderation-icon-color: #555; - --ytd-moderation-icon-hover-color: #555; - --ytd-comment-text-color: #555; - --ytd-comment-metadata-text-color: #555; - --ytd-watch-card-secondary-text-color: #555; - --ytd-watch-card-album-header-background: #555; - --ytd-backstage-metadata-text-color: #555; - --ytd-backstage-video-link-background-color: #555; - --ytd-backstage-image-alert-color: #555; - --ytd-backstage-cancel-background-color: #555; - --ytd-backstage-cancel-color: #555; - --ytd-backstage-creationbox-background-color: #555; - --ytd-backstage-creationbox-background-color-focus: #555; - --ytd-backstage-creationbox-inactive-color: #555; - --ytd-backstage-creationbox-text-color: #555; - --ytd-backstage-creationbox-input-text-color: #555; - --ytd-backstage-creationbox-disabled-button-color: #555; - --ytd-backstage-creationbox-disabled-button-text-color: #555; - --ytd-backstage-attachment-icon-hover-color: #555; - --ytd-sponsorships-background-color-focus: #555; - --ytd-badge-background: #555; - --ytd-badge-disabled-color: #555; - --ytd-collection-badge-color: #555; - --ytd-owner-badge-color: #555; - --ytd-simple-badge-color: #555; - --ytd-ad-badge-text-color: #555; - --ytd-shopping-product-info: #555; - --ytd-toggle-color: #555; - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: #555; - --ytd-transcript-toolbar-background-color: #555; - --ytd-transcript-toolbar-text: #555; - --ytd-video-publish-date-color: #555; - --ytd-vat-notice-text: #555; - --ytd-offer-background-color: #555; - --ytd-video-game-watch-card-logo-color: #555; - --ytd-watch-split-pane-sidebar-background-color: #555; - --yt-std-body-100: #555; - --yt-std-body-200: #555; - --yt-std-body-300: #555; - --yt-std-surface-200: #555; - --yt-std-surface-300: #555; - --yt-std-surface-400: #555; - --yt-primary-color: #555; - --yt-primary-text-color: #555; - --yt-hovered-text-color: #555; - --yt-secondary-text-color: #555; - --yt-tertiary-text-color: #555; - --yt-disabled-text-color: #555; - --yt-placeholder-text-color: #555; - --yt-border-color: #555; - --yt-commentbox-border-inactive: #555; - --yt-commentbox-border-active: #555; - --yt-alert-background: #555; - --yt-paper-button-ink-color: #555; - --yt-icon-color: #555; - --yt-icon-hover-color: #555; - --yt-icon-active-color: #555; - --yt-icon-disabled-color: #555; - --yt-endpoint-color: #555; - --yt-expand-color: #555; - --yt-metadata-color: #555; - --yt-channel-owner: #555; - --yt-placeholder-text: #555; - --yt-playlist-background-header: #faf9f9; - --yt-playlist-background-item: #faf9f9; - --yt-playlist-title-text: #555; - --yt-playlist-message-text: #555; - --yt-playlist-message-text-hover: #555; - --yt-subscribe-button-text-color: #555; - --yt-brand-color: #555; - --yt-button-text-color: #555; - --yt-button-payment-text-color: #555; - --yt-copyright-text: #555; - --yt-guide-entry-hover-background-color: #555; - --yt-thumbnail-placeholder-color: #555; - --yt-primary-disabled-button-text-color: #555; - --yt-featured-channel-title-text-color: #555; - --yt-formatted-string-deemphasize-color: #555; - --paper-menu-background-color: #faf9f9; - --paper-listbox-background-color: #faf9f9; - --paper-menu-color: #555; - --paper-listbox-color: #555; - --paper-dialog-background-color: #faf9f9; - --paper-toggle-button-unchecked-bar-color: #555; - --yt-simple-menu-header-background: #faf9f9; - --yt-item-section-header-color: #555; - --yt-menu-hover-backgound-color: #faf9f9; - --yt-menu-focus-background-color: #faf9f9; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: #555; - --yt-material-searchbox-active: #555; - --yt-material-searchbox-inactive-shadow: #555; - --yt-material-searchbox-active-shadow: #555; - --yt-material-searchbox-inset: #555; - --yt-material-searchbox-text-color: #555; - --yt-app-background: #faf9f9; - --yt-main-app-background: #faf9f9; - --yt-main-app-background-tmp: #faf9f9; - --yt-guide-background: #faf9f9; - --yt-dialog-background: #bee3db; - --yt-searchbox-background: #faf9f9; - --yt-channel-header-background: #faf9f9; - --yt-sidebar-background: #faf9f9; - --yt-transcript-background: #faf9f9; - --yt-chat-bubble-other-border-color: #555; - --yt-chat-bubble-other-background-color: #faf9f9; - --yt-chat-bubble-self-border-color: #555; - --yt-chat-bubble-self-background-color: #faf9f9; - --yt-blue-suggestive: transparent; - } -} +/*NIGHT*/ -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { +[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), +[data-system-color-scheme=dark][it-night-theme=true][it-schedule=system_peference_dark], +[data-system-color-scheme=light][it-night-theme=true][it-schedule=system_peference_light] { --yt-swatch-primary: #003459!important; --yt-swatch-primary-darker: #003459!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -3537,12 +2363,16 @@ html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche --yt-spec-themed-green: #107516 !important; } -html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo { +html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo, +[data-system-color-scheme=dark][it-night-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo, +[data-system-color-scheme=light][it-night-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { -webkit-filter: grayscale(1) brightness(3.5); filter: grayscale(1) brightness(3.5); } -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { +[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, +[data-system-color-scheme=dark][it-night-theme=true][it-schedule=system_peference_dark] ytd-masthead, +[data-system-color-scheme=light][it-night-theme=true][it-schedule=system_peference_light] ytd-masthead { background: #007ea7!important; --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; @@ -3554,7 +2384,9 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { +[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=dark][it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #003459; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -3567,7 +2399,9 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched [it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] { +[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], +[data-system-color-scheme=dark][it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -3694,413 +2528,11 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-blue-suggestive: transparent; } -@media (prefers-color-scheme: dark) { - [it-night-theme=true][it-schedule=system_peference_dark] { - --yt-swatch-primary: #003459!important; - --yt-swatch-primary-darker: #003459!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - --yt-swatch-header-primary: #007ea7; - --yt-spec-brand-background-solid: #003459 !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; - --yt-spec-general-background-a: #003459 !important; - --yt-spec-general-background-b: #003459 !important; - --yt-spec-general-background-c: #003459 !important; - --yt-spec-error-background: #1F1F1F !important; - --yt-spec-text-primary: #fff !important; - --yt-spec-text-primary-inverse: #fff !important; - --yt-spec-text-secondary: #fff !important; - --yt-spec-text-disabled: #fff !important; - --yt-spec-call-to-action: #065FD4 !important; - --yt-spec-icon-active-other: #fff !important; - --yt-spec-icon-inactive: #fff !important; - --yt-spec-icon-disabled: #fff !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response: #003459 !important; - --yt-spec-filled-button-text: #fff !important; - --yt-spec-call-to-action-inverse: #fff !important; - --yt-spec-brand-icon-active: #fff !important; - --yt-spec-brand-icon-inactive: #fff !important; - --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; - --yt-spec-brand-link-text: #fff!important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: #fff !important; - --yt-spec-wordmark-text: #fff !important; - --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; - --yt-spec-selected-nav-text: #fff !important; - --yt-spec-themed-blue: #065FD4 !important; - --yt-spec-themed-green: #107516 !important; - } - html[it-night-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-night-theme=true][it-schedule=system_peference_dark] ytd-masthead { - background: #007ea7!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #003459; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-night-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-night-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #003459; - --yt-playlist-background-item: #003459; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #003459; - --paper-listbox-background-color: #003459; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #003459; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #003459; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #003459; - --yt-menu-focus-background-color: #003459; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #003459; - --yt-main-app-background: #003459; - --yt-main-app-background-tmp: #003459; - --yt-guide-background: #003459; - --yt-dialog-background: #007ea7; - --yt-searchbox-background: #003459!important; - --yt-channel-header-background: #003459; - --yt-sidebar-background: #003459; - --yt-transcript-background: #003459; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #003459; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #003459; - --yt-blue-suggestive: transparent; - } -} - -@media (prefers-color-scheme: light) { - [it-night-theme=true][it-schedule=system_peference_light] { - --yt-swatch-primary: #003459!important; - --yt-swatch-primary-darker: #003459!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - --yt-swatch-header-primary: #007ea7; - --yt-spec-brand-background-solid: #003459 !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; - --yt-spec-general-background-a: #003459 !important; - --yt-spec-general-background-b: #003459 !important; - --yt-spec-general-background-c: #003459 !important; - --yt-spec-error-background: #1F1F1F !important; - --yt-spec-text-primary: #fff !important; - --yt-spec-text-primary-inverse: #fff !important; - --yt-spec-text-secondary: #fff !important; - --yt-spec-text-disabled: #fff !important; - --yt-spec-call-to-action: #065FD4 !important; - --yt-spec-icon-active-other: #fff !important; - --yt-spec-icon-inactive: #fff !important; - --yt-spec-icon-disabled: #fff !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response: #003459 !important; - --yt-spec-filled-button-text: #fff !important; - --yt-spec-call-to-action-inverse: #fff !important; - --yt-spec-brand-icon-active: #fff !important; - --yt-spec-brand-icon-inactive: #fff !important; - --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; - --yt-spec-brand-link-text: #fff!important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: #fff !important; - --yt-spec-wordmark-text: #fff !important; - --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; - --yt-spec-selected-nav-text: #fff !important; - --yt-spec-themed-blue: #065FD4 !important; - --yt-spec-themed-green: #107516 !important; - } - html[it-night-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); - } - [it-night-theme=true][it-schedule=system_peference_light] ytd-masthead { - background: #007ea7!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #003459; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-night-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-night-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #003459; - --yt-playlist-background-item: #003459; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #003459; - --paper-listbox-background-color: #003459; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #003459; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #003459; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #003459; - --yt-menu-focus-background-color: #003459; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #003459; - --yt-main-app-background: #003459; - --yt-main-app-background-tmp: #003459; - --yt-guide-background: #003459; - --yt-dialog-background: #007ea7; - --yt-searchbox-background: #003459!important; - --yt-channel-header-background: #003459; - --yt-sidebar-background: #003459; - --yt-transcript-background: #003459; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #003459; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #003459; - --yt-blue-suggestive: transparent; - } -} +/*PLAIN*/ -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { +[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), +[data-system-color-scheme=dark][it-plain-theme=true][it-schedule=system_peference_dark], +[data-system-color-scheme=light][it-plain-theme=true][it-schedule=system_peference_light] { --yt-swatch-primary: #c7efcf!important; --yt-swatch-primary-darker: #c7efcf!important; --yt-swatch-text: #666!important; @@ -4148,7 +2580,9 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-spec-themed-green: #107516 !important; } -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { +[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, +[data-system-color-scheme=dark][it-plain-theme=true][it-schedule=system_peference_dark] ytd-masthead, +[data-system-color-scheme=light][it-plain-theme=true][it-schedule=system_peference_light] ytd-masthead { background: #d6d1b1!important; --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; @@ -4160,7 +2594,9 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { +[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=dark][it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #c7efcf; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -4173,7 +2609,9 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched [it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] { +[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], +[data-system-color-scheme=dark][it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { --yt-spec-icon-inactive: #666; --yt-spec-text-primary: #666; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); @@ -4301,407 +2739,11 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-blue-suggestive: transparent; } -@media (prefers-color-scheme: dark) { - [it-plain-theme=true][it-schedule=system_peference_dark] { - --yt-swatch-primary: #c7efcf!important; - --yt-swatch-primary-darker: #c7efcf!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - --yt-swatch-header-primary: #d6d1b1; - --yt-spec-brand-background-solid: #c7efcf !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; - --yt-spec-general-background-a: #c7efcf !important; - --yt-spec-general-background-b: #c7efcf !important; - --yt-spec-general-background-c: #c7efcf !important; - --yt-spec-error-background: #1F1F1F !important; - --yt-spec-text-primary: #666 !important; - --yt-spec-text-primary-inverse: #666 !important; - --yt-spec-text-secondary: #666 !important; - --yt-spec-text-disabled: #666 !important; - --yt-spec-call-to-action: #065FD4 !important; - --yt-spec-icon-active-other: #666 !important; - --yt-spec-icon-inactive: #666 !important; - --yt-spec-icon-disabled: #666 !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response: #c7efcf !important; - --yt-spec-filled-button-text: #666 !important; - --yt-spec-call-to-action-inverse: #666 !important; - --yt-spec-brand-icon-active: #666 !important; - --yt-spec-brand-icon-inactive: #666 !important; - --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; - --yt-spec-brand-link-text: #666!important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: #666 !important; - --yt-spec-wordmark-text: #666 !important; - --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; - --yt-spec-selected-nav-text: #666 !important; - --yt-spec-themed-blue: #065FD4 !important; - --yt-spec-themed-green: #107516 !important; - } - [it-plain-theme=true][it-schedule=system_peference_dark] ytd-masthead { - background: #d6d1b1!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #c7efcf; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-plain-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-plain-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] { - --yt-spec-icon-inactive: #666; - --yt-spec-text-primary: #666; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #c7efcf; - --yt-playlist-background-item: #c7efcf; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #c7efcf; - --paper-listbox-background-color: #c7efcf; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #c7efcf; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #c7efcf; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #c7efcf; - --yt-menu-focus-background-color: #c7efcf; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #c7efcf; - --yt-main-app-background: #c7efcf; - --yt-main-app-background-tmp: #c7efcf; - --yt-guide-background: #c7efcf; - --yt-dialog-background: #d6d1b1; - --yt-searchbox-background: #c7efcf; - --yt-channel-header-background: #c7efcf; - --yt-sidebar-background: #c7efcf; - --yt-transcript-background: #c7efcf; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #c7efcf; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #c7efcf; - --yt-blue-suggestive: transparent; - } -} +/*SUNSET*/ -@media (prefers-color-scheme: light) { - [it-plain-theme=true][it-schedule=system_peference_light] { - --yt-swatch-primary: #c7efcf!important; - --yt-swatch-primary-darker: #c7efcf!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - --yt-swatch-header-primary: #d6d1b1; - --yt-spec-brand-background-solid: #c7efcf !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; - --yt-spec-general-background-a: #c7efcf !important; - --yt-spec-general-background-b: #c7efcf !important; - --yt-spec-general-background-c: #c7efcf !important; - --yt-spec-error-background: #1F1F1F !important; - --yt-spec-text-primary: #666 !important; - --yt-spec-text-primary-inverse: #666 !important; - --yt-spec-text-secondary: #666 !important; - --yt-spec-text-disabled: #666 !important; - --yt-spec-call-to-action: #065FD4 !important; - --yt-spec-icon-active-other: #666 !important; - --yt-spec-icon-inactive: #666 !important; - --yt-spec-icon-disabled: #666 !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response: #c7efcf !important; - --yt-spec-filled-button-text: #666 !important; - --yt-spec-call-to-action-inverse: #666 !important; - --yt-spec-brand-icon-active: #666 !important; - --yt-spec-brand-icon-inactive: #666 !important; - --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; - --yt-spec-brand-link-text: #666!important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: #666 !important; - --yt-spec-wordmark-text: #666 !important; - --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; - --yt-spec-selected-nav-text: #666 !important; - --yt-spec-themed-blue: #065FD4 !important; - --yt-spec-themed-green: #107516 !important; - } - [it-plain-theme=true][it-schedule=system_peference_light] ytd-masthead { - background: #d6d1b1!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: #666!important; - --yt-swatch-important-text: #666!important; - --yt-swatch-input-text: #666!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: #666!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #c7efcf; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-plain-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-plain-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] { - --yt-spec-icon-inactive: #666; - --yt-spec-text-primary: #666; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #c7efcf; - --yt-playlist-background-item: #c7efcf; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #c7efcf; - --paper-listbox-background-color: #c7efcf; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #c7efcf; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #c7efcf; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #c7efcf; - --yt-menu-focus-background-color: #c7efcf; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #c7efcf; - --yt-main-app-background: #c7efcf; - --yt-main-app-background-tmp: #c7efcf; - --yt-guide-background: #c7efcf; - --yt-dialog-background: #d6d1b1; - --yt-searchbox-background: #c7efcf; - --yt-channel-header-background: #c7efcf; - --yt-sidebar-background: #c7efcf; - --yt-transcript-background: #c7efcf; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #c7efcf; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #c7efcf; - --yt-blue-suggestive: transparent; - } -} - -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { +[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), +[data-system-color-scheme=dark][it-sunset-theme=true][it-schedule=system_peference_dark], +[data-system-color-scheme=light][it-sunset-theme=true][it-schedule=system_peference_light] { --yt-swatch-primary: #2f3364!important; --yt-swatch-primary-darker: #2f3364!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -4749,7 +2791,9 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-spec-themed-green: #107516 !important; } -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { +[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, +[data-system-color-scheme=dark][it-sunset-theme=true][it-schedule=system_peference_dark] ytd-masthead, +[data-system-color-scheme=light][it-sunset-theme=true][it-schedule=system_peference_light] ytd-masthead { background: #f56264!important; --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; @@ -4761,7 +2805,9 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { +[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=dark][it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #2f3364; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -4774,7 +2820,9 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched [it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark] { +[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], +[data-system-color-scheme=dark][it-sunset-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], +[data-system-color-scheme=light][it-sunset-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark] { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -4901,404 +2949,6 @@ html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche --yt-blue-suggestive: transparent; } -@media (prefers-color-scheme: dark) { - [it-sunset-theme=true][it-schedule=system_peference_dark] { - --yt-swatch-primary: #2f3364!important; - --yt-swatch-primary-darker: #2f3364!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - --yt-swatch-header-primary: #f56264; - --yt-spec-brand-background-solid: #2f3364 !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; - --yt-spec-general-background-a: #2f3364 !important; - --yt-spec-general-background-b: #2f3364 !important; - --yt-spec-general-background-c: #2f3364 !important; - --yt-spec-error-background: #1F1F1F !important; - --yt-spec-text-primary: #fff !important; - --yt-spec-text-primary-inverse: #fff !important; - --yt-spec-text-secondary: #fff !important; - --yt-spec-text-disabled: #fff !important; - --yt-spec-call-to-action: #065FD4 !important; - --yt-spec-icon-active-other: #fff !important; - --yt-spec-icon-inactive: #fff !important; - --yt-spec-icon-disabled: #fff !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response: #2f3364 !important; - --yt-spec-filled-button-text: #fff !important; - --yt-spec-call-to-action-inverse: #fff !important; - --yt-spec-brand-icon-active: #fff !important; - --yt-spec-brand-icon-inactive: #fff !important; - --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; - --yt-spec-brand-link-text: #fff!important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: #fff !important; - --yt-spec-wordmark-text: #fff !important; - --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; - --yt-spec-selected-nav-text: #fff !important; - --yt-spec-themed-blue: #065FD4 !important; - --yt-spec-themed-green: #107516 !important; - } - [it-sunset-theme=true][it-schedule=system_peference_dark] ytd-masthead { - background: #f56264!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #2f3364; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), - html[it-sunset-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], - [it-sunset-theme=true][it-schedule=system_peference_dark] :not(.style-scope)[dark] { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #2f3364; - --yt-playlist-background-item: #2f3364; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #2f3364; - --paper-listbox-background-color: #2f3364; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #2f3364; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #2f3364; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #2f3364; - --yt-menu-focus-background-color: #2f3364; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #2f3364; - --yt-main-app-background: #2f3364; - --yt-main-app-background-tmp: #2f3364; - --yt-guide-background: #2f3364; - --yt-dialog-background: #D62828; - --yt-searchbox-background: #fa7965!important; - --yt-channel-header-background: #2f3364; - --yt-sidebar-background: #2f3364; - --yt-transcript-background: #2f3364; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #2f3364; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #2f3364; - --yt-blue-suggestive: transparent; - } -} - -@media (prefers-color-scheme: light) { - [it-sunset-theme=true][it-schedule=system_peference_light] { - --yt-swatch-primary: #2f3364!important; - --yt-swatch-primary-darker: #2f3364!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - --yt-swatch-header-primary: #f56264; - --yt-spec-brand-background-solid: #2f3364 !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; - --yt-spec-general-background-a: #2f3364 !important; - --yt-spec-general-background-b: #2f3364 !important; - --yt-spec-general-background-c: #2f3364 !important; - --yt-spec-error-background: #1F1F1F !important; - --yt-spec-text-primary: #fff !important; - --yt-spec-text-primary-inverse: #fff !important; - --yt-spec-text-secondary: #fff !important; - --yt-spec-text-disabled: #fff !important; - --yt-spec-call-to-action: #065FD4 !important; - --yt-spec-icon-active-other: #fff !important; - --yt-spec-icon-inactive: #fff !important; - --yt-spec-icon-disabled: #fff !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response: #2f3364 !important; - --yt-spec-filled-button-text: #fff !important; - --yt-spec-call-to-action-inverse: #fff !important; - --yt-spec-brand-icon-active: #fff !important; - --yt-spec-brand-icon-inactive: #fff !important; - --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; - --yt-spec-brand-link-text: #fff!important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: #fff !important; - --yt-spec-wordmark-text: #fff !important; - --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; - --yt-spec-selected-nav-text: #fff !important; - --yt-spec-themed-blue: #065FD4 !important; - --yt-spec-themed-green: #107516 !important; - } - [it-sunset-theme=true][it-schedule=system_peference_light] ytd-masthead { - background: #f56264!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #2f3364; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope), - html[it-sunset-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark], - [it-sunset-theme=true][it-schedule=system_peference_light] :not(.style-scope)[dark] { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #2f3364; - --yt-playlist-background-item: #2f3364; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #2f3364; - --paper-listbox-background-color: #2f3364; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #2f3364; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #2f3364; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #2f3364; - --yt-menu-focus-background-color: #2f3364; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #2f3364; - --yt-main-app-background: #2f3364; - --yt-main-app-background-tmp: #2f3364; - --yt-guide-background: #2f3364; - --yt-dialog-background: #D62828; - --yt-searchbox-background: #fa7965!important; - --yt-channel-header-background: #2f3364; - --yt-sidebar-background: #2f3364; - --yt-transcript-background: #2f3364; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #2f3364; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #2f3364; - --yt-blue-suggestive: transparent; - } -} - /*------------------------------------------------------------------------------ 4.0 PLAYER From 683b2aacde8c1e76db050b7c31eab5e0a9bccaae Mon Sep 17 00:00:00 2001 From: GitMoleo <69057107+GitMoleo@users.noreply.github.com> Date: Sun, 23 May 2021 23:30:24 +0200 Subject: [PATCH 0143/1224] small improvements to the German translation (DE) --- _locales/de/messages.json | 52 +++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 5f8223ca8..4c9b71860 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -39,7 +39,7 @@ "message": "Aktive Funktionen" }, "addScrollToTop": { - "message": "«Nach Oben»-Button" + "message": "„Nach Oben“-Button" }, "ads": { "message": "Werbung" @@ -90,7 +90,7 @@ "message": "Sichern oder zurücksetzen" }, "baseOnSystemColorScheme": { - "message": "Basierend von Systemfarben" + "message": "Basierend auf Systemfarben" }, "belowPlayer": { "message": "Unter dem Player" @@ -120,7 +120,7 @@ "message": "Browser" }, "browserVersion": { - "message": "Browser Version" + "message": "Browser-Version" }, "bubbles": { "message": "Blasen" @@ -207,7 +207,7 @@ "message": "Dunkel-Lila" }, "defaultChannelTab": { - "message": "Standard-Kanal Tab" + "message": "Standard-Kanal-Tab" }, "deleteYoutubeCookies": { "message": "YouTube-Cookies löschen" @@ -285,7 +285,7 @@ "message": "Fußzeile" }, "forceSDR": { - "message": "Force SDR" + "message": "SDR erzwingen" }, "forcedPlaybackSpeed": { "message": "erzwungene Abspielgeschwindigkeit" @@ -363,7 +363,7 @@ "message": "Rechte Buttons ausblenden" }, "hideScrollForDetails": { - "message": "«Für Details scrollen» ausblenden" + "message": "„Für Details scrollen“ ausblenden" }, "hideViewsCount": { "message": "Videoaufrufe ausblenden" @@ -375,10 +375,10 @@ "message": "Standard" }, "hover": { - "message": "Nur anzeigen wenn die Maus darauf zeigt" + "message": "Nur anzeigen bei Mausover" }, "hoverOnVideoPage": { - "message": "auf Video-Seiten nur wenn die Maus..." + "message": "auf Video-Seiten bei Mausover" }, "howLongAgoTheVideoWasUploaded": { "message": "Alter des Videos (seit Hochlade-Datum)" @@ -408,7 +408,7 @@ "message": "ImprovedTube Version" }, "increasePlaybackSpeed": { - "message": "Abspiel Geschwingkeit erhöhen" + "message": "Abspielgeschwingkeit erhöhen" }, "increaseVolume": { "message": "Lautstärke erhöhen" @@ -534,7 +534,7 @@ "message": "Play / Pause" }, "playbackSpeed": { - "message": "Abspiel-Geschwindigkeit" + "message": "Abspielgeschwindigkeit" }, "player": { "message": "Player" @@ -588,13 +588,13 @@ "message": "Zeige 'Mag ich nicht' Button rot" }, "relatedVideos": { - "message": "Verwandte Videos" + "message": "Ähnliche Videos" }, "removeRelatedSearchResults": { - "message": "Verwandte Suchergebnisse entfernen" + "message": "Ähnliche Suchergebnisse entfernen" }, "repeat": { - "message": "Repeat(Wiederholen)" + "message": "Repeat (Wiederholen)" }, "reset": { "message": "Zurücksetzen" @@ -618,7 +618,7 @@ "message": "Speichern als" }, "schedule": { - "message": "Nachtschaltung planen" + "message": "Zeitplan" }, "screen": { "message": "Bildschirm" @@ -675,16 +675,16 @@ "message": "Schritt" }, "stop": { - "message": "Stop" + "message": "Stopp" }, "style": { - "message": "Style" + "message": "Stil" }, "styles": { - "message": "Styles" + "message": "Stile" }, "subscriptions": { - "message": "Abonnements" + "message": "Abos" }, "subtitles": { "message": "Untertitel" @@ -720,7 +720,7 @@ "message": "Alle Einstellungen werden entfernt" }, "thisWillResetAllShortcuts": { - "message": "Alle Shortcuts werden entfernt" + "message": "Alle Shortcuts werden zurückgesetzt" }, "thumbnails": { "message": "Vorschaubilder" @@ -729,7 +729,7 @@ "message": "Start" }, "timeTo": { - "message": "Stop" + "message": "Ende" }, "todayAt": { "message": "Heute um" @@ -738,10 +738,10 @@ "message": "Karten ausblenden" }, "topChat": { - "message": "Top chat" + "message": "Top Chat" }, "trailerAutoplay": { - "message": "Trailer autoplay (Kanal-Intro automatisch losspielen)" + "message": "Kanal-Intro automatisch abspielen" }, "translations": { "message": "Übersetzungen" @@ -750,10 +750,10 @@ "message": "Transparenter Hintergrund" }, "trending": { - "message": "Trending" + "message": "Trends" }, "tryToReloadThePage": { - "message": "Versuche die Seite neu zu laden" + "message": "Versuche, die Seite neu zu laden" }, "type": { "message": "Typ" @@ -774,7 +774,7 @@ "message": "Die Video-Beschreibung wird um den Kategorienamen erweitert" }, "videoFormats": { - "message": "Video Formate" + "message": "Videoformate" }, "videos": { "message": "Videos" @@ -812,4 +812,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube begrenzt die Qualität auf 1080p für den h.264 Codec" } -} \ No newline at end of file +} From de7812dd9763094f4eb205a94f811798923e8d27 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 7 Jun 2021 18:08:06 +0300 Subject: [PATCH 0144/1224] Satus: Improved code readability --- satus.css | 284 +++++++++++++++++++++++++++++------------------------- satus.js | 141 +++++++++++++-------------- 2 files changed, 223 insertions(+), 202 deletions(-) diff --git a/satus.css b/satus.css index fd5d953a7..be6530131 100644 --- a/satus.css +++ b/satus.css @@ -1,27 +1,149 @@ /*-------------------------------------------------------------- ->>> SATUS +>>> SATUS.CSS ---------------------------------------------------------------- -# Body -# Components - # Button - # Color picker - # Dialog - # Folder - # Header - # List - # Main - # Section - # Select - # Slider - # Switch - # Table - # Text - # Text field +1.0 Animations + 1.1 Fade + 1.2 List + 1.3 Zoom +2.0 Themes + 2.1 Default +3.0 Components + 3.1 Button + 3.2 Color picker + 3.3 Dialog + 3.4 Folder + 3.5 Header + 3.6 List + 3.7 Main + 3.8 Section + 3.9 Select + 3.10 Slider + 3.11 Switch + 3.12 Table + 3.13 Text + 3.14 Text field --------------------------------------------------------------*/ +/*-------------------------------------------------------------- +1.0 ANIMATIONS +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +1.1 FADE +--------------------------------------------------------------*/ + +@keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +@keyframes fadeInLeft { + from { + transform: translateX(-10%); + opacity: 0; + } + to { + transform: translateX(0%); + opacity: 1; + } +} + +@keyframes fadeInRight { + from { + transform: translateX(10%); + opacity: 0; + } + to { + transform: translateX(0%); + opacity: 1; + } +} + +@keyframes fadeOut { + from { + opacity: 1; + } + to { + opacity: 0; + } +} + +@keyframes fadeOutLeft { + from { + transform: translateX(0%); + opacity: 1; + } + to { + transform: translateX(-10%); + opacity: 0; + } +} + +@keyframes fadeOutRight { + from { + transform: translateX(0%); + opacity: 1; + } + to { + transform: translateX(10%); + opacity: 0; + } +} + + +/*-------------------------------------------------------------- +1.2 LIST +--------------------------------------------------------------*/ + +@keyframes listIn { + from { + transform: translateY(-16px); + opacity: .5; + } + to { + transform: translateY(0); + opacity: 1; + } +} + + +/*-------------------------------------------------------------- +1.3 ZOOM +--------------------------------------------------------------*/ + +@keyframes zoomIn { + from { + transform: scale(.8); + opacity: 0; + } + to { + transform: scale(1); + opacity: 1; + } +} + +@keyframes zoomOut { + from { + transform: scale(1); + opacity: 1; + } + to { + transform: scale(.8); + opacity: 0; + } +} + /*-------------------------------------------------------------- -# BODY +2.0 THEMES +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +2.1 DEFAULT --------------------------------------------------------------*/ body { @@ -42,12 +164,11 @@ body { /*-------------------------------------------------------------- -# COMPONENTS +3.0 COMPONENTS --------------------------------------------------------------*/ - /*-------------------------------------------------------------- -# BUTTON +3.1 BUTTON --------------------------------------------------------------*/ .satus-button { @@ -98,7 +219,7 @@ body { /*-------------------------------------------------------------- -# COLOR PICKER +3.2 COLOR PICKER --------------------------------------------------------------*/ .satus-color-picker { @@ -160,7 +281,7 @@ body { /*-------------------------------------------------------------- -# DIALOG +3.3 DIALOG --------------------------------------------------------------*/ .satus-dialog { @@ -215,49 +336,9 @@ body { animation: zoomOut 70ms linear forwards; } -@keyframes fadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} - -@keyframes fadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - } -} - -@keyframes zoomIn { - from { - transform: scale(.8); - opacity: 0; - } - to { - transform: scale(1); - opacity: 1; - } -} - -@keyframes zoomOut { - from { - transform: scale(1); - opacity: 1; - } - to { - transform: scale(.8); - opacity: 0; - } -} - /*-------------------------------------------------------------- -# FOLDER +3.4 FOLDER --------------------------------------------------------------*/ .satus-folder { @@ -266,7 +347,7 @@ body { /*-------------------------------------------------------------- -# HEADER +3.5 HEADER --------------------------------------------------------------*/ .satus-header { @@ -286,7 +367,7 @@ body { /*-------------------------------------------------------------- -# LIST +3.6 LIST --------------------------------------------------------------*/ .satus-list--compact, @@ -298,7 +379,7 @@ body { /*-------------------------------------------------------------- -# MAIN +3.7 MAIN ---------------------------------------------------------------- # General # Animations @@ -350,50 +431,6 @@ body { animation: fadeOutRight 250ms; } -@keyframes fadeInLeft { - from { - transform: translateX(-10%); - opacity: 0; - } - to { - transform: translateX(0%); - opacity: 1; - } -} - -@keyframes fadeInRight { - from { - transform: translateX(10%); - opacity: 0; - } - to { - transform: translateX(0%); - opacity: 1; - } -} - -@keyframes fadeOutLeft { - from { - transform: translateX(0%); - opacity: 1; - } - to { - transform: translateX(-10%); - opacity: 0; - } -} - -@keyframes fadeOutRight { - from { - transform: translateX(0%); - opacity: 1; - } - to { - transform: translateX(10%); - opacity: 0; - } -} - .satus-scrollbar { position: relative; overflow: hidden; @@ -439,7 +476,7 @@ body { /*-------------------------------------------------------------- -# SECTION +3.8 SECTION --------------------------------------------------------------*/ .satus-section { @@ -451,7 +488,7 @@ body { /*-------------------------------------------------------------- -# SELECT +3.9 SELECT --------------------------------------------------------------*/ .satus-select { @@ -487,17 +524,6 @@ body { padding: 0 16px; } -@keyframes listIn { - from { - transform: translateY(-16px); - opacity: .5; - } - to { - transform: translateY(0); - opacity: 1; - } -} - .satus-shortcut { position: relative; display: flex; @@ -659,7 +685,7 @@ body { /*-------------------------------------------------------------- -# SLIDER +3.10 SLIDER --------------------------------------------------------------*/ .satus-slider { @@ -808,7 +834,7 @@ body { /*-------------------------------------------------------------- -# SWITCH +3.11 SWITCH --------------------------------------------------------------*/ .satus-switch { @@ -915,7 +941,7 @@ body { /*-------------------------------------------------------------- -# TABLE +3.12 TABLE --------------------------------------------------------------*/ .satus-table { @@ -1056,7 +1082,7 @@ body { /*-------------------------------------------------------------- -# TEXT +3.13 TEXT --------------------------------------------------------------*/ .satus-text { @@ -1071,7 +1097,7 @@ body { /*-------------------------------------------------------------- -# TEXT FIELD +3.14 TEXT FIELD --------------------------------------------------------------*/ .satus-text-field { diff --git a/satus.js b/satus.js index e9ef61b95..98a6415ac 100644 --- a/satus.js +++ b/satus.js @@ -1,42 +1,49 @@ /*-------------------------------------------------------------- ->>> SATUS +>>> SATUS.JS ---------------------------------------------------------------- -# Core - # Events - # Render - # Camelize - # Animation duration -# Modules - # Browser storage - # Localization - # Render - # Clone node styles - # Search - # Storage keys - # User -# Components - # Button - # Colop picker - # Dialog - # Folder - # Header - # List - # Main - # Scroll bar - # Section - # Select - # Shortcut - # Slider - # Switch - # Text - # Text field +1.0 Core + 1.1 Events + 1.2 Isset + 1.3 Camelize + 1.4 Animation duration +2.0 Modules + 2.1 Browser storage + 2.2 Localization + 2.3 Render + 2.4 Clone node styles + 2.5 Search + 2.6 Storage keys + 2.7 User +3.0 Components + 3.1 Button + 3.2 Colop picker + 3.3 Dialog + 3.4 Folder + 3.5 Header + 3.6 List + 3.7 Main + 3.8 Scroll bar + 3.9 Section + 3.10 Select + 3.11 Shortcut + 3.12 Slider + 3.13 Switch + 3.14 Text + 3.15 Text field --------------------------------------------------------------*/ -var satus = {}; +/*-------------------------------------------------------------- +1.0 CORE +--------------------------------------------------------------*/ + +var satus = { + components: {}, + modules: {} +}; /*-------------------------------------------------------------- -# EVENTS +1.1 EVENTS --------------------------------------------------------------*/ satus.events = {}; @@ -51,21 +58,7 @@ satus.on = function (event, handler) { /*-------------------------------------------------------------- -# COMPONENTS ---------------------------------------------------------------*/ - -satus.components = {}; - - -/*-------------------------------------------------------------- -# MODULES ---------------------------------------------------------------*/ - -satus.modules = {}; - - -/*-------------------------------------------------------------- -# ISSET +1.2 ISSET --------------------------------------------------------------*/ satus.isset = function (variable) { @@ -78,7 +71,7 @@ satus.isset = function (variable) { /*-------------------------------------------------------------- -# CAMELIZE +1.3 CAMELIZE --------------------------------------------------------------*/ satus.camelize = function (string) { @@ -89,7 +82,7 @@ satus.camelize = function (string) { /*-------------------------------------------------------------- -# ANIMATION DURATION +1.4 ANIMATION DURATION --------------------------------------------------------------*/ satus.getAnimationDuration = function (element) { @@ -98,11 +91,11 @@ satus.getAnimationDuration = function (element) { /*-------------------------------------------------------------- -# MODULES +2.0 MODULES --------------------------------------------------------------*/ /*-------------------------------------------------------------- -# BROWSER STORAGE +2.1 BROWSER STORAGE --------------------------------------------------------------*/ satus.storage = {}; @@ -187,7 +180,7 @@ satus.storage.clear = function () { /*--------------------------------------------------------------- -# LOCALIZATION +2.2 LOCALIZATION ---------------------------------------------------------------*/ satus.locale = { @@ -261,7 +254,7 @@ satus.locale.import = function (language, callback) { /*-------------------------------------------------------------- -# RENDER +2.3 RENDER --------------------------------------------------------------*/ satus.render = function (element, container, callback) { @@ -352,7 +345,7 @@ satus.render = function (element, container, callback) { /*-------------------------------------------------------------- -# CLONE NODE STYLES +2.4 CLONE NODE STYLES --------------------------------------------------------------*/ satus.cloneNodeStyles = function (origin, target) { @@ -365,7 +358,7 @@ satus.cloneNodeStyles = function (origin, target) { /*-------------------------------------------------------------- -# SEARCH +2.5 SEARCH --------------------------------------------------------------*/ satus.search = function (query, object, callback, categories) { @@ -421,7 +414,7 @@ satus.search = function (query, object, callback, categories) { /*-------------------------------------------------------------- -# STORAGE KEYS +2.6 STORAGE KEYS --------------------------------------------------------------*/ satus.modules.updateStorageKeys = function (object, callback) { @@ -455,7 +448,7 @@ satus.modules.updateStorageKeys = function (object, callback) { /*-------------------------------------------------------------- -# USER +2.7 USER --------------------------------------------------------------*/ satus.modules.user = function () { @@ -812,11 +805,11 @@ satus.on('render', function (component, data) { /*-------------------------------------------------------------- -# COMPONENTS +3.0 COMPONENTS --------------------------------------------------------------*/ /*-------------------------------------------------------------- -# BUTTON +3.1 BUTTON --------------------------------------------------------------*/ satus.components.button = function (element) { @@ -845,7 +838,7 @@ satus.components.button = function (element) { /*-------------------------------------------------------------- -# COLOR PICKER +3.2 COLOR PICKER --------------------------------------------------------------*/ satus.components.colorPicker = function (element) { @@ -927,7 +920,7 @@ satus.components.colorPicker = function (element) { /*-------------------------------------------------------------- -# DIALOG +3.3 DIALOG --------------------------------------------------------------*/ satus.components.dialog = function (element) { @@ -1019,7 +1012,7 @@ satus.components.dialog = function (element) { /*-------------------------------------------------------------- -# FOLDER +3.4 FOLDER --------------------------------------------------------------*/ satus.components.folder = function (object) { @@ -1055,7 +1048,7 @@ satus.components.folder = function (object) { /*-------------------------------------------------------------- -# HEADER +3.5 HEADER --------------------------------------------------------------*/ satus.components.header = function (object) { @@ -1070,7 +1063,7 @@ satus.components.header = function (object) { /*-------------------------------------------------------------- -# LIST +3.6 LIST --------------------------------------------------------------*/ satus.components.list = function (object) { @@ -1178,7 +1171,7 @@ satus.components.list = function (object) { /*-------------------------------------------------------------- -# MAIN +3.7 MAIN --------------------------------------------------------------*/ satus.components.main = function (object) { @@ -1275,7 +1268,7 @@ satus.components.main = function (object) { /*-------------------------------------------------------------- -# SCROLL BAR +3.8 SCROLL BAR --------------------------------------------------------------*/ satus.components.scrollbar = function (parent, enabled) { @@ -1385,7 +1378,7 @@ satus.components.scrollbar = function (parent, enabled) { /*-------------------------------------------------------------- -# SECTION +3.9 SECTION --------------------------------------------------------------*/ satus.components.section = function (element) { @@ -1400,7 +1393,7 @@ satus.components.section = function (element) { /*-------------------------------------------------------------- -# SELECT +3.10 SELECT --------------------------------------------------------------*/ satus.components.select = function (element) { @@ -1470,7 +1463,7 @@ satus.components.select = function (element) { /*--------------------------------------------------------------- -# SHORTCUT +3.11 SHORTCUT ---------------------------------------------------------------*/ satus.components.shortcut = function (element) { @@ -1675,7 +1668,7 @@ satus.components.shortcut = function (element) { /*-------------------------------------------------------------- -# SLIDER +3.12 SLIDER --------------------------------------------------------------*/ satus.components.slider = function (element) { @@ -1814,7 +1807,7 @@ satus.components.slider = function (element) { /*-------------------------------------------------------------- -# SWITCH +3.13 SWITCH --------------------------------------------------------------*/ satus.components.switch = function (element) { @@ -1949,6 +1942,8 @@ satus.components.switch = function (element) { return component; }; + + satus.components.table = function (item) { var component = document.createElement('div'), component_head = document.createElement('div'), @@ -2166,7 +2161,7 @@ satus.components.table = function (item) { /*-------------------------------------------------------------- -# TEXT +3.14 TEXT --------------------------------------------------------------*/ satus.components.text = function (element) { @@ -2195,7 +2190,7 @@ satus.components.text = function (element) { /*-------------------------------------------------------------- -# TEXT FIELD +3.15 TEXT FIELD --------------------------------------------------------------*/ satus.components.textField = function (element) { From 98e9203321ef386f55a2f70b6efed1bdadfef8f3 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 8 Jun 2021 08:36:16 +0300 Subject: [PATCH 0145/1224] Background: Several fixes and improvements --- background.js | 60 +++++++++++++++++++++++++-------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/background.js b/background.js index c076f9d1a..7d69b24df 100644 --- a/background.js +++ b/background.js @@ -1,26 +1,26 @@ /*-------------------------------------------------------------- >>> BACKGROUND ---------------------------------------------------------------- -# Global variables -# Functions -# Context menu items -# Message listener -# Storage change listener -# Tab focus/blur -# Uninstall URL -# Google Analytics -# Initialization +1.0 Global variables +2.0 Functions +3.0 Context menu items +4.0 Message listener +5.0 Storage change listener +6.0 Tab focus/blur +7.0 Uninstall URL +8.0 Google Analytics +9.0 Initialization --------------------------------------------------------------*/ /*-------------------------------------------------------------- -# GLOBAL VARIABLES +1.0 GLOBAL VARIABLES --------------------------------------------------------------*/ var locale_code = 'en', browser_icon = false; /*-------------------------------------------------------------- -# FUNCTIONS +2.0 FUNCTIONS --------------------------------------------------------------*/ function isset(variable) { @@ -72,7 +72,7 @@ function browserActionIcon() { /*-------------------------------------------------------------- -# CONTEXT MENU ITEMS +3.0 CONTEXT MENU ITEMS --------------------------------------------------------------*/ chrome.contextMenus.removeAll(); @@ -107,7 +107,7 @@ chrome.contextMenus.onClicked.addListener(function(event) { /*-------------------------------------------------------------- -# MESSAGE LISTENER +4.0 MESSAGE LISTENER --------------------------------------------------------------*/ chrome.runtime.onMessage.addListener(function(request, sender) { @@ -290,7 +290,7 @@ chrome.runtime.onMessage.addListener(function(request, sender) { /*-------------------------------------------------------------- -# STORAGE CHANGE LISTENER +5.0 STORAGE CHANGE LISTENER --------------------------------------------------------------*/ chrome.storage.onChanged.addListener(function(changes) { @@ -307,21 +307,23 @@ chrome.storage.onChanged.addListener(function(changes) { /*-------------------------------------------------------------- -# TAB FOCUS/BLUR +6.0 TAB FOCUS/BLUR --------------------------------------------------------------*/ chrome.tabs.onActivated.addListener(function(activeInfo) { - chrome.tabs.query({}, function(tabs) { - chrome.tabs.sendMessage(activeInfo.tabId, { - action: 'focus' - }); + chrome.tabs.sendMessage(activeInfo.tabId, { + action: 'focus' + }); - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].id !== activeInfo.tabId) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - action: 'blur' - }); + chrome.tabs.getAllInWindow(activeInfo.windowId, function(tabs) { + if (tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].id !== activeInfo.tabId) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + action: 'blur' + }); + } } } } @@ -330,14 +332,14 @@ chrome.tabs.onActivated.addListener(function(activeInfo) { /*-------------------------------------------------------------- -# UNINSTALL URL +7.0 UNINSTALL URL --------------------------------------------------------------*/ chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); /**-------------------------------------------------------------- -# GOOGLE ANALYTICS +8.0 GOOGLE ANALYTICS --------------------------------------------------------------*/ var _gaq = _gaq || []; @@ -359,7 +361,7 @@ var _gaq = _gaq || []; /*-------------------------------------------------------------- -# INITIALIZATION +9.0 INITIALIZATION --------------------------------------------------------------*/ chrome.storage.local.get(function(items) { @@ -372,9 +374,7 @@ chrome.storage.local.get(function(items) { } browserActionIcon(); -}); -chrome.storage.local.get(function(items) { var a = new Date().getTime(); if (a - (items.ga || 0) >= 86400000) { From 2b256aec3de1fec2fb92765609fc4b37602eb860 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 8 Jun 2021 08:45:48 +0300 Subject: [PATCH 0146/1224] Popup: Added Frame By Frame link --- manifest.json | 2 +- popup.js | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 140b53f39..02743e674 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.300", + "version": "3.252", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 88a23c9bd..0e898c075 100644 --- a/popup.js +++ b/popup.js @@ -1328,6 +1328,19 @@ skeleton.main = { type: 'section', class: 'satus-section--info', + frame_by_frame: { + type: 'button', + innerHTML: 'Frame By Frame by ImprovedTube team', + style: { + 'margin': '0 0 8px', + 'width': '100%', + 'textAlign': 'center', + 'background': '#4b4abf' + }, + onclick: function () { + window.open('https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh', '_blank'); + } + }, email: { type: 'button', label: 'Email', From d22c272f9d6438b473518ed0de011e1b28a517c0 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 11 Jun 2021 11:56:14 +0200 Subject: [PATCH 0147/1224] Update popup.css --- popup.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/popup.css b/popup.css index 5c044e8ee..9a3ee83d9 100644 --- a/popup.css +++ b/popup.css @@ -1159,7 +1159,7 @@ html[it-improvedtube-home='list'] .satus-section--info { # OPTIONS --------------------------------------------------------------*/ -@media (min-width: 321px) { +@media (min-width: 321px !important;) { html { display: flex; justify-content: center; @@ -1331,4 +1331,4 @@ html[theme=black] body { --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); --satus-theme-tooltip: rgba(10, 10, 10, .7); --satus-theme-ripple: rgba(255, 255, 255, .04); -} \ No newline at end of file +} From b60a0588e3694915b6053042d59ee2bf590cb395 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 13 Jun 2021 22:33:37 +0300 Subject: [PATCH 0148/1224] Updated locales --- _locales/ar/messages.json | 9 ++++++--- _locales/bn/messages.json | 9 ++++++--- _locales/de/messages.json | 11 +++++++---- _locales/el/messages.json | 9 ++++++--- _locales/en/messages.json | 9 ++++++--- _locales/es/messages.json | 9 ++++++--- _locales/fr/messages.json | 9 ++++++--- _locales/hin/messages.json | 9 ++++++--- _locales/hr/messages.json | 9 ++++++--- _locales/id/messages.json | 9 ++++++--- _locales/it/messages.json | 9 ++++++--- _locales/ja/messages.json | 9 ++++++--- _locales/ko/messages.json | 9 ++++++--- _locales/nb_NO/messages.json | 9 ++++++--- _locales/nl/messages.json | 9 ++++++--- _locales/no/messages.json | 9 ++++++--- _locales/pl/messages.json | 9 ++++++--- _locales/pt_BR/messages.json | 9 ++++++--- _locales/pt_PT/messages.json | 9 ++++++--- _locales/ro/messages.json | 9 ++++++--- _locales/ru/messages.json | 9 ++++++--- _locales/sk/messages.json | 9 ++++++--- _locales/tr/messages.json | 9 ++++++--- _locales/zh_CN/messages.json | 9 ++++++--- _locales/zh_TW/messages.json | 9 ++++++--- popup.css | 2 +- popup.js | 4 ++++ 27 files changed, 156 insertions(+), 77 deletions(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index c13b8f767..23ca6d207 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "حول" }, @@ -215,6 +212,9 @@ "description": { "message": "الوصف" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "صحراء" }, @@ -683,6 +683,9 @@ "styles": { "message": "الأنماط" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "الاشتراكات" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 93dde5775..53b3c2991 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "সম্পর্কিত" }, @@ -215,6 +212,9 @@ "description": { "message": "বর্ণনা" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "মরুভূমি" }, @@ -683,6 +683,9 @@ "styles": { "message": "শৈলী" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "সাবস্ক্রিপশন" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 4c9b71860..6553f90fc 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "Info" }, @@ -215,6 +212,9 @@ "description": { "message": "Beschreibung" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "Wüste" }, @@ -683,6 +683,9 @@ "styles": { "message": "Stile" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "Abos" }, @@ -812,4 +815,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube begrenzt die Qualität auf 1080p für den h.264 Codec" } -} +} \ No newline at end of file diff --git a/_locales/el/messages.json b/_locales/el/messages.json index ddad5cb20..a313232c9 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "Σχετικά" }, @@ -215,6 +212,9 @@ "description": { "message": "Περιγραφή" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "Έρημος" }, @@ -683,6 +683,9 @@ "styles": { "message": "Στυλ" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "Συνδρομές" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index cec8f8ee3..ea6e0aa20 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "About" }, @@ -215,6 +212,9 @@ "description": { "message": "Description" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "Desert" }, @@ -695,6 +695,9 @@ "styles": { "message": "Styles" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "Subscriptions" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 7c37a7313..908af93d6 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "Acerca de" }, @@ -215,6 +212,9 @@ "description": { "message": "Descripción" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "Desierto" }, @@ -683,6 +683,9 @@ "styles": { "message": "Estilos" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "Suscripciones" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 6781843d1..d715f410f 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "À propos" }, @@ -215,6 +212,9 @@ "description": { "message": "Description" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "Desert" }, @@ -686,6 +686,9 @@ "styles": { "message": "Styles" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "Abonnements" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index a199357b2..a6c55b6da 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "के बारे में" }, @@ -215,6 +212,9 @@ "description": { "message": "विवरण" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "रेगिस्तान" }, @@ -683,6 +683,9 @@ "styles": { "message": "शैलियाँ" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "सदस्यता" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 844ca59a9..0a1897995 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "O" }, @@ -215,6 +212,9 @@ "description": { "message": "Opis" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "Zasluga" }, @@ -695,6 +695,9 @@ "styles": { "message": "Stilovi" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "Pretplate" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 154548659..310b513fc 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "Tentang" }, @@ -215,6 +212,9 @@ "description": { "message": "Deskripsi" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "Gurun" }, @@ -680,6 +680,9 @@ "styles": { "message": "Mode" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "Berlangganan" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index d96060c0a..f91f08877 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "Al riguardo" }, @@ -215,6 +212,9 @@ "description": { "message": "Descrizione" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "Deserto" }, @@ -680,6 +680,9 @@ "styles": { "message": "Stili" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "Sottoscrizioni" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 36dae6662..e9b2dea4d 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "このソフトについて" }, @@ -215,6 +212,9 @@ "description": { "message": "説明" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "砂漠" }, @@ -683,6 +683,9 @@ "styles": { "message": "スタイル" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "登録チャンネル" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 6a5580c97..f384f72de 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "정보" }, @@ -215,6 +212,9 @@ "description": { "message": "설명" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "사막" }, @@ -680,6 +680,9 @@ "styles": { "message": "스타일" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "구독" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index c556d1765..8ed871367 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "Om" }, @@ -215,6 +212,9 @@ "description": { "message": "Beskrivelse" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "Ørken" }, @@ -686,6 +686,9 @@ "styles": { "message": "Stiler" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "Abonnementer" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index c69cdd4c5..6e4432583 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "Over" }, @@ -215,6 +212,9 @@ "description": { "message": "Beschrijving" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "Woestijn" }, @@ -683,6 +683,9 @@ "styles": { "message": "Stijlen" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "Abonnementen" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 3871982b5..5b2ec4c0a 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "Om" }, @@ -215,6 +212,9 @@ "description": { "message": "Beskrivelse" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "Ørken" }, @@ -677,6 +677,9 @@ "styles": { "message": "Stiler" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "Abonnementer" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 5a7add1a2..c10704f07 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "Informacje" }, @@ -215,6 +212,9 @@ "description": { "message": "Opis" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "Pustynia" }, @@ -695,6 +695,9 @@ "styles": { "message": "Style" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "Subskrypcje" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 0aa16b601..1add2f0b9 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "Sobre" }, @@ -215,6 +212,9 @@ "description": { "message": "Descrição" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "Deserto" }, @@ -683,6 +683,9 @@ "styles": { "message": "Estilos" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "Inscrições" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 9eb9fbbcf..1be05b5e7 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "Acerca" }, @@ -215,6 +212,9 @@ "description": { "message": "Descrição" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "Deserto" }, @@ -683,6 +683,9 @@ "styles": { "message": "Estilos" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "Subscrições" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 3619a8ba4..be8c25daf 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "Despre" }, @@ -215,6 +212,9 @@ "description": { "message": "Descriere" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "Deșert" }, @@ -689,6 +689,9 @@ "styles": { "message": "Stiluri" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "Abonamente" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index cce2669ea..2abfdc589 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "Об ImprovedTube" }, @@ -215,6 +212,9 @@ "description": { "message": "Описание" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "Пустыня" }, @@ -683,6 +683,9 @@ "styles": { "message": "Стили" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "Подписки" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 43eaaaf14..cabfe1e1a 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "O" }, @@ -215,6 +212,9 @@ "description": { "message": "Podrobnosti" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "Púšť" }, @@ -683,6 +683,9 @@ "styles": { "message": "Štýly" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "Odbery" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index ee4d19375..70c891058 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "Hakkında" }, @@ -215,6 +212,9 @@ "description": { "message": "Açıklama" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "Çöl" }, @@ -683,6 +683,9 @@ "styles": { "message": "Stiller" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "Aboneler" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 67c499bc7..a39a7d5fb 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "关于" }, @@ -215,6 +212,9 @@ "description": { "message": "视频描述" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "沙漠" }, @@ -695,6 +695,9 @@ "styles": { "message": "样式" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "订阅内容" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 8d854d5de..7cbfe07b8 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -11,9 +11,6 @@ "ARROWUP": { "message": "⇧" }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, "about": { "message": "關於" }, @@ -215,6 +212,9 @@ "description": { "message": "影片描述" }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, "desert": { "message": "沙漠" }, @@ -692,6 +692,9 @@ "styles": { "message": "樣式" }, + "subscribe": { + "message": "Subscribe" + }, "subscriptions": { "message": "訂閱內容" }, diff --git a/popup.css b/popup.css index 9a3ee83d9..b7f8d829e 100644 --- a/popup.css +++ b/popup.css @@ -1159,7 +1159,7 @@ html[it-improvedtube-home='list'] .satus-section--info { # OPTIONS --------------------------------------------------------------*/ -@media (min-width: 321px !important;) { +@media (min-width: 321px) { html { display: flex; justify-content: center; diff --git a/popup.js b/popup.js index 0e898c075..3dd0d8d4b 100644 --- a/popup.js +++ b/popup.js @@ -2831,6 +2831,10 @@ skeleton.main.section.shortcuts = { type: 'shortcut', label: 'dislike' }, + shortcut_subscribe: { + type: 'shortcut', + label: 'subscribe' + }, shortcut_dark_theme: { type: 'shortcut', label: 'darkTheme' From fcd0fe05541e550b2a094a159d57e408fe9382f5 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 13 Jun 2021 22:41:02 +0300 Subject: [PATCH 0149/1224] Added "Subscribe" shortcut --- youtube-scripts.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/youtube-scripts.js b/youtube-scripts.js index bdf5b439c..703b5e743 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2421,6 +2421,13 @@ ImprovedTube.shortcuts = function() { like.click(); } }, + shortcut_subscribe: function() { + var button = document.querySelector('#subscribe-button .ytd-subscribe-button-renderer'); + + if (button) { + button.click(); + } + }, shortcut_dark_theme: function() { if (document.documentElement.hasAttribute('dark')) { document.documentElement.removeAttribute('dark'); From 06eaba501f7ff0106efab38138909de26d0ecce7 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 13 Jun 2021 22:49:48 +0300 Subject: [PATCH 0150/1224] Added "Hide country code" feature --- _locales/ar/messages.json | 3 +++ _locales/bn/messages.json | 3 +++ _locales/de/messages.json | 3 +++ _locales/el/messages.json | 3 +++ _locales/en/messages.json | 3 +++ _locales/es/messages.json | 3 +++ _locales/fr/messages.json | 3 +++ _locales/hin/messages.json | 3 +++ _locales/hr/messages.json | 3 +++ _locales/id/messages.json | 3 +++ _locales/it/messages.json | 3 +++ _locales/ja/messages.json | 3 +++ _locales/ko/messages.json | 3 +++ _locales/nb_NO/messages.json | 3 +++ _locales/nl/messages.json | 3 +++ _locales/no/messages.json | 3 +++ _locales/pl/messages.json | 3 +++ _locales/pt_BR/messages.json | 3 +++ _locales/pt_PT/messages.json | 3 +++ _locales/ro/messages.json | 3 +++ _locales/ru/messages.json | 3 +++ _locales/sk/messages.json | 3 +++ _locales/tr/messages.json | 3 +++ _locales/zh_CN/messages.json | 3 +++ _locales/zh_TW/messages.json | 3 +++ content-scripts.js | 1 + content-styles.css | 10 ++++++++++ manifest.json | 2 +- popup.js | 5 +++++ 29 files changed, 92 insertions(+), 1 deletion(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 23ca6d207..36cda91db 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -341,6 +341,9 @@ "hideCards": { "message": "إخفاء البطاقات" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "إخفاء التفاصيل" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 53b3c2991..b3ce1da75 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -341,6 +341,9 @@ "hideCards": { "message": "কার্ড লুকান" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "আড়াল বিস্তারিত" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 6553f90fc..558bdcd13 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -341,6 +341,9 @@ "hideCards": { "message": "Karten ausblenden" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "Details ausblenden" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index a313232c9..328a92e6b 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -341,6 +341,9 @@ "hideCards": { "message": "Απόκρυψε τις κάρτες" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "Απόκρυψε τις λεπτομέρειες" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index ea6e0aa20..abeb0e99a 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -347,6 +347,9 @@ "hideControls": { "message": "Hide player controls" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "Hide details" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 908af93d6..c468921bb 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -341,6 +341,9 @@ "hideCards": { "message": "Ocultar tarjetas" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "Ocultar detalles" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index d715f410f..cf3f8dd57 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -341,6 +341,9 @@ "hideCards": { "message": "Cacher les cartes" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "Cacher les détails" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index a6c55b6da..2894e979f 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -341,6 +341,9 @@ "hideCards": { "message": "पत्ते छिपाओ" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "जानकारी छिपाएँ" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 0a1897995..32b560fe5 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -347,6 +347,9 @@ "hideControls": { "message": "Sakrij kontrole playera" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "Sakrij detalje" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 310b513fc..dc58b8238 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -341,6 +341,9 @@ "hideCards": { "message": "Sembunyikan kartu" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "Sembunyikan detail" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index f91f08877..bf91c71fd 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -341,6 +341,9 @@ "hideCards": { "message": "Nascondi tessere di fine video" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "Nascondi dettagli" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index e9b2dea4d..ac6b89c2c 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -341,6 +341,9 @@ "hideCards": { "message": "カードを隠す" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "詳細を隠す" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index f384f72de..dfe98114b 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -341,6 +341,9 @@ "hideCards": { "message": "카드 숨기기" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "상세설명 숨기기" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 8ed871367..d3b4b6df2 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -344,6 +344,9 @@ "hideCards": { "message": "Skjul kort" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "Skjul detaljer" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 6e4432583..5291917ca 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -341,6 +341,9 @@ "hideCards": { "message": "Verberg kaarten" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "Verberg details" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 5b2ec4c0a..54b244ddc 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -341,6 +341,9 @@ "hideCards": { "message": "Skjul kort" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "Skjul detaljer" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index c10704f07..7f03685fc 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -347,6 +347,9 @@ "hideControls": { "message": "Ukryj sterowanie odtwarzaczem" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "Ukryj szczegóły" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 1add2f0b9..e4fc9c749 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -341,6 +341,9 @@ "hideCards": { "message": "Ocultar cards" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "Ocultar detalhes" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 1be05b5e7..07c0c0e6b 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -341,6 +341,9 @@ "hideCards": { "message": "Esconder cartas" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "Esconder detalhes" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index be8c25daf..acabaa934 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -344,6 +344,9 @@ "hideCards": { "message": "Ascunde cardurile" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "Ascunde detaliile" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 2abfdc589..4c9326a7f 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -341,6 +341,9 @@ "hideCards": { "message": "Скрыть карточки" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "Скрыть подробную информацию" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index cabfe1e1a..31322073b 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -341,6 +341,9 @@ "hideCards": { "message": "Skryť karty" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "Skryť detaily" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 70c891058..d74928df0 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -341,6 +341,9 @@ "hideCards": { "message": "Kartları gizle" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "Detayları gizle" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index a39a7d5fb..6de36148e 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -347,6 +347,9 @@ "hideControls": { "message": "隐藏播放控制器" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "隐藏详细信息" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 7cbfe07b8..f3daca209 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -344,6 +344,9 @@ "hideControls": { "message": "隱藏播放器控制" }, + "hideCountryCode": { + "message": "Hide country code" + }, "hideDetails": { "message": "隱藏細節" }, diff --git a/content-scripts.js b/content-scripts.js index 93e30a123..d8147481b 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -56,6 +56,7 @@ function attributes(items) { 'header-position': true, 'header-improve-logo': true, 'header-hide-right-buttons': true, + 'header-hide-country-code': true, 'player-hide-annotations': true, 'player-hide-cards': true, 'player-show-cards-on-mouse-hover': true, diff --git a/content-styles.css b/content-styles.css index 1bd91d0c6..b709846fc 100644 --- a/content-styles.css +++ b/content-styles.css @@ -14,6 +14,7 @@ 2.1.1 Position 2.1.2 Improve logo 2.1.3 Hide right buttons + 2.1.4 Hide country code 2.2 Player 2.2.1 Hide annotations 2.2.2 Hide cards @@ -377,6 +378,15 @@ html[it-header-hide-right-buttons=true] ytd-masthead#masthead #container #end { } +/*------------------------------------------------------------------------------ +2.1.4 HIDE COUNTRY CODE +------------------------------------------------------------------------------*/ + +html[it-header-hide-country-code=true] #logo #country-code { + display: none; +} + + /*------------------------------------------------------------------------------ 2.2 PLAYER ------------------------------------------------------------------------------*/ diff --git a/manifest.json b/manifest.json index 02743e674..1d5732816 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.252", + "version": "3.254", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 3dd0d8d4b..017918321 100644 --- a/popup.js +++ b/popup.js @@ -1538,6 +1538,11 @@ skeleton.main.section.appearance = { type: 'switch', label: 'hideRightButtons', tags: 'user' + }, + header_hide_country_code: { + type: 'switch', + label: 'hideCountryCode', + tags: 'country,code' } } }, From 1bad971e189e107050114aa47fa3b1a02e717b5c Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 13 Jun 2021 23:43:19 +0300 Subject: [PATCH 0151/1224] Fixed options page --- manifest.json | 4 ++-- options.html | 27 +++++++++++++++++++++++++++ popup.css | 18 ------------------ 3 files changed, 29 insertions(+), 20 deletions(-) create mode 100644 options.html diff --git a/manifest.json b/manifest.json index 1d5732816..aa16c1ef0 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.254", + "version": "3.255", "default_locale": "en", "icons": { "128": "assets/icons/128.png", @@ -26,7 +26,7 @@ }, "default_popup": "index.html" }, - "options_page": "index.html", + "options_page": "options.html", "content_scripts": [{ "all_frames": true, "css": [ diff --git a/options.html b/options.html new file mode 100644 index 000000000..7347c97ab --- /dev/null +++ b/options.html @@ -0,0 +1,27 @@ + + + + + + ImprovedTube + + + + + + + + + \ No newline at end of file diff --git a/popup.css b/popup.css index b7f8d829e..d715bdf46 100644 --- a/popup.css +++ b/popup.css @@ -1155,24 +1155,6 @@ html[it-improvedtube-home='list'] .satus-section--info { } -/*-------------------------------------------------------------- -# OPTIONS ---------------------------------------------------------------*/ - -@media (min-width: 321px) { - html { - display: flex; - justify-content: center; - } - body { - width: 100%; - max-width: 768px; - height: 100vh; - position: relative; - } -} - - /*-------------------------------------------------------------- # THEMES --------------------------------------------------------------*/ From ef1ed670827b816013e0853e1939fd3db2dfd915 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 14 Jun 2021 16:04:18 +0300 Subject: [PATCH 0152/1224] Added "Auto" option to "Quality" shortcut --- popup.js | 4 ++++ youtube-scripts.js | 11 +++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/popup.js b/popup.js index 017918321..7bc9af5e0 100644 --- a/popup.js +++ b/popup.js @@ -2756,6 +2756,10 @@ skeleton.main.section.shortcuts = { section: { type: 'section', + shortcut_auto: { + type: 'shortcut', + label: 'auto' + }, shortcut_240p: { type: 'shortcut', label: '240p' diff --git a/youtube-scripts.js b/youtube-scripts.js index 703b5e743..9eb0f4229 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1,8 +1,7 @@ /*------------------------------------------------------------------------------ >>> TABLE OF CONTENTS: -------------------------------------------------------------------------------- -1.0 Global variable - +0.0 Global variable 1.0 General 1.1 YouTube home page 1.2 Collapse of subscription sections @@ -2191,6 +2190,14 @@ ImprovedTube.shortcuts = function() { } var features = { + shortcut_auto: function() { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('auto'); + player.setPlaybackQuality('auto'); + } + }, shortcut_240p: function() { var player = document.querySelector('#movie_player'); From 65646441070f7ba42aa37a4f4736d8e0d7aff967 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 14 Jun 2021 16:09:14 +0300 Subject: [PATCH 0153/1224] Fixed "Hidden" option in "Likes" feature --- content-styles.css | 4 ++++ manifest.json | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/content-styles.css b/content-styles.css index b709846fc..8e59460ca 100644 --- a/content-styles.css +++ b/content-styles.css @@ -991,6 +991,8 @@ html[it-hide-views-count=true] #watch7-views-info>.watch-view-count { [it-likes=hidden] .video-extras-sparkbar-dislikes, [it-likes=hidden] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(1), [it-likes=hidden] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(2), +[it-likes=hidden] #info #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1), +[it-likes=hidden] #info #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2), [it-likes=hidden] #sentiment.ytd-video-primary-info-renderer { visibility: hidden !important; pointer-events: none !important; @@ -1001,6 +1003,8 @@ html[it-hide-views-count=true] #watch7-views-info>.watch-view-count { [it-likes=icons_only] .video-extras-sparkbar-dislikes, [it-likes=icons_only] #top-level-buttons ytd-toggle-button-renderer:nth-child(1) yt-formatted-string, [it-likes=icons_only] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) yt-formatted-string, +[it-likes=icons_only] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) yt-formatted-string, +[it-likes=icons_only] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) yt-formatted-string, [it-likes=icons_only] #sentiment.ytd-video-primary-info-renderer { visibility: hidden !important; pointer-events: none !important; diff --git a/manifest.json b/manifest.json index aa16c1ef0..69de0a07c 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.255", + "version": "3.257", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 3ef3737fa62e75b97ff9cb55bbf17a7f58acf416 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 14 Jun 2021 16:13:35 +0300 Subject: [PATCH 0154/1224] Hide views count: dot is hidden --- content-styles.css | 4 ++-- manifest.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content-styles.css b/content-styles.css index 8e59460ca..67aa9bdac 100644 --- a/content-styles.css +++ b/content-styles.css @@ -977,8 +977,8 @@ html[it-description=expanded] .yt-uix-expander-collapsed .yt-uix-expander-body { ------------------------------------------------------------------------------*/ html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer, -html[it-hide-views-count=true] #watch7-views-info>.watch-view-count { - display: none !important; +html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer + #date > #dot { + display: none; } diff --git a/manifest.json b/manifest.json index 69de0a07c..43690da38 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.257", + "version": "3.258", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 67a0a6bc1aa4da88c928403721a1d1f3313e5f3e Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 14 Jun 2021 16:26:46 +0300 Subject: [PATCH 0155/1224] Beautification --- manifest.json | 2 +- youtube-scripts.js | 24 +++++++++++++----------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/manifest.json b/manifest.json index 43690da38..6c181d549 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.258", + "version": "3.259", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 9eb0f4229..3722b14d5 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2369,27 +2369,29 @@ ImprovedTube.shortcuts = function() { ImprovedTube.screenshot(); } }, - shortcut_increase_playback_speed: function() { + shortcut_increase_playback_speed: function () { var video = document.querySelector('#movie_player video'); if (video && video.playbackRate) { - if ( video.playbackRate < 1 && video.playbackRate > 1-ImprovedTube.storage.shortcut_playback_speed_step ) { - video.playbackRate = 1 } else { // aligning at 1.0 independent of minimum + if (video.playbackRate < 1 && video.playbackRate > 1 - ImprovedTube.storage.shortcut_playback_speed_step) { + video.playbackRate = 1 + } else { // aligning at 1.0 independent of minimum - video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); - } + video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); + } showStatus(document.querySelector('#movie_player'), video.playbackRate); } }, - shortcut_decrease_playback_speed: function() { + shortcut_decrease_playback_speed: function () { var video = document.querySelector('#movie_player video'); - + if (video && video.playbackRate) { - if ( video.playbackRate < 0.15+ImprovedTube.storage.shortcut_playback_speed_step ) { - video.playbackRate = (video.playbackRate*0.7).toFixed(3) } else { // slow down near minimum + if (video.playbackRate < 0.15 + ImprovedTube.storage.shortcut_playback_speed_step) { + video.playbackRate = (video.playbackRate * 0.7).toFixed(3) + } else { // slow down near minimum - video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); - } + video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); + } showStatus(document.querySelector('#movie_player'), video.playbackRate); } }, From c4b0572f9da00c0281da466157950f3b83f9b6cf Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 14 Jun 2021 16:28:56 +0300 Subject: [PATCH 0156/1224] Fixed Like & Dislike shortcuts --- youtube-scripts.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 3722b14d5..fbe7f389a 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2417,14 +2417,14 @@ ImprovedTube.shortcuts = function() { } }, shortcut_like_shortcut: function() { - var like = (document.querySelectorAll('.like-button-renderer-like-button')[0] || document.querySelectorAll('#menu #top-level-buttons ytd-toggle-button-renderer')[0]); + var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer')[0]); if (like) { like.click(); } }, shortcut_dislike_shortcut: function() { - var like = (document.querySelectorAll('.like-button-renderer-dislike-button')[0] || document.querySelectorAll('#menu #top-level-buttons ytd-toggle-button-renderer')[1]); + var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer')[1]); if (like) { like.click(); From ffb37b4a522306ce9158162df0a7fb4d52d4524c Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 14 Jun 2021 19:42:34 +0300 Subject: [PATCH 0157/1224] Added tooltips for custom player buttons --- content-styles.css | 16 ++++++++++++++-- manifest.json | 2 +- youtube-scripts.js | 24 +++++++++++++++++++++++- 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/content-styles.css b/content-styles.css index 67aa9bdac..316d11d96 100644 --- a/content-styles.css +++ b/content-styles.css @@ -3121,11 +3121,23 @@ html[it-mini-player-cursor='nw-resize']::after { ------------------------------------------------------------------------------*/ .it-player-button { + position: relative; min-width: 40px; } -#it-screenshot-button { - position: relative !important; +.it-player-button--tooltip { + font-size: 16px; + font-size: 13px; + font-weight: 500; + line-height: 15px; + position: fixed; + padding: 5px 9px; + transform: translate(-50%, -100%); + pointer-events: none; + color: #eee; + border-radius: 2px; + background-color: rgba(28, 28, 28, .9); + text-shadow: 0 0 2px rgb(0, 0, 0, .5); } #it-screenshot-button svg { diff --git a/manifest.json b/manifest.json index 6c181d549..75de84df1 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.259", + "version": "3.260", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index fbe7f389a..6588b73a0 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3437,7 +3437,7 @@ ImprovedTube.setCookie = function(name, value) { document.cookie = name + '=' + value + '; path=/; domain=.youtube.com; expires=' + date.toGMTString(); }; -ImprovedTube.createPlayerButton = function(node, options) { +ImprovedTube.createPlayerButton = function (node, options) { var controls = document.querySelector('.html5-video-player .ytp-left-controls'); if (controls) { @@ -3447,6 +3447,28 @@ ImprovedTube.createPlayerButton = function(node, options) { button.dataset.title = options.title; + button.addEventListener('mouseover', function () { + var tooltip = document.createElement('div'), + rect = this.getBoundingClientRect(); + + tooltip.className = 'it-player-button--tooltip'; + + tooltip.style.left = rect.left + rect.width / 2 + 'px'; + tooltip.style.top = rect.top - 8 + 'px'; + + tooltip.textContent = this.dataset.title; + + function mouseleave() { + tooltip.remove(); + + this.removeEventListener('mouseleave', mouseleave); + } + + this.addEventListener('mouseleave', mouseleave); + + document.body.appendChild(tooltip); + }); + if (options.id) { if (node.querySelector('#' + options.id)) { node.querySelector('#' + options.id).remove(); From 84f3ec81a8dc0325e4dd4f581d173db80d8902c0 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 14 Jun 2021 20:26:19 +0300 Subject: [PATCH 0158/1224] Fixed "Playback speed" feature --- content-styles.css | 1 - manifest.json | 2 +- youtube-scripts.js | 10 ++++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/content-styles.css b/content-styles.css index 316d11d96..d679f105b 100644 --- a/content-styles.css +++ b/content-styles.css @@ -3126,7 +3126,6 @@ html[it-mini-player-cursor='nw-resize']::after { } .it-player-button--tooltip { - font-size: 16px; font-size: 13px; font-weight: 500; line-height: 15px; diff --git a/manifest.json b/manifest.json index 75de84df1..970628df7 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.260", + "version": "3.261", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 6588b73a0..839f13b03 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1093,11 +1093,17 @@ ImprovedTube.playerAutopauseWhenSwitchingTabs = function() { ------------------------------------------------------------------------------*/ ImprovedTube.playerPlaybackSpeed = function(node) { - var option = Number(ImprovedTube.storage.player_playback_speed); + var option = Number(ImprovedTube.storage.player_playback_speed), + player = document.querySelector('.html5-video-player'), + is_live = false; + + if (player && player.getVideoData && player.getVideoData().isLive) { + is_live = true; + } if (ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) && ImprovedTube.storage.player_forced_playback_speed === true) { try { - if (window.location.href.indexOf('music') === -1 && !document.querySelector('ytd-live-chat-frame')) { + if (window.location.href.indexOf('music') === -1 && !is_live) { document.querySelector('.html5-video-player video').playbackRate = option; } else { document.querySelector('.html5-video-player video').playbackRate = 1; From 4dcd403376f50f35ff5ddc4bc1240c08ca2d281e Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 14 Jun 2021 20:47:02 +0300 Subject: [PATCH 0159/1224] Active features: removed deactivated features --- manifest.json | 2 +- popup.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 970628df7..aab3c5152 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.261", + "version": "3.262", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 7bc9af5e0..6c05a0f25 100644 --- a/popup.js +++ b/popup.js @@ -233,7 +233,7 @@ skeleton.header.section_end.button_vert.onClickRender.active_features = { if (object[i].type.match(/(button|select|shortcut|slider|switch)/)) { if (string === i || (object[i].tags && object[i].tags.indexOf(string) !== -1)) { if (object[i].type.indexOf('button') === -1 || !object[i].label) { - if (!satus.isset(object[i].value) && satus.storage[string] !== false || satus.isset(object[i].value) && satus.storage[string] != object[i].value) { + if (!satus.isset(object[i].value) && satus.storage[string] !== false && object[i].type !== 'select' || satus.isset(object[i].value) && satus.storage[string] != object[i].value && (object[i].type === 'select' ? object[i].options[0].value !== satus.storage[i] : true)) { if (!new_menu[label]) { new_menu[label + '__label'] = { type: 'text', From 56b42a5e7b3de3070ecf50827c6e102534b3b1ce Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 14 Jun 2021 22:01:39 +0300 Subject: [PATCH 0160/1224] Custom Mini-Player: fix for embedded videos --- manifest.json | 2 +- youtube-scripts.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index aab3c5152..dd752e13e 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.262", + "version": "3.263", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 839f13b03..f4f45d174 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3245,10 +3245,13 @@ ImprovedTube.latestVideoDuration = 0; ImprovedTube.playerUpdate = function() { this.playerPlaybackSpeed(); this.subtitles(); - this.mini_player(); this.playerQuality(); this.playerVolume(); this.playlistUpNextAutoplay(); + + if (location.href.indexOf('/embed/') === -1) { + this.mini_player(); + } }; From 59b2960db9012deb0c5e395770ee9f62eac2acb5 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 15 Jun 2021 19:11:00 +0300 Subject: [PATCH 0161/1224] Fixed double request for locale --- manifest.json | 2 +- satus.js | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index dd752e13e..54c082d22 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.263", + "version": "3.264", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/satus.js b/satus.js index 98a6415ac..5a3e366ac 100644 --- a/satus.js +++ b/satus.js @@ -204,6 +204,10 @@ satus.locale.import = function (language, callback) { var language = chrome.i18n.getUILanguage(); } + if (language.indexOf('en-') === 0) { + language = 'en'; + } + xhr.onload = function () { try { var object = JSON.parse(this.responseText); From d475598ce699df1cf4c97f5b975def2f70165755 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 15 Jun 2021 19:14:31 +0300 Subject: [PATCH 0162/1224] Moving tags from HTML to BODY --- manifest.json | 2 +- popup.css | 14 +++++++------- popup.js | 52 ++++++++++++--------------------------------------- 3 files changed, 20 insertions(+), 48 deletions(-) diff --git a/manifest.json b/manifest.json index 54c082d22..c9c8bf558 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.264", + "version": "3.265", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.css b/popup.css index d715bdf46..5cee9a936 100644 --- a/popup.css +++ b/popup.css @@ -1173,7 +1173,7 @@ body { # DARK --------------------------------------------------------------*/ -html[theme=dark] body { +body[data-theme=dark] { --satus-theme-primary: #ff4158; --satus-theme-dialog: #2c2b2c; --satus-theme-dialog-text: #b5b5b5; @@ -1194,7 +1194,7 @@ html[theme=dark] body { # NIGHT --------------------------------------------------------------*/ -html[theme=night] body { +body[data-theme=night] { --satus-theme-primary: #ff4158; --satus-theme-dialog: #61a7f5; --satus-theme-dialog-text: #fafafa; @@ -1215,7 +1215,7 @@ html[theme=night] body { # DAWN --------------------------------------------------------------*/ -html[theme=dawn] body { +body[data-theme=dawn] { --satus-theme-primary: #ff4158; --satus-theme-dialog: #ffba99; --satus-theme-dialog-text: #fafafa; @@ -1236,7 +1236,7 @@ html[theme=dawn] body { # SUNSET --------------------------------------------------------------*/ -html[theme=sunset] body { +body[data-theme=sunset] { --satus-theme-primary: #ff4158; --satus-theme-dialog: #a96165; --satus-theme-dialog-text: #fafafa; @@ -1257,7 +1257,7 @@ html[theme=sunset] body { # DESERT --------------------------------------------------------------*/ -html[theme=desert] body { +body[data-theme=desert] { --satus-theme-primary: #ff4158; --satus-theme-dialog: #9dc2ee; --satus-theme-dialog-text: #fafafa; @@ -1278,7 +1278,7 @@ html[theme=desert] body { # PLAIN --------------------------------------------------------------*/ -html[theme=plain] body { +body[data-theme=plain] { --satus-theme-primary: #ff4158; --satus-theme-dialog: #abceb8; --satus-theme-dialog-text: #fafafa; @@ -1299,7 +1299,7 @@ html[theme=plain] body { # BLACK --------------------------------------------------------------*/ -html[theme=black] body { +body[data-theme=black] { --satus-theme-primary: #ff4158; --satus-theme-dialog: #222; --satus-theme-dialog-text: #fafafa; diff --git a/popup.js b/popup.js index 6c05a0f25..1c2481b7b 100644 --- a/popup.js +++ b/popup.js @@ -3315,7 +3315,9 @@ function importData() { --------------------------------------------------------------*/ function themeChange(event) { - if (event.target.checked) { + var body = document.body; + + if (event && event.target.checked) { let themes = document.querySelectorAll('.satus-switch > input:checked:not([data-storage-key="red_popup_theme"])'); for (let i = 0, l = themes.length; i < l; i++) { @@ -3326,21 +3328,21 @@ function themeChange(event) { } if (satus.storage.get('default_dark_theme') === true) { - document.documentElement.setAttribute('theme', 'dark'); + body.dataset.theme = 'dark'; } else if (satus.storage.get('night_theme') === true) { - document.documentElement.setAttribute('theme', 'night'); + body.dataset.theme = 'night'; } else if (satus.storage.get('dawn_theme') === true) { - document.documentElement.setAttribute('theme', 'dawn'); + body.dataset.theme = 'dawn'; } else if (satus.storage.get('sunset_theme') === true) { - document.documentElement.setAttribute('theme', 'sunset'); + body.dataset.theme = 'sunset'; } else if (satus.storage.get('desert_theme') === true) { - document.documentElement.setAttribute('theme', 'desert'); + body.dataset.theme = 'desert'; } else if (satus.storage.get('plain_theme') === true) { - document.documentElement.setAttribute('theme', 'plain'); + body.dataset.theme = 'plain'; } else if (satus.storage.get('black_theme') === true) { - document.documentElement.setAttribute('theme', 'black'); + body.dataset.theme = 'black'; } else { - document.documentElement.removeAttribute('theme'); + delete body.dataset.theme; } } @@ -3374,37 +3376,7 @@ satus.storage.import(function (items) { }); }); - if (satus.isset(satus.storage.get('red_popup_theme')) === false || satus.storage.get('red_popup_theme') === true) { - document.documentElement.setAttribute('popup-theme', 'red'); - } - - if (satus.storage.get('default_dark_theme') === true) { - document.documentElement.setAttribute('theme', 'dark'); - } - - if (satus.storage.get('night_theme') === true) { - document.documentElement.setAttribute('theme', 'night'); - } - - if (satus.storage.get('dawn_theme') === true) { - document.documentElement.setAttribute('theme', 'dawn'); - } - - if (satus.storage.get('sunset_theme') === true) { - document.documentElement.setAttribute('theme', 'sunset'); - } - - if (satus.storage.get('desert_theme') === true) { - document.documentElement.setAttribute('theme', 'desert'); - } - - if (satus.storage.get('plain_theme') === true) { - document.documentElement.setAttribute('theme', 'plain'); - } - - if (satus.storage.get('black_theme') === true) { - document.documentElement.setAttribute('theme', 'black'); - } + themeChange(); }); chrome.storage.onChanged.addListener(function (changes) { From 60b9c6c6788f46e554bd995f659ff663a6d28276 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 15 Jun 2021 21:30:02 +0300 Subject: [PATCH 0163/1224] Themes: fixes & improvements --- manifest.json | 2 +- popup.css | 106 ++++++++++++++++++++++++++++---------------------- satus.css | 12 +----- 3 files changed, 63 insertions(+), 57 deletions(-) diff --git a/manifest.json b/manifest.json index c9c8bf558..7ef6e2ea7 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.265", + "version": "3.270", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.css b/popup.css index 5cee9a936..a197bb30b 100644 --- a/popup.css +++ b/popup.css @@ -19,6 +19,15 @@ # HEADER --------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# SECTIONS +--------------------------------------------------------------*/ + +.satus-header .satus-section { + flex: 1; +} + + /*-------------------------------------------------------------- # BUTTONS --------------------------------------------------------------*/ @@ -38,17 +47,13 @@ # BACK BUTTON --------------------------------------------------------------*/ -.satus-button--back { - position: absolute; -} - .satus-button--back svg { fill: none; stroke: currentColor; } body[data-appearance='home'] .satus-button--back { - visibility: hidden; + display: none; } @@ -58,10 +63,7 @@ body[data-appearance='home'] .satus-button--back { .satus-text--title { font-size: 15px; - font-weight: 400; - position: absolute; - left: 56px; - letter-spacing: .0125em; + margin-left: 8px; } html[it-title-version='true'] body[data-appearance='home'] .satus-text--title::after { @@ -72,10 +74,6 @@ html[it-title-version='true'] body[data-appearance='home'] .satus-text--title::a color: var(--satus-theme-header-text); } -body[data-appearance='home'] .satus-text--title { - left: 14px; -} - /*-------------------------------------------------------------- # RIGHT SECTION @@ -368,15 +366,15 @@ html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance=' transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; opacity: .95; border-radius: 50%; - background: linear-gradient(135deg, #ff4158, #ff001f); - box-shadow: 0 2px 1px 1px rgba(222, 0, 27, .7), 0 3px 5px rgba(0, 0, 0, .35); + background: var(--it-category-background); + box-shadow: 0 2px 1px 1px var(--it-category-shadow), 0 3px 5px rgba(0, 0, 0, .35); } html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg:focus, html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg:hover { transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; transform: translateY(4px) scale(.975); - box-shadow: 0 1px 1px 0 rgba(222, 0, 27, .7), 0 1px 2px rgba(0, 0, 0, .35); + box-shadow: 0 1px 1px 0 var(--it-category-shadow), 0 1px 2px rgba(0, 0, 0, .35); } html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--general svg { @@ -1166,6 +1164,8 @@ html[it-improvedtube-home='list'] .satus-section--info { body { --satus-theme-primary: #ff4158; + --it-category-background: linear-gradient(135deg, #ff4158, #ff001f); + --it-category-shadow: rgba(222, 0, 27, .7); } @@ -1175,18 +1175,22 @@ body { body[data-theme=dark] { --satus-theme-primary: #ff4158; - --satus-theme-dialog: #2c2b2c; + --satus-theme-dialog: #191b1f; --satus-theme-dialog-text: #b5b5b5; - --satus-theme-header: #343334; + --satus-theme-header: #1c2027; --satus-theme-header-text: #b5b5b5; - --satus-theme-main: #2c2b2c; - --satus-theme-main-text: #b5b5b5; - --satus-theme-section: #343334; + --satus-theme-main: #121316; + --satus-theme-main-text: #bfbfbf; + --satus-theme-section: #191b1f; --satus-theme-button: transparent; --satus-theme-scrollbar: rgba(255, 255, 255, .2); --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); --satus-theme-tooltip: rgba(10, 10, 10, .7); --satus-theme-ripple: rgba(255, 255, 255, .04); + --satus-theme-tabs-background: #17191c; + --satus-theme-tabs-border: #22252a; + --satus-theme-hover: rgba(255,255,255,.07); + --satus-theme-dialog-shadow: inset 0 -1px 1px 1px rgb(113,123,142,.1), 0 2px 6px rgb(101,119,154,.1); } @@ -1195,14 +1199,16 @@ body[data-theme=dark] { --------------------------------------------------------------*/ body[data-theme=night] { - --satus-theme-primary: #ff4158; - --satus-theme-dialog: #61a7f5; + --it-category-background: linear-gradient(135deg, #2e5cb8, #234790); + --it-category-shadow: rgb(41, 82, 163, .7); + --satus-theme-primary: #9ebdfa; + --satus-theme-dialog: #24478f; --satus-theme-dialog-text: #fafafa; - --satus-theme-header: #61a7f5; + --satus-theme-header: #24478f; --satus-theme-header-text: #fafafa; - --satus-theme-main: #3a48b4; + --satus-theme-main: #142952; --satus-theme-main-text: #fafafa; - --satus-theme-section: #61a7f5; + --satus-theme-section: #1f3d7a; --satus-theme-button: transparent; --satus-theme-scrollbar: rgba(255, 255, 255, .2); --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); @@ -1216,14 +1222,16 @@ body[data-theme=night] { --------------------------------------------------------------*/ body[data-theme=dawn] { - --satus-theme-primary: #ff4158; - --satus-theme-dialog: #ffba99; + --it-category-background: linear-gradient(135deg, #e98f63, #e27036); + --it-category-shadow: rgb(226, 112, 54, .7); + --satus-theme-primary: #e2367e; + --satus-theme-dialog: #ed8e5e; --satus-theme-dialog-text: #fafafa; - --satus-theme-header: #ffba99; + --satus-theme-header: #e98f63; --satus-theme-header-text: #fafafa; - --satus-theme-main: #ed74a9; + --satus-theme-main: #e23681; --satus-theme-main-text: #eee; - --satus-theme-section: #ffba99; + --satus-theme-section: rgb(255 255 255 / 20%); --satus-theme-button: transparent; --satus-theme-scrollbar: rgba(255, 255, 255, .2); --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); @@ -1237,14 +1245,16 @@ body[data-theme=dawn] { --------------------------------------------------------------*/ body[data-theme=sunset] { - --satus-theme-primary: #ff4158; + --it-category-background: linear-gradient(135deg, #bc4e53, #94383d); + --it-category-shadow: rgb(129, 49, 53, .7); + --satus-theme-primary: #cc666e; --satus-theme-dialog: #a96165; --satus-theme-dialog-text: #fafafa; - --satus-theme-header: #a96165; + --satus-theme-header: #af5a5e; --satus-theme-header-text: #fafafa; --satus-theme-main: #2f3364; --satus-theme-main-text: #eee; - --satus-theme-section: #a96165; + --satus-theme-section: rgb(138, 92, 96, .5); --satus-theme-button: transparent; --satus-theme-scrollbar: rgba(255, 255, 255, .2); --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); @@ -1258,14 +1268,16 @@ body[data-theme=sunset] { --------------------------------------------------------------*/ body[data-theme=desert] { - --satus-theme-primary: #ff4158; - --satus-theme-dialog: #9dc2ee; + --it-category-background: linear-gradient(135deg, #ff8833, #d15700); + --it-category-shadow: rgb(230 96 0 / 70%); + --satus-theme-primary: #ff8833; + --satus-theme-dialog: #8cb7f2; --satus-theme-dialog-text: #fafafa; - --satus-theme-header: #9dc2ee; + --satus-theme-header: #8cb7f2; --satus-theme-header-text: #fafafa; - --satus-theme-main: #ffe498; - --satus-theme-main-text: #eee; - --satus-theme-section: #9dc2ee; + --satus-theme-main: #e6bf4c; + --satus-theme-main-text: #4d4d4d; + --satus-theme-section: #f5e0a3; --satus-theme-button: transparent; --satus-theme-scrollbar: rgba(255, 255, 255, .2); --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); @@ -1279,14 +1291,16 @@ body[data-theme=desert] { --------------------------------------------------------------*/ body[data-theme=plain] { - --satus-theme-primary: #ff4158; + --it-category-background: linear-gradient(135deg, #abceb8, #609f7a); + --it-category-shadow: #70a987b3; + --satus-theme-primary: #badec9; --satus-theme-dialog: #abceb8; - --satus-theme-dialog-text: #fafafa; - --satus-theme-header: #abceb8; - --satus-theme-header-text: #fafafa; + --satus-theme-dialog-text: #404040; + --satus-theme-header: #9fc6af; + --satus-theme-header-text: #404040; --satus-theme-main: #dea975; - --satus-theme-main-text: #eee; - --satus-theme-section: #abceb8; + --satus-theme-main-text: #404040; + --satus-theme-section: #e2b88d; --satus-theme-button: transparent; --satus-theme-scrollbar: rgba(255, 255, 255, .2); --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); diff --git a/satus.css b/satus.css index be6530131..62e75b94d 100644 --- a/satus.css +++ b/satus.css @@ -181,7 +181,6 @@ body { border: none; outline: none; background-color: var(--satus-theme-button); - -webkit-tap-highlight-color: transparent; align-items: center; -webkit-appearance: none; } @@ -352,17 +351,11 @@ body { .satus-header { display: flex; - height: 58px; + height: 57px; padding: 0 8px; color: var(--satus-theme-header-text); background-color: var(--satus-theme-header); - box-shadow: 0 0 3px rgba(0, 0, 0, .1); - z-index: 1; - position: relative; -} - -.satus-header .satus-text--title { - font-size: 15px; + border-bottom: 1px solid rgba(0, 0, 0, .1); } @@ -482,7 +475,6 @@ body { .satus-section { display: flex; align-items: center; - flex: 1; flex-wrap: wrap; } From 7c338d85b609eb23619052589ad2471ad75a0f35 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 15 Jun 2021 21:35:31 +0300 Subject: [PATCH 0164/1224] Themes: fix by arunmadathil --- content-styles.css | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/content-styles.css b/content-styles.css index d679f105b..583c7cbb3 100644 --- a/content-styles.css +++ b/content-styles.css @@ -1172,7 +1172,7 @@ html[it-bluelight][it-youtube-version=old] body { --yt-spec-general-background-c: #000 !important; --yt-spec-error-background: #1F1F1F !important; --yt-spec-text-primary: #aaa !important; - --yt-spec-text-primary-inverse: #aaa !important; + --yt-spec-text-primary-inverse: #003459 !important; --yt-spec-text-secondary: #aaa !important; --yt-spec-text-disabled: #aaa !important; --yt-spec-call-to-action: #065FD4 !important; @@ -1389,7 +1389,7 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-spec-general-background-c: #d44d5c !important; --yt-spec-error-background: #1F1F1F !important; --yt-spec-text-primary: rgb(255, 255, 255) !important; - --yt-spec-text-primary-inverse: rgb(255, 255, 255) !important; + --yt-spec-text-primary-inverse: #003459 !important; --yt-spec-text-secondary: rgb(255, 255, 255) !important; --yt-spec-text-disabled: rgb(255, 255, 255) !important; --yt-spec-call-to-action: #065FD4 !important; @@ -2136,7 +2136,7 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-spec-general-background-c: #faf9f9 !important; --yt-spec-error-background: #1F1F1F !important; --yt-spec-text-primary: #555 !important; - --yt-spec-text-primary-inverse: #555 !important; + --yt-spec-text-primary-inverse: #003459 !important; --yt-spec-text-secondary: #555 !important; --yt-spec-text-disabled: #555 !important; --yt-spec-call-to-action: #065FD4 !important; @@ -2347,7 +2347,7 @@ html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche --yt-spec-general-background-c: #003459 !important; --yt-spec-error-background: #1F1F1F !important; --yt-spec-text-primary: #fff !important; - --yt-spec-text-primary-inverse: #fff !important; + --yt-spec-text-primary-inverse: #003459 !important; --yt-spec-text-secondary: #fff !important; --yt-spec-text-disabled: #fff !important; --yt-spec-call-to-action: #065FD4 !important; @@ -2564,7 +2564,7 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-spec-general-background-c: #c7efcf !important; --yt-spec-error-background: #1F1F1F !important; --yt-spec-text-primary: #666 !important; - --yt-spec-text-primary-inverse: #666 !important; + --yt-spec-text-primary-inverse: #003459 !important; --yt-spec-text-secondary: #666 !important; --yt-spec-text-disabled: #666 !important; --yt-spec-call-to-action: #065FD4 !important; @@ -2775,7 +2775,7 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-spec-general-background-c: #2f3364 !important; --yt-spec-error-background: #1F1F1F !important; --yt-spec-text-primary: #fff !important; - --yt-spec-text-primary-inverse: #fff !important; + --yt-spec-text-primary-inverse: #003459 !important; --yt-spec-text-secondary: #fff !important; --yt-spec-text-disabled: #fff !important; --yt-spec-call-to-action: #065FD4 !important; From 25e1592fcc3b4c4bb3ff4d64c33c80ce5b7ed6c0 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 15 Jun 2021 23:17:04 +0300 Subject: [PATCH 0165/1224] Reverse playlist: now without page reload --- manifest.json | 2 +- youtube-scripts.js | 40 ++++++++++++++++++++++++++++++++-------- 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/manifest.json b/manifest.json index 7ef6e2ea7..336a21676 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.270", + "version": "3.271", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index f4f45d174..8ba2cfcdd 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1950,6 +1950,7 @@ ImprovedTube.playlistUpNextAutoplay = function() { ------------------------------------------------------------------------------*/ ImprovedTube.playlistReverseUrl = false; +ImprovedTube.playlistAutoplayData = false; ImprovedTube.playlistReversed = location.href.indexOf('reverse') !== -1; ImprovedTube.playlistReverse = function() { @@ -1961,17 +1962,18 @@ ImprovedTube.playlistReverse = function() { if (this.storage.playlist_reverse === true) { function updateNextButton() { var next_button = document.querySelector('.ytp-next-button'), - prev_button = document.querySelector('.ytp-prev-button'); + prev_button = document.querySelector('.ytp-prev-button'), + playlist_manager = document.querySelector('yt-playlist-manager'); if (prev_button) { - prev_button.addEventListener('click', function(event) { + /*prev_button.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); - location.replace(this.href + '&reverse'); + //location.replace(this.href + '&reverse'); return false; - }, true); + }, true);*/ prev_button.href = (document.querySelector('#playlist [selected]').previousElementSibling || document.querySelector('#playlist ytd-playlist-panel-video-renderer:last-child')).querySelector('a').href; prev_button.dataset.preview = (document.querySelector('#playlist [selected]').previousElementSibling || document.querySelector('#playlist ytd-playlist-panel-video-renderer:last-child')).querySelector('img').src; @@ -1979,23 +1981,38 @@ ImprovedTube.playlistReverse = function() { } if (next_button) { - next_button.addEventListener('click', function(event) { + /*next_button.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); - location.replace(this.href + '&reverse'); + //location.replace(this.href + '&reverse'); return false; - }, true); + }, true);*/ next_button.href = (document.querySelector('#playlist [selected] + * a') || document.querySelector('#playlist ytd-playlist-panel-video-renderer a')).href; next_button.dataset.preview = (document.querySelector('#playlist [selected] + * img') || document.querySelector('#playlist ytd-playlist-panel-video-renderer img')).src; next_button.dataset.tooltipText = (document.querySelector('#playlist [selected] + * #video-title') || document.querySelector('#playlist ytd-playlist-panel-video-renderer #video-title')).innerText; } + + if (playlist_manager) { + var next_href = (document.querySelector('#playlist [selected] + * a') || document.querySelector('#playlist ytd-playlist-panel-video-renderer a')).href; + + playlist_manager.autoplayData.sets[0].autoplayVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); + playlist_manager.autoplayData.sets[0].autoplayVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); + playlist_manager.autoplayData.sets[0].nextButtonVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); + playlist_manager.autoplayData.sets[0].nextButtonVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); + } } if (ImprovedTube.playlistReversed === true) { setTimeout(function() { + var playlist_manager = document.querySelector('yt-playlist-manager'); + + if (playlist_manager && playlist_manager.autoplayData) { + ImprovedTube.playlistAutoplayData = Object.assign({}, playlist_manager.autoplayData); + } + ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); setTimeout(updateNextButton, 1000); @@ -2014,6 +2031,8 @@ ImprovedTube.playlistReverse = function() { } button.addEventListener('click', function(event) { + var playlist_manager = document.querySelector('yt-playlist-manager'); + event.preventDefault(); event.stopPropagation(); @@ -2023,6 +2042,10 @@ ImprovedTube.playlistReverse = function() { setTimeout(updateNextButton, 500); + if (playlist_manager && playlist_manager.autoplayData) { + ImprovedTube.playlistAutoplayData = Object.assign({}, playlist_manager.autoplayData); + } + ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); return false; @@ -2038,7 +2061,7 @@ ImprovedTube.playlistReverse = function() { ImprovedTube.playlistReverseOnEnded = function() { if (this.playlistReversed === true) { - window.open((document.querySelector('#playlist [selected] + * a') || document.querySelector('#playlist ytd-playlist-panel-video-renderer a')).href + '&reverse', '_self'); + //window.open((document.querySelector('#playlist [selected] + * a') || document.querySelector('#playlist ytd-playlist-panel-video-renderer a')).href + '&reverse', '_self'); } }; @@ -3218,6 +3241,7 @@ ImprovedTube.videoUpdated = function() { this.playerPlaybackSpeed(); this.playerVolume(); this.playlistUpNextAutoplay(); + this.playlistReverseOnEnded(); } }; From 2a288fe1235ddbc6d21cf2f00a97e00755f63a57 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 16 Jun 2021 02:38:25 +0300 Subject: [PATCH 0166/1224] Playlist reverse: improvements & fixes --- manifest.json | 2 +- youtube-scripts.js | 184 ++++++++++++++++++--------------------------- 2 files changed, 74 insertions(+), 112 deletions(-) diff --git a/manifest.json b/manifest.json index 336a21676..5b7ba28c7 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.271", + "version": "3.272", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 8ba2cfcdd..086fa3937 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1949,122 +1949,85 @@ ImprovedTube.playlistUpNextAutoplay = function() { 5.2 REVERSE ------------------------------------------------------------------------------*/ -ImprovedTube.playlistReverseUrl = false; -ImprovedTube.playlistAutoplayData = false; -ImprovedTube.playlistReversed = location.href.indexOf('reverse') !== -1; +ImprovedTube.playlistReversed = false; ImprovedTube.playlistReverse = function() { - if (this.playlistReverseUrl !== location.href && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer') && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #playlist-action-menu')) { - var button = document.querySelector('#it-reverse-playlist'); + if (this.storage.playlist_reverse === true) { + if (!document.querySelector('#it-reverse-playlist')) { + var button = document.createElement('button'); - this.playlistReverseUrl = location.href; + button.id = 'it-reverse-playlist'; + button.className = 'style-scope yt-icon-button'; + button.innerHTML = ''; - if (this.storage.playlist_reverse === true) { - function updateNextButton() { - var next_button = document.querySelector('.ytp-next-button'), - prev_button = document.querySelector('.ytp-prev-button'), - playlist_manager = document.querySelector('yt-playlist-manager'); + button.addEventListener('click', function(event) { + var playlist_manager = document.querySelector('yt-playlist-manager'); - if (prev_button) { - /*prev_button.addEventListener('click', function(event) { - event.preventDefault(); - event.stopPropagation(); + event.preventDefault(); + event.stopPropagation(); - //location.replace(this.href + '&reverse'); + this.classList.toggle('active'); - return false; - }, true);*/ + ImprovedTube.playlistReversed = !ImprovedTube.playlistReversed; - prev_button.href = (document.querySelector('#playlist [selected]').previousElementSibling || document.querySelector('#playlist ytd-playlist-panel-video-renderer:last-child')).querySelector('a').href; - prev_button.dataset.preview = (document.querySelector('#playlist [selected]').previousElementSibling || document.querySelector('#playlist ytd-playlist-panel-video-renderer:last-child')).querySelector('img').src; - prev_button.dataset.tooltipText = (document.querySelector('#playlist [selected]').previousElementSibling || document.querySelector('#playlist ytd-playlist-panel-video-renderer:last-child')).querySelector('#video-title').innerText; + setTimeout(updateNextButton, 500); + + if (playlist_manager && playlist_manager.autoplayData) { + ImprovedTube.playlistAutoplayData = Object.assign({}, playlist_manager.autoplayData); } - if (next_button) { - /*next_button.addEventListener('click', function(event) { - event.preventDefault(); - event.stopPropagation(); + ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); - //location.replace(this.href + '&reverse'); + return false; + }, true); - return false; - }, true);*/ + document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #start-actions').appendChild(button); + } - next_button.href = (document.querySelector('#playlist [selected] + * a') || document.querySelector('#playlist ytd-playlist-panel-video-renderer a')).href; - next_button.dataset.preview = (document.querySelector('#playlist [selected] + * img') || document.querySelector('#playlist ytd-playlist-panel-video-renderer img')).src; - next_button.dataset.tooltipText = (document.querySelector('#playlist [selected] + * #video-title') || document.querySelector('#playlist ytd-playlist-panel-video-renderer #video-title')).innerText; + function updateNextButton() { + var next_button = document.querySelector('.ytp-next-button'), + prev_button = document.querySelector('.ytp-prev-button'), + playlist_manager = document.querySelector('yt-playlist-manager'); + + if (playlist_manager) { + var next_href = (document.querySelector('#playlist [selected] + * a') || document.querySelector('#playlist ytd-playlist-panel-video-renderer a')).href; + + if (prev_button) { + var prev_href = (document.querySelector('#playlist [selected]').previousElementSibling || document.querySelector('#playlist ytd-playlist-panel-video-renderer:last-child')).querySelector('a').href; + + prev_button.href = prev_href; + prev_button.dataset.preview = (document.querySelector('#playlist [selected]').previousElementSibling || document.querySelector('#playlist ytd-playlist-panel-video-renderer:last-child')).querySelector('img').src; + prev_button.dataset.tooltipText = (document.querySelector('#playlist [selected]').previousElementSibling || document.querySelector('#playlist ytd-playlist-panel-video-renderer:last-child')).querySelector('#video-title').innerText; + + playlist_manager.autoplayData.sets[0].previousButtonVideo.commandMetadata.webCommandMetadata.url = prev_href.replace(location.origin, ''); + playlist_manager.autoplayData.sets[0].previousButtonVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); } - if (playlist_manager) { - var next_href = (document.querySelector('#playlist [selected] + * a') || document.querySelector('#playlist ytd-playlist-panel-video-renderer a')).href; + if (next_button) { + next_button.href = next_href; + next_button.dataset.preview = (document.querySelector('#playlist [selected] + * img') || document.querySelector('#playlist ytd-playlist-panel-video-renderer img')).src; + next_button.dataset.tooltipText = (document.querySelector('#playlist [selected] + * #video-title') || document.querySelector('#playlist ytd-playlist-panel-video-renderer #video-title')).innerText; + - playlist_manager.autoplayData.sets[0].autoplayVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); - playlist_manager.autoplayData.sets[0].autoplayVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); playlist_manager.autoplayData.sets[0].nextButtonVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); playlist_manager.autoplayData.sets[0].nextButtonVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); } - } - - if (ImprovedTube.playlistReversed === true) { - setTimeout(function() { - var playlist_manager = document.querySelector('yt-playlist-manager'); - - if (playlist_manager && playlist_manager.autoplayData) { - ImprovedTube.playlistAutoplayData = Object.assign({}, playlist_manager.autoplayData); - } - - ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); - setTimeout(updateNextButton, 1000); - }, 500); + playlist_manager.autoplayData.sets[0].autoplayVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); + playlist_manager.autoplayData.sets[0].autoplayVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); } + } - if (!button) { - button = document.createElement('button'); - - button.id = 'it-reverse-playlist'; - button.className = 'style-scope yt-icon-button'; - button.innerHTML = ''; - - if (ImprovedTube.playlistReversed === true) { - button.classList.add('active'); - } - - button.addEventListener('click', function(event) { - var playlist_manager = document.querySelector('yt-playlist-manager'); - - event.preventDefault(); - event.stopPropagation(); - - this.classList.toggle('active'); - - ImprovedTube.playlistReversed = !ImprovedTube.playlistReversed; - - setTimeout(updateNextButton, 500); - - if (playlist_manager && playlist_manager.autoplayData) { - ImprovedTube.playlistAutoplayData = Object.assign({}, playlist_manager.autoplayData); - } - - ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); - - return false; - }, true); + if (ImprovedTube.playlistReversed === true) { + setTimeout(function() { + ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); - document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #start-actions').appendChild(button); - } - } else if (button) { - button.remove(); + setTimeout(updateNextButton, 1000); + }, 500); } } }; -ImprovedTube.playlistReverseOnEnded = function() { - if (this.playlistReversed === true) { - //window.open((document.querySelector('#playlist [selected] + * a') || document.querySelector('#playlist ytd-playlist-panel-video-renderer a')).href + '&reverse', '_self'); - } -}; - /*------------------------------------------------------------------------------ 5.3 REPEAT @@ -3187,6 +3150,20 @@ ImprovedTube.pageUpdateListener = function() { ImprovedTube.videoPageUpdate = function() { if (this.page_type === 'video') { + var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); + + if (video_id) { + document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { + detail: { + action: 'set', + id: video_id, + title: document.title + } + })); + } + + ImprovedTube.initialVideoUpdateDone = true; + this.forcedTheaterMode(); this.playerHdThumbnail(); this.alwaysShowProgressBar(); @@ -3204,23 +3181,11 @@ ImprovedTube.videoPageUpdate = function() { this.playerPopupButton(); this.playerControls(); - this.playlistUpNextAutoplay(); - this.playlistReverse(); - this.playlistRepeat(); - this.playlistShuffle(); - - ImprovedTube.initialVideoUpdateDone = true; - - var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); - - if (video_id) { - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'set', - id: video_id, - title: document.title - } - })); + if (/[?&]list=([^&]+).*$/.test(location.href)) { + this.playlistUpNextAutoplay(); + this.playlistRepeat(); + this.playlistShuffle(); + this.playlistReverse(); } } }; @@ -3241,7 +3206,6 @@ ImprovedTube.videoUpdated = function() { this.playerPlaybackSpeed(); this.playerVolume(); this.playlistUpNextAutoplay(); - this.playlistReverseOnEnded(); } }; @@ -3260,9 +3224,7 @@ ImprovedTube.timeupdate = function() { } }; -ImprovedTube.ended = function() { - ImprovedTube.playlistReverseOnEnded(); -}; +ImprovedTube.ended = function() {}; ImprovedTube.latestVideoDuration = 0; @@ -3325,7 +3287,7 @@ ImprovedTube.pageType = function() { var href = location.href, type = ''; - if (location.pathname == '/') { + if (location.pathname === '/') { type = 'home'; } else if (/\/watch\?/.test(href)) { type = 'video'; From 6d84e91de606790a6a3503ae8c5f9403481b1e16 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 16 Jun 2021 19:19:28 +0300 Subject: [PATCH 0167/1224] Improved "Active features" --- manifest.json | 2 +- popup.js | 109 +++++++++++++++++++++++++++----------------------- 2 files changed, 60 insertions(+), 51 deletions(-) diff --git a/manifest.json b/manifest.json index 5b7ba28c7..c84daad20 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.272", + "version": "3.273", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 1c2481b7b..9d3d9ddca 100644 --- a/popup.js +++ b/popup.js @@ -217,73 +217,82 @@ skeleton.header.section_end.button_vert.onClickRender.active_features = { type: 'section', onrender: function () { var component = this, - new_menu = {}, - storage = satus.storage; + my_skeleton = {}, + threads = 0; - function search(string, object, parent) { - var result = [], - label = parent || ''; + function parse(list, section) { + threads++; - for (var i in object) { - if (object.type === 'folder') { - label = object.label; - } + if (list.type === 'folder') { + section = list.label; + } - if (object[i].type) { - if (object[i].type.match(/(button|select|shortcut|slider|switch)/)) { - if (string === i || (object[i].tags && object[i].tags.indexOf(string) !== -1)) { - if (object[i].type.indexOf('button') === -1 || !object[i].label) { - if (!satus.isset(object[i].value) && satus.storage[string] !== false && object[i].type !== 'select' || satus.isset(object[i].value) && satus.storage[string] != object[i].value && (object[i].type === 'select' ? object[i].options[0].value !== satus.storage[i] : true)) { - if (!new_menu[label]) { - new_menu[label + '__label'] = { - type: 'text', - class: 'satus-section--label', - label: label - }; - - new_menu[label] = { - type: 'section' - }; - } + for (var key in list) { + var item = list[key]; + + if (/(select|shortcut|slider|switch)/.test(item.type)) { + var in_storage = satus.storage[item.storage_key], + is_active = false; - new_menu[label][i] = object[i]; + if (satus.isset(in_storage)) { + if (item.type === 'select') { + if (item.options && item.options[0]) { + if (satus.isset(item.options[0].value)) { + if (item.options[0].value != in_storage) { + is_active = true; + } } } + } else { + if (satus.isset(item.value) && item.value != in_storage) { + is_active = true; + } else if (!satus.isset(item.value) && in_storage !== false) { + is_active = true; + } } + } - } else { - var response = search(string, object[i], label); - - if (response.length > 0) { - for (var j = 0, l = response.length; j < l; j++) { - result.push(response[i]); + if (is_active) { + if (section) { + if (!my_skeleton[section]) { + my_skeleton[section + '__label'] = { + type: 'text', + class: 'satus-section--label', + label: section + }; + + my_skeleton[section] = { + type: 'section' + }; } } + + my_skeleton[section][key] = item; } + } else if (typeof item === 'object') { + parse(item, section); } } - return result; - } - - for (var key in storage) { - search(key, skeleton) - } + threads--; - setTimeout(function () { - if (Object.keys(new_menu).length > 0) { - satus.render(new_menu, component. parentNode); + if (threads === 0) { + if (Object.keys(my_skeleton).length > 0) { + satus.render(my_skeleton, component.parentNode); - component.remove(); - } else { - satus.render({ - text: { - type: 'text', - label: 'noActiveFeatures' - } - }, component); + component.remove(); + } else { + satus.render({ + text: { + type: 'text', + label: 'noActiveFeatures' + } + }, component); + } } - }); + } + + parse(skeleton); } } }; From 7b4d0f53a7ec6ab0619310aa9108b4da2dc4a0b0 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 16 Jun 2021 19:56:38 +0300 Subject: [PATCH 0168/1224] Shortcuts: check by code, not by key --- youtube-scripts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 086fa3937..17ae6773c 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2489,7 +2489,7 @@ ImprovedTube.shortcuts = function() { var data = JSON.parse(self.storage[i]) || {}; if ( - (data.key === keys.key || !self.isset(data.key)) && + (data.keyCode === keys.keyCode || !self.isset(data.keyCode)) && (data.shiftKey === keys.shiftKey || !self.isset(data.shiftKey)) && (data.ctrlKey === keys.ctrlKey || !self.isset(data.ctrlKey)) && (data.altKey === keys.altKey || !self.isset(data.altKey)) && From 40141805e0a278af38e3ba537470faca2d8853e4 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 16 Jun 2021 23:40:33 +0300 Subject: [PATCH 0169/1224] Playlist reverse: new modes + optimizations --- manifest.json | 2 +- youtube-scripts.js | 40 ++++++++++++++++++++++++++++------------ 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/manifest.json b/manifest.json index c84daad20..7b9810e2b 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.273", + "version": "3.274", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 17ae6773c..5702e3334 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1953,7 +1953,7 @@ ImprovedTube.playlistReversed = false; ImprovedTube.playlistReverse = function() { if (this.storage.playlist_reverse === true) { - if (!document.querySelector('#it-reverse-playlist')) { + if (!document.querySelector('#it-reverse-playlist') && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #start-actions')) { var button = document.createElement('button'); button.id = 'it-reverse-playlist'; @@ -1990,31 +1990,47 @@ ImprovedTube.playlistReverse = function() { playlist_manager = document.querySelector('yt-playlist-manager'); if (playlist_manager) { - var next_href = (document.querySelector('#playlist [selected] + * a') || document.querySelector('#playlist ytd-playlist-panel-video-renderer a')).href; + var prev_item = document.querySelector('#playlist [selected]').previousElementSibling || document.querySelector('#playlist ytd-playlist-panel-video-renderer:last-child'), + next_item = document.querySelector('#playlist [selected] + *') || document.querySelector('#playlist ytd-playlist-panel-video-renderer'), + prev_href = prev_item.querySelector('a').href, + next_href = next_item.querySelector('a').href; if (prev_button) { - var prev_href = (document.querySelector('#playlist [selected]').previousElementSibling || document.querySelector('#playlist ytd-playlist-panel-video-renderer:last-child')).querySelector('a').href; - prev_button.href = prev_href; - prev_button.dataset.preview = (document.querySelector('#playlist [selected]').previousElementSibling || document.querySelector('#playlist ytd-playlist-panel-video-renderer:last-child')).querySelector('img').src; - prev_button.dataset.tooltipText = (document.querySelector('#playlist [selected]').previousElementSibling || document.querySelector('#playlist ytd-playlist-panel-video-renderer:last-child')).querySelector('#video-title').innerText; + prev_button.dataset.preview = prev_item.querySelector('img').src; + prev_button.dataset.tooltipText = prev_item.querySelector('#video-title').innerText; - playlist_manager.autoplayData.sets[0].previousButtonVideo.commandMetadata.webCommandMetadata.url = prev_href.replace(location.origin, ''); - playlist_manager.autoplayData.sets[0].previousButtonVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); + if (playlist_manager.autoplayData.sets[0].previousButtonVideo) { + playlist_manager.autoplayData.sets[0].previousButtonVideo.commandMetadata.webCommandMetadata.url = prev_href.replace(location.origin, ''); + playlist_manager.autoplayData.sets[0].previousButtonVideo.watchEndpoint.videoId = prev_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); + } + + if (playlist_manager.autoplayData.sets[1].previousButtonVideo) { + playlist_manager.autoplayData.sets[1].previousButtonVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); + playlist_manager.autoplayData.sets[1].previousButtonVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); + } } if (next_button) { next_button.href = next_href; - next_button.dataset.preview = (document.querySelector('#playlist [selected] + * img') || document.querySelector('#playlist ytd-playlist-panel-video-renderer img')).src; - next_button.dataset.tooltipText = (document.querySelector('#playlist [selected] + * #video-title') || document.querySelector('#playlist ytd-playlist-panel-video-renderer #video-title')).innerText; + next_button.dataset.preview = next_item.querySelector('img').src; + next_button.dataset.tooltipText = next_item.querySelector('#video-title').innerText; + if (playlist_manager.autoplayData.sets[0].nextButtonVideo) { + playlist_manager.autoplayData.sets[0].nextButtonVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); + playlist_manager.autoplayData.sets[0].nextButtonVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); + } - playlist_manager.autoplayData.sets[0].nextButtonVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); - playlist_manager.autoplayData.sets[0].nextButtonVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); + if (playlist_manager.autoplayData.sets[1].nextButtonVideo) { + playlist_manager.autoplayData.sets[1].nextButtonVideo.commandMetadata.webCommandMetadata.url = prev_href.replace(location.origin, ''); + playlist_manager.autoplayData.sets[1].nextButtonVideo.watchEndpoint.videoId = prev_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); + } } playlist_manager.autoplayData.sets[0].autoplayVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); playlist_manager.autoplayData.sets[0].autoplayVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); + playlist_manager.autoplayData.sets[1].autoplayVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); + playlist_manager.autoplayData.sets[1].autoplayVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); } } From 722960a88134c42e1bd8bf4ffc0b46df99752c3d Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 16 Jun 2021 23:47:20 +0300 Subject: [PATCH 0170/1224] Default channel tab: fixed old data issue --- popup.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/popup.js b/popup.js index 9d3d9ddca..e7ecd97b1 100644 --- a/popup.js +++ b/popup.js @@ -3373,6 +3373,12 @@ function updateAttributes() { satus.storage.import(function (items) { updateAttributes(); + if (satus.storage.channel_default_tab === '/') { + satus.storage.channel_default_tab = '/home'; + + satus.storage.set('channel_default_tab', '/home'); + } + satus.locale.import(satus.storage.get('language'), function () { satus.modules.updateStorageKeys(skeleton, function () { if (location.href.indexOf('action=import') !== -1) { From dd62bd605394abb751421c25fec020e033534ece Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 17 Jun 2021 15:21:12 +0300 Subject: [PATCH 0171/1224] Themes: added shadow color for "Appearance" category --- manifest.json | 2 +- popup.css | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 7b9810e2b..4a8d57787 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.274", + "version": "3.275", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.css b/popup.css index a197bb30b..327905068 100644 --- a/popup.css +++ b/popup.css @@ -478,7 +478,7 @@ html[it-it-analyzer='false'] .satus-folder--analyzer { transition-property: transform, box-shadow; transform: scale(1); text-align: center; - border: 1px solid var(--main-appearance-shadow, #dfdfdf); + border: 1px solid var(--it-appearance-shadow-color); border-radius: 6px; box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0); justify-content: center; @@ -489,7 +489,7 @@ html[it-it-analyzer='false'] .satus-folder--analyzer { z-index: 9; transition-duration: .25s; transform: scale(1.03) translate(-8px, -4px); - box-shadow: 1px 1px 0 0 var(--main-appearance-shadow, #dfdfdf), 2px 2px 0 0 var(--main-appearance-shadow, #dfdfdf), 3px 3px 0 0 var(--main-appearance-shadow, #dfdfdf), 4px 4px 0 0 var(--main-appearance-shadow, #dfdfdf), 5px 6px 4px 0 rgba(0, 0, 0, .1); + box-shadow: 1px 1px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 2px 2px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 3px 3px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 4px 4px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 5px 6px 4px 0 rgba(0, 0, 0, .1); } .satus-main__container[data-appearance='appearance'] .satus-folder--header { @@ -1166,6 +1166,7 @@ body { --satus-theme-primary: #ff4158; --it-category-background: linear-gradient(135deg, #ff4158, #ff001f); --it-category-shadow: rgba(222, 0, 27, .7); + --it-appearance-shadow-color: #dfdfdf; } @@ -1174,6 +1175,7 @@ body { --------------------------------------------------------------*/ body[data-theme=dark] { + --it-appearance-shadow-color: #393e46; --satus-theme-primary: #ff4158; --satus-theme-dialog: #191b1f; --satus-theme-dialog-text: #b5b5b5; @@ -1199,6 +1201,7 @@ body[data-theme=dark] { --------------------------------------------------------------*/ body[data-theme=night] { + --it-appearance-shadow-color: #558bf6; --it-category-background: linear-gradient(135deg, #2e5cb8, #234790); --it-category-shadow: rgb(41, 82, 163, .7); --satus-theme-primary: #9ebdfa; @@ -1222,6 +1225,7 @@ body[data-theme=night] { --------------------------------------------------------------*/ body[data-theme=dawn] { + --it-appearance-shadow-color: #e86e30; --it-category-background: linear-gradient(135deg, #e98f63, #e27036); --it-category-shadow: rgb(226, 112, 54, .7); --satus-theme-primary: #e2367e; @@ -1245,6 +1249,7 @@ body[data-theme=dawn] { --------------------------------------------------------------*/ body[data-theme=sunset] { + --it-appearance-shadow-color: #bf404a; --it-category-background: linear-gradient(135deg, #bc4e53, #94383d); --it-category-shadow: rgb(129, 49, 53, .7); --satus-theme-primary: #cc666e; @@ -1268,6 +1273,7 @@ body[data-theme=sunset] { --------------------------------------------------------------*/ body[data-theme=desert] { + --it-appearance-shadow-color: #5e9aed; --it-category-background: linear-gradient(135deg, #ff8833, #d15700); --it-category-shadow: rgb(230 96 0 / 70%); --satus-theme-primary: #ff8833; @@ -1291,6 +1297,7 @@ body[data-theme=desert] { --------------------------------------------------------------*/ body[data-theme=plain] { + --it-appearance-shadow-color: #d7995b; --it-category-background: linear-gradient(135deg, #abceb8, #609f7a); --it-category-shadow: #70a987b3; --satus-theme-primary: #badec9; @@ -1314,6 +1321,7 @@ body[data-theme=plain] { --------------------------------------------------------------*/ body[data-theme=black] { + --it-appearance-shadow-color: #222; --satus-theme-primary: #ff4158; --satus-theme-dialog: #222; --satus-theme-dialog-text: #fafafa; From f58c1c51b67640f2bab94461e92ff53c41892a8c Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 17 Jun 2021 15:36:25 +0300 Subject: [PATCH 0172/1224] Added the ability to change Google API key --- manifest.json | 2 +- popup.js | 24 ++++++++++++------------ youtube-scripts.js | 7 +++---- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/manifest.json b/manifest.json index 4a8d57787..6bfb5bb2b 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.275", + "version": "3.276", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index e7ecd97b1..d0e81823c 100644 --- a/popup.js +++ b/popup.js @@ -357,24 +357,24 @@ skeleton.header.section_end.button_vert.onClickRender.settings = { } }, - /*translations_section_label: { + google_api_key_section_label: { type: 'text', class: 'satus-section--label', - label: 'translations' + label: 'Google API key' }, - translations_section: { + google_api_key_section: { type: 'section', - onrender: function() { - satus.search('language', skeleton, function(result) { - var languages = result.language.options; - - for (var i = 0, l = languages.length; i < l; i++) { - - } - }) + google_api_key: { + type: 'text-field', + onrender: function () { + this.value = typeof satus.storage.get('google_api_key') === 'string' && satus.storage.get('google_api_key').length > 0 ? satus.storage.get('google_api_key') : 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; + }, + oninput: function () { + satus.storage.set('google_api_key', typeof satus.storage.get('google_api_key') === 'string' && satus.storage.get('google_api_key').length > 0 ? satus.storage.get('google_api_key') : 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'); + } } - }*/ + } }, }, diff --git a/youtube-scripts.js b/youtube-scripts.js index 5702e3334..fe36ddaa4 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -628,8 +628,6 @@ ImprovedTube.relatedVideos = function() { /*------------------------------------------------------------------------------ 2.3.1 HOW LONG AGO THE VIDEO WAS UPLOADED --------------------------------------------------------------------------------- -TODO: TEST ------------------------------------------------------------------------------*/ ImprovedTube.howLongAgoTheVideoWasUploaded = function() { @@ -662,7 +660,8 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function() { } var waiting_channel_link = setInterval(function() { - var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; + var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new', + api_key = typeof ImprovedTube.storage.google_api_key === 'string' && ImprovedTube.storage.google_api_key.length > 0 ? ImprovedTube.storage.google_api_key : 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info a')) { clearInterval(waiting_channel_link); @@ -693,7 +692,7 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function() { } }); - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?id=' + ImprovedTube.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v') + '&key=AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA&part=snippet', true); + xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?id=' + ImprovedTube.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v') + '&key=' + api_key + '&part=snippet', true); xhr.send(); } }, 500); From 7b52f0fcd8920343d54f928cf240d2631821a75c Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 17 Jun 2021 17:35:13 +0300 Subject: [PATCH 0173/1224] More features for Appearance -> Details --- _locales/ar/messages.json | 12 ++++++ _locales/bn/messages.json | 12 ++++++ _locales/de/messages.json | 12 ++++++ _locales/el/messages.json | 12 ++++++ _locales/en/messages.json | 12 ++++++ _locales/es/messages.json | 12 ++++++ _locales/fr/messages.json | 12 ++++++ _locales/hin/messages.json | 12 ++++++ _locales/hr/messages.json | 12 ++++++ _locales/id/messages.json | 12 ++++++ _locales/it/messages.json | 12 ++++++ _locales/ja/messages.json | 12 ++++++ _locales/ko/messages.json | 12 ++++++ _locales/nb_NO/messages.json | 12 ++++++ _locales/nl/messages.json | 12 ++++++ _locales/no/messages.json | 12 ++++++ _locales/pl/messages.json | 12 ++++++ _locales/pt_BR/messages.json | 12 ++++++ _locales/pt_PT/messages.json | 12 ++++++ _locales/ro/messages.json | 12 ++++++ _locales/ru/messages.json | 12 ++++++ _locales/sk/messages.json | 12 ++++++ _locales/tr/messages.json | 12 ++++++ _locales/zh_CN/messages.json | 12 ++++++ _locales/zh_TW/messages.json | 12 ++++++ content-scripts.js | 6 ++- content-styles.css | 74 +++++++++++++++++++++++++++--------- manifest.json | 2 +- popup.js | 40 ++++++++++++++----- 29 files changed, 392 insertions(+), 30 deletions(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 36cda91db..40d110b2f 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "مخفي على صفحة الفيديو" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "إخفاء الصور المصغرة المتحركة" }, @@ -344,6 +353,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "إخفاء التفاصيل" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index b3ce1da75..495afe027 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "ভিডিও পৃষ্ঠায় লুকানো" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "অ্যানিমেটেড থাম্বনেলগুলি লুকান" }, @@ -344,6 +353,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "আড়াল বিস্তারিত" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 558bdcd13..b2ef73e0a 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "Auf Videoseiten ausblenden" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "Keine animierten Vorschaubilder" }, @@ -344,6 +353,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "Details ausblenden" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 328a92e6b..50b152b44 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "Κρυμμένο στη σελίδα βίντεο" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "Απόκρυψε τα κινούμενα εικονίδια βίντεο" }, @@ -344,6 +353,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "Απόκρυψε τις λεπτομέρειες" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index abeb0e99a..95477e1b8 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -335,6 +335,15 @@ "hiddenOnVideoPage": { "message": "Hidden on video page" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "Hide animated thumbnails" }, @@ -350,6 +359,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "Hide details" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index c468921bb..95c403467 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "Oculto en la página de video" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "Ocultar miniaturas animadas" }, @@ -344,6 +353,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "Ocultar detalles" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index cf3f8dd57..d5aed55ad 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "Caché sur la page de la vidéo" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "Miniatures sans animation" }, @@ -344,6 +353,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "Cacher les détails" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index 2894e979f..bc46b0116 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "वीडियो पेज पर छिपा हुआ" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "वीडियो पेज पर छिपा हुआ" }, @@ -344,6 +353,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "जानकारी छिपाएँ" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 32b560fe5..8d0100062 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -335,6 +335,15 @@ "hiddenOnVideoPage": { "message": "Skriveno na stranici videozapisa" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "Sakrij animirane sličice" }, @@ -350,6 +359,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "Sakrij detalje" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index dc58b8238..c448bdb6b 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "Tersembunyi di halaman video" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "Sembunyikan animasi gambar kecil" }, @@ -344,6 +353,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "Sembunyikan detail" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index bf91c71fd..c86b0e821 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "Nascosta nella pagina video" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "Nascondi miniature animate" }, @@ -344,6 +353,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "Nascondi dettagli" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index ac6b89c2c..dee0ab949 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "動画ページでは隠す" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "サムネイルのアニメーションを行わない" }, @@ -344,6 +353,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "詳細を隠す" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index dfe98114b..311fe4802 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "비디오 페이지 숨기기" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "썸네일 애니메이션 숨기기" }, @@ -344,6 +353,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "상세설명 숨기기" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index d3b4b6df2..b07e4c6db 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -335,6 +335,15 @@ "hiddenOnVideoPage": { "message": "Skjult på videosiden" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "Skjul animerte miniatyrbilder" }, @@ -347,6 +356,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "Skjul detaljer" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 5291917ca..da26035c4 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "Verborgen op videopagina" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "Geen bewegende miniatuurvoorbeelden" }, @@ -344,6 +353,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "Verberg details" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 54b244ddc..e284fcb6f 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "Skjult på video siden" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "Skjul animerte miniatyrbilder" }, @@ -344,6 +353,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "Skjul detaljer" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 7f03685fc..710fab666 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -335,6 +335,15 @@ "hiddenOnVideoPage": { "message": "Ukryty na stronie z wideo" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "Ukryj animowane miniatury" }, @@ -350,6 +359,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "Ukryj szczegóły" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index e4fc9c749..1515c911c 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "Oculto na página de vídeo" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "Desabilitar miniaturas animadas" }, @@ -344,6 +353,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "Ocultar detalhes" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 07c0c0e6b..d70e00359 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "Escondido na página do video" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "Esconder miniaturas animadas" }, @@ -344,6 +353,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "Esconder detalhes" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index acabaa934..a11eb81c6 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -335,6 +335,15 @@ "hiddenOnVideoPage": { "message": "Ascuns pe pagina video" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "Ascunde miniaturile animate" }, @@ -347,6 +356,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "Ascunde detaliile" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 4c9326a7f..d37edff33 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "Скрыть (только на странице с видео)" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "Скрыть анимированные превью" }, @@ -344,6 +353,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "Скрыть подробную информацию" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 31322073b..49a13caaa 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "Skyté na stránke videa" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "Skryť animované náhľady" }, @@ -344,6 +353,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "Skryť detaily" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index d74928df0..b11999b54 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "Video sayfasında gizli" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "Hareketli küçük resimleri gizle" }, @@ -344,6 +353,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "Detayları gizle" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 6de36148e..92abff223 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -335,6 +335,15 @@ "hiddenOnVideoPage": { "message": "在视频播放页面时隐藏" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "隐藏动态缩略图" }, @@ -350,6 +359,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "隐藏详细信息" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index f3daca209..c9c95a158 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -332,6 +332,15 @@ "hiddenOnVideoPage": { "message": "於影片頁面自動隱藏" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideAnimatedThumbnails": { "message": "隱藏動態的縮略圖" }, @@ -347,6 +356,9 @@ "hideCountryCode": { "message": "Hide country code" }, + "hideDate": { + "message": "Hide date" + }, "hideDetails": { "message": "隱藏細節" }, diff --git a/content-scripts.js b/content-scripts.js index d8147481b..58d0020a0 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -67,10 +67,14 @@ function attributes(items) { 'hide-scroll-for-details': true, 'always-show-progress-bar': true, 'hide-details': true, - 'description': true, 'hide-views-count': true, + 'hide-date': true, + 'hide-share-button': true, + 'hide-save-button': true, + 'hide-more-button': true, 'likes': true, 'red-dislike-button': true, + 'description': true, 'livechat': true, 'hide-playlist': true, 'related-videos': true, diff --git a/content-styles.css b/content-styles.css index 583c7cbb3..184d376e2 100644 --- a/content-styles.css +++ b/content-styles.css @@ -34,8 +34,8 @@ 2.3.5 Thumbnails 2.4 Details 2.4.1 Hide details - 2.4.2 Description - 2.4.3 Hide views count + 2.4.2 Hide views count + 2.4.3 Description 2.4.4 Likes 2.4.5 Show dislike button red colour 2.5 Comments @@ -936,7 +936,6 @@ html[it-thumbnails-hide='true'] #dismissible>ytd-thumbnail 2.4 DETAILS ------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------ 2.4.1 HIDE DETAILS ------------------------------------------------------------------------------*/ @@ -951,33 +950,50 @@ html[it-hide-details=true] #primary-inner>#meta { /*------------------------------------------------------------------------------ -2.4.2 DESCRIPTION +2.4.2 HIDE VIEWS COUNT ------------------------------------------------------------------------------*/ -html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, -html[it-description=hidden] div#action-panel-details, -html[it-description=expanded] #meta-contents ytd-expander[collapsed] paper-button, -html[it-description=expanded] #action-panel-details button { - display: none !important; +html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer, +html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer + #date > #dot { + display: none; } -html[it-description=expanded] #meta-contents ytd-expander[collapsed]>#content.ytd-expander, -html[it-description=expanded] #watch-description-text { - max-height: unset !important; + +/*------------------------------------------------------------------------------ +2.4.2 HIDE DATE +------------------------------------------------------------------------------*/ + +html[it-hide-date=true] #count.ytd-video-primary-info-renderer + #date, +html[it-hide-date=true] #count.ytd-video-primary-info-renderer + #date > #dot { + display: none; } -html[it-description=expanded] .yt-uix-expander .yt-uix-expander-collapsed-body, -html[it-description=expanded] .yt-uix-expander-collapsed .yt-uix-expander-body { - display: block !important; + +/*------------------------------------------------------------------------------ +2.4.2 HIDE SHARE BUTTON +------------------------------------------------------------------------------*/ + +html[it-hide-share-button=true] #info #top-level-buttons ytd-button-renderer:nth-child(3), +html[it-hide-share-button=true] #info #top-level-buttons-computed ytd-button-renderer:nth-child(3) { + display: none; } /*------------------------------------------------------------------------------ -2.4.3 HIDE VIEWS COUNT +2.4.2 HIDE SAVE BUTTON ------------------------------------------------------------------------------*/ -html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer, -html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer + #date > #dot { +html[it-hide-save-button=true] #info #top-level-buttons ytd-button-renderer:nth-child(4), +html[it-hide-save-button=true] #info #top-level-buttons-computed ytd-button-renderer:nth-child(4) { + display: none; +} + + +/*------------------------------------------------------------------------------ +2.4.2 HIDE MORE BUTTON +------------------------------------------------------------------------------*/ + +html[it-hide-more-button=true] #info #top-level-buttons-computed + yt-icon-button { display: none; } @@ -1030,6 +1046,28 @@ html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer + #date > } +/*------------------------------------------------------------------------------ +2.4.3 DESCRIPTION +------------------------------------------------------------------------------*/ + +html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, +html[it-description=hidden] div#action-panel-details, +html[it-description=expanded] #meta-contents ytd-expander[collapsed] paper-button, +html[it-description=expanded] #action-panel-details button { + display: none !important; +} + +html[it-description=expanded] #meta-contents ytd-expander[collapsed]>#content.ytd-expander, +html[it-description=expanded] #watch-description-text { + max-height: unset !important; +} + +html[it-description=expanded] .yt-uix-expander .yt-uix-expander-collapsed-body, +html[it-description=expanded] .yt-uix-expander-collapsed .yt-uix-expander-body { + display: block !important; +} + + /*------------------------------------------------------------------------------ 2.5 COMMENTS ------------------------------------------------------------------------------*/ diff --git a/manifest.json b/manifest.json index 6bfb5bb2b..8c90fd300 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.276", + "version": "3.280", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index d0e81823c..26d65d27a 100644 --- a/popup.js +++ b/popup.js @@ -1725,37 +1725,57 @@ skeleton.main.section.appearance = { label: 'hideDetails', tags: 'hide,remove' }, - description: { + hide_views_count: { + type: 'switch', + label: 'hideViewsCount', + tags: 'hide,remove' + }, + hide_date: { + type: 'switch', + label: 'hideDate', + tags: 'hide,remove' + }, + likes: { type: 'select', - label: 'description', + label: 'likes', options: [{ label: 'normal', value: 'normal' }, { - label: 'expanded', - value: 'expanded' + label: 'iconsOnly', + value: 'icons_only' }, { label: 'hidden', value: 'hidden' }], tags: 'hide,remove' }, - hide_views_count: { + hide_share_button: { type: 'switch', - label: 'hideViewsCount', + label: 'hideShareButton', tags: 'hide,remove' }, - likes: { + hide_save_button: { + type: 'switch', + label: 'hideSaveButton', + tags: 'hide,remove' + }, + hide_more_button: { + type: 'switch', + label: 'hideMoreButton', + tags: 'hide,remove' + }, + description: { type: 'select', - label: 'likes', + label: 'description', options: [{ label: 'normal', value: 'normal' }, { - label: 'iconsOnly', - value: 'icons_only' + label: 'expanded', + value: 'expanded' }, { label: 'hidden', value: 'hidden' From 0466be8b6bc1964229ffa1f8157fbec103b4d334 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 17 Jun 2021 17:44:32 +0300 Subject: [PATCH 0174/1224] Fixed tooltips --- content-styles.css | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/content-styles.css b/content-styles.css index 184d376e2..caf96961e 100644 --- a/content-styles.css +++ b/content-styles.css @@ -3177,6 +3177,13 @@ html[it-mini-player-cursor='nw-resize']::after { text-shadow: 0 0 2px rgb(0, 0, 0, .5); } +body.no-scroll .it-player-button--tooltip { + font-size: 20px; + line-height: 22px; + padding: 8px 9px; + transform: translate(-50%, -75%); +} + #it-screenshot-button svg { position: absolute !important; top: 7px !important; From 1989306e123c56e42334c143093cc5bda5193d65 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 17 Jun 2021 21:51:47 +0300 Subject: [PATCH 0175/1224] Added "Default content country" feature --- _locales/ar/messages.json | 27 +- _locales/bn/messages.json | 27 +- _locales/de/messages.json | 27 +- _locales/el/messages.json | 27 +- _locales/en/messages.json | 27 +- _locales/es/messages.json | 27 +- _locales/fr/messages.json | 27 +- _locales/hin/messages.json | 27 +- _locales/hr/messages.json | 27 +- _locales/id/messages.json | 27 +- _locales/it/messages.json | 27 +- _locales/ja/messages.json | 27 +- _locales/ko/messages.json | 27 +- _locales/nb_NO/messages.json | 27 +- _locales/nl/messages.json | 27 +- _locales/no/messages.json | 27 +- _locales/pl/messages.json | 27 +- _locales/pt_BR/messages.json | 27 +- _locales/pt_PT/messages.json | 27 +- _locales/ro/messages.json | 27 +- _locales/ru/messages.json | 27 +- _locales/sk/messages.json | 27 +- _locales/tr/messages.json | 27 +- _locales/zh_CN/messages.json | 27 +- _locales/zh_TW/messages.json | 27 +- background.js | 6 +- manifest.json | 2 +- popup.js | 1014 ++++++++++++++++++++++++++++++++++ satus.css | 1 + youtube-scripts.js | 8 + 30 files changed, 1477 insertions(+), 229 deletions(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 40d110b2f..f376ff92c 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "أرجواني داكن" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "علامة تبويب القناة الافتراضية" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "حذف ملفات تعريف الارتباط من اليوتيوب" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "مخفي على صفحة الفيديو" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "إخفاء الصور المصغرة المتحركة" }, @@ -371,15 +368,24 @@ "hideGradientBottom": { "message": "إخفاء التدرج الأسود السفلي" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "إخفاء قائمة التشغيل" }, "hideRightButtons": { "message": "إخفاء الأزرار اليسرى" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "«إخفاء «التمرير للحصول على التفاصيل" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "إخفاء عدد المشاهدات" }, @@ -467,6 +473,9 @@ "liveChatType": { "message": "نوع المحادثة مباشرة" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "تطبيع الإزعاج" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 495afe027..9ccdf76be 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "গভীর বেগুনি" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "ডিফল্ট চ্যানেল ট্যাব" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "ইউটিউব এর কুকি ডিলিট করুন" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "ভিডিও পৃষ্ঠায় লুকানো" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "অ্যানিমেটেড থাম্বনেলগুলি লুকান" }, @@ -371,15 +368,24 @@ "hideGradientBottom": { "message": "গ্রেডিয়েন্ট নীচে লুকান" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "প্লেলিস্ট লুকান" }, "hideRightButtons": { "message": "ডান বোতামগুলি লুকান" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "«বিশদ জন্য স্ক্রোলs» লুকান" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "দর্শন গণনা লুকান" }, @@ -467,6 +473,9 @@ "liveChatType": { "message": "লাইভ চ্যাট টাইপ" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "আওয়াজের স্বাভাবিককরণ" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index b2ef73e0a..91f78e95f 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "Dunkel-Lila" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "Standard-Kanal-Tab" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "YouTube-Cookies löschen" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "Auf Videoseiten ausblenden" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "Keine animierten Vorschaubilder" }, @@ -371,15 +368,24 @@ "hideGradientBottom": { "message": "Farbverlauf ausblenden" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "Playlists ausblenden" }, "hideRightButtons": { "message": "Rechte Buttons ausblenden" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "„Für Details scrollen“ ausblenden" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "Videoaufrufe ausblenden" }, @@ -467,6 +473,9 @@ "liveChatType": { "message": "Live-Chat Typ" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "Lautstärke normalisieren" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 50b152b44..b50770885 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "Βαθύ μοβ" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "Προεπιλεγμένη καρτέλα καναλιού" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "Κατάργησε τα cookies του YouTube" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "Κρυμμένο στη σελίδα βίντεο" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "Απόκρυψε τα κινούμενα εικονίδια βίντεο" }, @@ -371,15 +368,24 @@ "hideGradientBottom": { "message": "Απόκρυψε το κάτω μέρος της χρωματικής διαβάθμισης" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "Απόκρυψε τα playlists" }, "hideRightButtons": { "message": "Απόκρυψε τα κουμπιά στα δεξιά" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "Απόκρυψε το «Scroll for details»" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "Απόκρυψε τον αριθμό προβολών" }, @@ -467,6 +473,9 @@ "liveChatType": { "message": "Τύπος live chat" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "Κανονικοποίηση έντασης" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 95477e1b8..3452eb170 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "Deep purple" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "Default channel tab" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "Delete YouTube cookies" }, @@ -335,15 +341,6 @@ "hiddenOnVideoPage": { "message": "Hidden on video page" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "Hide animated thumbnails" }, @@ -377,15 +374,24 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "Hide playlist" }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -476,6 +482,9 @@ "liveChatType": { "message": "Live chat type" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "Loudness normalization" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 95c403467..e5196634f 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "Violeta profundo" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "Pestaña del canal por defecto" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "Borrar cookies de YouTube" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "Oculto en la página de video" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "Ocultar miniaturas animadas" }, @@ -371,15 +368,24 @@ "hideGradientBottom": { "message": "Ocultar parte inferior degradada" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "Ocultar playlist" }, "hideRightButtons": { "message": "Ocultar botones de la derecha" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "Ocultar «Desliza hacia abajo para ver más detalles»" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "Ocultar contador de visitas" }, @@ -467,6 +473,9 @@ "liveChatType": { "message": "Tipo de chat en directo" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "Normalización de volumen" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index d5aed55ad..15cd9e07c 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "Violet foncé" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "Onglet par défaut d'une chaîne" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "Supprimer les cookies YouTube" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "Caché sur la page de la vidéo" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "Miniatures sans animation" }, @@ -371,15 +368,24 @@ "hideGradientBottom": { "message": "Masquer le dégradé du bas" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "Cacher la liste de lecture" }, "hideRightButtons": { "message": "Cacher les boutons à droite" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "Cacher « Faire défiler pour les détails »" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "Voir le compte des vues" }, @@ -467,6 +473,9 @@ "liveChatType": { "message": "Type de chat en direct" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "Normalisation de l'intensité sonore" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index bc46b0116..24d334c2d 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "गहरा बैंगनी" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "डिफ़ॉल्ट चैनल टैब" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "यूट्यूब कुकीज़ हटाएं" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "वीडियो पेज पर छिपा हुआ" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "वीडियो पेज पर छिपा हुआ" }, @@ -371,15 +368,24 @@ "hideGradientBottom": { "message": "ग्रेडिएंट बॉटम छुपाएं" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "प्लेलिस्ट छिपाएं" }, "hideRightButtons": { "message": "दाएं बटन छुपाएं" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "छिपाएँ «विवरण के लिए स्क्रॉल»" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "व्यू काउंट छिपाएं" }, @@ -467,6 +473,9 @@ "liveChatType": { "message": "लाइव चैट प्रकार" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "जोर से सामान्य होना" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 8d0100062..fd22241b2 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "Duboko ljubičasta" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "Zadana kartica kanala" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "Izbrišite YouTube kolačiće" }, @@ -335,15 +341,6 @@ "hiddenOnVideoPage": { "message": "Skriveno na stranici videozapisa" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "Sakrij animirane sličice" }, @@ -377,15 +374,24 @@ "hideGradientBottom": { "message": "Sakrij sjenu oko trake playera" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "Sakrij popis za reprodukciju" }, "hideRightButtons": { "message": "Sakrij desne gumbe" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "Sakrij «Pomakni za detalje»" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideThumbnailOverlay": { "message": "Sakrij gumbe na sličicama" }, @@ -476,6 +482,9 @@ "liveChatType": { "message": "Vrsta chata uživo" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "Normalizacija glasnoće" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index c448bdb6b..07ae836ff 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "Ungu tua" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "Tab saluran standar" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "Hapus kuki youtube" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "Tersembunyi di halaman video" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "Sembunyikan animasi gambar kecil" }, @@ -371,15 +368,24 @@ "hideGradientBottom": { "message": "Sembunyikan Gradient Bagian Bawah" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "Sembunyikan daftar putar" }, "hideRightButtons": { "message": "Sembunyikan tombol kanan" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "Sembunyikan «gulir untuk detail»" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "Sembunyikan jumlah penayangan" }, @@ -467,6 +473,9 @@ "liveChatType": { "message": "Jenis obrolan langsung" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "Normalkan suara" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index c86b0e821..9f5bbbe02 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "Viola intenso" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "Scheda predefinita" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "Cancella cookie YouTube" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "Nascosta nella pagina video" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "Nascondi miniature animate" }, @@ -371,15 +368,24 @@ "hideGradientBottom": { "message": "Nascondi fondo gradiente" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "Nascondi scaletta" }, "hideRightButtons": { "message": "Nascondi pulsanti sulla destra" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "Nascondi «Scorri per dettagli»" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "Nascondi contatore visualizzazioni" }, @@ -467,6 +473,9 @@ "liveChatType": { "message": "Tipologia chat dal vivo" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "Normalizzazione rumorosità" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index dee0ab949..309a714ea 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "深い紫" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "デフォルトのチャンネルタブ" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "YouTube の Cookie を削除する" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "動画ページでは隠す" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "サムネイルのアニメーションを行わない" }, @@ -371,15 +368,24 @@ "hideGradientBottom": { "message": "グラデーションの下部を隠す" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "再生リストを隠す" }, "hideRightButtons": { "message": "右ボタンを隠す" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "「スクロールして詳細を表示」を隠す" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "視聴数を隠す" }, @@ -467,6 +473,9 @@ "liveChatType": { "message": "ライブチャットの種類" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "音量のノーマリゼーション" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 311fe4802..16f9b2425 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "진한 보라" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "기본 채널 탭" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "유튜브 쿠키 삭제" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "비디오 페이지 숨기기" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "썸네일 애니메이션 숨기기" }, @@ -371,15 +368,24 @@ "hideGradientBottom": { "message": "그라데이션 맨 아래로 숨기기" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "재생 목록 숨기기" }, "hideRightButtons": { "message": "오른쪽 버튼 숨기기" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "«스크롤 하여 자세한 설명» 숨기기" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "조회수 숨기기" }, @@ -467,6 +473,9 @@ "liveChatType": { "message": "실시간 채팅 유형" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "볼륨 자동조정" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index b07e4c6db..1c7b30c90 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "Mørkelilla" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "Forvalgt kanalfane" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "Slett YouTube-informasjonskapsler" }, @@ -335,15 +341,6 @@ "hiddenOnVideoPage": { "message": "Skjult på videosiden" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "Skjul animerte miniatyrbilder" }, @@ -374,15 +371,24 @@ "hideGradientBottom": { "message": "Skjul bunn-fargeovergang" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "Skjul spilleliste" }, "hideRightButtons": { "message": "Skjul høyre-knapper" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "Skjul «Bla for detaljer»" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "Skjul visningsteller" }, @@ -470,6 +476,9 @@ "liveChatType": { "message": "Sanntidssludringstype" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "Lydstyrkenormalisering" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index da26035c4..36593abf8 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "donker aars" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "Standaard kanaaltabblad" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "YouTube-cookies verwijderen" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "Verborgen op videopagina" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "Geen bewegende miniatuurvoorbeelden" }, @@ -371,15 +368,24 @@ "hideGradientBottom": { "message": "Hide Gradient Bottom" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "Verberg afspeellijst" }, "hideRightButtons": { "message": "Verberg rechter knoppen" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "Verberg «Scroll for details»" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "Verberg views teller" }, @@ -467,6 +473,9 @@ "liveChatType": { "message": "Live berichtenvenster type" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "Volume normaliseren" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index e284fcb6f..dd42bd85c 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "Mørkelilla" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "Standard kanalfane" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "Slett YouTube-informasjonskapsler" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "Skjult på video siden" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "Skjul animerte miniatyrbilder" }, @@ -368,15 +365,24 @@ "hideFooter": { "message": "Skjul bunntekst " }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "Skjul spilleliste" }, "hideRightButtons": { "message": "Skjul høyre knapper" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "Skjul «Bla for detaljer»" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "Skjul visninger teller" }, @@ -464,6 +470,9 @@ "liveChatType": { "message": "Live chat type" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "Høytthetsnormalisering" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 710fab666..1dd150ac6 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "Głęboki fioletowy" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "Domyślna zakładka na kanałach" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "Usuń ciasteczka YouTube" }, @@ -335,15 +341,6 @@ "hiddenOnVideoPage": { "message": "Ukryty na stronie z wideo" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "Ukryj animowane miniatury" }, @@ -377,15 +374,24 @@ "hideGradientBottom": { "message": "Ukryj cień dookoła paska odtwarzania" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "Ukryj playliste" }, "hideRightButtons": { "message": "Ukryj przyciski po prawej" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "Ukryj «Przewiń do szczegółów»" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideThumbnailOverlay": { "message": "Ukryj przyciski na miniaturach" }, @@ -476,6 +482,9 @@ "liveChatType": { "message": "Rodzaj czatu na żywo" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "Normalizacja głośności" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 1515c911c..d0e4a2653 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "Roxo Escuro" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "Aba padrão do canal" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "Deletar cookies do YouTube" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "Oculto na página de vídeo" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "Desabilitar miniaturas animadas" }, @@ -371,15 +368,24 @@ "hideGradientBottom": { "message": "Hide Gradient Bottom" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "Ocultar playlist" }, "hideRightButtons": { "message": "Ocultar botões à direita" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "Ocultar «Rolar Para Ver Detalhes»" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "Ocultar visualizações" }, @@ -467,6 +473,9 @@ "liveChatType": { "message": "Live chat type" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "Normalização de volume" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index d70e00359..070942e70 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "Lilás forte" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "Aba padrão do canal" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "Apagar os cookies do YouTube" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "Escondido na página do video" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "Esconder miniaturas animadas" }, @@ -371,15 +368,24 @@ "hideGradientBottom": { "message": "Hide Gradient Bottom" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "Esconder lista de reprodução" }, "hideRightButtons": { "message": "Esconder botões do lado direito" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "Esconder «Rodar para detalhes»" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "Esconder número de vistos" }, @@ -467,6 +473,9 @@ "liveChatType": { "message": "Tipo de conversa do vivo" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "Normalização do volume" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index a11eb81c6..c8de51322 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "Mov închis" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "Tab-ul implicit al canalului" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "Șterge cookie-urile YouTube" }, @@ -335,15 +341,6 @@ "hiddenOnVideoPage": { "message": "Ascuns pe pagina video" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "Ascunde miniaturile animate" }, @@ -374,15 +371,24 @@ "hideGradientBottom": { "message": "Ascunde Gradient Bottom" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "Ascunde playlistul" }, "hideRightButtons": { "message": "Ascunde butoanele din dreapta" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "Ascunde «Derulează pentru detalii»" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "Ascunde numărul vizualizărilor" }, @@ -470,6 +476,9 @@ "liveChatType": { "message": "Chat live scrie" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "Normalizează zgomotul" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index d37edff33..d1d97bf97 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "Темно-фиолетовый" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "Вкладка канала по умолчанию" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "Удалить куки YouTube" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "Скрыть (только на странице с видео)" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "Скрыть анимированные превью" }, @@ -371,15 +368,24 @@ "hideGradientBottom": { "message": "Hide Gradient Bottom" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "Скрыть плейлист" }, "hideRightButtons": { "message": "Скрыть кнопки (справа)" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "Скрыть «Прокрутите для подробной информации»" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "Скрыть количество просмотров" }, @@ -467,6 +473,9 @@ "liveChatType": { "message": "Тип live-чата" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "Нормализировать громкость" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 49a13caaa..6e6d87890 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "Tmavo fialová" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "Predvolená karta kanálu" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "Vymazať YouTube cookies" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "Skyté na stránke videa" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "Skryť animované náhľady" }, @@ -371,15 +368,24 @@ "hideGradientBottom": { "message": "Hide Gradient Bottom" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "Skryť zoznam videí" }, "hideRightButtons": { "message": "Skryť tlčidlá v pravo" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "Skryť «Zarolujte pre detaily»" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "Skyť počet videní" }, @@ -467,6 +473,9 @@ "liveChatType": { "message": "Typ živého chatu" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "Vyrovnanie hlasitosti" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index b11999b54..988079815 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "Koyu mor" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "Varsayılan kanal sekmesi" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "YouTube çerezleri sil" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "Video sayfasında gizli" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "Hareketli küçük resimleri gizle" }, @@ -371,15 +368,24 @@ "hideGradientBottom": { "message": "Hide Gradient Bottom" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "Oynatma Listesi'ni gizle" }, "hideRightButtons": { "message": "Sağ butonları gizle" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "«Ayrıntılar için kaydır» gizle" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideViewsCount": { "message": "Görüntüleme sayısını gizle" }, @@ -467,6 +473,9 @@ "liveChatType": { "message": "Canlı sohbet türü" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "Gürültü normalleştirme" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 92abff223..7165ca7a2 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "深紫色" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "默认频道页" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "清空 YouTube cookies" }, @@ -335,15 +341,6 @@ "hiddenOnVideoPage": { "message": "在视频播放页面时隐藏" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "隐藏动态缩略图" }, @@ -377,15 +374,24 @@ "hideGradientBottom": { "message": "隐藏底部渐变层" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "隐藏播放列表" }, "hideRightButtons": { "message": "隐藏右侧按钮" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "隐藏 «滚动至详细信息»" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideThumbnailOverlay": { "message": "隐藏缩略图上的按钮" }, @@ -476,6 +482,9 @@ "liveChatType": { "message": "实时聊天窗类型" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "音量标准化" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index c9c95a158..af1ae65c2 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -203,9 +203,15 @@ "deepPurple": { "message": "深紫色" }, + "default": { + "message": "Default" + }, "defaultChannelTab": { "message": "預設頻道標籤" }, + "defaultContentCountry": { + "message": "Default content country" + }, "deleteYoutubeCookies": { "message": "刪除 YouTube cookies" }, @@ -332,15 +338,6 @@ "hiddenOnVideoPage": { "message": "於影片頁面自動隱藏" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideAnimatedThumbnails": { "message": "隱藏動態的縮略圖" }, @@ -374,15 +371,24 @@ "hideGradientBottom": { "message": "隱藏底部漸層圖層" }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, "hidePlaylist": { "message": "隱藏播放清單" }, "hideRightButtons": { "message": "隱藏右側按鈕" }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, "hideScrollForDetails": { "message": "隱藏「向下捲動即可查看詳情」" }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, "hideThumbnailOverlay": { "message": "隱藏縮圖上的按鈕" }, @@ -473,6 +479,9 @@ "liveChatType": { "message": "Live 聊天視窗種類" }, + "location": { + "message": "Location" + }, "loudnessNormalization": { "message": "音量標準化" }, diff --git a/background.js b/background.js index 7d69b24df..7c3110410 100644 --- a/background.js +++ b/background.js @@ -335,7 +335,7 @@ chrome.tabs.onActivated.addListener(function(activeInfo) { 7.0 UNINSTALL URL --------------------------------------------------------------*/ -chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); +//chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); /**-------------------------------------------------------------- @@ -344,7 +344,7 @@ chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); var _gaq = _gaq || []; -(function() { +/*(function() { var ga = document.createElement('script'); _gaq.push(['_setAccount', 'UA-88354155-1']); @@ -355,7 +355,7 @@ var _gaq = _gaq || []; ga.src = 'https://ssl.google-analytics.com/ga.js'; document.body.appendChild(ga); -})(); +})();*/ //** diff --git a/manifest.json b/manifest.json index 8c90fd300..78ef913d1 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.280", + "version": "3.281", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 26d65d27a..a11cb48e5 100644 --- a/popup.js +++ b/popup.js @@ -1012,6 +1012,1020 @@ skeleton.header.section_end.button_vert.onClickRender.settings = { } } }, + location: { + type: 'folder', + before: '', + label: 'location', + + section: { + type: 'section', + + default_content_country: { + label: 'defaultContentCountry', + type: 'select', + options: [{ + "label": "default", + "value": "default" + }, + { + "label": "Afghanistan", + "value": "AF" + }, + { + "label": "Albania", + "value": "AL" + }, + { + "label": "Algeria", + "value": "DZ" + }, + { + "label": "American Samoa", + "value": "AS" + }, + { + "label": "Andorra", + "value": "AD" + }, + { + "label": "Angola", + "value": "AO" + }, + { + "label": "Anguilla", + "value": "AI" + }, + { + "label": "Antarctica", + "value": "AQ" + }, + { + "label": "Antigua and Barbuda", + "value": "AG" + }, + { + "label": "Argentina", + "value": "AR" + }, + { + "label": "Armenia", + "value": "AM" + }, + { + "label": "Aruba", + "value": "AW" + }, + { + "label": "Australia", + "value": "AU" + }, + { + "label": "Austria", + "value": "AT" + }, + { + "label": "Azerbaijan", + "value": "AZ" + }, + { + "label": "Bahrain", + "value": "BH" + }, + { + "label": "Bailiwick of Guernsey", + "value": "GG" + }, + { + "label": "Bangladesh", + "value": "BD" + }, + { + "label": "Barbados", + "value": "BB" + }, + { + "label": "Belarus", + "value": "BY" + }, + { + "label": "Belgium", + "value": "BE" + }, + { + "label": "Belize", + "value": "BZ" + }, + { + "label": "Benin", + "value": "BJ" + }, + { + "label": "Bermuda", + "value": "BM" + }, + { + "label": "Bhutan", + "value": "BT" + }, + { + "label": "Bolivia", + "value": "BO" + }, + { + "label": "Bonaire", + "value": "BQ" + }, + { + "label": "Bosnia and Herzegovina", + "value": "BA" + }, + { + "label": "Botswana", + "value": "BW" + }, + { + "label": "Bouvet Island", + "value": "BV" + }, + { + "label": "Brazil", + "value": "BR" + }, + { + "label": "British Indian Ocean Territory", + "value": "IO" + }, + { + "label": "British Virgin Islands", + "value": "VG" + }, + { + "label": "Brunei", + "value": "BN" + }, + { + "label": "Bulgaria", + "value": "BG" + }, + { + "label": "Burkina Faso", + "value": "BF" + }, + { + "label": "Burundi", + "value": "BI" + }, + { + "label": "Cambodia", + "value": "KH" + }, + { + "label": "Cameroon", + "value": "CM" + }, + { + "label": "Canada", + "value": "CA" + }, + { + "label": "Cape Verde", + "value": "CV" + }, + { + "label": "Cayman Islands", + "value": "KY" + }, + { + "label": "Central African Republic", + "value": "CF" + }, + { + "label": "Chad", + "value": "TD" + }, + { + "label": "Chile", + "value": "CL" + }, + { + "label": "China", + "value": "CN" + }, + { + "label": "Christmas Island", + "value": "CX" + }, + { + "label": "Cocos (Keeling) Islands", + "value": "CC" + }, + { + "label": "Collectivity of Saint Martin", + "value": "MF" + }, + { + "label": "Colombia", + "value": "CO" + }, + { + "label": "Comoros", + "value": "KM" + }, + { + "label": "Cook Islands", + "value": "CK" + }, + { + "label": "Costa Rica", + "value": "CR" + }, + { + "label": "Croatia", + "value": "HR" + }, + { + "label": "Cuba", + "value": "CU" + }, + { + "label": "Curaçao", + "value": "CW" + }, + { + "label": "Cyprus", + "value": "CY" + }, + { + "label": "Czech Republic", + "value": "CZ" + }, + { + "label": "Democratic Republic of the Congo", + "value": "CD" + }, + { + "label": "Denmark", + "value": "DK" + }, + { + "label": "Djibouti", + "value": "DJ" + }, + { + "label": "Dominica", + "value": "DM" + }, + { + "label": "Dominican Republic", + "value": "DO" + }, + { + "label": "East Timor", + "value": "TL" + }, + { + "label": "Ecuador", + "value": "EC" + }, + { + "label": "Egypt", + "value": "EG" + }, + { + "label": "El Salvador", + "value": "SV" + }, + { + "label": "Equatorial Guinea", + "value": "GQ" + }, + { + "label": "Eritrea", + "value": "ER" + }, + { + "label": "Estonia", + "value": "EE" + }, + { + "label": "Eswatini", + "value": "SZ" + }, + { + "label": "Ethiopia", + "value": "ET" + }, + { + "label": "Falkland Islands", + "value": "FK" + }, + { + "label": "Faroe Islands", + "value": "FO" + }, + { + "label": "Federated States of Micronesia", + "value": "FM" + }, + { + "label": "Fiji", + "value": "FJ" + }, + { + "label": "Finland", + "value": "FI" + }, + { + "label": "France", + "value": "FR" + }, + { + "label": "French Guiana", + "value": "GF" + }, + { + "label": "French Polynesia", + "value": "PF" + }, + { + "label": "French Southern and Antarctic Lands", + "value": "TF" + }, + { + "label": "Gabon", + "value": "GA" + }, + { + "label": "Georgia (country)", + "value": "GE" + }, + { + "label": "Germany", + "value": "DE" + }, + { + "label": "Ghana", + "value": "GH" + }, + { + "label": "Gibraltar", + "value": "GI" + }, + { + "label": "Greece", + "value": "GR" + }, + { + "label": "Greenland", + "value": "GL" + }, + { + "label": "Grenada", + "value": "GD" + }, + { + "label": "Guadeloupe", + "value": "GP" + }, + { + "label": "Guam", + "value": "GU" + }, + { + "label": "Guatemala", + "value": "GT" + }, + { + "label": "Guinea", + "value": "GN" + }, + { + "label": "Guinea-Bissau", + "value": "GW" + }, + { + "label": "Guyana", + "value": "GY" + }, + { + "label": "Haiti", + "value": "HT" + }, + { + "label": "Heard Island and McDonald Islands", + "value": "HM" + }, + { + "label": "Holy See", + "value": "VA" + }, + { + "label": "Honduras", + "value": "HN" + }, + { + "label": "Hong Kong", + "value": "HK" + }, + { + "label": "Hungary", + "value": "HU" + }, + { + "label": "Iceland", + "value": "IS" + }, + { + "label": "India", + "value": "IN" + }, + { + "label": "Indonesia", + "value": "ID" + }, + { + "label": "Iran", + "value": "IR" + }, + { + "label": "Iraq", + "value": "IQ" + }, + { + "label": "Isle of Man", + "value": "IM" + }, + { + "label": "Israel", + "value": "IL" + }, + { + "label": "Italy", + "value": "IT" + }, + { + "label": "Ivory Coast", + "value": "CI" + }, + { + "label": "Jamaica", + "value": "JM" + }, + { + "label": "Japan", + "value": "JP" + }, + { + "label": "Jersey", + "value": "JE" + }, + { + "label": "Jordan", + "value": "JO" + }, + { + "label": "Kazakhstan", + "value": "KZ" + }, + { + "label": "Kenya", + "value": "KE" + }, + { + "label": "Kiribati", + "value": "KI" + }, + { + "label": "Kuwait", + "value": "KW" + }, + { + "label": "Kyrgyzstan", + "value": "KG" + }, + { + "label": "Laos", + "value": "LA" + }, + { + "label": "Latvia", + "value": "LV" + }, + { + "label": "Lebanon", + "value": "LB" + }, + { + "label": "Lesotho", + "value": "LS" + }, + { + "label": "Liberia", + "value": "LR" + }, + { + "label": "Libya", + "value": "LY" + }, + { + "label": "Liechtenstein", + "value": "LI" + }, + { + "label": "Lithuania", + "value": "LT" + }, + { + "label": "Luxembourg", + "value": "LU" + }, + { + "label": "Macau", + "value": "MO" + }, + { + "label": "Madagascar", + "value": "MG" + }, + { + "label": "Malawi", + "value": "MW" + }, + { + "label": "Malaysia", + "value": "MY" + }, + { + "label": "Maldives", + "value": "MV" + }, + { + "label": "Mali", + "value": "ML" + }, + { + "label": "Malta", + "value": "MT" + }, + { + "label": "Marshall Islands", + "value": "MH" + }, + { + "label": "Martinique", + "value": "MQ" + }, + { + "label": "Mauritania", + "value": "MR" + }, + { + "label": "Mauritius", + "value": "MU" + }, + { + "label": "Mayotte", + "value": "YT" + }, + { + "label": "Mexico", + "value": "MX" + }, + { + "label": "Moldova", + "value": "MD" + }, + { + "label": "Monaco", + "value": "MC" + }, + { + "label": "Mongolia", + "value": "MN" + }, + { + "label": "Montenegro", + "value": "ME" + }, + { + "label": "Montserrat", + "value": "MS" + }, + { + "label": "Morocco", + "value": "MA" + }, + { + "label": "Mozambique", + "value": "MZ" + }, + { + "label": "Myanmar", + "value": "MM" + }, + { + "label": "Namibia", + "value": "NA" + }, + { + "label": "Nauru", + "value": "NR" + }, + { + "label": "Nepal", + "value": "NP" + }, + { + "label": "Netherlands", + "value": "NL" + }, + { + "label": "New Caledonia", + "value": "NC" + }, + { + "label": "New Zealand", + "value": "NZ" + }, + { + "label": "Nicaragua", + "value": "NI" + }, + { + "label": "Niger", + "value": "NE" + }, + { + "label": "Nigeria", + "value": "NG" + }, + { + "label": "Niue", + "value": "NU" + }, + { + "label": "Norfolk Island", + "value": "NF" + }, + { + "label": "North Korea", + "value": "KP" + }, + { + "label": "North Macedonia", + "value": "MK" + }, + { + "label": "Northern Mariana Islands", + "value": "MP" + }, + { + "label": "Norway", + "value": "NO" + }, + { + "label": "Oman", + "value": "OM" + }, + { + "label": "Pakistan", + "value": "PK" + }, + { + "label": "Palau", + "value": "PW" + }, + { + "label": "Panama", + "value": "PA" + }, + { + "label": "Papua New Guinea", + "value": "PG" + }, + { + "label": "Paraguay", + "value": "PY" + }, + { + "label": "Peru", + "value": "PE" + }, + { + "label": "Philippines", + "value": "PH" + }, + { + "label": "Pitcairn Islands", + "value": "PN" + }, + { + "label": "Poland", + "value": "PL" + }, + { + "label": "Portugal", + "value": "PT" + }, + { + "label": "Puerto Rico", + "value": "PR" + }, + { + "label": "Qatar", + "value": "QA" + }, + { + "label": "Republic of Ireland", + "value": "IE" + }, + { + "label": "Republic of the Congo", + "value": "CG" + }, + { + "label": "Romania", + "value": "RO" + }, + { + "label": "Russia", + "value": "RU" + }, + { + "label": "Rwanda", + "value": "RW" + }, + { + "label": "Réunion", + "value": "RE" + }, + { + "label": "Saint Barthélemy", + "value": "BL" + }, + { + "label": "Saint Helena", + "value": "SH" + }, + { + "label": "Saint Kitts and Nevis", + "value": "KN" + }, + { + "label": "Saint Lucia", + "value": "LC" + }, + { + "label": "Saint Pierre and Miquelon", + "value": "PM" + }, + { + "label": "Saint Vincent and the Grenadines", + "value": "VC" + }, + { + "label": "Samoa", + "value": "WS" + }, + { + "label": "San Marino", + "value": "SM" + }, + { + "label": "Saudi Arabia", + "value": "SA" + }, + { + "label": "Senegal", + "value": "SN" + }, + { + "label": "Serbia", + "value": "RS" + }, + { + "label": "Seychelles", + "value": "SC" + }, + { + "label": "Sierra Leone", + "value": "SL" + }, + { + "label": "Singapore", + "value": "SG" + }, + { + "label": "Sint Maarten", + "value": "SX" + }, + { + "label": "Slovakia", + "value": "SK" + }, + { + "label": "Slovenia", + "value": "SI" + }, + { + "label": "Solomon Islands", + "value": "SB" + }, + { + "label": "Somalia", + "value": "SO" + }, + { + "label": "South Africa", + "value": "ZA" + }, + { + "label": "South Georgia and the South Sandwich Islands", + "value": "GS" + }, + { + "label": "South Korea", + "value": "KR" + }, + { + "label": "South Sudan", + "value": "SS" + }, + { + "label": "Spain", + "value": "ES" + }, + { + "label": "Sri Lanka", + "value": "LK" + }, + { + "label": "State of Palestine", + "value": "PS" + }, + { + "label": "Sudan", + "value": "SD" + }, + { + "label": "Suriname", + "value": "SR" + }, + { + "label": "Svalbard", + "value": "SJ" + }, + { + "label": "Sweden", + "value": "SE" + }, + { + "label": "Switzerland", + "value": "CH" + }, + { + "label": "Syria", + "value": "SY" + }, + { + "label": "São Tomé and Príncipe", + "value": "ST" + }, + { + "label": "Taiwan", + "value": "TW" + }, + { + "label": "Tajikistan", + "value": "TJ" + }, + { + "label": "Tanzania", + "value": "TZ" + }, + { + "label": "Thailand", + "value": "TH" + }, + { + "label": "The Bahamas", + "value": "BS" + }, + { + "label": "The Gambia", + "value": "GM" + }, + { + "label": "Togo", + "value": "TG" + }, + { + "label": "Tokelau", + "value": "TK" + }, + { + "label": "Tonga", + "value": "TO" + }, + { + "label": "Trinidad and Tobago", + "value": "TT" + }, + { + "label": "Tunisia", + "value": "TN" + }, + { + "label": "Turkey", + "value": "TR" + }, + { + "label": "Turkmenistan", + "value": "TM" + }, + { + "label": "Turks and Caicos Islands", + "value": "TC" + }, + { + "label": "Tuvalu", + "value": "TV" + }, + { + "label": "Uganda", + "value": "UG" + }, + { + "label": "Ukraine", + "value": "UA" + }, + { + "label": "United Arab Emirates", + "value": "AE" + }, + { + "label": "United Kingdom", + "value": "GB" + }, + { + "label": "United States Virgin Islands", + "value": "VI" + }, + { + "label": "United States", + "value": "UM" + }, + { + "label": "United States", + "value": "US" + }, + { + "label": "Uruguay", + "value": "UY" + }, + { + "label": "Uzbekistan", + "value": "UZ" + }, + { + "label": "Vanuatu", + "value": "VU" + }, + { + "label": "Venezuela", + "value": "VE" + }, + { + "label": "Vietnam", + "value": "VN" + }, + { + "label": "Wallis and Futuna", + "value": "WF" + }, + { + "label": "Western Sahara", + "value": "EH" + }, + { + "label": "Yemen", + "value": "YE" + }, + { + "label": "Zambia", + "value": "ZM" + }, + { + "label": "Zimbabwe", + "value": "ZW" + }, + { + "label": "Åland Islands", + "value": "AX" + }] + } + } + }, about: { type: 'folder', before: '', diff --git a/satus.css b/satus.css index 62e75b94d..c6826b600 100644 --- a/satus.css +++ b/satus.css @@ -514,6 +514,7 @@ body { width: 100%; height: 48px; padding: 0 16px; + text-align: left; } .satus-shortcut { diff --git a/youtube-scripts.js b/youtube-scripts.js index fe36ddaa4..bba07248e 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3395,6 +3395,13 @@ ImprovedTube.onmousedown = function(event) { }, true); }; +ImprovedTube.location = function() { + var value = this.storage.default_content_country; + + if (this.isset(value) && value !== 'default') { + this.setCookie('s_gl', value); + } +}; ImprovedTube.getCookieValueByName = function(name) { var match = document.cookie.match(new RegExp('([; ]' + name + '|^' + name + ')([^\\s;]*)', 'g')); @@ -3513,6 +3520,7 @@ ImprovedTube.reverse = function(parent) { ------------------------------------------------------------------------------*/ ImprovedTube.init = function() { + this.location(); this.playerH264(); this.player60fps(); this.playerSDR(); From cb89125a83d714124faf4232e504c1342dba84ba Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 17 Jun 2021 22:23:49 +0300 Subject: [PATCH 0176/1224] Fixed "Show dislike button red colour" feature --- content-styles.css | 3 ++- manifest.json | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/content-styles.css b/content-styles.css index caf96961e..0b202b201 100644 --- a/content-styles.css +++ b/content-styles.css @@ -1041,7 +1041,8 @@ html[it-hide-more-button=true] #info #top-level-buttons-computed + yt-icon-butto 2.4.5 SHOW DISLIKE RED COLOR ------------------------------------------------------------------------------*/ -[it-red-dislike-button=true] #top-level-buttons>ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active>a { +[it-red-dislike-button=true] #top-level-buttons>ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active>a, +[it-red-dislike-button=true] #top-level-buttons-computed>ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active>a { color: #fc0000 !important; } diff --git a/manifest.json b/manifest.json index 78ef913d1..1bf43fc81 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.281", + "version": "3.283", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 79bdaf34fc738136285e1271d004362e94d8f098 Mon Sep 17 00:00:00 2001 From: echooff2 Date: Tue, 22 Jun 2021 09:03:31 +0200 Subject: [PATCH 0177/1224] Changed from non-standard event.path to standarized event.composedPath() --- youtube-scripts.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index bba07248e..940a9a55a 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1259,8 +1259,8 @@ ImprovedTube.mini_player__mousedown = function(event) { var is_player = false; - for (var i = 0, l = event.path.length; i < l; i++) { - if ((event.path[i].classList && event.path[i].classList.contains('it-mini-player')) === true) { + for (var i = 0, l = event.composedPath().length; i < l; i++) { + if ((event.composedPath()[i].classList && composedPath()[i].classList.contains('it-mini-player')) === true) { is_player = true; } } @@ -2555,8 +2555,8 @@ ImprovedTube.shortcuts = function() { window.addEventListener('mousemove', function(event) { hover = false; - for (var i = 0, l = event.path.length; i < l; i++) { - if (event.path[i].classList && event.path[i].classList.contains('html5-video-player')) { + for (var i = 0, l = event.composedPath().length; i < l; i++) { + if (event.composedPath()[i].classList && event.composedPath()[i].classList.contains('html5-video-player')) { hover = true; } } @@ -3379,14 +3379,14 @@ ImprovedTube.onkeydown = function() { ImprovedTube.onmousedown = function(event) { window.addEventListener('mousedown', function(event) { - for (var i = 0, l = event.path.length; i < l; i++) { + for (var i = 0, l = event.composedPath().length; i < l; i++) { if ( document.querySelector('.html5-video-player') && document.querySelector('.html5-video-player').classList.contains('ad-showing') === false && - event.path[i].classList && + event.composedPath()[i].classList && ( - event.path[i].classList.contains('html5-main-video') || - event.path[i].classList.contains('ytp-play-button') + event.composedPath()[i].classList.contains('html5-main-video') || + event.composedPath()[i].classList.contains('ytp-play-button') ) ) { ImprovedTube.allow_autoplay = true; From ccf5fc709fd8a60871cb9d993dea7b25b089c771 Mon Sep 17 00:00:00 2001 From: echooff2 Date: Tue, 22 Jun 2021 14:31:13 +0200 Subject: [PATCH 0178/1224] Implemented feature #946 --- _locales/ar/messages.json | 6 ++++ _locales/bn/messages.json | 6 ++++ _locales/de/messages.json | 6 ++++ _locales/el/messages.json | 6 ++++ _locales/en/messages.json | 6 ++++ _locales/es/messages.json | 6 ++++ _locales/fr/messages.json | 6 ++++ _locales/hin/messages.json | 6 ++++ _locales/hr/messages.json | 6 ++++ _locales/id/messages.json | 6 ++++ _locales/it/messages.json | 6 ++++ _locales/ja/messages.json | 6 ++++ _locales/ko/messages.json | 6 ++++ _locales/nb_NO/messages.json | 6 ++++ _locales/nl/messages.json | 6 ++++ _locales/no/messages.json | 6 ++++ _locales/pl/messages.json | 6 ++++ _locales/pt_BR/messages.json | 6 ++++ _locales/pt_PT/messages.json | 6 ++++ _locales/ro/messages.json | 6 ++++ _locales/ru/messages.json | 6 ++++ _locales/sk/messages.json | 6 ++++ _locales/tr/messages.json | 6 ++++ _locales/zh_CN/messages.json | 6 ++++ _locales/zh_TW/messages.json | 6 ++++ popup.js | 8 +++++ youtube-scripts.js | 64 ++++++++++++++++++++++++++++++++++++ 27 files changed, 222 insertions(+) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index f376ff92c..92cea82f6 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -662,6 +662,12 @@ "seekForward10Seconds": { "message": "تقديم 10 ثوانٍ إلى الأمام" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "الإعدادات" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 9ccdf76be..aa9bb4da9 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -662,6 +662,12 @@ "seekForward10Seconds": { "message": "10 সেকেন্ড এগিয়ে যান" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "সেটিংস" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 91f78e95f..9783bc214 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -662,6 +662,12 @@ "seekForward10Seconds": { "message": "10 Sekunden überspringen" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "Einstellungen" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index b50770885..42adef115 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -662,6 +662,12 @@ "seekForward10Seconds": { "message": "Μπροστά 10 δευτερόλεπτα" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "Ρυθμίσεις" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 3452eb170..0191630ee 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -674,6 +674,12 @@ "seekForward10Seconds": { "message": "Seek forward 10 seconds" }, + "seekNextChapter": { + "message": "Seek Next Chapter" + }, + "seekPreviousChapter": { + "message": "Seek Previous Chapter" + }, "settings": { "message": "Settings" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index e5196634f..a977f999c 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -662,6 +662,12 @@ "seekForward10Seconds": { "message": "Adelantar 10 segundos" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "Ajustes" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 15cd9e07c..c8203fb67 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -665,6 +665,12 @@ "seekForward10Seconds": { "message": "Avancer de 10 secondes" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "Réglages" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index 24d334c2d..845666c19 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -662,6 +662,12 @@ "seekForward10Seconds": { "message": "पिछड़े 10 सेकंड की तलाश करें" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "समायोजन" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index fd22241b2..19012890c 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -674,6 +674,12 @@ "seekForward10Seconds": { "message": "Traži 10 sekundi prema naprijed" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "Postavke" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 07ae836ff..980d2636f 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -659,6 +659,12 @@ "seekForward10Seconds": { "message": "Maju 10 detik" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "Pengaturan" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 9f5bbbe02..1441a1919 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -662,6 +662,12 @@ "seekForward10Seconds": { "message": "Muovi avanti 10 secondi" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "Impostazioni" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 309a714ea..d9471d97e 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -662,6 +662,12 @@ "seekForward10Seconds": { "message": "10秒進む" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "設定" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 16f9b2425..68ae2e78c 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -659,6 +659,12 @@ "seekForward10Seconds": { "message": "앞으로 10초" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "설정" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 1c7b30c90..fcb70dfcb 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -665,6 +665,12 @@ "seekForward10Seconds": { "message": "Spol 10 sekunder fremover" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "Innstillinger" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 36593abf8..9757efa83 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -662,6 +662,12 @@ "seekForward10Seconds": { "message": "Zoek 10 seconde naar voren" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "Instellingen" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index dd42bd85c..4e8ae8ba5 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -659,6 +659,12 @@ "seekForward10Seconds": { "message": "Spol 10 sekunder frem" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "Innstillinger" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 1dd150ac6..e8ec5e6f5 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -674,6 +674,12 @@ "seekForward10Seconds": { "message": "Przewiń 10 sekund do przodu" }, + "seekNextChapter": { + "message": "Przewiń do następnego rozdziału" + }, + "seekPreviousChapter": { + "message": "Przewiń do poprzedniego rozdziału" + }, "settings": { "message": "Ustawienia" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index d0e4a2653..d7b43595e 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -662,6 +662,12 @@ "seekForward10Seconds": { "message": "Avançar 10 segundos" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "Configurações" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 070942e70..592b6707f 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -662,6 +662,12 @@ "seekForward10Seconds": { "message": "Andar para frente 10 segundos" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "Definições" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index c8de51322..f9e3bf970 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -668,6 +668,12 @@ "seekForward10Seconds": { "message": "Sari înainte 10 secunde" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "Setări" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index d1d97bf97..a2afe1efa 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -662,6 +662,12 @@ "seekForward10Seconds": { "message": "Перемотать на 10 секунд вперед" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "Настройки" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 6e6d87890..8de7d266f 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -662,6 +662,12 @@ "seekForward10Seconds": { "message": "Pretočiť dopredu o 10 sekúnd" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "Nastavenia" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 988079815..a471d155d 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -662,6 +662,12 @@ "seekForward10Seconds": { "message": "10 saniye ileriye git" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "Ayarlar" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 7165ca7a2..5a176169a 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -674,6 +674,12 @@ "seekForward10Seconds": { "message": "快进10秒" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "ImprovedTube 设置" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index af1ae65c2..8959ecad0 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -671,6 +671,12 @@ "seekForward10Seconds": { "message": "前進10秒" }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, "settings": { "message": "設定" }, diff --git a/popup.js b/popup.js index a11cb48e5..19b1e24f4 100644 --- a/popup.js +++ b/popup.js @@ -3777,6 +3777,14 @@ skeleton.main.section.shortcuts = { key: 'I' } }, + shortcut_seek_next_chapter: { + type: 'shortcut', + label: 'seekNextChapter' + }, + shortcut_seek_previous_chapter: { + type: 'shortcut', + label: 'seekPreviousChapter' + }, shortcut_activate_fullscreen: { type: 'shortcut', diff --git a/youtube-scripts.js b/youtube-scripts.js index bba07248e..feaba26bd 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2351,6 +2351,70 @@ ImprovedTube.shortcuts = function() { player.seekBy(10); } }, + shortcut_seek_next_chapter: function() { + console.log("shortcut works"); + const player = document.querySelector("#movie_player"); + const chapterDiv = document.querySelector(".ytp-chapters-container"); + const progressBarWidth = parseInt(document.querySelector(".ytp-chrome-bottom").style.width); + + if (!player || !player.seekBy || !progressBarWidth || + !chapterDiv || !chapterDiv.children) { + console.log("seek next chapter returns"); + return; + } + + let curWidth = 0; + + for(let child of chapterDiv.children) { + console.log(`curChild ${child.toString()}, curWidth: ${curWidth}`); + console.log(`1st if: ${curWidth - 10 / progressBarWidth <= player.getCurrentTime() / player.getDuration()}`); + console.log(`2st if: ${(curWidth - 2 + parseInt(child.style.width)) / progressBarWidth >= player.getCurrentTime() / player.getDuration()}`); + if((curWidth - 2) / progressBarWidth <= player.getCurrentTime() / player.getDuration() && + (curWidth - 2 + parseInt(child.style.width)) / progressBarWidth >= player.getCurrentTime() / player.getDuration() ) { //if child is current chapter + console.log(`something passed test ${child}`); + player.seekTo(((parseInt(child.style.width) + curWidth) / progressBarWidth) * player.getDuration()); + return; + } + + curWidth += parseInt(child.style.width) + 2; + } + }, + shortcut_seek_previous_chapter: function() { + console.log("shortcut works"); + const player = document.querySelector("#movie_player"); + const chapterDiv = document.querySelector(".ytp-chapters-container"); + const progressBarWidth = parseInt(document.querySelector(".ytp-chrome-bottom").style.width); + + if (!player || !player.seekBy || !progressBarWidth || + !chapterDiv || !chapterDiv.children) { + console.log("seek next chapter returns"); + return; + } + + let curWidth = 0; + + for(let i in chapterDiv.children) { + if(i === 0) { + player.seekTo(0); + return; + } + + let child = chapterDiv.children[i]; + console.log(`curChild ${child.toString()}, curWidth: ${curWidth}`); + console.log(`1st if: ${curWidth + 2 / progressBarWidth <= player.getCurrentTime() / player.getDuration()}`); + console.log(`2st if: ${(curWidth - 2 + parseInt(child.style.width)) / progressBarWidth >= player.getCurrentTime() / player.getDuration()}`); + if((curWidth + 2) / progressBarWidth <= player.getCurrentTime() / player.getDuration() && + (curWidth + 2 + parseInt(child.style.width)) / progressBarWidth >= player.getCurrentTime() / player.getDuration() ) { //if child is current chapter + console.log(`something passed test ${child}`); + // player.seekTo(((curWidth - parseInt(chapterDiv.children[i].style.width)) / progressBarWidth) * player.getDuration()); + player.seekTo(((curWidth - 2) / progressBarWidth) * player.getDuration()); + return; + } + + curWidth += parseInt(child.style.width) + 2; + } + }, + shortcut_increase_volume: function() { var player = document.querySelector('.html5-video-player'); From 646e31703c262361159a5ba9c14e1b0783350d18 Mon Sep 17 00:00:00 2001 From: echooff2 Date: Tue, 22 Jun 2021 14:36:20 +0200 Subject: [PATCH 0179/1224] Implemented feature #946 --- youtube-scripts.js | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index feaba26bd..7483f0802 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2352,26 +2352,20 @@ ImprovedTube.shortcuts = function() { } }, shortcut_seek_next_chapter: function() { - console.log("shortcut works"); const player = document.querySelector("#movie_player"); const chapterDiv = document.querySelector(".ytp-chapters-container"); const progressBarWidth = parseInt(document.querySelector(".ytp-chrome-bottom").style.width); if (!player || !player.seekBy || !progressBarWidth || !chapterDiv || !chapterDiv.children) { - console.log("seek next chapter returns"); return; } let curWidth = 0; for(let child of chapterDiv.children) { - console.log(`curChild ${child.toString()}, curWidth: ${curWidth}`); - console.log(`1st if: ${curWidth - 10 / progressBarWidth <= player.getCurrentTime() / player.getDuration()}`); - console.log(`2st if: ${(curWidth - 2 + parseInt(child.style.width)) / progressBarWidth >= player.getCurrentTime() / player.getDuration()}`); if((curWidth - 2) / progressBarWidth <= player.getCurrentTime() / player.getDuration() && (curWidth - 2 + parseInt(child.style.width)) / progressBarWidth >= player.getCurrentTime() / player.getDuration() ) { //if child is current chapter - console.log(`something passed test ${child}`); player.seekTo(((parseInt(child.style.width) + curWidth) / progressBarWidth) * player.getDuration()); return; } @@ -2380,14 +2374,12 @@ ImprovedTube.shortcuts = function() { } }, shortcut_seek_previous_chapter: function() { - console.log("shortcut works"); const player = document.querySelector("#movie_player"); const chapterDiv = document.querySelector(".ytp-chapters-container"); const progressBarWidth = parseInt(document.querySelector(".ytp-chrome-bottom").style.width); if (!player || !player.seekBy || !progressBarWidth || !chapterDiv || !chapterDiv.children) { - console.log("seek next chapter returns"); return; } @@ -2400,13 +2392,8 @@ ImprovedTube.shortcuts = function() { } let child = chapterDiv.children[i]; - console.log(`curChild ${child.toString()}, curWidth: ${curWidth}`); - console.log(`1st if: ${curWidth + 2 / progressBarWidth <= player.getCurrentTime() / player.getDuration()}`); - console.log(`2st if: ${(curWidth - 2 + parseInt(child.style.width)) / progressBarWidth >= player.getCurrentTime() / player.getDuration()}`); if((curWidth + 2) / progressBarWidth <= player.getCurrentTime() / player.getDuration() && (curWidth + 2 + parseInt(child.style.width)) / progressBarWidth >= player.getCurrentTime() / player.getDuration() ) { //if child is current chapter - console.log(`something passed test ${child}`); - // player.seekTo(((curWidth - parseInt(chapterDiv.children[i].style.width)) / progressBarWidth) * player.getDuration()); player.seekTo(((curWidth - 2) / progressBarWidth) * player.getDuration()); return; } From fb1d8d091f9db229c79efc1a20ed7edb429d63c0 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 22 Jun 2021 20:58:51 +0300 Subject: [PATCH 0180/1224] Updated "Google Analytics" section --- background.js | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/background.js b/background.js index 7c3110410..1b4381a4a 100644 --- a/background.js +++ b/background.js @@ -335,29 +335,34 @@ chrome.tabs.onActivated.addListener(function(activeInfo) { 7.0 UNINSTALL URL --------------------------------------------------------------*/ -//chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); +chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); -/**-------------------------------------------------------------- +/*-------------------------------------------------------------- 8.0 GOOGLE ANALYTICS --------------------------------------------------------------*/ var _gaq = _gaq || []; -/*(function() { - var ga = document.createElement('script'); +chrome.storage.local.get(function(items) { + var ga = document.createElement('script'), + time = new Date().getTime(); _gaq.push(['_setAccount', 'UA-88354155-1']); _gaq.push(['_setSessionCookieTimeout', 14400000]); - ga.type = 'text/javascript'; - ga.async = true; ga.src = 'https://ssl.google-analytics.com/ga.js'; document.body.appendChild(ga); -})();*/ -//** + if (time - (items.ga || 0) >= 86400000) { + _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); + + chrome.storage.local.set({ + ga: time + }); + } +}); /*-------------------------------------------------------------- @@ -374,14 +379,4 @@ chrome.storage.local.get(function(items) { } browserActionIcon(); - - var a = new Date().getTime(); - - if (a - (items.ga || 0) >= 86400000) { - _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); - - chrome.storage.local.set({ - ga: a - }); - } }); \ No newline at end of file From da2be3ea1f0e83edd1cab01db3b692356c5a957a Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 22 Jun 2021 21:00:18 +0300 Subject: [PATCH 0181/1224] Updated build.py --- py/build.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/py/build.py b/py/build.py index 308fe66e4..f6e73b6c3 100644 --- a/py/build.py +++ b/py/build.py @@ -175,13 +175,13 @@ def firefox(): skip = False for pos, line in enumerate(lines): - if (line.find('/**') != -1): + if (lines[pos].find('8.0 GOOGLE ANALYTICS') != -1): skip = True if (skip == False): file.write(line) - if (line.find('//**') != -1): + if (line.find('/*--------------------------------------------------------------') != -1): skip = False with open('manifest.json', 'r+') as json_file: From 044bedd5b57a1411f8c9bb6a4b1fc79658115daf Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 23 Jun 2021 23:37:00 +0300 Subject: [PATCH 0182/1224] Updates? - No updates available --- background.js | 16 ++++++---------- content-scripts.js | 10 +++++++--- manifest.json | 2 +- py/build.py | 2 -- youtube-scripts.js | 45 ++++++++++++++++++++++++++++++++------------- 5 files changed, 46 insertions(+), 29 deletions(-) diff --git a/background.js b/background.js index 1b4381a4a..50eb29e03 100644 --- a/background.js +++ b/background.js @@ -23,10 +23,6 @@ var locale_code = 'en', 2.0 FUNCTIONS --------------------------------------------------------------*/ -function isset(variable) { - return !(typeof variable === 'undefined' || variable === null); -} - function getTranslations(path) { var xhr = new XMLHttpRequest(); @@ -111,7 +107,7 @@ chrome.contextMenus.onClicked.addListener(function(event) { --------------------------------------------------------------*/ chrome.runtime.onMessage.addListener(function(request, sender) { - if (isset(request) && typeof request === 'object') { + if (typeof request === 'object') { if (request.enabled === true && browser_icon !== 'always') { chrome.browserAction.setIcon({ path: 'assets/icons/32.png', @@ -264,7 +260,7 @@ chrome.runtime.onMessage.addListener(function(request, sender) { }); } - if (isset(request.export)) { + if (request.hasOwnProperty('export')) { chrome.storage.local.get(function(data) { chrome.permissions.request({ permissions: ['downloads'], @@ -294,11 +290,11 @@ chrome.runtime.onMessage.addListener(function(request, sender) { --------------------------------------------------------------*/ chrome.storage.onChanged.addListener(function(changes) { - if (isset(changes.improvedtube_language)) { + if (changes.hasOwnProperty('improvedtube_language')) { locale_code = changes.improvedtube_language.newValue; } - if (isset(changes.improvedtube_browser_icon)) { + if (changes.hasOwnProperty('improvedtube_browser_icon')) { browser_icon = changes.improvedtube_browser_icon.newValue; } @@ -370,11 +366,11 @@ chrome.storage.local.get(function(items) { --------------------------------------------------------------*/ chrome.storage.local.get(function(items) { - if (isset(items.improvedtube_language)) { + if (items.hasOwnProperty('improvedtube_language')) { locale_code = items.improvedtube_language; } - if (isset(items.improvedtube_browser_icon)) { + if (items.hasOwnProperty('improvedtube_browser_icon')) { browser_icon = items.improvedtube_browser_icon; } diff --git a/content-scripts.js b/content-scripts.js index 58d0020a0..7a6d69eed 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -42,9 +42,13 @@ function isset(variable) { } function camelize(string) { - return string.replace(/_[a-z]/g, function(match) { - return match[1].toUpperCase(); - }); + return string.split('-').map(function (element, index) { + if (index === 0) { + return element; + } + + return element[0].toUpperCase() + element.slice(1); + }).join(''); } function attributes(items) { diff --git a/manifest.json b/manifest.json index 1bf43fc81..1b5e8cde2 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.283", + "version": "3.285", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/py/build.py b/py/build.py index f6e73b6c3..9cdfc6ef5 100644 --- a/py/build.py +++ b/py/build.py @@ -207,8 +207,6 @@ def firefox(): archive.close() shutil.rmtree(temporary_path) - - #--------------------------------------------------------------- # 4.0 INITIALIZATION diff --git a/youtube-scripts.js b/youtube-scripts.js index f4afb48b2..5d3db39bf 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1257,10 +1257,11 @@ ImprovedTube.mini_player__mousedown = function(event) { return false; } - var is_player = false; + var is_player = false, + path = event.composedPath(); - for (var i = 0, l = event.composedPath().length; i < l; i++) { - if ((event.composedPath()[i].classList && composedPath()[i].classList.contains('it-mini-player')) === true) { + for (var i = 0, l = path.length; i < l; i++) { + if ((path[i].classList && path[i].classList.contains('it-mini-player')) === true) { is_player = true; } } @@ -2604,10 +2605,12 @@ ImprovedTube.shortcuts = function() { -------------------------------------------------------------------------*/ window.addEventListener('mousemove', function(event) { + var path = event.composedPath(); + hover = false; - for (var i = 0, l = event.composedPath().length; i < l; i++) { - if (event.composedPath()[i].classList && event.composedPath()[i].classList.contains('html5-video-player')) { + for (var i = 0, l = path.length; i < l; i++) { + if (path[i].classList && path[i].classList.contains('html5-video-player')) { hover = true; } } @@ -3192,7 +3195,11 @@ ImprovedTube.youtubeLanguage = function() { ------------------------------------------------------------------------------*/ ImprovedTube.pageUpdateListener = function() { + console.log('pageUpdateListener'); + window.addEventListener('yt-page-data-updated', function() { + console.log('yt-page-data-updated'); + ImprovedTube.played_before_blur = false; ImprovedTube.pageType(); @@ -3209,13 +3216,15 @@ ImprovedTube.pageUpdateListener = function() { ImprovedTube.blacklist(); ImprovedTube.improvedtubeYoutubeIcon(); - // ImprovedTube.improvedtubeYoutubeSidebarButton(); - // ImprovedTube.improvedtubeYoutubePlayerButtons(); + //ImprovedTube.improvedtubeYoutubeSidebarButton(); + //ImprovedTube.improvedtubeYoutubePlayerButtons(); }); }; ImprovedTube.videoPageUpdate = function() { if (this.page_type === 'video') { + console.log('videoPageUpdate'); + var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); if (video_id) { @@ -3295,6 +3304,8 @@ ImprovedTube.ended = function() {}; ImprovedTube.latestVideoDuration = 0; ImprovedTube.playerUpdate = function() { + console.log('playerUpdate'); + this.playerPlaybackSpeed(); this.subtitles(); this.playerQuality(); @@ -3313,6 +3324,8 @@ ImprovedTube.playerUpdate = function() { ImprovedTube.DOMContentLoaded = function() { window.addEventListener('DOMContentLoaded', function() { + console.log('DOMContentLoaded'); + ImprovedTube.youtubeHomePage(); ImprovedTube.collapseOfSubscriptionSections(); ImprovedTube.addScrollToTop(); @@ -3334,8 +3347,8 @@ ImprovedTube.DOMContentLoaded = function() { ImprovedTube.blacklist(); ImprovedTube.improvedtubeYoutubeIcon(); - // ImprovedTube.improvedtubeYoutubeSidebarButton(); - // ImprovedTube.improvedtubeYoutubePlayerButtons(); + //ImprovedTube.improvedtubeYoutubeSidebarButton(); + //ImprovedTube.improvedtubeYoutubePlayerButtons(); ImprovedTube.pageUpdateListener(); }); @@ -3430,14 +3443,16 @@ ImprovedTube.onkeydown = function() { ImprovedTube.onmousedown = function(event) { window.addEventListener('mousedown', function(event) { - for (var i = 0, l = event.composedPath().length; i < l; i++) { + var path = event.composedPath(); + + for (var i = 0, l = path.length; i < l; i++) { if ( document.querySelector('.html5-video-player') && document.querySelector('.html5-video-player').classList.contains('ad-showing') === false && - event.composedPath()[i].classList && + path[i].classList && ( - event.composedPath()[i].classList.contains('html5-main-video') || - event.composedPath()[i].classList.contains('ytp-play-button') + path[i].classList.contains('html5-main-video') || + path[i].classList.contains('ytp-play-button') ) ) { ImprovedTube.allow_autoplay = true; @@ -3571,6 +3586,8 @@ ImprovedTube.reverse = function(parent) { ------------------------------------------------------------------------------*/ ImprovedTube.init = function() { + console.log('init'); + this.location(); this.playerH264(); this.player60fps(); @@ -3583,6 +3600,8 @@ ImprovedTube.init = function() { this.onmousedown(); window.addEventListener('load', function() { + console.log('load'); + ImprovedTube.hdThumbnails(); ImprovedTube.hideThumbnailOverlay(); ImprovedTube.channelDefaultTab(); From f49c14bd378e92693b978ba50494cee37707edb4 Mon Sep 17 00:00:00 2001 From: mwojda Date: Mon, 28 Jun 2021 16:56:03 +0200 Subject: [PATCH 0183/1224] fix shortcut toggle cards --- youtube-scripts.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 5d3db39bf..6ada6dc1c 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2544,7 +2544,13 @@ ImprovedTube.shortcuts = function() { } }, shortcut_toggle_cards: function() { - document.documentElement.toggleAttribute('it-player-hide-cards'); + // document.documentElement.toggleAttribute('it-player-hide-cards'); + if(document.documentElement.getAttribute('it-player-hide-cards')) { + document.documentElement.removeAttribute('it-player-hide-cards'); + return; + } + + document.documentElement.setAttribute("it-player-hide-cards", true); }, shortcut_popup_player: function() { ImprovedTube.createPopUpWindow(); From 24b454c1029ca095a256d237dc481eaab05469a7 Mon Sep 17 00:00:00 2001 From: mwojda Date: Mon, 28 Jun 2021 16:57:59 +0200 Subject: [PATCH 0184/1224] delete unneccesary comment --- youtube-scripts.js | 1 - 1 file changed, 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 6ada6dc1c..1e9f2312f 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2544,7 +2544,6 @@ ImprovedTube.shortcuts = function() { } }, shortcut_toggle_cards: function() { - // document.documentElement.toggleAttribute('it-player-hide-cards'); if(document.documentElement.getAttribute('it-player-hide-cards')) { document.documentElement.removeAttribute('it-player-hide-cards'); return; From 346bc63467094f47e11984321784368bfedcdeaa Mon Sep 17 00:00:00 2001 From: TheOrdinaryGameDev <77288883+TheOrdinaryGameDev@users.noreply.github.com> Date: Wed, 30 Jun 2021 01:30:14 +0200 Subject: [PATCH 0185/1224] #903 Volume bug fixed --- youtube-scripts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 1e9f2312f..02fd15b32 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1648,7 +1648,7 @@ ImprovedTube.playerVolume = function(node) { node = document.querySelector('.html5-video-player'); } - if (node && ImprovedTube.storage.player_forced_volume === true) { + if (node && ImprovedTube.storage.player_forced_volume === true && ImprovedTube.initialVideoUpdateDone == false ) { var volume = Number(ImprovedTube.storage.player_volume); if (!ImprovedTube.isset(volume)) { From b5ac65a226ad0674bb7e87d91be8ebe3664aa232 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 4 Jul 2021 21:05:56 +0200 Subject: [PATCH 0186/1224] Create Extension builder and Browser Stores Updater --- py/Extension builder and Browser Stores Updater | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 py/Extension builder and Browser Stores Updater diff --git a/py/Extension builder and Browser Stores Updater b/py/Extension builder and Browser Stores Updater new file mode 100644 index 000000000..8aa7078ff --- /dev/null +++ b/py/Extension builder and Browser Stores Updater @@ -0,0 +1,13 @@ +# ToDo / Required +# EVERY EXTENSION: +# - Edge: doesnt allow chrome update url +# - Edge & Whale: deny ' in name (documentation?). Replace with '*'. Whale also denies '&' replace with '+' +# - update urls by browser: https://edge.microsoft.com/extensionwebstorebase/v1/crx , https://clients2.google.com/service/update2/crx + +# - Firefox: removing dynamic innerHtml combined with "remote content" (googleapis.com/youtube) +# - Firefox, Opera: Removing google analytics (or removing from Repo & adding it only for google webstore version?) + +# ImprovedTube: +# - Repo will include m.youtube permission (firefox addons are available on phones) , global video permission, *.youtube.com + (besides Google Webstore version remains with www.youtube only(by mistake), until we announce that. +# - Firefox: Currently has commented // video.parentNode.parentNode.pauseVideo(); as firefox-autop-bug was confusing From ad8063b2ac7f49a93d8ce1ab4a85c38404aeda7d Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 14 Jul 2021 15:41:43 +0300 Subject: [PATCH 0187/1224] Added new playlist up-next autoplay --- youtube-scripts.js | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 02fd15b32..51ee5e14c 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1927,23 +1927,16 @@ TODO: CONNECT & TEST 5.1 UP NEXT AUTOPLAY ------------------------------------------------------------------------------*/ -ImprovedTube.playlist_up_next_autoplay_f = function(event) { +ImprovedTube.playlistUpNextAutoplay = function(event) { if ( ImprovedTube.getParam(location.href, 'list') && - ImprovedTube.storage.playlist_up_next_autoplay === false && - this.currentTime >= this.duration - 2 + ImprovedTube.storage.playlist_up_next_autoplay === false ) { - this.pause(); + event.preventDefault(); + event.stopPropagation(); } }; -ImprovedTube.playlistUpNextAutoplay = function() { - var video = document.querySelector('video'); - - video.removeEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); - video.addEventListener('timeupdate', ImprovedTube.playlist_up_next_autoplay_f, true); -}; - /*------------------------------------------------------------------------------ 5.2 REVERSE @@ -3262,7 +3255,6 @@ ImprovedTube.videoPageUpdate = function() { this.playerControls(); if (/[?&]list=([^&]+).*$/.test(location.href)) { - this.playlistUpNextAutoplay(); this.playlistRepeat(); this.playlistShuffle(); this.playlistReverse(); @@ -3285,7 +3277,6 @@ ImprovedTube.videoUpdated = function() { this.playerQuality(); this.playerPlaybackSpeed(); this.playerVolume(); - this.playlistUpNextAutoplay(); } }; @@ -3300,11 +3291,16 @@ ImprovedTube.timeupdate = function() { ImprovedTube.playerQuality(); ImprovedTube.playerPlaybackSpeed(); ImprovedTube.playerVolume(); - ImprovedTube.playlistUpNextAutoplay(); } }; -ImprovedTube.ended = function() {}; +ImprovedTube.ended = function(event) { + ImprovedTube.playlistUpNextAutoplay(event); +}; + +ImprovedTube.pause = function(event) { + ImprovedTube.playlistUpNextAutoplay(event); +}; ImprovedTube.latestVideoDuration = 0; @@ -3315,7 +3311,6 @@ ImprovedTube.playerUpdate = function() { this.subtitles(); this.playerQuality(); this.playerVolume(); - this.playlistUpNextAutoplay(); if (location.href.indexOf('/embed/') === -1) { this.mini_player(); @@ -3411,6 +3406,9 @@ ImprovedTube.onplay = function() { this.removeEventListener('ended', ImprovedTube.ended, true); this.addEventListener('ended', ImprovedTube.ended, true); + this.removeEventListener('pause', ImprovedTube.pause, true); + this.addEventListener('pause', ImprovedTube.pause, true); + ImprovedTube.autoplay(this); ImprovedTube.playerLoudnessNormalization(); From 2b4a9b2c20c06966c573bee17f9e863529defd3b Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 14 Jul 2021 15:50:35 +0300 Subject: [PATCH 0188/1224] Removed old comments & console.log --- youtube-scripts.js | 43 ++----------------------------------------- 1 file changed, 2 insertions(+), 41 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 51ee5e14c..e679eb37a 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -240,8 +240,6 @@ ImprovedTube.confirmationBeforeClosing = function() { /*------------------------------------------------------------------------------ 1.5 MARK WATCHED VIDEOS --------------------------------------------------------------------------------- -TODO: OPTIMIZE ------------------------------------------------------------------------------*/ ImprovedTube.markWatchedVideos = function() { @@ -305,9 +303,7 @@ ImprovedTube.markWatchedVideos = function() { } })); } - } catch (err) { - console.log(err); - } + } catch (err) {} }); video_items[i].appendChild(button); @@ -332,8 +328,6 @@ document.addEventListener('ImprovedTubeWatched', function(event) { /*------------------------------------------------------------------------------ 1.6 ONLY ONE PLAYER INSTANCE PLAYING --------------------------------------------------------------------------------- -TODO: FIX ------------------------------------------------------------------------------*/ ImprovedTube.onlyOnePlayerInstancePlaying = function() { @@ -429,8 +423,6 @@ ImprovedTube.forcedTheaterMode = function() { /*------------------------------------------------------------------------------ 2.1.2 HD THUMBNAIL --------------------------------------------------------------------------------- -TODO: OPTIMIZED ------------------------------------------------------------------------------*/ ImprovedTube.playerHdThumbnail = function() { @@ -523,8 +515,6 @@ ImprovedTube.alwaysShowProgressBar = function() { /*------------------------------------------------------------------------------ 2.2.1 LIVECHAT --------------------------------------------------------------------------------- -TODO: TEST ------------------------------------------------------------------------------*/ ImprovedTube.livechat_wait = false; @@ -569,8 +559,6 @@ ImprovedTube.livechat = function() { /*------------------------------------------------------------------------------ 2.2.2 RELATIVE VIDEOS --------------------------------------------------------------------------------- -TODO: TEST ------------------------------------------------------------------------------*/ ImprovedTube.related_videos_wait = false; @@ -746,8 +734,6 @@ ImprovedTube.channelVideosCount = function() { /*------------------------------------------------------------------------------ 2.4 COMMENTS --------------------------------------------------------------------------------- -TODO TEST ------------------------------------------------------------------------------*/ ImprovedTube.comments_wait = false; @@ -1036,8 +1022,6 @@ ImprovedTube.themes = function() { /*------------------------------------------------------------------------------ 4.0 PLAYER --------------------------------------------------------------------------------- -TODO: CONNECT & TEST ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ @@ -1919,8 +1903,6 @@ ImprovedTube.playerControls = function() { /*------------------------------------------------------------------------------ 5.0 PLAYLIST --------------------------------------------------------------------------------- -TODO: CONNECT & TEST ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ @@ -2104,8 +2086,6 @@ ImprovedTube.playlistShuffle = function() { /*------------------------------------------------------------------------------ 6.0 CHANNEL --------------------------------------------------------------------------------- -TODO: CONNECT & TEST ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ @@ -2151,8 +2131,6 @@ ImprovedTube.channelDefaultTab = function() { /*------------------------------------------------------------------------------ 7.0 SHORTCUTS --------------------------------------------------------------------------------- -TODO: CONNECT & TEST ------------------------------------------------------------------------------*/ ImprovedTube.shortcuts = function() { @@ -2630,8 +2608,6 @@ ImprovedTube.shortcuts = function() { /*------------------------------------------------------------------------------ 8.0 BLACKLIST --------------------------------------------------------------------------------- -TODO: CONNECT & TEST ------------------------------------------------------------------------------*/ document.addEventListener('ImprovedTubeBlacklist', function(event) { @@ -2848,8 +2824,6 @@ ImprovedTube.blacklist = function() { /*------------------------------------------------------------------------------ 9.0 ANALYZER --------------------------------------------------------------------------------- -TODO: CONNECT & TEST ------------------------------------------------------------------------------*/ document.addEventListener('ImprovedTubeAnalyzer', function() { @@ -3193,11 +3167,7 @@ ImprovedTube.youtubeLanguage = function() { ------------------------------------------------------------------------------*/ ImprovedTube.pageUpdateListener = function() { - console.log('pageUpdateListener'); - window.addEventListener('yt-page-data-updated', function() { - console.log('yt-page-data-updated'); - ImprovedTube.played_before_blur = false; ImprovedTube.pageType(); @@ -3221,7 +3191,6 @@ ImprovedTube.pageUpdateListener = function() { ImprovedTube.videoPageUpdate = function() { if (this.page_type === 'video') { - console.log('videoPageUpdate'); var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); @@ -3305,8 +3274,6 @@ ImprovedTube.pause = function(event) { ImprovedTube.latestVideoDuration = 0; ImprovedTube.playerUpdate = function() { - console.log('playerUpdate'); - this.playerPlaybackSpeed(); this.subtitles(); this.playerQuality(); @@ -3324,8 +3291,6 @@ ImprovedTube.playerUpdate = function() { ImprovedTube.DOMContentLoaded = function() { window.addEventListener('DOMContentLoaded', function() { - console.log('DOMContentLoaded'); - ImprovedTube.youtubeHomePage(); ImprovedTube.collapseOfSubscriptionSections(); ImprovedTube.addScrollToTop(); @@ -3589,8 +3554,6 @@ ImprovedTube.reverse = function(parent) { ------------------------------------------------------------------------------*/ ImprovedTube.init = function() { - console.log('init'); - this.location(); this.playerH264(); this.player60fps(); @@ -3603,10 +3566,8 @@ ImprovedTube.init = function() { this.onmousedown(); window.addEventListener('load', function() { - console.log('load'); - ImprovedTube.hdThumbnails(); ImprovedTube.hideThumbnailOverlay(); ImprovedTube.channelDefaultTab(); }); -}; +}; \ No newline at end of file From 13eda814e1dbfa19bf861ad4af24253018e33fb9 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 14 Jul 2021 21:19:58 +0300 Subject: [PATCH 0189/1224] Big code cleanup --- content-scripts.js | 2 +- youtube-scripts.js | 5225 ++++++++++++++++++++++---------------------- 2 files changed, 2596 insertions(+), 2631 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index 7a6d69eed..fa3f3e40e 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -190,7 +190,7 @@ chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { injectScript('if (document.querySelector("video")) { document.querySelector("video").pause(); }'); } - injectScript('ImprovedTube.onfocus();'); + injectScript('ImprovedTube.pageOnFocus();'); }); diff --git a/youtube-scripts.js b/youtube-scripts.js index e679eb37a..c4511098e 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1,7 +1,8 @@ /*------------------------------------------------------------------------------ >>> TABLE OF CONTENTS: -------------------------------------------------------------------------------- -0.0 Global variable +1.0 Global variable + 1.0 General 1.1 YouTube home page 1.2 Collapse of subscription sections @@ -65,3509 +66,3473 @@ 10.3 ImprovedTube player buttons 10.4 Delete YouTube cookies 10.5 YouTube language - -0.0 Page update listener -0.0 Onfocus -0.0 Onplay -0.0 Initialization + 10.6 Default content country ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -0.0 GLOBAL VARIABLE +1.0 GLOBAL VARIABLE -------------------------------------------------------------------------------- The variable "ImprovedTube" is used on the YouTube side. ------------------------------------------------------------------------------*/ -var ImprovedTube = {}; +var ImprovedTube = { + video_src: false, + initialVideoUpdateDone: false, + latestVideoDuration: 0, + video_url: false, + focus: false, + played_before_blur: false, + livechat_wait: false, + livechat_url: false, + related_videos_wait: false, + comments_wait: false, + allow_autoplay: false, + adInterval: false, + AdSkipButton: false, + mini_player__mode: false, + mini_player__move: false, + mini_player__cursor: '""', + mini_player__x: 0, + mini_player__y: 0, + mini_player__max_x: 0, + mini_player__max_y: 0, + mini_player__original_width: 0, + mini_player__original_height: 0, + mini_player__width: 200, + mini_player__height: 160, + mini_player__mousedown_x: 0, + mini_player__mousedown_y: 0, + mini_player__player_offset_x: 0, + mini_player__player_offset_y: 0, + mini_player__resize_offset: 16, + playlistReversed: false, + playlist_repeat_wait: false, + playlist_shuffle_wait: false, + improvedtube_youtube_icon_wait: false +}; + + +/*------------------------------------------------------------------------------ +2.0 INITIALIZATION +-------------------------------------------------------------------------------- +The first function called on the YouTube side. +------------------------------------------------------------------------------*/ +ImprovedTube.init = function() { + window.addEventListener('DOMContentLoaded', function() { + ImprovedTube.youtubeHomePage(); + ImprovedTube.collapseOfSubscriptionSections(); + ImprovedTube.addScrollToTop(); + ImprovedTube.confirmationBeforeClosing(); + ImprovedTube.markWatchedVideos(); + ImprovedTube.hdThumbnails(); + ImprovedTube.hideThumbnailOverlay(); + ImprovedTube.channelDefaultTab(); + ImprovedTube.myColors(); + ImprovedTube.bluelight(); + ImprovedTube.dim(); + ImprovedTube.font(); + ImprovedTube.themes(); + ImprovedTube.blacklist(); + ImprovedTube.improvedtubeYoutubeIcon(); + //ImprovedTube.improvedtubeYoutubeSidebarButton(); + //ImprovedTube.improvedtubeYoutubePlayerButtons(); + }); + + window.addEventListener('yt-page-data-updated', function() { + console.log('yt-page-data-updated'); + ImprovedTube.pageType(); + ImprovedTube.videoPageUpdate(); + ImprovedTube.played_before_blur = false; + ImprovedTube.youtubeHomePage(); + ImprovedTube.collapseOfSubscriptionSections(); + ImprovedTube.markWatchedVideos(); + ImprovedTube.hdThumbnails(); + ImprovedTube.hideThumbnailOverlay(); + ImprovedTube.channelDefaultTab(); + ImprovedTube.blacklist(); + ImprovedTube.improvedtubeYoutubeIcon(); + //ImprovedTube.improvedtubeYoutubeSidebarButton(); + //ImprovedTube.improvedtubeYoutubePlayerButtons(); + }); + + this.defaultContentCountry(); + this.playerH264(); + this.player60fps(); + this.playerSDR(); + this.shortcuts(); + this.playerOnPlay(); + this.onkeydown(); + this.onmousedown(); +}; -/*------------------------------------------------------------------------------ -1.0 GENERAL -------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -1.1 YOUTUBE HOME PAGE +0.0 PAGE ------------------------------------------------------------------------------*/ -ImprovedTube.youtubeHomePage = function() { - var option = this.storage.youtube_home_page; - - if ( - option === '/feed/trending' || - option === '/feed/subscriptions' || - option === '/feed/history' || - option === '/playlist?list=WL' || - option === '/playlist?list=LL' || - option === '/feed/library' - ) { - var node_list = document.querySelectorAll(` - a[href="/"]:not([role=tablist]), - a[href="https://www.youtube.com/"]:not([role=tablist]), - a[it-origin="/"]:not([role=tablist]) - `); +ImprovedTube.pageType = function() { + if (location.pathname === '/') { + document.documentElement.dataset.pageType = 'home'; + } else if (/\/watch\?/.test(location.href)) { + document.documentElement.dataset.pageType = 'video'; + } else if (/\/channel|user|c\//.test(location.href)) { + document.documentElement.dataset.pageType = 'channel'; + } +}; - for (var i = 0, l = node_list.length; i < l; i++) { - var node = node_list[i]; +ImprovedTube.pageOnFocus = function() { + this.onlyOnePlayerInstancePlaying(); + this.playerAutopauseWhenSwitchingTabs(); +}; - if (node.hasAttribute('it-origin') === false) { - node.setAttribute('it-origin', '/'); - } +ImprovedTube.videoPageUpdate = function() { + if (document.documentElement.dataset.pageType === 'video') { + var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); - node.href = option; - node.addEventListener('click', function() { - if ( - this.data && - this.data.commandMetadata && - this.data.commandMetadata.webCommandMetadata && - this.data.commandMetadata.webCommandMetadata.url - ) { - this.data.commandMetadata.webCommandMetadata.url = option; + if (video_id) { + document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { + detail: { + action: 'set', + id: video_id, + title: document.title } - }, true); + })); } - } else { - var node_list = document.querySelectorAll('a[it-origin="/"]:not([role=tablist])'); - for (var i = 0, l = node_list.length; i < l; i++) { - node_list[i].href = '/'; + ImprovedTube.initialVideoUpdateDone = true; + + this.forcedTheaterMode(); + this.playerHdThumbnail(); + this.alwaysShowProgressBar(); + this.livechat(); + this.relatedVideos(); + this.howLongAgoTheVideoWasUploaded(); + this.channelVideosCount(); + this.comments(); + + this.upNextAutoplay(); + this.playerAutofullscreen(); + this.playerScreenshotButton(); + this.playerRepeatButton(); + this.playerRotateButton(); + this.playerPopupButton(); + this.playerControls(); + + if (/[?&]list=([^&]+).*$/.test(location.href)) { + this.playlistRepeat(); + this.playlistShuffle(); + this.playlistReverse(); } } }; /*------------------------------------------------------------------------------ -1.2 COLLAPSE OF SUBSCRIPTION SECTION +0.0 PLAYER ------------------------------------------------------------------------------*/ -ImprovedTube.collapseOfSubscriptionSections = function() { - if (/\/feed\/subscriptions/.test(location.href)) { - if (this.storage.collapse_of_subscription_sections === true) { - var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'); +ImprovedTube.playerOnPlay = function() { + HTMLMediaElement.prototype.play = (function(original) { + return function() { + this.removeEventListener('timeupdate', ImprovedTube.playerOnTimeUpdate); + this.addEventListener('timeupdate', ImprovedTube.playerOnTimeUpdate); - for (var i = 0, l = sections.length; i < l; i++) { - if (!sections[i].querySelector('.it-section-collapse')) { - var section_title = sections[i].querySelector('h2'), - button = document.createElement('div'); + this.removeEventListener('ended', ImprovedTube.playerOnEnded, true); + this.addEventListener('ended', ImprovedTube.playerOnEnded, true); - button.className = 'it-section-collapse'; - button.innerHTML = ''; - button.section = sections[i]; - button.addEventListener('click', function() { - var section = this.section, - content = section.querySelector('.grid-subheader + #contents, .shelf-title-table + .multirow-shelf'); + this.removeEventListener('pause', ImprovedTube.playerOnPause, true); + this.addEventListener('pause', ImprovedTube.playerOnPause, true); - if (section.classList.contains('it-section-collapsed') === false) { - content.style.height = content.offsetHeight + 'px'; - content.style.transition = 'height 150ms'; - } + ImprovedTube.autoplay(this); + ImprovedTube.playerLoudnessNormalization(); - setTimeout(function() { - section.classList.toggle('it-section-collapsed'); - }); - }); + if (ImprovedTube.video_url !== location.href) { + ImprovedTube.video_url = location.href; - section_title.parentNode.insertBefore(button, section_title.nextSibling); + this.playerPlaybackSpeed(); + this.subtitles(); + this.playerQuality(); + this.playerVolume(); + + if (location.href.indexOf('/embed/') === -1) { + this.mini_player(); } } - } else { - var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'), - buttons = document.querySelectorAll('.it-section-collapse'); - for (var i = 0, l = sections.length; i < l; i++) { - sections[i].classList.remove('it-section-collapsed'); - sections[i].style.height = ''; - sections[i].style.transition = ''; - } + return original.apply(this, arguments); + } + })(HTMLMediaElement.prototype.play); +}; - for (var i = 0, l = buttons.length; i < l; i++) { - buttons[i].remove(); - } +ImprovedTube.playerOnPause = function(event) { + ImprovedTube.playlistUpNextAutoplay(event); +}; + +ImprovedTube.playerOnEnded = function(event) { + ImprovedTube.playlistUpNextAutoplay(event); +}; + +ImprovedTube.playerOnTimeUpdate = function() { + if (ImprovedTube.video_src !== this.src) { + ImprovedTube.video_src = this.src; + + this.playerAds(); + + if (ImprovedTube.initialVideoUpdateDone !== true) { + this.playerQuality(); + this.playerPlaybackSpeed(); + this.playerVolume(); } + } else if (ImprovedTube.latestVideoDuration !== this.duration) { + ImprovedTube.latestVideoDuration = this.duration; + + ImprovedTube.playerQuality(); + ImprovedTube.playerPlaybackSpeed(); + ImprovedTube.playerVolume(); } }; -/*------------------------------------------------------------------------------ -1.3 ADD "SCROLL TO TOP" -------------------------------------------------------------------------------*/ -ImprovedTube.addScrollToTop = function(is_update) { - if (this.storage.add_scroll_to_top === true) { - var button = document.createElement('div'); - button.id = 'it-scroll-to-top'; - button.innerHTML = ''; - button.addEventListener('click', function() { - window.scrollTo(0, 0); - }); - document.documentElement.appendChild(button); - window.addEventListener('scroll', this.scroll); - } else { - var button = document.querySelector('#it-scroll-to-top'); - if (button) { - button.remove(); - } - window.removeEventListener('scroll', this.scroll); - } -}; -ImprovedTube.scroll = function() { - if (window.scrollY > window.innerHeight / 2) { - document.documentElement.setAttribute('it-show-scroll-to-top', true); - } else { - document.documentElement.setAttribute('it-show-scroll-to-top', false); - } -}; + + + /*------------------------------------------------------------------------------ -1.4 CONFIRMATION BEFORE CLOSING +0.0 ONKEYDOWN ------------------------------------------------------------------------------*/ -ImprovedTube.confirmationBeforeClosing = function() { - window.onbeforeunload = function() { - if (ImprovedTube.storage.confirmation_before_closing === true) { - return 'You have attempted to leave this page. Are you sure?'; +ImprovedTube.onkeydown = function() { + window.addEventListener('keydown', function() { + if ( + document.querySelector('.html5-video-player') && + document.querySelector('.html5-video-player').classList.contains('ad-showing') === false + ) { + ImprovedTube.allow_autoplay = true; } - }; + }, true); }; /*------------------------------------------------------------------------------ -1.5 MARK WATCHED VIDEOS +0.0 ONMOUSEDOWN ------------------------------------------------------------------------------*/ -ImprovedTube.markWatchedVideos = function() { - if (ImprovedTube.storage.mark_watched_videos === true) { - var video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (var i = 0, l = video_items.length; i < l; i++) { - if (!video_items[i].querySelector('.it-mark-watched')) { - var button = document.createElement('div'); - - button.className = 'it-mark-watched' + (this.storage.watched && this.storage.watched[this.getParam(new URL(video_items[i].href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); - button.innerHTML = ''; - - button.addEventListener('click', function(event) { - var watched = !this.classList.contains('watched'); - - event.preventDefault(); - event.stopPropagation(); +ImprovedTube.onmousedown = function(event) { + window.addEventListener('mousedown', function(event) { + var path = event.composedPath(); - this.classList.toggle('watched'); + for (var i = 0, l = path.length; i < l; i++) { + if ( + document.querySelector('.html5-video-player') && + document.querySelector('.html5-video-player').classList.contains('ad-showing') === false && + path[i].classList && + ( + path[i].classList.contains('html5-main-video') || + path[i].classList.contains('ytp-play-button') + ) + ) { + ImprovedTube.allow_autoplay = true; + } + } + }, true); +}; - try { - var video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'), - item = this.parentNode; - while ( - item.nodeName && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } - if (!ImprovedTube.storage.watched || typeof ImprovedTube.storage.watched !== 'object') { - ImprovedTube.storage.watched = {}; - } - if (watched === true) { - ImprovedTube.storage.watched[video_id] = { - title: item.querySelector('#video-title').innerText - }; - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'set', - id: video_id, - title: item.querySelector('#video-title').innerText - } - })); - } else if (ImprovedTube.storage.watched[video_id]) { - delete ImprovedTube.storage.watched[video_id]; - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'remove', - id: video_id - } - })); - } - } catch (err) {} - }); - video_items[i].appendChild(button); - } +ImprovedTube.getCookieValueByName = function(name) { + var match = document.cookie.match(new RegExp('([; ]' + name + '|^' + name + ')([^\\s;]*)', 'g')); + + if (match) { + var cookie = match[0]; + + return cookie.replace(name + '=', '').replace(' ', ''); + } else + return ''; +}; + +ImprovedTube.getParam = function(query, name) { + var params = query.split('&'), + param = false; + + for (var i = 0; i < params.length; i++) { + params[i] = params[i].split('='); + + if (params[i][0] == name) { + param = params[i][1]; } } -}; -document.addEventListener('ImprovedTubeWatched', function(event) { - if (chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-watched', - data: { - action: event.detail.action, - id: event.detail.id, - title: event.detail.title - } - }); + if (param) { + return param; + } else { + return false; } -}); +}; + +ImprovedTube.getParams = function(query) { + var params = query.split('&'), + result = {}; + for (var i = 0, l = params.length; i < l; i++) { + params[i] = params[i].split('='); -/*------------------------------------------------------------------------------ -1.6 ONLY ONE PLAYER INSTANCE PLAYING -------------------------------------------------------------------------------*/ + result[params[i][0]] = params[i][1]; + } -ImprovedTube.onlyOnePlayerInstancePlaying = function() { - var video = document.querySelector('.html5-video-player video'); + return result; +}; - if (this.storage.only_one_player_instance_playing === true && video) { - if (this.focus === true) { - document.dispatchEvent(new CustomEvent('ImprovedTubeOnlyOnePlayer')); +ImprovedTube.setCookie = function(name, value) { + var date = new Date(); - video.play(); - } - } + date.setTime(date.getTime() + 3.154e+10); + + document.cookie = name + '=' + value + '; path=/; domain=.youtube.com; expires=' + date.toGMTString(); }; -document.addEventListener('ImprovedTubeOnlyOnePlayer', function(event) { - if (chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-only-one-player' - }); - } -}); +ImprovedTube.createPlayerButton = function (node, options) { + var controls = document.querySelector('.html5-video-player .ytp-left-controls'); + if (controls) { + var button = document.createElement('button'); -/*------------------------------------------------------------------------------ -1.7 HD THUMBNAILS -------------------------------------------------------------------------------*/ + button.className = 'ytp-button it-player-button'; -ImprovedTube.hdThumbnails = function() { - if (this.storage.hd_thumbnails === true) { - var images = document.querySelectorAll('img'); + button.dataset.title = options.title; - for (var i = 0, l = images.length; i < l; i++) { - if (/(hqdefault\.jpg|hq720.jpg)+/.test(images[i].src) && !images[i].dataset.defaultSrc) { - images[i].dataset.defaultSrc = images[i].src; + button.addEventListener('mouseover', function () { + var tooltip = document.createElement('div'), + rect = this.getBoundingClientRect(); - images[i].onload = function() { - if (this.naturalHeight <= 90) { - this.src = this.dataset.defaultSrc; - } - }; + tooltip.className = 'it-player-button--tooltip'; - images[i].src = images[i].src.replace(/(hqdefault\.jpg|hq720.jpg)+/, 'maxresdefault.jpg'); + tooltip.style.left = rect.left + rect.width / 2 + 'px'; + tooltip.style.top = rect.top - 8 + 'px'; + + tooltip.textContent = this.dataset.title; + + function mouseleave() { + tooltip.remove(); + + this.removeEventListener('mouseleave', mouseleave); } - } - } else { - var images = document.querySelectorAll('img'); - for (var i = 0, l = images.length; i < l; i++) { - if (images[i].dataset.defaultSrc) { - images[i].src = images[i].dataset.defaultSrc; + this.addEventListener('mouseleave', mouseleave); + + document.body.appendChild(tooltip); + }); + + if (options.id) { + if (node.querySelector('#' + options.id)) { + node.querySelector('#' + options.id).remove(); } + + button.id = options.id; } - } -}; -/*------------------------------------------------------------------------------ -1.8 HIDE THUMBNAIL OVERLAY -------------------------------------------------------------------------------*/ + if (options.html) { + button.innerHTML = options.html; + } -ImprovedTube.hideThumbnailOverlay = function() { - if (this.storage.hide_thumbnail_overlay === true) { - var overlays = document.querySelectorAll('#hover-overlays'); + button.style.opacity = options.opacity || '.5'; - for (var i = 0, l = overlays.length; i < l; i++) { - overlays[i].style.display = "none"; + if (options.onclick) { + button.onclick = options.onclick; } + + controls.insertBefore(button, controls.childNodes[3]); + } +}; + +ImprovedTube.reverse = function(parent) { + for (var i = 1, l = parent.childNodes.length; i < l; i++) { + parent.insertBefore(parent.childNodes[i], parent.firstChild); } }; -/*------------------------------------------------------------------------------ -2.0 APPEARANCE -------------------------------------------------------------------------------*/ -/*------------------------------------------------------------------------------ -2.1 PLAYER -------------------------------------------------------------------------------*/ -/*------------------------------------------------------------------------------ -2.1.1 FORCED THEATER MODE -------------------------------------------------------------------------------*/ -ImprovedTube.forcedTheaterMode = function() { - if (window.self === window.top && (ImprovedTube.storage.forced_theater_mode === true || ImprovedTube.storage.player_size === 'fit_to_window')) { - var button = document.querySelector('button.ytp-size-button'); - if (button && ImprovedTube.isset(document.getElementById('player-theater-container').firstChild) === false) { - button.click(); - } - } -}; -/*------------------------------------------------------------------------------ -2.1.2 HD THUMBNAIL -------------------------------------------------------------------------------*/ -ImprovedTube.playerHdThumbnail = function() { - if (this.storage.player_hd_thumbnail === true) { - if (this.player_hd_thumbnail_wait !== false) { - clearInterval(ImprovedTube.player_hd_thumbnail_wait); - ImprovedTube.player_hd_thumbnail_wait = false; - } - this.player_hd_thumbnail_wait = setInterval(function() { - var thumbnail = document.querySelector('.ytp-cued-thumbnail-overlay-image'); - if (thumbnail && thumbnail.style.backgroundImage) { - var style = document.getElementById('it-hd-thumbnail') || document.createElement('style'); - style.textContent = '.ytp-cued-thumbnail-overlay-image{background-image:' + thumbnail.style.backgroundImage.replace('/hqdefault.jpg', '/maxresdefault.jpg') + ' !important}'; - if (!document.getElementById('it-hd-thumbnail')) { - style.id = 'it-hd-thumbnail'; - thumbnail.parentNode.insertBefore(style, thumbnail); - } - } - }, 250); - } -}; /*------------------------------------------------------------------------------ -2.1.3 ALWAYS SHOW PROGRESS BAR +1.0 GENERAL ------------------------------------------------------------------------------*/ -ImprovedTube.alwaysShowProgressBar = function() { - if (ImprovedTube.always_show_progress_bar_interval) { - clearInterval(ImprovedTube.always_show_progress_bar_interval); - } +/*------------------------------------------------------------------------------ +1.1 YOUTUBE HOME PAGE +------------------------------------------------------------------------------*/ - if (this.storage.always_show_progress_bar === true) { - ImprovedTube.always_show_progress_bar_interval = setInterval(function() { - var player = document.querySelector('.html5-video-player'); +ImprovedTube.youtubeHomePage = function() { + var option = this.storage.youtube_home_page; - if (player && player.classList.contains('ytp-autohide')) { - var played = player.getCurrentTime() * 100 / player.getDuration(), - loaded = player.getVideoBytesLoaded() * 100, - play_bars = player.querySelectorAll('.ytp-play-progress'), - load_bars = player.querySelectorAll('.ytp-load-progress'), - width = 0, - progress_play = 0, - progress_load = 0; - - for (var i = 0, l = play_bars.length; i < l; i++) { - width += play_bars[i].offsetWidth; - } - - var width_percent = width / 100; - - for (var i = 0, l = play_bars.length; i < l; i++) { - var a = play_bars[i].offsetWidth / width_percent, - b = 0, - c = 0; - - if (played - progress_play >= a) { - b = 100; - } else if (played > progress_play && played < a + progress_play) { - b = 100 * ((played - progress_play) * width_percent) / play_bars[i].offsetWidth; - } - - play_bars[i].style.transform = 'scaleX(' + b / 100 + ')'; + if ( + option === '/feed/trending' || + option === '/feed/subscriptions' || + option === '/feed/history' || + option === '/playlist?list=WL' || + option === '/playlist?list=LL' || + option === '/feed/library' + ) { + var node_list = document.querySelectorAll(` + a[href="/"]:not([role=tablist]), + a[href="https://www.youtube.com/"]:not([role=tablist]), + a[it-origin="/"]:not([role=tablist]) + `); - if (loaded - progress_load >= a) { - c = 100; - } else if (loaded > progress_load && loaded < a + progress_load) { - c = 100 * ((loaded - progress_load) * width_percent) / play_bars[i].offsetWidth; - } + for (var i = 0, l = node_list.length; i < l; i++) { + var node = node_list[i]; - load_bars[i].style.transform = 'scaleX(' + c / 100 + ')'; + if (node.hasAttribute('it-origin') === false) { + node.setAttribute('it-origin', '/'); + } - progress_play += a; - progress_load += a; + node.href = option; + node.addEventListener('click', function() { + if ( + this.data && + this.data.commandMetadata && + this.data.commandMetadata.webCommandMetadata && + this.data.commandMetadata.webCommandMetadata.url + ) { + this.data.commandMetadata.webCommandMetadata.url = option; } - } - }, 100); + }, true); + } + } else { + var node_list = document.querySelectorAll('a[it-origin="/"]:not([role=tablist])'); + + for (var i = 0, l = node_list.length; i < l; i++) { + node_list[i].href = '/'; + } } }; /*------------------------------------------------------------------------------ -2.2 SIDEBAR +1.2 COLLAPSE OF SUBSCRIPTION SECTION ------------------------------------------------------------------------------*/ -/*------------------------------------------------------------------------------ -2.2.1 LIVECHAT -------------------------------------------------------------------------------*/ +ImprovedTube.collapseOfSubscriptionSections = function() { + if (/\/feed\/subscriptions/.test(location.href)) { + if (this.storage.collapse_of_subscription_sections === true) { + var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'); -ImprovedTube.livechat_wait = false; -ImprovedTube.livechat_url = false; + for (var i = 0, l = sections.length; i < l; i++) { + if (!sections[i].querySelector('.it-section-collapse')) { + var section_title = sections[i].querySelector('h2'), + button = document.createElement('div'); -ImprovedTube.livechat = function() { - if ( - document.documentElement.getAttribute('it-page-type') === 'video' && - this.storage.livechat === 'collapsed' && - this.livechat_wait === false - ) { - this.livechat_wait = setInterval(function() { - var button = document.querySelector('#chat:not([collapsed]) #show-hide-button paper-button'), - expander = document.querySelector('#watch-sidebar-live-chat .yt-uix-expander'); + button.className = 'it-section-collapse'; + button.innerHTML = ''; + button.section = sections[i]; + button.addEventListener('click', function() { + var section = this.section, + content = section.querySelector('.grid-subheader + #contents, .shelf-title-table + .multirow-shelf'); - if (document.documentElement.getAttribute('it-page-type') !== 'video' || button || expander) { - clearInterval(ImprovedTube.livechat_wait); + if (section.classList.contains('it-section-collapsed') === false) { + content.style.height = content.offsetHeight + 'px'; + content.style.transition = 'height 150ms'; + } - ImprovedTube.livechat_wait = false; - } + setTimeout(function() { + section.classList.toggle('it-section-collapsed'); + }); + }); - if (button) { - function click() { - ImprovedTube.livechat_url = location.href; + section_title.parentNode.insertBefore(button, section_title.nextSibling); } + } + } else { + var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'), + buttons = document.querySelectorAll('.it-section-collapse'); - button.addEventListener('mousedown', click); - button.addEventListener('touchdown', click); + for (var i = 0, l = sections.length; i < l; i++) { + sections[i].classList.remove('it-section-collapsed'); + sections[i].style.height = ''; + sections[i].style.transition = ''; + } - setTimeout(function() { - if (ImprovedTube.livechat_url !== location.href) { - button.click(); - } - }, 500); - } else if (expander) { - expander.classList.add('yt-uix-expander-collapsed'); + for (var i = 0, l = buttons.length; i < l; i++) { + buttons[i].remove(); } - }, 250); + } } }; /*------------------------------------------------------------------------------ -2.2.2 RELATIVE VIDEOS +1.3 ADD "SCROLL TO TOP" ------------------------------------------------------------------------------*/ -ImprovedTube.related_videos_wait = false; - -ImprovedTube.relatedVideos = function() { - if (this.storage.related_videos === 'collapsed') { - if (!this.related_videos_wait) { - this.related_videos_wait = setInterval(function() { - if ( - document.querySelector('#related.ytd-watch-flexy') || - document.querySelector('#watch7-sidebar-contents') - ) { - clearInterval(this.related_videos_wait); - - this.related_videos_wait = false; +ImprovedTube.addScrollToTop = function(is_update) { + if (this.storage.add_scroll_to_top === true) { + var button = document.createElement('div'); - if (!document.getElementById('improvedtube-collapsed-related-videos')) { - var button = document.createElement('button'), - parent = document.querySelector('#related.ytd-watch-flexy') || document.querySelector('#watch7-sidebar-contents'), - reference = document.querySelector('#related > *') || document.querySelector('#watch7-sidebar-contents > *'); + button.id = 'it-scroll-to-top'; + button.innerHTML = ''; - button.id = 'improvedtube-collapsed-related-videos'; - button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; - button.innerHTML = 'Show moreShow less'; + button.addEventListener('click', function() { + window.scrollTo(0, 0); + }); - button.onclick = function() { - document.documentElement.classList.toggle('related-videos-collapsed'); - }; + document.documentElement.appendChild(button); - document.documentElement.classList.toggle('related-videos-collapsed'); - parent.insertBefore(button, reference); - } - } - }, 250); - } + window.addEventListener('scroll', this.scroll); } else { - clearInterval(this.related_videos_wait); + var button = document.querySelector('#it-scroll-to-top'); - this.related_videos_wait = false; + if (button) { + button.remove(); + } - setTimeout(function() { - var button = document.getElementById('improvedtube-collapsed-related-videos'); + window.removeEventListener('scroll', this.scroll); + } +}; - if (button) { - button.remove(); - } - }, 260); +ImprovedTube.scroll = function() { + if (window.scrollY > window.innerHeight / 2) { + document.documentElement.setAttribute('it-show-scroll-to-top', true); + } else { + document.documentElement.setAttribute('it-show-scroll-to-top', false); } }; /*------------------------------------------------------------------------------ -2.3 DETAILS +1.4 CONFIRMATION BEFORE CLOSING ------------------------------------------------------------------------------*/ +ImprovedTube.confirmationBeforeClosing = function() { + window.onbeforeunload = function() { + if (ImprovedTube.storage.confirmation_before_closing === true) { + return 'You have attempted to leave this page. Are you sure?'; + } + }; +}; + + /*------------------------------------------------------------------------------ -2.3.1 HOW LONG AGO THE VIDEO WAS UPLOADED +1.5 MARK WATCHED VIDEOS ------------------------------------------------------------------------------*/ -ImprovedTube.howLongAgoTheVideoWasUploaded = function() { - if (ImprovedTube.storage.how_long_ago_the_video_was_uploaded === true) { - function timeSince(date) { - var seconds = Math.floor((new Date() - new Date(date)) / 1000), - interval = Math.floor(seconds / 31536000); - - if (interval > 1) { - return interval + ' years ago'; - } - interval = Math.floor(seconds / 2592000); - if (interval > 1) { - return interval + ' months ago'; - } - interval = Math.floor(seconds / 86400); - if (interval > 1) { - return interval + ' days ago'; - } - interval = Math.floor(seconds / 3600); - if (interval > 1) { - return interval + ' hours ago'; - } - interval = Math.floor(seconds / 60); - if (interval > 1) { - return interval + ' minutes ago'; - } +ImprovedTube.markWatchedVideos = function() { + if (ImprovedTube.storage.mark_watched_videos === true) { + var video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - return Math.floor(seconds) + ' seconds ago'; - } + for (var i = 0, l = video_items.length; i < l; i++) { + if (!video_items[i].querySelector('.it-mark-watched')) { + var button = document.createElement('div'); - var waiting_channel_link = setInterval(function() { - var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new', - api_key = typeof ImprovedTube.storage.google_api_key === 'string' && ImprovedTube.storage.google_api_key.length > 0 ? ImprovedTube.storage.google_api_key : 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; + button.className = 'it-mark-watched' + (this.storage.watched && this.storage.watched[this.getParam(new URL(video_items[i].href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); + button.innerHTML = ''; - if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info a')) { - clearInterval(waiting_channel_link); + button.addEventListener('click', function(event) { + var watched = !this.classList.contains('watched'); - var xhr = new XMLHttpRequest(); + event.preventDefault(); + event.stopPropagation(); - xhr.addEventListener('load', function() { - var response = JSON.parse(this.responseText), - element = document.querySelector('.itx-channel-video-uploaded') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); + this.classList.toggle('watched'); - if (ImprovedTube.isset(response.items) && ImprovedTube.isset(response.items[0])) { - element.innerHTML = (youtube_version ? ' · ' + timeSince(response.items[0].snippet.publishedAt) + ' ' : timeSince(response.items[0].snippet.publishedAt) + ''); + try { + var video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'), + item = this.parentNode; - var date = new Date(response.items[0].snippet.publishedAt); + while ( + item.nodeName && + item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && + item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && + item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && + item.classList && + !item.classList.contains('yt-shelf-grid-item') && + !item.classList.contains('video-list-item') + ) { + item = item.parentNode; + } - element.title = ((date.getMonth() > 8) ? (date.getMonth() + 1) : ('0' + (date.getMonth() + 1))) + '/' + ((date.getDate() > 9) ? date.getDate() : ('0' + date.getDate())) + '/' + date.getFullYear(); - } + if (!ImprovedTube.storage.watched || typeof ImprovedTube.storage.watched !== 'object') { + ImprovedTube.storage.watched = {}; + } - if (!youtube_version) { - element.href = document.querySelector('#watch7-user-header a').href.indexOf('/videos') === -1 ? document.querySelector('#watch7-user-header a').href + '/videos' : document.querySelector('#watch7-user-header a').href; - } + if (watched === true) { + ImprovedTube.storage.watched[video_id] = { + title: item.querySelector('#video-title').innerText + }; - if (!document.querySelector('.itx-channel-video-uploaded') && document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info')) { - element.style.marginLeft = '8px'; - element.className = (youtube_version ? 'style-scope ytd-video-owner-renderer itx-channel-video-uploaded' : 'yt-uix-sessionlink spf-link itx-channel-video-uploaded'); + document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { + detail: { + action: 'set', + id: video_id, + title: item.querySelector('#video-title').innerText + } + })); + } else if (ImprovedTube.storage.watched[video_id]) { + delete ImprovedTube.storage.watched[video_id]; - document.querySelector(youtube_version ? '#info #info-text #date' : '.yt-user-info').appendChild(element); - } + document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { + detail: { + action: 'remove', + id: video_id + } + })); + } + } catch (err) {} }); - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?id=' + ImprovedTube.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v') + '&key=' + api_key + '&part=snippet', true); - xhr.send(); + video_items[i].appendChild(button); } - }, 500); + } } }; +document.addEventListener('ImprovedTubeWatched', function(event) { + if (chrome && chrome.runtime) { + chrome.runtime.sendMessage({ + name: 'improvedtube-watched', + data: { + action: event.detail.action, + id: event.detail.id, + title: event.detail.title + } + }); + } +}); + /*------------------------------------------------------------------------------ -2.3.2 SHOW CHANNEL VIDEOS COUNT --------------------------------------------------------------------------------- -TODO: TEST +1.6 ONLY ONE PLAYER INSTANCE PLAYING ------------------------------------------------------------------------------*/ -ImprovedTube.channelVideosCount = function() { - if (this.storage.channel_videos_count === true) { - var waiting_channel_link = setInterval(function() { - var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; +ImprovedTube.onlyOnePlayerInstancePlaying = function() { + var video = document.querySelector('.html5-video-player video'); - if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a')) { - clearInterval(waiting_channel_link); + if (this.storage.only_one_player_instance_playing === true && video) { + if (this.focus === true) { + document.dispatchEvent(new CustomEvent('ImprovedTubeOnlyOnePlayer')); - var xhr = new XMLHttpRequest(); + video.play(); + } + } +}; - xhr.addEventListener('load', function() { - var response = JSON.parse(this.responseText), - element = document.querySelector('.itx-channel-videos-count') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); +document.addEventListener('ImprovedTubeOnlyOnePlayer', function(event) { + if (chrome && chrome.runtime) { + chrome.runtime.sendMessage({ + name: 'improvedtube-only-one-player' + }); + } +}); - if (ImprovedTube.isset(response.items) && ImprovedTube.isset(response.items[0])) { - element.innerHTML = (youtube_version ? '' + response.items[0].statistics.videoCount + ' videos' : response.items[0].statistics.videoCount + ' videos'); - } - if (!youtube_version) { - element.href = document.querySelector('#watch7-user-header a').href.indexOf('/videos') === -1 ? document.querySelector('#watch7-user-header a').href + '/videos' : document.querySelector('#watch7-user-header a').href; - } +/*------------------------------------------------------------------------------ +1.7 HD THUMBNAILS +------------------------------------------------------------------------------*/ - if (!document.querySelector('.itx-channel-videos-count') && document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info')) { - element.style.marginLeft = '8px'; - element.className = (youtube_version ? 'style-scope ytd-video-owner-renderer itx-channel-videos-count' : 'yt-uix-sessionlink spf-link itx-channel-videos-count'); +ImprovedTube.hdThumbnails = function() { + if (this.storage.hd_thumbnails === true) { + var images = document.querySelectorAll('img'); - document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info').appendChild(element); + for (var i = 0, l = images.length; i < l; i++) { + if (/(hqdefault\.jpg|hq720.jpg)+/.test(images[i].src) && !images[i].dataset.defaultSrc) { + images[i].dataset.defaultSrc = images[i].src; + + images[i].onload = function() { + if (this.naturalHeight <= 90) { + this.src = this.dataset.defaultSrc; } - }); + }; - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/channels?id=' + (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a').getAttribute('it-origin') || document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a').href).replace('https://www.youtube.com/channel/', '') + '&key=AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA&part=statistics', true); - xhr.send(); + images[i].src = images[i].src.replace(/(hqdefault\.jpg|hq720.jpg)+/, 'maxresdefault.jpg'); } - }, 500); + } + } else { + var images = document.querySelectorAll('img'); + + for (var i = 0, l = images.length; i < l; i++) { + if (images[i].dataset.defaultSrc) { + images[i].src = images[i].dataset.defaultSrc; + } + } + } +}; + +/*------------------------------------------------------------------------------ +1.8 HIDE THUMBNAIL OVERLAY +------------------------------------------------------------------------------*/ + +ImprovedTube.hideThumbnailOverlay = function() { + if (this.storage.hide_thumbnail_overlay === true) { + var overlays = document.querySelectorAll('#hover-overlays'); + + for (var i = 0, l = overlays.length; i < l; i++) { + overlays[i].style.display = "none"; + } } }; /*------------------------------------------------------------------------------ -2.4 COMMENTS +2.0 APPEARANCE ------------------------------------------------------------------------------*/ -ImprovedTube.comments_wait = false; +/*------------------------------------------------------------------------------ +2.1 PLAYER +------------------------------------------------------------------------------*/ -ImprovedTube.comments = function() { - if (this.storage.comments === 'collapsed') { - if (this.comments_wait === false) { - this.comments_wait = setInterval(function() { - if ( - document.getElementById('comment-section-renderer-items') || - document.querySelector('#comments #sections #contents') - ) { - clearInterval(this.comments_wait); +/*------------------------------------------------------------------------------ +2.1.1 FORCED THEATER MODE +------------------------------------------------------------------------------*/ - this.comments_wait = false; +ImprovedTube.forcedTheaterMode = function() { + if (window.self === window.top && (ImprovedTube.storage.forced_theater_mode === true || ImprovedTube.storage.player_size === 'fit_to_window')) { + var button = document.querySelector('button.ytp-size-button'); - if (!document.getElementById('improvedtube-collapsed-comments')) { - var button = document.createElement('button'), - parent = document.getElementById('comment-section-renderer') || document.querySelector('#comments #sections'), - reference = document.getElementById('comment-section-renderer-items') || document.querySelector('#comments #sections #contents'); + if (button && ImprovedTube.isset(document.getElementById('player-theater-container').firstChild) === false) { + button.click(); + } + } +}; - button.id = 'improvedtube-collapsed-comments'; - button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; - button.innerHTML = 'Show moreShow less'; - button.onclick = function() { - document.documentElement.classList.toggle('comments-collapsed'); - }; +/*------------------------------------------------------------------------------ +2.1.2 HD THUMBNAIL +------------------------------------------------------------------------------*/ - document.documentElement.classList.toggle('comments-collapsed'); - parent.insertBefore(button, reference); - } - } - }, 250); +ImprovedTube.playerHdThumbnail = function() { + if (this.storage.player_hd_thumbnail === true) { + if (this.player_hd_thumbnail_wait !== false) { + clearInterval(ImprovedTube.player_hd_thumbnail_wait); + + ImprovedTube.player_hd_thumbnail_wait = false; } - } else { - clearInterval(this.comments_wait); - this.comments_wait = false; + this.player_hd_thumbnail_wait = setInterval(function() { + var thumbnail = document.querySelector('.ytp-cued-thumbnail-overlay-image'); - setTimeout(function() { - if (document.getElementById('improvedtube-collapsed-comments')) { - document.getElementById('improvedtube-collapsed-comments').remove(); + if (thumbnail && thumbnail.style.backgroundImage) { + var style = document.getElementById('it-hd-thumbnail') || document.createElement('style'); + + style.textContent = '.ytp-cued-thumbnail-overlay-image{background-image:' + thumbnail.style.backgroundImage.replace('/hqdefault.jpg', '/maxresdefault.jpg') + ' !important}'; + + if (!document.getElementById('it-hd-thumbnail')) { + style.id = 'it-hd-thumbnail'; + thumbnail.parentNode.insertBefore(style, thumbnail); + } } - }, 260); + }, 250); } }; /*------------------------------------------------------------------------------ -3.0 THEMES +2.1.3 ALWAYS SHOW PROGRESS BAR ------------------------------------------------------------------------------*/ -/*------------------------------------------------------------------------------ -3.1 MY COLORS -------------------------------------------------------------------------------*/ +ImprovedTube.alwaysShowProgressBar = function() { + if (ImprovedTube.always_show_progress_bar_interval) { + clearInterval(ImprovedTube.always_show_progress_bar_interval); + } -ImprovedTube.myColors = function() { - if (this.storage.theme_my_colors !== true) { - if (document.querySelector('.it-theme-editor')) { - document.querySelector('.it-theme-editor').remove(); - } + if (this.storage.always_show_progress_bar === true) { + ImprovedTube.always_show_progress_bar_interval = setInterval(function() { + var player = document.querySelector('.html5-video-player'); - return false; - } + if (player && player.classList.contains('ytp-autohide')) { + var played = player.getCurrentTime() * 100 / player.getDuration(), + loaded = player.getVideoBytesLoaded() * 100, + play_bars = player.querySelectorAll('.ytp-play-progress'), + load_bars = player.querySelectorAll('.ytp-load-progress'), + width = 0, + progress_play = 0, + progress_load = 0; - var style = document.querySelector('.it-theme-editor') || document.createElement('style'); - - style.className = 'it-theme-editor'; - style.innerText = 'html{' + - '--yt-swatch-textbox-bg:rgba(19,19,19,1)!important;' + - '--yt-swatch-icon-color:rgba(136,136,136,1)!important;' + - '--yt-spec-brand-background-primary:rgba(0,0,0, 0.1) !important;' + - '--yt-spec-brand-background-secondary:rgba(0,0,0, 0.1) !important;' + - '--yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important;' + - '--yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important;' + - '--yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important;' + - '--yt-spec-brand-button-background:rgba(136,136,136,1) !important;' + - '--yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important;' + - '--yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important;' + - '--yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important;' + - '--yt-spec-10-percent-layer:rgba(136,136,136,1) !important;' + - '--yt-swatch-primary:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-swatch-primary-darker:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-brand-background-solid:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-a:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-b:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-c:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-touch-response:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-swatch-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-important-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-input-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-logo-override: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-spec-text-primary:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-primary-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-secondary:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-active-other:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-filled-button-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-call-to-action-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-icon-active:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-link-text:' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-spec-brand-subscribe-button-background:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-wordmark-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-selected-nav-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '}'; - - document.documentElement.appendChild(style); -}; + for (var i = 0, l = play_bars.length; i < l; i++) { + width += play_bars[i].offsetWidth; + } + var width_percent = width / 100; -/*------------------------------------------------------------------------------ -3.2 BLUELIGHT -------------------------------------------------------------------------------*/ + for (var i = 0, l = play_bars.length; i < l; i++) { + var a = play_bars[i].offsetWidth / width_percent, + b = 0, + c = 0; -ImprovedTube.bluelight = function() { - var value = this.storage.bluelight, - times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); + if (played - progress_play >= a) { + b = 100; + } else if (played > progress_play && played < a + progress_play) { + b = 100 * ((played - progress_play) * width_percent) / play_bars[i].offsetWidth; + } - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; - } + play_bars[i].style.transform = 'scaleX(' + b / 100 + ')'; - if ( - this.isset(value) && value !== 0 && value !== '0' && - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) - ) { - if (!document.querySelector('#it-bluelight')) { - var container = document.createElement('div'); + if (loaded - progress_load >= a) { + c = 100; + } else if (loaded > progress_load && loaded < a + progress_load) { + c = 100 * ((loaded - progress_load) * width_percent) / play_bars[i].offsetWidth; + } - container.id = 'it-bluelight'; - container.innerHTML = ''; + load_bars[i].style.transform = 'scaleX(' + c / 100 + ')'; - document.documentElement.appendChild(container); - } else { - document.querySelector('#it-bluelight-filter feColorMatrix').setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 ' + (1 - parseFloat(value) / 100) + ' 0 0 0 0 0 1 0'); - } - } else if (document.querySelector('#it-bluelight')) { - document.querySelector('#it-bluelight').remove(); + progress_play += a; + progress_load += a; + } + } + }, 100); } }; /*------------------------------------------------------------------------------ -3.3 DIM +2.2 SIDEBAR ------------------------------------------------------------------------------*/ -ImprovedTube.dim = function() { - var value = this.storage.dim, - times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); - - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; - }; +/*------------------------------------------------------------------------------ +2.2.1 LIVECHAT +------------------------------------------------------------------------------*/ +ImprovedTube.livechat = function() { if ( - this.isset(value) && value !== 0 && value !== '0' && - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) + document.documentElement.getAttribute('data-page-type') === 'video' && + this.storage.livechat === 'collapsed' && + this.livechat_wait === false ) { - if (!document.querySelector('#it-dim')) { - var container = document.createElement('div'); + this.livechat_wait = setInterval(function() { + var button = document.querySelector('#chat:not([collapsed]) #show-hide-button paper-button'), + expander = document.querySelector('#watch-sidebar-live-chat .yt-uix-expander'); - container.id = 'it-dim'; - container.style.opacity = parseInt(Number(value)) / 100 || 0; + if (document.documentElement.getAttribute('data-page-type') !== 'video' || button || expander) { + clearInterval(ImprovedTube.livechat_wait); - document.documentElement.appendChild(container); - } else { - document.querySelector('#it-dim').style.opacity = parseInt(Number(value)) / 100 || 0; - } + ImprovedTube.livechat_wait = false; + } - if (!document.querySelector('#it-dim-player')) { - var container = document.createElement('div'); + if (button) { + function click() { + ImprovedTube.livechat_url = location.href; + } - container.id = 'it-dim-player'; - container.style.opacity = parseInt(Number(value)) / 100 || 0; + button.addEventListener('mousedown', click); + button.addEventListener('touchdown', click); - if (document.querySelector('.html5-video-player')) { - document.querySelector('.html5-video-player').appendChild(container); + setTimeout(function() { + if (ImprovedTube.livechat_url !== location.href) { + button.click(); + } + }, 500); + } else if (expander) { + expander.classList.add('yt-uix-expander-collapsed'); } - } else { - document.querySelector('#it-dim-player').style.opacity = parseInt(Number(value)) / 100 || 0; - } - } else { - if (document.querySelector('#it-dim')) { - document.querySelector('#it-dim').remove(); - } - - if (document.querySelector('#it-dim-player')) { - document.querySelector('#it-dim-player').remove(); - } + }, 250); } }; /*------------------------------------------------------------------------------ -3.4 FONT +2.2.2 RELATIVE VIDEOS ------------------------------------------------------------------------------*/ -ImprovedTube.font = function() { - if (this.storage.font) { - if (this.storage.font !== 'Default') { - if (!document.querySelector('.it-font-family')) { - var link = document.createElement('link'); - - link.rel = 'stylesheet'; - - document.documentElement.appendChild(link); - } else { - var link = document.querySelector('.it-font-family'); - } - - link.href = '//fonts.googleapis.com/css2?family=' + this.storage.font; - - document.documentElement.style.fontFamily = this.storage.font.replace(/\+/g, ' '); - } - } -}; - +ImprovedTube.relatedVideos = function() { + if (this.storage.related_videos === 'collapsed') { + if (!this.related_videos_wait) { + this.related_videos_wait = setInterval(function() { + if ( + document.querySelector('#related.ytd-watch-flexy') || + document.querySelector('#watch7-sidebar-contents') + ) { + clearInterval(this.related_videos_wait); -/*------------------------------------------------------------------------------ -3.5 THEMES -------------------------------------------------------------------------------*/ + this.related_videos_wait = false; -ImprovedTube.themes = function() { - var times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); + if (!document.getElementById('improvedtube-collapsed-related-videos')) { + var button = document.createElement('button'), + parent = document.querySelector('#related.ytd-watch-flexy') || document.querySelector('#watch7-sidebar-contents'), + reference = document.querySelector('#related > *') || document.querySelector('#watch7-sidebar-contents > *'); - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; - } + button.id = 'improvedtube-collapsed-related-videos'; + button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; + button.innerHTML = 'Show moreShow less'; - if ( - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) && - ( - this.isset(ImprovedTube.storage.default_dark_theme) && ImprovedTube.storage.default_dark_theme !== false || - this.isset(ImprovedTube.storage.night_theme) && ImprovedTube.storage.night_theme !== false || - this.isset(ImprovedTube.storage.dawn_theme) && ImprovedTube.storage.dawn_theme !== false || - this.isset(ImprovedTube.storage.sunset_theme) && ImprovedTube.storage.sunset_theme !== false || - this.isset(ImprovedTube.storage.desert_theme) && ImprovedTube.storage.desert_theme !== false || - this.isset(ImprovedTube.storage.plain_theme) && ImprovedTube.storage.plain_theme !== false || - this.isset(ImprovedTube.storage.black_theme) && ImprovedTube.storage.black_theme !== false - ) - ) { - var PREF_OLD = this.getParams(this.getCookieValueByName('PREF')), - PREF = this.getParams(this.getCookieValueByName('PREF')), - result = ''; + button.onclick = function() { + document.documentElement.classList.toggle('related-videos-collapsed'); + }; - if (!this.isset(PREF.f6) || this.isset(PREF.f6) && PREF.f6.length !== 3) { - PREF.f6 = '400'; - } else if (PREF.f6.length === 3) { - PREF.f6 = '4' + PREF.f6.substr(1); + document.documentElement.classList.toggle('related-videos-collapsed'); + parent.insertBefore(button, reference); + } + } + }, 250); } + } else { + clearInterval(this.related_videos_wait); - for (var i in PREF) { - result += i + '=' + PREF[i] + '&'; - } + this.related_videos_wait = false; - this.setCookie('PREF', result.slice(0, -1)); + setTimeout(function() { + var button = document.getElementById('improvedtube-collapsed-related-videos'); - document.documentElement.setAttribute('it-theme', 'true'); - } else { - document.documentElement.removeAttribute('it-theme'); + if (button) { + button.remove(); + } + }, 260); } }; /*------------------------------------------------------------------------------ -4.0 PLAYER +2.3 DETAILS ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -4.1 AUTOPLAY +2.3.1 HOW LONG AGO THE VIDEO WAS UPLOADED ------------------------------------------------------------------------------*/ -ImprovedTube.allow_autoplay = false; +ImprovedTube.howLongAgoTheVideoWasUploaded = function() { + if (ImprovedTube.storage.how_long_ago_the_video_was_uploaded === true) { + function timeSince(date) { + var seconds = Math.floor((new Date() - new Date(date)) / 1000), + interval = Math.floor(seconds / 31536000); -ImprovedTube.autoplay = function(video) { - if (ImprovedTube.video_url !== location.href) { - ImprovedTube.allow_autoplay = false; - } + if (interval > 1) { + return interval + ' years ago'; + } + interval = Math.floor(seconds / 2592000); + if (interval > 1) { + return interval + ' months ago'; + } + interval = Math.floor(seconds / 86400); + if (interval > 1) { + return interval + ' days ago'; + } + interval = Math.floor(seconds / 3600); + if (interval > 1) { + return interval + ' hours ago'; + } + interval = Math.floor(seconds / 60); + if (interval > 1) { + return interval + ' minutes ago'; + } - if ( - ( - (/\/watch\?/.test(location.href) && !/list=/.test(location.href) && ImprovedTube.storage.player_autoplay === false) || - (/\/watch\?/.test(location.href) && /list=/.test(location.href) && ImprovedTube.storage.playlist_autoplay === false) || - (/\/(channel|user|c)\//.test(location.href) && ImprovedTube.storage.channel_trailer_autoplay === false) - ) === true && - ImprovedTube.allow_autoplay === false && - video.parentNode.parentNode.classList.contains('ad-showing') === false - ) { - setTimeout(function() { - video.parentNode.parentNode.pauseVideo(); - }); - } -}; + return Math.floor(seconds) + ' seconds ago'; + } + var waiting_channel_link = setInterval(function() { + var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new', + api_key = typeof ImprovedTube.storage.google_api_key === 'string' && ImprovedTube.storage.google_api_key.length > 0 ? ImprovedTube.storage.google_api_key : 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; -/*------------------------------------------------------------------------------ -4.2 AUTOPAUSE WHEN SWITCHING TABS -------------------------------------------------------------------------------*/ + if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info a')) { + clearInterval(waiting_channel_link); -ImprovedTube.playerAutopauseWhenSwitchingTabs = function() { - var video = document.querySelector('.html5-video-player video'); + var xhr = new XMLHttpRequest(); - if (this.storage.player_autopause_when_switching_tabs === true && video) { + xhr.addEventListener('load', function() { + var response = JSON.parse(this.responseText), + element = document.querySelector('.itx-channel-video-uploaded') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); - if (this.focus === false && video.paused === false) { - video.pause(); + if (ImprovedTube.isset(response.items) && ImprovedTube.isset(response.items[0])) { + element.innerHTML = (youtube_version ? ' · ' + timeSince(response.items[0].snippet.publishedAt) + ' ' : timeSince(response.items[0].snippet.publishedAt) + ''); - this.played_before_blur = true; - } else if (this.focus === true && this.played_before_blur === true) { - video.play(); - } - } -}; + var date = new Date(response.items[0].snippet.publishedAt); + element.title = ((date.getMonth() > 8) ? (date.getMonth() + 1) : ('0' + (date.getMonth() + 1))) + '/' + ((date.getDate() > 9) ? date.getDate() : ('0' + date.getDate())) + '/' + date.getFullYear(); + } -/*------------------------------------------------------------------------------ -4.3 FORCED PLAYBACK SPEED -------------------------------------------------------------------------------*/ + if (!youtube_version) { + element.href = document.querySelector('#watch7-user-header a').href.indexOf('/videos') === -1 ? document.querySelector('#watch7-user-header a').href + '/videos' : document.querySelector('#watch7-user-header a').href; + } -ImprovedTube.playerPlaybackSpeed = function(node) { - var option = Number(ImprovedTube.storage.player_playback_speed), - player = document.querySelector('.html5-video-player'), - is_live = false; + if (!document.querySelector('.itx-channel-video-uploaded') && document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info')) { + element.style.marginLeft = '8px'; + element.className = (youtube_version ? 'style-scope ytd-video-owner-renderer itx-channel-video-uploaded' : 'yt-uix-sessionlink spf-link itx-channel-video-uploaded'); - if (player && player.getVideoData && player.getVideoData().isLive) { - is_live = true; - } + document.querySelector(youtube_version ? '#info #info-text #date' : '.yt-user-info').appendChild(element); + } + }); - if (ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) && ImprovedTube.storage.player_forced_playback_speed === true) { - try { - if (window.location.href.indexOf('music') === -1 && !is_live) { - document.querySelector('.html5-video-player video').playbackRate = option; - } else { - document.querySelector('.html5-video-player video').playbackRate = 1; + xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?id=' + ImprovedTube.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v') + '&key=' + api_key + '&part=snippet', true); + xhr.send(); } - } catch (err) {} + }, 500); } }; /*------------------------------------------------------------------------------ -4.4 SUBTITLES +2.3.2 SHOW CHANNEL VIDEOS COUNT +-------------------------------------------------------------------------------- +TODO: TEST ------------------------------------------------------------------------------*/ -ImprovedTube.subtitles = function() { +ImprovedTube.channelVideosCount = function() { + if (this.storage.channel_videos_count === true) { + var waiting_channel_link = setInterval(function() { + var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; -}; + if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a')) { + clearInterval(waiting_channel_link); + var xhr = new XMLHttpRequest(); -/*------------------------------------------------------------------------------ -4.5 UP NEXT AUTOPLAY -------------------------------------------------------------------------------*/ + xhr.addEventListener('load', function() { + var response = JSON.parse(this.responseText), + element = document.querySelector('.itx-channel-videos-count') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); -ImprovedTube.upNextAutoplay = function() { - var option = this.storage.up_next_autoplay; + if (ImprovedTube.isset(response.items) && ImprovedTube.isset(response.items[0])) { + element.innerHTML = (youtube_version ? '' + response.items[0].statistics.videoCount + ' videos' : response.items[0].statistics.videoCount + ' videos'); + } - if (this.isset(option)) { - var toggle = document.querySelector('.ytp-autonav-toggle-button'), - attribute = toggle.getAttribute('aria-checked') === 'true'; + if (!youtube_version) { + element.href = document.querySelector('#watch7-user-header a').href.indexOf('/videos') === -1 ? document.querySelector('#watch7-user-header a').href + '/videos' : document.querySelector('#watch7-user-header a').href; + } - if (toggle) { - if (option !== attribute) { - toggle.click(); + if (!document.querySelector('.itx-channel-videos-count') && document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info')) { + element.style.marginLeft = '8px'; + element.className = (youtube_version ? 'style-scope ytd-video-owner-renderer itx-channel-videos-count' : 'yt-uix-sessionlink spf-link itx-channel-videos-count'); + + document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info').appendChild(element); + } + }); + + xhr.open('GET', 'https://www.googleapis.com/youtube/v3/channels?id=' + (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a').getAttribute('it-origin') || document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a').href).replace('https://www.youtube.com/channel/', '') + '&key=AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA&part=statistics', true); + xhr.send(); } - } + }, 500); } }; /*------------------------------------------------------------------------------ -4.6 ADS +2.4 COMMENTS ------------------------------------------------------------------------------*/ -ImprovedTube.adInterval = false; -ImprovedTube.AdSkipButton = false; +ImprovedTube.comments = function() { + if (this.storage.comments === 'collapsed') { + if (this.comments_wait === false) { + this.comments_wait = setInterval(function() { + if ( + document.getElementById('comment-section-renderer-items') || + document.querySelector('#comments #sections #contents') + ) { + clearInterval(this.comments_wait); -ImprovedTube.playerAds = function() { - if (ImprovedTube.adInterval) { - clearInterval(ImprovedTube.adInterval); - } + this.comments_wait = false; - if (ImprovedTube.storage.player_ads === 'block_all') { - ImprovedTube.adInterval = setInterval(function() { - var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); + if (!document.getElementById('improvedtube-collapsed-comments')) { + var button = document.createElement('button'), + parent = document.getElementById('comment-section-renderer') || document.querySelector('#comments #sections'), + reference = document.getElementById('comment-section-renderer-items') || document.querySelector('#comments #sections #contents'); - if (button) { - button.click(); + button.id = 'improvedtube-collapsed-comments'; + button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; + button.innerHTML = 'Show moreShow less'; - clearInterval(ImprovedTube.adInterval); - } - }, 50); - } else if (ImprovedTube.storage.player_ads === 'subscribed_channels') { - ImprovedTube.adInterval = setInterval(function() { - var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); + button.onclick = function() { + document.documentElement.classList.toggle('comments-collapsed'); + }; - if (button && !document.querySelector('#meta paper-button[subscribed]')) { - button.click(); + document.documentElement.classList.toggle('comments-collapsed'); + parent.insertBefore(button, reference); + } + } + }, 250); + } + } else { + clearInterval(this.comments_wait); - clearInterval(ImprovedTube.adInterval); + this.comments_wait = false; + + setTimeout(function() { + if (document.getElementById('improvedtube-collapsed-comments')) { + document.getElementById('improvedtube-collapsed-comments').remove(); } - }, 50); + }, 260); } }; + /*------------------------------------------------------------------------------ -4.7 CUSTOM MINI-PLAYER +3.0 THEMES ------------------------------------------------------------------------------*/ -ImprovedTube.mini_player__mode = false; -ImprovedTube.mini_player__move = false; -ImprovedTube.mini_player__cursor = '""'; -ImprovedTube.mini_player__x = 0; -ImprovedTube.mini_player__y = 0; -ImprovedTube.mini_player__max_x = 0; -ImprovedTube.mini_player__max_y = 0; -ImprovedTube.mini_player__original_width = 0; -ImprovedTube.mini_player__original_height = 0; -ImprovedTube.mini_player__width = 200; -ImprovedTube.mini_player__height = 160; -ImprovedTube.mini_player__mousedown_x = 0; -ImprovedTube.mini_player__mousedown_y = 0; -ImprovedTube.mini_player__player_offset_x = 0; -ImprovedTube.mini_player__player_offset_y = 0; -ImprovedTube.mini_player__resize_offset = 16; - - -ImprovedTube.mini_player__setPosition = function(x, y) { - ImprovedTube.mini_player__element.style.transform = 'translate3d(' + x + 'px, ' + y + 'px, 0)'; -}; - -ImprovedTube.mini_player__setSize = function(width, height) { - ImprovedTube.mini_player__element.style.width = width + 'px'; - ImprovedTube.mini_player__element.style.height = height + 'px'; -}; - -ImprovedTube.mini_player__scroll = function() { - if (window.scrollY >= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === false) { - ImprovedTube.mini_player__mode = true; - - ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; - ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; - - ImprovedTube.mini_player__element.classList.add('it-mini-player'); - - ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); - ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); +/*------------------------------------------------------------------------------ +3.1 MY COLORS +------------------------------------------------------------------------------*/ - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); +ImprovedTube.myColors = function() { + if (this.storage.theme_my_colors !== true) { + if (document.querySelector('.it-theme-editor')) { + document.querySelector('.it-theme-editor').remove(); + } - window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); + return false; + } - window.dispatchEvent(new Event('resize')); - } else if (window.scrollY < 256 && ImprovedTube.mini_player__mode === true || ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === true) { - ImprovedTube.mini_player__mode = false; - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); - ImprovedTube.mini_player__move = false; - ImprovedTube.mini_player__setPosition(0, 0); - ImprovedTube.mini_player__element.style.width = ''; - ImprovedTube.mini_player__element.style.height = ''; + var style = document.querySelector('.it-theme-editor') || document.createElement('style'); - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); + style.className = 'it-theme-editor'; + style.innerText = 'html{' + + '--yt-swatch-textbox-bg:rgba(19,19,19,1)!important;' + + '--yt-swatch-icon-color:rgba(136,136,136,1)!important;' + + '--yt-spec-brand-background-primary:rgba(0,0,0, 0.1) !important;' + + '--yt-spec-brand-background-secondary:rgba(0,0,0, 0.1) !important;' + + '--yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important;' + + '--yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important;' + + '--yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important;' + + '--yt-spec-brand-button-background:rgba(136,136,136,1) !important;' + + '--yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important;' + + '--yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important;' + + '--yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important;' + + '--yt-spec-10-percent-layer:rgba(136,136,136,1) !important;' + + '--yt-swatch-primary:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-swatch-primary-darker:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-brand-background-solid:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-general-background-a:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-general-background-b:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-general-background-c:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-touch-response:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-swatch-text: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-swatch-important-text: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-swatch-input-text: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-swatch-logo-override: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-spec-text-primary:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-text-primary-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-text-secondary:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-text-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-icon-active-other:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-icon-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-filled-button-text:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-call-to-action-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-brand-icon-active:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-brand-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-brand-link-text:' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-spec-brand-subscribe-button-background:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-wordmark-text:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-selected-nav-text:' + (this.storage.theme_text_color || '') + ' !important;' + + '}'; - window.dispatchEvent(new Event('resize')); - } + document.documentElement.appendChild(style); }; -ImprovedTube.mini_player__mousedown = function(event) { - if (event.button !== 0) { - return false; - } - if (ImprovedTube.mini_player__resize() === true) { - return false; +/*------------------------------------------------------------------------------ +3.2 BLUELIGHT +------------------------------------------------------------------------------*/ + +ImprovedTube.bluelight = function() { + var value = this.storage.bluelight, + times = { + from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), + to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) + }, + current_time = new Date().getHours(); + + if (times.to < times.from && current_time > times.from && current_time < 24) { + times.to += 24; + } else if (times.to < times.from && current_time < times.to) { + times.from = 0; } - var is_player = false, - path = event.composedPath(); + if ( + this.isset(value) && value !== 0 && value !== '0' && + (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) + ) { + if (!document.querySelector('#it-bluelight')) { + var container = document.createElement('div'); - for (var i = 0, l = path.length; i < l; i++) { - if ((path[i].classList && path[i].classList.contains('it-mini-player')) === true) { - is_player = true; + container.id = 'it-bluelight'; + container.innerHTML = ''; + + document.documentElement.appendChild(container); + } else { + document.querySelector('#it-bluelight-filter feColorMatrix').setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 ' + (1 - parseFloat(value) / 100) + ' 0 0 0 0 0 1 0'); } + } else if (document.querySelector('#it-bluelight')) { + document.querySelector('#it-bluelight').remove(); } +}; - if (is_player === false) { - return false; - } - event.preventDefault(); +/*------------------------------------------------------------------------------ +3.3 DIM +------------------------------------------------------------------------------*/ - var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); +ImprovedTube.dim = function() { + var value = this.storage.dim, + times = { + from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), + to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) + }, + current_time = new Date().getHours(); - ImprovedTube.mini_player__mousedown_x = event.clientX; - ImprovedTube.mini_player__mousedown_y = event.clientY; - ImprovedTube.mini_player__width = bcr.width; - ImprovedTube.mini_player__height = bcr.height; + if (times.to < times.from && current_time > times.from && current_time < 24) { + times.to += 24; + } else if (times.to < times.from && current_time < times.to) { + times.from = 0; + }; - ImprovedTube.mini_player__player_offset_x = event.clientX - bcr.x; - ImprovedTube.mini_player__player_offset_y = event.clientY - bcr.y; + if ( + this.isset(value) && value !== 0 && value !== '0' && + (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) + ) { + if (!document.querySelector('#it-dim')) { + var container = document.createElement('div'); - ImprovedTube.mini_player__max_x = document.body.offsetWidth - ImprovedTube.mini_player__width; - ImprovedTube.mini_player__max_y = window.innerHeight - ImprovedTube.mini_player__height; + container.id = 'it-dim'; + container.style.opacity = parseInt(Number(value)) / 100 || 0; - window.addEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.addEventListener('mousemove', ImprovedTube.mini_player__mousemove); + document.documentElement.appendChild(container); + } else { + document.querySelector('#it-dim').style.opacity = parseInt(Number(value)) / 100 || 0; + } + + if (!document.querySelector('#it-dim-player')) { + var container = document.createElement('div'); + + container.id = 'it-dim-player'; + container.style.opacity = parseInt(Number(value)) / 100 || 0; + + if (document.querySelector('.html5-video-player')) { + document.querySelector('.html5-video-player').appendChild(container); + } + } else { + document.querySelector('#it-dim-player').style.opacity = parseInt(Number(value)) / 100 || 0; + } + } else { + if (document.querySelector('#it-dim')) { + document.querySelector('#it-dim').remove(); + } + + if (document.querySelector('#it-dim-player')) { + document.querySelector('#it-dim-player').remove(); + } + } }; -ImprovedTube.mini_player__mouseup = function() { - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - strg.x = ImprovedTube.mini_player__x; - strg.y = ImprovedTube.mini_player__y; +/*------------------------------------------------------------------------------ +3.4 FONT +------------------------------------------------------------------------------*/ - localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); +ImprovedTube.font = function() { + if (this.storage.font) { + if (this.storage.font !== 'Default') { + if (!document.querySelector('.it-font-family')) { + var link = document.createElement('link'); - window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); + link.rel = 'stylesheet'; - ImprovedTube.mini_player__move = false; + document.documentElement.appendChild(link); + } else { + var link = document.querySelector('.it-font-family'); + } - setTimeout(function() { - window.removeEventListener('click', ImprovedTube.mini_player__click, true); - }); -}; + link.href = '//fonts.googleapis.com/css2?family=' + this.storage.font; -ImprovedTube.mini_player__click = function(event) { - event.stopPropagation(); - event.preventDefault(); + document.documentElement.style.fontFamily = this.storage.font.replace(/\+/g, ' '); + } + } }; -ImprovedTube.mini_player__mousemove = function(event) { - if ( - event.clientX < ImprovedTube.mini_player__mousedown_x - 5 || - event.clientY < ImprovedTube.mini_player__mousedown_y - 5 || - event.clientX > ImprovedTube.mini_player__mousedown_x + 5 || - event.clientY > ImprovedTube.mini_player__mousedown_y + 5 - ) { - var x = event.clientX - ImprovedTube.mini_player__player_offset_x, - y = event.clientY - ImprovedTube.mini_player__player_offset_y; - if (ImprovedTube.mini_player__move === false) { - ImprovedTube.mini_player__move = true; +/*------------------------------------------------------------------------------ +3.5 THEMES +------------------------------------------------------------------------------*/ - window.addEventListener('click', ImprovedTube.mini_player__click, true); - } +ImprovedTube.themes = function() { + var times = { + from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), + to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) + }, + current_time = new Date().getHours(); - if (x < 0) { - x = 0; - } + if (times.to < times.from && current_time > times.from && current_time < 24) { + times.to += 24; + } else if (times.to < times.from && current_time < times.to) { + times.from = 0; + } - if (y < 0) { - y = 0; - } + if ( + (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) && + ( + this.isset(ImprovedTube.storage.default_dark_theme) && ImprovedTube.storage.default_dark_theme !== false || + this.isset(ImprovedTube.storage.night_theme) && ImprovedTube.storage.night_theme !== false || + this.isset(ImprovedTube.storage.dawn_theme) && ImprovedTube.storage.dawn_theme !== false || + this.isset(ImprovedTube.storage.sunset_theme) && ImprovedTube.storage.sunset_theme !== false || + this.isset(ImprovedTube.storage.desert_theme) && ImprovedTube.storage.desert_theme !== false || + this.isset(ImprovedTube.storage.plain_theme) && ImprovedTube.storage.plain_theme !== false || + this.isset(ImprovedTube.storage.black_theme) && ImprovedTube.storage.black_theme !== false + ) + ) { + var PREF_OLD = this.getParams(this.getCookieValueByName('PREF')), + PREF = this.getParams(this.getCookieValueByName('PREF')), + result = ''; - if (x > ImprovedTube.mini_player__max_x) { - x = ImprovedTube.mini_player__max_x; + if (!this.isset(PREF.f6) || this.isset(PREF.f6) && PREF.f6.length !== 3) { + PREF.f6 = '400'; + } else if (PREF.f6.length === 3) { + PREF.f6 = '4' + PREF.f6.substr(1); } - if (y > ImprovedTube.mini_player__max_y) { - y = ImprovedTube.mini_player__max_y; + for (var i in PREF) { + result += i + '=' + PREF[i] + '&'; } - ImprovedTube.mini_player__x = x; - ImprovedTube.mini_player__y = y; + this.setCookie('PREF', result.slice(0, -1)); - ImprovedTube.mini_player__setPosition(x, y); + document.documentElement.setAttribute('it-theme', 'true'); + } else { + document.documentElement.removeAttribute('it-theme'); } }; -ImprovedTube.mini_player__cursorUpdate = function(event) { - var x = event.clientX, - y = event.clientY, - c = ImprovedTube.mini_player__cursor; - if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset - ) { - c = 'ne-resize'; - } else if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'se-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'sw-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset - ) { - c = 'nw-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset - ) { - c = 'n-resize'; - } else if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'e-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 's-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'w-resize'; - } else { - c = ''; - } - - if (ImprovedTube.mini_player__cursor !== c) { - ImprovedTube.mini_player__cursor = c; - - document.documentElement.setAttribute('it-mini-player-cursor', ImprovedTube.mini_player__cursor); - } -}; +/*------------------------------------------------------------------------------ +4.0 PLAYER +------------------------------------------------------------------------------*/ -ImprovedTube.mini_player__resize = function(event) { - if (ImprovedTube.mini_player__cursor !== '') { - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - window.addEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); - window.addEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); +/*------------------------------------------------------------------------------ +4.1 AUTOPLAY +------------------------------------------------------------------------------*/ - return true; +ImprovedTube.autoplay = function(video) { + if (ImprovedTube.video_url !== location.href) { + ImprovedTube.allow_autoplay = false; } -}; -ImprovedTube.mini_player__resize_mouseMove = function(event) { - if (ImprovedTube.mini_player__cursor === 'n-resize') { - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); - } else if (ImprovedTube.mini_player__cursor === 'e-resize') { - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__height); - } else if (ImprovedTube.mini_player__cursor === 's-resize') { - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, event.clientY - ImprovedTube.mini_player__y); - } else if (ImprovedTube.mini_player__cursor === 'w-resize') { - ImprovedTube.mini_player__setPosition(event.clientX, ImprovedTube.mini_player__y); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__height); - } else if (ImprovedTube.mini_player__cursor === 'ne-resize') { - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); - } else if (ImprovedTube.mini_player__cursor === 'se-resize') { - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, event.clientY - ImprovedTube.mini_player__y); - } else if (ImprovedTube.mini_player__cursor === 'sw-resize') { - ImprovedTube.mini_player__setPosition(event.clientX, ImprovedTube.mini_player__y); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, event.clientY - ImprovedTube.mini_player__y); - } else if (ImprovedTube.mini_player__cursor === 'nw-resize') { - ImprovedTube.mini_player__setPosition(event.clientX, event.clientY); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); + if ( + ( + (/\/watch\?/.test(location.href) && !/list=/.test(location.href) && ImprovedTube.storage.player_autoplay === false) || + (/\/watch\?/.test(location.href) && /list=/.test(location.href) && ImprovedTube.storage.playlist_autoplay === false) || + (/\/(channel|user|c)\//.test(location.href) && ImprovedTube.storage.channel_trailer_autoplay === false) + ) === true && + ImprovedTube.allow_autoplay === false && + video.parentNode.parentNode.classList.contains('ad-showing') === false + ) { + setTimeout(function() { + video.parentNode.parentNode.pauseVideo(); + }); } }; -ImprovedTube.mini_player__resize_mouseUp = function(event) { - var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); - - ImprovedTube.mini_player__x = bcr.left; - ImprovedTube.mini_player__y = bcr.top; - ImprovedTube.mini_player__width = bcr.width; - ImprovedTube.mini_player__height = bcr.height; - window.dispatchEvent(new Event('resize')); +/*------------------------------------------------------------------------------ +4.2 AUTOPAUSE WHEN SWITCHING TABS +------------------------------------------------------------------------------*/ - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; +ImprovedTube.playerAutopauseWhenSwitchingTabs = function() { + var video = document.querySelector('.html5-video-player video'); - strg.width = ImprovedTube.mini_player__width; - strg.height = ImprovedTube.mini_player__height; + if (this.storage.player_autopause_when_switching_tabs === true && video) { - localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); + if (this.focus === false && video.paused === false) { + video.pause(); - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - window.removeEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); - window.removeEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); + this.played_before_blur = true; + } else if (this.focus === true && this.played_before_blur === true) { + video.play(); + } + } }; -ImprovedTube.mini_player = function() { - ImprovedTube.mini_player__element = document.querySelector('.html5-video-player'); - if (ImprovedTube.storage.mini_player === true) { - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; +/*------------------------------------------------------------------------------ +4.3 FORCED PLAYBACK SPEED +------------------------------------------------------------------------------*/ - ImprovedTube.mini_player__x = ImprovedTube.isset(strg.x) ? strg.x : 16; - ImprovedTube.mini_player__y = ImprovedTube.isset(strg.y) ? strg.y : 16; - ImprovedTube.mini_player__width = strg.width || 200; - ImprovedTube.mini_player__height = strg.height || 150; +ImprovedTube.playerPlaybackSpeed = function(node) { + var option = Number(ImprovedTube.storage.player_playback_speed), + player = document.querySelector('.html5-video-player'), + is_live = false; - window.addEventListener('scroll', ImprovedTube.mini_player__scroll); - } else { - ImprovedTube.mini_player__mode = false; - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); - ImprovedTube.mini_player__move = false; - ImprovedTube.mini_player__setPosition(0, 0); - ImprovedTube.mini_player__element.style.width = ''; - ImprovedTube.mini_player__element.style.height = ''; + if (player && player.getVideoData && player.getVideoData().isLive) { + is_live = true; + } - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); + if (ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) && ImprovedTube.storage.player_forced_playback_speed === true) { + try { + if (window.location.href.indexOf('music') === -1 && !is_live) { + document.querySelector('.html5-video-player video').playbackRate = option; + } else { + document.querySelector('.html5-video-player video').playbackRate = 1; + } + } catch (err) {} + } +}; - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - window.dispatchEvent(new Event('resize')); +/*------------------------------------------------------------------------------ +4.4 SUBTITLES +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitles = function() { - window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); - window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.removeEventListener('click', ImprovedTube.mini_player__click); - window.removeEventListener('scroll', ImprovedTube.mini_player__scroll); - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - } }; /*------------------------------------------------------------------------------ -4.8 AUTO FULLSCREEN +4.5 UP NEXT AUTOPLAY ------------------------------------------------------------------------------*/ -ImprovedTube.playerAutofullscreen = function(node) { - if (!node) { - node = document.querySelector('.html5-video-player'); - } +ImprovedTube.upNextAutoplay = function() { + var option = this.storage.up_next_autoplay; - if ( - this.storage.player_autofullscreen === true && - !document.fullscreenElement && - document.documentElement.getAttribute('it-page-type') === 'video' && - node.toggleFullscreen - ) { - node.toggleFullscreen(); + if (this.isset(option)) { + var toggle = document.querySelector('.ytp-autonav-toggle-button'), + attribute = toggle.getAttribute('aria-checked') === 'true'; + + if (toggle) { + if (option !== attribute) { + toggle.click(); + } + } } }; /*------------------------------------------------------------------------------ -4.9 QUALITY +4.6 ADS ------------------------------------------------------------------------------*/ -ImprovedTube.playerQuality = function(node) { - var quality = ImprovedTube.storage.player_quality; - - if (!node) { - node = document.querySelector('.html5-video-player'); +ImprovedTube.playerAds = function() { + if (ImprovedTube.adInterval) { + clearInterval(ImprovedTube.adInterval); } - if (node.getAvailableQualityLevels) { - var available_quality_levels = node.getAvailableQualityLevels(); + if (ImprovedTube.storage.player_ads === 'block_all') { + ImprovedTube.adInterval = setInterval(function() { + var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); - if (quality && quality !== 'auto') { - if (available_quality_levels.indexOf(quality) === -1) { - quality = available_quality_levels[0]; + if (button) { + button.click(); + + clearInterval(ImprovedTube.adInterval); } + }, 50); + } else if (ImprovedTube.storage.player_ads === 'subscribed_channels') { + ImprovedTube.adInterval = setInterval(function() { + var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); - node.setPlaybackQualityRange(quality); - node.setPlaybackQuality(quality); - } + if (button && !document.querySelector('#meta paper-button[subscribed]')) { + button.click(); + + clearInterval(ImprovedTube.adInterval); + } + }, 50); } }; /*------------------------------------------------------------------------------ -4.10 CODEC H.264 +4.7 CUSTOM MINI-PLAYER ------------------------------------------------------------------------------*/ -ImprovedTube.playerH264 = function() { - if (this.storage.player_h264 === true) { - var canPlayType = HTMLMediaElement.prototype.canPlayType; - - function overwrite(self, callback, mime) { - if (/webm|vp8|vp9/.test(mime)) { - return false; - } else { - return callback.call(self, mime); - } - } +ImprovedTube.mini_player__setPosition = function(x, y) { + ImprovedTube.mini_player__element.style.transform = 'translate3d(' + x + 'px, ' + y + 'px, 0)'; +}; - if (window.MediaSource) { - var isTypeSupported = window.MediaSource.isTypeSupported; +ImprovedTube.mini_player__setSize = function(width, height) { + ImprovedTube.mini_player__element.style.width = width + 'px'; + ImprovedTube.mini_player__element.style.height = height + 'px'; +}; - window.MediaSource.isTypeSupported = function(mime) { - return overwrite(this, isTypeSupported, mime); - }; - } +ImprovedTube.mini_player__scroll = function() { + if (window.scrollY >= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === false) { + ImprovedTube.mini_player__mode = true; - HTMLMediaElement.prototype.canPlayType = function(mime) { - var status = overwrite(this, canPlayType, mime); + ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; + ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; - if (!status) { - return ''; - } else { - return status; - } - }; - } -}; + ImprovedTube.mini_player__element.classList.add('it-mini-player'); + ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); + ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); -/*------------------------------------------------------------------------------ -4.11 ALLOW 60FPS -------------------------------------------------------------------------------*/ + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); -ImprovedTube.player60fps = function() { - if (this.storage.player_60fps === false) { - var canPlayType = HTMLMediaElement.prototype.canPlayType; + ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); - function overwrite(self, callback, mime) { - var match = /framerate=(\d+)/.exec(mime); + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); - if (match && match[1] > 30) { - return ''; - } else { - return callback.call(self, mime); - } - } + window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); + window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - if (window.MediaSource) { - var isTypeSupported = window.MediaSource.isTypeSupported; + window.dispatchEvent(new Event('resize')); + } else if (window.scrollY < 256 && ImprovedTube.mini_player__mode === true || ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === true) { + ImprovedTube.mini_player__mode = false; + ImprovedTube.mini_player__element.classList.remove('it-mini-player'); + ImprovedTube.mini_player__move = false; + ImprovedTube.mini_player__setPosition(0, 0); + ImprovedTube.mini_player__element.style.width = ''; + ImprovedTube.mini_player__element.style.height = ''; - window.MediaSource.isTypeSupported = function(mime) { - return overwrite(this, isTypeSupported, mime); - }; - } + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); - HTMLMediaElement.prototype.canPlayType = function(mime) { - var status = overwrite(this, canPlayType, mime); + window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); + window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - if (!status) { - return ''; - } else { - return status; - } - }; + window.dispatchEvent(new Event('resize')); } }; +ImprovedTube.mini_player__mousedown = function(event) { + if (event.button !== 0) { + return false; + } -/*------------------------------------------------------------------------------ -4.12 FORCED VOLUME -------------------------------------------------------------------------------*/ - -ImprovedTube.playerVolume = function(node) { - if (!node) { - node = document.querySelector('.html5-video-player'); + if (ImprovedTube.mini_player__resize() === true) { + return false; } - if (node && ImprovedTube.storage.player_forced_volume === true && ImprovedTube.initialVideoUpdateDone == false ) { - var volume = Number(ImprovedTube.storage.player_volume); + var is_player = false, + path = event.composedPath(); - if (!ImprovedTube.isset(volume)) { - volume = 1; + for (var i = 0, l = path.length; i < l; i++) { + if ((path[i].classList && path[i].classList.contains('it-mini-player')) === true) { + is_player = true; } - - node.setVolume(volume); } -}; - - -/*------------------------------------------------------------------------------ -4.13 LOUDNESS NORMALIZATION -------------------------------------------------------------------------------*/ - -ImprovedTube.onvolumechange = function(event) { - if (document.querySelector('.ytp-volume-panel') && ImprovedTube.storage.player_loudness_normalization === false) { - var volume = Number(document.querySelector('.ytp-volume-panel').getAttribute('aria-valuenow')); - this.volume = volume / 100; + if (is_player === false) { + return false; } -}; -ImprovedTube.playerLoudnessNormalization = function() { - var video = document.querySelector('video'); + event.preventDefault(); - if (video) { - video.removeEventListener('volumechange', ImprovedTube.onvolumechange); - video.addEventListener('volumechange', ImprovedTube.onvolumechange); - } + var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); - if (ImprovedTube.storage.player_loudness_normalization === false) { - try { - var local_storage = localStorage['yt-player-volume']; + ImprovedTube.mini_player__mousedown_x = event.clientX; + ImprovedTube.mini_player__mousedown_y = event.clientY; + ImprovedTube.mini_player__width = bcr.width; + ImprovedTube.mini_player__height = bcr.height; - if (ImprovedTube.isset(Number(ImprovedTube.storage.player_volume)) && ImprovedTube.storage.player_forced_volume === true) { + ImprovedTube.mini_player__player_offset_x = event.clientX - bcr.x; + ImprovedTube.mini_player__player_offset_y = event.clientY - bcr.y; - } else if (local_storage) { - local_storage = JSON.parse(JSON.parse(local_storage).data); - local_storage = Number(local_storage.volume); + ImprovedTube.mini_player__max_x = document.body.offsetWidth - ImprovedTube.mini_player__width; + ImprovedTube.mini_player__max_y = window.innerHeight - ImprovedTube.mini_player__height; - video.volume = local_storage / 100; - } else { - video.volume = 100; - } - } catch (err) {} - } + window.addEventListener('mouseup', ImprovedTube.mini_player__mouseup); + window.addEventListener('mousemove', ImprovedTube.mini_player__mousemove); }; +ImprovedTube.mini_player__mouseup = function() { + var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; -/*------------------------------------------------------------------------------ -4.14 SCREENSHOT -------------------------------------------------------------------------------*/ + strg.x = ImprovedTube.mini_player__x; + strg.y = ImprovedTube.mini_player__y; -ImprovedTube.screenshot = function() { - document.body.style.opacity = '0'; + localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - var video = document.querySelector('.html5-video-player video'), - cvs = document.createElement('canvas'), - ctx = cvs.getContext('2d'), - old_w = video.offsetWidth, - old_h = video.offsetHeight; + window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); + window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); - video.style.width = video.videoWidth + 'px'; - video.style.height = video.videoHeight + 'px'; + ImprovedTube.mini_player__move = false; setTimeout(function() { - cvs.width = video.videoWidth; - cvs.height = video.videoHeight; + window.removeEventListener('click', ImprovedTube.mini_player__click, true); + }); +}; - ctx.drawImage(video, 0, 0, cvs.width, cvs.height); +ImprovedTube.mini_player__click = function(event) { + event.stopPropagation(); + event.preventDefault(); +}; - cvs.toBlob(function(blob) { - if (ImprovedTube.storage.player_screenshot_save_as !== 'clipboard') { - var a = document.createElement('a'); +ImprovedTube.mini_player__mousemove = function(event) { + if ( + event.clientX < ImprovedTube.mini_player__mousedown_x - 5 || + event.clientY < ImprovedTube.mini_player__mousedown_y - 5 || + event.clientX > ImprovedTube.mini_player__mousedown_x + 5 || + event.clientY > ImprovedTube.mini_player__mousedown_y + 5 + ) { + var x = event.clientX - ImprovedTube.mini_player__player_offset_x, + y = event.clientY - ImprovedTube.mini_player__player_offset_y; - a.href = URL.createObjectURL(blob); + if (ImprovedTube.mini_player__move === false) { + ImprovedTube.mini_player__move = true; - a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '-' + new Date(document.querySelector('.html5-video-player').getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; + window.addEventListener('click', ImprovedTube.mini_player__click, true); + } - a.click(); - } else { - try { - navigator.clipboard.write([ - new ClipboardItem({ - 'image/png': blob - }) - ]); - } catch (error) {} - } + if (x < 0) { + x = 0; + } - setTimeout(function() { - video.style.width = old_w + 'px'; - video.style.height = old_h + 'px'; + if (y < 0) { + y = 0; + } - document.body.style.opacity = '1'; - }, 100); - }); - }, 100); -}; + if (x > ImprovedTube.mini_player__max_x) { + x = ImprovedTube.mini_player__max_x; + } -ImprovedTube.playerScreenshotButton = function() { - if (this.storage.player_screenshot_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); + if (y > ImprovedTube.mini_player__max_y) { + y = ImprovedTube.mini_player__max_y; } - this.createPlayerButton(node, { - id: 'it-screenshot-button', - html: '', - opacity: 1, - onclick: ImprovedTube.screenshot, - title: 'Screenshot' - }); - } else if (document.querySelector('.it-screenshot-button')) { - document.querySelector('.it-screenshot-button').remove(); + ImprovedTube.mini_player__x = x; + ImprovedTube.mini_player__y = y; + + ImprovedTube.mini_player__setPosition(x, y); } }; +ImprovedTube.mini_player__cursorUpdate = function(event) { + var x = event.clientX, + y = event.clientY, + c = ImprovedTube.mini_player__cursor; -/*------------------------------------------------------------------------------ -4.15 REPEAT -------------------------------------------------------------------------------*/ - -ImprovedTube.playerRepeatButton = function(node) { - if (this.storage.player_repeat_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } + if ( + x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset + ) { + c = 'ne-resize'; + } else if ( + x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'se-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && + y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'sw-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset + ) { + c = 'nw-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset + ) { + c = 'n-resize'; + } else if ( + x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'e-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 's-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'w-resize'; + } else { + c = ''; + } - this.createPlayerButton(node, { - id: 'it-repeat-button', - html: '', - onclick: function() { - if (node.querySelector('video').hasAttribute('loop')) { - node.querySelector('video').removeAttribute('loop'); - this.style.opacity = '.5'; - } else if (!/ad-showing/.test(player.className)) { - node.querySelector('video').setAttribute('loop', ''); - this.style.opacity = '1'; - } - }, - title: 'Repeat' - }); + if (ImprovedTube.mini_player__cursor !== c) { + ImprovedTube.mini_player__cursor = c; - if (this.storage.player_always_repeat === true) { - setTimeout(function() { - node.querySelector('video').setAttribute('loop', ''); - node.querySelector('#it-repeat-button').style.opacity = '1'; - }, 100); - } - } else if (document.querySelector('.it-repeat-button')) { - document.querySelector('.it-repeat-button').remove(); + document.documentElement.setAttribute('it-mini-player-cursor', ImprovedTube.mini_player__cursor); } }; +ImprovedTube.mini_player__resize = function(event) { + if (ImprovedTube.mini_player__cursor !== '') { + window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); + window.addEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); + window.addEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); -/*------------------------------------------------------------------------------ -4.16 ROTATE -------------------------------------------------------------------------------*/ + return true; + } +}; -ImprovedTube.playerRotateButton = function() { - if (this.storage.player_rotate_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } +ImprovedTube.mini_player__resize_mouseMove = function(event) { + if (ImprovedTube.mini_player__cursor === 'n-resize') { + ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); + } else if (ImprovedTube.mini_player__cursor === 'e-resize') { + ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__height); + } else if (ImprovedTube.mini_player__cursor === 's-resize') { + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, event.clientY - ImprovedTube.mini_player__y); + } else if (ImprovedTube.mini_player__cursor === 'w-resize') { + ImprovedTube.mini_player__setPosition(event.clientX, ImprovedTube.mini_player__y); + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__height); + } else if (ImprovedTube.mini_player__cursor === 'ne-resize') { + ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); + ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); + } else if (ImprovedTube.mini_player__cursor === 'se-resize') { + ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, event.clientY - ImprovedTube.mini_player__y); + } else if (ImprovedTube.mini_player__cursor === 'sw-resize') { + ImprovedTube.mini_player__setPosition(event.clientX, ImprovedTube.mini_player__y); + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, event.clientY - ImprovedTube.mini_player__y); + } else if (ImprovedTube.mini_player__cursor === 'nw-resize') { + ImprovedTube.mini_player__setPosition(event.clientX, event.clientY); + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); + } +}; - this.createPlayerButton(node, { - id: 'it-rotate-button', - html: '', - opacity: 1, - onclick: function() { - var video = node.querySelector('video'), - player = node, - transform = '', - rotate = (document.querySelector('.it-rotate-styles') && document.querySelector('.it-rotate-styles').textContent.match(/rotate\([0-9.]+deg\)/g) || [''])[0]; - rotate = Number((rotate.match(/[0-9.]+/g) || [])[0]) || 0; +ImprovedTube.mini_player__resize_mouseUp = function(event) { + var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); - var nextRotate = (rotate < 270 && rotate % 90 == 0) ? rotate + 90 : 0; + ImprovedTube.mini_player__x = bcr.left; + ImprovedTube.mini_player__y = bcr.top; + ImprovedTube.mini_player__width = bcr.width; + ImprovedTube.mini_player__height = bcr.height; - transform += 'rotate(' + nextRotate + 'deg)'; + window.dispatchEvent(new Event('resize')); - if (nextRotate == 90 || nextRotate == 270) { - var isVerticalVideo = video.videoHeight > video.videoWidth; + var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - var playerLongSide = isVerticalVideo ? player.clientWidth : player.clientHeight; - var playerShortSide = isVerticalVideo ? player.clientHeight : player.clientWidth; + strg.width = ImprovedTube.mini_player__width; + strg.height = ImprovedTube.mini_player__height; - var videoScaleForPlayerSize = playerLongSide / playerShortSide; + localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - transform += ' scale(' + videoScaleForPlayerSize + ')'; - } - //video.style.transform = transform; - if (!document.querySelector('.it-rotate-styles')) { - var styles = document.createElement('style'); + window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); + window.removeEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); + window.removeEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); +}; - styles.className = 'it-rotate-styles'; +ImprovedTube.mini_player = function() { + ImprovedTube.mini_player__element = document.querySelector('.html5-video-player'); - document.body.appendChild(styles); - } + if (ImprovedTube.storage.mini_player === true) { + var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - document.querySelector('.it-rotate-styles').textContent = '.html5-video-player:not(it-mini-player) video {transform:' + transform + '}'; - }, - title: 'Rotate' - }); - } else if (document.querySelector('.it-rotate-button')) { - document.querySelector('.it-rotate-button').remove(); - document.querySelector('.it-rotate-styles').remove(); - } -}; + ImprovedTube.mini_player__x = ImprovedTube.isset(strg.x) ? strg.x : 16; + ImprovedTube.mini_player__y = ImprovedTube.isset(strg.y) ? strg.y : 16; + ImprovedTube.mini_player__width = strg.width || 200; + ImprovedTube.mini_player__height = strg.height || 150; + window.addEventListener('scroll', ImprovedTube.mini_player__scroll); + } else { + ImprovedTube.mini_player__mode = false; + ImprovedTube.mini_player__element.classList.remove('it-mini-player'); + ImprovedTube.mini_player__move = false; + ImprovedTube.mini_player__setPosition(0, 0); + ImprovedTube.mini_player__element.style.width = ''; + ImprovedTube.mini_player__element.style.height = ''; -/*------------------------------------------------------------------------------ -4.17 POPUP PLAYER -------------------------------------------------------------------------------*/ + ImprovedTube.mini_player__element.classList.remove('it-mini-player'); -ImprovedTube.playerPopupButton = function() { - if (this.storage.player_popup_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); - this.createPlayerButton(node, { - id: 'it-popup-player-button', - html: '', - opacity: 1, - onclick: function() { - node.pauseVideo(); + window.dispatchEvent(new Event('resize')); - window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(node.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + node.offsetWidth + ',height=' + node.offsetHeight); - }, - title: 'Popup' - }); - } else if (document.querySelector('.it-popup-player-button')) { - document.querySelector('.it-popup-player-button').remove(); + window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); + window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); + window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); + window.removeEventListener('click', ImprovedTube.mini_player__click); + window.removeEventListener('scroll', ImprovedTube.mini_player__scroll); + window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); } }; -/*------------------------------------------------------------------------------ -4.18 Force SDR -------------------------------------------------------------------------------*/ - -ImprovedTube.playerSDR = function() { - if (this.storage.player_SDR === true) { - Object.defineProperty(window.screen, 'pixelDepth', { - enumerable: true, - configurable: true, - value: 24 - }); - } -}; /*------------------------------------------------------------------------------ -4.19 Hide controls +4.8 AUTO FULLSCREEN ------------------------------------------------------------------------------*/ -ImprovedTube.playerControls = function() { +ImprovedTube.playerAutofullscreen = function(node) { if (!node) { - var node = document.querySelector('.html5-video-player'); + node = document.querySelector('.html5-video-player'); } - if (this.storage.player_hide_controls === true) { - node.hideControls(); - } else { - node.showControls(); - } -}; - -/*------------------------------------------------------------------------------ -5.0 PLAYLIST -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -5.1 UP NEXT AUTOPLAY -------------------------------------------------------------------------------*/ - -ImprovedTube.playlistUpNextAutoplay = function(event) { - if ( - ImprovedTube.getParam(location.href, 'list') && - ImprovedTube.storage.playlist_up_next_autoplay === false - ) { - event.preventDefault(); - event.stopPropagation(); + if ( + this.storage.player_autofullscreen === true && + !document.fullscreenElement && + document.documentElement.getAttribute('data-page-type') === 'video' && + node.toggleFullscreen + ) { + node.toggleFullscreen(); } }; /*------------------------------------------------------------------------------ -5.2 REVERSE +4.9 QUALITY ------------------------------------------------------------------------------*/ -ImprovedTube.playlistReversed = false; - -ImprovedTube.playlistReverse = function() { - if (this.storage.playlist_reverse === true) { - if (!document.querySelector('#it-reverse-playlist') && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #start-actions')) { - var button = document.createElement('button'); - - button.id = 'it-reverse-playlist'; - button.className = 'style-scope yt-icon-button'; - button.innerHTML = ''; +ImprovedTube.playerQuality = function(node) { + var quality = ImprovedTube.storage.player_quality; - button.addEventListener('click', function(event) { - var playlist_manager = document.querySelector('yt-playlist-manager'); + if (!node) { + node = document.querySelector('.html5-video-player'); + } - event.preventDefault(); - event.stopPropagation(); + if (node.getAvailableQualityLevels) { + var available_quality_levels = node.getAvailableQualityLevels(); - this.classList.toggle('active'); + if (quality && quality !== 'auto') { + if (available_quality_levels.indexOf(quality) === -1) { + quality = available_quality_levels[0]; + } - ImprovedTube.playlistReversed = !ImprovedTube.playlistReversed; + node.setPlaybackQualityRange(quality); + node.setPlaybackQuality(quality); + } + } +}; - setTimeout(updateNextButton, 500); - if (playlist_manager && playlist_manager.autoplayData) { - ImprovedTube.playlistAutoplayData = Object.assign({}, playlist_manager.autoplayData); - } +/*------------------------------------------------------------------------------ +4.10 CODEC H.264 +------------------------------------------------------------------------------*/ - ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); +ImprovedTube.playerH264 = function() { + if (this.storage.player_h264 === true) { + var canPlayType = HTMLMediaElement.prototype.canPlayType; + function overwrite(self, callback, mime) { + if (/webm|vp8|vp9/.test(mime)) { return false; - }, true); + } else { + return callback.call(self, mime); + } + } - document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #start-actions').appendChild(button); + if (window.MediaSource) { + var isTypeSupported = window.MediaSource.isTypeSupported; + + window.MediaSource.isTypeSupported = function(mime) { + return overwrite(this, isTypeSupported, mime); + }; } - function updateNextButton() { - var next_button = document.querySelector('.ytp-next-button'), - prev_button = document.querySelector('.ytp-prev-button'), - playlist_manager = document.querySelector('yt-playlist-manager'); + HTMLMediaElement.prototype.canPlayType = function(mime) { + var status = overwrite(this, canPlayType, mime); - if (playlist_manager) { - var prev_item = document.querySelector('#playlist [selected]').previousElementSibling || document.querySelector('#playlist ytd-playlist-panel-video-renderer:last-child'), - next_item = document.querySelector('#playlist [selected] + *') || document.querySelector('#playlist ytd-playlist-panel-video-renderer'), - prev_href = prev_item.querySelector('a').href, - next_href = next_item.querySelector('a').href; - - if (prev_button) { - prev_button.href = prev_href; - prev_button.dataset.preview = prev_item.querySelector('img').src; - prev_button.dataset.tooltipText = prev_item.querySelector('#video-title').innerText; + if (!status) { + return ''; + } else { + return status; + } + }; + } +}; - if (playlist_manager.autoplayData.sets[0].previousButtonVideo) { - playlist_manager.autoplayData.sets[0].previousButtonVideo.commandMetadata.webCommandMetadata.url = prev_href.replace(location.origin, ''); - playlist_manager.autoplayData.sets[0].previousButtonVideo.watchEndpoint.videoId = prev_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); - } - if (playlist_manager.autoplayData.sets[1].previousButtonVideo) { - playlist_manager.autoplayData.sets[1].previousButtonVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); - playlist_manager.autoplayData.sets[1].previousButtonVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); - } - } +/*------------------------------------------------------------------------------ +4.11 ALLOW 60FPS +------------------------------------------------------------------------------*/ - if (next_button) { - next_button.href = next_href; - next_button.dataset.preview = next_item.querySelector('img').src; - next_button.dataset.tooltipText = next_item.querySelector('#video-title').innerText; - - if (playlist_manager.autoplayData.sets[0].nextButtonVideo) { - playlist_manager.autoplayData.sets[0].nextButtonVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); - playlist_manager.autoplayData.sets[0].nextButtonVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); - } +ImprovedTube.player60fps = function() { + if (this.storage.player_60fps === false) { + var canPlayType = HTMLMediaElement.prototype.canPlayType; - if (playlist_manager.autoplayData.sets[1].nextButtonVideo) { - playlist_manager.autoplayData.sets[1].nextButtonVideo.commandMetadata.webCommandMetadata.url = prev_href.replace(location.origin, ''); - playlist_manager.autoplayData.sets[1].nextButtonVideo.watchEndpoint.videoId = prev_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); - } - } + function overwrite(self, callback, mime) { + var match = /framerate=(\d+)/.exec(mime); - playlist_manager.autoplayData.sets[0].autoplayVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); - playlist_manager.autoplayData.sets[0].autoplayVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); - playlist_manager.autoplayData.sets[1].autoplayVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); - playlist_manager.autoplayData.sets[1].autoplayVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); + if (match && match[1] > 30) { + return ''; + } else { + return callback.call(self, mime); } } - if (ImprovedTube.playlistReversed === true) { - setTimeout(function() { - ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); + if (window.MediaSource) { + var isTypeSupported = window.MediaSource.isTypeSupported; - setTimeout(updateNextButton, 1000); - }, 500); + window.MediaSource.isTypeSupported = function(mime) { + return overwrite(this, isTypeSupported, mime); + }; } + + HTMLMediaElement.prototype.canPlayType = function(mime) { + var status = overwrite(this, canPlayType, mime); + + if (!status) { + return ''; + } else { + return status; + } + }; } }; /*------------------------------------------------------------------------------ -5.3 REPEAT +4.12 FORCED VOLUME ------------------------------------------------------------------------------*/ -ImprovedTube.playlist_repeat_wait = false; - -ImprovedTube.playlistRepeat = function() { - if (this.isset(this.storage.playlist_repeat) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { - ImprovedTube.playlist_repeat_wait = setInterval(function() { - if ( - document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[0] || - document.querySelector('.playlist-nav-controls .toggle-loop') - ) { - clearInterval(ImprovedTube.playlist_repeat_wait); +ImprovedTube.playerVolume = function(node) { + if (!node) { + node = document.querySelector('.html5-video-player'); + } - ImprovedTube.playlist_repeat_wait = false; + if (node && ImprovedTube.storage.player_forced_volume === true && ImprovedTube.initialVideoUpdateDone == false ) { + var volume = Number(ImprovedTube.storage.player_volume); - var option = ImprovedTube.storage.playlist_repeat, - new_youtube_toggle = document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer'), - old_youtube_toggle = document.querySelector('.playlist-nav-controls .toggle-loop'); + if (!ImprovedTube.isset(volume)) { + volume = 1; + } - if (new_youtube_toggle[0] && (option === true && new_youtube_toggle[0].className.search('style-default-active') === -1 || option === 'disabled' && new_youtube_toggle[0].className.search('style-default-active') !== -1)) { - new_youtube_toggle[0].click(); - } else if (old_youtube_toggle && (option === true && old_youtube_toggle.className.search('yt-uix-button-toggled') === -1 || option === 'disabled' && old_youtube_toggle.className.search('yt-uix-button-toggled') !== -1)) { - old_youtube_toggle.click(); - } - } - }, 250); + node.setVolume(volume); } }; /*------------------------------------------------------------------------------ -5.4 SHUFFLE +4.13 LOUDNESS NORMALIZATION ------------------------------------------------------------------------------*/ -ImprovedTube.playlist_shuffle_wait = false; +ImprovedTube.onvolumechange = function(event) { + if (document.querySelector('.ytp-volume-panel') && ImprovedTube.storage.player_loudness_normalization === false) { + var volume = Number(document.querySelector('.ytp-volume-panel').getAttribute('aria-valuenow')); -ImprovedTube.playlistShuffle = function() { - if (this.isset(this.storage.playlist_shuffle) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { - ImprovedTube.playlist_shuffle_wait = setInterval(function() { - if ( - document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[1] || - document.querySelector('.playlist-nav-controls .shuffle-playlist') - ) { - clearInterval(ImprovedTube.playlist_shuffle_wait); + this.volume = volume / 100; + } +}; - ImprovedTube.playlist_shuffle_wait = false; +ImprovedTube.playerLoudnessNormalization = function() { + var video = document.querySelector('video'); - var option = ImprovedTube.storage.playlist_shuffle, - new_youtube_toggle = document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer'), - old_youtube_toggle = document.querySelector('.playlist-nav-controls .shuffle-playlist'); + if (video) { + video.removeEventListener('volumechange', ImprovedTube.onvolumechange); + video.addEventListener('volumechange', ImprovedTube.onvolumechange); + } - if (new_youtube_toggle[1] && (option === true && new_youtube_toggle[1].className.search('style-default-active') === -1 || option === 'disabled' && new_youtube_toggle[1].className.search('style-default-active') !== -1)) { - new_youtube_toggle[1].click(); - } else if (old_youtube_toggle && (option === true && old_youtube_toggle.className.search('yt-uix-button-toggled') === -1 || option === 'disabled' && old_youtube_toggle.className.search('yt-uix-button-toggled') !== -1)) { - old_youtube_toggle.click(); - } + if (ImprovedTube.storage.player_loudness_normalization === false) { + try { + var local_storage = localStorage['yt-player-volume']; + + if (ImprovedTube.isset(Number(ImprovedTube.storage.player_volume)) && ImprovedTube.storage.player_forced_volume === true) { + + } else if (local_storage) { + local_storage = JSON.parse(JSON.parse(local_storage).data); + local_storage = Number(local_storage.volume); + + video.volume = local_storage / 100; + } else { + video.volume = 100; } - }, 250); + } catch (err) {} } }; /*------------------------------------------------------------------------------ -6.0 CHANNEL -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -6.1 DEFAULT CHANNEL TAB +4.14 SCREENSHOT ------------------------------------------------------------------------------*/ -ImprovedTube.channelDefaultTab = function() { - if (this.storage.channel_default_tab && this.storage.channel_default_tab !== '/') { - var value = this.storage.channel_default_tab, - node_list = document.querySelectorAll( - '*:not(#contenteditable-root) > a[href*="user"], ' + - '*:not(#contenteditable-root) > a[href*="channel"], ' + - '*:not(#contenteditable-root) > a[href*="/c/"]' - ); - - for (var i = 0, l = node_list.length; i < l; i++) { - var node = node_list[i]; +ImprovedTube.screenshot = function() { + document.body.style.opacity = '0'; - if (!node.getAttribute('it-origin') || - node.hasAttribute('it-origin') && - node.getAttribute('it-origin').replace(/\/(home|videos|playlists)+$/g, '') != node.href.replace(/\/(home|videos|playlists)+$/g, '') - ) { - node.setAttribute('it-origin', node.href); - } + var video = document.querySelector('.html5-video-player video'), + cvs = document.createElement('canvas'), + ctx = cvs.getContext('2d'), + old_w = video.offsetWidth, + old_h = video.offsetHeight; - node.href = node.getAttribute('it-origin') + value; + video.style.width = video.videoWidth + 'px'; + video.style.height = video.videoHeight + 'px'; - function click(event) { - event.stopPropagation(); + setTimeout(function() { + cvs.width = video.videoWidth; + cvs.height = video.videoHeight; + + ctx.drawImage(video, 0, 0, cvs.width, cvs.height); + + cvs.toBlob(function(blob) { + if (ImprovedTube.storage.player_screenshot_save_as !== 'clipboard') { + var a = document.createElement('a'); + + a.href = URL.createObjectURL(blob); + + a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '-' + new Date(document.querySelector('.html5-video-player').getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; + + a.click(); + } else { + try { + navigator.clipboard.write([ + new ClipboardItem({ + 'image/png': blob + }) + ]); + } catch (error) {} } - node.addEventListener('click', click, true); - } - } else if (this.storage.channel_default_tab) { - var node_list = document.querySelectorAll('a[href*="user"], a[href*="channel"], a[href*="/c/"]'); + setTimeout(function() { + video.style.width = old_w + 'px'; + video.style.height = old_h + 'px'; - for (var i = 0, l = node_list.length; i < l; i++) { - node_list[i].href = node_list[i].getAttribute('it-origin'); + document.body.style.opacity = '1'; + }, 100); + }); + }, 100); +}; + +ImprovedTube.playerScreenshotButton = function() { + if (this.storage.player_screenshot_button === true) { + if (!node) { + var node = document.querySelector('.html5-video-player'); } + + this.createPlayerButton(node, { + id: 'it-screenshot-button', + html: '', + opacity: 1, + onclick: ImprovedTube.screenshot, + title: 'Screenshot' + }); + } else if (document.querySelector('.it-screenshot-button')) { + document.querySelector('.it-screenshot-button').remove(); } }; /*------------------------------------------------------------------------------ -7.0 SHORTCUTS +4.15 REPEAT ------------------------------------------------------------------------------*/ -ImprovedTube.shortcuts = function() { - var self = this, - keys = {}, - wheel = 0, - hover = false, - status_timer; - - function showStatus(player, volume) { - if (!player.querySelector('#it-status')) { - var element = document.createElement('div'); +ImprovedTube.playerRepeatButton = function(node) { + if (this.storage.player_repeat_button === true) { + if (!node) { + var node = document.querySelector('.html5-video-player'); + } - element.id = 'it-status'; - element.innerHTML = volume; + this.createPlayerButton(node, { + id: 'it-repeat-button', + html: '', + onclick: function() { + if (node.querySelector('video').hasAttribute('loop')) { + node.querySelector('video').removeAttribute('loop'); + this.style.opacity = '.5'; + } else if (!/ad-showing/.test(player.className)) { + node.querySelector('video').setAttribute('loop', ''); + this.style.opacity = '1'; + } + }, + title: 'Repeat' + }); - document.querySelector('.html5-video-container').appendChild(element); - } else { - player.querySelector('#it-status').innerHTML = volume; + if (this.storage.player_always_repeat === true) { + setTimeout(function() { + node.querySelector('video').setAttribute('loop', ''); + node.querySelector('#it-repeat-button').style.opacity = '1'; + }, 100); } + } else if (document.querySelector('.it-repeat-button')) { + document.querySelector('.it-repeat-button').remove(); + } +}; - if (status_timer) { - clearTimeout(status_timer); - } - status_timer = setTimeout(function() { - if (player.querySelector('#it-status')) { - player.querySelector('#it-status').remove(); - } - }, 500); - } +/*------------------------------------------------------------------------------ +4.16 ROTATE +------------------------------------------------------------------------------*/ - function start(type = 'keys') { - if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || event.target.isContentEditable) { - return false; +ImprovedTube.playerRotateButton = function() { + if (this.storage.player_rotate_button === true) { + if (!node) { + var node = document.querySelector('.html5-video-player'); } - var features = { - shortcut_auto: function() { - var player = document.querySelector('#movie_player'); + this.createPlayerButton(node, { + id: 'it-rotate-button', + html: '', + opacity: 1, + onclick: function() { + var video = node.querySelector('video'), + player = node, + transform = '', + rotate = (document.querySelector('.it-rotate-styles') && document.querySelector('.it-rotate-styles').textContent.match(/rotate\([0-9.]+deg\)/g) || [''])[0]; + rotate = Number((rotate.match(/[0-9.]+/g) || [])[0]) || 0; - if (player) { - player.setPlaybackQualityRange('auto'); - player.setPlaybackQuality('auto'); - } - }, - shortcut_240p: function() { - var player = document.querySelector('#movie_player'); + var nextRotate = (rotate < 270 && rotate % 90 == 0) ? rotate + 90 : 0; - if (player) { - player.setPlaybackQualityRange('small'); - player.setPlaybackQuality('small'); - } - }, - shortcut_360p: function() { - var player = document.querySelector('#movie_player'); + transform += 'rotate(' + nextRotate + 'deg)'; - if (player) { - player.setPlaybackQualityRange('medium'); - player.setPlaybackQuality('medium'); - } - }, - shortcut_480p: function() { - var player = document.querySelector('#movie_player'); + if (nextRotate == 90 || nextRotate == 270) { + var isVerticalVideo = video.videoHeight > video.videoWidth; - if (player) { - player.setPlaybackQualityRange('large'); - player.setPlaybackQuality('large'); - } - }, - shortcut_720p: function() { - var player = document.querySelector('#movie_player'); + var playerLongSide = isVerticalVideo ? player.clientWidth : player.clientHeight; + var playerShortSide = isVerticalVideo ? player.clientHeight : player.clientWidth; - if (player) { - player.setPlaybackQualityRange('hd720'); - player.setPlaybackQuality('hd720'); - } - }, - shortcut_1080p: function() { - var player = document.querySelector('#movie_player'); + var videoScaleForPlayerSize = playerLongSide / playerShortSide; - if (player) { - player.setPlaybackQualityRange('hd1080'); - player.setPlaybackQuality('hd1080'); + transform += ' scale(' + videoScaleForPlayerSize + ')'; } - }, - shortcut_1440p: function() { - var player = document.querySelector('#movie_player'); + //video.style.transform = transform; + if (!document.querySelector('.it-rotate-styles')) { + var styles = document.createElement('style'); - if (player) { - player.setPlaybackQualityRange('hd1440'); - player.setPlaybackQuality('hd1440'); - } - }, - shortcut_2160p: function() { - var player = document.querySelector('#movie_player'); + styles.className = 'it-rotate-styles'; - if (player) { - player.setPlaybackQualityRange('hd2160'); - player.setPlaybackQuality('hd2160'); + document.body.appendChild(styles); } - }, - shortcut_2880p: function() { - var player = document.querySelector('#movie_player'); - if (player) { - player.setPlaybackQualityRange('hd2880'); - player.setPlaybackQuality('hd2880'); - } + document.querySelector('.it-rotate-styles').textContent = '.html5-video-player:not(it-mini-player) video {transform:' + transform + '}'; }, - shortcut_4320p: function() { - var player = document.querySelector('#movie_player'); + title: 'Rotate' + }); + } else if (document.querySelector('.it-rotate-button')) { + document.querySelector('.it-rotate-button').remove(); + document.querySelector('.it-rotate-styles').remove(); + } +}; - if (player) { - player.setPlaybackQualityRange('highres'); - player.setPlaybackQuality('highres'); - } - }, - shortcut_picture_in_picture: function() { - var video = document.querySelector('#movie_player video'); - if (video) { - video.requestPictureInPicture(); - } - }, - shortcut_toggle_controls: function() { - var player = document.querySelector('.html5-video-player'); +/*------------------------------------------------------------------------------ +4.17 POPUP PLAYER +------------------------------------------------------------------------------*/ - if (player && player.hideControls && player.showControls) { - ImprovedTube.storage.player_hide_controls = !ImprovedTube.storage.player_hide_controls; +ImprovedTube.playerPopupButton = function() { + if (this.storage.player_popup_button === true) { + if (!node) { + var node = document.querySelector('.html5-video-player'); + } - if (ImprovedTube.storage.player_hide_controls === true) { - player.hideControls(); - } else { - player.showControls(); - } - } - }, - shortcut_play_pause: function() { - var video = document.querySelector('#movie_player video'); + this.createPlayerButton(node, { + id: 'it-popup-player-button', + html: '', + opacity: 1, + onclick: function() { + node.pauseVideo(); - if (video) { - if (video.paused) { - video.play(); - } else { - video.pause(); - } - } + window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(node.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + node.offsetWidth + ',height=' + node.offsetHeight); }, - shortcut_stop: function() { - var player = document.querySelector('#movie_player'); + title: 'Popup' + }); + } else if (document.querySelector('.it-popup-player-button')) { + document.querySelector('.it-popup-player-button').remove(); + } +}; - if (player) { - player.stopVideo(); - } - }, - shortcut_toggle_autoplay: function() { - var toggle = document.querySelector('.ytp-autonav-toggle-button'), - attribute = toggle.getAttribute('aria-checked') === 'true'; - if (toggle) { - toggle.click(); - } - }, - shortcut_next_video: function() { - var player = document.querySelector('#movie_player'); +/*------------------------------------------------------------------------------ +4.18 Force SDR +------------------------------------------------------------------------------*/ - if (player && player.nextVideo) { - player.nextVideo(); - } - }, - shortcut_prev_video: function() { - var player = document.querySelector('#movie_player'); +ImprovedTube.playerSDR = function() { + if (this.storage.player_SDR === true) { + Object.defineProperty(window.screen, 'pixelDepth', { + enumerable: true, + configurable: true, + value: 24 + }); + } +}; - if (player && player.previousVideo) { - player.previousVideo(); - } - }, - shortcut_seek_backward: function() { - var player = document.querySelector('#movie_player'); - if (player && player.seekBy) { - player.seekBy(-10); - } - }, - shortcut_seek_forward: function() { - var player = document.querySelector('#movie_player'); +/*------------------------------------------------------------------------------ +4.19 Hide controls +------------------------------------------------------------------------------*/ - if (player && player.seekBy) { - player.seekBy(10); - } - }, - shortcut_seek_next_chapter: function() { - const player = document.querySelector("#movie_player"); - const chapterDiv = document.querySelector(".ytp-chapters-container"); - const progressBarWidth = parseInt(document.querySelector(".ytp-chrome-bottom").style.width); +ImprovedTube.playerControls = function() { + if (!node) { + var node = document.querySelector('.html5-video-player'); + } - if (!player || !player.seekBy || !progressBarWidth || - !chapterDiv || !chapterDiv.children) { - return; - } + if (this.storage.player_hide_controls === true) { + node.hideControls(); + } else { + node.showControls(); + } +}; - let curWidth = 0; - for(let child of chapterDiv.children) { - if((curWidth - 2) / progressBarWidth <= player.getCurrentTime() / player.getDuration() && - (curWidth - 2 + parseInt(child.style.width)) / progressBarWidth >= player.getCurrentTime() / player.getDuration() ) { //if child is current chapter - player.seekTo(((parseInt(child.style.width) + curWidth) / progressBarWidth) * player.getDuration()); - return; - } +/*------------------------------------------------------------------------------ +5.0 PLAYLIST +------------------------------------------------------------------------------*/ - curWidth += parseInt(child.style.width) + 2; - } - }, - shortcut_seek_previous_chapter: function() { - const player = document.querySelector("#movie_player"); - const chapterDiv = document.querySelector(".ytp-chapters-container"); - const progressBarWidth = parseInt(document.querySelector(".ytp-chrome-bottom").style.width); +/*------------------------------------------------------------------------------ +5.1 UP NEXT AUTOPLAY +------------------------------------------------------------------------------*/ - if (!player || !player.seekBy || !progressBarWidth || - !chapterDiv || !chapterDiv.children) { - return; - } +ImprovedTube.playlistUpNextAutoplay = function(event) { + if ( + ImprovedTube.getParam(location.href, 'list') && + ImprovedTube.storage.playlist_up_next_autoplay === false + ) { + event.preventDefault(); + event.stopPropagation(); + } +}; - let curWidth = 0; - for(let i in chapterDiv.children) { - if(i === 0) { - player.seekTo(0); - return; - } +/*------------------------------------------------------------------------------ +5.2 REVERSE +------------------------------------------------------------------------------*/ - let child = chapterDiv.children[i]; - if((curWidth + 2) / progressBarWidth <= player.getCurrentTime() / player.getDuration() && - (curWidth + 2 + parseInt(child.style.width)) / progressBarWidth >= player.getCurrentTime() / player.getDuration() ) { //if child is current chapter - player.seekTo(((curWidth - 2) / progressBarWidth) * player.getDuration()); - return; - } +ImprovedTube.playlistReverse = function() { + if (this.storage.playlist_reverse === true) { + if (!document.querySelector('#it-reverse-playlist') && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #start-actions')) { + var button = document.createElement('button'); - curWidth += parseInt(child.style.width) + 2; - } - }, - - shortcut_increase_volume: function() { - var player = document.querySelector('.html5-video-player'); + button.id = 'it-reverse-playlist'; + button.className = 'style-scope yt-icon-button'; + button.innerHTML = ''; - if (player && player.setVolume && player.getVolume) { - player.setVolume(player.getVolume() + (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); - } + button.addEventListener('click', function(event) { + var playlist_manager = document.querySelector('yt-playlist-manager'); - showStatus(player, player.getVolume()); - }, - shortcut_decrease_volume: function() { - var player = document.querySelector('.html5-video-player'); + event.preventDefault(); + event.stopPropagation(); - if (player && player.setVolume && player.getVolume) { - player.setVolume(player.getVolume() - (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); - } + this.classList.toggle('active'); - showStatus(player, player.getVolume()); - }, - shortcut_screenshot: function() { - var player = document.querySelector('.html5-video-player'); + ImprovedTube.playlistReversed = !ImprovedTube.playlistReversed; - if (player && player.setVolume && player.getVolume) { - ImprovedTube.screenshot(); + setTimeout(updateNextButton, 500); + + if (playlist_manager && playlist_manager.autoplayData) { + ImprovedTube.playlistAutoplayData = Object.assign({}, playlist_manager.autoplayData); } - }, - shortcut_increase_playback_speed: function () { - var video = document.querySelector('#movie_player video'); - if (video && video.playbackRate) { - if (video.playbackRate < 1 && video.playbackRate > 1 - ImprovedTube.storage.shortcut_playback_speed_step) { - video.playbackRate = 1 - } else { // aligning at 1.0 independent of minimum + ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); - video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); - } - showStatus(document.querySelector('#movie_player'), video.playbackRate); - } - }, - shortcut_decrease_playback_speed: function () { - var video = document.querySelector('#movie_player video'); + return false; + }, true); - if (video && video.playbackRate) { - if (video.playbackRate < 0.15 + ImprovedTube.storage.shortcut_playback_speed_step) { - video.playbackRate = (video.playbackRate * 0.7).toFixed(3) - } else { // slow down near minimum + document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #start-actions').appendChild(button); + } - video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); + function updateNextButton() { + var next_button = document.querySelector('.ytp-next-button'), + prev_button = document.querySelector('.ytp-prev-button'), + playlist_manager = document.querySelector('yt-playlist-manager'); + + if (playlist_manager) { + var prev_item = document.querySelector('#playlist [selected]').previousElementSibling || document.querySelector('#playlist ytd-playlist-panel-video-renderer:last-child'), + next_item = document.querySelector('#playlist [selected] + *') || document.querySelector('#playlist ytd-playlist-panel-video-renderer'), + prev_href = prev_item.querySelector('a').href, + next_href = next_item.querySelector('a').href; + + if (prev_button) { + prev_button.href = prev_href; + prev_button.dataset.preview = prev_item.querySelector('img').src; + prev_button.dataset.tooltipText = prev_item.querySelector('#video-title').innerText; + + if (playlist_manager.autoplayData.sets[0].previousButtonVideo) { + playlist_manager.autoplayData.sets[0].previousButtonVideo.commandMetadata.webCommandMetadata.url = prev_href.replace(location.origin, ''); + playlist_manager.autoplayData.sets[0].previousButtonVideo.watchEndpoint.videoId = prev_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); } - showStatus(document.querySelector('#movie_player'), video.playbackRate); - } - }, - shortcut_go_to_search_box: function() { - var search = document.querySelector('#search'); - if (search && search.focus) { - search.focus(); + if (playlist_manager.autoplayData.sets[1].previousButtonVideo) { + playlist_manager.autoplayData.sets[1].previousButtonVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); + playlist_manager.autoplayData.sets[1].previousButtonVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); + } } - }, - shortcut_activate_fullscreen: function() { - var player = document.querySelector('#movie_player'); - if (player && player.toggleFullscreen) { - player.toggleFullscreen(); + if (next_button) { + next_button.href = next_href; + next_button.dataset.preview = next_item.querySelector('img').src; + next_button.dataset.tooltipText = next_item.querySelector('#video-title').innerText; + + if (playlist_manager.autoplayData.sets[0].nextButtonVideo) { + playlist_manager.autoplayData.sets[0].nextButtonVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); + playlist_manager.autoplayData.sets[0].nextButtonVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); + } + + if (playlist_manager.autoplayData.sets[1].nextButtonVideo) { + playlist_manager.autoplayData.sets[1].nextButtonVideo.commandMetadata.webCommandMetadata.url = prev_href.replace(location.origin, ''); + playlist_manager.autoplayData.sets[1].nextButtonVideo.watchEndpoint.videoId = prev_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); + } } - }, - shortcut_activate_captions: function() { - var player = document.querySelector('#movie_player'); - if (player && player.querySelector('.ytp-subtitles-button')) { - player.querySelector('.ytp-subtitles-button').click(); - } - }, - shortcut_like_shortcut: function() { - var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer')[0]); - - if (like) { - like.click(); - } - }, - shortcut_dislike_shortcut: function() { - var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer')[1]); - - if (like) { - like.click(); - } - }, - shortcut_subscribe: function() { - var button = document.querySelector('#subscribe-button .ytd-subscribe-button-renderer'); - - if (button) { - button.click(); - } - }, - shortcut_dark_theme: function() { - if (document.documentElement.hasAttribute('dark')) { - document.documentElement.removeAttribute('dark'); - document.documentElement.removeAttribute('it-theme'); - } else { - document.documentElement.setAttribute('dark', ''); - document.documentElement.setAttribute('it-theme', 'true'); - } - }, - shortcut_custom_mini_player: function() { - ImprovedTube.storage.mini_player = !ImprovedTube.storage.mini_player; - - ImprovedTube.mini_player(); - - if (ImprovedTube.storage.mini_player === true) { - ImprovedTube.mini_player__mode = true; + playlist_manager.autoplayData.sets[0].autoplayVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); + playlist_manager.autoplayData.sets[0].autoplayVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); + playlist_manager.autoplayData.sets[1].autoplayVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); + playlist_manager.autoplayData.sets[1].autoplayVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); + } + } - ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; - ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; + if (ImprovedTube.playlistReversed === true) { + setTimeout(function() { + ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); - ImprovedTube.mini_player__element.classList.add('it-mini-player'); + setTimeout(updateNextButton, 1000); + }, 500); + } + } +}; - ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); - ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); +/*------------------------------------------------------------------------------ +5.3 REPEAT +------------------------------------------------------------------------------*/ - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); +ImprovedTube.playlistRepeat = function() { + if (this.isset(this.storage.playlist_repeat) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { + ImprovedTube.playlist_repeat_wait = setInterval(function() { + if ( + document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[0] || + document.querySelector('.playlist-nav-controls .toggle-loop') + ) { + clearInterval(ImprovedTube.playlist_repeat_wait); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); + ImprovedTube.playlist_repeat_wait = false; - window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); + var option = ImprovedTube.storage.playlist_repeat, + new_youtube_toggle = document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer'), + old_youtube_toggle = document.querySelector('.playlist-nav-controls .toggle-loop'); - window.dispatchEvent(new Event('resize')); + if (new_youtube_toggle[0] && (option === true && new_youtube_toggle[0].className.search('style-default-active') === -1 || option === 'disabled' && new_youtube_toggle[0].className.search('style-default-active') !== -1)) { + new_youtube_toggle[0].click(); + } else if (old_youtube_toggle && (option === true && old_youtube_toggle.className.search('yt-uix-button-toggled') === -1 || option === 'disabled' && old_youtube_toggle.className.search('yt-uix-button-toggled') !== -1)) { + old_youtube_toggle.click(); } - }, - shortcut_stats_for_nerds: function() { - var player = document.querySelector('.html5-video-player'); + } + }, 250); + } +}; - if (player.isVideoInfoVisible()) { - player.hideVideoInfo(); - } else { - player.showVideoInfo(); - } - }, - shortcut_toggle_cards: function() { - if(document.documentElement.getAttribute('it-player-hide-cards')) { - document.documentElement.removeAttribute('it-player-hide-cards'); - return; - } - document.documentElement.setAttribute("it-player-hide-cards", true); - }, - shortcut_popup_player: function() { - ImprovedTube.createPopUpWindow(); - } - }; +/*------------------------------------------------------------------------------ +5.4 SHUFFLE +------------------------------------------------------------------------------*/ - for (var i in features) { - if (self.isset(self.storage[i])) { - var data = JSON.parse(self.storage[i]) || {}; +ImprovedTube.playlistShuffle = function() { + if (this.isset(this.storage.playlist_shuffle) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { + ImprovedTube.playlist_shuffle_wait = setInterval(function() { + if ( + document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[1] || + document.querySelector('.playlist-nav-controls .shuffle-playlist') + ) { + clearInterval(ImprovedTube.playlist_shuffle_wait); - if ( - (data.keyCode === keys.keyCode || !self.isset(data.keyCode)) && - (data.shiftKey === keys.shiftKey || !self.isset(data.shiftKey)) && - (data.ctrlKey === keys.ctrlKey || !self.isset(data.ctrlKey)) && - (data.altKey === keys.altKey || !self.isset(data.altKey)) && - ((data.wheel > 0) === (wheel > 0) || !self.isset(data.wheel)) && - ((hover === true && (data.wheel > 0) === (wheel > 0) && Object.keys(keys).length === 0 && keys.constructor === Object) || (self.isset(data.key) || self.isset(data.altKey) || self.isset(data.ctrlKey))) - ) { - if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { - event.preventDefault(); - event.stopPropagation(); - } + ImprovedTube.playlist_shuffle_wait = false; - features[i](); + var option = ImprovedTube.storage.playlist_shuffle, + new_youtube_toggle = document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer'), + old_youtube_toggle = document.querySelector('.playlist-nav-controls .shuffle-playlist'); - if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { - return false; - } + if (new_youtube_toggle[1] && (option === true && new_youtube_toggle[1].className.search('style-default-active') === -1 || option === 'disabled' && new_youtube_toggle[1].className.search('style-default-active') !== -1)) { + new_youtube_toggle[1].click(); + } else if (old_youtube_toggle && (option === true && old_youtube_toggle.className.search('yt-uix-button-toggled') === -1 || option === 'disabled' && old_youtube_toggle.className.search('yt-uix-button-toggled') !== -1)) { + old_youtube_toggle.click(); } } - } + }, 250); } +}; - /*------------------------------------------------------------------------- - 1.0 Keyboard - -------------------------------------------------------------------------*/ - - window.addEventListener('keydown', function(event) { - keys = { - key: event.key, - keyCode: event.keyCode, - shiftKey: event.shiftKey, - ctrlKey: event.ctrlKey, - altKey: event.altKey - }; - - start(); - }, true); +/*------------------------------------------------------------------------------ +6.0 CHANNEL +------------------------------------------------------------------------------*/ - window.addEventListener('keyup', function(event) { - keys = {}; - }, true); +/*------------------------------------------------------------------------------ +6.1 DEFAULT CHANNEL TAB +------------------------------------------------------------------------------*/ +ImprovedTube.channelDefaultTab = function() { + if (this.storage.channel_default_tab && this.storage.channel_default_tab !== '/') { + var value = this.storage.channel_default_tab, + node_list = document.querySelectorAll( + '*:not(#contenteditable-root) > a[href*="user"], ' + + '*:not(#contenteditable-root) > a[href*="channel"], ' + + '*:not(#contenteditable-root) > a[href*="/c/"]' + ); - /*------------------------------------------------------------------------- - 2.0 Mouse - -------------------------------------------------------------------------*/ + for (var i = 0, l = node_list.length; i < l; i++) { + var node = node_list[i]; - window.addEventListener('mousemove', function(event) { - var path = event.composedPath(); + if (!node.getAttribute('it-origin') || + node.hasAttribute('it-origin') && + node.getAttribute('it-origin').replace(/\/(home|videos|playlists)+$/g, '') != node.href.replace(/\/(home|videos|playlists)+$/g, '') + ) { + node.setAttribute('it-origin', node.href); + } - hover = false; + node.href = node.getAttribute('it-origin') + value; - for (var i = 0, l = path.length; i < l; i++) { - if (path[i].classList && path[i].classList.contains('html5-video-player')) { - hover = true; + function click(event) { + event.stopPropagation(); } - } - }, { - passive: false, - capture: true - }); - window.addEventListener('wheel', function(event) { - wheel = event.deltaY; + node.addEventListener('click', click, true); + } + } else if (this.storage.channel_default_tab) { + var node_list = document.querySelectorAll('a[href*="user"], a[href*="channel"], a[href*="/c/"]'); - start('wheel'); - }, { - passive: false, - capture: true - }); + for (var i = 0, l = node_list.length; i < l; i++) { + node_list[i].href = node_list[i].getAttribute('it-origin'); + } + } }; /*------------------------------------------------------------------------------ -8.0 BLACKLIST +7.0 SHORTCUTS ------------------------------------------------------------------------------*/ -document.addEventListener('ImprovedTubeBlacklist', function(event) { - if (chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-blacklist', - data: { - type: event.detail.type, - id: event.detail.id, - title: event.detail.title, - preview: event.detail.preview - } - }); - } -}); +ImprovedTube.shortcuts = function() { + var self = this, + keys = {}, + wheel = 0, + hover = false, + status_timer; -ImprovedTube.blacklist = function() { - if (ImprovedTube.storage.blacklist_activate !== true) { - return false; - } + function showStatus(player, volume) { + if (!player.querySelector('#it-status')) { + var element = document.createElement('div'); - if (typeof ImprovedTube.storage.blacklist === 'boolean' || !ImprovedTube.storage.blacklist) { - ImprovedTube.storage.blacklist = {}; - } + element.id = 'it-status'; + element.innerHTML = volume; - // channel button - if (!ImprovedTube.isset(ImprovedTube.storage.blacklist.channels) || - (ImprovedTube.storage.blacklist.channels && - Object.keys(ImprovedTube.storage.blacklist.channels).indexOf(location.href.replace(/https:\/\/www.youtube.com\/(channel|user|c)\//g, '').replace(/\/(.)+/g, '')) === -1) - ) { - let channel_items = document.querySelectorAll('#inner-header-container #subscribe-button, .primary-header-upper-section .yt-uix-subscription-button'); - - for (let i = 0, l = channel_items.length; i < l; i++) { - if (!channel_items[i].parentNode.querySelector('.improvedtube-add-to-blacklist')) { - let button = document.createElement('div'); - - button.addEventListener('click', function(event) { - let video_id; - - event.preventDefault(); - event.stopPropagation(); - - try { - video_id = location.href.replace(/https:\/\/www.youtube.com\/(channel|user|c)\//g, '').replace(/\/(.)+/g, ''); - - document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { - detail: { - type: 'channel', - id: video_id, - title: document.querySelector('#channel-container yt-formatted-string.ytd-channel-name, a.branded-page-header-title-link').innerText, - preview: document.querySelector('#channel-container #avatar #img, .channel-header-profile-image').src - } - })); - - if (!ImprovedTube.storage.blacklist || typeof ImprovedTube.storage.blacklist !== 'object') { - ImprovedTube.storage.blacklist = {}; - } - - if (!ImprovedTube.storage.blacklist.channels) { - ImprovedTube.storage.blacklist.channels = {}; - } - - ImprovedTube.storage.blacklist.channels[video_id] = { - title: document.querySelector('yt-formatted-string.ytd-channel-name, a.branded-page-header-title-link').innerText, - preview: document.querySelector('#channel-container #avatar #img, .channel-header-profile-image').src - }; - - ImprovedTube.blacklist(); - - location.reload(); - } catch (err) {} - }, true); + document.querySelector('.html5-video-container').appendChild(element); + } else { + player.querySelector('#it-status').innerHTML = volume; + } - button.className = 'improvedtube-add-to-blacklist'; - button.innerText = 'Add to blacklist'; - button.style.position = 'static'; - button.style.transform = 'unset'; - button.style.opacity = '1'; - button.style.visibility = 'visible'; - button.style.pointerEvents = 'all'; - button.style.width = 'auto'; - button.style.fontSize = '16px'; - button.style.lineHeight = '28px'; - button.style.height = 'auto'; - button.style.padding = '6px 12px'; - button.style.borderRadius = '2px'; - button.style.boxSizing = 'border-box'; - button.style.background = '#bb1a1a'; + if (status_timer) { + clearTimeout(status_timer); + } - channel_items[i].parentNode.insertBefore(button, channel_items[i]); + status_timer = setTimeout(function() { + if (player.querySelector('#it-status')) { + player.querySelector('#it-status').remove(); } - } + }, 500); } - // video button - let video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (let i = 0, l = video_items.length; i < l; i++) { - if (!video_items[i].querySelector('.improvedtube-add-to-blacklist')) { - let button = document.createElement('div'); - - button.addEventListener('click', function(event) { - let video_id; - - event.preventDefault(); - event.stopPropagation(); + function start(type = 'keys') { + if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || event.target.isContentEditable) { + return false; + } - try { - video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'); + var features = { + shortcut_auto: function() { + var player = document.querySelector('#movie_player'); - let item = this.parentNode; + if (player) { + player.setPlaybackQualityRange('auto'); + player.setPlaybackQuality('auto'); + } + }, + shortcut_240p: function() { + var player = document.querySelector('#movie_player'); - while ( - item.nodeName && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } + if (player) { + player.setPlaybackQualityRange('small'); + player.setPlaybackQuality('small'); + } + }, + shortcut_360p: function() { + var player = document.querySelector('#movie_player'); - document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { - detail: { - type: 'video', - id: video_id, - title: item.querySelector('#video-title').innerText - } - })); + if (player) { + player.setPlaybackQualityRange('medium'); + player.setPlaybackQuality('medium'); + } + }, + shortcut_480p: function() { + var player = document.querySelector('#movie_player'); - if (!ImprovedTube.storage.blacklist || typeof ImprovedTube.storage.blacklist !== 'object') { - ImprovedTube.storage.blacklist = {}; - } + if (player) { + player.setPlaybackQualityRange('large'); + player.setPlaybackQuality('large'); + } + }, + shortcut_720p: function() { + var player = document.querySelector('#movie_player'); - if (!ImprovedTube.storage.blacklist.videos) { - ImprovedTube.storage.blacklist.videos = {}; - } + if (player) { + player.setPlaybackQualityRange('hd720'); + player.setPlaybackQuality('hd720'); + } + }, + shortcut_1080p: function() { + var player = document.querySelector('#movie_player'); - ImprovedTube.storage.blacklist.videos[video_id] = { - title: item.querySelector('#video-title').innerText - }; + if (player) { + player.setPlaybackQualityRange('hd1080'); + player.setPlaybackQuality('hd1080'); + } + }, + shortcut_1440p: function() { + var player = document.querySelector('#movie_player'); - ImprovedTube.blacklist(); - } catch (err) {} - }, true); - button.className = 'improvedtube-add-to-blacklist'; - button.innerText = 'x'; + if (player) { + player.setPlaybackQualityRange('hd1440'); + player.setPlaybackQuality('hd1440'); + } + }, + shortcut_2160p: function() { + var player = document.querySelector('#movie_player'); - video_items[i].appendChild(button); - } - } + if (player) { + player.setPlaybackQualityRange('hd2160'); + player.setPlaybackQuality('hd2160'); + } + }, + shortcut_2880p: function() { + var player = document.querySelector('#movie_player'); - // remove channels - if (ImprovedTube.storage.blacklist && ImprovedTube.storage.blacklist.channels) { - let videos = document.querySelectorAll('a#thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); + if (player) { + player.setPlaybackQualityRange('hd2880'); + player.setPlaybackQuality('hd2880'); + } + }, + shortcut_4320p: function() { + var player = document.querySelector('#movie_player'); - for (let i = 0, l = videos.length; i < l; i++) { - let item = videos[i]; + if (player) { + player.setPlaybackQualityRange('highres'); + player.setPlaybackQuality('highres'); + } + }, + shortcut_picture_in_picture: function() { + var video = document.querySelector('#movie_player video'); - while ( - item.nodeName && - item.nodeName !== 'YTD-VIDEO-RENDERER' && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } + if (video) { + video.requestPictureInPicture(); + } + }, + shortcut_toggle_controls: function() { + var player = document.querySelector('.html5-video-player'); - if (item.querySelector('.ytd-channel-name a, a.spf-link[href*="/user/"], a.spf-link[href*="/channel/"]')) { - let channel_href = item.querySelector('.ytd-channel-name a, a.spf-link[href*="/user/"], a.spf-link[href*="/channel/"]').href; + if (player && player.hideControls && player.showControls) { + ImprovedTube.storage.player_hide_controls = !ImprovedTube.storage.player_hide_controls; - for (var key in ImprovedTube.storage.blacklist.channels) { - if (item.style && channel_href.indexOf(key) !== -1) { - item.style.opacity = '.1'; + if (ImprovedTube.storage.player_hide_controls === true) { + player.hideControls(); + } else { + player.showControls(); } } - } - } - } - - // remove videos - if (ImprovedTube.storage.blacklist && ImprovedTube.storage.blacklist.videos) { - let videos = document.querySelectorAll('a#thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); + }, + shortcut_play_pause: function() { + var video = document.querySelector('#movie_player video'); - for (let i = 0, l = videos.length; i < l; i++) { - if (videos[i].href && videos[i].href != '' && ImprovedTube.getParam(new URL(videos[i].href).search.substr(1), 'v') in ImprovedTube.storage.blacklist.videos) { - let item = videos[i]; + if (video) { + if (video.paused) { + video.play(); + } else { + video.pause(); + } + } + }, + shortcut_stop: function() { + var player = document.querySelector('#movie_player'); - while ( - item.nodeName && - item.nodeName !== 'YTD-VIDEO-RENDERER' && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; + if (player) { + player.stopVideo(); } + }, + shortcut_toggle_autoplay: function() { + var toggle = document.querySelector('.ytp-autonav-toggle-button'), + attribute = toggle.getAttribute('aria-checked') === 'true'; - item.style.opacity = '.1'; - } - } - } -}; + if (toggle) { + toggle.click(); + } + }, + shortcut_next_video: function() { + var player = document.querySelector('#movie_player'); + if (player && player.nextVideo) { + player.nextVideo(); + } + }, + shortcut_prev_video: function() { + var player = document.querySelector('#movie_player'); -/*------------------------------------------------------------------------------ -9.0 ANALYZER -------------------------------------------------------------------------------*/ + if (player && player.previousVideo) { + player.previousVideo(); + } + }, + shortcut_seek_backward: function() { + var player = document.querySelector('#movie_player'); -document.addEventListener('ImprovedTubeAnalyzer', function() { - if (items.analyzer_activation === true) { - if (document.querySelector('ytd-channel-name a') && chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-analyzer', - value: document.querySelector('ytd-channel-name a').innerText - }); - } - } -}); + if (player && player.seekBy) { + player.seekBy(-10); + } + }, + shortcut_seek_forward: function() { + var player = document.querySelector('#movie_player'); + if (player && player.seekBy) { + player.seekBy(10); + } + }, + shortcut_seek_next_chapter: function() { + const player = document.querySelector("#movie_player"); + const chapterDiv = document.querySelector(".ytp-chapters-container"); + const progressBarWidth = parseInt(document.querySelector(".ytp-chrome-bottom").style.width); -/*------------------------------------------------------------------------------ -10.0 SETTINGS -------------------------------------------------------------------------------*/ + if (!player || !player.seekBy || !progressBarWidth || + !chapterDiv || !chapterDiv.children) { + return; + } -/*------------------------------------------------------------------------------ -10.1 IMPROVEDTUBE ICON -------------------------------------------------------------------------------*/ + let curWidth = 0; -ImprovedTube.improvedtube_youtube_icon_wait = false; + for(let child of chapterDiv.children) { + if((curWidth - 2) / progressBarWidth <= player.getCurrentTime() / player.getDuration() && + (curWidth - 2 + parseInt(child.style.width)) / progressBarWidth >= player.getCurrentTime() / player.getDuration() ) { //if child is current chapter + player.seekTo(((parseInt(child.style.width) + curWidth) / progressBarWidth) * player.getDuration()); + return; + } -ImprovedTube.improvedtube_youtube_icon_resize = function() { - var iframe = document.querySelector('.it-btn__iframe'), - icon = document.querySelector('.it-btn__icon'); + curWidth += parseInt(child.style.width) + 2; + } + }, + shortcut_seek_previous_chapter: function() { + const player = document.querySelector("#movie_player"); + const chapterDiv = document.querySelector(".ytp-chapters-container"); + const progressBarWidth = parseInt(document.querySelector(".ytp-chrome-bottom").style.width); - if (iframe && icon) { - var x = icon.getBoundingClientRect().x, - y = icon.getBoundingClientRect().y; + if (!player || !player.seekBy || !progressBarWidth || + !chapterDiv || !chapterDiv.children) { + return; + } - if (x < window.innerWidth / 2) { - iframe.style.right = 'auto'; - iframe.style.left = '0px'; - } else { - iframe.style.right = '0px'; - iframe.style.left = 'auto'; - } + let curWidth = 0; - if (y < window.innerHeight / 2) { - iframe.style.top = '50px'; - iframe.style.bottom = 'auto'; + for(let i in chapterDiv.children) { + if(i === 0) { + player.seekTo(0); + return; + } - iframe.style.height = Math.min(500, window.innerHeight - Math.max(0, iframe.getBoundingClientRect().top) - 16) + 'px'; - } else { - iframe.style.top = 'auto'; - iframe.style.bottom = '50px'; + let child = chapterDiv.children[i]; + if((curWidth + 2) / progressBarWidth <= player.getCurrentTime() / player.getDuration() && + (curWidth + 2 + parseInt(child.style.width)) / progressBarWidth >= player.getCurrentTime() / player.getDuration() ) { //if child is current chapter + player.seekTo(((curWidth - 2) / progressBarWidth) * player.getDuration()); + return; + } - iframe.style.height = Math.min(500, window.innerHeight - Math.max(0, window.innerHeight - iframe.getBoundingClientRect().y - iframe.getBoundingClientRect().height) - 16) + 'px'; - } - } -}; + curWidth += parseInt(child.style.width) + 2; + } + }, + + shortcut_increase_volume: function() { + var player = document.querySelector('.html5-video-player'); -ImprovedTube.improvedtubeYoutubeIcon = function() { - if (window.self !== window.top) { - return false; - } + if (player && player.setVolume && player.getVolume) { + player.setVolume(player.getVolume() + (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); + } - if ( - ImprovedTube.storage.improvedtube_youtube_icon === 'disabled' && - document.querySelector('.it-btn') - ) { - document.querySelector('.it-btn').remove(); - } + showStatus(player, player.getVolume()); + }, + shortcut_decrease_volume: function() { + var player = document.querySelector('.html5-video-player'); - if (this.improvedtube_youtube_icon_wait === false) { - this.improvedtube_youtube_icon_wait = setInterval(function() { - var option = ImprovedTube.storage.improvedtube_youtube_icon, - parentNode, - referenceNode; + if (player && player.setVolume && player.getVolume) { + player.setVolume(player.getVolume() - (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); + } - if (option === 'header_left') { - parentNode = document.querySelector('ytd-masthead #start'); - referenceNode = document.querySelector('ytd-masthead #start #guide-button'); - } else if (option === 'header_right') { - parentNode = ( - document.querySelector('#end #buttons') || - document.querySelector('#yt-masthead-user') - ); - } else if (option === 'draggable') { - parentNode = document.body || document.querySelector('body'); - } else if (option === 'below_player') { - parentNode = ( - document.querySelector('.title.ytd-video-primary-info-renderer') || - document.querySelector('#watch-headline-title') - ); - } + showStatus(player, player.getVolume()); + }, + shortcut_screenshot: function() { + var player = document.querySelector('.html5-video-player'); - if (document.querySelector('.it-btn')) { - if (!parentNode.querySelector(':scope > .it-btn')) { - document.querySelector('.it-btn').remove(); - } else { - clearInterval(ImprovedTube.improvedtube_youtube_icon_wait); + if (player && player.setVolume && player.getVolume) { + ImprovedTube.screenshot(); + } + }, + shortcut_increase_playback_speed: function () { + var video = document.querySelector('#movie_player video'); - ImprovedTube.improvedtube_youtube_icon_wait = false; + if (video && video.playbackRate) { + if (video.playbackRate < 1 && video.playbackRate > 1 - ImprovedTube.storage.shortcut_playback_speed_step) { + video.playbackRate = 1 + } else { // aligning at 1.0 independent of minimum - return false; + video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); + } + showStatus(document.querySelector('#movie_player'), video.playbackRate); } - } + }, + shortcut_decrease_playback_speed: function () { + var video = document.querySelector('#movie_player video'); - if ( - ImprovedTube.isset(option) && - option !== 'disabled' && - parentNode && (option === 'header_left' ? referenceNode : true) - ) { - clearInterval(ImprovedTube.improvedtube_youtube_icon_wait); + if (video && video.playbackRate) { + if (video.playbackRate < 0.15 + ImprovedTube.storage.shortcut_playback_speed_step) { + video.playbackRate = (video.playbackRate * 0.7).toFixed(3) + } else { // slow down near minimum - ImprovedTube.improvedtube_youtube_icon_wait = false; + video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); + } + showStatus(document.querySelector('#movie_player'), video.playbackRate); + } + }, + shortcut_go_to_search_box: function() { + var search = document.querySelector('#search'); - var button = document.createElement('div'); + if (search && search.focus) { + search.focus(); + } + }, + shortcut_activate_fullscreen: function() { + var player = document.querySelector('#movie_player'); - button.className = 'it-btn'; - button.innerHTML = '
'; - button.addEventListener('click', function() { - event.preventDefault(); - event.stopPropagation(); + if (player && player.toggleFullscreen) { + player.toggleFullscreen(); + } + }, + shortcut_activate_captions: function() { + var player = document.querySelector('#movie_player'); - button.classList.remove('it-btn--dragging'); + if (player && player.querySelector('.ytp-subtitles-button')) { + player.querySelector('.ytp-subtitles-button').click(); + } + }, + shortcut_like_shortcut: function() { + var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer')[0]); - window.removeEventListener('mousemove', move); + if (like) { + like.click(); + } + }, + shortcut_dislike_shortcut: function() { + var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer')[1]); - localStorage.setItem('IT_ICON', JSON.stringify({ - x: button.offsetLeft, - y: button.offsetTop - })); + if (like) { + like.click(); + } + }, + shortcut_subscribe: function() { + var button = document.querySelector('#subscribe-button .ytd-subscribe-button-renderer'); - setTimeout(function() { - button.style.pointerEvents = ''; - }); + if (button) { + button.click(); + } + }, + shortcut_dark_theme: function() { + if (document.documentElement.hasAttribute('dark')) { + document.documentElement.removeAttribute('dark'); + document.documentElement.removeAttribute('it-theme'); + } else { + document.documentElement.setAttribute('dark', ''); + document.documentElement.setAttribute('it-theme', 'true'); + } + }, + shortcut_custom_mini_player: function() { + ImprovedTube.storage.mini_player = !ImprovedTube.storage.mini_player; - this.classList.toggle('it-btn--active'); - ImprovedTube.improvedtube_youtube_icon_resize(); + ImprovedTube.mini_player(); - return false; - }, true); + if (ImprovedTube.storage.mini_player === true) { + ImprovedTube.mini_player__mode = true; - if (option === 'draggable') { - var position = localStorage.getItem('IT_ICON'); + ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; + ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; - if (ImprovedTube.isset(position)) { - position = JSON.parse(position); + ImprovedTube.mini_player__element.classList.add('it-mini-player'); - button.style.left = position.x + 'px'; - button.style.top = position.y + 'px'; - } + ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); + ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); - function move(event) { - button.classList.add('it-btn--dragging'); + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); - if (event.clientX < window.innerWidth / 2) { - if (event.clientX - Number(button.dataset.x) >= 16) { - button.style.left = event.clientX - Number(button.dataset.x) + 'px'; - } else { - button.style.left = '16px'; - } - } else { - if (event.clientX + (48 + window.innerWidth - document.querySelector('body').offsetWidth) - Number(button.dataset.x) <= window.innerWidth) { - button.style.left = event.clientX - Number(button.dataset.x) + 'px'; - } else { - button.style.left = 'calc(100vw - ' + (48 + window.innerWidth - document.querySelector('body').offsetWidth) + 'px)'; - } - } + ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); - if (event.clientY < window.innerHeight / 2) { - if (event.clientY - Number(button.dataset.y) >= 12) { - button.style.top = event.clientY - Number(button.dataset.y) + 'px'; - } else { - button.style.top = '12px'; - } - } else { - if (event.clientY + 44 - Number(button.dataset.y) <= window.innerHeight) { - button.style.top = event.clientY - Number(button.dataset.y) + 'px'; - } else { - button.style.top = 'calc(100vh - 44px)'; - } - } + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); - ImprovedTube.improvedtube_youtube_icon_resize(); - } + window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); + window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - button.addEventListener('mousedown', function(event) { - this.dataset.x = event.layerX; - this.dataset.y = event.layerY; + window.dispatchEvent(new Event('resize')); + } + }, + shortcut_stats_for_nerds: function() { + var player = document.querySelector('.html5-video-player'); - window.addEventListener('mousemove', move); - }); + if (player.isVideoInfoVisible()) { + player.hideVideoInfo(); + } else { + player.showVideoInfo(); + } + }, + shortcut_toggle_cards: function() { + if(document.documentElement.getAttribute('it-player-hide-cards')) { + document.documentElement.removeAttribute('it-player-hide-cards'); + return; + } - window.addEventListener('mouseup', function() { - button.classList.remove('it-btn--dragging'); + document.documentElement.setAttribute("it-player-hide-cards", true); + }, + shortcut_popup_player: function() { + ImprovedTube.createPopUpWindow(); + } + }; - window.removeEventListener('mousemove', move); + for (var i in features) { + if (self.isset(self.storage[i])) { + var data = JSON.parse(self.storage[i]) || {}; - localStorage.setItem('IT_ICON', JSON.stringify({ - x: button.offsetLeft, - y: button.offsetTop - })); + if ( + (data.keyCode === keys.keyCode || !self.isset(data.keyCode)) && + (data.shiftKey === keys.shiftKey || !self.isset(data.shiftKey)) && + (data.ctrlKey === keys.ctrlKey || !self.isset(data.ctrlKey)) && + (data.altKey === keys.altKey || !self.isset(data.altKey)) && + ((data.wheel > 0) === (wheel > 0) || !self.isset(data.wheel)) && + ((hover === true && (data.wheel > 0) === (wheel > 0) && Object.keys(keys).length === 0 && keys.constructor === Object) || (self.isset(data.key) || self.isset(data.altKey) || self.isset(data.ctrlKey))) + ) { + if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { + event.preventDefault(); + event.stopPropagation(); + } - setTimeout(function() { - button.style.pointerEvents = ''; - }); - }); - } + features[i](); - if (option === 'header_left') { - parentNode.insertBefore(button, referenceNode); - } else { - parentNode.appendChild(button); + if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { + return false; + } } - - ImprovedTube.improvedtube_youtube_icon_resize(); } - }, 250); + } } -}; -/*------------------------------------------------------------------------------ -10.2 IMPROVEDTUBE BUTTON (SIDEBAR) -------------------------------------------------------------------------------*/ -/* -ImprovedTube.improvedtube_youtube_sidebar_button_wait = false; -ImprovedTube.improvedtubeYoutubeSidebarButton = function() { - if (window.self !== window.top) { - return false; - } + /*------------------------------------------------------------------------- + 1.0 Keyboard + -------------------------------------------------------------------------*/ - if ( - ImprovedTube.storage.improvedtube_youtube_sidebar_button_wait === false && - document.querySelector('.improvedtube-sidebar-a') - ) { - document.querySelector('.improvedtube-sidebar-a').remove(); - } + window.addEventListener('keydown', function(event) { + keys = { + key: event.key, + keyCode: event.keyCode, + shiftKey: event.shiftKey, + ctrlKey: event.ctrlKey, + altKey: event.altKey + }; + + start(); + }, true); + + window.addEventListener('keyup', function(event) { + keys = {}; + }, true); - if (this.improvedtube_youtube_sidebar_button_wait === false) { - this.improvedtube_youtube_sidebar_button_wait = setInterval(function() { - var second_section = document.querySelector('#guide ytd-guide-collapsible-section-entry-renderer'); - if (second_section && !document.querySelector('.improvedtube-sidebar-a')) { - var a = document.createElement('a'); + /*------------------------------------------------------------------------- + 2.0 Mouse + -------------------------------------------------------------------------*/ - a.className = 'improvedtube-sidebar-a'; - a.href = 'https://www.youtube.com/improvedtube'; - a.innerText = 'ImprovedTube'; + window.addEventListener('mousemove', function(event) { + var path = event.composedPath(); - second_section.parentNode.insertBefore(a, second_section); + hover = false; + + for (var i = 0, l = path.length; i < l; i++) { + if (path[i].classList && path[i].classList.contains('html5-video-player')) { + hover = true; } - }, 250); - } + } + }, { + passive: false, + capture: true + }); + + window.addEventListener('wheel', function(event) { + wheel = event.deltaY; + + start('wheel'); + }, { + passive: false, + capture: true + }); }; + /*------------------------------------------------------------------------------ -10.3 IMPROVEDTUBE PLAYER BUTTONS +8.0 BLACKLIST ------------------------------------------------------------------------------*/ -/* -ImprovedTube.improvedtube_youtube_player_buttons_wait = false; -ImprovedTube.improvedtubeYoutubePlayerButtons = function() { - if (window.self !== window.top) { +document.addEventListener('ImprovedTubeBlacklist', function(event) { + if (chrome && chrome.runtime) { + chrome.runtime.sendMessage({ + name: 'improvedtube-blacklist', + data: { + type: event.detail.type, + id: event.detail.id, + title: event.detail.title, + preview: event.detail.preview + } + }); + } +}); + +ImprovedTube.blacklist = function() { + if (ImprovedTube.storage.blacklist_activate !== true) { return false; } - if (this.improvedtube_youtube_player_buttons_wait === false) { - this.improvedtube_youtube_player_buttons_wait = setInterval(function() { - var second_section = document.querySelector('#info #menu-container.ytd-video-primary-info-renderer'); + if (typeof ImprovedTube.storage.blacklist === 'boolean' || !ImprovedTube.storage.blacklist) { + ImprovedTube.storage.blacklist = {}; + } - if (second_section && !document.querySelector('.improvedtube-player-button')) { - var screenshot_button = document.createElement('button'), - pip_button = document.createElement('button'); + // channel button + if (!ImprovedTube.isset(ImprovedTube.storage.blacklist.channels) || + (ImprovedTube.storage.blacklist.channels && + Object.keys(ImprovedTube.storage.blacklist.channels).indexOf(location.href.replace(/https:\/\/www.youtube.com\/(channel|user|c)\//g, '').replace(/\/(.)+/g, '')) === -1) + ) { + let channel_items = document.querySelectorAll('#inner-header-container #subscribe-button, .primary-header-upper-section .yt-uix-subscription-button'); - screenshot_button.className = 'improvedtube-player-button'; - screenshot_button.innerHTML = ''; - screenshot_button.dataset.tooltip = 'Screenshot'; - screenshot_button.onclick = ImprovedTube.screenshot; + for (let i = 0, l = channel_items.length; i < l; i++) { + if (!channel_items[i].parentNode.querySelector('.improvedtube-add-to-blacklist')) { + let button = document.createElement('div'); - pip_button.className = 'improvedtube-player-button'; - pip_button.innerHTML = ''; - pip_button.dataset.tooltip = 'Picture in picture'; - pip_button.onclick = function() { - var video = document.querySelector('#movie_player video'); + button.addEventListener('click', function(event) { + let video_id; - if (video) { - video.requestPictureInPicture(); - } - }; + event.preventDefault(); + event.stopPropagation(); - second_section.parentNode.insertBefore(screenshot_button, second_section); - second_section.parentNode.insertBefore(pip_button, second_section); - } - }, 250); - } -}; + try { + video_id = location.href.replace(/https:\/\/www.youtube.com\/(channel|user|c)\//g, '').replace(/\/(.)+/g, ''); + document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { + detail: { + type: 'channel', + id: video_id, + title: document.querySelector('#channel-container yt-formatted-string.ytd-channel-name, a.branded-page-header-title-link').innerText, + preview: document.querySelector('#channel-container #avatar #img, .channel-header-profile-image').src + } + })); -/*----------------------------------------------------------------------------- -10.4 DELETE YOUTUBE COOKIES ------------------------------------------------------------------------------*/ + if (!ImprovedTube.storage.blacklist || typeof ImprovedTube.storage.blacklist !== 'object') { + ImprovedTube.storage.blacklist = {}; + } -ImprovedTube.deleteYoutubeCookies = function() { - var cookies = document.cookie.split(';'); + if (!ImprovedTube.storage.blacklist.channels) { + ImprovedTube.storage.blacklist.channels = {}; + } - for (var i = 0, l = cookies.length; i < l; i++) { - var cookie = cookies[i], - eqPos = cookie.indexOf('='), - name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; + ImprovedTube.storage.blacklist.channels[video_id] = { + title: document.querySelector('yt-formatted-string.ytd-channel-name, a.branded-page-header-title-link').innerText, + preview: document.querySelector('#channel-container #avatar #img, .channel-header-profile-image').src + }; - document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; - } + ImprovedTube.blacklist(); - setTimeout(function() { - location.reload(); - }, 100); -}; + location.reload(); + } catch (err) {} + }, true); + button.className = 'improvedtube-add-to-blacklist'; + button.innerText = 'Add to blacklist'; + button.style.position = 'static'; + button.style.transform = 'unset'; + button.style.opacity = '1'; + button.style.visibility = 'visible'; + button.style.pointerEvents = 'all'; + button.style.width = 'auto'; + button.style.fontSize = '16px'; + button.style.lineHeight = '28px'; + button.style.height = 'auto'; + button.style.padding = '6px 12px'; + button.style.borderRadius = '2px'; + button.style.boxSizing = 'border-box'; + button.style.background = '#bb1a1a'; -/*----------------------------------------------------------------------------- -10.5 YOUTUBE LANGUAGE ------------------------------------------------------------------------------*/ + channel_items[i].parentNode.insertBefore(button, channel_items[i]); + } + } + } -ImprovedTube.youtubeLanguage = function() { - var pref = ImprovedTube.getCookieValueByName('PREF'), - hl = ImprovedTube.getParam(pref, 'hl'); + // video button + let video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - if (hl) { - ImprovedTube.setCookie('PREF', pref.replace('hl=' + hl, 'hl=' + ImprovedTube.storage.youtube_language)); - } else { - ImprovedTube.setCookie('PREF', pref + '&hl=' + ImprovedTube.storage.youtube_language); - } + for (let i = 0, l = video_items.length; i < l; i++) { + if (!video_items[i].querySelector('.improvedtube-add-to-blacklist')) { + let button = document.createElement('div'); - setTimeout(function() { - location.reload(); - }, 100); -}; + button.addEventListener('click', function(event) { + let video_id; + event.preventDefault(); + event.stopPropagation(); + + try { + video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'); + let item = this.parentNode; + while ( + item.nodeName && + item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && + item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && + item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && + item.classList && + !item.classList.contains('yt-shelf-grid-item') && + !item.classList.contains('video-list-item') + ) { + item = item.parentNode; + } + document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { + detail: { + type: 'video', + id: video_id, + title: item.querySelector('#video-title').innerText + } + })); -/*------------------------------------------------------------------------------ -0.0 PAGE UPDATE LISTENER -------------------------------------------------------------------------------*/ + if (!ImprovedTube.storage.blacklist || typeof ImprovedTube.storage.blacklist !== 'object') { + ImprovedTube.storage.blacklist = {}; + } -ImprovedTube.pageUpdateListener = function() { - window.addEventListener('yt-page-data-updated', function() { - ImprovedTube.played_before_blur = false; + if (!ImprovedTube.storage.blacklist.videos) { + ImprovedTube.storage.blacklist.videos = {}; + } - ImprovedTube.pageType(); - ImprovedTube.youtubeHomePage(); - ImprovedTube.collapseOfSubscriptionSections(); - ImprovedTube.markWatchedVideos(); - ImprovedTube.hdThumbnails(); - ImprovedTube.hideThumbnailOverlay(); + ImprovedTube.storage.blacklist.videos[video_id] = { + title: item.querySelector('#video-title').innerText + }; - ImprovedTube.channelDefaultTab(); + ImprovedTube.blacklist(); + } catch (err) {} + }, true); + button.className = 'improvedtube-add-to-blacklist'; + button.innerText = 'x'; - ImprovedTube.videoPageUpdate(); + video_items[i].appendChild(button); + } + } - ImprovedTube.blacklist(); + // remove channels + if (ImprovedTube.storage.blacklist && ImprovedTube.storage.blacklist.channels) { + let videos = document.querySelectorAll('a#thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - ImprovedTube.improvedtubeYoutubeIcon(); - //ImprovedTube.improvedtubeYoutubeSidebarButton(); - //ImprovedTube.improvedtubeYoutubePlayerButtons(); - }); -}; + for (let i = 0, l = videos.length; i < l; i++) { + let item = videos[i]; -ImprovedTube.videoPageUpdate = function() { - if (this.page_type === 'video') { + while ( + item.nodeName && + item.nodeName !== 'YTD-VIDEO-RENDERER' && + item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && + item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && + item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && + item.classList && + !item.classList.contains('yt-shelf-grid-item') && + !item.classList.contains('video-list-item') + ) { + item = item.parentNode; + } - var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); + if (item.querySelector('.ytd-channel-name a, a.spf-link[href*="/user/"], a.spf-link[href*="/channel/"]')) { + let channel_href = item.querySelector('.ytd-channel-name a, a.spf-link[href*="/user/"], a.spf-link[href*="/channel/"]').href; - if (video_id) { - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'set', - id: video_id, - title: document.title + for (var key in ImprovedTube.storage.blacklist.channels) { + if (item.style && channel_href.indexOf(key) !== -1) { + item.style.opacity = '.1'; + } } - })); + } } + } - ImprovedTube.initialVideoUpdateDone = true; + // remove videos + if (ImprovedTube.storage.blacklist && ImprovedTube.storage.blacklist.videos) { + let videos = document.querySelectorAll('a#thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - this.forcedTheaterMode(); - this.playerHdThumbnail(); - this.alwaysShowProgressBar(); - this.livechat(); - this.relatedVideos(); - this.howLongAgoTheVideoWasUploaded(); - this.channelVideosCount(); - this.comments(); + for (let i = 0, l = videos.length; i < l; i++) { + if (videos[i].href && videos[i].href != '' && ImprovedTube.getParam(new URL(videos[i].href).search.substr(1), 'v') in ImprovedTube.storage.blacklist.videos) { + let item = videos[i]; - this.upNextAutoplay(); - this.playerAutofullscreen(); - this.playerScreenshotButton(); - this.playerRepeatButton(); - this.playerRotateButton(); - this.playerPopupButton(); - this.playerControls(); + while ( + item.nodeName && + item.nodeName !== 'YTD-VIDEO-RENDERER' && + item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && + item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && + item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && + item.classList && + !item.classList.contains('yt-shelf-grid-item') && + !item.classList.contains('video-list-item') + ) { + item = item.parentNode; + } - if (/[?&]list=([^&]+).*$/.test(location.href)) { - this.playlistRepeat(); - this.playlistShuffle(); - this.playlistReverse(); + item.style.opacity = '.1'; + } } } }; /*------------------------------------------------------------------------------ -0.0 PLAYER UPDATE +9.0 ANALYZER ------------------------------------------------------------------------------*/ -ImprovedTube.video_src = false; -ImprovedTube.initialVideoUpdateDone = false; - -ImprovedTube.videoUpdated = function() { - this.playerAds(); - - if (ImprovedTube.initialVideoUpdateDone !== true) { - this.playerQuality(); - this.playerPlaybackSpeed(); - this.playerVolume(); +document.addEventListener('ImprovedTubeAnalyzer', function() { + if (items.analyzer_activation === true) { + if (document.querySelector('ytd-channel-name a') && chrome && chrome.runtime) { + chrome.runtime.sendMessage({ + name: 'improvedtube-analyzer', + value: document.querySelector('ytd-channel-name a').innerText + }); + } } -}; +}); -ImprovedTube.timeupdate = function() { - if (ImprovedTube.video_src !== this.src) { - ImprovedTube.video_src = this.src; - ImprovedTube.videoUpdated(); - } else if (ImprovedTube.latestVideoDuration !== this.duration) { - ImprovedTube.latestVideoDuration = this.duration; +/*------------------------------------------------------------------------------ +10.0 SETTINGS +------------------------------------------------------------------------------*/ - ImprovedTube.playerQuality(); - ImprovedTube.playerPlaybackSpeed(); - ImprovedTube.playerVolume(); - } -}; +/*------------------------------------------------------------------------------ +10.1 IMPROVEDTUBE ICON +------------------------------------------------------------------------------*/ -ImprovedTube.ended = function(event) { - ImprovedTube.playlistUpNextAutoplay(event); -}; +ImprovedTube.improvedtube_youtube_icon_resize = function() { + var iframe = document.querySelector('.it-btn__iframe'), + icon = document.querySelector('.it-btn__icon'); -ImprovedTube.pause = function(event) { - ImprovedTube.playlistUpNextAutoplay(event); -}; + if (iframe && icon) { + var x = icon.getBoundingClientRect().x, + y = icon.getBoundingClientRect().y; + + if (x < window.innerWidth / 2) { + iframe.style.right = 'auto'; + iframe.style.left = '0px'; + } else { + iframe.style.right = '0px'; + iframe.style.left = 'auto'; + } -ImprovedTube.latestVideoDuration = 0; + if (y < window.innerHeight / 2) { + iframe.style.top = '50px'; + iframe.style.bottom = 'auto'; -ImprovedTube.playerUpdate = function() { - this.playerPlaybackSpeed(); - this.subtitles(); - this.playerQuality(); - this.playerVolume(); + iframe.style.height = Math.min(500, window.innerHeight - Math.max(0, iframe.getBoundingClientRect().top) - 16) + 'px'; + } else { + iframe.style.top = 'auto'; + iframe.style.bottom = '50px'; - if (location.href.indexOf('/embed/') === -1) { - this.mini_player(); + iframe.style.height = Math.min(500, window.innerHeight - Math.max(0, window.innerHeight - iframe.getBoundingClientRect().y - iframe.getBoundingClientRect().height) - 16) + 'px'; + } } }; +ImprovedTube.improvedtubeYoutubeIcon = function() { + if (window.self !== window.top) { + return false; + } -/*------------------------------------------------------------------------------ -0.0 DOM CONTENT LOADED -------------------------------------------------------------------------------*/ - -ImprovedTube.DOMContentLoaded = function() { - window.addEventListener('DOMContentLoaded', function() { - ImprovedTube.youtubeHomePage(); - ImprovedTube.collapseOfSubscriptionSections(); - ImprovedTube.addScrollToTop(); - ImprovedTube.confirmationBeforeClosing(); - ImprovedTube.markWatchedVideos(); - ImprovedTube.hdThumbnails(); - ImprovedTube.hideThumbnailOverlay(); - - ImprovedTube.channelDefaultTab(); - - ImprovedTube.myColors(); - ImprovedTube.bluelight(); - ImprovedTube.dim(); - ImprovedTube.font(); - ImprovedTube.themes(); - - ImprovedTube.videoPageUpdate(); + if ( + ImprovedTube.storage.improvedtube_youtube_icon === 'disabled' && + document.querySelector('.it-btn') + ) { + document.querySelector('.it-btn').remove(); + } - ImprovedTube.blacklist(); + if (this.improvedtube_youtube_icon_wait === false) { + this.improvedtube_youtube_icon_wait = setInterval(function() { + var option = ImprovedTube.storage.improvedtube_youtube_icon, + parentNode, + referenceNode; - ImprovedTube.improvedtubeYoutubeIcon(); - //ImprovedTube.improvedtubeYoutubeSidebarButton(); - //ImprovedTube.improvedtubeYoutubePlayerButtons(); + if (option === 'header_left') { + parentNode = document.querySelector('ytd-masthead #start'); + referenceNode = document.querySelector('ytd-masthead #start #guide-button'); + } else if (option === 'header_right') { + parentNode = ( + document.querySelector('#end #buttons') || + document.querySelector('#yt-masthead-user') + ); + } else if (option === 'draggable') { + parentNode = document.body || document.querySelector('body'); + } else if (option === 'below_player') { + parentNode = ( + document.querySelector('.title.ytd-video-primary-info-renderer') || + document.querySelector('#watch-headline-title') + ); + } - ImprovedTube.pageUpdateListener(); - }); -}; + if (document.querySelector('.it-btn')) { + if (!parentNode.querySelector(':scope > .it-btn')) { + document.querySelector('.it-btn').remove(); + } else { + clearInterval(ImprovedTube.improvedtube_youtube_icon_wait); + ImprovedTube.improvedtube_youtube_icon_wait = false; -/*------------------------------------------------------------------------------ -0.0 PAGE TYPE -------------------------------------------------------------------------------*/ + return false; + } + } -ImprovedTube.video_url = false; -ImprovedTube.page_type = false; + if ( + ImprovedTube.isset(option) && + option !== 'disabled' && + parentNode && (option === 'header_left' ? referenceNode : true) + ) { + clearInterval(ImprovedTube.improvedtube_youtube_icon_wait); -ImprovedTube.pageType = function() { - var href = location.href, - type = ''; + ImprovedTube.improvedtube_youtube_icon_wait = false; - if (location.pathname === '/') { - type = 'home'; - } else if (/\/watch\?/.test(href)) { - type = 'video'; - } else if (/\/channel|user|c\//.test(href)) { - type = 'channel'; - } + var button = document.createElement('div'); - this.page_type = type; + button.className = 'it-btn'; + button.innerHTML = '
'; + button.addEventListener('click', function() { + event.preventDefault(); + event.stopPropagation(); - document.documentElement.setAttribute('it-page-type', type); -}; + button.classList.remove('it-btn--dragging'); + window.removeEventListener('mousemove', move); -/*------------------------------------------------------------------------------ -0.0 ONFOCUS -------------------------------------------------------------------------------*/ + localStorage.setItem('IT_ICON', JSON.stringify({ + x: button.offsetLeft, + y: button.offsetTop + })); -ImprovedTube.focus = false; -ImprovedTube.played_before_blur = false; + setTimeout(function() { + button.style.pointerEvents = ''; + }); -ImprovedTube.onfocus = function() { - this.onlyOnePlayerInstancePlaying(); - this.playerAutopauseWhenSwitchingTabs(); -}; + this.classList.toggle('it-btn--active'); + ImprovedTube.improvedtube_youtube_icon_resize(); + return false; + }, true); -/*------------------------------------------------------------------------------ -0.0 ONPLAY -------------------------------------------------------------------------------*/ + if (option === 'draggable') { + var position = localStorage.getItem('IT_ICON'); -ImprovedTube.onplay = function() { - HTMLMediaElement.prototype.play = (function(original) { - return function() { - this.removeEventListener('timeupdate', ImprovedTube.timeupdate); - this.addEventListener('timeupdate', ImprovedTube.timeupdate); + if (ImprovedTube.isset(position)) { + position = JSON.parse(position); - this.removeEventListener('ended', ImprovedTube.ended, true); - this.addEventListener('ended', ImprovedTube.ended, true); + button.style.left = position.x + 'px'; + button.style.top = position.y + 'px'; + } - this.removeEventListener('pause', ImprovedTube.pause, true); - this.addEventListener('pause', ImprovedTube.pause, true); + function move(event) { + button.classList.add('it-btn--dragging'); - ImprovedTube.autoplay(this); - ImprovedTube.playerLoudnessNormalization(); + if (event.clientX < window.innerWidth / 2) { + if (event.clientX - Number(button.dataset.x) >= 16) { + button.style.left = event.clientX - Number(button.dataset.x) + 'px'; + } else { + button.style.left = '16px'; + } + } else { + if (event.clientX + (48 + window.innerWidth - document.querySelector('body').offsetWidth) - Number(button.dataset.x) <= window.innerWidth) { + button.style.left = event.clientX - Number(button.dataset.x) + 'px'; + } else { + button.style.left = 'calc(100vw - ' + (48 + window.innerWidth - document.querySelector('body').offsetWidth) + 'px)'; + } + } - if (ImprovedTube.video_url !== location.href) { - ImprovedTube.video_url = location.href; + if (event.clientY < window.innerHeight / 2) { + if (event.clientY - Number(button.dataset.y) >= 12) { + button.style.top = event.clientY - Number(button.dataset.y) + 'px'; + } else { + button.style.top = '12px'; + } + } else { + if (event.clientY + 44 - Number(button.dataset.y) <= window.innerHeight) { + button.style.top = event.clientY - Number(button.dataset.y) + 'px'; + } else { + button.style.top = 'calc(100vh - 44px)'; + } + } - ImprovedTube.playerUpdate(); - } + ImprovedTube.improvedtube_youtube_icon_resize(); + } - return original.apply(this, arguments); - } - })(HTMLMediaElement.prototype.play); -}; + button.addEventListener('mousedown', function(event) { + this.dataset.x = event.layerX; + this.dataset.y = event.layerY; + window.addEventListener('mousemove', move); + }); -/*------------------------------------------------------------------------------ -0.0 ONKEYDOWN -------------------------------------------------------------------------------*/ + window.addEventListener('mouseup', function() { + button.classList.remove('it-btn--dragging'); -ImprovedTube.onkeydown = function() { - window.addEventListener('keydown', function() { - if ( - document.querySelector('.html5-video-player') && - document.querySelector('.html5-video-player').classList.contains('ad-showing') === false - ) { - ImprovedTube.allow_autoplay = true; - } - }, true); -}; + window.removeEventListener('mousemove', move); + localStorage.setItem('IT_ICON', JSON.stringify({ + x: button.offsetLeft, + y: button.offsetTop + })); -/*------------------------------------------------------------------------------ -0.0 ONMOUSEDOWN -------------------------------------------------------------------------------*/ + setTimeout(function() { + button.style.pointerEvents = ''; + }); + }); + } -ImprovedTube.onmousedown = function(event) { - window.addEventListener('mousedown', function(event) { - var path = event.composedPath(); + if (option === 'header_left') { + parentNode.insertBefore(button, referenceNode); + } else { + parentNode.appendChild(button); + } - for (var i = 0, l = path.length; i < l; i++) { - if ( - document.querySelector('.html5-video-player') && - document.querySelector('.html5-video-player').classList.contains('ad-showing') === false && - path[i].classList && - ( - path[i].classList.contains('html5-main-video') || - path[i].classList.contains('ytp-play-button') - ) - ) { - ImprovedTube.allow_autoplay = true; + ImprovedTube.improvedtube_youtube_icon_resize(); } - } - }, true); -}; - -ImprovedTube.location = function() { - var value = this.storage.default_content_country; - - if (this.isset(value) && value !== 'default') { - this.setCookie('s_gl', value); + }, 250); } }; -ImprovedTube.getCookieValueByName = function(name) { - var match = document.cookie.match(new RegExp('([; ]' + name + '|^' + name + ')([^\\s;]*)', 'g')); - - if (match) { - var cookie = match[0]; - - return cookie.replace(name + '=', '').replace(' ', ''); - } else - return ''; -}; - -ImprovedTube.getParam = function(query, name) { - var params = query.split('&'), - param = false; - - for (var i = 0; i < params.length; i++) { - params[i] = params[i].split('='); - if (params[i][0] == name) { - param = params[i][1]; - } - } +/*------------------------------------------------------------------------------ +10.2 IMPROVEDTUBE BUTTON (SIDEBAR) +------------------------------------------------------------------------------*/ +/* +ImprovedTube.improvedtube_youtube_sidebar_button_wait = false; - if (param) { - return param; - } else { +ImprovedTube.improvedtubeYoutubeSidebarButton = function() { + if (window.self !== window.top) { return false; } -}; -ImprovedTube.getParams = function(query) { - var params = query.split('&'), - result = {}; - - for (var i = 0, l = params.length; i < l; i++) { - params[i] = params[i].split('='); - - result[params[i][0]] = params[i][1]; + if ( + ImprovedTube.storage.improvedtube_youtube_sidebar_button_wait === false && + document.querySelector('.improvedtube-sidebar-a') + ) { + document.querySelector('.improvedtube-sidebar-a').remove(); } - return result; -}; + if (this.improvedtube_youtube_sidebar_button_wait === false) { + this.improvedtube_youtube_sidebar_button_wait = setInterval(function() { + var second_section = document.querySelector('#guide ytd-guide-collapsible-section-entry-renderer'); -ImprovedTube.setCookie = function(name, value) { - var date = new Date(); + if (second_section && !document.querySelector('.improvedtube-sidebar-a')) { + var a = document.createElement('a'); - date.setTime(date.getTime() + 3.154e+10); + a.className = 'improvedtube-sidebar-a'; + a.href = 'https://www.youtube.com/improvedtube'; + a.innerText = 'ImprovedTube'; - document.cookie = name + '=' + value + '; path=/; domain=.youtube.com; expires=' + date.toGMTString(); + second_section.parentNode.insertBefore(a, second_section); + } + }, 250); + } }; -ImprovedTube.createPlayerButton = function (node, options) { - var controls = document.querySelector('.html5-video-player .ytp-left-controls'); - - if (controls) { - var button = document.createElement('button'); - button.className = 'ytp-button it-player-button'; +/*------------------------------------------------------------------------------ +10.3 IMPROVEDTUBE PLAYER BUTTONS +------------------------------------------------------------------------------*/ +/* +ImprovedTube.improvedtube_youtube_player_buttons_wait = false; - button.dataset.title = options.title; +ImprovedTube.improvedtubeYoutubePlayerButtons = function() { + if (window.self !== window.top) { + return false; + } - button.addEventListener('mouseover', function () { - var tooltip = document.createElement('div'), - rect = this.getBoundingClientRect(); + if (this.improvedtube_youtube_player_buttons_wait === false) { + this.improvedtube_youtube_player_buttons_wait = setInterval(function() { + var second_section = document.querySelector('#info #menu-container.ytd-video-primary-info-renderer'); - tooltip.className = 'it-player-button--tooltip'; + if (second_section && !document.querySelector('.improvedtube-player-button')) { + var screenshot_button = document.createElement('button'), + pip_button = document.createElement('button'); - tooltip.style.left = rect.left + rect.width / 2 + 'px'; - tooltip.style.top = rect.top - 8 + 'px'; + screenshot_button.className = 'improvedtube-player-button'; + screenshot_button.innerHTML = ''; + screenshot_button.dataset.tooltip = 'Screenshot'; + screenshot_button.onclick = ImprovedTube.screenshot; - tooltip.textContent = this.dataset.title; + pip_button.className = 'improvedtube-player-button'; + pip_button.innerHTML = ''; + pip_button.dataset.tooltip = 'Picture in picture'; + pip_button.onclick = function() { + var video = document.querySelector('#movie_player video'); - function mouseleave() { - tooltip.remove(); + if (video) { + video.requestPictureInPicture(); + } + }; - this.removeEventListener('mouseleave', mouseleave); + second_section.parentNode.insertBefore(screenshot_button, second_section); + second_section.parentNode.insertBefore(pip_button, second_section); } + }, 250); + } +}; - this.addEventListener('mouseleave', mouseleave); - document.body.appendChild(tooltip); - }); +/*----------------------------------------------------------------------------- +10.4 DELETE YOUTUBE COOKIES +-----------------------------------------------------------------------------*/ - if (options.id) { - if (node.querySelector('#' + options.id)) { - node.querySelector('#' + options.id).remove(); - } +ImprovedTube.deleteYoutubeCookies = function() { + var cookies = document.cookie.split(';'); - button.id = options.id; - } + for (var i = 0, l = cookies.length; i < l; i++) { + var cookie = cookies[i], + eqPos = cookie.indexOf('='), + name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; - if (options.html) { - button.innerHTML = options.html; - } + document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; + } - button.style.opacity = options.opacity || '.5'; + setTimeout(function() { + location.reload(); + }, 100); +}; - if (options.onclick) { - button.onclick = options.onclick; - } - controls.insertBefore(button, controls.childNodes[3]); - } -}; +/*----------------------------------------------------------------------------- +10.5 YOUTUBE LANGUAGE +-----------------------------------------------------------------------------*/ -ImprovedTube.reverse = function(parent) { - for (var i = 1, l = parent.childNodes.length; i < l; i++) { - parent.insertBefore(parent.childNodes[i], parent.firstChild); +ImprovedTube.youtubeLanguage = function() { + var pref = ImprovedTube.getCookieValueByName('PREF'), + hl = ImprovedTube.getParam(pref, 'hl'); + + if (hl) { + ImprovedTube.setCookie('PREF', pref.replace('hl=' + hl, 'hl=' + ImprovedTube.storage.youtube_language)); + } else { + ImprovedTube.setCookie('PREF', pref + '&hl=' + ImprovedTube.storage.youtube_language); } + + setTimeout(function() { + location.reload(); + }, 100); }; -/*------------------------------------------------------------------------------ -0.0 INITIALIZATION -------------------------------------------------------------------------------*/ +/*----------------------------------------------------------------------------- +10.6 DEFAULT CONTENT COUNTRY +-----------------------------------------------------------------------------*/ -ImprovedTube.init = function() { - this.location(); - this.playerH264(); - this.player60fps(); - this.playerSDR(); - this.pageType(); - this.shortcuts(); - this.DOMContentLoaded(); - this.onplay(); - this.onkeydown(); - this.onmousedown(); +ImprovedTube.defaultContentCountry = function() { + var value = this.storage.default_content_country; - window.addEventListener('load', function() { - ImprovedTube.hdThumbnails(); - ImprovedTube.hideThumbnailOverlay(); - ImprovedTube.channelDefaultTab(); - }); + if (this.isset(value) && value !== 'default') { + this.setCookie('s_gl', value); + } }; \ No newline at end of file From ea2b1ea47a8c883728e8e472aa8e6330279f1062 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 15 Jul 2021 10:46:35 +0300 Subject: [PATCH 0190/1224] Upgrading "Shortcuts" --- youtube-scripts.js | 1189 +++++++++++++++++++++++++------------------- 1 file changed, 683 insertions(+), 506 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index c4511098e..983447e56 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -58,6 +58,34 @@ 6.0 Channel 6.1 Default channel tab 7.0 Shortcuts + # Quality + # Picture in Picture + # Toggle control + # Play / pause + # Stop + # Toggle autoplay + # Next videos + # Previous video + # Seek backward + # Seek forward + # Seek next chapter + # Seek previous chapter + # Increase volume + # Decrease volume + # Screenshot + # Increase playback speed + # Decrease playback speed + # Go to search box + # Activate fullscreen + # Activate captions + # Like + # Dislike + # Subscribe + # Dark theme + # Custom mini player + # Stats for nerds + # Toggle cards + # Popup player 8.0 Blacklist 9.0 Analyzer 10.0 Settings @@ -118,8 +146,8 @@ var ImprovedTube = { The first function called on the YouTube side. ------------------------------------------------------------------------------*/ -ImprovedTube.init = function() { - window.addEventListener('DOMContentLoaded', function() { +ImprovedTube.init = function () { + window.addEventListener('DOMContentLoaded', function () { ImprovedTube.youtubeHomePage(); ImprovedTube.collapseOfSubscriptionSections(); ImprovedTube.addScrollToTop(); @@ -139,7 +167,7 @@ ImprovedTube.init = function() { //ImprovedTube.improvedtubeYoutubePlayerButtons(); }); - window.addEventListener('yt-page-data-updated', function() { + window.addEventListener('yt-page-data-updated', function () { console.log('yt-page-data-updated'); ImprovedTube.pageType(); ImprovedTube.videoPageUpdate(); @@ -171,7 +199,7 @@ ImprovedTube.init = function() { 0.0 PAGE ------------------------------------------------------------------------------*/ -ImprovedTube.pageType = function() { +ImprovedTube.pageType = function () { if (location.pathname === '/') { document.documentElement.dataset.pageType = 'home'; } else if (/\/watch\?/.test(location.href)) { @@ -181,12 +209,12 @@ ImprovedTube.pageType = function() { } }; -ImprovedTube.pageOnFocus = function() { +ImprovedTube.pageOnFocus = function () { this.onlyOnePlayerInstancePlaying(); this.playerAutopauseWhenSwitchingTabs(); }; -ImprovedTube.videoPageUpdate = function() { +ImprovedTube.videoPageUpdate = function () { if (document.documentElement.dataset.pageType === 'video') { var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); @@ -232,9 +260,9 @@ ImprovedTube.videoPageUpdate = function() { 0.0 PLAYER ------------------------------------------------------------------------------*/ -ImprovedTube.playerOnPlay = function() { - HTMLMediaElement.prototype.play = (function(original) { - return function() { +ImprovedTube.playerOnPlay = function () { + HTMLMediaElement.prototype.play = (function (original) { + return function () { this.removeEventListener('timeupdate', ImprovedTube.playerOnTimeUpdate); this.addEventListener('timeupdate', ImprovedTube.playerOnTimeUpdate); @@ -265,15 +293,15 @@ ImprovedTube.playerOnPlay = function() { })(HTMLMediaElement.prototype.play); }; -ImprovedTube.playerOnPause = function(event) { +ImprovedTube.playerOnPause = function (event) { ImprovedTube.playlistUpNextAutoplay(event); }; -ImprovedTube.playerOnEnded = function(event) { +ImprovedTube.playerOnEnded = function (event) { ImprovedTube.playlistUpNextAutoplay(event); }; -ImprovedTube.playerOnTimeUpdate = function() { +ImprovedTube.playerOnTimeUpdate = function () { if (ImprovedTube.video_src !== this.src) { ImprovedTube.video_src = this.src; @@ -294,25 +322,12 @@ ImprovedTube.playerOnTimeUpdate = function() { }; - - - - - - - - - - - - - /*------------------------------------------------------------------------------ 0.0 ONKEYDOWN ------------------------------------------------------------------------------*/ -ImprovedTube.onkeydown = function() { - window.addEventListener('keydown', function() { +ImprovedTube.onkeydown = function () { + window.addEventListener('keydown', function () { if ( document.querySelector('.html5-video-player') && document.querySelector('.html5-video-player').classList.contains('ad-showing') === false @@ -327,8 +342,8 @@ ImprovedTube.onkeydown = function() { 0.0 ONMOUSEDOWN ------------------------------------------------------------------------------*/ -ImprovedTube.onmousedown = function(event) { - window.addEventListener('mousedown', function(event) { +ImprovedTube.onmousedown = function (event) { + window.addEventListener('mousedown', function (event) { var path = event.composedPath(); for (var i = 0, l = path.length; i < l; i++) { @@ -348,12 +363,7 @@ ImprovedTube.onmousedown = function(event) { }; - - - - - -ImprovedTube.getCookieValueByName = function(name) { +ImprovedTube.getCookieValueByName = function (name) { var match = document.cookie.match(new RegExp('([; ]' + name + '|^' + name + ')([^\\s;]*)', 'g')); if (match) { @@ -364,7 +374,7 @@ ImprovedTube.getCookieValueByName = function(name) { return ''; }; -ImprovedTube.getParam = function(query, name) { +ImprovedTube.getParam = function (query, name) { var params = query.split('&'), param = false; @@ -383,7 +393,7 @@ ImprovedTube.getParam = function(query, name) { } }; -ImprovedTube.getParams = function(query) { +ImprovedTube.getParams = function (query) { var params = query.split('&'), result = {}; @@ -396,7 +406,7 @@ ImprovedTube.getParams = function(query) { return result; }; -ImprovedTube.setCookie = function(name, value) { +ImprovedTube.setCookie = function (name, value) { var date = new Date(); date.setTime(date.getTime() + 3.154e+10); @@ -458,27 +468,13 @@ ImprovedTube.createPlayerButton = function (node, options) { } }; -ImprovedTube.reverse = function(parent) { +ImprovedTube.reverse = function (parent) { for (var i = 1, l = parent.childNodes.length; i < l; i++) { parent.insertBefore(parent.childNodes[i], parent.firstChild); } }; - - - - - - - - - - - - - - /*------------------------------------------------------------------------------ 1.0 GENERAL ------------------------------------------------------------------------------*/ @@ -487,7 +483,7 @@ ImprovedTube.reverse = function(parent) { 1.1 YOUTUBE HOME PAGE ------------------------------------------------------------------------------*/ -ImprovedTube.youtubeHomePage = function() { +ImprovedTube.youtubeHomePage = function () { var option = this.storage.youtube_home_page; if ( @@ -512,7 +508,7 @@ ImprovedTube.youtubeHomePage = function() { } node.href = option; - node.addEventListener('click', function() { + node.addEventListener('click', function () { if ( this.data && this.data.commandMetadata && @@ -537,7 +533,7 @@ ImprovedTube.youtubeHomePage = function() { 1.2 COLLAPSE OF SUBSCRIPTION SECTION ------------------------------------------------------------------------------*/ -ImprovedTube.collapseOfSubscriptionSections = function() { +ImprovedTube.collapseOfSubscriptionSections = function () { if (/\/feed\/subscriptions/.test(location.href)) { if (this.storage.collapse_of_subscription_sections === true) { var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'); @@ -550,7 +546,7 @@ ImprovedTube.collapseOfSubscriptionSections = function() { button.className = 'it-section-collapse'; button.innerHTML = ''; button.section = sections[i]; - button.addEventListener('click', function() { + button.addEventListener('click', function () { var section = this.section, content = section.querySelector('.grid-subheader + #contents, .shelf-title-table + .multirow-shelf'); @@ -559,7 +555,7 @@ ImprovedTube.collapseOfSubscriptionSections = function() { content.style.transition = 'height 150ms'; } - setTimeout(function() { + setTimeout(function () { section.classList.toggle('it-section-collapsed'); }); }); @@ -589,14 +585,14 @@ ImprovedTube.collapseOfSubscriptionSections = function() { 1.3 ADD "SCROLL TO TOP" ------------------------------------------------------------------------------*/ -ImprovedTube.addScrollToTop = function(is_update) { +ImprovedTube.addScrollToTop = function (is_update) { if (this.storage.add_scroll_to_top === true) { var button = document.createElement('div'); button.id = 'it-scroll-to-top'; button.innerHTML = ''; - button.addEventListener('click', function() { + button.addEventListener('click', function () { window.scrollTo(0, 0); }); @@ -614,7 +610,7 @@ ImprovedTube.addScrollToTop = function(is_update) { } }; -ImprovedTube.scroll = function() { +ImprovedTube.scroll = function () { if (window.scrollY > window.innerHeight / 2) { document.documentElement.setAttribute('it-show-scroll-to-top', true); } else { @@ -627,8 +623,8 @@ ImprovedTube.scroll = function() { 1.4 CONFIRMATION BEFORE CLOSING ------------------------------------------------------------------------------*/ -ImprovedTube.confirmationBeforeClosing = function() { - window.onbeforeunload = function() { +ImprovedTube.confirmationBeforeClosing = function () { + window.onbeforeunload = function () { if (ImprovedTube.storage.confirmation_before_closing === true) { return 'You have attempted to leave this page. Are you sure?'; } @@ -640,7 +636,7 @@ ImprovedTube.confirmationBeforeClosing = function() { 1.5 MARK WATCHED VIDEOS ------------------------------------------------------------------------------*/ -ImprovedTube.markWatchedVideos = function() { +ImprovedTube.markWatchedVideos = function () { if (ImprovedTube.storage.mark_watched_videos === true) { var video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); @@ -651,7 +647,7 @@ ImprovedTube.markWatchedVideos = function() { button.className = 'it-mark-watched' + (this.storage.watched && this.storage.watched[this.getParam(new URL(video_items[i].href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); button.innerHTML = ''; - button.addEventListener('click', function(event) { + button.addEventListener('click', function (event) { var watched = !this.classList.contains('watched'); event.preventDefault(); @@ -710,7 +706,7 @@ ImprovedTube.markWatchedVideos = function() { } }; -document.addEventListener('ImprovedTubeWatched', function(event) { +document.addEventListener('ImprovedTubeWatched', function (event) { if (chrome && chrome.runtime) { chrome.runtime.sendMessage({ name: 'improvedtube-watched', @@ -728,7 +724,7 @@ document.addEventListener('ImprovedTubeWatched', function(event) { 1.6 ONLY ONE PLAYER INSTANCE PLAYING ------------------------------------------------------------------------------*/ -ImprovedTube.onlyOnePlayerInstancePlaying = function() { +ImprovedTube.onlyOnePlayerInstancePlaying = function () { var video = document.querySelector('.html5-video-player video'); if (this.storage.only_one_player_instance_playing === true && video) { @@ -740,7 +736,7 @@ ImprovedTube.onlyOnePlayerInstancePlaying = function() { } }; -document.addEventListener('ImprovedTubeOnlyOnePlayer', function(event) { +document.addEventListener('ImprovedTubeOnlyOnePlayer', function (event) { if (chrome && chrome.runtime) { chrome.runtime.sendMessage({ name: 'improvedtube-only-one-player' @@ -753,7 +749,7 @@ document.addEventListener('ImprovedTubeOnlyOnePlayer', function(event) { 1.7 HD THUMBNAILS ------------------------------------------------------------------------------*/ -ImprovedTube.hdThumbnails = function() { +ImprovedTube.hdThumbnails = function () { if (this.storage.hd_thumbnails === true) { var images = document.querySelectorAll('img'); @@ -761,7 +757,7 @@ ImprovedTube.hdThumbnails = function() { if (/(hqdefault\.jpg|hq720.jpg)+/.test(images[i].src) && !images[i].dataset.defaultSrc) { images[i].dataset.defaultSrc = images[i].src; - images[i].onload = function() { + images[i].onload = function () { if (this.naturalHeight <= 90) { this.src = this.dataset.defaultSrc; } @@ -785,7 +781,7 @@ ImprovedTube.hdThumbnails = function() { 1.8 HIDE THUMBNAIL OVERLAY ------------------------------------------------------------------------------*/ -ImprovedTube.hideThumbnailOverlay = function() { +ImprovedTube.hideThumbnailOverlay = function () { if (this.storage.hide_thumbnail_overlay === true) { var overlays = document.querySelectorAll('#hover-overlays'); @@ -808,7 +804,7 @@ ImprovedTube.hideThumbnailOverlay = function() { 2.1.1 FORCED THEATER MODE ------------------------------------------------------------------------------*/ -ImprovedTube.forcedTheaterMode = function() { +ImprovedTube.forcedTheaterMode = function () { if (window.self === window.top && (ImprovedTube.storage.forced_theater_mode === true || ImprovedTube.storage.player_size === 'fit_to_window')) { var button = document.querySelector('button.ytp-size-button'); @@ -823,7 +819,7 @@ ImprovedTube.forcedTheaterMode = function() { 2.1.2 HD THUMBNAIL ------------------------------------------------------------------------------*/ -ImprovedTube.playerHdThumbnail = function() { +ImprovedTube.playerHdThumbnail = function () { if (this.storage.player_hd_thumbnail === true) { if (this.player_hd_thumbnail_wait !== false) { clearInterval(ImprovedTube.player_hd_thumbnail_wait); @@ -831,7 +827,7 @@ ImprovedTube.playerHdThumbnail = function() { ImprovedTube.player_hd_thumbnail_wait = false; } - this.player_hd_thumbnail_wait = setInterval(function() { + this.player_hd_thumbnail_wait = setInterval(function () { var thumbnail = document.querySelector('.ytp-cued-thumbnail-overlay-image'); if (thumbnail && thumbnail.style.backgroundImage) { @@ -853,13 +849,13 @@ ImprovedTube.playerHdThumbnail = function() { 2.1.3 ALWAYS SHOW PROGRESS BAR ------------------------------------------------------------------------------*/ -ImprovedTube.alwaysShowProgressBar = function() { +ImprovedTube.alwaysShowProgressBar = function () { if (ImprovedTube.always_show_progress_bar_interval) { clearInterval(ImprovedTube.always_show_progress_bar_interval); } if (this.storage.always_show_progress_bar === true) { - ImprovedTube.always_show_progress_bar_interval = setInterval(function() { + ImprovedTube.always_show_progress_bar_interval = setInterval(function () { var player = document.querySelector('.html5-video-player'); if (player && player.classList.contains('ytp-autohide')) { @@ -915,13 +911,13 @@ ImprovedTube.alwaysShowProgressBar = function() { 2.2.1 LIVECHAT ------------------------------------------------------------------------------*/ -ImprovedTube.livechat = function() { +ImprovedTube.livechat = function () { if ( document.documentElement.getAttribute('data-page-type') === 'video' && this.storage.livechat === 'collapsed' && this.livechat_wait === false ) { - this.livechat_wait = setInterval(function() { + this.livechat_wait = setInterval(function () { var button = document.querySelector('#chat:not([collapsed]) #show-hide-button paper-button'), expander = document.querySelector('#watch-sidebar-live-chat .yt-uix-expander'); @@ -939,7 +935,7 @@ ImprovedTube.livechat = function() { button.addEventListener('mousedown', click); button.addEventListener('touchdown', click); - setTimeout(function() { + setTimeout(function () { if (ImprovedTube.livechat_url !== location.href) { button.click(); } @@ -956,10 +952,10 @@ ImprovedTube.livechat = function() { 2.2.2 RELATIVE VIDEOS ------------------------------------------------------------------------------*/ -ImprovedTube.relatedVideos = function() { +ImprovedTube.relatedVideos = function () { if (this.storage.related_videos === 'collapsed') { if (!this.related_videos_wait) { - this.related_videos_wait = setInterval(function() { + this.related_videos_wait = setInterval(function () { if ( document.querySelector('#related.ytd-watch-flexy') || document.querySelector('#watch7-sidebar-contents') @@ -977,7 +973,7 @@ ImprovedTube.relatedVideos = function() { button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; button.innerHTML = 'Show moreShow less'; - button.onclick = function() { + button.onclick = function () { document.documentElement.classList.toggle('related-videos-collapsed'); }; @@ -992,7 +988,7 @@ ImprovedTube.relatedVideos = function() { this.related_videos_wait = false; - setTimeout(function() { + setTimeout(function () { var button = document.getElementById('improvedtube-collapsed-related-videos'); if (button) { @@ -1011,7 +1007,7 @@ ImprovedTube.relatedVideos = function() { 2.3.1 HOW LONG AGO THE VIDEO WAS UPLOADED ------------------------------------------------------------------------------*/ -ImprovedTube.howLongAgoTheVideoWasUploaded = function() { +ImprovedTube.howLongAgoTheVideoWasUploaded = function () { if (ImprovedTube.storage.how_long_ago_the_video_was_uploaded === true) { function timeSince(date) { var seconds = Math.floor((new Date() - new Date(date)) / 1000), @@ -1040,7 +1036,7 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function() { return Math.floor(seconds) + ' seconds ago'; } - var waiting_channel_link = setInterval(function() { + var waiting_channel_link = setInterval(function () { var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new', api_key = typeof ImprovedTube.storage.google_api_key === 'string' && ImprovedTube.storage.google_api_key.length > 0 ? ImprovedTube.storage.google_api_key : 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; @@ -1049,7 +1045,7 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function() { var xhr = new XMLHttpRequest(); - xhr.addEventListener('load', function() { + xhr.addEventListener('load', function () { var response = JSON.parse(this.responseText), element = document.querySelector('.itx-channel-video-uploaded') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); @@ -1087,9 +1083,9 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function() { TODO: TEST ------------------------------------------------------------------------------*/ -ImprovedTube.channelVideosCount = function() { +ImprovedTube.channelVideosCount = function () { if (this.storage.channel_videos_count === true) { - var waiting_channel_link = setInterval(function() { + var waiting_channel_link = setInterval(function () { var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a')) { @@ -1097,7 +1093,7 @@ ImprovedTube.channelVideosCount = function() { var xhr = new XMLHttpRequest(); - xhr.addEventListener('load', function() { + xhr.addEventListener('load', function () { var response = JSON.parse(this.responseText), element = document.querySelector('.itx-channel-videos-count') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); @@ -1129,10 +1125,10 @@ ImprovedTube.channelVideosCount = function() { 2.4 COMMENTS ------------------------------------------------------------------------------*/ -ImprovedTube.comments = function() { +ImprovedTube.comments = function () { if (this.storage.comments === 'collapsed') { if (this.comments_wait === false) { - this.comments_wait = setInterval(function() { + this.comments_wait = setInterval(function () { if ( document.getElementById('comment-section-renderer-items') || document.querySelector('#comments #sections #contents') @@ -1150,7 +1146,7 @@ ImprovedTube.comments = function() { button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; button.innerHTML = 'Show moreShow less'; - button.onclick = function() { + button.onclick = function () { document.documentElement.classList.toggle('comments-collapsed'); }; @@ -1165,7 +1161,7 @@ ImprovedTube.comments = function() { this.comments_wait = false; - setTimeout(function() { + setTimeout(function () { if (document.getElementById('improvedtube-collapsed-comments')) { document.getElementById('improvedtube-collapsed-comments').remove(); } @@ -1182,7 +1178,7 @@ ImprovedTube.comments = function() { 3.1 MY COLORS ------------------------------------------------------------------------------*/ -ImprovedTube.myColors = function() { +ImprovedTube.myColors = function () { if (this.storage.theme_my_colors !== true) { if (document.querySelector('.it-theme-editor')) { document.querySelector('.it-theme-editor').remove(); @@ -1243,7 +1239,7 @@ ImprovedTube.myColors = function() { 3.2 BLUELIGHT ------------------------------------------------------------------------------*/ -ImprovedTube.bluelight = function() { +ImprovedTube.bluelight = function () { var value = this.storage.bluelight, times = { from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), @@ -1281,7 +1277,7 @@ ImprovedTube.bluelight = function() { 3.3 DIM ------------------------------------------------------------------------------*/ -ImprovedTube.dim = function() { +ImprovedTube.dim = function () { var value = this.storage.dim, times = { from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), @@ -1338,7 +1334,7 @@ ImprovedTube.dim = function() { 3.4 FONT ------------------------------------------------------------------------------*/ -ImprovedTube.font = function() { +ImprovedTube.font = function () { if (this.storage.font) { if (this.storage.font !== 'Default') { if (!document.querySelector('.it-font-family')) { @@ -1363,7 +1359,7 @@ ImprovedTube.font = function() { 3.5 THEMES ------------------------------------------------------------------------------*/ -ImprovedTube.themes = function() { +ImprovedTube.themes = function () { var times = { from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) @@ -1419,7 +1415,7 @@ ImprovedTube.themes = function() { 4.1 AUTOPLAY ------------------------------------------------------------------------------*/ -ImprovedTube.autoplay = function(video) { +ImprovedTube.autoplay = function (video) { if (ImprovedTube.video_url !== location.href) { ImprovedTube.allow_autoplay = false; } @@ -1433,7 +1429,7 @@ ImprovedTube.autoplay = function(video) { ImprovedTube.allow_autoplay === false && video.parentNode.parentNode.classList.contains('ad-showing') === false ) { - setTimeout(function() { + setTimeout(function () { video.parentNode.parentNode.pauseVideo(); }); } @@ -1444,7 +1440,7 @@ ImprovedTube.autoplay = function(video) { 4.2 AUTOPAUSE WHEN SWITCHING TABS ------------------------------------------------------------------------------*/ -ImprovedTube.playerAutopauseWhenSwitchingTabs = function() { +ImprovedTube.playerAutopauseWhenSwitchingTabs = function () { var video = document.querySelector('.html5-video-player video'); if (this.storage.player_autopause_when_switching_tabs === true && video) { @@ -1464,7 +1460,7 @@ ImprovedTube.playerAutopauseWhenSwitchingTabs = function() { 4.3 FORCED PLAYBACK SPEED ------------------------------------------------------------------------------*/ -ImprovedTube.playerPlaybackSpeed = function(node) { +ImprovedTube.playerPlaybackSpeed = function (node) { var option = Number(ImprovedTube.storage.player_playback_speed), player = document.querySelector('.html5-video-player'), is_live = false; @@ -1489,7 +1485,7 @@ ImprovedTube.playerPlaybackSpeed = function(node) { 4.4 SUBTITLES ------------------------------------------------------------------------------*/ -ImprovedTube.subtitles = function() { +ImprovedTube.subtitles = function () { }; @@ -1498,7 +1494,7 @@ ImprovedTube.subtitles = function() { 4.5 UP NEXT AUTOPLAY ------------------------------------------------------------------------------*/ -ImprovedTube.upNextAutoplay = function() { +ImprovedTube.upNextAutoplay = function () { var option = this.storage.up_next_autoplay; if (this.isset(option)) { @@ -1518,13 +1514,13 @@ ImprovedTube.upNextAutoplay = function() { 4.6 ADS ------------------------------------------------------------------------------*/ -ImprovedTube.playerAds = function() { +ImprovedTube.playerAds = function () { if (ImprovedTube.adInterval) { clearInterval(ImprovedTube.adInterval); } if (ImprovedTube.storage.player_ads === 'block_all') { - ImprovedTube.adInterval = setInterval(function() { + ImprovedTube.adInterval = setInterval(function () { var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); if (button) { @@ -1534,7 +1530,7 @@ ImprovedTube.playerAds = function() { } }, 50); } else if (ImprovedTube.storage.player_ads === 'subscribed_channels') { - ImprovedTube.adInterval = setInterval(function() { + ImprovedTube.adInterval = setInterval(function () { var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); if (button && !document.querySelector('#meta paper-button[subscribed]')) { @@ -1551,16 +1547,16 @@ ImprovedTube.playerAds = function() { 4.7 CUSTOM MINI-PLAYER ------------------------------------------------------------------------------*/ -ImprovedTube.mini_player__setPosition = function(x, y) { +ImprovedTube.mini_player__setPosition = function (x, y) { ImprovedTube.mini_player__element.style.transform = 'translate3d(' + x + 'px, ' + y + 'px, 0)'; }; -ImprovedTube.mini_player__setSize = function(width, height) { +ImprovedTube.mini_player__setSize = function (width, height) { ImprovedTube.mini_player__element.style.width = width + 'px'; ImprovedTube.mini_player__element.style.height = height + 'px'; }; -ImprovedTube.mini_player__scroll = function() { +ImprovedTube.mini_player__scroll = function () { if (window.scrollY >= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === false) { ImprovedTube.mini_player__mode = true; @@ -1601,7 +1597,7 @@ ImprovedTube.mini_player__scroll = function() { } }; -ImprovedTube.mini_player__mousedown = function(event) { +ImprovedTube.mini_player__mousedown = function (event) { if (event.button !== 0) { return false; } @@ -1642,7 +1638,7 @@ ImprovedTube.mini_player__mousedown = function(event) { window.addEventListener('mousemove', ImprovedTube.mini_player__mousemove); }; -ImprovedTube.mini_player__mouseup = function() { +ImprovedTube.mini_player__mouseup = function () { var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; strg.x = ImprovedTube.mini_player__x; @@ -1655,17 +1651,17 @@ ImprovedTube.mini_player__mouseup = function() { ImprovedTube.mini_player__move = false; - setTimeout(function() { + setTimeout(function () { window.removeEventListener('click', ImprovedTube.mini_player__click, true); }); }; -ImprovedTube.mini_player__click = function(event) { +ImprovedTube.mini_player__click = function (event) { event.stopPropagation(); event.preventDefault(); }; -ImprovedTube.mini_player__mousemove = function(event) { +ImprovedTube.mini_player__mousemove = function (event) { if ( event.clientX < ImprovedTube.mini_player__mousedown_x - 5 || event.clientY < ImprovedTube.mini_player__mousedown_y - 5 || @@ -1704,7 +1700,7 @@ ImprovedTube.mini_player__mousemove = function(event) { } }; -ImprovedTube.mini_player__cursorUpdate = function(event) { +ImprovedTube.mini_player__cursorUpdate = function (event) { var x = event.clientX, y = event.clientY, c = ImprovedTube.mini_player__cursor; @@ -1776,7 +1772,7 @@ ImprovedTube.mini_player__cursorUpdate = function(event) { } }; -ImprovedTube.mini_player__resize = function(event) { +ImprovedTube.mini_player__resize = function (event) { if (ImprovedTube.mini_player__cursor !== '') { window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); window.addEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); @@ -1786,7 +1782,7 @@ ImprovedTube.mini_player__resize = function(event) { } }; -ImprovedTube.mini_player__resize_mouseMove = function(event) { +ImprovedTube.mini_player__resize_mouseMove = function (event) { if (ImprovedTube.mini_player__cursor === 'n-resize') { ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); @@ -1811,7 +1807,7 @@ ImprovedTube.mini_player__resize_mouseMove = function(event) { } }; -ImprovedTube.mini_player__resize_mouseUp = function(event) { +ImprovedTube.mini_player__resize_mouseUp = function (event) { var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); ImprovedTube.mini_player__x = bcr.left; @@ -1833,7 +1829,7 @@ ImprovedTube.mini_player__resize_mouseUp = function(event) { window.removeEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); }; -ImprovedTube.mini_player = function() { +ImprovedTube.mini_player = function () { ImprovedTube.mini_player__element = document.querySelector('.html5-video-player'); if (ImprovedTube.storage.mini_player === true) { @@ -1874,7 +1870,7 @@ ImprovedTube.mini_player = function() { 4.8 AUTO FULLSCREEN ------------------------------------------------------------------------------*/ -ImprovedTube.playerAutofullscreen = function(node) { +ImprovedTube.playerAutofullscreen = function (node) { if (!node) { node = document.querySelector('.html5-video-player'); } @@ -1894,7 +1890,7 @@ ImprovedTube.playerAutofullscreen = function(node) { 4.9 QUALITY ------------------------------------------------------------------------------*/ -ImprovedTube.playerQuality = function(node) { +ImprovedTube.playerQuality = function (node) { var quality = ImprovedTube.storage.player_quality; if (!node) { @@ -1920,7 +1916,7 @@ ImprovedTube.playerQuality = function(node) { 4.10 CODEC H.264 ------------------------------------------------------------------------------*/ -ImprovedTube.playerH264 = function() { +ImprovedTube.playerH264 = function () { if (this.storage.player_h264 === true) { var canPlayType = HTMLMediaElement.prototype.canPlayType; @@ -1935,12 +1931,12 @@ ImprovedTube.playerH264 = function() { if (window.MediaSource) { var isTypeSupported = window.MediaSource.isTypeSupported; - window.MediaSource.isTypeSupported = function(mime) { + window.MediaSource.isTypeSupported = function (mime) { return overwrite(this, isTypeSupported, mime); }; } - HTMLMediaElement.prototype.canPlayType = function(mime) { + HTMLMediaElement.prototype.canPlayType = function (mime) { var status = overwrite(this, canPlayType, mime); if (!status) { @@ -1957,7 +1953,7 @@ ImprovedTube.playerH264 = function() { 4.11 ALLOW 60FPS ------------------------------------------------------------------------------*/ -ImprovedTube.player60fps = function() { +ImprovedTube.player60fps = function () { if (this.storage.player_60fps === false) { var canPlayType = HTMLMediaElement.prototype.canPlayType; @@ -1974,12 +1970,12 @@ ImprovedTube.player60fps = function() { if (window.MediaSource) { var isTypeSupported = window.MediaSource.isTypeSupported; - window.MediaSource.isTypeSupported = function(mime) { + window.MediaSource.isTypeSupported = function (mime) { return overwrite(this, isTypeSupported, mime); }; } - HTMLMediaElement.prototype.canPlayType = function(mime) { + HTMLMediaElement.prototype.canPlayType = function (mime) { var status = overwrite(this, canPlayType, mime); if (!status) { @@ -1996,12 +1992,12 @@ ImprovedTube.player60fps = function() { 4.12 FORCED VOLUME ------------------------------------------------------------------------------*/ -ImprovedTube.playerVolume = function(node) { +ImprovedTube.playerVolume = function (node) { if (!node) { node = document.querySelector('.html5-video-player'); } - if (node && ImprovedTube.storage.player_forced_volume === true && ImprovedTube.initialVideoUpdateDone == false ) { + if (node && ImprovedTube.storage.player_forced_volume === true && ImprovedTube.initialVideoUpdateDone == false) { var volume = Number(ImprovedTube.storage.player_volume); if (!ImprovedTube.isset(volume)) { @@ -2017,7 +2013,7 @@ ImprovedTube.playerVolume = function(node) { 4.13 LOUDNESS NORMALIZATION ------------------------------------------------------------------------------*/ -ImprovedTube.onvolumechange = function(event) { +ImprovedTube.onvolumechange = function (event) { if (document.querySelector('.ytp-volume-panel') && ImprovedTube.storage.player_loudness_normalization === false) { var volume = Number(document.querySelector('.ytp-volume-panel').getAttribute('aria-valuenow')); @@ -2025,7 +2021,7 @@ ImprovedTube.onvolumechange = function(event) { } }; -ImprovedTube.playerLoudnessNormalization = function() { +ImprovedTube.playerLoudnessNormalization = function () { var video = document.querySelector('video'); if (video) { @@ -2056,7 +2052,7 @@ ImprovedTube.playerLoudnessNormalization = function() { 4.14 SCREENSHOT ------------------------------------------------------------------------------*/ -ImprovedTube.screenshot = function() { +ImprovedTube.screenshot = function () { document.body.style.opacity = '0'; var video = document.querySelector('.html5-video-player video'), @@ -2068,13 +2064,13 @@ ImprovedTube.screenshot = function() { video.style.width = video.videoWidth + 'px'; video.style.height = video.videoHeight + 'px'; - setTimeout(function() { + setTimeout(function () { cvs.width = video.videoWidth; cvs.height = video.videoHeight; ctx.drawImage(video, 0, 0, cvs.width, cvs.height); - cvs.toBlob(function(blob) { + cvs.toBlob(function (blob) { if (ImprovedTube.storage.player_screenshot_save_as !== 'clipboard') { var a = document.createElement('a'); @@ -2093,7 +2089,7 @@ ImprovedTube.screenshot = function() { } catch (error) {} } - setTimeout(function() { + setTimeout(function () { video.style.width = old_w + 'px'; video.style.height = old_h + 'px'; @@ -2103,7 +2099,7 @@ ImprovedTube.screenshot = function() { }, 100); }; -ImprovedTube.playerScreenshotButton = function() { +ImprovedTube.playerScreenshotButton = function () { if (this.storage.player_screenshot_button === true) { if (!node) { var node = document.querySelector('.html5-video-player'); @@ -2126,7 +2122,7 @@ ImprovedTube.playerScreenshotButton = function() { 4.15 REPEAT ------------------------------------------------------------------------------*/ -ImprovedTube.playerRepeatButton = function(node) { +ImprovedTube.playerRepeatButton = function (node) { if (this.storage.player_repeat_button === true) { if (!node) { var node = document.querySelector('.html5-video-player'); @@ -2135,7 +2131,7 @@ ImprovedTube.playerRepeatButton = function(node) { this.createPlayerButton(node, { id: 'it-repeat-button', html: '', - onclick: function() { + onclick: function () { if (node.querySelector('video').hasAttribute('loop')) { node.querySelector('video').removeAttribute('loop'); this.style.opacity = '.5'; @@ -2148,7 +2144,7 @@ ImprovedTube.playerRepeatButton = function(node) { }); if (this.storage.player_always_repeat === true) { - setTimeout(function() { + setTimeout(function () { node.querySelector('video').setAttribute('loop', ''); node.querySelector('#it-repeat-button').style.opacity = '1'; }, 100); @@ -2163,7 +2159,7 @@ ImprovedTube.playerRepeatButton = function(node) { 4.16 ROTATE ------------------------------------------------------------------------------*/ -ImprovedTube.playerRotateButton = function() { +ImprovedTube.playerRotateButton = function () { if (this.storage.player_rotate_button === true) { if (!node) { var node = document.querySelector('.html5-video-player'); @@ -2173,7 +2169,7 @@ ImprovedTube.playerRotateButton = function() { id: 'it-rotate-button', html: '', opacity: 1, - onclick: function() { + onclick: function () { var video = node.querySelector('video'), player = node, transform = '', @@ -2218,7 +2214,7 @@ ImprovedTube.playerRotateButton = function() { 4.17 POPUP PLAYER ------------------------------------------------------------------------------*/ -ImprovedTube.playerPopupButton = function() { +ImprovedTube.playerPopupButton = function () { if (this.storage.player_popup_button === true) { if (!node) { var node = document.querySelector('.html5-video-player'); @@ -2228,7 +2224,7 @@ ImprovedTube.playerPopupButton = function() { id: 'it-popup-player-button', html: '', opacity: 1, - onclick: function() { + onclick: function () { node.pauseVideo(); window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(node.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + node.offsetWidth + ',height=' + node.offsetHeight); @@ -2245,7 +2241,7 @@ ImprovedTube.playerPopupButton = function() { 4.18 Force SDR ------------------------------------------------------------------------------*/ -ImprovedTube.playerSDR = function() { +ImprovedTube.playerSDR = function () { if (this.storage.player_SDR === true) { Object.defineProperty(window.screen, 'pixelDepth', { enumerable: true, @@ -2260,7 +2256,7 @@ ImprovedTube.playerSDR = function() { 4.19 Hide controls ------------------------------------------------------------------------------*/ -ImprovedTube.playerControls = function() { +ImprovedTube.playerControls = function () { if (!node) { var node = document.querySelector('.html5-video-player'); } @@ -2281,7 +2277,7 @@ ImprovedTube.playerControls = function() { 5.1 UP NEXT AUTOPLAY ------------------------------------------------------------------------------*/ -ImprovedTube.playlistUpNextAutoplay = function(event) { +ImprovedTube.playlistUpNextAutoplay = function (event) { if ( ImprovedTube.getParam(location.href, 'list') && ImprovedTube.storage.playlist_up_next_autoplay === false @@ -2296,7 +2292,7 @@ ImprovedTube.playlistUpNextAutoplay = function(event) { 5.2 REVERSE ------------------------------------------------------------------------------*/ -ImprovedTube.playlistReverse = function() { +ImprovedTube.playlistReverse = function () { if (this.storage.playlist_reverse === true) { if (!document.querySelector('#it-reverse-playlist') && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #start-actions')) { var button = document.createElement('button'); @@ -2305,7 +2301,7 @@ ImprovedTube.playlistReverse = function() { button.className = 'style-scope yt-icon-button'; button.innerHTML = ''; - button.addEventListener('click', function(event) { + button.addEventListener('click', function (event) { var playlist_manager = document.querySelector('yt-playlist-manager'); event.preventDefault(); @@ -2339,7 +2335,7 @@ ImprovedTube.playlistReverse = function() { next_item = document.querySelector('#playlist [selected] + *') || document.querySelector('#playlist ytd-playlist-panel-video-renderer'), prev_href = prev_item.querySelector('a').href, next_href = next_item.querySelector('a').href; - + if (prev_button) { prev_button.href = prev_href; prev_button.dataset.preview = prev_item.querySelector('img').src; @@ -2360,7 +2356,7 @@ ImprovedTube.playlistReverse = function() { next_button.href = next_href; next_button.dataset.preview = next_item.querySelector('img').src; next_button.dataset.tooltipText = next_item.querySelector('#video-title').innerText; - + if (playlist_manager.autoplayData.sets[0].nextButtonVideo) { playlist_manager.autoplayData.sets[0].nextButtonVideo.commandMetadata.webCommandMetadata.url = next_href.replace(location.origin, ''); playlist_manager.autoplayData.sets[0].nextButtonVideo.watchEndpoint.videoId = next_href.match(/(\?|\&)v=[^&]+/)[0].substr(3); @@ -2380,7 +2376,7 @@ ImprovedTube.playlistReverse = function() { } if (ImprovedTube.playlistReversed === true) { - setTimeout(function() { + setTimeout(function () { ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); setTimeout(updateNextButton, 1000); @@ -2394,9 +2390,9 @@ ImprovedTube.playlistReverse = function() { 5.3 REPEAT ------------------------------------------------------------------------------*/ -ImprovedTube.playlistRepeat = function() { +ImprovedTube.playlistRepeat = function () { if (this.isset(this.storage.playlist_repeat) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { - ImprovedTube.playlist_repeat_wait = setInterval(function() { + ImprovedTube.playlist_repeat_wait = setInterval(function () { if ( document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[0] || document.querySelector('.playlist-nav-controls .toggle-loop') @@ -2424,9 +2420,9 @@ ImprovedTube.playlistRepeat = function() { 5.4 SHUFFLE ------------------------------------------------------------------------------*/ -ImprovedTube.playlistShuffle = function() { +ImprovedTube.playlistShuffle = function () { if (this.isset(this.storage.playlist_shuffle) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { - ImprovedTube.playlist_shuffle_wait = setInterval(function() { + ImprovedTube.playlist_shuffle_wait = setInterval(function () { if ( document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[1] || document.querySelector('.playlist-nav-controls .shuffle-playlist') @@ -2458,7 +2454,7 @@ ImprovedTube.playlistShuffle = function() { 6.1 DEFAULT CHANNEL TAB ------------------------------------------------------------------------------*/ -ImprovedTube.channelDefaultTab = function() { +ImprovedTube.channelDefaultTab = function () { if (this.storage.channel_default_tab && this.storage.channel_default_tab !== '/') { var value = this.storage.channel_default_tab, node_list = document.querySelectorAll( @@ -2499,399 +2495,580 @@ ImprovedTube.channelDefaultTab = function() { 7.0 SHORTCUTS ------------------------------------------------------------------------------*/ -ImprovedTube.shortcuts = function() { - var self = this, - keys = {}, - wheel = 0, - hover = false, - status_timer; +/*------------------------------------------------------------------------------ +# QUALITY +------------------------------------------------------------------------------*/ - function showStatus(player, volume) { - if (!player.querySelector('#it-status')) { - var element = document.createElement('div'); +ImprovedTube.shortcutAuto = function () { + var player = document.querySelector('#movie_player'); - element.id = 'it-status'; - element.innerHTML = volume; + if (player) { + player.setPlaybackQualityRange('auto'); + player.setPlaybackQuality('auto'); + } +}; - document.querySelector('.html5-video-container').appendChild(element); +ImprovedTube.shortcut_240p = function () { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('small'); + player.setPlaybackQuality('small'); + } +}; + +ImprovedTube.shortcut_360p = function () { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('medium'); + player.setPlaybackQuality('medium'); + } +}; + +ImprovedTube.shortcut_480p = function () { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('large'); + player.setPlaybackQuality('large'); + } +}; + +ImprovedTube.shortcut_720p = function () { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('hd720'); + player.setPlaybackQuality('hd720'); + } +}; + +ImprovedTube.shortcut_1080p = function () { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('hd1080'); + player.setPlaybackQuality('hd1080'); + } +}; + +ImprovedTube.shortcut_1440p = function () { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('hd1440'); + player.setPlaybackQuality('hd1440'); + } +}; + +ImprovedTube.shortcut_2160p = function () { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('hd2160'); + player.setPlaybackQuality('hd2160'); + } +}; + +ImprovedTube.shortcut_2880p = function () { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('hd2880'); + player.setPlaybackQuality('hd2880'); + } +}; + +ImprovedTube.shortcut_4320p = function () { + var player = document.querySelector('#movie_player'); + + if (player) { + player.setPlaybackQualityRange('highres'); + player.setPlaybackQuality('highres'); + } +}; + +ImprovedTube.shortcutQuality = function () { + +}; + + +/*------------------------------------------------------------------------------ +# PICTURE IN PICTURE +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutPictureInPicture = function () { + var video = document.querySelector('#movie_player video'); + + if (video) { + video.requestPictureInPicture(); + } +}; + + +/*------------------------------------------------------------------------------ +# TOGGLE CONTROLS +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutToggleControls = function () { + var player = document.querySelector('.html5-video-player'); + + if (player && player.hideControls && player.showControls) { + ImprovedTube.storage.player_hide_controls = !ImprovedTube.storage.player_hide_controls; + + if (ImprovedTube.storage.player_hide_controls === true) { + player.hideControls(); } else { - player.querySelector('#it-status').innerHTML = volume; + player.showControls(); } + } +}; - if (status_timer) { - clearTimeout(status_timer); + +/*------------------------------------------------------------------------------ +# PLAY / PAUSE +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutPlayPause = function () { + var video = document.querySelector('#movie_player video'); + + if (video) { + if (video.paused) { + video.play(); + } else { + video.pause(); } + } +}; - status_timer = setTimeout(function() { - if (player.querySelector('#it-status')) { - player.querySelector('#it-status').remove(); - } - }, 500); + +/*------------------------------------------------------------------------------ +# STOP +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutStop = function () { + var player = document.querySelector('#movie_player'); + + if (player) { + player.stopVideo(); } +}; - function start(type = 'keys') { - if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || event.target.isContentEditable) { - return false; + +/*------------------------------------------------------------------------------ +# TOGGLE AUTOPLAY +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutToggleAutoplay = function () { + var toggle = document.querySelector('.ytp-autonav-toggle-button'), + attribute = toggle.getAttribute('aria-checked') === 'true'; + + if (toggle) { + toggle.click(); + } +}; + + +/*------------------------------------------------------------------------------ +# NEXT VIDEO +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutNextVideo = function () { + var player = document.querySelector('#movie_player'); + + if (player && player.nextVideo) { + player.nextVideo(); + } +}; + + +/*------------------------------------------------------------------------------ +# PREVIOUS VIDEO +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutPrevVideo = function () { + var player = document.querySelector('#movie_player'); + + if (player && player.previousVideo) { + player.previousVideo(); + } +}; + + +/*------------------------------------------------------------------------------ +# SEEK BACKWARD +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutSeekBackward = function () { + var player = document.querySelector('#movie_player'); + + if (player && player.seekBy) { + player.seekBy(-10); + } +}; + + +/*------------------------------------------------------------------------------ +# SEEK FORWARD +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutSeekForward = function () { + var player = document.querySelector('#movie_player'); + + if (player && player.seekBy) { + player.seekBy(10); + } +}; + + +/*------------------------------------------------------------------------------ +# SEEK NEXT CHAPTER +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutSeekNextChapter = function () { + const player = document.querySelector("#movie_player"); + const chapterDiv = document.querySelector(".ytp-chapters-container"); + const progressBarWidth = parseInt(document.querySelector(".ytp-chrome-bottom").style.width); + + if (!player || !player.seekBy || !progressBarWidth || + !chapterDiv || !chapterDiv.children) { + return; + } + + let curWidth = 0; + + for (let child of chapterDiv.children) { + if ((curWidth - 2) / progressBarWidth <= player.getCurrentTime() / player.getDuration() && + (curWidth - 2 + parseInt(child.style.width)) / progressBarWidth >= player.getCurrentTime() / player.getDuration()) { //if child is current chapter + player.seekTo(((parseInt(child.style.width) + curWidth) / progressBarWidth) * player.getDuration()); + return; } - var features = { - shortcut_auto: function() { - var player = document.querySelector('#movie_player'); + curWidth += parseInt(child.style.width) + 2; + } +}; - if (player) { - player.setPlaybackQualityRange('auto'); - player.setPlaybackQuality('auto'); - } - }, - shortcut_240p: function() { - var player = document.querySelector('#movie_player'); - if (player) { - player.setPlaybackQualityRange('small'); - player.setPlaybackQuality('small'); - } - }, - shortcut_360p: function() { - var player = document.querySelector('#movie_player'); +/*------------------------------------------------------------------------------ +# SEEK PREVIOUS CHAPTER +------------------------------------------------------------------------------*/ - if (player) { - player.setPlaybackQualityRange('medium'); - player.setPlaybackQuality('medium'); - } - }, - shortcut_480p: function() { - var player = document.querySelector('#movie_player'); +ImprovedTube.shortcutSeekPreviousChapter = function () { + const player = document.querySelector("#movie_player"); + const chapterDiv = document.querySelector(".ytp-chapters-container"); + const progressBarWidth = parseInt(document.querySelector(".ytp-chrome-bottom").style.width); - if (player) { - player.setPlaybackQualityRange('large'); - player.setPlaybackQuality('large'); - } - }, - shortcut_720p: function() { - var player = document.querySelector('#movie_player'); + if (!player || !player.seekBy || !progressBarWidth || + !chapterDiv || !chapterDiv.children) { + return; + } - if (player) { - player.setPlaybackQualityRange('hd720'); - player.setPlaybackQuality('hd720'); - } - }, - shortcut_1080p: function() { - var player = document.querySelector('#movie_player'); + let curWidth = 0; - if (player) { - player.setPlaybackQualityRange('hd1080'); - player.setPlaybackQuality('hd1080'); - } - }, - shortcut_1440p: function() { - var player = document.querySelector('#movie_player'); + for (let i in chapterDiv.children) { + if (i === 0) { + player.seekTo(0); + return; + } - if (player) { - player.setPlaybackQualityRange('hd1440'); - player.setPlaybackQuality('hd1440'); - } - }, - shortcut_2160p: function() { - var player = document.querySelector('#movie_player'); + let child = chapterDiv.children[i]; + if ((curWidth + 2) / progressBarWidth <= player.getCurrentTime() / player.getDuration() && + (curWidth + 2 + parseInt(child.style.width)) / progressBarWidth >= player.getCurrentTime() / player.getDuration()) { //if child is current chapter + player.seekTo(((curWidth - 2) / progressBarWidth) * player.getDuration()); + return; + } - if (player) { - player.setPlaybackQualityRange('hd2160'); - player.setPlaybackQuality('hd2160'); - } - }, - shortcut_2880p: function() { - var player = document.querySelector('#movie_player'); + curWidth += parseInt(child.style.width) + 2; + } +}; - if (player) { - player.setPlaybackQualityRange('hd2880'); - player.setPlaybackQuality('hd2880'); - } - }, - shortcut_4320p: function() { - var player = document.querySelector('#movie_player'); - if (player) { - player.setPlaybackQualityRange('highres'); - player.setPlaybackQuality('highres'); - } - }, - shortcut_picture_in_picture: function() { - var video = document.querySelector('#movie_player video'); +/*------------------------------------------------------------------------------ +# INCREASE VOLUME +------------------------------------------------------------------------------*/ - if (video) { - video.requestPictureInPicture(); - } - }, - shortcut_toggle_controls: function() { - var player = document.querySelector('.html5-video-player'); +ImprovedTube.shortcutIncreaseVolume = function () { + var player = document.querySelector('.html5-video-player'); - if (player && player.hideControls && player.showControls) { - ImprovedTube.storage.player_hide_controls = !ImprovedTube.storage.player_hide_controls; + if (player && player.setVolume && player.getVolume) { + player.setVolume(player.getVolume() + (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); + } - if (ImprovedTube.storage.player_hide_controls === true) { - player.hideControls(); - } else { - player.showControls(); - } - } - }, - shortcut_play_pause: function() { - var video = document.querySelector('#movie_player video'); - - if (video) { - if (video.paused) { - video.play(); - } else { - video.pause(); - } - } - }, - shortcut_stop: function() { - var player = document.querySelector('#movie_player'); + showStatus(player, player.getVolume()); +}; - if (player) { - player.stopVideo(); - } - }, - shortcut_toggle_autoplay: function() { - var toggle = document.querySelector('.ytp-autonav-toggle-button'), - attribute = toggle.getAttribute('aria-checked') === 'true'; - if (toggle) { - toggle.click(); - } - }, - shortcut_next_video: function() { - var player = document.querySelector('#movie_player'); +/*------------------------------------------------------------------------------ +# DECREASE VOLUME +------------------------------------------------------------------------------*/ - if (player && player.nextVideo) { - player.nextVideo(); - } - }, - shortcut_prev_video: function() { - var player = document.querySelector('#movie_player'); +ImprovedTube.shortcutDecreaseVolume = function () { + var player = document.querySelector('.html5-video-player'); - if (player && player.previousVideo) { - player.previousVideo(); - } - }, - shortcut_seek_backward: function() { - var player = document.querySelector('#movie_player'); + if (player && player.setVolume && player.getVolume) { + player.setVolume(player.getVolume() - (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); + } - if (player && player.seekBy) { - player.seekBy(-10); - } - }, - shortcut_seek_forward: function() { - var player = document.querySelector('#movie_player'); + showStatus(player, player.getVolume()); +}; - if (player && player.seekBy) { - player.seekBy(10); - } - }, - shortcut_seek_next_chapter: function() { - const player = document.querySelector("#movie_player"); - const chapterDiv = document.querySelector(".ytp-chapters-container"); - const progressBarWidth = parseInt(document.querySelector(".ytp-chrome-bottom").style.width); - - if (!player || !player.seekBy || !progressBarWidth || - !chapterDiv || !chapterDiv.children) { - return; - } - let curWidth = 0; +/*------------------------------------------------------------------------------ +# SCREENSHOT +------------------------------------------------------------------------------*/ - for(let child of chapterDiv.children) { - if((curWidth - 2) / progressBarWidth <= player.getCurrentTime() / player.getDuration() && - (curWidth - 2 + parseInt(child.style.width)) / progressBarWidth >= player.getCurrentTime() / player.getDuration() ) { //if child is current chapter - player.seekTo(((parseInt(child.style.width) + curWidth) / progressBarWidth) * player.getDuration()); - return; - } +ImprovedTube.shortcutScreenshot = function () { + var player = document.querySelector('.html5-video-player'); - curWidth += parseInt(child.style.width) + 2; - } - }, - shortcut_seek_previous_chapter: function() { - const player = document.querySelector("#movie_player"); - const chapterDiv = document.querySelector(".ytp-chapters-container"); - const progressBarWidth = parseInt(document.querySelector(".ytp-chrome-bottom").style.width); - - if (!player || !player.seekBy || !progressBarWidth || - !chapterDiv || !chapterDiv.children) { - return; - } + if (player && player.setVolume && player.getVolume) { + ImprovedTube.screenshot(); + } +}; - let curWidth = 0; - for(let i in chapterDiv.children) { - if(i === 0) { - player.seekTo(0); - return; - } +/*------------------------------------------------------------------------------ +# INCREASE PLAYBACK SPEED +------------------------------------------------------------------------------*/ - let child = chapterDiv.children[i]; - if((curWidth + 2) / progressBarWidth <= player.getCurrentTime() / player.getDuration() && - (curWidth + 2 + parseInt(child.style.width)) / progressBarWidth >= player.getCurrentTime() / player.getDuration() ) { //if child is current chapter - player.seekTo(((curWidth - 2) / progressBarWidth) * player.getDuration()); - return; - } +ImprovedTube.shortcutIncreasePlaybackSpeed = function () { + var video = document.querySelector('#movie_player video'); - curWidth += parseInt(child.style.width) + 2; - } - }, - - shortcut_increase_volume: function() { - var player = document.querySelector('.html5-video-player'); + if (video && video.playbackRate) { + if (video.playbackRate < 1 && video.playbackRate > 1 - ImprovedTube.storage.shortcut_playback_speed_step) { + video.playbackRate = 1 + } else { // aligning at 1.0 independent of minimum - if (player && player.setVolume && player.getVolume) { - player.setVolume(player.getVolume() + (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); - } + video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); + } + showStatus(document.querySelector('#movie_player'), video.playbackRate); + } +}; - showStatus(player, player.getVolume()); - }, - shortcut_decrease_volume: function() { - var player = document.querySelector('.html5-video-player'); - if (player && player.setVolume && player.getVolume) { - player.setVolume(player.getVolume() - (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); - } +/*------------------------------------------------------------------------------ +# DECREASE PLAYBACK SPEED +------------------------------------------------------------------------------*/ - showStatus(player, player.getVolume()); - }, - shortcut_screenshot: function() { - var player = document.querySelector('.html5-video-player'); +ImprovedTube.shortcutDecreasePlaybackSpeed = function () { + var video = document.querySelector('#movie_player video'); - if (player && player.setVolume && player.getVolume) { - ImprovedTube.screenshot(); - } - }, - shortcut_increase_playback_speed: function () { - var video = document.querySelector('#movie_player video'); + if (video && video.playbackRate) { + if (video.playbackRate < 0.15 + ImprovedTube.storage.shortcut_playback_speed_step) { + video.playbackRate = (video.playbackRate * 0.7).toFixed(3) + } else { // slow down near minimum + + video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); + } + showStatus(document.querySelector('#movie_player'), video.playbackRate); + } +}; - if (video && video.playbackRate) { - if (video.playbackRate < 1 && video.playbackRate > 1 - ImprovedTube.storage.shortcut_playback_speed_step) { - video.playbackRate = 1 - } else { // aligning at 1.0 independent of minimum - video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); - } - showStatus(document.querySelector('#movie_player'), video.playbackRate); - } - }, - shortcut_decrease_playback_speed: function () { - var video = document.querySelector('#movie_player video'); +/*------------------------------------------------------------------------------ +# GO TO SEARCH BOX +------------------------------------------------------------------------------*/ - if (video && video.playbackRate) { - if (video.playbackRate < 0.15 + ImprovedTube.storage.shortcut_playback_speed_step) { - video.playbackRate = (video.playbackRate * 0.7).toFixed(3) - } else { // slow down near minimum +ImprovedTube.shortcutGoToSearchBox = function () { + var search = document.querySelector('#search'); - video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); - } - showStatus(document.querySelector('#movie_player'), video.playbackRate); - } - }, - shortcut_go_to_search_box: function() { - var search = document.querySelector('#search'); + if (search && search.focus) { + search.focus(); + } +}; - if (search && search.focus) { - search.focus(); - } - }, - shortcut_activate_fullscreen: function() { - var player = document.querySelector('#movie_player'); - if (player && player.toggleFullscreen) { - player.toggleFullscreen(); - } - }, - shortcut_activate_captions: function() { - var player = document.querySelector('#movie_player'); +/*------------------------------------------------------------------------------ +# ACTIVATE FULLSCREEN +------------------------------------------------------------------------------*/ - if (player && player.querySelector('.ytp-subtitles-button')) { - player.querySelector('.ytp-subtitles-button').click(); - } - }, - shortcut_like_shortcut: function() { - var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer')[0]); +ImprovedTube.shortcutActivateFullscreen = function () { + var player = document.querySelector('#movie_player'); - if (like) { - like.click(); - } - }, - shortcut_dislike_shortcut: function() { - var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer')[1]); + if (player && player.toggleFullscreen) { + player.toggleFullscreen(); + } +}; - if (like) { - like.click(); - } - }, - shortcut_subscribe: function() { - var button = document.querySelector('#subscribe-button .ytd-subscribe-button-renderer'); - if (button) { - button.click(); - } - }, - shortcut_dark_theme: function() { - if (document.documentElement.hasAttribute('dark')) { - document.documentElement.removeAttribute('dark'); - document.documentElement.removeAttribute('it-theme'); - } else { - document.documentElement.setAttribute('dark', ''); - document.documentElement.setAttribute('it-theme', 'true'); - } - }, - shortcut_custom_mini_player: function() { - ImprovedTube.storage.mini_player = !ImprovedTube.storage.mini_player; +/*------------------------------------------------------------------------------ +# ACTIVATE CAPTIONS +------------------------------------------------------------------------------*/ - ImprovedTube.mini_player(); +ImprovedTube.shortcutActivateCaptions = function () { + var player = document.querySelector('#movie_player'); - if (ImprovedTube.storage.mini_player === true) { - ImprovedTube.mini_player__mode = true; + if (player && player.querySelector('.ytp-subtitles-button')) { + player.querySelector('.ytp-subtitles-button').click(); + } +}; - ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; - ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; - ImprovedTube.mini_player__element.classList.add('it-mini-player'); +/*------------------------------------------------------------------------------ +# LIKE +------------------------------------------------------------------------------*/ - ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); - ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); +ImprovedTube.shortcutLike = function () { + var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer')[0]); - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); + if (like) { + like.click(); + } +}; - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); +/*------------------------------------------------------------------------------ +# DISLIKE +------------------------------------------------------------------------------*/ - window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); +ImprovedTube.shortcutDislike = function () { + var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer')[1]); - window.dispatchEvent(new Event('resize')); - } - }, - shortcut_stats_for_nerds: function() { - var player = document.querySelector('.html5-video-player'); + if (like) { + like.click(); + } +}; - if (player.isVideoInfoVisible()) { - player.hideVideoInfo(); - } else { - player.showVideoInfo(); - } - }, - shortcut_toggle_cards: function() { - if(document.documentElement.getAttribute('it-player-hide-cards')) { - document.documentElement.removeAttribute('it-player-hide-cards'); - return; - } - document.documentElement.setAttribute("it-player-hide-cards", true); - }, - shortcut_popup_player: function() { - ImprovedTube.createPopUpWindow(); +/*------------------------------------------------------------------------------ +# SUBSCRIBE +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutSubscribe = function () { + var button = document.querySelector('#subscribe-button .ytd-subscribe-button-renderer'); + + if (button) { + button.click(); + } +}; + + +/*------------------------------------------------------------------------------ +# DARK THEME +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutDarkTheme = function () { + if (document.documentElement.hasAttribute('dark')) { + document.documentElement.removeAttribute('dark'); + document.documentElement.removeAttribute('it-theme'); + } else { + document.documentElement.setAttribute('dark', ''); + document.documentElement.setAttribute('it-theme', 'true'); + } +}; + + +/*------------------------------------------------------------------------------ +# CUSTOM MINI PLAYER +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutCustomMiniPlayer = function () { + ImprovedTube.storage.mini_player = !ImprovedTube.storage.mini_player; + + ImprovedTube.mini_player(); + + if (ImprovedTube.storage.mini_player === true) { + ImprovedTube.mini_player__mode = true; + + ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; + ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; + + ImprovedTube.mini_player__element.classList.add('it-mini-player'); + + ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); + ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); + + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); + + ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); + + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); + + window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); + window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); + + window.dispatchEvent(new Event('resize')); + } +}; + + +/*------------------------------------------------------------------------------ +# STATS FOR NERDS +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutStatsForNerds = function () { + var player = document.querySelector('.html5-video-player'); + + if (player.isVideoInfoVisible()) { + player.hideVideoInfo(); + } else { + player.showVideoInfo(); + } +}; + + +/*------------------------------------------------------------------------------ +# TOGGLE CARDS +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutToggleCards = function () { + if (document.documentElement.getAttribute('it-player-hide-cards')) { + document.documentElement.removeAttribute('it-player-hide-cards'); + return; + } + + document.documentElement.setAttribute("it-player-hide-cards", true); +}; + + +/*------------------------------------------------------------------------------ +# POPUP PLAYER +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutPopupPlayer = function () { + ImprovedTube.createPopUpWindow(); +}; + + +/*------------------------------------------------------------------------------ +# SHORTCUTS +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcuts = function () { + var self = this, + keys = {}, + wheel = 0, + hover = false, + status_timer; + + function showStatus(player, volume) { + if (!player.querySelector('#it-status')) { + var element = document.createElement('div'); + + element.id = 'it-status'; + element.innerHTML = volume; + + document.querySelector('.html5-video-container').appendChild(element); + } else { + player.querySelector('#it-status').innerHTML = volume; + } + + if (status_timer) { + clearTimeout(status_timer); + } + + status_timer = setTimeout(function () { + if (player.querySelector('#it-status')) { + player.querySelector('#it-status').remove(); } - }; + }, 500); + } + + function start(type = 'keys') { + if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || event.target.isContentEditable) { + return false; + } for (var i in features) { if (self.isset(self.storage[i])) { @@ -2925,7 +3102,7 @@ ImprovedTube.shortcuts = function() { 1.0 Keyboard -------------------------------------------------------------------------*/ - window.addEventListener('keydown', function(event) { + window.addEventListener('keydown', function (event) { keys = { key: event.key, keyCode: event.keyCode, @@ -2937,7 +3114,7 @@ ImprovedTube.shortcuts = function() { start(); }, true); - window.addEventListener('keyup', function(event) { + window.addEventListener('keyup', function (event) { keys = {}; }, true); @@ -2946,7 +3123,7 @@ ImprovedTube.shortcuts = function() { 2.0 Mouse -------------------------------------------------------------------------*/ - window.addEventListener('mousemove', function(event) { + window.addEventListener('mousemove', function (event) { var path = event.composedPath(); hover = false; @@ -2961,7 +3138,7 @@ ImprovedTube.shortcuts = function() { capture: true }); - window.addEventListener('wheel', function(event) { + window.addEventListener('wheel', function (event) { wheel = event.deltaY; start('wheel'); @@ -2976,7 +3153,7 @@ ImprovedTube.shortcuts = function() { 8.0 BLACKLIST ------------------------------------------------------------------------------*/ -document.addEventListener('ImprovedTubeBlacklist', function(event) { +document.addEventListener('ImprovedTubeBlacklist', function (event) { if (chrome && chrome.runtime) { chrome.runtime.sendMessage({ name: 'improvedtube-blacklist', @@ -2990,7 +3167,7 @@ document.addEventListener('ImprovedTubeBlacklist', function(event) { } }); -ImprovedTube.blacklist = function() { +ImprovedTube.blacklist = function () { if (ImprovedTube.storage.blacklist_activate !== true) { return false; } @@ -3010,7 +3187,7 @@ ImprovedTube.blacklist = function() { if (!channel_items[i].parentNode.querySelector('.improvedtube-add-to-blacklist')) { let button = document.createElement('div'); - button.addEventListener('click', function(event) { + button.addEventListener('click', function (event) { let video_id; event.preventDefault(); @@ -3075,7 +3252,7 @@ ImprovedTube.blacklist = function() { if (!video_items[i].querySelector('.improvedtube-add-to-blacklist')) { let button = document.createElement('div'); - button.addEventListener('click', function(event) { + button.addEventListener('click', function (event) { let video_id; event.preventDefault(); @@ -3192,7 +3369,7 @@ ImprovedTube.blacklist = function() { 9.0 ANALYZER ------------------------------------------------------------------------------*/ -document.addEventListener('ImprovedTubeAnalyzer', function() { +document.addEventListener('ImprovedTubeAnalyzer', function () { if (items.analyzer_activation === true) { if (document.querySelector('ytd-channel-name a') && chrome && chrome.runtime) { chrome.runtime.sendMessage({ @@ -3212,7 +3389,7 @@ document.addEventListener('ImprovedTubeAnalyzer', function() { 10.1 IMPROVEDTUBE ICON ------------------------------------------------------------------------------*/ -ImprovedTube.improvedtube_youtube_icon_resize = function() { +ImprovedTube.improvedtube_youtube_icon_resize = function () { var iframe = document.querySelector('.it-btn__iframe'), icon = document.querySelector('.it-btn__icon'); @@ -3242,7 +3419,7 @@ ImprovedTube.improvedtube_youtube_icon_resize = function() { } }; -ImprovedTube.improvedtubeYoutubeIcon = function() { +ImprovedTube.improvedtubeYoutubeIcon = function () { if (window.self !== window.top) { return false; } @@ -3255,7 +3432,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function() { } if (this.improvedtube_youtube_icon_wait === false) { - this.improvedtube_youtube_icon_wait = setInterval(function() { + this.improvedtube_youtube_icon_wait = setInterval(function () { var option = ImprovedTube.storage.improvedtube_youtube_icon, parentNode, referenceNode; @@ -3302,7 +3479,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function() { button.className = 'it-btn'; button.innerHTML = '
'; - button.addEventListener('click', function() { + button.addEventListener('click', function () { event.preventDefault(); event.stopPropagation(); @@ -3315,7 +3492,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function() { y: button.offsetTop })); - setTimeout(function() { + setTimeout(function () { button.style.pointerEvents = ''; }); @@ -3369,14 +3546,14 @@ ImprovedTube.improvedtubeYoutubeIcon = function() { ImprovedTube.improvedtube_youtube_icon_resize(); } - button.addEventListener('mousedown', function(event) { + button.addEventListener('mousedown', function (event) { this.dataset.x = event.layerX; this.dataset.y = event.layerY; window.addEventListener('mousemove', move); }); - window.addEventListener('mouseup', function() { + window.addEventListener('mouseup', function () { button.classList.remove('it-btn--dragging'); window.removeEventListener('mousemove', move); @@ -3386,7 +3563,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function() { y: button.offsetTop })); - setTimeout(function() { + setTimeout(function () { button.style.pointerEvents = ''; }); }); @@ -3488,7 +3665,7 @@ ImprovedTube.improvedtubeYoutubePlayerButtons = function() { 10.4 DELETE YOUTUBE COOKIES -----------------------------------------------------------------------------*/ -ImprovedTube.deleteYoutubeCookies = function() { +ImprovedTube.deleteYoutubeCookies = function () { var cookies = document.cookie.split(';'); for (var i = 0, l = cookies.length; i < l; i++) { @@ -3499,7 +3676,7 @@ ImprovedTube.deleteYoutubeCookies = function() { document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; } - setTimeout(function() { + setTimeout(function () { location.reload(); }, 100); }; @@ -3509,7 +3686,7 @@ ImprovedTube.deleteYoutubeCookies = function() { 10.5 YOUTUBE LANGUAGE -----------------------------------------------------------------------------*/ -ImprovedTube.youtubeLanguage = function() { +ImprovedTube.youtubeLanguage = function () { var pref = ImprovedTube.getCookieValueByName('PREF'), hl = ImprovedTube.getParam(pref, 'hl'); @@ -3519,7 +3696,7 @@ ImprovedTube.youtubeLanguage = function() { ImprovedTube.setCookie('PREF', pref + '&hl=' + ImprovedTube.storage.youtube_language); } - setTimeout(function() { + setTimeout(function () { location.reload(); }, 100); }; @@ -3529,7 +3706,7 @@ ImprovedTube.youtubeLanguage = function() { 10.6 DEFAULT CONTENT COUNTRY -----------------------------------------------------------------------------*/ -ImprovedTube.defaultContentCountry = function() { +ImprovedTube.defaultContentCountry = function () { var value = this.storage.default_content_country; if (this.isset(value) && value !== 'default') { From 0235253c65fd0b017275d81eea98b5d44b2a3b66 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 15 Jul 2021 15:14:49 +0300 Subject: [PATCH 0191/1224] Upgrading "Shortcuts" (2/3) --- youtube-scripts.js | 67 ++++++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 983447e56..6848e4746 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -136,7 +136,8 @@ var ImprovedTube = { playlistReversed: false, playlist_repeat_wait: false, playlist_shuffle_wait: false, - improvedtube_youtube_icon_wait: false + improvedtube_youtube_icon_wait: false, + status_timer: false }; @@ -2795,7 +2796,7 @@ ImprovedTube.shortcutIncreaseVolume = function () { player.setVolume(player.getVolume() + (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); } - showStatus(player, player.getVolume()); + ImprovedTube.showStatus(player, player.getVolume()); }; @@ -2810,7 +2811,7 @@ ImprovedTube.shortcutDecreaseVolume = function () { player.setVolume(player.getVolume() - (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); } - showStatus(player, player.getVolume()); + ImprovedTube.showStatus(player, player.getVolume()); }; @@ -2841,7 +2842,7 @@ ImprovedTube.shortcutIncreasePlaybackSpeed = function () { video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); } - showStatus(document.querySelector('#movie_player'), video.playbackRate); + ImprovedTube.showStatus(document.querySelector('#movie_player'), video.playbackRate); } }; @@ -2860,7 +2861,7 @@ ImprovedTube.shortcutDecreasePlaybackSpeed = function () { video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); } - showStatus(document.querySelector('#movie_player'), video.playbackRate); + ImprovedTube.showStatus(document.querySelector('#movie_player'), video.playbackRate); } }; @@ -3035,44 +3036,46 @@ ImprovedTube.shortcutPopupPlayer = function () { # SHORTCUTS ------------------------------------------------------------------------------*/ -ImprovedTube.shortcuts = function () { - var self = this, - keys = {}, - wheel = 0, - hover = false, - status_timer; +ImprovedTube.showStatus = function (player, volume) { + if (!player.querySelector('#it-status')) { + var element = document.createElement('div'); - function showStatus(player, volume) { - if (!player.querySelector('#it-status')) { - var element = document.createElement('div'); + element.id = 'it-status'; + element.innerHTML = volume; - element.id = 'it-status'; - element.innerHTML = volume; + document.querySelector('.html5-video-container').appendChild(element); + } else { + player.querySelector('#it-status').innerHTML = volume; + } - document.querySelector('.html5-video-container').appendChild(element); - } else { - player.querySelector('#it-status').innerHTML = volume; - } + if (ImprovedTube.status_timer) { + clearTimeout(ImprovedTube.status_timer); + } - if (status_timer) { - clearTimeout(status_timer); + ImprovedTube.status_timer = setTimeout(function () { + if (player.querySelector('#it-status')) { + player.querySelector('#it-status').remove(); } + }, 500); +}; - status_timer = setTimeout(function () { - if (player.querySelector('#it-status')) { - player.querySelector('#it-status').remove(); - } - }, 500); - } +ImprovedTube.shortcuts = function () { + var self = this, + keys = {}, + wheel = 0, + hover = false; function start(type = 'keys') { if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || event.target.isContentEditable) { return false; } - for (var i in features) { - if (self.isset(self.storage[i])) { - var data = JSON.parse(self.storage[i]) || {}; + for (var key in self.storage) { + if (key.indexOf('shortcut_') === 0) { + var function_name = 'shortcut' + (key.replace('shortcut_', '').replace(/\_/g, '-')).split('-').map(function (element, index) { + return element[0].toUpperCase() + element.slice(1); + }).join(''), + data = JSON.parse(self.storage[key]) || {}; if ( (data.keyCode === keys.keyCode || !self.isset(data.keyCode)) && @@ -3087,7 +3090,7 @@ ImprovedTube.shortcuts = function () { event.stopPropagation(); } - features[i](); + ImprovedTube[function_name](); if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { return false; From ec082be6fec159768b814a5f3087988abb066b15 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 16 Jul 2021 15:44:33 +0300 Subject: [PATCH 0192/1224] Small fixes --- content-scripts.js | 98 ++++------ content-styles.css | 475 +++++++++++++++++++++------------------------ youtube-scripts.js | 2 +- 3 files changed, 263 insertions(+), 312 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index fa3f3e40e..2119a0f44 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -1,40 +1,13 @@ /*------------------------------------------------------------------------------ >>> TABLE OF CONTENTS: -------------------------------------------------------------------------------- -1.0 Features -2.0 Isset -3.0 Initialization -4.0 Change listener +1.0 Isset +2.0 Initialization +3.0 Change listener ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -1.0 FEATURES -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -1.1 YOUTUBE HOME PAGE -------------------------------------------------------------------------------*/ - -function youtubeHomePage(option) { - if (location.pathname === '/') { - if (location.hostname === 'www.youtube.com') { - if ( - option === '/feed/trending' || - option === '/feed/subscriptions' || - option === '/feed/history' || - option === '/playlist?list=WL' || - option === '/playlist?list=LL' || - option === '/feed/library' - ) { - location.replace(option); - } - } - } -} - - -/*------------------------------------------------------------------------------ -2.0 ISSET +1.0 ISSET ------------------------------------------------------------------------------*/ function isset(variable) { @@ -106,7 +79,7 @@ function attributes(items) { /*------------------------------------------------------------------------------ -3.0 INITIALIZATION +2.0 INITIALIZATION ------------------------------------------------------------------------------*/ function injectScript(string) { @@ -131,41 +104,56 @@ function injectStyles(string, id) { document.documentElement.appendChild(style); } -chrome.storage.local.get('youtube_home_page', function(items) { - youtubeHomePage(items.youtube_home_page); -}); +chrome.storage.local.get('youtube_home_page', function (items) { + var option = items.youtube_home_page; -chrome.storage.local.get(function(items) { - var textContent = 'var ImprovedTube={'; + if (location.pathname === '/') { + if (location.hostname === 'www.youtube.com') { + if ( + option === '/feed/trending' || + option === '/feed/subscriptions' || + option === '/feed/history' || + option === '/playlist?list=WL' || + option === '/playlist?list=LL' || + option === '/feed/library' + ) { + location.replace(option); + } + } + } - // attributes - attributes(items); + chrome.storage.local.get(function (items) { + var textContent = 'var ImprovedTube={'; - // Isset - textContent += 'isset:' + isset + ','; + // attributes + attributes(items); - // Features - for (var key in ImprovedTube) { - textContent += key + ': ' + ImprovedTube[key] + ','; - } + // Isset + textContent += 'isset:' + isset + ','; + + // Features + for (var key in ImprovedTube) { + textContent += key + ': ' + ImprovedTube[key] + ','; + } - // Storage - textContent += 'storage:' + JSON.stringify(items); + // Storage + textContent += 'storage:' + JSON.stringify(items); - // Initialization - textContent += '};ImprovedTube.init();'; + // Initialization + textContent += '};ImprovedTube.init();'; - document.documentElement.dataset.systemColorScheme = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; + document.documentElement.dataset.systemColorScheme = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; - injectScript(textContent); + injectScript(textContent); + }); }); /*------------------------------------------------------------------------------ -4.0 CHANGE LISTENER +3.0 CHANGE LISTENER ------------------------------------------------------------------------------*/ -chrome.storage.onChanged.addListener(function(changes) { +chrome.storage.onChanged.addListener(function (changes) { for (var key in changes) { var value = changes[key].newValue, func = camelize(key); @@ -181,7 +169,7 @@ chrome.storage.onChanged.addListener(function(changes) { }); -chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { +chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { if (request.action === 'focus') { injectScript('ImprovedTube.focus = true;'); } else if (request.action === 'blur') { @@ -196,4 +184,4 @@ chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { chrome.runtime.sendMessage({ enabled: true -}); +}); \ No newline at end of file diff --git a/content-styles.css b/content-styles.css index 0b202b201..1b4e5dc5b 100644 --- a/content-styles.css +++ b/content-styles.css @@ -72,9 +72,9 @@ 1.1 YOUTUBE HOME PAGE ------------------------------------------------------------------------------*/ -html[it-page-type=home][it-youtube-home-page=search], -html[it-page-type=home][it-youtube-home-page=search] app-drawer[opened], -html[it-page-type=home][it-youtube-home-page=search] #appbar-guide-menu { +html[data-page-type=home][it-youtube-home-page=search], +html[data-page-type=home][it-youtube-home-page=search] app-drawer[opened], +html[data-page-type=home][it-youtube-home-page=search] #appbar-guide-menu { visibility: hidden; overflow: hidden; width: 100vw; @@ -82,8 +82,8 @@ html[it-page-type=home][it-youtube-home-page=search] #appbar-guide-menu { pointer-events: none; } -html[it-page-type=home][it-youtube-home-page=search] ytd-masthead ytd-searchbox, -html[it-page-type=home][it-youtube-home-page=search] #yt-masthead-content { +html[data-page-type=home][it-youtube-home-page=search] ytd-masthead ytd-searchbox, +html[data-page-type=home][it-youtube-home-page=search] #yt-masthead-content { position: fixed; z-index: 99999; top: 0; @@ -95,18 +95,18 @@ html[it-page-type=home][it-youtube-home-page=search] #yt-masthead-content { margin: 0; padding: 0; pointer-events: all; + background: var(--yt-spec-general-background-a); justify-content: center; align-items: center; - background: var(--yt-spec-general-background-a); } -html[it-page-type=home][it-youtube-home-page=search] ytd-searchbox>form { +html[data-page-type=home][it-youtube-home-page=search] ytd-searchbox>form { width: 100%; max-width: 768px; padding: 16px 32px; } -html[it-page-type=home][it-youtube-home-page=search] .gstl_50.sbdd_a { +html[data-page-type=home][it-youtube-home-page=search] .gstl_50.sbdd_a { z-index: 99999; visibility: visible; pointer-events: all; @@ -289,48 +289,48 @@ html[it-header-position=hidden] app-drawer#guide #guide-spacer, html[it-header-position=hidden] ytd-app>ytd-masthead, html[it-header-position=hover] app-drawer#guide #guide-spacer, html[it-header-position=static] app-drawer#guide #guide-spacer, -html[it-header-position=hidden_on_video_page][it-page-type=video] #masthead-container, -html[it-header-position=hidden_on_video_page][it-page-type=video] app-drawer#guide #guide-spacer, -html[it-header-position=hover_on_video_page][it-page-type=video] app-drawer#guide #guide-spacer { +html[it-header-position=hidden_on_video_page][data-page-type=video] #masthead-container, +html[it-header-position=hidden_on_video_page][data-page-type=video] app-drawer#guide #guide-spacer, +html[it-header-position=hover_on_video_page][data-page-type=video] app-drawer#guide #guide-spacer { display: none; } html[it-header-position=hover] ytd-app>ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app>ytd-masthead, +html[it-header-position=hover_on_video_page][data-page-type='video'] ytd-app>ytd-masthead, html[it-header-position=hover] #masthead-container, -html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-container { +html[it-header-position=hover_on_video_page][data-page-type='video'] #masthead-container { z-index: 2147483647; } html[it-header-position=hidden] ytd-page-manager#page-manager, html[it-header-position=hidden] app-header#header, -html[it-header-position=hidden_on_video_page][it-page-type='video'] ytd-page-manager#page-manager, -html[it-header-position=hidden_on_video_page][it-page-type='video'] app-header#header, +html[it-header-position=hidden_on_video_page][data-page-type='video'] ytd-page-manager#page-manager, +html[it-header-position=hidden_on_video_page][data-page-type='video'] app-header#header, html[it-header-position=hidden] #appbar-guide-menu, -html[it-header-position=hidden_on_video_page][it-page-type='video'] #appbar-guide-menu, +html[it-header-position=hidden_on_video_page][data-page-type='video'] #appbar-guide-menu, html[it-header-position=hover] ytd-page-manager#page-manager, html[it-header-position=hover] app-header#header, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-page-manager#page-manager, -html[it-header-position=hover_on_video_page][it-page-type='video'] app-header#header, +html[it-header-position=hover_on_video_page][data-page-type='video'] ytd-page-manager#page-manager, +html[it-header-position=hover_on_video_page][data-page-type='video'] app-header#header, html[it-header-position=hover] #appbar-guide-menu, -html[it-header-position=hover_on_video_page][it-page-type='video'] #appbar-guide-menu, +html[it-header-position=hover_on_video_page][data-page-type='video'] #appbar-guide-menu, html[it-header-position=static] ytd-page-manager#page-manager, html[it-header-position=static] #appbar-guide-menu { margin-top: 0; } html[it-header-position=hover] ytd-app>ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) ytd-app>ytd-masthead, +html[it-header-position=hover_on_video_page][data-page-type='video']:not([it-improvedtube-search=true]) ytd-app>ytd-masthead, html[it-header-position=hover]:not([it-improvedtube-search=true]) #masthead-container, -html[it-header-position=hover_on_video_page][it-page-type='video']:not([it-improvedtube-search=true]) #masthead-container { +html[it-header-position=hover_on_video_page][data-page-type='video']:not([it-improvedtube-search=true]) #masthead-container { transition: transform 250ms; transform: translateY(-75%); } html[it-header-position=hover] #masthead-container:hover, -html[it-header-position=hover_on_video_page][it-page-type='video'] #masthead-container:hover, +html[it-header-position=hover_on_video_page][data-page-type='video'] #masthead-container:hover, html[it-header-position=hover][it-search-focus=true] #masthead-container, -html[it-header-position=hover_on_video_page][it-page-type='video'][it-search-focus=true] #masthead-container { +html[it-header-position=hover_on_video_page][data-page-type='video'][it-search-focus=true] #masthead-container { transform: translateY(0%); } @@ -341,8 +341,8 @@ html[it-header-position=static] ytd-app:not([masthead-hidden_]) #masthead-contai html[it-header-position=hover] ytd-app[masthead-hidden_] ytd-masthead, html[it-header-position=hover] ytd-app[scrolling_] ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app[masthead-hidden_] ytd-masthead, -html[it-header-position=hover_on_video_page][it-page-type='video'] ytd-app[scrolling_] ytd-masthead { +html[it-header-position=hover_on_video_page][data-page-type='video'] ytd-app[masthead-hidden_] ytd-masthead, +html[it-header-position=hover_on_video_page][data-page-type='video'] ytd-app[scrolling_] ytd-masthead { display: none; } @@ -449,145 +449,145 @@ html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-ca /* ---- NORMAL --------------------------------------------------------------*/ -html[it-page-type=video]:not([it-header-position]) ytd-app, -html[it-page-type=video][it-header-position=normal] ytd-app, -html[it-page-type=video][it-header-position=static] ytd-app { +html[data-page-type=video]:not([it-header-position]) ytd-app, +html[data-page-type=video][it-header-position=normal] ytd-app, +html[data-page-type=video][it-header-position=static] ytd-app { --it-header-size: 56px; } -html[it-page-type=video]:not([it-header-position]) ytd-watch-flexy:not([theater]), -html[it-page-type=video][it-header-position=normal] ytd-watch-flexy:not([theater]), -html[it-page-type=video][it-header-position=static] ytd-watch-flexy:not([theater]) { +html[data-page-type=video]:not([it-header-position]) ytd-watch-flexy:not([theater]), +html[data-page-type=video][it-header-position=normal] ytd-watch-flexy:not([theater]), +html[data-page-type=video][it-header-position=static] ytd-watch-flexy:not([theater]) { --it-header-size: 104px; } -html[it-page-type=video]:not([it-header-position]) div#page, -html[it-page-type=video][it-header-position=normal] div#page, -html[it-page-type=video][it-header-position=static] div#page { +html[data-page-type=video]:not([it-header-position]) div#page, +html[data-page-type=video][it-header-position=normal] div#page, +html[data-page-type=video][it-header-position=static] div#page { --it-header-size: 50px; } -html[it-page-type=video]:not([it-header-position]) div#page:not(.watch-wide), -html[it-page-type=video][it-header-position=normal] div#page:not(.watch-wide), -html[it-page-type=video][it-header-position=static] div#page:not(.watch-wide) { +html[data-page-type=video]:not([it-header-position]) div#page:not(.watch-wide), +html[data-page-type=video][it-header-position=normal] div#page:not(.watch-wide), +html[data-page-type=video][it-header-position=static] div#page:not(.watch-wide) { --it-header-size: 70px; } /* ---- HIDDEN ---------------------------------------------------------------*/ -html[it-page-type=video][it-header-position=hidden], -html[it-page-type=video][it-header-position=hidden_on_video_page] { - --it-header-size: 0px; +html[data-page-type=video][it-header-position=hidden], +html[data-page-type=video][it-header-position=hidden_on_video_page] { + --it-header-size: 0; } -html[it-page-type=video][it-header-position=hidden] ytd-watch-flexy:not([theater]), -html[it-page-type=video][it-header-position=hidden_on_video_page] ytd-watch-flexy:not([theater]) { +html[data-page-type=video][it-header-position=hidden] ytd-watch-flexy:not([theater]), +html[data-page-type=video][it-header-position=hidden_on_video_page] ytd-watch-flexy:not([theater]) { --it-header-size: 48px; } -html[it-page-type=video][it-header-position=hidden] div#page, -html[it-page-type=video][it-header-position=hidden_on_video_page] div#page { - --it-header-size: 0px; +html[data-page-type=video][it-header-position=hidden] div#page, +html[data-page-type=video][it-header-position=hidden_on_video_page] div#page { + --it-header-size: 0; } -html[it-page-type=video][it-header-position=hidden] div#page:not(.watch-wide), -html[it-page-type=video][it-header-position=hidden_on_video_page] div#page:not(.watch-wide) { +html[data-page-type=video][it-header-position=hidden] div#page:not(.watch-wide), +html[data-page-type=video][it-header-position=hidden_on_video_page] div#page:not(.watch-wide) { --it-header-size: 20px; } /* ---- HOVER ----------------------------------------------------------------*/ -html[it-page-type=video][it-header-position=hover], -html[it-page-type=video][it-header-position=hover_on_video_page] { +html[data-page-type=video][it-header-position=hover], +html[data-page-type=video][it-header-position=hover_on_video_page] { --it-header-size: 14px; } -html[it-page-type=video][it-header-position=hover] ytd-watch-flexy:not([theater]), -html[it-page-type=video][it-header-position=hover_on_video_page] ytd-watch-flexy:not([theater]) { +html[data-page-type=video][it-header-position=hover] ytd-watch-flexy:not([theater]), +html[data-page-type=video][it-header-position=hover_on_video_page] ytd-watch-flexy:not([theater]) { --it-header-size: 62px; } -html[it-page-type=video][it-header-position=hover] div#page, -html[it-page-type=video][it-header-position=hover_on_video_page] div#page { +html[data-page-type=video][it-header-position=hover] div#page, +html[data-page-type=video][it-header-position=hover_on_video_page] div#page { --it-header-size: 12px; } -html[it-page-type=video][it-header-position=hover] div#page:not(.watch-wide), -html[it-page-type=video][it-header-position=hover_on_video_page] div#page:not(.watch-wide) { +html[data-page-type=video][it-header-position=hover] div#page:not(.watch-wide), +html[data-page-type=video][it-header-position=hover_on_video_page] div#page:not(.watch-wide) { --it-header-size: 32px; } -html[it-page-type=video][it-header-position=hover] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container, -html[it-page-type=video][it-header-position=hover_on_video_page] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container { +html[data-page-type=video][it-header-position=hover] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container, +html[data-page-type=video][it-header-position=hover_on_video_page] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container { margin-top: 14px; } -html[it-page-type=video][it-header-position=hover] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen), -html[it-page-type=video][it-header-position=hover_on_video_page] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen) { +html[data-page-type=video][it-header-position=hover] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen), +html[data-page-type=video][it-header-position=hover_on_video_page] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen) { margin-top: 12px; } -html[it-page-type=video][it-header-position=hover] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]), -html[it-page-type=video][it-header-position=hover_on_video_page] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) { +html[data-page-type=video][it-header-position=hover] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]), +html[data-page-type=video][it-header-position=hover_on_video_page] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) { margin-top: 14px; } /* ---- FIXED PLAYER SIZE ----------------------------------------------------*/ -html[it-page-type=video][it-player-size='240p'] *, -html[it-page-type=video][it-player-size='360p'] *, -html[it-page-type=video][it-player-size='480p'] *, -html[it-page-type=video][it-player-size='576p'] *, -html[it-page-type=video][it-player-size='720p'] *, -html[it-page-type=video][it-player-size='1080p'] *, -html[it-page-type=video][it-player-size='1440p'] *, -html[it-page-type=video][it-player-size='2160p'] * { - --it-header-size: 0px !important; +html[data-page-type=video][it-player-size='240p'] *, +html[data-page-type=video][it-player-size='360p'] *, +html[data-page-type=video][it-player-size='480p'] *, +html[data-page-type=video][it-player-size='576p'] *, +html[data-page-type=video][it-player-size='720p'] *, +html[data-page-type=video][it-player-size='1080p'] *, +html[data-page-type=video][it-player-size='1440p'] *, +html[data-page-type=video][it-player-size='2160p'] * { + --it-header-size: 0 !important; } /* ---- SIZES ----------------------------------------------------------------*/ -html[it-page-type=video][it-player-size='240p'] { +html[data-page-type=video][it-player-size='240p'] { --it-player-size: 240px; } -html[it-page-type=video][it-player-size='360p'] { +html[data-page-type=video][it-player-size='360p'] { --it-player-size: 360px; } -html[it-page-type=video][it-player-size='480p'] { +html[data-page-type=video][it-player-size='480p'] { --it-player-size: 480px; } -html[it-page-type=video][it-player-size='576p'] { +html[data-page-type=video][it-player-size='576p'] { --it-player-size: 576px; } -html[it-page-type=video][it-player-size='720p'] { +html[data-page-type=video][it-player-size='720p'] { --it-player-size: 720px; } -html[it-page-type=video][it-player-size='1080p'] { +html[data-page-type=video][it-player-size='1080p'] { --it-player-size: 1080px; } -html[it-page-type=video][it-player-size='1440p'] { +html[data-page-type=video][it-player-size='1440p'] { --it-player-size: 1440px; } -html[it-page-type=video][it-player-size='2160p'] { +html[data-page-type=video][it-player-size='2160p'] { --it-player-size: 2160px; } -html[it-page-type=video][it-player-size='full_window'] { +html[data-page-type=video][it-player-size='full_window'] { --it-player-size: 100vh; } -html[it-page-type=video][it-player-size='fit_to_window'] { +html[data-page-type=video][it-player-size='fit_to_window'] { --it-player-size: 100vh; } @@ -596,23 +596,23 @@ html[it-page-type=video][it-player-size='fit_to_window'] { # ELEMENTS ------------------------------------------------------------------------------*/ -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-container-inner { +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-container-inner { padding-top: calc(var(--it-player-size) - var(--it-header-size)) !important; } -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container, -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container { +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container, +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container { width: auto !important; height: calc(var(--it-player-size) - var(--it-header-size)) !important; - max-height: none !important; min-height: auto !important; + max-height: none !important; } -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player { +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player { background: #000 !important; } -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-container { +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-container { position: absolute !important; display: flex !important; width: 100% !important; @@ -621,7 +621,7 @@ html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']) align-items: center !important; } -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video { +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video { position: relative !important; top: 0 !important; left: 0 !important; @@ -633,45 +633,46 @@ html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']) /*FIT TO WINDOW*/ -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-theater-container { +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-theater-container { background: transparent !important; } -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) { +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) { display: table !important; overflow: visible !important; width: auto !important; margin: auto !important; } -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-chrome-bottom { +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-chrome-bottom { width: calc(100% - 24px) !important; } -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .html5-video-container { +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .html5-video-container { position: relative !important; display: inline-block !important; width: auto !important; } -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video { +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video { position: relative !important; width: auto !important; max-width: 100vw !important; } -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-iv-video-content { +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-iv-video-content { pointer-events: none !important; } -/*html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, -html[it-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player, -html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, -html[it-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player { + +/*html[data-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, +html[data-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player, +html[data-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, +html[data-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player { margin-top: 14px !important; }*/ -html[it-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-tooltip.ytp-preview { +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-tooltip.ytp-preview { top: auto !important; bottom: 80px !important; } @@ -818,12 +819,12 @@ html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player). bottom: 0 !important; } + /*----------------------------------------------------------------------------- 2.2.10 Hide Gradient Bottom -----------------------------------------------------------------------------*/ -html[it-hide-gradient-bottom=true] .ytp-gradient-bottom -{ +html[it-hide-gradient-bottom=true] .ytp-gradient-bottom { display: none; } @@ -908,34 +909,38 @@ html[it-related-videos=collapsed].related-videos-collapsed #improvedtube-collaps box-shadow: inset 0 1px 0 #ddd; } + /*----------------------------------------------------------------------------- 2.3.4 Sidebar position -----------------------------------------------------------------------------*/ html[it-sidebar-left='true'] #columns>#primary, -html[it-sidebar-left='true'] #head>#upnext /* also moving autoplay button to the outside as the glow bothers next to the video */ -{ - order:7; +html[it-sidebar-left='true'] #head>#upnext +/* also moving autoplay button to the outside as the glow bothers next to the video */ + +{ + order: 7; } + /*----------------------------------------------------------------------------- 2.3.5 Thumbnails -----------------------------------------------------------------------------*/ -html[it-thumbnails-right='true'] #dismissible>ytd-thumbnail -{ - order:7; +html[it-thumbnails-right='true'] #dismissible>ytd-thumbnail { + order: 7; } -html[it-thumbnails-hide='true'] #dismissible>ytd-thumbnail -{ - display:none; +html[it-thumbnails-hide='true'] #dismissible>ytd-thumbnail { + display: none; } + /*------------------------------------------------------------------------------ 2.4 DETAILS ------------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------------ 2.4.1 HIDE DETAILS ------------------------------------------------------------------------------*/ @@ -954,7 +959,7 @@ html[it-hide-details=true] #primary-inner>#meta { ------------------------------------------------------------------------------*/ html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer, -html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer + #date > #dot { +html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer+#date>#dot { display: none; } @@ -963,8 +968,8 @@ html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer + #date > 2.4.2 HIDE DATE ------------------------------------------------------------------------------*/ -html[it-hide-date=true] #count.ytd-video-primary-info-renderer + #date, -html[it-hide-date=true] #count.ytd-video-primary-info-renderer + #date > #dot { +html[it-hide-date=true] #count.ytd-video-primary-info-renderer+#date, +html[it-hide-date=true] #count.ytd-video-primary-info-renderer+#date>#dot { display: none; } @@ -993,7 +998,7 @@ html[it-hide-save-button=true] #info #top-level-buttons-computed ytd-button-rend 2.4.2 HIDE MORE BUTTON ------------------------------------------------------------------------------*/ -html[it-hide-more-button=true] #info #top-level-buttons-computed + yt-icon-button { +html[it-hide-more-button=true] #info #top-level-buttons-computed+yt-icon-button { display: none; } @@ -1189,6 +1194,7 @@ html[it-bluelight][it-youtube-version=old] body { 3.3 THEMES ------------------------------------------------------------------------------*/ + /*BLACK*/ [it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), @@ -1204,40 +1210,40 @@ html[it-bluelight][it-youtube-version=old] body { --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #000; --yt-spec-brand-background-solid: #000 !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; --yt-spec-general-background-a: #000 !important; --yt-spec-general-background-b: #000 !important; --yt-spec-general-background-c: #000 !important; - --yt-spec-error-background: #1F1F1F !important; + --yt-spec-error-background: #1f1f1f !important; --yt-spec-text-primary: #aaa !important; --yt-spec-text-primary-inverse: #003459 !important; --yt-spec-text-secondary: #aaa !important; --yt-spec-text-disabled: #aaa !important; - --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-call-to-action: #065fd4 !important; --yt-spec-icon-active-other: #aaa !important; --yt-spec-icon-inactive: #aaa !important; --yt-spec-icon-disabled: #aaa !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; - --yt-spec-touch-response: #000000 !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, .05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, .15) !important; + --yt-spec-suggested-action: #f2f8ff !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, .10) !important; + --yt-spec-touch-response: #000 !important; --yt-spec-filled-button-text: #aaa !important; --yt-spec-call-to-action-inverse: #aaa !important; --yt-spec-brand-icon-active: #aaa !important; --yt-spec-brand-icon-inactive: #aaa !important; --yt-spec-brand-button-background: #242424 !important; --yt-spec-brand-link-text: #aaa !important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, .60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, .30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, .30) !important; --yt-spec-inactive-text-button-focus-outline: #aaa !important; --yt-spec-brand-subscribe-button-background: #aaa !important; --yt-spec-wordmark-text: #aaa !important; --yt-spec-10-percent-layer: #242424 !important; --yt-spec-selected-nav-text: #aaa !important; - --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-blue: #065fd4 !important; --yt-spec-themed-green: #107516 !important; } @@ -1406,6 +1412,7 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-blue-suggestive: transparent; } + /*DAWN*/ [it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), @@ -1421,24 +1428,24 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #734; --yt-spec-brand-background-solid: #d44d5c !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; --yt-spec-general-background-a: #d44d5c !important; --yt-spec-general-background-b: #d44d5c !important; --yt-spec-general-background-c: #d44d5c !important; - --yt-spec-error-background: #1F1F1F !important; + --yt-spec-error-background: #1f1f1f !important; --yt-spec-text-primary: rgb(255, 255, 255) !important; --yt-spec-text-primary-inverse: #003459 !important; --yt-spec-text-secondary: rgb(255, 255, 255) !important; --yt-spec-text-disabled: rgb(255, 255, 255) !important; - --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-call-to-action: #065fd4 !important; --yt-spec-icon-active-other: rgb(255, 255, 255) !important; --yt-spec-icon-inactive: rgb(255, 255, 255) !important; --yt-spec-icon-disabled: rgb(255, 255, 255) !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, .05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, .15) !important; + --yt-spec-suggested-action: #f2f8ff !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, .10) !important; --yt-spec-touch-response: #d44d5c !important; --yt-spec-filled-button-text: rgb(255, 255, 255) !important; --yt-spec-call-to-action-inverse: rgb(255, 255, 255) !important; @@ -1446,15 +1453,15 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-spec-brand-icon-inactive: rgb(255, 255, 255) !important; --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; --yt-spec-brand-link-text: rgb(255, 255, 255)!important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, .60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, .30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, .30) !important; --yt-spec-inactive-text-button-focus-outline: #aaa !important; --yt-spec-brand-subscribe-button-background: rgb(255, 255, 255) !important; --yt-spec-wordmark-text: rgb(255, 255, 255) !important; --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; --yt-spec-selected-nav-text: rgb(255, 255, 255) !important; - --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-blue: #065fd4 !important; --yt-spec-themed-green: #107516 !important; } @@ -1624,6 +1631,7 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu filter: grayscale(1) brightness(4); } + /*DEFAULT DARK*/ [it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { @@ -2153,6 +2161,7 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu } } + /*DESERT*/ [it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), @@ -2168,24 +2177,24 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #bee3db; --yt-spec-brand-background-solid: #faf9f9 !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; --yt-spec-general-background-a: #faf9f9 !important; --yt-spec-general-background-b: #faf9f9 !important; --yt-spec-general-background-c: #faf9f9 !important; - --yt-spec-error-background: #1F1F1F !important; + --yt-spec-error-background: #1f1f1f !important; --yt-spec-text-primary: #555 !important; --yt-spec-text-primary-inverse: #003459 !important; --yt-spec-text-secondary: #555 !important; --yt-spec-text-disabled: #555 !important; - --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-call-to-action: #065fd4 !important; --yt-spec-icon-active-other: #555 !important; --yt-spec-icon-inactive: #555 !important; --yt-spec-icon-disabled: #555 !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, .05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, .15) !important; + --yt-spec-suggested-action: #f2f8ff !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, .10) !important; --yt-spec-touch-response: #faf9f9 !important; --yt-spec-filled-button-text: #555 !important; --yt-spec-call-to-action-inverse: #555 !important; @@ -2193,15 +2202,15 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-spec-brand-icon-inactive: #555 !important; --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; --yt-spec-brand-link-text: #555!important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, .60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, .30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, .30) !important; --yt-spec-inactive-text-button-focus-outline: #aaa !important; --yt-spec-brand-subscribe-button-background: #555 !important; --yt-spec-wordmark-text: #555 !important; --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; --yt-spec-selected-nav-text: #555 !important; - --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-blue: #065fd4 !important; --yt-spec-themed-green: #107516 !important; } @@ -2364,6 +2373,7 @@ html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche --yt-blue-suggestive: transparent; } + /*NIGHT*/ [it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), @@ -2379,24 +2389,24 @@ html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #007ea7; --yt-spec-brand-background-solid: #003459 !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; --yt-spec-general-background-a: #003459 !important; --yt-spec-general-background-b: #003459 !important; --yt-spec-general-background-c: #003459 !important; - --yt-spec-error-background: #1F1F1F !important; + --yt-spec-error-background: #1f1f1f !important; --yt-spec-text-primary: #fff !important; --yt-spec-text-primary-inverse: #003459 !important; --yt-spec-text-secondary: #fff !important; --yt-spec-text-disabled: #fff !important; - --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-call-to-action: #065fd4 !important; --yt-spec-icon-active-other: #fff !important; --yt-spec-icon-inactive: #fff !important; --yt-spec-icon-disabled: #fff !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, .05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, .15) !important; + --yt-spec-suggested-action: #f2f8ff !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, .10) !important; --yt-spec-touch-response: #003459 !important; --yt-spec-filled-button-text: #fff !important; --yt-spec-call-to-action-inverse: #fff !important; @@ -2404,15 +2414,15 @@ html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche --yt-spec-brand-icon-inactive: #fff !important; --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; --yt-spec-brand-link-text: #fff!important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, .60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, .30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, .30) !important; --yt-spec-inactive-text-button-focus-outline: #aaa !important; --yt-spec-brand-subscribe-button-background: #fff !important; --yt-spec-wordmark-text: #fff !important; --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; --yt-spec-selected-nav-text: #fff !important; - --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-blue: #065fd4 !important; --yt-spec-themed-green: #107516 !important; } @@ -2581,6 +2591,7 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-blue-suggestive: transparent; } + /*PLAIN*/ [it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), @@ -2596,24 +2607,24 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #d6d1b1; --yt-spec-brand-background-solid: #c7efcf !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; --yt-spec-general-background-a: #c7efcf !important; --yt-spec-general-background-b: #c7efcf !important; --yt-spec-general-background-c: #c7efcf !important; - --yt-spec-error-background: #1F1F1F !important; + --yt-spec-error-background: #1f1f1f !important; --yt-spec-text-primary: #666 !important; --yt-spec-text-primary-inverse: #003459 !important; --yt-spec-text-secondary: #666 !important; --yt-spec-text-disabled: #666 !important; - --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-call-to-action: #065fd4 !important; --yt-spec-icon-active-other: #666 !important; --yt-spec-icon-inactive: #666 !important; --yt-spec-icon-disabled: #666 !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, .05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, .15) !important; + --yt-spec-suggested-action: #f2f8ff !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, .10) !important; --yt-spec-touch-response: #c7efcf !important; --yt-spec-filled-button-text: #666 !important; --yt-spec-call-to-action-inverse: #666 !important; @@ -2621,15 +2632,15 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-spec-brand-icon-inactive: #666 !important; --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; --yt-spec-brand-link-text: #666!important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, .60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, .30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, .30) !important; --yt-spec-inactive-text-button-focus-outline: #aaa !important; --yt-spec-brand-subscribe-button-background: #666 !important; --yt-spec-wordmark-text: #666 !important; --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; --yt-spec-selected-nav-text: #666 !important; - --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-blue: #065fd4 !important; --yt-spec-themed-green: #107516 !important; } @@ -2792,6 +2803,7 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-blue-suggestive: transparent; } + /*SUNSET*/ [it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), @@ -2807,24 +2819,24 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; --yt-swatch-header-primary: #f56264; --yt-spec-brand-background-solid: #2f3364 !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, 0.98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, 0.95) !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; --yt-spec-general-background-a: #2f3364 !important; --yt-spec-general-background-b: #2f3364 !important; --yt-spec-general-background-c: #2f3364 !important; - --yt-spec-error-background: #1F1F1F !important; + --yt-spec-error-background: #1f1f1f !important; --yt-spec-text-primary: #fff !important; --yt-spec-text-primary-inverse: #003459 !important; --yt-spec-text-secondary: #fff !important; --yt-spec-text-disabled: #fff !important; - --yt-spec-call-to-action: #065FD4 !important; + --yt-spec-call-to-action: #065fd4 !important; --yt-spec-icon-active-other: #fff !important; --yt-spec-icon-inactive: #fff !important; --yt-spec-icon-disabled: #fff !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, 0.05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, 0.15) !important; - --yt-spec-suggested-action: #F2F8FF !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, 0.10) !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, .05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, .15) !important; + --yt-spec-suggested-action: #f2f8ff !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, .10) !important; --yt-spec-touch-response: #2f3364 !important; --yt-spec-filled-button-text: #fff !important; --yt-spec-call-to-action-inverse: #fff !important; @@ -2832,15 +2844,15 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-spec-brand-icon-inactive: #fff !important; --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; --yt-spec-brand-link-text: #fff!important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, 0.60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, 0.30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, 0.30) !important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, .60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, .30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, .30) !important; --yt-spec-inactive-text-button-focus-outline: #aaa !important; --yt-spec-brand-subscribe-button-background: #fff !important; --yt-spec-wordmark-text: #fff !important; --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; --yt-spec-selected-nav-text: #fff !important; - --yt-spec-themed-blue: #065FD4 !important; + --yt-spec-themed-blue: #065fd4 !important; --yt-spec-themed-green: #107516 !important; } @@ -2990,7 +3002,7 @@ html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche --yt-main-app-background: #2f3364; --yt-main-app-background-tmp: #2f3364; --yt-guide-background: #2f3364; - --yt-dialog-background: #D62828; + --yt-dialog-background: #d62828; --yt-searchbox-background: #fa7965!important; --yt-channel-header-background: #2f3364; --yt-sidebar-background: #2f3364; @@ -3041,22 +3053,22 @@ html[it-player-ads=block_all] #masthead-ad { .it-mini-player { position: fixed !important; z-index: 2147483648 !important; - left: 0!important; top: 0!important; + left: 0!important; + background: #000 !important; box-shadow: rgba(0, 0, 0, .4) 0 2px 8px !important; will-change: transform, width, height !important; - background: #000 !important; } -html[it-page-type=video][it-header-position=hover_on_video_page][it-player-size=full_window] .html5-video-player.it-mini-player, -html[it-page-type=video][it-header-position=hover][it-player-size=full_window] .html5-video-player.it-mini-player { +html[data-page-type=video][it-header-position=hover_on_video_page][it-player-size=full_window] .html5-video-player.it-mini-player, +html[data-page-type=video][it-header-position=hover][it-player-size=full_window] .html5-video-player.it-mini-player { margin-top: 0!important; } .it-mini-player .html5-video-container, .it-mini-player video { - left: 0 !important; top: 0 !important; + left: 0 !important; width: 100% !important; height: 100% !important; } @@ -3113,13 +3125,13 @@ html[it-mini-player-cursor='ne-resize']::after, html[it-mini-player-cursor='se-resize']::after, html[it-mini-player-cursor='sw-resize']::after, html[it-mini-player-cursor='nw-resize']::after { - content: ''; position: fixed; - left: 0; + z-index: 2147483650; top: 0; + left: 0; width: 100vw; height: 100vh; - z-index: 2147483650; + content: ''; } html[it-mini-player-cursor='n-resize']::after { @@ -3304,19 +3316,18 @@ FIXED #535 FlaviuIusan ------------------------------------------------------------------------------*/ html[it-channel-hide-featured-content=true] #secondary #contents.style-scope.ytd-browse-secondary-contents-renderer, -html[it-channel-hide-featured-content=true] .branded-page-v2-secondary-col -{ +html[it-channel-hide-featured-content=true] .branded-page-v2-secondary-col { display: none !important; } html[it-channel-hide-featured-content=true] #secondary.ytd-two-column-browse-results-renderer, -html[it-channel-hide-featured-content=true] #secondary ytd-browse-secondary-contents-renderer -{ - padding: 0; +html[it-channel-hide-featured-content=true] #secondary ytd-browse-secondary-contents-renderer { width: fit-content; height: fit-content; + padding: 0; } + /*------------------------------------------------------------------------------ 7.0 SHORTCUTS ------------------------------------------------------------------------------*/ @@ -3497,120 +3508,72 @@ html[it-improvedtube-youtube-icon='draggable'] .it-btn { } - - - - - - - - - - - - - - - - - - - - - - /*------------NEW---------------*/ -.improvedtube-sidebar-a -{ +.improvedtube-sidebar-a { font-size: 1.4rem; line-height: var(--yt-guide-highlight-line-height, 1.8rem); - position: relative; - display: flex; - box-sizing: border-box; width: 100%; height: 40px; padding: 0 24px; - text-decoration: none; - color: var(--yt-spec-text-primary); - justify-content: flex-start; align-items: center; } -.improvedtube-sidebar-a:hover -{ +.improvedtube-sidebar-a:hover { background-color: var(--yt-spec-10-percent-layer); } -.improvedtube-sidebar-a::before -{ +.improvedtube-sidebar-a::before { width: 20px; height: 20px; margin: 2px 26px 2px 2px; - content: ''; - border-radius: 50%; background: #f00; } -.improvedtube-sidebar-a::after -{ +.improvedtube-sidebar-a::after { position: absolute; left: 33px; - display: block; - content: ''; - opacity: .9; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 8px solid rgb(255, 255, 255); } - -.improvedtube-player-button -{ +.improvedtube-player-button { position: relative; - width: 40px; height: 36px; margin: 0 8px; padding: 6px; - cursor: pointer; - border: none; outline: none; background: none; - fill: var(--yt-spec-icon-inactive); } -.improvedtube-player-button:last-of-type -{ +.improvedtube-player-button:last-of-type { margin-right: 24px; } -.improvedtube-player-button:hover::after -{ +.improvedtube-player-button:hover::after { position: absolute; top: 150%; left: 50%; - padding: 8px; - content: attr(data-tooltip); transform: translateX(-50%); - color: var(--paper-tooltip-text-color, white); border-radius: 2px; background-color: var(--paper-tooltip-background, #616161); -} +} \ No newline at end of file diff --git a/youtube-scripts.js b/youtube-scripts.js index 6848e4746..11d85892a 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3072,7 +3072,7 @@ ImprovedTube.shortcuts = function () { for (var key in self.storage) { if (key.indexOf('shortcut_') === 0) { - var function_name = 'shortcut' + (key.replace('shortcut_', '').replace(/\_/g, '-')).split('-').map(function (element, index) { + var function_name = 'shortcut' + (key.replace(/_?shortcut_?/g, '').replace(/\_/g, '-')).split('-').map(function (element, index) { return element[0].toUpperCase() + element.slice(1); }).join(''), data = JSON.parse(self.storage[key]) || {}; From e6ef1131189e1c68fd224801c4dfd0b68fd56183 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 16 Jul 2021 17:02:14 +0300 Subject: [PATCH 0193/1224] Fixed playlist repeat & shuffle. Added experimental code for optimization --- youtube-scripts.js | 100 ++++++++++++++++++++++++--------------------- 1 file changed, 53 insertions(+), 47 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 11d85892a..4df1977f8 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -104,6 +104,9 @@ The variable "ImprovedTube" is used on the YouTube side. ------------------------------------------------------------------------------*/ var ImprovedTube = { + buttons: `{ + playlist: {} + }`, video_src: false, initialVideoUpdateDone: false, latestVideoDuration: 0, @@ -134,8 +137,6 @@ var ImprovedTube = { mini_player__player_offset_y: 0, mini_player__resize_offset: 16, playlistReversed: false, - playlist_repeat_wait: false, - playlist_shuffle_wait: false, improvedtube_youtube_icon_wait: false, status_timer: false }; @@ -193,6 +194,44 @@ ImprovedTube.init = function () { this.playerOnPlay(); this.onkeydown(); this.onmousedown(); + + this.observer = new MutationObserver(function(mutationList) { + for (var i = 0, l = mutationList.length; i < l; i++) { + var mutation = mutationList[i]; + + if (mutation.type === 'childList') { + for (var j = 0, k = mutation.addedNodes.length; j < k; j++) { + var node = mutation.addedNodes[j]; + + if ( + node.nodeName === 'YTD-TOGGLE-BUTTON-RENDERER' && + node.parentComponent && + node.parentComponent.nodeName === 'YTD-MENU-RENDERER' && + node.parentComponent.parentComponent && + node.parentComponent.parentComponent.nodeName === 'YTD-PLAYLIST-PANEL-RENDERER' + ) { + var index = Array.prototype.indexOf.call(node.parentNode.children, node); + + if (index === 0) { + ImprovedTube.buttons.playlist.repeat_button = node; + + ImprovedTube.playlistRepeat(); + } else if (index === 1) { + ImprovedTube.buttons.playlist.shuffle_button = node; + + ImprovedTube.playlistShuffle(); + } + } + } + } + } + }); + + this.observer.observe(document, { + attributes: false, + childList: true, + subtree: true + }); }; @@ -306,12 +345,12 @@ ImprovedTube.playerOnTimeUpdate = function () { if (ImprovedTube.video_src !== this.src) { ImprovedTube.video_src = this.src; - this.playerAds(); + ImprovedTube.playerAds(); if (ImprovedTube.initialVideoUpdateDone !== true) { - this.playerQuality(); - this.playerPlaybackSpeed(); - this.playerVolume(); + ImprovedTube.playerQuality(); + ImprovedTube.playerPlaybackSpeed(); + ImprovedTube.playerVolume(); } } else if (ImprovedTube.latestVideoDuration !== this.duration) { ImprovedTube.latestVideoDuration = this.duration; @@ -363,7 +402,6 @@ ImprovedTube.onmousedown = function (event) { }, true); }; - ImprovedTube.getCookieValueByName = function (name) { var match = document.cookie.match(new RegExp('([; ]' + name + '|^' + name + ')([^\\s;]*)', 'g')); @@ -2392,27 +2430,11 @@ ImprovedTube.playlistReverse = function () { ------------------------------------------------------------------------------*/ ImprovedTube.playlistRepeat = function () { - if (this.isset(this.storage.playlist_repeat) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { - ImprovedTube.playlist_repeat_wait = setInterval(function () { - if ( - document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[0] || - document.querySelector('.playlist-nav-controls .toggle-loop') - ) { - clearInterval(ImprovedTube.playlist_repeat_wait); - - ImprovedTube.playlist_repeat_wait = false; - - var option = ImprovedTube.storage.playlist_repeat, - new_youtube_toggle = document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer'), - old_youtube_toggle = document.querySelector('.playlist-nav-controls .toggle-loop'); + var button = ImprovedTube.buttons.playlist.repeat_button, + option = ImprovedTube.storage.playlist_repeat; - if (new_youtube_toggle[0] && (option === true && new_youtube_toggle[0].className.search('style-default-active') === -1 || option === 'disabled' && new_youtube_toggle[0].className.search('style-default-active') !== -1)) { - new_youtube_toggle[0].click(); - } else if (old_youtube_toggle && (option === true && old_youtube_toggle.className.search('yt-uix-button-toggled') === -1 || option === 'disabled' && old_youtube_toggle.className.search('yt-uix-button-toggled') !== -1)) { - old_youtube_toggle.click(); - } - } - }, 250); + if (button && (option === true && button.className.search('style-default-active') === -1 || option === 'disabled' && button.className.indexOf('style-default-active') !== -1)) { + button.click(); } }; @@ -2422,27 +2444,11 @@ ImprovedTube.playlistRepeat = function () { ------------------------------------------------------------------------------*/ ImprovedTube.playlistShuffle = function () { - if (this.isset(this.storage.playlist_shuffle) && /\/watch\?/.test(location.href) && /list=/.test(location.href)) { - ImprovedTube.playlist_shuffle_wait = setInterval(function () { - if ( - document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer')[1] || - document.querySelector('.playlist-nav-controls .shuffle-playlist') - ) { - clearInterval(ImprovedTube.playlist_shuffle_wait); - - ImprovedTube.playlist_shuffle_wait = false; - - var option = ImprovedTube.storage.playlist_shuffle, - new_youtube_toggle = document.querySelectorAll('#playlist-actions #top-level-buttons ytd-toggle-button-renderer'), - old_youtube_toggle = document.querySelector('.playlist-nav-controls .shuffle-playlist'); + var button = ImprovedTube.buttons.playlist.shuffle_button, + option = ImprovedTube.storage.playlist_shuffle; - if (new_youtube_toggle[1] && (option === true && new_youtube_toggle[1].className.search('style-default-active') === -1 || option === 'disabled' && new_youtube_toggle[1].className.search('style-default-active') !== -1)) { - new_youtube_toggle[1].click(); - } else if (old_youtube_toggle && (option === true && old_youtube_toggle.className.search('yt-uix-button-toggled') === -1 || option === 'disabled' && old_youtube_toggle.className.search('yt-uix-button-toggled') !== -1)) { - old_youtube_toggle.click(); - } - } - }, 250); + if (button && (option === true && button.className.search('style-default-active') === -1 || option === 'disabled' && button.className.indexOf('style-default-active') !== -1)) { + button.click(); } }; From 7c46a7f8e75e70926eceef55d67b708a63246743 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 17 Jul 2021 15:45:58 +0300 Subject: [PATCH 0194/1224] Fixed autoplay, etc. --- youtube-scripts.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 4df1977f8..0fe9bd4ff 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -318,13 +318,13 @@ ImprovedTube.playerOnPlay = function () { if (ImprovedTube.video_url !== location.href) { ImprovedTube.video_url = location.href; - this.playerPlaybackSpeed(); - this.subtitles(); - this.playerQuality(); - this.playerVolume(); + ImprovedTube.playerPlaybackSpeed(); + ImprovedTube.subtitles(); + ImprovedTube.playerQuality(); + ImprovedTube.playerVolume(); if (location.href.indexOf('/embed/') === -1) { - this.mini_player(); + ImprovedTube.mini_player(); } } From 039bfa0bfc16dfe89b820381261df8f8763a78f8 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 17 Jul 2021 16:17:59 +0300 Subject: [PATCH 0195/1224] Fixed player size --- content-styles.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content-styles.css b/content-styles.css index 1b4e5dc5b..20450ba90 100644 --- a/content-styles.css +++ b/content-styles.css @@ -478,7 +478,7 @@ html[data-page-type=video][it-header-position=static] div#page:not(.watch-wide) html[data-page-type=video][it-header-position=hidden], html[data-page-type=video][it-header-position=hidden_on_video_page] { - --it-header-size: 0; + --it-header-size: 0px; } html[data-page-type=video][it-header-position=hidden] ytd-watch-flexy:not([theater]), @@ -488,7 +488,7 @@ html[data-page-type=video][it-header-position=hidden_on_video_page] ytd-watch-fl html[data-page-type=video][it-header-position=hidden] div#page, html[data-page-type=video][it-header-position=hidden_on_video_page] div#page { - --it-header-size: 0; + --it-header-size: 0px; } html[data-page-type=video][it-header-position=hidden] div#page:not(.watch-wide), @@ -545,7 +545,7 @@ html[data-page-type=video][it-player-size='720p'] *, html[data-page-type=video][it-player-size='1080p'] *, html[data-page-type=video][it-player-size='1440p'] *, html[data-page-type=video][it-player-size='2160p'] * { - --it-header-size: 0 !important; + --it-header-size: 0px !important; } From d983ab6872826d2bc8949064b4f3b926602cafd4 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 18 Jul 2021 20:11:05 +0300 Subject: [PATCH 0196/1224] Improvements --- manifest.json | 2 +- youtube-scripts.js | 234 ++++++++++++++++++++------------------------- 2 files changed, 107 insertions(+), 129 deletions(-) diff --git a/manifest.json b/manifest.json index 1b5e8cde2..54066aa26 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.285", + "version": "3.303", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 0fe9bd4ff..ad1b87a6c 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -104,8 +104,9 @@ The variable "ImprovedTube" is used on the YouTube side. ------------------------------------------------------------------------------*/ var ImprovedTube = { - buttons: `{ - playlist: {} + elements: `{ + playlist: {}, + livechat: {} }`, video_src: false, initialVideoUpdateDone: false, @@ -113,8 +114,6 @@ var ImprovedTube = { video_url: false, focus: false, played_before_blur: false, - livechat_wait: false, - livechat_url: false, related_videos_wait: false, comments_wait: false, allow_autoplay: false, @@ -203,24 +202,39 @@ ImprovedTube.init = function () { for (var j = 0, k = mutation.addedNodes.length; j < k; j++) { var node = mutation.addedNodes[j]; - if ( - node.nodeName === 'YTD-TOGGLE-BUTTON-RENDERER' && - node.parentComponent && - node.parentComponent.nodeName === 'YTD-MENU-RENDERER' && - node.parentComponent.parentComponent && - node.parentComponent.parentComponent.nodeName === 'YTD-PLAYLIST-PANEL-RENDERER' - ) { - var index = Array.prototype.indexOf.call(node.parentNode.children, node); - - if (index === 0) { - ImprovedTube.buttons.playlist.repeat_button = node; - - ImprovedTube.playlistRepeat(); - } else if (index === 1) { - ImprovedTube.buttons.playlist.shuffle_button = node; - - ImprovedTube.playlistShuffle(); + if (node.nodeName === 'YTD-TOGGLE-BUTTON-RENDERER') { + if ( + node.parentComponent && + node.parentComponent.nodeName === 'YTD-MENU-RENDERER' && + node.parentComponent.parentComponent && + node.parentComponent.parentComponent.nodeName === 'YTD-PLAYLIST-PANEL-RENDERER' + ) { + var index = Array.prototype.indexOf.call(node.parentNode.children, node); + + if (index === 0) { + ImprovedTube.elements.playlist.repeat_button = node; + + ImprovedTube.playlistRepeat(); + + ImprovedTube.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode; + + ImprovedTube.playlistReverse(); + } else if (index === 1) { + ImprovedTube.elements.playlist.shuffle_button = node; + + ImprovedTube.playlistShuffle(); + + ImprovedTube.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode; + + ImprovedTube.playlistReverse(); + } } + } else if (node.id === 'movie_player') { + ImprovedTube.elements.player = node; + } else if (node.id === 'chat') { + ImprovedTube.elements.livechat.button = node.querySelector('ytd-toggle-button-renderer'); + + ImprovedTube.livechat(); } } } @@ -272,8 +286,6 @@ ImprovedTube.videoPageUpdate = function () { this.forcedTheaterMode(); this.playerHdThumbnail(); - this.alwaysShowProgressBar(); - this.livechat(); this.relatedVideos(); this.howLongAgoTheVideoWasUploaded(); this.channelVideosCount(); @@ -359,6 +371,8 @@ ImprovedTube.playerOnTimeUpdate = function () { ImprovedTube.playerPlaybackSpeed(); ImprovedTube.playerVolume(); } + + ImprovedTube.alwaysShowProgressBar(); }; @@ -889,55 +903,49 @@ ImprovedTube.playerHdThumbnail = function () { ------------------------------------------------------------------------------*/ ImprovedTube.alwaysShowProgressBar = function () { - if (ImprovedTube.always_show_progress_bar_interval) { - clearInterval(ImprovedTube.always_show_progress_bar_interval); - } - if (this.storage.always_show_progress_bar === true) { - ImprovedTube.always_show_progress_bar_interval = setInterval(function () { - var player = document.querySelector('.html5-video-player'); - - if (player && player.classList.contains('ytp-autohide')) { - var played = player.getCurrentTime() * 100 / player.getDuration(), - loaded = player.getVideoBytesLoaded() * 100, - play_bars = player.querySelectorAll('.ytp-play-progress'), - load_bars = player.querySelectorAll('.ytp-load-progress'), - width = 0, - progress_play = 0, - progress_load = 0; - - for (var i = 0, l = play_bars.length; i < l; i++) { - width += play_bars[i].offsetWidth; - } + var player = ImprovedTube.elements.player; + + if (player && player.className.indexOf('ytp-autohide') !== -1) { + var played = player.getCurrentTime() * 100 / player.getDuration(), + loaded = player.getVideoBytesLoaded() * 100, + play_bars = player.querySelectorAll('.ytp-play-progress'), + load_bars = player.querySelectorAll('.ytp-load-progress'), + width = 0, + progress_play = 0, + progress_load = 0; + + for (var i = 0, l = play_bars.length; i < l; i++) { + width += play_bars[i].offsetWidth; + } - var width_percent = width / 100; + var width_percent = width / 100; - for (var i = 0, l = play_bars.length; i < l; i++) { - var a = play_bars[i].offsetWidth / width_percent, - b = 0, - c = 0; + for (var i = 0, l = play_bars.length; i < l; i++) { + var a = play_bars[i].offsetWidth / width_percent, + b = 0, + c = 0; - if (played - progress_play >= a) { - b = 100; - } else if (played > progress_play && played < a + progress_play) { - b = 100 * ((played - progress_play) * width_percent) / play_bars[i].offsetWidth; - } + if (played - progress_play >= a) { + b = 100; + } else if (played > progress_play && played < a + progress_play) { + b = 100 * ((played - progress_play) * width_percent) / play_bars[i].offsetWidth; + } - play_bars[i].style.transform = 'scaleX(' + b / 100 + ')'; + play_bars[i].style.transform = 'scaleX(' + b / 100 + ')'; - if (loaded - progress_load >= a) { - c = 100; - } else if (loaded > progress_load && loaded < a + progress_load) { - c = 100 * ((loaded - progress_load) * width_percent) / play_bars[i].offsetWidth; - } + if (loaded - progress_load >= a) { + c = 100; + } else if (loaded > progress_load && loaded < a + progress_load) { + c = 100 * ((loaded - progress_load) * width_percent) / play_bars[i].offsetWidth; + } - load_bars[i].style.transform = 'scaleX(' + c / 100 + ')'; + load_bars[i].style.transform = 'scaleX(' + c / 100 + ')'; - progress_play += a; - progress_load += a; - } + progress_play += a; + progress_load += a; } - }, 100); + } } }; @@ -951,38 +959,8 @@ ImprovedTube.alwaysShowProgressBar = function () { ------------------------------------------------------------------------------*/ ImprovedTube.livechat = function () { - if ( - document.documentElement.getAttribute('data-page-type') === 'video' && - this.storage.livechat === 'collapsed' && - this.livechat_wait === false - ) { - this.livechat_wait = setInterval(function () { - var button = document.querySelector('#chat:not([collapsed]) #show-hide-button paper-button'), - expander = document.querySelector('#watch-sidebar-live-chat .yt-uix-expander'); - - if (document.documentElement.getAttribute('data-page-type') !== 'video' || button || expander) { - clearInterval(ImprovedTube.livechat_wait); - - ImprovedTube.livechat_wait = false; - } - - if (button) { - function click() { - ImprovedTube.livechat_url = location.href; - } - - button.addEventListener('mousedown', click); - button.addEventListener('touchdown', click); - - setTimeout(function () { - if (ImprovedTube.livechat_url !== location.href) { - button.click(); - } - }, 500); - } else if (expander) { - expander.classList.add('yt-uix-expander-collapsed'); - } - }, 250); + if (this.storage.livechat === 'collapsed') { + ImprovedTube.elements.livechat.button.click(); } }; @@ -2333,37 +2311,6 @@ ImprovedTube.playlistUpNextAutoplay = function (event) { ImprovedTube.playlistReverse = function () { if (this.storage.playlist_reverse === true) { - if (!document.querySelector('#it-reverse-playlist') && document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #start-actions')) { - var button = document.createElement('button'); - - button.id = 'it-reverse-playlist'; - button.className = 'style-scope yt-icon-button'; - button.innerHTML = ''; - - button.addEventListener('click', function (event) { - var playlist_manager = document.querySelector('yt-playlist-manager'); - - event.preventDefault(); - event.stopPropagation(); - - this.classList.toggle('active'); - - ImprovedTube.playlistReversed = !ImprovedTube.playlistReversed; - - setTimeout(updateNextButton, 500); - - if (playlist_manager && playlist_manager.autoplayData) { - ImprovedTube.playlistAutoplayData = Object.assign({}, playlist_manager.autoplayData); - } - - ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); - - return false; - }, true); - - document.querySelector('ytd-watch-flexy ytd-playlist-panel-renderer #start-actions').appendChild(button); - } - function updateNextButton() { var next_button = document.querySelector('.ytp-next-button'), prev_button = document.querySelector('.ytp-prev-button'), @@ -2414,6 +2361,37 @@ ImprovedTube.playlistReverse = function () { } } + if (!document.querySelector('#it-reverse-playlist') && ImprovedTube.elements.playlist.actions) { + var button = document.createElement('button'); + + button.id = 'it-reverse-playlist'; + button.className = 'style-scope yt-icon-button'; + button.innerHTML = ''; + + button.addEventListener('click', function (event) { + var playlist_manager = document.querySelector('yt-playlist-manager'); + + event.preventDefault(); + event.stopPropagation(); + + this.classList.toggle('active'); + + ImprovedTube.playlistReversed = !ImprovedTube.playlistReversed; + + setTimeout(updateNextButton, 500); + + if (playlist_manager && playlist_manager.autoplayData) { + ImprovedTube.playlistAutoplayData = Object.assign({}, playlist_manager.autoplayData); + } + + ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); + + return false; + }, true); + + ImprovedTube.elements.playlist.actions.appendChild(button); + } + if (ImprovedTube.playlistReversed === true) { setTimeout(function () { ImprovedTube.reverse(document.querySelector('ytd-playlist-panel-renderer .playlist-items')); @@ -2430,7 +2408,7 @@ ImprovedTube.playlistReverse = function () { ------------------------------------------------------------------------------*/ ImprovedTube.playlistRepeat = function () { - var button = ImprovedTube.buttons.playlist.repeat_button, + var button = ImprovedTube.elements.playlist.repeat_button, option = ImprovedTube.storage.playlist_repeat; if (button && (option === true && button.className.search('style-default-active') === -1 || option === 'disabled' && button.className.indexOf('style-default-active') !== -1)) { @@ -2444,7 +2422,7 @@ ImprovedTube.playlistRepeat = function () { ------------------------------------------------------------------------------*/ ImprovedTube.playlistShuffle = function () { - var button = ImprovedTube.buttons.playlist.shuffle_button, + var button = ImprovedTube.elements.playlist.shuffle_button, option = ImprovedTube.storage.playlist_shuffle; if (button && (option === true && button.className.search('style-default-active') === -1 || option === 'disabled' && button.className.indexOf('style-default-active') !== -1)) { From 9168684fd3d2fff93caecf7d7300fb287174f099 Mon Sep 17 00:00:00 2001 From: Makabeusz Orban <46041905+makabeus@users.noreply.github.com> Date: Mon, 19 Jul 2021 04:42:04 +0200 Subject: [PATCH 0197/1224] Translation Polish update --- _locales/pl/messages.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index e8ec5e6f5..a648f3286 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -303,7 +303,7 @@ "message": "Wymuś poziom głośności" }, "foundABug": { - "message": "Znalazłeś buga?" + "message": "Znalazłeś błąd?" }, "fullWindow": { "message": "Pełne okno" @@ -354,10 +354,10 @@ "message": "Ukryj sterowanie odtwarzaczem" }, "hideCountryCode": { - "message": "Hide country code" + "message": "Ukryj kod kraju" }, "hideDate": { - "message": "Hide date" + "message": "Ukryj datę" }, "hideDetails": { "message": "Ukryj szczegóły" @@ -375,7 +375,7 @@ "message": "Ukryj cień dookoła paska odtwarzania" }, "hideMoreButton": { - "message": "Hide \"More\" button" + "message": "Ukryj przycisk \"Więcej\"" }, "hidePlaylist": { "message": "Ukryj playliste" @@ -384,13 +384,13 @@ "message": "Ukryj przyciski po prawej" }, "hideSaveButton": { - "message": "Hide \"Save\" button" + "message": "Ukryj przycisk \"Zapisz\"" }, "hideScrollForDetails": { "message": "Ukryj «Przewiń do szczegółów»" }, "hideShareButton": { - "message": "Hide \"Share\" button" + "message": "Ukryj przycisk \"Udostępnij\"" }, "hideThumbnailOverlay": { "message": "Ukryj przyciski na miniaturach" @@ -483,7 +483,7 @@ "message": "Rodzaj czatu na żywo" }, "location": { - "message": "Location" + "message": "Położenie" }, "loudnessNormalization": { "message": "Normalizacja głośności" @@ -582,10 +582,10 @@ "message": "Rozmiar odtwarzacza" }, "playlist": { - "message": "Playlista" + "message": "Lista odtwarzania" }, "playlists": { - "message": "Playlisty" + "message": "Listy odtwarzania" }, "popupPlayer": { "message": "Odtwarzacz popout" @@ -696,7 +696,7 @@ "message": "Pokaż ilość wideo na kanale" }, "shuffle": { - "message": "Shuffle" + "message": "Losowo" }, "sidebar": { "message": "Panel boczny" @@ -801,7 +801,7 @@ "message": "Przezroczyste tło" }, "trending": { - "message": "Trending" + "message": "Na czasie" }, "tryToReloadThePage": { "message": "Spróbuj przeładować stronę" @@ -863,4 +863,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube ogranicza jakość wideo do 1080p przy kodeku h.264" } -} \ No newline at end of file +} From f814787188eaea8fba585e28bc8190aefaeed0f3 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 19 Jul 2021 13:37:04 +0300 Subject: [PATCH 0198/1224] Fixed volume & playback speed status font size --- content-styles.css | 2 +- manifest.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/content-styles.css b/content-styles.css index 20450ba90..3854809a7 100644 --- a/content-styles.css +++ b/content-styles.css @@ -3333,7 +3333,7 @@ html[it-channel-hide-featured-content=true] #secondary ytd-browse-secondary-cont ------------------------------------------------------------------------------*/ #it-status { - font-size: 5rem; + font-size: 40px; position: absolute; top: 2rem; right: 3rem; diff --git a/manifest.json b/manifest.json index 54066aa26..a4fa0f1bc 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.303", + "version": "3.304", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 693d1e4f4b1600817aed0f1fd78d1c6315c2dae4 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 19 Jul 2021 14:38:24 +0300 Subject: [PATCH 0199/1224] Updated locales --- _locales/ar/messages.json | 6 ++++++ _locales/bn/messages.json | 6 ++++++ _locales/de/messages.json | 6 ++++++ _locales/el/messages.json | 6 ++++++ _locales/en/messages.json | 6 ++++++ _locales/es/messages.json | 6 ++++++ _locales/fr/messages.json | 6 ++++++ _locales/hin/messages.json | 6 ++++++ _locales/hr/messages.json | 6 ++++++ _locales/id/messages.json | 6 ++++++ _locales/it/messages.json | 6 ++++++ _locales/ja/messages.json | 6 ++++++ _locales/ko/messages.json | 6 ++++++ _locales/nb_NO/messages.json | 6 ++++++ _locales/nl/messages.json | 6 ++++++ _locales/no/messages.json | 6 ++++++ _locales/pl/messages.json | 8 +++++++- _locales/pt_BR/messages.json | 6 ++++++ _locales/pt_PT/messages.json | 6 ++++++ _locales/ro/messages.json | 6 ++++++ _locales/ru/messages.json | 6 ++++++ _locales/sk/messages.json | 6 ++++++ _locales/tr/messages.json | 6 ++++++ _locales/zh_CN/messages.json | 6 ++++++ _locales/zh_TW/messages.json | 6 ++++++ 25 files changed, 151 insertions(+), 1 deletion(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 92cea82f6..f0b359590 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -683,6 +683,12 @@ "showChannelVideosCount": { "message": "إظهار عدد مقاطع الفيديو للقناة" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "عشوائي" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index aa9bb4da9..3be397903 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -683,6 +683,12 @@ "showChannelVideosCount": { "message": "চ্যানেল ভিডিও গণনা দেখান" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "অদলবদল" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 9783bc214..8be58d5a0 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -683,6 +683,12 @@ "showChannelVideosCount": { "message": "Anzahl Videos je Channel anzeigen" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "Zufallswiedergabe" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 42adef115..8fd6509a5 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -683,6 +683,12 @@ "showChannelVideosCount": { "message": "Δείξε τις συνολικές προβολές του καναλιού" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "Τυχαία αναπαραγωγή" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 0191630ee..b960415a0 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -695,6 +695,12 @@ "showChannelVideosCount": { "message": "Show channel videos count" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "Shuffle" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index a977f999c..f8b1c3879 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -683,6 +683,12 @@ "showChannelVideosCount": { "message": "Mostrar recuento de videos del canal" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "Aleatorio" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index c8203fb67..661e79202 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -686,6 +686,12 @@ "showChannelVideosCount": { "message": "Afficher le nombre de vidéos de la chaîne" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "Aléatoire" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index 845666c19..c2ff96545 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -683,6 +683,12 @@ "showChannelVideosCount": { "message": "चैनल वीडियो काउंट दिखाएं" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "मिश्रण" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 19012890c..4d4b7448f 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -695,6 +695,12 @@ "showChannelVideosCount": { "message": "Prikaži broj videozapisa na kanalu" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "Nasumično" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 980d2636f..b7c74e266 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -680,6 +680,12 @@ "showChannelVideosCount": { "message": "Tampilkan jumlah video saluran" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "Putar secara acak" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 1441a1919..18a654d53 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -683,6 +683,12 @@ "showChannelVideosCount": { "message": "Mostra contatore visualizzazioni canale" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "Riproduzione casuale" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index d9471d97e..a498a2723 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -683,6 +683,12 @@ "showChannelVideosCount": { "message": "チャンネルの動画数を表示する" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "シャッフル" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 68ae2e78c..973ca0e99 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -680,6 +680,12 @@ "showChannelVideosCount": { "message": "채널의 비디오수 표시" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "셔플" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index fcb70dfcb..0e47ebbea 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -686,6 +686,12 @@ "showChannelVideosCount": { "message": "Vis antall kanaler" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "Tilfeldig rekkefølge" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 9757efa83..686b5d414 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -683,6 +683,12 @@ "showChannelVideosCount": { "message": "Aantal kanaalvideo's tonen" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "Willekeurig" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 4e8ae8ba5..822fb7a20 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -680,6 +680,12 @@ "showChannelVideosCount": { "message": "Vis antall kanaler" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "Tilfeldig rekkefølge" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index a648f3286..8dbc5149a 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -695,6 +695,12 @@ "showChannelVideosCount": { "message": "Pokaż ilość wideo na kanale" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "Losowo" }, @@ -863,4 +869,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube ogranicza jakość wideo do 1080p przy kodeku h.264" } -} +} \ No newline at end of file diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index d7b43595e..37c1ac61c 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -683,6 +683,12 @@ "showChannelVideosCount": { "message": "Número de vídeos do canal" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "Aleatório" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 592b6707f..aed191a4f 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -683,6 +683,12 @@ "showChannelVideosCount": { "message": "Mostrar contagem de videos do canal" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "Misturar" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index f9e3bf970..53f5e24ad 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -689,6 +689,12 @@ "showChannelVideosCount": { "message": "Arată numărul de videoclipuri al canalului" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "Amestecă" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index a2afe1efa..acfaf1ad9 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -683,6 +683,12 @@ "showChannelVideosCount": { "message": "Показывать количество видео на канале" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "Случайный порядок" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 8de7d266f..fa5186a91 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -683,6 +683,12 @@ "showChannelVideosCount": { "message": "Zobraziť počet videí kanálu" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "Náhodne" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index a471d155d..dcdb0bf7a 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -683,6 +683,12 @@ "showChannelVideosCount": { "message": "Kanalın video sayısını göster" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "Karıştır" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 5a176169a..eedb828a5 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -695,6 +695,12 @@ "showChannelVideosCount": { "message": "显示频道内视频数" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "随机" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 8959ecad0..625d5f690 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -692,6 +692,12 @@ "showChannelVideosCount": { "message": "顯示頻道影片數量" }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, "shuffle": { "message": "隨機播放" }, From 0dfe2190fcc9a6ef63586985725cf08c4ce7205e Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 19 Jul 2021 14:53:21 +0300 Subject: [PATCH 0200/1224] Optimized "Related videos" feature --- content-styles.css | 23 +----------------- manifest.json | 2 +- youtube-scripts.js | 59 +++++++++++++++------------------------------- 3 files changed, 21 insertions(+), 63 deletions(-) diff --git a/content-styles.css b/content-styles.css index 3854809a7..5e5f65838 100644 --- a/content-styles.css +++ b/content-styles.css @@ -864,8 +864,6 @@ html[it-hide-playlist=true] #placeholder-playlist { ------------------------------------------------------------------------------*/ html[it-related-videos=hidden] div#related, -html[it-related-videos=hidden] div#watch7-sidebar-contents, -html[it-related-videos=collapsed].related-videos-collapsed #watch7-sidebar-modules, html[it-related-videos=collapsed].related-videos-collapsed #related>*:not(#improvedtube-collapsed-related-videos), html[it-related-videos=collapsed]:not(.related-videos-collapsed) #improvedtube-collapsed-related-videos .show-more-text, html[it-related-videos=collapsed].related-videos-collapsed #improvedtube-collapsed-related-videos .show-less-text { @@ -883,32 +881,13 @@ html[it-related-videos=collapsed].related-videos-collapsed #improvedtube-collaps cursor: pointer; letter-spacing: .007px; text-transform: uppercase; - color: var(--yt-expand-color); + color: var(--yt-spec-text-secondary); border: none; border-bottom: 1px solid var(--yt-spec-10-percent-layer); outline: none; background: transparent; } -#watch7-sidebar #improvedtube-collapsed-related-videos { - font-size: 12px; - font-weight: 500; - display: block; - width: 95%; - height: 100%; - margin: 0 auto 15px !important; - padding: 10px 0; - cursor: pointer; - text-align: center; - color: #333; - border: 1px solid #d3d3d3; - border-color: #c6c6c6; - outline: 0; - background-color: #f8f8f8; - background-image: linear-gradient(to top, #f0f0f0 0, #f8f8f8 100%); - box-shadow: inset 0 1px 0 #ddd; -} - /*----------------------------------------------------------------------------- 2.3.4 Sidebar position diff --git a/manifest.json b/manifest.json index a4fa0f1bc..4e7bc5178 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.304", + "version": "3.305", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index ad1b87a6c..a0dfbf375 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -19,7 +19,7 @@ 2.1.3 Always show progress bar 2.2 Sidebar 2.2.1 Livechat - 2.2.2 Relative videos + 2.2.2 Related videos 2.3 Details 2.3.1 How long ago the video was uploaded 2.3.2 Show channel videos count @@ -106,7 +106,8 @@ The variable "ImprovedTube" is used on the YouTube side. var ImprovedTube = { elements: `{ playlist: {}, - livechat: {} + livechat: {}, + related: {} }`, video_src: false, initialVideoUpdateDone: false, @@ -235,6 +236,10 @@ ImprovedTube.init = function () { ImprovedTube.elements.livechat.button = node.querySelector('ytd-toggle-button-renderer'); ImprovedTube.livechat(); + } else if (node.id === 'related' && node.className.indexOf('ytd-watch-flexy') !== -1) { + ImprovedTube.elements.related.container = node; + + ImprovedTube.relatedVideos(); } } } @@ -286,7 +291,6 @@ ImprovedTube.videoPageUpdate = function () { this.forcedTheaterMode(); this.playerHdThumbnail(); - this.relatedVideos(); this.howLongAgoTheVideoWasUploaded(); this.channelVideosCount(); this.comments(); @@ -966,52 +970,27 @@ ImprovedTube.livechat = function () { /*------------------------------------------------------------------------------ -2.2.2 RELATIVE VIDEOS +2.2.2 RELATED VIDEOS ------------------------------------------------------------------------------*/ ImprovedTube.relatedVideos = function () { if (this.storage.related_videos === 'collapsed') { - if (!this.related_videos_wait) { - this.related_videos_wait = setInterval(function () { - if ( - document.querySelector('#related.ytd-watch-flexy') || - document.querySelector('#watch7-sidebar-contents') - ) { - clearInterval(this.related_videos_wait); - - this.related_videos_wait = false; - - if (!document.getElementById('improvedtube-collapsed-related-videos')) { - var button = document.createElement('button'), - parent = document.querySelector('#related.ytd-watch-flexy') || document.querySelector('#watch7-sidebar-contents'), - reference = document.querySelector('#related > *') || document.querySelector('#watch7-sidebar-contents > *'); + var button = ImprovedTube.elements.related.button || document.createElement('button'), + parent = ImprovedTube.elements.related.container; - button.id = 'improvedtube-collapsed-related-videos'; - button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; - button.innerHTML = 'Show moreShow less'; - - button.onclick = function () { - document.documentElement.classList.toggle('related-videos-collapsed'); - }; + button.id = 'improvedtube-collapsed-related-videos'; + button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; + button.innerHTML = 'Show moreShow less'; - document.documentElement.classList.toggle('related-videos-collapsed'); - parent.insertBefore(button, reference); - } - } - }, 250); - } - } else { - clearInterval(this.related_videos_wait); + button.onclick = function () { + document.documentElement.classList.toggle('related-videos-collapsed'); + }; - this.related_videos_wait = false; + document.documentElement.classList.add('related-videos-collapsed'); - setTimeout(function () { - var button = document.getElementById('improvedtube-collapsed-related-videos'); + parent.insertBefore(button, parent.children[0]); - if (button) { - button.remove(); - } - }, 260); + ImprovedTube.elements.related.button = button; } }; From a55fbcc47d8b8dfe7be34706d2fae72b62a8492e Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 19 Jul 2021 15:02:56 +0300 Subject: [PATCH 0201/1224] Optimized "Comments" feature --- content-styles.css | 5 ++--- manifest.json | 2 +- youtube-scripts.js | 55 ++++++++++++++-------------------------------- 3 files changed, 20 insertions(+), 42 deletions(-) diff --git a/content-styles.css b/content-styles.css index 5e5f65838..e8d2b6d75 100644 --- a/content-styles.css +++ b/content-styles.css @@ -1058,7 +1058,6 @@ html[it-description=expanded] .yt-uix-expander-collapsed .yt-uix-expander-body { ------------------------------------------------------------------------------*/ html[it-comments=hidden] ytd-comments#comments, -html[it-comments=hidden] div#watch-discussion, html[it-comments=collapsed].comments-collapsed #comment-section-renderer-items+button, html[it-comments=collapsed]:not(.comments-collapsed) #improvedtube-collapsed-comments .show-more-text, html[it-comments=collapsed].comments-collapsed #improvedtube-collapsed-comments .show-less-text, @@ -1072,7 +1071,7 @@ html[it-comments=collapsed].comments-collapsed #comments #sections #contents { height: 0 !important; } -#sections #improvedtube-collapsed-comments { +#improvedtube-collapsed-comments { font-family: inherit; font-size: 12px; font-weight: 500; @@ -1083,7 +1082,7 @@ html[it-comments=collapsed].comments-collapsed #comments #sections #contents { cursor: pointer; letter-spacing: .007px; text-transform: uppercase; - color: var(--yt-expand-color); + color: var(--yt-spec-text-secondary); border: none; border-bottom: 1px solid var(--yt-spec-10-percent-layer); outline: none; diff --git a/manifest.json b/manifest.json index 4e7bc5178..e4b45a3f7 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.305", + "version": "3.306", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index a0dfbf375..479e8004c 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -107,7 +107,8 @@ var ImprovedTube = { elements: `{ playlist: {}, livechat: {}, - related: {} + related: {}, + comments: {} }`, video_src: false, initialVideoUpdateDone: false, @@ -115,8 +116,6 @@ var ImprovedTube = { video_url: false, focus: false, played_before_blur: false, - related_videos_wait: false, - comments_wait: false, allow_autoplay: false, adInterval: false, AdSkipButton: false, @@ -240,6 +239,10 @@ ImprovedTube.init = function () { ImprovedTube.elements.related.container = node; ImprovedTube.relatedVideos(); + } else if (node.nodeName === 'YTD-COMMENTS-HEADER-RENDERER') { + ImprovedTube.elements.comments.container = node; + + ImprovedTube.comments(); } } } @@ -293,7 +296,6 @@ ImprovedTube.videoPageUpdate = function () { this.playerHdThumbnail(); this.howLongAgoTheVideoWasUploaded(); this.channelVideosCount(); - this.comments(); this.upNextAutoplay(); this.playerAutofullscreen(); @@ -1123,45 +1125,22 @@ ImprovedTube.channelVideosCount = function () { ImprovedTube.comments = function () { if (this.storage.comments === 'collapsed') { - if (this.comments_wait === false) { - this.comments_wait = setInterval(function () { - if ( - document.getElementById('comment-section-renderer-items') || - document.querySelector('#comments #sections #contents') - ) { - clearInterval(this.comments_wait); - - this.comments_wait = false; + var button = ImprovedTube.elements.comments.button || document.createElement('button'), + parent = ImprovedTube.elements.comments.container; - if (!document.getElementById('improvedtube-collapsed-comments')) { - var button = document.createElement('button'), - parent = document.getElementById('comment-section-renderer') || document.querySelector('#comments #sections'), - reference = document.getElementById('comment-section-renderer-items') || document.querySelector('#comments #sections #contents'); - - button.id = 'improvedtube-collapsed-comments'; - button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; - button.innerHTML = 'Show moreShow less'; + button.id = 'improvedtube-collapsed-comments'; + button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; + button.innerHTML = 'Show moreShow less'; - button.onclick = function () { - document.documentElement.classList.toggle('comments-collapsed'); - }; + button.onclick = function () { + document.documentElement.classList.toggle('comments-collapsed'); + }; - document.documentElement.classList.toggle('comments-collapsed'); - parent.insertBefore(button, reference); - } - } - }, 250); - } - } else { - clearInterval(this.comments_wait); + document.documentElement.classList.add('comments-collapsed'); - this.comments_wait = false; + parent.appendChild(button); - setTimeout(function () { - if (document.getElementById('improvedtube-collapsed-comments')) { - document.getElementById('improvedtube-collapsed-comments').remove(); - } - }, 260); + ImprovedTube.elements.comments.button = button; } }; From d1254822144d68c84aacb8e9fef81dd3e3fec02c Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 19 Jul 2021 15:20:16 +0300 Subject: [PATCH 0202/1224] Optimized images --- wiki/translations/0.png | Bin 21203 -> 6924 bytes wiki/translations/1.png | Bin 41335 -> 12900 bytes wiki/translations/2.png | Bin 40961 -> 12432 bytes wiki/translations/3.png | Bin 38410 -> 12303 bytes wiki/translations/4.png | Bin 23041 -> 6982 bytes wiki/translations/5.png | Bin 25500 -> 8016 bytes wiki/translations/6.png | Bin 44509 -> 13909 bytes wiki/translations/7.png | Bin 38715 -> 12207 bytes 8 files changed, 0 insertions(+), 0 deletions(-) diff --git a/wiki/translations/0.png b/wiki/translations/0.png index c380777fb228caf637e37900dd70652d625e0db4..c2d595b8a8cb94687aa63fa0bd1a10852bdad27d 100644 GIT binary patch literal 6924 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 ADF6Tf diff --git a/wiki/translations/1.png b/wiki/translations/1.png index 0531e9dc3d3860b72d0005594266e62c0926cc8b..f9486451b5068f9911e3eefc2f553d3c41dbf016 100644 GIT binary patch literal 12900 zcmZvDbyOTb^zY&nEnd77mj#NpNGVp_-L1eP3&ow{#VPLYUSRQJ#fmQr6j)MX?9HRDu!FU+fNvU)B605;)&5ec^B|L`K9r>dwa{rvoV za&dKbd3}C$^LOp}_U``V`swQC?)2t)|M2+q;`;9X;rQzD^5*vP>gMS3asTwTe`s`U zVsd30fw+7a7@G-9{WZJ1Jp`R&VCB4fc!JH$A70$U*LIJ4ct}|CUCl;0I@S zd&k#nyT>z&8;hF<8wY17R{y5ptIuw3dZsqd-rl{#u!`D76Dx<>hL-1V-|Ss{ZfY;OA{)npfxI(dHg4T?z1E{upxDygbFxp_W1 zIc;p~V&~@nGcX(+5x2X40CI54FR4sS%Xxfy`Y0;#92|Udd3U(8)!NaszY6c{>D!%~ z*o5`tf#-A#P34r-*9IHgx(7B!J7_%?L?Tu@`-T%bjx5E?zXQ}0#&mTTKUtFJD-cWaDK>+~nBsnQ@O;7k?=A@zQCf8z6%!CVLXf!K}`tolYYhyXy zd%GOkp|DW=%A4zhoAOAqLQPN(H95S&ijLp9;*l+jb|fq`5np{xw89ewp18ptDlkI_ zinIPBMggZThL*_ZKTb$y3V*zdm&n|I4H@L6^Uw0_)4O>T@}~%WDQswq`?1BE(e_R| z^XcmQnPR&iOh6y3u9I

3CXaFu!yS0Cl!;o#{UnrAS;oL1{+9{@l7d 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

g$Z#XVfXxg{>;YCSiSyOYoG<}rL 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 aGDx=iqV-W{G66^Qquf){QY?p9M*J5d$?Qo0 diff --git a/wiki/translations/2.png b/wiki/translations/2.png index 354c5e5bfe548f287282d0e427b1c870a80e0534..8cdb865c643cb4227e708d722d75352729ce91c9 100644 GIT binary patch literal 12432 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 I$XbN{AKpEe2><{9 literal 23041 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 diff --git a/wiki/translations/5.png b/wiki/translations/5.png index bec6fe2517b466ed5ebf3b1a0dd4f982ae96bbb3..0c884f1008ec3320fb4f43f4dae6875bbce3887e 100644 GIT binary patch literal 8016 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 L6{!+QQ~&=11pebd diff --git a/wiki/translations/6.png b/wiki/translations/6.png index a7237ee9285c9562bcc9095150d86581bb8d6203..cd376d39045f402f04940d6ddbf78496d7deacc6 100644 GIT binary patch literal 13909 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 literal 44509 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 diff --git a/wiki/translations/7.png b/wiki/translations/7.png index 5c8f6b6ca21db6c5f882f97a95ef7c74a9e6a247..f5c79905d96c0be474875b066c49ca95c5e3f006 100644 GIT binary patch literal 12207 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 literal 38715 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 HdBpw;>)GG+ From 5dd5799bf564186c48f0fc9eb15d62512db817bf Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 20 Jul 2021 12:01:44 +0300 Subject: [PATCH 0203/1224] Fixed "Hide thumbnails" feature --- content-scripts.js | 1 + manifest.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/content-scripts.js b/content-scripts.js index 2119a0f44..9b79eef48 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -56,6 +56,7 @@ function attributes(items) { 'hide-playlist': true, 'related-videos': true, 'comments': true, + 'thumbnails-hide': true, 'hide-footer': true, 'night-theme': true, 'dawn-theme': true, diff --git a/manifest.json b/manifest.json index e4b45a3f7..4de2d47e0 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.306", + "version": "3.307", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 981d206b5543ee72a53c6de5fe4841c2cacbe7dc Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 20 Jul 2021 12:10:55 +0300 Subject: [PATCH 0204/1224] Fixed page type --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 4de2d47e0..bf754735b 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.307", + "version": "3.308", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From c1b89baf8ab545778e1c7c7b21006f390e3f2e2c Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 20 Jul 2021 13:31:20 +0300 Subject: [PATCH 0205/1224] Optimized ad blocker --- manifest.json | 2 +- youtube-scripts.js | 42 +++++++++++++++--------------------------- 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/manifest.json b/manifest.json index bf754735b..7f120c472 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.308", + "version": "3.309", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 479e8004c..f1093d541 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -117,8 +117,6 @@ var ImprovedTube = { focus: false, played_before_blur: false, allow_autoplay: false, - adInterval: false, - AdSkipButton: false, mini_player__mode: false, mini_player__move: false, mini_player__cursor: '""', @@ -243,6 +241,8 @@ ImprovedTube.init = function () { ImprovedTube.elements.comments.container = node; ImprovedTube.comments(); + } else if (node.nodeName === 'DIV' && node.className.indexOf('ytp-ad-player-overlay') !== -1) { + ImprovedTube.playerAds(node); } } } @@ -268,6 +268,8 @@ ImprovedTube.pageType = function () { document.documentElement.dataset.pageType = 'video'; } else if (/\/channel|user|c\//.test(location.href)) { document.documentElement.dataset.pageType = 'channel'; + } else { + document.documentElement.dataset.pageType = 'other'; } }; @@ -363,8 +365,6 @@ ImprovedTube.playerOnTimeUpdate = function () { if (ImprovedTube.video_src !== this.src) { ImprovedTube.video_src = this.src; - ImprovedTube.playerAds(); - if (ImprovedTube.initialVideoUpdateDone !== true) { ImprovedTube.playerQuality(); ImprovedTube.playerPlaybackSpeed(); @@ -1489,31 +1489,19 @@ ImprovedTube.upNextAutoplay = function () { 4.6 ADS ------------------------------------------------------------------------------*/ -ImprovedTube.playerAds = function () { - if (ImprovedTube.adInterval) { - clearInterval(ImprovedTube.adInterval); - } - - if (ImprovedTube.storage.player_ads === 'block_all') { - ImprovedTube.adInterval = setInterval(function () { - var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); - - if (button) { - button.click(); - - clearInterval(ImprovedTube.adInterval); - } - }, 50); - } else if (ImprovedTube.storage.player_ads === 'subscribed_channels') { - ImprovedTube.adInterval = setInterval(function () { - var button = document.querySelector('.ytp-ad-skip-button.ytp-button'); +ImprovedTube.playerAds = function (parent) { + if (this.storage.player_ads === 'block_all') { + var button = parent.querySelector('.ytp-ad-skip-button.ytp-button'); - if (button && !document.querySelector('#meta paper-button[subscribed]')) { - button.click(); + if (button) { + button.click(); + } + } else if (this.storage.player_ads === 'subscribed_channels') { + var button = parent.querySelector('.ytp-ad-skip-button.ytp-button'); - clearInterval(ImprovedTube.adInterval); - } - }, 50); + if (button && !parent.querySelector('#meta paper-button[subscribed]')) { + button.click(); + } } }; From 4d548a28de2cdd190c11b584c440a0ae9912972b Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 21 Jul 2021 13:07:16 +0300 Subject: [PATCH 0206/1224] Fixed & optimized "Forced volume" feature --- manifest.json | 2 +- youtube-scripts.js | 21 ++++++++------------- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/manifest.json b/manifest.json index 7f120c472..b7a44c5b9 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.309", + "version": "3.310", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index f1093d541..a2d8c2649 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -167,7 +167,6 @@ ImprovedTube.init = function () { }); window.addEventListener('yt-page-data-updated', function () { - console.log('yt-page-data-updated'); ImprovedTube.pageType(); ImprovedTube.videoPageUpdate(); ImprovedTube.played_before_blur = false; @@ -335,7 +334,7 @@ ImprovedTube.playerOnPlay = function () { ImprovedTube.autoplay(this); ImprovedTube.playerLoudnessNormalization(); - if (ImprovedTube.video_url !== location.href) { + if (ImprovedTube.elements.player && ImprovedTube.video_url !== location.href) { ImprovedTube.video_url = location.href; ImprovedTube.playerPlaybackSpeed(); @@ -368,14 +367,12 @@ ImprovedTube.playerOnTimeUpdate = function () { if (ImprovedTube.initialVideoUpdateDone !== true) { ImprovedTube.playerQuality(); ImprovedTube.playerPlaybackSpeed(); - ImprovedTube.playerVolume(); } } else if (ImprovedTube.latestVideoDuration !== this.duration) { ImprovedTube.latestVideoDuration = this.duration; ImprovedTube.playerQuality(); ImprovedTube.playerPlaybackSpeed(); - ImprovedTube.playerVolume(); } ImprovedTube.alwaysShowProgressBar(); @@ -1955,19 +1952,17 @@ ImprovedTube.player60fps = function () { 4.12 FORCED VOLUME ------------------------------------------------------------------------------*/ -ImprovedTube.playerVolume = function (node) { - if (!node) { - node = document.querySelector('.html5-video-player'); - } - - if (node && ImprovedTube.storage.player_forced_volume === true && ImprovedTube.initialVideoUpdateDone == false) { - var volume = Number(ImprovedTube.storage.player_volume); +ImprovedTube.playerVolume = function () { + if (ImprovedTube.storage.player_forced_volume === true) { + var volume = ImprovedTube.storage.player_volume; if (!ImprovedTube.isset(volume)) { - volume = 1; + volume = 100; + } else { + volume = Number(volume); } - node.setVolume(volume); + ImprovedTube.elements.player.setVolume(volume); } }; From d6c6db9d8e491d8fdba0d082dc9d1188a412ad5b Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 21 Jul 2021 13:31:25 +0300 Subject: [PATCH 0207/1224] Fixed & optimized "Forced playback speed" feature --- manifest.json | 2 +- youtube-scripts.js | 28 +++++++++++----------------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/manifest.json b/manifest.json index b7a44c5b9..650cf3927 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.310", + "version": "3.311", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index a2d8c2649..03b120a2d 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -366,13 +366,11 @@ ImprovedTube.playerOnTimeUpdate = function () { if (ImprovedTube.initialVideoUpdateDone !== true) { ImprovedTube.playerQuality(); - ImprovedTube.playerPlaybackSpeed(); } } else if (ImprovedTube.latestVideoDuration !== this.duration) { ImprovedTube.latestVideoDuration = this.duration; ImprovedTube.playerQuality(); - ImprovedTube.playerPlaybackSpeed(); } ImprovedTube.alwaysShowProgressBar(); @@ -1433,22 +1431,18 @@ ImprovedTube.playerAutopauseWhenSwitchingTabs = function () { ------------------------------------------------------------------------------*/ ImprovedTube.playerPlaybackSpeed = function (node) { - var option = Number(ImprovedTube.storage.player_playback_speed), - player = document.querySelector('.html5-video-player'), - is_live = false; - - if (player && player.getVideoData && player.getVideoData().isLive) { - is_live = true; - } + if ( + ImprovedTube.storage.player_forced_playback_speed === true && + ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) + ) { + var player = ImprovedTube.elements.player, + video_data = player.getVideoData(); - if (ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) && ImprovedTube.storage.player_forced_playback_speed === true) { - try { - if (window.location.href.indexOf('music') === -1 && !is_live) { - document.querySelector('.html5-video-player video').playbackRate = option; - } else { - document.querySelector('.html5-video-player video').playbackRate = 1; - } - } catch (err) {} + if (window.location.href.indexOf('music') === -1 && !video_data.isLive) { + player.setPlaybackRate(Number(ImprovedTube.storage.player_playback_speed)); + } else { + player.setPlaybackRate(1); + } } }; From 348449f2f89bfd4ebf2396a49671547a229c9089 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 21 Jul 2021 14:41:20 +0300 Subject: [PATCH 0208/1224] Fixed & optimized "HD thumbnail" feature --- manifest.json | 2 +- youtube-scripts.js | 41 ++++++++++++++++++++++------------------- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/manifest.json b/manifest.json index 650cf3927..974811705 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.311", + "version": "3.312", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 03b120a2d..aa2e61af6 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -228,6 +228,25 @@ ImprovedTube.init = function () { } } else if (node.id === 'movie_player') { ImprovedTube.elements.player = node; + + ImprovedTube.elements.player_thumbnail = node.querySelector('.ytp-cued-thumbnail-overlay-image'); + + new MutationObserver(function(mutationList) { + for (var i = 0, l = mutationList.length; i < l; i++) { + var mutation = mutationList[i]; + + if (mutation.type === 'attributes') { + if (mutation.attributeName === 'style') { + ImprovedTube.playerHdThumbnail(); + } + } + } + }).observe(ImprovedTube.elements.player_thumbnail, { + attributes: true, + attributeFilter: ['style'], + childList: false, + subtree: false + }); } else if (node.id === 'chat') { ImprovedTube.elements.livechat.button = node.querySelector('ytd-toggle-button-renderer'); @@ -294,7 +313,6 @@ ImprovedTube.videoPageUpdate = function () { ImprovedTube.initialVideoUpdateDone = true; this.forcedTheaterMode(); - this.playerHdThumbnail(); this.howLongAgoTheVideoWasUploaded(); this.channelVideosCount(); @@ -875,26 +893,11 @@ ImprovedTube.forcedTheaterMode = function () { ImprovedTube.playerHdThumbnail = function () { if (this.storage.player_hd_thumbnail === true) { - if (this.player_hd_thumbnail_wait !== false) { - clearInterval(ImprovedTube.player_hd_thumbnail_wait); + var thumbnail = ImprovedTube.elements.player_thumbnail; - ImprovedTube.player_hd_thumbnail_wait = false; + if (thumbnail.style.backgroundImage.indexOf('/hqdefault.jpg') !== -1) { + thumbnail.style.backgroundImage = thumbnail.style.backgroundImage.replace('/hqdefault.jpg', '/maxresdefault.jpg'); } - - this.player_hd_thumbnail_wait = setInterval(function () { - var thumbnail = document.querySelector('.ytp-cued-thumbnail-overlay-image'); - - if (thumbnail && thumbnail.style.backgroundImage) { - var style = document.getElementById('it-hd-thumbnail') || document.createElement('style'); - - style.textContent = '.ytp-cued-thumbnail-overlay-image{background-image:' + thumbnail.style.backgroundImage.replace('/hqdefault.jpg', '/maxresdefault.jpg') + ' !important}'; - - if (!document.getElementById('it-hd-thumbnail')) { - style.id = 'it-hd-thumbnail'; - thumbnail.parentNode.insertBefore(style, thumbnail); - } - } - }, 250); } }; From 360c2ac9f3286445752e44a40d89e038cdaf2617 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 21 Jul 2021 15:12:20 +0300 Subject: [PATCH 0209/1224] Optimized "ImprovedTube icon on YouTube" feature --- manifest.json | 2 +- youtube-scripts.js | 237 ++++++++++++++++++++------------------------- 2 files changed, 106 insertions(+), 133 deletions(-) diff --git a/manifest.json b/manifest.json index 974811705..1640e6411 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.312", + "version": "3.313", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index aa2e61af6..c30aaeb7e 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -105,6 +105,7 @@ The variable "ImprovedTube" is used on the YouTube side. var ImprovedTube = { elements: `{ + masthead: {}, playlist: {}, livechat: {}, related: {}, @@ -134,7 +135,6 @@ var ImprovedTube = { mini_player__player_offset_y: 0, mini_player__resize_offset: 16, playlistReversed: false, - improvedtube_youtube_icon_wait: false, status_timer: false }; @@ -161,7 +161,6 @@ ImprovedTube.init = function () { ImprovedTube.font(); ImprovedTube.themes(); ImprovedTube.blacklist(); - ImprovedTube.improvedtubeYoutubeIcon(); //ImprovedTube.improvedtubeYoutubeSidebarButton(); //ImprovedTube.improvedtubeYoutubePlayerButtons(); }); @@ -177,7 +176,6 @@ ImprovedTube.init = function () { ImprovedTube.hideThumbnailOverlay(); ImprovedTube.channelDefaultTab(); ImprovedTube.blacklist(); - ImprovedTube.improvedtubeYoutubeIcon(); //ImprovedTube.improvedtubeYoutubeSidebarButton(); //ImprovedTube.improvedtubeYoutubePlayerButtons(); }); @@ -261,6 +259,17 @@ ImprovedTube.init = function () { ImprovedTube.comments(); } else if (node.nodeName === 'DIV' && node.className.indexOf('ytp-ad-player-overlay') !== -1) { ImprovedTube.playerAds(node); + } else if (node.nodeName === 'YTD-MASTHEAD') { + ImprovedTube.elements.masthead = { + start: node.querySelector('#start'), + end: node.querySelector('#end') + }; + + ImprovedTube.improvedtubeYoutubeIcon(); + } else if (node.nodeName === 'YTD-VIDEO-PRIMARY-INFO-RENDERER') { + ImprovedTube.elements.video_title = node.querySelector('.title.ytd-video-primary-info-renderer'); + + ImprovedTube.improvedtubeYoutubeIcon(); } } } @@ -3345,164 +3354,128 @@ ImprovedTube.improvedtube_youtube_icon_resize = function () { }; ImprovedTube.improvedtubeYoutubeIcon = function () { - if (window.self !== window.top) { + if (window.self !== window.top || ImprovedTube.elements.improvedtube_button) { return false; } + var option = ImprovedTube.storage.improvedtube_youtube_icon; + if ( - ImprovedTube.storage.improvedtube_youtube_icon === 'disabled' && - document.querySelector('.it-btn') + ImprovedTube.isset(option) && option !== 'disabled' && + ( + option === 'header_left' && ImprovedTube.elements.masthead.start || + option === 'header_right' && ImprovedTube.elements.masthead.end || + option === 'below_player' && ImprovedTube.elements.video_title || + option === 'draggable' && document.body + ) ) { - document.querySelector('.it-btn').remove(); - } - - if (this.improvedtube_youtube_icon_wait === false) { - this.improvedtube_youtube_icon_wait = setInterval(function () { - var option = ImprovedTube.storage.improvedtube_youtube_icon, - parentNode, - referenceNode; - - if (option === 'header_left') { - parentNode = document.querySelector('ytd-masthead #start'); - referenceNode = document.querySelector('ytd-masthead #start #guide-button'); - } else if (option === 'header_right') { - parentNode = ( - document.querySelector('#end #buttons') || - document.querySelector('#yt-masthead-user') - ); - } else if (option === 'draggable') { - parentNode = document.body || document.querySelector('body'); - } else if (option === 'below_player') { - parentNode = ( - document.querySelector('.title.ytd-video-primary-info-renderer') || - document.querySelector('#watch-headline-title') - ); - } - - if (document.querySelector('.it-btn')) { - if (!parentNode.querySelector(':scope > .it-btn')) { - document.querySelector('.it-btn').remove(); - } else { - clearInterval(ImprovedTube.improvedtube_youtube_icon_wait); - - ImprovedTube.improvedtube_youtube_icon_wait = false; - - return false; - } - } - - if ( - ImprovedTube.isset(option) && - option !== 'disabled' && - parentNode && (option === 'header_left' ? referenceNode : true) - ) { - clearInterval(ImprovedTube.improvedtube_youtube_icon_wait); + var button = document.createElement('div'); - ImprovedTube.improvedtube_youtube_icon_wait = false; + button.className = 'it-btn'; + button.innerHTML = '

'; + button.addEventListener('click', function () { + event.preventDefault(); + event.stopPropagation(); - var button = document.createElement('div'); + button.classList.remove('it-btn--dragging'); - button.className = 'it-btn'; - button.innerHTML = '
'; - button.addEventListener('click', function () { - event.preventDefault(); - event.stopPropagation(); + window.removeEventListener('mousemove', move); - button.classList.remove('it-btn--dragging'); + localStorage.setItem('IT_ICON', JSON.stringify({ + x: button.offsetLeft, + y: button.offsetTop + })); - window.removeEventListener('mousemove', move); + setTimeout(function () { + button.style.pointerEvents = ''; + }); - localStorage.setItem('IT_ICON', JSON.stringify({ - x: button.offsetLeft, - y: button.offsetTop - })); + this.classList.toggle('it-btn--active'); + ImprovedTube.improvedtube_youtube_icon_resize(); - setTimeout(function () { - button.style.pointerEvents = ''; - }); + return false; + }, true); - this.classList.toggle('it-btn--active'); - ImprovedTube.improvedtube_youtube_icon_resize(); + if (option === 'draggable') { + var position = localStorage.getItem('IT_ICON'); - return false; - }, true); + if (ImprovedTube.isset(position)) { + position = JSON.parse(position); - if (option === 'draggable') { - var position = localStorage.getItem('IT_ICON'); + button.style.left = position.x + 'px'; + button.style.top = position.y + 'px'; + } - if (ImprovedTube.isset(position)) { - position = JSON.parse(position); + function move(event) { + button.classList.add('it-btn--dragging'); - button.style.left = position.x + 'px'; - button.style.top = position.y + 'px'; + if (event.clientX < window.innerWidth / 2) { + if (event.clientX - Number(button.dataset.x) >= 16) { + button.style.left = event.clientX - Number(button.dataset.x) + 'px'; + } else { + button.style.left = '16px'; } + } else { + if (event.clientX + (48 + window.innerWidth - document.querySelector('body').offsetWidth) - Number(button.dataset.x) <= window.innerWidth) { + button.style.left = event.clientX - Number(button.dataset.x) + 'px'; + } else { + button.style.left = 'calc(100vw - ' + (48 + window.innerWidth - document.querySelector('body').offsetWidth) + 'px)'; + } + } - function move(event) { - button.classList.add('it-btn--dragging'); - - if (event.clientX < window.innerWidth / 2) { - if (event.clientX - Number(button.dataset.x) >= 16) { - button.style.left = event.clientX - Number(button.dataset.x) + 'px'; - } else { - button.style.left = '16px'; - } - } else { - if (event.clientX + (48 + window.innerWidth - document.querySelector('body').offsetWidth) - Number(button.dataset.x) <= window.innerWidth) { - button.style.left = event.clientX - Number(button.dataset.x) + 'px'; - } else { - button.style.left = 'calc(100vw - ' + (48 + window.innerWidth - document.querySelector('body').offsetWidth) + 'px)'; - } - } + if (event.clientY < window.innerHeight / 2) { + if (event.clientY - Number(button.dataset.y) >= 12) { + button.style.top = event.clientY - Number(button.dataset.y) + 'px'; + } else { + button.style.top = '12px'; + } + } else { + if (event.clientY + 44 - Number(button.dataset.y) <= window.innerHeight) { + button.style.top = event.clientY - Number(button.dataset.y) + 'px'; + } else { + button.style.top = 'calc(100vh - 44px)'; + } + } - if (event.clientY < window.innerHeight / 2) { - if (event.clientY - Number(button.dataset.y) >= 12) { - button.style.top = event.clientY - Number(button.dataset.y) + 'px'; - } else { - button.style.top = '12px'; - } - } else { - if (event.clientY + 44 - Number(button.dataset.y) <= window.innerHeight) { - button.style.top = event.clientY - Number(button.dataset.y) + 'px'; - } else { - button.style.top = 'calc(100vh - 44px)'; - } - } + ImprovedTube.improvedtube_youtube_icon_resize(); + } - ImprovedTube.improvedtube_youtube_icon_resize(); - } + button.addEventListener('mousedown', function (event) { + this.dataset.x = event.layerX; + this.dataset.y = event.layerY; - button.addEventListener('mousedown', function (event) { - this.dataset.x = event.layerX; - this.dataset.y = event.layerY; + window.addEventListener('mousemove', move); + }); - window.addEventListener('mousemove', move); - }); + window.addEventListener('mouseup', function () { + button.classList.remove('it-btn--dragging'); - window.addEventListener('mouseup', function () { - button.classList.remove('it-btn--dragging'); + window.removeEventListener('mousemove', move); - window.removeEventListener('mousemove', move); + localStorage.setItem('IT_ICON', JSON.stringify({ + x: button.offsetLeft, + y: button.offsetTop + })); - localStorage.setItem('IT_ICON', JSON.stringify({ - x: button.offsetLeft, - y: button.offsetTop - })); + setTimeout(function () { + button.style.pointerEvents = ''; + }); + }); + } - setTimeout(function () { - button.style.pointerEvents = ''; - }); - }); - } + if (option === 'header_left') { + ImprovedTube.elements.masthead.start.insertBefore(button, ImprovedTube.elements.masthead.start.children[0]); + } else if (option === 'header_right') { + ImprovedTube.elements.masthead.end.appendChild(button); + } else if (option === 'below_player') { + ImprovedTube.elements.video_title.appendChild(button); + } else if (option === 'draggable') { + document.body.appendChild(button); + } - if (option === 'header_left') { - parentNode.insertBefore(button, referenceNode); - } else { - parentNode.appendChild(button); - } + ImprovedTube.elements.improvedtube_button = button; - ImprovedTube.improvedtube_youtube_icon_resize(); - } - }, 250); + ImprovedTube.improvedtube_youtube_icon_resize(); } }; From d2a62aadbc87f833ac995ccb3af553b55f9a1e8d Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 22 Jul 2021 10:03:00 +0300 Subject: [PATCH 0210/1224] Added new feature "Page limit width" --- content-scripts.js | 1 + content-styles.css | 36 ++++++++++++++++++++++++++++++++---- manifest.json | 2 +- popup.js | 5 +++++ 4 files changed, 39 insertions(+), 5 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index 9b79eef48..640f3a4ea 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -28,6 +28,7 @@ function attributes(items) { var whitelist = { 'youtube-home-page': true, 'remove-related-search-results': true, + 'limit-page-width': true, 'squared-user-images': true, 'hide-animated-thumbnails': true, 'header-position': true, diff --git a/content-styles.css b/content-styles.css index e8d2b6d75..10f092797 100644 --- a/content-styles.css +++ b/content-styles.css @@ -7,8 +7,9 @@ 1.3 Add "Scroll to top" 1.4 Remove related search results 1.5 Mark watched videos - 1.6 Squared user images - 1.7 Hide animated thumbnails + 1.6 Limit page width + 1.7 Squared user images + 1.8 Hide animated thumbnails 2.0 Appearance 2.1 Header 2.1.1 Position @@ -246,7 +247,34 @@ html[it-remove-related-search-results=true] li>div.search-refinements { /*------------------------------------------------------------------------------ -1.6 SQUARED USER IMAGES +1.6 LIMIT PAGE WIDTH +------------------------------------------------------------------------------*/ + +html[it-limit-page-width=false] ytd-watch-flexy #columns.ytd-watch-flexy, +html[it-limit-page-width=false] ytd-watch-flexy #primary.ytd-watch-flexy, +html[it-limit-page-width=false] ytd-watch-flexy #player-container-outer.ytd-watch-flexy +{ + max-width: unset !important; +} + +html[it-limit-page-width=false] ytd-watch-flexy .html5-video-container +{ + display: flex !important; + justify-content: center !important; + align-items: center !important; +} + +html[it-limit-page-width=false] ytd-watch-flexy video { + position: static !important; + left: 0 !important; + top: 0 !important; + width: 100% !important; + height: 100% !important; +} + + +/*------------------------------------------------------------------------------ +1.7 SQUARED USER IMAGES ------------------------------------------------------------------------------*/ html[it-squared-user-images=true] #avatar.ytd-shelf-renderer, @@ -257,7 +285,7 @@ html[it-squared-user-images=true] #yt-masthead-user .yt-masthead-user-icon { /*------------------------------------------------------------------------------ -1.7 HIDE ANIMATED THUMBNAILS +1.8 HIDE ANIMATED THUMBNAILS ------------------------------------------------------------------------------*/ html[it-hide-animated-thumbnails=true] #mouseover-overlay, diff --git a/manifest.json b/manifest.json index 1640e6411..60de141f2 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.313", + "version": "3.314", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 19b1e24f4..6665ea013 100644 --- a/popup.js +++ b/popup.js @@ -2473,6 +2473,11 @@ skeleton.main.section.general = { type: 'switch', label: 'addScrollToTop', tags: 'up' + }, + limit_page_width: { + type: 'switch', + label: 'limitPageWidth', + value: true } }, From 417435585d3ada9146684c10401dbdfe0dcbdb4e Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 22 Jul 2021 10:59:18 +0300 Subject: [PATCH 0211/1224] Fixed and optimized "Only one player instance playing" feature --- content-scripts.js | 3 ++- manifest.json | 2 +- youtube-scripts.js | 14 +++++++------- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index 640f3a4ea..dff70d564 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -177,7 +177,8 @@ chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { } else if (request.action === 'blur') { injectScript('ImprovedTube.focus = false;'); } else if (request.action === 'improvedtube-pause') { - injectScript('if (document.querySelector("video")) { document.querySelector("video").pause(); }'); + console.log('pause'); + injectScript('if (ImprovedTube.elements.player) {ImprovedTube.played_before_blur = ImprovedTube.elements.player.getPlayerState() === 1; ImprovedTube.elements.player.pauseVideo();}'); } injectScript('ImprovedTube.pageOnFocus();'); diff --git a/manifest.json b/manifest.json index 60de141f2..28398b7a5 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.314", + "version": "3.315", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index c30aaeb7e..44603b4e2 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -168,7 +168,6 @@ ImprovedTube.init = function () { window.addEventListener('yt-page-data-updated', function () { ImprovedTube.pageType(); ImprovedTube.videoPageUpdate(); - ImprovedTube.played_before_blur = false; ImprovedTube.youtubeHomePage(); ImprovedTube.collapseOfSubscriptionSections(); ImprovedTube.markWatchedVideos(); @@ -363,6 +362,7 @@ ImprovedTube.playerOnPlay = function () { if (ImprovedTube.elements.player && ImprovedTube.video_url !== location.href) { ImprovedTube.video_url = location.href; + ImprovedTube.played_before_blur = false; ImprovedTube.playerPlaybackSpeed(); ImprovedTube.subtitles(); @@ -806,14 +806,14 @@ document.addEventListener('ImprovedTubeWatched', function (event) { ------------------------------------------------------------------------------*/ ImprovedTube.onlyOnePlayerInstancePlaying = function () { - var video = document.querySelector('.html5-video-player video'); - - if (this.storage.only_one_player_instance_playing === true && video) { - if (this.focus === true) { - document.dispatchEvent(new CustomEvent('ImprovedTubeOnlyOnePlayer')); + var player = ImprovedTube.elements.player; - video.play(); + if (this.storage.only_one_player_instance_playing === true && this.focus === true && player) { + if (ImprovedTube.played_before_blur === true) { + player.playVideo(); } + + document.dispatchEvent(new CustomEvent('ImprovedTubeOnlyOnePlayer')); } }; From bc6317075d8a796c59f9cdf4404e03bb3c3522cf Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 22 Jul 2021 12:24:11 +0300 Subject: [PATCH 0212/1224] Fixed and optimized "Default channel tab" feature --- content-scripts.js | 1 - manifest.json | 2 +- youtube-scripts.js | 58 +++++++++++++++++++++++++--------------------- 3 files changed, 32 insertions(+), 29 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index dff70d564..2626cb314 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -177,7 +177,6 @@ chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { } else if (request.action === 'blur') { injectScript('ImprovedTube.focus = false;'); } else if (request.action === 'improvedtube-pause') { - console.log('pause'); injectScript('if (ImprovedTube.elements.player) {ImprovedTube.played_before_blur = ImprovedTube.elements.player.getPlayerState() === 1; ImprovedTube.elements.player.pauseVideo();}'); } diff --git a/manifest.json b/manifest.json index 28398b7a5..5229407ed 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.315", + "version": "3.316", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 44603b4e2..cf5ce7c78 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -111,6 +111,11 @@ var ImprovedTube = { related: {}, comments: {} }`, + regex: `{ + channel: new RegExp('\/(user|channel|c)\/'), + channel_home_page: new RegExp('\/(user|channel|c)\/.+(\/featured)?\/?$'), + channel_home_page_postfix: new RegExp('\/(featured)?\/?$') + }`, video_src: false, initialVideoUpdateDone: false, latestVideoDuration: 0, @@ -154,7 +159,6 @@ ImprovedTube.init = function () { ImprovedTube.markWatchedVideos(); ImprovedTube.hdThumbnails(); ImprovedTube.hideThumbnailOverlay(); - ImprovedTube.channelDefaultTab(); ImprovedTube.myColors(); ImprovedTube.bluelight(); ImprovedTube.dim(); @@ -173,7 +177,6 @@ ImprovedTube.init = function () { ImprovedTube.markWatchedVideos(); ImprovedTube.hdThumbnails(); ImprovedTube.hideThumbnailOverlay(); - ImprovedTube.channelDefaultTab(); ImprovedTube.blacklist(); //ImprovedTube.improvedtubeYoutubeSidebarButton(); //ImprovedTube.improvedtubeYoutubePlayerButtons(); @@ -269,6 +272,8 @@ ImprovedTube.init = function () { ImprovedTube.elements.video_title = node.querySelector('.title.ytd-video-primary-info-renderer'); ImprovedTube.improvedtubeYoutubeIcon(); + } else if (node.nodeName === 'A' && node.href) { + ImprovedTube.channelDefaultTab(node); } } } @@ -2386,38 +2391,37 @@ ImprovedTube.playlistShuffle = function () { 6.1 DEFAULT CHANNEL TAB ------------------------------------------------------------------------------*/ -ImprovedTube.channelDefaultTab = function () { - if (this.storage.channel_default_tab && this.storage.channel_default_tab !== '/') { - var value = this.storage.channel_default_tab, - node_list = document.querySelectorAll( - '*:not(#contenteditable-root) > a[href*="user"], ' + - '*:not(#contenteditable-root) > a[href*="channel"], ' + - '*:not(#contenteditable-root) > a[href*="/c/"]' - ); - - for (var i = 0, l = node_list.length; i < l; i++) { - var node = node_list[i]; +ImprovedTube.channelDefaultTab = function (a) { + var option = this.storage.channel_default_tab; - if (!node.getAttribute('it-origin') || - node.hasAttribute('it-origin') && - node.getAttribute('it-origin').replace(/\/(home|videos|playlists)+$/g, '') != node.href.replace(/\/(home|videos|playlists)+$/g, '') - ) { - node.setAttribute('it-origin', node.href); + if (option && option !== '/') { + if (this.regex.channel_home_page.test(a.href)) { + if (!a.dataset.itOrigin) { + a.dataset.itOrigin = a.href.replace(this.regex.channel_home_page_postfix, ''); } - node.href = node.getAttribute('it-origin') + value; + a.href = a.dataset.itOrigin + option; - function click(event) { - event.stopPropagation(); + /*if ( + a.data && + a.data.browseEndpoint && + a.data.browseEndpoint.canonicalBaseUrl + ) { + a.data.browseEndpoint.canonicalBaseUrl = a.href.replace('https://www.youtube.com', ''); } - node.addEventListener('click', click, true); - } - } else if (this.storage.channel_default_tab) { - var node_list = document.querySelectorAll('a[href*="user"], a[href*="channel"], a[href*="/c/"]'); + if ( + a.data && + a.data.commandMetadata && + a.data.commandMetadata.webCommandMetadata && + a.data.commandMetadata.webCommandMetadata.url + ) { + a.data.commandMetadata.webCommandMetadata.url = a.href.replace('https://www.youtube.com', ''); + }*/ - for (var i = 0, l = node_list.length; i < l; i++) { - node_list[i].href = node_list[i].getAttribute('it-origin'); + a.addEventListener('click', function(event) { + event.stopPropagation(); + }, true); } } }; From 8532f6a272c9189dec6c84c9366644e25d480cd1 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 22 Jul 2021 14:00:01 +0300 Subject: [PATCH 0213/1224] Fixed "Custom mini player" feature --- content-styles.css | 31 +----------------------- manifest.json | 2 +- youtube-scripts.js | 60 +++++++++++++++++++++++++++++----------------- 3 files changed, 40 insertions(+), 53 deletions(-) diff --git a/content-styles.css b/content-styles.css index 10f092797..53c67276b 100644 --- a/content-styles.css +++ b/content-styles.css @@ -3058,7 +3058,7 @@ html[it-player-ads=block_all] #masthead-ad { .it-mini-player { position: fixed !important; - z-index: 2147483648 !important; + z-index: 2006 !important; top: 0!important; left: 0!important; background: #000 !important; @@ -3066,35 +3066,6 @@ html[it-player-ads=block_all] #masthead-ad { will-change: transform, width, height !important; } -html[data-page-type=video][it-header-position=hover_on_video_page][it-player-size=full_window] .html5-video-player.it-mini-player, -html[data-page-type=video][it-header-position=hover][it-player-size=full_window] .html5-video-player.it-mini-player { - margin-top: 0!important; -} - -.it-mini-player .html5-video-container, -.it-mini-player video { - top: 0 !important; - left: 0 !important; - width: 100% !important; - height: 100% !important; -} - -.it-mini-player .ytp-chrome-bottom { - width: calc(100% - 24px) !important; -} - -.it-mini-player .ytp-chapters-container { - display: flex; -} - -.it-mini-player .ytp-chapter-hover-container { - flex-grow: 1; -} - -html[it-mini-player=true] .ytp-contextmenu { - z-index: 2147483649 !important; -} - .it-mini-player .ytp-miniplayer-button, .it-mini-player .ytp-size-button { display: none !important; diff --git a/manifest.json b/manifest.json index 5229407ed..d49f4a326 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.316", + "version": "3.317", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index cf5ce7c78..72455c83d 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -199,7 +199,23 @@ ImprovedTube.init = function () { for (var j = 0, k = mutation.addedNodes.length; j < k; j++) { var node = mutation.addedNodes[j]; - if (node.nodeName === 'YTD-TOGGLE-BUTTON-RENDERER') { + if (node.nodeName === 'YTD-WATCH-FLEXY') { + node.calculateCurrentPlayerSize_ = function() { + if (node.theater) { + return { + width: NaN, + header: NaN + }; + } else if (ImprovedTube.elements.player) { + return { + width: ImprovedTube.elements.player.offsetWidth, + height: Math.round(ImprovedTube.elements.player.offsetWidth / (16 / 9)) + }; + } + }; + + node.calculateNormalPlayerSize_ = node.calculateCurrentPlayerSize_; + } else if (node.nodeName === 'YTD-TOGGLE-BUTTON-RENDERER') { if ( node.parentComponent && node.parentComponent.nodeName === 'YTD-MENU-RENDERER' && @@ -1519,22 +1535,22 @@ ImprovedTube.playerAds = function (parent) { ------------------------------------------------------------------------------*/ ImprovedTube.mini_player__setPosition = function (x, y) { - ImprovedTube.mini_player__element.style.transform = 'translate3d(' + x + 'px, ' + y + 'px, 0)'; + ImprovedTube.elements.player.style.transform = 'translate(' + x + 'px, ' + y + 'px)'; }; ImprovedTube.mini_player__setSize = function (width, height) { - ImprovedTube.mini_player__element.style.width = width + 'px'; - ImprovedTube.mini_player__element.style.height = height + 'px'; + ImprovedTube.elements.player.style.width = width + 'px'; + ImprovedTube.elements.player.style.height = height + 'px'; }; ImprovedTube.mini_player__scroll = function () { - if (window.scrollY >= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === false) { + if (window.scrollY >= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.elements.player.classList.contains('ytp-player-minimized') === false) { ImprovedTube.mini_player__mode = true; - ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; - ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; + ImprovedTube.mini_player__original_width = ImprovedTube.elements.player.offsetWidth; + ImprovedTube.mini_player__original_height = ImprovedTube.elements.player.offsetHeight; - ImprovedTube.mini_player__element.classList.add('it-mini-player'); + ImprovedTube.elements.player.classList.add('it-mini-player'); ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); @@ -1550,13 +1566,13 @@ ImprovedTube.mini_player__scroll = function () { window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); window.dispatchEvent(new Event('resize')); - } else if (window.scrollY < 256 && ImprovedTube.mini_player__mode === true || ImprovedTube.mini_player__element.classList.contains('ytp-player-minimized') === true) { + } else if (window.scrollY < 256 && ImprovedTube.mini_player__mode === true || ImprovedTube.elements.player.classList.contains('ytp-player-minimized') === true) { ImprovedTube.mini_player__mode = false; - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); + ImprovedTube.elements.player.classList.remove('it-mini-player'); ImprovedTube.mini_player__move = false; ImprovedTube.mini_player__setPosition(0, 0); - ImprovedTube.mini_player__element.style.width = ''; - ImprovedTube.mini_player__element.style.height = ''; + ImprovedTube.elements.player.style.width = ''; + ImprovedTube.elements.player.style.height = ''; ImprovedTube.mini_player__cursor = ''; document.documentElement.removeAttribute('it-mini-player-cursor'); @@ -1592,7 +1608,7 @@ ImprovedTube.mini_player__mousedown = function (event) { event.preventDefault(); - var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); + var bcr = ImprovedTube.elements.player.getBoundingClientRect(); ImprovedTube.mini_player__mousedown_x = event.clientX; ImprovedTube.mini_player__mousedown_y = event.clientY; @@ -1779,7 +1795,7 @@ ImprovedTube.mini_player__resize_mouseMove = function (event) { }; ImprovedTube.mini_player__resize_mouseUp = function (event) { - var bcr = ImprovedTube.mini_player__element.getBoundingClientRect(); + var bcr = ImprovedTube.elements.player.getBoundingClientRect(); ImprovedTube.mini_player__x = bcr.left; ImprovedTube.mini_player__y = bcr.top; @@ -1801,7 +1817,7 @@ ImprovedTube.mini_player__resize_mouseUp = function (event) { }; ImprovedTube.mini_player = function () { - ImprovedTube.mini_player__element = document.querySelector('.html5-video-player'); + ImprovedTube.elements.player = document.querySelector('.html5-video-player'); if (ImprovedTube.storage.mini_player === true) { var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; @@ -1814,13 +1830,13 @@ ImprovedTube.mini_player = function () { window.addEventListener('scroll', ImprovedTube.mini_player__scroll); } else { ImprovedTube.mini_player__mode = false; - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); + ImprovedTube.elements.player.classList.remove('it-mini-player'); ImprovedTube.mini_player__move = false; ImprovedTube.mini_player__setPosition(0, 0); - ImprovedTube.mini_player__element.style.width = ''; - ImprovedTube.mini_player__element.style.height = ''; + ImprovedTube.elements.player.style.width = ''; + ImprovedTube.elements.player.style.height = ''; - ImprovedTube.mini_player__element.classList.remove('it-mini-player'); + ImprovedTube.elements.player.classList.remove('it-mini-player'); ImprovedTube.mini_player__cursor = ''; document.documentElement.removeAttribute('it-mini-player-cursor'); @@ -2906,10 +2922,10 @@ ImprovedTube.shortcutCustomMiniPlayer = function () { if (ImprovedTube.storage.mini_player === true) { ImprovedTube.mini_player__mode = true; - ImprovedTube.mini_player__original_width = ImprovedTube.mini_player__element.offsetWidth; - ImprovedTube.mini_player__original_height = ImprovedTube.mini_player__element.offsetHeight; + ImprovedTube.mini_player__original_width = ImprovedTube.elements.player.offsetWidth; + ImprovedTube.mini_player__original_height = ImprovedTube.elements.player.offsetHeight; - ImprovedTube.mini_player__element.classList.add('it-mini-player'); + ImprovedTube.elements.player.classList.add('it-mini-player'); ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); From 8ef7566231c99908eea16827ce7dfe4e698d409a Mon Sep 17 00:00:00 2001 From: Dodieboy Date: Fri, 23 Jul 2021 13:47:29 +0800 Subject: [PATCH 0214/1224] Translation Chinese (zh_CN) update --- _locales/zh_CN/messages.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index eedb828a5..27fc9f541 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -204,13 +204,13 @@ "message": "深紫色" }, "default": { - "message": "Default" + "message": "默认" }, "defaultChannelTab": { "message": "默认频道页" }, "defaultContentCountry": { - "message": "Default content country" + "message": "默认内容国家" }, "deleteYoutubeCookies": { "message": "清空 YouTube cookies" @@ -282,7 +282,7 @@ "message": "窗口自适应" }, "flash": { - "message": "Flash" + "message": "闪光" }, "font": { "message": "字体" @@ -312,7 +312,7 @@ "message": "一般设置" }, "geoPreference": { - "message": "Geo Preference" + "message": "地理偏好" }, "github": { "message": "GitHub" @@ -354,10 +354,10 @@ "message": "隐藏播放控制器" }, "hideCountryCode": { - "message": "Hide country code" + "message": "隐藏国家代码" }, "hideDate": { - "message": "Hide date" + "message": "隐藏日期" }, "hideDetails": { "message": "隐藏详细信息" @@ -384,13 +384,13 @@ "message": "隐藏右侧按钮" }, "hideSaveButton": { - "message": "Hide \"Save\" button" + "message": "隐藏 \保存\"按钮" }, "hideScrollForDetails": { "message": "隐藏 «滚动至详细信息»" }, "hideShareButton": { - "message": "Hide \"Share\" button" + "message": "隐藏\"共享\"按钮" }, "hideThumbnailOverlay": { "message": "隐藏缩略图上的按钮" @@ -483,7 +483,7 @@ "message": "实时聊天窗类型" }, "location": { - "message": "Location" + "message": "地点" }, "loudnessNormalization": { "message": "音量标准化" @@ -675,10 +675,10 @@ "message": "快进10秒" }, "seekNextChapter": { - "message": "seekNextChapter" + "message": "寻找下一章" }, "seekPreviousChapter": { - "message": "seekPreviousChapter" + "message": "寻找上一章" }, "settings": { "message": "ImprovedTube 设置" @@ -696,10 +696,10 @@ "message": "显示频道内视频数" }, "showLess": { - "message": "Show less" + "message": "显示较少" }, "showMore": { - "message": "Show more" + "message": "展示更多" }, "shuffle": { "message": "随机" @@ -869,4 +869,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "采用 H.264 编解码时,YouTube 会将视频画质设为 1080p" } -} \ No newline at end of file +} From 52b0426c6f2d2141d617bd9c6abe18361c115594 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 23 Jul 2021 11:33:31 +0300 Subject: [PATCH 0215/1224] Fixed and optimized "Autopause when switching tabs" feature --- manifest.json | 2 +- youtube-scripts.js | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/manifest.json b/manifest.json index d49f4a326..f86233337 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.317", + "version": "3.318", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 72455c83d..30ee6b8f4 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1444,16 +1444,15 @@ ImprovedTube.autoplay = function (video) { ------------------------------------------------------------------------------*/ ImprovedTube.playerAutopauseWhenSwitchingTabs = function () { - var video = document.querySelector('.html5-video-player video'); - - if (this.storage.player_autopause_when_switching_tabs === true && video) { + var player = ImprovedTube.elements.player; - if (this.focus === false && video.paused === false) { - video.pause(); + if (this.storage.player_autopause_when_switching_tabs === true && player) { + if (this.focus === false) { + this.played_before_blur = player.getPlayerState() === 1; - this.played_before_blur = true; + player.pauseVideo(); } else if (this.focus === true && this.played_before_blur === true) { - video.play(); + player.playVideo(); } } }; From e53ae333baf4600e15f467707b739a722c7a38f9 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 23 Jul 2021 11:44:02 +0300 Subject: [PATCH 0216/1224] Fixed Chinese localization --- _locales/zh_CN/messages.json | 2 +- manifest.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 27fc9f541..09eb3f314 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -384,7 +384,7 @@ "message": "隐藏右侧按钮" }, "hideSaveButton": { - "message": "隐藏 \保存\"按钮" + "message": "隐藏 \"保存\"按钮" }, "hideScrollForDetails": { "message": "隐藏 «滚动至详细信息»" diff --git a/manifest.json b/manifest.json index f86233337..234f59d7d 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.318", + "version": "3.319", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 9ef57d95e2963f5c4e2ccbc8ea7351eeb95ca55e Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 23 Jul 2021 12:16:43 +0300 Subject: [PATCH 0217/1224] Fixed and optimized "Forced theater mode" feature --- manifest.json | 2 +- youtube-scripts.js | 26 +++++++++++++++----------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/manifest.json b/manifest.json index 234f59d7d..c5ac29ac3 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.319", + "version": "3.320", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 30ee6b8f4..c460beca6 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -200,18 +200,20 @@ ImprovedTube.init = function () { var node = mutation.addedNodes[j]; if (node.nodeName === 'YTD-WATCH-FLEXY') { + ImprovedTube.elements.ytd_watch = node; + node.calculateCurrentPlayerSize_ = function() { - if (node.theater) { - return { - width: NaN, - header: NaN - }; - } else if (ImprovedTube.elements.player) { + if (node.theater && ImprovedTube.elements.player) { return { width: ImprovedTube.elements.player.offsetWidth, height: Math.round(ImprovedTube.elements.player.offsetWidth / (16 / 9)) }; } + + return { + width: NaN, + height: NaN + }; }; node.calculateNormalPlayerSize_ = node.calculateCurrentPlayerSize_; @@ -341,7 +343,6 @@ ImprovedTube.videoPageUpdate = function () { ImprovedTube.initialVideoUpdateDone = true; - this.forcedTheaterMode(); this.howLongAgoTheVideoWasUploaded(); this.channelVideosCount(); @@ -385,6 +386,7 @@ ImprovedTube.playerOnPlay = function () { ImprovedTube.video_url = location.href; ImprovedTube.played_before_blur = false; + ImprovedTube.forcedTheaterMode(); ImprovedTube.playerPlaybackSpeed(); ImprovedTube.subtitles(); ImprovedTube.playerQuality(); @@ -907,11 +909,13 @@ ImprovedTube.hideThumbnailOverlay = function () { ------------------------------------------------------------------------------*/ ImprovedTube.forcedTheaterMode = function () { - if (window.self === window.top && (ImprovedTube.storage.forced_theater_mode === true || ImprovedTube.storage.player_size === 'fit_to_window')) { - var button = document.querySelector('button.ytp-size-button'); + if (window.self === window.top && this.storage.forced_theater_mode === true) { + var button = this.elements.player.querySelector('button.ytp-size-button'); - if (button && ImprovedTube.isset(document.getElementById('player-theater-container').firstChild) === false) { - button.click(); + if (button && this.elements.ytd_watch.theater === false) { + setTimeout(function() { + button.click(); + }, 200); } } }; From 09c35d84180df54216b497a0d1a4c9a79857682f Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 23 Jul 2021 15:18:48 +0300 Subject: [PATCH 0218/1224] Redeveloped "Player size: fit to window" feature --- content-styles.css | 95 ++++++++++++++++++++++++++++++----- manifest.json | 2 +- youtube-scripts.js | 120 +++++++++++++++++++++++++++++++++++++++------ 3 files changed, 189 insertions(+), 28 deletions(-) diff --git a/content-styles.css b/content-styles.css index 53c67276b..c3a7c0ecc 100644 --- a/content-styles.css +++ b/content-styles.css @@ -624,23 +624,23 @@ html[data-page-type=video][it-player-size='fit_to_window'] { # ELEMENTS ------------------------------------------------------------------------------*/ -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-container-inner { +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-container-inner { padding-top: calc(var(--it-player-size) - var(--it-header-size)) !important; } -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container, -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container { +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container, +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container { width: auto !important; height: calc(var(--it-player-size) - var(--it-header-size)) !important; min-height: auto !important; max-height: none !important; } -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player { +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player { background: #000 !important; } -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-container { +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-container { position: absolute !important; display: flex !important; width: 100% !important; @@ -649,7 +649,7 @@ html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change' align-items: center !important; } -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video { +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video { position: relative !important; top: 0 !important; left: 0 !important; @@ -661,6 +661,66 @@ html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change' /*FIT TO WINDOW*/ +/*THEATER: ON*/ + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container { + height: auto !important; + min-height: 0 !important; + max-height: unset !important; + background: transparent !important; +} + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-container { + position: static !important; +} + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) ytd-player > #container { + display: flex !important; + justify-content: center !important; + align-items: center !important; +} + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) .html5-video-container { + display: flex !important; + justify-content: center !important; + align-items: center !important; +} + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) .html5-video-player { + display: table !important; + width: auto !important; +} + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) video { + position: static !important; + max-height: calc(var(--it-player-size) - var(--it-header-size)) !important; +} + + +/*THEATER: OFF*/ + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container-inner { + padding-top: 0 !important; +} + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container { + position: static !important; +} + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) video { + position: static !important; + max-height: calc(var(--it-player-size) - var(--it-header-size)) !important; +} + +/*html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container-inner { + padding-top: 0 !important; +} + +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container { + height: auto !important; + position: relative !important; +} + html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-theater-container { background: transparent !important; } @@ -669,6 +729,7 @@ html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change' display: table !important; overflow: visible !important; width: auto !important; + height: auto !important; margin: auto !important; } @@ -677,15 +738,25 @@ html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change' } html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .html5-video-container { - position: relative !important; - display: inline-block !important; - width: auto !important; + position: static !important; + width: 100% !important; + max-width: 100vw !important; + height: 100% !important; + max-height: calc(var(--it-player-size) - var(--it-header-size)) !important; } html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video { position: relative !important; + display: block !important; width: auto !important; + height: auto !important; +} + +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) .html5-video-player:not(.it-mini-player) video { + position: static !important; + width: 100% !important; max-width: 100vw !important; + height: auto !important; } html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-iv-video-content { @@ -693,17 +764,17 @@ html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change' } -/*html[data-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, +html[data-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, html[data-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player, html[data-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, html[data-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player { margin-top: 14px !important; -}*/ +} html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-tooltip.ytp-preview { top: auto !important; bottom: 80px !important; -} +}*/ /*------------------------------------------------------------------------------ diff --git a/manifest.json b/manifest.json index c5ac29ac3..2cd307b60 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.320", + "version": "3.321", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index c460beca6..8ceafc717 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -14,9 +14,10 @@ 1.8 Hide thumbnail overlay 2.0 Appearance 2.1 Player - 2.1.1 Forced theater mode - 2.1.2 HD thumbnail - 2.1.3 Always show progress bar + 2.1.1 Player size + 2.1.2 Forced theater mode + 2.1.3 HD thumbnail + 2.1.4 Always show progress bar 2.2 Sidebar 2.2.1 Livechat 2.2.2 Related videos @@ -182,6 +183,12 @@ ImprovedTube.init = function () { //ImprovedTube.improvedtubeYoutubePlayerButtons(); }); + window.addEventListener('resize', function() { + setTimeout(function() { + ImprovedTube.playerSize(); + }, 100); + }); + this.defaultContentCountry(); this.playerH264(); this.player60fps(); @@ -202,6 +209,8 @@ ImprovedTube.init = function () { if (node.nodeName === 'YTD-WATCH-FLEXY') { ImprovedTube.elements.ytd_watch = node; + ImprovedTube.elements.ytd_player = document.querySelector('ytd-player'); + node.calculateCurrentPlayerSize_ = function() { if (node.theater && ImprovedTube.elements.player) { return { @@ -217,6 +226,25 @@ ImprovedTube.init = function () { }; node.calculateNormalPlayerSize_ = node.calculateCurrentPlayerSize_; + + new MutationObserver(function(mutationList) { + for (var i = 0, l = mutationList.length; i < l; i++) { + var mutation = mutationList[i]; + + if (mutation.type === 'attributes') { + if (mutation.attributeName === 'theater') { + setTimeout(function() { + ImprovedTube.playerSize(); + }, 100); + } + } + } + }).observe(node, { + attributes: true, + attributeFilter: ['theater'], + childList: false, + subtree: false + }); } else if (node.nodeName === 'YTD-TOGGLE-BUTTON-RENDERER') { if ( node.parentComponent && @@ -244,6 +272,10 @@ ImprovedTube.init = function () { ImprovedTube.playlistReverse(); } } + } if (node.nodeName === 'YTD-PLAYER') { + ImprovedTube.elements.ytd_player = node; + + ImprovedTube.playerSize(); } else if (node.id === 'movie_player') { ImprovedTube.elements.player = node; @@ -265,6 +297,8 @@ ImprovedTube.init = function () { childList: false, subtree: false }); + } else if (node.nodeName === 'VIDEO') { + ImprovedTube.elements.video = node; } else if (node.id === 'chat') { ImprovedTube.elements.livechat.button = node.querySelector('ytd-toggle-button-renderer'); @@ -370,15 +404,18 @@ ImprovedTube.videoPageUpdate = function () { ImprovedTube.playerOnPlay = function () { HTMLMediaElement.prototype.play = (function (original) { return function () { + this.removeEventListener('loadedmetadata', ImprovedTube.playerOnLoadedMetadata); + this.addEventListener('loadedmetadata', ImprovedTube.playerOnLoadedMetadata); + this.removeEventListener('timeupdate', ImprovedTube.playerOnTimeUpdate); this.addEventListener('timeupdate', ImprovedTube.playerOnTimeUpdate); - this.removeEventListener('ended', ImprovedTube.playerOnEnded, true); - this.addEventListener('ended', ImprovedTube.playerOnEnded, true); - this.removeEventListener('pause', ImprovedTube.playerOnPause, true); this.addEventListener('pause', ImprovedTube.playerOnPause, true); + this.removeEventListener('ended', ImprovedTube.playerOnEnded, true); + this.addEventListener('ended', ImprovedTube.playerOnEnded, true); + ImprovedTube.autoplay(this); ImprovedTube.playerLoudnessNormalization(); @@ -402,12 +439,10 @@ ImprovedTube.playerOnPlay = function () { })(HTMLMediaElement.prototype.play); }; -ImprovedTube.playerOnPause = function (event) { - ImprovedTube.playlistUpNextAutoplay(event); -}; - -ImprovedTube.playerOnEnded = function (event) { - ImprovedTube.playlistUpNextAutoplay(event); +ImprovedTube.playerOnLoadedMetadata = function() { + setTimeout(function() { + ImprovedTube.playerSize(); + }, 100); }; ImprovedTube.playerOnTimeUpdate = function () { @@ -426,6 +461,14 @@ ImprovedTube.playerOnTimeUpdate = function () { ImprovedTube.alwaysShowProgressBar(); }; +ImprovedTube.playerOnPause = function (event) { + ImprovedTube.playlistUpNextAutoplay(event); +}; + +ImprovedTube.playerOnEnded = function (event) { + ImprovedTube.playlistUpNextAutoplay(event); +}; + /*------------------------------------------------------------------------------ 0.0 ONKEYDOWN @@ -905,7 +948,54 @@ ImprovedTube.hideThumbnailOverlay = function () { ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -2.1.1 FORCED THEATER MODE +2.1.1 PLAYER SIZE +------------------------------------------------------------------------------*/ + +ImprovedTube.playerSize = function () { + if (window.self === window.top && this.storage.player_size === 'fit_to_window' && this.elements.ytd_watch && this.elements.ytd_player) { + var video = ImprovedTube.elements.video, + aspect_ratio = video.videoWidth / video.videoHeight, + width, + height, + max_height = window.innerHeight - 56, + style = this.elements.player_size_style || document.createElement('style'); + + if (this.elements.ytd_watch.theater === true) { + width = this.elements.ytd_player.offsetWidth; + + style.textContent = '[data-page-type="video"][it-player-size="fit_to_window"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) video {'; + } else { + width = document.querySelector('#player.ytd-watch-flexy').offsetWidth; + + style.textContent = '[data-page-type="video"][it-player-size="fit_to_window"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) video {'; + } + + height = width / aspect_ratio; + + if (height > max_height) { + width -= (height - max_height) * aspect_ratio; + height = max_height; + } + + console.log(width, height); + + style.textContent += 'width:' + width + 'px !important;'; + style.textContent += 'height:' + height + 'px !important;'; + + style.textContent += '}'; + + this.elements.player_size_style = style; + + document.body.appendChild(style); + + setTimeout(function() { + window.dispatchEvent(new Event('resize')); + }, 50); + } +}; + +/*------------------------------------------------------------------------------ +2.1.2 FORCED THEATER MODE ------------------------------------------------------------------------------*/ ImprovedTube.forcedTheaterMode = function () { @@ -922,7 +1012,7 @@ ImprovedTube.forcedTheaterMode = function () { /*------------------------------------------------------------------------------ -2.1.2 HD THUMBNAIL +2.1.3 HD THUMBNAIL ------------------------------------------------------------------------------*/ ImprovedTube.playerHdThumbnail = function () { @@ -937,7 +1027,7 @@ ImprovedTube.playerHdThumbnail = function () { /*------------------------------------------------------------------------------ -2.1.3 ALWAYS SHOW PROGRESS BAR +2.1.4 ALWAYS SHOW PROGRESS BAR ------------------------------------------------------------------------------*/ ImprovedTube.alwaysShowProgressBar = function () { From 21a3633183dcb7484732be9a277c5fe6ad9e2cff Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 24 Jul 2021 13:39:41 +0300 Subject: [PATCH 0219/1224] Fixed "calculateCurrentPlayerSize_" function --- manifest.json | 2 +- youtube-scripts.js | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 2cd307b60..5409a32c3 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.321", + "version": "3.322", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 8ceafc717..740af190c 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -212,7 +212,19 @@ ImprovedTube.init = function () { ImprovedTube.elements.ytd_player = document.querySelector('ytd-player'); node.calculateCurrentPlayerSize_ = function() { - if (node.theater && ImprovedTube.elements.player) { + if (!node.theater && ImprovedTube.elements.player) { + if (this.updateStyles) { + this.updateStyles({ + '--ytd-watch-flexy-width-ratio': 1, + '--ytd-watch-flexy-height-ratio': 0.5625 + }); + + this.updateStyles({ + '--ytd-watch-width-ratio': 1, + '--ytd-watch-height-ratio': 0.5625 + }); + } + return { width: ImprovedTube.elements.player.offsetWidth, height: Math.round(ImprovedTube.elements.player.offsetWidth / (16 / 9)) From cf1c53ae9276f47e82c97b5cbaba69e4fe33e8a7 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 24 Jul 2021 15:42:48 +0300 Subject: [PATCH 0220/1224] Small fixes for "Player size: fit to window" feature --- content-styles.css | 67 ++++------------------------------------------ manifest.json | 2 +- youtube-scripts.js | 4 +-- 3 files changed, 8 insertions(+), 65 deletions(-) diff --git a/content-styles.css b/content-styles.css index c3a7c0ecc..a09cabe5d 100644 --- a/content-styles.css +++ b/content-styles.css @@ -707,75 +707,18 @@ html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change' position: static !important; } -[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) video { - position: static !important; - max-height: calc(var(--it-player-size) - var(--it-header-size)) !important; -} -/*html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container-inner { - padding-top: 0 !important; +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) .html5-video-player { + width: auto; + display: table; + margin: auto } -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container { - height: auto !important; - position: relative !important; -} - -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-theater-container { - background: transparent !important; -} - -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) { - display: table !important; - overflow: visible !important; - width: auto !important; - height: auto !important; - margin: auto !important; -} - -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-chrome-bottom { - width: calc(100% - 24px) !important; -} - -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .html5-video-container { +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) video { position: static !important; - width: 100% !important; - max-width: 100vw !important; - height: 100% !important; max-height: calc(var(--it-player-size) - var(--it-header-size)) !important; } -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video { - position: relative !important; - display: block !important; - width: auto !important; - height: auto !important; -} - -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) .html5-video-player:not(.it-mini-player) video { - position: static !important; - width: 100% !important; - max-width: 100vw !important; - height: auto !important; -} - -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal'])[it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-iv-video-content { - pointer-events: none !important; -} - - -html[data-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, -html[data-page-type="video"][it-header-position='hover'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player, -html[data-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([masthead-hidden_]) .html5-video-player, -html[data-page-type="video"][it-header-position='hover_on_video_page'][it-player-size='full_window'] ytd-app:not([scrolling_]) .html5-video-player { - margin-top: 14px !important; -} - -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='normal']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) .ytp-tooltip.ytp-preview { - top: auto !important; - bottom: 80px !important; -}*/ - /*------------------------------------------------------------------------------ 2.2.5 PLAYER COLOR diff --git a/manifest.json b/manifest.json index 5409a32c3..c918928af 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.322", + "version": "3.323", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 740af190c..66e19bb83 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -183,11 +183,11 @@ ImprovedTube.init = function () { //ImprovedTube.improvedtubeYoutubePlayerButtons(); }); - window.addEventListener('resize', function() { + /*window.addEventListener('resize', function() { setTimeout(function() { ImprovedTube.playerSize(); }, 100); - }); + });*/ this.defaultContentCountry(); this.playerH264(); From 1324923428a99bfe61be23b2dadff1ea210b6f4c Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 25 Jul 2021 13:05:59 +0300 Subject: [PATCH 0221/1224] Another fix for calculateCurrentPlayerSize_ function --- manifest.json | 2 +- youtube-scripts.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index c918928af..19e807e46 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.323", + "version": "3.324", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 66e19bb83..0db9d8739 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -212,7 +212,7 @@ ImprovedTube.init = function () { ImprovedTube.elements.ytd_player = document.querySelector('ytd-player'); node.calculateCurrentPlayerSize_ = function() { - if (!node.theater && ImprovedTube.elements.player) { + if (!this.theater && ImprovedTube.elements.player) { if (this.updateStyles) { this.updateStyles({ '--ytd-watch-flexy-width-ratio': 1, From b1cceec07280b8e7a9a6bb21e6dfc4599e357194 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 25 Jul 2021 13:12:11 +0300 Subject: [PATCH 0222/1224] Optimized keyboard & mouse listeners --- manifest.json | 2 +- youtube-scripts.js | 25 +++++++++++-------------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/manifest.json b/manifest.json index 19e807e46..706adee3d 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.324", + "version": "3.325", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 0db9d8739..1083e9d66 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -489,8 +489,8 @@ ImprovedTube.playerOnEnded = function (event) { ImprovedTube.onkeydown = function () { window.addEventListener('keydown', function () { if ( - document.querySelector('.html5-video-player') && - document.querySelector('.html5-video-player').classList.contains('ad-showing') === false + ImprovedTube.elements.player && + ImprovedTube.elements.player.classList.indexOf('ad-showing') === -1 ) { ImprovedTube.allow_autoplay = true; } @@ -504,19 +504,16 @@ ImprovedTube.onkeydown = function () { ImprovedTube.onmousedown = function (event) { window.addEventListener('mousedown', function (event) { - var path = event.composedPath(); + if (ImprovedTube.elements.player && ImprovedTube.elements.player.classList.indexOf('ad-showing') === -1) { + var path = event.composedPath(); - for (var i = 0, l = path.length; i < l; i++) { - if ( - document.querySelector('.html5-video-player') && - document.querySelector('.html5-video-player').classList.contains('ad-showing') === false && - path[i].classList && - ( - path[i].classList.contains('html5-main-video') || - path[i].classList.contains('ytp-play-button') - ) - ) { - ImprovedTube.allow_autoplay = true; + for (var i = 0, l = path.length; i < l; i++) { + if ( + path[i].className.indexOf('html5-main-video') !== -1 || + path[i].className.indexOf('ytp-play-button') !== -1 + ) { + ImprovedTube.allow_autoplay = true; + } } } }, true); From 3e9b82c08e831c8bac507258fd4ae5117d9d56ae Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 25 Jul 2021 13:15:58 +0300 Subject: [PATCH 0223/1224] Optimized custom buttons for player --- manifest.json | 2 +- youtube-scripts.js | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/manifest.json b/manifest.json index 706adee3d..71d10d71e 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.325", + "version": "3.326", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 1083e9d66..79a022a83 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -291,6 +291,8 @@ ImprovedTube.init = function () { } else if (node.id === 'movie_player') { ImprovedTube.elements.player = node; + ImprovedTube.elements.player_left_controls = node.querySelector('.ytp-left-controls'); + ImprovedTube.elements.player_thumbnail = node.querySelector('.ytp-cued-thumbnail-overlay-image'); new MutationObserver(function(mutationList) { @@ -490,7 +492,7 @@ ImprovedTube.onkeydown = function () { window.addEventListener('keydown', function () { if ( ImprovedTube.elements.player && - ImprovedTube.elements.player.classList.indexOf('ad-showing') === -1 + ImprovedTube.elements.player.className.indexOf('ad-showing') === -1 ) { ImprovedTube.allow_autoplay = true; } @@ -504,7 +506,7 @@ ImprovedTube.onkeydown = function () { ImprovedTube.onmousedown = function (event) { window.addEventListener('mousedown', function (event) { - if (ImprovedTube.elements.player && ImprovedTube.elements.player.classList.indexOf('ad-showing') === -1) { + if (ImprovedTube.elements.player && ImprovedTube.elements.player.className.indexOf('ad-showing') === -1) { var path = event.composedPath(); for (var i = 0, l = path.length; i < l; i++) { @@ -571,7 +573,7 @@ ImprovedTube.setCookie = function (name, value) { }; ImprovedTube.createPlayerButton = function (node, options) { - var controls = document.querySelector('.html5-video-player .ytp-left-controls'); + var controls = ImprovedTube.elements.player_left_controls; if (controls) { var button = document.createElement('button'); From 69ef9c0a23ad2c2a6f12c01a5fd37761dae5c08f Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 25 Jul 2021 13:17:14 +0300 Subject: [PATCH 0224/1224] Fix --- youtube-scripts.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 79a022a83..00d2c5134 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -511,8 +511,11 @@ ImprovedTube.onmousedown = function (event) { for (var i = 0, l = path.length; i < l; i++) { if ( - path[i].className.indexOf('html5-main-video') !== -1 || - path[i].className.indexOf('ytp-play-button') !== -1 + path[i].className && + ( + path[i].className.indexOf('html5-main-video') !== -1 || + path[i].className.indexOf('ytp-play-button') !== -1 + ) ) { ImprovedTube.allow_autoplay = true; } From 05a03af73eb4c25c697924c5ded88bf6eaec5fbe Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 25 Jul 2021 13:49:00 +0300 Subject: [PATCH 0225/1224] Optimized "YouTube home page" feature --- manifest.json | 2 +- youtube-scripts.js | 57 +++++++++++++++++++++++++++------------------- 2 files changed, 35 insertions(+), 24 deletions(-) diff --git a/manifest.json b/manifest.json index 71d10d71e..dfc25d667 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.326", + "version": "3.327", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 00d2c5134..9701e4e0d 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -153,7 +153,6 @@ The first function called on the YouTube side. ImprovedTube.init = function () { window.addEventListener('DOMContentLoaded', function () { - ImprovedTube.youtubeHomePage(); ImprovedTube.collapseOfSubscriptionSections(); ImprovedTube.addScrollToTop(); ImprovedTube.confirmationBeforeClosing(); @@ -173,7 +172,6 @@ ImprovedTube.init = function () { window.addEventListener('yt-page-data-updated', function () { ImprovedTube.pageType(); ImprovedTube.videoPageUpdate(); - ImprovedTube.youtubeHomePage(); ImprovedTube.collapseOfSubscriptionSections(); ImprovedTube.markWatchedVideos(); ImprovedTube.hdThumbnails(); @@ -328,17 +326,41 @@ ImprovedTube.init = function () { } else if (node.nodeName === 'DIV' && node.className.indexOf('ytp-ad-player-overlay') !== -1) { ImprovedTube.playerAds(node); } else if (node.nodeName === 'YTD-MASTHEAD') { + var logo = node.querySelector('a#logo'); + ImprovedTube.elements.masthead = { start: node.querySelector('#start'), end: node.querySelector('#end') }; ImprovedTube.improvedtubeYoutubeIcon(); + + if (logo) { + var observer = new MutationObserver(function(mutationList) { + for (var i = 0, l = mutationList.length; i < l; i++) { + var mutation = mutationList[i]; + + if (mutation.type === 'attributes') { + if (mutation.attributeName === 'href') { + ImprovedTube.youtubeHomePage(logo); + } + } + } + }); + + observer.observe(logo, { + attributes: true, + attributeFilter: ['href'], + childList: false, + subtree: false + }); + } } else if (node.nodeName === 'YTD-VIDEO-PRIMARY-INFO-RENDERER') { ImprovedTube.elements.video_title = node.querySelector('.title.ytd-video-primary-info-renderer'); ImprovedTube.improvedtubeYoutubeIcon(); } else if (node.nodeName === 'A' && node.href) { + ImprovedTube.youtubeHomePage(node); ImprovedTube.channelDefaultTab(node); } } @@ -644,7 +666,7 @@ ImprovedTube.reverse = function (parent) { 1.1 YOUTUBE HOME PAGE ------------------------------------------------------------------------------*/ -ImprovedTube.youtubeHomePage = function () { +ImprovedTube.youtubeHomePage = function (node) { var option = this.storage.youtube_home_page; if ( @@ -655,20 +677,15 @@ ImprovedTube.youtubeHomePage = function () { option === '/playlist?list=LL' || option === '/feed/library' ) { - var node_list = document.querySelectorAll(` - a[href="/"]:not([role=tablist]), - a[href="https://www.youtube.com/"]:not([role=tablist]), - a[it-origin="/"]:not([role=tablist]) - `); - - for (var i = 0, l = node_list.length; i < l; i++) { - var node = node_list[i]; - - if (node.hasAttribute('it-origin') === false) { - node.setAttribute('it-origin', '/'); - } - + if ( + ( + node.href === '/' || + node.href === 'https://www.youtube.com/' + ) && + node.getAttribute('role') !== 'tablist' + ) { node.href = option; + node.addEventListener('click', function () { if ( this.data && @@ -676,16 +693,10 @@ ImprovedTube.youtubeHomePage = function () { this.data.commandMetadata.webCommandMetadata && this.data.commandMetadata.webCommandMetadata.url ) { - this.data.commandMetadata.webCommandMetadata.url = option; + this.data.commandMetadata.webCommandMetadata.url = ImprovedTube.storage.youtube_home_page; } }, true); } - } else { - var node_list = document.querySelectorAll('a[it-origin="/"]:not([role=tablist])'); - - for (var i = 0, l = node_list.length; i < l; i++) { - node_list[i].href = '/'; - } } }; From a1f5d04517cad3884e097eeb027ba1ca360a835b Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 25 Jul 2021 14:24:28 +0300 Subject: [PATCH 0226/1224] Optimized "Collapse of subscription sections" feature --- youtube-scripts.js | 72 +++++++++++++++++----------------------------- 1 file changed, 27 insertions(+), 45 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 9701e4e0d..45adfedf9 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -153,7 +153,6 @@ The first function called on the YouTube side. ImprovedTube.init = function () { window.addEventListener('DOMContentLoaded', function () { - ImprovedTube.collapseOfSubscriptionSections(); ImprovedTube.addScrollToTop(); ImprovedTube.confirmationBeforeClosing(); ImprovedTube.markWatchedVideos(); @@ -172,7 +171,6 @@ ImprovedTube.init = function () { window.addEventListener('yt-page-data-updated', function () { ImprovedTube.pageType(); ImprovedTube.videoPageUpdate(); - ImprovedTube.collapseOfSubscriptionSections(); ImprovedTube.markWatchedVideos(); ImprovedTube.hdThumbnails(); ImprovedTube.hideThumbnailOverlay(); @@ -336,7 +334,7 @@ ImprovedTube.init = function () { ImprovedTube.improvedtubeYoutubeIcon(); if (logo) { - var observer = new MutationObserver(function(mutationList) { + new MutationObserver(function(mutationList) { for (var i = 0, l = mutationList.length; i < l; i++) { var mutation = mutationList[i]; @@ -346,9 +344,7 @@ ImprovedTube.init = function () { } } } - }); - - observer.observe(logo, { + }).observe(logo, { attributes: true, attributeFilter: ['href'], childList: false, @@ -362,6 +358,8 @@ ImprovedTube.init = function () { } else if (node.nodeName === 'A' && node.href) { ImprovedTube.youtubeHomePage(node); ImprovedTube.channelDefaultTab(node); + } else if (node.nodeName === 'YTD-ITEM-SECTION-RENDERER') { + ImprovedTube.collapseOfSubscriptionSections(node); } } } @@ -705,48 +703,32 @@ ImprovedTube.youtubeHomePage = function (node) { 1.2 COLLAPSE OF SUBSCRIPTION SECTION ------------------------------------------------------------------------------*/ -ImprovedTube.collapseOfSubscriptionSections = function () { - if (/\/feed\/subscriptions/.test(location.href)) { - if (this.storage.collapse_of_subscription_sections === true) { - var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'); - - for (var i = 0, l = sections.length; i < l; i++) { - if (!sections[i].querySelector('.it-section-collapse')) { - var section_title = sections[i].querySelector('h2'), - button = document.createElement('div'); - - button.className = 'it-section-collapse'; - button.innerHTML = ''; - button.section = sections[i]; - button.addEventListener('click', function () { - var section = this.section, - content = section.querySelector('.grid-subheader + #contents, .shelf-title-table + .multirow-shelf'); - - if (section.classList.contains('it-section-collapsed') === false) { - content.style.height = content.offsetHeight + 'px'; - content.style.transition = 'height 150ms'; - } +ImprovedTube.collapseOfSubscriptionSections = function (node) { + if (this.storage.collapse_of_subscription_sections === true) { + if (location.href.indexOf('/feed/subscriptions') !== -1) { + if (!node.querySelector('.it-section-collapse')) { + var section_title = node.querySelector('h2'), + button = document.createElement('div'); + + button.className = 'it-section-collapse'; + button.innerHTML = ''; + button.section = node; + + button.addEventListener('click', function () { + var section = this.section, + content = section.querySelector('.grid-subheader + #contents, .shelf-title-table + .multirow-shelf'); + + if (section.classList.contains('it-section-collapsed') === false) { + content.style.height = content.offsetHeight + 'px'; + content.style.transition = 'height 150ms'; + } - setTimeout(function () { - section.classList.toggle('it-section-collapsed'); - }); + setTimeout(function () { + section.classList.toggle('it-section-collapsed'); }); + }); - section_title.parentNode.insertBefore(button, section_title.nextSibling); - } - } - } else { - var sections = document.querySelectorAll('ytd-page-manager ytd-section-list-renderer ytd-item-section-renderer'), - buttons = document.querySelectorAll('.it-section-collapse'); - - for (var i = 0, l = sections.length; i < l; i++) { - sections[i].classList.remove('it-section-collapsed'); - sections[i].style.height = ''; - sections[i].style.transition = ''; - } - - for (var i = 0, l = buttons.length; i < l; i++) { - buttons[i].remove(); + section_title.parentNode.insertBefore(button, section_title.nextSibling); } } } From 666499a227da1faca105800692403d2b1989a4d4 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 25 Jul 2021 14:51:11 +0300 Subject: [PATCH 0227/1224] Optimized "Add 'Scroll to top'" feature (+ replaced innerHTML) --- manifest.json | 2 +- youtube-scripts.js | 36 ++++++++++++++++-------------------- 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/manifest.json b/manifest.json index dfc25d667..ebf3a7fc7 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.327", + "version": "3.329", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 45adfedf9..8606844c9 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -739,36 +739,32 @@ ImprovedTube.collapseOfSubscriptionSections = function (node) { 1.3 ADD "SCROLL TO TOP" ------------------------------------------------------------------------------*/ -ImprovedTube.addScrollToTop = function (is_update) { +ImprovedTube.addScrollToTop = function () { if (this.storage.add_scroll_to_top === true) { - var button = document.createElement('div'); + var button = document.createElement('div'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); button.id = 'it-scroll-to-top'; - button.innerHTML = ''; button.addEventListener('click', function () { window.scrollTo(0, 0); }); - document.documentElement.appendChild(button); - - window.addEventListener('scroll', this.scroll); - } else { - var button = document.querySelector('#it-scroll-to-top'); - - if (button) { - button.remove(); - } + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M13 19V7.8l4.9 5c.4.3 1 .3 1.4 0 .4-.5.4-1.1 0-1.5l-6.6-6.6a1 1 0 0 0-1.4 0l-6.6 6.6a1 1 0 1 0 1.4 1.4L11 7.8V19c0 .6.5 1 1 1s1-.5 1-1z'); - window.removeEventListener('scroll', this.scroll); - } -}; + svg.appendChild(path); + button.appendChild(svg); + document.documentElement.appendChild(button); -ImprovedTube.scroll = function () { - if (window.scrollY > window.innerHeight / 2) { - document.documentElement.setAttribute('it-show-scroll-to-top', true); - } else { - document.documentElement.setAttribute('it-show-scroll-to-top', false); + window.addEventListener('scroll', function () { + if (window.scrollY > window.innerHeight / 2) { + document.documentElement.setAttribute('it-show-scroll-to-top', true); + } else { + document.documentElement.setAttribute('it-show-scroll-to-top', false); + } + }); } }; From c11abb016946fe9e5c8dc5ad19b3eb8c2b5a4b03 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 25 Jul 2021 15:28:03 +0300 Subject: [PATCH 0228/1224] Optimized "Mark watched videos" feature (+ replaced innerHTML) --- manifest.json | 2 +- youtube-scripts.js | 125 +++++++++++++++++++++++---------------------- 2 files changed, 66 insertions(+), 61 deletions(-) diff --git a/manifest.json b/manifest.json index ebf3a7fc7..d90529e2f 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.329", + "version": "3.330", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 8606844c9..a9a029fd1 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -155,7 +155,6 @@ ImprovedTube.init = function () { window.addEventListener('DOMContentLoaded', function () { ImprovedTube.addScrollToTop(); ImprovedTube.confirmationBeforeClosing(); - ImprovedTube.markWatchedVideos(); ImprovedTube.hdThumbnails(); ImprovedTube.hideThumbnailOverlay(); ImprovedTube.myColors(); @@ -171,7 +170,6 @@ ImprovedTube.init = function () { window.addEventListener('yt-page-data-updated', function () { ImprovedTube.pageType(); ImprovedTube.videoPageUpdate(); - ImprovedTube.markWatchedVideos(); ImprovedTube.hdThumbnails(); ImprovedTube.hideThumbnailOverlay(); ImprovedTube.blacklist(); @@ -355,11 +353,12 @@ ImprovedTube.init = function () { ImprovedTube.elements.video_title = node.querySelector('.title.ytd-video-primary-info-renderer'); ImprovedTube.improvedtubeYoutubeIcon(); + } else if (node.nodeName === 'YTD-ITEM-SECTION-RENDERER') { + ImprovedTube.collapseOfSubscriptionSections(node); } else if (node.nodeName === 'A' && node.href) { ImprovedTube.youtubeHomePage(node); ImprovedTube.channelDefaultTab(node); - } else if (node.nodeName === 'YTD-ITEM-SECTION-RENDERER') { - ImprovedTube.collapseOfSubscriptionSections(node); + ImprovedTube.markWatchedVideos(node); } } } @@ -756,7 +755,7 @@ ImprovedTube.addScrollToTop = function () { svg.appendChild(path); button.appendChild(svg); - document.documentElement.appendChild(button); + document.body.appendChild(button); window.addEventListener('scroll', function () { if (window.scrollY > window.innerHeight / 2) { @@ -786,72 +785,78 @@ ImprovedTube.confirmationBeforeClosing = function () { 1.5 MARK WATCHED VIDEOS ------------------------------------------------------------------------------*/ -ImprovedTube.markWatchedVideos = function () { - if (ImprovedTube.storage.mark_watched_videos === true) { - var video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); +ImprovedTube.markWatchedVideos = function (node) { + if (this.storage.mark_watched_videos === true) { + if ( + node.id === 'thumbnail' && node.className.indexOf('ytd-thumbnail') !== -1 || + node.className.indexOf('thumb-link') !== -1 + ) { + var button = document.createElement('div'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - for (var i = 0, l = video_items.length; i < l; i++) { - if (!video_items[i].querySelector('.it-mark-watched')) { - var button = document.createElement('div'); + button.className = 'it-mark-watched' + (this.storage.watched && this.storage.watched[this.getParam(new URL(node.href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); - button.className = 'it-mark-watched' + (this.storage.watched && this.storage.watched[this.getParam(new URL(video_items[i].href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); - button.innerHTML = ''; + button.addEventListener('click', function (event) { + var watched = !this.classList.contains('watched'); - button.addEventListener('click', function (event) { - var watched = !this.classList.contains('watched'); + event.preventDefault(); + event.stopPropagation(); - event.preventDefault(); - event.stopPropagation(); + this.classList.toggle('watched'); - this.classList.toggle('watched'); + try { + var video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'), + item = this.parentNode; - try { - var video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'), - item = this.parentNode; - - while ( - item.nodeName && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } + while ( + item.nodeName && + item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && + item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && + item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && + item.classList && + !item.classList.contains('yt-shelf-grid-item') && + !item.classList.contains('video-list-item') + ) { + item = item.parentNode; + } - if (!ImprovedTube.storage.watched || typeof ImprovedTube.storage.watched !== 'object') { - ImprovedTube.storage.watched = {}; - } + if (!ImprovedTube.storage.watched) { + ImprovedTube.storage.watched = {}; + } - if (watched === true) { - ImprovedTube.storage.watched[video_id] = { + if (watched === true) { + ImprovedTube.storage.watched[video_id] = { + title: item.querySelector('#video-title').innerText + }; + + document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { + detail: { + action: 'set', + id: video_id, title: item.querySelector('#video-title').innerText - }; + } + })); + } else if (ImprovedTube.storage.watched[video_id]) { + delete ImprovedTube.storage.watched[video_id]; - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'set', - id: video_id, - title: item.querySelector('#video-title').innerText - } - })); - } else if (ImprovedTube.storage.watched[video_id]) { - delete ImprovedTube.storage.watched[video_id]; - - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'remove', - id: video_id - } - })); - } - } catch (err) {} - }); + document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { + detail: { + action: 'remove', + id: video_id + } + })); + } + } catch (err) {} + }); + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M12 4.5C7 4.5 2.7 7.6 1 12a11.8 11.8 0 0022 0c-1.7-4.4-6-7.5-11-7.5zM12 17a5 5 0 110-10 5 5 0 010 10zm0-8a3 3 0 100 6 3 3 0 000-6z'); - video_items[i].appendChild(button); - } + svg.appendChild(path); + button.appendChild(svg); + + node.appendChild(button); } } }; From 7b6543363043a1cdb34541b3e762bd5de0c3a0eb Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 25 Jul 2021 16:19:30 +0300 Subject: [PATCH 0229/1224] Optimized "HD thumbnails" feature --- manifest.json | 2 +- youtube-scripts.js | 60 +++++++++++++++++++++++++++------------------- 2 files changed, 37 insertions(+), 25 deletions(-) diff --git a/manifest.json b/manifest.json index d90529e2f..405e1ac55 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.330", + "version": "3.331", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index a9a029fd1..614a865db 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -115,7 +115,8 @@ var ImprovedTube = { regex: `{ channel: new RegExp('\/(user|channel|c)\/'), channel_home_page: new RegExp('\/(user|channel|c)\/.+(\/featured)?\/?$'), - channel_home_page_postfix: new RegExp('\/(featured)?\/?$') + channel_home_page_postfix: new RegExp('\/(featured)?\/?$'), + thumbnail_quality: new RegExp('(hqdefault\.jpg|hq720.jpg)+') }`, video_src: false, initialVideoUpdateDone: false, @@ -155,7 +156,6 @@ ImprovedTube.init = function () { window.addEventListener('DOMContentLoaded', function () { ImprovedTube.addScrollToTop(); ImprovedTube.confirmationBeforeClosing(); - ImprovedTube.hdThumbnails(); ImprovedTube.hideThumbnailOverlay(); ImprovedTube.myColors(); ImprovedTube.bluelight(); @@ -170,7 +170,6 @@ ImprovedTube.init = function () { window.addEventListener('yt-page-data-updated', function () { ImprovedTube.pageType(); ImprovedTube.videoPageUpdate(); - ImprovedTube.hdThumbnails(); ImprovedTube.hideThumbnailOverlay(); ImprovedTube.blacklist(); //ImprovedTube.improvedtubeYoutubeSidebarButton(); @@ -359,6 +358,31 @@ ImprovedTube.init = function () { ImprovedTube.youtubeHomePage(node); ImprovedTube.channelDefaultTab(node); ImprovedTube.markWatchedVideos(node); + } else if (node.nodeName === 'IMG') { + if (node.src) { + ImprovedTube.hdThumbnails(node); + } else { + var observer = new MutationObserver(function(mutationList) { + for (var i = 0, l = mutationList.length; i < l; i++) { + var mutation = mutationList[i]; + + if (mutation.type === 'attributes') { + if (mutation.attributeName === 'src') { + ImprovedTube.hdThumbnails(mutation.target); + } + } + } + + observer.disconnect(); + }); + + observer.observe(node, { + attributes: true, + attributeFilter: ['src'], + childList: false, + subtree: false + }); + } } } } @@ -904,30 +928,18 @@ document.addEventListener('ImprovedTubeOnlyOnePlayer', function (event) { 1.7 HD THUMBNAILS ------------------------------------------------------------------------------*/ -ImprovedTube.hdThumbnails = function () { +ImprovedTube.hdThumbnails = function (node) { if (this.storage.hd_thumbnails === true) { - var images = document.querySelectorAll('img'); - - for (var i = 0, l = images.length; i < l; i++) { - if (/(hqdefault\.jpg|hq720.jpg)+/.test(images[i].src) && !images[i].dataset.defaultSrc) { - images[i].dataset.defaultSrc = images[i].src; - - images[i].onload = function () { - if (this.naturalHeight <= 90) { - this.src = this.dataset.defaultSrc; - } - }; + if (this.regex.thumbnail_quality.test(node.src)) { + node.dataset.defaultSrc = node.src; - images[i].src = images[i].src.replace(/(hqdefault\.jpg|hq720.jpg)+/, 'maxresdefault.jpg'); - } - } - } else { - var images = document.querySelectorAll('img'); + node.onload = function () { + if (this.naturalHeight <= 90) { + this.src = this.dataset.defaultSrc; + } + }; - for (var i = 0, l = images.length; i < l; i++) { - if (images[i].dataset.defaultSrc) { - images[i].src = images[i].dataset.defaultSrc; - } + node.src = node.src.replace(this.regex.thumbnail_quality, 'maxresdefault.jpg'); } } }; From 1112c34beb824ae008d462826a75394a82afe580 Mon Sep 17 00:00:00 2001 From: dodieboy Date: Mon, 26 Jul 2021 15:58:31 +0800 Subject: [PATCH 0230/1224] Added new feature "hide 5 seconds skip overlay" --- _locales/en/messages.json | 3 +++ content-styles.css | 10 ++++++++++ popup.js | 5 +++++ 3 files changed, 18 insertions(+) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index b960415a0..c809b788d 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -392,6 +392,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, diff --git a/content-styles.css b/content-styles.css index a09cabe5d..bdc36f15e 100644 --- a/content-styles.css +++ b/content-styles.css @@ -27,6 +27,7 @@ 2.2.8 Hide "Scroll for details" 2.2.9 Always show progress bar 2.2.10 Hide Gradient Bottom + 2.2.11 Skip overlay 2.3 Sidebar 2.3.1 Livechat 2.3.2 Hide playlist @@ -870,6 +871,15 @@ html[it-hide-gradient-bottom=true] .ytp-gradient-bottom { display: none; } +/*------------------------------------------------------------------------------ +2.2.11 Skip overlay +------------------------------------------------------------------------------*/ + +html[it-player-hide-skip-overlay=true] .ytp-doubletap-ui +{ + display: none !important; +} + /*------------------------------------------------------------------------------ 2.3 SIDEBAR diff --git a/popup.js b/popup.js index 6665ea013..967c9f180 100644 --- a/popup.js +++ b/popup.js @@ -2728,6 +2728,11 @@ skeleton.main.section.appearance = { hide_gradient_bottom: { type: 'switch', label: 'hideGradientBottom' + }, + player_hide_skip_overlay: { + type: 'switch', + label: 'hideSkipOverlay', + value: false } } }, From 8ce7eb781d26097834ae1ac7555580a0131f370d Mon Sep 17 00:00:00 2001 From: dodieboy Date: Mon, 26 Jul 2021 16:06:28 +0800 Subject: [PATCH 0231/1224] Update Translation file --- _locales/ar/messages.json | 3 +++ _locales/bn/messages.json | 3 +++ _locales/de/messages.json | 3 +++ _locales/el/messages.json | 3 +++ _locales/es/messages.json | 3 +++ _locales/fr/messages.json | 3 +++ _locales/hin/messages.json | 3 +++ _locales/hr/messages.json | 3 +++ _locales/id/messages.json | 3 +++ _locales/it/messages.json | 3 +++ _locales/ko/messages.json | 3 +++ _locales/nb_NO/messages.json | 3 +++ _locales/nl/messages.json | 3 +++ _locales/no/messages.json | 3 +++ _locales/pl/messages.json | 3 +++ _locales/pt_BR/messages.json | 3 +++ _locales/pt_PT/messages.json | 3 +++ _locales/ro/messages.json | 3 +++ _locales/ru/messages.json | 3 +++ _locales/sk/messages.json | 3 +++ _locales/tr/messages.json | 3 +++ _locales/zh_CN/messages.json | 5 ++++- _locales/zh_TW/messages.json | 3 +++ 23 files changed, 70 insertions(+), 1 deletion(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index f0b359590..48867bdc0 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -386,6 +386,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "إخفاء عدد المشاهدات" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 3be397903..21656018b 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -386,6 +386,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "দর্শন গণনা লুকান" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 8be58d5a0..72d7e7b5e 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -386,6 +386,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "Videoaufrufe ausblenden" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 8fd6509a5..188b174a3 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -386,6 +386,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "Απόκρυψε τον αριθμό προβολών" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index f8b1c3879..3aec58359 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -386,6 +386,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "Ocultar contador de visitas" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 661e79202..fa420861d 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -386,6 +386,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "Voir le compte des vues" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index c2ff96545..ce958a0f6 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -386,6 +386,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "व्यू काउंट छिपाएं" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 4d4b7448f..d2db197f3 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -392,6 +392,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideThumbnailOverlay": { "message": "Sakrij gumbe na sličicama" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index b7c74e266..c65a73d0c 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -386,6 +386,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "Sembunyikan jumlah penayangan" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 18a654d53..446b9cfa2 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -386,6 +386,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "Nascondi contatore visualizzazioni" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 973ca0e99..82d30437e 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -386,6 +386,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "조회수 숨기기" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 0e47ebbea..cc2961ce6 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -389,6 +389,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "Skjul visningsteller" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 686b5d414..1e636785e 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -386,6 +386,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "Verberg views teller" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 822fb7a20..94560de31 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -383,6 +383,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "Skjul visninger teller" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 8dbc5149a..417bdf585 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -392,6 +392,9 @@ "hideShareButton": { "message": "Ukryj przycisk \"Udostępnij\"" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideThumbnailOverlay": { "message": "Ukryj przyciski na miniaturach" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 37c1ac61c..507cbea28 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -386,6 +386,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "Ocultar visualizações" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index aed191a4f..d9f27a885 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -386,6 +386,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "Esconder número de vistos" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 53f5e24ad..6f5f4f38e 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -389,6 +389,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "Ascunde numărul vizualizărilor" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index acfaf1ad9..13a0f1b96 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -386,6 +386,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "Скрыть количество просмотров" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index fa5186a91..8dc5fe0af 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -386,6 +386,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "Skyť počet videní" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index dcdb0bf7a..55d2ed76d 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -386,6 +386,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "Görüntüleme sayısını gizle" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 09eb3f314..247a2777f 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -375,7 +375,7 @@ "message": "隐藏底部渐变层" }, "hideMoreButton": { - "message": "Hide \"More\" button" + "message": "隐藏 \"更多\" 按钮" }, "hidePlaylist": { "message": "隐藏播放列表" @@ -392,6 +392,9 @@ "hideShareButton": { "message": "隐藏\"共享\"按钮" }, + "hideSkipOverlay": { + "message": "隐藏跳过叠加" + }, "hideThumbnailOverlay": { "message": "隐藏缩略图上的按钮" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 625d5f690..b348054d6 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -389,6 +389,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideThumbnailOverlay": { "message": "隱藏縮圖上的按鈕" }, From 0e5d535e5cb015cf2817cdbecef260f596feb6bd Mon Sep 17 00:00:00 2001 From: dodieboy Date: Mon, 26 Jul 2021 16:07:45 +0800 Subject: [PATCH 0232/1224] Update Translation file --- _locales/ja/messages.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index a498a2723..cc8ebcc11 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -386,6 +386,9 @@ "hideShareButton": { "message": "Hide \"Share\" button" }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, "hideViewsCount": { "message": "視聴数を隠す" }, From e008f24a6e2274abd56c5a249ca3364887976df9 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 26 Jul 2021 11:39:16 +0300 Subject: [PATCH 0233/1224] Optimized "Hide buttons on thumbnails" feature --- content-scripts.js | 1 + content-styles.css | 11 +++++++++++ manifest.json | 2 +- youtube-scripts.js | 17 ----------------- 4 files changed, 13 insertions(+), 18 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index 2626cb314..9a7839652 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -31,6 +31,7 @@ function attributes(items) { 'limit-page-width': true, 'squared-user-images': true, 'hide-animated-thumbnails': true, + 'hide-thumbnail-overlay': true, 'header-position': true, 'header-improve-logo': true, 'header-hide-right-buttons': true, diff --git a/content-styles.css b/content-styles.css index a09cabe5d..7ad9dae90 100644 --- a/content-styles.css +++ b/content-styles.css @@ -10,6 +10,7 @@ 1.6 Limit page width 1.7 Squared user images 1.8 Hide animated thumbnails + 1.9 Hide buttons on thumbnails 2.0 Appearance 2.1 Header 2.1.1 Position @@ -295,6 +296,16 @@ html[it-hide-animated-thumbnails=true] .mouseover-img { } +/*------------------------------------------------------------------------------ +1.9 HIDE BUTTONS ON THUMBNAILS +------------------------------------------------------------------------------*/ + +html[it-hide-thumbnail-overlay=true] #hover-overlays { + display: none +} + + + /*------------------------------------------------------------------------------- 2.0 APPEARANCE -------------------------------------------------------------------------------*/ diff --git a/manifest.json b/manifest.json index 405e1ac55..d6f7296a1 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.331", + "version": "3.332", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 614a865db..b368a6170 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -11,7 +11,6 @@ 1.5 Mark watched videos 1.6 Only one player instance playing 1.7 HD thumbnails - 1.8 Hide thumbnail overlay 2.0 Appearance 2.1 Player 2.1.1 Player size @@ -156,7 +155,6 @@ ImprovedTube.init = function () { window.addEventListener('DOMContentLoaded', function () { ImprovedTube.addScrollToTop(); ImprovedTube.confirmationBeforeClosing(); - ImprovedTube.hideThumbnailOverlay(); ImprovedTube.myColors(); ImprovedTube.bluelight(); ImprovedTube.dim(); @@ -170,7 +168,6 @@ ImprovedTube.init = function () { window.addEventListener('yt-page-data-updated', function () { ImprovedTube.pageType(); ImprovedTube.videoPageUpdate(); - ImprovedTube.hideThumbnailOverlay(); ImprovedTube.blacklist(); //ImprovedTube.improvedtubeYoutubeSidebarButton(); //ImprovedTube.improvedtubeYoutubePlayerButtons(); @@ -944,20 +941,6 @@ ImprovedTube.hdThumbnails = function (node) { } }; -/*------------------------------------------------------------------------------ -1.8 HIDE THUMBNAIL OVERLAY -------------------------------------------------------------------------------*/ - -ImprovedTube.hideThumbnailOverlay = function () { - if (this.storage.hide_thumbnail_overlay === true) { - var overlays = document.querySelectorAll('#hover-overlays'); - - for (var i = 0, l = overlays.length; i < l; i++) { - overlays[i].style.display = "none"; - } - } -}; - /*------------------------------------------------------------------------------ 2.0 APPEARANCE From 17fc5fd8d5d09d8b872da42c575b52942fddeb0d Mon Sep 17 00:00:00 2001 From: dodieboy Date: Mon, 26 Jul 2021 18:13:43 +0800 Subject: [PATCH 0234/1224] Fixed for "hide 5 seconds skip overlay" feature Added a work around for "hide 5 seconds skip overlay" feature not working on initialization --- content-styles.css | 2 +- youtube-scripts.js | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/content-styles.css b/content-styles.css index bdc36f15e..f0aadec37 100644 --- a/content-styles.css +++ b/content-styles.css @@ -877,7 +877,7 @@ html[it-hide-gradient-bottom=true] .ytp-gradient-bottom { html[it-player-hide-skip-overlay=true] .ytp-doubletap-ui { - display: none !important; + visibility: hidden; } diff --git a/youtube-scripts.js b/youtube-scripts.js index 614a865db..9d4cc7acd 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -172,6 +172,7 @@ ImprovedTube.init = function () { ImprovedTube.videoPageUpdate(); ImprovedTube.hideThumbnailOverlay(); ImprovedTube.blacklist(); + ImprovedTube.hideSkipOverlay(); //ImprovedTube.improvedtubeYoutubeSidebarButton(); //ImprovedTube.improvedtubeYoutubePlayerButtons(); }); @@ -1098,6 +1099,18 @@ ImprovedTube.alwaysShowProgressBar = function () { }; +/*------------------------------------------------------------------------------ +2.1.5 HIDE SKIP OVERLAY +------------------------------------------------------------------------------*/ + +ImprovedTube.hideSkipOverlay = function () { + if (this.storage.player_hide_skip_overlay === true) { + var overlays = document.querySelectorAll('.ytp-doubletap-ui'); + overlays[0].style.visibility = "hidden"; + } +}; + + /*------------------------------------------------------------------------------ 2.2 SIDEBAR ------------------------------------------------------------------------------*/ From 102d4d3a76347ce3d83e6c6b59d5928a085c6630 Mon Sep 17 00:00:00 2001 From: dodieboy Date: Mon, 26 Jul 2021 18:36:18 +0800 Subject: [PATCH 0235/1224] Fixed for "hide 5 seconds skip overlay" feature --- youtube-scripts.js | 1 + 1 file changed, 1 insertion(+) diff --git a/youtube-scripts.js b/youtube-scripts.js index 9d4cc7acd..f66307098 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -18,6 +18,7 @@ 2.1.2 Forced theater mode 2.1.3 HD thumbnail 2.1.4 Always show progress bar + 2.1.5 Hide Skip Overlay 2.2 Sidebar 2.2.1 Livechat 2.2.2 Related videos From 5c92e0d069a5e168e3805ca2c65e3e3b94511551 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 26 Jul 2021 14:18:55 +0300 Subject: [PATCH 0236/1224] Improved code comments --- content-styles.css | 136 +++++++++++++++++++++++---------------------- 1 file changed, 69 insertions(+), 67 deletions(-) diff --git a/content-styles.css b/content-styles.css index 7ad9dae90..c420d0b17 100644 --- a/content-styles.css +++ b/content-styles.css @@ -37,9 +37,13 @@ 2.4 Details 2.4.1 Hide details 2.4.2 Hide views count - 2.4.3 Description + 2.4.3 Hide date 2.4.4 Likes - 2.4.5 Show dislike button red colour + 2.4.5 Hide share button + 2.4.6 Hide save button + 2.4.7 Hide more button + 2.4.8 Description + 2.4.9 Show dislike button red colour 2.5 Comments 2.6 Footer 3.0 Themes @@ -64,12 +68,10 @@ 9.0 Blacklist ------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------ 1.0 GENERAL ------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------ 1.1 YOUTUBE HOME PAGE ------------------------------------------------------------------------------*/ @@ -305,17 +307,14 @@ html[it-hide-thumbnail-overlay=true] #hover-overlays { } - /*------------------------------------------------------------------------------- 2.0 APPEARANCE -------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------- 2.1 HEADER -------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------- 2.1.1 POSITION -------------------------------------------------------------------------------*/ @@ -430,7 +429,6 @@ html[it-header-hide-country-code=true] #logo #country-code { 2.2 PLAYER ------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------ 2.2.1 HIDE ANNOTATIONS ------------------------------------------------------------------------------*/ @@ -477,16 +475,17 @@ html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-ca 2.2.4 PLAYER SIZE ------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------ # VARIABLES ------------------------------------------------------------------------------*/ +/*------------------------------------------------------------------------------ +# HEADER +------------------------------------------------------------------------------*/ -/* ---- HEADER --------------------------------------------------------------*/ - - -/* ---- NORMAL --------------------------------------------------------------*/ +/*------------------------------------------------------------------------------ +# NORMAL +------------------------------------------------------------------------------*/ html[data-page-type=video]:not([it-header-position]) ytd-app, html[data-page-type=video][it-header-position=normal] ytd-app, @@ -513,7 +512,9 @@ html[data-page-type=video][it-header-position=static] div#page:not(.watch-wide) } -/* ---- HIDDEN ---------------------------------------------------------------*/ +/*------------------------------------------------------------------------------ +# HIDDEN +------------------------------------------------------------------------------*/ html[data-page-type=video][it-header-position=hidden], html[data-page-type=video][it-header-position=hidden_on_video_page] { @@ -536,7 +537,9 @@ html[data-page-type=video][it-header-position=hidden_on_video_page] div#page:not } -/* ---- HOVER ----------------------------------------------------------------*/ +/*------------------------------------------------------------------------------ +# HOVER +------------------------------------------------------------------------------*/ html[data-page-type=video][it-header-position=hover], html[data-page-type=video][it-header-position=hover_on_video_page] { @@ -574,7 +577,9 @@ html[data-page-type=video][it-header-position=hover_on_video_page] ytd-app:not([ } -/* ---- FIXED PLAYER SIZE ----------------------------------------------------*/ +/*------------------------------------------------------------------------------ +# FIXED PLAYER SIZE +------------------------------------------------------------------------------*/ html[data-page-type=video][it-player-size='240p'] *, html[data-page-type=video][it-player-size='360p'] *, @@ -588,7 +593,9 @@ html[data-page-type=video][it-player-size='2160p'] * { } -/* ---- SIZES ----------------------------------------------------------------*/ +/*------------------------------------------------------------------------------ +# FULL WINDOW +------------------------------------------------------------------------------*/ html[data-page-type=video][it-player-size='240p'] { --it-player-size: 240px; @@ -670,9 +677,13 @@ html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change' } -/*FIT TO WINDOW*/ +/*------------------------------------------------------------------------------ +# FIT TO WINDOW +------------------------------------------------------------------------------*/ -/*THEATER: ON*/ +/*------------------------------------------------------------------------------ +# THEATER: ON +------------------------------------------------------------------------------*/ [data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container { height: auto !important; @@ -708,7 +719,9 @@ html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change' } -/*THEATER: OFF*/ +/*------------------------------------------------------------------------------ +# THEATER: OFF +------------------------------------------------------------------------------*/ [data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container-inner { padding-top: 0 !important; @@ -886,7 +899,6 @@ html[it-hide-gradient-bottom=true] .ytp-gradient-bottom { 2.3 SIDEBAR ------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------ 2.3.1 LIVECHAT ------------------------------------------------------------------------------*/ @@ -972,7 +984,6 @@ html[it-thumbnails-hide='true'] #dismissible>ytd-thumbnail { 2.4 DETAILS ------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------ 2.4.1 HIDE DETAILS ------------------------------------------------------------------------------*/ @@ -997,7 +1008,7 @@ html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer+#date>#dot /*------------------------------------------------------------------------------ -2.4.2 HIDE DATE +2.4.3 HIDE DATE ------------------------------------------------------------------------------*/ html[it-hide-date=true] #count.ytd-video-primary-info-renderer+#date, @@ -1007,36 +1018,7 @@ html[it-hide-date=true] #count.ytd-video-primary-info-renderer+#date>#dot { /*------------------------------------------------------------------------------ -2.4.2 HIDE SHARE BUTTON -------------------------------------------------------------------------------*/ - -html[it-hide-share-button=true] #info #top-level-buttons ytd-button-renderer:nth-child(3), -html[it-hide-share-button=true] #info #top-level-buttons-computed ytd-button-renderer:nth-child(3) { - display: none; -} - - -/*------------------------------------------------------------------------------ -2.4.2 HIDE SAVE BUTTON -------------------------------------------------------------------------------*/ - -html[it-hide-save-button=true] #info #top-level-buttons ytd-button-renderer:nth-child(4), -html[it-hide-save-button=true] #info #top-level-buttons-computed ytd-button-renderer:nth-child(4) { - display: none; -} - - -/*------------------------------------------------------------------------------ -2.4.2 HIDE MORE BUTTON -------------------------------------------------------------------------------*/ - -html[it-hide-more-button=true] #info #top-level-buttons-computed+yt-icon-button { - display: none; -} - - -/*------------------------------------------------------------------------------ -2.4.4 Likes +2.4.4 LIKES ------------------------------------------------------------------------------*/ [it-likes=hidden] #watch8-sentiment-actions>.like-button-renderer, @@ -1075,17 +1057,36 @@ html[it-hide-more-button=true] #info #top-level-buttons-computed+yt-icon-button /*------------------------------------------------------------------------------ -2.4.5 SHOW DISLIKE RED COLOR +2.4.5 HIDE SHARE BUTTON ------------------------------------------------------------------------------*/ -[it-red-dislike-button=true] #top-level-buttons>ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active>a, -[it-red-dislike-button=true] #top-level-buttons-computed>ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active>a { - color: #fc0000 !important; +html[it-hide-share-button=true] #info #top-level-buttons ytd-button-renderer:nth-child(3), +html[it-hide-share-button=true] #info #top-level-buttons-computed ytd-button-renderer:nth-child(3) { + display: none; +} + + +/*------------------------------------------------------------------------------ +2.4.6 HIDE SAVE BUTTON +------------------------------------------------------------------------------*/ + +html[it-hide-save-button=true] #info #top-level-buttons ytd-button-renderer:nth-child(4), +html[it-hide-save-button=true] #info #top-level-buttons-computed ytd-button-renderer:nth-child(4) { + display: none; } /*------------------------------------------------------------------------------ -2.4.3 DESCRIPTION +2.4.7 HIDE MORE BUTTON +------------------------------------------------------------------------------*/ + +html[it-hide-more-button=true] #info #top-level-buttons-computed+yt-icon-button { + display: none; +} + + +/*------------------------------------------------------------------------------ +2.4.8 DESCRIPTION ------------------------------------------------------------------------------*/ html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, @@ -1106,6 +1107,16 @@ html[it-description=expanded] .yt-uix-expander-collapsed .yt-uix-expander-body { } +/*------------------------------------------------------------------------------ +2.4.9 SHOW DISLIKE RED COLOR +------------------------------------------------------------------------------*/ + +[it-red-dislike-button=true] #top-level-buttons>ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active>a, +[it-red-dislike-button=true] #top-level-buttons-computed>ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active>a { + color: #fc0000 !important; +} + + /*------------------------------------------------------------------------------ 2.5 COMMENTS ------------------------------------------------------------------------------*/ @@ -1156,7 +1167,6 @@ html[it-hide-footer=true] app-drawer#guide #footer { 3.0 THEMES ------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------ 3.1 BLUELIGHT ------------------------------------------------------------------------------*/ @@ -1225,7 +1235,6 @@ html[it-bluelight][it-youtube-version=old] body { 3.3 THEMES ------------------------------------------------------------------------------*/ - /*BLACK*/ [it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), @@ -3050,7 +3059,6 @@ html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche 4.0 PLAYER ------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------ 4.1 CROP CHAPTER TITLES ------------------------------------------------------------------------------*/ @@ -3076,7 +3084,6 @@ html[it-player-ads=block_all] #masthead-ad { 4.3 MINIPLAYER ------------------------------------------------------------------------------*/ - /*----------------------------------------------------------------------------- # POSITION & SIZE -----------------------------------------------------------------------------*/ @@ -3287,7 +3294,6 @@ body.no-scroll .it-player-button--tooltip { 5.0 PLAYLIST ------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------ 5.1 REVERSE ------------------------------------------------------------------------------*/ @@ -3310,11 +3316,8 @@ body.no-scroll .it-player-button--tooltip { 6.0 CHANNEL ------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------ 6.1 FEATURED CONTENT --------------------------------------------------------------------------------- -FIXED #535 FlaviuIusan ------------------------------------------------------------------------------*/ html[it-channel-hide-featured-content=true] #secondary #contents.style-scope.ytd-browse-secondary-contents-renderer, @@ -3348,7 +3351,6 @@ html[it-channel-hide-featured-content=true] #secondary ytd-browse-secondary-cont 8.0 SETTINGS ------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------ 8.1 IMPROVEDTUBE ICON ON YOUTUBE ------------------------------------------------------------------------------*/ From 6a1d7015cc8526f5fd79528b138e96fcd58c25bc Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 26 Jul 2021 14:24:28 +0300 Subject: [PATCH 0237/1224] Added "empty()" function --- content-scripts.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/content-scripts.js b/content-scripts.js index 9a7839652..5d36d2f8f 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -80,6 +80,12 @@ function attributes(items) { } } +function empty(element) { + for (var i = element.children.length - 1; i > -1; i--) { + element.children[i].remove(); + } +} + /*------------------------------------------------------------------------------ 2.0 INITIALIZATION @@ -134,6 +140,9 @@ chrome.storage.local.get('youtube_home_page', function (items) { // Isset textContent += 'isset:' + isset + ','; + // Empty + textContent += 'empty:' + empty + ','; + // Features for (var key in ImprovedTube) { textContent += key + ': ' + ImprovedTube[key] + ','; From 993cbf4b75faf0d620f484438fd8205e60ff4856 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 26 Jul 2021 14:29:33 +0300 Subject: [PATCH 0238/1224] Upgraded "How long ago the video was uploaded" feature --- content-scripts.js | 4 +-- content-styles.css | 16 ++++++++++-- manifest.json | 2 +- youtube-scripts.js | 62 ++++++++++++++++++++++++---------------------- 4 files changed, 50 insertions(+), 34 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index 5d36d2f8f..97deebb88 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -81,8 +81,8 @@ function attributes(items) { } function empty(element) { - for (var i = element.children.length - 1; i > -1; i--) { - element.children[i].remove(); + for (var i = element.childNodes.length - 1; i > -1; i--) { + element.childNodes[i].remove(); } } diff --git a/content-styles.css b/content-styles.css index c420d0b17..d92e97083 100644 --- a/content-styles.css +++ b/content-styles.css @@ -43,7 +43,8 @@ 2.4.6 Hide save button 2.4.7 Hide more button 2.4.8 Description - 2.4.9 Show dislike button red colour + 2.4.9 How long ago the video was uploaded + 2.4.10 Show dislike button red colour 2.5 Comments 2.6 Footer 3.0 Themes @@ -1108,7 +1109,18 @@ html[it-description=expanded] .yt-uix-expander-collapsed .yt-uix-expander-body { /*------------------------------------------------------------------------------ -2.4.9 SHOW DISLIKE RED COLOR +2.4.9 HOW LONG AGO THE VIDEO WAS UPLOADED +------------------------------------------------------------------------------*/ + +.it-how-long-ago-the-video-was-uploaded { + margin-left: 4px; + float: right; + color: var(--yt-spec-text-secondary); +} + + +/*------------------------------------------------------------------------------ +2.4.10 SHOW DISLIKE RED COLOR ------------------------------------------------------------------------------*/ [it-red-dislike-button=true] #top-level-buttons>ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active>a, diff --git a/manifest.json b/manifest.json index d6f7296a1..f2430fad5 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.332", + "version": "3.334", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index b368a6170..65bfbc2af 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -380,6 +380,9 @@ ImprovedTube.init = function () { subtree: false }); } + } else if (node.nodeName === 'YTD-VIDEO-SECONDARY-INFO-RENDERER') { + ImprovedTube.elements.yt_channel_name = node.querySelector('ytd-channel-name'); + ImprovedTube.howLongAgoTheVideoWasUploaded(); } } } @@ -429,7 +432,7 @@ ImprovedTube.videoPageUpdate = function () { })); } - ImprovedTube.initialVideoUpdateDone = true; + this.initialVideoUpdateDone = true; this.howLongAgoTheVideoWasUploaded(); this.channelVideosCount(); @@ -1131,7 +1134,7 @@ ImprovedTube.relatedVideos = function () { ------------------------------------------------------------------------------*/ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { - if (ImprovedTube.storage.how_long_ago_the_video_was_uploaded === true) { + if (ImprovedTube.storage.how_long_ago_the_video_was_uploaded === true && ImprovedTube.elements.yt_channel_name) { function timeSince(date) { var seconds = Math.floor((new Date() - new Date(date)) / 1000), interval = Math.floor(seconds / 31536000); @@ -1159,43 +1162,44 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { return Math.floor(seconds) + ' seconds ago'; } - var waiting_channel_link = setInterval(function () { - var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new', - api_key = typeof ImprovedTube.storage.google_api_key === 'string' && ImprovedTube.storage.google_api_key.length > 0 ? ImprovedTube.storage.google_api_key : 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; + var api_key = ImprovedTube.storage.google_api_key, + xhr = new XMLHttpRequest(); - if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info a')) { - clearInterval(waiting_channel_link); + if (typeof api_key !== 'string' || api_key === 0) { + api_key = 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; + } - var xhr = new XMLHttpRequest(); + xhr.addEventListener('load', function () { + var response = JSON.parse(this.responseText), + element = ImprovedTube.elements.how_long_ago_the_video_was_uploaded || document.createElement('div'); - xhr.addEventListener('load', function () { - var response = JSON.parse(this.responseText), - element = document.querySelector('.itx-channel-video-uploaded') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); + ImprovedTube.empty(element); - if (ImprovedTube.isset(response.items) && ImprovedTube.isset(response.items[0])) { - element.innerHTML = (youtube_version ? '
· ' + timeSince(response.items[0].snippet.publishedAt) + ' ' : timeSince(response.items[0].snippet.publishedAt) + ''); + if (response.error) { + element.appendChild(document.createTextNode('• Error: ' + response.error.code)); + } else { + element.appendChild(document.createTextNode('• ' + timeSince(response.items[0].snippet.publishedAt))); + } - var date = new Date(response.items[0].snippet.publishedAt); + /*if (response.items && response.items[0]) { + element.innerHTML = (' · ' + timeSince(response.items[0].snippet.publishedAt) + ' '); - element.title = ((date.getMonth() > 8) ? (date.getMonth() + 1) : ('0' + (date.getMonth() + 1))) + '/' + ((date.getDate() > 9) ? date.getDate() : ('0' + date.getDate())) + '/' + date.getFullYear(); - } + var date = new Date(response.items[0].snippet.publishedAt); - if (!youtube_version) { - element.href = document.querySelector('#watch7-user-header a').href.indexOf('/videos') === -1 ? document.querySelector('#watch7-user-header a').href + '/videos' : document.querySelector('#watch7-user-header a').href; - } + element.title = ((date.getMonth() > 8) ? (date.getMonth() + 1) : ('0' + (date.getMonth() + 1))) + '/' + ((date.getDate() > 9) ? date.getDate() : ('0' + date.getDate())) + '/' + date.getFullYear(); + }*/ - if (!document.querySelector('.itx-channel-video-uploaded') && document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info')) { - element.style.marginLeft = '8px'; - element.className = (youtube_version ? 'style-scope ytd-video-owner-renderer itx-channel-video-uploaded' : 'yt-uix-sessionlink spf-link itx-channel-video-uploaded'); + element.className = 'it-how-long-ago-the-video-was-uploaded'; - document.querySelector(youtube_version ? '#info #info-text #date' : '.yt-user-info').appendChild(element); - } - }); + ImprovedTube.elements.how_long_ago_the_video_was_uploaded = element; - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?id=' + ImprovedTube.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v') + '&key=' + api_key + '&part=snippet', true); - xhr.send(); - } - }, 500); + document.querySelector('#info #info-text').appendChild(element); + + console.log(response); + }); + + xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?id=' + ImprovedTube.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v') + '&key=' + api_key + '&part=snippet', true); + xhr.send(); } }; From 12a242df92ec289c8058c7564ee208e7d0d6eb6c Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 26 Jul 2021 15:50:56 +0300 Subject: [PATCH 0239/1224] Upgraded "Show channel videos count" feature --- content-styles.css | 16 ++++++++++++-- manifest.json | 2 +- youtube-scripts.js | 55 +++++++++++++++++++++------------------------- 3 files changed, 40 insertions(+), 33 deletions(-) diff --git a/content-styles.css b/content-styles.css index d92e97083..b0bc7b7e6 100644 --- a/content-styles.css +++ b/content-styles.css @@ -44,7 +44,8 @@ 2.4.7 Hide more button 2.4.8 Description 2.4.9 How long ago the video was uploaded - 2.4.10 Show dislike button red colour + 2.4.10 Show channel videos count + 2.4.11 Show dislike button red colour 2.5 Comments 2.6 Footer 3.0 Themes @@ -1120,7 +1121,18 @@ html[it-description=expanded] .yt-uix-expander-collapsed .yt-uix-expander-body { /*------------------------------------------------------------------------------ -2.4.10 SHOW DISLIKE RED COLOR +2.4.10 SHOW CHANNEL VIDEOS COUNT +------------------------------------------------------------------------------*/ + +.it-channel-videos-count { + margin-right: 4px; + float: left; + color: var(--yt-spec-text-secondary); +} + + +/*------------------------------------------------------------------------------ +2.4.11 SHOW DISLIKE RED COLOR ------------------------------------------------------------------------------*/ [it-red-dislike-button=true] #top-level-buttons>ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active>a, diff --git a/manifest.json b/manifest.json index f2430fad5..637086e5b 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.334", + "version": "3.335", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 65bfbc2af..37b05bbe7 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -382,7 +382,9 @@ ImprovedTube.init = function () { } } else if (node.nodeName === 'YTD-VIDEO-SECONDARY-INFO-RENDERER') { ImprovedTube.elements.yt_channel_name = node.querySelector('ytd-channel-name'); + ImprovedTube.elements.yt_channel_link = node.querySelector('ytd-channel-name a'); ImprovedTube.howLongAgoTheVideoWasUploaded(); + ImprovedTube.channelVideosCount(); } } } @@ -1134,7 +1136,7 @@ ImprovedTube.relatedVideos = function () { ------------------------------------------------------------------------------*/ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { - if (ImprovedTube.storage.how_long_ago_the_video_was_uploaded === true && ImprovedTube.elements.yt_channel_name) { + if (this.storage.how_long_ago_the_video_was_uploaded === true && this.elements.yt_channel_name) { function timeSince(date) { var seconds = Math.floor((new Date() - new Date(date)) / 1000), interval = Math.floor(seconds / 31536000); @@ -1162,7 +1164,7 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { return Math.floor(seconds) + ' seconds ago'; } - var api_key = ImprovedTube.storage.google_api_key, + var api_key = this.storage.google_api_key, xhr = new XMLHttpRequest(); if (typeof api_key !== 'string' || api_key === 0) { @@ -1198,7 +1200,7 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { console.log(response); }); - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?id=' + ImprovedTube.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v') + '&key=' + api_key + '&part=snippet', true); + xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?id=' + this.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v') + '&key=' + api_key + '&part=snippet', true); xhr.send(); } }; @@ -1206,44 +1208,37 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { /*------------------------------------------------------------------------------ 2.3.2 SHOW CHANNEL VIDEOS COUNT --------------------------------------------------------------------------------- -TODO: TEST ------------------------------------------------------------------------------*/ ImprovedTube.channelVideosCount = function () { - if (this.storage.channel_videos_count === true) { - var waiting_channel_link = setInterval(function () { - var youtube_version = document.documentElement.getAttribute('it-youtube-version') === 'new'; + if (this.storage.channel_videos_count === true && this.elements.yt_channel_link) { + var xhr = new XMLHttpRequest(); - if (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a')) { - clearInterval(waiting_channel_link); + xhr.addEventListener('load', function () { + var response = JSON.parse(this.responseText), + parent = document.querySelector('#meta ytd-channel-name + yt-formatted-string'), + element = ImprovedTube.elements.channel_videos_count || document.createElement('div'); - var xhr = new XMLHttpRequest(); + ImprovedTube.empty(element); - xhr.addEventListener('load', function () { - var response = JSON.parse(this.responseText), - element = document.querySelector('.itx-channel-videos-count') || document.createElement(youtube_version ? 'yt-formatted-string' : 'a'); + if (response.error) { + element.appendChild(document.createTextNode('Error: ' + response.error.code + ' •')); + } else { + element.appendChild(document.createTextNode(response.items[0].statistics.videoCount + ' •')); + } - if (ImprovedTube.isset(response.items) && ImprovedTube.isset(response.items[0])) { - element.innerHTML = (youtube_version ? '' + response.items[0].statistics.videoCount + ' videos' : response.items[0].statistics.videoCount + ' videos'); - } + element.className = 'it-channel-videos-count'; - if (!youtube_version) { - element.href = document.querySelector('#watch7-user-header a').href.indexOf('/videos') === -1 ? document.querySelector('#watch7-user-header a').href + '/videos' : document.querySelector('#watch7-user-header a').href; - } + ImprovedTube.elements.channel_videos_count = element; - if (!document.querySelector('.itx-channel-videos-count') && document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info')) { - element.style.marginLeft = '8px'; - element.className = (youtube_version ? 'style-scope ytd-video-owner-renderer itx-channel-videos-count' : 'yt-uix-sessionlink spf-link itx-channel-videos-count'); + parent.appendChild(element); - document.querySelector(youtube_version ? '#meta-contents ytd-channel-name' : '.yt-user-info').appendChild(element); - } - }); + ImprovedTube.elements.channel_videos_count = element; + console.log(element); + }); - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/channels?id=' + (document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a').getAttribute('it-origin') || document.querySelector(youtube_version ? '#meta-contents ytd-channel-name a' : '.yt-user-info a').href).replace('https://www.youtube.com/channel/', '') + '&key=AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA&part=statistics', true); - xhr.send(); - } - }, 500); + xhr.open('GET', 'https://www.googleapis.com/youtube/v3/channels?id=' + this.elements.yt_channel_link.href.replace('/channel/', '') + '&key=AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA&part=statistics', true); + xhr.send(); } }; From d7ae537a580a88c1302d36ba02da2ee14a864f18 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 26 Jul 2021 16:34:53 +0300 Subject: [PATCH 0240/1224] Redeveloped "Bluelight" feature (now without innerHTML) --- content-scripts.js | 1 + youtube-scripts.js | 65 ++++++++++++++++++++++++++++++++++------------ 2 files changed, 50 insertions(+), 16 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index 97deebb88..3da72be84 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -60,6 +60,7 @@ function attributes(items) { 'comments': true, 'thumbnails-hide': true, 'hide-footer': true, + 'bluelight': true, 'night-theme': true, 'dawn-theme': true, 'sunset-theme': true, diff --git a/youtube-scripts.js b/youtube-scripts.js index 37b05bbe7..8b26930b2 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -156,7 +156,6 @@ ImprovedTube.init = function () { ImprovedTube.addScrollToTop(); ImprovedTube.confirmationBeforeClosing(); ImprovedTube.myColors(); - ImprovedTube.bluelight(); ImprovedTube.dim(); ImprovedTube.font(); ImprovedTube.themes(); @@ -179,6 +178,7 @@ ImprovedTube.init = function () { }, 100); });*/ + this.bluelight(); this.defaultContentCountry(); this.playerH264(); this.player60fps(); @@ -1196,8 +1196,6 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { ImprovedTube.elements.how_long_ago_the_video_was_uploaded = element; document.querySelector('#info #info-text').appendChild(element); - - console.log(response); }); xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?id=' + this.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v') + '&key=' + api_key + '&part=snippet', true); @@ -1234,7 +1232,6 @@ ImprovedTube.channelVideosCount = function () { parent.appendChild(element); ImprovedTube.elements.channel_videos_count = element; - console.log(element); }); xhr.open('GET', 'https://www.googleapis.com/youtube/v3/channels?id=' + this.elements.yt_channel_link.href.replace('/channel/', '') + '&key=AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA&part=statistics', true); @@ -1352,22 +1349,58 @@ ImprovedTube.bluelight = function () { times.from = 0; } - if ( - this.isset(value) && value !== 0 && value !== '0' && - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) - ) { - if (!document.querySelector('#it-bluelight')) { - var container = document.createElement('div'); + if (this.storage.schedule === 'sunset_to_sunrise' || current_time < times.from && current_time >= times.to) { + return false; + } - container.id = 'it-bluelight'; - container.innerHTML = ''; + if (this.isset(value) === false || typeof value !== 'number') { + value = 0; + } - document.documentElement.appendChild(container); + if (value !== 0) { + var div = this.elements.bluelight || document.createElement('div'); + + if (!this.elements.feColorMatrix) { + var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + filter = document.createElementNS('http://www.w3.org/2000/svg', 'filter'), + feColorMatrix = document.createElementNS('http://www.w3.org/2000/svg', 'feColorMatrix'), + matrix = feColorMatrix.values.baseVal; + + div.id = 'it-bluelight'; + + svg.setAttributeNS(null, 'viewBox', '0 0 1 1'); + svg.setAttributeNS(null, 'version', '1.1'); + filter.setAttributeNS(null, 'id', 'it-bluelight-filter'); + feColorMatrix.setAttributeNS(null, 'type', 'matrix'); + + for (var i = 0; i < 20; i++) { + var number = svg.createSVGNumber(); + + number.value = 0; + + matrix.appendItem(number); + } + + matrix[0].value = 1; + matrix[6].value = 1; + matrix[12].value = 1 - parseFloat(value) / 100; + matrix[18].value = 1; + + filter.appendChild(feColorMatrix); + svg.appendChild(filter); + div.appendChild(svg); + document.documentElement.appendChild(div); + + console.log(feColorMatrix.values.baseVal); + + this.elements.feColorMatrix = feColorMatrix; } else { - document.querySelector('#it-bluelight-filter feColorMatrix').setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 ' + (1 - parseFloat(value) / 100) + ' 0 0 0 0 0 1 0'); + this.elements.feColorMatrix.values.baseVal[12].value = 1 - parseFloat(value) / 100; } - } else if (document.querySelector('#it-bluelight')) { - document.querySelector('#it-bluelight').remove(); + + this.elements.bluelight = div; + } else if (this.elements.bluelight) { + this.elements.bluelight.remove(); } }; From d0d9f83e1de1d9bb5618b0500eefce97a59936f4 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 26 Jul 2021 16:41:48 +0300 Subject: [PATCH 0241/1224] Fixed previous commit --- manifest.json | 2 +- youtube-scripts.js | 23 ++++++++++++++--------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/manifest.json b/manifest.json index 637086e5b..5855042ba 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.335", + "version": "3.337", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 8b26930b2..436d92e22 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1353,15 +1353,20 @@ ImprovedTube.bluelight = function () { return false; } - if (this.isset(value) === false || typeof value !== 'number') { + if (this.isset(value) === false) { value = 0; } - if (value !== 0) { - var div = this.elements.bluelight || document.createElement('div'); + if (typeof value !== 'number') { + value = Number(value); + } - if (!this.elements.feColorMatrix) { - var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + console.log(value); + + if (value !== 0) { + if (!this.elements.bluelight || !this.elements.feColorMatrix) { + var div = this.elements.bluelight || document.createElement('div'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), filter = document.createElementNS('http://www.w3.org/2000/svg', 'filter'), feColorMatrix = document.createElementNS('http://www.w3.org/2000/svg', 'feColorMatrix'), matrix = feColorMatrix.values.baseVal; @@ -1391,16 +1396,16 @@ ImprovedTube.bluelight = function () { div.appendChild(svg); document.documentElement.appendChild(div); - console.log(feColorMatrix.values.baseVal); - this.elements.feColorMatrix = feColorMatrix; + this.elements.bluelight = div; } else { this.elements.feColorMatrix.values.baseVal[12].value = 1 - parseFloat(value) / 100; } - - this.elements.bluelight = div; } else if (this.elements.bluelight) { this.elements.bluelight.remove(); + + delete this.elements.bluelight; + delete this.elements.feColorMatrix; } }; From 8cccf799b0564beed9d089e6e70be01f27d33bb2 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 26 Jul 2021 17:15:03 +0300 Subject: [PATCH 0242/1224] Optimized "Dim" feature --- manifest.json | 2 +- youtube-scripts.js | 54 +++++++++++++++++++++------------------------- 2 files changed, 25 insertions(+), 31 deletions(-) diff --git a/manifest.json b/manifest.json index 5855042ba..de23ee0e2 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.337", + "version": "3.338", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 436d92e22..a8197ad2f 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -281,6 +281,8 @@ ImprovedTube.init = function () { } else if (node.id === 'movie_player') { ImprovedTube.elements.player = node; + ImprovedTube.dim(); + ImprovedTube.elements.player_left_controls = node.querySelector('.ytp-left-controls'); ImprovedTube.elements.player_thumbnail = node.querySelector('.ytp-cued-thumbnail-overlay-image'); @@ -1361,8 +1363,6 @@ ImprovedTube.bluelight = function () { value = Number(value); } - console.log(value); - if (value !== 0) { if (!this.elements.bluelight || !this.elements.feColorMatrix) { var div = this.elements.bluelight || document.createElement('div'), @@ -1426,43 +1426,37 @@ ImprovedTube.dim = function () { times.to += 24; } else if (times.to < times.from && current_time < times.to) { times.from = 0; - }; + } - if ( - this.isset(value) && value !== 0 && value !== '0' && - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) - ) { - if (!document.querySelector('#it-dim')) { - var container = document.createElement('div'); + if (this.storage.schedule === 'sunset_to_sunrise' || current_time < times.from && current_time >= times.to) { + return false; + } + + if (this.isset(value) === false) { + value = 0; + } - container.id = 'it-dim'; - container.style.opacity = parseInt(Number(value)) / 100 || 0; + if (typeof value !== 'number') { + value = Number(value); + } - document.documentElement.appendChild(container); - } else { - document.querySelector('#it-dim').style.opacity = parseInt(Number(value)) / 100 || 0; - } + if (value !== 0) { + if (!this.elements.dim) { + var div = document.createElement('div'); - if (!document.querySelector('#it-dim-player')) { - var container = document.createElement('div'); + div.id = 'it-dim'; + div.style.opacity = parseInt(Number(value)) / 100 || 0; - container.id = 'it-dim-player'; - container.style.opacity = parseInt(Number(value)) / 100 || 0; + document.documentElement.appendChild(div); - if (document.querySelector('.html5-video-player')) { - document.querySelector('.html5-video-player').appendChild(container); - } + this.elements.dim = div; } else { - document.querySelector('#it-dim-player').style.opacity = parseInt(Number(value)) / 100 || 0; - } - } else { - if (document.querySelector('#it-dim')) { - document.querySelector('#it-dim').remove(); + this.elements.dim.style.opacity = parseInt(Number(value)) / 100 || 0; } + } else if (this.elements.dim) { + this.elements.dim.remove(); - if (document.querySelector('#it-dim-player')) { - document.querySelector('#it-dim-player').remove(); - } + delete this.elements.dim; } }; From fa279be6552ef3660d15631a631d96f1e774e1cd Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 26 Jul 2021 17:20:22 +0300 Subject: [PATCH 0243/1224] Added more comments to content-scripts.js --- content-scripts.js | 55 ++++++++++++++++++++++++++++++++-------------- manifest.json | 2 +- 2 files changed, 40 insertions(+), 17 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index 3da72be84..ed7cb6fcc 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -1,19 +1,39 @@ /*------------------------------------------------------------------------------ >>> TABLE OF CONTENTS: -------------------------------------------------------------------------------- -1.0 Isset -2.0 Initialization -3.0 Change listener +1.0 Empty +2.0 Isset +3.0 Camelize +4.0 Attributes +5.0 Injection +6.0 Storage +7.0 Messages ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -1.0 ISSET +1.0 EMPTY +------------------------------------------------------------------------------*/ + +function empty(element) { + for (var i = element.childNodes.length - 1; i > -1; i--) { + element.childNodes[i].remove(); + } +} + + +/*------------------------------------------------------------------------------ +2.0 ISSET ------------------------------------------------------------------------------*/ function isset(variable) { return !(typeof variable === 'undefined' || variable === null); } + +/*------------------------------------------------------------------------------ +3.0 CAMELIZE +------------------------------------------------------------------------------*/ + function camelize(string) { return string.split('-').map(function (element, index) { if (index === 0) { @@ -24,6 +44,11 @@ function camelize(string) { }).join(''); } + +/*------------------------------------------------------------------------------ +4.0 ATTRIBUTES +------------------------------------------------------------------------------*/ + function attributes(items) { var whitelist = { 'youtube-home-page': true, @@ -81,15 +106,9 @@ function attributes(items) { } } -function empty(element) { - for (var i = element.childNodes.length - 1; i > -1; i--) { - element.childNodes[i].remove(); - } -} - /*------------------------------------------------------------------------------ -2.0 INITIALIZATION +5.0 INJECTION ------------------------------------------------------------------------------*/ function injectScript(string) { @@ -114,6 +133,11 @@ function injectStyles(string, id) { document.documentElement.appendChild(style); } + +/*------------------------------------------------------------------------------ +6.0 STORAGE +------------------------------------------------------------------------------*/ + chrome.storage.local.get('youtube_home_page', function (items) { var option = items.youtube_home_page; @@ -161,11 +185,6 @@ chrome.storage.local.get('youtube_home_page', function (items) { }); }); - -/*------------------------------------------------------------------------------ -3.0 CHANGE LISTENER -------------------------------------------------------------------------------*/ - chrome.storage.onChanged.addListener(function (changes) { for (var key in changes) { var value = changes[key].newValue, @@ -182,6 +201,10 @@ chrome.storage.onChanged.addListener(function (changes) { }); +/*------------------------------------------------------------------------------ +7.0 MESSAGES +------------------------------------------------------------------------------*/ + chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { if (request.action === 'focus') { injectScript('ImprovedTube.focus = true;'); diff --git a/manifest.json b/manifest.json index de23ee0e2..40e561a00 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.338", + "version": "3.339", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 29a5ad93d0c89b1316191c963345382eaa54d3ef Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 27 Jul 2021 17:21:57 +0300 Subject: [PATCH 0244/1224] Updated "Hide skip overlay" feature --- content-scripts.js | 1 + manifest.json | 2 +- youtube-scripts.js | 14 -------------- 3 files changed, 2 insertions(+), 15 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index ed7cb6fcc..2173b80cb 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -70,6 +70,7 @@ function attributes(items) { 'player-hide-endscreen': true, 'hide-scroll-for-details': true, 'always-show-progress-bar': true, + 'player-hide-skip-overlay': true, 'hide-details': true, 'hide-views-count': true, 'hide-date': true, diff --git a/manifest.json b/manifest.json index 40e561a00..66e7e6184 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.339", + "version": "3.341", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 9238c193e..a8197ad2f 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -17,7 +17,6 @@ 2.1.2 Forced theater mode 2.1.3 HD thumbnail 2.1.4 Always show progress bar - 2.1.5 Hide Skip Overlay 2.2 Sidebar 2.2.1 Livechat 2.2.2 Related videos @@ -169,7 +168,6 @@ ImprovedTube.init = function () { ImprovedTube.pageType(); ImprovedTube.videoPageUpdate(); ImprovedTube.blacklist(); - ImprovedTube.hideSkipOverlay(); //ImprovedTube.improvedtubeYoutubeSidebarButton(); //ImprovedTube.improvedtubeYoutubePlayerButtons(); }); @@ -1090,18 +1088,6 @@ ImprovedTube.alwaysShowProgressBar = function () { }; -/*------------------------------------------------------------------------------ -2.1.5 HIDE SKIP OVERLAY -------------------------------------------------------------------------------*/ - -ImprovedTube.hideSkipOverlay = function () { - if (this.storage.player_hide_skip_overlay === true) { - var overlays = document.querySelectorAll('.ytp-doubletap-ui'); - overlays[0].style.visibility = "hidden"; - } -}; - - /*------------------------------------------------------------------------------ 2.2 SIDEBAR ------------------------------------------------------------------------------*/ From 518b846c0a54cb080aa5f401399df755e8a0521f Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 27 Jul 2021 18:43:06 +0300 Subject: [PATCH 0245/1224] Upgraded blur/focus detection system --- background.js | 32 ++++++++++++++++++++++++++++++++ manifest.json | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/background.js b/background.js index 50eb29e03..cbf3a4c41 100644 --- a/background.js +++ b/background.js @@ -326,6 +326,38 @@ chrome.tabs.onActivated.addListener(function(activeInfo) { }); }); +chrome.windows.onFocusChanged.addListener(function(windowId) { + chrome.windows.getAll(function(windows) { + for (var i = 0, l = windows.length; i < l; i++) { + if (windows[i].focused === true) { + chrome.tabs.getAllInWindow(windows[i].id, function(tabs) { + if (tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].active && tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + action: 'focus' + }); + } + } + } + }); + } else { + chrome.tabs.getAllInWindow(windows[i].id, function(tabs) { + if (tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + action: 'blur' + }); + } + } + } + }); + } + } + }); +}); + /*-------------------------------------------------------------- 7.0 UNINSTALL URL diff --git a/manifest.json b/manifest.json index 66e7e6184..9802b63c0 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.341", + "version": "3.342", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 1e5a1ecbca79e2e261d788838320df35220f51f6 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 27 Jul 2021 19:23:49 +0300 Subject: [PATCH 0246/1224] Added new keyboard & mouse detection system --- content-scripts.js | 2 +- youtube-scripts.js | 91 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+), 1 deletion(-) diff --git a/content-scripts.js b/content-scripts.js index 2173b80cb..b2e2c1e0f 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -210,7 +210,7 @@ chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { if (request.action === 'focus') { injectScript('ImprovedTube.focus = true;'); } else if (request.action === 'blur') { - injectScript('ImprovedTube.focus = false;'); + injectScript('ImprovedTube.focus = false;document.dispatchEvent(new CustomEvent("improvedtube-blur"));'); } else if (request.action === 'improvedtube-pause') { injectScript('if (ImprovedTube.elements.player) {ImprovedTube.played_before_blur = ImprovedTube.elements.player.getPlayerState() === 1; ImprovedTube.elements.player.pauseVideo();}'); } diff --git a/youtube-scripts.js b/youtube-scripts.js index a8197ad2f..780a1a5ab 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -303,6 +303,8 @@ ImprovedTube.init = function () { childList: false, subtree: false }); + + document.dispatchEvent(new CustomEvent('improvedtube-player-loaded')); } else if (node.nodeName === 'VIDEO') { ImprovedTube.elements.video = node; } else if (node.id === 'chat') { @@ -3229,6 +3231,95 @@ ImprovedTube.shortcuts = function () { }); }; +ImprovedTube.shortcuts = function() { + var keyboard = { + alt: false, + ctrl: false, + shift: false, + keys: {} + }, + mouse = { + player: false, + wheel: 0 + }; + + function handler() { + console.log(keyboard, mouse); + } + + window.addEventListener('keydown', function(event) { + if (event.code === 'AltLeft' || event.code === 'AltRight') { + keyboard.alt = true; + } else if (event.code === 'ControlLeft' || event.code === 'ControlRight') { + keyboard.ctrl = true; + } else if (event.code === 'ShiftLeft' || event.code === 'ShiftRight') { + keyboard.shift = true; + } else { + keyboard.keys[event.keyCode] = true; + } + + mouse.wheel = 0; + + if (handler() === true) { + event.preventDefault(); + } + }, true); + + window.addEventListener('keyup', function(event) { + if (event.code === 'AltLeft' || event.code === 'AltRight') { + keyboard.alt = false; + } else if (event.code === 'ControlLeft' || event.code === 'ControlRight') { + keyboard.ctrl = false; + } else if (event.code === 'ShiftLeft' || event.code === 'ShiftRight') { + keyboard.shift = false; + } else { + delete keyboard.keys[event.keyCode]; + } + + mouse.wheel = 0; + }, true); + + window.addEventListener('wheel', function(event) { + if (event.deltaY > 0) { + mouse.wheel = 1; + } else { + mouse.wheel = -1; + } + + if (handler() === true) { + event.preventDefault(); + } + }, { + passive: false, + capture: true + }); + + document.addEventListener('improvedtube-player-loaded', function () { + ImprovedTube.elements.player.parentNode.addEventListener('mouseover', function() { + mouse.player = true; + mouse.wheel = 0; + }, true); + + ImprovedTube.elements.player.parentNode.addEventListener('mouseout', function() { + mouse.player = false; + mouse.wheel = 0; + }, true); + }); + + document.addEventListener('improvedtube-blur', function () { + keyboard.alt = false; + keyboard.ctrl = false; + keyboard.shift = false; + + for (var key in keyboard.keys) { + delete keyboard.keys[key]; + } + + mouse.player = false; + mouse.wheel = 0; + }); +}; + /*------------------------------------------------------------------------------ 8.0 BLACKLIST From e417361475a6ce0fab86f3d1344e7626c84dbad8 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 27 Jul 2021 20:03:09 +0300 Subject: [PATCH 0247/1224] Added caching of shortcut functions --- manifest.json | 2 +- youtube-scripts.js | 75 +++++++++++++++------------------------------- 2 files changed, 25 insertions(+), 52 deletions(-) diff --git a/manifest.json b/manifest.json index 9802b63c0..a0b21d470 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.342", + "version": "3.344", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 780a1a5ab..e0e5e9c58 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3179,56 +3179,6 @@ ImprovedTube.shortcuts = function () { } } } - - - /*------------------------------------------------------------------------- - 1.0 Keyboard - -------------------------------------------------------------------------*/ - - window.addEventListener('keydown', function (event) { - keys = { - key: event.key, - keyCode: event.keyCode, - shiftKey: event.shiftKey, - ctrlKey: event.ctrlKey, - altKey: event.altKey - }; - - start(); - }, true); - - window.addEventListener('keyup', function (event) { - keys = {}; - }, true); - - - /*------------------------------------------------------------------------- - 2.0 Mouse - -------------------------------------------------------------------------*/ - - window.addEventListener('mousemove', function (event) { - var path = event.composedPath(); - - hover = false; - - for (var i = 0, l = path.length; i < l; i++) { - if (path[i].classList && path[i].classList.contains('html5-video-player')) { - hover = true; - } - } - }, { - passive: false, - capture: true - }); - - window.addEventListener('wheel', function (event) { - wheel = event.deltaY; - - start('wheel'); - }, { - passive: false, - capture: true - }); }; ImprovedTube.shortcuts = function() { @@ -3241,13 +3191,18 @@ ImprovedTube.shortcuts = function() { mouse = { player: false, wheel: 0 - }; + }, + storage = {}; function handler() { console.log(keyboard, mouse); } window.addEventListener('keydown', function(event) { + if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || event.target.isContentEditable) { + return false; + } + if (event.code === 'AltLeft' || event.code === 'AltRight') { keyboard.alt = true; } else if (event.code === 'ControlLeft' || event.code === 'ControlRight') { @@ -3266,6 +3221,10 @@ ImprovedTube.shortcuts = function() { }, true); window.addEventListener('keyup', function(event) { + if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || event.target.isContentEditable) { + return false; + } + if (event.code === 'AltLeft' || event.code === 'AltRight') { keyboard.alt = false; } else if (event.code === 'ControlLeft' || event.code === 'ControlRight') { @@ -3318,6 +3277,20 @@ ImprovedTube.shortcuts = function() { mouse.player = false; mouse.wheel = 0; }); + + for (var name in this.storage) { + if (name.indexOf('shortcut_') === 0) { + if (this.isset(this.storage[name])) { + try { + storage['shortcut' + (name.replace(/_?shortcut_?/g, '').replace(/\_/g, '-')).split('-').map(function (element, index) { + return element[0].toUpperCase() + element.slice(1); + }).join('')] = JSON.parse(this.storage[name]); + } catch (err) {} + } + } + } + + console.log(storage); }; From 36d52062a95e3deb68f246a2b865a2c67378fce3 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 27 Jul 2021 20:39:11 +0300 Subject: [PATCH 0248/1224] Added backward compatibility for shortcuts --- manifest.json | 2 +- youtube-scripts.js | 40 ++++++++++++++++++++++++++++++++++++++-- 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index a0b21d470..a17400d3b 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.344", + "version": "3.345", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index e0e5e9c58..672e9d6c0 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3282,9 +3282,45 @@ ImprovedTube.shortcuts = function() { if (name.indexOf('shortcut_') === 0) { if (this.isset(this.storage[name])) { try { - storage['shortcut' + (name.replace(/_?shortcut_?/g, '').replace(/\_/g, '-')).split('-').map(function (element, index) { + var key = 'shortcut' + (name.replace(/_?shortcut_?/g, '').replace(/\_/g, '-')).split('-').map(function (element, index) { return element[0].toUpperCase() + element.slice(1); - }).join('')] = JSON.parse(this.storage[name]); + }).join(''), + old_value = JSON.parse(this.storage[name]), + new_value = { + keys: {} + }; + + if (old_value.altKey) { + new_value.alt = true; + } else { + new_value.alt = false; + } + + if (old_value.ctrlKey) { + new_value.ctrl = true; + } else { + new_value.ctrl = false; + } + + if (old_value.shiftKey) { + new_value.shift = true; + } else { + new_value.shift = false; + } + + if (['Alt', 'Control', 'Shift'].indexOf(old_value.key) === -1) { + new_value.keys[old_value.keyCode] = true; + } + + if (old_value.wheel > 0) { + new_value.wheel = 1; + } else if (old_value.wheel < 0) { + new_value.wheel = -1; + } else { + new_value.wheel = 0; + } + + storage[key] = new_value; } catch (err) {} } } From 90b07d28a0e8d498fce47aa1f9e2cc0136ed05a4 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 27 Jul 2021 20:43:34 +0300 Subject: [PATCH 0249/1224] Added new shortcut handler --- manifest.json | 2 +- youtube-scripts.js | 79 ++++++++++++++++++++-------------------------- 2 files changed, 35 insertions(+), 46 deletions(-) diff --git a/manifest.json b/manifest.json index a17400d3b..bfd9d34bd 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.345", + "version": "3.346", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 672e9d6c0..3a3e0c949 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3139,48 +3139,6 @@ ImprovedTube.showStatus = function (player, volume) { }, 500); }; -ImprovedTube.shortcuts = function () { - var self = this, - keys = {}, - wheel = 0, - hover = false; - - function start(type = 'keys') { - if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || event.target.isContentEditable) { - return false; - } - - for (var key in self.storage) { - if (key.indexOf('shortcut_') === 0) { - var function_name = 'shortcut' + (key.replace(/_?shortcut_?/g, '').replace(/\_/g, '-')).split('-').map(function (element, index) { - return element[0].toUpperCase() + element.slice(1); - }).join(''), - data = JSON.parse(self.storage[key]) || {}; - - if ( - (data.keyCode === keys.keyCode || !self.isset(data.keyCode)) && - (data.shiftKey === keys.shiftKey || !self.isset(data.shiftKey)) && - (data.ctrlKey === keys.ctrlKey || !self.isset(data.ctrlKey)) && - (data.altKey === keys.altKey || !self.isset(data.altKey)) && - ((data.wheel > 0) === (wheel > 0) || !self.isset(data.wheel)) && - ((hover === true && (data.wheel > 0) === (wheel > 0) && Object.keys(keys).length === 0 && keys.constructor === Object) || (self.isset(data.key) || self.isset(data.altKey) || self.isset(data.ctrlKey))) - ) { - if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { - event.preventDefault(); - event.stopPropagation(); - } - - ImprovedTube[function_name](); - - if (type === 'wheel' && self.isset(data.wheel) || type === 'keys') { - return false; - } - } - } - } - } -}; - ImprovedTube.shortcuts = function() { var keyboard = { alt: false, @@ -3195,7 +3153,40 @@ ImprovedTube.shortcuts = function() { storage = {}; function handler() { - console.log(keyboard, mouse); + var prevent = false; + + for (var key in storage) { + var shortcut = storage[key], + same_keys = true; + + if ( + keyboard.alt === shortcut.alt && + keyboard.ctrl === shortcut.ctrl && + keyboard.shift === shortcut.shift && + mouse.wheel === shortcut.wheel + ) { + for (var code in keyboard.keys) { + if (!shortcut.keys[code]) { + same_keys = false; + } + } + for (var code in shortcut.keys) { + if (!keyboard.keys[code]) { + same_keys = false; + } + } + + if (mouse.wheel === 0 || mouse.player === true) { + if (same_keys === true) { + ImprovedTube[key](); + + prevent = true; + } + } + } + } + + return prevent; } window.addEventListener('keydown', function(event) { @@ -3325,8 +3316,6 @@ ImprovedTube.shortcuts = function() { } } } - - console.log(storage); }; From 3c410b4f88084148b06e614d664bdde8b1b16f3e Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 14:52:53 +0300 Subject: [PATCH 0250/1224] Disabled calculateCurrentPlayerSize_ if "Player size" feature is not enabled --- manifest.json | 2 +- youtube-scripts.js | 47 +++++++++++++++++++++++++--------------------- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/manifest.json b/manifest.json index bfd9d34bd..0e358d8f1 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.346", + "version": "3.347", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 3a3e0c949..dff8fda91 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -201,33 +201,38 @@ ImprovedTube.init = function () { ImprovedTube.elements.ytd_player = document.querySelector('ytd-player'); - node.calculateCurrentPlayerSize_ = function() { - if (!this.theater && ImprovedTube.elements.player) { - if (this.updateStyles) { - this.updateStyles({ - '--ytd-watch-flexy-width-ratio': 1, - '--ytd-watch-flexy-height-ratio': 0.5625 - }); - - this.updateStyles({ - '--ytd-watch-width-ratio': 1, - '--ytd-watch-height-ratio': 0.5625 - }); + if ( + ImprovedTube.storage.player_size && + ImprovedTube.storage.player_size !== 'do_not_change' + ) { + node.calculateCurrentPlayerSize_ = function() { + if (!this.theater && ImprovedTube.elements.player) { + if (this.updateStyles) { + this.updateStyles({ + '--ytd-watch-flexy-width-ratio': 1, + '--ytd-watch-flexy-height-ratio': 0.5625 + }); + + this.updateStyles({ + '--ytd-watch-width-ratio': 1, + '--ytd-watch-height-ratio': 0.5625 + }); + } + + return { + width: ImprovedTube.elements.player.offsetWidth, + height: Math.round(ImprovedTube.elements.player.offsetWidth / (16 / 9)) + }; } return { - width: ImprovedTube.elements.player.offsetWidth, - height: Math.round(ImprovedTube.elements.player.offsetWidth / (16 / 9)) + width: NaN, + height: NaN }; - } - - return { - width: NaN, - height: NaN }; - }; - node.calculateNormalPlayerSize_ = node.calculateCurrentPlayerSize_; + node.calculateNormalPlayerSize_ = node.calculateCurrentPlayerSize_; + } new MutationObserver(function(mutationList) { for (var i = 0, l = mutationList.length; i < l; i++) { From 6d01529e2d5fac201e0ffbbd2456cc5c6d320af6 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 14:56:14 +0300 Subject: [PATCH 0251/1224] Fixed "Collapse of subscription sections" feature --- manifest.json | 2 +- youtube-scripts.js | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/manifest.json b/manifest.json index 0e358d8f1..199e5f66f 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.347", + "version": "3.348", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index dff8fda91..f25fb3975 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -740,9 +740,10 @@ ImprovedTube.youtubeHomePage = function (node) { ImprovedTube.collapseOfSubscriptionSections = function (node) { if (this.storage.collapse_of_subscription_sections === true) { if (location.href.indexOf('/feed/subscriptions') !== -1) { - if (!node.querySelector('.it-section-collapse')) { - var section_title = node.querySelector('h2'), - button = document.createElement('div'); + var section_title = node.querySelector('h2'); + + if (!node.querySelector('.it-section-collapse') && section_title) { + var button = document.createElement('div'); button.className = 'it-section-collapse'; button.innerHTML = ''; From b845eee3d3c3a43c614d44d1569ce9612c7a375d Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 15:52:52 +0300 Subject: [PATCH 0252/1224] Fixed & optimized video quality shortcuts --- youtube-scripts.js | 132 +++++++++++++++++---------------------------- 1 file changed, 50 insertions(+), 82 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index f25fb3975..5af0f028a 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2586,100 +2586,51 @@ ImprovedTube.channelDefaultTab = function (a) { # QUALITY ------------------------------------------------------------------------------*/ -ImprovedTube.shortcutAuto = function () { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('auto'); - player.setPlaybackQuality('auto'); - } -}; - -ImprovedTube.shortcut_240p = function () { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('small'); - player.setPlaybackQuality('small'); - } -}; - -ImprovedTube.shortcut_360p = function () { - var player = document.querySelector('#movie_player'); +ImprovedTube.shortcutQuality = function (key) { + if (this.elements.player) { + var value = key.replace('shortcut', '').toLowerCase(); - if (player) { - player.setPlaybackQualityRange('medium'); - player.setPlaybackQuality('medium'); - } -}; - -ImprovedTube.shortcut_480p = function () { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('large'); - player.setPlaybackQuality('large'); - } -}; - -ImprovedTube.shortcut_720p = function () { - var player = document.querySelector('#movie_player'); - - if (player) { - player.setPlaybackQualityRange('hd720'); - player.setPlaybackQuality('hd720'); - } -}; - -ImprovedTube.shortcut_1080p = function () { - var player = document.querySelector('#movie_player'); + if (value === '240p') { + value = 'small'; + } - if (player) { - player.setPlaybackQualityRange('hd1080'); - player.setPlaybackQuality('hd1080'); - } -}; + if (value === '360p') { + value = 'medium'; + } -ImprovedTube.shortcut_1440p = function () { - var player = document.querySelector('#movie_player'); + if (value === '480p') { + value = 'large'; + } - if (player) { - player.setPlaybackQualityRange('hd1440'); - player.setPlaybackQuality('hd1440'); - } -}; + if (value === '720p') { + value = 'hd720'; + } -ImprovedTube.shortcut_2160p = function () { - var player = document.querySelector('#movie_player'); + if (value === '1080p') { + value = 'hd1080'; + } - if (player) { - player.setPlaybackQualityRange('hd2160'); - player.setPlaybackQuality('hd2160'); - } -}; + if (value === '1440p') { + value = 'hd1440'; + } -ImprovedTube.shortcut_2880p = function () { - var player = document.querySelector('#movie_player'); + if (value === '2160p') { + value = 'hd2160'; + } - if (player) { - player.setPlaybackQualityRange('hd2880'); - player.setPlaybackQuality('hd2880'); - } -}; + if (value === '2880p') { + value = 'hd2880'; + } -ImprovedTube.shortcut_4320p = function () { - var player = document.querySelector('#movie_player'); + if (value === '4320p') { + value = 'highres'; + } - if (player) { - player.setPlaybackQualityRange('highres'); - player.setPlaybackQuality('highres'); + this.elements.player.setPlaybackQualityRange(value); + this.elements.player.setPlaybackQuality(value); } }; -ImprovedTube.shortcutQuality = function () { - -}; - /*------------------------------------------------------------------------------ # PICTURE IN PICTURE @@ -3184,7 +3135,22 @@ ImprovedTube.shortcuts = function() { if (mouse.wheel === 0 || mouse.player === true) { if (same_keys === true) { - ImprovedTube[key](); + if ([ + 'shortcutAuto', + 'shortcut240p', + 'shortcut360p', + 'shortcut480p', + 'shortcut720p', + 'shortcut1080p', + 'shortcut1440p', + 'shortcut2160p', + 'shortcut2880p', + 'shortcut4320p' + ].indexOf(key) !== -1) { + ImprovedTube['shortcutQuality'](key); + } else { + ImprovedTube[key](); + } prevent = true; } @@ -3322,6 +3288,8 @@ ImprovedTube.shortcuts = function() { } } } + + console.log(storage); }; From 2156f024afdc2a4830c2198f77ad77d026109591 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 15:54:14 +0300 Subject: [PATCH 0253/1224] Optimized "Picture in Picture" shortcut --- youtube-scripts.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 5af0f028a..a2c2ec56a 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2637,10 +2637,8 @@ ImprovedTube.shortcutQuality = function (key) { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutPictureInPicture = function () { - var video = document.querySelector('#movie_player video'); - - if (video) { - video.requestPictureInPicture(); + if (this.elements.video) { + this.elements.video.requestPictureInPicture(); } }; From 7fb4fe08d918de40b2d02d6977e422113453f612 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 15:56:01 +0300 Subject: [PATCH 0254/1224] Optimized "Toggle controls" shortcut --- youtube-scripts.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index a2c2ec56a..4b87621b7 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2648,15 +2648,13 @@ ImprovedTube.shortcutPictureInPicture = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutToggleControls = function () { - var player = document.querySelector('.html5-video-player'); - - if (player && player.hideControls && player.showControls) { - ImprovedTube.storage.player_hide_controls = !ImprovedTube.storage.player_hide_controls; + if (this.elements.player) { + this.storage.player_hide_controls = !this.storage.player_hide_controls; - if (ImprovedTube.storage.player_hide_controls === true) { - player.hideControls(); + if (this.storage.player_hide_controls) { + this.elements.player.hideControls(); } else { - player.showControls(); + this.elements.player.showControls(); } } }; From a429c21acb996a8c7a0b9715c7954fd8dafa2c2a Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 15:57:21 +0300 Subject: [PATCH 0255/1224] Fixed & optimized "Play / pause" shortcut --- youtube-scripts.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 4b87621b7..fcde273df 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2665,13 +2665,11 @@ ImprovedTube.shortcutToggleControls = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutPlayPause = function () { - var video = document.querySelector('#movie_player video'); - - if (video) { - if (video.paused) { - video.play(); + if (this.elements.player) { + if (this.elements.video.paused) { + this.elements.player.playVideo(); } else { - video.pause(); + this.elements.player.pauseVideo(); } } }; From 879fd05fd9fea36ec433a5ee32fb8a1d45d74eb6 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 15:57:39 +0300 Subject: [PATCH 0256/1224] Fixed & optimized "Stop" shortcut --- youtube-scripts.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index fcde273df..87a379147 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2680,10 +2680,8 @@ ImprovedTube.shortcutPlayPause = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutStop = function () { - var player = document.querySelector('#movie_player'); - - if (player) { - player.stopVideo(); + if (this.elements.player) { + this.elements.player.stopVideo(); } }; From 2e7592fcb01d38fa1d606d154113eb24b58a151e Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 15:58:25 +0300 Subject: [PATCH 0257/1224] Optimized "Next video" shortcut --- youtube-scripts.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 87a379147..eae371984 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2705,10 +2705,8 @@ ImprovedTube.shortcutToggleAutoplay = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutNextVideo = function () { - var player = document.querySelector('#movie_player'); - - if (player && player.nextVideo) { - player.nextVideo(); + if (this.elements.player) { + this.elements.player.nextVideo(); } }; From d653a1cc5bf4112b5dbb8afe2890f57fe30e0858 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 15:59:05 +0300 Subject: [PATCH 0258/1224] Optimized "Previous video" shortcut --- youtube-scripts.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index eae371984..fc4b14c4d 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2716,10 +2716,8 @@ ImprovedTube.shortcutNextVideo = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutPrevVideo = function () { - var player = document.querySelector('#movie_player'); - - if (player && player.previousVideo) { - player.previousVideo(); + if (this.elements.player) { + this.elements.player.previousVideo(); } }; From 5280adeac0fa57e9586b01cbc817dfaaf0bf8981 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 15:59:25 +0300 Subject: [PATCH 0259/1224] Optimized "Seek backward" shortcut --- youtube-scripts.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index fc4b14c4d..a3626767d 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2727,10 +2727,8 @@ ImprovedTube.shortcutPrevVideo = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutSeekBackward = function () { - var player = document.querySelector('#movie_player'); - - if (player && player.seekBy) { - player.seekBy(-10); + if (this.elements.player) { + this.elements.player.seekBy(-10); } }; From 6602dcf98c61f54f917942016145c48b5e1981d2 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 15:59:48 +0300 Subject: [PATCH 0260/1224] Optimized "Seek forward" shortcut --- youtube-scripts.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index a3626767d..a513bae9d 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2738,10 +2738,8 @@ ImprovedTube.shortcutSeekBackward = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutSeekForward = function () { - var player = document.querySelector('#movie_player'); - - if (player && player.seekBy) { - player.seekBy(10); + if (this.elements.player) { + this.elements.player.seekBy(10); } }; From d23c541ba79b8438a4bca228cdc7f669b52c5da4 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 16:07:23 +0300 Subject: [PATCH 0261/1224] Optimized "Seek next chapter" shortcut --- youtube-scripts.js | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index a513bae9d..8d020f8ce 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2749,25 +2749,35 @@ ImprovedTube.shortcutSeekForward = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutSeekNextChapter = function () { - const player = document.querySelector("#movie_player"); - const chapterDiv = document.querySelector(".ytp-chapters-container"); - const progressBarWidth = parseInt(document.querySelector(".ytp-chrome-bottom").style.width); + var player = this.elements.player; + + if (player) { + var duration = player.getDuration(), + current_time = player.getCurrentTime(), + chapters_container = player.querySelector('.ytp-chapters-container'), + progress_bar_width = player.querySelector('.ytp-chrome-bottom').offsetWidth, + current_width = 0; + + if (!player || !player.seekBy || !progress_bar_width || !chapters_container || !chapters_container.children) { + return; + } - if (!player || !player.seekBy || !progressBarWidth || - !chapterDiv || !chapterDiv.children) { - return; - } + var chapters = chapters_container.children; - let curWidth = 0; + for (var i = 0, l = chapters.length; i < l; i++) { + var width = chapters[i].offsetWidth; - for (let child of chapterDiv.children) { - if ((curWidth - 2) / progressBarWidth <= player.getCurrentTime() / player.getDuration() && - (curWidth - 2 + parseInt(child.style.width)) / progressBarWidth >= player.getCurrentTime() / player.getDuration()) { //if child is current chapter - player.seekTo(((parseInt(child.style.width) + curWidth) / progressBarWidth) * player.getDuration()); - return; - } + if ( + (current_width - 2) / progress_bar_width <= current_time / duration && + (current_width - 2 + width) / progress_bar_width >= current_time / duration + ) { + player.seekTo(((width + current_width) / progress_bar_width) * duration); - curWidth += parseInt(child.style.width) + 2; + return; + } + + current_width += width + 2; + } } }; From 060e5b965b54ca6455f5cc2b98826d49c6a2788a Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 16:13:56 +0300 Subject: [PATCH 0262/1224] Optimized "Seek previous chapter" shortcut --- youtube-scripts.js | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 8d020f8ce..7a10f3680 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2787,31 +2787,35 @@ ImprovedTube.shortcutSeekNextChapter = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutSeekPreviousChapter = function () { - const player = document.querySelector("#movie_player"); - const chapterDiv = document.querySelector(".ytp-chapters-container"); - const progressBarWidth = parseInt(document.querySelector(".ytp-chrome-bottom").style.width); - - if (!player || !player.seekBy || !progressBarWidth || - !chapterDiv || !chapterDiv.children) { - return; - } - - let curWidth = 0; + var player = this.elements.player; + + if (player) { + var duration = player.getDuration(), + current_time = player.getCurrentTime(), + chapters_container = player.querySelector('.ytp-chapters-container'), + progress_bar_width = player.querySelector('.ytp-chrome-bottom').offsetWidth, + current_width = 0; - for (let i in chapterDiv.children) { - if (i === 0) { - player.seekTo(0); + if (!player || !player.seekBy || !progress_bar_width || !chapters_container || !chapters_container.children) { return; } - let child = chapterDiv.children[i]; - if ((curWidth + 2) / progressBarWidth <= player.getCurrentTime() / player.getDuration() && - (curWidth + 2 + parseInt(child.style.width)) / progressBarWidth >= player.getCurrentTime() / player.getDuration()) { //if child is current chapter - player.seekTo(((curWidth - 2) / progressBarWidth) * player.getDuration()); - return; - } + var chapters = chapters_container.children; - curWidth += parseInt(child.style.width) + 2; + for (var i = 0, l = chapters.length; i < l; i++) { + var width = chapters[i].offsetWidth; + + if ( + (current_width + 2) / progress_bar_width <= current_time / duration && + (current_width + 2 + width) / progress_bar_width >= current_time / duration + ) { + player.seekTo(((current_width - 2) / progress_bar_width) * duration); + + return; + } + + current_width += width + 2; + } } }; From 9e9ff828ed03288d7217031edba5d3f9f36866a4 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 16:14:50 +0300 Subject: [PATCH 0263/1224] Optimized "Increase volume" shortcut --- youtube-scripts.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 7a10f3680..5ba7d752b 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2825,13 +2825,13 @@ ImprovedTube.shortcutSeekPreviousChapter = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutIncreaseVolume = function () { - var player = document.querySelector('.html5-video-player'); - - if (player && player.setVolume && player.getVolume) { + var player = this.elements.player; + + if (player) { player.setVolume(player.getVolume() + (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); - } - ImprovedTube.showStatus(player, player.getVolume()); + ImprovedTube.showStatus(player, player.getVolume()); + } }; From 498cd3f3016979ca95fbba8a9fc2857c73eb1972 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 16:15:10 +0300 Subject: [PATCH 0264/1224] Optimized "Decrease volume" shortcut --- youtube-scripts.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 5ba7d752b..914a691c5 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2826,7 +2826,7 @@ ImprovedTube.shortcutSeekPreviousChapter = function () { ImprovedTube.shortcutIncreaseVolume = function () { var player = this.elements.player; - + if (player) { player.setVolume(player.getVolume() + (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); @@ -2840,13 +2840,13 @@ ImprovedTube.shortcutIncreaseVolume = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutDecreaseVolume = function () { - var player = document.querySelector('.html5-video-player'); - - if (player && player.setVolume && player.getVolume) { + var player = this.elements.player; + + if (player) { player.setVolume(player.getVolume() - (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); - } - ImprovedTube.showStatus(player, player.getVolume()); + ImprovedTube.showStatus(player, player.getVolume()); + } }; From 1b74b71b4d451d58771b3d1550bdd4e6051626f8 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 16:15:38 +0300 Subject: [PATCH 0265/1224] Optimized "Screenshot" shortcut --- youtube-scripts.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 914a691c5..38d4fca8c 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2855,11 +2855,7 @@ ImprovedTube.shortcutDecreaseVolume = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutScreenshot = function () { - var player = document.querySelector('.html5-video-player'); - - if (player && player.setVolume && player.getVolume) { - ImprovedTube.screenshot(); - } + this.screenshot(); }; From fe25b7c57e08919d4349780c17e6e41c357e93d1 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 16:17:37 +0300 Subject: [PATCH 0266/1224] Optimized "Increase playback speed" shortcut --- youtube-scripts.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 38d4fca8c..e6ae94081 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2864,16 +2864,17 @@ ImprovedTube.shortcutScreenshot = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutIncreasePlaybackSpeed = function () { - var video = document.querySelector('#movie_player video'); + var video = this.elements.video, + value = Number(ImprovedTube.storage.shortcut_playback_speed_step) || .05; - if (video && video.playbackRate) { - if (video.playbackRate < 1 && video.playbackRate > 1 - ImprovedTube.storage.shortcut_playback_speed_step) { + if (video) { + if (video.playbackRate < 1 && video.playbackRate > 1 - value) { video.playbackRate = 1 - } else { // aligning at 1.0 independent of minimum - - video.playbackRate = Math.max(Number((video.playbackRate + Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); + } else { + video.playbackRate = Math.max(video.playbackRate + value, .1); } - ImprovedTube.showStatus(document.querySelector('#movie_player'), video.playbackRate); + + ImprovedTube.showStatus(this.elements.player, video.playbackRate); } }; From 485c6f0cf237e62c628df63755c2637cc989f0da Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 16:18:21 +0300 Subject: [PATCH 0267/1224] Optimized "Decrease playback speed" shortcut --- youtube-scripts.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index e6ae94081..4926d3158 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2884,16 +2884,17 @@ ImprovedTube.shortcutIncreasePlaybackSpeed = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutDecreasePlaybackSpeed = function () { - var video = document.querySelector('#movie_player video'); - - if (video && video.playbackRate) { - if (video.playbackRate < 0.15 + ImprovedTube.storage.shortcut_playback_speed_step) { - video.playbackRate = (video.playbackRate * 0.7).toFixed(3) - } else { // slow down near minimum + var video = this.elements.video, + value = Number(ImprovedTube.storage.shortcut_playback_speed_step) || .05; - video.playbackRate = Math.max(Number((video.playbackRate - Number(ImprovedTube.storage.shortcut_playback_speed_step || .05)).toFixed(2)), .1); + if (video) { + if (video.playbackRate < .15 + value) { + video.playbackRate = 1 + } else { + video.playbackRate = Math.max(video.playbackRate - value, .1); } - ImprovedTube.showStatus(document.querySelector('#movie_player'), video.playbackRate); + + ImprovedTube.showStatus(this.elements.player, video.playbackRate); } }; From 87cad3822dc85b9b33e984f49ca34bea7628f6cb Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 16:19:01 +0300 Subject: [PATCH 0268/1224] Optimized "Activate fullscreen" shortcut --- youtube-scripts.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 4926d3158..f8df849c7 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2906,7 +2906,7 @@ ImprovedTube.shortcutDecreasePlaybackSpeed = function () { ImprovedTube.shortcutGoToSearchBox = function () { var search = document.querySelector('#search'); - if (search && search.focus) { + if (search) { search.focus(); } }; @@ -2917,10 +2917,8 @@ ImprovedTube.shortcutGoToSearchBox = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutActivateFullscreen = function () { - var player = document.querySelector('#movie_player'); - - if (player && player.toggleFullscreen) { - player.toggleFullscreen(); + if (this.elements.player) { + this.elements.player.toggleFullscreen(); } }; From 848d70178d6cf8456518ff8e45c6c3061e66a055 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 16:19:45 +0300 Subject: [PATCH 0269/1224] Optimized "Stats for nerds" shortcut --- youtube-scripts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index f8df849c7..2060cb296 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3030,7 +3030,7 @@ ImprovedTube.shortcutCustomMiniPlayer = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutStatsForNerds = function () { - var player = document.querySelector('.html5-video-player'); + var player = this.elements.player; if (player.isVideoInfoVisible()) { player.hideVideoInfo(); From 91c53ec574b659931ffe0160211fd20e31704a41 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 16:20:31 +0300 Subject: [PATCH 0270/1224] Minor changes in shortcuts --- youtube-scripts.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 2060cb296..862053691 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3050,7 +3050,7 @@ ImprovedTube.shortcutToggleCards = function () { return; } - document.documentElement.setAttribute("it-player-hide-cards", true); + document.documentElement.setAttribute('it-player-hide-cards', true); }; @@ -3059,7 +3059,7 @@ ImprovedTube.shortcutToggleCards = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutPopupPlayer = function () { - ImprovedTube.createPopUpWindow(); + this.createPopUpWindow(); }; From a028fbc0e11379a5390bab3dd6065f5f0bc02d66 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 16:33:52 +0300 Subject: [PATCH 0271/1224] Optimized "showStatus()" --- content-styles.css | 1 + manifest.json | 2 +- youtube-scripts.js | 29 +++++++++++++---------------- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/content-styles.css b/content-styles.css index d90a14125..9b65a5a25 100644 --- a/content-styles.css +++ b/content-styles.css @@ -3378,6 +3378,7 @@ html[it-channel-hide-featured-content=true] #secondary ytd-browse-secondary-cont right: 3rem; color: #0ff; text-shadow: 1px 1px 2px #000; + z-index: 3000; } diff --git a/manifest.json b/manifest.json index 199e5f66f..557636da9 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.348", + "version": "3.368", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 862053691..9bf9ce18c 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2830,7 +2830,7 @@ ImprovedTube.shortcutIncreaseVolume = function () { if (player) { player.setVolume(player.getVolume() + (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); - ImprovedTube.showStatus(player, player.getVolume()); + ImprovedTube.showStatus(player.getVolume()); } }; @@ -2845,7 +2845,7 @@ ImprovedTube.shortcutDecreaseVolume = function () { if (player) { player.setVolume(player.getVolume() - (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); - ImprovedTube.showStatus(player, player.getVolume()); + ImprovedTube.showStatus(player.getVolume()); } }; @@ -2874,7 +2874,7 @@ ImprovedTube.shortcutIncreasePlaybackSpeed = function () { video.playbackRate = Math.max(video.playbackRate + value, .1); } - ImprovedTube.showStatus(this.elements.player, video.playbackRate); + ImprovedTube.showStatus(video.playbackRate); } }; @@ -2894,7 +2894,7 @@ ImprovedTube.shortcutDecreasePlaybackSpeed = function () { video.playbackRate = Math.max(video.playbackRate - value, .1); } - ImprovedTube.showStatus(this.elements.player, video.playbackRate); + ImprovedTube.showStatus(video.playbackRate); } }; @@ -3067,27 +3067,24 @@ ImprovedTube.shortcutPopupPlayer = function () { # SHORTCUTS ------------------------------------------------------------------------------*/ -ImprovedTube.showStatus = function (player, volume) { - if (!player.querySelector('#it-status')) { - var element = document.createElement('div'); +ImprovedTube.showStatus = function (value) { + if (!this.elements.status) { + this.elements.status = document.createElement('div'); - element.id = 'it-status'; - element.innerHTML = volume; - - document.querySelector('.html5-video-container').appendChild(element); - } else { - player.querySelector('#it-status').innerHTML = volume; + this.elements.status.id = 'it-status'; } + this.elements.status.textContent = value; + if (ImprovedTube.status_timer) { clearTimeout(ImprovedTube.status_timer); } ImprovedTube.status_timer = setTimeout(function () { - if (player.querySelector('#it-status')) { - player.querySelector('#it-status').remove(); - } + ImprovedTube.elements.status.remove(); }, 500); + + this.elements.player.appendChild(this.elements.status); }; ImprovedTube.shortcuts = function() { From 9205d6a9624c9b3ab404adf27c239cd553d41bc3 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 28 Jul 2021 23:22:05 +0300 Subject: [PATCH 0272/1224] Fixed shortcuts backward compatibility --- manifest.json | 2 +- youtube-scripts.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 557636da9..3709d9ad5 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.368", + "version": "3.369", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 9bf9ce18c..24d314752 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3262,7 +3262,7 @@ ImprovedTube.shortcuts = function() { new_value.shift = false; } - if (['Alt', 'Control', 'Shift'].indexOf(old_value.key) === -1) { + if (old_value.key && ['Alt', 'Control', 'Shift'].indexOf(old_value.key) === -1) { new_value.keys[old_value.keyCode] = true; } From acb37651028c80f65c5aad5d1b5dc9d4e8801a07 Mon Sep 17 00:00:00 2001 From: raszpl Date: Thu, 29 Jul 2021 11:30:02 +0200 Subject: [PATCH 0273/1224] Added Watched Videos History Management - ability to disable tracking and delete History --- _locales/en/messages.json | 9 ++++++ _locales/pl/messages.json | 9 ++++++ popup.js | 65 ++++++++++++++++++++++++++++++++++++++- youtube-scripts.js | 18 ++++++----- 4 files changed, 92 insertions(+), 9 deletions(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index c809b788d..7254fc79d 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -212,6 +212,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "Delete YouTube cookies" }, @@ -764,6 +767,9 @@ "themes": { "message": "Themes" }, + "thisWillRemoveAllWatchedVideos": { + "message": "This will remove all watched videos." + }, "thisWillRemoveAllCookies": { "message": "This will remove all cookies." }, @@ -800,6 +806,9 @@ "topChat": { "message": "Top chat" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "Trailer autoplay" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 417bdf585..a5eff9b50 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -212,6 +212,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Usuń obejrzane wideo" + }, "deleteYoutubeCookies": { "message": "Usuń ciasteczka YouTube" }, @@ -764,6 +767,9 @@ "themes": { "message": "Motywy" }, + "thisWillRemoveAllWatchedVideos": { + "message": "To usunie wszystkie obejrzane wideo." + }, "thisWillRemoveAllCookies": { "message": "To usunie wszystkie ciasteczka." }, @@ -800,6 +806,9 @@ "topChat": { "message": "Czat na górze" }, + "trackWatchedVideos": { + "message": "Śledź obejrzane wideo" + }, "trailerAutoplay": { "message": "Autoodtwarzanie zwiastunów" }, diff --git a/popup.js b/popup.js index 967c9f180..89d3af1f0 100644 --- a/popup.js +++ b/popup.js @@ -2458,7 +2458,70 @@ skeleton.main.section.general = { }, mark_watched_videos: { type: 'switch', - label: 'markWatchedVideos' + label: 'markWatchedVideos', + onclick: function () { + if (document.querySelector('.satus-switch > input[data-storage-key="mark_watched_videos"]:checked') && document.querySelector('.satus-switch > input[data-storage-key="track_watched_videos"]:not(:checked)')) { + document.querySelector('.satus-switch > input[data-storage-key="track_watched_videos"]').click(); + } + } + }, + track_watched_videos: { + type: 'switch', + label: 'trackWatchedVideos' + }, + delete_watched_videos: { + type: 'button', + label: 'deleteWatchedVideos', + onrender: function () { + this.firstChild.innerText += ' (' + (satus.storage.watched ? Object.keys(satus.storage.watched).length : 0) + ')'; + }, + onclick: function () { + var component = this; + satus.render({ + type: 'dialog', + class: 'satus-dialog--confirm', + + message: { + type: 'text', + label: 'thisWillRemoveAllWatchedVideos', + style: { + 'width': '100%', + 'opacity': '.8' + } + }, + section: { + type: 'section', + class: 'controls', + style: { + 'justify-content': 'flex-end', + 'display': 'flex' + }, + + cancel: { + type: 'button', + label: 'cancel', + onclick: function () { + var scrim = document.querySelectorAll('.satus-dialog__scrim'); + + scrim[scrim.length - 1].click(); + } + }, + accept: { + type: 'button', + label: 'accept', + onclick: function () { + var scrim = document.querySelectorAll('.satus-dialog__scrim'); + + satus.storage.watched = {}; + satus.storage.set('watched', satus.storage.watched); + component.firstChild.innerText = component.firstChild.innerText.replace(/\d+/,0); + + scrim[scrim.length - 1].click(); + } + } + } + }); + } }, only_one_player_instance_playing: { type: 'switch', diff --git a/youtube-scripts.js b/youtube-scripts.js index 24d314752..b6666cdcd 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -433,14 +433,16 @@ ImprovedTube.videoPageUpdate = function () { if (document.documentElement.dataset.pageType === 'video') { var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); - if (video_id) { - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'set', - id: video_id, - title: document.title - } - })); + if (this.storage.track_watched_videos === true) { + if (video_id) { + document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { + detail: { + action: 'set', + id: video_id, + title: document.title + } + })); + } } this.initialVideoUpdateDone = true; From f5b041f9afa0539491f7262cb2a1863665dbfe22 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 29 Jul 2021 14:33:57 +0300 Subject: [PATCH 0274/1224] Custom player buttons: "innerHTML" replaced with objects --- manifest.json | 2 +- youtube-scripts.js | 44 ++++++++++++++++++++++++++++++++++++++------ 2 files changed, 39 insertions(+), 7 deletions(-) diff --git a/manifest.json b/manifest.json index 3709d9ad5..c56cee3a7 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.369", + "version": "3.370", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index b6666cdcd..cf99e4240 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -671,8 +671,8 @@ ImprovedTube.createPlayerButton = function (node, options) { button.id = options.id; } - if (options.html) { - button.innerHTML = options.html; + if (options.child) { + button.appendChild(options.child); } button.style.opacity = options.opacity || '.5'; @@ -2227,9 +2227,17 @@ ImprovedTube.playerScreenshotButton = function () { var node = document.querySelector('.html5-video-player'); } + var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'); + + svg.appendChild(path); + this.createPlayerButton(node, { id: 'it-screenshot-button', - html: '', + child: svg, opacity: 1, onclick: ImprovedTube.screenshot, title: 'Screenshot' @@ -2250,9 +2258,17 @@ ImprovedTube.playerRepeatButton = function (node) { var node = document.querySelector('.html5-video-player'); } + var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z'); + + svg.appendChild(path); + this.createPlayerButton(node, { id: 'it-repeat-button', - html: '', + child: svg, onclick: function () { if (node.querySelector('video').hasAttribute('loop')) { node.querySelector('video').removeAttribute('loop'); @@ -2287,9 +2303,17 @@ ImprovedTube.playerRotateButton = function () { var node = document.querySelector('.html5-video-player'); } + var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M15.55 5.55L11 1v3.07a8 8 0 0 0 0 15.86v-2.02a6 6 0 0 1 0-11.82V10l4.55-4.45zM19.93 11a7.9 7.9 0 0 0-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02a7.92 7.92 0 0 0 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41A7.9 7.9 0 0 0 19.93 13h-2.02a5.9 5.9 0 0 1-1.02 2.48z'); + + svg.appendChild(path); + this.createPlayerButton(node, { id: 'it-rotate-button', - html: '', + child: svg, opacity: 1, onclick: function () { var video = node.querySelector('video'), @@ -2342,9 +2366,17 @@ ImprovedTube.playerPopupButton = function () { var node = document.querySelector('.html5-video-player'); } + var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M19 7h-8v6h8V7zm2-4H3C2 3 1 4 1 5v14c0 1 1 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 16H3V5h18v14z'); + + svg.appendChild(path); + this.createPlayerButton(node, { id: 'it-popup-player-button', - html: '', + child: svg, opacity: 1, onclick: function () { node.pauseVideo(); From 28f9e1180f91d116fa032cbc7f1edcdb3155f45a Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 29 Jul 2021 15:09:12 +0300 Subject: [PATCH 0275/1224] Optimized all custom player buttons --- manifest.json | 2 +- youtube-scripts.js | 116 +++++++++++++++++++++------------------------ 2 files changed, 56 insertions(+), 62 deletions(-) diff --git a/manifest.json b/manifest.json index c56cee3a7..26c73ba07 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.370", + "version": "3.371", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index cf99e4240..0a320625b 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -105,6 +105,7 @@ The variable "ImprovedTube" is used on the YouTube side. var ImprovedTube = { elements: `{ + buttons: {}, masthead: {}, playlist: {}, livechat: {}, @@ -631,8 +632,8 @@ ImprovedTube.setCookie = function (name, value) { document.cookie = name + '=' + value + '; path=/; domain=.youtube.com; expires=' + date.toGMTString(); }; -ImprovedTube.createPlayerButton = function (node, options) { - var controls = ImprovedTube.elements.player_left_controls; +ImprovedTube.createPlayerButton = function (options) { + var controls = this.elements.player_left_controls; if (controls) { var button = document.createElement('button'); @@ -664,11 +665,13 @@ ImprovedTube.createPlayerButton = function (node, options) { }); if (options.id) { - if (node.querySelector('#' + options.id)) { - node.querySelector('#' + options.id).remove(); + if (this.elements.buttons[options.id]) { + this.elements.buttons[options.id].remove(); } button.id = options.id; + + this.elements.buttons[options.id] = button; } if (options.child) { @@ -2223,10 +2226,6 @@ ImprovedTube.screenshot = function () { ImprovedTube.playerScreenshotButton = function () { if (this.storage.player_screenshot_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); @@ -2235,15 +2234,15 @@ ImprovedTube.playerScreenshotButton = function () { svg.appendChild(path); - this.createPlayerButton(node, { + this.createPlayerButton({ id: 'it-screenshot-button', child: svg, opacity: 1, - onclick: ImprovedTube.screenshot, + onclick: this.screenshot, title: 'Screenshot' }); - } else if (document.querySelector('.it-screenshot-button')) { - document.querySelector('.it-screenshot-button').remove(); + } else if (this.elements.buttons['it-screenshot-styles']) { + this.elements.buttons['it-screenshot-styles'].remove(); } }; @@ -2254,10 +2253,6 @@ ImprovedTube.playerScreenshotButton = function () { ImprovedTube.playerRepeatButton = function (node) { if (this.storage.player_repeat_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); @@ -2266,15 +2261,19 @@ ImprovedTube.playerRepeatButton = function (node) { svg.appendChild(path); - this.createPlayerButton(node, { + this.createPlayerButton({ id: 'it-repeat-button', child: svg, onclick: function () { - if (node.querySelector('video').hasAttribute('loop')) { - node.querySelector('video').removeAttribute('loop'); + var video = ImprovedTube.elements.video; + + if (video.hasAttribute('loop')) { + video.removeAttribute('loop'); + this.style.opacity = '.5'; - } else if (!/ad-showing/.test(player.className)) { - node.querySelector('video').setAttribute('loop', ''); + } else if (!/ad-showing/.test(ImprovedTube.elements.player.className)) { + video.setAttribute('loop', ''); + this.style.opacity = '1'; } }, @@ -2283,12 +2282,13 @@ ImprovedTube.playerRepeatButton = function (node) { if (this.storage.player_always_repeat === true) { setTimeout(function () { - node.querySelector('video').setAttribute('loop', ''); - node.querySelector('#it-repeat-button').style.opacity = '1'; + ImprovedTube.elements.video.setAttribute('loop', ''); + + ImprovedTube.elements.buttons['it-repeat-styles'].style.opacity = '1'; }, 100); } - } else if (document.querySelector('.it-repeat-button')) { - document.querySelector('.it-repeat-button').remove(); + } else if (this.elements.buttons['it-repeat-styles']) { + this.elements.buttons['it-repeat-styles'].remove(); } }; @@ -2299,10 +2299,6 @@ ImprovedTube.playerRepeatButton = function (node) { ImprovedTube.playerRotateButton = function () { if (this.storage.player_rotate_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); @@ -2311,47 +2307,47 @@ ImprovedTube.playerRotateButton = function () { svg.appendChild(path); - this.createPlayerButton(node, { + this.createPlayerButton({ id: 'it-rotate-button', child: svg, opacity: 1, onclick: function () { - var video = node.querySelector('video'), - player = node, - transform = '', - rotate = (document.querySelector('.it-rotate-styles') && document.querySelector('.it-rotate-styles').textContent.match(/rotate\([0-9.]+deg\)/g) || [''])[0]; - rotate = Number((rotate.match(/[0-9.]+/g) || [])[0]) || 0; + var player = ImprovedTube.elements.player, + video = ImprovedTube.elements.video, + rotate = Number(document.body.dataset.itRotate) || 0, + transform = ''; - var nextRotate = (rotate < 270 && rotate % 90 == 0) ? rotate + 90 : 0; + rotate += 90; - transform += 'rotate(' + nextRotate + 'deg)'; + if (rotate === 360) { + rotate = 0; + } - if (nextRotate == 90 || nextRotate == 270) { - var isVerticalVideo = video.videoHeight > video.videoWidth; + document.body.dataset.itRotate = rotate; - var playerLongSide = isVerticalVideo ? player.clientWidth : player.clientHeight; - var playerShortSide = isVerticalVideo ? player.clientHeight : player.clientWidth; + transform += 'rotate(' + rotate + 'deg)'; - var videoScaleForPlayerSize = playerLongSide / playerShortSide; + if (rotate == 90 || rotate == 270) { + var is_vertical_video = video.videoHeight > video.videoWidth; - transform += ' scale(' + videoScaleForPlayerSize + ')'; + transform += ' scale(' + (is_vertical_video ? player.clientWidth : player.clientHeight) / (is_vertical_video ? player.clientHeight : player.clientWidth); + ')'; } - //video.style.transform = transform; - if (!document.querySelector('.it-rotate-styles')) { - var styles = document.createElement('style'); - styles.className = 'it-rotate-styles'; + if (!ImprovedTube.elements.buttons['it-rotate-styles']) { + var style = document.createElement('style'); - document.body.appendChild(styles); + ImprovedTube.elements.buttons['it-rotate-styles'] = style; + + document.body.appendChild(style); } - document.querySelector('.it-rotate-styles').textContent = '.html5-video-player:not(it-mini-player) video {transform:' + transform + '}'; + ImprovedTube.elements.buttons['it-rotate-styles'].textContent = 'video{transform:' + transform + '}'; }, title: 'Rotate' }); - } else if (document.querySelector('.it-rotate-button')) { - document.querySelector('.it-rotate-button').remove(); - document.querySelector('.it-rotate-styles').remove(); + } else if (this.elements.buttons['it-rotate-button']) { + this.elements.buttons['it-rotate-button'].remove(); + this.elements.buttons['it-rotate-styles'].remove(); } }; @@ -2362,10 +2358,6 @@ ImprovedTube.playerRotateButton = function () { ImprovedTube.playerPopupButton = function () { if (this.storage.player_popup_button === true) { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); @@ -2374,19 +2366,21 @@ ImprovedTube.playerPopupButton = function () { svg.appendChild(path); - this.createPlayerButton(node, { + this.createPlayerButton({ id: 'it-popup-player-button', child: svg, opacity: 1, onclick: function () { - node.pauseVideo(); + var player = ImprovedTube.elements.player; + + player.pauseVideo(); - window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(node.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + node.offsetWidth + ',height=' + node.offsetHeight); + window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(player.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + player.offsetWidth + ',height=' + player.offsetHeight); }, title: 'Popup' }); - } else if (document.querySelector('.it-popup-player-button')) { - document.querySelector('.it-popup-player-button').remove(); + } else if (this.elements.buttons['it-popup-player-button']) { + this.elements.buttons['it-popup-player-button'].remove(); } }; From 7b1d53f727f5c1bfd526db006f1d86c9149e405c Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 29 Jul 2021 15:12:33 +0300 Subject: [PATCH 0276/1224] Collapse of subscription sections: innerHTML replaced with objects --- manifest.json | 2 +- youtube-scripts.js | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 26c73ba07..baf91f305 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.371", + "version": "3.372", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 0a320625b..fe02d5fa6 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -748,10 +748,11 @@ ImprovedTube.collapseOfSubscriptionSections = function (node) { var section_title = node.querySelector('h2'); if (!node.querySelector('.it-section-collapse') && section_title) { - var button = document.createElement('div'); + var button = document.createElement('div'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); button.className = 'it-section-collapse'; - button.innerHTML = ''; button.section = node; button.addEventListener('click', function () { @@ -768,6 +769,13 @@ ImprovedTube.collapseOfSubscriptionSections = function (node) { }); }); + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M7.4 15.4l4.6-4.6 4.6 4.6L18 14l-6-6-6 6z'); + + svg.appendChild(path); + + button.appendChild(svg); + section_title.parentNode.insertBefore(button, section_title.nextSibling); } } From 32eb86bffe4c4bf08d5e77363cdcc2ba7490fde1 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 29 Jul 2021 15:23:59 +0300 Subject: [PATCH 0277/1224] Collapse of related videos: innerHTML replaced with objects --- manifest.json | 2 +- youtube-scripts.js | 27 ++++++++++++++++++++------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/manifest.json b/manifest.json index baf91f305..18ed81ff5 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.372", + "version": "3.373", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index fe02d5fa6..109fb4ca0 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1129,23 +1129,36 @@ ImprovedTube.livechat = function () { ------------------------------------------------------------------------------*/ ImprovedTube.relatedVideos = function () { - if (this.storage.related_videos === 'collapsed') { - var button = ImprovedTube.elements.related.button || document.createElement('button'), - parent = ImprovedTube.elements.related.container; + if (this.storage.related_videos === 'collapsed' && !this.elements.related.button) { + var button = document.createElement('button'), + content = document.createElement('span'), + show_more = document.createElement('span'), + show_less = document.createElement('span'), + parent = this.elements.related.container; button.id = 'improvedtube-collapsed-related-videos'; button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; - button.innerHTML = 'Show moreShow less'; - button.onclick = function () { document.documentElement.classList.toggle('related-videos-collapsed'); }; - document.documentElement.classList.add('related-videos-collapsed'); + content.className = 'yt-uix-button-content'; + + show_more.className = 'show-more-text'; + show_more.textContent = 'Show more'; + + show_less.className = 'show-less-text'; + show_less.textContent = 'Show less'; + + content.appendChild(show_more); + content.appendChild(show_less); + button.appendChild(content); + + this.elements.related.button = button; parent.insertBefore(button, parent.children[0]); - ImprovedTube.elements.related.button = button; + document.documentElement.classList.add('related-videos-collapsed'); } }; From ea39d054fd707f63443c0774373f320b75e27e47 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 29 Jul 2021 15:32:57 +0300 Subject: [PATCH 0278/1224] Collapse of comments: innerHTML replaced with objects --- manifest.json | 2 +- youtube-scripts.js | 33 +++++++++++++++++++-------------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/manifest.json b/manifest.json index 18ed81ff5..92eacb9a7 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.373", + "version": "3.374", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 109fb4ca0..925b46649 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1219,14 +1219,6 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { element.appendChild(document.createTextNode('• ' + timeSince(response.items[0].snippet.publishedAt))); } - /*if (response.items && response.items[0]) { - element.innerHTML = (' · ' + timeSince(response.items[0].snippet.publishedAt) + ' '); - - var date = new Date(response.items[0].snippet.publishedAt); - - element.title = ((date.getMonth() > 8) ? (date.getMonth() + 1) : ('0' + (date.getMonth() + 1))) + '/' + ((date.getDate() > 9) ? date.getDate() : ('0' + date.getDate())) + '/' + date.getFullYear(); - }*/ - element.className = 'it-how-long-ago-the-video-was-uploaded'; ImprovedTube.elements.how_long_ago_the_video_was_uploaded = element; @@ -1281,23 +1273,36 @@ ImprovedTube.channelVideosCount = function () { ------------------------------------------------------------------------------*/ ImprovedTube.comments = function () { - if (this.storage.comments === 'collapsed') { - var button = ImprovedTube.elements.comments.button || document.createElement('button'), - parent = ImprovedTube.elements.comments.container; + if (this.storage.comments === 'collapsed' || this.elements.comments.button) { + var button = document.createElement('button'), + content = document.createElement('span'), + show_more = document.createElement('span'), + show_less = document.createElement('span'), + parent = this.elements.comments.container; button.id = 'improvedtube-collapsed-comments'; button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; - button.innerHTML = 'Show moreShow less'; - button.onclick = function () { document.documentElement.classList.toggle('comments-collapsed'); }; + content.className = 'yt-uix-button-content'; + + show_more.className = 'show-more-text'; + show_more.textContent = 'Show more'; + + show_less.className = 'show-less-text'; + show_less.textContent = 'Show less'; + + content.appendChild(show_more); + content.appendChild(show_less); + button.appendChild(content); + document.documentElement.classList.add('comments-collapsed'); parent.appendChild(button); - ImprovedTube.elements.comments.button = button; + this.elements.comments.button = button; } }; From 1618c73c5a438fa81e23c0bdbf3663155df51f18 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 29 Jul 2021 15:38:00 +0300 Subject: [PATCH 0279/1224] Reverse playlist: innerHTML replaced with objects --- manifest.json | 2 +- youtube-scripts.js | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/manifest.json b/manifest.json index 92eacb9a7..179ba227e 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.374", + "version": "3.375", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 925b46649..169b29545 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2519,12 +2519,12 @@ ImprovedTube.playlistReverse = function () { } if (!document.querySelector('#it-reverse-playlist') && ImprovedTube.elements.playlist.actions) { - var button = document.createElement('button'); + var button = document.createElement('button'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); button.id = 'it-reverse-playlist'; button.className = 'style-scope yt-icon-button'; - button.innerHTML = ''; - button.addEventListener('click', function (event) { var playlist_manager = document.querySelector('yt-playlist-manager'); @@ -2546,6 +2546,15 @@ ImprovedTube.playlistReverse = function () { return false; }, true); + svg.setAttributeNS(null, 'width', '24'); + svg.setAttributeNS(null, 'height', '24'); + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z'); + + svg.appendChild(path); + + button.appendChild(svg); + ImprovedTube.elements.playlist.actions.appendChild(button); } From dfb4ffd9cce6e255aed24e6dca90feea74c22bde Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 29 Jul 2021 15:41:50 +0300 Subject: [PATCH 0280/1224] ImprovedTube icon on YouTube: innerHTML replaced with objects --- manifest.json | 2 +- youtube-scripts.js | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 179ba227e..0cb11de70 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.375", + "version": "3.376", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 169b29545..2a8b8dcdb 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3633,10 +3633,12 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { option === 'draggable' && document.body ) ) { - var button = document.createElement('div'); + var button = document.createElement('div'), + scrim = document.createElement('div'), + icon = document.createElement('div'), + iframe = document.createElement('iframe'); button.className = 'it-btn'; - button.innerHTML = '
'; button.addEventListener('click', function () { event.preventDefault(); event.stopPropagation(); @@ -3660,6 +3662,12 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { return false; }, true); + scrim.className = 'it-btn__scrim'; + icon.className = 'it-btn__icon'; + iframe.className = 'it-btn__iframe'; + + iframe.src = '//www.youtube.com/improvedtube'; + if (option === 'draggable') { var position = localStorage.getItem('IT_ICON'); From 3440a257751621b78f7e2847852f20206790f6ba Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 29 Jul 2021 15:54:38 +0300 Subject: [PATCH 0281/1224] Optimized "My colors" feature --- manifest.json | 2 +- youtube-scripts.js | 102 ++++++++++++++++++++++----------------------- 2 files changed, 51 insertions(+), 53 deletions(-) diff --git a/manifest.json b/manifest.json index 0cb11de70..0f55763af 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.376", + "version": "3.377", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 2a8b8dcdb..d10630206 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1316,59 +1316,57 @@ ImprovedTube.comments = function () { ------------------------------------------------------------------------------*/ ImprovedTube.myColors = function () { - if (this.storage.theme_my_colors !== true) { - if (document.querySelector('.it-theme-editor')) { - document.querySelector('.it-theme-editor').remove(); - } - - return false; + if (this.storage.theme_my_colors === true) { + var style = this.elements.my_colors || document.createElement('style'); + + style.className = 'it-theme-editor'; + style.textContent = 'html{' + + '--yt-swatch-textbox-bg:rgba(19,19,19,1)!important;' + + '--yt-swatch-icon-color:rgba(136,136,136,1)!important;' + + '--yt-spec-brand-background-primary:rgba(0,0,0, 0.1) !important;' + + '--yt-spec-brand-background-secondary:rgba(0,0,0, 0.1) !important;' + + '--yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important;' + + '--yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important;' + + '--yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important;' + + '--yt-spec-brand-button-background:rgba(136,136,136,1) !important;' + + '--yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important;' + + '--yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important;' + + '--yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important;' + + '--yt-spec-10-percent-layer:rgba(136,136,136,1) !important;' + + '--yt-swatch-primary:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-swatch-primary-darker:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-brand-background-solid:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-general-background-a:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-general-background-b:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-general-background-c:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-spec-touch-response:' + (this.storage.theme_primary_color || '') + '!important;' + + '--yt-swatch-text: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-swatch-important-text: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-swatch-input-text: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-swatch-logo-override: ' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-spec-text-primary:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-text-primary-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-text-secondary:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-text-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-icon-active-other:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-icon-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-filled-button-text:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-call-to-action-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-brand-icon-active:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-brand-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-brand-link-text:' + (this.storage.theme_text_color || '') + '!important;' + + '--yt-spec-brand-subscribe-button-background:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-wordmark-text:' + (this.storage.theme_text_color || '') + ' !important;' + + '--yt-spec-selected-nav-text:' + (this.storage.theme_text_color || '') + ' !important;' + + '}'; + + this.elements.my_colors = style; + + document.documentElement.appendChild(style); + } else if (this.elements.my_colors) { + this.elements.my_colors.remove(); } - - var style = document.querySelector('.it-theme-editor') || document.createElement('style'); - - style.className = 'it-theme-editor'; - style.innerText = 'html{' + - '--yt-swatch-textbox-bg:rgba(19,19,19,1)!important;' + - '--yt-swatch-icon-color:rgba(136,136,136,1)!important;' + - '--yt-spec-brand-background-primary:rgba(0,0,0, 0.1) !important;' + - '--yt-spec-brand-background-secondary:rgba(0,0,0, 0.1) !important;' + - '--yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important;' + - '--yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important;' + - '--yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important;' + - '--yt-spec-brand-button-background:rgba(136,136,136,1) !important;' + - '--yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important;' + - '--yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important;' + - '--yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important;' + - '--yt-spec-10-percent-layer:rgba(136,136,136,1) !important;' + - '--yt-swatch-primary:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-swatch-primary-darker:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-brand-background-solid:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-a:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-b:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-general-background-c:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-spec-touch-response:' + (this.storage.theme_primary_color || '') + '!important;' + - '--yt-swatch-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-important-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-input-text: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-swatch-logo-override: ' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-spec-text-primary:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-primary-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-secondary:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-text-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-active-other:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-icon-disabled:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-filled-button-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-call-to-action-inverse:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-icon-active:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-icon-inactive:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-brand-link-text:' + (this.storage.theme_text_color || '') + '!important;' + - '--yt-spec-brand-subscribe-button-background:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-wordmark-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '--yt-spec-selected-nav-text:' + (this.storage.theme_text_color || '') + ' !important;' + - '}'; - - document.documentElement.appendChild(style); }; From d99e1e796ec54c1d7fb7e9125466e40fec303aff Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 29 Jul 2021 15:58:32 +0300 Subject: [PATCH 0282/1224] Optimized "Font" feature --- manifest.json | 2 +- youtube-scripts.js | 23 +++++++++++------------ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/manifest.json b/manifest.json index 0f55763af..f5f70a8fc 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.377", + "version": "3.378", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index d10630206..4cfb34142 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1503,22 +1503,21 @@ ImprovedTube.dim = function () { ------------------------------------------------------------------------------*/ ImprovedTube.font = function () { - if (this.storage.font) { - if (this.storage.font !== 'Default') { - if (!document.querySelector('.it-font-family')) { - var link = document.createElement('link'); + if (this.storage.font === true && this.storage.font !== 'Default') { + var link = this.elements.myFont || document.createElement('link'); - link.rel = 'stylesheet'; + link.rel = 'stylesheet'; + link.href = '//fonts.googleapis.com/css2?family=' + this.storage.font; - document.documentElement.appendChild(link); - } else { - var link = document.querySelector('.it-font-family'); - } + this.elements.myFont = link; - link.href = '//fonts.googleapis.com/css2?family=' + this.storage.font; + document.documentElement.style.fontFamily = this.storage.font.replace(/\+/g, ' '); + + document.documentElement.appendChild(link); + } else if (this.elements.myFont) { + this.elements.myFont.remove(); - document.documentElement.style.fontFamily = this.storage.font.replace(/\+/g, ' '); - } + document.documentElement.style.fontFamily = ''; } }; From c8e6c2ef96d56f9a3cfddb884ba4fcc06ef9340e Mon Sep 17 00:00:00 2001 From: raszpl Date: Thu, 29 Jul 2021 18:19:07 +0200 Subject: [PATCH 0283/1224] onclick/onchange order ambiguity fix https://www.w3.org/TR/DOM-Level-3-Events/#event-flow-default-cancel 'Default actions are usually performed after the event dispatch has been completed, but in exceptional cases they may also be performed immediately before the event is dispatched.' --- popup.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/popup.js b/popup.js index 89d3af1f0..1728f52d3 100644 --- a/popup.js +++ b/popup.js @@ -2460,9 +2460,11 @@ skeleton.main.section.general = { type: 'switch', label: 'markWatchedVideos', onclick: function () { - if (document.querySelector('.satus-switch > input[data-storage-key="mark_watched_videos"]:checked') && document.querySelector('.satus-switch > input[data-storage-key="track_watched_videos"]:not(:checked)')) { - document.querySelector('.satus-switch > input[data-storage-key="track_watched_videos"]').click(); - } + setTimeout(function () { + if (satus.storage.mark_watched_videos && !satus.storage.track_watched_videos) { + document.querySelector('.satus-switch > input[data-storage-key="track_watched_videos"]').click(); + } + }, 50); } }, track_watched_videos: { @@ -2474,7 +2476,7 @@ skeleton.main.section.general = { label: 'deleteWatchedVideos', onrender: function () { this.firstChild.innerText += ' (' + (satus.storage.watched ? Object.keys(satus.storage.watched).length : 0) + ')'; - }, + }, onclick: function () { var component = this; satus.render({ From 5e77aa10d7feeac1c59df47f90f35970ce32872f Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 30 Jul 2021 14:48:49 +0300 Subject: [PATCH 0284/1224] A bit more querySelector optimizations --- manifest.json | 2 +- youtube-scripts.js | 66 ++++++++++++++++++---------------------------- 2 files changed, 26 insertions(+), 42 deletions(-) diff --git a/manifest.json b/manifest.json index f5f70a8fc..6c0696d3c 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.378", + "version": "3.380", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 4cfb34142..4b257b9cc 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -200,7 +200,7 @@ ImprovedTube.init = function () { if (node.nodeName === 'YTD-WATCH-FLEXY') { ImprovedTube.elements.ytd_watch = node; - ImprovedTube.elements.ytd_player = document.querySelector('ytd-player'); + ImprovedTube.elements.ytd_player = node.querySelector('ytd-player'); if ( ImprovedTube.storage.player_size && @@ -996,7 +996,7 @@ ImprovedTube.playerSize = function () { style.textContent = '[data-page-type="video"][it-player-size="fit_to_window"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) video {'; } else { - width = document.querySelector('#player.ytd-watch-flexy').offsetWidth; + width = ImprovedTube.elements.ytd_watch.offsetWidth; style.textContent = '[data-page-type="video"][it-player-size="fit_to_window"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) video {'; } @@ -1007,8 +1007,6 @@ ImprovedTube.playerSize = function () { width -= (height - max_height) * aspect_ratio; height = max_height; } - - console.log(width, height); style.textContent += 'width:' + width + 'px !important;'; style.textContent += 'height:' + height + 'px !important;'; @@ -1980,8 +1978,6 @@ ImprovedTube.mini_player__resize_mouseUp = function (event) { }; ImprovedTube.mini_player = function () { - ImprovedTube.elements.player = document.querySelector('.html5-video-player'); - if (ImprovedTube.storage.mini_player === true) { var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; @@ -2020,18 +2016,13 @@ ImprovedTube.mini_player = function () { 4.8 AUTO FULLSCREEN ------------------------------------------------------------------------------*/ -ImprovedTube.playerAutofullscreen = function (node) { - if (!node) { - node = document.querySelector('.html5-video-player'); - } - +ImprovedTube.playerAutofullscreen = function () { if ( this.storage.player_autofullscreen === true && - !document.fullscreenElement && - document.documentElement.getAttribute('data-page-type') === 'video' && - node.toggleFullscreen + document.documentElement.dataset.pageType === 'video' && + !document.fullscreenElement ) { - node.toggleFullscreen(); + this.elements.player.toggleFullscreen(); } }; @@ -2040,23 +2031,19 @@ ImprovedTube.playerAutofullscreen = function (node) { 4.9 QUALITY ------------------------------------------------------------------------------*/ -ImprovedTube.playerQuality = function (node) { - var quality = ImprovedTube.storage.player_quality; - - if (!node) { - node = document.querySelector('.html5-video-player'); - } +ImprovedTube.playerQuality = function () { + var quality = this.storage.player_quality; - if (node.getAvailableQualityLevels) { - var available_quality_levels = node.getAvailableQualityLevels(); + if (this.elements.player.getAvailableQualityLevels) { + var available_quality_levels = this.elements.player.getAvailableQualityLevels(); if (quality && quality !== 'auto') { if (available_quality_levels.indexOf(quality) === -1) { quality = available_quality_levels[0]; } - node.setPlaybackQualityRange(quality); - node.setPlaybackQuality(quality); + this.elements.player.setPlaybackQualityRange(quality); + this.elements.player.setPlaybackQuality(quality); } } }; @@ -2170,21 +2157,22 @@ ImprovedTube.onvolumechange = function (event) { }; ImprovedTube.playerLoudnessNormalization = function () { - var video = document.querySelector('video'); + var video = this.elements.video; if (video) { - video.removeEventListener('volumechange', ImprovedTube.onvolumechange); - video.addEventListener('volumechange', ImprovedTube.onvolumechange); + video.removeEventListener('volumechange', this.onvolumechange); + video.addEventListener('volumechange', this.onvolumechange); } - if (ImprovedTube.storage.player_loudness_normalization === false) { + if (this.storage.player_loudness_normalization === false) { try { var local_storage = localStorage['yt-player-volume']; - if (ImprovedTube.isset(Number(ImprovedTube.storage.player_volume)) && ImprovedTube.storage.player_forced_volume === true) { + if (this.isset(Number(this.storage.player_volume)) && this.storage.player_forced_volume === true) { } else if (local_storage) { local_storage = JSON.parse(JSON.parse(local_storage).data); + local_storage = Number(local_storage.volume); video.volume = local_storage / 100; @@ -2203,7 +2191,7 @@ ImprovedTube.playerLoudnessNormalization = function () { ImprovedTube.screenshot = function () { document.body.style.opacity = '0'; - var video = document.querySelector('.html5-video-player video'), + var video = this.elements.video, cvs = document.createElement('canvas'), ctx = cvs.getContext('2d'), old_w = video.offsetWidth, @@ -2224,7 +2212,7 @@ ImprovedTube.screenshot = function () { a.href = URL.createObjectURL(blob); - a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '-' + new Date(document.querySelector('.html5-video-player').getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; + a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '-' + new Date(ImprovedTube.elements.player.getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; a.click(); } else { @@ -2428,14 +2416,10 @@ ImprovedTube.playerSDR = function () { ------------------------------------------------------------------------------*/ ImprovedTube.playerControls = function () { - if (!node) { - var node = document.querySelector('.html5-video-player'); - } - if (this.storage.player_hide_controls === true) { - node.hideControls(); + this.elements.player.hideControls(); } else { - node.showControls(); + this.elements.player.showControls(); } }; @@ -2988,7 +2972,7 @@ ImprovedTube.shortcutActivateFullscreen = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutActivateCaptions = function () { - var player = document.querySelector('#movie_player'); + var player = this.elements.player; if (player && player.querySelector('.ytp-subtitles-button')) { player.querySelector('.ytp-subtitles-button').click(); @@ -3685,10 +3669,10 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { button.style.left = '16px'; } } else { - if (event.clientX + (48 + window.innerWidth - document.querySelector('body').offsetWidth) - Number(button.dataset.x) <= window.innerWidth) { + if (event.clientX + (48 + window.innerWidth - document.body.offsetWidth) - Number(button.dataset.x) <= window.innerWidth) { button.style.left = event.clientX - Number(button.dataset.x) + 'px'; } else { - button.style.left = 'calc(100vw - ' + (48 + window.innerWidth - document.querySelector('body').offsetWidth) + 'px)'; + button.style.left = 'calc(100vw - ' + (48 + window.innerWidth - document.body.offsetWidth) + 'px)'; } } From 4b94992cc768fbab40526c822c46c1a143ed8aa8 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 30 Jul 2021 17:52:29 +0300 Subject: [PATCH 0285/1224] Redeveloped "Blacklist" feature (videos) --- content-styles.css | 15 ++++++--- manifest.json | 2 +- youtube-scripts.js | 79 +++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 89 insertions(+), 7 deletions(-) diff --git a/content-styles.css b/content-styles.css index 9b65a5a25..ddf62b2b0 100644 --- a/content-styles.css +++ b/content-styles.css @@ -3517,7 +3517,7 @@ html[it-improvedtube-youtube-icon='draggable'] .it-btn { 9.0 BLACKLIST ------------------------------------------------------------------------------*/ -.improvedtube-add-to-blacklist { +.it-add-to-blacklist { font-size: 32px; line-height: 26px; position: absolute; @@ -3529,23 +3529,28 @@ html[it-improvedtube-youtube-icon='draggable'] .it-btn { width: 32px; height: 32px; cursor: pointer; + padding: 0; transition: transform .15s; transform: scale(1); text-align: center; - opacity: .7; color: #fff; border-radius: 2px; - background: #000; + background: rgba(0,0,0,.7); + border: none; } -*:hover>.improvedtube-add-to-blacklist { +*:hover>.it-add-to-blacklist { visibility: visible; } -.improvedtube-add-to-blacklist:hover { +.it-add-to-blacklist:hover { transform: scale(1.25); } +.it-blacklisted-video { + opacity: .1; +} + /*------------NEW---------------*/ diff --git a/manifest.json b/manifest.json index 6c0696d3c..b3107b94f 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.380", + "version": "3.383", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 4b257b9cc..012fd0cae 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -116,7 +116,8 @@ var ImprovedTube = { channel: new RegExp('\/(user|channel|c)\/'), channel_home_page: new RegExp('\/(user|channel|c)\/.+(\/featured)?\/?$'), channel_home_page_postfix: new RegExp('\/(featured)?\/?$'), - thumbnail_quality: new RegExp('(hqdefault\.jpg|hq720.jpg)+') + thumbnail_quality: new RegExp('(hqdefault\.jpg|hq720.jpg)+'), + video_id: new RegExp('[?&]v=([^&]+)') }`, video_src: false, initialVideoUpdateDone: false, @@ -365,6 +366,10 @@ ImprovedTube.init = function () { ImprovedTube.youtubeHomePage(node); ImprovedTube.channelDefaultTab(node); ImprovedTube.markWatchedVideos(node); + //a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link + if (node.className.indexOf('ytd-thumbnail') !== -1) { + ImprovedTube.blacklist('video', node); + } } else if (node.nodeName === 'IMG') { if (node.src) { ImprovedTube.hdThumbnails(node); @@ -3543,6 +3548,78 @@ ImprovedTube.blacklist = function () { } }; +ImprovedTube.blacklist = function(type, node) { + if (this.storage.blacklist_activate !== true) { + return; + } + + if (!this.storage.blacklist || typeof this.storage.blacklist !== 'object') { + this.storage.blacklist = { + channels: {}, + videos: {} + }; + } + + if (type === 'video') { + var button = document.createElement('button'), + id = node.href.match(ImprovedTube.regex.video_id); + + button.className = 'it-add-to-blacklist'; + button.textContent = 'x'; + button.addEventListener('click', function(event) { + if (this.parentNode.href) { + var data = this.parentNode.parentNode.__data, + id = this.parentNode.href.match(ImprovedTube.regex.video_id), + title = ''; + + if ( + data && + data.data && + data.data.title && + data.data.title.runs && + data.data.title.runs[0] + ) { + title = data.data.title.runs[0].text; + } else if ( + data && + data && + data.data && + data.data.title.simpleText + ) { + title = data.data.title.simpleText; + } + + if (id && id[1]) { + document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { + detail: { + type: 'video', + id: id[1], + title: title + } + })); + + ImprovedTube.storage.blacklist.videos[id[1]] = { + title: title + }; + + this.parentNode.parentNode.__dataHost.className += ' it-blacklisted-video'; + + event.preventDefault(); + event.stopPropagation(); + } + } + }, true); + + node.appendChild(button); + + if (id && id[1] && ImprovedTube.storage.blacklist.videos[id[1]]) { + node.parentNode.__dataHost.className += ' it-blacklisted-video'; + } + } else if (type === 'channel') { + + } +}; + /*------------------------------------------------------------------------------ 9.0 ANALYZER From 28eb79daf54347140b391ab7ba988e97f105f38d Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 30 Jul 2021 22:23:11 +0300 Subject: [PATCH 0286/1224] Redeveloped "Blacklist" feature (channels) --- content-styles.css | 19 ++++ youtube-scripts.js | 269 ++++++++++++--------------------------------- 2 files changed, 90 insertions(+), 198 deletions(-) diff --git a/content-styles.css b/content-styles.css index ddf62b2b0..583354bf9 100644 --- a/content-styles.css +++ b/content-styles.css @@ -3539,6 +3539,25 @@ html[it-improvedtube-youtube-icon='draggable'] .it-btn { border: none; } +.it-add-channel-to-blacklist { + background-color: var(--yt-spec-badge-chip-background); + color: var(--yt-spec-text-secondary); + border-radius: 2px; + padding: var(--yt-button-padding); + margin: auto var(--ytd-subscribe-button-margin, 4px); + white-space: nowrap; + font-size: var(--ytd-tab-system_-_font-size); + font-weight: var(--ytd-tab-system_-_font-weight); + font-family: inherit; + letter-spacing: 0; + display: flex; + justify-content: center; + align-items: center; + border: none; + text-transform: uppercase; + cursor: pointer; +} + *:hover>.it-add-to-blacklist { visibility: visible; } diff --git a/youtube-scripts.js b/youtube-scripts.js index 012fd0cae..f25d2c6e1 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -117,7 +117,8 @@ var ImprovedTube = { channel_home_page: new RegExp('\/(user|channel|c)\/.+(\/featured)?\/?$'), channel_home_page_postfix: new RegExp('\/(featured)?\/?$'), thumbnail_quality: new RegExp('(hqdefault\.jpg|hq720.jpg)+'), - video_id: new RegExp('[?&]v=([^&]+)') + video_id: new RegExp('[?&]v=([^&]+)'), + channel_link: new RegExp('https:\/\/www.youtube.com\/(channel|user|c)\/') }`, video_src: false, initialVideoUpdateDone: false, @@ -370,6 +371,10 @@ ImprovedTube.init = function () { if (node.className.indexOf('ytd-thumbnail') !== -1) { ImprovedTube.blacklist('video', node); } + + if (node.href.match(ImprovedTube.regex.channel)) { + ImprovedTube.blacklist('channel', node); + } } else if (node.nodeName === 'IMG') { if (node.src) { ImprovedTube.hdThumbnails(node); @@ -400,6 +405,8 @@ ImprovedTube.init = function () { ImprovedTube.elements.yt_channel_link = node.querySelector('ytd-channel-name a'); ImprovedTube.howLongAgoTheVideoWasUploaded(); ImprovedTube.channelVideosCount(); + } else if (node.nodeName === 'YTD-SUBSCRIBE-BUTTON-RENDERER' && node.className.indexOf('ytd-c4-tabbed-header-renderer') !== -1) { + ImprovedTube.blacklist('channel', node); } } } @@ -3351,203 +3358,6 @@ document.addEventListener('ImprovedTubeBlacklist', function (event) { } }); -ImprovedTube.blacklist = function () { - if (ImprovedTube.storage.blacklist_activate !== true) { - return false; - } - - if (typeof ImprovedTube.storage.blacklist === 'boolean' || !ImprovedTube.storage.blacklist) { - ImprovedTube.storage.blacklist = {}; - } - - // channel button - if (!ImprovedTube.isset(ImprovedTube.storage.blacklist.channels) || - (ImprovedTube.storage.blacklist.channels && - Object.keys(ImprovedTube.storage.blacklist.channels).indexOf(location.href.replace(/https:\/\/www.youtube.com\/(channel|user|c)\//g, '').replace(/\/(.)+/g, '')) === -1) - ) { - let channel_items = document.querySelectorAll('#inner-header-container #subscribe-button, .primary-header-upper-section .yt-uix-subscription-button'); - - for (let i = 0, l = channel_items.length; i < l; i++) { - if (!channel_items[i].parentNode.querySelector('.improvedtube-add-to-blacklist')) { - let button = document.createElement('div'); - - button.addEventListener('click', function (event) { - let video_id; - - event.preventDefault(); - event.stopPropagation(); - - try { - video_id = location.href.replace(/https:\/\/www.youtube.com\/(channel|user|c)\//g, '').replace(/\/(.)+/g, ''); - - document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { - detail: { - type: 'channel', - id: video_id, - title: document.querySelector('#channel-container yt-formatted-string.ytd-channel-name, a.branded-page-header-title-link').innerText, - preview: document.querySelector('#channel-container #avatar #img, .channel-header-profile-image').src - } - })); - - if (!ImprovedTube.storage.blacklist || typeof ImprovedTube.storage.blacklist !== 'object') { - ImprovedTube.storage.blacklist = {}; - } - - if (!ImprovedTube.storage.blacklist.channels) { - ImprovedTube.storage.blacklist.channels = {}; - } - - ImprovedTube.storage.blacklist.channels[video_id] = { - title: document.querySelector('yt-formatted-string.ytd-channel-name, a.branded-page-header-title-link').innerText, - preview: document.querySelector('#channel-container #avatar #img, .channel-header-profile-image').src - }; - - ImprovedTube.blacklist(); - - location.reload(); - } catch (err) {} - }, true); - - button.className = 'improvedtube-add-to-blacklist'; - button.innerText = 'Add to blacklist'; - button.style.position = 'static'; - button.style.transform = 'unset'; - button.style.opacity = '1'; - button.style.visibility = 'visible'; - button.style.pointerEvents = 'all'; - button.style.width = 'auto'; - button.style.fontSize = '16px'; - button.style.lineHeight = '28px'; - button.style.height = 'auto'; - button.style.padding = '6px 12px'; - button.style.borderRadius = '2px'; - button.style.boxSizing = 'border-box'; - button.style.background = '#bb1a1a'; - - channel_items[i].parentNode.insertBefore(button, channel_items[i]); - } - } - } - - // video button - let video_items = document.querySelectorAll('a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (let i = 0, l = video_items.length; i < l; i++) { - if (!video_items[i].querySelector('.improvedtube-add-to-blacklist')) { - let button = document.createElement('div'); - - button.addEventListener('click', function (event) { - let video_id; - - event.preventDefault(); - event.stopPropagation(); - - try { - video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'); - - let item = this.parentNode; - - while ( - item.nodeName && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } - - document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { - detail: { - type: 'video', - id: video_id, - title: item.querySelector('#video-title').innerText - } - })); - - if (!ImprovedTube.storage.blacklist || typeof ImprovedTube.storage.blacklist !== 'object') { - ImprovedTube.storage.blacklist = {}; - } - - if (!ImprovedTube.storage.blacklist.videos) { - ImprovedTube.storage.blacklist.videos = {}; - } - - ImprovedTube.storage.blacklist.videos[video_id] = { - title: item.querySelector('#video-title').innerText - }; - - ImprovedTube.blacklist(); - } catch (err) {} - }, true); - button.className = 'improvedtube-add-to-blacklist'; - button.innerText = 'x'; - - video_items[i].appendChild(button); - } - } - - // remove channels - if (ImprovedTube.storage.blacklist && ImprovedTube.storage.blacklist.channels) { - let videos = document.querySelectorAll('a#thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (let i = 0, l = videos.length; i < l; i++) { - let item = videos[i]; - - while ( - item.nodeName && - item.nodeName !== 'YTD-VIDEO-RENDERER' && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } - - if (item.querySelector('.ytd-channel-name a, a.spf-link[href*="/user/"], a.spf-link[href*="/channel/"]')) { - let channel_href = item.querySelector('.ytd-channel-name a, a.spf-link[href*="/user/"], a.spf-link[href*="/channel/"]').href; - - for (var key in ImprovedTube.storage.blacklist.channels) { - if (item.style && channel_href.indexOf(key) !== -1) { - item.style.opacity = '.1'; - } - } - } - } - } - - // remove videos - if (ImprovedTube.storage.blacklist && ImprovedTube.storage.blacklist.videos) { - let videos = document.querySelectorAll('a#thumbnail, div.yt-lockup-thumbnail a, a.thumb-link'); - - for (let i = 0, l = videos.length; i < l; i++) { - if (videos[i].href && videos[i].href != '' && ImprovedTube.getParam(new URL(videos[i].href).search.substr(1), 'v') in ImprovedTube.storage.blacklist.videos) { - let item = videos[i]; - - while ( - item.nodeName && - item.nodeName !== 'YTD-VIDEO-RENDERER' && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } - - item.style.opacity = '.1'; - } - } - } -}; - ImprovedTube.blacklist = function(type, node) { if (this.storage.blacklist_activate !== true) { return; @@ -3560,6 +3370,14 @@ ImprovedTube.blacklist = function(type, node) { }; } + if (!this.storage.blacklist.channels || typeof this.storage.blacklist.channels !== 'object') { + this.storage.blacklist.channels = {}; + } + + if (!this.storage.blacklist.videos || typeof this.storage.blacklist.videos !== 'object') { + this.storage.blacklist.videos = {}; + } + if (type === 'video') { var button = document.createElement('button'), id = node.href.match(ImprovedTube.regex.video_id); @@ -3616,7 +3434,62 @@ ImprovedTube.blacklist = function(type, node) { node.parentNode.__dataHost.className += ' it-blacklisted-video'; } } else if (type === 'channel') { + if (node.nodeName === 'A') { + try { + var id = node.href.replace(this.regex.channel_link, ''); + + if (this.storage.blacklist.channels[id]) { + node.parentNode.__dataHost.__dataHost.className += ' it-blacklisted-video'; + } + } catch (err) {} + } else { + var button = document.createElement('button'), + id = location.href.replace(this.regex.channel_link, ''); + + button.className = 'it-add-channel-to-blacklist'; + + if (this.storage.blacklist.channels[id]) { + button.innerText = 'Remove from blacklist'; + button.added = true; + } else { + button.innerText = 'Add to blacklist'; + button.added = false; + } + + button.addEventListener('click', function (event) { + var data = this.parentNode.__dataHost.__data.data, + id = location.href.replace(ImprovedTube.regex.channel_link, ''); + + this.added = !this.added; + console.log(data); + + document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { + detail: { + type: 'channel', + id: id, + title: data.title, + prevent: data.avatar.thumbnails[0].url + } + })); + + ImprovedTube.storage.blacklist.channels[id] = { + title: data.title, + prevent: data.avatar.thumbnails[0].url + }; + + if (this.added) { + button.innerText = 'Remove from blacklist'; + } else { + button.innerText = 'Add to blacklist'; + } + + event.preventDefault(); + event.stopPropagation(); + }, true); + + node.parentNode.parentNode.appendChild(button); + } } }; From 1bceb166925d8a5fca72a5bc73f2ed1929a55d4f Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 30 Jul 2021 22:24:29 +0300 Subject: [PATCH 0287/1224] Removed logs --- manifest.json | 2 +- youtube-scripts.js | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/manifest.json b/manifest.json index b3107b94f..4aef4e277 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.383", + "version": "3.385", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index f25d2c6e1..a91596aac 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3335,8 +3335,6 @@ ImprovedTube.shortcuts = function() { } } } - - console.log(storage); }; @@ -3462,8 +3460,6 @@ ImprovedTube.blacklist = function(type, node) { this.added = !this.added; - console.log(data); - document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { detail: { type: 'channel', From bddc7d6f9bbae3d77a0ac632bffeb17b99a7bd36 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 31 Jul 2021 14:01:05 +0300 Subject: [PATCH 0288/1224] Fixed and improved "Analyzer" feature --- content-scripts.js | 6 +++++- manifest.json | 2 +- youtube-scripts.js | 37 +++++++++++++++++++++++++++++-------- 3 files changed, 35 insertions(+), 10 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index b2e2c1e0f..19a9756e0 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -160,6 +160,8 @@ chrome.storage.local.get('youtube_home_page', function (items) { chrome.storage.local.get(function (items) { var textContent = 'var ImprovedTube={'; + ImprovedTube.storage = items; + // attributes attributes(items); @@ -171,7 +173,9 @@ chrome.storage.local.get('youtube_home_page', function (items) { // Features for (var key in ImprovedTube) { - textContent += key + ': ' + ImprovedTube[key] + ','; + if (key !== 'storage') { + textContent += key + ': ' + ImprovedTube[key] + ','; + } } // Storage diff --git a/manifest.json b/manifest.json index 4aef4e277..493c1133f 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.385", + "version": "3.387", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index a91596aac..a88e7cd65 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -126,6 +126,7 @@ var ImprovedTube = { video_url: false, focus: false, played_before_blur: false, + played_time: 0, allow_autoplay: false, mini_player__mode: false, mini_player__move: false, @@ -542,14 +543,34 @@ ImprovedTube.playerOnTimeUpdate = function () { } ImprovedTube.alwaysShowProgressBar(); + + ImprovedTube.played_time += .25; }; ImprovedTube.playerOnPause = function (event) { ImprovedTube.playlistUpNextAutoplay(event); + + document.dispatchEvent(new CustomEvent('improvedtube-analyzer', { + detail: { + name: ImprovedTube.elements.yt_channel_name.__data.tooltipText, + time: ImprovedTube.played_time + } + })); + + ImprovedTube.played_time = 0; }; ImprovedTube.playerOnEnded = function (event) { ImprovedTube.playlistUpNextAutoplay(event); + + document.dispatchEvent(new CustomEvent('improvedtube-analyzer', { + detail: { + name: ImprovedTube.elements.yt_channel_name.__data.tooltipText, + time: ImprovedTube.played_time + } + })); + + ImprovedTube.played_time = 0; }; @@ -3494,14 +3515,14 @@ ImprovedTube.blacklist = function(type, node) { 9.0 ANALYZER ------------------------------------------------------------------------------*/ -document.addEventListener('ImprovedTubeAnalyzer', function () { - if (items.analyzer_activation === true) { - if (document.querySelector('ytd-channel-name a') && chrome && chrome.runtime) { - chrome.runtime.sendMessage({ - name: 'improvedtube-analyzer', - value: document.querySelector('ytd-channel-name a').innerText - }); - } +document.addEventListener('improvedtube-analyzer', function (event) { + if (ImprovedTube.storage.analyzer_activation === true) { + console.log(event.detail.name, event.detail.time); + chrome.runtime.sendMessage({ + name: 'improvedtube-analyzer', + value: event.detail.name, + time: event.detail.time + }); } }); From ceeda40e040b48c52174a4a14a62097990ebc202 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 1 Aug 2021 03:11:53 +0200 Subject: [PATCH 0289/1224] Update youtube-scripts.js #1005 toFixed(2) & slowdown formular were lost during refactoring(?) --- youtube-scripts.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index a88e7cd65..10b5af53d 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2948,7 +2948,7 @@ ImprovedTube.shortcutIncreasePlaybackSpeed = function () { if (video.playbackRate < 1 && video.playbackRate > 1 - value) { video.playbackRate = 1 } else { - video.playbackRate = Math.max(video.playbackRate + value, .1); + video.playbackRate = Math.max(Number((video.playbackRate + value).toFixed(2)), .1); } ImprovedTube.showStatus(video.playbackRate); @@ -2964,12 +2964,12 @@ ImprovedTube.shortcutDecreasePlaybackSpeed = function () { var video = this.elements.video, value = Number(ImprovedTube.storage.shortcut_playback_speed_step) || .05; - if (video) { + if (video) { if (video.playbackRate < .15 + value) { - video.playbackRate = 1 + video.playbackRate = (video.playbackRate * 0.7).toFixed(3) } else { - video.playbackRate = Math.max(video.playbackRate - value, .1); - } + video.playbackRate = Math.max(Number((video.playbackRate - value).toFixed(2)), .1); + } ImprovedTube.showStatus(video.playbackRate); } @@ -3830,4 +3830,4 @@ ImprovedTube.defaultContentCountry = function () { if (this.isset(value) && value !== 'default') { this.setCookie('s_gl', value); } -}; \ No newline at end of file +}; From f06e9a0d8a00176bce87e331a8709eb171c34cfe Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 1 Aug 2021 03:47:18 +0200 Subject: [PATCH 0290/1224] improving player appearance order --- popup.js | 58 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/popup.js b/popup.js index 1728f52d3..fd4e8dcb3 100644 --- a/popup.js +++ b/popup.js @@ -2647,21 +2647,6 @@ skeleton.main.section.appearance = { section: { type: 'section', - player_hide_annotations: { - type: 'switch', - label: 'hideAnnotations', - tags: 'hide,remove,elements' - }, - player_hide_cards: { - type: 'switch', - label: 'hideCards', - tags: 'hide,remove,elements' - }, - player_show_cards_on_mouse_hover: { - type: 'switch', - label: 'showCardsOnMouseHover', - tags: 'hide,remove,elements' - }, player_size: { type: 'select', label: 'playerSize', @@ -2705,6 +2690,19 @@ skeleton.main.section.appearance = { label: 'forcedTheaterMode', tags: 'wide' }, + hide_gradient_bottom: { + type: 'switch', + label: 'hideGradientBottom' + }, + player_hide_skip_overlay: { + type: 'switch', + label: 'hideSkipOverlay', + value: false + }, + always_show_progress_bar: { + type: 'switch', + label: 'alwaysShowProgressBar' + }, player_color: { label: 'playerColor', type: 'select', @@ -2772,6 +2770,21 @@ skeleton.main.section.appearance = { type: 'switch', label: 'transparentBackground' }, + player_hide_annotations: { + type: 'switch', + label: 'hideAnnotations', + tags: 'hide,remove,elements' + }, + player_hide_cards: { + type: 'switch', + label: 'hideCards', + tags: 'hide,remove,elements' + }, + player_show_cards_on_mouse_hover: { + type: 'switch', + label: 'showCardsOnMouseHover', + tags: 'hide,remove,elements' + }, player_hide_endscreen: { type: 'switch', label: 'hideEndscreen' @@ -2785,19 +2798,6 @@ skeleton.main.section.appearance = { type: 'switch', label: 'hideScrollForDetails', tags: 'remove,hide' - }, - always_show_progress_bar: { - type: 'switch', - label: 'alwaysShowProgressBar' - }, - hide_gradient_bottom: { - type: 'switch', - label: 'hideGradientBottom' - }, - player_hide_skip_overlay: { - type: 'switch', - label: 'hideSkipOverlay', - value: false } } }, @@ -4515,4 +4515,4 @@ chrome.storage.onChanged.addListener(function (changes) { for (var key in changes) { document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), changes[key].newValue); } -}); \ No newline at end of file +}); From 9b44cebf64e3020ee6dffed45cba3fb5c67e18a3 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 1 Aug 2021 03:59:11 +0200 Subject: [PATCH 0291/1224] more descriptive name --- _locales/en/messages.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 7254fc79d..2124852be 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -396,7 +396,7 @@ "message": "Hide \"Share\" button" }, "hideSkipOverlay": { - "message": "Hide Skip Overlay" + "message": "Hide 5 seconds skip animation" }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" @@ -881,4 +881,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube limits video quality to 1080p for h.264 codec" } -} \ No newline at end of file +} From b43e44a9f29f0146f15ece3f20b92ae398c0ad78 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 1 Aug 2021 17:07:57 +0300 Subject: [PATCH 0292/1224] Fixed sending data function --- content-scripts.js | 10 +++++----- manifest.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index 19a9756e0..e745ce1ca 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -192,15 +192,15 @@ chrome.storage.local.get('youtube_home_page', function (items) { chrome.storage.onChanged.addListener(function (changes) { for (var key in changes) { - var value = changes[key].newValue, - func = camelize(key); + var name = camelize(key.replace(/_/g, '-')), + value = changes[key].newValue; - document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), value); + document.documentElement.setAttribute('it-' + name, value); injectScript('ImprovedTube.storage[\'' + key + '\']=' + (typeof value === 'boolean' ? value : '\'' + value + '\'') + ';'); - if (typeof ImprovedTube[func] === 'function') { - injectScript('ImprovedTube.' + func + '();'); + if (typeof ImprovedTube[name] === 'function') { + injectScript('ImprovedTube.' + name + '();'); } } }); diff --git a/manifest.json b/manifest.json index 493c1133f..40d7e9ca1 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.387", + "version": "3.388", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 4a1bd8bac7d130f9c85fe779d2b62c1f016aca32 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 1 Aug 2021 18:22:16 +0300 Subject: [PATCH 0293/1224] Redeveloped ImprovedTube button for YouTube --- content-styles.css | 145 ++++++++++++--------------------------------- manifest.json | 2 +- youtube-scripts.js | 126 ++++++++++++++++++++++++++++++++++----- 3 files changed, 151 insertions(+), 122 deletions(-) diff --git a/content-styles.css b/content-styles.css index 583354bf9..00a0d3616 100644 --- a/content-styles.css +++ b/content-styles.css @@ -3390,126 +3390,59 @@ html[it-channel-hide-featured-content=true] #secondary ytd-browse-secondary-cont 8.1 IMPROVEDTUBE ICON ON YOUTUBE ------------------------------------------------------------------------------*/ -html[it-improvedtube-youtube-icon='below_player'] .title.ytd-video-primary-info-renderer { - overflow: visible !important; -} - -html[it-improvedtube-youtube-icon='below_player'] h1.watch-title-container { - display: inline-block !important; -} - -html[it-improvedtube-youtube-icon='draggable'] .it-btn { - position: fixed; - z-index: 2147483645; - top: calc(100vh - 56px); - left: calc(100vw - 64px); -} - -.it-btn { - z-index: 2147483645; - user-select: none; -} - -#container.ytd-masthead>.it-btn { - margin: 0 12px 0 0; -} - -.yt-masthead-logo-container>.it-btn { - float: left; - margin: 0 12px 0 0; -} - -#end #buttons .it-btn { - margin: 3px 0 0 0; -} - -#yt-masthead-user>.it-btn { - float: right; - margin: -2px 0 0 14px; -} - -.title.ytd-video-primary-info-renderer>.it-btn, -#watch-headline-title>.it-btn { - float: right; -} - -.it-btn__scrim { - position: fixed; - z-index: 2147483645; - top: 0; - left: 0; - visibility: hidden; - width: 100%; - height: 100vh; - transition: 150ms; - pointer-events: none; - opacity: 0; - background: #000; -} - -.it-btn__icon { +.it-button { + width: 24px; + height: 24px; + padding: 8px; + border: none; + background: transparent; + outline: none; + box-sizing: unset; position: relative; - z-index: 2147483645; - width: 32px; - height: 32px; - margin: 0 0 2px 0; cursor: pointer; - border-radius: 50%; - background: #f00; } -.it-btn__icon::after { - position: absolute; - top: 9px; - left: 12px; - display: block; +.it-button::before { content: ''; - opacity: .9; - border-top: 7px solid transparent; - border-bottom: 7px solid transparent; - border-left: 11px solid #fff; -} - -.it-btn__iframe { + border-radius: 50%; + background: #f00; + width: 24px; + height: 24px; + left: 8px; + top: 8px; position: absolute; - z-index: 2147483645; - top: 50px; - visibility: hidden; - width: 320px; - max-width: 80vw; - height: 500px; - max-height: 80vh; - transition: opacity 150ms; - pointer-events: none; - opacity: 0; -} - -#end #buttons .it-btn__iframe, -#yt-masthead-user .it-btn__iframe { - right: 0; - left: auto; } -.it-btn.it-btn--active .it-btn__scrim { - visibility: visible; - pointer-events: all; - opacity: .5; +.it-button::after { + position: absolute; + left: 16px; + top: 14px; + content: ''; + border-top: 6px solid transparent; + border-bottom: 6px solid transparent; + border-left: 10px solid #fff; } -.it-btn.it-btn--active .it-btn__iframe { - visibility: visible; - pointer-events: all; - opacity: 1; +.it-button--draggable { + position: fixed; + z-index: 5000; + left: calc(100vw - 64px); + top: calc(100vh - 64px); + width: 32px; + height: 32px; } -.it-btn--dragging, -.it-btn--dragging .it-btn__icon, -.it-btn--dragging .it-btn__iframe { - pointer-events: none !important; +.it-button--draggable::before { + width: 32px; + height: 32px; } -.it-btn--dragging .it-btn__iframe { - opacity: .75 !important; +.it-button--draggable::after { + left: 20px; + top: 16px; + border-top: 8px solid transparent; + border-bottom: 8px solid transparent; + border-left: 12px solid #fff; } diff --git a/manifest.json b/manifest.json index 40d7e9ca1..0407d2af5 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.388", + "version": "3.390", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 10b5af53d..da03f7b44 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3536,8 +3536,8 @@ document.addEventListener('improvedtube-analyzer', function (event) { ------------------------------------------------------------------------------*/ ImprovedTube.improvedtube_youtube_icon_resize = function () { - var iframe = document.querySelector('.it-btn__iframe'), - icon = document.querySelector('.it-btn__icon'); + var iframe = document.querySelector('.it-button__iframe'), + icon = document.querySelector('.it-button__icon'); if (iframe && icon) { var x = icon.getBoundingClientRect().x, @@ -3566,18 +3566,18 @@ ImprovedTube.improvedtube_youtube_icon_resize = function () { }; ImprovedTube.improvedtubeYoutubeIcon = function () { - if (window.self !== window.top || ImprovedTube.elements.improvedtube_button) { + if (window.self !== window.top) { return false; } var option = ImprovedTube.storage.improvedtube_youtube_icon; if ( - ImprovedTube.isset(option) && option !== 'disabled' && + this.isset(option) && option !== 'disabled' && ( - option === 'header_left' && ImprovedTube.elements.masthead.start || - option === 'header_right' && ImprovedTube.elements.masthead.end || - option === 'below_player' && ImprovedTube.elements.video_title || + option === 'header_left' && this.elements.masthead.start || + option === 'header_right' && this.elements.masthead.end || + option === 'below_player' && this.elements.video_title || option === 'draggable' && document.body ) ) { @@ -3586,12 +3586,12 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { icon = document.createElement('div'), iframe = document.createElement('iframe'); - button.className = 'it-btn'; + button.className = 'it-button'; button.addEventListener('click', function () { event.preventDefault(); event.stopPropagation(); - button.classList.remove('it-btn--dragging'); + button.classList.remove('it-button--dragging'); window.removeEventListener('mousemove', move); @@ -3604,15 +3604,15 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { button.style.pointerEvents = ''; }); - this.classList.toggle('it-btn--active'); + this.classList.toggle('it-button--active'); ImprovedTube.improvedtube_youtube_icon_resize(); return false; }, true); - scrim.className = 'it-btn__scrim'; - icon.className = 'it-btn__icon'; - iframe.className = 'it-btn__iframe'; + scrim.className = 'it-button__scrim'; + icon.className = 'it-button__icon'; + iframe.className = 'it-button__iframe'; iframe.src = '//www.youtube.com/improvedtube'; @@ -3627,7 +3627,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { } function move(event) { - button.classList.add('it-btn--dragging'); + button.classList.add('it-button--dragging'); if (event.clientX < window.innerWidth / 2) { if (event.clientX - Number(button.dataset.x) >= 16) { @@ -3668,7 +3668,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { }); window.addEventListener('mouseup', function () { - button.classList.remove('it-btn--dragging'); + button.classList.remove('it-button--dragging'); window.removeEventListener('mousemove', move); @@ -3699,6 +3699,102 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { } }; +ImprovedTube.improvedtubeYoutubeIcon = function () { + var data = localStorage.getItem('improvedtube-button-position'), + x = 0, + y = 0, + option = this.storage.improvedtube_youtube_icon, + button = this.elements.improvedtube_button; + + if (data) { + data = JSON.parse(data); + + x = Math.min(Math.max(data.x, 0), document.body.offsetWidth - 48); + y = Math.min(Math.max(data.y, 0), window.innerHeight - 48); + } + + if (!button) { + button = document.createElement('button'); + + button.className = 'it-button'; + + button.addEventListener('mousedown', function(event) { + if (ImprovedTube.storage.improvedtube_youtube_icon === 'draggable') { + var x2 = event.layerX, + y2 = event.layerY; + + function mousemove(event) { + if (button.className.indexOf('dragging') === -1) { + button.classList.add('it-button--dragging'); + } + + x = Math.min(Math.max(event.clientX - x2, 0), document.body.offsetWidth - 48); + y = Math.min(Math.max(event.clientY - y2, 0), window.innerHeight - 48); + + button.style.left = x + 'px'; + button.style.top = y + 'px'; + } + + function mouseup() { + localStorage.setItem('improvedtube-button-position', JSON.stringify({x, y})); + + window.removeEventListener('mousemove', mousemove); + window.removeEventListener('mouseup', mouseup); + } + + function click() { + button.classList.remove('it-button--dragging'); + + window.removeEventListener('click', click); + } + + window.addEventListener('mousemove', mousemove); + window.addEventListener('mouseup', mouseup); + window.addEventListener('click', click); + + event.preventDefault(); + } + }); + + button.addEventListener('click', function() { + if (this.classList.contains('it-button--dragging') === false) { + + } + }); + + this.elements.improvedtube_button = button; + } + + button.className = 'it-button'; + button.style.left = ''; + button.style.top = ''; + + if (option === 'header_left') { + if (this.elements.masthead.start) { + this.elements.masthead.start.insertBefore(button, this.elements.masthead.start.children[0]); + } + } else if (option === 'header_right') { + if (this.elements.masthead.end) { + this.elements.masthead.end.appendChild(button); + } + } else if (option === 'below_player') { + if (this.elements.video_title) { + this.elements.video_title.appendChild(button); + } + } else if (option === 'draggable') { + if (document.body) { + button.style.left = x + 'px'; + button.style.top = y + 'px'; + + button.classList.add('it-button--draggable'); + + document.body.appendChild(button); + } + } else if (button) { + button.remove(); + } +}; + /*------------------------------------------------------------------------------ 10.2 IMPROVEDTUBE BUTTON (SIDEBAR) From e878617812af76e853455fc68d9c375eef7a5ca8 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 1 Aug 2021 18:48:22 +0300 Subject: [PATCH 0294/1224] Redeveloped ImprovedTube iframe for YouTube --- content-styles.css | 26 ++++++++ manifest.json | 2 +- youtube-scripts.js | 163 ++++++++------------------------------------- 3 files changed, 55 insertions(+), 136 deletions(-) diff --git a/content-styles.css b/content-styles.css index 00a0d3616..ea28c18c6 100644 --- a/content-styles.css +++ b/content-styles.css @@ -3445,6 +3445,32 @@ html[it-channel-hide-featured-content=true] #secondary ytd-browse-secondary-cont border-left: 12px solid #fff; } +.it-button__scrim { + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100vh; + z-index: 5001; + background: rgba(0, 0, 0, .4); +} + +.it-button__iframe { + position: fixed; + z-index: 5002; + width: 300px; + height: 500px; + max-height: calc(100vh - 16px); + max-width: calc(100vw - 16px); + margin: 0; + border: none; + padding: 0; + border-radius: 8px; + overflow: hidden; + background: #fff; + display: block; +} + /*------------------------------------------------------------------------------ 9.0 BLACKLIST diff --git a/manifest.json b/manifest.json index 0407d2af5..691914076 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.390", + "version": "3.391", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index da03f7b44..f8dcff506 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3565,140 +3565,6 @@ ImprovedTube.improvedtube_youtube_icon_resize = function () { } }; -ImprovedTube.improvedtubeYoutubeIcon = function () { - if (window.self !== window.top) { - return false; - } - - var option = ImprovedTube.storage.improvedtube_youtube_icon; - - if ( - this.isset(option) && option !== 'disabled' && - ( - option === 'header_left' && this.elements.masthead.start || - option === 'header_right' && this.elements.masthead.end || - option === 'below_player' && this.elements.video_title || - option === 'draggable' && document.body - ) - ) { - var button = document.createElement('div'), - scrim = document.createElement('div'), - icon = document.createElement('div'), - iframe = document.createElement('iframe'); - - button.className = 'it-button'; - button.addEventListener('click', function () { - event.preventDefault(); - event.stopPropagation(); - - button.classList.remove('it-button--dragging'); - - window.removeEventListener('mousemove', move); - - localStorage.setItem('IT_ICON', JSON.stringify({ - x: button.offsetLeft, - y: button.offsetTop - })); - - setTimeout(function () { - button.style.pointerEvents = ''; - }); - - this.classList.toggle('it-button--active'); - ImprovedTube.improvedtube_youtube_icon_resize(); - - return false; - }, true); - - scrim.className = 'it-button__scrim'; - icon.className = 'it-button__icon'; - iframe.className = 'it-button__iframe'; - - iframe.src = '//www.youtube.com/improvedtube'; - - if (option === 'draggable') { - var position = localStorage.getItem('IT_ICON'); - - if (ImprovedTube.isset(position)) { - position = JSON.parse(position); - - button.style.left = position.x + 'px'; - button.style.top = position.y + 'px'; - } - - function move(event) { - button.classList.add('it-button--dragging'); - - if (event.clientX < window.innerWidth / 2) { - if (event.clientX - Number(button.dataset.x) >= 16) { - button.style.left = event.clientX - Number(button.dataset.x) + 'px'; - } else { - button.style.left = '16px'; - } - } else { - if (event.clientX + (48 + window.innerWidth - document.body.offsetWidth) - Number(button.dataset.x) <= window.innerWidth) { - button.style.left = event.clientX - Number(button.dataset.x) + 'px'; - } else { - button.style.left = 'calc(100vw - ' + (48 + window.innerWidth - document.body.offsetWidth) + 'px)'; - } - } - - if (event.clientY < window.innerHeight / 2) { - if (event.clientY - Number(button.dataset.y) >= 12) { - button.style.top = event.clientY - Number(button.dataset.y) + 'px'; - } else { - button.style.top = '12px'; - } - } else { - if (event.clientY + 44 - Number(button.dataset.y) <= window.innerHeight) { - button.style.top = event.clientY - Number(button.dataset.y) + 'px'; - } else { - button.style.top = 'calc(100vh - 44px)'; - } - } - - ImprovedTube.improvedtube_youtube_icon_resize(); - } - - button.addEventListener('mousedown', function (event) { - this.dataset.x = event.layerX; - this.dataset.y = event.layerY; - - window.addEventListener('mousemove', move); - }); - - window.addEventListener('mouseup', function () { - button.classList.remove('it-button--dragging'); - - window.removeEventListener('mousemove', move); - - localStorage.setItem('IT_ICON', JSON.stringify({ - x: button.offsetLeft, - y: button.offsetTop - })); - - setTimeout(function () { - button.style.pointerEvents = ''; - }); - }); - } - - if (option === 'header_left') { - ImprovedTube.elements.masthead.start.insertBefore(button, ImprovedTube.elements.masthead.start.children[0]); - } else if (option === 'header_right') { - ImprovedTube.elements.masthead.end.appendChild(button); - } else if (option === 'below_player') { - ImprovedTube.elements.video_title.appendChild(button); - } else if (option === 'draggable') { - document.body.appendChild(button); - } - - ImprovedTube.elements.improvedtube_button = button; - - ImprovedTube.improvedtube_youtube_icon_resize(); - } -}; - ImprovedTube.improvedtubeYoutubeIcon = function () { var data = localStorage.getItem('improvedtube-button-position'), x = 0, @@ -3758,7 +3624,34 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { button.addEventListener('click', function() { if (this.classList.contains('it-button--dragging') === false) { - + var rect = this.getBoundingClientRect(), + left = rect.x, + top = rect.y, + scrim = document.createElement('div'), + iframe = document.createElement('iframe'); + + scrim.className = 'it-button__scrim'; + scrim.addEventListener('click', function() { + scrim.remove(); + iframe.remove(); + }); + + iframe.className = 'it-button__iframe'; + iframe.src = '//www.youtube.com/improvedtube'; + + if (document.body.offsetWidth - left < 308) { + left = document.body.offsetWidth - 308; + } + + if (window.innerHeight - top < Math.min(500, window.innerHeight) + 8) { + top = window.innerHeight - Math.min(500, window.innerHeight) - 8; + } + + iframe.style.left = left + 'px'; + iframe.style.top = top + 'px'; + + document.body.appendChild(scrim); + document.body.appendChild(iframe); } }); From 62d3ac1abc354ac8a52ffa69e705bdfaad5199fe Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 2 Aug 2021 13:09:06 +0300 Subject: [PATCH 0295/1224] Fixed "Playback speed" shortcut --- manifest.json | 2 +- youtube-scripts.js | 18 +++++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/manifest.json b/manifest.json index 691914076..209753468 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.391", + "version": "3.392", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index f8dcff506..2d7492f01 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2945,11 +2945,7 @@ ImprovedTube.shortcutIncreasePlaybackSpeed = function () { value = Number(ImprovedTube.storage.shortcut_playback_speed_step) || .05; if (video) { - if (video.playbackRate < 1 && video.playbackRate > 1 - value) { - video.playbackRate = 1 - } else { - video.playbackRate = Math.max(Number((video.playbackRate + value).toFixed(2)), .1); - } + video.playbackRate = video.playbackRate + value; ImprovedTube.showStatus(video.playbackRate); } @@ -2964,12 +2960,8 @@ ImprovedTube.shortcutDecreasePlaybackSpeed = function () { var video = this.elements.video, value = Number(ImprovedTube.storage.shortcut_playback_speed_step) || .05; - if (video) { - if (video.playbackRate < .15 + value) { - video.playbackRate = (video.playbackRate * 0.7).toFixed(3) - } else { - video.playbackRate = Math.max(Number((video.playbackRate - value).toFixed(2)), .1); - } + if (video) { + video.playbackRate = Math.max(video.playbackRate - value, .05); ImprovedTube.showStatus(video.playbackRate); } @@ -3151,6 +3143,10 @@ ImprovedTube.showStatus = function (value) { this.elements.status.id = 'it-status'; } + if (typeof value === 'number') { + value = value.toFixed(2); + } + this.elements.status.textContent = value; if (ImprovedTube.status_timer) { From 919273bee10ef2556b1cc4725a9f7cb586d02879 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 2 Aug 2021 13:50:58 +0300 Subject: [PATCH 0296/1224] Added "Sidebar" option to "ImprovedTube icon on YouTube" feature --- content-styles.css | 68 ++++++++++++++++++++++--------- manifest.json | 2 +- popup.js | 3 ++ youtube-scripts.js | 99 +++++++++++----------------------------------- 4 files changed, 78 insertions(+), 94 deletions(-) diff --git a/content-styles.css b/content-styles.css index ea28c18c6..9dac6ddf6 100644 --- a/content-styles.css +++ b/content-styles.css @@ -3391,43 +3391,75 @@ html[it-channel-hide-featured-content=true] #secondary ytd-browse-secondary-cont ------------------------------------------------------------------------------*/ .it-button { + position: relative; + box-sizing: unset; width: 24px; height: 24px; padding: 8px; + cursor: pointer; border: none; - background: transparent; outline: none; - box-sizing: unset; - position: relative; - cursor: pointer; + background: transparent; +} + +.it-button>span { + display: none; + margin: 0 0 0 24px; } .it-button::before { + position: absolute; + top: 8px; + left: 8px; + width: 24px; + height: 24px; content: ''; border-radius: 50%; background: #f00; - width: 24px; - height: 24px; - left: 8px; - top: 8px; - position: absolute; } .it-button::after { position: absolute; - left: 16px; top: 14px; + left: 16px; content: ''; border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-left: 10px solid #fff; } +ytd-guide-section-renderer .it-button { + font-family: inherit; + font-size: var(--ytd-user-comment_-_font-size); + font-weight: var(--ytd-user-comment_-_font-weight); + line-height: var(--ytd-user-comment_-_line-height); + display: flex; + box-sizing: border-box; + width: 100%; + height: 40px; + padding: 0 24px; + letter-spacing: var(--ytd-user-comment_-_letter-spacing); + color: var(--yt-spec-text-primary); + align-items: center; +} + +ytd-guide-section-renderer .it-button>span { + display: inline; +} + +ytd-guide-section-renderer .it-button::before { + position: static; +} + +ytd-guide-section-renderer .it-button::after { + left: 32px; +} + .it-button--draggable { position: fixed; z-index: 5000; - left: calc(100vw - 64px); top: calc(100vh - 64px); + left: calc(100vw - 64px); width: 32px; height: 32px; } @@ -3438,8 +3470,8 @@ html[it-channel-hide-featured-content=true] #secondary ytd-browse-secondary-cont } .it-button--draggable::after { - left: 20px; top: 16px; + left: 20px; border-top: 8px solid transparent; border-bottom: 8px solid transparent; border-left: 12px solid #fff; @@ -3447,28 +3479,28 @@ html[it-channel-hide-featured-content=true] #secondary ytd-browse-secondary-cont .it-button__scrim { position: fixed; - left: 0; + z-index: 5001; top: 0; + left: 0; width: 100%; height: 100vh; - z-index: 5001; background: rgba(0, 0, 0, .4); } .it-button__iframe { position: fixed; z-index: 5002; + display: block; + overflow: hidden; width: 300px; + max-width: calc(100vw - 16px); height: 500px; max-height: calc(100vh - 16px); - max-width: calc(100vw - 16px); margin: 0; - border: none; padding: 0; + border: none; border-radius: 8px; - overflow: hidden; background: #fff; - display: block; } diff --git a/manifest.json b/manifest.json index 209753468..b0a648daf 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.392", + "version": "3.393", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index fd4e8dcb3..32fa13b8c 100644 --- a/popup.js +++ b/popup.js @@ -496,6 +496,9 @@ skeleton.header.section_end.button_vert.onClickRender.settings = { }, { label: 'youtubeHeaderRight', value: 'header_right' + }, { + label: 'sidebar', + value: 'sidebar' }, { label: 'draggable', value: 'draggable' diff --git a/youtube-scripts.js b/youtube-scripts.js index 2d7492f01..c658f5fe8 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -90,11 +90,10 @@ 9.0 Analyzer 10.0 Settings 10.1 ImprovedTube icon - 10.2 ImprovedTube button (sidebar) - 10.3 ImprovedTube player buttons - 10.4 Delete YouTube cookies - 10.5 YouTube language - 10.6 Default content country + 10.2 ImprovedTube player buttons + 10.3 Delete YouTube cookies + 10.4 YouTube language + 10.5 Default content country ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ @@ -408,6 +407,12 @@ ImprovedTube.init = function () { ImprovedTube.channelVideosCount(); } else if (node.nodeName === 'YTD-SUBSCRIBE-BUTTON-RENDERER' && node.className.indexOf('ytd-c4-tabbed-header-renderer') !== -1) { ImprovedTube.blacklist('channel', node); + } else if (node.nodeName === 'YTD-GUIDE-SECTION-RENDERER') { + if (ImprovedTube.elements.hasOwnProperty('sidebar_section') === false) { + ImprovedTube.elements.sidebar_section = node; + + ImprovedTube.improvedtubeYoutubeIcon(); + } } } } @@ -3531,36 +3536,6 @@ document.addEventListener('improvedtube-analyzer', function (event) { 10.1 IMPROVEDTUBE ICON ------------------------------------------------------------------------------*/ -ImprovedTube.improvedtube_youtube_icon_resize = function () { - var iframe = document.querySelector('.it-button__iframe'), - icon = document.querySelector('.it-button__icon'); - - if (iframe && icon) { - var x = icon.getBoundingClientRect().x, - y = icon.getBoundingClientRect().y; - - if (x < window.innerWidth / 2) { - iframe.style.right = 'auto'; - iframe.style.left = '0px'; - } else { - iframe.style.right = '0px'; - iframe.style.left = 'auto'; - } - - if (y < window.innerHeight / 2) { - iframe.style.top = '50px'; - iframe.style.bottom = 'auto'; - - iframe.style.height = Math.min(500, window.innerHeight - Math.max(0, iframe.getBoundingClientRect().top) - 16) + 'px'; - } else { - iframe.style.top = 'auto'; - iframe.style.bottom = '50px'; - - iframe.style.height = Math.min(500, window.innerHeight - Math.max(0, window.innerHeight - iframe.getBoundingClientRect().y - iframe.getBoundingClientRect().height) - 16) + 'px'; - } - } -}; - ImprovedTube.improvedtubeYoutubeIcon = function () { var data = localStorage.getItem('improvedtube-button-position'), x = 0, @@ -3576,6 +3551,8 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { } if (!button) { + var label = document.createElement('span'); + button = document.createElement('button'); button.className = 'it-button'; @@ -3651,6 +3628,10 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { } }); + label.textContent = 'ImprovedTube'; + + button.appendChild(label); + this.elements.improvedtube_button = button; } @@ -3670,6 +3651,10 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { if (this.elements.video_title) { this.elements.video_title.appendChild(button); } + } else if (option === 'sidebar') { + if (this.elements.sidebar_section) { + this.elements.sidebar_section.appendChild(button); + } } else if (option === 'draggable') { if (document.body) { button.style.left = x + 'px'; @@ -3686,43 +3671,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { /*------------------------------------------------------------------------------ -10.2 IMPROVEDTUBE BUTTON (SIDEBAR) -------------------------------------------------------------------------------*/ -/* -ImprovedTube.improvedtube_youtube_sidebar_button_wait = false; - -ImprovedTube.improvedtubeYoutubeSidebarButton = function() { - if (window.self !== window.top) { - return false; - } - - if ( - ImprovedTube.storage.improvedtube_youtube_sidebar_button_wait === false && - document.querySelector('.improvedtube-sidebar-a') - ) { - document.querySelector('.improvedtube-sidebar-a').remove(); - } - - if (this.improvedtube_youtube_sidebar_button_wait === false) { - this.improvedtube_youtube_sidebar_button_wait = setInterval(function() { - var second_section = document.querySelector('#guide ytd-guide-collapsible-section-entry-renderer'); - - if (second_section && !document.querySelector('.improvedtube-sidebar-a')) { - var a = document.createElement('a'); - - a.className = 'improvedtube-sidebar-a'; - a.href = 'https://www.youtube.com/improvedtube'; - a.innerText = 'ImprovedTube'; - - second_section.parentNode.insertBefore(a, second_section); - } - }, 250); - } -}; - - -/*------------------------------------------------------------------------------ -10.3 IMPROVEDTUBE PLAYER BUTTONS +10.2 IMPROVEDTUBE PLAYER BUTTONS ------------------------------------------------------------------------------*/ /* ImprovedTube.improvedtube_youtube_player_buttons_wait = false; @@ -3765,7 +3714,7 @@ ImprovedTube.improvedtubeYoutubePlayerButtons = function() { /*----------------------------------------------------------------------------- -10.4 DELETE YOUTUBE COOKIES +10.3 DELETE YOUTUBE COOKIES -----------------------------------------------------------------------------*/ ImprovedTube.deleteYoutubeCookies = function () { @@ -3786,7 +3735,7 @@ ImprovedTube.deleteYoutubeCookies = function () { /*----------------------------------------------------------------------------- -10.5 YOUTUBE LANGUAGE +10.4 YOUTUBE LANGUAGE -----------------------------------------------------------------------------*/ ImprovedTube.youtubeLanguage = function () { @@ -3806,7 +3755,7 @@ ImprovedTube.youtubeLanguage = function () { /*----------------------------------------------------------------------------- -10.6 DEFAULT CONTENT COUNTRY +10.5 DEFAULT CONTENT COUNTRY -----------------------------------------------------------------------------*/ ImprovedTube.defaultContentCountry = function () { From 4217742d3ace4924f915e8e708b30cf0a19ba284 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 2 Aug 2021 13:53:42 +0300 Subject: [PATCH 0297/1224] Removed commented code of custom buttons under player --- youtube-scripts.js | 43 ------------------------------------------- 1 file changed, 43 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index c658f5fe8..deb9df4cd 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3670,49 +3670,6 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { }; -/*------------------------------------------------------------------------------ -10.2 IMPROVEDTUBE PLAYER BUTTONS -------------------------------------------------------------------------------*/ -/* -ImprovedTube.improvedtube_youtube_player_buttons_wait = false; - -ImprovedTube.improvedtubeYoutubePlayerButtons = function() { - if (window.self !== window.top) { - return false; - } - - if (this.improvedtube_youtube_player_buttons_wait === false) { - this.improvedtube_youtube_player_buttons_wait = setInterval(function() { - var second_section = document.querySelector('#info #menu-container.ytd-video-primary-info-renderer'); - - if (second_section && !document.querySelector('.improvedtube-player-button')) { - var screenshot_button = document.createElement('button'), - pip_button = document.createElement('button'); - - screenshot_button.className = 'improvedtube-player-button'; - screenshot_button.innerHTML = ''; - screenshot_button.dataset.tooltip = 'Screenshot'; - screenshot_button.onclick = ImprovedTube.screenshot; - - pip_button.className = 'improvedtube-player-button'; - pip_button.innerHTML = ''; - pip_button.dataset.tooltip = 'Picture in picture'; - pip_button.onclick = function() { - var video = document.querySelector('#movie_player video'); - - if (video) { - video.requestPictureInPicture(); - } - }; - - second_section.parentNode.insertBefore(screenshot_button, second_section); - second_section.parentNode.insertBefore(pip_button, second_section); - } - }, 250); - } -}; - - /*----------------------------------------------------------------------------- 10.3 DELETE YOUTUBE COOKIES -----------------------------------------------------------------------------*/ From 2a27504f5bee76063dfe3c34e68141d94fa2cf7e Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 2 Aug 2021 13:56:05 +0300 Subject: [PATCH 0298/1224] Optimized "Toggle cards" shortcut --- youtube-scripts.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index deb9df4cd..964de89ff 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3119,12 +3119,7 @@ ImprovedTube.shortcutStatsForNerds = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutToggleCards = function () { - if (document.documentElement.getAttribute('it-player-hide-cards')) { - document.documentElement.removeAttribute('it-player-hide-cards'); - return; - } - - document.documentElement.setAttribute('it-player-hide-cards', true); + document.documentElement.toggleAttribute('it-player-hide-cards'); }; From 9b8ba9babc6ad51afae2cc538c54f74e6f945f53 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 2 Aug 2021 13:58:21 +0300 Subject: [PATCH 0299/1224] Optimized "Shortcut" shortcut --- manifest.json | 2 +- youtube-scripts.js | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/manifest.json b/manifest.json index b0a648daf..0e06c2050 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.393", + "version": "3.395", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 964de89ff..c8501a6cc 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -405,8 +405,12 @@ ImprovedTube.init = function () { ImprovedTube.elements.yt_channel_link = node.querySelector('ytd-channel-name a'); ImprovedTube.howLongAgoTheVideoWasUploaded(); ImprovedTube.channelVideosCount(); - } else if (node.nodeName === 'YTD-SUBSCRIBE-BUTTON-RENDERER' && node.className.indexOf('ytd-c4-tabbed-header-renderer') !== -1) { - ImprovedTube.blacklist('channel', node); + } else if (node.nodeName === 'YTD-SUBSCRIBE-BUTTON-RENDERER') { + if (node.className.indexOf('ytd-c4-tabbed-header-renderer') !== -1) { + ImprovedTube.blacklist('channel', node); + } + + ImprovedTube.elements.subscribe_button = node; } else if (node.nodeName === 'YTD-GUIDE-SECTION-RENDERER') { if (ImprovedTube.elements.hasOwnProperty('sidebar_section') === false) { ImprovedTube.elements.sidebar_section = node; @@ -3041,10 +3045,8 @@ ImprovedTube.shortcutDislike = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutSubscribe = function () { - var button = document.querySelector('#subscribe-button .ytd-subscribe-button-renderer'); - - if (button) { - button.click(); + if (this.elements.subscribe_button) { + this.elements.subscribe_button.click(); } }; From b71971181e91f9eacf542e38e0fd79624d49e263 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 2 Aug 2021 14:01:13 +0300 Subject: [PATCH 0300/1224] Optimized "Activate captions" shortcut --- manifest.json | 2 +- youtube-scripts.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 0e06c2050..189ba8e5a 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.395", + "version": "3.396", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index c8501a6cc..3627ed810 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3008,8 +3008,8 @@ ImprovedTube.shortcutActivateFullscreen = function () { ImprovedTube.shortcutActivateCaptions = function () { var player = this.elements.player; - if (player && player.querySelector('.ytp-subtitles-button')) { - player.querySelector('.ytp-subtitles-button').click(); + if (player && player.toggleSubtitlesOn) { + player.toggleSubtitlesOn(); } }; From 26744a09cbb4455e1d720a64b75aa426897fa7fb Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 2 Aug 2021 14:03:40 +0300 Subject: [PATCH 0301/1224] Optimized "Increase volume"/"Decrease volume" shortcut --- youtube-scripts.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 3627ed810..6e6bc6904 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2911,12 +2911,13 @@ ImprovedTube.shortcutSeekPreviousChapter = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutIncreaseVolume = function () { - var player = this.elements.player; + var player = this.elements.player, + value = Number(this.storage.shortcut_volume_step) || 5; if (player) { - player.setVolume(player.getVolume() + (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); + player.setVolume(player.getVolume() + value); - ImprovedTube.showStatus(player.getVolume()); + this.showStatus(player.getVolume()); } }; @@ -2926,12 +2927,13 @@ ImprovedTube.shortcutIncreaseVolume = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutDecreaseVolume = function () { - var player = this.elements.player; + var player = this.elements.player, + value = Number(this.storage.shortcut_volume_step) || 5; if (player) { - player.setVolume(player.getVolume() - (Number(ImprovedTube.storage.shortcut_volume_step) || 5)); + player.setVolume(player.getVolume() - value); - ImprovedTube.showStatus(player.getVolume()); + this.showStatus(player.getVolume()); } }; From 1048d7496e2b85813db2d5822730459ce0f25293 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 2 Aug 2021 14:05:37 +0300 Subject: [PATCH 0302/1224] Removed logs and comment --- manifest.json | 2 +- youtube-scripts.js | 18 ------------------ 2 files changed, 1 insertion(+), 19 deletions(-) diff --git a/manifest.json b/manifest.json index 189ba8e5a..3c346dc66 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.396", + "version": "3.397", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 6e6bc6904..34ad059d8 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2639,23 +2639,6 @@ ImprovedTube.channelDefaultTab = function (a) { a.href = a.dataset.itOrigin + option; - /*if ( - a.data && - a.data.browseEndpoint && - a.data.browseEndpoint.canonicalBaseUrl - ) { - a.data.browseEndpoint.canonicalBaseUrl = a.href.replace('https://www.youtube.com', ''); - } - - if ( - a.data && - a.data.commandMetadata && - a.data.commandMetadata.webCommandMetadata && - a.data.commandMetadata.webCommandMetadata.url - ) { - a.data.commandMetadata.webCommandMetadata.url = a.href.replace('https://www.youtube.com', ''); - }*/ - a.addEventListener('click', function(event) { event.stopPropagation(); }, true); @@ -3517,7 +3500,6 @@ ImprovedTube.blacklist = function(type, node) { document.addEventListener('improvedtube-analyzer', function (event) { if (ImprovedTube.storage.analyzer_activation === true) { - console.log(event.detail.name, event.detail.time); chrome.runtime.sendMessage({ name: 'improvedtube-analyzer', value: event.detail.name, From a611479b36b38c606d76b2f3d10fcd9698fe81cc Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 3 Aug 2021 16:03:07 +0300 Subject: [PATCH 0303/1224] Fixed and optimized "Screenshot" feature --- manifest.json | 2 +- youtube-scripts.js | 43 +++++++++++++++++-------------------------- 2 files changed, 18 insertions(+), 27 deletions(-) diff --git a/manifest.json b/manifest.json index 3c346dc66..42cbd94e7 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.397", + "version": "3.398", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 34ad059d8..4be49cc44 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2231,21 +2231,19 @@ ImprovedTube.playerLoudnessNormalization = function () { ------------------------------------------------------------------------------*/ ImprovedTube.screenshot = function () { - document.body.style.opacity = '0'; - - var video = this.elements.video, + var video = ImprovedTube.elements.video, + style = document.createElement('style'), cvs = document.createElement('canvas'), - ctx = cvs.getContext('2d'), - old_w = video.offsetWidth, - old_h = video.offsetHeight; + ctx = cvs.getContext('2d'); - video.style.width = video.videoWidth + 'px'; - video.style.height = video.videoHeight + 'px'; + style.textContent = 'video{width:' + video.videoWidth + 'px !important;height:' + video.videoHeight + 'px !important}'; - setTimeout(function () { - cvs.width = video.videoWidth; - cvs.height = video.videoHeight; + cvs.width = video.videoWidth; + cvs.height = video.videoHeight; + + document.body.appendChild(style); + setTimeout(function () { ctx.drawImage(video, 0, 0, cvs.width, cvs.height); cvs.toBlob(function (blob) { @@ -2258,23 +2256,16 @@ ImprovedTube.screenshot = function () { a.click(); } else { - try { - navigator.clipboard.write([ - new ClipboardItem({ - 'image/png': blob - }) - ]); - } catch (error) {} + navigator.clipboard.write([ + new ClipboardItem({ + 'image/png': blob + }) + ]); } - - setTimeout(function () { - video.style.width = old_w + 'px'; - video.style.height = old_h + 'px'; - - document.body.style.opacity = '1'; - }, 100); }); - }, 100); + + style.remove(); + }); }; ImprovedTube.playerScreenshotButton = function () { From 42443bf6ee778993503ea53e7fbbf78478556c0f Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 3 Aug 2021 16:13:41 +0300 Subject: [PATCH 0304/1224] Various minor improvements --- manifest.json | 2 +- youtube-scripts.js | 41 +++++++++-------------------------------- 2 files changed, 10 insertions(+), 33 deletions(-) diff --git a/manifest.json b/manifest.json index 42cbd94e7..820ee162f 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.398", + "version": "3.399", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 4be49cc44..2049a94ab 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -523,7 +523,7 @@ ImprovedTube.playerOnPlay = function () { ImprovedTube.playerVolume(); if (location.href.indexOf('/embed/') === -1) { - ImprovedTube.mini_player(); + ImprovedTube.miniPlayer(); } } @@ -2019,7 +2019,7 @@ ImprovedTube.mini_player__resize_mouseUp = function (event) { window.removeEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); }; -ImprovedTube.mini_player = function () { +ImprovedTube.miniPlayer = function () { if (ImprovedTube.storage.mini_player === true) { var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; @@ -2028,6 +2028,7 @@ ImprovedTube.mini_player = function () { ImprovedTube.mini_player__width = strg.width || 200; ImprovedTube.mini_player__height = strg.height || 150; + window.removeEventListener('scroll', ImprovedTube.mini_player__scroll); window.addEventListener('scroll', ImprovedTube.mini_player__scroll); } else { ImprovedTube.mini_player__mode = false; @@ -2172,16 +2173,16 @@ ImprovedTube.player60fps = function () { ------------------------------------------------------------------------------*/ ImprovedTube.playerVolume = function () { - if (ImprovedTube.storage.player_forced_volume === true) { - var volume = ImprovedTube.storage.player_volume; + if (this.storage.player_forced_volume === true) { + var volume = this.storage.player_volume; - if (!ImprovedTube.isset(volume)) { + if (!this.isset(volume)) { volume = 100; } else { volume = Number(volume); } - ImprovedTube.elements.player.setVolume(volume); + this.elements.player.setVolume(volume); } }; @@ -3047,33 +3048,9 @@ ImprovedTube.shortcutDarkTheme = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutCustomMiniPlayer = function () { - ImprovedTube.storage.mini_player = !ImprovedTube.storage.mini_player; - - ImprovedTube.mini_player(); - - if (ImprovedTube.storage.mini_player === true) { - ImprovedTube.mini_player__mode = true; - - ImprovedTube.mini_player__original_width = ImprovedTube.elements.player.offsetWidth; - ImprovedTube.mini_player__original_height = ImprovedTube.elements.player.offsetHeight; - - ImprovedTube.elements.player.classList.add('it-mini-player'); - - ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); - ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); + this.storage.mini_player = !this.storage.mini_player; - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); - - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); - - window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - - window.dispatchEvent(new Event('resize')); - } + this.miniPlayer(); }; From e3bc17eeca6fd69a7b61b1295fcab59cf5976530 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 3 Aug 2021 19:03:48 +0200 Subject: [PATCH 0305/1224] #945 --- content-scripts.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content-scripts.js b/content-scripts.js index e745ce1ca..de16b3763 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -84,6 +84,8 @@ function attributes(items) { 'hide-playlist': true, 'related-videos': true, 'comments': true, + 'sidebar-left':true, + 'thumbnails-right': true, 'thumbnails-hide': true, 'hide-footer': true, 'bluelight': true, @@ -225,4 +227,4 @@ chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { chrome.runtime.sendMessage({ enabled: true -}); \ No newline at end of file +}); From 728bfea8b3696aee01f344aa73ff8469e68cbb34 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 4 Aug 2021 17:11:31 +0300 Subject: [PATCH 0306/1224] Optimized page.js --- manifest.json | 2 +- page.js | 18 +++++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/manifest.json b/manifest.json index 820ee162f..e21ed2101 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.399", + "version": "3.400", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/page.js b/page.js index c8abfe5b8..adb0e0038 100644 --- a/page.js +++ b/page.js @@ -1,13 +1,9 @@ document.addEventListener('DOMContentLoaded', function() { - document.documentElement.innerHTML = ` - - - - - - ImprovedTube - - - - `; + for (var i = document.head.childNodes.length - 1; i > -1; i--) { + document.head.childNodes[i].remove(); + } + + for (var i = document.body.childNodes.length - 1; i > -1; i--) { + document.body.childNodes[i].remove(); + } }); \ No newline at end of file From c52b2b0f394c977b84654035356592b73af8d553 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 4 Aug 2021 18:34:11 +0300 Subject: [PATCH 0307/1224] Structural changes to content-scripts.js --- content-scripts.js | 148 ++++++++++++++++++++------------------------- manifest.json | 2 +- youtube-scripts.js | 10 +++ 3 files changed, 78 insertions(+), 82 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index de16b3763..a94d6df1c 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -1,37 +1,15 @@ /*------------------------------------------------------------------------------ >>> TABLE OF CONTENTS: -------------------------------------------------------------------------------- -1.0 Empty -2.0 Isset -3.0 Camelize -4.0 Attributes -5.0 Injection -6.0 Storage -7.0 Messages +1.0 Camelize +2.0 Attributes +3.0 Injection +4.0 Storage +5.0 Messages ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -1.0 EMPTY -------------------------------------------------------------------------------*/ - -function empty(element) { - for (var i = element.childNodes.length - 1; i > -1; i--) { - element.childNodes[i].remove(); - } -} - - -/*------------------------------------------------------------------------------ -2.0 ISSET -------------------------------------------------------------------------------*/ - -function isset(variable) { - return !(typeof variable === 'undefined' || variable === null); -} - - -/*------------------------------------------------------------------------------ -3.0 CAMELIZE +1.0 CAMELIZE ------------------------------------------------------------------------------*/ function camelize(string) { @@ -46,7 +24,7 @@ function camelize(string) { /*------------------------------------------------------------------------------ -4.0 ATTRIBUTES +2.0 ATTRIBUTES ------------------------------------------------------------------------------*/ function attributes(items) { @@ -111,7 +89,7 @@ function attributes(items) { /*------------------------------------------------------------------------------ -5.0 INJECTION +3.0 INJECTION ------------------------------------------------------------------------------*/ function injectScript(string) { @@ -138,7 +116,52 @@ function injectStyles(string, id) { /*------------------------------------------------------------------------------ -6.0 STORAGE +4.0 STORAGE LISTENER +------------------------------------------------------------------------------*/ + +chrome.storage.onChanged.addListener(function (changes) { + for (var key in changes) { + var name = camelize(key.replace(/_/g, '-')), + value = changes[key].newValue; + + document.documentElement.setAttribute('it-' + name, value); + + injectScript('ImprovedTube.storage[\'' + key + '\']=' + (typeof value === 'boolean' ? value : '\'' + value + '\'') + ';'); + + if (typeof ImprovedTube[name] === 'function') { + injectScript('ImprovedTube.' + name + '();'); + } + } +}); + + +/*------------------------------------------------------------------------------ +5.0 MESSAGE LISTENER +------------------------------------------------------------------------------*/ + +chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { + if (request.action === 'focus') { + injectScript('ImprovedTube.focus = true;'); + } else if (request.action === 'blur') { + injectScript(` + ImprovedTube.focus = false; + document.dispatchEvent(new CustomEvent('improvedtube-blur')); + `); + } else if (request.action === 'improvedtube-pause') { + injectScript(` + if (ImprovedTube.elements.player) { + ImprovedTube.played_before_blur = ImprovedTube.elements.player.getPlayerState() === 1; + ImprovedTube.elements.player.pauseVideo(); + } + `); + } + + injectScript('ImprovedTube.pageOnFocus();'); +}); + + +/*------------------------------------------------------------------------------ +6.0 INITIALIZATION ------------------------------------------------------------------------------*/ chrome.storage.local.get('youtube_home_page', function (items) { @@ -155,6 +178,8 @@ chrome.storage.local.get('youtube_home_page', function (items) { option === '/feed/library' ) { location.replace(option); + + return; } } } @@ -164,67 +189,28 @@ chrome.storage.local.get('youtube_home_page', function (items) { ImprovedTube.storage = items; - // attributes - attributes(items); - - // Isset - textContent += 'isset:' + isset + ','; - - // Empty - textContent += 'empty:' + empty + ','; - - // Features for (var key in ImprovedTube) { - if (key !== 'storage') { - textContent += key + ': ' + ImprovedTube[key] + ','; + var value = ImprovedTube[key]; + + if (typeof value === 'object') { + value = JSON.stringify(value); } - } - // Storage - textContent += 'storage:' + JSON.stringify(items); + textContent += key + ': ' + value + ','; + } - // Initialization textContent += '};ImprovedTube.init();'; - document.documentElement.dataset.systemColorScheme = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; - injectScript(textContent); - }); -}); -chrome.storage.onChanged.addListener(function (changes) { - for (var key in changes) { - var name = camelize(key.replace(/_/g, '-')), - value = changes[key].newValue; - - document.documentElement.setAttribute('it-' + name, value); - - injectScript('ImprovedTube.storage[\'' + key + '\']=' + (typeof value === 'boolean' ? value : '\'' + value + '\'') + ';'); + attributes(items); - if (typeof ImprovedTube[name] === 'function') { - injectScript('ImprovedTube.' + name + '();'); + if (window.matchMedia) { + document.documentElement.dataset.systemColorScheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; } - } -}); - - -/*------------------------------------------------------------------------------ -7.0 MESSAGES -------------------------------------------------------------------------------*/ - -chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { - if (request.action === 'focus') { - injectScript('ImprovedTube.focus = true;'); - } else if (request.action === 'blur') { - injectScript('ImprovedTube.focus = false;document.dispatchEvent(new CustomEvent("improvedtube-blur"));'); - } else if (request.action === 'improvedtube-pause') { - injectScript('if (ImprovedTube.elements.player) {ImprovedTube.played_before_blur = ImprovedTube.elements.player.getPlayerState() === 1; ImprovedTube.elements.player.pauseVideo();}'); - } - - injectScript('ImprovedTube.pageOnFocus();'); + }); }); - chrome.runtime.sendMessage({ enabled: true -}); +}); \ No newline at end of file diff --git a/manifest.json b/manifest.json index e21ed2101..e90c55004 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.400", + "version": "3.405", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 2049a94ab..8c4c4fef7 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -736,6 +736,16 @@ ImprovedTube.reverse = function (parent) { } }; +ImprovedTube.empty = function (element) { + for (var i = element.childNodes.length - 1; i > -1; i--) { + element.childNodes[i].remove(); + } +}; + +ImprovedTube.isset = function (variable) { + return !(typeof variable === 'undefined' || variable === null); +}; + /*------------------------------------------------------------------------------ 1.0 GENERAL From cf3458d6d8f1d0e3cdcf3e27f7e5e804971a5150 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 5 Aug 2021 08:55:44 +0300 Subject: [PATCH 0308/1224] "Custom mini player" feature optimizations --- manifest.json | 2 +- youtube-scripts.js | 170 ++++++++++++++++++++++++--------------------- 2 files changed, 90 insertions(+), 82 deletions(-) diff --git a/manifest.json b/manifest.json index e90c55004..2fc7c942f 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.405", + "version": "3.406", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 8c4c4fef7..3a97a5266 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -138,11 +138,11 @@ var ImprovedTube = { mini_player__original_height: 0, mini_player__width: 200, mini_player__height: 160, - mini_player__mousedown_x: 0, - mini_player__mousedown_y: 0, + miniPlayer_mouseDown_x: 0, + miniPlayer_mouseDown_y: 0, mini_player__player_offset_x: 0, mini_player__player_offset_y: 0, - mini_player__resize_offset: 16, + miniPlayer_resize_offset: 16, playlistReversed: false, status_timer: false }; @@ -1747,16 +1747,12 @@ ImprovedTube.playerAds = function (parent) { 4.7 CUSTOM MINI-PLAYER ------------------------------------------------------------------------------*/ -ImprovedTube.mini_player__setPosition = function (x, y) { - ImprovedTube.elements.player.style.transform = 'translate(' + x + 'px, ' + y + 'px)'; -}; - ImprovedTube.mini_player__setSize = function (width, height) { ImprovedTube.elements.player.style.width = width + 'px'; ImprovedTube.elements.player.style.height = height + 'px'; }; -ImprovedTube.mini_player__scroll = function () { +ImprovedTube.miniPlayer_scroll = function () { if (window.scrollY >= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.elements.player.classList.contains('ytp-player-minimized') === false) { ImprovedTube.mini_player__mode = true; @@ -1771,38 +1767,38 @@ ImprovedTube.mini_player__scroll = function () { ImprovedTube.mini_player__cursor = ''; document.documentElement.removeAttribute('it-mini-player-cursor'); - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, ImprovedTube.mini_player__y); + ImprovedTube.elements.player.style.transform = 'translate(' + ImprovedTube.mini_player__x + 'px, ' + ImprovedTube.mini_player__y + 'px)'; ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); - window.addEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); + window.addEventListener('mousedown', ImprovedTube.miniPlayer_mouseDown); + window.addEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); window.dispatchEvent(new Event('resize')); } else if (window.scrollY < 256 && ImprovedTube.mini_player__mode === true || ImprovedTube.elements.player.classList.contains('ytp-player-minimized') === true) { ImprovedTube.mini_player__mode = false; ImprovedTube.elements.player.classList.remove('it-mini-player'); ImprovedTube.mini_player__move = false; - ImprovedTube.mini_player__setPosition(0, 0); + ImprovedTube.elements.player.style.transform = 'translate(' + 0 + 'px, ' + 0 + 'px)'; ImprovedTube.elements.player.style.width = ''; ImprovedTube.elements.player.style.height = ''; ImprovedTube.mini_player__cursor = ''; document.documentElement.removeAttribute('it-mini-player-cursor'); - window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); + window.removeEventListener('mousedown', ImprovedTube.miniPlayer_mouseDown); + window.removeEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); window.dispatchEvent(new Event('resize')); } }; -ImprovedTube.mini_player__mousedown = function (event) { +ImprovedTube.miniPlayer_mouseDown = function (event) { if (event.button !== 0) { return false; } - if (ImprovedTube.mini_player__resize() === true) { + if (ImprovedTube.miniPlayer_resize() === true) { return false; } @@ -1823,8 +1819,8 @@ ImprovedTube.mini_player__mousedown = function (event) { var bcr = ImprovedTube.elements.player.getBoundingClientRect(); - ImprovedTube.mini_player__mousedown_x = event.clientX; - ImprovedTube.mini_player__mousedown_y = event.clientY; + ImprovedTube.miniPlayer_mouseDown_x = event.clientX; + ImprovedTube.miniPlayer_mouseDown_y = event.clientY; ImprovedTube.mini_player__width = bcr.width; ImprovedTube.mini_player__height = bcr.height; @@ -1834,11 +1830,11 @@ ImprovedTube.mini_player__mousedown = function (event) { ImprovedTube.mini_player__max_x = document.body.offsetWidth - ImprovedTube.mini_player__width; ImprovedTube.mini_player__max_y = window.innerHeight - ImprovedTube.mini_player__height; - window.addEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.addEventListener('mousemove', ImprovedTube.mini_player__mousemove); + window.addEventListener('mouseup', ImprovedTube.miniPlayer_mouseUp); + window.addEventListener('mousemove', ImprovedTube.miniPlayer_mouseMove); }; -ImprovedTube.mini_player__mouseup = function () { +ImprovedTube.miniPlayer_mouseUp = function () { var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; strg.x = ImprovedTube.mini_player__x; @@ -1846,27 +1842,27 @@ ImprovedTube.mini_player__mouseup = function () { localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); + window.removeEventListener('mouseup', ImprovedTube.miniPlayer_mouseUp); + window.removeEventListener('mousemove', ImprovedTube.miniPlayer_mouseMove); ImprovedTube.mini_player__move = false; setTimeout(function () { - window.removeEventListener('click', ImprovedTube.mini_player__click, true); + window.removeEventListener('click', ImprovedTube.miniPlayer_click, true); }); }; -ImprovedTube.mini_player__click = function (event) { +ImprovedTube.miniPlayer_click = function (event) { event.stopPropagation(); event.preventDefault(); }; -ImprovedTube.mini_player__mousemove = function (event) { +ImprovedTube.miniPlayer_mouseMove = function (event) { if ( - event.clientX < ImprovedTube.mini_player__mousedown_x - 5 || - event.clientY < ImprovedTube.mini_player__mousedown_y - 5 || - event.clientX > ImprovedTube.mini_player__mousedown_x + 5 || - event.clientY > ImprovedTube.mini_player__mousedown_y + 5 + event.clientX < ImprovedTube.miniPlayer_mouseDown_x - 5 || + event.clientY < ImprovedTube.miniPlayer_mouseDown_y - 5 || + event.clientX > ImprovedTube.miniPlayer_mouseDown_x + 5 || + event.clientY > ImprovedTube.miniPlayer_mouseDown_y + 5 ) { var x = event.clientX - ImprovedTube.mini_player__player_offset_x, y = event.clientY - ImprovedTube.mini_player__player_offset_y; @@ -1874,7 +1870,7 @@ ImprovedTube.mini_player__mousemove = function (event) { if (ImprovedTube.mini_player__move === false) { ImprovedTube.mini_player__move = true; - window.addEventListener('click', ImprovedTube.mini_player__click, true); + window.addEventListener('click', ImprovedTube.miniPlayer_click, true); } if (x < 0) { @@ -1896,52 +1892,52 @@ ImprovedTube.mini_player__mousemove = function (event) { ImprovedTube.mini_player__x = x; ImprovedTube.mini_player__y = y; - ImprovedTube.mini_player__setPosition(x, y); + ImprovedTube.elements.player.style.transform = 'translate(' + x + 'px, ' + y + 'px)'; } }; -ImprovedTube.mini_player__cursorUpdate = function (event) { +ImprovedTube.miniPlayer_cursorUpdate = function (event) { var x = event.clientX, y = event.clientY, c = ImprovedTube.mini_player__cursor; if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && + x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.miniPlayer_resize_offset && x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset + y <= ImprovedTube.mini_player__y + ImprovedTube.miniPlayer_resize_offset ) { c = 'ne-resize'; } else if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && + x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.miniPlayer_resize_offset && x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && + y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.miniPlayer_resize_offset && y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height ) { c = 'se-resize'; } else if ( x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && + x <= ImprovedTube.mini_player__x + ImprovedTube.miniPlayer_resize_offset && + y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.miniPlayer_resize_offset && y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height ) { c = 'sw-resize'; } else if ( x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && + x <= ImprovedTube.mini_player__x + ImprovedTube.miniPlayer_resize_offset && y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset + y <= ImprovedTube.mini_player__y + ImprovedTube.miniPlayer_resize_offset ) { c = 'nw-resize'; } else if ( x >= ImprovedTube.mini_player__x && x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__resize_offset + y <= ImprovedTube.mini_player__y + ImprovedTube.miniPlayer_resize_offset ) { c = 'n-resize'; } else if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.mini_player__resize_offset && + x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.miniPlayer_resize_offset && x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && y >= ImprovedTube.mini_player__y && y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height @@ -1950,13 +1946,13 @@ ImprovedTube.mini_player__cursorUpdate = function (event) { } else if ( x >= ImprovedTube.mini_player__x && x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.mini_player__resize_offset && + y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.miniPlayer_resize_offset && y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height ) { c = 's-resize'; } else if ( x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__resize_offset && + x <= ImprovedTube.mini_player__x + ImprovedTube.miniPlayer_resize_offset && y >= ImprovedTube.mini_player__y && y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height ) { @@ -1972,42 +1968,42 @@ ImprovedTube.mini_player__cursorUpdate = function (event) { } }; -ImprovedTube.mini_player__resize = function (event) { +ImprovedTube.miniPlayer_resize = function (event) { if (ImprovedTube.mini_player__cursor !== '') { - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - window.addEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); - window.addEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); + window.removeEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); + window.addEventListener('mouseup', ImprovedTube.miniPlayer_resizeMouseUp); + window.addEventListener('mousemove', ImprovedTube.miniPlayer_resizeMouseMove); return true; } }; -ImprovedTube.mini_player__resize_mouseMove = function (event) { +ImprovedTube.miniPlayer_resizeMouseMove = function (event) { if (ImprovedTube.mini_player__cursor === 'n-resize') { - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); + ImprovedTube.elements.player.style.transform = 'translate(' + ImprovedTube.mini_player__x + 'px, ' + event.clientY + 'px)'; ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); } else if (ImprovedTube.mini_player__cursor === 'e-resize') { ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__height); } else if (ImprovedTube.mini_player__cursor === 's-resize') { ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, event.clientY - ImprovedTube.mini_player__y); } else if (ImprovedTube.mini_player__cursor === 'w-resize') { - ImprovedTube.mini_player__setPosition(event.clientX, ImprovedTube.mini_player__y); + ImprovedTube.elements.player.style.transform = 'translate(' + event.clientX + 'px, ' + ImprovedTube.mini_player__y + 'px)'; ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__height); } else if (ImprovedTube.mini_player__cursor === 'ne-resize') { - ImprovedTube.mini_player__setPosition(ImprovedTube.mini_player__x, event.clientY); + ImprovedTube.elements.player.style.transform = 'translate(' + ImprovedTube.mini_player__x + 'px, ' + event.clientY + 'px)'; ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); } else if (ImprovedTube.mini_player__cursor === 'se-resize') { ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, event.clientY - ImprovedTube.mini_player__y); } else if (ImprovedTube.mini_player__cursor === 'sw-resize') { - ImprovedTube.mini_player__setPosition(event.clientX, ImprovedTube.mini_player__y); + ImprovedTube.elements.player.style.transform = 'translate(' + event.clientX + 'px, ' + ImprovedTube.mini_player__y + 'px)'; ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, event.clientY - ImprovedTube.mini_player__y); } else if (ImprovedTube.mini_player__cursor === 'nw-resize') { - ImprovedTube.mini_player__setPosition(event.clientX, event.clientY); + ImprovedTube.elements.player.style.transform = 'translate(' + event.clientX + 'px, ' +event.clientY + 'px)'; ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); } }; -ImprovedTube.mini_player__resize_mouseUp = function (event) { +ImprovedTube.miniPlayer_resizeMouseUp = function (event) { var bcr = ImprovedTube.elements.player.getBoundingClientRect(); ImprovedTube.mini_player__x = bcr.left; @@ -2024,43 +2020,55 @@ ImprovedTube.mini_player__resize_mouseUp = function (event) { localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - window.addEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); - window.removeEventListener('mouseup', ImprovedTube.mini_player__resize_mouseUp); - window.removeEventListener('mousemove', ImprovedTube.mini_player__resize_mouseMove); + window.addEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); + window.removeEventListener('mouseup', ImprovedTube.miniPlayer_resizeMouseUp); + window.removeEventListener('mousemove', ImprovedTube.miniPlayer_resizeMouseMove); }; ImprovedTube.miniPlayer = function () { - if (ImprovedTube.storage.mini_player === true) { - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; + if (this.storage.mini_player === true) { + var data = localStorage.getItem('improedtube-mini-player'); - ImprovedTube.mini_player__x = ImprovedTube.isset(strg.x) ? strg.x : 16; - ImprovedTube.mini_player__y = ImprovedTube.isset(strg.y) ? strg.y : 16; - ImprovedTube.mini_player__width = strg.width || 200; - ImprovedTube.mini_player__height = strg.height || 150; + if (this.isset(data)) { + data = JSON.parse(data); + } else { + data = {}; + } - window.removeEventListener('scroll', ImprovedTube.mini_player__scroll); - window.addEventListener('scroll', ImprovedTube.mini_player__scroll); + data.x = data.x || 16; + data.y = data.y || 16; + data.width = data.width || 200; + data.height = data.height || 150; + + this.mini_player__x = data.x; + this.mini_player__y = data.y; + this.mini_player__width = data.width; + this.mini_player__height = data.height; + + window.removeEventListener('scroll', this.miniPlayer_scroll); + window.addEventListener('scroll', this.miniPlayer_scroll); } else { - ImprovedTube.mini_player__mode = false; - ImprovedTube.elements.player.classList.remove('it-mini-player'); - ImprovedTube.mini_player__move = false; - ImprovedTube.mini_player__setPosition(0, 0); - ImprovedTube.elements.player.style.width = ''; - ImprovedTube.elements.player.style.height = ''; + this.mini_player__mode = false; + this.elements.player.classList.remove('it-mini-player'); + this.mini_player__move = false; + + this.elements.player.style.width = ''; + this.elements.player.style.height = ''; + this.elements.player.style.transform = 'translate(' + 0 + 'px, ' + 0 + 'px)'; - ImprovedTube.elements.player.classList.remove('it-mini-player'); + this.elements.player.classList.remove('it-mini-player'); - ImprovedTube.mini_player__cursor = ''; + this.mini_player__cursor = ''; document.documentElement.removeAttribute('it-mini-player-cursor'); window.dispatchEvent(new Event('resize')); - window.removeEventListener('mousedown', ImprovedTube.mini_player__mousedown); - window.removeEventListener('mousemove', ImprovedTube.mini_player__mousemove); - window.removeEventListener('mouseup', ImprovedTube.mini_player__mouseup); - window.removeEventListener('click', ImprovedTube.mini_player__click); - window.removeEventListener('scroll', ImprovedTube.mini_player__scroll); - window.removeEventListener('mousemove', ImprovedTube.mini_player__cursorUpdate); + window.removeEventListener('mousedown', this.miniPlayer_mouseDown); + window.removeEventListener('mousemove', this.miniPlayer_mouseMove); + window.removeEventListener('mouseup', this.miniPlayer_mouseUp); + window.removeEventListener('click', this.miniPlayer_click); + window.removeEventListener('scroll', this.miniPlayer_scroll); + window.removeEventListener('mousemove', this.miniPlayer_cursorUpdate); } }; From 68dd81a5008984bc4a04a23ef8f9feccfc455a8b Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 5 Aug 2021 21:59:31 +0300 Subject: [PATCH 0309/1224] Improved "issue" function --- manifest.json | 2 +- youtube-scripts.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 2fc7c942f..37b92aaab 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.406", + "version": "3.407", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 3a97a5266..a9ac68767 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -743,7 +743,7 @@ ImprovedTube.empty = function (element) { }; ImprovedTube.isset = function (variable) { - return !(typeof variable === 'undefined' || variable === null); + return !(typeof variable === 'undefined' || variable === null || variable === 'null'); }; From e1f2484b70d13c45f5603b1c430a3cf0bc534d72 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 6 Aug 2021 21:07:58 +0300 Subject: [PATCH 0310/1224] Added "stopPropagation" function --- manifest.json | 2 +- youtube-scripts.js | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 37b92aaab..0d601289a 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.407", + "version": "3.408", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index a9ac68767..a79c92c61 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -746,6 +746,10 @@ ImprovedTube.isset = function (variable) { return !(typeof variable === 'undefined' || variable === null || variable === 'null'); }; +ImprovedTube.stopPropagation = function (event) { + event.stopPropagation(); +}; + /*------------------------------------------------------------------------------ 1.0 GENERAL From bd7c173ca0c3f4aab184580c7b6f21296c9aeb95 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 6 Aug 2021 21:58:03 +0300 Subject: [PATCH 0311/1224] Optimized "YouTube home page" feature --- manifest.json | 2 +- youtube-scripts.js | 50 +++++++++++++++++++--------------------------- 2 files changed, 21 insertions(+), 31 deletions(-) diff --git a/manifest.json b/manifest.json index 0d601289a..15b54f5f7 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.408", + "version": "3.409", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index a79c92c61..0ff19c17b 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -346,7 +346,11 @@ ImprovedTube.init = function () { if (mutation.type === 'attributes') { if (mutation.attributeName === 'href') { - ImprovedTube.youtubeHomePage(logo); + if (logo.id === 'logo') { + this.disconnect(); + + ImprovedTube.youtubeHomePage(logo); + } } } } @@ -364,7 +368,10 @@ ImprovedTube.init = function () { } else if (node.nodeName === 'YTD-ITEM-SECTION-RENDERER') { ImprovedTube.collapseOfSubscriptionSections(node); } else if (node.nodeName === 'A' && node.href) { - ImprovedTube.youtubeHomePage(node); + if (node.id === 'logo') { + ImprovedTube.youtubeHomePage(node); + } + ImprovedTube.channelDefaultTab(node); ImprovedTube.markWatchedVideos(node); //a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link @@ -760,36 +767,19 @@ ImprovedTube.stopPropagation = function (event) { ------------------------------------------------------------------------------*/ ImprovedTube.youtubeHomePage = function (node) { - var option = this.storage.youtube_home_page; + console.log(node); + if (this.isset(node) === false) { + node = document.querySelector('a#logo'); + } - if ( - option === '/feed/trending' || - option === '/feed/subscriptions' || - option === '/feed/history' || - option === '/playlist?list=WL' || - option === '/playlist?list=LL' || - option === '/feed/library' - ) { - if ( - ( - node.href === '/' || - node.href === 'https://www.youtube.com/' - ) && - node.getAttribute('role') !== 'tablist' - ) { - node.href = option; + if (this.isset(this.storage.youtube_home_page)) { + node.href = this.storage.youtube_home_page; - node.addEventListener('click', function () { - if ( - this.data && - this.data.commandMetadata && - this.data.commandMetadata.webCommandMetadata && - this.data.commandMetadata.webCommandMetadata.url - ) { - this.data.commandMetadata.webCommandMetadata.url = ImprovedTube.storage.youtube_home_page; - } - }, true); - } + node.addEventListener('click', this.stopPropagation, true); + } else { + node.href = '/'; + + node.removeEventListener('click', this.stopPropagation); } }; From 4d1a8bf51529e8f3ff699b92d196fce8c2730506 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 6 Aug 2021 23:15:59 +0300 Subject: [PATCH 0312/1224] Improved "Collapse of subscription sections" feature --- content-styles.css | 18 ++++++++++----- manifest.json | 2 +- youtube-scripts.js | 57 +++++++++++++++++++++++++++++++++++----------- 3 files changed, 57 insertions(+), 20 deletions(-) diff --git a/content-styles.css b/content-styles.css index 9dac6ddf6..6fbaaea65 100644 --- a/content-styles.css +++ b/content-styles.css @@ -124,30 +124,36 @@ html[data-page-type=home][it-youtube-home-page=search] .gstl_50.sbdd_a { 1.2 COLLAPSE OF SUBSCRIPTION SECTION ------------------------------------------------------------------------------*/ -ytd-item-section-renderer .grid-subheader+#contents { +ytd-item-section-renderer .grid-subheader + #contents { overflow: hidden; } -ytd-item-section-renderer.it-section-collapsed .grid-subheader+#contents { +ytd-item-section-renderer.it-section-collapsed .grid-subheader + #contents { height: 0 !important; } -ytd-item-section-renderer .it-section-collapse { +ytd-item-section-renderer .it-button-section-collapse { + margin: none; + padding: none; cursor: pointer; + color: inherit; + border: none; + background: transparent; } -ytd-item-section-renderer .it-section-collapse svg { +ytd-item-section-renderer .it-button-section-collapse svg { width: 24px; height: 24px; transition: transform 150ms; + pointer-events: none; fill: var(--yt-spec-icon-inactive); } -ytd-item-section-renderer .it-section-collapse:hover svg { +ytd-item-section-renderer .it-button-section-collapse:hover svg { fill: var(--yt-spec-icon-active-other); } -ytd-item-section-renderer.it-section-collapsed .it-section-collapse svg { +ytd-item-section-renderer.it-section-collapsed .it-button-section-collapse svg { transform: rotate(180deg); } diff --git a/manifest.json b/manifest.json index 15b54f5f7..7dbbe8916 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.409", + "version": "3.410", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 0ff19c17b..7b58c8421 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -109,7 +109,8 @@ var ImprovedTube = { playlist: {}, livechat: {}, related: {}, - comments: {} + comments: {}, + collapse_of_subscription_sections: [] }`, regex: `{ channel: new RegExp('\/(user|channel|c)\/'), @@ -767,7 +768,6 @@ ImprovedTube.stopPropagation = function (event) { ------------------------------------------------------------------------------*/ ImprovedTube.youtubeHomePage = function (node) { - console.log(node); if (this.isset(node) === false) { node = document.querySelector('a#logo'); } @@ -789,25 +789,37 @@ ImprovedTube.youtubeHomePage = function (node) { ------------------------------------------------------------------------------*/ ImprovedTube.collapseOfSubscriptionSections = function (node) { + if (this.isset(node) === false) { + var sections = document.querySelectorAll('ytd-item-section-renderer'); + + for (var i = 0, l = sections.length; i < l; i++) { + this.collapseOfSubscriptionSections(sections[i]); + } + + return; + } + + console.log(node, this.storage.collapse_of_subscription_sections); + if (this.storage.collapse_of_subscription_sections === true) { - if (location.href.indexOf('/feed/subscriptions') !== -1) { - var section_title = node.querySelector('h2'); + if (location.href.indexOf('feed/subscriptions') !== -1) { + var h2 = node.querySelector('h2'); - if (!node.querySelector('.it-section-collapse') && section_title) { - var button = document.createElement('div'), + if (!node.querySelector('.it-section-collapse') && h2) { + var button = document.createElement('button'), svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - button.className = 'it-section-collapse'; + button.className = 'it-button-section-collapse'; button.section = node; + button.content = node.querySelector('.grid-subheader + #contents'); button.addEventListener('click', function () { - var section = this.section, - content = section.querySelector('.grid-subheader + #contents, .shelf-title-table + .multirow-shelf'); + var section = this.section; - if (section.classList.contains('it-section-collapsed') === false) { - content.style.height = content.offsetHeight + 'px'; - content.style.transition = 'height 150ms'; + if (section.className.indexOf('it-section-collapsed') === -1) { + this.content.style.height = this.content.offsetHeight + 'px'; + this.content.style.transition = 'height 150ms'; } setTimeout(function () { @@ -822,9 +834,28 @@ ImprovedTube.collapseOfSubscriptionSections = function (node) { button.appendChild(svg); - section_title.parentNode.insertBefore(button, section_title.nextSibling); + h2.parentNode.insertBefore(button, h2.nextSibling); + + this.elements.collapse_of_subscription_sections.push(button); } } + } else { + var elements = this.elements.collapse_of_subscription_sections; + + for (var i = 0, l = elements.length; i < l; i++) { + var element = elements[i]; + + if (element.section) { + element.section.classList.remove('it-section-collapsed'); + } + + if (element.content) { + element.content.style.height = ''; + element.content.style.transition = ''; + } + + element.remove(); + } } }; From 16c90f2253daa21f6e4164d263f364bb7e8ff112 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 7 Aug 2021 12:30:23 +0300 Subject: [PATCH 0313/1224] Improved "Mark watched videos" feature --- content-styles.css | 1 + manifest.json | 2 +- youtube-scripts.js | 25 +++++++++++++++++++++---- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/content-styles.css b/content-styles.css index 6fbaaea65..b06979361 100644 --- a/content-styles.css +++ b/content-styles.css @@ -247,6 +247,7 @@ html[it-remove-related-search-results=true] li>div.search-refinements { width: 20px; height: 20px; fill: var(--yt-spec-icon-inactive, #aaa); + pointer-events: none; } *:hover>.it-mark-watched { diff --git a/manifest.json b/manifest.json index 7dbbe8916..bd3cade29 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.410", + "version": "3.411", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 7b58c8421..84f035b7f 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -110,7 +110,8 @@ var ImprovedTube = { livechat: {}, related: {}, comments: {}, - collapse_of_subscription_sections: [] + collapse_of_subscription_sections: [], + mark_watched_videos: [] }`, regex: `{ channel: new RegExp('\/(user|channel|c)\/'), @@ -375,7 +376,7 @@ ImprovedTube.init = function () { ImprovedTube.channelDefaultTab(node); ImprovedTube.markWatchedVideos(node); - //a#thumbnail.ytd-thumbnail, div.yt-lockup-thumbnail a, a.thumb-link + if (node.className.indexOf('ytd-thumbnail') !== -1) { ImprovedTube.blacklist('video', node); } @@ -799,8 +800,6 @@ ImprovedTube.collapseOfSubscriptionSections = function (node) { return; } - console.log(node, this.storage.collapse_of_subscription_sections); - if (this.storage.collapse_of_subscription_sections === true) { if (location.href.indexOf('feed/subscriptions') !== -1) { var h2 = node.querySelector('h2'); @@ -912,6 +911,16 @@ ImprovedTube.confirmationBeforeClosing = function () { ------------------------------------------------------------------------------*/ ImprovedTube.markWatchedVideos = function (node) { + if (this.isset(node) === false) { + var thumbnails = document.querySelectorAll('#thumbnail.ytd-thumbnail,.thumb-link'); + + for (var i = 0, l = thumbnails.length; i < l; i++) { + this.markWatchedVideos(thumbnails[i]); + } + + return; + } + if (this.storage.mark_watched_videos === true) { if ( node.id === 'thumbnail' && node.className.indexOf('ytd-thumbnail') !== -1 || @@ -983,6 +992,14 @@ ImprovedTube.markWatchedVideos = function (node) { button.appendChild(svg); node.appendChild(button); + + this.elements.mark_watched_videos.push(button); + } + } else { + var buttons = this.elements.mark_watched_videos; + + for (var i = 0, l = buttons.length; i < l; i++) { + buttons[i].remove(); } } }; From 10cdcd575919bf7d4b3a47b531db7a3658a77d72 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 7 Aug 2021 12:40:25 +0300 Subject: [PATCH 0314/1224] Improved "Add scroll to top" feature --- manifest.json | 2 +- youtube-scripts.js | 22 +++++++++++++++------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/manifest.json b/manifest.json index bd3cade29..2faad34c8 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.411", + "version": "3.412", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 84f035b7f..954a0de95 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -875,6 +875,14 @@ ImprovedTube.addScrollToTop = function () { window.scrollTo(0, 0); }); + button.scroll = function () { + if (window.scrollY > window.innerHeight / 2) { + document.documentElement.setAttribute('it-show-scroll-to-top', true); + } else { + document.documentElement.setAttribute('it-show-scroll-to-top', false); + } + }; + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); path.setAttributeNS(null, 'd', 'M13 19V7.8l4.9 5c.4.3 1 .3 1.4 0 .4-.5.4-1.1 0-1.5l-6.6-6.6a1 1 0 0 0-1.4 0l-6.6 6.6a1 1 0 1 0 1.4 1.4L11 7.8V19c0 .6.5 1 1 1s1-.5 1-1z'); @@ -882,13 +890,13 @@ ImprovedTube.addScrollToTop = function () { button.appendChild(svg); document.body.appendChild(button); - window.addEventListener('scroll', function () { - if (window.scrollY > window.innerHeight / 2) { - document.documentElement.setAttribute('it-show-scroll-to-top', true); - } else { - document.documentElement.setAttribute('it-show-scroll-to-top', false); - } - }); + window.addEventListener('scroll', button.scroll); + + this.elements.scroll_to_top = button; + } else if (this.elements.scroll_to_top) { + window.removeEventListener('scroll', this.elements.scroll_to_top.scroll); + + this.elements.scroll_to_top.remove(); } }; From c7e016c19a485aa8fabc6dfec5799859c2f34c96 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 7 Aug 2021 12:41:38 +0300 Subject: [PATCH 0315/1224] Added messages for "Limit page width" feature --- _locales/ar/messages.json | 3 +++ _locales/bn/messages.json | 3 +++ _locales/de/messages.json | 3 +++ _locales/el/messages.json | 3 +++ _locales/en/messages.json | 11 +++++++---- _locales/es/messages.json | 3 +++ _locales/fr/messages.json | 3 +++ _locales/hin/messages.json | 3 +++ _locales/hr/messages.json | 3 +++ _locales/id/messages.json | 3 +++ _locales/it/messages.json | 3 +++ _locales/ja/messages.json | 3 +++ _locales/ko/messages.json | 3 +++ _locales/nb_NO/messages.json | 3 +++ _locales/nl/messages.json | 3 +++ _locales/no/messages.json | 3 +++ _locales/pl/messages.json | 9 ++++++--- _locales/pt_BR/messages.json | 3 +++ _locales/pt_PT/messages.json | 3 +++ _locales/ro/messages.json | 3 +++ _locales/ru/messages.json | 3 +++ _locales/sk/messages.json | 3 +++ _locales/tr/messages.json | 3 +++ _locales/zh_CN/messages.json | 5 ++++- _locales/zh_TW/messages.json | 3 +++ 25 files changed, 83 insertions(+), 8 deletions(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 48867bdc0..6c0d513f5 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -467,6 +467,9 @@ "lime": { "message": "جير" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "قائمة" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 21656018b..6794dc25b 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -467,6 +467,9 @@ "lime": { "message": "চুন" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "তালিকা" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 72d7e7b5e..354b6acab 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -467,6 +467,9 @@ "lime": { "message": "Limette" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "Liste" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 188b174a3..1a34513f0 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -467,6 +467,9 @@ "lime": { "message": "Μοσχολέμονο" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "Λίστα" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 2124852be..f33032488 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -479,6 +479,9 @@ "lime": { "message": "Lime" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "List" }, @@ -767,12 +770,12 @@ "themes": { "message": "Themes" }, - "thisWillRemoveAllWatchedVideos": { - "message": "This will remove all watched videos." - }, "thisWillRemoveAllCookies": { "message": "This will remove all cookies." }, + "thisWillRemoveAllWatchedVideos": { + "message": "This will remove all watched videos." + }, "thisWillRemoveAllYouTubeCookies": { "message": "This will remove all YouTube cookies" }, @@ -881,4 +884,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube limits video quality to 1080p for h.264 codec" } -} +} \ No newline at end of file diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 3aec58359..ffad6e042 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -467,6 +467,9 @@ "lime": { "message": "Lima" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "Lista" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index fa420861d..6b588788f 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -467,6 +467,9 @@ "lime": { "message": "Citron vert" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "Liste" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index ce958a0f6..9ade69f39 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -467,6 +467,9 @@ "lime": { "message": "पीला हरा रंग" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "सूची" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index d2db197f3..34c5a4414 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -476,6 +476,9 @@ "lime": { "message": "Limeta" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "Lista" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index c65a73d0c..3eda1ef90 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -467,6 +467,9 @@ "lime": { "message": "Limau" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "Daftar" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 446b9cfa2..175845884 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -467,6 +467,9 @@ "lime": { "message": "Lime" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "Lista" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index cc8ebcc11..5cf0ce31f 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -467,6 +467,9 @@ "lime": { "message": "ライム" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "リスト" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 82d30437e..1c22a4b9a 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -467,6 +467,9 @@ "lime": { "message": "라임" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "리스트" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index cc2961ce6..f97e1116a 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -470,6 +470,9 @@ "lime": { "message": "Lime" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "Liste" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 1e636785e..f9ccc92ae 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -467,6 +467,9 @@ "lime": { "message": "Limoen" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "Lijst" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 94560de31..ccb39411a 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -464,6 +464,9 @@ "lime": { "message": "Lime" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "Liste" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index a5eff9b50..503302ba3 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -479,6 +479,9 @@ "lime": { "message": "Limonkowy" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "Lista" }, @@ -767,12 +770,12 @@ "themes": { "message": "Motywy" }, - "thisWillRemoveAllWatchedVideos": { - "message": "To usunie wszystkie obejrzane wideo." - }, "thisWillRemoveAllCookies": { "message": "To usunie wszystkie ciasteczka." }, + "thisWillRemoveAllWatchedVideos": { + "message": "To usunie wszystkie obejrzane wideo." + }, "thisWillRemoveAllYouTubeCookies": { "message": "To usunie wszystkie ciasteczka YouTube." }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 507cbea28..858bbc037 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -467,6 +467,9 @@ "lime": { "message": "Verde Limão" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "Lista" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index d9f27a885..987b7ab68 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -467,6 +467,9 @@ "lime": { "message": "Limão" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "Lista" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 6f5f4f38e..b314fd001 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -470,6 +470,9 @@ "lime": { "message": "Lime" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "Listă" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 13a0f1b96..896fff340 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -467,6 +467,9 @@ "lime": { "message": "Лайм" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "Список" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 8dc5fe0af..4b9729ed0 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -467,6 +467,9 @@ "lime": { "message": "Limetková" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "Zoznam" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 55d2ed76d..cab16ba7d 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -467,6 +467,9 @@ "lime": { "message": "Lime" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "Liste" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 247a2777f..8103b6ba1 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -476,6 +476,9 @@ "lime": { "message": "石灰色" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "列表" }, @@ -872,4 +875,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "采用 H.264 编解码时,YouTube 会将视频画质设为 1080p" } -} +} \ No newline at end of file diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index b348054d6..7e87ced26 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -473,6 +473,9 @@ "lime": { "message": "萊姆色" }, + "limitPageWidth": { + "message": "Limit page width" + }, "list": { "message": "清單" }, From c3b3335db464e634026b421e05c379bc80a6d01e Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 7 Aug 2021 12:44:39 +0300 Subject: [PATCH 0316/1224] Fixed attribute updater --- content-scripts.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index a94d6df1c..4e227d865 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -6,6 +6,7 @@ 3.0 Injection 4.0 Storage 5.0 Messages +6.0 Initialization ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ @@ -121,10 +122,11 @@ function injectStyles(string, id) { chrome.storage.onChanged.addListener(function (changes) { for (var key in changes) { - var name = camelize(key.replace(/_/g, '-')), + var attribute = key.replace(/_/g, '-'), + name = camelize(attribute), value = changes[key].newValue; - document.documentElement.setAttribute('it-' + name, value); + document.documentElement.setAttribute('it-' + attribute, value); injectScript('ImprovedTube.storage[\'' + key + '\']=' + (typeof value === 'boolean' ? value : '\'' + value + '\'') + ';'); From 930d517cdad5727a0330834c6d7c480fd2301c1b Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 7 Aug 2021 12:57:21 +0300 Subject: [PATCH 0317/1224] Improved "HD thumbnails" feature --- manifest.json | 2 +- youtube-scripts.js | 20 ++++++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 2faad34c8..0b20233d4 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.412", + "version": "3.415", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 954a0de95..b1ef72202 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -895,7 +895,7 @@ ImprovedTube.addScrollToTop = function () { this.elements.scroll_to_top = button; } else if (this.elements.scroll_to_top) { window.removeEventListener('scroll', this.elements.scroll_to_top.scroll); - + this.elements.scroll_to_top.remove(); } }; @@ -1056,9 +1056,21 @@ document.addEventListener('ImprovedTubeOnlyOnePlayer', function (event) { ------------------------------------------------------------------------------*/ ImprovedTube.hdThumbnails = function (node) { + if (this.isset(node) === false) { + var thumbnails = document.querySelectorAll('img'); + + for (var i = 0, l = thumbnails.length; i < l; i++) { + this.hdThumbnails(thumbnails[i]); + } + + return; + } + if (this.storage.hd_thumbnails === true) { if (this.regex.thumbnail_quality.test(node.src)) { - node.dataset.defaultSrc = node.src; + if (node.dataset.hasOwnProperty('defaultSrc') === false) { + node.dataset.defaultSrc = node.src; + } node.onload = function () { if (this.naturalHeight <= 90) { @@ -1068,6 +1080,10 @@ ImprovedTube.hdThumbnails = function (node) { node.src = node.src.replace(this.regex.thumbnail_quality, 'maxresdefault.jpg'); } + } else if (node.dataset.defaultSrc) { + node.src = node.dataset.defaultSrc; + + delete node.dataset.defaultSrc; } }; From 827ffb8779ecd6353f2210de4d5f8331376ad8c7 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 7 Aug 2021 14:41:00 +0300 Subject: [PATCH 0318/1224] Added "Hide voice search button" feature --- content-scripts.js | 1 + content-styles.css | 10 ++++++++++ manifest.json | 2 +- popup.js | 4 ++++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/content-scripts.js b/content-scripts.js index 4e227d865..cd56cd975 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -40,6 +40,7 @@ function attributes(items) { 'header-improve-logo': true, 'header-hide-right-buttons': true, 'header-hide-country-code': true, + 'hide-voice-search-button': true, 'player-hide-annotations': true, 'player-hide-cards': true, 'player-show-cards-on-mouse-hover': true, diff --git a/content-styles.css b/content-styles.css index b06979361..c79fa2d7d 100644 --- a/content-styles.css +++ b/content-styles.css @@ -17,6 +17,7 @@ 2.1.2 Improve logo 2.1.3 Hide right buttons 2.1.4 Hide country code + 2.1.5 Hide voice search button 2.2 Player 2.2.1 Hide annotations 2.2.2 Hide cards @@ -435,6 +436,15 @@ html[it-header-hide-country-code=true] #logo #country-code { } +/*------------------------------------------------------------------------------ +2.1.5 HIDE VOICE SEARCH BUTTON +------------------------------------------------------------------------------*/ + +html[it-hide-voice-search-button=true] #voice-search-button { + display: none !important; +} + + /*------------------------------------------------------------------------------ 2.2 PLAYER ------------------------------------------------------------------------------*/ diff --git a/manifest.json b/manifest.json index 0b20233d4..17b2a4f87 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.415", + "version": "3.416", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 32fa13b8c..75d4c4d00 100644 --- a/popup.js +++ b/popup.js @@ -2639,6 +2639,10 @@ skeleton.main.section.appearance = { type: 'switch', label: 'hideCountryCode', tags: 'country,code' + }, + hide_voice_search_button: { + type: 'switch', + label: 'hideVoiceSearchButton' } } }, From b4655c0be580790ef3744c41407345b91a6447e5 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 7 Aug 2021 14:48:57 +0300 Subject: [PATCH 0319/1224] Updated locales --- _locales/ar/messages.json | 3 +++ _locales/bn/messages.json | 3 +++ _locales/de/messages.json | 3 +++ _locales/el/messages.json | 3 +++ _locales/en/messages.json | 3 +++ _locales/es/messages.json | 3 +++ _locales/fr/messages.json | 3 +++ _locales/hin/messages.json | 3 +++ _locales/hr/messages.json | 3 +++ _locales/id/messages.json | 3 +++ _locales/it/messages.json | 3 +++ _locales/ja/messages.json | 3 +++ _locales/ko/messages.json | 3 +++ _locales/nb_NO/messages.json | 3 +++ _locales/nl/messages.json | 3 +++ _locales/no/messages.json | 3 +++ _locales/pl/messages.json | 3 +++ _locales/pt_BR/messages.json | 3 +++ _locales/pt_PT/messages.json | 3 +++ _locales/ro/messages.json | 3 +++ _locales/ru/messages.json | 3 +++ _locales/sk/messages.json | 3 +++ _locales/tr/messages.json | 3 +++ _locales/zh_CN/messages.json | 3 +++ _locales/zh_TW/messages.json | 3 +++ 25 files changed, 75 insertions(+) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 6c0d513f5..c129d1a64 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -392,6 +392,9 @@ "hideViewsCount": { "message": "إخفاء عدد المشاهدات" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "السجلّ" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 6794dc25b..672cca1db 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -392,6 +392,9 @@ "hideViewsCount": { "message": "দর্শন গণনা লুকান" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "ইতিহাস" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 354b6acab..3cbdcce4f 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -392,6 +392,9 @@ "hideViewsCount": { "message": "Videoaufrufe ausblenden" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "Verlauf" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 1a34513f0..bac99d37c 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -392,6 +392,9 @@ "hideViewsCount": { "message": "Απόκρυψε τον αριθμό προβολών" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "Ιστορικό" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index f33032488..d64948045 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -404,6 +404,9 @@ "hideViewsCount": { "message": "Hide views count" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "History" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index ffad6e042..1d590ef36 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -392,6 +392,9 @@ "hideViewsCount": { "message": "Ocultar contador de visitas" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "Historial" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 6b588788f..1c94f5aee 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -392,6 +392,9 @@ "hideViewsCount": { "message": "Voir le compte des vues" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "Historique" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index 9ade69f39..e83cda232 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -392,6 +392,9 @@ "hideViewsCount": { "message": "व्यू काउंट छिपाएं" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "इतिहास" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 34c5a4414..8866f7992 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -401,6 +401,9 @@ "hideViewsCount": { "message": "Sakrij broj pregleda" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "Povijest" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 3eda1ef90..4114c33bf 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -392,6 +392,9 @@ "hideViewsCount": { "message": "Sembunyikan jumlah penayangan" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "Sejarah" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 175845884..fd4ec9544 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -392,6 +392,9 @@ "hideViewsCount": { "message": "Nascondi contatore visualizzazioni" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "Cronologia" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 5cf0ce31f..7ea03b5f1 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -392,6 +392,9 @@ "hideViewsCount": { "message": "視聴数を隠す" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "履歴" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 1c22a4b9a..a6147f6af 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -392,6 +392,9 @@ "hideViewsCount": { "message": "조회수 숨기기" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "히스토리" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index f97e1116a..929c44b00 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -395,6 +395,9 @@ "hideViewsCount": { "message": "Skjul visningsteller" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "Historie" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index f9ccc92ae..d18acd985 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -392,6 +392,9 @@ "hideViewsCount": { "message": "Verberg views teller" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "Geschiedenis" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index ccb39411a..b800dd0c1 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -389,6 +389,9 @@ "hideViewsCount": { "message": "Skjul visninger teller" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "Historie" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 503302ba3..f60b0df16 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -404,6 +404,9 @@ "hideViewsCount": { "message": "Ukryj ilość wyświetleń" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "Historia" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 858bbc037..7c8af7b30 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -392,6 +392,9 @@ "hideViewsCount": { "message": "Ocultar visualizações" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "Histórico" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 987b7ab68..e6cf8ecfd 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -392,6 +392,9 @@ "hideViewsCount": { "message": "Esconder número de vistos" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "História" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index b314fd001..aec521940 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -395,6 +395,9 @@ "hideViewsCount": { "message": "Ascunde numărul vizualizărilor" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "Istoric" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 896fff340..d9d8ad342 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -392,6 +392,9 @@ "hideViewsCount": { "message": "Скрыть количество просмотров" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "История" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 4b9729ed0..3ed3de45c 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -392,6 +392,9 @@ "hideViewsCount": { "message": "Skyť počet videní" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "História" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index cab16ba7d..eb1fe05e2 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -392,6 +392,9 @@ "hideViewsCount": { "message": "Görüntüleme sayısını gizle" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "Geçmiş" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 8103b6ba1..4f4dd579f 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -401,6 +401,9 @@ "hideViewsCount": { "message": "隐藏观看量" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "历史记录" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 7e87ced26..904eb5ece 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -398,6 +398,9 @@ "hideViewsCount": { "message": "隱藏觀看次數" }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, "history": { "message": "觀看記錄" }, From df8720a96bd379669c1f9c9cc5bcbce3c37778c3 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 8 Aug 2021 17:59:05 +0300 Subject: [PATCH 0320/1224] Fixed "Hide footer" feature --- content-styles.css | 2 +- manifest.json | 2 +- youtube-scripts.js | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/content-styles.css b/content-styles.css index c79fa2d7d..b5f30644c 100644 --- a/content-styles.css +++ b/content-styles.css @@ -1209,7 +1209,7 @@ html[it-comments=collapsed].comments-collapsed #comments #sections #contents { 2.6 FOOTER ------------------------------------------------------------------------------*/ -html[it-hide-footer=true] app-drawer#guide #footer { +html[it-hide-footer=true] ytd-guide-renderer #footer { display: none !important; } diff --git a/manifest.json b/manifest.json index 17b2a4f87..4082dc26e 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.416", + "version": "3.417", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index b1ef72202..30bd222b3 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1141,6 +1141,7 @@ ImprovedTube.playerSize = function () { } }; + /*------------------------------------------------------------------------------ 2.1.2 FORCED THEATER MODE ------------------------------------------------------------------------------*/ From 74661879b64f40a31cb0efa8baed65d53cd4fe0f Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 8 Aug 2021 18:10:55 +0300 Subject: [PATCH 0321/1224] Improved "Comments" feature --- manifest.json | 2 +- youtube-scripts.js | 51 ++++++++++++++++++++++++++-------------------- 2 files changed, 30 insertions(+), 23 deletions(-) diff --git a/manifest.json b/manifest.json index 4082dc26e..16584d1ed 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.417", + "version": "3.418", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 30bd222b3..c67a6ed8a 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1390,36 +1390,43 @@ ImprovedTube.channelVideosCount = function () { ------------------------------------------------------------------------------*/ ImprovedTube.comments = function () { - if (this.storage.comments === 'collapsed' || this.elements.comments.button) { - var button = document.createElement('button'), - content = document.createElement('span'), - show_more = document.createElement('span'), - show_less = document.createElement('span'), - parent = this.elements.comments.container; + if (this.storage.comments === 'collapsed') { + if (!this.elements.comments.button) { + var button = document.createElement('button'), + content = document.createElement('span'), + show_more = document.createElement('span'), + show_less = document.createElement('span'); + + button.id = 'improvedtube-collapsed-comments'; + button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; + button.onclick = function () { + document.documentElement.classList.toggle('comments-collapsed'); + }; - button.id = 'improvedtube-collapsed-comments'; - button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; - button.onclick = function () { - document.documentElement.classList.toggle('comments-collapsed'); - }; + content.className = 'yt-uix-button-content'; - content.className = 'yt-uix-button-content'; + show_more.className = 'show-more-text'; + show_more.textContent = 'Show more'; - show_more.className = 'show-more-text'; - show_more.textContent = 'Show more'; + show_less.className = 'show-less-text'; + show_less.textContent = 'Show less'; - show_less.className = 'show-less-text'; - show_less.textContent = 'Show less'; + content.appendChild(show_more); + content.appendChild(show_less); + button.appendChild(content); - content.appendChild(show_more); - content.appendChild(show_less); - button.appendChild(content); + document.documentElement.classList.add('comments-collapsed'); - document.documentElement.classList.add('comments-collapsed'); + this.elements.comments.container.appendChild(button); + + this.elements.comments.button = button; + } + } else if (this.elements.comments.button) { + this.elements.comments.button.remove(); - parent.appendChild(button); + delete this.elements.comments.button; - this.elements.comments.button = button; + document.documentElement.classList.remove('comments-collapsed'); } }; From 36e3f836e2d55dde94c0a95a0480e0530204f50e Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 8 Aug 2021 18:20:47 +0300 Subject: [PATCH 0322/1224] Fixed "Hide date" feature --- content-styles.css | 4 ++-- manifest.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content-styles.css b/content-styles.css index b5f30644c..e4ec1f857 100644 --- a/content-styles.css +++ b/content-styles.css @@ -1040,8 +1040,8 @@ html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer+#date>#dot 2.4.3 HIDE DATE ------------------------------------------------------------------------------*/ -html[it-hide-date=true] #count.ytd-video-primary-info-renderer+#date, -html[it-hide-date=true] #count.ytd-video-primary-info-renderer+#date>#dot { +html[it-hide-date=true] #count + #info-strings > yt-formatted-string, +html[it-hide-date=true] #count + #info-strings > #dot { display: none; } diff --git a/manifest.json b/manifest.json index 16584d1ed..2937c537c 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.418", + "version": "3.419", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 4ec16645b7f4ff5e4e38bb8a230a0b650c7d9a8e Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 8 Aug 2021 18:22:46 +0300 Subject: [PATCH 0323/1224] Fixed "Hide views count" feature --- content-styles.css | 4 ++-- manifest.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content-styles.css b/content-styles.css index e4ec1f857..8385d5aeb 100644 --- a/content-styles.css +++ b/content-styles.css @@ -1030,8 +1030,8 @@ html[it-hide-details=true] #primary-inner>#meta { 2.4.2 HIDE VIEWS COUNT ------------------------------------------------------------------------------*/ -html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer, -html[it-hide-views-count=true] #count.ytd-video-primary-info-renderer+#date>#dot { +html[it-hide-views-count=true] #count, +html[it-hide-views-count=true] #count + #info-strings > #dot { display: none; } diff --git a/manifest.json b/manifest.json index 2937c537c..02779c946 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.419", + "version": "3.420", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 08b80401951b3cb4b3b0e2e96c15dbe86fd502fc Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 8 Aug 2021 18:27:36 +0300 Subject: [PATCH 0324/1224] Hidden less/more button in "Description" feature --- content-styles.css | 5 +++++ manifest.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/content-styles.css b/content-styles.css index 8385d5aeb..403039ef7 100644 --- a/content-styles.css +++ b/content-styles.css @@ -1135,6 +1135,11 @@ html[it-description=expanded] .yt-uix-expander-collapsed .yt-uix-expander-body { display: block !important; } +html[it-description=expanded] ytd-video-secondary-info-renderer #less, +html[it-description=expanded] ytd-video-secondary-info-renderer #more { + display: none !important; +} + /*------------------------------------------------------------------------------ 2.4.9 HOW LONG AGO THE VIDEO WAS UPLOADED diff --git a/manifest.json b/manifest.json index 02779c946..40a1de3c3 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.420", + "version": "3.421", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From e4b96ed91a67b668ab703528e649db5dd54a61ac Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 9 Aug 2021 18:54:07 +0300 Subject: [PATCH 0325/1224] Improved "Blacklist" feature --- content-scripts.js | 4 ++++ content-styles.css | 32 +++++++++++++++++--------------- manifest.json | 2 +- youtube-scripts.js | 38 ++++++++++++++++++++++++++++++++++---- 4 files changed, 56 insertions(+), 20 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index cd56cd975..5a189b6d3 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -127,6 +127,10 @@ chrome.storage.onChanged.addListener(function (changes) { name = camelize(attribute), value = changes[key].newValue; + if (name === 'blacklistActivate') { + name = 'blacklist'; + } + document.documentElement.setAttribute('it-' + attribute, value); injectScript('ImprovedTube.storage[\'' + key + '\']=' + (typeof value === 'boolean' ? value : '\'' + value + '\'') + ';'); diff --git a/content-styles.css b/content-styles.css index 403039ef7..a3c5465da 100644 --- a/content-styles.css +++ b/content-styles.css @@ -3531,25 +3531,31 @@ ytd-guide-section-renderer .it-button::after { ------------------------------------------------------------------------------*/ .it-add-to-blacklist { - font-size: 32px; - line-height: 26px; position: absolute; - z-index: 999; top: 4px; left: 4px; + z-index: 999; visibility: hidden; - overflow: hidden; - width: 32px; - height: 32px; + width: 28px; + height: 28px; cursor: pointer; - padding: 0; - transition: transform .15s; - transform: scale(1); text-align: center; - color: #fff; + color: rgb(255, 255, 255); + overflow: hidden; border-radius: 2px; - background: rgba(0,0,0,.7); + background: rgba(0, 0, 0, 0.8); border: none; + outline: none; +} + +.it-add-to-blacklist svg { + position: absolute; + top: 4px; + left: 4px; + width: 20px; + height: 20px; + fill: var(--yt-spec-icon-active-other, #fff); + pointer-events: none; } .it-add-channel-to-blacklist { @@ -3575,10 +3581,6 @@ ytd-guide-section-renderer .it-button::after { visibility: visible; } -.it-add-to-blacklist:hover { - transform: scale(1.25); -} - .it-blacklisted-video { opacity: .1; } diff --git a/manifest.json b/manifest.json index 40a1de3c3..25cc35eca 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.421", + "version": "3.422", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index c67a6ed8a..bc49e49e5 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -111,7 +111,8 @@ var ImprovedTube = { related: {}, comments: {}, collapse_of_subscription_sections: [], - mark_watched_videos: [] + mark_watched_videos: [], + blacklist_buttons: [] }`, regex: `{ channel: new RegExp('\/(user|channel|c)\/'), @@ -164,7 +165,6 @@ ImprovedTube.init = function () { ImprovedTube.dim(); ImprovedTube.font(); ImprovedTube.themes(); - ImprovedTube.blacklist(); //ImprovedTube.improvedtubeYoutubeSidebarButton(); //ImprovedTube.improvedtubeYoutubePlayerButtons(); }); @@ -172,7 +172,6 @@ ImprovedTube.init = function () { window.addEventListener('yt-page-data-updated', function () { ImprovedTube.pageType(); ImprovedTube.videoPageUpdate(); - ImprovedTube.blacklist(); //ImprovedTube.improvedtubeYoutubeSidebarButton(); //ImprovedTube.improvedtubeYoutubePlayerButtons(); }); @@ -3422,7 +3421,27 @@ document.addEventListener('ImprovedTubeBlacklist', function (event) { ImprovedTube.blacklist = function(type, node) { if (this.storage.blacklist_activate !== true) { + for (var i = 0, l = this.elements.blacklist_buttons.length; i < l; i++) { + this.elements.blacklist_buttons[i].remove(); + } + return; + } else if (this.isset(node) === false) { + var a = document.querySelectorAll('a.ytd-thumbnail'), + a2 = document.querySelectorAll('a[href*="/channel/"],a[href*="/user/"],a[href*="/c/"]'), + subscribe_buttons = document.querySelectorAll('ytd-subscribe-button-renderer.ytd-c4-tabbed-header-renderer'); + + for (var i = 0, l = a.length; i < l; i++) { + this.blacklist('video', a[i]); + } + + for (var i = 0, l = subscribe_buttons.length; i < l; i++) { + this.blacklist('channel', subscribe_buttons[i]); + } + + for (var i = 0, l = a2.length; i < l; i++) { + this.blacklist('channel', a2[i]); + } } if (!this.storage.blacklist || typeof this.storage.blacklist !== 'object') { @@ -3442,10 +3461,11 @@ ImprovedTube.blacklist = function(type, node) { if (type === 'video') { var button = document.createElement('button'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'), id = node.href.match(ImprovedTube.regex.video_id); button.className = 'it-add-to-blacklist'; - button.textContent = 'x'; button.addEventListener('click', function(event) { if (this.parentNode.href) { var data = this.parentNode.parentNode.__data, @@ -3490,8 +3510,16 @@ ImprovedTube.blacklist = function(type, node) { } }, true); + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M12 2a10 10 0 100 20 10 10 0 000-20zm0 18A8 8 0 015.69 7.1L16.9 18.31A7.9 7.9 0 0112 20zm6.31-3.1L7.1 5.69A8 8 0 0118.31 16.9z'); + + svg.appendChild(path); + button.appendChild(svg); + node.appendChild(button); + this.elements.blacklist_buttons.push(button); + if (id && id[1] && ImprovedTube.storage.blacklist.videos[id[1]]) { node.parentNode.__dataHost.className += ' it-blacklisted-video'; } @@ -3548,6 +3576,8 @@ ImprovedTube.blacklist = function(type, node) { event.stopPropagation(); }, true); + this.elements.blacklist_buttons.push(button); + node.parentNode.parentNode.appendChild(button); } } From 05ebaea2341d4145816e06a71828a64423a22921 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 9 Aug 2021 19:13:09 +0300 Subject: [PATCH 0326/1224] Added tooltips for "Mark watched videos" and "Blacklist" features --- content-styles.css | 49 ++++++++++++++++++++++++++++++++++++++++++++-- manifest.json | 2 +- youtube-scripts.js | 2 +- 3 files changed, 49 insertions(+), 4 deletions(-) diff --git a/content-styles.css b/content-styles.css index a3c5465da..de945ee5d 100644 --- a/content-styles.css +++ b/content-styles.css @@ -231,7 +231,6 @@ html[it-remove-related-search-results=true] li>div.search-refinements { bottom: 4px; left: 4px; visibility: hidden; - overflow: hidden; width: 28px; height: 28px; cursor: pointer; @@ -239,6 +238,30 @@ html[it-remove-related-search-results=true] li>div.search-refinements { color: #fff; border-radius: 2px; background: rgba(0, 0, 0, .8); + font-family: inherit; + border: none; +} + +.it-mark-watched::after { + display: flex; + align-items: center; + content: 'Watched'; + text-transform: uppercase; + color: var(--yt-spec-icon-active-other, #fff); + position: absolute; + left: 100%; + top: 0; + height: 28px; + width: 0; + background: rgba(0, 0, 0, 0.8); + overflow: hidden; + transition: width 200ms; + font-weight: 500; + justify-content: center; +} + +.it-mark-watched:hover::after { + width: 96px; } .it-mark-watched svg { @@ -3541,11 +3564,33 @@ ytd-guide-section-renderer .it-button::after { cursor: pointer; text-align: center; color: rgb(255, 255, 255); - overflow: hidden; border-radius: 2px; background: rgba(0, 0, 0, 0.8); border: none; outline: none; + font-family: inherit; +} + +.it-add-to-blacklist::after { + display: flex; + align-items: center; + content: 'Blacklist'; + text-transform: uppercase; + color: var(--yt-spec-icon-active-other, #fff); + position: absolute; + left: 100%; + top: 0; + height: 28px; + width: 0; + background: rgba(0, 0, 0, 0.8); + overflow: hidden; + transition: width 200ms; + font-weight: 500; + justify-content: center; +} + +.it-add-to-blacklist:hover::after { + width: 96px; } .it-add-to-blacklist svg { diff --git a/manifest.json b/manifest.json index 25cc35eca..7128866cf 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.422", + "version": "3.423", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index bc49e49e5..97bf2a68f 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -933,7 +933,7 @@ ImprovedTube.markWatchedVideos = function (node) { node.id === 'thumbnail' && node.className.indexOf('ytd-thumbnail') !== -1 || node.className.indexOf('thumb-link') !== -1 ) { - var button = document.createElement('div'), + var button = document.createElement('button'), svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); From f1e2ef46c06abb10eebdc4294546bfe3f4cd0dce Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 9 Aug 2021 19:15:09 +0300 Subject: [PATCH 0327/1224] Fixed tooltips border-radius --- content-styles.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content-styles.css b/content-styles.css index de945ee5d..8ed96bba4 100644 --- a/content-styles.css +++ b/content-styles.css @@ -258,6 +258,8 @@ html[it-remove-related-search-results=true] li>div.search-refinements { transition: width 200ms; font-weight: 500; justify-content: center; + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; } .it-mark-watched:hover::after { @@ -3587,6 +3589,8 @@ ytd-guide-section-renderer .it-button::after { transition: width 200ms; font-weight: 500; justify-content: center; + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; } .it-add-to-blacklist:hover::after { From b8667cc3ed4186b156d9e3a5b6e5cde522331052 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 10 Aug 2021 19:33:50 +0300 Subject: [PATCH 0328/1224] Fixed "Popup player" shortcut --- manifest.json | 2 +- youtube-scripts.js | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 7128866cf..fa93fe9bf 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.423", + "version": "3.424", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 97bf2a68f..3c9ef8488 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3174,7 +3174,13 @@ ImprovedTube.shortcutToggleCards = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutPopupPlayer = function () { - this.createPopUpWindow(); + var player = this.elements.player; + + if (document.documentElement.dataset.pageType === 'video' && player) { + player.pauseVideo(); + + window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(player.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + player.offsetWidth + ',height=' + player.offsetHeight); + } }; From 738561a729d6017e8e80d4a1bf9fd171a0f97022 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 11 Aug 2021 15:22:26 +0300 Subject: [PATCH 0329/1224] Improved "YouTube language" feature --- manifest.json | 2 +- popup.js | 4 ++++ youtube-scripts.js | 34 +++++++++++++++++++++++----------- 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/manifest.json b/manifest.json index fa93fe9bf..639cb2f2a 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.424", + "version": "3.425", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 75d4c4d00..060d10307 100644 --- a/popup.js +++ b/popup.js @@ -619,6 +619,10 @@ skeleton.header.section_end.button_vert.onClickRender.settings = { label: 'youtubeLanguage', type: 'select', options: [{ + value: 'default', + label: 'default' + }, + { value: "en", label: "English" }, { diff --git a/youtube-scripts.js b/youtube-scripts.js index 3c9ef8488..711754cc2 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -191,6 +191,7 @@ ImprovedTube.init = function () { this.playerOnPlay(); this.onkeydown(); this.onmousedown(); + this.youtubeLanguage(false); this.observer = new MutationObserver(function(mutationList) { for (var i = 0, l = mutationList.length; i < l; i++) { @@ -3772,19 +3773,30 @@ ImprovedTube.deleteYoutubeCookies = function () { 10.4 YOUTUBE LANGUAGE -----------------------------------------------------------------------------*/ -ImprovedTube.youtubeLanguage = function () { - var pref = ImprovedTube.getCookieValueByName('PREF'), - hl = ImprovedTube.getParam(pref, 'hl'); +ImprovedTube.youtubeLanguage = function (reload) { + var value = this.storage.youtube_language; - if (hl) { - ImprovedTube.setCookie('PREF', pref.replace('hl=' + hl, 'hl=' + ImprovedTube.storage.youtube_language)); - } else { - ImprovedTube.setCookie('PREF', pref + '&hl=' + ImprovedTube.storage.youtube_language); - } + if (this.isset(value)) { + var pref = this.getCookieValueByName('PREF'); - setTimeout(function () { - location.reload(); - }, 100); + if (value !== 'default') { + var hl = this.getParam(pref, 'hl'); + + if (hl) { + this.setCookie('PREF', pref.replace('hl=' + hl, 'hl=' + value)); + } else { + this.setCookie('PREF', pref + '&hl=' + value); + } + } else if (reload !== false) { + this.setCookie('PREF', pref.replace(/hl\=[^&]+/, '')); + } + + if (reload !== false) { + setTimeout(function() { + location.reload(); + }, 100); + } + } }; From fd422f5e4985ae213ec0108e2f9bd6527b3e5b93 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 11 Aug 2021 15:41:47 +0300 Subject: [PATCH 0330/1224] Improved "Default content country" feature --- manifest.json | 2 +- youtube-scripts.js | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/manifest.json b/manifest.json index 639cb2f2a..863e83927 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.425", + "version": "3.426", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 711754cc2..a67dda6f2 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -183,7 +183,6 @@ ImprovedTube.init = function () { });*/ this.bluelight(); - this.defaultContentCountry(); this.playerH264(); this.player60fps(); this.playerSDR(); @@ -191,6 +190,7 @@ ImprovedTube.init = function () { this.playerOnPlay(); this.onkeydown(); this.onmousedown(); + this.defaultContentCountry(false); this.youtubeLanguage(false); this.observer = new MutationObserver(function(mutationList) { @@ -3804,10 +3804,20 @@ ImprovedTube.youtubeLanguage = function (reload) { 10.5 DEFAULT CONTENT COUNTRY -----------------------------------------------------------------------------*/ -ImprovedTube.defaultContentCountry = function () { +ImprovedTube.defaultContentCountry = function (reload) { var value = this.storage.default_content_country; - if (this.isset(value) && value !== 'default') { - this.setCookie('s_gl', value); + if (this.isset(value)) { + if (value !== 'default') { + this.setCookie('s_gl', value); + } else if (reload !== false) { + document.cookie = 's_gl=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; + } + + if (reload !== false) { + setTimeout(function() { + location.reload(); + }, 100); + } } }; From 8102d60ddcb488ab1da19cbd68691ce7ced8c092 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 11 Aug 2021 16:08:06 +0300 Subject: [PATCH 0331/1224] Added subscriptions type to the page type attribute --- manifest.json | 2 +- youtube-scripts.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 863e83927..d32a8b8be 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.426", + "version": "3.427", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index a67dda6f2..52f3ac1df 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -447,6 +447,8 @@ ImprovedTube.init = function () { ImprovedTube.pageType = function () { if (location.pathname === '/') { document.documentElement.dataset.pageType = 'home'; + } else if (/\/subscriptions\?/.test(location.href)) { + document.documentElement.dataset.pageType = 'subscriptions'; } else if (/\/watch\?/.test(location.href)) { document.documentElement.dataset.pageType = 'video'; } else if (/\/channel|user|c\//.test(location.href)) { From d657daa4e8532b48c869e06c126ee69e8e514860 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 11 Aug 2021 16:34:39 +0300 Subject: [PATCH 0332/1224] Added "Schedule" function --- manifest.json | 2 +- youtube-scripts.js | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index d32a8b8be..f3dd0dc8b 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.427", + "version": "3.428", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 52f3ac1df..b640aae5c 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -30,6 +30,7 @@ 3.3 Dim 3.4 Font 3.5 Themes + 3.6 Schedule 4.0 Player 4.1 Autoplay 4.2 Autopause when switching tabs @@ -1700,6 +1701,29 @@ ImprovedTube.themes = function () { }; +/*------------------------------------------------------------------------------ +3.6 SCHEDULE +------------------------------------------------------------------------------*/ + +ImprovedTube.schedule = function () { + var current = new Date().getHours(), + from = Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), + to = Number((this.storage.schedule_time_to || '00:00').substr(0, 2)); + + if (to < from && current > from && current < 24) { + times.to += 24; + } else if (to < from && current < to) { + from = 0; + } + + if (this.storage.schedule !== 'sunset_to_sunrise' || current >= from && current < to) { + return true; + } + + return false; +}; + + /*------------------------------------------------------------------------------ 4.0 PLAYER ------------------------------------------------------------------------------*/ From 56c3b3df7bcedc0231b2ade79012ad28590c6654 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 11 Aug 2021 16:47:31 +0300 Subject: [PATCH 0333/1224] The Schedule function is connected to the Dim, Bluelight and Themes features --- manifest.json | 2 +- youtube-scripts.js | 46 +++++----------------------------------------- 2 files changed, 6 insertions(+), 42 deletions(-) diff --git a/manifest.json b/manifest.json index f3dd0dc8b..2dc91716f 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.428", + "version": "3.429", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index b640aae5c..1cea282fe 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1502,20 +1502,9 @@ ImprovedTube.myColors = function () { ------------------------------------------------------------------------------*/ ImprovedTube.bluelight = function () { - var value = this.storage.bluelight, - times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); - - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; - } - - if (this.storage.schedule === 'sunset_to_sunrise' || current_time < times.from && current_time >= times.to) { + var value = this.storage.bluelight; + + if (this.schedule() === false) { return false; } @@ -1579,20 +1568,7 @@ ImprovedTube.bluelight = function () { ------------------------------------------------------------------------------*/ ImprovedTube.dim = function () { - var value = this.storage.dim, - times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); - - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; - } - - if (this.storage.schedule === 'sunset_to_sunrise' || current_time < times.from && current_time >= times.to) { + if (this.schedule() === false) { return false; } @@ -1654,20 +1630,8 @@ ImprovedTube.font = function () { ------------------------------------------------------------------------------*/ ImprovedTube.themes = function () { - var times = { - from: Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to: Number((this.storage.schedule_time_to || '00:00').substr(0, 2)) - }, - current_time = new Date().getHours(); - - if (times.to < times.from && current_time > times.from && current_time < 24) { - times.to += 24; - } else if (times.to < times.from && current_time < times.to) { - times.from = 0; - } - if ( - (this.storage.schedule !== 'sunset_to_sunrise' || current_time >= times.from && current_time < times.to) && + this.schedule() === true && ( this.isset(ImprovedTube.storage.default_dark_theme) && ImprovedTube.storage.default_dark_theme !== false || this.isset(ImprovedTube.storage.night_theme) && ImprovedTube.storage.night_theme !== false || From 795b6e7fff933daf09dfd3e0fb6601ba18d15e21 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 11 Aug 2021 16:51:40 +0300 Subject: [PATCH 0334/1224] Optimized "Forced playback speed" feature --- manifest.json | 2 +- youtube-scripts.js | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/manifest.json b/manifest.json index 2dc91716f..3415db087 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.429", + "version": "3.430", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 1cea282fe..fbdbbb791 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1741,15 +1741,13 @@ ImprovedTube.playerAutopauseWhenSwitchingTabs = function () { ------------------------------------------------------------------------------*/ ImprovedTube.playerPlaybackSpeed = function (node) { - if ( - ImprovedTube.storage.player_forced_playback_speed === true && - ImprovedTube.isset(ImprovedTube.storage.player_playback_speed) - ) { - var player = ImprovedTube.elements.player, - video_data = player.getVideoData(); + var value = this.storage.player_playback_speed; + + if (this.storage.player_forced_playback_speed === true && this.isset(value)) { + var player = this.elements.player; - if (window.location.href.indexOf('music') === -1 && !video_data.isLive) { - player.setPlaybackRate(Number(ImprovedTube.storage.player_playback_speed)); + if (location.href.indexOf('music') === -1 && player.getVideoData().isLive === false) { + player.setPlaybackRate(Number(value)); } else { player.setPlaybackRate(1); } From 374dee317740efc47a90e4920d8560947f29d6a6 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 11 Aug 2021 19:07:00 +0300 Subject: [PATCH 0335/1224] Fixed "Forced playback speed" feature deactivation --- manifest.json | 2 +- youtube-scripts.js | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/manifest.json b/manifest.json index 3415db087..cd4fe14e3 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.430", + "version": "3.431", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index fbdbbb791..3bc6bee22 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -529,7 +529,7 @@ ImprovedTube.playerOnPlay = function () { ImprovedTube.played_before_blur = false; ImprovedTube.forcedTheaterMode(); - ImprovedTube.playerPlaybackSpeed(); + ImprovedTube.playerPlaybackSpeed(false); ImprovedTube.subtitles(); ImprovedTube.playerQuality(); ImprovedTube.playerVolume(); @@ -1740,17 +1740,22 @@ ImprovedTube.playerAutopauseWhenSwitchingTabs = function () { 4.3 FORCED PLAYBACK SPEED ------------------------------------------------------------------------------*/ -ImprovedTube.playerPlaybackSpeed = function (node) { - var value = this.storage.player_playback_speed; +ImprovedTube.playerPlaybackSpeed = function (change) { + var player = this.elements.player, + value = this.storage.player_playback_speed; - if (this.storage.player_forced_playback_speed === true && this.isset(value)) { - var player = this.elements.player; + if (this.isset(value) === false) { + value = 1; + } + if (this.storage.player_forced_playback_speed === true) { if (location.href.indexOf('music') === -1 && player.getVideoData().isLive === false) { player.setPlaybackRate(Number(value)); } else { player.setPlaybackRate(1); } + } else if (change !== false) { + player.setPlaybackRate(1); } }; From 4ab44348a1257c9d1df7599112f0217403d2411c Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 11 Aug 2021 19:09:42 +0300 Subject: [PATCH 0336/1224] Fixed "Subtitles" feature --- youtube-scripts.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/youtube-scripts.js b/youtube-scripts.js index 3bc6bee22..ada7a1158 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1765,7 +1765,11 @@ ImprovedTube.playerPlaybackSpeed = function (change) { ------------------------------------------------------------------------------*/ ImprovedTube.subtitles = function () { + var player = this.elements.player; + if (player && player.toggleSubtitlesOn) { + player.toggleSubtitlesOn(); + } }; From ab28acad91b2e49ffc97566c337b7c74d9751387 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 11 Aug 2021 19:10:37 +0300 Subject: [PATCH 0337/1224] Fixed "Dim" feature --- manifest.json | 2 +- youtube-scripts.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index cd4fe14e3..06b746d30 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.431", + "version": "3.433", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index ada7a1158..a6dfe3592 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1568,6 +1568,8 @@ ImprovedTube.bluelight = function () { ------------------------------------------------------------------------------*/ ImprovedTube.dim = function () { + var value = this.storage.bluelight; + if (this.schedule() === false) { return false; } From 377660f0882cdd410146b360951363fa10a21862 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 11 Aug 2021 19:14:17 +0300 Subject: [PATCH 0338/1224] Optimized "autoplay()" function --- manifest.json | 2 +- youtube-scripts.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/manifest.json b/manifest.json index 06b746d30..14ad2ec41 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.433", + "version": "3.435", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index a6dfe3592..74ba4d59c 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1705,9 +1705,9 @@ ImprovedTube.autoplay = function (video) { if ( ( - (/\/watch\?/.test(location.href) && !/list=/.test(location.href) && ImprovedTube.storage.player_autoplay === false) || - (/\/watch\?/.test(location.href) && /list=/.test(location.href) && ImprovedTube.storage.playlist_autoplay === false) || - (/\/(channel|user|c)\//.test(location.href) && ImprovedTube.storage.channel_trailer_autoplay === false) + (location.href.indexOf('/watch/') !== -1 && location.href.indexOf('list=') === -1 && ImprovedTube.storage.player_autoplay === false) || + (location.href.indexOf('/watch/') !== -1 && location.href.indexOf('list=') !== -1 && ImprovedTube.storage.playlist_autoplay === false) || + (ImprovedTube.regex.channel.test(location.href) && ImprovedTube.storage.channel_trailer_autoplay === false) ) === true && ImprovedTube.allow_autoplay === false && video.parentNode.parentNode.classList.contains('ad-showing') === false From 28d62c69f0ccdf24fb10ca3e0ae76731db16b848 Mon Sep 17 00:00:00 2001 From: YH Lee Date: Thu, 12 Aug 2021 14:46:07 +0900 Subject: [PATCH 0339/1224] Update messages.json --- _locales/ko/messages.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index a6147f6af..700693654 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -54,7 +54,7 @@ "message": "항상 활성화" }, "alwaysShowProgressBar": { - "message": "재생 진행 상태 항상 표시" + "message": "재생 진행상태(Progress Bar) 항상 표시" }, "amber": { "message": "호박색" @@ -219,7 +219,7 @@ "message": "설명" }, "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + "message": "유튜브를 깔끌하고 스마트하게 만들어줍니다! 유튜브 비디오 내 컬러, 광고제거, 볼륨, 배속, 채널 툴, 스타일, HD, 광고성 블록, 태그, 키워드, 재생목록" }, "desert": { "message": "사막" @@ -231,7 +231,7 @@ "message": "개발자 옵션" }, "device": { - "message": "기기" + "message": "디바이스" }, "dim": { "message": "어둡게" @@ -261,7 +261,7 @@ "message": "활성화" }, "enabledForced": { - "message": "활성화 (강제)" + "message": "강제로 활성화" }, "expanded": { "message": "확장" @@ -348,10 +348,10 @@ "message": "카드 숨기기" }, "hideCountryCode": { - "message": "Hide country code" + "message": "국가코드 숨기기" }, "hideDate": { - "message": "Hide date" + "message": "날짜 숨기기" }, "hideDetails": { "message": "상세설명 숨기기" @@ -369,7 +369,7 @@ "message": "그라데이션 맨 아래로 숨기기" }, "hideMoreButton": { - "message": "Hide \"More\" button" + "message": "\"더보기\" 버튼 숨기기" }, "hidePlaylist": { "message": "재생 목록 숨기기" @@ -378,22 +378,22 @@ "message": "오른쪽 버튼 숨기기" }, "hideSaveButton": { - "message": "Hide \"Save\" button" + "message": "\"저장\" 버튼 숨기기" }, "hideScrollForDetails": { "message": "«스크롤 하여 자세한 설명» 숨기기" }, "hideShareButton": { - "message": "Hide \"Share\" button" + "message": "\"공유\" 버튼 숨기기" }, "hideSkipOverlay": { - "message": "Hide Skip Overlay" + "message": "\"오버레이 건너뛰기\" 숨기기" }, "hideViewsCount": { "message": "조회수 숨기기" }, "hideVoiceSearchButton": { - "message": "Hide voice search button" + "message": "\"음성으로 찾기\" 버튼 숨기기" }, "history": { "message": "히스토리" @@ -483,7 +483,7 @@ "message": "실시간 채팅 유형" }, "location": { - "message": "Location" + "message": "지역" }, "loudnessNormalization": { "message": "볼륨 자동조정" @@ -669,10 +669,10 @@ "message": "앞으로 10초" }, "seekNextChapter": { - "message": "seekNextChapter" + "message": "다음 챕터 보기" }, "seekPreviousChapter": { - "message": "seekPreviousChapter" + "message": "이전 챕터 보기" }, "settings": { "message": "설정" @@ -857,4 +857,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "유튜브는 h.264 코덱에서 비디오 품질을 1080p로 제한합니다" } -} \ No newline at end of file +} From cbf4be8b9ae5e3047c6e419d7d99cdb26f7fcec1 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 12 Aug 2021 13:46:39 +0300 Subject: [PATCH 0340/1224] Improved code readability --- youtube-scripts.js | 837 ++++++++++++++++++++++----------------------- 1 file changed, 414 insertions(+), 423 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 74ba4d59c..9debe0c9f 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2,99 +2,101 @@ >>> TABLE OF CONTENTS: -------------------------------------------------------------------------------- 1.0 Global variable - -1.0 General - 1.1 YouTube home page - 1.2 Collapse of subscription sections - 1.3 Add "Scroll to top" - 1.4 Confirmation before closing - 1.5 Mark watched videos - 1.6 Only one player instance playing - 1.7 HD thumbnails -2.0 Appearance - 2.1 Player - 2.1.1 Player size - 2.1.2 Forced theater mode - 2.1.3 HD thumbnail - 2.1.4 Always show progress bar - 2.2 Sidebar - 2.2.1 Livechat - 2.2.2 Related videos - 2.3 Details - 2.3.1 How long ago the video was uploaded - 2.3.2 Show channel videos count - 2.5 Comments -3.0 Themes - 3.1 My colors - 3.2 Bluelight - 3.3 Dim - 3.4 Font - 3.5 Themes - 3.6 Schedule -4.0 Player - 4.1 Autoplay - 4.2 Autopause when switching tabs - 4.3 Forced playback speed - 4.4 Subtitles - 4.5 Up next autoplay - 4.6 Ads - 4.7 Custom mini-player - 4.8 Auto fullscreen - 4.9 Quality - 4.10 Codec h.264 - 4.11 Allow 60fps - 4.12 Forced volume - 4.13 Loudness normalization - 4.14 Screenshot - 4.15 Repeat - 4.16 Rotate - 4.17 Popup player - 4.18 Force SDR - 4.19 Hide controls -5.0 Playlist - 5.1 Up next autoplay - 5.2 Reverse - 5.3 Repeat - 5.4 Shuffle -6.0 Channel - 6.1 Default channel tab -7.0 Shortcuts - # Quality - # Picture in Picture - # Toggle control - # Play / pause - # Stop - # Toggle autoplay - # Next videos - # Previous video - # Seek backward - # Seek forward - # Seek next chapter - # Seek previous chapter - # Increase volume - # Decrease volume - # Screenshot - # Increase playback speed - # Decrease playback speed - # Go to search box - # Activate fullscreen - # Activate captions - # Like - # Dislike - # Subscribe - # Dark theme - # Custom mini player - # Stats for nerds - # Toggle cards - # Popup player -8.0 Blacklist -9.0 Analyzer -10.0 Settings - 10.1 ImprovedTube icon - 10.2 ImprovedTube player buttons - 10.3 Delete YouTube cookies - 10.4 YouTube language - 10.5 Default content country +2.0 Initialization +3.0 +4.0 Features + 4.1.0 General + 4.1.1 YouTube home page + 4.1.2 Collapse of subscription sections + 4.1.3 Add "Scroll to top" + 4.1.4 Confirmation before closing + 4.1.5 Mark watched videos + 4.1.6 Only one player instance playing + 4.1.7 HD thumbnails + 4.2.0 Appearance + 4.2.1 Player + 4.2.1.1 Player size + 4.2.1.2 Forced theater mode + 4.2.1.3 HD thumbnail + 4.2.1.4 Always show progress bar + 4.2.2 Sidebar + 4.2.2.1 Livechat + 4.2.2.2 Related videos + 4.2.3 Details + 4.2.3.1 How long ago the video was uploaded + 4.2.3.2 Show channel videos count + 4.2.5 Comments + 4.3.0 Themes + 4.3.1 My colors + 4.3.2 Bluelight + 4.3.3 Dim + 4.3.4 Font + 4.3.5 Themes + 4.3.6 Schedule + 4.4.0 Player + 4.4.1 Autoplay + 4.4.2 Autopause when switching tabs + 4.4.3 Forced playback speed + 4.4.4 Subtitles + 4.4.5 Up next autoplay + 4.4.6 Ads + 4.4.7 Custom mini-player + 4.4.8 Auto fullscreen + 4.4.9 Quality + 4.4.10 Codec h.264 + 4.4.11 Allow 60fps + 4.4.12 Forced volume + 4.4.13 Loudness normalization + 4.4.14 Screenshot + 4.4.15 Repeat + 4.4.16 Rotate + 4.4.17 Popup player + 4.4.18 Force SDR + 4.4.19 Hide controls + 4.5.0 Playlist + 4.5.1 Up next autoplay + 4.5.2 Reverse + 4.5.3 Repeat + 4.5.4 Shuffle + 4.6.0 Channel + 4.6.1 Default channel tab + 4.7.0 Shortcuts + 4.7.1 Quality + 4.7.2 Picture in Picture + 4.7.3 Toggle control + 4.7.4 Play / pause + 4.7.5 Stop + 4.7.6 Toggle autoplay + 4.7.7 Next videos + 4.7.8 Previous video + 4.7.9 Seek backward + 4.7.10 Seek forward + 4.7.11 Seek next chapter + 4.7.12 Seek previous chapter + 4.7.13 Increase volume + 4.7.14 Decrease volume + 4.7.15 Screenshot + 4.7.16 Increase playback speed + 4.7.17 Decrease playback speed + 4.7.18 Go to search box + 4.7.19 Activate fullscreen + 4.7.20 Activate captions + 4.7.21 Like + 4.7.22 Dislike + 4.7.23 Subscribe + 4.7.24 Dark theme + 4.7.25 Custom mini player + 4.7.26 Stats for nerds + 4.7.27 Toggle cards + 4.7.28 Popup player + 4.8.0 Blacklist + 4.9.0 Analyzer + 4.10.0 Settings + 4.10.1 ImprovedTube icon + 4.10.2 ImprovedTube player buttons + 4.10.3 Delete YouTube cookies + 4.10.4 YouTube language + 4.10.5 Default content country ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ @@ -442,7 +444,9 @@ ImprovedTube.init = function () { /*------------------------------------------------------------------------------ -0.0 PAGE +3.0 +-------------------------------------------------------------------------------- + ------------------------------------------------------------------------------*/ ImprovedTube.pageType = function () { @@ -501,11 +505,6 @@ ImprovedTube.videoPageUpdate = function () { } }; - -/*------------------------------------------------------------------------------ -0.0 PLAYER -------------------------------------------------------------------------------*/ - ImprovedTube.playerOnPlay = function () { HTMLMediaElement.prototype.play = (function (original) { return function () { @@ -594,11 +593,6 @@ ImprovedTube.playerOnEnded = function (event) { ImprovedTube.played_time = 0; }; - -/*------------------------------------------------------------------------------ -0.0 ONKEYDOWN -------------------------------------------------------------------------------*/ - ImprovedTube.onkeydown = function () { window.addEventListener('keydown', function () { if ( @@ -610,11 +604,6 @@ ImprovedTube.onkeydown = function () { }, true); }; - -/*------------------------------------------------------------------------------ -0.0 ONMOUSEDOWN -------------------------------------------------------------------------------*/ - ImprovedTube.onmousedown = function (event) { window.addEventListener('mousedown', function (event) { if (ImprovedTube.elements.player && ImprovedTube.elements.player.className.indexOf('ad-showing') === -1) { @@ -762,13 +751,43 @@ ImprovedTube.stopPropagation = function (event) { event.stopPropagation(); }; +ImprovedTube.showStatus = function (value) { + if (!this.elements.status) { + this.elements.status = document.createElement('div'); + + this.elements.status.id = 'it-status'; + } + + if (typeof value === 'number') { + value = value.toFixed(2); + } + + this.elements.status.textContent = value; + + if (ImprovedTube.status_timer) { + clearTimeout(ImprovedTube.status_timer); + } + + ImprovedTube.status_timer = setTimeout(function () { + ImprovedTube.elements.status.remove(); + }, 500); + + this.elements.player.appendChild(this.elements.status); +}; + + +/*------------------------------------------------------------------------------ +4.0 FEATURES +-------------------------------------------------------------------------------- + +------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -1.0 GENERAL +4.1.0 GENERAL ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -1.1 YOUTUBE HOME PAGE +4.1.1 YOUTUBE HOME PAGE ------------------------------------------------------------------------------*/ ImprovedTube.youtubeHomePage = function (node) { @@ -789,7 +808,7 @@ ImprovedTube.youtubeHomePage = function (node) { /*------------------------------------------------------------------------------ -1.2 COLLAPSE OF SUBSCRIPTION SECTION +4.1.2 COLLAPSE OF SUBSCRIPTION SECTION ------------------------------------------------------------------------------*/ ImprovedTube.collapseOfSubscriptionSections = function (node) { @@ -863,7 +882,7 @@ ImprovedTube.collapseOfSubscriptionSections = function (node) { /*------------------------------------------------------------------------------ -1.3 ADD "SCROLL TO TOP" +4.1.3 ADD "SCROLL TO TOP" ------------------------------------------------------------------------------*/ ImprovedTube.addScrollToTop = function () { @@ -905,7 +924,7 @@ ImprovedTube.addScrollToTop = function () { /*------------------------------------------------------------------------------ -1.4 CONFIRMATION BEFORE CLOSING +4.1.4 CONFIRMATION BEFORE CLOSING ------------------------------------------------------------------------------*/ ImprovedTube.confirmationBeforeClosing = function () { @@ -918,7 +937,7 @@ ImprovedTube.confirmationBeforeClosing = function () { /*------------------------------------------------------------------------------ -1.5 MARK WATCHED VIDEOS +4.1.5 MARK WATCHED VIDEOS ------------------------------------------------------------------------------*/ ImprovedTube.markWatchedVideos = function (node) { @@ -1030,7 +1049,7 @@ document.addEventListener('ImprovedTubeWatched', function (event) { /*------------------------------------------------------------------------------ -1.6 ONLY ONE PLAYER INSTANCE PLAYING +4.1.6 ONLY ONE PLAYER INSTANCE PLAYING ------------------------------------------------------------------------------*/ ImprovedTube.onlyOnePlayerInstancePlaying = function () { @@ -1055,7 +1074,7 @@ document.addEventListener('ImprovedTubeOnlyOnePlayer', function (event) { /*------------------------------------------------------------------------------ -1.7 HD THUMBNAILS +4.1.7 HD THUMBNAILS ------------------------------------------------------------------------------*/ ImprovedTube.hdThumbnails = function (node) { @@ -1092,15 +1111,15 @@ ImprovedTube.hdThumbnails = function (node) { /*------------------------------------------------------------------------------ -2.0 APPEARANCE +4.2.0 APPEARANCE ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -2.1 PLAYER +4.2.1 PLAYER ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -2.1.1 PLAYER SIZE +4.2.1.1 PLAYER SIZE ------------------------------------------------------------------------------*/ ImprovedTube.playerSize = function () { @@ -1146,7 +1165,7 @@ ImprovedTube.playerSize = function () { /*------------------------------------------------------------------------------ -2.1.2 FORCED THEATER MODE +4.2.1.2 FORCED THEATER MODE ------------------------------------------------------------------------------*/ ImprovedTube.forcedTheaterMode = function () { @@ -1163,7 +1182,7 @@ ImprovedTube.forcedTheaterMode = function () { /*------------------------------------------------------------------------------ -2.1.3 HD THUMBNAIL +4.2.1.3 HD THUMBNAIL ------------------------------------------------------------------------------*/ ImprovedTube.playerHdThumbnail = function () { @@ -1178,7 +1197,7 @@ ImprovedTube.playerHdThumbnail = function () { /*------------------------------------------------------------------------------ -2.1.4 ALWAYS SHOW PROGRESS BAR +4.2.1.4 ALWAYS SHOW PROGRESS BAR ------------------------------------------------------------------------------*/ ImprovedTube.alwaysShowProgressBar = function () { @@ -1230,11 +1249,11 @@ ImprovedTube.alwaysShowProgressBar = function () { /*------------------------------------------------------------------------------ -2.2 SIDEBAR +4.2.2 SIDEBAR ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -2.2.1 LIVECHAT +4.2.2.1 LIVECHAT ------------------------------------------------------------------------------*/ ImprovedTube.livechat = function () { @@ -1245,7 +1264,7 @@ ImprovedTube.livechat = function () { /*------------------------------------------------------------------------------ -2.2.2 RELATED VIDEOS +4.2.2.2 RELATED VIDEOS ------------------------------------------------------------------------------*/ ImprovedTube.relatedVideos = function () { @@ -1284,11 +1303,11 @@ ImprovedTube.relatedVideos = function () { /*------------------------------------------------------------------------------ -2.3 DETAILS +4.2.3 DETAILS ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -2.3.1 HOW LONG AGO THE VIDEO WAS UPLOADED +4.2.3.1 HOW LONG AGO THE VIDEO WAS UPLOADED ------------------------------------------------------------------------------*/ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { @@ -1353,7 +1372,7 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { /*------------------------------------------------------------------------------ -2.3.2 SHOW CHANNEL VIDEOS COUNT +4.2.3.2 SHOW CHANNEL VIDEOS COUNT ------------------------------------------------------------------------------*/ ImprovedTube.channelVideosCount = function () { @@ -1389,7 +1408,7 @@ ImprovedTube.channelVideosCount = function () { /*------------------------------------------------------------------------------ -2.4 COMMENTS +4.2.4 COMMENTS ------------------------------------------------------------------------------*/ ImprovedTube.comments = function () { @@ -1435,11 +1454,11 @@ ImprovedTube.comments = function () { /*------------------------------------------------------------------------------ -3.0 THEMES +4.3.0 THEMES ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -3.1 MY COLORS +4.3.1 MY COLORS ------------------------------------------------------------------------------*/ ImprovedTube.myColors = function () { @@ -1498,7 +1517,7 @@ ImprovedTube.myColors = function () { /*------------------------------------------------------------------------------ -3.2 BLUELIGHT +4.3.2 BLUELIGHT ------------------------------------------------------------------------------*/ ImprovedTube.bluelight = function () { @@ -1564,7 +1583,7 @@ ImprovedTube.bluelight = function () { /*------------------------------------------------------------------------------ -3.3 DIM +4.3.3 DIM ------------------------------------------------------------------------------*/ ImprovedTube.dim = function () { @@ -1604,7 +1623,7 @@ ImprovedTube.dim = function () { /*------------------------------------------------------------------------------ -3.4 FONT +4.3.4 FONT ------------------------------------------------------------------------------*/ ImprovedTube.font = function () { @@ -1628,7 +1647,7 @@ ImprovedTube.font = function () { /*------------------------------------------------------------------------------ -3.5 THEMES +4.3.5 THEMES ------------------------------------------------------------------------------*/ ImprovedTube.themes = function () { @@ -1668,7 +1687,7 @@ ImprovedTube.themes = function () { /*------------------------------------------------------------------------------ -3.6 SCHEDULE +4.3.6 SCHEDULE ------------------------------------------------------------------------------*/ ImprovedTube.schedule = function () { @@ -1691,11 +1710,11 @@ ImprovedTube.schedule = function () { /*------------------------------------------------------------------------------ -4.0 PLAYER +4.4.0 PLAYER ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -4.1 AUTOPLAY +4.4.1 AUTOPLAY ------------------------------------------------------------------------------*/ ImprovedTube.autoplay = function (video) { @@ -1720,7 +1739,7 @@ ImprovedTube.autoplay = function (video) { /*------------------------------------------------------------------------------ -4.2 AUTOPAUSE WHEN SWITCHING TABS +4.4.2 AUTOPAUSE WHEN SWITCHING TABS ------------------------------------------------------------------------------*/ ImprovedTube.playerAutopauseWhenSwitchingTabs = function () { @@ -1739,7 +1758,7 @@ ImprovedTube.playerAutopauseWhenSwitchingTabs = function () { /*------------------------------------------------------------------------------ -4.3 FORCED PLAYBACK SPEED +4.4.3 FORCED PLAYBACK SPEED ------------------------------------------------------------------------------*/ ImprovedTube.playerPlaybackSpeed = function (change) { @@ -1763,7 +1782,7 @@ ImprovedTube.playerPlaybackSpeed = function (change) { /*------------------------------------------------------------------------------ -4.4 SUBTITLES +4.4.4 SUBTITLES ------------------------------------------------------------------------------*/ ImprovedTube.subtitles = function () { @@ -1776,7 +1795,7 @@ ImprovedTube.subtitles = function () { /*------------------------------------------------------------------------------ -4.5 UP NEXT AUTOPLAY +4.4.5 UP NEXT AUTOPLAY ------------------------------------------------------------------------------*/ ImprovedTube.upNextAutoplay = function () { @@ -1796,7 +1815,7 @@ ImprovedTube.upNextAutoplay = function () { /*------------------------------------------------------------------------------ -4.6 ADS +4.4.6 ADS ------------------------------------------------------------------------------*/ ImprovedTube.playerAds = function (parent) { @@ -1817,7 +1836,7 @@ ImprovedTube.playerAds = function (parent) { /*------------------------------------------------------------------------------ -4.7 CUSTOM MINI-PLAYER +4.4.7 CUSTOM MINI-PLAYER ------------------------------------------------------------------------------*/ ImprovedTube.mini_player__setSize = function (width, height) { @@ -2147,7 +2166,7 @@ ImprovedTube.miniPlayer = function () { /*------------------------------------------------------------------------------ -4.8 AUTO FULLSCREEN +4.4.8 AUTO FULLSCREEN ------------------------------------------------------------------------------*/ ImprovedTube.playerAutofullscreen = function () { @@ -2162,7 +2181,7 @@ ImprovedTube.playerAutofullscreen = function () { /*------------------------------------------------------------------------------ -4.9 QUALITY +4.4.9 QUALITY ------------------------------------------------------------------------------*/ ImprovedTube.playerQuality = function () { @@ -2184,7 +2203,7 @@ ImprovedTube.playerQuality = function () { /*------------------------------------------------------------------------------ -4.10 CODEC H.264 +4.4.10 CODEC H.264 ------------------------------------------------------------------------------*/ ImprovedTube.playerH264 = function () { @@ -2221,7 +2240,7 @@ ImprovedTube.playerH264 = function () { /*------------------------------------------------------------------------------ -4.11 ALLOW 60FPS +4.4.11 ALLOW 60FPS ------------------------------------------------------------------------------*/ ImprovedTube.player60fps = function () { @@ -2260,7 +2279,7 @@ ImprovedTube.player60fps = function () { /*------------------------------------------------------------------------------ -4.12 FORCED VOLUME +4.4.12 FORCED VOLUME ------------------------------------------------------------------------------*/ ImprovedTube.playerVolume = function () { @@ -2279,7 +2298,7 @@ ImprovedTube.playerVolume = function () { /*------------------------------------------------------------------------------ -4.13 LOUDNESS NORMALIZATION +4.4.13 LOUDNESS NORMALIZATION ------------------------------------------------------------------------------*/ ImprovedTube.onvolumechange = function (event) { @@ -2319,7 +2338,7 @@ ImprovedTube.playerLoudnessNormalization = function () { /*------------------------------------------------------------------------------ -4.14 SCREENSHOT +4.4.14 SCREENSHOT ------------------------------------------------------------------------------*/ ImprovedTube.screenshot = function () { @@ -2384,7 +2403,7 @@ ImprovedTube.playerScreenshotButton = function () { /*------------------------------------------------------------------------------ -4.15 REPEAT +4.4.15 REPEAT ------------------------------------------------------------------------------*/ ImprovedTube.playerRepeatButton = function (node) { @@ -2430,7 +2449,7 @@ ImprovedTube.playerRepeatButton = function (node) { /*------------------------------------------------------------------------------ -4.16 ROTATE +4.4.16 ROTATE ------------------------------------------------------------------------------*/ ImprovedTube.playerRotateButton = function () { @@ -2489,7 +2508,7 @@ ImprovedTube.playerRotateButton = function () { /*------------------------------------------------------------------------------ -4.17 POPUP PLAYER +4.4.17 POPUP PLAYER ------------------------------------------------------------------------------*/ ImprovedTube.playerPopupButton = function () { @@ -2522,7 +2541,7 @@ ImprovedTube.playerPopupButton = function () { /*------------------------------------------------------------------------------ -4.18 Force SDR +4.4.18 Force SDR ------------------------------------------------------------------------------*/ ImprovedTube.playerSDR = function () { @@ -2537,7 +2556,7 @@ ImprovedTube.playerSDR = function () { /*------------------------------------------------------------------------------ -4.19 Hide controls +4.4.19 Hide controls ------------------------------------------------------------------------------*/ ImprovedTube.playerControls = function () { @@ -2550,11 +2569,11 @@ ImprovedTube.playerControls = function () { /*------------------------------------------------------------------------------ -5.0 PLAYLIST +4.5.0 PLAYLIST ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -5.1 UP NEXT AUTOPLAY +4.5.1 UP NEXT AUTOPLAY ------------------------------------------------------------------------------*/ ImprovedTube.playlistUpNextAutoplay = function (event) { @@ -2569,7 +2588,7 @@ ImprovedTube.playlistUpNextAutoplay = function (event) { /*------------------------------------------------------------------------------ -5.2 REVERSE +4.5.2 REVERSE ------------------------------------------------------------------------------*/ ImprovedTube.playlistReverse = function () { @@ -2676,7 +2695,7 @@ ImprovedTube.playlistReverse = function () { /*------------------------------------------------------------------------------ -5.3 REPEAT +4.5.3 REPEAT ------------------------------------------------------------------------------*/ ImprovedTube.playlistRepeat = function () { @@ -2690,7 +2709,7 @@ ImprovedTube.playlistRepeat = function () { /*------------------------------------------------------------------------------ -5.4 SHUFFLE +4.5.4 SHUFFLE ------------------------------------------------------------------------------*/ ImprovedTube.playlistShuffle = function () { @@ -2704,11 +2723,11 @@ ImprovedTube.playlistShuffle = function () { /*------------------------------------------------------------------------------ -6.0 CHANNEL +4.6.0 CHANNEL ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -6.1 DEFAULT CHANNEL TAB +4.6.1 DEFAULT CHANNEL TAB ------------------------------------------------------------------------------*/ ImprovedTube.channelDefaultTab = function (a) { @@ -2731,11 +2750,206 @@ ImprovedTube.channelDefaultTab = function (a) { /*------------------------------------------------------------------------------ -7.0 SHORTCUTS +4.7.0 SHORTCUTS ------------------------------------------------------------------------------*/ +ImprovedTube.shortcuts = function() { + var keyboard = { + alt: false, + ctrl: false, + shift: false, + keys: {} + }, + mouse = { + player: false, + wheel: 0 + }, + storage = {}; + + function handler() { + var prevent = false; + + for (var key in storage) { + var shortcut = storage[key], + same_keys = true; + + if ( + keyboard.alt === shortcut.alt && + keyboard.ctrl === shortcut.ctrl && + keyboard.shift === shortcut.shift && + mouse.wheel === shortcut.wheel + ) { + for (var code in keyboard.keys) { + if (!shortcut.keys[code]) { + same_keys = false; + } + } + for (var code in shortcut.keys) { + if (!keyboard.keys[code]) { + same_keys = false; + } + } + + if (mouse.wheel === 0 || mouse.player === true) { + if (same_keys === true) { + if ([ + 'shortcutAuto', + 'shortcut240p', + 'shortcut360p', + 'shortcut480p', + 'shortcut720p', + 'shortcut1080p', + 'shortcut1440p', + 'shortcut2160p', + 'shortcut2880p', + 'shortcut4320p' + ].indexOf(key) !== -1) { + ImprovedTube['shortcutQuality'](key); + } else { + ImprovedTube[key](); + } + + prevent = true; + } + } + } + } + + return prevent; + } + + window.addEventListener('keydown', function(event) { + if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || event.target.isContentEditable) { + return false; + } + + if (event.code === 'AltLeft' || event.code === 'AltRight') { + keyboard.alt = true; + } else if (event.code === 'ControlLeft' || event.code === 'ControlRight') { + keyboard.ctrl = true; + } else if (event.code === 'ShiftLeft' || event.code === 'ShiftRight') { + keyboard.shift = true; + } else { + keyboard.keys[event.keyCode] = true; + } + + mouse.wheel = 0; + + if (handler() === true) { + event.preventDefault(); + } + }, true); + + window.addEventListener('keyup', function(event) { + if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || event.target.isContentEditable) { + return false; + } + + if (event.code === 'AltLeft' || event.code === 'AltRight') { + keyboard.alt = false; + } else if (event.code === 'ControlLeft' || event.code === 'ControlRight') { + keyboard.ctrl = false; + } else if (event.code === 'ShiftLeft' || event.code === 'ShiftRight') { + keyboard.shift = false; + } else { + delete keyboard.keys[event.keyCode]; + } + + mouse.wheel = 0; + }, true); + + window.addEventListener('wheel', function(event) { + if (event.deltaY > 0) { + mouse.wheel = 1; + } else { + mouse.wheel = -1; + } + + if (handler() === true) { + event.preventDefault(); + } + }, { + passive: false, + capture: true + }); + + document.addEventListener('improvedtube-player-loaded', function () { + ImprovedTube.elements.player.parentNode.addEventListener('mouseover', function() { + mouse.player = true; + mouse.wheel = 0; + }, true); + + ImprovedTube.elements.player.parentNode.addEventListener('mouseout', function() { + mouse.player = false; + mouse.wheel = 0; + }, true); + }); + + document.addEventListener('improvedtube-blur', function () { + keyboard.alt = false; + keyboard.ctrl = false; + keyboard.shift = false; + + for (var key in keyboard.keys) { + delete keyboard.keys[key]; + } + + mouse.player = false; + mouse.wheel = 0; + }); + + for (var name in this.storage) { + if (name.indexOf('shortcut_') === 0) { + if (this.isset(this.storage[name])) { + try { + var key = 'shortcut' + (name.replace(/_?shortcut_?/g, '').replace(/\_/g, '-')).split('-').map(function (element, index) { + return element[0].toUpperCase() + element.slice(1); + }).join(''), + old_value = JSON.parse(this.storage[name]), + new_value = { + keys: {} + }; + + if (old_value.altKey) { + new_value.alt = true; + } else { + new_value.alt = false; + } + + if (old_value.ctrlKey) { + new_value.ctrl = true; + } else { + new_value.ctrl = false; + } + + if (old_value.shiftKey) { + new_value.shift = true; + } else { + new_value.shift = false; + } + + if (old_value.key && ['Alt', 'Control', 'Shift'].indexOf(old_value.key) === -1) { + new_value.keys[old_value.keyCode] = true; + } + + if (old_value.wheel > 0) { + new_value.wheel = 1; + } else if (old_value.wheel < 0) { + new_value.wheel = -1; + } else { + new_value.wheel = 0; + } + + storage[key] = new_value; + } catch (err) {} + } + } + } +}; + + /*------------------------------------------------------------------------------ -# QUALITY +4.7.1 QUALITY ------------------------------------------------------------------------------*/ ImprovedTube.shortcutQuality = function (key) { @@ -2785,7 +2999,7 @@ ImprovedTube.shortcutQuality = function (key) { /*------------------------------------------------------------------------------ -# PICTURE IN PICTURE +4.7.2 PICTURE IN PICTURE ------------------------------------------------------------------------------*/ ImprovedTube.shortcutPictureInPicture = function () { @@ -2796,7 +3010,7 @@ ImprovedTube.shortcutPictureInPicture = function () { /*------------------------------------------------------------------------------ -# TOGGLE CONTROLS +4.7.3 TOGGLE CONTROLS ------------------------------------------------------------------------------*/ ImprovedTube.shortcutToggleControls = function () { @@ -2813,7 +3027,7 @@ ImprovedTube.shortcutToggleControls = function () { /*------------------------------------------------------------------------------ -# PLAY / PAUSE +4.7.4 PLAY / PAUSE ------------------------------------------------------------------------------*/ ImprovedTube.shortcutPlayPause = function () { @@ -2828,7 +3042,7 @@ ImprovedTube.shortcutPlayPause = function () { /*------------------------------------------------------------------------------ -# STOP +4.7.5 STOP ------------------------------------------------------------------------------*/ ImprovedTube.shortcutStop = function () { @@ -2839,7 +3053,7 @@ ImprovedTube.shortcutStop = function () { /*------------------------------------------------------------------------------ -# TOGGLE AUTOPLAY +4.7.6 TOGGLE AUTOPLAY ------------------------------------------------------------------------------*/ ImprovedTube.shortcutToggleAutoplay = function () { @@ -2853,7 +3067,7 @@ ImprovedTube.shortcutToggleAutoplay = function () { /*------------------------------------------------------------------------------ -# NEXT VIDEO +4.7.7 NEXT VIDEO ------------------------------------------------------------------------------*/ ImprovedTube.shortcutNextVideo = function () { @@ -2864,7 +3078,7 @@ ImprovedTube.shortcutNextVideo = function () { /*------------------------------------------------------------------------------ -# PREVIOUS VIDEO +4.7.8 PREVIOUS VIDEO ------------------------------------------------------------------------------*/ ImprovedTube.shortcutPrevVideo = function () { @@ -2875,7 +3089,7 @@ ImprovedTube.shortcutPrevVideo = function () { /*------------------------------------------------------------------------------ -# SEEK BACKWARD +4.7.9 SEEK BACKWARD ------------------------------------------------------------------------------*/ ImprovedTube.shortcutSeekBackward = function () { @@ -2886,7 +3100,7 @@ ImprovedTube.shortcutSeekBackward = function () { /*------------------------------------------------------------------------------ -# SEEK FORWARD +4.7.10 SEEK FORWARD ------------------------------------------------------------------------------*/ ImprovedTube.shortcutSeekForward = function () { @@ -2897,7 +3111,7 @@ ImprovedTube.shortcutSeekForward = function () { /*------------------------------------------------------------------------------ -# SEEK NEXT CHAPTER +4.7.11 SEEK NEXT CHAPTER ------------------------------------------------------------------------------*/ ImprovedTube.shortcutSeekNextChapter = function () { @@ -2935,7 +3149,7 @@ ImprovedTube.shortcutSeekNextChapter = function () { /*------------------------------------------------------------------------------ -# SEEK PREVIOUS CHAPTER +4.7.12 SEEK PREVIOUS CHAPTER ------------------------------------------------------------------------------*/ ImprovedTube.shortcutSeekPreviousChapter = function () { @@ -2973,7 +3187,7 @@ ImprovedTube.shortcutSeekPreviousChapter = function () { /*------------------------------------------------------------------------------ -# INCREASE VOLUME +4.7.13 INCREASE VOLUME ------------------------------------------------------------------------------*/ ImprovedTube.shortcutIncreaseVolume = function () { @@ -2989,7 +3203,7 @@ ImprovedTube.shortcutIncreaseVolume = function () { /*------------------------------------------------------------------------------ -# DECREASE VOLUME +4.7.14 DECREASE VOLUME ------------------------------------------------------------------------------*/ ImprovedTube.shortcutDecreaseVolume = function () { @@ -3005,7 +3219,7 @@ ImprovedTube.shortcutDecreaseVolume = function () { /*------------------------------------------------------------------------------ -# SCREENSHOT +4.7.15 SCREENSHOT ------------------------------------------------------------------------------*/ ImprovedTube.shortcutScreenshot = function () { @@ -3014,7 +3228,7 @@ ImprovedTube.shortcutScreenshot = function () { /*------------------------------------------------------------------------------ -# INCREASE PLAYBACK SPEED +4.7.16 INCREASE PLAYBACK SPEED ------------------------------------------------------------------------------*/ ImprovedTube.shortcutIncreasePlaybackSpeed = function () { @@ -3030,7 +3244,7 @@ ImprovedTube.shortcutIncreasePlaybackSpeed = function () { /*------------------------------------------------------------------------------ -# DECREASE PLAYBACK SPEED +4.7.17 DECREASE PLAYBACK SPEED ------------------------------------------------------------------------------*/ ImprovedTube.shortcutDecreasePlaybackSpeed = function () { @@ -3046,7 +3260,7 @@ ImprovedTube.shortcutDecreasePlaybackSpeed = function () { /*------------------------------------------------------------------------------ -# GO TO SEARCH BOX +4.7.18 GO TO SEARCH BOX ------------------------------------------------------------------------------*/ ImprovedTube.shortcutGoToSearchBox = function () { @@ -3059,7 +3273,7 @@ ImprovedTube.shortcutGoToSearchBox = function () { /*------------------------------------------------------------------------------ -# ACTIVATE FULLSCREEN +4.7.19 ACTIVATE FULLSCREEN ------------------------------------------------------------------------------*/ ImprovedTube.shortcutActivateFullscreen = function () { @@ -3070,7 +3284,7 @@ ImprovedTube.shortcutActivateFullscreen = function () { /*------------------------------------------------------------------------------ -# ACTIVATE CAPTIONS +4.7.20 ACTIVATE CAPTIONS ------------------------------------------------------------------------------*/ ImprovedTube.shortcutActivateCaptions = function () { @@ -3083,7 +3297,7 @@ ImprovedTube.shortcutActivateCaptions = function () { /*------------------------------------------------------------------------------ -# LIKE +4.7.21 LIKE ------------------------------------------------------------------------------*/ ImprovedTube.shortcutLike = function () { @@ -3096,7 +3310,7 @@ ImprovedTube.shortcutLike = function () { /*------------------------------------------------------------------------------ -# DISLIKE +4.7.22 DISLIKE ------------------------------------------------------------------------------*/ ImprovedTube.shortcutDislike = function () { @@ -3109,7 +3323,7 @@ ImprovedTube.shortcutDislike = function () { /*------------------------------------------------------------------------------ -# SUBSCRIBE +4.7.23 SUBSCRIBE ------------------------------------------------------------------------------*/ ImprovedTube.shortcutSubscribe = function () { @@ -3120,7 +3334,7 @@ ImprovedTube.shortcutSubscribe = function () { /*------------------------------------------------------------------------------ -# DARK THEME +4.7.24 DARK THEME ------------------------------------------------------------------------------*/ ImprovedTube.shortcutDarkTheme = function () { @@ -3135,7 +3349,7 @@ ImprovedTube.shortcutDarkTheme = function () { /*------------------------------------------------------------------------------ -# CUSTOM MINI PLAYER +4.7.25 CUSTOM MINI PLAYER ------------------------------------------------------------------------------*/ ImprovedTube.shortcutCustomMiniPlayer = function () { @@ -3146,7 +3360,7 @@ ImprovedTube.shortcutCustomMiniPlayer = function () { /*------------------------------------------------------------------------------ -# STATS FOR NERDS +4.7.26 STATS FOR NERDS ------------------------------------------------------------------------------*/ ImprovedTube.shortcutStatsForNerds = function () { @@ -3161,7 +3375,7 @@ ImprovedTube.shortcutStatsForNerds = function () { /*------------------------------------------------------------------------------ -# TOGGLE CARDS +4.7.27 TOGGLE CARDS ------------------------------------------------------------------------------*/ ImprovedTube.shortcutToggleCards = function () { @@ -3170,7 +3384,7 @@ ImprovedTube.shortcutToggleCards = function () { /*------------------------------------------------------------------------------ -# POPUP PLAYER +4.7.28 POPUP PLAYER ------------------------------------------------------------------------------*/ ImprovedTube.shortcutPopupPlayer = function () { @@ -3185,230 +3399,7 @@ ImprovedTube.shortcutPopupPlayer = function () { /*------------------------------------------------------------------------------ -# SHORTCUTS -------------------------------------------------------------------------------*/ - -ImprovedTube.showStatus = function (value) { - if (!this.elements.status) { - this.elements.status = document.createElement('div'); - - this.elements.status.id = 'it-status'; - } - - if (typeof value === 'number') { - value = value.toFixed(2); - } - - this.elements.status.textContent = value; - - if (ImprovedTube.status_timer) { - clearTimeout(ImprovedTube.status_timer); - } - - ImprovedTube.status_timer = setTimeout(function () { - ImprovedTube.elements.status.remove(); - }, 500); - - this.elements.player.appendChild(this.elements.status); -}; - -ImprovedTube.shortcuts = function() { - var keyboard = { - alt: false, - ctrl: false, - shift: false, - keys: {} - }, - mouse = { - player: false, - wheel: 0 - }, - storage = {}; - - function handler() { - var prevent = false; - - for (var key in storage) { - var shortcut = storage[key], - same_keys = true; - - if ( - keyboard.alt === shortcut.alt && - keyboard.ctrl === shortcut.ctrl && - keyboard.shift === shortcut.shift && - mouse.wheel === shortcut.wheel - ) { - for (var code in keyboard.keys) { - if (!shortcut.keys[code]) { - same_keys = false; - } - } - for (var code in shortcut.keys) { - if (!keyboard.keys[code]) { - same_keys = false; - } - } - - if (mouse.wheel === 0 || mouse.player === true) { - if (same_keys === true) { - if ([ - 'shortcutAuto', - 'shortcut240p', - 'shortcut360p', - 'shortcut480p', - 'shortcut720p', - 'shortcut1080p', - 'shortcut1440p', - 'shortcut2160p', - 'shortcut2880p', - 'shortcut4320p' - ].indexOf(key) !== -1) { - ImprovedTube['shortcutQuality'](key); - } else { - ImprovedTube[key](); - } - - prevent = true; - } - } - } - } - - return prevent; - } - - window.addEventListener('keydown', function(event) { - if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || event.target.isContentEditable) { - return false; - } - - if (event.code === 'AltLeft' || event.code === 'AltRight') { - keyboard.alt = true; - } else if (event.code === 'ControlLeft' || event.code === 'ControlRight') { - keyboard.ctrl = true; - } else if (event.code === 'ShiftLeft' || event.code === 'ShiftRight') { - keyboard.shift = true; - } else { - keyboard.keys[event.keyCode] = true; - } - - mouse.wheel = 0; - - if (handler() === true) { - event.preventDefault(); - } - }, true); - - window.addEventListener('keyup', function(event) { - if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || event.target.isContentEditable) { - return false; - } - - if (event.code === 'AltLeft' || event.code === 'AltRight') { - keyboard.alt = false; - } else if (event.code === 'ControlLeft' || event.code === 'ControlRight') { - keyboard.ctrl = false; - } else if (event.code === 'ShiftLeft' || event.code === 'ShiftRight') { - keyboard.shift = false; - } else { - delete keyboard.keys[event.keyCode]; - } - - mouse.wheel = 0; - }, true); - - window.addEventListener('wheel', function(event) { - if (event.deltaY > 0) { - mouse.wheel = 1; - } else { - mouse.wheel = -1; - } - - if (handler() === true) { - event.preventDefault(); - } - }, { - passive: false, - capture: true - }); - - document.addEventListener('improvedtube-player-loaded', function () { - ImprovedTube.elements.player.parentNode.addEventListener('mouseover', function() { - mouse.player = true; - mouse.wheel = 0; - }, true); - - ImprovedTube.elements.player.parentNode.addEventListener('mouseout', function() { - mouse.player = false; - mouse.wheel = 0; - }, true); - }); - - document.addEventListener('improvedtube-blur', function () { - keyboard.alt = false; - keyboard.ctrl = false; - keyboard.shift = false; - - for (var key in keyboard.keys) { - delete keyboard.keys[key]; - } - - mouse.player = false; - mouse.wheel = 0; - }); - - for (var name in this.storage) { - if (name.indexOf('shortcut_') === 0) { - if (this.isset(this.storage[name])) { - try { - var key = 'shortcut' + (name.replace(/_?shortcut_?/g, '').replace(/\_/g, '-')).split('-').map(function (element, index) { - return element[0].toUpperCase() + element.slice(1); - }).join(''), - old_value = JSON.parse(this.storage[name]), - new_value = { - keys: {} - }; - - if (old_value.altKey) { - new_value.alt = true; - } else { - new_value.alt = false; - } - - if (old_value.ctrlKey) { - new_value.ctrl = true; - } else { - new_value.ctrl = false; - } - - if (old_value.shiftKey) { - new_value.shift = true; - } else { - new_value.shift = false; - } - - if (old_value.key && ['Alt', 'Control', 'Shift'].indexOf(old_value.key) === -1) { - new_value.keys[old_value.keyCode] = true; - } - - if (old_value.wheel > 0) { - new_value.wheel = 1; - } else if (old_value.wheel < 0) { - new_value.wheel = -1; - } else { - new_value.wheel = 0; - } - - storage[key] = new_value; - } catch (err) {} - } - } - } -}; - - -/*------------------------------------------------------------------------------ -8.0 BLACKLIST +4.8.0 BLACKLIST ------------------------------------------------------------------------------*/ document.addEventListener('ImprovedTubeBlacklist', function (event) { @@ -3591,7 +3582,7 @@ ImprovedTube.blacklist = function(type, node) { /*------------------------------------------------------------------------------ -9.0 ANALYZER +4.9.0 ANALYZER ------------------------------------------------------------------------------*/ document.addEventListener('improvedtube-analyzer', function (event) { @@ -3606,11 +3597,11 @@ document.addEventListener('improvedtube-analyzer', function (event) { /*------------------------------------------------------------------------------ -10.0 SETTINGS +4.10.0 SETTINGS ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -10.1 IMPROVEDTUBE ICON +4.10.1 IMPROVEDTUBE ICON ------------------------------------------------------------------------------*/ ImprovedTube.improvedtubeYoutubeIcon = function () { @@ -3748,7 +3739,7 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { /*----------------------------------------------------------------------------- -10.3 DELETE YOUTUBE COOKIES +4.10.3 DELETE YOUTUBE COOKIES -----------------------------------------------------------------------------*/ ImprovedTube.deleteYoutubeCookies = function () { @@ -3769,7 +3760,7 @@ ImprovedTube.deleteYoutubeCookies = function () { /*----------------------------------------------------------------------------- -10.4 YOUTUBE LANGUAGE +4.10.4 YOUTUBE LANGUAGE -----------------------------------------------------------------------------*/ ImprovedTube.youtubeLanguage = function (reload) { @@ -3800,7 +3791,7 @@ ImprovedTube.youtubeLanguage = function (reload) { /*----------------------------------------------------------------------------- -10.5 DEFAULT CONTENT COUNTRY +4.10.5 DEFAULT CONTENT COUNTRY -----------------------------------------------------------------------------*/ ImprovedTube.defaultContentCountry = function (reload) { From 49f53e7d76ebe7a26c1efe708b9f1d4b9b8d48b8 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 12 Aug 2021 14:32:20 +0300 Subject: [PATCH 0341/1224] Added "Subtitles" folder to UI --- manifest.json | 2 +- popup.js | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/manifest.json b/manifest.json index 14ad2ec41..d53b57c85 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.435", + "version": "3.436", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 060d10307..748280772 100644 --- a/popup.js +++ b/popup.js @@ -3409,10 +3409,18 @@ skeleton.main.section.player = { max: 8, step: .05 }, - player_subtitles: { - type: 'switch', + subtitles: { + type: 'folder', label: 'subtitles', - value: true + + section: { + type: 'section', + + player_subtitles: { + type: 'switch', + label: 'subtitles' + } + } }, player_crop_chapter_titles: { type: 'switch', From e79a52f67992ad02fe17ba8e06d85f966fad8ed7 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 12 Aug 2021 14:39:41 +0300 Subject: [PATCH 0342/1224] Added "Font size" feature (subtitles) --- manifest.json | 2 +- popup.js | 26 ++++++++++++++++++++++++++ youtube-scripts.js | 22 ++++++++++++++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index d53b57c85..58e25d2df 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.436", + "version": "3.437", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 748280772..e5c2210ab 100644 --- a/popup.js +++ b/popup.js @@ -3419,6 +3419,32 @@ skeleton.main.section.player = { player_subtitles: { type: 'switch', label: 'subtitles' + }, + subtitles_font_size: { + type: 'select', + label: 'fontSize', + options: [{ + label: '50%', + value: -2 + }, { + label: '75%', + value: -1 + }, { + label: '100%', + value: 1 + }, { + label: '150%', + value: 1 + }, { + label: '200%', + value: 2 + }, { + label: '300%', + value: 3 + }, { + label: '400%', + value: 4 + }] } } }, diff --git a/youtube-scripts.js b/youtube-scripts.js index 9debe0c9f..22d7c8d1c 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -530,6 +530,7 @@ ImprovedTube.playerOnPlay = function () { ImprovedTube.forcedTheaterMode(); ImprovedTube.playerPlaybackSpeed(false); ImprovedTube.subtitles(); + ImprovedTube.subtitlesFontSize(); ImprovedTube.playerQuality(); ImprovedTube.playerVolume(); @@ -1794,6 +1795,27 @@ ImprovedTube.subtitles = function () { }; +/*------------------------------------------------------------------------------ +4.4.4.1 SUBTITLES FONT SIZE +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesFontSize = function () { + var option = this.storage.subtitles_font_size; + + if (this.isset(option)) { + var player = this.elements.player; + + if (player && player.getSubtitlesUserSettings) { + var settings = player.getSubtitlesUserSettings(); + + settings.fontSizeIncrement = option; + + player.updateSubtitlesUserSettings(settings); + } + } +}; + + /*------------------------------------------------------------------------------ 4.4.5 UP NEXT AUTOPLAY ------------------------------------------------------------------------------*/ From 66e233d787d2754e2c9557afdc5c5df5b99241e5 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 12 Aug 2021 14:54:23 +0300 Subject: [PATCH 0343/1224] Added "Font family" feature (subtitles) --- manifest.json | 2 +- popup.js | 26 ++++++++++++++++++++++++++ youtube-scripts.js | 26 ++++++++++++++++++++++++-- 3 files changed, 51 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 58e25d2df..458cdfd1c 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.437", + "version": "3.438", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index e5c2210ab..eaa361857 100644 --- a/popup.js +++ b/popup.js @@ -3420,6 +3420,32 @@ skeleton.main.section.player = { type: 'switch', label: 'subtitles' }, + subtitles_font_family: { + type: 'select', + label: 'fontFamily', + options: [{ + label: 'Monospaced Serif', + value: 1 + }, { + label: 'Proportional Serif', + value: 2 + }, { + label: 'Monospaced Sans-Serif', + value: 3 + }, { + label: 'Proportional Sans-Serif', + value: 4 + }, { + label: 'Casual', + value: 5 + }, { + label: 'Cursive', + value: 6 + }, { + label: 'Small Capitals', + value: 7 + }] + }, subtitles_font_size: { type: 'select', label: 'fontSize', diff --git a/youtube-scripts.js b/youtube-scripts.js index 22d7c8d1c..fcb5e2526 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -530,6 +530,7 @@ ImprovedTube.playerOnPlay = function () { ImprovedTube.forcedTheaterMode(); ImprovedTube.playerPlaybackSpeed(false); ImprovedTube.subtitles(); + ImprovedTube.subtitlesFontFamily(); ImprovedTube.subtitlesFontSize(); ImprovedTube.playerQuality(); ImprovedTube.playerVolume(); @@ -1796,7 +1797,28 @@ ImprovedTube.subtitles = function () { /*------------------------------------------------------------------------------ -4.4.4.1 SUBTITLES FONT SIZE +4.4.4.1 SUBTITLES FONT FAMILY +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesFontFamily = function () { + var option = this.storage.subtitles_font_family; + + if (this.isset(option)) { + var player = this.elements.player; + + if (player && player.getSubtitlesUserSettings) { + var settings = player.getSubtitlesUserSettings(); + + settings.fontFamily = Number(option); + + player.updateSubtitlesUserSettings(settings); + } + } +}; + + +/*------------------------------------------------------------------------------ +4.4.4.2 SUBTITLES FONT SIZE ------------------------------------------------------------------------------*/ ImprovedTube.subtitlesFontSize = function () { @@ -1808,7 +1830,7 @@ ImprovedTube.subtitlesFontSize = function () { if (player && player.getSubtitlesUserSettings) { var settings = player.getSubtitlesUserSettings(); - settings.fontSizeIncrement = option; + settings.fontSizeIncrement = Number(option); player.updateSubtitlesUserSettings(settings); } From 0c9d05689d66a3a04ec1a7a96ebd6df28e2ff639 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 12 Aug 2021 15:00:17 +0300 Subject: [PATCH 0344/1224] Added "Font color" feature (subtitles) --- manifest.json | 2 +- popup.js | 29 +++++++++++++++++++++++++++++ youtube-scripts.js | 24 +++++++++++++++++++++++- 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 458cdfd1c..56a507823 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.438", + "version": "3.439", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index eaa361857..5c7e126e4 100644 --- a/popup.js +++ b/popup.js @@ -3446,6 +3446,35 @@ skeleton.main.section.player = { value: 7 }] }, + subtitles_font_color: { + type: 'select', + label: 'fontColor', + options: [{ + label: 'white', + value: '#fff' + }, { + label: 'yellow', + value: '#ff0' + }, { + label: 'green', + value: '#0f0' + }, { + label: 'cyan', + value: '#0ff' + }, { + label: 'blue', + value: '#00f' + }, { + label: 'magenta', + value: '#f0f' + }, { + label: 'red', + value: '#f00' + }, { + label: 'black', + value: '#000' + }] + }, subtitles_font_size: { type: 'select', label: 'fontSize', diff --git a/youtube-scripts.js b/youtube-scripts.js index fcb5e2526..eafec3f79 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -531,6 +531,7 @@ ImprovedTube.playerOnPlay = function () { ImprovedTube.playerPlaybackSpeed(false); ImprovedTube.subtitles(); ImprovedTube.subtitlesFontFamily(); + ImprovedTube.subtitlesFontColor(); ImprovedTube.subtitlesFontSize(); ImprovedTube.playerQuality(); ImprovedTube.playerVolume(); @@ -1818,7 +1819,28 @@ ImprovedTube.subtitlesFontFamily = function () { /*------------------------------------------------------------------------------ -4.4.4.2 SUBTITLES FONT SIZE +4.4.4.2 SUBTITLES FONT COLOR +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesFontColor = function () { + var option = this.storage.subtitles_font_color; + + if (this.isset(option)) { + var player = this.elements.player; + + if (player && player.getSubtitlesUserSettings) { + var settings = player.getSubtitlesUserSettings(); + + settings.color = option; + + player.updateSubtitlesUserSettings(settings); + } + } +}; + + +/*------------------------------------------------------------------------------ +4.4.4.3 SUBTITLES FONT SIZE ------------------------------------------------------------------------------*/ ImprovedTube.subtitlesFontSize = function () { From 58c5b8c2adda81ea7a56f361f0e9495a19932646 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 12 Aug 2021 15:44:08 +0300 Subject: [PATCH 0345/1224] Added "Background color" feature (subtitles) --- manifest.json | 2 +- popup.js | 29 +++++++++++++++++++++++++++++ youtube-scripts.js | 22 ++++++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 56a507823..c3219c363 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.439", + "version": "3.440", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 5c7e126e4..66942562a 100644 --- a/popup.js +++ b/popup.js @@ -3500,6 +3500,35 @@ skeleton.main.section.player = { label: '400%', value: 4 }] + }, + subtitles_background_color: { + type: 'select', + label: 'backgroundColor', + options: [{ + label: 'white', + value: '#fff' + }, { + label: 'yellow', + value: '#ff0' + }, { + label: 'green', + value: '#0f0' + }, { + label: 'cyan', + value: '#0ff' + }, { + label: 'blue', + value: '#00f' + }, { + label: 'magenta', + value: '#f0f' + }, { + label: 'red', + value: '#f00' + }, { + label: 'black', + value: '#000' + }] } } }, diff --git a/youtube-scripts.js b/youtube-scripts.js index eafec3f79..12e84d941 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -533,6 +533,7 @@ ImprovedTube.playerOnPlay = function () { ImprovedTube.subtitlesFontFamily(); ImprovedTube.subtitlesFontColor(); ImprovedTube.subtitlesFontSize(); + ImprovedTube.subtitlesBackgroundColor(); ImprovedTube.playerQuality(); ImprovedTube.playerVolume(); @@ -1860,6 +1861,27 @@ ImprovedTube.subtitlesFontSize = function () { }; +/*------------------------------------------------------------------------------ +4.4.4.2 SUBTITLES BACKGROUND COLOR +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesBackgroundColor = function () { + var option = this.storage.subtitles_background_color; + + if (this.isset(option)) { + var player = this.elements.player; + + if (player && player.getSubtitlesUserSettings) { + var settings = player.getSubtitlesUserSettings(); + + settings.background = option; + + player.updateSubtitlesUserSettings(settings); + } + } +}; + + /*------------------------------------------------------------------------------ 4.4.5 UP NEXT AUTOPLAY ------------------------------------------------------------------------------*/ From c0c9a210bc29e5c903308da3a4fdedde0e4cbc7c Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 12 Aug 2021 16:24:28 +0300 Subject: [PATCH 0346/1224] Added "Background opacity" feature (subtitles) --- manifest.json | 2 +- popup.js | 8 ++++++++ youtube-scripts.js | 24 +++++++++++++++++++++++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index c3219c363..d92f949e8 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.440", + "version": "3.441", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 66942562a..38a7fe830 100644 --- a/popup.js +++ b/popup.js @@ -3529,6 +3529,14 @@ skeleton.main.section.player = { label: 'black', value: '#000' }] + }, + subtitles_background_opacity: { + type: 'slider', + label: 'backgroundOpacity', + value: 75, + min: 0, + max: 100, + step: 1 } } }, diff --git a/youtube-scripts.js b/youtube-scripts.js index 12e84d941..3565c072f 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -534,6 +534,7 @@ ImprovedTube.playerOnPlay = function () { ImprovedTube.subtitlesFontColor(); ImprovedTube.subtitlesFontSize(); ImprovedTube.subtitlesBackgroundColor(); + ImprovedTube.subtitlesBackgroundOpacity(); ImprovedTube.playerQuality(); ImprovedTube.playerVolume(); @@ -1862,7 +1863,7 @@ ImprovedTube.subtitlesFontSize = function () { /*------------------------------------------------------------------------------ -4.4.4.2 SUBTITLES BACKGROUND COLOR +4.4.4.4 SUBTITLES BACKGROUND COLOR ------------------------------------------------------------------------------*/ ImprovedTube.subtitlesBackgroundColor = function () { @@ -1882,6 +1883,27 @@ ImprovedTube.subtitlesBackgroundColor = function () { }; +/*------------------------------------------------------------------------------ +4.4.4.5 SUBTITLES BACKGROUND OPACITY +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesBackgroundOpacity = function () { + var option = this.storage.subtitles_background_opacity; + + if (this.isset(option)) { + var player = this.elements.player; + + if (player && player.getSubtitlesUserSettings) { + var settings = player.getSubtitlesUserSettings(); + + settings.backgroundOpacity = option / 100; + + player.updateSubtitlesUserSettings(settings); + } + } +}; + + /*------------------------------------------------------------------------------ 4.4.5 UP NEXT AUTOPLAY ------------------------------------------------------------------------------*/ From 04120f28f2603590620a8e21aa26146e4179663a Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 12 Aug 2021 16:27:10 +0300 Subject: [PATCH 0347/1224] Added "Font opacity" feature (subtitles) --- manifest.json | 2 +- popup.js | 8 ++++++++ youtube-scripts.js | 21 +++++++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index d92f949e8..2f427fb0e 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.441", + "version": "3.442", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 38a7fe830..437adb9e0 100644 --- a/popup.js +++ b/popup.js @@ -3537,6 +3537,14 @@ skeleton.main.section.player = { min: 0, max: 100, step: 1 + }, + subtitles_font_opacity: { + type: 'slider', + label: 'fontOpacity', + value: 100, + min: 0, + max: 100, + step: 1 } } }, diff --git a/youtube-scripts.js b/youtube-scripts.js index 3565c072f..b7c2c17e6 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1904,6 +1904,27 @@ ImprovedTube.subtitlesBackgroundOpacity = function () { }; +/*------------------------------------------------------------------------------ +4.4.4.9 SUBTITLES FONT OPACITY +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesFontOpacity = function () { + var option = this.storage.subtitles_font_opacity; + + if (this.isset(option)) { + var player = this.elements.player; + + if (player && player.getSubtitlesUserSettings) { + var settings = player.getSubtitlesUserSettings(); + + settings.textOpacity = option / 100; + + player.updateSubtitlesUserSettings(settings); + } + } +}; + + /*------------------------------------------------------------------------------ 4.4.5 UP NEXT AUTOPLAY ------------------------------------------------------------------------------*/ From ef7e5111b9d4432e20d275e0ce7f8aeb5497c75d Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 12 Aug 2021 16:34:47 +0300 Subject: [PATCH 0348/1224] Added "Character edge style" feature (subtitles) --- manifest.json | 2 +- popup.js | 20 ++++++++++++++++++++ youtube-scripts.js | 23 +++++++++++++++++++++++ 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 2f427fb0e..9fb639a2c 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.442", + "version": "3.443", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 437adb9e0..0c3cabc10 100644 --- a/popup.js +++ b/popup.js @@ -3538,6 +3538,26 @@ skeleton.main.section.player = { max: 100, step: 1 }, + subtitles_character_edge_style: { + type: 'select', + label: 'characterEdgeStyle', + options: [{ + label: 'none', + value: 0 + }, { + label: 'dropShadow', + value: 4 + }, { + label: 'raised', + value: 1 + }, { + label: 'depressed', + value: 2 + }, { + label: 'outline', + value: 3 + }] + }, subtitles_font_opacity: { type: 'slider', label: 'fontOpacity', diff --git a/youtube-scripts.js b/youtube-scripts.js index b7c2c17e6..ec0f95b3f 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -534,6 +534,8 @@ ImprovedTube.playerOnPlay = function () { ImprovedTube.subtitlesFontColor(); ImprovedTube.subtitlesFontSize(); ImprovedTube.subtitlesBackgroundColor(); + ImprovedTube.subtitlesCharacterEdgeStyle(); + ImprovedTube.subtitlesFontOpacity(); ImprovedTube.subtitlesBackgroundOpacity(); ImprovedTube.playerQuality(); ImprovedTube.playerVolume(); @@ -1904,6 +1906,27 @@ ImprovedTube.subtitlesBackgroundOpacity = function () { }; +/*------------------------------------------------------------------------------ +4.4.4.8 SUBTITLES CHARACTER EDGE STYLE +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesCharacterEdgeStyle = function () { + var option = this.storage.subtitles_character_edge_style; + + if (this.isset(option)) { + var player = this.elements.player; + + if (player && player.getSubtitlesUserSettings) { + var settings = player.getSubtitlesUserSettings(); + + settings.charEdgeStyle = Number(option); + + player.updateSubtitlesUserSettings(settings); + } + } +}; + + /*------------------------------------------------------------------------------ 4.4.4.9 SUBTITLES FONT OPACITY ------------------------------------------------------------------------------*/ From e57d20163bb64e26ac7512ac9520dfc14897e554 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 12 Aug 2021 16:39:09 +0300 Subject: [PATCH 0349/1224] Added "Window opacity" feature (subtitles) --- manifest.json | 2 +- popup.js | 8 ++++++++ youtube-scripts.js | 22 ++++++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 9fb639a2c..83d10af48 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.443", + "version": "3.444", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 0c3cabc10..511fa9f89 100644 --- a/popup.js +++ b/popup.js @@ -3538,6 +3538,14 @@ skeleton.main.section.player = { max: 100, step: 1 }, + subtitles_window_opacity: { + type: 'slider', + label: 'windowOpacity', + value: 0, + min: 0, + max: 100, + step: 1 + }, subtitles_character_edge_style: { type: 'select', label: 'characterEdgeStyle', diff --git a/youtube-scripts.js b/youtube-scripts.js index ec0f95b3f..540cf5b6a 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -534,6 +534,7 @@ ImprovedTube.playerOnPlay = function () { ImprovedTube.subtitlesFontColor(); ImprovedTube.subtitlesFontSize(); ImprovedTube.subtitlesBackgroundColor(); + ImprovedTube.subtitlesWindowOpacity(); ImprovedTube.subtitlesCharacterEdgeStyle(); ImprovedTube.subtitlesFontOpacity(); ImprovedTube.subtitlesBackgroundOpacity(); @@ -1906,6 +1907,27 @@ ImprovedTube.subtitlesBackgroundOpacity = function () { }; +/*------------------------------------------------------------------------------ +4.4.4.7 SUBTITLES WINDOW OPACITY +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesWindowOpacity = function () { + var option = this.storage.subtitles_window_opacity; + + if (this.isset(option)) { + var player = this.elements.player; + + if (player && player.getSubtitlesUserSettings) { + var settings = player.getSubtitlesUserSettings(); + + settings.windowOpacity = Number(option) / 100; + + player.updateSubtitlesUserSettings(settings); + } + } +}; + + /*------------------------------------------------------------------------------ 4.4.4.8 SUBTITLES CHARACTER EDGE STYLE ------------------------------------------------------------------------------*/ From 4608cf24c9adf1e97b6cda7d627ceb23e559818d Mon Sep 17 00:00:00 2001 From: dodieboy Date: Fri, 13 Aug 2021 16:14:50 +0800 Subject: [PATCH 0350/1224] Fixed skip overlay not working ImprovedTube not hiding the skip overlay as YouTube change the class name from ytp-doubletap-ui to ytp-doubletap-ui-legacy. --- content-styles.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content-styles.css b/content-styles.css index 8ed96bba4..e0b82b242 100644 --- a/content-styles.css +++ b/content-styles.css @@ -943,7 +943,7 @@ html[it-hide-gradient-bottom=true] .ytp-gradient-bottom { 2.2.11 Skip overlay ------------------------------------------------------------------------------*/ -html[it-player-hide-skip-overlay=true] .ytp-doubletap-ui +html[it-player-hide-skip-overlay=true] .ytp-doubletap-ui, .ytp-doubletap-ui-legacy { visibility: hidden; } From a2781bf06dc447d2ca2a218dbba8a1acceb798ab Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 13 Aug 2021 13:19:25 +0300 Subject: [PATCH 0351/1224] Fixed "Autoplay" feature --- manifest.json | 2 +- youtube-scripts.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 83d10af48..0dd7762f3 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.444", + "version": "3.445", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 540cf5b6a..823330685 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1732,8 +1732,8 @@ ImprovedTube.autoplay = function (video) { if ( ( - (location.href.indexOf('/watch/') !== -1 && location.href.indexOf('list=') === -1 && ImprovedTube.storage.player_autoplay === false) || - (location.href.indexOf('/watch/') !== -1 && location.href.indexOf('list=') !== -1 && ImprovedTube.storage.playlist_autoplay === false) || + (location.href.indexOf('/watch?') !== -1 && location.href.indexOf('list=') === -1 && ImprovedTube.storage.player_autoplay === false) || + (location.href.indexOf('/watch?') !== -1 && location.href.indexOf('list=') !== -1 && ImprovedTube.storage.playlist_autoplay === false) || (ImprovedTube.regex.channel.test(location.href) && ImprovedTube.storage.channel_trailer_autoplay === false) ) === true && ImprovedTube.allow_autoplay === false && From cdd4fe22d49dbdc2c195a2853852b3dbc65c5c3c Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 13 Aug 2021 13:27:16 +0300 Subject: [PATCH 0352/1224] Added "Window color" feature (subtitles) --- manifest.json | 2 +- popup.js | 29 +++++++++++++++++++++++++++++ youtube-scripts.js | 22 ++++++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 0dd7762f3..265f2767b 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.445", + "version": "3.446", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 511fa9f89..5d0875629 100644 --- a/popup.js +++ b/popup.js @@ -3538,6 +3538,35 @@ skeleton.main.section.player = { max: 100, step: 1 }, + subtitles_window_color: { + type: 'select', + label: 'windowColor', + options: [{ + label: 'white', + value: '#fff' + }, { + label: 'yellow', + value: '#ff0' + }, { + label: 'green', + value: '#0f0' + }, { + label: 'cyan', + value: '#0ff' + }, { + label: 'blue', + value: '#00f' + }, { + label: 'magenta', + value: '#f0f' + }, { + label: 'red', + value: '#f00' + }, { + label: 'black', + value: '#000' + }] + }, subtitles_window_opacity: { type: 'slider', label: 'windowOpacity', diff --git a/youtube-scripts.js b/youtube-scripts.js index 823330685..e35fc9ba1 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -534,6 +534,7 @@ ImprovedTube.playerOnPlay = function () { ImprovedTube.subtitlesFontColor(); ImprovedTube.subtitlesFontSize(); ImprovedTube.subtitlesBackgroundColor(); + ImprovedTube.subtitlesWindowColor(); ImprovedTube.subtitlesWindowOpacity(); ImprovedTube.subtitlesCharacterEdgeStyle(); ImprovedTube.subtitlesFontOpacity(); @@ -1907,6 +1908,27 @@ ImprovedTube.subtitlesBackgroundOpacity = function () { }; +/*------------------------------------------------------------------------------ +4.4.4.6 SUBTITLES WINDOW COLOR +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesWindowColor = function () { + var option = this.storage.subtitles_window_color; + + if (this.isset(option)) { + var player = this.elements.player; + + if (player && player.getSubtitlesUserSettings) { + var settings = player.getSubtitlesUserSettings(); + + settings.windowColor = option; + + player.updateSubtitlesUserSettings(settings); + } + } +}; + + /*------------------------------------------------------------------------------ 4.4.4.7 SUBTITLES WINDOW OPACITY ------------------------------------------------------------------------------*/ From d6318a34be89b79c2d11e4b9342eb98a1c2b7675 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 13 Aug 2021 13:35:19 +0300 Subject: [PATCH 0353/1224] Updated locale --- _locales/ar/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/bn/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/de/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/el/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/en/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/es/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/fr/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/hin/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/hr/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/id/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/it/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/ja/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/ko/messages.json | 41 +++++++++++++++++++++++++++++++++++- _locales/nb_NO/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/nl/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/no/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/pl/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/pt_BR/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/pt_PT/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/ro/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/ru/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/sk/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/tr/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/zh_CN/messages.json | 39 ++++++++++++++++++++++++++++++++++ _locales/zh_TW/messages.json | 39 ++++++++++++++++++++++++++++++++++ manifest.json | 2 +- 26 files changed, 977 insertions(+), 2 deletions(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index c129d1a64..03a0a18c7 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "تشغيل تلقائي" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "إعادة تعيين والنسخ الاحتياطي" }, @@ -140,6 +146,9 @@ "channels": { "message": "القنوات" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "الحافظة" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "حذف ملفات تعريف الارتباط من اليوتيوب" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "الوصف" }, @@ -251,6 +263,9 @@ "draggable": { "message": "قابل للسحب" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "البريد الإلكتروني" }, @@ -287,6 +302,18 @@ "font": { "message": "الخط" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "الحزء السفلي" }, @@ -548,6 +575,9 @@ "other": { "message": "آخر" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "الأذونات" }, @@ -608,6 +638,9 @@ "quality": { "message": "الجودة" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "الذاكرة العشوائية" }, @@ -842,6 +875,12 @@ "white": { "message": "أبيض" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "أصفر" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 672cca1db..81eee5a2e 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "স্বয়ংক্রিয় চালু" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "ব্যাকআপ এবং পুনরায় সেট করুন" }, @@ -140,6 +146,9 @@ "channels": { "message": "চ্যানেলগুলি" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "ক্লিপবোর্ড" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "ইউটিউব এর কুকি ডিলিট করুন" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "বর্ণনা" }, @@ -251,6 +263,9 @@ "draggable": { "message": "টেনে আনে" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "ইমেল" }, @@ -287,6 +302,18 @@ "font": { "message": "হরফ" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "পাদচরণ" }, @@ -548,6 +575,9 @@ "other": { "message": "অন্যান্য" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "অনুমতি" }, @@ -608,6 +638,9 @@ "quality": { "message": "গুণ" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "র্যাম" }, @@ -842,6 +875,12 @@ "white": { "message": "সাদা" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "হলুদ" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 3cbdcce4f..ac6aa750c 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "Autoplay" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "Sichern oder zurücksetzen" }, @@ -140,6 +146,9 @@ "channels": { "message": "Kanäle" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "Zwischenablage" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "YouTube-Cookies löschen" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "Beschreibung" }, @@ -251,6 +263,9 @@ "draggable": { "message": "Verschiebbar" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "E-Mail" }, @@ -287,6 +302,18 @@ "font": { "message": "Schriftart" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "Fußzeile" }, @@ -548,6 +575,9 @@ "other": { "message": "Andere" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "Berechtigungen" }, @@ -608,6 +638,9 @@ "quality": { "message": "Qualität" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -842,6 +875,12 @@ "white": { "message": "Weiß" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "Gelb" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index bac99d37c..c095c5bf8 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "Αυτόματη αναπαραγωγή" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "Αντίγραφα ασφαλείας & reset" }, @@ -140,6 +146,9 @@ "channels": { "message": "Κανάλια" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "Clipboard" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "Κατάργησε τα cookies του YouTube" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "Περιγραφή" }, @@ -251,6 +263,9 @@ "draggable": { "message": "Μετακινήσιμο με σύρση" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "Email" }, @@ -287,6 +302,18 @@ "font": { "message": "Γραμματοσειρά" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "Υποσέλιδο" }, @@ -548,6 +575,9 @@ "other": { "message": "Άλλο" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "Άδεια" }, @@ -608,6 +638,9 @@ "quality": { "message": "Ποιότητα" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -842,6 +875,12 @@ "white": { "message": "Λευκό" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "Κίτρινο" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index d64948045..218c5c9ae 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "Autoplay" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "Backup & reset" }, @@ -140,6 +146,9 @@ "channels": { "message": "Channels" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "Clipboard" }, @@ -218,6 +227,9 @@ "deleteYoutubeCookies": { "message": "Delete YouTube cookies" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "Description" }, @@ -254,6 +266,9 @@ "draggable": { "message": "Draggable" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "Email" }, @@ -290,6 +305,18 @@ "font": { "message": "Font" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "Footer" }, @@ -563,6 +590,9 @@ "other": { "message": "Other" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "Permissions" }, @@ -623,6 +653,9 @@ "quality": { "message": "Quality" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -869,6 +902,12 @@ "white": { "message": "White" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "Yellow" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 1d590ef36..f78ac584d 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "Reproducción automática" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "Backup & reset" }, @@ -140,6 +146,9 @@ "channels": { "message": "Canales" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "Portapapeles" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "Borrar cookies de YouTube" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "Descripción" }, @@ -251,6 +263,9 @@ "draggable": { "message": "Arrastrable" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "Email" }, @@ -287,6 +302,18 @@ "font": { "message": "Fuente" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "Pie" }, @@ -548,6 +575,9 @@ "other": { "message": "Otro" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "Permisos" }, @@ -608,6 +638,9 @@ "quality": { "message": "Calidad" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -842,6 +875,12 @@ "white": { "message": "Blanco" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "Amarillo" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 1c94f5aee..67a61c903 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "Lecture automatique" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "Sauvegarde et réinitialisation" }, @@ -140,6 +146,9 @@ "channels": { "message": "Chaînes" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "Presse-papiers" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "Supprimer les cookies YouTube" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "Description" }, @@ -251,6 +263,9 @@ "draggable": { "message": "Draggable" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "Courriel" }, @@ -287,6 +302,18 @@ "font": { "message": "Police" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "Bas de page" }, @@ -551,6 +578,9 @@ "other": { "message": "Autres" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "Permissions" }, @@ -611,6 +641,9 @@ "quality": { "message": "Qualité" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -848,6 +881,12 @@ "white": { "message": "Blanc" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "Jaune" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index e83cda232..772715866 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "स्वत: प्ले" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "बैकअप पुनर्स्थापित करना" }, @@ -140,6 +146,9 @@ "channels": { "message": "चैनल" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "क्लिपबोर्ड" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "यूट्यूब कुकीज़ हटाएं" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "विवरण" }, @@ -251,6 +263,9 @@ "draggable": { "message": "खींचने योग्य" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "ईमेल" }, @@ -287,6 +302,18 @@ "font": { "message": "फ़ॉन्ट" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "पाद लेख" }, @@ -548,6 +575,9 @@ "other": { "message": "अन्य" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "अनुमतियां" }, @@ -608,6 +638,9 @@ "quality": { "message": "गुणवत्ता" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -842,6 +875,12 @@ "white": { "message": "सफेद" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "पीला" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 8866f7992..1ebbd1fc8 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "Auto Play" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "Sigurnosna kopija i resetiranje" }, @@ -140,6 +146,9 @@ "channels": { "message": "Kanali" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "Međuspremnik" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "Izbrišite YouTube kolačiće" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "Opis" }, @@ -251,6 +263,9 @@ "draggable": { "message": "Povuci" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "E-mail" }, @@ -287,6 +302,18 @@ "font": { "message": "Font" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "Podnožje" }, @@ -560,6 +587,9 @@ "other": { "message": "Ostalo" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "Dopuštenja" }, @@ -620,6 +650,9 @@ "quality": { "message": "Kvaliteta" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "Radna memorija" }, @@ -860,6 +893,12 @@ "white": { "message": "Bijela" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "Žuta" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 4114c33bf..cb52bc35b 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "Putar secara otomatis" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "Cadangkan & setel ulang" }, @@ -140,6 +146,9 @@ "channels": { "message": "Saluran" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "Clipboard" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "Hapus kuki youtube" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "Deskripsi" }, @@ -251,6 +263,9 @@ "draggable": { "message": "Dapat diseret" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "Surel" }, @@ -287,6 +302,18 @@ "font": { "message": "Font" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "Catatan kaki" }, @@ -548,6 +575,9 @@ "other": { "message": "Lainnya" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "Perizinan" }, @@ -608,6 +638,9 @@ "quality": { "message": "Kualitas video" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -839,6 +872,12 @@ "white": { "message": "Putih" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "Kuning" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index fd4ec9544..0ee9b47f9 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "Avvio automatico" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "Backup e reimpostazione" }, @@ -140,6 +146,9 @@ "channels": { "message": "Canali" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "Appunti" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "Cancella cookie YouTube" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "Descrizione" }, @@ -251,6 +263,9 @@ "draggable": { "message": "Trascinabile" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "E-mail" }, @@ -287,6 +302,18 @@ "font": { "message": "Font" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "Piè di pagina" }, @@ -548,6 +575,9 @@ "other": { "message": "Altro" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "Autorizzazioni" }, @@ -608,6 +638,9 @@ "quality": { "message": "Qualità" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -839,6 +872,12 @@ "white": { "message": "Bianco" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "Giallo" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 7ea03b5f1..99db275cc 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "自動再生" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "バックアップとリセット" }, @@ -140,6 +146,9 @@ "channels": { "message": "チャンネル" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "クリップボード" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "YouTube の Cookie を削除する" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "説明" }, @@ -251,6 +263,9 @@ "draggable": { "message": "ドラッグ可能にする" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "Email" }, @@ -287,6 +302,18 @@ "font": { "message": "フォント" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "フッター" }, @@ -548,6 +575,9 @@ "other": { "message": "その他" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "権限" }, @@ -608,6 +638,9 @@ "quality": { "message": "画質" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -842,6 +875,12 @@ "white": { "message": "白" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "黄" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 700693654..0038a2146 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "자동재생" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "백업 & 리셋" }, @@ -140,6 +146,9 @@ "channels": { "message": "채널" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "클립보드" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "유튜브 쿠키 삭제" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "설명" }, @@ -251,6 +263,9 @@ "draggable": { "message": "드래그 가능" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "이메일" }, @@ -287,6 +302,18 @@ "font": { "message": "글꼴" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "하단" }, @@ -548,6 +575,9 @@ "other": { "message": "기타" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "권한" }, @@ -608,6 +638,9 @@ "quality": { "message": "퀄리티" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "램" }, @@ -839,6 +872,12 @@ "white": { "message": "하양" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "노랑" }, @@ -857,4 +896,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "유튜브는 h.264 코덱에서 비디오 품질을 1080p로 제한합니다" } -} +} \ No newline at end of file diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 929c44b00..7e3ec296b 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "Autoplay" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "Sikkerhetskopiering og tilbakestilling" }, @@ -140,6 +146,9 @@ "channels": { "message": "Kanaler" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "Utklippstavle" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "Slett YouTube-informasjonskapsler" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "Beskrivelse" }, @@ -251,6 +263,9 @@ "draggable": { "message": "Flyttbare" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "E-post" }, @@ -287,6 +302,18 @@ "font": { "message": "Font" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "Bunntekst" }, @@ -551,6 +578,9 @@ "other": { "message": "Andre" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "rettigheter" }, @@ -611,6 +641,9 @@ "quality": { "message": "Kvalitet" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "Minne" }, @@ -845,6 +878,12 @@ "white": { "message": "Hvit" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "Gul" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index d18acd985..6f5b61908 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "Automatisch afspelen" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "Backup maken & reseten" }, @@ -140,6 +146,9 @@ "channels": { "message": "Kanalen" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "Klembord" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "YouTube-cookies verwijderen" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "Beschrijving" }, @@ -251,6 +263,9 @@ "draggable": { "message": "Sleepbaar" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "E-mail" }, @@ -287,6 +302,18 @@ "font": { "message": "Lettertype" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "Voettekst" }, @@ -548,6 +575,9 @@ "other": { "message": "Anders" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "Machtigingen" }, @@ -608,6 +638,9 @@ "quality": { "message": "Kwaliteit" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -842,6 +875,12 @@ "white": { "message": "Wit" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "Geel" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index b800dd0c1..4063ba718 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "Autoplay" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "Sikkerhetskopiering og tilbakestilling" }, @@ -140,6 +146,9 @@ "channels": { "message": "Kanaler" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "Utklippstavle" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "Slett YouTube-informasjonskapsler" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "Beskrivelse" }, @@ -251,6 +263,9 @@ "draggable": { "message": "Flyttbare" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "E-post" }, @@ -287,6 +302,18 @@ "font": { "message": "Font" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "Bunntekst" }, @@ -545,6 +572,9 @@ "other": { "message": "Andre" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "rettigheter" }, @@ -605,6 +635,9 @@ "quality": { "message": "Quality" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -833,6 +866,12 @@ "white": { "message": "Hvit" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "Gul" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index f60b0df16..bc5511f1b 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "Autoodtwarzanie" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "Kopia zapasowa i reset" }, @@ -140,6 +146,9 @@ "channels": { "message": "Kanały" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "Schowek" }, @@ -218,6 +227,9 @@ "deleteYoutubeCookies": { "message": "Usuń ciasteczka YouTube" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "Opis" }, @@ -254,6 +266,9 @@ "draggable": { "message": "Przeciągalne" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "Email" }, @@ -290,6 +305,18 @@ "font": { "message": "Czcionka" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "Stopka" }, @@ -563,6 +590,9 @@ "other": { "message": "Inne" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "Uprawnienia" }, @@ -623,6 +653,9 @@ "quality": { "message": "Jakość" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -869,6 +902,12 @@ "white": { "message": "Biały" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "Żółty" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 7c8af7b30..4dd718632 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "Reprodução automática" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "Backup & Restauração" }, @@ -140,6 +146,9 @@ "channels": { "message": "Canais" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "Clipboard" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "Deletar cookies do YouTube" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "Descrição" }, @@ -251,6 +263,9 @@ "draggable": { "message": "Arrastável" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "Email" }, @@ -287,6 +302,18 @@ "font": { "message": "Font" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "Rodapé" }, @@ -548,6 +575,9 @@ "other": { "message": "Outras opções" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "Permissões" }, @@ -608,6 +638,9 @@ "quality": { "message": "Qualidade" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -842,6 +875,12 @@ "white": { "message": "Branco" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "Amarelo" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index e6cf8ecfd..6cdfa000c 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "Reprodução automática" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "Cópia de segurança e repor" }, @@ -140,6 +146,9 @@ "channels": { "message": "Canais" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "Area de transferência" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "Apagar os cookies do YouTube" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "Descrição" }, @@ -251,6 +263,9 @@ "draggable": { "message": "Podes arrastar" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "Correio electronico" }, @@ -287,6 +302,18 @@ "font": { "message": "Tipo de letra" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "Cabeçalho" }, @@ -548,6 +575,9 @@ "other": { "message": "Outro" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "Permissões" }, @@ -608,6 +638,9 @@ "quality": { "message": "Qualidade" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "Memoria" }, @@ -842,6 +875,12 @@ "white": { "message": "Branco" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "Amarelo" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index aec521940..7151838e2 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "Pornește automat" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "Salvează & resetează" }, @@ -140,6 +146,9 @@ "channels": { "message": "Canale" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "Clipboard" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "Șterge cookie-urile YouTube" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "Descriere" }, @@ -251,6 +263,9 @@ "draggable": { "message": "Poate fi tras" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "Email" }, @@ -287,6 +302,18 @@ "font": { "message": "Font" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "Subsol" }, @@ -554,6 +581,9 @@ "other": { "message": "Altele" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "Permisiuni" }, @@ -614,6 +644,9 @@ "quality": { "message": "Calitate" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -848,6 +881,12 @@ "white": { "message": "Alb" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "Galben" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index d9d8ad342..8b34b7b97 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "Автовоспроизведение" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "Резервное копирование и сброс" }, @@ -140,6 +146,9 @@ "channels": { "message": "Каналы" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "Буфер обмена" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "Удалить куки YouTube" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "Описание" }, @@ -251,6 +263,9 @@ "draggable": { "message": "Перетаскиваемый" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "Email" }, @@ -287,6 +302,18 @@ "font": { "message": "Шрифт" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "Нижний колонтитул" }, @@ -548,6 +575,9 @@ "other": { "message": "Другое" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "Разрешения" }, @@ -608,6 +638,9 @@ "quality": { "message": "Качество" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -842,6 +875,12 @@ "white": { "message": "Белый" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "Желтый" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 3ed3de45c..6e84156a8 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "Automatické prehrávanie" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "Zálohovanie & Obnova" }, @@ -140,6 +146,9 @@ "channels": { "message": "Kanály" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "Schránka" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "Vymazať YouTube cookies" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "Podrobnosti" }, @@ -251,6 +263,9 @@ "draggable": { "message": "Posuvné" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "Email" }, @@ -287,6 +302,18 @@ "font": { "message": "Písmo" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "Pätička" }, @@ -548,6 +575,9 @@ "other": { "message": "Ostatné" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "Povolenia" }, @@ -608,6 +638,9 @@ "quality": { "message": "Kvalita" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -842,6 +875,12 @@ "white": { "message": "Biela" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "Žltá" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index eb1fe05e2..58c84695d 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "Otomatik oynat" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "Yedek & sıfırla" }, @@ -140,6 +146,9 @@ "channels": { "message": "Kanallar" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "Pano" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "YouTube çerezleri sil" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "Açıklama" }, @@ -251,6 +263,9 @@ "draggable": { "message": "Sürüklenebilir" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "Eposta" }, @@ -287,6 +302,18 @@ "font": { "message": "Yazı Tipi" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "Footer" }, @@ -548,6 +575,9 @@ "other": { "message": "Diğer" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "İzinler" }, @@ -608,6 +638,9 @@ "quality": { "message": "Kalite" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -842,6 +875,12 @@ "white": { "message": "Beyaz" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "Sarı" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 4f4dd579f..e793d4550 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "自动播放" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "备份与恢复" }, @@ -140,6 +146,9 @@ "channels": { "message": "频道" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "粘贴板" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "清空 YouTube cookies" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "视频描述" }, @@ -251,6 +263,9 @@ "draggable": { "message": "可拖动" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "Email" }, @@ -287,6 +302,18 @@ "font": { "message": "字体" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "底部栏" }, @@ -560,6 +587,9 @@ "other": { "message": "其他" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "许可" }, @@ -620,6 +650,9 @@ "quality": { "message": "画质" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -860,6 +893,12 @@ "white": { "message": "白色" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "黄色" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 904eb5ece..d71826da1 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -83,6 +83,12 @@ "autoplay": { "message": "自動播放" }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, "backupAndReset": { "message": "備份 & 重置" }, @@ -140,6 +146,9 @@ "channels": { "message": "頻道" }, + "characterEdgeStyle": { + "message": "Character edge style" + }, "clipboard": { "message": "剪貼簿" }, @@ -215,6 +224,9 @@ "deleteYoutubeCookies": { "message": "刪除 YouTube cookies" }, + "depressed": { + "message": "Depressed" + }, "description": { "message": "影片描述" }, @@ -251,6 +263,9 @@ "draggable": { "message": "可拖動" }, + "dropShadow": { + "message": "Drop shadow" + }, "email": { "message": "Email" }, @@ -287,6 +302,18 @@ "font": { "message": "字體" }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, "footer": { "message": "頁腳" }, @@ -557,6 +584,9 @@ "other": { "message": "其他" }, + "outline": { + "message": "Outline" + }, "permissions": { "message": "權限" }, @@ -617,6 +647,9 @@ "quality": { "message": "品質" }, + "raised": { + "message": "Raised" + }, "ram": { "message": "RAM" }, @@ -854,6 +887,12 @@ "white": { "message": "白色" }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, "yellow": { "message": "黃色" }, diff --git a/manifest.json b/manifest.json index 265f2767b..1cec414b2 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.446", + "version": "3.447", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From f44d113318d427f32df5f293887deb8601f61397 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 13 Aug 2021 14:26:35 +0300 Subject: [PATCH 0354/1224] Fixed subtitles data bug --- manifest.json | 2 +- youtube-scripts.js | 54 ++++++++++++++++++++++++++++++---------------- 2 files changed, 37 insertions(+), 19 deletions(-) diff --git a/manifest.json b/manifest.json index 1cec414b2..54bd2be80 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.447", + "version": "3.448", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index e35fc9ba1..e3ddd1824 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1816,9 +1816,11 @@ ImprovedTube.subtitlesFontFamily = function () { if (player && player.getSubtitlesUserSettings) { var settings = player.getSubtitlesUserSettings(); - settings.fontFamily = Number(option); + if (settings) { + settings.fontFamily = Number(option); - player.updateSubtitlesUserSettings(settings); + player.updateSubtitlesUserSettings(settings); + } } } }; @@ -1837,9 +1839,11 @@ ImprovedTube.subtitlesFontColor = function () { if (player && player.getSubtitlesUserSettings) { var settings = player.getSubtitlesUserSettings(); - settings.color = option; + if (settings) { + settings.color = option; - player.updateSubtitlesUserSettings(settings); + player.updateSubtitlesUserSettings(settings); + } } } }; @@ -1858,9 +1862,11 @@ ImprovedTube.subtitlesFontSize = function () { if (player && player.getSubtitlesUserSettings) { var settings = player.getSubtitlesUserSettings(); - settings.fontSizeIncrement = Number(option); + if (settings) { + settings.fontSizeIncrement = Number(option); - player.updateSubtitlesUserSettings(settings); + player.updateSubtitlesUserSettings(settings); + } } } }; @@ -1879,9 +1885,11 @@ ImprovedTube.subtitlesBackgroundColor = function () { if (player && player.getSubtitlesUserSettings) { var settings = player.getSubtitlesUserSettings(); - settings.background = option; + if (settings) { + settings.background = option; - player.updateSubtitlesUserSettings(settings); + player.updateSubtitlesUserSettings(settings); + } } } }; @@ -1900,9 +1908,11 @@ ImprovedTube.subtitlesBackgroundOpacity = function () { if (player && player.getSubtitlesUserSettings) { var settings = player.getSubtitlesUserSettings(); - settings.backgroundOpacity = option / 100; + if (settings) { + settings.backgroundOpacity = option / 100; - player.updateSubtitlesUserSettings(settings); + player.updateSubtitlesUserSettings(settings); + } } } }; @@ -1921,9 +1931,11 @@ ImprovedTube.subtitlesWindowColor = function () { if (player && player.getSubtitlesUserSettings) { var settings = player.getSubtitlesUserSettings(); - settings.windowColor = option; + if (settings) { + settings.windowColor = option; - player.updateSubtitlesUserSettings(settings); + player.updateSubtitlesUserSettings(settings); + } } } }; @@ -1942,9 +1954,11 @@ ImprovedTube.subtitlesWindowOpacity = function () { if (player && player.getSubtitlesUserSettings) { var settings = player.getSubtitlesUserSettings(); - settings.windowOpacity = Number(option) / 100; + if (settings) { + settings.windowOpacity = Number(option) / 100; - player.updateSubtitlesUserSettings(settings); + player.updateSubtitlesUserSettings(settings); + } } } }; @@ -1963,9 +1977,11 @@ ImprovedTube.subtitlesCharacterEdgeStyle = function () { if (player && player.getSubtitlesUserSettings) { var settings = player.getSubtitlesUserSettings(); - settings.charEdgeStyle = Number(option); + if (settings) { + settings.charEdgeStyle = Number(option); - player.updateSubtitlesUserSettings(settings); + player.updateSubtitlesUserSettings(settings); + } } } }; @@ -1984,9 +2000,11 @@ ImprovedTube.subtitlesFontOpacity = function () { if (player && player.getSubtitlesUserSettings) { var settings = player.getSubtitlesUserSettings(); - settings.textOpacity = option / 100; + if (settings) { + settings.textOpacity = option / 100; - player.updateSubtitlesUserSettings(settings); + player.updateSubtitlesUserSettings(settings); + } } } }; From b1648877f21ec4cd85a682038a0d4eea43805b83 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 13 Aug 2021 14:37:34 +0300 Subject: [PATCH 0355/1224] Added "Forced play video from the beginning" feature --- manifest.json | 2 +- popup.js | 4 ++++ youtube-scripts.js | 12 ++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 54bd2be80..a27117f0b 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.448", + "version": "3.449", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 5d0875629..6c3f2c3a7 100644 --- a/popup.js +++ b/popup.js @@ -3366,6 +3366,10 @@ skeleton.main.section.player = { label: 'autoplay', value: true }, + forced_play_video_from_the_beginning: { + type: 'switch', + label: 'forcedPlayVideoFromTheBeginning' + }, player_autofullscreen: { type: 'switch', label: 'autoFullscreen' diff --git a/youtube-scripts.js b/youtube-scripts.js index e3ddd1824..4ea94c2c4 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -527,6 +527,7 @@ ImprovedTube.playerOnPlay = function () { ImprovedTube.video_url = location.href; ImprovedTube.played_before_blur = false; + ImprovedTube.forcedPlayVideoFromTheBeginning(); ImprovedTube.forcedTheaterMode(); ImprovedTube.playerPlaybackSpeed(false); ImprovedTube.subtitles(); @@ -1747,6 +1748,17 @@ ImprovedTube.autoplay = function (video) { }; +/*------------------------------------------------------------------------------ +4.4.2 FORCED PLAY VIDEO FROM THE BEGINNING +------------------------------------------------------------------------------*/ + +ImprovedTube.forcedPlayVideoFromTheBeginning = function() { + if (this.storage.forced_play_video_from_the_beginning === true) { + this.elements.player.seekTo(0); + } +}; + + /*------------------------------------------------------------------------------ 4.4.2 AUTOPAUSE WHEN SWITCHING TABS ------------------------------------------------------------------------------*/ From b0c2216d4aa40aaab155ec9e2e6b58cc0c322ac4 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 13 Aug 2021 14:39:00 +0300 Subject: [PATCH 0356/1224] Updated locales --- _locales/ar/messages.json | 3 +++ _locales/bn/messages.json | 3 +++ _locales/de/messages.json | 3 +++ _locales/el/messages.json | 3 +++ _locales/en/messages.json | 3 +++ _locales/es/messages.json | 3 +++ _locales/fr/messages.json | 3 +++ _locales/hin/messages.json | 3 +++ _locales/hr/messages.json | 3 +++ _locales/id/messages.json | 3 +++ _locales/it/messages.json | 3 +++ _locales/ja/messages.json | 3 +++ _locales/ko/messages.json | 3 +++ _locales/nb_NO/messages.json | 3 +++ _locales/nl/messages.json | 3 +++ _locales/no/messages.json | 3 +++ _locales/pl/messages.json | 3 +++ _locales/pt_BR/messages.json | 3 +++ _locales/pt_PT/messages.json | 3 +++ _locales/ro/messages.json | 3 +++ _locales/ru/messages.json | 3 +++ _locales/sk/messages.json | 3 +++ _locales/tr/messages.json | 3 +++ _locales/zh_CN/messages.json | 3 +++ _locales/zh_TW/messages.json | 3 +++ manifest.json | 2 +- 26 files changed, 76 insertions(+), 1 deletion(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 03a0a18c7..50e53d09f 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "SDR فرض" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "تثبيت سرعة التشغيل" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 81eee5a2e..b049d25b6 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Force SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "জোর করে প্লেব্যাক গতি" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index ac6aa750c..4707cc0bf 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "SDR erzwingen" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "erzwungene Abspielgeschwindigkeit" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index c095c5bf8..414b31d28 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Force SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "Υποχρεωτική ταχύτητα αναπαραγωγής" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 218c5c9ae..a33a2aadd 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -323,6 +323,9 @@ "forceSDR": { "message": "Force SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "Forced playback speed" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index f78ac584d..c47a25ff6 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Force SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "Forzar velocidad de reproducción" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 67a61c903..d16f21b60 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Force SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "Vitesse de lecture forcée" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index 772715866..7d488ac2e 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Force SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "जबरन पार्श्व गति" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 1ebbd1fc8..a68dcc9de 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Prisilno SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "Prisiljena brzina reprodukcije" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index cb52bc35b..3d27b2e08 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Force SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "Paksa kecepatan pemutaran" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 0ee9b47f9..a991bed17 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Forza SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "Velocità di riproduzione forzata" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 99db275cc..2c3f88227 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Force SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "再生速度を指定する" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 0038a2146..cc511d0a4 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Force SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "되감기 속도 강제설정" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 7e3ec296b..d4f90ccd3 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Force SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "Tvungen avspillingshastighet" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 6f5b61908..668b77194 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Force SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "Afspeelsnelheid afdwingen" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 4063ba718..12a946549 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Force SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "Tvungen avspillingshastighet" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index bc5511f1b..852fa05c6 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -323,6 +323,9 @@ "forceSDR": { "message": "Wymuś SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "Wymuś prędkość odtwarzania" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 4dd718632..d34995370 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Force SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "Forced playback speed" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 6cdfa000c..02b95c5d7 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Force SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "Forçar velocidade de leitura" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 7151838e2..7533dc411 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Forțează SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "Viteză de playback forțată" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 8b34b7b97..429a4d029 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Force SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "Форсировать скорость воспроизведения" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 6e84156a8..9e6dfc391 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Force SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "Vynútená rýchlosť prehrávania" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 58c84695d..aa775ad89 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "SDR Zorla" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "Oynatma hızını uygulamaya zorla" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index e793d4550..f7df040ab 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "Force SDR" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "强制设置播放速度" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index d71826da1..13716c8fd 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -320,6 +320,9 @@ "forceSDR": { "message": "強制使用標準動態範圍 (SDR)" }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, "forcedPlaybackSpeed": { "message": "強制播放速度" }, diff --git a/manifest.json b/manifest.json index a27117f0b..072add2b1 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.449", + "version": "3.450", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 59ec666fa27549bb01f00bd339b361a31e9122da Mon Sep 17 00:00:00 2001 From: dodieboy Date: Fri, 13 Aug 2021 21:11:56 +0800 Subject: [PATCH 0357/1224] Added "video remaining duration" to Translation file Feature request in #941 --- _locales/ar/messages.json | 3 +++ _locales/bn/messages.json | 3 +++ _locales/de/messages.json | 3 +++ _locales/el/messages.json | 3 +++ _locales/en/messages.json | 3 +++ _locales/es/messages.json | 3 +++ _locales/fr/messages.json | 3 +++ _locales/hin/messages.json | 3 +++ _locales/hr/messages.json | 3 +++ _locales/id/messages.json | 3 +++ _locales/it/messages.json | 3 +++ _locales/ja/messages.json | 3 +++ _locales/ko/messages.json | 3 +++ _locales/nb_NO/messages.json | 3 +++ _locales/nl/messages.json | 3 +++ _locales/no/messages.json | 3 +++ _locales/pl/messages.json | 3 +++ _locales/pt_BR/messages.json | 3 +++ _locales/pt_PT/messages.json | 3 +++ _locales/ro/messages.json | 3 +++ _locales/ru/messages.json | 3 +++ _locales/sk/messages.json | 3 +++ _locales/tr/messages.json | 3 +++ _locales/zh_CN/messages.json | 3 +++ _locales/zh_TW/messages.json | 3 +++ popup.js | 5 +++++ youtube-scripts.js | 35 +++++++++++++++++++++++++++++++++++ 27 files changed, 115 insertions(+) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 50e53d09f..af7cfa489 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -419,6 +419,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "إخفاء عدد المشاهدات" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index b049d25b6..038ef2087 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -419,6 +419,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "দর্শন গণনা লুকান" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 4707cc0bf..d8893bce2 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -419,6 +419,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "Videoaufrufe ausblenden" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 414b31d28..f5d7db378 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -419,6 +419,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "Απόκρυψε τον αριθμό προβολών" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index a33a2aadd..7219b7f6d 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -428,6 +428,9 @@ "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index c47a25ff6..82706146b 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -419,6 +419,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "Ocultar contador de visitas" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index d16f21b60..98907e6be 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -419,6 +419,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "Voir le compte des vues" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index 7d488ac2e..3d55bdb7a 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -419,6 +419,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "व्यू काउंट छिपाएं" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index a68dcc9de..aaa708d59 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -425,6 +425,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideThumbnailOverlay": { "message": "Sakrij gumbe na sličicama" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 3d27b2e08..0761ead86 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -419,6 +419,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "Sembunyikan jumlah penayangan" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index a991bed17..fb0105cee 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -419,6 +419,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "Nascondi contatore visualizzazioni" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 2c3f88227..79666c86c 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -419,6 +419,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "視聴数を隠す" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index cc511d0a4..d217d45a8 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -419,6 +419,9 @@ "hideSkipOverlay": { "message": "\"오버레이 건너뛰기\" 숨기기" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "조회수 숨기기" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index d4f90ccd3..805173781 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -422,6 +422,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "Skjul visningsteller" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 668b77194..2eebc683b 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -419,6 +419,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "Verberg views teller" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 12a946549..02e0b821c 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -416,6 +416,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "Skjul visninger teller" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 852fa05c6..5b5f300b6 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -428,6 +428,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideThumbnailOverlay": { "message": "Ukryj przyciski na miniaturach" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index d34995370..fa5d5a1fd 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -419,6 +419,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "Ocultar visualizações" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 02b95c5d7..bea8dd276 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -419,6 +419,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "Esconder número de vistos" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 7533dc411..5a276e691 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -422,6 +422,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "Ascunde numărul vizualizărilor" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 429a4d029..58f5907d4 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -419,6 +419,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "Скрыть количество просмотров" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 9e6dfc391..6d98a2471 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -419,6 +419,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "Skyť počet videní" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index aa775ad89..54a1dd1d3 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -419,6 +419,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideViewsCount": { "message": "Görüntüleme sayısını gizle" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index f7df040ab..d9ba019e4 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -425,6 +425,9 @@ "hideSkipOverlay": { "message": "隐藏跳过叠加" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideThumbnailOverlay": { "message": "隐藏缩略图上的按钮" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 13716c8fd..0cd7f242a 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -422,6 +422,9 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "showRemainingDuration":{ + "message": "Show video remaining duration" + }, "hideThumbnailOverlay": { "message": "隱藏縮圖上的按鈕" }, diff --git a/popup.js b/popup.js index 6c3f2c3a7..d19c7859e 100644 --- a/popup.js +++ b/popup.js @@ -2710,6 +2710,11 @@ skeleton.main.section.appearance = { label: 'hideSkipOverlay', value: false }, + player_remaining_duration: { + type: 'switch', + label: 'showRemainingDuration', + value: false + }, always_show_progress_bar: { type: 'switch', label: 'alwaysShowProgressBar' diff --git a/youtube-scripts.js b/youtube-scripts.js index 4ea94c2c4..ad96546fd 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -19,6 +19,7 @@ 4.2.1.2 Forced theater mode 4.2.1.3 HD thumbnail 4.2.1.4 Always show progress bar + 4.2.1.5 Video Remaining duration 4.2.2 Sidebar 4.2.2.1 Livechat 4.2.2.2 Related videos @@ -573,6 +574,7 @@ ImprovedTube.playerOnTimeUpdate = function () { } ImprovedTube.alwaysShowProgressBar(); + ImprovedTube.playerRemainingDuration(); ImprovedTube.played_time += .25; }; @@ -1258,6 +1260,39 @@ ImprovedTube.alwaysShowProgressBar = function () { }; +/*------------------------------------------------------------------------------ +4.2.1.4 ALWAYS SHOW PROGRESS BAR +------------------------------------------------------------------------------*/ + +ImprovedTube.formatSecond = function(rTime){ + var time = new Date(null); + time.setSeconds(rTime); + if (rTime/3600 < 1){ + return time.toISOString().substr(14, 5); + } + else{ + return time.toISOString().substr(11, 8); + } +} + +ImprovedTube.playerRemainingDuration = function () { + if (this.storage.player_remaining_duration === true) { + var player = ImprovedTube.elements.player; + var rTime = ImprovedTube.formatSecond((player.getDuration() - player.getCurrentTime()).toFixed(0)); + var element = document.querySelector('.ytp-time-remaining-duration'); + if(!element){ + var label = document.createElement('span'); + label.textContent = ' (-' + rTime + ')'; + label.className = 'ytp-time-remaining-duration'; + document.querySelector('.ytp-time-display').appendChild(label); + } + else{ + element.textContent = ' (-' + rTime + ')'; + } + } +}; + + /*------------------------------------------------------------------------------ 4.2.2 SIDEBAR ------------------------------------------------------------------------------*/ From 0a5ac19ad60082b696fd32cf2961c49d352df346 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 13 Aug 2021 17:07:51 +0300 Subject: [PATCH 0358/1224] Added "Language" feature (subtitles) --- manifest.json | 2 +- popup.js | 446 +++++++++++++++++++++++++++++++++++++++++++++ youtube-scripts.js | 28 +++ 3 files changed, 475 insertions(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 072add2b1..686968a18 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.450", + "version": "3.451", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 6c3f2c3a7..1ae6de959 100644 --- a/popup.js +++ b/popup.js @@ -3424,6 +3424,452 @@ skeleton.main.section.player = { type: 'switch', label: 'subtitles' }, + subtitles_language: { + type: 'select', + label: 'language', + options: [ + { + value: 'default', + label: 'default' + }, + { + value: 'af', + label: 'Afrikaans' + }, + { + value: 'am', + label: 'Amharic' + }, + { + value: 'ar', + label: 'Arabic' + }, + { + value: 'az', + label: 'Azerbaijani' + }, + { + value: 'be', + label: 'Belarusian' + }, + { + value: 'bg', + label: 'Bulgarian' + }, + { + value: 'bn', + label: 'Bangla' + }, + { + value: 'bs', + label: 'Bosnian' + }, + { + value: 'ca', + label: 'Catalan' + }, + { + value: 'ceb', + label: 'Cebuano' + }, + { + value: 'co', + label: 'Corsican' + }, + { + value: 'cs', + label: 'Czech' + }, + { + value: 'cy', + label: 'Welsh' + }, + { + value: 'da', + label: 'Danish' + }, + { + value: 'de', + label: 'German' + }, + { + value: 'el', + label: 'Greek' + }, + { + value: 'en', + label: 'English' + }, + { + value: 'eo', + label: 'Esperanto' + }, + { + value: 'es', + label: 'Spanish' + }, + { + value: 'et', + label: 'Estonian' + }, + { + value: 'eu', + label: 'Basque' + }, + { + value: 'fa', + label: 'Persian' + }, + { + value: 'fi', + label: 'Finnish' + }, + { + value: 'fil', + label: 'Filipino' + }, + { + value: 'fr', + label: 'French' + }, + { + value: 'fy', + label: 'Western Frisian' + }, + { + value: 'ga', + label: 'Irish' + }, + { + value: 'gd', + label: 'Scottish Gaelic' + }, + { + value: 'gl', + label: 'Galician' + }, + { + value: 'gu', + label: 'Gujarati' + }, + { + value: 'ha', + label: 'Hausa' + }, + { + value: 'haw', + label: 'Hawaiian' + }, + { + value: 'hi', + label: 'Hindi' + }, + { + value: 'hmn', + label: 'Hmong' + }, + { + value: 'hr', + label: 'Croatian' + }, + { + value: 'ht', + label: 'Haitian Creole' + }, + { + value: 'hu', + label: 'Hungarian' + }, + { + value: 'hy', + label: 'Armenian' + }, + { + value: 'id', + label: 'Indonesian' + }, + { + value: 'ig', + label: 'Igbo' + }, + { + value: 'is', + label: 'Icelandic' + }, + { + value: 'it', + label: 'Italian' + }, + { + value: 'iw', + label: 'Hebrew' + }, + { + value: 'ja', + label: 'Japanese' + }, + { + value: 'jv', + label: 'Javanese' + }, + { + value: 'ka', + label: 'Georgian' + }, + { + value: 'kk', + label: 'Kazakh' + }, + { + value: 'km', + label: 'Khmer' + }, + { + value: 'kn', + label: 'Kannada' + }, + { + value: 'ko', + label: 'Korean' + }, + { + value: 'ku', + label: 'Kurdish' + }, + { + value: 'ky', + label: 'Kyrgyz' + }, + { + value: 'la', + label: 'Latin' + }, + { + value: 'lb', + label: 'Luxembourgish' + }, + { + value: 'lo', + label: 'Lao' + }, + { + value: 'lt', + label: 'Lithuanian' + }, + { + value: 'lv', + label: 'Latvian' + }, + { + value: 'mg', + label: 'Malagasy' + }, + { + value: 'mi', + label: 'Maori' + }, + { + value: 'mk', + label: 'Macedonian' + }, + { + value: 'ml', + label: 'Malayalam' + }, + { + value: 'mn', + label: 'Mongolian' + }, + { + value: 'mr', + label: 'Marathi' + }, + { + value: 'ms', + label: 'Malay' + }, + { + value: 'mt', + label: 'Maltese' + }, + { + value: 'my', + label: 'Burmese' + }, + { + value: 'ne', + label: 'Nepali' + }, + { + value: 'nl', + label: 'Dutch' + }, + { + value: 'no', + label: 'Norwegian' + }, + { + value: 'ny', + label: 'Nyanja' + }, + { + value: 'or', + label: 'Odia' + }, + { + value: 'pa', + label: 'Punjabi' + }, + { + value: 'pl', + label: 'Polish' + }, + { + value: 'ps', + label: 'Pashto' + }, + { + value: 'pt', + label: 'Portuguese' + }, + { + value: 'ro', + label: 'Romanian' + }, + { + value: 'ru', + label: 'Russian' + }, + { + value: 'rw', + label: 'Kinyarwanda' + }, + { + value: 'sd', + label: 'Sindhi' + }, + { + value: 'si', + label: 'Sinhala' + }, + { + value: 'sk', + label: 'Slovak' + }, + { + value: 'sl', + label: 'Slovenian' + }, + { + value: 'sm', + label: 'Samoan' + }, + { + value: 'sn', + label: 'Shona' + }, + { + value: 'so', + label: 'Somali' + }, + { + value: 'sq', + label: 'Albanian' + }, + { + value: 'sr', + label: 'Serbian' + }, + { + value: 'st', + label: 'Southern Sotho' + }, + { + value: 'su', + label: 'Sundanese' + }, + { + value: 'sv', + label: 'Swedish' + }, + { + value: 'sw', + label: 'Swahili' + }, + { + value: 'ta', + label: 'Tamil' + }, + { + value: 'te', + label: 'Telugu' + }, + { + value: 'tg', + label: 'Tajik' + }, + { + value: 'th', + label: 'Thai' + }, + { + value: 'tk', + label: 'Turkmen' + }, + { + value: 'tr', + label: 'Turkish' + }, + { + value: 'tt', + label: 'Tatar' + }, + { + value: 'ug', + label: 'Uyghur' + }, + { + value: 'uk', + label: 'Ukrainian' + }, + { + value: 'ur', + label: 'Urdu' + }, + { + value: 'uz', + label: 'Uzbek' + }, + { + value: 'vi', + label: 'Vietnamese' + }, + { + value: 'xh', + label: 'Xhosa' + }, + { + value: 'yi', + label: 'Yiddish' + }, + { + value: 'yo', + label: 'Yoruba' + }, + { + value: 'zh-Hans', + label: 'Chinese (Simplified)' + }, + { + value: 'zh-Hant', + label: 'Chinese (Traditional)' + }, + { + value: 'zu', + label: 'Zulu' + } + ] + }, subtitles_font_family: { type: 'select', label: 'fontFamily', diff --git a/youtube-scripts.js b/youtube-scripts.js index 4ea94c2c4..317b152ef 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -531,6 +531,7 @@ ImprovedTube.playerOnPlay = function () { ImprovedTube.forcedTheaterMode(); ImprovedTube.playerPlaybackSpeed(false); ImprovedTube.subtitles(); + ImprovedTube.subtitlesLanguage(); ImprovedTube.subtitlesFontFamily(); ImprovedTube.subtitlesFontColor(); ImprovedTube.subtitlesFontSize(); @@ -1815,6 +1816,33 @@ ImprovedTube.subtitles = function () { }; +/*------------------------------------------------------------------------------ +4.4.4.1 SUBTITLES LANGUAGE +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesLanguage = function () { + var option = this.storage.subtitles_language, + player = this.elements.player; + + if (this.isset(option) && option !== 'default' && player && player.getOption) { + var tracklist = ImprovedTube.elements.player.getOption('captions', 'tracklist', { + includeAsr: true + }); + + if (tracklist && tracklist[0]) { + tracklist = tracklist[0]; + + tracklist.translationLanguage = { + languageCode: option, + languageName: option + }; + + ImprovedTube.elements.player.setOption('captions', 'track', tracklist); + } + } +}; + + /*------------------------------------------------------------------------------ 4.4.4.1 SUBTITLES FONT FAMILY ------------------------------------------------------------------------------*/ From cd1176c3936975a7238d44eef59e6dfe597901a9 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 13 Aug 2021 17:14:04 +0300 Subject: [PATCH 0359/1224] Updated locales --- _locales/ar/messages.json | 3 +++ _locales/bn/messages.json | 3 +++ _locales/de/messages.json | 3 +++ _locales/el/messages.json | 3 +++ _locales/en/messages.json | 3 +++ _locales/es/messages.json | 3 +++ _locales/fr/messages.json | 3 +++ _locales/hin/messages.json | 3 +++ _locales/hr/messages.json | 3 +++ _locales/id/messages.json | 3 +++ _locales/it/messages.json | 3 +++ _locales/ja/messages.json | 3 +++ _locales/ko/messages.json | 3 +++ _locales/nb_NO/messages.json | 3 +++ _locales/nl/messages.json | 3 +++ _locales/no/messages.json | 3 +++ _locales/pl/messages.json | 3 +++ _locales/pt_BR/messages.json | 3 +++ _locales/pt_PT/messages.json | 3 +++ _locales/ro/messages.json | 3 +++ _locales/ru/messages.json | 3 +++ _locales/sk/messages.json | 3 +++ _locales/tr/messages.json | 3 +++ _locales/zh_CN/messages.json | 3 +++ _locales/zh_TW/messages.json | 3 +++ 25 files changed, 75 insertions(+) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 50e53d09f..f6574a769 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -476,6 +476,9 @@ "items": { "message": "العناصر" }, + "language": { + "message": "Language" + }, "languages": { "message": "اللغات" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index b049d25b6..86b35d4aa 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -476,6 +476,9 @@ "items": { "message": "আইটেম" }, + "language": { + "message": "Language" + }, "languages": { "message": "Languages" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 4707cc0bf..a5e157394 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -476,6 +476,9 @@ "items": { "message": "Items" }, + "language": { + "message": "Language" + }, "languages": { "message": "Sprachen" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 414b31d28..9fec50fba 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -476,6 +476,9 @@ "items": { "message": "Αντικείμενα" }, + "language": { + "message": "Language" + }, "languages": { "message": "Γλώσσες" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index a33a2aadd..cdec797f0 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -488,6 +488,9 @@ "items": { "message": "Items" }, + "language": { + "message": "Language" + }, "languages": { "message": "Languages" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index c47a25ff6..86adb68ce 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -476,6 +476,9 @@ "items": { "message": "Items" }, + "language": { + "message": "Language" + }, "languages": { "message": "Idiomas" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index d16f21b60..f432f358f 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -476,6 +476,9 @@ "items": { "message": "Objets" }, + "language": { + "message": "Language" + }, "languages": { "message": "Langues" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index 7d488ac2e..2c804417d 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -476,6 +476,9 @@ "items": { "message": "आइटम" }, + "language": { + "message": "Language" + }, "languages": { "message": "बोली" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index a68dcc9de..dab245845 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -485,6 +485,9 @@ "items": { "message": "Predmeti" }, + "language": { + "message": "Language" + }, "languages": { "message": "Jezici" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 3d27b2e08..494577bc0 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -476,6 +476,9 @@ "items": { "message": "Item" }, + "language": { + "message": "Language" + }, "languages": { "message": "Bahasa" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index a991bed17..4e1cbf3f8 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -476,6 +476,9 @@ "items": { "message": "Oggetti" }, + "language": { + "message": "Language" + }, "languages": { "message": "Lingue" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 2c3f88227..9d67d219b 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -476,6 +476,9 @@ "items": { "message": "アイテム" }, + "language": { + "message": "Language" + }, "languages": { "message": "言語" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index cc511d0a4..b0c97944c 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -476,6 +476,9 @@ "items": { "message": "요소" }, + "language": { + "message": "Language" + }, "languages": { "message": "언어" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index d4f90ccd3..11b33c6fc 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -479,6 +479,9 @@ "items": { "message": "Elementer" }, + "language": { + "message": "Language" + }, "languages": { "message": "Språk" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 668b77194..3dd02a04e 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -476,6 +476,9 @@ "items": { "message": "Items" }, + "language": { + "message": "Language" + }, "languages": { "message": "Talen" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 12a946549..ffe8d1ceb 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -473,6 +473,9 @@ "items": { "message": "Elementer" }, + "language": { + "message": "Language" + }, "languages": { "message": "Språk" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 852fa05c6..ac976d844 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -488,6 +488,9 @@ "items": { "message": "Przedmioty" }, + "language": { + "message": "Language" + }, "languages": { "message": "Języki" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index d34995370..7d2c33208 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -476,6 +476,9 @@ "items": { "message": "Itens" }, + "language": { + "message": "Language" + }, "languages": { "message": "Idiomas" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 02b95c5d7..c3bd1f846 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -476,6 +476,9 @@ "items": { "message": "Artigos" }, + "language": { + "message": "Language" + }, "languages": { "message": "Linguagens" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 7533dc411..327c89d66 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -479,6 +479,9 @@ "items": { "message": "Obiecte" }, + "language": { + "message": "Language" + }, "languages": { "message": "Limbi" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 429a4d029..1812a790a 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -476,6 +476,9 @@ "items": { "message": "Items" }, + "language": { + "message": "Language" + }, "languages": { "message": "Языки" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 9e6dfc391..834aea66d 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -476,6 +476,9 @@ "items": { "message": "Items" }, + "language": { + "message": "Language" + }, "languages": { "message": "Jazyky" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index aa775ad89..90c9a5c1d 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -476,6 +476,9 @@ "items": { "message": "Öğeler" }, + "language": { + "message": "Language" + }, "languages": { "message": "Diller" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index f7df040ab..c71242e9e 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -485,6 +485,9 @@ "items": { "message": "项目" }, + "language": { + "message": "Language" + }, "languages": { "message": "语言" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 13716c8fd..979ea4cc5 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -482,6 +482,9 @@ "items": { "message": "項目" }, + "language": { + "message": "Language" + }, "languages": { "message": "語言" }, From 78ef472406beca56f962e84a75231f89bbba0f4a Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 14 Aug 2021 16:50:41 +0300 Subject: [PATCH 0360/1224] Added shortcuts to search results --- manifest.json | 2 +- satus.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 686968a18..58ac014d5 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.451", + "version": "3.452", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/satus.js b/satus.js index 5a3e366ac..d09bf1ccc 100644 --- a/satus.js +++ b/satus.js @@ -384,7 +384,7 @@ satus.search = function (query, object, callback, categories) { } if ( - ['switch', 'select', 'slider'].indexOf(item.type) !== -1 && + ['switch', 'select', 'slider', 'shortcut'].indexOf(item.type) !== -1 && ( key.indexOf(query) !== -1 || key_locale.indexOf(query) !== -1 From d0f6feb8944b602b2706c3ab0c715cf46cca5da2 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 16 Aug 2021 13:53:48 +0300 Subject: [PATCH 0361/1224] Added "Subtitles" button to observer --- manifest.json | 2 +- youtube-scripts.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 58ac014d5..4fdf56d44 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.452", + "version": "3.453", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index c32fb4a69..90cb69ad9 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -298,8 +298,8 @@ ImprovedTube.init = function () { ImprovedTube.dim(); ImprovedTube.elements.player_left_controls = node.querySelector('.ytp-left-controls'); - ImprovedTube.elements.player_thumbnail = node.querySelector('.ytp-cued-thumbnail-overlay-image'); + ImprovedTube.elements.player_subtitles_button = node.querySelector('.ytp-subtitles-button'); new MutationObserver(function(mutationList) { for (var i = 0, l = mutationList.length; i < l; i++) { From ee28ad3c62a561b3d3bf61d55483286c8c3592a3 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 16 Aug 2021 14:06:28 +0300 Subject: [PATCH 0362/1224] Fixed "Subtitles language" feature --- manifest.json | 2 +- youtube-scripts.js | 30 +++++++++++++++++------------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/manifest.json b/manifest.json index 4fdf56d44..47737ce8f 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.453", + "version": "3.454", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 90cb69ad9..ecdfe97d5 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1856,23 +1856,27 @@ ImprovedTube.subtitles = function () { ------------------------------------------------------------------------------*/ ImprovedTube.subtitlesLanguage = function () { - var option = this.storage.subtitles_language, - player = this.elements.player; + var option = this.storage.subtitles_language; - if (this.isset(option) && option !== 'default' && player && player.getOption) { - var tracklist = ImprovedTube.elements.player.getOption('captions', 'tracklist', { - includeAsr: true - }); + if this.isset(option) && option !== 'default') { + var player = this.elements.player, + button = this.elements.player_subtitles_button; + + if ((player && player.getOption && button && button.getAttribute('aria-pressed') === 'true') { + var tracklist = ImprovedTube.elements.player.getOption('captions', 'tracklist', { + includeAsr: true + }); - if (tracklist && tracklist[0]) { - tracklist = tracklist[0]; + if (tracklist && tracklist[0]) { + tracklist = tracklist[0]; - tracklist.translationLanguage = { - languageCode: option, - languageName: option - }; + tracklist.translationLanguage = { + languageCode: option, + languageName: option + }; - ImprovedTube.elements.player.setOption('captions', 'track', tracklist); + ImprovedTube.elements.player.setOption('captions', 'track', tracklist); + } } } }; From a214e9bff42c3bebbac6e68d27dcef5d43559785 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 16 Aug 2021 14:08:44 +0300 Subject: [PATCH 0363/1224] Fixed "Subtitles" feature --- manifest.json | 2 +- youtube-scripts.js | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/manifest.json b/manifest.json index 47737ce8f..d6d75c9e8 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.454", + "version": "3.455", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index ecdfe97d5..b0cd51ae3 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1843,10 +1843,12 @@ ImprovedTube.playerPlaybackSpeed = function (change) { ------------------------------------------------------------------------------*/ ImprovedTube.subtitles = function () { - var player = this.elements.player; + if (this.storage.player_subtitles === true) { + var player = this.elements.player; - if (player && player.toggleSubtitlesOn) { - player.toggleSubtitlesOn(); + if (player && player.toggleSubtitlesOn) { + player.toggleSubtitlesOn(); + } } }; From 66221a9bb2ee2ef28da0ed2bdf56d0f7b82701f4 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 16 Aug 2021 14:10:40 +0300 Subject: [PATCH 0364/1224] Fixed "Subtitles font family" feature --- manifest.json | 2 +- youtube-scripts.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index d6d75c9e8..f52719714 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.455", + "version": "3.456", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index b0cd51ae3..d3c62eb6b 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1892,9 +1892,10 @@ ImprovedTube.subtitlesFontFamily = function () { var option = this.storage.subtitles_font_family; if (this.isset(option)) { - var player = this.elements.player; + var player = this.elements.player, + button = this.elements.player_subtitles_button; - if (player && player.getSubtitlesUserSettings) { + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true') { var settings = player.getSubtitlesUserSettings(); if (settings) { From 9b212975168f438ecb29b1e39b41b989e935eac1 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 16 Aug 2021 14:11:24 +0300 Subject: [PATCH 0365/1224] Fixed "Subtitles font color" feature --- manifest.json | 2 +- youtube-scripts.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index f52719714..5a8ed4947 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.456", + "version": "3.457", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index d3c62eb6b..003c7c87a 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1916,9 +1916,10 @@ ImprovedTube.subtitlesFontColor = function () { var option = this.storage.subtitles_font_color; if (this.isset(option)) { - var player = this.elements.player; + var player = this.elements.player, + button = this.elements.player_subtitles_button; - if (player && player.getSubtitlesUserSettings) { + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true') { var settings = player.getSubtitlesUserSettings(); if (settings) { From 40248e904476d692a01e4a2cf05a0c77c3accfdb Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 16 Aug 2021 14:11:50 +0300 Subject: [PATCH 0366/1224] Fixed "Subtitles font size" feature --- manifest.json | 2 +- youtube-scripts.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 5a8ed4947..420882c5b 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.457", + "version": "3.458", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 003c7c87a..d9f7d678d 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1940,9 +1940,10 @@ ImprovedTube.subtitlesFontSize = function () { var option = this.storage.subtitles_font_size; if (this.isset(option)) { - var player = this.elements.player; + var player = this.elements.player, + button = this.elements.player_subtitles_button; - if (player && player.getSubtitlesUserSettings) { + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true) { var settings = player.getSubtitlesUserSettings(); if (settings) { From 12424a9f85d631f2cf249cfb8ef80fcf9756f8b7 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 16 Aug 2021 14:12:18 +0300 Subject: [PATCH 0367/1224] Fixed "Subtitles background color" feature --- youtube-scripts.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index d9f7d678d..70b0efa6b 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1943,7 +1943,7 @@ ImprovedTube.subtitlesFontSize = function () { var player = this.elements.player, button = this.elements.player_subtitles_button; - if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true) { + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true') { var settings = player.getSubtitlesUserSettings(); if (settings) { @@ -1964,9 +1964,10 @@ ImprovedTube.subtitlesBackgroundColor = function () { var option = this.storage.subtitles_background_color; if (this.isset(option)) { - var player = this.elements.player; + var player = this.elements.player, + button = this.elements.player_subtitles_button; - if (player && player.getSubtitlesUserSettings) { + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true) { var settings = player.getSubtitlesUserSettings(); if (settings) { From 0624a26c4102be4479986321eb653abf9bdc9320 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 16 Aug 2021 14:13:20 +0300 Subject: [PATCH 0368/1224] Fixed "Subtitles background opacity" feature --- manifest.json | 2 +- youtube-scripts.js | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/manifest.json b/manifest.json index 420882c5b..e48e0387a 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.458", + "version": "3.460", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 70b0efa6b..134b8d16f 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1967,7 +1967,7 @@ ImprovedTube.subtitlesBackgroundColor = function () { var player = this.elements.player, button = this.elements.player_subtitles_button; - if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true) { + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true') { var settings = player.getSubtitlesUserSettings(); if (settings) { @@ -1988,9 +1988,10 @@ ImprovedTube.subtitlesBackgroundOpacity = function () { var option = this.storage.subtitles_background_opacity; if (this.isset(option)) { - var player = this.elements.player; + var player = this.elements.player, + button = this.elements.player_subtitles_button; - if (player && player.getSubtitlesUserSettings) { + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true') { var settings = player.getSubtitlesUserSettings(); if (settings) { From 670979c035e1dd7502c741b04dbe2242c9fbda0f Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 16 Aug 2021 14:13:55 +0300 Subject: [PATCH 0369/1224] Fixed "Subtitles window color" feature --- manifest.json | 2 +- youtube-scripts.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index e48e0387a..554feeb1d 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.460", + "version": "3.461", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 134b8d16f..232e7f2ea 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2012,9 +2012,10 @@ ImprovedTube.subtitlesWindowColor = function () { var option = this.storage.subtitles_window_color; if (this.isset(option)) { - var player = this.elements.player; + var player = this.elements.player, + button = this.elements.player_subtitles_button; - if (player && player.getSubtitlesUserSettings) { + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true') { var settings = player.getSubtitlesUserSettings(); if (settings) { From 7a6b5334e541edf480df3979743c5eaf06a338a6 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 16 Aug 2021 14:14:36 +0300 Subject: [PATCH 0370/1224] Fixed "Subtitles window opacity" feature --- manifest.json | 2 +- youtube-scripts.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 554feeb1d..e9bde44ba 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.461", + "version": "3.462", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 232e7f2ea..cc542b20e 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2036,9 +2036,10 @@ ImprovedTube.subtitlesWindowOpacity = function () { var option = this.storage.subtitles_window_opacity; if (this.isset(option)) { - var player = this.elements.player; + var player = this.elements.player, + button = this.elements.player_subtitles_button; - if (player && player.getSubtitlesUserSettings) { + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true') { var settings = player.getSubtitlesUserSettings(); if (settings) { From 3afd44e05cb43c9e74c376a5e79ca0eaf4f1fb94 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 16 Aug 2021 14:15:11 +0300 Subject: [PATCH 0371/1224] Fixed "Subtitles character edge style" feature --- manifest.json | 2 +- youtube-scripts.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index e9bde44ba..21d4e00f2 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.462", + "version": "3.463", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index cc542b20e..708d930b9 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2060,9 +2060,10 @@ ImprovedTube.subtitlesCharacterEdgeStyle = function () { var option = this.storage.subtitles_character_edge_style; if (this.isset(option)) { - var player = this.elements.player; + var player = this.elements.player, + button = this.elements.player_subtitles_button; - if (player && player.getSubtitlesUserSettings) { + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true') { var settings = player.getSubtitlesUserSettings(); if (settings) { From 533c4647b1154f66443268d3cff932ead9aa7977 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 16 Aug 2021 14:15:46 +0300 Subject: [PATCH 0372/1224] Fixed "Subtitles font opacity" feature --- manifest.json | 2 +- youtube-scripts.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index 21d4e00f2..8990b0ba9 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.463", + "version": "3.464", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 708d930b9..b3a231da2 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2084,9 +2084,10 @@ ImprovedTube.subtitlesFontOpacity = function () { var option = this.storage.subtitles_font_opacity; if (this.isset(option)) { - var player = this.elements.player; + var player = this.elements.player, + button = this.elements.player_subtitles_button; - if (player && player.getSubtitlesUserSettings) { + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true') { var settings = player.getSubtitlesUserSettings(); if (settings) { From 94f6afaff9c3b832e41c011436c4cdaf94e2a401 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 17 Aug 2021 14:48:55 +0300 Subject: [PATCH 0373/1224] Settings search: Fixed category names --- manifest.json | 2 +- popup.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 8990b0ba9..07bd3040a 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.464", + "version": "3.465", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/popup.js b/popup.js index 4bc7a1466..0d492f80b 100644 --- a/popup.js +++ b/popup.js @@ -94,8 +94,10 @@ var skeleton = { while (parent.children[0]) { parent.children[0].remove(); } + + delete skeleton.type; - satus.render(results, parent); + satus.render(skeleton, parent); } else { satus.render(skeleton); From 46ac51d1815174e9744fcc3b0416efde1bc407c0 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 17 Aug 2021 15:11:29 +0300 Subject: [PATCH 0374/1224] Fixed "Subtitles language" feature --- manifest.json | 2 +- youtube-scripts.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/manifest.json b/manifest.json index 07bd3040a..25dab0deb 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.465", + "version": "3.466", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index b3a231da2..0bab23980 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1860,12 +1860,12 @@ ImprovedTube.subtitles = function () { ImprovedTube.subtitlesLanguage = function () { var option = this.storage.subtitles_language; - if this.isset(option) && option !== 'default') { + if (this.isset(option) && option !== 'default') { var player = this.elements.player, button = this.elements.player_subtitles_button; if ((player && player.getOption && button && button.getAttribute('aria-pressed') === 'true') { - var tracklist = ImprovedTube.elements.player.getOption('captions', 'tracklist', { + var tracklist = this.elements.player.getOption('captions', 'tracklist', { includeAsr: true }); @@ -1877,7 +1877,7 @@ ImprovedTube.subtitlesLanguage = function () { languageName: option }; - ImprovedTube.elements.player.setOption('captions', 'track', tracklist); + this.elements.player.setOption('captions', 'track', tracklist); } } } From b82c6d7fe5d4b470ab232d77abd4ea723b4de8e3 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 17 Aug 2021 15:12:33 +0300 Subject: [PATCH 0375/1224] Fixed "Subtitles language" feature --- manifest.json | 2 +- youtube-scripts.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 25dab0deb..c613b2981 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.466", + "version": "3.467", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 0bab23980..04a446267 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1864,7 +1864,7 @@ ImprovedTube.subtitlesLanguage = function () { var player = this.elements.player, button = this.elements.player_subtitles_button; - if ((player && player.getOption && button && button.getAttribute('aria-pressed') === 'true') { + if (player && player.getOption && button && button.getAttribute('aria-pressed') === 'true') { var tracklist = this.elements.player.getOption('captions', 'tracklist', { includeAsr: true }); From 421f24276a073d82a615b04897434af570b13bb0 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 17 Aug 2021 15:40:19 +0300 Subject: [PATCH 0376/1224] Optimized observer --- youtube-scripts.js | 93 +++++++++++++++++++++++----------------------- 1 file changed, 47 insertions(+), 46 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 04a446267..0ce80c19e 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -203,9 +203,10 @@ ImprovedTube.init = function () { if (mutation.type === 'childList') { for (var j = 0, k = mutation.addedNodes.length; j < k; j++) { - var node = mutation.addedNodes[j]; + var node = mutation.addedNodes[j], + name = node.nodeName; - if (node.nodeName === 'YTD-WATCH-FLEXY') { + if (name === 'YTD-WATCH-FLEXY') { ImprovedTube.elements.ytd_watch = node; ImprovedTube.elements.ytd_player = node.querySelector('ytd-player'); @@ -261,7 +262,39 @@ ImprovedTube.init = function () { childList: false, subtree: false }); - } else if (node.nodeName === 'YTD-TOGGLE-BUTTON-RENDERER') { + } else if (name === 'YTD-MASTHEAD') { + var logo = node.querySelector('a#logo'); + + ImprovedTube.elements.masthead = { + start: node.querySelector('#start'), + end: node.querySelector('#end') + }; + + ImprovedTube.improvedtubeYoutubeIcon(); + + if (logo) { + new MutationObserver(function(mutationList) { + for (var i = 0, l = mutationList.length; i < l; i++) { + var mutation = mutationList[i]; + + if (mutation.type === 'attributes') { + if (mutation.attributeName === 'href') { + if (logo.id === 'logo') { + this.disconnect(); + + ImprovedTube.youtubeHomePage(logo); + } + } + } + } + }).observe(logo, { + attributes: true, + attributeFilter: ['href'], + childList: false, + subtree: false + }); + } + } else if (name === 'YTD-TOGGLE-BUTTON-RENDERER') { if ( node.parentComponent && node.parentComponent.nodeName === 'YTD-MENU-RENDERER' && @@ -288,7 +321,7 @@ ImprovedTube.init = function () { ImprovedTube.playlistReverse(); } } - } if (node.nodeName === 'YTD-PLAYER') { + } else if (name === 'YTD-PLAYER') { ImprovedTube.elements.ytd_player = node; ImprovedTube.playerSize(); @@ -319,7 +352,7 @@ ImprovedTube.init = function () { }); document.dispatchEvent(new CustomEvent('improvedtube-player-loaded')); - } else if (node.nodeName === 'VIDEO') { + } else if (name === 'VIDEO') { ImprovedTube.elements.video = node; } else if (node.id === 'chat') { ImprovedTube.elements.livechat.button = node.querySelector('ytd-toggle-button-renderer'); @@ -329,51 +362,19 @@ ImprovedTube.init = function () { ImprovedTube.elements.related.container = node; ImprovedTube.relatedVideos(); - } else if (node.nodeName === 'YTD-COMMENTS-HEADER-RENDERER') { + } else if (name === 'YTD-COMMENTS-HEADER-RENDERER') { ImprovedTube.elements.comments.container = node; ImprovedTube.comments(); - } else if (node.nodeName === 'DIV' && node.className.indexOf('ytp-ad-player-overlay') !== -1) { + } else if (name === 'DIV' && node.className.indexOf('ytp-ad-player-overlay') !== -1) { ImprovedTube.playerAds(node); - } else if (node.nodeName === 'YTD-MASTHEAD') { - var logo = node.querySelector('a#logo'); - - ImprovedTube.elements.masthead = { - start: node.querySelector('#start'), - end: node.querySelector('#end') - }; - - ImprovedTube.improvedtubeYoutubeIcon(); - - if (logo) { - new MutationObserver(function(mutationList) { - for (var i = 0, l = mutationList.length; i < l; i++) { - var mutation = mutationList[i]; - - if (mutation.type === 'attributes') { - if (mutation.attributeName === 'href') { - if (logo.id === 'logo') { - this.disconnect(); - - ImprovedTube.youtubeHomePage(logo); - } - } - } - } - }).observe(logo, { - attributes: true, - attributeFilter: ['href'], - childList: false, - subtree: false - }); - } - } else if (node.nodeName === 'YTD-VIDEO-PRIMARY-INFO-RENDERER') { + } else if (name === 'YTD-VIDEO-PRIMARY-INFO-RENDERER') { ImprovedTube.elements.video_title = node.querySelector('.title.ytd-video-primary-info-renderer'); ImprovedTube.improvedtubeYoutubeIcon(); - } else if (node.nodeName === 'YTD-ITEM-SECTION-RENDERER') { + } else if (name === 'YTD-ITEM-SECTION-RENDERER') { ImprovedTube.collapseOfSubscriptionSections(node); - } else if (node.nodeName === 'A' && node.href) { + } else if (name === 'A' && node.href) { if (node.id === 'logo') { ImprovedTube.youtubeHomePage(node); } @@ -388,7 +389,7 @@ ImprovedTube.init = function () { if (node.href.match(ImprovedTube.regex.channel)) { ImprovedTube.blacklist('channel', node); } - } else if (node.nodeName === 'IMG') { + } else if (name === 'IMG') { if (node.src) { ImprovedTube.hdThumbnails(node); } else { @@ -413,18 +414,18 @@ ImprovedTube.init = function () { subtree: false }); } - } else if (node.nodeName === 'YTD-VIDEO-SECONDARY-INFO-RENDERER') { + } else if (name === 'YTD-VIDEO-SECONDARY-INFO-RENDERER') { ImprovedTube.elements.yt_channel_name = node.querySelector('ytd-channel-name'); ImprovedTube.elements.yt_channel_link = node.querySelector('ytd-channel-name a'); ImprovedTube.howLongAgoTheVideoWasUploaded(); ImprovedTube.channelVideosCount(); - } else if (node.nodeName === 'YTD-SUBSCRIBE-BUTTON-RENDERER') { + } else if (name === 'YTD-SUBSCRIBE-BUTTON-RENDERER') { if (node.className.indexOf('ytd-c4-tabbed-header-renderer') !== -1) { ImprovedTube.blacklist('channel', node); } ImprovedTube.elements.subscribe_button = node; - } else if (node.nodeName === 'YTD-GUIDE-SECTION-RENDERER') { + } else if (name === 'YTD-GUIDE-SECTION-RENDERER') { if (ImprovedTube.elements.hasOwnProperty('sidebar_section') === false) { ImprovedTube.elements.sidebar_section = node; From 328423b5d1bac993fb47727f8abeb373fbf5613c Mon Sep 17 00:00:00 2001 From: "Jyotirmoy Bandyopadhyaya [Bravo68]" Date: Wed, 18 Aug 2021 08:42:47 +0530 Subject: [PATCH 0377/1224] Updated all Remaining Translations --- _locales/bn/messages.json | 64 +++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index da2f0560e..b12cd36fa 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -84,10 +84,10 @@ "message": "স্বয়ংক্রিয় চালু" }, "backgroundColor": { - "message": "Background color" + "message": "পটভূমির রং" }, "backgroundOpacity": { - "message": "Background opacity" + "message": "পটভূমি অস্বচ্ছতা" }, "backupAndReset": { "message": "ব্যাকআপ এবং পুনরায় সেট করুন" @@ -147,7 +147,7 @@ "message": "চ্যানেলগুলি" }, "characterEdgeStyle": { - "message": "Character edge style" + "message": "ক্যারেক্টার এজ স্টাইল" }, "clipboard": { "message": "ক্লিপবোর্ড" @@ -219,19 +219,19 @@ "message": "ডিফল্ট চ্যানেল ট্যাব" }, "defaultContentCountry": { - "message": "Default content country" + "message": "ডিফল্ট বিষয়বস্তুর দেশ" }, "deleteYoutubeCookies": { "message": "ইউটিউব এর কুকি ডিলিট করুন" }, "depressed": { - "message": "Depressed" + "message": "বিষণ্ণ" }, "description": { "message": "বর্ণনা" }, "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + "message": "ইউটিউব পরিপাটি+স্মার্ট করুন! ইউটিউব ভিডিও কালার অ্যাড স্কিপ ভলিউম স্পিড চ্যানেল টুল স্টাইল এইচডি বিজ্ঞাপন অ্যাডব্লক অ্যাডব্লকার ট্যাগ কীওয়ার্ড প্লেলিস্ট" }, "desert": { "message": "মরুভূমি" @@ -264,7 +264,7 @@ "message": "টেনে আনে" }, "dropShadow": { - "message": "Drop shadow" + "message": "ছায়া ফেলে দিন" }, "email": { "message": "ইমেল" @@ -303,16 +303,16 @@ "message": "হরফ" }, "fontColor": { - "message": "Font color" + "message": "অক্ষরের রং" }, "fontFamily": { - "message": "Font family" + "message": "হরফ সংগ্রহ" }, "fontOpacity": { - "message": "Font opacity" + "message": "হরফের অস্বচ্ছতা" }, "fontSize": { - "message": "Font size" + "message": "অক্ষরের আকার" }, "footer": { "message": "পাদচরণ" @@ -321,7 +321,7 @@ "message": "Force SDR" }, "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" + "message": "জোর করে শুরু থেকে ভিডিও চালান" }, "forcedPlaybackSpeed": { "message": "জোর করে প্লেব্যাক গতি" @@ -378,10 +378,10 @@ "message": "কার্ড লুকান" }, "hideCountryCode": { - "message": "Hide country code" + "message": "কান্ট্রি কোড লুকান" }, "hideDate": { - "message": "Hide date" + "message": "তারিখ লুকান" }, "hideDetails": { "message": "আড়াল বিস্তারিত" @@ -399,7 +399,7 @@ "message": "গ্রেডিয়েন্ট নীচে লুকান" }, "hideMoreButton": { - "message": "Hide \"More\" button" + "message": "আরও লুকান বোতাম }, "hidePlaylist": { "message": "প্লেলিস্ট লুকান" @@ -408,25 +408,25 @@ "message": "ডান বোতামগুলি লুকান" }, "hideSaveButton": { - "message": "Hide \"Save\" button" + "message": "সংরক্ষণ ভোতার লোকাল" }, "hideScrollForDetails": { "message": "«বিশদ জন্য স্ক্রোলs» লুকান" }, "hideShareButton": { - "message": "Hide \"Share\" button" + "message": "শেয়ার বাটন লোকাল" }, "hideSkipOverlay": { - "message": "Hide Skip Overlay" + "message": "স্কিপ ওভারলে লুকান" }, "showRemainingDuration":{ - "message": "Show video remaining duration" + "message": "ভিডিও অবশিষ্ট সময় দেখান" }, "hideViewsCount": { "message": "দর্শন গণনা লুকান" }, "hideVoiceSearchButton": { - "message": "Hide voice search button" + "message": "বক্তৃতা সার্চ বাটন লুকান" }, "history": { "message": "ইতিহাস" @@ -480,10 +480,10 @@ "message": "আইটেম" }, "language": { - "message": "Language" + "message": "ভাষা" }, "languages": { - "message": "Languages" + "message": "ভাষা" }, "legacyYoutube": { "message": "উত্তরাধিকার ইউটিউব" @@ -507,7 +507,7 @@ "message": "চুন" }, "limitPageWidth": { - "message": "Limit page width" + "message": "পৃষ্ঠার প্রস্থ সীমিত করুন" }, "list": { "message": "তালিকা" @@ -519,7 +519,7 @@ "message": "লাইভ চ্যাট টাইপ" }, "location": { - "message": "Location" + "message": "অবস্থান" }, "loudnessNormalization": { "message": "আওয়াজের স্বাভাবিককরণ" @@ -585,7 +585,7 @@ "message": "অন্যান্য" }, "outline": { - "message": "Outline" + "message": "রূপরেখা" }, "permissions": { "message": "অনুমতি" @@ -648,7 +648,7 @@ "message": "গুণ" }, "raised": { - "message": "Raised" + "message": "উত্থাপিত" }, "ram": { "message": "র্যাম" @@ -714,10 +714,10 @@ "message": "10 সেকেন্ড এগিয়ে যান" }, "seekNextChapter": { - "message": "seekNextChapter" + "message": "পরবর্তী অধ্যায় সন্ধান করুন" }, "seekPreviousChapter": { - "message": "seekPreviousChapter" + "message": "পূর্ববর্তী অধ্যায় সন্ধান করুন" }, "settings": { "message": "সেটিংস" @@ -825,7 +825,7 @@ "message": "আজ এ" }, "toggleCards": { - "message": "Toggle cards" + "message": "কার্ড প্রতিস্থাপন করুন" }, "topChat": { "message": "শীর্ষ চ্যাট" @@ -885,10 +885,10 @@ "message": "সাদা" }, "windowColor": { - "message": "Window color" + "message": "উইন্ডো রঙ" }, "windowOpacity": { - "message": "Window opacity" + "message": "উইন্ডোর অস্বচ্ছতা" }, "yellow": { "message": "হলুদ" @@ -908,4 +908,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "ইউটিউব h.264 কোডেকের জন্য ভিডিও গুণমানকে 1080p এর মধ্যে সীমাবদ্ধ করে" } -} \ No newline at end of file +} From d072ee4076cf343669fc04c64318a4a687720a8d Mon Sep 17 00:00:00 2001 From: "Jyotirmoy Bandyopadhyaya [Bravo68]" Date: Wed, 18 Aug 2021 09:05:48 +0530 Subject: [PATCH 0378/1224] Updated all remaining Translations --- _locales/hin/messages.json | 60 +++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index aed733896..d636eae0d 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -84,10 +84,10 @@ "message": "स्वत: प्ले" }, "backgroundColor": { - "message": "Background color" + "message": "पीछे का रंग" }, "backgroundOpacity": { - "message": "Background opacity" + "message": "पृष्ठभूमि अस्पष्टता" }, "backupAndReset": { "message": "बैकअप पुनर्स्थापित करना" @@ -147,13 +147,13 @@ "message": "चैनल" }, "characterEdgeStyle": { - "message": "Character edge style" + "message": "कैरेक्टर एज स्टाइल" }, "clipboard": { "message": "क्लिपबोर्ड" }, "codecH264": { - "message": "कोडक ज 64२६४ 64" + "message": "कोडक H264 }, "collapseOfSubscriptionSections": { "message": "सदस्यता वर्गों का पतन" @@ -213,25 +213,25 @@ "message": "गहरा बैंगनी" }, "default": { - "message": "Default" + "message": "डिफ़ॉल्ट" }, "defaultChannelTab": { "message": "डिफ़ॉल्ट चैनल टैब" }, "defaultContentCountry": { - "message": "Default content country" + "message": "डिफॉल्ट विषय देश" }, "deleteYoutubeCookies": { "message": "यूट्यूब कुकीज़ हटाएं" }, "depressed": { - "message": "Depressed" + "message": "उदास" }, "description": { "message": "विवरण" }, "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + "message": "YouTube को व्यवस्थित एवं स्मार्ट बनाएं! यूट्यूब वीडियो कलर एड स्किप वॉल्यूम स्पीड चैनल टूल स्टाइल एचडी विज्ञापन एडब्लॉकर टैग कीवर्ड प्लेलिस्ट" }, "desert": { "message": "रेगिस्तान" @@ -264,7 +264,7 @@ "message": "खींचने योग्य" }, "dropShadow": { - "message": "Drop shadow" + "message": "परछाई डालना" }, "email": { "message": "ईमेल" @@ -300,19 +300,19 @@ "message": "चमक" }, "font": { - "message": "फ़ॉन्ट" + "message": "लिपि" }, "fontColor": { - "message": "Font color" + "message": "लिपि का रंग" }, "fontFamily": { - "message": "Font family" + "message": "लिपीओ का काि संग्रह" }, "fontOpacity": { - "message": "Font opacity" + "message": "लिपि की अस्पष्टता" }, "fontSize": { - "message": "Font size" + "message": "लिपीओ का आकार" }, "footer": { "message": "पाद लेख" @@ -321,7 +321,7 @@ "message": "Force SDR" }, "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" + "message": "जबरदस्ती वीडियो शुरू से प्ले करें" }, "forcedPlaybackSpeed": { "message": "जबरन पार्श्व गति" @@ -399,7 +399,7 @@ "message": "ग्रेडिएंट बॉटम छुपाएं" }, "hideMoreButton": { - "message": "Hide \"More\" button" + "message": "अधिक बटन छुपाएं" }, "hidePlaylist": { "message": "प्लेलिस्ट छिपाएं" @@ -408,25 +408,25 @@ "message": "दाएं बटन छुपाएं" }, "hideSaveButton": { - "message": "Hide \"Save\" button" + "message": "सहेजें बटन छुपाएं" }, "hideScrollForDetails": { "message": "छिपाएँ «विवरण के लिए स्क्रॉल»" }, "hideShareButton": { - "message": "Hide \"Share\" button" + "message": "शेयर बटन छुपाएं" }, "hideSkipOverlay": { - "message": "Hide Skip Overlay" + "message": "स्किप ओवरले छुपाएं" }, "showRemainingDuration":{ - "message": "Show video remaining duration" + "message": "वीडियो की बची हुई अवधि दिखाएं" }, "hideViewsCount": { "message": "व्यू काउंट छिपाएं" }, "hideVoiceSearchButton": { - "message": "Hide voice search button" + "message": "ध्वनि खोज बटन छुपाएं" }, "history": { "message": "इतिहास" @@ -507,7 +507,7 @@ "message": "पीला हरा रंग" }, "limitPageWidth": { - "message": "Limit page width" + "message": "पृष्ठ की चौड़ाई सीमित करें" }, "list": { "message": "सूची" @@ -519,7 +519,7 @@ "message": "लाइव चैट प्रकार" }, "location": { - "message": "Location" + "message": "स्थान" }, "loudnessNormalization": { "message": "जोर से सामान्य होना" @@ -714,10 +714,10 @@ "message": "पिछड़े 10 सेकंड की तलाश करें" }, "seekNextChapter": { - "message": "seekNextChapter" + "message": "अगले अध्याय पर चलें" }, "seekPreviousChapter": { - "message": "seekPreviousChapter" + "message": "पिछले अध्याय पर चलें" }, "settings": { "message": "समायोजन" @@ -735,10 +735,10 @@ "message": "चैनल वीडियो काउंट दिखाएं" }, "showLess": { - "message": "Show less" + "message": "कम दिखाएं" }, "showMore": { - "message": "Show more" + "message": "और दिखाएं" }, "shuffle": { "message": "मिश्रण" @@ -885,10 +885,10 @@ "message": "सफेद" }, "windowColor": { - "message": "Window color" + "message": "विंडो का रंग" }, "windowOpacity": { - "message": "Window opacity" + "message": "विंडो की अस्पष्टता" }, "yellow": { "message": "पीला" @@ -908,4 +908,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "यूट्यूब h.264 कोडेक के लिए वीडियो की गुणवत्ता 1080 पी तक सीमित है" } -} \ No newline at end of file +} From e0989cc85fea326f2e6c6103c355916eb63a94de Mon Sep 17 00:00:00 2001 From: "Jyotirmoy Bandyopadhyaya [Bravo68]" Date: Wed, 18 Aug 2021 09:07:59 +0530 Subject: [PATCH 0379/1224] Update messages.json --- _locales/hin/messages.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index d636eae0d..5cf081e22 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -153,7 +153,7 @@ "message": "क्लिपबोर्ड" }, "codecH264": { - "message": "कोडक H264 + "message": "कोडक H264" }, "collapseOfSubscriptionSections": { "message": "सदस्यता वर्गों का पतन" @@ -378,10 +378,10 @@ "message": "पत्ते छिपाओ" }, "hideCountryCode": { - "message": "Hide country code" + "message": "देश कोड छुपाएं" }, "hideDate": { - "message": "Hide date" + "message": "तारीख छुपाएं" }, "hideDetails": { "message": "जानकारी छिपाएँ" From 53fedba076f5cea50bf92a59631fc06e7ee395f9 Mon Sep 17 00:00:00 2001 From: dodieboy Date: Wed, 18 Aug 2021 15:42:54 +0800 Subject: [PATCH 0380/1224] Added "Custom scroll bar" feature --- _locales/ar/messages.json | 6 ++++++ _locales/bn/messages.json | 6 ++++++ _locales/de/messages.json | 6 ++++++ _locales/el/messages.json | 6 ++++++ _locales/en/messages.json | 6 ++++++ _locales/es/messages.json | 6 ++++++ _locales/fr/messages.json | 6 ++++++ _locales/hin/messages.json | 6 ++++++ _locales/hr/messages.json | 6 ++++++ _locales/id/messages.json | 6 ++++++ _locales/it/messages.json | 6 ++++++ _locales/ja/messages.json | 6 ++++++ _locales/ko/messages.json | 6 ++++++ _locales/nb_NO/messages.json | 6 ++++++ _locales/nl/messages.json | 6 ++++++ _locales/no/messages.json | 6 ++++++ _locales/pl/messages.json | 6 ++++++ _locales/pt_BR/messages.json | 6 ++++++ _locales/pt_PT/messages.json | 6 ++++++ _locales/ro/messages.json | 6 ++++++ _locales/ru/messages.json | 6 ++++++ _locales/sk/messages.json | 6 ++++++ _locales/tr/messages.json | 6 ++++++ _locales/zh_CN/messages.json | 6 ++++++ _locales/zh_TW/messages.json | 6 ++++++ content-scripts.js | 1 + content-styles.css | 21 ++++++++++++++++++++- popup.js | 18 +++++++++++++++++- youtube-scripts.js | 4 ++-- 29 files changed, 190 insertions(+), 4 deletions(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 2eb7ccd6f..66decd811 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -587,6 +587,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "الأذونات" }, @@ -701,6 +704,9 @@ "screenshot": { "message": "لقطة شاشة" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "بحث" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index da2f0560e..ff2401edb 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -587,6 +587,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "অনুমতি" }, @@ -701,6 +704,9 @@ "screenshot": { "message": "স্ক্রিনশট" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "অনুসন্ধান করুন" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index ba7b2db18..d235f6746 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -587,6 +587,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "Berechtigungen" }, @@ -701,6 +704,9 @@ "screenshot": { "message": "Screenshot" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "Suche" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 715126640..da9e88740 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -587,6 +587,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "Άδεια" }, @@ -701,6 +704,9 @@ "screenshot": { "message": "Στιγμιότυπο" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "Αναζήτηση" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index df6923b81..87ee95019 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -602,6 +602,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "Permissions" }, @@ -716,6 +719,9 @@ "screenshot": { "message": "Screenshot" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "Search" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index e08ebe4ef..bb33be623 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -587,6 +587,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "Permisos" }, @@ -701,6 +704,9 @@ "screenshot": { "message": "Captura de pantalla" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "Búsqueda" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 7ef4539e4..a87fcf6bd 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -590,6 +590,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "Permissions" }, @@ -704,6 +707,9 @@ "screenshot": { "message": "Capture d'écran" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "Rechercher" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index aed733896..c1d7745db 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -587,6 +587,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "अनुमतियां" }, @@ -701,6 +704,9 @@ "screenshot": { "message": "स्क्रीनशॉट" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "खोज" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index ba8c0357d..b0e841b65 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -599,6 +599,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "Dopuštenja" }, @@ -713,6 +716,9 @@ "screenshot": { "message": "Snimka zaslona" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "Pretraži" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index d54b66725..2989f0f78 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -587,6 +587,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "Perizinan" }, @@ -698,6 +701,9 @@ "screenshot": { "message": "Tangkapan layar" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "Cari" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 7f1a882f5..069e8d7d4 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -587,6 +587,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "Autorizzazioni" }, @@ -701,6 +704,9 @@ "screenshot": { "message": "Screenshot" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "Ricerca" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 8ccd0d799..db8cc086f 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -587,6 +587,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "権限" }, @@ -701,6 +704,9 @@ "screenshot": { "message": "スクリーンショット" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "検索" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 073824994..85b45a134 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -587,6 +587,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "권한" }, @@ -698,6 +701,9 @@ "screenshot": { "message": "스크린샷" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "검색" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 527da639a..570e1e02b 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -590,6 +590,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "rettigheter" }, @@ -704,6 +707,9 @@ "screenshot": { "message": "Skjeravbildning" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "Søk" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 02960d3f1..6c21a5a7c 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -587,6 +587,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "Machtigingen" }, @@ -701,6 +704,9 @@ "screenshot": { "message": "Schermafbeelding" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "Zoeken" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index a7270537a..4f67e2adb 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -584,6 +584,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "rettigheter" }, @@ -698,6 +701,9 @@ "screenshot": { "message": "Skjermbilde" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "Søk" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 1ed26c172..8e493f7d9 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -602,6 +602,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "Uprawnienia" }, @@ -716,6 +719,9 @@ "screenshot": { "message": "Zrzut ekranu" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "Wyszukaj" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index a2fe9921d..538490bee 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -587,6 +587,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "Permissões" }, @@ -701,6 +704,9 @@ "screenshot": { "message": "Captura de tela" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "Pesquisar" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 53f9e1eb7..ff389f950 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -587,6 +587,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "Permissões" }, @@ -701,6 +704,9 @@ "screenshot": { "message": "Foto do ecrân" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "Pesquisa" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 995e0941b..915eadfdf 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -593,6 +593,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "Permisiuni" }, @@ -707,6 +710,9 @@ "screenshot": { "message": "Captură de ecran" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "Caută" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index da2db3283..db888717c 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -587,6 +587,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "Разрешения" }, @@ -701,6 +704,9 @@ "screenshot": { "message": "Скриншот" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "Поиск" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index ca796690a..e4d449245 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -587,6 +587,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "Povolenia" }, @@ -701,6 +704,9 @@ "screenshot": { "message": "Screenshot" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "Vyhľadať" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 5760f08cb..f8fb3cc9e 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -587,6 +587,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "İzinler" }, @@ -701,6 +704,9 @@ "screenshot": { "message": "Ekran görüntüsü" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "Ara" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 7f7ee2ea5..c43db8009 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -599,6 +599,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "许可" }, @@ -713,6 +716,9 @@ "screenshot": { "message": "截图" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "搜索" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index c991dc20c..6a290d085 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -596,6 +596,9 @@ "outline": { "message": "Outline" }, + "overlay": { + "message": "Overlay" + }, "permissions": { "message": "權限" }, @@ -710,6 +713,9 @@ "screenshot": { "message": "截圖" }, + "scrollBar": { + "message": "Scroll Bar" + }, "search": { "message": "搜尋" }, diff --git a/content-scripts.js b/content-scripts.js index 5a189b6d3..ff95d836d 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -77,6 +77,7 @@ function attributes(items) { 'black-theme': true, 'player-crop-chapter-titles': true, 'player-ads': true, + 'scroll-bar': true, 'improvedtube-youtube-icon': true }; diff --git a/content-styles.css b/content-styles.css index e0b82b242..42a3c0eed 100644 --- a/content-styles.css +++ b/content-styles.css @@ -343,6 +343,24 @@ html[it-hide-thumbnail-overlay=true] #hover-overlays { } +/*------------------------------------------------------------------------------ +1.10 Scroll Bar +------------------------------------------------------------------------------*/ + +html[it-scroll-bar=overlay] body, +html[it-scroll-bar=hidden] body{ + overflow-y: overlay; +} + +html[it-scroll-bar=appear] body{ + overflow-y: hidden; +} + +html[it-scroll-bar=hidden] ::-webkit-scrollbar{ + display: none; +} + + /*------------------------------------------------------------------------------- 2.0 APPEARANCE -------------------------------------------------------------------------------*/ @@ -939,8 +957,9 @@ html[it-hide-gradient-bottom=true] .ytp-gradient-bottom { display: none; } + /*------------------------------------------------------------------------------ -2.2.11 Skip overlay +2.2.11 Skip Overlay ------------------------------------------------------------------------------*/ html[it-player-hide-skip-overlay=true] .ytp-doubletap-ui, .ytp-doubletap-ui-legacy diff --git a/popup.js b/popup.js index 0d492f80b..947aca7bd 100644 --- a/popup.js +++ b/popup.js @@ -2552,6 +2552,21 @@ skeleton.main.section.general = { type: 'switch', label: 'limitPageWidth', value: true + }, + scroll_bar: { + type: 'select', + label: 'scrollBar', + tags: 'remove,hide', + options: [{ + label: 'normal', + value: 'normal' + }, { + label: 'hidden', + value: 'hidden' + }, { + label: 'overlay', + value: 'overlay' + }], } }, @@ -2710,7 +2725,8 @@ skeleton.main.section.appearance = { player_hide_skip_overlay: { type: 'switch', label: 'hideSkipOverlay', - value: false + value: false, + tags: 'remove,hide' }, player_remaining_duration: { type: 'switch', diff --git a/youtube-scripts.js b/youtube-scripts.js index 0ce80c19e..d25f49e5a 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -19,7 +19,7 @@ 4.2.1.2 Forced theater mode 4.2.1.3 HD thumbnail 4.2.1.4 Always show progress bar - 4.2.1.5 Video Remaining duration + 4.2.1.5 Video remaining duration 4.2.2 Sidebar 4.2.2.1 Livechat 4.2.2.2 Related videos @@ -1263,7 +1263,7 @@ ImprovedTube.alwaysShowProgressBar = function () { /*------------------------------------------------------------------------------ -4.2.1.4 ALWAYS SHOW PROGRESS BAR +4.2.1.5 VIDEO REMAINING DURATION ------------------------------------------------------------------------------*/ ImprovedTube.formatSecond = function(rTime){ From 5cdf6154b3b7f502281b5ded3734ee9727918140 Mon Sep 17 00:00:00 2001 From: dodieboy Date: Wed, 18 Aug 2021 21:13:12 +0800 Subject: [PATCH 0381/1224] Added "block music ads" feature fix #156 --- _locales/en/messages.json | 3 +++ popup.js | 3 +++ youtube-scripts.js | 27 ++++++++++++++++----------- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index df6923b81..396cb18e9 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "Block all" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "Blue" }, diff --git a/popup.js b/popup.js index 0d492f80b..f2963bce7 100644 --- a/popup.js +++ b/popup.js @@ -3391,6 +3391,9 @@ skeleton.main.section.player = { }, { label: 'onSubscribedChannels', value: 'subscribed_channels' + }, { + label: 'blockMusic', + value: 'block_music' }, { label: 'blockAll', value: 'block_all' diff --git a/youtube-scripts.js b/youtube-scripts.js index 0ce80c19e..d29b104b3 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -431,6 +431,10 @@ ImprovedTube.init = function () { ImprovedTube.improvedtubeYoutubeIcon(); } + } else if (name === 'META'){ + if (node.getAttribute('itemprop') === 'genre'){ + ImprovedTube.genre = node.content; + } } } } @@ -2126,19 +2130,20 @@ ImprovedTube.upNextAutoplay = function () { ------------------------------------------------------------------------------*/ ImprovedTube.playerAds = function (parent) { - if (this.storage.player_ads === 'block_all') { - var button = parent.querySelector('.ytp-ad-skip-button.ytp-button'); - - if (button) { - button.click(); - } - } else if (this.storage.player_ads === 'subscribed_channels') { - var button = parent.querySelector('.ytp-ad-skip-button.ytp-button'); - - if (button && !parent.querySelector('#meta paper-button[subscribed]')) { + var button = parent.querySelector('.ytp-ad-skip-button.ytp-button'); + if (button){ + if (this.storage.player_ads === 'block_all') { button.click(); + } else if (this.storage.player_ads === 'subscribed_channels') { + if (!parent.querySelector('#meta paper-button[subscribed]')) { + button.click(); + } + } else if (this.storage.player_ads === 'block_music') { + if (ImprovedTube.elements.genre === 'music') { + button.click(); + } } - } + } }; From b887524e5e800f73062249090db4ca159b820522 Mon Sep 17 00:00:00 2001 From: dodieboy Date: Wed, 18 Aug 2021 21:15:35 +0800 Subject: [PATCH 0382/1224] Updated locales --- _locales/ar/messages.json | 3 +++ _locales/bn/messages.json | 3 +++ _locales/de/messages.json | 3 +++ _locales/el/messages.json | 3 +++ _locales/es/messages.json | 3 +++ _locales/fr/messages.json | 3 +++ _locales/hin/messages.json | 3 +++ _locales/hr/messages.json | 3 +++ _locales/id/messages.json | 3 +++ _locales/it/messages.json | 3 +++ _locales/ja/messages.json | 3 +++ _locales/ko/messages.json | 3 +++ _locales/nb_NO/messages.json | 3 +++ _locales/nl/messages.json | 3 +++ _locales/no/messages.json | 3 +++ _locales/pl/messages.json | 3 +++ _locales/pt_BR/messages.json | 3 +++ _locales/pt_PT/messages.json | 3 +++ _locales/ro/messages.json | 3 +++ _locales/ru/messages.json | 3 +++ _locales/sk/messages.json | 3 +++ _locales/tr/messages.json | 3 +++ _locales/zh_CN/messages.json | 3 +++ _locales/zh_TW/messages.json | 3 +++ 24 files changed, 72 insertions(+) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 2eb7ccd6f..1a7e97038 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "حظر الكل" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "ازرق" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index da2f0560e..99d2019be 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "সবাইকে ব্লক" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "নীল" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index ba7b2db18..e13a60e5f 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "immer blockieren" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "Blau" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 715126640..bf7daaa76 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "Αποκλείστε όλα" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "Μπλε" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index e08ebe4ef..814fc2c73 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "Bloquear todo" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "Azul" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 7ef4539e4..50098fe40 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -104,6 +104,9 @@ "blacklist": { "message": "Liste noire" }, + "blockMusic": { + "message": "Block music" + }, "blockAll": { "message": "Tout bloquer" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index aed733896..de81fad84 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "सभी को अवरोधित करें" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "नीला" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index ba8c0357d..42924fa17 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "Blokiraj sve" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "Plava" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index d54b66725..e4430c1d7 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "Blokir semua" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "Biru" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 7f1a882f5..f7bff3f1b 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "Blocca tutte" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "Blu" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 8ccd0d799..7b183ef3c 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "すべてブロックする" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "青" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 073824994..2bf8b27c8 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "모두 차단" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "파랑" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 527da639a..d5b953693 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "Blokker alle" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "Blå" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 02960d3f1..d1ad75f93 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "Alles blokkeren" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "Blauw" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index a7270537a..d9fe3e033 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "Blokker alle" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "Blå" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 1ed26c172..7c20293b0 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "Blokuj wszystkie" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "Niebieski" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index a2fe9921d..95804b916 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "Bloquear tudo" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "Azul" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 53f9e1eb7..b80e4bfd1 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "Bloquear todos" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "Azul" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 995e0941b..ae1ea2cea 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "Blochează tot" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "Albastru" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index da2db3283..aac571c4f 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "Заблокировать всё" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "Синий" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index ca796690a..698f62a0c 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "Zablokovať všetko" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "Modrá" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 5760f08cb..f31711790 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "Tümünü engelle" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "Mavi" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 7f7ee2ea5..e517f46db 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "拦截所有" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "蓝色" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index c991dc20c..47f1ea58e 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -107,6 +107,9 @@ "blockAll": { "message": "封鎖所有" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "藍色" }, From ab84ab5a8baa9764cdd263693e82af27d7c3a31d Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 18 Aug 2021 18:37:39 +0300 Subject: [PATCH 0383/1224] Fixed "Forced playback speed" feature --- content-scripts.js | 2 ++ manifest.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/content-scripts.js b/content-scripts.js index ff95d836d..549e7e11e 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -130,6 +130,8 @@ chrome.storage.onChanged.addListener(function (changes) { if (name === 'blacklistActivate') { name = 'blacklist'; + } else if (name === 'playerForcedPlaybackSpeed') { + name = 'playerPlaybackSpeed'; } document.documentElement.setAttribute('it-' + attribute, value); diff --git a/manifest.json b/manifest.json index c613b2981..12b5b6dcd 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.467", + "version": "3.470", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 0f323da874256b49482c4d226418749502384bd7 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 18 Aug 2021 18:41:39 +0300 Subject: [PATCH 0384/1224] Fixed localization --- _locales/bn/messages.json | 2 +- manifest.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index ebf437d2c..4b940a59e 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -402,7 +402,7 @@ "message": "গ্রেডিয়েন্ট নীচে লুকান" }, "hideMoreButton": { - "message": "আরও লুকান বোতাম + "message": "আরও লুকান বোতাম" }, "hidePlaylist": { "message": "প্লেলিস্ট লুকান" diff --git a/manifest.json b/manifest.json index 12b5b6dcd..8c8ec5efa 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.470", + "version": "3.471", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 7f052aa3e02fd54f26ec2ff76b7bf1165cd5a381 Mon Sep 17 00:00:00 2001 From: dodieboy Date: Sat, 21 Aug 2021 21:13:45 +0800 Subject: [PATCH 0385/1224] Fixed "Remaining Duration" feature Fixed "Remaining Duration" feature when off in-between video, need to refresh the page for the "Remaining Duration" element to be remove fix #941 --- youtube-scripts.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 69f6c85f7..07dfa1244 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1282,10 +1282,10 @@ ImprovedTube.formatSecond = function(rTime){ } ImprovedTube.playerRemainingDuration = function () { + var element = document.querySelector('.ytp-time-remaining-duration'); if (this.storage.player_remaining_duration === true) { var player = ImprovedTube.elements.player; var rTime = ImprovedTube.formatSecond((player.getDuration() - player.getCurrentTime()).toFixed(0)); - var element = document.querySelector('.ytp-time-remaining-duration'); if(!element){ var label = document.createElement('span'); label.textContent = ' (-' + rTime + ')'; @@ -1296,6 +1296,10 @@ ImprovedTube.playerRemainingDuration = function () { element.textContent = ' (-' + rTime + ')'; } } + else if (element){ + console.log("test"); + element.remove(); + } }; From 80c1901869c8bfee90392f63772495155f5a2358 Mon Sep 17 00:00:00 2001 From: dodieboy Date: Sat, 21 Aug 2021 21:14:42 +0800 Subject: [PATCH 0386/1224] Remove debug msg --- youtube-scripts.js | 1 - 1 file changed, 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 07dfa1244..710d9068a 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1297,7 +1297,6 @@ ImprovedTube.playerRemainingDuration = function () { } } else if (element){ - console.log("test"); element.remove(); } }; From bf97de2b8564915e0f9f26fbf6fbe55d1ae88aa5 Mon Sep 17 00:00:00 2001 From: dodieboy Date: Sat, 21 Aug 2021 22:17:31 +0800 Subject: [PATCH 0387/1224] Added "Hide player control options" feature --- _locales/ar/messages.json | 12 ++++++++ _locales/bn/messages.json | 12 ++++++++ _locales/de/messages.json | 12 ++++++++ _locales/el/messages.json | 12 ++++++++ _locales/en/messages.json | 11 ++++++- _locales/es/messages.json | 12 ++++++++ _locales/fr/messages.json | 12 ++++++++ _locales/hin/messages.json | 12 ++++++++ _locales/hr/messages.json | 9 ++++++ _locales/id/messages.json | 12 ++++++++ _locales/it/messages.json | 12 ++++++++ _locales/ja/messages.json | 12 ++++++++ _locales/ko/messages.json | 12 ++++++++ _locales/nb_NO/messages.json | 12 ++++++++ _locales/nl/messages.json | 12 ++++++++ _locales/no/messages.json | 12 ++++++++ _locales/pl/messages.json | 11 ++++++- _locales/pt_BR/messages.json | 12 ++++++++ _locales/pt_PT/messages.json | 12 ++++++++ _locales/ro/messages.json | 12 ++++++++ _locales/ru/messages.json | 12 ++++++++ _locales/sk/messages.json | 12 ++++++++ _locales/tr/messages.json | 12 ++++++++ _locales/zh_CN/messages.json | 11 ++++++- _locales/zh_TW/messages.json | 11 ++++++- content-styles.css | 48 +++++++++++++++++++++++++++++++ popup.js | 56 ++++++++++++++++++++++++++++++++++-- 27 files changed, 391 insertions(+), 6 deletions(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 7c172422a..d9525a820 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -380,6 +380,12 @@ "hideCards": { "message": "إخفاء البطاقات" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -671,6 +677,9 @@ "relatedVideos": { "message": "فيديوهات ذات علاقة" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "إزالة عمليات بحث مرتبطة بـ" }, @@ -878,6 +887,9 @@ "videos": { "message": "الفيديوهات" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "الصوت" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 4b940a59e..d67e1b986 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -380,6 +380,12 @@ "hideCards": { "message": "কার্ড লুকান" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "কান্ট্রি কোড লুকান" }, @@ -671,6 +677,9 @@ "relatedVideos": { "message": "সংশ্লিষ্ট ভিডিও" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "সম্পর্কিত অনুসন্ধান ফলাফল সরান" }, @@ -878,6 +887,9 @@ "videos": { "message": "ভিডিও" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "শব্দ" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index e3a0cf413..a394f5f37 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -380,6 +380,12 @@ "hideCards": { "message": "Karten ausblenden" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -671,6 +677,9 @@ "relatedVideos": { "message": "Ähnliche Videos" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "Ähnliche Suchergebnisse entfernen" }, @@ -878,6 +887,9 @@ "videos": { "message": "Videos" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "Lautstärke" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index e59589d4a..04731b930 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -380,6 +380,12 @@ "hideCards": { "message": "Απόκρυψε τις κάρτες" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -671,6 +677,9 @@ "relatedVideos": { "message": "Σχετικά videos" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "Αφαίρεσε σχετικά αποτελέσματα αναζήτησης" }, @@ -878,6 +887,9 @@ "videos": { "message": "Βίντεο" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "Ένταση" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 361cab5cc..700d5f957 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -387,7 +387,10 @@ "message": "Hide cards" }, "hideControls": { - "message": "Hide player controls" + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" }, "hideCountryCode": { "message": "Hide country code" @@ -686,6 +689,9 @@ "relatedVideos": { "message": "Related videos" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "Remove related search results" }, @@ -905,6 +911,9 @@ "videos": { "message": "Videos" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "Volume" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 44a45f798..878c0acea 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -380,6 +380,12 @@ "hideCards": { "message": "Ocultar tarjetas" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -671,6 +677,9 @@ "relatedVideos": { "message": "Vídeos relacionados" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "Quitar resultados relacionados" }, @@ -878,6 +887,9 @@ "videos": { "message": "Videos" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "Volumen" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index bf17cd1df..4c687c2e2 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -380,6 +380,12 @@ "hideCards": { "message": "Cacher les cartes" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -674,6 +680,9 @@ "relatedVideos": { "message": "Vidéos associés" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "Supprimer les résultats de recherche associés" }, @@ -884,6 +893,9 @@ "videos": { "message": "Videos" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "Volume" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index d531a339d..ed4cdc171 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -380,6 +380,12 @@ "hideCards": { "message": "पत्ते छिपाओ" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "देश कोड छुपाएं" }, @@ -671,6 +677,9 @@ "relatedVideos": { "message": "संबंधित वीडियो" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "संबंधित खोज परिणाम निकालें" }, @@ -878,6 +887,9 @@ "videos": { "message": "वीडियो" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "ध्वनि" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 4e66d0787..380c1dccb 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -386,6 +386,9 @@ "hideControls": { "message": "Sakrij kontrole playera" }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -683,6 +686,9 @@ "relatedVideos": { "message": "Slični videozapisi" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "Uklonite slične rezultate pretraživanja" }, @@ -896,6 +902,9 @@ "videos": { "message": "Videozapisi" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "Glasnoća" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index b02788837..914654ec5 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -380,6 +380,12 @@ "hideCards": { "message": "Sembunyikan kartu" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -668,6 +674,9 @@ "relatedVideos": { "message": "Video terkait" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "Hapus hasil pencarian terkait" }, @@ -875,6 +884,9 @@ "videos": { "message": "Video" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "Suara" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 733263cb5..ec1914493 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -380,6 +380,12 @@ "hideCards": { "message": "Nascondi tessere di fine video" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -671,6 +677,9 @@ "relatedVideos": { "message": "Video correlati" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "Rimuovi risultati di ricerca correlati" }, @@ -875,6 +884,9 @@ "videos": { "message": "Video" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "Volume" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 0b50792cf..f28e9f61d 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -380,6 +380,12 @@ "hideCards": { "message": "カードを隠す" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -671,6 +677,9 @@ "relatedVideos": { "message": "関連動画" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "関連動画を検索結果から削除する" }, @@ -878,6 +887,9 @@ "videos": { "message": "動画" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "音量" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 686639e72..f75485c94 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -380,6 +380,12 @@ "hideCards": { "message": "카드 숨기기" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "국가코드 숨기기" }, @@ -668,6 +674,9 @@ "relatedVideos": { "message": "관련 영상" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "관련 검색결과 제거" }, @@ -875,6 +884,9 @@ "videos": { "message": "비디오" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "음량" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 407de5fa4..f4f0f256e 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -383,6 +383,12 @@ "hideCards": { "message": "Skjul kort" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -674,6 +680,9 @@ "relatedVideos": { "message": "Relaterte videoer" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "Fjern relaterte søkeresultater" }, @@ -881,6 +890,9 @@ "videos": { "message": "Videoer" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "Lydstyrke" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 21bcadfe2..b1ab2bcbf 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -380,6 +380,12 @@ "hideCards": { "message": "Verberg kaarten" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -671,6 +677,9 @@ "relatedVideos": { "message": "Gerelateerde video's" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "Verwijder resultaten van gerelateerde videos" }, @@ -878,6 +887,9 @@ "videos": { "message": "Video's" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "Volume" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index e1024ddb9..fc49af9f9 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -380,6 +380,12 @@ "hideCards": { "message": "Skjul kort" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -668,6 +674,9 @@ "relatedVideos": { "message": "Relaterte videoer" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "Fjern relaterte søkeresultater" }, @@ -869,6 +878,9 @@ "videos": { "message": "Videoer" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "Volume" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 3e7287685..4e39afd1c 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -387,7 +387,10 @@ "message": "Ukryj karty" }, "hideControls": { - "message": "Ukryj sterowanie odtwarzaczem" + "message": "Ukryj pasek sterowania odtwarzaczem" + }, + "hideControlsOptions": { + "message": "Hide player controls options" }, "hideCountryCode": { "message": "Ukryj kod kraju" @@ -686,6 +689,9 @@ "relatedVideos": { "message": "Wideo powiązane" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "Usuń powiązane wyniki wyszukiwania" }, @@ -905,6 +911,9 @@ "videos": { "message": "Wideo" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "Głośność" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 601c608c9..fbbb2307c 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -380,6 +380,12 @@ "hideCards": { "message": "Ocultar cards" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -671,6 +677,9 @@ "relatedVideos": { "message": "Vídeos relacionados" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "Remove related search results" }, @@ -878,6 +887,9 @@ "videos": { "message": "Vídeos" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "Volume" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 6b606a6ee..2b8bec207 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -380,6 +380,12 @@ "hideCards": { "message": "Esconder cartas" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -671,6 +677,9 @@ "relatedVideos": { "message": "Videos relacionados" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "Remove resultados relacionado com a pesquisa" }, @@ -878,6 +887,9 @@ "videos": { "message": "Videos" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "Volume" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index f423b460f..c7279a853 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -383,6 +383,12 @@ "hideCards": { "message": "Ascunde cardurile" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -677,6 +683,9 @@ "relatedVideos": { "message": "Videoclipuri asemănătoare" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "Elimină rezultatele asemănătoare a căutării" }, @@ -884,6 +893,9 @@ "videos": { "message": "Videoclipuri" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "Volum" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 6e11cc83a..46ed24ca5 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -380,6 +380,12 @@ "hideCards": { "message": "Скрыть карточки" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -671,6 +677,9 @@ "relatedVideos": { "message": "Похожие видео" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "Удалить похожие результаты поиска" }, @@ -878,6 +887,9 @@ "videos": { "message": "Видео" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "Громкость" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 67a876f14..b34e7fadc 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -380,6 +380,12 @@ "hideCards": { "message": "Skryť karty" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -671,6 +677,9 @@ "relatedVideos": { "message": "Súvisiace videá" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "Odstránte príbuzné výsledky vyhľadávania" }, @@ -878,6 +887,9 @@ "videos": { "message": "Vedeá" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "Hlasitosť" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index d0afda811..1ea6f4479 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -380,6 +380,12 @@ "hideCards": { "message": "Kartları gizle" }, + "hideControls": { + "message": "Hide player controls bar" + }, + "hideControlsOptions": { + "message": "Hide player controls options" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -671,6 +677,9 @@ "relatedVideos": { "message": "İlgili videolar" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "İlgili arama sonuçlarını kaldır" }, @@ -878,6 +887,9 @@ "videos": { "message": "Videolar" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "Ses" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 6a54cfef8..9f75fca7a 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -384,7 +384,10 @@ "message": "隐藏信息卡片" }, "hideControls": { - "message": "隐藏播放控制器" + "message": "隐藏播放器控制栏" + }, + "hideControlsOptions": { + "message": "Hide player controls options" }, "hideCountryCode": { "message": "隐藏国家代码" @@ -683,6 +686,9 @@ "relatedVideos": { "message": "相关视频" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "隐藏搜索相关结果" }, @@ -896,6 +902,9 @@ "videos": { "message": "视频" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "音量" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 8b385ae4d..b6a013a89 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -381,7 +381,10 @@ "message": "隱藏資訊卡" }, "hideControls": { - "message": "隱藏播放器控制" + "message": "隱藏播放器控制欄" + }, + "hideControlsOptions": { + "message": "Hide player controls options" }, "hideCountryCode": { "message": "Hide country code" @@ -680,6 +683,9 @@ "relatedVideos": { "message": "推薦影片" }, + "remote": { + "message": "Play on TV" + }, "removeRelatedSearchResults": { "message": "移除搜尋相關結果" }, @@ -890,6 +896,9 @@ "videos": { "message": "影片" }, + "viewMode": { + "message": "View Mode" + }, "volume": { "message": "音量" }, diff --git a/content-styles.css b/content-styles.css index 42a3c0eed..a66469183 100644 --- a/content-styles.css +++ b/content-styles.css @@ -62,6 +62,7 @@ 4.5 Repeat 4.6 Rotate 4.7 Popup player + 4.8 Hide controls options 5.0 Playlist 5.1 Reverse 6.0 Channel @@ -3390,6 +3391,53 @@ body.no-scroll .it-player-button--tooltip { } +/*------------------------------------------------------------------------------ +4.8 hide controls options +------------------------------------------------------------------------------*/ +html[it-player-play-button=true] .ytp-prev-button { + display: none !important; +} + +html[it-player-previous-button=true] .ytp-play-button { + display: none !important; +} + +html[it-player-next-button=true] .ytp-next-button { + display: none !important; +} + +html[it-player-volume-button=true] .ytp-volume-button { + display: none !important; +} + +html[it-player-autoplay-button=true] .ytp-autonav-toggle-button-container { + display: none !important; +} + +html[it-player-settings-button=true] .ytp-settings-button { + display: none !important; +} + +html[it-player-subtitles-button=true] .ytp-subtitles-button { + display: none !important; +} + +html[it-player-miniplayer-button=true] .ytp-miniplayer-button { + display: none !important; +} + +html[it-player-view-button=true] .ytp-size-button { + display: none !important; +} + +html[it-player-screen-button=true] .ytp-fullscreen-button { + display: none !important; +} + +html[it-player-remote-button=true] .ytp-remote-button { + display: none !important; +} + /*------------------------------------------------------------------------------ 5.0 PLAYLIST ------------------------------------------------------------------------------*/ diff --git a/popup.js b/popup.js index d808ec156..7538088e4 100644 --- a/popup.js +++ b/popup.js @@ -4300,8 +4300,60 @@ skeleton.main.section.player = { }, player_hide_controls: { type: 'switch', - label: 'hideControls', - value: false + label: 'hideControls' + }, + player_hide_controls_options: { + type: 'folder', + label: 'hideControlsOptions', + + section: { + type: 'section', + + player_play_button: { + type: 'switch', + label: 'playPause' + }, + player_previous_button: { + type: 'switch', + label: 'previousVideo' + }, + player_next_button: { + type: 'switch', + label: 'nextVideo' + }, + player_volume_button: { + type: 'switch', + label: 'volume' + }, + player_autoplay_button: { + type: 'switch', + label: 'autoplay' + }, + player_settings_button: { + type: 'switch', + label: 'settings' + }, + player_subtitles_button: { + type: 'switch', + label: 'subtitles' + }, + player_miniplayer_button: { + type: 'switch', + label: 'nativeMiniPlayer' + }, + player_view_button: { + type: 'switch', + label: 'viewMode' + }, + player_screen_button: { + type: 'switch', + label: 'screen' + }, + player_remote_button: { + type: 'switch', + label: 'remote' + } + } } } }; From 4a8afd0bf8484a4302a978175cba58f342bf41cf Mon Sep 17 00:00:00 2001 From: dodieboy Date: Sat, 21 Aug 2021 23:15:45 +0800 Subject: [PATCH 0388/1224] Fixed "next shortcut" feature Fixed "next shortcut" feature not looping playlist when click fix #1035 --- youtube-scripts.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/youtube-scripts.js b/youtube-scripts.js index 69f6c85f7..9b54a725c 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3384,6 +3384,12 @@ ImprovedTube.shortcutToggleAutoplay = function () { ImprovedTube.shortcutNextVideo = function () { if (this.elements.player) { + if (document.querySelector('[aria-label="Loop playlist"]').ariaPressed === 'true'){ + this.elements.player.setLoop(true); + } + else{ + this.elements.player.setLoop(false) + } this.elements.player.nextVideo(); } }; @@ -3395,6 +3401,12 @@ ImprovedTube.shortcutNextVideo = function () { ImprovedTube.shortcutPrevVideo = function () { if (this.elements.player) { + if (document.querySelector('[aria-label="Loop playlist"]').ariaPressed === 'true'){ + this.elements.player.setLoop(true); + } + else{ + this.elements.player.setLoop(false) + } this.elements.player.previousVideo(); } }; From 38501711046bb56da604e5348bd9dce04eebcad0 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 24 Aug 2021 13:07:23 +0300 Subject: [PATCH 0389/1224] Optimized the Global Observer --- manifest.json | 2 +- youtube-scripts.js | 131 ++++++++++++++++++++++----------------------- 2 files changed, 64 insertions(+), 69 deletions(-) diff --git a/manifest.json b/manifest.json index 8c8ec5efa..44e1d3e5a 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.471", + "version": "3.472", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 5f89ef3d8..2a9f3aa25 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -204,15 +204,15 @@ ImprovedTube.init = function () { if (mutation.type === 'childList') { for (var j = 0, k = mutation.addedNodes.length; j < k; j++) { var node = mutation.addedNodes[j], - name = node.nodeName; + name = node.nodeName, + id = node.id; if (name === 'YTD-WATCH-FLEXY') { ImprovedTube.elements.ytd_watch = node; - ImprovedTube.elements.ytd_player = node.querySelector('ytd-player'); if ( - ImprovedTube.storage.player_size && + ImprovedTube.isset(ImprovedTube.storage.player_size) && ImprovedTube.storage.player_size !== 'do_not_change' ) { node.calculateCurrentPlayerSize_ = function() { @@ -294,6 +294,44 @@ ImprovedTube.init = function () { subtree: false }); } + } else if (name === 'YTD-GUIDE-SECTION-RENDERER') { + if (ImprovedTube.elements.hasOwnProperty('sidebar_section') === false) { + ImprovedTube.elements.sidebar_section = node; + + ImprovedTube.improvedtubeYoutubeIcon(); + } + } else if (name === 'YTD-ITEM-SECTION-RENDERER') { + ImprovedTube.collapseOfSubscriptionSections(node); + } else if (id === 'movie_player') { + ImprovedTube.elements.ytd_player = document.querySelector('ytd-player'); + ImprovedTube.elements.player = node; + ImprovedTube.elements.video = node.querySelector('video'); + ImprovedTube.elements.player_left_controls = node.querySelector('.ytp-left-controls'); + ImprovedTube.elements.player_thumbnail = node.querySelector('.ytp-cued-thumbnail-overlay-image'); + ImprovedTube.elements.player_subtitles_button = node.querySelector('.ytp-subtitles-button'); + + ImprovedTube.playerSize(); + + new MutationObserver(function(mutationList) { + for (var i = 0, l = mutationList.length; i < l; i++) { + var mutation = mutationList[i]; + + if (mutation.type === 'attributes') { + if (mutation.attributeName === 'style') { + ImprovedTube.playerHdThumbnail(); + } + } + } + }).observe(ImprovedTube.elements.player_thumbnail, { + attributes: true, + attributeFilter: ['style'], + childList: false, + subtree: false + }); + + document.dispatchEvent(new CustomEvent('improvedtube-player-loaded')); + } else if (name === 'DIV' && node.className.indexOf('ytp-ad-player-overlay') !== -1) { + ImprovedTube.playerAds(node); } else if (name === 'YTD-TOGGLE-BUTTON-RENDERER') { if ( node.parentComponent && @@ -321,61 +359,39 @@ ImprovedTube.init = function () { ImprovedTube.playlistReverse(); } } - } else if (name === 'YTD-PLAYER') { - ImprovedTube.elements.ytd_player = node; - - ImprovedTube.playerSize(); - } else if (node.id === 'movie_player') { - ImprovedTube.elements.player = node; - - ImprovedTube.dim(); - - ImprovedTube.elements.player_left_controls = node.querySelector('.ytp-left-controls'); - ImprovedTube.elements.player_thumbnail = node.querySelector('.ytp-cued-thumbnail-overlay-image'); - ImprovedTube.elements.player_subtitles_button = node.querySelector('.ytp-subtitles-button'); - - new MutationObserver(function(mutationList) { - for (var i = 0, l = mutationList.length; i < l; i++) { - var mutation = mutationList[i]; - - if (mutation.type === 'attributes') { - if (mutation.attributeName === 'style') { - ImprovedTube.playerHdThumbnail(); - } - } - } - }).observe(ImprovedTube.elements.player_thumbnail, { - attributes: true, - attributeFilter: ['style'], - childList: false, - subtree: false - }); - - document.dispatchEvent(new CustomEvent('improvedtube-player-loaded')); - } else if (name === 'VIDEO') { - ImprovedTube.elements.video = node; - } else if (node.id === 'chat') { + } else if (id === 'chat') { ImprovedTube.elements.livechat.button = node.querySelector('ytd-toggle-button-renderer'); ImprovedTube.livechat(); - } else if (node.id === 'related' && node.className.indexOf('ytd-watch-flexy') !== -1) { + } else if (id === 'related' && node.className.indexOf('ytd-watch-flexy') !== -1) { ImprovedTube.elements.related.container = node; ImprovedTube.relatedVideos(); - } else if (name === 'YTD-COMMENTS-HEADER-RENDERER') { - ImprovedTube.elements.comments.container = node; - - ImprovedTube.comments(); - } else if (name === 'DIV' && node.className.indexOf('ytp-ad-player-overlay') !== -1) { - ImprovedTube.playerAds(node); } else if (name === 'YTD-VIDEO-PRIMARY-INFO-RENDERER') { ImprovedTube.elements.video_title = node.querySelector('.title.ytd-video-primary-info-renderer'); ImprovedTube.improvedtubeYoutubeIcon(); - } else if (name === 'YTD-ITEM-SECTION-RENDERER') { - ImprovedTube.collapseOfSubscriptionSections(node); + } else if (name === 'YTD-VIDEO-SECONDARY-INFO-RENDERER') { + ImprovedTube.elements.yt_channel_name = node.querySelector('ytd-channel-name'); + ImprovedTube.elements.yt_channel_link = node.querySelector('ytd-channel-name a'); + ImprovedTube.howLongAgoTheVideoWasUploaded(); + ImprovedTube.channelVideosCount(); + } else if (name === 'YTD-SUBSCRIBE-BUTTON-RENDERER') { + if (node.className.indexOf('ytd-c4-tabbed-header-renderer') !== -1) { + ImprovedTube.blacklist('channel', node); + } + + ImprovedTube.elements.subscribe_button = node; + } else if (name === 'YTD-COMMENTS-HEADER-RENDERER') { + ImprovedTube.elements.comments.container = node; + + ImprovedTube.comments(); + } else if (name === 'META'){ + if (node.getAttribute('itemprop') === 'genre'){ + ImprovedTube.genre = node.content; + } } else if (name === 'A' && node.href) { - if (node.id === 'logo') { + if (id === 'logo') { ImprovedTube.youtubeHomePage(node); } @@ -414,27 +430,6 @@ ImprovedTube.init = function () { subtree: false }); } - } else if (name === 'YTD-VIDEO-SECONDARY-INFO-RENDERER') { - ImprovedTube.elements.yt_channel_name = node.querySelector('ytd-channel-name'); - ImprovedTube.elements.yt_channel_link = node.querySelector('ytd-channel-name a'); - ImprovedTube.howLongAgoTheVideoWasUploaded(); - ImprovedTube.channelVideosCount(); - } else if (name === 'YTD-SUBSCRIBE-BUTTON-RENDERER') { - if (node.className.indexOf('ytd-c4-tabbed-header-renderer') !== -1) { - ImprovedTube.blacklist('channel', node); - } - - ImprovedTube.elements.subscribe_button = node; - } else if (name === 'YTD-GUIDE-SECTION-RENDERER') { - if (ImprovedTube.elements.hasOwnProperty('sidebar_section') === false) { - ImprovedTube.elements.sidebar_section = node; - - ImprovedTube.improvedtubeYoutubeIcon(); - } - } else if (name === 'META'){ - if (node.getAttribute('itemprop') === 'genre'){ - ImprovedTube.genre = node.content; - } } } } From aa6a541f6225b84d8debbc55d446dfd266227857 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 24 Aug 2021 13:12:31 +0300 Subject: [PATCH 0390/1224] Optimized "YouTube home page" feature --- manifest.json | 2 +- youtube-scripts.js | 21 ++++++++++----------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/manifest.json b/manifest.json index 44e1d3e5a..6f0d642c7 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.472", + "version": "3.473", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 2a9f3aa25..270886fcc 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -267,7 +267,8 @@ ImprovedTube.init = function () { ImprovedTube.elements.masthead = { start: node.querySelector('#start'), - end: node.querySelector('#end') + end: node.querySelector('#end'), + logo }; ImprovedTube.improvedtubeYoutubeIcon(); @@ -282,7 +283,7 @@ ImprovedTube.init = function () { if (logo.id === 'logo') { this.disconnect(); - ImprovedTube.youtubeHomePage(logo); + ImprovedTube.youtubeHomePage(); } } } @@ -392,7 +393,7 @@ ImprovedTube.init = function () { } } else if (name === 'A' && node.href) { if (id === 'logo') { - ImprovedTube.youtubeHomePage(node); + ImprovedTube.youtubeHomePage(); } ImprovedTube.channelDefaultTab(node); @@ -803,19 +804,17 @@ ImprovedTube.showStatus = function (value) { 4.1.1 YOUTUBE HOME PAGE ------------------------------------------------------------------------------*/ -ImprovedTube.youtubeHomePage = function (node) { - if (this.isset(node) === false) { - node = document.querySelector('a#logo'); - } +ImprovedTube.youtubeHomePage = function () { + var element = this.elements.masthead.logo; if (this.isset(this.storage.youtube_home_page)) { - node.href = this.storage.youtube_home_page; + element.href = this.storage.youtube_home_page; - node.addEventListener('click', this.stopPropagation, true); + element.addEventListener('click', this.stopPropagation, true); } else { - node.href = '/'; + element.href = '/'; - node.removeEventListener('click', this.stopPropagation); + element.removeEventListener('click', this.stopPropagation); } }; From 2c9e24708683576f97c648c252f69e60e8d35464 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 24 Aug 2021 13:21:30 +0300 Subject: [PATCH 0391/1224] Added target check "YouTube home page" feature --- manifest.json | 2 +- youtube-scripts.js | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/manifest.json b/manifest.json index 6f0d642c7..ce0eb6f8e 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.473", + "version": "3.474", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/youtube-scripts.js b/youtube-scripts.js index 270886fcc..192990a15 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -805,16 +805,19 @@ ImprovedTube.showStatus = function (value) { ------------------------------------------------------------------------------*/ ImprovedTube.youtubeHomePage = function () { - var element = this.elements.masthead.logo; + var element = this.elements.masthead.logo, + option = this.storage.youtube_home_page; - if (this.isset(this.storage.youtube_home_page)) { - element.href = this.storage.youtube_home_page; + if (element) { + if (this.isset(option)) { + element.href = option; - element.addEventListener('click', this.stopPropagation, true); - } else { - element.href = '/'; + element.addEventListener('click', this.stopPropagation, true); + } else { + element.href = '/'; - element.removeEventListener('click', this.stopPropagation); + element.removeEventListener('click', this.stopPropagation); + } } }; From fe0f3a00382c3723a03eeb08b598d5e27817a9f3 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 30 Aug 2021 17:27:37 +0300 Subject: [PATCH 0392/1224] Removed unused previews --- previews/edge-disabled.png | Bin 9661 -> 0 bytes previews/firefox-disabled.png | Bin 10738 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 previews/edge-disabled.png delete mode 100644 previews/firefox-disabled.png diff --git a/previews/edge-disabled.png b/previews/edge-disabled.png deleted file mode 100644 index 5308d60154db7bcb4cd4c44d804a9d919d163f52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9661 zcmeHN-D@316yL=Lc4oHou zAoxKQDg_axC_)3}J}A;!Z6qSKD2f)*Qf(oUA{xE^erIOx?%kB+=57)K-9z@y%$eCa zzx|zaW@eW>H?ebcqaM^z6m1+I8@U7J+qiB@uEOud8&7ONvEhN?9m7#{eRXu|*vqfHIyCj?%*;&t^P%G>PDY0=w!S|w{ma4j>~#BR)cWn8JzrdE|IzyQ zhi~S;KK|o{*5Ak8`|I#a?bCaHot>V(Fh93<_w2;=2d1KfCx>o6_uqcNi0|D#IuboQ zuz3s(_0ZVvN2ADG%`1*xdt*}+ZHdN5hIdU4#2;L&3A5|xw*Ee7;n>ltiqIqoe(|P6 zB+S#>6o=5~kqV57m-(}190EwL#JjA}=g8lXDIhBcZvxl*G)B&3E>qUX%P^ymD8vMy zmO+-eT-MxE&?g8rid6I|RNR78(75$TMlJT!cN{J@>5BF>2?G_xbHg!wKn&ROQi-!}Q6|suIMn@I8dMynn zTpHnEMdE8J(y=E9-Kxyp3}U75dr4+7qWg||2!m4?K|LO(y3Lnb9@>f`1TLN)a887S1R>5iqTq(e12@k+spejX zbGXfX9?AaaqCs<@?3{E1&qz{~L!}OfoJ|q~d4f8;>07vLxkDtc4JEX%czDXYU~N03AZw#cN9t?X!vq13-9SwGd)~V6MPEF$9E!183v? zN$e`4$r>~ol;siEy$0i4FMgrsEi4MD#UW0k%oW-#Ap{N=jbe^f*NFPu=P@<`X5O^dNus(Z)%w;0OAmlPbQicO2-ONP?UceYM z!Y!;isTqf|{1)jdRv3u*D8iR~RD?5N5RJ>JJjGqJd$3nR*jbxh#Ilp@kz0yTj*^ftk?UlG(l>|rW+N+zcHgkvhb_FGa#C!(_*8;! z`L06^KJmymCf6ChLGgvw4TRp`i?>yL#NaJnDhPvm9hD8j`p&pgIXragoZV)2E^fdms@T-vv0@flXv2Oouct=J4fEX_3o$s2OZ{9 AC;$Ke diff --git a/previews/firefox-disabled.png b/previews/firefox-disabled.png deleted file mode 100644 index 995ee949eebdf0c3516e918c6adec4e73e4d1658..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10738 zcmeI232YQq7{_N^*?454k@3JtLcC(sA<9@v%hlFhceg+(6%cDtD#jvcQj1uxC`Hs_ zG?pMiN)<(*94T0pBM?zMFn~~sBA{3Vt+iMc%cUqjzwcf1W_C-L2)oqyvYq42oB4k4 z|Nifrx6Mw;%?TOjTzZbCX+|U*$b{WA>qD17{z4S6{J3$Gz5>{kh`kSk2lWQNw$Y-zGxwh z0Wz-(*_%c758QiRQA6iDkJ*DrON2Cs$n%#R{Nu0AGq-(bj3YH&-@f@5lHX(9p4PJW zzbALyK*puETt0$)W|KA7k}Y9Ub{QFSEg5Z*M|$o)e>9nP6Is-YtPYbe(@2F$%2UXW zKFfMHl2<$5S-YD&bmhG%%gORo(vU&E?ngdNCl6dRwqSRD#>y*ZZ=6uDZ`!aw$&3rg zC)w4J)-F}`!Q)x!;brR+F{;k5vpN@7_{1_{h?p4JGeXjTu$* z@UZF^L(O}}1;=LBk-O5iU07P)Z`b{KJBun3=I>X3CDgmk#c|;Jwv@wtQ7l(zJb8-K9^gy8G!@viI+wb=BCcIV8W= zqk+#SUH{hHiV4%!P5Hfe_?n9Qnw}|qEzrDt?t_!xo_2Uk@bEX0g{gJHB`aE6hOP}3 zmknv2{N&U{fpW6gIx?j1yijS)EhR4(%=j@k@^bq0h2iZVUR8Ez$lz_G?UUgp-SyyL{q6ywfL7kAYZy+> zE)L&5UenI)jDNaTS#^n~b<-k&%%NjC>1(de+^PBfK0`n4i{bP8HNSb#V zQBd*pgo_u|091$u8{t?$RbfqC>g@!x83t4&4%J3dlk#%$Yy*m^2y5yv&YoiWMMdIJ zDJkFRx@{vUY;D8ISeEVJNIog*A<+ z$>l>hm{`8V89-3-y@yp;*0iLETmd$3bTe_N%&7{m5Ecwz*an|qD6ePqY(K3?AgXKp zDKRxF71#2a6qTg|nUc7yKAHj&h${629&s#TK}(0#i>lLC0Pylx09w~+6O~tSf;pFY zciY>!rj@`G`q8~$g&g3Z(wyGjvrqE%*r* zsD|GUAMOA^g(x-(4Wk20I7Z3{BLcLhqT6s8)ugDjVH~RB(oYn8wx@6_Q&GKdR?34( zm35J!(n?_Fs1(ML0BWT*alio;=`m>gs_N>z@^Hc_?*+9%6e_Ij>5_>VN1)<*-Ud;etbzxQ5dsx*=uKYkB z#sh;s)EX+PS5=_lW{Fmnj*A^1stV*{6~oW_qI8xX()h?A<^{uGJ&@xLR}D7PEe<7a zhI2Fk%?nmssIV?oiv#4YmtPTO0}9DD*h5Z?Lk|!F75f7tPrq2uT5krx`2mfgo%D%} z;57hz8&y%k1$ei&GWPfjT8z(7X~qO{hDx)nf?z-+Y^&r|8jLGVuWy zH@oWvD*8Jf1K?=4%PK<2y^?sCz6{lJudMi)ybEICo7eBGtk3{-e#M81tZl>MH6>O; z4?SMR*vDbTO9{nOgT+8)*(An%LeS)qdfryN6O_qo16HYaGr`9(R0RUgiaV;VIA^{; z)rg~d7Coq#&&@V=42WH>Dxk$0oz7r6IR_eDj+y|CUIs-DUOROTb&jM z|D&FYVdzLd4)LsfPK6vN=b65a^g||CmY)ups2$~T>A3al4-PaQ-t{j0>P?FTa{^1U HMosz$8Eb2s From 031696fd1c439f814de82fde69103b516b946666 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 30 Aug 2021 17:53:16 +0300 Subject: [PATCH 0393/1224] Removed "ImprovedTube icon in browser" feature --- _locales/ar/messages.json | 9 +++------ _locales/bn/messages.json | 11 ++++------- _locales/de/messages.json | 9 +++------ _locales/el/messages.json | 9 +++------ _locales/en/messages.json | 9 +++------ _locales/es/messages.json | 9 +++------ _locales/fr/messages.json | 15 ++++++-------- _locales/hin/messages.json | 11 ++++------- _locales/hr/messages.json | 9 +++------ _locales/id/messages.json | 9 +++------ _locales/it/messages.json | 9 +++------ _locales/ja/messages.json | 9 +++------ _locales/ko/messages.json | 9 +++------ _locales/nb_NO/messages.json | 9 +++------ _locales/nl/messages.json | 9 +++------ _locales/no/messages.json | 9 +++------ _locales/pl/messages.json | 9 +++------ _locales/pt_BR/messages.json | 9 +++------ _locales/pt_PT/messages.json | 9 +++------ _locales/ro/messages.json | 9 +++------ _locales/ru/messages.json | 9 +++------ _locales/sk/messages.json | 9 +++------ _locales/tr/messages.json | 9 +++------ _locales/zh_CN/messages.json | 9 +++------ _locales/zh_TW/messages.json | 9 +++------ assets/icons/128g.png | Bin 2569 -> 0 bytes assets/icons/16g.png | Bin 557 -> 0 bytes assets/icons/32g.png | Bin 926 -> 0 bytes assets/icons/48g.png | Bin 1188 -> 0 bytes background.js | 34 +------------------------------- {assets/icons => icons}/128.png | Bin {assets/icons => icons}/16.png | Bin {assets/icons => icons}/32.png | Bin {assets/icons => icons}/48.png | Bin manifest.json | 16 +++++---------- popup.js | 12 ----------- 36 files changed, 86 insertions(+), 211 deletions(-) delete mode 100644 assets/icons/128g.png delete mode 100644 assets/icons/16g.png delete mode 100644 assets/icons/32g.png delete mode 100644 assets/icons/48g.png rename {assets/icons => icons}/128.png (100%) rename {assets/icons => icons}/16.png (100%) rename {assets/icons => icons}/32.png (100%) rename {assets/icons => icons}/48.png (100%) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index d9525a820..fc428aac1 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -428,9 +428,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideViewsCount": { "message": "إخفاء عدد المشاهدات" }, @@ -464,9 +461,6 @@ "improveLogo": { "message": "تحسين الشعار" }, - "improvedtubeIconInBrowser": { - "message": "في المتصفح ImprovedTube ايقونة" - }, "improvedtubeIconOnYoutube": { "message": "في اليوتيوب ImprovedTube ايقونة" }, @@ -758,6 +752,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "عشوائي" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index d67e1b986..47fe046ed 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -428,9 +428,6 @@ "hideSkipOverlay": { "message": "স্কিপ ওভারলে লুকান" }, - "showRemainingDuration":{ - "message": "ভিডিও অবশিষ্ট সময় দেখান" - }, "hideViewsCount": { "message": "দর্শন গণনা লুকান" }, @@ -464,9 +461,6 @@ "improveLogo": { "message": "লোগো উন্নত করুন" }, - "improvedtubeIconInBrowser": { - "message": "ব্রাউজারে উন্নত YouTube আইকন" - }, "improvedtubeIconOnYoutube": { "message": "ইউটিউবে উন্নত আইকন" }, @@ -758,6 +752,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "ভিডিও অবশিষ্ট সময় দেখান" + }, "shuffle": { "message": "অদলবদল" }, @@ -929,4 +926,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "ইউটিউব h.264 কোডেকের জন্য ভিডিও গুণমানকে 1080p এর মধ্যে সীমাবদ্ধ করে" } -} +} \ No newline at end of file diff --git a/_locales/de/messages.json b/_locales/de/messages.json index a394f5f37..e9840a69d 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -428,9 +428,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideViewsCount": { "message": "Videoaufrufe ausblenden" }, @@ -464,9 +461,6 @@ "improveLogo": { "message": "Logo verbessern" }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube Icon im Browser" - }, "improvedtubeIconOnYoutube": { "message": "ImprovedTube Icon auf YouTube" }, @@ -758,6 +752,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "Zufallswiedergabe" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 04731b930..ec7cf0aab 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -428,9 +428,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideViewsCount": { "message": "Απόκρυψε τον αριθμό προβολών" }, @@ -464,9 +461,6 @@ "improveLogo": { "message": "Λογότυπο Improve" }, - "improvedtubeIconInBrowser": { - "message": "Εικονίδιο ImprovedTube στο Browser" - }, "improvedtubeIconOnYoutube": { "message": "Εικονίδιο ImprovedTube στο YouTube" }, @@ -758,6 +752,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "Τυχαία αναπαραγωγή" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 700d5f957..a0108c012 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -434,9 +434,6 @@ "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -473,9 +470,6 @@ "improveLogo": { "message": "Improve logo" }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube icon in Browser" - }, "improvedtubeIconOnYoutube": { "message": "ImprovedTube icon on YouTube" }, @@ -770,6 +764,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "Shuffle" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 878c0acea..52636ed08 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -428,9 +428,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideViewsCount": { "message": "Ocultar contador de visitas" }, @@ -464,9 +461,6 @@ "improveLogo": { "message": "Mejorar logo" }, - "improvedtubeIconInBrowser": { - "message": "Icono ImprovedTube en el navegador" - }, "improvedtubeIconOnYoutube": { "message": "Icono ImprovedTube en YouTube" }, @@ -758,6 +752,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "Aleatorio" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 4c687c2e2..7623a993b 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -104,12 +104,12 @@ "blacklist": { "message": "Liste noire" }, - "blockMusic": { - "message": "Block music" - }, "blockAll": { "message": "Tout bloquer" }, + "blockMusic": { + "message": "Block music" + }, "blue": { "message": "Bleu" }, @@ -428,9 +428,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideViewsCount": { "message": "Voir le compte des vues" }, @@ -464,9 +461,6 @@ "improveLogo": { "message": "Améliorer le logo" }, - "improvedtubeIconInBrowser": { - "message": "Afficher l'icône ImprovedTube dans le navigateur web" - }, "improvedtubeIconOnYoutube": { "message": "Afficher l'icône ImprovedTube sur YouTube" }, @@ -761,6 +755,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "Aléatoire" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index ed4cdc171..eb49e268f 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -428,9 +428,6 @@ "hideSkipOverlay": { "message": "स्किप ओवरले छुपाएं" }, - "showRemainingDuration":{ - "message": "वीडियो की बची हुई अवधि दिखाएं" - }, "hideViewsCount": { "message": "व्यू काउंट छिपाएं" }, @@ -464,9 +461,6 @@ "improveLogo": { "message": "लोगो सुधारो" }, - "improvedtubeIconInBrowser": { - "message": "ब्राउज़र में बेहतर आइकन" - }, "improvedtubeIconOnYoutube": { "message": "यूट्यूब पर बेहतर आइकन" }, @@ -758,6 +752,9 @@ "showMore": { "message": "और दिखाएं" }, + "showRemainingDuration": { + "message": "वीडियो की बची हुई अवधि दिखाएं" + }, "shuffle": { "message": "मिश्रण" }, @@ -929,4 +926,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "यूट्यूब h.264 कोडेक के लिए वीडियो की गुणवत्ता 1080 पी तक सीमित है" } -} +} \ No newline at end of file diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 380c1dccb..4c9199040 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -431,9 +431,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideThumbnailOverlay": { "message": "Sakrij gumbe na sličicama" }, @@ -470,9 +467,6 @@ "improveLogo": { "message": "Poboljšajte logotip" }, - "improvedtubeIconInBrowser": { - "message": "Ikona ImprovedTube u pregledniku" - }, "improvedtubeIconOnYoutube": { "message": "Ikona ImprovedTube na YouTubeu" }, @@ -767,6 +761,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "Nasumično" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 914654ec5..64b875233 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -428,9 +428,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideViewsCount": { "message": "Sembunyikan jumlah penayangan" }, @@ -464,9 +461,6 @@ "improveLogo": { "message": "Tingkatkan kualitas logo" }, - "improvedtubeIconInBrowser": { - "message": "Ikon ImprovedTube di peramban" - }, "improvedtubeIconOnYoutube": { "message": "Ikon ImprovedTube di YouTube" }, @@ -755,6 +749,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "Putar secara acak" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index ec1914493..a752b5e50 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -428,9 +428,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideViewsCount": { "message": "Nascondi contatore visualizzazioni" }, @@ -464,9 +461,6 @@ "improveLogo": { "message": "Migliora logo YouTube" }, - "improvedtubeIconInBrowser": { - "message": "Icona nel browser" - }, "improvedtubeIconOnYoutube": { "message": "Icona su YouTube" }, @@ -758,6 +752,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "Riproduzione casuale" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index f28e9f61d..f318e0654 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -428,9 +428,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideViewsCount": { "message": "視聴数を隠す" }, @@ -464,9 +461,6 @@ "improveLogo": { "message": "ロゴを改良する" }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTubeアイコンをブラウザに表示する" - }, "improvedtubeIconOnYoutube": { "message": "ImprovedTubeアイコンをYouTubeに表示する" }, @@ -758,6 +752,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "シャッフル" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index f75485c94..ec6aa45dc 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -428,9 +428,6 @@ "hideSkipOverlay": { "message": "\"오버레이 건너뛰기\" 숨기기" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideViewsCount": { "message": "조회수 숨기기" }, @@ -464,9 +461,6 @@ "improveLogo": { "message": "향상된 로고" }, - "improvedtubeIconInBrowser": { - "message": "향상된 브라우저 아이콘" - }, "improvedtubeIconOnYoutube": { "message": "향상된 유튜브 아이콘" }, @@ -755,6 +749,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "셔플" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index f4f0f256e..82a3795e4 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -431,9 +431,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideViewsCount": { "message": "Skjul visningsteller" }, @@ -467,9 +464,6 @@ "improveLogo": { "message": "Forbedre logo" }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube-ikonet i nettleseren" - }, "improvedtubeIconOnYoutube": { "message": "ImprovedTube-ikonet på YouTube" }, @@ -761,6 +755,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "Tilfeldig rekkefølge" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index b1ab2bcbf..bde037092 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -428,9 +428,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideViewsCount": { "message": "Verberg views teller" }, @@ -464,9 +461,6 @@ "improveLogo": { "message": "YouTube-logo verbeteren" }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube-pictogram in browser" - }, "improvedtubeIconOnYoutube": { "message": "ImprovedTube icoon op YouTube" }, @@ -758,6 +752,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "Willekeurig" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index fc49af9f9..c520a09d4 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -425,9 +425,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideViewsCount": { "message": "Skjul visninger teller" }, @@ -461,9 +458,6 @@ "improveLogo": { "message": "Improve logo" }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube-ikonet i nettleseren" - }, "improvedtubeIconOnYoutube": { "message": "ImprovedTube-ikonet på YouTube" }, @@ -755,6 +749,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "Tilfeldig rekkefølge" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 4e39afd1c..9de3373fa 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -434,9 +434,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideThumbnailOverlay": { "message": "Ukryj przyciski na miniaturach" }, @@ -473,9 +470,6 @@ "improveLogo": { "message": "Ulepsz logo" }, - "improvedtubeIconInBrowser": { - "message": "Ikona ImprovedTube w przeglądarce" - }, "improvedtubeIconOnYoutube": { "message": "Ikona ImprovedTube na YouTube" }, @@ -770,6 +764,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "Losowo" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index fbbb2307c..d6da3a7de 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -428,9 +428,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideViewsCount": { "message": "Ocultar visualizações" }, @@ -464,9 +461,6 @@ "improveLogo": { "message": "Aprimorar logomarca" }, - "improvedtubeIconInBrowser": { - "message": "Ícone do ImprovedTube no navegador" - }, "improvedtubeIconOnYoutube": { "message": "Ícone do ImprovedTube no YouTube" }, @@ -758,6 +752,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "Aleatório" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 2b8bec207..7d8a6c08d 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -428,9 +428,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideViewsCount": { "message": "Esconder número de vistos" }, @@ -464,9 +461,6 @@ "improveLogo": { "message": "Melhorar logotipo" }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube icon in Browser" - }, "improvedtubeIconOnYoutube": { "message": "Ícon do ImprovedTube no YouTube" }, @@ -758,6 +752,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "Misturar" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index c7279a853..075401677 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -431,9 +431,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideViewsCount": { "message": "Ascunde numărul vizualizărilor" }, @@ -467,9 +464,6 @@ "improveLogo": { "message": "Îmbunătățește sigla" }, - "improvedtubeIconInBrowser": { - "message": "Iconița ImprovedTube în browser" - }, "improvedtubeIconOnYoutube": { "message": "Iconița ImprovedTube pe YouTube" }, @@ -764,6 +758,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "Amestecă" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 46ed24ca5..c53c547c9 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -428,9 +428,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideViewsCount": { "message": "Скрыть количество просмотров" }, @@ -464,9 +461,6 @@ "improveLogo": { "message": "Улучшить логотип YouTube" }, - "improvedtubeIconInBrowser": { - "message": "Значок ImprovedTube в браузере" - }, "improvedtubeIconOnYoutube": { "message": "Значок ImprovedTube в YouTube" }, @@ -758,6 +752,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "Случайный порядок" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index b34e7fadc..435bc128b 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -428,9 +428,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideViewsCount": { "message": "Skyť počet videní" }, @@ -464,9 +461,6 @@ "improveLogo": { "message": "Improve logo" }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube ikona v prehliadači" - }, "improvedtubeIconOnYoutube": { "message": "ImprovedTube ikona na YouTube" }, @@ -758,6 +752,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "Náhodne" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 1ea6f4479..c37461cd0 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -428,9 +428,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideViewsCount": { "message": "Görüntüleme sayısını gizle" }, @@ -464,9 +461,6 @@ "improveLogo": { "message": "Logoyu geliştir" }, - "improvedtubeIconInBrowser": { - "message": "Tarayıcıda ImprovedTube Simgesi" - }, "improvedtubeIconOnYoutube": { "message": "YouTube'da ImprovedTube Simgesi" }, @@ -758,6 +752,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "Karıştır" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 9f75fca7a..c4802e9ee 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -431,9 +431,6 @@ "hideSkipOverlay": { "message": "隐藏跳过叠加" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideThumbnailOverlay": { "message": "隐藏缩略图上的按钮" }, @@ -470,9 +467,6 @@ "improveLogo": { "message": "优化图标" }, - "improvedtubeIconInBrowser": { - "message": "ImprovedTube 扩展程序图标" - }, "improvedtubeIconOnYoutube": { "message": "在 YouTube 显示 ImprovedTube 图标" }, @@ -767,6 +761,9 @@ "showMore": { "message": "展示更多" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "随机" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index b6a013a89..e3a0321fe 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -428,9 +428,6 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "showRemainingDuration":{ - "message": "Show video remaining duration" - }, "hideThumbnailOverlay": { "message": "隱藏縮圖上的按鈕" }, @@ -467,9 +464,6 @@ "improveLogo": { "message": "改進 YouTube 圖示" }, - "improvedtubeIconInBrowser": { - "message": "於瀏覽器中顯示 ImprovedTube 圖示" - }, "improvedtubeIconOnYoutube": { "message": "於 YouTube 中顯示 ImprovedTube 圖示" }, @@ -764,6 +758,9 @@ "showMore": { "message": "Show more" }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, "shuffle": { "message": "隨機播放" }, diff --git a/assets/icons/128g.png b/assets/icons/128g.png deleted file mode 100644 index 4c05ddb00a177ed59b3e69c22a8212fe50514c03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2569 zcmXAr2UHX37RLh-X(9-#2nbjxPf)7DN)bhrr5I{R=t%FOhd>}m??F)`Dn)4`B}-9O z2rUXkaaSP_6ig@q)F>o@7$QaAx9`n4GxL4--v9sp?#!8Uroa(qEhV8S0f9iIZ2quv z2KS7APcbOC^5$>+fIx&?9PM2%TgTYDy1F6|h?JC+h=>Rz5}BNw92giF^1s8|+Z$w4 zQ&Ypk!+m^wKq@ja5|jl61tlgX0*Q-@%e8CQKn;k4Z9+nVv$M0WuP-P7DX>7HP;fXL z1U)@H!6H6B-re0DXhHV>4&WLU6$Q$|!op%=Vz5|jQc@C-V=$Q2)z!7Nwdm+*Km}C5 z9GG}`czAhv0Uy8yuw!Fmffh*O;^F{(J0pzz@a(v|yIt z;9$@NOd1dn;P3AbrttIg1Hb?kU;rvGHJAwSWM*dO=H?a_7EVn~wYRs^>Gb90LZ7?Bw`(@&ccx%uev@IXuv9!wd0m>5mwf z{pqk5|5RY^HBcXu7bmmRAcTL~b68?h83!HGWqAzaj&*;3D!su?J+i}M(ZUH-+5RDJ zwTRjHH`lD3Mm7>!uSE5{@R6hlWfepdC>pd&KjSe z;pf83{Ti5RqS9P3p!z%OfnZ9oN?+Aj`#JWa8O2sLo)CDSNZ&R-6oQDZ2n=C--918M z(sdQ)oHzsBAs+9=DX^Vx%7eB%X*rXIuen>*t59V%tiiv))RuJrk1?pac-V1a8Q$- zit?22W{gAgt*Y9F3VcB*rTG*^x4Q*$9FKC>`$@@gP=jf!Ud;E6o)UBEmUxLiE14 zZqsBKM)$Csay(qer}>7i2)Vr( z<+P~8y;lfJxW#D!v6m6Ui$LStNKOx`7+|`1)GwO z4Vpi5gsS@|!`II=4;Vg3T)&yHJE=u()YVOui4&f&i-k=3{~#S348Sd=wHZtffFWCC#c8et6#l$lB*jSyZ=JYx+;!SVXwpz?jn3s&(BZ1 zZ%Xvu5O#*f31bqwBn7Q578&pIdt$Xe1*4sOS}raK z+fY2pvhFP78=%CA=2?3Vs@m~uQ2%bF@ZT>EYX-a!o20LtUOaJQU`l{2-eE$H(xVv1 zRqo%&9kqRgDqAx`9Z;=EeUi=>k*am4xSm86!1%(7=|MsDqE|09*kXzVe=OZA^mS)h zE0;AnGmf8Mw;yIgGD9H-w06b8IYX25uppVUppqt>jO{(6k*u0m_m>W~4w$XX66l4q^2_kP58|>3PgR(w8y8^0M1fw*Boldt-@9r4ZNE=Ek~;41RecWZ971bo2Ovxf5`5^1KEUWS#r_G@m9xS}Wj4UfvYlq@U_b@`WcYe^ z5_~;WVmTfmtq_u^{f=yU$j6w@rivobJuzsFqPY(W`Xs|}v*ovwzh!KyaZIgrm=V1` zBWJqxJ~(DGvIK3y1BOU0LvQfK2J{_C^t-nLE*Y7aS3@{&ud~nSx6;j<+QFQ>RXDp; z$(`zD@ZN7P=Lmrds*n{zFU2Cw3^P*UD!9iHbt^wJw1YRLpwfa;eSV$yR?&fVsSiq?`ObE0?{4Yw_kJWfn^^aLQej>pw^R+MTk8^s6D zptE7eL*>1=(PAB(j^#Ur7N6x9yiMM8u}i=TOIZZx2lZm}c~Fj%!Ym;n2Mp z^rGn3JWcujZ${#C-XE|qR}@Am%?P=Yi0^vjaC3~INtXWM(f66U^!<@;D?dp|d5-=` zX%|sF-#wGInsw>fTJ*<|gxTD!nKZszeDhC>E*)v9L$|z7fu9eE&1INXo26goe*ue2IyzEPQZ{VZ z(AwI1;>3yDw{HWje)Hzd%a<=NUAnYr(W1$dCofpApu4;K@#Dwaw{Len^!gdl%jzXT ze!&bAHFY%qO=O$Q{%7jdOP_cB-Tm$AdoKJ@;*^yN~o&iBcC`#C?#n3^%tuw&B>hW5vGsGmSa7(_BKn zZi)T5YhR|LY`L(3?<0Y5MW;|G` zawB_+Ru{)krRNeh`3o26hmdKI;Vst08eiHYybcN diff --git a/assets/icons/32g.png b/assets/icons/32g.png deleted file mode 100644 index 1636de0274e7181961f6f7f3710b0b070aabbe91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 926 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U~~-d32}8V@CgbEs;sOG3k$2N zstOJc&dSP)ii!eqfr2$PHMzODp`oD#1qH>$#X#AJh=`1g44`aDNeNIrP;X>pWL#Vv zP-SXrDv$wG2~-bM43sS`EiEf6%gf6HGJwi}x{8X50s{lX!^45fVq;^g!2oDudU`rg z7m!R$OavMd6B7e;LqbAAN=gdQ3LyFR?b~QxGz#dL{QUg1w6u_r z5TI$v$;m)B1FZwv1=J37InZ{Xr9kt6Hpa)t7Zw&)R8*9gm#BS(%jHa6bAef#m_$8+b-eevSOi4!L-T(|)A+SaXGySlnwy?Qlm+O%!kwyj^k ze(BPsd-m*Ewrm-*%d#Y3m|Bzs`2{ol>*;*`QjuMeOZjyhU)Q%Uv$*xIT+qEVtMlbA ziLlcWUr&1myS<-r>(Z-VUoQVT{AK#LS4U2KKK>)8|6v_4LaunaIEGl9&b^%O{K-Io z{X??n#NO)s+HZ2YTc_~3XoaPQ7WAjr{pU~6^PMHOclw`yD&?6>0wHy&b*48nRKg$6 zmaK@I{5k);^b)`G=Va2CZ!kMH^M~}4;3u^~TbDYeOg;Hh<9e35`g*k%f7RMDmg}$C zZ?1gs-}9j96RU^KVcMs!o$v|XCwN5XAp$%b=M%Nbn**R3}Rd2;YUwVc_{7&)!Ax2=zD z%guLeG=EnZ{^Ypd?dNs>g>ydatY|1JGIVH=(*czaIM&-km#?2!0bbHnEV zS7>rVJ5${JjqCEA|0$%?G}UK2`hlF_4Ktt?tppZ&h^(H@H3q z7D_TCFy1Wv|2T)=&irfgp=C1{n`_y&r)SNzKeeCtj#WbOvHe8~x|f`TO;1@p&+~e8 zz3SUmRVnqHSy$4J9-i>**pA!1XFVP+pL%X;#N&|N8zb~=zgbNeRy}w$_GRn$*qeSe kH@roI?aQ`nJ-V(gr*yhFJz{4eFpV&Hy85}Sb4q9e0F(B*kN^Mx diff --git a/assets/icons/48g.png b/assets/icons/48g.png deleted file mode 100644 index e0ade7eb023829a9aa52b4552afe23afbdfbf9d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1188 zcmW-g3sh2f9LLeXm5q7YNIjahb}HH`r7dSBO-;*3WF;8#Qici$h7UmT?J+e;g-+W< zQ@5oaD?7uLk&iI45@wQ4^OcXq6cuw~L9NGR+i&}ybMO6~`~Q3&_ug}*Cn7@7j&6EcgqBLYP5Lr_*68IXM~3Ap*2u&R{Tr0aaXF9GA-lEImD)$z(1sFPqI~ zFoc_s4sC%46#$S0CKL(d5pz`CZk+U-T9%ygQi5j<};oZsi|C9lR9B`RRJrCJVCVSFCsI%~SVB zxckg0j3oUdf`Pah+ub)O!RHyP-R^T-YA-tAHxIDo&g{fIYOLO)xApDntoG*gil0tv&Rgai&c@}I^W@cqCMbw^zJ`{vNhM{nG@xaUHuJp zI@Xw3q3FS2aeA^3_kx} zO5piWS!_6#Z6UmKC@y^v+ITA5%|ur|HPx=Iil1%oL{*ekARhDrQ*iDIZORV zcdwzO+BvsoI_CJ`I>P$`Cihj7CCi4fZL{C8_vN!Ic!jlI_=)^w$wEYv^7&M*YcV4E z%d2SHjsBG_>4Q7Uy^bfEY`w#KHHx=E&m2%v{Dganz2PbeiE_lrM@z;wbQ8xsiv(Zi z>_IcWH%K2iA2NNYRd6NlT)!UtRx4{z?tgMiX$z85eakX)D~*y=_~s(ow%@Q$-!N#B zrSXtC?40d!mGzyXU&;iEEL^V7kS7m)|J-%rnUIDlbslLmkB&JTUgdwKmiF|q6ZtIp z=06y^=Doc z{7zL4Q**?F_HFkSwaWZs%pcZC%x^qZ<-%+2>iYKnTYLO^R`uSC3lB76v~Sy;&#h0K oDt6sybx*(Tn<2@-vhv^Lm(|bF7oGfH!#{!uI~) Date: Sun, 12 Sep 2021 13:22:42 +0200 Subject: [PATCH 0394/1224] Make increase/decrease volume shortcuts changes persistent This change basically mimics what youtube player does when you manually change the volume. --- youtube-scripts.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/youtube-scripts.js b/youtube-scripts.js index 192990a15..0e3c5ea17 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3520,6 +3520,14 @@ ImprovedTube.shortcutIncreaseVolume = function () { if (player) { player.setVolume(player.getVolume() + value); + localStorage['yt-player-volume'] = JSON.stringify({ + data: JSON.stringify({ + volume: player.getVolume(), + muted: player.isMuted(), + expiration: Date.now(), + creation: Date.now() + }) + }) this.showStatus(player.getVolume()); } @@ -3536,6 +3544,14 @@ ImprovedTube.shortcutDecreaseVolume = function () { if (player) { player.setVolume(player.getVolume() - value); + localStorage['yt-player-volume'] = JSON.stringify({ + data: JSON.stringify({ + volume: player.getVolume(), + muted: player.isMuted(), + expiration: Date.now(), + creation: Date.now() + }) + }) this.showStatus(player.getVolume()); } From 0bf76117384ce31855c39496bc0df8ff79b851f9 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 13 Sep 2021 22:17:44 +0300 Subject: [PATCH 0395/1224] Fixed reply bug in comments --- manifest.json | 2 +- youtube-scripts.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index bcc36a76d..164a810ef 100644 --- a/manifest.json +++ b/manifest.json @@ -18,7 +18,7 @@ ] }, "browser_action": { - "default_popup": "index.html" + "default_popup": "popup.html" }, "options_page": "options.html", "content_scripts": [{ diff --git a/youtube-scripts.js b/youtube-scripts.js index 0e3c5ea17..c11b77c41 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3045,7 +3045,7 @@ ImprovedTube.playlistShuffle = function () { ImprovedTube.channelDefaultTab = function (a) { var option = this.storage.channel_default_tab; - if (option && option !== '/') { + if (option && option !== '/' && a.parentNode.id !== 'contenteditable-root') { if (this.regex.channel_home_page.test(a.href)) { if (!a.dataset.itOrigin) { a.dataset.itOrigin = a.href.replace(this.regex.channel_home_page_postfix, ''); From 6054b70d17eb3932d3faa23c004ce22d8bcda57a Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 13 Sep 2021 22:25:05 +0300 Subject: [PATCH 0396/1224] Added "Mixer" functions --- content-scripts.js | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/content-scripts.js b/content-scripts.js index 549e7e11e..b51cf4c60 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -164,7 +164,31 @@ chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { ImprovedTube.elements.player.pauseVideo(); } `); - } + } else if (request.action === 'request-volume') { + var element = document.querySelector('video'); + + if (element) { + sendResponse(element.volume); + } + } else if (request.action === 'set-volume') { + var element = document.querySelector('video'); + + if (element) { + element.volume = request.value / 100; + } + } else if (request.action === 'request-playback-speed') { + var element = document.querySelector('video'); + + if (element) { + sendResponse(element.playbackRate); + } + }else if (request.action === 'set-playback-speed') { + var element = document.querySelector('video'); + + if (element) { + element.playbackRate = request.value; + } + } injectScript('ImprovedTube.pageOnFocus();'); }); From 1b5c8a8eaf695aece8dd4aabc4a7c72a2613ee36 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 13 Sep 2021 22:26:42 +0300 Subject: [PATCH 0397/1224] Unfinished settings update --- index.html | 22 - manifest.json | 2 +- popup.css | 903 +---- popup.js | 10215 ++++++++++++++++++++++++------------------------ satus.css | 1109 +----- satus.js | 2212 +---------- 6 files changed, 5388 insertions(+), 9075 deletions(-) delete mode 100644 index.html diff --git a/index.html b/index.html deleted file mode 100644 index 661818358..000000000 --- a/index.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - ImprovedTube - - - - - - - - - \ No newline at end of file diff --git a/manifest.json b/manifest.json index 164a810ef..30652a32c 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.475", + "version": "3.500", "default_locale": "en", "icons": { "128": "icons/128.png", diff --git a/popup.css b/popup.css index 327905068..39ee84a07 100644 --- a/popup.css +++ b/popup.css @@ -1,138 +1,103 @@ /*-------------------------------------------------------------- ->>> TABLE OF CONTENTS: +>>> STYLES: ---------------------------------------------------------------- +# Document # Header # Main -# Dialog -# Themes - # Default - # Dark - # Night - # Dawn - # Sunset - # Desert - # Plain - # Black --------------------------------------------------------------*/ /*-------------------------------------------------------------- -# HEADER ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# SECTIONS ---------------------------------------------------------------*/ - -.satus-header .satus-section { - flex: 1; -} - - -/*-------------------------------------------------------------- -# BUTTONS +# DOCUMENT --------------------------------------------------------------*/ -.satus-header .satus-button { - width: 36px; - height: 36px; - padding: 6px; -} - -.satus-header .satus-button::before { - border-radius: 50%; +html { + --satus-theme-primary: #ff4158; + --satus-header-background: #fff; + --satus-header-text: #777; + --satus-main-background: #f7f7f6; + --satus-main-text: #777; + --satus-modal-background: #fff; + --satus-modal-text: #777; + --it-category-background: linear-gradient(135deg, #ff4158, #ff001f); + --it-category-shadow: rgba(222, 0, 27, .7); + --it-appearance-shadow-color: #dfdfdf; } /*-------------------------------------------------------------- -# BACK BUTTON +# HEADER --------------------------------------------------------------*/ -.satus-button--back svg { - fill: none; - stroke: currentColor; +.satus-header { + height: 56px; + border-bottom: 1px solid rgba(0, 0, 0, .1); } -body[data-appearance='home'] .satus-button--back { - display: none; +.satus-header .satus-section--align-start>* { + margin-right: 8px; } - -/*-------------------------------------------------------------- -# TITLE ---------------------------------------------------------------*/ - -.satus-text--title { - font-size: 15px; +.satus-header .satus-section--align-end>* { margin-left: 8px; } -html[it-title-version='true'] body[data-appearance='home'] .satus-text--title::after { - font: 700 10px; - margin: 0 0 0 4px; - content: attr(data-version); - opacity: .6; - color: var(--satus-theme-header-text); +.satus-header .satus-button { + width: 40px; + min-width: 40px; + height: 40px; + padding: 8px; + color: inherit; + border-radius: 50%; } - -/*-------------------------------------------------------------- -# RIGHT SECTION ---------------------------------------------------------------*/ - -.satus-section--align-end { - justify-content: flex-end; +.satus-header .satus-button:hover { + cursor: pointer; + background: rgba(0, 0, 0, .04); } -.satus-section--align-end .satus-button+.satus-button { - margin-left: 8px; +.satus-header .satus-button>svg { + stroke: currentcolor; + stroke-linecap: round; + stroke-linejoin: round; + fill: none; } - -/*-------------------------------------------------------------- -# SEARCH ---------------------------------------------------------------*/ - -.satus-button--close-search { +.satus-input--search[type=text] { position: absolute; + right: 112px; display: none; - min-width: 36px; - padding: 8px !important; - right: 52px; + width: calc(100vw - 128px); + height: 36px; + padding-right: 36px; + background: #fff; + box-shadow: 0 0 1px 1px rgb(0 0 0 / 10%); } -.satus-button--close-search::before { - top: 15%; - left: 15%; - width: 70%; - height: 70%; +.satus-input--search:focus { + outline: 4px solid rgba(13, 110, 253, .25); } -.search-field { - display: none; - flex: 1; - padding-right: 36px; - height: 36px; - background: var(--satus-theme-main); - box-shadow: 0 0 1px 1px rgba(0, 0, 0, .1); +.search-mode .satus-input--search { + display: block; } -.search-field:focus { - outline: 4px solid rgba(13,110,253,.25) +.satus-header .satus-button--close-search { + position: absolute; + right: 116px; + display: none; + width: 28px; + min-width: 28px; + height: 28px; + padding: 4px !important; } -body[data-search='true'] .search-field, -body[data-search='true'] .satus-button--close-search { +.search-mode .satus-button--close-search { display: block; } -body[data-search='true'] .satus-section--align-start { - flex: 0; -} - -body[data-search='true'] .search-button, -body[data-search='true'] .satus-text--title, -body[data-search='true'] .satus-button--back { - display: none; +.satus-header .satus-button--close-search>svg { + stroke: none; + fill: currentColor; } .search-results { @@ -141,39 +106,22 @@ body[data-search='true'] .satus-button--back { height: calc(100vh - 48px); } -.search-results .satus-dialog__scrim { +.search-results .satus-modal__scrim { backdrop-filter: none; } -.search-results .satus-dialog__surface { +.search-results .satus-modal__surface { position: absolute; top: 0; - overflow: hidden; + left: 16px; + width: calc(100vw - 128px); + max-width: unset; padding: 0; transform-origin: top; border-top-left-radius: 0; border-top-right-radius: 0; - background-color: var(--satus-theme-main); + background-color: var(--satus-main-background); box-shadow: 0 2px 4px 2px rgba(0, 0, 0, .2); - width: calc(100% - 60px); - left: 8px; - max-width: unset; -} - -.search-results .satus-scrollbar__content { - display: flex; - flex-direction: column; -} - -.search-results .satus-section { - flex-direction: column; - width: calc(100% - 16px); - max-width: 900px; - margin: 8px auto; - padding: 8px 0; - border: 1px solid rgba(0, 0, 0, .1); - border-radius: 8px; - background: var(--satus-theme-section); } .search-results .satus-section>* { @@ -195,12 +143,7 @@ body[data-search='true'] .satus-button--back { margin: 8px auto 0 12px; } - -/*-------------------------------------------------------------- -# VERTICAL MENU ---------------------------------------------------------------*/ - -.satus-dialog--vertical-menu .satus-dialog__surface { +.satus-modal--vertical .satus-modal__surface { position: absolute; top: 8px; right: 8px; @@ -210,16 +153,14 @@ body[data-search='true'] .satus-button--back { transform-origin: right top; } -.satus-dialog--vertical-menu .satus-button, -.satus-dialog--vertical-menu .satus-folder { - width: 100%; - height: 36px; +.satus-modal--vertical .satus-button { + display: flex; padding: 0 16px; - text-align: left; + align-items: center; + height: 36px; } -.satus-dialog--vertical-menu .satus-folder svg, -.satus-dialog--vertical-menu .satus-button svg { +.satus-modal--vertical .satus-button svg { width: 20px; height: 18px; margin: 0 14px 0 0; @@ -228,241 +169,97 @@ body[data-search='true'] .satus-button--back { stroke: var(--satus-theme-primary); } -.satus-dialog--vertical-menu .satus-folder--mixer svg { - height: 20px; -} - -.satus-dialog--vertical-menu .satus-button--github svg { - width: 18px; - height: 18px; -} - /*-------------------------------------------------------------- # MAIN --------------------------------------------------------------*/ -.satus-main { - height: calc(100% - 58px); -} - - -/*-------------------------------------------------------------- -2.0 SECTION ---------------------------------------------------------------*/ - -.satus-main .satus-section--label { - font-size: 17px; - display: block; - width: calc(100% - 16px); - max-width: 900px; - margin: 16px auto 8px; -} - -html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-section:not(.satus-section--footer), -.satus-main__container:not([data-appearance='home']) .satus-section:not(.satus-section--footer) { - display: block; - width: calc(100% - 16px); - max-width: 900px; - margin: 8px auto; - padding: 8px 0; - border: 1px solid rgba(0, 0, 0, .1); - border-radius: 8px; - background: var(--satus-theme-section); -} - -html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-section--message, -.satus-main__container:not([data-appearance='home']) .satus-section--message { - padding-right: 8px; - padding-left: 8px; -} - - -/*-------------------------------------------------------------- -3.0 FOLDER ---------------------------------------------------------------*/ - -.satus-main .satus-folder svg { - width: 20px; - height: 20px; - margin: 0 14px 0 0; - opacity: .75; - stroke: none; - fill: var(--satus-theme-primary); -} - - -/*-------------------------------------------------------------- -4.0 BUTTON ---------------------------------------------------------------*/ - -.satus-main .satus-button { +.satus-section--home { + overflow: hidden; width: 100%; - height: 48px; - padding: 0 16px; - text-align: left; -} - - -/*-------------------------------------------------------------- -5.0 CUSTOM ---------------------------------------------------------------*/ - -#forced-playback-speed+*, -#forced-volume+* { - pointer-events: none; - opacity: .5; -} - -#forced-playback-speed[data-value=true]+*, -#forced-volume[data-value=true]+* { - pointer-events: all; - opacity: 1; -} - - -/*-------------------------------------------------------------- -# HOME ---------------------------------------------------------------*/ - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-section { - margin-top: 16px; + position: relative; } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder { - position: relative; +.satus-section--home .satus-button { + display: flex; flex-direction: column; - width: 70px; - height: 86px; - margin: 0 18px 14px; + width: calc(100% / 3); + height: 96px; + margin: 16px 0 0; padding: 0; - cursor: default; -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder::before { - background-color: transparent; -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder__label { - line-height: 12px; - text-align: center; - pointer-events: none; + cursor: pointer; + align-items: center; } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder:focus, -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder:hover { - background-color: transparent; +.satus-section--home .satus-button:hover { + background: transparent; } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg, -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--shortcut__icon { +.satus-section--home .satus-button> :nth-child(1) { display: block; overflow: visible; width: 28px; height: 28px; - margin: 0 0 5px 0; padding: 16px; - cursor: pointer; transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; opacity: .95; + color: rgba(255, 255, 255, .85); border-radius: 50%; - background: var(--it-category-background); - box-shadow: 0 2px 1px 1px var(--it-category-shadow), 0 3px 5px rgba(0, 0, 0, .35); + background: linear-gradient( 135deg, #ff4158, #ff001f); + box-shadow: 0 2px 1px 1px rgb(222, 0, 27, .7), 0 3px 5px rgb(0, 0, 0, .35); } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg:focus, -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder svg:hover { +.satus-section--home .satus-button:hover> :nth-child(1) { transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; transform: translateY(4px) scale(.975); - box-shadow: 0 1px 1px 0 var(--it-category-shadow), 0 1px 2px rgba(0, 0, 0, .35); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--general svg { - width: 26px; - height: 26px; - padding: 19px 17px 15px 17px; - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--appearance svg { - width: 26px; - height: 26px; - padding: 19px 17px 15px 17px; - fill: transparent; - stroke: rgba(255, 255, 255, .85); -} - -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--themes svg { - padding: 17px 16px 15px 16px; - fill: transparent; - stroke: rgba(255, 255, 255, .85); + box-shadow: 0 1px 1px 0 rgb(222, 0, 27, .7), 0 1px 2px rgba(0, 0, 0, .35); } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--player svg { - width: 26px; - height: 26px; - padding: 19px 15px 15px 19px; - fill: transparent; - stroke: rgba(255, 255, 255, .85); +.satus-section--home .satus-button> :nth-child(2) { + overflow: hidden; + margin: 8px 0 0; + white-space: nowrap; + text-overflow: ellipsis; } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--playlist svg { - padding: 17px 16px 15px 16px; - fill: transparent; - stroke: rgba(255, 255, 255, .85); +.satus-button--general svg { + position: relative; } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--channel svg { - fill: transparent; - stroke: rgba(255, 255, 255, .85); +.satus-button--appearance svg { + position: relative; + left: 1px; + top: 1px; } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--shortcut svg { - width: 26px; - height: 26px; - padding: 19px 17px 15px 17px; - fill: transparent; - stroke: rgba(255, 255, 255, .85); +.satus-button--themes svg { + position: relative; } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--mixer svg { - padding: 17px 16px 15px 16px; - fill: transparent; - stroke: rgba(255, 255, 255, .85); +.satus-button--player svg { + position: relative; + left: 2px; + top: 1px; } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--blacklist svg { - width: 26px; - height: 26px; - padding: 18px 17px 16px 17px; - fill: transparent; - stroke: rgba(255, 255, 255, .85); +.satus-button--playlist svg { + position: relative; + top: 1px; } -html:not([it-improvedtube-home='list']) .satus-main__container[data-appearance='home'] .satus-folder--analyzer svg { - width: 26px; - height: 26px; - padding: 18px 17px 16px 17px; - fill: transparent; - stroke: rgba(255, 255, 255, .85); +.satus-button--shortcuts svg { + position: relative; + top: 1px; } -html[it-improvedtube-home='list'] .satus-main__container[data-appearance='home'] .satus-folder svg { - fill: transparent; - stroke: var(--satus-theme-primary); +.satus-button--blacklist svg { + position: relative; + top: 1px; } -html[it-it-general='false'] .satus-folder--general, -html[it-it-appearance='false'] .satus-folder--appearance, -html[it-it-themes='false'] .satus-folder--themes, -html[it-it-player='false'] .satus-folder--player, -html[it-it-playlist='false'] .satus-folder--playlist, -html[it-it-channel='false'] .satus-folder--channel, -html[it-it-shortcuts='false'] .satus-folder--shortcut, -html[it-it-blacklist='false'] .satus-folder--blacklist, -html[it-it-analyzer='false'] .satus-folder--analyzer { - display: none; +.satus-button--analyzer svg { + position: relative; + top: 1px; } @@ -470,7 +267,12 @@ html[it-it-analyzer='false'] .satus-folder--analyzer { # APPEARANCE --------------------------------------------------------------*/ -.satus-main__container[data-appearance='appearance'] .satus-folder { +.satus-section--appearance { + width: 100%; + height: 100%; +} + +.satus-section--appearance .satus-button { position: absolute; box-sizing: border-box; padding: 0; @@ -485,28 +287,28 @@ html[it-it-analyzer='false'] .satus-folder--analyzer { align-items: center; } -.satus-main__container[data-appearance='appearance'] .satus-folder:hover { +.satus-section--appearance .satus-button:hover { z-index: 9; transition-duration: .25s; transform: scale(1.03) translate(-8px, -4px); box-shadow: 1px 1px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 2px 2px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 3px 3px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 4px 4px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 5px 6px 4px 0 rgba(0, 0, 0, .1); } -.satus-main__container[data-appearance='appearance'] .satus-folder--header { +.satus-section--appearance .satus-button--header { top: 16px; left: 16px; width: calc(100% - 32px); height: 40px; min-height: auto; - color: var(--satus-theme-dialog-text); - background-color: var(--satus-theme-dialog); + color: var(--satus-modal-text); + background-color: var(--satus-modal-background); } -.satus-main__container[data-appearance='appearance'] .satus-folder--header:hover { +.satus-section--appearance .satus-button--header:hover { transform: scale(1.03) translate(-9px, -4px); } -.satus-main__container[data-appearance='appearance'] .satus-folder--player { +.satus-section--appearance .satus-button--player { top: 64px; left: 16px; width: calc(70% - 32px); @@ -517,62 +319,62 @@ html[it-it-analyzer='false'] .satus-folder--analyzer { background-color: #444; } -.satus-main__container[data-appearance='appearance'] .satus-folder--player .label { +.satus-section--appearance .satus-button--player .label { color: #fff; } -.satus-main__container[data-appearance='appearance'] .satus-folder--player:hover { +.satus-section--appearance .satus-button--player:hover { transform: scale(1.03) translate(-7px, -4px); box-shadow: 1px 1px 0 0 #333, 2px 2px 0 0 #333, 3px 3px 0 0 #333, 4px 4px 0 0 #333, 5px 6px 4px 0 rgba(0, 0, 0, .1); } -.satus-main__container[data-appearance='appearance'] .satus-folder--details { +.satus-section--appearance .satus-button--details { top: 168px; left: 16px; width: calc(70% - 32px); height: 56px; min-height: auto; - color: var(--satus-theme-dialog-text); - background-color: var(--satus-theme-dialog); + color: var(--satus-modal-text); + background-color: var(--satus-modal-background); } -.satus-main__container[data-appearance='appearance'] .satus-folder--description { +.satus-section--appearance .satus-button--description { top: 13.5rem; left: 1rem; width: calc(70% - 2rem); height: 3.5rem; min-height: 3.5rem; - color: var(--satus-theme-dialog-text); - background-color: var(--satus-theme-dialog); + color: var(--satus-modal-text); + background-color: var(--satus-modal-background); } -.satus-main__container[data-appearance='appearance'] .satus-folder--comments { +.satus-section--appearance .satus-button--comments { top: 232px; left: 16px; width: calc(70% - 32px); height: 80px; min-height: auto; - color: var(--satus-theme-dialog-text); - background-color: var(--satus-theme-dialog); + color: var(--satus-modal-text); + background-color: var(--satus-modal-background); } -.satus-main__container[data-appearance='appearance'] .satus-folder--footer { +.satus-section--appearance .satus-button--footer { top: 320px; left: 16px; width: calc(70% - 32px); height: 64px; min-height: auto; - color: var(--satus-theme-dialog-text); - background-color: var(--satus-theme-dialog); + color: var(--satus-modal-text); + background-color: var(--satus-modal-background); } -.satus-main__container[data-appearance='appearance'] .satus-folder--sidebar { +.satus-section--appearance .satus-button--sidebar { top: 64px; left: calc(70% - 8px); width: calc(30% - 8px); height: 160px; - color: var(--satus-theme-dialog-text); - background-color: var(--satus-theme-dialog); + color: var(--satus-modal-text); + background-color: var(--satus-modal-background); } @@ -580,26 +382,14 @@ html[it-it-analyzer='false'] .satus-folder--analyzer { # THEMES --------------------------------------------------------------*/ -.satus-main__container[data-appearance='themes'] .satus-switch:first-child { - margin-top: 16px; -} - -.satus-main__container[data-appearance='themes'] .satus-switch:last-child { - margin-bottom: 16px; -} - -.satus-main__container[data-appearance='themes'] .satus-switch { +.satus-section--themes .satus-switch { + font-weight: 600; width: calc(100% - 16px); max-width: 900px; height: 80px; margin: 8px auto; + color: #fff; border-radius: 8px; -} - -.satus-main__container[data-appearance='themes'] .satus-switch__label { - font-size: 15px; - font-weight: 500; - color: #eee; text-shadow: 0 1px 3px rgba(0, 0, 0, .7); } @@ -790,84 +580,6 @@ html[it-it-analyzer='false'] .satus-folder--analyzer { } -/*-------------------------------------------------------------- -# BLACKLIST ---------------------------------------------------------------*/ - -.satus-section.satus-section--blacklist { - position: relative; - overflow: hidden; - flex-direction: column; - width: calc(100% - 32px); - height: 116px; - margin: 8px 16px 0; - transition: opacity .25s; - opacity: 1; - border-radius: 10px; - background-color: #000; - background-position: center; - background-size: cover; - flex: unset; - align-items: flex-start; -} - -.satus-section.satus-section--blacklist.removing { - opacity: 0; -} - -.satus-section.satus-section--blacklist::before { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - margin: 0; - content: ''; - background: rgba(0, 0, 0, .5); -} - -.satus-section.satus-section--blacklist>.label { - font-size: 16px; - font-weight: 700; - position: absolute; - z-index: 1; - bottom: 28px; - text-transform: uppercase; - opacity: 1; - color: #fff; -} - -.satus-section.satus-section--blacklist::after { - position: absolute; - z-index: 1; - bottom: 16px; - left: 16px; - content: attr(data-label); - color: rgba(255, 255, 255, .5); -} - -.satus-section.satus-section--blacklist>.satus-section { - position: absolute; - z-index: 999; - bottom: 0; - visibility: hidden; - width: 100%; - margin: 0; - padding: 0; - transition: .15s; - opacity: 0; - border: none; - border-radius: 0; - background: rgba(255, 255, 255, .95); - justify-content: center; -} - -.satus-section.satus-section--blacklist:hover>.satus-section { - visibility: visible; - opacity: 1; -} - - /*-------------------------------------------------------------- # ANALYZER --------------------------------------------------------------*/ @@ -876,6 +588,7 @@ html[it-it-analyzer='false'] .satus-folder--analyzer { font-size: 13px; display: flex; box-sizing: border-box; + height: auto; margin: 16px 0 0; padding: 0 16px; background: transparent !important; @@ -892,6 +605,7 @@ html[it-it-analyzer='false'] .satus-folder--analyzer { .analyzer-container { box-sizing: border-box; + height: auto; margin: 8px 0 16px; padding: 16px; background: var(--background-0) !important; @@ -990,12 +704,11 @@ html[it-it-analyzer='false'] .satus-folder--analyzer { color: #ff9800; } - /*-------------------------------------------------------------- # MIXER --------------------------------------------------------------*/ -.satus-main__container[data-appearance='mixer'] .satus-section--mixer { +.satus-section--mixer { position: relative; overflow: hidden; flex-direction: column; @@ -1008,7 +721,7 @@ html[it-it-analyzer='false'] .satus-folder--analyzer { align-items: flex-start; } -.satus-main__container[data-appearance='mixer'] .satus-section--mixer::before { +.satus-section--mixer::before { position: absolute; top: 0; left: 0; @@ -1018,7 +731,22 @@ html[it-it-analyzer='false'] .satus-folder--analyzer { background: rgba(0, 0, 0, .5); } -.satus-main__container[data-appearance='mixer'] .satus-section--mixer>.satus-section { +.satus-section--mixer .satus-h1 { + color: #fff; + position: absolute; + font-size: 14px; + text-shadow: 0 0 1px rgb(0,0,0,.4); + bottom: 0; + left: 0; + transition: 200ms; + margin: 16px; +} + +.satus-section--mixer:hover .satus-h1 { + opacity: 0; +} + +.satus-section--mixer>.satus-section { position: absolute; bottom: 0; visibility: hidden; @@ -1030,20 +758,21 @@ html[it-it-analyzer='false'] .satus-folder--analyzer { opacity: 0; border: unset; border-radius: unset; + background: #fff; } -.satus-main__container[data-appearance='mixer'] .satus-section--mixer:hover>.satus-section { +.satus-section--mixer:hover>.satus-section { visibility: visible; transform: translateY(0); opacity: 1; } -.satus-main__container[data-appearance='mixer'] .satus-section--mixer.noconnection>.satus-section>div { +.satus-section--mixer.noconnection>.satus-section>div { visibility: hidden; pointer-events: none; } -.satus-main__container[data-appearance='mixer'] .satus-section--mixer.noconnection>.satus-section::after { +.satus-section--mixer.noconnection>.satus-section::after { font-size: 18px; font-weight: 500; position: absolute; @@ -1053,286 +782,4 @@ html[it-it-analyzer='false'] .satus-folder--analyzer { transform: translateY(-50%); text-align: center; opacity: .8; -} - -.satus-main__container[data-appearance='about'] .satus-text:not(.satus-section--label) { - display: flex; - box-sizing: border-box; - width: 100%; - min-height: 48px; - padding: 0 16px; - justify-content: space-between; - align-items: center; -} - -.satus-main__container[data-appearance='about'] .satus-text__value { - text-align: right; - opacity: .7; -} - - -/*-------------------------------------------------------------- -# FIREFOX BUTTON ---------------------------------------------------------------*/ - -.satus-firefox { - height: auto; - margin: 20px 16px; - background: transparent; - justify-content: center; -} - -.satus-firefox::before { - content: none; -} - - -/*-------------------------------------------------------------- -# INFO ---------------------------------------------------------------*/ - -.satus-section--info { - position: absolute; - z-index: 99; - bottom: 16px; - left: 16px; - display: flex; - width: calc(100% - 32px) !important; - justify-content: space-between; -} - -.satus-section--info .satus-button { - font-weight: 700; - overflow: hidden; - width: auto; - height: 28px; - padding: 0 10px; - opacity: .5; - color: #fff; - border-radius: 6px; - background: var(--satus-theme-primary); -} - -.satus-section--info .satus-button:hover { - opacity: 1; -} - -html[it-improvedtube-home='list'] .satus-section--info { - position: static !important; - display: flex !important; - border: none !important; - background: transparent !important; -} - - -/*-------------------------------------------------------------- -# DIALOG ---------------------------------------------------------------*/ - -.satus-dialog--confirm .satus-section { - display: flex; - background-color: transparent; -} - -.satus-dialog--confirm .satus-text { - display: block; - box-sizing: border-box; - padding: 0 16px 8px; -} - -.satus-dialog--confirm .satus-button { - font-weight: 500; - overflow: hidden; - height: 28px; - min-height: 28px; - margin-right: 2px; - padding: 4px 8px; - text-transform: uppercase; - color: #f96754; - border-radius: 4px; -} - - -/*-------------------------------------------------------------- -# THEMES ---------------------------------------------------------------*/ - - -/*-------------------------------------------------------------- -# DEFAULT ---------------------------------------------------------------*/ - -body { - --satus-theme-primary: #ff4158; - --it-category-background: linear-gradient(135deg, #ff4158, #ff001f); - --it-category-shadow: rgba(222, 0, 27, .7); - --it-appearance-shadow-color: #dfdfdf; -} - - -/*-------------------------------------------------------------- -# DARK ---------------------------------------------------------------*/ - -body[data-theme=dark] { - --it-appearance-shadow-color: #393e46; - --satus-theme-primary: #ff4158; - --satus-theme-dialog: #191b1f; - --satus-theme-dialog-text: #b5b5b5; - --satus-theme-header: #1c2027; - --satus-theme-header-text: #b5b5b5; - --satus-theme-main: #121316; - --satus-theme-main-text: #bfbfbf; - --satus-theme-section: #191b1f; - --satus-theme-button: transparent; - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - --satus-theme-tooltip: rgba(10, 10, 10, .7); - --satus-theme-ripple: rgba(255, 255, 255, .04); - --satus-theme-tabs-background: #17191c; - --satus-theme-tabs-border: #22252a; - --satus-theme-hover: rgba(255,255,255,.07); - --satus-theme-dialog-shadow: inset 0 -1px 1px 1px rgb(113,123,142,.1), 0 2px 6px rgb(101,119,154,.1); -} - - -/*-------------------------------------------------------------- -# NIGHT ---------------------------------------------------------------*/ - -body[data-theme=night] { - --it-appearance-shadow-color: #558bf6; - --it-category-background: linear-gradient(135deg, #2e5cb8, #234790); - --it-category-shadow: rgb(41, 82, 163, .7); - --satus-theme-primary: #9ebdfa; - --satus-theme-dialog: #24478f; - --satus-theme-dialog-text: #fafafa; - --satus-theme-header: #24478f; - --satus-theme-header-text: #fafafa; - --satus-theme-main: #142952; - --satus-theme-main-text: #fafafa; - --satus-theme-section: #1f3d7a; - --satus-theme-button: transparent; - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - --satus-theme-tooltip: rgba(10, 10, 10, .7); - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*-------------------------------------------------------------- -# DAWN ---------------------------------------------------------------*/ - -body[data-theme=dawn] { - --it-appearance-shadow-color: #e86e30; - --it-category-background: linear-gradient(135deg, #e98f63, #e27036); - --it-category-shadow: rgb(226, 112, 54, .7); - --satus-theme-primary: #e2367e; - --satus-theme-dialog: #ed8e5e; - --satus-theme-dialog-text: #fafafa; - --satus-theme-header: #e98f63; - --satus-theme-header-text: #fafafa; - --satus-theme-main: #e23681; - --satus-theme-main-text: #eee; - --satus-theme-section: rgb(255 255 255 / 20%); - --satus-theme-button: transparent; - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - --satus-theme-tooltip: rgba(10, 10, 10, .7); - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*-------------------------------------------------------------- -# SUNSET ---------------------------------------------------------------*/ - -body[data-theme=sunset] { - --it-appearance-shadow-color: #bf404a; - --it-category-background: linear-gradient(135deg, #bc4e53, #94383d); - --it-category-shadow: rgb(129, 49, 53, .7); - --satus-theme-primary: #cc666e; - --satus-theme-dialog: #a96165; - --satus-theme-dialog-text: #fafafa; - --satus-theme-header: #af5a5e; - --satus-theme-header-text: #fafafa; - --satus-theme-main: #2f3364; - --satus-theme-main-text: #eee; - --satus-theme-section: rgb(138, 92, 96, .5); - --satus-theme-button: transparent; - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - --satus-theme-tooltip: rgba(10, 10, 10, .7); - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*-------------------------------------------------------------- -# DESERT ---------------------------------------------------------------*/ - -body[data-theme=desert] { - --it-appearance-shadow-color: #5e9aed; - --it-category-background: linear-gradient(135deg, #ff8833, #d15700); - --it-category-shadow: rgb(230 96 0 / 70%); - --satus-theme-primary: #ff8833; - --satus-theme-dialog: #8cb7f2; - --satus-theme-dialog-text: #fafafa; - --satus-theme-header: #8cb7f2; - --satus-theme-header-text: #fafafa; - --satus-theme-main: #e6bf4c; - --satus-theme-main-text: #4d4d4d; - --satus-theme-section: #f5e0a3; - --satus-theme-button: transparent; - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - --satus-theme-tooltip: rgba(10, 10, 10, .7); - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*-------------------------------------------------------------- -# PLAIN ---------------------------------------------------------------*/ - -body[data-theme=plain] { - --it-appearance-shadow-color: #d7995b; - --it-category-background: linear-gradient(135deg, #abceb8, #609f7a); - --it-category-shadow: #70a987b3; - --satus-theme-primary: #badec9; - --satus-theme-dialog: #abceb8; - --satus-theme-dialog-text: #404040; - --satus-theme-header: #9fc6af; - --satus-theme-header-text: #404040; - --satus-theme-main: #dea975; - --satus-theme-main-text: #404040; - --satus-theme-section: #e2b88d; - --satus-theme-button: transparent; - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - --satus-theme-tooltip: rgba(10, 10, 10, .7); - --satus-theme-ripple: rgba(255, 255, 255, .04); -} - - -/*-------------------------------------------------------------- -# BLACK ---------------------------------------------------------------*/ - -body[data-theme=black] { - --it-appearance-shadow-color: #222; - --satus-theme-primary: #ff4158; - --satus-theme-dialog: #222; - --satus-theme-dialog-text: #fafafa; - --satus-theme-header: #222; - --satus-theme-header-text: #fafafa; - --satus-theme-main: #111; - --satus-theme-main-text: #eee; - --satus-theme-section: #222; - --satus-theme-button: transparent; - --satus-theme-scrollbar: rgba(255, 255, 255, .2); - --satus-theme-scrollbar-focus: rgba(255, 255, 255, .4); - --satus-theme-tooltip: rgba(10, 10, 10, .7); - --satus-theme-ripple: rgba(255, 255, 255, .04); -} +} \ No newline at end of file diff --git a/popup.js b/popup.js index 47088f7d9..c9d1c275f 100644 --- a/popup.js +++ b/popup.js @@ -1,5236 +1,5441 @@ /*-------------------------------------------------------------- ->>> TABLE OF CONTENTS: +>>> POPUP: ---------------------------------------------------------------- -# Header - # Mixer - # Settings - # Active features -# Main - # General - # Appearance - # Themes - # Player - # Playlist - # Channel - # Shortcuts - # Blacklist - # Analyzer -# Export data -# Import data +# Skeleton # Initialization --------------------------------------------------------------*/ /*-------------------------------------------------------------- -# HEADER +# SKELETON --------------------------------------------------------------*/ var skeleton = { + component: 'base', + header: { - type: 'header', + component: 'header', section_start: { - type: 'section', + component: 'section', class: 'satus-section--align-start', - button_back: { - type: 'button', - class: 'satus-button--back', - before: '', - onclick: function () { - if (document.querySelector('.satus-dialog__scrim')) { - document.querySelector('.satus-dialog__scrim').click(); - } else { - document.querySelector('.satus-main').back(); + back: { + component: 'button', + attr: { + 'hidden': 'true' + }, + on: { + click: 'layers.back' + }, + pluviam: true, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'stroke-width': '1.5' + }, + + path: { + component: 'path', + attr: { + 'd': 'M14 18l-6-6 6-6' + } } } }, title: { - type: 'text', - class: 'satus-text--title', - innerText: 'ImprovedTube', - dataset: { - version: chrome && chrome.runtime && chrome.runtime.getManifest ? chrome.runtime.getManifest().version : '' - } + component: 'span', + text: 'ImprovedTube' } }, section_end: { - type: 'section', + component: 'section', class: 'satus-section--align-end', search_field: { - type: 'text-field', - class: 'search-field', - placeholder: 'search', - autofocus: true, - oninput: function (event) { - var value = this.value.trim(); - - if (value.length > 0) { - satus.search(value, skeleton, function (results) { - var parent = document.querySelector('.search-results .satus-scrollbar__content'), - skeleton = { - type: 'dialog', - class: 'search-results' - }; - - for (var key in results) { - results[key].type = 'section'; - - skeleton[key + '_label'] = { - type: 'text', - class: 'satus-section--label', - label: key - }; - - skeleton[key] = results[key]; + component: 'input', + class: 'satus-input--search', + attr: { + 'type': 'text', + 'placeholder': 'search', + 'autofocus': true + }, + on: { + blur: function () { + if (this.value.length === 0) { + var results = document.querySelector('.search-results'); + + if (results) { + results.close(); } - if (Object.keys(results).length === 0) { - if (parent) { - document.querySelector('.search-results').remove(); - } - } else { - if (parent) { - while (parent.children[0]) { - parent.children[0].remove(); - } - - delete skeleton.type; + this.base.classList.remove('search-mode'); + } + }, + keydown: function (event) { + var value = this.value, + key = event.key; - satus.render(skeleton, parent); - } else { - satus.render(skeleton); + setTimeout(function () { + if (value.length === 0 && key === 'Backspace') { + var results = document.querySelector('.search-results'); - document.querySelector('.search-results .satus-dialog__scrim').addEventListener('click', function () { - document.body.dataset.search = false; - }); + if (results) { + results.close(); } + + this.base.classList.remove('search-mode'); } - }, true); - } else { - var results = document.querySelector('.search-results'); + }); + }, + input: function (event) { + var value = this.value.trim(); - if (results) { - results.close(); - } - } - }, - onblur: function () { - if (this.value.length === 0) { - document.body.dataset.search = false; - } - }, - onkeydown: function (event) { - var value = this.value, - key = event.key; + if (value.length > 0) { + satus.search(value, skeleton, function (results) { + var parent = document.querySelector('.search-results'), + skeleton = { + component: 'modal', + class: 'search-results' + }; + + for (var key in results) { + results[key].component = 'section'; + results[key].class = 'satus-section--card'; - setTimeout(function () { - if (value.length === 0 && key === 'Backspace') { + skeleton[key + '_label'] = { + component: 'span', + class: 'satus-section--label', + text: key + }; + + skeleton[key] = results[key]; + } + + if (Object.keys(results).length === 0) { + if (parent) { + document.querySelector('.search-results').remove(); + } + } else { + if (parent) { + var parent = document.querySelector('.search-results .satus-modal__surface'); + + while (parent.children[0]) { + parent.children[0].remove(); + } + + delete skeleton.component; + + satus.render(skeleton, parent); + } else { + satus.render(skeleton); + + document.querySelector('.search-results .satus-modal__scrim').addEventListener('click', function () { + var results = document.querySelector('.search-results'); + + if (results) { + results.close(); + } + + document.querySelector('.search-results').base.classList.remove('search-mode'); + }); + } + } + }, true); + } else { var results = document.querySelector('.search-results'); if (results) { results.close(); } - - document.body.dataset.search = false; } - }); + } } }, search_close: { - type: 'button', + component: 'button', class: 'satus-button--close-search', - before: '', - onclick: function () { - var results = document.querySelector('.search-results'); + on: { + click: function () { + var results = document.querySelector('.search-results'); + + if (results) { + results.close(); + } - if (results) { - results.close(); + this.base.classList.remove('search-mode'); } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'stroke-width': 1.75 + }, - document.body.dataset.search = false; + path: { + component: 'path', + attr: { + 'd': 'M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z' + } + } } }, - button_search: { - type: 'button', - class: 'search-button', - icon: '', - onclick: function () { - var search_field = document.querySelector('.search-field'); + search: { + component: 'button', + on: { + click: function () { + this.base.classList.toggle('search-mode'); - search_field.value = ''; + this.base.skeleton.header.section_end.search_field.rendered.focus(); + } + }, + pluviam: true, - document.body.dataset.search = true; + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'stroke-width': 1.25 + }, - setTimeout(function () { - search_field.focus(); - }); + circle: { + component: 'circle', + attr: { + 'cx': 11, + 'cy': 10.5, + 'r': 6 + } + }, + path: { + component: 'path', + attr: { + 'd': 'M20 20l-4-4' + } + } } }, - button_vert: { - type: 'button', - class: 'vert-button', - icon: '', - onClickRender: { - type: 'dialog', - class: 'satus-dialog--vertical-menu' - } - } - } - } -}; - -window.addEventListener('keypress', function (event) { - if ( - document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].indexOf(document.activeElement.tagName) !== -1 || - event.target.isContentEditable || - document.querySelector('.satus-dialog') - ) { - return false; - } - - if (event.key === 'f' && document.body.dataset.search === 'false') { - var search_field = document.querySelector('.search-field'); + menu: { + component: 'button', + on: { + click: { + component: 'modal', + class: 'satus-modal--vertical', + + active_features: { + component: 'button', + on: { + click: function () { + var component = this; + + satus.search('', skeleton, function (results) { + var new_skeleton = { + component: 'section', + class: 'satus-section--card' + }; + + for (var key in results) { + var result = results[key], + value = satus.storage.get(key); + + if (satus.isset(value) && value !== result.value) { + new_skeleton[key] = result; + } + } - search_field.value = ''; + skeleton.layers.rendered.path.push(new_skeleton); + skeleton.layers.rendered.open(); - document.body.dataset.search = true; + document.querySelector('.satus-modal__scrim').click(); + }); + } + }, - setTimeout(function () { - search_field.focus(); - }); - } -}); + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'stroke-width': 1.75 + }, + path1: { + component: 'path', + attr: { + 'd': 'M22 11.08V12a10 10 0 11-5.93-9.14' + } + }, + path2: { + component: 'path', + attr: { + 'd': 'M22 4L12 14.01l-3-3' + } + } + }, + label: { + component: 'span', + text: 'activeFeatures' + } + }, + settings: { + component: 'button', + on: { + click: function () { + skeleton.layers.rendered.path.push({ + section_1: { + component: 'section', + class: 'satus-section--card', + + developer_options: { + component: 'button', + on: { + click: { + custom_js_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'customJs' + }, + custom_js_section: { + component: 'section', + class: 'satus-section--card', + custom_js: { + component: 'input', + attr: { + type: 'text' + }, + on: { + render: function () { + this.value = satus.storage.get('custom_js') || ''; + }, + input: function () { + satus.storage.set('custom_js', this.value); + } + } + } + }, + custom_css_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'customCss' + }, + custom_css_section: { + component: 'section', + class: 'satus-section--card', + custom_css: { + component: 'input', + attr: { + type: 'text' + }, + on: { + render: function () { + this.value = satus.storage.get('custom_css') || ''; + }, + input: function () { + satus.storage.set('custom_css', this.value); + } + } + } + }, + google_api_key_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'googleApiKey' + }, + google_api_key_section: { + component: 'section', + class: 'satus-section--card', + google_api_key: { + component: 'input', + attr: { + type: 'text' + }, + on: { + render: function () { + this.value = typeof satus.storage.get('google-api-key') === 'string' && satus.storage.get('google-api-key').length > 0 ? satus.storage.get('google-api-key') : 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; + }, + input: function () { + satus.storage.set('google-api-key', typeof satus.storage.get('google-api-key') === 'string' && satus.storage.get('google-api-key').length > 0 ? satus.storage.get('google-api-key') : 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'); + } + } + } + } + } + }, + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'currentColor' + }, + + path: { + component: 'path', + attr: { + d: 'M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z' + } + } + }, + label: { + component: 'span', + text: 'developerOptions' + } + }, + }, -/*-------------------------------------------------------------- -# ACTIVE FEATURES ---------------------------------------------------------------*/ + section_2: { + component: 'section', + class: 'satus-section--card', + + appearance: { + component: 'button', + on: { + click: { + section_label_1: { + component: 'span', + class: 'satus-section--label', + text: 'general' + }, + section_1: { + component: 'section', + class: 'satus-section--card', + header: { + component: 'button', + text: 'header', + on: { + click: { + section: { + component: 'section', + class: 'satus-section--card', + + title_version: { + component: 'switch', + text: 'version' + } + } + } + } + }, + home: { + component: 'button', + text: 'home', + on: { + click: { + section_1: { + component: 'section', + class: 'satus-section--card', + + improvedtube_home: { + component: 'select', + text: 'style', + options: [{ + text: 'bubbles', + value: 'bubbles' + }, { + text: 'list', + value: 'list' + }] + } + }, + section_label_2: { + component: 'span', + class: 'satus-section--label', + text: 'categories' + }, + section_2: { + component: 'section', + class: 'satus-section--card', + + it_general: { + component: 'switch', + text: 'general', + value: true + }, + it_appearance: { + component: 'switch', + text: 'appearance', + value: true + }, + it_themes: { + component: 'switch', + text: 'themes', + value: true + }, + it_player: { + component: 'switch', + text: 'player', + value: true + }, + it_playlist: { + component: 'switch', + text: 'playlist', + value: true + }, + it_channel: { + component: 'switch', + text: 'channel', + value: true + }, + it_shortcuts: { + component: 'switch', + text: 'shortcuts', + value: true + }, + it_mixer: { + component: 'switch', + text: 'mixer', + value: true + }, + it_analyzer: { + component: 'switch', + text: 'analyzer', + value: true + }, + it_blacklist: { + component: 'switch', + text: 'blacklist', + value: true + } + } + } + } + } + }, + section_label_2: { + component: 'span', + class: 'satus-section--label', + text: 'icons' + }, + section_2: { + component: 'section', + class: 'satus-section--card', + + improvedtube_youtube_icon: { + text: 'improvedtubeIconOnYoutube', + component: 'select', + options: [{ + text: 'disabled', + value: 'disabled' + }, { + text: 'youtubeHeaderLeft', + value: 'header_left' + }, { + text: 'youtubeHeaderRight', + value: 'header_right' + }, { + text: 'sidebar', + value: 'sidebar' + }, { + text: 'draggable', + value: 'draggable' + }, { + text: 'belowPlayer', + value: 'below_player' + }] + }, + improvedtube_browser_icon: { + text: 'improvedtubeIconInBrowser', + component: 'select', + + options: [{ + text: 'onlyActiveOnYoutube', + value: 'youtube' + }, { + text: 'alwaysActive', + value: 'always' + }] + } + } + } + }, + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'currentColor' + }, + + path: { + component: 'path', + attr: { + d: 'M7 16c.6 0 1 .5 1 1a2 2 0 0 1-2 2h-.5a4 4 0 0 0 .5-2c0-.6.5-1 1-1M18.7 3a1 1 0 0 0-.7.3l-9 9 2.8 2.7 9-9c.3-.4.3-1 0-1.4l-1.4-1.3a1 1 0 0 0-.7-.3zM7 14a3 3 0 0 0-3 3c0 1.3-1.2 2-2 2 1 1.2 2.5 2 4 2a4 4 0 0 0 4-4 3 3 0 0 0-3-3z' + } + } + }, + label: { + component: 'span', + text: 'appearance' + } + }, + languages: { + component: 'button', + + on: { + click: { + section: { + component: 'section', + class: 'satus-section--card', + + language: { + text: 'improvedtubeLanguage', + component: 'select', + on: { + change: function (name, value) { + satus.memory.set('locale', {}); + + satus.locale(function () { + document.querySelector('.satus-main__container').innerHTML = ''; + + document.querySelector('.satus-header__title').innerText = satus.locale.getMessage('languages'); + document.querySelector('#search').placeholder = satus.locale.getMessage('search'); + + satus.render(document.querySelector('.satus-main__container'), skeleton.main.section.settings.section.languages); + }); + } + }, + options: [{ + value: 'en', + text: 'English' + }, { + value: 'ko', + text: '한국어' + }, { + value: 'es', + text: 'Español (España)' + }, { + value: 'ru', + text: 'Русский' + }, { + value: 'de', + text: 'Deutsch' + }, { + value: 'zh_TW', + text: '中文 (繁體)' + }, { + value: 'pt_PT', + text: 'Português' + }, { + value: 'pt_BR', + text: 'Português (Brasil)' + }, { + value: 'zh_CN', + text: '中文 (简体)' + }, { + value: 'fr', + text: 'Français' + }, { + value: 'ja', + text: '日本語' + }, { + value: 'tr', + text: 'Türkçe' + }, { + value: 'tr', + text: 'Italiano' + }, { + value: 'nl', + text: 'Nederlands' + }, { + value: 'ar', + text: 'العربية' + }, { + value: 'id', + text: 'Bahasa Indonesia' + }, { + value: 'nb', + text: 'Norsk' + }, { + value: 'nb_NO', + text: 'Norsk (Bokmål)' + }, { + value: 'el', + text: 'Ελληνικά' + }, { + value: 'bn', + text: 'বাংলা' + }, { + value: 'hin', + text: 'हिन्दी' + }, { + value: 'sk', + text: 'Slovenčina' + }, { + value: 'pl', + text: 'Polski' + }] + }, + youtube_language: { + text: 'youtubeLanguage', + component: 'select', + options: [{ + value: 'default', + text: 'default' + }, + { + value: "en", + text: "English" + }, { + value: "es", + text: "Español (España)" + }, { + value: "es-419", + text: "Español (Latinoamérica)" + }, { + value: "es-US", + text: "Español (US)" + }, { + value: "ru", + text: "Русский" + }, { + value: "de", + text: "Deutsch" + }, { + value: "pt-PT", + text: "Português" + }, { + value: "pt", + text: "Português (Brasil)" + }, { + value: "fr", + text: "Français" + }, { + value: "pl", + text: "Polski" + }, { + value: "ja", + text: "日本語" + }, { + value: "af", + text: "Afrikaans" + }, { + value: "az", + text: "Azərbaycan" + }, { + value: "id", + text: "Bahasa Indonesia" + }, { + value: "ms", + text: "Bahasa Malaysia" + }, { + value: "bs", + text: "Bosanski" + }, { + value: "ca", + text: "Català" + }, { + value: "cs", + text: "Čeština" + }, { + value: "da", + text: "Dansk" + }, { + value: "et", + text: "Eesti" + }, { + value: "eu", + text: "Euskara" + }, { + value: "fil", + text: "Filipino" + }, { + value: "fr-CA", + text: "Français (Canada)" + }, { + value: "gl", + text: "Galego" + }, { + value: "hr", + text: "Hrvatski" + }, { + value: "zu", + text: "IsiZulu" + }, { + value: "is", + text: "Íslenska" + }, { + value: "it", + text: "Italiano" + }, { + value: "sw", + text: "Kiswahili" + }, { + value: "lv", + text: "Latviešu valoda" + }, { + value: "lt", + text: "Lietuvių" + }, { + value: "hu", + text: "Magyar" + }, { + value: "nl", + text: "Nederlands" + }, { + value: "no", + text: "Norsk" + }, { + value: "uz", + text: "O‘zbek" + }, { + value: "ro", + text: "Română" + }, { + value: "sq", + text: "Shqip" + }, { + value: "sk", + text: "Slovenčina" + }, { + value: "sl", + text: "Slovenščina" + }, { + value: "sr-Latn", + text: "Srpski" + }, { + value: "fi", + text: "Suomi" + }, { + value: "sv", + text: "Svenska" + }, { + value: "vi", + text: "Tiếng Việt" + }, { + value: "tr", + text: "Türkçe" + }, { + value: "be", + text: "Беларуская" + }, { + value: "bg", + text: "Български" + }, { + value: "ky", + text: "Кыргызча" + }, { + value: "kk", + text: "Қазақ Тілі" + }, { + value: "mk", + text: "Македонски" + }, { + value: "mn", + text: "Монгол" + }, { + value: "sr", + text: "Српски" + }, { + value: "uk", + text: "Українська" + }, { + value: "el", + text: "Ελληνικά" + }, { + value: "hy", + text: "Հայերեն" + }, { + value: "iw", + text: "עברית" + }, { + value: "ur", + text: "اردو" + }, { + value: "ar", + text: "العربية" + }, { + value: "fa", + text: "فارسی" + }, { + value: "ne", + text: "नेपाली" + }, { + value: "mr", + text: "मराठी" + }, { + value: "hi", + text: "हिन्दी" + }, { + value: "bn", + text: "বাংলা" + }, { + value: "pa", + text: "ਪੰਜਾਬੀ" + }, { + value: "gu", + text: "ગુજરાતી" + }, { + value: "ta", + text: "தமிழ்" + }, { + value: "te", + text: "తెలుగు" + }, { + value: "kn", + text: "ಕನ್ನಡ" + }, { + value: "ml", + text: "മലയാളം" + }, { + value: "si", + text: "සිංහල" + }, { + value: "th", + text: "ภาษาไทย" + }, { + value: "lo", + text: "ລາວ" + }, { + value: "my", + text: "ဗမာ" + }, { + value: "ka", + text: "ქართული" + }, { + value: "am", + text: "አማርኛ" + }, { + value: "km", + text: "ខ្មែរ" + }, { + value: "zh-CN", + text: "中文 (简体)" + }, { + value: "zh-TW", + text: "中文 (繁體)" + }, { + value: "zh-HK", + text: "中文 (香港)" + }, { + value: "ko", + text: "한국어" + } + ] + } + } + } + }, + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'currentColor' + }, + + path: { + component: 'path', + attr: { + d: 'M12.9 15l-2.6-2.4c1.8-2 3-4.2 3.8-6.6H17V4h-7V2H8v2H1v2h11.2c-.7 2-1.8 3.8-3.2 5.3-1-1-1.7-2.1-2.3-3.3h-2c.7 1.6 1.7 3.2 3 4.6l-5.1 5L4 19l5-5 3.1 3.1.8-2zm5.6-5h-2L12 22h2l1.1-3H20l1.1 3h2l-4.5-12zm-2.6 7l1.6-4.3 1.6 4.3H16z' + } + } + }, + label: { + component: 'span', + text: 'languages' + } + }, + backup_and_reset: { + component: 'button', + + on: { + click: { + section: { + component: 'section', + class: 'satus-section--card', + + import_settings: { + component: 'button', + text: 'importSettings', + on: { + click: function () { + if (location.href.indexOf('/popup.html?action=import') !== -1) { + importData(); + } else { + chrome.tabs.create({ + url: 'popup.html?action=import' + }); + } + } + } + }, + export_settings: { + component: 'button', + text: 'exportSettings', + + on: { + click: function () { + if (location.href.indexOf('/index.html?action=export') !== -1) { + exportData(); + } else { + chrome.tabs.create({ + url: 'index.html?action=export' + }); + } + } + } + }, + reset_all_settings: { + component: 'button', + text: 'resetAllSettings', + on: { + click: function () { + satus.render({ + component: 'modal', + class: 'satus-modal--confirm', + + message: { + component: 'span', + text: 'thisWillResetAllSettings' + }, + section: { + component: 'section', + class: 'controls', + + cancel: { + component: 'button', + text: 'cancel', + onclick: function () { + var scrim = document.querySelectorAll('.satus-modal__scrim'); + + scrim[scrim.length - 1].click(); + } + }, + accept: { + component: 'button', + text: 'accept', + onclick: function () { + var scrim = document.querySelectorAll('.satus-modal__scrim'); + + satus.storage.clear(); + + location.reload(); + + scrim[scrim.length - 1].click(); + } + } + } + }); + } + } + }, + delete_youtube_cookies: { + component: 'button', + text: 'deleteYoutubeCookies', + + on: { + click: function () { + satus.render({ + component: 'modal', + class: 'satus-modal--confirm', + + message: { + component: 'span', + text: 'thisWillRemoveAllYouTubeCookies', + style: { + 'width': '100%', + 'opacity': '.8' + } + }, + section: { + component: 'section', + class: 'controls', + style: { + 'justify-content': 'flex-end', + 'display': 'flex' + }, + + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + var scrim = document.querySelectorAll('.satus-modal__scrim'); + + scrim[scrim.length - 1].click(); + } + } + }, + accept: { + component: 'button', + text: 'accept', + on: { + click: function () { + var scrim = document.querySelectorAll('.satus-modal__scrim'); + + chrome.tabs.query({}, function (tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + name: 'delete_youtube_cookies' + }); + } + } + }); + + scrim[scrim.length - 1].click(); + } + } + } + } + }); + } + } + } + } + } + }, + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'currentColor' + }, + + path: { + component: 'path', + attr: { + d: 'M13.3 3A9 9 0 0 0 4 12H2.2c-.5 0-.7.5-.3.8l2.7 2.8c.2.2.6.2.8 0L8 12.8c.4-.3.1-.8-.3-.8H6a7 7 0 1 1 2.7 5.5 1 1 0 0 0-1.3.1 1 1 0 0 0 0 1.5A9 9 0 0 0 22 11.7C22 7 18 3.1 13.4 3zm-.6 5c-.4 0-.7.3-.7.8v3.6c0 .4.2.7.5.9l3.1 1.8c.4.2.8.1 1-.2.2-.4.1-.8-.2-1l-3-1.8V8.7c0-.4-.2-.7-.7-.7z' + } + } + }, + label: { + component: 'span', + text: 'backupAndReset' + } + }, + date_and_time: { + component: 'button', + + on: { + click: { + section: { + component: 'section', + class: 'satus-section--card', + + use_24_hour_format: { + component: 'switch', + text: 'use24HourFormat', + value: true + } + } + } + }, + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'currentColor' + }, + + path: { + component: 'path', + attr: { + d: 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm-.2-13c-.5 0-.8.3-.8.7v4.7c0 .4.2.7.5.9l4.1 2.5c.4.2.8 0 1-.3.2-.3.1-.7-.2-1l-3.9-2.2V7.7c0-.4-.3-.7-.7-.7z' + } + } + }, + label: { + component: 'span', + text: 'dateAndTime' + } + }, + location: { + component: 'button', + + on: { + click: { + section: { + component: 'section', + class: 'satus-section--card', + + default_content_country: { + component: 'select', + text: 'defaultContentCountry', + + options: [{ + text: "default", + value: "default" + }, + { + text: "Afghanistan", + value: "AF" + }, + { + text: "Albania", + value: "AL" + }, + { + text: "Algeria", + value: "DZ" + }, + { + text: "American Samoa", + value: "AS" + }, + { + text: "Andorra", + value: "AD" + }, + { + text: "Angola", + value: "AO" + }, + { + text: "Anguilla", + value: "AI" + }, + { + text: "Antarctica", + value: "AQ" + }, + { + text: "Antigua and Barbuda", + value: "AG" + }, + { + text: "Argentina", + value: "AR" + }, + { + text: "Armenia", + value: "AM" + }, + { + text: "Aruba", + value: "AW" + }, + { + text: "Australia", + value: "AU" + }, + { + text: "Austria", + value: "AT" + }, + { + text: "Azerbaijan", + value: "AZ" + }, + { + text: "Bahrain", + value: "BH" + }, + { + text: "Bailiwick of Guernsey", + value: "GG" + }, + { + text: "Bangladesh", + value: "BD" + }, + { + text: "Barbados", + value: "BB" + }, + { + text: "Belarus", + value: "BY" + }, + { + text: "Belgium", + value: "BE" + }, + { + text: "Belize", + value: "BZ" + }, + { + text: "Benin", + value: "BJ" + }, + { + text: "Bermuda", + value: "BM" + }, + { + text: "Bhutan", + value: "BT" + }, + { + text: "Bolivia", + value: "BO" + }, + { + text: "Bonaire", + value: "BQ" + }, + { + text: "Bosnia and Herzegovina", + value: "BA" + }, + { + text: "Botswana", + value: "BW" + }, + { + text: "Bouvet Island", + value: "BV" + }, + { + text: "Brazil", + value: "BR" + }, + { + text: "British Indian Ocean Territory", + value: "IO" + }, + { + text: "British Virgin Islands", + value: "VG" + }, + { + text: "Brunei", + value: "BN" + }, + { + text: "Bulgaria", + value: "BG" + }, + { + text: "Burkina Faso", + value: "BF" + }, + { + text: "Burundi", + value: "BI" + }, + { + text: "Cambodia", + value: "KH" + }, + { + text: "Cameroon", + value: "CM" + }, + { + text: "Canada", + value: "CA" + }, + { + text: "Cape Verde", + value: "CV" + }, + { + text: "Cayman Islands", + value: "KY" + }, + { + text: "Central African Republic", + value: "CF" + }, + { + text: "Chad", + value: "TD" + }, + { + text: "Chile", + value: "CL" + }, + { + text: "China", + value: "CN" + }, + { + text: "Christmas Island", + value: "CX" + }, + { + text: "Cocos (Keeling) Islands", + value: "CC" + }, + { + text: "Collectivity of Saint Martin", + value: "MF" + }, + { + text: "Colombia", + value: "CO" + }, + { + text: "Comoros", + value: "KM" + }, + { + text: "Cook Islands", + value: "CK" + }, + { + text: "Costa Rica", + value: "CR" + }, + { + text: "Croatia", + value: "HR" + }, + { + text: "Cuba", + value: "CU" + }, + { + text: "Curaçao", + value: "CW" + }, + { + text: "Cyprus", + value: "CY" + }, + { + text: "Czech Republic", + value: "CZ" + }, + { + text: "Democratic Republic of the Congo", + value: "CD" + }, + { + text: "Denmark", + value: "DK" + }, + { + text: "Djibouti", + value: "DJ" + }, + { + text: "Dominica", + value: "DM" + }, + { + text: "Dominican Republic", + value: "DO" + }, + { + text: "East Timor", + value: "TL" + }, + { + text: "Ecuador", + value: "EC" + }, + { + text: "Egypt", + value: "EG" + }, + { + text: "El Salvador", + value: "SV" + }, + { + text: "Equatorial Guinea", + value: "GQ" + }, + { + text: "Eritrea", + value: "ER" + }, + { + text: "Estonia", + value: "EE" + }, + { + text: "Eswatini", + value: "SZ" + }, + { + text: "Ethiopia", + value: "ET" + }, + { + text: "Falkland Islands", + value: "FK" + }, + { + text: "Faroe Islands", + value: "FO" + }, + { + text: "Federated States of Micronesia", + value: "FM" + }, + { + text: "Fiji", + value: "FJ" + }, + { + text: "Finland", + value: "FI" + }, + { + text: "France", + value: "FR" + }, + { + text: "French Guiana", + value: "GF" + }, + { + text: "French Polynesia", + value: "PF" + }, + { + text: "French Southern and Antarctic Lands", + value: "TF" + }, + { + text: "Gabon", + value: "GA" + }, + { + text: "Georgia (country)", + value: "GE" + }, + { + text: "Germany", + value: "DE" + }, + { + text: "Ghana", + value: "GH" + }, + { + text: "Gibraltar", + value: "GI" + }, + { + text: "Greece", + value: "GR" + }, + { + text: "Greenland", + value: "GL" + }, + { + text: "Grenada", + value: "GD" + }, + { + text: "Guadeloupe", + value: "GP" + }, + { + text: "Guam", + value: "GU" + }, + { + text: "Guatemala", + value: "GT" + }, + { + text: "Guinea", + value: "GN" + }, + { + text: "Guinea-Bissau", + value: "GW" + }, + { + text: "Guyana", + value: "GY" + }, + { + text: "Haiti", + value: "HT" + }, + { + text: "Heard Island and McDonald Islands", + value: "HM" + }, + { + text: "Holy See", + value: "VA" + }, + { + text: "Honduras", + value: "HN" + }, + { + text: "Hong Kong", + value: "HK" + }, + { + text: "Hungary", + value: "HU" + }, + { + text: "Iceland", + value: "IS" + }, + { + text: "India", + value: "IN" + }, + { + text: "Indonesia", + value: "ID" + }, + { + text: "Iran", + value: "IR" + }, + { + text: "Iraq", + value: "IQ" + }, + { + text: "Isle of Man", + value: "IM" + }, + { + text: "Israel", + value: "IL" + }, + { + text: "Italy", + value: "IT" + }, + { + text: "Ivory Coast", + value: "CI" + }, + { + text: "Jamaica", + value: "JM" + }, + { + text: "Japan", + value: "JP" + }, + { + text: "Jersey", + value: "JE" + }, + { + text: "Jordan", + value: "JO" + }, + { + text: "Kazakhstan", + value: "KZ" + }, + { + text: "Kenya", + value: "KE" + }, + { + text: "Kiribati", + value: "KI" + }, + { + text: "Kuwait", + value: "KW" + }, + { + text: "Kyrgyzstan", + value: "KG" + }, + { + text: "Laos", + value: "LA" + }, + { + text: "Latvia", + value: "LV" + }, + { + text: "Lebanon", + value: "LB" + }, + { + text: "Lesotho", + value: "LS" + }, + { + text: "Liberia", + value: "LR" + }, + { + text: "Libya", + value: "LY" + }, + { + text: "Liechtenstein", + value: "LI" + }, + { + text: "Lithuania", + value: "LT" + }, + { + text: "Luxembourg", + value: "LU" + }, + { + text: "Macau", + value: "MO" + }, + { + text: "Madagascar", + value: "MG" + }, + { + text: "Malawi", + value: "MW" + }, + { + text: "Malaysia", + value: "MY" + }, + { + text: "Maldives", + value: "MV" + }, + { + text: "Mali", + value: "ML" + }, + { + text: "Malta", + value: "MT" + }, + { + text: "Marshall Islands", + value: "MH" + }, + { + text: "Martinique", + value: "MQ" + }, + { + text: "Mauritania", + value: "MR" + }, + { + text: "Mauritius", + value: "MU" + }, + { + text: "Mayotte", + value: "YT" + }, + { + text: "Mexico", + value: "MX" + }, + { + text: "Moldova", + value: "MD" + }, + { + text: "Monaco", + value: "MC" + }, + { + text: "Mongolia", + value: "MN" + }, + { + text: "Montenegro", + value: "ME" + }, + { + text: "Montserrat", + value: "MS" + }, + { + text: "Morocco", + value: "MA" + }, + { + text: "Mozambique", + value: "MZ" + }, + { + text: "Myanmar", + value: "MM" + }, + { + text: "Namibia", + value: "NA" + }, + { + text: "Nauru", + value: "NR" + }, + { + text: "Nepal", + value: "NP" + }, + { + text: "Netherlands", + value: "NL" + }, + { + text: "New Caledonia", + value: "NC" + }, + { + text: "New Zealand", + value: "NZ" + }, + { + text: "Nicaragua", + value: "NI" + }, + { + text: "Niger", + value: "NE" + }, + { + text: "Nigeria", + value: "NG" + }, + { + text: "Niue", + value: "NU" + }, + { + text: "Norfolk Island", + value: "NF" + }, + { + text: "North Korea", + value: "KP" + }, + { + text: "North Macedonia", + value: "MK" + }, + { + text: "Northern Mariana Islands", + value: "MP" + }, + { + text: "Norway", + value: "NO" + }, + { + text: "Oman", + value: "OM" + }, + { + text: "Pakistan", + value: "PK" + }, + { + text: "Palau", + value: "PW" + }, + { + text: "Panama", + value: "PA" + }, + { + text: "Papua New Guinea", + value: "PG" + }, + { + text: "Paraguay", + value: "PY" + }, + { + text: "Peru", + value: "PE" + }, + { + text: "Philippines", + value: "PH" + }, + { + text: "Pitcairn Islands", + value: "PN" + }, + { + text: "Poland", + value: "PL" + }, + { + text: "Portugal", + value: "PT" + }, + { + text: "Puerto Rico", + value: "PR" + }, + { + text: "Qatar", + value: "QA" + }, + { + text: "Republic of Ireland", + value: "IE" + }, + { + text: "Republic of the Congo", + value: "CG" + }, + { + text: "Romania", + value: "RO" + }, + { + text: "Russia", + value: "RU" + }, + { + text: "Rwanda", + value: "RW" + }, + { + text: "Réunion", + value: "RE" + }, + { + text: "Saint Barthélemy", + value: "BL" + }, + { + text: "Saint Helena", + value: "SH" + }, + { + text: "Saint Kitts and Nevis", + value: "KN" + }, + { + text: "Saint Lucia", + value: "LC" + }, + { + text: "Saint Pierre and Miquelon", + value: "PM" + }, + { + text: "Saint Vincent and the Grenadines", + value: "VC" + }, + { + text: "Samoa", + value: "WS" + }, + { + text: "San Marino", + value: "SM" + }, + { + text: "Saudi Arabia", + value: "SA" + }, + { + text: "Senegal", + value: "SN" + }, + { + text: "Serbia", + value: "RS" + }, + { + text: "Seychelles", + value: "SC" + }, + { + text: "Sierra Leone", + value: "SL" + }, + { + text: "Singapore", + value: "SG" + }, + { + text: "Sint Maarten", + value: "SX" + }, + { + text: "Slovakia", + value: "SK" + }, + { + text: "Slovenia", + value: "SI" + }, + { + text: "Solomon Islands", + value: "SB" + }, + { + text: "Somalia", + value: "SO" + }, + { + text: "South Africa", + value: "ZA" + }, + { + text: "South Georgia and the South Sandwich Islands", + value: "GS" + }, + { + text: "South Korea", + value: "KR" + }, + { + text: "South Sudan", + value: "SS" + }, + { + text: "Spain", + value: "ES" + }, + { + text: "Sri Lanka", + value: "LK" + }, + { + text: "State of Palestine", + value: "PS" + }, + { + text: "Sudan", + value: "SD" + }, + { + text: "Suriname", + value: "SR" + }, + { + text: "Svalbard", + value: "SJ" + }, + { + text: "Sweden", + value: "SE" + }, + { + text: "Switzerland", + value: "CH" + }, + { + text: "Syria", + value: "SY" + }, + { + text: "São Tomé and Príncipe", + value: "ST" + }, + { + text: "Taiwan", + value: "TW" + }, + { + text: "Tajikistan", + value: "TJ" + }, + { + text: "Tanzania", + value: "TZ" + }, + { + text: "Thailand", + value: "TH" + }, + { + text: "The Bahamas", + value: "BS" + }, + { + text: "The Gambia", + value: "GM" + }, + { + text: "Togo", + value: "TG" + }, + { + text: "Tokelau", + value: "TK" + }, + { + text: "Tonga", + value: "TO" + }, + { + text: "Trinidad and Tobago", + value: "TT" + }, + { + text: "Tunisia", + value: "TN" + }, + { + text: "Turkey", + value: "TR" + }, + { + text: "Turkmenistan", + value: "TM" + }, + { + text: "Turks and Caicos Islands", + value: "TC" + }, + { + text: "Tuvalu", + value: "TV" + }, + { + text: "Uganda", + value: "UG" + }, + { + text: "Ukraine", + value: "UA" + }, + { + text: "United Arab Emirates", + value: "AE" + }, + { + text: "United Kingdom", + value: "GB" + }, + { + text: "United States Virgin Islands", + value: "VI" + }, + { + text: "United States", + value: "UM" + }, + { + text: "United States", + value: "US" + }, + { + text: "Uruguay", + value: "UY" + }, + { + text: "Uzbekistan", + value: "UZ" + }, + { + text: "Vanuatu", + value: "VU" + }, + { + text: "Venezuela", + value: "VE" + }, + { + text: "Vietnam", + value: "VN" + }, + { + text: "Wallis and Futuna", + value: "WF" + }, + { + text: "Western Sahara", + value: "EH" + }, + { + text: "Yemen", + value: "YE" + }, + { + text: "Zambia", + value: "ZM" + }, + { + text: "Zimbabwe", + value: "ZW" + }, + { + text: "Åland Islands", + value: "AX" + } + ] + } + } + } + }, + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'currentColor' + }, + + circle: { + component: 'circle', + attr: { + cx: 12, + cy: 9, + r: 2.5 + } + }, + path: { + component: 'path', + attr: { + d: 'M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z' + } + } + }, + label: { + component: 'span', + text: 'location' + } + }, + about: { + component: 'button', + + on: { + click: { + component: 'span', + + on: { + render: function () { + var component = this, + manifest = chrome.runtime.getManifest(), + user = satus.user(), + skeleton_about = { + extension_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'extension' + }, + extension_section: { + component: 'section', + class: 'satus-section--card', + + list: { + component: 'list', + items: [ + ['version', manifest.version], + ['permissions', manifest.permissions.join(', ').replace('https://www.youtube.com/', 'YouTube')] + ] + } + }, + browser_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'browser' + }, + browser_section: { + component: 'section', + class: 'satus-section--card', + + list: { + component: 'list', + items: [ + ['name', user.browser.name], + ['version', user.browser.version], + ['platform', user.browser.platform], + ['videoFormats', { + component: 'span', + on: { + render: function () { + var formats = []; + + for (var key in user.browser.video) { + if (user.browser.video[key] !== false) { + formats.push(key); + } + } + + this.textContent = formats.join(', '); + } + } + }], + ['audioFormats', { + component: 'span', + on: { + render: function () { + var formats = []; + + for (var key in user.browser.audio) { + if (user.browser.audio[key] !== false) { + formats.push(key); + } + } + + this.textContent = formats.join(', '); + } + } + }], + ['flash', !!user.browser.flash ? 'true' : 'false'] + ] + } + }, + os_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'os' + }, + os_section: { + component: 'section', + class: 'satus-section--card', + + list: { + component: 'list', + items: [ + ['name', user.os.name], + ['type', user.os.type] + ] + } + }, + device_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'device' + }, + device_section: { + component: 'section', + class: 'satus-section--card', + + list: { + component: 'list', + items: [ + ['screen', user.device.screen], + ['cores', user.device.cores], + ['gpu', user.device.gpu], + ['ram', user.device.ram] + ] + } + } + }; + + setTimeout(function () { + satus.render(skeleton_about, component.parentNode); + + component.remove(); + }); + } + } + } + }, + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'currentColor' + }, + + path: { + component: 'path', + attr: { + d: 'M11 7h2v2h-2zm0 4h2v6h-2zm1-9a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16z' + } + } + }, + label: { + component: 'span', + text: 'about' + } + } + } + }); -skeleton.header.section_end.button_vert.onClickRender.active_features = { - type: 'folder', - before: '', - label: 'activeFeatures', - onclick: function () { - document.querySelector('.satus-dialog__scrim').click(); - }, + skeleton.layers.rendered.open(); - section: { - type: 'section', - onrender: function () { - var component = this, - my_skeleton = {}, - threads = 0; + document.querySelector('.satus-modal__scrim').click(); + } + }, - function parse(list, section) { - threads++; + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'stroke-width': 1.75 + }, - if (list.type === 'folder') { - section = list.label; - } + circle: { + component: 'circle', + attr: { + 'cx': 12, + 'cy': 12, + 'r': 3 + } + }, + path: { + component: 'path', + attr: { + 'd': 'M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 010 2.83 2 2 0 01-2.83 0l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-2 2 2 2 0 01-2-2v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83 0 2 2 0 010-2.83l.06-.06a1.65 1.65 0 00.33-1.82 1.65 1.65 0 00-1.51-1H3a2 2 0 01-2-2 2 2 0 012-2h.09A1.65 1.65 0 004.6 9a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 010-2.83 2 2 0 012.83 0l.06.06a1.65 1.65 0 001.82.33H9a1.65 1.65 0 001-1.51V3a2 2 0 012-2 2 2 0 012 2v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 0 2 2 0 010 2.83l-.06.06a1.65 1.65 0 00-.33 1.82V9a1.65 1.65 0 001.51 1H21a2 2 0 012 2 2 2 0 01-2 2h-.09a1.65 1.65 0 00-1.51 1z' + } + } + }, + label: { + component: 'span', + text: 'settings' + } + }, + mixer: { + component: 'button', - for (var key in list) { - var item = list[key]; + on: { + click: { + component: 'section', - if (/(select|shortcut|slider|switch)/.test(item.type)) { - var in_storage = satus.storage[item.storage_key], - is_active = false; + on: { + render: function () { + var self = this; - if (satus.isset(in_storage)) { - if (item.type === 'select') { - if (item.options && item.options[0]) { - if (satus.isset(item.options[0].value)) { - if (item.options[0].value != in_storage) { - is_active = true; + if (chrome && chrome.tabs) { + chrome.tabs.query({}, function (tabs) { + var mixer = {}; + + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + var tab = tabs[i]; + + if (/(\?|\&)v=/.test(tab.url)) { + mixer[i] = { + component: 'section', + class: 'satus-section--mixer', + style: { + 'background': 'url(https://img.youtube.com/vi/' + tab.url.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '/0.jpg) center center / cover no-repeat #000', + }, + + title: { + component: 'h1', + text: tab.title + }, + section: { + component: 'section', + data: { + 'noConnectionLabel': satus.locale.get('tryToReloadThePage') || 'tryToReloadThePage' + }, + + mixer_volume: { + component: 'slider', + text: 'volume', + data: { + id: tab.id + }, + max: 100, + on: { + render: function () { + var self = this; + + chrome.tabs.sendMessage(Number(this.dataset.id), { + action: 'request-volume' + }, function (response) { + if (response) { + self.value = response * 100; + } else { + self.parentNode.parentNode.classList.add('noconnection'); + } + }); + }, + change: function () { + chrome.tabs.sendMessage(Number(this.dataset.id), { + action: 'set-volume', + value: this.value + }); + } + } + }, + mixer_playback_speed: { + component: 'slider', + text: 'playbackSpeed', + data: { + id: tab.id + }, + min: .1, + max: 8, + step: .05, + on: { + render: function () { + var self = this; + + chrome.tabs.sendMessage(Number(this.dataset.id), { + action: 'request-playback-speed' + }, function (response) { + if (response) { + self.value = response; + } else { + self.parentNode.parentNode.classList.add('noconnection'); + } + }); + }, + change: function () { + chrome.tabs.sendMessage(Number(this.dataset.id), { + action: 'set-playback-speed', + value: this.value + }); + } + } + } + } + }; + } + } + } + + if (Object.entries(mixer).length === 0) { + mixer.section = { + component: 'section', + + message: { + component: 'span', + class: 'satus-section--message', + text: 'noOpenVideoTabs' + } + }; + } + + skeleton.layers.rendered.path.push(mixer); + + skeleton.layers.rendered.open(); + + document.querySelector('.satus-modal__scrim').click(); + }); + } } } } - } else { - if (satus.isset(item.value) && item.value != in_storage) { - is_active = true; - } else if (!satus.isset(item.value) && in_storage !== false) { - is_active = true; - } - } - } + }, - if (is_active) { - if (section) { - if (!my_skeleton[section]) { - my_skeleton[section + '__label'] = { - type: 'text', - class: 'satus-section--label', - label: section - }; + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'stroke-width': '1.75' + }, - my_skeleton[section] = { - type: 'section' - }; + path: { + component: 'path', + attr: { + 'd': 'M11 5L6 9H2v6h4l5 4V5zM19.07 4.93a10 10 0 010 14.14M15.54 8.46a5 5 0 010 7.07' + } } + }, + label: { + component: 'span', + text: 'mixer' } - - my_skeleton[section][key] = item; } - } else if (typeof item === 'object') { - parse(item, section); - } - } - - threads--; - - if (threads === 0) { - if (Object.keys(my_skeleton).length > 0) { - satus.render(my_skeleton, component.parentNode); - - component.remove(); - } else { - satus.render({ - text: { - type: 'text', - label: 'noActiveFeatures' - } - }, component); } - } - } - - parse(skeleton); - } - } -}; - - -/*-------------------------------------------------------------- -# SETTINGS ---------------------------------------------------------------*/ - -skeleton.header.section_end.button_vert.onClickRender.settings = { - type: 'folder', - before: '', - label: 'settings', - parent: '.satus-main__container', - onclick: function () { - document.querySelector('.satus-dialog__scrim').click(); - }, - - section: { - type: 'section', - - developer_options: { - type: 'folder', - before: '', - label: 'developerOptions', - - custom_js_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'customJs' - }, + }, + pluviam: true, - custom_js_section: { - type: 'section', - custom_js: { - type: 'text-field', - onrender: function () { - this.value = satus.storage.get('custom_js') || ''; + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'stroke-width': 2 }, - oninput: function () { - satus.storage.set('custom_js', this.value); - } - } - }, - custom_css_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'customCss' - }, - - custom_css_section: { - type: 'section', - custom_css: { - type: 'text-field', - onrender: function () { - this.value = satus.storage.get('custom_css') || ''; + circle1: { + component: 'circle', + attr: { + 'cx': 12, + 'cy': 5.25, + 'r': 0.45 + } }, - oninput: function () { - satus.storage.set('custom_css', this.value); - } - } - }, - - google_api_key_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'Google API key' - }, - - google_api_key_section: { - type: 'section', - google_api_key: { - type: 'text-field', - onrender: function () { - this.value = typeof satus.storage.get('google_api_key') === 'string' && satus.storage.get('google_api_key').length > 0 ? satus.storage.get('google_api_key') : 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; + circle2: { + component: 'circle', + attr: { + 'cx': 12, + 'cy': 12, + 'r': 0.45 + } }, - oninput: function () { - satus.storage.set('google_api_key', typeof satus.storage.get('google_api_key') === 'string' && satus.storage.get('google_api_key').length > 0 ? satus.storage.get('google_api_key') : 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'); + circle3: { + component: 'circle', + attr: { + 'cx': 12, + 'cy': 18.75, + 'r': 0.45 + } } } } - }, + } }, + layers: { + component: 'layers', + on: { + open: function () { + var skeleton = this.path[this.path.length - 1]; + + this.base.skeleton.header.section_start.back.rendered.hidden = this.path.length <= 1; + this.base.skeleton.header.section_start.title.rendered.innerText = skeleton.title || 'ImprovedTube'; + } + }, - section0: { - type: 'section', - - appearance: { - type: 'folder', - before: '', - label: 'appearance', + section: { + component: 'section', + class: 'satus-section--home', general: { - type: 'section', - label: 'general', - - header: { - type: 'folder', - label: 'header', - - section: { - type: 'section', + component: 'button', + class: 'satus-button--general', + on: { + click: { + component: 'section', + class: 'satus-section--card', + + youtube_home_page: { + component: 'select', + text: 'youtubeHomePage', + options: [{ + text: 'home', + value: '/' + }, { + text: 'trending', + value: '/feed/trending' + }, { + text: 'subscriptions', + value: '/feed/subscriptions' + }, { + text: 'history', + value: '/feed/history' + }, { + text: 'watchLater', + value: '/playlist?list=WL' + }, { + text: 'search', + value: 'search' + }, { + text: '👍 liked', + value: '/playlist?list=LL' + }, { + text: 'library', + value: '/feed/library' + }], + tags: 'trending,subscriptions,history,watch,search' + }, + collapse_of_subscription_sections: { + component: 'switch', + text: 'collapseOfSubscriptionSections' + }, + remove_related_search_results: { + component: 'switch', + text: 'removeRelatedSearchResults' + }, + mark_watched_videos: { + component: 'switch', + text: 'markWatchedVideos', + on: { + click: function () { + setTimeout(function () { + if (satus.storage.mark_watched_videos && !satus.storage.track_watched_videos) { + document.querySelector('.satus-switch > input[data-storage-key="track_watched_videos"]').click(); + } + }, 50); + } + } + }, + track_watched_videos: { + component: 'switch', + text: 'trackWatchedVideos' + }, + delete_watched_videos: { + component: 'button', + text: 'deleteWatchedVideos', + on: { + render: function () { + this.firstChild.innerText += ' (' + (satus.storage.watched ? Object.keys(satus.storage.watched).length : 0) + ')'; + }, + click: function () { + var component = this; - title_version: { - type: 'switch', - label: 'version' - } - } - }, - home: { - type: 'folder', - label: 'home', + satus.render({ + component: 'dialog', + class: 'satus-dialog--confirm', - section: { - type: 'section', + message: { + component: 'text', + text: 'thisWillRemoveAllWatchedVideos', + style: { + 'width': '100%', + 'opacity': '.8' + } + }, + section: { + component: 'section', + class: 'controls', + style: { + 'justify-content': 'flex-end', + 'display': 'flex' + }, + + cancel: { + component: 'button', + text: 'cancel', + onclick: function () { + var scrim = document.querySelectorAll('.satus-dialog__scrim'); - improvedtube_home: { - type: 'select', - label: 'style', - options: [{ - label: 'bubbles', - value: 'bubbles' - }, { - label: 'list', - value: 'list' - }] - } - }, + scrim[scrim.length - 1].click(); + } + }, + accept: { + component: 'button', + text: 'accept', + onclick: function () { + var scrim = document.querySelectorAll('.satus-dialog__scrim'); - categories: { - type: 'section', - label: 'categories', + satus.storage.watched = {}; + satus.storage.set('watched', satus.storage.watched); + component.firstChild.innerText = component.firstChild.innerText.replace(/\d+/, 0); - it_general: { - type: 'switch', - label: 'general', - value: true - }, - it_appearance: { - type: 'switch', - label: 'appearance', - value: true + scrim[scrim.length - 1].click(); + } + } + } + }); + } + } }, - it_themes: { - type: 'switch', - label: 'themes', - value: true + only_one_player_instance_playing: { + component: 'switch', + text: 'onlyOnePlayerInstancePlaying' }, - it_player: { - type: 'switch', - label: 'player', - value: true + confirmation_before_closing: { + component: 'switch', + text: 'confirmationBeforeClosing', + tags: 'random prevent close exit' }, - it_playlist: { - type: 'switch', - label: 'playlist', - value: true + add_scroll_to_top: { + component: 'switch', + text: 'addScrollToTop', + tags: 'up' }, - it_channel: { - type: 'switch', - label: 'channel', + limit_page_width: { + component: 'switch', + text: 'limitPageWidth', value: true }, - it_shortcuts: { - type: 'switch', - label: 'shortcuts', - value: true + squared_user_images: { + component: 'switch', + text: 'squaredUserImages', + tags: 'avatar' }, - it_mixer: { - type: 'switch', - label: 'mixer', - value: true + hd_thumbnails: { + component: 'switch', + text: 'hdThumbnails', + tags: 'preview quality' }, - it_analyzer: { - type: 'switch', - label: 'analyzer', - value: true + hide_animated_thumbnails: { + component: 'switch', + text: 'hideAnimatedThumbnails', + tags: 'preview' }, - it_blacklist: { - type: 'switch', - label: 'blacklist', - value: true - } - } - } - }, - icons: { - type: 'section', - label: 'icons', - - improvedtube_youtube_icon: { - label: 'improvedtubeIconOnYoutube', - type: 'select', - options: [{ - label: 'disabled', - value: 'disabled' - }, { - label: 'youtubeHeaderLeft', - value: 'header_left' - }, { - label: 'youtubeHeaderRight', - value: 'header_right' - }, { - label: 'sidebar', - value: 'sidebar' - }, { - label: 'draggable', - value: 'draggable' - }, { - label: 'belowPlayer', - value: 'below_player' - }] - } - } - }, - languages: { - type: 'folder', - before: '', - label: 'languages', - - section: { - type: 'section', - - language: { - label: 'improvedtubeLanguage', - type: 'select', - onchange: function (name, value) { - satus.memory.set('locale', {}); - - satus.locale(function () { - document.querySelector('.satus-main__container').innerHTML = ''; - - document.querySelector('.satus-header__title').innerText = satus.locale.getMessage('languages'); - document.querySelector('#search').placeholder = satus.locale.getMessage('search'); - - satus.render(document.querySelector('.satus-main__container'), skeleton.main.section.settings.section.languages); - }); - }, - options: [{ - value: 'en', - label: 'English' - }, { - value: 'ko', - label: '한국어' - }, { - value: 'es', - label: 'Español (España)' - }, { - value: 'ru', - label: 'Русский' - }, { - value: 'de', - label: 'Deutsch' - }, { - value: 'zh_TW', - label: '中文 (繁體)' - }, { - value: 'pt_PT', - label: 'Português' - }, { - value: 'pt_BR', - label: 'Português (Brasil)' - }, { - value: 'zh_CN', - label: '中文 (简体)' - }, { - value: 'fr', - label: 'Français' - }, { - value: 'ja', - label: '日本語' - }, { - value: 'tr', - label: 'Türkçe' - }, { - value: 'tr', - label: 'Italiano' - }, { - value: 'nl', - label: 'Nederlands' - }, { - value: 'ar', - label: 'العربية' - }, { - value: 'id', - label: 'Bahasa Indonesia' - }, { - value: 'nb', - label: 'Norsk' - }, { - value: 'nb_NO', - label: 'Norsk (Bokmål)' - }, { - value: 'el', - label: 'Ελληνικά' - }, { - value: 'bn', - label: 'বাংলা' - }, { - value: 'hin', - label: 'हिन्दी' - }, { - value: 'sk', - label: 'Slovenčina' - }, { - value: 'pl', - label: 'Polski' - }] - }, - youtube_language: { - label: 'youtubeLanguage', - type: 'select', - options: [{ - value: 'default', - label: 'default' - }, - { - value: "en", - label: "English" - }, { - value: "es", - label: "Español (España)" - }, { - value: "es-419", - label: "Español (Latinoamérica)" - }, { - value: "es-US", - label: "Español (US)" - }, { - value: "ru", - label: "Русский" - }, { - value: "de", - label: "Deutsch" - }, { - value: "pt-PT", - label: "Português" - }, { - value: "pt", - label: "Português (Brasil)" - }, { - value: "fr", - label: "Français" - }, { - value: "pl", - label: "Polski" - }, { - value: "ja", - label: "日本語" - }, { - value: "af", - label: "Afrikaans" - }, { - value: "az", - label: "Azərbaycan" - }, { - value: "id", - label: "Bahasa Indonesia" - }, { - value: "ms", - label: "Bahasa Malaysia" - }, { - value: "bs", - label: "Bosanski" - }, { - value: "ca", - label: "Català" - }, { - value: "cs", - label: "Čeština" - }, { - value: "da", - label: "Dansk" - }, { - value: "et", - label: "Eesti" - }, { - value: "eu", - label: "Euskara" - }, { - value: "fil", - label: "Filipino" - }, { - value: "fr-CA", - label: "Français (Canada)" - }, { - value: "gl", - label: "Galego" - }, { - value: "hr", - label: "Hrvatski" - }, { - value: "zu", - label: "IsiZulu" - }, { - value: "is", - label: "Íslenska" - }, { - value: "it", - label: "Italiano" - }, { - value: "sw", - label: "Kiswahili" - }, { - value: "lv", - label: "Latviešu valoda" - }, { - value: "lt", - label: "Lietuvių" - }, { - value: "hu", - label: "Magyar" - }, { - value: "nl", - label: "Nederlands" - }, { - value: "no", - label: "Norsk" - }, { - value: "uz", - label: "O‘zbek" - }, { - value: "ro", - label: "Română" - }, { - value: "sq", - label: "Shqip" - }, { - value: "sk", - label: "Slovenčina" - }, { - value: "sl", - label: "Slovenščina" - }, { - value: "sr-Latn", - label: "Srpski" - }, { - value: "fi", - label: "Suomi" - }, { - value: "sv", - label: "Svenska" - }, { - value: "vi", - label: "Tiếng Việt" - }, { - value: "tr", - label: "Türkçe" - }, { - value: "be", - label: "Беларуская" - }, { - value: "bg", - label: "Български" - }, { - value: "ky", - label: "Кыргызча" - }, { - value: "kk", - label: "Қазақ Тілі" - }, { - value: "mk", - label: "Македонски" - }, { - value: "mn", - label: "Монгол" - }, { - value: "sr", - label: "Српски" - }, { - value: "uk", - label: "Українська" - }, { - value: "el", - label: "Ελληνικά" - }, { - value: "hy", - label: "Հայերեն" - }, { - value: "iw", - label: "עברית" - }, { - value: "ur", - label: "اردو" - }, { - value: "ar", - label: "العربية" - }, { - value: "fa", - label: "فارسی" - }, { - value: "ne", - label: "नेपाली" - }, { - value: "mr", - label: "मराठी" - }, { - value: "hi", - label: "हिन्दी" - }, { - value: "bn", - label: "বাংলা" - }, { - value: "pa", - label: "ਪੰਜਾਬੀ" - }, { - value: "gu", - label: "ગુજરાતી" - }, { - value: "ta", - label: "தமிழ்" - }, { - value: "te", - label: "తెలుగు" - }, { - value: "kn", - label: "ಕನ್ನಡ" - }, { - value: "ml", - label: "മലയാളം" - }, { - value: "si", - label: "සිංහල" - }, { - value: "th", - label: "ภาษาไทย" - }, { - value: "lo", - label: "ລາວ" - }, { - value: "my", - label: "ဗမာ" - }, { - value: "ka", - label: "ქართული" - }, { - value: "am", - label: "አማርኛ" - }, { - value: "km", - label: "ខ្មែរ" - }, { - value: "zh-CN", - label: "中文 (简体)" - }, { - value: "zh-TW", - label: "中文 (繁體)" - }, { - value: "zh-HK", - label: "中文 (香港)" - }, { - value: "ko", - label: "한국어" - }] - } - } - }, - backup_and_reset: { - type: 'folder', - label: 'backupAndReset', - before: '', - - section: { - type: 'section', - import_settings: { - type: 'button', - label: 'importSettings', - - onclick: function () { - if (location.href.indexOf('/index.html?action=import') !== -1) { - importData(); - } else { - chrome.tabs.create({ - url: 'index.html?action=import' - }); + hide_thumbnail_overlay: { + component: 'switch', + text: 'hideThumbnailOverlay', + tags: 'preview' } } }, - export_settings: { - type: 'button', - label: 'exportSettings', - onclick: function () { - if (location.href.indexOf('/index.html?action=export') !== -1) { - exportData(); - } else { - chrome.tabs.create({ - url: 'index.html?action=export' - }); + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'transparent', + stroke: 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': 1.75 + }, + + path: { + component: 'path', + attr: { + d: 'M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1zM4 22v-7' + } } } }, - reset_all_settings: { - type: 'button', - label: 'resetAllSettings', - - onclick: function () { - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - label: 'thisWillResetAllSettings' - }, - section: { - type: 'section', - class: 'controls', - style: { - 'justify-content': 'flex-end', - 'display': 'flex' - }, - - cancel: { - type: 'button', - label: 'cancel', - onclick: function () { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - accept: { - type: 'button', - label: 'accept', - onclick: function () { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - satus.storage.clear(); - - location.reload(); - - scrim[scrim.length - 1].click(); - } - } - } - }); - } - }, - delete_youtube_cookies: { - type: 'button', - label: 'deleteYoutubeCookies', - - onclick: function () { - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - label: 'thisWillRemoveAllYouTubeCookies', - style: { - 'width': '100%', - 'opacity': '.8' - } - }, - section: { - type: 'section', - class: 'controls', - style: { - 'justify-content': 'flex-end', - 'display': 'flex' - }, - - cancel: { - type: 'button', - label: 'cancel', - onclick: function () { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - accept: { - type: 'button', - label: 'accept', - onclick: function () { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - chrome.tabs.query({}, function (tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - name: 'delete_youtube_cookies' - }); - } - } - }); - - scrim[scrim.length - 1].click(); - } - } - } - }); - } - } - } - }, - date_and_time: { - type: 'folder', - label: 'dateAndTime', - before: '', - - section: { - type: 'section', - - use_24_hour_format: { - type: 'switch', - label: 'use24HourFormat', - value: true - } - } - }, - location: { - type: 'folder', - before: '', - label: 'location', - - section: { - type: 'section', - - default_content_country: { - label: 'defaultContentCountry', - type: 'select', - options: [{ - "label": "default", - "value": "default" - }, - { - "label": "Afghanistan", - "value": "AF" - }, - { - "label": "Albania", - "value": "AL" - }, - { - "label": "Algeria", - "value": "DZ" - }, - { - "label": "American Samoa", - "value": "AS" - }, - { - "label": "Andorra", - "value": "AD" - }, - { - "label": "Angola", - "value": "AO" - }, - { - "label": "Anguilla", - "value": "AI" - }, - { - "label": "Antarctica", - "value": "AQ" - }, - { - "label": "Antigua and Barbuda", - "value": "AG" - }, - { - "label": "Argentina", - "value": "AR" - }, - { - "label": "Armenia", - "value": "AM" - }, - { - "label": "Aruba", - "value": "AW" - }, - { - "label": "Australia", - "value": "AU" - }, - { - "label": "Austria", - "value": "AT" - }, - { - "label": "Azerbaijan", - "value": "AZ" - }, - { - "label": "Bahrain", - "value": "BH" - }, - { - "label": "Bailiwick of Guernsey", - "value": "GG" - }, - { - "label": "Bangladesh", - "value": "BD" - }, - { - "label": "Barbados", - "value": "BB" - }, - { - "label": "Belarus", - "value": "BY" - }, - { - "label": "Belgium", - "value": "BE" - }, - { - "label": "Belize", - "value": "BZ" - }, - { - "label": "Benin", - "value": "BJ" - }, - { - "label": "Bermuda", - "value": "BM" - }, - { - "label": "Bhutan", - "value": "BT" - }, - { - "label": "Bolivia", - "value": "BO" - }, - { - "label": "Bonaire", - "value": "BQ" - }, - { - "label": "Bosnia and Herzegovina", - "value": "BA" - }, - { - "label": "Botswana", - "value": "BW" - }, - { - "label": "Bouvet Island", - "value": "BV" - }, - { - "label": "Brazil", - "value": "BR" - }, - { - "label": "British Indian Ocean Territory", - "value": "IO" - }, - { - "label": "British Virgin Islands", - "value": "VG" - }, - { - "label": "Brunei", - "value": "BN" - }, - { - "label": "Bulgaria", - "value": "BG" - }, - { - "label": "Burkina Faso", - "value": "BF" - }, - { - "label": "Burundi", - "value": "BI" - }, - { - "label": "Cambodia", - "value": "KH" - }, - { - "label": "Cameroon", - "value": "CM" - }, - { - "label": "Canada", - "value": "CA" - }, - { - "label": "Cape Verde", - "value": "CV" - }, - { - "label": "Cayman Islands", - "value": "KY" - }, - { - "label": "Central African Republic", - "value": "CF" - }, - { - "label": "Chad", - "value": "TD" - }, - { - "label": "Chile", - "value": "CL" - }, - { - "label": "China", - "value": "CN" - }, - { - "label": "Christmas Island", - "value": "CX" - }, - { - "label": "Cocos (Keeling) Islands", - "value": "CC" - }, - { - "label": "Collectivity of Saint Martin", - "value": "MF" - }, - { - "label": "Colombia", - "value": "CO" - }, - { - "label": "Comoros", - "value": "KM" - }, - { - "label": "Cook Islands", - "value": "CK" - }, - { - "label": "Costa Rica", - "value": "CR" - }, - { - "label": "Croatia", - "value": "HR" - }, - { - "label": "Cuba", - "value": "CU" - }, - { - "label": "Curaçao", - "value": "CW" - }, - { - "label": "Cyprus", - "value": "CY" - }, - { - "label": "Czech Republic", - "value": "CZ" - }, - { - "label": "Democratic Republic of the Congo", - "value": "CD" - }, - { - "label": "Denmark", - "value": "DK" - }, - { - "label": "Djibouti", - "value": "DJ" - }, - { - "label": "Dominica", - "value": "DM" - }, - { - "label": "Dominican Republic", - "value": "DO" - }, - { - "label": "East Timor", - "value": "TL" - }, - { - "label": "Ecuador", - "value": "EC" - }, - { - "label": "Egypt", - "value": "EG" - }, - { - "label": "El Salvador", - "value": "SV" - }, - { - "label": "Equatorial Guinea", - "value": "GQ" - }, - { - "label": "Eritrea", - "value": "ER" - }, - { - "label": "Estonia", - "value": "EE" - }, - { - "label": "Eswatini", - "value": "SZ" - }, - { - "label": "Ethiopia", - "value": "ET" - }, - { - "label": "Falkland Islands", - "value": "FK" - }, - { - "label": "Faroe Islands", - "value": "FO" - }, - { - "label": "Federated States of Micronesia", - "value": "FM" - }, - { - "label": "Fiji", - "value": "FJ" - }, - { - "label": "Finland", - "value": "FI" - }, - { - "label": "France", - "value": "FR" - }, - { - "label": "French Guiana", - "value": "GF" - }, - { - "label": "French Polynesia", - "value": "PF" - }, - { - "label": "French Southern and Antarctic Lands", - "value": "TF" - }, - { - "label": "Gabon", - "value": "GA" - }, - { - "label": "Georgia (country)", - "value": "GE" - }, - { - "label": "Germany", - "value": "DE" - }, - { - "label": "Ghana", - "value": "GH" - }, - { - "label": "Gibraltar", - "value": "GI" - }, - { - "label": "Greece", - "value": "GR" - }, - { - "label": "Greenland", - "value": "GL" - }, - { - "label": "Grenada", - "value": "GD" - }, - { - "label": "Guadeloupe", - "value": "GP" - }, - { - "label": "Guam", - "value": "GU" - }, - { - "label": "Guatemala", - "value": "GT" - }, - { - "label": "Guinea", - "value": "GN" - }, - { - "label": "Guinea-Bissau", - "value": "GW" - }, - { - "label": "Guyana", - "value": "GY" - }, - { - "label": "Haiti", - "value": "HT" - }, - { - "label": "Heard Island and McDonald Islands", - "value": "HM" - }, - { - "label": "Holy See", - "value": "VA" - }, - { - "label": "Honduras", - "value": "HN" - }, - { - "label": "Hong Kong", - "value": "HK" - }, - { - "label": "Hungary", - "value": "HU" - }, - { - "label": "Iceland", - "value": "IS" - }, - { - "label": "India", - "value": "IN" - }, - { - "label": "Indonesia", - "value": "ID" - }, - { - "label": "Iran", - "value": "IR" - }, - { - "label": "Iraq", - "value": "IQ" - }, - { - "label": "Isle of Man", - "value": "IM" - }, - { - "label": "Israel", - "value": "IL" - }, - { - "label": "Italy", - "value": "IT" - }, - { - "label": "Ivory Coast", - "value": "CI" - }, - { - "label": "Jamaica", - "value": "JM" - }, - { - "label": "Japan", - "value": "JP" - }, - { - "label": "Jersey", - "value": "JE" - }, - { - "label": "Jordan", - "value": "JO" - }, - { - "label": "Kazakhstan", - "value": "KZ" - }, - { - "label": "Kenya", - "value": "KE" - }, - { - "label": "Kiribati", - "value": "KI" - }, - { - "label": "Kuwait", - "value": "KW" - }, - { - "label": "Kyrgyzstan", - "value": "KG" - }, - { - "label": "Laos", - "value": "LA" - }, - { - "label": "Latvia", - "value": "LV" - }, - { - "label": "Lebanon", - "value": "LB" - }, - { - "label": "Lesotho", - "value": "LS" - }, - { - "label": "Liberia", - "value": "LR" - }, - { - "label": "Libya", - "value": "LY" - }, - { - "label": "Liechtenstein", - "value": "LI" - }, - { - "label": "Lithuania", - "value": "LT" - }, - { - "label": "Luxembourg", - "value": "LU" - }, - { - "label": "Macau", - "value": "MO" - }, - { - "label": "Madagascar", - "value": "MG" - }, - { - "label": "Malawi", - "value": "MW" - }, - { - "label": "Malaysia", - "value": "MY" - }, - { - "label": "Maldives", - "value": "MV" - }, - { - "label": "Mali", - "value": "ML" - }, - { - "label": "Malta", - "value": "MT" - }, - { - "label": "Marshall Islands", - "value": "MH" - }, - { - "label": "Martinique", - "value": "MQ" - }, - { - "label": "Mauritania", - "value": "MR" - }, - { - "label": "Mauritius", - "value": "MU" - }, - { - "label": "Mayotte", - "value": "YT" - }, - { - "label": "Mexico", - "value": "MX" - }, - { - "label": "Moldova", - "value": "MD" - }, - { - "label": "Monaco", - "value": "MC" - }, - { - "label": "Mongolia", - "value": "MN" - }, - { - "label": "Montenegro", - "value": "ME" - }, - { - "label": "Montserrat", - "value": "MS" - }, - { - "label": "Morocco", - "value": "MA" - }, - { - "label": "Mozambique", - "value": "MZ" - }, - { - "label": "Myanmar", - "value": "MM" - }, - { - "label": "Namibia", - "value": "NA" - }, - { - "label": "Nauru", - "value": "NR" - }, - { - "label": "Nepal", - "value": "NP" - }, - { - "label": "Netherlands", - "value": "NL" - }, - { - "label": "New Caledonia", - "value": "NC" - }, - { - "label": "New Zealand", - "value": "NZ" - }, - { - "label": "Nicaragua", - "value": "NI" - }, - { - "label": "Niger", - "value": "NE" - }, - { - "label": "Nigeria", - "value": "NG" - }, - { - "label": "Niue", - "value": "NU" - }, - { - "label": "Norfolk Island", - "value": "NF" - }, - { - "label": "North Korea", - "value": "KP" - }, - { - "label": "North Macedonia", - "value": "MK" - }, - { - "label": "Northern Mariana Islands", - "value": "MP" - }, - { - "label": "Norway", - "value": "NO" - }, - { - "label": "Oman", - "value": "OM" - }, - { - "label": "Pakistan", - "value": "PK" - }, - { - "label": "Palau", - "value": "PW" - }, - { - "label": "Panama", - "value": "PA" - }, - { - "label": "Papua New Guinea", - "value": "PG" - }, - { - "label": "Paraguay", - "value": "PY" - }, - { - "label": "Peru", - "value": "PE" - }, - { - "label": "Philippines", - "value": "PH" - }, - { - "label": "Pitcairn Islands", - "value": "PN" - }, - { - "label": "Poland", - "value": "PL" - }, - { - "label": "Portugal", - "value": "PT" - }, - { - "label": "Puerto Rico", - "value": "PR" - }, - { - "label": "Qatar", - "value": "QA" - }, - { - "label": "Republic of Ireland", - "value": "IE" - }, - { - "label": "Republic of the Congo", - "value": "CG" - }, - { - "label": "Romania", - "value": "RO" - }, - { - "label": "Russia", - "value": "RU" - }, - { - "label": "Rwanda", - "value": "RW" - }, - { - "label": "Réunion", - "value": "RE" - }, - { - "label": "Saint Barthélemy", - "value": "BL" - }, - { - "label": "Saint Helena", - "value": "SH" - }, - { - "label": "Saint Kitts and Nevis", - "value": "KN" - }, - { - "label": "Saint Lucia", - "value": "LC" - }, - { - "label": "Saint Pierre and Miquelon", - "value": "PM" - }, - { - "label": "Saint Vincent and the Grenadines", - "value": "VC" - }, - { - "label": "Samoa", - "value": "WS" - }, - { - "label": "San Marino", - "value": "SM" - }, - { - "label": "Saudi Arabia", - "value": "SA" - }, - { - "label": "Senegal", - "value": "SN" - }, - { - "label": "Serbia", - "value": "RS" - }, - { - "label": "Seychelles", - "value": "SC" - }, - { - "label": "Sierra Leone", - "value": "SL" - }, - { - "label": "Singapore", - "value": "SG" - }, - { - "label": "Sint Maarten", - "value": "SX" - }, - { - "label": "Slovakia", - "value": "SK" - }, - { - "label": "Slovenia", - "value": "SI" - }, - { - "label": "Solomon Islands", - "value": "SB" - }, - { - "label": "Somalia", - "value": "SO" - }, - { - "label": "South Africa", - "value": "ZA" - }, - { - "label": "South Georgia and the South Sandwich Islands", - "value": "GS" - }, - { - "label": "South Korea", - "value": "KR" - }, - { - "label": "South Sudan", - "value": "SS" - }, - { - "label": "Spain", - "value": "ES" - }, - { - "label": "Sri Lanka", - "value": "LK" - }, - { - "label": "State of Palestine", - "value": "PS" - }, - { - "label": "Sudan", - "value": "SD" - }, - { - "label": "Suriname", - "value": "SR" - }, - { - "label": "Svalbard", - "value": "SJ" - }, - { - "label": "Sweden", - "value": "SE" - }, - { - "label": "Switzerland", - "value": "CH" - }, - { - "label": "Syria", - "value": "SY" - }, - { - "label": "São Tomé and Príncipe", - "value": "ST" - }, - { - "label": "Taiwan", - "value": "TW" - }, - { - "label": "Tajikistan", - "value": "TJ" - }, - { - "label": "Tanzania", - "value": "TZ" - }, - { - "label": "Thailand", - "value": "TH" - }, - { - "label": "The Bahamas", - "value": "BS" - }, - { - "label": "The Gambia", - "value": "GM" - }, - { - "label": "Togo", - "value": "TG" - }, - { - "label": "Tokelau", - "value": "TK" - }, - { - "label": "Tonga", - "value": "TO" - }, - { - "label": "Trinidad and Tobago", - "value": "TT" - }, - { - "label": "Tunisia", - "value": "TN" - }, - { - "label": "Turkey", - "value": "TR" - }, - { - "label": "Turkmenistan", - "value": "TM" - }, - { - "label": "Turks and Caicos Islands", - "value": "TC" - }, - { - "label": "Tuvalu", - "value": "TV" - }, - { - "label": "Uganda", - "value": "UG" - }, - { - "label": "Ukraine", - "value": "UA" - }, - { - "label": "United Arab Emirates", - "value": "AE" - }, - { - "label": "United Kingdom", - "value": "GB" - }, - { - "label": "United States Virgin Islands", - "value": "VI" - }, - { - "label": "United States", - "value": "UM" - }, - { - "label": "United States", - "value": "US" - }, - { - "label": "Uruguay", - "value": "UY" - }, - { - "label": "Uzbekistan", - "value": "UZ" - }, - { - "label": "Vanuatu", - "value": "VU" - }, - { - "label": "Venezuela", - "value": "VE" - }, - { - "label": "Vietnam", - "value": "VN" - }, - { - "label": "Wallis and Futuna", - "value": "WF" - }, - { - "label": "Western Sahara", - "value": "EH" - }, - { - "label": "Yemen", - "value": "YE" - }, - { - "label": "Zambia", - "value": "ZM" - }, - { - "label": "Zimbabwe", - "value": "ZW" - }, - { - "label": "Åland Islands", - "value": "AX" - }] - } - } - }, - about: { - type: 'folder', - before: '', - label: 'about', - appearanceId: 'about', - - section: { - type: 'section', - - onrender: function () { - var component = this, - manifest = chrome.runtime.getManifest(), - user = satus.modules.user(), - skeleton_about = { - extension_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'extension' - }, - extension_section: { - type: 'section', - label: 'extension', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - version: { - type: 'text', - label: 'version', - value: manifest.version - }, - permissions: { - type: 'text', - label: 'permissions', - value: manifest.permissions.join(', ').replace('https://www.youtube.com/', 'YouTube') - }, - }, - browser_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'browser' - }, - browser_section: { - type: 'section', - label: 'browser', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - name: { - type: 'text', - label: 'name', - value: user.browser.name - }, - version: { - type: 'text', - label: 'version', - value: user.browser.version - }, - platform: { - type: 'text', - label: 'platform', - value: user.browser.platform - }, - video_formats: { - type: 'text', - label: 'videoFormats', - value: '' - }, - audio_formats: { - type: 'text', - label: 'audioFormats', - value: '' - }, - flash: { - type: 'text', - label: 'flash', - value: !!user.browser.flash - } - }, - os_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'os' - }, - os_section: { - type: 'section', - label: 'os', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - os_name: { - type: 'text', - label: 'name', - value: user.os.name - }, - - os_type: { - type: 'text', - label: 'type', - value: user.os.type - } - }, - device_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'device' - }, - device_section: { - type: 'section', - label: 'device', - style: { - 'flex-direction': 'column', - 'flex': '0' - }, - - screen: { - type: 'text', - label: 'screen', - value: user.device.screen - }, - cores: { - type: 'text', - label: 'cores', - value: user.device.cores - }, - gpu: { - type: 'text', - label: 'gpu', - value: user.device.gpu - }, - ram: { - type: 'text', - label: 'ram', - value: user.device.ram - } - } - }, - video_formats = [], - audio_formats = []; - - for (var key in user.browser.video) { - if (user.browser.video[key] !== false) { - video_formats.push(key); - } - } - - for (var key in user.browser.audio) { - if (user.browser.audio[key] !== false) { - audio_formats.push(key); - } - } - - skeleton_about.browser_section.video_formats.value = video_formats.join(', '); - skeleton_about.browser_section.audio_formats.value = audio_formats.join(', '); - - setTimeout(function () { - satus.render(skeleton_about, component.parentNode); - - component.remove(); - }); - } - } - } - } -}; - - -/*-------------------------------------------------------------- -# MIXER ---------------------------------------------------------------*/ - -skeleton.header.section_end.button_vert.onClickRender.mixer = { - type: 'folder', - before: '', - label: 'mixer', - class: 'satus-folder--mixer', - appearanceId: 'mixer', - onopen: function () { - var self = this; - - if (chrome && chrome.tabs) { - chrome.tabs.query({}, function (tabs) { - var mixer = {}; - - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - var tab = tabs[i]; - - if (/(\?|\&)v=/.test(tab.url)) { - mixer[i] = { - type: 'section', - class: 'satus-section--mixer', - style: { - 'background': 'url(https://img.youtube.com/vi/' + tab.url.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '/0.jpg) center center / cover no-repeat #000', - }, - - section: { - type: 'section', - dataset: { - 'noConnectionLabel': satus.locale.getMessage('tryToReloadThePage') || 'tryToReloadThePage' - }, - - mixer_volume: { - type: 'slider', - label: 'volume', - dataset: { - id: tab.id, - element: 'audio' - }, - max: 100, - onrender: function () { - var self = this; - - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'request_volume' - }, function (response) { - if (response) { - document.querySelector('div[data-element="audio"][data-id="' + Number(self.dataset.id) + '"]').change(response.value); - } else { - self.parentNode.parentNode.classList.add('noconnection'); - } - }); - }, - onchange: function (value) { - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'change_volume', - volume: value - }); - } - }, - mixer_playback_speed: { - type: 'slider', - label: 'playbackSpeed', - dataset: { - id: tab.id, - element: 'playback_speed' - }, - min: .1, - max: 8, - step: .05, - onrender: function () { - var self = this; - - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'request_playback_speed' - }, function (response) { - if (response) { - document.querySelector('div[data-element="playback_speed"][data-id="' + Number(self.dataset.id) + '"]').change(Number(response.value)); - } else { - self.parentNode.parentNode.classList.add('noconnection'); - } - }); - }, - onchange: function (value) { - chrome.tabs.sendMessage(Number(this.dataset.id), { - name: 'change_playback_speed', - playback_speed: value - }); - } - } - } - }; - } - } - } - - if (Object.entries(mixer).length === 0) { - mixer.section = { - type: 'section', - - message: { - type: 'text', - class: 'satus-section--message', - label: 'noOpenVideoTabs' - } - }; - } - - document.querySelector('.satus-dialog__scrim').click(); - - satus.render(mixer, self); - }); - } - } -}; - - -/*-------------------------------------------------------------- -# MAIN ---------------------------------------------------------------*/ - -skeleton.main = { - type: 'main', - appearanceId: 'home', - on: { - change: function (container) { - var item = this.history[this.history.length - 1], - id = item.appearanceId; - - if (!satus.isset(document.body.dataset.search)) { - document.body.dataset.search = true; - } else { - document.body.dataset.search = false; - } - - document.body.dataset.appearance = id; - container.dataset.appearance = id; - - document.querySelector('.satus-text--title').innerText = satus.locale.getMessage(item.label) || 'ImprovedTube'; - } - }, - - section: { - type: 'section' - }, - - info: { - type: 'section', - class: 'satus-section--info', - - frame_by_frame: { - type: 'button', - innerHTML: 'Frame By Frame by ImprovedTube team', - style: { - 'margin': '0 0 8px', - 'width': '100%', - 'textAlign': 'center', - 'background': '#4b4abf' - }, - onclick: function () { - window.open('https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh', '_blank'); - } - }, - email: { - type: 'button', - label: 'Email', - title: 'bugs@improvedtube.com', - onclick: function () { - window.open('mailto:bugs@improvedtube.com', '_blank'); - } - }, - github: { - type: 'button', - label: 'GitHub', - title: '/ImprovedTube/ImprovedTube', - onclick: function () { - window.open('https://github.com/ImprovedTube/ImprovedTube/', '_blank'); - } - }, - website: { - type: 'button', - label: 'Website', - title: 'improvedtube.com', - onclick: function () { - window.open('http://www.improvedtube.com/', '_blank'); - } - }, - firefox: { - type: 'button', - label: 'Firefox', - onclick: function () { - window.open('https://addons.mozilla.org/en-US/firefox/addon/youtube-addon/', '_blank'); - } - } - } -}; - - -/*-------------------------------------------------------------- -# GENERAL ---------------------------------------------------------------*/ - -skeleton.main.section.general = { - type: 'folder', - before: '', - label: 'general', - class: 'satus-folder--general', - appearanceId: 'general', - - section: { - type: 'section', - - /*legacy_youtube: { - type: 'switch', - label: 'legacyYoutube', - tags: 'old' - },*/ - youtube_home_page: { - type: 'select', - label: 'youtubeHomePage', - options: [{ - label: 'home', - value: '/' - }, { - label: 'trending', - value: '/feed/trending' - }, { - label: 'subscriptions', - value: '/feed/subscriptions' - }, { - label: 'history', - value: '/feed/history' - }, { - label: 'watchLater', - value: '/playlist?list=WL' - }, { - label: 'search', - value: 'search' - }, { - label: '👍 liked', - value: '/playlist?list=LL' - }, { - label: 'library', - value: '/feed/library' - }], - tags: 'trending,subscriptions,history,watch,search' - }, - collapse_of_subscription_sections: { - type: 'switch', - label: 'collapseOfSubscriptionSections' - }, - remove_related_search_results: { - type: 'switch', - label: 'removeRelatedSearchResults' - }, - mark_watched_videos: { - type: 'switch', - label: 'markWatchedVideos', - onclick: function () { - setTimeout(function () { - if (satus.storage.mark_watched_videos && !satus.storage.track_watched_videos) { - document.querySelector('.satus-switch > input[data-storage-key="track_watched_videos"]').click(); - } - }, 50); - } - }, - track_watched_videos: { - type: 'switch', - label: 'trackWatchedVideos' - }, - delete_watched_videos: { - type: 'button', - label: 'deleteWatchedVideos', - onrender: function () { - this.firstChild.innerText += ' (' + (satus.storage.watched ? Object.keys(satus.storage.watched).length : 0) + ')'; - }, - onclick: function () { - var component = this; - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - label: 'thisWillRemoveAllWatchedVideos', - style: { - 'width': '100%', - 'opacity': '.8' - } - }, - section: { - type: 'section', - class: 'controls', - style: { - 'justify-content': 'flex-end', - 'display': 'flex' - }, - - cancel: { - type: 'button', - label: 'cancel', - onclick: function () { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - accept: { - type: 'button', - label: 'accept', - onclick: function () { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - satus.storage.watched = {}; - satus.storage.set('watched', satus.storage.watched); - component.firstChild.innerText = component.firstChild.innerText.replace(/\d+/,0); - - scrim[scrim.length - 1].click(); - } - } - } - }); - } - }, - only_one_player_instance_playing: { - type: 'switch', - label: 'onlyOnePlayerInstancePlaying' - }, - confirmation_before_closing: { - type: 'switch', - label: 'confirmationBeforeClosing', - tags: 'random prevent close exit' - }, - add_scroll_to_top: { - type: 'switch', - label: 'addScrollToTop', - tags: 'up' - }, - limit_page_width: { - type: 'switch', - label: 'limitPageWidth', - value: true - }, - scroll_bar: { - type: 'select', - label: 'scrollBar', - tags: 'remove,hide', - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'hidden', - value: 'hidden' - }, { - label: 'overlay', - value: 'overlay' - }], - } - }, - - section_label__thumbnails: { - type: 'text', - class: 'satus-section--label', - label: 'thumbnails' - }, - - thumbnails_section: { - type: 'section', - - squared_user_images: { - type: 'switch', - label: 'squaredUserImages', - tags: 'avatar' - }, - hd_thumbnails: { - type: 'switch', - label: 'hdThumbnails', - tags: 'preview quality' - }, - hide_animated_thumbnails: { - type: 'switch', - label: 'hideAnimatedThumbnails', - tags: 'preview' - }, - hide_thumbnail_overlay: { - type: 'switch', - label: 'hideThumbnailOverlay', - tags: 'preview' - } - } -}; - - -/*-------------------------------------------------------------- -# APPEARANCE ---------------------------------------------------------------*/ - -skeleton.main.section.appearance = { - type: 'folder', - before: '', - label: 'appearance', - class: 'satus-folder--appearance', - appearanceId: 'appearance', - - header: { - type: 'folder', - label: 'header', - class: 'satus-folder--header', - - section: { - type: 'section', - - header_position: { - type: 'select', - label: 'position', - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'hidden', - value: 'hidden' - }, { - label: 'hover', - value: 'hover' - }, { - label: 'hiddenOnVideoPage', - value: 'hidden_on_video_page' - }, { - label: 'hoverOnVideoPage', - value: 'hover_on_video_page' - }, { - label: 'static', - value: 'static' - }], - tags: 'hide,hover,static,top' - }, - header_improve_logo: { - type: 'switch', - label: 'improveLogo', - tags: 'youtube' - }, - header_hide_right_buttons: { - type: 'switch', - label: 'hideRightButtons', - tags: 'user' - }, - header_hide_country_code: { - type: 'switch', - label: 'hideCountryCode', - tags: 'country,code' - }, - hide_voice_search_button: { - type: 'switch', - label: 'hideVoiceSearchButton' - } - } - }, - player: { - type: 'folder', - label: 'player', - class: 'satus-folder--player', - - section: { - type: 'section', - - player_size: { - type: 'select', - label: 'playerSize', - options: [{ - label: 'doNotChange', - value: 'do_not_change' - }, { - label: 'fullWindow', - value: 'full_window' - }, { - label: 'fitToWindow', - value: 'fit_to_window' - }, { - label: '240p', - value: '240p' - }, { - label: '360p', - value: '360p' - }, { - label: '480p', - value: '480p' - }, { - label: '576p', - value: '576p' - }, { - label: '720p', - value: '720p' - }, { - label: '1080p', - value: '1080p' - }, { - label: '1440p', - value: '1440p' - }, { - label: '2160p', - value: '2160p' - }] - }, - forced_theater_mode: { - type: 'switch', - label: 'forcedTheaterMode', - tags: 'wide' - }, - hide_gradient_bottom: { - type: 'switch', - label: 'hideGradientBottom' - }, - player_hide_skip_overlay: { - type: 'switch', - label: 'hideSkipOverlay', - value: false, - tags: 'remove,hide' - }, - player_remaining_duration: { - type: 'switch', - label: 'showRemainingDuration', - value: false - }, - always_show_progress_bar: { - type: 'switch', - label: 'alwaysShowProgressBar' - }, - player_color: { - label: 'playerColor', - type: 'select', - options: [{ - label: 'red', - value: 'red' - }, { - label: 'pink', - value: 'pink' - }, { - label: 'purple', - value: 'purple' - }, { - label: 'deepPurple', - value: 'deep_purple' - }, { - label: 'indigo', - value: 'indigo' - }, { - label: 'blue', - value: 'blue' - }, { - label: 'lightBlue', - value: 'light_blue' - }, { - label: 'cyan', - value: 'cyan' - }, { - label: 'teal', - value: 'teal' - }, { - label: 'green', - value: 'green' - }, { - label: 'lightGreen', - value: 'light_green' - }, { - label: 'lime', - value: 'lime' - }, { - label: 'yellow', - value: 'yellow' - }, { - label: 'amber', - value: 'amber' - }, { - label: 'orange', - value: 'orange' - }, { - label: 'deepOrange', - value: 'deep_orange' - }, { - label: 'brown', - value: 'brown' - }, { - label: 'blueGray', - value: 'blue_gray' - }, { - label: 'white', - value: 'white' - }], - tags: 'style' - }, - player_transparent_background: { - type: 'switch', - label: 'transparentBackground' - }, - player_hide_annotations: { - type: 'switch', - label: 'hideAnnotations', - tags: 'hide,remove,elements' - }, - player_hide_cards: { - type: 'switch', - label: 'hideCards', - tags: 'hide,remove,elements' - }, - player_show_cards_on_mouse_hover: { - type: 'switch', - label: 'showCardsOnMouseHover', - tags: 'hide,remove,elements' - }, - player_hide_endscreen: { - type: 'switch', - label: 'hideEndscreen' - }, - player_hd_thumbnail: { - type: 'switch', - label: 'hdThumbnail', - tags: 'preview' - }, - hide_scroll_for_details: { - type: 'switch', - label: 'hideScrollForDetails', - tags: 'remove,hide' - } - } - }, - details: { - type: 'folder', - label: 'details', - class: 'satus-folder--details', - - section: { - type: 'section', - - hide_details: { - type: 'switch', - label: 'hideDetails', - tags: 'hide,remove' - }, - hide_views_count: { - type: 'switch', - label: 'hideViewsCount', - tags: 'hide,remove' - }, - hide_date: { - type: 'switch', - label: 'hideDate', - tags: 'hide,remove' - }, - likes: { - type: 'select', - label: 'likes', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'iconsOnly', - value: 'icons_only' - }, { - label: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - hide_share_button: { - type: 'switch', - label: 'hideShareButton', - tags: 'hide,remove' - }, - hide_save_button: { - type: 'switch', - label: 'hideSaveButton', - tags: 'hide,remove' - }, - hide_more_button: { - type: 'switch', - label: 'hideMoreButton', - tags: 'hide,remove' - }, - description: { - type: 'select', - label: 'description', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'expanded', - value: 'expanded' - }, { - label: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - how_long_ago_the_video_was_uploaded: { - type: 'switch', - label: 'howLongAgoTheVideoWasUploaded' - }, - channel_videos_count: { - type: 'switch', - label: 'showChannelVideosCount' - }, - red_dislike_button: { - type: 'switch', - label: 'redDislikeButton' - } - } - }, - sidebar: { - type: 'folder', - label: 'sidebar', - class: 'satus-folder--sidebar', - - section: { - type: 'section', - - - related_videos: { - type: 'select', - label: 'relatedVideos', - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'collapsed', - value: 'collapsed' - }, { - label: 'hidden', - value: 'hidden' - }], - tags: 'right' - }, - - livechat: { - type: 'select', - label: 'liveChat', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'collapsed', - value: 'collapsed' - }, { - label: 'hidden', - value: 'hidden' - }] - }, - hide_playlist: { - type: 'switch', - label: 'hidePlaylist' - }, - sidebar_left: { - type: 'switch', - label: 'Sidebar to the Left' - }, - thumbnails_right: { - type: 'switch', - label: 'Thumbnails to the Right' - }, - thumbnails_hide: { - type: 'switch', - label: 'Hide Thumbnails' - } - } - }, - comments: { - type: 'folder', - label: 'comments', - class: 'satus-folder--comments', - - section: { - type: 'section', - - comments: { - type: 'select', - label: 'comments', - - options: [{ - label: 'normal', - value: 'normal' - }, { - label: 'collapsed', - value: 'collapsed' - }, { - label: 'hidden', - value: 'hidden' - }] - } - } - }, - footer: { - type: 'folder', - label: 'footer', - class: 'satus-folder--footer', - - section: { - type: 'section', - - hide_footer: { - type: 'switch', - label: 'hideFooter', - tags: 'bottom' - } - } - } -}; - - -/*-------------------------------------------------------------- -# THEMES ---------------------------------------------------------------*/ - -skeleton.main.section.themes = { - type: 'folder', - before: '', - label: 'themes', - class: 'satus-folder--themes', - appearanceId: 'themes', - - section: { - type: 'section', - - my_colors: { - type: 'folder', - label: 'myColors', - - section: { - type: 'section', - - theme_my_colors: { - type: 'switch', - label: 'activate' - } - }, - - section2: { - type: 'section', - - theme_primary_color: { - type: 'color-picker', - label: 'primaryColor', - value: 'rgba(200,200,200)' - }, - theme_text_color: { - type: 'color-picker', - label: 'textColor', - value: 'rgba(25,25,25)' - } - } - }, - filters: { - type: 'folder', - label: 'filters', - - section: { - type: 'section', - - bluelight: { - type: 'slider', - label: 'bluelight', - step: 1, - max: 90, - value: 0 - }, - dim: { - type: 'slider', - label: 'dim', - step: 1, - max: 90, - value: 0 - } - } - }, - schedule: { - type: 'folder', - label: 'schedule', - - section: { - type: 'section', - - schedule: { - type: 'select', - label: 'schedule', - - options: [{ - label: 'disabled', - value: 'disabled' - }, { - label: 'sunsetToSunrise', - value: 'sunset_to_sunrise' - }, { - label: 'systemPeferenceDark', - value: 'system_peference_dark' - }, { - label: 'systemPeferenceLight', - value: 'system_peference_light' - }] - }, - schedule_time_from: { - type: 'select', - label: 'timeFrom', - options: [{ - label: '00:00', - value: '00:00' - }, { - label: '01:00', - value: '01:00' - }, { - label: '02:00', - value: '02:00' - }, { - label: '03:00', - value: '03:00' - }, { - label: '04:00', - value: '04:00' - }, { - label: '05:00', - value: '05:00' - }, { - label: '06:00', - value: '06:00' - }, { - label: '07:00', - value: '07:00' - }, { - label: '08:00', - value: '08:00' - }, { - label: '09:00', - value: '09:00' - }, { - label: '10:00', - value: '10:00' - }, { - label: '11:00', - value: '11:00' - }, { - label: '12:00', - value: '12:00' - }, { - label: '13:00', - value: '13:00' - }, { - label: '14:00', - value: '14:00' - }, { - label: '15:00', - value: '15:00' - }, { - label: '16:00', - value: '16:00' - }, { - label: '17:00', - value: '17:00' - }, { - label: '18:00', - value: '18:00' - }, { - label: '19:00', - value: '19:00' - }, { - label: '20:00', - value: '20:00' - }, { - label: '21:00', - value: '21:00' - }, { - label: '22:00', - value: '22:00' - }, { - label: '23:00', - value: '23:00' - }] - }, - schedule_time_to: { - type: 'select', - label: 'timeTo', - options: [{ - label: '00:00', - value: '00:00' - }, { - label: '01:00', - value: '01:00' - }, { - label: '02:00', - value: '02:00' - }, { - label: '03:00', - value: '03:00' - }, { - label: '04:00', - value: '04:00' - }, { - label: '05:00', - value: '05:00' - }, { - label: '06:00', - value: '06:00' - }, { - label: '07:00', - value: '07:00' - }, { - label: '08:00', - value: '08:00' - }, { - label: '09:00', - value: '09:00' - }, { - label: '10:00', - value: '10:00' - }, { - label: '11:00', - value: '11:00' - }, { - label: '12:00', - value: '12:00' - }, { - label: '13:00', - value: '13:00' - }, { - label: '14:00', - value: '14:00' - }, { - label: '15:00', - value: '15:00' - }, { - label: '16:00', - value: '16:00' - }, { - label: '17:00', - value: '17:00' - }, { - label: '18:00', - value: '18:00' - }, { - label: '19:00', - value: '19:00' - }, { - label: '20:00', - value: '20:00' - }, { - label: '21:00', - value: '21:00' - }, { - label: '22:00', - value: '22:00' - }, { - label: '23:00', - value: '23:00' - }] + label: { + component: 'span', + text: 'general' } - } - }, - font: { - type: 'select', - label: 'font', - options: [{ - label: 'Youtube standard (Roboto)', - value: 'Default' - }, { - label: 'Open Sans', - value: 'Open+Sans' - }, { - label: 'Lato', - value: 'Lato' - }, { - label: 'Montserrat', - value: 'Montserrat' - }, { - label: 'Source Sans Pro', - value: 'Source+Sans+Pro' - }, { - label: 'Roboto Condensed', - value: 'Roboto+Condensed' - }, { - label: 'Oswald', - value: 'Oswald' - }, { - label: 'Comfortaa', - value: 'Comfortaa' - }, { - label: 'Roboto Mono', - value: 'Roboto+Mono' - }, { - label: 'Raleway', - value: 'Raleway' - }, { - label: 'Poppins', - value: 'Poppins' - }, { - label: 'Noto Sans', - value: 'Noto+Sans' - }, { - label: 'Roboto Slab', - value: 'Roboto+Slab' - }, { - label: 'Marriweather', - value: 'Marriweather' - }, { - label: 'PT Sans', - value: 'PT+Sans' - }] - } - }, - - default_dark_theme: { - type: 'switch', - label: 'dark', - class: 'satus-switch--dark', - - onchange: themeChange - }, - night_theme: { - type: 'switch', - label: 'night', - class: 'satus-switch--night', - - onchange: themeChange - }, - dawn_theme: { - type: 'switch', - label: 'dawn', - class: 'satus-switch--dawn', - - onchange: themeChange - }, - sunset_theme: { - type: 'switch', - label: 'sunset', - class: 'satus-switch--sunset', - - onchange: themeChange - }, - desert_theme: { - type: 'switch', - label: 'desert', - class: 'satus-switch--desert', - - onchange: themeChange - }, - plain_theme: { - type: 'switch', - label: 'plain', - class: 'satus-switch--plain', - - onchange: themeChange - }, - black_theme: { - type: 'switch', - label: 'black', - class: 'satus-switch--black', - - onchange: themeChange - } -}; - - -/*-------------------------------------------------------------- -# PLAYER ---------------------------------------------------------------*/ - -skeleton.main.section.player = { - type: 'folder', - before: '', - label: 'player', - class: 'satus-folder--player', - appearanceId: 'player', - - general: { - type: 'section', - - player_autoplay: { - type: 'switch', - label: 'autoplay', - value: true - }, - forced_play_video_from_the_beginning: { - type: 'switch', - label: 'forcedPlayVideoFromTheBeginning' - }, - player_autofullscreen: { - type: 'switch', - label: 'autoFullscreen' - }, - player_ads: { - label: 'ads', - type: 'select', - options: [{ - label: 'onAllVideos', - value: 'all_videos', - default: 'true' - }, { - label: 'onSubscribedChannels', - value: 'subscribed_channels' - }, { - label: 'blockMusic', - value: 'block_music' - }, { - label: 'blockAll', - value: 'block_all' - }] - }, - player_autopause_when_switching_tabs: { - type: 'switch', - label: 'autopauseWhenSwitchingTabs' - }, - player_forced_playback_speed: { - type: 'switch', - label: 'forcedPlaybackSpeed', - id: 'forced-playback-speed', - onrender: function () { - this.dataset.value = satus.storage.player_forced_playback_speed; }, - onchange: function () { - this.dataset.value = satus.storage.player_forced_playback_speed; - } - }, - player_playback_speed: { - type: 'slider', - label: 'playbackSpeed', - textarea: true, - value: 1, - min: .1, - max: 8, - step: .05 - }, - subtitles: { - type: 'folder', - label: 'subtitles', - - section: { - type: 'section', - - player_subtitles: { - type: 'switch', - label: 'subtitles' - }, - subtitles_language: { - type: 'select', - label: 'language', - options: [ - { - value: 'default', - label: 'default' - }, - { - value: 'af', - label: 'Afrikaans' - }, - { - value: 'am', - label: 'Amharic' - }, - { - value: 'ar', - label: 'Arabic' - }, - { - value: 'az', - label: 'Azerbaijani' - }, - { - value: 'be', - label: 'Belarusian' - }, - { - value: 'bg', - label: 'Bulgarian' - }, - { - value: 'bn', - label: 'Bangla' - }, - { - value: 'bs', - label: 'Bosnian' - }, - { - value: 'ca', - label: 'Catalan' - }, - { - value: 'ceb', - label: 'Cebuano' - }, - { - value: 'co', - label: 'Corsican' - }, - { - value: 'cs', - label: 'Czech' - }, - { - value: 'cy', - label: 'Welsh' - }, - { - value: 'da', - label: 'Danish' - }, - { - value: 'de', - label: 'German' - }, - { - value: 'el', - label: 'Greek' - }, - { - value: 'en', - label: 'English' - }, - { - value: 'eo', - label: 'Esperanto' - }, - { - value: 'es', - label: 'Spanish' - }, - { - value: 'et', - label: 'Estonian' - }, - { - value: 'eu', - label: 'Basque' - }, - { - value: 'fa', - label: 'Persian' - }, - { - value: 'fi', - label: 'Finnish' - }, - { - value: 'fil', - label: 'Filipino' - }, - { - value: 'fr', - label: 'French' - }, - { - value: 'fy', - label: 'Western Frisian' - }, - { - value: 'ga', - label: 'Irish' - }, - { - value: 'gd', - label: 'Scottish Gaelic' - }, - { - value: 'gl', - label: 'Galician' - }, - { - value: 'gu', - label: 'Gujarati' - }, - { - value: 'ha', - label: 'Hausa' - }, - { - value: 'haw', - label: 'Hawaiian' - }, - { - value: 'hi', - label: 'Hindi' - }, - { - value: 'hmn', - label: 'Hmong' - }, - { - value: 'hr', - label: 'Croatian' - }, - { - value: 'ht', - label: 'Haitian Creole' - }, - { - value: 'hu', - label: 'Hungarian' - }, - { - value: 'hy', - label: 'Armenian' - }, - { - value: 'id', - label: 'Indonesian' - }, - { - value: 'ig', - label: 'Igbo' - }, - { - value: 'is', - label: 'Icelandic' - }, - { - value: 'it', - label: 'Italian' - }, - { - value: 'iw', - label: 'Hebrew' - }, - { - value: 'ja', - label: 'Japanese' - }, - { - value: 'jv', - label: 'Javanese' - }, - { - value: 'ka', - label: 'Georgian' - }, - { - value: 'kk', - label: 'Kazakh' - }, - { - value: 'km', - label: 'Khmer' - }, - { - value: 'kn', - label: 'Kannada' - }, - { - value: 'ko', - label: 'Korean' - }, - { - value: 'ku', - label: 'Kurdish' - }, - { - value: 'ky', - label: 'Kyrgyz' - }, - { - value: 'la', - label: 'Latin' - }, - { - value: 'lb', - label: 'Luxembourgish' - }, - { - value: 'lo', - label: 'Lao' - }, - { - value: 'lt', - label: 'Lithuanian' - }, - { - value: 'lv', - label: 'Latvian' - }, - { - value: 'mg', - label: 'Malagasy' - }, - { - value: 'mi', - label: 'Maori' - }, - { - value: 'mk', - label: 'Macedonian' - }, - { - value: 'ml', - label: 'Malayalam' - }, - { - value: 'mn', - label: 'Mongolian' - }, - { - value: 'mr', - label: 'Marathi' - }, - { - value: 'ms', - label: 'Malay' - }, - { - value: 'mt', - label: 'Maltese' - }, - { - value: 'my', - label: 'Burmese' - }, - { - value: 'ne', - label: 'Nepali' - }, - { - value: 'nl', - label: 'Dutch' - }, - { - value: 'no', - label: 'Norwegian' - }, - { - value: 'ny', - label: 'Nyanja' - }, - { - value: 'or', - label: 'Odia' - }, - { - value: 'pa', - label: 'Punjabi' - }, - { - value: 'pl', - label: 'Polish' - }, - { - value: 'ps', - label: 'Pashto' - }, - { - value: 'pt', - label: 'Portuguese' - }, - { - value: 'ro', - label: 'Romanian' - }, - { - value: 'ru', - label: 'Russian' - }, - { - value: 'rw', - label: 'Kinyarwanda' + appearance: { + component: 'button', + class: 'satus-button--appearance', + on: { + click: { + component: 'section', + class: 'satus-section--appearance', + + header: { + component: 'button', + text: 'header', + class: 'satus-button--header', + on: { + click: { + component: 'section', + class: 'satus-section--card', + + header_position: { + component: 'select', + text: 'position', + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'hidden', + value: 'hidden' + }, { + text: 'hover', + value: 'hover' + }, { + text: 'hiddenOnVideoPage', + value: 'hidden_on_video_page' + }, { + text: 'hoverOnVideoPage', + value: 'hover_on_video_page' + }, { + text: 'static', + value: 'static' + }], + tags: 'hide,hover,static,top' + }, + header_improve_logo: { + component: 'switch', + text: 'improveLogo', + tags: 'youtube' + }, + header_hide_right_buttons: { + component: 'switch', + text: 'hideRightButtons', + tags: 'user' + }, + header_hide_country_code: { + component: 'switch', + text: 'hideCountryCode', + tags: 'country,code' + }, + hide_voice_search_button: { + component: 'switch', + text: 'hideVoiceSearchButton' + } + } + } }, - { - value: 'sd', - label: 'Sindhi' + player: { + component: 'button', + text: 'player', + class: 'satus-button--player', + on: { + click: { + component: 'section', + class: 'satus-section--card', + + player_size: { + component: 'select', + text: 'playerSize', + options: [{ + text: 'doNotChange', + value: 'do_not_change' + }, { + text: 'fullWindow', + value: 'full_window' + }, { + text: 'fitToWindow', + value: 'fit_to_window' + }, { + text: '240p', + value: '240p' + }, { + text: '360p', + value: '360p' + }, { + text: '480p', + value: '480p' + }, { + text: '576p', + value: '576p' + }, { + text: '720p', + value: '720p' + }, { + text: '1080p', + value: '1080p' + }, { + text: '1440p', + value: '1440p' + }, { + text: '2160p', + value: '2160p' + }] + }, + forced_theater_mode: { + component: 'switch', + text: 'forcedTheaterMode', + tags: 'wide' + }, + hide_gradient_bottom: { + component: 'switch', + text: 'hideGradientBottom' + }, + player_hide_skip_overlay: { + component: 'switch', + text: 'hideSkipOverlay', + value: false, + tags: 'remove,hide' + }, + player_remaining_duration: { + component: 'switch', + text: 'showRemainingDuration', + value: false + }, + always_show_progress_bar: { + component: 'switch', + text: 'alwaysShowProgressBar' + }, + player_color: { + component: 'select', + text: 'playerColor', + options: [{ + text: 'red', + value: 'red' + }, { + text: 'pink', + value: 'pink' + }, { + text: 'purple', + value: 'purple' + }, { + text: 'deepPurple', + value: 'deep_purple' + }, { + text: 'indigo', + value: 'indigo' + }, { + text: 'blue', + value: 'blue' + }, { + text: 'lightBlue', + value: 'light_blue' + }, { + text: 'cyan', + value: 'cyan' + }, { + text: 'teal', + value: 'teal' + }, { + text: 'green', + value: 'green' + }, { + text: 'lightGreen', + value: 'light_green' + }, { + text: 'lime', + value: 'lime' + }, { + text: 'yellow', + value: 'yellow' + }, { + text: 'amber', + value: 'amber' + }, { + text: 'orange', + value: 'orange' + }, { + text: 'deepOrange', + value: 'deep_orange' + }, { + text: 'brown', + value: 'brown' + }, { + text: 'blueGray', + value: 'blue_gray' + }, { + text: 'white', + value: 'white' + }], + tags: 'style' + }, + player_transparent_background: { + component: 'switch', + text: 'transparentBackground' + }, + player_hide_annotations: { + component: 'switch', + text: 'hideAnnotations', + tags: 'hide,remove,elements' + }, + player_hide_cards: { + component: 'switch', + text: 'hideCards', + tags: 'hide,remove,elements' + }, + player_show_cards_on_mouse_hover: { + component: 'switch', + text: 'showCardsOnMouseHover', + tags: 'hide,remove,elements' + }, + player_hide_endscreen: { + component: 'switch', + text: 'hideEndscreen' + }, + player_hd_thumbnail: { + component: 'switch', + text: 'hdThumbnail', + tags: 'preview' + }, + hide_scroll_for_details: { + component: 'switch', + text: 'hideScrollForDetails', + tags: 'remove,hide' + } + } + } }, - { - value: 'si', - label: 'Sinhala' + details: { + component: 'button', + text: 'details', + class: 'satus-button--details', + on: { + click: { + component: 'section', + class: 'satus-section--card', + + hide_details: { + component: 'switch', + text: 'hideDetails', + tags: 'hide,remove' + }, + hide_views_count: { + component: 'switch', + text: 'hideViewsCount', + tags: 'hide,remove' + }, + hide_date: { + component: 'switch', + text: 'hideDate', + tags: 'hide,remove' + }, + likes: { + component: 'select', + text: 'likes', + + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'iconsOnly', + value: 'icons_only' + }, { + text: 'hidden', + value: 'hidden' + }], + tags: 'hide,remove' + }, + hide_share_button: { + component: 'switch', + text: 'hideShareButton', + tags: 'hide,remove' + }, + hide_save_button: { + component: 'switch', + text: 'hideSaveButton', + tags: 'hide,remove' + }, + hide_more_button: { + component: 'switch', + text: 'hideMoreButton', + tags: 'hide,remove' + }, + description: { + component: 'select', + text: 'description', + + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'expanded', + value: 'expanded' + }, { + text: 'hidden', + value: 'hidden' + }], + tags: 'hide,remove' + }, + how_long_ago_the_video_was_uploaded: { + component: 'switch', + text: 'howLongAgoTheVideoWasUploaded' + }, + channel_videos_count: { + component: 'switch', + text: 'showChannelVideosCount' + }, + red_dislike_button: { + component: 'switch', + text: 'redDislikeButton' + } + } + } }, - { - value: 'sk', - label: 'Slovak' + sidebar: { + component: 'button', + text: 'sidebar', + class: 'satus-button--sidebar', + on: { + click: { + component: 'section', + class: 'satus-section--card', + + related_videos: { + component: 'select', + text: 'relatedVideos', + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'collapsed', + value: 'collapsed' + }, { + text: 'hidden', + value: 'hidden' + }], + tags: 'right' + }, + livechat: { + component: 'select', + text: 'liveChat', + + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'collapsed', + value: 'collapsed' + }, { + text: 'hidden', + value: 'hidden' + }] + }, + hide_playlist: { + component: 'switch', + text: 'hidePlaylist' + }, + sidebar_left: { + component: 'switch', + text: 'Sidebar to the Left' + }, + thumbnails_right: { + component: 'switch', + text: 'Thumbnails to the Right' + }, + thumbnails_hide: { + component: 'switch', + text: 'Hide Thumbnails' + } + } + } }, - { - value: 'sl', - label: 'Slovenian' + comments: { + component: 'button', + text: 'comments', + class: 'satus-button--comments', + on: { + click: { + component: 'section', + class: 'satus-section--card', + + comments: { + component: 'select', + text: 'comments', + + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'collapsed', + value: 'collapsed' + }, { + text: 'hidden', + value: 'hidden' + }] + } + } + } }, - { - value: 'sm', - label: 'Samoan' + footer: { + component: 'button', + text: 'footer', + class: 'satus-button--footer', + on: { + click: { + component: 'section', + class: 'satus-section--card', + + hide_footer: { + component: 'switch', + text: 'hideFooter', + tags: 'bottom' + } + } + } + } + } + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'transparent', + stroke: 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': 1.75 }, - { - value: 'sn', - label: 'Shona' + + path: { + component: 'path', + attr: { + d: 'M17 3a2.83 2.83 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z' + } + } + } + }, + label: { + component: 'span', + text: 'appearance' + } + }, + themes: { + component: 'button', + class: 'satus-button--themes', + on: { + click: { + section: { + component: 'section', + class: 'satus-section--card', + + my_colors: { + component: 'button', + text: 'myColors', + on: { + click: { + section: { + component: 'section', + class: 'satus-section--card', + + theme_my_colors: { + component: 'switch', + text: 'activate' + } + }, + + section2: { + component: 'section', + class: 'satus-section--card', + + theme_primary_color: { + component: 'color-picker', + text: 'primaryColor', + value: 'rgba(200,200,200)' + }, + theme_text_color: { + component: 'color-picker', + text: 'textColor', + value: 'rgba(25,25,25)' + } + } + } + } + }, + filters: { + component: 'button', + text: 'filters', + on: { + click: { + component: 'section', + class: 'satus-section--card', + + bluelight: { + component: 'slider', + text: 'bluelight', + step: 1, + max: 90, + value: 0 + }, + dim: { + component: 'slider', + text: 'dim', + step: 1, + max: 90, + value: 0 + } + } + } + }, + schedule: { + component: 'button', + text: 'schedule', + on: { + click: { + component: 'section', + class: 'satus-section--card', + + schedule: { + component: 'select', + text: 'schedule', + + options: [{ + text: 'disabled', + value: 'disabled' + }, { + text: 'sunsetToSunrise', + value: 'sunset_to_sunrise' + }, { + text: 'systemPeferenceDark', + value: 'system_peference_dark' + }, { + text: 'systemPeferenceLight', + value: 'system_peference_light' + }] + }, + schedule_time_from: { + component: 'select', + text: 'timeFrom', + options: [{ + text: '00:00', + value: '00:00' + }, { + text: '01:00', + value: '01:00' + }, { + text: '02:00', + value: '02:00' + }, { + text: '03:00', + value: '03:00' + }, { + text: '04:00', + value: '04:00' + }, { + text: '05:00', + value: '05:00' + }, { + text: '06:00', + value: '06:00' + }, { + text: '07:00', + value: '07:00' + }, { + text: '08:00', + value: '08:00' + }, { + text: '09:00', + value: '09:00' + }, { + text: '10:00', + value: '10:00' + }, { + text: '11:00', + value: '11:00' + }, { + text: '12:00', + value: '12:00' + }, { + text: '13:00', + value: '13:00' + }, { + text: '14:00', + value: '14:00' + }, { + text: '15:00', + value: '15:00' + }, { + text: '16:00', + value: '16:00' + }, { + text: '17:00', + value: '17:00' + }, { + text: '18:00', + value: '18:00' + }, { + text: '19:00', + value: '19:00' + }, { + text: '20:00', + value: '20:00' + }, { + text: '21:00', + value: '21:00' + }, { + text: '22:00', + value: '22:00' + }, { + text: '23:00', + value: '23:00' + }] + }, + schedule_time_to: { + component: 'select', + text: 'timeTo', + options: [{ + text: '00:00', + value: '00:00' + }, { + text: '01:00', + value: '01:00' + }, { + text: '02:00', + value: '02:00' + }, { + text: '03:00', + value: '03:00' + }, { + text: '04:00', + value: '04:00' + }, { + text: '05:00', + value: '05:00' + }, { + text: '06:00', + value: '06:00' + }, { + text: '07:00', + value: '07:00' + }, { + text: '08:00', + value: '08:00' + }, { + text: '09:00', + value: '09:00' + }, { + text: '10:00', + value: '10:00' + }, { + text: '11:00', + value: '11:00' + }, { + text: '12:00', + value: '12:00' + }, { + text: '13:00', + value: '13:00' + }, { + text: '14:00', + value: '14:00' + }, { + text: '15:00', + value: '15:00' + }, { + text: '16:00', + value: '16:00' + }, { + text: '17:00', + value: '17:00' + }, { + text: '18:00', + value: '18:00' + }, { + text: '19:00', + value: '19:00' + }, { + text: '20:00', + value: '20:00' + }, { + text: '21:00', + value: '21:00' + }, { + text: '22:00', + value: '22:00' + }, { + text: '23:00', + value: '23:00' + }] + } + } + } + }, + font: { + component: 'select', + text: 'font', + options: [{ + text: 'Youtube standard (Roboto)', + value: 'Default' + }, { + text: 'Open Sans', + value: 'Open+Sans' + }, { + text: 'Lato', + value: 'Lato' + }, { + text: 'Montserrat', + value: 'Montserrat' + }, { + text: 'Source Sans Pro', + value: 'Source+Sans+Pro' + }, { + text: 'Roboto Condensed', + value: 'Roboto+Condensed' + }, { + text: 'Oswald', + value: 'Oswald' + }, { + text: 'Comfortaa', + value: 'Comfortaa' + }, { + text: 'Roboto Mono', + value: 'Roboto+Mono' + }, { + text: 'Raleway', + value: 'Raleway' + }, { + text: 'Poppins', + value: 'Poppins' + }, { + text: 'Noto Sans', + value: 'Noto+Sans' + }, { + text: 'Roboto Slab', + value: 'Roboto+Slab' + }, { + text: 'Marriweather', + value: 'Marriweather' + }, { + text: 'PT Sans', + value: 'PT+Sans' + }] + } }, - { - value: 'so', - label: 'Somali' + section_2: { + component: 'section', + class: 'satus-section--card satus-section--themes', + + default_dark_theme: { + component: 'switch', + text: 'dark', + class: 'satus-switch--dark' + }, + night_theme: { + component: 'switch', + text: 'night', + class: 'satus-switch--night' + }, + dawn_theme: { + component: 'switch', + text: 'dawn', + class: 'satus-switch--dawn' + }, + sunset_theme: { + component: 'switch', + text: 'sunset', + class: 'satus-switch--sunset' + }, + desert_theme: { + component: 'switch', + text: 'desert', + class: 'satus-switch--desert' + }, + plain_theme: { + component: 'switch', + text: 'plain', + class: 'satus-switch--plain' + }, + black_theme: { + component: 'switch', + text: 'black', + class: 'satus-switch--black' + } + } + } + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'transparent', + stroke: 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': 1.75 }, - { - value: 'sq', - label: 'Albanian' + + path: { + component: 'path', + attr: { + d: 'M12 2.69l5.66 5.66a8 8 0 11-11.31 0z' + } + } + } + }, + label: { + component: 'span', + text: 'themes' + } + }, + player: { + component: 'button', + class: 'satus-button--player', + on: { + click: { + component: 'section', + class: 'satus-section--card', + + player_autoplay: { + component: 'switch', + text: 'autoplay', + value: true }, - { - value: 'sr', - label: 'Serbian' + forced_play_video_from_the_beginning: { + component: 'switch', + text: 'forcedPlayVideoFromTheBeginning' }, - { - value: 'st', - label: 'Southern Sotho' + player_autofullscreen: { + component: 'switch', + text: 'autoFullscreen' }, - { - value: 'su', - label: 'Sundanese' + player_ads: { + text: 'ads', + component: 'select', + options: [{ + text: 'onAllVideos', + value: 'all_videos', + default: 'true' + }, { + text: 'onSubscribedChannels', + value: 'subscribed_channels' + }, { + text: 'blockMusic', + value: 'block_music' + }, { + text: 'blockAll', + value: 'block_all' + }] }, - { - value: 'sv', - label: 'Swedish' + player_autopause_when_switching_tabs: { + component: 'switch', + text: 'autopauseWhenSwitchingTabs' }, - { - value: 'sw', - label: 'Swahili' + player_forced_playback_speed: { + component: 'switch', + text: 'forcedPlaybackSpeed', + id: 'forced-playback-speed', + onrender: function () { + this.dataset.value = satus.storage.player_forced_playback_speed; + }, + onchange: function () { + this.dataset.value = satus.storage.player_forced_playback_speed; + } }, - { - value: 'ta', - label: 'Tamil' + player_playback_speed: { + component: 'slider', + text: 'playbackSpeed', + textarea: true, + value: 1, + min: .1, + max: 8, + step: .05 }, - { - value: 'te', - label: 'Telugu' + subtitles: { + component: 'button', + text: 'subtitles', + on: { + click: { + component: 'section', + class: 'satus-section--card', + + player_subtitles: { + component: 'switch', + text: 'subtitles' + }, + subtitles_language: { + component: 'select', + text: 'language', + options: [{ + value: 'default', + text: 'default' + }, + { + value: 'af', + text: 'Afrikaans' + }, + { + value: 'am', + text: 'Amharic' + }, + { + value: 'ar', + text: 'Arabic' + }, + { + value: 'az', + text: 'Azerbaijani' + }, + { + value: 'be', + text: 'Belarusian' + }, + { + value: 'bg', + text: 'Bulgarian' + }, + { + value: 'bn', + text: 'Bangla' + }, + { + value: 'bs', + text: 'Bosnian' + }, + { + value: 'ca', + text: 'Catalan' + }, + { + value: 'ceb', + text: 'Cebuano' + }, + { + value: 'co', + text: 'Corsican' + }, + { + value: 'cs', + text: 'Czech' + }, + { + value: 'cy', + text: 'Welsh' + }, + { + value: 'da', + text: 'Danish' + }, + { + value: 'de', + text: 'German' + }, + { + value: 'el', + text: 'Greek' + }, + { + value: 'en', + text: 'English' + }, + { + value: 'eo', + text: 'Esperanto' + }, + { + value: 'es', + text: 'Spanish' + }, + { + value: 'et', + text: 'Estonian' + }, + { + value: 'eu', + text: 'Basque' + }, + { + value: 'fa', + text: 'Persian' + }, + { + value: 'fi', + text: 'Finnish' + }, + { + value: 'fil', + text: 'Filipino' + }, + { + value: 'fr', + text: 'French' + }, + { + value: 'fy', + text: 'Western Frisian' + }, + { + value: 'ga', + text: 'Irish' + }, + { + value: 'gd', + text: 'Scottish Gaelic' + }, + { + value: 'gl', + text: 'Galician' + }, + { + value: 'gu', + text: 'Gujarati' + }, + { + value: 'ha', + text: 'Hausa' + }, + { + value: 'haw', + text: 'Hawaiian' + }, + { + value: 'hi', + text: 'Hindi' + }, + { + value: 'hmn', + text: 'Hmong' + }, + { + value: 'hr', + text: 'Croatian' + }, + { + value: 'ht', + text: 'Haitian Creole' + }, + { + value: 'hu', + text: 'Hungarian' + }, + { + value: 'hy', + text: 'Armenian' + }, + { + value: 'id', + text: 'Indonesian' + }, + { + value: 'ig', + text: 'Igbo' + }, + { + value: 'is', + text: 'Icelandic' + }, + { + value: 'it', + text: 'Italian' + }, + { + value: 'iw', + text: 'Hebrew' + }, + { + value: 'ja', + text: 'Japanese' + }, + { + value: 'jv', + text: 'Javanese' + }, + { + value: 'ka', + text: 'Georgian' + }, + { + value: 'kk', + text: 'Kazakh' + }, + { + value: 'km', + text: 'Khmer' + }, + { + value: 'kn', + text: 'Kannada' + }, + { + value: 'ko', + text: 'Korean' + }, + { + value: 'ku', + text: 'Kurdish' + }, + { + value: 'ky', + text: 'Kyrgyz' + }, + { + value: 'la', + text: 'Latin' + }, + { + value: 'lb', + text: 'Luxembourgish' + }, + { + value: 'lo', + text: 'Lao' + }, + { + value: 'lt', + text: 'Lithuanian' + }, + { + value: 'lv', + text: 'Latvian' + }, + { + value: 'mg', + text: 'Malagasy' + }, + { + value: 'mi', + text: 'Maori' + }, + { + value: 'mk', + text: 'Macedonian' + }, + { + value: 'ml', + text: 'Malayalam' + }, + { + value: 'mn', + text: 'Mongolian' + }, + { + value: 'mr', + text: 'Marathi' + }, + { + value: 'ms', + text: 'Malay' + }, + { + value: 'mt', + text: 'Maltese' + }, + { + value: 'my', + text: 'Burmese' + }, + { + value: 'ne', + text: 'Nepali' + }, + { + value: 'nl', + text: 'Dutch' + }, + { + value: 'no', + text: 'Norwegian' + }, + { + value: 'ny', + text: 'Nyanja' + }, + { + value: 'or', + text: 'Odia' + }, + { + value: 'pa', + text: 'Punjabi' + }, + { + value: 'pl', + text: 'Polish' + }, + { + value: 'ps', + text: 'Pashto' + }, + { + value: 'pt', + text: 'Portuguese' + }, + { + value: 'ro', + text: 'Romanian' + }, + { + value: 'ru', + text: 'Russian' + }, + { + value: 'rw', + text: 'Kinyarwanda' + }, + { + value: 'sd', + text: 'Sindhi' + }, + { + value: 'si', + text: 'Sinhala' + }, + { + value: 'sk', + text: 'Slovak' + }, + { + value: 'sl', + text: 'Slovenian' + }, + { + value: 'sm', + text: 'Samoan' + }, + { + value: 'sn', + text: 'Shona' + }, + { + value: 'so', + text: 'Somali' + }, + { + value: 'sq', + text: 'Albanian' + }, + { + value: 'sr', + text: 'Serbian' + }, + { + value: 'st', + text: 'Southern Sotho' + }, + { + value: 'su', + text: 'Sundanese' + }, + { + value: 'sv', + text: 'Swedish' + }, + { + value: 'sw', + text: 'Swahili' + }, + { + value: 'ta', + text: 'Tamil' + }, + { + value: 'te', + text: 'Telugu' + }, + { + value: 'tg', + text: 'Tajik' + }, + { + value: 'th', + text: 'Thai' + }, + { + value: 'tk', + text: 'Turkmen' + }, + { + value: 'tr', + text: 'Turkish' + }, + { + value: 'tt', + text: 'Tatar' + }, + { + value: 'ug', + text: 'Uyghur' + }, + { + value: 'uk', + text: 'Ukrainian' + }, + { + value: 'ur', + text: 'Urdu' + }, + { + value: 'uz', + text: 'Uzbek' + }, + { + value: 'vi', + text: 'Vietnamese' + }, + { + value: 'xh', + text: 'Xhosa' + }, + { + value: 'yi', + text: 'Yiddish' + }, + { + value: 'yo', + text: 'Yoruba' + }, + { + value: 'zh-Hans', + text: 'Chinese (Simplified)' + }, + { + value: 'zh-Hant', + text: 'Chinese (Traditional)' + }, + { + value: 'zu', + text: 'Zulu' + } + ] + }, + subtitles_font_family: { + component: 'select', + text: 'fontFamily', + options: [{ + text: 'Monospaced Serif', + value: 1 + }, { + text: 'Proportional Serif', + value: 2 + }, { + text: 'Monospaced Sans-Serif', + value: 3 + }, { + text: 'Proportional Sans-Serif', + value: 4 + }, { + text: 'Casual', + value: 5 + }, { + text: 'Cursive', + value: 6 + }, { + text: 'Small Capitals', + value: 7 + }] + }, + subtitles_font_color: { + component: 'select', + text: 'fontColor', + options: [{ + text: 'white', + value: '#fff' + }, { + text: 'yellow', + value: '#ff0' + }, { + text: 'green', + value: '#0f0' + }, { + text: 'cyan', + value: '#0ff' + }, { + text: 'blue', + value: '#00f' + }, { + text: 'magenta', + value: '#f0f' + }, { + text: 'red', + value: '#f00' + }, { + text: 'black', + value: '#000' + }] + }, + subtitles_font_size: { + component: 'select', + text: 'fontSize', + options: [{ + text: '50%', + value: -2 + }, { + text: '75%', + value: -1 + }, { + text: '100%', + value: 1 + }, { + text: '150%', + value: 1 + }, { + text: '200%', + value: 2 + }, { + text: '300%', + value: 3 + }, { + text: '400%', + value: 4 + }] + }, + subtitles_background_color: { + component: 'select', + text: 'backgroundColor', + options: [{ + text: 'white', + value: '#fff' + }, { + text: 'yellow', + value: '#ff0' + }, { + text: 'green', + value: '#0f0' + }, { + text: 'cyan', + value: '#0ff' + }, { + text: 'blue', + value: '#00f' + }, { + text: 'magenta', + value: '#f0f' + }, { + text: 'red', + value: '#f00' + }, { + text: 'black', + value: '#000' + }] + }, + subtitles_background_opacity: { + component: 'slider', + text: 'backgroundOpacity', + value: 75, + min: 0, + max: 100, + step: 1 + }, + subtitles_window_color: { + component: 'select', + text: 'windowColor', + options: [{ + text: 'white', + value: '#fff' + }, { + text: 'yellow', + value: '#ff0' + }, { + text: 'green', + value: '#0f0' + }, { + text: 'cyan', + value: '#0ff' + }, { + text: 'blue', + value: '#00f' + }, { + text: 'magenta', + value: '#f0f' + }, { + text: 'red', + value: '#f00' + }, { + text: 'black', + value: '#000' + }] + }, + subtitles_window_opacity: { + component: 'slider', + text: 'windowOpacity', + value: 0, + min: 0, + max: 100, + step: 1 + }, + subtitles_character_edge_style: { + component: 'select', + text: 'characterEdgeStyle', + options: [{ + text: 'none', + value: 0 + }, { + text: 'dropShadow', + value: 4 + }, { + text: 'raised', + value: 1 + }, { + text: 'depressed', + value: 2 + }, { + text: 'outline', + value: 3 + }] + }, + subtitles_font_opacity: { + component: 'slider', + text: 'fontOpacity', + value: 100, + min: 0, + max: 100, + step: 1 + } + } + } }, - { - value: 'tg', - label: 'Tajik' + player_crop_chapter_titles: { + component: 'switch', + text: 'cropChapterTitles', + value: true }, - { - value: 'th', - label: 'Thai' + up_next_autoplay: { + component: 'switch', + text: 'upNextAutoplay', + value: true }, - { - value: 'tk', - label: 'Turkmen' + mini_player: { + component: 'switch', + text: 'customMiniPlayer' }, - { - value: 'tr', - label: 'Turkish' + player_quality: { + component: 'select', + text: 'quality', + options: [{ + text: 'auto', + value: 'auto' + }, { + text: '144p', + value: 'tiny' + }, { + text: '240p', + value: 'small' + }, { + text: '360p', + value: 'medium' + }, { + text: '480p', + value: 'large' + }, { + text: '720p', + value: 'hd720' + }, { + text: '1080p', + value: 'hd1080' + }, { + text: '1440p', + value: 'hd1440' + }, { + text: '2160p', + value: 'hd2160' + }, { + text: '2880p', + value: 'hd2880' + }, { + text: '4320p', + value: 'highres' + }] }, - { - value: 'tt', - label: 'Tatar' + player_h264: { + component: 'switch', + text: 'codecH264', + + onclick: function () { + console.log(this.dataset.value); + if (this.querySelector('input').checked === true) { + satus.render({ + component: 'dialog', + class: 'satus-dialog--confirm', + + message: { + component: 'text', + text: 'youtubeLimitsVideoQualityTo1080pForH264Codec', + style: { + 'width': '100%', + 'opacity': '.8' + } + }, + section: { + component: 'section', + class: 'controls', + style: { + 'justify-content': 'flex-end' + }, + + cancel: { + component: 'button', + text: 'cancel', + onclick: function () { + let scrim = document.querySelectorAll('.satus-dialog__scrim'); + + scrim[scrim.length - 1].click(); + } + }, + ok: { + component: 'button', + text: 'OK', + onclick: function () { + let scrim = document.querySelectorAll('.satus-dialog__scrim'); + + scrim[scrim.length - 1].click(); + } + } + } + }); + } + } }, - { - value: 'ug', - label: 'Uyghur' + player_60fps: { + component: 'switch', + text: 'allow60fps', + value: true }, - { - value: 'uk', - label: 'Ukrainian' + player_SDR: { + component: 'switch', + text: 'forceSDR', + value: false }, - { - value: 'ur', - label: 'Urdu' + player_forced_volume: { + component: 'switch', + text: 'forcedVolume', + id: 'forced-volume', + onrender: function () { + this.dataset.value = satus.storage.player_forced_volume; + }, + onchange: function () { + this.dataset.value = satus.storage.player_forced_volume; + } }, - { - value: 'uz', - label: 'Uzbek' + player_volume: { + component: 'slider', + text: 'volume', + step: 1, + max: 100, + value: 100 }, - { - value: 'vi', - label: 'Vietnamese' + player_loudness_normalization: { + component: 'switch', + text: 'loudnessNormalization', + value: true }, - { - value: 'xh', - label: 'Xhosa' + player_screenshot: { + component: 'button', + text: 'screenshot', + on: { + click: { + component: 'section', + class: 'satus-section--card', + + player_screenshot_button: { + component: 'switch', + text: 'activate' + }, + player_screenshot_save_as: { + component: 'select', + text: 'saveAs', + options: [{ + text: 'file', + value: 'file' + }, { + text: 'clipboard', + value: 'clipboard' + }] + } + } + } }, - { - value: 'yi', - label: 'Yiddish' + player_repeat: { + component: 'button', + text: 'repeat', + on: { + click: { + component: 'section', + class: 'satus-section--card', + + player_repeat_button: { + component: 'switch', + text: 'activate' + }, + player_always_repeat: { + component: 'switch', + text: 'alwaysActive' + } + } + } }, - { - value: 'yo', - label: 'Yoruba' + player_rotate_button: { + component: 'switch', + text: 'rotate' }, - { - value: 'zh-Hans', - label: 'Chinese (Simplified)' + player_popup_button: { + component: 'switch', + text: 'popupPlayer' }, - { - value: 'zh-Hant', - label: 'Chinese (Traditional)' + player_hide_controls: { + component: 'switch', + text: 'hideControls' }, - { - value: 'zu', - label: 'Zulu' + player_hide_controls_options: { + component: 'button', + text: 'hideControlsOptions', + on: { + click: { + component: 'section', + class: 'satus-section--card', + + player_play_button: { + component: 'switch', + text: 'playPause' + }, + player_previous_button: { + component: 'switch', + text: 'previousVideo' + }, + player_next_button: { + component: 'switch', + text: 'nextVideo' + }, + player_volume_button: { + component: 'switch', + text: 'volume' + }, + player_autoplay_button: { + component: 'switch', + text: 'autoplay' + }, + player_settings_button: { + component: 'switch', + text: 'settings' + }, + player_subtitles_button: { + component: 'switch', + text: 'subtitles' + }, + player_miniplayer_button: { + component: 'switch', + text: 'nativeMiniPlayer' + }, + player_view_button: { + component: 'switch', + text: 'viewMode' + }, + player_screen_button: { + component: 'switch', + text: 'screen' + }, + player_remote_button: { + component: 'switch', + text: 'remote' + } + } + } } - ] - }, - subtitles_font_family: { - type: 'select', - label: 'fontFamily', - options: [{ - label: 'Monospaced Serif', - value: 1 - }, { - label: 'Proportional Serif', - value: 2 - }, { - label: 'Monospaced Sans-Serif', - value: 3 - }, { - label: 'Proportional Sans-Serif', - value: 4 - }, { - label: 'Casual', - value: 5 - }, { - label: 'Cursive', - value: 6 - }, { - label: 'Small Capitals', - value: 7 - }] - }, - subtitles_font_color: { - type: 'select', - label: 'fontColor', - options: [{ - label: 'white', - value: '#fff' - }, { - label: 'yellow', - value: '#ff0' - }, { - label: 'green', - value: '#0f0' - }, { - label: 'cyan', - value: '#0ff' - }, { - label: 'blue', - value: '#00f' - }, { - label: 'magenta', - value: '#f0f' - }, { - label: 'red', - value: '#f00' - }, { - label: 'black', - value: '#000' - }] - }, - subtitles_font_size: { - type: 'select', - label: 'fontSize', - options: [{ - label: '50%', - value: -2 - }, { - label: '75%', - value: -1 - }, { - label: '100%', - value: 1 - }, { - label: '150%', - value: 1 - }, { - label: '200%', - value: 2 - }, { - label: '300%', - value: 3 - }, { - label: '400%', - value: 4 - }] - }, - subtitles_background_color: { - type: 'select', - label: 'backgroundColor', - options: [{ - label: 'white', - value: '#fff' - }, { - label: 'yellow', - value: '#ff0' - }, { - label: 'green', - value: '#0f0' - }, { - label: 'cyan', - value: '#0ff' - }, { - label: 'blue', - value: '#00f' - }, { - label: 'magenta', - value: '#f0f' - }, { - label: 'red', - value: '#f00' - }, { - label: 'black', - value: '#000' - }] - }, - subtitles_background_opacity: { - type: 'slider', - label: 'backgroundOpacity', - value: 75, - min: 0, - max: 100, - step: 1 - }, - subtitles_window_color: { - type: 'select', - label: 'windowColor', - options: [{ - label: 'white', - value: '#fff' - }, { - label: 'yellow', - value: '#ff0' - }, { - label: 'green', - value: '#0f0' - }, { - label: 'cyan', - value: '#0ff' - }, { - label: 'blue', - value: '#00f' - }, { - label: 'magenta', - value: '#f0f' - }, { - label: 'red', - value: '#f00' - }, { - label: 'black', - value: '#000' - }] - }, - subtitles_window_opacity: { - type: 'slider', - label: 'windowOpacity', - value: 0, - min: 0, - max: 100, - step: 1 - }, - subtitles_character_edge_style: { - type: 'select', - label: 'characterEdgeStyle', - options: [{ - label: 'none', - value: 0 - }, { - label: 'dropShadow', - value: 4 - }, { - label: 'raised', - value: 1 - }, { - label: 'depressed', - value: 2 - }, { - label: 'outline', - value: 3 - }] + } }, - subtitles_font_opacity: { - type: 'slider', - label: 'fontOpacity', - value: 100, - min: 0, - max: 100, - step: 1 - } - } - }, - player_crop_chapter_titles: { - type: 'switch', - label: 'cropChapterTitles', - value: true - }, - up_next_autoplay: { - type: 'switch', - label: 'upNextAutoplay', - value: true - }, - mini_player: { - type: 'switch', - label: 'customMiniPlayer' - } - }, - - section_label__videos: { - type: 'text', - class: 'satus-section--label', - label: 'videos' - }, - video: { - type: 'section', - - player_quality: { - type: 'select', - label: 'quality', - options: [{ - label: 'auto', - value: 'auto' - }, { - label: '144p', - value: 'tiny' - }, { - label: '240p', - value: 'small' - }, { - label: '360p', - value: 'medium' - }, { - label: '480p', - value: 'large' - }, { - label: '720p', - value: 'hd720' - }, { - label: '1080p', - value: 'hd1080' - }, { - label: '1440p', - value: 'hd1440' - }, { - label: '2160p', - value: 'hd2160' - }, { - label: '2880p', - value: 'hd2880' - }, { - label: '4320p', - value: 'highres' - }] - }, - player_h264: { - type: 'switch', - label: 'codecH264', - - onclick: function () { - console.log(this.dataset.value); - if (this.querySelector('input').checked === true) { - satus.render({ - type: 'dialog', - class: 'satus-dialog--confirm', - - message: { - type: 'text', - label: 'youtubeLimitsVideoQualityTo1080pForH264Codec', - style: { - 'width': '100%', - 'opacity': '.8' - } + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'transparent', + stroke: 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': 1.75 }, - section: { - type: 'section', - class: 'controls', - style: { - 'justify-content': 'flex-end' - }, - - cancel: { - type: 'button', - label: 'cancel', - onclick: function () { - let scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - ok: { - type: 'button', - label: 'OK', - onclick: function () { - let scrim = document.querySelectorAll('.satus-dialog__scrim'); - scrim[scrim.length - 1].click(); - } + path: { + component: 'path', + attr: { + d: 'M5 3l14 9-14 9V3z' } } - }); - } - } - }, - player_60fps: { - type: 'switch', - label: 'allow60fps', - value: true - }, - player_SDR: { - type: 'switch', - label: 'forceSDR', - value: false - }, - }, - - section_label__audio: { - type: 'text', - class: 'satus-section--label', - label: 'audio' - }, - - audio: { - type: 'section', - label: 'audio', - - player_forced_volume: { - type: 'switch', - label: 'forcedVolume', - id: 'forced-volume', - onrender: function () { - this.dataset.value = satus.storage.player_forced_volume; - }, - onchange: function () { - this.dataset.value = satus.storage.player_forced_volume; - } - }, - player_volume: { - type: 'slider', - label: 'volume', - step: 1, - max: 100, - value: 100 - }, - player_loudness_normalization: { - type: 'switch', - label: 'loudnessNormalization', - value: true - } - }, - - section_label__buttons: { - type: 'text', - class: 'satus-section--label', - label: 'buttons' - }, - - buttons: { - type: 'section', - - player_screenshot: { - type: 'folder', - label: 'screenshot', - - section: { - type: 'section', - - player_screenshot_button: { - type: 'switch', - label: 'activate' - }, - player_screenshot_save_as: { - type: 'select', - label: 'saveAs', - options: [{ - label: 'file', - value: 'file' - }, { - label: 'clipboard', - value: 'clipboard' - }] - } - } - }, - player_repeat: { - type: 'folder', - label: 'repeat', - - section: { - type: 'section', - - player_repeat_button: { - type: 'switch', - label: 'activate' - }, - player_always_repeat: { - type: 'switch', - label: 'alwaysActive' - } - } - }, - player_rotate_button: { - type: 'switch', - label: 'rotate' - }, - player_popup_button: { - type: 'switch', - label: 'popupPlayer' - }, - player_hide_controls: { - type: 'switch', - label: 'hideControls' - }, - player_hide_controls_options: { - type: 'folder', - label: 'hideControlsOptions', - - section: { - type: 'section', - - player_play_button: { - type: 'switch', - label: 'playPause' - }, - player_previous_button: { - type: 'switch', - label: 'previousVideo' - }, - player_next_button: { - type: 'switch', - label: 'nextVideo' - }, - player_volume_button: { - type: 'switch', - label: 'volume' - }, - player_autoplay_button: { - type: 'switch', - label: 'autoplay' - }, - player_settings_button: { - type: 'switch', - label: 'settings' - }, - player_subtitles_button: { - type: 'switch', - label: 'subtitles' - }, - player_miniplayer_button: { - type: 'switch', - label: 'nativeMiniPlayer' - }, - player_view_button: { - type: 'switch', - label: 'viewMode' - }, - player_screen_button: { - type: 'switch', - label: 'screen' - }, - player_remote_button: { - type: 'switch', - label: 'remote' - } - } - } - } -}; - - -/*-------------------------------------------------------------- -# PLAYLIST ---------------------------------------------------------------*/ - -skeleton.main.section.playlist = { - type: 'folder', - before: '', - label: 'playlist', - class: 'satus-folder--playlist', - appearanceId: 'playlist', - - section: { - type: 'section', - - playlist_autoplay: { - type: 'switch', - label: 'autoplay', - value: true - }, - playlist_up_next_autoplay: { - type: 'switch', - label: 'upNextAutoplay', - value: true - }, - playlist_reverse: { - type: 'switch', - label: 'reverse' - } - }, - - section2: { - type: 'section', - - playlist_repeat: { - type: 'switch', - label: 'repeat' - }, - playlist_shuffle: { - type: 'switch', - label: 'shuffle' - } - } -}; - - -/*-------------------------------------------------------------- -# CHANNEL ---------------------------------------------------------------*/ - -skeleton.main.section.channel = { - type: 'folder', - before: '', - label: 'channel', - class: 'satus-folder--channel', - appearanceId: 'channel', - - section: { - type: 'section', - - channel_default_tab: { - type: 'select', - label: 'defaultChannelTab', - options: [{ - label: 'home', - value: '/home' - }, { - label: 'videos', - value: '/videos' - }, { - label: 'playlists', - value: '/playlists' - }] - }, - channel_trailer_autoplay: { - type: 'switch', - label: 'trailerAutoplay', - value: true - }, - channel_hide_featured_content: { - type: 'switch', - label: 'hideFeaturedContent' - } - } -}; - - -/*-------------------------------------------------------------- -# SHORTCUTS ---------------------------------------------------------------*/ - -skeleton.main.section.shortcuts = { - type: 'folder', - before: '', - label: 'shortcuts', - class: 'satus-folder--shortcut', - appearanceId: 'shortcuts', - - player_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'player' - }, - - player_section: { - type: 'section', - - shortcut_picture_in_picture: { - type: 'shortcut', - label: 'pictureInPicture' - }, - shortcut_volume: { - type: 'folder', - label: 'volume', - - section_step: { - type: 'section', - - shortcut_volume_step: { - type: 'slider', - label: 'step', - min: 1, - max: 10, - step: 1, - value: 5 - } - }, - - section: { - type: 'section', - - shortcut_increase_volume: { - type: 'shortcut', - label: 'increaseVolume' + } }, - shortcut_decrease_volume: { - type: 'shortcut', - label: 'decreaseVolume' - } - } - }, - shortcut_screenshot: { - type: 'shortcut', - label: 'screenshot' - }, - shortcut_playback_speed: { - type: 'folder', - label: 'playbackSpeed', - - section_step: { - type: 'section', - - shortcut_playback_speed_step: { - type: 'slider', - label: 'step', - min: .05, - max: .5, - step: .05, - value: .05 + label: { + component: 'span', + text: 'player' } }, - - section: { - type: 'section', - - shortcut_increase_playback_speed: { - type: 'shortcut', - label: 'increasePlaybackSpeed' - }, - shortcut_decrease_playback_speed: { - type: 'shortcut', - label: 'decreasePlaybackSpeed' - } - } - }, - shortcut_toggle_controls: { - type: 'shortcut', - label: 'toggleControls' - }, - shortcut_next_video: { - type: 'shortcut', - label: 'nextVideo', - value: { - key: 'N', - shiftKey: true - } - }, - shortcut_prev_video: { - type: 'shortcut', - label: 'previousVideo', - value: { - key: 'P', - shiftKey: true - } - }, - shortcut_play_pause: { - type: 'shortcut', - label: 'playPause', - value: { - key: ' ' - } - }, - shortcut_stop: { - type: 'shortcut', - label: 'stop' - }, - shortcut_toggle_autoplay: { - type: 'shortcut', - label: 'toggleAutoplay' - }, - shortcut_seek_backward: { - type: 'shortcut', - label: 'seekBackward10Seconds', - value: { - key: 'J' - } - }, - shortcut_seek_forward: { - type: 'shortcut', - label: 'seekForward10Seconds', - value: { - key: 'I' - } - }, - shortcut_seek_next_chapter: { - type: 'shortcut', - label: 'seekNextChapter' - }, - shortcut_seek_previous_chapter: { - type: 'shortcut', - label: 'seekPreviousChapter' - }, - - shortcut_activate_fullscreen: { - type: 'shortcut', - label: 'activateFullscreen', - value: { - key: 'F' - } - }, - shortcut_activate_captions: { - type: 'shortcut', - label: 'activateCaptions', - value: { - key: 'C' - } - }, - shortcut_quality: { - type: 'folder', - label: 'quality', - - section: { - type: 'section', - - shortcut_auto: { - type: 'shortcut', - label: 'auto' - }, - shortcut_240p: { - type: 'shortcut', - label: '240p' - }, - shortcut_360p: { - type: 'shortcut', - label: '360p' - }, - shortcut_480p: { - type: 'shortcut', - label: '480p' - }, - shortcut_720p: { - type: 'shortcut', - label: '720p' - }, - shortcut_1080p: { - type: 'shortcut', - label: '1080p' - }, - shortcut_1440p: { - type: 'shortcut', - label: '1440p' - }, - shortcut_2160p: { - type: 'shortcut', - label: '2160p' - }, - shortcut_2880p: { - type: 'shortcut', - label: '2880p' - }, - shortcut_4320p: { - type: 'shortcut', - label: '4320p' - } - } - }, - shortcut_custom_mini_player: { - type: 'shortcut', - label: 'customMiniPlayer' - }, - shortcut_stats_for_nerds: { - type: 'shortcut', - label: 'statsForNerds' - }, - shortcut_toggle_cards: { - type: 'shortcut', - label: 'toggleCards' - }, - shortcut_popup_player: { - type: 'shortcut', - label: 'openPopupPlayer' - } - }, - - appearance_section_label: { - type: 'text', - class: 'satus-section--label', - label: 'YouTube' - }, - - appearance_section: { - type: 'section', - - shortcut_go_to_search_box: { - type: 'shortcut', - label: 'goToSearchBox', - value: { - key: '/' - } - }, - shortcut_like_shortcut: { - type: 'shortcut', - label: 'like' - }, - shortcut_dislike_shortcut: { - type: 'shortcut', - label: 'dislike' - }, - shortcut_subscribe: { - type: 'shortcut', - label: 'subscribe' - }, - shortcut_dark_theme: { - type: 'shortcut', - label: 'darkTheme' - } - } -}; - - -/*-------------------------------------------------------------- -# BLACKLIST ---------------------------------------------------------------*/ - -skeleton.main.section.blacklist = { - type: 'folder', - before: '', - label: 'blacklist', - class: 'satus-folder--blacklist', - appearanceId: 'blacklist', - - section_activate: { - type: 'section', - - blacklist_activate: { - type: 'switch', - label: 'activate' - } - }, - - section: { - type: 'section', - - channels: { - type: 'folder', - label: 'channels', - onopen: function () { - var self = this; - - if (satus.storage.blacklist && satus.storage.blacklist.channels) { - var list = {}; - - for (var item in satus.storage.blacklist.channels) { - if (satus.storage.blacklist.channels[item] !== false) { - var title = satus.storage.blacklist.channels[item].title || ''; - - list[item] = { - type: 'section', - label: title.length > 20 ? title.substr(0, 20) + '...' : title, - class: 'satus-section--blacklist', - style: { - 'background-image': 'url(' + satus.storage.blacklist.channels[item].preview + ')', - 'background-color': '#000' - }, - - section: { - type: 'section', - - delete: { - type: 'button', - icon: '', - onclick: function () { - delete satus.storage.blacklist.channels[item]; - - satus.storage.set('blacklist', satus.storage.blacklist); - - this.classList.add('removing'); - - setTimeout(function () { - self.remove(); - }, 250); - } - } - } - }; + playlist: { + component: 'button', + class: 'satus-button--playlist', + on: { + click: { + component: 'section', + class: 'satus-section--card', + + playlist_autoplay: { + component: 'switch', + text: 'autoplay', + value: true + }, + playlist_up_next_autoplay: { + component: 'switch', + text: 'upNextAutoplay', + value: true + }, + playlist_reverse: { + component: 'switch', + text: 'reverse' + }, + playlist_repeat: { + component: 'switch', + text: 'repeat' + }, + playlist_shuffle: { + component: 'switch', + text: 'shuffle' } } + }, - if (Object.keys(list).length === 0) { - list.section = { - type: 'section', - class: 'satus-section--message', + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'transparent', + stroke: 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': 1.75 + }, - error: { - type: 'text', - label: 'empty' + path: { + component: 'path', + attr: { + d: 'M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01' } - }; + } + } + }, + label: { + component: 'span', + text: 'playlist' + } + }, + channel: { + component: 'button', + class: 'satus-button--channel', + on: { + click: { + component: 'section', + class: 'satus-section--card', + + channel_default_tab: { + component: 'select', + text: 'defaultChannelTab', + options: [{ + text: 'home', + value: '/home' + }, { + text: 'videos', + value: '/videos' + }, { + text: 'playlists', + value: '/playlists' + }] + }, + channel_trailer_autoplay: { + component: 'switch', + text: 'trailerAutoplay', + value: true + }, + channel_hide_featured_content: { + component: 'switch', + text: 'hideFeaturedContent' + } } + }, - satus.render(list, this); - } else { - satus.render({ - type: 'section', - class: 'satus-section--message', + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'transparent', + stroke: 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': 1.75 + }, - error: { - type: 'text', - label: 'empty' + rect: { + component: 'rect', + attr: { + width: 20, + height: 15, + x: 2, + y: 7, + rx: 2, + ry: 2 + } + }, + path: { + component: 'path', + attr: { + d: 'M17 2l-5 5-5-5' + } } - }, this); + } + }, + label: { + component: 'span', + text: 'channel' } - } - }, - videos: { - type: 'folder', - label: 'videos', - onopen: function () { - var self = this; - - if (satus.storage.blacklist && satus.storage.blacklist.videos) { - let list = {}; - - for (let item in satus.storage.blacklist.videos) { - if (satus.storage.blacklist.videos[item] !== false) { - let title = satus.storage.blacklist.videos[item].title || ''; - - list[item] = { - type: 'section', - label: title.length > 20 ? title.substr(0, 20) + '...' : title, - class: 'satus-section--blacklist', - style: { - 'background-image': 'url(https://img.youtube.com/vi/' + item + '/0.jpg)' - }, - - section: { - type: 'section', - - delete: { - type: 'button', - icon: '', - onclick: function () { - delete satus.storage.blacklist.videos[item]; + }, + shortcuts: { + component: 'button', + class: 'satus-button--shortcuts', + on: { + click: { + section: { + component: 'section', + class: 'satus-section--card', - satus.storage.set('blacklist', satus.storage.blacklist); - this.parentNode.parentNode.classList.add('removing'); + picture_in_picture: { + component: 'shortcut', + text: 'pictureInPicture', + storage: 'shortcut_picture_in_picture' + }, + volume: { + component: 'button', + text: 'volume', + on: { + click: { + section_1: { + component: 'section', + class: 'satus-section--card', + + volume_step: { + component: 'slider', + text: 'step', + min: 1, + max: 10, + step: 1, + value: 5, + storage: 'shortcut_volume_step' + } + }, - setTimeout(function () { - self.parentNode.parentNode.remove(); - }, 250); + section_2: { + component: 'section', + class: 'satus-section--card', + + increase_volume: { + component: 'shortcut', + text: 'increaseVolume', + storage: 'shortcut_increase_volume', + value: { + keys: { + 38: { + key: 'ArrowUp' + } + } + } + }, + decrease_volume: { + component: 'shortcut', + text: 'decreaseVolume', + storage: 'shortcut_decrease_volume', + value: { + keys: { + 40: { + key: 'ArrowDown' + } + } + } + } } } } - }; - } - } - - if (Object.keys(list).length === 0) { - list.section = { - type: 'section', - class: 'satus-section--message', + }, + shortcut_screenshot: { + component: 'shortcut', + text: 'screenshot' + }, + playback_speed: { + component: 'button', + text: 'playbackSpeed', + on: { + click: { + section_step: { + component: 'section', + class: 'satus-section--card', + + playback_speed_step: { + component: 'slider', + text: 'step', + min: .05, + max: .5, + step: .05, + value: .05, + storage: 'shortcut_playback_speed_step' + } + }, - error: { - type: 'text', - label: 'empty' + section: { + component: 'section', + class: 'satus-section--card', + + increase_playback_speed: { + component: 'shortcut', + text: 'increasePlaybackSpeed', + storage: 'shortcut_increase_playback_speed', + value: { + keys: { + 188: { + key: '<' + } + } + } + }, + decrease_playback_speed: { + component: 'shortcut', + text: 'decreasePlaybackSpeed', + storage: 'shortcut_decrease_playback_speed', + value: { + keys: { + 190: { + key: '>' + } + } + } + } + } + } + } + }, + shortcut_toggle_controls: { + component: 'shortcut', + text: 'toggleControls' + }, + shortcut_next_video: { + component: 'shortcut', + text: 'nextVideo', + value: { + shift: true, + keys: { + 78: { + key: 'n' + } + } + } + }, + shortcut_prev_video: { + component: 'shortcut', + text: 'previousVideo', + value: { + shift: true, + keys: { + 80: { + key: 'p' + } + } + } + }, + shortcut_play_pause: { + component: 'shortcut', + text: 'playPause', + value: { + keys: { + 32: { + code: 'space' + } + } + } + }, + shortcut_stop: { + component: 'shortcut', + text: 'stop' + }, + shortcut_toggle_autoplay: { + component: 'shortcut', + text: 'toggleAutoplay' + }, + shortcut_seek_backward: { + component: 'shortcut', + text: 'seekBackward10Seconds', + value: { + keys: { + 74: { + key: 'j' + } + } + } + }, + shortcut_seek_forward: { + component: 'shortcut', + text: 'seekForward10Seconds', + value: { + keys: { + 76: { + key: 'l' + } + } + } + }, + shortcut_seek_next_chapter: { + component: 'shortcut', + text: 'seekNextChapter' + }, + shortcut_seek_previous_chapter: { + component: 'shortcut', + text: 'seekPreviousChapter' + }, + shortcut_activate_fullscreen: { + component: 'shortcut', + text: 'activateFullscreen', + value: { + keys: { + 70: { + key: 'f' + } + } + } + }, + shortcut_activate_captions: { + component: 'shortcut', + text: 'activateCaptions', + value: { + keys: { + 67: { + key: 'c' + } + } + } + }, + shortcut_quality: { + component: 'button', + text: 'quality', + on: { + click: { + component: 'section', + class: 'satus-section--card', + + shortcut_auto: { + component: 'shortcut', + text: 'auto' + }, + shortcut_240p: { + component: 'shortcut', + text: '240p' + }, + shortcut_360p: { + component: 'shortcut', + text: '360p' + }, + shortcut_480p: { + component: 'shortcut', + text: '480p' + }, + shortcut_720p: { + component: 'shortcut', + text: '720p' + }, + shortcut_1080p: { + component: 'shortcut', + text: '1080p' + }, + shortcut_1440p: { + component: 'shortcut', + text: '1440p' + }, + shortcut_2160p: { + component: 'shortcut', + text: '2160p' + }, + shortcut_2880p: { + component: 'shortcut', + text: '2880p' + }, + shortcut_4320p: { + component: 'shortcut', + text: '4320p' + } + } + } + }, + shortcut_custom_mini_player: { + component: 'shortcut', + text: 'customMiniPlayer', + value: { + keys: { + 73: { + key: 'i' + } + } + } + }, + shortcut_stats_for_nerds: { + component: 'shortcut', + text: 'statsForNerds' + }, + shortcut_toggle_cards: { + component: 'shortcut', + text: 'toggleCards' + }, + shortcut_popup_player: { + component: 'shortcut', + text: 'openPopupPlayer' + }, + shortcut_go_to_search_box: { + component: 'shortcut', + text: 'goToSearchBox', + value: { + keys: { + 191: { + key: '/' + } + } + } + }, + shortcut_like_shortcut: { + component: 'shortcut', + text: 'like' + }, + shortcut_dislike_shortcut: { + component: 'shortcut', + text: 'dislike' + }, + shortcut_subscribe: { + component: 'shortcut', + text: 'subscribe' + }, + shortcut_dark_theme: { + component: 'shortcut', + text: 'darkTheme' } - }; - } - - satus.render(list, this); - } else { - satus.render({ - type: 'section', - class: 'satus-section--message', - - error: { - type: 'text', - label: 'empty' } - }, this); - } - } - } - } -}; - - -/*-------------------------------------------------------------- -# ANALYZER ---------------------------------------------------------------*/ - -skeleton.main.section.analyzer = { - type: 'folder', - before: '', - label: 'analyzer', - class: 'satus-folder--analyzer', - appearanceId: 'analyzer', - - activ_section: { - type: 'section', + } + }, - analyzer_activation: { - type: 'switch', - label: 'activate' - } - }, + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'transparent', + stroke: 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': 1.75 + }, - section: { - type: 'section', - style: { - 'flex-direction': 'column', - 'align-items': 'flex-start' - }, - onrender: function () { - var data = satus.storage.get('analyzer') || {}, - all_data = {}, - all_data_sort = [], - all_time_value = 0, - current_date = new Date().toDateString(), - container = document.createElement('div'), - top_text_container = document.createElement('div'), - today_at = document.createElement('div'), - watch_time = document.createElement('div'), - all_time = document.createElement('div'), - chart = document.createElement('div'), - bottom_text_container = document.createElement('div'); - - container.className = 'analyzer-container'; - top_text_container.className = 'analyzer-top-text'; - watch_time.className = 'analyzer-watch-time'; - today_at.className = 'analyzer-today-at'; - all_time.className = 'analyzer-all-time'; - chart.className = 'analyzer-chart'; - bottom_text_container.className = 'analyzer-bottom'; - - let currentDateData = data[current_date]; - if (currentDateData) { - for (let i in currentDateData) { - if (currentDateData[i]) { - for (let j in currentDateData[i]) { - if (!all_data[j]) { - all_data[j] = 0; + path: { + component: 'path', + attr: { + d: 'M18 3a3 3 0 00-3 3v12a3 3 0 003 3 3 3 0 003-3 3 3 0 00-3-3H6a3 3 0 00-3 3 3 3 0 003 3 3 3 0 003-3V6a3 3 0 00-3-3 3 3 0 00-3 3 3 3 0 003 3h12a3 3 0 003-3 3 3 0 00-3-3z' } - - all_data[j] += currentDateData[i][j]; } } + }, + label: { + component: 'span', + text: 'shortcuts' } - } - - for (let i in all_data) { - all_data_sort.push([i, all_data[i]]); - all_time_value += all_data[i]; - } - - all_data_sort.sort(function (a, b) { - return b[1] - a[1]; - }); - - var now_minutes = new Date().getMinutes(); - - watch_time.innerText = satus.locale.getMessage('watchTime') || 'watchTime'; - today_at.innerText = satus.locale.getMessage('todayAt') + ' ' + (new Date().getHours() + ':' + (now_minutes < 10 ? '0' + now_minutes : now_minutes)) || 'todayAt'; - all_time.innerText = Math.floor(all_time_value / 60) + 'h ' + (all_time_value - Math.floor(all_time_value / 60) * 60) + 'm'; + }, + blacklist: { + component: 'button', + class: 'satus-button--blacklist', + on: { + click: { + section: { + component: 'section', + class: 'satus-section--card', - let h = 0; + blacklist_activate: { + component: 'switch', + text: 'activate' + } + }, - for (let i = 0; i < 4; i++) { - let column = document.createElement('div'); + section2: { + component: 'section', + class: 'satus-section--card', + + channels: { + component: 'button', + text: 'channels', + on: { + open: function () { + var self = this; + + if (satus.storage.blacklist && satus.storage.blacklist.channels) { + var list = {}; + + for (var item in satus.storage.blacklist.channels) { + if (satus.storage.blacklist.channels[item] !== false) { + var title = satus.storage.blacklist.channels[item].title || ''; + + list[item] = { + type: 'section', + label: title.length > 20 ? title.substr(0, 20) + '...' : title, + class: 'satus-section--blacklist', + style: { + 'background-image': 'url(' + satus.storage.blacklist.channels[item].preview + ')', + 'background-color': '#000' + }, + + section: { + type: 'section', + + delete: { + type: 'button', + icon: '', + onclick: function () { + delete satus.storage.blacklist.channels[item]; + + satus.storage.set('blacklist', satus.storage.blacklist); + + this.classList.add('removing'); + + setTimeout(function () { + self.remove(); + }, 250); + } + } + } + }; + } + } - column.className = 'analyzer-column'; + if (Object.keys(list).length === 0) { + list.section = { + type: 'section', + class: 'satus-section--message', - for (let j = 0; j < 6; j++) { - let hours = h + ':00'; + error: { + type: 'text', + label: 'empty' + } + }; + } - h++; + satus.render(list, this); + } else { + satus.render({ + component: 'section', + class: 'satus-section--card satus-section--message', - let data_column = document.createElement('div'); + error: { + component: 'text', + label: 'empty' + } + }, this); + } + } + } + }, + videos: { + component: 'button', + text: 'videos', + on: { + open: function () { + var self = this; + + if (satus.storage.blacklist && satus.storage.blacklist.videos) { + let list = {}; + + for (let item in satus.storage.blacklist.videos) { + if (satus.storage.blacklist.videos[item] !== false) { + let title = satus.storage.blacklist.videos[item].title || ''; + + list[item] = { + type: 'section', + label: title.length > 20 ? title.substr(0, 20) + '...' : title, + class: 'satus-section--blacklist', + style: { + 'background-image': 'url(https://img.youtube.com/vi/' + item + '/0.jpg)' + }, + + section: { + type: 'section', + + delete: { + type: 'button', + icon: '', + onclick: function () { + delete satus.storage.blacklist.videos[item]; + + satus.storage.set('blacklist', satus.storage.blacklist); + this.parentNode.parentNode.classList.add('removing'); + + setTimeout(function () { + self.parentNode.parentNode.remove(); + }, 250); + } + } + } + }; + } + } - data_column.className = 'analyzer-data-column'; + if (Object.keys(list).length === 0) { + list.section = { + type: 'section', + class: 'satus-section--message', - if (currentDateData && currentDateData[hours]) { - for (let k in currentDateData[hours]) { - let block = document.createElement('div'); + error: { + type: 'text', + label: 'empty' + } + }; + } - block.className = 'analyzer-data'; + satus.render(list, this); + } else { + satus.render({ + component: 'section', + class: 'satus-section--card satus-section--message', - let height = data[current_date][hours][k] * 100 / 60; + error: { + component: 'text', + label: 'empty' + } + }, this); + } + } + } + } + } + } + }, - block.title = k; - block.style.height = height + '%'; + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'transparent', + stroke: 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': 1.75 + }, - if (k === all_data_sort[0][0]) { - block.className += ' first'; - } else if (k === all_data_sort[1][0]) { - block.className += ' second'; - } else if (k === all_data_sort[2][0]) { - block.className += ' third'; + circle: { + component: 'circle', + attr: { + cx: 12, + cy: 12, + r: 10 + } + }, + path: { + component: 'path', + attr: { + d: 'M4.93 4.93l14.14 14.14' } - - data_column.appendChild(block); } } - - column.appendChild(data_column); + }, + label: { + component: 'span', + text: 'blacklist' } + }, + analyzer: { + component: 'button', + class: 'satus-button--analyzer', + on: { + click: { + section: { + component: 'section', + class: 'satus-section--card', - chart.appendChild(column); - } - - - for (let i = 0; i < 3; i++) { - if (all_data_sort[i]) { - let cont = document.createElement('div'), - label = document.createElement('div'), - value = document.createElement('div'); + analyzer_activation: { + component: 'switch', + text: 'activate' + } + }, + section_2: { + component: 'section', + class: 'satus-section--card', + style: { + 'flex-direction': 'column', + 'align-items': 'flex-start' + }, + on: { + render: function () { + var data = /*satus.storage.get('analyzer') ||*/ {}, + all_data = {}, + all_data_sort = [], + all_time_value = 0, + current_date = new Date().toDateString(), + container = document.createElement('div'), + top_text_container = document.createElement('div'), + today_at = document.createElement('div'), + watch_time = document.createElement('div'), + all_time = document.createElement('div'), + chart = document.createElement('div'), + bottom_text_container = document.createElement('div'); + + container.className = 'analyzer-container'; + top_text_container.className = 'analyzer-top-text'; + watch_time.className = 'analyzer-watch-time'; + today_at.className = 'analyzer-today-at'; + all_time.className = 'analyzer-all-time'; + chart.className = 'analyzer-chart'; + bottom_text_container.className = 'analyzer-bottom'; + + let currentDateData = data[current_date]; + if (currentDateData) { + for (let i in currentDateData) { + if (currentDateData[i]) { + for (let j in currentDateData[i]) { + if (!all_data[j]) { + all_data[j] = 0; + } + + all_data[j] += currentDateData[i][j]; + } + } + } + } - label.className = 'label'; + for (let i in all_data) { + all_data_sort.push([i, all_data[i]]); + all_time_value += all_data[i]; + } - label.innerText = all_data_sort[i][0]; - value.innerText = Math.floor(all_data_sort[i][1] / 60) + 'h ' + (all_data_sort[i][1] - Math.floor(all_data_sort[i][1] / 60) * 60) + 'm'; + all_data_sort.sort(function (a, b) { + return b[1] - a[1]; + }); - cont.appendChild(label); - cont.appendChild(value); - bottom_text_container.appendChild(cont); - } - } + var now_minutes = new Date().getMinutes(); - container.appendChild(all_time); - container.appendChild(chart); - this.appendChild(top_text_container); - top_text_container.appendChild(watch_time); - top_text_container.appendChild(today_at); - container.appendChild(bottom_text_container); - this.appendChild(container); - } - } -}; + watch_time.innerText = /*satus.locale.getMessage('watchTime') ||*/ 'watchTime'; + today_at.innerText = /*satus.locale.getMessage('todayAt') + ' ' + (new Date().getHours() + ':' + (now_minutes < 10 ? '0' + now_minutes : now_minutes)) ||*/ 'todayAt'; + all_time.innerText = Math.floor(all_time_value / 60) + 'h ' + (all_time_value - Math.floor(all_time_value / 60) * 60) + 'm'; + let h = 0; -/*-------------------------------------------------------------- -# EXPORT DATA ---------------------------------------------------------------*/ + for (let i = 0; i < 4; i++) { + let column = document.createElement('div'); -function exportData() { - var data = {}; + column.className = 'analyzer-column'; - for (var key in satus.storage) { - if ( - typeof satus.storage[key] !== 'function' && - key !== 'blacklist' && - key !== 'watched' - ) { - data[key] = satus.storage[key]; - } - } + for (let j = 0; j < 6; j++) { + let hours = h + ':00'; - var blob = new Blob([JSON.stringify(data)], { - type: 'application/json;charset=utf-8' - }); + h++; - satus.render({ - type: 'dialog', - - export: { - type: 'button', - label: 'export', - onclick: function () { - chrome.permissions.request({ - permissions: ['downloads'] - }, function (granted) { - if (granted) { - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: 'improvedtube.json', - saveAs: true - }, function () { - setTimeout(function () { - if (location.href.indexOf('action=export') !== -1) { - window.close(); - } else { - document.querySelector('.satus-dialog__scrim').click(); + let data_column = document.createElement('div'); - satus.render({ - type: 'dialog', + data_column.className = 'analyzer-data-column'; - message: { - type: 'text', - label: 'dataExportedSuccessfully' - }, - section: { - type: 'section', - class: 'controls', + if (currentDateData && currentDateData[hours]) { + for (let k in currentDateData[hours]) { + let block = document.createElement('div'); - ok: { - type: 'button', - label: 'ok', - onclick: function () { - document.querySelector('.satus-dialog__scrim').click(); - } - } - } - }); - } - }, 100); - }); - } - }); - } - } - }); -} + block.className = 'analyzer-data'; + let height = data[current_date][hours][k] * 100 / 60; -/*-------------------------------------------------------------- -# IMPORT DATA ---------------------------------------------------------------*/ + block.title = k; + block.style.height = height + '%'; -function importData() { - satus.render({ - type: 'dialog', + if (k === all_data_sort[0][0]) { + block.className += ' first'; + } else if (k === all_data_sort[1][0]) { + block.className += ' second'; + } else if (k === all_data_sort[2][0]) { + block.className += ' third'; + } - select_file: { - type: 'button', - label: 'selectFile', - onclick: function () { - var input = document.createElement('input'); + data_column.appendChild(block); + } + } - input.type = 'file'; + column.appendChild(data_column); + } - input.addEventListener('change', function () { - var file_reader = new FileReader(); + chart.appendChild(column); + } - file_reader.onload = function () { - var data = JSON.parse(this.result); - for (var key in data) { - satus.storage.set(key, data[key]); - } + for (let i = 0; i < 3; i++) { + if (all_data_sort[i]) { + let cont = document.createElement('div'), + label = document.createElement('div'), + value = document.createElement('div'); - if (location.href.indexOf('action=import') !== -1) { - window.close(); - } else { - document.querySelector('.satus-dialog__scrim').click(); + label.className = 'label'; - satus.render({ - type: 'dialog', + label.innerText = all_data_sort[i][0]; + value.innerText = Math.floor(all_data_sort[i][1] / 60) + 'h ' + (all_data_sort[i][1] - Math.floor(all_data_sort[i][1] / 60) * 60) + 'm'; - message: { - type: 'text', - label: 'dataImportedSuccessfully' - }, - section: { - type: 'section', - class: 'controls', - - ok: { - type: 'button', - label: 'ok', - onclick: function () { - document.querySelector('.satus-dialog__scrim').click(); + cont.appendChild(label); + cont.appendChild(value); + bottom_text_container.appendChild(cont); } } + + container.appendChild(all_time); + container.appendChild(chart); + this.appendChild(top_text_container); + top_text_container.appendChild(watch_time); + top_text_container.appendChild(today_at); + container.appendChild(bottom_text_container); + this.appendChild(container); } - }); + } } - }; + } + }, - file_reader.readAsText(this.files[0]); - }); + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'transparent', + stroke: 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': 1.75 + }, - input.click(); + path: { + component: 'path', + attr: { + d: 'M21.21 15.89A10 10 0 118 2.83M22 12A10 10 0 0012 2v10z' + } + } + } + }, + label: { + component: 'span', + text: 'analyzer' + } } } - }); -} + } +}; /*-------------------------------------------------------------- # INITIALIZATION --------------------------------------------------------------*/ -function themeChange(event) { - var body = document.body; - - if (event && event.target.checked) { - let themes = document.querySelectorAll('.satus-switch > input:checked:not([data-storage-key="red_popup_theme"])'); - - for (let i = 0, l = themes.length; i < l; i++) { - if (themes[i] !== event.target) { - themes[i].click(); - } - } - } - - if (satus.storage.get('default_dark_theme') === true) { - body.dataset.theme = 'dark'; - } else if (satus.storage.get('night_theme') === true) { - body.dataset.theme = 'night'; - } else if (satus.storage.get('dawn_theme') === true) { - body.dataset.theme = 'dawn'; - } else if (satus.storage.get('sunset_theme') === true) { - body.dataset.theme = 'sunset'; - } else if (satus.storage.get('desert_theme') === true) { - body.dataset.theme = 'desert'; - } else if (satus.storage.get('plain_theme') === true) { - body.dataset.theme = 'plain'; - } else if (satus.storage.get('black_theme') === true) { - body.dataset.theme = 'black'; - } else { - delete body.dataset.theme; - } -} - -function updateAttributes() { - var whitelist = { - 'improvedtube-home': true - }, - items = satus.storage; - - for (var key in items) { - var attribute = key.replace(/_/g, '-'); - - if (whitelist.hasOwnProperty(attribute)) { - document.documentElement.setAttribute('it-' + attribute, items[key]); - } - } -} - satus.storage.import(function (items) { - updateAttributes(); - - if (satus.storage.channel_default_tab === '/') { - satus.storage.channel_default_tab = '/home'; - - satus.storage.set('channel_default_tab', '/home'); - } + satus.fetch('_locales/' + (items.language || 'en') + '/messages.json', function (object) { + for (var key in object) { + satus.locale.strings[key] = object[key].message; + } - satus.locale.import(satus.storage.get('language'), function () { - satus.modules.updateStorageKeys(skeleton, function () { - if (location.href.indexOf('action=import') !== -1) { - importData(); - } else if (location.href.indexOf('action=export') !== -1) { - exportData(); - } else { - satus.render(skeleton, document.body); - } - }); + satus.render(skeleton); }); - - themeChange(); -}); - -chrome.storage.onChanged.addListener(function (changes) { - for (var key in changes) { - document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), changes[key].newValue); - } -}); +}); \ No newline at end of file diff --git a/satus.css b/satus.css index c6826b600..f802097cb 100644 --- a/satus.css +++ b/satus.css @@ -1,1108 +1 @@ -/*-------------------------------------------------------------- ->>> SATUS.CSS ----------------------------------------------------------------- -1.0 Animations - 1.1 Fade - 1.2 List - 1.3 Zoom -2.0 Themes - 2.1 Default -3.0 Components - 3.1 Button - 3.2 Color picker - 3.3 Dialog - 3.4 Folder - 3.5 Header - 3.6 List - 3.7 Main - 3.8 Section - 3.9 Select - 3.10 Slider - 3.11 Switch - 3.12 Table - 3.13 Text - 3.14 Text field ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -1.0 ANIMATIONS ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -1.1 FADE ---------------------------------------------------------------*/ - -@keyframes fadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} - -@keyframes fadeInLeft { - from { - transform: translateX(-10%); - opacity: 0; - } - to { - transform: translateX(0%); - opacity: 1; - } -} - -@keyframes fadeInRight { - from { - transform: translateX(10%); - opacity: 0; - } - to { - transform: translateX(0%); - opacity: 1; - } -} - -@keyframes fadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - } -} - -@keyframes fadeOutLeft { - from { - transform: translateX(0%); - opacity: 1; - } - to { - transform: translateX(-10%); - opacity: 0; - } -} - -@keyframes fadeOutRight { - from { - transform: translateX(0%); - opacity: 1; - } - to { - transform: translateX(10%); - opacity: 0; - } -} - - -/*-------------------------------------------------------------- -1.2 LIST ---------------------------------------------------------------*/ - -@keyframes listIn { - from { - transform: translateY(-16px); - opacity: .5; - } - to { - transform: translateY(0); - opacity: 1; - } -} - - -/*-------------------------------------------------------------- -1.3 ZOOM ---------------------------------------------------------------*/ - -@keyframes zoomIn { - from { - transform: scale(.8); - opacity: 0; - } - to { - transform: scale(1); - opacity: 1; - } -} - -@keyframes zoomOut { - from { - transform: scale(1); - opacity: 1; - } - to { - transform: scale(.8); - opacity: 0; - } -} - - -/*-------------------------------------------------------------- -2.0 THEMES ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -2.1 DEFAULT ---------------------------------------------------------------*/ - -body { - --satus-theme-primary: #f6b465; - --satus-theme-dialog: #f7f7f6; - --satus-theme-dialog-text: #777; - --satus-theme-header: #fff; - --satus-theme-header-text: #777; - --satus-theme-main: #f7f7f6; - --satus-theme-main-text: #777; - --satus-theme-section: #fff; - --satus-theme-button: transparent; - --satus-theme-scrollbar: rgba(0, 0, 0, .2); - --satus-theme-scrollbar-focus: rgba(0, 0, 0, .4); - --satus-theme-tooltip: rgba(0, 0, 0, .4); - --satus-theme-ripple: rgba(0, 0, 0, .04); -} - - -/*-------------------------------------------------------------- -3.0 COMPONENTS ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -3.1 BUTTON ---------------------------------------------------------------*/ - -.satus-button { - font-size: inherit; - position: relative; - display: flex; - margin: 0; - cursor: pointer; - color: inherit; - border: none; - outline: none; - background-color: var(--satus-theme-button); - align-items: center; - -webkit-appearance: none; -} - -.satus-button::before { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - content: ''; - opacity: 0; - background-color: var(--satus-theme-ripple); -} - -.satus-button:focus::before, -.satus-button:hover::before { - opacity: 1; -} - -.satus-button__icon { - width: 24px; - height: 24px; -} - -.satus-button svg { - width: 100%; - color: inherit; - fill: currentColor; -} - -.satus-button__icon+.satus-button__label { - margin-left: 8px; -} - - -/*-------------------------------------------------------------- -3.2 COLOR PICKER ---------------------------------------------------------------*/ - -.satus-color-picker { - font-size: inherit; - position: relative; - display: flex; - box-sizing: border-box; - margin: 0; - cursor: pointer; - color: inherit; - border: none; - outline: none; - background-color: var(--satus-theme-button); - justify-content: space-between; - -webkit-tap-highlight-color: transparent; - align-items: center; - -webkit-appearance: none; -} - -.satus-color-picker__value { - width: 24px; - height: 24px; - border-radius: 50%; -} - -.satus-dialog--color-picker .satus-scrollbar__content { - display: flex; - flex-direction: column; - align-items: center; -} - -.satus-dialog--color-picker .satus-button { - box-sizing: unset; - width: 24px; - height: 24px; - margin: 0 0 8px; - padding: 8px; - border-radius: 50%; -} - -.satus-dialog--color-picker .satus-button:hover { - background-color: var(--satus-theme-ripple); -} - -.satus-dialog--color-picker .satus-button::before { - content: unset; -} - -.satus-dialog--color-picker .satus-button svg { - fill: transparent; - stroke: var(--satus-theme-primary); -} - -.satus-dialog--color-picker canvas { - width: 200px; - height: 200px; - margin: 0 0 16px; -} - - -/*-------------------------------------------------------------- -3.3 DIALOG ---------------------------------------------------------------*/ - -.satus-dialog { - position: absolute; - z-index: 100; - top: 0; - left: 0; - display: flex; - width: 100%; - height: 100vh; - justify-content: center; - align-items: center; -} - -.satus-dialog__scrim { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - animation: fadeIn 150ms linear forwards; - opacity: 0; - background: rgba(25, 25, 25, .2); - fill: var(--satus-theme-dialog-text); - backdrop-filter: blur(8px); -} - -.satus-dialog__surface { - font-size: 14px; - display: flex; - flex-direction: column; - width: 95%; - min-width: 240px; - max-width: 560px; - max-height: 80%; - padding: 8px 0; - transform: scale(.8); - animation: zoomIn 150ms linear forwards; - animation-delay: 20ms; - opacity: 0; - color: var(--satus-theme-dialog-text); - border-radius: 6px; - background-color: var(--satus-theme-dialog); - box-shadow: inset 0 -1px 1px 1px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .15); -} - -.satus-dialog--closing .satus-dialog__scrim { - animation: fadeOut 70ms linear forwards; -} - -.satus-dialog--closing .satus-dialog__surface { - animation: zoomOut 70ms linear forwards; -} - - -/*-------------------------------------------------------------- -3.4 FOLDER ---------------------------------------------------------------*/ - -.satus-folder { - text-align: left; -} - - -/*-------------------------------------------------------------- -3.5 HEADER ---------------------------------------------------------------*/ - -.satus-header { - display: flex; - height: 57px; - padding: 0 8px; - color: var(--satus-theme-header-text); - background-color: var(--satus-theme-header); - border-bottom: 1px solid rgba(0, 0, 0, .1); -} - - -/*-------------------------------------------------------------- -3.6 LIST ---------------------------------------------------------------*/ - -.satus-list--compact, -.satus-list--compact li { - margin: 0; - padding: 0; - list-style: none; -} - - -/*-------------------------------------------------------------- -3.7 MAIN ----------------------------------------------------------------- -# General -# Animations - # Opening - # Closing ---------------------------------------------------------------*/ - - -/*-------------------------------------------------------------- -# General ---------------------------------------------------------------*/ - -.satus-main { - position: relative; - overflow: hidden; - color: var(--satus-theme-main-text); - background-color: var(--satus-theme-main); -} - -.satus-main__container { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - transition: 250ms; - background-color: var(--satus-theme-main); - will-change: transform; -} - - -/*-------------------------------------------------------------- -# Animations ---------------------------------------------------------------*/ - -.satus-main__container--fade-in-left { - animation: fadeInLeft 250ms; -} - -.satus-main__container--fade-in-right { - animation: fadeInRight 250ms; -} - -.satus-main__container--fade-out-left { - animation: fadeOutLeft 250ms; -} - -.satus-main__container--fade-out-right { - animation: fadeOutRight 250ms; -} - -.satus-scrollbar { - position: relative; - overflow: hidden; - width: 100%; - height: 100%; -} - -.satus-scrollbar__wrapper { - overflow-y: scroll; - width: 150%; - height: 100%; -} - -.satus-scrollbar__thumb { - position: absolute; - z-index: 999; - top: 0; - right: 0; - min-height: 32px; - padding: 0 2px; - transition: background-color 200ms, opacity 300ms; - opacity: 0; -} - -.satus-scrollbar__thumb::after { - display: block; - width: 3px; - height: 100%; - content: ''; - background-color: var(--satus-theme-scrollbar); -} - -.satus-scrollbar__thumb:hover::after { - background-color: var(--satus-theme-scrollbar-focus); - width: 6px -} - -.satus-scrollbar.active .satus-scrollbar__thumb, -.satus-scrollbar__thumb:hover { - transition: background-color 200ms, opacity 100ms; - opacity: 1; -} - - -/*-------------------------------------------------------------- -3.8 SECTION ---------------------------------------------------------------*/ - -.satus-section { - display: flex; - align-items: center; - flex-wrap: wrap; -} - - -/*-------------------------------------------------------------- -3.9 SELECT ---------------------------------------------------------------*/ - -.satus-select { - justify-content: space-between; -} - -.satus-select__value { - font-size: 12px; - text-align: right; - opacity: .7; -} - -.satus-dialog--select-component .satus-dialog__surface { - position: absolute; - max-width: unset; - transform: unset; - animation: unset; - opacity: 1; -} - -.satus-dialog--select-component .satus-section { - top: 48px; - flex-direction: column; - transform: translateY(-16px); - animation: listIn 50ms linear forwards; - animation-delay: 20ms; - opacity: .5; -} - -.satus-dialog--select-component .satus-button { - width: 100%; - height: 48px; - padding: 0 16px; - text-align: left; -} - -.satus-shortcut { - position: relative; - display: flex; - box-sizing: border-box; - width: 100%; - height: 48px; - min-height: 48px; - padding: 0 16px; - cursor: pointer; - justify-content: space-between; - align-items: center; -} - -.satus-shortcut:hover { - background-color: var(--satus-theme-ripple); -} - -.satus-shortcut>.label { - margin: 0 0 4px 0; -} - -.satus-shortcut>.value { - font-size: 13px; - opacity: .5; -} - -.satus-shortcut-dialog-label { - font-size: 16px; - font-weight: 500; - box-sizing: border-box; - width: 100%; - margin: 4px 0 10px; - padding: 0 16px; -} - -.satus-shortcut__canvas { - display: flex; - box-sizing: border-box; - width: 100%; - height: 68px; - padding: 16px; - background: #dedede; - align-items: center; -} - -.satus-shortcut__key { - display: flex; - box-sizing: border-box; - min-width: 32px; - height: 32px; - padding: 4px 8px; - border-radius: 4px; - background: #fff; - box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); - align-items: center; - justify-content: center; -} - -.satus-shortcut__plus { - position: relative; - width: 12px; - height: 12px; - margin: 8px; -} - -.satus-shortcut__plus::before { - position: absolute; - top: 0; - left: 5px; - width: 2px; - height: 12px; - content: ''; - background-color: #aaa; -} - -.satus-shortcut__plus::after { - position: absolute; - top: 5px; - left: 0; - width: 12px; - height: 2px; - content: ''; - background-color: #aaa; -} - -.satus-shortcut__mouse { - position: relative; - display: flex; - width: 28px; - height: 36px; - border-radius: 50%; - border-top-left-radius: 12px; - border-top-right-radius: 12px; - background: #fff; - box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); -} - -.satus-shortcut__mouse>div { - position: absolute; - top: 0; - left: 13px; - width: 2px; - height: 11px; - border-radius: 2px; - background: #ccc; -} - -.satus-shortcut__mouse::before { - position: absolute; - top: -4px; - left: 21px; - width: 2px; - height: 18px; - content: ''; - background: #f96754; -} - -.satus-shortcut__mouse.false::after { - position: absolute; - top: -12px; - left: 17px; - width: 0; - height: 0; - content: ''; - border-right: 5px solid transparent; - border-bottom: 8px solid #f96754; - border-left: 5px solid transparent; -} - -.satus-shortcut__mouse.true::after { - position: absolute; - top: 14px; - left: 17px; - width: 0; - height: 0; - content: ''; - border-top: 8px solid #f96754; - border-right: 5px solid transparent; - border-left: 5px solid transparent; -} - -.satus-section_shortcut { - width: 100%; - margin: 8px 0 0; - justify-content: flex-end; -} - -.satus-button_shortcut { - font-weight: 500; - overflow: hidden; - height: 28px; - min-height: 28px; - margin-right: 2px; - padding: 4px 8px; - text-transform: uppercase; - color: #f96754; - border-radius: 4px; -} - - -/*-------------------------------------------------------------- -3.10 SLIDER ---------------------------------------------------------------*/ - -.satus-slider { - position: relative; - display: flex; - flex-direction: column; - box-sizing: border-box; - width: 100%; - min-height: 64px; - padding: 0 16px; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - outline: none; - align-items: flex-start; - justify-content: center; -} - -.satus-slider::before { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - content: ''; - opacity: 0; - background-color: var(--satus-theme-button); -} - -.satus-slider:hover::before { - opacity: 1; -} - - -/* LABEL */ - -.satus-slider__label { - cursor: default; -} - -.satus-slider__range { - position: absolute; - z-index: 1; - top: 0; - left: 0; - box-sizing: border-box; - width: 100%; - height: 100%; - margin: 0; - padding: 0; - opacity: 0; -} - - -/* TRACK */ - -.satus-slider__container { - position: relative; - width: 100%; - height: 12px; - margin: 8px 0 0; -} - -.satus-slider__track-container { - position: absolute; - top: calc(50% - 1px); - width: 100%; - height: 2px; - pointer-events: none; -} - -.satus-slider__track-container::before { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 2px; - content: ''; - opacity: .26; - background-color: var(--satus-theme-primary); -} - -.satus-slider__track { - position: relative; - width: 0; - height: 100%; - background-color: var(--satus-theme-primary); - will-change: width; -} - -.satus-slider:not(.satus-slider--dragging) .satus-slider__track { - transition: width 100ms ease-out; -} - -.satus-slider__thumb { - position: absolute; - top: -5px; - right: -12px; - width: 12px; - height: 12px; - border-radius: 50%; - background-color: var(--satus-theme-primary); - box-shadow: 0 1px 5px rgba(0, 0, 0, .15); -} - -.satus-slider .satus-slider__thumb::before { - font-size: 13px; - position: absolute; - top: -34px; - left: 50%; - visibility: hidden; - box-sizing: border-box; - min-width: 28px; - padding: 4px 4px; - content: attr(data-value); - transform: translateX(-50%); - text-align: center; - pointer-events: none; - color: #fff; - border-radius: 4px; - background: var(--satus-theme-tooltip); -} - -.satus-slider:hover .satus-slider__thumb::before, -.satus-slider__range:focus .satus-slider__container .satus-slider__thumb::before { - visibility: visible; -} - -.satus-slider__ring { - position: absolute; - top: -11px; - right: -18px; - width: 24px; - height: 24px; - transition: 100ms; - transform: scale(0); - opacity: 0; - border-radius: 50%; - background-color: var(--satus-theme-primary); -} - -.satus-slider__range:focus+.satus-slider__container .satus-slider__ring { - transform: scale(1); - opacity: .25; -} - - -/*-------------------------------------------------------------- -3.11 SWITCH ---------------------------------------------------------------*/ - -.satus-switch { - position: relative; - display: flex; - box-sizing: border-box; - width: 100%; - height: 48px; - padding: 0 16px; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - background-color: transparent; - align-items: center; - justify-content: space-between; -} - -.satus-switch:hover { - background-color: var(--satus-theme-ripple); -} - -.satus-switch__input { - position: absolute; - z-index: 1; - top: 0; - left: 0; - width: 100%; - height: 100%; - margin: 0; - padding: 0; - opacity: 0; - outline: none; - -webkit-appearance: none; -} - - -/* LABEL */ - -.satus-switch__label { - padding: 0 16px 0 0; -} - - -/* TRACK*/ - -.satus-switch__track { - position: relative; - width: 32px; - min-width: 32px; - height: 18px; - border-radius: 18px; - background: #bdbdbd; -} - -.satus-switch__track::before { - position: absolute; - top: -7px; - left: -7px; - width: 32px; - height: 32px; - content: ''; - transition: left .1s cubic-bezier(.4, 0, .2, 1), transform 200ms, background-color 200ms; - transform: scale(0); - opacity: 0; - border-radius: 50%; - background-color: #000; - will-change: left, transform, background-color; -} - -.satus-switch__input:checked+.satus-switch__track::before { - left: 8px; - background-color: var(--satus-theme-primary, #54d2a3); -} - -.satus-switch__input:focus+.satus-switch__track::before { - transform: scale(1); - opacity: .08; -} - -.satus-switch__input:checked:focus+.satus-switch__track::before { - opacity: .25; -} - -.satus-switch__track::after { - position: absolute; - width: 14px; - height: 14px; - content: ''; - transition: transform .1s cubic-bezier(.4, 0, .2, 1); - transform: translate(2px, 2px); - border-radius: 50%; - background-color: #fff; - will-change: transform; -} - -.satus-switch__input:checked+.satus-switch__track { - background: var(--satus-theme-primary, #54d2a3); -} - -.satus-switch__input:checked+.satus-switch__track::after { - transform: translate(16px, 2px); -} - - -/*-------------------------------------------------------------- -3.12 TABLE ---------------------------------------------------------------*/ - -.satus-table { - font-size: .875rem; - position: relative; - display: flex; - overflow: hidden; - flex-direction: column; - box-sizing: border-box; - border: 1px solid #ececec; - border-radius: 6px; -} - -.satus-table__head { - position: relative; - z-index: 1; - display: flex; - box-sizing: border-box; - width: 100%; - height: 44px; - padding: 0 8px; - background: #fff; - box-shadow: 0 2px 4px rgba(0, 0, 0, .1); -} - -.satus-table__head>div { - font-weight: 600; - display: inline-flex; - box-sizing: border-box; - padding: 0 8px 0 0; - opacity: .7; - flex-shrink: 0; - align-items: center; -} - -.satus-table__head>div:last-child { - padding: 0; -} - -.satus-table__head>div:hover { - cursor: pointer; - opacity: 1; -} - -.satus-table__head>div[data-sorting=false]:hover { - cursor: default; -} - -.satus-table__head>div>span { - position: relative; -} - -.satus-table__head>div[data-sorting=asc]>span::after { - position: absolute; - top: calc(50% - 2px); - right: -14px; - width: 0; - height: 0; - content: ''; - border-right: 4px solid transparent; - border-bottom: 5px solid currentColor; - border-left: 4px solid transparent; -} - -.satus-table__head>div[data-sorting=desc]>span::after { - position: absolute; - top: calc(50% - 2px); - right: -13px; - width: 0; - height: 0; - content: ''; - border-top: 5px solid currentColor; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} - -.satus-table__body { - overflow: hidden; - width: 100%; - height: calc(100% - 48px); - background: #fff; - flex: 1; -} - -.satus-table__row { - display: flex; - box-sizing: border-box; - padding: 0 8px; - border-bottom: 1px solid rgba(0, 0, 0, .1); -} - -.satus-table__row:nth-child(2n) { - background: rgba(0, 0, 0, .03); -} - -.satus-table__cell { - overflow: hidden; - box-sizing: border-box; - padding: 8px 8px 8px 0; - white-space: nowrap; - text-overflow: ellipsis; - word-wrap: break-word; - -webkit-hyphens: auto; - -moz-hyphens: auto; - hyphens: auto; - overflow-wrap: break-word; - flex-shrink: 0; -} - -.satus-table__cell:last-child { - padding-right: 0; -} - -.satus-table__cell input { - box-sizing: border-box; - width: 100%; - height: calc(100% - 10px); - margin: 5px 0; - padding: 1px 2px; - border: 1px solid #d2d2d2; - border-radius: 4px; - outline: none; -} - -.satus-table__paging>button { - min-width: 32px; - height: 32px; - padding: 0 8px; - cursor: pointer; - color: var(--satus-theme-on-surface, #555); - border: none; - background: transparent; -} - -.satus-table__paging>button.active { - color: #2979ff; -} - - -/*-------------------------------------------------------------- -3.13 TEXT ---------------------------------------------------------------*/ - -.satus-text { - margin: 0; - color: inherit; - border: none; -} - -.satus-text__label { - margin-right: 16px -} - - -/*-------------------------------------------------------------- -3.14 TEXT FIELD ---------------------------------------------------------------*/ - -.satus-text-field { - font: inherit; - box-sizing: border-box; - width: 100%; - margin: 0; - padding: 0; - padding: 0 8px; - /* it overwrites padding above; remove one of them */ - color: inherit; - border: none; - outline: none; - background: unset; -} \ No newline at end of file +html{--satus-theme-primary:#ff4158;--satus-header-background:#fff}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:0;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:24px;height:24px;border-radius:50%}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{display:flex;flex-direction:column;align-items:center}.satus-modal--color-picker canvas{width:256px;height:256px}.satus-color-picker__cursor{border-radius:50%;position:absolute;pointer-events:none;width:5px;border:1px solid #fff;height:5px;box-shadow:0 0 0 1px #000;transform:translate(-50%,-50%)}.satus-color-picker__slider .satus-slider__container{height:18px}.satus-color-picker__slider .satus-slider__track-container{top:calc(50% - 9px);height:18px}.satus-color-picker__slider .satus-slider__track-container::before{height:16px;opacity:1;background:linear-gradient(90deg,#fff,#000);border:1px solid #bfbfbf;border-radius:4px}.satus-color-picker__slider .satus-slider__track{background:0 0}.satus-color-picker__slider .satus-slider__thumb{background:#fff;top:0;border-radius:4px;height:18px;box-shadow:0 0 2px rgb(0,0,0,.2)}.satus-color-picker__slider .satus-slider__thumb:before{display:none}.satus-color-picker__actions{width:100%;justify-content:flex-end}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background)}.satus-button{font:inherit;position:relative;overflow:hidden;min-width:48px;height:48px;margin:0;padding:8px;cursor:pointer;color:var(--satus-button-text);border:none;background:var(--satus-button-background);appearance:none}.satus-button:hover{cursor:pointer;background-color:rgba(0,0,0,.04)}.satus-button>*{pointer-events:none}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;height:48px}.satus-list__item>:last-child{text-align:right}.satus-section{display:flex;flex-wrap:wrap}.satus-section--align-start{justify-content:flex-start}.satus-section--align-end{justify-content:flex-end}.satus-header>.satus-section{align-items:center}.satus-section--card{flex-direction:column;width:calc(100% - 16px);max-width:900px;margin:8px auto;padding:8px 0;border:1px solid rgba(0,0,0,.1);border-radius:8px;background:#fff}.satus-section--card>*{min-height:48px;padding:0 16px;text-align:left}.satus-section--card>.satus-button{display:flex;padding:0 16px;align-items:center}.satus-section--card>.satus-button>svg{width:20px;margin-right:8px;color:var(--satus-theme-primary)}.satus-section--label{font-size:17px;display:block;width:calc(100% - 16px);max-width:900px;margin:16px auto 8px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3)}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(25,25,25,.2);backdrop-filter:blur(8px)}.satus-modal__surface{font-size:14px;display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;padding:8px 0;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:#777;border-radius:6px;background-color:#f7f7f6;box-shadow:inset 0 -1px 1px 1px rgb(0,0,0,.1),0 2px 6px rgb(0,0,0,.15)}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:0;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer;background-color:rgba(0,0,0,.04)}.satus-switch__thumb{width:38px;height:20px;transition:background-color 150ms;border-radius:20px;background-color:rgba(0,0,0,.06)}.satus-switch__thumb::before{display:block;width:16px;height:16px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:#fff;will-change:transform}.satus-switch[data-value=true] .satus-switch__thumb{background-color:#ff4158}.satus-switch[data-value=true] .satus-switch__thumb::before{transform:translateX(18px)}.satus-slider{position:relative;display:flex;flex-direction:column;box-sizing:border-box;width:100%;min-height:64px;padding:0 16px;-webkit-user-select:none;-moz-user-select:none;user-select:none;outline:0;align-items:flex-start;justify-content:center}.satus-slider:hover{cursor:pointer;background-color:rgba(0,0,0,.04)}.satus-slider__label{cursor:default}.satus-slider>input{position:absolute;z-index:1;top:0;left:0;box-sizing:border-box;width:100%;height:100%;margin:0;padding:0;opacity:0}.satus-slider__container{position:relative;width:100%;height:12px;margin:8px 0 0}.satus-slider__track-container{position:absolute;top:calc(50% - 1px);width:100%;height:2px;pointer-events:none}.satus-slider__track-container::before{position:absolute;top:0;left:0;width:100%;height:2px;content:'';opacity:.26;background-color:var(--satus-theme-primary)}.satus-slider__track{position:relative;width:0;height:100%;background-color:var(--satus-theme-primary);will-change:width}.satus-slider:not(.satus-slider--dragging) .satus-slider__track{transition:width .1s ease-out}.satus-slider__thumb{position:absolute;top:-5px;right:-12px;width:12px;height:12px;border-radius:50%;background-color:var(--satus-theme-primary);box-shadow:0 1px 5px rgba(0,0,0,.15)}.satus-slider .satus-slider__thumb::before{font-size:13px;position:absolute;top:-34px;left:50%;visibility:hidden;box-sizing:border-box;min-width:28px;padding:4px 4px;content:attr(data-value);transform:translateX(-50%);text-align:center;pointer-events:none;color:#fff;border-radius:4px;background:var(--satus-theme-tooltip)}.satus-slider:hover .satus-slider__thumb::before,.satus-slider>input:focus .satus-slider__container .satus-slider__thumb::before{visibility:visible}.satus-slider__ring{position:absolute;top:-11px;right:-18px;width:24px;height:24px;transition:.1s;transform:scale(0);opacity:0;border-radius:50%;background-color:var(--satus-theme-primary)}.satus-slider>input:focus+.satus-slider__container .satus-slider__ring{transform:scale(1);opacity:.25}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{text-transform:uppercase;font-size:11px;opacity:.5}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:#dedede;align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__mouse>div{position:absolute;top:0;left:13px;width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-4px;left:21px;width:2px;height:18px;content:'';background:#f96754}.satus-shortcut__mouse.false::after{position:absolute;top:-12px;left:17px;width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:14px;left:17px;width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-base{display:flex;flex-direction:column;width:100%;height:100vh}.satus-header{display:flex;box-sizing:border-box;height:48px;padding:0 16px;color:var(--satus-header-text);background:var(--satus-header-background);align-items:center;justify-content:space-between}.satus-layers{position:relative;overflow:hidden;color:#777;background:#f7f7f6;flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;width:100%;height:100%;flex-wrap:wrap;align-content:flex-start}.satus-input[type=text]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:0;padding:0 8px;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select{position:relative;display:flex;box-sizing:border-box;align-items:center}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;padding:inherit;cursor:pointer;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select select:hover{cursor:pointer;background-color:rgba(0,0,0,.04)}.satus-section--card .satus-select select{text-align-last:right}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1s;opacity:.04;border-radius:50%;background:#000;animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:.04}70%{transform:scale(.8);opacity:.04}100%{transform:scale(1);opacity:0}} \ No newline at end of file diff --git a/satus.js b/satus.js index d09bf1ccc..e4c31761b 100644 --- a/satus.js +++ b/satus.js @@ -1,2211 +1 @@ -/*-------------------------------------------------------------- ->>> SATUS.JS ----------------------------------------------------------------- -1.0 Core - 1.1 Events - 1.2 Isset - 1.3 Camelize - 1.4 Animation duration -2.0 Modules - 2.1 Browser storage - 2.2 Localization - 2.3 Render - 2.4 Clone node styles - 2.5 Search - 2.6 Storage keys - 2.7 User -3.0 Components - 3.1 Button - 3.2 Colop picker - 3.3 Dialog - 3.4 Folder - 3.5 Header - 3.6 List - 3.7 Main - 3.8 Scroll bar - 3.9 Section - 3.10 Select - 3.11 Shortcut - 3.12 Slider - 3.13 Switch - 3.14 Text - 3.15 Text field ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -1.0 CORE ---------------------------------------------------------------*/ - -var satus = { - components: {}, - modules: {} -}; - - -/*-------------------------------------------------------------- -1.1 EVENTS ---------------------------------------------------------------*/ - -satus.events = {}; - -satus.on = function (event, handler) { - if (!this.isset(this.events[event])) { - this.events[event] = []; - } - - this.events[event].push(handler); -}; - - -/*-------------------------------------------------------------- -1.2 ISSET ---------------------------------------------------------------*/ - -satus.isset = function (variable) { - if (typeof variable === 'undefined' || variable === null) { - return false; - } - - return true; -}; - - -/*-------------------------------------------------------------- -1.3 CAMELIZE ---------------------------------------------------------------*/ - -satus.camelize = function (string) { - return string.replace(/-[a-z]/g, function (match) { - return match[1].toUpperCase(); - }); -}; - - -/*-------------------------------------------------------------- -1.4 ANIMATION DURATION ---------------------------------------------------------------*/ - -satus.getAnimationDuration = function (element) { - return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; -}; - - -/*-------------------------------------------------------------- -2.0 MODULES ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -2.1 BROWSER STORAGE ---------------------------------------------------------------*/ - -satus.storage = {}; - -satus.storage.get = function (name) { - var target = satus.storage; - - name = name.split('/').filter(function (value) { - return value != ''; - }); - - for (var i = 0, l = name.length; i < l; i++) { - if (satus.isset(target[name[i]])) { - target = target[name[i]]; - } else { - return undefined; - } - } - - return target; -}; - -satus.storage.set = function (name, value) { - var items = {}, - target = satus.storage; - - if (!satus.isset(name)) { - return false; - } - - name = name.split('/').filter(function (value) { - return value != ''; - }); - - for (var i = 0, l = name.length; i < l; i++) { - var item = name[i]; - - if (i < l - 1) { - - if (target[item]) { - target = target[item]; - } else { - target[item] = {}; - - target = target[item]; - } - } else { - target[item] = value; - } - } - - for (var key in satus.storage) { - if (typeof satus.storage[key] !== 'function') { - items[key] = satus.storage[key]; - } - } - - chrome.storage.local.set(items); -}; - -satus.storage.import = function (callback) { - chrome.storage.local.get(function (items) { - for (var key in items) { - satus.storage[key] = items[key]; - } - - if (callback) { - callback(items); - } - }); -}; - -satus.storage.clear = function () { - chrome.storage.local.clear(); - - for (var key in satus.storage) { - if (typeof satus.storage[key] !== 'function') { - delete satus.storage[key]; - } - } -}; - - -/*--------------------------------------------------------------- -2.2 LOCALIZATION ----------------------------------------------------------------*/ - -satus.locale = { - messages: {} -}; - -satus.locale.getMessage = function (string) { - return this.messages[string] || string; -}; - -satus.locale.get = satus.locale.getMessage; - -satus.locale.import = function (language, callback) { - var xhr = new XMLHttpRequest(); - - if (typeof language === 'function') { - var callback = language; - } - - if (typeof language !== 'string') { - var language = chrome.i18n.getUILanguage(); - } - - if (language.indexOf('en-') === 0) { - language = 'en'; - } - - xhr.onload = function () { - try { - var object = JSON.parse(this.responseText); - - for (var key in object) { - satus.locale.messages[key] = object[key].message; - } - - callback(language); - } catch (err) { - function listener(request) { - if (request !== null && typeof request === 'object') { - if (request.name === 'translation_response') { - var object = JSON.parse(request.value); - - chrome.runtime.onMessage.removeListener(listener); - - for (var key in object) { - satus.locale.messages[key] = object[key].message; - } - - callback(language); - } - } - } - - chrome.runtime.onMessage.addListener(listener); - - console.log('_locales/' + language + '/messages.json'); - chrome.runtime.sendMessage({ - name: 'translation_request', - path: '_locales/' + language + '/messages.json' - }); - } - }; - - xhr.onerror = function () { - if (language === 'en') { - callback(); - } else { - satus.locale.import('en', callback); - } - }; - - xhr.open('GET', '_locales/' + language + '/messages.json', true); - xhr.send(); -}; - - -/*-------------------------------------------------------------- -2.3 RENDER ---------------------------------------------------------------*/ - -satus.render = function (element, container, callback) { - function convert(object) { - if (object && object.type) { - var type = satus.camelize(object.type), - component = satus.components[type](object), - excluded_properties = ['type', 'label', 'class', 'title', 'storage']; - - function applyProperties(object, target) { - for (var key in object) { - if (satus.isset(object[key]) && typeof object[key] === 'object' && !object[key].type) { - if (typeof target[key] !== 'object') { - target[key] = {}; - } - - applyProperties(object[key], target[key]); - } else if (excluded_properties.indexOf(key) === -1) { - target[key] = object[key]; - } - } - } - - applyProperties(object, component); - - component.classList.add('satus-' + object.type); - - if (object.class) { - var class_list = object.class.split(' '); - - for (var i = 0, l = class_list.length; i < l; i++) { - component.classList.add(class_list[i]); - } - } - - if (object.before) { - var component_before = document.createElement('span'); - - component_before.innerHTML = object.before; - - for (var i = component_before.children.length - 1; i > -1; i--) { - component.insertBefore(component_before.children[i], component.firstChild); - } - } - - if (object.after) { - var component_after = document.createElement('span'); - - component_after.innerHTML = object.after; - - for (var i = component_after.children.length - 1; i > -1; i--) { - component.appendChild(component_after.children[i]); - } - } - - (container || document.body).appendChild(component); - - if (typeof component.onClickRender === 'object') { - component.addEventListener('click', function () { - satus.render(component.onClickRender); - }); - } - - if (satus.isset(satus.events.render)) { - for (var i = 0, l = satus.events.render.length; i < l; i++) { - satus.events.render[i](component, object); - } - } - - if (typeof component.onrender === 'function') { - component.onrender(object); - } - - if (callback) { - callback(); - } - } - } - - if (element.type) { - convert(element); - } else { - for (var key in element) { - convert(element[key]); - } - } -}; - - -/*-------------------------------------------------------------- -2.4 CLONE NODE STYLES ---------------------------------------------------------------*/ - -satus.cloneNodeStyles = function (origin, target) { - target.style.cssText = window.getComputedStyle(origin, '').cssText; - - for (var i = 0, l = origin.children.length; i < l; i++) { - satus.cloneNodeStyles(origin.children[i], target.children[i]); - } -}; - - -/*-------------------------------------------------------------- -2.5 SEARCH ---------------------------------------------------------------*/ - -satus.search = function (query, object, callback, categories) { - var threads = 0, - folder = '', - results = {}; - - query = query.toLowerCase(); - - function parse(items) { - threads++; - - for (var key in items) { - var item = items[key], - key_locale = (satus.locale.messages[item.label] || '').toLowerCase(); - - if (categories === true && item.type === 'folder' && folder !== item.label) { - folder = item.label; - } - - if ( - ['switch', 'select', 'slider', 'shortcut'].indexOf(item.type) !== -1 && - ( - key.indexOf(query) !== -1 || - key_locale.indexOf(query) !== -1 - ) - ) { - if (categories === true) { - if (!results[folder]) { - results[folder] = {}; - } - - results[folder][key] = item; - } else { - results[key] = item; - } - } - - if (typeof item === 'object') { - parse(item); - } - } - - threads--; - - if (threads === 0) { - callback(results); - } - } - - parse(object); -}; - - -/*-------------------------------------------------------------- -2.6 STORAGE KEYS ---------------------------------------------------------------*/ - -satus.modules.updateStorageKeys = function (object, callback) { - var threads = 0; - - function parse(items) { - threads++; - - for (var key in items) { - var item = items[key]; - - - if (item.type) { - item.storage_key = key; - } - - if (typeof item === 'object') { - parse(item); - } - } - - threads--; - - if (threads === 0) { - callback(); - } - } - - parse(object); -}; - - -/*-------------------------------------------------------------- -2.7 USER ---------------------------------------------------------------*/ - -satus.modules.user = function () { - /*-------------------------------------------------------------- - 1.0 VARIABLES - --------------------------------------------------------------*/ - - var user_agent = navigator.userAgent, - random_cookie = 'ta{t`nX6cMXK,Wsc', - video = document.createElement('video'), - video_formats = { - ogg: 'video/ogg; codecs="theora"', - h264: 'video/mp4; codecs="avc1.42E01E"', - webm: 'video/webm; codecs="vp8, vorbis"', - vp9: 'video/webm; codecs="vp9"', - hls: 'application/x-mpegURL; codecs="avc1.42E01E"' - }, - audio = document.createElement('audio'), - audio_formats = { - mp3: 'audio/mpeg', - mp4: 'audio/mp4', - aif: 'audio/x-aiff' - }, - cvs = document.createElement('canvas'), - ctx = cvs.getContext('webgl'), - data = { - browser: { - audio: null, - cookies: null, - flash: null, - java: null, - languages: null, - name: null, - platform: null, - version: null, - video: null, - webgl: null - }, - os: { - name: null, - type: null - }, - device: { - connection: { - type: null, - speed: null - }, - cores: null, - gpu: null, - max_touch_points: null, - ram: null, - screen: null, - touch: null - } - }; - - - /*-------------------------------------------------------------- - 2.0 SOFTWARE - --------------------------------------------------------------*/ - - /*-------------------------------------------------------------- - 2.1.0 OS - --------------------------------------------------------------*/ - - /*-------------------------------------------------------------- - 2.1.1 NAME - --------------------------------------------------------------*/ - - if (navigator.appVersion.indexOf('Win') !== -1) { - if (navigator.appVersion.match(/(Windows 10.0|Windows NT 10.0)/)) { - data.os.name = 'Windows 10'; - } else if (navigator.appVersion.match(/(Windows 8.1|Windows NT 6.3)/)) { - data.os.name = 'Windows 8.1'; - } else if (navigator.appVersion.match(/(Windows 8|Windows NT 6.2)/)) { - data.os.name = 'Windows 8'; - } else if (navigator.appVersion.match(/(Windows 7|Windows NT 6.1)/)) { - data.os.name = 'Windows 7'; - } else if (navigator.appVersion.match(/(Windows NT 6.0)/)) { - data.os.name = 'Windows Vista'; - } else if (navigator.appVersion.match(/(Windows NT 5.1|Windows XP)/)) { - data.os.name = 'Windows XP'; - } else { - data.os.name = 'Windows'; - } - } else if (navigator.appVersion.indexOf('(iPhone|iPad|iPod)') !== -1) { - data.os.name = 'iOS'; - } else if (navigator.appVersion.indexOf('Mac') !== -1) { - data.os.name = 'macOS'; - } else if (navigator.appVersion.indexOf('Android') !== -1) { - data.os.name = 'Android'; - } else if (navigator.appVersion.indexOf('OpenBSD') !== -1) { - data.os.name = 'OpenBSD'; - } else if (navigator.appVersion.indexOf('SunOS') !== -1) { - data.os.name = 'SunOS'; - } else if (navigator.appVersion.indexOf('Linux') !== -1) { - data.os.name = 'Linux'; - } else if (navigator.appVersion.indexOf('X11') !== -1) { - data.os.name = 'UNIX'; - } - - /*-------------------------------------------------------------- - 2.1.2 TYPE - --------------------------------------------------------------*/ - - if (navigator.appVersion.match(/(Win64|x64|x86_64|WOW64)/)) { - data.os.type = '64-bit'; - } else { - data.os.type = '32-bit'; - } - - - /*-------------------------------------------------------------- - 2.2.0 BROWSER - --------------------------------------------------------------*/ - - /*-------------------------------------------------------------- - 2.2.1 NAME - --------------------------------------------------------------*/ - - if (user_agent.indexOf('Opera') !== -1) { - data.browser.name = 'Opera'; - } else if (user_agent.indexOf('Vivaldi') !== -1) { - data.browser.name = 'Vivaldi'; - } else if (user_agent.indexOf('Edge') !== -1) { - data.browser.name = 'Edge'; - } else if (user_agent.indexOf('Chrome') !== -1) { - data.browser.name = 'Chrome'; - } else if (user_agent.indexOf('Safari') !== -1) { - data.browser.name = 'Safari'; - } else if (user_agent.indexOf('Firefox') !== -1) { - data.browser.name = 'Firefox'; - } else if (user_agent.indexOf('MSIE') !== -1) { - data.browser.name = 'IE'; - } - - - /*-------------------------------------------------------------- - 2.2.2 VERSION - --------------------------------------------------------------*/ - - var browser_version = user_agent.match(new RegExp(data.browser.name + '/([0-9.]+)')); - - if (browser_version[1]) { - data.browser.version = browser_version[1]; - } - - - /*-------------------------------------------------------------- - 2.2.3 PLATFORM - --------------------------------------------------------------*/ - - data.browser.platform = navigator.platform || null; - - - /*-------------------------------------------------------------- - 2.2.4 LANGUAGES - --------------------------------------------------------------*/ - - data.browser.languages = navigator.languages || null; - - - /*-------------------------------------------------------------- - 2.2.5 COOKIES - --------------------------------------------------------------*/ - - if (document.cookie) { - document.cookie = random_cookie; - - if (document.cookie.indexOf(random_cookie) !== -1) { - data.browser.cookies = true; - } - } - - - /*-------------------------------------------------------------- - 2.2.6 FLASH - --------------------------------------------------------------*/ - - try { - if (new ActiveXObject('ShockwaveFlash.ShockwaveFlash')) { - data.browser.flash = true; - } - } catch (e) { - if (navigator.mimeTypes['application/x-shockwave-flash']) { - data.browser.flash = true; - } - } - - - /*-------------------------------------------------------------- - 2.2.7 JAVA - --------------------------------------------------------------*/ - - if (typeof navigator.javaEnabled === 'function' && navigator.javaEnabled()) { - data.browser.java = true; - } - - - /*-------------------------------------------------------------- - 2.2.8 VIDEO FORMATS - --------------------------------------------------------------*/ - - if (typeof video.canPlayType === 'function') { - data.browser.video = {}; - - for (var i in video_formats) { - var can_play_type = video.canPlayType(video_formats[i]); - - if (can_play_type === '') { - data.browser.video[i] = false; - } else { - data.browser.video[i] = can_play_type; - } - } - } - - - /*-------------------------------------------------------------- - 2.2.9 AUDIO FORMATS - --------------------------------------------------------------*/ - - if (typeof audio.canPlayType === 'function') { - data.browser.audio = {}; - - for (var i in audio_formats) { - var can_play_type = audio.canPlayType(audio_formats[i]); - - if (can_play_type == '') { - data.browser.audio[i] = false; - } else { - data.browser.audio[i] = can_play_type; - } - } - } - - - /*-------------------------------------------------------------- - 2.2.10 WEBGL - --------------------------------------------------------------*/ - - if (ctx && ctx instanceof WebGLRenderingContext) { - data.browser.webgl = true; - } - - - /*-------------------------------------------------------------- - 3.0 HARDWARE - --------------------------------------------------------------*/ - - /*-------------------------------------------------------------- - 3.1 SCREEN - --------------------------------------------------------------*/ - - if (screen) { - data.device.screen = screen.width + 'x' + screen.height; - } - - - /*-------------------------------------------------------------- - 3.2 RAM - --------------------------------------------------------------*/ - - if ('deviceMemory' in navigator) { - data.device.ram = navigator.deviceMemory + ' GB'; - } - - - /*-------------------------------------------------------------- - 3.3 GPU - --------------------------------------------------------------*/ - - if ( - ctx && - ctx instanceof WebGLRenderingContext && - 'getParameter' in ctx && - 'getExtension' in ctx - ) { - var info = ctx.getExtension('WEBGL_debug_renderer_info'); - - if (info) { - data.device.gpu = ctx.getParameter(info.UNMASKED_RENDERER_WEBGL); - } - } - - - /*-------------------------------------------------------------- - 3.4 CORES - --------------------------------------------------------------*/ - - if (navigator.hardwareConcurrency) { - data.device.cores = navigator.hardwareConcurrency; - } - - - /*-------------------------------------------------------------- - 3.5 TOUCH - --------------------------------------------------------------*/ - - if ( - window.hasOwnProperty('ontouchstart') || - window.DocumentTouch && document instanceof window.DocumentTouch || - navigator.maxTouchPoints > 0 || - window.navigator.msMaxTouchPoints > 0 - ) { - data.device.touch = true; - data.device.max_touch_points = navigator.maxTouchPoints; - } - - - /*-------------------------------------------------------------- - 3.6 CONNECTION - --------------------------------------------------------------*/ - - if (typeof navigator.connection === 'object') { - data.device.connection.type = navigator.connection.effectiveType || null; - - if (navigator.connection.downlink) { - data.device.connection.speed = navigator.connection.downlink + ' Mbps'; - } - } - - - /*-------------------------------------------------------------- - 4.0 CLEARING - --------------------------------------------------------------*/ - - video.remove(); - audio.remove(); - cvs.remove(); - - - return data; -}; -satus.on('render', function (component, data) { - if (data.perspective === true) { - component.style.willChange = 'transform'; - component.style.transformStyle = 'preserve-3d'; - component.style.transition = '.4s'; - - component.addEventListener('mousemove', function (event) { - var bounding = component.getBoundingClientRect(), - dx = event.clientX - bounding.left - bounding.width / 2, - dy = event.clientY - bounding.top - bounding.height / 2; - - this.style.transform = 'perspective(440px) rotateX(' + dy * -1 + 'deg) rotateY(' + dx + 'deg) translateZ(0)'; - }); - - component.addEventListener('mouseout', function (event) { - this.style.transform = 'perspective(440px) rotateX(0deg) rotateY(0deg) translateZ(0)'; - }); - } -}); - - -/*-------------------------------------------------------------- -3.0 COMPONENTS ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -3.1 BUTTON ---------------------------------------------------------------*/ - -satus.components.button = function (element) { - var component = document.createElement('button'); - - if (satus.isset(element.icon)) { - var component_icon = document.createElement('span'); - - component_icon.className = 'satus-button__icon'; - component_icon.innerHTML = element.icon; - - component.appendChild(component_icon); - } - - if (satus.isset(element.label)) { - var component_label = document.createElement('span'); - - component_label.className = 'satus-button__label'; - component_label.innerText = satus.locale.getMessage(element.label); - - component.appendChild(component_label); - } - - return component; -}; - - -/*-------------------------------------------------------------- -3.2 COLOR PICKER ---------------------------------------------------------------*/ - -satus.components.colorPicker = function (element) { - var component = document.createElement('div'), - component_value = document.createElement('div'); - - element.class = 'satus-button'; - component_value.className = 'satus-color-picker__value'; - component_value.style.backgroundColor = satus.storage.get(element.storage_key) || element.value || ''; - - if (satus.isset(element.label)) { - var component_label = document.createElement('span'); - - component_label.className = 'satus-button__label'; - component_label.innerText = satus.locale.getMessage(element.label); - - component.appendChild(component_label); - } - - component.addEventListener('click', function () { - var component = document.createElement('div'), - component_canvas = document.createElement('canvas'), - close = document.createElement('button'), - ctx = component_canvas.getContext('2d'), - image = new Image(), - dialog = satus.components.dialog({}); - - close.className = 'satus-button'; - close.innerHTML = ''; - close.onclick = function () { - dialog.querySelector('.satus-dialog__scrim').click(); - }; - - dialog.className = 'satus-dialog satus-dialog--color-picker'; - - component_canvas.width = 200; - component_canvas.height = 200; - - function select(event) { - var coordinates = component_canvas.getBoundingClientRect(), - x = event.clientX - coordinates.left, - y = event.clientY - coordinates.top, - color = ctx.getImageData(x, y, 1, 1).data; - - component_value.style.backgroundColor = 'rgb(' + color[0] + ',' + color[1] + ',' + color[2] + ')'; - - satus.storage.set(element.storage_key, component_value.style.backgroundColor); - } - - function mouseup(event) { - component_canvas.removeEventListener('mousemove', select); - window.removeEventListener('mouseup', mouseup); - } - - component_canvas.addEventListener('mousedown', function () { - select(event); - this.addEventListener('mousemove', select); - window.addEventListener('mouseup', mouseup); - }); - - image.onload = function () { - ctx.drawImage(image, 0, 0); - - image.remove(); - }; - - image.src = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNzAgMjcwIj48ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9ImEiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iMTMzIiBjbGFzcz0iSXJvV2hlZWxIdWUiPjxwYXRoIHN0cm9rZT0iaHNsKDI0MCwgMTAwJSwgNTAlKSIgZD0iTTIwMS40NzcgMTM2Ljc0YTY2LjUgNjYuNSAwIDAwLjAyMy0xLjc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQxLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjQzNyAxMzcuOWE2Ni41IDY2LjUgMCAwMC4wNTMtMS43NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI0MiwgMTAwJSwgNTAlKSIgZD0iTTIwMS4zNzYgMTM5LjA2YTY2LjUgNjYuNSAwIDAwLjA4My0xLjc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQzLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjI5NSAxNDAuMjE4YTY2LjUgNjYuNSAwIDAwLjExNC0xLjczOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI0NCwgMTAwJSwgNTAlKSIgZD0iTTIwMS4xOTQgMTQxLjM3NGE2Ni41IDY2LjUgMCAwMC4xNDQtMS43MzUiLz48cGF0aCBzdHJva2U9ImhzbCgyNDUsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuMDczIDE0Mi41MjhhNjYuNSA2Ni41IDAgMDAuMTc0LTEuNzMyIi8+PHBhdGggc3Ryb2tlPSJoc2woMjQ2LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjkzMSAxNDMuNjhhNjYuNSA2Ni41IDAgMDAuMjA1LTEuNzI5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQ3LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjc3IDE0NC44M2E2Ni41IDY2LjUgMCAwMC4yMzQtMS43MjYiLz48cGF0aCBzdHJva2U9ImhzbCgyNDgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDAuNTg4IDE0NS45NzZhNjYuNSA2Ni41IDAgMDAuMjY1LTEuNzIxIi8+PHBhdGggc3Ryb2tlPSJoc2woMjQ5LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjM4NiAxNDcuMTE5YTY2LjUgNjYuNSAwIDAwLjI5NS0xLjcxNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1MCwgMTAwJSwgNTAlKSIgZD0iTTIwMC4xNjUgMTQ4LjI1OGE2Ni41IDY2LjUgMCAwMC4zMjUtMS43MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1MSwgMTAwJSwgNTAlKSIgZD0iTTE5OS45MjQgMTQ5LjM5M2E2Ni41IDY2LjUgMCAwMC4zNTQtMS43MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuNjYzIDE1MC41MjRhNjYuNSA2Ni41IDAgMDAuMzg0LTEuNjk4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjUzLCAxMDAlLCA1MCUpIiBkPSJNMTk5LjM4MiAxNTEuNjVhNjYuNSA2Ni41IDAgMDAuNDE0LTEuNjkiLz48cGF0aCBzdHJva2U9ImhzbCgyNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuMDgxIDE1Mi43NzFhNjYuNSA2Ni41IDAgMDAuNDQ0LTEuNjgzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjU1LCAxMDAlLCA1MCUpIiBkPSJNMTk4Ljc2MiAxNTMuODg3YTY2LjUgNjYuNSAwIDAwLjQ3Mi0xLjY3NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1NiwgMTAwJSwgNTAlKSIgZD0iTTE5OC40MjIgMTU0Ljk5N2E2Ni41IDY2LjUgMCAwMC41MDItMS42NjciLz48cGF0aCBzdHJva2U9ImhzbCgyNTcsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguMDY0IDE1Ni4xYTY2LjUgNjYuNSAwIDAwLjUzLTEuNjU3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjU4LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjY4NiAxNTcuMTk4YTY2LjUgNjYuNSAwIDAwLjU2LTEuNjQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjU5LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjI4OSAxNTguMjg5YTY2LjUgNjYuNSAwIDAwLjU4OC0xLjYzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2MCwgMTAwJSwgNTAlKSIgZD0iTTE5Ni44NzMgMTU5LjM3MmE2Ni41IDY2LjUgMCAwMC42MTctMS42MjgiLz48cGF0aCBzdHJva2U9ImhzbCgyNjEsIDEwMCUsIDUwJSkiIGQ9Ik0xOTYuNDM4IDE2MC40NDhhNjYuNSA2Ni41IDAgMDAuNjQ1LTEuNjE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjYyLCAxMDAlLCA1MCUpIiBkPSJNMTk1Ljk4NCAxNjEuNTE3YTY2LjUgNjYuNSAwIDAwLjY3NC0xLjYwNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2MywgMTAwJSwgNTAlKSIgZD0iTTE5NS41MTIgMTYyLjU3N2E2Ni41IDY2LjUgMCAwMC43MDItMS41OTMiLz48cGF0aCBzdHJva2U9ImhzbCgyNjQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTUuMDIyIDE2My42MjlhNjYuNSA2Ni41IDAgMDAuNzI5LTEuNTgxIi8+PHBhdGggc3Ryb2tlPSJoc2woMjY1LCAxMDAlLCA1MCUpIiBkPSJNMTk0LjUxMyAxNjQuNjcyYTY2LjUgNjYuNSAwIDAwLjc1Ni0xLjU2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2NiwgMTAwJSwgNTAlKSIgZD0iTTE5My45ODYgMTY1LjcwNmE2Ni41IDY2LjUgMCAwMC43ODQtMS41NTQiLz48cGF0aCBzdHJva2U9ImhzbCgyNjcsIDEwMCUsIDUwJSkiIGQ9Ik0xOTMuNDQxIDE2Ni43MzFhNjYuNSA2Ni41IDAgMDAuODEtMS41NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2OCwgMTAwJSwgNTAlKSIgZD0iTTE5Mi44NzkgMTY3Ljc0NmE2Ni41IDY2LjUgMCAwMC44MzctMS41MjYiLz48cGF0aCBzdHJva2U9ImhzbCgyNjksIDEwMCUsIDUwJSkiIGQ9Ik0xOTIuMjk4IDE2OC43NTFhNjYuNSA2Ni41IDAgMDAuODY0LTEuNTExIi8+PHBhdGggc3Ryb2tlPSJoc2woMjcwLCAxMDAlLCA1MCUpIiBkPSJNMTkxLjcgMTY5Ljc0NmE2Ni41IDY2LjUgMCAwMC44OS0xLjQ5NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3MSwgMTAwJSwgNTAlKSIgZD0iTTE5MS4wODYgMTcwLjczYTY2LjUgNjYuNSAwIDAwLjkxNi0xLjQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjcyLCAxMDAlLCA1MCUpIiBkPSJNMTkwLjQ1MyAxNzEuNzA0YTY2LjUgNjYuNSAwIDAwLjk0Mi0xLjQ2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3MywgMTAwJSwgNTAlKSIgZD0iTTE4OS44MDQgMTcyLjY2NmE2Ni41IDY2LjUgMCAwMC45NjgtMS40NDgiLz48cGF0aCBzdHJva2U9ImhzbCgyNzQsIDEwMCUsIDUwJSkiIGQ9Ik0xODkuMTM5IDE3My42MTdhNjYuNSA2Ni41IDAgMDAuOTkyLTEuNDMiLz48cGF0aCBzdHJva2U9ImhzbCgyNzUsIDEwMCUsIDUwJSkiIGQ9Ik0xODguNDU2IDE3NC41NTZhNjYuNSA2Ni41IDAgMDAxLjAxOC0xLjQxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3NiwgMTAwJSwgNTAlKSIgZD0iTTE4Ny43NTggMTc1LjQ4M2E2Ni41IDY2LjUgMCAwMDEuMDQyLTEuMzk1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjc3LCAxMDAlLCA1MCUpIiBkPSJNMTg3LjA0MyAxNzYuMzk3YTY2LjUgNjYuNSAwIDAwMS4wNjYtMS4zNzYiLz48cGF0aCBzdHJva2U9ImhzbCgyNzgsIDEwMCUsIDUwJSkiIGQ9Ik0xODYuMzEzIDE3Ny4zYTY2LjUgNjYuNSAwIDAwMS4wOS0xLjM1OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3OSwgMTAwJSwgNTAlKSIgZD0iTTE4NS41NjcgMTc4LjE4OGE2Ni41IDY2LjUgMCAwMDEuMTEzLTEuMzM4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjgwLCAxMDAlLCA1MCUpIiBkPSJNMTg0LjgwNiAxNzkuMDY0YTY2LjUgNjYuNSAwIDAwMS4xMzYtMS4zMTkiLz48cGF0aCBzdHJva2U9ImhzbCgyODEsIDEwMCUsIDUwJSkiIGQ9Ik0xODQuMDI5IDE3OS45MjdhNjYuNSA2Ni41IDAgMDAxLjE2LTEuMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4MiwgMTAwJSwgNTAlKSIgZD0iTTE4My4yMzcgMTgwLjc3NmE2Ni41IDY2LjUgMCAwMDEuMTgyLTEuMjc5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjgzLCAxMDAlLCA1MCUpIiBkPSJNMTgyLjQzMSAxODEuNjFhNjYuNSA2Ni41IDAgMDAxLjIwNC0xLjI1NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4NCwgMTAwJSwgNTAlKSIgZD0iTTE4MS42MSAxODIuNDMxYTY2LjUgNjYuNSAwIDAwMS4yMjYtMS4yMzYiLz48cGF0aCBzdHJva2U9ImhzbCgyODUsIDEwMCUsIDUwJSkiIGQ9Ik0xODAuNzc2IDE4My4yMzdhNjYuNSA2Ni41IDAgMDAxLjI0Ny0xLjIxNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4NiwgMTAwJSwgNTAlKSIgZD0iTTE3OS45MjcgMTg0LjAyOWE2Ni41IDY2LjUgMCAwMDEuMjY4LTEuMTkzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjg3LCAxMDAlLCA1MCUpIiBkPSJNMTc5LjA2NCAxODQuODA2YTY2LjUgNjYuNSAwIDAwMS4yODktMS4xNzEiLz48cGF0aCBzdHJva2U9ImhzbCgyODgsIDEwMCUsIDUwJSkiIGQ9Ik0xNzguMTg4IDE4NS41NjdhNjYuNSA2Ni41IDAgMDAxLjMxLTEuMTQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjg5LCAxMDAlLCA1MCUpIiBkPSJNMTc3LjMgMTg2LjMxM2E2Ni41IDY2LjUgMCAwMDEuMzI4LTEuMTI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjkwLCAxMDAlLCA1MCUpIiBkPSJNMTc2LjM5NyAxODcuMDQzYTY2LjUgNjYuNSAwIDAwMS4zNDgtMS4xMDEiLz48cGF0aCBzdHJva2U9ImhzbCgyOTEsIDEwMCUsIDUwJSkiIGQ9Ik0xNzUuNDgzIDE4Ny43NThhNjYuNSA2Ni41IDAgMDAxLjM2Ny0xLjA3OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI5MiwgMTAwJSwgNTAlKSIgZD0iTTE3NC41NTYgMTg4LjQ1NmE2Ni41IDY2LjUgMCAwMDEuMzg1LTEuMDUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjkzLCAxMDAlLCA1MCUpIiBkPSJNMTczLjYxNyAxODkuMTM5YTY2LjUgNjYuNSAwIDAwMS40MDQtMS4wMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI5NCwgMTAwJSwgNTAlKSIgZD0iTTE3Mi42NjYgMTg5LjgwNGE2Ni41IDY2LjUgMCAwMDEuNDIyLTEuMDA0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk1LCAxMDAlLCA1MCUpIiBkPSJNMTcxLjcwNCAxOTAuNDUzYTY2LjUgNjYuNSAwIDAwMS40MzktLjk4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk2LCAxMDAlLCA1MCUpIiBkPSJNMTcwLjczIDE5MS4wODZhNjYuNSA2Ni41IDAgMDAxLjQ1Ni0uOTU1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk3LCAxMDAlLCA1MCUpIiBkPSJNMTY5Ljc0NiAxOTEuN2E2Ni41IDY2LjUgMCAwMDEuNDcyLS45MjgiLz48cGF0aCBzdHJva2U9ImhzbCgyOTgsIDEwMCUsIDUwJSkiIGQ9Ik0xNjguNzUxIDE5Mi4yOThhNjYuNSA2Ni41IDAgMDAxLjQ4OS0uOTAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjk5LCAxMDAlLCA1MCUpIiBkPSJNMTY3Ljc0NiAxOTIuODc5YTY2LjUgNjYuNSAwIDAwMS41MDQtLjg3NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwMCwgMTAwJSwgNTAlKSIgZD0iTTE2Ni43MzEgMTkzLjQ0MWE2Ni41IDY2LjUgMCAwMDEuNTE5LS44NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwMSwgMTAwJSwgNTAlKSIgZD0iTTE2NS43MDYgMTkzLjk4NmE2Ni41IDY2LjUgMCAwMDEuNTM0LS44MjQiLz48cGF0aCBzdHJva2U9ImhzbCgzMDIsIDEwMCUsIDUwJSkiIGQ9Ik0xNjQuNjcyIDE5NC41MTNhNjYuNSA2Ni41IDAgMDAxLjU0OC0uNzk3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzAzLCAxMDAlLCA1MCUpIiBkPSJNMTYzLjYyOSAxOTUuMDIyYTY2LjUgNjYuNSAwIDAwMS41NjEtLjc3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzA0LCAxMDAlLCA1MCUpIiBkPSJNMTYyLjU3NyAxOTUuNTEyYTY2LjUgNjYuNSAwIDAwMS41NzUtLjc0MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwNSwgMTAwJSwgNTAlKSIgZD0iTTE2MS41MTcgMTk1Ljk4NGE2Ni41IDY2LjUgMCAwMDEuNTg3LS43MTUiLz48cGF0aCBzdHJva2U9ImhzbCgzMDYsIDEwMCUsIDUwJSkiIGQ9Ik0xNjAuNDQ4IDE5Ni40MzhhNjYuNSA2Ni41IDAgMDAxLjYtLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwNywgMTAwJSwgNTAlKSIgZD0iTTE1OS4zNzIgMTk2Ljg3M2E2Ni41IDY2LjUgMCAwMDEuNjEyLS42NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwOCwgMTAwJSwgNTAlKSIgZD0iTTE1OC4yODkgMTk3LjI4OWE2Ni41IDY2LjUgMCAwMDEuNjIyLS42MzEiLz48cGF0aCBzdHJva2U9ImhzbCgzMDksIDEwMCUsIDUwJSkiIGQ9Ik0xNTcuMTk4IDE5Ny42ODZhNjYuNSA2Ni41IDAgMDAxLjYzMy0uNjAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzEwLCAxMDAlLCA1MCUpIiBkPSJNMTU2LjEgMTk4LjA2NGE2Ni41IDY2LjUgMCAwMDEuNjQ0LS41NzQiLz48cGF0aCBzdHJva2U9ImhzbCgzMTEsIDEwMCUsIDUwJSkiIGQ9Ik0xNTQuOTk3IDE5OC40MjJhNjYuNSA2Ni41IDAgMDAxLjY1My0uNTQ1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzEyLCAxMDAlLCA1MCUpIiBkPSJNMTUzLjg4NyAxOTguNzYyYTY2LjUgNjYuNSAwIDAwMS42NjMtLjUxNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxMywgMTAwJSwgNTAlKSIgZD0iTTE1Mi43NzEgMTk5LjA4MWE2Ni41IDY2LjUgMCAwMDEuNjcyLS40ODciLz48cGF0aCBzdHJva2U9ImhzbCgzMTQsIDEwMCUsIDUwJSkiIGQ9Ik0xNTEuNjUgMTk5LjM4MmE2Ni41IDY2LjUgMCAwMDEuNjgtLjQ1OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxNSwgMTAwJSwgNTAlKSIgZD0iTTE1MC41MjQgMTk5LjY2M2E2Ni41IDY2LjUgMCAwMDEuNjg3LS40MjkiLz48cGF0aCBzdHJva2U9ImhzbCgzMTYsIDEwMCUsIDUwJSkiIGQ9Ik0xNDkuMzkzIDE5OS45MjRhNjYuNSA2Ni41IDAgMDAxLjY5NS0uNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxNywgMTAwJSwgNTAlKSIgZD0iTTE0OC4yNTggMjAwLjE2NWE2Ni41IDY2LjUgMCAwMDEuNzAxLS4zNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxOCwgMTAwJSwgNTAlKSIgZD0iTTE0Ny4xMTkgMjAwLjM4NmE2Ni41IDY2LjUgMCAwMDEuNzA3LS4zNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxOSwgMTAwJSwgNTAlKSIgZD0iTTE0NS45NzYgMjAwLjU4OGE2Ni41IDY2LjUgMCAwMDEuNzEzLS4zMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMCwgMTAwJSwgNTAlKSIgZD0iTTE0NC44MyAyMDAuNzdhNjYuNSA2Ni41IDAgMDAxLjcxOC0uMjgiLz48cGF0aCBzdHJva2U9ImhzbCgzMjEsIDEwMCUsIDUwJSkiIGQ9Ik0xNDMuNjggMjAwLjkzMWE2Ni41IDY2LjUgMCAwMDEuNzIzLS4yNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMiwgMTAwJSwgNTAlKSIgZD0iTTE0Mi41MjggMjAxLjA3M2E2Ni41IDY2LjUgMCAwMDEuNzI3LS4yMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMywgMTAwJSwgNTAlKSIgZD0iTTE0MS4zNzQgMjAxLjE5NGE2Ni41IDY2LjUgMCAwMDEuNzMtLjE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI0LCAxMDAlLCA1MCUpIiBkPSJNMTQwLjIxOCAyMDEuMjk1YTY2LjUgNjYuNSAwIDAwMS43MzMtLjE2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI1LCAxMDAlLCA1MCUpIiBkPSJNMTM5LjA2IDIwMS4zNzZhNjYuNSA2Ni41IDAgMDAxLjczNi0uMTMiLz48cGF0aCBzdHJva2U9ImhzbCgzMjYsIDEwMCUsIDUwJSkiIGQ9Ik0xMzcuOSAyMDEuNDM3YTY2LjUgNjYuNSAwIDAwMS43MzktLjA5OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyNywgMTAwJSwgNTAlKSIgZD0iTTEzNi43NCAyMDEuNDc3YTY2LjUgNjYuNSAwIDAwMS43NC0uMDY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI4LCAxMDAlLCA1MCUpIiBkPSJNMTM1LjU4IDIwMS40OTdhNjYuNSA2Ni41IDAgMDAxLjc0LS4wMzgiLz48cGF0aCBzdHJva2U9ImhzbCgzMjksIDEwMCUsIDUwJSkiIGQ9Ik0xMzQuNDIgMjAxLjQ5N2E2Ni41IDY2LjUgMCAwMDEuNzQtLjAwNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMzMCwgMTAwJSwgNTAlKSIgZD0iTTEzMy4yNiAyMDEuNDc3YTY2LjUgNjYuNSAwIDAwMS43NC4wMjMiLz48cGF0aCBzdHJva2U9ImhzbCgzMzEsIDEwMCUsIDUwJSkiIGQ9Ik0xMzIuMSAyMDEuNDM3YTY2LjUgNjYuNSAwIDAwMS43NC4wNTMiLz48cGF0aCBzdHJva2U9ImhzbCgzMzIsIDEwMCUsIDUwJSkiIGQ9Ik0xMzAuOTQgMjAxLjM3NmE2Ni41IDY2LjUgMCAwMDEuNzQuMDgzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzMzLCAxMDAlLCA1MCUpIiBkPSJNMTI5Ljc4MiAyMDEuMjk1YTY2LjUgNjYuNSAwIDAwMS43MzguMTE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM0LCAxMDAlLCA1MCUpIiBkPSJNMTI4LjYyNiAyMDEuMTk0YTY2LjUgNjYuNSAwIDAwMS43MzUuMTQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM1LCAxMDAlLCA1MCUpIiBkPSJNMTI3LjQ3MiAyMDEuMDczYTY2LjUgNjYuNSAwIDAwMS43MzIuMTc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM2LCAxMDAlLCA1MCUpIiBkPSJNMTI2LjMyIDIwMC45MzFhNjYuNSA2Ni41IDAgMDAxLjcyOS4yMDUiLz48cGF0aCBzdHJva2U9ImhzbCgzMzcsIDEwMCUsIDUwJSkiIGQ9Ik0xMjUuMTcgMjAwLjc3YTY2LjUgNjYuNSAwIDAwMS43MjYuMjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM4LCAxMDAlLCA1MCUpIiBkPSJNMTI0LjAyNCAyMDAuNTg4YTY2LjUgNjYuNSAwIDAwMS43MjEuMjY1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM5LCAxMDAlLCA1MCUpIiBkPSJNMTIyLjg4MSAyMDAuMzg2YTY2LjUgNjYuNSAwIDAwMS43MTYuMjk1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQwLCAxMDAlLCA1MCUpIiBkPSJNMTIxLjc0MiAyMDAuMTY1YTY2LjUgNjYuNSAwIDAwMS43MS4zMjUiLz48cGF0aCBzdHJva2U9ImhzbCgzNDEsIDEwMCUsIDUwJSkiIGQ9Ik0xMjAuNjA3IDE5OS45MjRhNjYuNSA2Ni41IDAgMDAxLjcwNC4zNTQiLz48cGF0aCBzdHJva2U9ImhzbCgzNDIsIDEwMCUsIDUwJSkiIGQ9Ik0xMTkuNDc2IDE5OS42NjNhNjYuNSA2Ni41IDAgMDAxLjY5OC4zODQiLz48cGF0aCBzdHJva2U9ImhzbCgzNDMsIDEwMCUsIDUwJSkiIGQ9Ik0xMTguMzUgMTk5LjM4MmE2Ni41IDY2LjUgMCAwMDEuNjkuNDE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQ0LCAxMDAlLCA1MCUpIiBkPSJNMTE3LjIyOSAxOTkuMDgxYTY2LjUgNjYuNSAwIDAwMS42ODMuNDQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQ1LCAxMDAlLCA1MCUpIiBkPSJNMTE2LjExMyAxOTguNzYyYTY2LjUgNjYuNSAwIDAwMS42NzYuNDcyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ2LCAxMDAlLCA1MCUpIiBkPSJNMTE1LjAwMyAxOTguNDIyYTY2LjUgNjYuNSAwIDAwMS42NjcuNTAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ3LCAxMDAlLCA1MCUpIiBkPSJNMTEzLjkgMTk4LjA2NGE2Ni41IDY2LjUgMCAwMDEuNjU3LjUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ4LCAxMDAlLCA1MCUpIiBkPSJNMTEyLjgwMiAxOTcuNjg2YTY2LjUgNjYuNSAwIDAwMS42NDguNTYiLz48cGF0aCBzdHJva2U9ImhzbCgzNDksIDEwMCUsIDUwJSkiIGQ9Ik0xMTEuNzExIDE5Ny4yODlhNjYuNSA2Ni41IDAgMDAxLjYzOS41ODgiLz48cGF0aCBzdHJva2U9ImhzbCgzNTAsIDEwMCUsIDUwJSkiIGQ9Ik0xMTAuNjI4IDE5Ni44NzNhNjYuNSA2Ni41IDAgMDAxLjYyOC42MTciLz48cGF0aCBzdHJva2U9ImhzbCgzNTEsIDEwMCUsIDUwJSkiIGQ9Ik0xMDkuNTUyIDE5Ni40MzhhNjYuNSA2Ni41IDAgMDAxLjYxNy42NDUiLz48cGF0aCBzdHJva2U9ImhzbCgzNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xMDguNDgzIDE5NS45ODRhNjYuNSA2Ni41IDAgMDAxLjYwNi42NzQiLz48cGF0aCBzdHJva2U9ImhzbCgzNTMsIDEwMCUsIDUwJSkiIGQ9Ik0xMDcuNDIzIDE5NS41MTJhNjYuNSA2Ni41IDAgMDAxLjU5My43MDIiLz48cGF0aCBzdHJva2U9ImhzbCgzNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xMDYuMzcxIDE5NS4wMjJhNjYuNSA2Ni41IDAgMDAxLjU4MS43MjkiLz48cGF0aCBzdHJva2U9ImhzbCgzNTUsIDEwMCUsIDUwJSkiIGQ9Ik0xMDUuMzI4IDE5NC41MTNhNjYuNSA2Ni41IDAgMDAxLjU2OC43NTYiLz48cGF0aCBzdHJva2U9ImhzbCgzNTYsIDEwMCUsIDUwJSkiIGQ9Ik0xMDQuMjk0IDE5My45ODZhNjYuNSA2Ni41IDAgMDAxLjU1NC43ODQiLz48cGF0aCBzdHJva2U9ImhzbCgzNTcsIDEwMCUsIDUwJSkiIGQ9Ik0xMDMuMjY5IDE5My40NDFhNjYuNSA2Ni41IDAgMDAxLjU0LjgxIi8+PHBhdGggc3Ryb2tlPSJoc2woMzU4LCAxMDAlLCA1MCUpIiBkPSJNMTAyLjI1NCAxOTIuODc5YTY2LjUgNjYuNSAwIDAwMS41MjYuODM3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzU5LCAxMDAlLCA1MCUpIiBkPSJNMTAxLjI0OSAxOTIuMjk4YTY2LjUgNjYuNSAwIDAwMS41MTEuODY0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMCwgMTAwJSwgNTAlKSIgZD0iTTEwMC4yNTQgMTkxLjdhNjYuNSA2Ni41IDAgMDAxLjQ5Ni44OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEsIDEwMCUsIDUwJSkiIGQ9Ik05OS4yNyAxOTEuMDg2YTY2LjUgNjYuNSAwIDAwMS40OC45MTYiLz48cGF0aCBzdHJva2U9ImhzbCgyLCAxMDAlLCA1MCUpIiBkPSJNOTguMjk2IDE5MC40NTNhNjYuNSA2Ni41IDAgMDAxLjQ2NC45NDIiLz48cGF0aCBzdHJva2U9ImhzbCgzLCAxMDAlLCA1MCUpIiBkPSJNOTcuMzM0IDE4OS44MDRhNjYuNSA2Ni41IDAgMDAxLjQ0OC45NjgiLz48cGF0aCBzdHJva2U9ImhzbCg0LCAxMDAlLCA1MCUpIiBkPSJNOTYuMzgzIDE4OS4xMzlhNjYuNSA2Ni41IDAgMDAxLjQzLjk5MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDUsIDEwMCUsIDUwJSkiIGQ9Ik05NS40NDQgMTg4LjQ1NmE2Ni41IDY2LjUgMCAwMDEuNDEzIDEuMDE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woNiwgMTAwJSwgNTAlKSIgZD0iTTk0LjUxNyAxODcuNzU4YTY2LjUgNjYuNSAwIDAwMS4zOTUgMS4wNDIiLz48cGF0aCBzdHJva2U9ImhzbCg3LCAxMDAlLCA1MCUpIiBkPSJNOTMuNjAzIDE4Ny4wNDNhNjYuNSA2Ni41IDAgMDAxLjM3NiAxLjA2NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDgsIDEwMCUsIDUwJSkiIGQ9Ik05Mi43IDE4Ni4zMTNhNjYuNSA2Ni41IDAgMDAxLjM1OSAxLjA5Ii8+PHBhdGggc3Ryb2tlPSJoc2woOSwgMTAwJSwgNTAlKSIgZD0iTTkxLjgxMiAxODUuNTY3YTY2LjUgNjYuNSAwIDAwMS4zMzggMS4xMTMiLz48cGF0aCBzdHJva2U9ImhzbCgxMCwgMTAwJSwgNTAlKSIgZD0iTTkwLjkzNiAxODQuODA2YTY2LjUgNjYuNSAwIDAwMS4zMTkgMS4xMzYiLz48cGF0aCBzdHJva2U9ImhzbCgxMSwgMTAwJSwgNTAlKSIgZD0iTTkwLjA3MyAxODQuMDI5YTY2LjUgNjYuNSAwIDAwMS4zIDEuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxMiwgMTAwJSwgNTAlKSIgZD0iTTg5LjIyNCAxODMuMjM3YTY2LjUgNjYuNSAwIDAwMS4yNzkgMS4xODIiLz48cGF0aCBzdHJva2U9ImhzbCgxMywgMTAwJSwgNTAlKSIgZD0iTTg4LjM5IDE4Mi40MzFhNjYuNSA2Ni41IDAgMDAxLjI1NyAxLjIwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE0LCAxMDAlLCA1MCUpIiBkPSJNODcuNTY5IDE4MS42MWE2Ni41IDY2LjUgMCAwMDEuMjM2IDEuMjI2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTUsIDEwMCUsIDUwJSkiIGQ9Ik04Ni43NjMgMTgwLjc3NmE2Ni41IDY2LjUgMCAwMDEuMjE0IDEuMjQ3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTYsIDEwMCUsIDUwJSkiIGQ9Ik04NS45NzEgMTc5LjkyN2E2Ni41IDY2LjUgMCAwMDEuMTkzIDEuMjY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTcsIDEwMCUsIDUwJSkiIGQ9Ik04NS4xOTQgMTc5LjA2NGE2Ni41IDY2LjUgMCAwMDEuMTcxIDEuMjg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTgsIDEwMCUsIDUwJSkiIGQ9Ik04NC40MzMgMTc4LjE4OGE2Ni41IDY2LjUgMCAwMDEuMTQ4IDEuMzEiLz48cGF0aCBzdHJva2U9ImhzbCgxOSwgMTAwJSwgNTAlKSIgZD0iTTgzLjY4NyAxNzcuM2E2Ni41IDY2LjUgMCAwMDEuMTI1IDEuMzI4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjAsIDEwMCUsIDUwJSkiIGQ9Ik04Mi45NTcgMTc2LjM5N2E2Ni41IDY2LjUgMCAwMDEuMTAxIDEuMzQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjEsIDEwMCUsIDUwJSkiIGQ9Ik04Mi4yNDIgMTc1LjQ4M2E2Ni41IDY2LjUgMCAwMDEuMDc4IDEuMzY3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjIsIDEwMCUsIDUwJSkiIGQ9Ik04MS41NDQgMTc0LjU1NmE2Ni41IDY2LjUgMCAwMDEuMDUzIDEuMzg1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjMsIDEwMCUsIDUwJSkiIGQ9Ik04MC44NjEgMTczLjYxN2E2Ni41IDY2LjUgMCAwMDEuMDMgMS40MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyNCwgMTAwJSwgNTAlKSIgZD0iTTgwLjE5NiAxNzIuNjY2YTY2LjUgNjYuNSAwIDAwMS4wMDQgMS40MjIiLz48cGF0aCBzdHJva2U9ImhzbCgyNSwgMTAwJSwgNTAlKSIgZD0iTTc5LjU0NyAxNzEuNzA0YTY2LjUgNjYuNSAwIDAwLjk4IDEuNDM5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjYsIDEwMCUsIDUwJSkiIGQ9Ik03OC45MTQgMTcwLjczYTY2LjUgNjYuNSAwIDAwLjk1NSAxLjQ1NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3LCAxMDAlLCA1MCUpIiBkPSJNNzguMyAxNjkuNzQ2YTY2LjUgNjYuNSAwIDAwLjkyOCAxLjQ3MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4LCAxMDAlLCA1MCUpIiBkPSJNNzcuNzAyIDE2OC43NTFhNjYuNSA2Ni41IDAgMDAuOTAzIDEuNDg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjksIDEwMCUsIDUwJSkiIGQ9Ik03Ny4xMjEgMTY3Ljc0NmE2Ni41IDY2LjUgMCAwMC44NzcgMS41MDQiLz48cGF0aCBzdHJva2U9ImhzbCgzMCwgMTAwJSwgNTAlKSIgZD0iTTc2LjU1OSAxNjYuNzMxYTY2LjUgNjYuNSAwIDAwLjg1IDEuNTE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzEsIDEwMCUsIDUwJSkiIGQ9Ik03Ni4wMTQgMTY1LjcwNmE2Ni41IDY2LjUgMCAwMC44MjQgMS41MzQiLz48cGF0aCBzdHJva2U9ImhzbCgzMiwgMTAwJSwgNTAlKSIgZD0iTTc1LjQ4NyAxNjQuNjcyYTY2LjUgNjYuNSAwIDAwLjc5NyAxLjU0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMzLCAxMDAlLCA1MCUpIiBkPSJNNzQuOTc4IDE2My42MjlhNjYuNSA2Ni41IDAgMDAuNzcgMS41NjEiLz48cGF0aCBzdHJva2U9ImhzbCgzNCwgMTAwJSwgNTAlKSIgZD0iTTc0LjQ4OCAxNjIuNTc3YTY2LjUgNjYuNSAwIDAwLjc0MiAxLjU3NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDM1LCAxMDAlLCA1MCUpIiBkPSJNNzQuMDE2IDE2MS41MTdhNjYuNSA2Ni41IDAgMDAuNzE1IDEuNTg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzYsIDEwMCUsIDUwJSkiIGQ9Ik03My41NjIgMTYwLjQ0OGE2Ni41IDY2LjUgMCAwMC42ODcgMS42Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzcsIDEwMCUsIDUwJSkiIGQ9Ik03My4xMjcgMTU5LjM3MmE2Ni41IDY2LjUgMCAwMC42NiAxLjYxMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDM4LCAxMDAlLCA1MCUpIiBkPSJNNzIuNzExIDE1OC4yODlhNjYuNSA2Ni41IDAgMDAuNjMxIDEuNjIyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzksIDEwMCUsIDUwJSkiIGQ9Ik03Mi4zMTQgMTU3LjE5OGE2Ni41IDY2LjUgMCAwMC42MDMgMS42MzMiLz48cGF0aCBzdHJva2U9ImhzbCg0MCwgMTAwJSwgNTAlKSIgZD0iTTcxLjkzNiAxNTYuMWE2Ni41IDY2LjUgMCAwMC41NzQgMS42NDQiLz48cGF0aCBzdHJva2U9ImhzbCg0MSwgMTAwJSwgNTAlKSIgZD0iTTcxLjU3OCAxNTQuOTk3YTY2LjUgNjYuNSAwIDAwLjU0NSAxLjY1MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDQyLCAxMDAlLCA1MCUpIiBkPSJNNzEuMjM4IDE1My44ODdhNjYuNSA2Ni41IDAgMDAuNTE3IDEuNjYzIi8+PHBhdGggc3Ryb2tlPSJoc2woNDMsIDEwMCUsIDUwJSkiIGQ9Ik03MC45MTkgMTUyLjc3MWE2Ni41IDY2LjUgMCAwMC40ODcgMS42NzIiLz48cGF0aCBzdHJva2U9ImhzbCg0NCwgMTAwJSwgNTAlKSIgZD0iTTcwLjYxOCAxNTEuNjVhNjYuNSA2Ni41IDAgMDAuNDU4IDEuNjgiLz48cGF0aCBzdHJva2U9ImhzbCg0NSwgMTAwJSwgNTAlKSIgZD0iTTcwLjMzNyAxNTAuNTI0YTY2LjUgNjYuNSAwIDAwLjQyOSAxLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDQ2LCAxMDAlLCA1MCUpIiBkPSJNNzAuMDc2IDE0OS4zOTNhNjYuNSA2Ni41IDAgMDAuNCAxLjY5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDQ3LCAxMDAlLCA1MCUpIiBkPSJNNjkuODM1IDE0OC4yNThhNjYuNSA2Ni41IDAgMDAuMzcgMS43MDEiLz48cGF0aCBzdHJva2U9ImhzbCg0OCwgMTAwJSwgNTAlKSIgZD0iTTY5LjYxNCAxNDcuMTE5YTY2LjUgNjYuNSAwIDAwLjM0IDEuNzA3Ii8+PHBhdGggc3Ryb2tlPSJoc2woNDksIDEwMCUsIDUwJSkiIGQ9Ik02OS40MTIgMTQ1Ljk3NmE2Ni41IDY2LjUgMCAwMC4zMSAxLjcxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDUwLCAxMDAlLCA1MCUpIiBkPSJNNjkuMjMgMTQ0LjgzYTY2LjUgNjYuNSAwIDAwLjI4IDEuNzE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woNTEsIDEwMCUsIDUwJSkiIGQ9Ik02OS4wNjkgMTQzLjY4YTY2LjUgNjYuNSAwIDAwLjI1IDEuNzIzIi8+PHBhdGggc3Ryb2tlPSJoc2woNTIsIDEwMCUsIDUwJSkiIGQ9Ik02OC45MjcgMTQyLjUyOGE2Ni41IDY2LjUgMCAwMC4yMiAxLjcyNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDUzLCAxMDAlLCA1MCUpIiBkPSJNNjguODA2IDE0MS4zNzRhNjYuNSA2Ni41IDAgMDAuMTkgMS43MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDU0LCAxMDAlLCA1MCUpIiBkPSJNNjguNzA1IDE0MC4yMThhNjYuNSA2Ni41IDAgMDAuMTYgMS43MzMiLz48cGF0aCBzdHJva2U9ImhzbCg1NSwgMTAwJSwgNTAlKSIgZD0iTTY4LjYyNCAxMzkuMDZhNjYuNSA2Ni41IDAgMDAuMTMgMS43MzYiLz48cGF0aCBzdHJva2U9ImhzbCg1NiwgMTAwJSwgNTAlKSIgZD0iTTY4LjU2MyAxMzcuOWE2Ni41IDY2LjUgMCAwMC4wOTkgMS43MzkiLz48cGF0aCBzdHJva2U9ImhzbCg1NywgMTAwJSwgNTAlKSIgZD0iTTY4LjUyMyAxMzYuNzRhNjYuNSA2Ni41IDAgMDAuMDY4IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg1OCwgMTAwJSwgNTAlKSIgZD0iTTY4LjUwMyAxMzUuNThhNjYuNSA2Ni41IDAgMDAuMDM4IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg1OSwgMTAwJSwgNTAlKSIgZD0iTTY4LjUwMyAxMzQuNDJhNjYuNSA2Ni41IDAgMDAuMDA3IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg2MCwgMTAwJSwgNTAlKSIgZD0iTTY4LjUyMyAxMzMuMjZBNjYuNSA2Ni41IDAgMDA2OC41IDEzNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDYxLCAxMDAlLCA1MCUpIiBkPSJNNjguNTYzIDEzMi4xYTY2LjUgNjYuNSAwIDAwLS4wNTMgMS43NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDYyLCAxMDAlLCA1MCUpIiBkPSJNNjguNjI0IDEzMC45NGE2Ni41IDY2LjUgMCAwMC0uMDgzIDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg2MywgMTAwJSwgNTAlKSIgZD0iTTY4LjcwNSAxMjkuNzgyYTY2LjUgNjYuNSAwIDAwLS4xMTQgMS43MzgiLz48cGF0aCBzdHJva2U9ImhzbCg2NCwgMTAwJSwgNTAlKSIgZD0iTTY4LjgwNiAxMjguNjI2YTY2LjUgNjYuNSAwIDAwLS4xNDQgMS43MzUiLz48cGF0aCBzdHJva2U9ImhzbCg2NSwgMTAwJSwgNTAlKSIgZD0iTTY4LjkyNyAxMjcuNDcyYTY2LjUgNjYuNSAwIDAwLS4xNzQgMS43MzIiLz48cGF0aCBzdHJva2U9ImhzbCg2NiwgMTAwJSwgNTAlKSIgZD0iTTY5LjA2OSAxMjYuMzJhNjYuNSA2Ni41IDAgMDAtLjIwNSAxLjcyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDY3LCAxMDAlLCA1MCUpIiBkPSJNNjkuMjMgMTI1LjE3YTY2LjUgNjYuNSAwIDAwLS4yMzQgMS43MjYiLz48cGF0aCBzdHJva2U9ImhzbCg2OCwgMTAwJSwgNTAlKSIgZD0iTTY5LjQxMiAxMjQuMDI0YTY2LjUgNjYuNSAwIDAwLS4yNjUgMS43MjEiLz48cGF0aCBzdHJva2U9ImhzbCg2OSwgMTAwJSwgNTAlKSIgZD0iTTY5LjYxNCAxMjIuODgxYTY2LjUgNjYuNSAwIDAwLS4yOTUgMS43MTYiLz48cGF0aCBzdHJva2U9ImhzbCg3MCwgMTAwJSwgNTAlKSIgZD0iTTY5LjgzNSAxMjEuNzQyYTY2LjUgNjYuNSAwIDAwLS4zMjUgMS43MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDcxLCAxMDAlLCA1MCUpIiBkPSJNNzAuMDc2IDEyMC42MDdhNjYuNSA2Ni41IDAgMDAtLjM1NCAxLjcwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDcyLCAxMDAlLCA1MCUpIiBkPSJNNzAuMzM3IDExOS40NzZhNjYuNSA2Ni41IDAgMDAtLjM4NCAxLjY5OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDczLCAxMDAlLCA1MCUpIiBkPSJNNzAuNjE4IDExOC4zNWE2Ni41IDY2LjUgMCAwMC0uNDE0IDEuNjkiLz48cGF0aCBzdHJva2U9ImhzbCg3NCwgMTAwJSwgNTAlKSIgZD0iTTcwLjkxOSAxMTcuMjI5YTY2LjUgNjYuNSAwIDAwLS40NDQgMS42ODMiLz48cGF0aCBzdHJva2U9ImhzbCg3NSwgMTAwJSwgNTAlKSIgZD0iTTcxLjIzOCAxMTYuMTEzYTY2LjUgNjYuNSAwIDAwLS40NzIgMS42NzYiLz48cGF0aCBzdHJva2U9ImhzbCg3NiwgMTAwJSwgNTAlKSIgZD0iTTcxLjU3OCAxMTUuMDAzYTY2LjUgNjYuNSAwIDAwLS41MDIgMS42NjciLz48cGF0aCBzdHJva2U9ImhzbCg3NywgMTAwJSwgNTAlKSIgZD0iTTcxLjkzNiAxMTMuOWE2Ni41IDY2LjUgMCAwMC0uNTMgMS42NTciLz48cGF0aCBzdHJva2U9ImhzbCg3OCwgMTAwJSwgNTAlKSIgZD0iTTcyLjMxNCAxMTIuODAyYTY2LjUgNjYuNSAwIDAwLS41NiAxLjY0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDc5LCAxMDAlLCA1MCUpIiBkPSJNNzIuNzExIDExMS43MTFhNjYuNSA2Ni41IDAgMDAtLjU4OCAxLjYzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDgwLCAxMDAlLCA1MCUpIiBkPSJNNzMuMTI3IDExMC42MjhhNjYuNSA2Ni41IDAgMDAtLjYxNyAxLjYyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDgxLCAxMDAlLCA1MCUpIiBkPSJNNzMuNTYyIDEwOS41NTJhNjYuNSA2Ni41IDAgMDAtLjY0NSAxLjYxNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDgyLCAxMDAlLCA1MCUpIiBkPSJNNzQuMDE2IDEwOC40ODNhNjYuNSA2Ni41IDAgMDAtLjY3NCAxLjYwNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDgzLCAxMDAlLCA1MCUpIiBkPSJNNzQuNDg4IDEwNy40MjNhNjYuNSA2Ni41IDAgMDAtLjcwMiAxLjU5MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDg0LCAxMDAlLCA1MCUpIiBkPSJNNzQuOTc4IDEwNi4zNzFhNjYuNSA2Ni41IDAgMDAtLjcyOSAxLjU4MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDg1LCAxMDAlLCA1MCUpIiBkPSJNNzUuNDg3IDEwNS4zMjhhNjYuNSA2Ni41IDAgMDAtLjc1NiAxLjU2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDg2LCAxMDAlLCA1MCUpIiBkPSJNNzYuMDE0IDEwNC4yOTRhNjYuNSA2Ni41IDAgMDAtLjc4NCAxLjU1NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDg3LCAxMDAlLCA1MCUpIiBkPSJNNzYuNTU5IDEwMy4yNjlhNjYuNSA2Ni41IDAgMDAtLjgxIDEuNTQiLz48cGF0aCBzdHJva2U9ImhzbCg4OCwgMTAwJSwgNTAlKSIgZD0iTTc3LjEyMSAxMDIuMjU0YTY2LjUgNjYuNSAwIDAwLS44MzcgMS41MjYiLz48cGF0aCBzdHJva2U9ImhzbCg4OSwgMTAwJSwgNTAlKSIgZD0iTTc3LjcwMiAxMDEuMjQ5YTY2LjUgNjYuNSAwIDAwLS44NjQgMS41MTEiLz48cGF0aCBzdHJva2U9ImhzbCg5MCwgMTAwJSwgNTAlKSIgZD0iTTc4LjMgMTAwLjI1NGE2Ni41IDY2LjUgMCAwMC0uODkgMS40OTYiLz48cGF0aCBzdHJva2U9ImhzbCg5MSwgMTAwJSwgNTAlKSIgZD0iTTc4LjkxNCA5OS4yN2E2Ni41IDY2LjUgMCAwMC0uOTE2IDEuNDgiLz48cGF0aCBzdHJva2U9ImhzbCg5MiwgMTAwJSwgNTAlKSIgZD0iTTc5LjU0NyA5OC4yOTZhNjYuNSA2Ni41IDAgMDAtLjk0MiAxLjQ2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDkzLCAxMDAlLCA1MCUpIiBkPSJNODAuMTk2IDk3LjMzNGE2Ni41IDY2LjUgMCAwMC0uOTY4IDEuNDQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woOTQsIDEwMCUsIDUwJSkiIGQ9Ik04MC44NjEgOTYuMzgzYTY2LjUgNjYuNSAwIDAwLS45OTIgMS40MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDk1LCAxMDAlLCA1MCUpIiBkPSJNODEuNTQ0IDk1LjQ0NGE2Ni41IDY2LjUgMCAwMC0xLjAxOCAxLjQxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDk2LCAxMDAlLCA1MCUpIiBkPSJNODIuMjQyIDk0LjUxN2E2Ni41IDY2LjUgMCAwMC0xLjA0MiAxLjM5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDk3LCAxMDAlLCA1MCUpIiBkPSJNODIuOTU3IDkzLjYwM2E2Ni41IDY2LjUgMCAwMC0xLjA2NiAxLjM3NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDk4LCAxMDAlLCA1MCUpIiBkPSJNODMuNjg3IDkyLjdhNjYuNSA2Ni41IDAgMDAtMS4wOSAxLjM1OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDk5LCAxMDAlLCA1MCUpIiBkPSJNODQuNDMzIDkxLjgxMmE2Ni41IDY2LjUgMCAwMC0xLjExMyAxLjMzOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwMCwgMTAwJSwgNTAlKSIgZD0iTTg1LjE5NCA5MC45MzZhNjYuNSA2Ni41IDAgMDAtMS4xMzYgMS4zMTkiLz48cGF0aCBzdHJva2U9ImhzbCgxMDEsIDEwMCUsIDUwJSkiIGQ9Ik04NS45NzEgOTAuMDczYTY2LjUgNjYuNSAwIDAwLTEuMTYgMS4zIi8+PHBhdGggc3Ryb2tlPSJoc2woMTAyLCAxMDAlLCA1MCUpIiBkPSJNODYuNzYzIDg5LjIyNGE2Ni41IDY2LjUgMCAwMC0xLjE4MiAxLjI3OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwMywgMTAwJSwgNTAlKSIgZD0iTTg3LjU2OSA4OC4zOWE2Ni41IDY2LjUgMCAwMC0xLjIwNCAxLjI1NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwNCwgMTAwJSwgNTAlKSIgZD0iTTg4LjM5IDg3LjU2OWE2Ni41IDY2LjUgMCAwMC0xLjIyNiAxLjIzNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwNSwgMTAwJSwgNTAlKSIgZD0iTTg5LjIyNCA4Ni43NjNhNjYuNSA2Ni41IDAgMDAtMS4yNDcgMS4yMTQiLz48cGF0aCBzdHJva2U9ImhzbCgxMDYsIDEwMCUsIDUwJSkiIGQ9Ik05MC4wNzMgODUuOTcxYTY2LjUgNjYuNSAwIDAwLTEuMjY4IDEuMTkzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTA3LCAxMDAlLCA1MCUpIiBkPSJNOTAuOTM2IDg1LjE5NGE2Ni41IDY2LjUgMCAwMC0xLjI4OSAxLjE3MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwOCwgMTAwJSwgNTAlKSIgZD0iTTkxLjgxMiA4NC40MzNhNjYuNSA2Ni41IDAgMDAtMS4zMSAxLjE0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwOSwgMTAwJSwgNTAlKSIgZD0iTTkyLjcgODMuNjg3YTY2LjUgNjYuNSAwIDAwLTEuMzI4IDEuMTI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTEwLCAxMDAlLCA1MCUpIiBkPSJNOTMuNjAzIDgyLjk1N2E2Ni41IDY2LjUgMCAwMC0xLjM0OCAxLjEwMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDExMSwgMTAwJSwgNTAlKSIgZD0iTTk0LjUxNyA4Mi4yNDJhNjYuNSA2Ni41IDAgMDAtMS4zNjcgMS4wNzgiLz48cGF0aCBzdHJva2U9ImhzbCgxMTIsIDEwMCUsIDUwJSkiIGQ9Ik05NS40NDQgODEuNTQ0YTY2LjUgNjYuNSAwIDAwLTEuMzg1IDEuMDUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTEzLCAxMDAlLCA1MCUpIiBkPSJNOTYuMzgzIDgwLjg2MWE2Ni41IDY2LjUgMCAwMC0xLjQwNCAxLjAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTE0LCAxMDAlLCA1MCUpIiBkPSJNOTcuMzM0IDgwLjE5NmE2Ni41IDY2LjUgMCAwMC0xLjQyMiAxLjAwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDExNSwgMTAwJSwgNTAlKSIgZD0iTTk4LjI5NiA3OS41NDdhNjYuNSA2Ni41IDAgMDAtMS40MzkuOTgiLz48cGF0aCBzdHJva2U9ImhzbCgxMTYsIDEwMCUsIDUwJSkiIGQ9Ik05OS4yNyA3OC45MTRhNjYuNSA2Ni41IDAgMDAtMS40NTYuOTU1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTE3LCAxMDAlLCA1MCUpIiBkPSJNMTAwLjI1NCA3OC4zYTY2LjUgNjYuNSAwIDAwLTEuNDcyLjkyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDExOCwgMTAwJSwgNTAlKSIgZD0iTTEwMS4yNDkgNzcuNzAyYTY2LjUgNjYuNSAwIDAwLTEuNDg5LjkwMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDExOSwgMTAwJSwgNTAlKSIgZD0iTTEwMi4yNTQgNzcuMTIxYTY2LjUgNjYuNSAwIDAwLTEuNTA0Ljg3NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEyMCwgMTAwJSwgNTAlKSIgZD0iTTEwMy4yNjkgNzYuNTU5YTY2LjUgNjYuNSAwIDAwLTEuNTE5Ljg1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIxLCAxMDAlLCA1MCUpIiBkPSJNMTA0LjI5NCA3Ni4wMTRhNjYuNSA2Ni41IDAgMDAtMS41MzQuODI0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIyLCAxMDAlLCA1MCUpIiBkPSJNMTA1LjMyOCA3NS40ODdhNjYuNSA2Ni41IDAgMDAtMS41NDguNzk3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIzLCAxMDAlLCA1MCUpIiBkPSJNMTA2LjM3MSA3NC45NzhhNjYuNSA2Ni41IDAgMDAtMS41NjEuNzciLz48cGF0aCBzdHJva2U9ImhzbCgxMjQsIDEwMCUsIDUwJSkiIGQ9Ik0xMDcuNDIzIDc0LjQ4OGE2Ni41IDY2LjUgMCAwMC0xLjU3NS43NDIiLz48cGF0aCBzdHJva2U9ImhzbCgxMjUsIDEwMCUsIDUwJSkiIGQ9Ik0xMDguNDgzIDc0LjAxNmE2Ni41IDY2LjUgMCAwMC0xLjU4Ny43MTUiLz48cGF0aCBzdHJva2U9ImhzbCgxMjYsIDEwMCUsIDUwJSkiIGQ9Ik0xMDkuNTUyIDczLjU2MmE2Ni41IDY2LjUgMCAwMC0xLjYuNjg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTI3LCAxMDAlLCA1MCUpIiBkPSJNMTEwLjYyOCA3My4xMjdhNjYuNSA2Ni41IDAgMDAtMS42MTIuNjYiLz48cGF0aCBzdHJva2U9ImhzbCgxMjgsIDEwMCUsIDUwJSkiIGQ9Ik0xMTEuNzExIDcyLjcxMWE2Ni41IDY2LjUgMCAwMC0xLjYyMi42MzEiLz48cGF0aCBzdHJva2U9ImhzbCgxMjksIDEwMCUsIDUwJSkiIGQ9Ik0xMTIuODAyIDcyLjMxNGE2Ni41IDY2LjUgMCAwMC0xLjYzMy42MDMiLz48cGF0aCBzdHJva2U9ImhzbCgxMzAsIDEwMCUsIDUwJSkiIGQ9Ik0xMTMuOSA3MS45MzZhNjYuNSA2Ni41IDAgMDAtMS42NDQuNTc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMxLCAxMDAlLCA1MCUpIiBkPSJNMTE1LjAwMyA3MS41NzhhNjYuNSA2Ni41IDAgMDAtMS42NTMuNTQ1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMyLCAxMDAlLCA1MCUpIiBkPSJNMTE2LjExMyA3MS4yMzhhNjYuNSA2Ni41IDAgMDAtMS42NjMuNTE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMzLCAxMDAlLCA1MCUpIiBkPSJNMTE3LjIyOSA3MC45MTlhNjYuNSA2Ni41IDAgMDAtMS42NzIuNDg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTM0LCAxMDAlLCA1MCUpIiBkPSJNMTE4LjM1IDcwLjYxOGE2Ni41IDY2LjUgMCAwMC0xLjY4LjQ1OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzNSwgMTAwJSwgNTAlKSIgZD0iTTExOS40NzYgNzAuMzM3YTY2LjUgNjYuNSAwIDAwLTEuNjg3LjQyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzNiwgMTAwJSwgNTAlKSIgZD0iTTEyMC42MDcgNzAuMDc2YTY2LjUgNjYuNSAwIDAwLTEuNjk1LjQiLz48cGF0aCBzdHJva2U9ImhzbCgxMzcsIDEwMCUsIDUwJSkiIGQ9Ik0xMjEuNzQyIDY5LjgzNWE2Ni41IDY2LjUgMCAwMC0xLjcwMS4zNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzOCwgMTAwJSwgNTAlKSIgZD0iTTEyMi44ODEgNjkuNjE0YTY2LjUgNjYuNSAwIDAwLTEuNzA3LjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTM5LCAxMDAlLCA1MCUpIiBkPSJNMTI0LjAyNCA2OS40MTJhNjYuNSA2Ni41IDAgMDAtMS43MTMuMzEiLz48cGF0aCBzdHJva2U9ImhzbCgxNDAsIDEwMCUsIDUwJSkiIGQ9Ik0xMjUuMTcgNjkuMjNhNjYuNSA2Ni41IDAgMDAtMS43MTguMjgiLz48cGF0aCBzdHJva2U9ImhzbCgxNDEsIDEwMCUsIDUwJSkiIGQ9Ik0xMjYuMzIgNjkuMDY5YTY2LjUgNjYuNSAwIDAwLTEuNzIzLjI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQyLCAxMDAlLCA1MCUpIiBkPSJNMTI3LjQ3MiA2OC45MjdhNjYuNSA2Ni41IDAgMDAtMS43MjcuMjIiLz48cGF0aCBzdHJva2U9ImhzbCgxNDMsIDEwMCUsIDUwJSkiIGQ9Ik0xMjguNjI2IDY4LjgwNmE2Ni41IDY2LjUgMCAwMC0xLjczLjE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQ0LCAxMDAlLCA1MCUpIiBkPSJNMTI5Ljc4MiA2OC43MDVhNjYuNSA2Ni41IDAgMDAtMS43MzMuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxNDUsIDEwMCUsIDUwJSkiIGQ9Ik0xMzAuOTQgNjguNjI0YTY2LjUgNjYuNSAwIDAwLTEuNzM2LjEzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTQ2LCAxMDAlLCA1MCUpIiBkPSJNMTMyLjEgNjguNTYzYTY2LjUgNjYuNSAwIDAwLTEuNzM5LjA5OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE0NywgMTAwJSwgNTAlKSIgZD0iTTEzMy4yNiA2OC41MjNhNjYuNSA2Ni41IDAgMDAtMS43NC4wNjgiLz48cGF0aCBzdHJva2U9ImhzbCgxNDgsIDEwMCUsIDUwJSkiIGQ9Ik0xMzQuNDIgNjguNTAzYTY2LjUgNjYuNSAwIDAwLTEuNzQuMDM4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQ5LCAxMDAlLCA1MCUpIiBkPSJNMTM1LjU4IDY4LjUwM2E2Ni41IDY2LjUgMCAwMC0xLjc0LjAwNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MCwgMTAwJSwgNTAlKSIgZD0iTTEzNi43NCA2OC41MjNBNjYuNSA2Ni41IDAgMDAxMzUgNjguNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MSwgMTAwJSwgNTAlKSIgZD0iTTEzNy45IDY4LjU2M2E2Ni41IDY2LjUgMCAwMC0xLjc0LS4wNTMiLz48cGF0aCBzdHJva2U9ImhzbCgxNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xMzkuMDYgNjguNjI0YTY2LjUgNjYuNSAwIDAwLTEuNzQtLjA4MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MywgMTAwJSwgNTAlKSIgZD0iTTE0MC4yMTggNjguNzA1YTY2LjUgNjYuNSAwIDAwLTEuNzM4LS4xMTQiLz48cGF0aCBzdHJva2U9ImhzbCgxNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xNDEuMzc0IDY4LjgwNmE2Ni41IDY2LjUgMCAwMC0xLjczNS0uMTQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTU1LCAxMDAlLCA1MCUpIiBkPSJNMTQyLjUyOCA2OC45MjdhNjYuNSA2Ni41IDAgMDAtMS43MzItLjE3NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1NiwgMTAwJSwgNTAlKSIgZD0iTTE0My42OCA2OS4wNjlhNjYuNSA2Ni41IDAgMDAtMS43MjktLjIwNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1NywgMTAwJSwgNTAlKSIgZD0iTTE0NC44MyA2OS4yM2E2Ni41IDY2LjUgMCAwMC0xLjcyNi0uMjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTU4LCAxMDAlLCA1MCUpIiBkPSJNMTQ1Ljk3NiA2OS40MTJhNjYuNSA2Ni41IDAgMDAtMS43MjEtLjI2NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1OSwgMTAwJSwgNTAlKSIgZD0iTTE0Ny4xMTkgNjkuNjE0YTY2LjUgNjYuNSAwIDAwLTEuNzE2LS4yOTUiLz48cGF0aCBzdHJva2U9ImhzbCgxNjAsIDEwMCUsIDUwJSkiIGQ9Ik0xNDguMjU4IDY5LjgzNWE2Ni41IDY2LjUgMCAwMC0xLjcxLS4zMjUiLz48cGF0aCBzdHJva2U9ImhzbCgxNjEsIDEwMCUsIDUwJSkiIGQ9Ik0xNDkuMzkzIDcwLjA3NmE2Ni41IDY2LjUgMCAwMC0xLjcwNC0uMzU0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTYyLCAxMDAlLCA1MCUpIiBkPSJNMTUwLjUyNCA3MC4zMzdhNjYuNSA2Ni41IDAgMDAtMS42OTgtLjM4NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2MywgMTAwJSwgNTAlKSIgZD0iTTE1MS42NSA3MC42MThhNjYuNSA2Ni41IDAgMDAtMS42OS0uNDE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTY0LCAxMDAlLCA1MCUpIiBkPSJNMTUyLjc3MSA3MC45MTlhNjYuNSA2Ni41IDAgMDAtMS42ODMtLjQ0NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2NSwgMTAwJSwgNTAlKSIgZD0iTTE1My44ODcgNzEuMjM4YTY2LjUgNjYuNSAwIDAwLTEuNjc2LS40NzIiLz48cGF0aCBzdHJva2U9ImhzbCgxNjYsIDEwMCUsIDUwJSkiIGQ9Ik0xNTQuOTk3IDcxLjU3OGE2Ni41IDY2LjUgMCAwMC0xLjY2Ny0uNTAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTY3LCAxMDAlLCA1MCUpIiBkPSJNMTU2LjEgNzEuOTM2YTY2LjUgNjYuNSAwIDAwLTEuNjU3LS41MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2OCwgMTAwJSwgNTAlKSIgZD0iTTE1Ny4xOTggNzIuMzE0YTY2LjUgNjYuNSAwIDAwLTEuNjQ4LS41NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2OSwgMTAwJSwgNTAlKSIgZD0iTTE1OC4yODkgNzIuNzExYTY2LjUgNjYuNSAwIDAwLTEuNjM5LS41ODgiLz48cGF0aCBzdHJva2U9ImhzbCgxNzAsIDEwMCUsIDUwJSkiIGQ9Ik0xNTkuMzcyIDczLjEyN2E2Ni41IDY2LjUgMCAwMC0xLjYyOC0uNjE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTcxLCAxMDAlLCA1MCUpIiBkPSJNMTYwLjQ0OCA3My41NjJhNjYuNSA2Ni41IDAgMDAtMS42MTctLjY0NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE3MiwgMTAwJSwgNTAlKSIgZD0iTTE2MS41MTcgNzQuMDE2YTY2LjUgNjYuNSAwIDAwLTEuNjA2LS42NzQiLz48cGF0aCBzdHJva2U9ImhzbCgxNzMsIDEwMCUsIDUwJSkiIGQ9Ik0xNjIuNTc3IDc0LjQ4OGE2Ni41IDY2LjUgMCAwMC0xLjU5My0uNzAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTc0LCAxMDAlLCA1MCUpIiBkPSJNMTYzLjYyOSA3NC45NzhhNjYuNSA2Ni41IDAgMDAtMS41ODEtLjcyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE3NSwgMTAwJSwgNTAlKSIgZD0iTTE2NC42NzIgNzUuNDg3YTY2LjUgNjYuNSAwIDAwLTEuNTY4LS43NTYiLz48cGF0aCBzdHJva2U9ImhzbCgxNzYsIDEwMCUsIDUwJSkiIGQ9Ik0xNjUuNzA2IDc2LjAxNGE2Ni41IDY2LjUgMCAwMC0xLjU1NC0uNzg0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTc3LCAxMDAlLCA1MCUpIiBkPSJNMTY2LjczMSA3Ni41NTlhNjYuNSA2Ni41IDAgMDAtMS41NC0uODEiLz48cGF0aCBzdHJva2U9ImhzbCgxNzgsIDEwMCUsIDUwJSkiIGQ9Ik0xNjcuNzQ2IDc3LjEyMWE2Ni41IDY2LjUgMCAwMC0xLjUyNi0uODM3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTc5LCAxMDAlLCA1MCUpIiBkPSJNMTY4Ljc1MSA3Ny43MDJhNjYuNSA2Ni41IDAgMDAtMS41MTEtLjg2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4MCwgMTAwJSwgNTAlKSIgZD0iTTE2OS43NDYgNzguM2E2Ni41IDY2LjUgMCAwMC0xLjQ5Ni0uODkiLz48cGF0aCBzdHJva2U9ImhzbCgxODEsIDEwMCUsIDUwJSkiIGQ9Ik0xNzAuNzMgNzguOTE0YTY2LjUgNjYuNSAwIDAwLTEuNDgtLjkxNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4MiwgMTAwJSwgNTAlKSIgZD0iTTE3MS43MDQgNzkuNTQ3YTY2LjUgNjYuNSAwIDAwLTEuNDY0LS45NDIiLz48cGF0aCBzdHJva2U9ImhzbCgxODMsIDEwMCUsIDUwJSkiIGQ9Ik0xNzIuNjY2IDgwLjE5NmE2Ni41IDY2LjUgMCAwMC0xLjQ0OC0uOTY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTg0LCAxMDAlLCA1MCUpIiBkPSJNMTczLjYxNyA4MC44NjFhNjYuNSA2Ni41IDAgMDAtMS40My0uOTkyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTg1LCAxMDAlLCA1MCUpIiBkPSJNMTc0LjU1NiA4MS41NDRhNjYuNSA2Ni41IDAgMDAtMS40MTMtMS4wMTgiLz48cGF0aCBzdHJva2U9ImhzbCgxODYsIDEwMCUsIDUwJSkiIGQ9Ik0xNzUuNDgzIDgyLjI0MmE2Ni41IDY2LjUgMCAwMC0xLjM5NS0xLjA0MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4NywgMTAwJSwgNTAlKSIgZD0iTTE3Ni4zOTcgODIuOTU3YTY2LjUgNjYuNSAwIDAwLTEuMzc2LTEuMDY2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTg4LCAxMDAlLCA1MCUpIiBkPSJNMTc3LjMgODMuNjg3YTY2LjUgNjYuNSAwIDAwLTEuMzU5LTEuMDkiLz48cGF0aCBzdHJva2U9ImhzbCgxODksIDEwMCUsIDUwJSkiIGQ9Ik0xNzguMTg4IDg0LjQzM2E2Ni41IDY2LjUgMCAwMC0xLjMzOC0xLjExMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5MCwgMTAwJSwgNTAlKSIgZD0iTTE3OS4wNjQgODUuMTk0YTY2LjUgNjYuNSAwIDAwLTEuMzE5LTEuMTM2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTkxLCAxMDAlLCA1MCUpIiBkPSJNMTc5LjkyNyA4NS45NzFhNjYuNSA2Ni41IDAgMDAtMS4zLTEuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxOTIsIDEwMCUsIDUwJSkiIGQ9Ik0xODAuNzc2IDg2Ljc2M2E2Ni41IDY2LjUgMCAwMC0xLjI3OS0xLjE4MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5MywgMTAwJSwgNTAlKSIgZD0iTTE4MS42MSA4Ny41NjlhNjYuNSA2Ni41IDAgMDAtMS4yNTctMS4yMDQiLz48cGF0aCBzdHJva2U9ImhzbCgxOTQsIDEwMCUsIDUwJSkiIGQ9Ik0xODIuNDMxIDg4LjM5YTY2LjUgNjYuNSAwIDAwLTEuMjM2LTEuMjI2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTk1LCAxMDAlLCA1MCUpIiBkPSJNMTgzLjIzNyA4OS4yMjRhNjYuNSA2Ni41IDAgMDAtMS4yMTQtMS4yNDciLz48cGF0aCBzdHJva2U9ImhzbCgxOTYsIDEwMCUsIDUwJSkiIGQ9Ik0xODQuMDI5IDkwLjA3M2E2Ni41IDY2LjUgMCAwMC0xLjE5My0xLjI2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5NywgMTAwJSwgNTAlKSIgZD0iTTE4NC44MDYgOTAuOTM2YTY2LjUgNjYuNSAwIDAwLTEuMTcxLTEuMjg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTk4LCAxMDAlLCA1MCUpIiBkPSJNMTg1LjU2NyA5MS44MTJhNjYuNSA2Ni41IDAgMDAtMS4xNDgtMS4zMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5OSwgMTAwJSwgNTAlKSIgZD0iTTE4Ni4zMTMgOTIuN2E2Ni41IDY2LjUgMCAwMC0xLjEyNS0xLjMyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwMCwgMTAwJSwgNTAlKSIgZD0iTTE4Ny4wNDMgOTMuNjAzYTY2LjUgNjYuNSAwIDAwLTEuMTAxLTEuMzQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjAxLCAxMDAlLCA1MCUpIiBkPSJNMTg3Ljc1OCA5NC41MTdhNjYuNSA2Ni41IDAgMDAtMS4wNzgtMS4zNjciLz48cGF0aCBzdHJva2U9ImhzbCgyMDIsIDEwMCUsIDUwJSkiIGQ9Ik0xODguNDU2IDk1LjQ0NGE2Ni41IDY2LjUgMCAwMC0xLjA1My0xLjM4NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwMywgMTAwJSwgNTAlKSIgZD0iTTE4OS4xMzkgOTYuMzgzYTY2LjUgNjYuNSAwIDAwLTEuMDMtMS40MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMDQsIDEwMCUsIDUwJSkiIGQ9Ik0xODkuODA0IDk3LjMzNGE2Ni41IDY2LjUgMCAwMC0xLjAwNC0xLjQyMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNSwgMTAwJSwgNTAlKSIgZD0iTTE5MC40NTMgOTguMjk2YTY2LjUgNjYuNSAwIDAwLS45OC0xLjQzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNiwgMTAwJSwgNTAlKSIgZD0iTTE5MS4wODYgOTkuMjdhNjYuNSA2Ni41IDAgMDAtLjk1NS0xLjQ1NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNywgMTAwJSwgNTAlKSIgZD0iTTE5MS43IDEwMC4yNTRhNjYuNSA2Ni41IDAgMDAtLjkyOC0xLjQ3MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwOCwgMTAwJSwgNTAlKSIgZD0iTTE5Mi4yOTggMTAxLjI0OWE2Ni41IDY2LjUgMCAwMC0uOTAzLTEuNDg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjA5LCAxMDAlLCA1MCUpIiBkPSJNMTkyLjg3OSAxMDIuMjU0YTY2LjUgNjYuNSAwIDAwLS44NzctMS41MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMTAsIDEwMCUsIDUwJSkiIGQ9Ik0xOTMuNDQxIDEwMy4yNjlhNjYuNSA2Ni41IDAgMDAtLjg1LTEuNTE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjExLCAxMDAlLCA1MCUpIiBkPSJNMTkzLjk4NiAxMDQuMjk0YTY2LjUgNjYuNSAwIDAwLS44MjQtMS41MzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMTIsIDEwMCUsIDUwJSkiIGQ9Ik0xOTQuNTEzIDEwNS4zMjhhNjYuNSA2Ni41IDAgMDAtLjc5Ny0xLjU0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxMywgMTAwJSwgNTAlKSIgZD0iTTE5NS4wMjIgMTA2LjM3MWE2Ni41IDY2LjUgMCAwMC0uNzctMS41NjEiLz48cGF0aCBzdHJva2U9ImhzbCgyMTQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTUuNTEyIDEwNy40MjNhNjYuNSA2Ni41IDAgMDAtLjc0Mi0xLjU3NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxNSwgMTAwJSwgNTAlKSIgZD0iTTE5NS45ODQgMTA4LjQ4M2E2Ni41IDY2LjUgMCAwMC0uNzE1LTEuNTg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjE2LCAxMDAlLCA1MCUpIiBkPSJNMTk2LjQzOCAxMDkuNTUyYTY2LjUgNjYuNSAwIDAwLS42ODctMS42Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjE3LCAxMDAlLCA1MCUpIiBkPSJNMTk2Ljg3MyAxMTAuNjI4YTY2LjUgNjYuNSAwIDAwLS42Ni0xLjYxMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxOCwgMTAwJSwgNTAlKSIgZD0iTTE5Ny4yODkgMTExLjcxMWE2Ni41IDY2LjUgMCAwMC0uNjMxLTEuNjIyIi8+PHBhdGggc3Ryb2tlPSJoc2woMjE5LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjY4NiAxMTIuODAyYTY2LjUgNjYuNSAwIDAwLS42MDMtMS42MzMiLz48cGF0aCBzdHJva2U9ImhzbCgyMjAsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguMDY0IDExMy45YTY2LjUgNjYuNSAwIDAwLS41NzQtMS42NDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMjEsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguNDIyIDExNS4wMDNhNjYuNSA2Ni41IDAgMDAtLjU0NS0xLjY1MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyMiwgMTAwJSwgNTAlKSIgZD0iTTE5OC43NjIgMTE2LjExM2E2Ni41IDY2LjUgMCAwMC0uNTE3LTEuNjYzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjIzLCAxMDAlLCA1MCUpIiBkPSJNMTk5LjA4MSAxMTcuMjI5YTY2LjUgNjYuNSAwIDAwLS40ODctMS42NzIiLz48cGF0aCBzdHJva2U9ImhzbCgyMjQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuMzgyIDExOC4zNWE2Ni41IDY2LjUgMCAwMC0uNDU4LTEuNjgiLz48cGF0aCBzdHJva2U9ImhzbCgyMjUsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuNjYzIDExOS40NzZhNjYuNSA2Ni41IDAgMDAtLjQyOS0xLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyNiwgMTAwJSwgNTAlKSIgZD0iTTE5OS45MjQgMTIwLjYwN2E2Ni41IDY2LjUgMCAwMC0uNC0xLjY5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyNywgMTAwJSwgNTAlKSIgZD0iTTIwMC4xNjUgMTIxLjc0MmE2Ni41IDY2LjUgMCAwMC0uMzctMS43MDEiLz48cGF0aCBzdHJva2U9ImhzbCgyMjgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDAuMzg2IDEyMi44ODFhNjYuNSA2Ni41IDAgMDAtLjM0LTEuNzA3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjI5LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjU4OCAxMjQuMDI0YTY2LjUgNjYuNSAwIDAwLS4zMS0xLjcxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzMCwgMTAwJSwgNTAlKSIgZD0iTTIwMC43NyAxMjUuMTdhNjYuNSA2Ni41IDAgMDAtLjI4LTEuNzE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjMxLCAxMDAlLCA1MCUpIiBkPSJNMjAwLjkzMSAxMjYuMzJhNjYuNSA2Ni41IDAgMDAtLjI1LTEuNzIzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjMyLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjA3MyAxMjcuNDcyYTY2LjUgNjYuNSAwIDAwLS4yMi0xLjcyNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzMywgMTAwJSwgNTAlKSIgZD0iTTIwMS4xOTQgMTI4LjYyNmE2Ni41IDY2LjUgMCAwMC0uMTktMS43MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzNCwgMTAwJSwgNTAlKSIgZD0iTTIwMS4yOTUgMTI5Ljc4MmE2Ni41IDY2LjUgMCAwMC0uMTYtMS43MzMiLz48cGF0aCBzdHJva2U9ImhzbCgyMzUsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuMzc2IDEzMC45NGE2Ni41IDY2LjUgMCAwMC0uMTMtMS43MzYiLz48cGF0aCBzdHJva2U9ImhzbCgyMzYsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDM3IDEzMi4xYTY2LjUgNjYuNSAwIDAwLS4wOTktMS43MzkiLz48cGF0aCBzdHJva2U9ImhzbCgyMzcsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDc3IDEzMy4yNmE2Ni41IDY2LjUgMCAwMC0uMDY4LTEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMzgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDk3IDEzNC40MmE2Ni41IDY2LjUgMCAwMC0uMDM4LTEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMzksIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDk3IDEzNS41OGE2Ni41IDY2LjUgMCAwMC0uMDA3LTEuNzQiLz48L2c+PGNpcmNsZSBjeD0iMTM1IiBjeT0iMTM1IiByPSIxMzMiIGZpbGw9InVybCgjYSkiIGNsYXNzPSJJcm9XaGVlbFNhdHVyYXRpb24iLz48Y2lyY2xlIGN4PSIxMzUiIGN5PSIxMzUiIHI9IjEzMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIGNsYXNzPSJJcm9XaGVlbEJvcmRlciIvPjwvc3ZnPg=='; - - dialog.querySelector('.satus-scrollbar__content').appendChild(close); - dialog.querySelector('.satus-scrollbar__content').appendChild(component_canvas); - - document.body.appendChild(dialog); - }); - - component.appendChild(component_value); - - return component; -}; - - -/*-------------------------------------------------------------- -3.3 DIALOG ---------------------------------------------------------------*/ - -satus.components.dialog = function (element) { - var component = document.createElement('div'), - component_scrim = document.createElement('div'), - component_surface = document.createElement('div'), - component_scrollbar = satus.components.scrollbar(component_surface, element.scrollbar), - options = element.options || {}; - - component_scrim.className = 'satus-dialog__scrim'; - component_surface.className = 'satus-dialog__surface'; - - for (var key in element) { - satus.render(element[key], component_scrollbar); - } - - function close() { - window.removeEventListener('keydown', keydown); - - component.classList.add('satus-dialog--closing'); - - if (typeof element.onclose === 'function') { - element.onclose(); - } - - setTimeout(function () { - component.remove(); - }, satus.getAnimationDuration(component_surface)); - } - - function keydown(event) { - if (event.keyCode === 27) { - event.preventDefault(); - close(); - } - - if (event.keyCode === 9) { - var elements = component_surface.querySelectorAll('button, input'), - focused = false; - - event.preventDefault(); - - for (var i = 0, l = elements.length; i < l; i++) { - if (elements[i] === document.activeElement && elements[i + 1]) { - elements[i + 1].focus(); - - focused = true; - - i = l; - } - } - - if (focused === false) { - elements[0].focus(); - } - } - } - - component.close = close; - - component_scrim.addEventListener('click', close); - window.addEventListener('keydown', keydown); - - component.appendChild(component_scrim); - component.appendChild(component_surface); - - // OPTIONS - - if (options.left) { - component_surface.style.left = options.left + 'px'; - } - - if (options.top) { - component_surface.style.top = options.top + 'px'; - } - - if (options.width) { - component_surface.style.width = options.width + 'px'; - } - - if (options.height) { - component_surface.style.height = options.height + 'px'; - } - - // END OPTIONS - - return component; -}; - - -/*-------------------------------------------------------------- -3.4 FOLDER ---------------------------------------------------------------*/ - -satus.components.folder = function (object) { - var component = document.createElement('button'); - - component.object = object; - - component.classList.add('satus-button'); - - component.addEventListener('click', function () { - var parent = document.querySelector(component.object.parent) || document.querySelector('.satus-main'); - - if (!component.object.parent || !parent.classList.contains('satus-main')) { - while (!parent.classList.contains('satus-main')) { - parent = parent.parentNode; - } - } - - parent.open(this.object, object.onopen); - }); - - if (satus.isset(object.label)) { - var component_label = document.createElement('span'); - - component_label.className = 'satus-folder__label'; - component_label.innerText = satus.locale.getMessage(object.label); - - component.appendChild(component_label); - } - - return component; -}; - - -/*-------------------------------------------------------------- -3.5 HEADER ---------------------------------------------------------------*/ - -satus.components.header = function (object) { - var component = document.createElement('header'); - - for (var key in object) { - satus.render(object[key], component); - } - - return component; -}; - - -/*-------------------------------------------------------------- -3.6 LIST ---------------------------------------------------------------*/ - -satus.components.list = function (object) { - var ul = document.createElement('ul'); - - if (object.compact === true) { - ul.classList.add('satus-list'); - ul.classList.add('satus-list--compact'); - } - - for (var key in object) { - if (satus.isset(object[key].type)) { - var li = document.createElement('li'); - - if (object.sortable === true) { - function mousedown(event) { - if (event.button === 0) { - var self = this, - dragging = false, - clone = false, - current_index = Array.from(self.parentNode.children).indexOf(self), - bounding = this.getBoundingClientRect(), - first_x = event.clientX, - first_y = event.clientY, - offset_x = event.clientX - bounding.left, - offset_y = event.clientY - bounding.top; - - function mousemove(event) { - if (Math.abs(first_y - event.clientY) <= 5) { - return false; - } - - if (dragging === false) { - clone = self.cloneNode(true); - - satus.cloneNodeStyles(self, clone); - clone.style.position = 'fixed'; - clone.style.pointerEvents = 'none'; - clone.style.backgroundColor = '#fff'; - self.style.visibility = 'hidden'; - - document.body.appendChild(clone); - - dragging = true; - } - - var x = bounding.left, //event.clientX - offset_x - y = event.clientY - offset_y, - index = Math.floor(y / self.offsetHeight) - 1; - - clone.style.left = x + 'px'; - clone.style.top = y + 'px'; - - //return false; - - if (index !== current_index && self.parentNode.children[index]) { - var new_clone = self.cloneNode(true); - - if (index > 0) { - self.parentNode.insertBefore(new_clone, self.parentNode.children[index].nextSibling); - } else { - self.parentNode.insertBefore(new_clone, self.parentNode.children[index]); - } - - self.remove(); - - self = new_clone; - - self.addEventListener('mousedown', mousedown); - - if (typeof object.onchange === 'function') { - object.onchange(current_index, index); - } - - current_index = index; - } - } - - function mouseup(event) { - if (clone) { - clone.remove(); - self.style.visibility = ''; - } - - window.removeEventListener('mousemove', mousemove); - window.removeEventListener('mouseup', mouseup); - } - - window.addEventListener('mousemove', mousemove); - window.addEventListener('mouseup', mouseup); - } - } - - li.addEventListener('mousedown', mousedown); - } - - satus.render(object[key], li); - - ul.appendChild(li); - } - } - - return ul; -}; - - -/*-------------------------------------------------------------- -3.7 MAIN ---------------------------------------------------------------*/ - -satus.components.main = function (object) { - var component = document.createElement('main'), - component_container = document.createElement('div'), - component_scrollbar = satus.components.scrollbar(component_container, object.scrollbar); - - component.history = [object]; - - component.back = function () { - var container = this.querySelector('.satus-main__container'), - component_container = document.createElement('div'), - component_scrollbar = satus.components.scrollbar(component_container); - - container.classList.add('satus-main__container--fade-out-right'); - component_container.className = 'satus-main__container satus-main__container--fade-in-left'; - - this.history.pop(); - - for (var key in this.history[this.history.length - 1]) { - satus.render(this.history[this.history.length - 1][key], component_scrollbar); - } - - this.appendChild(component_container); - - if (this.historyListener) { - this.historyListener(component_container); - } - - if (this.history[this.history.length - 1].onopen) { - component_scrollbar.onopen = this.history[this.history.length - 1].onopen; - - component_scrollbar.onopen(); - } - - setTimeout(function () { - container.remove(); - }, satus.getAnimationDuration(container)); - }; - - component.open = function (element, callback, animated) { - var container = this.querySelector('.satus-main__container'), - component_container = document.createElement('div'), - component_scrollbar = satus.components.scrollbar(component_container); - - if (animated !== false) { - container.classList.add('satus-main__container--fade-out-left'); - component_container.className = 'satus-main__container satus-main__container--fade-in-right'; - } else { - component_container.className = 'satus-main__container'; - } - - this.history.push(element); - - for (var key in this.history[this.history.length - 1]) { - satus.render(this.history[this.history.length - 1][key], component_scrollbar); - } - - this.appendChild(component_container); - - if (this.historyListener) { - this.historyListener(component_container); - } - - if (callback) { - component_scrollbar.onopen = callback; - - component_scrollbar.onopen(); - } - - setTimeout(function () { - container.remove(); - }, satus.getAnimationDuration(container)); - }; - - component_container.className = 'satus-main__container'; - - if (object.on && object.on.change) { - component.historyListener = object.on.change; - } - - if (component.historyListener) { - component.historyListener(component_container); - } - - for (var key in object) { - satus.render(object[key], component_scrollbar); - } - - component.appendChild(component_container); - - return component; -}; - - -/*-------------------------------------------------------------- -3.8 SCROLL BAR ---------------------------------------------------------------*/ - -satus.components.scrollbar = function (parent, enabled) { - if (enabled === false) { - return parent; - } - - var component = document.createElement('div'), - component_wrapper = document.createElement('div'), - component_content = document.createElement('div'), - component_thumb = document.createElement('div'); - - component.className = 'satus-scrollbar'; - component_wrapper.className = 'satus-scrollbar__wrapper'; - component_content.className = 'satus-scrollbar__content'; - component_thumb.className = 'satus-scrollbar__thumb'; - - - // RESIZE - - function resize() { - component_content.style.width = component.offsetWidth + 'px'; - component_wrapper.style.height = component.offsetHeight + 'px'; - - if (component_wrapper.scrollHeight > component_wrapper.offsetHeight) { - component_thumb.style.height = component_wrapper.offsetHeight / component_wrapper.scrollHeight * component_wrapper.offsetHeight + 'px'; - } else { - component_wrapper.style.height = ''; - component_thumb.style.height = ''; - } - } - - window.addEventListener('resize', resize); - - new MutationObserver(resize).observe(component_content, { - subtree: true, - childList: true - }); - - - // HOVER - - component.timeout = false; - - function active() { - if (component.timeout) { - clearTimeout(component.timeout); - - component.timeout = false; - } - - component.classList.add('active'); - - component.timeout = setTimeout(function () { - component.classList.remove('active'); - - component.timeout = false; - }, 1000); - } - - component.addEventListener('mousemove', active); - - - // SCROLL - - component_wrapper.addEventListener('scroll', function (event) { - active(); - - component_thumb.style.top = Math.floor(component_wrapper.scrollTop * (component_wrapper.offsetHeight - component_thumb.offsetHeight) / (component_wrapper.scrollHeight - component_wrapper.offsetHeight)) + 'px'; - }); - - component_thumb.addEventListener('mousedown', function (event) { - var offsetY = event.layerY; - - if (event.button !== 0) { - return false; - } - - function mousemove(event) { - var offset = 100 / ((component.offsetHeight - component_thumb.offsetHeight) / (event.clientY - offsetY - component.getBoundingClientRect().top)), - scroll = component_wrapper.scrollHeight - component.offsetHeight; - - component_wrapper.scrollTop = scroll / 100 * offset; - - event.preventDefault(); - - return false; - } - - function mouseup() { - window.removeEventListener('mouseup', mouseup); - window.removeEventListener('mousemove', mousemove); - } - - window.addEventListener('mouseup', mouseup); - window.addEventListener('mousemove', mousemove); - }); - - component_wrapper.appendChild(component_content); - component.appendChild(component_wrapper); - component.appendChild(component_thumb); - - parent.appendChild(component); - - return component_content; -}; - - -/*-------------------------------------------------------------- -3.9 SECTION ---------------------------------------------------------------*/ - -satus.components.section = function (element) { - var component = document.createElement('section'); - - for (var key in element) { - satus.render(element[key], component); - } - - return component; -}; - - -/*-------------------------------------------------------------- -3.10 SELECT ---------------------------------------------------------------*/ - -satus.components.select = function (element) { - var component = document.createElement('button'), - component_label = document.createElement('span'), - component_value = document.createElement('span'), - label = satus.locale.getMessage(element.label); - - component.classList.add('satus-button'); - - component_label.className = 'satus-select__label'; - component_label.innerText = label; - - component_value.className = 'satus-select__value'; - - if (element.storage_key) { - var value = satus.storage.get(element.storage_key); - - component.dataset.storageKey = element.storage_key; - - for (var i = 0, l = element.options.length; i < l; i++) { - if (value === element.options[i].value) { - value = element.options[i].label; - } - } - - component_value.innerText = satus.locale.getMessage(value || element.options[0].label); - } - - component.onclick = function () { - var position = this.getBoundingClientRect(), - dialog = { - type: 'dialog', - class: 'satus-dialog--select-component' - }; - - for (var key in element.options) { - dialog[key] = element.options[key]; - - dialog[key].type = 'button'; - dialog[key].dataset = {}; - dialog[key].dataset.key = element.options[key].label; - dialog[key].dataset.value = element.options[key].value; - dialog[key].onclick = function () { - component_value.innerText = satus.locale.getMessage(this.dataset.key); - - satus.storage.set(component.dataset.storageKey, this.dataset.value); - - var parent = this.parentNode; - - while (!parent.classList.contains('satus-dialog')) { - parent = parent.parentNode; - } - - parent.querySelector('.satus-dialog__scrim').click(); - }; - } - - satus.render(dialog); - }; - - component.appendChild(component_label); - component.appendChild(component_value); - - return component; -}; - - -/*--------------------------------------------------------------- -3.11 SHORTCUT ----------------------------------------------------------------*/ - -satus.components.shortcut = function (element) { - var self = this, - value = (satus.storage.get(element.storage_key) ? JSON.parse(satus.storage.get(element.storage_key)) : false) || element.value || {}, - component = document.createElement('div'), - component_label = document.createElement('span'), - component_value = document.createElement('span'), - mousewheel_timeout = false, - mousewheel_only = false; - - component_label.className = 'satus-shortcut__label'; - component_value.className = 'satus-shortcut__value'; - - function update(canvas) { - let text_value = [], - keys_value = []; - - if (value.altKey === true) { - text_value.push('Alt'); - keys_value.push('
Alt
'); - } - - if (value.ctrlKey === true) { - text_value.push('Ctrl'); - keys_value.push('
Ctrl
'); - } - - if (value.shiftKey === true) { - text_value.push('Shift'); - keys_value.push('
Shift
'); - } - - if (value.key === ' ') { - text_value.push('Space bar'); - keys_value.push('
Space bar
'); - - } else if (typeof value.key === 'string' && ['Shift', 'Control', 'Alt'].indexOf(value.key) === -1) { - if (value.key === 'ArrowUp') { - text_value.push('↑'); - keys_value.push('
'); - } else if (value.key === 'ArrowRight') { - text_value.push('→'); - keys_value.push('
'); - } else if (value.key === 'ArrowDown') { - text_value.push('↓'); - keys_value.push('
'); - } else if (value.key === 'ArrowLeft') { - text_value.push('←'); - keys_value.push('
'); - } else { - let key = value.key.toUpperCase(); - - text_value.push(key); - keys_value.push('
' + key + '
'); - } - } - - if (value.wheel) { - keys_value.push('
'); - } - - component_value.innerText = text_value.join('+'); - - if (canvas) { - if (keys_value.length > 0) { - canvas.innerHTML = keys_value.join('
'); - } else { - canvas.innerText = satus.locale.getMessage('pressAnyKeyOrUseMouseWheel'); - } - } - } - - update(); - - component_value.dataset.value = component_value.innerText; - - component_label.innerText = satus.locale.getMessage(element.label); - - component.addEventListener('click', function () { - let component_dialog = document.createElement('div'), - component_dialog_label = document.createElement('span'), - component_scrim = document.createElement('div'), - component_surface = document.createElement('div'), - component_canvas = document.createElement('div'), - component_section = document.createElement('section'), - component_button_reset = document.createElement('div'), - component_button_cancel = document.createElement('div'), - component_button_save = document.createElement('div'); - - component_dialog.className = 'satus-dialog satus-dialog_open'; - component_dialog_label.className = 'satus-shortcut-dialog-label'; - component_scrim.className = 'satus-dialog__scrim'; - component_surface.className = 'satus-dialog__surface satus-dialog__surface_shortcut'; - component_canvas.className = 'satus-shortcut__canvas'; - component_section.className = 'satus-section satus-section--align-end satus-section_shortcut'; - component_button_reset.className = 'satus-button satus-button_shortcut'; - component_button_cancel.className = 'satus-button satus-button_shortcut'; - component_button_save.className = 'satus-button satus-button_shortcut'; - - component_dialog_label.innerText = component_label.innerText; - component_button_reset.innerText = satus.locale.getMessage('reset'); - component_button_cancel.innerText = satus.locale.getMessage('cancel'); - component_button_save.innerText = satus.locale.getMessage('save'); - - update(component_canvas); - - function keydown(event) { - event.preventDefault(); - event.stopPropagation(); - - mousewheel_only = false; - clearTimeout(mousewheel_timeout); - - value = { - key: event.key, - keyCode: event.keyCode, - shiftKey: event.shiftKey, - ctrlKey: event.ctrlKey, - altKey: event.altKey - }; - - update(component_canvas); - - return false; - } - - function mousewheel(event) { - event.stopPropagation(); - - if (mousewheel_only === true) { - delete value.shiftKey; - delete value.altKey; - delete value.ctrlKey; - delete value.keyCode; - delete value.key; - } - - clearTimeout(mousewheel_timeout); - - mousewheel_timeout = setTimeout(function () { - mousewheel_only = true; - }, 300); - - value.wheel = event.deltaY; - - update(component_canvas); - - return false; - } - - window.addEventListener('keydown', keydown); - window.addEventListener('mousewheel', mousewheel); - - function close(clear = true) { - window.removeEventListener('keydown', keydown); - window.removeEventListener('mousewheel', mousewheel); - - if (clear === true) { - component_value.innerText = component_value.dataset.value; - } - - component_dialog.classList.remove('satus-dialog_open'); - - setTimeout(function () { - component_dialog.remove(); - }, Number(document.defaultView.getComputedStyle(component_dialog, '').getPropertyValue('animation-duration').replace(/[^0-9.]/g, '') * 1000)); - } - - component_scrim.addEventListener('click', close); - component_button_reset.addEventListener('click', function () { - satus.storage.set(element.storage_key, null); - close(); - value = (satus.storage.get(element.storage_key) ? JSON.parse(satus.storage.get(element.storage_key)) : false) || element.value || {}; - update(); - }); - component_button_cancel.addEventListener('click', close); - component_button_save.addEventListener('click', function () { - satus.storage.set(element.storage_key, JSON.stringify(value)); - close(false); - }); - - component_section.appendChild(component_button_reset); - component_section.appendChild(component_button_cancel); - component_section.appendChild(component_button_save); - - component_surface.appendChild(component_dialog_label); - component_surface.appendChild(component_canvas); - component_surface.appendChild(component_section); - - component_dialog.appendChild(component_scrim); - component_dialog.appendChild(component_surface); - - document.body.appendChild(component_dialog); - }); - - component.appendChild(component_label); - component.appendChild(component_value); - - return component; -}; - - -/*-------------------------------------------------------------- -3.12 SLIDER ---------------------------------------------------------------*/ - -satus.components.slider = function (element) { - var component = document.createElement('div'); - - // LABEL - if (satus.isset(element.label)) { - var component_label = document.createElement('span'); - - component_label.className = 'satus-slider__label'; - component_label.innerText = satus.locale.getMessage(element.label); - - component.appendChild(component_label); - } - - - // RANGE - var component_range = document.createElement('input'); - - component_range.type = 'range'; - component_range.className = 'satus-slider__range'; - component_range.min = element.min || 0; - component_range.max = element.max || 10; - component_range.step = element.step || 1; - - component_range.oninput = function () { - var track = this.parentNode.querySelector('.satus-slider__track'), - thumb = this.parentNode.querySelector('.satus-slider__thumb'), - min = Number(this.min) || 0, - max = Number(this.max) || 1, - step = Number(this.step) || 1, - value = Number(this.value) || 0, - offset = (value - min) / (max - min) * 100; - - track.style.width = 'calc(' + offset + '% - ' + Math.floor(offset * 12 / 100) + 'px)'; - - satus.storage.set(this.dataset.storageKey, Number(this.value)); - - component_thumb.dataset.value = this.value; - - if (component.onchange) { - component.onchange(Number(this.value)); - } - }; - - component.change = function (value) { - component_range.value = value; - - component_thumb.dataset.value = value; - - component_range.oninput(); - }; - - component.addEventListener('mousedown', function () { - function mousemove() { - component.classList.add('satus-slider--dragging'); - } - - function mouseup() { - component.classList.remove('satus-slider--dragging'); - - window.removeEventListener('mousemove', mousemove); - window.removeEventListener('mouseup', mouseup); - } - - window.addEventListener('mousemove', mousemove); - window.addEventListener('mouseup', mouseup); - }); - - if (element.onchange) { - component.onchange = element.onchange; - } - - component.appendChild(component_range); - - - // CONTAINER - var component_container = document.createElement('div'); - - component_container.className = 'satus-slider__container'; - - component.appendChild(component_container); - - - // TRACK - var component_track_container = document.createElement('div'), - component_track = document.createElement('div'); - - component_track_container.className = 'satus-slider__track-container'; - component_track.className = 'satus-slider__track'; - - component_track_container.appendChild(component_track); - component_container.appendChild(component_track_container); - - - // FOCUS RING - var component_ring = document.createElement('div'); - - component_ring.className = 'satus-slider__ring'; - - component_track.appendChild(component_ring); - - - // THUMB - var component_thumb = document.createElement('div'); - - component_thumb.className = 'satus-slider__thumb'; - - component_track.appendChild(component_thumb); - - if (element.storage_key) { - var value = satus.storage.get(element.storage_key) || element.value; - - component_range.dataset.storageKey = element.storage_key; - - if (value) { - component_range.value = value; - - if (!satus.isset(value)) { - value = element.value; - } - - var offset = (Number(component_range.value) - Number(component_range.min)) / (Number(component_range.max) - Number(component_range.min)) * 100; - - component_track.style.width = 'calc(' + offset + '% - ' + Math.floor(offset * 12 / 100) + 'px)'; - component_thumb.dataset.value = value; - } else { - component_range.value = 0; - component_thumb.dataset.value = 0; - } - } - - - return component; -}; - - -/*-------------------------------------------------------------- -3.13 SWITCH ---------------------------------------------------------------*/ - -satus.components.switch = function (element) { - var component = document.createElement('div'), - value; - - // LABEL - if (satus.isset(element.label)) { - var component_label = document.createElement('span'); - - component_label.className = 'satus-switch__label'; - component_label.innerText = satus.locale.getMessage(element.label); - - component.appendChild(component_label); - } - - - // INPUT - var component_input = document.createElement('input'); - - component_input.type = 'checkbox'; - component_input.className = 'satus-switch__input'; - - if (element.storage_key) { - value = satus.storage.get(element.storage_key); - - component_input.dataset.storageKey = element.storage_key; - } - - if (!satus.isset(value)) { - value = element.value; - } - - if (value) { - component_input.checked = value; - } - - component_input.addEventListener('change', function () { - satus.storage.set(this.dataset.storageKey, this.checked); - }); - - component.appendChild(component_input); - - - // TRACK - var component_track = document.createElement('div'); - - component_track.className = 'satus-switch__track'; - - component.appendChild(component_track); - - - // MOUSE MOVE - component_track.addEventListener('mousedown', function (event) { - var prevent = false, - difference = 0; - - function click(event) { - event.preventDefault(); - event.stopPropagation(); - - component.removeEventListener('click', click); - - return false; - } - - function mousemove(event) { - var checkbox = component.querySelector('input'), - movement = event.movementX; - - if (movement * difference < 0) { - difference = 0; - } else { - difference += movement; - - if (prevent === false) { - prevent = true; - component.addEventListener('click', click); - } - } - - if (difference < -5) { - checkbox.checked = false; - } else if (difference > 5) { - checkbox.checked = true; - } - } - - function mouseup(event) { - window.removeEventListener('mousemove', mousemove); - window.removeEventListener('mouseup', mouseup); - } - - window.addEventListener('mousemove', mousemove); - window.addEventListener('mouseup', mouseup); - }); - - - // TOUCH MOVE - component_track.addEventListener('touchstart', function (event) { - var previous_x = 0, - difference = 0; - - function mousemove(event) { - var checkbox = component.querySelector('input'), - movement = event.touches[0].clientX - previous_x; - - previous_x = event.touches[0].clientX; - - if (movement * difference < 0) { - difference = 0; - } else { - difference += movement; - } - - if (difference < -5) { - checkbox.checked = false; - } else if (difference > 5) { - checkbox.checked = true; - } - } - - function mouseup(event) { - window.removeEventListener('touchmove', mousemove); - window.removeEventListener('touchend', mouseup); - } - - window.addEventListener('touchmove', mousemove); - window.addEventListener('touchend', mouseup); - }); - - - return component; -}; - - -satus.components.table = function (item) { - var component = document.createElement('div'), - component_head = document.createElement('div'), - component_body = document.createElement('div'), - component_scrollbar = satus.components.scrollbar(component_body, item.scrollbar), - table = document.createElement('div'); - - table.className = 'satus-table__container'; - component_head.className = 'satus-table__head'; - component_body.className = 'satus-table__body'; - - function update(data) { - var pages = Math.ceil(component.data.length / component.paging), - start = Math.max((component.pagingIndex - 1) * component.paging, 0), - end = component.pagingIndex * component.paging; - - if (end > data.length) { - end = data.length; - } else if (end === 0) { - end = component.paging; - } - - table.innerHTML = ''; - - if (data) { - for (var i = start, l = end; i < l; i++) { - if (data[i]) { - var tr = document.createElement('div'); - - tr.className = 'satus-table__row'; - - for (var j = 0, k = data[i].length; j < k; j++) { - var td = document.createElement('div'); - - - td.className = 'satus-table__cell'; - - if (data[i][j].html) { - td.innerHTML = data[i][j].html; - } else if (data[i][j].text) { - td.innerText = data[i][j].text; - } - - if (data[i][j].onrender) { - td.onrender = data[i][j].onrender; - - td.onrender(); - } - - tr.appendChild(td); - } - - table.appendChild(tr); - } - } - } - - component.pagingUpdate(); - } - - function sortArray(array, index, mode) { - if (mode === 'asc') { - if (typeof array[0][index].text === 'number') { - sorted = array.sort(function (a, b) { - return a[index].text - b[index].text; - }); - } else { - sorted = array.sort(function (a, b) { - return a[index].text.localeCompare(b[index].text); - }); - } - } else { - if (typeof array[0][index].text === 'number') { - sorted = array.sort(function (a, b) { - return b[index].text - a[index].text; - }); - } else { - sorted = array.sort(function (a, b) { - return b[index].text.localeCompare(a[index].text); - }); - } - } - - return array; - } - - function sort() { - var mode = this.dataset.sorting, - index = Array.prototype.indexOf.call(this.parentElement.children, this), - sorted; - - if (component.data[0][index] && component.data[0][index].hasOwnProperty('text')) { - if (mode === 'none') { - mode = 'asc'; - } else if (mode === 'asc') { - mode = 'desc'; - } else if (mode === 'desc') { - mode = 'asc'; - } - - if (this.parentNode.querySelector('div[data-sorting=asc], div[data-sorting=desc]')) { - this.parentNode.querySelector('div[data-sorting=asc], div[data-sorting=desc]').dataset.sorting = 'none'; - } - - this.dataset.sorting = mode; - - sorted = sortArray(component.data, index, mode); - - update(sorted); - } else { - this.dataset.sorting = false; - } - } - - function resize() {} - - for (var i = 0, l = item.columns.length; i < l; i++) { - var column = document.createElement('div'); - - column.dataset.sorting = 'none'; - column.addEventListener('click', sort); - column.innerHTML = '' + item.columns[i].title + ''; - - component_head.appendChild(column); - } - - component_scrollbar.appendChild(table); - - component.appendChild(component_head); - component.appendChild(component_body); - - component.data = item.data; - component.paging = item.paging; - component.pagingIndex = 0; - - component.update = function (data, index, mode) { - if (satus.isset(data)) { - this.data = data; - } - - if (this.querySelector('div[data-sorting=asc], div[data-sorting=desc]')) { - var mode = this.querySelector('div[data-sorting=asc], div[data-sorting=desc]').dataset.sorting, - index = Array.prototype.indexOf.call(this.querySelector('div[data-sorting=asc], div[data-sorting=desc]').parentElement.children, this.querySelector('div[data-sorting=asc], div[data-sorting=desc]')); - - update(sortArray(this.data, index, mode)); - } else { - for (var i = 0, l = item.columns.length; i < l; i++) { - if (item.columns[i].hasOwnProperty('sorting')) { - if (this.data[0][i].hasOwnProperty('text')) { - this.querySelectorAll('.satus-table__head > div')[i].dataset.sorting = item.columns[i].sorting; - } else { - this.querySelectorAll('.satus-table__head > div')[i].dataset.sorting = false; - } - - update(sortArray(this.data, i, item.columns[i].sorting)); - - i = l; - } - } - } - }; - - - // PAGING - - function pagingUpdate() { - if (typeof this.paging === 'number') { - var pages = Math.ceil(this.data.length / this.paging); - - this.querySelector('.satus-table__paging').innerHTML = ''; - - for (var i = 1; i <= pages; i++) { - var button = document.createElement('button'); - - if (i === (this.pagingIndex || 1)) { - button.className = 'active'; - } - - button.innerText = i; - button.parentComponent = this; - button.addEventListener('click', function () { - if (this.parentNode.querySelector('button.active')) { - this.parentNode.querySelector('button.active').classList.remove('active'); - } - - this.classList.add('active'); - - this.parentComponent.pagingIndex = Number(this.innerText); - this.parentComponent.update(this.parentComponent.data); - }); - - this.querySelector('.satus-table__paging').appendChild(button); - } - } - - resize(); - } - - component.pagingUpdate = pagingUpdate; - - component_paging = document.createElement('div'); - - component_paging.className = 'satus-table__paging'; - - component_scrollbar.appendChild(component_paging); - - // END PAGING - - if (item.data) { - component.update(item.data); - } - - return component; -}; - - -/*-------------------------------------------------------------- -3.14 TEXT ---------------------------------------------------------------*/ - -satus.components.text = function (element) { - var component = document.createElement('span'); - - if (satus.isset(element.label)) { - var component_label = document.createElement('span'); - - component_label.className = 'satus-text__label'; - component_label.innerText = satus.locale.getMessage(element.label); - - component.appendChild(component_label); - } - - if (satus.isset(element.value)) { - var component_value = document.createElement('span'); - - component_value.className = 'satus-text__value'; - component_value.innerText = satus.locale.getMessage(element.value); - - component.appendChild(component_value); - } - - return component; -}; - - -/*-------------------------------------------------------------- -3.15 TEXT FIELD ---------------------------------------------------------------*/ - -satus.components.textField = function (element) { - var component = element.rows > 1 ? document.createElement('textarea') : document.createElement('input'); - - component.type = 'text'; - - // PLACEHOLDER - if (satus.isset(element.placeholder)) { - element.placeholder = satus.locale.getMessage(element.placeholder); - } - - return component; -}; \ No newline at end of file +var satus={components:{},events:{},locale:{strings:{}},storage:{data:{}},append:function(M,N){(N||document.body).appendChild(M)},getAnimationDuration:function(M){return 1e3*Number(window.getComputedStyle(M).getPropertyValue("animation-duration").replace(/[^0-9.]/g,""))},attr:function(M,N){if(N)for(var I in N)M.is_svg?M.setAttributeNS(null,I,N[I]):M.setAttribute(I,N[I])},data:function(M,N){if(N)for(var I in N)M.dataset[I]=N[I]},properties:function(M,N){if(N)for(var I in N)M[I]=N[I]},camelize:function(M){for(var N="",I=0,A=M.length;IAlt")),!0===C.ctrlKey&&(N.push("Ctrl"),I.push("
Ctrl
")),!0===C.shiftKey&&(N.push("Shift"),I.push("
Shift
"))," "===C.key?(N.push("Space bar"),I.push("
Space bar
")):"string"==typeof C.key&&-1===["Shift","Control","Alt"].indexOf(C.key)&&("ArrowUp"===C.key?(N.push("↑"),I.push("
")):"ArrowRight"===C.key?(N.push("→"),I.push("
")):"ArrowDown"===C.key?(N.push("↓"),I.push("
")):"ArrowLeft"===C.key?(N.push("←"),I.push("
")):(A=C.key.toUpperCase(),N.push(A),I.push("
"+A+"
"))),C.wheel&&I.push('
'),u.innerText=N.join("+"),M&&0"))}return c.className="satus-shortcut__label",u.className="satus-shortcut__value",U(),u.dataset.value=u.innerText,N.addEventListener("click",function(){let N=document.createElement("div"),M=document.createElement("span"),I=document.createElement("div"),A=document.createElement("div"),D=document.createElement("div"),g=document.createElement("section"),i=document.createElement("div"),j=document.createElement("div"),w=document.createElement("div");function T(M){return M.preventDefault(),M.stopPropagation(),z=!1,clearTimeout(Y),C={key:M.key,keyCode:M.keyCode,shiftKey:M.shiftKey,ctrlKey:M.ctrlKey,altKey:M.altKey},U(D),!1}function S(M){return M.stopPropagation(),!0===z&&(delete C.shiftKey,delete C.altKey,delete C.ctrlKey,delete C.keyCode,delete C.key),clearTimeout(Y),Y=setTimeout(function(){z=!0},300),C.wheel=M.deltaY,U(D),!1}function L(M){window.removeEventListener("keydown",T),window.removeEventListener("mousewheel",S),!0===M&&(u.innerText=u.dataset.value),N.classList.remove("satus-modal_open"),setTimeout(function(){N.remove()},Number(1e3*document.defaultView.getComputedStyle(N,"").getPropertyValue("animation-duration").replace(/[^0-9.]/g,"")))}N.className="satus-modal satus-modal_open",M.className="satus-shortcut-modal-label",I.className="satus-modal__scrim",A.className="satus-modal__surface satus-modal__surface_shortcut",D.className="satus-shortcut__canvas",g.className="satus-section satus-section--align-end satus-section_shortcut",i.className="satus-button satus-button_shortcut",j.className="satus-button satus-button_shortcut",w.className="satus-button satus-button_shortcut",M.innerText=c.innerText,U(D),window.addEventListener("keydown",T),window.addEventListener("mousewheel",S),I.addEventListener("click",L),i.addEventListener("click",function(){L(),U()}),j.addEventListener("click",L),w.addEventListener("click",function(){L(!1)}),g.appendChild(i),g.appendChild(j),g.appendChild(w),A.appendChild(M),A.appendChild(D),A.appendChild(g),N.appendChild(I),N.appendChild(A),document.body.appendChild(N)}),N.appendChild(c),N.appendChild(u),N},satus.components.shortcut=function(M){var N=document.createElement("button"),I=document.createElement("div");return N.className="satus-button",I.className="satus-shortcut__value",N.update=function(){var M=satus.storage.get(this.storage)||this.skeleton.value||{},N=[];if(M.shift&&N.push("Shift"),M.ctrl&&N.push("Ctrl"),M.alt&&N.push("Alt"),"object"==typeof M.keys)for(var I in M.keys){var A=M.keys[I].key||M.keys[I].code;32===I&&(A="space"),N.push(A)}this.valueElement.textContent=N.join(" + ")},N.valueElement=I,N.appendChild(I),N.keydown=function(){},N.mousewheel=function(){},N.addEventListener("click",function(){satus.render({component:"modal",on:{close:function(){window.removeEventListener("keydown",this.keydown),window.removeEventListener("mousewheel",this.mousewheel)}},primary:{component:"div",class:"satus-shortcut__primary"},actions:{component:"div",class:"satus-shortcut__actions",reset:{component:"button",text:"reset"},cancel:{component:"button",text:"cancel"},save:{component:"button",text:"save"}}}),window.addEventListener("keydown",this.keydown),window.addEventListener("mousewheel",this.mousewheel)}),N.addEventListener("render",N.update),N},satus.components.base=function(M){var N=document.createElement("div");return N.base=N},satus.components.layers=function(M){var N=document.createElement("div");return N.path=[M],N.back=function(){1 Date: Mon, 13 Sep 2021 22:27:10 +0300 Subject: [PATCH 0398/1224] Added popup.html --- popup.html | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 popup.html diff --git a/popup.html b/popup.html new file mode 100644 index 000000000..9a3f57e6a --- /dev/null +++ b/popup.html @@ -0,0 +1,22 @@ + + + + + + ImprovedTube + + + + + + + + + \ No newline at end of file From efb5d58ba9528332b5ea98726d88daa5c2ed9335 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 16 Sep 2021 23:23:12 +0300 Subject: [PATCH 0399/1224] Fixed "locale.py" --- py/locale.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/py/locale.py b/py/locale.py index 0f484d3d0..d06b6fa8e 100644 --- a/py/locale.py +++ b/py/locale.py @@ -25,7 +25,8 @@ #--------------------------------------------------------------- def lowerCamelCase(string): - string = re.sub(r"(-|_)+", " ", string).title().replace(" ", "") + string = re.sub(r"(-|_)+", " ", string).title() + string = re.sub(r"[^a-zA-Z0-9]", "", string) return string[0].lower() + string[1:] From 360f57ddd5ba8b7bca8c32053990f77add05fdfd Mon Sep 17 00:00:00 2001 From: LuK1337 Date: Sun, 19 Sep 2021 12:53:46 +0200 Subject: [PATCH 0400/1224] Sync player volume between local and session on volume shortcuts Looks like youtube player also sets session storage volume if you increase it manually. --- youtube-scripts.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/youtube-scripts.js b/youtube-scripts.js index 0e3c5ea17..d4593687b 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3528,6 +3528,7 @@ ImprovedTube.shortcutIncreaseVolume = function () { creation: Date.now() }) }) + sessionStorage['yt-player-volume'] = localStorage['yt-player-volume'] this.showStatus(player.getVolume()); } @@ -3552,6 +3553,7 @@ ImprovedTube.shortcutDecreaseVolume = function () { creation: Date.now() }) }) + sessionStorage['yt-player-volume'] = localStorage['yt-player-volume'] this.showStatus(player.getVolume()); } From f11a41b751d0aa8ba83cdd6cf0bec08c156e287d Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 20 Sep 2021 02:37:16 +0300 Subject: [PATCH 0401/1224] pre-3.500 --- _locales/ar/messages.json | 8 +- _locales/bn/messages.json | 8 +- _locales/de/messages.json | 8 +- _locales/el/messages.json | 8 +- _locales/en/messages.json | 6 + _locales/es/messages.json | 8 +- _locales/fr/messages.json | 8 +- _locales/hin/messages.json | 10 +- _locales/hr/messages.json | 8 +- _locales/id/messages.json | 8 +- _locales/it/messages.json | 8 +- _locales/ja/messages.json | 8 +- _locales/ko/messages.json | 8 +- _locales/nb_NO/messages.json | 8 +- _locales/nl/messages.json | 8 +- _locales/no/messages.json | 8 +- _locales/pl/messages.json | 8 +- _locales/pt_BR/messages.json | 8 +- _locales/pt_PT/messages.json | 8 +- _locales/ro/messages.json | 8 +- _locales/ru/messages.json | 12 +- _locales/sk/messages.json | 8 +- _locales/tr/messages.json | 8 +- _locales/zh_CN/messages.json | 10 +- _locales/zh_TW/messages.json | 8 +- background.js | 259 +- fonts/Roboto-Light.ttf | Bin 0 -> 167000 bytes fonts/Roboto-Medium.ttf | Bin 0 -> 168644 bytes fonts/Roboto-Regular.ttf | Bin 0 -> 168260 bytes options.html | 35 +- page.js | 17 + popup.css | 296 ++- popup.html | 25 +- popup.js | 4292 +++++++++++++++++----------------- satus.css | 2 +- satus.js | 2 +- 36 files changed, 2839 insertions(+), 2295 deletions(-) create mode 100644 fonts/Roboto-Light.ttf create mode 100644 fonts/Roboto-Medium.ttf create mode 100644 fonts/Roboto-Regular.ttf diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index fc428aac1..5f79a7da1 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -261,7 +261,7 @@ "message": "الإفتراضي" }, "donate": { - "message": "تبرع" + "message": "Donate" }, "draggable": { "message": "قابل للسحب" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "انتقل إلى مربع البحث" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "كرت الشاشة" }, @@ -659,6 +662,9 @@ "ram": { "message": "الذاكرة العشوائية" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "قيمنا" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 47fe046ed..db97d478b 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -261,7 +261,7 @@ "message": "পরিবর্তন করবেন না" }, "donate": { - "message": "দান করুন" + "message": "Donate" }, "draggable": { "message": "টেনে আনে" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "অনুসন্ধান বাক্সে যান" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "জিপিইউ" }, @@ -659,6 +662,9 @@ "ram": { "message": "র্যাম" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "মতামত দিন" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index e9840a69d..17fd553fc 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -261,7 +261,7 @@ "message": "Nicht ändern" }, "donate": { - "message": "Spenden" + "message": "Donate" }, "draggable": { "message": "Verschiebbar" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "YouTube Suche" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -659,6 +662,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "Bewerte mich!" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index ec7cf0aab..e760b9b13 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -261,7 +261,7 @@ "message": "Να μην αλλάξει" }, "donate": { - "message": "Συνεισφέρετε οικονομικά" + "message": "Donate" }, "draggable": { "message": "Μετακινήσιμο με σύρση" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "Πήγαινε στο πεδίο αναζήτησης" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -659,6 +662,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "Αξιολόγησέ μας" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index a0108c012..6f04e094b 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -356,6 +356,9 @@ "goToSearchBox": { "message": "Go to search box" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -671,6 +674,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "Rate us" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 52636ed08..90a90f3b3 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -261,7 +261,7 @@ "message": "No cambiar" }, "donate": { - "message": "Donar" + "message": "Donate" }, "draggable": { "message": "Arrastrable" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "Ir a barra de búsqueda" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -659,6 +662,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "Califíquenos" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 7623a993b..8eebcd437 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -261,7 +261,7 @@ "message": "Ne pas changer" }, "donate": { - "message": "Donner" + "message": "Donate" }, "draggable": { "message": "Draggable" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "Barre de recherche" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -662,6 +665,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "Nous évaluer" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index eb49e268f..744c2a05a 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -216,7 +216,7 @@ "message": "गहरा बैंगनी" }, "default": { - "message": "डिफ़ॉल्ट" + "message": "Default" }, "defaultChannelTab": { "message": "डिफ़ॉल्ट चैनल टैब" @@ -261,7 +261,7 @@ "message": "मत बदलो" }, "donate": { - "message": "दान" + "message": "Donate" }, "draggable": { "message": "खींचने योग्य" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "सर्च बॉक्स पर जाएं" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "जी पी यू" }, @@ -659,6 +662,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "हमें रेटिंग दें" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 4c9199040..7e16575e5 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -261,7 +261,7 @@ "message": "Nemoj mijenjati" }, "donate": { - "message": "Doniraj" + "message": "Donate" }, "draggable": { "message": "Povuci" @@ -353,6 +353,9 @@ "goToSearchBox": { "message": "Idite na okvir za pretraživanje" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -668,6 +671,9 @@ "ram": { "message": "Radna memorija" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "Ocijenite nas" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 64b875233..1225fe159 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -261,7 +261,7 @@ "message": "Jangan ubah" }, "donate": { - "message": "Donasi" + "message": "Donate" }, "draggable": { "message": "Dapat diseret" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "Ke kotak pencarian" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -659,6 +662,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "Nilai Kami" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index a752b5e50..7c1258b24 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -261,7 +261,7 @@ "message": "Non cambiare" }, "donate": { - "message": "Donazione" + "message": "Donate" }, "draggable": { "message": "Trascinabile" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "Vai alla casella di ricerca" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -659,6 +662,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "Valutaci" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index f318e0654..e7adedc95 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -261,7 +261,7 @@ "message": "変更しない" }, "donate": { - "message": "寄付する" + "message": "Donate" }, "draggable": { "message": "ドラッグ可能にする" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "検索ボックスに行く" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -659,6 +662,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "評価する" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index ec6aa45dc..c5a0616b4 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -261,7 +261,7 @@ "message": "바꾸지 않음" }, "donate": { - "message": "후원하기" + "message": "Donate" }, "draggable": { "message": "드래그 가능" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "검색창으로 이동" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "그래픽 처리 장치" }, @@ -659,6 +662,9 @@ "ram": { "message": "램" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "평가하기" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 82a3795e4..18177b07c 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -261,7 +261,7 @@ "message": "Ikke endre" }, "donate": { - "message": "Doner" + "message": "Donate" }, "draggable": { "message": "Flyttbare" @@ -353,6 +353,9 @@ "goToSearchBox": { "message": "Gå til søkefeltet" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -662,6 +665,9 @@ "ram": { "message": "Minne" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "Rangere oss" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index bde037092..5d6e56d8e 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -261,7 +261,7 @@ "message": "Niet aanpassen" }, "donate": { - "message": "Doneer" + "message": "Donate" }, "draggable": { "message": "Sleepbaar" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "Ga naar de zoekbalk" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -659,6 +662,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "Geef ons een beoordeling" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index c520a09d4..b6740614e 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -261,7 +261,7 @@ "message": "Ikke endre" }, "donate": { - "message": "Doner" + "message": "Donate" }, "draggable": { "message": "Flyttbare" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "Gå til søkefeltet" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -656,6 +659,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "Rangere oss" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 9de3373fa..f3c31122b 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -264,7 +264,7 @@ "message": "Nie zmieniaj" }, "donate": { - "message": "Dotacja" + "message": "Donate" }, "draggable": { "message": "Przeciągalne" @@ -356,6 +356,9 @@ "goToSearchBox": { "message": "Idź do paska wyszukiwania" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -671,6 +674,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "Oceń nas" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index d6da3a7de..9294529c1 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -261,7 +261,7 @@ "message": "Não alterar" }, "donate": { - "message": "Doar" + "message": "Donate" }, "draggable": { "message": "Arrastável" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "Selecionar barra de pesquisa" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -659,6 +662,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "Avalie-nos!" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 7d8a6c08d..0b829d547 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -261,7 +261,7 @@ "message": "Não mudes" }, "donate": { - "message": "Doar" + "message": "Donate" }, "draggable": { "message": "Podes arrastar" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "Vai à caixa de pesquisa" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -659,6 +662,9 @@ "ram": { "message": "Memoria" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "Avalia-nos" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 075401677..2b67b23b8 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -261,7 +261,7 @@ "message": "Nu schimba" }, "donate": { - "message": "Donează" + "message": "Donate" }, "draggable": { "message": "Poate fi tras" @@ -353,6 +353,9 @@ "goToSearchBox": { "message": "Du-te la casuța de căutare" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -665,6 +668,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "Dă-ne o notă" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index c53c547c9..0ffe84684 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -150,7 +150,7 @@ "message": "Каналы" }, "characterEdgeStyle": { - "message": "Character edge style" + "message": "Стиль контура символов" }, "clipboard": { "message": "Буфер обмена" @@ -216,7 +216,7 @@ "message": "Темно-фиолетовый" }, "default": { - "message": "Default" + "message": "По умолчанию" }, "defaultChannelTab": { "message": "Вкладка канала по умолчанию" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "Перейти в окно поиска" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -522,7 +525,7 @@ "message": "Тип live-чата" }, "location": { - "message": "Location" + "message": "Место нахождения" }, "loudnessNormalization": { "message": "Нормализировать громкость" @@ -659,6 +662,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Оставить отзыв" + }, "rateUs": { "message": "Оцените нас" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 435bc128b..97b30bee2 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -261,7 +261,7 @@ "message": "Nemeniť" }, "donate": { - "message": "Prispieť" + "message": "Donate" }, "draggable": { "message": "Posuvné" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "Prejdite do vyhľadávanieho poľa" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -659,6 +662,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "Ohodnoťte nás" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index c37461cd0..af8b44f63 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -261,7 +261,7 @@ "message": "Değiştirme" }, "donate": { - "message": "Bağış" + "message": "Donate" }, "draggable": { "message": "Sürüklenebilir" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "Arama kutusuna git" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -659,6 +662,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "Bizi oyla" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index c4802e9ee..ab87e9284 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -216,7 +216,7 @@ "message": "深紫色" }, "default": { - "message": "默认" + "message": "Default" }, "defaultChannelTab": { "message": "默认频道页" @@ -261,7 +261,7 @@ "message": "不做改变" }, "donate": { - "message": "支持" + "message": "Donate" }, "draggable": { "message": "可拖动" @@ -353,6 +353,9 @@ "goToSearchBox": { "message": "转到搜索框" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -668,6 +671,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "给我们评价" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index e3a0321fe..a60be3923 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -261,7 +261,7 @@ "message": "不要改變" }, "donate": { - "message": "捐贈" + "message": "Donate" }, "draggable": { "message": "可拖動" @@ -350,6 +350,9 @@ "goToSearchBox": { "message": "轉到搜索框" }, + "googleApiKey": { + "message": "Google API key" + }, "gpu": { "message": "GPU" }, @@ -665,6 +668,9 @@ "ram": { "message": "RAM" }, + "rateMe": { + "message": "Rate me" + }, "rateUs": { "message": "評分" }, diff --git a/background.js b/background.js index 5cde02b37..31cdb1dbf 100644 --- a/background.js +++ b/background.js @@ -1,106 +1,153 @@ /*-------------------------------------------------------------- >>> BACKGROUND ---------------------------------------------------------------- -1.0 Global variables -2.0 Functions -3.0 Context menu items -4.0 Message listener -5.0 Storage change listener -6.0 Tab focus/blur -7.0 Uninstall URL -8.0 Google Analytics -9.0 Initialization +# Google Analytics +# Uninstall URL +# Localization +# Context menu +# Tab focus/blur +# Initialization + # Get items from storage + # Storage change listener + # Message listener --------------------------------------------------------------*/ /*-------------------------------------------------------------- -1.0 GLOBAL VARIABLES +# GOOGLE ANALYTICS --------------------------------------------------------------*/ -var locale_code = 'en'; +function googleAnalytics(previous_time) { + var script = document.createElement('script'), + current_time = new Date().getTime(), + _gaq = []; + + _gaq.push(['_setAccount', 'UA-88354155-1']); + _gaq.push(['_setSessionCookieTimeout', 14400000]); + + if (current_time - (previous_time || 0) >= 86400000) { + _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); + + chrome.storage.local.set({ + ga: current_time + }); + } + + script.src = 'https://ssl.google-analytics.com/ga.js'; + + document.body.appendChild(script); +} + + +/*-------------------------------------------------------------- +# UNINSTALL URL +--------------------------------------------------------------*/ + +function uninstallURL() { + chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); +} + /*-------------------------------------------------------------- -2.0 FUNCTIONS +# LOCALIZATION --------------------------------------------------------------*/ -function getTranslations(path) { +function getLocalization(code, callback) { var xhr = new XMLHttpRequest(); - xhr.addEventListener('load', function() { - if (chrome && chrome.tabs) { - chrome.tabs.query({}, function(tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - name: 'translation_response', - value: xhr.responseText - }); - } - } - }); - } + code = code || window.navigator.language || 'en'; - chrome.runtime.sendMessage({ - name: 'translation_response', - value: xhr.responseText - }); - }); + xhr.onload = function () { + try { + var response = JSON.parse(this.response), + result = {}; - xhr.addEventListener('error', function() { - getTranslations('_locales/en/messages.json'); - }); + for (var key in response) { + result[key] = response[key].message; + } + + callback(result); + } catch (error) { + console.error(error); + } + }; + + xhr.onerror = function () { + xhr.open('GET', '_locales/en/messages.json', true); + xhr.send(); + }; - xhr.open('GET', path, true); + xhr.open('GET', '_locales/' + code + '/messages.json', true); xhr.send(); } /*-------------------------------------------------------------- -3.0 CONTEXT MENU ITEMS +# CONTEXT MENU --------------------------------------------------------------*/ -chrome.contextMenus.removeAll(); +function updateContextMenu(locale) { + chrome.contextMenus.removeAll(); -chrome.contextMenus.create({ - id: '1111', - title: 'Donate', - contexts: ['browser_action'] -}); + chrome.contextMenus.create({ + id: '0', + title: locale['donate'] || 'donate', + contexts: ['browser_action'] + }); -chrome.contextMenus.create({ - id: '1112', - title: 'Rate me', - contexts: ['browser_action'] -}); + chrome.contextMenus.create({ + id: '1', + title: locale['rateMe'] || 'rateMe', + contexts: ['browser_action'] + }); -chrome.contextMenus.create({ - id: '1113', - title: 'GitHub', - contexts: ['browser_action'] -}); + chrome.contextMenus.create({ + id: '2', + title: 'GitHub', + contexts: ['browser_action'] + }); -chrome.contextMenus.onClicked.addListener(function(event) { - if (event.menuItemId === '1111') { - window.open('https://www.improvedtube.com/donate'); - } else if (event.menuItemId === '1112') { - window.open('https://chrome.google.com/webstore/detail/improvedtube-for-youtube/bnomihfieiccainjcjblhegjgglakjdd'); - } else if (event.menuItemId === '1113') { - window.open('https://github.com/ImprovedTube/ImprovedTube'); - } -}); + chrome.contextMenus.onClicked.addListener(function (info) { + var links = [ + 'https://www.improvedtube.com/donate', + 'https://chrome.google.com/webstore/detail/improve-youtube-video-you/bnomihfieiccainjcjblhegjgglakjdd', + 'https://github.com/code4charity/YouTube-Extension' + ]; + + window.open(links[info.menuItemId]); + }); +} /*-------------------------------------------------------------- -4.0 MESSAGE LISTENER +# MESSAGE LISTENER --------------------------------------------------------------*/ -chrome.runtime.onMessage.addListener(function(request, sender) { +chrome.runtime.onMessage.addListener(function (request, sender) { if (typeof request === 'object') { if (request.name === 'translation_request') { - getTranslations(request.path); + getLocalization(request.path, function () { + if (chrome && chrome.tabs) { + chrome.tabs.query({}, function (tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + name: 'translation_response', + value: xhr.responseText + }); + } + } + }); + } + + chrome.runtime.sendMessage({ + name: 'translation_response', + value: xhr.responseText + }); + }); } if (request.name === 'improvedtube-only-one-player') { - chrome.tabs.query({}, function(tabs) { + chrome.tabs.query({}, function (tabs) { for (var i = 0, l = tabs.length; i < l; i++) { if (tabs[i].hasOwnProperty('url') && sender.tab.id !== tabs[i].id) { chrome.tabs.sendMessage(tabs[i].id, { @@ -116,7 +163,7 @@ chrome.runtime.onMessage.addListener(function(request, sender) { date = new Date().toDateString(), hours = new Date().getHours() + ':00'; - chrome.storage.local.get(function(items) { + chrome.storage.local.get(function (items) { if (!items.analyzer) { items.analyzer = {}; } @@ -142,7 +189,7 @@ chrome.runtime.onMessage.addListener(function(request, sender) { } if (request.name === 'improvedtube-blacklist') { - chrome.storage.local.get(function(items) { + chrome.storage.local.get(function (items) { if (!items.blacklist || typeof items.blacklist !== 'object') { items.blacklist = {}; } @@ -175,7 +222,7 @@ chrome.runtime.onMessage.addListener(function(request, sender) { } if (request.name === 'improvedtube-watched') { - chrome.storage.local.get(function(items) { + chrome.storage.local.get(function (items) { if (!items.watched || typeof items.watched !== 'object') { items.watched = {}; } @@ -200,7 +247,7 @@ chrome.runtime.onMessage.addListener(function(request, sender) { chrome.permissions.request({ permissions: ['downloads'], origins: ['https://www.youtube.com/*'] - }, function(granted) { + }, function (granted) { if (granted) { try { var blob = new Blob([JSON.stringify(request.value)], { @@ -228,7 +275,7 @@ chrome.runtime.onMessage.addListener(function(request, sender) { } if (request.name === 'improvedtube-play') { - chrome.tabs.query({}, function(tabs) { + chrome.tabs.query({}, function (tabs) { for (var i = 0, l = tabs.length; i < l; i++) { if (tabs[i].hasOwnProperty('url')) { chrome.tabs.sendMessage(tabs[i].id, { @@ -241,11 +288,11 @@ chrome.runtime.onMessage.addListener(function(request, sender) { } if (request.hasOwnProperty('export')) { - chrome.storage.local.get(function(data) { + chrome.storage.local.get(function (data) { chrome.permissions.request({ permissions: ['downloads'], origins: ['https://www.youtube.com/*'] - }, function(granted) { + }, function (granted) { if (granted) { var blob = new Blob([JSON.stringify(data)], { type: 'application/octet-stream' @@ -265,27 +312,18 @@ chrome.runtime.onMessage.addListener(function(request, sender) { }); -/*-------------------------------------------------------------- -5.0 STORAGE CHANGE LISTENER ---------------------------------------------------------------*/ - -chrome.storage.onChanged.addListener(function(changes) { - if (changes.hasOwnProperty('improvedtube_language')) { - locale_code = changes.improvedtube_language.newValue; - } -}); /*-------------------------------------------------------------- -6.0 TAB FOCUS/BLUR +# TAB FOCUS/BLUR --------------------------------------------------------------*/ -chrome.tabs.onActivated.addListener(function(activeInfo) { +chrome.tabs.onActivated.addListener(function (activeInfo) { chrome.tabs.sendMessage(activeInfo.tabId, { action: 'focus' }); - chrome.tabs.getAllInWindow(activeInfo.windowId, function(tabs) { + chrome.tabs.getAllInWindow(activeInfo.windowId, function (tabs) { if (tabs) { for (var i = 0, l = tabs.length; i < l; i++) { if (tabs[i].id !== activeInfo.tabId) { @@ -300,11 +338,11 @@ chrome.tabs.onActivated.addListener(function(activeInfo) { }); }); -chrome.windows.onFocusChanged.addListener(function(windowId) { - chrome.windows.getAll(function(windows) { +chrome.windows.onFocusChanged.addListener(function (windowId) { + chrome.windows.getAll(function (windows) { for (var i = 0, l = windows.length; i < l; i++) { if (windows[i].focused === true) { - chrome.tabs.getAllInWindow(windows[i].id, function(tabs) { + chrome.tabs.getAllInWindow(windows[i].id, function (tabs) { if (tabs) { for (var i = 0, l = tabs.length; i < l; i++) { if (tabs[i].active && tabs[i].hasOwnProperty('url')) { @@ -316,7 +354,7 @@ chrome.windows.onFocusChanged.addListener(function(windowId) { } }); } else { - chrome.tabs.getAllInWindow(windows[i].id, function(tabs) { + chrome.tabs.getAllInWindow(windows[i].id, function (tabs) { if (tabs) { for (var i = 0, l = tabs.length; i < l; i++) { if (tabs[i].hasOwnProperty('url')) { @@ -334,45 +372,42 @@ chrome.windows.onFocusChanged.addListener(function(windowId) { /*-------------------------------------------------------------- -7.0 UNINSTALL URL +# INITIALIZATION --------------------------------------------------------------*/ -chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); - - /*-------------------------------------------------------------- -8.0 GOOGLE ANALYTICS +# GET ITEMS FROM STORAGE --------------------------------------------------------------*/ -var _gaq = _gaq || []; - -chrome.storage.local.get(function(items) { - var ga = document.createElement('script'), - time = new Date().getTime(); - - _gaq.push(['_setAccount', 'UA-88354155-1']); - _gaq.push(['_setSessionCookieTimeout', 14400000]); +chrome.storage.local.get(function (storage) { + //googleAnalytics(items.ga); + //uninstallURL(); - ga.src = 'https://ssl.google-analytics.com/ga.js'; + getLocalization(storage.language, function (locale) { + updateContextMenu(locale); + }); +}); - document.body.appendChild(ga); - if (time - (items.ga || 0) >= 86400000) { - _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); +/*-------------------------------------------------------------- +# STORAGE CHANGE LISTENER +--------------------------------------------------------------*/ - chrome.storage.local.set({ - ga: time - }); +chrome.storage.onChanged.addListener(function (changes) { + if (changes.language) { + language = changes.language.newValue; } }); /*-------------------------------------------------------------- -9.0 INITIALIZATION +# MESSAGE LISTENER --------------------------------------------------------------*/ -chrome.storage.local.get(function(items) { - if (items.hasOwnProperty('improvedtube_language')) { - locale_code = items.improvedtube_language; +chrome.runtime.onMessage.addListener(function (request, sender) { + var name = request.name; + + if (true) { + } }); \ No newline at end of file diff --git a/fonts/Roboto-Light.ttf b/fonts/Roboto-Light.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0e977514ff6de041957632eabca77c2f59f6ea99 GIT binary patch literal 167000 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%0A>D@z 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 z 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 literal 0 HcmV?d00001 diff --git a/fonts/Roboto-Medium.ttf b/fonts/Roboto-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e89b0b79a2910f0ac309a1845a9f733bcb568792 GIT binary patch literal 168644 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 yL< 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 z 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 literal 0 HcmV?d00001 diff --git a/options.html b/options.html index 7347c97ab..0c76fb93d 100644 --- a/options.html +++ b/options.html @@ -5,17 +5,14 @@ ImprovedTube @@ -23,5 +20,21 @@ + \ No newline at end of file diff --git a/page.js b/page.js index adb0e0038..49500cf5d 100644 --- a/page.js +++ b/page.js @@ -1,4 +1,16 @@ document.addEventListener('DOMContentLoaded', function() { + var charset = document.createElement('meta'), + viewport = document.createElement('meta'), + title = document.createElement('title'), + style = document.createElement('style'); + + charset.setAttribute('charset', 'utf-8'); + viewport.setAttribute('name', 'viewport'); + viewport.setAttribute('content', 'width=device-width,initial-scale=1'); + + title.textContent = 'ImprovedTube'; + style.textContent = 'body{width:100vw;height:100vh}'; + for (var i = document.head.childNodes.length - 1; i > -1; i--) { document.head.childNodes[i].remove(); } @@ -6,4 +18,9 @@ document.addEventListener('DOMContentLoaded', function() { for (var i = document.body.childNodes.length - 1; i > -1; i--) { document.body.childNodes[i].remove(); } + + document.head.appendChild(charset); + document.head.appendChild(viewport); + document.head.appendChild(title); + document.head.appendChild(style); }); \ No newline at end of file diff --git a/popup.css b/popup.css index 39ee84a07..c535c9d60 100644 --- a/popup.css +++ b/popup.css @@ -10,19 +10,131 @@ # DOCUMENT --------------------------------------------------------------*/ -html { - --satus-theme-primary: #ff4158; +body { + font-family: sans-serif; + font-size: 14px; + overflow: hidden; + margin: 0; +} + +.satus-base { + --satus-primary: #ff4158; --satus-header-background: #fff; --satus-header-text: #777; - --satus-main-background: #f7f7f6; - --satus-main-text: #777; + --satus-layers-background: #f7f7f6; + --satus-layers-text: #777; + --satus-section-card-background: #fff; --satus-modal-background: #fff; --satus-modal-text: #777; + --satus-hover: rgba(0, 0, 0, .04); --it-category-background: linear-gradient(135deg, #ff4158, #ff001f); --it-category-shadow: rgba(222, 0, 27, .7); --it-appearance-shadow-color: #dfdfdf; } +.satus-base[theme=dark] { + --satus-primary: #ff4158; + --satus-header-background: #1c2027; + --satus-header-text: #b5b5b5; + --satus-layers-background: #121316; + --satus-layers-text: #bfbfbf; + --satus-section-card-background: #191b1f; + --satus-modal-background: #191b1f; + --satus-modal-text: #b5b5b5; + --satus-hover: rgba(255, 255, 255, .07); + --it-category-background: linear-gradient(135deg, #ff4158, #ff001f); + --it-category-shadow: rgba(222, 0, 27, .7); + --it-appearance-shadow-color: #393e46; +} + +.satus-base[theme=night] { + --satus-primary: #9ebdfa; + --satus-header-background: #24478f; + --satus-header-text: #fafafa; + --satus-layers-background: #142952; + --satus-layers-text: #fafafa; + --satus-section-card-background: #1f3d7a; + --satus-modal-background: #24478f; + --satus-modal-text: #fafafa; + --satus-hover: rgba(255, 255, 255, .07); + --it-category-background: linear-gradient(135deg, #2e5cb8, #234790); + --it-category-shadow: rgb(41, 82, 163, .7); + --it-appearance-shadow-color: #558bf6; +} + +.satus-base[theme=dawn] { + --satus-primary: #e2367e; + --satus-header-background: #e98f63; + --satus-header-text: #fafafa; + --satus-layers-background: #e23681; + --satus-layers-text: #eee; + --satus-section-card-background: rgb(255, 255, 255, .2); + --satus-modal-background: #ed8e5e; + --satus-modal-text: #fafafa; + --satus-hover: rgba(255, 255, 255, .07); + --it-category-background: linear-gradient(135deg, #e98f63, #e27036); + --it-category-shadow: rgb(226, 112, 54, .7); + --it-appearance-shadow-color: #e86e30; +} + +.satus-base[theme=sunset] { + --satus-primary: #cc666e; + --satus-header-background: #af5a5e; + --satus-header-text: #fafafa; + --satus-layers-background: #2f3364; + --satus-layers-text: #eee; + --satus-section-card-background: rgb(138, 92, 96, .5); + --satus-modal-background: #a96165; + --satus-modal-text: #fafafa; + --satus-hover: rgba(255, 255, 255, .07); + --it-category-background: linear-gradient(135deg, #e98f63, #e27036); + --it-category-shadow: rgb(226, 112, 54, .7); + --it-appearance-shadow-color: #e86e30; +} + +.satus-base[theme=desert] { + --satus-primary: #f83; + --satus-header-background: #8cb7f2; + --satus-header-text: #fafafa; + --satus-layers-background: #e6bf4c; + --satus-layers-text: #4d4d4d; + --satus-section-card-background: #f5e0a3; + --satus-modal-background: #8cb7f2; + --satus-modal-text: #fafafa; + --satus-hover: rgba(255, 255, 255, .07); + --it-category-background: linear-gradient(135deg, #f83, #d15700); + --it-category-shadow: rgb(230, 96, 0, .7); + --it-appearance-shadow-color: #5e9aed; +} + +.satus-base[theme=plain] { + --satus-primary: #badec9; + --satus-header-background: #9fc6af; + --satus-header-text: #404040; + --satus-layers-background: #dea975; + --satus-layers-text: #404040; + --satus-section-card-background: #e2b88d; + --satus-modal-background: #abceb8; + --satus-modal-text: #404040; + --satus-hover: rgba(255, 255, 255, .07); + --it-category-background: linear-gradient(135deg, #abceb8, #609f7a); + --it-category-shadow: #70a987b3; + --it-appearance-shadow-color: #d7995b; +} + +.satus-base[theme=black] { + --satus-primary: #ff4158; + --satus-header-background: #222; + --satus-header-text: #fafafa; + --satus-layers-background: #111; + --satus-layers-text: #eee; + --satus-section-card-background: #222; + --satus-modal-background: #222; + --satus-modal-text: #fafafa; + --satus-hover: rgba(255, 255, 255, .04); + --it-appearance-shadow-color: #222; +} + /*-------------------------------------------------------------- # HEADER @@ -155,9 +267,9 @@ html { .satus-modal--vertical .satus-button { display: flex; + height: 36px; padding: 0 16px; align-items: center; - height: 36px; } .satus-modal--vertical .satus-button svg { @@ -166,7 +278,14 @@ html { margin: 0 14px 0 0; opacity: .75; fill: none; - stroke: var(--satus-theme-primary); + stroke: var(--satus-primary); + flex: 0 0 20px; +} + +.satus-modal--vertical .satus-button .satus-span { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; } @@ -175,9 +294,9 @@ html { --------------------------------------------------------------*/ .satus-section--home { + position: relative; overflow: hidden; width: 100%; - position: relative; } .satus-section--home .satus-button { @@ -216,10 +335,12 @@ html { } .satus-section--home .satus-button> :nth-child(2) { - overflow: hidden; +overflow: hidden; margin: 8px 0 0; white-space: nowrap; text-overflow: ellipsis; + width: calc(100% - 32px); + text-align: center; } .satus-button--general svg { @@ -228,8 +349,8 @@ html { .satus-button--appearance svg { position: relative; - left: 1px; top: 1px; + left: 1px; } .satus-button--themes svg { @@ -238,8 +359,8 @@ html { .satus-button--player svg { position: relative; - left: 2px; top: 1px; + left: 2px; } .satus-button--playlist svg { @@ -382,31 +503,43 @@ html { # THEMES --------------------------------------------------------------*/ -.satus-section--themes .satus-switch { - font-weight: 600; - width: calc(100% - 16px); - max-width: 900px; +.satus-label--default-theme, +.satus-label--dark-theme, +.satus-label--night-theme, +.satus-label--dawn-theme, +.satus-label--sunset-theme, +.satus-label--desert-theme, +.satus-label--plain-theme, +.satus-label--black-theme { + display: flex; height: 80px; - margin: 8px auto; + margin: 8px; + cursor: pointer; color: #fff; border-radius: 8px; text-shadow: 0 1px 3px rgba(0, 0, 0, .7); + justify-content: space-between; + align-items: center; +} + +.satus-label--default-theme { + background: #f0f0f0; } -.satus-switch--dark { +.satus-label--dark-theme { position: relative; overflow: hidden; background: linear-gradient(#0d1216, #353d46) !important; } -.satus-switch--dark::before { +.satus-label--dark-theme::before { position: absolute; top: 0; left: 0; width: 100%; height: 100%; content: ''; - animation-name: satus-switch--dark; + animation-name: satus-label--dark-theme; animation-duration: 4s; animation-timing-function: ease-in-out; animation-iteration-count: infinite; @@ -418,7 +551,7 @@ html { filter: blur(8px); } -@keyframes satus-switch--dark { +@keyframes satus-label--dark-theme { 0% { background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; } @@ -430,10 +563,10 @@ html { } } -.satus-switch--night { +.satus-label--night-theme { position: relative; overflow: hidden; - animation-name: satus-switch--night; + animation-name: satus-label--night-theme; animation-duration: .75s; animation-iteration-count: infinite; background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5) !important; @@ -442,7 +575,7 @@ html { background-size: 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, auto !important; } -@keyframes satus-switch--night { +@keyframes satus-label--night-theme { 0% { background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); } @@ -460,20 +593,20 @@ html { } } -.satus-switch--dawn { +.satus-label--dawn-theme { position: relative; overflow: hidden; background: linear-gradient(#ed74a9, #ffba99) !important; } -.satus-switch--dawn::before { +.satus-slabel-dawn-theme::before { position: absolute; right: 1rem; bottom: -5rem; width: 10rem; height: 10rem; content: ''; - animation-name: satus-switch--dawn; + animation-name: satus-label--dawn-theme; animation-duration: .75s; animation-iteration-count: infinite; pointer-events: none; @@ -481,7 +614,7 @@ html { background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; } -@keyframes satus-switch--dawn { +@keyframes satus-label--dawn-theme { 0% { background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); } @@ -493,13 +626,13 @@ html { } } -.satus-switch--sunset { +.satus-label--sunset-theme { position: relative; overflow: hidden; background: linear-gradient(#2f3364, #a96165) !important; } -.satus-switch--sunset::before { +.satus-label--sunset-theme::before { position: absolute; top: -1rem; left: 50%; @@ -513,7 +646,7 @@ html { background: linear-gradient(#fa7965, #f56264, transparent) !important; } -.satus-switch--desert { +.satus-label--desert-theme { position: relative; overflow: hidden; background-image: radial-gradient(#ffe498 50%, transparent 50%), linear-gradient(#9dc2ee, #f5fdff) !important; @@ -522,14 +655,14 @@ html { background-size: 240%, 100% !important; } -.satus-switch--desert::before { +.satus-label--desert-theme::before { position: absolute; top: -100%; left: 40%; width: 10rem; height: 10rem; content: ''; - animation-name: satus-switch--desert; + animation-name: satus-label--desert-theme; animation-duration: .75s; animation-delay: .5s; animation-iteration-count: infinite; @@ -538,7 +671,7 @@ html { background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; } -@keyframes satus-switch--desert { +@keyframes satus-label--desert-theme { 0% { background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); } @@ -550,7 +683,7 @@ html { } } -.satus-switch--plain { +.satus-label--plain-theme { position: relative; overflow: hidden; background-image: radial-gradient(#dea975 50%, transparent 50%), radial-gradient(#e8b887 50%, transparent 50%), radial-gradient(#f1cc9f 50%, transparent 50%), radial-gradient(#f3ddb8 50%, transparent 50%), linear-gradient(#abceb8, #e7ede1) !important; @@ -559,14 +692,14 @@ html { background-size: 240%, 240%, 240%, 240%, 100% !important; } -.satus-switch--plain::before { +.satus-label--plain-theme::before { position: absolute; top: -70%; left: 10%; width: 7rem; height: 7rem; content: ''; - animation-name: satus-switch--plain; + animation-name: satus-label--plain-theme; animation-duration: .75s; animation-delay: .2s; animation-iteration-count: infinite; @@ -575,11 +708,89 @@ html { background: radial-gradient(#fff 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; } -.satus-switch--black { +.satus-label--black-theme { background: #000 !important; } +/*-------------------------------------------------------------- +# BLACKLIST +--------------------------------------------------------------*/ + +.satus-section.satus-section--blacklist { + position: relative; + overflow: hidden; + flex-direction: column; + width: calc(100% - 32px); + height: 116px; + margin: 8px 16px 0; + transition: opacity .25s; + opacity: 1; + border-radius: 10px; + background-color: #000; + background-position: center; + background-size: cover; + flex: unset; + align-items: flex-start; +} + +.satus-section.satus-section--blacklist.removing { + opacity: 0; +} + +.satus-section.satus-section--blacklist::before { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + margin: 0; + content: ''; + background: rgba(0, 0, 0, .5); +} + +.satus-section.satus-section--blacklist>.label { + font-size: 16px; + font-weight: 700; + position: absolute; + z-index: 1; + bottom: 28px; + text-transform: uppercase; + opacity: 1; + color: #fff; +} + +.satus-section.satus-section--blacklist::after { + position: absolute; + z-index: 1; + bottom: 16px; + left: 16px; + content: attr(data-label); + color: rgba(255, 255, 255, .5); +} + +.satus-section.satus-section--blacklist>.satus-section { + position: absolute; + z-index: 999; + bottom: 0; + visibility: hidden; + width: 100%; + margin: 0; + padding: 0; + transition: .15s; + opacity: 0; + border: none; + border-radius: 0; + background: rgba(255, 255, 255, .95); + justify-content: center; +} + +.satus-section.satus-section--blacklist:hover>.satus-section { + visibility: visible; + opacity: 1; +} + + /*-------------------------------------------------------------- # ANALYZER --------------------------------------------------------------*/ @@ -588,6 +799,7 @@ html { font-size: 13px; display: flex; box-sizing: border-box; + width: 100%; height: auto; margin: 16px 0 0; padding: 0 16px; @@ -605,11 +817,10 @@ html { .analyzer-container { box-sizing: border-box; + width: 100%; height: auto; margin: 8px 0 16px; padding: 16px; - background: var(--background-0) !important; - /* var --background-0 is not specified anywhere */ box-shadow: 0 0 2px rgba(0, 0, 0, .2); } @@ -704,6 +915,7 @@ html { color: #ff9800; } + /*-------------------------------------------------------------- # MIXER --------------------------------------------------------------*/ @@ -732,14 +944,14 @@ html { } .satus-section--mixer .satus-h1 { - color: #fff; - position: absolute; font-size: 14px; - text-shadow: 0 0 1px rgb(0,0,0,.4); + position: absolute; bottom: 0; left: 0; - transition: 200ms; margin: 16px; + transition: 200ms; + color: #fff; + text-shadow: 0 0 1px rgb(0, 0, 0, .4); } .satus-section--mixer:hover .satus-h1 { diff --git a/popup.html b/popup.html index 9a3f57e6a..6d79630a9 100644 --- a/popup.html +++ b/popup.html @@ -6,10 +6,11 @@ ImprovedTube @@ -18,5 +19,21 @@ + \ No newline at end of file diff --git a/popup.js b/popup.js index c9d1c275f..2198657fe 100644 --- a/popup.js +++ b/popup.js @@ -11,13 +11,16 @@ var skeleton = { component: 'base', + attr: { + 'theme': 'default' + }, header: { component: 'header', section_start: { component: 'section', - class: 'satus-section--align-start', + variant: 'align-start', back: { component: 'button', @@ -51,7 +54,7 @@ var skeleton = { }, section_end: { component: 'section', - class: 'satus-section--align-end', + variant: 'align-end', search_field: { component: 'input', @@ -90,7 +93,8 @@ var skeleton = { }); }, input: function (event) { - var value = this.value.trim(); + var self = this, + value = this.value.trim(); if (value.length > 0) { satus.search(value, skeleton, function (results) { @@ -129,7 +133,7 @@ var skeleton = { satus.render(skeleton, parent); } else { - satus.render(skeleton); + satus.render(skeleton, self.base); document.querySelector('.search-results .satus-modal__scrim').addEventListener('click', function () { var results = document.querySelector('.search-results'); @@ -227,29 +231,27 @@ var skeleton = { active_features: { component: 'button', on: { - click: function () { - var component = this; + click: { + component: 'section', + class: 'satus-section--card', + on: { + render: function () { + var component = this; - satus.search('', skeleton, function (results) { - var new_skeleton = { - component: 'section', - class: 'satus-section--card' - }; + satus.search('', skeleton, function (results) { + for (var key in results) { + var result = results[key], + value = satus.storage.get(key); - for (var key in results) { - var result = results[key], - value = satus.storage.get(key); + if (satus.isset(value) && value !== result.value) { + satus.render(result, component); + } + } + }); - if (satus.isset(value) && value !== result.value) { - new_skeleton[key] = result; - } + document.querySelector('.satus-modal__scrim').click(); } - - skeleton.layers.rendered.path.push(new_skeleton); - skeleton.layers.rendered.open(); - - document.querySelector('.satus-modal__scrim').click(); - }); + } } }, @@ -281,2068 +283,2067 @@ var skeleton = { settings: { component: 'button', on: { - click: function () { - skeleton.layers.rendered.path.push({ - section_1: { - component: 'section', - class: 'satus-section--card', + click: { + section_1: { + component: 'section', + class: 'satus-section--card', + on: { + render: function () { + document.querySelector('.satus-modal__scrim').click(); + } + }, - developer_options: { - component: 'button', - on: { - click: { - custom_js_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'customJs' - }, - custom_js_section: { - component: 'section', - class: 'satus-section--card', - custom_js: { - component: 'input', - attr: { - type: 'text' - }, - on: { - render: function () { - this.value = satus.storage.get('custom_js') || ''; - }, - input: function () { - satus.storage.set('custom_js', this.value); - } + developer_options: { + component: 'button', + on: { + click: { + custom_js_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'customJs' + }, + custom_js_section: { + component: 'section', + class: 'satus-section--card', + custom_js: { + component: 'input', + attr: { + type: 'text' + }, + on: { + render: function () { + this.value = satus.storage.get('custom_js') || ''; + }, + input: function () { + satus.storage.set('custom_js', this.value); } } - }, - custom_css_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'customCss' - }, - custom_css_section: { - component: 'section', - class: 'satus-section--card', - custom_css: { - component: 'input', - attr: { - type: 'text' - }, - on: { - render: function () { - this.value = satus.storage.get('custom_css') || ''; - }, - input: function () { - satus.storage.set('custom_css', this.value); - } + } + }, + custom_css_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'customCss' + }, + custom_css_section: { + component: 'section', + class: 'satus-section--card', + custom_css: { + component: 'input', + attr: { + type: 'text' + }, + on: { + render: function () { + this.value = satus.storage.get('custom_css') || ''; + }, + input: function () { + satus.storage.set('custom_css', this.value); } } - }, - google_api_key_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'googleApiKey' - }, - google_api_key_section: { - component: 'section', - class: 'satus-section--card', - google_api_key: { - component: 'input', - attr: { - type: 'text' - }, - on: { - render: function () { - this.value = typeof satus.storage.get('google-api-key') === 'string' && satus.storage.get('google-api-key').length > 0 ? satus.storage.get('google-api-key') : 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; - }, - input: function () { - satus.storage.set('google-api-key', typeof satus.storage.get('google-api-key') === 'string' && satus.storage.get('google-api-key').length > 0 ? satus.storage.get('google-api-key') : 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'); - } + } + }, + google_api_key_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'googleApiKey' + }, + google_api_key_section: { + component: 'section', + class: 'satus-section--card', + google_api_key: { + component: 'input', + attr: { + type: 'text' + }, + on: { + render: function () { + this.value = typeof satus.storage.get('google-api-key') === 'string' && satus.storage.get('google-api-key').length > 0 ? satus.storage.get('google-api-key') : 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; + }, + input: function () { + satus.storage.set('google-api-key', typeof satus.storage.get('google-api-key') === 'string' && satus.storage.get('google-api-key').length > 0 ? satus.storage.get('google-api-key') : 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'); } } } } + } + }, + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'currentColor' }, - svg: { - component: 'svg', + path: { + component: 'path', attr: { - viewBox: '0 0 24 24', - fill: 'currentColor' - }, - - path: { - component: 'path', - attr: { - d: 'M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z' - } + d: 'M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z' } - }, - label: { - component: 'span', - text: 'developerOptions' } }, + label: { + component: 'span', + text: 'developerOptions' + } }, + }, - section_2: { - component: 'section', - class: 'satus-section--card', + section_2: { + component: 'section', + class: 'satus-section--card', - appearance: { - component: 'button', - on: { - click: { - section_label_1: { - component: 'span', - class: 'satus-section--label', - text: 'general' - }, - section_1: { - component: 'section', - class: 'satus-section--card', - header: { - component: 'button', - text: 'header', - on: { - click: { - section: { - component: 'section', - class: 'satus-section--card', + appearance: { + component: 'button', + on: { + click: { + section_label_1: { + component: 'span', + class: 'satus-section--label', + text: 'general' + }, + section_1: { + component: 'section', + class: 'satus-section--card', + header: { + component: 'button', + text: 'header', + on: { + click: { + section: { + component: 'section', + class: 'satus-section--card', - title_version: { - component: 'switch', - text: 'version' - } + title_version: { + component: 'switch', + text: 'version' } } } - }, - home: { - component: 'button', - text: 'home', - on: { - click: { - section_1: { - component: 'section', - class: 'satus-section--card', - - improvedtube_home: { - component: 'select', - text: 'style', - options: [{ - text: 'bubbles', - value: 'bubbles' - }, { - text: 'list', - value: 'list' - }] - } + } + }, + home: { + component: 'button', + text: 'home', + on: { + click: { + section_1: { + component: 'section', + class: 'satus-section--card', + + improvedtube_home: { + component: 'select', + text: 'style', + options: [{ + text: 'bubbles', + value: 'bubbles' + }, { + text: 'list', + value: 'list' + }] + } + }, + section_label_2: { + component: 'span', + class: 'satus-section--label', + text: 'categories' + }, + section_2: { + component: 'section', + class: 'satus-section--card', + + it_general: { + component: 'switch', + text: 'general', + value: true }, - section_label_2: { - component: 'span', - class: 'satus-section--label', - text: 'categories' + it_appearance: { + component: 'switch', + text: 'appearance', + value: true }, - section_2: { - component: 'section', - class: 'satus-section--card', - - it_general: { - component: 'switch', - text: 'general', - value: true - }, - it_appearance: { - component: 'switch', - text: 'appearance', - value: true - }, - it_themes: { - component: 'switch', - text: 'themes', - value: true - }, - it_player: { - component: 'switch', - text: 'player', - value: true - }, - it_playlist: { - component: 'switch', - text: 'playlist', - value: true - }, - it_channel: { - component: 'switch', - text: 'channel', - value: true - }, - it_shortcuts: { - component: 'switch', - text: 'shortcuts', - value: true - }, - it_mixer: { - component: 'switch', - text: 'mixer', - value: true - }, - it_analyzer: { - component: 'switch', - text: 'analyzer', - value: true - }, - it_blacklist: { - component: 'switch', - text: 'blacklist', - value: true - } + it_themes: { + component: 'switch', + text: 'themes', + value: true + }, + it_player: { + component: 'switch', + text: 'player', + value: true + }, + it_playlist: { + component: 'switch', + text: 'playlist', + value: true + }, + it_channel: { + component: 'switch', + text: 'channel', + value: true + }, + it_shortcuts: { + component: 'switch', + text: 'shortcuts', + value: true + }, + it_mixer: { + component: 'switch', + text: 'mixer', + value: true + }, + it_analyzer: { + component: 'switch', + text: 'analyzer', + value: true + }, + it_blacklist: { + component: 'switch', + text: 'blacklist', + value: true } } } } + } + }, + section_label_2: { + component: 'span', + class: 'satus-section--label', + text: 'icons' + }, + section_2: { + component: 'section', + class: 'satus-section--card', + + improvedtube_youtube_icon: { + text: 'improvedtubeIconOnYoutube', + component: 'select', + options: [{ + text: 'disabled', + value: 'disabled' + }, { + text: 'youtubeHeaderLeft', + value: 'header_left' + }, { + text: 'youtubeHeaderRight', + value: 'header_right' + }, { + text: 'sidebar', + value: 'sidebar' + }, { + text: 'draggable', + value: 'draggable' + }, { + text: 'belowPlayer', + value: 'below_player' + }] }, - section_label_2: { - component: 'span', - class: 'satus-section--label', - text: 'icons' - }, - section_2: { - component: 'section', - class: 'satus-section--card', - - improvedtube_youtube_icon: { - text: 'improvedtubeIconOnYoutube', - component: 'select', - options: [{ - text: 'disabled', - value: 'disabled' - }, { - text: 'youtubeHeaderLeft', - value: 'header_left' - }, { - text: 'youtubeHeaderRight', - value: 'header_right' - }, { - text: 'sidebar', - value: 'sidebar' - }, { - text: 'draggable', - value: 'draggable' - }, { - text: 'belowPlayer', - value: 'below_player' - }] - }, - improvedtube_browser_icon: { - text: 'improvedtubeIconInBrowser', - component: 'select', - - options: [{ - text: 'onlyActiveOnYoutube', - value: 'youtube' - }, { - text: 'alwaysActive', - value: 'always' - }] - } + improvedtube_browser_icon: { + text: 'improvedtubeIconInBrowser', + component: 'select', + + options: [{ + text: 'onlyActiveOnYoutube', + value: 'youtube' + }, { + text: 'alwaysActive', + value: 'always' + }] } } + } + }, + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'currentColor' }, - svg: { - component: 'svg', + path: { + component: 'path', attr: { - viewBox: '0 0 24 24', - fill: 'currentColor' - }, - - path: { - component: 'path', - attr: { - d: 'M7 16c.6 0 1 .5 1 1a2 2 0 0 1-2 2h-.5a4 4 0 0 0 .5-2c0-.6.5-1 1-1M18.7 3a1 1 0 0 0-.7.3l-9 9 2.8 2.7 9-9c.3-.4.3-1 0-1.4l-1.4-1.3a1 1 0 0 0-.7-.3zM7 14a3 3 0 0 0-3 3c0 1.3-1.2 2-2 2 1 1.2 2.5 2 4 2a4 4 0 0 0 4-4 3 3 0 0 0-3-3z' - } + d: 'M7 16c.6 0 1 .5 1 1a2 2 0 0 1-2 2h-.5a4 4 0 0 0 .5-2c0-.6.5-1 1-1M18.7 3a1 1 0 0 0-.7.3l-9 9 2.8 2.7 9-9c.3-.4.3-1 0-1.4l-1.4-1.3a1 1 0 0 0-.7-.3zM7 14a3 3 0 0 0-3 3c0 1.3-1.2 2-2 2 1 1.2 2.5 2 4 2a4 4 0 0 0 4-4 3 3 0 0 0-3-3z' } - }, - label: { - component: 'span', - text: 'appearance' } }, - languages: { - component: 'button', - - on: { - click: { - section: { - component: 'section', - class: 'satus-section--card', - - language: { - text: 'improvedtubeLanguage', - component: 'select', - on: { - change: function (name, value) { - satus.memory.set('locale', {}); - - satus.locale(function () { - document.querySelector('.satus-main__container').innerHTML = ''; - - document.querySelector('.satus-header__title').innerText = satus.locale.getMessage('languages'); - document.querySelector('#search').placeholder = satus.locale.getMessage('search'); - - satus.render(document.querySelector('.satus-main__container'), skeleton.main.section.settings.section.languages); - }); - } + label: { + component: 'span', + text: 'appearance' + } + }, + languages: { + component: 'button', + + on: { + click: { + section: { + component: 'section', + class: 'satus-section--card', + + language: { + text: 'improvedtubeLanguage', + component: 'select', + on: { + change: function (name, value) { + satus.memory.set('locale', {}); + + satus.locale(function () { + document.querySelector('.satus-main__container').innerHTML = ''; + + document.querySelector('.satus-header__title').innerText = satus.locale.getMessage('languages'); + document.querySelector('#search').placeholder = satus.locale.getMessage('search'); + + satus.render(document.querySelector('.satus-main__container'), skeleton.main.section.settings.section.languages); + }); + } + }, + options: [{ + value: 'en', + text: 'English' + }, { + value: 'ko', + text: '한국어' + }, { + value: 'es', + text: 'Español (España)' + }, { + value: 'ru', + text: 'Русский' + }, { + value: 'de', + text: 'Deutsch' + }, { + value: 'zh_TW', + text: '中文 (繁體)' + }, { + value: 'pt_PT', + text: 'Português' + }, { + value: 'pt_BR', + text: 'Português (Brasil)' + }, { + value: 'zh_CN', + text: '中文 (简体)' + }, { + value: 'fr', + text: 'Français' + }, { + value: 'ja', + text: '日本語' + }, { + value: 'tr', + text: 'Türkçe' + }, { + value: 'tr', + text: 'Italiano' + }, { + value: 'nl', + text: 'Nederlands' + }, { + value: 'ar', + text: 'العربية' + }, { + value: 'id', + text: 'Bahasa Indonesia' + }, { + value: 'nb', + text: 'Norsk' + }, { + value: 'nb_NO', + text: 'Norsk (Bokmål)' + }, { + value: 'el', + text: 'Ελληνικά' + }, { + value: 'bn', + text: 'বাংলা' + }, { + value: 'hin', + text: 'हिन्दी' + }, { + value: 'sk', + text: 'Slovenčina' + }, { + value: 'pl', + text: 'Polski' + }] + }, + youtube_language: { + text: 'youtubeLanguage', + component: 'select', + options: [{ + value: 'default', + text: 'default' }, - options: [{ - value: 'en', - text: 'English' + { + value: "en", + text: "English" }, { - value: 'ko', - text: '한국어' + value: "es", + text: "Español (España)" }, { - value: 'es', - text: 'Español (España)' + value: "es-419", + text: "Español (Latinoamérica)" }, { - value: 'ru', - text: 'Русский' + value: "es-US", + text: "Español (US)" }, { - value: 'de', - text: 'Deutsch' + value: "ru", + text: "Русский" }, { - value: 'zh_TW', - text: '中文 (繁體)' + value: "de", + text: "Deutsch" }, { - value: 'pt_PT', - text: 'Português' + value: "pt-PT", + text: "Português" }, { - value: 'pt_BR', - text: 'Português (Brasil)' + value: "pt", + text: "Português (Brasil)" }, { - value: 'zh_CN', - text: '中文 (简体)' + value: "fr", + text: "Français" }, { - value: 'fr', - text: 'Français' + value: "pl", + text: "Polski" }, { - value: 'ja', - text: '日本語' + value: "ja", + text: "日本語" }, { - value: 'tr', - text: 'Türkçe' + value: "af", + text: "Afrikaans" }, { - value: 'tr', - text: 'Italiano' + value: "az", + text: "Azərbaycan" }, { - value: 'nl', - text: 'Nederlands' + value: "id", + text: "Bahasa Indonesia" }, { - value: 'ar', - text: 'العربية' + value: "ms", + text: "Bahasa Malaysia" }, { - value: 'id', - text: 'Bahasa Indonesia' + value: "bs", + text: "Bosanski" }, { - value: 'nb', - text: 'Norsk' + value: "ca", + text: "Català" }, { - value: 'nb_NO', - text: 'Norsk (Bokmål)' + value: "cs", + text: "Čeština" }, { - value: 'el', - text: 'Ελληνικά' + value: "da", + text: "Dansk" }, { - value: 'bn', - text: 'বাংলা' + value: "et", + text: "Eesti" }, { - value: 'hin', - text: 'हिन्दी' + value: "eu", + text: "Euskara" }, { - value: 'sk', - text: 'Slovenčina' + value: "fil", + text: "Filipino" }, { - value: 'pl', - text: 'Polski' - }] - }, - youtube_language: { - text: 'youtubeLanguage', - component: 'select', - options: [{ - value: 'default', - text: 'default' - }, - { - value: "en", - text: "English" - }, { - value: "es", - text: "Español (España)" - }, { - value: "es-419", - text: "Español (Latinoamérica)" - }, { - value: "es-US", - text: "Español (US)" - }, { - value: "ru", - text: "Русский" - }, { - value: "de", - text: "Deutsch" - }, { - value: "pt-PT", - text: "Português" - }, { - value: "pt", - text: "Português (Brasil)" - }, { - value: "fr", - text: "Français" - }, { - value: "pl", - text: "Polski" - }, { - value: "ja", - text: "日本語" - }, { - value: "af", - text: "Afrikaans" - }, { - value: "az", - text: "Azərbaycan" - }, { - value: "id", - text: "Bahasa Indonesia" - }, { - value: "ms", - text: "Bahasa Malaysia" - }, { - value: "bs", - text: "Bosanski" - }, { - value: "ca", - text: "Català" - }, { - value: "cs", - text: "Čeština" - }, { - value: "da", - text: "Dansk" - }, { - value: "et", - text: "Eesti" - }, { - value: "eu", - text: "Euskara" - }, { - value: "fil", - text: "Filipino" - }, { - value: "fr-CA", - text: "Français (Canada)" - }, { - value: "gl", - text: "Galego" - }, { - value: "hr", - text: "Hrvatski" - }, { - value: "zu", - text: "IsiZulu" - }, { - value: "is", - text: "Íslenska" - }, { - value: "it", - text: "Italiano" - }, { - value: "sw", - text: "Kiswahili" - }, { - value: "lv", - text: "Latviešu valoda" - }, { - value: "lt", - text: "Lietuvių" - }, { - value: "hu", - text: "Magyar" - }, { - value: "nl", - text: "Nederlands" - }, { - value: "no", - text: "Norsk" - }, { - value: "uz", - text: "O‘zbek" - }, { - value: "ro", - text: "Română" - }, { - value: "sq", - text: "Shqip" - }, { - value: "sk", - text: "Slovenčina" - }, { - value: "sl", - text: "Slovenščina" - }, { - value: "sr-Latn", - text: "Srpski" - }, { - value: "fi", - text: "Suomi" - }, { - value: "sv", - text: "Svenska" - }, { - value: "vi", - text: "Tiếng Việt" - }, { - value: "tr", - text: "Türkçe" - }, { - value: "be", - text: "Беларуская" - }, { - value: "bg", - text: "Български" - }, { - value: "ky", - text: "Кыргызча" - }, { - value: "kk", - text: "Қазақ Тілі" - }, { - value: "mk", - text: "Македонски" - }, { - value: "mn", - text: "Монгол" - }, { - value: "sr", - text: "Српски" - }, { - value: "uk", - text: "Українська" - }, { - value: "el", - text: "Ελληνικά" - }, { - value: "hy", - text: "Հայերեն" - }, { - value: "iw", - text: "עברית" - }, { - value: "ur", - text: "اردو" - }, { - value: "ar", - text: "العربية" - }, { - value: "fa", - text: "فارسی" - }, { - value: "ne", - text: "नेपाली" - }, { - value: "mr", - text: "मराठी" - }, { - value: "hi", - text: "हिन्दी" - }, { - value: "bn", - text: "বাংলা" - }, { - value: "pa", - text: "ਪੰਜਾਬੀ" - }, { - value: "gu", - text: "ગુજરાતી" - }, { - value: "ta", - text: "தமிழ்" - }, { - value: "te", - text: "తెలుగు" - }, { - value: "kn", - text: "ಕನ್ನಡ" - }, { - value: "ml", - text: "മലയാളം" - }, { - value: "si", - text: "සිංහල" - }, { - value: "th", - text: "ภาษาไทย" - }, { - value: "lo", - text: "ລາວ" - }, { - value: "my", - text: "ဗမာ" - }, { - value: "ka", - text: "ქართული" - }, { - value: "am", - text: "አማርኛ" - }, { - value: "km", - text: "ខ្មែរ" - }, { - value: "zh-CN", - text: "中文 (简体)" - }, { - value: "zh-TW", - text: "中文 (繁體)" - }, { - value: "zh-HK", - text: "中文 (香港)" - }, { - value: "ko", - text: "한국어" - } - ] - } + value: "fr-CA", + text: "Français (Canada)" + }, { + value: "gl", + text: "Galego" + }, { + value: "hr", + text: "Hrvatski" + }, { + value: "zu", + text: "IsiZulu" + }, { + value: "is", + text: "Íslenska" + }, { + value: "it", + text: "Italiano" + }, { + value: "sw", + text: "Kiswahili" + }, { + value: "lv", + text: "Latviešu valoda" + }, { + value: "lt", + text: "Lietuvių" + }, { + value: "hu", + text: "Magyar" + }, { + value: "nl", + text: "Nederlands" + }, { + value: "no", + text: "Norsk" + }, { + value: "uz", + text: "O‘zbek" + }, { + value: "ro", + text: "Română" + }, { + value: "sq", + text: "Shqip" + }, { + value: "sk", + text: "Slovenčina" + }, { + value: "sl", + text: "Slovenščina" + }, { + value: "sr-Latn", + text: "Srpski" + }, { + value: "fi", + text: "Suomi" + }, { + value: "sv", + text: "Svenska" + }, { + value: "vi", + text: "Tiếng Việt" + }, { + value: "tr", + text: "Türkçe" + }, { + value: "be", + text: "Беларуская" + }, { + value: "bg", + text: "Български" + }, { + value: "ky", + text: "Кыргызча" + }, { + value: "kk", + text: "Қазақ Тілі" + }, { + value: "mk", + text: "Македонски" + }, { + value: "mn", + text: "Монгол" + }, { + value: "sr", + text: "Српски" + }, { + value: "uk", + text: "Українська" + }, { + value: "el", + text: "Ελληνικά" + }, { + value: "hy", + text: "Հայերեն" + }, { + value: "iw", + text: "עברית" + }, { + value: "ur", + text: "اردو" + }, { + value: "ar", + text: "العربية" + }, { + value: "fa", + text: "فارسی" + }, { + value: "ne", + text: "नेपाली" + }, { + value: "mr", + text: "मराठी" + }, { + value: "hi", + text: "हिन्दी" + }, { + value: "bn", + text: "বাংলা" + }, { + value: "pa", + text: "ਪੰਜਾਬੀ" + }, { + value: "gu", + text: "ગુજરાતી" + }, { + value: "ta", + text: "தமிழ்" + }, { + value: "te", + text: "తెలుగు" + }, { + value: "kn", + text: "ಕನ್ನಡ" + }, { + value: "ml", + text: "മലയാളം" + }, { + value: "si", + text: "සිංහල" + }, { + value: "th", + text: "ภาษาไทย" + }, { + value: "lo", + text: "ລາວ" + }, { + value: "my", + text: "ဗမာ" + }, { + value: "ka", + text: "ქართული" + }, { + value: "am", + text: "አማርኛ" + }, { + value: "km", + text: "ខ្មែរ" + }, { + value: "zh-CN", + text: "中文 (简体)" + }, { + value: "zh-TW", + text: "中文 (繁體)" + }, { + value: "zh-HK", + text: "中文 (香港)" + }, { + value: "ko", + text: "한국어" + } + ] } } + } + }, + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'currentColor' }, - svg: { - component: 'svg', + path: { + component: 'path', attr: { - viewBox: '0 0 24 24', - fill: 'currentColor' - }, - - path: { - component: 'path', - attr: { - d: 'M12.9 15l-2.6-2.4c1.8-2 3-4.2 3.8-6.6H17V4h-7V2H8v2H1v2h11.2c-.7 2-1.8 3.8-3.2 5.3-1-1-1.7-2.1-2.3-3.3h-2c.7 1.6 1.7 3.2 3 4.6l-5.1 5L4 19l5-5 3.1 3.1.8-2zm5.6-5h-2L12 22h2l1.1-3H20l1.1 3h2l-4.5-12zm-2.6 7l1.6-4.3 1.6 4.3H16z' - } + d: 'M12.9 15l-2.6-2.4c1.8-2 3-4.2 3.8-6.6H17V4h-7V2H8v2H1v2h11.2c-.7 2-1.8 3.8-3.2 5.3-1-1-1.7-2.1-2.3-3.3h-2c.7 1.6 1.7 3.2 3 4.6l-5.1 5L4 19l5-5 3.1 3.1.8-2zm5.6-5h-2L12 22h2l1.1-3H20l1.1 3h2l-4.5-12zm-2.6 7l1.6-4.3 1.6 4.3H16z' } - }, - label: { - component: 'span', - text: 'languages' } }, - backup_and_reset: { - component: 'button', - - on: { - click: { - section: { - component: 'section', - class: 'satus-section--card', - - import_settings: { - component: 'button', - text: 'importSettings', - on: { - click: function () { - if (location.href.indexOf('/popup.html?action=import') !== -1) { - importData(); - } else { - chrome.tabs.create({ - url: 'popup.html?action=import' - }); - } + label: { + component: 'span', + text: 'languages' + } + }, + backup_and_reset: { + component: 'button', + + on: { + click: { + section: { + component: 'section', + class: 'satus-section--card', + + import_settings: { + component: 'button', + text: 'importSettings', + on: { + click: function () { + if (location.href.indexOf('/popup.html?action=import') !== -1) { + importData(); + } else { + chrome.tabs.create({ + url: 'popup.html?action=import' + }); } } - }, - export_settings: { - component: 'button', - text: 'exportSettings', - - on: { - click: function () { - if (location.href.indexOf('/index.html?action=export') !== -1) { - exportData(); - } else { - chrome.tabs.create({ - url: 'index.html?action=export' - }); - } + } + }, + export_settings: { + component: 'button', + text: 'exportSettings', + + on: { + click: function () { + if (location.href.indexOf('/index.html?action=export') !== -1) { + exportData(); + } else { + chrome.tabs.create({ + url: 'index.html?action=export' + }); } } - }, - reset_all_settings: { - component: 'button', - text: 'resetAllSettings', - on: { - click: function () { - satus.render({ - component: 'modal', - class: 'satus-modal--confirm', - - message: { - component: 'span', - text: 'thisWillResetAllSettings' - }, - section: { - component: 'section', - class: 'controls', - - cancel: { - component: 'button', - text: 'cancel', - onclick: function () { - var scrim = document.querySelectorAll('.satus-modal__scrim'); + } + }, + reset_all_settings: { + component: 'button', + text: 'resetAllSettings', + on: { + click: function () { + satus.render({ + component: 'modal', + class: 'satus-modal--confirm', + + message: { + component: 'span', + text: 'thisWillResetAllSettings' + }, + section: { + component: 'section', + class: 'controls', - scrim[scrim.length - 1].click(); - } - }, - accept: { - component: 'button', - text: 'accept', - onclick: function () { - var scrim = document.querySelectorAll('.satus-modal__scrim'); + cancel: { + component: 'button', + text: 'cancel', + onclick: function () { + var scrim = document.querySelectorAll('.satus-modal__scrim'); + + scrim[scrim.length - 1].click(); + } + }, + accept: { + component: 'button', + text: 'accept', + onclick: function () { + var scrim = document.querySelectorAll('.satus-modal__scrim'); - satus.storage.clear(); + satus.storage.clear(); - location.reload(); + location.reload(); - scrim[scrim.length - 1].click(); - } + scrim[scrim.length - 1].click(); } } - }); - } + } + }); } - }, - delete_youtube_cookies: { - component: 'button', - text: 'deleteYoutubeCookies', - - on: { - click: function () { - satus.render({ - component: 'modal', - class: 'satus-modal--confirm', - - message: { - component: 'span', - text: 'thisWillRemoveAllYouTubeCookies', - style: { - 'width': '100%', - 'opacity': '.8' - } - }, - section: { - component: 'section', - class: 'controls', - style: { - 'justify-content': 'flex-end', - 'display': 'flex' - }, - - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - var scrim = document.querySelectorAll('.satus-modal__scrim'); + } + }, + delete_youtube_cookies: { + component: 'button', + text: 'deleteYoutubeCookies', - scrim[scrim.length - 1].click(); - } + on: { + click: function () { + satus.render({ + component: 'modal', + class: 'satus-modal--confirm', + + message: { + component: 'span', + text: 'thisWillRemoveAllYouTubeCookies', + style: { + 'width': '100%', + 'opacity': '.8' + } + }, + section: { + component: 'section', + class: 'controls', + style: { + 'justify-content': 'flex-end', + 'display': 'flex' + }, + + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + var scrim = document.querySelectorAll('.satus-modal__scrim'); + + scrim[scrim.length - 1].click(); } - }, - accept: { - component: 'button', - text: 'accept', - on: { - click: function () { - var scrim = document.querySelectorAll('.satus-modal__scrim'); - - chrome.tabs.query({}, function (tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - name: 'delete_youtube_cookies' - }); - } + } + }, + accept: { + component: 'button', + text: 'accept', + on: { + click: function () { + var scrim = document.querySelectorAll('.satus-modal__scrim'); + + chrome.tabs.query({}, function (tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + name: 'delete_youtube_cookies' + }); } - }); + } + }); - scrim[scrim.length - 1].click(); - } + scrim[scrim.length - 1].click(); } } } - }); - } + } + }); } } } } + } + }, + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'currentColor' }, - svg: { - component: 'svg', + path: { + component: 'path', attr: { - viewBox: '0 0 24 24', - fill: 'currentColor' - }, - - path: { - component: 'path', - attr: { - d: 'M13.3 3A9 9 0 0 0 4 12H2.2c-.5 0-.7.5-.3.8l2.7 2.8c.2.2.6.2.8 0L8 12.8c.4-.3.1-.8-.3-.8H6a7 7 0 1 1 2.7 5.5 1 1 0 0 0-1.3.1 1 1 0 0 0 0 1.5A9 9 0 0 0 22 11.7C22 7 18 3.1 13.4 3zm-.6 5c-.4 0-.7.3-.7.8v3.6c0 .4.2.7.5.9l3.1 1.8c.4.2.8.1 1-.2.2-.4.1-.8-.2-1l-3-1.8V8.7c0-.4-.2-.7-.7-.7z' - } + d: 'M13.3 3A9 9 0 0 0 4 12H2.2c-.5 0-.7.5-.3.8l2.7 2.8c.2.2.6.2.8 0L8 12.8c.4-.3.1-.8-.3-.8H6a7 7 0 1 1 2.7 5.5 1 1 0 0 0-1.3.1 1 1 0 0 0 0 1.5A9 9 0 0 0 22 11.7C22 7 18 3.1 13.4 3zm-.6 5c-.4 0-.7.3-.7.8v3.6c0 .4.2.7.5.9l3.1 1.8c.4.2.8.1 1-.2.2-.4.1-.8-.2-1l-3-1.8V8.7c0-.4-.2-.7-.7-.7z' } - }, - label: { - component: 'span', - text: 'backupAndReset' } }, - date_and_time: { - component: 'button', - - on: { - click: { - section: { - component: 'section', - class: 'satus-section--card', - - use_24_hour_format: { - component: 'switch', - text: 'use24HourFormat', - value: true - } + label: { + component: 'span', + text: 'backupAndReset' + } + }, + date_and_time: { + component: 'button', + + on: { + click: { + section: { + component: 'section', + class: 'satus-section--card', + + use_24_hour_format: { + component: 'switch', + text: 'use24HourFormat', + value: true } } + } + }, + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'currentColor' }, - svg: { - component: 'svg', + path: { + component: 'path', attr: { - viewBox: '0 0 24 24', - fill: 'currentColor' - }, - - path: { - component: 'path', - attr: { - d: 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm-.2-13c-.5 0-.8.3-.8.7v4.7c0 .4.2.7.5.9l4.1 2.5c.4.2.8 0 1-.3.2-.3.1-.7-.2-1l-3.9-2.2V7.7c0-.4-.3-.7-.7-.7z' - } + d: 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm-.2-13c-.5 0-.8.3-.8.7v4.7c0 .4.2.7.5.9l4.1 2.5c.4.2.8 0 1-.3.2-.3.1-.7-.2-1l-3.9-2.2V7.7c0-.4-.3-.7-.7-.7z' } - }, - label: { - component: 'span', - text: 'dateAndTime' } }, - location: { - component: 'button', - - on: { - click: { - section: { - component: 'section', - class: 'satus-section--card', - - default_content_country: { - component: 'select', - text: 'defaultContentCountry', - - options: [{ - text: "default", - value: "default" - }, - { - text: "Afghanistan", - value: "AF" - }, - { - text: "Albania", - value: "AL" - }, - { - text: "Algeria", - value: "DZ" - }, - { - text: "American Samoa", - value: "AS" - }, - { - text: "Andorra", - value: "AD" - }, - { - text: "Angola", - value: "AO" - }, - { - text: "Anguilla", - value: "AI" - }, - { - text: "Antarctica", - value: "AQ" - }, - { - text: "Antigua and Barbuda", - value: "AG" - }, - { - text: "Argentina", - value: "AR" - }, - { - text: "Armenia", - value: "AM" - }, - { - text: "Aruba", - value: "AW" - }, - { - text: "Australia", - value: "AU" - }, - { - text: "Austria", - value: "AT" - }, - { - text: "Azerbaijan", - value: "AZ" - }, - { - text: "Bahrain", - value: "BH" - }, - { - text: "Bailiwick of Guernsey", - value: "GG" - }, - { - text: "Bangladesh", - value: "BD" - }, - { - text: "Barbados", - value: "BB" - }, - { - text: "Belarus", - value: "BY" - }, - { - text: "Belgium", - value: "BE" - }, - { - text: "Belize", - value: "BZ" - }, - { - text: "Benin", - value: "BJ" - }, - { - text: "Bermuda", - value: "BM" - }, - { - text: "Bhutan", - value: "BT" - }, - { - text: "Bolivia", - value: "BO" - }, - { - text: "Bonaire", - value: "BQ" - }, - { - text: "Bosnia and Herzegovina", - value: "BA" - }, - { - text: "Botswana", - value: "BW" - }, - { - text: "Bouvet Island", - value: "BV" - }, - { - text: "Brazil", - value: "BR" - }, - { - text: "British Indian Ocean Territory", - value: "IO" - }, - { - text: "British Virgin Islands", - value: "VG" - }, - { - text: "Brunei", - value: "BN" - }, - { - text: "Bulgaria", - value: "BG" - }, - { - text: "Burkina Faso", - value: "BF" - }, - { - text: "Burundi", - value: "BI" - }, - { - text: "Cambodia", - value: "KH" - }, - { - text: "Cameroon", - value: "CM" - }, - { - text: "Canada", - value: "CA" - }, - { - text: "Cape Verde", - value: "CV" - }, - { - text: "Cayman Islands", - value: "KY" - }, - { - text: "Central African Republic", - value: "CF" - }, - { - text: "Chad", - value: "TD" - }, - { - text: "Chile", - value: "CL" - }, - { - text: "China", - value: "CN" - }, - { - text: "Christmas Island", - value: "CX" - }, - { - text: "Cocos (Keeling) Islands", - value: "CC" - }, - { - text: "Collectivity of Saint Martin", - value: "MF" - }, - { - text: "Colombia", - value: "CO" - }, - { - text: "Comoros", - value: "KM" - }, - { - text: "Cook Islands", - value: "CK" - }, - { - text: "Costa Rica", - value: "CR" - }, - { - text: "Croatia", - value: "HR" - }, - { - text: "Cuba", - value: "CU" - }, - { - text: "Curaçao", - value: "CW" - }, - { - text: "Cyprus", - value: "CY" - }, - { - text: "Czech Republic", - value: "CZ" - }, - { - text: "Democratic Republic of the Congo", - value: "CD" - }, - { - text: "Denmark", - value: "DK" - }, - { - text: "Djibouti", - value: "DJ" - }, - { - text: "Dominica", - value: "DM" - }, - { - text: "Dominican Republic", - value: "DO" - }, - { - text: "East Timor", - value: "TL" - }, - { - text: "Ecuador", - value: "EC" - }, - { - text: "Egypt", - value: "EG" - }, - { - text: "El Salvador", - value: "SV" - }, - { - text: "Equatorial Guinea", - value: "GQ" - }, - { - text: "Eritrea", - value: "ER" - }, - { - text: "Estonia", - value: "EE" - }, - { - text: "Eswatini", - value: "SZ" - }, - { - text: "Ethiopia", - value: "ET" - }, - { - text: "Falkland Islands", - value: "FK" - }, - { - text: "Faroe Islands", - value: "FO" - }, - { - text: "Federated States of Micronesia", - value: "FM" - }, - { - text: "Fiji", - value: "FJ" - }, - { - text: "Finland", - value: "FI" - }, - { - text: "France", - value: "FR" - }, - { - text: "French Guiana", - value: "GF" - }, - { - text: "French Polynesia", - value: "PF" - }, - { - text: "French Southern and Antarctic Lands", - value: "TF" - }, - { - text: "Gabon", - value: "GA" - }, - { - text: "Georgia (country)", - value: "GE" - }, - { - text: "Germany", - value: "DE" - }, - { - text: "Ghana", - value: "GH" - }, - { - text: "Gibraltar", - value: "GI" - }, - { - text: "Greece", - value: "GR" - }, - { - text: "Greenland", - value: "GL" - }, - { - text: "Grenada", - value: "GD" - }, - { - text: "Guadeloupe", - value: "GP" - }, - { - text: "Guam", - value: "GU" - }, - { - text: "Guatemala", - value: "GT" - }, - { - text: "Guinea", - value: "GN" - }, - { - text: "Guinea-Bissau", - value: "GW" - }, - { - text: "Guyana", - value: "GY" - }, - { - text: "Haiti", - value: "HT" - }, - { - text: "Heard Island and McDonald Islands", - value: "HM" - }, - { - text: "Holy See", - value: "VA" - }, - { - text: "Honduras", - value: "HN" - }, - { - text: "Hong Kong", - value: "HK" - }, - { - text: "Hungary", - value: "HU" - }, - { - text: "Iceland", - value: "IS" - }, - { - text: "India", - value: "IN" - }, - { - text: "Indonesia", - value: "ID" - }, - { - text: "Iran", - value: "IR" - }, - { - text: "Iraq", - value: "IQ" - }, - { - text: "Isle of Man", - value: "IM" - }, - { - text: "Israel", - value: "IL" - }, - { - text: "Italy", - value: "IT" - }, - { - text: "Ivory Coast", - value: "CI" - }, - { - text: "Jamaica", - value: "JM" - }, - { - text: "Japan", - value: "JP" - }, - { - text: "Jersey", - value: "JE" - }, - { - text: "Jordan", - value: "JO" - }, - { - text: "Kazakhstan", - value: "KZ" - }, - { - text: "Kenya", - value: "KE" - }, - { - text: "Kiribati", - value: "KI" - }, - { - text: "Kuwait", - value: "KW" - }, - { - text: "Kyrgyzstan", - value: "KG" - }, - { - text: "Laos", - value: "LA" - }, - { - text: "Latvia", - value: "LV" - }, - { - text: "Lebanon", - value: "LB" - }, - { - text: "Lesotho", - value: "LS" - }, - { - text: "Liberia", - value: "LR" - }, - { - text: "Libya", - value: "LY" - }, - { - text: "Liechtenstein", - value: "LI" - }, - { - text: "Lithuania", - value: "LT" - }, - { - text: "Luxembourg", - value: "LU" - }, - { - text: "Macau", - value: "MO" - }, - { - text: "Madagascar", - value: "MG" - }, - { - text: "Malawi", - value: "MW" - }, - { - text: "Malaysia", - value: "MY" - }, - { - text: "Maldives", - value: "MV" - }, - { - text: "Mali", - value: "ML" - }, - { - text: "Malta", - value: "MT" - }, - { - text: "Marshall Islands", - value: "MH" - }, - { - text: "Martinique", - value: "MQ" - }, - { - text: "Mauritania", - value: "MR" - }, - { - text: "Mauritius", - value: "MU" - }, - { - text: "Mayotte", - value: "YT" - }, - { - text: "Mexico", - value: "MX" - }, - { - text: "Moldova", - value: "MD" - }, - { - text: "Monaco", - value: "MC" - }, - { - text: "Mongolia", - value: "MN" - }, - { - text: "Montenegro", - value: "ME" - }, - { - text: "Montserrat", - value: "MS" - }, - { - text: "Morocco", - value: "MA" - }, - { - text: "Mozambique", - value: "MZ" - }, - { - text: "Myanmar", - value: "MM" - }, - { - text: "Namibia", - value: "NA" - }, - { - text: "Nauru", - value: "NR" - }, - { - text: "Nepal", - value: "NP" - }, - { - text: "Netherlands", - value: "NL" - }, - { - text: "New Caledonia", - value: "NC" - }, - { - text: "New Zealand", - value: "NZ" - }, - { - text: "Nicaragua", - value: "NI" - }, - { - text: "Niger", - value: "NE" - }, - { - text: "Nigeria", - value: "NG" - }, - { - text: "Niue", - value: "NU" - }, - { - text: "Norfolk Island", - value: "NF" - }, - { - text: "North Korea", - value: "KP" - }, - { - text: "North Macedonia", - value: "MK" - }, - { - text: "Northern Mariana Islands", - value: "MP" - }, - { - text: "Norway", - value: "NO" - }, - { - text: "Oman", - value: "OM" - }, - { - text: "Pakistan", - value: "PK" - }, - { - text: "Palau", - value: "PW" - }, - { - text: "Panama", - value: "PA" - }, - { - text: "Papua New Guinea", - value: "PG" - }, - { - text: "Paraguay", - value: "PY" - }, - { - text: "Peru", - value: "PE" - }, - { - text: "Philippines", - value: "PH" - }, - { - text: "Pitcairn Islands", - value: "PN" - }, - { - text: "Poland", - value: "PL" - }, - { - text: "Portugal", - value: "PT" - }, - { - text: "Puerto Rico", - value: "PR" - }, - { - text: "Qatar", - value: "QA" - }, - { - text: "Republic of Ireland", - value: "IE" - }, - { - text: "Republic of the Congo", - value: "CG" - }, - { - text: "Romania", - value: "RO" - }, - { - text: "Russia", - value: "RU" - }, - { - text: "Rwanda", - value: "RW" - }, - { - text: "Réunion", - value: "RE" - }, - { - text: "Saint Barthélemy", - value: "BL" - }, - { - text: "Saint Helena", - value: "SH" - }, - { - text: "Saint Kitts and Nevis", - value: "KN" - }, - { - text: "Saint Lucia", - value: "LC" - }, - { - text: "Saint Pierre and Miquelon", - value: "PM" - }, - { - text: "Saint Vincent and the Grenadines", - value: "VC" - }, - { - text: "Samoa", - value: "WS" - }, - { - text: "San Marino", - value: "SM" - }, - { - text: "Saudi Arabia", - value: "SA" - }, - { - text: "Senegal", - value: "SN" - }, - { - text: "Serbia", - value: "RS" - }, - { - text: "Seychelles", - value: "SC" - }, - { - text: "Sierra Leone", - value: "SL" - }, - { - text: "Singapore", - value: "SG" - }, - { - text: "Sint Maarten", - value: "SX" - }, - { - text: "Slovakia", - value: "SK" - }, - { - text: "Slovenia", - value: "SI" - }, - { - text: "Solomon Islands", - value: "SB" - }, - { - text: "Somalia", - value: "SO" - }, - { - text: "South Africa", - value: "ZA" - }, - { - text: "South Georgia and the South Sandwich Islands", - value: "GS" - }, - { - text: "South Korea", - value: "KR" - }, - { - text: "South Sudan", - value: "SS" - }, - { - text: "Spain", - value: "ES" - }, - { - text: "Sri Lanka", - value: "LK" - }, - { - text: "State of Palestine", - value: "PS" - }, - { - text: "Sudan", - value: "SD" - }, - { - text: "Suriname", - value: "SR" - }, - { - text: "Svalbard", - value: "SJ" - }, - { - text: "Sweden", - value: "SE" - }, - { - text: "Switzerland", - value: "CH" - }, - { - text: "Syria", - value: "SY" - }, - { - text: "São Tomé and Príncipe", - value: "ST" - }, - { - text: "Taiwan", - value: "TW" - }, - { - text: "Tajikistan", - value: "TJ" - }, - { - text: "Tanzania", - value: "TZ" - }, - { - text: "Thailand", - value: "TH" - }, - { - text: "The Bahamas", - value: "BS" - }, - { - text: "The Gambia", - value: "GM" - }, - { - text: "Togo", - value: "TG" - }, - { - text: "Tokelau", - value: "TK" - }, - { - text: "Tonga", - value: "TO" - }, - { - text: "Trinidad and Tobago", - value: "TT" - }, - { - text: "Tunisia", - value: "TN" - }, - { - text: "Turkey", - value: "TR" - }, - { - text: "Turkmenistan", - value: "TM" - }, - { - text: "Turks and Caicos Islands", - value: "TC" - }, - { - text: "Tuvalu", - value: "TV" - }, - { - text: "Uganda", - value: "UG" - }, - { - text: "Ukraine", - value: "UA" - }, - { - text: "United Arab Emirates", - value: "AE" - }, - { - text: "United Kingdom", - value: "GB" - }, - { - text: "United States Virgin Islands", - value: "VI" - }, - { - text: "United States", - value: "UM" - }, - { - text: "United States", - value: "US" - }, - { - text: "Uruguay", - value: "UY" - }, - { - text: "Uzbekistan", - value: "UZ" - }, - { - text: "Vanuatu", - value: "VU" - }, - { - text: "Venezuela", - value: "VE" - }, - { - text: "Vietnam", - value: "VN" - }, - { - text: "Wallis and Futuna", - value: "WF" - }, - { - text: "Western Sahara", - value: "EH" - }, - { - text: "Yemen", - value: "YE" - }, - { - text: "Zambia", - value: "ZM" - }, - { - text: "Zimbabwe", - value: "ZW" - }, - { - text: "Åland Islands", - value: "AX" - } - ] - } + label: { + component: 'span', + text: 'dateAndTime' + } + }, + location: { + component: 'button', + + on: { + click: { + section: { + component: 'section', + class: 'satus-section--card', + + default_content_country: { + component: 'select', + text: 'defaultContentCountry', + + options: [{ + text: "default", + value: "default" + }, + { + text: "Afghanistan", + value: "AF" + }, + { + text: "Albania", + value: "AL" + }, + { + text: "Algeria", + value: "DZ" + }, + { + text: "American Samoa", + value: "AS" + }, + { + text: "Andorra", + value: "AD" + }, + { + text: "Angola", + value: "AO" + }, + { + text: "Anguilla", + value: "AI" + }, + { + text: "Antarctica", + value: "AQ" + }, + { + text: "Antigua and Barbuda", + value: "AG" + }, + { + text: "Argentina", + value: "AR" + }, + { + text: "Armenia", + value: "AM" + }, + { + text: "Aruba", + value: "AW" + }, + { + text: "Australia", + value: "AU" + }, + { + text: "Austria", + value: "AT" + }, + { + text: "Azerbaijan", + value: "AZ" + }, + { + text: "Bahrain", + value: "BH" + }, + { + text: "Bailiwick of Guernsey", + value: "GG" + }, + { + text: "Bangladesh", + value: "BD" + }, + { + text: "Barbados", + value: "BB" + }, + { + text: "Belarus", + value: "BY" + }, + { + text: "Belgium", + value: "BE" + }, + { + text: "Belize", + value: "BZ" + }, + { + text: "Benin", + value: "BJ" + }, + { + text: "Bermuda", + value: "BM" + }, + { + text: "Bhutan", + value: "BT" + }, + { + text: "Bolivia", + value: "BO" + }, + { + text: "Bonaire", + value: "BQ" + }, + { + text: "Bosnia and Herzegovina", + value: "BA" + }, + { + text: "Botswana", + value: "BW" + }, + { + text: "Bouvet Island", + value: "BV" + }, + { + text: "Brazil", + value: "BR" + }, + { + text: "British Indian Ocean Territory", + value: "IO" + }, + { + text: "British Virgin Islands", + value: "VG" + }, + { + text: "Brunei", + value: "BN" + }, + { + text: "Bulgaria", + value: "BG" + }, + { + text: "Burkina Faso", + value: "BF" + }, + { + text: "Burundi", + value: "BI" + }, + { + text: "Cambodia", + value: "KH" + }, + { + text: "Cameroon", + value: "CM" + }, + { + text: "Canada", + value: "CA" + }, + { + text: "Cape Verde", + value: "CV" + }, + { + text: "Cayman Islands", + value: "KY" + }, + { + text: "Central African Republic", + value: "CF" + }, + { + text: "Chad", + value: "TD" + }, + { + text: "Chile", + value: "CL" + }, + { + text: "China", + value: "CN" + }, + { + text: "Christmas Island", + value: "CX" + }, + { + text: "Cocos (Keeling) Islands", + value: "CC" + }, + { + text: "Collectivity of Saint Martin", + value: "MF" + }, + { + text: "Colombia", + value: "CO" + }, + { + text: "Comoros", + value: "KM" + }, + { + text: "Cook Islands", + value: "CK" + }, + { + text: "Costa Rica", + value: "CR" + }, + { + text: "Croatia", + value: "HR" + }, + { + text: "Cuba", + value: "CU" + }, + { + text: "Curaçao", + value: "CW" + }, + { + text: "Cyprus", + value: "CY" + }, + { + text: "Czech Republic", + value: "CZ" + }, + { + text: "Democratic Republic of the Congo", + value: "CD" + }, + { + text: "Denmark", + value: "DK" + }, + { + text: "Djibouti", + value: "DJ" + }, + { + text: "Dominica", + value: "DM" + }, + { + text: "Dominican Republic", + value: "DO" + }, + { + text: "East Timor", + value: "TL" + }, + { + text: "Ecuador", + value: "EC" + }, + { + text: "Egypt", + value: "EG" + }, + { + text: "El Salvador", + value: "SV" + }, + { + text: "Equatorial Guinea", + value: "GQ" + }, + { + text: "Eritrea", + value: "ER" + }, + { + text: "Estonia", + value: "EE" + }, + { + text: "Eswatini", + value: "SZ" + }, + { + text: "Ethiopia", + value: "ET" + }, + { + text: "Falkland Islands", + value: "FK" + }, + { + text: "Faroe Islands", + value: "FO" + }, + { + text: "Federated States of Micronesia", + value: "FM" + }, + { + text: "Fiji", + value: "FJ" + }, + { + text: "Finland", + value: "FI" + }, + { + text: "France", + value: "FR" + }, + { + text: "French Guiana", + value: "GF" + }, + { + text: "French Polynesia", + value: "PF" + }, + { + text: "French Southern and Antarctic Lands", + value: "TF" + }, + { + text: "Gabon", + value: "GA" + }, + { + text: "Georgia (country)", + value: "GE" + }, + { + text: "Germany", + value: "DE" + }, + { + text: "Ghana", + value: "GH" + }, + { + text: "Gibraltar", + value: "GI" + }, + { + text: "Greece", + value: "GR" + }, + { + text: "Greenland", + value: "GL" + }, + { + text: "Grenada", + value: "GD" + }, + { + text: "Guadeloupe", + value: "GP" + }, + { + text: "Guam", + value: "GU" + }, + { + text: "Guatemala", + value: "GT" + }, + { + text: "Guinea", + value: "GN" + }, + { + text: "Guinea-Bissau", + value: "GW" + }, + { + text: "Guyana", + value: "GY" + }, + { + text: "Haiti", + value: "HT" + }, + { + text: "Heard Island and McDonald Islands", + value: "HM" + }, + { + text: "Holy See", + value: "VA" + }, + { + text: "Honduras", + value: "HN" + }, + { + text: "Hong Kong", + value: "HK" + }, + { + text: "Hungary", + value: "HU" + }, + { + text: "Iceland", + value: "IS" + }, + { + text: "India", + value: "IN" + }, + { + text: "Indonesia", + value: "ID" + }, + { + text: "Iran", + value: "IR" + }, + { + text: "Iraq", + value: "IQ" + }, + { + text: "Isle of Man", + value: "IM" + }, + { + text: "Israel", + value: "IL" + }, + { + text: "Italy", + value: "IT" + }, + { + text: "Ivory Coast", + value: "CI" + }, + { + text: "Jamaica", + value: "JM" + }, + { + text: "Japan", + value: "JP" + }, + { + text: "Jersey", + value: "JE" + }, + { + text: "Jordan", + value: "JO" + }, + { + text: "Kazakhstan", + value: "KZ" + }, + { + text: "Kenya", + value: "KE" + }, + { + text: "Kiribati", + value: "KI" + }, + { + text: "Kuwait", + value: "KW" + }, + { + text: "Kyrgyzstan", + value: "KG" + }, + { + text: "Laos", + value: "LA" + }, + { + text: "Latvia", + value: "LV" + }, + { + text: "Lebanon", + value: "LB" + }, + { + text: "Lesotho", + value: "LS" + }, + { + text: "Liberia", + value: "LR" + }, + { + text: "Libya", + value: "LY" + }, + { + text: "Liechtenstein", + value: "LI" + }, + { + text: "Lithuania", + value: "LT" + }, + { + text: "Luxembourg", + value: "LU" + }, + { + text: "Macau", + value: "MO" + }, + { + text: "Madagascar", + value: "MG" + }, + { + text: "Malawi", + value: "MW" + }, + { + text: "Malaysia", + value: "MY" + }, + { + text: "Maldives", + value: "MV" + }, + { + text: "Mali", + value: "ML" + }, + { + text: "Malta", + value: "MT" + }, + { + text: "Marshall Islands", + value: "MH" + }, + { + text: "Martinique", + value: "MQ" + }, + { + text: "Mauritania", + value: "MR" + }, + { + text: "Mauritius", + value: "MU" + }, + { + text: "Mayotte", + value: "YT" + }, + { + text: "Mexico", + value: "MX" + }, + { + text: "Moldova", + value: "MD" + }, + { + text: "Monaco", + value: "MC" + }, + { + text: "Mongolia", + value: "MN" + }, + { + text: "Montenegro", + value: "ME" + }, + { + text: "Montserrat", + value: "MS" + }, + { + text: "Morocco", + value: "MA" + }, + { + text: "Mozambique", + value: "MZ" + }, + { + text: "Myanmar", + value: "MM" + }, + { + text: "Namibia", + value: "NA" + }, + { + text: "Nauru", + value: "NR" + }, + { + text: "Nepal", + value: "NP" + }, + { + text: "Netherlands", + value: "NL" + }, + { + text: "New Caledonia", + value: "NC" + }, + { + text: "New Zealand", + value: "NZ" + }, + { + text: "Nicaragua", + value: "NI" + }, + { + text: "Niger", + value: "NE" + }, + { + text: "Nigeria", + value: "NG" + }, + { + text: "Niue", + value: "NU" + }, + { + text: "Norfolk Island", + value: "NF" + }, + { + text: "North Korea", + value: "KP" + }, + { + text: "North Macedonia", + value: "MK" + }, + { + text: "Northern Mariana Islands", + value: "MP" + }, + { + text: "Norway", + value: "NO" + }, + { + text: "Oman", + value: "OM" + }, + { + text: "Pakistan", + value: "PK" + }, + { + text: "Palau", + value: "PW" + }, + { + text: "Panama", + value: "PA" + }, + { + text: "Papua New Guinea", + value: "PG" + }, + { + text: "Paraguay", + value: "PY" + }, + { + text: "Peru", + value: "PE" + }, + { + text: "Philippines", + value: "PH" + }, + { + text: "Pitcairn Islands", + value: "PN" + }, + { + text: "Poland", + value: "PL" + }, + { + text: "Portugal", + value: "PT" + }, + { + text: "Puerto Rico", + value: "PR" + }, + { + text: "Qatar", + value: "QA" + }, + { + text: "Republic of Ireland", + value: "IE" + }, + { + text: "Republic of the Congo", + value: "CG" + }, + { + text: "Romania", + value: "RO" + }, + { + text: "Russia", + value: "RU" + }, + { + text: "Rwanda", + value: "RW" + }, + { + text: "Réunion", + value: "RE" + }, + { + text: "Saint Barthélemy", + value: "BL" + }, + { + text: "Saint Helena", + value: "SH" + }, + { + text: "Saint Kitts and Nevis", + value: "KN" + }, + { + text: "Saint Lucia", + value: "LC" + }, + { + text: "Saint Pierre and Miquelon", + value: "PM" + }, + { + text: "Saint Vincent and the Grenadines", + value: "VC" + }, + { + text: "Samoa", + value: "WS" + }, + { + text: "San Marino", + value: "SM" + }, + { + text: "Saudi Arabia", + value: "SA" + }, + { + text: "Senegal", + value: "SN" + }, + { + text: "Serbia", + value: "RS" + }, + { + text: "Seychelles", + value: "SC" + }, + { + text: "Sierra Leone", + value: "SL" + }, + { + text: "Singapore", + value: "SG" + }, + { + text: "Sint Maarten", + value: "SX" + }, + { + text: "Slovakia", + value: "SK" + }, + { + text: "Slovenia", + value: "SI" + }, + { + text: "Solomon Islands", + value: "SB" + }, + { + text: "Somalia", + value: "SO" + }, + { + text: "South Africa", + value: "ZA" + }, + { + text: "South Georgia and the South Sandwich Islands", + value: "GS" + }, + { + text: "South Korea", + value: "KR" + }, + { + text: "South Sudan", + value: "SS" + }, + { + text: "Spain", + value: "ES" + }, + { + text: "Sri Lanka", + value: "LK" + }, + { + text: "State of Palestine", + value: "PS" + }, + { + text: "Sudan", + value: "SD" + }, + { + text: "Suriname", + value: "SR" + }, + { + text: "Svalbard", + value: "SJ" + }, + { + text: "Sweden", + value: "SE" + }, + { + text: "Switzerland", + value: "CH" + }, + { + text: "Syria", + value: "SY" + }, + { + text: "São Tomé and Príncipe", + value: "ST" + }, + { + text: "Taiwan", + value: "TW" + }, + { + text: "Tajikistan", + value: "TJ" + }, + { + text: "Tanzania", + value: "TZ" + }, + { + text: "Thailand", + value: "TH" + }, + { + text: "The Bahamas", + value: "BS" + }, + { + text: "The Gambia", + value: "GM" + }, + { + text: "Togo", + value: "TG" + }, + { + text: "Tokelau", + value: "TK" + }, + { + text: "Tonga", + value: "TO" + }, + { + text: "Trinidad and Tobago", + value: "TT" + }, + { + text: "Tunisia", + value: "TN" + }, + { + text: "Turkey", + value: "TR" + }, + { + text: "Turkmenistan", + value: "TM" + }, + { + text: "Turks and Caicos Islands", + value: "TC" + }, + { + text: "Tuvalu", + value: "TV" + }, + { + text: "Uganda", + value: "UG" + }, + { + text: "Ukraine", + value: "UA" + }, + { + text: "United Arab Emirates", + value: "AE" + }, + { + text: "United Kingdom", + value: "GB" + }, + { + text: "United States Virgin Islands", + value: "VI" + }, + { + text: "United States", + value: "UM" + }, + { + text: "United States", + value: "US" + }, + { + text: "Uruguay", + value: "UY" + }, + { + text: "Uzbekistan", + value: "UZ" + }, + { + text: "Vanuatu", + value: "VU" + }, + { + text: "Venezuela", + value: "VE" + }, + { + text: "Vietnam", + value: "VN" + }, + { + text: "Wallis and Futuna", + value: "WF" + }, + { + text: "Western Sahara", + value: "EH" + }, + { + text: "Yemen", + value: "YE" + }, + { + text: "Zambia", + value: "ZM" + }, + { + text: "Zimbabwe", + value: "ZW" + }, + { + text: "Åland Islands", + value: "AX" + } + ] } } + } + }, + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'currentColor' }, - svg: { - component: 'svg', + circle: { + component: 'circle', attr: { - viewBox: '0 0 24 24', - fill: 'currentColor' - }, - - circle: { - component: 'circle', - attr: { - cx: 12, - cy: 9, - r: 2.5 - } - }, - path: { - component: 'path', - attr: { - d: 'M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z' - } + cx: 12, + cy: 9, + r: 2.5 } }, - label: { - component: 'span', - text: 'location' + path: { + component: 'path', + attr: { + d: 'M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z' + } } }, - about: { - component: 'button', + label: { + component: 'span', + text: 'location' + } + }, + about: { + component: 'button', - on: { - click: { - component: 'span', + on: { + click: { + component: 'span', - on: { - render: function () { - var component = this, - manifest = chrome.runtime.getManifest(), - user = satus.user(), - skeleton_about = { - extension_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'extension' - }, - extension_section: { - component: 'section', - class: 'satus-section--card', - - list: { - component: 'list', - items: [ - ['version', manifest.version], - ['permissions', manifest.permissions.join(', ').replace('https://www.youtube.com/', 'YouTube')] - ] - } - }, - browser_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'browser' - }, - browser_section: { - component: 'section', - class: 'satus-section--card', - - list: { - component: 'list', - items: [ - ['name', user.browser.name], - ['version', user.browser.version], - ['platform', user.browser.platform], - ['videoFormats', { - component: 'span', - on: { - render: function () { - var formats = []; - - for (var key in user.browser.video) { - if (user.browser.video[key] !== false) { - formats.push(key); - } - } + on: { + render: function () { + var component = this, + manifest = chrome.runtime.getManifest(), + user = satus.user(), + skeleton_about = { + extension_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'extension' + }, + extension_section: { + component: 'section', + class: 'satus-section--card', + + list: { + component: 'list', + items: [ + ['version', manifest.version], + ['permissions', manifest.permissions.join(', ').replace('https://www.youtube.com/', 'YouTube')] + ] + } + }, + browser_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'browser' + }, + browser_section: { + component: 'section', + class: 'satus-section--card', + + list: { + component: 'list', + items: [ + ['name', user.browser.name], + ['version', user.browser.version], + ['platform', user.browser.platform], + ['videoFormats', { + component: 'span', + on: { + render: function () { + var formats = []; - this.textContent = formats.join(', '); + for (var key in user.browser.video) { + if (user.browser.video[key] !== false) { + formats.push(key); + } } + + this.textContent = formats.join(', '); } - }], - ['audioFormats', { - component: 'span', - on: { - render: function () { - var formats = []; - - for (var key in user.browser.audio) { - if (user.browser.audio[key] !== false) { - formats.push(key); - } - } + } + }], + ['audioFormats', { + component: 'span', + on: { + render: function () { + var formats = []; - this.textContent = formats.join(', '); + for (var key in user.browser.audio) { + if (user.browser.audio[key] !== false) { + formats.push(key); + } } + + this.textContent = formats.join(', '); } - }], - ['flash', !!user.browser.flash ? 'true' : 'false'] - ] - } - }, - os_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'os' - }, - os_section: { - component: 'section', - class: 'satus-section--card', - - list: { - component: 'list', - items: [ - ['name', user.os.name], - ['type', user.os.type] - ] - } - }, - device_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'device' - }, - device_section: { - component: 'section', - class: 'satus-section--card', - - list: { - component: 'list', - items: [ - ['screen', user.device.screen], - ['cores', user.device.cores], - ['gpu', user.device.gpu], - ['ram', user.device.ram] - ] - } + } + }], + ['flash', !!user.browser.flash ? 'true' : 'false'] + ] + } + }, + os_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'os' + }, + os_section: { + component: 'section', + class: 'satus-section--card', + + list: { + component: 'list', + items: [ + ['name', user.os.name], + ['type', user.os.type] + ] + } + }, + device_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'device' + }, + device_section: { + component: 'section', + class: 'satus-section--card', + + list: { + component: 'list', + items: [ + ['screen', user.device.screen], + ['cores', user.device.cores], + ['gpu', user.device.gpu], + ['ram', user.device.ram] + ] } - }; + } + }; - setTimeout(function () { - satus.render(skeleton_about, component.parentNode); + setTimeout(function () { + satus.render(skeleton_about, component.parentNode); - component.remove(); - }); - } + component.remove(); + }); } } + } + }, + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'currentColor' }, - svg: { - component: 'svg', + path: { + component: 'path', attr: { - viewBox: '0 0 24 24', - fill: 'currentColor' - }, - - path: { - component: 'path', - attr: { - d: 'M11 7h2v2h-2zm0 4h2v6h-2zm1-9a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16z' - } + d: 'M11 7h2v2h-2zm0 4h2v6h-2zm1-9a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16z' } - }, - label: { - component: 'span', - text: 'about' } + }, + label: { + component: 'span', + text: 'about' } } - }); - - skeleton.layers.rendered.open(); - - document.querySelector('.satus-modal__scrim').click(); + } } }, @@ -2565,7 +2566,7 @@ var skeleton = { var skeleton = this.path[this.path.length - 1]; this.base.skeleton.header.section_start.back.rendered.hidden = this.path.length <= 1; - this.base.skeleton.header.section_start.title.rendered.innerText = skeleton.title || 'ImprovedTube'; + this.base.skeleton.header.section_start.title.rendered.innerText = satus.locale.get(((skeleton.parent || {}).label || skeleton.parent || {}).text || 'ImprovedTube'); } }, @@ -3218,7 +3219,7 @@ var skeleton = { click: { section: { component: 'section', - class: 'satus-section--card', + variant: 'card', my_colors: { component: 'button', @@ -3514,42 +3515,120 @@ var skeleton = { }, section_2: { component: 'section', - class: 'satus-section--card satus-section--themes', + variant: 'card', - default_dark_theme: { - component: 'switch', + default: { + component: 'label', + class: 'satus-label--default-theme', + text: 'default', + + radio: { + component: 'input', + attr: { + type: 'radio', + name: 'theme', + value: 'default' + }, + value: true + } + }, + dark: { + component: 'label', + class: 'satus-label--dark-theme', text: 'dark', - class: 'satus-switch--dark' + + radio: { + component: 'input', + attr: { + type: 'radio', + name: 'theme', + value: 'dark' + } + } }, - night_theme: { - component: 'switch', + night: { + component: 'label', + class: 'satus-label--night-theme', text: 'night', - class: 'satus-switch--night' + + radio: { + component: 'input', + attr: { + type: 'radio', + name: 'theme', + value: 'night' + } + } }, - dawn_theme: { - component: 'switch', + dawn: { + component: 'label', + class: 'satus-label--dawn-theme', text: 'dawn', - class: 'satus-switch--dawn' + + radio: { + component: 'input', + attr: { + type: 'radio', + name: 'theme', + value: 'dawn' + } + } }, - sunset_theme: { - component: 'switch', + sunset: { + component: 'label', + class: 'satus-label--sunset-theme', text: 'sunset', - class: 'satus-switch--sunset' + + radio: { + component: 'input', + attr: { + type: 'radio', + name: 'theme', + value: 'sunset' + } + } }, - desert_theme: { - component: 'switch', + desert: { + component: 'label', + class: 'satus-label--desert-theme', text: 'desert', - class: 'satus-switch--desert' + + radio: { + component: 'input', + attr: { + type: 'radio', + name: 'theme', + value: 'desert' + } + } }, - plain_theme: { - component: 'switch', + plain: { + component: 'label', + class: 'satus-label--plain-theme', text: 'plain', - class: 'satus-switch--plain' + + radio: { + component: 'input', + attr: { + type: 'radio', + name: 'theme', + value: 'plain' + } + } }, - black_theme: { - component: 'switch', + black: { + component: 'label', + class: 'satus-label--black-theme', text: 'black', - class: 'satus-switch--black' + + radio: { + component: 'input', + attr: { + type: 'radio', + name: 'theme', + value: 'black' + } + } } } } @@ -5067,71 +5146,77 @@ var skeleton = { component: 'button', text: 'channels', on: { - open: function () { - var self = this; - - if (satus.storage.blacklist && satus.storage.blacklist.channels) { - var list = {}; - - for (var item in satus.storage.blacklist.channels) { - if (satus.storage.blacklist.channels[item] !== false) { - var title = satus.storage.blacklist.channels[item].title || ''; - - list[item] = { - type: 'section', - label: title.length > 20 ? title.substr(0, 20) + '...' : title, - class: 'satus-section--blacklist', - style: { - 'background-image': 'url(' + satus.storage.blacklist.channels[item].preview + ')', - 'background-color': '#000' - }, + click: { + component: 'section', + on: { + render: function () { + var self = this, + blacklist = satus.storage.get('blacklist'); + + if (blacklist && blacklist.channels) { + var list = {}; + + for (var item in blacklist.channels) { + if (blacklist.channels[item] !== false) { + var title = blacklist.channels[item].title || ''; + + list[item] = { + type: 'section', + text: title.length > 20 ? title.substr(0, 20) + '...' : title, + class: 'satus-section--blacklist', + style: { + 'background-image': 'url(' + blacklist.channels[item].preview + ')', + 'background-color': '#000' + }, - section: { - type: 'section', + section: { + type: 'section', - delete: { - type: 'button', - icon: '', - onclick: function () { - delete satus.storage.blacklist.channels[item]; + delete: { + type: 'button', + icon: '', + onclick: function () { + delete blacklist.channels[item]; - satus.storage.set('blacklist', satus.storage.blacklist); + satus.storage.set('blacklist', blacklist); - this.classList.add('removing'); + this.classList.add('removing'); - setTimeout(function () { - self.remove(); - }, 250); + setTimeout(function () { + self.remove(); + }, 250); + } + } } - } + }; } - }; - } - } + } - if (Object.keys(list).length === 0) { - list.section = { - type: 'section', - class: 'satus-section--message', + if (Object.keys(list).length === 0) { + list.section = { + type: 'section', + class: 'satus-section--message', - error: { - type: 'text', - label: 'empty' + error: { + type: 'text', + text: 'empty' + } + }; } - }; - } - satus.render(list, this); - } else { - satus.render({ - component: 'section', - class: 'satus-section--card satus-section--message', + satus.render(list, this); + } else { + satus.render({ + component: 'section', + class: 'satus-section--message', - error: { - component: 'text', - label: 'empty' + error: { + component: 'text', + text: 'empty' + } + }, this); } - }, this); + } } } } @@ -5140,69 +5225,75 @@ var skeleton = { component: 'button', text: 'videos', on: { - open: function () { - var self = this; - - if (satus.storage.blacklist && satus.storage.blacklist.videos) { - let list = {}; - - for (let item in satus.storage.blacklist.videos) { - if (satus.storage.blacklist.videos[item] !== false) { - let title = satus.storage.blacklist.videos[item].title || ''; - - list[item] = { - type: 'section', - label: title.length > 20 ? title.substr(0, 20) + '...' : title, - class: 'satus-section--blacklist', - style: { - 'background-image': 'url(https://img.youtube.com/vi/' + item + '/0.jpg)' - }, + click: { + component: 'section', + on: { + render: function () { + var self = this, + blacklist = satus.storage.get('blacklist'); + + if (blacklist && blacklist.videos) { + let list = {}; + + for (let item in blacklist.videos) { + if (blacklist.videos[item] !== false) { + let title = blacklist.videos[item].title || ''; + + list[item] = { + type: 'section', + text: title.length > 20 ? title.substr(0, 20) + '...' : title, + class: 'satus-section--blacklist', + style: { + 'background-image': 'url(https://img.youtube.com/vi/' + item + '/0.jpg)' + }, - section: { - type: 'section', + section: { + type: 'section', - delete: { - type: 'button', - icon: '', - onclick: function () { - delete satus.storage.blacklist.videos[item]; + delete: { + type: 'button', + icon: '', + onclick: function () { + delete blacklist.videos[item]; - satus.storage.set('blacklist', satus.storage.blacklist); - this.parentNode.parentNode.classList.add('removing'); + satus.storage.set('blacklist', blacklist); + this.parentNode.parentNode.classList.add('removing'); - setTimeout(function () { - self.parentNode.parentNode.remove(); - }, 250); + setTimeout(function () { + self.parentNode.parentNode.remove(); + }, 250); + } + } } - } + }; } - }; - } - } + } - if (Object.keys(list).length === 0) { - list.section = { - type: 'section', - class: 'satus-section--message', + if (Object.keys(list).length === 0) { + list.section = { + type: 'section', + class: 'satus-section--message', - error: { - type: 'text', - label: 'empty' + error: { + type: 'text', + text: 'empty' + } + }; } - }; - } - satus.render(list, this); - } else { - satus.render({ - component: 'section', - class: 'satus-section--card satus-section--message', + satus.render(list, this); + } else { + satus.render({ + component: 'section', + class: 'satus-section--message', - error: { - component: 'text', - label: 'empty' + error: { + component: 'text', + text: 'empty' + } + }, this); } - }, this); + } } } } @@ -5217,9 +5308,9 @@ var skeleton = { svg: { component: 'svg', attr: { - viewBox: '0 0 24 24', - fill: 'transparent', - stroke: 'currentColor', + 'viewBox': '0 0 24 24', + 'fill': 'transparent', + 'stroke': 'currentColor', 'stroke-linecap': 'round', 'stroke-width': 1.75 }, @@ -5227,15 +5318,15 @@ var skeleton = { circle: { component: 'circle', attr: { - cx: 12, - cy: 12, - r: 10 + 'cx': 12, + 'cy': 12, + 'r': 10 } }, path: { component: 'path', attr: { - d: 'M4.93 4.93l14.14 14.14' + 'd': 'M4.93 4.93l14.14 14.14' } } } @@ -5262,13 +5353,9 @@ var skeleton = { section_2: { component: 'section', class: 'satus-section--card', - style: { - 'flex-direction': 'column', - 'align-items': 'flex-start' - }, on: { render: function () { - var data = /*satus.storage.get('analyzer') ||*/ {}, + var data = satus.storage.get('analyzer') || {}, all_data = {}, all_data_sort = [], all_time_value = 0, @@ -5315,8 +5402,8 @@ var skeleton = { var now_minutes = new Date().getMinutes(); - watch_time.innerText = /*satus.locale.getMessage('watchTime') ||*/ 'watchTime'; - today_at.innerText = /*satus.locale.getMessage('todayAt') + ' ' + (new Date().getHours() + ':' + (now_minutes < 10 ? '0' + now_minutes : now_minutes)) ||*/ 'todayAt'; + watch_time.innerText = satus.locale.get('watchTime'); + today_at.innerText = satus.locale.get('todayAt') + ' ' + (new Date().getHours() + ':' + (now_minutes < 10 ? '0' + now_minutes : now_minutes)); all_time.innerText = Math.floor(all_time_value / 60) + 'h ' + (all_time_value - Math.floor(all_time_value / 60) * 60) + 'm'; let h = 0; @@ -5431,11 +5518,24 @@ var skeleton = { --------------------------------------------------------------*/ satus.storage.import(function (items) { - satus.fetch('_locales/' + (items.language || 'en') + '/messages.json', function (object) { - for (var key in object) { - satus.locale.strings[key] = object[key].message; + var language = items.language || window.navigator.language || 'en'; + + skeleton.attr.theme = satus.storage.get('theme') || 'default'; + + satus.ajax('_locales/' + language + '/messages.json', function (response) { + try { + response = JSON.parse(response); + + for (var key in response) { + satus.locale.strings[key] = response[key].message; + } + } catch (error) { + console.error(error); } satus.render(skeleton); + }, function (success) { + console.log('er'); + satus.ajax('_locales/en/messages.json', success); }); }); \ No newline at end of file diff --git a/satus.css b/satus.css index f802097cb..314a98b31 100644 --- a/satus.css +++ b/satus.css @@ -1 +1 @@ -html{--satus-theme-primary:#ff4158;--satus-header-background:#fff}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:0;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:24px;height:24px;border-radius:50%}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{display:flex;flex-direction:column;align-items:center}.satus-modal--color-picker canvas{width:256px;height:256px}.satus-color-picker__cursor{border-radius:50%;position:absolute;pointer-events:none;width:5px;border:1px solid #fff;height:5px;box-shadow:0 0 0 1px #000;transform:translate(-50%,-50%)}.satus-color-picker__slider .satus-slider__container{height:18px}.satus-color-picker__slider .satus-slider__track-container{top:calc(50% - 9px);height:18px}.satus-color-picker__slider .satus-slider__track-container::before{height:16px;opacity:1;background:linear-gradient(90deg,#fff,#000);border:1px solid #bfbfbf;border-radius:4px}.satus-color-picker__slider .satus-slider__track{background:0 0}.satus-color-picker__slider .satus-slider__thumb{background:#fff;top:0;border-radius:4px;height:18px;box-shadow:0 0 2px rgb(0,0,0,.2)}.satus-color-picker__slider .satus-slider__thumb:before{display:none}.satus-color-picker__actions{width:100%;justify-content:flex-end}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background)}.satus-button{font:inherit;position:relative;overflow:hidden;min-width:48px;height:48px;margin:0;padding:8px;cursor:pointer;color:var(--satus-button-text);border:none;background:var(--satus-button-background);appearance:none}.satus-button:hover{cursor:pointer;background-color:rgba(0,0,0,.04)}.satus-button>*{pointer-events:none}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;height:48px}.satus-list__item>:last-child{text-align:right}.satus-section{display:flex;flex-wrap:wrap}.satus-section--align-start{justify-content:flex-start}.satus-section--align-end{justify-content:flex-end}.satus-header>.satus-section{align-items:center}.satus-section--card{flex-direction:column;width:calc(100% - 16px);max-width:900px;margin:8px auto;padding:8px 0;border:1px solid rgba(0,0,0,.1);border-radius:8px;background:#fff}.satus-section--card>*{min-height:48px;padding:0 16px;text-align:left}.satus-section--card>.satus-button{display:flex;padding:0 16px;align-items:center}.satus-section--card>.satus-button>svg{width:20px;margin-right:8px;color:var(--satus-theme-primary)}.satus-section--label{font-size:17px;display:block;width:calc(100% - 16px);max-width:900px;margin:16px auto 8px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3)}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(25,25,25,.2);backdrop-filter:blur(8px)}.satus-modal__surface{font-size:14px;display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;padding:8px 0;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:#777;border-radius:6px;background-color:#f7f7f6;box-shadow:inset 0 -1px 1px 1px rgb(0,0,0,.1),0 2px 6px rgb(0,0,0,.15)}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:0;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer;background-color:rgba(0,0,0,.04)}.satus-switch__thumb{width:38px;height:20px;transition:background-color 150ms;border-radius:20px;background-color:rgba(0,0,0,.06)}.satus-switch__thumb::before{display:block;width:16px;height:16px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:#fff;will-change:transform}.satus-switch[data-value=true] .satus-switch__thumb{background-color:#ff4158}.satus-switch[data-value=true] .satus-switch__thumb::before{transform:translateX(18px)}.satus-slider{position:relative;display:flex;flex-direction:column;box-sizing:border-box;width:100%;min-height:64px;padding:0 16px;-webkit-user-select:none;-moz-user-select:none;user-select:none;outline:0;align-items:flex-start;justify-content:center}.satus-slider:hover{cursor:pointer;background-color:rgba(0,0,0,.04)}.satus-slider__label{cursor:default}.satus-slider>input{position:absolute;z-index:1;top:0;left:0;box-sizing:border-box;width:100%;height:100%;margin:0;padding:0;opacity:0}.satus-slider__container{position:relative;width:100%;height:12px;margin:8px 0 0}.satus-slider__track-container{position:absolute;top:calc(50% - 1px);width:100%;height:2px;pointer-events:none}.satus-slider__track-container::before{position:absolute;top:0;left:0;width:100%;height:2px;content:'';opacity:.26;background-color:var(--satus-theme-primary)}.satus-slider__track{position:relative;width:0;height:100%;background-color:var(--satus-theme-primary);will-change:width}.satus-slider:not(.satus-slider--dragging) .satus-slider__track{transition:width .1s ease-out}.satus-slider__thumb{position:absolute;top:-5px;right:-12px;width:12px;height:12px;border-radius:50%;background-color:var(--satus-theme-primary);box-shadow:0 1px 5px rgba(0,0,0,.15)}.satus-slider .satus-slider__thumb::before{font-size:13px;position:absolute;top:-34px;left:50%;visibility:hidden;box-sizing:border-box;min-width:28px;padding:4px 4px;content:attr(data-value);transform:translateX(-50%);text-align:center;pointer-events:none;color:#fff;border-radius:4px;background:var(--satus-theme-tooltip)}.satus-slider:hover .satus-slider__thumb::before,.satus-slider>input:focus .satus-slider__container .satus-slider__thumb::before{visibility:visible}.satus-slider__ring{position:absolute;top:-11px;right:-18px;width:24px;height:24px;transition:.1s;transform:scale(0);opacity:0;border-radius:50%;background-color:var(--satus-theme-primary)}.satus-slider>input:focus+.satus-slider__container .satus-slider__ring{transform:scale(1);opacity:.25}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{text-transform:uppercase;font-size:11px;opacity:.5}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:#dedede;align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__mouse>div{position:absolute;top:0;left:13px;width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-4px;left:21px;width:2px;height:18px;content:'';background:#f96754}.satus-shortcut__mouse.false::after{position:absolute;top:-12px;left:17px;width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:14px;left:17px;width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-base{display:flex;flex-direction:column;width:100%;height:100vh}.satus-header{display:flex;box-sizing:border-box;height:48px;padding:0 16px;color:var(--satus-header-text);background:var(--satus-header-background);align-items:center;justify-content:space-between}.satus-layers{position:relative;overflow:hidden;color:#777;background:#f7f7f6;flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;width:100%;height:100%;flex-wrap:wrap;align-content:flex-start}.satus-input[type=text]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:0;padding:0 8px;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select{position:relative;display:flex;box-sizing:border-box;align-items:center}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;padding:inherit;cursor:pointer;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select select:hover{cursor:pointer;background-color:rgba(0,0,0,.04)}.satus-section--card .satus-select select{text-align-last:right}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1s;opacity:.04;border-radius:50%;background:#000;animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:.04}70%{transform:scale(.8);opacity:.04}100%{transform:scale(1);opacity:0}} \ No newline at end of file +html{--satus-primary:#ff4158;--satus-header-background:#fff;--satus-switch-background:rgba(0,0,0,.08)}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:0;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:22px;height:22px;border:2px solid rgba(255,255,255,.4);border-radius:50%}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{display:flex;flex-direction:column;align-items:center}.satus-modal--color-picker canvas{width:256px;height:256px}.satus-color-picker__dim{position:absolute;width:256px;height:256px;pointer-events:none;opacity:0;border-radius:50%;background:#000}.satus-color-picker__cursor{position:absolute;width:5px;height:5px;transform:translate(-50%,-50%);pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000}.satus-color-picker__slider .satus-slider__container{height:18px}.satus-color-picker__slider .satus-slider__track-container{top:calc(50% - 9px);height:18px}.satus-color-picker__slider .satus-slider__track-container::before{height:16px;opacity:1;border:1px solid #bfbfbf;border-radius:4px;background:linear-gradient(90deg,#fff,#000)}.satus-color-picker__slider .satus-slider__track{background:0 0}.satus-color-picker__slider .satus-slider__thumb{top:0;height:18px;border-radius:4px;background:#fff;box-shadow:0 0 2px rgb(0,0,0,.2)}.satus-color-picker__slider .satus-slider__thumb:before{display:none}.satus-color-picker__actions{display:flex;width:100%;justify-content:flex-end}.satus-color-picker__actions .satus-button{height:32px;margin:8px 4px 0;border-radius:8px;background:rgba(0,0,0,.15)}.satus-color-picker__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background);overflow-y:auto;box-sizing:border-box}.satus-button{font:inherit;position:relative;overflow:hidden;height:48px;margin:0;padding:8px;color:var(--satus-button-text,inherit);border:none;background:var(--satus-button-background,transparent);appearance:none;text-align:left}.satus-button:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-button>*{pointer-events:none}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;height:48px}.satus-list__item>:last-child{text-align:right}.satus-section{display:flex;flex-wrap:wrap;box-sizing:border-box}.satus-section--align-start{justify-content:flex-start}.satus-section--align-end{justify-content:flex-end}.satus-header>.satus-section{align-items:center}.satus-section--card{flex-direction:column;width:calc(100% - 24px);max-width:900px;margin:12px auto 0;padding:8px 0;border:1px solid rgba(0,0,0,.1);border-radius:8px;background:var(--satus-section-card-background);color:var(--satus-section-card-text);box-sizing:border-box}.satus-section--card:last-child{margin:12px auto}.satus-section--card>*{min-height:48px;padding:0 16px;text-align:left}.satus-section--card>.satus-button{display:flex;padding:0 16px;align-items:center}.satus-section--card>.satus-button>svg{width:20px;margin:2px 16px 0 0;color:var(--satus-primary)}.satus-section--label{font-size:17px;display:block;width:calc(100% - 16px);max-width:900px;margin:16px auto 8px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3)}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.2);backdrop-filter:blur(8px)}.satus-modal__surface{font-size:14px;display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;padding:8px 0;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-text);border-radius:6px;background-color:var(--satus-modal-background);box-shadow:inset 0 -1px 1px 1px rgb(0,0,0,.1),0 2px 6px rgb(0,0,0,.15)}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:0;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-switch__thumb{width:38px;height:20px;transition:background-color 150ms;border-radius:20px;background-color:var(--satus-hover);flex:0 0 38px;margin-left:16px}.satus-switch__thumb::before{display:block;width:16px;height:16px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:#fff;will-change:transform}.satus-switch[data-value=true] .satus-switch__thumb{background-color:var(--satus-primary)}.satus-switch[data-value=true] .satus-switch__thumb::before{transform:translateX(18px)}.satus-slider{position:relative;display:flex;flex-direction:column;box-sizing:border-box;width:100%;min-height:64px;padding:0 16px;-webkit-user-select:none;-moz-user-select:none;user-select:none;outline:0;align-items:flex-start;justify-content:center}.satus-slider:hover{cursor:pointer;background-color:rgba(0,0,0,.04)}.satus-slider__label{cursor:default}.satus-slider>input{position:absolute;z-index:1;top:0;left:0;box-sizing:border-box;width:100%;height:100%;margin:0;padding:0;opacity:0}.satus-slider__container{position:relative;width:100%;height:12px;margin:8px 0 0}.satus-slider__track-container{position:absolute;top:calc(50% - 1px);width:100%;height:2px;pointer-events:none}.satus-slider__track-container::before{position:absolute;top:0;left:0;width:100%;height:2px;content:'';opacity:.26;background-color:var(--satus-primary)}.satus-slider__track{position:relative;width:0;height:100%;background-color:var(--satus-primary);will-change:width}.satus-slider:not(.satus-slider--dragging) .satus-slider__track{transition:width .1s ease-out}.satus-slider__thumb{position:absolute;top:-5px;right:-12px;width:12px;height:12px;border-radius:50%;background-color:var(--satus-primary);box-shadow:0 1px 5px rgba(0,0,0,.15)}.satus-slider .satus-slider__thumb::before{font-size:13px;position:absolute;top:-34px;left:50%;visibility:hidden;box-sizing:border-box;min-width:28px;padding:4px 4px;content:attr(data-value);transform:translateX(-50%);text-align:center;pointer-events:none;color:#fff;border-radius:4px;background:var(--satus-theme-tooltip)}.satus-slider:hover .satus-slider__thumb::before,.satus-slider>input:focus .satus-slider__container .satus-slider__thumb::before{visibility:visible}.satus-slider__ring{position:absolute;top:-11px;right:-18px;width:24px;height:24px;transition:.1s;transform:scale(0);opacity:0;border-radius:50%;background-color:var(--satus-primary)}.satus-slider>input:focus+.satus-slider__container .satus-slider__ring{transform:scale(1);opacity:.25}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{text-transform:uppercase;font-size:11px;opacity:.5}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;background:rgba(0,0,0,.15);margin:8px 4px 0;border-radius:8px}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__mouse>div{position:absolute;top:0;left:13px;width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-4px;left:21px;width:2px;height:18px;content:'';background:#f96754}.satus-shortcut__mouse.false::after{position:absolute;top:-12px;left:17px;width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:14px;left:17px;width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-base{display:flex;flex-direction:column;width:100%;height:100%}.satus-text-field{position:relative;padding:0 16px;background-color:#333347;border-radius:8px;color:#c4c4d4;overflow:hidden;display:flex}.satus-text-field__pre{display:flex;position:relative;height:100%;margin:0;padding:0;overflow:hidden;align-items:center;flex:1}.satus-text-field__input{font:inherit;position:absolute;top:0;left:0;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0;opacity:0;border:none;appearance:none;z-index:9}.satus-text-field__hidden-text{position:absolute;pointer-events:none;opacity:0}.satus-text-field__text{position:absolute;top:0;left:0;display:flex;height:100%;margin:0;align-items:center}.satus-text-field__cursor{position:absolute;top:6px;left:0;display:none;width:2px;height:25px;animation:blink 1s step-end 8;background:#fa0}.satus-text-field__selection{position:absolute;top:5px;left:0;display:none;width:0;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:3px;background:rgba(255,255,255,.1)}.satus-text-field__input:focus+*+*+*+.satus-text-field__cursor,.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field__text>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__text>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-header{display:flex;box-sizing:border-box;height:56px;padding:0 16px;color:var(--satus-header-text);background:var(--satus-header-background);align-items:center;justify-content:space-between}.satus-alert{display:flex;box-sizing:border-box;min-height:48px;margin:8px;padding:8px 16px;border-radius:8px;align-items:center}.satus-alert--error{color:#c55959;border:1px solid #641616;background:#430f0f}.satus-layers{position:relative;overflow:hidden;color:var(--satus-layers-text);background:var(--satus-layers-background);flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;width:100%;height:100%;flex-wrap:wrap;align-content:flex-start}.satus-input[type=text]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:0;padding:0 8px;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-aside{color:var(--satus-aside-text);background:var(--satus-aside-background);box-sizing:border-box}.satus-select{position:relative;display:flex;box-sizing:border-box;align-items:center;justify-content:space-between}.satus-select__value{margin-left:16px;text-align:right;opacity:.75}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;padding:inherit;cursor:pointer;opacity:0;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select select:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-section--card .satus-select select{text-align-last:right}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1s;opacity:.04;border-radius:50%;background:var(--satus-pluviam-background,#000);animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:.04}70%{transform:scale(.8);opacity:.04}100%{transform:scale(1);opacity:0}} \ No newline at end of file diff --git a/satus.js b/satus.js index e4c31761b..f9eb9302f 100644 --- a/satus.js +++ b/satus.js @@ -1 +1 @@ -var satus={components:{},events:{},locale:{strings:{}},storage:{data:{}},append:function(M,N){(N||document.body).appendChild(M)},getAnimationDuration:function(M){return 1e3*Number(window.getComputedStyle(M).getPropertyValue("animation-duration").replace(/[^0-9.]/g,""))},attr:function(M,N){if(N)for(var I in N)M.is_svg?M.setAttributeNS(null,I,N[I]):M.setAttribute(I,N[I])},data:function(M,N){if(N)for(var I in N)M.dataset[I]=N[I]},properties:function(M,N){if(N)for(var I in N)M[I]=N[I]},camelize:function(M){for(var N="",I=0,A=M.length;IAlt")),!0===C.ctrlKey&&(N.push("Ctrl"),I.push("
Ctrl
")),!0===C.shiftKey&&(N.push("Shift"),I.push("
Shift
"))," "===C.key?(N.push("Space bar"),I.push("
Space bar
")):"string"==typeof C.key&&-1===["Shift","Control","Alt"].indexOf(C.key)&&("ArrowUp"===C.key?(N.push("↑"),I.push("
")):"ArrowRight"===C.key?(N.push("→"),I.push("
")):"ArrowDown"===C.key?(N.push("↓"),I.push("
")):"ArrowLeft"===C.key?(N.push("←"),I.push("
")):(A=C.key.toUpperCase(),N.push(A),I.push("
"+A+"
"))),C.wheel&&I.push('
'),u.innerText=N.join("+"),M&&0"))}return c.className="satus-shortcut__label",u.className="satus-shortcut__value",U(),u.dataset.value=u.innerText,N.addEventListener("click",function(){let N=document.createElement("div"),M=document.createElement("span"),I=document.createElement("div"),A=document.createElement("div"),D=document.createElement("div"),g=document.createElement("section"),i=document.createElement("div"),j=document.createElement("div"),w=document.createElement("div");function T(M){return M.preventDefault(),M.stopPropagation(),z=!1,clearTimeout(Y),C={key:M.key,keyCode:M.keyCode,shiftKey:M.shiftKey,ctrlKey:M.ctrlKey,altKey:M.altKey},U(D),!1}function S(M){return M.stopPropagation(),!0===z&&(delete C.shiftKey,delete C.altKey,delete C.ctrlKey,delete C.keyCode,delete C.key),clearTimeout(Y),Y=setTimeout(function(){z=!0},300),C.wheel=M.deltaY,U(D),!1}function L(M){window.removeEventListener("keydown",T),window.removeEventListener("mousewheel",S),!0===M&&(u.innerText=u.dataset.value),N.classList.remove("satus-modal_open"),setTimeout(function(){N.remove()},Number(1e3*document.defaultView.getComputedStyle(N,"").getPropertyValue("animation-duration").replace(/[^0-9.]/g,"")))}N.className="satus-modal satus-modal_open",M.className="satus-shortcut-modal-label",I.className="satus-modal__scrim",A.className="satus-modal__surface satus-modal__surface_shortcut",D.className="satus-shortcut__canvas",g.className="satus-section satus-section--align-end satus-section_shortcut",i.className="satus-button satus-button_shortcut",j.className="satus-button satus-button_shortcut",w.className="satus-button satus-button_shortcut",M.innerText=c.innerText,U(D),window.addEventListener("keydown",T),window.addEventListener("mousewheel",S),I.addEventListener("click",L),i.addEventListener("click",function(){L(),U()}),j.addEventListener("click",L),w.addEventListener("click",function(){L(!1)}),g.appendChild(i),g.appendChild(j),g.appendChild(w),A.appendChild(M),A.appendChild(D),A.appendChild(g),N.appendChild(I),N.appendChild(A),document.body.appendChild(N)}),N.appendChild(c),N.appendChild(u),N},satus.components.shortcut=function(M){var N=document.createElement("button"),I=document.createElement("div");return N.className="satus-button",I.className="satus-shortcut__value",N.update=function(){var M=satus.storage.get(this.storage)||this.skeleton.value||{},N=[];if(M.shift&&N.push("Shift"),M.ctrl&&N.push("Ctrl"),M.alt&&N.push("Alt"),"object"==typeof M.keys)for(var I in M.keys){var A=M.keys[I].key||M.keys[I].code;32===I&&(A="space"),N.push(A)}this.valueElement.textContent=N.join(" + ")},N.valueElement=I,N.appendChild(I),N.keydown=function(){},N.mousewheel=function(){},N.addEventListener("click",function(){satus.render({component:"modal",on:{close:function(){window.removeEventListener("keydown",this.keydown),window.removeEventListener("mousewheel",this.mousewheel)}},primary:{component:"div",class:"satus-shortcut__primary"},actions:{component:"div",class:"satus-shortcut__actions",reset:{component:"button",text:"reset"},cancel:{component:"button",text:"cancel"},save:{component:"button",text:"save"}}}),window.addEventListener("keydown",this.keydown),window.addEventListener("mousewheel",this.mousewheel)}),N.addEventListener("render",N.update),N},satus.components.base=function(M){var N=document.createElement("div");return N.base=N},satus.components.layers=function(M){var N=document.createElement("div");return N.path=[M],N.back=function(){1 Date: Mon, 20 Sep 2021 13:49:48 +0300 Subject: [PATCH 0402/1224] Restored locales --- _locales/ar/messages.json | 2 +- _locales/bn/messages.json | 2 +- _locales/de/messages.json | 2 +- _locales/es/messages.json | 2 +- _locales/fr/messages.json | 2 +- _locales/hin/messages.json | 4 ++-- _locales/hr/messages.json | 2 +- _locales/id/messages.json | 2 +- _locales/it/messages.json | 2 +- _locales/ja/messages.json | 2 +- _locales/ko/messages.json | 2 +- _locales/nb_NO/messages.json | 2 +- _locales/nl/messages.json | 2 +- _locales/no/messages.json | 2 +- _locales/pl/messages.json | 2 +- _locales/pt_BR/messages.json | 2 +- _locales/pt_PT/messages.json | 2 +- _locales/ro/messages.json | 2 +- _locales/sk/messages.json | 2 +- _locales/tr/messages.json | 2 +- _locales/zh_CN/messages.json | 4 ++-- _locales/zh_TW/messages.json | 2 +- 22 files changed, 24 insertions(+), 24 deletions(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 5f79a7da1..d9df2e8d4 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -261,7 +261,7 @@ "message": "الإفتراضي" }, "donate": { - "message": "Donate" + "message": "تبرع" }, "draggable": { "message": "قابل للسحب" diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index db97d478b..c063494d9 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -261,7 +261,7 @@ "message": "পরিবর্তন করবেন না" }, "donate": { - "message": "Donate" + "message": "দান করুন" }, "draggable": { "message": "টেনে আনে" diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 17fd553fc..49bbe2e98 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -261,7 +261,7 @@ "message": "Nicht ändern" }, "donate": { - "message": "Donate" + "message": "Spenden" }, "draggable": { "message": "Verschiebbar" diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 90a90f3b3..ddfe9fa91 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -261,7 +261,7 @@ "message": "No cambiar" }, "donate": { - "message": "Donate" + "message": "Donar" }, "draggable": { "message": "Arrastrable" diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 8eebcd437..ded5a636e 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -261,7 +261,7 @@ "message": "Ne pas changer" }, "donate": { - "message": "Donate" + "message": "Donner" }, "draggable": { "message": "Draggable" diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index 744c2a05a..8af30ac90 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -216,7 +216,7 @@ "message": "गहरा बैंगनी" }, "default": { - "message": "Default" + "message": "डिफ़ॉल्ट" }, "defaultChannelTab": { "message": "डिफ़ॉल्ट चैनल टैब" @@ -261,7 +261,7 @@ "message": "मत बदलो" }, "donate": { - "message": "Donate" + "message": "दान" }, "draggable": { "message": "खींचने योग्य" diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 7e16575e5..00f19f5ce 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -261,7 +261,7 @@ "message": "Nemoj mijenjati" }, "donate": { - "message": "Donate" + "message": "Doniraj" }, "draggable": { "message": "Povuci" diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 1225fe159..af586b068 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -261,7 +261,7 @@ "message": "Jangan ubah" }, "donate": { - "message": "Donate" + "message": "Donasi" }, "draggable": { "message": "Dapat diseret" diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 7c1258b24..c8298c6d9 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -261,7 +261,7 @@ "message": "Non cambiare" }, "donate": { - "message": "Donate" + "message": "Donazione" }, "draggable": { "message": "Trascinabile" diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index e7adedc95..5aac9ead1 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -261,7 +261,7 @@ "message": "変更しない" }, "donate": { - "message": "Donate" + "message": "寄付する" }, "draggable": { "message": "ドラッグ可能にする" diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index c5a0616b4..3a14e2a22 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -261,7 +261,7 @@ "message": "바꾸지 않음" }, "donate": { - "message": "Donate" + "message": "후원하기" }, "draggable": { "message": "드래그 가능" diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 18177b07c..0e7e219d2 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -261,7 +261,7 @@ "message": "Ikke endre" }, "donate": { - "message": "Donate" + "message": "Doner" }, "draggable": { "message": "Flyttbare" diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 5d6e56d8e..c6c991f52 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -261,7 +261,7 @@ "message": "Niet aanpassen" }, "donate": { - "message": "Donate" + "message": "Doneer" }, "draggable": { "message": "Sleepbaar" diff --git a/_locales/no/messages.json b/_locales/no/messages.json index b6740614e..f46234542 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -261,7 +261,7 @@ "message": "Ikke endre" }, "donate": { - "message": "Donate" + "message": "Doner" }, "draggable": { "message": "Flyttbare" diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index f3c31122b..817a518cd 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -264,7 +264,7 @@ "message": "Nie zmieniaj" }, "donate": { - "message": "Donate" + "message": "Dotacja" }, "draggable": { "message": "Przeciągalne" diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 9294529c1..9aa0989be 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -261,7 +261,7 @@ "message": "Não alterar" }, "donate": { - "message": "Donate" + "message": "Doar" }, "draggable": { "message": "Arrastável" diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 0b829d547..b50550c72 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -261,7 +261,7 @@ "message": "Não mudes" }, "donate": { - "message": "Donate" + "message": "Doar" }, "draggable": { "message": "Podes arrastar" diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 2b67b23b8..fd7f7b25d 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -261,7 +261,7 @@ "message": "Nu schimba" }, "donate": { - "message": "Donate" + "message": "Donează" }, "draggable": { "message": "Poate fi tras" diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 97b30bee2..abb296427 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -261,7 +261,7 @@ "message": "Nemeniť" }, "donate": { - "message": "Donate" + "message": "Prispieť" }, "draggable": { "message": "Posuvné" diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index af8b44f63..3ab74abe5 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -261,7 +261,7 @@ "message": "Değiştirme" }, "donate": { - "message": "Donate" + "message": "Bağış" }, "draggable": { "message": "Sürüklenebilir" diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index ab87e9284..162d0eaf3 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -216,7 +216,7 @@ "message": "深紫色" }, "default": { - "message": "Default" + "message": "默认" }, "defaultChannelTab": { "message": "默认频道页" @@ -261,7 +261,7 @@ "message": "不做改变" }, "donate": { - "message": "Donate" + "message": "支持" }, "draggable": { "message": "可拖动" diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index a60be3923..48c169fa9 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -261,7 +261,7 @@ "message": "不要改變" }, "donate": { - "message": "Donate" + "message": "捐贈" }, "draggable": { "message": "可拖動" From ee83ab8a3c19934a71758326ba68d5a3ad993f4a Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 22 Sep 2021 01:24:11 +0300 Subject: [PATCH 0403/1224] v3.500 --- _locales/ar/messages.json | 51 ++++- _locales/bn/messages.json | 45 ++++- _locales/de/messages.json | 45 ++++- _locales/el/messages.json | 45 ++++- _locales/en/messages.json | 30 ++- _locales/es/messages.json | 45 ++++- _locales/fr/messages.json | 42 +++- _locales/hin/messages.json | 45 ++++- _locales/hr/messages.json | 36 +++- _locales/id/messages.json | 45 ++++- _locales/it/messages.json | 45 ++++- _locales/ja/messages.json | 45 ++++- _locales/ko/messages.json | 45 ++++- _locales/nb_NO/messages.json | 45 ++++- _locales/nl/messages.json | 45 ++++- _locales/no/messages.json | 45 ++++- _locales/pl/messages.json | 30 ++- _locales/pt_BR/messages.json | 45 ++++- _locales/pt_PT/messages.json | 45 ++++- _locales/ro/messages.json | 45 ++++- _locales/ru/messages.json | 117 +++++++---- _locales/sk/messages.json | 45 ++++- _locales/tr/messages.json | 45 ++++- _locales/zh_CN/messages.json | 42 +++- _locales/zh_TW/messages.json | 39 +++- background.js | 322 ++++++++++-------------------- content-scripts.js | 2 + page.js | 10 +- popup.css | 58 ++++-- popup.js | 366 +++++++++++++++++++---------------- py/locale.py | 8 +- satus.css | 2 +- satus.js | 2 +- youtube-scripts.js | 95 +++++++-- 34 files changed, 1395 insertions(+), 622 deletions(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index d9df2e8d4..26be04f13 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -206,6 +206,9 @@ "decreasePlaybackSpeed": { "message": "تقليل سرعة التشغيل" }, + "decreaseVolume": { + "message": "Decrease volume" + }, "decreaseVolume5": { "message": "5% خفض الصوت" }, @@ -224,6 +227,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "حذف ملفات تعريف الارتباط من اليوتيوب" }, @@ -383,12 +389,6 @@ "hideCards": { "message": "إخفاء البطاقات" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -413,6 +413,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "إخفاء قائمة التشغيل" }, @@ -431,6 +440,12 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "إخفاء عدد المشاهدات" }, @@ -476,6 +491,9 @@ "increasePlaybackSpeed": { "message": "زيادة سرعة التشغيل" }, + "increaseVolume": { + "message": "Increase volume" + }, "increaseVolume5": { "message": "5% زيادة الصوت" }, @@ -494,6 +512,9 @@ "legacyYoutube": { "message": "اليوتيوب القديم" }, + "library": { + "message": "Library" + }, "light": { "message": "ضوء" }, @@ -506,6 +527,9 @@ "like": { "message": "اعحبني" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "الإعجابات" }, @@ -536,6 +560,12 @@ "mixer": { "message": "مهندس الصوت" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "ألواني" }, @@ -845,12 +875,21 @@ "todayAt": { "message": "اليوم عند الساعة" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "تبديل وضع البطاقات" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "رسائل المحادثة الهامّة" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "التشغيل التلقائي للفيديو الدعائي" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index c063494d9..c4b8d3597 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "ডিফল্ট বিষয়বস্তুর দেশ" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "ইউটিউব এর কুকি ডিলিট করুন" }, @@ -383,12 +386,6 @@ "hideCards": { "message": "কার্ড লুকান" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "কান্ট্রি কোড লুকান" }, @@ -413,6 +410,15 @@ "hideMoreButton": { "message": "আরও লুকান বোতাম" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "প্লেলিস্ট লুকান" }, @@ -431,6 +437,12 @@ "hideSkipOverlay": { "message": "স্কিপ ওভারলে লুকান" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "দর্শন গণনা লুকান" }, @@ -494,6 +506,9 @@ "legacyYoutube": { "message": "উত্তরাধিকার ইউটিউব" }, + "library": { + "message": "Library" + }, "light": { "message": "হালকাো" }, @@ -506,6 +521,9 @@ "like": { "message": "লাইক" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "লাইক গুলি" }, @@ -536,6 +554,12 @@ "mixer": { "message": "মিক্সার" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "আমার রং" }, @@ -845,12 +869,21 @@ "todayAt": { "message": "আজ এ" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "কার্ড প্রতিস্থাপন করুন" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "শীর্ষ চ্যাট" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "ট্রেলার অটোপ্লে" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 49bbe2e98..467003435 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "YouTube-Cookies löschen" }, @@ -383,12 +386,6 @@ "hideCards": { "message": "Karten ausblenden" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -413,6 +410,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "Playlists ausblenden" }, @@ -431,6 +437,12 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "Videoaufrufe ausblenden" }, @@ -494,6 +506,9 @@ "legacyYoutube": { "message": "Klassiches YouTube" }, + "library": { + "message": "Library" + }, "light": { "message": "Hell" }, @@ -506,6 +521,9 @@ "like": { "message": "Like" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "Likes" }, @@ -536,6 +554,12 @@ "mixer": { "message": "Mischpult" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "Meine Farben" }, @@ -845,12 +869,21 @@ "todayAt": { "message": "Heute um" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "Karten ausblenden" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "Top Chat" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "Kanal-Intro automatisch abspielen" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index e760b9b13..99582df74 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "Κατάργησε τα cookies του YouTube" }, @@ -383,12 +386,6 @@ "hideCards": { "message": "Απόκρυψε τις κάρτες" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -413,6 +410,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "Απόκρυψε τα playlists" }, @@ -431,6 +437,12 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "Απόκρυψε τον αριθμό προβολών" }, @@ -494,6 +506,9 @@ "legacyYoutube": { "message": "Παλιά έκδοση YouTube" }, + "library": { + "message": "Library" + }, "light": { "message": "Ανοιχτόχρωμο" }, @@ -506,6 +521,9 @@ "like": { "message": "Μου αρέσει" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "Likes" }, @@ -536,6 +554,12 @@ "mixer": { "message": "Mixer" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "Τα χρώματά μου" }, @@ -845,12 +869,21 @@ "todayAt": { "message": "Σήμερα στις" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "Toggle cards" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "Top chat" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "Trailer autoplay" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 6f04e094b..66026dc8a 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -389,12 +389,6 @@ "hideCards": { "message": "Hide cards" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -419,6 +413,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "Hide playlist" }, @@ -440,6 +443,9 @@ "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "Hide views count" }, @@ -503,6 +509,9 @@ "legacyYoutube": { "message": "Legacy YouTube" }, + "library": { + "message": "Library" + }, "light": { "message": "Light" }, @@ -515,6 +524,9 @@ "like": { "message": "Like" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "Likes" }, @@ -545,6 +557,12 @@ "mixer": { "message": "Mixer" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "My colors" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index ddfe9fa91..180e5e860 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "Borrar cookies de YouTube" }, @@ -383,12 +386,6 @@ "hideCards": { "message": "Ocultar tarjetas" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -413,6 +410,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "Ocultar playlist" }, @@ -431,6 +437,12 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "Ocultar contador de visitas" }, @@ -494,6 +506,9 @@ "legacyYoutube": { "message": " YouTube antiguo" }, + "library": { + "message": "Library" + }, "light": { "message": "Claro" }, @@ -506,6 +521,9 @@ "like": { "message": "Like" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "Likes" }, @@ -536,6 +554,12 @@ "mixer": { "message": "Mezclador" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "Mis colores" }, @@ -845,12 +869,21 @@ "todayAt": { "message": "Hoy a las" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "Toggle cards" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "Top chat" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "Reproducción automática de trailer" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index ded5a636e..e40154c73 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "Supprimer les cookies YouTube" }, @@ -383,12 +386,6 @@ "hideCards": { "message": "Cacher les cartes" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -413,6 +410,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "Cacher la liste de lecture" }, @@ -431,6 +437,12 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "Voir le compte des vues" }, @@ -494,6 +506,9 @@ "legacyYoutube": { "message": "Ancienne version de Youtube" }, + "library": { + "message": "Library" + }, "light": { "message": "Clair" }, @@ -506,6 +521,9 @@ "like": { "message": "J'aime" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "J'aime" }, @@ -536,6 +554,12 @@ "mixer": { "message": "Mélangeur de volume" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "Mes couleurs" }, @@ -854,9 +878,15 @@ "toggleCards": { "message": "Toggle cards" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "Top chat" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "Démarrage automatique des annonces" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index 8af30ac90..5c48142b7 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "डिफॉल्ट विषय देश" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "यूट्यूब कुकीज़ हटाएं" }, @@ -383,12 +386,6 @@ "hideCards": { "message": "पत्ते छिपाओ" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "देश कोड छुपाएं" }, @@ -413,6 +410,15 @@ "hideMoreButton": { "message": "अधिक बटन छुपाएं" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "प्लेलिस्ट छिपाएं" }, @@ -431,6 +437,12 @@ "hideSkipOverlay": { "message": "स्किप ओवरले छुपाएं" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "व्यू काउंट छिपाएं" }, @@ -494,6 +506,9 @@ "legacyYoutube": { "message": "विरासत यूट्यूब" }, + "library": { + "message": "Library" + }, "light": { "message": "हलका" }, @@ -506,6 +521,9 @@ "like": { "message": "पसंद" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "को यह पसंद है" }, @@ -536,6 +554,12 @@ "mixer": { "message": "मिक्सर" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "मेरे रंग" }, @@ -845,12 +869,21 @@ "todayAt": { "message": "आज इस समय" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "Toggle cards" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "शीर्ष चैट" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "ट्रेलर ऑटोप्ले" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 00f19f5ce..4ddcc5c09 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "Izbrišite YouTube kolačiće" }, @@ -386,12 +389,6 @@ "hideCards": { "message": "Sakrij kartice" }, - "hideControls": { - "message": "Sakrij kontrole playera" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -416,6 +413,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "Sakrij kontrole playera" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "Sakrij popis za reprodukciju" }, @@ -437,6 +443,9 @@ "hideThumbnailOverlay": { "message": "Sakrij gumbe na sličicama" }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "Sakrij broj pregleda" }, @@ -500,6 +509,9 @@ "legacyYoutube": { "message": "Naslijeđeni YouTube" }, + "library": { + "message": "Library" + }, "light": { "message": "Svjetlo" }, @@ -512,6 +524,9 @@ "like": { "message": "Sviđa mi se" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "Sviđaju mi se" }, @@ -542,6 +557,12 @@ "mixer": { "message": "Mikser" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "Moje boje" }, @@ -866,6 +887,9 @@ "topChat": { "message": "Top chat" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "Automatska reprodukcija kratkog filma" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index af586b068..454eb20bd 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "Hapus kuki youtube" }, @@ -383,12 +386,6 @@ "hideCards": { "message": "Sembunyikan kartu" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -413,6 +410,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "Sembunyikan daftar putar" }, @@ -431,6 +437,12 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "Sembunyikan jumlah penayangan" }, @@ -494,6 +506,9 @@ "legacyYoutube": { "message": "YouTube lama" }, + "library": { + "message": "Library" + }, "light": { "message": "Terang" }, @@ -506,6 +521,9 @@ "like": { "message": "Suka" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "Suka" }, @@ -536,6 +554,12 @@ "mixer": { "message": "Mixer" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "Warna saya" }, @@ -842,12 +866,21 @@ "todayAt": { "message": "Hari ini di" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "Alihkan kartu" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "Obrolan teratas" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "Putar otomatis cuplikan" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index c8298c6d9..cb2841c43 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "Cancella cookie YouTube" }, @@ -383,12 +386,6 @@ "hideCards": { "message": "Nascondi tessere di fine video" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -413,6 +410,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "Nascondi scaletta" }, @@ -431,6 +437,12 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "Nascondi contatore visualizzazioni" }, @@ -494,6 +506,9 @@ "legacyYoutube": { "message": "YouTube versione legacy" }, + "library": { + "message": "Library" + }, "light": { "message": "Chiaro" }, @@ -506,6 +521,9 @@ "like": { "message": "Mi piace" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "Numero di Mi piace" }, @@ -536,6 +554,12 @@ "mixer": { "message": "Mixer" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "Miei colori" }, @@ -842,12 +866,21 @@ "todayAt": { "message": "Oggi alle" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "Dis/attiva tessere di fine video" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "Chat superiore" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "Avvio automatico trailer" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 5aac9ead1..45539c0d3 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "YouTube の Cookie を削除する" }, @@ -383,12 +386,6 @@ "hideCards": { "message": "カードを隠す" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -413,6 +410,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "再生リストを隠す" }, @@ -431,6 +437,12 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "視聴数を隠す" }, @@ -494,6 +506,9 @@ "legacyYoutube": { "message": "古い YouTube にする" }, + "library": { + "message": "Library" + }, "light": { "message": "ライト" }, @@ -506,6 +521,9 @@ "like": { "message": "高評価" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "評価" }, @@ -536,6 +554,12 @@ "mixer": { "message": "ミキサー" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "色設定" }, @@ -845,12 +869,21 @@ "todayAt": { "message": "測定時刻" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "Toggle cards" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "上位チャット" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "トレーラーを自動再生する" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 3a14e2a22..24b5eb78b 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "유튜브 쿠키 삭제" }, @@ -383,12 +386,6 @@ "hideCards": { "message": "카드 숨기기" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "국가코드 숨기기" }, @@ -413,6 +410,15 @@ "hideMoreButton": { "message": "\"더보기\" 버튼 숨기기" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "재생 목록 숨기기" }, @@ -431,6 +437,12 @@ "hideSkipOverlay": { "message": "\"오버레이 건너뛰기\" 숨기기" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "조회수 숨기기" }, @@ -494,6 +506,9 @@ "legacyYoutube": { "message": "레거시 유튜브" }, + "library": { + "message": "Library" + }, "light": { "message": "밝게" }, @@ -506,6 +521,9 @@ "like": { "message": "좋아요" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "좋아요" }, @@ -536,6 +554,12 @@ "mixer": { "message": "믹서" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "내 컬러" }, @@ -842,12 +866,21 @@ "todayAt": { "message": "오늘의" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "토글 카드" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "탑 챗" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "트레일러 자동재생" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 0e7e219d2..59d803e88 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "Slett YouTube-informasjonskapsler" }, @@ -386,12 +389,6 @@ "hideCards": { "message": "Skjul kort" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -416,6 +413,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "Skjul spilleliste" }, @@ -434,6 +440,12 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "Skjul visningsteller" }, @@ -497,6 +509,9 @@ "legacyYoutube": { "message": "Gammeldags YouTube" }, + "library": { + "message": "Library" + }, "light": { "message": "Lys" }, @@ -509,6 +524,9 @@ "like": { "message": "Gunst" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "Begunstninger" }, @@ -539,6 +557,12 @@ "mixer": { "message": "Mikser" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "Mine farger" }, @@ -848,12 +872,21 @@ "todayAt": { "message": "I dag kl." }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "Veksle kort" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "Hovedsludring" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "Trailer autospilling" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index c6c991f52..b82ff09a2 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "YouTube-cookies verwijderen" }, @@ -383,12 +386,6 @@ "hideCards": { "message": "Verberg kaarten" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -413,6 +410,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "Verberg afspeellijst" }, @@ -431,6 +437,12 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "Verberg views teller" }, @@ -494,6 +506,9 @@ "legacyYoutube": { "message": "Oude YouTube-uiterlijk" }, + "library": { + "message": "Library" + }, "light": { "message": "Licht" }, @@ -506,6 +521,9 @@ "like": { "message": "Vind ik leuk" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "Vind-ik-leuks" }, @@ -536,6 +554,12 @@ "mixer": { "message": "Mixer" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "Mijn kleuren" }, @@ -845,12 +869,21 @@ "todayAt": { "message": "Vandaag om" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "Toggle cards" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "Top-chat" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "Trailer automatisch afspelen" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index f46234542..70ac13e20 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "Slett YouTube-informasjonskapsler" }, @@ -383,12 +386,6 @@ "hideCards": { "message": "Skjul kort" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -410,6 +407,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "Skjul spilleliste" }, @@ -428,6 +434,12 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "Skjul visninger teller" }, @@ -491,6 +503,9 @@ "legacyYoutube": { "message": "Legacy YouTube" }, + "library": { + "message": "Library" + }, "light": { "message": "Lys" }, @@ -503,6 +518,9 @@ "like": { "message": "Like" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "Likes" }, @@ -533,6 +551,12 @@ "mixer": { "message": "Mikser" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "Mine farger" }, @@ -839,9 +863,18 @@ "todayAt": { "message": "I dag kl" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "Hoved chat" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "Trailer autospilling" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 817a518cd..381214c50 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -389,12 +389,6 @@ "hideCards": { "message": "Ukryj karty" }, - "hideControls": { - "message": "Ukryj pasek sterowania odtwarzaczem" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Ukryj kod kraju" }, @@ -419,6 +413,15 @@ "hideMoreButton": { "message": "Ukryj przycisk \"Więcej\"" }, + "hidePlayerControlsBar": { + "message": "Ukryj pasek sterowania odtwarzaczem" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "Ukryj playliste" }, @@ -440,6 +443,9 @@ "hideThumbnailOverlay": { "message": "Ukryj przyciski na miniaturach" }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "Ukryj ilość wyświetleń" }, @@ -503,6 +509,9 @@ "legacyYoutube": { "message": "Stara wersja YouTube" }, + "library": { + "message": "Library" + }, "light": { "message": "Jasny" }, @@ -515,6 +524,9 @@ "like": { "message": "Polub" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "Polubienia" }, @@ -545,6 +557,12 @@ "mixer": { "message": "Mikser" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "Moje kolory" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 9aa0989be..570174dbd 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "Deletar cookies do YouTube" }, @@ -383,12 +386,6 @@ "hideCards": { "message": "Ocultar cards" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -413,6 +410,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "Ocultar playlist" }, @@ -431,6 +437,12 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "Ocultar visualizações" }, @@ -494,6 +506,9 @@ "legacyYoutube": { "message": "YouTube antigo" }, + "library": { + "message": "Library" + }, "light": { "message": "Claro" }, @@ -506,6 +521,9 @@ "like": { "message": "Gostei!" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "Avaliações" }, @@ -536,6 +554,12 @@ "mixer": { "message": "Mixer" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "My colors" }, @@ -845,12 +869,21 @@ "todayAt": { "message": "Hoje às" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "Toggle cards" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "Top chat" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "Reproduzir trailer" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index b50550c72..0536227c1 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "Apagar os cookies do YouTube" }, @@ -383,12 +386,6 @@ "hideCards": { "message": "Esconder cartas" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -413,6 +410,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "Esconder lista de reprodução" }, @@ -431,6 +437,12 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "Esconder número de vistos" }, @@ -494,6 +506,9 @@ "legacyYoutube": { "message": "YouTube antigo" }, + "library": { + "message": "Library" + }, "light": { "message": "Claro" }, @@ -506,6 +521,9 @@ "like": { "message": "Gostar" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "Gostos" }, @@ -536,6 +554,12 @@ "mixer": { "message": "Mistura" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "Minhas cores" }, @@ -845,12 +869,21 @@ "todayAt": { "message": "Hoje em" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "Toggle cards" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "Conversa principal" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "Trailer toca automaticamente" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index fd7f7b25d..ff7aba1f4 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "Șterge cookie-urile YouTube" }, @@ -386,12 +389,6 @@ "hideCards": { "message": "Ascunde cardurile" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -416,6 +413,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "Ascunde playlistul" }, @@ -434,6 +440,12 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "Ascunde numărul vizualizărilor" }, @@ -497,6 +509,9 @@ "legacyYoutube": { "message": "YouTube vechi" }, + "library": { + "message": "Library" + }, "light": { "message": "Deschis" }, @@ -509,6 +524,9 @@ "like": { "message": "Îmi place" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "Like-uri" }, @@ -539,6 +557,12 @@ "mixer": { "message": "Mixer" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "Culorile mele" }, @@ -851,12 +875,21 @@ "todayAt": { "message": "Azi la" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "Comută cardurile" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "Top chat" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "Auto-redă trailerul" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 0ffe84684..51e952792 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -84,10 +84,10 @@ "message": "Автовоспроизведение" }, "backgroundColor": { - "message": "Background color" + "message": "Цвет фона" }, "backgroundOpacity": { - "message": "Background opacity" + "message": "Прозрачность фона" }, "backupAndReset": { "message": "Резервное копирование и сброс" @@ -180,10 +180,10 @@ "message": "Обрезать заголовки глав" }, "customCss": { - "message": "Custom CSS" + "message": "Пользовательский CSS" }, "customJs": { - "message": "Сustom JS" + "message": "Пользовательский JS" }, "customMiniPlayer": { "message": "Новый мини-плеер" @@ -206,6 +206,9 @@ "decreasePlaybackSpeed": { "message": "Уменьшить скорость видео" }, + "decreaseVolume": { + "message": "Уменьшить громкость" + }, "decreaseVolume5": { "message": "Уменьшить громкость на 5%" }, @@ -222,7 +225,10 @@ "message": "Вкладка канала по умолчанию" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Контент страны по умолчанию" + }, + "deleteWatchedVideos": { + "message": "Удалить просмотренные видео" }, "deleteYoutubeCookies": { "message": "Удалить куки YouTube" @@ -306,16 +312,16 @@ "message": "Шрифт" }, "fontColor": { - "message": "Font color" + "message": "Цвет шрифта" }, "fontFamily": { - "message": "Font family" + "message": "Семейство шрифтов" }, "fontOpacity": { - "message": "Font opacity" + "message": "Прозрачность шрифта" }, "fontSize": { - "message": "Font size" + "message": "Размер шрифта" }, "footer": { "message": "Нижний колонтитул" @@ -324,7 +330,7 @@ "message": "Force SDR" }, "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" + "message": "Всегда проигрывать видео с начала" }, "forcedPlaybackSpeed": { "message": "Форсировать скорость воспроизведения" @@ -351,7 +357,7 @@ "message": "Перейти в окно поиска" }, "googleApiKey": { - "message": "Google API key" + "message": "Ключ Google API" }, "gpu": { "message": "GPU" @@ -383,17 +389,11 @@ "hideCards": { "message": "Скрыть карточки" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { - "message": "Hide country code" + "message": "Скрыть код страны" }, "hideDate": { - "message": "Hide date" + "message": "Скрыть дату" }, "hideDetails": { "message": "Скрыть подробную информацию" @@ -408,10 +408,19 @@ "message": "Скрыть нижний колонтитул" }, "hideGradientBottom": { - "message": "Hide Gradient Bottom" + "message": "Скрыть нижний градиент" }, "hideMoreButton": { - "message": "Hide \"More\" button" + "message": "Скрыть кнопку \"...\"" + }, + "hidePlayerControlsBar": { + "message": "Скрыть панель управления плеером" + }, + "hidePlayerControlsBarButtons": { + "message": "Скрыть кнопки панели управления плеером" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" }, "hidePlaylist": { "message": "Скрыть плейлист" @@ -420,22 +429,28 @@ "message": "Скрыть кнопки (справа)" }, "hideSaveButton": { - "message": "Hide \"Save\" button" + "message": "Скрыть кнопку \"Сохранить\"" }, "hideScrollForDetails": { "message": "Скрыть «Прокрутите для подробной информации»" }, "hideShareButton": { - "message": "Hide \"Share\" button" + "message": "Скрыть кнопку \"Поделиться\"" }, "hideSkipOverlay": { - "message": "Hide Skip Overlay" + "message": "Скрыть наложение \"5 секунд\"" + }, + "hideThumbnailOverlay": { + "message": "Скрыть наложение на превью" + }, + "hideThumbnails": { + "message": "Скрыть превью" }, "hideViewsCount": { "message": "Скрыть количество просмотров" }, "hideVoiceSearchButton": { - "message": "Hide voice search button" + "message": "Скрыть кнопку голосового поиска" }, "history": { "message": "История" @@ -476,6 +491,9 @@ "increasePlaybackSpeed": { "message": "Увеличить скорость видео" }, + "increaseVolume": { + "message": "Увеличить громкость" + }, "increaseVolume5": { "message": "Увеличить громкости на 5%" }, @@ -486,7 +504,7 @@ "message": "Items" }, "language": { - "message": "Language" + "message": "Язык" }, "languages": { "message": "Языки" @@ -494,6 +512,9 @@ "legacyYoutube": { "message": "Старая версия YouTube" }, + "library": { + "message": "Библиотека" + }, "light": { "message": "Светлая" }, @@ -506,6 +527,9 @@ "like": { "message": "Лайк" }, + "liked": { + "message": "Понравившиеся" + }, "likes": { "message": "Лайки" }, @@ -513,7 +537,7 @@ "message": "Лайм" }, "limitPageWidth": { - "message": "Limit page width" + "message": "Ограничить ширину страницы" }, "list": { "message": "Список" @@ -536,6 +560,12 @@ "mixer": { "message": "Миксер" }, + "moveSidebarLeft": { + "message": "Сместить боковую панель влево" + }, + "moveThumbnailsRight": { + "message": "Сместить превью вправо" + }, "myColors": { "message": "Мои цвета" }, @@ -672,13 +702,13 @@ "message": "Красный" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Сделать дизлайк красным" }, "relatedVideos": { "message": "Похожие видео" }, "remote": { - "message": "Play on TV" + "message": "Продолжить просмотр на ТВ" }, "removeRelatedSearchResults": { "message": "Удалить похожие результаты поиска" @@ -732,10 +762,10 @@ "message": "Перемотать на 10 секунд вперед" }, "seekNextChapter": { - "message": "seekNextChapter" + "message": "Следующая глава" }, "seekPreviousChapter": { - "message": "seekPreviousChapter" + "message": "Предыдущая глава" }, "settings": { "message": "Настройки" @@ -759,7 +789,7 @@ "message": "Show more" }, "showRemainingDuration": { - "message": "Show video remaining duration" + "message": "Показать оставшуюся продолжительность видео" }, "shuffle": { "message": "Случайный порядок" @@ -777,10 +807,10 @@ "message": "Статично" }, "statsForNerds": { - "message": "Show Stats for Nerds" + "message": "Показать статистику для сисадминов" }, "step": { - "message": "Step" + "message": "Шаг" }, "stop": { "message": "Стоп" @@ -845,11 +875,20 @@ "todayAt": { "message": "Сегодня в" }, + "toggleAutoplay": { + "message": "Переключить автовоспроизведение" + }, "toggleCards": { - "message": "Toggle cards" + "message": "Переключить карточки" + }, + "toggleControls": { + "message": "Переключить панель управления" }, "topChat": { - "message": "Top chat" + "message": "Top чат" + }, + "trackWatchedVideos": { + "message": "Отслеживать просмотренные видео" }, "trailerAutoplay": { "message": "Автовоспроизведение трейлера" @@ -891,7 +930,7 @@ "message": "Видео" }, "viewMode": { - "message": "View Mode" + "message": "Режим просмотра" }, "volume": { "message": "Громкость" @@ -909,10 +948,10 @@ "message": "Белый" }, "windowColor": { - "message": "Window color" + "message": "Цвет окна" }, "windowOpacity": { - "message": "Window opacity" + "message": "Прозрачность окна" }, "yellow": { "message": "Желтый" diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index abb296427..38aacb3d2 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "Vymazať YouTube cookies" }, @@ -383,12 +386,6 @@ "hideCards": { "message": "Skryť karty" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -413,6 +410,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "Skryť zoznam videí" }, @@ -431,6 +437,12 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "Skyť počet videní" }, @@ -494,6 +506,9 @@ "legacyYoutube": { "message": "Starý YouTube" }, + "library": { + "message": "Library" + }, "light": { "message": "Svetlo" }, @@ -506,6 +521,9 @@ "like": { "message": "Páči sa mi to" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "Páči sa mi to" }, @@ -536,6 +554,12 @@ "mixer": { "message": "Mixér" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "Moje farby" }, @@ -845,12 +869,21 @@ "todayAt": { "message": "Dnes o" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "Toggle cards" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "Top chat" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "Automatické prehrávanie ukážky" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 3ab74abe5..6944eb078 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "YouTube çerezleri sil" }, @@ -383,12 +386,6 @@ "hideCards": { "message": "Kartları gizle" }, - "hideControls": { - "message": "Hide player controls bar" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -413,6 +410,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "Oynatma Listesi'ni gizle" }, @@ -431,6 +437,12 @@ "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "Görüntüleme sayısını gizle" }, @@ -494,6 +506,9 @@ "legacyYoutube": { "message": "Eski YouTube" }, + "library": { + "message": "Library" + }, "light": { "message": "Açık" }, @@ -506,6 +521,9 @@ "like": { "message": "Beğen" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "Beğeniler" }, @@ -536,6 +554,12 @@ "mixer": { "message": "Karıştırıcı" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "Renklerim" }, @@ -845,12 +869,21 @@ "todayAt": { "message": "Bugün" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "Kartları aç/kapat" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "En İyi Sohbet Mesajları" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "Fragman otomatik oynatımı" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 162d0eaf3..f8b764ab3 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "默认内容国家" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "清空 YouTube cookies" }, @@ -386,12 +389,6 @@ "hideCards": { "message": "隐藏信息卡片" }, - "hideControls": { - "message": "隐藏播放器控制栏" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "隐藏国家代码" }, @@ -416,6 +413,15 @@ "hideMoreButton": { "message": "隐藏 \"更多\" 按钮" }, + "hidePlayerControlsBar": { + "message": "隐藏播放器控制栏" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "隐藏播放列表" }, @@ -437,6 +443,9 @@ "hideThumbnailOverlay": { "message": "隐藏缩略图上的按钮" }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "隐藏观看量" }, @@ -500,6 +509,9 @@ "legacyYoutube": { "message": "旧版 YouTube" }, + "library": { + "message": "Library" + }, "light": { "message": "明亮" }, @@ -512,6 +524,9 @@ "like": { "message": "顶一下" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "顶/踩总数" }, @@ -542,6 +557,12 @@ "mixer": { "message": "混音器" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "自定义颜色" }, @@ -854,12 +875,21 @@ "todayAt": { "message": "截止今天" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "切换卡片" }, + "toggleControls": { + "message": "Toggle controls" + }, "topChat": { "message": "热门聊天" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "自动播放预告片" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 48c169fa9..fdb73dab4 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -224,6 +224,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, "deleteYoutubeCookies": { "message": "刪除 YouTube cookies" }, @@ -383,12 +386,6 @@ "hideCards": { "message": "隱藏資訊卡" }, - "hideControls": { - "message": "隱藏播放器控制欄" - }, - "hideControlsOptions": { - "message": "Hide player controls options" - }, "hideCountryCode": { "message": "Hide country code" }, @@ -413,6 +410,15 @@ "hideMoreButton": { "message": "Hide \"More\" button" }, + "hidePlayerControlsBar": { + "message": "隱藏播放器控制欄" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, "hidePlaylist": { "message": "隱藏播放清單" }, @@ -434,6 +440,9 @@ "hideThumbnailOverlay": { "message": "隱藏縮圖上的按鈕" }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, "hideViewsCount": { "message": "隱藏觀看次數" }, @@ -497,6 +506,9 @@ "legacyYoutube": { "message": "舊版 YouTube" }, + "library": { + "message": "Library" + }, "light": { "message": "Light" }, @@ -509,6 +521,9 @@ "like": { "message": "喜歡" }, + "liked": { + "message": "Liked" + }, "likes": { "message": "顯示按讚數量" }, @@ -539,6 +554,12 @@ "mixer": { "message": "音量混合器" }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, "myColors": { "message": "自訂主色" }, @@ -851,6 +872,9 @@ "todayAt": { "message": "自今日" }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, "toggleCards": { "message": "啟用結束畫面" }, @@ -860,6 +884,9 @@ "topChat": { "message": "Top chat" }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, "trailerAutoplay": { "message": "預告片自動播放" }, diff --git a/background.js b/background.js index 31cdb1dbf..daad366e0 100644 --- a/background.js +++ b/background.js @@ -17,7 +17,8 @@ --------------------------------------------------------------*/ function googleAnalytics(previous_time) { - var script = document.createElement('script'), + var version = chrome.runtime.getManifest().version, + script = document.createElement('script'), current_time = new Date().getTime(), _gaq = []; @@ -25,7 +26,11 @@ function googleAnalytics(previous_time) { _gaq.push(['_setSessionCookieTimeout', 14400000]); if (current_time - (previous_time || 0) >= 86400000) { - _gaq.push(['_trackPageview', '/improvedtube-' + chrome.runtime.getManifest().version + '/background', 'page-loaded']); + _gaq.push([ + '_trackPageview', + '/improvedtube-' + version + '/background', + 'page-loaded' + ]); chrome.storage.local.set({ ga: current_time @@ -54,7 +59,9 @@ function uninstallURL() { function getLocalization(code, callback) { var xhr = new XMLHttpRequest(); - code = code || window.navigator.language || 'en'; + if (!code) { + code = window.navigator.language; + } xhr.onload = function () { try { @@ -86,25 +93,23 @@ function getLocalization(code, callback) { --------------------------------------------------------------*/ function updateContextMenu(locale) { - chrome.contextMenus.removeAll(); + var items = [ + 'donate', + 'rateMe', + 'GitHub' + ]; - chrome.contextMenus.create({ - id: '0', - title: locale['donate'] || 'donate', - contexts: ['browser_action'] - }); + chrome.contextMenus.removeAll(); - chrome.contextMenus.create({ - id: '1', - title: locale['rateMe'] || 'rateMe', - contexts: ['browser_action'] - }); + for (var i = 0; i < 3; i++) { + var item = items[i]; - chrome.contextMenus.create({ - id: '2', - title: 'GitHub', - contexts: ['browser_action'] - }); + chrome.contextMenus.create({ + id: String(i), + title: locale[item] || item, + contexts: ['browser_action'] + }); + } chrome.contextMenus.onClicked.addListener(function (info) { var links = [ @@ -118,202 +123,6 @@ function updateContextMenu(locale) { } -/*-------------------------------------------------------------- -# MESSAGE LISTENER ---------------------------------------------------------------*/ - -chrome.runtime.onMessage.addListener(function (request, sender) { - if (typeof request === 'object') { - if (request.name === 'translation_request') { - getLocalization(request.path, function () { - if (chrome && chrome.tabs) { - chrome.tabs.query({}, function (tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - name: 'translation_response', - value: xhr.responseText - }); - } - } - }); - } - - chrome.runtime.sendMessage({ - name: 'translation_response', - value: xhr.responseText - }); - }); - } - - if (request.name === 'improvedtube-only-one-player') { - chrome.tabs.query({}, function (tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url') && sender.tab.id !== tabs[i].id) { - chrome.tabs.sendMessage(tabs[i].id, { - action: 'improvedtube-pause' - }); - } - } - }); - } - - if (request.name === 'improvedtube-analyzer') { - var data = request.value, - date = new Date().toDateString(), - hours = new Date().getHours() + ':00'; - - chrome.storage.local.get(function (items) { - if (!items.analyzer) { - items.analyzer = {}; - } - - if (!items.analyzer[date]) { - items.analyzer[date] = {}; - } - - if (!items.analyzer[date][hours]) { - items.analyzer[date][hours] = {}; - } - - if (!items.analyzer[date][hours][data]) { - items.analyzer[date][hours][data] = 0; - } - - items.analyzer[date][hours][data]++; - - chrome.storage.local.set({ - analyzer: items.analyzer - }); - }); - } - - if (request.name === 'improvedtube-blacklist') { - chrome.storage.local.get(function (items) { - if (!items.blacklist || typeof items.blacklist !== 'object') { - items.blacklist = {}; - } - - if (request.data.type === 'channel') { - if (!items.blacklist.channels) { - items.blacklist.channels = {}; - } - - items.blacklist.channels[request.data.id] = { - title: request.data.title, - preview: request.data.preview - }; - } - - if (request.data.type === 'video') { - if (!items.blacklist.videos) { - items.blacklist.videos = {}; - } - - items.blacklist.videos[request.data.id] = { - title: request.data.title - }; - } - - chrome.storage.local.set({ - blacklist: items.blacklist - }); - }); - } - - if (request.name === 'improvedtube-watched') { - chrome.storage.local.get(function (items) { - if (!items.watched || typeof items.watched !== 'object') { - items.watched = {}; - } - - if (request.data.action === 'set') { - items.watched[request.data.id] = { - title: request.data.title - }; - } - - if (request.data.action === 'remove') { - delete items.watched[request.data.id]; - } - - chrome.storage.local.set({ - watched: items.watched - }); - }); - } - - if (request.name === 'download') { - chrome.permissions.request({ - permissions: ['downloads'], - origins: ['https://www.youtube.com/*'] - }, function (granted) { - if (granted) { - try { - var blob = new Blob([JSON.stringify(request.value)], { - type: 'application/json;charset=utf-8' - }); - - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: request.filename, - saveAs: true - }); - } catch (err) { - chrome.runtime.sendMessage({ - name: 'dialog-error', - value: err - }); - } - } else { - chrome.runtime.sendMessage({ - name: 'dialog-error', - value: 'permissionIsNotGranted' - }); - } - }); - } - - if (request.name === 'improvedtube-play') { - chrome.tabs.query({}, function (tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - name: 'improvedtube-play', - id: request.id - }); - } - } - }); - } - - if (request.hasOwnProperty('export')) { - chrome.storage.local.get(function (data) { - chrome.permissions.request({ - permissions: ['downloads'], - origins: ['https://www.youtube.com/*'] - }, function (granted) { - if (granted) { - var blob = new Blob([JSON.stringify(data)], { - type: 'application/octet-stream' - }), - date = new Date(); - - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: 'improvedtube_' + (date.getMonth() + 1) + '_' + date.getDate() + '_' + date.getFullYear() + '.txt', - saveAs: true - }); - } - }); - }); - } - } -}); - - - - /*-------------------------------------------------------------- # TAB FOCUS/BLUR --------------------------------------------------------------*/ @@ -344,9 +153,11 @@ chrome.windows.onFocusChanged.addListener(function (windowId) { if (windows[i].focused === true) { chrome.tabs.getAllInWindow(windows[i].id, function (tabs) { if (tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].active && tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { + for (var j = 0, k = tabs.length; j < k; j++) { + var tab = tabs[j]; + + if (tab.active && tab.hasOwnProperty('url')) { + chrome.tabs.sendMessage(tab.id, { action: 'focus' }); } @@ -356,9 +167,11 @@ chrome.windows.onFocusChanged.addListener(function (windowId) { } else { chrome.tabs.getAllInWindow(windows[i].id, function (tabs) { if (tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { + for (var j = 0, k = tabs.length; j < k; j++) { + var tab = tabs[j]; + + if (tab.hasOwnProperty('url')) { + chrome.tabs.sendMessage(tab.id, { action: 'blur' }); } @@ -379,11 +192,11 @@ chrome.windows.onFocusChanged.addListener(function (windowId) { # GET ITEMS FROM STORAGE --------------------------------------------------------------*/ -chrome.storage.local.get(function (storage) { +chrome.storage.local.get(function (items) { //googleAnalytics(items.ga); //uninstallURL(); - getLocalization(storage.language, function (locale) { + getLocalization(items.language, function (locale) { updateContextMenu(locale); }); }); @@ -404,10 +217,69 @@ chrome.storage.onChanged.addListener(function (changes) { # MESSAGE LISTENER --------------------------------------------------------------*/ -chrome.runtime.onMessage.addListener(function (request, sender) { +chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { var name = request.name; - if (true) { + if (name === 'get-localization') { + getLocalization(request.code, function (locale) { + sendResponse(locale); + }); + + return true; + } else if (name === 'only-one-player') { + chrome.tabs.query({}, function (tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + var tab = tabs[i]; + if (tab.hasOwnProperty('url') && sender.tab.id !== tab.id) { + chrome.tabs.sendMessage(tabs[i].id, { + action: 'improvedtube-pause' + }); + } + } + }); + } else if (name === 'download') { + chrome.permissions.request({ + permissions: ['downloads'], + origins: ['https://www.youtube.com/*'] + }, function (granted) { + if (granted) { + try { + var blob = new Blob([JSON.stringify(request.value)], { + type: 'application/json;charset=utf-8' + }); + + chrome.downloads.download({ + url: URL.createObjectURL(blob), + filename: request.filename, + saveAs: true + }); + } catch (error) { + console.error(error); + } + } else { + console.error('Permission is not granted.'); + } + }); + } else if (name === 'export') { + chrome.storage.local.get(function (data) { + chrome.permissions.request({ + permissions: ['downloads'], + origins: ['https://www.youtube.com/*'] + }, function (granted) { + if (granted) { + var blob = new Blob([JSON.stringify(data)], { + type: 'application/octet-stream' + }), + date = new Date(); + + chrome.downloads.download({ + url: URL.createObjectURL(blob), + filename: 'improvedtube-' + (date.getMonth() + 1) + '-' + date.getDate() + '-' + date.getFullYear() + '.txt', + saveAs: true + }); + } + }); + }); } }); \ No newline at end of file diff --git a/content-scripts.js b/content-scripts.js index b51cf4c60..22015a61c 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -134,6 +134,8 @@ chrome.storage.onChanged.addListener(function (changes) { name = 'playerPlaybackSpeed'; } + ImprovedTube.storage[key] = value; + document.documentElement.setAttribute('it-' + attribute, value); injectScript('ImprovedTube.storage[\'' + key + '\']=' + (typeof value === 'boolean' ? value : '\'' + value + '\'') + ';'); diff --git a/page.js b/page.js index 49500cf5d..4b8eae0ae 100644 --- a/page.js +++ b/page.js @@ -15,12 +15,14 @@ document.addEventListener('DOMContentLoaded', function() { document.head.childNodes[i].remove(); } - for (var i = document.body.childNodes.length - 1; i > -1; i--) { - document.body.childNodes[i].remove(); - } - document.head.appendChild(charset); document.head.appendChild(viewport); document.head.appendChild(title); document.head.appendChild(style); + + document.documentElement.setAttribute('page', true); + + for (var i = document.body.childNodes.length - 1; i > -1; i--) { + document.body.childNodes[i].remove(); + } }); \ No newline at end of file diff --git a/popup.css b/popup.css index c535c9d60..31bb4edaf 100644 --- a/popup.css +++ b/popup.css @@ -15,9 +15,7 @@ body { font-size: 14px; overflow: hidden; margin: 0; -} - -.satus-base { + --satus-primary: #ff4158; --satus-header-background: #fff; --satus-header-text: #777; @@ -32,7 +30,7 @@ body { --it-appearance-shadow-color: #dfdfdf; } -.satus-base[theme=dark] { +body[theme=dark] { --satus-primary: #ff4158; --satus-header-background: #1c2027; --satus-header-text: #b5b5b5; @@ -47,7 +45,7 @@ body { --it-appearance-shadow-color: #393e46; } -.satus-base[theme=night] { +body[theme=night] { --satus-primary: #9ebdfa; --satus-header-background: #24478f; --satus-header-text: #fafafa; @@ -62,7 +60,7 @@ body { --it-appearance-shadow-color: #558bf6; } -.satus-base[theme=dawn] { +body[theme=dawn] { --satus-primary: #e2367e; --satus-header-background: #e98f63; --satus-header-text: #fafafa; @@ -77,7 +75,7 @@ body { --it-appearance-shadow-color: #e86e30; } -.satus-base[theme=sunset] { +body[theme=sunset] { --satus-primary: #cc666e; --satus-header-background: #af5a5e; --satus-header-text: #fafafa; @@ -92,7 +90,7 @@ body { --it-appearance-shadow-color: #e86e30; } -.satus-base[theme=desert] { +body[theme=desert] { --satus-primary: #f83; --satus-header-background: #8cb7f2; --satus-header-text: #fafafa; @@ -107,7 +105,7 @@ body { --it-appearance-shadow-color: #5e9aed; } -.satus-base[theme=plain] { +body[theme=plain] { --satus-primary: #badec9; --satus-header-background: #9fc6af; --satus-header-text: #404040; @@ -122,7 +120,7 @@ body { --it-appearance-shadow-color: #d7995b; } -.satus-base[theme=black] { +body[theme=black] { --satus-primary: #ff4158; --satus-header-background: #222; --satus-header-text: #fafafa; @@ -145,6 +143,12 @@ body { border-bottom: 1px solid rgba(0, 0, 0, .1); } +.satus-header .satus-section { + flex-wrap: nowrap; + flex: 1; + width: calc(100% - 96px); +} + .satus-header .satus-section--align-start>* { margin-right: 8px; } @@ -174,15 +178,23 @@ body { fill: none; } +.satus-header .satus-span--title { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + flex: 1; +} + .satus-input--search[type=text] { position: absolute; - right: 112px; + right: 56px; display: none; - width: calc(100vw - 128px); + width: calc(100vw - 72px); height: 36px; padding-right: 36px; - background: #fff; - box-shadow: 0 0 1px 1px rgb(0 0 0 / 10%); + background: var(--satus-header-background); + box-shadow: 0 0 1px 1px var(--satus-hover); + z-index: 1; } .satus-input--search:focus { @@ -195,12 +207,13 @@ body { .satus-header .satus-button--close-search { position: absolute; - right: 116px; + right: 60px; display: none; width: 28px; min-width: 28px; height: 28px; padding: 4px !important; + z-index: 1; } .search-mode .satus-button--close-search { @@ -226,16 +239,25 @@ body { position: absolute; top: 0; left: 16px; - width: calc(100vw - 128px); + width: calc(100% - 72px); + min-width: unset; max-width: unset; padding: 0; transform-origin: top; border-top-left-radius: 0; border-top-right-radius: 0; - background-color: var(--satus-main-background); + background-color: var(--satus-layers-background); box-shadow: 0 2px 4px 2px rgba(0, 0, 0, .2); } +.search-results .satus-section { + margin: 0; + background: transparent; + border-radius: 0; + border: none; + width: 100%; +} + .search-results .satus-section>* { width: 100%; height: 40px; @@ -339,7 +361,7 @@ overflow: hidden; margin: 8px 0 0; white-space: nowrap; text-overflow: ellipsis; - width: calc(100% - 32px); + width: calc(100% - 16px); text-align: center; } diff --git a/popup.js b/popup.js index 2198657fe..d75393778 100644 --- a/popup.js +++ b/popup.js @@ -49,6 +49,7 @@ var skeleton = { }, title: { component: 'span', + variant: 'title', text: 'ImprovedTube' } }, @@ -226,14 +227,14 @@ var skeleton = { on: { click: { component: 'modal', - class: 'satus-modal--vertical', + variant: 'vertical', active_features: { component: 'button', on: { click: { component: 'section', - class: 'satus-section--card', + variant: 'card', on: { render: function () { var component = this; @@ -241,9 +242,16 @@ var skeleton = { satus.search('', skeleton, function (results) { for (var key in results) { var result = results[key], + default_value = result.value || false, value = satus.storage.get(key); - if (satus.isset(value) && value !== result.value) { + if (result.component === 'select') { + if (satus.isset(result.value) === false) { + default_value = result.options[0].value; + } + } + + if (satus.isset(value) && value !== default_value) { satus.render(result, component); } } @@ -286,7 +294,7 @@ var skeleton = { click: { section_1: { component: 'section', - class: 'satus-section--card', + variant: 'card', on: { render: function () { document.querySelector('.satus-modal__scrim').click(); @@ -304,11 +312,11 @@ var skeleton = { }, custom_js_section: { component: 'section', - class: 'satus-section--card', + variant: 'card', custom_js: { component: 'input', attr: { - type: 'text' + 'type': 'text' }, on: { render: function () { @@ -327,11 +335,11 @@ var skeleton = { }, custom_css_section: { component: 'section', - class: 'satus-section--card', + variant: 'card', custom_css: { component: 'input', attr: { - type: 'text' + 'type': 'text' }, on: { render: function () { @@ -350,7 +358,7 @@ var skeleton = { }, google_api_key_section: { component: 'section', - class: 'satus-section--card', + variant: 'card', google_api_key: { component: 'input', attr: { @@ -358,10 +366,16 @@ var skeleton = { }, on: { render: function () { - this.value = typeof satus.storage.get('google-api-key') === 'string' && satus.storage.get('google-api-key').length > 0 ? satus.storage.get('google-api-key') : 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; + this.value = satus.storage.get('google-api-key') || 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; }, input: function () { - satus.storage.set('google-api-key', typeof satus.storage.get('google-api-key') === 'string' && satus.storage.get('google-api-key').length > 0 ? satus.storage.get('google-api-key') : 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'); + var value = this.value; + + if (value.length === 0) { + value = 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; + } + + satus.storage.set('google-api-key', value); } } } @@ -372,14 +386,14 @@ var skeleton = { svg: { component: 'svg', attr: { - viewBox: '0 0 24 24', - fill: 'currentColor' + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' }, path: { component: 'path', attr: { - d: 'M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z' + 'd': 'M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z' } } }, @@ -392,7 +406,7 @@ var skeleton = { section_2: { component: 'section', - class: 'satus-section--card', + variant: 'card', appearance: { component: 'button', @@ -405,7 +419,7 @@ var skeleton = { }, section_1: { component: 'section', - class: 'satus-section--card', + variant: 'card', header: { component: 'button', text: 'header', @@ -413,7 +427,7 @@ var skeleton = { click: { section: { component: 'section', - class: 'satus-section--card', + variant: 'card', title_version: { component: 'switch', @@ -430,7 +444,7 @@ var skeleton = { click: { section_1: { component: 'section', - class: 'satus-section--card', + variant: 'card', improvedtube_home: { component: 'select', @@ -451,7 +465,7 @@ var skeleton = { }, section_2: { component: 'section', - class: 'satus-section--card', + variant: 'card', it_general: { component: 'switch', @@ -515,7 +529,7 @@ var skeleton = { }, section_2: { component: 'section', - class: 'satus-section--card', + variant: 'card', improvedtube_youtube_icon: { text: 'improvedtubeIconOnYoutube', @@ -539,18 +553,6 @@ var skeleton = { text: 'belowPlayer', value: 'below_player' }] - }, - improvedtube_browser_icon: { - text: 'improvedtubeIconInBrowser', - component: 'select', - - options: [{ - text: 'onlyActiveOnYoutube', - value: 'youtube' - }, { - text: 'alwaysActive', - value: 'always' - }] } } } @@ -559,14 +561,14 @@ var skeleton = { svg: { component: 'svg', attr: { - viewBox: '0 0 24 24', - fill: 'currentColor' + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' }, path: { component: 'path', attr: { - d: 'M7 16c.6 0 1 .5 1 1a2 2 0 0 1-2 2h-.5a4 4 0 0 0 .5-2c0-.6.5-1 1-1M18.7 3a1 1 0 0 0-.7.3l-9 9 2.8 2.7 9-9c.3-.4.3-1 0-1.4l-1.4-1.3a1 1 0 0 0-.7-.3zM7 14a3 3 0 0 0-3 3c0 1.3-1.2 2-2 2 1 1.2 2.5 2 4 2a4 4 0 0 0 4-4 3 3 0 0 0-3-3z' + 'd': 'M7 16c.6 0 1 .5 1 1a2 2 0 0 1-2 2h-.5a4 4 0 0 0 .5-2c0-.6.5-1 1-1M18.7 3a1 1 0 0 0-.7.3l-9 9 2.8 2.7 9-9c.3-.4.3-1 0-1.4l-1.4-1.3a1 1 0 0 0-.7-.3zM7 14a3 3 0 0 0-3 3c0 1.3-1.2 2-2 2 1 1.2 2.5 2 4 2a4 4 0 0 0 4-4 3 3 0 0 0-3-3z' } } }, @@ -577,12 +579,11 @@ var skeleton = { }, languages: { component: 'button', - on: { click: { section: { component: 'section', - class: 'satus-section--card', + variant: 'card', language: { text: 'improvedtubeLanguage', @@ -926,14 +927,14 @@ var skeleton = { svg: { component: 'svg', attr: { - viewBox: '0 0 24 24', - fill: 'currentColor' + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' }, path: { component: 'path', attr: { - d: 'M12.9 15l-2.6-2.4c1.8-2 3-4.2 3.8-6.6H17V4h-7V2H8v2H1v2h11.2c-.7 2-1.8 3.8-3.2 5.3-1-1-1.7-2.1-2.3-3.3h-2c.7 1.6 1.7 3.2 3 4.6l-5.1 5L4 19l5-5 3.1 3.1.8-2zm5.6-5h-2L12 22h2l1.1-3H20l1.1 3h2l-4.5-12zm-2.6 7l1.6-4.3 1.6 4.3H16z' + 'd': 'M12.9 15l-2.6-2.4c1.8-2 3-4.2 3.8-6.6H17V4h-7V2H8v2H1v2h11.2c-.7 2-1.8 3.8-3.2 5.3-1-1-1.7-2.1-2.3-3.3h-2c.7 1.6 1.7 3.2 3 4.6l-5.1 5L4 19l5-5 3.1 3.1.8-2zm5.6-5h-2L12 22h2l1.1-3H20l1.1 3h2l-4.5-12zm-2.6 7l1.6-4.3 1.6 4.3H16z' } } }, @@ -944,12 +945,11 @@ var skeleton = { }, backup_and_reset: { component: 'button', - on: { click: { section: { component: 'section', - class: 'satus-section--card', + variant: 'card', import_settings: { component: 'button', @@ -1096,14 +1096,14 @@ var skeleton = { svg: { component: 'svg', attr: { - viewBox: '0 0 24 24', - fill: 'currentColor' + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' }, path: { component: 'path', attr: { - d: 'M13.3 3A9 9 0 0 0 4 12H2.2c-.5 0-.7.5-.3.8l2.7 2.8c.2.2.6.2.8 0L8 12.8c.4-.3.1-.8-.3-.8H6a7 7 0 1 1 2.7 5.5 1 1 0 0 0-1.3.1 1 1 0 0 0 0 1.5A9 9 0 0 0 22 11.7C22 7 18 3.1 13.4 3zm-.6 5c-.4 0-.7.3-.7.8v3.6c0 .4.2.7.5.9l3.1 1.8c.4.2.8.1 1-.2.2-.4.1-.8-.2-1l-3-1.8V8.7c0-.4-.2-.7-.7-.7z' + 'd': 'M13.3 3A9 9 0 0 0 4 12H2.2c-.5 0-.7.5-.3.8l2.7 2.8c.2.2.6.2.8 0L8 12.8c.4-.3.1-.8-.3-.8H6a7 7 0 1 1 2.7 5.5 1 1 0 0 0-1.3.1 1 1 0 0 0 0 1.5A9 9 0 0 0 22 11.7C22 7 18 3.1 13.4 3zm-.6 5c-.4 0-.7.3-.7.8v3.6c0 .4.2.7.5.9l3.1 1.8c.4.2.8.1 1-.2.2-.4.1-.8-.2-1l-3-1.8V8.7c0-.4-.2-.7-.7-.7z' } } }, @@ -1114,12 +1114,11 @@ var skeleton = { }, date_and_time: { component: 'button', - on: { click: { section: { component: 'section', - class: 'satus-section--card', + variant: 'card', use_24_hour_format: { component: 'switch', @@ -1133,14 +1132,14 @@ var skeleton = { svg: { component: 'svg', attr: { - viewBox: '0 0 24 24', - fill: 'currentColor' + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' }, path: { component: 'path', attr: { - d: 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm-.2-13c-.5 0-.8.3-.8.7v4.7c0 .4.2.7.5.9l4.1 2.5c.4.2.8 0 1-.3.2-.3.1-.7-.2-1l-3.9-2.2V7.7c0-.4-.3-.7-.7-.7z' + 'd': 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm-.2-13c-.5 0-.8.3-.8.7v4.7c0 .4.2.7.5.9l4.1 2.5c.4.2.8 0 1-.3.2-.3.1-.7-.2-1l-3.9-2.2V7.7c0-.4-.3-.7-.7-.7z' } } }, @@ -1151,12 +1150,11 @@ var skeleton = { }, location: { component: 'button', - on: { click: { section: { component: 'section', - class: 'satus-section--card', + variant: 'card', default_content_country: { component: 'select', @@ -2171,22 +2169,22 @@ var skeleton = { svg: { component: 'svg', attr: { - viewBox: '0 0 24 24', - fill: 'currentColor' + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' }, circle: { component: 'circle', attr: { - cx: 12, - cy: 9, - r: 2.5 + 'cx': '12', + 'cy': '9', + 'r': '2.5' } }, path: { component: 'path', attr: { - d: 'M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z' + 'd': 'M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z' } } }, @@ -2197,7 +2195,6 @@ var skeleton = { }, about: { component: 'button', - on: { click: { component: 'span', @@ -2215,7 +2212,7 @@ var skeleton = { }, extension_section: { component: 'section', - class: 'satus-section--card', + variant: 'card', list: { component: 'list', @@ -2232,7 +2229,7 @@ var skeleton = { }, browser_section: { component: 'section', - class: 'satus-section--card', + variant: 'card', list: { component: 'list', @@ -2283,7 +2280,7 @@ var skeleton = { }, os_section: { component: 'section', - class: 'satus-section--card', + variant: 'card', list: { component: 'list', @@ -2300,7 +2297,7 @@ var skeleton = { }, device_section: { component: 'section', - class: 'satus-section--card', + variant: 'card', list: { component: 'list', @@ -2327,14 +2324,14 @@ var skeleton = { svg: { component: 'svg', attr: { - viewBox: '0 0 24 24', - fill: 'currentColor' + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' }, path: { component: 'path', attr: { - d: 'M11 7h2v2h-2zm0 4h2v6h-2zm1-9a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16z' + 'd': 'M11 7h2v2h-2zm0 4h2v6h-2zm1-9a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16z' } } }, @@ -2376,7 +2373,6 @@ var skeleton = { }, mixer: { component: 'button', - on: { click: { component: 'section', @@ -2563,24 +2559,35 @@ var skeleton = { component: 'layers', on: { open: function () { - var skeleton = this.path[this.path.length - 1]; + var skeleton = this.path[this.path.length - 1], + parent = skeleton.parent, + section = this.base.skeleton.header.section_start, + title = 'ImprovedTube'; + + if (parent) { + if (parent.label) { + title = parent.label.text; + } else if (parent.text) { + title = parent.text; + } + } - this.base.skeleton.header.section_start.back.rendered.hidden = this.path.length <= 1; - this.base.skeleton.header.section_start.title.rendered.innerText = satus.locale.get(((skeleton.parent || {}).label || skeleton.parent || {}).text || 'ImprovedTube'); + section.back.rendered.hidden = this.path.length <= 1; + section.title.rendered.innerText = satus.locale.get(title); } }, section: { component: 'section', - class: 'satus-section--home', + variant: 'home', general: { component: 'button', - class: 'satus-button--general', + variant: 'general', on: { click: { component: 'section', - class: 'satus-section--card', + variant: 'card', youtube_home_page: { component: 'select', @@ -2604,7 +2611,7 @@ var skeleton = { text: 'search', value: 'search' }, { - text: '👍 liked', + text: 'liked', value: '/playlist?list=LL' }, { text: 'library', @@ -2625,11 +2632,9 @@ var skeleton = { text: 'markWatchedVideos', on: { click: function () { - setTimeout(function () { - if (satus.storage.mark_watched_videos && !satus.storage.track_watched_videos) { - document.querySelector('.satus-switch > input[data-storage-key="track_watched_videos"]').click(); - } - }, 50); + if (satus.storage.get('mark_watched_videos') && !satus.storage.get('track_watched_videos')) { + this.nextSibling.click(); + } } } }, @@ -2639,20 +2644,16 @@ var skeleton = { }, delete_watched_videos: { component: 'button', - text: 'deleteWatchedVideos', on: { - render: function () { - this.firstChild.innerText += ' (' + (satus.storage.watched ? Object.keys(satus.storage.watched).length : 0) + ')'; - }, click: function () { var component = this; satus.render({ - component: 'dialog', - class: 'satus-dialog--confirm', + component: 'modal', + variant: 'confirm', message: { - component: 'text', + component: 'span', text: 'thisWillRemoveAllWatchedVideos', style: { 'width': '100%', @@ -2661,7 +2662,7 @@ var skeleton = { }, section: { component: 'section', - class: 'controls', + variant: 'controls', style: { 'justify-content': 'flex-end', 'display': 'flex' @@ -2670,28 +2671,47 @@ var skeleton = { cancel: { component: 'button', text: 'cancel', - onclick: function () { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); + on: { + click: function () { + this.parentNode.parentNode.parentNode.close(); + } } }, accept: { component: 'button', text: 'accept', - onclick: function () { - var scrim = document.querySelectorAll('.satus-dialog__scrim'); + on: { + click: function () { + satus.storage.set('watched', {}); - satus.storage.watched = {}; - satus.storage.set('watched', satus.storage.watched); - component.firstChild.innerText = component.firstChild.innerText.replace(/\d+/, 0); + component.nextSibling.nextSibling.textContent = '0'; - scrim[scrim.length - 1].click(); + this.parentNode.parentNode.parentNode.close(); + } } } } }); } + }, + + label: { + component: 'span', + text: 'deleteWatchedVideos' + }, + counter: { + component: 'span', + on: { + render: function () { + var watched = satus.storage.get('watched'); + + if (watched) { + this.textContent = Object.keys(watched).length; + } else { + this.textContent = '0'; + } + } + } } }, only_one_player_instance_playing: { @@ -2742,17 +2762,17 @@ var skeleton = { svg: { component: 'svg', attr: { - viewBox: '0 0 24 24', - fill: 'transparent', - stroke: 'currentColor', + 'viewBox': '0 0 24 24', + 'fill': 'transparent', + 'stroke': 'currentColor', 'stroke-linecap': 'round', - 'stroke-width': 1.75 + 'stroke-width': '1.75' }, path: { component: 'path', attr: { - d: 'M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1zM4 22v-7' + 'd': 'M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1zM4 22v-7' } } } @@ -2764,7 +2784,7 @@ var skeleton = { }, appearance: { component: 'button', - class: 'satus-button--appearance', + variant: 'appearance', on: { click: { component: 'section', @@ -2777,7 +2797,7 @@ var skeleton = { on: { click: { component: 'section', - class: 'satus-section--card', + variant: 'card', header_position: { component: 'select', @@ -2832,7 +2852,7 @@ var skeleton = { on: { click: { component: 'section', - class: 'satus-section--card', + variant: 'card', player_size: { component: 'select', @@ -3002,7 +3022,7 @@ var skeleton = { on: { click: { component: 'section', - class: 'satus-section--card', + variant: 'card', hide_details: { component: 'switch', @@ -3088,7 +3108,7 @@ var skeleton = { on: { click: { component: 'section', - class: 'satus-section--card', + variant: 'card', related_videos: { component: 'select', @@ -3126,15 +3146,15 @@ var skeleton = { }, sidebar_left: { component: 'switch', - text: 'Sidebar to the Left' + text: 'moveSidebarLeft' }, thumbnails_right: { component: 'switch', - text: 'Thumbnails to the Right' + text: 'moveThumbnailsRight' }, thumbnails_hide: { component: 'switch', - text: 'Hide Thumbnails' + text: 'hideThumbnails' } } } @@ -3146,7 +3166,7 @@ var skeleton = { on: { click: { component: 'section', - class: 'satus-section--card', + variant: 'card', comments: { component: 'select', @@ -3173,7 +3193,7 @@ var skeleton = { on: { click: { component: 'section', - class: 'satus-section--card', + variant: 'card', hide_footer: { component: 'switch', @@ -3192,17 +3212,17 @@ var skeleton = { svg: { component: 'svg', attr: { - viewBox: '0 0 24 24', - fill: 'transparent', - stroke: 'currentColor', + 'viewBox': '0 0 24 24', + 'fill': 'transparent', + 'stroke': 'currentColor', 'stroke-linecap': 'round', - 'stroke-width': 1.75 + 'stroke-width': '1.75' }, path: { component: 'path', attr: { - d: 'M17 3a2.83 2.83 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z' + 'd': 'M17 3a2.83 2.83 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z' } } } @@ -3228,7 +3248,7 @@ var skeleton = { click: { section: { component: 'section', - class: 'satus-section--card', + variant: 'card', theme_my_colors: { component: 'switch', @@ -3238,7 +3258,7 @@ var skeleton = { section2: { component: 'section', - class: 'satus-section--card', + variant: 'card', theme_primary_color: { component: 'color-picker', @@ -3260,7 +3280,7 @@ var skeleton = { on: { click: { component: 'section', - class: 'satus-section--card', + variant: 'card', bluelight: { component: 'slider', @@ -3285,7 +3305,7 @@ var skeleton = { on: { click: { component: 'section', - class: 'satus-section--card', + variant: 'card', schedule: { component: 'select', @@ -3666,7 +3686,7 @@ var skeleton = { on: { click: { component: 'section', - class: 'satus-section--card', + variant: 'card', player_autoplay: { component: 'switch', @@ -3729,7 +3749,7 @@ var skeleton = { on: { click: { component: 'section', - class: 'satus-section--card', + variant: 'card', player_subtitles: { component: 'switch', @@ -4506,7 +4526,7 @@ var skeleton = { on: { click: { component: 'section', - class: 'satus-section--card', + variant: 'card', player_screenshot_button: { component: 'switch', @@ -4532,7 +4552,7 @@ var skeleton = { on: { click: { component: 'section', - class: 'satus-section--card', + variant: 'card', player_repeat_button: { component: 'switch', @@ -4555,15 +4575,15 @@ var skeleton = { }, player_hide_controls: { component: 'switch', - text: 'hideControls' + text: 'hidePlayerControlsBar' }, player_hide_controls_options: { component: 'button', - text: 'hideControlsOptions', + text: 'hidePlayerControlsBarButtons', on: { click: { component: 'section', - class: 'satus-section--card', + variant: 'card', player_play_button: { component: 'switch', @@ -4621,17 +4641,17 @@ var skeleton = { svg: { component: 'svg', attr: { - viewBox: '0 0 24 24', - fill: 'transparent', - stroke: 'currentColor', + 'viewBox': '0 0 24 24', + 'fill': 'transparent', + 'stroke': 'currentColor', 'stroke-linecap': 'round', - 'stroke-width': 1.75 + 'stroke-width': '1.75' }, path: { component: 'path', attr: { - d: 'M5 3l14 9-14 9V3z' + 'd': 'M5 3l14 9-14 9V3z' } } } @@ -4647,7 +4667,7 @@ var skeleton = { on: { click: { component: 'section', - class: 'satus-section--card', + variant: 'card', playlist_autoplay: { component: 'switch', @@ -4706,7 +4726,7 @@ var skeleton = { on: { click: { component: 'section', - class: 'satus-section--card', + variant: 'card', channel_default_tab: { component: 'select', @@ -4778,7 +4798,7 @@ var skeleton = { click: { section: { component: 'section', - class: 'satus-section--card', + variant: 'card', picture_in_picture: { component: 'shortcut', @@ -4792,7 +4812,7 @@ var skeleton = { click: { section_1: { component: 'section', - class: 'satus-section--card', + variant: 'card', volume_step: { component: 'slider', @@ -4807,7 +4827,7 @@ var skeleton = { section_2: { component: 'section', - class: 'satus-section--card', + variant: 'card', increase_volume: { component: 'shortcut', @@ -4848,7 +4868,7 @@ var skeleton = { click: { section_step: { component: 'section', - class: 'satus-section--card', + variant: 'card', playback_speed_step: { component: 'slider', @@ -4863,7 +4883,7 @@ var skeleton = { section: { component: 'section', - class: 'satus-section--card', + variant: 'card', increase_playback_speed: { component: 'shortcut', @@ -4998,7 +5018,7 @@ var skeleton = { on: { click: { component: 'section', - class: 'satus-section--card', + variant: 'card', shortcut_auto: { component: 'shortcut', @@ -5064,7 +5084,7 @@ var skeleton = { }, shortcut_popup_player: { component: 'shortcut', - text: 'openPopupPlayer' + text: 'popupPlayer' }, shortcut_go_to_search_box: { component: 'shortcut', @@ -5103,17 +5123,17 @@ var skeleton = { svg: { component: 'svg', attr: { - viewBox: '0 0 24 24', - fill: 'transparent', - stroke: 'currentColor', + 'viewBox': '0 0 24 24', + 'fill': 'transparent', + 'stroke': 'currentColor', 'stroke-linecap': 'round', - 'stroke-width': 1.75 + 'stroke-width': '1.75' }, path: { component: 'path', attr: { - d: 'M18 3a3 3 0 00-3 3v12a3 3 0 003 3 3 3 0 003-3 3 3 0 00-3-3H6a3 3 0 00-3 3 3 3 0 003 3 3 3 0 003-3V6a3 3 0 00-3-3 3 3 0 00-3 3 3 3 0 003 3h12a3 3 0 003-3 3 3 0 00-3-3z' + 'd': 'M18 3a3 3 0 00-3 3v12a3 3 0 003 3 3 3 0 003-3 3 3 0 00-3-3H6a3 3 0 00-3 3 3 3 0 003 3 3 3 0 003-3V6a3 3 0 00-3-3 3 3 0 00-3 3 3 3 0 003 3h12a3 3 0 003-3 3 3 0 00-3-3z' } } } @@ -5130,7 +5150,7 @@ var skeleton = { click: { section: { component: 'section', - class: 'satus-section--card', + variant: 'card', blacklist_activate: { component: 'switch', @@ -5140,7 +5160,7 @@ var skeleton = { section2: { component: 'section', - class: 'satus-section--card', + variant: 'card', channels: { component: 'button', @@ -5343,7 +5363,7 @@ var skeleton = { click: { section: { component: 'section', - class: 'satus-section--card', + variant: 'card', analyzer_activation: { component: 'switch', @@ -5352,7 +5372,7 @@ var skeleton = { }, section_2: { component: 'section', - class: 'satus-section--card', + variant: 'card', on: { render: function () { var data = satus.storage.get('analyzer') || {}, @@ -5517,25 +5537,37 @@ var skeleton = { # INITIALIZATION --------------------------------------------------------------*/ +satus.storage.attributes = { + theme: true +}; + satus.storage.import(function (items) { var language = items.language || window.navigator.language || 'en'; - skeleton.attr.theme = satus.storage.get('theme') || 'default'; - - satus.ajax('_locales/' + language + '/messages.json', function (response) { - try { - response = JSON.parse(response); - - for (var key in response) { - satus.locale.strings[key] = response[key].message; + if (document.documentElement.hasAttribute('page')) { + chrome.runtime.sendMessage({ + name: 'get-localization', + code: language + }, function (response) { + satus.locale.strings = response; + + satus.render(skeleton); + }); + } else { + satus.ajax('_locales/' + language + '/messages.json', function (response) { + try { + response = JSON.parse(response); + + for (var key in response) { + satus.locale.strings[key] = response[key].message; + } + } catch (error) { + console.error(error); } - } catch (error) { - console.error(error); - } - satus.render(skeleton); - }, function (success) { - console.log('er'); - satus.ajax('_locales/en/messages.json', success); - }); + satus.render(skeleton); + }, function (success) { + satus.ajax('_locales/en/messages.json', success); + }); + } }); \ No newline at end of file diff --git a/py/locale.py b/py/locale.py index d06b6fa8e..9456dc683 100644 --- a/py/locale.py +++ b/py/locale.py @@ -59,14 +59,16 @@ def getListOfFiles(dirName): def addItem(allFiles): message = input("Enter your message: ") + camelized_message = lowerCamelCase(message) for keyFile in allFiles: with open(keyFile, "r+") as json_file: data = json.load(json_file) - data[lowerCamelCase(message)] = { - "message": message - } + if ((camelized_message in data) == False) : + data[camelized_message] = { + "message": message + } json_file.seek(0) json.dump(data, json_file, ensure_ascii=False, indent=4, sort_keys=True) diff --git a/satus.css b/satus.css index 314a98b31..9ea0cbdd9 100644 --- a/satus.css +++ b/satus.css @@ -1 +1 @@ -html{--satus-primary:#ff4158;--satus-header-background:#fff;--satus-switch-background:rgba(0,0,0,.08)}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:0;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:22px;height:22px;border:2px solid rgba(255,255,255,.4);border-radius:50%}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{display:flex;flex-direction:column;align-items:center}.satus-modal--color-picker canvas{width:256px;height:256px}.satus-color-picker__dim{position:absolute;width:256px;height:256px;pointer-events:none;opacity:0;border-radius:50%;background:#000}.satus-color-picker__cursor{position:absolute;width:5px;height:5px;transform:translate(-50%,-50%);pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000}.satus-color-picker__slider .satus-slider__container{height:18px}.satus-color-picker__slider .satus-slider__track-container{top:calc(50% - 9px);height:18px}.satus-color-picker__slider .satus-slider__track-container::before{height:16px;opacity:1;border:1px solid #bfbfbf;border-radius:4px;background:linear-gradient(90deg,#fff,#000)}.satus-color-picker__slider .satus-slider__track{background:0 0}.satus-color-picker__slider .satus-slider__thumb{top:0;height:18px;border-radius:4px;background:#fff;box-shadow:0 0 2px rgb(0,0,0,.2)}.satus-color-picker__slider .satus-slider__thumb:before{display:none}.satus-color-picker__actions{display:flex;width:100%;justify-content:flex-end}.satus-color-picker__actions .satus-button{height:32px;margin:8px 4px 0;border-radius:8px;background:rgba(0,0,0,.15)}.satus-color-picker__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background);overflow-y:auto;box-sizing:border-box}.satus-button{font:inherit;position:relative;overflow:hidden;height:48px;margin:0;padding:8px;color:var(--satus-button-text,inherit);border:none;background:var(--satus-button-background,transparent);appearance:none;text-align:left}.satus-button:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-button>*{pointer-events:none}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;height:48px}.satus-list__item>:last-child{text-align:right}.satus-section{display:flex;flex-wrap:wrap;box-sizing:border-box}.satus-section--align-start{justify-content:flex-start}.satus-section--align-end{justify-content:flex-end}.satus-header>.satus-section{align-items:center}.satus-section--card{flex-direction:column;width:calc(100% - 24px);max-width:900px;margin:12px auto 0;padding:8px 0;border:1px solid rgba(0,0,0,.1);border-radius:8px;background:var(--satus-section-card-background);color:var(--satus-section-card-text);box-sizing:border-box}.satus-section--card:last-child{margin:12px auto}.satus-section--card>*{min-height:48px;padding:0 16px;text-align:left}.satus-section--card>.satus-button{display:flex;padding:0 16px;align-items:center}.satus-section--card>.satus-button>svg{width:20px;margin:2px 16px 0 0;color:var(--satus-primary)}.satus-section--label{font-size:17px;display:block;width:calc(100% - 16px);max-width:900px;margin:16px auto 8px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3)}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.2);backdrop-filter:blur(8px)}.satus-modal__surface{font-size:14px;display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;padding:8px 0;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-text);border-radius:6px;background-color:var(--satus-modal-background);box-shadow:inset 0 -1px 1px 1px rgb(0,0,0,.1),0 2px 6px rgb(0,0,0,.15)}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:0;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-switch__thumb{width:38px;height:20px;transition:background-color 150ms;border-radius:20px;background-color:var(--satus-hover);flex:0 0 38px;margin-left:16px}.satus-switch__thumb::before{display:block;width:16px;height:16px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:#fff;will-change:transform}.satus-switch[data-value=true] .satus-switch__thumb{background-color:var(--satus-primary)}.satus-switch[data-value=true] .satus-switch__thumb::before{transform:translateX(18px)}.satus-slider{position:relative;display:flex;flex-direction:column;box-sizing:border-box;width:100%;min-height:64px;padding:0 16px;-webkit-user-select:none;-moz-user-select:none;user-select:none;outline:0;align-items:flex-start;justify-content:center}.satus-slider:hover{cursor:pointer;background-color:rgba(0,0,0,.04)}.satus-slider__label{cursor:default}.satus-slider>input{position:absolute;z-index:1;top:0;left:0;box-sizing:border-box;width:100%;height:100%;margin:0;padding:0;opacity:0}.satus-slider__container{position:relative;width:100%;height:12px;margin:8px 0 0}.satus-slider__track-container{position:absolute;top:calc(50% - 1px);width:100%;height:2px;pointer-events:none}.satus-slider__track-container::before{position:absolute;top:0;left:0;width:100%;height:2px;content:'';opacity:.26;background-color:var(--satus-primary)}.satus-slider__track{position:relative;width:0;height:100%;background-color:var(--satus-primary);will-change:width}.satus-slider:not(.satus-slider--dragging) .satus-slider__track{transition:width .1s ease-out}.satus-slider__thumb{position:absolute;top:-5px;right:-12px;width:12px;height:12px;border-radius:50%;background-color:var(--satus-primary);box-shadow:0 1px 5px rgba(0,0,0,.15)}.satus-slider .satus-slider__thumb::before{font-size:13px;position:absolute;top:-34px;left:50%;visibility:hidden;box-sizing:border-box;min-width:28px;padding:4px 4px;content:attr(data-value);transform:translateX(-50%);text-align:center;pointer-events:none;color:#fff;border-radius:4px;background:var(--satus-theme-tooltip)}.satus-slider:hover .satus-slider__thumb::before,.satus-slider>input:focus .satus-slider__container .satus-slider__thumb::before{visibility:visible}.satus-slider__ring{position:absolute;top:-11px;right:-18px;width:24px;height:24px;transition:.1s;transform:scale(0);opacity:0;border-radius:50%;background-color:var(--satus-primary)}.satus-slider>input:focus+.satus-slider__container .satus-slider__ring{transform:scale(1);opacity:.25}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{text-transform:uppercase;font-size:11px;opacity:.5}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;background:rgba(0,0,0,.15);margin:8px 4px 0;border-radius:8px}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__mouse>div{position:absolute;top:0;left:13px;width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-4px;left:21px;width:2px;height:18px;content:'';background:#f96754}.satus-shortcut__mouse.false::after{position:absolute;top:-12px;left:17px;width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:14px;left:17px;width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-base{display:flex;flex-direction:column;width:100%;height:100%}.satus-text-field{position:relative;padding:0 16px;background-color:#333347;border-radius:8px;color:#c4c4d4;overflow:hidden;display:flex}.satus-text-field__pre{display:flex;position:relative;height:100%;margin:0;padding:0;overflow:hidden;align-items:center;flex:1}.satus-text-field__input{font:inherit;position:absolute;top:0;left:0;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0;opacity:0;border:none;appearance:none;z-index:9}.satus-text-field__hidden-text{position:absolute;pointer-events:none;opacity:0}.satus-text-field__text{position:absolute;top:0;left:0;display:flex;height:100%;margin:0;align-items:center}.satus-text-field__cursor{position:absolute;top:6px;left:0;display:none;width:2px;height:25px;animation:blink 1s step-end 8;background:#fa0}.satus-text-field__selection{position:absolute;top:5px;left:0;display:none;width:0;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:3px;background:rgba(255,255,255,.1)}.satus-text-field__input:focus+*+*+*+.satus-text-field__cursor,.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field__text>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__text>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-header{display:flex;box-sizing:border-box;height:56px;padding:0 16px;color:var(--satus-header-text);background:var(--satus-header-background);align-items:center;justify-content:space-between}.satus-alert{display:flex;box-sizing:border-box;min-height:48px;margin:8px;padding:8px 16px;border-radius:8px;align-items:center}.satus-alert--error{color:#c55959;border:1px solid #641616;background:#430f0f}.satus-layers{position:relative;overflow:hidden;color:var(--satus-layers-text);background:var(--satus-layers-background);flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;width:100%;height:100%;flex-wrap:wrap;align-content:flex-start}.satus-input[type=text]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:0;padding:0 8px;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-aside{color:var(--satus-aside-text);background:var(--satus-aside-background);box-sizing:border-box}.satus-select{position:relative;display:flex;box-sizing:border-box;align-items:center;justify-content:space-between}.satus-select__value{margin-left:16px;text-align:right;opacity:.75}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;padding:inherit;cursor:pointer;opacity:0;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select select:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-section--card .satus-select select{text-align-last:right}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1s;opacity:.04;border-radius:50%;background:var(--satus-pluviam-background,#000);animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:.04}70%{transform:scale(.8);opacity:.04}100%{transform:scale(1);opacity:0}} \ No newline at end of file +html{--satus-primary:#ff4158;--satus-header-background:#fff;--satus-switch-background:rgba(0,0,0,.08)}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:0;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:22px;height:22px;border:2px solid rgba(255,255,255,.4);border-radius:50%}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{display:flex;flex-direction:column;align-items:center}.satus-modal--color-picker canvas{width:256px;height:256px}.satus-color-picker__dim{position:absolute;width:256px;height:256px;pointer-events:none;opacity:0;border-radius:50%;background:#000}.satus-color-picker__cursor{position:absolute;width:5px;height:5px;transform:translate(-50%,-50%);pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000}.satus-color-picker__slider .satus-slider__container{height:18px}.satus-color-picker__slider .satus-slider__track-container{top:calc(50% - 9px);height:18px}.satus-color-picker__slider .satus-slider__track-container::before{height:16px;opacity:1;border:1px solid #bfbfbf;border-radius:4px;background:linear-gradient(90deg,#fff,#000)}.satus-color-picker__slider .satus-slider__track{background:0 0}.satus-color-picker__slider .satus-slider__thumb{top:0;height:18px;border-radius:4px;background:#fff;box-shadow:0 0 2px rgb(0,0,0,.2)}.satus-color-picker__slider .satus-slider__thumb:before{display:none}.satus-color-picker__actions{display:flex;width:100%;justify-content:flex-end}.satus-color-picker__actions .satus-button{height:32px;margin:8px 4px 0;border-radius:8px;background:rgba(0,0,0,.15)}.satus-color-picker__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background);overflow-y:auto;box-sizing:border-box}.satus-button{font:inherit;position:relative;overflow:hidden;height:48px;margin:0;padding:8px;color:var(--satus-button-text,inherit);border:none;background:var(--satus-button-background,transparent);appearance:none;text-align:left}.satus-button:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-button>*{pointer-events:none}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;height:48px}.satus-list__item>:last-child{text-align:right}.satus-section{display:flex;flex-wrap:wrap;box-sizing:border-box}.satus-section--align-start{justify-content:flex-start}.satus-section--align-end{justify-content:flex-end}.satus-header>.satus-section{align-items:center}.satus-section--card{flex-direction:column;width:calc(100% - 24px);max-width:900px;margin:12px auto 0;padding:8px 0;border:1px solid rgba(0,0,0,.1);border-radius:8px;background:var(--satus-section-card-background);color:var(--satus-section-card-text);box-sizing:border-box}.satus-section--card:last-child{margin:12px auto}.satus-section--card>*{min-height:48px;padding:0 16px;text-align:left}.satus-section--card>.satus-button{display:flex;padding:0 16px;align-items:center}.satus-section--card>.satus-button>svg{width:20px;margin:2px 16px 0 0;color:var(--satus-primary)}.satus-section--label{font-size:17px;display:block;width:calc(100% - 16px);max-width:900px;margin:16px auto 8px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3)}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.2);backdrop-filter:blur(8px)}.satus-modal__surface{font-size:14px;display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;padding:8px 0;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-text);border-radius:6px;background-color:var(--satus-modal-background);box-shadow:inset 0 -1px 1px 1px rgb(0,0,0,.1),0 2px 6px rgb(0,0,0,.15)}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:0;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-switch__thumb{width:38px;height:20px;transition:background-color 150ms;border-radius:20px;background-color:var(--satus-hover);flex:0 0 38px;margin-left:16px}.satus-switch__thumb::before{display:block;width:16px;height:16px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:#fff;will-change:transform}.satus-switch[data-value=true] .satus-switch__thumb{background-color:var(--satus-primary)}.satus-switch[data-value=true] .satus-switch__thumb::before{transform:translateX(18px)}.satus-slider{position:relative;display:flex;flex-direction:column;box-sizing:border-box;width:100%;min-height:64px;padding:0 16px;-webkit-user-select:none;-moz-user-select:none;user-select:none;outline:0;align-items:flex-start;justify-content:center}.satus-slider:hover{cursor:pointer;background-color:rgba(0,0,0,.04)}.satus-slider__label{cursor:default}.satus-slider>input{position:absolute;z-index:1;top:0;left:0;box-sizing:border-box;width:100%;height:100%;margin:0;padding:0;opacity:0}.satus-slider__container{position:relative;width:100%;height:12px;margin:8px 0 0}.satus-slider__track-container{position:absolute;top:calc(50% - 1px);width:100%;height:2px;pointer-events:none}.satus-slider__track-container::before{position:absolute;top:0;left:0;width:100%;height:2px;content:'';opacity:.26;background-color:var(--satus-primary)}.satus-slider__track{position:relative;width:0;height:100%;background-color:var(--satus-primary);will-change:width}.satus-slider:not(.satus-slider--dragging) .satus-slider__track{transition:width .1s ease-out}.satus-slider__thumb{position:absolute;top:-5px;right:-12px;width:12px;height:12px;border-radius:50%;background-color:var(--satus-primary);box-shadow:0 1px 5px rgba(0,0,0,.15)}.satus-slider .satus-slider__thumb::before{font-size:13px;position:absolute;top:-34px;left:50%;visibility:hidden;box-sizing:border-box;min-width:28px;padding:4px 4px;content:attr(data-value);transform:translateX(-50%);text-align:center;pointer-events:none;color:#fff;border-radius:4px;background:var(--satus-theme-tooltip)}.satus-slider:hover .satus-slider__thumb::before,.satus-slider>input:focus .satus-slider__container .satus-slider__thumb::before{visibility:visible}.satus-slider__ring{position:absolute;top:-11px;right:-18px;width:24px;height:24px;transition:.1s;transform:scale(0);opacity:0;border-radius:50%;background-color:var(--satus-primary)}.satus-slider>input:focus+.satus-slider__container .satus-slider__ring{transform:scale(1);opacity:.25}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{text-transform:uppercase;font-size:11px;opacity:.5}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;background:rgba(0,0,0,.15);margin:8px 4px 0;border-radius:8px}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__mouse>div{position:absolute;top:0;left:13px;width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-4px;left:21px;width:2px;height:18px;content:'';background:#f96754}.satus-shortcut__mouse.false::after{position:absolute;top:-12px;left:17px;width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:14px;left:17px;width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-base{display:flex;flex-direction:column;width:100%;height:100%}.satus-text-field{position:relative;padding:0 16px;background-color:#333347;border-radius:8px;color:#c4c4d4;overflow:hidden;display:flex}.satus-text-field__pre{display:flex;position:relative;height:100%;margin:0;padding:0;overflow:hidden;align-items:center;flex:1}.satus-text-field__input{font:inherit;position:absolute;top:0;left:0;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0;opacity:0;border:none;appearance:none;z-index:9}.satus-text-field__hidden-text{position:absolute;pointer-events:none;opacity:0}.satus-text-field__text{position:absolute;top:0;left:0;display:flex;height:100%;margin:0;align-items:center}.satus-text-field__cursor{position:absolute;top:6px;left:0;display:none;width:2px;height:25px;animation:blink 1s step-end 8;background:#fa0}.satus-text-field__selection{position:absolute;top:5px;left:0;display:none;width:0;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:3px;background:rgba(255,255,255,.1)}.satus-text-field__input:focus+*+*+*+.satus-text-field__cursor,.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field__text>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__text>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-header{display:flex;box-sizing:border-box;height:56px;padding:0 16px;color:var(--satus-header-text);background:var(--satus-header-background);align-items:center;justify-content:space-between}.satus-alert{display:flex;box-sizing:border-box;min-height:48px;margin:8px;padding:8px 16px;border-radius:8px;align-items:center}.satus-alert--error{color:#c55959;border:1px solid #641616;background:#430f0f}.satus-layers{position:relative;overflow:hidden;color:var(--satus-layers-text);background:var(--satus-layers-background);flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;width:100%;height:100%;flex-wrap:wrap;align-content:flex-start}.satus-input[type=text]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:0;padding:0 8px;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-aside{color:var(--satus-aside-text);background:var(--satus-aside-background);box-sizing:border-box}.satus-select{position:relative;display:flex;box-sizing:border-box;align-items:center;justify-content:space-between}.satus-select__value{margin-left:16px;text-align:right;opacity:.75}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;padding:inherit;cursor:pointer;opacity:0;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1s;opacity:.04;border-radius:50%;background:var(--satus-pluviam-background,#000);animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:.04}70%{transform:scale(.8);opacity:.04}100%{transform:scale(1);opacity:0}} \ No newline at end of file diff --git a/satus.js b/satus.js index f9eb9302f..389507dd9 100644 --- a/satus.js +++ b/satus.js @@ -1 +1 @@ -var satus={components:{},events:{},locale:{strings:{}},storage:{data:{}},append:function(M,N){(N||document.body).appendChild(M)},getAnimationDuration:function(M){return 1e3*Number(window.getComputedStyle(M).getPropertyValue("animation-duration").replace(/[^0-9.]/g,""))},attr:function(M,N){if(N)for(var i in N){var I;M.is_svg?M.setAttributeNS(null,i,N[i]):(I=N[i],"title"===i&&(I=satus.locale.get(I)),M.setAttribute(i,I))}},elementIndex:function(M){return Array.prototype.slice.call(M.parentNode.children).indexOf(M)},data:function(M,N){if(N)for(var i in N)M.dataset[i]=N[i]},properties:function(M,N){if(N)for(var i in N)M[i]=N[i]},camelize:function(M){for(var N="",i=0,I=M.length;i Date: Sat, 25 Sep 2021 17:51:36 +0800 Subject: [PATCH 0404/1224] Fixed Player button for player alignment --- content-styles.css | 21 ++++++++++++--------- youtube-scripts.js | 6 +++--- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/content-styles.css b/content-styles.css index a66469183..6e76cf0ae 100644 --- a/content-styles.css +++ b/content-styles.css @@ -3332,9 +3332,10 @@ body.no-scroll .it-player-button--tooltip { #it-repeat-button svg { position: absolute !important; - top: 6px !important; - left: 6px !important; - width: 24px !important; + width: 80%; + height: 80%; + top: 11px !important; + left: 11px !important; fill: #fff !important; } @@ -3355,9 +3356,10 @@ body.no-scroll .it-player-button--tooltip { #it-rotate-button svg { position: absolute !important; - top: 7px !important; - left: 7px !important; - width: 22px !important; + width: 80%; + height: 80%; + top: 11px !important; + left: 11px !important; fill: #fff !important; } @@ -3378,9 +3380,10 @@ body.no-scroll .it-player-button--tooltip { #it-popup-player-button svg { position: absolute !important; - top: 7px !important; - left: 7px !important; - width: 22px !important; + width: 80%; + height: 80%; + top: 11px !important; + left: 11px !important; fill: #fff !important; } diff --git a/youtube-scripts.js b/youtube-scripts.js index 848c2f24c..b63e376d7 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2735,7 +2735,7 @@ ImprovedTube.playerRepeatButton = function (node) { var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + svg.setAttributeNS(null, 'viewBox', '0 0 34 34'); path.setAttributeNS(null, 'd', 'M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z'); svg.appendChild(path); @@ -2781,7 +2781,7 @@ ImprovedTube.playerRotateButton = function () { var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + svg.setAttributeNS(null, 'viewBox', '0 0 34 34'); path.setAttributeNS(null, 'd', 'M15.55 5.55L11 1v3.07a8 8 0 0 0 0 15.86v-2.02a6 6 0 0 1 0-11.82V10l4.55-4.45zM19.93 11a7.9 7.9 0 0 0-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02a7.92 7.92 0 0 0 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41A7.9 7.9 0 0 0 19.93 13h-2.02a5.9 5.9 0 0 1-1.02 2.48z'); svg.appendChild(path); @@ -2840,7 +2840,7 @@ ImprovedTube.playerPopupButton = function () { var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + svg.setAttributeNS(null, 'viewBox', '0 0 34 34'); path.setAttributeNS(null, 'd', 'M19 7h-8v6h8V7zm2-4H3C2 3 1 4 1 5v14c0 1 1 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 16H3V5h18v14z'); svg.appendChild(path); From 9de15fdcc3ed28d15f98e6f5a9f7726c00e997fd Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 29 Sep 2021 20:46:57 +0300 Subject: [PATCH 0405/1224] Bug fixes --- content-styles.css | 12 +- manifest.json | 2 +- popup.js | 76 +- satus.css | 1148 +++++++++++++++++++++++- satus.js | 2075 +++++++++++++++++++++++++++++++++++++++++++- youtube-scripts.js | 30 +- 6 files changed, 3270 insertions(+), 73 deletions(-) diff --git a/content-styles.css b/content-styles.css index a66469183..9a4f2c105 100644 --- a/content-styles.css +++ b/content-styles.css @@ -236,13 +236,17 @@ html[it-remove-related-search-results=true] li>div.search-refinements { height: 28px; cursor: pointer; text-align: center; - color: #fff; + color: #888; border-radius: 2px; background: rgba(0, 0, 0, .8); font-family: inherit; border: none; } +.it-mark-watched.watched { + color: #fff; +} + .it-mark-watched::after { display: flex; align-items: center; @@ -273,7 +277,7 @@ html[it-remove-related-search-results=true] li>div.search-refinements { left: 4px; width: 20px; height: 20px; - fill: var(--yt-spec-icon-inactive, #aaa); + fill: currentColor; pointer-events: none; } @@ -281,10 +285,6 @@ html[it-remove-related-search-results=true] li>div.search-refinements { visibility: visible; } -.it-mark-watched.watched svg { - fill: var(--yt-spec-icon-active-other, #fff); -} - /*------------------------------------------------------------------------------ 1.6 LIMIT PAGE WIDTH diff --git a/manifest.json b/manifest.json index 30652a32c..bf8b3a362 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.500", + "version": "3.600", "default_locale": "en", "icons": { "128": "icons/128.png", diff --git a/popup.js b/popup.js index d75393778..fb223ac4b 100644 --- a/popup.js +++ b/popup.js @@ -2644,54 +2644,53 @@ var skeleton = { }, delete_watched_videos: { component: 'button', + style: { + 'justifyContent': 'space-between' + }, on: { - click: function () { - var component = this; + click: { + component: 'modal', + variant: 'confirm', - satus.render({ - component: 'modal', - variant: 'confirm', + message: { + component: 'span', + text: 'thisWillRemoveAllWatchedVideos', + style: { + 'width': '100%', + 'opacity': '.8' + } + }, + section: { + component: 'section', + variant: 'actions', - message: { - component: 'span', - text: 'thisWillRemoveAllWatchedVideos', - style: { - 'width': '100%', - 'opacity': '.8' + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.parentNode.parentNode.parentNode.close(); + } } }, - section: { - component: 'section', - variant: 'controls', - style: { - 'justify-content': 'flex-end', - 'display': 'flex' - }, + accept: { + component: 'button', + text: 'accept', + on: { + click: function () { + var modal = this.parentNode.parentNode.parentNode; - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.parentNode.parentNode.parentNode.close(); - } - } - }, - accept: { - component: 'button', - text: 'accept', - on: { - click: function () { - satus.storage.set('watched', {}); + satus.storage.set('watched', {}); - component.nextSibling.nextSibling.textContent = '0'; + console.log(modal.skeleton); - this.parentNode.parentNode.parentNode.close(); - } + modal.skeleton.parent.counter.rendered.textContent = '0'; + + modal.close(); } } } - }); + } } }, @@ -2701,6 +2700,9 @@ var skeleton = { }, counter: { component: 'span', + style: { + opacity: .75 + }, on: { render: function () { var watched = satus.storage.get('watched'); diff --git a/satus.css b/satus.css index 9ea0cbdd9..eb8c652a5 100644 --- a/satus.css +++ b/satus.css @@ -1 +1,1147 @@ -html{--satus-primary:#ff4158;--satus-header-background:#fff;--satus-switch-background:rgba(0,0,0,.08)}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:0;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:22px;height:22px;border:2px solid rgba(255,255,255,.4);border-radius:50%}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{display:flex;flex-direction:column;align-items:center}.satus-modal--color-picker canvas{width:256px;height:256px}.satus-color-picker__dim{position:absolute;width:256px;height:256px;pointer-events:none;opacity:0;border-radius:50%;background:#000}.satus-color-picker__cursor{position:absolute;width:5px;height:5px;transform:translate(-50%,-50%);pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000}.satus-color-picker__slider .satus-slider__container{height:18px}.satus-color-picker__slider .satus-slider__track-container{top:calc(50% - 9px);height:18px}.satus-color-picker__slider .satus-slider__track-container::before{height:16px;opacity:1;border:1px solid #bfbfbf;border-radius:4px;background:linear-gradient(90deg,#fff,#000)}.satus-color-picker__slider .satus-slider__track{background:0 0}.satus-color-picker__slider .satus-slider__thumb{top:0;height:18px;border-radius:4px;background:#fff;box-shadow:0 0 2px rgb(0,0,0,.2)}.satus-color-picker__slider .satus-slider__thumb:before{display:none}.satus-color-picker__actions{display:flex;width:100%;justify-content:flex-end}.satus-color-picker__actions .satus-button{height:32px;margin:8px 4px 0;border-radius:8px;background:rgba(0,0,0,.15)}.satus-color-picker__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background);overflow-y:auto;box-sizing:border-box}.satus-button{font:inherit;position:relative;overflow:hidden;height:48px;margin:0;padding:8px;color:var(--satus-button-text,inherit);border:none;background:var(--satus-button-background,transparent);appearance:none;text-align:left}.satus-button:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-button>*{pointer-events:none}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;height:48px}.satus-list__item>:last-child{text-align:right}.satus-section{display:flex;flex-wrap:wrap;box-sizing:border-box}.satus-section--align-start{justify-content:flex-start}.satus-section--align-end{justify-content:flex-end}.satus-header>.satus-section{align-items:center}.satus-section--card{flex-direction:column;width:calc(100% - 24px);max-width:900px;margin:12px auto 0;padding:8px 0;border:1px solid rgba(0,0,0,.1);border-radius:8px;background:var(--satus-section-card-background);color:var(--satus-section-card-text);box-sizing:border-box}.satus-section--card:last-child{margin:12px auto}.satus-section--card>*{min-height:48px;padding:0 16px;text-align:left}.satus-section--card>.satus-button{display:flex;padding:0 16px;align-items:center}.satus-section--card>.satus-button>svg{width:20px;margin:2px 16px 0 0;color:var(--satus-primary)}.satus-section--label{font-size:17px;display:block;width:calc(100% - 16px);max-width:900px;margin:16px auto 8px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3)}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.2);backdrop-filter:blur(8px)}.satus-modal__surface{font-size:14px;display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;padding:8px 0;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-text);border-radius:6px;background-color:var(--satus-modal-background);box-shadow:inset 0 -1px 1px 1px rgb(0,0,0,.1),0 2px 6px rgb(0,0,0,.15)}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:0;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-switch__thumb{width:38px;height:20px;transition:background-color 150ms;border-radius:20px;background-color:var(--satus-hover);flex:0 0 38px;margin-left:16px}.satus-switch__thumb::before{display:block;width:16px;height:16px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:#fff;will-change:transform}.satus-switch[data-value=true] .satus-switch__thumb{background-color:var(--satus-primary)}.satus-switch[data-value=true] .satus-switch__thumb::before{transform:translateX(18px)}.satus-slider{position:relative;display:flex;flex-direction:column;box-sizing:border-box;width:100%;min-height:64px;padding:0 16px;-webkit-user-select:none;-moz-user-select:none;user-select:none;outline:0;align-items:flex-start;justify-content:center}.satus-slider:hover{cursor:pointer;background-color:rgba(0,0,0,.04)}.satus-slider__label{cursor:default}.satus-slider>input{position:absolute;z-index:1;top:0;left:0;box-sizing:border-box;width:100%;height:100%;margin:0;padding:0;opacity:0}.satus-slider__container{position:relative;width:100%;height:12px;margin:8px 0 0}.satus-slider__track-container{position:absolute;top:calc(50% - 1px);width:100%;height:2px;pointer-events:none}.satus-slider__track-container::before{position:absolute;top:0;left:0;width:100%;height:2px;content:'';opacity:.26;background-color:var(--satus-primary)}.satus-slider__track{position:relative;width:0;height:100%;background-color:var(--satus-primary);will-change:width}.satus-slider:not(.satus-slider--dragging) .satus-slider__track{transition:width .1s ease-out}.satus-slider__thumb{position:absolute;top:-5px;right:-12px;width:12px;height:12px;border-radius:50%;background-color:var(--satus-primary);box-shadow:0 1px 5px rgba(0,0,0,.15)}.satus-slider .satus-slider__thumb::before{font-size:13px;position:absolute;top:-34px;left:50%;visibility:hidden;box-sizing:border-box;min-width:28px;padding:4px 4px;content:attr(data-value);transform:translateX(-50%);text-align:center;pointer-events:none;color:#fff;border-radius:4px;background:var(--satus-theme-tooltip)}.satus-slider:hover .satus-slider__thumb::before,.satus-slider>input:focus .satus-slider__container .satus-slider__thumb::before{visibility:visible}.satus-slider__ring{position:absolute;top:-11px;right:-18px;width:24px;height:24px;transition:.1s;transform:scale(0);opacity:0;border-radius:50%;background-color:var(--satus-primary)}.satus-slider>input:focus+.satus-slider__container .satus-slider__ring{transform:scale(1);opacity:.25}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{text-transform:uppercase;font-size:11px;opacity:.5}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;background:rgba(0,0,0,.15);margin:8px 4px 0;border-radius:8px}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__mouse>div{position:absolute;top:0;left:13px;width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-4px;left:21px;width:2px;height:18px;content:'';background:#f96754}.satus-shortcut__mouse.false::after{position:absolute;top:-12px;left:17px;width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:14px;left:17px;width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-base{display:flex;flex-direction:column;width:100%;height:100%}.satus-text-field{position:relative;padding:0 16px;background-color:#333347;border-radius:8px;color:#c4c4d4;overflow:hidden;display:flex}.satus-text-field__pre{display:flex;position:relative;height:100%;margin:0;padding:0;overflow:hidden;align-items:center;flex:1}.satus-text-field__input{font:inherit;position:absolute;top:0;left:0;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0;opacity:0;border:none;appearance:none;z-index:9}.satus-text-field__hidden-text{position:absolute;pointer-events:none;opacity:0}.satus-text-field__text{position:absolute;top:0;left:0;display:flex;height:100%;margin:0;align-items:center}.satus-text-field__cursor{position:absolute;top:6px;left:0;display:none;width:2px;height:25px;animation:blink 1s step-end 8;background:#fa0}.satus-text-field__selection{position:absolute;top:5px;left:0;display:none;width:0;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:3px;background:rgba(255,255,255,.1)}.satus-text-field__input:focus+*+*+*+.satus-text-field__cursor,.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field__text>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__text>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-header{display:flex;box-sizing:border-box;height:56px;padding:0 16px;color:var(--satus-header-text);background:var(--satus-header-background);align-items:center;justify-content:space-between}.satus-alert{display:flex;box-sizing:border-box;min-height:48px;margin:8px;padding:8px 16px;border-radius:8px;align-items:center}.satus-alert--error{color:#c55959;border:1px solid #641616;background:#430f0f}.satus-layers{position:relative;overflow:hidden;color:var(--satus-layers-text);background:var(--satus-layers-background);flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;width:100%;height:100%;flex-wrap:wrap;align-content:flex-start}.satus-input[type=text]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:0;padding:0 8px;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-aside{color:var(--satus-aside-text);background:var(--satus-aside-background);box-sizing:border-box}.satus-select{position:relative;display:flex;box-sizing:border-box;align-items:center;justify-content:space-between}.satus-select__value{margin-left:16px;text-align:right;opacity:.75}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;padding:inherit;cursor:pointer;opacity:0;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1s;opacity:.04;border-radius:50%;background:var(--satus-pluviam-background,#000);animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:.04}70%{transform:scale(.8);opacity:.04}100%{transform:scale(1);opacity:0}} \ No newline at end of file + +/*-------------------------------------------------------------- +>>> THEMES: +---------------------------------------------------------------- +# Default +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# DEFAULT +--------------------------------------------------------------*/ + +html { + --satus-primary: #ff4158; + --satus-switch-background: rgba(0,0,0,.08); + --satus-header-background: #fff; + --satus-header-text: #777; + --satus-layers-background: #f7f7f6; + --satus-layers-text: #777; + --satus-section-card-background: #fff; + --satus-modal-background: #fff; + --satus-modal-text: #777; + --satus-hover: rgba(0, 0, 0, .04); + + --satus-switch-track: #b8b8b8; + --satus-switch-track--active: var(--satus-primary); + --satus-switch-thumb: #fff; + + --satus-tabs: #fff; +} +/*-------------------------------------------------------------- +>>> COLOR PICKER +--------------------------------------------------------------*/ + +.satus-color-picker { + font-size: inherit; + position: relative; + display: flex; + box-sizing: border-box; + margin: 0; + cursor: pointer; + color: inherit; + border: none; + outline: none; + background-color: var(--satus-theme-button); + justify-content: space-between; + -webkit-tap-highlight-color: transparent; + align-items: center; + -webkit-appearance: none; +} + +.satus-color-picker__value { + width: 22px; + height: 22px; + border: 2px solid rgba(255, 255, 255, .4); + border-radius: 50%; +} + +.satus-modal--color-picker { + position: relative; +} + +.satus-modal--color-picker .satus-modal__surface { + display: flex; + flex-direction: column; + align-items: center; +} + +.satus-modal--color-picker canvas { + width: 256px; + height: 256px; +} + +.satus-color-picker__dim { + position: absolute; + width: 256px; + height: 256px; + pointer-events: none; + opacity: 0; + border-radius: 50%; + background: #000; +} + +.satus-color-picker__cursor { + position: absolute; + width: 5px; + height: 5px; + transform: translate(-50%, -50%); + pointer-events: none; + border: 1px solid #fff; + border-radius: 50%; + box-shadow: 0 0 0 1px #000; +} + +.satus-color-picker__slider .satus-slider__container { + height: 18px; +} + +.satus-color-picker__slider .satus-slider__track-container { + top: calc(50% - 9px); + height: 18px; +} + +.satus-color-picker__slider .satus-slider__track-container::before { + height: 16px; + opacity: 1; + border: 1px solid #bfbfbf; + border-radius: 4px; + background: linear-gradient(90deg, #fff, #000); +} + +.satus-color-picker__slider .satus-slider__track { + background: transparent; +} + +.satus-color-picker__slider .satus-slider__thumb { + top: 0; + height: 18px; + border-radius: 4px; + background: #fff; + box-shadow: 0 0 2px rgb(0, 0, 0, .2); +} + +.satus-color-picker__slider .satus-slider__thumb:before { + display: none; +} + +.satus-color-picker__actions { + display: flex; + width: 100%; + justify-content: flex-end; +} + +.satus-color-picker__actions .satus-button { + height: 32px; + margin: 8px 4px 0; + border-radius: 8px; + background: rgba(0, 0, 0, .15); +} + +.satus-color-picker__actions .satus-button:hover { + background: rgba(0, 0, 0, .25); +} +/*-------------------------------------------------------------- +# MAIN +--------------------------------------------------------------*/ + +.satus-main { + color: var(--satus-main-text); + background: var(--satus-main-background); + overflow-y: auto; + box-sizing: border-box; +} +/*-------------------------------------------------------------- +>>> TABS +--------------------------------------------------------------*/ + +.satus-tabs { + position: relative; + display: flex; + overflow: hidden; + box-sizing: border-box; + width: calc(100% - 16px); + margin: 16px 8px 4px; + border: 1px solid var(--satus-tabs); + border-radius: 18px; +} + +.satus-tabs__selection { + position: absolute; + z-index: 0; + left: 0; + width: 50%; + height: 32px; + transition: left .25s; + border-radius: 18px; + background: var(--satus-tabs); + box-shadow: 1px 0 4px rgb(0,0,0,.8); +} + +.satus-tabs__button { + background: transparent; + border: none; + font-family: inherit; + font-weight: 500; + font-size: 12px; + color: inherit; + height: 32px; + flex: 1; + text-transform: uppercase; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + position: relative; + z-index: 1; + padding: 0 16px; +} + +.satus-tabs__button:hover { + cursor: pointer; +} +/*-------------------------------------------------------------- +>>> RADIO +--------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# BUTTON +--------------------------------------------------------------*/ + +.satus-button { + font: inherit; + position: relative; + overflow: hidden; + height: 48px; + margin: 0; + padding: 8px; + color: var(--satus-button-text, inherit); + border: none; + background: var(--satus-button-background, transparent); + appearance: none; + text-align: left; +} + +.satus-button:hover { + cursor: pointer; + background-color: var(--satus-hover); +} + +.satus-button>* { + pointer-events: none; +} + +.satus-header .satus-button { + width: 40px; + min-width: 40px; + height: 40px; + padding: 8px; + color: inherit; + border-radius: 50%; +} + +.satus-header .satus-section--align-start>* { + margin-right: 8px; +} +/*-------------------------------------------------------------- +>>> LIST: +--------------------------------------------------------------*/ + +.satus-list { + list-style: none; + margin: 0; +} + +.satus-list__item { + display: flex; + align-items: center; + justify-content: space-between; + min-height: 48px; +} + +.satus-list__item>*:last-child { + text-align: right; +} +/*-------------------------------------------------------------- +>>> SECTION: +---------------------------------------------------------------- +# +--------------------------------------------------------------*/ + +.satus-section { + display: flex; + flex-wrap: wrap; + box-sizing: border-box; +} + +.satus-section--align-start { + justify-content: flex-start; +} + +.satus-section--align-end { + justify-content: flex-end; +} + +.satus-section--column { + flex-direction: column; +} + +.satus-header>.satus-section { + align-items: center; +} + +.satus-section--card { + flex-direction: column; + width: calc(100% - 24px); + max-width: 900px; + margin: 12px auto 0; + padding: 8px 0; + border: 1px solid rgba(0,0,0,.1); + border-radius: 8px; + background: var(--satus-section-card-background); + color: var(--satus-section-card-text); + box-sizing: border-box; +} + +.satus-section--card:last-child { + margin: 12px auto; +} + +.satus-section--card>* { + min-height: 48px; + padding: 0 16px; + text-align: left; + box-sizing: border-box; + width: 100%; +} + +.satus-section--card>.satus-switch, +.satus-section--card>.satus-select, +.satus-section--card>.satus-slider, +.satus-section--card>.satus-radio +{ + display: flex; + justify-content: space-between; + align-items: center; +} + +.satus-section--card>.satus-button:hover, +.satus-section--card>.satus-switch:hover, +.satus-section--card>.satus-select:hover, +.satus-section--card>.satus-slider:hover, +.satus-section--card>.satus-radio:hover +{ + background-color: var(--satus-hover); +} + +.satus-section--card>.satus-button { + display: flex; + padding: 0 16px; + align-items: center; +} + +.satus-section--card>.satus-button>svg { + width: 20px; + margin: 2px 16px 0 0; + color: var(--satus-primary); +} + +.satus-section--label, +.satus-h2--section-label { + font-size: 14px; + display: block; + max-width: 900px; + margin: 16px 16px 8px; + width: 100%; + font-weight: 600; +} +/*-------------------------------------------------------------- +# SCROLLBAR +--------------------------------------------------------------*/ + +::-webkit-scrollbar { + width: 4px; +} + +::-webkit-scrollbar:hover { + width: 8px; +} + +::-webkit-scrollbar-thumb { + background: rgba(0, 0, 0, .3); +} +/*-------------------------------------------------------------- +>>> MODAL +--------------------------------------------------------------*/ + +.satus-modal { + position: absolute; + z-index: 100; + top: 0; + left: 0; + display: flex; + width: 100%; + height: 100vh; + justify-content: center; + align-items: center; +} + +.satus-modal__scrim { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + animation: modalFadeIn 150ms linear forwards; + opacity: 0; + background: rgba(0, 0, 0, .2); + backdrop-filter: blur(8px); +} + +.satus-modal__surface { + font-size: 14px; + display: flex; + overflow-y: auto; + flex-direction: column; + width: 95%; + min-width: 240px; + max-width: 560px; + max-height: 80%; + margin: 0 16px; + padding: 8px 16px; + transform: scale(.8); + animation: modalZoomIn 150ms linear forwards; + animation-delay: 20ms; + opacity: 0; + color: var(--satus-modal-text); + border-radius: 6px; + background-color: var(--satus-modal-background); + box-shadow: inset 0 -1px 1px 1px rgb(0, 0, 0, .1), 0 2px 6px rgb(0, 0, 0, .15); +} + +.satus-modal__surface .satus-section--actions { + display: flex; + justify-content: flex-end; + align-items: center; + margin-top: 16px; +} + +.satus-modal__surface .satus-section--actions .satus-button { + height: 32px; + margin-left: 8px; + border-radius: 4px; + padding: 0 8px; +} + +.satus-modal--closing .satus-modal__scrim { + animation: modalFadeOut 70ms linear forwards; +} + +.satus-modal--closing .satus-modal__surface { + animation: modalZoomOut 70ms linear forwards; +} + + +/*-------------------------------------------------------------- +# ANIMATIONS +--------------------------------------------------------------*/ + +@keyframes modalFadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +@keyframes modalFadeOut { + from { + opacity: 1; + } + to { + opacity: 0; + } +} + +@keyframes modalZoomIn { + from { + transform: scale(.8); + opacity: 0; + } + to { + transform: scale(1); + opacity: 1; + } +} + +@keyframes modalZoomOut { + from { + transform: scale(1); + opacity: 1; + } + to { + transform: scale(.8); + opacity: 0; + } +} +/*-------------------------------------------------------------- +>>> SWITCH +---------------------------------------------------------------- +# Container +# Track +# Thumb +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# CONTAINER +--------------------------------------------------------------*/ + +.satus-switch { + font: inherit; + display: flex; + transition: background-color 75ms; + color: inherit; + border: none; + outline: none; + background-color: transparent; + justify-content: space-between; + align-items: center; +} + +.satus-switch:hover { + cursor: pointer; +} + + +/*-------------------------------------------------------------- +# TRACK +--------------------------------------------------------------*/ + +.satus-switch > i { + width: 38px; + height: 20px; + transition: background-color 150ms; + border-radius: 20px; + background-color: var(--satus-switch-track); + flex: 0 0 38px; +} + +.satus-section--card .satus-switch > i { + margin-left: 16px; +} + +.satus-switch[data-value='true'] > i { + background-color: var(--satus-switch-track--active); +} + + +/*-------------------------------------------------------------- +# THUMB +--------------------------------------------------------------*/ + +.satus-switch > i::before { + display: block; + width: 16px; + height: 16px; + margin: 2px; + content: ''; + transition: transform 150ms cubic-bezier(.4, 0, .2, 1); + border-radius: 50%; + background-color: var(--satus-switch-thumb); + will-change: transform; +} + +.satus-switch[data-value='true'] > i::before { + transform: translateX(18px); +} +/*-------------------------------------------------------------- +>>> SLIDER: +---------------------------------------------------------------- +# +--------------------------------------------------------------*/ + +.satus-slider { + position: relative; + display: flex; + flex-direction: column; + box-sizing: border-box; + width: 100%; + min-height: 64px; + padding: 0 16px; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + outline: none; + align-items: flex-start; + justify-content: center; +} + +.satus-slider:hover { + cursor: pointer; + background-color: rgba(0, 0, 0, .04); +} + + +/* LABEL */ + +.satus-slider__label { + cursor: default; +} + +.satus-slider>input { + position: absolute; + z-index: 1; + top: 0; + left: 0; + box-sizing: border-box; + width: 100%; + height: 100%; + margin: 0; + padding: 0; + opacity: 0; +} + + +/* TRACK */ + +.satus-slider__container { + position: relative; + width: 100%; + height: 12px; + margin: 8px 0 0; +} + +.satus-slider__track-container { + position: absolute; + top: calc(50% - 1px); + width: 100%; + height: 2px; + pointer-events: none; +} + +.satus-slider__track-container::before { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 2px; + content: ''; + opacity: .26; + background-color: var(--satus-primary); +} + +.satus-slider__track { + position: relative; + width: 0; + height: 100%; + background-color: var(--satus-primary); + will-change: width; +} + +.satus-slider:not(.satus-slider--dragging) .satus-slider__track { + transition: width 100ms ease-out; +} + +.satus-slider__thumb { + position: absolute; + top: -5px; + right: -12px; + width: 12px; + height: 12px; + border-radius: 50%; + background-color: var(--satus-primary); + box-shadow: 0 1px 5px rgba(0, 0, 0, .15); +} + +.satus-slider .satus-slider__thumb::before { + font-size: 13px; + position: absolute; + top: -34px; + left: 50%; + visibility: hidden; + box-sizing: border-box; + min-width: 28px; + padding: 4px 4px; + content: attr(data-value); + transform: translateX(-50%); + text-align: center; + pointer-events: none; + color: #fff; + border-radius: 4px; + background: var(--satus-theme-tooltip); +} + +.satus-slider:hover .satus-slider__thumb::before, +.satus-slider>input:focus .satus-slider__container .satus-slider__thumb::before { + visibility: visible; +} + +.satus-slider__ring { + position: absolute; + top: -11px; + right: -18px; + width: 24px; + height: 24px; + transition: 100ms; + transform: scale(0); + opacity: 0; + border-radius: 50%; + background-color: var(--satus-primary); +} + +.satus-slider>input:focus+.satus-slider__container .satus-slider__ring { + transform: scale(1); + opacity: .25; +} +/*-------------------------------------------------------------- +>>> SHORTCUT: +---------------------------------------------------------------- +# +--------------------------------------------------------------*/ + +.satus-shortcut { + justify-content: space-between; +} + +.satus-shortcut__value { + text-transform: uppercase; + font-size: 11px; + opacity: .5; +} + +.satus-shortcut__actions { + display: flex; + justify-content: flex-end; +} + +.satus-shortcut__actions .satus-button { + height: 32px; + background: rgba(0,0,0,.15); + margin: 8px 4px 0; + border-radius: 8px; +} + +.satus-shortcut__actions .satus-button:hover { + background: rgba(0,0,0,.25); +} + +.satus-shortcut__primary { + display: flex; + box-sizing: border-box; + width: 100%; + height: 68px; + padding: 16px; + background: rgba(0,0,0,.16); + align-items: center; +} + +.satus-shortcut__key { + display: flex; + box-sizing: border-box; + min-width: 32px; + height: 32px; + padding: 4px 8px; + border-radius: 4px; + background: #fff; + box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); + align-items: center; + justify-content: center; +} + +.satus-shortcut__plus { + position: relative; + width: 12px; + height: 12px; + margin: 8px; +} + +.satus-shortcut__plus::before { + position: absolute; + top: 0; + left: 5px; + width: 2px; + height: 12px; + content: ''; + background-color: #aaa; +} + +.satus-shortcut__plus::after { + position: absolute; + top: 5px; + left: 0; + width: 12px; + height: 2px; + content: ''; + background-color: #aaa; +} + +.satus-shortcut__mouse { + position: relative; + display: flex; + width: 28px; + height: 36px; + border-radius: 50%; + border-top-left-radius: 12px; + border-top-right-radius: 12px; + background: #fff; + box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); +} + +.satus-shortcut__mouse>div { + position: absolute; + top: 0; + left: 13px; + width: 2px; + height: 11px; + border-radius: 2px; + background: #ccc; +} + +.satus-shortcut__mouse::before { + position: absolute; + top: -4px; + left: 21px; + width: 2px; + height: 18px; + content: ''; + background: #f96754; +} + +.satus-shortcut__mouse.false::after { + position: absolute; + top: -12px; + left: 17px; + width: 0; + height: 0; + content: ''; + border-right: 5px solid transparent; + border-bottom: 8px solid #f96754; + border-left: 5px solid transparent; +} + +.satus-shortcut__mouse.true::after { + position: absolute; + top: 14px; + left: 17px; + width: 0; + height: 0; + content: ''; + border-top: 8px solid #f96754; + border-right: 5px solid transparent; + border-left: 5px solid transparent; +} + +.satus-section_shortcut { + width: 100%; + margin: 8px 0 0; + justify-content: flex-end; +} + +.satus-button_shortcut { + font-weight: 500; + overflow: hidden; + height: 28px; + min-height: 28px; + margin-right: 2px; + padding: 4px 8px; + text-transform: uppercase; + color: #f96754; + border-radius: 4px; +} +/*-------------------------------------------------------------- +>>> BASE +--------------------------------------------------------------*/ + +.satus-base{ + display: flex; + flex-direction: column; + width: 100%; + height: 100%; +} +/*-------------------------------------------------------------- +>>> TEXT FIELD +--------------------------------------------------------------*/ + +.satus-text-field { + position: relative; + padding: 0 16px; + background-color: #333347; + border-radius: 8px; + color: #c4c4d4; + overflow: hidden; + display: flex; +} + +.satus-text-field__pre { + display: flex; + position: relative; + height: 100%; + margin: 0; + padding: 0; + overflow: hidden; + align-items: center; + flex: 1; +} + +.satus-text-field__input { + font: inherit; + position: absolute; + top: 0; + left: 0; + width: 100%; + min-width: 0; + max-width: none; + height: 100%; + min-height: 0; + max-height: none; + margin: 0; + padding: 0; + opacity: 0; + border: none; + appearance: none; + z-index: 9; +} + +.satus-text-field__hidden-text { + position: absolute; + pointer-events: none; + opacity: 0; +} + +.satus-text-field__text { + position: absolute; + top: 0; + left: 0; + display: flex; + height: 100%; + margin: 0; + align-items: center; +} + +.satus-text-field__cursor { + position: absolute; + top: 6px; + left: 0; + display: none; + width: 2px; + height: 25px; + animation: blink 1s step-end 8; + background: #fa0; +} + +.satus-text-field__selection { + position: absolute; + top: 5px; + left: 0; + display: none; + width: 0; + height: 25px; + border: 1px solid rgba(255, 255, 255, .2); + border-radius: 3px; + background: rgba(255, 255, 255, .1); +} + +.satus-text-field__input:focus + * + * + * + .satus-text-field__cursor, +.satus-text-field__selection:not([disabled]) { + display: block; +} + +@keyframes blink { + from, + to { + opacity: 1; + } + 50% { + opacity: 0; + } +} + + +/*-------------------------------------------------------------- +# SYNTAX HIGHLIGHTING +--------------------------------------------------------------*/ + +.satus-text-field__text>.group { + color: #47ff47; + background-color: rgb(71, 255, 71, .16); +} + +.satus-text-field__text>.character-class { + color: #ffc247; + background-color: rgb(255, 170, 0, .16); +} + +.satus-text-field__text>.quantifier { + color: #47c2ff; + background-color: rgb(71, 194, 255, .16); +} + +.satus-text-field__text>.anchor { + color: #47c2ff; + background-color: rgb(71, 194, 255, .16); +} + +.satus-text-field__text>.metasequence { + color: #47ff47; + background-color: rgb(71, 255, 71, .16); +} + +.satus-text-field__text>.text { + color: #c4c4d4; + background-color: rgb(196, 196, 212, .16); +} +/*-------------------------------------------------------------- +# HEADER +--------------------------------------------------------------*/ + +.satus-header { + display: flex; + box-sizing: border-box; + height: 56px; + padding: 0 16px; + color: var(--satus-header-text); + background: var(--satus-header-background); + align-items: center; + justify-content: space-between; +} + +.satus-header .satus-h1--title { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + flex: 1; +} +/*-------------------------------------------------------------- +>>> ALERT +--------------------------------------------------------------*/ + +.satus-alert { + display: flex; + box-sizing: border-box; + min-height: 48px; + margin: 8px; + padding: 8px 16px; + border-radius: 8px; + align-items: center; +} + +.satus-alert--error { + color: #c55959; + border: 1px solid #641616; + background: #430f0f; +} +/*-------------------------------------------------------------- +>>> LAYERS +--------------------------------------------------------------*/ + +.satus-layers { + position: relative; + overflow: hidden; + color: var(--satus-layers-text); + background: var(--satus-layers-background); + flex: 1; +} + +.satus-layer { + position: absolute; + top: 0; + left: 0; + display: flex; + overflow-y: auto; + width: 100%; + height: 100%; + flex-wrap: wrap; + align-content: flex-start; +} +/*-------------------------------------------------------------- +# INPUT +--------------------------------------------------------------*/ + +.satus-input[type=text] { + font: inherit; + box-sizing: border-box; + width: 100%; + margin: 0; + padding: 0; + padding: 0 8px; + color: inherit; + border: none; + outline: none; + background: none; + appearance: none; +} +/**/ + +.satus-aside { + color: var(--satus-aside-text); + background: var(--satus-aside-background); + box-sizing: border-box; +} +/*-------------------------------------------------------------- +>>> SELECT +--------------------------------------------------------------*/ + +.satus-select { + position: relative; + display: flex; + box-sizing: border-box; + align-items: center; + justify-content: space-between; +} + +.satus-select__value { + margin-left: 16px; + text-align: right; + opacity: .75; +} + +.satus-select select { + font: inherit; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + margin: 0; + padding: 0; + padding: inherit; + cursor: pointer; + opacity: 0; + color: inherit; + border: none; + outline: none; + background: none; + appearance: none; +} + +.satus-select:hover { + cursor: pointer; + background-color: var(--satus-hover); +} +/*-------------------------------------------------------------- +>>> PLUVIAM +--------------------------------------------------------------*/ + +.satus-pluviam { + position: absolute; + transform: scale(0); + animation-name: pluviam; + animation-duration: 1000ms; + opacity: var(--satus-pluviam-opacity, .08); + border-radius: 50%; + background: var(--satus-pluviam-background, #000); + animation-fill-mode: forwards; +} + +@keyframes pluviam { + 0% { + transform: scale(0); + opacity: var(--satus-pluviam-opacity, .08); + } + 70% { + transform: scale(.8); + opacity: var(--satus-pluviam-opacity, .08); + } + 100% { + transform: scale(1); + opacity: 0; + } +} \ No newline at end of file diff --git a/satus.js b/satus.js index 389507dd9..7be2cb3cf 100644 --- a/satus.js +++ b/satus.js @@ -1 +1,2074 @@ -var satus={components:{},events:{},locale:{strings:{}},storage:{attributes:{},data:{}},append:function(M,N){(N||document.body).appendChild(M)},getAnimationDuration:function(M){return 1e3*Number(window.getComputedStyle(M).getPropertyValue("animation-duration").replace(/[^0-9.]/g,""))},attr:function(M,N){if(N)for(var i in N){var I;M.is_svg?M.setAttributeNS(null,i,N[i]):(I=N[i],-1!==["placeholder","title"].indexOf(i)&&(I=satus.locale.get(I)),M.setAttribute(i,I))}},elementIndex:function(M){return Array.prototype.slice.call(M.parentNode.children).indexOf(M)},data:function(M,N){if(N)for(var i in N)M.dataset[i]=N[i]},properties:function(M,N){if(N)for(var i in N)M[i]=N[i]},camelize:function(M){for(var N="",i=0,I=M.length;i>> CORE: +---------------------------------------------------------------- +# Global variable +# Functions +# Render +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# GLOBAL VARIABLE +--------------------------------------------------------------*/ + +var satus = { + components: {}, + events: {}, + locale: { + strings: {} + }, + storage: { + attributes: {}, + data: {} + } +}; + + +/*-------------------------------------------------------------- +# FUNCTIONS +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# APPEND +--------------------------------------------------------------*/ + +satus.append = function (element, container) { + (container || document.body).appendChild(element); +}; + + +/*-------------------------------------------------------------- +# ANIMATION DURATION +--------------------------------------------------------------*/ + +satus.getAnimationDuration = function (element) { + return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; +}; + + +/*-------------------------------------------------------------- +# APPEND +--------------------------------------------------------------*/ + +satus.attr = function (element, attributes) { + if (attributes) { + for (var key in attributes) { + if (element.is_svg) { + element.setAttributeNS(null, key, attributes[key]); + } else { + var value = attributes[key]; + + if (['placeholder', 'title'].indexOf(key) !== -1) { + value = satus.locale.get(value); + } + + element.setAttribute(key, value); + } + } + } +}; + +satus.elementIndex = function (element) { + return Array.prototype.slice.call(element.parentNode.children).indexOf(element); +}; + + +/*-------------------------------------------------------------- +# DATA +--------------------------------------------------------------*/ + +satus.data = function (element, data) { + if (data) { + for (var key in data) { + element.dataset[key] = data[key]; + } + } +}; + + +/*-------------------------------------------------------------- +# PROPERTIES +--------------------------------------------------------------*/ + +satus.properties = function (element, properties) { + if (properties) { + for (var key in properties) { + element[key] = properties[key]; + } + } +}; + + +/*-------------------------------------------------------------- +# CAMELIZE +--------------------------------------------------------------*/ + +satus.camelize = function (string) { + var result = ''; + + for (var i = 0, l = string.length; i < l; i++) { + var character = string[i]; + + if (character === '-') { + i++; + + result += string[i].toUpperCase(); + } else { + result += character; + } + } + + return result; +}; + + +/*-------------------------------------------------------------- +# SNAKELIZE +--------------------------------------------------------------*/ + +satus.snakelize = function (string) { + return string.replace(/([A-Z])/g, '-$1').toLowerCase(); +}; + + +/*-------------------------------------------------------------- +# CLASS +--------------------------------------------------------------*/ + +satus.class = function (element, string) { + if (string) { + element.className += ' ' + string; + } +}; + + +/*-------------------------------------------------------------- +# EMPTY +--------------------------------------------------------------*/ + +satus.empty = function (element) { + for (var i = element.childNodes.length - 1; i > -1; i--) { + element.childNodes[i].remove(); + } +}; + + +/*-------------------------------------------------------------- +# EVENTS +--------------------------------------------------------------*/ + +Object.defineProperty(satus.events, 'add', { + value: function (type, listener) { + if (this.hasOwnProperty(type) === false) { + this[type] = []; + } + + this[type].push(listener); + } +}); + + +/*-------------------------------------------------------------- +# ISSET +--------------------------------------------------------------*/ + +satus.isset = function (variable) { + if (variable === null || variable === undefined) { + return false; + } + + return true; +}; + + +/*-------------------------------------------------------------- +# FETCH +--------------------------------------------------------------*/ + +satus.fetch = function (url, success, error) { + fetch(url).then(function (response) { + if (response.ok) { + response.json().then(success); + } else { + error(); + } + }); +}; + + +/*-------------------------------------------------------------- +# AJAX +--------------------------------------------------------------*/ + +satus.ajax = function (url, success, error) { + var xhr = new XMLHttpRequest(); + + xhr.onload = function () { + success(this.response); + }; + xhr.onerror = function () { + error(success); + }; + + xhr.open('GET', url, true); + xhr.send(); +}; + + +/*-------------------------------------------------------------- +# STORAGE +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# GET +--------------------------------------------------------------*/ + +satus.storage.get = function (name) { + var target = satus.storage.data; + + if (satus.isset(name) === false) { + return; + } + + name = name.split('/').filter(function (value) { + return value != ''; + }); + + for (var i = 0, l = name.length; i < l; i++) { + if (satus.isset(target[name[i]])) { + target = target[name[i]]; + } else { + return undefined; + } + } + + return target; +}; + + +/*-------------------------------------------------------------- +# SET +--------------------------------------------------------------*/ + +satus.storage.set = function (name, value) { + var items = {}, + target = satus.storage.data; + + if (satus.isset(name) === false) { + return; + } + + name = name.split('/').filter(function (value) { + return value != ''; + }); + + for (var i = 0, l = name.length; i < l; i++) { + var item = name[i]; + + if (i < l - 1) { + + if (target[item]) { + target = target[item]; + } else { + target[item] = {}; + + target = target[item]; + } + } else { + target[item] = value; + } + } + + for (var key in this.data) { + if (typeof this.data[key] !== 'function') { + items[key] = this.data[key]; + } + } + + if (satus.storage.attributes[name]) { + document.body.setAttribute(name, value); + } + + chrome.storage.local.set(items); +}; + + +/*-------------------------------------------------------------- +# IMPORT +--------------------------------------------------------------*/ + +satus.storage.import = function (callback) { + chrome.storage.local.get(function (items) { + for (var key in items) { + if (satus.storage.attributes[key]) { + document.body.setAttribute(key, items[key]); + } + + satus.storage.data[key] = items[key]; + } + + if (callback) { + callback(items); + } + }); +}; + + +/*-------------------------------------------------------------- +# CLEAR +--------------------------------------------------------------*/ + +satus.storage.clear = function (callback) { + chrome.storage.local.clear(callback); +}; + + +/*-------------------------------------------------------------- +# LOCALIZATION +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# GET +--------------------------------------------------------------*/ + +satus.locale.get = function (string) { + return this.strings[string] || string; +}; + + +/*-------------------------------------------------------------- +# ON +--------------------------------------------------------------*/ + +satus.on = function (element, events) { + if (this.isset(events) && typeof events === 'object') { + for (var selector in events) { + var type = typeof events[selector]; + + if (type === 'function') { + element.addEventListener(selector, events[selector]); + } else if (type === 'object') { + element.addEventListener(selector, function (event) { + this.skeleton.on[event.type].parent = this.skeleton; + + if (this.skeleton.on[event.type].component !== 'modal' && this.base && this.base.layers) { + this.base.layers.open(this.skeleton.on[event.type]); + } else { + satus.render(this.skeleton.on[event.type], this.base); + } + }); + } else if (type === 'string') { + element.addEventListener(selector, function () { + var match = this.skeleton.on[event.type].match(/(["'`].+["'`]|[^.()]+)/g), + target = this.base; + + for (var i = 0, l = match.length; i < l; i++) { + var key = match[i]; + + if (target.skeleton[key]) { + target = target.skeleton[key]; + } else { + if (typeof target[key] === 'function') { + target[key](); + } else { + target = target[key]; + } + } + + if (target.rendered) { + target = target.rendered; + } + } + }); + } + } + } +}; + + +/*-------------------------------------------------------------- +# STYLE +--------------------------------------------------------------*/ + +satus.style = function (component, object) { + for (var key in object) { + component.style[key] = object[key]; + } +}; + + +/*-------------------------------------------------------------- +# SEARCH +--------------------------------------------------------------*/ + +satus.search = function (query, object, callback, categories) { + var threads = 0, + folder = '', + results = {}; + + query = query.toLowerCase(); + + function parse(items) { + threads++; + + for (var key in items) { + if (key !== 'rendered' && key !== 'base' && key !== 'parent') { + var item = items[key]; + + if (['switch', 'select', 'slider', 'shortcut'].indexOf(item.component) !== -1 && key.indexOf(query) !== -1) { + if (categories === true) { + if (!results[folder]) { + results[folder] = {}; + } + + results[folder][key] = item; + } else { + results[key] = item; + } + } + + if (typeof item === 'object') { + parse(item); + } + } + } + + threads--; + + if (threads === 0) { + callback(results); + } + } + + parse(object); +}; + + +/*-------------------------------------------------------------- +# TEXT +--------------------------------------------------------------*/ + +satus.text = function (component, string) { + if (string) { + component.appendChild(document.createTextNode(this.locale.get(string))); + } +}; + + +/*-------------------------------------------------------------- +# RENDER +--------------------------------------------------------------*/ + +satus.render = function (skeleton, container, skip, property) { + if (skeleton.hasOwnProperty('component') && skip !== true) { + var component, + name = skeleton.component, + camelized_name = this.camelize(name); + + if (skeleton.on && skeleton.on.beforerender) { + skeleton.on.beforerender(skeleton); + } + + if (skeleton.hasOwnProperty('storage') === false && property) { + skeleton.storage = property; + } + + if (this.components[camelized_name]) { + component = this.components[camelized_name](skeleton); + + if (this.isset(component.inner) === false) { + component.inner = component; + } + } else if (name === 'svg' || container && container.is_svg) { + component = document.createElementNS('http://www.w3.org/2000/svg', name); + + component.is_svg = true; + + component.inner = component; + } else { + component = document.createElement(skeleton.component); + + component.inner = component; + } + + if (component.inner.hasOwnProperty('base') === false && container) { + component.inner.base = container.base; + } + + if (component.inner.base && name === 'layers') { + component.inner.base.layers = component; + } + + skeleton.rendered = component; + component.skeleton = skeleton; + + component.className = (component.className + ' satus-' + skeleton.component).trim(); + + component.change = function (value) { + if (this.skeleton.storage) { + satus.storage.set(this.skeleton.storage, value); + } + }; + + if (skeleton.variant) { + component.className += ' satus-' + skeleton.component + '--' + skeleton.variant; + } + + this.append(component, container); + + container = component.inner || component; + + this.class(component, skeleton.class); + this.style(component, skeleton.style); + this.attr(component, skeleton.attr); + this.data(component, skeleton.data); + this.properties(component, skeleton.properties); + this.on(component, skeleton.on); + this.text(container, skeleton.text); + + component.dispatchEvent(new CustomEvent('render')); + + if (this.events.hasOwnProperty('render')) { + for (var i = 0, l = this.events['render'].length; i < l; i++) { + this.events['render'][i](component, skeleton); + } + } + } + + if (!component || component.render_children !== false) { + for (var key in skeleton) { + if (key !== 'parent' && skeleton[key] && skeleton[key].hasOwnProperty('component')) { + skeleton[key].parent = skeleton; + + this.render(skeleton[key], container, false, key); + } + } + } +}; +/*-------------------------------------------------------------- +>>> COLOR PICKER +--------------------------------------------------------------*/ + +satus.components.colorPicker = function (skeleton) { + var component = document.createElement('button'), + component_value = document.createElement('span'); + + component.className = 'satus-button'; + component_value.className = 'satus-color-picker__value'; + + component.valueElement = component_value; + + component.addEventListener('render', function () { + var data = satus.storage.get(this.storage) || this.skeleton.value || { + rgb: [0, 0, 0] + }; + + this.valueElement.style.backgroundColor = 'rgb(' + data.rgb[0] + ',' + data.rgb[1] + ',' + data.rgb[2] + ')'; + }); + + component.addEventListener('click', function () { + satus.render({ + component: 'modal', + class: 'satus-modal--color-picker', + properties: { + parentComponent: this + }, + + canvas: { + component: 'canvas', + on: { + render: function () { + var data = satus.storage.get(this.parentNode.parentNode.parentComponent.storage) || this.parentNode.parentNode.parentComponent.skeleton.value || { + rgb: [0, 0, 0] + }, + ctx = this.getContext('2d'), + image = new Image(); + + this.parentNode.data = data; + + image.addEventListener('load', function () { + ctx.drawImage(this, 0, 0); + }); + + image.src = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNzAgMjcwIj48ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9ImEiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iMTMzIiBjbGFzcz0iSXJvV2hlZWxIdWUiPjxwYXRoIHN0cm9rZT0iaHNsKDI0MCwgMTAwJSwgNTAlKSIgZD0iTTIwMS40NzcgMTM2Ljc0YTY2LjUgNjYuNSAwIDAwLjAyMy0xLjc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQxLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjQzNyAxMzcuOWE2Ni41IDY2LjUgMCAwMC4wNTMtMS43NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI0MiwgMTAwJSwgNTAlKSIgZD0iTTIwMS4zNzYgMTM5LjA2YTY2LjUgNjYuNSAwIDAwLjA4My0xLjc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQzLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjI5NSAxNDAuMjE4YTY2LjUgNjYuNSAwIDAwLjExNC0xLjczOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI0NCwgMTAwJSwgNTAlKSIgZD0iTTIwMS4xOTQgMTQxLjM3NGE2Ni41IDY2LjUgMCAwMC4xNDQtMS43MzUiLz48cGF0aCBzdHJva2U9ImhzbCgyNDUsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuMDczIDE0Mi41MjhhNjYuNSA2Ni41IDAgMDAuMTc0LTEuNzMyIi8+PHBhdGggc3Ryb2tlPSJoc2woMjQ2LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjkzMSAxNDMuNjhhNjYuNSA2Ni41IDAgMDAuMjA1LTEuNzI5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQ3LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjc3IDE0NC44M2E2Ni41IDY2LjUgMCAwMC4yMzQtMS43MjYiLz48cGF0aCBzdHJva2U9ImhzbCgyNDgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDAuNTg4IDE0NS45NzZhNjYuNSA2Ni41IDAgMDAuMjY1LTEuNzIxIi8+PHBhdGggc3Ryb2tlPSJoc2woMjQ5LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjM4NiAxNDcuMTE5YTY2LjUgNjYuNSAwIDAwLjI5NS0xLjcxNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1MCwgMTAwJSwgNTAlKSIgZD0iTTIwMC4xNjUgMTQ4LjI1OGE2Ni41IDY2LjUgMCAwMC4zMjUtMS43MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1MSwgMTAwJSwgNTAlKSIgZD0iTTE5OS45MjQgMTQ5LjM5M2E2Ni41IDY2LjUgMCAwMC4zNTQtMS43MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuNjYzIDE1MC41MjRhNjYuNSA2Ni41IDAgMDAuMzg0LTEuNjk4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjUzLCAxMDAlLCA1MCUpIiBkPSJNMTk5LjM4MiAxNTEuNjVhNjYuNSA2Ni41IDAgMDAuNDE0LTEuNjkiLz48cGF0aCBzdHJva2U9ImhzbCgyNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuMDgxIDE1Mi43NzFhNjYuNSA2Ni41IDAgMDAuNDQ0LTEuNjgzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjU1LCAxMDAlLCA1MCUpIiBkPSJNMTk4Ljc2MiAxNTMuODg3YTY2LjUgNjYuNSAwIDAwLjQ3Mi0xLjY3NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1NiwgMTAwJSwgNTAlKSIgZD0iTTE5OC40MjIgMTU0Ljk5N2E2Ni41IDY2LjUgMCAwMC41MDItMS42NjciLz48cGF0aCBzdHJva2U9ImhzbCgyNTcsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguMDY0IDE1Ni4xYTY2LjUgNjYuNSAwIDAwLjUzLTEuNjU3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjU4LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjY4NiAxNTcuMTk4YTY2LjUgNjYuNSAwIDAwLjU2LTEuNjQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjU5LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjI4OSAxNTguMjg5YTY2LjUgNjYuNSAwIDAwLjU4OC0xLjYzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2MCwgMTAwJSwgNTAlKSIgZD0iTTE5Ni44NzMgMTU5LjM3MmE2Ni41IDY2LjUgMCAwMC42MTctMS42MjgiLz48cGF0aCBzdHJva2U9ImhzbCgyNjEsIDEwMCUsIDUwJSkiIGQ9Ik0xOTYuNDM4IDE2MC40NDhhNjYuNSA2Ni41IDAgMDAuNjQ1LTEuNjE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjYyLCAxMDAlLCA1MCUpIiBkPSJNMTk1Ljk4NCAxNjEuNTE3YTY2LjUgNjYuNSAwIDAwLjY3NC0xLjYwNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2MywgMTAwJSwgNTAlKSIgZD0iTTE5NS41MTIgMTYyLjU3N2E2Ni41IDY2LjUgMCAwMC43MDItMS41OTMiLz48cGF0aCBzdHJva2U9ImhzbCgyNjQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTUuMDIyIDE2My42MjlhNjYuNSA2Ni41IDAgMDAuNzI5LTEuNTgxIi8+PHBhdGggc3Ryb2tlPSJoc2woMjY1LCAxMDAlLCA1MCUpIiBkPSJNMTk0LjUxMyAxNjQuNjcyYTY2LjUgNjYuNSAwIDAwLjc1Ni0xLjU2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2NiwgMTAwJSwgNTAlKSIgZD0iTTE5My45ODYgMTY1LjcwNmE2Ni41IDY2LjUgMCAwMC43ODQtMS41NTQiLz48cGF0aCBzdHJva2U9ImhzbCgyNjcsIDEwMCUsIDUwJSkiIGQ9Ik0xOTMuNDQxIDE2Ni43MzFhNjYuNSA2Ni41IDAgMDAuODEtMS41NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2OCwgMTAwJSwgNTAlKSIgZD0iTTE5Mi44NzkgMTY3Ljc0NmE2Ni41IDY2LjUgMCAwMC44MzctMS41MjYiLz48cGF0aCBzdHJva2U9ImhzbCgyNjksIDEwMCUsIDUwJSkiIGQ9Ik0xOTIuMjk4IDE2OC43NTFhNjYuNSA2Ni41IDAgMDAuODY0LTEuNTExIi8+PHBhdGggc3Ryb2tlPSJoc2woMjcwLCAxMDAlLCA1MCUpIiBkPSJNMTkxLjcgMTY5Ljc0NmE2Ni41IDY2LjUgMCAwMC44OS0xLjQ5NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3MSwgMTAwJSwgNTAlKSIgZD0iTTE5MS4wODYgMTcwLjczYTY2LjUgNjYuNSAwIDAwLjkxNi0xLjQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjcyLCAxMDAlLCA1MCUpIiBkPSJNMTkwLjQ1MyAxNzEuNzA0YTY2LjUgNjYuNSAwIDAwLjk0Mi0xLjQ2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3MywgMTAwJSwgNTAlKSIgZD0iTTE4OS44MDQgMTcyLjY2NmE2Ni41IDY2LjUgMCAwMC45NjgtMS40NDgiLz48cGF0aCBzdHJva2U9ImhzbCgyNzQsIDEwMCUsIDUwJSkiIGQ9Ik0xODkuMTM5IDE3My42MTdhNjYuNSA2Ni41IDAgMDAuOTkyLTEuNDMiLz48cGF0aCBzdHJva2U9ImhzbCgyNzUsIDEwMCUsIDUwJSkiIGQ9Ik0xODguNDU2IDE3NC41NTZhNjYuNSA2Ni41IDAgMDAxLjAxOC0xLjQxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3NiwgMTAwJSwgNTAlKSIgZD0iTTE4Ny43NTggMTc1LjQ4M2E2Ni41IDY2LjUgMCAwMDEuMDQyLTEuMzk1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjc3LCAxMDAlLCA1MCUpIiBkPSJNMTg3LjA0MyAxNzYuMzk3YTY2LjUgNjYuNSAwIDAwMS4wNjYtMS4zNzYiLz48cGF0aCBzdHJva2U9ImhzbCgyNzgsIDEwMCUsIDUwJSkiIGQ9Ik0xODYuMzEzIDE3Ny4zYTY2LjUgNjYuNSAwIDAwMS4wOS0xLjM1OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3OSwgMTAwJSwgNTAlKSIgZD0iTTE4NS41NjcgMTc4LjE4OGE2Ni41IDY2LjUgMCAwMDEuMTEzLTEuMzM4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjgwLCAxMDAlLCA1MCUpIiBkPSJNMTg0LjgwNiAxNzkuMDY0YTY2LjUgNjYuNSAwIDAwMS4xMzYtMS4zMTkiLz48cGF0aCBzdHJva2U9ImhzbCgyODEsIDEwMCUsIDUwJSkiIGQ9Ik0xODQuMDI5IDE3OS45MjdhNjYuNSA2Ni41IDAgMDAxLjE2LTEuMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4MiwgMTAwJSwgNTAlKSIgZD0iTTE4My4yMzcgMTgwLjc3NmE2Ni41IDY2LjUgMCAwMDEuMTgyLTEuMjc5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjgzLCAxMDAlLCA1MCUpIiBkPSJNMTgyLjQzMSAxODEuNjFhNjYuNSA2Ni41IDAgMDAxLjIwNC0xLjI1NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4NCwgMTAwJSwgNTAlKSIgZD0iTTE4MS42MSAxODIuNDMxYTY2LjUgNjYuNSAwIDAwMS4yMjYtMS4yMzYiLz48cGF0aCBzdHJva2U9ImhzbCgyODUsIDEwMCUsIDUwJSkiIGQ9Ik0xODAuNzc2IDE4My4yMzdhNjYuNSA2Ni41IDAgMDAxLjI0Ny0xLjIxNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4NiwgMTAwJSwgNTAlKSIgZD0iTTE3OS45MjcgMTg0LjAyOWE2Ni41IDY2LjUgMCAwMDEuMjY4LTEuMTkzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjg3LCAxMDAlLCA1MCUpIiBkPSJNMTc5LjA2NCAxODQuODA2YTY2LjUgNjYuNSAwIDAwMS4yODktMS4xNzEiLz48cGF0aCBzdHJva2U9ImhzbCgyODgsIDEwMCUsIDUwJSkiIGQ9Ik0xNzguMTg4IDE4NS41NjdhNjYuNSA2Ni41IDAgMDAxLjMxLTEuMTQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjg5LCAxMDAlLCA1MCUpIiBkPSJNMTc3LjMgMTg2LjMxM2E2Ni41IDY2LjUgMCAwMDEuMzI4LTEuMTI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjkwLCAxMDAlLCA1MCUpIiBkPSJNMTc2LjM5NyAxODcuMDQzYTY2LjUgNjYuNSAwIDAwMS4zNDgtMS4xMDEiLz48cGF0aCBzdHJva2U9ImhzbCgyOTEsIDEwMCUsIDUwJSkiIGQ9Ik0xNzUuNDgzIDE4Ny43NThhNjYuNSA2Ni41IDAgMDAxLjM2Ny0xLjA3OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI5MiwgMTAwJSwgNTAlKSIgZD0iTTE3NC41NTYgMTg4LjQ1NmE2Ni41IDY2LjUgMCAwMDEuMzg1LTEuMDUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjkzLCAxMDAlLCA1MCUpIiBkPSJNMTczLjYxNyAxODkuMTM5YTY2LjUgNjYuNSAwIDAwMS40MDQtMS4wMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI5NCwgMTAwJSwgNTAlKSIgZD0iTTE3Mi42NjYgMTg5LjgwNGE2Ni41IDY2LjUgMCAwMDEuNDIyLTEuMDA0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk1LCAxMDAlLCA1MCUpIiBkPSJNMTcxLjcwNCAxOTAuNDUzYTY2LjUgNjYuNSAwIDAwMS40MzktLjk4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk2LCAxMDAlLCA1MCUpIiBkPSJNMTcwLjczIDE5MS4wODZhNjYuNSA2Ni41IDAgMDAxLjQ1Ni0uOTU1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk3LCAxMDAlLCA1MCUpIiBkPSJNMTY5Ljc0NiAxOTEuN2E2Ni41IDY2LjUgMCAwMDEuNDcyLS45MjgiLz48cGF0aCBzdHJva2U9ImhzbCgyOTgsIDEwMCUsIDUwJSkiIGQ9Ik0xNjguNzUxIDE5Mi4yOThhNjYuNSA2Ni41IDAgMDAxLjQ4OS0uOTAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjk5LCAxMDAlLCA1MCUpIiBkPSJNMTY3Ljc0NiAxOTIuODc5YTY2LjUgNjYuNSAwIDAwMS41MDQtLjg3NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwMCwgMTAwJSwgNTAlKSIgZD0iTTE2Ni43MzEgMTkzLjQ0MWE2Ni41IDY2LjUgMCAwMDEuNTE5LS44NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwMSwgMTAwJSwgNTAlKSIgZD0iTTE2NS43MDYgMTkzLjk4NmE2Ni41IDY2LjUgMCAwMDEuNTM0LS44MjQiLz48cGF0aCBzdHJva2U9ImhzbCgzMDIsIDEwMCUsIDUwJSkiIGQ9Ik0xNjQuNjcyIDE5NC41MTNhNjYuNSA2Ni41IDAgMDAxLjU0OC0uNzk3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzAzLCAxMDAlLCA1MCUpIiBkPSJNMTYzLjYyOSAxOTUuMDIyYTY2LjUgNjYuNSAwIDAwMS41NjEtLjc3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzA0LCAxMDAlLCA1MCUpIiBkPSJNMTYyLjU3NyAxOTUuNTEyYTY2LjUgNjYuNSAwIDAwMS41NzUtLjc0MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwNSwgMTAwJSwgNTAlKSIgZD0iTTE2MS41MTcgMTk1Ljk4NGE2Ni41IDY2LjUgMCAwMDEuNTg3LS43MTUiLz48cGF0aCBzdHJva2U9ImhzbCgzMDYsIDEwMCUsIDUwJSkiIGQ9Ik0xNjAuNDQ4IDE5Ni40MzhhNjYuNSA2Ni41IDAgMDAxLjYtLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwNywgMTAwJSwgNTAlKSIgZD0iTTE1OS4zNzIgMTk2Ljg3M2E2Ni41IDY2LjUgMCAwMDEuNjEyLS42NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwOCwgMTAwJSwgNTAlKSIgZD0iTTE1OC4yODkgMTk3LjI4OWE2Ni41IDY2LjUgMCAwMDEuNjIyLS42MzEiLz48cGF0aCBzdHJva2U9ImhzbCgzMDksIDEwMCUsIDUwJSkiIGQ9Ik0xNTcuMTk4IDE5Ny42ODZhNjYuNSA2Ni41IDAgMDAxLjYzMy0uNjAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzEwLCAxMDAlLCA1MCUpIiBkPSJNMTU2LjEgMTk4LjA2NGE2Ni41IDY2LjUgMCAwMDEuNjQ0LS41NzQiLz48cGF0aCBzdHJva2U9ImhzbCgzMTEsIDEwMCUsIDUwJSkiIGQ9Ik0xNTQuOTk3IDE5OC40MjJhNjYuNSA2Ni41IDAgMDAxLjY1My0uNTQ1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzEyLCAxMDAlLCA1MCUpIiBkPSJNMTUzLjg4NyAxOTguNzYyYTY2LjUgNjYuNSAwIDAwMS42NjMtLjUxNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxMywgMTAwJSwgNTAlKSIgZD0iTTE1Mi43NzEgMTk5LjA4MWE2Ni41IDY2LjUgMCAwMDEuNjcyLS40ODciLz48cGF0aCBzdHJva2U9ImhzbCgzMTQsIDEwMCUsIDUwJSkiIGQ9Ik0xNTEuNjUgMTk5LjM4MmE2Ni41IDY2LjUgMCAwMDEuNjgtLjQ1OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxNSwgMTAwJSwgNTAlKSIgZD0iTTE1MC41MjQgMTk5LjY2M2E2Ni41IDY2LjUgMCAwMDEuNjg3LS40MjkiLz48cGF0aCBzdHJva2U9ImhzbCgzMTYsIDEwMCUsIDUwJSkiIGQ9Ik0xNDkuMzkzIDE5OS45MjRhNjYuNSA2Ni41IDAgMDAxLjY5NS0uNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxNywgMTAwJSwgNTAlKSIgZD0iTTE0OC4yNTggMjAwLjE2NWE2Ni41IDY2LjUgMCAwMDEuNzAxLS4zNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxOCwgMTAwJSwgNTAlKSIgZD0iTTE0Ny4xMTkgMjAwLjM4NmE2Ni41IDY2LjUgMCAwMDEuNzA3LS4zNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxOSwgMTAwJSwgNTAlKSIgZD0iTTE0NS45NzYgMjAwLjU4OGE2Ni41IDY2LjUgMCAwMDEuNzEzLS4zMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMCwgMTAwJSwgNTAlKSIgZD0iTTE0NC44MyAyMDAuNzdhNjYuNSA2Ni41IDAgMDAxLjcxOC0uMjgiLz48cGF0aCBzdHJva2U9ImhzbCgzMjEsIDEwMCUsIDUwJSkiIGQ9Ik0xNDMuNjggMjAwLjkzMWE2Ni41IDY2LjUgMCAwMDEuNzIzLS4yNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMiwgMTAwJSwgNTAlKSIgZD0iTTE0Mi41MjggMjAxLjA3M2E2Ni41IDY2LjUgMCAwMDEuNzI3LS4yMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMywgMTAwJSwgNTAlKSIgZD0iTTE0MS4zNzQgMjAxLjE5NGE2Ni41IDY2LjUgMCAwMDEuNzMtLjE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI0LCAxMDAlLCA1MCUpIiBkPSJNMTQwLjIxOCAyMDEuMjk1YTY2LjUgNjYuNSAwIDAwMS43MzMtLjE2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI1LCAxMDAlLCA1MCUpIiBkPSJNMTM5LjA2IDIwMS4zNzZhNjYuNSA2Ni41IDAgMDAxLjczNi0uMTMiLz48cGF0aCBzdHJva2U9ImhzbCgzMjYsIDEwMCUsIDUwJSkiIGQ9Ik0xMzcuOSAyMDEuNDM3YTY2LjUgNjYuNSAwIDAwMS43MzktLjA5OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyNywgMTAwJSwgNTAlKSIgZD0iTTEzNi43NCAyMDEuNDc3YTY2LjUgNjYuNSAwIDAwMS43NC0uMDY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI4LCAxMDAlLCA1MCUpIiBkPSJNMTM1LjU4IDIwMS40OTdhNjYuNSA2Ni41IDAgMDAxLjc0LS4wMzgiLz48cGF0aCBzdHJva2U9ImhzbCgzMjksIDEwMCUsIDUwJSkiIGQ9Ik0xMzQuNDIgMjAxLjQ5N2E2Ni41IDY2LjUgMCAwMDEuNzQtLjAwNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMzMCwgMTAwJSwgNTAlKSIgZD0iTTEzMy4yNiAyMDEuNDc3YTY2LjUgNjYuNSAwIDAwMS43NC4wMjMiLz48cGF0aCBzdHJva2U9ImhzbCgzMzEsIDEwMCUsIDUwJSkiIGQ9Ik0xMzIuMSAyMDEuNDM3YTY2LjUgNjYuNSAwIDAwMS43NC4wNTMiLz48cGF0aCBzdHJva2U9ImhzbCgzMzIsIDEwMCUsIDUwJSkiIGQ9Ik0xMzAuOTQgMjAxLjM3NmE2Ni41IDY2LjUgMCAwMDEuNzQuMDgzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzMzLCAxMDAlLCA1MCUpIiBkPSJNMTI5Ljc4MiAyMDEuMjk1YTY2LjUgNjYuNSAwIDAwMS43MzguMTE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM0LCAxMDAlLCA1MCUpIiBkPSJNMTI4LjYyNiAyMDEuMTk0YTY2LjUgNjYuNSAwIDAwMS43MzUuMTQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM1LCAxMDAlLCA1MCUpIiBkPSJNMTI3LjQ3MiAyMDEuMDczYTY2LjUgNjYuNSAwIDAwMS43MzIuMTc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM2LCAxMDAlLCA1MCUpIiBkPSJNMTI2LjMyIDIwMC45MzFhNjYuNSA2Ni41IDAgMDAxLjcyOS4yMDUiLz48cGF0aCBzdHJva2U9ImhzbCgzMzcsIDEwMCUsIDUwJSkiIGQ9Ik0xMjUuMTcgMjAwLjc3YTY2LjUgNjYuNSAwIDAwMS43MjYuMjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM4LCAxMDAlLCA1MCUpIiBkPSJNMTI0LjAyNCAyMDAuNTg4YTY2LjUgNjYuNSAwIDAwMS43MjEuMjY1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM5LCAxMDAlLCA1MCUpIiBkPSJNMTIyLjg4MSAyMDAuMzg2YTY2LjUgNjYuNSAwIDAwMS43MTYuMjk1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQwLCAxMDAlLCA1MCUpIiBkPSJNMTIxLjc0MiAyMDAuMTY1YTY2LjUgNjYuNSAwIDAwMS43MS4zMjUiLz48cGF0aCBzdHJva2U9ImhzbCgzNDEsIDEwMCUsIDUwJSkiIGQ9Ik0xMjAuNjA3IDE5OS45MjRhNjYuNSA2Ni41IDAgMDAxLjcwNC4zNTQiLz48cGF0aCBzdHJva2U9ImhzbCgzNDIsIDEwMCUsIDUwJSkiIGQ9Ik0xMTkuNDc2IDE5OS42NjNhNjYuNSA2Ni41IDAgMDAxLjY5OC4zODQiLz48cGF0aCBzdHJva2U9ImhzbCgzNDMsIDEwMCUsIDUwJSkiIGQ9Ik0xMTguMzUgMTk5LjM4MmE2Ni41IDY2LjUgMCAwMDEuNjkuNDE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQ0LCAxMDAlLCA1MCUpIiBkPSJNMTE3LjIyOSAxOTkuMDgxYTY2LjUgNjYuNSAwIDAwMS42ODMuNDQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQ1LCAxMDAlLCA1MCUpIiBkPSJNMTE2LjExMyAxOTguNzYyYTY2LjUgNjYuNSAwIDAwMS42NzYuNDcyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ2LCAxMDAlLCA1MCUpIiBkPSJNMTE1LjAwMyAxOTguNDIyYTY2LjUgNjYuNSAwIDAwMS42NjcuNTAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ3LCAxMDAlLCA1MCUpIiBkPSJNMTEzLjkgMTk4LjA2NGE2Ni41IDY2LjUgMCAwMDEuNjU3LjUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ4LCAxMDAlLCA1MCUpIiBkPSJNMTEyLjgwMiAxOTcuNjg2YTY2LjUgNjYuNSAwIDAwMS42NDguNTYiLz48cGF0aCBzdHJva2U9ImhzbCgzNDksIDEwMCUsIDUwJSkiIGQ9Ik0xMTEuNzExIDE5Ny4yODlhNjYuNSA2Ni41IDAgMDAxLjYzOS41ODgiLz48cGF0aCBzdHJva2U9ImhzbCgzNTAsIDEwMCUsIDUwJSkiIGQ9Ik0xMTAuNjI4IDE5Ni44NzNhNjYuNSA2Ni41IDAgMDAxLjYyOC42MTciLz48cGF0aCBzdHJva2U9ImhzbCgzNTEsIDEwMCUsIDUwJSkiIGQ9Ik0xMDkuNTUyIDE5Ni40MzhhNjYuNSA2Ni41IDAgMDAxLjYxNy42NDUiLz48cGF0aCBzdHJva2U9ImhzbCgzNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xMDguNDgzIDE5NS45ODRhNjYuNSA2Ni41IDAgMDAxLjYwNi42NzQiLz48cGF0aCBzdHJva2U9ImhzbCgzNTMsIDEwMCUsIDUwJSkiIGQ9Ik0xMDcuNDIzIDE5NS41MTJhNjYuNSA2Ni41IDAgMDAxLjU5My43MDIiLz48cGF0aCBzdHJva2U9ImhzbCgzNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xMDYuMzcxIDE5NS4wMjJhNjYuNSA2Ni41IDAgMDAxLjU4MS43MjkiLz48cGF0aCBzdHJva2U9ImhzbCgzNTUsIDEwMCUsIDUwJSkiIGQ9Ik0xMDUuMzI4IDE5NC41MTNhNjYuNSA2Ni41IDAgMDAxLjU2OC43NTYiLz48cGF0aCBzdHJva2U9ImhzbCgzNTYsIDEwMCUsIDUwJSkiIGQ9Ik0xMDQuMjk0IDE5My45ODZhNjYuNSA2Ni41IDAgMDAxLjU1NC43ODQiLz48cGF0aCBzdHJva2U9ImhzbCgzNTcsIDEwMCUsIDUwJSkiIGQ9Ik0xMDMuMjY5IDE5My40NDFhNjYuNSA2Ni41IDAgMDAxLjU0LjgxIi8+PHBhdGggc3Ryb2tlPSJoc2woMzU4LCAxMDAlLCA1MCUpIiBkPSJNMTAyLjI1NCAxOTIuODc5YTY2LjUgNjYuNSAwIDAwMS41MjYuODM3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzU5LCAxMDAlLCA1MCUpIiBkPSJNMTAxLjI0OSAxOTIuMjk4YTY2LjUgNjYuNSAwIDAwMS41MTEuODY0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMCwgMTAwJSwgNTAlKSIgZD0iTTEwMC4yNTQgMTkxLjdhNjYuNSA2Ni41IDAgMDAxLjQ5Ni44OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEsIDEwMCUsIDUwJSkiIGQ9Ik05OS4yNyAxOTEuMDg2YTY2LjUgNjYuNSAwIDAwMS40OC45MTYiLz48cGF0aCBzdHJva2U9ImhzbCgyLCAxMDAlLCA1MCUpIiBkPSJNOTguMjk2IDE5MC40NTNhNjYuNSA2Ni41IDAgMDAxLjQ2NC45NDIiLz48cGF0aCBzdHJva2U9ImhzbCgzLCAxMDAlLCA1MCUpIiBkPSJNOTcuMzM0IDE4OS44MDRhNjYuNSA2Ni41IDAgMDAxLjQ0OC45NjgiLz48cGF0aCBzdHJva2U9ImhzbCg0LCAxMDAlLCA1MCUpIiBkPSJNOTYuMzgzIDE4OS4xMzlhNjYuNSA2Ni41IDAgMDAxLjQzLjk5MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDUsIDEwMCUsIDUwJSkiIGQ9Ik05NS40NDQgMTg4LjQ1NmE2Ni41IDY2LjUgMCAwMDEuNDEzIDEuMDE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woNiwgMTAwJSwgNTAlKSIgZD0iTTk0LjUxNyAxODcuNzU4YTY2LjUgNjYuNSAwIDAwMS4zOTUgMS4wNDIiLz48cGF0aCBzdHJva2U9ImhzbCg3LCAxMDAlLCA1MCUpIiBkPSJNOTMuNjAzIDE4Ny4wNDNhNjYuNSA2Ni41IDAgMDAxLjM3NiAxLjA2NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDgsIDEwMCUsIDUwJSkiIGQ9Ik05Mi43IDE4Ni4zMTNhNjYuNSA2Ni41IDAgMDAxLjM1OSAxLjA5Ii8+PHBhdGggc3Ryb2tlPSJoc2woOSwgMTAwJSwgNTAlKSIgZD0iTTkxLjgxMiAxODUuNTY3YTY2LjUgNjYuNSAwIDAwMS4zMzggMS4xMTMiLz48cGF0aCBzdHJva2U9ImhzbCgxMCwgMTAwJSwgNTAlKSIgZD0iTTkwLjkzNiAxODQuODA2YTY2LjUgNjYuNSAwIDAwMS4zMTkgMS4xMzYiLz48cGF0aCBzdHJva2U9ImhzbCgxMSwgMTAwJSwgNTAlKSIgZD0iTTkwLjA3MyAxODQuMDI5YTY2LjUgNjYuNSAwIDAwMS4zIDEuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxMiwgMTAwJSwgNTAlKSIgZD0iTTg5LjIyNCAxODMuMjM3YTY2LjUgNjYuNSAwIDAwMS4yNzkgMS4xODIiLz48cGF0aCBzdHJva2U9ImhzbCgxMywgMTAwJSwgNTAlKSIgZD0iTTg4LjM5IDE4Mi40MzFhNjYuNSA2Ni41IDAgMDAxLjI1NyAxLjIwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE0LCAxMDAlLCA1MCUpIiBkPSJNODcuNTY5IDE4MS42MWE2Ni41IDY2LjUgMCAwMDEuMjM2IDEuMjI2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTUsIDEwMCUsIDUwJSkiIGQ9Ik04Ni43NjMgMTgwLjc3NmE2Ni41IDY2LjUgMCAwMDEuMjE0IDEuMjQ3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTYsIDEwMCUsIDUwJSkiIGQ9Ik04NS45NzEgMTc5LjkyN2E2Ni41IDY2LjUgMCAwMDEuMTkzIDEuMjY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTcsIDEwMCUsIDUwJSkiIGQ9Ik04NS4xOTQgMTc5LjA2NGE2Ni41IDY2LjUgMCAwMDEuMTcxIDEuMjg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTgsIDEwMCUsIDUwJSkiIGQ9Ik04NC40MzMgMTc4LjE4OGE2Ni41IDY2LjUgMCAwMDEuMTQ4IDEuMzEiLz48cGF0aCBzdHJva2U9ImhzbCgxOSwgMTAwJSwgNTAlKSIgZD0iTTgzLjY4NyAxNzcuM2E2Ni41IDY2LjUgMCAwMDEuMTI1IDEuMzI4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjAsIDEwMCUsIDUwJSkiIGQ9Ik04Mi45NTcgMTc2LjM5N2E2Ni41IDY2LjUgMCAwMDEuMTAxIDEuMzQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjEsIDEwMCUsIDUwJSkiIGQ9Ik04Mi4yNDIgMTc1LjQ4M2E2Ni41IDY2LjUgMCAwMDEuMDc4IDEuMzY3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjIsIDEwMCUsIDUwJSkiIGQ9Ik04MS41NDQgMTc0LjU1NmE2Ni41IDY2LjUgMCAwMDEuMDUzIDEuMzg1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjMsIDEwMCUsIDUwJSkiIGQ9Ik04MC44NjEgMTczLjYxN2E2Ni41IDY2LjUgMCAwMDEuMDMgMS40MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyNCwgMTAwJSwgNTAlKSIgZD0iTTgwLjE5NiAxNzIuNjY2YTY2LjUgNjYuNSAwIDAwMS4wMDQgMS40MjIiLz48cGF0aCBzdHJva2U9ImhzbCgyNSwgMTAwJSwgNTAlKSIgZD0iTTc5LjU0NyAxNzEuNzA0YTY2LjUgNjYuNSAwIDAwLjk4IDEuNDM5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjYsIDEwMCUsIDUwJSkiIGQ9Ik03OC45MTQgMTcwLjczYTY2LjUgNjYuNSAwIDAwLjk1NSAxLjQ1NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3LCAxMDAlLCA1MCUpIiBkPSJNNzguMyAxNjkuNzQ2YTY2LjUgNjYuNSAwIDAwLjkyOCAxLjQ3MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4LCAxMDAlLCA1MCUpIiBkPSJNNzcuNzAyIDE2OC43NTFhNjYuNSA2Ni41IDAgMDAuOTAzIDEuNDg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjksIDEwMCUsIDUwJSkiIGQ9Ik03Ny4xMjEgMTY3Ljc0NmE2Ni41IDY2LjUgMCAwMC44NzcgMS41MDQiLz48cGF0aCBzdHJva2U9ImhzbCgzMCwgMTAwJSwgNTAlKSIgZD0iTTc2LjU1OSAxNjYuNzMxYTY2LjUgNjYuNSAwIDAwLjg1IDEuNTE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzEsIDEwMCUsIDUwJSkiIGQ9Ik03Ni4wMTQgMTY1LjcwNmE2Ni41IDY2LjUgMCAwMC44MjQgMS41MzQiLz48cGF0aCBzdHJva2U9ImhzbCgzMiwgMTAwJSwgNTAlKSIgZD0iTTc1LjQ4NyAxNjQuNjcyYTY2LjUgNjYuNSAwIDAwLjc5NyAxLjU0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMzLCAxMDAlLCA1MCUpIiBkPSJNNzQuOTc4IDE2My42MjlhNjYuNSA2Ni41IDAgMDAuNzcgMS41NjEiLz48cGF0aCBzdHJva2U9ImhzbCgzNCwgMTAwJSwgNTAlKSIgZD0iTTc0LjQ4OCAxNjIuNTc3YTY2LjUgNjYuNSAwIDAwLjc0MiAxLjU3NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDM1LCAxMDAlLCA1MCUpIiBkPSJNNzQuMDE2IDE2MS41MTdhNjYuNSA2Ni41IDAgMDAuNzE1IDEuNTg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzYsIDEwMCUsIDUwJSkiIGQ9Ik03My41NjIgMTYwLjQ0OGE2Ni41IDY2LjUgMCAwMC42ODcgMS42Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzcsIDEwMCUsIDUwJSkiIGQ9Ik03My4xMjcgMTU5LjM3MmE2Ni41IDY2LjUgMCAwMC42NiAxLjYxMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDM4LCAxMDAlLCA1MCUpIiBkPSJNNzIuNzExIDE1OC4yODlhNjYuNSA2Ni41IDAgMDAuNjMxIDEuNjIyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzksIDEwMCUsIDUwJSkiIGQ9Ik03Mi4zMTQgMTU3LjE5OGE2Ni41IDY2LjUgMCAwMC42MDMgMS42MzMiLz48cGF0aCBzdHJva2U9ImhzbCg0MCwgMTAwJSwgNTAlKSIgZD0iTTcxLjkzNiAxNTYuMWE2Ni41IDY2LjUgMCAwMC41NzQgMS42NDQiLz48cGF0aCBzdHJva2U9ImhzbCg0MSwgMTAwJSwgNTAlKSIgZD0iTTcxLjU3OCAxNTQuOTk3YTY2LjUgNjYuNSAwIDAwLjU0NSAxLjY1MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDQyLCAxMDAlLCA1MCUpIiBkPSJNNzEuMjM4IDE1My44ODdhNjYuNSA2Ni41IDAgMDAuNTE3IDEuNjYzIi8+PHBhdGggc3Ryb2tlPSJoc2woNDMsIDEwMCUsIDUwJSkiIGQ9Ik03MC45MTkgMTUyLjc3MWE2Ni41IDY2LjUgMCAwMC40ODcgMS42NzIiLz48cGF0aCBzdHJva2U9ImhzbCg0NCwgMTAwJSwgNTAlKSIgZD0iTTcwLjYxOCAxNTEuNjVhNjYuNSA2Ni41IDAgMDAuNDU4IDEuNjgiLz48cGF0aCBzdHJva2U9ImhzbCg0NSwgMTAwJSwgNTAlKSIgZD0iTTcwLjMzNyAxNTAuNTI0YTY2LjUgNjYuNSAwIDAwLjQyOSAxLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDQ2LCAxMDAlLCA1MCUpIiBkPSJNNzAuMDc2IDE0OS4zOTNhNjYuNSA2Ni41IDAgMDAuNCAxLjY5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDQ3LCAxMDAlLCA1MCUpIiBkPSJNNjkuODM1IDE0OC4yNThhNjYuNSA2Ni41IDAgMDAuMzcgMS43MDEiLz48cGF0aCBzdHJva2U9ImhzbCg0OCwgMTAwJSwgNTAlKSIgZD0iTTY5LjYxNCAxNDcuMTE5YTY2LjUgNjYuNSAwIDAwLjM0IDEuNzA3Ii8+PHBhdGggc3Ryb2tlPSJoc2woNDksIDEwMCUsIDUwJSkiIGQ9Ik02OS40MTIgMTQ1Ljk3NmE2Ni41IDY2LjUgMCAwMC4zMSAxLjcxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDUwLCAxMDAlLCA1MCUpIiBkPSJNNjkuMjMgMTQ0LjgzYTY2LjUgNjYuNSAwIDAwLjI4IDEuNzE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woNTEsIDEwMCUsIDUwJSkiIGQ9Ik02OS4wNjkgMTQzLjY4YTY2LjUgNjYuNSAwIDAwLjI1IDEuNzIzIi8+PHBhdGggc3Ryb2tlPSJoc2woNTIsIDEwMCUsIDUwJSkiIGQ9Ik02OC45MjcgMTQyLjUyOGE2Ni41IDY2LjUgMCAwMC4yMiAxLjcyNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDUzLCAxMDAlLCA1MCUpIiBkPSJNNjguODA2IDE0MS4zNzRhNjYuNSA2Ni41IDAgMDAuMTkgMS43MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDU0LCAxMDAlLCA1MCUpIiBkPSJNNjguNzA1IDE0MC4yMThhNjYuNSA2Ni41IDAgMDAuMTYgMS43MzMiLz48cGF0aCBzdHJva2U9ImhzbCg1NSwgMTAwJSwgNTAlKSIgZD0iTTY4LjYyNCAxMzkuMDZhNjYuNSA2Ni41IDAgMDAuMTMgMS43MzYiLz48cGF0aCBzdHJva2U9ImhzbCg1NiwgMTAwJSwgNTAlKSIgZD0iTTY4LjU2MyAxMzcuOWE2Ni41IDY2LjUgMCAwMC4wOTkgMS43MzkiLz48cGF0aCBzdHJva2U9ImhzbCg1NywgMTAwJSwgNTAlKSIgZD0iTTY4LjUyMyAxMzYuNzRhNjYuNSA2Ni41IDAgMDAuMDY4IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg1OCwgMTAwJSwgNTAlKSIgZD0iTTY4LjUwMyAxMzUuNThhNjYuNSA2Ni41IDAgMDAuMDM4IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg1OSwgMTAwJSwgNTAlKSIgZD0iTTY4LjUwMyAxMzQuNDJhNjYuNSA2Ni41IDAgMDAuMDA3IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg2MCwgMTAwJSwgNTAlKSIgZD0iTTY4LjUyMyAxMzMuMjZBNjYuNSA2Ni41IDAgMDA2OC41IDEzNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDYxLCAxMDAlLCA1MCUpIiBkPSJNNjguNTYzIDEzMi4xYTY2LjUgNjYuNSAwIDAwLS4wNTMgMS43NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDYyLCAxMDAlLCA1MCUpIiBkPSJNNjguNjI0IDEzMC45NGE2Ni41IDY2LjUgMCAwMC0uMDgzIDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg2MywgMTAwJSwgNTAlKSIgZD0iTTY4LjcwNSAxMjkuNzgyYTY2LjUgNjYuNSAwIDAwLS4xMTQgMS43MzgiLz48cGF0aCBzdHJva2U9ImhzbCg2NCwgMTAwJSwgNTAlKSIgZD0iTTY4LjgwNiAxMjguNjI2YTY2LjUgNjYuNSAwIDAwLS4xNDQgMS43MzUiLz48cGF0aCBzdHJva2U9ImhzbCg2NSwgMTAwJSwgNTAlKSIgZD0iTTY4LjkyNyAxMjcuNDcyYTY2LjUgNjYuNSAwIDAwLS4xNzQgMS43MzIiLz48cGF0aCBzdHJva2U9ImhzbCg2NiwgMTAwJSwgNTAlKSIgZD0iTTY5LjA2OSAxMjYuMzJhNjYuNSA2Ni41IDAgMDAtLjIwNSAxLjcyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDY3LCAxMDAlLCA1MCUpIiBkPSJNNjkuMjMgMTI1LjE3YTY2LjUgNjYuNSAwIDAwLS4yMzQgMS43MjYiLz48cGF0aCBzdHJva2U9ImhzbCg2OCwgMTAwJSwgNTAlKSIgZD0iTTY5LjQxMiAxMjQuMDI0YTY2LjUgNjYuNSAwIDAwLS4yNjUgMS43MjEiLz48cGF0aCBzdHJva2U9ImhzbCg2OSwgMTAwJSwgNTAlKSIgZD0iTTY5LjYxNCAxMjIuODgxYTY2LjUgNjYuNSAwIDAwLS4yOTUgMS43MTYiLz48cGF0aCBzdHJva2U9ImhzbCg3MCwgMTAwJSwgNTAlKSIgZD0iTTY5LjgzNSAxMjEuNzQyYTY2LjUgNjYuNSAwIDAwLS4zMjUgMS43MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDcxLCAxMDAlLCA1MCUpIiBkPSJNNzAuMDc2IDEyMC42MDdhNjYuNSA2Ni41IDAgMDAtLjM1NCAxLjcwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDcyLCAxMDAlLCA1MCUpIiBkPSJNNzAuMzM3IDExOS40NzZhNjYuNSA2Ni41IDAgMDAtLjM4NCAxLjY5OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDczLCAxMDAlLCA1MCUpIiBkPSJNNzAuNjE4IDExOC4zNWE2Ni41IDY2LjUgMCAwMC0uNDE0IDEuNjkiLz48cGF0aCBzdHJva2U9ImhzbCg3NCwgMTAwJSwgNTAlKSIgZD0iTTcwLjkxOSAxMTcuMjI5YTY2LjUgNjYuNSAwIDAwLS40NDQgMS42ODMiLz48cGF0aCBzdHJva2U9ImhzbCg3NSwgMTAwJSwgNTAlKSIgZD0iTTcxLjIzOCAxMTYuMTEzYTY2LjUgNjYuNSAwIDAwLS40NzIgMS42NzYiLz48cGF0aCBzdHJva2U9ImhzbCg3NiwgMTAwJSwgNTAlKSIgZD0iTTcxLjU3OCAxMTUuMDAzYTY2LjUgNjYuNSAwIDAwLS41MDIgMS42NjciLz48cGF0aCBzdHJva2U9ImhzbCg3NywgMTAwJSwgNTAlKSIgZD0iTTcxLjkzNiAxMTMuOWE2Ni41IDY2LjUgMCAwMC0uNTMgMS42NTciLz48cGF0aCBzdHJva2U9ImhzbCg3OCwgMTAwJSwgNTAlKSIgZD0iTTcyLjMxNCAxMTIuODAyYTY2LjUgNjYuNSAwIDAwLS41NiAxLjY0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDc5LCAxMDAlLCA1MCUpIiBkPSJNNzIuNzExIDExMS43MTFhNjYuNSA2Ni41IDAgMDAtLjU4OCAxLjYzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDgwLCAxMDAlLCA1MCUpIiBkPSJNNzMuMTI3IDExMC42MjhhNjYuNSA2Ni41IDAgMDAtLjYxNyAxLjYyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDgxLCAxMDAlLCA1MCUpIiBkPSJNNzMuNTYyIDEwOS41NTJhNjYuNSA2Ni41IDAgMDAtLjY0NSAxLjYxNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDgyLCAxMDAlLCA1MCUpIiBkPSJNNzQuMDE2IDEwOC40ODNhNjYuNSA2Ni41IDAgMDAtLjY3NCAxLjYwNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDgzLCAxMDAlLCA1MCUpIiBkPSJNNzQuNDg4IDEwNy40MjNhNjYuNSA2Ni41IDAgMDAtLjcwMiAxLjU5MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDg0LCAxMDAlLCA1MCUpIiBkPSJNNzQuOTc4IDEwNi4zNzFhNjYuNSA2Ni41IDAgMDAtLjcyOSAxLjU4MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDg1LCAxMDAlLCA1MCUpIiBkPSJNNzUuNDg3IDEwNS4zMjhhNjYuNSA2Ni41IDAgMDAtLjc1NiAxLjU2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDg2LCAxMDAlLCA1MCUpIiBkPSJNNzYuMDE0IDEwNC4yOTRhNjYuNSA2Ni41IDAgMDAtLjc4NCAxLjU1NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDg3LCAxMDAlLCA1MCUpIiBkPSJNNzYuNTU5IDEwMy4yNjlhNjYuNSA2Ni41IDAgMDAtLjgxIDEuNTQiLz48cGF0aCBzdHJva2U9ImhzbCg4OCwgMTAwJSwgNTAlKSIgZD0iTTc3LjEyMSAxMDIuMjU0YTY2LjUgNjYuNSAwIDAwLS44MzcgMS41MjYiLz48cGF0aCBzdHJva2U9ImhzbCg4OSwgMTAwJSwgNTAlKSIgZD0iTTc3LjcwMiAxMDEuMjQ5YTY2LjUgNjYuNSAwIDAwLS44NjQgMS41MTEiLz48cGF0aCBzdHJva2U9ImhzbCg5MCwgMTAwJSwgNTAlKSIgZD0iTTc4LjMgMTAwLjI1NGE2Ni41IDY2LjUgMCAwMC0uODkgMS40OTYiLz48cGF0aCBzdHJva2U9ImhzbCg5MSwgMTAwJSwgNTAlKSIgZD0iTTc4LjkxNCA5OS4yN2E2Ni41IDY2LjUgMCAwMC0uOTE2IDEuNDgiLz48cGF0aCBzdHJva2U9ImhzbCg5MiwgMTAwJSwgNTAlKSIgZD0iTTc5LjU0NyA5OC4yOTZhNjYuNSA2Ni41IDAgMDAtLjk0MiAxLjQ2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDkzLCAxMDAlLCA1MCUpIiBkPSJNODAuMTk2IDk3LjMzNGE2Ni41IDY2LjUgMCAwMC0uOTY4IDEuNDQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woOTQsIDEwMCUsIDUwJSkiIGQ9Ik04MC44NjEgOTYuMzgzYTY2LjUgNjYuNSAwIDAwLS45OTIgMS40MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDk1LCAxMDAlLCA1MCUpIiBkPSJNODEuNTQ0IDk1LjQ0NGE2Ni41IDY2LjUgMCAwMC0xLjAxOCAxLjQxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDk2LCAxMDAlLCA1MCUpIiBkPSJNODIuMjQyIDk0LjUxN2E2Ni41IDY2LjUgMCAwMC0xLjA0MiAxLjM5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDk3LCAxMDAlLCA1MCUpIiBkPSJNODIuOTU3IDkzLjYwM2E2Ni41IDY2LjUgMCAwMC0xLjA2NiAxLjM3NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDk4LCAxMDAlLCA1MCUpIiBkPSJNODMuNjg3IDkyLjdhNjYuNSA2Ni41IDAgMDAtMS4wOSAxLjM1OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDk5LCAxMDAlLCA1MCUpIiBkPSJNODQuNDMzIDkxLjgxMmE2Ni41IDY2LjUgMCAwMC0xLjExMyAxLjMzOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwMCwgMTAwJSwgNTAlKSIgZD0iTTg1LjE5NCA5MC45MzZhNjYuNSA2Ni41IDAgMDAtMS4xMzYgMS4zMTkiLz48cGF0aCBzdHJva2U9ImhzbCgxMDEsIDEwMCUsIDUwJSkiIGQ9Ik04NS45NzEgOTAuMDczYTY2LjUgNjYuNSAwIDAwLTEuMTYgMS4zIi8+PHBhdGggc3Ryb2tlPSJoc2woMTAyLCAxMDAlLCA1MCUpIiBkPSJNODYuNzYzIDg5LjIyNGE2Ni41IDY2LjUgMCAwMC0xLjE4MiAxLjI3OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwMywgMTAwJSwgNTAlKSIgZD0iTTg3LjU2OSA4OC4zOWE2Ni41IDY2LjUgMCAwMC0xLjIwNCAxLjI1NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwNCwgMTAwJSwgNTAlKSIgZD0iTTg4LjM5IDg3LjU2OWE2Ni41IDY2LjUgMCAwMC0xLjIyNiAxLjIzNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwNSwgMTAwJSwgNTAlKSIgZD0iTTg5LjIyNCA4Ni43NjNhNjYuNSA2Ni41IDAgMDAtMS4yNDcgMS4yMTQiLz48cGF0aCBzdHJva2U9ImhzbCgxMDYsIDEwMCUsIDUwJSkiIGQ9Ik05MC4wNzMgODUuOTcxYTY2LjUgNjYuNSAwIDAwLTEuMjY4IDEuMTkzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTA3LCAxMDAlLCA1MCUpIiBkPSJNOTAuOTM2IDg1LjE5NGE2Ni41IDY2LjUgMCAwMC0xLjI4OSAxLjE3MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwOCwgMTAwJSwgNTAlKSIgZD0iTTkxLjgxMiA4NC40MzNhNjYuNSA2Ni41IDAgMDAtMS4zMSAxLjE0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwOSwgMTAwJSwgNTAlKSIgZD0iTTkyLjcgODMuNjg3YTY2LjUgNjYuNSAwIDAwLTEuMzI4IDEuMTI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTEwLCAxMDAlLCA1MCUpIiBkPSJNOTMuNjAzIDgyLjk1N2E2Ni41IDY2LjUgMCAwMC0xLjM0OCAxLjEwMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDExMSwgMTAwJSwgNTAlKSIgZD0iTTk0LjUxNyA4Mi4yNDJhNjYuNSA2Ni41IDAgMDAtMS4zNjcgMS4wNzgiLz48cGF0aCBzdHJva2U9ImhzbCgxMTIsIDEwMCUsIDUwJSkiIGQ9Ik05NS40NDQgODEuNTQ0YTY2LjUgNjYuNSAwIDAwLTEuMzg1IDEuMDUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTEzLCAxMDAlLCA1MCUpIiBkPSJNOTYuMzgzIDgwLjg2MWE2Ni41IDY2LjUgMCAwMC0xLjQwNCAxLjAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTE0LCAxMDAlLCA1MCUpIiBkPSJNOTcuMzM0IDgwLjE5NmE2Ni41IDY2LjUgMCAwMC0xLjQyMiAxLjAwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDExNSwgMTAwJSwgNTAlKSIgZD0iTTk4LjI5NiA3OS41NDdhNjYuNSA2Ni41IDAgMDAtMS40MzkuOTgiLz48cGF0aCBzdHJva2U9ImhzbCgxMTYsIDEwMCUsIDUwJSkiIGQ9Ik05OS4yNyA3OC45MTRhNjYuNSA2Ni41IDAgMDAtMS40NTYuOTU1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTE3LCAxMDAlLCA1MCUpIiBkPSJNMTAwLjI1NCA3OC4zYTY2LjUgNjYuNSAwIDAwLTEuNDcyLjkyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDExOCwgMTAwJSwgNTAlKSIgZD0iTTEwMS4yNDkgNzcuNzAyYTY2LjUgNjYuNSAwIDAwLTEuNDg5LjkwMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDExOSwgMTAwJSwgNTAlKSIgZD0iTTEwMi4yNTQgNzcuMTIxYTY2LjUgNjYuNSAwIDAwLTEuNTA0Ljg3NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEyMCwgMTAwJSwgNTAlKSIgZD0iTTEwMy4yNjkgNzYuNTU5YTY2LjUgNjYuNSAwIDAwLTEuNTE5Ljg1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIxLCAxMDAlLCA1MCUpIiBkPSJNMTA0LjI5NCA3Ni4wMTRhNjYuNSA2Ni41IDAgMDAtMS41MzQuODI0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIyLCAxMDAlLCA1MCUpIiBkPSJNMTA1LjMyOCA3NS40ODdhNjYuNSA2Ni41IDAgMDAtMS41NDguNzk3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIzLCAxMDAlLCA1MCUpIiBkPSJNMTA2LjM3MSA3NC45NzhhNjYuNSA2Ni41IDAgMDAtMS41NjEuNzciLz48cGF0aCBzdHJva2U9ImhzbCgxMjQsIDEwMCUsIDUwJSkiIGQ9Ik0xMDcuNDIzIDc0LjQ4OGE2Ni41IDY2LjUgMCAwMC0xLjU3NS43NDIiLz48cGF0aCBzdHJva2U9ImhzbCgxMjUsIDEwMCUsIDUwJSkiIGQ9Ik0xMDguNDgzIDc0LjAxNmE2Ni41IDY2LjUgMCAwMC0xLjU4Ny43MTUiLz48cGF0aCBzdHJva2U9ImhzbCgxMjYsIDEwMCUsIDUwJSkiIGQ9Ik0xMDkuNTUyIDczLjU2MmE2Ni41IDY2LjUgMCAwMC0xLjYuNjg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTI3LCAxMDAlLCA1MCUpIiBkPSJNMTEwLjYyOCA3My4xMjdhNjYuNSA2Ni41IDAgMDAtMS42MTIuNjYiLz48cGF0aCBzdHJva2U9ImhzbCgxMjgsIDEwMCUsIDUwJSkiIGQ9Ik0xMTEuNzExIDcyLjcxMWE2Ni41IDY2LjUgMCAwMC0xLjYyMi42MzEiLz48cGF0aCBzdHJva2U9ImhzbCgxMjksIDEwMCUsIDUwJSkiIGQ9Ik0xMTIuODAyIDcyLjMxNGE2Ni41IDY2LjUgMCAwMC0xLjYzMy42MDMiLz48cGF0aCBzdHJva2U9ImhzbCgxMzAsIDEwMCUsIDUwJSkiIGQ9Ik0xMTMuOSA3MS45MzZhNjYuNSA2Ni41IDAgMDAtMS42NDQuNTc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMxLCAxMDAlLCA1MCUpIiBkPSJNMTE1LjAwMyA3MS41NzhhNjYuNSA2Ni41IDAgMDAtMS42NTMuNTQ1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMyLCAxMDAlLCA1MCUpIiBkPSJNMTE2LjExMyA3MS4yMzhhNjYuNSA2Ni41IDAgMDAtMS42NjMuNTE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMzLCAxMDAlLCA1MCUpIiBkPSJNMTE3LjIyOSA3MC45MTlhNjYuNSA2Ni41IDAgMDAtMS42NzIuNDg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTM0LCAxMDAlLCA1MCUpIiBkPSJNMTE4LjM1IDcwLjYxOGE2Ni41IDY2LjUgMCAwMC0xLjY4LjQ1OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzNSwgMTAwJSwgNTAlKSIgZD0iTTExOS40NzYgNzAuMzM3YTY2LjUgNjYuNSAwIDAwLTEuNjg3LjQyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzNiwgMTAwJSwgNTAlKSIgZD0iTTEyMC42MDcgNzAuMDc2YTY2LjUgNjYuNSAwIDAwLTEuNjk1LjQiLz48cGF0aCBzdHJva2U9ImhzbCgxMzcsIDEwMCUsIDUwJSkiIGQ9Ik0xMjEuNzQyIDY5LjgzNWE2Ni41IDY2LjUgMCAwMC0xLjcwMS4zNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzOCwgMTAwJSwgNTAlKSIgZD0iTTEyMi44ODEgNjkuNjE0YTY2LjUgNjYuNSAwIDAwLTEuNzA3LjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTM5LCAxMDAlLCA1MCUpIiBkPSJNMTI0LjAyNCA2OS40MTJhNjYuNSA2Ni41IDAgMDAtMS43MTMuMzEiLz48cGF0aCBzdHJva2U9ImhzbCgxNDAsIDEwMCUsIDUwJSkiIGQ9Ik0xMjUuMTcgNjkuMjNhNjYuNSA2Ni41IDAgMDAtMS43MTguMjgiLz48cGF0aCBzdHJva2U9ImhzbCgxNDEsIDEwMCUsIDUwJSkiIGQ9Ik0xMjYuMzIgNjkuMDY5YTY2LjUgNjYuNSAwIDAwLTEuNzIzLjI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQyLCAxMDAlLCA1MCUpIiBkPSJNMTI3LjQ3MiA2OC45MjdhNjYuNSA2Ni41IDAgMDAtMS43MjcuMjIiLz48cGF0aCBzdHJva2U9ImhzbCgxNDMsIDEwMCUsIDUwJSkiIGQ9Ik0xMjguNjI2IDY4LjgwNmE2Ni41IDY2LjUgMCAwMC0xLjczLjE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQ0LCAxMDAlLCA1MCUpIiBkPSJNMTI5Ljc4MiA2OC43MDVhNjYuNSA2Ni41IDAgMDAtMS43MzMuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxNDUsIDEwMCUsIDUwJSkiIGQ9Ik0xMzAuOTQgNjguNjI0YTY2LjUgNjYuNSAwIDAwLTEuNzM2LjEzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTQ2LCAxMDAlLCA1MCUpIiBkPSJNMTMyLjEgNjguNTYzYTY2LjUgNjYuNSAwIDAwLTEuNzM5LjA5OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE0NywgMTAwJSwgNTAlKSIgZD0iTTEzMy4yNiA2OC41MjNhNjYuNSA2Ni41IDAgMDAtMS43NC4wNjgiLz48cGF0aCBzdHJva2U9ImhzbCgxNDgsIDEwMCUsIDUwJSkiIGQ9Ik0xMzQuNDIgNjguNTAzYTY2LjUgNjYuNSAwIDAwLTEuNzQuMDM4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQ5LCAxMDAlLCA1MCUpIiBkPSJNMTM1LjU4IDY4LjUwM2E2Ni41IDY2LjUgMCAwMC0xLjc0LjAwNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MCwgMTAwJSwgNTAlKSIgZD0iTTEzNi43NCA2OC41MjNBNjYuNSA2Ni41IDAgMDAxMzUgNjguNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MSwgMTAwJSwgNTAlKSIgZD0iTTEzNy45IDY4LjU2M2E2Ni41IDY2LjUgMCAwMC0xLjc0LS4wNTMiLz48cGF0aCBzdHJva2U9ImhzbCgxNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xMzkuMDYgNjguNjI0YTY2LjUgNjYuNSAwIDAwLTEuNzQtLjA4MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MywgMTAwJSwgNTAlKSIgZD0iTTE0MC4yMTggNjguNzA1YTY2LjUgNjYuNSAwIDAwLTEuNzM4LS4xMTQiLz48cGF0aCBzdHJva2U9ImhzbCgxNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xNDEuMzc0IDY4LjgwNmE2Ni41IDY2LjUgMCAwMC0xLjczNS0uMTQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTU1LCAxMDAlLCA1MCUpIiBkPSJNMTQyLjUyOCA2OC45MjdhNjYuNSA2Ni41IDAgMDAtMS43MzItLjE3NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1NiwgMTAwJSwgNTAlKSIgZD0iTTE0My42OCA2OS4wNjlhNjYuNSA2Ni41IDAgMDAtMS43MjktLjIwNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1NywgMTAwJSwgNTAlKSIgZD0iTTE0NC44MyA2OS4yM2E2Ni41IDY2LjUgMCAwMC0xLjcyNi0uMjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTU4LCAxMDAlLCA1MCUpIiBkPSJNMTQ1Ljk3NiA2OS40MTJhNjYuNSA2Ni41IDAgMDAtMS43MjEtLjI2NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1OSwgMTAwJSwgNTAlKSIgZD0iTTE0Ny4xMTkgNjkuNjE0YTY2LjUgNjYuNSAwIDAwLTEuNzE2LS4yOTUiLz48cGF0aCBzdHJva2U9ImhzbCgxNjAsIDEwMCUsIDUwJSkiIGQ9Ik0xNDguMjU4IDY5LjgzNWE2Ni41IDY2LjUgMCAwMC0xLjcxLS4zMjUiLz48cGF0aCBzdHJva2U9ImhzbCgxNjEsIDEwMCUsIDUwJSkiIGQ9Ik0xNDkuMzkzIDcwLjA3NmE2Ni41IDY2LjUgMCAwMC0xLjcwNC0uMzU0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTYyLCAxMDAlLCA1MCUpIiBkPSJNMTUwLjUyNCA3MC4zMzdhNjYuNSA2Ni41IDAgMDAtMS42OTgtLjM4NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2MywgMTAwJSwgNTAlKSIgZD0iTTE1MS42NSA3MC42MThhNjYuNSA2Ni41IDAgMDAtMS42OS0uNDE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTY0LCAxMDAlLCA1MCUpIiBkPSJNMTUyLjc3MSA3MC45MTlhNjYuNSA2Ni41IDAgMDAtMS42ODMtLjQ0NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2NSwgMTAwJSwgNTAlKSIgZD0iTTE1My44ODcgNzEuMjM4YTY2LjUgNjYuNSAwIDAwLTEuNjc2LS40NzIiLz48cGF0aCBzdHJva2U9ImhzbCgxNjYsIDEwMCUsIDUwJSkiIGQ9Ik0xNTQuOTk3IDcxLjU3OGE2Ni41IDY2LjUgMCAwMC0xLjY2Ny0uNTAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTY3LCAxMDAlLCA1MCUpIiBkPSJNMTU2LjEgNzEuOTM2YTY2LjUgNjYuNSAwIDAwLTEuNjU3LS41MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2OCwgMTAwJSwgNTAlKSIgZD0iTTE1Ny4xOTggNzIuMzE0YTY2LjUgNjYuNSAwIDAwLTEuNjQ4LS41NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2OSwgMTAwJSwgNTAlKSIgZD0iTTE1OC4yODkgNzIuNzExYTY2LjUgNjYuNSAwIDAwLTEuNjM5LS41ODgiLz48cGF0aCBzdHJva2U9ImhzbCgxNzAsIDEwMCUsIDUwJSkiIGQ9Ik0xNTkuMzcyIDczLjEyN2E2Ni41IDY2LjUgMCAwMC0xLjYyOC0uNjE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTcxLCAxMDAlLCA1MCUpIiBkPSJNMTYwLjQ0OCA3My41NjJhNjYuNSA2Ni41IDAgMDAtMS42MTctLjY0NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE3MiwgMTAwJSwgNTAlKSIgZD0iTTE2MS41MTcgNzQuMDE2YTY2LjUgNjYuNSAwIDAwLTEuNjA2LS42NzQiLz48cGF0aCBzdHJva2U9ImhzbCgxNzMsIDEwMCUsIDUwJSkiIGQ9Ik0xNjIuNTc3IDc0LjQ4OGE2Ni41IDY2LjUgMCAwMC0xLjU5My0uNzAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTc0LCAxMDAlLCA1MCUpIiBkPSJNMTYzLjYyOSA3NC45NzhhNjYuNSA2Ni41IDAgMDAtMS41ODEtLjcyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE3NSwgMTAwJSwgNTAlKSIgZD0iTTE2NC42NzIgNzUuNDg3YTY2LjUgNjYuNSAwIDAwLTEuNTY4LS43NTYiLz48cGF0aCBzdHJva2U9ImhzbCgxNzYsIDEwMCUsIDUwJSkiIGQ9Ik0xNjUuNzA2IDc2LjAxNGE2Ni41IDY2LjUgMCAwMC0xLjU1NC0uNzg0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTc3LCAxMDAlLCA1MCUpIiBkPSJNMTY2LjczMSA3Ni41NTlhNjYuNSA2Ni41IDAgMDAtMS41NC0uODEiLz48cGF0aCBzdHJva2U9ImhzbCgxNzgsIDEwMCUsIDUwJSkiIGQ9Ik0xNjcuNzQ2IDc3LjEyMWE2Ni41IDY2LjUgMCAwMC0xLjUyNi0uODM3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTc5LCAxMDAlLCA1MCUpIiBkPSJNMTY4Ljc1MSA3Ny43MDJhNjYuNSA2Ni41IDAgMDAtMS41MTEtLjg2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4MCwgMTAwJSwgNTAlKSIgZD0iTTE2OS43NDYgNzguM2E2Ni41IDY2LjUgMCAwMC0xLjQ5Ni0uODkiLz48cGF0aCBzdHJva2U9ImhzbCgxODEsIDEwMCUsIDUwJSkiIGQ9Ik0xNzAuNzMgNzguOTE0YTY2LjUgNjYuNSAwIDAwLTEuNDgtLjkxNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4MiwgMTAwJSwgNTAlKSIgZD0iTTE3MS43MDQgNzkuNTQ3YTY2LjUgNjYuNSAwIDAwLTEuNDY0LS45NDIiLz48cGF0aCBzdHJva2U9ImhzbCgxODMsIDEwMCUsIDUwJSkiIGQ9Ik0xNzIuNjY2IDgwLjE5NmE2Ni41IDY2LjUgMCAwMC0xLjQ0OC0uOTY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTg0LCAxMDAlLCA1MCUpIiBkPSJNMTczLjYxNyA4MC44NjFhNjYuNSA2Ni41IDAgMDAtMS40My0uOTkyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTg1LCAxMDAlLCA1MCUpIiBkPSJNMTc0LjU1NiA4MS41NDRhNjYuNSA2Ni41IDAgMDAtMS40MTMtMS4wMTgiLz48cGF0aCBzdHJva2U9ImhzbCgxODYsIDEwMCUsIDUwJSkiIGQ9Ik0xNzUuNDgzIDgyLjI0MmE2Ni41IDY2LjUgMCAwMC0xLjM5NS0xLjA0MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4NywgMTAwJSwgNTAlKSIgZD0iTTE3Ni4zOTcgODIuOTU3YTY2LjUgNjYuNSAwIDAwLTEuMzc2LTEuMDY2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTg4LCAxMDAlLCA1MCUpIiBkPSJNMTc3LjMgODMuNjg3YTY2LjUgNjYuNSAwIDAwLTEuMzU5LTEuMDkiLz48cGF0aCBzdHJva2U9ImhzbCgxODksIDEwMCUsIDUwJSkiIGQ9Ik0xNzguMTg4IDg0LjQzM2E2Ni41IDY2LjUgMCAwMC0xLjMzOC0xLjExMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5MCwgMTAwJSwgNTAlKSIgZD0iTTE3OS4wNjQgODUuMTk0YTY2LjUgNjYuNSAwIDAwLTEuMzE5LTEuMTM2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTkxLCAxMDAlLCA1MCUpIiBkPSJNMTc5LjkyNyA4NS45NzFhNjYuNSA2Ni41IDAgMDAtMS4zLTEuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxOTIsIDEwMCUsIDUwJSkiIGQ9Ik0xODAuNzc2IDg2Ljc2M2E2Ni41IDY2LjUgMCAwMC0xLjI3OS0xLjE4MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5MywgMTAwJSwgNTAlKSIgZD0iTTE4MS42MSA4Ny41NjlhNjYuNSA2Ni41IDAgMDAtMS4yNTctMS4yMDQiLz48cGF0aCBzdHJva2U9ImhzbCgxOTQsIDEwMCUsIDUwJSkiIGQ9Ik0xODIuNDMxIDg4LjM5YTY2LjUgNjYuNSAwIDAwLTEuMjM2LTEuMjI2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTk1LCAxMDAlLCA1MCUpIiBkPSJNMTgzLjIzNyA4OS4yMjRhNjYuNSA2Ni41IDAgMDAtMS4yMTQtMS4yNDciLz48cGF0aCBzdHJva2U9ImhzbCgxOTYsIDEwMCUsIDUwJSkiIGQ9Ik0xODQuMDI5IDkwLjA3M2E2Ni41IDY2LjUgMCAwMC0xLjE5My0xLjI2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5NywgMTAwJSwgNTAlKSIgZD0iTTE4NC44MDYgOTAuOTM2YTY2LjUgNjYuNSAwIDAwLTEuMTcxLTEuMjg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTk4LCAxMDAlLCA1MCUpIiBkPSJNMTg1LjU2NyA5MS44MTJhNjYuNSA2Ni41IDAgMDAtMS4xNDgtMS4zMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5OSwgMTAwJSwgNTAlKSIgZD0iTTE4Ni4zMTMgOTIuN2E2Ni41IDY2LjUgMCAwMC0xLjEyNS0xLjMyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwMCwgMTAwJSwgNTAlKSIgZD0iTTE4Ny4wNDMgOTMuNjAzYTY2LjUgNjYuNSAwIDAwLTEuMTAxLTEuMzQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjAxLCAxMDAlLCA1MCUpIiBkPSJNMTg3Ljc1OCA5NC41MTdhNjYuNSA2Ni41IDAgMDAtMS4wNzgtMS4zNjciLz48cGF0aCBzdHJva2U9ImhzbCgyMDIsIDEwMCUsIDUwJSkiIGQ9Ik0xODguNDU2IDk1LjQ0NGE2Ni41IDY2LjUgMCAwMC0xLjA1My0xLjM4NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwMywgMTAwJSwgNTAlKSIgZD0iTTE4OS4xMzkgOTYuMzgzYTY2LjUgNjYuNSAwIDAwLTEuMDMtMS40MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMDQsIDEwMCUsIDUwJSkiIGQ9Ik0xODkuODA0IDk3LjMzNGE2Ni41IDY2LjUgMCAwMC0xLjAwNC0xLjQyMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNSwgMTAwJSwgNTAlKSIgZD0iTTE5MC40NTMgOTguMjk2YTY2LjUgNjYuNSAwIDAwLS45OC0xLjQzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNiwgMTAwJSwgNTAlKSIgZD0iTTE5MS4wODYgOTkuMjdhNjYuNSA2Ni41IDAgMDAtLjk1NS0xLjQ1NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNywgMTAwJSwgNTAlKSIgZD0iTTE5MS43IDEwMC4yNTRhNjYuNSA2Ni41IDAgMDAtLjkyOC0xLjQ3MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwOCwgMTAwJSwgNTAlKSIgZD0iTTE5Mi4yOTggMTAxLjI0OWE2Ni41IDY2LjUgMCAwMC0uOTAzLTEuNDg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjA5LCAxMDAlLCA1MCUpIiBkPSJNMTkyLjg3OSAxMDIuMjU0YTY2LjUgNjYuNSAwIDAwLS44NzctMS41MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMTAsIDEwMCUsIDUwJSkiIGQ9Ik0xOTMuNDQxIDEwMy4yNjlhNjYuNSA2Ni41IDAgMDAtLjg1LTEuNTE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjExLCAxMDAlLCA1MCUpIiBkPSJNMTkzLjk4NiAxMDQuMjk0YTY2LjUgNjYuNSAwIDAwLS44MjQtMS41MzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMTIsIDEwMCUsIDUwJSkiIGQ9Ik0xOTQuNTEzIDEwNS4zMjhhNjYuNSA2Ni41IDAgMDAtLjc5Ny0xLjU0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxMywgMTAwJSwgNTAlKSIgZD0iTTE5NS4wMjIgMTA2LjM3MWE2Ni41IDY2LjUgMCAwMC0uNzctMS41NjEiLz48cGF0aCBzdHJva2U9ImhzbCgyMTQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTUuNTEyIDEwNy40MjNhNjYuNSA2Ni41IDAgMDAtLjc0Mi0xLjU3NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxNSwgMTAwJSwgNTAlKSIgZD0iTTE5NS45ODQgMTA4LjQ4M2E2Ni41IDY2LjUgMCAwMC0uNzE1LTEuNTg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjE2LCAxMDAlLCA1MCUpIiBkPSJNMTk2LjQzOCAxMDkuNTUyYTY2LjUgNjYuNSAwIDAwLS42ODctMS42Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjE3LCAxMDAlLCA1MCUpIiBkPSJNMTk2Ljg3MyAxMTAuNjI4YTY2LjUgNjYuNSAwIDAwLS42Ni0xLjYxMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxOCwgMTAwJSwgNTAlKSIgZD0iTTE5Ny4yODkgMTExLjcxMWE2Ni41IDY2LjUgMCAwMC0uNjMxLTEuNjIyIi8+PHBhdGggc3Ryb2tlPSJoc2woMjE5LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjY4NiAxMTIuODAyYTY2LjUgNjYuNSAwIDAwLS42MDMtMS42MzMiLz48cGF0aCBzdHJva2U9ImhzbCgyMjAsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguMDY0IDExMy45YTY2LjUgNjYuNSAwIDAwLS41NzQtMS42NDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMjEsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguNDIyIDExNS4wMDNhNjYuNSA2Ni41IDAgMDAtLjU0NS0xLjY1MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyMiwgMTAwJSwgNTAlKSIgZD0iTTE5OC43NjIgMTE2LjExM2E2Ni41IDY2LjUgMCAwMC0uNTE3LTEuNjYzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjIzLCAxMDAlLCA1MCUpIiBkPSJNMTk5LjA4MSAxMTcuMjI5YTY2LjUgNjYuNSAwIDAwLS40ODctMS42NzIiLz48cGF0aCBzdHJva2U9ImhzbCgyMjQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuMzgyIDExOC4zNWE2Ni41IDY2LjUgMCAwMC0uNDU4LTEuNjgiLz48cGF0aCBzdHJva2U9ImhzbCgyMjUsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuNjYzIDExOS40NzZhNjYuNSA2Ni41IDAgMDAtLjQyOS0xLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyNiwgMTAwJSwgNTAlKSIgZD0iTTE5OS45MjQgMTIwLjYwN2E2Ni41IDY2LjUgMCAwMC0uNC0xLjY5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyNywgMTAwJSwgNTAlKSIgZD0iTTIwMC4xNjUgMTIxLjc0MmE2Ni41IDY2LjUgMCAwMC0uMzctMS43MDEiLz48cGF0aCBzdHJva2U9ImhzbCgyMjgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDAuMzg2IDEyMi44ODFhNjYuNSA2Ni41IDAgMDAtLjM0LTEuNzA3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjI5LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjU4OCAxMjQuMDI0YTY2LjUgNjYuNSAwIDAwLS4zMS0xLjcxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzMCwgMTAwJSwgNTAlKSIgZD0iTTIwMC43NyAxMjUuMTdhNjYuNSA2Ni41IDAgMDAtLjI4LTEuNzE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjMxLCAxMDAlLCA1MCUpIiBkPSJNMjAwLjkzMSAxMjYuMzJhNjYuNSA2Ni41IDAgMDAtLjI1LTEuNzIzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjMyLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjA3MyAxMjcuNDcyYTY2LjUgNjYuNSAwIDAwLS4yMi0xLjcyNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzMywgMTAwJSwgNTAlKSIgZD0iTTIwMS4xOTQgMTI4LjYyNmE2Ni41IDY2LjUgMCAwMC0uMTktMS43MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzNCwgMTAwJSwgNTAlKSIgZD0iTTIwMS4yOTUgMTI5Ljc4MmE2Ni41IDY2LjUgMCAwMC0uMTYtMS43MzMiLz48cGF0aCBzdHJva2U9ImhzbCgyMzUsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuMzc2IDEzMC45NGE2Ni41IDY2LjUgMCAwMC0uMTMtMS43MzYiLz48cGF0aCBzdHJva2U9ImhzbCgyMzYsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDM3IDEzMi4xYTY2LjUgNjYuNSAwIDAwLS4wOTktMS43MzkiLz48cGF0aCBzdHJva2U9ImhzbCgyMzcsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDc3IDEzMy4yNmE2Ni41IDY2LjUgMCAwMC0uMDY4LTEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMzgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDk3IDEzNC40MmE2Ni41IDY2LjUgMCAwMC0uMDM4LTEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMzksIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDk3IDEzNS41OGE2Ni41IDY2LjUgMCAwMC0uMDA3LTEuNzQiLz48L2c+PGNpcmNsZSBjeD0iMTM1IiBjeT0iMTM1IiByPSIxMzMiIGZpbGw9InVybCgjYSkiIGNsYXNzPSJJcm9XaGVlbFNhdHVyYXRpb24iLz48Y2lyY2xlIGN4PSIxMzUiIGN5PSIxMzUiIHI9IjEzMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIGNsYXNzPSJJcm9XaGVlbEJvcmRlciIvPjwvc3ZnPg=='; + + this.width = this.offsetWidth; + this.height = this.offsetHeight; + }, + mousedown: function (event) { + var cvs = this, + ctx = this.getContext('2d'); + + function update(x, y) { + var cursor = cvs.nextSibling.nextSibling; + + cursor.style.left = x + cvs.offsetLeft + 'px'; + cursor.style.top = y + cvs.offsetTop + 'px'; + } + + function mousemove(event) { + update(event.layerX, event.layerY); + } + + function mouseup(event) { + cvs.parentNode.data = { + rgb: ctx.getImageData(event.layerX, event.layerY, 1, 1).data, + cursor: [event.layerX, event.layerY] + }; + + this.removeEventListener('mousemove', mousemove); + this.removeEventListener('mouseup', mouseup); + } + + this.addEventListener('mousemove', mousemove); + this.addEventListener('mouseup', mouseup); + + update(event.layerX, event.layerY); + + cvs.nextSibling.nextSibling.hidden = false; + } + } + }, + shadow: { + component: 'div', + class: 'satus-color-picker__dim' + }, + cursor: { + component: 'div', + class: 'satus-color-picker__cursor', + attr: { + hidden: true + }, + on: { + render: function () { + var data = this.parentNode.data; + + if (data.cursor) { + this.style.left = data.cursor[0] + 'px'; + this.style.top = data.cursor[1] + 'px'; + + this.hidden = false; + } + } + } + }, + slider: { + component: 'slider', + class: 'satus-color-picker__slider', + step: .01, + on: { + render: function () { + var data = this.parentNode.data; + + function rgbToHsv(r, g, b) { + r /= 255, g /= 255, b /= 255; + + var max = Math.max(r, g, b), + min = Math.min(r, g, b); + var h, s, v = max; + + var d = max - min; + s = max == 0 ? 0 : d / max; + + if (max == min) { + h = 0; // achromatic + } else { + switch (max) { + case r: + h = (g - b) / d + (g < b ? 6 : 0); + break; + case g: + h = (b - r) / d + 2; + break; + case b: + h = (r - g) / d + 4; + break; + } + + h /= 6; + } + + return [h, s, v]; + } + + this.value = 1 - rgbToHsv(data.rgb[0], data.rgb[1], data.rgb[2])[2]; + }, + change: function () { + this.previousSibling.previousSibling.style.opacity = this.value; + } + } + }, + actions: { + component: 'section', + class: 'satus-color-picker__actions', + + reset: { + component: 'button', + text: 'reset', + + on: { + click: function () { + var modal = this.parentNode.parentNode.parentNode, + component = modal.parentComponent; + + component.data = component.skeleton.value; + + if (component.storage) { + satus.storage.set(component.storage, false); + } + + var data = component.skeleton.value || { + rgb: [0, 0, 0] + }; + + component.valueElement.style.backgroundColor = 'rgb(' + data.rgb[0] + ',' + data.rgb[1] + ',' + data.rgb[2] + ')'; + + modal.close(); + + component.colorValue = data; + + component.dispatchEvent(new CustomEvent('change')); + } + } + }, + cancel: { + component: 'button', + text: 'cancel', + + on: { + click: function () { + var modal = this.parentNode.parentNode.parentNode; + + modal.close(); + } + } + }, + ok: { + component: 'button', + text: 'OK', + + on: { + click: function () { + var modal = this.parentNode.parentNode.parentNode, + data = this.parentNode.parentNode.data; + + function rgbToHsv(r, g, b) { + r /= 255, g /= 255, b /= 255; + + var max = Math.max(r, g, b), + min = Math.min(r, g, b); + var h, s, v = max; + + var d = max - min; + s = max == 0 ? 0 : d / max; + + if (max == min) { + h = 0; // achromatic + } else { + switch (max) { + case r: + h = (g - b) / d + (g < b ? 6 : 0); + break; + case g: + h = (b - r) / d + 2; + break; + case b: + h = (r - g) / d + 4; + break; + } + + h /= 6; + } + + return [h, s, v]; + } + + function hsvToRgb(h, s, v) { + var r, g, b; + + var i = Math.floor(h * 6); + var f = h * 6 - i; + var p = v * (1 - s); + var q = v * (1 - f * s); + var t = v * (1 - (1 - f) * s); + + switch (i % 6) { + case 0: + r = v, g = t, b = p; + break; + case 1: + r = q, g = v, b = p; + break; + case 2: + r = p, g = v, b = t; + break; + case 3: + r = p, g = q, b = v; + break; + case 4: + r = t, g = p, b = v; + break; + case 5: + r = v, g = p, b = q; + break; + } + + return [r * 255, g * 255, b * 255]; + } + + var hsv = rgbToHsv(data.rgb[0], data.rgb[1], data.rgb[2]); + + hsv[2] = 1 - this.parentNode.previousSibling.value; + + data.rgb = hsvToRgb(hsv[0], hsv[1], hsv[2]); + + modal.parentComponent.valueElement.style.backgroundColor = 'rgb(' + data.rgb[0] + ',' + data.rgb[1] + ',' + data.rgb[2] + ')'; + + if (modal.parentComponent.storage) { + satus.storage.set(modal.parentComponent.storage, data); + } + + modal.parentComponent.colorValue = data; + + modal.close(); + + modal.parentComponent.dispatchEvent(new CustomEvent('change')); + } + } + } + } + }); + }); + + component.appendChild(component_value); + + return component; +}; +/*-------------------------------------------------------------- +>>> TABS +--------------------------------------------------------------*/ + +satus.components.tabs = function (skeleton) { + var component = document.createElement('div'), + selection = document.createElement('div'); + + selection.className = 'satus-tabs__selection'; + + component.appendChild(selection); + + component.selection = selection; + + for (var i = 0, l = skeleton.items.length; i < l; i++) { + var item = skeleton.items[i], + button = document.createElement('button'); + + button.className = 'satus-tabs__button'; + button.value = item; + + satus.text(button, item); + + button.addEventListener('click', function () { + var component = this.parentNode; + + component.value = this.value; + + component.selection.style.left = this.offsetLeft + 'px'; + + component.dispatchEvent(new CustomEvent('change')); + }); + + if (skeleton.value === item) { + selection.style.left = i * 50 + '%'; + } + + component.appendChild(button); + } + + return component; +}; +/*-------------------------------------------------------------- +>>> RADIO +--------------------------------------------------------------*/ + +satus.components.radio = function (skeleton) { + var component = document.createElement('label'), + content = document.createElement('span'), + radio = document.createElement('input'), + value = satus.storage.get(skeleton.group); + + component.inner = content; + + radio.type = 'radio'; + + if (skeleton.group) { + radio.name = skeleton.group; + } + + if (skeleton.value) { + radio.value = skeleton.value; + } + + if (satus.isset(value)) { + radio.checked = value === skeleton.value; + } + + radio.addEventListener('change', function () { + satus.storage.set(this.name, this.value); + }); + + component.appendChild(content); + component.appendChild(radio); + + return component; +}; +/*-------------------------------------------------------------- +>>> LIST +--------------------------------------------------------------*/ + +satus.components.list = function (skeleton) { + var ul = document.createElement('ul'); + + for (var i = 0, l = skeleton.items.length; i < l; i++) { + var li = document.createElement('li'), + item = skeleton.items[i]; + + li.className = 'satus-list__item'; + + for (var j = 0, k = item.length; j < k; j++) { + var child = item[j]; + + if (typeof child === 'string') { + var span = document.createElement('span'); + + span.textContent = satus.locale.get(child); + + li.appendChild(span); + } else { + satus.render(child, li); + } + } + + ul.appendChild(li); + } + + return ul; +}; +/*-------------------------------------------------------------- +>>> MODAL +--------------------------------------------------------------*/ + +satus.components.modal = function (skeleton) { + var component = document.createElement('div'), + scrim = document.createElement('div'), + surface = document.createElement('div'); + + scrim.className = 'satus-modal__scrim'; + surface.className = 'satus-modal__surface'; + + component.close = function () { + var component = this, + component_surface = this.children[1]; + + this.classList.add('satus-modal--closing'); + + setTimeout(function () { + component.remove(); + + component.dispatchEvent(new CustomEvent('close')); + }, satus.getAnimationDuration(component_surface)); + }; + + scrim.addEventListener('click', function () { + this.parentNode.close(); + }); + + component.appendChild(scrim); + component.appendChild(surface); + + component.inner = surface; + + return component; +}; +/*-------------------------------------------------------------- +>>> SWITCH +--------------------------------------------------------------*/ + +satus.components.switch = function (skeleton) { + var component = document.createElement('button'), + component_content = document.createElement('span'), + component_thumb = document.createElement('i'), + value = satus.storage.get(skeleton.storage); + + component.inner = component_content; + + if (satus.isset(value)) { + component.dataset.value = value; + } else if (skeleton.hasOwnProperty('value')) { + component.dataset.value = skeleton.value; + } + + component.addEventListener('click', function () { + if (this.dataset.value === 'true') { + this.dataset.value = 'false'; + } else { + this.dataset.value = 'true'; + } + + this.change(this.dataset.value === 'true'); + }); + + component.appendChild(component_content); + component.appendChild(component_thumb); + + return component; +}; +/*-------------------------------------------------------------- +>>> SLIDER: +---------------------------------------------------------------- +# +--------------------------------------------------------------*/ + +satus.components.slider = function (skeleton) { + var component = document.createElement('div'), + container = document.createElement('div'), + track_container = document.createElement('div'), + track = document.createElement('div'), + ring = document.createElement('div'), + thumb = document.createElement('div'), + range = document.createElement('input'), + value = satus.storage.get(skeleton.storage); + + container.className = 'satus-slider__container'; + track_container.className = 'satus-slider__track-container'; + track.className = 'satus-slider__track'; + ring.className = 'satus-slider__ring'; + thumb.className = 'satus-slider__thumb'; + + range.type = 'range'; + range.step = skeleton.step || 1; + range.max = skeleton.max || 1; + range.min = skeleton.min || 0; + + component.input = range; + + if (satus.isset(value)) { + range.value = value; + } else if (skeleton.hasOwnProperty('value')) { + range.value = skeleton.value; + } else { + range.value = 0; + } + + component.appendChild(container); + track_container.appendChild(track); + container.appendChild(track_container); + track.appendChild(ring); + track.appendChild(thumb); + component.appendChild(range); + + component.update = function () { + var track = this.querySelector('.satus-slider__track'), + thumb = this.querySelector('.satus-slider__thumb'), + min = Number(this.input.min) || 0, + max = Number(this.input.max) || 1, + step = Number(this.input.step) || 1, + value = Number(this.input.value) || 0, + offset = (value - min) / (max - min) * 100; + + track.style.width = 'calc(' + offset + '% - ' + Math.floor(offset * 12 / 100) + 'px)'; + + thumb.dataset.value = this.input.value; + }; + + Object.defineProperty(component, 'value', { + get: function () { + return this.input.value; + }, + set: function (value) { + this.input.value = value; + + this.update(); + + satus.storage.set(this.skeleton.storage, Number(value)); + + this.dispatchEvent(new CustomEvent('change')); + } + }); + + range.addEventListener('input', function () { + var component = this.parentNode; + + console.log(this.value); + + component.value = this.value; + }); + + component.update(); + + return component; +}; +/*-------------------------------------------------------------- +>>> SHORTCUT +--------------------------------------------------------------*/ + +satus.components.shortcut = function (skeleton) { + var component = document.createElement('button'), + value = document.createElement('div'); + + component.className = 'satus-button'; + value.className = 'satus-shortcut__value'; + + component.update = function () { + var object = satus.storage.get(this.storage) || this.skeleton.value || {}, + array = []; + + if (object.shift) { + array.push('Shift'); + } + + if (object.ctrl) { + array.push('Ctrl'); + } + + if (object.alt) { + array.push('Alt'); + } + + if (typeof object.keys === 'object') { + for (var key in object.keys) { + var char = object.keys[key].key || object.keys[key].code; + + if (key === 32) { + char = 'space'; + } + + array.push(char); + } + } + + this.valueElement.textContent = array.join(' + '); + }; + + component.render = function () { + var self = this, + children = this.primary.children; + + satus.empty(this.primary); + + function createElement(name) { + var element = document.createElement('div'); + + element.className = 'satus-shortcut__' + name; + + self.primary.appendChild(element); + + return element; + } + + if (this.data.alt) { + createElement('key').textContent = 'Alt'; + } + + if (this.data.ctrl) { + if (children.length && children[children.length - 1].className.indexOf('key') !== -1) { + createElement('plus'); + } + + createElement('key').textContent = 'Ctrl'; + } + + if (this.data.shift) { + if (children.length && children[children.length - 1].className.indexOf('key') !== -1) { + createElement('plus'); + } + + createElement('key').textContent = 'Shift'; + } + + for (var code in this.data.keys) { + if (children.length && children[children.length - 1].className.indexOf('key') !== -1) { + createElement('plus'); + } + + createElement('key').textContent = this.data.keys[code].key.toUpperCase(); + } + + if (this.data.wheel) { + if (children.length && children[children.length - 1].className.indexOf('key') !== -1) { + createElement('plus'); + } + + var mouse = createElement('mouse'), + div = document.createElement('div'); + + mouse.appendChild(div); + + mouse.className += ' ' + (this.data.wheel > 0); + } + }; + + component.valueElement = value; + + component.data = satus.storage.get(skeleton.storage) || skeleton.value || { + alt: false, + ctrl: false, + shift: false, + keys: {}, + wheel: 0 + }; + + component.appendChild(value); + + component.keydown = function (event) { + event.preventDefault(); + event.stopPropagation(); + + component.data = { + alt: event.altKey, + ctrl: event.ctrlKey, + shift: event.shiftKey, + keys: {} + }; + + component.data.keys[event.keyCode] = { + code: event.code, + key: event.key + }; + + component.data.wheel = 0; + + component.render(); + + return false; + }; + + component.mousewheel = function (event) { + event.preventDefault(); + event.stopPropagation(); + + component.data.wheel = event.deltaY; + + component.render(); + + return false; + }; + + component.addEventListener('click', function () { + satus.render({ + component: 'modal', + on: { + close: function () { + window.removeEventListener('keydown', this.keydown); + window.removeEventListener('mousewheel', this.mousewheel); + } + }, + + primary: { + component: 'div', + class: 'satus-shortcut__primary', + on: { + render: function () { + component.primary = this; + + component.render(); + } + } + }, + actions: { + component: 'div', + class: 'satus-shortcut__actions', + + reset: { + component: 'button', + text: 'reset', + on: { + click: function () { + component.data = component.skeleton.value; + + component.update(); + + satus.storage.set(component.storage, false); + + this.parentNode.parentNode.parentNode.close(); + + window.removeEventListener('keydown', this.keydown); + window.removeEventListener('mousewheel', this.mousewheel); + } + } + }, + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + component.data = satus.storage.get(skeleton.storage) || component.skeleton.value; + + component.update(); + + this.parentNode.parentNode.parentNode.close(); + + window.removeEventListener('keydown', this.keydown); + window.removeEventListener('mousewheel', this.mousewheel); + } + } + }, + save: { + component: 'button', + text: 'save', + on: { + click: function () { + satus.storage.set(component.storage, component.data); + + component.update(); + + this.parentNode.parentNode.parentNode.close(); + + window.removeEventListener('keydown', this.keydown); + window.removeEventListener('mousewheel', this.mousewheel); + } + } + } + } + }); + + window.addEventListener('keydown', this.keydown); + window.addEventListener('mousewheel', this.mousewheel); + }); + + component.addEventListener('render', component.update); + + return component; +}; +/*-------------------------------------------------------------- +>>> BASE +--------------------------------------------------------------*/ + +satus.components.base = function (skeleton) { + var component = document.createElement('div'); + + component.base = component; + + return component; +}; +/*-------------------------------------------------------------- +>>> TEXT FIELD +--------------------------------------------------------------*/ + +satus.components.textField = function (skeleton) { + var component = document.createElement('div'), + pre = document.createElement('pre'), + input = document.createElement('textarea'), + hidden_text = document.createElement('span'), + text = document.createElement('span'), + selection = document.createElement('div'), + cursor = document.createElement('div'), + value = satus.storage.get(skeleton.storage); + + input.className = 'satus-text-field__input'; + pre.className = 'satus-text-field__pre'; + hidden_text.className = 'satus-text-field__hidden-text'; + text.className = 'satus-text-field__text'; + selection.className = 'satus-text-field__selection'; + cursor.className = 'satus-text-field__cursor'; + + component.inputElement = input; + component.textElement = text; + component.languages = { + regex: function (component) { + var regex_token = /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g, + char_class_token = /[^\\-]+|-|\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)/g, + char_class_parts = /^(\[\^?)(]?(?:[^\\\]]+|\\[\S\s]?)*)(]?)$/, + quantifier = /^(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??$/, + matches = component.inputElement.value.match(regex_token); + + function create(type, string) { + var span = document.createElement('span'); + + span.className = type; + span.textContent = string; + + component.textElement.appendChild(span); + } + + for (var i = 0, l = matches.length; i < l; i++) { + var match = matches[i]; + + if (match[0] === '[') { + create('character-class', match); + } else if (match[0] === '(') { + create('group', match); + } else if (match[0] === ')') { + create('group', match); + } else if (match[0] === '\\' || match === '^') { + create('anchor', match); + } else if (quantifier.test(match)) { + create('quantifier', match); + } else if (match === '|' || match === '.') { + create('metasequence', match); + } else { + create('text', match); + } + } + } + }; + component._syntax = skeleton.syntax; + + Object.defineProperty(component, 'value', { + get: function () { + return this.inputElement.value; + }, + set: function (value) { + var input = this.inputElement; + + input.value = value; + + input.updateValue(); + input.updateCursor(); + } + }); + + Object.defineProperty(component, 'syntax', { + get: function () { + return this._syntax; + }, + set: function (value) { + var input = this.inputElement; + + this._syntax = value; + + input.updateValue(); + input.updateCursor(); + } + }); + + input.rows = skeleton.rows || 1; + input.autocapitalize = 'none'; + input.autocomplete = 'off'; + input.autocorrect = 'off'; + input.spellcheck = false; + input.autofocus = true; + input.textElement = text; + input.hiddenTextElement = hidden_text; + input.selectionElement = selection; + input.cursorElement = cursor; + + input.updateValue = function () { + var component = this.parentNode.parentNode; + + for (var i = this.textElement.childNodes.length - 1; i > -1; i--) { + this.textElement.childNodes[i].remove(); + } + + if (this.value.length > 0) { + if (component.languages[component._syntax]) { + component.languages[component._syntax](component); + } else { + this.textElement.textContent = this.value; + } + } + + component.dispatchEvent(new Event('change')); + }; + + input.updateCursor = function () { + var cursor = this.cursorElement, + selection = this.selectionElement, + hidden_text = this.hiddenTextElement, + start = this.selectionStart, + end = this.selectionEnd; + + cursor.style.animation = 'none'; + + if (start === end) { + selection.setAttribute('disabled', ''); + } else { + selection.removeAttribute('disabled'); + + hidden_text.textContent = this.value.substring(0, start); + + selection.style.left = hidden_text.offsetWidth - this.scrollLeft + 'px'; + + hidden_text.textContent = this.value.substring(start, end); + + selection.style.width = hidden_text.offsetWidth + 'px'; + } + + if (this.selectionDirection === 'forward') { + hidden_text.textContent = this.value.substring(0, end); + } else { + hidden_text.textContent = this.value.substring(0, start); + } + + cursor.style.left = hidden_text.offsetWidth - this.scrollLeft + 'px'; + + cursor.style.animation = ''; + + hidden_text.textContent = ''; + }; + + input.addEventListener('keydown', function () { + var self = this; + + setTimeout(function () { + var component = self.parentNode.parentNode; + + if (component.skeleton && component.skeleton.storage) { + satus.storage.set(component.skeleton.storage, self.value); + } + + self.updateValue(); + self.updateCursor(); + }); + }); + + input.addEventListener('scroll', function (event) { + this.textElement.style.left = -this.scrollLeft + 'px'; + }); + + document.addEventListener('selectionchange', function () { + input.updateCursor(); + }); + + selection.setAttribute('disabled', ''); + + pre.appendChild(input); + pre.appendChild(hidden_text); + pre.appendChild(text); + pre.appendChild(selection); + pre.appendChild(cursor); + component.appendChild(pre); + + if (satus.isset(value)) { + component.value = value; + } else if (skeleton.hasOwnProperty('value')) { + if (typeof skeleton.value === 'function') { + input.value = skeleton.value(); + } else if (skeleton.value) { + input.value = skeleton.value; + } + } + + component.addEventListener('render', function () { + this.inputElement.updateValue(); + this.inputElement.updateCursor(); + }); + + return component; +}; +/*-------------------------------------------------------------- +>>> ALERT +--------------------------------------------------------------*/ + +satus.components.alert = function (skeleton) { + var component = document.createElement('div'); + + return component; +}; +/*-------------------------------------------------------------- +>>> LAYERS +--------------------------------------------------------------*/ + +satus.components.layers = function (skeleton) { + var component = document.createElement('div'); + + component.path = [skeleton]; + + component.back = function () { + if (this.path.length > 1) { + this.path.pop(); + + this.open(); + } + }; + + component.open = function (skeleton) { + var layer = document.createElement('div'); + + if (skeleton) { + this.path.push(skeleton); + } else { + skeleton = this.path[this.path.length - 1]; + } + + layer.className = 'satus-layer'; + + layer.skeleton = skeleton; + layer.base = this.base; + + satus.render(skeleton, layer, skeleton.component === 'layers'); + + satus.empty(this); + + this.appendChild(layer); + + this.dispatchEvent(new Event('open')); + }; + + component.update = function () { + var layer = this.querySelector('.satus-layer'); + + satus.empty(layer); + + satus.render(layer.skeleton, layer); + }; + + component.render_children = false; + + component.addEventListener('render', function () { + this.open(); + }); + + return component; +}; +/*-------------------------------------------------------------- +>>> INPUT +--------------------------------------------------------------*/ + +satus.components.input = function (skeleton) { + var component = document.createElement('input'); + + if (skeleton.attr) { + var key = skeleton.attr.name || skeleton.storage, + value; + + if (satus.isset(satus.storage.get(key))) { + value = satus.storage.get(key); + } else { + value = skeleton.value; + } + + if (skeleton.attr.type === 'radio') { + component.checked = value === skeleton.attr.value || skeleton.value; + } else if (satus.isset(value)) { + component.value = value; + } + + component.addEventListener('change', function () { + var key = this.skeleton.attr.name || this.skeleton.storage; + + satus.storage.set(key, this.value); + }); + } + + return component; +}; +/*-------------------------------------------------------------- +>>> SELECT +--------------------------------------------------------------*/ + +satus.components.select = function (skeleton) { + var component = document.createElement('div'), + component_label = document.createElement('span'), + component_value = document.createElement('span'), + select = document.createElement('select'); + + component_value.className = 'satus-select__value'; + + for (var i = 0, l = skeleton.options.length; i < l; i++) { + var option = document.createElement('option'); + + option.value = skeleton.options[i].value; + + satus.text(option, skeleton.options[i].text); + + select.appendChild(option); + } + + component.selectElement = select; + select.valueElement = component_value; + + select.addEventListener('change', function () { + satus.empty(this.valueElement); + + satus.text(this.valueElement, this.options[this.selectedIndex].text); + + this.parentNode.change(this.value); + }); + + component.appendChild(component_label); + component.appendChild(component_value); + component.appendChild(select); + + component.addEventListener('render', function () { + var select = this.selectElement, + value = satus.storage.get(this.skeleton.storage) || this.skeleton.options[0].value; + + select.value = value; + + satus.text(select.valueElement, select.options[select.selectedIndex].text); + }); + + component.inner = component_label; + + return component; +}; +/*-------------------------------------------------------------- +>>> USER +--------------------------------------------------------------*/ + +satus.user = function () { + /*-------------------------------------------------------------- + 1.0 VARIABLES + --------------------------------------------------------------*/ + + var user_agent = navigator.userAgent, + random_cookie = 'ta{t`nX6cMXK,Wsc', + video = document.createElement('video'), + video_formats = { + ogg: 'video/ogg; codecs="theora"', + h264: 'video/mp4; codecs="avc1.42E01E"', + webm: 'video/webm; codecs="vp8, vorbis"', + vp9: 'video/webm; codecs="vp9"', + hls: 'application/x-mpegURL; codecs="avc1.42E01E"' + }, + audio = document.createElement('audio'), + audio_formats = { + mp3: 'audio/mpeg', + mp4: 'audio/mp4', + aif: 'audio/x-aiff' + }, + cvs = document.createElement('canvas'), + ctx = cvs.getContext('webgl'), + data = { + browser: { + audio: null, + cookies: null, + flash: null, + java: null, + languages: null, + name: null, + platform: null, + version: null, + video: null, + webgl: null + }, + os: { + name: null, + type: null + }, + device: { + connection: { + type: null, + speed: null + }, + cores: null, + gpu: null, + max_touch_points: null, + ram: null, + screen: null, + touch: null + } + }; + + + /*-------------------------------------------------------------- + 2.0 SOFTWARE + --------------------------------------------------------------*/ + + /*-------------------------------------------------------------- + 2.1.0 OS + --------------------------------------------------------------*/ + + /*-------------------------------------------------------------- + 2.1.1 NAME + --------------------------------------------------------------*/ + + if (navigator.appVersion.indexOf('Win') !== -1) { + if (navigator.appVersion.match(/(Windows 10.0|Windows NT 10.0)/)) { + data.os.name = 'Windows 10'; + } else if (navigator.appVersion.match(/(Windows 8.1|Windows NT 6.3)/)) { + data.os.name = 'Windows 8.1'; + } else if (navigator.appVersion.match(/(Windows 8|Windows NT 6.2)/)) { + data.os.name = 'Windows 8'; + } else if (navigator.appVersion.match(/(Windows 7|Windows NT 6.1)/)) { + data.os.name = 'Windows 7'; + } else if (navigator.appVersion.match(/(Windows NT 6.0)/)) { + data.os.name = 'Windows Vista'; + } else if (navigator.appVersion.match(/(Windows NT 5.1|Windows XP)/)) { + data.os.name = 'Windows XP'; + } else { + data.os.name = 'Windows'; + } + } else if (navigator.appVersion.indexOf('(iPhone|iPad|iPod)') !== -1) { + data.os.name = 'iOS'; + } else if (navigator.appVersion.indexOf('Mac') !== -1) { + data.os.name = 'macOS'; + } else if (navigator.appVersion.indexOf('Android') !== -1) { + data.os.name = 'Android'; + } else if (navigator.appVersion.indexOf('OpenBSD') !== -1) { + data.os.name = 'OpenBSD'; + } else if (navigator.appVersion.indexOf('SunOS') !== -1) { + data.os.name = 'SunOS'; + } else if (navigator.appVersion.indexOf('Linux') !== -1) { + data.os.name = 'Linux'; + } else if (navigator.appVersion.indexOf('X11') !== -1) { + data.os.name = 'UNIX'; + } + + /*-------------------------------------------------------------- + 2.1.2 TYPE + --------------------------------------------------------------*/ + + if (navigator.appVersion.match(/(Win64|x64|x86_64|WOW64)/)) { + data.os.type = '64-bit'; + } else { + data.os.type = '32-bit'; + } + + + /*-------------------------------------------------------------- + 2.2.0 BROWSER + --------------------------------------------------------------*/ + + /*-------------------------------------------------------------- + 2.2.1 NAME + --------------------------------------------------------------*/ + + if (user_agent.indexOf('Opera') !== -1) { + data.browser.name = 'Opera'; + } else if (user_agent.indexOf('Vivaldi') !== -1) { + data.browser.name = 'Vivaldi'; + } else if (user_agent.indexOf('Edge') !== -1) { + data.browser.name = 'Edge'; + } else if (user_agent.indexOf('Chrome') !== -1) { + data.browser.name = 'Chrome'; + } else if (user_agent.indexOf('Safari') !== -1) { + data.browser.name = 'Safari'; + } else if (user_agent.indexOf('Firefox') !== -1) { + data.browser.name = 'Firefox'; + } else if (user_agent.indexOf('MSIE') !== -1) { + data.browser.name = 'IE'; + } + + + /*-------------------------------------------------------------- + 2.2.2 VERSION + --------------------------------------------------------------*/ + + var browser_version = user_agent.match(new RegExp(data.browser.name + '/([0-9.]+)')); + + if (browser_version[1]) { + data.browser.version = browser_version[1]; + } + + + /*-------------------------------------------------------------- + 2.2.3 PLATFORM + --------------------------------------------------------------*/ + + data.browser.platform = navigator.platform || null; + + + /*-------------------------------------------------------------- + 2.2.4 LANGUAGES + --------------------------------------------------------------*/ + + data.browser.languages = navigator.languages || null; + + + /*-------------------------------------------------------------- + 2.2.5 COOKIES + --------------------------------------------------------------*/ + + if (document.cookie) { + document.cookie = random_cookie; + + if (document.cookie.indexOf(random_cookie) !== -1) { + data.browser.cookies = true; + } + } + + + /*-------------------------------------------------------------- + 2.2.6 FLASH + --------------------------------------------------------------*/ + + try { + if (new ActiveXObject('ShockwaveFlash.ShockwaveFlash')) { + data.browser.flash = true; + } + } catch (e) { + if (navigator.mimeTypes['application/x-shockwave-flash']) { + data.browser.flash = true; + } + } + + + /*-------------------------------------------------------------- + 2.2.7 JAVA + --------------------------------------------------------------*/ + + if (typeof navigator.javaEnabled === 'function' && navigator.javaEnabled()) { + data.browser.java = true; + } + + + /*-------------------------------------------------------------- + 2.2.8 VIDEO FORMATS + --------------------------------------------------------------*/ + + if (typeof video.canPlayType === 'function') { + data.browser.video = {}; + + for (var i in video_formats) { + var can_play_type = video.canPlayType(video_formats[i]); + + if (can_play_type === '') { + data.browser.video[i] = false; + } else { + data.browser.video[i] = can_play_type; + } + } + } + + + /*-------------------------------------------------------------- + 2.2.9 AUDIO FORMATS + --------------------------------------------------------------*/ + + if (typeof audio.canPlayType === 'function') { + data.browser.audio = {}; + + for (var i in audio_formats) { + var can_play_type = audio.canPlayType(audio_formats[i]); + + if (can_play_type == '') { + data.browser.audio[i] = false; + } else { + data.browser.audio[i] = can_play_type; + } + } + } + + + /*-------------------------------------------------------------- + 2.2.10 WEBGL + --------------------------------------------------------------*/ + + if (ctx && ctx instanceof WebGLRenderingContext) { + data.browser.webgl = true; + } + + + /*-------------------------------------------------------------- + 3.0 HARDWARE + --------------------------------------------------------------*/ + + /*-------------------------------------------------------------- + 3.1 SCREEN + --------------------------------------------------------------*/ + + if (screen) { + data.device.screen = screen.width + 'x' + screen.height; + } + + + /*-------------------------------------------------------------- + 3.2 RAM + --------------------------------------------------------------*/ + + if ('deviceMemory' in navigator) { + data.device.ram = navigator.deviceMemory + ' GB'; + } + + + /*-------------------------------------------------------------- + 3.3 GPU + --------------------------------------------------------------*/ + + if ( + ctx && + ctx instanceof WebGLRenderingContext && + 'getParameter' in ctx && + 'getExtension' in ctx + ) { + var info = ctx.getExtension('WEBGL_debug_renderer_info'); + + if (info) { + data.device.gpu = ctx.getParameter(info.UNMASKED_RENDERER_WEBGL); + } + } + + + /*-------------------------------------------------------------- + 3.4 CORES + --------------------------------------------------------------*/ + + if (navigator.hardwareConcurrency) { + data.device.cores = navigator.hardwareConcurrency; + } + + + /*-------------------------------------------------------------- + 3.5 TOUCH + --------------------------------------------------------------*/ + + if ( + window.hasOwnProperty('ontouchstart') || + window.DocumentTouch && document instanceof window.DocumentTouch || + navigator.maxTouchPoints > 0 || + window.navigator.msMaxTouchPoints > 0 + ) { + data.device.touch = true; + data.device.max_touch_points = navigator.maxTouchPoints; + } + + + /*-------------------------------------------------------------- + 3.6 CONNECTION + --------------------------------------------------------------*/ + + if (typeof navigator.connection === 'object') { + data.device.connection.type = navigator.connection.effectiveType || null; + + if (navigator.connection.downlink) { + data.device.connection.speed = navigator.connection.downlink + ' Mbps'; + } + } + + + /*-------------------------------------------------------------- + 4.0 CLEARING + --------------------------------------------------------------*/ + + video.remove(); + audio.remove(); + cvs.remove(); + + + return data; +}; +/*-------------------------------------------------------------- +>>> EXTENSION STORAGE +--------------------------------------------------------------*/ +/*-------------------------------------------------------------- +>>> PLUVIAM +--------------------------------------------------------------*/ + +satus.events.add('render', function (component, skeleton) { + if (skeleton.pluviam === true) { + function createPluviam(event) { + var pluviam = document.createElement('span'), + rect = this.getBoundingClientRect(), + x = event.clientX - rect.left, + y = event.clientY - rect.top, + diameter = Math.sqrt(Math.pow(rect.width * 2, 2) + Math.pow(rect.height * 2, 2)); + + pluviam.className = 'satus-pluviam'; + + pluviam.style.left = x - diameter / 2 + 'px'; + pluviam.style.top = y - diameter / 2 + 'px'; + pluviam.style.width = diameter + 'px'; + pluviam.style.height = diameter + 'px'; + + this.appendChild(pluviam); + + setTimeout(function () { + pluviam.remove(); + }, 1000); + } + + component.addEventListener('mousedown', createPluviam); + component.addEventListener('mouseover', createPluviam); + } +}); \ No newline at end of file diff --git a/youtube-scripts.js b/youtube-scripts.js index 848c2f24c..4e7cd9854 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -263,38 +263,14 @@ ImprovedTube.init = function () { subtree: false }); } else if (name === 'YTD-MASTHEAD') { - var logo = node.querySelector('a#logo'); - ImprovedTube.elements.masthead = { start: node.querySelector('#start'), end: node.querySelector('#end'), - logo + logo: node.querySelector('a#logo') }; ImprovedTube.improvedtubeYoutubeIcon(); - - if (logo) { - new MutationObserver(function(mutationList) { - for (var i = 0, l = mutationList.length; i < l; i++) { - var mutation = mutationList[i]; - - if (mutation.type === 'attributes') { - if (mutation.attributeName === 'href') { - if (logo.id === 'logo') { - this.disconnect(); - - ImprovedTube.youtubeHomePage(); - } - } - } - } - }).observe(logo, { - attributes: true, - attributeFilter: ['href'], - childList: false, - subtree: false - }); - } + ImprovedTube.youtubeHomePage(); } else if (name === 'YTD-GUIDE-SECTION-RENDERER') { if (ImprovedTube.elements.hasOwnProperty('sidebar_section') === false) { ImprovedTube.elements.sidebar_section = node; @@ -393,7 +369,7 @@ ImprovedTube.init = function () { } } else if (name === 'A' && node.href) { if (id === 'logo') { - ImprovedTube.youtubeHomePage(); + //ImprovedTube.youtubeHomePage(); } ImprovedTube.channelDefaultTab(node); From 8fed226515772fb1dce7c3fab78e69f8fd2f7dbd Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 29 Sep 2021 20:50:17 +0300 Subject: [PATCH 0406/1224] Added message --- satus.css | 1147 +---------------------------- satus.js | 2074 +---------------------------------------------------- 2 files changed, 8 insertions(+), 3213 deletions(-) diff --git a/satus.css b/satus.css index eb8c652a5..c94a54f80 100644 --- a/satus.css +++ b/satus.css @@ -1,1147 +1,8 @@ - /*-------------------------------------------------------------- ->>> THEMES: +!!! PLEASE DO NOT EDIT THIS VERSION !!! ---------------------------------------------------------------- -# Default +https://github.com/victor-savinov/satus - +Full version is here soon --------------------------------------------------------------*/ -/*-------------------------------------------------------------- -# DEFAULT ---------------------------------------------------------------*/ - -html { - --satus-primary: #ff4158; - --satus-switch-background: rgba(0,0,0,.08); - --satus-header-background: #fff; - --satus-header-text: #777; - --satus-layers-background: #f7f7f6; - --satus-layers-text: #777; - --satus-section-card-background: #fff; - --satus-modal-background: #fff; - --satus-modal-text: #777; - --satus-hover: rgba(0, 0, 0, .04); - - --satus-switch-track: #b8b8b8; - --satus-switch-track--active: var(--satus-primary); - --satus-switch-thumb: #fff; - - --satus-tabs: #fff; -} -/*-------------------------------------------------------------- ->>> COLOR PICKER ---------------------------------------------------------------*/ - -.satus-color-picker { - font-size: inherit; - position: relative; - display: flex; - box-sizing: border-box; - margin: 0; - cursor: pointer; - color: inherit; - border: none; - outline: none; - background-color: var(--satus-theme-button); - justify-content: space-between; - -webkit-tap-highlight-color: transparent; - align-items: center; - -webkit-appearance: none; -} - -.satus-color-picker__value { - width: 22px; - height: 22px; - border: 2px solid rgba(255, 255, 255, .4); - border-radius: 50%; -} - -.satus-modal--color-picker { - position: relative; -} - -.satus-modal--color-picker .satus-modal__surface { - display: flex; - flex-direction: column; - align-items: center; -} - -.satus-modal--color-picker canvas { - width: 256px; - height: 256px; -} - -.satus-color-picker__dim { - position: absolute; - width: 256px; - height: 256px; - pointer-events: none; - opacity: 0; - border-radius: 50%; - background: #000; -} - -.satus-color-picker__cursor { - position: absolute; - width: 5px; - height: 5px; - transform: translate(-50%, -50%); - pointer-events: none; - border: 1px solid #fff; - border-radius: 50%; - box-shadow: 0 0 0 1px #000; -} - -.satus-color-picker__slider .satus-slider__container { - height: 18px; -} - -.satus-color-picker__slider .satus-slider__track-container { - top: calc(50% - 9px); - height: 18px; -} - -.satus-color-picker__slider .satus-slider__track-container::before { - height: 16px; - opacity: 1; - border: 1px solid #bfbfbf; - border-radius: 4px; - background: linear-gradient(90deg, #fff, #000); -} - -.satus-color-picker__slider .satus-slider__track { - background: transparent; -} - -.satus-color-picker__slider .satus-slider__thumb { - top: 0; - height: 18px; - border-radius: 4px; - background: #fff; - box-shadow: 0 0 2px rgb(0, 0, 0, .2); -} - -.satus-color-picker__slider .satus-slider__thumb:before { - display: none; -} - -.satus-color-picker__actions { - display: flex; - width: 100%; - justify-content: flex-end; -} - -.satus-color-picker__actions .satus-button { - height: 32px; - margin: 8px 4px 0; - border-radius: 8px; - background: rgba(0, 0, 0, .15); -} - -.satus-color-picker__actions .satus-button:hover { - background: rgba(0, 0, 0, .25); -} -/*-------------------------------------------------------------- -# MAIN ---------------------------------------------------------------*/ - -.satus-main { - color: var(--satus-main-text); - background: var(--satus-main-background); - overflow-y: auto; - box-sizing: border-box; -} -/*-------------------------------------------------------------- ->>> TABS ---------------------------------------------------------------*/ - -.satus-tabs { - position: relative; - display: flex; - overflow: hidden; - box-sizing: border-box; - width: calc(100% - 16px); - margin: 16px 8px 4px; - border: 1px solid var(--satus-tabs); - border-radius: 18px; -} - -.satus-tabs__selection { - position: absolute; - z-index: 0; - left: 0; - width: 50%; - height: 32px; - transition: left .25s; - border-radius: 18px; - background: var(--satus-tabs); - box-shadow: 1px 0 4px rgb(0,0,0,.8); -} - -.satus-tabs__button { - background: transparent; - border: none; - font-family: inherit; - font-weight: 500; - font-size: 12px; - color: inherit; - height: 32px; - flex: 1; - text-transform: uppercase; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - position: relative; - z-index: 1; - padding: 0 16px; -} - -.satus-tabs__button:hover { - cursor: pointer; -} -/*-------------------------------------------------------------- ->>> RADIO ---------------------------------------------------------------*/ -/*-------------------------------------------------------------- -# BUTTON ---------------------------------------------------------------*/ - -.satus-button { - font: inherit; - position: relative; - overflow: hidden; - height: 48px; - margin: 0; - padding: 8px; - color: var(--satus-button-text, inherit); - border: none; - background: var(--satus-button-background, transparent); - appearance: none; - text-align: left; -} - -.satus-button:hover { - cursor: pointer; - background-color: var(--satus-hover); -} - -.satus-button>* { - pointer-events: none; -} - -.satus-header .satus-button { - width: 40px; - min-width: 40px; - height: 40px; - padding: 8px; - color: inherit; - border-radius: 50%; -} - -.satus-header .satus-section--align-start>* { - margin-right: 8px; -} -/*-------------------------------------------------------------- ->>> LIST: ---------------------------------------------------------------*/ - -.satus-list { - list-style: none; - margin: 0; -} - -.satus-list__item { - display: flex; - align-items: center; - justify-content: space-between; - min-height: 48px; -} - -.satus-list__item>*:last-child { - text-align: right; -} -/*-------------------------------------------------------------- ->>> SECTION: ----------------------------------------------------------------- -# ---------------------------------------------------------------*/ - -.satus-section { - display: flex; - flex-wrap: wrap; - box-sizing: border-box; -} - -.satus-section--align-start { - justify-content: flex-start; -} - -.satus-section--align-end { - justify-content: flex-end; -} - -.satus-section--column { - flex-direction: column; -} - -.satus-header>.satus-section { - align-items: center; -} - -.satus-section--card { - flex-direction: column; - width: calc(100% - 24px); - max-width: 900px; - margin: 12px auto 0; - padding: 8px 0; - border: 1px solid rgba(0,0,0,.1); - border-radius: 8px; - background: var(--satus-section-card-background); - color: var(--satus-section-card-text); - box-sizing: border-box; -} - -.satus-section--card:last-child { - margin: 12px auto; -} - -.satus-section--card>* { - min-height: 48px; - padding: 0 16px; - text-align: left; - box-sizing: border-box; - width: 100%; -} - -.satus-section--card>.satus-switch, -.satus-section--card>.satus-select, -.satus-section--card>.satus-slider, -.satus-section--card>.satus-radio -{ - display: flex; - justify-content: space-between; - align-items: center; -} - -.satus-section--card>.satus-button:hover, -.satus-section--card>.satus-switch:hover, -.satus-section--card>.satus-select:hover, -.satus-section--card>.satus-slider:hover, -.satus-section--card>.satus-radio:hover -{ - background-color: var(--satus-hover); -} - -.satus-section--card>.satus-button { - display: flex; - padding: 0 16px; - align-items: center; -} - -.satus-section--card>.satus-button>svg { - width: 20px; - margin: 2px 16px 0 0; - color: var(--satus-primary); -} - -.satus-section--label, -.satus-h2--section-label { - font-size: 14px; - display: block; - max-width: 900px; - margin: 16px 16px 8px; - width: 100%; - font-weight: 600; -} -/*-------------------------------------------------------------- -# SCROLLBAR ---------------------------------------------------------------*/ - -::-webkit-scrollbar { - width: 4px; -} - -::-webkit-scrollbar:hover { - width: 8px; -} - -::-webkit-scrollbar-thumb { - background: rgba(0, 0, 0, .3); -} -/*-------------------------------------------------------------- ->>> MODAL ---------------------------------------------------------------*/ - -.satus-modal { - position: absolute; - z-index: 100; - top: 0; - left: 0; - display: flex; - width: 100%; - height: 100vh; - justify-content: center; - align-items: center; -} - -.satus-modal__scrim { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - animation: modalFadeIn 150ms linear forwards; - opacity: 0; - background: rgba(0, 0, 0, .2); - backdrop-filter: blur(8px); -} - -.satus-modal__surface { - font-size: 14px; - display: flex; - overflow-y: auto; - flex-direction: column; - width: 95%; - min-width: 240px; - max-width: 560px; - max-height: 80%; - margin: 0 16px; - padding: 8px 16px; - transform: scale(.8); - animation: modalZoomIn 150ms linear forwards; - animation-delay: 20ms; - opacity: 0; - color: var(--satus-modal-text); - border-radius: 6px; - background-color: var(--satus-modal-background); - box-shadow: inset 0 -1px 1px 1px rgb(0, 0, 0, .1), 0 2px 6px rgb(0, 0, 0, .15); -} - -.satus-modal__surface .satus-section--actions { - display: flex; - justify-content: flex-end; - align-items: center; - margin-top: 16px; -} - -.satus-modal__surface .satus-section--actions .satus-button { - height: 32px; - margin-left: 8px; - border-radius: 4px; - padding: 0 8px; -} - -.satus-modal--closing .satus-modal__scrim { - animation: modalFadeOut 70ms linear forwards; -} - -.satus-modal--closing .satus-modal__surface { - animation: modalZoomOut 70ms linear forwards; -} - - -/*-------------------------------------------------------------- -# ANIMATIONS ---------------------------------------------------------------*/ - -@keyframes modalFadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} - -@keyframes modalFadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - } -} - -@keyframes modalZoomIn { - from { - transform: scale(.8); - opacity: 0; - } - to { - transform: scale(1); - opacity: 1; - } -} - -@keyframes modalZoomOut { - from { - transform: scale(1); - opacity: 1; - } - to { - transform: scale(.8); - opacity: 0; - } -} -/*-------------------------------------------------------------- ->>> SWITCH ----------------------------------------------------------------- -# Container -# Track -# Thumb ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# CONTAINER ---------------------------------------------------------------*/ - -.satus-switch { - font: inherit; - display: flex; - transition: background-color 75ms; - color: inherit; - border: none; - outline: none; - background-color: transparent; - justify-content: space-between; - align-items: center; -} - -.satus-switch:hover { - cursor: pointer; -} - - -/*-------------------------------------------------------------- -# TRACK ---------------------------------------------------------------*/ - -.satus-switch > i { - width: 38px; - height: 20px; - transition: background-color 150ms; - border-radius: 20px; - background-color: var(--satus-switch-track); - flex: 0 0 38px; -} - -.satus-section--card .satus-switch > i { - margin-left: 16px; -} - -.satus-switch[data-value='true'] > i { - background-color: var(--satus-switch-track--active); -} - - -/*-------------------------------------------------------------- -# THUMB ---------------------------------------------------------------*/ - -.satus-switch > i::before { - display: block; - width: 16px; - height: 16px; - margin: 2px; - content: ''; - transition: transform 150ms cubic-bezier(.4, 0, .2, 1); - border-radius: 50%; - background-color: var(--satus-switch-thumb); - will-change: transform; -} - -.satus-switch[data-value='true'] > i::before { - transform: translateX(18px); -} -/*-------------------------------------------------------------- ->>> SLIDER: ----------------------------------------------------------------- -# ---------------------------------------------------------------*/ - -.satus-slider { - position: relative; - display: flex; - flex-direction: column; - box-sizing: border-box; - width: 100%; - min-height: 64px; - padding: 0 16px; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - outline: none; - align-items: flex-start; - justify-content: center; -} - -.satus-slider:hover { - cursor: pointer; - background-color: rgba(0, 0, 0, .04); -} - - -/* LABEL */ - -.satus-slider__label { - cursor: default; -} - -.satus-slider>input { - position: absolute; - z-index: 1; - top: 0; - left: 0; - box-sizing: border-box; - width: 100%; - height: 100%; - margin: 0; - padding: 0; - opacity: 0; -} - - -/* TRACK */ - -.satus-slider__container { - position: relative; - width: 100%; - height: 12px; - margin: 8px 0 0; -} - -.satus-slider__track-container { - position: absolute; - top: calc(50% - 1px); - width: 100%; - height: 2px; - pointer-events: none; -} - -.satus-slider__track-container::before { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 2px; - content: ''; - opacity: .26; - background-color: var(--satus-primary); -} - -.satus-slider__track { - position: relative; - width: 0; - height: 100%; - background-color: var(--satus-primary); - will-change: width; -} - -.satus-slider:not(.satus-slider--dragging) .satus-slider__track { - transition: width 100ms ease-out; -} - -.satus-slider__thumb { - position: absolute; - top: -5px; - right: -12px; - width: 12px; - height: 12px; - border-radius: 50%; - background-color: var(--satus-primary); - box-shadow: 0 1px 5px rgba(0, 0, 0, .15); -} - -.satus-slider .satus-slider__thumb::before { - font-size: 13px; - position: absolute; - top: -34px; - left: 50%; - visibility: hidden; - box-sizing: border-box; - min-width: 28px; - padding: 4px 4px; - content: attr(data-value); - transform: translateX(-50%); - text-align: center; - pointer-events: none; - color: #fff; - border-radius: 4px; - background: var(--satus-theme-tooltip); -} - -.satus-slider:hover .satus-slider__thumb::before, -.satus-slider>input:focus .satus-slider__container .satus-slider__thumb::before { - visibility: visible; -} - -.satus-slider__ring { - position: absolute; - top: -11px; - right: -18px; - width: 24px; - height: 24px; - transition: 100ms; - transform: scale(0); - opacity: 0; - border-radius: 50%; - background-color: var(--satus-primary); -} - -.satus-slider>input:focus+.satus-slider__container .satus-slider__ring { - transform: scale(1); - opacity: .25; -} -/*-------------------------------------------------------------- ->>> SHORTCUT: ----------------------------------------------------------------- -# ---------------------------------------------------------------*/ - -.satus-shortcut { - justify-content: space-between; -} - -.satus-shortcut__value { - text-transform: uppercase; - font-size: 11px; - opacity: .5; -} - -.satus-shortcut__actions { - display: flex; - justify-content: flex-end; -} - -.satus-shortcut__actions .satus-button { - height: 32px; - background: rgba(0,0,0,.15); - margin: 8px 4px 0; - border-radius: 8px; -} - -.satus-shortcut__actions .satus-button:hover { - background: rgba(0,0,0,.25); -} - -.satus-shortcut__primary { - display: flex; - box-sizing: border-box; - width: 100%; - height: 68px; - padding: 16px; - background: rgba(0,0,0,.16); - align-items: center; -} - -.satus-shortcut__key { - display: flex; - box-sizing: border-box; - min-width: 32px; - height: 32px; - padding: 4px 8px; - border-radius: 4px; - background: #fff; - box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); - align-items: center; - justify-content: center; -} - -.satus-shortcut__plus { - position: relative; - width: 12px; - height: 12px; - margin: 8px; -} - -.satus-shortcut__plus::before { - position: absolute; - top: 0; - left: 5px; - width: 2px; - height: 12px; - content: ''; - background-color: #aaa; -} - -.satus-shortcut__plus::after { - position: absolute; - top: 5px; - left: 0; - width: 12px; - height: 2px; - content: ''; - background-color: #aaa; -} - -.satus-shortcut__mouse { - position: relative; - display: flex; - width: 28px; - height: 36px; - border-radius: 50%; - border-top-left-radius: 12px; - border-top-right-radius: 12px; - background: #fff; - box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); -} - -.satus-shortcut__mouse>div { - position: absolute; - top: 0; - left: 13px; - width: 2px; - height: 11px; - border-radius: 2px; - background: #ccc; -} - -.satus-shortcut__mouse::before { - position: absolute; - top: -4px; - left: 21px; - width: 2px; - height: 18px; - content: ''; - background: #f96754; -} - -.satus-shortcut__mouse.false::after { - position: absolute; - top: -12px; - left: 17px; - width: 0; - height: 0; - content: ''; - border-right: 5px solid transparent; - border-bottom: 8px solid #f96754; - border-left: 5px solid transparent; -} - -.satus-shortcut__mouse.true::after { - position: absolute; - top: 14px; - left: 17px; - width: 0; - height: 0; - content: ''; - border-top: 8px solid #f96754; - border-right: 5px solid transparent; - border-left: 5px solid transparent; -} - -.satus-section_shortcut { - width: 100%; - margin: 8px 0 0; - justify-content: flex-end; -} - -.satus-button_shortcut { - font-weight: 500; - overflow: hidden; - height: 28px; - min-height: 28px; - margin-right: 2px; - padding: 4px 8px; - text-transform: uppercase; - color: #f96754; - border-radius: 4px; -} -/*-------------------------------------------------------------- ->>> BASE ---------------------------------------------------------------*/ - -.satus-base{ - display: flex; - flex-direction: column; - width: 100%; - height: 100%; -} -/*-------------------------------------------------------------- ->>> TEXT FIELD ---------------------------------------------------------------*/ - -.satus-text-field { - position: relative; - padding: 0 16px; - background-color: #333347; - border-radius: 8px; - color: #c4c4d4; - overflow: hidden; - display: flex; -} - -.satus-text-field__pre { - display: flex; - position: relative; - height: 100%; - margin: 0; - padding: 0; - overflow: hidden; - align-items: center; - flex: 1; -} - -.satus-text-field__input { - font: inherit; - position: absolute; - top: 0; - left: 0; - width: 100%; - min-width: 0; - max-width: none; - height: 100%; - min-height: 0; - max-height: none; - margin: 0; - padding: 0; - opacity: 0; - border: none; - appearance: none; - z-index: 9; -} - -.satus-text-field__hidden-text { - position: absolute; - pointer-events: none; - opacity: 0; -} - -.satus-text-field__text { - position: absolute; - top: 0; - left: 0; - display: flex; - height: 100%; - margin: 0; - align-items: center; -} - -.satus-text-field__cursor { - position: absolute; - top: 6px; - left: 0; - display: none; - width: 2px; - height: 25px; - animation: blink 1s step-end 8; - background: #fa0; -} - -.satus-text-field__selection { - position: absolute; - top: 5px; - left: 0; - display: none; - width: 0; - height: 25px; - border: 1px solid rgba(255, 255, 255, .2); - border-radius: 3px; - background: rgba(255, 255, 255, .1); -} - -.satus-text-field__input:focus + * + * + * + .satus-text-field__cursor, -.satus-text-field__selection:not([disabled]) { - display: block; -} - -@keyframes blink { - from, - to { - opacity: 1; - } - 50% { - opacity: 0; - } -} - - -/*-------------------------------------------------------------- -# SYNTAX HIGHLIGHTING ---------------------------------------------------------------*/ - -.satus-text-field__text>.group { - color: #47ff47; - background-color: rgb(71, 255, 71, .16); -} - -.satus-text-field__text>.character-class { - color: #ffc247; - background-color: rgb(255, 170, 0, .16); -} - -.satus-text-field__text>.quantifier { - color: #47c2ff; - background-color: rgb(71, 194, 255, .16); -} - -.satus-text-field__text>.anchor { - color: #47c2ff; - background-color: rgb(71, 194, 255, .16); -} - -.satus-text-field__text>.metasequence { - color: #47ff47; - background-color: rgb(71, 255, 71, .16); -} - -.satus-text-field__text>.text { - color: #c4c4d4; - background-color: rgb(196, 196, 212, .16); -} -/*-------------------------------------------------------------- -# HEADER ---------------------------------------------------------------*/ - -.satus-header { - display: flex; - box-sizing: border-box; - height: 56px; - padding: 0 16px; - color: var(--satus-header-text); - background: var(--satus-header-background); - align-items: center; - justify-content: space-between; -} - -.satus-header .satus-h1--title { - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - flex: 1; -} -/*-------------------------------------------------------------- ->>> ALERT ---------------------------------------------------------------*/ - -.satus-alert { - display: flex; - box-sizing: border-box; - min-height: 48px; - margin: 8px; - padding: 8px 16px; - border-radius: 8px; - align-items: center; -} - -.satus-alert--error { - color: #c55959; - border: 1px solid #641616; - background: #430f0f; -} -/*-------------------------------------------------------------- ->>> LAYERS ---------------------------------------------------------------*/ - -.satus-layers { - position: relative; - overflow: hidden; - color: var(--satus-layers-text); - background: var(--satus-layers-background); - flex: 1; -} - -.satus-layer { - position: absolute; - top: 0; - left: 0; - display: flex; - overflow-y: auto; - width: 100%; - height: 100%; - flex-wrap: wrap; - align-content: flex-start; -} -/*-------------------------------------------------------------- -# INPUT ---------------------------------------------------------------*/ - -.satus-input[type=text] { - font: inherit; - box-sizing: border-box; - width: 100%; - margin: 0; - padding: 0; - padding: 0 8px; - color: inherit; - border: none; - outline: none; - background: none; - appearance: none; -} -/**/ - -.satus-aside { - color: var(--satus-aside-text); - background: var(--satus-aside-background); - box-sizing: border-box; -} -/*-------------------------------------------------------------- ->>> SELECT ---------------------------------------------------------------*/ - -.satus-select { - position: relative; - display: flex; - box-sizing: border-box; - align-items: center; - justify-content: space-between; -} - -.satus-select__value { - margin-left: 16px; - text-align: right; - opacity: .75; -} - -.satus-select select { - font: inherit; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - margin: 0; - padding: 0; - padding: inherit; - cursor: pointer; - opacity: 0; - color: inherit; - border: none; - outline: none; - background: none; - appearance: none; -} - -.satus-select:hover { - cursor: pointer; - background-color: var(--satus-hover); -} -/*-------------------------------------------------------------- ->>> PLUVIAM ---------------------------------------------------------------*/ - -.satus-pluviam { - position: absolute; - transform: scale(0); - animation-name: pluviam; - animation-duration: 1000ms; - opacity: var(--satus-pluviam-opacity, .08); - border-radius: 50%; - background: var(--satus-pluviam-background, #000); - animation-fill-mode: forwards; -} - -@keyframes pluviam { - 0% { - transform: scale(0); - opacity: var(--satus-pluviam-opacity, .08); - } - 70% { - transform: scale(.8); - opacity: var(--satus-pluviam-opacity, .08); - } - 100% { - transform: scale(1); - opacity: 0; - } -} \ No newline at end of file +html{--satus-primary:#ff4158;--satus-switch-background:rgba(0,0,0,.08);--satus-header-background:#fff;--satus-header-text:#777;--satus-layers-background:#f7f7f6;--satus-layers-text:#777;--satus-section-card-background:#fff;--satus-modal-background:#fff;--satus-modal-text:#777;--satus-hover:rgba(0, 0, 0, .04);--satus-switch-track:#b8b8b8;--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#fff;--satus-tabs:#fff}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:0;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:22px;height:22px;border:2px solid rgba(255,255,255,.4);border-radius:50%}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{display:flex;flex-direction:column;align-items:center}.satus-modal--color-picker canvas{width:256px;height:256px}.satus-color-picker__dim{position:absolute;width:256px;height:256px;pointer-events:none;opacity:0;border-radius:50%;background:#000}.satus-color-picker__cursor{position:absolute;width:5px;height:5px;transform:translate(-50%,-50%);pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000}.satus-color-picker__slider .satus-slider__container{height:18px}.satus-color-picker__slider .satus-slider__track-container{top:calc(50% - 9px);height:18px}.satus-color-picker__slider .satus-slider__track-container::before{height:16px;opacity:1;border:1px solid #bfbfbf;border-radius:4px;background:linear-gradient(90deg,#fff,#000)}.satus-color-picker__slider .satus-slider__track{background:0 0}.satus-color-picker__slider .satus-slider__thumb{top:0;height:18px;border-radius:4px;background:#fff;box-shadow:0 0 2px rgb(0,0,0,.2)}.satus-color-picker__slider .satus-slider__thumb:before{display:none}.satus-color-picker__actions{display:flex;width:100%;justify-content:flex-end}.satus-color-picker__actions .satus-button{height:32px;margin:8px 4px 0;border-radius:8px;background:rgba(0,0,0,.15)}.satus-color-picker__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background);overflow-y:auto;box-sizing:border-box}.satus-tabs{position:relative;display:flex;overflow:hidden;box-sizing:border-box;width:calc(100% - 16px);margin:16px 8px 4px;border:1px solid var(--satus-tabs);border-radius:18px}.satus-tabs__selection{position:absolute;z-index:0;left:0;width:50%;height:32px;transition:left .25s;border-radius:18px;background:var(--satus-tabs);box-shadow:1px 0 4px rgb(0,0,0,.8)}.satus-tabs__button{background:0 0;border:none;font-family:inherit;font-weight:500;font-size:12px;color:inherit;height:32px;flex:1;text-transform:uppercase;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;position:relative;z-index:1;padding:0 16px}.satus-tabs__button:hover{cursor:pointer}.satus-button{font:inherit;position:relative;overflow:hidden;height:48px;margin:0;padding:8px;color:var(--satus-button-text,inherit);border:none;background:var(--satus-button-background,transparent);appearance:none;text-align:left}.satus-button:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-button>*{pointer-events:none}.satus-header .satus-button{width:40px;min-width:40px;height:40px;padding:8px;color:inherit;border-radius:50%}.satus-header .satus-section--align-start>*{margin-right:8px}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;min-height:48px}.satus-list__item>:last-child{text-align:right}.satus-section{display:flex;flex-wrap:wrap;box-sizing:border-box}.satus-section--align-start{justify-content:flex-start}.satus-section--align-end{justify-content:flex-end}.satus-section--column{flex-direction:column}.satus-header>.satus-section{align-items:center}.satus-section--card{flex-direction:column;width:calc(100% - 24px);max-width:900px;margin:12px auto 0;padding:8px 0;border:1px solid rgba(0,0,0,.1);border-radius:8px;background:var(--satus-section-card-background);color:var(--satus-section-card-text);box-sizing:border-box}.satus-section--card:last-child{margin:12px auto}.satus-section--card>*{min-height:48px;padding:0 16px;text-align:left;box-sizing:border-box;width:100%}.satus-section--card>.satus-radio,.satus-section--card>.satus-select,.satus-section--card>.satus-slider,.satus-section--card>.satus-switch{display:flex;justify-content:space-between;align-items:center}.satus-section--card>.satus-button:hover,.satus-section--card>.satus-radio:hover,.satus-section--card>.satus-select:hover,.satus-section--card>.satus-slider:hover,.satus-section--card>.satus-switch:hover{background-color:var(--satus-hover)}.satus-section--card>.satus-button{display:flex;padding:0 16px;align-items:center}.satus-section--card>.satus-button>svg{width:20px;margin:2px 16px 0 0;color:var(--satus-primary)}.satus-h2--section-label,.satus-section--label{font-size:14px;display:block;max-width:900px;margin:16px 16px 8px;width:100%;font-weight:600}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3)}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.2);backdrop-filter:blur(8px)}.satus-modal__surface{font-size:14px;display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;margin:0 16px;padding:8px 16px;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-text);border-radius:6px;background-color:var(--satus-modal-background);box-shadow:inset 0 -1px 1px 1px rgb(0,0,0,.1),0 2px 6px rgb(0,0,0,.15)}.satus-modal__surface .satus-section--actions{display:flex;justify-content:flex-end;align-items:center;margin-top:16px}.satus-modal__surface .satus-section--actions .satus-button{height:32px;margin-left:8px;border-radius:4px;padding:0 8px}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:0;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer}.satus-switch>i{width:38px;height:20px;transition:background-color 150ms;border-radius:20px;background-color:var(--satus-switch-track);flex:0 0 38px}.satus-section--card .satus-switch>i{margin-left:16px}.satus-switch[data-value=true]>i{background-color:var(--satus-switch-track--active)}.satus-switch>i::before{display:block;width:16px;height:16px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:var(--satus-switch-thumb);will-change:transform}.satus-switch[data-value=true]>i::before{transform:translateX(18px)}.satus-slider{position:relative;display:flex;flex-direction:column;box-sizing:border-box;width:100%;min-height:64px;padding:0 16px;-webkit-user-select:none;-moz-user-select:none;user-select:none;outline:0;align-items:flex-start;justify-content:center}.satus-slider:hover{cursor:pointer;background-color:rgba(0,0,0,.04)}.satus-slider__label{cursor:default}.satus-slider>input{position:absolute;z-index:1;top:0;left:0;box-sizing:border-box;width:100%;height:100%;margin:0;padding:0;opacity:0}.satus-slider__container{position:relative;width:100%;height:12px;margin:8px 0 0}.satus-slider__track-container{position:absolute;top:calc(50% - 1px);width:100%;height:2px;pointer-events:none}.satus-slider__track-container::before{position:absolute;top:0;left:0;width:100%;height:2px;content:'';opacity:.26;background-color:var(--satus-primary)}.satus-slider__track{position:relative;width:0;height:100%;background-color:var(--satus-primary);will-change:width}.satus-slider:not(.satus-slider--dragging) .satus-slider__track{transition:width .1s ease-out}.satus-slider__thumb{position:absolute;top:-5px;right:-12px;width:12px;height:12px;border-radius:50%;background-color:var(--satus-primary);box-shadow:0 1px 5px rgba(0,0,0,.15)}.satus-slider .satus-slider__thumb::before{font-size:13px;position:absolute;top:-34px;left:50%;visibility:hidden;box-sizing:border-box;min-width:28px;padding:4px 4px;content:attr(data-value);transform:translateX(-50%);text-align:center;pointer-events:none;color:#fff;border-radius:4px;background:var(--satus-theme-tooltip)}.satus-slider:hover .satus-slider__thumb::before,.satus-slider>input:focus .satus-slider__container .satus-slider__thumb::before{visibility:visible}.satus-slider__ring{position:absolute;top:-11px;right:-18px;width:24px;height:24px;transition:.1s;transform:scale(0);opacity:0;border-radius:50%;background-color:var(--satus-primary)}.satus-slider>input:focus+.satus-slider__container .satus-slider__ring{transform:scale(1);opacity:.25}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{text-transform:uppercase;font-size:11px;opacity:.5}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;background:rgba(0,0,0,.15);margin:8px 4px 0;border-radius:8px}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__mouse>div{position:absolute;top:0;left:13px;width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-4px;left:21px;width:2px;height:18px;content:'';background:#f96754}.satus-shortcut__mouse.false::after{position:absolute;top:-12px;left:17px;width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:14px;left:17px;width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-base{display:flex;flex-direction:column;width:100%;height:100%}.satus-text-field{position:relative;padding:0 16px;background-color:#333347;border-radius:8px;color:#c4c4d4;overflow:hidden;display:flex}.satus-text-field__pre{display:flex;position:relative;height:100%;margin:0;padding:0;overflow:hidden;align-items:center;flex:1}.satus-text-field__input{font:inherit;position:absolute;top:0;left:0;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0;opacity:0;border:none;appearance:none;z-index:9}.satus-text-field__hidden-text{position:absolute;pointer-events:none;opacity:0}.satus-text-field__text{position:absolute;top:0;left:0;display:flex;height:100%;margin:0;align-items:center}.satus-text-field__cursor{position:absolute;top:6px;left:0;display:none;width:2px;height:25px;animation:blink 1s step-end 8;background:#fa0}.satus-text-field__selection{position:absolute;top:5px;left:0;display:none;width:0;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:3px;background:rgba(255,255,255,.1)}.satus-text-field__input:focus+*+*+*+.satus-text-field__cursor,.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field__text>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__text>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-header{display:flex;box-sizing:border-box;height:56px;padding:0 16px;color:var(--satus-header-text);background:var(--satus-header-background);align-items:center;justify-content:space-between}.satus-header .satus-h1--title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.satus-alert{display:flex;box-sizing:border-box;min-height:48px;margin:8px;padding:8px 16px;border-radius:8px;align-items:center}.satus-alert--error{color:#c55959;border:1px solid #641616;background:#430f0f}.satus-layers{position:relative;overflow:hidden;color:var(--satus-layers-text);background:var(--satus-layers-background);flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;width:100%;height:100%;flex-wrap:wrap;align-content:flex-start}.satus-input[type=text]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:0;padding:0 8px;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-aside{color:var(--satus-aside-text);background:var(--satus-aside-background);box-sizing:border-box}.satus-select{position:relative;display:flex;box-sizing:border-box;align-items:center;justify-content:space-between}.satus-select__value{margin-left:16px;text-align:right;opacity:.75}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;padding:inherit;cursor:pointer;opacity:0;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1s;opacity:var(--satus-pluviam-opacity,.08);border-radius:50%;background:var(--satus-pluviam-background,#000);animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:var(--satus-pluviam-opacity,.08)}70%{transform:scale(.8);opacity:var(--satus-pluviam-opacity,.08)}100%{transform:scale(1);opacity:0}} \ No newline at end of file diff --git a/satus.js b/satus.js index 7be2cb3cf..fb50af884 100644 --- a/satus.js +++ b/satus.js @@ -1,2074 +1,8 @@ - /*-------------------------------------------------------------- ->>> CORE: +!!! PLEASE DO NOT EDIT THIS VERSION !!! ---------------------------------------------------------------- -# Global variable -# Functions -# Render +https://github.com/victor-savinov/satus - +Full version is here soon --------------------------------------------------------------*/ -/*-------------------------------------------------------------- -# GLOBAL VARIABLE ---------------------------------------------------------------*/ - -var satus = { - components: {}, - events: {}, - locale: { - strings: {} - }, - storage: { - attributes: {}, - data: {} - } -}; - - -/*-------------------------------------------------------------- -# FUNCTIONS ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# APPEND ---------------------------------------------------------------*/ - -satus.append = function (element, container) { - (container || document.body).appendChild(element); -}; - - -/*-------------------------------------------------------------- -# ANIMATION DURATION ---------------------------------------------------------------*/ - -satus.getAnimationDuration = function (element) { - return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; -}; - - -/*-------------------------------------------------------------- -# APPEND ---------------------------------------------------------------*/ - -satus.attr = function (element, attributes) { - if (attributes) { - for (var key in attributes) { - if (element.is_svg) { - element.setAttributeNS(null, key, attributes[key]); - } else { - var value = attributes[key]; - - if (['placeholder', 'title'].indexOf(key) !== -1) { - value = satus.locale.get(value); - } - - element.setAttribute(key, value); - } - } - } -}; - -satus.elementIndex = function (element) { - return Array.prototype.slice.call(element.parentNode.children).indexOf(element); -}; - - -/*-------------------------------------------------------------- -# DATA ---------------------------------------------------------------*/ - -satus.data = function (element, data) { - if (data) { - for (var key in data) { - element.dataset[key] = data[key]; - } - } -}; - - -/*-------------------------------------------------------------- -# PROPERTIES ---------------------------------------------------------------*/ - -satus.properties = function (element, properties) { - if (properties) { - for (var key in properties) { - element[key] = properties[key]; - } - } -}; - - -/*-------------------------------------------------------------- -# CAMELIZE ---------------------------------------------------------------*/ - -satus.camelize = function (string) { - var result = ''; - - for (var i = 0, l = string.length; i < l; i++) { - var character = string[i]; - - if (character === '-') { - i++; - - result += string[i].toUpperCase(); - } else { - result += character; - } - } - - return result; -}; - - -/*-------------------------------------------------------------- -# SNAKELIZE ---------------------------------------------------------------*/ - -satus.snakelize = function (string) { - return string.replace(/([A-Z])/g, '-$1').toLowerCase(); -}; - - -/*-------------------------------------------------------------- -# CLASS ---------------------------------------------------------------*/ - -satus.class = function (element, string) { - if (string) { - element.className += ' ' + string; - } -}; - - -/*-------------------------------------------------------------- -# EMPTY ---------------------------------------------------------------*/ - -satus.empty = function (element) { - for (var i = element.childNodes.length - 1; i > -1; i--) { - element.childNodes[i].remove(); - } -}; - - -/*-------------------------------------------------------------- -# EVENTS ---------------------------------------------------------------*/ - -Object.defineProperty(satus.events, 'add', { - value: function (type, listener) { - if (this.hasOwnProperty(type) === false) { - this[type] = []; - } - - this[type].push(listener); - } -}); - - -/*-------------------------------------------------------------- -# ISSET ---------------------------------------------------------------*/ - -satus.isset = function (variable) { - if (variable === null || variable === undefined) { - return false; - } - - return true; -}; - - -/*-------------------------------------------------------------- -# FETCH ---------------------------------------------------------------*/ - -satus.fetch = function (url, success, error) { - fetch(url).then(function (response) { - if (response.ok) { - response.json().then(success); - } else { - error(); - } - }); -}; - - -/*-------------------------------------------------------------- -# AJAX ---------------------------------------------------------------*/ - -satus.ajax = function (url, success, error) { - var xhr = new XMLHttpRequest(); - - xhr.onload = function () { - success(this.response); - }; - xhr.onerror = function () { - error(success); - }; - - xhr.open('GET', url, true); - xhr.send(); -}; - - -/*-------------------------------------------------------------- -# STORAGE ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# GET ---------------------------------------------------------------*/ - -satus.storage.get = function (name) { - var target = satus.storage.data; - - if (satus.isset(name) === false) { - return; - } - - name = name.split('/').filter(function (value) { - return value != ''; - }); - - for (var i = 0, l = name.length; i < l; i++) { - if (satus.isset(target[name[i]])) { - target = target[name[i]]; - } else { - return undefined; - } - } - - return target; -}; - - -/*-------------------------------------------------------------- -# SET ---------------------------------------------------------------*/ - -satus.storage.set = function (name, value) { - var items = {}, - target = satus.storage.data; - - if (satus.isset(name) === false) { - return; - } - - name = name.split('/').filter(function (value) { - return value != ''; - }); - - for (var i = 0, l = name.length; i < l; i++) { - var item = name[i]; - - if (i < l - 1) { - - if (target[item]) { - target = target[item]; - } else { - target[item] = {}; - - target = target[item]; - } - } else { - target[item] = value; - } - } - - for (var key in this.data) { - if (typeof this.data[key] !== 'function') { - items[key] = this.data[key]; - } - } - - if (satus.storage.attributes[name]) { - document.body.setAttribute(name, value); - } - - chrome.storage.local.set(items); -}; - - -/*-------------------------------------------------------------- -# IMPORT ---------------------------------------------------------------*/ - -satus.storage.import = function (callback) { - chrome.storage.local.get(function (items) { - for (var key in items) { - if (satus.storage.attributes[key]) { - document.body.setAttribute(key, items[key]); - } - - satus.storage.data[key] = items[key]; - } - - if (callback) { - callback(items); - } - }); -}; - - -/*-------------------------------------------------------------- -# CLEAR ---------------------------------------------------------------*/ - -satus.storage.clear = function (callback) { - chrome.storage.local.clear(callback); -}; - - -/*-------------------------------------------------------------- -# LOCALIZATION ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# GET ---------------------------------------------------------------*/ - -satus.locale.get = function (string) { - return this.strings[string] || string; -}; - - -/*-------------------------------------------------------------- -# ON ---------------------------------------------------------------*/ - -satus.on = function (element, events) { - if (this.isset(events) && typeof events === 'object') { - for (var selector in events) { - var type = typeof events[selector]; - - if (type === 'function') { - element.addEventListener(selector, events[selector]); - } else if (type === 'object') { - element.addEventListener(selector, function (event) { - this.skeleton.on[event.type].parent = this.skeleton; - - if (this.skeleton.on[event.type].component !== 'modal' && this.base && this.base.layers) { - this.base.layers.open(this.skeleton.on[event.type]); - } else { - satus.render(this.skeleton.on[event.type], this.base); - } - }); - } else if (type === 'string') { - element.addEventListener(selector, function () { - var match = this.skeleton.on[event.type].match(/(["'`].+["'`]|[^.()]+)/g), - target = this.base; - - for (var i = 0, l = match.length; i < l; i++) { - var key = match[i]; - - if (target.skeleton[key]) { - target = target.skeleton[key]; - } else { - if (typeof target[key] === 'function') { - target[key](); - } else { - target = target[key]; - } - } - - if (target.rendered) { - target = target.rendered; - } - } - }); - } - } - } -}; - - -/*-------------------------------------------------------------- -# STYLE ---------------------------------------------------------------*/ - -satus.style = function (component, object) { - for (var key in object) { - component.style[key] = object[key]; - } -}; - - -/*-------------------------------------------------------------- -# SEARCH ---------------------------------------------------------------*/ - -satus.search = function (query, object, callback, categories) { - var threads = 0, - folder = '', - results = {}; - - query = query.toLowerCase(); - - function parse(items) { - threads++; - - for (var key in items) { - if (key !== 'rendered' && key !== 'base' && key !== 'parent') { - var item = items[key]; - - if (['switch', 'select', 'slider', 'shortcut'].indexOf(item.component) !== -1 && key.indexOf(query) !== -1) { - if (categories === true) { - if (!results[folder]) { - results[folder] = {}; - } - - results[folder][key] = item; - } else { - results[key] = item; - } - } - - if (typeof item === 'object') { - parse(item); - } - } - } - - threads--; - - if (threads === 0) { - callback(results); - } - } - - parse(object); -}; - - -/*-------------------------------------------------------------- -# TEXT ---------------------------------------------------------------*/ - -satus.text = function (component, string) { - if (string) { - component.appendChild(document.createTextNode(this.locale.get(string))); - } -}; - - -/*-------------------------------------------------------------- -# RENDER ---------------------------------------------------------------*/ - -satus.render = function (skeleton, container, skip, property) { - if (skeleton.hasOwnProperty('component') && skip !== true) { - var component, - name = skeleton.component, - camelized_name = this.camelize(name); - - if (skeleton.on && skeleton.on.beforerender) { - skeleton.on.beforerender(skeleton); - } - - if (skeleton.hasOwnProperty('storage') === false && property) { - skeleton.storage = property; - } - - if (this.components[camelized_name]) { - component = this.components[camelized_name](skeleton); - - if (this.isset(component.inner) === false) { - component.inner = component; - } - } else if (name === 'svg' || container && container.is_svg) { - component = document.createElementNS('http://www.w3.org/2000/svg', name); - - component.is_svg = true; - - component.inner = component; - } else { - component = document.createElement(skeleton.component); - - component.inner = component; - } - - if (component.inner.hasOwnProperty('base') === false && container) { - component.inner.base = container.base; - } - - if (component.inner.base && name === 'layers') { - component.inner.base.layers = component; - } - - skeleton.rendered = component; - component.skeleton = skeleton; - - component.className = (component.className + ' satus-' + skeleton.component).trim(); - - component.change = function (value) { - if (this.skeleton.storage) { - satus.storage.set(this.skeleton.storage, value); - } - }; - - if (skeleton.variant) { - component.className += ' satus-' + skeleton.component + '--' + skeleton.variant; - } - - this.append(component, container); - - container = component.inner || component; - - this.class(component, skeleton.class); - this.style(component, skeleton.style); - this.attr(component, skeleton.attr); - this.data(component, skeleton.data); - this.properties(component, skeleton.properties); - this.on(component, skeleton.on); - this.text(container, skeleton.text); - - component.dispatchEvent(new CustomEvent('render')); - - if (this.events.hasOwnProperty('render')) { - for (var i = 0, l = this.events['render'].length; i < l; i++) { - this.events['render'][i](component, skeleton); - } - } - } - - if (!component || component.render_children !== false) { - for (var key in skeleton) { - if (key !== 'parent' && skeleton[key] && skeleton[key].hasOwnProperty('component')) { - skeleton[key].parent = skeleton; - - this.render(skeleton[key], container, false, key); - } - } - } -}; -/*-------------------------------------------------------------- ->>> COLOR PICKER ---------------------------------------------------------------*/ - -satus.components.colorPicker = function (skeleton) { - var component = document.createElement('button'), - component_value = document.createElement('span'); - - component.className = 'satus-button'; - component_value.className = 'satus-color-picker__value'; - - component.valueElement = component_value; - - component.addEventListener('render', function () { - var data = satus.storage.get(this.storage) || this.skeleton.value || { - rgb: [0, 0, 0] - }; - - this.valueElement.style.backgroundColor = 'rgb(' + data.rgb[0] + ',' + data.rgb[1] + ',' + data.rgb[2] + ')'; - }); - - component.addEventListener('click', function () { - satus.render({ - component: 'modal', - class: 'satus-modal--color-picker', - properties: { - parentComponent: this - }, - - canvas: { - component: 'canvas', - on: { - render: function () { - var data = satus.storage.get(this.parentNode.parentNode.parentComponent.storage) || this.parentNode.parentNode.parentComponent.skeleton.value || { - rgb: [0, 0, 0] - }, - ctx = this.getContext('2d'), - image = new Image(); - - this.parentNode.data = data; - - image.addEventListener('load', function () { - ctx.drawImage(this, 0, 0); - }); - - image.src = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNzAgMjcwIj48ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9ImEiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iMTMzIiBjbGFzcz0iSXJvV2hlZWxIdWUiPjxwYXRoIHN0cm9rZT0iaHNsKDI0MCwgMTAwJSwgNTAlKSIgZD0iTTIwMS40NzcgMTM2Ljc0YTY2LjUgNjYuNSAwIDAwLjAyMy0xLjc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQxLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjQzNyAxMzcuOWE2Ni41IDY2LjUgMCAwMC4wNTMtMS43NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI0MiwgMTAwJSwgNTAlKSIgZD0iTTIwMS4zNzYgMTM5LjA2YTY2LjUgNjYuNSAwIDAwLjA4My0xLjc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQzLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjI5NSAxNDAuMjE4YTY2LjUgNjYuNSAwIDAwLjExNC0xLjczOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI0NCwgMTAwJSwgNTAlKSIgZD0iTTIwMS4xOTQgMTQxLjM3NGE2Ni41IDY2LjUgMCAwMC4xNDQtMS43MzUiLz48cGF0aCBzdHJva2U9ImhzbCgyNDUsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuMDczIDE0Mi41MjhhNjYuNSA2Ni41IDAgMDAuMTc0LTEuNzMyIi8+PHBhdGggc3Ryb2tlPSJoc2woMjQ2LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjkzMSAxNDMuNjhhNjYuNSA2Ni41IDAgMDAuMjA1LTEuNzI5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjQ3LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjc3IDE0NC44M2E2Ni41IDY2LjUgMCAwMC4yMzQtMS43MjYiLz48cGF0aCBzdHJva2U9ImhzbCgyNDgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDAuNTg4IDE0NS45NzZhNjYuNSA2Ni41IDAgMDAuMjY1LTEuNzIxIi8+PHBhdGggc3Ryb2tlPSJoc2woMjQ5LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjM4NiAxNDcuMTE5YTY2LjUgNjYuNSAwIDAwLjI5NS0xLjcxNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1MCwgMTAwJSwgNTAlKSIgZD0iTTIwMC4xNjUgMTQ4LjI1OGE2Ni41IDY2LjUgMCAwMC4zMjUtMS43MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1MSwgMTAwJSwgNTAlKSIgZD0iTTE5OS45MjQgMTQ5LjM5M2E2Ni41IDY2LjUgMCAwMC4zNTQtMS43MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuNjYzIDE1MC41MjRhNjYuNSA2Ni41IDAgMDAuMzg0LTEuNjk4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjUzLCAxMDAlLCA1MCUpIiBkPSJNMTk5LjM4MiAxNTEuNjVhNjYuNSA2Ni41IDAgMDAuNDE0LTEuNjkiLz48cGF0aCBzdHJva2U9ImhzbCgyNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuMDgxIDE1Mi43NzFhNjYuNSA2Ni41IDAgMDAuNDQ0LTEuNjgzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjU1LCAxMDAlLCA1MCUpIiBkPSJNMTk4Ljc2MiAxNTMuODg3YTY2LjUgNjYuNSAwIDAwLjQ3Mi0xLjY3NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI1NiwgMTAwJSwgNTAlKSIgZD0iTTE5OC40MjIgMTU0Ljk5N2E2Ni41IDY2LjUgMCAwMC41MDItMS42NjciLz48cGF0aCBzdHJva2U9ImhzbCgyNTcsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguMDY0IDE1Ni4xYTY2LjUgNjYuNSAwIDAwLjUzLTEuNjU3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjU4LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjY4NiAxNTcuMTk4YTY2LjUgNjYuNSAwIDAwLjU2LTEuNjQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjU5LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjI4OSAxNTguMjg5YTY2LjUgNjYuNSAwIDAwLjU4OC0xLjYzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2MCwgMTAwJSwgNTAlKSIgZD0iTTE5Ni44NzMgMTU5LjM3MmE2Ni41IDY2LjUgMCAwMC42MTctMS42MjgiLz48cGF0aCBzdHJva2U9ImhzbCgyNjEsIDEwMCUsIDUwJSkiIGQ9Ik0xOTYuNDM4IDE2MC40NDhhNjYuNSA2Ni41IDAgMDAuNjQ1LTEuNjE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjYyLCAxMDAlLCA1MCUpIiBkPSJNMTk1Ljk4NCAxNjEuNTE3YTY2LjUgNjYuNSAwIDAwLjY3NC0xLjYwNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2MywgMTAwJSwgNTAlKSIgZD0iTTE5NS41MTIgMTYyLjU3N2E2Ni41IDY2LjUgMCAwMC43MDItMS41OTMiLz48cGF0aCBzdHJva2U9ImhzbCgyNjQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTUuMDIyIDE2My42MjlhNjYuNSA2Ni41IDAgMDAuNzI5LTEuNTgxIi8+PHBhdGggc3Ryb2tlPSJoc2woMjY1LCAxMDAlLCA1MCUpIiBkPSJNMTk0LjUxMyAxNjQuNjcyYTY2LjUgNjYuNSAwIDAwLjc1Ni0xLjU2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2NiwgMTAwJSwgNTAlKSIgZD0iTTE5My45ODYgMTY1LjcwNmE2Ni41IDY2LjUgMCAwMC43ODQtMS41NTQiLz48cGF0aCBzdHJva2U9ImhzbCgyNjcsIDEwMCUsIDUwJSkiIGQ9Ik0xOTMuNDQxIDE2Ni43MzFhNjYuNSA2Ni41IDAgMDAuODEtMS41NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI2OCwgMTAwJSwgNTAlKSIgZD0iTTE5Mi44NzkgMTY3Ljc0NmE2Ni41IDY2LjUgMCAwMC44MzctMS41MjYiLz48cGF0aCBzdHJva2U9ImhzbCgyNjksIDEwMCUsIDUwJSkiIGQ9Ik0xOTIuMjk4IDE2OC43NTFhNjYuNSA2Ni41IDAgMDAuODY0LTEuNTExIi8+PHBhdGggc3Ryb2tlPSJoc2woMjcwLCAxMDAlLCA1MCUpIiBkPSJNMTkxLjcgMTY5Ljc0NmE2Ni41IDY2LjUgMCAwMC44OS0xLjQ5NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3MSwgMTAwJSwgNTAlKSIgZD0iTTE5MS4wODYgMTcwLjczYTY2LjUgNjYuNSAwIDAwLjkxNi0xLjQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjcyLCAxMDAlLCA1MCUpIiBkPSJNMTkwLjQ1MyAxNzEuNzA0YTY2LjUgNjYuNSAwIDAwLjk0Mi0xLjQ2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3MywgMTAwJSwgNTAlKSIgZD0iTTE4OS44MDQgMTcyLjY2NmE2Ni41IDY2LjUgMCAwMC45NjgtMS40NDgiLz48cGF0aCBzdHJva2U9ImhzbCgyNzQsIDEwMCUsIDUwJSkiIGQ9Ik0xODkuMTM5IDE3My42MTdhNjYuNSA2Ni41IDAgMDAuOTkyLTEuNDMiLz48cGF0aCBzdHJva2U9ImhzbCgyNzUsIDEwMCUsIDUwJSkiIGQ9Ik0xODguNDU2IDE3NC41NTZhNjYuNSA2Ni41IDAgMDAxLjAxOC0xLjQxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3NiwgMTAwJSwgNTAlKSIgZD0iTTE4Ny43NTggMTc1LjQ4M2E2Ni41IDY2LjUgMCAwMDEuMDQyLTEuMzk1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjc3LCAxMDAlLCA1MCUpIiBkPSJNMTg3LjA0MyAxNzYuMzk3YTY2LjUgNjYuNSAwIDAwMS4wNjYtMS4zNzYiLz48cGF0aCBzdHJva2U9ImhzbCgyNzgsIDEwMCUsIDUwJSkiIGQ9Ik0xODYuMzEzIDE3Ny4zYTY2LjUgNjYuNSAwIDAwMS4wOS0xLjM1OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3OSwgMTAwJSwgNTAlKSIgZD0iTTE4NS41NjcgMTc4LjE4OGE2Ni41IDY2LjUgMCAwMDEuMTEzLTEuMzM4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjgwLCAxMDAlLCA1MCUpIiBkPSJNMTg0LjgwNiAxNzkuMDY0YTY2LjUgNjYuNSAwIDAwMS4xMzYtMS4zMTkiLz48cGF0aCBzdHJva2U9ImhzbCgyODEsIDEwMCUsIDUwJSkiIGQ9Ik0xODQuMDI5IDE3OS45MjdhNjYuNSA2Ni41IDAgMDAxLjE2LTEuMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4MiwgMTAwJSwgNTAlKSIgZD0iTTE4My4yMzcgMTgwLjc3NmE2Ni41IDY2LjUgMCAwMDEuMTgyLTEuMjc5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjgzLCAxMDAlLCA1MCUpIiBkPSJNMTgyLjQzMSAxODEuNjFhNjYuNSA2Ni41IDAgMDAxLjIwNC0xLjI1NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4NCwgMTAwJSwgNTAlKSIgZD0iTTE4MS42MSAxODIuNDMxYTY2LjUgNjYuNSAwIDAwMS4yMjYtMS4yMzYiLz48cGF0aCBzdHJva2U9ImhzbCgyODUsIDEwMCUsIDUwJSkiIGQ9Ik0xODAuNzc2IDE4My4yMzdhNjYuNSA2Ni41IDAgMDAxLjI0Ny0xLjIxNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4NiwgMTAwJSwgNTAlKSIgZD0iTTE3OS45MjcgMTg0LjAyOWE2Ni41IDY2LjUgMCAwMDEuMjY4LTEuMTkzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjg3LCAxMDAlLCA1MCUpIiBkPSJNMTc5LjA2NCAxODQuODA2YTY2LjUgNjYuNSAwIDAwMS4yODktMS4xNzEiLz48cGF0aCBzdHJva2U9ImhzbCgyODgsIDEwMCUsIDUwJSkiIGQ9Ik0xNzguMTg4IDE4NS41NjdhNjYuNSA2Ni41IDAgMDAxLjMxLTEuMTQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjg5LCAxMDAlLCA1MCUpIiBkPSJNMTc3LjMgMTg2LjMxM2E2Ni41IDY2LjUgMCAwMDEuMzI4LTEuMTI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjkwLCAxMDAlLCA1MCUpIiBkPSJNMTc2LjM5NyAxODcuMDQzYTY2LjUgNjYuNSAwIDAwMS4zNDgtMS4xMDEiLz48cGF0aCBzdHJva2U9ImhzbCgyOTEsIDEwMCUsIDUwJSkiIGQ9Ik0xNzUuNDgzIDE4Ny43NThhNjYuNSA2Ni41IDAgMDAxLjM2Ny0xLjA3OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDI5MiwgMTAwJSwgNTAlKSIgZD0iTTE3NC41NTYgMTg4LjQ1NmE2Ni41IDY2LjUgMCAwMDEuMzg1LTEuMDUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjkzLCAxMDAlLCA1MCUpIiBkPSJNMTczLjYxNyAxODkuMTM5YTY2LjUgNjYuNSAwIDAwMS40MDQtMS4wMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDI5NCwgMTAwJSwgNTAlKSIgZD0iTTE3Mi42NjYgMTg5LjgwNGE2Ni41IDY2LjUgMCAwMDEuNDIyLTEuMDA0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk1LCAxMDAlLCA1MCUpIiBkPSJNMTcxLjcwNCAxOTAuNDUzYTY2LjUgNjYuNSAwIDAwMS40MzktLjk4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk2LCAxMDAlLCA1MCUpIiBkPSJNMTcwLjczIDE5MS4wODZhNjYuNSA2Ni41IDAgMDAxLjQ1Ni0uOTU1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjk3LCAxMDAlLCA1MCUpIiBkPSJNMTY5Ljc0NiAxOTEuN2E2Ni41IDY2LjUgMCAwMDEuNDcyLS45MjgiLz48cGF0aCBzdHJva2U9ImhzbCgyOTgsIDEwMCUsIDUwJSkiIGQ9Ik0xNjguNzUxIDE5Mi4yOThhNjYuNSA2Ni41IDAgMDAxLjQ4OS0uOTAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjk5LCAxMDAlLCA1MCUpIiBkPSJNMTY3Ljc0NiAxOTIuODc5YTY2LjUgNjYuNSAwIDAwMS41MDQtLjg3NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwMCwgMTAwJSwgNTAlKSIgZD0iTTE2Ni43MzEgMTkzLjQ0MWE2Ni41IDY2LjUgMCAwMDEuNTE5LS44NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwMSwgMTAwJSwgNTAlKSIgZD0iTTE2NS43MDYgMTkzLjk4NmE2Ni41IDY2LjUgMCAwMDEuNTM0LS44MjQiLz48cGF0aCBzdHJva2U9ImhzbCgzMDIsIDEwMCUsIDUwJSkiIGQ9Ik0xNjQuNjcyIDE5NC41MTNhNjYuNSA2Ni41IDAgMDAxLjU0OC0uNzk3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzAzLCAxMDAlLCA1MCUpIiBkPSJNMTYzLjYyOSAxOTUuMDIyYTY2LjUgNjYuNSAwIDAwMS41NjEtLjc3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzA0LCAxMDAlLCA1MCUpIiBkPSJNMTYyLjU3NyAxOTUuNTEyYTY2LjUgNjYuNSAwIDAwMS41NzUtLjc0MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwNSwgMTAwJSwgNTAlKSIgZD0iTTE2MS41MTcgMTk1Ljk4NGE2Ni41IDY2LjUgMCAwMDEuNTg3LS43MTUiLz48cGF0aCBzdHJva2U9ImhzbCgzMDYsIDEwMCUsIDUwJSkiIGQ9Ik0xNjAuNDQ4IDE5Ni40MzhhNjYuNSA2Ni41IDAgMDAxLjYtLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwNywgMTAwJSwgNTAlKSIgZD0iTTE1OS4zNzIgMTk2Ljg3M2E2Ni41IDY2LjUgMCAwMDEuNjEyLS42NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMwOCwgMTAwJSwgNTAlKSIgZD0iTTE1OC4yODkgMTk3LjI4OWE2Ni41IDY2LjUgMCAwMDEuNjIyLS42MzEiLz48cGF0aCBzdHJva2U9ImhzbCgzMDksIDEwMCUsIDUwJSkiIGQ9Ik0xNTcuMTk4IDE5Ny42ODZhNjYuNSA2Ni41IDAgMDAxLjYzMy0uNjAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzEwLCAxMDAlLCA1MCUpIiBkPSJNMTU2LjEgMTk4LjA2NGE2Ni41IDY2LjUgMCAwMDEuNjQ0LS41NzQiLz48cGF0aCBzdHJva2U9ImhzbCgzMTEsIDEwMCUsIDUwJSkiIGQ9Ik0xNTQuOTk3IDE5OC40MjJhNjYuNSA2Ni41IDAgMDAxLjY1My0uNTQ1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzEyLCAxMDAlLCA1MCUpIiBkPSJNMTUzLjg4NyAxOTguNzYyYTY2LjUgNjYuNSAwIDAwMS42NjMtLjUxNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxMywgMTAwJSwgNTAlKSIgZD0iTTE1Mi43NzEgMTk5LjA4MWE2Ni41IDY2LjUgMCAwMDEuNjcyLS40ODciLz48cGF0aCBzdHJva2U9ImhzbCgzMTQsIDEwMCUsIDUwJSkiIGQ9Ik0xNTEuNjUgMTk5LjM4MmE2Ni41IDY2LjUgMCAwMDEuNjgtLjQ1OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxNSwgMTAwJSwgNTAlKSIgZD0iTTE1MC41MjQgMTk5LjY2M2E2Ni41IDY2LjUgMCAwMDEuNjg3LS40MjkiLz48cGF0aCBzdHJva2U9ImhzbCgzMTYsIDEwMCUsIDUwJSkiIGQ9Ik0xNDkuMzkzIDE5OS45MjRhNjYuNSA2Ni41IDAgMDAxLjY5NS0uNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxNywgMTAwJSwgNTAlKSIgZD0iTTE0OC4yNTggMjAwLjE2NWE2Ni41IDY2LjUgMCAwMDEuNzAxLS4zNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxOCwgMTAwJSwgNTAlKSIgZD0iTTE0Ny4xMTkgMjAwLjM4NmE2Ni41IDY2LjUgMCAwMDEuNzA3LS4zNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMxOSwgMTAwJSwgNTAlKSIgZD0iTTE0NS45NzYgMjAwLjU4OGE2Ni41IDY2LjUgMCAwMDEuNzEzLS4zMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMCwgMTAwJSwgNTAlKSIgZD0iTTE0NC44MyAyMDAuNzdhNjYuNSA2Ni41IDAgMDAxLjcxOC0uMjgiLz48cGF0aCBzdHJva2U9ImhzbCgzMjEsIDEwMCUsIDUwJSkiIGQ9Ik0xNDMuNjggMjAwLjkzMWE2Ni41IDY2LjUgMCAwMDEuNzIzLS4yNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMiwgMTAwJSwgNTAlKSIgZD0iTTE0Mi41MjggMjAxLjA3M2E2Ni41IDY2LjUgMCAwMDEuNzI3LS4yMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyMywgMTAwJSwgNTAlKSIgZD0iTTE0MS4zNzQgMjAxLjE5NGE2Ni41IDY2LjUgMCAwMDEuNzMtLjE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI0LCAxMDAlLCA1MCUpIiBkPSJNMTQwLjIxOCAyMDEuMjk1YTY2LjUgNjYuNSAwIDAwMS43MzMtLjE2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI1LCAxMDAlLCA1MCUpIiBkPSJNMTM5LjA2IDIwMS4zNzZhNjYuNSA2Ni41IDAgMDAxLjczNi0uMTMiLz48cGF0aCBzdHJva2U9ImhzbCgzMjYsIDEwMCUsIDUwJSkiIGQ9Ik0xMzcuOSAyMDEuNDM3YTY2LjUgNjYuNSAwIDAwMS43MzktLjA5OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDMyNywgMTAwJSwgNTAlKSIgZD0iTTEzNi43NCAyMDEuNDc3YTY2LjUgNjYuNSAwIDAwMS43NC0uMDY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzI4LCAxMDAlLCA1MCUpIiBkPSJNMTM1LjU4IDIwMS40OTdhNjYuNSA2Ni41IDAgMDAxLjc0LS4wMzgiLz48cGF0aCBzdHJva2U9ImhzbCgzMjksIDEwMCUsIDUwJSkiIGQ9Ik0xMzQuNDIgMjAxLjQ5N2E2Ni41IDY2LjUgMCAwMDEuNzQtLjAwNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDMzMCwgMTAwJSwgNTAlKSIgZD0iTTEzMy4yNiAyMDEuNDc3YTY2LjUgNjYuNSAwIDAwMS43NC4wMjMiLz48cGF0aCBzdHJva2U9ImhzbCgzMzEsIDEwMCUsIDUwJSkiIGQ9Ik0xMzIuMSAyMDEuNDM3YTY2LjUgNjYuNSAwIDAwMS43NC4wNTMiLz48cGF0aCBzdHJva2U9ImhzbCgzMzIsIDEwMCUsIDUwJSkiIGQ9Ik0xMzAuOTQgMjAxLjM3NmE2Ni41IDY2LjUgMCAwMDEuNzQuMDgzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzMzLCAxMDAlLCA1MCUpIiBkPSJNMTI5Ljc4MiAyMDEuMjk1YTY2LjUgNjYuNSAwIDAwMS43MzguMTE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM0LCAxMDAlLCA1MCUpIiBkPSJNMTI4LjYyNiAyMDEuMTk0YTY2LjUgNjYuNSAwIDAwMS43MzUuMTQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM1LCAxMDAlLCA1MCUpIiBkPSJNMTI3LjQ3MiAyMDEuMDczYTY2LjUgNjYuNSAwIDAwMS43MzIuMTc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM2LCAxMDAlLCA1MCUpIiBkPSJNMTI2LjMyIDIwMC45MzFhNjYuNSA2Ni41IDAgMDAxLjcyOS4yMDUiLz48cGF0aCBzdHJva2U9ImhzbCgzMzcsIDEwMCUsIDUwJSkiIGQ9Ik0xMjUuMTcgMjAwLjc3YTY2LjUgNjYuNSAwIDAwMS43MjYuMjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM4LCAxMDAlLCA1MCUpIiBkPSJNMTI0LjAyNCAyMDAuNTg4YTY2LjUgNjYuNSAwIDAwMS43MjEuMjY1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzM5LCAxMDAlLCA1MCUpIiBkPSJNMTIyLjg4MSAyMDAuMzg2YTY2LjUgNjYuNSAwIDAwMS43MTYuMjk1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQwLCAxMDAlLCA1MCUpIiBkPSJNMTIxLjc0MiAyMDAuMTY1YTY2LjUgNjYuNSAwIDAwMS43MS4zMjUiLz48cGF0aCBzdHJva2U9ImhzbCgzNDEsIDEwMCUsIDUwJSkiIGQ9Ik0xMjAuNjA3IDE5OS45MjRhNjYuNSA2Ni41IDAgMDAxLjcwNC4zNTQiLz48cGF0aCBzdHJva2U9ImhzbCgzNDIsIDEwMCUsIDUwJSkiIGQ9Ik0xMTkuNDc2IDE5OS42NjNhNjYuNSA2Ni41IDAgMDAxLjY5OC4zODQiLz48cGF0aCBzdHJva2U9ImhzbCgzNDMsIDEwMCUsIDUwJSkiIGQ9Ik0xMTguMzUgMTk5LjM4MmE2Ni41IDY2LjUgMCAwMDEuNjkuNDE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQ0LCAxMDAlLCA1MCUpIiBkPSJNMTE3LjIyOSAxOTkuMDgxYTY2LjUgNjYuNSAwIDAwMS42ODMuNDQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzQ1LCAxMDAlLCA1MCUpIiBkPSJNMTE2LjExMyAxOTguNzYyYTY2LjUgNjYuNSAwIDAwMS42NzYuNDcyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ2LCAxMDAlLCA1MCUpIiBkPSJNMTE1LjAwMyAxOTguNDIyYTY2LjUgNjYuNSAwIDAwMS42NjcuNTAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ3LCAxMDAlLCA1MCUpIiBkPSJNMTEzLjkgMTk4LjA2NGE2Ni41IDY2LjUgMCAwMDEuNjU3LjUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMzQ4LCAxMDAlLCA1MCUpIiBkPSJNMTEyLjgwMiAxOTcuNjg2YTY2LjUgNjYuNSAwIDAwMS42NDguNTYiLz48cGF0aCBzdHJva2U9ImhzbCgzNDksIDEwMCUsIDUwJSkiIGQ9Ik0xMTEuNzExIDE5Ny4yODlhNjYuNSA2Ni41IDAgMDAxLjYzOS41ODgiLz48cGF0aCBzdHJva2U9ImhzbCgzNTAsIDEwMCUsIDUwJSkiIGQ9Ik0xMTAuNjI4IDE5Ni44NzNhNjYuNSA2Ni41IDAgMDAxLjYyOC42MTciLz48cGF0aCBzdHJva2U9ImhzbCgzNTEsIDEwMCUsIDUwJSkiIGQ9Ik0xMDkuNTUyIDE5Ni40MzhhNjYuNSA2Ni41IDAgMDAxLjYxNy42NDUiLz48cGF0aCBzdHJva2U9ImhzbCgzNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xMDguNDgzIDE5NS45ODRhNjYuNSA2Ni41IDAgMDAxLjYwNi42NzQiLz48cGF0aCBzdHJva2U9ImhzbCgzNTMsIDEwMCUsIDUwJSkiIGQ9Ik0xMDcuNDIzIDE5NS41MTJhNjYuNSA2Ni41IDAgMDAxLjU5My43MDIiLz48cGF0aCBzdHJva2U9ImhzbCgzNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xMDYuMzcxIDE5NS4wMjJhNjYuNSA2Ni41IDAgMDAxLjU4MS43MjkiLz48cGF0aCBzdHJva2U9ImhzbCgzNTUsIDEwMCUsIDUwJSkiIGQ9Ik0xMDUuMzI4IDE5NC41MTNhNjYuNSA2Ni41IDAgMDAxLjU2OC43NTYiLz48cGF0aCBzdHJva2U9ImhzbCgzNTYsIDEwMCUsIDUwJSkiIGQ9Ik0xMDQuMjk0IDE5My45ODZhNjYuNSA2Ni41IDAgMDAxLjU1NC43ODQiLz48cGF0aCBzdHJva2U9ImhzbCgzNTcsIDEwMCUsIDUwJSkiIGQ9Ik0xMDMuMjY5IDE5My40NDFhNjYuNSA2Ni41IDAgMDAxLjU0LjgxIi8+PHBhdGggc3Ryb2tlPSJoc2woMzU4LCAxMDAlLCA1MCUpIiBkPSJNMTAyLjI1NCAxOTIuODc5YTY2LjUgNjYuNSAwIDAwMS41MjYuODM3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzU5LCAxMDAlLCA1MCUpIiBkPSJNMTAxLjI0OSAxOTIuMjk4YTY2LjUgNjYuNSAwIDAwMS41MTEuODY0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMCwgMTAwJSwgNTAlKSIgZD0iTTEwMC4yNTQgMTkxLjdhNjYuNSA2Ni41IDAgMDAxLjQ5Ni44OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEsIDEwMCUsIDUwJSkiIGQ9Ik05OS4yNyAxOTEuMDg2YTY2LjUgNjYuNSAwIDAwMS40OC45MTYiLz48cGF0aCBzdHJva2U9ImhzbCgyLCAxMDAlLCA1MCUpIiBkPSJNOTguMjk2IDE5MC40NTNhNjYuNSA2Ni41IDAgMDAxLjQ2NC45NDIiLz48cGF0aCBzdHJva2U9ImhzbCgzLCAxMDAlLCA1MCUpIiBkPSJNOTcuMzM0IDE4OS44MDRhNjYuNSA2Ni41IDAgMDAxLjQ0OC45NjgiLz48cGF0aCBzdHJva2U9ImhzbCg0LCAxMDAlLCA1MCUpIiBkPSJNOTYuMzgzIDE4OS4xMzlhNjYuNSA2Ni41IDAgMDAxLjQzLjk5MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDUsIDEwMCUsIDUwJSkiIGQ9Ik05NS40NDQgMTg4LjQ1NmE2Ni41IDY2LjUgMCAwMDEuNDEzIDEuMDE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woNiwgMTAwJSwgNTAlKSIgZD0iTTk0LjUxNyAxODcuNzU4YTY2LjUgNjYuNSAwIDAwMS4zOTUgMS4wNDIiLz48cGF0aCBzdHJva2U9ImhzbCg3LCAxMDAlLCA1MCUpIiBkPSJNOTMuNjAzIDE4Ny4wNDNhNjYuNSA2Ni41IDAgMDAxLjM3NiAxLjA2NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDgsIDEwMCUsIDUwJSkiIGQ9Ik05Mi43IDE4Ni4zMTNhNjYuNSA2Ni41IDAgMDAxLjM1OSAxLjA5Ii8+PHBhdGggc3Ryb2tlPSJoc2woOSwgMTAwJSwgNTAlKSIgZD0iTTkxLjgxMiAxODUuNTY3YTY2LjUgNjYuNSAwIDAwMS4zMzggMS4xMTMiLz48cGF0aCBzdHJva2U9ImhzbCgxMCwgMTAwJSwgNTAlKSIgZD0iTTkwLjkzNiAxODQuODA2YTY2LjUgNjYuNSAwIDAwMS4zMTkgMS4xMzYiLz48cGF0aCBzdHJva2U9ImhzbCgxMSwgMTAwJSwgNTAlKSIgZD0iTTkwLjA3MyAxODQuMDI5YTY2LjUgNjYuNSAwIDAwMS4zIDEuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxMiwgMTAwJSwgNTAlKSIgZD0iTTg5LjIyNCAxODMuMjM3YTY2LjUgNjYuNSAwIDAwMS4yNzkgMS4xODIiLz48cGF0aCBzdHJva2U9ImhzbCgxMywgMTAwJSwgNTAlKSIgZD0iTTg4LjM5IDE4Mi40MzFhNjYuNSA2Ni41IDAgMDAxLjI1NyAxLjIwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE0LCAxMDAlLCA1MCUpIiBkPSJNODcuNTY5IDE4MS42MWE2Ni41IDY2LjUgMCAwMDEuMjM2IDEuMjI2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTUsIDEwMCUsIDUwJSkiIGQ9Ik04Ni43NjMgMTgwLjc3NmE2Ni41IDY2LjUgMCAwMDEuMjE0IDEuMjQ3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTYsIDEwMCUsIDUwJSkiIGQ9Ik04NS45NzEgMTc5LjkyN2E2Ni41IDY2LjUgMCAwMDEuMTkzIDEuMjY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTcsIDEwMCUsIDUwJSkiIGQ9Ik04NS4xOTQgMTc5LjA2NGE2Ni41IDY2LjUgMCAwMDEuMTcxIDEuMjg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTgsIDEwMCUsIDUwJSkiIGQ9Ik04NC40MzMgMTc4LjE4OGE2Ni41IDY2LjUgMCAwMDEuMTQ4IDEuMzEiLz48cGF0aCBzdHJva2U9ImhzbCgxOSwgMTAwJSwgNTAlKSIgZD0iTTgzLjY4NyAxNzcuM2E2Ni41IDY2LjUgMCAwMDEuMTI1IDEuMzI4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjAsIDEwMCUsIDUwJSkiIGQ9Ik04Mi45NTcgMTc2LjM5N2E2Ni41IDY2LjUgMCAwMDEuMTAxIDEuMzQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjEsIDEwMCUsIDUwJSkiIGQ9Ik04Mi4yNDIgMTc1LjQ4M2E2Ni41IDY2LjUgMCAwMDEuMDc4IDEuMzY3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjIsIDEwMCUsIDUwJSkiIGQ9Ik04MS41NDQgMTc0LjU1NmE2Ni41IDY2LjUgMCAwMDEuMDUzIDEuMzg1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjMsIDEwMCUsIDUwJSkiIGQ9Ik04MC44NjEgMTczLjYxN2E2Ni41IDY2LjUgMCAwMDEuMDMgMS40MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyNCwgMTAwJSwgNTAlKSIgZD0iTTgwLjE5NiAxNzIuNjY2YTY2LjUgNjYuNSAwIDAwMS4wMDQgMS40MjIiLz48cGF0aCBzdHJva2U9ImhzbCgyNSwgMTAwJSwgNTAlKSIgZD0iTTc5LjU0NyAxNzEuNzA0YTY2LjUgNjYuNSAwIDAwLjk4IDEuNDM5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjYsIDEwMCUsIDUwJSkiIGQ9Ik03OC45MTQgMTcwLjczYTY2LjUgNjYuNSAwIDAwLjk1NSAxLjQ1NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI3LCAxMDAlLCA1MCUpIiBkPSJNNzguMyAxNjkuNzQ2YTY2LjUgNjYuNSAwIDAwLjkyOCAxLjQ3MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDI4LCAxMDAlLCA1MCUpIiBkPSJNNzcuNzAyIDE2OC43NTFhNjYuNSA2Ni41IDAgMDAuOTAzIDEuNDg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjksIDEwMCUsIDUwJSkiIGQ9Ik03Ny4xMjEgMTY3Ljc0NmE2Ni41IDY2LjUgMCAwMC44NzcgMS41MDQiLz48cGF0aCBzdHJva2U9ImhzbCgzMCwgMTAwJSwgNTAlKSIgZD0iTTc2LjU1OSAxNjYuNzMxYTY2LjUgNjYuNSAwIDAwLjg1IDEuNTE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzEsIDEwMCUsIDUwJSkiIGQ9Ik03Ni4wMTQgMTY1LjcwNmE2Ni41IDY2LjUgMCAwMC44MjQgMS41MzQiLz48cGF0aCBzdHJva2U9ImhzbCgzMiwgMTAwJSwgNTAlKSIgZD0iTTc1LjQ4NyAxNjQuNjcyYTY2LjUgNjYuNSAwIDAwLjc5NyAxLjU0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDMzLCAxMDAlLCA1MCUpIiBkPSJNNzQuOTc4IDE2My42MjlhNjYuNSA2Ni41IDAgMDAuNzcgMS41NjEiLz48cGF0aCBzdHJva2U9ImhzbCgzNCwgMTAwJSwgNTAlKSIgZD0iTTc0LjQ4OCAxNjIuNTc3YTY2LjUgNjYuNSAwIDAwLjc0MiAxLjU3NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDM1LCAxMDAlLCA1MCUpIiBkPSJNNzQuMDE2IDE2MS41MTdhNjYuNSA2Ni41IDAgMDAuNzE1IDEuNTg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzYsIDEwMCUsIDUwJSkiIGQ9Ik03My41NjIgMTYwLjQ0OGE2Ni41IDY2LjUgMCAwMC42ODcgMS42Ii8+PHBhdGggc3Ryb2tlPSJoc2woMzcsIDEwMCUsIDUwJSkiIGQ9Ik03My4xMjcgMTU5LjM3MmE2Ni41IDY2LjUgMCAwMC42NiAxLjYxMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDM4LCAxMDAlLCA1MCUpIiBkPSJNNzIuNzExIDE1OC4yODlhNjYuNSA2Ni41IDAgMDAuNjMxIDEuNjIyIi8+PHBhdGggc3Ryb2tlPSJoc2woMzksIDEwMCUsIDUwJSkiIGQ9Ik03Mi4zMTQgMTU3LjE5OGE2Ni41IDY2LjUgMCAwMC42MDMgMS42MzMiLz48cGF0aCBzdHJva2U9ImhzbCg0MCwgMTAwJSwgNTAlKSIgZD0iTTcxLjkzNiAxNTYuMWE2Ni41IDY2LjUgMCAwMC41NzQgMS42NDQiLz48cGF0aCBzdHJva2U9ImhzbCg0MSwgMTAwJSwgNTAlKSIgZD0iTTcxLjU3OCAxNTQuOTk3YTY2LjUgNjYuNSAwIDAwLjU0NSAxLjY1MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDQyLCAxMDAlLCA1MCUpIiBkPSJNNzEuMjM4IDE1My44ODdhNjYuNSA2Ni41IDAgMDAuNTE3IDEuNjYzIi8+PHBhdGggc3Ryb2tlPSJoc2woNDMsIDEwMCUsIDUwJSkiIGQ9Ik03MC45MTkgMTUyLjc3MWE2Ni41IDY2LjUgMCAwMC40ODcgMS42NzIiLz48cGF0aCBzdHJva2U9ImhzbCg0NCwgMTAwJSwgNTAlKSIgZD0iTTcwLjYxOCAxNTEuNjVhNjYuNSA2Ni41IDAgMDAuNDU4IDEuNjgiLz48cGF0aCBzdHJva2U9ImhzbCg0NSwgMTAwJSwgNTAlKSIgZD0iTTcwLjMzNyAxNTAuNTI0YTY2LjUgNjYuNSAwIDAwLjQyOSAxLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDQ2LCAxMDAlLCA1MCUpIiBkPSJNNzAuMDc2IDE0OS4zOTNhNjYuNSA2Ni41IDAgMDAuNCAxLjY5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDQ3LCAxMDAlLCA1MCUpIiBkPSJNNjkuODM1IDE0OC4yNThhNjYuNSA2Ni41IDAgMDAuMzcgMS43MDEiLz48cGF0aCBzdHJva2U9ImhzbCg0OCwgMTAwJSwgNTAlKSIgZD0iTTY5LjYxNCAxNDcuMTE5YTY2LjUgNjYuNSAwIDAwLjM0IDEuNzA3Ii8+PHBhdGggc3Ryb2tlPSJoc2woNDksIDEwMCUsIDUwJSkiIGQ9Ik02OS40MTIgMTQ1Ljk3NmE2Ni41IDY2LjUgMCAwMC4zMSAxLjcxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDUwLCAxMDAlLCA1MCUpIiBkPSJNNjkuMjMgMTQ0LjgzYTY2LjUgNjYuNSAwIDAwLjI4IDEuNzE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woNTEsIDEwMCUsIDUwJSkiIGQ9Ik02OS4wNjkgMTQzLjY4YTY2LjUgNjYuNSAwIDAwLjI1IDEuNzIzIi8+PHBhdGggc3Ryb2tlPSJoc2woNTIsIDEwMCUsIDUwJSkiIGQ9Ik02OC45MjcgMTQyLjUyOGE2Ni41IDY2LjUgMCAwMC4yMiAxLjcyNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDUzLCAxMDAlLCA1MCUpIiBkPSJNNjguODA2IDE0MS4zNzRhNjYuNSA2Ni41IDAgMDAuMTkgMS43MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDU0LCAxMDAlLCA1MCUpIiBkPSJNNjguNzA1IDE0MC4yMThhNjYuNSA2Ni41IDAgMDAuMTYgMS43MzMiLz48cGF0aCBzdHJva2U9ImhzbCg1NSwgMTAwJSwgNTAlKSIgZD0iTTY4LjYyNCAxMzkuMDZhNjYuNSA2Ni41IDAgMDAuMTMgMS43MzYiLz48cGF0aCBzdHJva2U9ImhzbCg1NiwgMTAwJSwgNTAlKSIgZD0iTTY4LjU2MyAxMzcuOWE2Ni41IDY2LjUgMCAwMC4wOTkgMS43MzkiLz48cGF0aCBzdHJva2U9ImhzbCg1NywgMTAwJSwgNTAlKSIgZD0iTTY4LjUyMyAxMzYuNzRhNjYuNSA2Ni41IDAgMDAuMDY4IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg1OCwgMTAwJSwgNTAlKSIgZD0iTTY4LjUwMyAxMzUuNThhNjYuNSA2Ni41IDAgMDAuMDM4IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg1OSwgMTAwJSwgNTAlKSIgZD0iTTY4LjUwMyAxMzQuNDJhNjYuNSA2Ni41IDAgMDAuMDA3IDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg2MCwgMTAwJSwgNTAlKSIgZD0iTTY4LjUyMyAxMzMuMjZBNjYuNSA2Ni41IDAgMDA2OC41IDEzNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDYxLCAxMDAlLCA1MCUpIiBkPSJNNjguNTYzIDEzMi4xYTY2LjUgNjYuNSAwIDAwLS4wNTMgMS43NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDYyLCAxMDAlLCA1MCUpIiBkPSJNNjguNjI0IDEzMC45NGE2Ni41IDY2LjUgMCAwMC0uMDgzIDEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCg2MywgMTAwJSwgNTAlKSIgZD0iTTY4LjcwNSAxMjkuNzgyYTY2LjUgNjYuNSAwIDAwLS4xMTQgMS43MzgiLz48cGF0aCBzdHJva2U9ImhzbCg2NCwgMTAwJSwgNTAlKSIgZD0iTTY4LjgwNiAxMjguNjI2YTY2LjUgNjYuNSAwIDAwLS4xNDQgMS43MzUiLz48cGF0aCBzdHJva2U9ImhzbCg2NSwgMTAwJSwgNTAlKSIgZD0iTTY4LjkyNyAxMjcuNDcyYTY2LjUgNjYuNSAwIDAwLS4xNzQgMS43MzIiLz48cGF0aCBzdHJva2U9ImhzbCg2NiwgMTAwJSwgNTAlKSIgZD0iTTY5LjA2OSAxMjYuMzJhNjYuNSA2Ni41IDAgMDAtLjIwNSAxLjcyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDY3LCAxMDAlLCA1MCUpIiBkPSJNNjkuMjMgMTI1LjE3YTY2LjUgNjYuNSAwIDAwLS4yMzQgMS43MjYiLz48cGF0aCBzdHJva2U9ImhzbCg2OCwgMTAwJSwgNTAlKSIgZD0iTTY5LjQxMiAxMjQuMDI0YTY2LjUgNjYuNSAwIDAwLS4yNjUgMS43MjEiLz48cGF0aCBzdHJva2U9ImhzbCg2OSwgMTAwJSwgNTAlKSIgZD0iTTY5LjYxNCAxMjIuODgxYTY2LjUgNjYuNSAwIDAwLS4yOTUgMS43MTYiLz48cGF0aCBzdHJva2U9ImhzbCg3MCwgMTAwJSwgNTAlKSIgZD0iTTY5LjgzNSAxMjEuNzQyYTY2LjUgNjYuNSAwIDAwLS4zMjUgMS43MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDcxLCAxMDAlLCA1MCUpIiBkPSJNNzAuMDc2IDEyMC42MDdhNjYuNSA2Ni41IDAgMDAtLjM1NCAxLjcwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDcyLCAxMDAlLCA1MCUpIiBkPSJNNzAuMzM3IDExOS40NzZhNjYuNSA2Ni41IDAgMDAtLjM4NCAxLjY5OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDczLCAxMDAlLCA1MCUpIiBkPSJNNzAuNjE4IDExOC4zNWE2Ni41IDY2LjUgMCAwMC0uNDE0IDEuNjkiLz48cGF0aCBzdHJva2U9ImhzbCg3NCwgMTAwJSwgNTAlKSIgZD0iTTcwLjkxOSAxMTcuMjI5YTY2LjUgNjYuNSAwIDAwLS40NDQgMS42ODMiLz48cGF0aCBzdHJva2U9ImhzbCg3NSwgMTAwJSwgNTAlKSIgZD0iTTcxLjIzOCAxMTYuMTEzYTY2LjUgNjYuNSAwIDAwLS40NzIgMS42NzYiLz48cGF0aCBzdHJva2U9ImhzbCg3NiwgMTAwJSwgNTAlKSIgZD0iTTcxLjU3OCAxMTUuMDAzYTY2LjUgNjYuNSAwIDAwLS41MDIgMS42NjciLz48cGF0aCBzdHJva2U9ImhzbCg3NywgMTAwJSwgNTAlKSIgZD0iTTcxLjkzNiAxMTMuOWE2Ni41IDY2LjUgMCAwMC0uNTMgMS42NTciLz48cGF0aCBzdHJva2U9ImhzbCg3OCwgMTAwJSwgNTAlKSIgZD0iTTcyLjMxNCAxMTIuODAyYTY2LjUgNjYuNSAwIDAwLS41NiAxLjY0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDc5LCAxMDAlLCA1MCUpIiBkPSJNNzIuNzExIDExMS43MTFhNjYuNSA2Ni41IDAgMDAtLjU4OCAxLjYzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDgwLCAxMDAlLCA1MCUpIiBkPSJNNzMuMTI3IDExMC42MjhhNjYuNSA2Ni41IDAgMDAtLjYxNyAxLjYyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDgxLCAxMDAlLCA1MCUpIiBkPSJNNzMuNTYyIDEwOS41NTJhNjYuNSA2Ni41IDAgMDAtLjY0NSAxLjYxNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDgyLCAxMDAlLCA1MCUpIiBkPSJNNzQuMDE2IDEwOC40ODNhNjYuNSA2Ni41IDAgMDAtLjY3NCAxLjYwNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDgzLCAxMDAlLCA1MCUpIiBkPSJNNzQuNDg4IDEwNy40MjNhNjYuNSA2Ni41IDAgMDAtLjcwMiAxLjU5MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDg0LCAxMDAlLCA1MCUpIiBkPSJNNzQuOTc4IDEwNi4zNzFhNjYuNSA2Ni41IDAgMDAtLjcyOSAxLjU4MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDg1LCAxMDAlLCA1MCUpIiBkPSJNNzUuNDg3IDEwNS4zMjhhNjYuNSA2Ni41IDAgMDAtLjc1NiAxLjU2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDg2LCAxMDAlLCA1MCUpIiBkPSJNNzYuMDE0IDEwNC4yOTRhNjYuNSA2Ni41IDAgMDAtLjc4NCAxLjU1NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDg3LCAxMDAlLCA1MCUpIiBkPSJNNzYuNTU5IDEwMy4yNjlhNjYuNSA2Ni41IDAgMDAtLjgxIDEuNTQiLz48cGF0aCBzdHJva2U9ImhzbCg4OCwgMTAwJSwgNTAlKSIgZD0iTTc3LjEyMSAxMDIuMjU0YTY2LjUgNjYuNSAwIDAwLS44MzcgMS41MjYiLz48cGF0aCBzdHJva2U9ImhzbCg4OSwgMTAwJSwgNTAlKSIgZD0iTTc3LjcwMiAxMDEuMjQ5YTY2LjUgNjYuNSAwIDAwLS44NjQgMS41MTEiLz48cGF0aCBzdHJva2U9ImhzbCg5MCwgMTAwJSwgNTAlKSIgZD0iTTc4LjMgMTAwLjI1NGE2Ni41IDY2LjUgMCAwMC0uODkgMS40OTYiLz48cGF0aCBzdHJva2U9ImhzbCg5MSwgMTAwJSwgNTAlKSIgZD0iTTc4LjkxNCA5OS4yN2E2Ni41IDY2LjUgMCAwMC0uOTE2IDEuNDgiLz48cGF0aCBzdHJva2U9ImhzbCg5MiwgMTAwJSwgNTAlKSIgZD0iTTc5LjU0NyA5OC4yOTZhNjYuNSA2Ni41IDAgMDAtLjk0MiAxLjQ2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDkzLCAxMDAlLCA1MCUpIiBkPSJNODAuMTk2IDk3LjMzNGE2Ni41IDY2LjUgMCAwMC0uOTY4IDEuNDQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woOTQsIDEwMCUsIDUwJSkiIGQ9Ik04MC44NjEgOTYuMzgzYTY2LjUgNjYuNSAwIDAwLS45OTIgMS40MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDk1LCAxMDAlLCA1MCUpIiBkPSJNODEuNTQ0IDk1LjQ0NGE2Ni41IDY2LjUgMCAwMC0xLjAxOCAxLjQxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDk2LCAxMDAlLCA1MCUpIiBkPSJNODIuMjQyIDk0LjUxN2E2Ni41IDY2LjUgMCAwMC0xLjA0MiAxLjM5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDk3LCAxMDAlLCA1MCUpIiBkPSJNODIuOTU3IDkzLjYwM2E2Ni41IDY2LjUgMCAwMC0xLjA2NiAxLjM3NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDk4LCAxMDAlLCA1MCUpIiBkPSJNODMuNjg3IDkyLjdhNjYuNSA2Ni41IDAgMDAtMS4wOSAxLjM1OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDk5LCAxMDAlLCA1MCUpIiBkPSJNODQuNDMzIDkxLjgxMmE2Ni41IDY2LjUgMCAwMC0xLjExMyAxLjMzOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwMCwgMTAwJSwgNTAlKSIgZD0iTTg1LjE5NCA5MC45MzZhNjYuNSA2Ni41IDAgMDAtMS4xMzYgMS4zMTkiLz48cGF0aCBzdHJva2U9ImhzbCgxMDEsIDEwMCUsIDUwJSkiIGQ9Ik04NS45NzEgOTAuMDczYTY2LjUgNjYuNSAwIDAwLTEuMTYgMS4zIi8+PHBhdGggc3Ryb2tlPSJoc2woMTAyLCAxMDAlLCA1MCUpIiBkPSJNODYuNzYzIDg5LjIyNGE2Ni41IDY2LjUgMCAwMC0xLjE4MiAxLjI3OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwMywgMTAwJSwgNTAlKSIgZD0iTTg3LjU2OSA4OC4zOWE2Ni41IDY2LjUgMCAwMC0xLjIwNCAxLjI1NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwNCwgMTAwJSwgNTAlKSIgZD0iTTg4LjM5IDg3LjU2OWE2Ni41IDY2LjUgMCAwMC0xLjIyNiAxLjIzNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwNSwgMTAwJSwgNTAlKSIgZD0iTTg5LjIyNCA4Ni43NjNhNjYuNSA2Ni41IDAgMDAtMS4yNDcgMS4yMTQiLz48cGF0aCBzdHJva2U9ImhzbCgxMDYsIDEwMCUsIDUwJSkiIGQ9Ik05MC4wNzMgODUuOTcxYTY2LjUgNjYuNSAwIDAwLTEuMjY4IDEuMTkzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTA3LCAxMDAlLCA1MCUpIiBkPSJNOTAuOTM2IDg1LjE5NGE2Ni41IDY2LjUgMCAwMC0xLjI4OSAxLjE3MSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwOCwgMTAwJSwgNTAlKSIgZD0iTTkxLjgxMiA4NC40MzNhNjYuNSA2Ni41IDAgMDAtMS4zMSAxLjE0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEwOSwgMTAwJSwgNTAlKSIgZD0iTTkyLjcgODMuNjg3YTY2LjUgNjYuNSAwIDAwLTEuMzI4IDEuMTI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTEwLCAxMDAlLCA1MCUpIiBkPSJNOTMuNjAzIDgyLjk1N2E2Ni41IDY2LjUgMCAwMC0xLjM0OCAxLjEwMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDExMSwgMTAwJSwgNTAlKSIgZD0iTTk0LjUxNyA4Mi4yNDJhNjYuNSA2Ni41IDAgMDAtMS4zNjcgMS4wNzgiLz48cGF0aCBzdHJva2U9ImhzbCgxMTIsIDEwMCUsIDUwJSkiIGQ9Ik05NS40NDQgODEuNTQ0YTY2LjUgNjYuNSAwIDAwLTEuMzg1IDEuMDUzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTEzLCAxMDAlLCA1MCUpIiBkPSJNOTYuMzgzIDgwLjg2MWE2Ni41IDY2LjUgMCAwMC0xLjQwNCAxLjAzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTE0LCAxMDAlLCA1MCUpIiBkPSJNOTcuMzM0IDgwLjE5NmE2Ni41IDY2LjUgMCAwMC0xLjQyMiAxLjAwNCIvPjxwYXRoIHN0cm9rZT0iaHNsKDExNSwgMTAwJSwgNTAlKSIgZD0iTTk4LjI5NiA3OS41NDdhNjYuNSA2Ni41IDAgMDAtMS40MzkuOTgiLz48cGF0aCBzdHJva2U9ImhzbCgxMTYsIDEwMCUsIDUwJSkiIGQ9Ik05OS4yNyA3OC45MTRhNjYuNSA2Ni41IDAgMDAtMS40NTYuOTU1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTE3LCAxMDAlLCA1MCUpIiBkPSJNMTAwLjI1NCA3OC4zYTY2LjUgNjYuNSAwIDAwLTEuNDcyLjkyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDExOCwgMTAwJSwgNTAlKSIgZD0iTTEwMS4yNDkgNzcuNzAyYTY2LjUgNjYuNSAwIDAwLTEuNDg5LjkwMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDExOSwgMTAwJSwgNTAlKSIgZD0iTTEwMi4yNTQgNzcuMTIxYTY2LjUgNjYuNSAwIDAwLTEuNTA0Ljg3NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEyMCwgMTAwJSwgNTAlKSIgZD0iTTEwMy4yNjkgNzYuNTU5YTY2LjUgNjYuNSAwIDAwLTEuNTE5Ljg1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIxLCAxMDAlLCA1MCUpIiBkPSJNMTA0LjI5NCA3Ni4wMTRhNjYuNSA2Ni41IDAgMDAtMS41MzQuODI0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIyLCAxMDAlLCA1MCUpIiBkPSJNMTA1LjMyOCA3NS40ODdhNjYuNSA2Ni41IDAgMDAtMS41NDguNzk3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTIzLCAxMDAlLCA1MCUpIiBkPSJNMTA2LjM3MSA3NC45NzhhNjYuNSA2Ni41IDAgMDAtMS41NjEuNzciLz48cGF0aCBzdHJva2U9ImhzbCgxMjQsIDEwMCUsIDUwJSkiIGQ9Ik0xMDcuNDIzIDc0LjQ4OGE2Ni41IDY2LjUgMCAwMC0xLjU3NS43NDIiLz48cGF0aCBzdHJva2U9ImhzbCgxMjUsIDEwMCUsIDUwJSkiIGQ9Ik0xMDguNDgzIDc0LjAxNmE2Ni41IDY2LjUgMCAwMC0xLjU4Ny43MTUiLz48cGF0aCBzdHJva2U9ImhzbCgxMjYsIDEwMCUsIDUwJSkiIGQ9Ik0xMDkuNTUyIDczLjU2MmE2Ni41IDY2LjUgMCAwMC0xLjYuNjg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTI3LCAxMDAlLCA1MCUpIiBkPSJNMTEwLjYyOCA3My4xMjdhNjYuNSA2Ni41IDAgMDAtMS42MTIuNjYiLz48cGF0aCBzdHJva2U9ImhzbCgxMjgsIDEwMCUsIDUwJSkiIGQ9Ik0xMTEuNzExIDcyLjcxMWE2Ni41IDY2LjUgMCAwMC0xLjYyMi42MzEiLz48cGF0aCBzdHJva2U9ImhzbCgxMjksIDEwMCUsIDUwJSkiIGQ9Ik0xMTIuODAyIDcyLjMxNGE2Ni41IDY2LjUgMCAwMC0xLjYzMy42MDMiLz48cGF0aCBzdHJva2U9ImhzbCgxMzAsIDEwMCUsIDUwJSkiIGQ9Ik0xMTMuOSA3MS45MzZhNjYuNSA2Ni41IDAgMDAtMS42NDQuNTc0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMxLCAxMDAlLCA1MCUpIiBkPSJNMTE1LjAwMyA3MS41NzhhNjYuNSA2Ni41IDAgMDAtMS42NTMuNTQ1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMyLCAxMDAlLCA1MCUpIiBkPSJNMTE2LjExMyA3MS4yMzhhNjYuNSA2Ni41IDAgMDAtMS42NjMuNTE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTMzLCAxMDAlLCA1MCUpIiBkPSJNMTE3LjIyOSA3MC45MTlhNjYuNSA2Ni41IDAgMDAtMS42NzIuNDg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTM0LCAxMDAlLCA1MCUpIiBkPSJNMTE4LjM1IDcwLjYxOGE2Ni41IDY2LjUgMCAwMC0xLjY4LjQ1OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzNSwgMTAwJSwgNTAlKSIgZD0iTTExOS40NzYgNzAuMzM3YTY2LjUgNjYuNSAwIDAwLTEuNjg3LjQyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzNiwgMTAwJSwgNTAlKSIgZD0iTTEyMC42MDcgNzAuMDc2YTY2LjUgNjYuNSAwIDAwLTEuNjk1LjQiLz48cGF0aCBzdHJva2U9ImhzbCgxMzcsIDEwMCUsIDUwJSkiIGQ9Ik0xMjEuNzQyIDY5LjgzNWE2Ni41IDY2LjUgMCAwMC0xLjcwMS4zNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDEzOCwgMTAwJSwgNTAlKSIgZD0iTTEyMi44ODEgNjkuNjE0YTY2LjUgNjYuNSAwIDAwLTEuNzA3LjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTM5LCAxMDAlLCA1MCUpIiBkPSJNMTI0LjAyNCA2OS40MTJhNjYuNSA2Ni41IDAgMDAtMS43MTMuMzEiLz48cGF0aCBzdHJva2U9ImhzbCgxNDAsIDEwMCUsIDUwJSkiIGQ9Ik0xMjUuMTcgNjkuMjNhNjYuNSA2Ni41IDAgMDAtMS43MTguMjgiLz48cGF0aCBzdHJva2U9ImhzbCgxNDEsIDEwMCUsIDUwJSkiIGQ9Ik0xMjYuMzIgNjkuMDY5YTY2LjUgNjYuNSAwIDAwLTEuNzIzLjI1Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQyLCAxMDAlLCA1MCUpIiBkPSJNMTI3LjQ3MiA2OC45MjdhNjYuNSA2Ni41IDAgMDAtMS43MjcuMjIiLz48cGF0aCBzdHJva2U9ImhzbCgxNDMsIDEwMCUsIDUwJSkiIGQ9Ik0xMjguNjI2IDY4LjgwNmE2Ni41IDY2LjUgMCAwMC0xLjczLjE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQ0LCAxMDAlLCA1MCUpIiBkPSJNMTI5Ljc4MiA2OC43MDVhNjYuNSA2Ni41IDAgMDAtMS43MzMuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxNDUsIDEwMCUsIDUwJSkiIGQ9Ik0xMzAuOTQgNjguNjI0YTY2LjUgNjYuNSAwIDAwLTEuNzM2LjEzIi8+PHBhdGggc3Ryb2tlPSJoc2woMTQ2LCAxMDAlLCA1MCUpIiBkPSJNMTMyLjEgNjguNTYzYTY2LjUgNjYuNSAwIDAwLTEuNzM5LjA5OSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE0NywgMTAwJSwgNTAlKSIgZD0iTTEzMy4yNiA2OC41MjNhNjYuNSA2Ni41IDAgMDAtMS43NC4wNjgiLz48cGF0aCBzdHJva2U9ImhzbCgxNDgsIDEwMCUsIDUwJSkiIGQ9Ik0xMzQuNDIgNjguNTAzYTY2LjUgNjYuNSAwIDAwLTEuNzQuMDM4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTQ5LCAxMDAlLCA1MCUpIiBkPSJNMTM1LjU4IDY4LjUwM2E2Ni41IDY2LjUgMCAwMC0xLjc0LjAwNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MCwgMTAwJSwgNTAlKSIgZD0iTTEzNi43NCA2OC41MjNBNjYuNSA2Ni41IDAgMDAxMzUgNjguNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MSwgMTAwJSwgNTAlKSIgZD0iTTEzNy45IDY4LjU2M2E2Ni41IDY2LjUgMCAwMC0xLjc0LS4wNTMiLz48cGF0aCBzdHJva2U9ImhzbCgxNTIsIDEwMCUsIDUwJSkiIGQ9Ik0xMzkuMDYgNjguNjI0YTY2LjUgNjYuNSAwIDAwLTEuNzQtLjA4MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1MywgMTAwJSwgNTAlKSIgZD0iTTE0MC4yMTggNjguNzA1YTY2LjUgNjYuNSAwIDAwLTEuNzM4LS4xMTQiLz48cGF0aCBzdHJva2U9ImhzbCgxNTQsIDEwMCUsIDUwJSkiIGQ9Ik0xNDEuMzc0IDY4LjgwNmE2Ni41IDY2LjUgMCAwMC0xLjczNS0uMTQ0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTU1LCAxMDAlLCA1MCUpIiBkPSJNMTQyLjUyOCA2OC45MjdhNjYuNSA2Ni41IDAgMDAtMS43MzItLjE3NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1NiwgMTAwJSwgNTAlKSIgZD0iTTE0My42OCA2OS4wNjlhNjYuNSA2Ni41IDAgMDAtMS43MjktLjIwNSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1NywgMTAwJSwgNTAlKSIgZD0iTTE0NC44MyA2OS4yM2E2Ni41IDY2LjUgMCAwMC0xLjcyNi0uMjM0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTU4LCAxMDAlLCA1MCUpIiBkPSJNMTQ1Ljk3NiA2OS40MTJhNjYuNSA2Ni41IDAgMDAtMS43MjEtLjI2NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE1OSwgMTAwJSwgNTAlKSIgZD0iTTE0Ny4xMTkgNjkuNjE0YTY2LjUgNjYuNSAwIDAwLTEuNzE2LS4yOTUiLz48cGF0aCBzdHJva2U9ImhzbCgxNjAsIDEwMCUsIDUwJSkiIGQ9Ik0xNDguMjU4IDY5LjgzNWE2Ni41IDY2LjUgMCAwMC0xLjcxLS4zMjUiLz48cGF0aCBzdHJva2U9ImhzbCgxNjEsIDEwMCUsIDUwJSkiIGQ9Ik0xNDkuMzkzIDcwLjA3NmE2Ni41IDY2LjUgMCAwMC0xLjcwNC0uMzU0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTYyLCAxMDAlLCA1MCUpIiBkPSJNMTUwLjUyNCA3MC4zMzdhNjYuNSA2Ni41IDAgMDAtMS42OTgtLjM4NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2MywgMTAwJSwgNTAlKSIgZD0iTTE1MS42NSA3MC42MThhNjYuNSA2Ni41IDAgMDAtMS42OS0uNDE0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTY0LCAxMDAlLCA1MCUpIiBkPSJNMTUyLjc3MSA3MC45MTlhNjYuNSA2Ni41IDAgMDAtMS42ODMtLjQ0NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2NSwgMTAwJSwgNTAlKSIgZD0iTTE1My44ODcgNzEuMjM4YTY2LjUgNjYuNSAwIDAwLTEuNjc2LS40NzIiLz48cGF0aCBzdHJva2U9ImhzbCgxNjYsIDEwMCUsIDUwJSkiIGQ9Ik0xNTQuOTk3IDcxLjU3OGE2Ni41IDY2LjUgMCAwMC0xLjY2Ny0uNTAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTY3LCAxMDAlLCA1MCUpIiBkPSJNMTU2LjEgNzEuOTM2YTY2LjUgNjYuNSAwIDAwLTEuNjU3LS41MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2OCwgMTAwJSwgNTAlKSIgZD0iTTE1Ny4xOTggNzIuMzE0YTY2LjUgNjYuNSAwIDAwLTEuNjQ4LS41NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE2OSwgMTAwJSwgNTAlKSIgZD0iTTE1OC4yODkgNzIuNzExYTY2LjUgNjYuNSAwIDAwLTEuNjM5LS41ODgiLz48cGF0aCBzdHJva2U9ImhzbCgxNzAsIDEwMCUsIDUwJSkiIGQ9Ik0xNTkuMzcyIDczLjEyN2E2Ni41IDY2LjUgMCAwMC0xLjYyOC0uNjE3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTcxLCAxMDAlLCA1MCUpIiBkPSJNMTYwLjQ0OCA3My41NjJhNjYuNSA2Ni41IDAgMDAtMS42MTctLjY0NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE3MiwgMTAwJSwgNTAlKSIgZD0iTTE2MS41MTcgNzQuMDE2YTY2LjUgNjYuNSAwIDAwLTEuNjA2LS42NzQiLz48cGF0aCBzdHJva2U9ImhzbCgxNzMsIDEwMCUsIDUwJSkiIGQ9Ik0xNjIuNTc3IDc0LjQ4OGE2Ni41IDY2LjUgMCAwMC0xLjU5My0uNzAyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTc0LCAxMDAlLCA1MCUpIiBkPSJNMTYzLjYyOSA3NC45NzhhNjYuNSA2Ni41IDAgMDAtMS41ODEtLjcyOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE3NSwgMTAwJSwgNTAlKSIgZD0iTTE2NC42NzIgNzUuNDg3YTY2LjUgNjYuNSAwIDAwLTEuNTY4LS43NTYiLz48cGF0aCBzdHJva2U9ImhzbCgxNzYsIDEwMCUsIDUwJSkiIGQ9Ik0xNjUuNzA2IDc2LjAxNGE2Ni41IDY2LjUgMCAwMC0xLjU1NC0uNzg0Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTc3LCAxMDAlLCA1MCUpIiBkPSJNMTY2LjczMSA3Ni41NTlhNjYuNSA2Ni41IDAgMDAtMS41NC0uODEiLz48cGF0aCBzdHJva2U9ImhzbCgxNzgsIDEwMCUsIDUwJSkiIGQ9Ik0xNjcuNzQ2IDc3LjEyMWE2Ni41IDY2LjUgMCAwMC0xLjUyNi0uODM3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTc5LCAxMDAlLCA1MCUpIiBkPSJNMTY4Ljc1MSA3Ny43MDJhNjYuNSA2Ni41IDAgMDAtMS41MTEtLjg2NCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4MCwgMTAwJSwgNTAlKSIgZD0iTTE2OS43NDYgNzguM2E2Ni41IDY2LjUgMCAwMC0xLjQ5Ni0uODkiLz48cGF0aCBzdHJva2U9ImhzbCgxODEsIDEwMCUsIDUwJSkiIGQ9Ik0xNzAuNzMgNzguOTE0YTY2LjUgNjYuNSAwIDAwLTEuNDgtLjkxNiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4MiwgMTAwJSwgNTAlKSIgZD0iTTE3MS43MDQgNzkuNTQ3YTY2LjUgNjYuNSAwIDAwLTEuNDY0LS45NDIiLz48cGF0aCBzdHJva2U9ImhzbCgxODMsIDEwMCUsIDUwJSkiIGQ9Ik0xNzIuNjY2IDgwLjE5NmE2Ni41IDY2LjUgMCAwMC0xLjQ0OC0uOTY4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTg0LCAxMDAlLCA1MCUpIiBkPSJNMTczLjYxNyA4MC44NjFhNjYuNSA2Ni41IDAgMDAtMS40My0uOTkyIi8+PHBhdGggc3Ryb2tlPSJoc2woMTg1LCAxMDAlLCA1MCUpIiBkPSJNMTc0LjU1NiA4MS41NDRhNjYuNSA2Ni41IDAgMDAtMS40MTMtMS4wMTgiLz48cGF0aCBzdHJva2U9ImhzbCgxODYsIDEwMCUsIDUwJSkiIGQ9Ik0xNzUuNDgzIDgyLjI0MmE2Ni41IDY2LjUgMCAwMC0xLjM5NS0xLjA0MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE4NywgMTAwJSwgNTAlKSIgZD0iTTE3Ni4zOTcgODIuOTU3YTY2LjUgNjYuNSAwIDAwLTEuMzc2LTEuMDY2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTg4LCAxMDAlLCA1MCUpIiBkPSJNMTc3LjMgODMuNjg3YTY2LjUgNjYuNSAwIDAwLTEuMzU5LTEuMDkiLz48cGF0aCBzdHJva2U9ImhzbCgxODksIDEwMCUsIDUwJSkiIGQ9Ik0xNzguMTg4IDg0LjQzM2E2Ni41IDY2LjUgMCAwMC0xLjMzOC0xLjExMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5MCwgMTAwJSwgNTAlKSIgZD0iTTE3OS4wNjQgODUuMTk0YTY2LjUgNjYuNSAwIDAwLTEuMzE5LTEuMTM2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTkxLCAxMDAlLCA1MCUpIiBkPSJNMTc5LjkyNyA4NS45NzFhNjYuNSA2Ni41IDAgMDAtMS4zLTEuMTYiLz48cGF0aCBzdHJva2U9ImhzbCgxOTIsIDEwMCUsIDUwJSkiIGQ9Ik0xODAuNzc2IDg2Ljc2M2E2Ni41IDY2LjUgMCAwMC0xLjI3OS0xLjE4MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5MywgMTAwJSwgNTAlKSIgZD0iTTE4MS42MSA4Ny41NjlhNjYuNSA2Ni41IDAgMDAtMS4yNTctMS4yMDQiLz48cGF0aCBzdHJva2U9ImhzbCgxOTQsIDEwMCUsIDUwJSkiIGQ9Ik0xODIuNDMxIDg4LjM5YTY2LjUgNjYuNSAwIDAwLTEuMjM2LTEuMjI2Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTk1LCAxMDAlLCA1MCUpIiBkPSJNMTgzLjIzNyA4OS4yMjRhNjYuNSA2Ni41IDAgMDAtMS4yMTQtMS4yNDciLz48cGF0aCBzdHJva2U9ImhzbCgxOTYsIDEwMCUsIDUwJSkiIGQ9Ik0xODQuMDI5IDkwLjA3M2E2Ni41IDY2LjUgMCAwMC0xLjE5My0xLjI2OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5NywgMTAwJSwgNTAlKSIgZD0iTTE4NC44MDYgOTAuOTM2YTY2LjUgNjYuNSAwIDAwLTEuMTcxLTEuMjg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMTk4LCAxMDAlLCA1MCUpIiBkPSJNMTg1LjU2NyA5MS44MTJhNjYuNSA2Ni41IDAgMDAtMS4xNDgtMS4zMSIvPjxwYXRoIHN0cm9rZT0iaHNsKDE5OSwgMTAwJSwgNTAlKSIgZD0iTTE4Ni4zMTMgOTIuN2E2Ni41IDY2LjUgMCAwMC0xLjEyNS0xLjMyOCIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwMCwgMTAwJSwgNTAlKSIgZD0iTTE4Ny4wNDMgOTMuNjAzYTY2LjUgNjYuNSAwIDAwLTEuMTAxLTEuMzQ4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjAxLCAxMDAlLCA1MCUpIiBkPSJNMTg3Ljc1OCA5NC41MTdhNjYuNSA2Ni41IDAgMDAtMS4wNzgtMS4zNjciLz48cGF0aCBzdHJva2U9ImhzbCgyMDIsIDEwMCUsIDUwJSkiIGQ9Ik0xODguNDU2IDk1LjQ0NGE2Ni41IDY2LjUgMCAwMC0xLjA1My0xLjM4NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwMywgMTAwJSwgNTAlKSIgZD0iTTE4OS4xMzkgOTYuMzgzYTY2LjUgNjYuNSAwIDAwLTEuMDMtMS40MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMDQsIDEwMCUsIDUwJSkiIGQ9Ik0xODkuODA0IDk3LjMzNGE2Ni41IDY2LjUgMCAwMC0xLjAwNC0xLjQyMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNSwgMTAwJSwgNTAlKSIgZD0iTTE5MC40NTMgOTguMjk2YTY2LjUgNjYuNSAwIDAwLS45OC0xLjQzOSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNiwgMTAwJSwgNTAlKSIgZD0iTTE5MS4wODYgOTkuMjdhNjYuNSA2Ni41IDAgMDAtLjk1NS0xLjQ1NiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwNywgMTAwJSwgNTAlKSIgZD0iTTE5MS43IDEwMC4yNTRhNjYuNSA2Ni41IDAgMDAtLjkyOC0xLjQ3MiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIwOCwgMTAwJSwgNTAlKSIgZD0iTTE5Mi4yOTggMTAxLjI0OWE2Ni41IDY2LjUgMCAwMC0uOTAzLTEuNDg5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjA5LCAxMDAlLCA1MCUpIiBkPSJNMTkyLjg3OSAxMDIuMjU0YTY2LjUgNjYuNSAwIDAwLS44NzctMS41MDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMTAsIDEwMCUsIDUwJSkiIGQ9Ik0xOTMuNDQxIDEwMy4yNjlhNjYuNSA2Ni41IDAgMDAtLjg1LTEuNTE5Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjExLCAxMDAlLCA1MCUpIiBkPSJNMTkzLjk4NiAxMDQuMjk0YTY2LjUgNjYuNSAwIDAwLS44MjQtMS41MzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMTIsIDEwMCUsIDUwJSkiIGQ9Ik0xOTQuNTEzIDEwNS4zMjhhNjYuNSA2Ni41IDAgMDAtLjc5Ny0xLjU0OCIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxMywgMTAwJSwgNTAlKSIgZD0iTTE5NS4wMjIgMTA2LjM3MWE2Ni41IDY2LjUgMCAwMC0uNzctMS41NjEiLz48cGF0aCBzdHJva2U9ImhzbCgyMTQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTUuNTEyIDEwNy40MjNhNjYuNSA2Ni41IDAgMDAtLjc0Mi0xLjU3NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxNSwgMTAwJSwgNTAlKSIgZD0iTTE5NS45ODQgMTA4LjQ4M2E2Ni41IDY2LjUgMCAwMC0uNzE1LTEuNTg3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjE2LCAxMDAlLCA1MCUpIiBkPSJNMTk2LjQzOCAxMDkuNTUyYTY2LjUgNjYuNSAwIDAwLS42ODctMS42Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjE3LCAxMDAlLCA1MCUpIiBkPSJNMTk2Ljg3MyAxMTAuNjI4YTY2LjUgNjYuNSAwIDAwLS42Ni0xLjYxMiIvPjxwYXRoIHN0cm9rZT0iaHNsKDIxOCwgMTAwJSwgNTAlKSIgZD0iTTE5Ny4yODkgMTExLjcxMWE2Ni41IDY2LjUgMCAwMC0uNjMxLTEuNjIyIi8+PHBhdGggc3Ryb2tlPSJoc2woMjE5LCAxMDAlLCA1MCUpIiBkPSJNMTk3LjY4NiAxMTIuODAyYTY2LjUgNjYuNSAwIDAwLS42MDMtMS42MzMiLz48cGF0aCBzdHJva2U9ImhzbCgyMjAsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguMDY0IDExMy45YTY2LjUgNjYuNSAwIDAwLS41NzQtMS42NDQiLz48cGF0aCBzdHJva2U9ImhzbCgyMjEsIDEwMCUsIDUwJSkiIGQ9Ik0xOTguNDIyIDExNS4wMDNhNjYuNSA2Ni41IDAgMDAtLjU0NS0xLjY1MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyMiwgMTAwJSwgNTAlKSIgZD0iTTE5OC43NjIgMTE2LjExM2E2Ni41IDY2LjUgMCAwMC0uNTE3LTEuNjYzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjIzLCAxMDAlLCA1MCUpIiBkPSJNMTk5LjA4MSAxMTcuMjI5YTY2LjUgNjYuNSAwIDAwLS40ODctMS42NzIiLz48cGF0aCBzdHJva2U9ImhzbCgyMjQsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuMzgyIDExOC4zNWE2Ni41IDY2LjUgMCAwMC0uNDU4LTEuNjgiLz48cGF0aCBzdHJva2U9ImhzbCgyMjUsIDEwMCUsIDUwJSkiIGQ9Ik0xOTkuNjYzIDExOS40NzZhNjYuNSA2Ni41IDAgMDAtLjQyOS0xLjY4NyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyNiwgMTAwJSwgNTAlKSIgZD0iTTE5OS45MjQgMTIwLjYwN2E2Ni41IDY2LjUgMCAwMC0uNC0xLjY5NSIvPjxwYXRoIHN0cm9rZT0iaHNsKDIyNywgMTAwJSwgNTAlKSIgZD0iTTIwMC4xNjUgMTIxLjc0MmE2Ni41IDY2LjUgMCAwMC0uMzctMS43MDEiLz48cGF0aCBzdHJva2U9ImhzbCgyMjgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDAuMzg2IDEyMi44ODFhNjYuNSA2Ni41IDAgMDAtLjM0LTEuNzA3Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjI5LCAxMDAlLCA1MCUpIiBkPSJNMjAwLjU4OCAxMjQuMDI0YTY2LjUgNjYuNSAwIDAwLS4zMS0xLjcxMyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzMCwgMTAwJSwgNTAlKSIgZD0iTTIwMC43NyAxMjUuMTdhNjYuNSA2Ni41IDAgMDAtLjI4LTEuNzE4Ii8+PHBhdGggc3Ryb2tlPSJoc2woMjMxLCAxMDAlLCA1MCUpIiBkPSJNMjAwLjkzMSAxMjYuMzJhNjYuNSA2Ni41IDAgMDAtLjI1LTEuNzIzIi8+PHBhdGggc3Ryb2tlPSJoc2woMjMyLCAxMDAlLCA1MCUpIiBkPSJNMjAxLjA3MyAxMjcuNDcyYTY2LjUgNjYuNSAwIDAwLS4yMi0xLjcyNyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzMywgMTAwJSwgNTAlKSIgZD0iTTIwMS4xOTQgMTI4LjYyNmE2Ni41IDY2LjUgMCAwMC0uMTktMS43MyIvPjxwYXRoIHN0cm9rZT0iaHNsKDIzNCwgMTAwJSwgNTAlKSIgZD0iTTIwMS4yOTUgMTI5Ljc4MmE2Ni41IDY2LjUgMCAwMC0uMTYtMS43MzMiLz48cGF0aCBzdHJva2U9ImhzbCgyMzUsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuMzc2IDEzMC45NGE2Ni41IDY2LjUgMCAwMC0uMTMtMS43MzYiLz48cGF0aCBzdHJva2U9ImhzbCgyMzYsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDM3IDEzMi4xYTY2LjUgNjYuNSAwIDAwLS4wOTktMS43MzkiLz48cGF0aCBzdHJva2U9ImhzbCgyMzcsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDc3IDEzMy4yNmE2Ni41IDY2LjUgMCAwMC0uMDY4LTEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMzgsIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDk3IDEzNC40MmE2Ni41IDY2LjUgMCAwMC0uMDM4LTEuNzQiLz48cGF0aCBzdHJva2U9ImhzbCgyMzksIDEwMCUsIDUwJSkiIGQ9Ik0yMDEuNDk3IDEzNS41OGE2Ni41IDY2LjUgMCAwMC0uMDA3LTEuNzQiLz48L2c+PGNpcmNsZSBjeD0iMTM1IiBjeT0iMTM1IiByPSIxMzMiIGZpbGw9InVybCgjYSkiIGNsYXNzPSJJcm9XaGVlbFNhdHVyYXRpb24iLz48Y2lyY2xlIGN4PSIxMzUiIGN5PSIxMzUiIHI9IjEzMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIGNsYXNzPSJJcm9XaGVlbEJvcmRlciIvPjwvc3ZnPg=='; - - this.width = this.offsetWidth; - this.height = this.offsetHeight; - }, - mousedown: function (event) { - var cvs = this, - ctx = this.getContext('2d'); - - function update(x, y) { - var cursor = cvs.nextSibling.nextSibling; - - cursor.style.left = x + cvs.offsetLeft + 'px'; - cursor.style.top = y + cvs.offsetTop + 'px'; - } - - function mousemove(event) { - update(event.layerX, event.layerY); - } - - function mouseup(event) { - cvs.parentNode.data = { - rgb: ctx.getImageData(event.layerX, event.layerY, 1, 1).data, - cursor: [event.layerX, event.layerY] - }; - - this.removeEventListener('mousemove', mousemove); - this.removeEventListener('mouseup', mouseup); - } - - this.addEventListener('mousemove', mousemove); - this.addEventListener('mouseup', mouseup); - - update(event.layerX, event.layerY); - - cvs.nextSibling.nextSibling.hidden = false; - } - } - }, - shadow: { - component: 'div', - class: 'satus-color-picker__dim' - }, - cursor: { - component: 'div', - class: 'satus-color-picker__cursor', - attr: { - hidden: true - }, - on: { - render: function () { - var data = this.parentNode.data; - - if (data.cursor) { - this.style.left = data.cursor[0] + 'px'; - this.style.top = data.cursor[1] + 'px'; - - this.hidden = false; - } - } - } - }, - slider: { - component: 'slider', - class: 'satus-color-picker__slider', - step: .01, - on: { - render: function () { - var data = this.parentNode.data; - - function rgbToHsv(r, g, b) { - r /= 255, g /= 255, b /= 255; - - var max = Math.max(r, g, b), - min = Math.min(r, g, b); - var h, s, v = max; - - var d = max - min; - s = max == 0 ? 0 : d / max; - - if (max == min) { - h = 0; // achromatic - } else { - switch (max) { - case r: - h = (g - b) / d + (g < b ? 6 : 0); - break; - case g: - h = (b - r) / d + 2; - break; - case b: - h = (r - g) / d + 4; - break; - } - - h /= 6; - } - - return [h, s, v]; - } - - this.value = 1 - rgbToHsv(data.rgb[0], data.rgb[1], data.rgb[2])[2]; - }, - change: function () { - this.previousSibling.previousSibling.style.opacity = this.value; - } - } - }, - actions: { - component: 'section', - class: 'satus-color-picker__actions', - - reset: { - component: 'button', - text: 'reset', - - on: { - click: function () { - var modal = this.parentNode.parentNode.parentNode, - component = modal.parentComponent; - - component.data = component.skeleton.value; - - if (component.storage) { - satus.storage.set(component.storage, false); - } - - var data = component.skeleton.value || { - rgb: [0, 0, 0] - }; - - component.valueElement.style.backgroundColor = 'rgb(' + data.rgb[0] + ',' + data.rgb[1] + ',' + data.rgb[2] + ')'; - - modal.close(); - - component.colorValue = data; - - component.dispatchEvent(new CustomEvent('change')); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - - on: { - click: function () { - var modal = this.parentNode.parentNode.parentNode; - - modal.close(); - } - } - }, - ok: { - component: 'button', - text: 'OK', - - on: { - click: function () { - var modal = this.parentNode.parentNode.parentNode, - data = this.parentNode.parentNode.data; - - function rgbToHsv(r, g, b) { - r /= 255, g /= 255, b /= 255; - - var max = Math.max(r, g, b), - min = Math.min(r, g, b); - var h, s, v = max; - - var d = max - min; - s = max == 0 ? 0 : d / max; - - if (max == min) { - h = 0; // achromatic - } else { - switch (max) { - case r: - h = (g - b) / d + (g < b ? 6 : 0); - break; - case g: - h = (b - r) / d + 2; - break; - case b: - h = (r - g) / d + 4; - break; - } - - h /= 6; - } - - return [h, s, v]; - } - - function hsvToRgb(h, s, v) { - var r, g, b; - - var i = Math.floor(h * 6); - var f = h * 6 - i; - var p = v * (1 - s); - var q = v * (1 - f * s); - var t = v * (1 - (1 - f) * s); - - switch (i % 6) { - case 0: - r = v, g = t, b = p; - break; - case 1: - r = q, g = v, b = p; - break; - case 2: - r = p, g = v, b = t; - break; - case 3: - r = p, g = q, b = v; - break; - case 4: - r = t, g = p, b = v; - break; - case 5: - r = v, g = p, b = q; - break; - } - - return [r * 255, g * 255, b * 255]; - } - - var hsv = rgbToHsv(data.rgb[0], data.rgb[1], data.rgb[2]); - - hsv[2] = 1 - this.parentNode.previousSibling.value; - - data.rgb = hsvToRgb(hsv[0], hsv[1], hsv[2]); - - modal.parentComponent.valueElement.style.backgroundColor = 'rgb(' + data.rgb[0] + ',' + data.rgb[1] + ',' + data.rgb[2] + ')'; - - if (modal.parentComponent.storage) { - satus.storage.set(modal.parentComponent.storage, data); - } - - modal.parentComponent.colorValue = data; - - modal.close(); - - modal.parentComponent.dispatchEvent(new CustomEvent('change')); - } - } - } - } - }); - }); - - component.appendChild(component_value); - - return component; -}; -/*-------------------------------------------------------------- ->>> TABS ---------------------------------------------------------------*/ - -satus.components.tabs = function (skeleton) { - var component = document.createElement('div'), - selection = document.createElement('div'); - - selection.className = 'satus-tabs__selection'; - - component.appendChild(selection); - - component.selection = selection; - - for (var i = 0, l = skeleton.items.length; i < l; i++) { - var item = skeleton.items[i], - button = document.createElement('button'); - - button.className = 'satus-tabs__button'; - button.value = item; - - satus.text(button, item); - - button.addEventListener('click', function () { - var component = this.parentNode; - - component.value = this.value; - - component.selection.style.left = this.offsetLeft + 'px'; - - component.dispatchEvent(new CustomEvent('change')); - }); - - if (skeleton.value === item) { - selection.style.left = i * 50 + '%'; - } - - component.appendChild(button); - } - - return component; -}; -/*-------------------------------------------------------------- ->>> RADIO ---------------------------------------------------------------*/ - -satus.components.radio = function (skeleton) { - var component = document.createElement('label'), - content = document.createElement('span'), - radio = document.createElement('input'), - value = satus.storage.get(skeleton.group); - - component.inner = content; - - radio.type = 'radio'; - - if (skeleton.group) { - radio.name = skeleton.group; - } - - if (skeleton.value) { - radio.value = skeleton.value; - } - - if (satus.isset(value)) { - radio.checked = value === skeleton.value; - } - - radio.addEventListener('change', function () { - satus.storage.set(this.name, this.value); - }); - - component.appendChild(content); - component.appendChild(radio); - - return component; -}; -/*-------------------------------------------------------------- ->>> LIST ---------------------------------------------------------------*/ - -satus.components.list = function (skeleton) { - var ul = document.createElement('ul'); - - for (var i = 0, l = skeleton.items.length; i < l; i++) { - var li = document.createElement('li'), - item = skeleton.items[i]; - - li.className = 'satus-list__item'; - - for (var j = 0, k = item.length; j < k; j++) { - var child = item[j]; - - if (typeof child === 'string') { - var span = document.createElement('span'); - - span.textContent = satus.locale.get(child); - - li.appendChild(span); - } else { - satus.render(child, li); - } - } - - ul.appendChild(li); - } - - return ul; -}; -/*-------------------------------------------------------------- ->>> MODAL ---------------------------------------------------------------*/ - -satus.components.modal = function (skeleton) { - var component = document.createElement('div'), - scrim = document.createElement('div'), - surface = document.createElement('div'); - - scrim.className = 'satus-modal__scrim'; - surface.className = 'satus-modal__surface'; - - component.close = function () { - var component = this, - component_surface = this.children[1]; - - this.classList.add('satus-modal--closing'); - - setTimeout(function () { - component.remove(); - - component.dispatchEvent(new CustomEvent('close')); - }, satus.getAnimationDuration(component_surface)); - }; - - scrim.addEventListener('click', function () { - this.parentNode.close(); - }); - - component.appendChild(scrim); - component.appendChild(surface); - - component.inner = surface; - - return component; -}; -/*-------------------------------------------------------------- ->>> SWITCH ---------------------------------------------------------------*/ - -satus.components.switch = function (skeleton) { - var component = document.createElement('button'), - component_content = document.createElement('span'), - component_thumb = document.createElement('i'), - value = satus.storage.get(skeleton.storage); - - component.inner = component_content; - - if (satus.isset(value)) { - component.dataset.value = value; - } else if (skeleton.hasOwnProperty('value')) { - component.dataset.value = skeleton.value; - } - - component.addEventListener('click', function () { - if (this.dataset.value === 'true') { - this.dataset.value = 'false'; - } else { - this.dataset.value = 'true'; - } - - this.change(this.dataset.value === 'true'); - }); - - component.appendChild(component_content); - component.appendChild(component_thumb); - - return component; -}; -/*-------------------------------------------------------------- ->>> SLIDER: ----------------------------------------------------------------- -# ---------------------------------------------------------------*/ - -satus.components.slider = function (skeleton) { - var component = document.createElement('div'), - container = document.createElement('div'), - track_container = document.createElement('div'), - track = document.createElement('div'), - ring = document.createElement('div'), - thumb = document.createElement('div'), - range = document.createElement('input'), - value = satus.storage.get(skeleton.storage); - - container.className = 'satus-slider__container'; - track_container.className = 'satus-slider__track-container'; - track.className = 'satus-slider__track'; - ring.className = 'satus-slider__ring'; - thumb.className = 'satus-slider__thumb'; - - range.type = 'range'; - range.step = skeleton.step || 1; - range.max = skeleton.max || 1; - range.min = skeleton.min || 0; - - component.input = range; - - if (satus.isset(value)) { - range.value = value; - } else if (skeleton.hasOwnProperty('value')) { - range.value = skeleton.value; - } else { - range.value = 0; - } - - component.appendChild(container); - track_container.appendChild(track); - container.appendChild(track_container); - track.appendChild(ring); - track.appendChild(thumb); - component.appendChild(range); - - component.update = function () { - var track = this.querySelector('.satus-slider__track'), - thumb = this.querySelector('.satus-slider__thumb'), - min = Number(this.input.min) || 0, - max = Number(this.input.max) || 1, - step = Number(this.input.step) || 1, - value = Number(this.input.value) || 0, - offset = (value - min) / (max - min) * 100; - - track.style.width = 'calc(' + offset + '% - ' + Math.floor(offset * 12 / 100) + 'px)'; - - thumb.dataset.value = this.input.value; - }; - - Object.defineProperty(component, 'value', { - get: function () { - return this.input.value; - }, - set: function (value) { - this.input.value = value; - - this.update(); - - satus.storage.set(this.skeleton.storage, Number(value)); - - this.dispatchEvent(new CustomEvent('change')); - } - }); - - range.addEventListener('input', function () { - var component = this.parentNode; - - console.log(this.value); - - component.value = this.value; - }); - - component.update(); - - return component; -}; -/*-------------------------------------------------------------- ->>> SHORTCUT ---------------------------------------------------------------*/ - -satus.components.shortcut = function (skeleton) { - var component = document.createElement('button'), - value = document.createElement('div'); - - component.className = 'satus-button'; - value.className = 'satus-shortcut__value'; - - component.update = function () { - var object = satus.storage.get(this.storage) || this.skeleton.value || {}, - array = []; - - if (object.shift) { - array.push('Shift'); - } - - if (object.ctrl) { - array.push('Ctrl'); - } - - if (object.alt) { - array.push('Alt'); - } - - if (typeof object.keys === 'object') { - for (var key in object.keys) { - var char = object.keys[key].key || object.keys[key].code; - - if (key === 32) { - char = 'space'; - } - - array.push(char); - } - } - - this.valueElement.textContent = array.join(' + '); - }; - - component.render = function () { - var self = this, - children = this.primary.children; - - satus.empty(this.primary); - - function createElement(name) { - var element = document.createElement('div'); - - element.className = 'satus-shortcut__' + name; - - self.primary.appendChild(element); - - return element; - } - - if (this.data.alt) { - createElement('key').textContent = 'Alt'; - } - - if (this.data.ctrl) { - if (children.length && children[children.length - 1].className.indexOf('key') !== -1) { - createElement('plus'); - } - - createElement('key').textContent = 'Ctrl'; - } - - if (this.data.shift) { - if (children.length && children[children.length - 1].className.indexOf('key') !== -1) { - createElement('plus'); - } - - createElement('key').textContent = 'Shift'; - } - - for (var code in this.data.keys) { - if (children.length && children[children.length - 1].className.indexOf('key') !== -1) { - createElement('plus'); - } - - createElement('key').textContent = this.data.keys[code].key.toUpperCase(); - } - - if (this.data.wheel) { - if (children.length && children[children.length - 1].className.indexOf('key') !== -1) { - createElement('plus'); - } - - var mouse = createElement('mouse'), - div = document.createElement('div'); - - mouse.appendChild(div); - - mouse.className += ' ' + (this.data.wheel > 0); - } - }; - - component.valueElement = value; - - component.data = satus.storage.get(skeleton.storage) || skeleton.value || { - alt: false, - ctrl: false, - shift: false, - keys: {}, - wheel: 0 - }; - - component.appendChild(value); - - component.keydown = function (event) { - event.preventDefault(); - event.stopPropagation(); - - component.data = { - alt: event.altKey, - ctrl: event.ctrlKey, - shift: event.shiftKey, - keys: {} - }; - - component.data.keys[event.keyCode] = { - code: event.code, - key: event.key - }; - - component.data.wheel = 0; - - component.render(); - - return false; - }; - - component.mousewheel = function (event) { - event.preventDefault(); - event.stopPropagation(); - - component.data.wheel = event.deltaY; - - component.render(); - - return false; - }; - - component.addEventListener('click', function () { - satus.render({ - component: 'modal', - on: { - close: function () { - window.removeEventListener('keydown', this.keydown); - window.removeEventListener('mousewheel', this.mousewheel); - } - }, - - primary: { - component: 'div', - class: 'satus-shortcut__primary', - on: { - render: function () { - component.primary = this; - - component.render(); - } - } - }, - actions: { - component: 'div', - class: 'satus-shortcut__actions', - - reset: { - component: 'button', - text: 'reset', - on: { - click: function () { - component.data = component.skeleton.value; - - component.update(); - - satus.storage.set(component.storage, false); - - this.parentNode.parentNode.parentNode.close(); - - window.removeEventListener('keydown', this.keydown); - window.removeEventListener('mousewheel', this.mousewheel); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - component.data = satus.storage.get(skeleton.storage) || component.skeleton.value; - - component.update(); - - this.parentNode.parentNode.parentNode.close(); - - window.removeEventListener('keydown', this.keydown); - window.removeEventListener('mousewheel', this.mousewheel); - } - } - }, - save: { - component: 'button', - text: 'save', - on: { - click: function () { - satus.storage.set(component.storage, component.data); - - component.update(); - - this.parentNode.parentNode.parentNode.close(); - - window.removeEventListener('keydown', this.keydown); - window.removeEventListener('mousewheel', this.mousewheel); - } - } - } - } - }); - - window.addEventListener('keydown', this.keydown); - window.addEventListener('mousewheel', this.mousewheel); - }); - - component.addEventListener('render', component.update); - - return component; -}; -/*-------------------------------------------------------------- ->>> BASE ---------------------------------------------------------------*/ - -satus.components.base = function (skeleton) { - var component = document.createElement('div'); - - component.base = component; - - return component; -}; -/*-------------------------------------------------------------- ->>> TEXT FIELD ---------------------------------------------------------------*/ - -satus.components.textField = function (skeleton) { - var component = document.createElement('div'), - pre = document.createElement('pre'), - input = document.createElement('textarea'), - hidden_text = document.createElement('span'), - text = document.createElement('span'), - selection = document.createElement('div'), - cursor = document.createElement('div'), - value = satus.storage.get(skeleton.storage); - - input.className = 'satus-text-field__input'; - pre.className = 'satus-text-field__pre'; - hidden_text.className = 'satus-text-field__hidden-text'; - text.className = 'satus-text-field__text'; - selection.className = 'satus-text-field__selection'; - cursor.className = 'satus-text-field__cursor'; - - component.inputElement = input; - component.textElement = text; - component.languages = { - regex: function (component) { - var regex_token = /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g, - char_class_token = /[^\\-]+|-|\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)/g, - char_class_parts = /^(\[\^?)(]?(?:[^\\\]]+|\\[\S\s]?)*)(]?)$/, - quantifier = /^(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??$/, - matches = component.inputElement.value.match(regex_token); - - function create(type, string) { - var span = document.createElement('span'); - - span.className = type; - span.textContent = string; - - component.textElement.appendChild(span); - } - - for (var i = 0, l = matches.length; i < l; i++) { - var match = matches[i]; - - if (match[0] === '[') { - create('character-class', match); - } else if (match[0] === '(') { - create('group', match); - } else if (match[0] === ')') { - create('group', match); - } else if (match[0] === '\\' || match === '^') { - create('anchor', match); - } else if (quantifier.test(match)) { - create('quantifier', match); - } else if (match === '|' || match === '.') { - create('metasequence', match); - } else { - create('text', match); - } - } - } - }; - component._syntax = skeleton.syntax; - - Object.defineProperty(component, 'value', { - get: function () { - return this.inputElement.value; - }, - set: function (value) { - var input = this.inputElement; - - input.value = value; - - input.updateValue(); - input.updateCursor(); - } - }); - - Object.defineProperty(component, 'syntax', { - get: function () { - return this._syntax; - }, - set: function (value) { - var input = this.inputElement; - - this._syntax = value; - - input.updateValue(); - input.updateCursor(); - } - }); - - input.rows = skeleton.rows || 1; - input.autocapitalize = 'none'; - input.autocomplete = 'off'; - input.autocorrect = 'off'; - input.spellcheck = false; - input.autofocus = true; - input.textElement = text; - input.hiddenTextElement = hidden_text; - input.selectionElement = selection; - input.cursorElement = cursor; - - input.updateValue = function () { - var component = this.parentNode.parentNode; - - for (var i = this.textElement.childNodes.length - 1; i > -1; i--) { - this.textElement.childNodes[i].remove(); - } - - if (this.value.length > 0) { - if (component.languages[component._syntax]) { - component.languages[component._syntax](component); - } else { - this.textElement.textContent = this.value; - } - } - - component.dispatchEvent(new Event('change')); - }; - - input.updateCursor = function () { - var cursor = this.cursorElement, - selection = this.selectionElement, - hidden_text = this.hiddenTextElement, - start = this.selectionStart, - end = this.selectionEnd; - - cursor.style.animation = 'none'; - - if (start === end) { - selection.setAttribute('disabled', ''); - } else { - selection.removeAttribute('disabled'); - - hidden_text.textContent = this.value.substring(0, start); - - selection.style.left = hidden_text.offsetWidth - this.scrollLeft + 'px'; - - hidden_text.textContent = this.value.substring(start, end); - - selection.style.width = hidden_text.offsetWidth + 'px'; - } - - if (this.selectionDirection === 'forward') { - hidden_text.textContent = this.value.substring(0, end); - } else { - hidden_text.textContent = this.value.substring(0, start); - } - - cursor.style.left = hidden_text.offsetWidth - this.scrollLeft + 'px'; - - cursor.style.animation = ''; - - hidden_text.textContent = ''; - }; - - input.addEventListener('keydown', function () { - var self = this; - - setTimeout(function () { - var component = self.parentNode.parentNode; - - if (component.skeleton && component.skeleton.storage) { - satus.storage.set(component.skeleton.storage, self.value); - } - - self.updateValue(); - self.updateCursor(); - }); - }); - - input.addEventListener('scroll', function (event) { - this.textElement.style.left = -this.scrollLeft + 'px'; - }); - - document.addEventListener('selectionchange', function () { - input.updateCursor(); - }); - - selection.setAttribute('disabled', ''); - - pre.appendChild(input); - pre.appendChild(hidden_text); - pre.appendChild(text); - pre.appendChild(selection); - pre.appendChild(cursor); - component.appendChild(pre); - - if (satus.isset(value)) { - component.value = value; - } else if (skeleton.hasOwnProperty('value')) { - if (typeof skeleton.value === 'function') { - input.value = skeleton.value(); - } else if (skeleton.value) { - input.value = skeleton.value; - } - } - - component.addEventListener('render', function () { - this.inputElement.updateValue(); - this.inputElement.updateCursor(); - }); - - return component; -}; -/*-------------------------------------------------------------- ->>> ALERT ---------------------------------------------------------------*/ - -satus.components.alert = function (skeleton) { - var component = document.createElement('div'); - - return component; -}; -/*-------------------------------------------------------------- ->>> LAYERS ---------------------------------------------------------------*/ - -satus.components.layers = function (skeleton) { - var component = document.createElement('div'); - - component.path = [skeleton]; - - component.back = function () { - if (this.path.length > 1) { - this.path.pop(); - - this.open(); - } - }; - - component.open = function (skeleton) { - var layer = document.createElement('div'); - - if (skeleton) { - this.path.push(skeleton); - } else { - skeleton = this.path[this.path.length - 1]; - } - - layer.className = 'satus-layer'; - - layer.skeleton = skeleton; - layer.base = this.base; - - satus.render(skeleton, layer, skeleton.component === 'layers'); - - satus.empty(this); - - this.appendChild(layer); - - this.dispatchEvent(new Event('open')); - }; - - component.update = function () { - var layer = this.querySelector('.satus-layer'); - - satus.empty(layer); - - satus.render(layer.skeleton, layer); - }; - - component.render_children = false; - - component.addEventListener('render', function () { - this.open(); - }); - - return component; -}; -/*-------------------------------------------------------------- ->>> INPUT ---------------------------------------------------------------*/ - -satus.components.input = function (skeleton) { - var component = document.createElement('input'); - - if (skeleton.attr) { - var key = skeleton.attr.name || skeleton.storage, - value; - - if (satus.isset(satus.storage.get(key))) { - value = satus.storage.get(key); - } else { - value = skeleton.value; - } - - if (skeleton.attr.type === 'radio') { - component.checked = value === skeleton.attr.value || skeleton.value; - } else if (satus.isset(value)) { - component.value = value; - } - - component.addEventListener('change', function () { - var key = this.skeleton.attr.name || this.skeleton.storage; - - satus.storage.set(key, this.value); - }); - } - - return component; -}; -/*-------------------------------------------------------------- ->>> SELECT ---------------------------------------------------------------*/ - -satus.components.select = function (skeleton) { - var component = document.createElement('div'), - component_label = document.createElement('span'), - component_value = document.createElement('span'), - select = document.createElement('select'); - - component_value.className = 'satus-select__value'; - - for (var i = 0, l = skeleton.options.length; i < l; i++) { - var option = document.createElement('option'); - - option.value = skeleton.options[i].value; - - satus.text(option, skeleton.options[i].text); - - select.appendChild(option); - } - - component.selectElement = select; - select.valueElement = component_value; - - select.addEventListener('change', function () { - satus.empty(this.valueElement); - - satus.text(this.valueElement, this.options[this.selectedIndex].text); - - this.parentNode.change(this.value); - }); - - component.appendChild(component_label); - component.appendChild(component_value); - component.appendChild(select); - - component.addEventListener('render', function () { - var select = this.selectElement, - value = satus.storage.get(this.skeleton.storage) || this.skeleton.options[0].value; - - select.value = value; - - satus.text(select.valueElement, select.options[select.selectedIndex].text); - }); - - component.inner = component_label; - - return component; -}; -/*-------------------------------------------------------------- ->>> USER ---------------------------------------------------------------*/ - -satus.user = function () { - /*-------------------------------------------------------------- - 1.0 VARIABLES - --------------------------------------------------------------*/ - - var user_agent = navigator.userAgent, - random_cookie = 'ta{t`nX6cMXK,Wsc', - video = document.createElement('video'), - video_formats = { - ogg: 'video/ogg; codecs="theora"', - h264: 'video/mp4; codecs="avc1.42E01E"', - webm: 'video/webm; codecs="vp8, vorbis"', - vp9: 'video/webm; codecs="vp9"', - hls: 'application/x-mpegURL; codecs="avc1.42E01E"' - }, - audio = document.createElement('audio'), - audio_formats = { - mp3: 'audio/mpeg', - mp4: 'audio/mp4', - aif: 'audio/x-aiff' - }, - cvs = document.createElement('canvas'), - ctx = cvs.getContext('webgl'), - data = { - browser: { - audio: null, - cookies: null, - flash: null, - java: null, - languages: null, - name: null, - platform: null, - version: null, - video: null, - webgl: null - }, - os: { - name: null, - type: null - }, - device: { - connection: { - type: null, - speed: null - }, - cores: null, - gpu: null, - max_touch_points: null, - ram: null, - screen: null, - touch: null - } - }; - - - /*-------------------------------------------------------------- - 2.0 SOFTWARE - --------------------------------------------------------------*/ - - /*-------------------------------------------------------------- - 2.1.0 OS - --------------------------------------------------------------*/ - - /*-------------------------------------------------------------- - 2.1.1 NAME - --------------------------------------------------------------*/ - - if (navigator.appVersion.indexOf('Win') !== -1) { - if (navigator.appVersion.match(/(Windows 10.0|Windows NT 10.0)/)) { - data.os.name = 'Windows 10'; - } else if (navigator.appVersion.match(/(Windows 8.1|Windows NT 6.3)/)) { - data.os.name = 'Windows 8.1'; - } else if (navigator.appVersion.match(/(Windows 8|Windows NT 6.2)/)) { - data.os.name = 'Windows 8'; - } else if (navigator.appVersion.match(/(Windows 7|Windows NT 6.1)/)) { - data.os.name = 'Windows 7'; - } else if (navigator.appVersion.match(/(Windows NT 6.0)/)) { - data.os.name = 'Windows Vista'; - } else if (navigator.appVersion.match(/(Windows NT 5.1|Windows XP)/)) { - data.os.name = 'Windows XP'; - } else { - data.os.name = 'Windows'; - } - } else if (navigator.appVersion.indexOf('(iPhone|iPad|iPod)') !== -1) { - data.os.name = 'iOS'; - } else if (navigator.appVersion.indexOf('Mac') !== -1) { - data.os.name = 'macOS'; - } else if (navigator.appVersion.indexOf('Android') !== -1) { - data.os.name = 'Android'; - } else if (navigator.appVersion.indexOf('OpenBSD') !== -1) { - data.os.name = 'OpenBSD'; - } else if (navigator.appVersion.indexOf('SunOS') !== -1) { - data.os.name = 'SunOS'; - } else if (navigator.appVersion.indexOf('Linux') !== -1) { - data.os.name = 'Linux'; - } else if (navigator.appVersion.indexOf('X11') !== -1) { - data.os.name = 'UNIX'; - } - - /*-------------------------------------------------------------- - 2.1.2 TYPE - --------------------------------------------------------------*/ - - if (navigator.appVersion.match(/(Win64|x64|x86_64|WOW64)/)) { - data.os.type = '64-bit'; - } else { - data.os.type = '32-bit'; - } - - - /*-------------------------------------------------------------- - 2.2.0 BROWSER - --------------------------------------------------------------*/ - - /*-------------------------------------------------------------- - 2.2.1 NAME - --------------------------------------------------------------*/ - - if (user_agent.indexOf('Opera') !== -1) { - data.browser.name = 'Opera'; - } else if (user_agent.indexOf('Vivaldi') !== -1) { - data.browser.name = 'Vivaldi'; - } else if (user_agent.indexOf('Edge') !== -1) { - data.browser.name = 'Edge'; - } else if (user_agent.indexOf('Chrome') !== -1) { - data.browser.name = 'Chrome'; - } else if (user_agent.indexOf('Safari') !== -1) { - data.browser.name = 'Safari'; - } else if (user_agent.indexOf('Firefox') !== -1) { - data.browser.name = 'Firefox'; - } else if (user_agent.indexOf('MSIE') !== -1) { - data.browser.name = 'IE'; - } - - - /*-------------------------------------------------------------- - 2.2.2 VERSION - --------------------------------------------------------------*/ - - var browser_version = user_agent.match(new RegExp(data.browser.name + '/([0-9.]+)')); - - if (browser_version[1]) { - data.browser.version = browser_version[1]; - } - - - /*-------------------------------------------------------------- - 2.2.3 PLATFORM - --------------------------------------------------------------*/ - - data.browser.platform = navigator.platform || null; - - - /*-------------------------------------------------------------- - 2.2.4 LANGUAGES - --------------------------------------------------------------*/ - - data.browser.languages = navigator.languages || null; - - - /*-------------------------------------------------------------- - 2.2.5 COOKIES - --------------------------------------------------------------*/ - - if (document.cookie) { - document.cookie = random_cookie; - - if (document.cookie.indexOf(random_cookie) !== -1) { - data.browser.cookies = true; - } - } - - - /*-------------------------------------------------------------- - 2.2.6 FLASH - --------------------------------------------------------------*/ - - try { - if (new ActiveXObject('ShockwaveFlash.ShockwaveFlash')) { - data.browser.flash = true; - } - } catch (e) { - if (navigator.mimeTypes['application/x-shockwave-flash']) { - data.browser.flash = true; - } - } - - - /*-------------------------------------------------------------- - 2.2.7 JAVA - --------------------------------------------------------------*/ - - if (typeof navigator.javaEnabled === 'function' && navigator.javaEnabled()) { - data.browser.java = true; - } - - - /*-------------------------------------------------------------- - 2.2.8 VIDEO FORMATS - --------------------------------------------------------------*/ - - if (typeof video.canPlayType === 'function') { - data.browser.video = {}; - - for (var i in video_formats) { - var can_play_type = video.canPlayType(video_formats[i]); - - if (can_play_type === '') { - data.browser.video[i] = false; - } else { - data.browser.video[i] = can_play_type; - } - } - } - - - /*-------------------------------------------------------------- - 2.2.9 AUDIO FORMATS - --------------------------------------------------------------*/ - - if (typeof audio.canPlayType === 'function') { - data.browser.audio = {}; - - for (var i in audio_formats) { - var can_play_type = audio.canPlayType(audio_formats[i]); - - if (can_play_type == '') { - data.browser.audio[i] = false; - } else { - data.browser.audio[i] = can_play_type; - } - } - } - - - /*-------------------------------------------------------------- - 2.2.10 WEBGL - --------------------------------------------------------------*/ - - if (ctx && ctx instanceof WebGLRenderingContext) { - data.browser.webgl = true; - } - - - /*-------------------------------------------------------------- - 3.0 HARDWARE - --------------------------------------------------------------*/ - - /*-------------------------------------------------------------- - 3.1 SCREEN - --------------------------------------------------------------*/ - - if (screen) { - data.device.screen = screen.width + 'x' + screen.height; - } - - - /*-------------------------------------------------------------- - 3.2 RAM - --------------------------------------------------------------*/ - - if ('deviceMemory' in navigator) { - data.device.ram = navigator.deviceMemory + ' GB'; - } - - - /*-------------------------------------------------------------- - 3.3 GPU - --------------------------------------------------------------*/ - - if ( - ctx && - ctx instanceof WebGLRenderingContext && - 'getParameter' in ctx && - 'getExtension' in ctx - ) { - var info = ctx.getExtension('WEBGL_debug_renderer_info'); - - if (info) { - data.device.gpu = ctx.getParameter(info.UNMASKED_RENDERER_WEBGL); - } - } - - - /*-------------------------------------------------------------- - 3.4 CORES - --------------------------------------------------------------*/ - - if (navigator.hardwareConcurrency) { - data.device.cores = navigator.hardwareConcurrency; - } - - - /*-------------------------------------------------------------- - 3.5 TOUCH - --------------------------------------------------------------*/ - - if ( - window.hasOwnProperty('ontouchstart') || - window.DocumentTouch && document instanceof window.DocumentTouch || - navigator.maxTouchPoints > 0 || - window.navigator.msMaxTouchPoints > 0 - ) { - data.device.touch = true; - data.device.max_touch_points = navigator.maxTouchPoints; - } - - - /*-------------------------------------------------------------- - 3.6 CONNECTION - --------------------------------------------------------------*/ - - if (typeof navigator.connection === 'object') { - data.device.connection.type = navigator.connection.effectiveType || null; - - if (navigator.connection.downlink) { - data.device.connection.speed = navigator.connection.downlink + ' Mbps'; - } - } - - - /*-------------------------------------------------------------- - 4.0 CLEARING - --------------------------------------------------------------*/ - - video.remove(); - audio.remove(); - cvs.remove(); - - - return data; -}; -/*-------------------------------------------------------------- ->>> EXTENSION STORAGE ---------------------------------------------------------------*/ -/*-------------------------------------------------------------- ->>> PLUVIAM ---------------------------------------------------------------*/ - -satus.events.add('render', function (component, skeleton) { - if (skeleton.pluviam === true) { - function createPluviam(event) { - var pluviam = document.createElement('span'), - rect = this.getBoundingClientRect(), - x = event.clientX - rect.left, - y = event.clientY - rect.top, - diameter = Math.sqrt(Math.pow(rect.width * 2, 2) + Math.pow(rect.height * 2, 2)); - - pluviam.className = 'satus-pluviam'; - - pluviam.style.left = x - diameter / 2 + 'px'; - pluviam.style.top = y - diameter / 2 + 'px'; - pluviam.style.width = diameter + 'px'; - pluviam.style.height = diameter + 'px'; - - this.appendChild(pluviam); - - setTimeout(function () { - pluviam.remove(); - }, 1000); - } - - component.addEventListener('mousedown', createPluviam); - component.addEventListener('mouseover', createPluviam); - } -}); \ No newline at end of file +var satus={components:{},events:{},locale:{strings:{}},storage:{attributes:{},data:{}},append:function(M,N){(N||document.body).appendChild(M)},getAnimationDuration:function(M){return 1e3*Number(window.getComputedStyle(M).getPropertyValue("animation-duration").replace(/[^0-9.]/g,""))},attr:function(M,N){if(N)for(var e in N){var i;M.is_svg?M.setAttributeNS(null,e,N[e]):(i=N[e],-1!==["placeholder","title"].indexOf(e)&&(i=satus.locale.get(i)),M.setAttribute(e,i))}},elementIndex:function(M){return Array.prototype.slice.call(M.parentNode.children).indexOf(M)},data:function(M,N){if(N)for(var e in N)M.dataset[e]=N[e]},properties:function(M,N){if(N)for(var e in N)M[e]=N[e]},camelize:function(M){for(var N="",e=0,i=M.length;e Date: Fri, 1 Oct 2021 22:46:16 +0300 Subject: [PATCH 0407/1224] Update messages.json Update messages.json --- _locales/tr/messages.json | 114 +++++++++++++++++++------------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 6944eb078..3eb0e2ddd 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -84,10 +84,10 @@ "message": "Otomatik oynat" }, "backgroundColor": { - "message": "Background color" + "message": "Arkaplan rengi" }, "backgroundOpacity": { - "message": "Background opacity" + "message": "Arkaplan opaklığı" }, "backupAndReset": { "message": "Yedek & sıfırla" @@ -108,7 +108,7 @@ "message": "Tümünü engelle" }, "blockMusic": { - "message": "Block music" + "message": "Sesi engelle" }, "blue": { "message": "Mavi" @@ -150,7 +150,7 @@ "message": "Kanallar" }, "characterEdgeStyle": { - "message": "Character edge style" + "message": "Karakter kenar stili" }, "clipboard": { "message": "Pano" @@ -222,22 +222,22 @@ "message": "Varsayılan kanal sekmesi" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Varsayılan içerik ülkesi" }, "deleteWatchedVideos": { - "message": "Delete watched videos" + "message": "İzlenen videoları sil" }, "deleteYoutubeCookies": { "message": "YouTube çerezleri sil" }, "depressed": { - "message": "Depressed" + "message": "Bunalımlı" }, "description": { "message": "Açıklama" }, "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + "message": "YouTube'u düzenli+akıllı hale getirin! YouTube video renkli reklam hacmi atlama hızı kanal aracı stili HD reklamlar reklam engelleme reklam engelleyici etiketleri anahtar kelime oynatma listesi" }, "desert": { "message": "Çöl" @@ -270,7 +270,7 @@ "message": "Sürüklenebilir" }, "dropShadow": { - "message": "Drop shadow" + "message": "Düşen gölge" }, "email": { "message": "Eposta" @@ -309,25 +309,25 @@ "message": "Yazı Tipi" }, "fontColor": { - "message": "Font color" + "message": "Yazı rengi" }, "fontFamily": { - "message": "Font family" + "message": "Font ailesi" }, "fontOpacity": { - "message": "Font opacity" + "message": "Yazı tipi opaklığı" }, "fontSize": { - "message": "Font size" + "message": "Yazı Boyutu" }, "footer": { - "message": "Footer" + "message": "Altbilgi" }, "forceSDR": { "message": "SDR Zorla" }, "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" + "message": "En başından itibaren zorunlu oynatma videosu" }, "forcedPlaybackSpeed": { "message": "Oynatma hızını uygulamaya zorla" @@ -369,7 +369,7 @@ "message": "HD küçük resimler" }, "header": { - "message": "Header" + "message": "Başlık" }, "hidden": { "message": "Gizli" @@ -387,10 +387,10 @@ "message": "Kartları gizle" }, "hideCountryCode": { - "message": "Hide country code" + "message": "Ülke kodunu gizle" }, "hideDate": { - "message": "Hide date" + "message": "Tarihi gizle" }, "hideDetails": { "message": "Detayları gizle" @@ -405,19 +405,19 @@ "message": "Footer'ı gizle" }, "hideGradientBottom": { - "message": "Hide Gradient Bottom" + "message": "Gradyan Altını Gizle" }, "hideMoreButton": { - "message": "Hide \"More\" button" + "message": "\"Diğer\" düğmesini gizle" }, "hidePlayerControlsBar": { - "message": "Hide player controls bar" + "message": "Oynatıcı kontrol çubuğunu gizle" }, "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" + "message": "Oynatıcı kontrolleri çubuğu düğmelerini gizle" }, "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" + "message": "Oynatıcı kontrol seçeneklerini gizle" }, "hidePlaylist": { "message": "Oynatma Listesi'ni gizle" @@ -426,28 +426,28 @@ "message": "Sağ butonları gizle" }, "hideSaveButton": { - "message": "Hide \"Save\" button" + "message": "\"Kaydet\" butonunu gizle " }, "hideScrollForDetails": { "message": "«Ayrıntılar için kaydır» gizle" }, "hideShareButton": { - "message": "Hide \"Share\" button" + "message": "\"Paylaş\" butonunu gizle" }, "hideSkipOverlay": { - "message": "Hide Skip Overlay" + "message": "Yer Paylaşımını Atla Gizle" }, "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" + "message": "Küçük resim yer paylaşımını gizle" }, "hideThumbnails": { - "message": "Hide thumbnails" + "message": "Küçük resimleri gizle" }, "hideViewsCount": { "message": "Görüntüleme sayısını gizle" }, "hideVoiceSearchButton": { - "message": "Hide voice search button" + "message": "Sesli arama düğmesini gizle" }, "history": { "message": "Geçmiş" @@ -456,7 +456,7 @@ "message": "Ana Sayfa" }, "hover": { - "message": "Hover" + "message": "Gölge" }, "hoverOnVideoPage": { "message": "Videonun Üzerinde Hover" @@ -498,7 +498,7 @@ "message": "Öğeler" }, "language": { - "message": "Language" + "message": "Dil" }, "languages": { "message": "Diller" @@ -507,7 +507,7 @@ "message": "Eski YouTube" }, "library": { - "message": "Library" + "message": "Kütüphane" }, "light": { "message": "Açık" @@ -522,7 +522,7 @@ "message": "Beğen" }, "liked": { - "message": "Liked" + "message": "Beğenildi" }, "likes": { "message": "Beğeniler" @@ -531,7 +531,7 @@ "message": "Lime" }, "limitPageWidth": { - "message": "Limit page width" + "message": "Sayfa genişliğini sınırla" }, "list": { "message": "Liste" @@ -543,7 +543,7 @@ "message": "Canlı sohbet türü" }, "location": { - "message": "Location" + "message": "Konum" }, "loudnessNormalization": { "message": "Gürültü normalleştirme" @@ -555,10 +555,10 @@ "message": "Karıştırıcı" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "Kenar çubuğunu sola taşı" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Küçük resimleri sağa taşı" }, "myColors": { "message": "Renklerim" @@ -567,7 +567,7 @@ "message": "İsim" }, "nativeMiniPlayer": { - "message": "Native mini player" + "message": "Native mini oynatıcı" }, "new": { "message": "Yeni" @@ -615,10 +615,10 @@ "message": "Diğer" }, "outline": { - "message": "Outline" + "message": "Ana hat" }, "overlay": { - "message": "Overlay" + "message": "Arayüz" }, "permissions": { "message": "İzinler" @@ -681,13 +681,13 @@ "message": "Kalite" }, "raised": { - "message": "Raised" + "message": "Kabarık" }, "ram": { "message": "RAM" }, "rateMe": { - "message": "Rate me" + "message": "Beni oyla" }, "rateUs": { "message": "Bizi oyla" @@ -702,7 +702,7 @@ "message": "İlgili videolar" }, "remote": { - "message": "Play on TV" + "message": "TV'de oynat" }, "removeRelatedSearchResults": { "message": "İlgili arama sonuçlarını kaldır" @@ -741,7 +741,7 @@ "message": "Ekran görüntüsü" }, "scrollBar": { - "message": "Scroll Bar" + "message": "Kaydırma çubuğu" }, "search": { "message": "Ara" @@ -756,10 +756,10 @@ "message": "10 saniye ileriye git" }, "seekNextChapter": { - "message": "seekNextChapter" + "message": "10 saniye geriye git" }, "seekPreviousChapter": { - "message": "seekPreviousChapter" + "message": "Önceki Bölümü Ara" }, "settings": { "message": "Ayarlar" @@ -777,13 +777,13 @@ "message": "Kanalın video sayısını göster" }, "showLess": { - "message": "Show less" + "message": "Daha az göster" }, "showMore": { - "message": "Show more" + "message": "Daha fazla göster" }, "showRemainingDuration": { - "message": "Show video remaining duration" + "message": "Videonun kalan süresini göster" }, "shuffle": { "message": "Karıştır" @@ -792,7 +792,7 @@ "message": "Kenar çubuğu" }, "spacebar": { - "message": "Spacebar" + "message": "Ara çubuğu" }, "squaredUserImages": { "message": "Kare kullanıcı görüntüleri" @@ -801,7 +801,7 @@ "message": "Statik" }, "statsForNerds": { - "message": "Show Stats for Nerds" + "message": "Meraklılar için istatistikler" }, "step": { "message": "Adım" @@ -816,7 +816,7 @@ "message": "Stiller" }, "subscribe": { - "message": "Subscribe" + "message": "Abone Ol" }, "subscriptions": { "message": "Aboneler" @@ -870,19 +870,19 @@ "message": "Bugün" }, "toggleAutoplay": { - "message": "Toggle autoplay" + "message": "Otomatik oynatmayı aç/kapat" }, "toggleCards": { "message": "Kartları aç/kapat" }, "toggleControls": { - "message": "Toggle controls" + "message": "Kontrolleri aç/kapat" }, "topChat": { "message": "En İyi Sohbet Mesajları" }, "trackWatchedVideos": { - "message": "Track watched videos" + "message": "İzlenen videoları takip edin" }, "trailerAutoplay": { "message": "Fragman otomatik oynatımı" @@ -942,10 +942,10 @@ "message": "Beyaz" }, "windowColor": { - "message": "Window color" + "message": "Pencere rengi" }, "windowOpacity": { - "message": "Window opacity" + "message": "Pencere opaklığı" }, "yellow": { "message": "Sarı" From 0de647fb840e17e3f5b7ee3f3f05264823bc6402 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 6 Oct 2021 17:40:00 +0300 Subject: [PATCH 0408/1224] pre-3.600 --- content-scripts.js | 4 +- popup.css | 29 ++-- popup.js | 366 +++++++++++++++++++++++++++++---------------- satus.css | 9 +- satus.js | 9 +- 5 files changed, 261 insertions(+), 156 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index 22015a61c..ac776875d 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -184,12 +184,14 @@ chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { if (element) { sendResponse(element.playbackRate); } - }else if (request.action === 'set-playback-speed') { + } else if (request.action === 'set-playback-speed') { var element = document.querySelector('video'); if (element) { element.playbackRate = request.value; } + } else if (request.action === 'delete-youtube-cookies') { + injectScript('ImprovedTube.deleteYoutubeCookies();'); } injectScript('ImprovedTube.pageOnFocus();'); diff --git a/popup.css b/popup.css index 31bb4edaf..bd6fe6b46 100644 --- a/popup.css +++ b/popup.css @@ -28,6 +28,7 @@ body { --it-category-background: linear-gradient(135deg, #ff4158, #ff001f); --it-category-shadow: rgba(222, 0, 27, .7); --it-appearance-shadow-color: #dfdfdf; + --satus-switch-track: #ccc; } body[theme=dark] { @@ -43,6 +44,7 @@ body[theme=dark] { --it-category-background: linear-gradient(135deg, #ff4158, #ff001f); --it-category-shadow: rgba(222, 0, 27, .7); --it-appearance-shadow-color: #393e46; + --satus-switch-track: #ccc; } body[theme=night] { @@ -58,6 +60,7 @@ body[theme=night] { --it-category-background: linear-gradient(135deg, #2e5cb8, #234790); --it-category-shadow: rgb(41, 82, 163, .7); --it-appearance-shadow-color: #558bf6; + --satus-switch-track: #ccc; } body[theme=dawn] { @@ -73,6 +76,7 @@ body[theme=dawn] { --it-category-background: linear-gradient(135deg, #e98f63, #e27036); --it-category-shadow: rgb(226, 112, 54, .7); --it-appearance-shadow-color: #e86e30; + --satus-switch-track: #ccc; } body[theme=sunset] { @@ -88,6 +92,7 @@ body[theme=sunset] { --it-category-background: linear-gradient(135deg, #e98f63, #e27036); --it-category-shadow: rgb(226, 112, 54, .7); --it-appearance-shadow-color: #e86e30; + --satus-switch-track: #ccc; } body[theme=desert] { @@ -103,6 +108,7 @@ body[theme=desert] { --it-category-background: linear-gradient(135deg, #f83, #d15700); --it-category-shadow: rgb(230, 96, 0, .7); --it-appearance-shadow-color: #5e9aed; + --satus-switch-track: #ccc; } body[theme=plain] { @@ -118,6 +124,7 @@ body[theme=plain] { --it-category-background: linear-gradient(135deg, #abceb8, #609f7a); --it-category-shadow: #70a987b3; --it-appearance-shadow-color: #d7995b; + --satus-switch-track: #ccc; } body[theme=black] { @@ -131,6 +138,7 @@ body[theme=black] { --satus-modal-text: #fafafa; --satus-hover: rgba(255, 255, 255, .04); --it-appearance-shadow-color: #222; + --satus-switch-track: #ccc; } @@ -187,9 +195,9 @@ body[theme=black] { .satus-input--search[type=text] { position: absolute; - right: 56px; + right: 64px; display: none; - width: calc(100vw - 72px); + width: calc(100vw - 80px); height: 36px; padding-right: 36px; background: var(--satus-header-background); @@ -207,7 +215,7 @@ body[theme=black] { .satus-header .satus-button--close-search { position: absolute; - right: 60px; + right: 68px; display: none; width: 28px; min-width: 28px; @@ -226,9 +234,9 @@ body[theme=black] { } .search-results { - top: 48px; + top: 56px; overflow: hidden; - height: calc(100vh - 48px); + height: calc(100vh - 56px); } .search-results .satus-modal__scrim { @@ -239,10 +247,11 @@ body[theme=black] { position: absolute; top: 0; left: 16px; - width: calc(100% - 72px); + width: calc(100% - 80px); min-width: unset; max-width: unset; padding: 0; + margin: 0; transform-origin: top; border-top-left-radius: 0; border-top-right-radius: 0; @@ -250,14 +259,6 @@ body[theme=black] { box-shadow: 0 2px 4px 2px rgba(0, 0, 0, .2); } -.search-results .satus-section { - margin: 0; - background: transparent; - border-radius: 0; - border: none; - width: 100%; -} - .search-results .satus-section>* { width: 100%; height: 40px; diff --git a/popup.js b/popup.js index fb223ac4b..3fc293787 100644 --- a/popup.js +++ b/popup.js @@ -11,6 +11,7 @@ var skeleton = { component: 'base', + class: 'search-mode', attr: { 'theme': 'default' }, @@ -49,8 +50,7 @@ var skeleton = { }, title: { component: 'span', - variant: 'title', - text: 'ImprovedTube' + variant: 'title' } }, section_end: { @@ -60,12 +60,16 @@ var skeleton = { search_field: { component: 'input', class: 'satus-input--search', + storage: false, attr: { 'type': 'text', 'placeholder': 'search', 'autofocus': true }, on: { + render: function () { + this.focus(); + }, blur: function () { if (this.value.length === 0) { var results = document.querySelector('.search-results'); @@ -99,31 +103,81 @@ var skeleton = { if (value.length > 0) { satus.search(value, skeleton, function (results) { - var parent = document.querySelector('.search-results'), + var search_results = document.querySelector('.search-results'), skeleton = { component: 'modal', class: 'search-results' }; for (var key in results) { - results[key].component = 'section'; - results[key].class = 'satus-section--card'; + var result = results[key], + parent = result; + + while ( + parent.parent && + !parent.parent.category + ) { + parent = parent.parent; + } - skeleton[key + '_label'] = { - component: 'span', - class: 'satus-section--label', - text: key - }; + var category = parent.parent.label.text; + + parent = result; + + while ( + parent.parent && + parent.parent.component !== 'button' + ) { + parent = parent.parent; + } - skeleton[key] = results[key]; + parent = parent.parent; + + if (parent) { + if (parent.label) { + var subcategory = parent.label.text; + } else { + var subcategory = parent.text; + } + + skeleton[category+subcategory + '_label'] = { + component: 'span', + class: 'satus-section--label', + text: satus.locale.get(category) + ' -> ' + satus.locale.get(subcategory) + }; + + if (!skeleton[category+subcategory]) { + skeleton[category+subcategory] = { + component: 'section', + variant: 'card' + }; + } + + skeleton[category+subcategory][key] = result; + } else { + skeleton[category + '_label'] = { + component: 'span', + class: 'satus-section--label', + text: category + }; + + if (!skeleton[category]) { + skeleton[category] = { + component: 'section', + variant: 'card' + }; + } + + skeleton[category][key] = result; + } } if (Object.keys(results).length === 0) { - if (parent) { - document.querySelector('.search-results').remove(); + if (search_results) { + search_results.remove(); } } else { - if (parent) { + if (search_results) { var parent = document.querySelector('.search-results .satus-modal__surface'); while (parent.children[0]) { @@ -143,7 +197,8 @@ var skeleton = { results.close(); } - document.querySelector('.search-results').base.classList.remove('search-mode'); + document.querySelector('.satus-input--search').value = ''; + document.querySelector('.search-mode').classList.remove('search-mode'); }); } } @@ -203,15 +258,15 @@ var skeleton = { component: 'svg', attr: { 'viewBox': '0 0 24 24', - 'stroke-width': 1.25 + 'stroke-width': '1.25' }, circle: { component: 'circle', attr: { - 'cx': 11, - 'cy': 10.5, - 'r': 6 + 'cx': '11', + 'cy': '10.5', + 'r': '6' } }, path: { @@ -240,10 +295,13 @@ var skeleton = { var component = this; satus.search('', skeleton, function (results) { + var skeleton = {}; + for (var key in results) { var result = results[key], default_value = result.value || false, - value = satus.storage.get(key); + value = satus.storage.get(key), + parent = result; if (result.component === 'select') { if (satus.isset(result.value) === false) { @@ -252,9 +310,73 @@ var skeleton = { } if (satus.isset(value) && value !== default_value) { - satus.render(result, component); + while ( + parent.parent && + !parent.parent.category + ) { + parent = parent.parent; + } + + var category = parent.parent.label.text; + + parent = result; + + while ( + parent.parent && + parent.parent.component !== 'button' + ) { + parent = parent.parent; + } + + parent = parent.parent; + + console.log(result, category, parent); + + if (parent) { + if (parent.label) { + var subcategory = parent.label.text; + } else { + var subcategory = parent.text; + } + + skeleton[category+subcategory + '_label'] = { + component: 'span', + class: 'satus-section--label', + text: satus.locale.get(category) + ' -> ' + satus.locale.get(subcategory) + }; + + if (!skeleton[category+subcategory]) { + skeleton[category+subcategory] = { + component: 'section', + variant: 'card' + }; + } + + skeleton[category+subcategory][key] = result; + } else { + skeleton[category + '_label'] = { + component: 'span', + class: 'satus-section--label', + text: category + }; + + if (!skeleton[category]) { + skeleton[category] = { + component: 'section', + variant: 'card' + }; + } + + skeleton[category][key] = result; + } } } + + console.log(skeleton); + + satus.render(skeleton, component.parentNode); + + component.remove(); }); document.querySelector('.satus-modal__scrim').click(); @@ -290,6 +412,7 @@ var skeleton = { }, settings: { component: 'button', + category: true, on: { click: { section_1: { @@ -403,7 +526,6 @@ var skeleton = { } }, }, - section_2: { component: 'section', variant: 'card', @@ -956,11 +1078,11 @@ var skeleton = { text: 'importSettings', on: { click: function () { - if (location.href.indexOf('/popup.html?action=import') !== -1) { + if (location.href.indexOf('/options.html?action=import') !== -1) { importData(); } else { chrome.tabs.create({ - url: 'popup.html?action=import' + url: 'options.html?action=import' }); } } @@ -969,14 +1091,13 @@ var skeleton = { export_settings: { component: 'button', text: 'exportSettings', - on: { click: function () { - if (location.href.indexOf('/index.html?action=export') !== -1) { + if (location.href.indexOf('/options.html?action=export') !== -1) { exportData(); } else { chrome.tabs.create({ - url: 'index.html?action=export' + url: 'options.html?action=export' }); } } @@ -986,43 +1107,38 @@ var skeleton = { component: 'button', text: 'resetAllSettings', on: { - click: function () { - satus.render({ - component: 'modal', - class: 'satus-modal--confirm', - - message: { - component: 'span', - text: 'thisWillResetAllSettings' - }, - section: { - component: 'section', - class: 'controls', + click: { + component: 'modal', - cancel: { - component: 'button', - text: 'cancel', - onclick: function () { - var scrim = document.querySelectorAll('.satus-modal__scrim'); + message: { + component: 'span', + text: 'thisWillResetAllSettings' + }, + section: { + component: 'section', + variant: 'actions', - scrim[scrim.length - 1].click(); + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.parentNode.parentNode.parentNode.close(); } - }, - accept: { - component: 'button', - text: 'accept', - onclick: function () { - var scrim = document.querySelectorAll('.satus-modal__scrim'); - + } + }, + accept: { + component: 'button', + text: 'accept', + on: { + click: function () { satus.storage.clear(); - location.reload(); - - scrim[scrim.length - 1].click(); + this.parentNode.parentNode.parentNode.close(); } } } - }); + } } } }, @@ -1031,61 +1147,46 @@ var skeleton = { text: 'deleteYoutubeCookies', on: { - click: function () { - satus.render({ - component: 'modal', - class: 'satus-modal--confirm', - - message: { - component: 'span', - text: 'thisWillRemoveAllYouTubeCookies', - style: { - 'width': '100%', - 'opacity': '.8' - } - }, - section: { - component: 'section', - class: 'controls', - style: { - 'justify-content': 'flex-end', - 'display': 'flex' - }, + click: { + component: 'modal', - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - var scrim = document.querySelectorAll('.satus-modal__scrim'); + message: { + component: 'span', + text: 'thisWillRemoveAllYouTubeCookies' + }, + section: { + component: 'section', + variant: 'actions', - scrim[scrim.length - 1].click(); - } + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.parentNode.parentNode.parentNode.close(); } - }, - accept: { - component: 'button', - text: 'accept', - on: { - click: function () { - var scrim = document.querySelectorAll('.satus-modal__scrim'); - - chrome.tabs.query({}, function (tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - name: 'delete_youtube_cookies' - }); - } + } + }, + accept: { + component: 'button', + text: 'accept', + on: { + click: function () { + chrome.tabs.query({}, function (tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + action: 'delete-youtube-cookies' + }); } - }); + } + }); - scrim[scrim.length - 1].click(); - } + this.parentNode.parentNode.parentNode.close(); } } } - }); + } } } } @@ -2348,15 +2449,15 @@ var skeleton = { component: 'svg', attr: { 'viewBox': '0 0 24 24', - 'stroke-width': 1.75 + 'stroke-width': '1.75' }, circle: { component: 'circle', attr: { - 'cx': 12, - 'cy': 12, - 'r': 3 + 'cx': '12', + 'cy': '12', + 'r': '3' } }, path: { @@ -2376,7 +2477,6 @@ var skeleton = { on: { click: { component: 'section', - on: { render: function () { var self = this; @@ -2476,6 +2576,7 @@ var skeleton = { if (Object.entries(mixer).length === 0) { mixer.section = { component: 'section', + parent: self.skeleton, message: { component: 'span', @@ -2485,9 +2586,7 @@ var skeleton = { }; } - skeleton.layers.rendered.path.push(mixer); - - skeleton.layers.rendered.open(); + skeleton.layers.rendered.open(mixer); document.querySelector('.satus-modal__scrim').click(); }); @@ -2524,31 +2623,31 @@ var skeleton = { component: 'svg', attr: { 'viewBox': '0 0 24 24', - 'stroke-width': 2 + 'stroke-width': '2' }, circle1: { component: 'circle', attr: { - 'cx': 12, - 'cy': 5.25, - 'r': 0.45 + 'cx': '12', + 'cy': '5.25', + 'r': '0.45' } }, circle2: { component: 'circle', attr: { - 'cx': 12, - 'cy': 12, - 'r': 0.45 + 'cx': '12', + 'cy': '12', + 'r': '0.45' } }, circle3: { component: 'circle', attr: { - 'cx': 12, - 'cy': 18.75, - 'r': 0.45 + 'cx': '12', + 'cy': '18.75', + 'r': '0.45' } } } @@ -2584,6 +2683,7 @@ var skeleton = { general: { component: 'button', variant: 'general', + category: true, on: { click: { component: 'section', @@ -2632,8 +2732,10 @@ var skeleton = { text: 'markWatchedVideos', on: { click: function () { - if (satus.storage.get('mark_watched_videos') && !satus.storage.get('track_watched_videos')) { - this.nextSibling.click(); + if (satus.storage.get('mark_watched_videos')) { + if (!satus.storage.get('track_watched_videos')) { + this.nextSibling.click(); + } } } } @@ -2765,7 +2867,7 @@ var skeleton = { component: 'svg', attr: { 'viewBox': '0 0 24 24', - 'fill': 'transparent', + 'fill': 'none', 'stroke': 'currentColor', 'stroke-linecap': 'round', 'stroke-width': '1.75' @@ -2787,6 +2889,7 @@ var skeleton = { appearance: { component: 'button', variant: 'appearance', + category: true, on: { click: { component: 'section', @@ -3237,6 +3340,7 @@ var skeleton = { themes: { component: 'button', class: 'satus-button--themes', + category: true, on: { click: { section: { @@ -3685,6 +3789,7 @@ var skeleton = { player: { component: 'button', class: 'satus-button--player', + category: true, on: { click: { component: 'section', @@ -4666,6 +4771,7 @@ var skeleton = { playlist: { component: 'button', class: 'satus-button--playlist', + category: true, on: { click: { component: 'section', @@ -4725,6 +4831,7 @@ var skeleton = { channel: { component: 'button', class: 'satus-button--channel', + category: true, on: { click: { component: 'section', @@ -4796,6 +4903,7 @@ var skeleton = { shortcuts: { component: 'button', class: 'satus-button--shortcuts', + category: true, on: { click: { section: { @@ -5148,6 +5256,7 @@ var skeleton = { blacklist: { component: 'button', class: 'satus-button--blacklist', + category: true, on: { click: { section: { @@ -5361,6 +5470,7 @@ var skeleton = { analyzer: { component: 'button', class: 'satus-button--analyzer', + category: true, on: { click: { section: { @@ -5539,12 +5649,18 @@ var skeleton = { # INITIALIZATION --------------------------------------------------------------*/ +satus.parents(skeleton); + satus.storage.attributes = { theme: true }; satus.storage.import(function (items) { - var language = items.language || window.navigator.language || 'en'; + var language = items.language || window.navigator.language; + + if (language.indexOf('en') === 0) { + language = 'en'; + } if (document.documentElement.hasAttribute('page')) { chrome.runtime.sendMessage({ diff --git a/satus.css b/satus.css index c94a54f80..296879e42 100644 --- a/satus.css +++ b/satus.css @@ -1,8 +1 @@ -/*-------------------------------------------------------------- -!!! PLEASE DO NOT EDIT THIS VERSION !!! ----------------------------------------------------------------- -https://github.com/victor-savinov/satus - -Full version is here soon ---------------------------------------------------------------*/ - -html{--satus-primary:#ff4158;--satus-switch-background:rgba(0,0,0,.08);--satus-header-background:#fff;--satus-header-text:#777;--satus-layers-background:#f7f7f6;--satus-layers-text:#777;--satus-section-card-background:#fff;--satus-modal-background:#fff;--satus-modal-text:#777;--satus-hover:rgba(0, 0, 0, .04);--satus-switch-track:#b8b8b8;--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#fff;--satus-tabs:#fff}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:0;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:22px;height:22px;border:2px solid rgba(255,255,255,.4);border-radius:50%}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{display:flex;flex-direction:column;align-items:center}.satus-modal--color-picker canvas{width:256px;height:256px}.satus-color-picker__dim{position:absolute;width:256px;height:256px;pointer-events:none;opacity:0;border-radius:50%;background:#000}.satus-color-picker__cursor{position:absolute;width:5px;height:5px;transform:translate(-50%,-50%);pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000}.satus-color-picker__slider .satus-slider__container{height:18px}.satus-color-picker__slider .satus-slider__track-container{top:calc(50% - 9px);height:18px}.satus-color-picker__slider .satus-slider__track-container::before{height:16px;opacity:1;border:1px solid #bfbfbf;border-radius:4px;background:linear-gradient(90deg,#fff,#000)}.satus-color-picker__slider .satus-slider__track{background:0 0}.satus-color-picker__slider .satus-slider__thumb{top:0;height:18px;border-radius:4px;background:#fff;box-shadow:0 0 2px rgb(0,0,0,.2)}.satus-color-picker__slider .satus-slider__thumb:before{display:none}.satus-color-picker__actions{display:flex;width:100%;justify-content:flex-end}.satus-color-picker__actions .satus-button{height:32px;margin:8px 4px 0;border-radius:8px;background:rgba(0,0,0,.15)}.satus-color-picker__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background);overflow-y:auto;box-sizing:border-box}.satus-tabs{position:relative;display:flex;overflow:hidden;box-sizing:border-box;width:calc(100% - 16px);margin:16px 8px 4px;border:1px solid var(--satus-tabs);border-radius:18px}.satus-tabs__selection{position:absolute;z-index:0;left:0;width:50%;height:32px;transition:left .25s;border-radius:18px;background:var(--satus-tabs);box-shadow:1px 0 4px rgb(0,0,0,.8)}.satus-tabs__button{background:0 0;border:none;font-family:inherit;font-weight:500;font-size:12px;color:inherit;height:32px;flex:1;text-transform:uppercase;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;position:relative;z-index:1;padding:0 16px}.satus-tabs__button:hover{cursor:pointer}.satus-button{font:inherit;position:relative;overflow:hidden;height:48px;margin:0;padding:8px;color:var(--satus-button-text,inherit);border:none;background:var(--satus-button-background,transparent);appearance:none;text-align:left}.satus-button:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-button>*{pointer-events:none}.satus-header .satus-button{width:40px;min-width:40px;height:40px;padding:8px;color:inherit;border-radius:50%}.satus-header .satus-section--align-start>*{margin-right:8px}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;min-height:48px}.satus-list__item>:last-child{text-align:right}.satus-section{display:flex;flex-wrap:wrap;box-sizing:border-box}.satus-section--align-start{justify-content:flex-start}.satus-section--align-end{justify-content:flex-end}.satus-section--column{flex-direction:column}.satus-header>.satus-section{align-items:center}.satus-section--card{flex-direction:column;width:calc(100% - 24px);max-width:900px;margin:12px auto 0;padding:8px 0;border:1px solid rgba(0,0,0,.1);border-radius:8px;background:var(--satus-section-card-background);color:var(--satus-section-card-text);box-sizing:border-box}.satus-section--card:last-child{margin:12px auto}.satus-section--card>*{min-height:48px;padding:0 16px;text-align:left;box-sizing:border-box;width:100%}.satus-section--card>.satus-radio,.satus-section--card>.satus-select,.satus-section--card>.satus-slider,.satus-section--card>.satus-switch{display:flex;justify-content:space-between;align-items:center}.satus-section--card>.satus-button:hover,.satus-section--card>.satus-radio:hover,.satus-section--card>.satus-select:hover,.satus-section--card>.satus-slider:hover,.satus-section--card>.satus-switch:hover{background-color:var(--satus-hover)}.satus-section--card>.satus-button{display:flex;padding:0 16px;align-items:center}.satus-section--card>.satus-button>svg{width:20px;margin:2px 16px 0 0;color:var(--satus-primary)}.satus-h2--section-label,.satus-section--label{font-size:14px;display:block;max-width:900px;margin:16px 16px 8px;width:100%;font-weight:600}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3)}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.2);backdrop-filter:blur(8px)}.satus-modal__surface{font-size:14px;display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;margin:0 16px;padding:8px 16px;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-text);border-radius:6px;background-color:var(--satus-modal-background);box-shadow:inset 0 -1px 1px 1px rgb(0,0,0,.1),0 2px 6px rgb(0,0,0,.15)}.satus-modal__surface .satus-section--actions{display:flex;justify-content:flex-end;align-items:center;margin-top:16px}.satus-modal__surface .satus-section--actions .satus-button{height:32px;margin-left:8px;border-radius:4px;padding:0 8px}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:0;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer}.satus-switch>i{width:38px;height:20px;transition:background-color 150ms;border-radius:20px;background-color:var(--satus-switch-track);flex:0 0 38px}.satus-section--card .satus-switch>i{margin-left:16px}.satus-switch[data-value=true]>i{background-color:var(--satus-switch-track--active)}.satus-switch>i::before{display:block;width:16px;height:16px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:var(--satus-switch-thumb);will-change:transform}.satus-switch[data-value=true]>i::before{transform:translateX(18px)}.satus-slider{position:relative;display:flex;flex-direction:column;box-sizing:border-box;width:100%;min-height:64px;padding:0 16px;-webkit-user-select:none;-moz-user-select:none;user-select:none;outline:0;align-items:flex-start;justify-content:center}.satus-slider:hover{cursor:pointer;background-color:rgba(0,0,0,.04)}.satus-slider__label{cursor:default}.satus-slider>input{position:absolute;z-index:1;top:0;left:0;box-sizing:border-box;width:100%;height:100%;margin:0;padding:0;opacity:0}.satus-slider__container{position:relative;width:100%;height:12px;margin:8px 0 0}.satus-slider__track-container{position:absolute;top:calc(50% - 1px);width:100%;height:2px;pointer-events:none}.satus-slider__track-container::before{position:absolute;top:0;left:0;width:100%;height:2px;content:'';opacity:.26;background-color:var(--satus-primary)}.satus-slider__track{position:relative;width:0;height:100%;background-color:var(--satus-primary);will-change:width}.satus-slider:not(.satus-slider--dragging) .satus-slider__track{transition:width .1s ease-out}.satus-slider__thumb{position:absolute;top:-5px;right:-12px;width:12px;height:12px;border-radius:50%;background-color:var(--satus-primary);box-shadow:0 1px 5px rgba(0,0,0,.15)}.satus-slider .satus-slider__thumb::before{font-size:13px;position:absolute;top:-34px;left:50%;visibility:hidden;box-sizing:border-box;min-width:28px;padding:4px 4px;content:attr(data-value);transform:translateX(-50%);text-align:center;pointer-events:none;color:#fff;border-radius:4px;background:var(--satus-theme-tooltip)}.satus-slider:hover .satus-slider__thumb::before,.satus-slider>input:focus .satus-slider__container .satus-slider__thumb::before{visibility:visible}.satus-slider__ring{position:absolute;top:-11px;right:-18px;width:24px;height:24px;transition:.1s;transform:scale(0);opacity:0;border-radius:50%;background-color:var(--satus-primary)}.satus-slider>input:focus+.satus-slider__container .satus-slider__ring{transform:scale(1);opacity:.25}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{text-transform:uppercase;font-size:11px;opacity:.5}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;background:rgba(0,0,0,.15);margin:8px 4px 0;border-radius:8px}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__mouse>div{position:absolute;top:0;left:13px;width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-4px;left:21px;width:2px;height:18px;content:'';background:#f96754}.satus-shortcut__mouse.false::after{position:absolute;top:-12px;left:17px;width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:14px;left:17px;width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-base{display:flex;flex-direction:column;width:100%;height:100%}.satus-text-field{position:relative;padding:0 16px;background-color:#333347;border-radius:8px;color:#c4c4d4;overflow:hidden;display:flex}.satus-text-field__pre{display:flex;position:relative;height:100%;margin:0;padding:0;overflow:hidden;align-items:center;flex:1}.satus-text-field__input{font:inherit;position:absolute;top:0;left:0;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0;opacity:0;border:none;appearance:none;z-index:9}.satus-text-field__hidden-text{position:absolute;pointer-events:none;opacity:0}.satus-text-field__text{position:absolute;top:0;left:0;display:flex;height:100%;margin:0;align-items:center}.satus-text-field__cursor{position:absolute;top:6px;left:0;display:none;width:2px;height:25px;animation:blink 1s step-end 8;background:#fa0}.satus-text-field__selection{position:absolute;top:5px;left:0;display:none;width:0;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:3px;background:rgba(255,255,255,.1)}.satus-text-field__input:focus+*+*+*+.satus-text-field__cursor,.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field__text>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__text>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-header{display:flex;box-sizing:border-box;height:56px;padding:0 16px;color:var(--satus-header-text);background:var(--satus-header-background);align-items:center;justify-content:space-between}.satus-header .satus-h1--title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.satus-alert{display:flex;box-sizing:border-box;min-height:48px;margin:8px;padding:8px 16px;border-radius:8px;align-items:center}.satus-alert--error{color:#c55959;border:1px solid #641616;background:#430f0f}.satus-layers{position:relative;overflow:hidden;color:var(--satus-layers-text);background:var(--satus-layers-background);flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;width:100%;height:100%;flex-wrap:wrap;align-content:flex-start}.satus-input[type=text]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:0;padding:0 8px;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-aside{color:var(--satus-aside-text);background:var(--satus-aside-background);box-sizing:border-box}.satus-select{position:relative;display:flex;box-sizing:border-box;align-items:center;justify-content:space-between}.satus-select__value{margin-left:16px;text-align:right;opacity:.75}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;padding:inherit;cursor:pointer;opacity:0;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1s;opacity:var(--satus-pluviam-opacity,.08);border-radius:50%;background:var(--satus-pluviam-background,#000);animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:var(--satus-pluviam-opacity,.08)}70%{transform:scale(.8);opacity:var(--satus-pluviam-opacity,.08)}100%{transform:scale(1);opacity:0}} \ No newline at end of file +html{--satus-primary:#ff4766;--satus-switch-background:rgba(0,0,0,.08);--satus-header-background:#fff;--satus-header-text:#777;--satus-layers-background:#f7f7f6;--satus-layers-text:#777;--satus-section-card-background:#fff;--satus-modal-background:#fff;--satus-modal-text:#777;--satus-hover:rgba(0, 0, 0, .04);--satus-switch-track:#b8b8b8;--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#fff;--satus-tabs:#fff;--satus-tooltip:rgba(0,0,0,.4)}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:0;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:22px;height:22px;border:2px solid rgba(255,255,255,.4);border-radius:50%}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{display:flex;flex-direction:column;align-items:center}.satus-modal--color-picker canvas{width:256px;height:256px}.satus-color-picker__dim{position:absolute;width:256px;height:256px;pointer-events:none;opacity:0;border-radius:50%;background:#000}.satus-color-picker__cursor{position:absolute;width:5px;height:5px;transform:translate(-50%,-50%);pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000}.satus-color-picker__slider .satus-slider__container{height:18px}.satus-color-picker__slider .satus-slider__track-container{top:calc(50% - 9px);height:18px}.satus-color-picker__slider .satus-slider__track-container::before{height:16px;opacity:1;border:1px solid #bfbfbf;border-radius:4px;background:linear-gradient(90deg,#fff,#000)}.satus-color-picker__slider .satus-slider__track{background:0 0}.satus-color-picker__slider .satus-slider__thumb{top:0;height:18px;border-radius:4px;background:#fff;box-shadow:0 0 2px rgb(0,0,0,.2)}.satus-color-picker__slider .satus-slider__thumb:before{display:none}.satus-color-picker__actions{display:flex;width:100%;justify-content:flex-end}.satus-color-picker__actions .satus-button{height:32px;margin:8px 4px 0;border-radius:8px;background:rgba(0,0,0,.15)}.satus-color-picker__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background);overflow-y:auto;box-sizing:border-box}.satus-tabs{position:relative;display:flex;overflow:hidden;box-sizing:border-box;width:calc(100% - 16px);margin:16px 8px 4px;border:1px solid var(--satus-tabs);border-radius:18px}.satus-tabs__selection{position:absolute;z-index:0;left:0;width:50%;height:32px;transition:left .25s;border-radius:18px;background:var(--satus-tabs);box-shadow:1px 0 4px rgb(0,0,0,.8)}.satus-tabs__button{background:0 0;border:none;font-family:inherit;font-weight:500;font-size:12px;color:inherit;height:32px;flex:1;text-transform:uppercase;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;position:relative;z-index:1;padding:0 16px}.satus-tabs__button:hover{cursor:pointer}.satus-button{font:inherit;position:relative;overflow:hidden;height:48px;margin:0;padding:8px;color:var(--satus-button-text,inherit);border:none;background:var(--satus-button-background,transparent);appearance:none;text-align:left}.satus-button:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-button>*{pointer-events:none}.satus-header .satus-button{width:40px;min-width:40px;height:40px;padding:8px;color:inherit;border-radius:50%}.satus-header .satus-section--align-start>*{margin-right:8px}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;min-height:48px}.satus-list__item>:last-child{text-align:right}.satus-section{display:flex;flex-wrap:wrap;box-sizing:border-box}.satus-section--align-start{justify-content:flex-start}.satus-section--align-end{justify-content:flex-end}.satus-section--column{flex-direction:column}.satus-header>.satus-section{align-items:center}.satus-section--card{flex-direction:column;width:calc(100% - 24px);max-width:900px;margin:12px auto 0;padding:8px 0;border:1px solid rgba(0,0,0,.1);border-radius:8px;background:var(--satus-section-card-background);color:var(--satus-section-card-text);box-sizing:border-box}.satus-section--card:last-child{margin:12px auto}.satus-section--card>*{min-height:48px;padding:0 16px;text-align:left;box-sizing:border-box;width:100%}.satus-section--card>.satus-radio,.satus-section--card>.satus-select,.satus-section--card>.satus-switch{display:flex;justify-content:space-between;align-items:center}.satus-section--card>.satus-button:hover,.satus-section--card>.satus-radio:hover,.satus-section--card>.satus-select:hover,.satus-section--card>.satus-slider:hover,.satus-section--card>.satus-switch:hover{background-color:var(--satus-hover)}.satus-section--card>.satus-button{display:flex;padding:0 16px;align-items:center}.satus-section--card>.satus-button>svg{width:20px;margin:2px 16px 0 0;color:var(--satus-primary)}.satus-h2--section-label,.satus-section--label{font-size:14px;display:block;max-width:900px;margin:16px 16px 8px;width:100%;font-weight:600}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3)}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.2);backdrop-filter:blur(8px)}.satus-modal__surface{display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;margin:0 16px;padding:8px 0;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-text);border-radius:6px;background-color:var(--satus-modal-background);box-shadow:inset 0 -1px 1px 1px rgb(0,0,0,.1),0 2px 6px rgb(0,0,0,.15)}.satus-modal__surface .satus-section--actions{display:flex;margin:16px 8px 0;justify-content:flex-end;align-items:center}.satus-modal__surface .satus-section--actions .satus-button{height:32px;margin-left:8px;padding:0 8px;border-radius:4px}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:0;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer}.satus-switch>i{width:38px;height:20px;transition:background-color 150ms;border-radius:20px;background-color:var(--satus-switch-track);flex:0 0 38px}.satus-section--card .satus-switch>i{margin-left:16px}.satus-switch[data-value=true]>i{background-color:var(--satus-switch-track--active)}.satus-switch>i::before{display:block;width:16px;height:16px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:var(--satus-switch-thumb);will-change:transform}.satus-switch[data-value=true]>i::before{transform:translateX(18px)}.satus-slider{box-sizing:border-box;width:100%;padding:8px 16px 0;outline:0}.satus-slider__container{position:relative;height:32px;width:100%}.satus-slider__track{position:absolute;top:calc(50% - 1px);left:0;height:2px;width:100%}.satus-slider__track::before{position:absolute;left:0;top:0;width:100%;height:100%;background:var(--satus-primary);opacity:.24;content:''}.satus-slider__handle:focus::after{content:attr(data-value);position:absolute;left:50%;top:-2px;background:var(--satus-primary);color:#fff;display:block;transform:translate(-50%,-100%);padding:1px 4px;border-radius:4px}.satus-slider__track-fill{position:absolute;left:0;top:0;height:100%;background:var(--satus-primary)}.satus-slider__handle{position:absolute;width:10px;height:10px;background:var(--satus-primary);border-radius:50%;transform:translate(-50%,-50%);top:50%;left:0}.satus-slider__handle::before{content:'';background:var(--satus-primary);position:absolute;left:50%;top:50%;width:1px;height:1px;opacity:0;border-radius:50%;transform:translate(-50%,-50%) scale(1);transition:.2s}.satus-slider:focus .satus-slider__handle::before{transform:translate(-50%,-50%) scale(26);opacity:.24}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{text-transform:uppercase;font-size:11px;opacity:.5}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;background:rgba(0,0,0,.15);margin:8px 4px 0;border-radius:8px}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__mouse>div{position:absolute;top:0;left:13px;width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-4px;left:21px;width:2px;height:18px;content:'';background:#f96754}.satus-shortcut__mouse.false::after{position:absolute;top:-12px;left:17px;width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:14px;left:17px;width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-base{display:flex;flex-direction:column;width:100%;height:100%}.satus-text-field{position:relative;padding:0 16px;background-color:#333347;border-radius:8px;color:#c4c4d4;overflow:hidden;display:flex}.satus-text-field__pre{display:flex;position:relative;height:100%;margin:0;padding:0;overflow:hidden;align-items:center;flex:1}.satus-text-field__input{font:inherit;position:absolute;top:0;left:0;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0;opacity:0;border:none;appearance:none;z-index:9}.satus-text-field__hidden-text{position:absolute;pointer-events:none;opacity:0}.satus-text-field__text{position:absolute;top:0;left:0;display:flex;height:100%;margin:0;align-items:center}.satus-text-field__cursor{position:absolute;top:6px;left:0;display:none;width:2px;height:25px;animation:blink 1s step-end 8;background:#fa0}.satus-text-field__selection{position:absolute;top:5px;left:0;display:none;width:0;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:3px;background:rgba(255,255,255,.1)}.satus-text-field__input:focus+*+*+*+.satus-text-field__cursor,.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field__text>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__text>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-header{display:flex;box-sizing:border-box;height:56px;padding:0 16px;color:var(--satus-header-text);background:var(--satus-header-background);align-items:center;justify-content:space-between}.satus-header .satus-h1--title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.satus-alert{display:flex;box-sizing:border-box;min-height:48px;margin:8px;padding:8px 16px;border-radius:8px;align-items:center}.satus-alert--error{color:#c55959;border:1px solid #641616;background:#430f0f}.satus-layers{position:relative;overflow:hidden;color:var(--satus-layers-text);background:var(--satus-layers-background);flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;width:100%;height:100%;flex-wrap:wrap;align-content:flex-start}.satus-input[type=text]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:0;padding:0 8px;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-aside{color:var(--satus-aside-text);background:var(--satus-aside-background);box-sizing:border-box}.satus-select{position:relative;display:flex;box-sizing:border-box;align-items:center;justify-content:space-between}.satus-select__value{margin-left:16px;text-align:right;opacity:.75}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;padding:inherit;cursor:pointer;opacity:0;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1s;opacity:var(--satus-pluviam-opacity,.08);border-radius:50%;background:var(--satus-pluviam-background,#000);animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:var(--satus-pluviam-opacity,.08)}70%{transform:scale(.8);opacity:var(--satus-pluviam-opacity,.08)}100%{transform:scale(1);opacity:0}} \ No newline at end of file diff --git a/satus.js b/satus.js index fb50af884..3ff8d7999 100644 --- a/satus.js +++ b/satus.js @@ -1,8 +1 @@ -/*-------------------------------------------------------------- -!!! PLEASE DO NOT EDIT THIS VERSION !!! ----------------------------------------------------------------- -https://github.com/victor-savinov/satus - -Full version is here soon ---------------------------------------------------------------*/ - -var satus={components:{},events:{},locale:{strings:{}},storage:{attributes:{},data:{}},append:function(M,N){(N||document.body).appendChild(M)},getAnimationDuration:function(M){return 1e3*Number(window.getComputedStyle(M).getPropertyValue("animation-duration").replace(/[^0-9.]/g,""))},attr:function(M,N){if(N)for(var e in N){var i;M.is_svg?M.setAttributeNS(null,e,N[e]):(i=N[e],-1!==["placeholder","title"].indexOf(e)&&(i=satus.locale.get(i)),M.setAttribute(e,i))}},elementIndex:function(M){return Array.prototype.slice.call(M.parentNode.children).indexOf(M)},data:function(M,N){if(N)for(var e in N)M.dataset[e]=N[e]},properties:function(M,N){if(N)for(var e in N)M[e]=N[e]},camelize:function(M){for(var N="",e=0,i=M.length;e Date: Thu, 7 Oct 2021 17:45:40 +0300 Subject: [PATCH 0409/1224] pre-3.600 (2) Signed-off-by: Victor Savinov --- content-scripts.js | 6 - content-styles.css | 716 ++++++--------------------------------------- popup.css | 1 + youtube-scripts.js | 15 +- 4 files changed, 96 insertions(+), 642 deletions(-) diff --git a/content-scripts.js b/content-scripts.js index ac776875d..6eebff216 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -69,12 +69,6 @@ function attributes(items) { 'thumbnails-hide': true, 'hide-footer': true, 'bluelight': true, - 'night-theme': true, - 'dawn-theme': true, - 'sunset-theme': true, - 'desert-theme': true, - 'plain-theme': true, - 'black-theme': true, 'player-crop-chapter-titles': true, 'player-ads': true, 'scroll-bar': true, diff --git a/content-styles.css b/content-styles.css index 6f4e415a5..675ccdaa2 100644 --- a/content-styles.css +++ b/content-styles.css @@ -1338,9 +1338,9 @@ html[it-bluelight][it-youtube-version=old] body { /*BLACK*/ -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), -[data-system-color-scheme=dark][it-black-theme=true][it-schedule=system_peference_dark], -[data-system-color-scheme=light][it-black-theme=true][it-schedule=system_peference_light] { +[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), +[data-system-color-scheme=dark][it-theme=black][it-schedule=system_peference_dark], +[data-system-color-scheme=light][it-theme=black][it-schedule=system_peference_light] { --yt-swatch-primary: #000!important; --yt-swatch-primary-darker: #000!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -1388,16 +1388,16 @@ html[it-bluelight][it-youtube-version=old] body { --yt-spec-themed-green: #107516 !important; } -html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo, -[data-system-color-scheme=dark][it-black-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo, -[data-system-color-scheme=light][it-black-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { +html[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo, +[data-system-color-scheme=dark][it-theme=black][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo, +[data-system-color-scheme=light][it-theme=black][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { -webkit-filter: grayscale(1) brightness(3.5); filter: grayscale(1) brightness(3.5); } -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, -[data-system-color-scheme=dark][it-black-theme=true][it-schedule=system_peference_dark] ytd-masthead, -[data-system-color-scheme=light][it-black-theme=true][it-schedule=system_peference_light] ytd-masthead { +[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, +[data-system-color-scheme=dark][it-theme=black][it-schedule=system_peference_dark] ytd-masthead, +[data-system-color-scheme=light][it-theme=black][it-schedule=system_peference_light] ytd-masthead { background: #000!important; --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; @@ -1409,9 +1409,9 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=dark][it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { +[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=dark][it-theme=black][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=black][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #000; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -1422,11 +1422,11 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-formatted-string-emoji-size: 24px; } -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], -[data-system-color-scheme=dark][it-black-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-black-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { +[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], +[data-system-color-scheme=dark][it-theme=black][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=black][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -1556,9 +1556,9 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched /*DAWN*/ -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), -[data-system-color-scheme=dark][it-dawn-theme=true][it-schedule=system_peference_dark], -[data-system-color-scheme=light][it-dawn-theme=true][it-schedule=system_peference_light] { +[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), +[data-system-color-scheme=dark][it-theme=dawn][it-schedule=system_peference_dark], +[data-system-color-scheme=light][it-theme=dawn][it-schedule=system_peference_light] { --yt-swatch-primary: #d44d5c!important; --yt-swatch-primary-darker: #d44d5c!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -1606,9 +1606,9 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-spec-themed-green: #107516 !important; } -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, -[data-system-color-scheme=dark][it-dawn-theme=true][it-schedule=system_peference_dark] ytd-masthead, -[data-system-color-scheme=light][it-dawn-theme=true][it-schedule=system_peference_light] ytd-masthead { +[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, +[data-system-color-scheme=dark][it-theme=dawn][it-schedule=system_peference_dark] ytd-masthead, +[data-system-color-scheme=light][it-theme=dawn][it-schedule=system_peference_light] ytd-masthead { background: #734!important; --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; @@ -1620,9 +1620,9 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=dark][it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { +[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=dark][it-theme=dawn][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=dawn][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #d44d5c; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -1633,11 +1633,11 @@ html[it-black-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-formatted-string-emoji-size: 24px; } -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], -[data-system-color-scheme=dark][it-dawn-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-dawn-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { +[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], +[data-system-color-scheme=dark][it-theme=dawn][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=dawn][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -1765,549 +1765,19 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-spec-text-secondary: #f5dbe2; } -html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo, -[data-system-color-scheme=dark][it-dawn-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo, -[data-system-color-scheme=light][it-dawn-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { +html[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo, +[data-system-color-scheme=dark][it-theme=dawn][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo, +[data-system-color-scheme=light][it-theme=dawn][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { -webkit-filter: grayscale(1) brightness(4); filter: grayscale(1) brightness(4); } -/*DEFAULT DARK*/ - -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { - --yt-swatch-header-primary: rgb(34, 38, 42)!important; - --yt-swatch-primary: rgb(34, 38, 42)!important; - --yt-swatch-primary-darker: rgb(28, 32, 36)!important; - --yt-swatch-text: rgb(200, 200, 200)!important; - --yt-swatch-important-text: rgb(200, 200, 200)!important; - --yt-swatch-input-text: rgba(200, 200, 200, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(200, 200, 200)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} - -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #masthead-search-term { - border: 1px solid #444!important; - border-right: none!important; -} - -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light])[youtube-version=old] body { - height: auto; -} - -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) { - background: var(--yt-swatch-primary-darker)!important; -} - -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead { - background: #232323!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; -} - -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #282828; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} - -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) { - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); - --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: hsl(0, 0%, 14%); - --paper-listbox-background-color: hsl(0, 0%, 14%); - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: hsl(0, 0%, 14%); - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); - --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: hsl(0, 0%, 7%); - --yt-main-app-background: hsl(0, 0%, 7%); - --yt-main-app-background-tmp: hsl(0, 0%, 7%); - --yt-guide-background: hsl(0, 0%, 11%); - --yt-dialog-background: hsl(0, 0%, 14%); - --yt-searchbox-background: hsl(0, 0%, 7%); - --yt-channel-header-background: hsla(0, 0%, 11%, .8); - --yt-sidebar-background: hsla(0, 0%, 11%, .8); - --yt-transcript-background: hsl(0, 0%, 11%); - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); - --yt-blue-suggestive: transparent; -} - -[it-youtube-version=old][it-default-dark-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light])[youtube-version=old] body { - height: auto!important; - background: rgb(19, 19, 19)!important; -} - -@media (prefers-color-scheme: dark) { - [it-youtube-version=old][it-default-theme=true][it-schedule=system_peference_dark] { - --yt-swatch-header-primary: rgb(34, 38, 42)!important; - --yt-swatch-primary: rgb(34, 38, 42)!important; - --yt-swatch-primary-darker: rgb(28, 32, 36)!important; - --yt-swatch-text: rgb(200, 200, 200)!important; - --yt-swatch-important-text: rgb(200, 200, 200)!important; - --yt-swatch-input-text: rgba(200, 200, 200, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(200, 200, 200)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] #masthead-search-term { - border: 1px solid #444!important; - border-right: none!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] html[youtube-version=old] body { - height: auto; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] { - background: var(--yt-swatch-primary-darker)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark] ytd-masthead { - background: #232323!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #282828; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) { - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); - --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: hsl(0, 0%, 14%); - --paper-listbox-background-color: hsl(0, 0%, 14%); - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: hsl(0, 0%, 14%); - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); - --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: hsl(0, 0%, 7%); - --yt-main-app-background: hsl(0, 0%, 7%); - --yt-main-app-background-tmp: hsl(0, 0%, 7%); - --yt-guide-background: hsl(0, 0%, 11%); - --yt-dialog-background: hsl(0, 0%, 14%); - --yt-searchbox-background: hsl(0, 0%, 7%); - --yt-channel-header-background: hsla(0, 0%, 11%, .8); - --yt-sidebar-background: hsla(0, 0%, 11%, .8); - --yt-transcript-background: hsl(0, 0%, 11%); - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); - --yt-blue-suggestive: transparent; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_dark][youtube-version=old] body { - height: auto!important; - background: rgb(19, 19, 19)!important; - } -} - -@media (prefers-color-scheme: light) { - [it-youtube-version=old][it-default-theme=true][it-schedule=system_peference_light] { - --yt-swatch-header-primary: rgb(34, 38, 42)!important; - --yt-swatch-primary: rgb(34, 38, 42)!important; - --yt-swatch-primary-darker: rgb(28, 32, 36)!important; - --yt-swatch-text: rgb(200, 200, 200)!important; - --yt-swatch-important-text: rgb(200, 200, 200)!important; - --yt-swatch-input-text: rgba(200, 200, 200, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(200, 200, 200)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] #masthead-search-term { - border: 1px solid #444!important; - border-right: none!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] html[youtube-version=old] body { - height: auto; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] { - background: var(--yt-swatch-primary-darker)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light] ytd-masthead { - background: #232323!important; - --yt-swatch-primary: rgb(35, 35, 35)!important; - --yt-swatch-primary-darker: rgb(32, 32, 32)!important; - --yt-swatch-text: rgb(255, 255, 255)!important; - --yt-swatch-important-text: rgb(255, 255, 255)!important; - --yt-swatch-input-text: rgba(255, 255, 255, 1)!important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1)!important; - --yt-swatch-logo-override: rgb(255, 255, 255)!important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) :not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #282828; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: hsla(0, 0%, 53.3%, .4); - --yt-playlist-background-item: hsla(0, 0%, 53.3%, .2); - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: hsl(0, 0%, 14%); - --paper-listbox-background-color: hsl(0, 0%, 14%); - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: hsl(0, 0%, 14%); - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: hsla(0, 0%, 53.3%, .4); - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: hsla(0, 100%, 100%, .08); - --yt-menu-focus-background-color: hsla(0, 100%, 100%, .26); - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: hsl(0, 0%, 7%); - --yt-main-app-background: hsl(0, 0%, 7%); - --yt-main-app-background-tmp: hsl(0, 0%, 7%); - --yt-guide-background: hsl(0, 0%, 11%); - --yt-dialog-background: hsl(0, 0%, 14%); - --yt-searchbox-background: hsl(0, 0%, 7%); - --yt-channel-header-background: hsla(0, 0%, 11%, .8); - --yt-sidebar-background: hsla(0, 0%, 11%, .8); - --yt-transcript-background: hsl(0, 0%, 11%); - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: hsl(0, 0%, 11%); - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: hsl(0, 0%, 16%); - --yt-blue-suggestive: transparent; - } - [it-youtube-version=old][it-default-dark-theme=true][it-schedule=system_peference_light][youtube-version=old] body { - height: auto!important; - background: rgb(19, 19, 19)!important; - } -} - - /*DESERT*/ -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), -[data-system-color-scheme=dark][it-desert-theme=true][it-schedule=system_peference_dark], -[data-system-color-scheme=light][it-desert-theme=true][it-schedule=system_peference_light] { +[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), +[data-system-color-scheme=dark][it-theme=desert][it-schedule=system_peference_dark], +[data-system-color-scheme=light][it-theme=desert][it-schedule=system_peference_light] { --yt-swatch-primary: #faf9f9!important; --yt-swatch-primary-darker: #faf9f9!important; --yt-swatch-text: #555!important; @@ -2355,9 +1825,9 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-spec-themed-green: #107516 !important; } -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, -[data-system-color-scheme=dark][it-desert-theme=true][it-schedule=system_peference_dark] ytd-masthead, -[data-system-color-scheme=light][it-desert-theme=true][it-schedule=system_peference_light] ytd-masthead { +[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, +[data-system-color-scheme=dark][it-theme=desert][it-schedule=system_peference_dark] ytd-masthead, +[data-system-color-scheme=light][it-theme=desert][it-schedule=system_peference_light] ytd-masthead { background: #bee3db!important; --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; @@ -2369,9 +1839,9 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=dark][it-desert-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-desert-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { +[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=dark][it-theme=desert][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=desert][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #faf9f9; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: #555; @@ -2382,11 +1852,11 @@ html[it-dawn-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedu --yt-formatted-string-emoji-size: 24px; } -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], -[data-system-color-scheme=dark][it-desert-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], -[data-system-color-scheme=light][it-desert-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark] { +[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], +[data-system-color-scheme=dark][it-theme=desert][it-schedule=system_peference_dark]:not(.style-scope)[dark], +[data-system-color-scheme=light][it-theme=desert][it-schedule=system_peference_light]:not(.style-scope)[dark] { --yt-spec-icon-inactive: #555; --yt-spec-text-primary: #555; --ytd-searchbox-border-color: #555; @@ -2517,9 +1987,9 @@ html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche /*NIGHT*/ -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), -[data-system-color-scheme=dark][it-night-theme=true][it-schedule=system_peference_dark], -[data-system-color-scheme=light][it-night-theme=true][it-schedule=system_peference_light] { +[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), +[data-system-color-scheme=dark][it-theme=night][it-schedule=system_peference_dark], +[data-system-color-scheme=light][it-theme=night][it-schedule=system_peference_light] { --yt-swatch-primary: #003459!important; --yt-swatch-primary-darker: #003459!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -2567,16 +2037,16 @@ html[it-desert-theme=true]:not([it-schedule=system_peference_dark]):not([it-sche --yt-spec-themed-green: #107516 !important; } -html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo, -[data-system-color-scheme=dark][it-night-theme=true][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo, -[data-system-color-scheme=light][it-night-theme=true][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { +html[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo, +[data-system-color-scheme=dark][it-theme=night][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo, +[data-system-color-scheme=light][it-theme=night][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { -webkit-filter: grayscale(1) brightness(3.5); filter: grayscale(1) brightness(3.5); } -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, -[data-system-color-scheme=dark][it-night-theme=true][it-schedule=system_peference_dark] ytd-masthead, -[data-system-color-scheme=light][it-night-theme=true][it-schedule=system_peference_light] ytd-masthead { +[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, +[data-system-color-scheme=dark][it-theme=night][it-schedule=system_peference_dark] ytd-masthead, +[data-system-color-scheme=light][it-theme=night][it-schedule=system_peference_light] ytd-masthead { background: #007ea7!important; --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; @@ -2588,9 +2058,9 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=dark][it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { +[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=dark][it-theme=night][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=night][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #003459; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -2601,11 +2071,11 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-formatted-string-emoji-size: 24px; } -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], -[data-system-color-scheme=dark][it-night-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-night-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { +[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], +[data-system-color-scheme=dark][it-theme=night][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=night][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); @@ -2735,9 +2205,9 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched /*PLAIN*/ -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), -[data-system-color-scheme=dark][it-plain-theme=true][it-schedule=system_peference_dark], -[data-system-color-scheme=light][it-plain-theme=true][it-schedule=system_peference_light] { +[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), +[data-system-color-scheme=dark][it-theme=plain][it-schedule=system_peference_dark], +[data-system-color-scheme=light][it-theme=plain][it-schedule=system_peference_light] { --yt-swatch-primary: #c7efcf!important; --yt-swatch-primary-darker: #c7efcf!important; --yt-swatch-text: #666!important; @@ -2785,9 +2255,9 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-spec-themed-green: #107516 !important; } -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, -[data-system-color-scheme=dark][it-plain-theme=true][it-schedule=system_peference_dark] ytd-masthead, -[data-system-color-scheme=light][it-plain-theme=true][it-schedule=system_peference_light] ytd-masthead { +[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, +[data-system-color-scheme=dark][it-theme=plain][it-schedule=system_peference_dark] ytd-masthead, +[data-system-color-scheme=light][it-theme=plain][it-schedule=system_peference_light] ytd-masthead { background: #d6d1b1!important; --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; @@ -2799,9 +2269,9 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=dark][it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { +[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=dark][it-theme=plain][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=plain][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #c7efcf; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -2812,11 +2282,11 @@ html[it-night-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-formatted-string-emoji-size: 24px; } -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], -[data-system-color-scheme=dark][it-plain-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-plain-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { +[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], +[data-system-color-scheme=dark][it-theme=plain][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=plain][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { --yt-spec-icon-inactive: #666; --yt-spec-text-primary: #666; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); @@ -2947,9 +2417,9 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched /*SUNSET*/ -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), -[data-system-color-scheme=dark][it-sunset-theme=true][it-schedule=system_peference_dark], -[data-system-color-scheme=light][it-sunset-theme=true][it-schedule=system_peference_light] { +[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), +[data-system-color-scheme=dark][it-theme=sunset][it-schedule=system_peference_dark], +[data-system-color-scheme=light][it-theme=sunset][it-schedule=system_peference_light] { --yt-swatch-primary: #2f3364!important; --yt-swatch-primary-darker: #2f3364!important; --yt-swatch-text: rgb(255, 255, 255)!important; @@ -2997,9 +2467,9 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-spec-themed-green: #107516 !important; } -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, -[data-system-color-scheme=dark][it-sunset-theme=true][it-schedule=system_peference_dark] ytd-masthead, -[data-system-color-scheme=light][it-sunset-theme=true][it-schedule=system_peference_light] ytd-masthead { +[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, +[data-system-color-scheme=dark][it-theme=sunset][it-schedule=system_peference_dark] ytd-masthead, +[data-system-color-scheme=light][it-theme=sunset][it-schedule=system_peference_light] ytd-masthead { background: #f56264!important; --yt-swatch-primary: rgb(35, 35, 35)!important; --yt-swatch-primary-darker: rgb(32, 32, 32)!important; @@ -3011,9 +2481,9 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-swatch-icon-color: rgba(136, 136, 136, 1)!important; } -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=dark][it-sunset-theme=true][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-sunset-theme=true][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { +[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=dark][it-theme=sunset][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=sunset][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { --yt-live-chat-action-panel-background-color: #2f3364; --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); @@ -3024,11 +2494,11 @@ html[it-plain-theme=true]:not([it-schedule=system_peference_dark]):not([it-sched --yt-formatted-string-emoji-size: 24px; } -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-sunset-theme=true]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], -[data-system-color-scheme=dark][it-sunset-theme=true][it-schedule=system_peference_dark]:not(.style-scope)[dark], -[data-system-color-scheme=light][it-sunset-theme=true][it-schedule=system_peference_light]:not(.style-scope)[dark] { +[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], +[data-system-color-scheme=dark][it-theme=sunset][it-schedule=system_peference_dark]:not(.style-scope)[dark], +[data-system-color-scheme=light][it-theme=sunset][it-schedule=system_peference_light]:not(.style-scope)[dark] { --yt-spec-icon-inactive: #fff; --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); diff --git a/popup.css b/popup.css index bd6fe6b46..90340f23a 100644 --- a/popup.css +++ b/popup.css @@ -543,6 +543,7 @@ overflow: hidden; text-shadow: 0 1px 3px rgba(0, 0, 0, .7); justify-content: space-between; align-items: center; + width: auto; } .satus-label--default-theme { diff --git a/youtube-scripts.js b/youtube-scripts.js index f8386f17d..09c1db8be 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1690,18 +1690,7 @@ ImprovedTube.font = function () { ------------------------------------------------------------------------------*/ ImprovedTube.themes = function () { - if ( - this.schedule() === true && - ( - this.isset(ImprovedTube.storage.default_dark_theme) && ImprovedTube.storage.default_dark_theme !== false || - this.isset(ImprovedTube.storage.night_theme) && ImprovedTube.storage.night_theme !== false || - this.isset(ImprovedTube.storage.dawn_theme) && ImprovedTube.storage.dawn_theme !== false || - this.isset(ImprovedTube.storage.sunset_theme) && ImprovedTube.storage.sunset_theme !== false || - this.isset(ImprovedTube.storage.desert_theme) && ImprovedTube.storage.desert_theme !== false || - this.isset(ImprovedTube.storage.plain_theme) && ImprovedTube.storage.plain_theme !== false || - this.isset(ImprovedTube.storage.black_theme) && ImprovedTube.storage.black_theme !== false - ) - ) { + if (this.schedule() === true && this.isset(this.storage.theme)) { var PREF_OLD = this.getParams(this.getCookieValueByName('PREF')), PREF = this.getParams(this.getCookieValueByName('PREF')), result = ''; @@ -1718,7 +1707,7 @@ ImprovedTube.themes = function () { this.setCookie('PREF', result.slice(0, -1)); - document.documentElement.setAttribute('it-theme', 'true'); + document.documentElement.setAttribute('it-theme', this.storage.theme); } else { document.documentElement.removeAttribute('it-theme'); } From 3b39607f0fa64d6add874cfd7e54168aae44c79e Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Thu, 7 Oct 2021 18:30:27 +0300 Subject: [PATCH 0410/1224] pre-3.600 (3) Signed-off-by: Victor Savinov --- popup.css | 21 ++++++++++----------- satus.js | 2 +- youtube-scripts.js | 44 ++++++-------------------------------------- 3 files changed, 17 insertions(+), 50 deletions(-) diff --git a/popup.css b/popup.css index 90340f23a..7c6e8776c 100644 --- a/popup.css +++ b/popup.css @@ -15,7 +15,6 @@ body { font-size: 14px; overflow: hidden; margin: 0; - --satus-primary: #ff4158; --satus-header-background: #fff; --satus-header-text: #777; @@ -152,9 +151,9 @@ body[theme=black] { } .satus-header .satus-section { + width: calc(100% - 96px); flex-wrap: nowrap; flex: 1; - width: calc(100% - 96px); } .satus-header .satus-section--align-start>* { @@ -187,14 +186,15 @@ body[theme=black] { } .satus-header .satus-span--title { - text-overflow: ellipsis; overflow: hidden; white-space: nowrap; + text-overflow: ellipsis; flex: 1; } .satus-input--search[type=text] { position: absolute; + z-index: 1; right: 64px; display: none; width: calc(100vw - 80px); @@ -202,7 +202,6 @@ body[theme=black] { padding-right: 36px; background: var(--satus-header-background); box-shadow: 0 0 1px 1px var(--satus-hover); - z-index: 1; } .satus-input--search:focus { @@ -215,13 +214,13 @@ body[theme=black] { .satus-header .satus-button--close-search { position: absolute; + z-index: 1; right: 68px; display: none; width: 28px; min-width: 28px; height: 28px; padding: 4px !important; - z-index: 1; } .search-mode .satus-button--close-search { @@ -250,8 +249,8 @@ body[theme=black] { width: calc(100% - 80px); min-width: unset; max-width: unset; - padding: 0; margin: 0; + padding: 0; transform-origin: top; border-top-left-radius: 0; border-top-right-radius: 0; @@ -306,9 +305,9 @@ body[theme=black] { } .satus-modal--vertical .satus-button .satus-span { - text-overflow: ellipsis; overflow: hidden; white-space: nowrap; + text-overflow: ellipsis; } @@ -358,12 +357,12 @@ body[theme=black] { } .satus-section--home .satus-button> :nth-child(2) { -overflow: hidden; + overflow: hidden; + width: calc(100% - 16px); margin: 8px 0 0; + text-align: center; white-space: nowrap; text-overflow: ellipsis; - width: calc(100% - 16px); - text-align: center; } .satus-button--general svg { @@ -535,6 +534,7 @@ overflow: hidden; .satus-label--plain-theme, .satus-label--black-theme { display: flex; + width: auto; height: 80px; margin: 8px; cursor: pointer; @@ -543,7 +543,6 @@ overflow: hidden; text-shadow: 0 1px 3px rgba(0, 0, 0, .7); justify-content: space-between; align-items: center; - width: auto; } .satus-label--default-theme { diff --git a/satus.js b/satus.js index 3ff8d7999..8c651abcb 100644 --- a/satus.js +++ b/satus.js @@ -1 +1 @@ -var satus={components:{},events:{},locale:{strings:{}},storage:{attributes:{},data:{}},append:function(M,N){(N||document.body).appendChild(M)},getAnimationDuration:function(M){return 1e3*Number(window.getComputedStyle(M).getPropertyValue("animation-duration").replace(/[^0-9.]/g,""))},attr:function(M,N){if(N)for(var e in N){var i;M.is_svg?M.setAttributeNS(null,e,N[e]):(i=N[e],-1!==["placeholder","title"].indexOf(e)&&(i=satus.locale.get(i)),M.setAttribute(e,i))}},elementIndex:function(M){return Array.prototype.slice.call(M.parentNode.children).indexOf(M)},data:function(M,N){if(N)for(var e in N)M.dataset[e]=N[e]},properties:function(M,N){if(N)for(var e in N)M[e]=N[e]},camelize:function(M){for(var N="",e=0,i=M.length;e 0) { - new_value.wheel = 1; - } else if (old_value.wheel < 0) { - new_value.wheel = -1; - } else { - new_value.wheel = 0; - } - - storage[key] = new_value; - } catch (err) {} + storage[key] = this.storage[name]; + } catch (error) { + console.error(error); + } } } } From 9fb535d87e29b414b29d257777394a24cce9f3a1 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sat, 9 Oct 2021 21:22:30 +0300 Subject: [PATCH 0411/1224] v3.600-release --- popup.js | 105 +++++++++++++++++++++------------------------ satus.css | 2 +- satus.js | 2 +- youtube-scripts.js | 73 ++++++++++++++++++------------- 4 files changed, 94 insertions(+), 88 deletions(-) diff --git a/popup.js b/popup.js index 3fc293787..6241727b6 100644 --- a/popup.js +++ b/popup.js @@ -3358,7 +3358,22 @@ var skeleton = { theme_my_colors: { component: 'switch', - text: 'activate' + text: 'activate', + storage: false, + on: { + render: function () { + this.dataset.value = satus.storage.get('theme') === 'my-colors'; + }, + click: function () { + var value = 'default'; + + if (this.dataset.value === 'true') { + value = 'my-colors'; + } + + satus.storage.set('theme', value); + } + } } }, @@ -3369,12 +3384,12 @@ var skeleton = { theme_primary_color: { component: 'color-picker', text: 'primaryColor', - value: 'rgba(200,200,200)' + value: [200, 200, 200] }, theme_text_color: { component: 'color-picker', text: 'textColor', - value: 'rgba(25,25,25)' + value: [25, 25, 25] } } } @@ -3649,13 +3664,10 @@ var skeleton = { text: 'default', radio: { - component: 'input', - attr: { - type: 'radio', - name: 'theme', - value: 'default' - }, - value: true + component: 'radio', + group: 'theme', + value: 'default', + checked: true } }, dark: { @@ -3664,12 +3676,9 @@ var skeleton = { text: 'dark', radio: { - component: 'input', - attr: { - type: 'radio', - name: 'theme', - value: 'dark' - } + component: 'radio', + group: 'theme', + value: 'dark' } }, night: { @@ -3678,12 +3687,9 @@ var skeleton = { text: 'night', radio: { - component: 'input', - attr: { - type: 'radio', - name: 'theme', - value: 'night' - } + component: 'radio', + group: 'theme', + value: 'night' } }, dawn: { @@ -3692,12 +3698,9 @@ var skeleton = { text: 'dawn', radio: { - component: 'input', - attr: { - type: 'radio', - name: 'theme', - value: 'dawn' - } + component: 'radio', + group: 'theme', + value: 'dawn' } }, sunset: { @@ -3706,12 +3709,9 @@ var skeleton = { text: 'sunset', radio: { - component: 'input', - attr: { - type: 'radio', - name: 'theme', - value: 'sunset' - } + component: 'radio', + group: 'theme', + value: 'sunset' } }, desert: { @@ -3720,12 +3720,9 @@ var skeleton = { text: 'desert', radio: { - component: 'input', - attr: { - type: 'radio', - name: 'theme', - value: 'desert' - } + component: 'radio', + group: 'theme', + value: 'desert' } }, plain: { @@ -3734,12 +3731,9 @@ var skeleton = { text: 'plain', radio: { - component: 'input', - attr: { - type: 'radio', - name: 'theme', - value: 'plain' - } + component: 'radio', + group: 'theme', + value: 'plain' } }, black: { @@ -3748,12 +3742,9 @@ var skeleton = { text: 'black', radio: { - component: 'input', - attr: { - type: 'radio', - name: 'theme', - value: 'black' - } + component: 'radio', + group: 'theme', + value: 'black' } } } @@ -3766,17 +3757,17 @@ var skeleton = { svg: { component: 'svg', attr: { - viewBox: '0 0 24 24', - fill: 'transparent', - stroke: 'currentColor', + 'viewBox': '0 0 24 24', + 'fill': 'transparent', + 'stroke': 'currentColor', 'stroke-linecap': 'round', - 'stroke-width': 1.75 + 'stroke-width': '1.75' }, path: { component: 'path', attr: { - d: 'M12 2.69l5.66 5.66a8 8 0 11-11.31 0z' + 'd': 'M12 2.69l5.66 5.66a8 8 0 11-11.31 0z' } } } diff --git a/satus.css b/satus.css index 296879e42..5f56245a6 100644 --- a/satus.css +++ b/satus.css @@ -1 +1 @@ -html{--satus-primary:#ff4766;--satus-switch-background:rgba(0,0,0,.08);--satus-header-background:#fff;--satus-header-text:#777;--satus-layers-background:#f7f7f6;--satus-layers-text:#777;--satus-section-card-background:#fff;--satus-modal-background:#fff;--satus-modal-text:#777;--satus-hover:rgba(0, 0, 0, .04);--satus-switch-track:#b8b8b8;--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#fff;--satus-tabs:#fff;--satus-tooltip:rgba(0,0,0,.4)}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:0;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:22px;height:22px;border:2px solid rgba(255,255,255,.4);border-radius:50%}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{display:flex;flex-direction:column;align-items:center}.satus-modal--color-picker canvas{width:256px;height:256px}.satus-color-picker__dim{position:absolute;width:256px;height:256px;pointer-events:none;opacity:0;border-radius:50%;background:#000}.satus-color-picker__cursor{position:absolute;width:5px;height:5px;transform:translate(-50%,-50%);pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000}.satus-color-picker__slider .satus-slider__container{height:18px}.satus-color-picker__slider .satus-slider__track-container{top:calc(50% - 9px);height:18px}.satus-color-picker__slider .satus-slider__track-container::before{height:16px;opacity:1;border:1px solid #bfbfbf;border-radius:4px;background:linear-gradient(90deg,#fff,#000)}.satus-color-picker__slider .satus-slider__track{background:0 0}.satus-color-picker__slider .satus-slider__thumb{top:0;height:18px;border-radius:4px;background:#fff;box-shadow:0 0 2px rgb(0,0,0,.2)}.satus-color-picker__slider .satus-slider__thumb:before{display:none}.satus-color-picker__actions{display:flex;width:100%;justify-content:flex-end}.satus-color-picker__actions .satus-button{height:32px;margin:8px 4px 0;border-radius:8px;background:rgba(0,0,0,.15)}.satus-color-picker__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background);overflow-y:auto;box-sizing:border-box}.satus-tabs{position:relative;display:flex;overflow:hidden;box-sizing:border-box;width:calc(100% - 16px);margin:16px 8px 4px;border:1px solid var(--satus-tabs);border-radius:18px}.satus-tabs__selection{position:absolute;z-index:0;left:0;width:50%;height:32px;transition:left .25s;border-radius:18px;background:var(--satus-tabs);box-shadow:1px 0 4px rgb(0,0,0,.8)}.satus-tabs__button{background:0 0;border:none;font-family:inherit;font-weight:500;font-size:12px;color:inherit;height:32px;flex:1;text-transform:uppercase;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;position:relative;z-index:1;padding:0 16px}.satus-tabs__button:hover{cursor:pointer}.satus-button{font:inherit;position:relative;overflow:hidden;height:48px;margin:0;padding:8px;color:var(--satus-button-text,inherit);border:none;background:var(--satus-button-background,transparent);appearance:none;text-align:left}.satus-button:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-button>*{pointer-events:none}.satus-header .satus-button{width:40px;min-width:40px;height:40px;padding:8px;color:inherit;border-radius:50%}.satus-header .satus-section--align-start>*{margin-right:8px}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;min-height:48px}.satus-list__item>:last-child{text-align:right}.satus-section{display:flex;flex-wrap:wrap;box-sizing:border-box}.satus-section--align-start{justify-content:flex-start}.satus-section--align-end{justify-content:flex-end}.satus-section--column{flex-direction:column}.satus-header>.satus-section{align-items:center}.satus-section--card{flex-direction:column;width:calc(100% - 24px);max-width:900px;margin:12px auto 0;padding:8px 0;border:1px solid rgba(0,0,0,.1);border-radius:8px;background:var(--satus-section-card-background);color:var(--satus-section-card-text);box-sizing:border-box}.satus-section--card:last-child{margin:12px auto}.satus-section--card>*{min-height:48px;padding:0 16px;text-align:left;box-sizing:border-box;width:100%}.satus-section--card>.satus-radio,.satus-section--card>.satus-select,.satus-section--card>.satus-switch{display:flex;justify-content:space-between;align-items:center}.satus-section--card>.satus-button:hover,.satus-section--card>.satus-radio:hover,.satus-section--card>.satus-select:hover,.satus-section--card>.satus-slider:hover,.satus-section--card>.satus-switch:hover{background-color:var(--satus-hover)}.satus-section--card>.satus-button{display:flex;padding:0 16px;align-items:center}.satus-section--card>.satus-button>svg{width:20px;margin:2px 16px 0 0;color:var(--satus-primary)}.satus-h2--section-label,.satus-section--label{font-size:14px;display:block;max-width:900px;margin:16px 16px 8px;width:100%;font-weight:600}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3)}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.2);backdrop-filter:blur(8px)}.satus-modal__surface{display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;margin:0 16px;padding:8px 0;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-text);border-radius:6px;background-color:var(--satus-modal-background);box-shadow:inset 0 -1px 1px 1px rgb(0,0,0,.1),0 2px 6px rgb(0,0,0,.15)}.satus-modal__surface .satus-section--actions{display:flex;margin:16px 8px 0;justify-content:flex-end;align-items:center}.satus-modal__surface .satus-section--actions .satus-button{height:32px;margin-left:8px;padding:0 8px;border-radius:4px}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:0;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer}.satus-switch>i{width:38px;height:20px;transition:background-color 150ms;border-radius:20px;background-color:var(--satus-switch-track);flex:0 0 38px}.satus-section--card .satus-switch>i{margin-left:16px}.satus-switch[data-value=true]>i{background-color:var(--satus-switch-track--active)}.satus-switch>i::before{display:block;width:16px;height:16px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:var(--satus-switch-thumb);will-change:transform}.satus-switch[data-value=true]>i::before{transform:translateX(18px)}.satus-slider{box-sizing:border-box;width:100%;padding:8px 16px 0;outline:0}.satus-slider__container{position:relative;height:32px;width:100%}.satus-slider__track{position:absolute;top:calc(50% - 1px);left:0;height:2px;width:100%}.satus-slider__track::before{position:absolute;left:0;top:0;width:100%;height:100%;background:var(--satus-primary);opacity:.24;content:''}.satus-slider__handle:focus::after{content:attr(data-value);position:absolute;left:50%;top:-2px;background:var(--satus-primary);color:#fff;display:block;transform:translate(-50%,-100%);padding:1px 4px;border-radius:4px}.satus-slider__track-fill{position:absolute;left:0;top:0;height:100%;background:var(--satus-primary)}.satus-slider__handle{position:absolute;width:10px;height:10px;background:var(--satus-primary);border-radius:50%;transform:translate(-50%,-50%);top:50%;left:0}.satus-slider__handle::before{content:'';background:var(--satus-primary);position:absolute;left:50%;top:50%;width:1px;height:1px;opacity:0;border-radius:50%;transform:translate(-50%,-50%) scale(1);transition:.2s}.satus-slider:focus .satus-slider__handle::before{transform:translate(-50%,-50%) scale(26);opacity:.24}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{text-transform:uppercase;font-size:11px;opacity:.5}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;background:rgba(0,0,0,.15);margin:8px 4px 0;border-radius:8px}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__mouse>div{position:absolute;top:0;left:13px;width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-4px;left:21px;width:2px;height:18px;content:'';background:#f96754}.satus-shortcut__mouse.false::after{position:absolute;top:-12px;left:17px;width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:14px;left:17px;width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-base{display:flex;flex-direction:column;width:100%;height:100%}.satus-text-field{position:relative;padding:0 16px;background-color:#333347;border-radius:8px;color:#c4c4d4;overflow:hidden;display:flex}.satus-text-field__pre{display:flex;position:relative;height:100%;margin:0;padding:0;overflow:hidden;align-items:center;flex:1}.satus-text-field__input{font:inherit;position:absolute;top:0;left:0;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0;opacity:0;border:none;appearance:none;z-index:9}.satus-text-field__hidden-text{position:absolute;pointer-events:none;opacity:0}.satus-text-field__text{position:absolute;top:0;left:0;display:flex;height:100%;margin:0;align-items:center}.satus-text-field__cursor{position:absolute;top:6px;left:0;display:none;width:2px;height:25px;animation:blink 1s step-end 8;background:#fa0}.satus-text-field__selection{position:absolute;top:5px;left:0;display:none;width:0;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:3px;background:rgba(255,255,255,.1)}.satus-text-field__input:focus+*+*+*+.satus-text-field__cursor,.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field__text>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__text>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-header{display:flex;box-sizing:border-box;height:56px;padding:0 16px;color:var(--satus-header-text);background:var(--satus-header-background);align-items:center;justify-content:space-between}.satus-header .satus-h1--title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.satus-alert{display:flex;box-sizing:border-box;min-height:48px;margin:8px;padding:8px 16px;border-radius:8px;align-items:center}.satus-alert--error{color:#c55959;border:1px solid #641616;background:#430f0f}.satus-layers{position:relative;overflow:hidden;color:var(--satus-layers-text);background:var(--satus-layers-background);flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;width:100%;height:100%;flex-wrap:wrap;align-content:flex-start}.satus-input[type=text]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:0;padding:0 8px;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-aside{color:var(--satus-aside-text);background:var(--satus-aside-background);box-sizing:border-box}.satus-select{position:relative;display:flex;box-sizing:border-box;align-items:center;justify-content:space-between}.satus-select__value{margin-left:16px;text-align:right;opacity:.75}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;padding:inherit;cursor:pointer;opacity:0;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1s;opacity:var(--satus-pluviam-opacity,.08);border-radius:50%;background:var(--satus-pluviam-background,#000);animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:var(--satus-pluviam-opacity,.08)}70%{transform:scale(.8);opacity:var(--satus-pluviam-opacity,.08)}100%{transform:scale(1);opacity:0}} \ No newline at end of file +html{--satus-primary:#ff4766;--satus-switch-background:rgba(0,0,0,.08);--satus-header-background:#fff;--satus-header-text:#777;--satus-layers-background:#f7f7f6;--satus-layers-text:#777;--satus-section-card-background:#fff;--satus-modal-background:#fff;--satus-modal-text:#777;--satus-hover:rgba(0, 0, 0, .04);--satus-switch-track:#b8b8b8;--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#fff;--satus-tabs:#fff;--satus-tooltip:rgba(0,0,0,.4)}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:0;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:22px;height:22px;border:2px solid rgba(0,0,0,.16);border-radius:50%;background:#fff}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{padding-top:0}.satus-color-picker__palette{position:relative;overflow:hidden;width:100%;height:256px;background-color:red}.satus-color-picker__palette:before{position:absolute;top:0;left:0;width:100%;height:100%;content:'';background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,transparent)}.satus-color-picker__cursor{position:absolute;width:5px;height:5px;transform:translate(-50%,-50%);pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000}.satus-modal--color-picker .satus-modal__surface .satus-section--color{margin:8px 16px 0;align-items:center}.satus-color-picker__color{width:32px;height:32px;margin:0 16px 0 0;border:2px solid rgba(0,0,0,.16);border-radius:50%;background:red}.satus-slider.satus-color-picker__hue{padding:0;flex:1}.satus-color-picker__hue .satus-slider__track{height:16px;border-radius:4px;background-image:linear-gradient(90deg,red,#ff2a00,#f50,#ff7f00,#fa0,#ffd400,#ff0,#d4ff00,#af0,#80ff00,#5f0,#2bff00,#0f0,#00ff2b,#0f5,#00ff80,#0fa,#00ffd5,#0ff,#00d4ff,#0af,#007fff,#05f,#002bff,#00f,#2a00ff,#50f,#7f00ff,#a0f,#d400ff,#f0f,#ff00d4,#f0a,#ff0080,#f05,#ff002b,red)}.satus-color-picker__hue .satus-slider__handle{width:16px;height:16px;background:#fff;box-shadow:0 0 4px rgb(0,0,0,.64)}.satus-color-picker__hue .satus-slider__handle:focus::after,.satus-color-picker__hue .satus-slider__track-fill,.satus-color-picker__hue::before{display:none}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background);overflow-y:auto;box-sizing:border-box}.satus-tabs{position:relative;display:flex;overflow:hidden;box-sizing:border-box;width:calc(100% - 16px);margin:16px 8px 4px;border:1px solid var(--satus-tabs);border-radius:18px}.satus-tabs__selection{position:absolute;z-index:0;left:0;width:50%;height:32px;transition:left .25s;border-radius:18px;background:var(--satus-tabs);box-shadow:1px 0 4px rgb(0,0,0,.8)}.satus-tabs__button{background:0 0;border:none;font-family:inherit;font-weight:500;font-size:12px;color:inherit;height:32px;flex:1;text-transform:uppercase;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;position:relative;z-index:1;padding:0 16px}.satus-tabs__button:hover{cursor:pointer}.satus-button{font:inherit;position:relative;overflow:hidden;height:48px;margin:0;padding:8px;color:var(--satus-button-text,inherit);border:none;background:var(--satus-button-background,transparent);appearance:none;text-align:left}.satus-button:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-button>*{pointer-events:none}.satus-header .satus-button{width:40px;min-width:40px;height:40px;padding:8px;color:inherit;border-radius:50%}.satus-header .satus-section--align-start>*{margin-right:8px}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;min-height:48px}.satus-list__item>:last-child{text-align:right}.satus-section{display:flex;flex-wrap:wrap;box-sizing:border-box}.satus-section--align-start{justify-content:flex-start}.satus-section--align-end{justify-content:flex-end}.satus-section--column{flex-direction:column}.satus-header>.satus-section{align-items:center}.satus-section--card{flex-direction:column;width:calc(100% - 24px);max-width:900px;margin:12px auto 0;padding:8px 0;border:1px solid rgba(0,0,0,.1);border-radius:8px;background:var(--satus-section-card-background);color:var(--satus-section-card-text);box-sizing:border-box}.satus-section--card:last-child{margin:12px auto}.satus-section--card>*{min-height:48px;padding:0 16px;text-align:left;box-sizing:border-box;width:100%}.satus-section--card>.satus-radio,.satus-section--card>.satus-select,.satus-section--card>.satus-switch{display:flex;justify-content:space-between;align-items:center}.satus-section--card>.satus-button:hover,.satus-section--card>.satus-radio:hover,.satus-section--card>.satus-select:hover,.satus-section--card>.satus-slider:hover,.satus-section--card>.satus-switch:hover{background-color:var(--satus-hover)}.satus-section--card>.satus-button{display:flex;padding:0 16px;align-items:center}.satus-section--card>.satus-button>svg{width:20px;margin:2px 16px 0 0;color:var(--satus-primary)}.satus-h2--section-label,.satus-section--label{font-size:14px;display:block;max-width:900px;margin:16px 16px 8px;width:100%;font-weight:600}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3)}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.2);backdrop-filter:blur(8px)}.satus-modal__surface{display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;margin:0 16px;padding:8px 0;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-text);border-radius:6px;background-color:var(--satus-modal-background);box-shadow:inset 0 -1px 1px 1px rgb(0,0,0,.1),0 2px 6px rgb(0,0,0,.15)}.satus-modal__surface .satus-section--actions{display:flex;padding:16px 8px 0;justify-content:flex-end;align-items:center;width:100%}.satus-modal__surface .satus-section--actions .satus-button{height:32px;margin-left:8px;padding:0 8px;border-radius:4px}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:0;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer}.satus-switch>i{width:38px;height:20px;transition:background-color 150ms;border-radius:20px;background-color:var(--satus-switch-track);flex:0 0 38px}.satus-section--card .satus-switch>i{margin-left:16px}.satus-switch[data-value=true]>i{background-color:var(--satus-switch-track--active)}.satus-switch>i::before{display:block;width:16px;height:16px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:var(--satus-switch-thumb);will-change:transform}.satus-switch[data-value=true]>i::before{transform:translateX(18px)}.satus-slider{box-sizing:border-box;width:100%;padding:8px 16px 0;outline:0}.satus-slider__container{position:relative;height:32px;width:100%}.satus-slider__track{position:absolute;top:50%;left:0;height:2px;width:100%;transform:translateY(-50%)}.satus-slider__track::before{position:absolute;left:0;top:0;width:100%;height:100%;background:var(--satus-primary);opacity:.24;content:''}.satus-slider__handle:focus::after{content:attr(data-value);position:absolute;left:50%;top:-2px;background:var(--satus-primary);color:#fff;display:block;transform:translate(-50%,-100%);padding:1px 4px;border-radius:4px}.satus-slider__track-fill{position:absolute;left:0;top:0;height:100%;background:var(--satus-primary)}.satus-slider__handle{position:absolute;width:10px;height:10px;background:var(--satus-primary);border-radius:50%;transform:translate(-50%,-50%);top:50%;left:0}.satus-slider__handle::before{content:'';background:var(--satus-primary);position:absolute;left:50%;top:50%;width:1px;height:1px;opacity:0;border-radius:50%;transform:translate(-50%,-50%) scale(1);transition:.2s}.satus-slider:focus .satus-slider__handle::before{transform:translate(-50%,-50%) scale(26);opacity:.24}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{text-transform:uppercase;font-size:11px;opacity:.5}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;background:rgba(0,0,0,.15);margin:8px 4px 0;border-radius:8px}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__mouse>div{position:absolute;top:0;left:13px;width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-4px;left:21px;width:2px;height:18px;content:'';background:#f96754}.satus-shortcut__mouse.false::after{position:absolute;top:-12px;left:17px;width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:14px;left:17px;width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-base{display:flex;flex-direction:column;width:100%;height:100%}.satus-text-field{position:relative;padding:0 16px;background-color:#333347;border-radius:8px;color:#c4c4d4;overflow:hidden;display:flex}.satus-text-field__pre{display:flex;position:relative;height:100%;margin:0;padding:0;overflow:hidden;align-items:center;flex:1}.satus-text-field__input{font:inherit;position:absolute;top:0;left:0;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0;opacity:0;border:none;appearance:none;z-index:9}.satus-text-field__hidden-text{position:absolute;pointer-events:none;opacity:0}.satus-text-field__text{position:absolute;top:0;left:0;display:flex;height:100%;margin:0;align-items:center}.satus-text-field__cursor{position:absolute;top:6px;left:0;display:none;width:2px;height:25px;animation:blink 1s step-end 8;background:#fa0}.satus-text-field__selection{position:absolute;top:5px;left:0;display:none;width:0;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:3px;background:rgba(255,255,255,.1)}.satus-text-field__input:focus+*+*+*+.satus-text-field__cursor,.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field__text>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__text>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-header{display:flex;box-sizing:border-box;height:56px;padding:0 16px;color:var(--satus-header-text);background:var(--satus-header-background);align-items:center;justify-content:space-between}.satus-header .satus-h1--title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.satus-alert{display:flex;box-sizing:border-box;min-height:48px;margin:8px;padding:8px 16px;border-radius:8px;align-items:center}.satus-alert--error{color:#c55959;border:1px solid #641616;background:#430f0f}.satus-layers{position:relative;overflow:hidden;color:var(--satus-layers-text);background:var(--satus-layers-background);flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;width:100%;height:100%;flex-wrap:wrap;align-content:flex-start}.satus-input[type=text]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:0;padding:0 8px;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-aside{color:var(--satus-aside-text);background:var(--satus-aside-background);box-sizing:border-box}.satus-select{position:relative;display:flex;box-sizing:border-box;align-items:center;justify-content:space-between}.satus-select__value{margin-left:16px;text-align:right;opacity:.75}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;padding:inherit;cursor:pointer;opacity:0;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1s;opacity:var(--satus-pluviam-opacity,.08);border-radius:50%;background:var(--satus-pluviam-background,#000);animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:var(--satus-pluviam-opacity,.08)}70%{transform:scale(.8);opacity:var(--satus-pluviam-opacity,.08)}100%{transform:scale(1);opacity:0}} \ No newline at end of file diff --git a/satus.js b/satus.js index 8c651abcb..5167b8a86 100644 --- a/satus.js +++ b/satus.js @@ -1 +1 @@ -var satus={components:{},events:{},locale:{strings:{}},storage:{attributes:{},data:{}},append:function(M,N){(N||document.body).appendChild(M)},getAnimationDuration:function(M){return 1e3*Number(window.getComputedStyle(M).getPropertyValue("animation-duration").replace(/[^0-9.]/g,""))},attr:function(M,N){if(N)for(var e in N){var i;M.is_svg?M.setAttributeNS(null,e,N[e]):(i=N[e],-1!==["placeholder","title"].indexOf(e)&&(i=satus.locale.get(i)),M.setAttribute(e,i))}},elementIndex:function(M){return Array.prototype.slice.call(M.parentNode.children).indexOf(M)},data:function(M,N){if(N)for(var e in N)M.dataset[e]=N[e]},properties:function(M,N){if(N)for(var e in N)M[e]=N[e]},camelize:function(M){for(var N="",e=0,i=M.length;e Date: Tue, 12 Oct 2021 08:05:56 +0300 Subject: [PATCH 0412/1224] Fixed settings export & import --- _locales/ar/messages.json | 3 + _locales/bn/messages.json | 3 + _locales/de/messages.json | 3 + _locales/el/messages.json | 3 + _locales/en/messages.json | 3 + _locales/es/messages.json | 3 + _locales/fr/messages.json | 3 + _locales/hin/messages.json | 3 + _locales/hr/messages.json | 3 + _locales/id/messages.json | 3 + _locales/it/messages.json | 3 + _locales/ja/messages.json | 3 + _locales/ko/messages.json | 3 + _locales/nb_NO/messages.json | 3 + _locales/nl/messages.json | 3 + _locales/no/messages.json | 3 + _locales/pl/messages.json | 3 + _locales/pt_BR/messages.json | 3 + _locales/pt_PT/messages.json | 3 + _locales/ro/messages.json | 3 + _locales/ru/messages.json | 3 + _locales/sk/messages.json | 3 + _locales/tr/messages.json | 3 + _locales/zh_CN/messages.json | 3 + _locales/zh_TW/messages.json | 3 + manifest.json | 2 +- popup.js | 118 +++++++++++++++++++++++++++++++++++ 27 files changed, 194 insertions(+), 1 deletion(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 26be04f13..f252c8ddb 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "المظهر العام" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "الصوت" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index c4b8d3597..d94841012 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "উপস্থিতি" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "শ্রুতি" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 467003435..1592c6b3a 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "Aussehen" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "Audio" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 99582df74..ba7f00adb 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "Εμφάνιση" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "Ήχος" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 66026dc8a..58f9bfff1 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "Appearance" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "Audio" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 180e5e860..fa740a3d8 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "Apariencia" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "Audio" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index e40154c73..ae1a74a0c 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "Apparence" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "Audio" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index 5c48142b7..5629652e0 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "दिखावट" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "ऑडियो" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 4ddcc5c09..93369ff47 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "Izgled" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "Audio" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 454eb20bd..1152e0847 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "Tampilan" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "Suara" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index cb2841c43..47d80151f 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "Aspetto" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "Audio" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 45539c0d3..ce1b5d02f 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "外観" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "音声" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 24b5eb78b..9ec7f3263 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "외관" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "오디오" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 59d803e88..64a55a96f 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "Utseende" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "Lyd" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index b82ff09a2..1855e93f8 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "Uiterlijk" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "Audio" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 70ac13e20..b6a11d42e 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "Utseende" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "Lyd" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 381214c50..9ca34569c 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "Wygląd" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "Audio" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 570174dbd..aae0b8df1 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "Aparência" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "Áudio" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 0536227c1..fa97f5814 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "Aparência" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "Áudio" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index ff7aba1f4..56736d183 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "Aparențe" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "Audio" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 51e952792..293d3bf76 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "Внешний вид" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "Аудио" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 38aacb3d2..b05df0ba3 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "Vzhľad" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "Zvuk" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 3eb0e2ddd..916bfc207 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "Görünüm" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "Ses" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index f8b764ab3..427c8068f 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "外观" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "音频" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index fdb73dab4..fcff47736 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -65,6 +65,9 @@ "appearance": { "message": "外貌" }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, "audio": { "message": "音頻" }, diff --git a/manifest.json b/manifest.json index bf8b3a362..117207c82 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.600", + "version": "3.601", "default_locale": "en", "icons": { "128": "icons/128.png", diff --git a/popup.js b/popup.js index 6241727b6..8994e8918 100644 --- a/popup.js +++ b/popup.js @@ -5675,6 +5675,124 @@ satus.storage.import(function (items) { } satus.render(skeleton); + + if (location.href.indexOf('action=import') !== -1) { + satus.render({ + component: 'modal', + + label: { + component: 'span', + text: 'areYouSureYouWantToImportTheData' + }, + actions: { + component: 'section', + variant: 'actions', + + ok: { + component: 'button', + text: 'ok', + on: { + click: function () { + var input = document.createElement('input'); + + input.type = 'file'; + + input.addEventListener('change', function () { + var file_reader = new FileReader(); + + file_reader.onload = function () { + var data = JSON.parse(this.result); + + for (var key in data) { + satus.storage.set(key, data[key]); + } + + close(); + }; + + file_reader.readAsText(this.files[0]); + }); + + input.click(); + + this.parentNode.parentNode.parentNode.close(); + } + } + }, + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.parentNode.parentNode.parentNode.close(); + } + } + } + } + }); + } else if (location.href.indexOf('action=export') !== -1) { + var blob; + + try { + blob = new Blob([JSON.stringify(satus.storage.data)], { + type: 'application/json;charset=utf-8' + }); + } catch (error) { + return modalError(error); + } + + satus.render({ + component: 'modal', + + label: { + component: 'span', + text: 'areYouSureYouWantToExportTheData' + }, + actions: { + component: 'section', + variant: 'actions', + + ok: { + component: 'button', + text: 'ok', + on: { + click: function () { + try { + chrome.permissions.request({ + permissions: ['downloads'] + }, function (granted) { + if (granted) { + chrome.downloads.download({ + url: URL.createObjectURL(blob), + filename: 'improvedtube.json', + saveAs: true + }, function () { + setTimeout(function () { + close(); + }, 1000); + }); + } + }); + } catch (error) { + return modalError(error); + } + + this.parentNode.parentNode.parentNode.close(); + } + } + }, + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.parentNode.parentNode.parentNode.close(); + } + } + } + } + }); + } }, function (success) { satus.ajax('_locales/en/messages.json', success); }); From 88e8e64a2b570de0011a5b23672e2d92604248f2 Mon Sep 17 00:00:00 2001 From: dodieboy Date: Mon, 18 Oct 2021 22:11:43 +0800 Subject: [PATCH 0413/1224] Fixed HD thumbnails --- youtube-scripts.js | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index e1735db92..fbbb6d787 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -122,7 +122,8 @@ var ImprovedTube = { channel: new RegExp('\/(user|channel|c)\/'), channel_home_page: new RegExp('\/(user|channel|c)\/.+(\/featured)?\/?$'), channel_home_page_postfix: new RegExp('\/(featured)?\/?$'), - thumbnail_quality: new RegExp('(hqdefault\.jpg|hq720.jpg)+'), + thumbnail_quality_low: new RegExp('(hqdefault\.jpg|hq720.jpg)+'), + thumbnail_quality_max: new RegExp('(maxresdefault\.jpg)+'), video_id: new RegExp('[?&]v=([^&]+)'), channel_link: new RegExp('https:\/\/www.youtube.com\/(channel|user|c)\/') }`, @@ -1082,31 +1083,27 @@ document.addEventListener('ImprovedTubeOnlyOnePlayer', function (event) { ImprovedTube.hdThumbnails = function (node) { if (this.isset(node) === false) { var thumbnails = document.querySelectorAll('img'); - for (var i = 0, l = thumbnails.length; i < l; i++) { this.hdThumbnails(thumbnails[i]); } - return; } - - if (this.storage.hd_thumbnails === true) { - if (this.regex.thumbnail_quality.test(node.src)) { - if (node.dataset.hasOwnProperty('defaultSrc') === false) { - node.dataset.defaultSrc = node.src; - } - + if (this.storage.hd_thumbnails === true ) { + if (! node.dataset.defaultSrc && this.regex.thumbnail_quality_low.test(node.src)) { + node.dataset.defaultSrc = node.src; node.onload = function () { if (this.naturalHeight <= 90) { this.src = this.dataset.defaultSrc; } }; - - node.src = node.src.replace(this.regex.thumbnail_quality, 'maxresdefault.jpg'); + node.src = node.src.replace(this.regex.thumbnail_quality_low, 'maxresdefault.jpg'); + node.onerror = function () { + this.error = ""; + this.src = this.src.replace(this.regex.thumbnail_quality_max, 'hqdefault.jpg'); + } } } else if (node.dataset.defaultSrc) { node.src = node.dataset.defaultSrc; - delete node.dataset.defaultSrc; } }; From 23ead3466c684c7755980afb656665d0fc208008 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 18 Oct 2021 21:56:25 +0300 Subject: [PATCH 0414/1224] v3.650 --- content-styles.css | 101 +-- manifest.json | 2 +- options.html | 2 +- popup.css | 44 +- popup.js | 1861 ++++++++++++++++++++++---------------------- satus.css | 2 +- satus.js | 2 +- youtube-scripts.js | 6 +- 8 files changed, 984 insertions(+), 1036 deletions(-) diff --git a/content-styles.css b/content-styles.css index 675ccdaa2..1c4d38b4f 100644 --- a/content-styles.css +++ b/content-styles.css @@ -2748,12 +2748,21 @@ html[it-mini-player-cursor='nw-resize']::after { /*------------------------------------------------------------------------------ -4.4 SCREENSHOT +# ------------------------------------------------------------------------------*/ .it-player-button { - position: relative; - min-width: 40px; + position: relative !important; + min-width: 40px !important; + display: flex !important; + justify-content: center !important; + align-items: center !important; +} + +.it-player-button > svg { + fill: #fff !important; + width: 56% !important; + height: auto !important; } .it-player-button--tooltip { @@ -2777,92 +2786,6 @@ body.no-scroll .it-player-button--tooltip { transform: translate(-50%, -75%); } -#it-screenshot-button svg { - position: absolute !important; - top: 7px !important; - left: 7px !important; - width: 22px !important; - fill: #fff !important; -} - -.html5-video-player.ytp-big-mode #it-screenshot-button svg { - top: 10px !important; - left: 10px !important; - width: 34px !important; -} - - -/*------------------------------------------------------------------------------ -4.5 REPEAT -------------------------------------------------------------------------------*/ - -#it-repeat-button { - position: relative !important; -} - -#it-repeat-button svg { - position: absolute !important; - width: 80%; - height: 80%; - top: 11px !important; - left: 11px !important; - fill: #fff !important; -} - -.html5-video-player.ytp-big-mode #it-repeat-button svg { - top: 10px !important; - left: 10px !important; - width: 34px !important; -} - - -/*------------------------------------------------------------------------------ -4.6 ROTATE -------------------------------------------------------------------------------*/ - -#it-rotate-button { - position: relative !important; -} - -#it-rotate-button svg { - position: absolute !important; - width: 80%; - height: 80%; - top: 11px !important; - left: 11px !important; - fill: #fff !important; -} - -.html5-video-player.ytp-big-mode #it-rotate-button svg { - top: 10px !important; - left: 10px !important; - width: 34px !important; -} - - -/*------------------------------------------------------------------------------ -4.7 POPUP PLAYER -------------------------------------------------------------------------------*/ - -#it-popup-player-button { - position: relative !important; -} - -#it-popup-player-button svg { - position: absolute !important; - width: 80%; - height: 80%; - top: 11px !important; - left: 11px !important; - fill: #fff !important; -} - -.html5-video-player.ytp-big-mode #it-popup-player-button svg { - top: 10px !important; - left: 10px !important; - width: 34px !important; -} - /*------------------------------------------------------------------------------ 4.8 hide controls options diff --git a/manifest.json b/manifest.json index 117207c82..dfb2eb0bc 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.601", + "version": "3.650", "default_locale": "en", "icons": { "128": "icons/128.png", diff --git a/options.html b/options.html index 0c76fb93d..12716e623 100644 --- a/options.html +++ b/options.html @@ -15,7 +15,7 @@ } - + diff --git a/popup.css b/popup.css index 7c6e8776c..de9b0085a 100644 --- a/popup.css +++ b/popup.css @@ -11,10 +11,6 @@ --------------------------------------------------------------*/ body { - font-family: sans-serif; - font-size: 14px; - overflow: hidden; - margin: 0; --satus-primary: #ff4158; --satus-header-background: #fff; --satus-header-text: #777; @@ -140,6 +136,13 @@ body[theme=black] { --satus-switch-track: #ccc; } +body { + font-family: sans-serif; + font-size: 14px; + overflow: hidden; + margin: 0; +} + /*-------------------------------------------------------------- # HEADER @@ -195,13 +198,13 @@ body[theme=black] { .satus-input--search[type=text] { position: absolute; z-index: 1; - right: 64px; + right: 60px; display: none; - width: calc(100vw - 80px); - height: 36px; + width: calc(100vw - 72px); + height: 40px; padding-right: 36px; + margin: 0; background: var(--satus-header-background); - box-shadow: 0 0 1px 1px var(--satus-hover); } .satus-input--search:focus { @@ -210,6 +213,8 @@ body[theme=black] { .search-mode .satus-input--search { display: block; + border-bottom-left-radius: unset; + border-bottom-right-radius: unset; } .satus-header .satus-button--close-search { @@ -233,20 +238,21 @@ body[theme=black] { } .search-results { - top: 56px; + top: 48px; overflow: hidden; - height: calc(100vh - 56px); + height: calc(100vh - 48px); } .search-results .satus-modal__scrim { backdrop-filter: none; + top: 8px; } .search-results .satus-modal__surface { position: absolute; top: 0; - left: 16px; - width: calc(100% - 80px); + left: 12px; + width: calc(100% - 72px); min-width: unset; max-width: unset; margin: 0; @@ -255,7 +261,12 @@ body[theme=black] { border-top-left-radius: 0; border-top-right-radius: 0; background-color: var(--satus-layers-background); - box-shadow: 0 2px 4px 2px rgba(0, 0, 0, .2); + box-shadow: inset 0 5px 4px -4px rgba(0,0,0,.24); +} + +.search-results .satus-section--card { + margin: 8px; + width: calc(100% - 16px); } .search-results .satus-section>* { @@ -332,6 +343,10 @@ body[theme=black] { align-items: center; } +body[page] .satus-section--home .satus-button { + width: 96px; +} + .satus-section--home .satus-button:hover { background: transparent; } @@ -413,6 +428,9 @@ body[theme=black] { .satus-section--appearance { width: 100%; height: 100%; + max-width: 900px; + position: relative; + margin: auto; } .satus-section--appearance .satus-button { diff --git a/popup.js b/popup.js index 8994e8918..c3b016d88 100644 --- a/popup.js +++ b/popup.js @@ -232,7 +232,7 @@ var skeleton = { component: 'svg', attr: { 'viewBox': '0 0 24 24', - 'stroke-width': 1.75 + 'stroke-width': '1.75' }, path: { @@ -3783,951 +3783,958 @@ var skeleton = { category: true, on: { click: { - component: 'section', - variant: 'card', + section_1: { + component: 'section', + variant: 'card', - player_autoplay: { - component: 'switch', - text: 'autoplay', - value: true - }, - forced_play_video_from_the_beginning: { - component: 'switch', - text: 'forcedPlayVideoFromTheBeginning' - }, - player_autofullscreen: { - component: 'switch', - text: 'autoFullscreen' - }, - player_ads: { - text: 'ads', - component: 'select', - options: [{ - text: 'onAllVideos', - value: 'all_videos', - default: 'true' - }, { - text: 'onSubscribedChannels', - value: 'subscribed_channels' - }, { - text: 'blockMusic', - value: 'block_music' - }, { - text: 'blockAll', - value: 'block_all' - }] - }, - player_autopause_when_switching_tabs: { - component: 'switch', - text: 'autopauseWhenSwitchingTabs' - }, - player_forced_playback_speed: { - component: 'switch', - text: 'forcedPlaybackSpeed', - id: 'forced-playback-speed', - onrender: function () { - this.dataset.value = satus.storage.player_forced_playback_speed; + autoplay: { + component: 'switch', + text: 'autoplay', + value: true, + storage: 'player_autoplay' }, - onchange: function () { - this.dataset.value = satus.storage.player_forced_playback_speed; - } - }, - player_playback_speed: { - component: 'slider', - text: 'playbackSpeed', - textarea: true, - value: 1, - min: .1, - max: 8, - step: .05 - }, - subtitles: { - component: 'button', - text: 'subtitles', - on: { - click: { - component: 'section', - variant: 'card', + forced_play_video_from_the_beginning: { + component: 'switch', + text: 'forcedPlayVideoFromTheBeginning' + }, + ads: { + text: 'ads', + component: 'select', + options: [{ + text: 'onAllVideos', + value: 'all_videos', + default: 'true' + }, { + text: 'onSubscribedChannels', + value: 'subscribed_channels' + }, { + text: 'blockMusic', + value: 'block_music' + }, { + text: 'blockAll', + value: 'block_all' + }], + storage: 'player_ads' + }, + quality: { + component: 'select', + text: 'quality', + options: [{ + text: 'auto', + value: 'auto' + }, { + text: '144p', + value: 'tiny' + }, { + text: '240p', + value: 'small' + }, { + text: '360p', + value: 'medium' + }, { + text: '480p', + value: 'large' + }, { + text: '720p', + value: 'hd720' + }, { + text: '1080p', + value: 'hd1080' + }, { + text: '1440p', + value: 'hd1440' + }, { + text: '2160p', + value: 'hd2160' + }, { + text: '2880p', + value: 'hd2880' + }, { + text: '4320p', + value: 'highres' + }], + storage: 'player_quality' + }, + autofullscreen: { + component: 'switch', + text: 'autoFullscreen', + storage: 'player_autofullscreen' + }, + autopause_when_switching_tabs: { + component: 'switch', + text: 'autopauseWhenSwitchingTabs', + storage: 'player_autopause_when_switching_tabs' + }, + player_forced_playback_speed: { + component: 'switch', + text: 'forcedPlaybackSpeed', + id: 'forced-playback-speed', + onrender: function () { + this.dataset.value = satus.storage.player_forced_playback_speed; + }, + onchange: function () { + this.dataset.value = satus.storage.player_forced_playback_speed; + } + }, + player_playback_speed: { + component: 'slider', + text: 'playbackSpeed', + textarea: true, + value: 1, + min: .1, + max: 8, + step: .05 + }, + subtitles: { + component: 'button', + text: 'subtitles', + on: { + click: { + component: 'section', + variant: 'card', - player_subtitles: { - component: 'switch', - text: 'subtitles' - }, - subtitles_language: { - component: 'select', - text: 'language', - options: [{ - value: 'default', - text: 'default' - }, - { - value: 'af', - text: 'Afrikaans' - }, - { - value: 'am', - text: 'Amharic' - }, - { - value: 'ar', - text: 'Arabic' - }, - { - value: 'az', - text: 'Azerbaijani' - }, - { - value: 'be', - text: 'Belarusian' - }, - { - value: 'bg', - text: 'Bulgarian' - }, - { - value: 'bn', - text: 'Bangla' - }, - { - value: 'bs', - text: 'Bosnian' - }, - { - value: 'ca', - text: 'Catalan' - }, - { - value: 'ceb', - text: 'Cebuano' - }, - { - value: 'co', - text: 'Corsican' - }, - { - value: 'cs', - text: 'Czech' - }, - { - value: 'cy', - text: 'Welsh' - }, - { - value: 'da', - text: 'Danish' - }, - { - value: 'de', - text: 'German' - }, - { - value: 'el', - text: 'Greek' - }, - { - value: 'en', - text: 'English' - }, - { - value: 'eo', - text: 'Esperanto' - }, - { - value: 'es', - text: 'Spanish' - }, - { - value: 'et', - text: 'Estonian' - }, - { - value: 'eu', - text: 'Basque' - }, - { - value: 'fa', - text: 'Persian' - }, - { - value: 'fi', - text: 'Finnish' - }, - { - value: 'fil', - text: 'Filipino' - }, - { - value: 'fr', - text: 'French' - }, - { - value: 'fy', - text: 'Western Frisian' - }, - { - value: 'ga', - text: 'Irish' - }, - { - value: 'gd', - text: 'Scottish Gaelic' - }, - { - value: 'gl', - text: 'Galician' - }, - { - value: 'gu', - text: 'Gujarati' - }, - { - value: 'ha', - text: 'Hausa' - }, - { - value: 'haw', - text: 'Hawaiian' - }, - { - value: 'hi', - text: 'Hindi' - }, - { - value: 'hmn', - text: 'Hmong' - }, - { - value: 'hr', - text: 'Croatian' - }, - { - value: 'ht', - text: 'Haitian Creole' - }, - { - value: 'hu', - text: 'Hungarian' - }, - { - value: 'hy', - text: 'Armenian' - }, - { - value: 'id', - text: 'Indonesian' - }, - { - value: 'ig', - text: 'Igbo' - }, - { - value: 'is', - text: 'Icelandic' - }, - { - value: 'it', - text: 'Italian' - }, - { - value: 'iw', - text: 'Hebrew' - }, - { - value: 'ja', - text: 'Japanese' - }, - { - value: 'jv', - text: 'Javanese' - }, - { - value: 'ka', - text: 'Georgian' - }, - { - value: 'kk', - text: 'Kazakh' - }, - { - value: 'km', - text: 'Khmer' - }, - { - value: 'kn', - text: 'Kannada' - }, - { - value: 'ko', - text: 'Korean' - }, - { - value: 'ku', - text: 'Kurdish' - }, - { - value: 'ky', - text: 'Kyrgyz' - }, - { - value: 'la', - text: 'Latin' - }, - { - value: 'lb', - text: 'Luxembourgish' - }, - { - value: 'lo', - text: 'Lao' - }, - { - value: 'lt', - text: 'Lithuanian' - }, - { - value: 'lv', - text: 'Latvian' - }, - { - value: 'mg', - text: 'Malagasy' - }, - { - value: 'mi', - text: 'Maori' - }, - { - value: 'mk', - text: 'Macedonian' - }, - { - value: 'ml', - text: 'Malayalam' - }, - { - value: 'mn', - text: 'Mongolian' - }, - { - value: 'mr', - text: 'Marathi' - }, - { - value: 'ms', - text: 'Malay' - }, - { - value: 'mt', - text: 'Maltese' - }, - { - value: 'my', - text: 'Burmese' - }, - { - value: 'ne', - text: 'Nepali' - }, - { - value: 'nl', - text: 'Dutch' - }, - { - value: 'no', - text: 'Norwegian' - }, - { - value: 'ny', - text: 'Nyanja' - }, - { - value: 'or', - text: 'Odia' - }, - { - value: 'pa', - text: 'Punjabi' - }, - { - value: 'pl', - text: 'Polish' - }, - { - value: 'ps', - text: 'Pashto' - }, - { - value: 'pt', - text: 'Portuguese' - }, - { - value: 'ro', - text: 'Romanian' - }, - { - value: 'ru', - text: 'Russian' - }, - { - value: 'rw', - text: 'Kinyarwanda' - }, - { - value: 'sd', - text: 'Sindhi' - }, - { - value: 'si', - text: 'Sinhala' - }, - { - value: 'sk', - text: 'Slovak' - }, - { - value: 'sl', - text: 'Slovenian' - }, - { - value: 'sm', - text: 'Samoan' - }, - { - value: 'sn', - text: 'Shona' - }, - { - value: 'so', - text: 'Somali' - }, - { - value: 'sq', - text: 'Albanian' - }, - { - value: 'sr', - text: 'Serbian' - }, - { - value: 'st', - text: 'Southern Sotho' - }, - { - value: 'su', - text: 'Sundanese' - }, - { - value: 'sv', - text: 'Swedish' - }, - { - value: 'sw', - text: 'Swahili' - }, - { - value: 'ta', - text: 'Tamil' - }, - { - value: 'te', - text: 'Telugu' - }, - { - value: 'tg', - text: 'Tajik' - }, - { - value: 'th', - text: 'Thai' - }, - { - value: 'tk', - text: 'Turkmen' - }, - { - value: 'tr', - text: 'Turkish' - }, - { - value: 'tt', - text: 'Tatar' - }, - { - value: 'ug', - text: 'Uyghur' - }, - { - value: 'uk', - text: 'Ukrainian' - }, - { - value: 'ur', - text: 'Urdu' - }, - { - value: 'uz', - text: 'Uzbek' - }, - { - value: 'vi', - text: 'Vietnamese' - }, - { - value: 'xh', - text: 'Xhosa' - }, - { - value: 'yi', - text: 'Yiddish' - }, - { - value: 'yo', - text: 'Yoruba' - }, - { - value: 'zh-Hans', - text: 'Chinese (Simplified)' - }, - { - value: 'zh-Hant', - text: 'Chinese (Traditional)' - }, - { - value: 'zu', - text: 'Zulu' - } - ] - }, - subtitles_font_family: { - component: 'select', - text: 'fontFamily', - options: [{ - text: 'Monospaced Serif', - value: 1 - }, { - text: 'Proportional Serif', - value: 2 - }, { - text: 'Monospaced Sans-Serif', - value: 3 - }, { - text: 'Proportional Sans-Serif', - value: 4 - }, { - text: 'Casual', - value: 5 - }, { - text: 'Cursive', - value: 6 - }, { - text: 'Small Capitals', - value: 7 - }] - }, - subtitles_font_color: { - component: 'select', - text: 'fontColor', - options: [{ - text: 'white', - value: '#fff' - }, { - text: 'yellow', - value: '#ff0' - }, { - text: 'green', - value: '#0f0' - }, { - text: 'cyan', - value: '#0ff' - }, { - text: 'blue', - value: '#00f' - }, { - text: 'magenta', - value: '#f0f' - }, { - text: 'red', - value: '#f00' - }, { - text: 'black', - value: '#000' - }] - }, - subtitles_font_size: { - component: 'select', - text: 'fontSize', - options: [{ - text: '50%', - value: -2 - }, { - text: '75%', - value: -1 - }, { - text: '100%', - value: 1 - }, { - text: '150%', - value: 1 - }, { - text: '200%', - value: 2 - }, { - text: '300%', - value: 3 - }, { - text: '400%', - value: 4 - }] - }, - subtitles_background_color: { - component: 'select', - text: 'backgroundColor', - options: [{ - text: 'white', - value: '#fff' - }, { - text: 'yellow', - value: '#ff0' - }, { - text: 'green', - value: '#0f0' - }, { - text: 'cyan', - value: '#0ff' - }, { - text: 'blue', - value: '#00f' - }, { - text: 'magenta', - value: '#f0f' - }, { - text: 'red', - value: '#f00' - }, { - text: 'black', - value: '#000' - }] - }, - subtitles_background_opacity: { - component: 'slider', - text: 'backgroundOpacity', - value: 75, - min: 0, - max: 100, - step: 1 - }, - subtitles_window_color: { - component: 'select', - text: 'windowColor', - options: [{ - text: 'white', - value: '#fff' - }, { - text: 'yellow', - value: '#ff0' - }, { - text: 'green', - value: '#0f0' - }, { - text: 'cyan', - value: '#0ff' - }, { - text: 'blue', - value: '#00f' - }, { - text: 'magenta', - value: '#f0f' - }, { - text: 'red', - value: '#f00' - }, { - text: 'black', - value: '#000' - }] - }, - subtitles_window_opacity: { - component: 'slider', - text: 'windowOpacity', - value: 0, - min: 0, - max: 100, - step: 1 - }, - subtitles_character_edge_style: { - component: 'select', - text: 'characterEdgeStyle', - options: [{ - text: 'none', - value: 0 - }, { - text: 'dropShadow', - value: 4 - }, { - text: 'raised', - value: 1 - }, { - text: 'depressed', - value: 2 - }, { - text: 'outline', - value: 3 - }] - }, - subtitles_font_opacity: { - component: 'slider', - text: 'fontOpacity', - value: 100, - min: 0, - max: 100, - step: 1 + player_subtitles: { + component: 'switch', + text: 'subtitles' + }, + subtitles_language: { + component: 'select', + text: 'language', + options: [{ + value: 'default', + text: 'default' + }, + { + value: 'af', + text: 'Afrikaans' + }, + { + value: 'am', + text: 'Amharic' + }, + { + value: 'ar', + text: 'Arabic' + }, + { + value: 'az', + text: 'Azerbaijani' + }, + { + value: 'be', + text: 'Belarusian' + }, + { + value: 'bg', + text: 'Bulgarian' + }, + { + value: 'bn', + text: 'Bangla' + }, + { + value: 'bs', + text: 'Bosnian' + }, + { + value: 'ca', + text: 'Catalan' + }, + { + value: 'ceb', + text: 'Cebuano' + }, + { + value: 'co', + text: 'Corsican' + }, + { + value: 'cs', + text: 'Czech' + }, + { + value: 'cy', + text: 'Welsh' + }, + { + value: 'da', + text: 'Danish' + }, + { + value: 'de', + text: 'German' + }, + { + value: 'el', + text: 'Greek' + }, + { + value: 'en', + text: 'English' + }, + { + value: 'eo', + text: 'Esperanto' + }, + { + value: 'es', + text: 'Spanish' + }, + { + value: 'et', + text: 'Estonian' + }, + { + value: 'eu', + text: 'Basque' + }, + { + value: 'fa', + text: 'Persian' + }, + { + value: 'fi', + text: 'Finnish' + }, + { + value: 'fil', + text: 'Filipino' + }, + { + value: 'fr', + text: 'French' + }, + { + value: 'fy', + text: 'Western Frisian' + }, + { + value: 'ga', + text: 'Irish' + }, + { + value: 'gd', + text: 'Scottish Gaelic' + }, + { + value: 'gl', + text: 'Galician' + }, + { + value: 'gu', + text: 'Gujarati' + }, + { + value: 'ha', + text: 'Hausa' + }, + { + value: 'haw', + text: 'Hawaiian' + }, + { + value: 'hi', + text: 'Hindi' + }, + { + value: 'hmn', + text: 'Hmong' + }, + { + value: 'hr', + text: 'Croatian' + }, + { + value: 'ht', + text: 'Haitian Creole' + }, + { + value: 'hu', + text: 'Hungarian' + }, + { + value: 'hy', + text: 'Armenian' + }, + { + value: 'id', + text: 'Indonesian' + }, + { + value: 'ig', + text: 'Igbo' + }, + { + value: 'is', + text: 'Icelandic' + }, + { + value: 'it', + text: 'Italian' + }, + { + value: 'iw', + text: 'Hebrew' + }, + { + value: 'ja', + text: 'Japanese' + }, + { + value: 'jv', + text: 'Javanese' + }, + { + value: 'ka', + text: 'Georgian' + }, + { + value: 'kk', + text: 'Kazakh' + }, + { + value: 'km', + text: 'Khmer' + }, + { + value: 'kn', + text: 'Kannada' + }, + { + value: 'ko', + text: 'Korean' + }, + { + value: 'ku', + text: 'Kurdish' + }, + { + value: 'ky', + text: 'Kyrgyz' + }, + { + value: 'la', + text: 'Latin' + }, + { + value: 'lb', + text: 'Luxembourgish' + }, + { + value: 'lo', + text: 'Lao' + }, + { + value: 'lt', + text: 'Lithuanian' + }, + { + value: 'lv', + text: 'Latvian' + }, + { + value: 'mg', + text: 'Malagasy' + }, + { + value: 'mi', + text: 'Maori' + }, + { + value: 'mk', + text: 'Macedonian' + }, + { + value: 'ml', + text: 'Malayalam' + }, + { + value: 'mn', + text: 'Mongolian' + }, + { + value: 'mr', + text: 'Marathi' + }, + { + value: 'ms', + text: 'Malay' + }, + { + value: 'mt', + text: 'Maltese' + }, + { + value: 'my', + text: 'Burmese' + }, + { + value: 'ne', + text: 'Nepali' + }, + { + value: 'nl', + text: 'Dutch' + }, + { + value: 'no', + text: 'Norwegian' + }, + { + value: 'ny', + text: 'Nyanja' + }, + { + value: 'or', + text: 'Odia' + }, + { + value: 'pa', + text: 'Punjabi' + }, + { + value: 'pl', + text: 'Polish' + }, + { + value: 'ps', + text: 'Pashto' + }, + { + value: 'pt', + text: 'Portuguese' + }, + { + value: 'ro', + text: 'Romanian' + }, + { + value: 'ru', + text: 'Russian' + }, + { + value: 'rw', + text: 'Kinyarwanda' + }, + { + value: 'sd', + text: 'Sindhi' + }, + { + value: 'si', + text: 'Sinhala' + }, + { + value: 'sk', + text: 'Slovak' + }, + { + value: 'sl', + text: 'Slovenian' + }, + { + value: 'sm', + text: 'Samoan' + }, + { + value: 'sn', + text: 'Shona' + }, + { + value: 'so', + text: 'Somali' + }, + { + value: 'sq', + text: 'Albanian' + }, + { + value: 'sr', + text: 'Serbian' + }, + { + value: 'st', + text: 'Southern Sotho' + }, + { + value: 'su', + text: 'Sundanese' + }, + { + value: 'sv', + text: 'Swedish' + }, + { + value: 'sw', + text: 'Swahili' + }, + { + value: 'ta', + text: 'Tamil' + }, + { + value: 'te', + text: 'Telugu' + }, + { + value: 'tg', + text: 'Tajik' + }, + { + value: 'th', + text: 'Thai' + }, + { + value: 'tk', + text: 'Turkmen' + }, + { + value: 'tr', + text: 'Turkish' + }, + { + value: 'tt', + text: 'Tatar' + }, + { + value: 'ug', + text: 'Uyghur' + }, + { + value: 'uk', + text: 'Ukrainian' + }, + { + value: 'ur', + text: 'Urdu' + }, + { + value: 'uz', + text: 'Uzbek' + }, + { + value: 'vi', + text: 'Vietnamese' + }, + { + value: 'xh', + text: 'Xhosa' + }, + { + value: 'yi', + text: 'Yiddish' + }, + { + value: 'yo', + text: 'Yoruba' + }, + { + value: 'zh-Hans', + text: 'Chinese (Simplified)' + }, + { + value: 'zh-Hant', + text: 'Chinese (Traditional)' + }, + { + value: 'zu', + text: 'Zulu' + } + ] + }, + subtitles_font_family: { + component: 'select', + text: 'fontFamily', + options: [{ + text: 'Monospaced Serif', + value: 1 + }, { + text: 'Proportional Serif', + value: 2 + }, { + text: 'Monospaced Sans-Serif', + value: 3 + }, { + text: 'Proportional Sans-Serif', + value: 4 + }, { + text: 'Casual', + value: 5 + }, { + text: 'Cursive', + value: 6 + }, { + text: 'Small Capitals', + value: 7 + }] + }, + subtitles_font_color: { + component: 'select', + text: 'fontColor', + options: [{ + text: 'white', + value: '#fff' + }, { + text: 'yellow', + value: '#ff0' + }, { + text: 'green', + value: '#0f0' + }, { + text: 'cyan', + value: '#0ff' + }, { + text: 'blue', + value: '#00f' + }, { + text: 'magenta', + value: '#f0f' + }, { + text: 'red', + value: '#f00' + }, { + text: 'black', + value: '#000' + }] + }, + subtitles_font_size: { + component: 'select', + text: 'fontSize', + options: [{ + text: '50%', + value: -2 + }, { + text: '75%', + value: -1 + }, { + text: '100%', + value: 1 + }, { + text: '150%', + value: 1 + }, { + text: '200%', + value: 2 + }, { + text: '300%', + value: 3 + }, { + text: '400%', + value: 4 + }] + }, + subtitles_background_color: { + component: 'select', + text: 'backgroundColor', + options: [{ + text: 'white', + value: '#fff' + }, { + text: 'yellow', + value: '#ff0' + }, { + text: 'green', + value: '#0f0' + }, { + text: 'cyan', + value: '#0ff' + }, { + text: 'blue', + value: '#00f' + }, { + text: 'magenta', + value: '#f0f' + }, { + text: 'red', + value: '#f00' + }, { + text: 'black', + value: '#000' + }] + }, + subtitles_background_opacity: { + component: 'slider', + text: 'backgroundOpacity', + value: 75, + min: 0, + max: 100, + step: 1 + }, + subtitles_window_color: { + component: 'select', + text: 'windowColor', + options: [{ + text: 'white', + value: '#fff' + }, { + text: 'yellow', + value: '#ff0' + }, { + text: 'green', + value: '#0f0' + }, { + text: 'cyan', + value: '#0ff' + }, { + text: 'blue', + value: '#00f' + }, { + text: 'magenta', + value: '#f0f' + }, { + text: 'red', + value: '#f00' + }, { + text: 'black', + value: '#000' + }] + }, + subtitles_window_opacity: { + component: 'slider', + text: 'windowOpacity', + value: 0, + min: 0, + max: 100, + step: 1 + }, + subtitles_character_edge_style: { + component: 'select', + text: 'characterEdgeStyle', + options: [{ + text: 'none', + value: 0 + }, { + text: 'dropShadow', + value: 4 + }, { + text: 'raised', + value: 1 + }, { + text: 'depressed', + value: 2 + }, { + text: 'outline', + value: 3 + }] + }, + subtitles_font_opacity: { + component: 'slider', + text: 'fontOpacity', + value: 100, + min: 0, + max: 100, + step: 1 + } } } - } - }, - player_crop_chapter_titles: { - component: 'switch', - text: 'cropChapterTitles', - value: true - }, - up_next_autoplay: { - component: 'switch', - text: 'upNextAutoplay', - value: true - }, - mini_player: { - component: 'switch', - text: 'customMiniPlayer' - }, - player_quality: { - component: 'select', - text: 'quality', - options: [{ - text: 'auto', - value: 'auto' - }, { - text: '144p', - value: 'tiny' - }, { - text: '240p', - value: 'small' - }, { - text: '360p', - value: 'medium' - }, { - text: '480p', - value: 'large' - }, { - text: '720p', - value: 'hd720' - }, { - text: '1080p', - value: 'hd1080' - }, { - text: '1440p', - value: 'hd1440' - }, { - text: '2160p', - value: 'hd2160' - }, { - text: '2880p', - value: 'hd2880' - }, { - text: '4320p', - value: 'highres' - }] - }, - player_h264: { - component: 'switch', - text: 'codecH264', - - onclick: function () { - console.log(this.dataset.value); - if (this.querySelector('input').checked === true) { - satus.render({ - component: 'dialog', - class: 'satus-dialog--confirm', - - message: { - component: 'text', - text: 'youtubeLimitsVideoQualityTo1080pForH264Codec', - style: { - 'width': '100%', - 'opacity': '.8' - } - }, - section: { - component: 'section', - class: 'controls', - style: { - 'justify-content': 'flex-end' - }, - - cancel: { - component: 'button', - text: 'cancel', - onclick: function () { - let scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); - } - }, - ok: { - component: 'button', - text: 'OK', - onclick: function () { - let scrim = document.querySelectorAll('.satus-dialog__scrim'); - - scrim[scrim.length - 1].click(); + }, + crop_chapter_titles: { + component: 'switch', + text: 'cropChapterTitles', + value: true, + storage: 'player_crop_chapter_titles' + }, + up_next_autoplay: { + component: 'switch', + text: 'upNextAutoplay', + value: true + }, + mini_player: { + component: 'switch', + text: 'customMiniPlayer' + }, + h264: { + component: 'switch', + text: 'codecH264', + storage: 'player_h264', + on: { + click: function () { + console.log(this.dataset.value); + if (this.dataset.value === 'true') { + satus.render({ + component: 'modal', + + message: { + component: 'text', + text: 'youtubeLimitsVideoQualityTo1080pForH264Codec' + }, + actions: { + component: 'section', + variant: 'actions', + + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.parentNode.parentNode.parentNode.click(); + } + } + }, + ok: { + component: 'button', + text: 'OK', + onclick: function () { + + this.parentNode.parentNode.parentNode.click(); + } + } } - } + }); } - }); + } } - } - }, - player_60fps: { - component: 'switch', - text: 'allow60fps', - value: true - }, - player_SDR: { - component: 'switch', - text: 'forceSDR', - value: false - }, - player_forced_volume: { - component: 'switch', - text: 'forcedVolume', - id: 'forced-volume', - onrender: function () { - this.dataset.value = satus.storage.player_forced_volume; }, - onchange: function () { - this.dataset.value = satus.storage.player_forced_volume; - } - }, - player_volume: { - component: 'slider', - text: 'volume', - step: 1, - max: 100, - value: 100 - }, - player_loudness_normalization: { - component: 'switch', - text: 'loudnessNormalization', - value: true - }, - player_screenshot: { - component: 'button', - text: 'screenshot', - on: { - click: { - component: 'section', - variant: 'card', + player_60fps: { + component: 'switch', + text: 'allow60fps', + value: true + }, + sdr: { + component: 'switch', + text: 'forceSDR', + value: false, + storage: 'player_SDR' + }, + player_forced_volume: { + component: 'switch', + text: 'forcedVolume', + id: 'forced-volume', + onrender: function () { + this.dataset.value = satus.storage.player_forced_volume; + }, + onchange: function () { + this.dataset.value = satus.storage.player_forced_volume; + } + }, + player_volume: { + component: 'slider', + text: 'volume', + step: 1, + max: 100, + value: 100 + }, + player_loudness_normalization: { + component: 'switch', + text: 'loudnessNormalization', + value: true + }, + player_hide_controls: { + component: 'switch', + text: 'hidePlayerControlsBar' + }, + player_hide_controls_options: { + component: 'button', + text: 'hidePlayerControlsBarButtons', + on: { + click: { + component: 'section', + variant: 'card', - player_screenshot_button: { - component: 'switch', - text: 'activate' - }, - player_screenshot_save_as: { - component: 'select', - text: 'saveAs', - options: [{ - text: 'file', - value: 'file' - }, { - text: 'clipboard', - value: 'clipboard' - }] + player_play_button: { + component: 'switch', + text: 'playPause' + }, + player_previous_button: { + component: 'switch', + text: 'previousVideo' + }, + player_next_button: { + component: 'switch', + text: 'nextVideo' + }, + player_volume_button: { + component: 'switch', + text: 'volume' + }, + player_autoplay_button: { + component: 'switch', + text: 'autoplay' + }, + player_settings_button: { + component: 'switch', + text: 'settings' + }, + player_subtitles_button: { + component: 'switch', + text: 'subtitles' + }, + player_miniplayer_button: { + component: 'switch', + text: 'nativeMiniPlayer' + }, + player_view_button: { + component: 'switch', + text: 'viewMode' + }, + player_screen_button: { + component: 'switch', + text: 'screen' + }, + player_remote_button: { + component: 'switch', + text: 'remote' + } } } } }, - player_repeat: { - component: 'button', - text: 'repeat', - on: { - click: { - component: 'section', - variant: 'card', + section_2: { + component: 'section', + variant: 'card', - player_repeat_button: { - component: 'switch', - text: 'activate' - }, - player_always_repeat: { - component: 'switch', - text: 'alwaysActive' + player_screenshot: { + component: 'button', + text: 'screenshot', + on: { + click: { + component: 'section', + variant: 'card', + + player_screenshot_button: { + component: 'switch', + text: 'activate' + }, + player_screenshot_save_as: { + component: 'select', + text: 'saveAs', + options: [{ + text: 'file', + value: 'file' + }, { + text: 'clipboard', + value: 'clipboard' + }] + } } } - } - }, - player_rotate_button: { - component: 'switch', - text: 'rotate' - }, - player_popup_button: { - component: 'switch', - text: 'popupPlayer' - }, - player_hide_controls: { - component: 'switch', - text: 'hidePlayerControlsBar' - }, - player_hide_controls_options: { - component: 'button', - text: 'hidePlayerControlsBarButtons', - on: { - click: { - component: 'section', - variant: 'card', + }, + player_repeat: { + component: 'button', + text: 'repeat', + on: { + click: { + component: 'section', + variant: 'card', - player_play_button: { - component: 'switch', - text: 'playPause' - }, - player_previous_button: { - component: 'switch', - text: 'previousVideo' - }, - player_next_button: { - component: 'switch', - text: 'nextVideo' - }, - player_volume_button: { - component: 'switch', - text: 'volume' - }, - player_autoplay_button: { - component: 'switch', - text: 'autoplay' - }, - player_settings_button: { - component: 'switch', - text: 'settings' - }, - player_subtitles_button: { - component: 'switch', - text: 'subtitles' - }, - player_miniplayer_button: { - component: 'switch', - text: 'nativeMiniPlayer' - }, - player_view_button: { - component: 'switch', - text: 'viewMode' - }, - player_screen_button: { - component: 'switch', - text: 'screen' - }, - player_remote_button: { - component: 'switch', - text: 'remote' + player_repeat_button: { + component: 'switch', + text: 'activate' + }, + player_always_repeat: { + component: 'switch', + text: 'alwaysActive' + } } } + }, + player_rotate_button: { + component: 'switch', + text: 'rotate' + }, + player_popup_button: { + component: 'switch', + text: 'popupPlayer' } } } @@ -5640,7 +5647,7 @@ var skeleton = { # INITIALIZATION --------------------------------------------------------------*/ -satus.parents(skeleton); +satus.parents(skeleton, true); satus.storage.attributes = { theme: true diff --git a/satus.css b/satus.css index 5f56245a6..e374bbe45 100644 --- a/satus.css +++ b/satus.css @@ -1 +1 @@ -html{--satus-primary:#ff4766;--satus-switch-background:rgba(0,0,0,.08);--satus-header-background:#fff;--satus-header-text:#777;--satus-layers-background:#f7f7f6;--satus-layers-text:#777;--satus-section-card-background:#fff;--satus-modal-background:#fff;--satus-modal-text:#777;--satus-hover:rgba(0, 0, 0, .04);--satus-switch-track:#b8b8b8;--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#fff;--satus-tabs:#fff;--satus-tooltip:rgba(0,0,0,.4)}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:0;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:22px;height:22px;border:2px solid rgba(0,0,0,.16);border-radius:50%;background:#fff}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{padding-top:0}.satus-color-picker__palette{position:relative;overflow:hidden;width:100%;height:256px;background-color:red}.satus-color-picker__palette:before{position:absolute;top:0;left:0;width:100%;height:100%;content:'';background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,transparent)}.satus-color-picker__cursor{position:absolute;width:5px;height:5px;transform:translate(-50%,-50%);pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000}.satus-modal--color-picker .satus-modal__surface .satus-section--color{margin:8px 16px 0;align-items:center}.satus-color-picker__color{width:32px;height:32px;margin:0 16px 0 0;border:2px solid rgba(0,0,0,.16);border-radius:50%;background:red}.satus-slider.satus-color-picker__hue{padding:0;flex:1}.satus-color-picker__hue .satus-slider__track{height:16px;border-radius:4px;background-image:linear-gradient(90deg,red,#ff2a00,#f50,#ff7f00,#fa0,#ffd400,#ff0,#d4ff00,#af0,#80ff00,#5f0,#2bff00,#0f0,#00ff2b,#0f5,#00ff80,#0fa,#00ffd5,#0ff,#00d4ff,#0af,#007fff,#05f,#002bff,#00f,#2a00ff,#50f,#7f00ff,#a0f,#d400ff,#f0f,#ff00d4,#f0a,#ff0080,#f05,#ff002b,red)}.satus-color-picker__hue .satus-slider__handle{width:16px;height:16px;background:#fff;box-shadow:0 0 4px rgb(0,0,0,.64)}.satus-color-picker__hue .satus-slider__handle:focus::after,.satus-color-picker__hue .satus-slider__track-fill,.satus-color-picker__hue::before{display:none}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background);overflow-y:auto;box-sizing:border-box}.satus-tabs{position:relative;display:flex;overflow:hidden;box-sizing:border-box;width:calc(100% - 16px);margin:16px 8px 4px;border:1px solid var(--satus-tabs);border-radius:18px}.satus-tabs__selection{position:absolute;z-index:0;left:0;width:50%;height:32px;transition:left .25s;border-radius:18px;background:var(--satus-tabs);box-shadow:1px 0 4px rgb(0,0,0,.8)}.satus-tabs__button{background:0 0;border:none;font-family:inherit;font-weight:500;font-size:12px;color:inherit;height:32px;flex:1;text-transform:uppercase;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;position:relative;z-index:1;padding:0 16px}.satus-tabs__button:hover{cursor:pointer}.satus-button{font:inherit;position:relative;overflow:hidden;height:48px;margin:0;padding:8px;color:var(--satus-button-text,inherit);border:none;background:var(--satus-button-background,transparent);appearance:none;text-align:left}.satus-button:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-button>*{pointer-events:none}.satus-header .satus-button{width:40px;min-width:40px;height:40px;padding:8px;color:inherit;border-radius:50%}.satus-header .satus-section--align-start>*{margin-right:8px}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;min-height:48px}.satus-list__item>:last-child{text-align:right}.satus-section{display:flex;flex-wrap:wrap;box-sizing:border-box}.satus-section--align-start{justify-content:flex-start}.satus-section--align-end{justify-content:flex-end}.satus-section--column{flex-direction:column}.satus-header>.satus-section{align-items:center}.satus-section--card{flex-direction:column;width:calc(100% - 24px);max-width:900px;margin:12px auto 0;padding:8px 0;border:1px solid rgba(0,0,0,.1);border-radius:8px;background:var(--satus-section-card-background);color:var(--satus-section-card-text);box-sizing:border-box}.satus-section--card:last-child{margin:12px auto}.satus-section--card>*{min-height:48px;padding:0 16px;text-align:left;box-sizing:border-box;width:100%}.satus-section--card>.satus-radio,.satus-section--card>.satus-select,.satus-section--card>.satus-switch{display:flex;justify-content:space-between;align-items:center}.satus-section--card>.satus-button:hover,.satus-section--card>.satus-radio:hover,.satus-section--card>.satus-select:hover,.satus-section--card>.satus-slider:hover,.satus-section--card>.satus-switch:hover{background-color:var(--satus-hover)}.satus-section--card>.satus-button{display:flex;padding:0 16px;align-items:center}.satus-section--card>.satus-button>svg{width:20px;margin:2px 16px 0 0;color:var(--satus-primary)}.satus-h2--section-label,.satus-section--label{font-size:14px;display:block;max-width:900px;margin:16px 16px 8px;width:100%;font-weight:600}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3)}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.2);backdrop-filter:blur(8px)}.satus-modal__surface{display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;margin:0 16px;padding:8px 0;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-text);border-radius:6px;background-color:var(--satus-modal-background);box-shadow:inset 0 -1px 1px 1px rgb(0,0,0,.1),0 2px 6px rgb(0,0,0,.15)}.satus-modal__surface .satus-section--actions{display:flex;padding:16px 8px 0;justify-content:flex-end;align-items:center;width:100%}.satus-modal__surface .satus-section--actions .satus-button{height:32px;margin-left:8px;padding:0 8px;border-radius:4px}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:0;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer}.satus-switch>i{width:38px;height:20px;transition:background-color 150ms;border-radius:20px;background-color:var(--satus-switch-track);flex:0 0 38px}.satus-section--card .satus-switch>i{margin-left:16px}.satus-switch[data-value=true]>i{background-color:var(--satus-switch-track--active)}.satus-switch>i::before{display:block;width:16px;height:16px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:var(--satus-switch-thumb);will-change:transform}.satus-switch[data-value=true]>i::before{transform:translateX(18px)}.satus-slider{box-sizing:border-box;width:100%;padding:8px 16px 0;outline:0}.satus-slider__container{position:relative;height:32px;width:100%}.satus-slider__track{position:absolute;top:50%;left:0;height:2px;width:100%;transform:translateY(-50%)}.satus-slider__track::before{position:absolute;left:0;top:0;width:100%;height:100%;background:var(--satus-primary);opacity:.24;content:''}.satus-slider__handle:focus::after{content:attr(data-value);position:absolute;left:50%;top:-2px;background:var(--satus-primary);color:#fff;display:block;transform:translate(-50%,-100%);padding:1px 4px;border-radius:4px}.satus-slider__track-fill{position:absolute;left:0;top:0;height:100%;background:var(--satus-primary)}.satus-slider__handle{position:absolute;width:10px;height:10px;background:var(--satus-primary);border-radius:50%;transform:translate(-50%,-50%);top:50%;left:0}.satus-slider__handle::before{content:'';background:var(--satus-primary);position:absolute;left:50%;top:50%;width:1px;height:1px;opacity:0;border-radius:50%;transform:translate(-50%,-50%) scale(1);transition:.2s}.satus-slider:focus .satus-slider__handle::before{transform:translate(-50%,-50%) scale(26);opacity:.24}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{text-transform:uppercase;font-size:11px;opacity:.5}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;background:rgba(0,0,0,.15);margin:8px 4px 0;border-radius:8px}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__mouse>div{position:absolute;top:0;left:13px;width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-4px;left:21px;width:2px;height:18px;content:'';background:#f96754}.satus-shortcut__mouse.false::after{position:absolute;top:-12px;left:17px;width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:14px;left:17px;width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-base{display:flex;flex-direction:column;width:100%;height:100%}.satus-text-field{position:relative;padding:0 16px;background-color:#333347;border-radius:8px;color:#c4c4d4;overflow:hidden;display:flex}.satus-text-field__pre{display:flex;position:relative;height:100%;margin:0;padding:0;overflow:hidden;align-items:center;flex:1}.satus-text-field__input{font:inherit;position:absolute;top:0;left:0;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0;opacity:0;border:none;appearance:none;z-index:9}.satus-text-field__hidden-text{position:absolute;pointer-events:none;opacity:0}.satus-text-field__text{position:absolute;top:0;left:0;display:flex;height:100%;margin:0;align-items:center}.satus-text-field__cursor{position:absolute;top:6px;left:0;display:none;width:2px;height:25px;animation:blink 1s step-end 8;background:#fa0}.satus-text-field__selection{position:absolute;top:5px;left:0;display:none;width:0;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:3px;background:rgba(255,255,255,.1)}.satus-text-field__input:focus+*+*+*+.satus-text-field__cursor,.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field__text>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__text>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-header{display:flex;box-sizing:border-box;height:56px;padding:0 16px;color:var(--satus-header-text);background:var(--satus-header-background);align-items:center;justify-content:space-between}.satus-header .satus-h1--title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.satus-alert{display:flex;box-sizing:border-box;min-height:48px;margin:8px;padding:8px 16px;border-radius:8px;align-items:center}.satus-alert--error{color:#c55959;border:1px solid #641616;background:#430f0f}.satus-layers{position:relative;overflow:hidden;color:var(--satus-layers-text);background:var(--satus-layers-background);flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;width:100%;height:100%;flex-wrap:wrap;align-content:flex-start}.satus-input[type=text]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:0;padding:0 8px;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-aside{color:var(--satus-aside-text);background:var(--satus-aside-background);box-sizing:border-box}.satus-select{position:relative;display:flex;box-sizing:border-box;align-items:center;justify-content:space-between}.satus-select__value{margin-left:16px;text-align:right;opacity:.75}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;padding:inherit;cursor:pointer;opacity:0;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1s;opacity:var(--satus-pluviam-opacity,.08);border-radius:50%;background:var(--satus-pluviam-background,#000);animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:var(--satus-pluviam-opacity,.08)}70%{transform:scale(.8);opacity:var(--satus-pluviam-opacity,.08)}100%{transform:scale(1);opacity:0}} \ No newline at end of file +body{--satus-primary:#f6b465;--satus-switch-background:rgba(0,0,0,.08);--satus-header-background:#fff;--satus-header-text:#848471;--satus-layers-background:#f6f6f4;--satus-layers-text:#848471;--satus-section-card-background:#fff;--satus-modal-background:#f6f6f4;--satus-modal-text:#848471;--satus-hover:rgba(0, 0, 0, .04);--satus-text-field--background:#333347;--satus-text-field--text:#c4c4d4;--satus-switch-track:#b8b8b8;--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#fff;--satus-tabs:#fff;--satus-tooltip:rgba(0,0,0,.4)}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:0;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:22px;height:22px;border:2px solid rgba(0,0,0,.16);border-radius:50%;background:#fff}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{padding-top:0}.satus-color-picker__palette{position:relative;overflow:hidden;width:100%;height:256px;background-color:red}.satus-color-picker__palette:before{position:absolute;top:0;left:0;width:100%;height:100%;content:'';background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,transparent)}.satus-color-picker__cursor{position:absolute;width:5px;height:5px;transform:translate(-50%,-50%);pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000}.satus-modal--color-picker .satus-modal__surface .satus-section--color{margin:8px 16px 0;align-items:center}.satus-color-picker__color{width:32px;height:32px;margin:0 16px 0 0;border:2px solid rgba(0,0,0,.16);border-radius:50%;background:red}.satus-slider.satus-color-picker__hue{padding:0;flex:1}.satus-color-picker__hue .satus-slider__track{height:16px;border-radius:4px;background-image:linear-gradient(90deg,red,#ff2a00,#f50,#ff7f00,#fa0,#ffd400,#ff0,#d4ff00,#af0,#80ff00,#5f0,#2bff00,#0f0,#00ff2b,#0f5,#00ff80,#0fa,#00ffd5,#0ff,#00d4ff,#0af,#007fff,#05f,#002bff,#00f,#2a00ff,#50f,#7f00ff,#a0f,#d400ff,#f0f,#ff00d4,#f0a,#ff0080,#f05,#ff002b,red)}.satus-color-picker__hue .satus-slider__handle{width:16px;height:16px;background:#fff;box-shadow:0 0 4px rgb(0,0,0,.64)}.satus-color-picker__hue .satus-slider__handle:focus::after,.satus-color-picker__hue .satus-slider__track-fill,.satus-color-picker__hue::before{display:none}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background);overflow-y:auto;box-sizing:border-box}.satus-tabs{position:relative;display:flex;overflow:hidden;box-sizing:border-box;border-radius:4px;background:#e8e8e3;border:2px solid #e8e8e3;height:26px}.satus-tabs__selection{position:absolute;z-index:0;left:0;width:50%;height:100%;transition:left .25s;border-radius:4px;background:#fff}.satus-tabs__button{background:0 0;border:none;font-family:inherit;font-weight:500;font-size:12px;color:inherit;height:100%;flex:1;text-transform:uppercase;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;position:relative;z-index:1;padding:0 16px}.satus-tabs__button:hover{cursor:pointer}.satus-menubar,.satus-menubar ul{margin:0;padding:0;list-style:none;background:var(--satus-menubar-background);color:var(--satus-menubar-text)}.satus-menubar li>.satus-button{height:32px;font-size:14px}.satus-menubar>li>ul{display:none;position:absolute}.satus-menubar>li>:focus+ul,.satus-menubar>li>ul:hover{display:block}.satus-button{font:inherit;position:relative;overflow:hidden;height:48px;margin:0;padding:8px;color:var(--satus-button-text,inherit);border:none;background:var(--satus-button-background,transparent);appearance:none;text-align:left}.satus-button:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-button>*{pointer-events:none}.satus-header .satus-button{width:40px;min-width:40px;height:40px;padding:8px;color:inherit;border-radius:50%}.satus-header .satus-section--align-start>*{margin-right:8px}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;min-height:48px}.satus-list__item>:last-child{text-align:right}.satus-section{display:flex;box-sizing:border-box;flex-wrap:wrap}.satus-section--align-start{align-items:center;justify-content:flex-start}.satus-section--align-end{align-items:center;justify-content:flex-end}.satus-section--space-between{align-items:center;justify-content:space-between}.satus-section--column{flex-direction:column}.satus-section--card{flex-direction:column;box-sizing:border-box;max-width:900px;width:100%;margin:8px auto;padding:8px 0;color:var(--satus-section-card-text);border:1px solid rgba(0,0,0,.1);border-radius:8px;background:var(--satus-section-card-background)}.satus-section--card>*{box-sizing:border-box;width:100%;min-height:48px;padding:0 16px;text-align:left}.satus-section--card>.satus-radio,.satus-section--card>.satus-select,.satus-section--card>.satus-switch{display:flex;justify-content:space-between;align-items:center}.satus-section--card>.satus-button:hover,.satus-section--card>.satus-radio:hover,.satus-section--card>.satus-select:hover,.satus-section--card>.satus-slider:hover,.satus-section--card>.satus-switch:hover{background-color:var(--satus-hover)}.satus-section--card>.satus-button{display:flex;padding:0 16px;align-items:center}.satus-section--card>.satus-button>svg{width:20px;margin:2px 16px 0 0;color:var(--satus-primary)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3)}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.16);backdrop-filter:blur(8px)}.satus-modal__surface{display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;margin:0 16px;padding:12px 16px;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-text);border-radius:6px;background-color:var(--satus-modal-background);box-shadow:inset 0 -1px 1px 1px rgb(0,0,0,.1),0 2px 6px rgb(0,0,0,.15)}.satus-modal__surface .satus-section--actions{display:flex;width:100%;padding:0;justify-content:flex-end;align-items:center;margin:8px 0 0}.satus-modal__surface .satus-section--actions .satus-button{height:32px;margin-left:8px;padding:0 8px;border-radius:4px;font-weight:500;color:var(--satus-primary);letter-spacing:.5px}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}.satus-modal--vertical .satus-modal__surface{position:absolute;top:8px;right:8px;left:auto;min-width:200px;max-width:200px;padding:8px 0;margin:0;transform-origin:right top}.satus-modal--vertical .satus-modal__surface>*{display:flex;height:36px;padding:0 16px;align-items:center}.satus-modal--vertical .satus-button svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75;fill:none;stroke:var(--satus-primary);flex:0 0 20px}.satus-modal--vertical .satus-button .satus-span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:0;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer}.satus-switch__content{display:flex;align-items:center}.satus-switch__content>svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75}.satus-switch>i{width:38px;height:20px;transition:background-color 150ms;border-radius:20px;background-color:var(--satus-switch-track);flex:0 0 38px}.satus-section--card .satus-switch>i{margin-left:16px}.satus-switch[data-value=true]>i{background-color:var(--satus-switch-track--active)}.satus-switch>i::before{display:block;width:16px;height:16px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:var(--satus-switch-thumb);will-change:transform}.satus-switch[data-value=true]>i::before{transform:translateX(18px)}.satus-slider{box-sizing:border-box;width:100%;padding:8px 16px 0;outline:0}.satus-slider__container{position:relative;height:32px;width:100%}.satus-slider__track{position:absolute;top:50%;left:0;height:2px;width:100%;transform:translateY(-50%)}.satus-slider__track::before{position:absolute;left:0;top:0;width:100%;height:100%;background:var(--satus-primary);opacity:.24;content:''}.satus-slider__handle:focus::after{content:attr(data-value);position:absolute;left:50%;top:-2px;background:var(--satus-primary);color:#fff;display:block;transform:translate(-50%,-100%);padding:1px 4px;border-radius:4px}.satus-slider__track-fill{position:absolute;left:0;top:0;height:100%;background:var(--satus-primary)}.satus-slider__handle{position:absolute;width:10px;height:10px;background:var(--satus-primary);border-radius:50%;transform:translate(-50%,-50%);top:50%;left:0}.satus-slider__handle::before{content:'';background:var(--satus-primary);position:absolute;left:50%;top:50%;width:1px;height:1px;opacity:0;border-radius:50%;transform:translate(-50%,-50%) scale(1);transition:.2s}.satus-slider:focus .satus-slider__handle::before{transform:translate(-50%,-50%) scale(26);opacity:.24}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{text-transform:uppercase;font-size:11px;opacity:.5}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;background:rgba(0,0,0,.15);margin:8px 4px 0;border-radius:8px}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__mouse>div{position:absolute;top:0;left:13px;width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-4px;left:21px;width:2px;height:18px;content:'';background:#f96754}.satus-shortcut__mouse.false::after{position:absolute;top:-12px;left:17px;width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:14px;left:17px;width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-base{display:flex;flex-direction:column;width:100%;height:100%}.satus-text-field{position:relative;padding:0 16px;background-color:var(--satus-text-field--background);border-radius:8px;color:var(--satus-text-field--text);overflow:hidden;display:flex}.satus-text-field__pre{display:flex;position:relative;height:100%;margin:0;padding:0;overflow:hidden;align-items:center;flex:1}.satus-text-field__input{font:inherit;position:absolute;top:0;left:0;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0;opacity:0;border:none;appearance:none;z-index:9}.satus-text-field__hidden-text{position:absolute;pointer-events:none;opacity:0}.satus-text-field__text{position:absolute;top:0;left:0;display:flex;height:100%;margin:0;align-items:center}.satus-text-field__cursor{position:absolute;top:6px;left:0;display:none;width:2px;height:25px;animation:blink 1s step-end 8;background:#fa0}.satus-text-field__selection{position:absolute;top:5px;left:0;display:none;width:0;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:3px;background:rgba(255,255,255,.1)}.satus-text-field__input:focus+*+*+*+.satus-text-field__cursor,.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field__text>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__text>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-header{z-index:1;display:flex;box-sizing:border-box;height:56px;padding:0 12px;color:var(--satus-header-text);background:var(--satus-header-background);box-shadow:0 1px 2px rgb(47,41,34,.16);align-items:center;justify-content:space-between}.satus-alert{display:flex;box-sizing:border-box;min-height:48px;margin:8px;padding:8px 16px;border-radius:8px;align-items:center}.satus-alert--error{color:#c55959;border:1px solid #641616;background:#430f0f}.satus-layers{position:relative;overflow:hidden;color:var(--satus-layers-text);background:var(--satus-layers-background);flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;box-sizing:border-box;width:100%;height:100%;padding:0 12px;flex-wrap:wrap;align-content:flex-start}.satus-input[type=text]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:0;padding:0 8px;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-input[type=text]{font-size:16px;margin:8px 0;padding:4px 8px;border:1px solid #e8e8e8;border-radius:4px;background-color:#fff}.satus-aside{color:var(--satus-aside-text);background:var(--satus-aside-background);box-sizing:border-box}.satus-select{position:relative;display:flex;box-sizing:border-box;align-items:center;justify-content:space-between}.satus-select__content{display:flex;align-items:center}.satus-select__content>svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75}.satus-select__value{margin-left:16px;text-align:right;opacity:.75}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;padding:inherit;cursor:pointer;opacity:0;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1s;opacity:var(--satus-pluviam-opacity,.08);border-radius:50%;background:var(--satus-pluviam-background,#000);animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:var(--satus-pluviam-opacity,.08)}70%{transform:scale(.8);opacity:var(--satus-pluviam-opacity,.08)}100%{transform:scale(1);opacity:0}} \ No newline at end of file diff --git a/satus.js b/satus.js index 5167b8a86..88068682b 100644 --- a/satus.js +++ b/satus.js @@ -1 +1 @@ -var satus={components:{},events:{},locale:{strings:{}},storage:{attributes:{},data:{}},append:function(e,M){(M||document.body).appendChild(e)},getAnimationDuration:function(e){return 1e3*Number(window.getComputedStyle(e).getPropertyValue("animation-duration").replace(/[^0-9.]/g,""))},attr:function(e,M){if(M)for(var t in M){var N;e.is_svg?e.setAttributeNS(null,t,M[t]):(N=M[t],-1!==["placeholder","title"].indexOf(t)&&(N=satus.locale.get(N)),e.setAttribute(t,N))}},elementIndex:function(e){return Array.prototype.slice.call(e.parentNode.children).indexOf(e)},data:function(e,M){if(M)for(var t in M)e.dataset[t]=M[t]},properties:function(e,M){if(M)for(var t in M)e[t]=M[t]},camelize:function(e){for(var M="",t=0,N=e.length;tparseInt(e,16)),i={name:"AES-GCM",iv:new Uint8Array(M)};try{var N=(new TextDecoder).decode(await crypto.subtle.decrypt(i,await crypto.subtle.importKey("raw",await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t)),i,!1,["decrypt"]),new Uint8Array(atob(e.slice(24)).match(/[\s\S]/g).map(e=>e.charCodeAt(0)))))}catch(e){return!1}return N},satus.encrypt=async function(e,t){var M=crypto.getRandomValues(new Uint8Array(12)),i={name:"AES-GCM",iv:M};return Array.from(M).map(e=>("00"+e.toString(16)).slice(-2)).join("")+btoa(Array.from(new Uint8Array(await crypto.subtle.encrypt(i,await crypto.subtle.importKey("raw",await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t)),i,!1,["encrypt"]),(new TextEncoder).encode(e)))).map(e=>String.fromCharCode(e)).join(""))},satus.render=function(e,t,M,i){if(e.hasOwnProperty("component")&&!0!==M){var N,I=e.component,M=this.camelize(I);if(e.on&&e.on.beforerender&&e.on.beforerender(e),"function"==typeof e.storage?e.storage=e.storage():!1===e.hasOwnProperty("storage")&&i&&(e.storage=i),this.components[M]?(N=this.components[M](e),!1===this.isset(N.inner)&&(N.inner=N)):"svg"===I||t&&t.is_svg?((N=document.createElementNS("http://www.w3.org/2000/svg",I)).is_svg=!0,N.inner=N):(N=document.createElement(e.component)).inner=N,!1===N.inner.hasOwnProperty("base")&&t&&(N.inner.base=t.base),N.inner.base&&"layers"===I&&(N.inner.base.layers=N),(e.rendered=N).skeleton=e,N.className=(N.className+" satus-"+e.component).trim(),N.change=function(e){this.skeleton.storage&&satus.storage.set(this.skeleton.storage,e),this.dispatchEvent(new CustomEvent("change"))},e.variant&&(N.className+=" satus-"+e.component+"--"+e.variant),this.append(N,t),t=N.inner||N,this.class(N,e.class),this.style(N,e.style),this.attr(N,e.attr),this.data(N,e.data),this.properties(N,e.properties),this.on(N,e.on),this.text(t,e.text),N.dispatchEvent(new CustomEvent("render")),!0===e.autofocus&&N.focus(),this.events.hasOwnProperty("render"))for(var a=0,g=this.events.render.length;a Date: Tue, 19 Oct 2021 02:25:17 -0400 Subject: [PATCH 0415/1224] Added 144p opt in shortcut quality about issue #1073 --- popup.js | 7 +++++++ youtube-scripts.js | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/popup.js b/popup.js index c3b016d88..4b4ecb678 100644 --- a/popup.js +++ b/popup.js @@ -2971,6 +2971,9 @@ var skeleton = { }, { text: 'fitToWindow', value: 'fit_to_window' + }, { + text: '144p', + value: '144p' }, { text: '240p', value: '240p' @@ -5132,6 +5135,10 @@ var skeleton = { component: 'shortcut', text: 'auto' }, + shortcut_144p: { + component: 'shortcut', + text: '144p' + }, shortcut_240p: { component: 'shortcut', text: '240p' diff --git a/youtube-scripts.js b/youtube-scripts.js index 07ad52636..e599fb6fe 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3095,6 +3095,7 @@ ImprovedTube.shortcuts = function() { if (same_keys === true) { if ([ 'shortcutAuto', + 'shortcut144p', 'shortcut240p', 'shortcut360p', 'shortcut480p', @@ -3225,6 +3226,10 @@ ImprovedTube.shortcutQuality = function (key) { if (this.elements.player) { var value = key.replace('shortcut', '').toLowerCase(); + if (value === '144p') { + value = 'tiny'; + } + if (value === '240p') { value = 'small'; } From bebafb0f789476dd566e4fca79457728960a2bb5 Mon Sep 17 00:00:00 2001 From: dodieboy Date: Thu, 21 Oct 2021 20:30:31 +0800 Subject: [PATCH 0416/1224] Improve HD Thumbnail --- _locales/ar/messages.json | 1965 ++++++++++++++++----------------- _locales/bn/messages.json | 1953 ++++++++++++++++----------------- _locales/de/messages.json | 1953 ++++++++++++++++----------------- _locales/el/messages.json | 1953 ++++++++++++++++----------------- _locales/en/messages.json | 1971 ++++++++++++++++----------------- _locales/es/messages.json | 1953 ++++++++++++++++----------------- _locales/fr/messages.json | 1959 ++++++++++++++++----------------- _locales/hin/messages.json | 1953 ++++++++++++++++----------------- _locales/hr/messages.json | 1965 ++++++++++++++++----------------- _locales/id/messages.json | 1947 ++++++++++++++++----------------- _locales/it/messages.json | 1947 ++++++++++++++++----------------- _locales/ja/messages.json | 1953 ++++++++++++++++----------------- _locales/ko/messages.json | 1947 ++++++++++++++++----------------- _locales/nb_NO/messages.json | 1959 ++++++++++++++++----------------- _locales/nl/messages.json | 1953 ++++++++++++++++----------------- _locales/no/messages.json | 1935 ++++++++++++++++----------------- _locales/pl/messages.json | 1971 ++++++++++++++++----------------- _locales/pt_BR/messages.json | 1953 ++++++++++++++++----------------- _locales/pt_PT/messages.json | 1953 ++++++++++++++++----------------- _locales/ro/messages.json | 1965 ++++++++++++++++----------------- _locales/ru/messages.json | 1965 ++++++++++++++++----------------- _locales/sk/messages.json | 1953 ++++++++++++++++----------------- _locales/tr/messages.json | 1953 ++++++++++++++++----------------- _locales/zh_CN/messages.json | 1977 +++++++++++++++++----------------- _locales/zh_TW/messages.json | 1959 ++++++++++++++++----------------- manifest.json | 2 +- popup.js | 25 +- youtube-scripts.js | 22 +- 28 files changed, 24677 insertions(+), 24287 deletions(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index f252c8ddb..459ce169e 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -1,977 +1,992 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "حول" - }, - "accept": { - "message": "قبول" - }, - "activate": { - "message": "تفعيل" - }, - "activateCaptions": { - "message": "تفعيل الترجمة" - }, - "activateFullscreen": { - "message": "تفعيل ملء الشاشة" - }, - "activated": { - "message": "مفعل" - }, - "activatedFeatures": { - "message": "الميزات المفعلة" - }, - "activeFeatures": { - "message": "الميزات النشطة" - }, - "addScrollToTop": { - "message": "آضف الصعود لأعلى" - }, - "ads": { - "message": "الاعلانات" - }, - "all": { - "message": "الكل" - }, - "allow": { - "message": "سماح" - }, - "allow60fps": { - "message": "السماح لـ60إطار" - }, - "alwaysActive": { - "message": "دائما نشط" - }, - "alwaysShowProgressBar": { - "message": "إظهار شريط التقدم دائمًا" - }, - "amber": { - "message": "العنبر" - }, - "analyzer": { - "message": "المحلل" - }, - "appearance": { - "message": "المظهر العام" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "الصوت" - }, - "audioFormats": { - "message": "تنسيقات الصوت" - }, - "auto": { - "message": "تلقائي" - }, - "autoFullscreen": { - "message": "ملء تلقائي للشاشة" - }, - "autopauseWhenSwitchingTabs": { - "message": "إيقاف تلقائي عند التبديل بين التبويبات" - }, - "autoplay": { - "message": "تشغيل تلقائي" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "إعادة تعيين والنسخ الاحتياطي" - }, - "baseOnSystemColorScheme": { - "message": "يناء على ألوان النظام" - }, - "belowPlayer": { - "message": "اسفل المشغل" - }, - "black": { - "message": "اسود" - }, - "blacklist": { - "message": "القائمة السوداء" - }, - "blockAll": { - "message": "حظر الكل" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "ازرق" - }, - "blueGray": { - "message": "ازرق رمادي" - }, - "bluelight": { - "message": "الضوء الأزرق" - }, - "brown": { - "message": "بنى" - }, - "browser": { - "message": "المتصفح" - }, - "browserVersion": { - "message": "إصدار المتصفح" - }, - "bubbles": { - "message": "فقاعات" - }, - "bug": { - "message": "خلل برمجي" - }, - "buttons": { - "message": "أزرار" - }, - "cancel": { - "message": "إلغاء" - }, - "categories": { - "message": "التصنيفات" - }, - "channel": { - "message": "قناة" - }, - "channels": { - "message": "القنوات" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "الحافظة" - }, - "codecH264": { - "message": "h.الترميز 264" - }, - "collapseOfSubscriptionSections": { - "message": "ضغط قسم الاشتراكات" - }, - "collapsed": { - "message": "ضغط" - }, - "comments": { - "message": "التعليقات" - }, - "confirmationBeforeClosing": { - "message": "التأكيد قبل الإغلاق" - }, - "cookies": { - "message": "ملفات تعريف الارتباط" - }, - "cores": { - "message": "النواه" - }, - "cropChapterTitles": { - "message": "اقتطاع عناوين الفصول" - }, - "customCss": { - "message": "مخصص CSS" - }, - "customJs": { - "message": "مخصص JS" - }, - "customMiniPlayer": { - "message": "المشغل الصغير المخصص" - }, - "cyan": { - "message": "ازرق سماوي" - }, - "dark": { - "message": "داكن" - }, - "darkTheme": { - "message": "مظهر داكن" - }, - "dateAndTime": { - "message": "التاريخ والوقت" - }, - "dawn": { - "message": "فجر" - }, - "decreasePlaybackSpeed": { - "message": "تقليل سرعة التشغيل" - }, - "decreaseVolume": { - "message": "Decrease volume" - }, - "decreaseVolume5": { - "message": "5% خفض الصوت" - }, - "deepOrange": { - "message": "برتقالي داكن" - }, - "deepPurple": { - "message": "أرجواني داكن" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "علامة تبويب القناة الافتراضية" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "حذف ملفات تعريف الارتباط من اليوتيوب" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "الوصف" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "صحراء" - }, - "details": { - "message": "التفاصيل" - }, - "developerOptions": { - "message": "خيارات المطور" - }, - "device": { - "message": "الجهاز" - }, - "dim": { - "message": "داكن" - }, - "disabled": { - "message": "معطل" - }, - "dislike": { - "message": "لم يعجبنى" - }, - "doNotChange": { - "message": "الإفتراضي" - }, - "donate": { - "message": "تبرع" - }, - "draggable": { - "message": "قابل للسحب" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "البريد الإلكتروني" - }, - "empty": { - "message": "فارغة" - }, - "enabled": { - "message": "ممكّن" - }, - "enabledForced": { - "message": "ممكّن (إجباري)" - }, - "expanded": { - "message": "موسع" - }, - "exportSettings": { - "message": "تصدير الإعدادات" - }, - "extension": { - "message": "الإضافة" - }, - "file": { - "message": "ملف" - }, - "filters": { - "message": "مرشحات" - }, - "fitToWindow": { - "message": "مناسب للنافذة" - }, - "flash": { - "message": "فلاش" - }, - "font": { - "message": "الخط" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "الحزء السفلي" - }, - "forceSDR": { - "message": "SDR فرض" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "تثبيت سرعة التشغيل" - }, - "forcedTheaterMode": { - "message": "فرض وضع المسرح" - }, - "forcedVolume": { - "message": "تثبيت مستوى الصوت" - }, - "foundABug": { - "message": "وجدت خطأ؟" - }, - "fullWindow": { - "message": "نافذة كاملة" - }, - "general": { - "message": "عام" - }, - "github": { - "message": "جيتهب" - }, - "goToSearchBox": { - "message": "انتقل إلى مربع البحث" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "كرت الشاشة" - }, - "green": { - "message": "أخضر" - }, - "hdThumbnail": { - "message": "صورة مصغرة عالية الدقة" - }, - "hdThumbnails": { - "message": "صور مصغرة عالية الدقة" - }, - "header": { - "message": "الجزء العلوي" - }, - "hidden": { - "message": "مخفي" - }, - "hiddenOnVideoPage": { - "message": "مخفي على صفحة الفيديو" - }, - "hideAnimatedThumbnails": { - "message": "إخفاء الصور المصغرة المتحركة" - }, - "hideAnnotations": { - "message": "إخفاء التعليقات التوضيحية" - }, - "hideCards": { - "message": "إخفاء البطاقات" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "إخفاء التفاصيل" - }, - "hideEndscreen": { - "message": "إخفاء شاشة النهاية" - }, - "hideFeaturedContent": { - "message": "إخفاء المحتوى المميز" - }, - "hideFooter": { - "message": "إخفاء الجزء السفلي" - }, - "hideGradientBottom": { - "message": "إخفاء التدرج الأسود السفلي" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "إخفاء قائمة التشغيل" - }, - "hideRightButtons": { - "message": "إخفاء الأزرار اليسرى" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "«إخفاء «التمرير للحصول على التفاصيل" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "إخفاء عدد المشاهدات" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "السجلّ" - }, - "home": { - "message": "الصفحة الرئيسية" - }, - "hover": { - "message": "تمرير" - }, - "hoverOnVideoPage": { - "message": "تمرير فوق صفحة الفيديو" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "منذ متى تم تحميل الفيديو" - }, - "icons": { - "message": "أيقونات" - }, - "iconsOnly": { - "message": "أيقونات فقط" - }, - "importSettings": { - "message": "استيراد الاعدادات" - }, - "improveLogo": { - "message": "تحسين الشعار" - }, - "improvedtubeIconOnYoutube": { - "message": "في اليوتيوب ImprovedTube ايقونة" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube لغة" - }, - "improvedtubeVersion": { - "message": "ImprovedTube اصدار" - }, - "increasePlaybackSpeed": { - "message": "زيادة سرعة التشغيل" - }, - "increaseVolume": { - "message": "Increase volume" - }, - "increaseVolume5": { - "message": "5% زيادة الصوت" - }, - "indigo": { - "message": "نيلي" - }, - "items": { - "message": "العناصر" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "اللغات" - }, - "legacyYoutube": { - "message": "اليوتيوب القديم" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "ضوء" - }, - "lightBlue": { - "message": "أزرق فاتح" - }, - "lightGreen": { - "message": "اخضر فاتح" - }, - "like": { - "message": "اعحبني" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "الإعجابات" - }, - "lime": { - "message": "جير" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "قائمة" - }, - "liveChat": { - "message": "محادثة مباشرة" - }, - "liveChatType": { - "message": "نوع المحادثة مباشرة" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "تطبيع الإزعاج" - }, - "markWatchedVideos": { - "message": "التعليم على الفيديو المشاهد" - }, - "mixer": { - "message": "مهندس الصوت" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "ألواني" - }, - "name": { - "message": "الاسم" - }, - "nativeMiniPlayer": { - "message": "المشغل الافتراضي الصغير" - }, - "new": { - "message": "جديد" - }, - "nextVideo": { - "message": "الفيديو التالي" - }, - "night": { - "message": "ليل" - }, - "noActiveFeatures": { - "message": "لا يوجد ميزات نشطة" - }, - "noOpenVideoTabs": { - "message": "لا توجد علامات تبويب فيديو مفتوحة" - }, - "none": { - "message": "لاشيء" - }, - "normal": { - "message": "عادي" - }, - "old": { - "message": "قديم" - }, - "onAllVideos": { - "message": "على جميع مقاطع الفيديو" - }, - "onSubscribedChannels": { - "message": "على القنوات المشتركة" - }, - "onlyActiveOnYoutube": { - "message": "نشط فقط على اليوتيوب" - }, - "onlyOnePlayerInstancePlaying": { - "message": "تشغيل مشغل واحد فقط" - }, - "orange": { - "message": "برتقالي" - }, - "os": { - "message": "نظام التشغيل" - }, - "other": { - "message": "آخر" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "الأذونات" - }, - "pictureInPicture": { - "message": "فيديو عائم" - }, - "pink": { - "message": "زهري" - }, - "plain": { - "message": "عادي" - }, - "platform": { - "message": "المنصة" - }, - "playPause": { - "message": "تشغيل / ايقاف" - }, - "playbackSpeed": { - "message": "سرعة التشغيل" - }, - "player": { - "message": "المشغل" - }, - "playerColor": { - "message": "لون المشغل" - }, - "playerSize": { - "message": "حجم المشغل" - }, - "playlist": { - "message": "قائمة التشغيل" - }, - "playlists": { - "message": "قوائم التشغيل" - }, - "popupPlayer": { - "message": "مشفل منبثق" - }, - "position": { - "message": "التموضع" - }, - "pressAnyKeyOrScroll": { - "message": ".اضغط على أي مفتاح أو استخدم عجلة الماوس" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "اضغط على أي مفتاح أو استخدم عجلة الماوس" - }, - "previousVideo": { - "message": "الفيديو السابق" - }, - "primaryColor": { - "message": "اللون الأصلي" - }, - "purple": { - "message": "أرجواني" - }, - "quality": { - "message": "الجودة" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "الذاكرة العشوائية" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "قيمنا" - }, - "red": { - "message": "احمر" - }, - "redDislikeButton": { - "message": "إظهار زر لم يعجبني باللون الأحمر" - }, - "relatedVideos": { - "message": "فيديوهات ذات علاقة" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "إزالة عمليات بحث مرتبطة بـ" - }, - "repeat": { - "message": "تكرار" - }, - "reset": { - "message": "إعادة تعيين" - }, - "resetAllSettings": { - "message": "إعادة تعيين كافة الإعدادات" - }, - "resetAllShortcuts": { - "message": "إعادة تعيين جميع الاختصارات" - }, - "reverse": { - "message": "عكس" - }, - "rotate": { - "message": "استدارة" - }, - "save": { - "message": "حفظ" - }, - "saveAs": { - "message": "حفظ باسم" - }, - "schedule": { - "message": "جدوله" - }, - "screen": { - "message": "الشاشة" - }, - "screenshot": { - "message": "لقطة شاشة" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "بحث" - }, - "searchBarOnly": { - "message": "شريط البحث فقط" - }, - "seekBackward10Seconds": { - "message": "إرجاع بمقدار 10 ثوانٍ" - }, - "seekForward10Seconds": { - "message": "تقديم 10 ثوانٍ إلى الأمام" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "الإعدادات" - }, - "settingsSuccessfullyImported": { - "message": "تم استيراد الإعدادات بنجاح" - }, - "shortcuts": { - "message": "اختصارات" - }, - "showCardsOnMouseHover": { - "message": "عرض البطاقات عند تمرير الماوس" - }, - "showChannelVideosCount": { - "message": "إظهار عدد مقاطع الفيديو للقناة" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "عشوائي" - }, - "sidebar": { - "message": "الشريط الجانبي" - }, - "spacebar": { - "message": "مفتاح المسافة" - }, - "squaredUserImages": { - "message": "صور المستخدمين مربعة" - }, - "static": { - "message": "ثابت" - }, - "statsForNerds": { - "message": "عرض الإحصاءات المفصلة" - }, - "step": { - "message": "خطوة" - }, - "stop": { - "message": "ايقاف" - }, - "style": { - "message": "نمط" - }, - "styles": { - "message": "الأنماط" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "الاشتراكات" - }, - "subtitles": { - "message": "الترجمات" - }, - "sunset": { - "message": "غروب الشمس" - }, - "sunsetToSunrise": { - "message": "من غروب الشمس إلى شروقها" - }, - "systemPeferenceDark": { - "message": "تفضيل النظام: داكن" - }, - "systemPeferenceLight": { - "message": "تفضيل النظام: فاتح" - }, - "teal": { - "message": "أزرق مخضر" - }, - "textColor": { - "message": "لون النص" - }, - "themes": { - "message": "المظاهر" - }, - "thisWillRemoveAllCookies": { - "message": ".سيؤدي هذا إلى إزالة كافة ملفات تعريف الارتباط" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "سيؤدي هذا إلى إزالة جميع ملفات تعريف ارتباط اليوتيوب" - }, - "thisWillResetAllSettings": { - "message": ".سيؤدي هذا إلى إعادة تعيين جميع الإعدادات" - }, - "thisWillResetAllShortcuts": { - "message": "سيؤدي هذا إلى إعادة تعيين جميع الاختصارات" - }, - "thumbnails": { - "message": "الصور المصغرة" - }, - "timeFrom": { - "message": "الوقت من" - }, - "timeTo": { - "message": "وقت ل" - }, - "todayAt": { - "message": "اليوم عند الساعة" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "تبديل وضع البطاقات" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "رسائل المحادثة الهامّة" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "التشغيل التلقائي للفيديو الدعائي" - }, - "translations": { - "message": "الترجمات" - }, - "transparentBackground": { - "message": "خلفية شفافة" - }, - "trending": { - "message": "المحتوى الرائج" - }, - "tryToReloadThePage": { - "message": "حاول إعادة تحميل الصفحة" - }, - "type": { - "message": "النوع" - }, - "upNextAutoplay": { - "message": "تشغيل التالي تلقائيا" - }, - "use24HourFormat": { - "message": "استخدم تنسيق 24 ساعة" - }, - "version": { - "message": "الإصدار" - }, - "video": { - "message": "الفيديو" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "سيتم توسيع وصف الفيديو للحصول على اسم الفئة" - }, - "videoFormats": { - "message": "تنسيقات الفيديو" - }, - "videos": { - "message": "الفيديوهات" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "الصوت" - }, - "watchLater": { - "message": "المشاهدة لاحقا" - }, - "watchTime": { - "message": "وقت المشاهدة" - }, - "whenTabIsChanged": { - "message": "عندما يتم تغيير علامة التبويب" - }, - "white": { - "message": "أبيض" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "أصفر" - }, - "youtubeHeaderLeft": { - "message": "جزء اليوتيوب العلوي (يسار) " - }, - "youtubeHeaderRight": { - "message": "جزء اليوتيوب العلوي (يمين)" - }, - "youtubeHomePage": { - "message": "صفحة اليوتيوب الرئيسية" - }, - "youtubeLanguage": { - "message": "لغة اليوتيوب" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "h.264 يحد اليوتيوب من جودة الفيديو الى ١٠٨٠ لـ الترميز" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "حول" + }, + "accept": { + "message": "قبول" + }, + "activate": { + "message": "تفعيل" + }, + "activateCaptions": { + "message": "تفعيل الترجمة" + }, + "activateFullscreen": { + "message": "تفعيل ملء الشاشة" + }, + "activated": { + "message": "مفعل" + }, + "activatedFeatures": { + "message": "الميزات المفعلة" + }, + "activeFeatures": { + "message": "الميزات النشطة" + }, + "addScrollToTop": { + "message": "آضف الصعود لأعلى" + }, + "ads": { + "message": "الاعلانات" + }, + "all": { + "message": "الكل" + }, + "allow": { + "message": "سماح" + }, + "allow60fps": { + "message": "السماح لـ60إطار" + }, + "alwaysActive": { + "message": "دائما نشط" + }, + "alwaysShowProgressBar": { + "message": "إظهار شريط التقدم دائمًا" + }, + "amber": { + "message": "العنبر" + }, + "analyzer": { + "message": "المحلل" + }, + "appearance": { + "message": "المظهر العام" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "الصوت" + }, + "audioFormats": { + "message": "تنسيقات الصوت" + }, + "auto": { + "message": "تلقائي" + }, + "autoFullscreen": { + "message": "ملء تلقائي للشاشة" + }, + "autopauseWhenSwitchingTabs": { + "message": "إيقاف تلقائي عند التبديل بين التبويبات" + }, + "autoplay": { + "message": "تشغيل تلقائي" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "إعادة تعيين والنسخ الاحتياطي" + }, + "baseOnSystemColorScheme": { + "message": "يناء على ألوان النظام" + }, + "belowPlayer": { + "message": "اسفل المشغل" + }, + "black": { + "message": "اسود" + }, + "blacklist": { + "message": "القائمة السوداء" + }, + "blockAll": { + "message": "حظر الكل" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "ازرق" + }, + "blueGray": { + "message": "ازرق رمادي" + }, + "bluelight": { + "message": "الضوء الأزرق" + }, + "brown": { + "message": "بنى" + }, + "browser": { + "message": "المتصفح" + }, + "browserVersion": { + "message": "إصدار المتصفح" + }, + "bubbles": { + "message": "فقاعات" + }, + "bug": { + "message": "خلل برمجي" + }, + "buttons": { + "message": "أزرار" + }, + "cancel": { + "message": "إلغاء" + }, + "categories": { + "message": "التصنيفات" + }, + "channel": { + "message": "قناة" + }, + "channels": { + "message": "القنوات" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "الحافظة" + }, + "codecH264": { + "message": "h.الترميز 264" + }, + "collapseOfSubscriptionSections": { + "message": "ضغط قسم الاشتراكات" + }, + "collapsed": { + "message": "ضغط" + }, + "comments": { + "message": "التعليقات" + }, + "confirmationBeforeClosing": { + "message": "التأكيد قبل الإغلاق" + }, + "cookies": { + "message": "ملفات تعريف الارتباط" + }, + "cores": { + "message": "النواه" + }, + "cropChapterTitles": { + "message": "اقتطاع عناوين الفصول" + }, + "customCss": { + "message": "مخصص CSS" + }, + "customJs": { + "message": "مخصص JS" + }, + "customMiniPlayer": { + "message": "المشغل الصغير المخصص" + }, + "cyan": { + "message": "ازرق سماوي" + }, + "dark": { + "message": "داكن" + }, + "darkTheme": { + "message": "مظهر داكن" + }, + "dateAndTime": { + "message": "التاريخ والوقت" + }, + "dawn": { + "message": "فجر" + }, + "decreasePlaybackSpeed": { + "message": "تقليل سرعة التشغيل" + }, + "decreaseVolume": { + "message": "Decrease volume" + }, + "decreaseVolume5": { + "message": "5% خفض الصوت" + }, + "deepOrange": { + "message": "برتقالي داكن" + }, + "deepPurple": { + "message": "أرجواني داكن" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "علامة تبويب القناة الافتراضية" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "حذف ملفات تعريف الارتباط من اليوتيوب" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "الوصف" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "صحراء" + }, + "details": { + "message": "التفاصيل" + }, + "developerOptions": { + "message": "خيارات المطور" + }, + "device": { + "message": "الجهاز" + }, + "dim": { + "message": "داكن" + }, + "disabled": { + "message": "معطل" + }, + "dislike": { + "message": "لم يعجبنى" + }, + "doNotChange": { + "message": "الإفتراضي" + }, + "donate": { + "message": "تبرع" + }, + "draggable": { + "message": "قابل للسحب" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "البريد الإلكتروني" + }, + "empty": { + "message": "فارغة" + }, + "enabled": { + "message": "ممكّن" + }, + "enabledForced": { + "message": "ممكّن (إجباري)" + }, + "expanded": { + "message": "موسع" + }, + "exportSettings": { + "message": "تصدير الإعدادات" + }, + "extension": { + "message": "الإضافة" + }, + "file": { + "message": "ملف" + }, + "filters": { + "message": "مرشحات" + }, + "fitToWindow": { + "message": "مناسب للنافذة" + }, + "flash": { + "message": "فلاش" + }, + "font": { + "message": "الخط" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "الحزء السفلي" + }, + "forceSDR": { + "message": "SDR فرض" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "تثبيت سرعة التشغيل" + }, + "forcedTheaterMode": { + "message": "فرض وضع المسرح" + }, + "forcedVolume": { + "message": "تثبيت مستوى الصوت" + }, + "foundABug": { + "message": "وجدت خطأ؟" + }, + "fullWindow": { + "message": "نافذة كاملة" + }, + "general": { + "message": "عام" + }, + "github": { + "message": "جيتهب" + }, + "goToSearchBox": { + "message": "انتقل إلى مربع البحث" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "كرت الشاشة" + }, + "green": { + "message": "أخضر" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "صورة مصغرة عالية الدقة" + }, + "header": { + "message": "الجزء العلوي" + }, + "hidden": { + "message": "مخفي" + }, + "hiddenOnVideoPage": { + "message": "مخفي على صفحة الفيديو" + }, + "hideAnimatedThumbnails": { + "message": "إخفاء الصور المصغرة المتحركة" + }, + "hideAnnotations": { + "message": "إخفاء التعليقات التوضيحية" + }, + "hideCards": { + "message": "إخفاء البطاقات" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "إخفاء التفاصيل" + }, + "hideEndscreen": { + "message": "إخفاء شاشة النهاية" + }, + "hideFeaturedContent": { + "message": "إخفاء المحتوى المميز" + }, + "hideFooter": { + "message": "إخفاء الجزء السفلي" + }, + "hideGradientBottom": { + "message": "إخفاء التدرج الأسود السفلي" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "إخفاء قائمة التشغيل" + }, + "hideRightButtons": { + "message": "إخفاء الأزرار اليسرى" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "«إخفاء «التمرير للحصول على التفاصيل" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "إخفاء عدد المشاهدات" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "السجلّ" + }, + "home": { + "message": "الصفحة الرئيسية" + }, + "hover": { + "message": "تمرير" + }, + "hoverOnVideoPage": { + "message": "تمرير فوق صفحة الفيديو" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "منذ متى تم تحميل الفيديو" + }, + "icons": { + "message": "أيقونات" + }, + "iconsOnly": { + "message": "أيقونات فقط" + }, + "importSettings": { + "message": "استيراد الاعدادات" + }, + "improveLogo": { + "message": "تحسين الشعار" + }, + "improvedtubeIconOnYoutube": { + "message": "في اليوتيوب ImprovedTube ايقونة" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube لغة" + }, + "improvedtubeVersion": { + "message": "ImprovedTube اصدار" + }, + "increasePlaybackSpeed": { + "message": "زيادة سرعة التشغيل" + }, + "increaseVolume": { + "message": "Increase volume" + }, + "increaseVolume5": { + "message": "5% زيادة الصوت" + }, + "indigo": { + "message": "نيلي" + }, + "items": { + "message": "العناصر" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "اللغات" + }, + "legacyYoutube": { + "message": "اليوتيوب القديم" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "ضوء" + }, + "lightBlue": { + "message": "أزرق فاتح" + }, + "lightGreen": { + "message": "اخضر فاتح" + }, + "like": { + "message": "اعحبني" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "الإعجابات" + }, + "lime": { + "message": "جير" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "قائمة" + }, + "liveChat": { + "message": "محادثة مباشرة" + }, + "liveChatType": { + "message": "نوع المحادثة مباشرة" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "تطبيع الإزعاج" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "التعليم على الفيديو المشاهد" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "مهندس الصوت" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "ألواني" + }, + "name": { + "message": "الاسم" + }, + "nativeMiniPlayer": { + "message": "المشغل الافتراضي الصغير" + }, + "new": { + "message": "جديد" + }, + "nextVideo": { + "message": "الفيديو التالي" + }, + "night": { + "message": "ليل" + }, + "noActiveFeatures": { + "message": "لا يوجد ميزات نشطة" + }, + "noOpenVideoTabs": { + "message": "لا توجد علامات تبويب فيديو مفتوحة" + }, + "none": { + "message": "لاشيء" + }, + "normal": { + "message": "عادي" + }, + "old": { + "message": "قديم" + }, + "onAllVideos": { + "message": "على جميع مقاطع الفيديو" + }, + "onSubscribedChannels": { + "message": "على القنوات المشتركة" + }, + "onlyActiveOnYoutube": { + "message": "نشط فقط على اليوتيوب" + }, + "onlyOnePlayerInstancePlaying": { + "message": "تشغيل مشغل واحد فقط" + }, + "orange": { + "message": "برتقالي" + }, + "os": { + "message": "نظام التشغيل" + }, + "other": { + "message": "آخر" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "الأذونات" + }, + "pictureInPicture": { + "message": "فيديو عائم" + }, + "pink": { + "message": "زهري" + }, + "plain": { + "message": "عادي" + }, + "platform": { + "message": "المنصة" + }, + "playPause": { + "message": "تشغيل / ايقاف" + }, + "playbackSpeed": { + "message": "سرعة التشغيل" + }, + "player": { + "message": "المشغل" + }, + "playerColor": { + "message": "لون المشغل" + }, + "playerSize": { + "message": "حجم المشغل" + }, + "playlist": { + "message": "قائمة التشغيل" + }, + "playlists": { + "message": "قوائم التشغيل" + }, + "popupPlayer": { + "message": "مشفل منبثق" + }, + "position": { + "message": "التموضع" + }, + "pressAnyKeyOrScroll": { + "message": ".اضغط على أي مفتاح أو استخدم عجلة الماوس" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "اضغط على أي مفتاح أو استخدم عجلة الماوس" + }, + "previousVideo": { + "message": "الفيديو السابق" + }, + "primaryColor": { + "message": "اللون الأصلي" + }, + "purple": { + "message": "أرجواني" + }, + "quality": { + "message": "الجودة" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "الذاكرة العشوائية" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "قيمنا" + }, + "red": { + "message": "احمر" + }, + "redDislikeButton": { + "message": "إظهار زر لم يعجبني باللون الأحمر" + }, + "relatedVideos": { + "message": "فيديوهات ذات علاقة" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "إزالة عمليات بحث مرتبطة بـ" + }, + "repeat": { + "message": "تكرار" + }, + "reset": { + "message": "إعادة تعيين" + }, + "resetAllSettings": { + "message": "إعادة تعيين كافة الإعدادات" + }, + "resetAllShortcuts": { + "message": "إعادة تعيين جميع الاختصارات" + }, + "reverse": { + "message": "عكس" + }, + "rotate": { + "message": "استدارة" + }, + "save": { + "message": "حفظ" + }, + "saveAs": { + "message": "حفظ باسم" + }, + "schedule": { + "message": "جدوله" + }, + "screen": { + "message": "الشاشة" + }, + "screenshot": { + "message": "لقطة شاشة" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "بحث" + }, + "searchBarOnly": { + "message": "شريط البحث فقط" + }, + "seekBackward10Seconds": { + "message": "إرجاع بمقدار 10 ثوانٍ" + }, + "seekForward10Seconds": { + "message": "تقديم 10 ثوانٍ إلى الأمام" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "الإعدادات" + }, + "settingsSuccessfullyImported": { + "message": "تم استيراد الإعدادات بنجاح" + }, + "shortcuts": { + "message": "اختصارات" + }, + "showCardsOnMouseHover": { + "message": "عرض البطاقات عند تمرير الماوس" + }, + "showChannelVideosCount": { + "message": "إظهار عدد مقاطع الفيديو للقناة" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "عشوائي" + }, + "sidebar": { + "message": "الشريط الجانبي" + }, + "spacebar": { + "message": "مفتاح المسافة" + }, + "squaredUserImages": { + "message": "صور المستخدمين مربعة" + }, + "static": { + "message": "ثابت" + }, + "statsForNerds": { + "message": "عرض الإحصاءات المفصلة" + }, + "step": { + "message": "خطوة" + }, + "stop": { + "message": "ايقاف" + }, + "style": { + "message": "نمط" + }, + "styles": { + "message": "الأنماط" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "الاشتراكات" + }, + "subtitles": { + "message": "الترجمات" + }, + "sunset": { + "message": "غروب الشمس" + }, + "sunsetToSunrise": { + "message": "من غروب الشمس إلى شروقها" + }, + "systemPeferenceDark": { + "message": "تفضيل النظام: داكن" + }, + "systemPeferenceLight": { + "message": "تفضيل النظام: فاتح" + }, + "teal": { + "message": "أزرق مخضر" + }, + "textColor": { + "message": "لون النص" + }, + "themes": { + "message": "المظاهر" + }, + "thisWillRemoveAllCookies": { + "message": ".سيؤدي هذا إلى إزالة كافة ملفات تعريف الارتباط" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "سيؤدي هذا إلى إزالة جميع ملفات تعريف ارتباط اليوتيوب" + }, + "thisWillResetAllSettings": { + "message": ".سيؤدي هذا إلى إعادة تعيين جميع الإعدادات" + }, + "thisWillResetAllShortcuts": { + "message": "سيؤدي هذا إلى إعادة تعيين جميع الاختصارات" + }, + "thumbnails": { + "message": "الصور المصغرة" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "الوقت من" + }, + "timeTo": { + "message": "وقت ل" + }, + "todayAt": { + "message": "اليوم عند الساعة" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "تبديل وضع البطاقات" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "رسائل المحادثة الهامّة" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "التشغيل التلقائي للفيديو الدعائي" + }, + "translations": { + "message": "الترجمات" + }, + "transparentBackground": { + "message": "خلفية شفافة" + }, + "trending": { + "message": "المحتوى الرائج" + }, + "tryToReloadThePage": { + "message": "حاول إعادة تحميل الصفحة" + }, + "type": { + "message": "النوع" + }, + "upNextAutoplay": { + "message": "تشغيل التالي تلقائيا" + }, + "use24HourFormat": { + "message": "استخدم تنسيق 24 ساعة" + }, + "version": { + "message": "الإصدار" + }, + "video": { + "message": "الفيديو" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "سيتم توسيع وصف الفيديو للحصول على اسم الفئة" + }, + "videoFormats": { + "message": "تنسيقات الفيديو" + }, + "videos": { + "message": "الفيديوهات" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "الصوت" + }, + "watchLater": { + "message": "المشاهدة لاحقا" + }, + "watchTime": { + "message": "وقت المشاهدة" + }, + "whenTabIsChanged": { + "message": "عندما يتم تغيير علامة التبويب" + }, + "white": { + "message": "أبيض" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "أصفر" + }, + "youtubeHeaderLeft": { + "message": "جزء اليوتيوب العلوي (يسار) " + }, + "youtubeHeaderRight": { + "message": "جزء اليوتيوب العلوي (يمين)" + }, + "youtubeHomePage": { + "message": "صفحة اليوتيوب الرئيسية" + }, + "youtubeLanguage": { + "message": "لغة اليوتيوب" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "h.264 يحد اليوتيوب من جودة الفيديو الى ١٠٨٠ لـ الترميز" + } } \ No newline at end of file diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index d94841012..129786980 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -1,971 +1,986 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "সম্পর্কিত" - }, - "accept": { - "message": "গ্রহণ করুন" - }, - "activate": { - "message": "সক্রিয় করুন" - }, - "activateCaptions": { - "message": "ক্যাপশন সক্রিয় করুন" - }, - "activateFullscreen": { - "message": "পূর্ণ পর্দা সক্রিয় করুন" - }, - "activated": { - "message": "সক্রিয়" - }, - "activatedFeatures": { - "message": "বৈশিষ্ট্য সক্রিয় করুন" - }, - "activeFeatures": { - "message": "সক্রিয় বৈশিষ্" - }, - "addScrollToTop": { - "message": "«উপরে যাবার বাটন» যোগ করুন" - }, - "ads": { - "message": "বিজ্ঞাপন" - }, - "all": { - "message": "সব" - }, - "allow": { - "message": "অনুমতি দিন" - }, - "allow60fps": { - "message": "60 ফ্রেম প্রতি সেকেন্ অনুমতি দিনড" - }, - "alwaysActive": { - "message": "সর্বদা সক্রিয়" - }, - "alwaysShowProgressBar": { - "message": "সর্বদা অগ্রগতি বার প্রদর্শন করুন" - }, - "amber": { - "message": "অ্যাম্বার" - }, - "analyzer": { - "message": "বিশ্লেষক" - }, - "appearance": { - "message": "উপস্থিতি" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "শ্রুতি" - }, - "audioFormats": { - "message": "শ্রুতি ফর্ম্যাট" - }, - "auto": { - "message": "অটো" - }, - "autoFullscreen": { - "message": "স্বতঃ পূর্ণস্ক্রীন" - }, - "autopauseWhenSwitchingTabs": { - "message": "ট্যাবগুলি স্যুইচ করার সময় অটো বিরাম দিন" - }, - "autoplay": { - "message": "স্বয়ংক্রিয় চালু" - }, - "backgroundColor": { - "message": "পটভূমির রং" - }, - "backgroundOpacity": { - "message": "পটভূমি অস্বচ্ছতা" - }, - "backupAndReset": { - "message": "ব্যাকআপ এবং পুনরায় সেট করুন" - }, - "baseOnSystemColorScheme": { - "message": "সিস্টেম রঙের স্কিমের ভিত্তিতে" - }, - "belowPlayer": { - "message": "প্লেয়ারের নিচে" - }, - "black": { - "message": "কালো" - }, - "blacklist": { - "message": "কালো তালিকা" - }, - "blockAll": { - "message": "সবাইকে ব্লক" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "নীল" - }, - "blueGray": { - "message": "নীল ধূসর" - }, - "bluelight": { - "message": "নীল আলো" - }, - "brown": { - "message": "বাদামী" - }, - "browser": { - "message": "ব্রাউজার" - }, - "browserVersion": { - "message": "ব্রাউজার মারজান" - }, - "bubbles": { - "message": "বুলবুলা" - }, - "bug": { - "message": "বাগ" - }, - "buttons": { - "message": "বোতাম" - }, - "cancel": { - "message": "বাতিল" - }, - "categories": { - "message": "বিভাগসমূহ" - }, - "channel": { - "message": "চ্যানেল" - }, - "channels": { - "message": "চ্যানেলগুলি" - }, - "characterEdgeStyle": { - "message": "ক্যারেক্টার এজ স্টাইল" - }, - "clipboard": { - "message": "ক্লিপবোর্ড" - }, - "codecH264": { - "message": "কোডেক h.264" - }, - "collapseOfSubscriptionSections": { - "message": "সাবস্ক্রিপশন বিভাগ ভেঙে দেবো" - }, - "collapsed": { - "message": "ভেঙে দেবো" - }, - "comments": { - "message": "মন্তব্য" - }, - "confirmationBeforeClosing": { - "message": "বন্ধ হওয়ার আগে নিশ্চিতকরণ" - }, - "cookies": { - "message": "কুকিজ" - }, - "cores": { - "message": "কোর" - }, - "cropChapterTitles": { - "message": "অধ্যায়ের শিরোনাম হ্রাস করুন" - }, - "customCss": { - "message": "কাস্টম CSS" - }, - "customJs": { - "message": "কাস্টম JS" - }, - "customMiniPlayer": { - "message": "কাস্টম মিনি প্লেয়ার" - }, - "cyan": { - "message": "হালকা নীল" - }, - "dark": { - "message": "গা .়" - }, - "darkTheme": { - "message": "গা .় থিম" - }, - "dateAndTime": { - "message": "তারিখ আর সময়" - }, - "dawn": { - "message": "ভোর" - }, - "decreasePlaybackSpeed": { - "message": "প্লেব্যাকের গতি হ্রাস করুন" - }, - "decreaseVolume": { - "message": "শব্দ হ্রাস করুন" - }, - "deepOrange": { - "message": "গভীর কমলা" - }, - "deepPurple": { - "message": "গভীর বেগুনি" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "ডিফল্ট চ্যানেল ট্যাব" - }, - "defaultContentCountry": { - "message": "ডিফল্ট বিষয়বস্তুর দেশ" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "ইউটিউব এর কুকি ডিলিট করুন" - }, - "depressed": { - "message": "বিষণ্ণ" - }, - "description": { - "message": "বর্ণনা" - }, - "description_ext": { - "message": "ইউটিউব পরিপাটি+স্মার্ট করুন! ইউটিউব ভিডিও কালার অ্যাড স্কিপ ভলিউম স্পিড চ্যানেল টুল স্টাইল এইচডি বিজ্ঞাপন অ্যাডব্লক অ্যাডব্লকার ট্যাগ কীওয়ার্ড প্লেলিস্ট" - }, - "desert": { - "message": "মরুভূমি" - }, - "details": { - "message": "বিশদ" - }, - "developerOptions": { - "message": "বিকাশকারী বিকল্পসমূহ" - }, - "device": { - "message": "যন্ত্র" - }, - "dim": { - "message": "ম্লান" - }, - "disabled": { - "message": "অক্ষম" - }, - "dislike": { - "message": "অপছন্দ" - }, - "doNotChange": { - "message": "পরিবর্তন করবেন না" - }, - "donate": { - "message": "দান করুন" - }, - "draggable": { - "message": "টেনে আনে" - }, - "dropShadow": { - "message": "ছায়া ফেলে দিন" - }, - "email": { - "message": "ইমেল" - }, - "empty": { - "message": "খালি" - }, - "enabled": { - "message": "সক্ষম" - }, - "enabledForced": { - "message": "সক্ষম (জোরপূর্বক)" - }, - "expanded": { - "message": "প্রসারিত" - }, - "exportSettings": { - "message": "সেটিংস রফতানি করুন" - }, - "extension": { - "message": "এক্সটেনশন" - }, - "file": { - "message": "ফাইল" - }, - "filters": { - "message": "ফিল্টার" - }, - "fitToWindow": { - "message": "উইন্ডোতে ফিট করুন" - }, - "flash": { - "message": "ফ্ল্যাশ" - }, - "font": { - "message": "হরফ" - }, - "fontColor": { - "message": "অক্ষরের রং" - }, - "fontFamily": { - "message": "হরফ সংগ্রহ" - }, - "fontOpacity": { - "message": "হরফের অস্বচ্ছতা" - }, - "fontSize": { - "message": "অক্ষরের আকার" - }, - "footer": { - "message": "পাদচরণ" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "জোর করে শুরু থেকে ভিডিও চালান" - }, - "forcedPlaybackSpeed": { - "message": "জোর করে প্লেব্যাক গতি" - }, - "forcedTheaterMode": { - "message": "জোর করে থিয়েটার মোড" - }, - "forcedVolume": { - "message": "জোর করে শব্দ" - }, - "foundABug": { - "message": "একটি বাগ খুঁজে পেয়েছি?" - }, - "fullWindow": { - "message": "পুরো উইন্ডো" - }, - "general": { - "message": "সাধারণ" - }, - "github": { - "message": "গিটহাব" - }, - "goToSearchBox": { - "message": "অনুসন্ধান বাক্সে যান" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "জিপিইউ" - }, - "green": { - "message": "সবুজ" - }, - "hdThumbnail": { - "message": "এইচডি থাম্বনেল" - }, - "hdThumbnails": { - "message": "এইচডি থামনেল গুলি" - }, - "header": { - "message": "শিরোনাম" - }, - "hidden": { - "message": "গোপন" - }, - "hiddenOnVideoPage": { - "message": "ভিডিও পৃষ্ঠায় লুকানো" - }, - "hideAnimatedThumbnails": { - "message": "অ্যানিমেটেড থাম্বনেলগুলি লুকান" - }, - "hideAnnotations": { - "message": "টীকাগুলি লুকান" - }, - "hideCards": { - "message": "কার্ড লুকান" - }, - "hideCountryCode": { - "message": "কান্ট্রি কোড লুকান" - }, - "hideDate": { - "message": "তারিখ লুকান" - }, - "hideDetails": { - "message": "আড়াল বিস্তারিত" - }, - "hideEndscreen": { - "message": "এন্ডস্ক্রিন লুকান" - }, - "hideFeaturedContent": { - "message": "বৈশিষ্ট্যযুক্ত সামগ্রী লুকান" - }, - "hideFooter": { - "message": "পাদলেখ লুকান" - }, - "hideGradientBottom": { - "message": "গ্রেডিয়েন্ট নীচে লুকান" - }, - "hideMoreButton": { - "message": "আরও লুকান বোতাম" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "প্লেলিস্ট লুকান" - }, - "hideRightButtons": { - "message": "ডান বোতামগুলি লুকান" - }, - "hideSaveButton": { - "message": "সংরক্ষণ ভোতার লোকাল" - }, - "hideScrollForDetails": { - "message": "«বিশদ জন্য স্ক্রোলs» লুকান" - }, - "hideShareButton": { - "message": "শেয়ার বাটন লোকাল" - }, - "hideSkipOverlay": { - "message": "স্কিপ ওভারলে লুকান" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "দর্শন গণনা লুকান" - }, - "hideVoiceSearchButton": { - "message": "বক্তৃতা সার্চ বাটন লুকান" - }, - "history": { - "message": "ইতিহাস" - }, - "home": { - "message": "প্রধান" - }, - "hover": { - "message": "ঘোরা" - }, - "hoverOnVideoPage": { - "message": "ভিডিও পৃষ্ঠায় ঘোরা" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "ভিডিওটি কত আগে আপলোড হয়েছিল" - }, - "icons": { - "message": "আইকন" - }, - "iconsOnly": { - "message": "আইকন" - }, - "importSettings": { - "message": "সেটিংস আমদানি করুন" - }, - "improveLogo": { - "message": "লোগো উন্নত করুন" - }, - "improvedtubeIconOnYoutube": { - "message": "ইউটিউবে উন্নত আইকন" - }, - "improvedtubeLanguage": { - "message": "উন্নত ইউটিউব ভাষা" - }, - "improvedtubeVersion": { - "message": "উন্নত YouTube সংস্করণ" - }, - "increasePlaybackSpeed": { - "message": "প্লেব্যাকের গতি বাড়ান" - }, - "increaseVolume": { - "message": "শব্দ বৃদ্ধি" - }, - "indigo": { - "message": "নীল" - }, - "items": { - "message": "আইটেম" - }, - "language": { - "message": "ভাষা" - }, - "languages": { - "message": "ভাষা" - }, - "legacyYoutube": { - "message": "উত্তরাধিকার ইউটিউব" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "হালকাো" - }, - "lightBlue": { - "message": "হালকা নীল" - }, - "lightGreen": { - "message": "হালকা সবুজ" - }, - "like": { - "message": "লাইক" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "লাইক গুলি" - }, - "lime": { - "message": "চুন" - }, - "limitPageWidth": { - "message": "পৃষ্ঠার প্রস্থ সীমিত করুন" - }, - "list": { - "message": "তালিকা" - }, - "liveChat": { - "message": "সরাসরি কথোপকথন" - }, - "liveChatType": { - "message": "লাইভ চ্যাট টাইপ" - }, - "location": { - "message": "অবস্থান" - }, - "loudnessNormalization": { - "message": "আওয়াজের স্বাভাবিককরণ" - }, - "markWatchedVideos": { - "message": "দেখা ভিডিওগুলি চিহ্নিত করুন" - }, - "mixer": { - "message": "মিক্সার" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "আমার রং" - }, - "name": { - "message": "নাম" - }, - "nativeMiniPlayer": { - "message": "নেটিভ মিনি প্লেয়ার" - }, - "new": { - "message": "নতুন" - }, - "nextVideo": { - "message": "পরবর্তী ভিডিও" - }, - "night": { - "message": "রাত" - }, - "noActiveFeatures": { - "message": "কোনও সক্রিয় বৈশিষ্ট্য নেই" - }, - "noOpenVideoTabs": { - "message": "কোনও খোলা ভিডিও ট্যাব নেই" - }, - "none": { - "message": "কিছুই না" - }, - "normal": { - "message": "সাধারণ" - }, - "old": { - "message": "পুরাতন" - }, - "onAllVideos": { - "message": "সমস্ত ভিডিওতে" - }, - "onSubscribedChannels": { - "message": "সাবস্ক্রাইব করা চ্যানেলগুলিতে" - }, - "onlyActiveOnYoutube": { - "message": "শুধুমাত্র ইউটিউবে সক্রিয়" - }, - "onlyOnePlayerInstancePlaying": { - "message": "কেবলমাত্র একজন খেলোয়াড় খেলছে" - }, - "orange": { - "message": "কমলা" - }, - "os": { - "message": "ওএস" - }, - "other": { - "message": "অন্যান্য" - }, - "outline": { - "message": "রূপরেখা" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "অনুমতি" - }, - "pictureInPicture": { - "message": "পিকচার ইন পিকচার" - }, - "pink": { - "message": "গোলাপী" - }, - "plain": { - "message": "সরল" - }, - "platform": { - "message": "প্ল্যাটফর্ম" - }, - "playPause": { - "message": "খেলার / বিরতি" - }, - "playbackSpeed": { - "message": "প্লেব্যাক গতি" - }, - "player": { - "message": "প্লেয়ার" - }, - "playerColor": { - "message": "প্লেয়ারের রঙ" - }, - "playerSize": { - "message": "খেলোয়াড়ের আকার" - }, - "playlist": { - "message": "প্লেলিস্ট" - }, - "playlists": { - "message": "প্লেলিস্ট" - }, - "popupPlayer": { - "message": "পপআপ প্লেয়ার" - }, - "position": { - "message": "অবস্থান" - }, - "pressAnyKeyOrScroll": { - "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" - }, - "previousVideo": { - "message": "পূর্ববর্তী ভিডিও" - }, - "primaryColor": { - "message": "মৌলিক রঙ" - }, - "purple": { - "message": "বেগুনি" - }, - "quality": { - "message": "গুণ" - }, - "raised": { - "message": "উত্থাপিত" - }, - "ram": { - "message": "র্যাম" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "মতামত দিন" - }, - "red": { - "message": "লাল" - }, - "redDislikeButton": { - "message": "অপছন্দ বাটন লাল রঙ দেখান" - }, - "relatedVideos": { - "message": "সংশ্লিষ্ট ভিডিও" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "সম্পর্কিত অনুসন্ধান ফলাফল সরান" - }, - "repeat": { - "message": "পুনরাবৃত্তি" - }, - "reset": { - "message": "রিসেট" - }, - "resetAllSettings": { - "message": "সমস্ত সেটিংস পুনরায় সেট করুন" - }, - "resetAllShortcuts": { - "message": "সমস্ত শর্টকাট পুনরায় সেট করুন" - }, - "reverse": { - "message": "বিপরীত" - }, - "rotate": { - "message": "ঘুরান" - }, - "save": { - "message": "সংরক্ষণ" - }, - "saveAs": { - "message": "সংরক্ষণ করুন" - }, - "schedule": { - "message": "সময়সূচী" - }, - "screen": { - "message": "পর্দা" - }, - "screenshot": { - "message": "স্ক্রিনশট" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "অনুসন্ধান করুন" - }, - "searchBarOnly": { - "message": "অনুসন্ধান বার কেবল" - }, - "seekBackward10Seconds": { - "message": "পিছনে 10 সেকেন্ড সন্ধান করুন" - }, - "seekForward10Seconds": { - "message": "10 সেকেন্ড এগিয়ে যান" - }, - "seekNextChapter": { - "message": "পরবর্তী অধ্যায় সন্ধান করুন" - }, - "seekPreviousChapter": { - "message": "পূর্ববর্তী অধ্যায় সন্ধান করুন" - }, - "settings": { - "message": "সেটিংস" - }, - "settingsSuccessfullyImported": { - "message": "সেটিংস সফলভাবে আমদানি করা হয়েছে" - }, - "shortcuts": { - "message": "শর্টকাটস" - }, - "showCardsOnMouseHover": { - "message": "মাউস হোভারে কার্ডগুলি দেখান" - }, - "showChannelVideosCount": { - "message": "চ্যানেল ভিডিও গণনা দেখান" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "ভিডিও অবশিষ্ট সময় দেখান" - }, - "shuffle": { - "message": "অদলবদল" - }, - "sidebar": { - "message": "সাইডবার" - }, - "spacebar": { - "message": "স্পেসবার" - }, - "squaredUserImages": { - "message": "স্কোয়ার ব্যবহারকারীর চিত্রসমূহ" - }, - "static": { - "message": "স্থির" - }, - "statsForNerds": { - "message": "ডেভলপারের জন্য পরিসংখ্যান দেখান" - }, - "step": { - "message": "পদক্ষেপ" - }, - "stop": { - "message": "থামো" - }, - "style": { - "message": "স্টাইল" - }, - "styles": { - "message": "শৈলী" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "সাবস্ক্রিপশন" - }, - "subtitles": { - "message": "সাবটাইটেল" - }, - "sunset": { - "message": "সূর্যাস্ত" - }, - "sunsetToSunrise": { - "message": "সূর্যোদয় সূর্যোদয়" - }, - "systemPeferenceDark": { - "message": "সিস্টেমের পছন্দসমূহ : dark" - }, - "systemPeferenceLight": { - "message": "সিস্টেমের পছন্দসমূহ : light" - }, - "teal": { - "message": "টিল" - }, - "textColor": { - "message": "লেখার রঙ" - }, - "themes": { - "message": "থিমস" - }, - "thisWillRemoveAllCookies": { - "message": "এটি সমস্ত কুকি মুছে ফেলবে।" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "এটি সমস্ত ইউটিউব কুকিজ অপসারণ করবে" - }, - "thisWillResetAllSettings": { - "message": "এটি সমস্ত সেটিংস পুনরায় সেট করবে।" - }, - "thisWillResetAllShortcuts": { - "message": "এটি সমস্ত শর্টকাট পুনরায় সেট করবে" - }, - "thumbnails": { - "message": "থাম্বনেইলস" - }, - "timeFrom": { - "message": "সময় থেকে" - }, - "timeTo": { - "message": "সময়" - }, - "todayAt": { - "message": "আজ এ" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "কার্ড প্রতিস্থাপন করুন" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "শীর্ষ চ্যাট" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "ট্রেলার অটোপ্লে" - }, - "translations": { - "message": "অনুবাদ" - }, - "transparentBackground": { - "message": "স্বচ্ছ পটভূমি" - }, - "trending": { - "message": "চলমান" - }, - "tryToReloadThePage": { - "message": "পৃষ্ঠাটি পুনরায় লোড করার চেষ্টা করুন" - }, - "type": { - "message": "প্রকার" - }, - "upNextAutoplay": { - "message": "পরবর্তী অটোপ্লে" - }, - "use24HourFormat": { - "message": "24 ঘন্টা বিন্যাস ব্যবহার করুন" - }, - "version": { - "message": "সংস্করণ" - }, - "video": { - "message": "ভিডিও" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "বিভাগটির নাম পেতে ভিডিওর বর্ণনাটি প্রসারিত হবে" - }, - "videoFormats": { - "message": "ভিডিও ফর্ম্যাট" - }, - "videos": { - "message": "ভিডিও" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "শব্দ" - }, - "watchLater": { - "message": "পরে দেখুন" - }, - "watchTime": { - "message": "দেখার সময়" - }, - "whenTabIsChanged": { - "message": "ট্যাব পরিবর্তন করা হয়" - }, - "white": { - "message": "সাদা" - }, - "windowColor": { - "message": "উইন্ডো রঙ" - }, - "windowOpacity": { - "message": "উইন্ডোর অস্বচ্ছতা" - }, - "yellow": { - "message": "হলুদ" - }, - "youtubeHeaderLeft": { - "message": "YouTube শিরোনাম (বাম)" - }, - "youtubeHeaderRight": { - "message": "YouTube শিরোনাম (ডানদিকে)" - }, - "youtubeHomePage": { - "message": "ইউটিউব হোম পৃষ্ঠা" - }, - "youtubeLanguage": { - "message": "ইউটিউব ভাষা" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "ইউটিউব h.264 কোডেকের জন্য ভিডিও গুণমানকে 1080p এর মধ্যে সীমাবদ্ধ করে" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "সম্পর্কিত" + }, + "accept": { + "message": "গ্রহণ করুন" + }, + "activate": { + "message": "সক্রিয় করুন" + }, + "activateCaptions": { + "message": "ক্যাপশন সক্রিয় করুন" + }, + "activateFullscreen": { + "message": "পূর্ণ পর্দা সক্রিয় করুন" + }, + "activated": { + "message": "সক্রিয়" + }, + "activatedFeatures": { + "message": "বৈশিষ্ট্য সক্রিয় করুন" + }, + "activeFeatures": { + "message": "সক্রিয় বৈশিষ্" + }, + "addScrollToTop": { + "message": "«উপরে যাবার বাটন» যোগ করুন" + }, + "ads": { + "message": "বিজ্ঞাপন" + }, + "all": { + "message": "সব" + }, + "allow": { + "message": "অনুমতি দিন" + }, + "allow60fps": { + "message": "60 ফ্রেম প্রতি সেকেন্ অনুমতি দিনড" + }, + "alwaysActive": { + "message": "সর্বদা সক্রিয়" + }, + "alwaysShowProgressBar": { + "message": "সর্বদা অগ্রগতি বার প্রদর্শন করুন" + }, + "amber": { + "message": "অ্যাম্বার" + }, + "analyzer": { + "message": "বিশ্লেষক" + }, + "appearance": { + "message": "উপস্থিতি" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "শ্রুতি" + }, + "audioFormats": { + "message": "শ্রুতি ফর্ম্যাট" + }, + "auto": { + "message": "অটো" + }, + "autoFullscreen": { + "message": "স্বতঃ পূর্ণস্ক্রীন" + }, + "autopauseWhenSwitchingTabs": { + "message": "ট্যাবগুলি স্যুইচ করার সময় অটো বিরাম দিন" + }, + "autoplay": { + "message": "স্বয়ংক্রিয় চালু" + }, + "backgroundColor": { + "message": "পটভূমির রং" + }, + "backgroundOpacity": { + "message": "পটভূমি অস্বচ্ছতা" + }, + "backupAndReset": { + "message": "ব্যাকআপ এবং পুনরায় সেট করুন" + }, + "baseOnSystemColorScheme": { + "message": "সিস্টেম রঙের স্কিমের ভিত্তিতে" + }, + "belowPlayer": { + "message": "প্লেয়ারের নিচে" + }, + "black": { + "message": "কালো" + }, + "blacklist": { + "message": "কালো তালিকা" + }, + "blockAll": { + "message": "সবাইকে ব্লক" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "নীল" + }, + "blueGray": { + "message": "নীল ধূসর" + }, + "bluelight": { + "message": "নীল আলো" + }, + "brown": { + "message": "বাদামী" + }, + "browser": { + "message": "ব্রাউজার" + }, + "browserVersion": { + "message": "ব্রাউজার মারজান" + }, + "bubbles": { + "message": "বুলবুলা" + }, + "bug": { + "message": "বাগ" + }, + "buttons": { + "message": "বোতাম" + }, + "cancel": { + "message": "বাতিল" + }, + "categories": { + "message": "বিভাগসমূহ" + }, + "channel": { + "message": "চ্যানেল" + }, + "channels": { + "message": "চ্যানেলগুলি" + }, + "characterEdgeStyle": { + "message": "ক্যারেক্টার এজ স্টাইল" + }, + "clipboard": { + "message": "ক্লিপবোর্ড" + }, + "codecH264": { + "message": "কোডেক h.264" + }, + "collapseOfSubscriptionSections": { + "message": "সাবস্ক্রিপশন বিভাগ ভেঙে দেবো" + }, + "collapsed": { + "message": "ভেঙে দেবো" + }, + "comments": { + "message": "মন্তব্য" + }, + "confirmationBeforeClosing": { + "message": "বন্ধ হওয়ার আগে নিশ্চিতকরণ" + }, + "cookies": { + "message": "কুকিজ" + }, + "cores": { + "message": "কোর" + }, + "cropChapterTitles": { + "message": "অধ্যায়ের শিরোনাম হ্রাস করুন" + }, + "customCss": { + "message": "কাস্টম CSS" + }, + "customJs": { + "message": "কাস্টম JS" + }, + "customMiniPlayer": { + "message": "কাস্টম মিনি প্লেয়ার" + }, + "cyan": { + "message": "হালকা নীল" + }, + "dark": { + "message": "গা .়" + }, + "darkTheme": { + "message": "গা .় থিম" + }, + "dateAndTime": { + "message": "তারিখ আর সময়" + }, + "dawn": { + "message": "ভোর" + }, + "decreasePlaybackSpeed": { + "message": "প্লেব্যাকের গতি হ্রাস করুন" + }, + "decreaseVolume": { + "message": "শব্দ হ্রাস করুন" + }, + "deepOrange": { + "message": "গভীর কমলা" + }, + "deepPurple": { + "message": "গভীর বেগুনি" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "ডিফল্ট চ্যানেল ট্যাব" + }, + "defaultContentCountry": { + "message": "ডিফল্ট বিষয়বস্তুর দেশ" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "ইউটিউব এর কুকি ডিলিট করুন" + }, + "depressed": { + "message": "বিষণ্ণ" + }, + "description": { + "message": "বর্ণনা" + }, + "description_ext": { + "message": "ইউটিউব পরিপাটি+স্মার্ট করুন! ইউটিউব ভিডিও কালার অ্যাড স্কিপ ভলিউম স্পিড চ্যানেল টুল স্টাইল এইচডি বিজ্ঞাপন অ্যাডব্লক অ্যাডব্লকার ট্যাগ কীওয়ার্ড প্লেলিস্ট" + }, + "desert": { + "message": "মরুভূমি" + }, + "details": { + "message": "বিশদ" + }, + "developerOptions": { + "message": "বিকাশকারী বিকল্পসমূহ" + }, + "device": { + "message": "যন্ত্র" + }, + "dim": { + "message": "ম্লান" + }, + "disabled": { + "message": "অক্ষম" + }, + "dislike": { + "message": "অপছন্দ" + }, + "doNotChange": { + "message": "পরিবর্তন করবেন না" + }, + "donate": { + "message": "দান করুন" + }, + "draggable": { + "message": "টেনে আনে" + }, + "dropShadow": { + "message": "ছায়া ফেলে দিন" + }, + "email": { + "message": "ইমেল" + }, + "empty": { + "message": "খালি" + }, + "enabled": { + "message": "সক্ষম" + }, + "enabledForced": { + "message": "সক্ষম (জোরপূর্বক)" + }, + "expanded": { + "message": "প্রসারিত" + }, + "exportSettings": { + "message": "সেটিংস রফতানি করুন" + }, + "extension": { + "message": "এক্সটেনশন" + }, + "file": { + "message": "ফাইল" + }, + "filters": { + "message": "ফিল্টার" + }, + "fitToWindow": { + "message": "উইন্ডোতে ফিট করুন" + }, + "flash": { + "message": "ফ্ল্যাশ" + }, + "font": { + "message": "হরফ" + }, + "fontColor": { + "message": "অক্ষরের রং" + }, + "fontFamily": { + "message": "হরফ সংগ্রহ" + }, + "fontOpacity": { + "message": "হরফের অস্বচ্ছতা" + }, + "fontSize": { + "message": "অক্ষরের আকার" + }, + "footer": { + "message": "পাদচরণ" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "জোর করে শুরু থেকে ভিডিও চালান" + }, + "forcedPlaybackSpeed": { + "message": "জোর করে প্লেব্যাক গতি" + }, + "forcedTheaterMode": { + "message": "জোর করে থিয়েটার মোড" + }, + "forcedVolume": { + "message": "জোর করে শব্দ" + }, + "foundABug": { + "message": "একটি বাগ খুঁজে পেয়েছি?" + }, + "fullWindow": { + "message": "পুরো উইন্ডো" + }, + "general": { + "message": "সাধারণ" + }, + "github": { + "message": "গিটহাব" + }, + "goToSearchBox": { + "message": "অনুসন্ধান বাক্সে যান" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "জিপিইউ" + }, + "green": { + "message": "সবুজ" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "এইচডি থাম্বনেল" + }, + "header": { + "message": "শিরোনাম" + }, + "hidden": { + "message": "গোপন" + }, + "hiddenOnVideoPage": { + "message": "ভিডিও পৃষ্ঠায় লুকানো" + }, + "hideAnimatedThumbnails": { + "message": "অ্যানিমেটেড থাম্বনেলগুলি লুকান" + }, + "hideAnnotations": { + "message": "টীকাগুলি লুকান" + }, + "hideCards": { + "message": "কার্ড লুকান" + }, + "hideCountryCode": { + "message": "কান্ট্রি কোড লুকান" + }, + "hideDate": { + "message": "তারিখ লুকান" + }, + "hideDetails": { + "message": "আড়াল বিস্তারিত" + }, + "hideEndscreen": { + "message": "এন্ডস্ক্রিন লুকান" + }, + "hideFeaturedContent": { + "message": "বৈশিষ্ট্যযুক্ত সামগ্রী লুকান" + }, + "hideFooter": { + "message": "পাদলেখ লুকান" + }, + "hideGradientBottom": { + "message": "গ্রেডিয়েন্ট নীচে লুকান" + }, + "hideMoreButton": { + "message": "আরও লুকান বোতাম" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "প্লেলিস্ট লুকান" + }, + "hideRightButtons": { + "message": "ডান বোতামগুলি লুকান" + }, + "hideSaveButton": { + "message": "সংরক্ষণ ভোতার লোকাল" + }, + "hideScrollForDetails": { + "message": "«বিশদ জন্য স্ক্রোলs» লুকান" + }, + "hideShareButton": { + "message": "শেয়ার বাটন লোকাল" + }, + "hideSkipOverlay": { + "message": "স্কিপ ওভারলে লুকান" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "দর্শন গণনা লুকান" + }, + "hideVoiceSearchButton": { + "message": "বক্তৃতা সার্চ বাটন লুকান" + }, + "high": { + "message": "High" + }, + "history": { + "message": "ইতিহাস" + }, + "home": { + "message": "প্রধান" + }, + "hover": { + "message": "ঘোরা" + }, + "hoverOnVideoPage": { + "message": "ভিডিও পৃষ্ঠায় ঘোরা" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "ভিডিওটি কত আগে আপলোড হয়েছিল" + }, + "icons": { + "message": "আইকন" + }, + "iconsOnly": { + "message": "আইকন" + }, + "importSettings": { + "message": "সেটিংস আমদানি করুন" + }, + "improveLogo": { + "message": "লোগো উন্নত করুন" + }, + "improvedtubeIconOnYoutube": { + "message": "ইউটিউবে উন্নত আইকন" + }, + "improvedtubeLanguage": { + "message": "উন্নত ইউটিউব ভাষা" + }, + "improvedtubeVersion": { + "message": "উন্নত YouTube সংস্করণ" + }, + "increasePlaybackSpeed": { + "message": "প্লেব্যাকের গতি বাড়ান" + }, + "increaseVolume": { + "message": "শব্দ বৃদ্ধি" + }, + "indigo": { + "message": "নীল" + }, + "items": { + "message": "আইটেম" + }, + "language": { + "message": "ভাষা" + }, + "languages": { + "message": "ভাষা" + }, + "legacyYoutube": { + "message": "উত্তরাধিকার ইউটিউব" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "হালকাো" + }, + "lightBlue": { + "message": "হালকা নীল" + }, + "lightGreen": { + "message": "হালকা সবুজ" + }, + "like": { + "message": "লাইক" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "লাইক গুলি" + }, + "lime": { + "message": "চুন" + }, + "limitPageWidth": { + "message": "পৃষ্ঠার প্রস্থ সীমিত করুন" + }, + "list": { + "message": "তালিকা" + }, + "liveChat": { + "message": "সরাসরি কথোপকথন" + }, + "liveChatType": { + "message": "লাইভ চ্যাট টাইপ" + }, + "location": { + "message": "অবস্থান" + }, + "loudnessNormalization": { + "message": "আওয়াজের স্বাভাবিককরণ" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "দেখা ভিডিওগুলি চিহ্নিত করুন" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "মিক্সার" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "আমার রং" + }, + "name": { + "message": "নাম" + }, + "nativeMiniPlayer": { + "message": "নেটিভ মিনি প্লেয়ার" + }, + "new": { + "message": "নতুন" + }, + "nextVideo": { + "message": "পরবর্তী ভিডিও" + }, + "night": { + "message": "রাত" + }, + "noActiveFeatures": { + "message": "কোনও সক্রিয় বৈশিষ্ট্য নেই" + }, + "noOpenVideoTabs": { + "message": "কোনও খোলা ভিডিও ট্যাব নেই" + }, + "none": { + "message": "কিছুই না" + }, + "normal": { + "message": "সাধারণ" + }, + "old": { + "message": "পুরাতন" + }, + "onAllVideos": { + "message": "সমস্ত ভিডিওতে" + }, + "onSubscribedChannels": { + "message": "সাবস্ক্রাইব করা চ্যানেলগুলিতে" + }, + "onlyActiveOnYoutube": { + "message": "শুধুমাত্র ইউটিউবে সক্রিয়" + }, + "onlyOnePlayerInstancePlaying": { + "message": "কেবলমাত্র একজন খেলোয়াড় খেলছে" + }, + "orange": { + "message": "কমলা" + }, + "os": { + "message": "ওএস" + }, + "other": { + "message": "অন্যান্য" + }, + "outline": { + "message": "রূপরেখা" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "অনুমতি" + }, + "pictureInPicture": { + "message": "পিকচার ইন পিকচার" + }, + "pink": { + "message": "গোলাপী" + }, + "plain": { + "message": "সরল" + }, + "platform": { + "message": "প্ল্যাটফর্ম" + }, + "playPause": { + "message": "খেলার / বিরতি" + }, + "playbackSpeed": { + "message": "প্লেব্যাক গতি" + }, + "player": { + "message": "প্লেয়ার" + }, + "playerColor": { + "message": "প্লেয়ারের রঙ" + }, + "playerSize": { + "message": "খেলোয়াড়ের আকার" + }, + "playlist": { + "message": "প্লেলিস্ট" + }, + "playlists": { + "message": "প্লেলিস্ট" + }, + "popupPlayer": { + "message": "পপআপ প্লেয়ার" + }, + "position": { + "message": "অবস্থান" + }, + "pressAnyKeyOrScroll": { + "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" + }, + "previousVideo": { + "message": "পূর্ববর্তী ভিডিও" + }, + "primaryColor": { + "message": "মৌলিক রঙ" + }, + "purple": { + "message": "বেগুনি" + }, + "quality": { + "message": "গুণ" + }, + "raised": { + "message": "উত্থাপিত" + }, + "ram": { + "message": "র্যাম" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "মতামত দিন" + }, + "red": { + "message": "লাল" + }, + "redDislikeButton": { + "message": "অপছন্দ বাটন লাল রঙ দেখান" + }, + "relatedVideos": { + "message": "সংশ্লিষ্ট ভিডিও" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "সম্পর্কিত অনুসন্ধান ফলাফল সরান" + }, + "repeat": { + "message": "পুনরাবৃত্তি" + }, + "reset": { + "message": "রিসেট" + }, + "resetAllSettings": { + "message": "সমস্ত সেটিংস পুনরায় সেট করুন" + }, + "resetAllShortcuts": { + "message": "সমস্ত শর্টকাট পুনরায় সেট করুন" + }, + "reverse": { + "message": "বিপরীত" + }, + "rotate": { + "message": "ঘুরান" + }, + "save": { + "message": "সংরক্ষণ" + }, + "saveAs": { + "message": "সংরক্ষণ করুন" + }, + "schedule": { + "message": "সময়সূচী" + }, + "screen": { + "message": "পর্দা" + }, + "screenshot": { + "message": "স্ক্রিনশট" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "অনুসন্ধান করুন" + }, + "searchBarOnly": { + "message": "অনুসন্ধান বার কেবল" + }, + "seekBackward10Seconds": { + "message": "পিছনে 10 সেকেন্ড সন্ধান করুন" + }, + "seekForward10Seconds": { + "message": "10 সেকেন্ড এগিয়ে যান" + }, + "seekNextChapter": { + "message": "পরবর্তী অধ্যায় সন্ধান করুন" + }, + "seekPreviousChapter": { + "message": "পূর্ববর্তী অধ্যায় সন্ধান করুন" + }, + "settings": { + "message": "সেটিংস" + }, + "settingsSuccessfullyImported": { + "message": "সেটিংস সফলভাবে আমদানি করা হয়েছে" + }, + "shortcuts": { + "message": "শর্টকাটস" + }, + "showCardsOnMouseHover": { + "message": "মাউস হোভারে কার্ডগুলি দেখান" + }, + "showChannelVideosCount": { + "message": "চ্যানেল ভিডিও গণনা দেখান" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "ভিডিও অবশিষ্ট সময় দেখান" + }, + "shuffle": { + "message": "অদলবদল" + }, + "sidebar": { + "message": "সাইডবার" + }, + "spacebar": { + "message": "স্পেসবার" + }, + "squaredUserImages": { + "message": "স্কোয়ার ব্যবহারকারীর চিত্রসমূহ" + }, + "static": { + "message": "স্থির" + }, + "statsForNerds": { + "message": "ডেভলপারের জন্য পরিসংখ্যান দেখান" + }, + "step": { + "message": "পদক্ষেপ" + }, + "stop": { + "message": "থামো" + }, + "style": { + "message": "স্টাইল" + }, + "styles": { + "message": "শৈলী" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "সাবস্ক্রিপশন" + }, + "subtitles": { + "message": "সাবটাইটেল" + }, + "sunset": { + "message": "সূর্যাস্ত" + }, + "sunsetToSunrise": { + "message": "সূর্যোদয় সূর্যোদয়" + }, + "systemPeferenceDark": { + "message": "সিস্টেমের পছন্দসমূহ : dark" + }, + "systemPeferenceLight": { + "message": "সিস্টেমের পছন্দসমূহ : light" + }, + "teal": { + "message": "টিল" + }, + "textColor": { + "message": "লেখার রঙ" + }, + "themes": { + "message": "থিমস" + }, + "thisWillRemoveAllCookies": { + "message": "এটি সমস্ত কুকি মুছে ফেলবে।" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "এটি সমস্ত ইউটিউব কুকিজ অপসারণ করবে" + }, + "thisWillResetAllSettings": { + "message": "এটি সমস্ত সেটিংস পুনরায় সেট করবে।" + }, + "thisWillResetAllShortcuts": { + "message": "এটি সমস্ত শর্টকাট পুনরায় সেট করবে" + }, + "thumbnails": { + "message": "থাম্বনেইলস" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "সময় থেকে" + }, + "timeTo": { + "message": "সময়" + }, + "todayAt": { + "message": "আজ এ" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "কার্ড প্রতিস্থাপন করুন" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "শীর্ষ চ্যাট" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "ট্রেলার অটোপ্লে" + }, + "translations": { + "message": "অনুবাদ" + }, + "transparentBackground": { + "message": "স্বচ্ছ পটভূমি" + }, + "trending": { + "message": "চলমান" + }, + "tryToReloadThePage": { + "message": "পৃষ্ঠাটি পুনরায় লোড করার চেষ্টা করুন" + }, + "type": { + "message": "প্রকার" + }, + "upNextAutoplay": { + "message": "পরবর্তী অটোপ্লে" + }, + "use24HourFormat": { + "message": "24 ঘন্টা বিন্যাস ব্যবহার করুন" + }, + "version": { + "message": "সংস্করণ" + }, + "video": { + "message": "ভিডিও" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "বিভাগটির নাম পেতে ভিডিওর বর্ণনাটি প্রসারিত হবে" + }, + "videoFormats": { + "message": "ভিডিও ফর্ম্যাট" + }, + "videos": { + "message": "ভিডিও" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "শব্দ" + }, + "watchLater": { + "message": "পরে দেখুন" + }, + "watchTime": { + "message": "দেখার সময়" + }, + "whenTabIsChanged": { + "message": "ট্যাব পরিবর্তন করা হয়" + }, + "white": { + "message": "সাদা" + }, + "windowColor": { + "message": "উইন্ডো রঙ" + }, + "windowOpacity": { + "message": "উইন্ডোর অস্বচ্ছতা" + }, + "yellow": { + "message": "হলুদ" + }, + "youtubeHeaderLeft": { + "message": "YouTube শিরোনাম (বাম)" + }, + "youtubeHeaderRight": { + "message": "YouTube শিরোনাম (ডানদিকে)" + }, + "youtubeHomePage": { + "message": "ইউটিউব হোম পৃষ্ঠা" + }, + "youtubeLanguage": { + "message": "ইউটিউব ভাষা" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "ইউটিউব h.264 কোডেকের জন্য ভিডিও গুণমানকে 1080p এর মধ্যে সীমাবদ্ধ করে" + } } \ No newline at end of file diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 1592c6b3a..09e57fa90 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -1,971 +1,986 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Info" - }, - "accept": { - "message": "Akzeptieren" - }, - "activate": { - "message": "Aktivieren" - }, - "activateCaptions": { - "message": "Untertitel aktivieren" - }, - "activateFullscreen": { - "message": "Vollbild aktivieren" - }, - "activated": { - "message": "Aktiviert" - }, - "activatedFeatures": { - "message": "Aktivierte Features" - }, - "activeFeatures": { - "message": "Aktive Funktionen" - }, - "addScrollToTop": { - "message": "„Nach Oben“-Button" - }, - "ads": { - "message": "Werbung" - }, - "all": { - "message": "Alles" - }, - "allow": { - "message": "zulassen" - }, - "allow60fps": { - "message": "60fps zulassen" - }, - "alwaysActive": { - "message": "Immer aktiv" - }, - "alwaysShowProgressBar": { - "message": "Zeitleiste immer anzeigen" - }, - "amber": { - "message": "Bernstein" - }, - "analyzer": { - "message": "Analyse" - }, - "appearance": { - "message": "Aussehen" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio-Formate" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-Vollbild" - }, - "autopauseWhenSwitchingTabs": { - "message": "Video pausieren beim Tab-Wechsel" - }, - "autoplay": { - "message": "Autoplay" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Sichern oder zurücksetzen" - }, - "baseOnSystemColorScheme": { - "message": "Basierend auf Systemfarben" - }, - "belowPlayer": { - "message": "Unter dem Player" - }, - "black": { - "message": "Schwarz" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "immer blockieren" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Blau" - }, - "blueGray": { - "message": "Blau grau" - }, - "bluelight": { - "message": "Blaues Licht" - }, - "brown": { - "message": "Braun" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser-Version" - }, - "bubbles": { - "message": "Blasen" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Buttons" - }, - "cancel": { - "message": "Abbrechen" - }, - "categories": { - "message": "Kategorien" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanäle" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Zwischenablage" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Abos einklappen" - }, - "collapsed": { - "message": "Eingeklappt" - }, - "comments": { - "message": "Kommentare" - }, - "confirmationBeforeClosing": { - "message": "Bestätigung beim Schließen" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Kerne" - }, - "cropChapterTitles": { - "message": "Kapitel abschneiden" - }, - "customCss": { - "message": "CSS hinzufügen" - }, - "customJs": { - "message": "JS hinzufügen" - }, - "customMiniPlayer": { - "message": "Benutzerdefinierter Mini-Player" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Dunkel" - }, - "darkTheme": { - "message": "Dark-Theme" - }, - "dateAndTime": { - "message": "Datum & Uhrzeit" - }, - "dawn": { - "message": "Morgendämmerung" - }, - "decreasePlaybackSpeed": { - "message": "Abspielgeschwindigkeit verringern" - }, - "decreaseVolume": { - "message": "Lautstärke reduzieren" - }, - "deepOrange": { - "message": "Dunkel-Orange" - }, - "deepPurple": { - "message": "Dunkel-Lila" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Standard-Kanal-Tab" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "YouTube-Cookies löschen" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Beschreibung" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Wüste" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Entwickleroptionen" - }, - "device": { - "message": "Gerät" - }, - "dim": { - "message": "dimmen" - }, - "disabled": { - "message": "ausgeschaltet" - }, - "dislike": { - "message": "'Mag ich nicht'" - }, - "doNotChange": { - "message": "Nicht ändern" - }, - "donate": { - "message": "Spenden" - }, - "draggable": { - "message": "Verschiebbar" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "E-Mail" - }, - "empty": { - "message": "leer" - }, - "enabled": { - "message": "aktiviert" - }, - "enabledForced": { - "message": "aktiviert (erzwungen)" - }, - "expanded": { - "message": "ausgeklappt" - }, - "exportSettings": { - "message": "Einstellungen als Datei exportieren" - }, - "extension": { - "message": "Erweiterung" - }, - "file": { - "message": "Datei" - }, - "filters": { - "message": "Filter" - }, - "fitToWindow": { - "message": "Ans Fenster anpassen" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Schriftart" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Fußzeile" - }, - "forceSDR": { - "message": "SDR erzwingen" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "erzwungene Abspielgeschwindigkeit" - }, - "forcedTheaterMode": { - "message": "Kinomodus erzwingen" - }, - "forcedVolume": { - "message": "Fixe Lautstärke" - }, - "foundABug": { - "message": "Fehler gefunden?" - }, - "fullWindow": { - "message": "Ganzes Fenster" - }, - "general": { - "message": "Allgemein" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "YouTube Suche" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Grün" - }, - "hdThumbnail": { - "message": "HD-Vorschaubild" - }, - "hdThumbnails": { - "message": "HD-Vorschaubilder" - }, - "header": { - "message": "Header / 'Kopfzeile'" - }, - "hidden": { - "message": "Ausblenden" - }, - "hiddenOnVideoPage": { - "message": "Auf Videoseiten ausblenden" - }, - "hideAnimatedThumbnails": { - "message": "Keine animierten Vorschaubilder" - }, - "hideAnnotations": { - "message": "Anmerkungen ausblenden" - }, - "hideCards": { - "message": "Karten ausblenden" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Details ausblenden" - }, - "hideEndscreen": { - "message": "Endkarten ausblenden (Schlussbildschirme)" - }, - "hideFeaturedContent": { - "message": "'Empfohlene Inhalte' ausblenden" - }, - "hideFooter": { - "message": "Fußzeile ausblenden" - }, - "hideGradientBottom": { - "message": "Farbverlauf ausblenden" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Playlists ausblenden" - }, - "hideRightButtons": { - "message": "Rechte Buttons ausblenden" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "„Für Details scrollen“ ausblenden" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Videoaufrufe ausblenden" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "Verlauf" - }, - "home": { - "message": "Standard" - }, - "hover": { - "message": "Nur anzeigen bei Mausover" - }, - "hoverOnVideoPage": { - "message": "auf Video-Seiten bei Mausover" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Alter des Videos (seit Hochlade-Datum)" - }, - "icons": { - "message": "Icons" - }, - "iconsOnly": { - "message": "nur Icons" - }, - "importSettings": { - "message": "Einstellungen importieren" - }, - "improveLogo": { - "message": "Logo verbessern" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube Icon auf YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube Sprache" - }, - "improvedtubeVersion": { - "message": "ImprovedTube Version" - }, - "increasePlaybackSpeed": { - "message": "Abspielgeschwingkeit erhöhen" - }, - "increaseVolume": { - "message": "Lautstärke erhöhen" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Sprachen" - }, - "legacyYoutube": { - "message": "Klassiches YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Hell" - }, - "lightBlue": { - "message": "Hellblau" - }, - "lightGreen": { - "message": "Hellgrün" - }, - "like": { - "message": "Like" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Limette" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Live-Chat" - }, - "liveChatType": { - "message": "Live-Chat Typ" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Lautstärke normalisieren" - }, - "markWatchedVideos": { - "message": "gesehene Videos markieren" - }, - "mixer": { - "message": "Mischpult" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Meine Farben" - }, - "name": { - "message": "Name" - }, - "nativeMiniPlayer": { - "message": "Standard Mini-Player" - }, - "new": { - "message": "Neu" - }, - "nextVideo": { - "message": "Nächstes Video" - }, - "night": { - "message": "Nacht" - }, - "noActiveFeatures": { - "message": "Keine aktiven Features" - }, - "noOpenVideoTabs": { - "message": "Keine YouTube Videos geöffnet" - }, - "none": { - "message": "Keine" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Alt" - }, - "onAllVideos": { - "message": "in allen Videos" - }, - "onSubscribedChannels": { - "message": "nur in abonnierten Kanälen" - }, - "onlyActiveOnYoutube": { - "message": "nur auf YouTube rot färben" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Nur ein Video gleichzeitig" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "Betriebsystem" - }, - "other": { - "message": "Andere" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Berechtigungen" - }, - "pictureInPicture": { - "message": "Bild-in-Bild" - }, - "pink": { - "message": "Pink" - }, - "plain": { - "message": "Schlicht" - }, - "platform": { - "message": "Plattform" - }, - "playPause": { - "message": "Play / Pause" - }, - "playbackSpeed": { - "message": "Abspielgeschwindigkeit" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Playerfarbe" - }, - "playerSize": { - "message": "Playergröße" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "popupPlayer": { - "message": "Player in eigenem Fenster" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Eine Taste drücken oder scrollen!" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Eine Taste drücken oder scrollen!" - }, - "previousVideo": { - "message": "Letztes Video" - }, - "primaryColor": { - "message": "Primäre Farbe" - }, - "purple": { - "message": "Lila" - }, - "quality": { - "message": "Qualität" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Bewerte mich!" - }, - "red": { - "message": "Rot" - }, - "redDislikeButton": { - "message": "Zeige 'Mag ich nicht' Button rot" - }, - "relatedVideos": { - "message": "Ähnliche Videos" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Ähnliche Suchergebnisse entfernen" - }, - "repeat": { - "message": "Repeat (Wiederholen)" - }, - "reset": { - "message": "Zurücksetzen" - }, - "resetAllSettings": { - "message": "Alle Einstellungen zurücksetzen" - }, - "resetAllShortcuts": { - "message": "Alle Shortcuts zurücksetzen" - }, - "reverse": { - "message": "Rückwärts" - }, - "rotate": { - "message": "Drehen" - }, - "save": { - "message": "Speichern" - }, - "saveAs": { - "message": "Speichern als" - }, - "schedule": { - "message": "Zeitplan" - }, - "screen": { - "message": "Bildschirm" - }, - "screenshot": { - "message": "Screenshot" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "Suche" - }, - "searchBarOnly": { - "message": "Nur die Suchleiste" - }, - "seekBackward10Seconds": { - "message": "10 Sekunden zurück" - }, - "seekForward10Seconds": { - "message": "10 Sekunden überspringen" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Einstellungen" - }, - "settingsSuccessfullyImported": { - "message": "Einstellungen erfolgreich importiert!" - }, - "shortcuts": { - "message": "Hotkeys" - }, - "showCardsOnMouseHover": { - "message": "Infokarten bei Mausover anzeigen" - }, - "showChannelVideosCount": { - "message": "Anzahl Videos je Channel anzeigen" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Zufallswiedergabe" - }, - "sidebar": { - "message": "Seitenleiste" - }, - "spacebar": { - "message": "Leertaste" - }, - "squaredUserImages": { - "message": "Quadratische Profilbilder" - }, - "static": { - "message": "Statisch" - }, - "statsForNerds": { - "message": "Statistiken für Nerds" - }, - "step": { - "message": "Schritt" - }, - "stop": { - "message": "Stopp" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stile" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Abos" - }, - "subtitles": { - "message": "Untertitel" - }, - "sunset": { - "message": "Sonnenuntergang" - }, - "sunsetToSunrise": { - "message": "Abends bis Morgens" - }, - "systemPeferenceDark": { - "message": "System Einstellungen: dunkel" - }, - "systemPeferenceLight": { - "message": "System Einstellungen: hell" - }, - "teal": { - "message": "Blaugrün" - }, - "textColor": { - "message": "Textfarbe" - }, - "themes": { - "message": "Farbschemen" - }, - "thisWillRemoveAllCookies": { - "message": "Alle Cookies werden gelöscht" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Alle YouTube Cookies werden gelöscht" - }, - "thisWillResetAllSettings": { - "message": "Alle Einstellungen werden entfernt" - }, - "thisWillResetAllShortcuts": { - "message": "Alle Shortcuts werden zurückgesetzt" - }, - "thumbnails": { - "message": "Vorschaubilder" - }, - "timeFrom": { - "message": "Start" - }, - "timeTo": { - "message": "Ende" - }, - "todayAt": { - "message": "Heute um" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Karten ausblenden" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Top Chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Kanal-Intro automatisch abspielen" - }, - "translations": { - "message": "Übersetzungen" - }, - "transparentBackground": { - "message": "Transparenter Hintergrund" - }, - "trending": { - "message": "Trends" - }, - "tryToReloadThePage": { - "message": "Versuche, die Seite neu zu laden" - }, - "type": { - "message": "Typ" - }, - "upNextAutoplay": { - "message": "Nächstes Video automatisch abspielen" - }, - "use24HourFormat": { - "message": "24-Stunden Format" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Die Video-Beschreibung wird um den Kategorienamen erweitert" - }, - "videoFormats": { - "message": "Videoformate" - }, - "videos": { - "message": "Videos" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Lautstärke" - }, - "watchLater": { - "message": "Später ansehen" - }, - "watchTime": { - "message": "Verbrauchte Zeit" - }, - "whenTabIsChanged": { - "message": "Beim Tab-Wechsel" - }, - "white": { - "message": "Weiß" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Gelb" - }, - "youtubeHeaderLeft": { - "message": "YouTube Kopfzeile (Links)" - }, - "youtubeHeaderRight": { - "message": "YouTube Kopfzeile (Rechts)" - }, - "youtubeHomePage": { - "message": "YouTube Startseite" - }, - "youtubeLanguage": { - "message": "YouTube Sprache" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube begrenzt die Qualität auf 1080p für den h.264 Codec" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Info" + }, + "accept": { + "message": "Akzeptieren" + }, + "activate": { + "message": "Aktivieren" + }, + "activateCaptions": { + "message": "Untertitel aktivieren" + }, + "activateFullscreen": { + "message": "Vollbild aktivieren" + }, + "activated": { + "message": "Aktiviert" + }, + "activatedFeatures": { + "message": "Aktivierte Features" + }, + "activeFeatures": { + "message": "Aktive Funktionen" + }, + "addScrollToTop": { + "message": "„Nach Oben“-Button" + }, + "ads": { + "message": "Werbung" + }, + "all": { + "message": "Alles" + }, + "allow": { + "message": "zulassen" + }, + "allow60fps": { + "message": "60fps zulassen" + }, + "alwaysActive": { + "message": "Immer aktiv" + }, + "alwaysShowProgressBar": { + "message": "Zeitleiste immer anzeigen" + }, + "amber": { + "message": "Bernstein" + }, + "analyzer": { + "message": "Analyse" + }, + "appearance": { + "message": "Aussehen" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio-Formate" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-Vollbild" + }, + "autopauseWhenSwitchingTabs": { + "message": "Video pausieren beim Tab-Wechsel" + }, + "autoplay": { + "message": "Autoplay" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Sichern oder zurücksetzen" + }, + "baseOnSystemColorScheme": { + "message": "Basierend auf Systemfarben" + }, + "belowPlayer": { + "message": "Unter dem Player" + }, + "black": { + "message": "Schwarz" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "immer blockieren" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Blau" + }, + "blueGray": { + "message": "Blau grau" + }, + "bluelight": { + "message": "Blaues Licht" + }, + "brown": { + "message": "Braun" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser-Version" + }, + "bubbles": { + "message": "Blasen" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Buttons" + }, + "cancel": { + "message": "Abbrechen" + }, + "categories": { + "message": "Kategorien" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanäle" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Zwischenablage" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Abos einklappen" + }, + "collapsed": { + "message": "Eingeklappt" + }, + "comments": { + "message": "Kommentare" + }, + "confirmationBeforeClosing": { + "message": "Bestätigung beim Schließen" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Kerne" + }, + "cropChapterTitles": { + "message": "Kapitel abschneiden" + }, + "customCss": { + "message": "CSS hinzufügen" + }, + "customJs": { + "message": "JS hinzufügen" + }, + "customMiniPlayer": { + "message": "Benutzerdefinierter Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Dunkel" + }, + "darkTheme": { + "message": "Dark-Theme" + }, + "dateAndTime": { + "message": "Datum & Uhrzeit" + }, + "dawn": { + "message": "Morgendämmerung" + }, + "decreasePlaybackSpeed": { + "message": "Abspielgeschwindigkeit verringern" + }, + "decreaseVolume": { + "message": "Lautstärke reduzieren" + }, + "deepOrange": { + "message": "Dunkel-Orange" + }, + "deepPurple": { + "message": "Dunkel-Lila" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Standard-Kanal-Tab" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "YouTube-Cookies löschen" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Beschreibung" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Wüste" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Entwickleroptionen" + }, + "device": { + "message": "Gerät" + }, + "dim": { + "message": "dimmen" + }, + "disabled": { + "message": "ausgeschaltet" + }, + "dislike": { + "message": "'Mag ich nicht'" + }, + "doNotChange": { + "message": "Nicht ändern" + }, + "donate": { + "message": "Spenden" + }, + "draggable": { + "message": "Verschiebbar" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "E-Mail" + }, + "empty": { + "message": "leer" + }, + "enabled": { + "message": "aktiviert" + }, + "enabledForced": { + "message": "aktiviert (erzwungen)" + }, + "expanded": { + "message": "ausgeklappt" + }, + "exportSettings": { + "message": "Einstellungen als Datei exportieren" + }, + "extension": { + "message": "Erweiterung" + }, + "file": { + "message": "Datei" + }, + "filters": { + "message": "Filter" + }, + "fitToWindow": { + "message": "Ans Fenster anpassen" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Schriftart" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Fußzeile" + }, + "forceSDR": { + "message": "SDR erzwingen" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "erzwungene Abspielgeschwindigkeit" + }, + "forcedTheaterMode": { + "message": "Kinomodus erzwingen" + }, + "forcedVolume": { + "message": "Fixe Lautstärke" + }, + "foundABug": { + "message": "Fehler gefunden?" + }, + "fullWindow": { + "message": "Ganzes Fenster" + }, + "general": { + "message": "Allgemein" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "YouTube Suche" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Grün" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD-Vorschaubild" + }, + "header": { + "message": "Header / 'Kopfzeile'" + }, + "hidden": { + "message": "Ausblenden" + }, + "hiddenOnVideoPage": { + "message": "Auf Videoseiten ausblenden" + }, + "hideAnimatedThumbnails": { + "message": "Keine animierten Vorschaubilder" + }, + "hideAnnotations": { + "message": "Anmerkungen ausblenden" + }, + "hideCards": { + "message": "Karten ausblenden" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Details ausblenden" + }, + "hideEndscreen": { + "message": "Endkarten ausblenden (Schlussbildschirme)" + }, + "hideFeaturedContent": { + "message": "'Empfohlene Inhalte' ausblenden" + }, + "hideFooter": { + "message": "Fußzeile ausblenden" + }, + "hideGradientBottom": { + "message": "Farbverlauf ausblenden" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Playlists ausblenden" + }, + "hideRightButtons": { + "message": "Rechte Buttons ausblenden" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "„Für Details scrollen“ ausblenden" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Videoaufrufe ausblenden" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Verlauf" + }, + "home": { + "message": "Standard" + }, + "hover": { + "message": "Nur anzeigen bei Mausover" + }, + "hoverOnVideoPage": { + "message": "auf Video-Seiten bei Mausover" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Alter des Videos (seit Hochlade-Datum)" + }, + "icons": { + "message": "Icons" + }, + "iconsOnly": { + "message": "nur Icons" + }, + "importSettings": { + "message": "Einstellungen importieren" + }, + "improveLogo": { + "message": "Logo verbessern" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube Icon auf YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube Sprache" + }, + "improvedtubeVersion": { + "message": "ImprovedTube Version" + }, + "increasePlaybackSpeed": { + "message": "Abspielgeschwingkeit erhöhen" + }, + "increaseVolume": { + "message": "Lautstärke erhöhen" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Sprachen" + }, + "legacyYoutube": { + "message": "Klassiches YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Hell" + }, + "lightBlue": { + "message": "Hellblau" + }, + "lightGreen": { + "message": "Hellgrün" + }, + "like": { + "message": "Like" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Limette" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Live-Chat" + }, + "liveChatType": { + "message": "Live-Chat Typ" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Lautstärke normalisieren" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "gesehene Videos markieren" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mischpult" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Meine Farben" + }, + "name": { + "message": "Name" + }, + "nativeMiniPlayer": { + "message": "Standard Mini-Player" + }, + "new": { + "message": "Neu" + }, + "nextVideo": { + "message": "Nächstes Video" + }, + "night": { + "message": "Nacht" + }, + "noActiveFeatures": { + "message": "Keine aktiven Features" + }, + "noOpenVideoTabs": { + "message": "Keine YouTube Videos geöffnet" + }, + "none": { + "message": "Keine" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Alt" + }, + "onAllVideos": { + "message": "in allen Videos" + }, + "onSubscribedChannels": { + "message": "nur in abonnierten Kanälen" + }, + "onlyActiveOnYoutube": { + "message": "nur auf YouTube rot färben" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Nur ein Video gleichzeitig" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "Betriebsystem" + }, + "other": { + "message": "Andere" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Berechtigungen" + }, + "pictureInPicture": { + "message": "Bild-in-Bild" + }, + "pink": { + "message": "Pink" + }, + "plain": { + "message": "Schlicht" + }, + "platform": { + "message": "Plattform" + }, + "playPause": { + "message": "Play / Pause" + }, + "playbackSpeed": { + "message": "Abspielgeschwindigkeit" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Playerfarbe" + }, + "playerSize": { + "message": "Playergröße" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "popupPlayer": { + "message": "Player in eigenem Fenster" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Eine Taste drücken oder scrollen!" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Eine Taste drücken oder scrollen!" + }, + "previousVideo": { + "message": "Letztes Video" + }, + "primaryColor": { + "message": "Primäre Farbe" + }, + "purple": { + "message": "Lila" + }, + "quality": { + "message": "Qualität" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Bewerte mich!" + }, + "red": { + "message": "Rot" + }, + "redDislikeButton": { + "message": "Zeige 'Mag ich nicht' Button rot" + }, + "relatedVideos": { + "message": "Ähnliche Videos" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Ähnliche Suchergebnisse entfernen" + }, + "repeat": { + "message": "Repeat (Wiederholen)" + }, + "reset": { + "message": "Zurücksetzen" + }, + "resetAllSettings": { + "message": "Alle Einstellungen zurücksetzen" + }, + "resetAllShortcuts": { + "message": "Alle Shortcuts zurücksetzen" + }, + "reverse": { + "message": "Rückwärts" + }, + "rotate": { + "message": "Drehen" + }, + "save": { + "message": "Speichern" + }, + "saveAs": { + "message": "Speichern als" + }, + "schedule": { + "message": "Zeitplan" + }, + "screen": { + "message": "Bildschirm" + }, + "screenshot": { + "message": "Screenshot" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Suche" + }, + "searchBarOnly": { + "message": "Nur die Suchleiste" + }, + "seekBackward10Seconds": { + "message": "10 Sekunden zurück" + }, + "seekForward10Seconds": { + "message": "10 Sekunden überspringen" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Einstellungen" + }, + "settingsSuccessfullyImported": { + "message": "Einstellungen erfolgreich importiert!" + }, + "shortcuts": { + "message": "Hotkeys" + }, + "showCardsOnMouseHover": { + "message": "Infokarten bei Mausover anzeigen" + }, + "showChannelVideosCount": { + "message": "Anzahl Videos je Channel anzeigen" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Zufallswiedergabe" + }, + "sidebar": { + "message": "Seitenleiste" + }, + "spacebar": { + "message": "Leertaste" + }, + "squaredUserImages": { + "message": "Quadratische Profilbilder" + }, + "static": { + "message": "Statisch" + }, + "statsForNerds": { + "message": "Statistiken für Nerds" + }, + "step": { + "message": "Schritt" + }, + "stop": { + "message": "Stopp" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stile" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Abos" + }, + "subtitles": { + "message": "Untertitel" + }, + "sunset": { + "message": "Sonnenuntergang" + }, + "sunsetToSunrise": { + "message": "Abends bis Morgens" + }, + "systemPeferenceDark": { + "message": "System Einstellungen: dunkel" + }, + "systemPeferenceLight": { + "message": "System Einstellungen: hell" + }, + "teal": { + "message": "Blaugrün" + }, + "textColor": { + "message": "Textfarbe" + }, + "themes": { + "message": "Farbschemen" + }, + "thisWillRemoveAllCookies": { + "message": "Alle Cookies werden gelöscht" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Alle YouTube Cookies werden gelöscht" + }, + "thisWillResetAllSettings": { + "message": "Alle Einstellungen werden entfernt" + }, + "thisWillResetAllShortcuts": { + "message": "Alle Shortcuts werden zurückgesetzt" + }, + "thumbnails": { + "message": "Vorschaubilder" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Start" + }, + "timeTo": { + "message": "Ende" + }, + "todayAt": { + "message": "Heute um" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Karten ausblenden" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Top Chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Kanal-Intro automatisch abspielen" + }, + "translations": { + "message": "Übersetzungen" + }, + "transparentBackground": { + "message": "Transparenter Hintergrund" + }, + "trending": { + "message": "Trends" + }, + "tryToReloadThePage": { + "message": "Versuche, die Seite neu zu laden" + }, + "type": { + "message": "Typ" + }, + "upNextAutoplay": { + "message": "Nächstes Video automatisch abspielen" + }, + "use24HourFormat": { + "message": "24-Stunden Format" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Die Video-Beschreibung wird um den Kategorienamen erweitert" + }, + "videoFormats": { + "message": "Videoformate" + }, + "videos": { + "message": "Videos" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Lautstärke" + }, + "watchLater": { + "message": "Später ansehen" + }, + "watchTime": { + "message": "Verbrauchte Zeit" + }, + "whenTabIsChanged": { + "message": "Beim Tab-Wechsel" + }, + "white": { + "message": "Weiß" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Gelb" + }, + "youtubeHeaderLeft": { + "message": "YouTube Kopfzeile (Links)" + }, + "youtubeHeaderRight": { + "message": "YouTube Kopfzeile (Rechts)" + }, + "youtubeHomePage": { + "message": "YouTube Startseite" + }, + "youtubeLanguage": { + "message": "YouTube Sprache" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube begrenzt die Qualität auf 1080p für den h.264 Codec" + } } \ No newline at end of file diff --git a/_locales/el/messages.json b/_locales/el/messages.json index ba7f00adb..671b3fb30 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -1,971 +1,986 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Σχετικά" - }, - "accept": { - "message": "Αποδοχή" - }, - "activate": { - "message": "Ενεργοποίηση" - }, - "activateCaptions": { - "message": "Ενεργοποίηση Υπότιτλων" - }, - "activateFullscreen": { - "message": "Ενεργοποίηση Πλήρους Οθόνη" - }, - "activated": { - "message": "Ενεργοποιήθηκε" - }, - "activatedFeatures": { - "message": "Ενεργοποιημένες Λειτουργίες" - }, - "activeFeatures": { - "message": "Ενεργές λειτουργίες" - }, - "addScrollToTop": { - "message": "Πρόσθεσε συντόμευση για την κορυφή της σελίδας" - }, - "ads": { - "message": "Διαφημίσεις" - }, - "all": { - "message": "Όλα" - }, - "allow": { - "message": "Αποδοχή" - }, - "allow60fps": { - "message": "Επίτρεψε 60fps" - }, - "alwaysActive": { - "message": "Πάντοτε ενεργό" - }, - "alwaysShowProgressBar": { - "message": "Πάντα ορατός ο ενδείκτης προόδου" - }, - "amber": { - "message": "Κεχρί" - }, - "analyzer": { - "message": "Αναλυτής" - }, - "appearance": { - "message": "Εμφάνιση" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Ήχος" - }, - "audioFormats": { - "message": "Μορφές ήχου" - }, - "auto": { - "message": "Αυτόματο" - }, - "autoFullscreen": { - "message": "Αυτόματη Πλήρης Οθόνη" - }, - "autopauseWhenSwitchingTabs": { - "message": "Αυτόματη παύση όταν αλλάζετε καρτέλα" - }, - "autoplay": { - "message": "Αυτόματη αναπαραγωγή" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Αντίγραφα ασφαλείας & reset" - }, - "baseOnSystemColorScheme": { - "message": "Με βάση τις ρυθμίσεις χρώματος του συστήματος" - }, - "belowPlayer": { - "message": "Κάτω από το Player" - }, - "black": { - "message": "Μαύρο" - }, - "blacklist": { - "message": "Λίστα αποκλεισμού" - }, - "blockAll": { - "message": "Αποκλείστε όλα" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Μπλε" - }, - "blueGray": { - "message": "Μπλε γκρίζο" - }, - "bluelight": { - "message": "Μπλε φως" - }, - "brown": { - "message": "Καφέ" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Έκδοση browser" - }, - "bubbles": { - "message": "Φούσκες" - }, - "bug": { - "message": "Σφάλμα κώδικα" - }, - "buttons": { - "message": "Κουμπιά" - }, - "cancel": { - "message": "Ακύρωση" - }, - "categories": { - "message": "Κατηγορίες" - }, - "channel": { - "message": "Κανάλι" - }, - "channels": { - "message": "Κανάλια" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Κλείσε το μενού συνδρομών" - }, - "collapsed": { - "message": "Κλειστό" - }, - "comments": { - "message": "Σχόλιο" - }, - "confirmationBeforeClosing": { - "message": "Επιβεβαίωση πρωτού κλείσεις" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Πυρήνες" - }, - "cropChapterTitles": { - "message": "Περίκοψε τους τίτλους των κεφαλαίων" - }, - "customCss": { - "message": "Εξατομίκευση CSS" - }, - "customJs": { - "message": "Εξατομίκευση JS" - }, - "customMiniPlayer": { - "message": "Εξατομικευμένο Mini-Player" - }, - "cyan": { - "message": "Κυανό" - }, - "dark": { - "message": "Σκούρο" - }, - "darkTheme": { - "message": "Σκούρο θέμα" - }, - "dateAndTime": { - "message": "Ημερομηνία & ώρα" - }, - "dawn": { - "message": "Αυγή" - }, - "decreasePlaybackSpeed": { - "message": "Μείωσε ταχύτητα αναπαραγωγής" - }, - "decreaseVolume": { - "message": "Μειώστε ένταση" - }, - "deepOrange": { - "message": "Βαθύ πορτοκαλί" - }, - "deepPurple": { - "message": "Βαθύ μοβ" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Προεπιλεγμένη καρτέλα καναλιού" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Κατάργησε τα cookies του YouTube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Περιγραφή" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Έρημος" - }, - "details": { - "message": "Λεπτομέρειες" - }, - "developerOptions": { - "message": "Επιλογές για προγραμματιστές" - }, - "device": { - "message": "Συσκευή" - }, - "dim": { - "message": "Σκοτεινό" - }, - "disabled": { - "message": "Απενεργοποιημένο" - }, - "dislike": { - "message": "Δε μου αρέσει" - }, - "doNotChange": { - "message": "Να μην αλλάξει" - }, - "donate": { - "message": "Donate" - }, - "draggable": { - "message": "Μετακινήσιμο με σύρση" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Κενό" - }, - "enabled": { - "message": "Ενεργοποιημένο" - }, - "enabledForced": { - "message": "Ενεργοποιημένο (Υποχρεωτικά)" - }, - "expanded": { - "message": "Ανοικτό" - }, - "exportSettings": { - "message": "Εξαγωγή ρυθμίσεων" - }, - "extension": { - "message": "Επέκταση" - }, - "file": { - "message": "Αρχείο" - }, - "filters": { - "message": "Φίλτρα" - }, - "fitToWindow": { - "message": "Να χωράει στο παράθυρο" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Γραμματοσειρά" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Υποσέλιδο" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Υποχρεωτική ταχύτητα αναπαραγωγής" - }, - "forcedTheaterMode": { - "message": "Υποχρεωτική λειτουργία κινηματογράφου" - }, - "forcedVolume": { - "message": "Υποχρεωτική ένταση" - }, - "foundABug": { - "message": "Εντοπίσατε κάποιο σφάλμα;" - }, - "fullWindow": { - "message": "Πλήρες παράθυρο" - }, - "general": { - "message": "Γενικά" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Πήγαινε στο πεδίο αναζήτησης" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Πράσινο" - }, - "hdThumbnail": { - "message": "HD Εικονίδιο βίντεο" - }, - "hdThumbnails": { - "message": "HD Εικονίδια βίντεο" - }, - "header": { - "message": "Κεφαλίδα" - }, - "hidden": { - "message": "Κρυμμένο" - }, - "hiddenOnVideoPage": { - "message": "Κρυμμένο στη σελίδα βίντεο" - }, - "hideAnimatedThumbnails": { - "message": "Απόκρυψε τα κινούμενα εικονίδια βίντεο" - }, - "hideAnnotations": { - "message": "Απόκρυψε τα annotations" - }, - "hideCards": { - "message": "Απόκρυψε τις κάρτες" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Απόκρυψε τις λεπτομέρειες" - }, - "hideEndscreen": { - "message": "Απόκρυψε την κάρτα τέλους" - }, - "hideFeaturedContent": { - "message": "Απόκρυψε το προτεινόμενο περιεχόμενο" - }, - "hideFooter": { - "message": "Απόκρυψε το υποσέλιδο" - }, - "hideGradientBottom": { - "message": "Απόκρυψε το κάτω μέρος της χρωματικής διαβάθμισης" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Απόκρυψε τα playlists" - }, - "hideRightButtons": { - "message": "Απόκρυψε τα κουμπιά στα δεξιά" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Απόκρυψε το «Scroll for details»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Απόκρυψε τον αριθμό προβολών" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "Ιστορικό" - }, - "home": { - "message": "Αρχική σελίδα" - }, - "hover": { - "message": "Κέρσορας από πάνω" - }, - "hoverOnVideoPage": { - "message": "Κέρσορας πάνω στη σελίδα βίντεο" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Πριν από πόσο ανέβηκε το βίντεο" - }, - "icons": { - "message": "Εικονίδια" - }, - "iconsOnly": { - "message": "Εικονίδια μόνο" - }, - "importSettings": { - "message": "Εισαγωγή ρυθμίσεων" - }, - "improveLogo": { - "message": "Λογότυπο Improve" - }, - "improvedtubeIconOnYoutube": { - "message": "Εικονίδιο ImprovedTube στο YouTube" - }, - "improvedtubeLanguage": { - "message": "Γλώσσα ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Έκδοση ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Αύξησε την ταχύτητα αναπαραγωγής" - }, - "increaseVolume": { - "message": "Αύξησε την ένταση" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Αντικείμενα" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Γλώσσες" - }, - "legacyYoutube": { - "message": "Παλιά έκδοση YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Ανοιχτόχρωμο" - }, - "lightBlue": { - "message": "Ανοικτό μπλε" - }, - "lightGreen": { - "message": "Ανοικτό πράσινο" - }, - "like": { - "message": "Μου αρέσει" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Μοσχολέμονο" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Λίστα" - }, - "liveChat": { - "message": "Live chat" - }, - "liveChatType": { - "message": "Τύπος live chat" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Κανονικοποίηση έντασης" - }, - "markWatchedVideos": { - "message": "Επισήμανση βίντεο που προβλήθηκαν" - }, - "mixer": { - "message": "Mixer" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Τα χρώματά μου" - }, - "name": { - "message": "Όνομα" - }, - "nativeMiniPlayer": { - "message": "Mini player συστήματος" - }, - "new": { - "message": "Νέο" - }, - "nextVideo": { - "message": "Επόμενο βίντεο" - }, - "night": { - "message": "Νύχτα" - }, - "noActiveFeatures": { - "message": "Καμία λειτουργία ενεργή" - }, - "noOpenVideoTabs": { - "message": "Καμία καρτέλα βίντεο ανοικτή" - }, - "none": { - "message": "Κανένα" - }, - "normal": { - "message": "Κανονικό" - }, - "old": { - "message": "Παλιό" - }, - "onAllVideos": { - "message": "Σε όλα τα βίντεο" - }, - "onSubscribedChannels": { - "message": "Σε κανάλια που έχει γίνει συνδρομή" - }, - "onlyActiveOnYoutube": { - "message": "Μόνο ενεργό στο YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Μόνο ένα player λειτουργεί" - }, - "orange": { - "message": "Πορτοκαλί" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Άλλο" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Άδεια" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Ροζ" - }, - "plain": { - "message": "Σκέτο" - }, - "platform": { - "message": "Πλατφόρμα" - }, - "playPause": { - "message": "Play / Pause" - }, - "playbackSpeed": { - "message": "Ταχύτητα αναπαραγωγής" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Χρώμσ player" - }, - "playerSize": { - "message": "Μέγεθος player" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "popupPlayer": { - "message": "Popup player" - }, - "position": { - "message": "Θέση" - }, - "pressAnyKeyOrScroll": { - "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." - }, - "previousVideo": { - "message": "Προηγούμενο βίντεο" - }, - "primaryColor": { - "message": "Πρωτεύον χρώμα" - }, - "purple": { - "message": "Μοβ" - }, - "quality": { - "message": "Ποιότητα" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Αξιολόγησέ μας" - }, - "red": { - "message": "Κόκκινο" - }, - "redDislikeButton": { - "message": "Δείξτε το πλήκτρο «Δε μου αρέσει» σε κόκκινο" - }, - "relatedVideos": { - "message": "Σχετικά videos" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Αφαίρεσε σχετικά αποτελέσματα αναζήτησης" - }, - "repeat": { - "message": "Επανάληψη" - }, - "reset": { - "message": "Επαναφορά" - }, - "resetAllSettings": { - "message": "Επαναφορά όλων των ρυθμίσεων" - }, - "resetAllShortcuts": { - "message": "Επαναφορά όλων των συντομεύσεων" - }, - "reverse": { - "message": "Ανάποδα" - }, - "rotate": { - "message": "Περιστροφή" - }, - "save": { - "message": "Αποθήκευση" - }, - "saveAs": { - "message": "Αποθήκευση ως" - }, - "schedule": { - "message": "Πρόγραμμα" - }, - "screen": { - "message": "Οθόνη" - }, - "screenshot": { - "message": "Στιγμιότυπο" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "Αναζήτηση" - }, - "searchBarOnly": { - "message": "Πεδίο αναζήτησης μόνο" - }, - "seekBackward10Seconds": { - "message": "Πίσω 10 δευτερόλεπτα" - }, - "seekForward10Seconds": { - "message": "Μπροστά 10 δευτερόλεπτα" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Ρυθμίσεις" - }, - "settingsSuccessfullyImported": { - "message": "Επιτυχής εισαγωγή ρυθμίσεων" - }, - "shortcuts": { - "message": "Συντομεύσεις" - }, - "showCardsOnMouseHover": { - "message": "Δείξε τις κάρτες όταν ο κέρσορας είναι από πάνω" - }, - "showChannelVideosCount": { - "message": "Δείξε τις συνολικές προβολές του καναλιού" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Τυχαία αναπαραγωγή" - }, - "sidebar": { - "message": "Sidebar" - }, - "spacebar": { - "message": "Spacebar" - }, - "squaredUserImages": { - "message": "Τετράγωνες εικόνες χρήστη" - }, - "static": { - "message": "Στατικό" - }, - "statsForNerds": { - "message": "Δείξε τα Στατιστικά για Σπασίκλες" - }, - "step": { - "message": "Βήμα" - }, - "stop": { - "message": "Στοπ" - }, - "style": { - "message": "Στυλ" - }, - "styles": { - "message": "Στυλ" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Συνδρομές" - }, - "subtitles": { - "message": "Υπότιτλοι" - }, - "sunset": { - "message": "Ηλιοβασίλεμα" - }, - "sunsetToSunrise": { - "message": "Από δύση έως ανατολή" - }, - "systemPeferenceDark": { - "message": "Προτίμηση συστήματος: Σκούρο" - }, - "systemPeferenceLight": { - "message": "Προτίμηση συστήματος: Ανοικτόχρωμο" - }, - "teal": { - "message": "Γαλαζιοπράσινο" - }, - "textColor": { - "message": "Χρώμα κειμένου" - }, - "themes": { - "message": "Θέματα" - }, - "thisWillRemoveAllCookies": { - "message": "Αυτό αφαιρεί όλα τα cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Αυτό αφαιρεί όλα τα cookies του YouTube." - }, - "thisWillResetAllSettings": { - "message": "Αυτό επαναφέρει όλες τις ρυθμίσεις." - }, - "thisWillResetAllShortcuts": { - "message": "Αυτό επαναφέρει όλες τις συντομεύσεις." - }, - "thumbnails": { - "message": "Εικονίδια" - }, - "timeFrom": { - "message": "Χρόνος από" - }, - "timeTo": { - "message": "Χρόνος έως" - }, - "todayAt": { - "message": "Σήμερα στις" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Trailer autoplay" - }, - "translations": { - "message": "Μεταφράσεις" - }, - "transparentBackground": { - "message": "Διαφανές υπόβαθρο" - }, - "trending": { - "message": "Τάσεις" - }, - "tryToReloadThePage": { - "message": "Προσπάθησε να επαναφορτώσεις τη σελίδα" - }, - "type": { - "message": "Τύπος" - }, - "upNextAutoplay": { - "message": "Επόμενο στο autoplay" - }, - "use24HourFormat": { - "message": "Χρησιμοποίησε 24ωρη μορφή ώρας" - }, - "version": { - "message": "Έκδοση" - }, - "video": { - "message": "Βίντεο" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Η περιγραφή του βίντεο θα επεκταθεί ωστε να συμπεριληφθεί το όνομα της κατηγορίας." - }, - "videoFormats": { - "message": "Μορφές βίντεο" - }, - "videos": { - "message": "Βίντεο" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Ένταση" - }, - "watchLater": { - "message": "Δες αργότερα" - }, - "watchTime": { - "message": "Χρόνος προβολής" - }, - "whenTabIsChanged": { - "message": "Όταν αλλάζεις καρτέλα" - }, - "white": { - "message": "Λευκό" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Κίτρινο" - }, - "youtubeHeaderLeft": { - "message": "Κεφαλίδα YouTube (αριστερά)" - }, - "youtubeHeaderRight": { - "message": "Κεφαλίδα YouTube (δεξιά)" - }, - "youtubeHomePage": { - "message": "Αρχική σελίδα YouTube" - }, - "youtubeLanguage": { - "message": "Γλώσσα YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "Το YouTube περιορίζει την ποιότητα σε 1080p για το h.264 codec" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Σχετικά" + }, + "accept": { + "message": "Αποδοχή" + }, + "activate": { + "message": "Ενεργοποίηση" + }, + "activateCaptions": { + "message": "Ενεργοποίηση Υπότιτλων" + }, + "activateFullscreen": { + "message": "Ενεργοποίηση Πλήρους Οθόνη" + }, + "activated": { + "message": "Ενεργοποιήθηκε" + }, + "activatedFeatures": { + "message": "Ενεργοποιημένες Λειτουργίες" + }, + "activeFeatures": { + "message": "Ενεργές λειτουργίες" + }, + "addScrollToTop": { + "message": "Πρόσθεσε συντόμευση για την κορυφή της σελίδας" + }, + "ads": { + "message": "Διαφημίσεις" + }, + "all": { + "message": "Όλα" + }, + "allow": { + "message": "Αποδοχή" + }, + "allow60fps": { + "message": "Επίτρεψε 60fps" + }, + "alwaysActive": { + "message": "Πάντοτε ενεργό" + }, + "alwaysShowProgressBar": { + "message": "Πάντα ορατός ο ενδείκτης προόδου" + }, + "amber": { + "message": "Κεχρί" + }, + "analyzer": { + "message": "Αναλυτής" + }, + "appearance": { + "message": "Εμφάνιση" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "Ήχος" + }, + "audioFormats": { + "message": "Μορφές ήχου" + }, + "auto": { + "message": "Αυτόματο" + }, + "autoFullscreen": { + "message": "Αυτόματη Πλήρης Οθόνη" + }, + "autopauseWhenSwitchingTabs": { + "message": "Αυτόματη παύση όταν αλλάζετε καρτέλα" + }, + "autoplay": { + "message": "Αυτόματη αναπαραγωγή" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Αντίγραφα ασφαλείας & reset" + }, + "baseOnSystemColorScheme": { + "message": "Με βάση τις ρυθμίσεις χρώματος του συστήματος" + }, + "belowPlayer": { + "message": "Κάτω από το Player" + }, + "black": { + "message": "Μαύρο" + }, + "blacklist": { + "message": "Λίστα αποκλεισμού" + }, + "blockAll": { + "message": "Αποκλείστε όλα" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Μπλε" + }, + "blueGray": { + "message": "Μπλε γκρίζο" + }, + "bluelight": { + "message": "Μπλε φως" + }, + "brown": { + "message": "Καφέ" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Έκδοση browser" + }, + "bubbles": { + "message": "Φούσκες" + }, + "bug": { + "message": "Σφάλμα κώδικα" + }, + "buttons": { + "message": "Κουμπιά" + }, + "cancel": { + "message": "Ακύρωση" + }, + "categories": { + "message": "Κατηγορίες" + }, + "channel": { + "message": "Κανάλι" + }, + "channels": { + "message": "Κανάλια" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Κλείσε το μενού συνδρομών" + }, + "collapsed": { + "message": "Κλειστό" + }, + "comments": { + "message": "Σχόλιο" + }, + "confirmationBeforeClosing": { + "message": "Επιβεβαίωση πρωτού κλείσεις" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Πυρήνες" + }, + "cropChapterTitles": { + "message": "Περίκοψε τους τίτλους των κεφαλαίων" + }, + "customCss": { + "message": "Εξατομίκευση CSS" + }, + "customJs": { + "message": "Εξατομίκευση JS" + }, + "customMiniPlayer": { + "message": "Εξατομικευμένο Mini-Player" + }, + "cyan": { + "message": "Κυανό" + }, + "dark": { + "message": "Σκούρο" + }, + "darkTheme": { + "message": "Σκούρο θέμα" + }, + "dateAndTime": { + "message": "Ημερομηνία & ώρα" + }, + "dawn": { + "message": "Αυγή" + }, + "decreasePlaybackSpeed": { + "message": "Μείωσε ταχύτητα αναπαραγωγής" + }, + "decreaseVolume": { + "message": "Μειώστε ένταση" + }, + "deepOrange": { + "message": "Βαθύ πορτοκαλί" + }, + "deepPurple": { + "message": "Βαθύ μοβ" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Προεπιλεγμένη καρτέλα καναλιού" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Κατάργησε τα cookies του YouTube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Περιγραφή" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Έρημος" + }, + "details": { + "message": "Λεπτομέρειες" + }, + "developerOptions": { + "message": "Επιλογές για προγραμματιστές" + }, + "device": { + "message": "Συσκευή" + }, + "dim": { + "message": "Σκοτεινό" + }, + "disabled": { + "message": "Απενεργοποιημένο" + }, + "dislike": { + "message": "Δε μου αρέσει" + }, + "doNotChange": { + "message": "Να μην αλλάξει" + }, + "donate": { + "message": "Donate" + }, + "draggable": { + "message": "Μετακινήσιμο με σύρση" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Κενό" + }, + "enabled": { + "message": "Ενεργοποιημένο" + }, + "enabledForced": { + "message": "Ενεργοποιημένο (Υποχρεωτικά)" + }, + "expanded": { + "message": "Ανοικτό" + }, + "exportSettings": { + "message": "Εξαγωγή ρυθμίσεων" + }, + "extension": { + "message": "Επέκταση" + }, + "file": { + "message": "Αρχείο" + }, + "filters": { + "message": "Φίλτρα" + }, + "fitToWindow": { + "message": "Να χωράει στο παράθυρο" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Γραμματοσειρά" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Υποσέλιδο" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Υποχρεωτική ταχύτητα αναπαραγωγής" + }, + "forcedTheaterMode": { + "message": "Υποχρεωτική λειτουργία κινηματογράφου" + }, + "forcedVolume": { + "message": "Υποχρεωτική ένταση" + }, + "foundABug": { + "message": "Εντοπίσατε κάποιο σφάλμα;" + }, + "fullWindow": { + "message": "Πλήρες παράθυρο" + }, + "general": { + "message": "Γενικά" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Πήγαινε στο πεδίο αναζήτησης" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Πράσινο" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD Εικονίδιο βίντεο" + }, + "header": { + "message": "Κεφαλίδα" + }, + "hidden": { + "message": "Κρυμμένο" + }, + "hiddenOnVideoPage": { + "message": "Κρυμμένο στη σελίδα βίντεο" + }, + "hideAnimatedThumbnails": { + "message": "Απόκρυψε τα κινούμενα εικονίδια βίντεο" + }, + "hideAnnotations": { + "message": "Απόκρυψε τα annotations" + }, + "hideCards": { + "message": "Απόκρυψε τις κάρτες" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Απόκρυψε τις λεπτομέρειες" + }, + "hideEndscreen": { + "message": "Απόκρυψε την κάρτα τέλους" + }, + "hideFeaturedContent": { + "message": "Απόκρυψε το προτεινόμενο περιεχόμενο" + }, + "hideFooter": { + "message": "Απόκρυψε το υποσέλιδο" + }, + "hideGradientBottom": { + "message": "Απόκρυψε το κάτω μέρος της χρωματικής διαβάθμισης" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Απόκρυψε τα playlists" + }, + "hideRightButtons": { + "message": "Απόκρυψε τα κουμπιά στα δεξιά" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Απόκρυψε το «Scroll for details»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Απόκρυψε τον αριθμό προβολών" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Ιστορικό" + }, + "home": { + "message": "Αρχική σελίδα" + }, + "hover": { + "message": "Κέρσορας από πάνω" + }, + "hoverOnVideoPage": { + "message": "Κέρσορας πάνω στη σελίδα βίντεο" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Πριν από πόσο ανέβηκε το βίντεο" + }, + "icons": { + "message": "Εικονίδια" + }, + "iconsOnly": { + "message": "Εικονίδια μόνο" + }, + "importSettings": { + "message": "Εισαγωγή ρυθμίσεων" + }, + "improveLogo": { + "message": "Λογότυπο Improve" + }, + "improvedtubeIconOnYoutube": { + "message": "Εικονίδιο ImprovedTube στο YouTube" + }, + "improvedtubeLanguage": { + "message": "Γλώσσα ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Έκδοση ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Αύξησε την ταχύτητα αναπαραγωγής" + }, + "increaseVolume": { + "message": "Αύξησε την ένταση" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Αντικείμενα" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Γλώσσες" + }, + "legacyYoutube": { + "message": "Παλιά έκδοση YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Ανοιχτόχρωμο" + }, + "lightBlue": { + "message": "Ανοικτό μπλε" + }, + "lightGreen": { + "message": "Ανοικτό πράσινο" + }, + "like": { + "message": "Μου αρέσει" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Μοσχολέμονο" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Λίστα" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Τύπος live chat" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Κανονικοποίηση έντασης" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Επισήμανση βίντεο που προβλήθηκαν" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Τα χρώματά μου" + }, + "name": { + "message": "Όνομα" + }, + "nativeMiniPlayer": { + "message": "Mini player συστήματος" + }, + "new": { + "message": "Νέο" + }, + "nextVideo": { + "message": "Επόμενο βίντεο" + }, + "night": { + "message": "Νύχτα" + }, + "noActiveFeatures": { + "message": "Καμία λειτουργία ενεργή" + }, + "noOpenVideoTabs": { + "message": "Καμία καρτέλα βίντεο ανοικτή" + }, + "none": { + "message": "Κανένα" + }, + "normal": { + "message": "Κανονικό" + }, + "old": { + "message": "Παλιό" + }, + "onAllVideos": { + "message": "Σε όλα τα βίντεο" + }, + "onSubscribedChannels": { + "message": "Σε κανάλια που έχει γίνει συνδρομή" + }, + "onlyActiveOnYoutube": { + "message": "Μόνο ενεργό στο YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Μόνο ένα player λειτουργεί" + }, + "orange": { + "message": "Πορτοκαλί" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Άλλο" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Άδεια" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Ροζ" + }, + "plain": { + "message": "Σκέτο" + }, + "platform": { + "message": "Πλατφόρμα" + }, + "playPause": { + "message": "Play / Pause" + }, + "playbackSpeed": { + "message": "Ταχύτητα αναπαραγωγής" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Χρώμσ player" + }, + "playerSize": { + "message": "Μέγεθος player" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "popupPlayer": { + "message": "Popup player" + }, + "position": { + "message": "Θέση" + }, + "pressAnyKeyOrScroll": { + "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." + }, + "previousVideo": { + "message": "Προηγούμενο βίντεο" + }, + "primaryColor": { + "message": "Πρωτεύον χρώμα" + }, + "purple": { + "message": "Μοβ" + }, + "quality": { + "message": "Ποιότητα" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Αξιολόγησέ μας" + }, + "red": { + "message": "Κόκκινο" + }, + "redDislikeButton": { + "message": "Δείξτε το πλήκτρο «Δε μου αρέσει» σε κόκκινο" + }, + "relatedVideos": { + "message": "Σχετικά videos" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Αφαίρεσε σχετικά αποτελέσματα αναζήτησης" + }, + "repeat": { + "message": "Επανάληψη" + }, + "reset": { + "message": "Επαναφορά" + }, + "resetAllSettings": { + "message": "Επαναφορά όλων των ρυθμίσεων" + }, + "resetAllShortcuts": { + "message": "Επαναφορά όλων των συντομεύσεων" + }, + "reverse": { + "message": "Ανάποδα" + }, + "rotate": { + "message": "Περιστροφή" + }, + "save": { + "message": "Αποθήκευση" + }, + "saveAs": { + "message": "Αποθήκευση ως" + }, + "schedule": { + "message": "Πρόγραμμα" + }, + "screen": { + "message": "Οθόνη" + }, + "screenshot": { + "message": "Στιγμιότυπο" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Αναζήτηση" + }, + "searchBarOnly": { + "message": "Πεδίο αναζήτησης μόνο" + }, + "seekBackward10Seconds": { + "message": "Πίσω 10 δευτερόλεπτα" + }, + "seekForward10Seconds": { + "message": "Μπροστά 10 δευτερόλεπτα" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Ρυθμίσεις" + }, + "settingsSuccessfullyImported": { + "message": "Επιτυχής εισαγωγή ρυθμίσεων" + }, + "shortcuts": { + "message": "Συντομεύσεις" + }, + "showCardsOnMouseHover": { + "message": "Δείξε τις κάρτες όταν ο κέρσορας είναι από πάνω" + }, + "showChannelVideosCount": { + "message": "Δείξε τις συνολικές προβολές του καναλιού" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Τυχαία αναπαραγωγή" + }, + "sidebar": { + "message": "Sidebar" + }, + "spacebar": { + "message": "Spacebar" + }, + "squaredUserImages": { + "message": "Τετράγωνες εικόνες χρήστη" + }, + "static": { + "message": "Στατικό" + }, + "statsForNerds": { + "message": "Δείξε τα Στατιστικά για Σπασίκλες" + }, + "step": { + "message": "Βήμα" + }, + "stop": { + "message": "Στοπ" + }, + "style": { + "message": "Στυλ" + }, + "styles": { + "message": "Στυλ" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Συνδρομές" + }, + "subtitles": { + "message": "Υπότιτλοι" + }, + "sunset": { + "message": "Ηλιοβασίλεμα" + }, + "sunsetToSunrise": { + "message": "Από δύση έως ανατολή" + }, + "systemPeferenceDark": { + "message": "Προτίμηση συστήματος: Σκούρο" + }, + "systemPeferenceLight": { + "message": "Προτίμηση συστήματος: Ανοικτόχρωμο" + }, + "teal": { + "message": "Γαλαζιοπράσινο" + }, + "textColor": { + "message": "Χρώμα κειμένου" + }, + "themes": { + "message": "Θέματα" + }, + "thisWillRemoveAllCookies": { + "message": "Αυτό αφαιρεί όλα τα cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Αυτό αφαιρεί όλα τα cookies του YouTube." + }, + "thisWillResetAllSettings": { + "message": "Αυτό επαναφέρει όλες τις ρυθμίσεις." + }, + "thisWillResetAllShortcuts": { + "message": "Αυτό επαναφέρει όλες τις συντομεύσεις." + }, + "thumbnails": { + "message": "Εικονίδια" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Χρόνος από" + }, + "timeTo": { + "message": "Χρόνος έως" + }, + "todayAt": { + "message": "Σήμερα στις" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Trailer autoplay" + }, + "translations": { + "message": "Μεταφράσεις" + }, + "transparentBackground": { + "message": "Διαφανές υπόβαθρο" + }, + "trending": { + "message": "Τάσεις" + }, + "tryToReloadThePage": { + "message": "Προσπάθησε να επαναφορτώσεις τη σελίδα" + }, + "type": { + "message": "Τύπος" + }, + "upNextAutoplay": { + "message": "Επόμενο στο autoplay" + }, + "use24HourFormat": { + "message": "Χρησιμοποίησε 24ωρη μορφή ώρας" + }, + "version": { + "message": "Έκδοση" + }, + "video": { + "message": "Βίντεο" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Η περιγραφή του βίντεο θα επεκταθεί ωστε να συμπεριληφθεί το όνομα της κατηγορίας." + }, + "videoFormats": { + "message": "Μορφές βίντεο" + }, + "videos": { + "message": "Βίντεο" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Ένταση" + }, + "watchLater": { + "message": "Δες αργότερα" + }, + "watchTime": { + "message": "Χρόνος προβολής" + }, + "whenTabIsChanged": { + "message": "Όταν αλλάζεις καρτέλα" + }, + "white": { + "message": "Λευκό" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Κίτρινο" + }, + "youtubeHeaderLeft": { + "message": "Κεφαλίδα YouTube (αριστερά)" + }, + "youtubeHeaderRight": { + "message": "Κεφαλίδα YouTube (δεξιά)" + }, + "youtubeHomePage": { + "message": "Αρχική σελίδα YouTube" + }, + "youtubeLanguage": { + "message": "Γλώσσα YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "Το YouTube περιορίζει την ποιότητα σε 1080p για το h.264 codec" + } } \ No newline at end of file diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 58f9bfff1..ef0e98fe6 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -1,980 +1,995 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "About" - }, - "accept": { - "message": "Accept" - }, - "activate": { - "message": "Activate" - }, - "activateCaptions": { - "message": "Activate captions" - }, - "activateFullscreen": { - "message": "Activate fullscreen" - }, - "activated": { - "message": "Activated" - }, - "activatedFeatures": { - "message": "Activated features" - }, - "activeFeatures": { - "message": "Active features" - }, - "addScrollToTop": { - "message": "Add «Scroll to top»" - }, - "ads": { - "message": "Ads" - }, - "all": { - "message": "All" - }, - "allow": { - "message": "Allow" - }, - "allow60fps": { - "message": "Allow 60fps" - }, - "alwaysActive": { - "message": "Always active" - }, - "alwaysShowProgressBar": { - "message": "Always show progress bar" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analyzer" - }, - "appearance": { - "message": "Appearance" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio formats" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-fullscreen" - }, - "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" - }, - "autoplay": { - "message": "Autoplay" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Backup & reset" - }, - "baseOnSystemColorScheme": { - "message": "Base on system color scheme" - }, - "belowPlayer": { - "message": "Below player" - }, - "black": { - "message": "Black" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "Block all" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Blue" - }, - "blueGray": { - "message": "Blue gray" - }, - "bluelight": { - "message": "Bluelight" - }, - "brown": { - "message": "Brown" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser version" - }, - "bubbles": { - "message": "Bubbles" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Buttons" - }, - "cancel": { - "message": "Cancel" - }, - "categories": { - "message": "Categories" - }, - "channel": { - "message": "Channel" - }, - "channels": { - "message": "Channels" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" - }, - "collapsed": { - "message": "Collapsed" - }, - "comments": { - "message": "Comments" - }, - "confirmationBeforeClosing": { - "message": "Confirmation before closing" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Custom JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Dark" - }, - "darkTheme": { - "message": "Dark theme" - }, - "dateAndTime": { - "message": "Date & time" - }, - "dawn": { - "message": "Dawn" - }, - "decreasePlaybackSpeed": { - "message": "Decrease playback speed" - }, - "decreaseVolume": { - "message": "Decrease volume" - }, - "deepOrange": { - "message": "Deep orange" - }, - "deepPurple": { - "message": "Deep purple" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Default channel tab" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Delete YouTube cookies" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Description" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Desert" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Developer options" - }, - "device": { - "message": "Device" - }, - "dim": { - "message": "Dim" - }, - "disabled": { - "message": "Disabled" - }, - "dislike": { - "message": "Dislike" - }, - "doNotChange": { - "message": "Don't change" - }, - "donate": { - "message": "Donate" - }, - "draggable": { - "message": "Draggable" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Empty" - }, - "enabled": { - "message": "Enabled" - }, - "enabledForced": { - "message": "Enabled (forced)" - }, - "expanded": { - "message": "Expanded" - }, - "exportSettings": { - "message": "Export settings" - }, - "extension": { - "message": "Extension" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filters" - }, - "fitToWindow": { - "message": "Fit to window" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Footer" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, - "forcedTheaterMode": { - "message": "Forced theater mode" - }, - "forcedVolume": { - "message": "Forced volume" - }, - "foundABug": { - "message": "Found a bug?" - }, - "fullWindow": { - "message": "Full window" - }, - "general": { - "message": "General" - }, - "geoPreference": { - "message": "Geo Preference" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Go to search box" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Green" - }, - "hdThumbnail": { - "message": "HD thumbnail" - }, - "hdThumbnails": { - "message": "HD thumbnails" - }, - "header": { - "message": "Header" - }, - "hidden": { - "message": "Hidden" - }, - "hiddenOnVideoPage": { - "message": "Hidden on video page" - }, - "hideAnimatedThumbnails": { - "message": "Hide animated thumbnails" - }, - "hideAnnotations": { - "message": "Hide annotations" - }, - "hideCards": { - "message": "Hide cards" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Hide details" - }, - "hideEndscreen": { - "message": "Hide endscreen" - }, - "hideFeaturedContent": { - "message": "Hide featured content" - }, - "hideFooter": { - "message": "Hide footer" - }, - "hideGradientBottom": { - "message": "Hide shadow around player-bar" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Hide playlist" - }, - "hideRightButtons": { - "message": "Hide right buttons" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Hide «Scroll for details»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide 5 seconds skip animation" - }, - "hideThumbnailOverlay": { - "message": "Hide buttons on thumbnails" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Hide views count" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "History" - }, - "home": { - "message": "Home" - }, - "hover": { - "message": "Hover" - }, - "hoverOnVideoPage": { - "message": "Hover on video page" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" - }, - "icons": { - "message": "Icons" - }, - "iconsOnly": { - "message": "Icons only" - }, - "importSettings": { - "message": "Import settings" - }, - "improveLogo": { - "message": "Improve logo" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icon on YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube language" - }, - "improvedtubeVersion": { - "message": "ImprovedTube version" - }, - "increasePlaybackSpeed": { - "message": "Increase playback speed" - }, - "increaseVolume": { - "message": "Increase volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Languages" - }, - "legacyYoutube": { - "message": "Legacy YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Light" - }, - "lightBlue": { - "message": "Light blue" - }, - "lightGreen": { - "message": "Light green" - }, - "like": { - "message": "Like" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Lime" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "List" - }, - "liveChat": { - "message": "Live chat" - }, - "liveChatType": { - "message": "Live chat type" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Loudness normalization" - }, - "markWatchedVideos": { - "message": "Mark watched videos" - }, - "mixer": { - "message": "Mixer" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "My colors" - }, - "name": { - "message": "Name" - }, - "nativeMiniPlayer": { - "message": "Native mini player" - }, - "new": { - "message": "New" - }, - "nextVideo": { - "message": "Next video" - }, - "night": { - "message": "Night" - }, - "noActiveFeatures": { - "message": "No active features" - }, - "noOpenVideoTabs": { - "message": "No open video tabs" - }, - "none": { - "message": "None" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Old" - }, - "onAllVideos": { - "message": "On all videos" - }, - "onSubscribedChannels": { - "message": "On subscribed channels" - }, - "onlyActiveOnYoutube": { - "message": "Only active on YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "openPopupPlayer": { - "message": "Open video/playlist in a new window" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Other" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Permissions" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Pink" - }, - "plain": { - "message": "Plain" - }, - "platform": { - "message": "Platform" - }, - "playPause": { - "message": "Play / Pause" - }, - "playbackSpeed": { - "message": "Playback speed" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Player color" - }, - "playerSize": { - "message": "Player size" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "popupPlayer": { - "message": "Popup player" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Press any key or use mouse wheel." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Press any key or use mouse wheel" - }, - "previousVideo": { - "message": "Previous video" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "Purple" - }, - "quality": { - "message": "Quality" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Rate us" - }, - "red": { - "message": "Red" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Related videos" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Remove related search results" - }, - "repeat": { - "message": "Repeat" - }, - "reset": { - "message": "Reset" - }, - "resetAllSettings": { - "message": "Reset all settings" - }, - "resetAllShortcuts": { - "message": "Reset all shortcuts" - }, - "reverse": { - "message": "Reverse" - }, - "rotate": { - "message": "Rotate" - }, - "save": { - "message": "Save" - }, - "saveAs": { - "message": "Save as" - }, - "schedule": { - "message": "Schedule" - }, - "screen": { - "message": "Screen" - }, - "screenshot": { - "message": "Screenshot" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "Search" - }, - "searchBarOnly": { - "message": "Search bar only" - }, - "seekBackward10Seconds": { - "message": "Seek backward 10 seconds" - }, - "seekForward10Seconds": { - "message": "Seek forward 10 seconds" - }, - "seekNextChapter": { - "message": "Seek Next Chapter" - }, - "seekPreviousChapter": { - "message": "Seek Previous Chapter" - }, - "settings": { - "message": "Settings" - }, - "settingsSuccessfullyImported": { - "message": "Settings successfully imported" - }, - "shortcuts": { - "message": "Shortcuts" - }, - "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" - }, - "showChannelVideosCount": { - "message": "Show channel videos count" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Shuffle" - }, - "sidebar": { - "message": "Sidebar" - }, - "spacebar": { - "message": "Spacebar" - }, - "squaredUserImages": { - "message": "Squared user images" - }, - "static": { - "message": "Static" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Subscriptions" - }, - "subtitles": { - "message": "Subtitles" - }, - "sunset": { - "message": "Sunset" - }, - "sunsetToSunrise": { - "message": "Sunset to sunrise" - }, - "systemPeferenceDark": { - "message": "System peference: dark" - }, - "systemPeferenceLight": { - "message": "System peference: light" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Text color" - }, - "themes": { - "message": "Themes" - }, - "thisWillRemoveAllCookies": { - "message": "This will remove all cookies." - }, - "thisWillRemoveAllWatchedVideos": { - "message": "This will remove all watched videos." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "This will remove all YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "This will reset all settings." - }, - "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" - }, - "thumbnails": { - "message": "Thumbnails" - }, - "timeFrom": { - "message": "Time from" - }, - "timeTo": { - "message": "Time to" - }, - "todayAt": { - "message": "Today at" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle player controls" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Trailer autoplay" - }, - "translations": { - "message": "Translations" - }, - "transparentBackground": { - "message": "Transparent background" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Try to reload the page" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "Up next autoplay" - }, - "use24HourFormat": { - "message": "Use 24-hour format" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" - }, - "videoFormats": { - "message": "Video formats" - }, - "videos": { - "message": "Videos" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Watch later" - }, - "watchTime": { - "message": "Watch time" - }, - "whenTabIsChanged": { - "message": "When tab is changed" - }, - "white": { - "message": "White" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Yellow" - }, - "youtubeHeaderLeft": { - "message": "YouTube Header (left)" - }, - "youtubeHeaderRight": { - "message": "YouTube Header (right)" - }, - "youtubeHomePage": { - "message": "YouTube home page" - }, - "youtubeLanguage": { - "message": "YouTube language" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limits video quality to 1080p for h.264 codec" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "About" + }, + "accept": { + "message": "Accept" + }, + "activate": { + "message": "Activate" + }, + "activateCaptions": { + "message": "Activate captions" + }, + "activateFullscreen": { + "message": "Activate fullscreen" + }, + "activated": { + "message": "Activated" + }, + "activatedFeatures": { + "message": "Activated features" + }, + "activeFeatures": { + "message": "Active features" + }, + "addScrollToTop": { + "message": "Add «Scroll to top»" + }, + "ads": { + "message": "Ads" + }, + "all": { + "message": "All" + }, + "allow": { + "message": "Allow" + }, + "allow60fps": { + "message": "Allow 60fps" + }, + "alwaysActive": { + "message": "Always active" + }, + "alwaysShowProgressBar": { + "message": "Always show progress bar" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analyzer" + }, + "appearance": { + "message": "Appearance" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formats" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullscreen" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause when switching tabs" + }, + "autoplay": { + "message": "Autoplay" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Backup & reset" + }, + "baseOnSystemColorScheme": { + "message": "Base on system color scheme" + }, + "belowPlayer": { + "message": "Below player" + }, + "black": { + "message": "Black" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "Block all" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Blue" + }, + "blueGray": { + "message": "Blue gray" + }, + "bluelight": { + "message": "Bluelight" + }, + "brown": { + "message": "Brown" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser version" + }, + "bubbles": { + "message": "Bubbles" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Buttons" + }, + "cancel": { + "message": "Cancel" + }, + "categories": { + "message": "Categories" + }, + "channel": { + "message": "Channel" + }, + "channels": { + "message": "Channels" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Collapse of subscription sections" + }, + "collapsed": { + "message": "Collapsed" + }, + "comments": { + "message": "Comments" + }, + "confirmationBeforeClosing": { + "message": "Confirmation before closing" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Custom JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Dark" + }, + "darkTheme": { + "message": "Dark theme" + }, + "dateAndTime": { + "message": "Date & time" + }, + "dawn": { + "message": "Dawn" + }, + "decreasePlaybackSpeed": { + "message": "Decrease playback speed" + }, + "decreaseVolume": { + "message": "Decrease volume" + }, + "deepOrange": { + "message": "Deep orange" + }, + "deepPurple": { + "message": "Deep purple" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Default channel tab" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Delete YouTube cookies" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Description" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Desert" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Developer options" + }, + "device": { + "message": "Device" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Disabled" + }, + "dislike": { + "message": "Dislike" + }, + "doNotChange": { + "message": "Don't change" + }, + "donate": { + "message": "Donate" + }, + "draggable": { + "message": "Draggable" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Empty" + }, + "enabled": { + "message": "Enabled" + }, + "enabledForced": { + "message": "Enabled (forced)" + }, + "expanded": { + "message": "Expanded" + }, + "exportSettings": { + "message": "Export settings" + }, + "extension": { + "message": "Extension" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filters" + }, + "fitToWindow": { + "message": "Fit to window" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Footer" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, + "forcedTheaterMode": { + "message": "Forced theater mode" + }, + "forcedVolume": { + "message": "Forced volume" + }, + "foundABug": { + "message": "Found a bug?" + }, + "fullWindow": { + "message": "Full window" + }, + "general": { + "message": "General" + }, + "geoPreference": { + "message": "Geo Preference" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Go to search box" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Green" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD thumbnail" + }, + "header": { + "message": "Header" + }, + "hidden": { + "message": "Hidden" + }, + "hiddenOnVideoPage": { + "message": "Hidden on video page" + }, + "hideAnimatedThumbnails": { + "message": "Hide animated thumbnails" + }, + "hideAnnotations": { + "message": "Hide annotations" + }, + "hideCards": { + "message": "Hide cards" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Hide details" + }, + "hideEndscreen": { + "message": "Hide endscreen" + }, + "hideFeaturedContent": { + "message": "Hide featured content" + }, + "hideFooter": { + "message": "Hide footer" + }, + "hideGradientBottom": { + "message": "Hide shadow around player-bar" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Hide playlist" + }, + "hideRightButtons": { + "message": "Hide right buttons" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Hide «Scroll for details»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide 5 seconds skip animation" + }, + "hideThumbnailOverlay": { + "message": "Hide buttons on thumbnails" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Hide views count" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "History" + }, + "home": { + "message": "Home" + }, + "hover": { + "message": "Hover" + }, + "hoverOnVideoPage": { + "message": "Hover on video page" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "How long ago the video was uploaded" + }, + "icons": { + "message": "Icons" + }, + "iconsOnly": { + "message": "Icons only" + }, + "importSettings": { + "message": "Import settings" + }, + "improveLogo": { + "message": "Improve logo" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube icon on YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube language" + }, + "improvedtubeVersion": { + "message": "ImprovedTube version" + }, + "increasePlaybackSpeed": { + "message": "Increase playback speed" + }, + "increaseVolume": { + "message": "Increase volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Languages" + }, + "legacyYoutube": { + "message": "Legacy YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Light" + }, + "lightBlue": { + "message": "Light blue" + }, + "lightGreen": { + "message": "Light green" + }, + "like": { + "message": "Like" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Lime" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "List" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Live chat type" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Loudness normalization" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Mark watched videos" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "My colors" + }, + "name": { + "message": "Name" + }, + "nativeMiniPlayer": { + "message": "Native mini player" + }, + "new": { + "message": "New" + }, + "nextVideo": { + "message": "Next video" + }, + "night": { + "message": "Night" + }, + "noActiveFeatures": { + "message": "No active features" + }, + "noOpenVideoTabs": { + "message": "No open video tabs" + }, + "none": { + "message": "None" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Old" + }, + "onAllVideos": { + "message": "On all videos" + }, + "onSubscribedChannels": { + "message": "On subscribed channels" + }, + "onlyActiveOnYoutube": { + "message": "Only active on YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "openPopupPlayer": { + "message": "Open video/playlist in a new window" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Other" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Permissions" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Pink" + }, + "plain": { + "message": "Plain" + }, + "platform": { + "message": "Platform" + }, + "playPause": { + "message": "Play / Pause" + }, + "playbackSpeed": { + "message": "Playback speed" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Player color" + }, + "playerSize": { + "message": "Player size" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "popupPlayer": { + "message": "Popup player" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Press any key or use mouse wheel." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Press any key or use mouse wheel" + }, + "previousVideo": { + "message": "Previous video" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "Purple" + }, + "quality": { + "message": "Quality" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Rate us" + }, + "red": { + "message": "Red" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Related videos" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Remove related search results" + }, + "repeat": { + "message": "Repeat" + }, + "reset": { + "message": "Reset" + }, + "resetAllSettings": { + "message": "Reset all settings" + }, + "resetAllShortcuts": { + "message": "Reset all shortcuts" + }, + "reverse": { + "message": "Reverse" + }, + "rotate": { + "message": "Rotate" + }, + "save": { + "message": "Save" + }, + "saveAs": { + "message": "Save as" + }, + "schedule": { + "message": "Schedule" + }, + "screen": { + "message": "Screen" + }, + "screenshot": { + "message": "Screenshot" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Search" + }, + "searchBarOnly": { + "message": "Search bar only" + }, + "seekBackward10Seconds": { + "message": "Seek backward 10 seconds" + }, + "seekForward10Seconds": { + "message": "Seek forward 10 seconds" + }, + "seekNextChapter": { + "message": "Seek Next Chapter" + }, + "seekPreviousChapter": { + "message": "Seek Previous Chapter" + }, + "settings": { + "message": "Settings" + }, + "settingsSuccessfullyImported": { + "message": "Settings successfully imported" + }, + "shortcuts": { + "message": "Shortcuts" + }, + "showCardsOnMouseHover": { + "message": "Show cards on mouse hover" + }, + "showChannelVideosCount": { + "message": "Show channel videos count" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Shuffle" + }, + "sidebar": { + "message": "Sidebar" + }, + "spacebar": { + "message": "Spacebar" + }, + "squaredUserImages": { + "message": "Squared user images" + }, + "static": { + "message": "Static" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Subscriptions" + }, + "subtitles": { + "message": "Subtitles" + }, + "sunset": { + "message": "Sunset" + }, + "sunsetToSunrise": { + "message": "Sunset to sunrise" + }, + "systemPeferenceDark": { + "message": "System peference: dark" + }, + "systemPeferenceLight": { + "message": "System peference: light" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Text color" + }, + "themes": { + "message": "Themes" + }, + "thisWillRemoveAllCookies": { + "message": "This will remove all cookies." + }, + "thisWillRemoveAllWatchedVideos": { + "message": "This will remove all watched videos." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "This will remove all YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "This will reset all settings." + }, + "thisWillResetAllShortcuts": { + "message": "This will reset all shortcuts" + }, + "thumbnails": { + "message": "Thumbnails" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Time from" + }, + "timeTo": { + "message": "Time to" + }, + "todayAt": { + "message": "Today at" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle player controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Trailer autoplay" + }, + "translations": { + "message": "Translations" + }, + "transparentBackground": { + "message": "Transparent background" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Try to reload the page" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Up next autoplay" + }, + "use24HourFormat": { + "message": "Use 24-hour format" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video description will be expanded to get the name of the category" + }, + "videoFormats": { + "message": "Video formats" + }, + "videos": { + "message": "Videos" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Watch later" + }, + "watchTime": { + "message": "Watch time" + }, + "whenTabIsChanged": { + "message": "When tab is changed" + }, + "white": { + "message": "White" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Yellow" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (left)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (right)" + }, + "youtubeHomePage": { + "message": "YouTube home page" + }, + "youtubeLanguage": { + "message": "YouTube language" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limits video quality to 1080p for h.264 codec" + } } \ No newline at end of file diff --git a/_locales/es/messages.json b/_locales/es/messages.json index fa740a3d8..4a3f19cad 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -1,971 +1,986 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Acerca de" - }, - "accept": { - "message": "Aceptar" - }, - "activate": { - "message": "Activar" - }, - "activateCaptions": { - "message": "Activar subtítulos" - }, - "activateFullscreen": { - "message": "Activar pantalla completa" - }, - "activated": { - "message": "Activado" - }, - "activatedFeatures": { - "message": "Características activadas" - }, - "activeFeatures": { - "message": "Activar características" - }, - "addScrollToTop": { - "message": "Añadir «Volver arriba»" - }, - "ads": { - "message": "Ads" - }, - "all": { - "message": "Todo" - }, - "allow": { - "message": "Permitir" - }, - "allow60fps": { - "message": "Permitir 60fps" - }, - "alwaysActive": { - "message": "Siempre activo" - }, - "alwaysShowProgressBar": { - "message": "Siempre mostrar barra de progreso" - }, - "amber": { - "message": "Ámbar" - }, - "analyzer": { - "message": "Analizador" - }, - "appearance": { - "message": "Apariencia" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formatos de audio" - }, - "auto": { - "message": "Automático" - }, - "autoFullscreen": { - "message": "Pantalla completa automática" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausar al cambiar de pestaña" - }, - "autoplay": { - "message": "Reproducción automática" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Backup & reset" - }, - "baseOnSystemColorScheme": { - "message": "Según tema del sistema" - }, - "belowPlayer": { - "message": "Debajo del reproductor" - }, - "black": { - "message": "Negro" - }, - "blacklist": { - "message": "Lista negra" - }, - "blockAll": { - "message": "Bloquear todo" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Azul" - }, - "blueGray": { - "message": "Gris azulado" - }, - "bluelight": { - "message": "Luz azul" - }, - "brown": { - "message": "Marrón" - }, - "browser": { - "message": "Navegador" - }, - "browserVersion": { - "message": "Version del navegador" - }, - "bubbles": { - "message": "Burbujas" - }, - "bug": { - "message": "Error (Bug)" - }, - "buttons": { - "message": "Botones" - }, - "cancel": { - "message": "Cancelar" - }, - "categories": { - "message": "Categorías" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canales" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Portapapeles" - }, - "codecH264": { - "message": "Códec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Compactar sección de suscripciones" - }, - "collapsed": { - "message": "Compacto" - }, - "comments": { - "message": "Comentarios" - }, - "confirmationBeforeClosing": { - "message": "Confirmar antes de cerrar" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Núcleos" - }, - "cropChapterTitles": { - "message": "Recortar título de capítulos" - }, - "customCss": { - "message": "CSS personalizado" - }, - "customJs": { - "message": "JS personalizado" - }, - "customMiniPlayer": { - "message": "Mini-Reproductor personalizado" - }, - "cyan": { - "message": "Cian" - }, - "dark": { - "message": "Oscuro" - }, - "darkTheme": { - "message": "Tema oscuro" - }, - "dateAndTime": { - "message": "Fecha y hora" - }, - "dawn": { - "message": "Amanecer" - }, - "decreasePlaybackSpeed": { - "message": "Disminuir velocidad de reproducción" - }, - "decreaseVolume": { - "message": "Bajar volumen" - }, - "deepOrange": { - "message": "Naranja profundo" - }, - "deepPurple": { - "message": "Violeta profundo" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Pestaña del canal por defecto" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Borrar cookies de YouTube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Descripción" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Desierto" - }, - "details": { - "message": "Detalles" - }, - "developerOptions": { - "message": "Opciones de desarrollador" - }, - "device": { - "message": "Dispositivo" - }, - "dim": { - "message": "Oscuro" - }, - "disabled": { - "message": "Desactivado" - }, - "dislike": { - "message": "Dislike" - }, - "doNotChange": { - "message": "No cambiar" - }, - "donate": { - "message": "Donar" - }, - "draggable": { - "message": "Arrastrable" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Vacío" - }, - "enabled": { - "message": "Activado" - }, - "enabledForced": { - "message": "Activado (forzado)" - }, - "expanded": { - "message": "Expandido" - }, - "exportSettings": { - "message": "Exportar configuración" - }, - "extension": { - "message": "Extensión" - }, - "file": { - "message": "Archivo" - }, - "filters": { - "message": "Filtros" - }, - "fitToWindow": { - "message": "Ajustar a la ventana" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Fuente" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Pie" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Forzar velocidad de reproducción" - }, - "forcedTheaterMode": { - "message": "Forzar modo teatro" - }, - "forcedVolume": { - "message": "Forzar volumen" - }, - "foundABug": { - "message": "¿Encontraste un error (bug)?" - }, - "fullWindow": { - "message": "Pantalla completa" - }, - "general": { - "message": "General" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Ir a barra de búsqueda" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura HD" - }, - "hdThumbnails": { - "message": "Miniaturas HD" - }, - "header": { - "message": "Encabezado" - }, - "hidden": { - "message": "Oculto" - }, - "hiddenOnVideoPage": { - "message": "Oculto en la página de video" - }, - "hideAnimatedThumbnails": { - "message": "Ocultar miniaturas animadas" - }, - "hideAnnotations": { - "message": "Ocultar anotaciones" - }, - "hideCards": { - "message": "Ocultar tarjetas" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Ocultar detalles" - }, - "hideEndscreen": { - "message": "Ocultar pantalla final" - }, - "hideFeaturedContent": { - "message": "Ocultar contenido destacado" - }, - "hideFooter": { - "message": "Ocultar pie de página" - }, - "hideGradientBottom": { - "message": "Ocultar parte inferior degradada" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Ocultar playlist" - }, - "hideRightButtons": { - "message": "Ocultar botones de la derecha" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Ocultar «Desliza hacia abajo para ver más detalles»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Ocultar contador de visitas" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "Historial" - }, - "home": { - "message": "Inicio" - }, - "hover": { - "message": "Cursor sobre (hover)" - }, - "hoverOnVideoPage": { - "message": "Cursor sobre (hover) en página de video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Hace cuánto tiempo se subió el video" - }, - "icons": { - "message": "Iconos" - }, - "iconsOnly": { - "message": "Solo iconos" - }, - "importSettings": { - "message": "Importar configuración" - }, - "improveLogo": { - "message": "Mejorar logo" - }, - "improvedtubeIconOnYoutube": { - "message": "Icono ImprovedTube en YouTube" - }, - "improvedtubeLanguage": { - "message": "Idioma de ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Version de ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Aumentar velocidad de reproducción" - }, - "increaseVolume": { - "message": "Subir volumen" - }, - "indigo": { - "message": "Índigo" - }, - "items": { - "message": "Items" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Idiomas" - }, - "legacyYoutube": { - "message": " YouTube antiguo" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Claro" - }, - "lightBlue": { - "message": "Azul claro" - }, - "lightGreen": { - "message": "Verde claro" - }, - "like": { - "message": "Like" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Lima" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Chat en directo" - }, - "liveChatType": { - "message": "Tipo de chat en directo" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Normalización de volumen" - }, - "markWatchedVideos": { - "message": "Marcar videos vistos" - }, - "mixer": { - "message": "Mezclador" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Mis colores" - }, - "name": { - "message": "Nombre" - }, - "nativeMiniPlayer": { - "message": "Mini-Reproductor nativo" - }, - "new": { - "message": "Nuevo" - }, - "nextVideo": { - "message": "Siguiente video" - }, - "night": { - "message": "Noche" - }, - "noActiveFeatures": { - "message": "Sin características activas" - }, - "noOpenVideoTabs": { - "message": "Sin pestañas de video abiertas" - }, - "none": { - "message": "Ninguno" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Viejo" - }, - "onAllVideos": { - "message": "En todos los videos" - }, - "onSubscribedChannels": { - "message": "En canales suscritos" - }, - "onlyActiveOnYoutube": { - "message": "Solo activo en YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Solo una pestaña reproduciendo" - }, - "orange": { - "message": "Naranja" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Otro" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Permisos" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Plano" - }, - "platform": { - "message": "Plataforma" - }, - "playPause": { - "message": "Reproducir / pausar" - }, - "playbackSpeed": { - "message": "Velocidad de reproducción" - }, - "player": { - "message": "Reproductor" - }, - "playerColor": { - "message": "Color del reproductor" - }, - "playerSize": { - "message": "Tamaño del reproductor" - }, - "playlist": { - "message": "Lista de reproducción" - }, - "playlists": { - "message": "Listas de reproducción" - }, - "popupPlayer": { - "message": "Reproductor emergente" - }, - "position": { - "message": "Posición" - }, - "pressAnyKeyOrScroll": { - "message": "Aprieta una tecla o haz scroll" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Aprieta una tecla o usa la rueda del ratón" - }, - "previousVideo": { - "message": "Reproducir video anterior" - }, - "primaryColor": { - "message": "Color Primario" - }, - "purple": { - "message": "Morado" - }, - "quality": { - "message": "Calidad" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Califíquenos" - }, - "red": { - "message": "Rojo" - }, - "redDislikeButton": { - "message": "Mostrar el botón de dislike de color rojo" - }, - "relatedVideos": { - "message": "Vídeos relacionados" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Quitar resultados relacionados" - }, - "repeat": { - "message": "Repetir" - }, - "reset": { - "message": "Reiniciar" - }, - "resetAllSettings": { - "message": "Restablecer todos los ajustes" - }, - "resetAllShortcuts": { - "message": "Restablecer todos los atajos" - }, - "reverse": { - "message": "Revertir" - }, - "rotate": { - "message": "Rotar" - }, - "save": { - "message": "Guardar" - }, - "saveAs": { - "message": "Guardar como" - }, - "schedule": { - "message": "Programar" - }, - "screen": { - "message": "Pantalla" - }, - "screenshot": { - "message": "Captura de pantalla" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "Búsqueda" - }, - "searchBarOnly": { - "message": "Solo barra de búsqueda" - }, - "seekBackward10Seconds": { - "message": "Retroceder 10 segundos" - }, - "seekForward10Seconds": { - "message": "Adelantar 10 segundos" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Ajustes" - }, - "settingsSuccessfullyImported": { - "message": "Ajustes importados correctamente" - }, - "shortcuts": { - "message": "Atajos" - }, - "showCardsOnMouseHover": { - "message": "Mostrar tarjetas al pasar el ratón" - }, - "showChannelVideosCount": { - "message": "Mostrar recuento de videos del canal" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Aleatorio" - }, - "sidebar": { - "message": "Barra lateral" - }, - "spacebar": { - "message": "Espacio" - }, - "squaredUserImages": { - "message": "Fotos de perfil cuadradas" - }, - "static": { - "message": "Estático" - }, - "statsForNerds": { - "message": "Mostrar estadísticas para Nerds" - }, - "step": { - "message": "Paso" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Estilo" - }, - "styles": { - "message": "Estilos" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Suscripciones" - }, - "subtitles": { - "message": "Subtítulos" - }, - "sunset": { - "message": "Atardecer" - }, - "sunsetToSunrise": { - "message": "De atardecer a amanecer" - }, - "systemPeferenceDark": { - "message": "Preferencia del sistema: Oscuro" - }, - "systemPeferenceLight": { - "message": "Preferencia del sistema: Claro" - }, - "teal": { - "message": "Verde azulado" - }, - "textColor": { - "message": "Color del texto" - }, - "themes": { - "message": "Temas" - }, - "thisWillRemoveAllCookies": { - "message": "Esto borrará todas las cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Esto borrará todas las cookies de YouTube" - }, - "thisWillResetAllSettings": { - "message": "Esto restablecerá todos los ajustes" - }, - "thisWillResetAllShortcuts": { - "message": "Esto restablecerá todos los atajos" - }, - "thumbnails": { - "message": "Miniaturas" - }, - "timeFrom": { - "message": "Desde" - }, - "timeTo": { - "message": "Hasta" - }, - "todayAt": { - "message": "Hoy a las" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Reproducción automática de trailer" - }, - "translations": { - "message": "Traducciones" - }, - "transparentBackground": { - "message": "Fondo transparente" - }, - "trending": { - "message": "Tendencias" - }, - "tryToReloadThePage": { - "message": "Trata de recargar la página" - }, - "type": { - "message": "Tipo" - }, - "upNextAutoplay": { - "message": "Siguiente reproducción automática" - }, - "use24HourFormat": { - "message": "Usar formato 24 horas" - }, - "version": { - "message": "Versión" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La descripción del video se expandirá para obtener el nombre de la categoría." - }, - "videoFormats": { - "message": "Formatos de video" - }, - "videos": { - "message": "Videos" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volumen" - }, - "watchLater": { - "message": "Ver más tarde" - }, - "watchTime": { - "message": "Visualizaciones" - }, - "whenTabIsChanged": { - "message": "Al cambiar de pestaña" - }, - "white": { - "message": "Blanco" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Amarillo" - }, - "youtubeHeaderLeft": { - "message": "Encabezado YouTube (izq)" - }, - "youtubeHeaderRight": { - "message": "Encabezado YouTube (der)" - }, - "youtubeHomePage": { - "message": "Página de inicio de YouTube" - }, - "youtubeLanguage": { - "message": "Idioma de YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limita calidad de video a 1080p para el codec h.264" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Acerca de" + }, + "accept": { + "message": "Aceptar" + }, + "activate": { + "message": "Activar" + }, + "activateCaptions": { + "message": "Activar subtítulos" + }, + "activateFullscreen": { + "message": "Activar pantalla completa" + }, + "activated": { + "message": "Activado" + }, + "activatedFeatures": { + "message": "Características activadas" + }, + "activeFeatures": { + "message": "Activar características" + }, + "addScrollToTop": { + "message": "Añadir «Volver arriba»" + }, + "ads": { + "message": "Ads" + }, + "all": { + "message": "Todo" + }, + "allow": { + "message": "Permitir" + }, + "allow60fps": { + "message": "Permitir 60fps" + }, + "alwaysActive": { + "message": "Siempre activo" + }, + "alwaysShowProgressBar": { + "message": "Siempre mostrar barra de progreso" + }, + "amber": { + "message": "Ámbar" + }, + "analyzer": { + "message": "Analizador" + }, + "appearance": { + "message": "Apariencia" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formatos de audio" + }, + "auto": { + "message": "Automático" + }, + "autoFullscreen": { + "message": "Pantalla completa automática" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausar al cambiar de pestaña" + }, + "autoplay": { + "message": "Reproducción automática" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Backup & reset" + }, + "baseOnSystemColorScheme": { + "message": "Según tema del sistema" + }, + "belowPlayer": { + "message": "Debajo del reproductor" + }, + "black": { + "message": "Negro" + }, + "blacklist": { + "message": "Lista negra" + }, + "blockAll": { + "message": "Bloquear todo" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Azul" + }, + "blueGray": { + "message": "Gris azulado" + }, + "bluelight": { + "message": "Luz azul" + }, + "brown": { + "message": "Marrón" + }, + "browser": { + "message": "Navegador" + }, + "browserVersion": { + "message": "Version del navegador" + }, + "bubbles": { + "message": "Burbujas" + }, + "bug": { + "message": "Error (Bug)" + }, + "buttons": { + "message": "Botones" + }, + "cancel": { + "message": "Cancelar" + }, + "categories": { + "message": "Categorías" + }, + "channel": { + "message": "Canal" + }, + "channels": { + "message": "Canales" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Portapapeles" + }, + "codecH264": { + "message": "Códec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Compactar sección de suscripciones" + }, + "collapsed": { + "message": "Compacto" + }, + "comments": { + "message": "Comentarios" + }, + "confirmationBeforeClosing": { + "message": "Confirmar antes de cerrar" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Núcleos" + }, + "cropChapterTitles": { + "message": "Recortar título de capítulos" + }, + "customCss": { + "message": "CSS personalizado" + }, + "customJs": { + "message": "JS personalizado" + }, + "customMiniPlayer": { + "message": "Mini-Reproductor personalizado" + }, + "cyan": { + "message": "Cian" + }, + "dark": { + "message": "Oscuro" + }, + "darkTheme": { + "message": "Tema oscuro" + }, + "dateAndTime": { + "message": "Fecha y hora" + }, + "dawn": { + "message": "Amanecer" + }, + "decreasePlaybackSpeed": { + "message": "Disminuir velocidad de reproducción" + }, + "decreaseVolume": { + "message": "Bajar volumen" + }, + "deepOrange": { + "message": "Naranja profundo" + }, + "deepPurple": { + "message": "Violeta profundo" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Pestaña del canal por defecto" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Borrar cookies de YouTube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Descripción" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Desierto" + }, + "details": { + "message": "Detalles" + }, + "developerOptions": { + "message": "Opciones de desarrollador" + }, + "device": { + "message": "Dispositivo" + }, + "dim": { + "message": "Oscuro" + }, + "disabled": { + "message": "Desactivado" + }, + "dislike": { + "message": "Dislike" + }, + "doNotChange": { + "message": "No cambiar" + }, + "donate": { + "message": "Donar" + }, + "draggable": { + "message": "Arrastrable" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Vacío" + }, + "enabled": { + "message": "Activado" + }, + "enabledForced": { + "message": "Activado (forzado)" + }, + "expanded": { + "message": "Expandido" + }, + "exportSettings": { + "message": "Exportar configuración" + }, + "extension": { + "message": "Extensión" + }, + "file": { + "message": "Archivo" + }, + "filters": { + "message": "Filtros" + }, + "fitToWindow": { + "message": "Ajustar a la ventana" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Fuente" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Pie" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Forzar velocidad de reproducción" + }, + "forcedTheaterMode": { + "message": "Forzar modo teatro" + }, + "forcedVolume": { + "message": "Forzar volumen" + }, + "foundABug": { + "message": "¿Encontraste un error (bug)?" + }, + "fullWindow": { + "message": "Pantalla completa" + }, + "general": { + "message": "General" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Ir a barra de búsqueda" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "Miniatura HD" + }, + "header": { + "message": "Encabezado" + }, + "hidden": { + "message": "Oculto" + }, + "hiddenOnVideoPage": { + "message": "Oculto en la página de video" + }, + "hideAnimatedThumbnails": { + "message": "Ocultar miniaturas animadas" + }, + "hideAnnotations": { + "message": "Ocultar anotaciones" + }, + "hideCards": { + "message": "Ocultar tarjetas" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Ocultar detalles" + }, + "hideEndscreen": { + "message": "Ocultar pantalla final" + }, + "hideFeaturedContent": { + "message": "Ocultar contenido destacado" + }, + "hideFooter": { + "message": "Ocultar pie de página" + }, + "hideGradientBottom": { + "message": "Ocultar parte inferior degradada" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Ocultar playlist" + }, + "hideRightButtons": { + "message": "Ocultar botones de la derecha" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Ocultar «Desliza hacia abajo para ver más detalles»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Ocultar contador de visitas" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Historial" + }, + "home": { + "message": "Inicio" + }, + "hover": { + "message": "Cursor sobre (hover)" + }, + "hoverOnVideoPage": { + "message": "Cursor sobre (hover) en página de video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Hace cuánto tiempo se subió el video" + }, + "icons": { + "message": "Iconos" + }, + "iconsOnly": { + "message": "Solo iconos" + }, + "importSettings": { + "message": "Importar configuración" + }, + "improveLogo": { + "message": "Mejorar logo" + }, + "improvedtubeIconOnYoutube": { + "message": "Icono ImprovedTube en YouTube" + }, + "improvedtubeLanguage": { + "message": "Idioma de ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Version de ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Aumentar velocidad de reproducción" + }, + "increaseVolume": { + "message": "Subir volumen" + }, + "indigo": { + "message": "Índigo" + }, + "items": { + "message": "Items" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Idiomas" + }, + "legacyYoutube": { + "message": " YouTube antiguo" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Claro" + }, + "lightBlue": { + "message": "Azul claro" + }, + "lightGreen": { + "message": "Verde claro" + }, + "like": { + "message": "Like" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Lima" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Chat en directo" + }, + "liveChatType": { + "message": "Tipo de chat en directo" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Normalización de volumen" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Marcar videos vistos" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mezclador" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Mis colores" + }, + "name": { + "message": "Nombre" + }, + "nativeMiniPlayer": { + "message": "Mini-Reproductor nativo" + }, + "new": { + "message": "Nuevo" + }, + "nextVideo": { + "message": "Siguiente video" + }, + "night": { + "message": "Noche" + }, + "noActiveFeatures": { + "message": "Sin características activas" + }, + "noOpenVideoTabs": { + "message": "Sin pestañas de video abiertas" + }, + "none": { + "message": "Ninguno" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Viejo" + }, + "onAllVideos": { + "message": "En todos los videos" + }, + "onSubscribedChannels": { + "message": "En canales suscritos" + }, + "onlyActiveOnYoutube": { + "message": "Solo activo en YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Solo una pestaña reproduciendo" + }, + "orange": { + "message": "Naranja" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Otro" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Permisos" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Plano" + }, + "platform": { + "message": "Plataforma" + }, + "playPause": { + "message": "Reproducir / pausar" + }, + "playbackSpeed": { + "message": "Velocidad de reproducción" + }, + "player": { + "message": "Reproductor" + }, + "playerColor": { + "message": "Color del reproductor" + }, + "playerSize": { + "message": "Tamaño del reproductor" + }, + "playlist": { + "message": "Lista de reproducción" + }, + "playlists": { + "message": "Listas de reproducción" + }, + "popupPlayer": { + "message": "Reproductor emergente" + }, + "position": { + "message": "Posición" + }, + "pressAnyKeyOrScroll": { + "message": "Aprieta una tecla o haz scroll" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Aprieta una tecla o usa la rueda del ratón" + }, + "previousVideo": { + "message": "Reproducir video anterior" + }, + "primaryColor": { + "message": "Color Primario" + }, + "purple": { + "message": "Morado" + }, + "quality": { + "message": "Calidad" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Califíquenos" + }, + "red": { + "message": "Rojo" + }, + "redDislikeButton": { + "message": "Mostrar el botón de dislike de color rojo" + }, + "relatedVideos": { + "message": "Vídeos relacionados" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Quitar resultados relacionados" + }, + "repeat": { + "message": "Repetir" + }, + "reset": { + "message": "Reiniciar" + }, + "resetAllSettings": { + "message": "Restablecer todos los ajustes" + }, + "resetAllShortcuts": { + "message": "Restablecer todos los atajos" + }, + "reverse": { + "message": "Revertir" + }, + "rotate": { + "message": "Rotar" + }, + "save": { + "message": "Guardar" + }, + "saveAs": { + "message": "Guardar como" + }, + "schedule": { + "message": "Programar" + }, + "screen": { + "message": "Pantalla" + }, + "screenshot": { + "message": "Captura de pantalla" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Búsqueda" + }, + "searchBarOnly": { + "message": "Solo barra de búsqueda" + }, + "seekBackward10Seconds": { + "message": "Retroceder 10 segundos" + }, + "seekForward10Seconds": { + "message": "Adelantar 10 segundos" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Ajustes" + }, + "settingsSuccessfullyImported": { + "message": "Ajustes importados correctamente" + }, + "shortcuts": { + "message": "Atajos" + }, + "showCardsOnMouseHover": { + "message": "Mostrar tarjetas al pasar el ratón" + }, + "showChannelVideosCount": { + "message": "Mostrar recuento de videos del canal" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Aleatorio" + }, + "sidebar": { + "message": "Barra lateral" + }, + "spacebar": { + "message": "Espacio" + }, + "squaredUserImages": { + "message": "Fotos de perfil cuadradas" + }, + "static": { + "message": "Estático" + }, + "statsForNerds": { + "message": "Mostrar estadísticas para Nerds" + }, + "step": { + "message": "Paso" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Estilo" + }, + "styles": { + "message": "Estilos" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Suscripciones" + }, + "subtitles": { + "message": "Subtítulos" + }, + "sunset": { + "message": "Atardecer" + }, + "sunsetToSunrise": { + "message": "De atardecer a amanecer" + }, + "systemPeferenceDark": { + "message": "Preferencia del sistema: Oscuro" + }, + "systemPeferenceLight": { + "message": "Preferencia del sistema: Claro" + }, + "teal": { + "message": "Verde azulado" + }, + "textColor": { + "message": "Color del texto" + }, + "themes": { + "message": "Temas" + }, + "thisWillRemoveAllCookies": { + "message": "Esto borrará todas las cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Esto borrará todas las cookies de YouTube" + }, + "thisWillResetAllSettings": { + "message": "Esto restablecerá todos los ajustes" + }, + "thisWillResetAllShortcuts": { + "message": "Esto restablecerá todos los atajos" + }, + "thumbnails": { + "message": "Miniaturas" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Desde" + }, + "timeTo": { + "message": "Hasta" + }, + "todayAt": { + "message": "Hoy a las" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Reproducción automática de trailer" + }, + "translations": { + "message": "Traducciones" + }, + "transparentBackground": { + "message": "Fondo transparente" + }, + "trending": { + "message": "Tendencias" + }, + "tryToReloadThePage": { + "message": "Trata de recargar la página" + }, + "type": { + "message": "Tipo" + }, + "upNextAutoplay": { + "message": "Siguiente reproducción automática" + }, + "use24HourFormat": { + "message": "Usar formato 24 horas" + }, + "version": { + "message": "Versión" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "La descripción del video se expandirá para obtener el nombre de la categoría." + }, + "videoFormats": { + "message": "Formatos de video" + }, + "videos": { + "message": "Videos" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volumen" + }, + "watchLater": { + "message": "Ver más tarde" + }, + "watchTime": { + "message": "Visualizaciones" + }, + "whenTabIsChanged": { + "message": "Al cambiar de pestaña" + }, + "white": { + "message": "Blanco" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Amarillo" + }, + "youtubeHeaderLeft": { + "message": "Encabezado YouTube (izq)" + }, + "youtubeHeaderRight": { + "message": "Encabezado YouTube (der)" + }, + "youtubeHomePage": { + "message": "Página de inicio de YouTube" + }, + "youtubeLanguage": { + "message": "Idioma de YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limita calidad de video a 1080p para el codec h.264" + } } \ No newline at end of file diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index ae1a74a0c..0b4a128c5 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -1,974 +1,989 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "À propos" - }, - "accept": { - "message": "Accepter" - }, - "activate": { - "message": "Activer" - }, - "activateCaptions": { - "message": "Activer les sous-titres" - }, - "activateFullscreen": { - "message": "Activer le plein écran" - }, - "activated": { - "message": "Activé" - }, - "activatedFeatures": { - "message": "Fonctionnalités activées" - }, - "activeFeatures": { - "message": "Fonctionnalités actives" - }, - "addScrollToTop": { - "message": "Ajouter « Remonter en haut »" - }, - "ads": { - "message": "Publicités" - }, - "all": { - "message": "Voir tout" - }, - "allow": { - "message": "Permettre" - }, - "allow60fps": { - "message": "Jouer à 60 fps" - }, - "alwaysActive": { - "message": "Toujours activé" - }, - "alwaysShowProgressBar": { - "message": "Toujours afficher la barre de progression" - }, - "amber": { - "message": "Ambre" - }, - "analyzer": { - "message": "Analyser" - }, - "appearance": { - "message": "Apparence" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formats de fichier audio" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Plein écran automatique" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pause automatique lors d'un changement d'onglet" - }, - "autoplay": { - "message": "Lecture automatique" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Sauvegarde et réinitialisation" - }, - "baseOnSystemColorScheme": { - "message": "Selon les paramètres du système" - }, - "belowPlayer": { - "message": "Sous le player" - }, - "black": { - "message": "Noir" - }, - "blacklist": { - "message": "Liste noire" - }, - "blockAll": { - "message": "Tout bloquer" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Bleu" - }, - "blueGray": { - "message": "Gris-bleu" - }, - "bluelight": { - "message": "Bleu pâle" - }, - "brown": { - "message": "Brun" - }, - "browser": { - "message": "Navigateur web" - }, - "browserVersion": { - "message": "Version du navigateur web" - }, - "bubbles": { - "message": "Bulles" - }, - "bug": { - "message": "Bogue" - }, - "buttons": { - "message": "Boutons" - }, - "cancel": { - "message": "Retour" - }, - "categories": { - "message": "Catégories" - }, - "channel": { - "message": "Chaîne" - }, - "channels": { - "message": "Chaînes" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Presse-papiers" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Réduire la section des abonnements" - }, - "collapsed": { - "message": "Réduire" - }, - "comments": { - "message": "Commentaires" - }, - "confirmationBeforeClosing": { - "message": "Confirmation avant la fermeture" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Noyaux" - }, - "cropChapterTitles": { - "message": "Couper les titres des chapitres" - }, - "customCss": { - "message": "CSS customisé" - }, - "customJs": { - "message": "JS customisé" - }, - "customMiniPlayer": { - "message": "Mini-lecteur personnalisé" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Sombre" - }, - "darkTheme": { - "message": "Thème sombre" - }, - "dateAndTime": { - "message": "Date et temps" - }, - "dawn": { - "message": "Aube" - }, - "decreasePlaybackSpeed": { - "message": "Réduire la vitesse de lecture" - }, - "decreaseVolume": { - "message": "Réduire le volume" - }, - "deepOrange": { - "message": "Orange foncé" - }, - "deepPurple": { - "message": "Violet foncé" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Onglet par défaut d'une chaîne" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Supprimer les cookies YouTube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Description" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Desert" - }, - "details": { - "message": "Détails" - }, - "developerOptions": { - "message": "Options de développeur" - }, - "device": { - "message": "Appareil" - }, - "dim": { - "message": "Assombrir" - }, - "disabled": { - "message": "Désactivé" - }, - "dislike": { - "message": "Je n'aime pas" - }, - "doNotChange": { - "message": "Ne pas changer" - }, - "donate": { - "message": "Donner" - }, - "draggable": { - "message": "Draggable" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Courriel" - }, - "empty": { - "message": "Vide" - }, - "enabled": { - "message": "Activé" - }, - "enabledForced": { - "message": "Activé (forcé)" - }, - "expanded": { - "message": "Étendu" - }, - "exportSettings": { - "message": "Exporter les réglages" - }, - "extension": { - "message": "Extension" - }, - "file": { - "message": "Fichier" - }, - "filters": { - "message": "Filtres" - }, - "fitToWindow": { - "message": "Ajuster à la fenêtre" - }, - "flash": { - "message": "Clignoter" - }, - "font": { - "message": "Police" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Bas de page" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Vitesse de lecture forcée" - }, - "forcedTheaterMode": { - "message": "Forcer le mode théâtre" - }, - "forcedVolume": { - "message": "Forcer le volume" - }, - "foundABug": { - "message": "Un bogue?" - }, - "fullWindow": { - "message": "Fenêtre pleine" - }, - "general": { - "message": "Général" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Barre de recherche" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Vert" - }, - "hdThumbnail": { - "message": "Miniature HD" - }, - "hdThumbnails": { - "message": "Miniatures HD" - }, - "header": { - "message": "Tête de page" - }, - "hidden": { - "message": "Caché" - }, - "hiddenOnVideoPage": { - "message": "Caché sur la page de la vidéo" - }, - "hideAnimatedThumbnails": { - "message": "Miniatures sans animation" - }, - "hideAnnotations": { - "message": "Cacher les annotations" - }, - "hideCards": { - "message": "Cacher les cartes" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Cacher les détails" - }, - "hideEndscreen": { - "message": "Cacher l'écran de fin" - }, - "hideFeaturedContent": { - "message": "Cacher le contenu recommandé" - }, - "hideFooter": { - "message": "Cacher le pied de page" - }, - "hideGradientBottom": { - "message": "Masquer le dégradé du bas" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Cacher la liste de lecture" - }, - "hideRightButtons": { - "message": "Cacher les boutons à droite" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Cacher « Faire défiler pour les détails »" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Voir le compte des vues" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "Historique" - }, - "home": { - "message": "Accueil" - }, - "hover": { - "message": "Survoler" - }, - "hoverOnVideoPage": { - "message": "Survoler la page de la vidéo" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Depuis combien de temps la vidéo a été téléversé?" - }, - "icons": { - "message": "Icônes" - }, - "iconsOnly": { - "message": "Uniquement les icônes" - }, - "importSettings": { - "message": "Importer les réglages" - }, - "improveLogo": { - "message": "Améliorer le logo" - }, - "improvedtubeIconOnYoutube": { - "message": "Afficher l'icône ImprovedTube sur YouTube" - }, - "improvedtubeLanguage": { - "message": "Langue d'ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Version d'ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Accélérer la vitesse de lecture" - }, - "increaseVolume": { - "message": "Augmenter le volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Objets" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Langues" - }, - "legacyYoutube": { - "message": "Ancienne version de Youtube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Clair" - }, - "lightBlue": { - "message": "Bleu clair" - }, - "lightGreen": { - "message": "Vert clair" - }, - "like": { - "message": "J'aime" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "J'aime" - }, - "lime": { - "message": "Citron vert" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Chat en direct" - }, - "liveChatType": { - "message": "Type de chat en direct" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Normalisation de l'intensité sonore" - }, - "markWatchedVideos": { - "message": "Marquer les vidéos déjà visionnées" - }, - "mixer": { - "message": "Mélangeur de volume" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Mes couleurs" - }, - "name": { - "message": "Nom" - }, - "nativeMiniPlayer": { - "message": "Mini-lecteur natif" - }, - "new": { - "message": "Nouveau" - }, - "nextVideo": { - "message": "Prochaine vidéo" - }, - "night": { - "message": "Nuit" - }, - "noActiveFeatures": { - "message": "Pas de fonctionalité active" - }, - "noOpenVideoTabs": { - "message": "Aucun onglet de vidéo ouvert" - }, - "none": { - "message": "Aucun" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Vieux" - }, - "onAllVideos": { - "message": "Pour toutes les vidéos" - }, - "onSubscribedChannels": { - "message": "Sur les chaînes auxquelles je suis abonné" - }, - "onlyActiveOnYoutube": { - "message": "Uniquement actif sur YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Une seule instance à la fois" - }, - "openPopupPlayer": { - "message": "Ouvrir Video/playlist dans un nouvelle onglet" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Autres" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Permissions" - }, - "pictureInPicture": { - "message": "Image dans l'image" - }, - "pink": { - "message": "Rose" - }, - "plain": { - "message": "Ordinaire" - }, - "platform": { - "message": "Platforme" - }, - "playPause": { - "message": "Lire / Pause" - }, - "playbackSpeed": { - "message": "Vitesse de lecture" - }, - "player": { - "message": "Lecteur" - }, - "playerColor": { - "message": "Couleur du lecteur" - }, - "playerSize": { - "message": "Taille du lecteur" - }, - "playlist": { - "message": "Liste de lecture" - }, - "playlists": { - "message": "Listes de lecture" - }, - "popupPlayer": { - "message": "Détacher le lecteur" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." - }, - "previousVideo": { - "message": "Vidéo précédente" - }, - "primaryColor": { - "message": "Couleur primaire" - }, - "purple": { - "message": "Violet" - }, - "quality": { - "message": "Qualité" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Nous évaluer" - }, - "red": { - "message": "Rouge" - }, - "redDislikeButton": { - "message": "Afficher la couleur rouge du bouton Je n'aime pas" - }, - "relatedVideos": { - "message": "Vidéos associés" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Supprimer les résultats de recherche associés" - }, - "repeat": { - "message": "Lire en boucle" - }, - "reset": { - "message": "Réintialiser" - }, - "resetAllSettings": { - "message": "Annuler réglages" - }, - "resetAllShortcuts": { - "message": "Annuler raccourcis" - }, - "reverse": { - "message": "Inverser" - }, - "rotate": { - "message": "Faire pivoter la vidéo" - }, - "save": { - "message": "Ok" - }, - "saveAs": { - "message": "Sauvegarder sous" - }, - "schedule": { - "message": "Plage horaire" - }, - "screen": { - "message": "Écran" - }, - "screenshot": { - "message": "Capture d'écran" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "Rechercher" - }, - "searchBarOnly": { - "message": "Uniquement la barre de recherche" - }, - "seekBackward10Seconds": { - "message": "Reculer de 10 secondes" - }, - "seekForward10Seconds": { - "message": "Avancer de 10 secondes" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Réglages" - }, - "settingsSuccessfullyImported": { - "message": "Importation des réglages réussie" - }, - "shortcuts": { - "message": "Raccourcis" - }, - "showCardsOnMouseHover": { - "message": "Afficher les cartes au survol de la souris" - }, - "showChannelVideosCount": { - "message": "Afficher le nombre de vidéos de la chaîne" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Aléatoire" - }, - "sidebar": { - "message": "Barre latérale" - }, - "spacebar": { - "message": "Barre d'espace" - }, - "squaredUserImages": { - "message": "Images des utilisateurs carrées" - }, - "static": { - "message": "Statique" - }, - "statsForNerds": { - "message": "Statistiques pour nerd" - }, - "step": { - "message": "Étape" - }, - "stop": { - "message": "Arrêter" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Abonnements" - }, - "subtitles": { - "message": "Activer les sous-titres" - }, - "sunset": { - "message": "Coucher de soleil" - }, - "sunsetToSunrise": { - "message": "Du coucher au lever du Soleil" - }, - "systemPeferenceDark": { - "message": "Préférence système : sombre" - }, - "systemPeferenceLight": { - "message": "Préférence système : clair" - }, - "teal": { - "message": "Sarcelle" - }, - "textColor": { - "message": "Couleur du texte" - }, - "themes": { - "message": "Thèmes" - }, - "thisWillRemoveAllCookies": { - "message": "Supprimer tous les cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Supprimer tous les cookies Youtube." - }, - "thisWillResetAllSettings": { - "message": "Réintialiser les réglages." - }, - "thisWillResetAllShortcuts": { - "message": "Réintialiser les raccourcis." - }, - "thumbnails": { - "message": "Miniature" - }, - "timeFrom": { - "message": "Temps de" - }, - "timeTo": { - "message": "Temps au" - }, - "todayAt": { - "message": "Aujourd'hui à" - }, - "toggleAutoplay": { - "message": "Basculer lecture auto" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Démarrage automatique des annonces" - }, - "translations": { - "message": "Traductions" - }, - "transparentBackground": { - "message": "Arrière-plan transparent" - }, - "trending": { - "message": "Tendances" - }, - "tryToReloadThePage": { - "message": "Essayez de rafraîchir la page" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "Prochaine lecture automatique" - }, - "use24HourFormat": { - "message": "Utiliser le format 24 h" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Vidéo" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La description de la vidéo sera développée pour obtenir le nom de la catégorie" - }, - "videoFormats": { - "message": "Formats de vidéo" - }, - "videos": { - "message": "Videos" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "À regarder plus tard" - }, - "watchTime": { - "message": "Temps de visionnage" - }, - "whenTabIsChanged": { - "message": "Quand l'onglet change" - }, - "white": { - "message": "Blanc" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Jaune" - }, - "youtubeHeaderLeft": { - "message": "En-tête YouTube (à gauche)" - }, - "youtubeHeaderRight": { - "message": "En-tête YouTube (à droite)" - }, - "youtubeHomePage": { - "message": "Page d'accueil de YouTube" - }, - "youtubeLanguage": { - "message": "Langue de YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limite la qualité vidéo à 1080p pour le codec h.264" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "À propos" + }, + "accept": { + "message": "Accepter" + }, + "activate": { + "message": "Activer" + }, + "activateCaptions": { + "message": "Activer les sous-titres" + }, + "activateFullscreen": { + "message": "Activer le plein écran" + }, + "activated": { + "message": "Activé" + }, + "activatedFeatures": { + "message": "Fonctionnalités activées" + }, + "activeFeatures": { + "message": "Fonctionnalités actives" + }, + "addScrollToTop": { + "message": "Ajouter « Remonter en haut »" + }, + "ads": { + "message": "Publicités" + }, + "all": { + "message": "Voir tout" + }, + "allow": { + "message": "Permettre" + }, + "allow60fps": { + "message": "Jouer à 60 fps" + }, + "alwaysActive": { + "message": "Toujours activé" + }, + "alwaysShowProgressBar": { + "message": "Toujours afficher la barre de progression" + }, + "amber": { + "message": "Ambre" + }, + "analyzer": { + "message": "Analyser" + }, + "appearance": { + "message": "Apparence" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formats de fichier audio" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Plein écran automatique" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pause automatique lors d'un changement d'onglet" + }, + "autoplay": { + "message": "Lecture automatique" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Sauvegarde et réinitialisation" + }, + "baseOnSystemColorScheme": { + "message": "Selon les paramètres du système" + }, + "belowPlayer": { + "message": "Sous le player" + }, + "black": { + "message": "Noir" + }, + "blacklist": { + "message": "Liste noire" + }, + "blockAll": { + "message": "Tout bloquer" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Bleu" + }, + "blueGray": { + "message": "Gris-bleu" + }, + "bluelight": { + "message": "Bleu pâle" + }, + "brown": { + "message": "Brun" + }, + "browser": { + "message": "Navigateur web" + }, + "browserVersion": { + "message": "Version du navigateur web" + }, + "bubbles": { + "message": "Bulles" + }, + "bug": { + "message": "Bogue" + }, + "buttons": { + "message": "Boutons" + }, + "cancel": { + "message": "Retour" + }, + "categories": { + "message": "Catégories" + }, + "channel": { + "message": "Chaîne" + }, + "channels": { + "message": "Chaînes" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Presse-papiers" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Réduire la section des abonnements" + }, + "collapsed": { + "message": "Réduire" + }, + "comments": { + "message": "Commentaires" + }, + "confirmationBeforeClosing": { + "message": "Confirmation avant la fermeture" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Noyaux" + }, + "cropChapterTitles": { + "message": "Couper les titres des chapitres" + }, + "customCss": { + "message": "CSS customisé" + }, + "customJs": { + "message": "JS customisé" + }, + "customMiniPlayer": { + "message": "Mini-lecteur personnalisé" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Sombre" + }, + "darkTheme": { + "message": "Thème sombre" + }, + "dateAndTime": { + "message": "Date et temps" + }, + "dawn": { + "message": "Aube" + }, + "decreasePlaybackSpeed": { + "message": "Réduire la vitesse de lecture" + }, + "decreaseVolume": { + "message": "Réduire le volume" + }, + "deepOrange": { + "message": "Orange foncé" + }, + "deepPurple": { + "message": "Violet foncé" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Onglet par défaut d'une chaîne" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Supprimer les cookies YouTube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Description" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Desert" + }, + "details": { + "message": "Détails" + }, + "developerOptions": { + "message": "Options de développeur" + }, + "device": { + "message": "Appareil" + }, + "dim": { + "message": "Assombrir" + }, + "disabled": { + "message": "Désactivé" + }, + "dislike": { + "message": "Je n'aime pas" + }, + "doNotChange": { + "message": "Ne pas changer" + }, + "donate": { + "message": "Donner" + }, + "draggable": { + "message": "Draggable" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Courriel" + }, + "empty": { + "message": "Vide" + }, + "enabled": { + "message": "Activé" + }, + "enabledForced": { + "message": "Activé (forcé)" + }, + "expanded": { + "message": "Étendu" + }, + "exportSettings": { + "message": "Exporter les réglages" + }, + "extension": { + "message": "Extension" + }, + "file": { + "message": "Fichier" + }, + "filters": { + "message": "Filtres" + }, + "fitToWindow": { + "message": "Ajuster à la fenêtre" + }, + "flash": { + "message": "Clignoter" + }, + "font": { + "message": "Police" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Bas de page" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Vitesse de lecture forcée" + }, + "forcedTheaterMode": { + "message": "Forcer le mode théâtre" + }, + "forcedVolume": { + "message": "Forcer le volume" + }, + "foundABug": { + "message": "Un bogue?" + }, + "fullWindow": { + "message": "Fenêtre pleine" + }, + "general": { + "message": "Général" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Barre de recherche" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Vert" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "Miniature HD" + }, + "header": { + "message": "Tête de page" + }, + "hidden": { + "message": "Caché" + }, + "hiddenOnVideoPage": { + "message": "Caché sur la page de la vidéo" + }, + "hideAnimatedThumbnails": { + "message": "Miniatures sans animation" + }, + "hideAnnotations": { + "message": "Cacher les annotations" + }, + "hideCards": { + "message": "Cacher les cartes" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Cacher les détails" + }, + "hideEndscreen": { + "message": "Cacher l'écran de fin" + }, + "hideFeaturedContent": { + "message": "Cacher le contenu recommandé" + }, + "hideFooter": { + "message": "Cacher le pied de page" + }, + "hideGradientBottom": { + "message": "Masquer le dégradé du bas" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Cacher la liste de lecture" + }, + "hideRightButtons": { + "message": "Cacher les boutons à droite" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Cacher « Faire défiler pour les détails »" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Voir le compte des vues" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Historique" + }, + "home": { + "message": "Accueil" + }, + "hover": { + "message": "Survoler" + }, + "hoverOnVideoPage": { + "message": "Survoler la page de la vidéo" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Depuis combien de temps la vidéo a été téléversé?" + }, + "icons": { + "message": "Icônes" + }, + "iconsOnly": { + "message": "Uniquement les icônes" + }, + "importSettings": { + "message": "Importer les réglages" + }, + "improveLogo": { + "message": "Améliorer le logo" + }, + "improvedtubeIconOnYoutube": { + "message": "Afficher l'icône ImprovedTube sur YouTube" + }, + "improvedtubeLanguage": { + "message": "Langue d'ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Version d'ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Accélérer la vitesse de lecture" + }, + "increaseVolume": { + "message": "Augmenter le volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Objets" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Langues" + }, + "legacyYoutube": { + "message": "Ancienne version de Youtube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Clair" + }, + "lightBlue": { + "message": "Bleu clair" + }, + "lightGreen": { + "message": "Vert clair" + }, + "like": { + "message": "J'aime" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "J'aime" + }, + "lime": { + "message": "Citron vert" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Chat en direct" + }, + "liveChatType": { + "message": "Type de chat en direct" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Normalisation de l'intensité sonore" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Marquer les vidéos déjà visionnées" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mélangeur de volume" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Mes couleurs" + }, + "name": { + "message": "Nom" + }, + "nativeMiniPlayer": { + "message": "Mini-lecteur natif" + }, + "new": { + "message": "Nouveau" + }, + "nextVideo": { + "message": "Prochaine vidéo" + }, + "night": { + "message": "Nuit" + }, + "noActiveFeatures": { + "message": "Pas de fonctionalité active" + }, + "noOpenVideoTabs": { + "message": "Aucun onglet de vidéo ouvert" + }, + "none": { + "message": "Aucun" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Vieux" + }, + "onAllVideos": { + "message": "Pour toutes les vidéos" + }, + "onSubscribedChannels": { + "message": "Sur les chaînes auxquelles je suis abonné" + }, + "onlyActiveOnYoutube": { + "message": "Uniquement actif sur YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Une seule instance à la fois" + }, + "openPopupPlayer": { + "message": "Ouvrir Video/playlist dans un nouvelle onglet" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Autres" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Permissions" + }, + "pictureInPicture": { + "message": "Image dans l'image" + }, + "pink": { + "message": "Rose" + }, + "plain": { + "message": "Ordinaire" + }, + "platform": { + "message": "Platforme" + }, + "playPause": { + "message": "Lire / Pause" + }, + "playbackSpeed": { + "message": "Vitesse de lecture" + }, + "player": { + "message": "Lecteur" + }, + "playerColor": { + "message": "Couleur du lecteur" + }, + "playerSize": { + "message": "Taille du lecteur" + }, + "playlist": { + "message": "Liste de lecture" + }, + "playlists": { + "message": "Listes de lecture" + }, + "popupPlayer": { + "message": "Détacher le lecteur" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." + }, + "previousVideo": { + "message": "Vidéo précédente" + }, + "primaryColor": { + "message": "Couleur primaire" + }, + "purple": { + "message": "Violet" + }, + "quality": { + "message": "Qualité" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Nous évaluer" + }, + "red": { + "message": "Rouge" + }, + "redDislikeButton": { + "message": "Afficher la couleur rouge du bouton Je n'aime pas" + }, + "relatedVideos": { + "message": "Vidéos associés" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Supprimer les résultats de recherche associés" + }, + "repeat": { + "message": "Lire en boucle" + }, + "reset": { + "message": "Réintialiser" + }, + "resetAllSettings": { + "message": "Annuler réglages" + }, + "resetAllShortcuts": { + "message": "Annuler raccourcis" + }, + "reverse": { + "message": "Inverser" + }, + "rotate": { + "message": "Faire pivoter la vidéo" + }, + "save": { + "message": "Ok" + }, + "saveAs": { + "message": "Sauvegarder sous" + }, + "schedule": { + "message": "Plage horaire" + }, + "screen": { + "message": "Écran" + }, + "screenshot": { + "message": "Capture d'écran" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Rechercher" + }, + "searchBarOnly": { + "message": "Uniquement la barre de recherche" + }, + "seekBackward10Seconds": { + "message": "Reculer de 10 secondes" + }, + "seekForward10Seconds": { + "message": "Avancer de 10 secondes" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Réglages" + }, + "settingsSuccessfullyImported": { + "message": "Importation des réglages réussie" + }, + "shortcuts": { + "message": "Raccourcis" + }, + "showCardsOnMouseHover": { + "message": "Afficher les cartes au survol de la souris" + }, + "showChannelVideosCount": { + "message": "Afficher le nombre de vidéos de la chaîne" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Aléatoire" + }, + "sidebar": { + "message": "Barre latérale" + }, + "spacebar": { + "message": "Barre d'espace" + }, + "squaredUserImages": { + "message": "Images des utilisateurs carrées" + }, + "static": { + "message": "Statique" + }, + "statsForNerds": { + "message": "Statistiques pour nerd" + }, + "step": { + "message": "Étape" + }, + "stop": { + "message": "Arrêter" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Abonnements" + }, + "subtitles": { + "message": "Activer les sous-titres" + }, + "sunset": { + "message": "Coucher de soleil" + }, + "sunsetToSunrise": { + "message": "Du coucher au lever du Soleil" + }, + "systemPeferenceDark": { + "message": "Préférence système : sombre" + }, + "systemPeferenceLight": { + "message": "Préférence système : clair" + }, + "teal": { + "message": "Sarcelle" + }, + "textColor": { + "message": "Couleur du texte" + }, + "themes": { + "message": "Thèmes" + }, + "thisWillRemoveAllCookies": { + "message": "Supprimer tous les cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Supprimer tous les cookies Youtube." + }, + "thisWillResetAllSettings": { + "message": "Réintialiser les réglages." + }, + "thisWillResetAllShortcuts": { + "message": "Réintialiser les raccourcis." + }, + "thumbnails": { + "message": "Miniature" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Temps de" + }, + "timeTo": { + "message": "Temps au" + }, + "todayAt": { + "message": "Aujourd'hui à" + }, + "toggleAutoplay": { + "message": "Basculer lecture auto" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Démarrage automatique des annonces" + }, + "translations": { + "message": "Traductions" + }, + "transparentBackground": { + "message": "Arrière-plan transparent" + }, + "trending": { + "message": "Tendances" + }, + "tryToReloadThePage": { + "message": "Essayez de rafraîchir la page" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Prochaine lecture automatique" + }, + "use24HourFormat": { + "message": "Utiliser le format 24 h" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Vidéo" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "La description de la vidéo sera développée pour obtenir le nom de la catégorie" + }, + "videoFormats": { + "message": "Formats de vidéo" + }, + "videos": { + "message": "Videos" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "À regarder plus tard" + }, + "watchTime": { + "message": "Temps de visionnage" + }, + "whenTabIsChanged": { + "message": "Quand l'onglet change" + }, + "white": { + "message": "Blanc" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Jaune" + }, + "youtubeHeaderLeft": { + "message": "En-tête YouTube (à gauche)" + }, + "youtubeHeaderRight": { + "message": "En-tête YouTube (à droite)" + }, + "youtubeHomePage": { + "message": "Page d'accueil de YouTube" + }, + "youtubeLanguage": { + "message": "Langue de YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limite la qualité vidéo à 1080p pour le codec h.264" + } } \ No newline at end of file diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index 5629652e0..ef1ec994e 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -1,971 +1,986 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "के बारे में" - }, - "accept": { - "message": "स्वीकार" - }, - "activate": { - "message": "सक्रिय" - }, - "activateCaptions": { - "message": "कैप्शन सक्रिय करें" - }, - "activateFullscreen": { - "message": "पूर्णस्क्रीन सक्रिय करें" - }, - "activated": { - "message": "सक्रिय" - }, - "activatedFeatures": { - "message": "सक्रिय विशेषताएं" - }, - "activeFeatures": { - "message": "सक्रिय विशेषताएं" - }, - "addScrollToTop": { - "message": "«शीर्ष पर स्क्रॉल करें» जोड़ें" - }, - "ads": { - "message": "विज्ञापन" - }, - "all": { - "message": "सब" - }, - "allow": { - "message": "अनुमति" - }, - "allow60fps": { - "message": "60fps की अनुमति दें" - }, - "alwaysActive": { - "message": "हमेशा सक्रिय" - }, - "alwaysShowProgressBar": { - "message": "हमेशा प्रगति बार दिखाएं" - }, - "amber": { - "message": "अंबर" - }, - "analyzer": { - "message": "विश्लेषक" - }, - "appearance": { - "message": "दिखावट" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "ऑडियो" - }, - "audioFormats": { - "message": "ऑडियो प्रारूप" - }, - "auto": { - "message": "खुद ब खुद" - }, - "autoFullscreen": { - "message": "स्वत: पूर्ण स्क्रीन" - }, - "autopauseWhenSwitchingTabs": { - "message": "टैब स्विच करते समय ऑटोपॉज" - }, - "autoplay": { - "message": "स्वत: प्ले" - }, - "backgroundColor": { - "message": "पीछे का रंग" - }, - "backgroundOpacity": { - "message": "पृष्ठभूमि अस्पष्टता" - }, - "backupAndReset": { - "message": "बैकअप पुनर्स्थापित करना" - }, - "baseOnSystemColorScheme": { - "message": "सिस्टम रंग योजना के आधार पर" - }, - "belowPlayer": { - "message": "प्लेयर के नीचे" - }, - "black": { - "message": "काला" - }, - "blacklist": { - "message": "काला सूची में डालना" - }, - "blockAll": { - "message": "सभी को अवरोधित करें" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "नीला" - }, - "blueGray": { - "message": "नीला स्लेटी" - }, - "bluelight": { - "message": "नीली बत्ती" - }, - "brown": { - "message": "भूरा" - }, - "browser": { - "message": "ब्राउज़र" - }, - "browserVersion": { - "message": "ब्राउज़र संस्करण" - }, - "bubbles": { - "message": "बुलबुले" - }, - "bug": { - "message": "बग" - }, - "buttons": { - "message": "बटन" - }, - "cancel": { - "message": "रद्द" - }, - "categories": { - "message": "श्रेणियाँ" - }, - "channel": { - "message": "चैनल" - }, - "channels": { - "message": "चैनल" - }, - "characterEdgeStyle": { - "message": "कैरेक्टर एज स्टाइल" - }, - "clipboard": { - "message": "क्लिपबोर्ड" - }, - "codecH264": { - "message": "कोडक H264" - }, - "collapseOfSubscriptionSections": { - "message": "सदस्यता वर्गों का पतन" - }, - "collapsed": { - "message": "संक्षिप्त" - }, - "comments": { - "message": "टिप्पणियाँ" - }, - "confirmationBeforeClosing": { - "message": "बंद करने से पहले पुष्टि" - }, - "cookies": { - "message": "कुकीज़" - }, - "cores": { - "message": "कोर" - }, - "cropChapterTitles": { - "message": "फसल अध्याय के शीर्षक" - }, - "customCss": { - "message": "कस्टम सीएसएस" - }, - "customJs": { - "message": "कस्टम जेएस" - }, - "customMiniPlayer": { - "message": "कस्टम मिनी प्लेयर" - }, - "cyan": { - "message": "सियान" - }, - "dark": { - "message": "अंधेरा" - }, - "darkTheme": { - "message": "डार्क थीम" - }, - "dateAndTime": { - "message": "दिनांक और समय" - }, - "dawn": { - "message": "भोर" - }, - "decreasePlaybackSpeed": { - "message": "पार्श्व गति में कमी" - }, - "decreaseVolume": { - "message": "ध्वनि कम" - }, - "deepOrange": { - "message": "गहरा नारंगी" - }, - "deepPurple": { - "message": "गहरा बैंगनी" - }, - "default": { - "message": "डिफ़ॉल्ट" - }, - "defaultChannelTab": { - "message": "डिफ़ॉल्ट चैनल टैब" - }, - "defaultContentCountry": { - "message": "डिफॉल्ट विषय देश" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "यूट्यूब कुकीज़ हटाएं" - }, - "depressed": { - "message": "उदास" - }, - "description": { - "message": "विवरण" - }, - "description_ext": { - "message": "YouTube को व्यवस्थित एवं स्मार्ट बनाएं! यूट्यूब वीडियो कलर एड स्किप वॉल्यूम स्पीड चैनल टूल स्टाइल एचडी विज्ञापन एडब्लॉकर टैग कीवर्ड प्लेलिस्ट" - }, - "desert": { - "message": "रेगिस्तान" - }, - "details": { - "message": "विवरण" - }, - "developerOptions": { - "message": "डेवलपर विकल्प" - }, - "device": { - "message": "युक्ति" - }, - "dim": { - "message": "मंद" - }, - "disabled": { - "message": "विकलांग" - }, - "dislike": { - "message": "नापसन्द" - }, - "doNotChange": { - "message": "मत बदलो" - }, - "donate": { - "message": "दान" - }, - "draggable": { - "message": "खींचने योग्य" - }, - "dropShadow": { - "message": "परछाई डालना" - }, - "email": { - "message": "ईमेल" - }, - "empty": { - "message": "खाली" - }, - "enabled": { - "message": "सक्रिय" - }, - "enabledForced": { - "message": "सक्रिय(मजबूर)" - }, - "expanded": { - "message": "विस्तारित" - }, - "exportSettings": { - "message": "निर्यात सेटिंग्स" - }, - "extension": { - "message": "एक्सटेंशन" - }, - "file": { - "message": "फ़ाइल" - }, - "filters": { - "message": "फिल्टर" - }, - "fitToWindow": { - "message": "स्क्रीन फिट" - }, - "flash": { - "message": "चमक" - }, - "font": { - "message": "लिपि" - }, - "fontColor": { - "message": "लिपि का रंग" - }, - "fontFamily": { - "message": "लिपीओ का काि संग्रह" - }, - "fontOpacity": { - "message": "लिपि की अस्पष्टता" - }, - "fontSize": { - "message": "लिपीओ का आकार" - }, - "footer": { - "message": "पाद लेख" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "जबरदस्ती वीडियो शुरू से प्ले करें" - }, - "forcedPlaybackSpeed": { - "message": "जबरन पार्श्व गति" - }, - "forcedTheaterMode": { - "message": "जबरन थिएटर मोड" - }, - "forcedVolume": { - "message": "जबरन ध्वनि" - }, - "foundABug": { - "message": "बग मिला?" - }, - "fullWindow": { - "message": "पूर्ण स्क्रीन" - }, - "general": { - "message": "सामान्य" - }, - "github": { - "message": "गिटहब" - }, - "goToSearchBox": { - "message": "सर्च बॉक्स पर जाएं" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "जी पी यू" - }, - "green": { - "message": "हरा" - }, - "hdThumbnail": { - "message": "एच डी थंबनेल" - }, - "hdThumbnails": { - "message": "एच डी थंबनेल" - }, - "header": { - "message": "हैडर" - }, - "hidden": { - "message": "छिपा हुआ" - }, - "hiddenOnVideoPage": { - "message": "वीडियो पेज पर छिपा हुआ" - }, - "hideAnimatedThumbnails": { - "message": "वीडियो पेज पर छिपा हुआ" - }, - "hideAnnotations": { - "message": "एनोटेशन छुपाएं" - }, - "hideCards": { - "message": "पत्ते छिपाओ" - }, - "hideCountryCode": { - "message": "देश कोड छुपाएं" - }, - "hideDate": { - "message": "तारीख छुपाएं" - }, - "hideDetails": { - "message": "जानकारी छिपाएँ" - }, - "hideEndscreen": { - "message": "अंत स्क्रीन छिपाएँ" - }, - "hideFeaturedContent": { - "message": "विशेषताओं को छिपाएँ" - }, - "hideFooter": { - "message": "पाद छिपाएँ" - }, - "hideGradientBottom": { - "message": "ग्रेडिएंट बॉटम छुपाएं" - }, - "hideMoreButton": { - "message": "अधिक बटन छुपाएं" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "प्लेलिस्ट छिपाएं" - }, - "hideRightButtons": { - "message": "दाएं बटन छुपाएं" - }, - "hideSaveButton": { - "message": "सहेजें बटन छुपाएं" - }, - "hideScrollForDetails": { - "message": "छिपाएँ «विवरण के लिए स्क्रॉल»" - }, - "hideShareButton": { - "message": "शेयर बटन छुपाएं" - }, - "hideSkipOverlay": { - "message": "स्किप ओवरले छुपाएं" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "व्यू काउंट छिपाएं" - }, - "hideVoiceSearchButton": { - "message": "ध्वनि खोज बटन छुपाएं" - }, - "history": { - "message": "इतिहास" - }, - "home": { - "message": "घर" - }, - "hover": { - "message": "होवर" - }, - "hoverOnVideoPage": { - "message": "वीडियो पेज पर होवर" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "वीडियो कितनी देर पहले अपलोड किया गया था" - }, - "icons": { - "message": "प्रतीक" - }, - "iconsOnly": { - "message": "केवल प्रतीक" - }, - "importSettings": { - "message": "सेटिंग आयात करना" - }, - "improveLogo": { - "message": "लोगो सुधारो" - }, - "improvedtubeIconOnYoutube": { - "message": "यूट्यूब पर बेहतर आइकन" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube भाषा" - }, - "improvedtubeVersion": { - "message": "ImprovedTube संस्करण" - }, - "increasePlaybackSpeed": { - "message": "प्लेबैक स्पीड बढ़ाएं" - }, - "increaseVolume": { - "message": "ध्वनि बढ़ाएं" - }, - "indigo": { - "message": "नील" - }, - "items": { - "message": "आइटम" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "बोली" - }, - "legacyYoutube": { - "message": "विरासत यूट्यूब" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "हलका" - }, - "lightBlue": { - "message": "हल्का नीला" - }, - "lightGreen": { - "message": "हल्का हरा" - }, - "like": { - "message": "पसंद" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "को यह पसंद है" - }, - "lime": { - "message": "पीला हरा रंग" - }, - "limitPageWidth": { - "message": "पृष्ठ की चौड़ाई सीमित करें" - }, - "list": { - "message": "सूची" - }, - "liveChat": { - "message": "सीधी बातचीत" - }, - "liveChatType": { - "message": "लाइव चैट प्रकार" - }, - "location": { - "message": "स्थान" - }, - "loudnessNormalization": { - "message": "जोर से सामान्य होना" - }, - "markWatchedVideos": { - "message": "चिह्नित वीडियो देखे गए" - }, - "mixer": { - "message": "मिक्सर" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "मेरे रंग" - }, - "name": { - "message": "नाम" - }, - "nativeMiniPlayer": { - "message": "मूल निवासी मिनी प्लेयर" - }, - "new": { - "message": "नया" - }, - "nextVideo": { - "message": "अगला वीडियो" - }, - "night": { - "message": "रात" - }, - "noActiveFeatures": { - "message": "कोई सक्रिय सुविधाएँ नहीं" - }, - "noOpenVideoTabs": { - "message": "कोई खुला वीडियो टैब नहीं" - }, - "none": { - "message": "कोई नहीं" - }, - "normal": { - "message": "साधारण" - }, - "old": { - "message": "पुराना" - }, - "onAllVideos": { - "message": "सभी वीडियो पर" - }, - "onSubscribedChannels": { - "message": "सदस्यता प्राप्त चैनलों पर" - }, - "onlyActiveOnYoutube": { - "message": "केवल यूट्यूब पर सक्रिय है" - }, - "onlyOnePlayerInstancePlaying": { - "message": "केवल एक प्लेयर का चल रहा है" - }, - "orange": { - "message": "नारंगी रंग" - }, - "os": { - "message": "ओ एस" - }, - "other": { - "message": "अन्य" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "अनुमतियां" - }, - "pictureInPicture": { - "message": "चित्र में चित्र" - }, - "pink": { - "message": "गुलाबी" - }, - "plain": { - "message": "सादा" - }, - "platform": { - "message": "मंच" - }, - "playPause": { - "message": "प्ले / ठहराव" - }, - "playbackSpeed": { - "message": "प्लेबैक स्पीड" - }, - "player": { - "message": "प्लेयर" - }, - "playerColor": { - "message": "प्लेयर रंग" - }, - "playerSize": { - "message": "प्लेयर आकार" - }, - "playlist": { - "message": "प्लेलिस्ट" - }, - "playlists": { - "message": "प्लेलिस्ट" - }, - "popupPlayer": { - "message": "पॉप अप प्लेयर" - }, - "position": { - "message": "स्थान" - }, - "pressAnyKeyOrScroll": { - "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" - }, - "previousVideo": { - "message": "पिछला वीडियो" - }, - "primaryColor": { - "message": "प्राथमिक रंग" - }, - "purple": { - "message": "बैंगनी" - }, - "quality": { - "message": "गुणवत्ता" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "हमें रेटिंग दें" - }, - "red": { - "message": "लाल" - }, - "redDislikeButton": { - "message": "नापसंद बटन लाल रंग दिखाएं" - }, - "relatedVideos": { - "message": "संबंधित वीडियो" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "संबंधित खोज परिणाम निकालें" - }, - "repeat": { - "message": "दोहराना" - }, - "reset": { - "message": "रीसेट" - }, - "resetAllSettings": { - "message": "सभी सेटिंग्स को रीसेट" - }, - "resetAllShortcuts": { - "message": "सभी शॉर्टकट रीसेट करें" - }, - "reverse": { - "message": "उलटना" - }, - "rotate": { - "message": "घुमाएँ" - }, - "save": { - "message": "सहेजें" - }, - "saveAs": { - "message": "के रूप रक्षित करें" - }, - "schedule": { - "message": "अनुसूची" - }, - "screen": { - "message": "स्क्रीन" - }, - "screenshot": { - "message": "स्क्रीनशॉट" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "खोज" - }, - "searchBarOnly": { - "message": "केवल बार खोजें" - }, - "seekBackward10Seconds": { - "message": "पिछड़े 10 सेकंड की तलाश करें" - }, - "seekForward10Seconds": { - "message": "पिछड़े 10 सेकंड की तलाश करें" - }, - "seekNextChapter": { - "message": "अगले अध्याय पर चलें" - }, - "seekPreviousChapter": { - "message": "पिछले अध्याय पर चलें" - }, - "settings": { - "message": "समायोजन" - }, - "settingsSuccessfullyImported": { - "message": "सेटिंग्स सफलतापूर्वक आयात की गईं" - }, - "shortcuts": { - "message": "शॉर्टकट" - }, - "showCardsOnMouseHover": { - "message": "माउस होवर पर कार्ड दिखाएं" - }, - "showChannelVideosCount": { - "message": "चैनल वीडियो काउंट दिखाएं" - }, - "showLess": { - "message": "कम दिखाएं" - }, - "showMore": { - "message": "और दिखाएं" - }, - "showRemainingDuration": { - "message": "वीडियो की बची हुई अवधि दिखाएं" - }, - "shuffle": { - "message": "मिश्रण" - }, - "sidebar": { - "message": "साइडबार" - }, - "spacebar": { - "message": "स्पेस बार" - }, - "squaredUserImages": { - "message": "चुकता उपयोगकर्ता चित्र" - }, - "static": { - "message": "स्थिर" - }, - "statsForNerds": { - "message": "डेवलपर के लिए आँकड़े दिखाएँ" - }, - "step": { - "message": "चरण" - }, - "stop": { - "message": "रुकें" - }, - "style": { - "message": "अंदाज" - }, - "styles": { - "message": "शैलियाँ" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "सदस्यता" - }, - "subtitles": { - "message": "उपशीर्षक" - }, - "sunset": { - "message": "सूर्यास्त" - }, - "sunsetToSunrise": { - "message": "सूर्योदय से सूर्यास्त" - }, - "systemPeferenceDark": { - "message": "सिस्टम प्राथमिकताएं: अंधेरा" - }, - "systemPeferenceLight": { - "message": "सिस्टम वरीयताएँ: प्रकाश" - }, - "teal": { - "message": "टील रंग" - }, - "textColor": { - "message": "लिखावट का रंग" - }, - "themes": { - "message": "विषय-वस्तु" - }, - "thisWillRemoveAllCookies": { - "message": "यह सभी कुकीज़ को हटा देगा।" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "यह सभी यूट्यूब कुकीज़ को हटा देगा।" - }, - "thisWillResetAllSettings": { - "message": "यह सभी सेटिंग्स को रीसेट कर देगा।" - }, - "thisWillResetAllShortcuts": { - "message": "यह सभी शॉर्टकट रीसेट कर देगा।" - }, - "thumbnails": { - "message": "थंबनेल" - }, - "timeFrom": { - "message": "से समय" - }, - "timeTo": { - "message": "समय पर" - }, - "todayAt": { - "message": "आज इस समय" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "शीर्ष चैट" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "ट्रेलर ऑटोप्ले" - }, - "translations": { - "message": "अनुवाद" - }, - "transparentBackground": { - "message": "पारदर्शी पृष्ठभूमि" - }, - "trending": { - "message": "रुझान" - }, - "tryToReloadThePage": { - "message": "पृष्ठ को पुनः लोड करने का प्रयास करें" - }, - "type": { - "message": "टाइप" - }, - "upNextAutoplay": { - "message": "अगले ऑटोप्ले पर" - }, - "use24HourFormat": { - "message": "24-घंटे के प्रारूप का उपयोग करें" - }, - "version": { - "message": "संस्करण" - }, - "video": { - "message": "वीडियो" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "श्रेणी का नाम प्राप्त करने के लिए वीडियो विवरण का विस्तार किया जाएगा।" - }, - "videoFormats": { - "message": "वीडियो प्रारूप" - }, - "videos": { - "message": "वीडियो" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "ध्वनि" - }, - "watchLater": { - "message": "बाद में देखना" - }, - "watchTime": { - "message": "समय देखें" - }, - "whenTabIsChanged": { - "message": "जब टैब बदला जाता है" - }, - "white": { - "message": "सफेद" - }, - "windowColor": { - "message": "विंडो का रंग" - }, - "windowOpacity": { - "message": "विंडो की अस्पष्टता" - }, - "yellow": { - "message": "पीला" - }, - "youtubeHeaderLeft": { - "message": "यूट्यूब हैडर (बाएं)" - }, - "youtubeHeaderRight": { - "message": "यूट्यूब हैडर (दाएं)" - }, - "youtubeHomePage": { - "message": "यूट्यूब होम पेज" - }, - "youtubeLanguage": { - "message": "यूट्यूब भाषा" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "यूट्यूब h.264 कोडेक के लिए वीडियो की गुणवत्ता 1080 पी तक सीमित है" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "के बारे में" + }, + "accept": { + "message": "स्वीकार" + }, + "activate": { + "message": "सक्रिय" + }, + "activateCaptions": { + "message": "कैप्शन सक्रिय करें" + }, + "activateFullscreen": { + "message": "पूर्णस्क्रीन सक्रिय करें" + }, + "activated": { + "message": "सक्रिय" + }, + "activatedFeatures": { + "message": "सक्रिय विशेषताएं" + }, + "activeFeatures": { + "message": "सक्रिय विशेषताएं" + }, + "addScrollToTop": { + "message": "«शीर्ष पर स्क्रॉल करें» जोड़ें" + }, + "ads": { + "message": "विज्ञापन" + }, + "all": { + "message": "सब" + }, + "allow": { + "message": "अनुमति" + }, + "allow60fps": { + "message": "60fps की अनुमति दें" + }, + "alwaysActive": { + "message": "हमेशा सक्रिय" + }, + "alwaysShowProgressBar": { + "message": "हमेशा प्रगति बार दिखाएं" + }, + "amber": { + "message": "अंबर" + }, + "analyzer": { + "message": "विश्लेषक" + }, + "appearance": { + "message": "दिखावट" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "ऑडियो" + }, + "audioFormats": { + "message": "ऑडियो प्रारूप" + }, + "auto": { + "message": "खुद ब खुद" + }, + "autoFullscreen": { + "message": "स्वत: पूर्ण स्क्रीन" + }, + "autopauseWhenSwitchingTabs": { + "message": "टैब स्विच करते समय ऑटोपॉज" + }, + "autoplay": { + "message": "स्वत: प्ले" + }, + "backgroundColor": { + "message": "पीछे का रंग" + }, + "backgroundOpacity": { + "message": "पृष्ठभूमि अस्पष्टता" + }, + "backupAndReset": { + "message": "बैकअप पुनर्स्थापित करना" + }, + "baseOnSystemColorScheme": { + "message": "सिस्टम रंग योजना के आधार पर" + }, + "belowPlayer": { + "message": "प्लेयर के नीचे" + }, + "black": { + "message": "काला" + }, + "blacklist": { + "message": "काला सूची में डालना" + }, + "blockAll": { + "message": "सभी को अवरोधित करें" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "नीला" + }, + "blueGray": { + "message": "नीला स्लेटी" + }, + "bluelight": { + "message": "नीली बत्ती" + }, + "brown": { + "message": "भूरा" + }, + "browser": { + "message": "ब्राउज़र" + }, + "browserVersion": { + "message": "ब्राउज़र संस्करण" + }, + "bubbles": { + "message": "बुलबुले" + }, + "bug": { + "message": "बग" + }, + "buttons": { + "message": "बटन" + }, + "cancel": { + "message": "रद्द" + }, + "categories": { + "message": "श्रेणियाँ" + }, + "channel": { + "message": "चैनल" + }, + "channels": { + "message": "चैनल" + }, + "characterEdgeStyle": { + "message": "कैरेक्टर एज स्टाइल" + }, + "clipboard": { + "message": "क्लिपबोर्ड" + }, + "codecH264": { + "message": "कोडक H264" + }, + "collapseOfSubscriptionSections": { + "message": "सदस्यता वर्गों का पतन" + }, + "collapsed": { + "message": "संक्षिप्त" + }, + "comments": { + "message": "टिप्पणियाँ" + }, + "confirmationBeforeClosing": { + "message": "बंद करने से पहले पुष्टि" + }, + "cookies": { + "message": "कुकीज़" + }, + "cores": { + "message": "कोर" + }, + "cropChapterTitles": { + "message": "फसल अध्याय के शीर्षक" + }, + "customCss": { + "message": "कस्टम सीएसएस" + }, + "customJs": { + "message": "कस्टम जेएस" + }, + "customMiniPlayer": { + "message": "कस्टम मिनी प्लेयर" + }, + "cyan": { + "message": "सियान" + }, + "dark": { + "message": "अंधेरा" + }, + "darkTheme": { + "message": "डार्क थीम" + }, + "dateAndTime": { + "message": "दिनांक और समय" + }, + "dawn": { + "message": "भोर" + }, + "decreasePlaybackSpeed": { + "message": "पार्श्व गति में कमी" + }, + "decreaseVolume": { + "message": "ध्वनि कम" + }, + "deepOrange": { + "message": "गहरा नारंगी" + }, + "deepPurple": { + "message": "गहरा बैंगनी" + }, + "default": { + "message": "डिफ़ॉल्ट" + }, + "defaultChannelTab": { + "message": "डिफ़ॉल्ट चैनल टैब" + }, + "defaultContentCountry": { + "message": "डिफॉल्ट विषय देश" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "यूट्यूब कुकीज़ हटाएं" + }, + "depressed": { + "message": "उदास" + }, + "description": { + "message": "विवरण" + }, + "description_ext": { + "message": "YouTube को व्यवस्थित एवं स्मार्ट बनाएं! यूट्यूब वीडियो कलर एड स्किप वॉल्यूम स्पीड चैनल टूल स्टाइल एचडी विज्ञापन एडब्लॉकर टैग कीवर्ड प्लेलिस्ट" + }, + "desert": { + "message": "रेगिस्तान" + }, + "details": { + "message": "विवरण" + }, + "developerOptions": { + "message": "डेवलपर विकल्प" + }, + "device": { + "message": "युक्ति" + }, + "dim": { + "message": "मंद" + }, + "disabled": { + "message": "विकलांग" + }, + "dislike": { + "message": "नापसन्द" + }, + "doNotChange": { + "message": "मत बदलो" + }, + "donate": { + "message": "दान" + }, + "draggable": { + "message": "खींचने योग्य" + }, + "dropShadow": { + "message": "परछाई डालना" + }, + "email": { + "message": "ईमेल" + }, + "empty": { + "message": "खाली" + }, + "enabled": { + "message": "सक्रिय" + }, + "enabledForced": { + "message": "सक्रिय(मजबूर)" + }, + "expanded": { + "message": "विस्तारित" + }, + "exportSettings": { + "message": "निर्यात सेटिंग्स" + }, + "extension": { + "message": "एक्सटेंशन" + }, + "file": { + "message": "फ़ाइल" + }, + "filters": { + "message": "फिल्टर" + }, + "fitToWindow": { + "message": "स्क्रीन फिट" + }, + "flash": { + "message": "चमक" + }, + "font": { + "message": "लिपि" + }, + "fontColor": { + "message": "लिपि का रंग" + }, + "fontFamily": { + "message": "लिपीओ का काि संग्रह" + }, + "fontOpacity": { + "message": "लिपि की अस्पष्टता" + }, + "fontSize": { + "message": "लिपीओ का आकार" + }, + "footer": { + "message": "पाद लेख" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "जबरदस्ती वीडियो शुरू से प्ले करें" + }, + "forcedPlaybackSpeed": { + "message": "जबरन पार्श्व गति" + }, + "forcedTheaterMode": { + "message": "जबरन थिएटर मोड" + }, + "forcedVolume": { + "message": "जबरन ध्वनि" + }, + "foundABug": { + "message": "बग मिला?" + }, + "fullWindow": { + "message": "पूर्ण स्क्रीन" + }, + "general": { + "message": "सामान्य" + }, + "github": { + "message": "गिटहब" + }, + "goToSearchBox": { + "message": "सर्च बॉक्स पर जाएं" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "जी पी यू" + }, + "green": { + "message": "हरा" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "एच डी थंबनेल" + }, + "header": { + "message": "हैडर" + }, + "hidden": { + "message": "छिपा हुआ" + }, + "hiddenOnVideoPage": { + "message": "वीडियो पेज पर छिपा हुआ" + }, + "hideAnimatedThumbnails": { + "message": "वीडियो पेज पर छिपा हुआ" + }, + "hideAnnotations": { + "message": "एनोटेशन छुपाएं" + }, + "hideCards": { + "message": "पत्ते छिपाओ" + }, + "hideCountryCode": { + "message": "देश कोड छुपाएं" + }, + "hideDate": { + "message": "तारीख छुपाएं" + }, + "hideDetails": { + "message": "जानकारी छिपाएँ" + }, + "hideEndscreen": { + "message": "अंत स्क्रीन छिपाएँ" + }, + "hideFeaturedContent": { + "message": "विशेषताओं को छिपाएँ" + }, + "hideFooter": { + "message": "पाद छिपाएँ" + }, + "hideGradientBottom": { + "message": "ग्रेडिएंट बॉटम छुपाएं" + }, + "hideMoreButton": { + "message": "अधिक बटन छुपाएं" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "प्लेलिस्ट छिपाएं" + }, + "hideRightButtons": { + "message": "दाएं बटन छुपाएं" + }, + "hideSaveButton": { + "message": "सहेजें बटन छुपाएं" + }, + "hideScrollForDetails": { + "message": "छिपाएँ «विवरण के लिए स्क्रॉल»" + }, + "hideShareButton": { + "message": "शेयर बटन छुपाएं" + }, + "hideSkipOverlay": { + "message": "स्किप ओवरले छुपाएं" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "व्यू काउंट छिपाएं" + }, + "hideVoiceSearchButton": { + "message": "ध्वनि खोज बटन छुपाएं" + }, + "high": { + "message": "High" + }, + "history": { + "message": "इतिहास" + }, + "home": { + "message": "घर" + }, + "hover": { + "message": "होवर" + }, + "hoverOnVideoPage": { + "message": "वीडियो पेज पर होवर" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "वीडियो कितनी देर पहले अपलोड किया गया था" + }, + "icons": { + "message": "प्रतीक" + }, + "iconsOnly": { + "message": "केवल प्रतीक" + }, + "importSettings": { + "message": "सेटिंग आयात करना" + }, + "improveLogo": { + "message": "लोगो सुधारो" + }, + "improvedtubeIconOnYoutube": { + "message": "यूट्यूब पर बेहतर आइकन" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube भाषा" + }, + "improvedtubeVersion": { + "message": "ImprovedTube संस्करण" + }, + "increasePlaybackSpeed": { + "message": "प्लेबैक स्पीड बढ़ाएं" + }, + "increaseVolume": { + "message": "ध्वनि बढ़ाएं" + }, + "indigo": { + "message": "नील" + }, + "items": { + "message": "आइटम" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "बोली" + }, + "legacyYoutube": { + "message": "विरासत यूट्यूब" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "हलका" + }, + "lightBlue": { + "message": "हल्का नीला" + }, + "lightGreen": { + "message": "हल्का हरा" + }, + "like": { + "message": "पसंद" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "को यह पसंद है" + }, + "lime": { + "message": "पीला हरा रंग" + }, + "limitPageWidth": { + "message": "पृष्ठ की चौड़ाई सीमित करें" + }, + "list": { + "message": "सूची" + }, + "liveChat": { + "message": "सीधी बातचीत" + }, + "liveChatType": { + "message": "लाइव चैट प्रकार" + }, + "location": { + "message": "स्थान" + }, + "loudnessNormalization": { + "message": "जोर से सामान्य होना" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "चिह्नित वीडियो देखे गए" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "मिक्सर" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "मेरे रंग" + }, + "name": { + "message": "नाम" + }, + "nativeMiniPlayer": { + "message": "मूल निवासी मिनी प्लेयर" + }, + "new": { + "message": "नया" + }, + "nextVideo": { + "message": "अगला वीडियो" + }, + "night": { + "message": "रात" + }, + "noActiveFeatures": { + "message": "कोई सक्रिय सुविधाएँ नहीं" + }, + "noOpenVideoTabs": { + "message": "कोई खुला वीडियो टैब नहीं" + }, + "none": { + "message": "कोई नहीं" + }, + "normal": { + "message": "साधारण" + }, + "old": { + "message": "पुराना" + }, + "onAllVideos": { + "message": "सभी वीडियो पर" + }, + "onSubscribedChannels": { + "message": "सदस्यता प्राप्त चैनलों पर" + }, + "onlyActiveOnYoutube": { + "message": "केवल यूट्यूब पर सक्रिय है" + }, + "onlyOnePlayerInstancePlaying": { + "message": "केवल एक प्लेयर का चल रहा है" + }, + "orange": { + "message": "नारंगी रंग" + }, + "os": { + "message": "ओ एस" + }, + "other": { + "message": "अन्य" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "अनुमतियां" + }, + "pictureInPicture": { + "message": "चित्र में चित्र" + }, + "pink": { + "message": "गुलाबी" + }, + "plain": { + "message": "सादा" + }, + "platform": { + "message": "मंच" + }, + "playPause": { + "message": "प्ले / ठहराव" + }, + "playbackSpeed": { + "message": "प्लेबैक स्पीड" + }, + "player": { + "message": "प्लेयर" + }, + "playerColor": { + "message": "प्लेयर रंग" + }, + "playerSize": { + "message": "प्लेयर आकार" + }, + "playlist": { + "message": "प्लेलिस्ट" + }, + "playlists": { + "message": "प्लेलिस्ट" + }, + "popupPlayer": { + "message": "पॉप अप प्लेयर" + }, + "position": { + "message": "स्थान" + }, + "pressAnyKeyOrScroll": { + "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" + }, + "previousVideo": { + "message": "पिछला वीडियो" + }, + "primaryColor": { + "message": "प्राथमिक रंग" + }, + "purple": { + "message": "बैंगनी" + }, + "quality": { + "message": "गुणवत्ता" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "हमें रेटिंग दें" + }, + "red": { + "message": "लाल" + }, + "redDislikeButton": { + "message": "नापसंद बटन लाल रंग दिखाएं" + }, + "relatedVideos": { + "message": "संबंधित वीडियो" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "संबंधित खोज परिणाम निकालें" + }, + "repeat": { + "message": "दोहराना" + }, + "reset": { + "message": "रीसेट" + }, + "resetAllSettings": { + "message": "सभी सेटिंग्स को रीसेट" + }, + "resetAllShortcuts": { + "message": "सभी शॉर्टकट रीसेट करें" + }, + "reverse": { + "message": "उलटना" + }, + "rotate": { + "message": "घुमाएँ" + }, + "save": { + "message": "सहेजें" + }, + "saveAs": { + "message": "के रूप रक्षित करें" + }, + "schedule": { + "message": "अनुसूची" + }, + "screen": { + "message": "स्क्रीन" + }, + "screenshot": { + "message": "स्क्रीनशॉट" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "खोज" + }, + "searchBarOnly": { + "message": "केवल बार खोजें" + }, + "seekBackward10Seconds": { + "message": "पिछड़े 10 सेकंड की तलाश करें" + }, + "seekForward10Seconds": { + "message": "पिछड़े 10 सेकंड की तलाश करें" + }, + "seekNextChapter": { + "message": "अगले अध्याय पर चलें" + }, + "seekPreviousChapter": { + "message": "पिछले अध्याय पर चलें" + }, + "settings": { + "message": "समायोजन" + }, + "settingsSuccessfullyImported": { + "message": "सेटिंग्स सफलतापूर्वक आयात की गईं" + }, + "shortcuts": { + "message": "शॉर्टकट" + }, + "showCardsOnMouseHover": { + "message": "माउस होवर पर कार्ड दिखाएं" + }, + "showChannelVideosCount": { + "message": "चैनल वीडियो काउंट दिखाएं" + }, + "showLess": { + "message": "कम दिखाएं" + }, + "showMore": { + "message": "और दिखाएं" + }, + "showRemainingDuration": { + "message": "वीडियो की बची हुई अवधि दिखाएं" + }, + "shuffle": { + "message": "मिश्रण" + }, + "sidebar": { + "message": "साइडबार" + }, + "spacebar": { + "message": "स्पेस बार" + }, + "squaredUserImages": { + "message": "चुकता उपयोगकर्ता चित्र" + }, + "static": { + "message": "स्थिर" + }, + "statsForNerds": { + "message": "डेवलपर के लिए आँकड़े दिखाएँ" + }, + "step": { + "message": "चरण" + }, + "stop": { + "message": "रुकें" + }, + "style": { + "message": "अंदाज" + }, + "styles": { + "message": "शैलियाँ" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "सदस्यता" + }, + "subtitles": { + "message": "उपशीर्षक" + }, + "sunset": { + "message": "सूर्यास्त" + }, + "sunsetToSunrise": { + "message": "सूर्योदय से सूर्यास्त" + }, + "systemPeferenceDark": { + "message": "सिस्टम प्राथमिकताएं: अंधेरा" + }, + "systemPeferenceLight": { + "message": "सिस्टम वरीयताएँ: प्रकाश" + }, + "teal": { + "message": "टील रंग" + }, + "textColor": { + "message": "लिखावट का रंग" + }, + "themes": { + "message": "विषय-वस्तु" + }, + "thisWillRemoveAllCookies": { + "message": "यह सभी कुकीज़ को हटा देगा।" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "यह सभी यूट्यूब कुकीज़ को हटा देगा।" + }, + "thisWillResetAllSettings": { + "message": "यह सभी सेटिंग्स को रीसेट कर देगा।" + }, + "thisWillResetAllShortcuts": { + "message": "यह सभी शॉर्टकट रीसेट कर देगा।" + }, + "thumbnails": { + "message": "थंबनेल" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "से समय" + }, + "timeTo": { + "message": "समय पर" + }, + "todayAt": { + "message": "आज इस समय" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "शीर्ष चैट" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "ट्रेलर ऑटोप्ले" + }, + "translations": { + "message": "अनुवाद" + }, + "transparentBackground": { + "message": "पारदर्शी पृष्ठभूमि" + }, + "trending": { + "message": "रुझान" + }, + "tryToReloadThePage": { + "message": "पृष्ठ को पुनः लोड करने का प्रयास करें" + }, + "type": { + "message": "टाइप" + }, + "upNextAutoplay": { + "message": "अगले ऑटोप्ले पर" + }, + "use24HourFormat": { + "message": "24-घंटे के प्रारूप का उपयोग करें" + }, + "version": { + "message": "संस्करण" + }, + "video": { + "message": "वीडियो" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "श्रेणी का नाम प्राप्त करने के लिए वीडियो विवरण का विस्तार किया जाएगा।" + }, + "videoFormats": { + "message": "वीडियो प्रारूप" + }, + "videos": { + "message": "वीडियो" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "ध्वनि" + }, + "watchLater": { + "message": "बाद में देखना" + }, + "watchTime": { + "message": "समय देखें" + }, + "whenTabIsChanged": { + "message": "जब टैब बदला जाता है" + }, + "white": { + "message": "सफेद" + }, + "windowColor": { + "message": "विंडो का रंग" + }, + "windowOpacity": { + "message": "विंडो की अस्पष्टता" + }, + "yellow": { + "message": "पीला" + }, + "youtubeHeaderLeft": { + "message": "यूट्यूब हैडर (बाएं)" + }, + "youtubeHeaderRight": { + "message": "यूट्यूब हैडर (दाएं)" + }, + "youtubeHomePage": { + "message": "यूट्यूब होम पेज" + }, + "youtubeLanguage": { + "message": "यूट्यूब भाषा" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "यूट्यूब h.264 कोडेक के लिए वीडियो की गुणवत्ता 1080 पी तक सीमित है" + } } \ No newline at end of file diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 93369ff47..4fab93a01 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -1,977 +1,992 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "O" - }, - "accept": { - "message": "Prihvati" - }, - "activate": { - "message": "Aktiviraj" - }, - "activateCaptions": { - "message": "Aktiviraj naslove" - }, - "activateFullscreen": { - "message": "Aktiviraj puni zaslon" - }, - "activated": { - "message": "Aktivirano" - }, - "activatedFeatures": { - "message": "Aktivirane značajke" - }, - "activeFeatures": { - "message": "Aktivne značajke" - }, - "addScrollToTop": { - "message": "Dodaj «Pomaknite se na vrh»" - }, - "ads": { - "message": "Oglasi" - }, - "all": { - "message": "Sve" - }, - "allow": { - "message": "Dopusti" - }, - "allow60fps": { - "message": "Dopusti 60fps" - }, - "alwaysActive": { - "message": "Uvijek aktivan" - }, - "alwaysShowProgressBar": { - "message": "Uvijek prikaži traku napretka" - }, - "amber": { - "message": "Jantar" - }, - "analyzer": { - "message": "Analizator" - }, - "appearance": { - "message": "Izgled" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio formati" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Automatski prikaz preko cijelog zaslona" - }, - "autopauseWhenSwitchingTabs": { - "message": "Automatska pauza prilikom zamjene kartica" - }, - "autoplay": { - "message": "Auto Play" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Sigurnosna kopija i resetiranje" - }, - "baseOnSystemColorScheme": { - "message": "Na temelju shema boja sustava" - }, - "belowPlayer": { - "message": "Ispod Playera" - }, - "black": { - "message": "Crno" - }, - "blacklist": { - "message": "Crna lista" - }, - "blockAll": { - "message": "Blokiraj sve" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Plava" - }, - "blueGray": { - "message": "Plavo siva" - }, - "bluelight": { - "message": "Svijetlo plava" - }, - "brown": { - "message": "Smeđa" - }, - "browser": { - "message": "Preglednik" - }, - "browserVersion": { - "message": "Verzija preglednika" - }, - "bubbles": { - "message": "Mjehurići" - }, - "bug": { - "message": "Greška" - }, - "buttons": { - "message": "Gumbi" - }, - "cancel": { - "message": "Otkaži" - }, - "categories": { - "message": "Kategorije" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanali" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Međuspremnik" - }, - "codecH264": { - "message": "Kodek h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Skupljanje pretplatničkih odjeljaka" - }, - "collapsed": { - "message": "Skupljeno" - }, - "comments": { - "message": "Komentari" - }, - "confirmationBeforeClosing": { - "message": "Potvrda prije zatvaranja" - }, - "cookies": { - "message": "Kolačići" - }, - "cores": { - "message": "Jezgre" - }, - "cropChapterTitles": { - "message": "Izreži naslove poglavlja" - }, - "customCss": { - "message": "Prilagođeni CSS" - }, - "customJs": { - "message": "Prilagođeni JS" - }, - "customMiniPlayer": { - "message": "Prilagođeni Mini-Player" - }, - "cyan": { - "message": "Cijan" - }, - "dark": { - "message": "Tamno" - }, - "darkTheme": { - "message": "Tamna tema" - }, - "dateAndTime": { - "message": "Datum & vrijeme" - }, - "dawn": { - "message": "Zora" - }, - "decreasePlaybackSpeed": { - "message": "Smanji brzinu reprodukcije" - }, - "decreaseVolume": { - "message": "Smanji glasnoću" - }, - "deepOrange": { - "message": "Duboko narančasta" - }, - "deepPurple": { - "message": "Duboko ljubičasta" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Zadana kartica kanala" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Izbrišite YouTube kolačiće" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Opis" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Zasluga" - }, - "details": { - "message": "Pojedinosti" - }, - "developerOptions": { - "message": "Opcije za programere" - }, - "device": { - "message": "Uređaj" - }, - "dim": { - "message": "Priguši" - }, - "disabled": { - "message": "Onemogućeno" - }, - "dislike": { - "message": "Ne sviđa mi se" - }, - "doNotChange": { - "message": "Nemoj mijenjati" - }, - "donate": { - "message": "Doniraj" - }, - "draggable": { - "message": "Povuci" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "E-mail" - }, - "empty": { - "message": "Prazno" - }, - "enabled": { - "message": "Omogućeno" - }, - "enabledForced": { - "message": "Omogućeno (prisilno)" - }, - "expanded": { - "message": "Prošireno" - }, - "exportSettings": { - "message": "Izvoz postavki" - }, - "extension": { - "message": "Proširenje" - }, - "file": { - "message": "Datoteka" - }, - "filters": { - "message": "Filteri" - }, - "fitToWindow": { - "message": "Prilagodi prozoru" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Podnožje" - }, - "forceSDR": { - "message": "Prisilno SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Prisiljena brzina reprodukcije" - }, - "forcedTheaterMode": { - "message": "Prisiljen kazališni način" - }, - "forcedVolume": { - "message": "Prisiljena glasnoća" - }, - "foundABug": { - "message": "Pronašli ste grešku?" - }, - "fullWindow": { - "message": "Puni prozor" - }, - "general": { - "message": "Općenito" - }, - "geoPreference": { - "message": "Geografske preferencije" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Idite na okvir za pretraživanje" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Zelena" - }, - "hdThumbnail": { - "message": "HD sličica" - }, - "hdThumbnails": { - "message": "HD sličice" - }, - "header": { - "message": "Zaglavlje" - }, - "hidden": { - "message": "Skriven" - }, - "hiddenOnVideoPage": { - "message": "Skriveno na stranici videozapisa" - }, - "hideAnimatedThumbnails": { - "message": "Sakrij animirane sličice" - }, - "hideAnnotations": { - "message": "Sakrij napomene" - }, - "hideCards": { - "message": "Sakrij kartice" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Sakrij detalje" - }, - "hideEndscreen": { - "message": "Sakrij završni zaslon" - }, - "hideFeaturedContent": { - "message": "Sakrij istaknuti sadržaj" - }, - "hideFooter": { - "message": "Sakrij podnožje" - }, - "hideGradientBottom": { - "message": "Sakrij sjenu oko trake playera" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Sakrij kontrole playera" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Sakrij popis za reprodukciju" - }, - "hideRightButtons": { - "message": "Sakrij desne gumbe" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Sakrij «Pomakni za detalje»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Sakrij gumbe na sličicama" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Sakrij broj pregleda" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "Povijest" - }, - "home": { - "message": "Početna" - }, - "hover": { - "message": "Pređite mišem preko" - }, - "hoverOnVideoPage": { - "message": "Zadržite pokazivač miša na stranici videozapisa" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Prije koliko je vremena video prenesen" - }, - "icons": { - "message": "Ikone" - }, - "iconsOnly": { - "message": "Samo ikone" - }, - "importSettings": { - "message": "Uvezi postavke" - }, - "improveLogo": { - "message": "Poboljšajte logotip" - }, - "improvedtubeIconOnYoutube": { - "message": "Ikona ImprovedTube na YouTubeu" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube jezik" - }, - "improvedtubeVersion": { - "message": "ImprovedTube verzija" - }, - "increasePlaybackSpeed": { - "message": "Povećajte brzinu reprodukcije" - }, - "increaseVolume": { - "message": "Povećajte glasnoću" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Predmeti" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Jezici" - }, - "legacyYoutube": { - "message": "Naslijeđeni YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Svjetlo" - }, - "lightBlue": { - "message": "Svjetlo plava" - }, - "lightGreen": { - "message": "Svjetlo zelena" - }, - "like": { - "message": "Sviđa mi se" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Sviđaju mi se" - }, - "lime": { - "message": "Limeta" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Chat uživo" - }, - "liveChatType": { - "message": "Vrsta chata uživo" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Normalizacija glasnoće" - }, - "markWatchedVideos": { - "message": "Označi pogledane videozapise" - }, - "mixer": { - "message": "Mikser" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Moje boje" - }, - "name": { - "message": "Naziv" - }, - "nativeMiniPlayer": { - "message": "Izvorni mini player" - }, - "new": { - "message": "Novo" - }, - "nextVideo": { - "message": "Sljedeći video" - }, - "night": { - "message": "Noć" - }, - "noActiveFeatures": { - "message": "Nema aktivnih značajki" - }, - "noOpenVideoTabs": { - "message": "Nema otvorenih video kartica" - }, - "none": { - "message": "Nijedna" - }, - "normal": { - "message": "Normalno" - }, - "old": { - "message": "Staro" - }, - "onAllVideos": { - "message": "Na svim video zapisima" - }, - "onSubscribedChannels": { - "message": "Na pretplaćenim kanalima" - }, - "onlyActiveOnYoutube": { - "message": "Aktivno samo na YouTubeu" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Svira samo jedna instanca playera" - }, - "openPopupPlayer": { - "message": "Otvorite videozapis / popis za reprodukciju u novom prozoru" - }, - "orange": { - "message": "Narančasto" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Ostalo" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Dopuštenja" - }, - "pictureInPicture": { - "message": "Slika u slici" - }, - "pink": { - "message": "Ružičasto" - }, - "plain": { - "message": "Jednostavno" - }, - "platform": { - "message": "Platforma" - }, - "playPause": { - "message": "Reprodukcija / pauza" - }, - "playbackSpeed": { - "message": "Brzina reprodukcije" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Boja playera" - }, - "playerSize": { - "message": "Veličina playera" - }, - "playlist": { - "message": "Popis za reprodukciju" - }, - "playlists": { - "message": "Popisi za reprodukciju" - }, - "popupPlayer": { - "message": "Player u skočnom prozoru" - }, - "position": { - "message": "Položaj" - }, - "pressAnyKeyOrScroll": { - "message": "Pritisnite bilo koju tipku ili upotrijebite kotačić miša." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Pritisnite bilo koju tipku ili upotrijebite kotačić miša" - }, - "previousVideo": { - "message": "Prethodni videozapis" - }, - "primaryColor": { - "message": "Primarna boja" - }, - "purple": { - "message": "Ljubičasta" - }, - "quality": { - "message": "Kvaliteta" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "Radna memorija" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Ocijenite nas" - }, - "red": { - "message": "Crvena" - }, - "redDislikeButton": { - "message": "Prikaži ne sviđa mi se botun u crvenoj boji" - }, - "relatedVideos": { - "message": "Slični videozapisi" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Uklonite slične rezultate pretraživanja" - }, - "repeat": { - "message": "Ponovi" - }, - "reset": { - "message": "Resetiraj" - }, - "resetAllSettings": { - "message": "Resetirajte sve postavke" - }, - "resetAllShortcuts": { - "message": "Resetirajte sve prečace" - }, - "reverse": { - "message": "Preokreni" - }, - "rotate": { - "message": "Rotiraj" - }, - "save": { - "message": "Sačuvaj" - }, - "saveAs": { - "message": "Sačuvaj kao" - }, - "schedule": { - "message": "Stavi na raspored" - }, - "screen": { - "message": "Zaslon" - }, - "screenshot": { - "message": "Snimka zaslona" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "Pretraži" - }, - "searchBarOnly": { - "message": "Samo traka za pretraživanje" - }, - "seekBackward10Seconds": { - "message": "Traži unatrag 10 sekundi" - }, - "seekForward10Seconds": { - "message": "Traži 10 sekundi prema naprijed" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Postavke" - }, - "settingsSuccessfullyImported": { - "message": "Postavke su uspješno uvezene" - }, - "shortcuts": { - "message": "Prečaci" - }, - "showCardsOnMouseHover": { - "message": "Pokaži kartice prilikom prelaska miša" - }, - "showChannelVideosCount": { - "message": "Prikaži broj videozapisa na kanalu" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Nasumično" - }, - "sidebar": { - "message": "Bočna traka" - }, - "spacebar": { - "message": "Tipka razmaka" - }, - "squaredUserImages": { - "message": "Korisničke slike u kvadratu" - }, - "static": { - "message": "Statički" - }, - "statsForNerds": { - "message": "Prikaži statistiku za štrebere" - }, - "step": { - "message": "Korak" - }, - "stop": { - "message": "Stani" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stilovi" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Pretplate" - }, - "subtitles": { - "message": "Titlovi" - }, - "sunset": { - "message": "Zalazak sunca" - }, - "sunsetToSunrise": { - "message": "Od zalaska do izlaska sunca" - }, - "systemPeferenceDark": { - "message": "Postavke sustava: tamno" - }, - "systemPeferenceLight": { - "message": "Postavke sustava: svjetlo" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Boja teksta" - }, - "themes": { - "message": "Teme" - }, - "thisWillRemoveAllCookies": { - "message": "Ovo će ukloniti sve kolačiće." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Ovo će ukloniti sve YouTube kolačiće" - }, - "thisWillResetAllSettings": { - "message": "Ovo će resetirati sve postavke." - }, - "thisWillResetAllShortcuts": { - "message": "Ovo će resetirati sve prečace" - }, - "thumbnails": { - "message": "Sličice" - }, - "timeFrom": { - "message": "Vrijeme od" - }, - "timeTo": { - "message": "Vrijeme do" - }, - "todayAt": { - "message": "Danas u" - }, - "toggleAutoplay": { - "message": "Uključi / isključi automatsku reprodukciju" - }, - "toggleCards": { - "message": "Uključi / isključi kartice" - }, - "toggleControls": { - "message": "Uključi / isključi kontrole playera" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Automatska reprodukcija kratkog filma" - }, - "translations": { - "message": "Prijevodi" - }, - "transparentBackground": { - "message": "Prozirna pozadina" - }, - "trending": { - "message": "U trendu" - }, - "tryToReloadThePage": { - "message": "Pokušajte ponovo učitati stranicu" - }, - "type": { - "message": "Tip" - }, - "upNextAutoplay": { - "message": "Sljedeća automatska reprodukcija" - }, - "use24HourFormat": { - "message": "Koristite 24-satni format" - }, - "version": { - "message": "Verzija" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Opis videozapisa biti će proširen kako bi se dobio naziv kategorije" - }, - "videoFormats": { - "message": "Video formati" - }, - "videos": { - "message": "Videozapisi" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Glasnoća" - }, - "watchLater": { - "message": "Gledaj kasnije" - }, - "watchTime": { - "message": "Vrijeme gledanja" - }, - "whenTabIsChanged": { - "message": "Kada se kartica promijeni" - }, - "white": { - "message": "Bijela" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Žuta" - }, - "youtubeHeaderLeft": { - "message": "YouTube zaglavlje (lijevo)" - }, - "youtubeHeaderRight": { - "message": "YouTube zaglavlje (desno)" - }, - "youtubeHomePage": { - "message": "YouTube početna stranica" - }, - "youtubeLanguage": { - "message": "YouTube jezik" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube ograničava kvalitetu videozapisa na 1080p za h.264 kodek" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "O" + }, + "accept": { + "message": "Prihvati" + }, + "activate": { + "message": "Aktiviraj" + }, + "activateCaptions": { + "message": "Aktiviraj naslove" + }, + "activateFullscreen": { + "message": "Aktiviraj puni zaslon" + }, + "activated": { + "message": "Aktivirano" + }, + "activatedFeatures": { + "message": "Aktivirane značajke" + }, + "activeFeatures": { + "message": "Aktivne značajke" + }, + "addScrollToTop": { + "message": "Dodaj «Pomaknite se na vrh»" + }, + "ads": { + "message": "Oglasi" + }, + "all": { + "message": "Sve" + }, + "allow": { + "message": "Dopusti" + }, + "allow60fps": { + "message": "Dopusti 60fps" + }, + "alwaysActive": { + "message": "Uvijek aktivan" + }, + "alwaysShowProgressBar": { + "message": "Uvijek prikaži traku napretka" + }, + "amber": { + "message": "Jantar" + }, + "analyzer": { + "message": "Analizator" + }, + "appearance": { + "message": "Izgled" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formati" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Automatski prikaz preko cijelog zaslona" + }, + "autopauseWhenSwitchingTabs": { + "message": "Automatska pauza prilikom zamjene kartica" + }, + "autoplay": { + "message": "Auto Play" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Sigurnosna kopija i resetiranje" + }, + "baseOnSystemColorScheme": { + "message": "Na temelju shema boja sustava" + }, + "belowPlayer": { + "message": "Ispod Playera" + }, + "black": { + "message": "Crno" + }, + "blacklist": { + "message": "Crna lista" + }, + "blockAll": { + "message": "Blokiraj sve" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Plava" + }, + "blueGray": { + "message": "Plavo siva" + }, + "bluelight": { + "message": "Svijetlo plava" + }, + "brown": { + "message": "Smeđa" + }, + "browser": { + "message": "Preglednik" + }, + "browserVersion": { + "message": "Verzija preglednika" + }, + "bubbles": { + "message": "Mjehurići" + }, + "bug": { + "message": "Greška" + }, + "buttons": { + "message": "Gumbi" + }, + "cancel": { + "message": "Otkaži" + }, + "categories": { + "message": "Kategorije" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanali" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Međuspremnik" + }, + "codecH264": { + "message": "Kodek h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Skupljanje pretplatničkih odjeljaka" + }, + "collapsed": { + "message": "Skupljeno" + }, + "comments": { + "message": "Komentari" + }, + "confirmationBeforeClosing": { + "message": "Potvrda prije zatvaranja" + }, + "cookies": { + "message": "Kolačići" + }, + "cores": { + "message": "Jezgre" + }, + "cropChapterTitles": { + "message": "Izreži naslove poglavlja" + }, + "customCss": { + "message": "Prilagođeni CSS" + }, + "customJs": { + "message": "Prilagođeni JS" + }, + "customMiniPlayer": { + "message": "Prilagođeni Mini-Player" + }, + "cyan": { + "message": "Cijan" + }, + "dark": { + "message": "Tamno" + }, + "darkTheme": { + "message": "Tamna tema" + }, + "dateAndTime": { + "message": "Datum & vrijeme" + }, + "dawn": { + "message": "Zora" + }, + "decreasePlaybackSpeed": { + "message": "Smanji brzinu reprodukcije" + }, + "decreaseVolume": { + "message": "Smanji glasnoću" + }, + "deepOrange": { + "message": "Duboko narančasta" + }, + "deepPurple": { + "message": "Duboko ljubičasta" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Zadana kartica kanala" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Izbrišite YouTube kolačiće" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Opis" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Zasluga" + }, + "details": { + "message": "Pojedinosti" + }, + "developerOptions": { + "message": "Opcije za programere" + }, + "device": { + "message": "Uređaj" + }, + "dim": { + "message": "Priguši" + }, + "disabled": { + "message": "Onemogućeno" + }, + "dislike": { + "message": "Ne sviđa mi se" + }, + "doNotChange": { + "message": "Nemoj mijenjati" + }, + "donate": { + "message": "Doniraj" + }, + "draggable": { + "message": "Povuci" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "E-mail" + }, + "empty": { + "message": "Prazno" + }, + "enabled": { + "message": "Omogućeno" + }, + "enabledForced": { + "message": "Omogućeno (prisilno)" + }, + "expanded": { + "message": "Prošireno" + }, + "exportSettings": { + "message": "Izvoz postavki" + }, + "extension": { + "message": "Proširenje" + }, + "file": { + "message": "Datoteka" + }, + "filters": { + "message": "Filteri" + }, + "fitToWindow": { + "message": "Prilagodi prozoru" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Podnožje" + }, + "forceSDR": { + "message": "Prisilno SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Prisiljena brzina reprodukcije" + }, + "forcedTheaterMode": { + "message": "Prisiljen kazališni način" + }, + "forcedVolume": { + "message": "Prisiljena glasnoća" + }, + "foundABug": { + "message": "Pronašli ste grešku?" + }, + "fullWindow": { + "message": "Puni prozor" + }, + "general": { + "message": "Općenito" + }, + "geoPreference": { + "message": "Geografske preferencije" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Idite na okvir za pretraživanje" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Zelena" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD sličica" + }, + "header": { + "message": "Zaglavlje" + }, + "hidden": { + "message": "Skriven" + }, + "hiddenOnVideoPage": { + "message": "Skriveno na stranici videozapisa" + }, + "hideAnimatedThumbnails": { + "message": "Sakrij animirane sličice" + }, + "hideAnnotations": { + "message": "Sakrij napomene" + }, + "hideCards": { + "message": "Sakrij kartice" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Sakrij detalje" + }, + "hideEndscreen": { + "message": "Sakrij završni zaslon" + }, + "hideFeaturedContent": { + "message": "Sakrij istaknuti sadržaj" + }, + "hideFooter": { + "message": "Sakrij podnožje" + }, + "hideGradientBottom": { + "message": "Sakrij sjenu oko trake playera" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Sakrij kontrole playera" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Sakrij popis za reprodukciju" + }, + "hideRightButtons": { + "message": "Sakrij desne gumbe" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Sakrij «Pomakni za detalje»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Sakrij gumbe na sličicama" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Sakrij broj pregleda" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Povijest" + }, + "home": { + "message": "Početna" + }, + "hover": { + "message": "Pređite mišem preko" + }, + "hoverOnVideoPage": { + "message": "Zadržite pokazivač miša na stranici videozapisa" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Prije koliko je vremena video prenesen" + }, + "icons": { + "message": "Ikone" + }, + "iconsOnly": { + "message": "Samo ikone" + }, + "importSettings": { + "message": "Uvezi postavke" + }, + "improveLogo": { + "message": "Poboljšajte logotip" + }, + "improvedtubeIconOnYoutube": { + "message": "Ikona ImprovedTube na YouTubeu" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube jezik" + }, + "improvedtubeVersion": { + "message": "ImprovedTube verzija" + }, + "increasePlaybackSpeed": { + "message": "Povećajte brzinu reprodukcije" + }, + "increaseVolume": { + "message": "Povećajte glasnoću" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Predmeti" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Jezici" + }, + "legacyYoutube": { + "message": "Naslijeđeni YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Svjetlo" + }, + "lightBlue": { + "message": "Svjetlo plava" + }, + "lightGreen": { + "message": "Svjetlo zelena" + }, + "like": { + "message": "Sviđa mi se" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Sviđaju mi se" + }, + "lime": { + "message": "Limeta" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Chat uživo" + }, + "liveChatType": { + "message": "Vrsta chata uživo" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Normalizacija glasnoće" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Označi pogledane videozapise" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mikser" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Moje boje" + }, + "name": { + "message": "Naziv" + }, + "nativeMiniPlayer": { + "message": "Izvorni mini player" + }, + "new": { + "message": "Novo" + }, + "nextVideo": { + "message": "Sljedeći video" + }, + "night": { + "message": "Noć" + }, + "noActiveFeatures": { + "message": "Nema aktivnih značajki" + }, + "noOpenVideoTabs": { + "message": "Nema otvorenih video kartica" + }, + "none": { + "message": "Nijedna" + }, + "normal": { + "message": "Normalno" + }, + "old": { + "message": "Staro" + }, + "onAllVideos": { + "message": "Na svim video zapisima" + }, + "onSubscribedChannels": { + "message": "Na pretplaćenim kanalima" + }, + "onlyActiveOnYoutube": { + "message": "Aktivno samo na YouTubeu" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Svira samo jedna instanca playera" + }, + "openPopupPlayer": { + "message": "Otvorite videozapis / popis za reprodukciju u novom prozoru" + }, + "orange": { + "message": "Narančasto" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Ostalo" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Dopuštenja" + }, + "pictureInPicture": { + "message": "Slika u slici" + }, + "pink": { + "message": "Ružičasto" + }, + "plain": { + "message": "Jednostavno" + }, + "platform": { + "message": "Platforma" + }, + "playPause": { + "message": "Reprodukcija / pauza" + }, + "playbackSpeed": { + "message": "Brzina reprodukcije" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Boja playera" + }, + "playerSize": { + "message": "Veličina playera" + }, + "playlist": { + "message": "Popis za reprodukciju" + }, + "playlists": { + "message": "Popisi za reprodukciju" + }, + "popupPlayer": { + "message": "Player u skočnom prozoru" + }, + "position": { + "message": "Položaj" + }, + "pressAnyKeyOrScroll": { + "message": "Pritisnite bilo koju tipku ili upotrijebite kotačić miša." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Pritisnite bilo koju tipku ili upotrijebite kotačić miša" + }, + "previousVideo": { + "message": "Prethodni videozapis" + }, + "primaryColor": { + "message": "Primarna boja" + }, + "purple": { + "message": "Ljubičasta" + }, + "quality": { + "message": "Kvaliteta" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "Radna memorija" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Ocijenite nas" + }, + "red": { + "message": "Crvena" + }, + "redDislikeButton": { + "message": "Prikaži ne sviđa mi se botun u crvenoj boji" + }, + "relatedVideos": { + "message": "Slični videozapisi" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Uklonite slične rezultate pretraživanja" + }, + "repeat": { + "message": "Ponovi" + }, + "reset": { + "message": "Resetiraj" + }, + "resetAllSettings": { + "message": "Resetirajte sve postavke" + }, + "resetAllShortcuts": { + "message": "Resetirajte sve prečace" + }, + "reverse": { + "message": "Preokreni" + }, + "rotate": { + "message": "Rotiraj" + }, + "save": { + "message": "Sačuvaj" + }, + "saveAs": { + "message": "Sačuvaj kao" + }, + "schedule": { + "message": "Stavi na raspored" + }, + "screen": { + "message": "Zaslon" + }, + "screenshot": { + "message": "Snimka zaslona" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Pretraži" + }, + "searchBarOnly": { + "message": "Samo traka za pretraživanje" + }, + "seekBackward10Seconds": { + "message": "Traži unatrag 10 sekundi" + }, + "seekForward10Seconds": { + "message": "Traži 10 sekundi prema naprijed" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Postavke" + }, + "settingsSuccessfullyImported": { + "message": "Postavke su uspješno uvezene" + }, + "shortcuts": { + "message": "Prečaci" + }, + "showCardsOnMouseHover": { + "message": "Pokaži kartice prilikom prelaska miša" + }, + "showChannelVideosCount": { + "message": "Prikaži broj videozapisa na kanalu" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Nasumično" + }, + "sidebar": { + "message": "Bočna traka" + }, + "spacebar": { + "message": "Tipka razmaka" + }, + "squaredUserImages": { + "message": "Korisničke slike u kvadratu" + }, + "static": { + "message": "Statički" + }, + "statsForNerds": { + "message": "Prikaži statistiku za štrebere" + }, + "step": { + "message": "Korak" + }, + "stop": { + "message": "Stani" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stilovi" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Pretplate" + }, + "subtitles": { + "message": "Titlovi" + }, + "sunset": { + "message": "Zalazak sunca" + }, + "sunsetToSunrise": { + "message": "Od zalaska do izlaska sunca" + }, + "systemPeferenceDark": { + "message": "Postavke sustava: tamno" + }, + "systemPeferenceLight": { + "message": "Postavke sustava: svjetlo" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Boja teksta" + }, + "themes": { + "message": "Teme" + }, + "thisWillRemoveAllCookies": { + "message": "Ovo će ukloniti sve kolačiće." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Ovo će ukloniti sve YouTube kolačiće" + }, + "thisWillResetAllSettings": { + "message": "Ovo će resetirati sve postavke." + }, + "thisWillResetAllShortcuts": { + "message": "Ovo će resetirati sve prečace" + }, + "thumbnails": { + "message": "Sličice" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Vrijeme od" + }, + "timeTo": { + "message": "Vrijeme do" + }, + "todayAt": { + "message": "Danas u" + }, + "toggleAutoplay": { + "message": "Uključi / isključi automatsku reprodukciju" + }, + "toggleCards": { + "message": "Uključi / isključi kartice" + }, + "toggleControls": { + "message": "Uključi / isključi kontrole playera" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Automatska reprodukcija kratkog filma" + }, + "translations": { + "message": "Prijevodi" + }, + "transparentBackground": { + "message": "Prozirna pozadina" + }, + "trending": { + "message": "U trendu" + }, + "tryToReloadThePage": { + "message": "Pokušajte ponovo učitati stranicu" + }, + "type": { + "message": "Tip" + }, + "upNextAutoplay": { + "message": "Sljedeća automatska reprodukcija" + }, + "use24HourFormat": { + "message": "Koristite 24-satni format" + }, + "version": { + "message": "Verzija" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Opis videozapisa biti će proširen kako bi se dobio naziv kategorije" + }, + "videoFormats": { + "message": "Video formati" + }, + "videos": { + "message": "Videozapisi" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Glasnoća" + }, + "watchLater": { + "message": "Gledaj kasnije" + }, + "watchTime": { + "message": "Vrijeme gledanja" + }, + "whenTabIsChanged": { + "message": "Kada se kartica promijeni" + }, + "white": { + "message": "Bijela" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Žuta" + }, + "youtubeHeaderLeft": { + "message": "YouTube zaglavlje (lijevo)" + }, + "youtubeHeaderRight": { + "message": "YouTube zaglavlje (desno)" + }, + "youtubeHomePage": { + "message": "YouTube početna stranica" + }, + "youtubeLanguage": { + "message": "YouTube jezik" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube ograničava kvalitetu videozapisa na 1080p za h.264 kodek" + } } \ No newline at end of file diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 1152e0847..bf31adee8 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -1,968 +1,983 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Tentang" - }, - "accept": { - "message": "Terima" - }, - "activate": { - "message": "Aktifkan" - }, - "activateCaptions": { - "message": "Aktifkan keterangan" - }, - "activateFullscreen": { - "message": "Aktifkan layar penuh" - }, - "activated": { - "message": "Diaktifkan" - }, - "activatedFeatures": { - "message": "Fitur diaktifkan" - }, - "activeFeatures": { - "message": "Fitur yang aktif" - }, - "addScrollToTop": { - "message": "Tambah «Gulir ke atas»" - }, - "ads": { - "message": "Tampilkan iklan" - }, - "all": { - "message": "Semua" - }, - "allow": { - "message": "Izinkan" - }, - "allow60fps": { - "message": "Izinkan 60fps" - }, - "alwaysActive": { - "message": "Selalu aktif" - }, - "alwaysShowProgressBar": { - "message": "Selalu tampilkan progress bar" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Pengnalisa" - }, - "appearance": { - "message": "Tampilan" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Suara" - }, - "audioFormats": { - "message": "Format suara" - }, - "auto": { - "message": "Otomatis" - }, - "autoFullscreen": { - "message": "Layar penuh otomatis" - }, - "autopauseWhenSwitchingTabs": { - "message": "Jeda saat mengganti tab" - }, - "autoplay": { - "message": "Putar secara otomatis" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Cadangkan & setel ulang" - }, - "baseOnSystemColorScheme": { - "message": "Berdasarkan skema warna sistem" - }, - "belowPlayer": { - "message": "Dibawah pemutar" - }, - "black": { - "message": "Hitam" - }, - "blacklist": { - "message": "Blokir" - }, - "blockAll": { - "message": "Blokir semua" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Biru" - }, - "blueGray": { - "message": "Abu-abu biru" - }, - "bluelight": { - "message": "Cahaya biru" - }, - "brown": { - "message": "Coklat" - }, - "browser": { - "message": "Peramban" - }, - "browserVersion": { - "message": "Versi peramban" - }, - "bubbles": { - "message": "Gelembung" - }, - "bug": { - "message": "Masalah" - }, - "buttons": { - "message": "Tombol" - }, - "cancel": { - "message": "Batalkan" - }, - "categories": { - "message": "Kategori" - }, - "channel": { - "message": "Saluran" - }, - "channels": { - "message": "Saluran" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Tutup bagian berlangganan" - }, - "collapsed": { - "message": "Tutup" - }, - "comments": { - "message": "Komentar" - }, - "confirmationBeforeClosing": { - "message": "Konfirmasi sebelum ditutup" - }, - "cookies": { - "message": "Kuki" - }, - "cores": { - "message": "Inti" - }, - "cropChapterTitles": { - "message": "Potong bagian judul " - }, - "customCss": { - "message": "Kostum CSS" - }, - "customJs": { - "message": "Kostum JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Gelap" - }, - "darkTheme": { - "message": "Tema gelap" - }, - "dateAndTime": { - "message": "Tanggal dan waktu" - }, - "dawn": { - "message": "Fajar" - }, - "decreasePlaybackSpeed": { - "message": "Kurangi kecepatan pemutaran" - }, - "decreaseVolume": { - "message": "Kurangi suara" - }, - "deepOrange": { - "message": "Oranye tua" - }, - "deepPurple": { - "message": "Ungu tua" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Tab saluran standar" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Hapus kuki youtube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Deskripsi" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Gurun" - }, - "details": { - "message": "Detail" - }, - "developerOptions": { - "message": "Opsi pengembang" - }, - "device": { - "message": "Perangkat" - }, - "dim": { - "message": "Redupkan" - }, - "disabled": { - "message": "Dinonaktifkan" - }, - "dislike": { - "message": "Tidak Suka" - }, - "doNotChange": { - "message": "Jangan ubah" - }, - "donate": { - "message": "Donasi" - }, - "draggable": { - "message": "Dapat diseret" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Surel" - }, - "empty": { - "message": "Kosong" - }, - "enabled": { - "message": "Aktifkan" - }, - "enabledForced": { - "message": "Aktifkan (paksa)" - }, - "expanded": { - "message": "Perluas" - }, - "exportSettings": { - "message": "Ekspor pengaturan" - }, - "extension": { - "message": "Ekstensi" - }, - "file": { - "message": "Berkas" - }, - "filters": { - "message": "Saringan" - }, - "fitToWindow": { - "message": "Sesuaikan dengan layar" - }, - "flash": { - "message": "Cahaya" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Catatan kaki" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Paksa kecepatan pemutaran" - }, - "forcedTheaterMode": { - "message": "Paksa mode teater" - }, - "forcedVolume": { - "message": "Paksa suara" - }, - "foundABug": { - "message": "Menemukan masalah?" - }, - "fullWindow": { - "message": "Layar penuh" - }, - "general": { - "message": "Umum" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Ke kotak pencarian" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Hijau" - }, - "hdThumbnail": { - "message": "Gambar kecil HD" - }, - "hdThumbnails": { - "message": "Gambar kecil HD" - }, - "header": { - "message": "Kepala" - }, - "hidden": { - "message": "Sembunyikan" - }, - "hiddenOnVideoPage": { - "message": "Tersembunyi di halaman video" - }, - "hideAnimatedThumbnails": { - "message": "Sembunyikan animasi gambar kecil" - }, - "hideAnnotations": { - "message": "Sembunyikan penjelasan" - }, - "hideCards": { - "message": "Sembunyikan kartu" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Sembunyikan detail" - }, - "hideEndscreen": { - "message": "Sembunyikan layar akhir" - }, - "hideFeaturedContent": { - "message": "Sembunyikan konten unggulan" - }, - "hideFooter": { - "message": "Sembunyikan catatan kaki" - }, - "hideGradientBottom": { - "message": "Sembunyikan Gradient Bagian Bawah" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Sembunyikan daftar putar" - }, - "hideRightButtons": { - "message": "Sembunyikan tombol kanan" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Sembunyikan «gulir untuk detail»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Sembunyikan jumlah penayangan" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "Sejarah" - }, - "home": { - "message": "Beranda" - }, - "hover": { - "message": "Arahkan" - }, - "hoverOnVideoPage": { - "message": "Arahkan pada halaman video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Berapa lama video itu diunggah" - }, - "icons": { - "message": "Ikon" - }, - "iconsOnly": { - "message": "Ikon saja" - }, - "importSettings": { - "message": "Impor pengaturan" - }, - "improveLogo": { - "message": "Tingkatkan kualitas logo" - }, - "improvedtubeIconOnYoutube": { - "message": "Ikon ImprovedTube di YouTube" - }, - "improvedtubeLanguage": { - "message": "Bahasa ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versi ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Tingkatkan kecepatan pemutaran" - }, - "increaseVolume": { - "message": "Tingkatkan suara" - }, - "indigo": { - "message": "Nila" - }, - "items": { - "message": "Item" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Bahasa" - }, - "legacyYoutube": { - "message": "YouTube lama" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Terang" - }, - "lightBlue": { - "message": "Biru terang" - }, - "lightGreen": { - "message": "Hijau terang" - }, - "like": { - "message": "Suka" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Suka" - }, - "lime": { - "message": "Limau" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Daftar" - }, - "liveChat": { - "message": "Obrolan langsung" - }, - "liveChatType": { - "message": "Jenis obrolan langsung" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Normalkan suara" - }, - "markWatchedVideos": { - "message": "Tandai video yang ditonton" - }, - "mixer": { - "message": "Mixer" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Warna saya" - }, - "name": { - "message": "Nama" - }, - "nativeMiniPlayer": { - "message": "Pemutar kecil bawaan" - }, - "new": { - "message": "Baru" - }, - "nextVideo": { - "message": "Video selanjutnya" - }, - "night": { - "message": "Malam" - }, - "noActiveFeatures": { - "message": "Tidak ada fitur aktif" - }, - "noOpenVideoTabs": { - "message": "Tidak ada tab video terbuka" - }, - "none": { - "message": "Tidak ada" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Lama" - }, - "onAllVideos": { - "message": "Disetiap video" - }, - "onSubscribedChannels": { - "message": "Di saluran berlangganan" - }, - "onlyActiveOnYoutube": { - "message": "Hanya aktif di YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Hanya mainkan satu pemutar" - }, - "orange": { - "message": "Oranye" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Lainnya" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Perizinan" - }, - "pictureInPicture": { - "message": "Gambar di dalam gambar" - }, - "pink": { - "message": "Merah jambu" - }, - "plain": { - "message": "Dataran" - }, - "platform": { - "message": "Platform" - }, - "playPause": { - "message": "Mulai / Jeda" - }, - "playbackSpeed": { - "message": "Kecepatan pemutar" - }, - "player": { - "message": "Pemutar" - }, - "playerColor": { - "message": "Warna pemutar" - }, - "playerSize": { - "message": "Ukuran pemutar" - }, - "playlist": { - "message": "Daftar putar" - }, - "playlists": { - "message": "Daftar putar" - }, - "popupPlayer": { - "message": "Pemutar sembulan" - }, - "position": { - "message": "Posisi" - }, - "pressAnyKeyOrScroll": { - "message": "Tekan tombol apa saja atau gunakan roda mouse." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Tekan tombol apa saja atau gunakan roda mouse" - }, - "previousVideo": { - "message": "Video sebelumnya" - }, - "primaryColor": { - "message": "Warna utama" - }, - "purple": { - "message": "Ungu" - }, - "quality": { - "message": "Kualitas video" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Nilai Kami" - }, - "red": { - "message": "Merah" - }, - "relatedVideos": { - "message": "Video terkait" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Hapus hasil pencarian terkait" - }, - "repeat": { - "message": "Putar ulang" - }, - "reset": { - "message": "Setel ulang" - }, - "resetAllSettings": { - "message": "Setel ulang semua pengaturan" - }, - "resetAllShortcuts": { - "message": "Setel ulang semua pintasan" - }, - "reverse": { - "message": "Putar secara terbalik" - }, - "rotate": { - "message": "Putar" - }, - "save": { - "message": "Simpan" - }, - "saveAs": { - "message": "Simpan dengan" - }, - "schedule": { - "message": "Jadwal" - }, - "screen": { - "message": "Layar" - }, - "screenshot": { - "message": "Tangkapan layar" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "Cari" - }, - "searchBarOnly": { - "message": "Hanya bilah pencarian" - }, - "seekBackward10Seconds": { - "message": "Mundur 10 detik" - }, - "seekForward10Seconds": { - "message": "Maju 10 detik" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Pengaturan" - }, - "settingsSuccessfullyImported": { - "message": "Berhasil mengimpor pengaturan" - }, - "shortcuts": { - "message": "Pintasan" - }, - "showCardsOnMouseHover": { - "message": "Tunjukkan kartu pada arah mouse" - }, - "showChannelVideosCount": { - "message": "Tampilkan jumlah video saluran" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Putar secara acak" - }, - "sidebar": { - "message": "Bilah samping" - }, - "spacebar": { - "message": "Bilah spasi" - }, - "squaredUserImages": { - "message": "Gambar pengguna kotak" - }, - "static": { - "message": "Statis" - }, - "statsForNerds": { - "message": "Tampilkan statistik bagi para 'kutu buku'" - }, - "step": { - "message": "Langkah" - }, - "stop": { - "message": "Berhenti" - }, - "style": { - "message": "Mode" - }, - "styles": { - "message": "Mode" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Berlangganan" - }, - "subtitles": { - "message": "Teks" - }, - "sunset": { - "message": "Senja" - }, - "sunsetToSunrise": { - "message": "Matahari terbenam hingga matahari terbit" - }, - "systemPeferenceDark": { - "message": "Preferensi sistem: gelap" - }, - "systemPeferenceLight": { - "message": "Preferensi sistem: terang" - }, - "teal": { - "message": "Hijau kebiruan" - }, - "textColor": { - "message": "Warna teks" - }, - "themes": { - "message": "Tema" - }, - "thisWillRemoveAllCookies": { - "message": "Ini akan menghapus semua kuki." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Ini akan menghapus semua kuki YouTube" - }, - "thisWillResetAllSettings": { - "message": "Ini akan mengatur ulang semua pengaturan." - }, - "thisWillResetAllShortcuts": { - "message": "Ini akan mengatur ulang semua pintasan" - }, - "thumbnails": { - "message": "Gambar kecil" - }, - "timeFrom": { - "message": "Waktu dari" - }, - "timeTo": { - "message": "Waktu ke" - }, - "todayAt": { - "message": "Hari ini di" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Alihkan kartu" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Obrolan teratas" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Putar otomatis cuplikan" - }, - "translations": { - "message": "Terjemahan" - }, - "transparentBackground": { - "message": "Latar belakang transparan" - }, - "trending": { - "message": "Populer" - }, - "tryToReloadThePage": { - "message": "Coba muat ulang halaman" - }, - "type": { - "message": "Tipe" - }, - "upNextAutoplay": { - "message": "Putar otomatis berikutnya" - }, - "use24HourFormat": { - "message": "Gunakan format 24 jam" - }, - "version": { - "message": "Versi" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Deskripsi video akan diperluas untuk mendapatkan nama kategori" - }, - "videoFormats": { - "message": "Format video" - }, - "videos": { - "message": "Video" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Suara" - }, - "watchLater": { - "message": "Tonton nanti" - }, - "watchTime": { - "message": "Waktu tayang" - }, - "whenTabIsChanged": { - "message": "Saat tab berubah" - }, - "white": { - "message": "Putih" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Kuning" - }, - "youtubeHeaderLeft": { - "message": "Header YouTube (kiri)" - }, - "youtubeHeaderRight": { - "message": "Header YouTube (kanan)" - }, - "youtubeHomePage": { - "message": "Beranda YouTube" - }, - "youtubeLanguage": { - "message": "Bahasa YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube membatasi kualitas video hingga 1080p untuk codec h.264" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Tentang" + }, + "accept": { + "message": "Terima" + }, + "activate": { + "message": "Aktifkan" + }, + "activateCaptions": { + "message": "Aktifkan keterangan" + }, + "activateFullscreen": { + "message": "Aktifkan layar penuh" + }, + "activated": { + "message": "Diaktifkan" + }, + "activatedFeatures": { + "message": "Fitur diaktifkan" + }, + "activeFeatures": { + "message": "Fitur yang aktif" + }, + "addScrollToTop": { + "message": "Tambah «Gulir ke atas»" + }, + "ads": { + "message": "Tampilkan iklan" + }, + "all": { + "message": "Semua" + }, + "allow": { + "message": "Izinkan" + }, + "allow60fps": { + "message": "Izinkan 60fps" + }, + "alwaysActive": { + "message": "Selalu aktif" + }, + "alwaysShowProgressBar": { + "message": "Selalu tampilkan progress bar" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Pengnalisa" + }, + "appearance": { + "message": "Tampilan" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "Suara" + }, + "audioFormats": { + "message": "Format suara" + }, + "auto": { + "message": "Otomatis" + }, + "autoFullscreen": { + "message": "Layar penuh otomatis" + }, + "autopauseWhenSwitchingTabs": { + "message": "Jeda saat mengganti tab" + }, + "autoplay": { + "message": "Putar secara otomatis" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Cadangkan & setel ulang" + }, + "baseOnSystemColorScheme": { + "message": "Berdasarkan skema warna sistem" + }, + "belowPlayer": { + "message": "Dibawah pemutar" + }, + "black": { + "message": "Hitam" + }, + "blacklist": { + "message": "Blokir" + }, + "blockAll": { + "message": "Blokir semua" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Biru" + }, + "blueGray": { + "message": "Abu-abu biru" + }, + "bluelight": { + "message": "Cahaya biru" + }, + "brown": { + "message": "Coklat" + }, + "browser": { + "message": "Peramban" + }, + "browserVersion": { + "message": "Versi peramban" + }, + "bubbles": { + "message": "Gelembung" + }, + "bug": { + "message": "Masalah" + }, + "buttons": { + "message": "Tombol" + }, + "cancel": { + "message": "Batalkan" + }, + "categories": { + "message": "Kategori" + }, + "channel": { + "message": "Saluran" + }, + "channels": { + "message": "Saluran" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Tutup bagian berlangganan" + }, + "collapsed": { + "message": "Tutup" + }, + "comments": { + "message": "Komentar" + }, + "confirmationBeforeClosing": { + "message": "Konfirmasi sebelum ditutup" + }, + "cookies": { + "message": "Kuki" + }, + "cores": { + "message": "Inti" + }, + "cropChapterTitles": { + "message": "Potong bagian judul " + }, + "customCss": { + "message": "Kostum CSS" + }, + "customJs": { + "message": "Kostum JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Gelap" + }, + "darkTheme": { + "message": "Tema gelap" + }, + "dateAndTime": { + "message": "Tanggal dan waktu" + }, + "dawn": { + "message": "Fajar" + }, + "decreasePlaybackSpeed": { + "message": "Kurangi kecepatan pemutaran" + }, + "decreaseVolume": { + "message": "Kurangi suara" + }, + "deepOrange": { + "message": "Oranye tua" + }, + "deepPurple": { + "message": "Ungu tua" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Tab saluran standar" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Hapus kuki youtube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Deskripsi" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Gurun" + }, + "details": { + "message": "Detail" + }, + "developerOptions": { + "message": "Opsi pengembang" + }, + "device": { + "message": "Perangkat" + }, + "dim": { + "message": "Redupkan" + }, + "disabled": { + "message": "Dinonaktifkan" + }, + "dislike": { + "message": "Tidak Suka" + }, + "doNotChange": { + "message": "Jangan ubah" + }, + "donate": { + "message": "Donasi" + }, + "draggable": { + "message": "Dapat diseret" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Surel" + }, + "empty": { + "message": "Kosong" + }, + "enabled": { + "message": "Aktifkan" + }, + "enabledForced": { + "message": "Aktifkan (paksa)" + }, + "expanded": { + "message": "Perluas" + }, + "exportSettings": { + "message": "Ekspor pengaturan" + }, + "extension": { + "message": "Ekstensi" + }, + "file": { + "message": "Berkas" + }, + "filters": { + "message": "Saringan" + }, + "fitToWindow": { + "message": "Sesuaikan dengan layar" + }, + "flash": { + "message": "Cahaya" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Catatan kaki" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Paksa kecepatan pemutaran" + }, + "forcedTheaterMode": { + "message": "Paksa mode teater" + }, + "forcedVolume": { + "message": "Paksa suara" + }, + "foundABug": { + "message": "Menemukan masalah?" + }, + "fullWindow": { + "message": "Layar penuh" + }, + "general": { + "message": "Umum" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Ke kotak pencarian" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Hijau" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "Gambar kecil HD" + }, + "header": { + "message": "Kepala" + }, + "hidden": { + "message": "Sembunyikan" + }, + "hiddenOnVideoPage": { + "message": "Tersembunyi di halaman video" + }, + "hideAnimatedThumbnails": { + "message": "Sembunyikan animasi gambar kecil" + }, + "hideAnnotations": { + "message": "Sembunyikan penjelasan" + }, + "hideCards": { + "message": "Sembunyikan kartu" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Sembunyikan detail" + }, + "hideEndscreen": { + "message": "Sembunyikan layar akhir" + }, + "hideFeaturedContent": { + "message": "Sembunyikan konten unggulan" + }, + "hideFooter": { + "message": "Sembunyikan catatan kaki" + }, + "hideGradientBottom": { + "message": "Sembunyikan Gradient Bagian Bawah" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Sembunyikan daftar putar" + }, + "hideRightButtons": { + "message": "Sembunyikan tombol kanan" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Sembunyikan «gulir untuk detail»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Sembunyikan jumlah penayangan" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Sejarah" + }, + "home": { + "message": "Beranda" + }, + "hover": { + "message": "Arahkan" + }, + "hoverOnVideoPage": { + "message": "Arahkan pada halaman video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Berapa lama video itu diunggah" + }, + "icons": { + "message": "Ikon" + }, + "iconsOnly": { + "message": "Ikon saja" + }, + "importSettings": { + "message": "Impor pengaturan" + }, + "improveLogo": { + "message": "Tingkatkan kualitas logo" + }, + "improvedtubeIconOnYoutube": { + "message": "Ikon ImprovedTube di YouTube" + }, + "improvedtubeLanguage": { + "message": "Bahasa ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Versi ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Tingkatkan kecepatan pemutaran" + }, + "increaseVolume": { + "message": "Tingkatkan suara" + }, + "indigo": { + "message": "Nila" + }, + "items": { + "message": "Item" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Bahasa" + }, + "legacyYoutube": { + "message": "YouTube lama" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Terang" + }, + "lightBlue": { + "message": "Biru terang" + }, + "lightGreen": { + "message": "Hijau terang" + }, + "like": { + "message": "Suka" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Suka" + }, + "lime": { + "message": "Limau" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Daftar" + }, + "liveChat": { + "message": "Obrolan langsung" + }, + "liveChatType": { + "message": "Jenis obrolan langsung" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Normalkan suara" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Tandai video yang ditonton" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Warna saya" + }, + "name": { + "message": "Nama" + }, + "nativeMiniPlayer": { + "message": "Pemutar kecil bawaan" + }, + "new": { + "message": "Baru" + }, + "nextVideo": { + "message": "Video selanjutnya" + }, + "night": { + "message": "Malam" + }, + "noActiveFeatures": { + "message": "Tidak ada fitur aktif" + }, + "noOpenVideoTabs": { + "message": "Tidak ada tab video terbuka" + }, + "none": { + "message": "Tidak ada" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Lama" + }, + "onAllVideos": { + "message": "Disetiap video" + }, + "onSubscribedChannels": { + "message": "Di saluran berlangganan" + }, + "onlyActiveOnYoutube": { + "message": "Hanya aktif di YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Hanya mainkan satu pemutar" + }, + "orange": { + "message": "Oranye" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Lainnya" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Perizinan" + }, + "pictureInPicture": { + "message": "Gambar di dalam gambar" + }, + "pink": { + "message": "Merah jambu" + }, + "plain": { + "message": "Dataran" + }, + "platform": { + "message": "Platform" + }, + "playPause": { + "message": "Mulai / Jeda" + }, + "playbackSpeed": { + "message": "Kecepatan pemutar" + }, + "player": { + "message": "Pemutar" + }, + "playerColor": { + "message": "Warna pemutar" + }, + "playerSize": { + "message": "Ukuran pemutar" + }, + "playlist": { + "message": "Daftar putar" + }, + "playlists": { + "message": "Daftar putar" + }, + "popupPlayer": { + "message": "Pemutar sembulan" + }, + "position": { + "message": "Posisi" + }, + "pressAnyKeyOrScroll": { + "message": "Tekan tombol apa saja atau gunakan roda mouse." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Tekan tombol apa saja atau gunakan roda mouse" + }, + "previousVideo": { + "message": "Video sebelumnya" + }, + "primaryColor": { + "message": "Warna utama" + }, + "purple": { + "message": "Ungu" + }, + "quality": { + "message": "Kualitas video" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Nilai Kami" + }, + "red": { + "message": "Merah" + }, + "relatedVideos": { + "message": "Video terkait" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Hapus hasil pencarian terkait" + }, + "repeat": { + "message": "Putar ulang" + }, + "reset": { + "message": "Setel ulang" + }, + "resetAllSettings": { + "message": "Setel ulang semua pengaturan" + }, + "resetAllShortcuts": { + "message": "Setel ulang semua pintasan" + }, + "reverse": { + "message": "Putar secara terbalik" + }, + "rotate": { + "message": "Putar" + }, + "save": { + "message": "Simpan" + }, + "saveAs": { + "message": "Simpan dengan" + }, + "schedule": { + "message": "Jadwal" + }, + "screen": { + "message": "Layar" + }, + "screenshot": { + "message": "Tangkapan layar" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Cari" + }, + "searchBarOnly": { + "message": "Hanya bilah pencarian" + }, + "seekBackward10Seconds": { + "message": "Mundur 10 detik" + }, + "seekForward10Seconds": { + "message": "Maju 10 detik" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Pengaturan" + }, + "settingsSuccessfullyImported": { + "message": "Berhasil mengimpor pengaturan" + }, + "shortcuts": { + "message": "Pintasan" + }, + "showCardsOnMouseHover": { + "message": "Tunjukkan kartu pada arah mouse" + }, + "showChannelVideosCount": { + "message": "Tampilkan jumlah video saluran" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Putar secara acak" + }, + "sidebar": { + "message": "Bilah samping" + }, + "spacebar": { + "message": "Bilah spasi" + }, + "squaredUserImages": { + "message": "Gambar pengguna kotak" + }, + "static": { + "message": "Statis" + }, + "statsForNerds": { + "message": "Tampilkan statistik bagi para 'kutu buku'" + }, + "step": { + "message": "Langkah" + }, + "stop": { + "message": "Berhenti" + }, + "style": { + "message": "Mode" + }, + "styles": { + "message": "Mode" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Berlangganan" + }, + "subtitles": { + "message": "Teks" + }, + "sunset": { + "message": "Senja" + }, + "sunsetToSunrise": { + "message": "Matahari terbenam hingga matahari terbit" + }, + "systemPeferenceDark": { + "message": "Preferensi sistem: gelap" + }, + "systemPeferenceLight": { + "message": "Preferensi sistem: terang" + }, + "teal": { + "message": "Hijau kebiruan" + }, + "textColor": { + "message": "Warna teks" + }, + "themes": { + "message": "Tema" + }, + "thisWillRemoveAllCookies": { + "message": "Ini akan menghapus semua kuki." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Ini akan menghapus semua kuki YouTube" + }, + "thisWillResetAllSettings": { + "message": "Ini akan mengatur ulang semua pengaturan." + }, + "thisWillResetAllShortcuts": { + "message": "Ini akan mengatur ulang semua pintasan" + }, + "thumbnails": { + "message": "Gambar kecil" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Waktu dari" + }, + "timeTo": { + "message": "Waktu ke" + }, + "todayAt": { + "message": "Hari ini di" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Alihkan kartu" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Obrolan teratas" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Putar otomatis cuplikan" + }, + "translations": { + "message": "Terjemahan" + }, + "transparentBackground": { + "message": "Latar belakang transparan" + }, + "trending": { + "message": "Populer" + }, + "tryToReloadThePage": { + "message": "Coba muat ulang halaman" + }, + "type": { + "message": "Tipe" + }, + "upNextAutoplay": { + "message": "Putar otomatis berikutnya" + }, + "use24HourFormat": { + "message": "Gunakan format 24 jam" + }, + "version": { + "message": "Versi" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Deskripsi video akan diperluas untuk mendapatkan nama kategori" + }, + "videoFormats": { + "message": "Format video" + }, + "videos": { + "message": "Video" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Suara" + }, + "watchLater": { + "message": "Tonton nanti" + }, + "watchTime": { + "message": "Waktu tayang" + }, + "whenTabIsChanged": { + "message": "Saat tab berubah" + }, + "white": { + "message": "Putih" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Kuning" + }, + "youtubeHeaderLeft": { + "message": "Header YouTube (kiri)" + }, + "youtubeHeaderRight": { + "message": "Header YouTube (kanan)" + }, + "youtubeHomePage": { + "message": "Beranda YouTube" + }, + "youtubeLanguage": { + "message": "Bahasa YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube membatasi kualitas video hingga 1080p untuk codec h.264" + } } \ No newline at end of file diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 47d80151f..1dabee5c0 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -1,968 +1,983 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Al riguardo" - }, - "accept": { - "message": "Accetta" - }, - "activate": { - "message": "Attivo/a" - }, - "activateCaptions": { - "message": "Attiva didascalie" - }, - "activateFullscreen": { - "message": "Attiva schermo intero" - }, - "activated": { - "message": "Attivato/a" - }, - "activatedFeatures": { - "message": "Funzionalità attivate" - }, - "activeFeatures": { - "message": "Funzioni disponibili" - }, - "addScrollToTop": { - "message": "Aggiungi «Scorri in cima»" - }, - "ads": { - "message": "Pubblicità" - }, - "all": { - "message": "Tutte" - }, - "allow": { - "message": "Permetti" - }, - "allow60fps": { - "message": "Permetti 60 fps" - }, - "alwaysActive": { - "message": "Sempre attivo" - }, - "alwaysShowProgressBar": { - "message": "Mostra sempre barra di avanzamento" - }, - "amber": { - "message": "Ambra" - }, - "analyzer": { - "message": "Analizzatore" - }, - "appearance": { - "message": "Aspetto" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formati audio" - }, - "auto": { - "message": "Automatico" - }, - "autoFullscreen": { - "message": "Schermo intero automatico" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausa automatica al cambio scheda" - }, - "autoplay": { - "message": "Avvio automatico" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Backup e reimpostazione" - }, - "baseOnSystemColorScheme": { - "message": "Basato sullo schema colore di sistema" - }, - "belowPlayer": { - "message": "Sotto il lettore" - }, - "black": { - "message": "Nero" - }, - "blacklist": { - "message": "Lista nera" - }, - "blockAll": { - "message": "Blocca tutte" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Blu" - }, - "blueGray": { - "message": "Grigio blu" - }, - "bluelight": { - "message": "Luce blu" - }, - "brown": { - "message": "Marrone" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Versione browser" - }, - "bubbles": { - "message": "Bolle" - }, - "bug": { - "message": "Difetto" - }, - "buttons": { - "message": "Pulsanti" - }, - "cancel": { - "message": "Annulla" - }, - "categories": { - "message": "Categorie" - }, - "channel": { - "message": "Canale" - }, - "channels": { - "message": "Canali" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Appunti" - }, - "codecH264": { - "message": "Codec H.264" - }, - "collapseOfSubscriptionSections": { - "message": "Comprimi sezioni di sottoscrizione" - }, - "collapsed": { - "message": "Compressa/i" - }, - "comments": { - "message": "Commenti" - }, - "confirmationBeforeClosing": { - "message": "Conferma prima della chiusura" - }, - "cookies": { - "message": "Cookie" - }, - "cores": { - "message": "Core" - }, - "cropChapterTitles": { - "message": "Ritaglia titoli dei capitoli" - }, - "customCss": { - "message": "CSS personalizzato" - }, - "customJs": { - "message": "JS personalizzato" - }, - "customMiniPlayer": { - "message": "Mini lettore personalizzato" - }, - "cyan": { - "message": "Ciano" - }, - "dark": { - "message": "Scuro" - }, - "darkTheme": { - "message": "Tema scuro" - }, - "dateAndTime": { - "message": "Data e ora" - }, - "dawn": { - "message": "Albeggio" - }, - "decreasePlaybackSpeed": { - "message": "Riduci velocità di riproduzione" - }, - "decreaseVolume": { - "message": "Diminuisci volume" - }, - "deepOrange": { - "message": "Arancione intenso" - }, - "deepPurple": { - "message": "Viola intenso" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Scheda predefinita" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Cancella cookie YouTube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Descrizione" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Deserto" - }, - "details": { - "message": "Dettagli" - }, - "developerOptions": { - "message": "Opzioni per sviluppatori" - }, - "device": { - "message": "Dispositivo" - }, - "dim": { - "message": "Smorzamento" - }, - "disabled": { - "message": "Disabilitato" - }, - "dislike": { - "message": "Non mi piace" - }, - "doNotChange": { - "message": "Non cambiare" - }, - "donate": { - "message": "Donazione" - }, - "draggable": { - "message": "Trascinabile" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "E-mail" - }, - "empty": { - "message": "Vuota" - }, - "enabled": { - "message": "Abilitato" - }, - "enabledForced": { - "message": "Abilitato (forzato)" - }, - "expanded": { - "message": "Estesa" - }, - "exportSettings": { - "message": "Esporta impostazioni" - }, - "extension": { - "message": "Estensione" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filtri" - }, - "fitToWindow": { - "message": "Adatta alla finestra" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Piè di pagina" - }, - "forceSDR": { - "message": "Forza SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Velocità di riproduzione forzata" - }, - "forcedTheaterMode": { - "message": "Modalità cinema forzata" - }, - "forcedVolume": { - "message": "Volume forzato" - }, - "foundABug": { - "message": "Trovato un difetto?" - }, - "fullWindow": { - "message": "Finestra intera" - }, - "general": { - "message": "Generale" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Vai alla casella di ricerca" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura in altà qualità" - }, - "hdThumbnails": { - "message": "Miniature in alta qualità" - }, - "header": { - "message": "Intestazione" - }, - "hidden": { - "message": "Nascosta/i" - }, - "hiddenOnVideoPage": { - "message": "Nascosta nella pagina video" - }, - "hideAnimatedThumbnails": { - "message": "Nascondi miniature animate" - }, - "hideAnnotations": { - "message": "Nascondi annotazioni" - }, - "hideCards": { - "message": "Nascondi tessere di fine video" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Nascondi dettagli" - }, - "hideEndscreen": { - "message": "Nascondi finale video" - }, - "hideFeaturedContent": { - "message": "Nascondi contenuti in primo piano" - }, - "hideFooter": { - "message": "Nascondi piè di pagina" - }, - "hideGradientBottom": { - "message": "Nascondi fondo gradiente" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Nascondi scaletta" - }, - "hideRightButtons": { - "message": "Nascondi pulsanti sulla destra" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Nascondi «Scorri per dettagli»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Nascondi contatore visualizzazioni" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "Cronologia" - }, - "home": { - "message": "Pagina iniziale" - }, - "hover": { - "message": "In sospensione" - }, - "hoverOnVideoPage": { - "message": "In sospensione sulla pagine del video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Quanto tempo fa il video è stato caricato" - }, - "icons": { - "message": "Icone" - }, - "iconsOnly": { - "message": "Solo icone" - }, - "importSettings": { - "message": "Importa impostazioni" - }, - "improveLogo": { - "message": "Migliora logo YouTube" - }, - "improvedtubeIconOnYoutube": { - "message": "Icona su YouTube" - }, - "improvedtubeLanguage": { - "message": "Lingua" - }, - "improvedtubeVersion": { - "message": "Versione" - }, - "increasePlaybackSpeed": { - "message": "Incrementa velocità di riproduzione" - }, - "increaseVolume": { - "message": "Aumenta volume" - }, - "indigo": { - "message": "Indaco" - }, - "items": { - "message": "Oggetti" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Lingue" - }, - "legacyYoutube": { - "message": "YouTube versione legacy" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Chiaro" - }, - "lightBlue": { - "message": "Blu chiaro" - }, - "lightGreen": { - "message": "Verde chiaro" - }, - "like": { - "message": "Mi piace" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Numero di Mi piace" - }, - "lime": { - "message": "Lime" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Chat dal vivo" - }, - "liveChatType": { - "message": "Tipologia chat dal vivo" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Normalizzazione rumorosità" - }, - "markWatchedVideos": { - "message": "Contrassegna video visti" - }, - "mixer": { - "message": "Mixer" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Miei colori" - }, - "name": { - "message": "Nome" - }, - "nativeMiniPlayer": { - "message": "Mini lettore nativo" - }, - "new": { - "message": "Nuovo" - }, - "nextVideo": { - "message": "Prossimo video" - }, - "night": { - "message": "Notte" - }, - "noActiveFeatures": { - "message": "Nessuna funzione attivata" - }, - "noOpenVideoTabs": { - "message": "Nessuna scheda video aperta" - }, - "none": { - "message": "Alcuno/a" - }, - "normal": { - "message": "Standard" - }, - "old": { - "message": "Vecchio" - }, - "onAllVideos": { - "message": "Su tutti i video" - }, - "onSubscribedChannels": { - "message": "In canali sottoscritti" - }, - "onlyActiveOnYoutube": { - "message": "Attivo solo su YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Istanza unica di riproduzione attiva" - }, - "orange": { - "message": "Arancione" - }, - "os": { - "message": "Sistema Operativo" - }, - "other": { - "message": "Altro" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Autorizzazioni" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Pianura" - }, - "platform": { - "message": "Piattaforma" - }, - "playPause": { - "message": "Avvio/Pausa" - }, - "playbackSpeed": { - "message": "Velocità di riproduzione" - }, - "player": { - "message": "Lettore" - }, - "playerColor": { - "message": "Colore lettore" - }, - "playerSize": { - "message": "Dimensione lettore" - }, - "playlist": { - "message": "Scaletta" - }, - "playlists": { - "message": "Scalette" - }, - "popupPlayer": { - "message": "Lettore pop-up" - }, - "position": { - "message": "Posizione" - }, - "pressAnyKeyOrScroll": { - "message": "Premere un qualunque tasto o scorrere" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Premere un qualunque tasto o usare rotella del mouse" - }, - "previousVideo": { - "message": "Video precedente" - }, - "primaryColor": { - "message": "Colore primario" - }, - "purple": { - "message": "Viola" - }, - "quality": { - "message": "Qualità" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Valutaci" - }, - "red": { - "message": "Rosso" - }, - "redDislikeButton": { - "message": "Mostra pulsante Non mi piace in rosso" - }, - "relatedVideos": { - "message": "Video correlati" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Rimuovi risultati di ricerca correlati" - }, - "repeat": { - "message": "Ripeti" - }, - "reset": { - "message": "Reimpostazione" - }, - "resetAllSettings": { - "message": "Reimposta tutte le impostazioni" - }, - "resetAllShortcuts": { - "message": "Reimposta tutte le scorciatoie" - }, - "reverse": { - "message": "Inverti" - }, - "rotate": { - "message": "Ruota" - }, - "save": { - "message": "Salva" - }, - "saveAs": { - "message": "Salva come" - }, - "schedule": { - "message": "Programmazione" - }, - "screen": { - "message": "Schermo" - }, - "screenshot": { - "message": "Screenshot" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "Ricerca" - }, - "searchBarOnly": { - "message": "Cerca solamente nella barra" - }, - "seekBackward10Seconds": { - "message": "Muovi indietro 10 secondi" - }, - "seekForward10Seconds": { - "message": "Muovi avanti 10 secondi" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Impostazioni" - }, - "settingsSuccessfullyImported": { - "message": "Impostazioni importate con successo" - }, - "shortcuts": { - "message": "Scorciatoie" - }, - "showCardsOnMouseHover": { - "message": "Mostra tessere di fine video al passaggio del puntatore" - }, - "showChannelVideosCount": { - "message": "Mostra contatore visualizzazioni canale" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Riproduzione casuale" - }, - "sidebar": { - "message": "Barra laterale" - }, - "spacebar": { - "message": "Barra spaziatrice" - }, - "squaredUserImages": { - "message": "Immagini utenti squadrate" - }, - "static": { - "message": "Statica" - }, - "statsForNerds": { - "message": "Visualizza statistiche per nerd" - }, - "stop": { - "message": "Arresto" - }, - "style": { - "message": "Stile" - }, - "styles": { - "message": "Stili" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Sottoscrizioni" - }, - "subtitles": { - "message": "Sottotitoli" - }, - "sunset": { - "message": "Tramonto" - }, - "sunsetToSunrise": { - "message": "Dal tramonto all'alba" - }, - "systemPeferenceDark": { - "message": "Preferenza di sistema: scuro" - }, - "systemPeferenceLight": { - "message": "Preferenza di sistema: chiaro" - }, - "teal": { - "message": "Verde acqua" - }, - "textColor": { - "message": "Colore testo" - }, - "themes": { - "message": "Temi" - }, - "thisWillRemoveAllCookies": { - "message": "Questo rimuoverà tutti i cookie" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Questo rimuoverà tutti i cookie di YouTube" - }, - "thisWillResetAllSettings": { - "message": "Questo reimposterà l'intera configurazione" - }, - "thisWillResetAllShortcuts": { - "message": "Questo reimposterà tutte le scorciatoie" - }, - "thumbnails": { - "message": "Miniature" - }, - "timeFrom": { - "message": "Dalle ore" - }, - "timeTo": { - "message": "Alle ore" - }, - "todayAt": { - "message": "Oggi alle" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Dis/attiva tessere di fine video" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Chat superiore" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Avvio automatico trailer" - }, - "translations": { - "message": "Traduzioni" - }, - "transparentBackground": { - "message": "Sfondo trasparente" - }, - "trending": { - "message": "In tendenza" - }, - "tryToReloadThePage": { - "message": "Provare a ricaricare la pagina" - }, - "type": { - "message": "Tipologia" - }, - "upNextAutoplay": { - "message": "Avvio automatico prossimo video" - }, - "use24HourFormat": { - "message": "Usa formato a 24 ore" - }, - "version": { - "message": "Numero versione" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La descrizione del video verrà espansa per ottenere il nome della categoria" - }, - "videoFormats": { - "message": "Formati video" - }, - "videos": { - "message": "Video" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Guarda più tardi" - }, - "watchTime": { - "message": "Tempo di visione" - }, - "whenTabIsChanged": { - "message": "Quando si cambia scheda" - }, - "white": { - "message": "Bianco" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Giallo" - }, - "youtubeHeaderLeft": { - "message": "Intestazione YouTube (sinistra)" - }, - "youtubeHeaderRight": { - "message": "Intestazione YouTube (destra)" - }, - "youtubeHomePage": { - "message": "Pagina iniziale YouTube" - }, - "youtubeLanguage": { - "message": "Lingua YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limita la qualità video a 1080p per il codec h.264" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Al riguardo" + }, + "accept": { + "message": "Accetta" + }, + "activate": { + "message": "Attivo/a" + }, + "activateCaptions": { + "message": "Attiva didascalie" + }, + "activateFullscreen": { + "message": "Attiva schermo intero" + }, + "activated": { + "message": "Attivato/a" + }, + "activatedFeatures": { + "message": "Funzionalità attivate" + }, + "activeFeatures": { + "message": "Funzioni disponibili" + }, + "addScrollToTop": { + "message": "Aggiungi «Scorri in cima»" + }, + "ads": { + "message": "Pubblicità" + }, + "all": { + "message": "Tutte" + }, + "allow": { + "message": "Permetti" + }, + "allow60fps": { + "message": "Permetti 60 fps" + }, + "alwaysActive": { + "message": "Sempre attivo" + }, + "alwaysShowProgressBar": { + "message": "Mostra sempre barra di avanzamento" + }, + "amber": { + "message": "Ambra" + }, + "analyzer": { + "message": "Analizzatore" + }, + "appearance": { + "message": "Aspetto" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formati audio" + }, + "auto": { + "message": "Automatico" + }, + "autoFullscreen": { + "message": "Schermo intero automatico" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausa automatica al cambio scheda" + }, + "autoplay": { + "message": "Avvio automatico" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Backup e reimpostazione" + }, + "baseOnSystemColorScheme": { + "message": "Basato sullo schema colore di sistema" + }, + "belowPlayer": { + "message": "Sotto il lettore" + }, + "black": { + "message": "Nero" + }, + "blacklist": { + "message": "Lista nera" + }, + "blockAll": { + "message": "Blocca tutte" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Blu" + }, + "blueGray": { + "message": "Grigio blu" + }, + "bluelight": { + "message": "Luce blu" + }, + "brown": { + "message": "Marrone" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Versione browser" + }, + "bubbles": { + "message": "Bolle" + }, + "bug": { + "message": "Difetto" + }, + "buttons": { + "message": "Pulsanti" + }, + "cancel": { + "message": "Annulla" + }, + "categories": { + "message": "Categorie" + }, + "channel": { + "message": "Canale" + }, + "channels": { + "message": "Canali" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Appunti" + }, + "codecH264": { + "message": "Codec H.264" + }, + "collapseOfSubscriptionSections": { + "message": "Comprimi sezioni di sottoscrizione" + }, + "collapsed": { + "message": "Compressa/i" + }, + "comments": { + "message": "Commenti" + }, + "confirmationBeforeClosing": { + "message": "Conferma prima della chiusura" + }, + "cookies": { + "message": "Cookie" + }, + "cores": { + "message": "Core" + }, + "cropChapterTitles": { + "message": "Ritaglia titoli dei capitoli" + }, + "customCss": { + "message": "CSS personalizzato" + }, + "customJs": { + "message": "JS personalizzato" + }, + "customMiniPlayer": { + "message": "Mini lettore personalizzato" + }, + "cyan": { + "message": "Ciano" + }, + "dark": { + "message": "Scuro" + }, + "darkTheme": { + "message": "Tema scuro" + }, + "dateAndTime": { + "message": "Data e ora" + }, + "dawn": { + "message": "Albeggio" + }, + "decreasePlaybackSpeed": { + "message": "Riduci velocità di riproduzione" + }, + "decreaseVolume": { + "message": "Diminuisci volume" + }, + "deepOrange": { + "message": "Arancione intenso" + }, + "deepPurple": { + "message": "Viola intenso" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Scheda predefinita" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Cancella cookie YouTube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Descrizione" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Deserto" + }, + "details": { + "message": "Dettagli" + }, + "developerOptions": { + "message": "Opzioni per sviluppatori" + }, + "device": { + "message": "Dispositivo" + }, + "dim": { + "message": "Smorzamento" + }, + "disabled": { + "message": "Disabilitato" + }, + "dislike": { + "message": "Non mi piace" + }, + "doNotChange": { + "message": "Non cambiare" + }, + "donate": { + "message": "Donazione" + }, + "draggable": { + "message": "Trascinabile" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "E-mail" + }, + "empty": { + "message": "Vuota" + }, + "enabled": { + "message": "Abilitato" + }, + "enabledForced": { + "message": "Abilitato (forzato)" + }, + "expanded": { + "message": "Estesa" + }, + "exportSettings": { + "message": "Esporta impostazioni" + }, + "extension": { + "message": "Estensione" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filtri" + }, + "fitToWindow": { + "message": "Adatta alla finestra" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Piè di pagina" + }, + "forceSDR": { + "message": "Forza SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Velocità di riproduzione forzata" + }, + "forcedTheaterMode": { + "message": "Modalità cinema forzata" + }, + "forcedVolume": { + "message": "Volume forzato" + }, + "foundABug": { + "message": "Trovato un difetto?" + }, + "fullWindow": { + "message": "Finestra intera" + }, + "general": { + "message": "Generale" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Vai alla casella di ricerca" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "Miniatura in altà qualità" + }, + "header": { + "message": "Intestazione" + }, + "hidden": { + "message": "Nascosta/i" + }, + "hiddenOnVideoPage": { + "message": "Nascosta nella pagina video" + }, + "hideAnimatedThumbnails": { + "message": "Nascondi miniature animate" + }, + "hideAnnotations": { + "message": "Nascondi annotazioni" + }, + "hideCards": { + "message": "Nascondi tessere di fine video" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Nascondi dettagli" + }, + "hideEndscreen": { + "message": "Nascondi finale video" + }, + "hideFeaturedContent": { + "message": "Nascondi contenuti in primo piano" + }, + "hideFooter": { + "message": "Nascondi piè di pagina" + }, + "hideGradientBottom": { + "message": "Nascondi fondo gradiente" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Nascondi scaletta" + }, + "hideRightButtons": { + "message": "Nascondi pulsanti sulla destra" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Nascondi «Scorri per dettagli»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Nascondi contatore visualizzazioni" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Cronologia" + }, + "home": { + "message": "Pagina iniziale" + }, + "hover": { + "message": "In sospensione" + }, + "hoverOnVideoPage": { + "message": "In sospensione sulla pagine del video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Quanto tempo fa il video è stato caricato" + }, + "icons": { + "message": "Icone" + }, + "iconsOnly": { + "message": "Solo icone" + }, + "importSettings": { + "message": "Importa impostazioni" + }, + "improveLogo": { + "message": "Migliora logo YouTube" + }, + "improvedtubeIconOnYoutube": { + "message": "Icona su YouTube" + }, + "improvedtubeLanguage": { + "message": "Lingua" + }, + "improvedtubeVersion": { + "message": "Versione" + }, + "increasePlaybackSpeed": { + "message": "Incrementa velocità di riproduzione" + }, + "increaseVolume": { + "message": "Aumenta volume" + }, + "indigo": { + "message": "Indaco" + }, + "items": { + "message": "Oggetti" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Lingue" + }, + "legacyYoutube": { + "message": "YouTube versione legacy" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Chiaro" + }, + "lightBlue": { + "message": "Blu chiaro" + }, + "lightGreen": { + "message": "Verde chiaro" + }, + "like": { + "message": "Mi piace" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Numero di Mi piace" + }, + "lime": { + "message": "Lime" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Chat dal vivo" + }, + "liveChatType": { + "message": "Tipologia chat dal vivo" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Normalizzazione rumorosità" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Contrassegna video visti" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Miei colori" + }, + "name": { + "message": "Nome" + }, + "nativeMiniPlayer": { + "message": "Mini lettore nativo" + }, + "new": { + "message": "Nuovo" + }, + "nextVideo": { + "message": "Prossimo video" + }, + "night": { + "message": "Notte" + }, + "noActiveFeatures": { + "message": "Nessuna funzione attivata" + }, + "noOpenVideoTabs": { + "message": "Nessuna scheda video aperta" + }, + "none": { + "message": "Alcuno/a" + }, + "normal": { + "message": "Standard" + }, + "old": { + "message": "Vecchio" + }, + "onAllVideos": { + "message": "Su tutti i video" + }, + "onSubscribedChannels": { + "message": "In canali sottoscritti" + }, + "onlyActiveOnYoutube": { + "message": "Attivo solo su YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Istanza unica di riproduzione attiva" + }, + "orange": { + "message": "Arancione" + }, + "os": { + "message": "Sistema Operativo" + }, + "other": { + "message": "Altro" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Autorizzazioni" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Pianura" + }, + "platform": { + "message": "Piattaforma" + }, + "playPause": { + "message": "Avvio/Pausa" + }, + "playbackSpeed": { + "message": "Velocità di riproduzione" + }, + "player": { + "message": "Lettore" + }, + "playerColor": { + "message": "Colore lettore" + }, + "playerSize": { + "message": "Dimensione lettore" + }, + "playlist": { + "message": "Scaletta" + }, + "playlists": { + "message": "Scalette" + }, + "popupPlayer": { + "message": "Lettore pop-up" + }, + "position": { + "message": "Posizione" + }, + "pressAnyKeyOrScroll": { + "message": "Premere un qualunque tasto o scorrere" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Premere un qualunque tasto o usare rotella del mouse" + }, + "previousVideo": { + "message": "Video precedente" + }, + "primaryColor": { + "message": "Colore primario" + }, + "purple": { + "message": "Viola" + }, + "quality": { + "message": "Qualità" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Valutaci" + }, + "red": { + "message": "Rosso" + }, + "redDislikeButton": { + "message": "Mostra pulsante Non mi piace in rosso" + }, + "relatedVideos": { + "message": "Video correlati" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Rimuovi risultati di ricerca correlati" + }, + "repeat": { + "message": "Ripeti" + }, + "reset": { + "message": "Reimpostazione" + }, + "resetAllSettings": { + "message": "Reimposta tutte le impostazioni" + }, + "resetAllShortcuts": { + "message": "Reimposta tutte le scorciatoie" + }, + "reverse": { + "message": "Inverti" + }, + "rotate": { + "message": "Ruota" + }, + "save": { + "message": "Salva" + }, + "saveAs": { + "message": "Salva come" + }, + "schedule": { + "message": "Programmazione" + }, + "screen": { + "message": "Schermo" + }, + "screenshot": { + "message": "Screenshot" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Ricerca" + }, + "searchBarOnly": { + "message": "Cerca solamente nella barra" + }, + "seekBackward10Seconds": { + "message": "Muovi indietro 10 secondi" + }, + "seekForward10Seconds": { + "message": "Muovi avanti 10 secondi" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Impostazioni" + }, + "settingsSuccessfullyImported": { + "message": "Impostazioni importate con successo" + }, + "shortcuts": { + "message": "Scorciatoie" + }, + "showCardsOnMouseHover": { + "message": "Mostra tessere di fine video al passaggio del puntatore" + }, + "showChannelVideosCount": { + "message": "Mostra contatore visualizzazioni canale" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Riproduzione casuale" + }, + "sidebar": { + "message": "Barra laterale" + }, + "spacebar": { + "message": "Barra spaziatrice" + }, + "squaredUserImages": { + "message": "Immagini utenti squadrate" + }, + "static": { + "message": "Statica" + }, + "statsForNerds": { + "message": "Visualizza statistiche per nerd" + }, + "stop": { + "message": "Arresto" + }, + "style": { + "message": "Stile" + }, + "styles": { + "message": "Stili" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Sottoscrizioni" + }, + "subtitles": { + "message": "Sottotitoli" + }, + "sunset": { + "message": "Tramonto" + }, + "sunsetToSunrise": { + "message": "Dal tramonto all'alba" + }, + "systemPeferenceDark": { + "message": "Preferenza di sistema: scuro" + }, + "systemPeferenceLight": { + "message": "Preferenza di sistema: chiaro" + }, + "teal": { + "message": "Verde acqua" + }, + "textColor": { + "message": "Colore testo" + }, + "themes": { + "message": "Temi" + }, + "thisWillRemoveAllCookies": { + "message": "Questo rimuoverà tutti i cookie" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Questo rimuoverà tutti i cookie di YouTube" + }, + "thisWillResetAllSettings": { + "message": "Questo reimposterà l'intera configurazione" + }, + "thisWillResetAllShortcuts": { + "message": "Questo reimposterà tutte le scorciatoie" + }, + "thumbnails": { + "message": "Miniature" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Dalle ore" + }, + "timeTo": { + "message": "Alle ore" + }, + "todayAt": { + "message": "Oggi alle" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Dis/attiva tessere di fine video" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Chat superiore" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Avvio automatico trailer" + }, + "translations": { + "message": "Traduzioni" + }, + "transparentBackground": { + "message": "Sfondo trasparente" + }, + "trending": { + "message": "In tendenza" + }, + "tryToReloadThePage": { + "message": "Provare a ricaricare la pagina" + }, + "type": { + "message": "Tipologia" + }, + "upNextAutoplay": { + "message": "Avvio automatico prossimo video" + }, + "use24HourFormat": { + "message": "Usa formato a 24 ore" + }, + "version": { + "message": "Numero versione" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "La descrizione del video verrà espansa per ottenere il nome della categoria" + }, + "videoFormats": { + "message": "Formati video" + }, + "videos": { + "message": "Video" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Guarda più tardi" + }, + "watchTime": { + "message": "Tempo di visione" + }, + "whenTabIsChanged": { + "message": "Quando si cambia scheda" + }, + "white": { + "message": "Bianco" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Giallo" + }, + "youtubeHeaderLeft": { + "message": "Intestazione YouTube (sinistra)" + }, + "youtubeHeaderRight": { + "message": "Intestazione YouTube (destra)" + }, + "youtubeHomePage": { + "message": "Pagina iniziale YouTube" + }, + "youtubeLanguage": { + "message": "Lingua YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limita la qualità video a 1080p per il codec h.264" + } } \ No newline at end of file diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index ce1b5d02f..5cd11cc0f 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -1,971 +1,986 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "このソフトについて" - }, - "accept": { - "message": "了解" - }, - "activate": { - "message": "有効にする" - }, - "activateCaptions": { - "message": "キャプションを有効にする" - }, - "activateFullscreen": { - "message": "全画面にする" - }, - "activated": { - "message": "有効化" - }, - "activatedFeatures": { - "message": "有効化された機能" - }, - "activeFeatures": { - "message": "機能の切り替え" - }, - "addScrollToTop": { - "message": "「一番上にスクロール」のボタンを追加する" - }, - "ads": { - "message": "広告" - }, - "all": { - "message": "すべて" - }, - "allow": { - "message": "許可" - }, - "allow60fps": { - "message": "60fpsを許可する" - }, - "alwaysActive": { - "message": "常に有効" - }, - "alwaysShowProgressBar": { - "message": "常にプログレスバーを表示する" - }, - "amber": { - "message": "アンバー" - }, - "analyzer": { - "message": "分析" - }, - "appearance": { - "message": "外観" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "音声" - }, - "audioFormats": { - "message": "音声形式" - }, - "auto": { - "message": "自動" - }, - "autoFullscreen": { - "message": "自動的に全画面にする" - }, - "autopauseWhenSwitchingTabs": { - "message": "タブ切り替えで自動的に一時停止" - }, - "autoplay": { - "message": "自動再生" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "バックアップとリセット" - }, - "baseOnSystemColorScheme": { - "message": "システムの色に合わせる" - }, - "belowPlayer": { - "message": "プレーヤーの下" - }, - "black": { - "message": "黒" - }, - "blacklist": { - "message": "ブラックリスト" - }, - "blockAll": { - "message": "すべてブロックする" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "青" - }, - "blueGray": { - "message": "青みがかった灰" - }, - "bluelight": { - "message": "ブルーライト" - }, - "brown": { - "message": "茶" - }, - "browser": { - "message": "ブラウザー" - }, - "browserVersion": { - "message": "ブラウザーのバージョン" - }, - "bubbles": { - "message": "バブル" - }, - "bug": { - "message": "バグ" - }, - "buttons": { - "message": "ボタン" - }, - "cancel": { - "message": "キャンセル" - }, - "categories": { - "message": "カテゴリー" - }, - "channel": { - "message": "チャンネル" - }, - "channels": { - "message": "チャンネル" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "クリップボード" - }, - "codecH264": { - "message": "H.264コーデック" - }, - "collapseOfSubscriptionSections": { - "message": "サブスクリプション部分を畳む" - }, - "collapsed": { - "message": "畳む" - }, - "comments": { - "message": "コメント" - }, - "confirmationBeforeClosing": { - "message": "閉じる前に確認する" - }, - "cookies": { - "message": "Cookie" - }, - "cores": { - "message": "コア数" - }, - "cropChapterTitles": { - "message": "チャプターのタイトルをトリミングする" - }, - "customCss": { - "message": "カスタム CSS" - }, - "customJs": { - "message": "カスタム JS" - }, - "customMiniPlayer": { - "message": "カスタムミニプレーヤー" - }, - "cyan": { - "message": "シアン" - }, - "dark": { - "message": "ダーク" - }, - "darkTheme": { - "message": "ダークテーマ" - }, - "dateAndTime": { - "message": "日付と時刻" - }, - "dawn": { - "message": "夜明け" - }, - "decreasePlaybackSpeed": { - "message": "再生速度を下げる" - }, - "decreaseVolume": { - "message": "音量を下げる" - }, - "deepOrange": { - "message": "深いオレンジ" - }, - "deepPurple": { - "message": "深い紫" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "デフォルトのチャンネルタブ" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "YouTube の Cookie を削除する" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "説明" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "砂漠" - }, - "details": { - "message": "詳細" - }, - "developerOptions": { - "message": "開発者向けオプション" - }, - "device": { - "message": "デバイス" - }, - "dim": { - "message": "暗さ" - }, - "disabled": { - "message": "無効" - }, - "dislike": { - "message": "低評価" - }, - "doNotChange": { - "message": "変更しない" - }, - "donate": { - "message": "寄付する" - }, - "draggable": { - "message": "ドラッグ可能にする" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "なし" - }, - "enabled": { - "message": "有効" - }, - "enabledForced": { - "message": "有効 (強制)" - }, - "expanded": { - "message": "広げる" - }, - "exportSettings": { - "message": "設定をエクスポートする" - }, - "extension": { - "message": "拡張" - }, - "file": { - "message": "ファイル" - }, - "filters": { - "message": "フィルター" - }, - "fitToWindow": { - "message": "ウィンドウに合わせる" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "フォント" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "フッター" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "再生速度を指定する" - }, - "forcedTheaterMode": { - "message": "シアターモードにする" - }, - "forcedVolume": { - "message": "音量を指定する" - }, - "foundABug": { - "message": "バグ報告" - }, - "fullWindow": { - "message": "フルウィンドウ" - }, - "general": { - "message": "一般" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "検索ボックスに行く" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "緑" - }, - "hdThumbnail": { - "message": "HDサムネイル" - }, - "hdThumbnails": { - "message": "HDサムネイル" - }, - "header": { - "message": "ヘッダー" - }, - "hidden": { - "message": "隠す" - }, - "hiddenOnVideoPage": { - "message": "動画ページでは隠す" - }, - "hideAnimatedThumbnails": { - "message": "サムネイルのアニメーションを行わない" - }, - "hideAnnotations": { - "message": "アノテーションを隠す" - }, - "hideCards": { - "message": "カードを隠す" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "詳細を隠す" - }, - "hideEndscreen": { - "message": "再生終了時の画面を隠す" - }, - "hideFeaturedContent": { - "message": "おすすめチャンネルを非表示にする" - }, - "hideFooter": { - "message": "フッターを隠す" - }, - "hideGradientBottom": { - "message": "グラデーションの下部を隠す" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "再生リストを隠す" - }, - "hideRightButtons": { - "message": "右ボタンを隠す" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "「スクロールして詳細を表示」を隠す" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "視聴数を隠す" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "履歴" - }, - "home": { - "message": "ホーム" - }, - "hover": { - "message": "ホバー" - }, - "hoverOnVideoPage": { - "message": "動画ページではホバー" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "動画がアップロードされてからの時間" - }, - "icons": { - "message": "アイコン" - }, - "iconsOnly": { - "message": "アイコンのみ" - }, - "importSettings": { - "message": "設定をインポートする" - }, - "improveLogo": { - "message": "ロゴを改良する" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTubeアイコンをYouTubeに表示する" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube の言語" - }, - "improvedtubeVersion": { - "message": "ImprovedTube のバージョン" - }, - "increasePlaybackSpeed": { - "message": "再生速度を上げる" - }, - "increaseVolume": { - "message": "音量を上げる" - }, - "indigo": { - "message": "インディゴ" - }, - "items": { - "message": "アイテム" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "言語" - }, - "legacyYoutube": { - "message": "古い YouTube にする" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "ライト" - }, - "lightBlue": { - "message": "薄い青" - }, - "lightGreen": { - "message": "薄い緑" - }, - "like": { - "message": "高評価" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "評価" - }, - "lime": { - "message": "ライム" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "リスト" - }, - "liveChat": { - "message": "ライブチャット" - }, - "liveChatType": { - "message": "ライブチャットの種類" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "音量のノーマリゼーション" - }, - "markWatchedVideos": { - "message": "視聴した動画にマークを付ける" - }, - "mixer": { - "message": "ミキサー" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "色設定" - }, - "name": { - "message": "名前" - }, - "nativeMiniPlayer": { - "message": "ネイティブミニプレーヤー" - }, - "new": { - "message": "新規" - }, - "nextVideo": { - "message": "次の動画" - }, - "night": { - "message": "夜" - }, - "noActiveFeatures": { - "message": "有効化された機能がありません" - }, - "noOpenVideoTabs": { - "message": "開いている動画タブがありません" - }, - "none": { - "message": "なし" - }, - "normal": { - "message": "標準" - }, - "old": { - "message": "Old" - }, - "onAllVideos": { - "message": "すべて許可する" - }, - "onSubscribedChannels": { - "message": "登録したチャンネルでは許可する" - }, - "onlyActiveOnYoutube": { - "message": "YouTube で有効" - }, - "onlyOnePlayerInstancePlaying": { - "message": "1つのプレーヤーインスタンスのみにする" - }, - "orange": { - "message": "オレンジ" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "その他" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "権限" - }, - "pictureInPicture": { - "message": "ピクチャーインピクチャー" - }, - "pink": { - "message": "ピンク" - }, - "plain": { - "message": "プレーン" - }, - "platform": { - "message": "プラットフォーム" - }, - "playPause": { - "message": "再生/一時停止" - }, - "playbackSpeed": { - "message": "再生速度" - }, - "player": { - "message": "プレーヤー" - }, - "playerColor": { - "message": "プレーヤーの色" - }, - "playerSize": { - "message": "プレーヤーのサイズ" - }, - "playlist": { - "message": "再生リスト" - }, - "playlists": { - "message": "再生リスト" - }, - "popupPlayer": { - "message": "ポップアッププレーヤー" - }, - "position": { - "message": "位置" - }, - "pressAnyKeyOrScroll": { - "message": "任意のキーを押すか、マウスホイールを使用してください" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "任意のキーを押すか、マウスホイールを使用してください" - }, - "previousVideo": { - "message": "前の動画" - }, - "primaryColor": { - "message": "全体の色" - }, - "purple": { - "message": "紫" - }, - "quality": { - "message": "画質" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "評価する" - }, - "red": { - "message": "赤" - }, - "redDislikeButton": { - "message": "低評価ボタンを赤色で表示する" - }, - "relatedVideos": { - "message": "関連動画" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "関連動画を検索結果から削除する" - }, - "repeat": { - "message": "リピート" - }, - "reset": { - "message": "リセット" - }, - "resetAllSettings": { - "message": "すべての設定をリセットする" - }, - "resetAllShortcuts": { - "message": "すべてのショートカットをリセットする" - }, - "reverse": { - "message": "逆順にする" - }, - "rotate": { - "message": "回転" - }, - "save": { - "message": "保存" - }, - "saveAs": { - "message": "別名で保存する" - }, - "schedule": { - "message": "スケジュール" - }, - "screen": { - "message": "スクリーン" - }, - "screenshot": { - "message": "スクリーンショット" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "検索" - }, - "searchBarOnly": { - "message": "検索バーのみ" - }, - "seekBackward10Seconds": { - "message": "10秒戻る" - }, - "seekForward10Seconds": { - "message": "10秒進む" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "設定" - }, - "settingsSuccessfullyImported": { - "message": "設定を正常にインポートしました" - }, - "shortcuts": { - "message": "ショートカット" - }, - "showCardsOnMouseHover": { - "message": "マウスオーバーでカードを表示する" - }, - "showChannelVideosCount": { - "message": "チャンネルの動画数を表示する" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "シャッフル" - }, - "sidebar": { - "message": "サイドバー" - }, - "spacebar": { - "message": "スペースキー" - }, - "squaredUserImages": { - "message": "ユーザー画像を四角にする" - }, - "static": { - "message": "スタティック" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "ステップ" - }, - "stop": { - "message": "停止" - }, - "style": { - "message": "スタイル" - }, - "styles": { - "message": "スタイル" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "登録チャンネル" - }, - "subtitles": { - "message": "サブタイトル" - }, - "sunset": { - "message": "夕焼け" - }, - "sunsetToSunrise": { - "message": "夕焼けから日の出へ" - }, - "systemPeferenceDark": { - "message": "システム設定: ダーク" - }, - "systemPeferenceLight": { - "message": "システム設定: ライト" - }, - "teal": { - "message": "ティール" - }, - "textColor": { - "message": "文字の色" - }, - "themes": { - "message": "テーマ" - }, - "thisWillRemoveAllCookies": { - "message": "これはすべての Cookie を削除します。" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "YouTube のすべての Cookie を削除します" - }, - "thisWillResetAllSettings": { - "message": "すべての設定をリセットします。" - }, - "thisWillResetAllShortcuts": { - "message": "すべてのショートカットをリセットします" - }, - "thumbnails": { - "message": "サムネイル" - }, - "timeFrom": { - "message": "この時間から" - }, - "timeTo": { - "message": "この時間まで" - }, - "todayAt": { - "message": "測定時刻" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "上位チャット" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "トレーラーを自動再生する" - }, - "translations": { - "message": "翻訳" - }, - "transparentBackground": { - "message": "透明な背景" - }, - "trending": { - "message": "急上昇" - }, - "tryToReloadThePage": { - "message": "ページをリロードしてみてください" - }, - "type": { - "message": "種類" - }, - "upNextAutoplay": { - "message": "次の動画を自動再生する" - }, - "use24HourFormat": { - "message": "24時間表示にする" - }, - "version": { - "message": "バージョン" - }, - "video": { - "message": "動画" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "動画の説明はカテゴリ名を取得するために広げられます" - }, - "videoFormats": { - "message": "動画形式" - }, - "videos": { - "message": "動画" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "音量" - }, - "watchLater": { - "message": "後で見る" - }, - "watchTime": { - "message": "視聴時間" - }, - "whenTabIsChanged": { - "message": "タブを変更したとき" - }, - "white": { - "message": "白" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "黄" - }, - "youtubeHeaderLeft": { - "message": "YouTube のヘッダー左" - }, - "youtubeHeaderRight": { - "message": "YouTube のヘッダー右" - }, - "youtubeHomePage": { - "message": "YouTube のホームページ" - }, - "youtubeLanguage": { - "message": "YouTube の言語" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube はH.264コーデックの画質を1080pに制限しています" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "このソフトについて" + }, + "accept": { + "message": "了解" + }, + "activate": { + "message": "有効にする" + }, + "activateCaptions": { + "message": "キャプションを有効にする" + }, + "activateFullscreen": { + "message": "全画面にする" + }, + "activated": { + "message": "有効化" + }, + "activatedFeatures": { + "message": "有効化された機能" + }, + "activeFeatures": { + "message": "機能の切り替え" + }, + "addScrollToTop": { + "message": "「一番上にスクロール」のボタンを追加する" + }, + "ads": { + "message": "広告" + }, + "all": { + "message": "すべて" + }, + "allow": { + "message": "許可" + }, + "allow60fps": { + "message": "60fpsを許可する" + }, + "alwaysActive": { + "message": "常に有効" + }, + "alwaysShowProgressBar": { + "message": "常にプログレスバーを表示する" + }, + "amber": { + "message": "アンバー" + }, + "analyzer": { + "message": "分析" + }, + "appearance": { + "message": "外観" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "音声" + }, + "audioFormats": { + "message": "音声形式" + }, + "auto": { + "message": "自動" + }, + "autoFullscreen": { + "message": "自動的に全画面にする" + }, + "autopauseWhenSwitchingTabs": { + "message": "タブ切り替えで自動的に一時停止" + }, + "autoplay": { + "message": "自動再生" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "バックアップとリセット" + }, + "baseOnSystemColorScheme": { + "message": "システムの色に合わせる" + }, + "belowPlayer": { + "message": "プレーヤーの下" + }, + "black": { + "message": "黒" + }, + "blacklist": { + "message": "ブラックリスト" + }, + "blockAll": { + "message": "すべてブロックする" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "青" + }, + "blueGray": { + "message": "青みがかった灰" + }, + "bluelight": { + "message": "ブルーライト" + }, + "brown": { + "message": "茶" + }, + "browser": { + "message": "ブラウザー" + }, + "browserVersion": { + "message": "ブラウザーのバージョン" + }, + "bubbles": { + "message": "バブル" + }, + "bug": { + "message": "バグ" + }, + "buttons": { + "message": "ボタン" + }, + "cancel": { + "message": "キャンセル" + }, + "categories": { + "message": "カテゴリー" + }, + "channel": { + "message": "チャンネル" + }, + "channels": { + "message": "チャンネル" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "クリップボード" + }, + "codecH264": { + "message": "H.264コーデック" + }, + "collapseOfSubscriptionSections": { + "message": "サブスクリプション部分を畳む" + }, + "collapsed": { + "message": "畳む" + }, + "comments": { + "message": "コメント" + }, + "confirmationBeforeClosing": { + "message": "閉じる前に確認する" + }, + "cookies": { + "message": "Cookie" + }, + "cores": { + "message": "コア数" + }, + "cropChapterTitles": { + "message": "チャプターのタイトルをトリミングする" + }, + "customCss": { + "message": "カスタム CSS" + }, + "customJs": { + "message": "カスタム JS" + }, + "customMiniPlayer": { + "message": "カスタムミニプレーヤー" + }, + "cyan": { + "message": "シアン" + }, + "dark": { + "message": "ダーク" + }, + "darkTheme": { + "message": "ダークテーマ" + }, + "dateAndTime": { + "message": "日付と時刻" + }, + "dawn": { + "message": "夜明け" + }, + "decreasePlaybackSpeed": { + "message": "再生速度を下げる" + }, + "decreaseVolume": { + "message": "音量を下げる" + }, + "deepOrange": { + "message": "深いオレンジ" + }, + "deepPurple": { + "message": "深い紫" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "デフォルトのチャンネルタブ" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "YouTube の Cookie を削除する" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "説明" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "砂漠" + }, + "details": { + "message": "詳細" + }, + "developerOptions": { + "message": "開発者向けオプション" + }, + "device": { + "message": "デバイス" + }, + "dim": { + "message": "暗さ" + }, + "disabled": { + "message": "無効" + }, + "dislike": { + "message": "低評価" + }, + "doNotChange": { + "message": "変更しない" + }, + "donate": { + "message": "寄付する" + }, + "draggable": { + "message": "ドラッグ可能にする" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "なし" + }, + "enabled": { + "message": "有効" + }, + "enabledForced": { + "message": "有効 (強制)" + }, + "expanded": { + "message": "広げる" + }, + "exportSettings": { + "message": "設定をエクスポートする" + }, + "extension": { + "message": "拡張" + }, + "file": { + "message": "ファイル" + }, + "filters": { + "message": "フィルター" + }, + "fitToWindow": { + "message": "ウィンドウに合わせる" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "フォント" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "フッター" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "再生速度を指定する" + }, + "forcedTheaterMode": { + "message": "シアターモードにする" + }, + "forcedVolume": { + "message": "音量を指定する" + }, + "foundABug": { + "message": "バグ報告" + }, + "fullWindow": { + "message": "フルウィンドウ" + }, + "general": { + "message": "一般" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "検索ボックスに行く" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "緑" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HDサムネイル" + }, + "header": { + "message": "ヘッダー" + }, + "hidden": { + "message": "隠す" + }, + "hiddenOnVideoPage": { + "message": "動画ページでは隠す" + }, + "hideAnimatedThumbnails": { + "message": "サムネイルのアニメーションを行わない" + }, + "hideAnnotations": { + "message": "アノテーションを隠す" + }, + "hideCards": { + "message": "カードを隠す" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "詳細を隠す" + }, + "hideEndscreen": { + "message": "再生終了時の画面を隠す" + }, + "hideFeaturedContent": { + "message": "おすすめチャンネルを非表示にする" + }, + "hideFooter": { + "message": "フッターを隠す" + }, + "hideGradientBottom": { + "message": "グラデーションの下部を隠す" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "再生リストを隠す" + }, + "hideRightButtons": { + "message": "右ボタンを隠す" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "「スクロールして詳細を表示」を隠す" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "視聴数を隠す" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "履歴" + }, + "home": { + "message": "ホーム" + }, + "hover": { + "message": "ホバー" + }, + "hoverOnVideoPage": { + "message": "動画ページではホバー" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "動画がアップロードされてからの時間" + }, + "icons": { + "message": "アイコン" + }, + "iconsOnly": { + "message": "アイコンのみ" + }, + "importSettings": { + "message": "設定をインポートする" + }, + "improveLogo": { + "message": "ロゴを改良する" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTubeアイコンをYouTubeに表示する" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube の言語" + }, + "improvedtubeVersion": { + "message": "ImprovedTube のバージョン" + }, + "increasePlaybackSpeed": { + "message": "再生速度を上げる" + }, + "increaseVolume": { + "message": "音量を上げる" + }, + "indigo": { + "message": "インディゴ" + }, + "items": { + "message": "アイテム" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "言語" + }, + "legacyYoutube": { + "message": "古い YouTube にする" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "ライト" + }, + "lightBlue": { + "message": "薄い青" + }, + "lightGreen": { + "message": "薄い緑" + }, + "like": { + "message": "高評価" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "評価" + }, + "lime": { + "message": "ライム" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "リスト" + }, + "liveChat": { + "message": "ライブチャット" + }, + "liveChatType": { + "message": "ライブチャットの種類" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "音量のノーマリゼーション" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "視聴した動画にマークを付ける" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "ミキサー" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "色設定" + }, + "name": { + "message": "名前" + }, + "nativeMiniPlayer": { + "message": "ネイティブミニプレーヤー" + }, + "new": { + "message": "新規" + }, + "nextVideo": { + "message": "次の動画" + }, + "night": { + "message": "夜" + }, + "noActiveFeatures": { + "message": "有効化された機能がありません" + }, + "noOpenVideoTabs": { + "message": "開いている動画タブがありません" + }, + "none": { + "message": "なし" + }, + "normal": { + "message": "標準" + }, + "old": { + "message": "Old" + }, + "onAllVideos": { + "message": "すべて許可する" + }, + "onSubscribedChannels": { + "message": "登録したチャンネルでは許可する" + }, + "onlyActiveOnYoutube": { + "message": "YouTube で有効" + }, + "onlyOnePlayerInstancePlaying": { + "message": "1つのプレーヤーインスタンスのみにする" + }, + "orange": { + "message": "オレンジ" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "その他" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "権限" + }, + "pictureInPicture": { + "message": "ピクチャーインピクチャー" + }, + "pink": { + "message": "ピンク" + }, + "plain": { + "message": "プレーン" + }, + "platform": { + "message": "プラットフォーム" + }, + "playPause": { + "message": "再生/一時停止" + }, + "playbackSpeed": { + "message": "再生速度" + }, + "player": { + "message": "プレーヤー" + }, + "playerColor": { + "message": "プレーヤーの色" + }, + "playerSize": { + "message": "プレーヤーのサイズ" + }, + "playlist": { + "message": "再生リスト" + }, + "playlists": { + "message": "再生リスト" + }, + "popupPlayer": { + "message": "ポップアッププレーヤー" + }, + "position": { + "message": "位置" + }, + "pressAnyKeyOrScroll": { + "message": "任意のキーを押すか、マウスホイールを使用してください" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "任意のキーを押すか、マウスホイールを使用してください" + }, + "previousVideo": { + "message": "前の動画" + }, + "primaryColor": { + "message": "全体の色" + }, + "purple": { + "message": "紫" + }, + "quality": { + "message": "画質" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "評価する" + }, + "red": { + "message": "赤" + }, + "redDislikeButton": { + "message": "低評価ボタンを赤色で表示する" + }, + "relatedVideos": { + "message": "関連動画" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "関連動画を検索結果から削除する" + }, + "repeat": { + "message": "リピート" + }, + "reset": { + "message": "リセット" + }, + "resetAllSettings": { + "message": "すべての設定をリセットする" + }, + "resetAllShortcuts": { + "message": "すべてのショートカットをリセットする" + }, + "reverse": { + "message": "逆順にする" + }, + "rotate": { + "message": "回転" + }, + "save": { + "message": "保存" + }, + "saveAs": { + "message": "別名で保存する" + }, + "schedule": { + "message": "スケジュール" + }, + "screen": { + "message": "スクリーン" + }, + "screenshot": { + "message": "スクリーンショット" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "検索" + }, + "searchBarOnly": { + "message": "検索バーのみ" + }, + "seekBackward10Seconds": { + "message": "10秒戻る" + }, + "seekForward10Seconds": { + "message": "10秒進む" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "設定" + }, + "settingsSuccessfullyImported": { + "message": "設定を正常にインポートしました" + }, + "shortcuts": { + "message": "ショートカット" + }, + "showCardsOnMouseHover": { + "message": "マウスオーバーでカードを表示する" + }, + "showChannelVideosCount": { + "message": "チャンネルの動画数を表示する" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "シャッフル" + }, + "sidebar": { + "message": "サイドバー" + }, + "spacebar": { + "message": "スペースキー" + }, + "squaredUserImages": { + "message": "ユーザー画像を四角にする" + }, + "static": { + "message": "スタティック" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "ステップ" + }, + "stop": { + "message": "停止" + }, + "style": { + "message": "スタイル" + }, + "styles": { + "message": "スタイル" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "登録チャンネル" + }, + "subtitles": { + "message": "サブタイトル" + }, + "sunset": { + "message": "夕焼け" + }, + "sunsetToSunrise": { + "message": "夕焼けから日の出へ" + }, + "systemPeferenceDark": { + "message": "システム設定: ダーク" + }, + "systemPeferenceLight": { + "message": "システム設定: ライト" + }, + "teal": { + "message": "ティール" + }, + "textColor": { + "message": "文字の色" + }, + "themes": { + "message": "テーマ" + }, + "thisWillRemoveAllCookies": { + "message": "これはすべての Cookie を削除します。" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "YouTube のすべての Cookie を削除します" + }, + "thisWillResetAllSettings": { + "message": "すべての設定をリセットします。" + }, + "thisWillResetAllShortcuts": { + "message": "すべてのショートカットをリセットします" + }, + "thumbnails": { + "message": "サムネイル" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "この時間から" + }, + "timeTo": { + "message": "この時間まで" + }, + "todayAt": { + "message": "測定時刻" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "上位チャット" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "トレーラーを自動再生する" + }, + "translations": { + "message": "翻訳" + }, + "transparentBackground": { + "message": "透明な背景" + }, + "trending": { + "message": "急上昇" + }, + "tryToReloadThePage": { + "message": "ページをリロードしてみてください" + }, + "type": { + "message": "種類" + }, + "upNextAutoplay": { + "message": "次の動画を自動再生する" + }, + "use24HourFormat": { + "message": "24時間表示にする" + }, + "version": { + "message": "バージョン" + }, + "video": { + "message": "動画" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "動画の説明はカテゴリ名を取得するために広げられます" + }, + "videoFormats": { + "message": "動画形式" + }, + "videos": { + "message": "動画" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "音量" + }, + "watchLater": { + "message": "後で見る" + }, + "watchTime": { + "message": "視聴時間" + }, + "whenTabIsChanged": { + "message": "タブを変更したとき" + }, + "white": { + "message": "白" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "黄" + }, + "youtubeHeaderLeft": { + "message": "YouTube のヘッダー左" + }, + "youtubeHeaderRight": { + "message": "YouTube のヘッダー右" + }, + "youtubeHomePage": { + "message": "YouTube のホームページ" + }, + "youtubeLanguage": { + "message": "YouTube の言語" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube はH.264コーデックの画質を1080pに制限しています" + } } \ No newline at end of file diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 9ec7f3263..29a6d0177 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -1,968 +1,983 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "정보" - }, - "accept": { - "message": "동의" - }, - "activate": { - "message": "활성화" - }, - "activateCaptions": { - "message": "자막 활성화" - }, - "activateFullscreen": { - "message": "전체화면 활성화" - }, - "activated": { - "message": "활성화됨" - }, - "activatedFeatures": { - "message": "활성화된 기능" - }, - "activeFeatures": { - "message": "활성 기능" - }, - "addScrollToTop": { - "message": "<<맨위로>> 추가" - }, - "ads": { - "message": "광고" - }, - "all": { - "message": "모두" - }, - "allow": { - "message": "허용" - }, - "allow60fps": { - "message": "60에프피에스(fps) 허용" - }, - "alwaysActive": { - "message": "항상 활성화" - }, - "alwaysShowProgressBar": { - "message": "재생 진행상태(Progress Bar) 항상 표시" - }, - "amber": { - "message": "호박색" - }, - "analyzer": { - "message": "분석" - }, - "appearance": { - "message": "외관" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "오디오" - }, - "audioFormats": { - "message": "오디오 형식" - }, - "auto": { - "message": "자동" - }, - "autoFullscreen": { - "message": "자동 전체화면" - }, - "autopauseWhenSwitchingTabs": { - "message": "탭전환시 자동 일시정지" - }, - "autoplay": { - "message": "자동재생" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "백업 & 리셋" - }, - "baseOnSystemColorScheme": { - "message": "시스템 색 구성표 기반" - }, - "belowPlayer": { - "message": "플레이어 아래" - }, - "black": { - "message": "검정" - }, - "blacklist": { - "message": "블랙리스트" - }, - "blockAll": { - "message": "모두 차단" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "파랑" - }, - "blueGray": { - "message": "블루그레이" - }, - "bluelight": { - "message": "블루라이트" - }, - "brown": { - "message": "갈색" - }, - "browser": { - "message": "브라우저" - }, - "browserVersion": { - "message": "브라우저 버전" - }, - "bubbles": { - "message": "버블" - }, - "bug": { - "message": "버그" - }, - "buttons": { - "message": "버튼" - }, - "cancel": { - "message": "취소" - }, - "categories": { - "message": "카테고리" - }, - "channel": { - "message": "채널" - }, - "channels": { - "message": "채널" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "클립보드" - }, - "codecH264": { - "message": "코덱 h.264" - }, - "collapseOfSubscriptionSections": { - "message": "구독섹션 축소" - }, - "collapsed": { - "message": "축소됨" - }, - "comments": { - "message": "댓글" - }, - "confirmationBeforeClosing": { - "message": "닫기전에 확인하기" - }, - "cookies": { - "message": "쿠키" - }, - "cores": { - "message": "코어" - }, - "cropChapterTitles": { - "message": "제목 자르기" - }, - "customCss": { - "message": "사용자 지정 캐스캐이팅 스타일 시트(CSS)" - }, - "customJs": { - "message": "사용자 지정 자바스크립트(JS)" - }, - "customMiniPlayer": { - "message": "커스텀 미니플레이어" - }, - "cyan": { - "message": "옥색" - }, - "dark": { - "message": "다크" - }, - "darkTheme": { - "message": "다크 테마" - }, - "dateAndTime": { - "message": "날짜 & 시간" - }, - "dawn": { - "message": "석양" - }, - "decreasePlaybackSpeed": { - "message": "되감기 속도 감소" - }, - "decreaseVolume": { - "message": "볼륨 감소" - }, - "deepOrange": { - "message": "진한 주황" - }, - "deepPurple": { - "message": "진한 보라" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "기본 채널 탭" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "유튜브 쿠키 삭제" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "설명" - }, - "description_ext": { - "message": "유튜브를 깔끌하고 스마트하게 만들어줍니다! 유튜브 비디오 내 컬러, 광고제거, 볼륨, 배속, 채널 툴, 스타일, HD, 광고성 블록, 태그, 키워드, 재생목록" - }, - "desert": { - "message": "사막" - }, - "details": { - "message": "자세히" - }, - "developerOptions": { - "message": "개발자 옵션" - }, - "device": { - "message": "디바이스" - }, - "dim": { - "message": "어둡게" - }, - "disabled": { - "message": "비활성화" - }, - "dislike": { - "message": "싫어요" - }, - "doNotChange": { - "message": "바꾸지 않음" - }, - "donate": { - "message": "후원하기" - }, - "draggable": { - "message": "드래그 가능" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "이메일" - }, - "empty": { - "message": "비어있음" - }, - "enabled": { - "message": "활성화" - }, - "enabledForced": { - "message": "강제로 활성화" - }, - "expanded": { - "message": "확장" - }, - "exportSettings": { - "message": "설정 내보내기" - }, - "extension": { - "message": "확대" - }, - "file": { - "message": "파일" - }, - "filters": { - "message": "필터" - }, - "fitToWindow": { - "message": "창크기에 맞추기" - }, - "flash": { - "message": "플래시" - }, - "font": { - "message": "글꼴" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "하단" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "되감기 속도 강제설정" - }, - "forcedTheaterMode": { - "message": "강제 영화관 모드" - }, - "forcedVolume": { - "message": "볼륨 강제설정" - }, - "foundABug": { - "message": "버그신고" - }, - "fullWindow": { - "message": "전체 화면" - }, - "general": { - "message": "일반" - }, - "github": { - "message": "깃허브(GitHub)" - }, - "goToSearchBox": { - "message": "검색창으로 이동" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "그래픽 처리 장치" - }, - "green": { - "message": "초록" - }, - "hdThumbnail": { - "message": "HD 썸네일" - }, - "hdThumbnails": { - "message": "HD 썸네일" - }, - "header": { - "message": "헤더" - }, - "hidden": { - "message": "숨김" - }, - "hiddenOnVideoPage": { - "message": "비디오 페이지 숨기기" - }, - "hideAnimatedThumbnails": { - "message": "썸네일 애니메이션 숨기기" - }, - "hideAnnotations": { - "message": "설명 숨기기" - }, - "hideCards": { - "message": "카드 숨기기" - }, - "hideCountryCode": { - "message": "국가코드 숨기기" - }, - "hideDate": { - "message": "날짜 숨기기" - }, - "hideDetails": { - "message": "상세설명 숨기기" - }, - "hideEndscreen": { - "message": "종료후 화면 숨기기" - }, - "hideFeaturedContent": { - "message": "추천 영상 숨기기" - }, - "hideFooter": { - "message": "하단 숨기기" - }, - "hideGradientBottom": { - "message": "그라데이션 맨 아래로 숨기기" - }, - "hideMoreButton": { - "message": "\"더보기\" 버튼 숨기기" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "재생 목록 숨기기" - }, - "hideRightButtons": { - "message": "오른쪽 버튼 숨기기" - }, - "hideSaveButton": { - "message": "\"저장\" 버튼 숨기기" - }, - "hideScrollForDetails": { - "message": "«스크롤 하여 자세한 설명» 숨기기" - }, - "hideShareButton": { - "message": "\"공유\" 버튼 숨기기" - }, - "hideSkipOverlay": { - "message": "\"오버레이 건너뛰기\" 숨기기" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "조회수 숨기기" - }, - "hideVoiceSearchButton": { - "message": "\"음성으로 찾기\" 버튼 숨기기" - }, - "history": { - "message": "히스토리" - }, - "home": { - "message": "홈" - }, - "hover": { - "message": "띄우기" - }, - "hoverOnVideoPage": { - "message": "비디오 페이지 띄우기" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "업로드 시기" - }, - "icons": { - "message": "아이콘" - }, - "iconsOnly": { - "message": "아이콘만" - }, - "importSettings": { - "message": "설정 불러오기" - }, - "improveLogo": { - "message": "향상된 로고" - }, - "improvedtubeIconOnYoutube": { - "message": "향상된 유튜브 아이콘" - }, - "improvedtubeLanguage": { - "message": "향상된 유튜브 언어" - }, - "improvedtubeVersion": { - "message": "향상된 유튜브 버전" - }, - "increasePlaybackSpeed": { - "message": "되감기 속도 증가" - }, - "increaseVolume": { - "message": "볼륨 증가" - }, - "indigo": { - "message": "남색" - }, - "items": { - "message": "요소" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "언어" - }, - "legacyYoutube": { - "message": "레거시 유튜브" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "밝게" - }, - "lightBlue": { - "message": "연파랑" - }, - "lightGreen": { - "message": "연초록" - }, - "like": { - "message": "좋아요" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "좋아요" - }, - "lime": { - "message": "라임" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "리스트" - }, - "liveChat": { - "message": "실시간 채팅" - }, - "liveChatType": { - "message": "실시간 채팅 유형" - }, - "location": { - "message": "지역" - }, - "loudnessNormalization": { - "message": "볼륨 자동조정" - }, - "markWatchedVideos": { - "message": "시청한 영상 표시" - }, - "mixer": { - "message": "믹서" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "내 컬러" - }, - "name": { - "message": "이름" - }, - "nativeMiniPlayer": { - "message": "네이티브 미니플레이어" - }, - "new": { - "message": "새로운 소식" - }, - "nextVideo": { - "message": "다음 영상" - }, - "night": { - "message": "저녘" - }, - "noActiveFeatures": { - "message": "활성 기능 없음" - }, - "noOpenVideoTabs": { - "message": "열린 비디오 탭 없음" - }, - "none": { - "message": "없음" - }, - "normal": { - "message": "기본" - }, - "old": { - "message": "오래됨" - }, - "onAllVideos": { - "message": "모든 비디오" - }, - "onSubscribedChannels": { - "message": "구독한 채널" - }, - "onlyActiveOnYoutube": { - "message": "유튜브만 활성화" - }, - "onlyOnePlayerInstancePlaying": { - "message": "하나의 플레이어만 재생" - }, - "orange": { - "message": "주황" - }, - "os": { - "message": "운영체제" - }, - "other": { - "message": "기타" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "권한" - }, - "pictureInPicture": { - "message": "픽처 인 픽처(PIP) 재생" - }, - "pink": { - "message": "분홍" - }, - "plain": { - "message": "무색" - }, - "platform": { - "message": "플랫폼" - }, - "playPause": { - "message": "재생 / 일시정지" - }, - "playbackSpeed": { - "message": "되감기 속도" - }, - "player": { - "message": "플레이어" - }, - "playerColor": { - "message": "플레이어 컬러" - }, - "playerSize": { - "message": "플레이어 크기" - }, - "playlist": { - "message": "플레이리스트" - }, - "playlists": { - "message": "플레이리스트" - }, - "popupPlayer": { - "message": "팝업 플레이어" - }, - "position": { - "message": "위치" - }, - "pressAnyKeyOrScroll": { - "message": "사용할 단축키 또는 마우스 휠을 누르세요." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "사용할 단축키 또는 마우스 휠을 누르세요." - }, - "previousVideo": { - "message": "이전 영상" - }, - "primaryColor": { - "message": "주 색상" - }, - "purple": { - "message": "보라" - }, - "quality": { - "message": "퀄리티" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "램" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "평가하기" - }, - "red": { - "message": "빨강" - }, - "relatedVideos": { - "message": "관련 영상" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "관련 검색결과 제거" - }, - "repeat": { - "message": "반복" - }, - "reset": { - "message": "리셋" - }, - "resetAllSettings": { - "message": "모든 설정 리셋" - }, - "resetAllShortcuts": { - "message": "모든 단축키 리셋" - }, - "reverse": { - "message": "반대로" - }, - "rotate": { - "message": "회전" - }, - "save": { - "message": "저장" - }, - "saveAs": { - "message": "다른이름으로 저장" - }, - "schedule": { - "message": "스케줄" - }, - "screen": { - "message": "스크린" - }, - "screenshot": { - "message": "스크린샷" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "검색" - }, - "searchBarOnly": { - "message": "검색창만" - }, - "seekBackward10Seconds": { - "message": "뒤로 10초" - }, - "seekForward10Seconds": { - "message": "앞으로 10초" - }, - "seekNextChapter": { - "message": "다음 챕터 보기" - }, - "seekPreviousChapter": { - "message": "이전 챕터 보기" - }, - "settings": { - "message": "설정" - }, - "settingsSuccessfullyImported": { - "message": "설정 내보내기 완료" - }, - "shortcuts": { - "message": "단축키" - }, - "showCardsOnMouseHover": { - "message": "마우스 올릴 때 카드보기" - }, - "showChannelVideosCount": { - "message": "채널의 비디오수 표시" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "셔플" - }, - "sidebar": { - "message": "사이드바" - }, - "spacebar": { - "message": "스페이스바" - }, - "squaredUserImages": { - "message": "정사각형 프로필사진" - }, - "static": { - "message": "고정" - }, - "statsForNerds": { - "message": "너드 통계 표시" - }, - "step": { - "message": "스텝" - }, - "stop": { - "message": "정지" - }, - "style": { - "message": "스타일" - }, - "styles": { - "message": "스타일" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "구독" - }, - "subtitles": { - "message": "자막" - }, - "sunset": { - "message": "일몰" - }, - "sunsetToSunrise": { - "message": "일몰부터 일출까지" - }, - "systemPeferenceDark": { - "message": "개인 설정: 다크" - }, - "systemPeferenceLight": { - "message": "개인 설정: 라이트" - }, - "teal": { - "message": "청록" - }, - "textColor": { - "message": "텍스트 색상" - }, - "themes": { - "message": "테마" - }, - "thisWillRemoveAllCookies": { - "message": "모든 쿠키를 삭제합니다." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "모든 유튜브 쿠키를 삭제합니다." - }, - "thisWillResetAllSettings": { - "message": "모든 설정을 초기화 합니다." - }, - "thisWillResetAllShortcuts": { - "message": "모든 단축키를 초기화 합니다." - }, - "thumbnails": { - "message": "썸네일" - }, - "timeFrom": { - "message": "다음시간 부터" - }, - "timeTo": { - "message": "다음시간 까지" - }, - "todayAt": { - "message": "오늘의" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "토글 카드" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "탑 챗" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "트레일러 자동재생" - }, - "translations": { - "message": "번역" - }, - "transparentBackground": { - "message": "투명한 배경" - }, - "trending": { - "message": "인기" - }, - "tryToReloadThePage": { - "message": "새로고침을 시도하십시오" - }, - "type": { - "message": "타입" - }, - "upNextAutoplay": { - "message": "다음영상 자동재생" - }, - "use24HourFormat": { - "message": "24시간 형식 사용" - }, - "version": { - "message": "버젼" - }, - "video": { - "message": "영상" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "카테고리의 이름을 얻기 위해 비디오 설명이 확장됩니다" - }, - "videoFormats": { - "message": "비디오 형식" - }, - "videos": { - "message": "비디오" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "음량" - }, - "watchLater": { - "message": "나중에 보기" - }, - "watchTime": { - "message": "시간 보기" - }, - "whenTabIsChanged": { - "message": "탭이 바뀔때" - }, - "white": { - "message": "하양" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "노랑" - }, - "youtubeHeaderLeft": { - "message": "유튜브 헤더 (왼쪽)" - }, - "youtubeHeaderRight": { - "message": "유튜브 헤더 (오른쪽)" - }, - "youtubeHomePage": { - "message": "유튜브 홈페이지" - }, - "youtubeLanguage": { - "message": "유튜브 언어" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "유튜브는 h.264 코덱에서 비디오 품질을 1080p로 제한합니다" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "정보" + }, + "accept": { + "message": "동의" + }, + "activate": { + "message": "활성화" + }, + "activateCaptions": { + "message": "자막 활성화" + }, + "activateFullscreen": { + "message": "전체화면 활성화" + }, + "activated": { + "message": "활성화됨" + }, + "activatedFeatures": { + "message": "활성화된 기능" + }, + "activeFeatures": { + "message": "활성 기능" + }, + "addScrollToTop": { + "message": "<<맨위로>> 추가" + }, + "ads": { + "message": "광고" + }, + "all": { + "message": "모두" + }, + "allow": { + "message": "허용" + }, + "allow60fps": { + "message": "60에프피에스(fps) 허용" + }, + "alwaysActive": { + "message": "항상 활성화" + }, + "alwaysShowProgressBar": { + "message": "재생 진행상태(Progress Bar) 항상 표시" + }, + "amber": { + "message": "호박색" + }, + "analyzer": { + "message": "분석" + }, + "appearance": { + "message": "외관" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "오디오" + }, + "audioFormats": { + "message": "오디오 형식" + }, + "auto": { + "message": "자동" + }, + "autoFullscreen": { + "message": "자동 전체화면" + }, + "autopauseWhenSwitchingTabs": { + "message": "탭전환시 자동 일시정지" + }, + "autoplay": { + "message": "자동재생" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "백업 & 리셋" + }, + "baseOnSystemColorScheme": { + "message": "시스템 색 구성표 기반" + }, + "belowPlayer": { + "message": "플레이어 아래" + }, + "black": { + "message": "검정" + }, + "blacklist": { + "message": "블랙리스트" + }, + "blockAll": { + "message": "모두 차단" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "파랑" + }, + "blueGray": { + "message": "블루그레이" + }, + "bluelight": { + "message": "블루라이트" + }, + "brown": { + "message": "갈색" + }, + "browser": { + "message": "브라우저" + }, + "browserVersion": { + "message": "브라우저 버전" + }, + "bubbles": { + "message": "버블" + }, + "bug": { + "message": "버그" + }, + "buttons": { + "message": "버튼" + }, + "cancel": { + "message": "취소" + }, + "categories": { + "message": "카테고리" + }, + "channel": { + "message": "채널" + }, + "channels": { + "message": "채널" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "클립보드" + }, + "codecH264": { + "message": "코덱 h.264" + }, + "collapseOfSubscriptionSections": { + "message": "구독섹션 축소" + }, + "collapsed": { + "message": "축소됨" + }, + "comments": { + "message": "댓글" + }, + "confirmationBeforeClosing": { + "message": "닫기전에 확인하기" + }, + "cookies": { + "message": "쿠키" + }, + "cores": { + "message": "코어" + }, + "cropChapterTitles": { + "message": "제목 자르기" + }, + "customCss": { + "message": "사용자 지정 캐스캐이팅 스타일 시트(CSS)" + }, + "customJs": { + "message": "사용자 지정 자바스크립트(JS)" + }, + "customMiniPlayer": { + "message": "커스텀 미니플레이어" + }, + "cyan": { + "message": "옥색" + }, + "dark": { + "message": "다크" + }, + "darkTheme": { + "message": "다크 테마" + }, + "dateAndTime": { + "message": "날짜 & 시간" + }, + "dawn": { + "message": "석양" + }, + "decreasePlaybackSpeed": { + "message": "되감기 속도 감소" + }, + "decreaseVolume": { + "message": "볼륨 감소" + }, + "deepOrange": { + "message": "진한 주황" + }, + "deepPurple": { + "message": "진한 보라" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "기본 채널 탭" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "유튜브 쿠키 삭제" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "설명" + }, + "description_ext": { + "message": "유튜브를 깔끌하고 스마트하게 만들어줍니다! 유튜브 비디오 내 컬러, 광고제거, 볼륨, 배속, 채널 툴, 스타일, HD, 광고성 블록, 태그, 키워드, 재생목록" + }, + "desert": { + "message": "사막" + }, + "details": { + "message": "자세히" + }, + "developerOptions": { + "message": "개발자 옵션" + }, + "device": { + "message": "디바이스" + }, + "dim": { + "message": "어둡게" + }, + "disabled": { + "message": "비활성화" + }, + "dislike": { + "message": "싫어요" + }, + "doNotChange": { + "message": "바꾸지 않음" + }, + "donate": { + "message": "후원하기" + }, + "draggable": { + "message": "드래그 가능" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "이메일" + }, + "empty": { + "message": "비어있음" + }, + "enabled": { + "message": "활성화" + }, + "enabledForced": { + "message": "강제로 활성화" + }, + "expanded": { + "message": "확장" + }, + "exportSettings": { + "message": "설정 내보내기" + }, + "extension": { + "message": "확대" + }, + "file": { + "message": "파일" + }, + "filters": { + "message": "필터" + }, + "fitToWindow": { + "message": "창크기에 맞추기" + }, + "flash": { + "message": "플래시" + }, + "font": { + "message": "글꼴" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "하단" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "되감기 속도 강제설정" + }, + "forcedTheaterMode": { + "message": "강제 영화관 모드" + }, + "forcedVolume": { + "message": "볼륨 강제설정" + }, + "foundABug": { + "message": "버그신고" + }, + "fullWindow": { + "message": "전체 화면" + }, + "general": { + "message": "일반" + }, + "github": { + "message": "깃허브(GitHub)" + }, + "goToSearchBox": { + "message": "검색창으로 이동" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "그래픽 처리 장치" + }, + "green": { + "message": "초록" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD 썸네일" + }, + "header": { + "message": "헤더" + }, + "hidden": { + "message": "숨김" + }, + "hiddenOnVideoPage": { + "message": "비디오 페이지 숨기기" + }, + "hideAnimatedThumbnails": { + "message": "썸네일 애니메이션 숨기기" + }, + "hideAnnotations": { + "message": "설명 숨기기" + }, + "hideCards": { + "message": "카드 숨기기" + }, + "hideCountryCode": { + "message": "국가코드 숨기기" + }, + "hideDate": { + "message": "날짜 숨기기" + }, + "hideDetails": { + "message": "상세설명 숨기기" + }, + "hideEndscreen": { + "message": "종료후 화면 숨기기" + }, + "hideFeaturedContent": { + "message": "추천 영상 숨기기" + }, + "hideFooter": { + "message": "하단 숨기기" + }, + "hideGradientBottom": { + "message": "그라데이션 맨 아래로 숨기기" + }, + "hideMoreButton": { + "message": "\"더보기\" 버튼 숨기기" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "재생 목록 숨기기" + }, + "hideRightButtons": { + "message": "오른쪽 버튼 숨기기" + }, + "hideSaveButton": { + "message": "\"저장\" 버튼 숨기기" + }, + "hideScrollForDetails": { + "message": "«스크롤 하여 자세한 설명» 숨기기" + }, + "hideShareButton": { + "message": "\"공유\" 버튼 숨기기" + }, + "hideSkipOverlay": { + "message": "\"오버레이 건너뛰기\" 숨기기" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "조회수 숨기기" + }, + "hideVoiceSearchButton": { + "message": "\"음성으로 찾기\" 버튼 숨기기" + }, + "high": { + "message": "High" + }, + "history": { + "message": "히스토리" + }, + "home": { + "message": "홈" + }, + "hover": { + "message": "띄우기" + }, + "hoverOnVideoPage": { + "message": "비디오 페이지 띄우기" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "업로드 시기" + }, + "icons": { + "message": "아이콘" + }, + "iconsOnly": { + "message": "아이콘만" + }, + "importSettings": { + "message": "설정 불러오기" + }, + "improveLogo": { + "message": "향상된 로고" + }, + "improvedtubeIconOnYoutube": { + "message": "향상된 유튜브 아이콘" + }, + "improvedtubeLanguage": { + "message": "향상된 유튜브 언어" + }, + "improvedtubeVersion": { + "message": "향상된 유튜브 버전" + }, + "increasePlaybackSpeed": { + "message": "되감기 속도 증가" + }, + "increaseVolume": { + "message": "볼륨 증가" + }, + "indigo": { + "message": "남색" + }, + "items": { + "message": "요소" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "언어" + }, + "legacyYoutube": { + "message": "레거시 유튜브" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "밝게" + }, + "lightBlue": { + "message": "연파랑" + }, + "lightGreen": { + "message": "연초록" + }, + "like": { + "message": "좋아요" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "좋아요" + }, + "lime": { + "message": "라임" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "리스트" + }, + "liveChat": { + "message": "실시간 채팅" + }, + "liveChatType": { + "message": "실시간 채팅 유형" + }, + "location": { + "message": "지역" + }, + "loudnessNormalization": { + "message": "볼륨 자동조정" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "시청한 영상 표시" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "믹서" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "내 컬러" + }, + "name": { + "message": "이름" + }, + "nativeMiniPlayer": { + "message": "네이티브 미니플레이어" + }, + "new": { + "message": "새로운 소식" + }, + "nextVideo": { + "message": "다음 영상" + }, + "night": { + "message": "저녘" + }, + "noActiveFeatures": { + "message": "활성 기능 없음" + }, + "noOpenVideoTabs": { + "message": "열린 비디오 탭 없음" + }, + "none": { + "message": "없음" + }, + "normal": { + "message": "기본" + }, + "old": { + "message": "오래됨" + }, + "onAllVideos": { + "message": "모든 비디오" + }, + "onSubscribedChannels": { + "message": "구독한 채널" + }, + "onlyActiveOnYoutube": { + "message": "유튜브만 활성화" + }, + "onlyOnePlayerInstancePlaying": { + "message": "하나의 플레이어만 재생" + }, + "orange": { + "message": "주황" + }, + "os": { + "message": "운영체제" + }, + "other": { + "message": "기타" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "권한" + }, + "pictureInPicture": { + "message": "픽처 인 픽처(PIP) 재생" + }, + "pink": { + "message": "분홍" + }, + "plain": { + "message": "무색" + }, + "platform": { + "message": "플랫폼" + }, + "playPause": { + "message": "재생 / 일시정지" + }, + "playbackSpeed": { + "message": "되감기 속도" + }, + "player": { + "message": "플레이어" + }, + "playerColor": { + "message": "플레이어 컬러" + }, + "playerSize": { + "message": "플레이어 크기" + }, + "playlist": { + "message": "플레이리스트" + }, + "playlists": { + "message": "플레이리스트" + }, + "popupPlayer": { + "message": "팝업 플레이어" + }, + "position": { + "message": "위치" + }, + "pressAnyKeyOrScroll": { + "message": "사용할 단축키 또는 마우스 휠을 누르세요." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "사용할 단축키 또는 마우스 휠을 누르세요." + }, + "previousVideo": { + "message": "이전 영상" + }, + "primaryColor": { + "message": "주 색상" + }, + "purple": { + "message": "보라" + }, + "quality": { + "message": "퀄리티" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "램" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "평가하기" + }, + "red": { + "message": "빨강" + }, + "relatedVideos": { + "message": "관련 영상" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "관련 검색결과 제거" + }, + "repeat": { + "message": "반복" + }, + "reset": { + "message": "리셋" + }, + "resetAllSettings": { + "message": "모든 설정 리셋" + }, + "resetAllShortcuts": { + "message": "모든 단축키 리셋" + }, + "reverse": { + "message": "반대로" + }, + "rotate": { + "message": "회전" + }, + "save": { + "message": "저장" + }, + "saveAs": { + "message": "다른이름으로 저장" + }, + "schedule": { + "message": "스케줄" + }, + "screen": { + "message": "스크린" + }, + "screenshot": { + "message": "스크린샷" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "검색" + }, + "searchBarOnly": { + "message": "검색창만" + }, + "seekBackward10Seconds": { + "message": "뒤로 10초" + }, + "seekForward10Seconds": { + "message": "앞으로 10초" + }, + "seekNextChapter": { + "message": "다음 챕터 보기" + }, + "seekPreviousChapter": { + "message": "이전 챕터 보기" + }, + "settings": { + "message": "설정" + }, + "settingsSuccessfullyImported": { + "message": "설정 내보내기 완료" + }, + "shortcuts": { + "message": "단축키" + }, + "showCardsOnMouseHover": { + "message": "마우스 올릴 때 카드보기" + }, + "showChannelVideosCount": { + "message": "채널의 비디오수 표시" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "셔플" + }, + "sidebar": { + "message": "사이드바" + }, + "spacebar": { + "message": "스페이스바" + }, + "squaredUserImages": { + "message": "정사각형 프로필사진" + }, + "static": { + "message": "고정" + }, + "statsForNerds": { + "message": "너드 통계 표시" + }, + "step": { + "message": "스텝" + }, + "stop": { + "message": "정지" + }, + "style": { + "message": "스타일" + }, + "styles": { + "message": "스타일" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "구독" + }, + "subtitles": { + "message": "자막" + }, + "sunset": { + "message": "일몰" + }, + "sunsetToSunrise": { + "message": "일몰부터 일출까지" + }, + "systemPeferenceDark": { + "message": "개인 설정: 다크" + }, + "systemPeferenceLight": { + "message": "개인 설정: 라이트" + }, + "teal": { + "message": "청록" + }, + "textColor": { + "message": "텍스트 색상" + }, + "themes": { + "message": "테마" + }, + "thisWillRemoveAllCookies": { + "message": "모든 쿠키를 삭제합니다." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "모든 유튜브 쿠키를 삭제합니다." + }, + "thisWillResetAllSettings": { + "message": "모든 설정을 초기화 합니다." + }, + "thisWillResetAllShortcuts": { + "message": "모든 단축키를 초기화 합니다." + }, + "thumbnails": { + "message": "썸네일" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "다음시간 부터" + }, + "timeTo": { + "message": "다음시간 까지" + }, + "todayAt": { + "message": "오늘의" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "토글 카드" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "탑 챗" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "트레일러 자동재생" + }, + "translations": { + "message": "번역" + }, + "transparentBackground": { + "message": "투명한 배경" + }, + "trending": { + "message": "인기" + }, + "tryToReloadThePage": { + "message": "새로고침을 시도하십시오" + }, + "type": { + "message": "타입" + }, + "upNextAutoplay": { + "message": "다음영상 자동재생" + }, + "use24HourFormat": { + "message": "24시간 형식 사용" + }, + "version": { + "message": "버젼" + }, + "video": { + "message": "영상" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "카테고리의 이름을 얻기 위해 비디오 설명이 확장됩니다" + }, + "videoFormats": { + "message": "비디오 형식" + }, + "videos": { + "message": "비디오" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "음량" + }, + "watchLater": { + "message": "나중에 보기" + }, + "watchTime": { + "message": "시간 보기" + }, + "whenTabIsChanged": { + "message": "탭이 바뀔때" + }, + "white": { + "message": "하양" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "노랑" + }, + "youtubeHeaderLeft": { + "message": "유튜브 헤더 (왼쪽)" + }, + "youtubeHeaderRight": { + "message": "유튜브 헤더 (오른쪽)" + }, + "youtubeHomePage": { + "message": "유튜브 홈페이지" + }, + "youtubeLanguage": { + "message": "유튜브 언어" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "유튜브는 h.264 코덱에서 비디오 품질을 1080p로 제한합니다" + } } \ No newline at end of file diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 64a55a96f..b067c6c49 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -1,974 +1,989 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Om" - }, - "accept": { - "message": "aksepter" - }, - "activate": { - "message": "Aktiver" - }, - "activateCaptions": { - "message": "Aktiver underteksting" - }, - "activateFullscreen": { - "message": "Aktiver fullskjerm" - }, - "activated": { - "message": "Aktivert" - }, - "activatedFeatures": { - "message": "Aktiverte funksjoner" - }, - "activeFeatures": { - "message": "Aktive funksjoner" - }, - "addScrollToTop": { - "message": "Legg til «Rull til toppen»" - }, - "ads": { - "message": "Reklamer" - }, - "all": { - "message": "Alle" - }, - "allow": { - "message": "Tillat" - }, - "allow60fps": { - "message": "Tillat 60 bps" - }, - "alwaysActive": { - "message": "Alltid aktiv" - }, - "alwaysShowProgressBar": { - "message": "Alltid vis fremdriftslinje" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analysator" - }, - "appearance": { - "message": "Utseende" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Lyd" - }, - "audioFormats": { - "message": "Lydformater" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-fullskjerm" - }, - "autopauseWhenSwitchingTabs": { - "message": "Autopause når du bytter faner" - }, - "autoplay": { - "message": "Autoplay" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Sikkerhetskopiering og tilbakestilling" - }, - "baseOnSystemColorScheme": { - "message": "Baser på systemfargevalg" - }, - "belowPlayer": { - "message": "Nedenfor avspiller" - }, - "black": { - "message": "Svart" - }, - "blacklist": { - "message": "Svartelist" - }, - "blockAll": { - "message": "Blokker alle" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Blå" - }, - "blueGray": { - "message": "Blågrå" - }, - "bluelight": { - "message": "Blålys" - }, - "brown": { - "message": "Brun" - }, - "browser": { - "message": "Nettleser" - }, - "browserVersion": { - "message": "Nettleser-versjon" - }, - "bubbles": { - "message": "Bobler" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Knapper" - }, - "cancel": { - "message": "Avbryt" - }, - "categories": { - "message": "Kategorier" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanaler" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Utklippstavle" - }, - "codecH264": { - "message": "H.264-kodek" - }, - "collapseOfSubscriptionSections": { - "message": "Kollaps av abonnementsdelene" - }, - "collapsed": { - "message": "kollapset" - }, - "comments": { - "message": "Kommentarer" - }, - "confirmationBeforeClosing": { - "message": "Bekreftelse før stenging" - }, - "cookies": { - "message": "Informasjonskapslene" - }, - "cores": { - "message": "Kjerner" - }, - "cropChapterTitles": { - "message": "Beskjær kapitteltitler" - }, - "customCss": { - "message": "Tilpasset CSS" - }, - "customJs": { - "message": "Tilpasset JS" - }, - "customMiniPlayer": { - "message": "Egendefinert miniavspiller" - }, - "cyan": { - "message": "Blålilla" - }, - "dark": { - "message": "Mørk" - }, - "darkTheme": { - "message": "Mørk drakt" - }, - "dateAndTime": { - "message": "Dato og klokkeslett" - }, - "dawn": { - "message": "Soloppgang" - }, - "decreasePlaybackSpeed": { - "message": "Reduser avspillingshastighet" - }, - "decreaseVolume": { - "message": "Reduser lydstyrken" - }, - "deepOrange": { - "message": "Dyporansje" - }, - "deepPurple": { - "message": "Mørkelilla" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Forvalgt kanalfane" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Slett YouTube-informasjonskapsler" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Beskrivelse" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Ørken" - }, - "details": { - "message": "Detaljer" - }, - "developerOptions": { - "message": "Utviklermuligheter" - }, - "device": { - "message": "Enhet" - }, - "dim": { - "message": "Dim" - }, - "disabled": { - "message": "Avslått" - }, - "dislike": { - "message": "Mislik" - }, - "doNotChange": { - "message": "Ikke endre" - }, - "donate": { - "message": "Doner" - }, - "draggable": { - "message": "Flyttbare" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "E-post" - }, - "empty": { - "message": "Tom" - }, - "enabled": { - "message": "Aktivert" - }, - "enabledForced": { - "message": "Aktivert (tvunget)" - }, - "expanded": { - "message": "Utvidet" - }, - "exportSettings": { - "message": "Eksporter innstillinger" - }, - "extension": { - "message": "Utvidelse" - }, - "file": { - "message": "Fil" - }, - "filters": { - "message": "Filtre" - }, - "fitToWindow": { - "message": "Tilpass til vindu" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Bunntekst" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Tvungen avspillingshastighet" - }, - "forcedTheaterMode": { - "message": "Tvunget teater-modus" - }, - "forcedVolume": { - "message": "Tvunget lydstyrke" - }, - "foundABug": { - "message": "Fant du en feil?" - }, - "fullWindow": { - "message": "Fullt vindu" - }, - "general": { - "message": "Generelt" - }, - "geoPreference": { - "message": "Geo-preferanse" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Gå til søkefeltet" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Grønn" - }, - "hdThumbnail": { - "message": "HD-miniatyrbilde" - }, - "hdThumbnails": { - "message": "HD-miniatyrbilder" - }, - "header": { - "message": "Overskrift" - }, - "hidden": { - "message": "Skjult" - }, - "hiddenOnVideoPage": { - "message": "Skjult på videosiden" - }, - "hideAnimatedThumbnails": { - "message": "Skjul animerte miniatyrbilder" - }, - "hideAnnotations": { - "message": "Skjul annoteringer" - }, - "hideCards": { - "message": "Skjul kort" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Skjul detaljer" - }, - "hideEndscreen": { - "message": "Skjul sluttskjerm" - }, - "hideFeaturedContent": { - "message": "Skjul omtalt innhold" - }, - "hideFooter": { - "message": "Skjul bunntekst" - }, - "hideGradientBottom": { - "message": "Skjul bunn-fargeovergang" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Skjul spilleliste" - }, - "hideRightButtons": { - "message": "Skjul høyre-knapper" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Skjul «Bla for detaljer»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Skjul visningsteller" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "Historie" - }, - "home": { - "message": "Hjem" - }, - "hover": { - "message": "Hold" - }, - "hoverOnVideoPage": { - "message": "Hold musepekeren på videosiden" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Hvor lenge siden videoen ble opplastet" - }, - "icons": { - "message": "Ikoner" - }, - "iconsOnly": { - "message": "Kun ikoner" - }, - "importSettings": { - "message": "Importer innstillinger" - }, - "improveLogo": { - "message": "Forbedre logo" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube-ikonet på YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube-språk" - }, - "improvedtubeVersion": { - "message": "ImprovedTube-versjon" - }, - "increasePlaybackSpeed": { - "message": "Øk avspillingshastigheten" - }, - "increaseVolume": { - "message": "Øk lydstyrken" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Elementer" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Språk" - }, - "legacyYoutube": { - "message": "Gammeldags YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Lys" - }, - "lightBlue": { - "message": "Lyseblå" - }, - "lightGreen": { - "message": "Lysegrønn" - }, - "like": { - "message": "Gunst" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Begunstninger" - }, - "lime": { - "message": "Lime" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Sanntidssludring" - }, - "liveChatType": { - "message": "Sanntidssludringstype" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Lydstyrkenormalisering" - }, - "markWatchedVideos": { - "message": "Marker sette videoer" - }, - "mixer": { - "message": "Mikser" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Mine farger" - }, - "name": { - "message": "Navn" - }, - "nativeMiniPlayer": { - "message": "Innebygd miniavspiller" - }, - "new": { - "message": "Ny" - }, - "nextVideo": { - "message": "Neste video" - }, - "night": { - "message": "Natt" - }, - "noActiveFeatures": { - "message": "Ingen aktive funksjoner" - }, - "noOpenVideoTabs": { - "message": "Ingen åpne videofaner" - }, - "none": { - "message": "Ingen" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Gammel" - }, - "onAllVideos": { - "message": "På alle videoer" - }, - "onSubscribedChannels": { - "message": "På abonnementskanaler" - }, - "onlyActiveOnYoutube": { - "message": "Kun aktiv på YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Kun én avspiller viser noe" - }, - "orange": { - "message": "Oransje" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Andre" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "rettigheter" - }, - "pictureInPicture": { - "message": "Bilde-i-bilde" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Vanlig" - }, - "platform": { - "message": "Plattform" - }, - "playPause": { - "message": "Spill / Pause" - }, - "playbackSpeed": { - "message": "Avspillingshastighet" - }, - "player": { - "message": "Avspiller" - }, - "playerColor": { - "message": "Avspiller-farge" - }, - "playerSize": { - "message": "Avspiller-størrelse" - }, - "playlist": { - "message": "Spilleliste" - }, - "playlists": { - "message": "Spillelister" - }, - "popupPlayer": { - "message": "Oppsprettsspiller" - }, - "position": { - "message": "Posisjon" - }, - "pressAnyKeyOrScroll": { - "message": "Trykk på hvilken som helst tast, eller bruk musehjulet." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Trykk på hvilken som helst tast, eller bruk musehjulet" - }, - "previousVideo": { - "message": "Forrige video" - }, - "primaryColor": { - "message": "Hovedfarge" - }, - "purple": { - "message": "Lilla" - }, - "quality": { - "message": "Kvalitet" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "Minne" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Rangere oss" - }, - "red": { - "message": "Rød" - }, - "redDislikeButton": { - "message": "Vis tommel ned i rød farge" - }, - "relatedVideos": { - "message": "Relaterte videoer" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Fjern relaterte søkeresultater" - }, - "repeat": { - "message": "Gjenta" - }, - "reset": { - "message": "Tilbakestill" - }, - "resetAllSettings": { - "message": "Tilbakestill alle instillinger" - }, - "resetAllShortcuts": { - "message": "Tilbakestill alle snarveier" - }, - "reverse": { - "message": "Omvendt" - }, - "rotate": { - "message": "Roter" - }, - "save": { - "message": "Lagre" - }, - "saveAs": { - "message": "Lagre som" - }, - "schedule": { - "message": "Tidsplan" - }, - "screen": { - "message": "Skjerm" - }, - "screenshot": { - "message": "Skjeravbildning" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "Søk" - }, - "searchBarOnly": { - "message": "Bare søkefelt" - }, - "seekBackward10Seconds": { - "message": "Spol 10 sekunder bakover" - }, - "seekForward10Seconds": { - "message": "Spol 10 sekunder fremover" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Innstillinger" - }, - "settingsSuccessfullyImported": { - "message": "Innstillinger importert" - }, - "shortcuts": { - "message": "Snarveier" - }, - "showCardsOnMouseHover": { - "message": "Vis kort på musepekeren" - }, - "showChannelVideosCount": { - "message": "Vis antall kanaler" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Tilfeldig rekkefølge" - }, - "sidebar": { - "message": "Sidepanel" - }, - "spacebar": { - "message": "Mellomrom" - }, - "squaredUserImages": { - "message": "Kvadratiske brukerbilder" - }, - "static": { - "message": "Statisk" - }, - "statsForNerds": { - "message": "Vis statistikk for nerder" - }, - "step": { - "message": "Steg" - }, - "stop": { - "message": "Stopp" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stiler" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Abonnementer" - }, - "subtitles": { - "message": "Undertekster" - }, - "sunset": { - "message": "Solnedgang" - }, - "sunsetToSunrise": { - "message": "Solnedgang til soloppgang" - }, - "systemPeferenceDark": { - "message": "Systeminnstillinger: mørk" - }, - "systemPeferenceLight": { - "message": "Systeminnstillinger: lys" - }, - "teal": { - "message": "Blågrønn" - }, - "textColor": { - "message": "Tekstfarge" - }, - "themes": { - "message": "Drakter" - }, - "thisWillRemoveAllCookies": { - "message": "Dette vil fjerne alle informasjonskapsler." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Dette vil fjerne alle YouTube-informasjonskapsler" - }, - "thisWillResetAllSettings": { - "message": "Dette vil tilbakestille alle innstillinger." - }, - "thisWillResetAllShortcuts": { - "message": "Dette vil tilbakestille alle snarveier" - }, - "thumbnails": { - "message": "miniatyrbilder " - }, - "timeFrom": { - "message": "Fra" - }, - "timeTo": { - "message": "Til" - }, - "todayAt": { - "message": "I dag kl." - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Veksle kort" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Hovedsludring" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Trailer autospilling" - }, - "translations": { - "message": "Oversettelser" - }, - "transparentBackground": { - "message": "Gjennomsiktig bakgrunn" - }, - "trending": { - "message": "Trender" - }, - "tryToReloadThePage": { - "message": "Forsøk å laste inn siden på nytt" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "«Spilles senere»-autospilling" - }, - "use24HourFormat": { - "message": "Bruk 24-timersformat" - }, - "version": { - "message": "Versjon" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Videobeskrivelsen vil bli utvidet for å få med navnet på kategorien" - }, - "videoFormats": { - "message": "Video-formater" - }, - "videos": { - "message": "Videoer" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Lydstyrke" - }, - "watchLater": { - "message": "Se senere" - }, - "watchTime": { - "message": "Tid sett" - }, - "whenTabIsChanged": { - "message": "Når fanen endres" - }, - "white": { - "message": "Hvit" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Gul" - }, - "youtubeHeaderLeft": { - "message": "YouTube-topptekst (til venstre)" - }, - "youtubeHeaderRight": { - "message": "YouTube-topptekst (til høyre)" - }, - "youtubeHomePage": { - "message": "YouTube-startside" - }, - "youtubeLanguage": { - "message": "YouTube-språk" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube begrenser videokvaliteten til 1080p for H.264-kodeket" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Om" + }, + "accept": { + "message": "aksepter" + }, + "activate": { + "message": "Aktiver" + }, + "activateCaptions": { + "message": "Aktiver underteksting" + }, + "activateFullscreen": { + "message": "Aktiver fullskjerm" + }, + "activated": { + "message": "Aktivert" + }, + "activatedFeatures": { + "message": "Aktiverte funksjoner" + }, + "activeFeatures": { + "message": "Aktive funksjoner" + }, + "addScrollToTop": { + "message": "Legg til «Rull til toppen»" + }, + "ads": { + "message": "Reklamer" + }, + "all": { + "message": "Alle" + }, + "allow": { + "message": "Tillat" + }, + "allow60fps": { + "message": "Tillat 60 bps" + }, + "alwaysActive": { + "message": "Alltid aktiv" + }, + "alwaysShowProgressBar": { + "message": "Alltid vis fremdriftslinje" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analysator" + }, + "appearance": { + "message": "Utseende" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "Lyd" + }, + "audioFormats": { + "message": "Lydformater" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullskjerm" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause når du bytter faner" + }, + "autoplay": { + "message": "Autoplay" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Sikkerhetskopiering og tilbakestilling" + }, + "baseOnSystemColorScheme": { + "message": "Baser på systemfargevalg" + }, + "belowPlayer": { + "message": "Nedenfor avspiller" + }, + "black": { + "message": "Svart" + }, + "blacklist": { + "message": "Svartelist" + }, + "blockAll": { + "message": "Blokker alle" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Blå" + }, + "blueGray": { + "message": "Blågrå" + }, + "bluelight": { + "message": "Blålys" + }, + "brown": { + "message": "Brun" + }, + "browser": { + "message": "Nettleser" + }, + "browserVersion": { + "message": "Nettleser-versjon" + }, + "bubbles": { + "message": "Bobler" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Knapper" + }, + "cancel": { + "message": "Avbryt" + }, + "categories": { + "message": "Kategorier" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanaler" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Utklippstavle" + }, + "codecH264": { + "message": "H.264-kodek" + }, + "collapseOfSubscriptionSections": { + "message": "Kollaps av abonnementsdelene" + }, + "collapsed": { + "message": "kollapset" + }, + "comments": { + "message": "Kommentarer" + }, + "confirmationBeforeClosing": { + "message": "Bekreftelse før stenging" + }, + "cookies": { + "message": "Informasjonskapslene" + }, + "cores": { + "message": "Kjerner" + }, + "cropChapterTitles": { + "message": "Beskjær kapitteltitler" + }, + "customCss": { + "message": "Tilpasset CSS" + }, + "customJs": { + "message": "Tilpasset JS" + }, + "customMiniPlayer": { + "message": "Egendefinert miniavspiller" + }, + "cyan": { + "message": "Blålilla" + }, + "dark": { + "message": "Mørk" + }, + "darkTheme": { + "message": "Mørk drakt" + }, + "dateAndTime": { + "message": "Dato og klokkeslett" + }, + "dawn": { + "message": "Soloppgang" + }, + "decreasePlaybackSpeed": { + "message": "Reduser avspillingshastighet" + }, + "decreaseVolume": { + "message": "Reduser lydstyrken" + }, + "deepOrange": { + "message": "Dyporansje" + }, + "deepPurple": { + "message": "Mørkelilla" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Forvalgt kanalfane" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Slett YouTube-informasjonskapsler" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Beskrivelse" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Ørken" + }, + "details": { + "message": "Detaljer" + }, + "developerOptions": { + "message": "Utviklermuligheter" + }, + "device": { + "message": "Enhet" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Avslått" + }, + "dislike": { + "message": "Mislik" + }, + "doNotChange": { + "message": "Ikke endre" + }, + "donate": { + "message": "Doner" + }, + "draggable": { + "message": "Flyttbare" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "E-post" + }, + "empty": { + "message": "Tom" + }, + "enabled": { + "message": "Aktivert" + }, + "enabledForced": { + "message": "Aktivert (tvunget)" + }, + "expanded": { + "message": "Utvidet" + }, + "exportSettings": { + "message": "Eksporter innstillinger" + }, + "extension": { + "message": "Utvidelse" + }, + "file": { + "message": "Fil" + }, + "filters": { + "message": "Filtre" + }, + "fitToWindow": { + "message": "Tilpass til vindu" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Bunntekst" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Tvungen avspillingshastighet" + }, + "forcedTheaterMode": { + "message": "Tvunget teater-modus" + }, + "forcedVolume": { + "message": "Tvunget lydstyrke" + }, + "foundABug": { + "message": "Fant du en feil?" + }, + "fullWindow": { + "message": "Fullt vindu" + }, + "general": { + "message": "Generelt" + }, + "geoPreference": { + "message": "Geo-preferanse" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Gå til søkefeltet" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Grønn" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD-miniatyrbilde" + }, + "header": { + "message": "Overskrift" + }, + "hidden": { + "message": "Skjult" + }, + "hiddenOnVideoPage": { + "message": "Skjult på videosiden" + }, + "hideAnimatedThumbnails": { + "message": "Skjul animerte miniatyrbilder" + }, + "hideAnnotations": { + "message": "Skjul annoteringer" + }, + "hideCards": { + "message": "Skjul kort" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Skjul detaljer" + }, + "hideEndscreen": { + "message": "Skjul sluttskjerm" + }, + "hideFeaturedContent": { + "message": "Skjul omtalt innhold" + }, + "hideFooter": { + "message": "Skjul bunntekst" + }, + "hideGradientBottom": { + "message": "Skjul bunn-fargeovergang" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Skjul spilleliste" + }, + "hideRightButtons": { + "message": "Skjul høyre-knapper" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Skjul «Bla for detaljer»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Skjul visningsteller" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Historie" + }, + "home": { + "message": "Hjem" + }, + "hover": { + "message": "Hold" + }, + "hoverOnVideoPage": { + "message": "Hold musepekeren på videosiden" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Hvor lenge siden videoen ble opplastet" + }, + "icons": { + "message": "Ikoner" + }, + "iconsOnly": { + "message": "Kun ikoner" + }, + "importSettings": { + "message": "Importer innstillinger" + }, + "improveLogo": { + "message": "Forbedre logo" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube-ikonet på YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube-språk" + }, + "improvedtubeVersion": { + "message": "ImprovedTube-versjon" + }, + "increasePlaybackSpeed": { + "message": "Øk avspillingshastigheten" + }, + "increaseVolume": { + "message": "Øk lydstyrken" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Elementer" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Språk" + }, + "legacyYoutube": { + "message": "Gammeldags YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Lys" + }, + "lightBlue": { + "message": "Lyseblå" + }, + "lightGreen": { + "message": "Lysegrønn" + }, + "like": { + "message": "Gunst" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Begunstninger" + }, + "lime": { + "message": "Lime" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Sanntidssludring" + }, + "liveChatType": { + "message": "Sanntidssludringstype" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Lydstyrkenormalisering" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Marker sette videoer" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mikser" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Mine farger" + }, + "name": { + "message": "Navn" + }, + "nativeMiniPlayer": { + "message": "Innebygd miniavspiller" + }, + "new": { + "message": "Ny" + }, + "nextVideo": { + "message": "Neste video" + }, + "night": { + "message": "Natt" + }, + "noActiveFeatures": { + "message": "Ingen aktive funksjoner" + }, + "noOpenVideoTabs": { + "message": "Ingen åpne videofaner" + }, + "none": { + "message": "Ingen" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Gammel" + }, + "onAllVideos": { + "message": "På alle videoer" + }, + "onSubscribedChannels": { + "message": "På abonnementskanaler" + }, + "onlyActiveOnYoutube": { + "message": "Kun aktiv på YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Kun én avspiller viser noe" + }, + "orange": { + "message": "Oransje" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Andre" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "rettigheter" + }, + "pictureInPicture": { + "message": "Bilde-i-bilde" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Vanlig" + }, + "platform": { + "message": "Plattform" + }, + "playPause": { + "message": "Spill / Pause" + }, + "playbackSpeed": { + "message": "Avspillingshastighet" + }, + "player": { + "message": "Avspiller" + }, + "playerColor": { + "message": "Avspiller-farge" + }, + "playerSize": { + "message": "Avspiller-størrelse" + }, + "playlist": { + "message": "Spilleliste" + }, + "playlists": { + "message": "Spillelister" + }, + "popupPlayer": { + "message": "Oppsprettsspiller" + }, + "position": { + "message": "Posisjon" + }, + "pressAnyKeyOrScroll": { + "message": "Trykk på hvilken som helst tast, eller bruk musehjulet." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Trykk på hvilken som helst tast, eller bruk musehjulet" + }, + "previousVideo": { + "message": "Forrige video" + }, + "primaryColor": { + "message": "Hovedfarge" + }, + "purple": { + "message": "Lilla" + }, + "quality": { + "message": "Kvalitet" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "Minne" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Rangere oss" + }, + "red": { + "message": "Rød" + }, + "redDislikeButton": { + "message": "Vis tommel ned i rød farge" + }, + "relatedVideos": { + "message": "Relaterte videoer" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Fjern relaterte søkeresultater" + }, + "repeat": { + "message": "Gjenta" + }, + "reset": { + "message": "Tilbakestill" + }, + "resetAllSettings": { + "message": "Tilbakestill alle instillinger" + }, + "resetAllShortcuts": { + "message": "Tilbakestill alle snarveier" + }, + "reverse": { + "message": "Omvendt" + }, + "rotate": { + "message": "Roter" + }, + "save": { + "message": "Lagre" + }, + "saveAs": { + "message": "Lagre som" + }, + "schedule": { + "message": "Tidsplan" + }, + "screen": { + "message": "Skjerm" + }, + "screenshot": { + "message": "Skjeravbildning" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Søk" + }, + "searchBarOnly": { + "message": "Bare søkefelt" + }, + "seekBackward10Seconds": { + "message": "Spol 10 sekunder bakover" + }, + "seekForward10Seconds": { + "message": "Spol 10 sekunder fremover" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Innstillinger" + }, + "settingsSuccessfullyImported": { + "message": "Innstillinger importert" + }, + "shortcuts": { + "message": "Snarveier" + }, + "showCardsOnMouseHover": { + "message": "Vis kort på musepekeren" + }, + "showChannelVideosCount": { + "message": "Vis antall kanaler" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Tilfeldig rekkefølge" + }, + "sidebar": { + "message": "Sidepanel" + }, + "spacebar": { + "message": "Mellomrom" + }, + "squaredUserImages": { + "message": "Kvadratiske brukerbilder" + }, + "static": { + "message": "Statisk" + }, + "statsForNerds": { + "message": "Vis statistikk for nerder" + }, + "step": { + "message": "Steg" + }, + "stop": { + "message": "Stopp" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stiler" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Abonnementer" + }, + "subtitles": { + "message": "Undertekster" + }, + "sunset": { + "message": "Solnedgang" + }, + "sunsetToSunrise": { + "message": "Solnedgang til soloppgang" + }, + "systemPeferenceDark": { + "message": "Systeminnstillinger: mørk" + }, + "systemPeferenceLight": { + "message": "Systeminnstillinger: lys" + }, + "teal": { + "message": "Blågrønn" + }, + "textColor": { + "message": "Tekstfarge" + }, + "themes": { + "message": "Drakter" + }, + "thisWillRemoveAllCookies": { + "message": "Dette vil fjerne alle informasjonskapsler." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Dette vil fjerne alle YouTube-informasjonskapsler" + }, + "thisWillResetAllSettings": { + "message": "Dette vil tilbakestille alle innstillinger." + }, + "thisWillResetAllShortcuts": { + "message": "Dette vil tilbakestille alle snarveier" + }, + "thumbnails": { + "message": "miniatyrbilder " + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Fra" + }, + "timeTo": { + "message": "Til" + }, + "todayAt": { + "message": "I dag kl." + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Veksle kort" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Hovedsludring" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Trailer autospilling" + }, + "translations": { + "message": "Oversettelser" + }, + "transparentBackground": { + "message": "Gjennomsiktig bakgrunn" + }, + "trending": { + "message": "Trender" + }, + "tryToReloadThePage": { + "message": "Forsøk å laste inn siden på nytt" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "«Spilles senere»-autospilling" + }, + "use24HourFormat": { + "message": "Bruk 24-timersformat" + }, + "version": { + "message": "Versjon" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Videobeskrivelsen vil bli utvidet for å få med navnet på kategorien" + }, + "videoFormats": { + "message": "Video-formater" + }, + "videos": { + "message": "Videoer" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Lydstyrke" + }, + "watchLater": { + "message": "Se senere" + }, + "watchTime": { + "message": "Tid sett" + }, + "whenTabIsChanged": { + "message": "Når fanen endres" + }, + "white": { + "message": "Hvit" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Gul" + }, + "youtubeHeaderLeft": { + "message": "YouTube-topptekst (til venstre)" + }, + "youtubeHeaderRight": { + "message": "YouTube-topptekst (til høyre)" + }, + "youtubeHomePage": { + "message": "YouTube-startside" + }, + "youtubeLanguage": { + "message": "YouTube-språk" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube begrenser videokvaliteten til 1080p for H.264-kodeket" + } } \ No newline at end of file diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 1855e93f8..c49732971 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -1,971 +1,986 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Over" - }, - "accept": { - "message": "Accepteren" - }, - "activate": { - "message": "Activeren" - }, - "activateCaptions": { - "message": "Activeer bijschriften" - }, - "activateFullscreen": { - "message": "Activeer volledig scherm" - }, - "activated": { - "message": "Geactiveerd" - }, - "activatedFeatures": { - "message": "Geactiveerde features" - }, - "activeFeatures": { - "message": "Actieve features" - }, - "addScrollToTop": { - "message": "Voeg «Scroll to top» toe" - }, - "ads": { - "message": "Reclames" - }, - "all": { - "message": "Alles" - }, - "allow": { - "message": "Toestaan" - }, - "allow60fps": { - "message": "60fps toestaan" - }, - "alwaysActive": { - "message": "Altijd actief" - }, - "alwaysShowProgressBar": { - "message": "Altijd voortgangsbalk laten zien" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analyse" - }, - "appearance": { - "message": "Uiterlijk" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio formaten" - }, - "auto": { - "message": "Automatisch" - }, - "autoFullscreen": { - "message": "Automatisch volledig scherm" - }, - "autopauseWhenSwitchingTabs": { - "message": "Automatisch pauzeren bij het wisselen van tabbladen" - }, - "autoplay": { - "message": "Automatisch afspelen" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Backup maken & reseten" - }, - "baseOnSystemColorScheme": { - "message": "Baseer op kleurenschema van systeem" - }, - "belowPlayer": { - "message": "Onder de speler" - }, - "black": { - "message": "Zwart" - }, - "blacklist": { - "message": "Zwarte lijst" - }, - "blockAll": { - "message": "Alles blokkeren" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Blauw" - }, - "blueGray": { - "message": "Blauw grijs" - }, - "bluelight": { - "message": "Blauw licht" - }, - "brown": { - "message": "Bruin" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser versie" - }, - "bubbles": { - "message": "Bubbels" - }, - "bug": { - "message": "Insect" - }, - "buttons": { - "message": "Knoppen" - }, - "cancel": { - "message": "Annuleren" - }, - "categories": { - "message": "Categoriën" - }, - "channel": { - "message": "Kanaal" - }, - "channels": { - "message": "Kanalen" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Klembord" - }, - "codecH264": { - "message": "Encoderen in h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Uitklappen van abonnee sectie" - }, - "collapsed": { - "message": "Ingeklapt" - }, - "comments": { - "message": "Reacties" - }, - "confirmationBeforeClosing": { - "message": "Bevestiging voor sluiten" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Kernen" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Aangepaste CSS" - }, - "customJs": { - "message": "Aangepaste JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyaan" - }, - "dark": { - "message": "Donker" - }, - "darkTheme": { - "message": "Donker thema" - }, - "dateAndTime": { - "message": "Datum & tijd" - }, - "dawn": { - "message": "Morgenrood" - }, - "decreasePlaybackSpeed": { - "message": "Verminder afspeelsnelheid" - }, - "decreaseVolume": { - "message": "Verminder volume" - }, - "deepOrange": { - "message": "Donker oranje" - }, - "deepPurple": { - "message": "donker aars" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Standaard kanaaltabblad" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "YouTube-cookies verwijderen" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Beschrijving" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Woestijn" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Ontwikkelaarsopties" - }, - "device": { - "message": "Apparaat" - }, - "dim": { - "message": "Dimmen" - }, - "disabled": { - "message": "Uitgeschakeld" - }, - "dislike": { - "message": "Niet leuk vinden" - }, - "doNotChange": { - "message": "Niet aanpassen" - }, - "donate": { - "message": "Doneer" - }, - "draggable": { - "message": "Sleepbaar" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "E-mail" - }, - "empty": { - "message": "Leeg" - }, - "enabled": { - "message": "Ingeschakeld" - }, - "enabledForced": { - "message": "Ingeschakeld (geforceerd)" - }, - "expanded": { - "message": "Uitgeklapt" - }, - "exportSettings": { - "message": "Instellingen exporteren" - }, - "extension": { - "message": "Extensie" - }, - "file": { - "message": "Bestand" - }, - "filters": { - "message": "Filters" - }, - "fitToWindow": { - "message": "Aanpassen aan vensterbreedte" - }, - "flash": { - "message": "Flits" - }, - "font": { - "message": "Lettertype" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Voettekst" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Afspeelsnelheid afdwingen" - }, - "forcedTheaterMode": { - "message": "Altijd theatermodus gebruiken" - }, - "forcedVolume": { - "message": "Volume afdwingen" - }, - "foundABug": { - "message": "Heb je een bug gevonden?" - }, - "fullWindow": { - "message": "Volledige venstergrootte" - }, - "general": { - "message": "Algemeen" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Ga naar de zoekbalk" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Groen" - }, - "hdThumbnail": { - "message": "HD-miniatuurvoorbeeld" - }, - "hdThumbnails": { - "message": "HD-miniatuurvoorbeelden" - }, - "header": { - "message": "Kop" - }, - "hidden": { - "message": "Verborgen" - }, - "hiddenOnVideoPage": { - "message": "Verborgen op videopagina" - }, - "hideAnimatedThumbnails": { - "message": "Geen bewegende miniatuurvoorbeelden" - }, - "hideAnnotations": { - "message": "Verberg annotaties" - }, - "hideCards": { - "message": "Verberg kaarten" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Verberg details" - }, - "hideEndscreen": { - "message": "Verberg eindscherm" - }, - "hideFeaturedContent": { - "message": "Verberg uitgelichte inhoud" - }, - "hideFooter": { - "message": "Verberg voettekst" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Verberg afspeellijst" - }, - "hideRightButtons": { - "message": "Verberg rechter knoppen" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Verberg «Scroll for details»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Verberg views teller" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "Geschiedenis" - }, - "home": { - "message": "Thuis" - }, - "hover": { - "message": "Overzweven met cursor" - }, - "hoverOnVideoPage": { - "message": "Overzweven met cursor op videopagina" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Uploaddatum tonen" - }, - "icons": { - "message": "Iconen" - }, - "iconsOnly": { - "message": "Alleen pictogrammen" - }, - "importSettings": { - "message": "Instellingen importeren" - }, - "improveLogo": { - "message": "YouTube-logo verbeteren" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icoon op YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube taal" - }, - "improvedtubeVersion": { - "message": "ImprovedTube versie" - }, - "increasePlaybackSpeed": { - "message": "Verhoog afspeelsnelheid" - }, - "increaseVolume": { - "message": "Verhoog volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Talen" - }, - "legacyYoutube": { - "message": "Oude YouTube-uiterlijk" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Licht" - }, - "lightBlue": { - "message": "Licht blauw" - }, - "lightGreen": { - "message": "Licht groen" - }, - "like": { - "message": "Vind ik leuk" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Vind-ik-leuks" - }, - "lime": { - "message": "Limoen" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Lijst" - }, - "liveChat": { - "message": "Live berichtenvenster" - }, - "liveChatType": { - "message": "Live berichtenvenster type" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Volume normaliseren" - }, - "markWatchedVideos": { - "message": "Merk bekeken videos aan" - }, - "mixer": { - "message": "Mixer" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Mijn kleuren" - }, - "name": { - "message": "Naam" - }, - "nativeMiniPlayer": { - "message": "Ingebouwde minispeler" - }, - "new": { - "message": "Nieuw" - }, - "nextVideo": { - "message": "Volgende video afspelen" - }, - "night": { - "message": "Nacht" - }, - "noActiveFeatures": { - "message": "Geen actieve features" - }, - "noOpenVideoTabs": { - "message": "Geen openstaande videotabbladen" - }, - "none": { - "message": "Geen" - }, - "normal": { - "message": "Normaal" - }, - "old": { - "message": "Oud" - }, - "onAllVideos": { - "message": "Bij alle videos" - }, - "onSubscribedChannels": { - "message": "Op geabonneerde kanalen" - }, - "onlyActiveOnYoutube": { - "message": "Alleen actief op YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Slechts één actieve speler toestaan" - }, - "orange": { - "message": "Oranje" - }, - "os": { - "message": "Besturingssysteem" - }, - "other": { - "message": "Anders" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Machtigingen" - }, - "pictureInPicture": { - "message": "Afbeelding-in-Afbeelding" - }, - "pink": { - "message": "Roze" - }, - "plain": { - "message": "Vlakte" - }, - "platform": { - "message": "Platform" - }, - "playPause": { - "message": "Video afspelen/pauzeren" - }, - "playbackSpeed": { - "message": "Afspeelsnelheid" - }, - "player": { - "message": "Speler" - }, - "playerColor": { - "message": "Spelerkleur" - }, - "playerSize": { - "message": "Spelergrootte" - }, - "playlist": { - "message": "Afspeellijst" - }, - "playlists": { - "message": "Afspeellijsten" - }, - "popupPlayer": { - "message": "Pop-upspeler" - }, - "position": { - "message": "Positie" - }, - "pressAnyKeyOrScroll": { - "message": "Druk op een toets of muiswiel." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Druk op een toets of gebruik muiswiel" - }, - "previousVideo": { - "message": "Vorige video afspelen" - }, - "primaryColor": { - "message": "Primaire kleur" - }, - "purple": { - "message": "Paars" - }, - "quality": { - "message": "Kwaliteit" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Geef ons een beoordeling" - }, - "red": { - "message": "Rood" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Gerelateerde video's" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Verwijder resultaten van gerelateerde videos" - }, - "repeat": { - "message": "Herhalen" - }, - "reset": { - "message": "Herstel" - }, - "resetAllSettings": { - "message": "Standaardwaarden herstellen" - }, - "resetAllShortcuts": { - "message": "Herstel alle snelkoppelingen" - }, - "reverse": { - "message": "Omdraaien" - }, - "rotate": { - "message": "Draaien" - }, - "save": { - "message": "Opslaan" - }, - "saveAs": { - "message": "Opslaan als" - }, - "schedule": { - "message": "Schema" - }, - "screen": { - "message": "Beeldscherm" - }, - "screenshot": { - "message": "Schermafbeelding" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "Zoeken" - }, - "searchBarOnly": { - "message": "Alleen zoekbalk" - }, - "seekBackward10Seconds": { - "message": "Zoek 10 seconde terug" - }, - "seekForward10Seconds": { - "message": "Zoek 10 seconde naar voren" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Instellingen" - }, - "settingsSuccessfullyImported": { - "message": "Instellingen succesvol geïmporteerd" - }, - "shortcuts": { - "message": "Sneltoetsen" - }, - "showCardsOnMouseHover": { - "message": "Laat kaarten zien onder muisaanwijzer" - }, - "showChannelVideosCount": { - "message": "Aantal kanaalvideo's tonen" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Willekeurig" - }, - "sidebar": { - "message": "Zijbalk" - }, - "spacebar": { - "message": "Spatiebalk" - }, - "squaredUserImages": { - "message": "Vierkante gebruikersafbeeldingen" - }, - "static": { - "message": "Statisch" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Stap" - }, - "stop": { - "message": "Stoppen" - }, - "style": { - "message": "Stijl" - }, - "styles": { - "message": "Stijlen" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Abonnementen" - }, - "subtitles": { - "message": "Ondertiteling tonen" - }, - "sunset": { - "message": "Zonsondergang" - }, - "sunsetToSunrise": { - "message": "Zonsondergang tot zonsopkomst" - }, - "systemPeferenceDark": { - "message": "Systeem voorkeur: donker" - }, - "systemPeferenceLight": { - "message": "Systeem voorkeur: licht" - }, - "teal": { - "message": "Groenblauw" - }, - "textColor": { - "message": "Tekst kleur" - }, - "themes": { - "message": "Thema's" - }, - "thisWillRemoveAllCookies": { - "message": "Dit verwijdert alle cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Dit verwijdert alle YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "Dit herstelt alle instellingen." - }, - "thisWillResetAllShortcuts": { - "message": "Dit herstelt alle snelkoppelingen" - }, - "thumbnails": { - "message": "Miniatuurvoorbeelden" - }, - "timeFrom": { - "message": "Tijd vanaf" - }, - "timeTo": { - "message": "Tijd tot" - }, - "todayAt": { - "message": "Vandaag om" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Top-chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Trailer automatisch afspelen" - }, - "translations": { - "message": "vertalingen" - }, - "transparentBackground": { - "message": "Doorzichtige achtergrond" - }, - "trending": { - "message": "Populair" - }, - "tryToReloadThePage": { - "message": "Probeer de pagina te herladen" - }, - "type": { - "message": "Soort" - }, - "upNextAutoplay": { - "message": "Volgende in wachtrij automatisch afspelen" - }, - "use24HourFormat": { - "message": "24-uurstijd gebruiken" - }, - "version": { - "message": "Versie" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video omschrijving wordt uitgeklapt om de naam van de categorie te verkrijgen" - }, - "videoFormats": { - "message": "Video formaten" - }, - "videos": { - "message": "Video's" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Later bekijken" - }, - "watchTime": { - "message": "Kijk tijd" - }, - "whenTabIsChanged": { - "message": "Wanneer het tabblat veranderd" - }, - "white": { - "message": "Wit" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Geel" - }, - "youtubeHeaderLeft": { - "message": "YouTube-kop (links)" - }, - "youtubeHeaderRight": { - "message": "YouTube-kop (rechts)" - }, - "youtubeHomePage": { - "message": "YouTube-startpagina" - }, - "youtubeLanguage": { - "message": "YouTube taal" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limiteerd video kwaliteit tot 1080p voor h.264 codec" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Over" + }, + "accept": { + "message": "Accepteren" + }, + "activate": { + "message": "Activeren" + }, + "activateCaptions": { + "message": "Activeer bijschriften" + }, + "activateFullscreen": { + "message": "Activeer volledig scherm" + }, + "activated": { + "message": "Geactiveerd" + }, + "activatedFeatures": { + "message": "Geactiveerde features" + }, + "activeFeatures": { + "message": "Actieve features" + }, + "addScrollToTop": { + "message": "Voeg «Scroll to top» toe" + }, + "ads": { + "message": "Reclames" + }, + "all": { + "message": "Alles" + }, + "allow": { + "message": "Toestaan" + }, + "allow60fps": { + "message": "60fps toestaan" + }, + "alwaysActive": { + "message": "Altijd actief" + }, + "alwaysShowProgressBar": { + "message": "Altijd voortgangsbalk laten zien" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analyse" + }, + "appearance": { + "message": "Uiterlijk" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formaten" + }, + "auto": { + "message": "Automatisch" + }, + "autoFullscreen": { + "message": "Automatisch volledig scherm" + }, + "autopauseWhenSwitchingTabs": { + "message": "Automatisch pauzeren bij het wisselen van tabbladen" + }, + "autoplay": { + "message": "Automatisch afspelen" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Backup maken & reseten" + }, + "baseOnSystemColorScheme": { + "message": "Baseer op kleurenschema van systeem" + }, + "belowPlayer": { + "message": "Onder de speler" + }, + "black": { + "message": "Zwart" + }, + "blacklist": { + "message": "Zwarte lijst" + }, + "blockAll": { + "message": "Alles blokkeren" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Blauw" + }, + "blueGray": { + "message": "Blauw grijs" + }, + "bluelight": { + "message": "Blauw licht" + }, + "brown": { + "message": "Bruin" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser versie" + }, + "bubbles": { + "message": "Bubbels" + }, + "bug": { + "message": "Insect" + }, + "buttons": { + "message": "Knoppen" + }, + "cancel": { + "message": "Annuleren" + }, + "categories": { + "message": "Categoriën" + }, + "channel": { + "message": "Kanaal" + }, + "channels": { + "message": "Kanalen" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Klembord" + }, + "codecH264": { + "message": "Encoderen in h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Uitklappen van abonnee sectie" + }, + "collapsed": { + "message": "Ingeklapt" + }, + "comments": { + "message": "Reacties" + }, + "confirmationBeforeClosing": { + "message": "Bevestiging voor sluiten" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Kernen" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Aangepaste CSS" + }, + "customJs": { + "message": "Aangepaste JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyaan" + }, + "dark": { + "message": "Donker" + }, + "darkTheme": { + "message": "Donker thema" + }, + "dateAndTime": { + "message": "Datum & tijd" + }, + "dawn": { + "message": "Morgenrood" + }, + "decreasePlaybackSpeed": { + "message": "Verminder afspeelsnelheid" + }, + "decreaseVolume": { + "message": "Verminder volume" + }, + "deepOrange": { + "message": "Donker oranje" + }, + "deepPurple": { + "message": "donker aars" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Standaard kanaaltabblad" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "YouTube-cookies verwijderen" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Beschrijving" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Woestijn" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Ontwikkelaarsopties" + }, + "device": { + "message": "Apparaat" + }, + "dim": { + "message": "Dimmen" + }, + "disabled": { + "message": "Uitgeschakeld" + }, + "dislike": { + "message": "Niet leuk vinden" + }, + "doNotChange": { + "message": "Niet aanpassen" + }, + "donate": { + "message": "Doneer" + }, + "draggable": { + "message": "Sleepbaar" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "E-mail" + }, + "empty": { + "message": "Leeg" + }, + "enabled": { + "message": "Ingeschakeld" + }, + "enabledForced": { + "message": "Ingeschakeld (geforceerd)" + }, + "expanded": { + "message": "Uitgeklapt" + }, + "exportSettings": { + "message": "Instellingen exporteren" + }, + "extension": { + "message": "Extensie" + }, + "file": { + "message": "Bestand" + }, + "filters": { + "message": "Filters" + }, + "fitToWindow": { + "message": "Aanpassen aan vensterbreedte" + }, + "flash": { + "message": "Flits" + }, + "font": { + "message": "Lettertype" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Voettekst" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Afspeelsnelheid afdwingen" + }, + "forcedTheaterMode": { + "message": "Altijd theatermodus gebruiken" + }, + "forcedVolume": { + "message": "Volume afdwingen" + }, + "foundABug": { + "message": "Heb je een bug gevonden?" + }, + "fullWindow": { + "message": "Volledige venstergrootte" + }, + "general": { + "message": "Algemeen" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Ga naar de zoekbalk" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Groen" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD-miniatuurvoorbeeld" + }, + "header": { + "message": "Kop" + }, + "hidden": { + "message": "Verborgen" + }, + "hiddenOnVideoPage": { + "message": "Verborgen op videopagina" + }, + "hideAnimatedThumbnails": { + "message": "Geen bewegende miniatuurvoorbeelden" + }, + "hideAnnotations": { + "message": "Verberg annotaties" + }, + "hideCards": { + "message": "Verberg kaarten" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Verberg details" + }, + "hideEndscreen": { + "message": "Verberg eindscherm" + }, + "hideFeaturedContent": { + "message": "Verberg uitgelichte inhoud" + }, + "hideFooter": { + "message": "Verberg voettekst" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Verberg afspeellijst" + }, + "hideRightButtons": { + "message": "Verberg rechter knoppen" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Verberg «Scroll for details»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Verberg views teller" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Geschiedenis" + }, + "home": { + "message": "Thuis" + }, + "hover": { + "message": "Overzweven met cursor" + }, + "hoverOnVideoPage": { + "message": "Overzweven met cursor op videopagina" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Uploaddatum tonen" + }, + "icons": { + "message": "Iconen" + }, + "iconsOnly": { + "message": "Alleen pictogrammen" + }, + "importSettings": { + "message": "Instellingen importeren" + }, + "improveLogo": { + "message": "YouTube-logo verbeteren" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube icoon op YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube taal" + }, + "improvedtubeVersion": { + "message": "ImprovedTube versie" + }, + "increasePlaybackSpeed": { + "message": "Verhoog afspeelsnelheid" + }, + "increaseVolume": { + "message": "Verhoog volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Talen" + }, + "legacyYoutube": { + "message": "Oude YouTube-uiterlijk" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Licht" + }, + "lightBlue": { + "message": "Licht blauw" + }, + "lightGreen": { + "message": "Licht groen" + }, + "like": { + "message": "Vind ik leuk" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Vind-ik-leuks" + }, + "lime": { + "message": "Limoen" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Lijst" + }, + "liveChat": { + "message": "Live berichtenvenster" + }, + "liveChatType": { + "message": "Live berichtenvenster type" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Volume normaliseren" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Merk bekeken videos aan" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Mijn kleuren" + }, + "name": { + "message": "Naam" + }, + "nativeMiniPlayer": { + "message": "Ingebouwde minispeler" + }, + "new": { + "message": "Nieuw" + }, + "nextVideo": { + "message": "Volgende video afspelen" + }, + "night": { + "message": "Nacht" + }, + "noActiveFeatures": { + "message": "Geen actieve features" + }, + "noOpenVideoTabs": { + "message": "Geen openstaande videotabbladen" + }, + "none": { + "message": "Geen" + }, + "normal": { + "message": "Normaal" + }, + "old": { + "message": "Oud" + }, + "onAllVideos": { + "message": "Bij alle videos" + }, + "onSubscribedChannels": { + "message": "Op geabonneerde kanalen" + }, + "onlyActiveOnYoutube": { + "message": "Alleen actief op YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Slechts één actieve speler toestaan" + }, + "orange": { + "message": "Oranje" + }, + "os": { + "message": "Besturingssysteem" + }, + "other": { + "message": "Anders" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Machtigingen" + }, + "pictureInPicture": { + "message": "Afbeelding-in-Afbeelding" + }, + "pink": { + "message": "Roze" + }, + "plain": { + "message": "Vlakte" + }, + "platform": { + "message": "Platform" + }, + "playPause": { + "message": "Video afspelen/pauzeren" + }, + "playbackSpeed": { + "message": "Afspeelsnelheid" + }, + "player": { + "message": "Speler" + }, + "playerColor": { + "message": "Spelerkleur" + }, + "playerSize": { + "message": "Spelergrootte" + }, + "playlist": { + "message": "Afspeellijst" + }, + "playlists": { + "message": "Afspeellijsten" + }, + "popupPlayer": { + "message": "Pop-upspeler" + }, + "position": { + "message": "Positie" + }, + "pressAnyKeyOrScroll": { + "message": "Druk op een toets of muiswiel." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Druk op een toets of gebruik muiswiel" + }, + "previousVideo": { + "message": "Vorige video afspelen" + }, + "primaryColor": { + "message": "Primaire kleur" + }, + "purple": { + "message": "Paars" + }, + "quality": { + "message": "Kwaliteit" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Geef ons een beoordeling" + }, + "red": { + "message": "Rood" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Gerelateerde video's" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Verwijder resultaten van gerelateerde videos" + }, + "repeat": { + "message": "Herhalen" + }, + "reset": { + "message": "Herstel" + }, + "resetAllSettings": { + "message": "Standaardwaarden herstellen" + }, + "resetAllShortcuts": { + "message": "Herstel alle snelkoppelingen" + }, + "reverse": { + "message": "Omdraaien" + }, + "rotate": { + "message": "Draaien" + }, + "save": { + "message": "Opslaan" + }, + "saveAs": { + "message": "Opslaan als" + }, + "schedule": { + "message": "Schema" + }, + "screen": { + "message": "Beeldscherm" + }, + "screenshot": { + "message": "Schermafbeelding" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Zoeken" + }, + "searchBarOnly": { + "message": "Alleen zoekbalk" + }, + "seekBackward10Seconds": { + "message": "Zoek 10 seconde terug" + }, + "seekForward10Seconds": { + "message": "Zoek 10 seconde naar voren" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Instellingen" + }, + "settingsSuccessfullyImported": { + "message": "Instellingen succesvol geïmporteerd" + }, + "shortcuts": { + "message": "Sneltoetsen" + }, + "showCardsOnMouseHover": { + "message": "Laat kaarten zien onder muisaanwijzer" + }, + "showChannelVideosCount": { + "message": "Aantal kanaalvideo's tonen" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Willekeurig" + }, + "sidebar": { + "message": "Zijbalk" + }, + "spacebar": { + "message": "Spatiebalk" + }, + "squaredUserImages": { + "message": "Vierkante gebruikersafbeeldingen" + }, + "static": { + "message": "Statisch" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Stap" + }, + "stop": { + "message": "Stoppen" + }, + "style": { + "message": "Stijl" + }, + "styles": { + "message": "Stijlen" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Abonnementen" + }, + "subtitles": { + "message": "Ondertiteling tonen" + }, + "sunset": { + "message": "Zonsondergang" + }, + "sunsetToSunrise": { + "message": "Zonsondergang tot zonsopkomst" + }, + "systemPeferenceDark": { + "message": "Systeem voorkeur: donker" + }, + "systemPeferenceLight": { + "message": "Systeem voorkeur: licht" + }, + "teal": { + "message": "Groenblauw" + }, + "textColor": { + "message": "Tekst kleur" + }, + "themes": { + "message": "Thema's" + }, + "thisWillRemoveAllCookies": { + "message": "Dit verwijdert alle cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Dit verwijdert alle YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "Dit herstelt alle instellingen." + }, + "thisWillResetAllShortcuts": { + "message": "Dit herstelt alle snelkoppelingen" + }, + "thumbnails": { + "message": "Miniatuurvoorbeelden" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Tijd vanaf" + }, + "timeTo": { + "message": "Tijd tot" + }, + "todayAt": { + "message": "Vandaag om" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Top-chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Trailer automatisch afspelen" + }, + "translations": { + "message": "vertalingen" + }, + "transparentBackground": { + "message": "Doorzichtige achtergrond" + }, + "trending": { + "message": "Populair" + }, + "tryToReloadThePage": { + "message": "Probeer de pagina te herladen" + }, + "type": { + "message": "Soort" + }, + "upNextAutoplay": { + "message": "Volgende in wachtrij automatisch afspelen" + }, + "use24HourFormat": { + "message": "24-uurstijd gebruiken" + }, + "version": { + "message": "Versie" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video omschrijving wordt uitgeklapt om de naam van de categorie te verkrijgen" + }, + "videoFormats": { + "message": "Video formaten" + }, + "videos": { + "message": "Video's" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Later bekijken" + }, + "watchTime": { + "message": "Kijk tijd" + }, + "whenTabIsChanged": { + "message": "Wanneer het tabblat veranderd" + }, + "white": { + "message": "Wit" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Geel" + }, + "youtubeHeaderLeft": { + "message": "YouTube-kop (links)" + }, + "youtubeHeaderRight": { + "message": "YouTube-kop (rechts)" + }, + "youtubeHomePage": { + "message": "YouTube-startpagina" + }, + "youtubeLanguage": { + "message": "YouTube taal" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limiteerd video kwaliteit tot 1080p voor h.264 codec" + } } \ No newline at end of file diff --git a/_locales/no/messages.json b/_locales/no/messages.json index b6a11d42e..074db3059 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -1,962 +1,977 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Om" - }, - "accept": { - "message": "aksepter" - }, - "activate": { - "message": "Aktiver" - }, - "activateCaptions": { - "message": "Aktiver texting" - }, - "activateFullscreen": { - "message": "Aktiver fullskjerm" - }, - "activated": { - "message": "Aktivert" - }, - "activatedFeatures": { - "message": "Aktiverte funksjoner" - }, - "activeFeatures": { - "message": "Aktive funksjoner" - }, - "addScrollToTop": { - "message": "Legg til «Rull til toppen»" - }, - "ads": { - "message": "Reklamer" - }, - "all": { - "message": "Alle" - }, - "allow": { - "message": "Tillat" - }, - "allow60fps": { - "message": "Tillat 60fps" - }, - "alwaysActive": { - "message": "Alltid aktiv" - }, - "alwaysShowProgressBar": { - "message": "Alltid vis fremdriftslinje" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analysator" - }, - "appearance": { - "message": "Utseende" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Lyd" - }, - "audioFormats": { - "message": "Lyd formater" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-fullskjerm" - }, - "autopauseWhenSwitchingTabs": { - "message": "Autopause når du bytter faner" - }, - "autoplay": { - "message": "Autoplay" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Sikkerhetskopiering og tilbakestilling" - }, - "baseOnSystemColorScheme": { - "message": "Baser på systemfargevalg" - }, - "belowPlayer": { - "message": "Nedenfor spiller" - }, - "black": { - "message": "Svart" - }, - "blacklist": { - "message": "Svartelist" - }, - "blockAll": { - "message": "Blokker alle" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Blå" - }, - "blueGray": { - "message": "Blå grå" - }, - "bluelight": { - "message": "Blålys" - }, - "brown": { - "message": "Brun" - }, - "browser": { - "message": "Nettleser" - }, - "browserVersion": { - "message": "Nettleser versjon" - }, - "bubbles": { - "message": "Bobler" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Knapper" - }, - "cancel": { - "message": "Avbryt" - }, - "categories": { - "message": "Kategorier" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanaler" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Utklippstavle" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Kollaps av abonnements seksjonene" - }, - "collapsed": { - "message": "kollapset" - }, - "comments": { - "message": "Kommentarer" - }, - "confirmationBeforeClosing": { - "message": "Bekreftelse før stenging" - }, - "cookies": { - "message": "Informasjonskapslene" - }, - "cores": { - "message": "Kjerner" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Tilpasset CSS" - }, - "customJs": { - "message": "Tilpasset JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Mørk" - }, - "darkTheme": { - "message": "Mørkt tema" - }, - "dateAndTime": { - "message": "Dato og klokkeslett" - }, - "dawn": { - "message": "Soloppgang" - }, - "decreasePlaybackSpeed": { - "message": "Reduser avspillingshastighet" - }, - "decreaseVolume": { - "message": "Reduser volumet" - }, - "deepOrange": { - "message": "Dyporansje" - }, - "deepPurple": { - "message": "Mørkelilla" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Standard kanalfane" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Slett YouTube-informasjonskapsler" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Beskrivelse" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Ørken" - }, - "details": { - "message": "Detaljer" - }, - "developerOptions": { - "message": "Utviklermuligheter" - }, - "device": { - "message": "Enhet" - }, - "dim": { - "message": "Dim" - }, - "disabled": { - "message": "Avslått" - }, - "dislike": { - "message": "Mislik" - }, - "doNotChange": { - "message": "Ikke endre" - }, - "donate": { - "message": "Doner" - }, - "draggable": { - "message": "Flyttbare" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "E-post" - }, - "empty": { - "message": "Tom" - }, - "enabled": { - "message": "Aktivert" - }, - "enabledForced": { - "message": "Aktivert (tvunget)" - }, - "expanded": { - "message": "Utvidet" - }, - "exportSettings": { - "message": "Eksporter innstillinger" - }, - "extension": { - "message": "Utvidelse" - }, - "file": { - "message": "Fil" - }, - "filters": { - "message": "Filtre" - }, - "fitToWindow": { - "message": "Tilpass til vindu" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Bunntekst" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Tvungen avspillingshastighet" - }, - "forcedTheaterMode": { - "message": "Tvunget teater-modus" - }, - "forcedVolume": { - "message": "Tvangsvolum" - }, - "foundABug": { - "message": "Fant du en feil?" - }, - "fullWindow": { - "message": "Fullt vindu" - }, - "general": { - "message": "Generell" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Gå til søkefeltet" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Grønn" - }, - "hdThumbnail": { - "message": "HD-miniatyrbilde" - }, - "hdThumbnails": { - "message": "HD-miniatyrbilder" - }, - "header": { - "message": "Overskrift" - }, - "hidden": { - "message": "Skjult" - }, - "hiddenOnVideoPage": { - "message": "Skjult på video siden" - }, - "hideAnimatedThumbnails": { - "message": "Skjul animerte miniatyrbilder" - }, - "hideAnnotations": { - "message": "Skjul annoteringer" - }, - "hideCards": { - "message": "Skjul kort" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Skjul detaljer" - }, - "hideEndscreen": { - "message": "Skjul sluttskjerm" - }, - "hideFeaturedContent": { - "message": "Skjul omtalt innhold" - }, - "hideFooter": { - "message": "Skjul bunntekst " - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Skjul spilleliste" - }, - "hideRightButtons": { - "message": "Skjul høyre knapper" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Skjul «Bla for detaljer»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Skjul visninger teller" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "Historie" - }, - "home": { - "message": "Hjem" - }, - "hover": { - "message": "Hold" - }, - "hoverOnVideoPage": { - "message": "Hold musepekeren på videosiden" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Hvor lenge siden videoen ble lastet opp" - }, - "icons": { - "message": "Ikoner" - }, - "iconsOnly": { - "message": "Bare Ikoner" - }, - "importSettings": { - "message": "Importer innstillinger" - }, - "improveLogo": { - "message": "Improve logo" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube-ikonet på YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube språk" - }, - "improvedtubeVersion": { - "message": "ImprovedTube versjon" - }, - "increasePlaybackSpeed": { - "message": "Øk avspillingshastigheten" - }, - "increaseVolume": { - "message": "Øk volumet" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Elementer" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Språk" - }, - "legacyYoutube": { - "message": "Legacy YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Lys" - }, - "lightBlue": { - "message": "Lyse blå" - }, - "lightGreen": { - "message": "Lyse grønn" - }, - "like": { - "message": "Like" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Lime" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Live chat" - }, - "liveChatType": { - "message": "Live chat type" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Høytthetsnormalisering" - }, - "markWatchedVideos": { - "message": "Marker sette videoer" - }, - "mixer": { - "message": "Mikser" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Mine farger" - }, - "name": { - "message": "Navn" - }, - "nativeMiniPlayer": { - "message": "Innfødt minispiller" - }, - "new": { - "message": "Ny" - }, - "nextVideo": { - "message": "Neste video" - }, - "night": { - "message": "Natt" - }, - "noActiveFeatures": { - "message": "Ingen aktive funksjoner" - }, - "noOpenVideoTabs": { - "message": "Ingen åpne videofaner" - }, - "none": { - "message": "Ingen" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Gammel" - }, - "onAllVideos": { - "message": "På alle videoer" - }, - "onSubscribedChannels": { - "message": "På abonnementskanaler" - }, - "onlyActiveOnYoutube": { - "message": "Bare aktiv på YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Bare en spillerforekomst som spiller" - }, - "orange": { - "message": "Oransje" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Andre" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "rettigheter" - }, - "pictureInPicture": { - "message": "Bilde-i-bilde" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Vanlig" - }, - "platform": { - "message": "Plattform" - }, - "playPause": { - "message": "Spill / Pause" - }, - "playbackSpeed": { - "message": "Avspillingshastighet" - }, - "player": { - "message": "Spiller" - }, - "playerColor": { - "message": "Spiller farge" - }, - "playerSize": { - "message": "Spiller størrelse" - }, - "playlist": { - "message": "Spilleliste" - }, - "playlists": { - "message": "Spillelister" - }, - "popupPlayer": { - "message": "Popup-spiller" - }, - "position": { - "message": "Posisjon" - }, - "pressAnyKeyOrScroll": { - "message": "Trykk på hvilken som helst tast eller bruk musehjulet." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Trykk på hvilken som helst tast eller bruk musehjulet" - }, - "previousVideo": { - "message": "Forrige video" - }, - "primaryColor": { - "message": "Hovedfarge" - }, - "purple": { - "message": "Lilla" - }, - "quality": { - "message": "Quality" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Rangere oss" - }, - "red": { - "message": "Rød" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Relaterte videoer" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Fjern relaterte søkeresultater" - }, - "repeat": { - "message": "Gjenta" - }, - "reset": { - "message": "Tilbakestill" - }, - "resetAllSettings": { - "message": "Tilbakestill alle instillinger" - }, - "resetAllShortcuts": { - "message": "Tilbakestill alle snarveier" - }, - "reverse": { - "message": "Omvendt" - }, - "rotate": { - "message": "Roter" - }, - "save": { - "message": "Lagre" - }, - "saveAs": { - "message": "Lagre som" - }, - "schedule": { - "message": "Tidsplan" - }, - "screen": { - "message": "Skjerm" - }, - "screenshot": { - "message": "Skjermbilde" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "Søk" - }, - "searchBarOnly": { - "message": "Bare søkefelt" - }, - "seekBackward10Seconds": { - "message": "Spol 10 sekunder bakover" - }, - "seekForward10Seconds": { - "message": "Spol 10 sekunder frem" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Innstillinger" - }, - "settingsSuccessfullyImported": { - "message": "Innstillinger importert" - }, - "shortcuts": { - "message": "Snarveier" - }, - "showCardsOnMouseHover": { - "message": "Vis kort på musepekeren" - }, - "showChannelVideosCount": { - "message": "Vis antall kanaler" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Tilfeldig rekkefølge" - }, - "sidebar": { - "message": "Sidepanel" - }, - "spacebar": { - "message": "Mellomrom" - }, - "squaredUserImages": { - "message": "Kvadratiske brukerbilder" - }, - "static": { - "message": "Statisk" - }, - "step": { - "message": "Steg" - }, - "stop": { - "message": "Stopp" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stiler" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Abonnementer" - }, - "subtitles": { - "message": "Undertekster" - }, - "sunset": { - "message": "Solnedgang" - }, - "sunsetToSunrise": { - "message": "Solnedgang til soloppgang" - }, - "systemPeferenceDark": { - "message": "Systeminnstillinger: mørk" - }, - "systemPeferenceLight": { - "message": "Systeminnstillinger: lys" - }, - "teal": { - "message": "Blågrønn" - }, - "textColor": { - "message": "Tekstfarge" - }, - "themes": { - "message": "Temaer" - }, - "thisWillRemoveAllCookies": { - "message": "Dette vil fjerne alle informasjonskapsler." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Dette vil fjerne alle YouTube-informasjonskapsler" - }, - "thisWillResetAllSettings": { - "message": "Dette vil tilbakestille alle innstillinger." - }, - "thisWillResetAllShortcuts": { - "message": "Dette vil tilbakestille alle snarveier" - }, - "thumbnails": { - "message": "miniatyrbilder " - }, - "timeFrom": { - "message": "Tid fra" - }, - "timeTo": { - "message": "Tid til" - }, - "todayAt": { - "message": "I dag kl" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Hoved chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Trailer autospilling" - }, - "translations": { - "message": "Oversettelser" - }, - "transparentBackground": { - "message": "Gjennomsiktig bakgrunn" - }, - "trending": { - "message": "Trender" - }, - "tryToReloadThePage": { - "message": "Forsøk å laste inn siden på nytt" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "Opp neste autospilling" - }, - "use24HourFormat": { - "message": "Bruk 24-timers format" - }, - "version": { - "message": "Versjon" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Videobeskrivelsen vil bli utvidet for å få navnet på kategorien" - }, - "videoFormats": { - "message": "Video formater" - }, - "videos": { - "message": "Videoer" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Se senere" - }, - "watchTime": { - "message": "Tid sett" - }, - "whenTabIsChanged": { - "message": "Når fanen endres" - }, - "white": { - "message": "Hvit" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Gul" - }, - "youtubeHeaderLeft": { - "message": "YouTube Header (til venstre)" - }, - "youtubeHeaderRight": { - "message": "YouTube Header (til høyre)" - }, - "youtubeHomePage": { - "message": "YouTube startside" - }, - "youtubeLanguage": { - "message": "YouTube språk" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube begrenser videokvaliteten til 1080p for h.264-kodeken" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Om" + }, + "accept": { + "message": "aksepter" + }, + "activate": { + "message": "Aktiver" + }, + "activateCaptions": { + "message": "Aktiver texting" + }, + "activateFullscreen": { + "message": "Aktiver fullskjerm" + }, + "activated": { + "message": "Aktivert" + }, + "activatedFeatures": { + "message": "Aktiverte funksjoner" + }, + "activeFeatures": { + "message": "Aktive funksjoner" + }, + "addScrollToTop": { + "message": "Legg til «Rull til toppen»" + }, + "ads": { + "message": "Reklamer" + }, + "all": { + "message": "Alle" + }, + "allow": { + "message": "Tillat" + }, + "allow60fps": { + "message": "Tillat 60fps" + }, + "alwaysActive": { + "message": "Alltid aktiv" + }, + "alwaysShowProgressBar": { + "message": "Alltid vis fremdriftslinje" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analysator" + }, + "appearance": { + "message": "Utseende" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "Lyd" + }, + "audioFormats": { + "message": "Lyd formater" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullskjerm" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause når du bytter faner" + }, + "autoplay": { + "message": "Autoplay" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Sikkerhetskopiering og tilbakestilling" + }, + "baseOnSystemColorScheme": { + "message": "Baser på systemfargevalg" + }, + "belowPlayer": { + "message": "Nedenfor spiller" + }, + "black": { + "message": "Svart" + }, + "blacklist": { + "message": "Svartelist" + }, + "blockAll": { + "message": "Blokker alle" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Blå" + }, + "blueGray": { + "message": "Blå grå" + }, + "bluelight": { + "message": "Blålys" + }, + "brown": { + "message": "Brun" + }, + "browser": { + "message": "Nettleser" + }, + "browserVersion": { + "message": "Nettleser versjon" + }, + "bubbles": { + "message": "Bobler" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Knapper" + }, + "cancel": { + "message": "Avbryt" + }, + "categories": { + "message": "Kategorier" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanaler" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Utklippstavle" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Kollaps av abonnements seksjonene" + }, + "collapsed": { + "message": "kollapset" + }, + "comments": { + "message": "Kommentarer" + }, + "confirmationBeforeClosing": { + "message": "Bekreftelse før stenging" + }, + "cookies": { + "message": "Informasjonskapslene" + }, + "cores": { + "message": "Kjerner" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Tilpasset CSS" + }, + "customJs": { + "message": "Tilpasset JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Mørk" + }, + "darkTheme": { + "message": "Mørkt tema" + }, + "dateAndTime": { + "message": "Dato og klokkeslett" + }, + "dawn": { + "message": "Soloppgang" + }, + "decreasePlaybackSpeed": { + "message": "Reduser avspillingshastighet" + }, + "decreaseVolume": { + "message": "Reduser volumet" + }, + "deepOrange": { + "message": "Dyporansje" + }, + "deepPurple": { + "message": "Mørkelilla" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Standard kanalfane" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Slett YouTube-informasjonskapsler" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Beskrivelse" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Ørken" + }, + "details": { + "message": "Detaljer" + }, + "developerOptions": { + "message": "Utviklermuligheter" + }, + "device": { + "message": "Enhet" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Avslått" + }, + "dislike": { + "message": "Mislik" + }, + "doNotChange": { + "message": "Ikke endre" + }, + "donate": { + "message": "Doner" + }, + "draggable": { + "message": "Flyttbare" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "E-post" + }, + "empty": { + "message": "Tom" + }, + "enabled": { + "message": "Aktivert" + }, + "enabledForced": { + "message": "Aktivert (tvunget)" + }, + "expanded": { + "message": "Utvidet" + }, + "exportSettings": { + "message": "Eksporter innstillinger" + }, + "extension": { + "message": "Utvidelse" + }, + "file": { + "message": "Fil" + }, + "filters": { + "message": "Filtre" + }, + "fitToWindow": { + "message": "Tilpass til vindu" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Bunntekst" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Tvungen avspillingshastighet" + }, + "forcedTheaterMode": { + "message": "Tvunget teater-modus" + }, + "forcedVolume": { + "message": "Tvangsvolum" + }, + "foundABug": { + "message": "Fant du en feil?" + }, + "fullWindow": { + "message": "Fullt vindu" + }, + "general": { + "message": "Generell" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Gå til søkefeltet" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Grønn" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD-miniatyrbilde" + }, + "header": { + "message": "Overskrift" + }, + "hidden": { + "message": "Skjult" + }, + "hiddenOnVideoPage": { + "message": "Skjult på video siden" + }, + "hideAnimatedThumbnails": { + "message": "Skjul animerte miniatyrbilder" + }, + "hideAnnotations": { + "message": "Skjul annoteringer" + }, + "hideCards": { + "message": "Skjul kort" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Skjul detaljer" + }, + "hideEndscreen": { + "message": "Skjul sluttskjerm" + }, + "hideFeaturedContent": { + "message": "Skjul omtalt innhold" + }, + "hideFooter": { + "message": "Skjul bunntekst " + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Skjul spilleliste" + }, + "hideRightButtons": { + "message": "Skjul høyre knapper" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Skjul «Bla for detaljer»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Skjul visninger teller" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Historie" + }, + "home": { + "message": "Hjem" + }, + "hover": { + "message": "Hold" + }, + "hoverOnVideoPage": { + "message": "Hold musepekeren på videosiden" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Hvor lenge siden videoen ble lastet opp" + }, + "icons": { + "message": "Ikoner" + }, + "iconsOnly": { + "message": "Bare Ikoner" + }, + "importSettings": { + "message": "Importer innstillinger" + }, + "improveLogo": { + "message": "Improve logo" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube-ikonet på YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube språk" + }, + "improvedtubeVersion": { + "message": "ImprovedTube versjon" + }, + "increasePlaybackSpeed": { + "message": "Øk avspillingshastigheten" + }, + "increaseVolume": { + "message": "Øk volumet" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Elementer" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Språk" + }, + "legacyYoutube": { + "message": "Legacy YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Lys" + }, + "lightBlue": { + "message": "Lyse blå" + }, + "lightGreen": { + "message": "Lyse grønn" + }, + "like": { + "message": "Like" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Lime" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Live chat type" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Høytthetsnormalisering" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Marker sette videoer" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mikser" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Mine farger" + }, + "name": { + "message": "Navn" + }, + "nativeMiniPlayer": { + "message": "Innfødt minispiller" + }, + "new": { + "message": "Ny" + }, + "nextVideo": { + "message": "Neste video" + }, + "night": { + "message": "Natt" + }, + "noActiveFeatures": { + "message": "Ingen aktive funksjoner" + }, + "noOpenVideoTabs": { + "message": "Ingen åpne videofaner" + }, + "none": { + "message": "Ingen" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Gammel" + }, + "onAllVideos": { + "message": "På alle videoer" + }, + "onSubscribedChannels": { + "message": "På abonnementskanaler" + }, + "onlyActiveOnYoutube": { + "message": "Bare aktiv på YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Bare en spillerforekomst som spiller" + }, + "orange": { + "message": "Oransje" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Andre" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "rettigheter" + }, + "pictureInPicture": { + "message": "Bilde-i-bilde" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Vanlig" + }, + "platform": { + "message": "Plattform" + }, + "playPause": { + "message": "Spill / Pause" + }, + "playbackSpeed": { + "message": "Avspillingshastighet" + }, + "player": { + "message": "Spiller" + }, + "playerColor": { + "message": "Spiller farge" + }, + "playerSize": { + "message": "Spiller størrelse" + }, + "playlist": { + "message": "Spilleliste" + }, + "playlists": { + "message": "Spillelister" + }, + "popupPlayer": { + "message": "Popup-spiller" + }, + "position": { + "message": "Posisjon" + }, + "pressAnyKeyOrScroll": { + "message": "Trykk på hvilken som helst tast eller bruk musehjulet." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Trykk på hvilken som helst tast eller bruk musehjulet" + }, + "previousVideo": { + "message": "Forrige video" + }, + "primaryColor": { + "message": "Hovedfarge" + }, + "purple": { + "message": "Lilla" + }, + "quality": { + "message": "Quality" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Rangere oss" + }, + "red": { + "message": "Rød" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Relaterte videoer" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Fjern relaterte søkeresultater" + }, + "repeat": { + "message": "Gjenta" + }, + "reset": { + "message": "Tilbakestill" + }, + "resetAllSettings": { + "message": "Tilbakestill alle instillinger" + }, + "resetAllShortcuts": { + "message": "Tilbakestill alle snarveier" + }, + "reverse": { + "message": "Omvendt" + }, + "rotate": { + "message": "Roter" + }, + "save": { + "message": "Lagre" + }, + "saveAs": { + "message": "Lagre som" + }, + "schedule": { + "message": "Tidsplan" + }, + "screen": { + "message": "Skjerm" + }, + "screenshot": { + "message": "Skjermbilde" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Søk" + }, + "searchBarOnly": { + "message": "Bare søkefelt" + }, + "seekBackward10Seconds": { + "message": "Spol 10 sekunder bakover" + }, + "seekForward10Seconds": { + "message": "Spol 10 sekunder frem" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Innstillinger" + }, + "settingsSuccessfullyImported": { + "message": "Innstillinger importert" + }, + "shortcuts": { + "message": "Snarveier" + }, + "showCardsOnMouseHover": { + "message": "Vis kort på musepekeren" + }, + "showChannelVideosCount": { + "message": "Vis antall kanaler" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Tilfeldig rekkefølge" + }, + "sidebar": { + "message": "Sidepanel" + }, + "spacebar": { + "message": "Mellomrom" + }, + "squaredUserImages": { + "message": "Kvadratiske brukerbilder" + }, + "static": { + "message": "Statisk" + }, + "step": { + "message": "Steg" + }, + "stop": { + "message": "Stopp" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stiler" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Abonnementer" + }, + "subtitles": { + "message": "Undertekster" + }, + "sunset": { + "message": "Solnedgang" + }, + "sunsetToSunrise": { + "message": "Solnedgang til soloppgang" + }, + "systemPeferenceDark": { + "message": "Systeminnstillinger: mørk" + }, + "systemPeferenceLight": { + "message": "Systeminnstillinger: lys" + }, + "teal": { + "message": "Blågrønn" + }, + "textColor": { + "message": "Tekstfarge" + }, + "themes": { + "message": "Temaer" + }, + "thisWillRemoveAllCookies": { + "message": "Dette vil fjerne alle informasjonskapsler." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Dette vil fjerne alle YouTube-informasjonskapsler" + }, + "thisWillResetAllSettings": { + "message": "Dette vil tilbakestille alle innstillinger." + }, + "thisWillResetAllShortcuts": { + "message": "Dette vil tilbakestille alle snarveier" + }, + "thumbnails": { + "message": "miniatyrbilder " + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Tid fra" + }, + "timeTo": { + "message": "Tid til" + }, + "todayAt": { + "message": "I dag kl" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Hoved chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Trailer autospilling" + }, + "translations": { + "message": "Oversettelser" + }, + "transparentBackground": { + "message": "Gjennomsiktig bakgrunn" + }, + "trending": { + "message": "Trender" + }, + "tryToReloadThePage": { + "message": "Forsøk å laste inn siden på nytt" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Opp neste autospilling" + }, + "use24HourFormat": { + "message": "Bruk 24-timers format" + }, + "version": { + "message": "Versjon" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Videobeskrivelsen vil bli utvidet for å få navnet på kategorien" + }, + "videoFormats": { + "message": "Video formater" + }, + "videos": { + "message": "Videoer" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Se senere" + }, + "watchTime": { + "message": "Tid sett" + }, + "whenTabIsChanged": { + "message": "Når fanen endres" + }, + "white": { + "message": "Hvit" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Gul" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (til venstre)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (til høyre)" + }, + "youtubeHomePage": { + "message": "YouTube startside" + }, + "youtubeLanguage": { + "message": "YouTube språk" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube begrenser videokvaliteten til 1080p for h.264-kodeken" + } } \ No newline at end of file diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 9ca34569c..b96324b8f 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -1,980 +1,995 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Informacje" - }, - "accept": { - "message": "Akceptuj" - }, - "activate": { - "message": "Aktywuj" - }, - "activateCaptions": { - "message": "Aktywuj napisy" - }, - "activateFullscreen": { - "message": "Aktywuj tryb pełnoekranowy" - }, - "activated": { - "message": "Aktywowane" - }, - "activatedFeatures": { - "message": "Aktywowane funkcje" - }, - "activeFeatures": { - "message": "Aktywne funkcje" - }, - "addScrollToTop": { - "message": "Dodaj «Przewiń do góry»" - }, - "ads": { - "message": "Reklamy" - }, - "all": { - "message": "Wszystkie" - }, - "allow": { - "message": "Zezwól" - }, - "allow60fps": { - "message": "Zezwól na 60fps" - }, - "alwaysActive": { - "message": "Zawsze aktywne" - }, - "alwaysShowProgressBar": { - "message": "Zawsze pokazuj pasek postępu" - }, - "amber": { - "message": "Bursztynowy" - }, - "analyzer": { - "message": "Analizator" - }, - "appearance": { - "message": "Wygląd" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formaty audio" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Automatyczny tryb pełnoekranowy" - }, - "autopauseWhenSwitchingTabs": { - "message": "Automatyczna pauza przy zmianie kart" - }, - "autoplay": { - "message": "Autoodtwarzanie" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Kopia zapasowa i reset" - }, - "baseOnSystemColorScheme": { - "message": "Bazuj na systemowym schemacie kolorów" - }, - "belowPlayer": { - "message": "Pod odtwarzaczem" - }, - "black": { - "message": "Czarny" - }, - "blacklist": { - "message": "Czarna lista" - }, - "blockAll": { - "message": "Blokuj wszystkie" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Niebieski" - }, - "blueGray": { - "message": "Szaroniebieski" - }, - "bluelight": { - "message": "Niebieskie światło" - }, - "brown": { - "message": "Brązowy" - }, - "browser": { - "message": "Przeglądarka" - }, - "browserVersion": { - "message": "Wersja przeglądarki" - }, - "bubbles": { - "message": "Dymki" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Przyciski" - }, - "cancel": { - "message": "Anuluj" - }, - "categories": { - "message": "Kategorie" - }, - "channel": { - "message": "Kanał" - }, - "channels": { - "message": "Kanały" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Schowek" - }, - "codecH264": { - "message": "Kodek h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Zwinięcie sekcji subskrypcji" - }, - "collapsed": { - "message": "Zwinięte" - }, - "comments": { - "message": "Komentarze" - }, - "confirmationBeforeClosing": { - "message": "Potwierdzenie przy zamknięciu" - }, - "cookies": { - "message": "Ciasteczka" - }, - "cores": { - "message": "Rdzenie" - }, - "cropChapterTitles": { - "message": "Przycinaj tytuły rozdziałów" - }, - "customCss": { - "message": "Niestandardowy CSS" - }, - "customJs": { - "message": "Niestandardowy JS" - }, - "customMiniPlayer": { - "message": "Niestandardowy Mini-Odtwarzacz" - }, - "cyan": { - "message": "Cyjan" - }, - "dark": { - "message": "Ciemny" - }, - "darkTheme": { - "message": "Ciemny motyw" - }, - "dateAndTime": { - "message": "Data i godzina" - }, - "dawn": { - "message": "Świt" - }, - "decreasePlaybackSpeed": { - "message": "Zmniejsz prędkość odtwarzania" - }, - "decreaseVolume": { - "message": "Zmniejsz głośność" - }, - "deepOrange": { - "message": "Głęboki pomarańczowy" - }, - "deepPurple": { - "message": "Głęboki fioletowy" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Domyślna zakładka na kanałach" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Usuń obejrzane wideo" - }, - "deleteYoutubeCookies": { - "message": "Usuń ciasteczka YouTube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Opis" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Pustynia" - }, - "details": { - "message": "Szczegóły" - }, - "developerOptions": { - "message": "Ustawienia deweloperskie" - }, - "device": { - "message": "Urządzenie" - }, - "dim": { - "message": "Przyciemnij" - }, - "disabled": { - "message": "Wyłączony" - }, - "dislike": { - "message": "Nie podoba mi się" - }, - "doNotChange": { - "message": "Nie zmieniaj" - }, - "donate": { - "message": "Dotacja" - }, - "draggable": { - "message": "Przeciągalne" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Pusty" - }, - "enabled": { - "message": "Włączony" - }, - "enabledForced": { - "message": "Włączony (wymuszony)" - }, - "expanded": { - "message": "Rozwinięty" - }, - "exportSettings": { - "message": "Eksport ustawień" - }, - "extension": { - "message": "Rozszerzenie" - }, - "file": { - "message": "Plik" - }, - "filters": { - "message": "Filtry" - }, - "fitToWindow": { - "message": "Dopasuj do okna" - }, - "flash": { - "message": "Błysk" - }, - "font": { - "message": "Czcionka" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Stopka" - }, - "forceSDR": { - "message": "Wymuś SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Wymuś prędkość odtwarzania" - }, - "forcedTheaterMode": { - "message": "Wymuś tryb kinowy" - }, - "forcedVolume": { - "message": "Wymuś poziom głośności" - }, - "foundABug": { - "message": "Znalazłeś błąd?" - }, - "fullWindow": { - "message": "Pełne okno" - }, - "general": { - "message": "Ogólne" - }, - "geoPreference": { - "message": "Geo preferencja" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Idź do paska wyszukiwania" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Zielony" - }, - "hdThumbnail": { - "message": "Miniatura HD" - }, - "hdThumbnails": { - "message": "Miniatury HD" - }, - "header": { - "message": "Nagłówek" - }, - "hidden": { - "message": "Ukryty" - }, - "hiddenOnVideoPage": { - "message": "Ukryty na stronie z wideo" - }, - "hideAnimatedThumbnails": { - "message": "Ukryj animowane miniatury" - }, - "hideAnnotations": { - "message": "Ukryj adnotacje" - }, - "hideCards": { - "message": "Ukryj karty" - }, - "hideCountryCode": { - "message": "Ukryj kod kraju" - }, - "hideDate": { - "message": "Ukryj datę" - }, - "hideDetails": { - "message": "Ukryj szczegóły" - }, - "hideEndscreen": { - "message": "Ukryj ekran końcowy" - }, - "hideFeaturedContent": { - "message": "Ukryj wyróżnioną zawartość" - }, - "hideFooter": { - "message": "Ukryj stopkę" - }, - "hideGradientBottom": { - "message": "Ukryj cień dookoła paska odtwarzania" - }, - "hideMoreButton": { - "message": "Ukryj przycisk \"Więcej\"" - }, - "hidePlayerControlsBar": { - "message": "Ukryj pasek sterowania odtwarzaczem" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Ukryj playliste" - }, - "hideRightButtons": { - "message": "Ukryj przyciski po prawej" - }, - "hideSaveButton": { - "message": "Ukryj przycisk \"Zapisz\"" - }, - "hideScrollForDetails": { - "message": "Ukryj «Przewiń do szczegółów»" - }, - "hideShareButton": { - "message": "Ukryj przycisk \"Udostępnij\"" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Ukryj przyciski na miniaturach" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Ukryj ilość wyświetleń" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "Historia" - }, - "home": { - "message": "Strona główna" - }, - "hover": { - "message": "Najedź" - }, - "hoverOnVideoPage": { - "message": "Najedź na stronie wideo" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Jak dawno wideo zostało przesłane" - }, - "icons": { - "message": "Ikony" - }, - "iconsOnly": { - "message": "Tylko ikony" - }, - "importSettings": { - "message": "Import ustawień" - }, - "improveLogo": { - "message": "Ulepsz logo" - }, - "improvedtubeIconOnYoutube": { - "message": "Ikona ImprovedTube na YouTube" - }, - "improvedtubeLanguage": { - "message": "Język ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Wersja ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Zwiększ prędkość odtwarzania" - }, - "increaseVolume": { - "message": "Zwiększ głośność" - }, - "indigo": { - "message": "Indygo" - }, - "items": { - "message": "Przedmioty" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Języki" - }, - "legacyYoutube": { - "message": "Stara wersja YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Jasny" - }, - "lightBlue": { - "message": "Jasnoniebieski" - }, - "lightGreen": { - "message": "Jasnozielony" - }, - "like": { - "message": "Polub" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Polubienia" - }, - "lime": { - "message": "Limonkowy" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Czat na żywo" - }, - "liveChatType": { - "message": "Rodzaj czatu na żywo" - }, - "location": { - "message": "Położenie" - }, - "loudnessNormalization": { - "message": "Normalizacja głośności" - }, - "markWatchedVideos": { - "message": "Oznacz obejrzane wideo" - }, - "mixer": { - "message": "Mikser" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Moje kolory" - }, - "name": { - "message": "Nazwa" - }, - "nativeMiniPlayer": { - "message": "Natywny mini-odtwarzacz" - }, - "new": { - "message": "Nowe" - }, - "nextVideo": { - "message": "Następne wideo" - }, - "night": { - "message": "Noc" - }, - "noActiveFeatures": { - "message": "Brak aktywnych funkcji" - }, - "noOpenVideoTabs": { - "message": "Brak otwartych kart wideo" - }, - "none": { - "message": "Brak" - }, - "normal": { - "message": "Normalny" - }, - "old": { - "message": "Stary" - }, - "onAllVideos": { - "message": "Na wszystkich wideo" - }, - "onSubscribedChannels": { - "message": "Na subskrybowanych kanałach" - }, - "onlyActiveOnYoutube": { - "message": "Aktywny tylko na YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Odtwarzanie tylko jednej instancji odtwarzacza" - }, - "openPopupPlayer": { - "message": "Otwórz wideo/playliste w nowym oknie" - }, - "orange": { - "message": "Pomarańczowy" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Inne" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Uprawnienia" - }, - "pictureInPicture": { - "message": "Obraz w Obrazie" - }, - "pink": { - "message": "Różowy" - }, - "plain": { - "message": "Zwykły" - }, - "platform": { - "message": "Platforma" - }, - "playPause": { - "message": "Odtwarzanie / Pauza" - }, - "playbackSpeed": { - "message": "Prędkość odtwarzania" - }, - "player": { - "message": "Odtwarzacz" - }, - "playerColor": { - "message": "Kolor odtwarzacza" - }, - "playerSize": { - "message": "Rozmiar odtwarzacza" - }, - "playlist": { - "message": "Lista odtwarzania" - }, - "playlists": { - "message": "Listy odtwarzania" - }, - "popupPlayer": { - "message": "Odtwarzacz popout" - }, - "position": { - "message": "Pozycja" - }, - "pressAnyKeyOrScroll": { - "message": "Wciśnij dowolny przycisk lub użyj kółka myszy." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Wciśnij dowolny przycisk lub użyj kółka myszy" - }, - "previousVideo": { - "message": "Poprzednie wideo" - }, - "primaryColor": { - "message": "Kolor główny" - }, - "purple": { - "message": "Fioletowy" - }, - "quality": { - "message": "Jakość" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Oceń nas" - }, - "red": { - "message": "Czerwony" - }, - "redDislikeButton": { - "message": "Koloruj przycisk 'Nie lubię' na czerwono" - }, - "relatedVideos": { - "message": "Wideo powiązane" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Usuń powiązane wyniki wyszukiwania" - }, - "repeat": { - "message": "Powtarzaj" - }, - "reset": { - "message": "Reset" - }, - "resetAllSettings": { - "message": "Resetuj wszystkie ustawienia" - }, - "resetAllShortcuts": { - "message": "Resetuj wszystkie skróty" - }, - "reverse": { - "message": "Odwróć" - }, - "rotate": { - "message": "Obróć" - }, - "save": { - "message": "Zapisz" - }, - "saveAs": { - "message": "Zapisz jako" - }, - "schedule": { - "message": "Harmonogram" - }, - "screen": { - "message": "Ekran" - }, - "screenshot": { - "message": "Zrzut ekranu" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "Wyszukaj" - }, - "searchBarOnly": { - "message": "Tylko pasek wyszukiwania" - }, - "seekBackward10Seconds": { - "message": "Przewiń 10 sekund do tyłu" - }, - "seekForward10Seconds": { - "message": "Przewiń 10 sekund do przodu" - }, - "seekNextChapter": { - "message": "Przewiń do następnego rozdziału" - }, - "seekPreviousChapter": { - "message": "Przewiń do poprzedniego rozdziału" - }, - "settings": { - "message": "Ustawienia" - }, - "settingsSuccessfullyImported": { - "message": "Ustawienia pomyślnie zaimportowane" - }, - "shortcuts": { - "message": "Skróty" - }, - "showCardsOnMouseHover": { - "message": "Pokaż karty po najechaniu myszą" - }, - "showChannelVideosCount": { - "message": "Pokaż ilość wideo na kanale" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Losowo" - }, - "sidebar": { - "message": "Panel boczny" - }, - "spacebar": { - "message": "Spacja" - }, - "squaredUserImages": { - "message": "Kwadratowe avatary użytkowników" - }, - "static": { - "message": "Statyczne" - }, - "statsForNerds": { - "message": "Statystyki dla nerdów" - }, - "step": { - "message": "Stopień" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Styl" - }, - "styles": { - "message": "Style" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Subskrypcje" - }, - "subtitles": { - "message": "Napisy" - }, - "sunset": { - "message": "Zachód" - }, - "sunsetToSunrise": { - "message": "Od zachodu do wschodu słońca" - }, - "systemPeferenceDark": { - "message": "Preferencja systemowa: ciemne" - }, - "systemPeferenceLight": { - "message": "Preferencja systemowa: jasne" - }, - "teal": { - "message": "Morski" - }, - "textColor": { - "message": "Kolor tekstu" - }, - "themes": { - "message": "Motywy" - }, - "thisWillRemoveAllCookies": { - "message": "To usunie wszystkie ciasteczka." - }, - "thisWillRemoveAllWatchedVideos": { - "message": "To usunie wszystkie obejrzane wideo." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "To usunie wszystkie ciasteczka YouTube." - }, - "thisWillResetAllSettings": { - "message": "To zresetuje wszystkie ustawienia." - }, - "thisWillResetAllShortcuts": { - "message": "To zresetuje wszystkie skróty" - }, - "thumbnails": { - "message": "Miniatury" - }, - "timeFrom": { - "message": "Od" - }, - "timeTo": { - "message": "Do" - }, - "todayAt": { - "message": "Dzisiaj o" - }, - "toggleAutoplay": { - "message": "Przełącz autoodtwarzanie" - }, - "toggleCards": { - "message": "Przełącz karty" - }, - "toggleControls": { - "message": "Przełącz widoczność sterowania odtwarzaczew" - }, - "topChat": { - "message": "Czat na górze" - }, - "trackWatchedVideos": { - "message": "Śledź obejrzane wideo" - }, - "trailerAutoplay": { - "message": "Autoodtwarzanie zwiastunów" - }, - "translations": { - "message": "Tłumaczenia" - }, - "transparentBackground": { - "message": "Przezroczyste tło" - }, - "trending": { - "message": "Na czasie" - }, - "tryToReloadThePage": { - "message": "Spróbuj przeładować stronę" - }, - "type": { - "message": "Typ" - }, - "upNextAutoplay": { - "message": "Autoodwarzanie następnego wideo" - }, - "use24HourFormat": { - "message": "Używaj 24-godzinnego formatu czasu" - }, - "version": { - "message": "Wersja" - }, - "video": { - "message": "Wideo" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Opis wideo zostanie rozwinięty aby pozyskać nazwę kategorii" - }, - "videoFormats": { - "message": "Formaty wideo" - }, - "videos": { - "message": "Wideo" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Głośność" - }, - "watchLater": { - "message": "Obejrzyj później" - }, - "watchTime": { - "message": "Czas oglądania" - }, - "whenTabIsChanged": { - "message": "Kiedy zostaje zmieniona karta" - }, - "white": { - "message": "Biały" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Żółty" - }, - "youtubeHeaderLeft": { - "message": "Nagłówek YouTube (lewy)" - }, - "youtubeHeaderRight": { - "message": "Nagłówek YouTube (prawy)" - }, - "youtubeHomePage": { - "message": "Strona główna YouTube" - }, - "youtubeLanguage": { - "message": "Język YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube ogranicza jakość wideo do 1080p przy kodeku h.264" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Informacje" + }, + "accept": { + "message": "Akceptuj" + }, + "activate": { + "message": "Aktywuj" + }, + "activateCaptions": { + "message": "Aktywuj napisy" + }, + "activateFullscreen": { + "message": "Aktywuj tryb pełnoekranowy" + }, + "activated": { + "message": "Aktywowane" + }, + "activatedFeatures": { + "message": "Aktywowane funkcje" + }, + "activeFeatures": { + "message": "Aktywne funkcje" + }, + "addScrollToTop": { + "message": "Dodaj «Przewiń do góry»" + }, + "ads": { + "message": "Reklamy" + }, + "all": { + "message": "Wszystkie" + }, + "allow": { + "message": "Zezwól" + }, + "allow60fps": { + "message": "Zezwól na 60fps" + }, + "alwaysActive": { + "message": "Zawsze aktywne" + }, + "alwaysShowProgressBar": { + "message": "Zawsze pokazuj pasek postępu" + }, + "amber": { + "message": "Bursztynowy" + }, + "analyzer": { + "message": "Analizator" + }, + "appearance": { + "message": "Wygląd" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formaty audio" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Automatyczny tryb pełnoekranowy" + }, + "autopauseWhenSwitchingTabs": { + "message": "Automatyczna pauza przy zmianie kart" + }, + "autoplay": { + "message": "Autoodtwarzanie" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Kopia zapasowa i reset" + }, + "baseOnSystemColorScheme": { + "message": "Bazuj na systemowym schemacie kolorów" + }, + "belowPlayer": { + "message": "Pod odtwarzaczem" + }, + "black": { + "message": "Czarny" + }, + "blacklist": { + "message": "Czarna lista" + }, + "blockAll": { + "message": "Blokuj wszystkie" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Niebieski" + }, + "blueGray": { + "message": "Szaroniebieski" + }, + "bluelight": { + "message": "Niebieskie światło" + }, + "brown": { + "message": "Brązowy" + }, + "browser": { + "message": "Przeglądarka" + }, + "browserVersion": { + "message": "Wersja przeglądarki" + }, + "bubbles": { + "message": "Dymki" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Przyciski" + }, + "cancel": { + "message": "Anuluj" + }, + "categories": { + "message": "Kategorie" + }, + "channel": { + "message": "Kanał" + }, + "channels": { + "message": "Kanały" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Schowek" + }, + "codecH264": { + "message": "Kodek h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Zwinięcie sekcji subskrypcji" + }, + "collapsed": { + "message": "Zwinięte" + }, + "comments": { + "message": "Komentarze" + }, + "confirmationBeforeClosing": { + "message": "Potwierdzenie przy zamknięciu" + }, + "cookies": { + "message": "Ciasteczka" + }, + "cores": { + "message": "Rdzenie" + }, + "cropChapterTitles": { + "message": "Przycinaj tytuły rozdziałów" + }, + "customCss": { + "message": "Niestandardowy CSS" + }, + "customJs": { + "message": "Niestandardowy JS" + }, + "customMiniPlayer": { + "message": "Niestandardowy Mini-Odtwarzacz" + }, + "cyan": { + "message": "Cyjan" + }, + "dark": { + "message": "Ciemny" + }, + "darkTheme": { + "message": "Ciemny motyw" + }, + "dateAndTime": { + "message": "Data i godzina" + }, + "dawn": { + "message": "Świt" + }, + "decreasePlaybackSpeed": { + "message": "Zmniejsz prędkość odtwarzania" + }, + "decreaseVolume": { + "message": "Zmniejsz głośność" + }, + "deepOrange": { + "message": "Głęboki pomarańczowy" + }, + "deepPurple": { + "message": "Głęboki fioletowy" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Domyślna zakładka na kanałach" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Usuń obejrzane wideo" + }, + "deleteYoutubeCookies": { + "message": "Usuń ciasteczka YouTube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Opis" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Pustynia" + }, + "details": { + "message": "Szczegóły" + }, + "developerOptions": { + "message": "Ustawienia deweloperskie" + }, + "device": { + "message": "Urządzenie" + }, + "dim": { + "message": "Przyciemnij" + }, + "disabled": { + "message": "Wyłączony" + }, + "dislike": { + "message": "Nie podoba mi się" + }, + "doNotChange": { + "message": "Nie zmieniaj" + }, + "donate": { + "message": "Dotacja" + }, + "draggable": { + "message": "Przeciągalne" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Pusty" + }, + "enabled": { + "message": "Włączony" + }, + "enabledForced": { + "message": "Włączony (wymuszony)" + }, + "expanded": { + "message": "Rozwinięty" + }, + "exportSettings": { + "message": "Eksport ustawień" + }, + "extension": { + "message": "Rozszerzenie" + }, + "file": { + "message": "Plik" + }, + "filters": { + "message": "Filtry" + }, + "fitToWindow": { + "message": "Dopasuj do okna" + }, + "flash": { + "message": "Błysk" + }, + "font": { + "message": "Czcionka" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Stopka" + }, + "forceSDR": { + "message": "Wymuś SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Wymuś prędkość odtwarzania" + }, + "forcedTheaterMode": { + "message": "Wymuś tryb kinowy" + }, + "forcedVolume": { + "message": "Wymuś poziom głośności" + }, + "foundABug": { + "message": "Znalazłeś błąd?" + }, + "fullWindow": { + "message": "Pełne okno" + }, + "general": { + "message": "Ogólne" + }, + "geoPreference": { + "message": "Geo preferencja" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Idź do paska wyszukiwania" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Zielony" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "Miniatura HD" + }, + "header": { + "message": "Nagłówek" + }, + "hidden": { + "message": "Ukryty" + }, + "hiddenOnVideoPage": { + "message": "Ukryty na stronie z wideo" + }, + "hideAnimatedThumbnails": { + "message": "Ukryj animowane miniatury" + }, + "hideAnnotations": { + "message": "Ukryj adnotacje" + }, + "hideCards": { + "message": "Ukryj karty" + }, + "hideCountryCode": { + "message": "Ukryj kod kraju" + }, + "hideDate": { + "message": "Ukryj datę" + }, + "hideDetails": { + "message": "Ukryj szczegóły" + }, + "hideEndscreen": { + "message": "Ukryj ekran końcowy" + }, + "hideFeaturedContent": { + "message": "Ukryj wyróżnioną zawartość" + }, + "hideFooter": { + "message": "Ukryj stopkę" + }, + "hideGradientBottom": { + "message": "Ukryj cień dookoła paska odtwarzania" + }, + "hideMoreButton": { + "message": "Ukryj przycisk \"Więcej\"" + }, + "hidePlayerControlsBar": { + "message": "Ukryj pasek sterowania odtwarzaczem" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Ukryj playliste" + }, + "hideRightButtons": { + "message": "Ukryj przyciski po prawej" + }, + "hideSaveButton": { + "message": "Ukryj przycisk \"Zapisz\"" + }, + "hideScrollForDetails": { + "message": "Ukryj «Przewiń do szczegółów»" + }, + "hideShareButton": { + "message": "Ukryj przycisk \"Udostępnij\"" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Ukryj przyciski na miniaturach" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Ukryj ilość wyświetleń" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Historia" + }, + "home": { + "message": "Strona główna" + }, + "hover": { + "message": "Najedź" + }, + "hoverOnVideoPage": { + "message": "Najedź na stronie wideo" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Jak dawno wideo zostało przesłane" + }, + "icons": { + "message": "Ikony" + }, + "iconsOnly": { + "message": "Tylko ikony" + }, + "importSettings": { + "message": "Import ustawień" + }, + "improveLogo": { + "message": "Ulepsz logo" + }, + "improvedtubeIconOnYoutube": { + "message": "Ikona ImprovedTube na YouTube" + }, + "improvedtubeLanguage": { + "message": "Język ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Wersja ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Zwiększ prędkość odtwarzania" + }, + "increaseVolume": { + "message": "Zwiększ głośność" + }, + "indigo": { + "message": "Indygo" + }, + "items": { + "message": "Przedmioty" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Języki" + }, + "legacyYoutube": { + "message": "Stara wersja YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Jasny" + }, + "lightBlue": { + "message": "Jasnoniebieski" + }, + "lightGreen": { + "message": "Jasnozielony" + }, + "like": { + "message": "Polub" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Polubienia" + }, + "lime": { + "message": "Limonkowy" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Czat na żywo" + }, + "liveChatType": { + "message": "Rodzaj czatu na żywo" + }, + "location": { + "message": "Położenie" + }, + "loudnessNormalization": { + "message": "Normalizacja głośności" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Oznacz obejrzane wideo" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mikser" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Moje kolory" + }, + "name": { + "message": "Nazwa" + }, + "nativeMiniPlayer": { + "message": "Natywny mini-odtwarzacz" + }, + "new": { + "message": "Nowe" + }, + "nextVideo": { + "message": "Następne wideo" + }, + "night": { + "message": "Noc" + }, + "noActiveFeatures": { + "message": "Brak aktywnych funkcji" + }, + "noOpenVideoTabs": { + "message": "Brak otwartych kart wideo" + }, + "none": { + "message": "Brak" + }, + "normal": { + "message": "Normalny" + }, + "old": { + "message": "Stary" + }, + "onAllVideos": { + "message": "Na wszystkich wideo" + }, + "onSubscribedChannels": { + "message": "Na subskrybowanych kanałach" + }, + "onlyActiveOnYoutube": { + "message": "Aktywny tylko na YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Odtwarzanie tylko jednej instancji odtwarzacza" + }, + "openPopupPlayer": { + "message": "Otwórz wideo/playliste w nowym oknie" + }, + "orange": { + "message": "Pomarańczowy" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Inne" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Uprawnienia" + }, + "pictureInPicture": { + "message": "Obraz w Obrazie" + }, + "pink": { + "message": "Różowy" + }, + "plain": { + "message": "Zwykły" + }, + "platform": { + "message": "Platforma" + }, + "playPause": { + "message": "Odtwarzanie / Pauza" + }, + "playbackSpeed": { + "message": "Prędkość odtwarzania" + }, + "player": { + "message": "Odtwarzacz" + }, + "playerColor": { + "message": "Kolor odtwarzacza" + }, + "playerSize": { + "message": "Rozmiar odtwarzacza" + }, + "playlist": { + "message": "Lista odtwarzania" + }, + "playlists": { + "message": "Listy odtwarzania" + }, + "popupPlayer": { + "message": "Odtwarzacz popout" + }, + "position": { + "message": "Pozycja" + }, + "pressAnyKeyOrScroll": { + "message": "Wciśnij dowolny przycisk lub użyj kółka myszy." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Wciśnij dowolny przycisk lub użyj kółka myszy" + }, + "previousVideo": { + "message": "Poprzednie wideo" + }, + "primaryColor": { + "message": "Kolor główny" + }, + "purple": { + "message": "Fioletowy" + }, + "quality": { + "message": "Jakość" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Oceń nas" + }, + "red": { + "message": "Czerwony" + }, + "redDislikeButton": { + "message": "Koloruj przycisk 'Nie lubię' na czerwono" + }, + "relatedVideos": { + "message": "Wideo powiązane" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Usuń powiązane wyniki wyszukiwania" + }, + "repeat": { + "message": "Powtarzaj" + }, + "reset": { + "message": "Reset" + }, + "resetAllSettings": { + "message": "Resetuj wszystkie ustawienia" + }, + "resetAllShortcuts": { + "message": "Resetuj wszystkie skróty" + }, + "reverse": { + "message": "Odwróć" + }, + "rotate": { + "message": "Obróć" + }, + "save": { + "message": "Zapisz" + }, + "saveAs": { + "message": "Zapisz jako" + }, + "schedule": { + "message": "Harmonogram" + }, + "screen": { + "message": "Ekran" + }, + "screenshot": { + "message": "Zrzut ekranu" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Wyszukaj" + }, + "searchBarOnly": { + "message": "Tylko pasek wyszukiwania" + }, + "seekBackward10Seconds": { + "message": "Przewiń 10 sekund do tyłu" + }, + "seekForward10Seconds": { + "message": "Przewiń 10 sekund do przodu" + }, + "seekNextChapter": { + "message": "Przewiń do następnego rozdziału" + }, + "seekPreviousChapter": { + "message": "Przewiń do poprzedniego rozdziału" + }, + "settings": { + "message": "Ustawienia" + }, + "settingsSuccessfullyImported": { + "message": "Ustawienia pomyślnie zaimportowane" + }, + "shortcuts": { + "message": "Skróty" + }, + "showCardsOnMouseHover": { + "message": "Pokaż karty po najechaniu myszą" + }, + "showChannelVideosCount": { + "message": "Pokaż ilość wideo na kanale" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Losowo" + }, + "sidebar": { + "message": "Panel boczny" + }, + "spacebar": { + "message": "Spacja" + }, + "squaredUserImages": { + "message": "Kwadratowe avatary użytkowników" + }, + "static": { + "message": "Statyczne" + }, + "statsForNerds": { + "message": "Statystyki dla nerdów" + }, + "step": { + "message": "Stopień" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Styl" + }, + "styles": { + "message": "Style" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Subskrypcje" + }, + "subtitles": { + "message": "Napisy" + }, + "sunset": { + "message": "Zachód" + }, + "sunsetToSunrise": { + "message": "Od zachodu do wschodu słońca" + }, + "systemPeferenceDark": { + "message": "Preferencja systemowa: ciemne" + }, + "systemPeferenceLight": { + "message": "Preferencja systemowa: jasne" + }, + "teal": { + "message": "Morski" + }, + "textColor": { + "message": "Kolor tekstu" + }, + "themes": { + "message": "Motywy" + }, + "thisWillRemoveAllCookies": { + "message": "To usunie wszystkie ciasteczka." + }, + "thisWillRemoveAllWatchedVideos": { + "message": "To usunie wszystkie obejrzane wideo." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "To usunie wszystkie ciasteczka YouTube." + }, + "thisWillResetAllSettings": { + "message": "To zresetuje wszystkie ustawienia." + }, + "thisWillResetAllShortcuts": { + "message": "To zresetuje wszystkie skróty" + }, + "thumbnails": { + "message": "Miniatury" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Od" + }, + "timeTo": { + "message": "Do" + }, + "todayAt": { + "message": "Dzisiaj o" + }, + "toggleAutoplay": { + "message": "Przełącz autoodtwarzanie" + }, + "toggleCards": { + "message": "Przełącz karty" + }, + "toggleControls": { + "message": "Przełącz widoczność sterowania odtwarzaczew" + }, + "topChat": { + "message": "Czat na górze" + }, + "trackWatchedVideos": { + "message": "Śledź obejrzane wideo" + }, + "trailerAutoplay": { + "message": "Autoodtwarzanie zwiastunów" + }, + "translations": { + "message": "Tłumaczenia" + }, + "transparentBackground": { + "message": "Przezroczyste tło" + }, + "trending": { + "message": "Na czasie" + }, + "tryToReloadThePage": { + "message": "Spróbuj przeładować stronę" + }, + "type": { + "message": "Typ" + }, + "upNextAutoplay": { + "message": "Autoodwarzanie następnego wideo" + }, + "use24HourFormat": { + "message": "Używaj 24-godzinnego formatu czasu" + }, + "version": { + "message": "Wersja" + }, + "video": { + "message": "Wideo" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Opis wideo zostanie rozwinięty aby pozyskać nazwę kategorii" + }, + "videoFormats": { + "message": "Formaty wideo" + }, + "videos": { + "message": "Wideo" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Głośność" + }, + "watchLater": { + "message": "Obejrzyj później" + }, + "watchTime": { + "message": "Czas oglądania" + }, + "whenTabIsChanged": { + "message": "Kiedy zostaje zmieniona karta" + }, + "white": { + "message": "Biały" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Żółty" + }, + "youtubeHeaderLeft": { + "message": "Nagłówek YouTube (lewy)" + }, + "youtubeHeaderRight": { + "message": "Nagłówek YouTube (prawy)" + }, + "youtubeHomePage": { + "message": "Strona główna YouTube" + }, + "youtubeLanguage": { + "message": "Język YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube ogranicza jakość wideo do 1080p przy kodeku h.264" + } } \ No newline at end of file diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index aae0b8df1..5d51615c9 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -1,971 +1,986 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Sobre" - }, - "accept": { - "message": "Accept" - }, - "activate": { - "message": "Activate" - }, - "activateCaptions": { - "message": "Ativar legendas" - }, - "activateFullscreen": { - "message": "Ativar tela cheia" - }, - "activated": { - "message": "Activated" - }, - "activatedFeatures": { - "message": "Activated features" - }, - "activeFeatures": { - "message": "Funções ativas" - }, - "addScrollToTop": { - "message": "Habilitar botão «Voltar ao Topo»" - }, - "ads": { - "message": "Anúncios" - }, - "all": { - "message": "All" - }, - "allow": { - "message": "Permitir" - }, - "allow60fps": { - "message": "Permitir 60fps" - }, - "alwaysActive": { - "message": "Sempre ativo" - }, - "alwaysShowProgressBar": { - "message": "Sempre exibir a barra de progresso" - }, - "amber": { - "message": "Âmbar" - }, - "analyzer": { - "message": "Analítico" - }, - "appearance": { - "message": "Aparência" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Áudio" - }, - "audioFormats": { - "message": "Formatos de áudio" - }, - "auto": { - "message": "Automático" - }, - "autoFullscreen": { - "message": "Tela cheia automática" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausar vídeo ao alternar entre abas" - }, - "autoplay": { - "message": "Reprodução automática" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Backup & Restauração" - }, - "baseOnSystemColorScheme": { - "message": "Baseado nas cores do sistema" - }, - "belowPlayer": { - "message": "Abaixo do player" - }, - "black": { - "message": "Preto" - }, - "blacklist": { - "message": "Lista negra" - }, - "blockAll": { - "message": "Bloquear tudo" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Azul" - }, - "blueGray": { - "message": "Cinza Azulado" - }, - "bluelight": { - "message": "Filtrar luz azul" - }, - "brown": { - "message": "Marrom" - }, - "browser": { - "message": "Navegador" - }, - "browserVersion": { - "message": "Versão do navegador" - }, - "bubbles": { - "message": "Bolhas" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Botões" - }, - "cancel": { - "message": "Cancelar" - }, - "categories": { - "message": "Categorias" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canais" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" - }, - "collapsed": { - "message": "Retraído" - }, - "comments": { - "message": "Comentários" - }, - "confirmationBeforeClosing": { - "message": "Alerta ao fechar a página" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Núcleos" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Custom JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Ciano" - }, - "dark": { - "message": "Obscuro" - }, - "darkTheme": { - "message": "Tema escuro" - }, - "dateAndTime": { - "message": "Data & Hora" - }, - "dawn": { - "message": "Alvorecer" - }, - "decreasePlaybackSpeed": { - "message": "Diminuir velocidade" - }, - "decreaseVolume": { - "message": "Diminuir volume" - }, - "deepOrange": { - "message": "Laranja Escuro" - }, - "deepPurple": { - "message": "Roxo Escuro" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Aba padrão do canal" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Deletar cookies do YouTube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Descrição" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Deserto" - }, - "details": { - "message": "Detalhes" - }, - "developerOptions": { - "message": "Developer options" - }, - "device": { - "message": "Dispositivo" - }, - "dim": { - "message": "Escurecer" - }, - "disabled": { - "message": "Desabilitado" - }, - "dislike": { - "message": "Não Gostei." - }, - "doNotChange": { - "message": "Não alterar" - }, - "donate": { - "message": "Doar" - }, - "draggable": { - "message": "Arrastável" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Vazio" - }, - "enabled": { - "message": "Habilitado" - }, - "enabledForced": { - "message": "Enabled (forced)" - }, - "expanded": { - "message": "Expandido" - }, - "exportSettings": { - "message": "Exportar configurações" - }, - "extension": { - "message": "Extensão" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filtros" - }, - "fitToWindow": { - "message": "Ajustar à janela" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Rodapé" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, - "forcedTheaterMode": { - "message": "Forçar modo teatro" - }, - "forcedVolume": { - "message": "Forçar volume" - }, - "foundABug": { - "message": "Encontrou um bug?" - }, - "fullWindow": { - "message": "Preencher a janela" - }, - "general": { - "message": "Geral" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Selecionar barra de pesquisa" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura em HD" - }, - "hdThumbnails": { - "message": "Miniaturas em HD" - }, - "header": { - "message": "Cabeçalho" - }, - "hidden": { - "message": "Oculto" - }, - "hiddenOnVideoPage": { - "message": "Oculto na página de vídeo" - }, - "hideAnimatedThumbnails": { - "message": "Desabilitar miniaturas animadas" - }, - "hideAnnotations": { - "message": "Ocultar anotações" - }, - "hideCards": { - "message": "Ocultar cards" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Ocultar detalhes" - }, - "hideEndscreen": { - "message": "Ocultar tela final" - }, - "hideFeaturedContent": { - "message": "Ocultar conteúdo em destaque" - }, - "hideFooter": { - "message": "Ocultar rodapé" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Ocultar playlist" - }, - "hideRightButtons": { - "message": "Ocultar botões à direita" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Ocultar «Rolar Para Ver Detalhes»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Ocultar visualizações" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "Histórico" - }, - "home": { - "message": "Início" - }, - "hover": { - "message": "Retrátil" - }, - "hoverOnVideoPage": { - "message": "Retrátil na página de video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Tempo decorrido desde a publicação" - }, - "icons": { - "message": "Ícones" - }, - "iconsOnly": { - "message": "Apenas ícones" - }, - "importSettings": { - "message": "Importar configurações" - }, - "improveLogo": { - "message": "Aprimorar logomarca" - }, - "improvedtubeIconOnYoutube": { - "message": "Ícone do ImprovedTube no YouTube" - }, - "improvedtubeLanguage": { - "message": "Idioma do ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versão do ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Aumentar velocidade" - }, - "increaseVolume": { - "message": "Diminuir volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Itens" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Idiomas" - }, - "legacyYoutube": { - "message": "YouTube antigo" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Claro" - }, - "lightBlue": { - "message": "Azul Claro" - }, - "lightGreen": { - "message": "Verde Claro" - }, - "like": { - "message": "Gostei!" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Avaliações" - }, - "lime": { - "message": "Verde Limão" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Bate-Papo Ao Vivo" - }, - "liveChatType": { - "message": "Live chat type" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Normalização de volume" - }, - "markWatchedVideos": { - "message": "Mark watched videos" - }, - "mixer": { - "message": "Mixer" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "My colors" - }, - "name": { - "message": "Nome" - }, - "nativeMiniPlayer": { - "message": "Mini player nativo" - }, - "new": { - "message": "Novo" - }, - "nextVideo": { - "message": "Próximo vídeo" - }, - "night": { - "message": "Noite" - }, - "noActiveFeatures": { - "message": "No active features" - }, - "noOpenVideoTabs": { - "message": "Nenhuma aba de vídeo aberta" - }, - "none": { - "message": "Nenhum" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Antigo" - }, - "onAllVideos": { - "message": "Em todos os vídeos" - }, - "onSubscribedChannels": { - "message": "Apenas em inscrições" - }, - "onlyActiveOnYoutube": { - "message": "Ativo apenas no YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "orange": { - "message": "Laranja" - }, - "os": { - "message": "Sistema Operacional" - }, - "other": { - "message": "Outras opções" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Permissões" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Panície" - }, - "platform": { - "message": "Plataforma" - }, - "playPause": { - "message": "Reproduzir / Pausar" - }, - "playbackSpeed": { - "message": "Velocidade de reprodução" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Cor do player" - }, - "playerSize": { - "message": "Tamanho do player" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "popupPlayer": { - "message": "Player externo" - }, - "position": { - "message": "Posição" - }, - "pressAnyKeyOrScroll": { - "message": "Pressione qualquer tecla ou use a roda do mouse" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Pressione qualquer tecla ou use a roda do mouse" - }, - "previousVideo": { - "message": "Vídeo anterior" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "Roxo" - }, - "quality": { - "message": "Qualidade" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Avalie-nos!" - }, - "red": { - "message": "Vermelho" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Vídeos relacionados" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Remove related search results" - }, - "repeat": { - "message": "Repetir" - }, - "reset": { - "message": "Restaurar" - }, - "resetAllSettings": { - "message": "Restaurar todas as configurações" - }, - "resetAllShortcuts": { - "message": "Reset all shortcuts" - }, - "reverse": { - "message": "Reverso" - }, - "rotate": { - "message": "Rotacionar" - }, - "save": { - "message": "Salvar" - }, - "saveAs": { - "message": "Salvar como" - }, - "schedule": { - "message": "Agendamento" - }, - "screen": { - "message": "Tela" - }, - "screenshot": { - "message": "Captura de tela" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "Pesquisar" - }, - "searchBarOnly": { - "message": "Apenas barra de pesquisa" - }, - "seekBackward10Seconds": { - "message": "Retroceder 10 segundos" - }, - "seekForward10Seconds": { - "message": "Avançar 10 segundos" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Configurações" - }, - "settingsSuccessfullyImported": { - "message": "Configurações importadas com sucesso" - }, - "shortcuts": { - "message": "Atalhos" - }, - "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" - }, - "showChannelVideosCount": { - "message": "Número de vídeos do canal" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Aleatório" - }, - "sidebar": { - "message": "Painel lateral" - }, - "spacebar": { - "message": "Espaço" - }, - "squaredUserImages": { - "message": "Avatares quadrados" - }, - "static": { - "message": "Estático" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Parar" - }, - "style": { - "message": "Estilo" - }, - "styles": { - "message": "Estilos" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Inscrições" - }, - "subtitles": { - "message": "Legendas" - }, - "sunset": { - "message": "Pôr do Sol" - }, - "sunsetToSunrise": { - "message": "Durante a noite" - }, - "systemPeferenceDark": { - "message": "Preferência do sistema: Escuro" - }, - "systemPeferenceLight": { - "message": "Preferência do sistema: Claro" - }, - "teal": { - "message": "Verde Azulado" - }, - "textColor": { - "message": "Text color" - }, - "themes": { - "message": "Temas" - }, - "thisWillRemoveAllCookies": { - "message": "Todos os cookies serão removidos." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Todos os cookies do YouTube serão removidos" - }, - "thisWillResetAllSettings": { - "message": "As configurações padrão serão restauradas." - }, - "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" - }, - "thumbnails": { - "message": "Miniaturas" - }, - "timeFrom": { - "message": "Horário inicial" - }, - "timeTo": { - "message": "Horário final" - }, - "todayAt": { - "message": "Hoje às" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Reproduzir trailer" - }, - "translations": { - "message": "Translations" - }, - "transparentBackground": { - "message": "Fundo transparente" - }, - "trending": { - "message": "Em Alta" - }, - "tryToReloadThePage": { - "message": "Recarregue a página" - }, - "type": { - "message": "Tipo" - }, - "upNextAutoplay": { - "message": "Reproduzir vídeo em seguida" - }, - "use24HourFormat": { - "message": "Usar formato de 24 horas" - }, - "version": { - "message": "Versão" - }, - "video": { - "message": "Vídeo" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "A descrição se expandirá para acessar a categoria do vídeo" - }, - "videoFormats": { - "message": "Formatos de vídeo" - }, - "videos": { - "message": "Vídeos" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Assistir mais tarde" - }, - "watchTime": { - "message": "Tempo de exibição" - }, - "whenTabIsChanged": { - "message": "Quando alternar entre abas" - }, - "white": { - "message": "Branco" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Amarelo" - }, - "youtubeHeaderLeft": { - "message": "No cabeçalho à esquerda" - }, - "youtubeHeaderRight": { - "message": "No cabeçalho à direita" - }, - "youtubeHomePage": { - "message": "Página inicial do YouTube" - }, - "youtubeLanguage": { - "message": "Idioma do YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "O YouTube limita o codec h.264 à resolução de 1080p" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Sobre" + }, + "accept": { + "message": "Accept" + }, + "activate": { + "message": "Activate" + }, + "activateCaptions": { + "message": "Ativar legendas" + }, + "activateFullscreen": { + "message": "Ativar tela cheia" + }, + "activated": { + "message": "Activated" + }, + "activatedFeatures": { + "message": "Activated features" + }, + "activeFeatures": { + "message": "Funções ativas" + }, + "addScrollToTop": { + "message": "Habilitar botão «Voltar ao Topo»" + }, + "ads": { + "message": "Anúncios" + }, + "all": { + "message": "All" + }, + "allow": { + "message": "Permitir" + }, + "allow60fps": { + "message": "Permitir 60fps" + }, + "alwaysActive": { + "message": "Sempre ativo" + }, + "alwaysShowProgressBar": { + "message": "Sempre exibir a barra de progresso" + }, + "amber": { + "message": "Âmbar" + }, + "analyzer": { + "message": "Analítico" + }, + "appearance": { + "message": "Aparência" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "Áudio" + }, + "audioFormats": { + "message": "Formatos de áudio" + }, + "auto": { + "message": "Automático" + }, + "autoFullscreen": { + "message": "Tela cheia automática" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausar vídeo ao alternar entre abas" + }, + "autoplay": { + "message": "Reprodução automática" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Backup & Restauração" + }, + "baseOnSystemColorScheme": { + "message": "Baseado nas cores do sistema" + }, + "belowPlayer": { + "message": "Abaixo do player" + }, + "black": { + "message": "Preto" + }, + "blacklist": { + "message": "Lista negra" + }, + "blockAll": { + "message": "Bloquear tudo" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Azul" + }, + "blueGray": { + "message": "Cinza Azulado" + }, + "bluelight": { + "message": "Filtrar luz azul" + }, + "brown": { + "message": "Marrom" + }, + "browser": { + "message": "Navegador" + }, + "browserVersion": { + "message": "Versão do navegador" + }, + "bubbles": { + "message": "Bolhas" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Botões" + }, + "cancel": { + "message": "Cancelar" + }, + "categories": { + "message": "Categorias" + }, + "channel": { + "message": "Canal" + }, + "channels": { + "message": "Canais" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Collapse of subscription sections" + }, + "collapsed": { + "message": "Retraído" + }, + "comments": { + "message": "Comentários" + }, + "confirmationBeforeClosing": { + "message": "Alerta ao fechar a página" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Núcleos" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Custom JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Ciano" + }, + "dark": { + "message": "Obscuro" + }, + "darkTheme": { + "message": "Tema escuro" + }, + "dateAndTime": { + "message": "Data & Hora" + }, + "dawn": { + "message": "Alvorecer" + }, + "decreasePlaybackSpeed": { + "message": "Diminuir velocidade" + }, + "decreaseVolume": { + "message": "Diminuir volume" + }, + "deepOrange": { + "message": "Laranja Escuro" + }, + "deepPurple": { + "message": "Roxo Escuro" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Aba padrão do canal" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Deletar cookies do YouTube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Descrição" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Deserto" + }, + "details": { + "message": "Detalhes" + }, + "developerOptions": { + "message": "Developer options" + }, + "device": { + "message": "Dispositivo" + }, + "dim": { + "message": "Escurecer" + }, + "disabled": { + "message": "Desabilitado" + }, + "dislike": { + "message": "Não Gostei." + }, + "doNotChange": { + "message": "Não alterar" + }, + "donate": { + "message": "Doar" + }, + "draggable": { + "message": "Arrastável" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Vazio" + }, + "enabled": { + "message": "Habilitado" + }, + "enabledForced": { + "message": "Enabled (forced)" + }, + "expanded": { + "message": "Expandido" + }, + "exportSettings": { + "message": "Exportar configurações" + }, + "extension": { + "message": "Extensão" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filtros" + }, + "fitToWindow": { + "message": "Ajustar à janela" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Rodapé" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, + "forcedTheaterMode": { + "message": "Forçar modo teatro" + }, + "forcedVolume": { + "message": "Forçar volume" + }, + "foundABug": { + "message": "Encontrou um bug?" + }, + "fullWindow": { + "message": "Preencher a janela" + }, + "general": { + "message": "Geral" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Selecionar barra de pesquisa" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "Miniatura em HD" + }, + "header": { + "message": "Cabeçalho" + }, + "hidden": { + "message": "Oculto" + }, + "hiddenOnVideoPage": { + "message": "Oculto na página de vídeo" + }, + "hideAnimatedThumbnails": { + "message": "Desabilitar miniaturas animadas" + }, + "hideAnnotations": { + "message": "Ocultar anotações" + }, + "hideCards": { + "message": "Ocultar cards" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Ocultar detalhes" + }, + "hideEndscreen": { + "message": "Ocultar tela final" + }, + "hideFeaturedContent": { + "message": "Ocultar conteúdo em destaque" + }, + "hideFooter": { + "message": "Ocultar rodapé" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Ocultar playlist" + }, + "hideRightButtons": { + "message": "Ocultar botões à direita" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Ocultar «Rolar Para Ver Detalhes»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Ocultar visualizações" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Histórico" + }, + "home": { + "message": "Início" + }, + "hover": { + "message": "Retrátil" + }, + "hoverOnVideoPage": { + "message": "Retrátil na página de video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Tempo decorrido desde a publicação" + }, + "icons": { + "message": "Ícones" + }, + "iconsOnly": { + "message": "Apenas ícones" + }, + "importSettings": { + "message": "Importar configurações" + }, + "improveLogo": { + "message": "Aprimorar logomarca" + }, + "improvedtubeIconOnYoutube": { + "message": "Ícone do ImprovedTube no YouTube" + }, + "improvedtubeLanguage": { + "message": "Idioma do ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Versão do ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Aumentar velocidade" + }, + "increaseVolume": { + "message": "Diminuir volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Itens" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Idiomas" + }, + "legacyYoutube": { + "message": "YouTube antigo" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Claro" + }, + "lightBlue": { + "message": "Azul Claro" + }, + "lightGreen": { + "message": "Verde Claro" + }, + "like": { + "message": "Gostei!" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Avaliações" + }, + "lime": { + "message": "Verde Limão" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Bate-Papo Ao Vivo" + }, + "liveChatType": { + "message": "Live chat type" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Normalização de volume" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Mark watched videos" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "My colors" + }, + "name": { + "message": "Nome" + }, + "nativeMiniPlayer": { + "message": "Mini player nativo" + }, + "new": { + "message": "Novo" + }, + "nextVideo": { + "message": "Próximo vídeo" + }, + "night": { + "message": "Noite" + }, + "noActiveFeatures": { + "message": "No active features" + }, + "noOpenVideoTabs": { + "message": "Nenhuma aba de vídeo aberta" + }, + "none": { + "message": "Nenhum" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Antigo" + }, + "onAllVideos": { + "message": "Em todos os vídeos" + }, + "onSubscribedChannels": { + "message": "Apenas em inscrições" + }, + "onlyActiveOnYoutube": { + "message": "Ativo apenas no YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "orange": { + "message": "Laranja" + }, + "os": { + "message": "Sistema Operacional" + }, + "other": { + "message": "Outras opções" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Permissões" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Panície" + }, + "platform": { + "message": "Plataforma" + }, + "playPause": { + "message": "Reproduzir / Pausar" + }, + "playbackSpeed": { + "message": "Velocidade de reprodução" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Cor do player" + }, + "playerSize": { + "message": "Tamanho do player" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "popupPlayer": { + "message": "Player externo" + }, + "position": { + "message": "Posição" + }, + "pressAnyKeyOrScroll": { + "message": "Pressione qualquer tecla ou use a roda do mouse" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Pressione qualquer tecla ou use a roda do mouse" + }, + "previousVideo": { + "message": "Vídeo anterior" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "Roxo" + }, + "quality": { + "message": "Qualidade" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Avalie-nos!" + }, + "red": { + "message": "Vermelho" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Vídeos relacionados" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Remove related search results" + }, + "repeat": { + "message": "Repetir" + }, + "reset": { + "message": "Restaurar" + }, + "resetAllSettings": { + "message": "Restaurar todas as configurações" + }, + "resetAllShortcuts": { + "message": "Reset all shortcuts" + }, + "reverse": { + "message": "Reverso" + }, + "rotate": { + "message": "Rotacionar" + }, + "save": { + "message": "Salvar" + }, + "saveAs": { + "message": "Salvar como" + }, + "schedule": { + "message": "Agendamento" + }, + "screen": { + "message": "Tela" + }, + "screenshot": { + "message": "Captura de tela" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Pesquisar" + }, + "searchBarOnly": { + "message": "Apenas barra de pesquisa" + }, + "seekBackward10Seconds": { + "message": "Retroceder 10 segundos" + }, + "seekForward10Seconds": { + "message": "Avançar 10 segundos" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Configurações" + }, + "settingsSuccessfullyImported": { + "message": "Configurações importadas com sucesso" + }, + "shortcuts": { + "message": "Atalhos" + }, + "showCardsOnMouseHover": { + "message": "Show cards on mouse hover" + }, + "showChannelVideosCount": { + "message": "Número de vídeos do canal" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Aleatório" + }, + "sidebar": { + "message": "Painel lateral" + }, + "spacebar": { + "message": "Espaço" + }, + "squaredUserImages": { + "message": "Avatares quadrados" + }, + "static": { + "message": "Estático" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Parar" + }, + "style": { + "message": "Estilo" + }, + "styles": { + "message": "Estilos" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Inscrições" + }, + "subtitles": { + "message": "Legendas" + }, + "sunset": { + "message": "Pôr do Sol" + }, + "sunsetToSunrise": { + "message": "Durante a noite" + }, + "systemPeferenceDark": { + "message": "Preferência do sistema: Escuro" + }, + "systemPeferenceLight": { + "message": "Preferência do sistema: Claro" + }, + "teal": { + "message": "Verde Azulado" + }, + "textColor": { + "message": "Text color" + }, + "themes": { + "message": "Temas" + }, + "thisWillRemoveAllCookies": { + "message": "Todos os cookies serão removidos." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Todos os cookies do YouTube serão removidos" + }, + "thisWillResetAllSettings": { + "message": "As configurações padrão serão restauradas." + }, + "thisWillResetAllShortcuts": { + "message": "This will reset all shortcuts" + }, + "thumbnails": { + "message": "Miniaturas" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Horário inicial" + }, + "timeTo": { + "message": "Horário final" + }, + "todayAt": { + "message": "Hoje às" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Reproduzir trailer" + }, + "translations": { + "message": "Translations" + }, + "transparentBackground": { + "message": "Fundo transparente" + }, + "trending": { + "message": "Em Alta" + }, + "tryToReloadThePage": { + "message": "Recarregue a página" + }, + "type": { + "message": "Tipo" + }, + "upNextAutoplay": { + "message": "Reproduzir vídeo em seguida" + }, + "use24HourFormat": { + "message": "Usar formato de 24 horas" + }, + "version": { + "message": "Versão" + }, + "video": { + "message": "Vídeo" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "A descrição se expandirá para acessar a categoria do vídeo" + }, + "videoFormats": { + "message": "Formatos de vídeo" + }, + "videos": { + "message": "Vídeos" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Assistir mais tarde" + }, + "watchTime": { + "message": "Tempo de exibição" + }, + "whenTabIsChanged": { + "message": "Quando alternar entre abas" + }, + "white": { + "message": "Branco" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Amarelo" + }, + "youtubeHeaderLeft": { + "message": "No cabeçalho à esquerda" + }, + "youtubeHeaderRight": { + "message": "No cabeçalho à direita" + }, + "youtubeHomePage": { + "message": "Página inicial do YouTube" + }, + "youtubeLanguage": { + "message": "Idioma do YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "O YouTube limita o codec h.264 à resolução de 1080p" + } } \ No newline at end of file diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index fa97f5814..ada8b7c09 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -1,971 +1,986 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Acerca" - }, - "accept": { - "message": "Aceitar" - }, - "activate": { - "message": "Ativar" - }, - "activateCaptions": { - "message": "Ativar legendas" - }, - "activateFullscreen": { - "message": "Ativar ecrã completo" - }, - "activated": { - "message": "Ativado" - }, - "activatedFeatures": { - "message": "Opções ativadas" - }, - "activeFeatures": { - "message": "Opções ativas" - }, - "addScrollToTop": { - "message": "Adicionar «Ir para o topo»" - }, - "ads": { - "message": "Anúncios" - }, - "all": { - "message": "Todas" - }, - "allow": { - "message": "Permitir" - }, - "allow60fps": { - "message": "Permitir 60fps" - }, - "alwaysActive": { - "message": "Sempre ativo" - }, - "alwaysShowProgressBar": { - "message": "Mostrar sempre a barra de progressos" - }, - "amber": { - "message": "Âmbar" - }, - "analyzer": { - "message": "Analisador" - }, - "appearance": { - "message": "Aparência" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Áudio" - }, - "audioFormats": { - "message": "Formatos de áudio" - }, - "auto": { - "message": "Automático" - }, - "autoFullscreen": { - "message": "Ecrân completo automático" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausa quando muda de abas" - }, - "autoplay": { - "message": "Reprodução automática" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Cópia de segurança e repor" - }, - "baseOnSystemColorScheme": { - "message": "Baseado no esquema de cores do sistema" - }, - "belowPlayer": { - "message": "Reprodutor abaixo" - }, - "black": { - "message": "Preto" - }, - "blacklist": { - "message": "Lista negra" - }, - "blockAll": { - "message": "Bloquear todos" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Azul" - }, - "blueGray": { - "message": "Azul acizentado" - }, - "bluelight": { - "message": "Azul claro" - }, - "brown": { - "message": "Castanho" - }, - "browser": { - "message": "Navegador" - }, - "browserVersion": { - "message": "Versão do navegador" - }, - "bubbles": { - "message": "Bolhas" - }, - "bug": { - "message": "Erro" - }, - "buttons": { - "message": "Botões" - }, - "cancel": { - "message": "Cancelar" - }, - "categories": { - "message": "Categorias" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canais" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Area de transferência" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Extender as secções escolhidas" - }, - "collapsed": { - "message": "Extender" - }, - "comments": { - "message": "Comentários" - }, - "confirmationBeforeClosing": { - "message": "Confirmar antes de encerrar" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "CSS personalizadas" - }, - "customJs": { - "message": "JS personalizadas" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Esverdeado" - }, - "dark": { - "message": "Escuro" - }, - "darkTheme": { - "message": "Tema escuro" - }, - "dateAndTime": { - "message": "Data & hora" - }, - "dawn": { - "message": "Escurecer" - }, - "decreasePlaybackSpeed": { - "message": "Diminuir velocidade de leitura" - }, - "decreaseVolume": { - "message": "Diminuir volume" - }, - "deepOrange": { - "message": "Laranja forte" - }, - "deepPurple": { - "message": "Lilás forte" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Aba padrão do canal" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Apagar os cookies do YouTube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Descrição" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Deserto" - }, - "details": { - "message": "Detalhes" - }, - "developerOptions": { - "message": "Opções de programador" - }, - "device": { - "message": "Aparelho" - }, - "dim": { - "message": "Escurecer" - }, - "disabled": { - "message": "Desabilitado" - }, - "dislike": { - "message": "Não gostar" - }, - "doNotChange": { - "message": "Não mudes" - }, - "donate": { - "message": "Doar" - }, - "draggable": { - "message": "Podes arrastar" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Correio electronico" - }, - "empty": { - "message": "Vazio" - }, - "enabled": { - "message": "Ativado" - }, - "enabledForced": { - "message": "Ativado (forçado)" - }, - "expanded": { - "message": "Expandir" - }, - "exportSettings": { - "message": "Exportar definições" - }, - "extension": { - "message": "Extenção" - }, - "file": { - "message": "Ficheiro" - }, - "filters": { - "message": "Filtros" - }, - "fitToWindow": { - "message": "Ajustar á janela" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Tipo de letra" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Cabeçalho" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Forçar velocidade de leitura" - }, - "forcedTheaterMode": { - "message": "Forçar modo de cinema" - }, - "forcedVolume": { - "message": "Volume forçado" - }, - "foundABug": { - "message": "Encontrou um erro?" - }, - "fullWindow": { - "message": "Janela completa" - }, - "general": { - "message": "Geral" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Vai à caixa de pesquisa" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatura HD" - }, - "hdThumbnails": { - "message": "Miniaturas HD" - }, - "header": { - "message": "Cabeçalho" - }, - "hidden": { - "message": "Escondido" - }, - "hiddenOnVideoPage": { - "message": "Escondido na página do video" - }, - "hideAnimatedThumbnails": { - "message": "Esconder miniaturas animadas" - }, - "hideAnnotations": { - "message": "Esconder anotações" - }, - "hideCards": { - "message": "Esconder cartas" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Esconder detalhes" - }, - "hideEndscreen": { - "message": "Esconder ecãn final" - }, - "hideFeaturedContent": { - "message": "Esconder conteúdo" - }, - "hideFooter": { - "message": "Esconder rodapé" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Esconder lista de reprodução" - }, - "hideRightButtons": { - "message": "Esconder botões do lado direito" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Esconder «Rodar para detalhes»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Esconder número de vistos" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "História" - }, - "home": { - "message": "Casa" - }, - "hover": { - "message": "Aponta" - }, - "hoverOnVideoPage": { - "message": "Apontar na página do video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "À quanto tempo o video foi enviado" - }, - "icons": { - "message": "Ícones" - }, - "iconsOnly": { - "message": "Ícones apenas" - }, - "importSettings": { - "message": "Importar definições" - }, - "improveLogo": { - "message": "Melhorar logotipo" - }, - "improvedtubeIconOnYoutube": { - "message": "Ícon do ImprovedTube no YouTube" - }, - "improvedtubeLanguage": { - "message": "Linguagem do ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versão do ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Aumentar velocidade de leitura" - }, - "increaseVolume": { - "message": "Aumentar o volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Artigos" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Linguagens" - }, - "legacyYoutube": { - "message": "YouTube antigo" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Claro" - }, - "lightBlue": { - "message": "Azul claro" - }, - "lightGreen": { - "message": "Verde claro" - }, - "like": { - "message": "Gostar" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Gostos" - }, - "lime": { - "message": "Limão" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Conversa do vivo" - }, - "liveChatType": { - "message": "Tipo de conversa do vivo" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Normalização do volume" - }, - "markWatchedVideos": { - "message": "Marcar os videos como vistos" - }, - "mixer": { - "message": "Mistura" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Minhas cores" - }, - "name": { - "message": "Nome" - }, - "nativeMiniPlayer": { - "message": "Leitor pequeno padrão" - }, - "new": { - "message": "Novo" - }, - "nextVideo": { - "message": "Próximo video" - }, - "night": { - "message": "Noite" - }, - "noActiveFeatures": { - "message": "Sem opções ativas" - }, - "noOpenVideoTabs": { - "message": "Não abrir janelas de video" - }, - "none": { - "message": "Nenhuma" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Velho" - }, - "onAllVideos": { - "message": "Em todos os videos" - }, - "onSubscribedChannels": { - "message": "Nos canais subscritos" - }, - "onlyActiveOnYoutube": { - "message": "Ativo apenas no YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Apenas uma instância do leitor de video" - }, - "orange": { - "message": "Laranja" - }, - "os": { - "message": "SO" - }, - "other": { - "message": "Outro" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Permissões" - }, - "pictureInPicture": { - "message": "Janela em janela" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Simples" - }, - "platform": { - "message": "Plataforma" - }, - "playPause": { - "message": "Reproduzir / Pausar" - }, - "playbackSpeed": { - "message": "Velocidade de leitura" - }, - "player": { - "message": "Leitor" - }, - "playerColor": { - "message": "Côr do leitor" - }, - "playerSize": { - "message": "Tamanho do leitor" - }, - "playlist": { - "message": "Lista de reprodução" - }, - "playlists": { - "message": "Listas de reprodução" - }, - "popupPlayer": { - "message": "Leitor em janela" - }, - "position": { - "message": "Posição" - }, - "pressAnyKeyOrScroll": { - "message": "Carrega em qualquer tecla ou usa a roldana do rato" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Carrega em qualquer tecla ou usa a roldana do rato" - }, - "previousVideo": { - "message": "Video anterior" - }, - "primaryColor": { - "message": "Côr primaria" - }, - "purple": { - "message": "Violeta" - }, - "quality": { - "message": "Qualidade" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "Memoria" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Avalia-nos" - }, - "red": { - "message": "Vermelho" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Videos relacionados" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Remove resultados relacionado com a pesquisa" - }, - "repeat": { - "message": "Repetir" - }, - "reset": { - "message": "Valores de origem" - }, - "resetAllSettings": { - "message": "Valores de origem em todas as definições" - }, - "resetAllShortcuts": { - "message": "Repôr todos os atalhos" - }, - "reverse": { - "message": "Recuar" - }, - "rotate": { - "message": "Rodar" - }, - "save": { - "message": "Gravar" - }, - "saveAs": { - "message": "Gravar como" - }, - "schedule": { - "message": "Agendar" - }, - "screen": { - "message": "Ecrân" - }, - "screenshot": { - "message": "Foto do ecrân" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "Pesquisa" - }, - "searchBarOnly": { - "message": "Apenas barra de pesquisa" - }, - "seekBackward10Seconds": { - "message": "Andar para trás 10 segundos" - }, - "seekForward10Seconds": { - "message": "Andar para frente 10 segundos" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Definições" - }, - "settingsSuccessfullyImported": { - "message": "Definições importadas com sucesso" - }, - "shortcuts": { - "message": "Atalhos" - }, - "showCardsOnMouseHover": { - "message": "Mostrar cartas ao passar o rato por cima" - }, - "showChannelVideosCount": { - "message": "Mostrar contagem de videos do canal" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Misturar" - }, - "sidebar": { - "message": "Barra lateral" - }, - "spacebar": { - "message": "Barra de espaços" - }, - "squaredUserImages": { - "message": "Imagens de utilizador enquadradas" - }, - "static": { - "message": "Estática" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Passo" - }, - "stop": { - "message": "Parar" - }, - "style": { - "message": "Estilo" - }, - "styles": { - "message": "Estilos" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Subscrições" - }, - "subtitles": { - "message": "Legendas" - }, - "sunset": { - "message": "Pôr do sol" - }, - "sunsetToSunrise": { - "message": "Pôr do sol até de manhã" - }, - "systemPeferenceDark": { - "message": "Preferências do sistema: Escuro" - }, - "systemPeferenceLight": { - "message": "Preferências do sistema: Claro" - }, - "teal": { - "message": "Azul esverdeado" - }, - "textColor": { - "message": "Côr do texto" - }, - "themes": { - "message": "Temas" - }, - "thisWillRemoveAllCookies": { - "message": "Isto vai remover todos os cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Isto vai remover todos os cookies do YouTube" - }, - "thisWillResetAllSettings": { - "message": "Isto vai reiniciar todas as definições." - }, - "thisWillResetAllShortcuts": { - "message": "Isto vai reiniciar todos os atalhos" - }, - "thumbnails": { - "message": "Miniaturas" - }, - "timeFrom": { - "message": "Tempo de" - }, - "timeTo": { - "message": "Tempo para" - }, - "todayAt": { - "message": "Hoje em" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Conversa principal" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Trailer toca automaticamente" - }, - "translations": { - "message": "Traduções" - }, - "transparentBackground": { - "message": "Fundo transparente" - }, - "trending": { - "message": "Tendências" - }, - "tryToReloadThePage": { - "message": "Tenta carregar a pagina de novo" - }, - "type": { - "message": "Escreve" - }, - "upNextAutoplay": { - "message": "Arquivo seguinte a tocar" - }, - "use24HourFormat": { - "message": "Usar formato de 24-horas" - }, - "version": { - "message": "Versão" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "A descrição do video vai ser expandida para ver o nome da categoria" - }, - "videoFormats": { - "message": "Formatos de video" - }, - "videos": { - "message": "Videos" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Vêr mais tarde" - }, - "watchTime": { - "message": "Tempo de visualização" - }, - "whenTabIsChanged": { - "message": "Quando a janela mudar" - }, - "white": { - "message": "Branco" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Amarelo" - }, - "youtubeHeaderLeft": { - "message": "Cabeçalho do YouTube (esquerda)" - }, - "youtubeHeaderRight": { - "message": "Cabeçalho do YouTube (direita)" - }, - "youtubeHomePage": { - "message": "Página principal do YouTube" - }, - "youtubeLanguage": { - "message": "Linguagem do YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "O YouTube limita a qualidade do video em 1080p para o codec h.264" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Acerca" + }, + "accept": { + "message": "Aceitar" + }, + "activate": { + "message": "Ativar" + }, + "activateCaptions": { + "message": "Ativar legendas" + }, + "activateFullscreen": { + "message": "Ativar ecrã completo" + }, + "activated": { + "message": "Ativado" + }, + "activatedFeatures": { + "message": "Opções ativadas" + }, + "activeFeatures": { + "message": "Opções ativas" + }, + "addScrollToTop": { + "message": "Adicionar «Ir para o topo»" + }, + "ads": { + "message": "Anúncios" + }, + "all": { + "message": "Todas" + }, + "allow": { + "message": "Permitir" + }, + "allow60fps": { + "message": "Permitir 60fps" + }, + "alwaysActive": { + "message": "Sempre ativo" + }, + "alwaysShowProgressBar": { + "message": "Mostrar sempre a barra de progressos" + }, + "amber": { + "message": "Âmbar" + }, + "analyzer": { + "message": "Analisador" + }, + "appearance": { + "message": "Aparência" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "Áudio" + }, + "audioFormats": { + "message": "Formatos de áudio" + }, + "auto": { + "message": "Automático" + }, + "autoFullscreen": { + "message": "Ecrân completo automático" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausa quando muda de abas" + }, + "autoplay": { + "message": "Reprodução automática" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Cópia de segurança e repor" + }, + "baseOnSystemColorScheme": { + "message": "Baseado no esquema de cores do sistema" + }, + "belowPlayer": { + "message": "Reprodutor abaixo" + }, + "black": { + "message": "Preto" + }, + "blacklist": { + "message": "Lista negra" + }, + "blockAll": { + "message": "Bloquear todos" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Azul" + }, + "blueGray": { + "message": "Azul acizentado" + }, + "bluelight": { + "message": "Azul claro" + }, + "brown": { + "message": "Castanho" + }, + "browser": { + "message": "Navegador" + }, + "browserVersion": { + "message": "Versão do navegador" + }, + "bubbles": { + "message": "Bolhas" + }, + "bug": { + "message": "Erro" + }, + "buttons": { + "message": "Botões" + }, + "cancel": { + "message": "Cancelar" + }, + "categories": { + "message": "Categorias" + }, + "channel": { + "message": "Canal" + }, + "channels": { + "message": "Canais" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Area de transferência" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Extender as secções escolhidas" + }, + "collapsed": { + "message": "Extender" + }, + "comments": { + "message": "Comentários" + }, + "confirmationBeforeClosing": { + "message": "Confirmar antes de encerrar" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "CSS personalizadas" + }, + "customJs": { + "message": "JS personalizadas" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Esverdeado" + }, + "dark": { + "message": "Escuro" + }, + "darkTheme": { + "message": "Tema escuro" + }, + "dateAndTime": { + "message": "Data & hora" + }, + "dawn": { + "message": "Escurecer" + }, + "decreasePlaybackSpeed": { + "message": "Diminuir velocidade de leitura" + }, + "decreaseVolume": { + "message": "Diminuir volume" + }, + "deepOrange": { + "message": "Laranja forte" + }, + "deepPurple": { + "message": "Lilás forte" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Aba padrão do canal" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Apagar os cookies do YouTube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Descrição" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Deserto" + }, + "details": { + "message": "Detalhes" + }, + "developerOptions": { + "message": "Opções de programador" + }, + "device": { + "message": "Aparelho" + }, + "dim": { + "message": "Escurecer" + }, + "disabled": { + "message": "Desabilitado" + }, + "dislike": { + "message": "Não gostar" + }, + "doNotChange": { + "message": "Não mudes" + }, + "donate": { + "message": "Doar" + }, + "draggable": { + "message": "Podes arrastar" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Correio electronico" + }, + "empty": { + "message": "Vazio" + }, + "enabled": { + "message": "Ativado" + }, + "enabledForced": { + "message": "Ativado (forçado)" + }, + "expanded": { + "message": "Expandir" + }, + "exportSettings": { + "message": "Exportar definições" + }, + "extension": { + "message": "Extenção" + }, + "file": { + "message": "Ficheiro" + }, + "filters": { + "message": "Filtros" + }, + "fitToWindow": { + "message": "Ajustar á janela" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Tipo de letra" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Cabeçalho" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Forçar velocidade de leitura" + }, + "forcedTheaterMode": { + "message": "Forçar modo de cinema" + }, + "forcedVolume": { + "message": "Volume forçado" + }, + "foundABug": { + "message": "Encontrou um erro?" + }, + "fullWindow": { + "message": "Janela completa" + }, + "general": { + "message": "Geral" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Vai à caixa de pesquisa" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "Miniatura HD" + }, + "header": { + "message": "Cabeçalho" + }, + "hidden": { + "message": "Escondido" + }, + "hiddenOnVideoPage": { + "message": "Escondido na página do video" + }, + "hideAnimatedThumbnails": { + "message": "Esconder miniaturas animadas" + }, + "hideAnnotations": { + "message": "Esconder anotações" + }, + "hideCards": { + "message": "Esconder cartas" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Esconder detalhes" + }, + "hideEndscreen": { + "message": "Esconder ecãn final" + }, + "hideFeaturedContent": { + "message": "Esconder conteúdo" + }, + "hideFooter": { + "message": "Esconder rodapé" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Esconder lista de reprodução" + }, + "hideRightButtons": { + "message": "Esconder botões do lado direito" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Esconder «Rodar para detalhes»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Esconder número de vistos" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "História" + }, + "home": { + "message": "Casa" + }, + "hover": { + "message": "Aponta" + }, + "hoverOnVideoPage": { + "message": "Apontar na página do video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "À quanto tempo o video foi enviado" + }, + "icons": { + "message": "Ícones" + }, + "iconsOnly": { + "message": "Ícones apenas" + }, + "importSettings": { + "message": "Importar definições" + }, + "improveLogo": { + "message": "Melhorar logotipo" + }, + "improvedtubeIconOnYoutube": { + "message": "Ícon do ImprovedTube no YouTube" + }, + "improvedtubeLanguage": { + "message": "Linguagem do ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Versão do ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Aumentar velocidade de leitura" + }, + "increaseVolume": { + "message": "Aumentar o volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Artigos" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Linguagens" + }, + "legacyYoutube": { + "message": "YouTube antigo" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Claro" + }, + "lightBlue": { + "message": "Azul claro" + }, + "lightGreen": { + "message": "Verde claro" + }, + "like": { + "message": "Gostar" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Gostos" + }, + "lime": { + "message": "Limão" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Conversa do vivo" + }, + "liveChatType": { + "message": "Tipo de conversa do vivo" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Normalização do volume" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Marcar os videos como vistos" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mistura" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Minhas cores" + }, + "name": { + "message": "Nome" + }, + "nativeMiniPlayer": { + "message": "Leitor pequeno padrão" + }, + "new": { + "message": "Novo" + }, + "nextVideo": { + "message": "Próximo video" + }, + "night": { + "message": "Noite" + }, + "noActiveFeatures": { + "message": "Sem opções ativas" + }, + "noOpenVideoTabs": { + "message": "Não abrir janelas de video" + }, + "none": { + "message": "Nenhuma" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Velho" + }, + "onAllVideos": { + "message": "Em todos os videos" + }, + "onSubscribedChannels": { + "message": "Nos canais subscritos" + }, + "onlyActiveOnYoutube": { + "message": "Ativo apenas no YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Apenas uma instância do leitor de video" + }, + "orange": { + "message": "Laranja" + }, + "os": { + "message": "SO" + }, + "other": { + "message": "Outro" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Permissões" + }, + "pictureInPicture": { + "message": "Janela em janela" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Simples" + }, + "platform": { + "message": "Plataforma" + }, + "playPause": { + "message": "Reproduzir / Pausar" + }, + "playbackSpeed": { + "message": "Velocidade de leitura" + }, + "player": { + "message": "Leitor" + }, + "playerColor": { + "message": "Côr do leitor" + }, + "playerSize": { + "message": "Tamanho do leitor" + }, + "playlist": { + "message": "Lista de reprodução" + }, + "playlists": { + "message": "Listas de reprodução" + }, + "popupPlayer": { + "message": "Leitor em janela" + }, + "position": { + "message": "Posição" + }, + "pressAnyKeyOrScroll": { + "message": "Carrega em qualquer tecla ou usa a roldana do rato" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Carrega em qualquer tecla ou usa a roldana do rato" + }, + "previousVideo": { + "message": "Video anterior" + }, + "primaryColor": { + "message": "Côr primaria" + }, + "purple": { + "message": "Violeta" + }, + "quality": { + "message": "Qualidade" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "Memoria" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Avalia-nos" + }, + "red": { + "message": "Vermelho" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Videos relacionados" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Remove resultados relacionado com a pesquisa" + }, + "repeat": { + "message": "Repetir" + }, + "reset": { + "message": "Valores de origem" + }, + "resetAllSettings": { + "message": "Valores de origem em todas as definições" + }, + "resetAllShortcuts": { + "message": "Repôr todos os atalhos" + }, + "reverse": { + "message": "Recuar" + }, + "rotate": { + "message": "Rodar" + }, + "save": { + "message": "Gravar" + }, + "saveAs": { + "message": "Gravar como" + }, + "schedule": { + "message": "Agendar" + }, + "screen": { + "message": "Ecrân" + }, + "screenshot": { + "message": "Foto do ecrân" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Pesquisa" + }, + "searchBarOnly": { + "message": "Apenas barra de pesquisa" + }, + "seekBackward10Seconds": { + "message": "Andar para trás 10 segundos" + }, + "seekForward10Seconds": { + "message": "Andar para frente 10 segundos" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Definições" + }, + "settingsSuccessfullyImported": { + "message": "Definições importadas com sucesso" + }, + "shortcuts": { + "message": "Atalhos" + }, + "showCardsOnMouseHover": { + "message": "Mostrar cartas ao passar o rato por cima" + }, + "showChannelVideosCount": { + "message": "Mostrar contagem de videos do canal" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Misturar" + }, + "sidebar": { + "message": "Barra lateral" + }, + "spacebar": { + "message": "Barra de espaços" + }, + "squaredUserImages": { + "message": "Imagens de utilizador enquadradas" + }, + "static": { + "message": "Estática" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Passo" + }, + "stop": { + "message": "Parar" + }, + "style": { + "message": "Estilo" + }, + "styles": { + "message": "Estilos" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Subscrições" + }, + "subtitles": { + "message": "Legendas" + }, + "sunset": { + "message": "Pôr do sol" + }, + "sunsetToSunrise": { + "message": "Pôr do sol até de manhã" + }, + "systemPeferenceDark": { + "message": "Preferências do sistema: Escuro" + }, + "systemPeferenceLight": { + "message": "Preferências do sistema: Claro" + }, + "teal": { + "message": "Azul esverdeado" + }, + "textColor": { + "message": "Côr do texto" + }, + "themes": { + "message": "Temas" + }, + "thisWillRemoveAllCookies": { + "message": "Isto vai remover todos os cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Isto vai remover todos os cookies do YouTube" + }, + "thisWillResetAllSettings": { + "message": "Isto vai reiniciar todas as definições." + }, + "thisWillResetAllShortcuts": { + "message": "Isto vai reiniciar todos os atalhos" + }, + "thumbnails": { + "message": "Miniaturas" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Tempo de" + }, + "timeTo": { + "message": "Tempo para" + }, + "todayAt": { + "message": "Hoje em" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Conversa principal" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Trailer toca automaticamente" + }, + "translations": { + "message": "Traduções" + }, + "transparentBackground": { + "message": "Fundo transparente" + }, + "trending": { + "message": "Tendências" + }, + "tryToReloadThePage": { + "message": "Tenta carregar a pagina de novo" + }, + "type": { + "message": "Escreve" + }, + "upNextAutoplay": { + "message": "Arquivo seguinte a tocar" + }, + "use24HourFormat": { + "message": "Usar formato de 24-horas" + }, + "version": { + "message": "Versão" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "A descrição do video vai ser expandida para ver o nome da categoria" + }, + "videoFormats": { + "message": "Formatos de video" + }, + "videos": { + "message": "Videos" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Vêr mais tarde" + }, + "watchTime": { + "message": "Tempo de visualização" + }, + "whenTabIsChanged": { + "message": "Quando a janela mudar" + }, + "white": { + "message": "Branco" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Amarelo" + }, + "youtubeHeaderLeft": { + "message": "Cabeçalho do YouTube (esquerda)" + }, + "youtubeHeaderRight": { + "message": "Cabeçalho do YouTube (direita)" + }, + "youtubeHomePage": { + "message": "Página principal do YouTube" + }, + "youtubeLanguage": { + "message": "Linguagem do YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "O YouTube limita a qualidade do video em 1080p para o codec h.264" + } } \ No newline at end of file diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 56736d183..3a5c845dd 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -1,977 +1,992 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Despre" - }, - "accept": { - "message": "Acceptă" - }, - "activate": { - "message": "Activează" - }, - "activateCaptions": { - "message": "Activează subtitrările" - }, - "activateFullscreen": { - "message": "Activează ecran complet" - }, - "activated": { - "message": "Activat" - }, - "activatedFeatures": { - "message": "Caracteristici activate" - }, - "activeFeatures": { - "message": "Caracteristici active" - }, - "addScrollToTop": { - "message": "Adaugă «Derulează la început»" - }, - "ads": { - "message": "Reclame" - }, - "all": { - "message": "Tot" - }, - "allow": { - "message": "Permite" - }, - "allow60fps": { - "message": "Permite 60fps" - }, - "alwaysActive": { - "message": "Mereu activ" - }, - "alwaysShowProgressBar": { - "message": "Arată mereu bara de progres" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analizator" - }, - "appearance": { - "message": "Aparențe" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formaturi audio" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-fullscreen" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pauzează automat la schimbarea tab-ului" - }, - "autoplay": { - "message": "Pornește automat" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Salvează & resetează" - }, - "baseOnSystemColorScheme": { - "message": "Bazat pe schema de culori a sistemului" - }, - "belowPlayer": { - "message": "Below player" - }, - "black": { - "message": "Înapoi" - }, - "blacklist": { - "message": "Lista neagră" - }, - "blockAll": { - "message": "Blochează tot" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Albastru" - }, - "blueGray": { - "message": "Gri albastru" - }, - "bluelight": { - "message": "Lumină albastră" - }, - "brown": { - "message": "Maro" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Versiunea browserului" - }, - "bubbles": { - "message": "Bule" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Butoane" - }, - "cancel": { - "message": "Anulează" - }, - "categories": { - "message": "Categorii" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canale" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Închide secțiunea de subscripții" - }, - "collapsed": { - "message": "Închis" - }, - "comments": { - "message": "Comentarii" - }, - "confirmationBeforeClosing": { - "message": "Confirmă înainte să închizi" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Nuclee" - }, - "cropChapterTitles": { - "message": "Taie titlurile capitolelor" - }, - "customCss": { - "message": "CSS Personalizat" - }, - "customJs": { - "message": "JS Personalizat" - }, - "customMiniPlayer": { - "message": "Mini-Player Personalizat" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Închis" - }, - "darkTheme": { - "message": "Temă închisă" - }, - "dateAndTime": { - "message": "Data & timpul" - }, - "dawn": { - "message": "Răsărit" - }, - "decreasePlaybackSpeed": { - "message": "Scade viteza playback-ului" - }, - "decreaseVolume": { - "message": "Scade volumul" - }, - "deepOrange": { - "message": "Portocaliu închis" - }, - "deepPurple": { - "message": "Mov închis" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Tab-ul implicit al canalului" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Șterge cookie-urile YouTube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Descriere" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Deșert" - }, - "details": { - "message": "Detalii" - }, - "developerOptions": { - "message": "Opțiunile dezvoltatorului" - }, - "device": { - "message": "Dispozitiv" - }, - "dim": { - "message": "Întunecă" - }, - "disabled": { - "message": "Dezactivat" - }, - "dislike": { - "message": "Nu îmi place" - }, - "doNotChange": { - "message": "Nu schimba" - }, - "donate": { - "message": "Donează" - }, - "draggable": { - "message": "Poate fi tras" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Gol" - }, - "enabled": { - "message": "Activat" - }, - "enabledForced": { - "message": "Activat (forțat)" - }, - "expanded": { - "message": "Deschis" - }, - "exportSettings": { - "message": "Exportă setările" - }, - "extension": { - "message": "Extensie" - }, - "file": { - "message": "Fișier" - }, - "filters": { - "message": "Filtre" - }, - "fitToWindow": { - "message": "Potrivește în fereastră" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Subsol" - }, - "forceSDR": { - "message": "Forțează SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Viteză de playback forțată" - }, - "forcedTheaterMode": { - "message": "Modul teatru forțat" - }, - "forcedVolume": { - "message": "Volum forțat" - }, - "foundABug": { - "message": "Ai găsit un bug?" - }, - "fullWindow": { - "message": "Ecran complet" - }, - "general": { - "message": "General" - }, - "geoPreference": { - "message": "Preferințe Geo" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Du-te la casuța de căutare" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hdThumbnail": { - "message": "Miniatură HD" - }, - "hdThumbnails": { - "message": "Miniaturi HD" - }, - "header": { - "message": "Antet" - }, - "hidden": { - "message": "Ascuns" - }, - "hiddenOnVideoPage": { - "message": "Ascuns pe pagina video" - }, - "hideAnimatedThumbnails": { - "message": "Ascunde miniaturile animate" - }, - "hideAnnotations": { - "message": "Ascunde adnotările" - }, - "hideCards": { - "message": "Ascunde cardurile" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Ascunde detaliile" - }, - "hideEndscreen": { - "message": "Ascunde ecranul de final" - }, - "hideFeaturedContent": { - "message": "Ascunde conținutul prezentat" - }, - "hideFooter": { - "message": "Ascunde subsolul" - }, - "hideGradientBottom": { - "message": "Ascunde Gradient Bottom" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Ascunde playlistul" - }, - "hideRightButtons": { - "message": "Ascunde butoanele din dreapta" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Ascunde «Derulează pentru detalii»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Ascunde numărul vizualizărilor" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "Istoric" - }, - "home": { - "message": "Acasă" - }, - "hover": { - "message": "Hover" - }, - "hoverOnVideoPage": { - "message": "Hover pe pagina video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Acum cât timp a fost încărcat videoclipul" - }, - "icons": { - "message": "Iconițe" - }, - "iconsOnly": { - "message": "Doar iconițe" - }, - "importSettings": { - "message": "Importă setările" - }, - "improveLogo": { - "message": "Îmbunătățește sigla" - }, - "improvedtubeIconOnYoutube": { - "message": "Iconița ImprovedTube pe YouTube" - }, - "improvedtubeLanguage": { - "message": "Limba ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versiunea ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Crește viteza de playback" - }, - "increaseVolume": { - "message": "Crește volumul" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Obiecte" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Limbi" - }, - "legacyYoutube": { - "message": "YouTube vechi" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Deschis" - }, - "lightBlue": { - "message": "Albastru deschis" - }, - "lightGreen": { - "message": "Verde deschis" - }, - "like": { - "message": "Îmi place" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Like-uri" - }, - "lime": { - "message": "Lime" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Listă" - }, - "liveChat": { - "message": "Chat live" - }, - "liveChatType": { - "message": "Chat live scrie" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Normalizează zgomotul" - }, - "markWatchedVideos": { - "message": "Marchează videoclipurile văzute" - }, - "mixer": { - "message": "Mixer" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Culorile mele" - }, - "name": { - "message": "Nume" - }, - "nativeMiniPlayer": { - "message": "Mini-Player nativ" - }, - "new": { - "message": "Nou" - }, - "nextVideo": { - "message": "Următorul video" - }, - "night": { - "message": "Noapte" - }, - "noActiveFeatures": { - "message": "Nici o caracteristică activată" - }, - "noOpenVideoTabs": { - "message": "Niciun tab video deschis" - }, - "none": { - "message": "Nimic" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Vechi" - }, - "onAllVideos": { - "message": "Pe toate videoclipurile" - }, - "onSubscribedChannels": { - "message": "Pe canalele abonate" - }, - "onlyActiveOnYoutube": { - "message": "Activ doar pe YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Doar o instanță de player care merge" - }, - "openPopupPlayer": { - "message": "Deschide videoclipul/playlistul într-o fereastră nouă" - }, - "orange": { - "message": "Portocaliu" - }, - "os": { - "message": "SO" - }, - "other": { - "message": "Altele" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Permisiuni" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Roz" - }, - "plain": { - "message": "Simplu" - }, - "platform": { - "message": "Platformă" - }, - "playPause": { - "message": "Redă / Pauză" - }, - "playbackSpeed": { - "message": "Viteza playbackului" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Culoare player" - }, - "playerSize": { - "message": "Mărime player" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlisturi" - }, - "popupPlayer": { - "message": "Player popup" - }, - "position": { - "message": "Poziție" - }, - "pressAnyKeyOrScroll": { - "message": "Apasă orice buton sau folosește rotița mouseului." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Apasă orice buton sau folosește rotița mouseului" - }, - "previousVideo": { - "message": "Videoclipul anterior" - }, - "primaryColor": { - "message": "Culoarea primară" - }, - "purple": { - "message": "Mov" - }, - "quality": { - "message": "Calitate" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Dă-ne o notă" - }, - "red": { - "message": "Roșu" - }, - "redDislikeButton": { - "message": "Arată butonul nu îmi place cu culoare roșie" - }, - "relatedVideos": { - "message": "Videoclipuri asemănătoare" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Elimină rezultatele asemănătoare a căutării" - }, - "repeat": { - "message": "Repetă" - }, - "reset": { - "message": "Resetează" - }, - "resetAllSettings": { - "message": "Resetează toate setările" - }, - "resetAllShortcuts": { - "message": "Resetează toate scurtăturile" - }, - "reverse": { - "message": "Invers" - }, - "rotate": { - "message": "Rotește" - }, - "save": { - "message": "Salvează" - }, - "saveAs": { - "message": "Salvează ca" - }, - "schedule": { - "message": "Program" - }, - "screen": { - "message": "Ecran" - }, - "screenshot": { - "message": "Captură de ecran" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "Caută" - }, - "searchBarOnly": { - "message": "Doar bara de căutare" - }, - "seekBackward10Seconds": { - "message": "Sari înapoi 10 secunde" - }, - "seekForward10Seconds": { - "message": "Sari înainte 10 secunde" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Setări" - }, - "settingsSuccessfullyImported": { - "message": "Setările au fost importate cu succes" - }, - "shortcuts": { - "message": "Scurtături" - }, - "showCardsOnMouseHover": { - "message": "Arată cardurile la hover-ul cu mouseul" - }, - "showChannelVideosCount": { - "message": "Arată numărul de videoclipuri al canalului" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Amestecă" - }, - "sidebar": { - "message": "Bara laterală" - }, - "spacebar": { - "message": "Bara de spațiu" - }, - "squaredUserImages": { - "message": "Avatarele utilizatorului pătrat" - }, - "static": { - "message": "Static" - }, - "statsForNerds": { - "message": "Arată Statisticile pentru Tocilari" - }, - "step": { - "message": "Pas" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stiluri" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Abonamente" - }, - "subtitles": { - "message": "Subtitrări" - }, - "sunset": { - "message": "Apus" - }, - "sunsetToSunrise": { - "message": "De la apus la răsărit" - }, - "systemPeferenceDark": { - "message": "Preferința sitemului: închis" - }, - "systemPeferenceLight": { - "message": "Preferința sitemului: deschis" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Culoarea textului" - }, - "themes": { - "message": "Teme" - }, - "thisWillRemoveAllCookies": { - "message": "Asta va șterge toate cookie-urile." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Asta va șterge toate cooki-urile YouTube." - }, - "thisWillResetAllSettings": { - "message": "Asta va reseta toate setările." - }, - "thisWillResetAllShortcuts": { - "message": "Asta va șterge toate scurtăturile" - }, - "thumbnails": { - "message": "Miniaturi" - }, - "timeFrom": { - "message": "Timp de la" - }, - "timeTo": { - "message": "Timp până la" - }, - "todayAt": { - "message": "Azi la" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Comută cardurile" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Auto-redă trailerul" - }, - "translations": { - "message": "Traduceri" - }, - "transparentBackground": { - "message": "Fundal Transparent" - }, - "trending": { - "message": "Tendințe" - }, - "tryToReloadThePage": { - "message": "Încearcă să reîmprospătezi pagina" - }, - "type": { - "message": "Scrie" - }, - "upNextAutoplay": { - "message": "Urmează" - }, - "use24HourFormat": { - "message": "Folosește formatul de 24 de ore" - }, - "version": { - "message": "Versiune" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Descripția videoclipului va fi extinsă pentru a afla numele categoriei" - }, - "videoFormats": { - "message": "Formatul videoclipului" - }, - "videos": { - "message": "Videoclipuri" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volum" - }, - "watchLater": { - "message": "Vezi mai târziu" - }, - "watchTime": { - "message": "Timp de vizionare" - }, - "whenTabIsChanged": { - "message": "Când tabul este schimbat" - }, - "white": { - "message": "Alb" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Galben" - }, - "youtubeHeaderLeft": { - "message": "Antetul YouTube (stânga)" - }, - "youtubeHeaderRight": { - "message": "Antetul YouTube (dreapta)" - }, - "youtubeHomePage": { - "message": "Pagina de pornire YouTube" - }, - "youtubeLanguage": { - "message": "Limba de afișare YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limitează calitatea videoclipului la 1080p pentru codecul h.264" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Despre" + }, + "accept": { + "message": "Acceptă" + }, + "activate": { + "message": "Activează" + }, + "activateCaptions": { + "message": "Activează subtitrările" + }, + "activateFullscreen": { + "message": "Activează ecran complet" + }, + "activated": { + "message": "Activat" + }, + "activatedFeatures": { + "message": "Caracteristici activate" + }, + "activeFeatures": { + "message": "Caracteristici active" + }, + "addScrollToTop": { + "message": "Adaugă «Derulează la început»" + }, + "ads": { + "message": "Reclame" + }, + "all": { + "message": "Tot" + }, + "allow": { + "message": "Permite" + }, + "allow60fps": { + "message": "Permite 60fps" + }, + "alwaysActive": { + "message": "Mereu activ" + }, + "alwaysShowProgressBar": { + "message": "Arată mereu bara de progres" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analizator" + }, + "appearance": { + "message": "Aparențe" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formaturi audio" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullscreen" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pauzează automat la schimbarea tab-ului" + }, + "autoplay": { + "message": "Pornește automat" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Salvează & resetează" + }, + "baseOnSystemColorScheme": { + "message": "Bazat pe schema de culori a sistemului" + }, + "belowPlayer": { + "message": "Below player" + }, + "black": { + "message": "Înapoi" + }, + "blacklist": { + "message": "Lista neagră" + }, + "blockAll": { + "message": "Blochează tot" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Albastru" + }, + "blueGray": { + "message": "Gri albastru" + }, + "bluelight": { + "message": "Lumină albastră" + }, + "brown": { + "message": "Maro" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Versiunea browserului" + }, + "bubbles": { + "message": "Bule" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Butoane" + }, + "cancel": { + "message": "Anulează" + }, + "categories": { + "message": "Categorii" + }, + "channel": { + "message": "Canal" + }, + "channels": { + "message": "Canale" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Închide secțiunea de subscripții" + }, + "collapsed": { + "message": "Închis" + }, + "comments": { + "message": "Comentarii" + }, + "confirmationBeforeClosing": { + "message": "Confirmă înainte să închizi" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Nuclee" + }, + "cropChapterTitles": { + "message": "Taie titlurile capitolelor" + }, + "customCss": { + "message": "CSS Personalizat" + }, + "customJs": { + "message": "JS Personalizat" + }, + "customMiniPlayer": { + "message": "Mini-Player Personalizat" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Închis" + }, + "darkTheme": { + "message": "Temă închisă" + }, + "dateAndTime": { + "message": "Data & timpul" + }, + "dawn": { + "message": "Răsărit" + }, + "decreasePlaybackSpeed": { + "message": "Scade viteza playback-ului" + }, + "decreaseVolume": { + "message": "Scade volumul" + }, + "deepOrange": { + "message": "Portocaliu închis" + }, + "deepPurple": { + "message": "Mov închis" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Tab-ul implicit al canalului" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Șterge cookie-urile YouTube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Descriere" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Deșert" + }, + "details": { + "message": "Detalii" + }, + "developerOptions": { + "message": "Opțiunile dezvoltatorului" + }, + "device": { + "message": "Dispozitiv" + }, + "dim": { + "message": "Întunecă" + }, + "disabled": { + "message": "Dezactivat" + }, + "dislike": { + "message": "Nu îmi place" + }, + "doNotChange": { + "message": "Nu schimba" + }, + "donate": { + "message": "Donează" + }, + "draggable": { + "message": "Poate fi tras" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Gol" + }, + "enabled": { + "message": "Activat" + }, + "enabledForced": { + "message": "Activat (forțat)" + }, + "expanded": { + "message": "Deschis" + }, + "exportSettings": { + "message": "Exportă setările" + }, + "extension": { + "message": "Extensie" + }, + "file": { + "message": "Fișier" + }, + "filters": { + "message": "Filtre" + }, + "fitToWindow": { + "message": "Potrivește în fereastră" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Subsol" + }, + "forceSDR": { + "message": "Forțează SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Viteză de playback forțată" + }, + "forcedTheaterMode": { + "message": "Modul teatru forțat" + }, + "forcedVolume": { + "message": "Volum forțat" + }, + "foundABug": { + "message": "Ai găsit un bug?" + }, + "fullWindow": { + "message": "Ecran complet" + }, + "general": { + "message": "General" + }, + "geoPreference": { + "message": "Preferințe Geo" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Du-te la casuța de căutare" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "Miniatură HD" + }, + "header": { + "message": "Antet" + }, + "hidden": { + "message": "Ascuns" + }, + "hiddenOnVideoPage": { + "message": "Ascuns pe pagina video" + }, + "hideAnimatedThumbnails": { + "message": "Ascunde miniaturile animate" + }, + "hideAnnotations": { + "message": "Ascunde adnotările" + }, + "hideCards": { + "message": "Ascunde cardurile" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Ascunde detaliile" + }, + "hideEndscreen": { + "message": "Ascunde ecranul de final" + }, + "hideFeaturedContent": { + "message": "Ascunde conținutul prezentat" + }, + "hideFooter": { + "message": "Ascunde subsolul" + }, + "hideGradientBottom": { + "message": "Ascunde Gradient Bottom" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Ascunde playlistul" + }, + "hideRightButtons": { + "message": "Ascunde butoanele din dreapta" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Ascunde «Derulează pentru detalii»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Ascunde numărul vizualizărilor" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Istoric" + }, + "home": { + "message": "Acasă" + }, + "hover": { + "message": "Hover" + }, + "hoverOnVideoPage": { + "message": "Hover pe pagina video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Acum cât timp a fost încărcat videoclipul" + }, + "icons": { + "message": "Iconițe" + }, + "iconsOnly": { + "message": "Doar iconițe" + }, + "importSettings": { + "message": "Importă setările" + }, + "improveLogo": { + "message": "Îmbunătățește sigla" + }, + "improvedtubeIconOnYoutube": { + "message": "Iconița ImprovedTube pe YouTube" + }, + "improvedtubeLanguage": { + "message": "Limba ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Versiunea ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Crește viteza de playback" + }, + "increaseVolume": { + "message": "Crește volumul" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Obiecte" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Limbi" + }, + "legacyYoutube": { + "message": "YouTube vechi" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Deschis" + }, + "lightBlue": { + "message": "Albastru deschis" + }, + "lightGreen": { + "message": "Verde deschis" + }, + "like": { + "message": "Îmi place" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Like-uri" + }, + "lime": { + "message": "Lime" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Listă" + }, + "liveChat": { + "message": "Chat live" + }, + "liveChatType": { + "message": "Chat live scrie" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Normalizează zgomotul" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Marchează videoclipurile văzute" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Culorile mele" + }, + "name": { + "message": "Nume" + }, + "nativeMiniPlayer": { + "message": "Mini-Player nativ" + }, + "new": { + "message": "Nou" + }, + "nextVideo": { + "message": "Următorul video" + }, + "night": { + "message": "Noapte" + }, + "noActiveFeatures": { + "message": "Nici o caracteristică activată" + }, + "noOpenVideoTabs": { + "message": "Niciun tab video deschis" + }, + "none": { + "message": "Nimic" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Vechi" + }, + "onAllVideos": { + "message": "Pe toate videoclipurile" + }, + "onSubscribedChannels": { + "message": "Pe canalele abonate" + }, + "onlyActiveOnYoutube": { + "message": "Activ doar pe YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Doar o instanță de player care merge" + }, + "openPopupPlayer": { + "message": "Deschide videoclipul/playlistul într-o fereastră nouă" + }, + "orange": { + "message": "Portocaliu" + }, + "os": { + "message": "SO" + }, + "other": { + "message": "Altele" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Permisiuni" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Roz" + }, + "plain": { + "message": "Simplu" + }, + "platform": { + "message": "Platformă" + }, + "playPause": { + "message": "Redă / Pauză" + }, + "playbackSpeed": { + "message": "Viteza playbackului" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Culoare player" + }, + "playerSize": { + "message": "Mărime player" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlisturi" + }, + "popupPlayer": { + "message": "Player popup" + }, + "position": { + "message": "Poziție" + }, + "pressAnyKeyOrScroll": { + "message": "Apasă orice buton sau folosește rotița mouseului." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Apasă orice buton sau folosește rotița mouseului" + }, + "previousVideo": { + "message": "Videoclipul anterior" + }, + "primaryColor": { + "message": "Culoarea primară" + }, + "purple": { + "message": "Mov" + }, + "quality": { + "message": "Calitate" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Dă-ne o notă" + }, + "red": { + "message": "Roșu" + }, + "redDislikeButton": { + "message": "Arată butonul nu îmi place cu culoare roșie" + }, + "relatedVideos": { + "message": "Videoclipuri asemănătoare" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Elimină rezultatele asemănătoare a căutării" + }, + "repeat": { + "message": "Repetă" + }, + "reset": { + "message": "Resetează" + }, + "resetAllSettings": { + "message": "Resetează toate setările" + }, + "resetAllShortcuts": { + "message": "Resetează toate scurtăturile" + }, + "reverse": { + "message": "Invers" + }, + "rotate": { + "message": "Rotește" + }, + "save": { + "message": "Salvează" + }, + "saveAs": { + "message": "Salvează ca" + }, + "schedule": { + "message": "Program" + }, + "screen": { + "message": "Ecran" + }, + "screenshot": { + "message": "Captură de ecran" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Caută" + }, + "searchBarOnly": { + "message": "Doar bara de căutare" + }, + "seekBackward10Seconds": { + "message": "Sari înapoi 10 secunde" + }, + "seekForward10Seconds": { + "message": "Sari înainte 10 secunde" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Setări" + }, + "settingsSuccessfullyImported": { + "message": "Setările au fost importate cu succes" + }, + "shortcuts": { + "message": "Scurtături" + }, + "showCardsOnMouseHover": { + "message": "Arată cardurile la hover-ul cu mouseul" + }, + "showChannelVideosCount": { + "message": "Arată numărul de videoclipuri al canalului" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Amestecă" + }, + "sidebar": { + "message": "Bara laterală" + }, + "spacebar": { + "message": "Bara de spațiu" + }, + "squaredUserImages": { + "message": "Avatarele utilizatorului pătrat" + }, + "static": { + "message": "Static" + }, + "statsForNerds": { + "message": "Arată Statisticile pentru Tocilari" + }, + "step": { + "message": "Pas" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stiluri" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Abonamente" + }, + "subtitles": { + "message": "Subtitrări" + }, + "sunset": { + "message": "Apus" + }, + "sunsetToSunrise": { + "message": "De la apus la răsărit" + }, + "systemPeferenceDark": { + "message": "Preferința sitemului: închis" + }, + "systemPeferenceLight": { + "message": "Preferința sitemului: deschis" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Culoarea textului" + }, + "themes": { + "message": "Teme" + }, + "thisWillRemoveAllCookies": { + "message": "Asta va șterge toate cookie-urile." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Asta va șterge toate cooki-urile YouTube." + }, + "thisWillResetAllSettings": { + "message": "Asta va reseta toate setările." + }, + "thisWillResetAllShortcuts": { + "message": "Asta va șterge toate scurtăturile" + }, + "thumbnails": { + "message": "Miniaturi" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Timp de la" + }, + "timeTo": { + "message": "Timp până la" + }, + "todayAt": { + "message": "Azi la" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Comută cardurile" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Auto-redă trailerul" + }, + "translations": { + "message": "Traduceri" + }, + "transparentBackground": { + "message": "Fundal Transparent" + }, + "trending": { + "message": "Tendințe" + }, + "tryToReloadThePage": { + "message": "Încearcă să reîmprospătezi pagina" + }, + "type": { + "message": "Scrie" + }, + "upNextAutoplay": { + "message": "Urmează" + }, + "use24HourFormat": { + "message": "Folosește formatul de 24 de ore" + }, + "version": { + "message": "Versiune" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Descripția videoclipului va fi extinsă pentru a afla numele categoriei" + }, + "videoFormats": { + "message": "Formatul videoclipului" + }, + "videos": { + "message": "Videoclipuri" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volum" + }, + "watchLater": { + "message": "Vezi mai târziu" + }, + "watchTime": { + "message": "Timp de vizionare" + }, + "whenTabIsChanged": { + "message": "Când tabul este schimbat" + }, + "white": { + "message": "Alb" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Galben" + }, + "youtubeHeaderLeft": { + "message": "Antetul YouTube (stânga)" + }, + "youtubeHeaderRight": { + "message": "Antetul YouTube (dreapta)" + }, + "youtubeHomePage": { + "message": "Pagina de pornire YouTube" + }, + "youtubeLanguage": { + "message": "Limba de afișare YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limitează calitatea videoclipului la 1080p pentru codecul h.264" + } } \ No newline at end of file diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 293d3bf76..e72b8688e 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -1,977 +1,992 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Об ImprovedTube" - }, - "accept": { - "message": "Принять" - }, - "activate": { - "message": "Активировать" - }, - "activateCaptions": { - "message": "Активировать субтитры" - }, - "activateFullscreen": { - "message": "Перейти в полноэкранный режим" - }, - "activated": { - "message": "Активировано" - }, - "activatedFeatures": { - "message": "Активированные функции" - }, - "activeFeatures": { - "message": "Активные функции" - }, - "addScrollToTop": { - "message": "Добавить кнопку «наверх»" - }, - "ads": { - "message": "Реклама" - }, - "all": { - "message": "Все" - }, - "allow": { - "message": "Разрешить" - }, - "allow60fps": { - "message": "Разрешить 60fps" - }, - "alwaysActive": { - "message": "Всегда активный" - }, - "alwaysShowProgressBar": { - "message": "Всегда показывать прогресс-бар" - }, - "amber": { - "message": "Янтарный" - }, - "analyzer": { - "message": "Анализатор" - }, - "appearance": { - "message": "Внешний вид" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Аудио" - }, - "audioFormats": { - "message": "Аудио форматы" - }, - "auto": { - "message": "Авто" - }, - "autoFullscreen": { - "message": "Автоматический переход в полноэкранный режим" - }, - "autopauseWhenSwitchingTabs": { - "message": "Автопауза при переходе между вкладками" - }, - "autoplay": { - "message": "Автовоспроизведение" - }, - "backgroundColor": { - "message": "Цвет фона" - }, - "backgroundOpacity": { - "message": "Прозрачность фона" - }, - "backupAndReset": { - "message": "Резервное копирование и сброс" - }, - "baseOnSystemColorScheme": { - "message": "Зависит от системной цветовой схемы" - }, - "belowPlayer": { - "message": "Ниже плеера" - }, - "black": { - "message": "Черный" - }, - "blacklist": { - "message": "Черный список" - }, - "blockAll": { - "message": "Заблокировать всё" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Синий" - }, - "blueGray": { - "message": "Серо-голубой" - }, - "bluelight": { - "message": "Синий свет" - }, - "brown": { - "message": "Коричневый" - }, - "browser": { - "message": "Браузер" - }, - "browserVersion": { - "message": "Версия браузера" - }, - "bubbles": { - "message": "Пузыри" - }, - "bug": { - "message": "Ошибка" - }, - "buttons": { - "message": "Кнопки" - }, - "cancel": { - "message": "Отмена" - }, - "categories": { - "message": "Категории" - }, - "channel": { - "message": "Канал" - }, - "channels": { - "message": "Каналы" - }, - "characterEdgeStyle": { - "message": "Стиль контура символов" - }, - "clipboard": { - "message": "Буфер обмена" - }, - "codecH264": { - "message": "Кодек h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Свернуть раздел подписок" - }, - "collapsed": { - "message": "Свернуть" - }, - "comments": { - "message": "Комментарии" - }, - "confirmationBeforeClosing": { - "message": "Подтверждение закрытия" - }, - "cookies": { - "message": "Куки" - }, - "cores": { - "message": "Ядра" - }, - "cropChapterTitles": { - "message": "Обрезать заголовки глав" - }, - "customCss": { - "message": "Пользовательский CSS" - }, - "customJs": { - "message": "Пользовательский JS" - }, - "customMiniPlayer": { - "message": "Новый мини-плеер" - }, - "cyan": { - "message": "Сине-зелёный" - }, - "dark": { - "message": "Темная" - }, - "darkTheme": { - "message": "Ночная тема" - }, - "dateAndTime": { - "message": "Дата и время" - }, - "dawn": { - "message": "Рассвет" - }, - "decreasePlaybackSpeed": { - "message": "Уменьшить скорость видео" - }, - "decreaseVolume": { - "message": "Уменьшить громкость" - }, - "decreaseVolume5": { - "message": "Уменьшить громкость на 5%" - }, - "deepOrange": { - "message": "Темно-оранжевый" - }, - "deepPurple": { - "message": "Темно-фиолетовый" - }, - "default": { - "message": "По умолчанию" - }, - "defaultChannelTab": { - "message": "Вкладка канала по умолчанию" - }, - "defaultContentCountry": { - "message": "Контент страны по умолчанию" - }, - "deleteWatchedVideos": { - "message": "Удалить просмотренные видео" - }, - "deleteYoutubeCookies": { - "message": "Удалить куки YouTube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Описание" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Пустыня" - }, - "details": { - "message": "Подробная информация" - }, - "developerOptions": { - "message": "Настройки разработчика" - }, - "device": { - "message": "Устройство" - }, - "dim": { - "message": "Тусклость" - }, - "disabled": { - "message": "Выключено" - }, - "dislike": { - "message": "Дизлайк" - }, - "doNotChange": { - "message": "Не менять" - }, - "donate": { - "message": "Пожертвовать" - }, - "draggable": { - "message": "Перетаскиваемый" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Пусто" - }, - "enabled": { - "message": "Включено" - }, - "enabledForced": { - "message": "Включено (принудительно)" - }, - "expanded": { - "message": "Развернуть" - }, - "exportSettings": { - "message": "Экспорт настроек" - }, - "extension": { - "message": "Расширение" - }, - "file": { - "message": "Файл" - }, - "filters": { - "message": "Фильтры" - }, - "fitToWindow": { - "message": "Подогнать под окно" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Шрифт" - }, - "fontColor": { - "message": "Цвет шрифта" - }, - "fontFamily": { - "message": "Семейство шрифтов" - }, - "fontOpacity": { - "message": "Прозрачность шрифта" - }, - "fontSize": { - "message": "Размер шрифта" - }, - "footer": { - "message": "Нижний колонтитул" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Всегда проигрывать видео с начала" - }, - "forcedPlaybackSpeed": { - "message": "Форсировать скорость воспроизведения" - }, - "forcedTheaterMode": { - "message": "Принудительно переходить в режим кино" - }, - "forcedVolume": { - "message": "Принудительная громкость" - }, - "foundABug": { - "message": "Нашли ошибку?" - }, - "fullWindow": { - "message": "Растянуть на все окно" - }, - "general": { - "message": "Общее" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Перейти в окно поиска" - }, - "googleApiKey": { - "message": "Ключ Google API" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Зеленый" - }, - "hdThumbnail": { - "message": "Превью высокого качества" - }, - "hdThumbnails": { - "message": "Превью высокого качества" - }, - "header": { - "message": "Верхняя панель" - }, - "hidden": { - "message": "Скрыть" - }, - "hiddenOnVideoPage": { - "message": "Скрыть (только на странице с видео)" - }, - "hideAnimatedThumbnails": { - "message": "Скрыть анимированные превью" - }, - "hideAnnotations": { - "message": "Скрыть аннотации" - }, - "hideCards": { - "message": "Скрыть карточки" - }, - "hideCountryCode": { - "message": "Скрыть код страны" - }, - "hideDate": { - "message": "Скрыть дату" - }, - "hideDetails": { - "message": "Скрыть подробную информацию" - }, - "hideEndscreen": { - "message": "Скрыть экран после видео" - }, - "hideFeaturedContent": { - "message": "Скрыть рекомендации" - }, - "hideFooter": { - "message": "Скрыть нижний колонтитул" - }, - "hideGradientBottom": { - "message": "Скрыть нижний градиент" - }, - "hideMoreButton": { - "message": "Скрыть кнопку \"...\"" - }, - "hidePlayerControlsBar": { - "message": "Скрыть панель управления плеером" - }, - "hidePlayerControlsBarButtons": { - "message": "Скрыть кнопки панели управления плеером" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Скрыть плейлист" - }, - "hideRightButtons": { - "message": "Скрыть кнопки (справа)" - }, - "hideSaveButton": { - "message": "Скрыть кнопку \"Сохранить\"" - }, - "hideScrollForDetails": { - "message": "Скрыть «Прокрутите для подробной информации»" - }, - "hideShareButton": { - "message": "Скрыть кнопку \"Поделиться\"" - }, - "hideSkipOverlay": { - "message": "Скрыть наложение \"5 секунд\"" - }, - "hideThumbnailOverlay": { - "message": "Скрыть наложение на превью" - }, - "hideThumbnails": { - "message": "Скрыть превью" - }, - "hideViewsCount": { - "message": "Скрыть количество просмотров" - }, - "hideVoiceSearchButton": { - "message": "Скрыть кнопку голосового поиска" - }, - "history": { - "message": "История" - }, - "home": { - "message": "Домашняя страница" - }, - "hover": { - "message": "Показывать при наведении" - }, - "hoverOnVideoPage": { - "message": "Показывать при наведении (только на странице с видео)" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Показывать как давно было загружено видео" - }, - "icons": { - "message": "Иконки" - }, - "iconsOnly": { - "message": "Только иконки" - }, - "importSettings": { - "message": "Импорт настроек" - }, - "improveLogo": { - "message": "Улучшить логотип YouTube" - }, - "improvedtubeIconOnYoutube": { - "message": "Значок ImprovedTube в YouTube" - }, - "improvedtubeLanguage": { - "message": "Язык ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Версия ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Увеличить скорость видео" - }, - "increaseVolume": { - "message": "Увеличить громкость" - }, - "increaseVolume5": { - "message": "Увеличить громкости на 5%" - }, - "indigo": { - "message": "Индиго" - }, - "items": { - "message": "Items" - }, - "language": { - "message": "Язык" - }, - "languages": { - "message": "Языки" - }, - "legacyYoutube": { - "message": "Старая версия YouTube" - }, - "library": { - "message": "Библиотека" - }, - "light": { - "message": "Светлая" - }, - "lightBlue": { - "message": "Светло-синий" - }, - "lightGreen": { - "message": "Светло-зеленый" - }, - "like": { - "message": "Лайк" - }, - "liked": { - "message": "Понравившиеся" - }, - "likes": { - "message": "Лайки" - }, - "lime": { - "message": "Лайм" - }, - "limitPageWidth": { - "message": "Ограничить ширину страницы" - }, - "list": { - "message": "Список" - }, - "liveChat": { - "message": "Live-чат" - }, - "liveChatType": { - "message": "Тип live-чата" - }, - "location": { - "message": "Место нахождения" - }, - "loudnessNormalization": { - "message": "Нормализировать громкость" - }, - "markWatchedVideos": { - "message": "Отмечать просмотренные видео" - }, - "mixer": { - "message": "Миксер" - }, - "moveSidebarLeft": { - "message": "Сместить боковую панель влево" - }, - "moveThumbnailsRight": { - "message": "Сместить превью вправо" - }, - "myColors": { - "message": "Мои цвета" - }, - "name": { - "message": "Имя" - }, - "nativeMiniPlayer": { - "message": "Мини-плеер от YouTube" - }, - "new": { - "message": "Новый" - }, - "nextVideo": { - "message": "Следующее видео" - }, - "night": { - "message": "Ночь" - }, - "noActiveFeatures": { - "message": "Нет активных функций" - }, - "noOpenVideoTabs": { - "message": "Нет открытых вкладок с видео" - }, - "none": { - "message": "Пусто" - }, - "normal": { - "message": "Обычный" - }, - "old": { - "message": "Старый" - }, - "onAllVideos": { - "message": "Во всех видео" - }, - "onSubscribedChannels": { - "message": "Только на каналах в подписках" - }, - "onlyActiveOnYoutube": { - "message": "Активен только в YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Только один экземпляр плеера играет" - }, - "orange": { - "message": "Оранжевый" - }, - "os": { - "message": "ОС" - }, - "other": { - "message": "Другое" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Разрешения" - }, - "pictureInPicture": { - "message": "Картинка в картинке" - }, - "pink": { - "message": "Розовый" - }, - "plain": { - "message": "Равнина" - }, - "platform": { - "message": "Платформа" - }, - "playPause": { - "message": "Воспроизведение / Пауза" - }, - "playbackSpeed": { - "message": "Скорость воспроизведения" - }, - "player": { - "message": "Плеер" - }, - "playerColor": { - "message": "Цвет плеера" - }, - "playerSize": { - "message": "Размер плеера" - }, - "playlist": { - "message": "Плейлист" - }, - "playlists": { - "message": "Плейлисты" - }, - "popupPlayer": { - "message": "Плеер во всплывающем окне" - }, - "position": { - "message": "Позиция" - }, - "pressAnyKeyOrScroll": { - "message": "Нажмите любую клавишу или воспользуйтесь колесом мыши" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Нажмите любую клавишу или используйте колесо мыши" - }, - "previousVideo": { - "message": "Предыдущее видео" - }, - "primaryColor": { - "message": "Основной цвет" - }, - "purple": { - "message": "Фиолетовый" - }, - "quality": { - "message": "Качество" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Оставить отзыв" - }, - "rateUs": { - "message": "Оцените нас" - }, - "red": { - "message": "Красный" - }, - "redDislikeButton": { - "message": "Сделать дизлайк красным" - }, - "relatedVideos": { - "message": "Похожие видео" - }, - "remote": { - "message": "Продолжить просмотр на ТВ" - }, - "removeRelatedSearchResults": { - "message": "Удалить похожие результаты поиска" - }, - "repeat": { - "message": "Повтор" - }, - "reset": { - "message": "Сбросить" - }, - "resetAllSettings": { - "message": "Сбросить все настройки" - }, - "resetAllShortcuts": { - "message": "Сбросить все горячие клавиши" - }, - "reverse": { - "message": "Обратный порядок" - }, - "rotate": { - "message": "Повернуть" - }, - "save": { - "message": "Сохранить" - }, - "saveAs": { - "message": "Сохранить как" - }, - "schedule": { - "message": "Расписание" - }, - "screen": { - "message": "Экран" - }, - "screenshot": { - "message": "Скриншот" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "Поиск" - }, - "searchBarOnly": { - "message": "Только поле поиска" - }, - "seekBackward10Seconds": { - "message": "Перемотать на 10 секунд назад" - }, - "seekForward10Seconds": { - "message": "Перемотать на 10 секунд вперед" - }, - "seekNextChapter": { - "message": "Следующая глава" - }, - "seekPreviousChapter": { - "message": "Предыдущая глава" - }, - "settings": { - "message": "Настройки" - }, - "settingsSuccessfullyImported": { - "message": "Настройки успешно импортированы" - }, - "shortcuts": { - "message": "Горячие клавиши" - }, - "showCardsOnMouseHover": { - "message": "Показывать карточки при наведении мыши" - }, - "showChannelVideosCount": { - "message": "Показывать количество видео на канале" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Показать оставшуюся продолжительность видео" - }, - "shuffle": { - "message": "Случайный порядок" - }, - "sidebar": { - "message": "Боковая панель" - }, - "spacebar": { - "message": "Пробел" - }, - "squaredUserImages": { - "message": "Квадратные аватарки пользователей" - }, - "static": { - "message": "Статично" - }, - "statsForNerds": { - "message": "Показать статистику для сисадминов" - }, - "step": { - "message": "Шаг" - }, - "stop": { - "message": "Стоп" - }, - "style": { - "message": "Стиль" - }, - "styles": { - "message": "Стили" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Подписки" - }, - "subtitles": { - "message": "Субтитры" - }, - "sunset": { - "message": "Закат" - }, - "sunsetToSunrise": { - "message": "От заката до рассвета" - }, - "systemPeferenceDark": { - "message": "Предпочитаемая системой: темная" - }, - "systemPeferenceLight": { - "message": "Предпочитаемая системой: светлая" - }, - "teal": { - "message": "Бирюзовый" - }, - "textColor": { - "message": "Цвет текста" - }, - "themes": { - "message": "Темы" - }, - "thisWillRemoveAllCookies": { - "message": "Это удалит все куки" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Вы действительно хотите удалить все куки YouTube?" - }, - "thisWillResetAllSettings": { - "message": "Это сбросит все настройки" - }, - "thisWillResetAllShortcuts": { - "message": "Это сбросит все горячие клавиши" - }, - "thumbnails": { - "message": "Превью" - }, - "timeFrom": { - "message": "Время от" - }, - "timeTo": { - "message": "Время до" - }, - "todayAt": { - "message": "Сегодня в" - }, - "toggleAutoplay": { - "message": "Переключить автовоспроизведение" - }, - "toggleCards": { - "message": "Переключить карточки" - }, - "toggleControls": { - "message": "Переключить панель управления" - }, - "topChat": { - "message": "Top чат" - }, - "trackWatchedVideos": { - "message": "Отслеживать просмотренные видео" - }, - "trailerAutoplay": { - "message": "Автовоспроизведение трейлера" - }, - "translations": { - "message": "Переводы" - }, - "transparentBackground": { - "message": "Прозрачный фон" - }, - "trending": { - "message": "Тренды" - }, - "tryToReloadThePage": { - "message": "Попробуйте перезагрузить страницу" - }, - "type": { - "message": "Тип" - }, - "upNextAutoplay": { - "message": "Автовоспроизведение следующего видео" - }, - "use24HourFormat": { - "message": "24-часовой формат" - }, - "version": { - "message": "Версия" - }, - "video": { - "message": "Видео" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Описание видео будет развернуто, чтобы получить название категории видео" - }, - "videoFormats": { - "message": "Форматы видео" - }, - "videos": { - "message": "Видео" - }, - "viewMode": { - "message": "Режим просмотра" - }, - "volume": { - "message": "Громкость" - }, - "watchLater": { - "message": "Посмотреть позже" - }, - "watchTime": { - "message": "Время просмотра" - }, - "whenTabIsChanged": { - "message": "При переключении вкладок" - }, - "white": { - "message": "Белый" - }, - "windowColor": { - "message": "Цвет окна" - }, - "windowOpacity": { - "message": "Прозрачность окна" - }, - "yellow": { - "message": "Желтый" - }, - "youtubeHeaderLeft": { - "message": "Верхняя панель (слева)" - }, - "youtubeHeaderRight": { - "message": "Верхняя панель (справа)" - }, - "youtubeHomePage": { - "message": "Домашняя страница YouTube" - }, - "youtubeLanguage": { - "message": "Язык YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube ограничивает качетво видео до 1080p для кодека h.264" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Об ImprovedTube" + }, + "accept": { + "message": "Принять" + }, + "activate": { + "message": "Активировать" + }, + "activateCaptions": { + "message": "Активировать субтитры" + }, + "activateFullscreen": { + "message": "Перейти в полноэкранный режим" + }, + "activated": { + "message": "Активировано" + }, + "activatedFeatures": { + "message": "Активированные функции" + }, + "activeFeatures": { + "message": "Активные функции" + }, + "addScrollToTop": { + "message": "Добавить кнопку «наверх»" + }, + "ads": { + "message": "Реклама" + }, + "all": { + "message": "Все" + }, + "allow": { + "message": "Разрешить" + }, + "allow60fps": { + "message": "Разрешить 60fps" + }, + "alwaysActive": { + "message": "Всегда активный" + }, + "alwaysShowProgressBar": { + "message": "Всегда показывать прогресс-бар" + }, + "amber": { + "message": "Янтарный" + }, + "analyzer": { + "message": "Анализатор" + }, + "appearance": { + "message": "Внешний вид" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "Аудио" + }, + "audioFormats": { + "message": "Аудио форматы" + }, + "auto": { + "message": "Авто" + }, + "autoFullscreen": { + "message": "Автоматический переход в полноэкранный режим" + }, + "autopauseWhenSwitchingTabs": { + "message": "Автопауза при переходе между вкладками" + }, + "autoplay": { + "message": "Автовоспроизведение" + }, + "backgroundColor": { + "message": "Цвет фона" + }, + "backgroundOpacity": { + "message": "Прозрачность фона" + }, + "backupAndReset": { + "message": "Резервное копирование и сброс" + }, + "baseOnSystemColorScheme": { + "message": "Зависит от системной цветовой схемы" + }, + "belowPlayer": { + "message": "Ниже плеера" + }, + "black": { + "message": "Черный" + }, + "blacklist": { + "message": "Черный список" + }, + "blockAll": { + "message": "Заблокировать всё" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Синий" + }, + "blueGray": { + "message": "Серо-голубой" + }, + "bluelight": { + "message": "Синий свет" + }, + "brown": { + "message": "Коричневый" + }, + "browser": { + "message": "Браузер" + }, + "browserVersion": { + "message": "Версия браузера" + }, + "bubbles": { + "message": "Пузыри" + }, + "bug": { + "message": "Ошибка" + }, + "buttons": { + "message": "Кнопки" + }, + "cancel": { + "message": "Отмена" + }, + "categories": { + "message": "Категории" + }, + "channel": { + "message": "Канал" + }, + "channels": { + "message": "Каналы" + }, + "characterEdgeStyle": { + "message": "Стиль контура символов" + }, + "clipboard": { + "message": "Буфер обмена" + }, + "codecH264": { + "message": "Кодек h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Свернуть раздел подписок" + }, + "collapsed": { + "message": "Свернуть" + }, + "comments": { + "message": "Комментарии" + }, + "confirmationBeforeClosing": { + "message": "Подтверждение закрытия" + }, + "cookies": { + "message": "Куки" + }, + "cores": { + "message": "Ядра" + }, + "cropChapterTitles": { + "message": "Обрезать заголовки глав" + }, + "customCss": { + "message": "Пользовательский CSS" + }, + "customJs": { + "message": "Пользовательский JS" + }, + "customMiniPlayer": { + "message": "Новый мини-плеер" + }, + "cyan": { + "message": "Сине-зелёный" + }, + "dark": { + "message": "Темная" + }, + "darkTheme": { + "message": "Ночная тема" + }, + "dateAndTime": { + "message": "Дата и время" + }, + "dawn": { + "message": "Рассвет" + }, + "decreasePlaybackSpeed": { + "message": "Уменьшить скорость видео" + }, + "decreaseVolume": { + "message": "Уменьшить громкость" + }, + "decreaseVolume5": { + "message": "Уменьшить громкость на 5%" + }, + "deepOrange": { + "message": "Темно-оранжевый" + }, + "deepPurple": { + "message": "Темно-фиолетовый" + }, + "default": { + "message": "По умолчанию" + }, + "defaultChannelTab": { + "message": "Вкладка канала по умолчанию" + }, + "defaultContentCountry": { + "message": "Контент страны по умолчанию" + }, + "deleteWatchedVideos": { + "message": "Удалить просмотренные видео" + }, + "deleteYoutubeCookies": { + "message": "Удалить куки YouTube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Описание" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Пустыня" + }, + "details": { + "message": "Подробная информация" + }, + "developerOptions": { + "message": "Настройки разработчика" + }, + "device": { + "message": "Устройство" + }, + "dim": { + "message": "Тусклость" + }, + "disabled": { + "message": "Выключено" + }, + "dislike": { + "message": "Дизлайк" + }, + "doNotChange": { + "message": "Не менять" + }, + "donate": { + "message": "Пожертвовать" + }, + "draggable": { + "message": "Перетаскиваемый" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Пусто" + }, + "enabled": { + "message": "Включено" + }, + "enabledForced": { + "message": "Включено (принудительно)" + }, + "expanded": { + "message": "Развернуть" + }, + "exportSettings": { + "message": "Экспорт настроек" + }, + "extension": { + "message": "Расширение" + }, + "file": { + "message": "Файл" + }, + "filters": { + "message": "Фильтры" + }, + "fitToWindow": { + "message": "Подогнать под окно" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Шрифт" + }, + "fontColor": { + "message": "Цвет шрифта" + }, + "fontFamily": { + "message": "Семейство шрифтов" + }, + "fontOpacity": { + "message": "Прозрачность шрифта" + }, + "fontSize": { + "message": "Размер шрифта" + }, + "footer": { + "message": "Нижний колонтитул" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Всегда проигрывать видео с начала" + }, + "forcedPlaybackSpeed": { + "message": "Форсировать скорость воспроизведения" + }, + "forcedTheaterMode": { + "message": "Принудительно переходить в режим кино" + }, + "forcedVolume": { + "message": "Принудительная громкость" + }, + "foundABug": { + "message": "Нашли ошибку?" + }, + "fullWindow": { + "message": "Растянуть на все окно" + }, + "general": { + "message": "Общее" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Перейти в окно поиска" + }, + "googleApiKey": { + "message": "Ключ Google API" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Зеленый" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "Превью высокого качества" + }, + "header": { + "message": "Верхняя панель" + }, + "hidden": { + "message": "Скрыть" + }, + "hiddenOnVideoPage": { + "message": "Скрыть (только на странице с видео)" + }, + "hideAnimatedThumbnails": { + "message": "Скрыть анимированные превью" + }, + "hideAnnotations": { + "message": "Скрыть аннотации" + }, + "hideCards": { + "message": "Скрыть карточки" + }, + "hideCountryCode": { + "message": "Скрыть код страны" + }, + "hideDate": { + "message": "Скрыть дату" + }, + "hideDetails": { + "message": "Скрыть подробную информацию" + }, + "hideEndscreen": { + "message": "Скрыть экран после видео" + }, + "hideFeaturedContent": { + "message": "Скрыть рекомендации" + }, + "hideFooter": { + "message": "Скрыть нижний колонтитул" + }, + "hideGradientBottom": { + "message": "Скрыть нижний градиент" + }, + "hideMoreButton": { + "message": "Скрыть кнопку \"...\"" + }, + "hidePlayerControlsBar": { + "message": "Скрыть панель управления плеером" + }, + "hidePlayerControlsBarButtons": { + "message": "Скрыть кнопки панели управления плеером" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Скрыть плейлист" + }, + "hideRightButtons": { + "message": "Скрыть кнопки (справа)" + }, + "hideSaveButton": { + "message": "Скрыть кнопку \"Сохранить\"" + }, + "hideScrollForDetails": { + "message": "Скрыть «Прокрутите для подробной информации»" + }, + "hideShareButton": { + "message": "Скрыть кнопку \"Поделиться\"" + }, + "hideSkipOverlay": { + "message": "Скрыть наложение \"5 секунд\"" + }, + "hideThumbnailOverlay": { + "message": "Скрыть наложение на превью" + }, + "hideThumbnails": { + "message": "Скрыть превью" + }, + "hideViewsCount": { + "message": "Скрыть количество просмотров" + }, + "hideVoiceSearchButton": { + "message": "Скрыть кнопку голосового поиска" + }, + "high": { + "message": "High" + }, + "history": { + "message": "История" + }, + "home": { + "message": "Домашняя страница" + }, + "hover": { + "message": "Показывать при наведении" + }, + "hoverOnVideoPage": { + "message": "Показывать при наведении (только на странице с видео)" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Показывать как давно было загружено видео" + }, + "icons": { + "message": "Иконки" + }, + "iconsOnly": { + "message": "Только иконки" + }, + "importSettings": { + "message": "Импорт настроек" + }, + "improveLogo": { + "message": "Улучшить логотип YouTube" + }, + "improvedtubeIconOnYoutube": { + "message": "Значок ImprovedTube в YouTube" + }, + "improvedtubeLanguage": { + "message": "Язык ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Версия ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Увеличить скорость видео" + }, + "increaseVolume": { + "message": "Увеличить громкость" + }, + "increaseVolume5": { + "message": "Увеличить громкости на 5%" + }, + "indigo": { + "message": "Индиго" + }, + "items": { + "message": "Items" + }, + "language": { + "message": "Язык" + }, + "languages": { + "message": "Языки" + }, + "legacyYoutube": { + "message": "Старая версия YouTube" + }, + "library": { + "message": "Библиотека" + }, + "light": { + "message": "Светлая" + }, + "lightBlue": { + "message": "Светло-синий" + }, + "lightGreen": { + "message": "Светло-зеленый" + }, + "like": { + "message": "Лайк" + }, + "liked": { + "message": "Понравившиеся" + }, + "likes": { + "message": "Лайки" + }, + "lime": { + "message": "Лайм" + }, + "limitPageWidth": { + "message": "Ограничить ширину страницы" + }, + "list": { + "message": "Список" + }, + "liveChat": { + "message": "Live-чат" + }, + "liveChatType": { + "message": "Тип live-чата" + }, + "location": { + "message": "Место нахождения" + }, + "loudnessNormalization": { + "message": "Нормализировать громкость" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Отмечать просмотренные видео" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Миксер" + }, + "moveSidebarLeft": { + "message": "Сместить боковую панель влево" + }, + "moveThumbnailsRight": { + "message": "Сместить превью вправо" + }, + "myColors": { + "message": "Мои цвета" + }, + "name": { + "message": "Имя" + }, + "nativeMiniPlayer": { + "message": "Мини-плеер от YouTube" + }, + "new": { + "message": "Новый" + }, + "nextVideo": { + "message": "Следующее видео" + }, + "night": { + "message": "Ночь" + }, + "noActiveFeatures": { + "message": "Нет активных функций" + }, + "noOpenVideoTabs": { + "message": "Нет открытых вкладок с видео" + }, + "none": { + "message": "Пусто" + }, + "normal": { + "message": "Обычный" + }, + "old": { + "message": "Старый" + }, + "onAllVideos": { + "message": "Во всех видео" + }, + "onSubscribedChannels": { + "message": "Только на каналах в подписках" + }, + "onlyActiveOnYoutube": { + "message": "Активен только в YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Только один экземпляр плеера играет" + }, + "orange": { + "message": "Оранжевый" + }, + "os": { + "message": "ОС" + }, + "other": { + "message": "Другое" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Разрешения" + }, + "pictureInPicture": { + "message": "Картинка в картинке" + }, + "pink": { + "message": "Розовый" + }, + "plain": { + "message": "Равнина" + }, + "platform": { + "message": "Платформа" + }, + "playPause": { + "message": "Воспроизведение / Пауза" + }, + "playbackSpeed": { + "message": "Скорость воспроизведения" + }, + "player": { + "message": "Плеер" + }, + "playerColor": { + "message": "Цвет плеера" + }, + "playerSize": { + "message": "Размер плеера" + }, + "playlist": { + "message": "Плейлист" + }, + "playlists": { + "message": "Плейлисты" + }, + "popupPlayer": { + "message": "Плеер во всплывающем окне" + }, + "position": { + "message": "Позиция" + }, + "pressAnyKeyOrScroll": { + "message": "Нажмите любую клавишу или воспользуйтесь колесом мыши" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Нажмите любую клавишу или используйте колесо мыши" + }, + "previousVideo": { + "message": "Предыдущее видео" + }, + "primaryColor": { + "message": "Основной цвет" + }, + "purple": { + "message": "Фиолетовый" + }, + "quality": { + "message": "Качество" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Оставить отзыв" + }, + "rateUs": { + "message": "Оцените нас" + }, + "red": { + "message": "Красный" + }, + "redDislikeButton": { + "message": "Сделать дизлайк красным" + }, + "relatedVideos": { + "message": "Похожие видео" + }, + "remote": { + "message": "Продолжить просмотр на ТВ" + }, + "removeRelatedSearchResults": { + "message": "Удалить похожие результаты поиска" + }, + "repeat": { + "message": "Повтор" + }, + "reset": { + "message": "Сбросить" + }, + "resetAllSettings": { + "message": "Сбросить все настройки" + }, + "resetAllShortcuts": { + "message": "Сбросить все горячие клавиши" + }, + "reverse": { + "message": "Обратный порядок" + }, + "rotate": { + "message": "Повернуть" + }, + "save": { + "message": "Сохранить" + }, + "saveAs": { + "message": "Сохранить как" + }, + "schedule": { + "message": "Расписание" + }, + "screen": { + "message": "Экран" + }, + "screenshot": { + "message": "Скриншот" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Поиск" + }, + "searchBarOnly": { + "message": "Только поле поиска" + }, + "seekBackward10Seconds": { + "message": "Перемотать на 10 секунд назад" + }, + "seekForward10Seconds": { + "message": "Перемотать на 10 секунд вперед" + }, + "seekNextChapter": { + "message": "Следующая глава" + }, + "seekPreviousChapter": { + "message": "Предыдущая глава" + }, + "settings": { + "message": "Настройки" + }, + "settingsSuccessfullyImported": { + "message": "Настройки успешно импортированы" + }, + "shortcuts": { + "message": "Горячие клавиши" + }, + "showCardsOnMouseHover": { + "message": "Показывать карточки при наведении мыши" + }, + "showChannelVideosCount": { + "message": "Показывать количество видео на канале" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Показать оставшуюся продолжительность видео" + }, + "shuffle": { + "message": "Случайный порядок" + }, + "sidebar": { + "message": "Боковая панель" + }, + "spacebar": { + "message": "Пробел" + }, + "squaredUserImages": { + "message": "Квадратные аватарки пользователей" + }, + "static": { + "message": "Статично" + }, + "statsForNerds": { + "message": "Показать статистику для сисадминов" + }, + "step": { + "message": "Шаг" + }, + "stop": { + "message": "Стоп" + }, + "style": { + "message": "Стиль" + }, + "styles": { + "message": "Стили" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Подписки" + }, + "subtitles": { + "message": "Субтитры" + }, + "sunset": { + "message": "Закат" + }, + "sunsetToSunrise": { + "message": "От заката до рассвета" + }, + "systemPeferenceDark": { + "message": "Предпочитаемая системой: темная" + }, + "systemPeferenceLight": { + "message": "Предпочитаемая системой: светлая" + }, + "teal": { + "message": "Бирюзовый" + }, + "textColor": { + "message": "Цвет текста" + }, + "themes": { + "message": "Темы" + }, + "thisWillRemoveAllCookies": { + "message": "Это удалит все куки" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Вы действительно хотите удалить все куки YouTube?" + }, + "thisWillResetAllSettings": { + "message": "Это сбросит все настройки" + }, + "thisWillResetAllShortcuts": { + "message": "Это сбросит все горячие клавиши" + }, + "thumbnails": { + "message": "Превью" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Время от" + }, + "timeTo": { + "message": "Время до" + }, + "todayAt": { + "message": "Сегодня в" + }, + "toggleAutoplay": { + "message": "Переключить автовоспроизведение" + }, + "toggleCards": { + "message": "Переключить карточки" + }, + "toggleControls": { + "message": "Переключить панель управления" + }, + "topChat": { + "message": "Top чат" + }, + "trackWatchedVideos": { + "message": "Отслеживать просмотренные видео" + }, + "trailerAutoplay": { + "message": "Автовоспроизведение трейлера" + }, + "translations": { + "message": "Переводы" + }, + "transparentBackground": { + "message": "Прозрачный фон" + }, + "trending": { + "message": "Тренды" + }, + "tryToReloadThePage": { + "message": "Попробуйте перезагрузить страницу" + }, + "type": { + "message": "Тип" + }, + "upNextAutoplay": { + "message": "Автовоспроизведение следующего видео" + }, + "use24HourFormat": { + "message": "24-часовой формат" + }, + "version": { + "message": "Версия" + }, + "video": { + "message": "Видео" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Описание видео будет развернуто, чтобы получить название категории видео" + }, + "videoFormats": { + "message": "Форматы видео" + }, + "videos": { + "message": "Видео" + }, + "viewMode": { + "message": "Режим просмотра" + }, + "volume": { + "message": "Громкость" + }, + "watchLater": { + "message": "Посмотреть позже" + }, + "watchTime": { + "message": "Время просмотра" + }, + "whenTabIsChanged": { + "message": "При переключении вкладок" + }, + "white": { + "message": "Белый" + }, + "windowColor": { + "message": "Цвет окна" + }, + "windowOpacity": { + "message": "Прозрачность окна" + }, + "yellow": { + "message": "Желтый" + }, + "youtubeHeaderLeft": { + "message": "Верхняя панель (слева)" + }, + "youtubeHeaderRight": { + "message": "Верхняя панель (справа)" + }, + "youtubeHomePage": { + "message": "Домашняя страница YouTube" + }, + "youtubeLanguage": { + "message": "Язык YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube ограничивает качетво видео до 1080p для кодека h.264" + } } \ No newline at end of file diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index b05df0ba3..3717edcef 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -1,971 +1,986 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "O" - }, - "accept": { - "message": "Prijať" - }, - "activate": { - "message": "Aktivovať" - }, - "activateCaptions": { - "message": "Aktivovať titulky" - }, - "activateFullscreen": { - "message": "Aktivovať zobrazenie na celú obrazovku" - }, - "activated": { - "message": "Aktivované" - }, - "activatedFeatures": { - "message": "Aktivované fukncie" - }, - "activeFeatures": { - "message": "Aktívne funkcie" - }, - "addScrollToTop": { - "message": "Prejdite «Vrátiť sa na začiatok»" - }, - "ads": { - "message": "Reklamy" - }, - "all": { - "message": "Všetko" - }, - "allow": { - "message": "Povoliť" - }, - "allow60fps": { - "message": "Povoliť 60fps" - }, - "alwaysActive": { - "message": "Vždy aktívne" - }, - "alwaysShowProgressBar": { - "message": "Vždy zobrazovať ukazateľ priebehu" - }, - "amber": { - "message": "Ambra" - }, - "analyzer": { - "message": "Analyzátor" - }, - "appearance": { - "message": "Vzhľad" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Zvuk" - }, - "audioFormats": { - "message": "Formát zvuku" - }, - "auto": { - "message": "Automaticky" - }, - "autoFullscreen": { - "message": "Automaticky-fullscreen" - }, - "autopauseWhenSwitchingTabs": { - "message": "Automatické pozastavenie pri prepínaní kariet" - }, - "autoplay": { - "message": "Automatické prehrávanie" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Zálohovanie & Obnova" - }, - "baseOnSystemColorScheme": { - "message": "Nastavené podľa farby systému" - }, - "belowPlayer": { - "message": "Pod prehrávačom" - }, - "black": { - "message": "Čierna" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "Zablokovať všetko" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Modrá" - }, - "blueGray": { - "message": "Šedo-modrá" - }, - "bluelight": { - "message": "Modré svetlo" - }, - "brown": { - "message": "Hnedá" - }, - "browser": { - "message": "Prehliadac" - }, - "browserVersion": { - "message": "Verzie prehliadača" - }, - "bubbles": { - "message": "Bubliny" - }, - "bug": { - "message": "Chyba" - }, - "buttons": { - "message": "Tlačidlá" - }, - "cancel": { - "message": "Zrušiť" - }, - "categories": { - "message": "Kategórie" - }, - "channel": { - "message": "Kanál" - }, - "channels": { - "message": "Kanály" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Schránka" - }, - "codecH264": { - "message": "Kodek h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Zbaliť sekciu Odber" - }, - "collapsed": { - "message": "Zbaliť" - }, - "comments": { - "message": "Komentáre" - }, - "confirmationBeforeClosing": { - "message": "Potvrdiť pred zatvorenímk" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Jadrá" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Vlastné CSS" - }, - "customJs": { - "message": "Vlastné JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Tyrkysová" - }, - "dark": { - "message": "Tmavý" - }, - "darkTheme": { - "message": "Tmavá téma" - }, - "dateAndTime": { - "message": "Dátum a čas" - }, - "dawn": { - "message": "Svitanie" - }, - "decreasePlaybackSpeed": { - "message": "Znížiť rýchlosť prehrávania" - }, - "decreaseVolume": { - "message": "Znížiť hlasitosť" - }, - "deepOrange": { - "message": "Tmavo oranžová" - }, - "deepPurple": { - "message": "Tmavo fialová" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Predvolená karta kanálu" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Vymazať YouTube cookies" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Podrobnosti" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Púšť" - }, - "details": { - "message": "Detaily" - }, - "developerOptions": { - "message": "Možnosti pre vývojara" - }, - "device": { - "message": "Zariadenie" - }, - "dim": { - "message": "Stmvaviť" - }, - "disabled": { - "message": "Vypnutý" - }, - "dislike": { - "message": "Dislike" - }, - "doNotChange": { - "message": "Nemeniť" - }, - "donate": { - "message": "Prispieť" - }, - "draggable": { - "message": "Posuvné" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Prázdny" - }, - "enabled": { - "message": "Zapnuté" - }, - "enabledForced": { - "message": "Zapnuté (vynútene)" - }, - "expanded": { - "message": "Rozbalené" - }, - "exportSettings": { - "message": "Exportovať nastavenia" - }, - "extension": { - "message": "Rozšírenia" - }, - "file": { - "message": "Súbor" - }, - "filters": { - "message": "Filtre" - }, - "fitToWindow": { - "message": "Prispôsobiť oknu" - }, - "flash": { - "message": "Blikať" - }, - "font": { - "message": "Písmo" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Pätička" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Vynútená rýchlosť prehrávania" - }, - "forcedTheaterMode": { - "message": "Vynútený divadelný režim" - }, - "forcedVolume": { - "message": "Vynútená hlasitosť" - }, - "foundABug": { - "message": "Našli ste chybu?" - }, - "fullWindow": { - "message": "Celé okno" - }, - "general": { - "message": "Všeobecné" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Prejdite do vyhľadávanieho poľa" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Zelená" - }, - "hdThumbnail": { - "message": "HD náhlad" - }, - "hdThumbnails": { - "message": "HD náhlady" - }, - "header": { - "message": "Hlavička" - }, - "hidden": { - "message": "Skryté" - }, - "hiddenOnVideoPage": { - "message": "Skyté na stránke videa" - }, - "hideAnimatedThumbnails": { - "message": "Skryť animované náhľady" - }, - "hideAnnotations": { - "message": "Skryť anotácie" - }, - "hideCards": { - "message": "Skryť karty" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Skryť detaily" - }, - "hideEndscreen": { - "message": "Skryť zobrazenie na konci videa" - }, - "hideFeaturedContent": { - "message": "Skryť odporúčaný obsah" - }, - "hideFooter": { - "message": "Hide pätičku" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Skryť zoznam videí" - }, - "hideRightButtons": { - "message": "Skryť tlčidlá v pravo" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Skryť «Zarolujte pre detaily»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Skyť počet videní" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "História" - }, - "home": { - "message": "Domov" - }, - "hover": { - "message": "Vznášať sa" - }, - "hoverOnVideoPage": { - "message": "Umiestnite kurzor na stránku videa" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Kedy bolo toto video nahrané?" - }, - "icons": { - "message": "Ikony" - }, - "iconsOnly": { - "message": "Iba ikony" - }, - "importSettings": { - "message": "Importovať nastavenia" - }, - "improveLogo": { - "message": "Improve logo" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube ikona na YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube jazyk" - }, - "improvedtubeVersion": { - "message": "ImprovedTube verzia" - }, - "increasePlaybackSpeed": { - "message": "Zvýšiť rýchlosť prehrávania" - }, - "increaseVolume": { - "message": "Zvýšiť hlasitosť" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Jazyky" - }, - "legacyYoutube": { - "message": "Starý YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Svetlo" - }, - "lightBlue": { - "message": "Svetlo modrá" - }, - "lightGreen": { - "message": "Svetlo zelená" - }, - "like": { - "message": "Páči sa mi to" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Páči sa mi to" - }, - "lime": { - "message": "Limetková" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Zoznam" - }, - "liveChat": { - "message": "Živí chat" - }, - "liveChatType": { - "message": "Typ živého chatu" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Vyrovnanie hlasitosti" - }, - "markWatchedVideos": { - "message": "Označiť ako videné" - }, - "mixer": { - "message": "Mixér" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Moje farby" - }, - "name": { - "message": "Meno" - }, - "nativeMiniPlayer": { - "message": "Natívny mini prehrávač" - }, - "new": { - "message": "Nový" - }, - "nextVideo": { - "message": "Ďalšie video" - }, - "night": { - "message": "Noc" - }, - "noActiveFeatures": { - "message": "Žiadne aktívne fukncie" - }, - "noOpenVideoTabs": { - "message": "Žiadne otvorené karty s videami" - }, - "none": { - "message": "Žiadny" - }, - "normal": { - "message": "Normále" - }, - "old": { - "message": "Starý" - }, - "onAllVideos": { - "message": "Na všetkých videách" - }, - "onSubscribedChannels": { - "message": "Na odoberaných kanáloch" - }, - "onlyActiveOnYoutube": { - "message": "Aktívne iba na YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Prehrávať iba jedno video" - }, - "orange": { - "message": "Oranžová" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Ostatné" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Povolenia" - }, - "pictureInPicture": { - "message": "Obraz v obraze" - }, - "pink": { - "message": "Ružová" - }, - "plain": { - "message": "Jednoduchý" - }, - "platform": { - "message": "Platforma" - }, - "playPause": { - "message": "Prehrať / Pozastavť" - }, - "playbackSpeed": { - "message": "Rýchlosť prehrávania" - }, - "player": { - "message": "Prehrávač" - }, - "playerColor": { - "message": "Farba prehrávača" - }, - "playerSize": { - "message": "Veľkosť prehrávača" - }, - "playlist": { - "message": "Zoznam videí" - }, - "playlists": { - "message": "Zoznamy videí" - }, - "popupPlayer": { - "message": "Popup prehrávač" - }, - "position": { - "message": "Pozícia" - }, - "pressAnyKeyOrScroll": { - "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky" - }, - "previousVideo": { - "message": "Predchýdzajúce video" - }, - "primaryColor": { - "message": "Primárna farba" - }, - "purple": { - "message": "Fialová" - }, - "quality": { - "message": "Kvalita" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Ohodnoťte nás" - }, - "red": { - "message": "Červená" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Súvisiace videá" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Odstránte príbuzné výsledky vyhľadávania" - }, - "repeat": { - "message": "Opakovať" - }, - "reset": { - "message": "Obnoviť" - }, - "resetAllSettings": { - "message": "Obnoviť všetky nastavenia" - }, - "resetAllShortcuts": { - "message": "Obnoviť všetky skratky" - }, - "reverse": { - "message": "Obrátené" - }, - "rotate": { - "message": "Otočiť" - }, - "save": { - "message": "Uložiť" - }, - "saveAs": { - "message": "Uložiť ako" - }, - "schedule": { - "message": "Naplánovať" - }, - "screen": { - "message": "Obrazovka" - }, - "screenshot": { - "message": "Screenshot" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "Vyhľadať" - }, - "searchBarOnly": { - "message": "Iba vyhľadávacie pole" - }, - "seekBackward10Seconds": { - "message": "Pretočiť spät o 10 sekúnd" - }, - "seekForward10Seconds": { - "message": "Pretočiť dopredu o 10 sekúnd" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Nastavenia" - }, - "settingsSuccessfullyImported": { - "message": "Nastavenia úspešne importované" - }, - "shortcuts": { - "message": "Skratky" - }, - "showCardsOnMouseHover": { - "message": "Zobraziť karty pri prechode myšou" - }, - "showChannelVideosCount": { - "message": "Zobraziť počet videí kanálu" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Náhodne" - }, - "sidebar": { - "message": "Bočný panel" - }, - "spacebar": { - "message": "Medzera" - }, - "squaredUserImages": { - "message": "Štvorcový obrázok užívateľa" - }, - "static": { - "message": "Statické" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Krok" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Štýl" - }, - "styles": { - "message": "Štýly" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Odbery" - }, - "subtitles": { - "message": "Titulky" - }, - "sunset": { - "message": "Západ slnka" - }, - "sunsetToSunrise": { - "message": "Západ slnka do východu slnka" - }, - "systemPeferenceDark": { - "message": "Predvolené: tmavé" - }, - "systemPeferenceLight": { - "message": "Predvolené: svetlé" - }, - "teal": { - "message": "Modrozelený" - }, - "textColor": { - "message": "Farba textu" - }, - "themes": { - "message": "Témy" - }, - "thisWillRemoveAllCookies": { - "message": "Toto odstráni všetky cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Toto odstráni všetky YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "Toto obnový všetky nastavenia." - }, - "thisWillResetAllShortcuts": { - "message": "Toto obnový všetky skratky" - }, - "thumbnails": { - "message": "Náhlady" - }, - "timeFrom": { - "message": "Čas od" - }, - "timeTo": { - "message": "Čas do" - }, - "todayAt": { - "message": "Dnes o" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Automatické prehrávanie ukážky" - }, - "translations": { - "message": "Preklady" - }, - "transparentBackground": { - "message": "Priehľadné pozadie" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Skúsťe obnoviť stránku" - }, - "type": { - "message": "Typ" - }, - "upNextAutoplay": { - "message": "Automaticky prehrať ďaľšie v poradí" - }, - "use24HourFormat": { - "message": "Použť 24-hodinový formát" - }, - "version": { - "message": "Verzia" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Podrobnosti videa budú zobrazené pre získanie názvu kategórie" - }, - "videoFormats": { - "message": "Formáty videa" - }, - "videos": { - "message": "Vedeá" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Hlasitosť" - }, - "watchLater": { - "message": "Pozrieť neskor" - }, - "watchTime": { - "message": "Čas sledovania" - }, - "whenTabIsChanged": { - "message": "Pri zmene karty" - }, - "white": { - "message": "Biela" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Žltá" - }, - "youtubeHeaderLeft": { - "message": "YouTube hlavička (vľavo)" - }, - "youtubeHeaderRight": { - "message": "YouTube hlavička (vpravo)" - }, - "youtubeHomePage": { - "message": "Domáca stránka YouTube" - }, - "youtubeLanguage": { - "message": "Jazyk YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube obmedzuje kvalitu videa na 1080p pri kodeku h.264" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "O" + }, + "accept": { + "message": "Prijať" + }, + "activate": { + "message": "Aktivovať" + }, + "activateCaptions": { + "message": "Aktivovať titulky" + }, + "activateFullscreen": { + "message": "Aktivovať zobrazenie na celú obrazovku" + }, + "activated": { + "message": "Aktivované" + }, + "activatedFeatures": { + "message": "Aktivované fukncie" + }, + "activeFeatures": { + "message": "Aktívne funkcie" + }, + "addScrollToTop": { + "message": "Prejdite «Vrátiť sa na začiatok»" + }, + "ads": { + "message": "Reklamy" + }, + "all": { + "message": "Všetko" + }, + "allow": { + "message": "Povoliť" + }, + "allow60fps": { + "message": "Povoliť 60fps" + }, + "alwaysActive": { + "message": "Vždy aktívne" + }, + "alwaysShowProgressBar": { + "message": "Vždy zobrazovať ukazateľ priebehu" + }, + "amber": { + "message": "Ambra" + }, + "analyzer": { + "message": "Analyzátor" + }, + "appearance": { + "message": "Vzhľad" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "Zvuk" + }, + "audioFormats": { + "message": "Formát zvuku" + }, + "auto": { + "message": "Automaticky" + }, + "autoFullscreen": { + "message": "Automaticky-fullscreen" + }, + "autopauseWhenSwitchingTabs": { + "message": "Automatické pozastavenie pri prepínaní kariet" + }, + "autoplay": { + "message": "Automatické prehrávanie" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Zálohovanie & Obnova" + }, + "baseOnSystemColorScheme": { + "message": "Nastavené podľa farby systému" + }, + "belowPlayer": { + "message": "Pod prehrávačom" + }, + "black": { + "message": "Čierna" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "Zablokovať všetko" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Modrá" + }, + "blueGray": { + "message": "Šedo-modrá" + }, + "bluelight": { + "message": "Modré svetlo" + }, + "brown": { + "message": "Hnedá" + }, + "browser": { + "message": "Prehliadac" + }, + "browserVersion": { + "message": "Verzie prehliadača" + }, + "bubbles": { + "message": "Bubliny" + }, + "bug": { + "message": "Chyba" + }, + "buttons": { + "message": "Tlačidlá" + }, + "cancel": { + "message": "Zrušiť" + }, + "categories": { + "message": "Kategórie" + }, + "channel": { + "message": "Kanál" + }, + "channels": { + "message": "Kanály" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Schránka" + }, + "codecH264": { + "message": "Kodek h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Zbaliť sekciu Odber" + }, + "collapsed": { + "message": "Zbaliť" + }, + "comments": { + "message": "Komentáre" + }, + "confirmationBeforeClosing": { + "message": "Potvrdiť pred zatvorenímk" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Jadrá" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Vlastné CSS" + }, + "customJs": { + "message": "Vlastné JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Tyrkysová" + }, + "dark": { + "message": "Tmavý" + }, + "darkTheme": { + "message": "Tmavá téma" + }, + "dateAndTime": { + "message": "Dátum a čas" + }, + "dawn": { + "message": "Svitanie" + }, + "decreasePlaybackSpeed": { + "message": "Znížiť rýchlosť prehrávania" + }, + "decreaseVolume": { + "message": "Znížiť hlasitosť" + }, + "deepOrange": { + "message": "Tmavo oranžová" + }, + "deepPurple": { + "message": "Tmavo fialová" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Predvolená karta kanálu" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Vymazať YouTube cookies" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Podrobnosti" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Púšť" + }, + "details": { + "message": "Detaily" + }, + "developerOptions": { + "message": "Možnosti pre vývojara" + }, + "device": { + "message": "Zariadenie" + }, + "dim": { + "message": "Stmvaviť" + }, + "disabled": { + "message": "Vypnutý" + }, + "dislike": { + "message": "Dislike" + }, + "doNotChange": { + "message": "Nemeniť" + }, + "donate": { + "message": "Prispieť" + }, + "draggable": { + "message": "Posuvné" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Prázdny" + }, + "enabled": { + "message": "Zapnuté" + }, + "enabledForced": { + "message": "Zapnuté (vynútene)" + }, + "expanded": { + "message": "Rozbalené" + }, + "exportSettings": { + "message": "Exportovať nastavenia" + }, + "extension": { + "message": "Rozšírenia" + }, + "file": { + "message": "Súbor" + }, + "filters": { + "message": "Filtre" + }, + "fitToWindow": { + "message": "Prispôsobiť oknu" + }, + "flash": { + "message": "Blikať" + }, + "font": { + "message": "Písmo" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Pätička" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Vynútená rýchlosť prehrávania" + }, + "forcedTheaterMode": { + "message": "Vynútený divadelný režim" + }, + "forcedVolume": { + "message": "Vynútená hlasitosť" + }, + "foundABug": { + "message": "Našli ste chybu?" + }, + "fullWindow": { + "message": "Celé okno" + }, + "general": { + "message": "Všeobecné" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Prejdite do vyhľadávanieho poľa" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Zelená" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD náhlad" + }, + "header": { + "message": "Hlavička" + }, + "hidden": { + "message": "Skryté" + }, + "hiddenOnVideoPage": { + "message": "Skyté na stránke videa" + }, + "hideAnimatedThumbnails": { + "message": "Skryť animované náhľady" + }, + "hideAnnotations": { + "message": "Skryť anotácie" + }, + "hideCards": { + "message": "Skryť karty" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Skryť detaily" + }, + "hideEndscreen": { + "message": "Skryť zobrazenie na konci videa" + }, + "hideFeaturedContent": { + "message": "Skryť odporúčaný obsah" + }, + "hideFooter": { + "message": "Hide pätičku" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Skryť zoznam videí" + }, + "hideRightButtons": { + "message": "Skryť tlčidlá v pravo" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Skryť «Zarolujte pre detaily»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Skyť počet videní" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "História" + }, + "home": { + "message": "Domov" + }, + "hover": { + "message": "Vznášať sa" + }, + "hoverOnVideoPage": { + "message": "Umiestnite kurzor na stránku videa" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Kedy bolo toto video nahrané?" + }, + "icons": { + "message": "Ikony" + }, + "iconsOnly": { + "message": "Iba ikony" + }, + "importSettings": { + "message": "Importovať nastavenia" + }, + "improveLogo": { + "message": "Improve logo" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube ikona na YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube jazyk" + }, + "improvedtubeVersion": { + "message": "ImprovedTube verzia" + }, + "increasePlaybackSpeed": { + "message": "Zvýšiť rýchlosť prehrávania" + }, + "increaseVolume": { + "message": "Zvýšiť hlasitosť" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Jazyky" + }, + "legacyYoutube": { + "message": "Starý YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Svetlo" + }, + "lightBlue": { + "message": "Svetlo modrá" + }, + "lightGreen": { + "message": "Svetlo zelená" + }, + "like": { + "message": "Páči sa mi to" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Páči sa mi to" + }, + "lime": { + "message": "Limetková" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Zoznam" + }, + "liveChat": { + "message": "Živí chat" + }, + "liveChatType": { + "message": "Typ živého chatu" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Vyrovnanie hlasitosti" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Označiť ako videné" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixér" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Moje farby" + }, + "name": { + "message": "Meno" + }, + "nativeMiniPlayer": { + "message": "Natívny mini prehrávač" + }, + "new": { + "message": "Nový" + }, + "nextVideo": { + "message": "Ďalšie video" + }, + "night": { + "message": "Noc" + }, + "noActiveFeatures": { + "message": "Žiadne aktívne fukncie" + }, + "noOpenVideoTabs": { + "message": "Žiadne otvorené karty s videami" + }, + "none": { + "message": "Žiadny" + }, + "normal": { + "message": "Normále" + }, + "old": { + "message": "Starý" + }, + "onAllVideos": { + "message": "Na všetkých videách" + }, + "onSubscribedChannels": { + "message": "Na odoberaných kanáloch" + }, + "onlyActiveOnYoutube": { + "message": "Aktívne iba na YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Prehrávať iba jedno video" + }, + "orange": { + "message": "Oranžová" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Ostatné" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Povolenia" + }, + "pictureInPicture": { + "message": "Obraz v obraze" + }, + "pink": { + "message": "Ružová" + }, + "plain": { + "message": "Jednoduchý" + }, + "platform": { + "message": "Platforma" + }, + "playPause": { + "message": "Prehrať / Pozastavť" + }, + "playbackSpeed": { + "message": "Rýchlosť prehrávania" + }, + "player": { + "message": "Prehrávač" + }, + "playerColor": { + "message": "Farba prehrávača" + }, + "playerSize": { + "message": "Veľkosť prehrávača" + }, + "playlist": { + "message": "Zoznam videí" + }, + "playlists": { + "message": "Zoznamy videí" + }, + "popupPlayer": { + "message": "Popup prehrávač" + }, + "position": { + "message": "Pozícia" + }, + "pressAnyKeyOrScroll": { + "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky" + }, + "previousVideo": { + "message": "Predchýdzajúce video" + }, + "primaryColor": { + "message": "Primárna farba" + }, + "purple": { + "message": "Fialová" + }, + "quality": { + "message": "Kvalita" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Ohodnoťte nás" + }, + "red": { + "message": "Červená" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Súvisiace videá" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Odstránte príbuzné výsledky vyhľadávania" + }, + "repeat": { + "message": "Opakovať" + }, + "reset": { + "message": "Obnoviť" + }, + "resetAllSettings": { + "message": "Obnoviť všetky nastavenia" + }, + "resetAllShortcuts": { + "message": "Obnoviť všetky skratky" + }, + "reverse": { + "message": "Obrátené" + }, + "rotate": { + "message": "Otočiť" + }, + "save": { + "message": "Uložiť" + }, + "saveAs": { + "message": "Uložiť ako" + }, + "schedule": { + "message": "Naplánovať" + }, + "screen": { + "message": "Obrazovka" + }, + "screenshot": { + "message": "Screenshot" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Vyhľadať" + }, + "searchBarOnly": { + "message": "Iba vyhľadávacie pole" + }, + "seekBackward10Seconds": { + "message": "Pretočiť spät o 10 sekúnd" + }, + "seekForward10Seconds": { + "message": "Pretočiť dopredu o 10 sekúnd" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Nastavenia" + }, + "settingsSuccessfullyImported": { + "message": "Nastavenia úspešne importované" + }, + "shortcuts": { + "message": "Skratky" + }, + "showCardsOnMouseHover": { + "message": "Zobraziť karty pri prechode myšou" + }, + "showChannelVideosCount": { + "message": "Zobraziť počet videí kanálu" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Náhodne" + }, + "sidebar": { + "message": "Bočný panel" + }, + "spacebar": { + "message": "Medzera" + }, + "squaredUserImages": { + "message": "Štvorcový obrázok užívateľa" + }, + "static": { + "message": "Statické" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Krok" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Štýl" + }, + "styles": { + "message": "Štýly" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Odbery" + }, + "subtitles": { + "message": "Titulky" + }, + "sunset": { + "message": "Západ slnka" + }, + "sunsetToSunrise": { + "message": "Západ slnka do východu slnka" + }, + "systemPeferenceDark": { + "message": "Predvolené: tmavé" + }, + "systemPeferenceLight": { + "message": "Predvolené: svetlé" + }, + "teal": { + "message": "Modrozelený" + }, + "textColor": { + "message": "Farba textu" + }, + "themes": { + "message": "Témy" + }, + "thisWillRemoveAllCookies": { + "message": "Toto odstráni všetky cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Toto odstráni všetky YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "Toto obnový všetky nastavenia." + }, + "thisWillResetAllShortcuts": { + "message": "Toto obnový všetky skratky" + }, + "thumbnails": { + "message": "Náhlady" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Čas od" + }, + "timeTo": { + "message": "Čas do" + }, + "todayAt": { + "message": "Dnes o" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Automatické prehrávanie ukážky" + }, + "translations": { + "message": "Preklady" + }, + "transparentBackground": { + "message": "Priehľadné pozadie" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Skúsťe obnoviť stránku" + }, + "type": { + "message": "Typ" + }, + "upNextAutoplay": { + "message": "Automaticky prehrať ďaľšie v poradí" + }, + "use24HourFormat": { + "message": "Použť 24-hodinový formát" + }, + "version": { + "message": "Verzia" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Podrobnosti videa budú zobrazené pre získanie názvu kategórie" + }, + "videoFormats": { + "message": "Formáty videa" + }, + "videos": { + "message": "Vedeá" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Hlasitosť" + }, + "watchLater": { + "message": "Pozrieť neskor" + }, + "watchTime": { + "message": "Čas sledovania" + }, + "whenTabIsChanged": { + "message": "Pri zmene karty" + }, + "white": { + "message": "Biela" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Žltá" + }, + "youtubeHeaderLeft": { + "message": "YouTube hlavička (vľavo)" + }, + "youtubeHeaderRight": { + "message": "YouTube hlavička (vpravo)" + }, + "youtubeHomePage": { + "message": "Domáca stránka YouTube" + }, + "youtubeLanguage": { + "message": "Jazyk YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube obmedzuje kvalitu videa na 1080p pri kodeku h.264" + } } \ No newline at end of file diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 916bfc207..c5d50c875 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -1,971 +1,986 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Hakkında" - }, - "accept": { - "message": "Onayla" - }, - "activate": { - "message": "Aktifleştir" - }, - "activateCaptions": { - "message": "Altyazıları Aktifleştir" - }, - "activateFullscreen": { - "message": "Tam ekranı Aktifleştir" - }, - "activated": { - "message": "Aktifleştirilmiş" - }, - "activatedFeatures": { - "message": "Aktifleştirilmiş özellikler" - }, - "activeFeatures": { - "message": "Etkin özellikler" - }, - "addScrollToTop": { - "message": "«Yukarı kaydır» ekle" - }, - "ads": { - "message": "Reklamlar" - }, - "all": { - "message": "Tümü" - }, - "allow": { - "message": "İzin ver" - }, - "allow60fps": { - "message": "60fps'e izin ver" - }, - "alwaysActive": { - "message": "Sürekli etkin" - }, - "alwaysShowProgressBar": { - "message": "İlerleme çubuğunu sürekli göster" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analizör" - }, - "appearance": { - "message": "Görünüm" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Ses" - }, - "audioFormats": { - "message": "Ses formatları" - }, - "auto": { - "message": "Otomatik" - }, - "autoFullscreen": { - "message": "Otomatik tam ekran" - }, - "autopauseWhenSwitchingTabs": { - "message": "Sekme değiştirildiğinde duraklat" - }, - "autoplay": { - "message": "Otomatik oynat" - }, - "backgroundColor": { - "message": "Arkaplan rengi" - }, - "backgroundOpacity": { - "message": "Arkaplan opaklığı" - }, - "backupAndReset": { - "message": "Yedek & sıfırla" - }, - "baseOnSystemColorScheme": { - "message": "Sistem renk şeması temelli" - }, - "belowPlayer": { - "message": "Oynatıcının altında" - }, - "black": { - "message": "Kara" - }, - "blacklist": { - "message": "Kara Liste" - }, - "blockAll": { - "message": "Tümünü engelle" - }, - "blockMusic": { - "message": "Sesi engelle" - }, - "blue": { - "message": "Mavi" - }, - "blueGray": { - "message": "Mavi gri" - }, - "bluelight": { - "message": "Mavi Işık" - }, - "brown": { - "message": "Kahverengi" - }, - "browser": { - "message": "Tarayıcı" - }, - "browserVersion": { - "message": "Tarayıcı Sürümü" - }, - "bubbles": { - "message": "Baloncuklar" - }, - "bug": { - "message": "Hata" - }, - "buttons": { - "message": "Butonlar" - }, - "cancel": { - "message": "İptal" - }, - "categories": { - "message": "Kategoriler" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanallar" - }, - "characterEdgeStyle": { - "message": "Karakter kenar stili" - }, - "clipboard": { - "message": "Pano" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Abonelik bölümlerini daralt" - }, - "collapsed": { - "message": "Daraltılmış" - }, - "comments": { - "message": "Yorumlar" - }, - "confirmationBeforeClosing": { - "message": "Kapatmadan önce uyar" - }, - "cookies": { - "message": "Çerezler" - }, - "cores": { - "message": "Çekirdekler" - }, - "cropChapterTitles": { - "message": "Bölüm başlıklarını kırp" - }, - "customCss": { - "message": "Özel CSS" - }, - "customJs": { - "message": "Özel JS" - }, - "customMiniPlayer": { - "message": "Özel Mini Oynatıcı" - }, - "cyan": { - "message": "Camgöbeği" - }, - "dark": { - "message": "Koyu" - }, - "darkTheme": { - "message": "Koyu tema" - }, - "dateAndTime": { - "message": "Tarih & zaman" - }, - "dawn": { - "message": "Şafak" - }, - "decreasePlaybackSpeed": { - "message": "Oynatma hızını azalt" - }, - "decreaseVolume": { - "message": "Sesi azalt" - }, - "deepOrange": { - "message": "Koyu turuncu" - }, - "deepPurple": { - "message": "Koyu mor" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Varsayılan kanal sekmesi" - }, - "defaultContentCountry": { - "message": "Varsayılan içerik ülkesi" - }, - "deleteWatchedVideos": { - "message": "İzlenen videoları sil" - }, - "deleteYoutubeCookies": { - "message": "YouTube çerezleri sil" - }, - "depressed": { - "message": "Bunalımlı" - }, - "description": { - "message": "Açıklama" - }, - "description_ext": { - "message": "YouTube'u düzenli+akıllı hale getirin! YouTube video renkli reklam hacmi atlama hızı kanal aracı stili HD reklamlar reklam engelleme reklam engelleyici etiketleri anahtar kelime oynatma listesi" - }, - "desert": { - "message": "Çöl" - }, - "details": { - "message": "Ayrıntılar" - }, - "developerOptions": { - "message": "Geliştirici seçenekleri" - }, - "device": { - "message": "Cihaz" - }, - "dim": { - "message": "Karart" - }, - "disabled": { - "message": "Devredışı" - }, - "dislike": { - "message": "Beğenmeme" - }, - "doNotChange": { - "message": "Değiştirme" - }, - "donate": { - "message": "Bağış" - }, - "draggable": { - "message": "Sürüklenebilir" - }, - "dropShadow": { - "message": "Düşen gölge" - }, - "email": { - "message": "Eposta" - }, - "empty": { - "message": "Boş" - }, - "enabled": { - "message": "Etkin" - }, - "enabledForced": { - "message": "Etkin (Zorla)" - }, - "expanded": { - "message": "Genişletilmiş" - }, - "exportSettings": { - "message": "Ayarları dışa aktar" - }, - "extension": { - "message": "Uzantı" - }, - "file": { - "message": "Dosya" - }, - "filters": { - "message": "Filtreler" - }, - "fitToWindow": { - "message": "Pencereye sığdır" - }, - "flash": { - "message": "Flaş" - }, - "font": { - "message": "Yazı Tipi" - }, - "fontColor": { - "message": "Yazı rengi" - }, - "fontFamily": { - "message": "Font ailesi" - }, - "fontOpacity": { - "message": "Yazı tipi opaklığı" - }, - "fontSize": { - "message": "Yazı Boyutu" - }, - "footer": { - "message": "Altbilgi" - }, - "forceSDR": { - "message": "SDR Zorla" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "En başından itibaren zorunlu oynatma videosu" - }, - "forcedPlaybackSpeed": { - "message": "Oynatma hızını uygulamaya zorla" - }, - "forcedTheaterMode": { - "message": "Sinema modunu zorla" - }, - "forcedVolume": { - "message": "Sesi zorla" - }, - "foundABug": { - "message": "Hata mı buldun?" - }, - "fullWindow": { - "message": "Tam pencere" - }, - "general": { - "message": "Genel" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Arama kutusuna git" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Yeşil" - }, - "hdThumbnail": { - "message": "HD küçük resim" - }, - "hdThumbnails": { - "message": "HD küçük resimler" - }, - "header": { - "message": "Başlık" - }, - "hidden": { - "message": "Gizli" - }, - "hiddenOnVideoPage": { - "message": "Video sayfasında gizli" - }, - "hideAnimatedThumbnails": { - "message": "Hareketli küçük resimleri gizle" - }, - "hideAnnotations": { - "message": "Ek açıklamaları gizle" - }, - "hideCards": { - "message": "Kartları gizle" - }, - "hideCountryCode": { - "message": "Ülke kodunu gizle" - }, - "hideDate": { - "message": "Tarihi gizle" - }, - "hideDetails": { - "message": "Detayları gizle" - }, - "hideEndscreen": { - "message": "Ekran sonunu gizle" - }, - "hideFeaturedContent": { - "message": "Öne çıkan içeriği gizle" - }, - "hideFooter": { - "message": "Footer'ı gizle" - }, - "hideGradientBottom": { - "message": "Gradyan Altını Gizle" - }, - "hideMoreButton": { - "message": "\"Diğer\" düğmesini gizle" - }, - "hidePlayerControlsBar": { - "message": "Oynatıcı kontrol çubuğunu gizle" - }, - "hidePlayerControlsBarButtons": { - "message": "Oynatıcı kontrolleri çubuğu düğmelerini gizle" - }, - "hidePlayerControlsBarOptions": { - "message": "Oynatıcı kontrol seçeneklerini gizle" - }, - "hidePlaylist": { - "message": "Oynatma Listesi'ni gizle" - }, - "hideRightButtons": { - "message": "Sağ butonları gizle" - }, - "hideSaveButton": { - "message": "\"Kaydet\" butonunu gizle " - }, - "hideScrollForDetails": { - "message": "«Ayrıntılar için kaydır» gizle" - }, - "hideShareButton": { - "message": "\"Paylaş\" butonunu gizle" - }, - "hideSkipOverlay": { - "message": "Yer Paylaşımını Atla Gizle" - }, - "hideThumbnailOverlay": { - "message": "Küçük resim yer paylaşımını gizle" - }, - "hideThumbnails": { - "message": "Küçük resimleri gizle" - }, - "hideViewsCount": { - "message": "Görüntüleme sayısını gizle" - }, - "hideVoiceSearchButton": { - "message": "Sesli arama düğmesini gizle" - }, - "history": { - "message": "Geçmiş" - }, - "home": { - "message": "Ana Sayfa" - }, - "hover": { - "message": "Gölge" - }, - "hoverOnVideoPage": { - "message": "Videonun Üzerinde Hover" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Video ne kadar süre önce yüklendi" - }, - "icons": { - "message": "Simgeler" - }, - "iconsOnly": { - "message": "Yalnızca simgeler" - }, - "importSettings": { - "message": "Ayarları içe aktar" - }, - "improveLogo": { - "message": "Logoyu geliştir" - }, - "improvedtubeIconOnYoutube": { - "message": "YouTube'da ImprovedTube Simgesi" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube dili" - }, - "improvedtubeVersion": { - "message": "ImprovedTube sürümü" - }, - "increasePlaybackSpeed": { - "message": "Oynatma hızını artır" - }, - "increaseVolume": { - "message": "Sesi artır" - }, - "indigo": { - "message": "Çivit" - }, - "items": { - "message": "Öğeler" - }, - "language": { - "message": "Dil" - }, - "languages": { - "message": "Diller" - }, - "legacyYoutube": { - "message": "Eski YouTube" - }, - "library": { - "message": "Kütüphane" - }, - "light": { - "message": "Açık" - }, - "lightBlue": { - "message": "Açık mavi" - }, - "lightGreen": { - "message": "Açık yeşil" - }, - "like": { - "message": "Beğen" - }, - "liked": { - "message": "Beğenildi" - }, - "likes": { - "message": "Beğeniler" - }, - "lime": { - "message": "Lime" - }, - "limitPageWidth": { - "message": "Sayfa genişliğini sınırla" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Canlı sohbet" - }, - "liveChatType": { - "message": "Canlı sohbet türü" - }, - "location": { - "message": "Konum" - }, - "loudnessNormalization": { - "message": "Gürültü normalleştirme" - }, - "markWatchedVideos": { - "message": "İzlenen videoları işaretle" - }, - "mixer": { - "message": "Karıştırıcı" - }, - "moveSidebarLeft": { - "message": "Kenar çubuğunu sola taşı" - }, - "moveThumbnailsRight": { - "message": "Küçük resimleri sağa taşı" - }, - "myColors": { - "message": "Renklerim" - }, - "name": { - "message": "İsim" - }, - "nativeMiniPlayer": { - "message": "Native mini oynatıcı" - }, - "new": { - "message": "Yeni" - }, - "nextVideo": { - "message": "Sonraki video" - }, - "night": { - "message": "Gece" - }, - "noActiveFeatures": { - "message": "Aktif özellik yok" - }, - "noOpenVideoTabs": { - "message": "Açık video sekmesi yok" - }, - "none": { - "message": "Yok" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Eski" - }, - "onAllVideos": { - "message": "Tüm videolarda" - }, - "onSubscribedChannels": { - "message": "Abone olunan kanallarda" - }, - "onlyActiveOnYoutube": { - "message": "Yalnızca YouTube'da etkin" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Sadece bir oynatıcı örneği" - }, - "orange": { - "message": "Turuncu" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Diğer" - }, - "outline": { - "message": "Ana hat" - }, - "overlay": { - "message": "Arayüz" - }, - "permissions": { - "message": "İzinler" - }, - "pictureInPicture": { - "message": "Resim içinde resim" - }, - "pink": { - "message": "Pembe" - }, - "plain": { - "message": "Sade" - }, - "platform": { - "message": "Platform" - }, - "playPause": { - "message": "Oynat / Duraklat" - }, - "playbackSpeed": { - "message": "Oynatma hızı" - }, - "player": { - "message": "Oynatıcı" - }, - "playerColor": { - "message": "Oynatıcı rengi" - }, - "playerSize": { - "message": "Oynatıcı boyutu" - }, - "playlist": { - "message": "Oynatma Listesi" - }, - "playlists": { - "message": "Oynatma Listeleri" - }, - "popupPlayer": { - "message": "Popup oynatıcı" - }, - "position": { - "message": "Konum" - }, - "pressAnyKeyOrScroll": { - "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan" - }, - "previousVideo": { - "message": "Önceki video" - }, - "primaryColor": { - "message": "Birincil renk" - }, - "purple": { - "message": "Mor" - }, - "quality": { - "message": "Kalite" - }, - "raised": { - "message": "Kabarık" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Beni oyla" - }, - "rateUs": { - "message": "Bizi oyla" - }, - "red": { - "message": "Kırmızı" - }, - "redDislikeButton": { - "message": "Beğenmeme düğmesinini kırmızı renkte göster" - }, - "relatedVideos": { - "message": "İlgili videolar" - }, - "remote": { - "message": "TV'de oynat" - }, - "removeRelatedSearchResults": { - "message": "İlgili arama sonuçlarını kaldır" - }, - "repeat": { - "message": "Tekrarla" - }, - "reset": { - "message": "Sıfırla" - }, - "resetAllSettings": { - "message": "Tüm ayarları sıfırla" - }, - "resetAllShortcuts": { - "message": "Tüm kısayolları sıfırla" - }, - "reverse": { - "message": "Ters" - }, - "rotate": { - "message": "Döndür" - }, - "save": { - "message": "Kaydet" - }, - "saveAs": { - "message": "Farklı kaydet" - }, - "schedule": { - "message": "Takvim" - }, - "screen": { - "message": "Ekran" - }, - "screenshot": { - "message": "Ekran görüntüsü" - }, - "scrollBar": { - "message": "Kaydırma çubuğu" - }, - "search": { - "message": "Ara" - }, - "searchBarOnly": { - "message": "Yalnızca arama çubuğu" - }, - "seekBackward10Seconds": { - "message": "10 saniye geriye git" - }, - "seekForward10Seconds": { - "message": "10 saniye ileriye git" - }, - "seekNextChapter": { - "message": "10 saniye geriye git" - }, - "seekPreviousChapter": { - "message": "Önceki Bölümü Ara" - }, - "settings": { - "message": "Ayarlar" - }, - "settingsSuccessfullyImported": { - "message": "Ayarlar başarıyla içe aktarıldı" - }, - "shortcuts": { - "message": "Kısayollar" - }, - "showCardsOnMouseHover": { - "message": "Fareyle üzerine gelindiğinde kartları göster" - }, - "showChannelVideosCount": { - "message": "Kanalın video sayısını göster" - }, - "showLess": { - "message": "Daha az göster" - }, - "showMore": { - "message": "Daha fazla göster" - }, - "showRemainingDuration": { - "message": "Videonun kalan süresini göster" - }, - "shuffle": { - "message": "Karıştır" - }, - "sidebar": { - "message": "Kenar çubuğu" - }, - "spacebar": { - "message": "Ara çubuğu" - }, - "squaredUserImages": { - "message": "Kare kullanıcı görüntüleri" - }, - "static": { - "message": "Statik" - }, - "statsForNerds": { - "message": "Meraklılar için istatistikler" - }, - "step": { - "message": "Adım" - }, - "stop": { - "message": "Durdur" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stiller" - }, - "subscribe": { - "message": "Abone Ol" - }, - "subscriptions": { - "message": "Aboneler" - }, - "subtitles": { - "message": "Altyazılar" - }, - "sunset": { - "message": "Gün batımı" - }, - "sunsetToSunrise": { - "message": "Gün batımından gün doğumuna" - }, - "systemPeferenceDark": { - "message": "Sistem tercihi: koyu" - }, - "systemPeferenceLight": { - "message": "Sistem tercihi: açık" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Yazı rengi" - }, - "themes": { - "message": "Temalar" - }, - "thisWillRemoveAllCookies": { - "message": "Bu, tüm çerezleri kaldıracaktır." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Bu, tüm YouTube çerezlerini kaldıracaktır." - }, - "thisWillResetAllSettings": { - "message": "Bu, tüm ayarları sıfırlayacaktır." - }, - "thisWillResetAllShortcuts": { - "message": "Bu, tüm kısayolları sıfırlayacaktır." - }, - "thumbnails": { - "message": "Küçük resimler" - }, - "timeFrom": { - "message": "Şu zamandan" - }, - "timeTo": { - "message": "Şu zamana" - }, - "todayAt": { - "message": "Bugün" - }, - "toggleAutoplay": { - "message": "Otomatik oynatmayı aç/kapat" - }, - "toggleCards": { - "message": "Kartları aç/kapat" - }, - "toggleControls": { - "message": "Kontrolleri aç/kapat" - }, - "topChat": { - "message": "En İyi Sohbet Mesajları" - }, - "trackWatchedVideos": { - "message": "İzlenen videoları takip edin" - }, - "trailerAutoplay": { - "message": "Fragman otomatik oynatımı" - }, - "translations": { - "message": "Çeviriler" - }, - "transparentBackground": { - "message": "Saydam arka plan" - }, - "trending": { - "message": "Trendler" - }, - "tryToReloadThePage": { - "message": "Sayfayı yeniden yüklemeyi deneyin" - }, - "type": { - "message": "Tip" - }, - "upNextAutoplay": { - "message": "Sonraki otomatik oynatma" - }, - "use24HourFormat": { - "message": "24 saat biçimini kullan" - }, - "version": { - "message": "Sürüm" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Kategorinin adını almak için video açıklaması genişletilecek" - }, - "videoFormats": { - "message": "Video formatları" - }, - "videos": { - "message": "Videolar" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Ses" - }, - "watchLater": { - "message": "Sonra izle" - }, - "watchTime": { - "message": "İzleme zamanı" - }, - "whenTabIsChanged": { - "message": "Sekme değiştirildiğinde" - }, - "white": { - "message": "Beyaz" - }, - "windowColor": { - "message": "Pencere rengi" - }, - "windowOpacity": { - "message": "Pencere opaklığı" - }, - "yellow": { - "message": "Sarı" - }, - "youtubeHeaderLeft": { - "message": "YouTube Header (sol)" - }, - "youtubeHeaderRight": { - "message": "YouTube Header (sağ)" - }, - "youtubeHomePage": { - "message": "YouTube ana sayfası" - }, - "youtubeLanguage": { - "message": "YouTube dili" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube, h.264 codec bileşeni için video kalitesini 1080p ile sınırlar" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Hakkında" + }, + "accept": { + "message": "Onayla" + }, + "activate": { + "message": "Aktifleştir" + }, + "activateCaptions": { + "message": "Altyazıları Aktifleştir" + }, + "activateFullscreen": { + "message": "Tam ekranı Aktifleştir" + }, + "activated": { + "message": "Aktifleştirilmiş" + }, + "activatedFeatures": { + "message": "Aktifleştirilmiş özellikler" + }, + "activeFeatures": { + "message": "Etkin özellikler" + }, + "addScrollToTop": { + "message": "«Yukarı kaydır» ekle" + }, + "ads": { + "message": "Reklamlar" + }, + "all": { + "message": "Tümü" + }, + "allow": { + "message": "İzin ver" + }, + "allow60fps": { + "message": "60fps'e izin ver" + }, + "alwaysActive": { + "message": "Sürekli etkin" + }, + "alwaysShowProgressBar": { + "message": "İlerleme çubuğunu sürekli göster" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analizör" + }, + "appearance": { + "message": "Görünüm" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "Ses" + }, + "audioFormats": { + "message": "Ses formatları" + }, + "auto": { + "message": "Otomatik" + }, + "autoFullscreen": { + "message": "Otomatik tam ekran" + }, + "autopauseWhenSwitchingTabs": { + "message": "Sekme değiştirildiğinde duraklat" + }, + "autoplay": { + "message": "Otomatik oynat" + }, + "backgroundColor": { + "message": "Arkaplan rengi" + }, + "backgroundOpacity": { + "message": "Arkaplan opaklığı" + }, + "backupAndReset": { + "message": "Yedek & sıfırla" + }, + "baseOnSystemColorScheme": { + "message": "Sistem renk şeması temelli" + }, + "belowPlayer": { + "message": "Oynatıcının altında" + }, + "black": { + "message": "Kara" + }, + "blacklist": { + "message": "Kara Liste" + }, + "blockAll": { + "message": "Tümünü engelle" + }, + "blockMusic": { + "message": "Sesi engelle" + }, + "blue": { + "message": "Mavi" + }, + "blueGray": { + "message": "Mavi gri" + }, + "bluelight": { + "message": "Mavi Işık" + }, + "brown": { + "message": "Kahverengi" + }, + "browser": { + "message": "Tarayıcı" + }, + "browserVersion": { + "message": "Tarayıcı Sürümü" + }, + "bubbles": { + "message": "Baloncuklar" + }, + "bug": { + "message": "Hata" + }, + "buttons": { + "message": "Butonlar" + }, + "cancel": { + "message": "İptal" + }, + "categories": { + "message": "Kategoriler" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanallar" + }, + "characterEdgeStyle": { + "message": "Karakter kenar stili" + }, + "clipboard": { + "message": "Pano" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Abonelik bölümlerini daralt" + }, + "collapsed": { + "message": "Daraltılmış" + }, + "comments": { + "message": "Yorumlar" + }, + "confirmationBeforeClosing": { + "message": "Kapatmadan önce uyar" + }, + "cookies": { + "message": "Çerezler" + }, + "cores": { + "message": "Çekirdekler" + }, + "cropChapterTitles": { + "message": "Bölüm başlıklarını kırp" + }, + "customCss": { + "message": "Özel CSS" + }, + "customJs": { + "message": "Özel JS" + }, + "customMiniPlayer": { + "message": "Özel Mini Oynatıcı" + }, + "cyan": { + "message": "Camgöbeği" + }, + "dark": { + "message": "Koyu" + }, + "darkTheme": { + "message": "Koyu tema" + }, + "dateAndTime": { + "message": "Tarih & zaman" + }, + "dawn": { + "message": "Şafak" + }, + "decreasePlaybackSpeed": { + "message": "Oynatma hızını azalt" + }, + "decreaseVolume": { + "message": "Sesi azalt" + }, + "deepOrange": { + "message": "Koyu turuncu" + }, + "deepPurple": { + "message": "Koyu mor" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Varsayılan kanal sekmesi" + }, + "defaultContentCountry": { + "message": "Varsayılan içerik ülkesi" + }, + "deleteWatchedVideos": { + "message": "İzlenen videoları sil" + }, + "deleteYoutubeCookies": { + "message": "YouTube çerezleri sil" + }, + "depressed": { + "message": "Bunalımlı" + }, + "description": { + "message": "Açıklama" + }, + "description_ext": { + "message": "YouTube'u düzenli+akıllı hale getirin! YouTube video renkli reklam hacmi atlama hızı kanal aracı stili HD reklamlar reklam engelleme reklam engelleyici etiketleri anahtar kelime oynatma listesi" + }, + "desert": { + "message": "Çöl" + }, + "details": { + "message": "Ayrıntılar" + }, + "developerOptions": { + "message": "Geliştirici seçenekleri" + }, + "device": { + "message": "Cihaz" + }, + "dim": { + "message": "Karart" + }, + "disabled": { + "message": "Devredışı" + }, + "dislike": { + "message": "Beğenmeme" + }, + "doNotChange": { + "message": "Değiştirme" + }, + "donate": { + "message": "Bağış" + }, + "draggable": { + "message": "Sürüklenebilir" + }, + "dropShadow": { + "message": "Düşen gölge" + }, + "email": { + "message": "Eposta" + }, + "empty": { + "message": "Boş" + }, + "enabled": { + "message": "Etkin" + }, + "enabledForced": { + "message": "Etkin (Zorla)" + }, + "expanded": { + "message": "Genişletilmiş" + }, + "exportSettings": { + "message": "Ayarları dışa aktar" + }, + "extension": { + "message": "Uzantı" + }, + "file": { + "message": "Dosya" + }, + "filters": { + "message": "Filtreler" + }, + "fitToWindow": { + "message": "Pencereye sığdır" + }, + "flash": { + "message": "Flaş" + }, + "font": { + "message": "Yazı Tipi" + }, + "fontColor": { + "message": "Yazı rengi" + }, + "fontFamily": { + "message": "Font ailesi" + }, + "fontOpacity": { + "message": "Yazı tipi opaklığı" + }, + "fontSize": { + "message": "Yazı Boyutu" + }, + "footer": { + "message": "Altbilgi" + }, + "forceSDR": { + "message": "SDR Zorla" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "En başından itibaren zorunlu oynatma videosu" + }, + "forcedPlaybackSpeed": { + "message": "Oynatma hızını uygulamaya zorla" + }, + "forcedTheaterMode": { + "message": "Sinema modunu zorla" + }, + "forcedVolume": { + "message": "Sesi zorla" + }, + "foundABug": { + "message": "Hata mı buldun?" + }, + "fullWindow": { + "message": "Tam pencere" + }, + "general": { + "message": "Genel" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Arama kutusuna git" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Yeşil" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD küçük resim" + }, + "header": { + "message": "Başlık" + }, + "hidden": { + "message": "Gizli" + }, + "hiddenOnVideoPage": { + "message": "Video sayfasında gizli" + }, + "hideAnimatedThumbnails": { + "message": "Hareketli küçük resimleri gizle" + }, + "hideAnnotations": { + "message": "Ek açıklamaları gizle" + }, + "hideCards": { + "message": "Kartları gizle" + }, + "hideCountryCode": { + "message": "Ülke kodunu gizle" + }, + "hideDate": { + "message": "Tarihi gizle" + }, + "hideDetails": { + "message": "Detayları gizle" + }, + "hideEndscreen": { + "message": "Ekran sonunu gizle" + }, + "hideFeaturedContent": { + "message": "Öne çıkan içeriği gizle" + }, + "hideFooter": { + "message": "Footer'ı gizle" + }, + "hideGradientBottom": { + "message": "Gradyan Altını Gizle" + }, + "hideMoreButton": { + "message": "\"Diğer\" düğmesini gizle" + }, + "hidePlayerControlsBar": { + "message": "Oynatıcı kontrol çubuğunu gizle" + }, + "hidePlayerControlsBarButtons": { + "message": "Oynatıcı kontrolleri çubuğu düğmelerini gizle" + }, + "hidePlayerControlsBarOptions": { + "message": "Oynatıcı kontrol seçeneklerini gizle" + }, + "hidePlaylist": { + "message": "Oynatma Listesi'ni gizle" + }, + "hideRightButtons": { + "message": "Sağ butonları gizle" + }, + "hideSaveButton": { + "message": "\"Kaydet\" butonunu gizle " + }, + "hideScrollForDetails": { + "message": "«Ayrıntılar için kaydır» gizle" + }, + "hideShareButton": { + "message": "\"Paylaş\" butonunu gizle" + }, + "hideSkipOverlay": { + "message": "Yer Paylaşımını Atla Gizle" + }, + "hideThumbnailOverlay": { + "message": "Küçük resim yer paylaşımını gizle" + }, + "hideThumbnails": { + "message": "Küçük resimleri gizle" + }, + "hideViewsCount": { + "message": "Görüntüleme sayısını gizle" + }, + "hideVoiceSearchButton": { + "message": "Sesli arama düğmesini gizle" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Geçmiş" + }, + "home": { + "message": "Ana Sayfa" + }, + "hover": { + "message": "Gölge" + }, + "hoverOnVideoPage": { + "message": "Videonun Üzerinde Hover" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Video ne kadar süre önce yüklendi" + }, + "icons": { + "message": "Simgeler" + }, + "iconsOnly": { + "message": "Yalnızca simgeler" + }, + "importSettings": { + "message": "Ayarları içe aktar" + }, + "improveLogo": { + "message": "Logoyu geliştir" + }, + "improvedtubeIconOnYoutube": { + "message": "YouTube'da ImprovedTube Simgesi" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube dili" + }, + "improvedtubeVersion": { + "message": "ImprovedTube sürümü" + }, + "increasePlaybackSpeed": { + "message": "Oynatma hızını artır" + }, + "increaseVolume": { + "message": "Sesi artır" + }, + "indigo": { + "message": "Çivit" + }, + "items": { + "message": "Öğeler" + }, + "language": { + "message": "Dil" + }, + "languages": { + "message": "Diller" + }, + "legacyYoutube": { + "message": "Eski YouTube" + }, + "library": { + "message": "Kütüphane" + }, + "light": { + "message": "Açık" + }, + "lightBlue": { + "message": "Açık mavi" + }, + "lightGreen": { + "message": "Açık yeşil" + }, + "like": { + "message": "Beğen" + }, + "liked": { + "message": "Beğenildi" + }, + "likes": { + "message": "Beğeniler" + }, + "lime": { + "message": "Lime" + }, + "limitPageWidth": { + "message": "Sayfa genişliğini sınırla" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Canlı sohbet" + }, + "liveChatType": { + "message": "Canlı sohbet türü" + }, + "location": { + "message": "Konum" + }, + "loudnessNormalization": { + "message": "Gürültü normalleştirme" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "İzlenen videoları işaretle" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Karıştırıcı" + }, + "moveSidebarLeft": { + "message": "Kenar çubuğunu sola taşı" + }, + "moveThumbnailsRight": { + "message": "Küçük resimleri sağa taşı" + }, + "myColors": { + "message": "Renklerim" + }, + "name": { + "message": "İsim" + }, + "nativeMiniPlayer": { + "message": "Native mini oynatıcı" + }, + "new": { + "message": "Yeni" + }, + "nextVideo": { + "message": "Sonraki video" + }, + "night": { + "message": "Gece" + }, + "noActiveFeatures": { + "message": "Aktif özellik yok" + }, + "noOpenVideoTabs": { + "message": "Açık video sekmesi yok" + }, + "none": { + "message": "Yok" + }, + "normal": { + "message": "Normal" + }, + "old": { + "message": "Eski" + }, + "onAllVideos": { + "message": "Tüm videolarda" + }, + "onSubscribedChannels": { + "message": "Abone olunan kanallarda" + }, + "onlyActiveOnYoutube": { + "message": "Yalnızca YouTube'da etkin" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Sadece bir oynatıcı örneği" + }, + "orange": { + "message": "Turuncu" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Diğer" + }, + "outline": { + "message": "Ana hat" + }, + "overlay": { + "message": "Arayüz" + }, + "permissions": { + "message": "İzinler" + }, + "pictureInPicture": { + "message": "Resim içinde resim" + }, + "pink": { + "message": "Pembe" + }, + "plain": { + "message": "Sade" + }, + "platform": { + "message": "Platform" + }, + "playPause": { + "message": "Oynat / Duraklat" + }, + "playbackSpeed": { + "message": "Oynatma hızı" + }, + "player": { + "message": "Oynatıcı" + }, + "playerColor": { + "message": "Oynatıcı rengi" + }, + "playerSize": { + "message": "Oynatıcı boyutu" + }, + "playlist": { + "message": "Oynatma Listesi" + }, + "playlists": { + "message": "Oynatma Listeleri" + }, + "popupPlayer": { + "message": "Popup oynatıcı" + }, + "position": { + "message": "Konum" + }, + "pressAnyKeyOrScroll": { + "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan" + }, + "previousVideo": { + "message": "Önceki video" + }, + "primaryColor": { + "message": "Birincil renk" + }, + "purple": { + "message": "Mor" + }, + "quality": { + "message": "Kalite" + }, + "raised": { + "message": "Kabarık" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Beni oyla" + }, + "rateUs": { + "message": "Bizi oyla" + }, + "red": { + "message": "Kırmızı" + }, + "redDislikeButton": { + "message": "Beğenmeme düğmesinini kırmızı renkte göster" + }, + "relatedVideos": { + "message": "İlgili videolar" + }, + "remote": { + "message": "TV'de oynat" + }, + "removeRelatedSearchResults": { + "message": "İlgili arama sonuçlarını kaldır" + }, + "repeat": { + "message": "Tekrarla" + }, + "reset": { + "message": "Sıfırla" + }, + "resetAllSettings": { + "message": "Tüm ayarları sıfırla" + }, + "resetAllShortcuts": { + "message": "Tüm kısayolları sıfırla" + }, + "reverse": { + "message": "Ters" + }, + "rotate": { + "message": "Döndür" + }, + "save": { + "message": "Kaydet" + }, + "saveAs": { + "message": "Farklı kaydet" + }, + "schedule": { + "message": "Takvim" + }, + "screen": { + "message": "Ekran" + }, + "screenshot": { + "message": "Ekran görüntüsü" + }, + "scrollBar": { + "message": "Kaydırma çubuğu" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Ara" + }, + "searchBarOnly": { + "message": "Yalnızca arama çubuğu" + }, + "seekBackward10Seconds": { + "message": "10 saniye geriye git" + }, + "seekForward10Seconds": { + "message": "10 saniye ileriye git" + }, + "seekNextChapter": { + "message": "10 saniye geriye git" + }, + "seekPreviousChapter": { + "message": "Önceki Bölümü Ara" + }, + "settings": { + "message": "Ayarlar" + }, + "settingsSuccessfullyImported": { + "message": "Ayarlar başarıyla içe aktarıldı" + }, + "shortcuts": { + "message": "Kısayollar" + }, + "showCardsOnMouseHover": { + "message": "Fareyle üzerine gelindiğinde kartları göster" + }, + "showChannelVideosCount": { + "message": "Kanalın video sayısını göster" + }, + "showLess": { + "message": "Daha az göster" + }, + "showMore": { + "message": "Daha fazla göster" + }, + "showRemainingDuration": { + "message": "Videonun kalan süresini göster" + }, + "shuffle": { + "message": "Karıştır" + }, + "sidebar": { + "message": "Kenar çubuğu" + }, + "spacebar": { + "message": "Ara çubuğu" + }, + "squaredUserImages": { + "message": "Kare kullanıcı görüntüleri" + }, + "static": { + "message": "Statik" + }, + "statsForNerds": { + "message": "Meraklılar için istatistikler" + }, + "step": { + "message": "Adım" + }, + "stop": { + "message": "Durdur" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stiller" + }, + "subscribe": { + "message": "Abone Ol" + }, + "subscriptions": { + "message": "Aboneler" + }, + "subtitles": { + "message": "Altyazılar" + }, + "sunset": { + "message": "Gün batımı" + }, + "sunsetToSunrise": { + "message": "Gün batımından gün doğumuna" + }, + "systemPeferenceDark": { + "message": "Sistem tercihi: koyu" + }, + "systemPeferenceLight": { + "message": "Sistem tercihi: açık" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Yazı rengi" + }, + "themes": { + "message": "Temalar" + }, + "thisWillRemoveAllCookies": { + "message": "Bu, tüm çerezleri kaldıracaktır." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Bu, tüm YouTube çerezlerini kaldıracaktır." + }, + "thisWillResetAllSettings": { + "message": "Bu, tüm ayarları sıfırlayacaktır." + }, + "thisWillResetAllShortcuts": { + "message": "Bu, tüm kısayolları sıfırlayacaktır." + }, + "thumbnails": { + "message": "Küçük resimler" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Şu zamandan" + }, + "timeTo": { + "message": "Şu zamana" + }, + "todayAt": { + "message": "Bugün" + }, + "toggleAutoplay": { + "message": "Otomatik oynatmayı aç/kapat" + }, + "toggleCards": { + "message": "Kartları aç/kapat" + }, + "toggleControls": { + "message": "Kontrolleri aç/kapat" + }, + "topChat": { + "message": "En İyi Sohbet Mesajları" + }, + "trackWatchedVideos": { + "message": "İzlenen videoları takip edin" + }, + "trailerAutoplay": { + "message": "Fragman otomatik oynatımı" + }, + "translations": { + "message": "Çeviriler" + }, + "transparentBackground": { + "message": "Saydam arka plan" + }, + "trending": { + "message": "Trendler" + }, + "tryToReloadThePage": { + "message": "Sayfayı yeniden yüklemeyi deneyin" + }, + "type": { + "message": "Tip" + }, + "upNextAutoplay": { + "message": "Sonraki otomatik oynatma" + }, + "use24HourFormat": { + "message": "24 saat biçimini kullan" + }, + "version": { + "message": "Sürüm" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Kategorinin adını almak için video açıklaması genişletilecek" + }, + "videoFormats": { + "message": "Video formatları" + }, + "videos": { + "message": "Videolar" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Ses" + }, + "watchLater": { + "message": "Sonra izle" + }, + "watchTime": { + "message": "İzleme zamanı" + }, + "whenTabIsChanged": { + "message": "Sekme değiştirildiğinde" + }, + "white": { + "message": "Beyaz" + }, + "windowColor": { + "message": "Pencere rengi" + }, + "windowOpacity": { + "message": "Pencere opaklığı" + }, + "yellow": { + "message": "Sarı" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (sol)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (sağ)" + }, + "youtubeHomePage": { + "message": "YouTube ana sayfası" + }, + "youtubeLanguage": { + "message": "YouTube dili" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube, h.264 codec bileşeni için video kalitesini 1080p ile sınırlar" + } } \ No newline at end of file diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 427c8068f..a1eef4aab 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -1,983 +1,998 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "关于" - }, - "accept": { - "message": "接受" - }, - "activate": { - "message": "启用" - }, - "activateCaptions": { - "message": "启用字幕" - }, - "activateFullscreen": { - "message": "启用全屏" - }, - "activated": { - "message": "启用" - }, - "activatedFeatures": { - "message": "已启用功能" - }, - "activeFeatures": { - "message": "启用功能" - }, - "addScrollToTop": { - "message": "增加【返回顶部】按钮" - }, - "ads": { - "message": "广告" - }, - "all": { - "message": "所有" - }, - "allow": { - "message": "允许" - }, - "allow60fps": { - "message": "允许60FPS" - }, - "alwaysActive": { - "message": "始终启用" - }, - "alwaysShowProgressBar": { - "message": "始终显示进度条" - }, - "amber": { - "message": "琥珀色" - }, - "analyzer": { - "message": "分析仪" - }, - "appearance": { - "message": "外观" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "音频" - }, - "audioFormats": { - "message": "音频格式" - }, - "auto": { - "message": "自动" - }, - "autoFullscreen": { - "message": "自动全屏" - }, - "autopauseWhenSwitchingTabs": { - "message": "切换标签时暂停播放" - }, - "autoplay": { - "message": "自动播放" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "备份与恢复" - }, - "baseOnSystemColorScheme": { - "message": "使用系统配色" - }, - "belowPlayer": { - "message": "在播放器下方" - }, - "black": { - "message": "纯黑" - }, - "blacklist": { - "message": "黑名单" - }, - "blockAll": { - "message": "拦截所有" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "蓝色" - }, - "blueGray": { - "message": "蓝灰色" - }, - "bluelight": { - "message": "色彩柔和度" - }, - "brown": { - "message": "棕色" - }, - "browser": { - "message": "浏览器" - }, - "browserVersion": { - "message": "浏览器版本" - }, - "bubbles": { - "message": "网格" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "按钮" - }, - "cancel": { - "message": "取消" - }, - "categories": { - "message": "分类" - }, - "channel": { - "message": "频道" - }, - "channels": { - "message": "频道" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "粘贴板" - }, - "codecH264": { - "message": "采用 h.264 编码" - }, - "collapseOfSubscriptionSections": { - "message": "订阅区域显示展开/收起按钮" - }, - "collapsed": { - "message": "收起" - }, - "comments": { - "message": "评论" - }, - "confirmationBeforeClosing": { - "message": "页面关闭确认" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "核心" - }, - "cropChapterTitles": { - "message": "裁剪章节标题" - }, - "customCss": { - "message": "自定义CSS" - }, - "customJs": { - "message": "自定义JS" - }, - "customMiniPlayer": { - "message": "自定义迷你播放器" - }, - "cyan": { - "message": "青色" - }, - "dark": { - "message": "黑暗" - }, - "darkTheme": { - "message": "夜间模式" - }, - "dateAndTime": { - "message": "时间与日期" - }, - "dawn": { - "message": "黎明" - }, - "decreasePlaybackSpeed": { - "message": "视频减速" - }, - "decreaseVolume": { - "message": "降低音量" - }, - "deepOrange": { - "message": "深橙色" - }, - "deepPurple": { - "message": "深紫色" - }, - "default": { - "message": "默认" - }, - "defaultChannelTab": { - "message": "默认频道页" - }, - "defaultContentCountry": { - "message": "默认内容国家" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "清空 YouTube cookies" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "视频描述" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "沙漠" - }, - "details": { - "message": "细节信息" - }, - "developerOptions": { - "message": "开发者选项" - }, - "device": { - "message": "设备" - }, - "dim": { - "message": "遮罩层厚度" - }, - "disabled": { - "message": "停用" - }, - "dislike": { - "message": "踩一下" - }, - "doNotChange": { - "message": "不做改变" - }, - "donate": { - "message": "支持" - }, - "draggable": { - "message": "可拖动" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "暂无" - }, - "enabled": { - "message": "启用" - }, - "enabledForced": { - "message": "强制启用" - }, - "expanded": { - "message": "展开" - }, - "exportSettings": { - "message": "导出设置" - }, - "extension": { - "message": "扩展" - }, - "file": { - "message": "文件" - }, - "filters": { - "message": "滤镜" - }, - "fitToWindow": { - "message": "窗口自适应" - }, - "flash": { - "message": "闪光" - }, - "font": { - "message": "字体" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "底部栏" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "强制设置播放速度" - }, - "forcedTheaterMode": { - "message": "强制设置剧场模式" - }, - "forcedVolume": { - "message": "强制修改音量" - }, - "foundABug": { - "message": "遇到了Bug?" - }, - "fullWindow": { - "message": "全屏" - }, - "general": { - "message": "一般设置" - }, - "geoPreference": { - "message": "地理偏好" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "转到搜索框" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "绿色" - }, - "hdThumbnail": { - "message": "高清缩略图" - }, - "hdThumbnails": { - "message": "高清缩略图" - }, - "header": { - "message": "顶部栏" - }, - "hidden": { - "message": "隐藏" - }, - "hiddenOnVideoPage": { - "message": "在视频播放页面时隐藏" - }, - "hideAnimatedThumbnails": { - "message": "隐藏动态缩略图" - }, - "hideAnnotations": { - "message": "隐藏预览图" - }, - "hideCards": { - "message": "隐藏信息卡片" - }, - "hideCountryCode": { - "message": "隐藏国家代码" - }, - "hideDate": { - "message": "隐藏日期" - }, - "hideDetails": { - "message": "隐藏详细信息" - }, - "hideEndscreen": { - "message": "隐藏结束画面" - }, - "hideFeaturedContent": { - "message": "隐藏精选频道" - }, - "hideFooter": { - "message": "隐藏底部栏" - }, - "hideGradientBottom": { - "message": "隐藏底部渐变层" - }, - "hideMoreButton": { - "message": "隐藏 \"更多\" 按钮" - }, - "hidePlayerControlsBar": { - "message": "隐藏播放器控制栏" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "隐藏播放列表" - }, - "hideRightButtons": { - "message": "隐藏右侧按钮" - }, - "hideSaveButton": { - "message": "隐藏 \"保存\"按钮" - }, - "hideScrollForDetails": { - "message": "隐藏 «滚动至详细信息»" - }, - "hideShareButton": { - "message": "隐藏\"共享\"按钮" - }, - "hideSkipOverlay": { - "message": "隐藏跳过叠加" - }, - "hideThumbnailOverlay": { - "message": "隐藏缩略图上的按钮" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "隐藏观看量" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "历史记录" - }, - "home": { - "message": "首页" - }, - "hover": { - "message": "悬浮" - }, - "hoverOnVideoPage": { - "message": "在视频播放页面时悬浮显示" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "投稿于多久之前" - }, - "icons": { - "message": "图标" - }, - "iconsOnly": { - "message": "仅显示图标" - }, - "importSettings": { - "message": "导入设置" - }, - "improveLogo": { - "message": "优化图标" - }, - "improvedtubeIconOnYoutube": { - "message": "在 YouTube 显示 ImprovedTube 图标" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube 语言" - }, - "improvedtubeVersion": { - "message": "ImprovedTube 版本" - }, - "increasePlaybackSpeed": { - "message": "视频加速" - }, - "increaseVolume": { - "message": "增加音量" - }, - "indigo": { - "message": "靛青色" - }, - "items": { - "message": "项目" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "语言" - }, - "legacyYoutube": { - "message": "旧版 YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "明亮" - }, - "lightBlue": { - "message": "浅蓝色" - }, - "lightGreen": { - "message": "浅绿色" - }, - "like": { - "message": "顶一下" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "顶/踩总数" - }, - "lime": { - "message": "石灰色" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "列表" - }, - "liveChat": { - "message": "实时聊天窗" - }, - "liveChatType": { - "message": "实时聊天窗类型" - }, - "location": { - "message": "地点" - }, - "loudnessNormalization": { - "message": "音量标准化" - }, - "markWatchedVideos": { - "message": "标记为已观看" - }, - "mixer": { - "message": "混音器" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "自定义颜色" - }, - "name": { - "message": "名字" - }, - "nativeMiniPlayer": { - "message": "原版迷你播放器" - }, - "new": { - "message": "新的" - }, - "nextVideo": { - "message": "上一个视频" - }, - "night": { - "message": "夜色" - }, - "noActiveFeatures": { - "message": "没有已启用的功能" - }, - "noOpenVideoTabs": { - "message": "没有已打开的视频标签" - }, - "none": { - "message": "无" - }, - "normal": { - "message": "正常" - }, - "old": { - "message": "旧版" - }, - "onAllVideos": { - "message": "在所有视频" - }, - "onSubscribedChannels": { - "message": "在订阅频道" - }, - "onlyActiveOnYoutube": { - "message": "仅在 YouTube 上启用" - }, - "onlyOnePlayerInstancePlaying": { - "message": "同时仅播放一个" - }, - "openPopupPlayer": { - "message": "在新窗口打开视频/播放列表" - }, - "orange": { - "message": "橙色" - }, - "os": { - "message": "操作系统" - }, - "other": { - "message": "其他" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "许可" - }, - "pictureInPicture": { - "message": "画中画" - }, - "pink": { - "message": "粉色" - }, - "plain": { - "message": "野外" - }, - "platform": { - "message": "平台" - }, - "playPause": { - "message": "播放/暂停" - }, - "playbackSpeed": { - "message": "播放速度" - }, - "player": { - "message": "播放器" - }, - "playerColor": { - "message": "播放器颜色" - }, - "playerSize": { - "message": "播放器大小" - }, - "playlist": { - "message": "播放列表" - }, - "playlists": { - "message": "稍后观看" - }, - "popupPlayer": { - "message": "弹出播放器" - }, - "position": { - "message": "位置" - }, - "pressAnyKeyOrScroll": { - "message": "按下任意键或滚动鼠标滚轴." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "按下任意键或鼠标滚轴." - }, - "previousVideo": { - "message": "下一个视频" - }, - "primaryColor": { - "message": "主色调" - }, - "purple": { - "message": "紫色" - }, - "quality": { - "message": "画质" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "给我们评价" - }, - "red": { - "message": "红色" - }, - "redDislikeButton": { - "message": "将【踩一下】设置为红色" - }, - "relatedVideos": { - "message": "相关视频" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "隐藏搜索相关结果" - }, - "repeat": { - "message": "循环" - }, - "reset": { - "message": "重置" - }, - "resetAllSettings": { - "message": "重置所有设置" - }, - "resetAllShortcuts": { - "message": "重置所有快捷键" - }, - "reverse": { - "message": "逆序" - }, - "rotate": { - "message": "旋转" - }, - "save": { - "message": "保存" - }, - "saveAs": { - "message": "另存为" - }, - "schedule": { - "message": "定时开/关" - }, - "screen": { - "message": "屏幕" - }, - "screenshot": { - "message": "截图" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "搜索" - }, - "searchBarOnly": { - "message": "仅搜索栏" - }, - "seekBackward10Seconds": { - "message": "倒退10秒" - }, - "seekForward10Seconds": { - "message": "快进10秒" - }, - "seekNextChapter": { - "message": "寻找下一章" - }, - "seekPreviousChapter": { - "message": "寻找上一章" - }, - "settings": { - "message": "ImprovedTube 设置" - }, - "settingsSuccessfullyImported": { - "message": "设置导入成功" - }, - "shortcuts": { - "message": "快捷键" - }, - "showCardsOnMouseHover": { - "message": "鼠标悬浮时显示信息卡片" - }, - "showChannelVideosCount": { - "message": "显示频道内视频数" - }, - "showLess": { - "message": "显示较少" - }, - "showMore": { - "message": "展示更多" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "随机" - }, - "sidebar": { - "message": "侧边栏" - }, - "spacebar": { - "message": "空格" - }, - "squaredUserImages": { - "message": "方形用户头像" - }, - "static": { - "message": "静态" - }, - "statsForNerds": { - "message": "显示专业信息" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "停止" - }, - "style": { - "message": "样式" - }, - "styles": { - "message": "样式" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "订阅内容" - }, - "subtitles": { - "message": "副标题" - }, - "sunset": { - "message": "晚霞" - }, - "sunsetToSunrise": { - "message": "日落到日出" - }, - "systemPeferenceDark": { - "message": "系统偏好: 深色" - }, - "systemPeferenceLight": { - "message": "系统偏好: 浅色" - }, - "teal": { - "message": "蓝绿色" - }, - "textColor": { - "message": "文字颜色" - }, - "themes": { - "message": "主题" - }, - "thisWillRemoveAllCookies": { - "message": "将清空所有 cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "将清空所有 YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "将重置所有设置." - }, - "thisWillResetAllShortcuts": { - "message": "将会重置所有快捷键" - }, - "thumbnails": { - "message": "缩略图" - }, - "timeFrom": { - "message": "开始时间" - }, - "timeTo": { - "message": "结束时间" - }, - "todayAt": { - "message": "截止今天" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "切换卡片" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "热门聊天" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "自动播放预告片" - }, - "translations": { - "message": "翻译" - }, - "transparentBackground": { - "message": "透明背景" - }, - "trending": { - "message": "时下流行" - }, - "tryToReloadThePage": { - "message": "尝试刷新页面" - }, - "turnOff": { - "message": "关闭时间" - }, - "turnOn": { - "message": "开启时间" - }, - "type": { - "message": "类型" - }, - "upNextAutoplay": { - "message": "自动播放下一视频" - }, - "use24HourFormat": { - "message": "使用24小时制" - }, - "version": { - "message": "版本" - }, - "video": { - "message": "视频" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "扩展视频简介到分类" - }, - "videoFormats": { - "message": "视频格式" - }, - "videos": { - "message": "视频" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "音量" - }, - "watchLater": { - "message": "稍后观看" - }, - "watchTime": { - "message": "观看时间" - }, - "whenTabIsChanged": { - "message": "切换标签时" - }, - "white": { - "message": "白色" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "黄色" - }, - "youtubeHeaderLeft": { - "message": "Youtube标题(左)" - }, - "youtubeHeaderRight": { - "message": "Youtube标题(右)" - }, - "youtubeHomePage": { - "message": "YouTube默认主页" - }, - "youtubeLanguage": { - "message": "YouTube 语言" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "采用 H.264 编解码时,YouTube 会将视频画质设为 1080p" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "关于" + }, + "accept": { + "message": "接受" + }, + "activate": { + "message": "启用" + }, + "activateCaptions": { + "message": "启用字幕" + }, + "activateFullscreen": { + "message": "启用全屏" + }, + "activated": { + "message": "启用" + }, + "activatedFeatures": { + "message": "已启用功能" + }, + "activeFeatures": { + "message": "启用功能" + }, + "addScrollToTop": { + "message": "增加【返回顶部】按钮" + }, + "ads": { + "message": "广告" + }, + "all": { + "message": "所有" + }, + "allow": { + "message": "允许" + }, + "allow60fps": { + "message": "允许60FPS" + }, + "alwaysActive": { + "message": "始终启用" + }, + "alwaysShowProgressBar": { + "message": "始终显示进度条" + }, + "amber": { + "message": "琥珀色" + }, + "analyzer": { + "message": "分析仪" + }, + "appearance": { + "message": "外观" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "音频" + }, + "audioFormats": { + "message": "音频格式" + }, + "auto": { + "message": "自动" + }, + "autoFullscreen": { + "message": "自动全屏" + }, + "autopauseWhenSwitchingTabs": { + "message": "切换标签时暂停播放" + }, + "autoplay": { + "message": "自动播放" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "备份与恢复" + }, + "baseOnSystemColorScheme": { + "message": "使用系统配色" + }, + "belowPlayer": { + "message": "在播放器下方" + }, + "black": { + "message": "纯黑" + }, + "blacklist": { + "message": "黑名单" + }, + "blockAll": { + "message": "拦截所有" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "蓝色" + }, + "blueGray": { + "message": "蓝灰色" + }, + "bluelight": { + "message": "色彩柔和度" + }, + "brown": { + "message": "棕色" + }, + "browser": { + "message": "浏览器" + }, + "browserVersion": { + "message": "浏览器版本" + }, + "bubbles": { + "message": "网格" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "按钮" + }, + "cancel": { + "message": "取消" + }, + "categories": { + "message": "分类" + }, + "channel": { + "message": "频道" + }, + "channels": { + "message": "频道" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "粘贴板" + }, + "codecH264": { + "message": "采用 h.264 编码" + }, + "collapseOfSubscriptionSections": { + "message": "订阅区域显示展开/收起按钮" + }, + "collapsed": { + "message": "收起" + }, + "comments": { + "message": "评论" + }, + "confirmationBeforeClosing": { + "message": "页面关闭确认" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "核心" + }, + "cropChapterTitles": { + "message": "裁剪章节标题" + }, + "customCss": { + "message": "自定义CSS" + }, + "customJs": { + "message": "自定义JS" + }, + "customMiniPlayer": { + "message": "自定义迷你播放器" + }, + "cyan": { + "message": "青色" + }, + "dark": { + "message": "黑暗" + }, + "darkTheme": { + "message": "夜间模式" + }, + "dateAndTime": { + "message": "时间与日期" + }, + "dawn": { + "message": "黎明" + }, + "decreasePlaybackSpeed": { + "message": "视频减速" + }, + "decreaseVolume": { + "message": "降低音量" + }, + "deepOrange": { + "message": "深橙色" + }, + "deepPurple": { + "message": "深紫色" + }, + "default": { + "message": "默认" + }, + "defaultChannelTab": { + "message": "默认频道页" + }, + "defaultContentCountry": { + "message": "默认内容国家" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "清空 YouTube cookies" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "视频描述" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "沙漠" + }, + "details": { + "message": "细节信息" + }, + "developerOptions": { + "message": "开发者选项" + }, + "device": { + "message": "设备" + }, + "dim": { + "message": "遮罩层厚度" + }, + "disabled": { + "message": "停用" + }, + "dislike": { + "message": "踩一下" + }, + "doNotChange": { + "message": "不做改变" + }, + "donate": { + "message": "支持" + }, + "draggable": { + "message": "可拖动" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "暂无" + }, + "enabled": { + "message": "启用" + }, + "enabledForced": { + "message": "强制启用" + }, + "expanded": { + "message": "展开" + }, + "exportSettings": { + "message": "导出设置" + }, + "extension": { + "message": "扩展" + }, + "file": { + "message": "文件" + }, + "filters": { + "message": "滤镜" + }, + "fitToWindow": { + "message": "窗口自适应" + }, + "flash": { + "message": "闪光" + }, + "font": { + "message": "字体" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "底部栏" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "强制设置播放速度" + }, + "forcedTheaterMode": { + "message": "强制设置剧场模式" + }, + "forcedVolume": { + "message": "强制修改音量" + }, + "foundABug": { + "message": "遇到了Bug?" + }, + "fullWindow": { + "message": "全屏" + }, + "general": { + "message": "一般设置" + }, + "geoPreference": { + "message": "地理偏好" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "转到搜索框" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "绿色" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "高清缩略图" + }, + "header": { + "message": "顶部栏" + }, + "hidden": { + "message": "隐藏" + }, + "hiddenOnVideoPage": { + "message": "在视频播放页面时隐藏" + }, + "hideAnimatedThumbnails": { + "message": "隐藏动态缩略图" + }, + "hideAnnotations": { + "message": "隐藏预览图" + }, + "hideCards": { + "message": "隐藏信息卡片" + }, + "hideCountryCode": { + "message": "隐藏国家代码" + }, + "hideDate": { + "message": "隐藏日期" + }, + "hideDetails": { + "message": "隐藏详细信息" + }, + "hideEndscreen": { + "message": "隐藏结束画面" + }, + "hideFeaturedContent": { + "message": "隐藏精选频道" + }, + "hideFooter": { + "message": "隐藏底部栏" + }, + "hideGradientBottom": { + "message": "隐藏底部渐变层" + }, + "hideMoreButton": { + "message": "隐藏 \"更多\" 按钮" + }, + "hidePlayerControlsBar": { + "message": "隐藏播放器控制栏" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "隐藏播放列表" + }, + "hideRightButtons": { + "message": "隐藏右侧按钮" + }, + "hideSaveButton": { + "message": "隐藏 \"保存\"按钮" + }, + "hideScrollForDetails": { + "message": "隐藏 «滚动至详细信息»" + }, + "hideShareButton": { + "message": "隐藏\"共享\"按钮" + }, + "hideSkipOverlay": { + "message": "隐藏跳过叠加" + }, + "hideThumbnailOverlay": { + "message": "隐藏缩略图上的按钮" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "隐藏观看量" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "历史记录" + }, + "home": { + "message": "首页" + }, + "hover": { + "message": "悬浮" + }, + "hoverOnVideoPage": { + "message": "在视频播放页面时悬浮显示" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "投稿于多久之前" + }, + "icons": { + "message": "图标" + }, + "iconsOnly": { + "message": "仅显示图标" + }, + "importSettings": { + "message": "导入设置" + }, + "improveLogo": { + "message": "优化图标" + }, + "improvedtubeIconOnYoutube": { + "message": "在 YouTube 显示 ImprovedTube 图标" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube 语言" + }, + "improvedtubeVersion": { + "message": "ImprovedTube 版本" + }, + "increasePlaybackSpeed": { + "message": "视频加速" + }, + "increaseVolume": { + "message": "增加音量" + }, + "indigo": { + "message": "靛青色" + }, + "items": { + "message": "项目" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "语言" + }, + "legacyYoutube": { + "message": "旧版 YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "明亮" + }, + "lightBlue": { + "message": "浅蓝色" + }, + "lightGreen": { + "message": "浅绿色" + }, + "like": { + "message": "顶一下" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "顶/踩总数" + }, + "lime": { + "message": "石灰色" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "列表" + }, + "liveChat": { + "message": "实时聊天窗" + }, + "liveChatType": { + "message": "实时聊天窗类型" + }, + "location": { + "message": "地点" + }, + "loudnessNormalization": { + "message": "音量标准化" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "标记为已观看" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "混音器" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "自定义颜色" + }, + "name": { + "message": "名字" + }, + "nativeMiniPlayer": { + "message": "原版迷你播放器" + }, + "new": { + "message": "新的" + }, + "nextVideo": { + "message": "上一个视频" + }, + "night": { + "message": "夜色" + }, + "noActiveFeatures": { + "message": "没有已启用的功能" + }, + "noOpenVideoTabs": { + "message": "没有已打开的视频标签" + }, + "none": { + "message": "无" + }, + "normal": { + "message": "正常" + }, + "old": { + "message": "旧版" + }, + "onAllVideos": { + "message": "在所有视频" + }, + "onSubscribedChannels": { + "message": "在订阅频道" + }, + "onlyActiveOnYoutube": { + "message": "仅在 YouTube 上启用" + }, + "onlyOnePlayerInstancePlaying": { + "message": "同时仅播放一个" + }, + "openPopupPlayer": { + "message": "在新窗口打开视频/播放列表" + }, + "orange": { + "message": "橙色" + }, + "os": { + "message": "操作系统" + }, + "other": { + "message": "其他" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "许可" + }, + "pictureInPicture": { + "message": "画中画" + }, + "pink": { + "message": "粉色" + }, + "plain": { + "message": "野外" + }, + "platform": { + "message": "平台" + }, + "playPause": { + "message": "播放/暂停" + }, + "playbackSpeed": { + "message": "播放速度" + }, + "player": { + "message": "播放器" + }, + "playerColor": { + "message": "播放器颜色" + }, + "playerSize": { + "message": "播放器大小" + }, + "playlist": { + "message": "播放列表" + }, + "playlists": { + "message": "稍后观看" + }, + "popupPlayer": { + "message": "弹出播放器" + }, + "position": { + "message": "位置" + }, + "pressAnyKeyOrScroll": { + "message": "按下任意键或滚动鼠标滚轴." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "按下任意键或鼠标滚轴." + }, + "previousVideo": { + "message": "下一个视频" + }, + "primaryColor": { + "message": "主色调" + }, + "purple": { + "message": "紫色" + }, + "quality": { + "message": "画质" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "给我们评价" + }, + "red": { + "message": "红色" + }, + "redDislikeButton": { + "message": "将【踩一下】设置为红色" + }, + "relatedVideos": { + "message": "相关视频" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "隐藏搜索相关结果" + }, + "repeat": { + "message": "循环" + }, + "reset": { + "message": "重置" + }, + "resetAllSettings": { + "message": "重置所有设置" + }, + "resetAllShortcuts": { + "message": "重置所有快捷键" + }, + "reverse": { + "message": "逆序" + }, + "rotate": { + "message": "旋转" + }, + "save": { + "message": "保存" + }, + "saveAs": { + "message": "另存为" + }, + "schedule": { + "message": "定时开/关" + }, + "screen": { + "message": "屏幕" + }, + "screenshot": { + "message": "截图" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "搜索" + }, + "searchBarOnly": { + "message": "仅搜索栏" + }, + "seekBackward10Seconds": { + "message": "倒退10秒" + }, + "seekForward10Seconds": { + "message": "快进10秒" + }, + "seekNextChapter": { + "message": "寻找下一章" + }, + "seekPreviousChapter": { + "message": "寻找上一章" + }, + "settings": { + "message": "ImprovedTube 设置" + }, + "settingsSuccessfullyImported": { + "message": "设置导入成功" + }, + "shortcuts": { + "message": "快捷键" + }, + "showCardsOnMouseHover": { + "message": "鼠标悬浮时显示信息卡片" + }, + "showChannelVideosCount": { + "message": "显示频道内视频数" + }, + "showLess": { + "message": "显示较少" + }, + "showMore": { + "message": "展示更多" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "随机" + }, + "sidebar": { + "message": "侧边栏" + }, + "spacebar": { + "message": "空格" + }, + "squaredUserImages": { + "message": "方形用户头像" + }, + "static": { + "message": "静态" + }, + "statsForNerds": { + "message": "显示专业信息" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "停止" + }, + "style": { + "message": "样式" + }, + "styles": { + "message": "样式" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "订阅内容" + }, + "subtitles": { + "message": "副标题" + }, + "sunset": { + "message": "晚霞" + }, + "sunsetToSunrise": { + "message": "日落到日出" + }, + "systemPeferenceDark": { + "message": "系统偏好: 深色" + }, + "systemPeferenceLight": { + "message": "系统偏好: 浅色" + }, + "teal": { + "message": "蓝绿色" + }, + "textColor": { + "message": "文字颜色" + }, + "themes": { + "message": "主题" + }, + "thisWillRemoveAllCookies": { + "message": "将清空所有 cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "将清空所有 YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "将重置所有设置." + }, + "thisWillResetAllShortcuts": { + "message": "将会重置所有快捷键" + }, + "thumbnails": { + "message": "缩略图" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "开始时间" + }, + "timeTo": { + "message": "结束时间" + }, + "todayAt": { + "message": "截止今天" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "切换卡片" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "热门聊天" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "自动播放预告片" + }, + "translations": { + "message": "翻译" + }, + "transparentBackground": { + "message": "透明背景" + }, + "trending": { + "message": "时下流行" + }, + "tryToReloadThePage": { + "message": "尝试刷新页面" + }, + "turnOff": { + "message": "关闭时间" + }, + "turnOn": { + "message": "开启时间" + }, + "type": { + "message": "类型" + }, + "upNextAutoplay": { + "message": "自动播放下一视频" + }, + "use24HourFormat": { + "message": "使用24小时制" + }, + "version": { + "message": "版本" + }, + "video": { + "message": "视频" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "扩展视频简介到分类" + }, + "videoFormats": { + "message": "视频格式" + }, + "videos": { + "message": "视频" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "音量" + }, + "watchLater": { + "message": "稍后观看" + }, + "watchTime": { + "message": "观看时间" + }, + "whenTabIsChanged": { + "message": "切换标签时" + }, + "white": { + "message": "白色" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "黄色" + }, + "youtubeHeaderLeft": { + "message": "Youtube标题(左)" + }, + "youtubeHeaderRight": { + "message": "Youtube标题(右)" + }, + "youtubeHomePage": { + "message": "YouTube默认主页" + }, + "youtubeLanguage": { + "message": "YouTube 语言" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "采用 H.264 编解码时,YouTube 会将视频画质设为 1080p" + } } \ No newline at end of file diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index fcff47736..3aaeb1b2d 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -1,974 +1,989 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "關於" - }, - "accept": { - "message": "接受" - }, - "activate": { - "message": "啟用" - }, - "activateCaptions": { - "message": "開啟字幕" - }, - "activateFullscreen": { - "message": "開啟全螢幕" - }, - "activated": { - "message": "啟用" - }, - "activatedFeatures": { - "message": "已啟用功能" - }, - "activeFeatures": { - "message": "已啟用功能" - }, - "addScrollToTop": { - "message": "新增「回到頂部」按鈕" - }, - "ads": { - "message": "廣告" - }, - "all": { - "message": "所有" - }, - "allow": { - "message": "允許" - }, - "allow60fps": { - "message": "允許 60fps" - }, - "alwaysActive": { - "message": "始終有效" - }, - "alwaysShowProgressBar": { - "message": "一律顯示進度條" - }, - "amber": { - "message": "琥珀色" - }, - "analyzer": { - "message": "觀看紀錄" - }, - "appearance": { - "message": "外貌" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "音頻" - }, - "audioFormats": { - "message": "音頻格式" - }, - "auto": { - "message": "自動" - }, - "autoFullscreen": { - "message": "自動全螢幕" - }, - "autopauseWhenSwitchingTabs": { - "message": "切換分頁時自動暫停" - }, - "autoplay": { - "message": "自動播放" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "備份 & 重置" - }, - "baseOnSystemColorScheme": { - "message": "使用系統配色方案" - }, - "belowPlayer": { - "message": "於播放器底下" - }, - "black": { - "message": "黑色" - }, - "blacklist": { - "message": "黑名單" - }, - "blockAll": { - "message": "封鎖所有" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "藍色" - }, - "blueGray": { - "message": "藍灰色" - }, - "bluelight": { - "message": "藍光" - }, - "brown": { - "message": "棕色" - }, - "browser": { - "message": "瀏覽器" - }, - "browserVersion": { - "message": "瀏覽器版本" - }, - "bubbles": { - "message": "Bubbles" - }, - "bug": { - "message": "問題" - }, - "buttons": { - "message": "按鈕" - }, - "cancel": { - "message": "取消" - }, - "categories": { - "message": "類別" - }, - "channel": { - "message": "頻道" - }, - "channels": { - "message": "頻道" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "剪貼簿" - }, - "codecH264": { - "message": "使用 H.264 解碼" - }, - "collapseOfSubscriptionSections": { - "message": "於訂閱區顯示縮放按鈕" - }, - "collapsed": { - "message": "簡縮" - }, - "comments": { - "message": "評論" - }, - "confirmationBeforeClosing": { - "message": "關閉前先確認" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "cropChapterTitles": { - "message": "截斷章節名稱" - }, - "customCss": { - "message": "自訂 CSS" - }, - "customJs": { - "message": "自訂 JS" - }, - "customMiniPlayer": { - "message": "自訂迷你播放器" - }, - "cyan": { - "message": "青色" - }, - "dark": { - "message": "暗黑" - }, - "darkTheme": { - "message": "暗黑主題" - }, - "dateAndTime": { - "message": "日期和時間" - }, - "dawn": { - "message": "黎明" - }, - "decreasePlaybackSpeed": { - "message": "降低播放速度" - }, - "decreaseVolume": { - "message": "減輕音量" - }, - "deepOrange": { - "message": "深橙色" - }, - "deepPurple": { - "message": "深紫色" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "預設頻道標籤" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "刪除 YouTube cookies" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "影片描述" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "沙漠" - }, - "details": { - "message": "細節" - }, - "developerOptions": { - "message": "開發人員選項" - }, - "device": { - "message": "裝置" - }, - "dim": { - "message": "光線暗度" - }, - "disabled": { - "message": "關閉" - }, - "dislike": { - "message": "不喜歡" - }, - "doNotChange": { - "message": "不要改變" - }, - "donate": { - "message": "捐贈" - }, - "draggable": { - "message": "可拖動" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "空白" - }, - "enabled": { - "message": "啟用" - }, - "enabledForced": { - "message": "強制啟用" - }, - "expanded": { - "message": "擴展" - }, - "exportSettings": { - "message": "導出設定" - }, - "extension": { - "message": "擴充元件" - }, - "file": { - "message": "檔案" - }, - "filters": { - "message": "濾鏡" - }, - "fitToWindow": { - "message": "依視窗大小縮放" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "字體" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "頁腳" - }, - "forceSDR": { - "message": "強制使用標準動態範圍 (SDR)" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "強制播放速度" - }, - "forcedTheaterMode": { - "message": "強制劇院模式" - }, - "forcedVolume": { - "message": "強制播放音量" - }, - "foundABug": { - "message": "遇到問題了嗎?" - }, - "fullWindow": { - "message": "全螢幕" - }, - "general": { - "message": "一般" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "轉到搜索框" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "綠色" - }, - "hdThumbnail": { - "message": "HD 縮圖" - }, - "hdThumbnails": { - "message": "HD 縮圖" - }, - "header": { - "message": "標頭" - }, - "hidden": { - "message": "隱藏" - }, - "hiddenOnVideoPage": { - "message": "於影片頁面自動隱藏" - }, - "hideAnimatedThumbnails": { - "message": "隱藏動態的縮略圖" - }, - "hideAnnotations": { - "message": "隱藏註解" - }, - "hideCards": { - "message": "隱藏資訊卡" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "隱藏細節" - }, - "hideEndscreen": { - "message": "隱藏結束畫面" - }, - "hideFeaturedContent": { - "message": "隱藏精選影片" - }, - "hideFooter": { - "message": "隱藏頁腳" - }, - "hideGradientBottom": { - "message": "隱藏底部漸層圖層" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "隱藏播放器控制欄" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "隱藏播放清單" - }, - "hideRightButtons": { - "message": "隱藏右側按鈕" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "隱藏「向下捲動即可查看詳情」" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "隱藏縮圖上的按鈕" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "隱藏觀看次數" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "history": { - "message": "觀看記錄" - }, - "home": { - "message": "首頁" - }, - "hover": { - "message": "滑鼠暫留時顯示" - }, - "hoverOnVideoPage": { - "message": "於影片頁面滑鼠暫留時顯示" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "顯示影片上傳時間" - }, - "icons": { - "message": "圖標" - }, - "iconsOnly": { - "message": "只有圖標" - }, - "importSettings": { - "message": "導入設定" - }, - "improveLogo": { - "message": "改進 YouTube 圖示" - }, - "improvedtubeIconOnYoutube": { - "message": "於 YouTube 中顯示 ImprovedTube 圖示" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube 語言" - }, - "improvedtubeVersion": { - "message": "ImprovedTube 版本" - }, - "increasePlaybackSpeed": { - "message": "加快播放速度" - }, - "increaseVolume": { - "message": "增加音量" - }, - "indigo": { - "message": "靛青" - }, - "items": { - "message": "項目" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "語言" - }, - "legacyYoutube": { - "message": "舊版 YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Light" - }, - "lightBlue": { - "message": "淺藍色" - }, - "lightGreen": { - "message": "淺綠色" - }, - "like": { - "message": "喜歡" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "顯示按讚數量" - }, - "lime": { - "message": "萊姆色" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "清單" - }, - "liveChat": { - "message": "Live 聊天視窗" - }, - "liveChatType": { - "message": "Live 聊天視窗種類" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "音量標準化" - }, - "markWatchedVideos": { - "message": "標記已觀看影片" - }, - "mixer": { - "message": "音量混合器" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "自訂主色" - }, - "name": { - "message": "名稱" - }, - "nativeMiniPlayer": { - "message": "內建迷你播放器" - }, - "new": { - "message": "新增" - }, - "nextVideo": { - "message": "下一個影片" - }, - "night": { - "message": "夜晚" - }, - "noActiveFeatures": { - "message": "無已啟用功能" - }, - "noOpenVideoTabs": { - "message": "無已開啟之影片頁面" - }, - "none": { - "message": "無" - }, - "normal": { - "message": "正常" - }, - "old": { - "message": "舊版" - }, - "onAllVideos": { - "message": "於所有影片中" - }, - "onSubscribedChannels": { - "message": "於已訂閱的頻道中" - }, - "onlyActiveOnYoutube": { - "message": "僅在 YouTube 上有效" - }, - "onlyOnePlayerInstancePlaying": { - "message": "同時間僅限播放單一影片" - }, - "openPopupPlayer": { - "message": "開啟影片或播放清單於新視窗中" - }, - "orange": { - "message": "橘色" - }, - "os": { - "message": "作業系統" - }, - "other": { - "message": "其他" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "權限" - }, - "pictureInPicture": { - "message": "子母畫面" - }, - "pink": { - "message": "粉紅色" - }, - "plain": { - "message": "樸素" - }, - "platform": { - "message": "平台" - }, - "playPause": { - "message": "播放/暫停" - }, - "playbackSpeed": { - "message": "播放速度" - }, - "player": { - "message": "播放器" - }, - "playerColor": { - "message": "影片進度條顏色" - }, - "playerSize": { - "message": "播放器大小" - }, - "playlist": { - "message": "播放列表" - }, - "playlists": { - "message": "播放清單" - }, - "popupPlayer": { - "message": "彈出播放器" - }, - "position": { - "message": "位置" - }, - "pressAnyKeyOrScroll": { - "message": "按任意鍵或使用滑鼠滾輪。" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "按任意鍵或使用鼠標滾輪。" - }, - "previousVideo": { - "message": "回到之前的影片" - }, - "primaryColor": { - "message": "主要顏色" - }, - "purple": { - "message": "紫色" - }, - "quality": { - "message": "品質" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "評分" - }, - "red": { - "message": "紅色" - }, - "redDislikeButton": { - "message": "將「不喜歡」數量以紅色顯示" - }, - "relatedVideos": { - "message": "推薦影片" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "移除搜尋相關結果" - }, - "repeat": { - "message": "重複播放" - }, - "reset": { - "message": "重置" - }, - "resetAllSettings": { - "message": "重置所有設定" - }, - "resetAllShortcuts": { - "message": "重置所有快捷鍵" - }, - "reverse": { - "message": "回播" - }, - "rotate": { - "message": "旋轉影片" - }, - "save": { - "message": "儲存" - }, - "saveAs": { - "message": "另存為" - }, - "schedule": { - "message": "排程" - }, - "screen": { - "message": "螢幕" - }, - "screenshot": { - "message": "截圖" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "search": { - "message": "搜尋" - }, - "searchBarOnly": { - "message": "僅顯示搜尋列" - }, - "seekBackward10Seconds": { - "message": "倒退10秒" - }, - "seekForward10Seconds": { - "message": "前進10秒" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "設定" - }, - "settingsSuccessfullyImported": { - "message": "設定成功導入" - }, - "shortcuts": { - "message": "快捷鍵" - }, - "showCardsOnMouseHover": { - "message": "滑鼠暫留時顯示資訊卡" - }, - "showChannelVideosCount": { - "message": "顯示頻道影片數量" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "隨機播放" - }, - "sidebar": { - "message": "側邊欄" - }, - "spacebar": { - "message": "空格鍵" - }, - "squaredUserImages": { - "message": "方形用戶圖像" - }, - "static": { - "message": "靜止" - }, - "statsForNerds": { - "message": "顯示「統計資料」按鈕" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "停止" - }, - "style": { - "message": "樣式" - }, - "styles": { - "message": "樣式" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "訂閱內容" - }, - "subtitles": { - "message": "允許字幕" - }, - "sunset": { - "message": "日落" - }, - "sunsetToSunrise": { - "message": "日出至入落" - }, - "systemPeferenceDark": { - "message": "系統預設: 暗黑模式" - }, - "systemPeferenceLight": { - "message": "系統預設: 白天模式" - }, - "teal": { - "message": "藍綠色" - }, - "textColor": { - "message": "文字顏色" - }, - "themes": { - "message": "主題" - }, - "thisWillRemoveAllCookies": { - "message": "這將刪除所有的 cookies。" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "這將刪除所有 YouTube Cookies。" - }, - "thisWillResetAllSettings": { - "message": "這將重置所有設定。" - }, - "thisWillResetAllShortcuts": { - "message": "這將重置所有快捷鍵。" - }, - "thumbnails": { - "message": "縮略圖" - }, - "timeFrom": { - "message": "開始時間" - }, - "timeTo": { - "message": "結束時間" - }, - "todayAt": { - "message": "自今日" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "啟用結束畫面" - }, - "toggleControls": { - "message": "開關播放器控制" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "預告片自動播放" - }, - "translations": { - "message": "翻譯" - }, - "transparentBackground": { - "message": "透明背景" - }, - "trending": { - "message": "發燒影片" - }, - "tryToReloadThePage": { - "message": "嘗試重新整理頁面" - }, - "type": { - "message": "種類" - }, - "upNextAutoplay": { - "message": "自動播放下一個影片" - }, - "use24HourFormat": { - "message": "使用24小時格式" - }, - "version": { - "message": "版本" - }, - "video": { - "message": "影片" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "影片敘述將自動展開以顯示影片分類名稱" - }, - "videoFormats": { - "message": "影片格式" - }, - "videos": { - "message": "影片" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "音量" - }, - "watchLater": { - "message": "稍後觀看" - }, - "watchTime": { - "message": "已觀看時間" - }, - "whenTabIsChanged": { - "message": "當分頁改變時" - }, - "white": { - "message": "白色" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "黃色" - }, - "youtubeHeaderLeft": { - "message": "YouTube 標頭 (左)" - }, - "youtubeHeaderRight": { - "message": "YouTube 標頭 (右)" - }, - "youtubeHomePage": { - "message": "預設的 YouTube 主頁" - }, - "youtubeLanguage": { - "message": "YouTube 語言" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "使用 H.264 編碼時,YouTube 會將畫質限制為 1080p 內。" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "關於" + }, + "accept": { + "message": "接受" + }, + "activate": { + "message": "啟用" + }, + "activateCaptions": { + "message": "開啟字幕" + }, + "activateFullscreen": { + "message": "開啟全螢幕" + }, + "activated": { + "message": "啟用" + }, + "activatedFeatures": { + "message": "已啟用功能" + }, + "activeFeatures": { + "message": "已啟用功能" + }, + "addScrollToTop": { + "message": "新增「回到頂部」按鈕" + }, + "ads": { + "message": "廣告" + }, + "all": { + "message": "所有" + }, + "allow": { + "message": "允許" + }, + "allow60fps": { + "message": "允許 60fps" + }, + "alwaysActive": { + "message": "始終有效" + }, + "alwaysShowProgressBar": { + "message": "一律顯示進度條" + }, + "amber": { + "message": "琥珀色" + }, + "analyzer": { + "message": "觀看紀錄" + }, + "appearance": { + "message": "外貌" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "audio": { + "message": "音頻" + }, + "audioFormats": { + "message": "音頻格式" + }, + "auto": { + "message": "自動" + }, + "autoFullscreen": { + "message": "自動全螢幕" + }, + "autopauseWhenSwitchingTabs": { + "message": "切換分頁時自動暫停" + }, + "autoplay": { + "message": "自動播放" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "備份 & 重置" + }, + "baseOnSystemColorScheme": { + "message": "使用系統配色方案" + }, + "belowPlayer": { + "message": "於播放器底下" + }, + "black": { + "message": "黑色" + }, + "blacklist": { + "message": "黑名單" + }, + "blockAll": { + "message": "封鎖所有" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "藍色" + }, + "blueGray": { + "message": "藍灰色" + }, + "bluelight": { + "message": "藍光" + }, + "brown": { + "message": "棕色" + }, + "browser": { + "message": "瀏覽器" + }, + "browserVersion": { + "message": "瀏覽器版本" + }, + "bubbles": { + "message": "Bubbles" + }, + "bug": { + "message": "問題" + }, + "buttons": { + "message": "按鈕" + }, + "cancel": { + "message": "取消" + }, + "categories": { + "message": "類別" + }, + "channel": { + "message": "頻道" + }, + "channels": { + "message": "頻道" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "剪貼簿" + }, + "codecH264": { + "message": "使用 H.264 解碼" + }, + "collapseOfSubscriptionSections": { + "message": "於訂閱區顯示縮放按鈕" + }, + "collapsed": { + "message": "簡縮" + }, + "comments": { + "message": "評論" + }, + "confirmationBeforeClosing": { + "message": "關閉前先確認" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "截斷章節名稱" + }, + "customCss": { + "message": "自訂 CSS" + }, + "customJs": { + "message": "自訂 JS" + }, + "customMiniPlayer": { + "message": "自訂迷你播放器" + }, + "cyan": { + "message": "青色" + }, + "dark": { + "message": "暗黑" + }, + "darkTheme": { + "message": "暗黑主題" + }, + "dateAndTime": { + "message": "日期和時間" + }, + "dawn": { + "message": "黎明" + }, + "decreasePlaybackSpeed": { + "message": "降低播放速度" + }, + "decreaseVolume": { + "message": "減輕音量" + }, + "deepOrange": { + "message": "深橙色" + }, + "deepPurple": { + "message": "深紫色" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "預設頻道標籤" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "刪除 YouTube cookies" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "影片描述" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "沙漠" + }, + "details": { + "message": "細節" + }, + "developerOptions": { + "message": "開發人員選項" + }, + "device": { + "message": "裝置" + }, + "dim": { + "message": "光線暗度" + }, + "disabled": { + "message": "關閉" + }, + "dislike": { + "message": "不喜歡" + }, + "doNotChange": { + "message": "不要改變" + }, + "donate": { + "message": "捐贈" + }, + "draggable": { + "message": "可拖動" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "空白" + }, + "enabled": { + "message": "啟用" + }, + "enabledForced": { + "message": "強制啟用" + }, + "expanded": { + "message": "擴展" + }, + "exportSettings": { + "message": "導出設定" + }, + "extension": { + "message": "擴充元件" + }, + "file": { + "message": "檔案" + }, + "filters": { + "message": "濾鏡" + }, + "fitToWindow": { + "message": "依視窗大小縮放" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "字體" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "頁腳" + }, + "forceSDR": { + "message": "強制使用標準動態範圍 (SDR)" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "強制播放速度" + }, + "forcedTheaterMode": { + "message": "強制劇院模式" + }, + "forcedVolume": { + "message": "強制播放音量" + }, + "foundABug": { + "message": "遇到問題了嗎?" + }, + "fullWindow": { + "message": "全螢幕" + }, + "general": { + "message": "一般" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "轉到搜索框" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "綠色" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD 縮圖" + }, + "header": { + "message": "標頭" + }, + "hidden": { + "message": "隱藏" + }, + "hiddenOnVideoPage": { + "message": "於影片頁面自動隱藏" + }, + "hideAnimatedThumbnails": { + "message": "隱藏動態的縮略圖" + }, + "hideAnnotations": { + "message": "隱藏註解" + }, + "hideCards": { + "message": "隱藏資訊卡" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "隱藏細節" + }, + "hideEndscreen": { + "message": "隱藏結束畫面" + }, + "hideFeaturedContent": { + "message": "隱藏精選影片" + }, + "hideFooter": { + "message": "隱藏頁腳" + }, + "hideGradientBottom": { + "message": "隱藏底部漸層圖層" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "隱藏播放器控制欄" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "隱藏播放清單" + }, + "hideRightButtons": { + "message": "隱藏右側按鈕" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "隱藏「向下捲動即可查看詳情」" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "隱藏縮圖上的按鈕" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "隱藏觀看次數" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "觀看記錄" + }, + "home": { + "message": "首頁" + }, + "hover": { + "message": "滑鼠暫留時顯示" + }, + "hoverOnVideoPage": { + "message": "於影片頁面滑鼠暫留時顯示" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "顯示影片上傳時間" + }, + "icons": { + "message": "圖標" + }, + "iconsOnly": { + "message": "只有圖標" + }, + "importSettings": { + "message": "導入設定" + }, + "improveLogo": { + "message": "改進 YouTube 圖示" + }, + "improvedtubeIconOnYoutube": { + "message": "於 YouTube 中顯示 ImprovedTube 圖示" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube 語言" + }, + "improvedtubeVersion": { + "message": "ImprovedTube 版本" + }, + "increasePlaybackSpeed": { + "message": "加快播放速度" + }, + "increaseVolume": { + "message": "增加音量" + }, + "indigo": { + "message": "靛青" + }, + "items": { + "message": "項目" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "語言" + }, + "legacyYoutube": { + "message": "舊版 YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Light" + }, + "lightBlue": { + "message": "淺藍色" + }, + "lightGreen": { + "message": "淺綠色" + }, + "like": { + "message": "喜歡" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "顯示按讚數量" + }, + "lime": { + "message": "萊姆色" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "清單" + }, + "liveChat": { + "message": "Live 聊天視窗" + }, + "liveChatType": { + "message": "Live 聊天視窗種類" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "音量標準化" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "標記已觀看影片" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "音量混合器" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "自訂主色" + }, + "name": { + "message": "名稱" + }, + "nativeMiniPlayer": { + "message": "內建迷你播放器" + }, + "new": { + "message": "新增" + }, + "nextVideo": { + "message": "下一個影片" + }, + "night": { + "message": "夜晚" + }, + "noActiveFeatures": { + "message": "無已啟用功能" + }, + "noOpenVideoTabs": { + "message": "無已開啟之影片頁面" + }, + "none": { + "message": "無" + }, + "normal": { + "message": "正常" + }, + "old": { + "message": "舊版" + }, + "onAllVideos": { + "message": "於所有影片中" + }, + "onSubscribedChannels": { + "message": "於已訂閱的頻道中" + }, + "onlyActiveOnYoutube": { + "message": "僅在 YouTube 上有效" + }, + "onlyOnePlayerInstancePlaying": { + "message": "同時間僅限播放單一影片" + }, + "openPopupPlayer": { + "message": "開啟影片或播放清單於新視窗中" + }, + "orange": { + "message": "橘色" + }, + "os": { + "message": "作業系統" + }, + "other": { + "message": "其他" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "權限" + }, + "pictureInPicture": { + "message": "子母畫面" + }, + "pink": { + "message": "粉紅色" + }, + "plain": { + "message": "樸素" + }, + "platform": { + "message": "平台" + }, + "playPause": { + "message": "播放/暫停" + }, + "playbackSpeed": { + "message": "播放速度" + }, + "player": { + "message": "播放器" + }, + "playerColor": { + "message": "影片進度條顏色" + }, + "playerSize": { + "message": "播放器大小" + }, + "playlist": { + "message": "播放列表" + }, + "playlists": { + "message": "播放清單" + }, + "popupPlayer": { + "message": "彈出播放器" + }, + "position": { + "message": "位置" + }, + "pressAnyKeyOrScroll": { + "message": "按任意鍵或使用滑鼠滾輪。" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "按任意鍵或使用鼠標滾輪。" + }, + "previousVideo": { + "message": "回到之前的影片" + }, + "primaryColor": { + "message": "主要顏色" + }, + "purple": { + "message": "紫色" + }, + "quality": { + "message": "品質" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "評分" + }, + "red": { + "message": "紅色" + }, + "redDislikeButton": { + "message": "將「不喜歡」數量以紅色顯示" + }, + "relatedVideos": { + "message": "推薦影片" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "移除搜尋相關結果" + }, + "repeat": { + "message": "重複播放" + }, + "reset": { + "message": "重置" + }, + "resetAllSettings": { + "message": "重置所有設定" + }, + "resetAllShortcuts": { + "message": "重置所有快捷鍵" + }, + "reverse": { + "message": "回播" + }, + "rotate": { + "message": "旋轉影片" + }, + "save": { + "message": "儲存" + }, + "saveAs": { + "message": "另存為" + }, + "schedule": { + "message": "排程" + }, + "screen": { + "message": "螢幕" + }, + "screenshot": { + "message": "截圖" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "搜尋" + }, + "searchBarOnly": { + "message": "僅顯示搜尋列" + }, + "seekBackward10Seconds": { + "message": "倒退10秒" + }, + "seekForward10Seconds": { + "message": "前進10秒" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "設定" + }, + "settingsSuccessfullyImported": { + "message": "設定成功導入" + }, + "shortcuts": { + "message": "快捷鍵" + }, + "showCardsOnMouseHover": { + "message": "滑鼠暫留時顯示資訊卡" + }, + "showChannelVideosCount": { + "message": "顯示頻道影片數量" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "隨機播放" + }, + "sidebar": { + "message": "側邊欄" + }, + "spacebar": { + "message": "空格鍵" + }, + "squaredUserImages": { + "message": "方形用戶圖像" + }, + "static": { + "message": "靜止" + }, + "statsForNerds": { + "message": "顯示「統計資料」按鈕" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "停止" + }, + "style": { + "message": "樣式" + }, + "styles": { + "message": "樣式" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "訂閱內容" + }, + "subtitles": { + "message": "允許字幕" + }, + "sunset": { + "message": "日落" + }, + "sunsetToSunrise": { + "message": "日出至入落" + }, + "systemPeferenceDark": { + "message": "系統預設: 暗黑模式" + }, + "systemPeferenceLight": { + "message": "系統預設: 白天模式" + }, + "teal": { + "message": "藍綠色" + }, + "textColor": { + "message": "文字顏色" + }, + "themes": { + "message": "主題" + }, + "thisWillRemoveAllCookies": { + "message": "這將刪除所有的 cookies。" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "這將刪除所有 YouTube Cookies。" + }, + "thisWillResetAllSettings": { + "message": "這將重置所有設定。" + }, + "thisWillResetAllShortcuts": { + "message": "這將重置所有快捷鍵。" + }, + "thumbnails": { + "message": "縮略圖" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "開始時間" + }, + "timeTo": { + "message": "結束時間" + }, + "todayAt": { + "message": "自今日" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "啟用結束畫面" + }, + "toggleControls": { + "message": "開關播放器控制" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "預告片自動播放" + }, + "translations": { + "message": "翻譯" + }, + "transparentBackground": { + "message": "透明背景" + }, + "trending": { + "message": "發燒影片" + }, + "tryToReloadThePage": { + "message": "嘗試重新整理頁面" + }, + "type": { + "message": "種類" + }, + "upNextAutoplay": { + "message": "自動播放下一個影片" + }, + "use24HourFormat": { + "message": "使用24小時格式" + }, + "version": { + "message": "版本" + }, + "video": { + "message": "影片" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "影片敘述將自動展開以顯示影片分類名稱" + }, + "videoFormats": { + "message": "影片格式" + }, + "videos": { + "message": "影片" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "音量" + }, + "watchLater": { + "message": "稍後觀看" + }, + "watchTime": { + "message": "已觀看時間" + }, + "whenTabIsChanged": { + "message": "當分頁改變時" + }, + "white": { + "message": "白色" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "黃色" + }, + "youtubeHeaderLeft": { + "message": "YouTube 標頭 (左)" + }, + "youtubeHeaderRight": { + "message": "YouTube 標頭 (右)" + }, + "youtubeHomePage": { + "message": "預設的 YouTube 主頁" + }, + "youtubeLanguage": { + "message": "YouTube 語言" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "使用 H.264 編碼時,YouTube 會將畫質限制為 1080p 內。" + } } \ No newline at end of file diff --git a/manifest.json b/manifest.json index dfb2eb0bc..761d59fa4 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.650", + "version": "3.651", "default_locale": "en", "icons": { "128": "icons/128.png", diff --git a/popup.js b/popup.js index 4b4ecb678..3424e262e 100644 --- a/popup.js +++ b/popup.js @@ -2842,9 +2842,28 @@ var skeleton = { text: 'squaredUserImages', tags: 'avatar' }, - hd_thumbnails: { - component: 'switch', - text: 'hdThumbnails', + thumbnails_quality: { + component: 'select', + text: 'thumbnailsQuality', + options: [{ + text: 'default', + value: 'null' + }, { + text: 'low', + value: 'default' + }, { + text: 'medium', + value: 'mqdefault' + }, { + text: 'high', + value: 'hqdefault' + }, { + text: 'sd', + value: 'sddefault' + }, { + text: 'hd', + value: 'maxresdefault' + }], tags: 'preview quality' }, hide_animated_thumbnails: { diff --git a/youtube-scripts.js b/youtube-scripts.js index e599fb6fe..7a170551e 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -122,8 +122,7 @@ var ImprovedTube = { channel: new RegExp('\/(user|channel|c)\/'), channel_home_page: new RegExp('\/(user|channel|c)\/.+(\/featured)?\/?$'), channel_home_page_postfix: new RegExp('\/(featured)?\/?$'), - thumbnail_quality_low: new RegExp('(hqdefault\.jpg|hq720.jpg)+'), - thumbnail_quality_max: new RegExp('(maxresdefault\.jpg)+'), + thumbnail_quality: new RegExp('(default\.jpg|mqdefault\.jpg|hqdefault\.jpg|hq720\.jpg|sddefault\.jpg|maxresdefault\.jpg)+'), video_id: new RegExp('[?&]v=([^&]+)'), channel_link: new RegExp('https:\/\/www.youtube.com\/(channel|user|c)\/') }`, @@ -384,7 +383,7 @@ ImprovedTube.init = function () { } } else if (name === 'IMG') { if (node.src) { - ImprovedTube.hdThumbnails(node); + ImprovedTube.thumbnailsQuality(node); } else { var observer = new MutationObserver(function(mutationList) { for (var i = 0, l = mutationList.length; i < l; i++) { @@ -392,7 +391,7 @@ ImprovedTube.init = function () { if (mutation.type === 'attributes') { if (mutation.attributeName === 'src') { - ImprovedTube.hdThumbnails(mutation.target); + ImprovedTube.thumbnailsQuality(mutation.target); } } } @@ -1080,31 +1079,28 @@ document.addEventListener('ImprovedTubeOnlyOnePlayer', function (event) { 4.1.7 HD THUMBNAILS ------------------------------------------------------------------------------*/ -ImprovedTube.hdThumbnails = function (node) { +ImprovedTube.thumbnailsQuality = function (node) { if (this.isset(node) === false) { var thumbnails = document.querySelectorAll('img'); for (var i = 0, l = thumbnails.length; i < l; i++) { - this.hdThumbnails(thumbnails[i]); + this.thumbnailsQuality(thumbnails[i]); } return; } - if (this.storage.hd_thumbnails === true ) { - if (! node.dataset.defaultSrc && this.regex.thumbnail_quality_low.test(node.src)) { + if (this.storage.thumbnails_quality !== 'null' ) { + if (! node.dataset.defaultSrc && this.regex.thumbnail_quality.test(node.src)) { node.dataset.defaultSrc = node.src; node.onload = function () { if (this.naturalHeight <= 90) { this.src = this.dataset.defaultSrc; } }; - node.src = node.src.replace(this.regex.thumbnail_quality_low, 'maxresdefault.jpg'); + node.src = node.src.replace(this.regex.thumbnail_quality, this.storage.thumbnails_quality + '.jpg'); node.onerror = function () { this.error = ""; - this.src = this.src.replace(this.regex.thumbnail_quality_max, 'hqdefault.jpg'); + this.src = node.dataset.defaultSrc; } } - } else if (node.dataset.defaultSrc) { - node.src = node.dataset.defaultSrc; - delete node.dataset.defaultSrc; } }; From 1f25b94df1874ef6a0338357ec95f8f262477c86 Mon Sep 17 00:00:00 2001 From: dodieboy Date: Fri, 22 Oct 2021 13:43:29 +0800 Subject: [PATCH 0417/1224] Fixed manually select player resolutions not working --- youtube-scripts.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index e599fb6fe..d298effcc 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2486,9 +2486,10 @@ ImprovedTube.playerAutofullscreen = function () { ------------------------------------------------------------------------------*/ ImprovedTube.playerQuality = function () { + console.log(this.elements.player); var quality = this.storage.player_quality; - if (this.elements.player.getAvailableQualityLevels) { + if (this.elements.player.getAvailableQualityLevels && !this.elements.player.dataset.defaultQuality) { var available_quality_levels = this.elements.player.getAvailableQualityLevels(); if (quality && quality !== 'auto') { @@ -2498,6 +2499,7 @@ ImprovedTube.playerQuality = function () { this.elements.player.setPlaybackQualityRange(quality); this.elements.player.setPlaybackQuality(quality); + this.elements.player.dataset.defaultQuality = quality; } } }; From ef5f8ab86b24193526698cf03f22019780bd5e61 Mon Sep 17 00:00:00 2001 From: dodieboy Date: Fri, 22 Oct 2021 13:45:25 +0800 Subject: [PATCH 0418/1224] Remove debug msg --- youtube-scripts.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index d298effcc..b01ba4c4b 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2486,7 +2486,6 @@ ImprovedTube.playerAutofullscreen = function () { ------------------------------------------------------------------------------*/ ImprovedTube.playerQuality = function () { - console.log(this.elements.player); var quality = this.storage.player_quality; if (this.elements.player.getAvailableQualityLevels && !this.elements.player.dataset.defaultQuality) { @@ -2496,7 +2495,6 @@ ImprovedTube.playerQuality = function () { if (available_quality_levels.indexOf(quality) === -1) { quality = available_quality_levels[0]; } - this.elements.player.setPlaybackQualityRange(quality); this.elements.player.setPlaybackQuality(quality); this.elements.player.dataset.defaultQuality = quality; From 66fc847b1dc3650346c3930739ca3158f97a399e Mon Sep 17 00:00:00 2001 From: Still Hsu Date: Sun, 24 Oct 2021 04:09:41 +0800 Subject: [PATCH 0419/1224] Update zh-tw locazation strings Signed-off-by: Still Hsu --- _locales/zh_TW/messages.json | 128 +++++++++++++++++------------------ 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 3aaeb1b2d..81d80430b 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -66,7 +66,7 @@ "message": "外貌" }, "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" + "message": "您確定要匯出資料嗎?" }, "audio": { "message": "音頻" @@ -87,10 +87,10 @@ "message": "自動播放" }, "backgroundColor": { - "message": "Background color" + "message": "背景顏色" }, "backgroundOpacity": { - "message": "Background opacity" + "message": "背景透明度" }, "backupAndReset": { "message": "備份 & 重置" @@ -111,7 +111,7 @@ "message": "封鎖所有" }, "blockMusic": { - "message": "Block music" + "message": "禁止音樂" }, "blue": { "message": "藍色" @@ -153,7 +153,7 @@ "message": "頻道" }, "characterEdgeStyle": { - "message": "Character edge style" + "message": "字型邊緣型式" }, "clipboard": { "message": "剪貼簿" @@ -177,7 +177,7 @@ "message": "Cookies" }, "cores": { - "message": "Cores" + "message": "核心數" }, "cropChapterTitles": { "message": "截斷章節名稱" @@ -219,22 +219,22 @@ "message": "深紫色" }, "default": { - "message": "Default" + "message": "預設" }, "defaultChannelTab": { "message": "預設頻道標籤" }, "defaultContentCountry": { - "message": "Default content country" + "message": "預設國家" }, "deleteWatchedVideos": { - "message": "Delete watched videos" + "message": "刪除已觀看的影片" }, "deleteYoutubeCookies": { "message": "刪除 YouTube cookies" }, "depressed": { - "message": "Depressed" + "message": "內凹" }, "description": { "message": "影片描述" @@ -273,7 +273,7 @@ "message": "可拖動" }, "dropShadow": { - "message": "Drop shadow" + "message": "投射陰影" }, "email": { "message": "Email" @@ -306,22 +306,22 @@ "message": "依視窗大小縮放" }, "flash": { - "message": "Flash" + "message": "是否使用 Flash" }, "font": { "message": "字體" }, "fontColor": { - "message": "Font color" + "message": "字型顏色" }, "fontFamily": { - "message": "Font family" + "message": "字型" }, "fontOpacity": { - "message": "Font opacity" + "message": "字型透明度" }, "fontSize": { - "message": "Font size" + "message": "字型大小" }, "footer": { "message": "頁腳" @@ -330,7 +330,7 @@ "message": "強制使用標準動態範圍 (SDR)" }, "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" + "message": "強制從頭播放" }, "forcedPlaybackSpeed": { "message": "強制播放速度" @@ -357,7 +357,7 @@ "message": "轉到搜索框" }, "googleApiKey": { - "message": "Google API key" + "message": "Google API 金鑰" }, "gpu": { "message": "GPU" @@ -390,10 +390,10 @@ "message": "隱藏資訊卡" }, "hideCountryCode": { - "message": "Hide country code" + "message": "隱藏國家代號" }, "hideDate": { - "message": "Hide date" + "message": "隱藏日期" }, "hideDetails": { "message": "隱藏細節" @@ -411,16 +411,16 @@ "message": "隱藏底部漸層圖層" }, "hideMoreButton": { - "message": "Hide \"More\" button" + "message": "隱藏「顯示更多」按鈕" }, "hidePlayerControlsBar": { "message": "隱藏播放器控制欄" }, "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" + "message": "隱藏播放列按鈕" }, "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" + "message": "隱藏播放選項" }, "hidePlaylist": { "message": "隱藏播放清單" @@ -429,31 +429,31 @@ "message": "隱藏右側按鈕" }, "hideSaveButton": { - "message": "Hide \"Save\" button" + "message": "隱藏「儲存」按鈕" }, "hideScrollForDetails": { "message": "隱藏「向下捲動即可查看詳情」" }, "hideShareButton": { - "message": "Hide \"Share\" button" + "message": "隱藏「分享」按鈕" }, "hideSkipOverlay": { - "message": "Hide Skip Overlay" + "message": "隱藏「跳至區段」按鈕" }, "hideThumbnailOverlay": { "message": "隱藏縮圖上的按鈕" }, "hideThumbnails": { - "message": "Hide thumbnails" + "message": "隱藏縮圖" }, "hideViewsCount": { "message": "隱藏觀看次數" }, "hideVoiceSearchButton": { - "message": "Hide voice search button" + "message": "隱藏語音搜尋按鈕" }, "high": { - "message": "High" + "message": "高" }, "history": { "message": "觀看記錄" @@ -504,7 +504,7 @@ "message": "項目" }, "language": { - "message": "Language" + "message": "語言" }, "languages": { "message": "語言" @@ -513,10 +513,10 @@ "message": "舊版 YouTube" }, "library": { - "message": "Library" + "message": "影片庫" }, "light": { - "message": "Light" + "message": "淺色" }, "lightBlue": { "message": "淺藍色" @@ -537,7 +537,7 @@ "message": "萊姆色" }, "limitPageWidth": { - "message": "Limit page width" + "message": "限制頁面寬度" }, "list": { "message": "清單" @@ -549,28 +549,28 @@ "message": "Live 聊天視窗種類" }, "location": { - "message": "Location" + "message": "地區" }, "loudnessNormalization": { "message": "音量標準化" }, "low": { - "message": "Low" + "message": "低" }, "markWatchedVideos": { "message": "標記已觀看影片" }, "medium": { - "message": "Medium" + "message": "中" }, "mixer": { "message": "音量混合器" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "將側邊欄移至右方" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "將預覽圖移至右方" }, "myColors": { "message": "自訂主色" @@ -579,7 +579,7 @@ "message": "名稱" }, "nativeMiniPlayer": { - "message": "內建迷你播放器" + "message": "迷你播放器" }, "new": { "message": "新增" @@ -612,7 +612,7 @@ "message": "於已訂閱的頻道中" }, "onlyActiveOnYoutube": { - "message": "僅在 YouTube 上有效" + "message": "僅適用於 YouTube 網站" }, "onlyOnePlayerInstancePlaying": { "message": "同時間僅限播放單一影片" @@ -630,10 +630,10 @@ "message": "其他" }, "outline": { - "message": "Outline" + "message": "外框" }, "overlay": { - "message": "Overlay" + "message": "遮罩" }, "permissions": { "message": "權限" @@ -696,13 +696,13 @@ "message": "品質" }, "raised": { - "message": "Raised" + "message": "浮凸" }, "ram": { "message": "RAM" }, "rateMe": { - "message": "Rate me" + "message": "給我評分" }, "rateUs": { "message": "評分" @@ -717,7 +717,7 @@ "message": "推薦影片" }, "remote": { - "message": "Play on TV" + "message": "於電視上播放" }, "removeRelatedSearchResults": { "message": "移除搜尋相關結果" @@ -756,7 +756,7 @@ "message": "截圖" }, "scrollBar": { - "message": "Scroll Bar" + "message": "滾動條" }, "sd": { "message": "SD" @@ -774,16 +774,16 @@ "message": "前進10秒" }, "seekNextChapter": { - "message": "seekNextChapter" + "message": "跳至下一章節" }, "seekPreviousChapter": { - "message": "seekPreviousChapter" + "message": "跳至前一章節" }, "settings": { "message": "設定" }, "settingsSuccessfullyImported": { - "message": "設定成功導入" + "message": "已成功匯入設定" }, "shortcuts": { "message": "快捷鍵" @@ -795,13 +795,13 @@ "message": "顯示頻道影片數量" }, "showLess": { - "message": "Show less" + "message": "顯示更少" }, "showMore": { - "message": "Show more" + "message": "顯示更多" }, "showRemainingDuration": { - "message": "Show video remaining duration" + "message": "顯示影片剩餘時間" }, "shuffle": { "message": "隨機播放" @@ -810,7 +810,7 @@ "message": "側邊欄" }, "spacebar": { - "message": "空格鍵" + "message": "空白鍵" }, "squaredUserImages": { "message": "方形用戶圖像" @@ -822,7 +822,7 @@ "message": "顯示「統計資料」按鈕" }, "step": { - "message": "Step" + "message": "音量調整間隔" }, "stop": { "message": "停止" @@ -834,13 +834,13 @@ "message": "樣式" }, "subscribe": { - "message": "Subscribe" + "message": "訂閱" }, "subscriptions": { "message": "訂閱內容" }, "subtitles": { - "message": "允許字幕" + "message": "字幕" }, "sunset": { "message": "日落" @@ -876,10 +876,10 @@ "message": "這將重置所有快捷鍵。" }, "thumbnails": { - "message": "縮略圖" + "message": "縮圖" }, "thumbnailsQuality": { - "message": "Thumbnails Quality" + "message": "縮圖品質" }, "timeFrom": { "message": "開始時間" @@ -891,7 +891,7 @@ "message": "自今日" }, "toggleAutoplay": { - "message": "Toggle autoplay" + "message": "切換自動播放" }, "toggleCards": { "message": "啟用結束畫面" @@ -900,10 +900,10 @@ "message": "開關播放器控制" }, "topChat": { - "message": "Top chat" + "message": "重點聊天室訊息" }, "trackWatchedVideos": { - "message": "Track watched videos" + "message": "追蹤已觀看的影片" }, "trailerAutoplay": { "message": "預告片自動播放" @@ -945,7 +945,7 @@ "message": "影片" }, "viewMode": { - "message": "View Mode" + "message": "預設檢視模式" }, "volume": { "message": "音量" @@ -963,10 +963,10 @@ "message": "白色" }, "windowColor": { - "message": "Window color" + "message": "視窗顏色" }, "windowOpacity": { - "message": "Window opacity" + "message": "視窗透明度" }, "yellow": { "message": "黃色" From bc7146ac3b333300d93e8c5c7ea937383bdb605a Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 25 Oct 2021 17:09:28 +0300 Subject: [PATCH 0420/1224] Upgraded locale.py script --- py/locale.py | 55 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 52 insertions(+), 3 deletions(-) diff --git a/py/locale.py b/py/locale.py index 9456dc683..f28e24600 100644 --- a/py/locale.py +++ b/py/locale.py @@ -7,13 +7,15 @@ # 4.0 Add item # 5.0 Remove item # 6.0 Decode -# 7.0 Initialization +# 7.0 Add locales +# 8.0 Initialization #--------------------------------------------------------------- #--------------------------------------------------------------- # 1.0 IMPORT MODULES #--------------------------------------------------------------- +import io import json import os import pathlib @@ -109,7 +111,51 @@ def decodeCharacters(allFiles): #--------------------------------------------------------------- -# 7.0 INITIALIZATION +# 7.0 ADD LOCALES +#--------------------------------------------------------------- + +def addLocales(): + locales = [ + "ar", + "bn", + "de", + "el", + "en", + "es", + "fr", + "hin", + "hr", + "id", + "it", + "ja", + "ko", + "nb_NO", + "nl", + "no", + "pl", + "pt_BR", + "pt_PT", + "ro", + "ru", + "sk", + "tr", + "zh_CN", + "zh_TW" + ] + + for locale in locales: + if not os.path.exists("../_locales/" + locale): + pathlib.Path("../_locales/" + locale).mkdir(parents=True, exist_ok=True) + + file = io.open("../_locales/" + locale + '/messages.json', mode='w', encoding='utf-8') + + file.write("{}") + + file.close() + + +#--------------------------------------------------------------- +# 8.0 INITIALIZATION #--------------------------------------------------------------- allFiles = getListOfFiles("../_locales/") @@ -119,6 +165,7 @@ def decodeCharacters(allFiles): Add item: 1 Remove item: 2 Decode: 3 +Add locales: 4 -------------------------------- Enter number: """) @@ -128,4 +175,6 @@ def decodeCharacters(allFiles): elif operation == "2" : removeItem(allFiles) elif operation == "3" : - decodeCharacters(allFiles) \ No newline at end of file + decodeCharacters(allFiles) +elif operation == "4" : + addLocales() \ No newline at end of file From 0a666c294356285091ee82e5c5c274d90de61f8a Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 27 Oct 2021 22:14:24 +0300 Subject: [PATCH 0421/1224] v3.712 --- _locales/ar/messages.json | 1986 ++++++++++++++++----------------- _locales/bn/messages.json | 1974 ++++++++++++++++----------------- _locales/de/messages.json | 1974 ++++++++++++++++----------------- _locales/el/messages.json | 1974 ++++++++++++++++----------------- _locales/en/messages.json | 1992 ++++++++++++++++----------------- _locales/es/messages.json | 1974 ++++++++++++++++----------------- _locales/fr/messages.json | 1980 ++++++++++++++++----------------- _locales/hin/messages.json | 1974 ++++++++++++++++----------------- _locales/hr/messages.json | 1986 ++++++++++++++++----------------- _locales/id/messages.json | 1968 ++++++++++++++++----------------- _locales/it/messages.json | 1968 ++++++++++++++++----------------- _locales/ja/messages.json | 1974 ++++++++++++++++----------------- _locales/ko/messages.json | 1968 ++++++++++++++++----------------- _locales/nb_NO/messages.json | 1980 ++++++++++++++++----------------- _locales/nl/messages.json | 1974 ++++++++++++++++----------------- _locales/no/messages.json | 1956 ++++++++++++++++----------------- _locales/pl/messages.json | 1992 ++++++++++++++++----------------- _locales/pt_BR/messages.json | 1974 ++++++++++++++++----------------- _locales/pt_PT/messages.json | 1974 ++++++++++++++++----------------- _locales/ro/messages.json | 1986 ++++++++++++++++----------------- _locales/ru/messages.json | 1986 ++++++++++++++++----------------- _locales/sk/messages.json | 1974 ++++++++++++++++----------------- _locales/tr/messages.json | 1974 ++++++++++++++++----------------- _locales/zh_CN/messages.json | 1998 +++++++++++++++++----------------- _locales/zh_TW/messages.json | 1980 ++++++++++++++++----------------- background.js | 15 + manifest.json | 2 +- popup.css | 100 +- popup.js | 296 ++--- satus.css | 2 +- satus.js | 2 +- youtube-scripts.js | 37 +- 32 files changed, 25058 insertions(+), 24836 deletions(-) diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 459ce169e..0975b8bea 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -1,992 +1,998 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "حول" - }, - "accept": { - "message": "قبول" - }, - "activate": { - "message": "تفعيل" - }, - "activateCaptions": { - "message": "تفعيل الترجمة" - }, - "activateFullscreen": { - "message": "تفعيل ملء الشاشة" - }, - "activated": { - "message": "مفعل" - }, - "activatedFeatures": { - "message": "الميزات المفعلة" - }, - "activeFeatures": { - "message": "الميزات النشطة" - }, - "addScrollToTop": { - "message": "آضف الصعود لأعلى" - }, - "ads": { - "message": "الاعلانات" - }, - "all": { - "message": "الكل" - }, - "allow": { - "message": "سماح" - }, - "allow60fps": { - "message": "السماح لـ60إطار" - }, - "alwaysActive": { - "message": "دائما نشط" - }, - "alwaysShowProgressBar": { - "message": "إظهار شريط التقدم دائمًا" - }, - "amber": { - "message": "العنبر" - }, - "analyzer": { - "message": "المحلل" - }, - "appearance": { - "message": "المظهر العام" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "الصوت" - }, - "audioFormats": { - "message": "تنسيقات الصوت" - }, - "auto": { - "message": "تلقائي" - }, - "autoFullscreen": { - "message": "ملء تلقائي للشاشة" - }, - "autopauseWhenSwitchingTabs": { - "message": "إيقاف تلقائي عند التبديل بين التبويبات" - }, - "autoplay": { - "message": "تشغيل تلقائي" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "إعادة تعيين والنسخ الاحتياطي" - }, - "baseOnSystemColorScheme": { - "message": "يناء على ألوان النظام" - }, - "belowPlayer": { - "message": "اسفل المشغل" - }, - "black": { - "message": "اسود" - }, - "blacklist": { - "message": "القائمة السوداء" - }, - "blockAll": { - "message": "حظر الكل" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "ازرق" - }, - "blueGray": { - "message": "ازرق رمادي" - }, - "bluelight": { - "message": "الضوء الأزرق" - }, - "brown": { - "message": "بنى" - }, - "browser": { - "message": "المتصفح" - }, - "browserVersion": { - "message": "إصدار المتصفح" - }, - "bubbles": { - "message": "فقاعات" - }, - "bug": { - "message": "خلل برمجي" - }, - "buttons": { - "message": "أزرار" - }, - "cancel": { - "message": "إلغاء" - }, - "categories": { - "message": "التصنيفات" - }, - "channel": { - "message": "قناة" - }, - "channels": { - "message": "القنوات" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "الحافظة" - }, - "codecH264": { - "message": "h.الترميز 264" - }, - "collapseOfSubscriptionSections": { - "message": "ضغط قسم الاشتراكات" - }, - "collapsed": { - "message": "ضغط" - }, - "comments": { - "message": "التعليقات" - }, - "confirmationBeforeClosing": { - "message": "التأكيد قبل الإغلاق" - }, - "cookies": { - "message": "ملفات تعريف الارتباط" - }, - "cores": { - "message": "النواه" - }, - "cropChapterTitles": { - "message": "اقتطاع عناوين الفصول" - }, - "customCss": { - "message": "مخصص CSS" - }, - "customJs": { - "message": "مخصص JS" - }, - "customMiniPlayer": { - "message": "المشغل الصغير المخصص" - }, - "cyan": { - "message": "ازرق سماوي" - }, - "dark": { - "message": "داكن" - }, - "darkTheme": { - "message": "مظهر داكن" - }, - "dateAndTime": { - "message": "التاريخ والوقت" - }, - "dawn": { - "message": "فجر" - }, - "decreasePlaybackSpeed": { - "message": "تقليل سرعة التشغيل" - }, - "decreaseVolume": { - "message": "Decrease volume" - }, - "decreaseVolume5": { - "message": "5% خفض الصوت" - }, - "deepOrange": { - "message": "برتقالي داكن" - }, - "deepPurple": { - "message": "أرجواني داكن" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "علامة تبويب القناة الافتراضية" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "حذف ملفات تعريف الارتباط من اليوتيوب" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "الوصف" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "صحراء" - }, - "details": { - "message": "التفاصيل" - }, - "developerOptions": { - "message": "خيارات المطور" - }, - "device": { - "message": "الجهاز" - }, - "dim": { - "message": "داكن" - }, - "disabled": { - "message": "معطل" - }, - "dislike": { - "message": "لم يعجبنى" - }, - "doNotChange": { - "message": "الإفتراضي" - }, - "donate": { - "message": "تبرع" - }, - "draggable": { - "message": "قابل للسحب" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "البريد الإلكتروني" - }, - "empty": { - "message": "فارغة" - }, - "enabled": { - "message": "ممكّن" - }, - "enabledForced": { - "message": "ممكّن (إجباري)" - }, - "expanded": { - "message": "موسع" - }, - "exportSettings": { - "message": "تصدير الإعدادات" - }, - "extension": { - "message": "الإضافة" - }, - "file": { - "message": "ملف" - }, - "filters": { - "message": "مرشحات" - }, - "fitToWindow": { - "message": "مناسب للنافذة" - }, - "flash": { - "message": "فلاش" - }, - "font": { - "message": "الخط" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "الحزء السفلي" - }, - "forceSDR": { - "message": "SDR فرض" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "تثبيت سرعة التشغيل" - }, - "forcedTheaterMode": { - "message": "فرض وضع المسرح" - }, - "forcedVolume": { - "message": "تثبيت مستوى الصوت" - }, - "foundABug": { - "message": "وجدت خطأ؟" - }, - "fullWindow": { - "message": "نافذة كاملة" - }, - "general": { - "message": "عام" - }, - "github": { - "message": "جيتهب" - }, - "goToSearchBox": { - "message": "انتقل إلى مربع البحث" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "كرت الشاشة" - }, - "green": { - "message": "أخضر" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "صورة مصغرة عالية الدقة" - }, - "header": { - "message": "الجزء العلوي" - }, - "hidden": { - "message": "مخفي" - }, - "hiddenOnVideoPage": { - "message": "مخفي على صفحة الفيديو" - }, - "hideAnimatedThumbnails": { - "message": "إخفاء الصور المصغرة المتحركة" - }, - "hideAnnotations": { - "message": "إخفاء التعليقات التوضيحية" - }, - "hideCards": { - "message": "إخفاء البطاقات" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "إخفاء التفاصيل" - }, - "hideEndscreen": { - "message": "إخفاء شاشة النهاية" - }, - "hideFeaturedContent": { - "message": "إخفاء المحتوى المميز" - }, - "hideFooter": { - "message": "إخفاء الجزء السفلي" - }, - "hideGradientBottom": { - "message": "إخفاء التدرج الأسود السفلي" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "إخفاء قائمة التشغيل" - }, - "hideRightButtons": { - "message": "إخفاء الأزرار اليسرى" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "«إخفاء «التمرير للحصول على التفاصيل" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "إخفاء عدد المشاهدات" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "السجلّ" - }, - "home": { - "message": "الصفحة الرئيسية" - }, - "hover": { - "message": "تمرير" - }, - "hoverOnVideoPage": { - "message": "تمرير فوق صفحة الفيديو" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "منذ متى تم تحميل الفيديو" - }, - "icons": { - "message": "أيقونات" - }, - "iconsOnly": { - "message": "أيقونات فقط" - }, - "importSettings": { - "message": "استيراد الاعدادات" - }, - "improveLogo": { - "message": "تحسين الشعار" - }, - "improvedtubeIconOnYoutube": { - "message": "في اليوتيوب ImprovedTube ايقونة" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube لغة" - }, - "improvedtubeVersion": { - "message": "ImprovedTube اصدار" - }, - "increasePlaybackSpeed": { - "message": "زيادة سرعة التشغيل" - }, - "increaseVolume": { - "message": "Increase volume" - }, - "increaseVolume5": { - "message": "5% زيادة الصوت" - }, - "indigo": { - "message": "نيلي" - }, - "items": { - "message": "العناصر" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "اللغات" - }, - "legacyYoutube": { - "message": "اليوتيوب القديم" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "ضوء" - }, - "lightBlue": { - "message": "أزرق فاتح" - }, - "lightGreen": { - "message": "اخضر فاتح" - }, - "like": { - "message": "اعحبني" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "الإعجابات" - }, - "lime": { - "message": "جير" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "قائمة" - }, - "liveChat": { - "message": "محادثة مباشرة" - }, - "liveChatType": { - "message": "نوع المحادثة مباشرة" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "تطبيع الإزعاج" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "التعليم على الفيديو المشاهد" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "مهندس الصوت" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "ألواني" - }, - "name": { - "message": "الاسم" - }, - "nativeMiniPlayer": { - "message": "المشغل الافتراضي الصغير" - }, - "new": { - "message": "جديد" - }, - "nextVideo": { - "message": "الفيديو التالي" - }, - "night": { - "message": "ليل" - }, - "noActiveFeatures": { - "message": "لا يوجد ميزات نشطة" - }, - "noOpenVideoTabs": { - "message": "لا توجد علامات تبويب فيديو مفتوحة" - }, - "none": { - "message": "لاشيء" - }, - "normal": { - "message": "عادي" - }, - "old": { - "message": "قديم" - }, - "onAllVideos": { - "message": "على جميع مقاطع الفيديو" - }, - "onSubscribedChannels": { - "message": "على القنوات المشتركة" - }, - "onlyActiveOnYoutube": { - "message": "نشط فقط على اليوتيوب" - }, - "onlyOnePlayerInstancePlaying": { - "message": "تشغيل مشغل واحد فقط" - }, - "orange": { - "message": "برتقالي" - }, - "os": { - "message": "نظام التشغيل" - }, - "other": { - "message": "آخر" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "الأذونات" - }, - "pictureInPicture": { - "message": "فيديو عائم" - }, - "pink": { - "message": "زهري" - }, - "plain": { - "message": "عادي" - }, - "platform": { - "message": "المنصة" - }, - "playPause": { - "message": "تشغيل / ايقاف" - }, - "playbackSpeed": { - "message": "سرعة التشغيل" - }, - "player": { - "message": "المشغل" - }, - "playerColor": { - "message": "لون المشغل" - }, - "playerSize": { - "message": "حجم المشغل" - }, - "playlist": { - "message": "قائمة التشغيل" - }, - "playlists": { - "message": "قوائم التشغيل" - }, - "popupPlayer": { - "message": "مشفل منبثق" - }, - "position": { - "message": "التموضع" - }, - "pressAnyKeyOrScroll": { - "message": ".اضغط على أي مفتاح أو استخدم عجلة الماوس" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "اضغط على أي مفتاح أو استخدم عجلة الماوس" - }, - "previousVideo": { - "message": "الفيديو السابق" - }, - "primaryColor": { - "message": "اللون الأصلي" - }, - "purple": { - "message": "أرجواني" - }, - "quality": { - "message": "الجودة" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "الذاكرة العشوائية" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "قيمنا" - }, - "red": { - "message": "احمر" - }, - "redDislikeButton": { - "message": "إظهار زر لم يعجبني باللون الأحمر" - }, - "relatedVideos": { - "message": "فيديوهات ذات علاقة" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "إزالة عمليات بحث مرتبطة بـ" - }, - "repeat": { - "message": "تكرار" - }, - "reset": { - "message": "إعادة تعيين" - }, - "resetAllSettings": { - "message": "إعادة تعيين كافة الإعدادات" - }, - "resetAllShortcuts": { - "message": "إعادة تعيين جميع الاختصارات" - }, - "reverse": { - "message": "عكس" - }, - "rotate": { - "message": "استدارة" - }, - "save": { - "message": "حفظ" - }, - "saveAs": { - "message": "حفظ باسم" - }, - "schedule": { - "message": "جدوله" - }, - "screen": { - "message": "الشاشة" - }, - "screenshot": { - "message": "لقطة شاشة" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "بحث" - }, - "searchBarOnly": { - "message": "شريط البحث فقط" - }, - "seekBackward10Seconds": { - "message": "إرجاع بمقدار 10 ثوانٍ" - }, - "seekForward10Seconds": { - "message": "تقديم 10 ثوانٍ إلى الأمام" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "الإعدادات" - }, - "settingsSuccessfullyImported": { - "message": "تم استيراد الإعدادات بنجاح" - }, - "shortcuts": { - "message": "اختصارات" - }, - "showCardsOnMouseHover": { - "message": "عرض البطاقات عند تمرير الماوس" - }, - "showChannelVideosCount": { - "message": "إظهار عدد مقاطع الفيديو للقناة" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "عشوائي" - }, - "sidebar": { - "message": "الشريط الجانبي" - }, - "spacebar": { - "message": "مفتاح المسافة" - }, - "squaredUserImages": { - "message": "صور المستخدمين مربعة" - }, - "static": { - "message": "ثابت" - }, - "statsForNerds": { - "message": "عرض الإحصاءات المفصلة" - }, - "step": { - "message": "خطوة" - }, - "stop": { - "message": "ايقاف" - }, - "style": { - "message": "نمط" - }, - "styles": { - "message": "الأنماط" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "الاشتراكات" - }, - "subtitles": { - "message": "الترجمات" - }, - "sunset": { - "message": "غروب الشمس" - }, - "sunsetToSunrise": { - "message": "من غروب الشمس إلى شروقها" - }, - "systemPeferenceDark": { - "message": "تفضيل النظام: داكن" - }, - "systemPeferenceLight": { - "message": "تفضيل النظام: فاتح" - }, - "teal": { - "message": "أزرق مخضر" - }, - "textColor": { - "message": "لون النص" - }, - "themes": { - "message": "المظاهر" - }, - "thisWillRemoveAllCookies": { - "message": ".سيؤدي هذا إلى إزالة كافة ملفات تعريف الارتباط" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "سيؤدي هذا إلى إزالة جميع ملفات تعريف ارتباط اليوتيوب" - }, - "thisWillResetAllSettings": { - "message": ".سيؤدي هذا إلى إعادة تعيين جميع الإعدادات" - }, - "thisWillResetAllShortcuts": { - "message": "سيؤدي هذا إلى إعادة تعيين جميع الاختصارات" - }, - "thumbnails": { - "message": "الصور المصغرة" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "الوقت من" - }, - "timeTo": { - "message": "وقت ل" - }, - "todayAt": { - "message": "اليوم عند الساعة" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "تبديل وضع البطاقات" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "رسائل المحادثة الهامّة" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "التشغيل التلقائي للفيديو الدعائي" - }, - "translations": { - "message": "الترجمات" - }, - "transparentBackground": { - "message": "خلفية شفافة" - }, - "trending": { - "message": "المحتوى الرائج" - }, - "tryToReloadThePage": { - "message": "حاول إعادة تحميل الصفحة" - }, - "type": { - "message": "النوع" - }, - "upNextAutoplay": { - "message": "تشغيل التالي تلقائيا" - }, - "use24HourFormat": { - "message": "استخدم تنسيق 24 ساعة" - }, - "version": { - "message": "الإصدار" - }, - "video": { - "message": "الفيديو" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "سيتم توسيع وصف الفيديو للحصول على اسم الفئة" - }, - "videoFormats": { - "message": "تنسيقات الفيديو" - }, - "videos": { - "message": "الفيديوهات" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "الصوت" - }, - "watchLater": { - "message": "المشاهدة لاحقا" - }, - "watchTime": { - "message": "وقت المشاهدة" - }, - "whenTabIsChanged": { - "message": "عندما يتم تغيير علامة التبويب" - }, - "white": { - "message": "أبيض" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "أصفر" - }, - "youtubeHeaderLeft": { - "message": "جزء اليوتيوب العلوي (يسار) " - }, - "youtubeHeaderRight": { - "message": "جزء اليوتيوب العلوي (يمين)" - }, - "youtubeHomePage": { - "message": "صفحة اليوتيوب الرئيسية" - }, - "youtubeLanguage": { - "message": "لغة اليوتيوب" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "h.264 يحد اليوتيوب من جودة الفيديو الى ١٠٨٠ لـ الترميز" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "حول" + }, + "accept": { + "message": "قبول" + }, + "activate": { + "message": "تفعيل" + }, + "activateCaptions": { + "message": "تفعيل الترجمة" + }, + "activateFullscreen": { + "message": "تفعيل ملء الشاشة" + }, + "activated": { + "message": "مفعل" + }, + "activatedFeatures": { + "message": "الميزات المفعلة" + }, + "activeFeatures": { + "message": "الميزات النشطة" + }, + "addScrollToTop": { + "message": "آضف الصعود لأعلى" + }, + "ads": { + "message": "الاعلانات" + }, + "all": { + "message": "الكل" + }, + "allow": { + "message": "سماح" + }, + "allow60fps": { + "message": "السماح لـ60إطار" + }, + "alwaysActive": { + "message": "دائما نشط" + }, + "alwaysShowProgressBar": { + "message": "إظهار شريط التقدم دائمًا" + }, + "amber": { + "message": "العنبر" + }, + "analyzer": { + "message": "المحلل" + }, + "appearance": { + "message": "المظهر العام" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "الصوت" + }, + "audioFormats": { + "message": "تنسيقات الصوت" + }, + "auto": { + "message": "تلقائي" + }, + "autoFullscreen": { + "message": "ملء تلقائي للشاشة" + }, + "autopauseWhenSwitchingTabs": { + "message": "إيقاف تلقائي عند التبديل بين التبويبات" + }, + "autoplay": { + "message": "تشغيل تلقائي" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "إعادة تعيين والنسخ الاحتياطي" + }, + "baseOnSystemColorScheme": { + "message": "يناء على ألوان النظام" + }, + "belowPlayer": { + "message": "اسفل المشغل" + }, + "black": { + "message": "اسود" + }, + "blacklist": { + "message": "القائمة السوداء" + }, + "blockAll": { + "message": "حظر الكل" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "ازرق" + }, + "blueGray": { + "message": "ازرق رمادي" + }, + "bluelight": { + "message": "الضوء الأزرق" + }, + "brown": { + "message": "بنى" + }, + "browser": { + "message": "المتصفح" + }, + "browserVersion": { + "message": "إصدار المتصفح" + }, + "bubbles": { + "message": "فقاعات" + }, + "bug": { + "message": "خلل برمجي" + }, + "buttons": { + "message": "أزرار" + }, + "cancel": { + "message": "إلغاء" + }, + "categories": { + "message": "التصنيفات" + }, + "channel": { + "message": "قناة" + }, + "channels": { + "message": "القنوات" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "الحافظة" + }, + "codecH264": { + "message": "h.الترميز 264" + }, + "collapseOfSubscriptionSections": { + "message": "ضغط قسم الاشتراكات" + }, + "collapsed": { + "message": "ضغط" + }, + "comments": { + "message": "التعليقات" + }, + "confirmationBeforeClosing": { + "message": "التأكيد قبل الإغلاق" + }, + "cookies": { + "message": "ملفات تعريف الارتباط" + }, + "cores": { + "message": "النواه" + }, + "cropChapterTitles": { + "message": "اقتطاع عناوين الفصول" + }, + "customCss": { + "message": "مخصص CSS" + }, + "customJs": { + "message": "مخصص JS" + }, + "customMiniPlayer": { + "message": "المشغل الصغير المخصص" + }, + "cyan": { + "message": "ازرق سماوي" + }, + "dark": { + "message": "داكن" + }, + "darkTheme": { + "message": "مظهر داكن" + }, + "dateAndTime": { + "message": "التاريخ والوقت" + }, + "dawn": { + "message": "فجر" + }, + "decreasePlaybackSpeed": { + "message": "تقليل سرعة التشغيل" + }, + "decreaseVolume": { + "message": "Decrease volume" + }, + "decreaseVolume5": { + "message": "5% خفض الصوت" + }, + "deepOrange": { + "message": "برتقالي داكن" + }, + "deepPurple": { + "message": "أرجواني داكن" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "علامة تبويب القناة الافتراضية" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "حذف ملفات تعريف الارتباط من اليوتيوب" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "الوصف" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "صحراء" + }, + "details": { + "message": "التفاصيل" + }, + "developerOptions": { + "message": "خيارات المطور" + }, + "device": { + "message": "الجهاز" + }, + "dim": { + "message": "داكن" + }, + "disabled": { + "message": "معطل" + }, + "dislike": { + "message": "لم يعجبنى" + }, + "doNotChange": { + "message": "الإفتراضي" + }, + "donate": { + "message": "تبرع" + }, + "draggable": { + "message": "قابل للسحب" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "البريد الإلكتروني" + }, + "empty": { + "message": "فارغة" + }, + "enabled": { + "message": "ممكّن" + }, + "enabledForced": { + "message": "ممكّن (إجباري)" + }, + "expanded": { + "message": "موسع" + }, + "exportSettings": { + "message": "تصدير الإعدادات" + }, + "extension": { + "message": "الإضافة" + }, + "file": { + "message": "ملف" + }, + "filters": { + "message": "مرشحات" + }, + "fitToWindow": { + "message": "مناسب للنافذة" + }, + "flash": { + "message": "فلاش" + }, + "font": { + "message": "الخط" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "الحزء السفلي" + }, + "forceSDR": { + "message": "SDR فرض" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "تثبيت سرعة التشغيل" + }, + "forcedTheaterMode": { + "message": "فرض وضع المسرح" + }, + "forcedVolume": { + "message": "تثبيت مستوى الصوت" + }, + "foundABug": { + "message": "وجدت خطأ؟" + }, + "fullWindow": { + "message": "نافذة كاملة" + }, + "general": { + "message": "عام" + }, + "github": { + "message": "جيتهب" + }, + "goToSearchBox": { + "message": "انتقل إلى مربع البحث" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "كرت الشاشة" + }, + "green": { + "message": "أخضر" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "صورة مصغرة عالية الدقة" + }, + "header": { + "message": "الجزء العلوي" + }, + "hidden": { + "message": "مخفي" + }, + "hiddenOnVideoPage": { + "message": "مخفي على صفحة الفيديو" + }, + "hideAnimatedThumbnails": { + "message": "إخفاء الصور المصغرة المتحركة" + }, + "hideAnnotations": { + "message": "إخفاء التعليقات التوضيحية" + }, + "hideCards": { + "message": "إخفاء البطاقات" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "إخفاء التفاصيل" + }, + "hideEndscreen": { + "message": "إخفاء شاشة النهاية" + }, + "hideFeaturedContent": { + "message": "إخفاء المحتوى المميز" + }, + "hideFooter": { + "message": "إخفاء الجزء السفلي" + }, + "hideGradientBottom": { + "message": "إخفاء التدرج الأسود السفلي" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "إخفاء قائمة التشغيل" + }, + "hideRightButtons": { + "message": "إخفاء الأزرار اليسرى" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "«إخفاء «التمرير للحصول على التفاصيل" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "إخفاء عدد المشاهدات" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "السجلّ" + }, + "home": { + "message": "الصفحة الرئيسية" + }, + "hover": { + "message": "تمرير" + }, + "hoverOnVideoPage": { + "message": "تمرير فوق صفحة الفيديو" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "منذ متى تم تحميل الفيديو" + }, + "icons": { + "message": "أيقونات" + }, + "iconsOnly": { + "message": "أيقونات فقط" + }, + "importSettings": { + "message": "استيراد الاعدادات" + }, + "improveLogo": { + "message": "تحسين الشعار" + }, + "improvedtubeIconOnYoutube": { + "message": "في اليوتيوب ImprovedTube ايقونة" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube لغة" + }, + "improvedtubeVersion": { + "message": "ImprovedTube اصدار" + }, + "increasePlaybackSpeed": { + "message": "زيادة سرعة التشغيل" + }, + "increaseVolume": { + "message": "Increase volume" + }, + "increaseVolume5": { + "message": "5% زيادة الصوت" + }, + "indigo": { + "message": "نيلي" + }, + "items": { + "message": "العناصر" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "اللغات" + }, + "legacyYoutube": { + "message": "اليوتيوب القديم" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "ضوء" + }, + "lightBlue": { + "message": "أزرق فاتح" + }, + "lightGreen": { + "message": "اخضر فاتح" + }, + "like": { + "message": "اعحبني" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "الإعجابات" + }, + "lime": { + "message": "جير" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "قائمة" + }, + "liveChat": { + "message": "محادثة مباشرة" + }, + "liveChatType": { + "message": "نوع المحادثة مباشرة" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "تطبيع الإزعاج" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "التعليم على الفيديو المشاهد" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "مهندس الصوت" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "ألواني" + }, + "name": { + "message": "الاسم" + }, + "nativeMiniPlayer": { + "message": "المشغل الافتراضي الصغير" + }, + "new": { + "message": "جديد" + }, + "nextVideo": { + "message": "الفيديو التالي" + }, + "night": { + "message": "ليل" + }, + "noActiveFeatures": { + "message": "لا يوجد ميزات نشطة" + }, + "noOpenVideoTabs": { + "message": "لا توجد علامات تبويب فيديو مفتوحة" + }, + "none": { + "message": "لاشيء" + }, + "normal": { + "message": "عادي" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "قديم" + }, + "onAllVideos": { + "message": "على جميع مقاطع الفيديو" + }, + "onSubscribedChannels": { + "message": "على القنوات المشتركة" + }, + "onlyActiveOnYoutube": { + "message": "نشط فقط على اليوتيوب" + }, + "onlyOnePlayerInstancePlaying": { + "message": "تشغيل مشغل واحد فقط" + }, + "orange": { + "message": "برتقالي" + }, + "os": { + "message": "نظام التشغيل" + }, + "other": { + "message": "آخر" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "الأذونات" + }, + "pictureInPicture": { + "message": "فيديو عائم" + }, + "pink": { + "message": "زهري" + }, + "plain": { + "message": "عادي" + }, + "platform": { + "message": "المنصة" + }, + "playPause": { + "message": "تشغيل / ايقاف" + }, + "playbackSpeed": { + "message": "سرعة التشغيل" + }, + "player": { + "message": "المشغل" + }, + "playerColor": { + "message": "لون المشغل" + }, + "playerSize": { + "message": "حجم المشغل" + }, + "playlist": { + "message": "قائمة التشغيل" + }, + "playlists": { + "message": "قوائم التشغيل" + }, + "popupPlayer": { + "message": "مشفل منبثق" + }, + "position": { + "message": "التموضع" + }, + "pressAnyKeyOrScroll": { + "message": ".اضغط على أي مفتاح أو استخدم عجلة الماوس" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "اضغط على أي مفتاح أو استخدم عجلة الماوس" + }, + "previousVideo": { + "message": "الفيديو السابق" + }, + "primaryColor": { + "message": "اللون الأصلي" + }, + "purple": { + "message": "أرجواني" + }, + "quality": { + "message": "الجودة" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "الذاكرة العشوائية" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "قيمنا" + }, + "red": { + "message": "احمر" + }, + "redDislikeButton": { + "message": "إظهار زر لم يعجبني باللون الأحمر" + }, + "relatedVideos": { + "message": "فيديوهات ذات علاقة" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "إزالة عمليات بحث مرتبطة بـ" + }, + "repeat": { + "message": "تكرار" + }, + "reset": { + "message": "إعادة تعيين" + }, + "resetAllSettings": { + "message": "إعادة تعيين كافة الإعدادات" + }, + "resetAllShortcuts": { + "message": "إعادة تعيين جميع الاختصارات" + }, + "reverse": { + "message": "عكس" + }, + "rotate": { + "message": "استدارة" + }, + "save": { + "message": "حفظ" + }, + "saveAs": { + "message": "حفظ باسم" + }, + "schedule": { + "message": "جدوله" + }, + "screen": { + "message": "الشاشة" + }, + "screenshot": { + "message": "لقطة شاشة" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "بحث" + }, + "searchBarOnly": { + "message": "شريط البحث فقط" + }, + "seekBackward10Seconds": { + "message": "إرجاع بمقدار 10 ثوانٍ" + }, + "seekForward10Seconds": { + "message": "تقديم 10 ثوانٍ إلى الأمام" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "الإعدادات" + }, + "settingsSuccessfullyImported": { + "message": "تم استيراد الإعدادات بنجاح" + }, + "shortcuts": { + "message": "اختصارات" + }, + "showCardsOnMouseHover": { + "message": "عرض البطاقات عند تمرير الماوس" + }, + "showChannelVideosCount": { + "message": "إظهار عدد مقاطع الفيديو للقناة" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "عشوائي" + }, + "sidebar": { + "message": "الشريط الجانبي" + }, + "spacebar": { + "message": "مفتاح المسافة" + }, + "squaredUserImages": { + "message": "صور المستخدمين مربعة" + }, + "static": { + "message": "ثابت" + }, + "statsForNerds": { + "message": "عرض الإحصاءات المفصلة" + }, + "step": { + "message": "خطوة" + }, + "stop": { + "message": "ايقاف" + }, + "style": { + "message": "نمط" + }, + "styles": { + "message": "الأنماط" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "الاشتراكات" + }, + "subtitles": { + "message": "الترجمات" + }, + "sunset": { + "message": "غروب الشمس" + }, + "sunsetToSunrise": { + "message": "من غروب الشمس إلى شروقها" + }, + "systemPeferenceDark": { + "message": "تفضيل النظام: داكن" + }, + "systemPeferenceLight": { + "message": "تفضيل النظام: فاتح" + }, + "teal": { + "message": "أزرق مخضر" + }, + "textColor": { + "message": "لون النص" + }, + "themes": { + "message": "المظاهر" + }, + "thisWillRemoveAllCookies": { + "message": ".سيؤدي هذا إلى إزالة كافة ملفات تعريف الارتباط" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "سيؤدي هذا إلى إزالة جميع ملفات تعريف ارتباط اليوتيوب" + }, + "thisWillResetAllSettings": { + "message": ".سيؤدي هذا إلى إعادة تعيين جميع الإعدادات" + }, + "thisWillResetAllShortcuts": { + "message": "سيؤدي هذا إلى إعادة تعيين جميع الاختصارات" + }, + "thumbnails": { + "message": "الصور المصغرة" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "الوقت من" + }, + "timeTo": { + "message": "وقت ل" + }, + "todayAt": { + "message": "اليوم عند الساعة" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "تبديل وضع البطاقات" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "رسائل المحادثة الهامّة" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "التشغيل التلقائي للفيديو الدعائي" + }, + "translations": { + "message": "الترجمات" + }, + "transparentBackground": { + "message": "خلفية شفافة" + }, + "trending": { + "message": "المحتوى الرائج" + }, + "tryToReloadThePage": { + "message": "حاول إعادة تحميل الصفحة" + }, + "type": { + "message": "النوع" + }, + "upNextAutoplay": { + "message": "تشغيل التالي تلقائيا" + }, + "use24HourFormat": { + "message": "استخدم تنسيق 24 ساعة" + }, + "version": { + "message": "الإصدار" + }, + "video": { + "message": "الفيديو" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "سيتم توسيع وصف الفيديو للحصول على اسم الفئة" + }, + "videoFormats": { + "message": "تنسيقات الفيديو" + }, + "videos": { + "message": "الفيديوهات" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "الصوت" + }, + "watchLater": { + "message": "المشاهدة لاحقا" + }, + "watchTime": { + "message": "وقت المشاهدة" + }, + "whenTabIsChanged": { + "message": "عندما يتم تغيير علامة التبويب" + }, + "white": { + "message": "أبيض" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "أصفر" + }, + "youtubeHeaderLeft": { + "message": "جزء اليوتيوب العلوي (يسار) " + }, + "youtubeHeaderRight": { + "message": "جزء اليوتيوب العلوي (يمين)" + }, + "youtubeHomePage": { + "message": "صفحة اليوتيوب الرئيسية" + }, + "youtubeLanguage": { + "message": "لغة اليوتيوب" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "h.264 يحد اليوتيوب من جودة الفيديو الى ١٠٨٠ لـ الترميز" + } } \ No newline at end of file diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 129786980..5c4951f2d 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -1,986 +1,992 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "সম্পর্কিত" - }, - "accept": { - "message": "গ্রহণ করুন" - }, - "activate": { - "message": "সক্রিয় করুন" - }, - "activateCaptions": { - "message": "ক্যাপশন সক্রিয় করুন" - }, - "activateFullscreen": { - "message": "পূর্ণ পর্দা সক্রিয় করুন" - }, - "activated": { - "message": "সক্রিয়" - }, - "activatedFeatures": { - "message": "বৈশিষ্ট্য সক্রিয় করুন" - }, - "activeFeatures": { - "message": "সক্রিয় বৈশিষ্" - }, - "addScrollToTop": { - "message": "«উপরে যাবার বাটন» যোগ করুন" - }, - "ads": { - "message": "বিজ্ঞাপন" - }, - "all": { - "message": "সব" - }, - "allow": { - "message": "অনুমতি দিন" - }, - "allow60fps": { - "message": "60 ফ্রেম প্রতি সেকেন্ অনুমতি দিনড" - }, - "alwaysActive": { - "message": "সর্বদা সক্রিয়" - }, - "alwaysShowProgressBar": { - "message": "সর্বদা অগ্রগতি বার প্রদর্শন করুন" - }, - "amber": { - "message": "অ্যাম্বার" - }, - "analyzer": { - "message": "বিশ্লেষক" - }, - "appearance": { - "message": "উপস্থিতি" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "শ্রুতি" - }, - "audioFormats": { - "message": "শ্রুতি ফর্ম্যাট" - }, - "auto": { - "message": "অটো" - }, - "autoFullscreen": { - "message": "স্বতঃ পূর্ণস্ক্রীন" - }, - "autopauseWhenSwitchingTabs": { - "message": "ট্যাবগুলি স্যুইচ করার সময় অটো বিরাম দিন" - }, - "autoplay": { - "message": "স্বয়ংক্রিয় চালু" - }, - "backgroundColor": { - "message": "পটভূমির রং" - }, - "backgroundOpacity": { - "message": "পটভূমি অস্বচ্ছতা" - }, - "backupAndReset": { - "message": "ব্যাকআপ এবং পুনরায় সেট করুন" - }, - "baseOnSystemColorScheme": { - "message": "সিস্টেম রঙের স্কিমের ভিত্তিতে" - }, - "belowPlayer": { - "message": "প্লেয়ারের নিচে" - }, - "black": { - "message": "কালো" - }, - "blacklist": { - "message": "কালো তালিকা" - }, - "blockAll": { - "message": "সবাইকে ব্লক" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "নীল" - }, - "blueGray": { - "message": "নীল ধূসর" - }, - "bluelight": { - "message": "নীল আলো" - }, - "brown": { - "message": "বাদামী" - }, - "browser": { - "message": "ব্রাউজার" - }, - "browserVersion": { - "message": "ব্রাউজার মারজান" - }, - "bubbles": { - "message": "বুলবুলা" - }, - "bug": { - "message": "বাগ" - }, - "buttons": { - "message": "বোতাম" - }, - "cancel": { - "message": "বাতিল" - }, - "categories": { - "message": "বিভাগসমূহ" - }, - "channel": { - "message": "চ্যানেল" - }, - "channels": { - "message": "চ্যানেলগুলি" - }, - "characterEdgeStyle": { - "message": "ক্যারেক্টার এজ স্টাইল" - }, - "clipboard": { - "message": "ক্লিপবোর্ড" - }, - "codecH264": { - "message": "কোডেক h.264" - }, - "collapseOfSubscriptionSections": { - "message": "সাবস্ক্রিপশন বিভাগ ভেঙে দেবো" - }, - "collapsed": { - "message": "ভেঙে দেবো" - }, - "comments": { - "message": "মন্তব্য" - }, - "confirmationBeforeClosing": { - "message": "বন্ধ হওয়ার আগে নিশ্চিতকরণ" - }, - "cookies": { - "message": "কুকিজ" - }, - "cores": { - "message": "কোর" - }, - "cropChapterTitles": { - "message": "অধ্যায়ের শিরোনাম হ্রাস করুন" - }, - "customCss": { - "message": "কাস্টম CSS" - }, - "customJs": { - "message": "কাস্টম JS" - }, - "customMiniPlayer": { - "message": "কাস্টম মিনি প্লেয়ার" - }, - "cyan": { - "message": "হালকা নীল" - }, - "dark": { - "message": "গা .়" - }, - "darkTheme": { - "message": "গা .় থিম" - }, - "dateAndTime": { - "message": "তারিখ আর সময়" - }, - "dawn": { - "message": "ভোর" - }, - "decreasePlaybackSpeed": { - "message": "প্লেব্যাকের গতি হ্রাস করুন" - }, - "decreaseVolume": { - "message": "শব্দ হ্রাস করুন" - }, - "deepOrange": { - "message": "গভীর কমলা" - }, - "deepPurple": { - "message": "গভীর বেগুনি" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "ডিফল্ট চ্যানেল ট্যাব" - }, - "defaultContentCountry": { - "message": "ডিফল্ট বিষয়বস্তুর দেশ" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "ইউটিউব এর কুকি ডিলিট করুন" - }, - "depressed": { - "message": "বিষণ্ণ" - }, - "description": { - "message": "বর্ণনা" - }, - "description_ext": { - "message": "ইউটিউব পরিপাটি+স্মার্ট করুন! ইউটিউব ভিডিও কালার অ্যাড স্কিপ ভলিউম স্পিড চ্যানেল টুল স্টাইল এইচডি বিজ্ঞাপন অ্যাডব্লক অ্যাডব্লকার ট্যাগ কীওয়ার্ড প্লেলিস্ট" - }, - "desert": { - "message": "মরুভূমি" - }, - "details": { - "message": "বিশদ" - }, - "developerOptions": { - "message": "বিকাশকারী বিকল্পসমূহ" - }, - "device": { - "message": "যন্ত্র" - }, - "dim": { - "message": "ম্লান" - }, - "disabled": { - "message": "অক্ষম" - }, - "dislike": { - "message": "অপছন্দ" - }, - "doNotChange": { - "message": "পরিবর্তন করবেন না" - }, - "donate": { - "message": "দান করুন" - }, - "draggable": { - "message": "টেনে আনে" - }, - "dropShadow": { - "message": "ছায়া ফেলে দিন" - }, - "email": { - "message": "ইমেল" - }, - "empty": { - "message": "খালি" - }, - "enabled": { - "message": "সক্ষম" - }, - "enabledForced": { - "message": "সক্ষম (জোরপূর্বক)" - }, - "expanded": { - "message": "প্রসারিত" - }, - "exportSettings": { - "message": "সেটিংস রফতানি করুন" - }, - "extension": { - "message": "এক্সটেনশন" - }, - "file": { - "message": "ফাইল" - }, - "filters": { - "message": "ফিল্টার" - }, - "fitToWindow": { - "message": "উইন্ডোতে ফিট করুন" - }, - "flash": { - "message": "ফ্ল্যাশ" - }, - "font": { - "message": "হরফ" - }, - "fontColor": { - "message": "অক্ষরের রং" - }, - "fontFamily": { - "message": "হরফ সংগ্রহ" - }, - "fontOpacity": { - "message": "হরফের অস্বচ্ছতা" - }, - "fontSize": { - "message": "অক্ষরের আকার" - }, - "footer": { - "message": "পাদচরণ" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "জোর করে শুরু থেকে ভিডিও চালান" - }, - "forcedPlaybackSpeed": { - "message": "জোর করে প্লেব্যাক গতি" - }, - "forcedTheaterMode": { - "message": "জোর করে থিয়েটার মোড" - }, - "forcedVolume": { - "message": "জোর করে শব্দ" - }, - "foundABug": { - "message": "একটি বাগ খুঁজে পেয়েছি?" - }, - "fullWindow": { - "message": "পুরো উইন্ডো" - }, - "general": { - "message": "সাধারণ" - }, - "github": { - "message": "গিটহাব" - }, - "goToSearchBox": { - "message": "অনুসন্ধান বাক্সে যান" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "জিপিইউ" - }, - "green": { - "message": "সবুজ" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "এইচডি থাম্বনেল" - }, - "header": { - "message": "শিরোনাম" - }, - "hidden": { - "message": "গোপন" - }, - "hiddenOnVideoPage": { - "message": "ভিডিও পৃষ্ঠায় লুকানো" - }, - "hideAnimatedThumbnails": { - "message": "অ্যানিমেটেড থাম্বনেলগুলি লুকান" - }, - "hideAnnotations": { - "message": "টীকাগুলি লুকান" - }, - "hideCards": { - "message": "কার্ড লুকান" - }, - "hideCountryCode": { - "message": "কান্ট্রি কোড লুকান" - }, - "hideDate": { - "message": "তারিখ লুকান" - }, - "hideDetails": { - "message": "আড়াল বিস্তারিত" - }, - "hideEndscreen": { - "message": "এন্ডস্ক্রিন লুকান" - }, - "hideFeaturedContent": { - "message": "বৈশিষ্ট্যযুক্ত সামগ্রী লুকান" - }, - "hideFooter": { - "message": "পাদলেখ লুকান" - }, - "hideGradientBottom": { - "message": "গ্রেডিয়েন্ট নীচে লুকান" - }, - "hideMoreButton": { - "message": "আরও লুকান বোতাম" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "প্লেলিস্ট লুকান" - }, - "hideRightButtons": { - "message": "ডান বোতামগুলি লুকান" - }, - "hideSaveButton": { - "message": "সংরক্ষণ ভোতার লোকাল" - }, - "hideScrollForDetails": { - "message": "«বিশদ জন্য স্ক্রোলs» লুকান" - }, - "hideShareButton": { - "message": "শেয়ার বাটন লোকাল" - }, - "hideSkipOverlay": { - "message": "স্কিপ ওভারলে লুকান" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "দর্শন গণনা লুকান" - }, - "hideVoiceSearchButton": { - "message": "বক্তৃতা সার্চ বাটন লুকান" - }, - "high": { - "message": "High" - }, - "history": { - "message": "ইতিহাস" - }, - "home": { - "message": "প্রধান" - }, - "hover": { - "message": "ঘোরা" - }, - "hoverOnVideoPage": { - "message": "ভিডিও পৃষ্ঠায় ঘোরা" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "ভিডিওটি কত আগে আপলোড হয়েছিল" - }, - "icons": { - "message": "আইকন" - }, - "iconsOnly": { - "message": "আইকন" - }, - "importSettings": { - "message": "সেটিংস আমদানি করুন" - }, - "improveLogo": { - "message": "লোগো উন্নত করুন" - }, - "improvedtubeIconOnYoutube": { - "message": "ইউটিউবে উন্নত আইকন" - }, - "improvedtubeLanguage": { - "message": "উন্নত ইউটিউব ভাষা" - }, - "improvedtubeVersion": { - "message": "উন্নত YouTube সংস্করণ" - }, - "increasePlaybackSpeed": { - "message": "প্লেব্যাকের গতি বাড়ান" - }, - "increaseVolume": { - "message": "শব্দ বৃদ্ধি" - }, - "indigo": { - "message": "নীল" - }, - "items": { - "message": "আইটেম" - }, - "language": { - "message": "ভাষা" - }, - "languages": { - "message": "ভাষা" - }, - "legacyYoutube": { - "message": "উত্তরাধিকার ইউটিউব" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "হালকাো" - }, - "lightBlue": { - "message": "হালকা নীল" - }, - "lightGreen": { - "message": "হালকা সবুজ" - }, - "like": { - "message": "লাইক" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "লাইক গুলি" - }, - "lime": { - "message": "চুন" - }, - "limitPageWidth": { - "message": "পৃষ্ঠার প্রস্থ সীমিত করুন" - }, - "list": { - "message": "তালিকা" - }, - "liveChat": { - "message": "সরাসরি কথোপকথন" - }, - "liveChatType": { - "message": "লাইভ চ্যাট টাইপ" - }, - "location": { - "message": "অবস্থান" - }, - "loudnessNormalization": { - "message": "আওয়াজের স্বাভাবিককরণ" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "দেখা ভিডিওগুলি চিহ্নিত করুন" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "মিক্সার" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "আমার রং" - }, - "name": { - "message": "নাম" - }, - "nativeMiniPlayer": { - "message": "নেটিভ মিনি প্লেয়ার" - }, - "new": { - "message": "নতুন" - }, - "nextVideo": { - "message": "পরবর্তী ভিডিও" - }, - "night": { - "message": "রাত" - }, - "noActiveFeatures": { - "message": "কোনও সক্রিয় বৈশিষ্ট্য নেই" - }, - "noOpenVideoTabs": { - "message": "কোনও খোলা ভিডিও ট্যাব নেই" - }, - "none": { - "message": "কিছুই না" - }, - "normal": { - "message": "সাধারণ" - }, - "old": { - "message": "পুরাতন" - }, - "onAllVideos": { - "message": "সমস্ত ভিডিওতে" - }, - "onSubscribedChannels": { - "message": "সাবস্ক্রাইব করা চ্যানেলগুলিতে" - }, - "onlyActiveOnYoutube": { - "message": "শুধুমাত্র ইউটিউবে সক্রিয়" - }, - "onlyOnePlayerInstancePlaying": { - "message": "কেবলমাত্র একজন খেলোয়াড় খেলছে" - }, - "orange": { - "message": "কমলা" - }, - "os": { - "message": "ওএস" - }, - "other": { - "message": "অন্যান্য" - }, - "outline": { - "message": "রূপরেখা" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "অনুমতি" - }, - "pictureInPicture": { - "message": "পিকচার ইন পিকচার" - }, - "pink": { - "message": "গোলাপী" - }, - "plain": { - "message": "সরল" - }, - "platform": { - "message": "প্ল্যাটফর্ম" - }, - "playPause": { - "message": "খেলার / বিরতি" - }, - "playbackSpeed": { - "message": "প্লেব্যাক গতি" - }, - "player": { - "message": "প্লেয়ার" - }, - "playerColor": { - "message": "প্লেয়ারের রঙ" - }, - "playerSize": { - "message": "খেলোয়াড়ের আকার" - }, - "playlist": { - "message": "প্লেলিস্ট" - }, - "playlists": { - "message": "প্লেলিস্ট" - }, - "popupPlayer": { - "message": "পপআপ প্লেয়ার" - }, - "position": { - "message": "অবস্থান" - }, - "pressAnyKeyOrScroll": { - "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" - }, - "previousVideo": { - "message": "পূর্ববর্তী ভিডিও" - }, - "primaryColor": { - "message": "মৌলিক রঙ" - }, - "purple": { - "message": "বেগুনি" - }, - "quality": { - "message": "গুণ" - }, - "raised": { - "message": "উত্থাপিত" - }, - "ram": { - "message": "র্যাম" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "মতামত দিন" - }, - "red": { - "message": "লাল" - }, - "redDislikeButton": { - "message": "অপছন্দ বাটন লাল রঙ দেখান" - }, - "relatedVideos": { - "message": "সংশ্লিষ্ট ভিডিও" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "সম্পর্কিত অনুসন্ধান ফলাফল সরান" - }, - "repeat": { - "message": "পুনরাবৃত্তি" - }, - "reset": { - "message": "রিসেট" - }, - "resetAllSettings": { - "message": "সমস্ত সেটিংস পুনরায় সেট করুন" - }, - "resetAllShortcuts": { - "message": "সমস্ত শর্টকাট পুনরায় সেট করুন" - }, - "reverse": { - "message": "বিপরীত" - }, - "rotate": { - "message": "ঘুরান" - }, - "save": { - "message": "সংরক্ষণ" - }, - "saveAs": { - "message": "সংরক্ষণ করুন" - }, - "schedule": { - "message": "সময়সূচী" - }, - "screen": { - "message": "পর্দা" - }, - "screenshot": { - "message": "স্ক্রিনশট" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "অনুসন্ধান করুন" - }, - "searchBarOnly": { - "message": "অনুসন্ধান বার কেবল" - }, - "seekBackward10Seconds": { - "message": "পিছনে 10 সেকেন্ড সন্ধান করুন" - }, - "seekForward10Seconds": { - "message": "10 সেকেন্ড এগিয়ে যান" - }, - "seekNextChapter": { - "message": "পরবর্তী অধ্যায় সন্ধান করুন" - }, - "seekPreviousChapter": { - "message": "পূর্ববর্তী অধ্যায় সন্ধান করুন" - }, - "settings": { - "message": "সেটিংস" - }, - "settingsSuccessfullyImported": { - "message": "সেটিংস সফলভাবে আমদানি করা হয়েছে" - }, - "shortcuts": { - "message": "শর্টকাটস" - }, - "showCardsOnMouseHover": { - "message": "মাউস হোভারে কার্ডগুলি দেখান" - }, - "showChannelVideosCount": { - "message": "চ্যানেল ভিডিও গণনা দেখান" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "ভিডিও অবশিষ্ট সময় দেখান" - }, - "shuffle": { - "message": "অদলবদল" - }, - "sidebar": { - "message": "সাইডবার" - }, - "spacebar": { - "message": "স্পেসবার" - }, - "squaredUserImages": { - "message": "স্কোয়ার ব্যবহারকারীর চিত্রসমূহ" - }, - "static": { - "message": "স্থির" - }, - "statsForNerds": { - "message": "ডেভলপারের জন্য পরিসংখ্যান দেখান" - }, - "step": { - "message": "পদক্ষেপ" - }, - "stop": { - "message": "থামো" - }, - "style": { - "message": "স্টাইল" - }, - "styles": { - "message": "শৈলী" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "সাবস্ক্রিপশন" - }, - "subtitles": { - "message": "সাবটাইটেল" - }, - "sunset": { - "message": "সূর্যাস্ত" - }, - "sunsetToSunrise": { - "message": "সূর্যোদয় সূর্যোদয়" - }, - "systemPeferenceDark": { - "message": "সিস্টেমের পছন্দসমূহ : dark" - }, - "systemPeferenceLight": { - "message": "সিস্টেমের পছন্দসমূহ : light" - }, - "teal": { - "message": "টিল" - }, - "textColor": { - "message": "লেখার রঙ" - }, - "themes": { - "message": "থিমস" - }, - "thisWillRemoveAllCookies": { - "message": "এটি সমস্ত কুকি মুছে ফেলবে।" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "এটি সমস্ত ইউটিউব কুকিজ অপসারণ করবে" - }, - "thisWillResetAllSettings": { - "message": "এটি সমস্ত সেটিংস পুনরায় সেট করবে।" - }, - "thisWillResetAllShortcuts": { - "message": "এটি সমস্ত শর্টকাট পুনরায় সেট করবে" - }, - "thumbnails": { - "message": "থাম্বনেইলস" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "সময় থেকে" - }, - "timeTo": { - "message": "সময়" - }, - "todayAt": { - "message": "আজ এ" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "কার্ড প্রতিস্থাপন করুন" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "শীর্ষ চ্যাট" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "ট্রেলার অটোপ্লে" - }, - "translations": { - "message": "অনুবাদ" - }, - "transparentBackground": { - "message": "স্বচ্ছ পটভূমি" - }, - "trending": { - "message": "চলমান" - }, - "tryToReloadThePage": { - "message": "পৃষ্ঠাটি পুনরায় লোড করার চেষ্টা করুন" - }, - "type": { - "message": "প্রকার" - }, - "upNextAutoplay": { - "message": "পরবর্তী অটোপ্লে" - }, - "use24HourFormat": { - "message": "24 ঘন্টা বিন্যাস ব্যবহার করুন" - }, - "version": { - "message": "সংস্করণ" - }, - "video": { - "message": "ভিডিও" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "বিভাগটির নাম পেতে ভিডিওর বর্ণনাটি প্রসারিত হবে" - }, - "videoFormats": { - "message": "ভিডিও ফর্ম্যাট" - }, - "videos": { - "message": "ভিডিও" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "শব্দ" - }, - "watchLater": { - "message": "পরে দেখুন" - }, - "watchTime": { - "message": "দেখার সময়" - }, - "whenTabIsChanged": { - "message": "ট্যাব পরিবর্তন করা হয়" - }, - "white": { - "message": "সাদা" - }, - "windowColor": { - "message": "উইন্ডো রঙ" - }, - "windowOpacity": { - "message": "উইন্ডোর অস্বচ্ছতা" - }, - "yellow": { - "message": "হলুদ" - }, - "youtubeHeaderLeft": { - "message": "YouTube শিরোনাম (বাম)" - }, - "youtubeHeaderRight": { - "message": "YouTube শিরোনাম (ডানদিকে)" - }, - "youtubeHomePage": { - "message": "ইউটিউব হোম পৃষ্ঠা" - }, - "youtubeLanguage": { - "message": "ইউটিউব ভাষা" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "ইউটিউব h.264 কোডেকের জন্য ভিডিও গুণমানকে 1080p এর মধ্যে সীমাবদ্ধ করে" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "সম্পর্কিত" + }, + "accept": { + "message": "গ্রহণ করুন" + }, + "activate": { + "message": "সক্রিয় করুন" + }, + "activateCaptions": { + "message": "ক্যাপশন সক্রিয় করুন" + }, + "activateFullscreen": { + "message": "পূর্ণ পর্দা সক্রিয় করুন" + }, + "activated": { + "message": "সক্রিয়" + }, + "activatedFeatures": { + "message": "বৈশিষ্ট্য সক্রিয় করুন" + }, + "activeFeatures": { + "message": "সক্রিয় বৈশিষ্" + }, + "addScrollToTop": { + "message": "«উপরে যাবার বাটন» যোগ করুন" + }, + "ads": { + "message": "বিজ্ঞাপন" + }, + "all": { + "message": "সব" + }, + "allow": { + "message": "অনুমতি দিন" + }, + "allow60fps": { + "message": "60 ফ্রেম প্রতি সেকেন্ অনুমতি দিনড" + }, + "alwaysActive": { + "message": "সর্বদা সক্রিয়" + }, + "alwaysShowProgressBar": { + "message": "সর্বদা অগ্রগতি বার প্রদর্শন করুন" + }, + "amber": { + "message": "অ্যাম্বার" + }, + "analyzer": { + "message": "বিশ্লেষক" + }, + "appearance": { + "message": "উপস্থিতি" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "শ্রুতি" + }, + "audioFormats": { + "message": "শ্রুতি ফর্ম্যাট" + }, + "auto": { + "message": "অটো" + }, + "autoFullscreen": { + "message": "স্বতঃ পূর্ণস্ক্রীন" + }, + "autopauseWhenSwitchingTabs": { + "message": "ট্যাবগুলি স্যুইচ করার সময় অটো বিরাম দিন" + }, + "autoplay": { + "message": "স্বয়ংক্রিয় চালু" + }, + "backgroundColor": { + "message": "পটভূমির রং" + }, + "backgroundOpacity": { + "message": "পটভূমি অস্বচ্ছতা" + }, + "backupAndReset": { + "message": "ব্যাকআপ এবং পুনরায় সেট করুন" + }, + "baseOnSystemColorScheme": { + "message": "সিস্টেম রঙের স্কিমের ভিত্তিতে" + }, + "belowPlayer": { + "message": "প্লেয়ারের নিচে" + }, + "black": { + "message": "কালো" + }, + "blacklist": { + "message": "কালো তালিকা" + }, + "blockAll": { + "message": "সবাইকে ব্লক" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "নীল" + }, + "blueGray": { + "message": "নীল ধূসর" + }, + "bluelight": { + "message": "নীল আলো" + }, + "brown": { + "message": "বাদামী" + }, + "browser": { + "message": "ব্রাউজার" + }, + "browserVersion": { + "message": "ব্রাউজার মারজান" + }, + "bubbles": { + "message": "বুলবুলা" + }, + "bug": { + "message": "বাগ" + }, + "buttons": { + "message": "বোতাম" + }, + "cancel": { + "message": "বাতিল" + }, + "categories": { + "message": "বিভাগসমূহ" + }, + "channel": { + "message": "চ্যানেল" + }, + "channels": { + "message": "চ্যানেলগুলি" + }, + "characterEdgeStyle": { + "message": "ক্যারেক্টার এজ স্টাইল" + }, + "clipboard": { + "message": "ক্লিপবোর্ড" + }, + "codecH264": { + "message": "কোডেক h.264" + }, + "collapseOfSubscriptionSections": { + "message": "সাবস্ক্রিপশন বিভাগ ভেঙে দেবো" + }, + "collapsed": { + "message": "ভেঙে দেবো" + }, + "comments": { + "message": "মন্তব্য" + }, + "confirmationBeforeClosing": { + "message": "বন্ধ হওয়ার আগে নিশ্চিতকরণ" + }, + "cookies": { + "message": "কুকিজ" + }, + "cores": { + "message": "কোর" + }, + "cropChapterTitles": { + "message": "অধ্যায়ের শিরোনাম হ্রাস করুন" + }, + "customCss": { + "message": "কাস্টম CSS" + }, + "customJs": { + "message": "কাস্টম JS" + }, + "customMiniPlayer": { + "message": "কাস্টম মিনি প্লেয়ার" + }, + "cyan": { + "message": "হালকা নীল" + }, + "dark": { + "message": "গা .়" + }, + "darkTheme": { + "message": "গা .় থিম" + }, + "dateAndTime": { + "message": "তারিখ আর সময়" + }, + "dawn": { + "message": "ভোর" + }, + "decreasePlaybackSpeed": { + "message": "প্লেব্যাকের গতি হ্রাস করুন" + }, + "decreaseVolume": { + "message": "শব্দ হ্রাস করুন" + }, + "deepOrange": { + "message": "গভীর কমলা" + }, + "deepPurple": { + "message": "গভীর বেগুনি" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "ডিফল্ট চ্যানেল ট্যাব" + }, + "defaultContentCountry": { + "message": "ডিফল্ট বিষয়বস্তুর দেশ" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "ইউটিউব এর কুকি ডিলিট করুন" + }, + "depressed": { + "message": "বিষণ্ণ" + }, + "description": { + "message": "বর্ণনা" + }, + "description_ext": { + "message": "ইউটিউব পরিপাটি+স্মার্ট করুন! ইউটিউব ভিডিও কালার অ্যাড স্কিপ ভলিউম স্পিড চ্যানেল টুল স্টাইল এইচডি বিজ্ঞাপন অ্যাডব্লক অ্যাডব্লকার ট্যাগ কীওয়ার্ড প্লেলিস্ট" + }, + "desert": { + "message": "মরুভূমি" + }, + "details": { + "message": "বিশদ" + }, + "developerOptions": { + "message": "বিকাশকারী বিকল্পসমূহ" + }, + "device": { + "message": "যন্ত্র" + }, + "dim": { + "message": "ম্লান" + }, + "disabled": { + "message": "অক্ষম" + }, + "dislike": { + "message": "অপছন্দ" + }, + "doNotChange": { + "message": "পরিবর্তন করবেন না" + }, + "donate": { + "message": "দান করুন" + }, + "draggable": { + "message": "টেনে আনে" + }, + "dropShadow": { + "message": "ছায়া ফেলে দিন" + }, + "email": { + "message": "ইমেল" + }, + "empty": { + "message": "খালি" + }, + "enabled": { + "message": "সক্ষম" + }, + "enabledForced": { + "message": "সক্ষম (জোরপূর্বক)" + }, + "expanded": { + "message": "প্রসারিত" + }, + "exportSettings": { + "message": "সেটিংস রফতানি করুন" + }, + "extension": { + "message": "এক্সটেনশন" + }, + "file": { + "message": "ফাইল" + }, + "filters": { + "message": "ফিল্টার" + }, + "fitToWindow": { + "message": "উইন্ডোতে ফিট করুন" + }, + "flash": { + "message": "ফ্ল্যাশ" + }, + "font": { + "message": "হরফ" + }, + "fontColor": { + "message": "অক্ষরের রং" + }, + "fontFamily": { + "message": "হরফ সংগ্রহ" + }, + "fontOpacity": { + "message": "হরফের অস্বচ্ছতা" + }, + "fontSize": { + "message": "অক্ষরের আকার" + }, + "footer": { + "message": "পাদচরণ" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "জোর করে শুরু থেকে ভিডিও চালান" + }, + "forcedPlaybackSpeed": { + "message": "জোর করে প্লেব্যাক গতি" + }, + "forcedTheaterMode": { + "message": "জোর করে থিয়েটার মোড" + }, + "forcedVolume": { + "message": "জোর করে শব্দ" + }, + "foundABug": { + "message": "একটি বাগ খুঁজে পেয়েছি?" + }, + "fullWindow": { + "message": "পুরো উইন্ডো" + }, + "general": { + "message": "সাধারণ" + }, + "github": { + "message": "গিটহাব" + }, + "goToSearchBox": { + "message": "অনুসন্ধান বাক্সে যান" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "জিপিইউ" + }, + "green": { + "message": "সবুজ" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "এইচডি থাম্বনেল" + }, + "header": { + "message": "শিরোনাম" + }, + "hidden": { + "message": "গোপন" + }, + "hiddenOnVideoPage": { + "message": "ভিডিও পৃষ্ঠায় লুকানো" + }, + "hideAnimatedThumbnails": { + "message": "অ্যানিমেটেড থাম্বনেলগুলি লুকান" + }, + "hideAnnotations": { + "message": "টীকাগুলি লুকান" + }, + "hideCards": { + "message": "কার্ড লুকান" + }, + "hideCountryCode": { + "message": "কান্ট্রি কোড লুকান" + }, + "hideDate": { + "message": "তারিখ লুকান" + }, + "hideDetails": { + "message": "আড়াল বিস্তারিত" + }, + "hideEndscreen": { + "message": "এন্ডস্ক্রিন লুকান" + }, + "hideFeaturedContent": { + "message": "বৈশিষ্ট্যযুক্ত সামগ্রী লুকান" + }, + "hideFooter": { + "message": "পাদলেখ লুকান" + }, + "hideGradientBottom": { + "message": "গ্রেডিয়েন্ট নীচে লুকান" + }, + "hideMoreButton": { + "message": "আরও লুকান বোতাম" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "প্লেলিস্ট লুকান" + }, + "hideRightButtons": { + "message": "ডান বোতামগুলি লুকান" + }, + "hideSaveButton": { + "message": "সংরক্ষণ ভোতার লোকাল" + }, + "hideScrollForDetails": { + "message": "«বিশদ জন্য স্ক্রোলs» লুকান" + }, + "hideShareButton": { + "message": "শেয়ার বাটন লোকাল" + }, + "hideSkipOverlay": { + "message": "স্কিপ ওভারলে লুকান" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "দর্শন গণনা লুকান" + }, + "hideVoiceSearchButton": { + "message": "বক্তৃতা সার্চ বাটন লুকান" + }, + "high": { + "message": "High" + }, + "history": { + "message": "ইতিহাস" + }, + "home": { + "message": "প্রধান" + }, + "hover": { + "message": "ঘোরা" + }, + "hoverOnVideoPage": { + "message": "ভিডিও পৃষ্ঠায় ঘোরা" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "ভিডিওটি কত আগে আপলোড হয়েছিল" + }, + "icons": { + "message": "আইকন" + }, + "iconsOnly": { + "message": "আইকন" + }, + "importSettings": { + "message": "সেটিংস আমদানি করুন" + }, + "improveLogo": { + "message": "লোগো উন্নত করুন" + }, + "improvedtubeIconOnYoutube": { + "message": "ইউটিউবে উন্নত আইকন" + }, + "improvedtubeLanguage": { + "message": "উন্নত ইউটিউব ভাষা" + }, + "improvedtubeVersion": { + "message": "উন্নত YouTube সংস্করণ" + }, + "increasePlaybackSpeed": { + "message": "প্লেব্যাকের গতি বাড়ান" + }, + "increaseVolume": { + "message": "শব্দ বৃদ্ধি" + }, + "indigo": { + "message": "নীল" + }, + "items": { + "message": "আইটেম" + }, + "language": { + "message": "ভাষা" + }, + "languages": { + "message": "ভাষা" + }, + "legacyYoutube": { + "message": "উত্তরাধিকার ইউটিউব" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "হালকাো" + }, + "lightBlue": { + "message": "হালকা নীল" + }, + "lightGreen": { + "message": "হালকা সবুজ" + }, + "like": { + "message": "লাইক" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "লাইক গুলি" + }, + "lime": { + "message": "চুন" + }, + "limitPageWidth": { + "message": "পৃষ্ঠার প্রস্থ সীমিত করুন" + }, + "list": { + "message": "তালিকা" + }, + "liveChat": { + "message": "সরাসরি কথোপকথন" + }, + "liveChatType": { + "message": "লাইভ চ্যাট টাইপ" + }, + "location": { + "message": "অবস্থান" + }, + "loudnessNormalization": { + "message": "আওয়াজের স্বাভাবিককরণ" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "দেখা ভিডিওগুলি চিহ্নিত করুন" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "মিক্সার" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "আমার রং" + }, + "name": { + "message": "নাম" + }, + "nativeMiniPlayer": { + "message": "নেটিভ মিনি প্লেয়ার" + }, + "new": { + "message": "নতুন" + }, + "nextVideo": { + "message": "পরবর্তী ভিডিও" + }, + "night": { + "message": "রাত" + }, + "noActiveFeatures": { + "message": "কোনও সক্রিয় বৈশিষ্ট্য নেই" + }, + "noOpenVideoTabs": { + "message": "কোনও খোলা ভিডিও ট্যাব নেই" + }, + "none": { + "message": "কিছুই না" + }, + "normal": { + "message": "সাধারণ" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "পুরাতন" + }, + "onAllVideos": { + "message": "সমস্ত ভিডিওতে" + }, + "onSubscribedChannels": { + "message": "সাবস্ক্রাইব করা চ্যানেলগুলিতে" + }, + "onlyActiveOnYoutube": { + "message": "শুধুমাত্র ইউটিউবে সক্রিয়" + }, + "onlyOnePlayerInstancePlaying": { + "message": "কেবলমাত্র একজন খেলোয়াড় খেলছে" + }, + "orange": { + "message": "কমলা" + }, + "os": { + "message": "ওএস" + }, + "other": { + "message": "অন্যান্য" + }, + "outline": { + "message": "রূপরেখা" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "অনুমতি" + }, + "pictureInPicture": { + "message": "পিকচার ইন পিকচার" + }, + "pink": { + "message": "গোলাপী" + }, + "plain": { + "message": "সরল" + }, + "platform": { + "message": "প্ল্যাটফর্ম" + }, + "playPause": { + "message": "খেলার / বিরতি" + }, + "playbackSpeed": { + "message": "প্লেব্যাক গতি" + }, + "player": { + "message": "প্লেয়ার" + }, + "playerColor": { + "message": "প্লেয়ারের রঙ" + }, + "playerSize": { + "message": "খেলোয়াড়ের আকার" + }, + "playlist": { + "message": "প্লেলিস্ট" + }, + "playlists": { + "message": "প্লেলিস্ট" + }, + "popupPlayer": { + "message": "পপআপ প্লেয়ার" + }, + "position": { + "message": "অবস্থান" + }, + "pressAnyKeyOrScroll": { + "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "যে কোনও কী টিপুন বা মাউস হুইল ব্যবহার করুন।" + }, + "previousVideo": { + "message": "পূর্ববর্তী ভিডিও" + }, + "primaryColor": { + "message": "মৌলিক রঙ" + }, + "purple": { + "message": "বেগুনি" + }, + "quality": { + "message": "গুণ" + }, + "raised": { + "message": "উত্থাপিত" + }, + "ram": { + "message": "র্যাম" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "মতামত দিন" + }, + "red": { + "message": "লাল" + }, + "redDislikeButton": { + "message": "অপছন্দ বাটন লাল রঙ দেখান" + }, + "relatedVideos": { + "message": "সংশ্লিষ্ট ভিডিও" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "সম্পর্কিত অনুসন্ধান ফলাফল সরান" + }, + "repeat": { + "message": "পুনরাবৃত্তি" + }, + "reset": { + "message": "রিসেট" + }, + "resetAllSettings": { + "message": "সমস্ত সেটিংস পুনরায় সেট করুন" + }, + "resetAllShortcuts": { + "message": "সমস্ত শর্টকাট পুনরায় সেট করুন" + }, + "reverse": { + "message": "বিপরীত" + }, + "rotate": { + "message": "ঘুরান" + }, + "save": { + "message": "সংরক্ষণ" + }, + "saveAs": { + "message": "সংরক্ষণ করুন" + }, + "schedule": { + "message": "সময়সূচী" + }, + "screen": { + "message": "পর্দা" + }, + "screenshot": { + "message": "স্ক্রিনশট" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "অনুসন্ধান করুন" + }, + "searchBarOnly": { + "message": "অনুসন্ধান বার কেবল" + }, + "seekBackward10Seconds": { + "message": "পিছনে 10 সেকেন্ড সন্ধান করুন" + }, + "seekForward10Seconds": { + "message": "10 সেকেন্ড এগিয়ে যান" + }, + "seekNextChapter": { + "message": "পরবর্তী অধ্যায় সন্ধান করুন" + }, + "seekPreviousChapter": { + "message": "পূর্ববর্তী অধ্যায় সন্ধান করুন" + }, + "settings": { + "message": "সেটিংস" + }, + "settingsSuccessfullyImported": { + "message": "সেটিংস সফলভাবে আমদানি করা হয়েছে" + }, + "shortcuts": { + "message": "শর্টকাটস" + }, + "showCardsOnMouseHover": { + "message": "মাউস হোভারে কার্ডগুলি দেখান" + }, + "showChannelVideosCount": { + "message": "চ্যানেল ভিডিও গণনা দেখান" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "ভিডিও অবশিষ্ট সময় দেখান" + }, + "shuffle": { + "message": "অদলবদল" + }, + "sidebar": { + "message": "সাইডবার" + }, + "spacebar": { + "message": "স্পেসবার" + }, + "squaredUserImages": { + "message": "স্কোয়ার ব্যবহারকারীর চিত্রসমূহ" + }, + "static": { + "message": "স্থির" + }, + "statsForNerds": { + "message": "ডেভলপারের জন্য পরিসংখ্যান দেখান" + }, + "step": { + "message": "পদক্ষেপ" + }, + "stop": { + "message": "থামো" + }, + "style": { + "message": "স্টাইল" + }, + "styles": { + "message": "শৈলী" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "সাবস্ক্রিপশন" + }, + "subtitles": { + "message": "সাবটাইটেল" + }, + "sunset": { + "message": "সূর্যাস্ত" + }, + "sunsetToSunrise": { + "message": "সূর্যোদয় সূর্যোদয়" + }, + "systemPeferenceDark": { + "message": "সিস্টেমের পছন্দসমূহ : dark" + }, + "systemPeferenceLight": { + "message": "সিস্টেমের পছন্দসমূহ : light" + }, + "teal": { + "message": "টিল" + }, + "textColor": { + "message": "লেখার রঙ" + }, + "themes": { + "message": "থিমস" + }, + "thisWillRemoveAllCookies": { + "message": "এটি সমস্ত কুকি মুছে ফেলবে।" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "এটি সমস্ত ইউটিউব কুকিজ অপসারণ করবে" + }, + "thisWillResetAllSettings": { + "message": "এটি সমস্ত সেটিংস পুনরায় সেট করবে।" + }, + "thisWillResetAllShortcuts": { + "message": "এটি সমস্ত শর্টকাট পুনরায় সেট করবে" + }, + "thumbnails": { + "message": "থাম্বনেইলস" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "সময় থেকে" + }, + "timeTo": { + "message": "সময়" + }, + "todayAt": { + "message": "আজ এ" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "কার্ড প্রতিস্থাপন করুন" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "শীর্ষ চ্যাট" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "ট্রেলার অটোপ্লে" + }, + "translations": { + "message": "অনুবাদ" + }, + "transparentBackground": { + "message": "স্বচ্ছ পটভূমি" + }, + "trending": { + "message": "চলমান" + }, + "tryToReloadThePage": { + "message": "পৃষ্ঠাটি পুনরায় লোড করার চেষ্টা করুন" + }, + "type": { + "message": "প্রকার" + }, + "upNextAutoplay": { + "message": "পরবর্তী অটোপ্লে" + }, + "use24HourFormat": { + "message": "24 ঘন্টা বিন্যাস ব্যবহার করুন" + }, + "version": { + "message": "সংস্করণ" + }, + "video": { + "message": "ভিডিও" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "বিভাগটির নাম পেতে ভিডিওর বর্ণনাটি প্রসারিত হবে" + }, + "videoFormats": { + "message": "ভিডিও ফর্ম্যাট" + }, + "videos": { + "message": "ভিডিও" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "শব্দ" + }, + "watchLater": { + "message": "পরে দেখুন" + }, + "watchTime": { + "message": "দেখার সময়" + }, + "whenTabIsChanged": { + "message": "ট্যাব পরিবর্তন করা হয়" + }, + "white": { + "message": "সাদা" + }, + "windowColor": { + "message": "উইন্ডো রঙ" + }, + "windowOpacity": { + "message": "উইন্ডোর অস্বচ্ছতা" + }, + "yellow": { + "message": "হলুদ" + }, + "youtubeHeaderLeft": { + "message": "YouTube শিরোনাম (বাম)" + }, + "youtubeHeaderRight": { + "message": "YouTube শিরোনাম (ডানদিকে)" + }, + "youtubeHomePage": { + "message": "ইউটিউব হোম পৃষ্ঠা" + }, + "youtubeLanguage": { + "message": "ইউটিউব ভাষা" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "ইউটিউব h.264 কোডেকের জন্য ভিডিও গুণমানকে 1080p এর মধ্যে সীমাবদ্ধ করে" + } } \ No newline at end of file diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 09e57fa90..a2d8f597d 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -1,986 +1,992 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Info" - }, - "accept": { - "message": "Akzeptieren" - }, - "activate": { - "message": "Aktivieren" - }, - "activateCaptions": { - "message": "Untertitel aktivieren" - }, - "activateFullscreen": { - "message": "Vollbild aktivieren" - }, - "activated": { - "message": "Aktiviert" - }, - "activatedFeatures": { - "message": "Aktivierte Features" - }, - "activeFeatures": { - "message": "Aktive Funktionen" - }, - "addScrollToTop": { - "message": "„Nach Oben“-Button" - }, - "ads": { - "message": "Werbung" - }, - "all": { - "message": "Alles" - }, - "allow": { - "message": "zulassen" - }, - "allow60fps": { - "message": "60fps zulassen" - }, - "alwaysActive": { - "message": "Immer aktiv" - }, - "alwaysShowProgressBar": { - "message": "Zeitleiste immer anzeigen" - }, - "amber": { - "message": "Bernstein" - }, - "analyzer": { - "message": "Analyse" - }, - "appearance": { - "message": "Aussehen" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio-Formate" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-Vollbild" - }, - "autopauseWhenSwitchingTabs": { - "message": "Video pausieren beim Tab-Wechsel" - }, - "autoplay": { - "message": "Autoplay" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Sichern oder zurücksetzen" - }, - "baseOnSystemColorScheme": { - "message": "Basierend auf Systemfarben" - }, - "belowPlayer": { - "message": "Unter dem Player" - }, - "black": { - "message": "Schwarz" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "immer blockieren" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Blau" - }, - "blueGray": { - "message": "Blau grau" - }, - "bluelight": { - "message": "Blaues Licht" - }, - "brown": { - "message": "Braun" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser-Version" - }, - "bubbles": { - "message": "Blasen" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Buttons" - }, - "cancel": { - "message": "Abbrechen" - }, - "categories": { - "message": "Kategorien" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanäle" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Zwischenablage" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Abos einklappen" - }, - "collapsed": { - "message": "Eingeklappt" - }, - "comments": { - "message": "Kommentare" - }, - "confirmationBeforeClosing": { - "message": "Bestätigung beim Schließen" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Kerne" - }, - "cropChapterTitles": { - "message": "Kapitel abschneiden" - }, - "customCss": { - "message": "CSS hinzufügen" - }, - "customJs": { - "message": "JS hinzufügen" - }, - "customMiniPlayer": { - "message": "Benutzerdefinierter Mini-Player" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Dunkel" - }, - "darkTheme": { - "message": "Dark-Theme" - }, - "dateAndTime": { - "message": "Datum & Uhrzeit" - }, - "dawn": { - "message": "Morgendämmerung" - }, - "decreasePlaybackSpeed": { - "message": "Abspielgeschwindigkeit verringern" - }, - "decreaseVolume": { - "message": "Lautstärke reduzieren" - }, - "deepOrange": { - "message": "Dunkel-Orange" - }, - "deepPurple": { - "message": "Dunkel-Lila" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Standard-Kanal-Tab" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "YouTube-Cookies löschen" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Beschreibung" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Wüste" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Entwickleroptionen" - }, - "device": { - "message": "Gerät" - }, - "dim": { - "message": "dimmen" - }, - "disabled": { - "message": "ausgeschaltet" - }, - "dislike": { - "message": "'Mag ich nicht'" - }, - "doNotChange": { - "message": "Nicht ändern" - }, - "donate": { - "message": "Spenden" - }, - "draggable": { - "message": "Verschiebbar" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "E-Mail" - }, - "empty": { - "message": "leer" - }, - "enabled": { - "message": "aktiviert" - }, - "enabledForced": { - "message": "aktiviert (erzwungen)" - }, - "expanded": { - "message": "ausgeklappt" - }, - "exportSettings": { - "message": "Einstellungen als Datei exportieren" - }, - "extension": { - "message": "Erweiterung" - }, - "file": { - "message": "Datei" - }, - "filters": { - "message": "Filter" - }, - "fitToWindow": { - "message": "Ans Fenster anpassen" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Schriftart" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Fußzeile" - }, - "forceSDR": { - "message": "SDR erzwingen" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "erzwungene Abspielgeschwindigkeit" - }, - "forcedTheaterMode": { - "message": "Kinomodus erzwingen" - }, - "forcedVolume": { - "message": "Fixe Lautstärke" - }, - "foundABug": { - "message": "Fehler gefunden?" - }, - "fullWindow": { - "message": "Ganzes Fenster" - }, - "general": { - "message": "Allgemein" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "YouTube Suche" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Grün" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "HD-Vorschaubild" - }, - "header": { - "message": "Header / 'Kopfzeile'" - }, - "hidden": { - "message": "Ausblenden" - }, - "hiddenOnVideoPage": { - "message": "Auf Videoseiten ausblenden" - }, - "hideAnimatedThumbnails": { - "message": "Keine animierten Vorschaubilder" - }, - "hideAnnotations": { - "message": "Anmerkungen ausblenden" - }, - "hideCards": { - "message": "Karten ausblenden" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Details ausblenden" - }, - "hideEndscreen": { - "message": "Endkarten ausblenden (Schlussbildschirme)" - }, - "hideFeaturedContent": { - "message": "'Empfohlene Inhalte' ausblenden" - }, - "hideFooter": { - "message": "Fußzeile ausblenden" - }, - "hideGradientBottom": { - "message": "Farbverlauf ausblenden" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Playlists ausblenden" - }, - "hideRightButtons": { - "message": "Rechte Buttons ausblenden" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "„Für Details scrollen“ ausblenden" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Videoaufrufe ausblenden" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "Verlauf" - }, - "home": { - "message": "Standard" - }, - "hover": { - "message": "Nur anzeigen bei Mausover" - }, - "hoverOnVideoPage": { - "message": "auf Video-Seiten bei Mausover" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Alter des Videos (seit Hochlade-Datum)" - }, - "icons": { - "message": "Icons" - }, - "iconsOnly": { - "message": "nur Icons" - }, - "importSettings": { - "message": "Einstellungen importieren" - }, - "improveLogo": { - "message": "Logo verbessern" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube Icon auf YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube Sprache" - }, - "improvedtubeVersion": { - "message": "ImprovedTube Version" - }, - "increasePlaybackSpeed": { - "message": "Abspielgeschwingkeit erhöhen" - }, - "increaseVolume": { - "message": "Lautstärke erhöhen" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Sprachen" - }, - "legacyYoutube": { - "message": "Klassiches YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Hell" - }, - "lightBlue": { - "message": "Hellblau" - }, - "lightGreen": { - "message": "Hellgrün" - }, - "like": { - "message": "Like" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Limette" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Live-Chat" - }, - "liveChatType": { - "message": "Live-Chat Typ" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Lautstärke normalisieren" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "gesehene Videos markieren" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mischpult" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Meine Farben" - }, - "name": { - "message": "Name" - }, - "nativeMiniPlayer": { - "message": "Standard Mini-Player" - }, - "new": { - "message": "Neu" - }, - "nextVideo": { - "message": "Nächstes Video" - }, - "night": { - "message": "Nacht" - }, - "noActiveFeatures": { - "message": "Keine aktiven Features" - }, - "noOpenVideoTabs": { - "message": "Keine YouTube Videos geöffnet" - }, - "none": { - "message": "Keine" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Alt" - }, - "onAllVideos": { - "message": "in allen Videos" - }, - "onSubscribedChannels": { - "message": "nur in abonnierten Kanälen" - }, - "onlyActiveOnYoutube": { - "message": "nur auf YouTube rot färben" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Nur ein Video gleichzeitig" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "Betriebsystem" - }, - "other": { - "message": "Andere" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Berechtigungen" - }, - "pictureInPicture": { - "message": "Bild-in-Bild" - }, - "pink": { - "message": "Pink" - }, - "plain": { - "message": "Schlicht" - }, - "platform": { - "message": "Plattform" - }, - "playPause": { - "message": "Play / Pause" - }, - "playbackSpeed": { - "message": "Abspielgeschwindigkeit" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Playerfarbe" - }, - "playerSize": { - "message": "Playergröße" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "popupPlayer": { - "message": "Player in eigenem Fenster" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Eine Taste drücken oder scrollen!" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Eine Taste drücken oder scrollen!" - }, - "previousVideo": { - "message": "Letztes Video" - }, - "primaryColor": { - "message": "Primäre Farbe" - }, - "purple": { - "message": "Lila" - }, - "quality": { - "message": "Qualität" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Bewerte mich!" - }, - "red": { - "message": "Rot" - }, - "redDislikeButton": { - "message": "Zeige 'Mag ich nicht' Button rot" - }, - "relatedVideos": { - "message": "Ähnliche Videos" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Ähnliche Suchergebnisse entfernen" - }, - "repeat": { - "message": "Repeat (Wiederholen)" - }, - "reset": { - "message": "Zurücksetzen" - }, - "resetAllSettings": { - "message": "Alle Einstellungen zurücksetzen" - }, - "resetAllShortcuts": { - "message": "Alle Shortcuts zurücksetzen" - }, - "reverse": { - "message": "Rückwärts" - }, - "rotate": { - "message": "Drehen" - }, - "save": { - "message": "Speichern" - }, - "saveAs": { - "message": "Speichern als" - }, - "schedule": { - "message": "Zeitplan" - }, - "screen": { - "message": "Bildschirm" - }, - "screenshot": { - "message": "Screenshot" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Suche" - }, - "searchBarOnly": { - "message": "Nur die Suchleiste" - }, - "seekBackward10Seconds": { - "message": "10 Sekunden zurück" - }, - "seekForward10Seconds": { - "message": "10 Sekunden überspringen" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Einstellungen" - }, - "settingsSuccessfullyImported": { - "message": "Einstellungen erfolgreich importiert!" - }, - "shortcuts": { - "message": "Hotkeys" - }, - "showCardsOnMouseHover": { - "message": "Infokarten bei Mausover anzeigen" - }, - "showChannelVideosCount": { - "message": "Anzahl Videos je Channel anzeigen" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Zufallswiedergabe" - }, - "sidebar": { - "message": "Seitenleiste" - }, - "spacebar": { - "message": "Leertaste" - }, - "squaredUserImages": { - "message": "Quadratische Profilbilder" - }, - "static": { - "message": "Statisch" - }, - "statsForNerds": { - "message": "Statistiken für Nerds" - }, - "step": { - "message": "Schritt" - }, - "stop": { - "message": "Stopp" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stile" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Abos" - }, - "subtitles": { - "message": "Untertitel" - }, - "sunset": { - "message": "Sonnenuntergang" - }, - "sunsetToSunrise": { - "message": "Abends bis Morgens" - }, - "systemPeferenceDark": { - "message": "System Einstellungen: dunkel" - }, - "systemPeferenceLight": { - "message": "System Einstellungen: hell" - }, - "teal": { - "message": "Blaugrün" - }, - "textColor": { - "message": "Textfarbe" - }, - "themes": { - "message": "Farbschemen" - }, - "thisWillRemoveAllCookies": { - "message": "Alle Cookies werden gelöscht" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Alle YouTube Cookies werden gelöscht" - }, - "thisWillResetAllSettings": { - "message": "Alle Einstellungen werden entfernt" - }, - "thisWillResetAllShortcuts": { - "message": "Alle Shortcuts werden zurückgesetzt" - }, - "thumbnails": { - "message": "Vorschaubilder" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Start" - }, - "timeTo": { - "message": "Ende" - }, - "todayAt": { - "message": "Heute um" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Karten ausblenden" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Top Chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Kanal-Intro automatisch abspielen" - }, - "translations": { - "message": "Übersetzungen" - }, - "transparentBackground": { - "message": "Transparenter Hintergrund" - }, - "trending": { - "message": "Trends" - }, - "tryToReloadThePage": { - "message": "Versuche, die Seite neu zu laden" - }, - "type": { - "message": "Typ" - }, - "upNextAutoplay": { - "message": "Nächstes Video automatisch abspielen" - }, - "use24HourFormat": { - "message": "24-Stunden Format" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Die Video-Beschreibung wird um den Kategorienamen erweitert" - }, - "videoFormats": { - "message": "Videoformate" - }, - "videos": { - "message": "Videos" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Lautstärke" - }, - "watchLater": { - "message": "Später ansehen" - }, - "watchTime": { - "message": "Verbrauchte Zeit" - }, - "whenTabIsChanged": { - "message": "Beim Tab-Wechsel" - }, - "white": { - "message": "Weiß" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Gelb" - }, - "youtubeHeaderLeft": { - "message": "YouTube Kopfzeile (Links)" - }, - "youtubeHeaderRight": { - "message": "YouTube Kopfzeile (Rechts)" - }, - "youtubeHomePage": { - "message": "YouTube Startseite" - }, - "youtubeLanguage": { - "message": "YouTube Sprache" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube begrenzt die Qualität auf 1080p für den h.264 Codec" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Info" + }, + "accept": { + "message": "Akzeptieren" + }, + "activate": { + "message": "Aktivieren" + }, + "activateCaptions": { + "message": "Untertitel aktivieren" + }, + "activateFullscreen": { + "message": "Vollbild aktivieren" + }, + "activated": { + "message": "Aktiviert" + }, + "activatedFeatures": { + "message": "Aktivierte Features" + }, + "activeFeatures": { + "message": "Aktive Funktionen" + }, + "addScrollToTop": { + "message": "„Nach Oben“-Button" + }, + "ads": { + "message": "Werbung" + }, + "all": { + "message": "Alles" + }, + "allow": { + "message": "zulassen" + }, + "allow60fps": { + "message": "60fps zulassen" + }, + "alwaysActive": { + "message": "Immer aktiv" + }, + "alwaysShowProgressBar": { + "message": "Zeitleiste immer anzeigen" + }, + "amber": { + "message": "Bernstein" + }, + "analyzer": { + "message": "Analyse" + }, + "appearance": { + "message": "Aussehen" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio-Formate" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-Vollbild" + }, + "autopauseWhenSwitchingTabs": { + "message": "Video pausieren beim Tab-Wechsel" + }, + "autoplay": { + "message": "Autoplay" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Sichern oder zurücksetzen" + }, + "baseOnSystemColorScheme": { + "message": "Basierend auf Systemfarben" + }, + "belowPlayer": { + "message": "Unter dem Player" + }, + "black": { + "message": "Schwarz" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "immer blockieren" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Blau" + }, + "blueGray": { + "message": "Blau grau" + }, + "bluelight": { + "message": "Blaues Licht" + }, + "brown": { + "message": "Braun" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser-Version" + }, + "bubbles": { + "message": "Blasen" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Buttons" + }, + "cancel": { + "message": "Abbrechen" + }, + "categories": { + "message": "Kategorien" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanäle" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Zwischenablage" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Abos einklappen" + }, + "collapsed": { + "message": "Eingeklappt" + }, + "comments": { + "message": "Kommentare" + }, + "confirmationBeforeClosing": { + "message": "Bestätigung beim Schließen" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Kerne" + }, + "cropChapterTitles": { + "message": "Kapitel abschneiden" + }, + "customCss": { + "message": "CSS hinzufügen" + }, + "customJs": { + "message": "JS hinzufügen" + }, + "customMiniPlayer": { + "message": "Benutzerdefinierter Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Dunkel" + }, + "darkTheme": { + "message": "Dark-Theme" + }, + "dateAndTime": { + "message": "Datum & Uhrzeit" + }, + "dawn": { + "message": "Morgendämmerung" + }, + "decreasePlaybackSpeed": { + "message": "Abspielgeschwindigkeit verringern" + }, + "decreaseVolume": { + "message": "Lautstärke reduzieren" + }, + "deepOrange": { + "message": "Dunkel-Orange" + }, + "deepPurple": { + "message": "Dunkel-Lila" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Standard-Kanal-Tab" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "YouTube-Cookies löschen" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Beschreibung" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Wüste" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Entwickleroptionen" + }, + "device": { + "message": "Gerät" + }, + "dim": { + "message": "dimmen" + }, + "disabled": { + "message": "ausgeschaltet" + }, + "dislike": { + "message": "'Mag ich nicht'" + }, + "doNotChange": { + "message": "Nicht ändern" + }, + "donate": { + "message": "Spenden" + }, + "draggable": { + "message": "Verschiebbar" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "E-Mail" + }, + "empty": { + "message": "leer" + }, + "enabled": { + "message": "aktiviert" + }, + "enabledForced": { + "message": "aktiviert (erzwungen)" + }, + "expanded": { + "message": "ausgeklappt" + }, + "exportSettings": { + "message": "Einstellungen als Datei exportieren" + }, + "extension": { + "message": "Erweiterung" + }, + "file": { + "message": "Datei" + }, + "filters": { + "message": "Filter" + }, + "fitToWindow": { + "message": "Ans Fenster anpassen" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Schriftart" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Fußzeile" + }, + "forceSDR": { + "message": "SDR erzwingen" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "erzwungene Abspielgeschwindigkeit" + }, + "forcedTheaterMode": { + "message": "Kinomodus erzwingen" + }, + "forcedVolume": { + "message": "Fixe Lautstärke" + }, + "foundABug": { + "message": "Fehler gefunden?" + }, + "fullWindow": { + "message": "Ganzes Fenster" + }, + "general": { + "message": "Allgemein" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "YouTube Suche" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Grün" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD-Vorschaubild" + }, + "header": { + "message": "Header / 'Kopfzeile'" + }, + "hidden": { + "message": "Ausblenden" + }, + "hiddenOnVideoPage": { + "message": "Auf Videoseiten ausblenden" + }, + "hideAnimatedThumbnails": { + "message": "Keine animierten Vorschaubilder" + }, + "hideAnnotations": { + "message": "Anmerkungen ausblenden" + }, + "hideCards": { + "message": "Karten ausblenden" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Details ausblenden" + }, + "hideEndscreen": { + "message": "Endkarten ausblenden (Schlussbildschirme)" + }, + "hideFeaturedContent": { + "message": "'Empfohlene Inhalte' ausblenden" + }, + "hideFooter": { + "message": "Fußzeile ausblenden" + }, + "hideGradientBottom": { + "message": "Farbverlauf ausblenden" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Playlists ausblenden" + }, + "hideRightButtons": { + "message": "Rechte Buttons ausblenden" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "„Für Details scrollen“ ausblenden" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Videoaufrufe ausblenden" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Verlauf" + }, + "home": { + "message": "Standard" + }, + "hover": { + "message": "Nur anzeigen bei Mausover" + }, + "hoverOnVideoPage": { + "message": "auf Video-Seiten bei Mausover" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Alter des Videos (seit Hochlade-Datum)" + }, + "icons": { + "message": "Icons" + }, + "iconsOnly": { + "message": "nur Icons" + }, + "importSettings": { + "message": "Einstellungen importieren" + }, + "improveLogo": { + "message": "Logo verbessern" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube Icon auf YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube Sprache" + }, + "improvedtubeVersion": { + "message": "ImprovedTube Version" + }, + "increasePlaybackSpeed": { + "message": "Abspielgeschwingkeit erhöhen" + }, + "increaseVolume": { + "message": "Lautstärke erhöhen" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Sprachen" + }, + "legacyYoutube": { + "message": "Klassiches YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Hell" + }, + "lightBlue": { + "message": "Hellblau" + }, + "lightGreen": { + "message": "Hellgrün" + }, + "like": { + "message": "Like" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Limette" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Live-Chat" + }, + "liveChatType": { + "message": "Live-Chat Typ" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Lautstärke normalisieren" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "gesehene Videos markieren" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mischpult" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Meine Farben" + }, + "name": { + "message": "Name" + }, + "nativeMiniPlayer": { + "message": "Standard Mini-Player" + }, + "new": { + "message": "Neu" + }, + "nextVideo": { + "message": "Nächstes Video" + }, + "night": { + "message": "Nacht" + }, + "noActiveFeatures": { + "message": "Keine aktiven Features" + }, + "noOpenVideoTabs": { + "message": "Keine YouTube Videos geöffnet" + }, + "none": { + "message": "Keine" + }, + "normal": { + "message": "Normal" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Alt" + }, + "onAllVideos": { + "message": "in allen Videos" + }, + "onSubscribedChannels": { + "message": "nur in abonnierten Kanälen" + }, + "onlyActiveOnYoutube": { + "message": "nur auf YouTube rot färben" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Nur ein Video gleichzeitig" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "Betriebsystem" + }, + "other": { + "message": "Andere" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Berechtigungen" + }, + "pictureInPicture": { + "message": "Bild-in-Bild" + }, + "pink": { + "message": "Pink" + }, + "plain": { + "message": "Schlicht" + }, + "platform": { + "message": "Plattform" + }, + "playPause": { + "message": "Play / Pause" + }, + "playbackSpeed": { + "message": "Abspielgeschwindigkeit" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Playerfarbe" + }, + "playerSize": { + "message": "Playergröße" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "popupPlayer": { + "message": "Player in eigenem Fenster" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Eine Taste drücken oder scrollen!" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Eine Taste drücken oder scrollen!" + }, + "previousVideo": { + "message": "Letztes Video" + }, + "primaryColor": { + "message": "Primäre Farbe" + }, + "purple": { + "message": "Lila" + }, + "quality": { + "message": "Qualität" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Bewerte mich!" + }, + "red": { + "message": "Rot" + }, + "redDislikeButton": { + "message": "Zeige 'Mag ich nicht' Button rot" + }, + "relatedVideos": { + "message": "Ähnliche Videos" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Ähnliche Suchergebnisse entfernen" + }, + "repeat": { + "message": "Repeat (Wiederholen)" + }, + "reset": { + "message": "Zurücksetzen" + }, + "resetAllSettings": { + "message": "Alle Einstellungen zurücksetzen" + }, + "resetAllShortcuts": { + "message": "Alle Shortcuts zurücksetzen" + }, + "reverse": { + "message": "Rückwärts" + }, + "rotate": { + "message": "Drehen" + }, + "save": { + "message": "Speichern" + }, + "saveAs": { + "message": "Speichern als" + }, + "schedule": { + "message": "Zeitplan" + }, + "screen": { + "message": "Bildschirm" + }, + "screenshot": { + "message": "Screenshot" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Suche" + }, + "searchBarOnly": { + "message": "Nur die Suchleiste" + }, + "seekBackward10Seconds": { + "message": "10 Sekunden zurück" + }, + "seekForward10Seconds": { + "message": "10 Sekunden überspringen" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Einstellungen" + }, + "settingsSuccessfullyImported": { + "message": "Einstellungen erfolgreich importiert!" + }, + "shortcuts": { + "message": "Hotkeys" + }, + "showCardsOnMouseHover": { + "message": "Infokarten bei Mausover anzeigen" + }, + "showChannelVideosCount": { + "message": "Anzahl Videos je Channel anzeigen" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Zufallswiedergabe" + }, + "sidebar": { + "message": "Seitenleiste" + }, + "spacebar": { + "message": "Leertaste" + }, + "squaredUserImages": { + "message": "Quadratische Profilbilder" + }, + "static": { + "message": "Statisch" + }, + "statsForNerds": { + "message": "Statistiken für Nerds" + }, + "step": { + "message": "Schritt" + }, + "stop": { + "message": "Stopp" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stile" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Abos" + }, + "subtitles": { + "message": "Untertitel" + }, + "sunset": { + "message": "Sonnenuntergang" + }, + "sunsetToSunrise": { + "message": "Abends bis Morgens" + }, + "systemPeferenceDark": { + "message": "System Einstellungen: dunkel" + }, + "systemPeferenceLight": { + "message": "System Einstellungen: hell" + }, + "teal": { + "message": "Blaugrün" + }, + "textColor": { + "message": "Textfarbe" + }, + "themes": { + "message": "Farbschemen" + }, + "thisWillRemoveAllCookies": { + "message": "Alle Cookies werden gelöscht" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Alle YouTube Cookies werden gelöscht" + }, + "thisWillResetAllSettings": { + "message": "Alle Einstellungen werden entfernt" + }, + "thisWillResetAllShortcuts": { + "message": "Alle Shortcuts werden zurückgesetzt" + }, + "thumbnails": { + "message": "Vorschaubilder" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Start" + }, + "timeTo": { + "message": "Ende" + }, + "todayAt": { + "message": "Heute um" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Karten ausblenden" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Top Chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Kanal-Intro automatisch abspielen" + }, + "translations": { + "message": "Übersetzungen" + }, + "transparentBackground": { + "message": "Transparenter Hintergrund" + }, + "trending": { + "message": "Trends" + }, + "tryToReloadThePage": { + "message": "Versuche, die Seite neu zu laden" + }, + "type": { + "message": "Typ" + }, + "upNextAutoplay": { + "message": "Nächstes Video automatisch abspielen" + }, + "use24HourFormat": { + "message": "24-Stunden Format" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Die Video-Beschreibung wird um den Kategorienamen erweitert" + }, + "videoFormats": { + "message": "Videoformate" + }, + "videos": { + "message": "Videos" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Lautstärke" + }, + "watchLater": { + "message": "Später ansehen" + }, + "watchTime": { + "message": "Verbrauchte Zeit" + }, + "whenTabIsChanged": { + "message": "Beim Tab-Wechsel" + }, + "white": { + "message": "Weiß" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Gelb" + }, + "youtubeHeaderLeft": { + "message": "YouTube Kopfzeile (Links)" + }, + "youtubeHeaderRight": { + "message": "YouTube Kopfzeile (Rechts)" + }, + "youtubeHomePage": { + "message": "YouTube Startseite" + }, + "youtubeLanguage": { + "message": "YouTube Sprache" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube begrenzt die Qualität auf 1080p für den h.264 Codec" + } } \ No newline at end of file diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 671b3fb30..212b763a8 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -1,986 +1,992 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Σχετικά" - }, - "accept": { - "message": "Αποδοχή" - }, - "activate": { - "message": "Ενεργοποίηση" - }, - "activateCaptions": { - "message": "Ενεργοποίηση Υπότιτλων" - }, - "activateFullscreen": { - "message": "Ενεργοποίηση Πλήρους Οθόνη" - }, - "activated": { - "message": "Ενεργοποιήθηκε" - }, - "activatedFeatures": { - "message": "Ενεργοποιημένες Λειτουργίες" - }, - "activeFeatures": { - "message": "Ενεργές λειτουργίες" - }, - "addScrollToTop": { - "message": "Πρόσθεσε συντόμευση για την κορυφή της σελίδας" - }, - "ads": { - "message": "Διαφημίσεις" - }, - "all": { - "message": "Όλα" - }, - "allow": { - "message": "Αποδοχή" - }, - "allow60fps": { - "message": "Επίτρεψε 60fps" - }, - "alwaysActive": { - "message": "Πάντοτε ενεργό" - }, - "alwaysShowProgressBar": { - "message": "Πάντα ορατός ο ενδείκτης προόδου" - }, - "amber": { - "message": "Κεχρί" - }, - "analyzer": { - "message": "Αναλυτής" - }, - "appearance": { - "message": "Εμφάνιση" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Ήχος" - }, - "audioFormats": { - "message": "Μορφές ήχου" - }, - "auto": { - "message": "Αυτόματο" - }, - "autoFullscreen": { - "message": "Αυτόματη Πλήρης Οθόνη" - }, - "autopauseWhenSwitchingTabs": { - "message": "Αυτόματη παύση όταν αλλάζετε καρτέλα" - }, - "autoplay": { - "message": "Αυτόματη αναπαραγωγή" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Αντίγραφα ασφαλείας & reset" - }, - "baseOnSystemColorScheme": { - "message": "Με βάση τις ρυθμίσεις χρώματος του συστήματος" - }, - "belowPlayer": { - "message": "Κάτω από το Player" - }, - "black": { - "message": "Μαύρο" - }, - "blacklist": { - "message": "Λίστα αποκλεισμού" - }, - "blockAll": { - "message": "Αποκλείστε όλα" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Μπλε" - }, - "blueGray": { - "message": "Μπλε γκρίζο" - }, - "bluelight": { - "message": "Μπλε φως" - }, - "brown": { - "message": "Καφέ" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Έκδοση browser" - }, - "bubbles": { - "message": "Φούσκες" - }, - "bug": { - "message": "Σφάλμα κώδικα" - }, - "buttons": { - "message": "Κουμπιά" - }, - "cancel": { - "message": "Ακύρωση" - }, - "categories": { - "message": "Κατηγορίες" - }, - "channel": { - "message": "Κανάλι" - }, - "channels": { - "message": "Κανάλια" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Κλείσε το μενού συνδρομών" - }, - "collapsed": { - "message": "Κλειστό" - }, - "comments": { - "message": "Σχόλιο" - }, - "confirmationBeforeClosing": { - "message": "Επιβεβαίωση πρωτού κλείσεις" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Πυρήνες" - }, - "cropChapterTitles": { - "message": "Περίκοψε τους τίτλους των κεφαλαίων" - }, - "customCss": { - "message": "Εξατομίκευση CSS" - }, - "customJs": { - "message": "Εξατομίκευση JS" - }, - "customMiniPlayer": { - "message": "Εξατομικευμένο Mini-Player" - }, - "cyan": { - "message": "Κυανό" - }, - "dark": { - "message": "Σκούρο" - }, - "darkTheme": { - "message": "Σκούρο θέμα" - }, - "dateAndTime": { - "message": "Ημερομηνία & ώρα" - }, - "dawn": { - "message": "Αυγή" - }, - "decreasePlaybackSpeed": { - "message": "Μείωσε ταχύτητα αναπαραγωγής" - }, - "decreaseVolume": { - "message": "Μειώστε ένταση" - }, - "deepOrange": { - "message": "Βαθύ πορτοκαλί" - }, - "deepPurple": { - "message": "Βαθύ μοβ" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Προεπιλεγμένη καρτέλα καναλιού" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Κατάργησε τα cookies του YouTube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Περιγραφή" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Έρημος" - }, - "details": { - "message": "Λεπτομέρειες" - }, - "developerOptions": { - "message": "Επιλογές για προγραμματιστές" - }, - "device": { - "message": "Συσκευή" - }, - "dim": { - "message": "Σκοτεινό" - }, - "disabled": { - "message": "Απενεργοποιημένο" - }, - "dislike": { - "message": "Δε μου αρέσει" - }, - "doNotChange": { - "message": "Να μην αλλάξει" - }, - "donate": { - "message": "Donate" - }, - "draggable": { - "message": "Μετακινήσιμο με σύρση" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Κενό" - }, - "enabled": { - "message": "Ενεργοποιημένο" - }, - "enabledForced": { - "message": "Ενεργοποιημένο (Υποχρεωτικά)" - }, - "expanded": { - "message": "Ανοικτό" - }, - "exportSettings": { - "message": "Εξαγωγή ρυθμίσεων" - }, - "extension": { - "message": "Επέκταση" - }, - "file": { - "message": "Αρχείο" - }, - "filters": { - "message": "Φίλτρα" - }, - "fitToWindow": { - "message": "Να χωράει στο παράθυρο" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Γραμματοσειρά" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Υποσέλιδο" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Υποχρεωτική ταχύτητα αναπαραγωγής" - }, - "forcedTheaterMode": { - "message": "Υποχρεωτική λειτουργία κινηματογράφου" - }, - "forcedVolume": { - "message": "Υποχρεωτική ένταση" - }, - "foundABug": { - "message": "Εντοπίσατε κάποιο σφάλμα;" - }, - "fullWindow": { - "message": "Πλήρες παράθυρο" - }, - "general": { - "message": "Γενικά" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Πήγαινε στο πεδίο αναζήτησης" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Πράσινο" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "HD Εικονίδιο βίντεο" - }, - "header": { - "message": "Κεφαλίδα" - }, - "hidden": { - "message": "Κρυμμένο" - }, - "hiddenOnVideoPage": { - "message": "Κρυμμένο στη σελίδα βίντεο" - }, - "hideAnimatedThumbnails": { - "message": "Απόκρυψε τα κινούμενα εικονίδια βίντεο" - }, - "hideAnnotations": { - "message": "Απόκρυψε τα annotations" - }, - "hideCards": { - "message": "Απόκρυψε τις κάρτες" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Απόκρυψε τις λεπτομέρειες" - }, - "hideEndscreen": { - "message": "Απόκρυψε την κάρτα τέλους" - }, - "hideFeaturedContent": { - "message": "Απόκρυψε το προτεινόμενο περιεχόμενο" - }, - "hideFooter": { - "message": "Απόκρυψε το υποσέλιδο" - }, - "hideGradientBottom": { - "message": "Απόκρυψε το κάτω μέρος της χρωματικής διαβάθμισης" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Απόκρυψε τα playlists" - }, - "hideRightButtons": { - "message": "Απόκρυψε τα κουμπιά στα δεξιά" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Απόκρυψε το «Scroll for details»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Απόκρυψε τον αριθμό προβολών" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "Ιστορικό" - }, - "home": { - "message": "Αρχική σελίδα" - }, - "hover": { - "message": "Κέρσορας από πάνω" - }, - "hoverOnVideoPage": { - "message": "Κέρσορας πάνω στη σελίδα βίντεο" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Πριν από πόσο ανέβηκε το βίντεο" - }, - "icons": { - "message": "Εικονίδια" - }, - "iconsOnly": { - "message": "Εικονίδια μόνο" - }, - "importSettings": { - "message": "Εισαγωγή ρυθμίσεων" - }, - "improveLogo": { - "message": "Λογότυπο Improve" - }, - "improvedtubeIconOnYoutube": { - "message": "Εικονίδιο ImprovedTube στο YouTube" - }, - "improvedtubeLanguage": { - "message": "Γλώσσα ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Έκδοση ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Αύξησε την ταχύτητα αναπαραγωγής" - }, - "increaseVolume": { - "message": "Αύξησε την ένταση" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Αντικείμενα" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Γλώσσες" - }, - "legacyYoutube": { - "message": "Παλιά έκδοση YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Ανοιχτόχρωμο" - }, - "lightBlue": { - "message": "Ανοικτό μπλε" - }, - "lightGreen": { - "message": "Ανοικτό πράσινο" - }, - "like": { - "message": "Μου αρέσει" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Μοσχολέμονο" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Λίστα" - }, - "liveChat": { - "message": "Live chat" - }, - "liveChatType": { - "message": "Τύπος live chat" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Κανονικοποίηση έντασης" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Επισήμανση βίντεο που προβλήθηκαν" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mixer" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Τα χρώματά μου" - }, - "name": { - "message": "Όνομα" - }, - "nativeMiniPlayer": { - "message": "Mini player συστήματος" - }, - "new": { - "message": "Νέο" - }, - "nextVideo": { - "message": "Επόμενο βίντεο" - }, - "night": { - "message": "Νύχτα" - }, - "noActiveFeatures": { - "message": "Καμία λειτουργία ενεργή" - }, - "noOpenVideoTabs": { - "message": "Καμία καρτέλα βίντεο ανοικτή" - }, - "none": { - "message": "Κανένα" - }, - "normal": { - "message": "Κανονικό" - }, - "old": { - "message": "Παλιό" - }, - "onAllVideos": { - "message": "Σε όλα τα βίντεο" - }, - "onSubscribedChannels": { - "message": "Σε κανάλια που έχει γίνει συνδρομή" - }, - "onlyActiveOnYoutube": { - "message": "Μόνο ενεργό στο YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Μόνο ένα player λειτουργεί" - }, - "orange": { - "message": "Πορτοκαλί" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Άλλο" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Άδεια" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Ροζ" - }, - "plain": { - "message": "Σκέτο" - }, - "platform": { - "message": "Πλατφόρμα" - }, - "playPause": { - "message": "Play / Pause" - }, - "playbackSpeed": { - "message": "Ταχύτητα αναπαραγωγής" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Χρώμσ player" - }, - "playerSize": { - "message": "Μέγεθος player" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "popupPlayer": { - "message": "Popup player" - }, - "position": { - "message": "Θέση" - }, - "pressAnyKeyOrScroll": { - "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." - }, - "previousVideo": { - "message": "Προηγούμενο βίντεο" - }, - "primaryColor": { - "message": "Πρωτεύον χρώμα" - }, - "purple": { - "message": "Μοβ" - }, - "quality": { - "message": "Ποιότητα" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Αξιολόγησέ μας" - }, - "red": { - "message": "Κόκκινο" - }, - "redDislikeButton": { - "message": "Δείξτε το πλήκτρο «Δε μου αρέσει» σε κόκκινο" - }, - "relatedVideos": { - "message": "Σχετικά videos" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Αφαίρεσε σχετικά αποτελέσματα αναζήτησης" - }, - "repeat": { - "message": "Επανάληψη" - }, - "reset": { - "message": "Επαναφορά" - }, - "resetAllSettings": { - "message": "Επαναφορά όλων των ρυθμίσεων" - }, - "resetAllShortcuts": { - "message": "Επαναφορά όλων των συντομεύσεων" - }, - "reverse": { - "message": "Ανάποδα" - }, - "rotate": { - "message": "Περιστροφή" - }, - "save": { - "message": "Αποθήκευση" - }, - "saveAs": { - "message": "Αποθήκευση ως" - }, - "schedule": { - "message": "Πρόγραμμα" - }, - "screen": { - "message": "Οθόνη" - }, - "screenshot": { - "message": "Στιγμιότυπο" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Αναζήτηση" - }, - "searchBarOnly": { - "message": "Πεδίο αναζήτησης μόνο" - }, - "seekBackward10Seconds": { - "message": "Πίσω 10 δευτερόλεπτα" - }, - "seekForward10Seconds": { - "message": "Μπροστά 10 δευτερόλεπτα" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Ρυθμίσεις" - }, - "settingsSuccessfullyImported": { - "message": "Επιτυχής εισαγωγή ρυθμίσεων" - }, - "shortcuts": { - "message": "Συντομεύσεις" - }, - "showCardsOnMouseHover": { - "message": "Δείξε τις κάρτες όταν ο κέρσορας είναι από πάνω" - }, - "showChannelVideosCount": { - "message": "Δείξε τις συνολικές προβολές του καναλιού" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Τυχαία αναπαραγωγή" - }, - "sidebar": { - "message": "Sidebar" - }, - "spacebar": { - "message": "Spacebar" - }, - "squaredUserImages": { - "message": "Τετράγωνες εικόνες χρήστη" - }, - "static": { - "message": "Στατικό" - }, - "statsForNerds": { - "message": "Δείξε τα Στατιστικά για Σπασίκλες" - }, - "step": { - "message": "Βήμα" - }, - "stop": { - "message": "Στοπ" - }, - "style": { - "message": "Στυλ" - }, - "styles": { - "message": "Στυλ" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Συνδρομές" - }, - "subtitles": { - "message": "Υπότιτλοι" - }, - "sunset": { - "message": "Ηλιοβασίλεμα" - }, - "sunsetToSunrise": { - "message": "Από δύση έως ανατολή" - }, - "systemPeferenceDark": { - "message": "Προτίμηση συστήματος: Σκούρο" - }, - "systemPeferenceLight": { - "message": "Προτίμηση συστήματος: Ανοικτόχρωμο" - }, - "teal": { - "message": "Γαλαζιοπράσινο" - }, - "textColor": { - "message": "Χρώμα κειμένου" - }, - "themes": { - "message": "Θέματα" - }, - "thisWillRemoveAllCookies": { - "message": "Αυτό αφαιρεί όλα τα cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Αυτό αφαιρεί όλα τα cookies του YouTube." - }, - "thisWillResetAllSettings": { - "message": "Αυτό επαναφέρει όλες τις ρυθμίσεις." - }, - "thisWillResetAllShortcuts": { - "message": "Αυτό επαναφέρει όλες τις συντομεύσεις." - }, - "thumbnails": { - "message": "Εικονίδια" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Χρόνος από" - }, - "timeTo": { - "message": "Χρόνος έως" - }, - "todayAt": { - "message": "Σήμερα στις" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Trailer autoplay" - }, - "translations": { - "message": "Μεταφράσεις" - }, - "transparentBackground": { - "message": "Διαφανές υπόβαθρο" - }, - "trending": { - "message": "Τάσεις" - }, - "tryToReloadThePage": { - "message": "Προσπάθησε να επαναφορτώσεις τη σελίδα" - }, - "type": { - "message": "Τύπος" - }, - "upNextAutoplay": { - "message": "Επόμενο στο autoplay" - }, - "use24HourFormat": { - "message": "Χρησιμοποίησε 24ωρη μορφή ώρας" - }, - "version": { - "message": "Έκδοση" - }, - "video": { - "message": "Βίντεο" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Η περιγραφή του βίντεο θα επεκταθεί ωστε να συμπεριληφθεί το όνομα της κατηγορίας." - }, - "videoFormats": { - "message": "Μορφές βίντεο" - }, - "videos": { - "message": "Βίντεο" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Ένταση" - }, - "watchLater": { - "message": "Δες αργότερα" - }, - "watchTime": { - "message": "Χρόνος προβολής" - }, - "whenTabIsChanged": { - "message": "Όταν αλλάζεις καρτέλα" - }, - "white": { - "message": "Λευκό" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Κίτρινο" - }, - "youtubeHeaderLeft": { - "message": "Κεφαλίδα YouTube (αριστερά)" - }, - "youtubeHeaderRight": { - "message": "Κεφαλίδα YouTube (δεξιά)" - }, - "youtubeHomePage": { - "message": "Αρχική σελίδα YouTube" - }, - "youtubeLanguage": { - "message": "Γλώσσα YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "Το YouTube περιορίζει την ποιότητα σε 1080p για το h.264 codec" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Σχετικά" + }, + "accept": { + "message": "Αποδοχή" + }, + "activate": { + "message": "Ενεργοποίηση" + }, + "activateCaptions": { + "message": "Ενεργοποίηση Υπότιτλων" + }, + "activateFullscreen": { + "message": "Ενεργοποίηση Πλήρους Οθόνη" + }, + "activated": { + "message": "Ενεργοποιήθηκε" + }, + "activatedFeatures": { + "message": "Ενεργοποιημένες Λειτουργίες" + }, + "activeFeatures": { + "message": "Ενεργές λειτουργίες" + }, + "addScrollToTop": { + "message": "Πρόσθεσε συντόμευση για την κορυφή της σελίδας" + }, + "ads": { + "message": "Διαφημίσεις" + }, + "all": { + "message": "Όλα" + }, + "allow": { + "message": "Αποδοχή" + }, + "allow60fps": { + "message": "Επίτρεψε 60fps" + }, + "alwaysActive": { + "message": "Πάντοτε ενεργό" + }, + "alwaysShowProgressBar": { + "message": "Πάντα ορατός ο ενδείκτης προόδου" + }, + "amber": { + "message": "Κεχρί" + }, + "analyzer": { + "message": "Αναλυτής" + }, + "appearance": { + "message": "Εμφάνιση" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "Ήχος" + }, + "audioFormats": { + "message": "Μορφές ήχου" + }, + "auto": { + "message": "Αυτόματο" + }, + "autoFullscreen": { + "message": "Αυτόματη Πλήρης Οθόνη" + }, + "autopauseWhenSwitchingTabs": { + "message": "Αυτόματη παύση όταν αλλάζετε καρτέλα" + }, + "autoplay": { + "message": "Αυτόματη αναπαραγωγή" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Αντίγραφα ασφαλείας & reset" + }, + "baseOnSystemColorScheme": { + "message": "Με βάση τις ρυθμίσεις χρώματος του συστήματος" + }, + "belowPlayer": { + "message": "Κάτω από το Player" + }, + "black": { + "message": "Μαύρο" + }, + "blacklist": { + "message": "Λίστα αποκλεισμού" + }, + "blockAll": { + "message": "Αποκλείστε όλα" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Μπλε" + }, + "blueGray": { + "message": "Μπλε γκρίζο" + }, + "bluelight": { + "message": "Μπλε φως" + }, + "brown": { + "message": "Καφέ" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Έκδοση browser" + }, + "bubbles": { + "message": "Φούσκες" + }, + "bug": { + "message": "Σφάλμα κώδικα" + }, + "buttons": { + "message": "Κουμπιά" + }, + "cancel": { + "message": "Ακύρωση" + }, + "categories": { + "message": "Κατηγορίες" + }, + "channel": { + "message": "Κανάλι" + }, + "channels": { + "message": "Κανάλια" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Κλείσε το μενού συνδρομών" + }, + "collapsed": { + "message": "Κλειστό" + }, + "comments": { + "message": "Σχόλιο" + }, + "confirmationBeforeClosing": { + "message": "Επιβεβαίωση πρωτού κλείσεις" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Πυρήνες" + }, + "cropChapterTitles": { + "message": "Περίκοψε τους τίτλους των κεφαλαίων" + }, + "customCss": { + "message": "Εξατομίκευση CSS" + }, + "customJs": { + "message": "Εξατομίκευση JS" + }, + "customMiniPlayer": { + "message": "Εξατομικευμένο Mini-Player" + }, + "cyan": { + "message": "Κυανό" + }, + "dark": { + "message": "Σκούρο" + }, + "darkTheme": { + "message": "Σκούρο θέμα" + }, + "dateAndTime": { + "message": "Ημερομηνία & ώρα" + }, + "dawn": { + "message": "Αυγή" + }, + "decreasePlaybackSpeed": { + "message": "Μείωσε ταχύτητα αναπαραγωγής" + }, + "decreaseVolume": { + "message": "Μειώστε ένταση" + }, + "deepOrange": { + "message": "Βαθύ πορτοκαλί" + }, + "deepPurple": { + "message": "Βαθύ μοβ" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Προεπιλεγμένη καρτέλα καναλιού" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Κατάργησε τα cookies του YouTube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Περιγραφή" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Έρημος" + }, + "details": { + "message": "Λεπτομέρειες" + }, + "developerOptions": { + "message": "Επιλογές για προγραμματιστές" + }, + "device": { + "message": "Συσκευή" + }, + "dim": { + "message": "Σκοτεινό" + }, + "disabled": { + "message": "Απενεργοποιημένο" + }, + "dislike": { + "message": "Δε μου αρέσει" + }, + "doNotChange": { + "message": "Να μην αλλάξει" + }, + "donate": { + "message": "Donate" + }, + "draggable": { + "message": "Μετακινήσιμο με σύρση" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Κενό" + }, + "enabled": { + "message": "Ενεργοποιημένο" + }, + "enabledForced": { + "message": "Ενεργοποιημένο (Υποχρεωτικά)" + }, + "expanded": { + "message": "Ανοικτό" + }, + "exportSettings": { + "message": "Εξαγωγή ρυθμίσεων" + }, + "extension": { + "message": "Επέκταση" + }, + "file": { + "message": "Αρχείο" + }, + "filters": { + "message": "Φίλτρα" + }, + "fitToWindow": { + "message": "Να χωράει στο παράθυρο" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Γραμματοσειρά" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Υποσέλιδο" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Υποχρεωτική ταχύτητα αναπαραγωγής" + }, + "forcedTheaterMode": { + "message": "Υποχρεωτική λειτουργία κινηματογράφου" + }, + "forcedVolume": { + "message": "Υποχρεωτική ένταση" + }, + "foundABug": { + "message": "Εντοπίσατε κάποιο σφάλμα;" + }, + "fullWindow": { + "message": "Πλήρες παράθυρο" + }, + "general": { + "message": "Γενικά" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Πήγαινε στο πεδίο αναζήτησης" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Πράσινο" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD Εικονίδιο βίντεο" + }, + "header": { + "message": "Κεφαλίδα" + }, + "hidden": { + "message": "Κρυμμένο" + }, + "hiddenOnVideoPage": { + "message": "Κρυμμένο στη σελίδα βίντεο" + }, + "hideAnimatedThumbnails": { + "message": "Απόκρυψε τα κινούμενα εικονίδια βίντεο" + }, + "hideAnnotations": { + "message": "Απόκρυψε τα annotations" + }, + "hideCards": { + "message": "Απόκρυψε τις κάρτες" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Απόκρυψε τις λεπτομέρειες" + }, + "hideEndscreen": { + "message": "Απόκρυψε την κάρτα τέλους" + }, + "hideFeaturedContent": { + "message": "Απόκρυψε το προτεινόμενο περιεχόμενο" + }, + "hideFooter": { + "message": "Απόκρυψε το υποσέλιδο" + }, + "hideGradientBottom": { + "message": "Απόκρυψε το κάτω μέρος της χρωματικής διαβάθμισης" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Απόκρυψε τα playlists" + }, + "hideRightButtons": { + "message": "Απόκρυψε τα κουμπιά στα δεξιά" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Απόκρυψε το «Scroll for details»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Απόκρυψε τον αριθμό προβολών" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Ιστορικό" + }, + "home": { + "message": "Αρχική σελίδα" + }, + "hover": { + "message": "Κέρσορας από πάνω" + }, + "hoverOnVideoPage": { + "message": "Κέρσορας πάνω στη σελίδα βίντεο" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Πριν από πόσο ανέβηκε το βίντεο" + }, + "icons": { + "message": "Εικονίδια" + }, + "iconsOnly": { + "message": "Εικονίδια μόνο" + }, + "importSettings": { + "message": "Εισαγωγή ρυθμίσεων" + }, + "improveLogo": { + "message": "Λογότυπο Improve" + }, + "improvedtubeIconOnYoutube": { + "message": "Εικονίδιο ImprovedTube στο YouTube" + }, + "improvedtubeLanguage": { + "message": "Γλώσσα ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Έκδοση ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Αύξησε την ταχύτητα αναπαραγωγής" + }, + "increaseVolume": { + "message": "Αύξησε την ένταση" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Αντικείμενα" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Γλώσσες" + }, + "legacyYoutube": { + "message": "Παλιά έκδοση YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Ανοιχτόχρωμο" + }, + "lightBlue": { + "message": "Ανοικτό μπλε" + }, + "lightGreen": { + "message": "Ανοικτό πράσινο" + }, + "like": { + "message": "Μου αρέσει" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Μοσχολέμονο" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Λίστα" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Τύπος live chat" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Κανονικοποίηση έντασης" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Επισήμανση βίντεο που προβλήθηκαν" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Τα χρώματά μου" + }, + "name": { + "message": "Όνομα" + }, + "nativeMiniPlayer": { + "message": "Mini player συστήματος" + }, + "new": { + "message": "Νέο" + }, + "nextVideo": { + "message": "Επόμενο βίντεο" + }, + "night": { + "message": "Νύχτα" + }, + "noActiveFeatures": { + "message": "Καμία λειτουργία ενεργή" + }, + "noOpenVideoTabs": { + "message": "Καμία καρτέλα βίντεο ανοικτή" + }, + "none": { + "message": "Κανένα" + }, + "normal": { + "message": "Κανονικό" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Παλιό" + }, + "onAllVideos": { + "message": "Σε όλα τα βίντεο" + }, + "onSubscribedChannels": { + "message": "Σε κανάλια που έχει γίνει συνδρομή" + }, + "onlyActiveOnYoutube": { + "message": "Μόνο ενεργό στο YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Μόνο ένα player λειτουργεί" + }, + "orange": { + "message": "Πορτοκαλί" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Άλλο" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Άδεια" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Ροζ" + }, + "plain": { + "message": "Σκέτο" + }, + "platform": { + "message": "Πλατφόρμα" + }, + "playPause": { + "message": "Play / Pause" + }, + "playbackSpeed": { + "message": "Ταχύτητα αναπαραγωγής" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Χρώμσ player" + }, + "playerSize": { + "message": "Μέγεθος player" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "popupPlayer": { + "message": "Popup player" + }, + "position": { + "message": "Θέση" + }, + "pressAnyKeyOrScroll": { + "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Πίεσε οποιοδήποτε πλήκτρο ή χρησιμοποίησε τη ροδέλα στο ποντίκι." + }, + "previousVideo": { + "message": "Προηγούμενο βίντεο" + }, + "primaryColor": { + "message": "Πρωτεύον χρώμα" + }, + "purple": { + "message": "Μοβ" + }, + "quality": { + "message": "Ποιότητα" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Αξιολόγησέ μας" + }, + "red": { + "message": "Κόκκινο" + }, + "redDislikeButton": { + "message": "Δείξτε το πλήκτρο «Δε μου αρέσει» σε κόκκινο" + }, + "relatedVideos": { + "message": "Σχετικά videos" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Αφαίρεσε σχετικά αποτελέσματα αναζήτησης" + }, + "repeat": { + "message": "Επανάληψη" + }, + "reset": { + "message": "Επαναφορά" + }, + "resetAllSettings": { + "message": "Επαναφορά όλων των ρυθμίσεων" + }, + "resetAllShortcuts": { + "message": "Επαναφορά όλων των συντομεύσεων" + }, + "reverse": { + "message": "Ανάποδα" + }, + "rotate": { + "message": "Περιστροφή" + }, + "save": { + "message": "Αποθήκευση" + }, + "saveAs": { + "message": "Αποθήκευση ως" + }, + "schedule": { + "message": "Πρόγραμμα" + }, + "screen": { + "message": "Οθόνη" + }, + "screenshot": { + "message": "Στιγμιότυπο" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Αναζήτηση" + }, + "searchBarOnly": { + "message": "Πεδίο αναζήτησης μόνο" + }, + "seekBackward10Seconds": { + "message": "Πίσω 10 δευτερόλεπτα" + }, + "seekForward10Seconds": { + "message": "Μπροστά 10 δευτερόλεπτα" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Ρυθμίσεις" + }, + "settingsSuccessfullyImported": { + "message": "Επιτυχής εισαγωγή ρυθμίσεων" + }, + "shortcuts": { + "message": "Συντομεύσεις" + }, + "showCardsOnMouseHover": { + "message": "Δείξε τις κάρτες όταν ο κέρσορας είναι από πάνω" + }, + "showChannelVideosCount": { + "message": "Δείξε τις συνολικές προβολές του καναλιού" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Τυχαία αναπαραγωγή" + }, + "sidebar": { + "message": "Sidebar" + }, + "spacebar": { + "message": "Spacebar" + }, + "squaredUserImages": { + "message": "Τετράγωνες εικόνες χρήστη" + }, + "static": { + "message": "Στατικό" + }, + "statsForNerds": { + "message": "Δείξε τα Στατιστικά για Σπασίκλες" + }, + "step": { + "message": "Βήμα" + }, + "stop": { + "message": "Στοπ" + }, + "style": { + "message": "Στυλ" + }, + "styles": { + "message": "Στυλ" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Συνδρομές" + }, + "subtitles": { + "message": "Υπότιτλοι" + }, + "sunset": { + "message": "Ηλιοβασίλεμα" + }, + "sunsetToSunrise": { + "message": "Από δύση έως ανατολή" + }, + "systemPeferenceDark": { + "message": "Προτίμηση συστήματος: Σκούρο" + }, + "systemPeferenceLight": { + "message": "Προτίμηση συστήματος: Ανοικτόχρωμο" + }, + "teal": { + "message": "Γαλαζιοπράσινο" + }, + "textColor": { + "message": "Χρώμα κειμένου" + }, + "themes": { + "message": "Θέματα" + }, + "thisWillRemoveAllCookies": { + "message": "Αυτό αφαιρεί όλα τα cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Αυτό αφαιρεί όλα τα cookies του YouTube." + }, + "thisWillResetAllSettings": { + "message": "Αυτό επαναφέρει όλες τις ρυθμίσεις." + }, + "thisWillResetAllShortcuts": { + "message": "Αυτό επαναφέρει όλες τις συντομεύσεις." + }, + "thumbnails": { + "message": "Εικονίδια" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Χρόνος από" + }, + "timeTo": { + "message": "Χρόνος έως" + }, + "todayAt": { + "message": "Σήμερα στις" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Trailer autoplay" + }, + "translations": { + "message": "Μεταφράσεις" + }, + "transparentBackground": { + "message": "Διαφανές υπόβαθρο" + }, + "trending": { + "message": "Τάσεις" + }, + "tryToReloadThePage": { + "message": "Προσπάθησε να επαναφορτώσεις τη σελίδα" + }, + "type": { + "message": "Τύπος" + }, + "upNextAutoplay": { + "message": "Επόμενο στο autoplay" + }, + "use24HourFormat": { + "message": "Χρησιμοποίησε 24ωρη μορφή ώρας" + }, + "version": { + "message": "Έκδοση" + }, + "video": { + "message": "Βίντεο" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Η περιγραφή του βίντεο θα επεκταθεί ωστε να συμπεριληφθεί το όνομα της κατηγορίας." + }, + "videoFormats": { + "message": "Μορφές βίντεο" + }, + "videos": { + "message": "Βίντεο" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Ένταση" + }, + "watchLater": { + "message": "Δες αργότερα" + }, + "watchTime": { + "message": "Χρόνος προβολής" + }, + "whenTabIsChanged": { + "message": "Όταν αλλάζεις καρτέλα" + }, + "white": { + "message": "Λευκό" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Κίτρινο" + }, + "youtubeHeaderLeft": { + "message": "Κεφαλίδα YouTube (αριστερά)" + }, + "youtubeHeaderRight": { + "message": "Κεφαλίδα YouTube (δεξιά)" + }, + "youtubeHomePage": { + "message": "Αρχική σελίδα YouTube" + }, + "youtubeLanguage": { + "message": "Γλώσσα YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "Το YouTube περιορίζει την ποιότητα σε 1080p για το h.264 codec" + } } \ No newline at end of file diff --git a/_locales/en/messages.json b/_locales/en/messages.json index ef0e98fe6..0d69d3877 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -1,995 +1,1001 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "About" - }, - "accept": { - "message": "Accept" - }, - "activate": { - "message": "Activate" - }, - "activateCaptions": { - "message": "Activate captions" - }, - "activateFullscreen": { - "message": "Activate fullscreen" - }, - "activated": { - "message": "Activated" - }, - "activatedFeatures": { - "message": "Activated features" - }, - "activeFeatures": { - "message": "Active features" - }, - "addScrollToTop": { - "message": "Add «Scroll to top»" - }, - "ads": { - "message": "Ads" - }, - "all": { - "message": "All" - }, - "allow": { - "message": "Allow" - }, - "allow60fps": { - "message": "Allow 60fps" - }, - "alwaysActive": { - "message": "Always active" - }, - "alwaysShowProgressBar": { - "message": "Always show progress bar" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analyzer" - }, - "appearance": { - "message": "Appearance" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio formats" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-fullscreen" - }, - "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" - }, - "autoplay": { - "message": "Autoplay" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Backup & reset" - }, - "baseOnSystemColorScheme": { - "message": "Base on system color scheme" - }, - "belowPlayer": { - "message": "Below player" - }, - "black": { - "message": "Black" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "Block all" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Blue" - }, - "blueGray": { - "message": "Blue gray" - }, - "bluelight": { - "message": "Bluelight" - }, - "brown": { - "message": "Brown" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser version" - }, - "bubbles": { - "message": "Bubbles" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Buttons" - }, - "cancel": { - "message": "Cancel" - }, - "categories": { - "message": "Categories" - }, - "channel": { - "message": "Channel" - }, - "channels": { - "message": "Channels" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" - }, - "collapsed": { - "message": "Collapsed" - }, - "comments": { - "message": "Comments" - }, - "confirmationBeforeClosing": { - "message": "Confirmation before closing" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Custom JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Dark" - }, - "darkTheme": { - "message": "Dark theme" - }, - "dateAndTime": { - "message": "Date & time" - }, - "dawn": { - "message": "Dawn" - }, - "decreasePlaybackSpeed": { - "message": "Decrease playback speed" - }, - "decreaseVolume": { - "message": "Decrease volume" - }, - "deepOrange": { - "message": "Deep orange" - }, - "deepPurple": { - "message": "Deep purple" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Default channel tab" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Delete YouTube cookies" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Description" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Desert" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Developer options" - }, - "device": { - "message": "Device" - }, - "dim": { - "message": "Dim" - }, - "disabled": { - "message": "Disabled" - }, - "dislike": { - "message": "Dislike" - }, - "doNotChange": { - "message": "Don't change" - }, - "donate": { - "message": "Donate" - }, - "draggable": { - "message": "Draggable" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Empty" - }, - "enabled": { - "message": "Enabled" - }, - "enabledForced": { - "message": "Enabled (forced)" - }, - "expanded": { - "message": "Expanded" - }, - "exportSettings": { - "message": "Export settings" - }, - "extension": { - "message": "Extension" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filters" - }, - "fitToWindow": { - "message": "Fit to window" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Footer" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, - "forcedTheaterMode": { - "message": "Forced theater mode" - }, - "forcedVolume": { - "message": "Forced volume" - }, - "foundABug": { - "message": "Found a bug?" - }, - "fullWindow": { - "message": "Full window" - }, - "general": { - "message": "General" - }, - "geoPreference": { - "message": "Geo Preference" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Go to search box" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Green" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "HD thumbnail" - }, - "header": { - "message": "Header" - }, - "hidden": { - "message": "Hidden" - }, - "hiddenOnVideoPage": { - "message": "Hidden on video page" - }, - "hideAnimatedThumbnails": { - "message": "Hide animated thumbnails" - }, - "hideAnnotations": { - "message": "Hide annotations" - }, - "hideCards": { - "message": "Hide cards" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Hide details" - }, - "hideEndscreen": { - "message": "Hide endscreen" - }, - "hideFeaturedContent": { - "message": "Hide featured content" - }, - "hideFooter": { - "message": "Hide footer" - }, - "hideGradientBottom": { - "message": "Hide shadow around player-bar" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Hide playlist" - }, - "hideRightButtons": { - "message": "Hide right buttons" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Hide «Scroll for details»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide 5 seconds skip animation" - }, - "hideThumbnailOverlay": { - "message": "Hide buttons on thumbnails" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Hide views count" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "History" - }, - "home": { - "message": "Home" - }, - "hover": { - "message": "Hover" - }, - "hoverOnVideoPage": { - "message": "Hover on video page" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" - }, - "icons": { - "message": "Icons" - }, - "iconsOnly": { - "message": "Icons only" - }, - "importSettings": { - "message": "Import settings" - }, - "improveLogo": { - "message": "Improve logo" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icon on YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube language" - }, - "improvedtubeVersion": { - "message": "ImprovedTube version" - }, - "increasePlaybackSpeed": { - "message": "Increase playback speed" - }, - "increaseVolume": { - "message": "Increase volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Languages" - }, - "legacyYoutube": { - "message": "Legacy YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Light" - }, - "lightBlue": { - "message": "Light blue" - }, - "lightGreen": { - "message": "Light green" - }, - "like": { - "message": "Like" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Lime" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "List" - }, - "liveChat": { - "message": "Live chat" - }, - "liveChatType": { - "message": "Live chat type" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Loudness normalization" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Mark watched videos" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mixer" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "My colors" - }, - "name": { - "message": "Name" - }, - "nativeMiniPlayer": { - "message": "Native mini player" - }, - "new": { - "message": "New" - }, - "nextVideo": { - "message": "Next video" - }, - "night": { - "message": "Night" - }, - "noActiveFeatures": { - "message": "No active features" - }, - "noOpenVideoTabs": { - "message": "No open video tabs" - }, - "none": { - "message": "None" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Old" - }, - "onAllVideos": { - "message": "On all videos" - }, - "onSubscribedChannels": { - "message": "On subscribed channels" - }, - "onlyActiveOnYoutube": { - "message": "Only active on YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "openPopupPlayer": { - "message": "Open video/playlist in a new window" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Other" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Permissions" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Pink" - }, - "plain": { - "message": "Plain" - }, - "platform": { - "message": "Platform" - }, - "playPause": { - "message": "Play / Pause" - }, - "playbackSpeed": { - "message": "Playback speed" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Player color" - }, - "playerSize": { - "message": "Player size" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "popupPlayer": { - "message": "Popup player" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Press any key or use mouse wheel." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Press any key or use mouse wheel" - }, - "previousVideo": { - "message": "Previous video" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "Purple" - }, - "quality": { - "message": "Quality" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Rate us" - }, - "red": { - "message": "Red" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Related videos" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Remove related search results" - }, - "repeat": { - "message": "Repeat" - }, - "reset": { - "message": "Reset" - }, - "resetAllSettings": { - "message": "Reset all settings" - }, - "resetAllShortcuts": { - "message": "Reset all shortcuts" - }, - "reverse": { - "message": "Reverse" - }, - "rotate": { - "message": "Rotate" - }, - "save": { - "message": "Save" - }, - "saveAs": { - "message": "Save as" - }, - "schedule": { - "message": "Schedule" - }, - "screen": { - "message": "Screen" - }, - "screenshot": { - "message": "Screenshot" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Search" - }, - "searchBarOnly": { - "message": "Search bar only" - }, - "seekBackward10Seconds": { - "message": "Seek backward 10 seconds" - }, - "seekForward10Seconds": { - "message": "Seek forward 10 seconds" - }, - "seekNextChapter": { - "message": "Seek Next Chapter" - }, - "seekPreviousChapter": { - "message": "Seek Previous Chapter" - }, - "settings": { - "message": "Settings" - }, - "settingsSuccessfullyImported": { - "message": "Settings successfully imported" - }, - "shortcuts": { - "message": "Shortcuts" - }, - "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" - }, - "showChannelVideosCount": { - "message": "Show channel videos count" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Shuffle" - }, - "sidebar": { - "message": "Sidebar" - }, - "spacebar": { - "message": "Spacebar" - }, - "squaredUserImages": { - "message": "Squared user images" - }, - "static": { - "message": "Static" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Subscriptions" - }, - "subtitles": { - "message": "Subtitles" - }, - "sunset": { - "message": "Sunset" - }, - "sunsetToSunrise": { - "message": "Sunset to sunrise" - }, - "systemPeferenceDark": { - "message": "System peference: dark" - }, - "systemPeferenceLight": { - "message": "System peference: light" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Text color" - }, - "themes": { - "message": "Themes" - }, - "thisWillRemoveAllCookies": { - "message": "This will remove all cookies." - }, - "thisWillRemoveAllWatchedVideos": { - "message": "This will remove all watched videos." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "This will remove all YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "This will reset all settings." - }, - "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" - }, - "thumbnails": { - "message": "Thumbnails" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Time from" - }, - "timeTo": { - "message": "Time to" - }, - "todayAt": { - "message": "Today at" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle player controls" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Trailer autoplay" - }, - "translations": { - "message": "Translations" - }, - "transparentBackground": { - "message": "Transparent background" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Try to reload the page" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "Up next autoplay" - }, - "use24HourFormat": { - "message": "Use 24-hour format" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" - }, - "videoFormats": { - "message": "Video formats" - }, - "videos": { - "message": "Videos" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Watch later" - }, - "watchTime": { - "message": "Watch time" - }, - "whenTabIsChanged": { - "message": "When tab is changed" - }, - "white": { - "message": "White" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Yellow" - }, - "youtubeHeaderLeft": { - "message": "YouTube Header (left)" - }, - "youtubeHeaderRight": { - "message": "YouTube Header (right)" - }, - "youtubeHomePage": { - "message": "YouTube home page" - }, - "youtubeLanguage": { - "message": "YouTube language" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limits video quality to 1080p for h.264 codec" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "About" + }, + "accept": { + "message": "Accept" + }, + "activate": { + "message": "Activate" + }, + "activateCaptions": { + "message": "Activate captions" + }, + "activateFullscreen": { + "message": "Activate fullscreen" + }, + "activated": { + "message": "Activated" + }, + "activatedFeatures": { + "message": "Activated features" + }, + "activeFeatures": { + "message": "Active features" + }, + "addScrollToTop": { + "message": "Add «Scroll to top»" + }, + "ads": { + "message": "Ads" + }, + "all": { + "message": "All" + }, + "allow": { + "message": "Allow" + }, + "allow60fps": { + "message": "Allow 60fps" + }, + "alwaysActive": { + "message": "Always active" + }, + "alwaysShowProgressBar": { + "message": "Always show progress bar" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analyzer" + }, + "appearance": { + "message": "Appearance" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formats" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullscreen" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause when switching tabs" + }, + "autoplay": { + "message": "Autoplay" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Backup & reset" + }, + "baseOnSystemColorScheme": { + "message": "Base on system color scheme" + }, + "belowPlayer": { + "message": "Below player" + }, + "black": { + "message": "Black" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "Block all" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Blue" + }, + "blueGray": { + "message": "Blue gray" + }, + "bluelight": { + "message": "Bluelight" + }, + "brown": { + "message": "Brown" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser version" + }, + "bubbles": { + "message": "Bubbles" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Buttons" + }, + "cancel": { + "message": "Cancel" + }, + "categories": { + "message": "Categories" + }, + "channel": { + "message": "Channel" + }, + "channels": { + "message": "Channels" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Collapse of subscription sections" + }, + "collapsed": { + "message": "Collapsed" + }, + "comments": { + "message": "Comments" + }, + "confirmationBeforeClosing": { + "message": "Confirmation before closing" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Custom JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Dark" + }, + "darkTheme": { + "message": "Dark theme" + }, + "dateAndTime": { + "message": "Date & time" + }, + "dawn": { + "message": "Dawn" + }, + "decreasePlaybackSpeed": { + "message": "Decrease playback speed" + }, + "decreaseVolume": { + "message": "Decrease volume" + }, + "deepOrange": { + "message": "Deep orange" + }, + "deepPurple": { + "message": "Deep purple" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Default channel tab" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Delete YouTube cookies" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Description" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Desert" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Developer options" + }, + "device": { + "message": "Device" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Disabled" + }, + "dislike": { + "message": "Dislike" + }, + "doNotChange": { + "message": "Don't change" + }, + "donate": { + "message": "Donate" + }, + "draggable": { + "message": "Draggable" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Empty" + }, + "enabled": { + "message": "Enabled" + }, + "enabledForced": { + "message": "Enabled (forced)" + }, + "expanded": { + "message": "Expanded" + }, + "exportSettings": { + "message": "Export settings" + }, + "extension": { + "message": "Extension" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filters" + }, + "fitToWindow": { + "message": "Fit to window" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Footer" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, + "forcedTheaterMode": { + "message": "Forced theater mode" + }, + "forcedVolume": { + "message": "Forced volume" + }, + "foundABug": { + "message": "Found a bug?" + }, + "fullWindow": { + "message": "Full window" + }, + "general": { + "message": "General" + }, + "geoPreference": { + "message": "Geo Preference" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Go to search box" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Green" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD thumbnail" + }, + "header": { + "message": "Header" + }, + "hidden": { + "message": "Hidden" + }, + "hiddenOnVideoPage": { + "message": "Hidden on video page" + }, + "hideAnimatedThumbnails": { + "message": "Hide animated thumbnails" + }, + "hideAnnotations": { + "message": "Hide annotations" + }, + "hideCards": { + "message": "Hide cards" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Hide details" + }, + "hideEndscreen": { + "message": "Hide endscreen" + }, + "hideFeaturedContent": { + "message": "Hide featured content" + }, + "hideFooter": { + "message": "Hide footer" + }, + "hideGradientBottom": { + "message": "Hide shadow around player-bar" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Hide playlist" + }, + "hideRightButtons": { + "message": "Hide right buttons" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Hide «Scroll for details»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide 5 seconds skip animation" + }, + "hideThumbnailOverlay": { + "message": "Hide buttons on thumbnails" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Hide views count" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "History" + }, + "home": { + "message": "Home" + }, + "hover": { + "message": "Hover" + }, + "hoverOnVideoPage": { + "message": "Hover on video page" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "How long ago the video was uploaded" + }, + "icons": { + "message": "Icons" + }, + "iconsOnly": { + "message": "Icons only" + }, + "importSettings": { + "message": "Import settings" + }, + "improveLogo": { + "message": "Improve logo" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube icon on YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube language" + }, + "improvedtubeVersion": { + "message": "ImprovedTube version" + }, + "increasePlaybackSpeed": { + "message": "Increase playback speed" + }, + "increaseVolume": { + "message": "Increase volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Languages" + }, + "legacyYoutube": { + "message": "Legacy YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Light" + }, + "lightBlue": { + "message": "Light blue" + }, + "lightGreen": { + "message": "Light green" + }, + "like": { + "message": "Like" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Lime" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "List" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Live chat type" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Loudness normalization" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Mark watched videos" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "My colors" + }, + "name": { + "message": "Name" + }, + "nativeMiniPlayer": { + "message": "Native mini player" + }, + "new": { + "message": "New" + }, + "nextVideo": { + "message": "Next video" + }, + "night": { + "message": "Night" + }, + "noActiveFeatures": { + "message": "No active features" + }, + "noOpenVideoTabs": { + "message": "No open video tabs" + }, + "none": { + "message": "None" + }, + "normal": { + "message": "Normal" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Old" + }, + "onAllVideos": { + "message": "On all videos" + }, + "onSubscribedChannels": { + "message": "On subscribed channels" + }, + "onlyActiveOnYoutube": { + "message": "Only active on YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "openPopupPlayer": { + "message": "Open video/playlist in a new window" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Other" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Permissions" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Pink" + }, + "plain": { + "message": "Plain" + }, + "platform": { + "message": "Platform" + }, + "playPause": { + "message": "Play / Pause" + }, + "playbackSpeed": { + "message": "Playback speed" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Player color" + }, + "playerSize": { + "message": "Player size" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "popupPlayer": { + "message": "Popup player" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Press any key or use mouse wheel." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Press any key or use mouse wheel" + }, + "previousVideo": { + "message": "Previous video" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "Purple" + }, + "quality": { + "message": "Quality" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Rate us" + }, + "red": { + "message": "Red" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Related videos" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Remove related search results" + }, + "repeat": { + "message": "Repeat" + }, + "reset": { + "message": "Reset" + }, + "resetAllSettings": { + "message": "Reset all settings" + }, + "resetAllShortcuts": { + "message": "Reset all shortcuts" + }, + "reverse": { + "message": "Reverse" + }, + "rotate": { + "message": "Rotate" + }, + "save": { + "message": "Save" + }, + "saveAs": { + "message": "Save as" + }, + "schedule": { + "message": "Schedule" + }, + "screen": { + "message": "Screen" + }, + "screenshot": { + "message": "Screenshot" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Search" + }, + "searchBarOnly": { + "message": "Search bar only" + }, + "seekBackward10Seconds": { + "message": "Seek backward 10 seconds" + }, + "seekForward10Seconds": { + "message": "Seek forward 10 seconds" + }, + "seekNextChapter": { + "message": "Seek Next Chapter" + }, + "seekPreviousChapter": { + "message": "Seek Previous Chapter" + }, + "settings": { + "message": "Settings" + }, + "settingsSuccessfullyImported": { + "message": "Settings successfully imported" + }, + "shortcuts": { + "message": "Shortcuts" + }, + "showCardsOnMouseHover": { + "message": "Show cards on mouse hover" + }, + "showChannelVideosCount": { + "message": "Show channel videos count" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Shuffle" + }, + "sidebar": { + "message": "Sidebar" + }, + "spacebar": { + "message": "Spacebar" + }, + "squaredUserImages": { + "message": "Squared user images" + }, + "static": { + "message": "Static" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Subscriptions" + }, + "subtitles": { + "message": "Subtitles" + }, + "sunset": { + "message": "Sunset" + }, + "sunsetToSunrise": { + "message": "Sunset to sunrise" + }, + "systemPeferenceDark": { + "message": "System peference: dark" + }, + "systemPeferenceLight": { + "message": "System peference: light" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Text color" + }, + "themes": { + "message": "Themes" + }, + "thisWillRemoveAllCookies": { + "message": "This will remove all cookies." + }, + "thisWillRemoveAllWatchedVideos": { + "message": "This will remove all watched videos." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "This will remove all YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "This will reset all settings." + }, + "thisWillResetAllShortcuts": { + "message": "This will reset all shortcuts" + }, + "thumbnails": { + "message": "Thumbnails" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Time from" + }, + "timeTo": { + "message": "Time to" + }, + "todayAt": { + "message": "Today at" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle player controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Trailer autoplay" + }, + "translations": { + "message": "Translations" + }, + "transparentBackground": { + "message": "Transparent background" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Try to reload the page" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Up next autoplay" + }, + "use24HourFormat": { + "message": "Use 24-hour format" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video description will be expanded to get the name of the category" + }, + "videoFormats": { + "message": "Video formats" + }, + "videos": { + "message": "Videos" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Watch later" + }, + "watchTime": { + "message": "Watch time" + }, + "whenTabIsChanged": { + "message": "When tab is changed" + }, + "white": { + "message": "White" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Yellow" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (left)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (right)" + }, + "youtubeHomePage": { + "message": "YouTube home page" + }, + "youtubeLanguage": { + "message": "YouTube language" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limits video quality to 1080p for h.264 codec" + } } \ No newline at end of file diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 4a3f19cad..6e3f2bf93 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -1,986 +1,992 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Acerca de" - }, - "accept": { - "message": "Aceptar" - }, - "activate": { - "message": "Activar" - }, - "activateCaptions": { - "message": "Activar subtítulos" - }, - "activateFullscreen": { - "message": "Activar pantalla completa" - }, - "activated": { - "message": "Activado" - }, - "activatedFeatures": { - "message": "Características activadas" - }, - "activeFeatures": { - "message": "Activar características" - }, - "addScrollToTop": { - "message": "Añadir «Volver arriba»" - }, - "ads": { - "message": "Ads" - }, - "all": { - "message": "Todo" - }, - "allow": { - "message": "Permitir" - }, - "allow60fps": { - "message": "Permitir 60fps" - }, - "alwaysActive": { - "message": "Siempre activo" - }, - "alwaysShowProgressBar": { - "message": "Siempre mostrar barra de progreso" - }, - "amber": { - "message": "Ámbar" - }, - "analyzer": { - "message": "Analizador" - }, - "appearance": { - "message": "Apariencia" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formatos de audio" - }, - "auto": { - "message": "Automático" - }, - "autoFullscreen": { - "message": "Pantalla completa automática" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausar al cambiar de pestaña" - }, - "autoplay": { - "message": "Reproducción automática" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Backup & reset" - }, - "baseOnSystemColorScheme": { - "message": "Según tema del sistema" - }, - "belowPlayer": { - "message": "Debajo del reproductor" - }, - "black": { - "message": "Negro" - }, - "blacklist": { - "message": "Lista negra" - }, - "blockAll": { - "message": "Bloquear todo" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Azul" - }, - "blueGray": { - "message": "Gris azulado" - }, - "bluelight": { - "message": "Luz azul" - }, - "brown": { - "message": "Marrón" - }, - "browser": { - "message": "Navegador" - }, - "browserVersion": { - "message": "Version del navegador" - }, - "bubbles": { - "message": "Burbujas" - }, - "bug": { - "message": "Error (Bug)" - }, - "buttons": { - "message": "Botones" - }, - "cancel": { - "message": "Cancelar" - }, - "categories": { - "message": "Categorías" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canales" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Portapapeles" - }, - "codecH264": { - "message": "Códec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Compactar sección de suscripciones" - }, - "collapsed": { - "message": "Compacto" - }, - "comments": { - "message": "Comentarios" - }, - "confirmationBeforeClosing": { - "message": "Confirmar antes de cerrar" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Núcleos" - }, - "cropChapterTitles": { - "message": "Recortar título de capítulos" - }, - "customCss": { - "message": "CSS personalizado" - }, - "customJs": { - "message": "JS personalizado" - }, - "customMiniPlayer": { - "message": "Mini-Reproductor personalizado" - }, - "cyan": { - "message": "Cian" - }, - "dark": { - "message": "Oscuro" - }, - "darkTheme": { - "message": "Tema oscuro" - }, - "dateAndTime": { - "message": "Fecha y hora" - }, - "dawn": { - "message": "Amanecer" - }, - "decreasePlaybackSpeed": { - "message": "Disminuir velocidad de reproducción" - }, - "decreaseVolume": { - "message": "Bajar volumen" - }, - "deepOrange": { - "message": "Naranja profundo" - }, - "deepPurple": { - "message": "Violeta profundo" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Pestaña del canal por defecto" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Borrar cookies de YouTube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Descripción" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Desierto" - }, - "details": { - "message": "Detalles" - }, - "developerOptions": { - "message": "Opciones de desarrollador" - }, - "device": { - "message": "Dispositivo" - }, - "dim": { - "message": "Oscuro" - }, - "disabled": { - "message": "Desactivado" - }, - "dislike": { - "message": "Dislike" - }, - "doNotChange": { - "message": "No cambiar" - }, - "donate": { - "message": "Donar" - }, - "draggable": { - "message": "Arrastrable" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Vacío" - }, - "enabled": { - "message": "Activado" - }, - "enabledForced": { - "message": "Activado (forzado)" - }, - "expanded": { - "message": "Expandido" - }, - "exportSettings": { - "message": "Exportar configuración" - }, - "extension": { - "message": "Extensión" - }, - "file": { - "message": "Archivo" - }, - "filters": { - "message": "Filtros" - }, - "fitToWindow": { - "message": "Ajustar a la ventana" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Fuente" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Pie" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Forzar velocidad de reproducción" - }, - "forcedTheaterMode": { - "message": "Forzar modo teatro" - }, - "forcedVolume": { - "message": "Forzar volumen" - }, - "foundABug": { - "message": "¿Encontraste un error (bug)?" - }, - "fullWindow": { - "message": "Pantalla completa" - }, - "general": { - "message": "General" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Ir a barra de búsqueda" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "Miniatura HD" - }, - "header": { - "message": "Encabezado" - }, - "hidden": { - "message": "Oculto" - }, - "hiddenOnVideoPage": { - "message": "Oculto en la página de video" - }, - "hideAnimatedThumbnails": { - "message": "Ocultar miniaturas animadas" - }, - "hideAnnotations": { - "message": "Ocultar anotaciones" - }, - "hideCards": { - "message": "Ocultar tarjetas" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Ocultar detalles" - }, - "hideEndscreen": { - "message": "Ocultar pantalla final" - }, - "hideFeaturedContent": { - "message": "Ocultar contenido destacado" - }, - "hideFooter": { - "message": "Ocultar pie de página" - }, - "hideGradientBottom": { - "message": "Ocultar parte inferior degradada" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Ocultar playlist" - }, - "hideRightButtons": { - "message": "Ocultar botones de la derecha" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Ocultar «Desliza hacia abajo para ver más detalles»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Ocultar contador de visitas" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "Historial" - }, - "home": { - "message": "Inicio" - }, - "hover": { - "message": "Cursor sobre (hover)" - }, - "hoverOnVideoPage": { - "message": "Cursor sobre (hover) en página de video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Hace cuánto tiempo se subió el video" - }, - "icons": { - "message": "Iconos" - }, - "iconsOnly": { - "message": "Solo iconos" - }, - "importSettings": { - "message": "Importar configuración" - }, - "improveLogo": { - "message": "Mejorar logo" - }, - "improvedtubeIconOnYoutube": { - "message": "Icono ImprovedTube en YouTube" - }, - "improvedtubeLanguage": { - "message": "Idioma de ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Version de ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Aumentar velocidad de reproducción" - }, - "increaseVolume": { - "message": "Subir volumen" - }, - "indigo": { - "message": "Índigo" - }, - "items": { - "message": "Items" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Idiomas" - }, - "legacyYoutube": { - "message": " YouTube antiguo" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Claro" - }, - "lightBlue": { - "message": "Azul claro" - }, - "lightGreen": { - "message": "Verde claro" - }, - "like": { - "message": "Like" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Lima" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Chat en directo" - }, - "liveChatType": { - "message": "Tipo de chat en directo" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Normalización de volumen" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Marcar videos vistos" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mezclador" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Mis colores" - }, - "name": { - "message": "Nombre" - }, - "nativeMiniPlayer": { - "message": "Mini-Reproductor nativo" - }, - "new": { - "message": "Nuevo" - }, - "nextVideo": { - "message": "Siguiente video" - }, - "night": { - "message": "Noche" - }, - "noActiveFeatures": { - "message": "Sin características activas" - }, - "noOpenVideoTabs": { - "message": "Sin pestañas de video abiertas" - }, - "none": { - "message": "Ninguno" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Viejo" - }, - "onAllVideos": { - "message": "En todos los videos" - }, - "onSubscribedChannels": { - "message": "En canales suscritos" - }, - "onlyActiveOnYoutube": { - "message": "Solo activo en YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Solo una pestaña reproduciendo" - }, - "orange": { - "message": "Naranja" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Otro" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Permisos" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Plano" - }, - "platform": { - "message": "Plataforma" - }, - "playPause": { - "message": "Reproducir / pausar" - }, - "playbackSpeed": { - "message": "Velocidad de reproducción" - }, - "player": { - "message": "Reproductor" - }, - "playerColor": { - "message": "Color del reproductor" - }, - "playerSize": { - "message": "Tamaño del reproductor" - }, - "playlist": { - "message": "Lista de reproducción" - }, - "playlists": { - "message": "Listas de reproducción" - }, - "popupPlayer": { - "message": "Reproductor emergente" - }, - "position": { - "message": "Posición" - }, - "pressAnyKeyOrScroll": { - "message": "Aprieta una tecla o haz scroll" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Aprieta una tecla o usa la rueda del ratón" - }, - "previousVideo": { - "message": "Reproducir video anterior" - }, - "primaryColor": { - "message": "Color Primario" - }, - "purple": { - "message": "Morado" - }, - "quality": { - "message": "Calidad" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Califíquenos" - }, - "red": { - "message": "Rojo" - }, - "redDislikeButton": { - "message": "Mostrar el botón de dislike de color rojo" - }, - "relatedVideos": { - "message": "Vídeos relacionados" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Quitar resultados relacionados" - }, - "repeat": { - "message": "Repetir" - }, - "reset": { - "message": "Reiniciar" - }, - "resetAllSettings": { - "message": "Restablecer todos los ajustes" - }, - "resetAllShortcuts": { - "message": "Restablecer todos los atajos" - }, - "reverse": { - "message": "Revertir" - }, - "rotate": { - "message": "Rotar" - }, - "save": { - "message": "Guardar" - }, - "saveAs": { - "message": "Guardar como" - }, - "schedule": { - "message": "Programar" - }, - "screen": { - "message": "Pantalla" - }, - "screenshot": { - "message": "Captura de pantalla" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Búsqueda" - }, - "searchBarOnly": { - "message": "Solo barra de búsqueda" - }, - "seekBackward10Seconds": { - "message": "Retroceder 10 segundos" - }, - "seekForward10Seconds": { - "message": "Adelantar 10 segundos" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Ajustes" - }, - "settingsSuccessfullyImported": { - "message": "Ajustes importados correctamente" - }, - "shortcuts": { - "message": "Atajos" - }, - "showCardsOnMouseHover": { - "message": "Mostrar tarjetas al pasar el ratón" - }, - "showChannelVideosCount": { - "message": "Mostrar recuento de videos del canal" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Aleatorio" - }, - "sidebar": { - "message": "Barra lateral" - }, - "spacebar": { - "message": "Espacio" - }, - "squaredUserImages": { - "message": "Fotos de perfil cuadradas" - }, - "static": { - "message": "Estático" - }, - "statsForNerds": { - "message": "Mostrar estadísticas para Nerds" - }, - "step": { - "message": "Paso" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Estilo" - }, - "styles": { - "message": "Estilos" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Suscripciones" - }, - "subtitles": { - "message": "Subtítulos" - }, - "sunset": { - "message": "Atardecer" - }, - "sunsetToSunrise": { - "message": "De atardecer a amanecer" - }, - "systemPeferenceDark": { - "message": "Preferencia del sistema: Oscuro" - }, - "systemPeferenceLight": { - "message": "Preferencia del sistema: Claro" - }, - "teal": { - "message": "Verde azulado" - }, - "textColor": { - "message": "Color del texto" - }, - "themes": { - "message": "Temas" - }, - "thisWillRemoveAllCookies": { - "message": "Esto borrará todas las cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Esto borrará todas las cookies de YouTube" - }, - "thisWillResetAllSettings": { - "message": "Esto restablecerá todos los ajustes" - }, - "thisWillResetAllShortcuts": { - "message": "Esto restablecerá todos los atajos" - }, - "thumbnails": { - "message": "Miniaturas" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Desde" - }, - "timeTo": { - "message": "Hasta" - }, - "todayAt": { - "message": "Hoy a las" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Reproducción automática de trailer" - }, - "translations": { - "message": "Traducciones" - }, - "transparentBackground": { - "message": "Fondo transparente" - }, - "trending": { - "message": "Tendencias" - }, - "tryToReloadThePage": { - "message": "Trata de recargar la página" - }, - "type": { - "message": "Tipo" - }, - "upNextAutoplay": { - "message": "Siguiente reproducción automática" - }, - "use24HourFormat": { - "message": "Usar formato 24 horas" - }, - "version": { - "message": "Versión" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La descripción del video se expandirá para obtener el nombre de la categoría." - }, - "videoFormats": { - "message": "Formatos de video" - }, - "videos": { - "message": "Videos" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volumen" - }, - "watchLater": { - "message": "Ver más tarde" - }, - "watchTime": { - "message": "Visualizaciones" - }, - "whenTabIsChanged": { - "message": "Al cambiar de pestaña" - }, - "white": { - "message": "Blanco" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Amarillo" - }, - "youtubeHeaderLeft": { - "message": "Encabezado YouTube (izq)" - }, - "youtubeHeaderRight": { - "message": "Encabezado YouTube (der)" - }, - "youtubeHomePage": { - "message": "Página de inicio de YouTube" - }, - "youtubeLanguage": { - "message": "Idioma de YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limita calidad de video a 1080p para el codec h.264" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Acerca de" + }, + "accept": { + "message": "Aceptar" + }, + "activate": { + "message": "Activar" + }, + "activateCaptions": { + "message": "Activar subtítulos" + }, + "activateFullscreen": { + "message": "Activar pantalla completa" + }, + "activated": { + "message": "Activado" + }, + "activatedFeatures": { + "message": "Características activadas" + }, + "activeFeatures": { + "message": "Activar características" + }, + "addScrollToTop": { + "message": "Añadir «Volver arriba»" + }, + "ads": { + "message": "Ads" + }, + "all": { + "message": "Todo" + }, + "allow": { + "message": "Permitir" + }, + "allow60fps": { + "message": "Permitir 60fps" + }, + "alwaysActive": { + "message": "Siempre activo" + }, + "alwaysShowProgressBar": { + "message": "Siempre mostrar barra de progreso" + }, + "amber": { + "message": "Ámbar" + }, + "analyzer": { + "message": "Analizador" + }, + "appearance": { + "message": "Apariencia" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formatos de audio" + }, + "auto": { + "message": "Automático" + }, + "autoFullscreen": { + "message": "Pantalla completa automática" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausar al cambiar de pestaña" + }, + "autoplay": { + "message": "Reproducción automática" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Backup & reset" + }, + "baseOnSystemColorScheme": { + "message": "Según tema del sistema" + }, + "belowPlayer": { + "message": "Debajo del reproductor" + }, + "black": { + "message": "Negro" + }, + "blacklist": { + "message": "Lista negra" + }, + "blockAll": { + "message": "Bloquear todo" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Azul" + }, + "blueGray": { + "message": "Gris azulado" + }, + "bluelight": { + "message": "Luz azul" + }, + "brown": { + "message": "Marrón" + }, + "browser": { + "message": "Navegador" + }, + "browserVersion": { + "message": "Version del navegador" + }, + "bubbles": { + "message": "Burbujas" + }, + "bug": { + "message": "Error (Bug)" + }, + "buttons": { + "message": "Botones" + }, + "cancel": { + "message": "Cancelar" + }, + "categories": { + "message": "Categorías" + }, + "channel": { + "message": "Canal" + }, + "channels": { + "message": "Canales" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Portapapeles" + }, + "codecH264": { + "message": "Códec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Compactar sección de suscripciones" + }, + "collapsed": { + "message": "Compacto" + }, + "comments": { + "message": "Comentarios" + }, + "confirmationBeforeClosing": { + "message": "Confirmar antes de cerrar" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Núcleos" + }, + "cropChapterTitles": { + "message": "Recortar título de capítulos" + }, + "customCss": { + "message": "CSS personalizado" + }, + "customJs": { + "message": "JS personalizado" + }, + "customMiniPlayer": { + "message": "Mini-Reproductor personalizado" + }, + "cyan": { + "message": "Cian" + }, + "dark": { + "message": "Oscuro" + }, + "darkTheme": { + "message": "Tema oscuro" + }, + "dateAndTime": { + "message": "Fecha y hora" + }, + "dawn": { + "message": "Amanecer" + }, + "decreasePlaybackSpeed": { + "message": "Disminuir velocidad de reproducción" + }, + "decreaseVolume": { + "message": "Bajar volumen" + }, + "deepOrange": { + "message": "Naranja profundo" + }, + "deepPurple": { + "message": "Violeta profundo" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Pestaña del canal por defecto" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Borrar cookies de YouTube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Descripción" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Desierto" + }, + "details": { + "message": "Detalles" + }, + "developerOptions": { + "message": "Opciones de desarrollador" + }, + "device": { + "message": "Dispositivo" + }, + "dim": { + "message": "Oscuro" + }, + "disabled": { + "message": "Desactivado" + }, + "dislike": { + "message": "Dislike" + }, + "doNotChange": { + "message": "No cambiar" + }, + "donate": { + "message": "Donar" + }, + "draggable": { + "message": "Arrastrable" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Vacío" + }, + "enabled": { + "message": "Activado" + }, + "enabledForced": { + "message": "Activado (forzado)" + }, + "expanded": { + "message": "Expandido" + }, + "exportSettings": { + "message": "Exportar configuración" + }, + "extension": { + "message": "Extensión" + }, + "file": { + "message": "Archivo" + }, + "filters": { + "message": "Filtros" + }, + "fitToWindow": { + "message": "Ajustar a la ventana" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Fuente" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Pie" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Forzar velocidad de reproducción" + }, + "forcedTheaterMode": { + "message": "Forzar modo teatro" + }, + "forcedVolume": { + "message": "Forzar volumen" + }, + "foundABug": { + "message": "¿Encontraste un error (bug)?" + }, + "fullWindow": { + "message": "Pantalla completa" + }, + "general": { + "message": "General" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Ir a barra de búsqueda" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "Miniatura HD" + }, + "header": { + "message": "Encabezado" + }, + "hidden": { + "message": "Oculto" + }, + "hiddenOnVideoPage": { + "message": "Oculto en la página de video" + }, + "hideAnimatedThumbnails": { + "message": "Ocultar miniaturas animadas" + }, + "hideAnnotations": { + "message": "Ocultar anotaciones" + }, + "hideCards": { + "message": "Ocultar tarjetas" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Ocultar detalles" + }, + "hideEndscreen": { + "message": "Ocultar pantalla final" + }, + "hideFeaturedContent": { + "message": "Ocultar contenido destacado" + }, + "hideFooter": { + "message": "Ocultar pie de página" + }, + "hideGradientBottom": { + "message": "Ocultar parte inferior degradada" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Ocultar playlist" + }, + "hideRightButtons": { + "message": "Ocultar botones de la derecha" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Ocultar «Desliza hacia abajo para ver más detalles»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Ocultar contador de visitas" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Historial" + }, + "home": { + "message": "Inicio" + }, + "hover": { + "message": "Cursor sobre (hover)" + }, + "hoverOnVideoPage": { + "message": "Cursor sobre (hover) en página de video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Hace cuánto tiempo se subió el video" + }, + "icons": { + "message": "Iconos" + }, + "iconsOnly": { + "message": "Solo iconos" + }, + "importSettings": { + "message": "Importar configuración" + }, + "improveLogo": { + "message": "Mejorar logo" + }, + "improvedtubeIconOnYoutube": { + "message": "Icono ImprovedTube en YouTube" + }, + "improvedtubeLanguage": { + "message": "Idioma de ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Version de ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Aumentar velocidad de reproducción" + }, + "increaseVolume": { + "message": "Subir volumen" + }, + "indigo": { + "message": "Índigo" + }, + "items": { + "message": "Items" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Idiomas" + }, + "legacyYoutube": { + "message": " YouTube antiguo" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Claro" + }, + "lightBlue": { + "message": "Azul claro" + }, + "lightGreen": { + "message": "Verde claro" + }, + "like": { + "message": "Like" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Lima" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Chat en directo" + }, + "liveChatType": { + "message": "Tipo de chat en directo" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Normalización de volumen" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Marcar videos vistos" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mezclador" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Mis colores" + }, + "name": { + "message": "Nombre" + }, + "nativeMiniPlayer": { + "message": "Mini-Reproductor nativo" + }, + "new": { + "message": "Nuevo" + }, + "nextVideo": { + "message": "Siguiente video" + }, + "night": { + "message": "Noche" + }, + "noActiveFeatures": { + "message": "Sin características activas" + }, + "noOpenVideoTabs": { + "message": "Sin pestañas de video abiertas" + }, + "none": { + "message": "Ninguno" + }, + "normal": { + "message": "Normal" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Viejo" + }, + "onAllVideos": { + "message": "En todos los videos" + }, + "onSubscribedChannels": { + "message": "En canales suscritos" + }, + "onlyActiveOnYoutube": { + "message": "Solo activo en YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Solo una pestaña reproduciendo" + }, + "orange": { + "message": "Naranja" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Otro" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Permisos" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Plano" + }, + "platform": { + "message": "Plataforma" + }, + "playPause": { + "message": "Reproducir / pausar" + }, + "playbackSpeed": { + "message": "Velocidad de reproducción" + }, + "player": { + "message": "Reproductor" + }, + "playerColor": { + "message": "Color del reproductor" + }, + "playerSize": { + "message": "Tamaño del reproductor" + }, + "playlist": { + "message": "Lista de reproducción" + }, + "playlists": { + "message": "Listas de reproducción" + }, + "popupPlayer": { + "message": "Reproductor emergente" + }, + "position": { + "message": "Posición" + }, + "pressAnyKeyOrScroll": { + "message": "Aprieta una tecla o haz scroll" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Aprieta una tecla o usa la rueda del ratón" + }, + "previousVideo": { + "message": "Reproducir video anterior" + }, + "primaryColor": { + "message": "Color Primario" + }, + "purple": { + "message": "Morado" + }, + "quality": { + "message": "Calidad" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Califíquenos" + }, + "red": { + "message": "Rojo" + }, + "redDislikeButton": { + "message": "Mostrar el botón de dislike de color rojo" + }, + "relatedVideos": { + "message": "Vídeos relacionados" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Quitar resultados relacionados" + }, + "repeat": { + "message": "Repetir" + }, + "reset": { + "message": "Reiniciar" + }, + "resetAllSettings": { + "message": "Restablecer todos los ajustes" + }, + "resetAllShortcuts": { + "message": "Restablecer todos los atajos" + }, + "reverse": { + "message": "Revertir" + }, + "rotate": { + "message": "Rotar" + }, + "save": { + "message": "Guardar" + }, + "saveAs": { + "message": "Guardar como" + }, + "schedule": { + "message": "Programar" + }, + "screen": { + "message": "Pantalla" + }, + "screenshot": { + "message": "Captura de pantalla" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Búsqueda" + }, + "searchBarOnly": { + "message": "Solo barra de búsqueda" + }, + "seekBackward10Seconds": { + "message": "Retroceder 10 segundos" + }, + "seekForward10Seconds": { + "message": "Adelantar 10 segundos" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Ajustes" + }, + "settingsSuccessfullyImported": { + "message": "Ajustes importados correctamente" + }, + "shortcuts": { + "message": "Atajos" + }, + "showCardsOnMouseHover": { + "message": "Mostrar tarjetas al pasar el ratón" + }, + "showChannelVideosCount": { + "message": "Mostrar recuento de videos del canal" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Aleatorio" + }, + "sidebar": { + "message": "Barra lateral" + }, + "spacebar": { + "message": "Espacio" + }, + "squaredUserImages": { + "message": "Fotos de perfil cuadradas" + }, + "static": { + "message": "Estático" + }, + "statsForNerds": { + "message": "Mostrar estadísticas para Nerds" + }, + "step": { + "message": "Paso" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Estilo" + }, + "styles": { + "message": "Estilos" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Suscripciones" + }, + "subtitles": { + "message": "Subtítulos" + }, + "sunset": { + "message": "Atardecer" + }, + "sunsetToSunrise": { + "message": "De atardecer a amanecer" + }, + "systemPeferenceDark": { + "message": "Preferencia del sistema: Oscuro" + }, + "systemPeferenceLight": { + "message": "Preferencia del sistema: Claro" + }, + "teal": { + "message": "Verde azulado" + }, + "textColor": { + "message": "Color del texto" + }, + "themes": { + "message": "Temas" + }, + "thisWillRemoveAllCookies": { + "message": "Esto borrará todas las cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Esto borrará todas las cookies de YouTube" + }, + "thisWillResetAllSettings": { + "message": "Esto restablecerá todos los ajustes" + }, + "thisWillResetAllShortcuts": { + "message": "Esto restablecerá todos los atajos" + }, + "thumbnails": { + "message": "Miniaturas" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Desde" + }, + "timeTo": { + "message": "Hasta" + }, + "todayAt": { + "message": "Hoy a las" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Reproducción automática de trailer" + }, + "translations": { + "message": "Traducciones" + }, + "transparentBackground": { + "message": "Fondo transparente" + }, + "trending": { + "message": "Tendencias" + }, + "tryToReloadThePage": { + "message": "Trata de recargar la página" + }, + "type": { + "message": "Tipo" + }, + "upNextAutoplay": { + "message": "Siguiente reproducción automática" + }, + "use24HourFormat": { + "message": "Usar formato 24 horas" + }, + "version": { + "message": "Versión" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "La descripción del video se expandirá para obtener el nombre de la categoría." + }, + "videoFormats": { + "message": "Formatos de video" + }, + "videos": { + "message": "Videos" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volumen" + }, + "watchLater": { + "message": "Ver más tarde" + }, + "watchTime": { + "message": "Visualizaciones" + }, + "whenTabIsChanged": { + "message": "Al cambiar de pestaña" + }, + "white": { + "message": "Blanco" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Amarillo" + }, + "youtubeHeaderLeft": { + "message": "Encabezado YouTube (izq)" + }, + "youtubeHeaderRight": { + "message": "Encabezado YouTube (der)" + }, + "youtubeHomePage": { + "message": "Página de inicio de YouTube" + }, + "youtubeLanguage": { + "message": "Idioma de YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limita calidad de video a 1080p para el codec h.264" + } } \ No newline at end of file diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 0b4a128c5..670ae54cb 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -1,989 +1,995 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "À propos" - }, - "accept": { - "message": "Accepter" - }, - "activate": { - "message": "Activer" - }, - "activateCaptions": { - "message": "Activer les sous-titres" - }, - "activateFullscreen": { - "message": "Activer le plein écran" - }, - "activated": { - "message": "Activé" - }, - "activatedFeatures": { - "message": "Fonctionnalités activées" - }, - "activeFeatures": { - "message": "Fonctionnalités actives" - }, - "addScrollToTop": { - "message": "Ajouter « Remonter en haut »" - }, - "ads": { - "message": "Publicités" - }, - "all": { - "message": "Voir tout" - }, - "allow": { - "message": "Permettre" - }, - "allow60fps": { - "message": "Jouer à 60 fps" - }, - "alwaysActive": { - "message": "Toujours activé" - }, - "alwaysShowProgressBar": { - "message": "Toujours afficher la barre de progression" - }, - "amber": { - "message": "Ambre" - }, - "analyzer": { - "message": "Analyser" - }, - "appearance": { - "message": "Apparence" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formats de fichier audio" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Plein écran automatique" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pause automatique lors d'un changement d'onglet" - }, - "autoplay": { - "message": "Lecture automatique" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Sauvegarde et réinitialisation" - }, - "baseOnSystemColorScheme": { - "message": "Selon les paramètres du système" - }, - "belowPlayer": { - "message": "Sous le player" - }, - "black": { - "message": "Noir" - }, - "blacklist": { - "message": "Liste noire" - }, - "blockAll": { - "message": "Tout bloquer" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Bleu" - }, - "blueGray": { - "message": "Gris-bleu" - }, - "bluelight": { - "message": "Bleu pâle" - }, - "brown": { - "message": "Brun" - }, - "browser": { - "message": "Navigateur web" - }, - "browserVersion": { - "message": "Version du navigateur web" - }, - "bubbles": { - "message": "Bulles" - }, - "bug": { - "message": "Bogue" - }, - "buttons": { - "message": "Boutons" - }, - "cancel": { - "message": "Retour" - }, - "categories": { - "message": "Catégories" - }, - "channel": { - "message": "Chaîne" - }, - "channels": { - "message": "Chaînes" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Presse-papiers" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Réduire la section des abonnements" - }, - "collapsed": { - "message": "Réduire" - }, - "comments": { - "message": "Commentaires" - }, - "confirmationBeforeClosing": { - "message": "Confirmation avant la fermeture" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Noyaux" - }, - "cropChapterTitles": { - "message": "Couper les titres des chapitres" - }, - "customCss": { - "message": "CSS customisé" - }, - "customJs": { - "message": "JS customisé" - }, - "customMiniPlayer": { - "message": "Mini-lecteur personnalisé" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Sombre" - }, - "darkTheme": { - "message": "Thème sombre" - }, - "dateAndTime": { - "message": "Date et temps" - }, - "dawn": { - "message": "Aube" - }, - "decreasePlaybackSpeed": { - "message": "Réduire la vitesse de lecture" - }, - "decreaseVolume": { - "message": "Réduire le volume" - }, - "deepOrange": { - "message": "Orange foncé" - }, - "deepPurple": { - "message": "Violet foncé" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Onglet par défaut d'une chaîne" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Supprimer les cookies YouTube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Description" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Desert" - }, - "details": { - "message": "Détails" - }, - "developerOptions": { - "message": "Options de développeur" - }, - "device": { - "message": "Appareil" - }, - "dim": { - "message": "Assombrir" - }, - "disabled": { - "message": "Désactivé" - }, - "dislike": { - "message": "Je n'aime pas" - }, - "doNotChange": { - "message": "Ne pas changer" - }, - "donate": { - "message": "Donner" - }, - "draggable": { - "message": "Draggable" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Courriel" - }, - "empty": { - "message": "Vide" - }, - "enabled": { - "message": "Activé" - }, - "enabledForced": { - "message": "Activé (forcé)" - }, - "expanded": { - "message": "Étendu" - }, - "exportSettings": { - "message": "Exporter les réglages" - }, - "extension": { - "message": "Extension" - }, - "file": { - "message": "Fichier" - }, - "filters": { - "message": "Filtres" - }, - "fitToWindow": { - "message": "Ajuster à la fenêtre" - }, - "flash": { - "message": "Clignoter" - }, - "font": { - "message": "Police" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Bas de page" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Vitesse de lecture forcée" - }, - "forcedTheaterMode": { - "message": "Forcer le mode théâtre" - }, - "forcedVolume": { - "message": "Forcer le volume" - }, - "foundABug": { - "message": "Un bogue?" - }, - "fullWindow": { - "message": "Fenêtre pleine" - }, - "general": { - "message": "Général" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Barre de recherche" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Vert" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "Miniature HD" - }, - "header": { - "message": "Tête de page" - }, - "hidden": { - "message": "Caché" - }, - "hiddenOnVideoPage": { - "message": "Caché sur la page de la vidéo" - }, - "hideAnimatedThumbnails": { - "message": "Miniatures sans animation" - }, - "hideAnnotations": { - "message": "Cacher les annotations" - }, - "hideCards": { - "message": "Cacher les cartes" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Cacher les détails" - }, - "hideEndscreen": { - "message": "Cacher l'écran de fin" - }, - "hideFeaturedContent": { - "message": "Cacher le contenu recommandé" - }, - "hideFooter": { - "message": "Cacher le pied de page" - }, - "hideGradientBottom": { - "message": "Masquer le dégradé du bas" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Cacher la liste de lecture" - }, - "hideRightButtons": { - "message": "Cacher les boutons à droite" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Cacher « Faire défiler pour les détails »" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Voir le compte des vues" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "Historique" - }, - "home": { - "message": "Accueil" - }, - "hover": { - "message": "Survoler" - }, - "hoverOnVideoPage": { - "message": "Survoler la page de la vidéo" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Depuis combien de temps la vidéo a été téléversé?" - }, - "icons": { - "message": "Icônes" - }, - "iconsOnly": { - "message": "Uniquement les icônes" - }, - "importSettings": { - "message": "Importer les réglages" - }, - "improveLogo": { - "message": "Améliorer le logo" - }, - "improvedtubeIconOnYoutube": { - "message": "Afficher l'icône ImprovedTube sur YouTube" - }, - "improvedtubeLanguage": { - "message": "Langue d'ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Version d'ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Accélérer la vitesse de lecture" - }, - "increaseVolume": { - "message": "Augmenter le volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Objets" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Langues" - }, - "legacyYoutube": { - "message": "Ancienne version de Youtube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Clair" - }, - "lightBlue": { - "message": "Bleu clair" - }, - "lightGreen": { - "message": "Vert clair" - }, - "like": { - "message": "J'aime" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "J'aime" - }, - "lime": { - "message": "Citron vert" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Chat en direct" - }, - "liveChatType": { - "message": "Type de chat en direct" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Normalisation de l'intensité sonore" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Marquer les vidéos déjà visionnées" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mélangeur de volume" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Mes couleurs" - }, - "name": { - "message": "Nom" - }, - "nativeMiniPlayer": { - "message": "Mini-lecteur natif" - }, - "new": { - "message": "Nouveau" - }, - "nextVideo": { - "message": "Prochaine vidéo" - }, - "night": { - "message": "Nuit" - }, - "noActiveFeatures": { - "message": "Pas de fonctionalité active" - }, - "noOpenVideoTabs": { - "message": "Aucun onglet de vidéo ouvert" - }, - "none": { - "message": "Aucun" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Vieux" - }, - "onAllVideos": { - "message": "Pour toutes les vidéos" - }, - "onSubscribedChannels": { - "message": "Sur les chaînes auxquelles je suis abonné" - }, - "onlyActiveOnYoutube": { - "message": "Uniquement actif sur YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Une seule instance à la fois" - }, - "openPopupPlayer": { - "message": "Ouvrir Video/playlist dans un nouvelle onglet" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Autres" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Permissions" - }, - "pictureInPicture": { - "message": "Image dans l'image" - }, - "pink": { - "message": "Rose" - }, - "plain": { - "message": "Ordinaire" - }, - "platform": { - "message": "Platforme" - }, - "playPause": { - "message": "Lire / Pause" - }, - "playbackSpeed": { - "message": "Vitesse de lecture" - }, - "player": { - "message": "Lecteur" - }, - "playerColor": { - "message": "Couleur du lecteur" - }, - "playerSize": { - "message": "Taille du lecteur" - }, - "playlist": { - "message": "Liste de lecture" - }, - "playlists": { - "message": "Listes de lecture" - }, - "popupPlayer": { - "message": "Détacher le lecteur" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." - }, - "previousVideo": { - "message": "Vidéo précédente" - }, - "primaryColor": { - "message": "Couleur primaire" - }, - "purple": { - "message": "Violet" - }, - "quality": { - "message": "Qualité" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Nous évaluer" - }, - "red": { - "message": "Rouge" - }, - "redDislikeButton": { - "message": "Afficher la couleur rouge du bouton Je n'aime pas" - }, - "relatedVideos": { - "message": "Vidéos associés" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Supprimer les résultats de recherche associés" - }, - "repeat": { - "message": "Lire en boucle" - }, - "reset": { - "message": "Réintialiser" - }, - "resetAllSettings": { - "message": "Annuler réglages" - }, - "resetAllShortcuts": { - "message": "Annuler raccourcis" - }, - "reverse": { - "message": "Inverser" - }, - "rotate": { - "message": "Faire pivoter la vidéo" - }, - "save": { - "message": "Ok" - }, - "saveAs": { - "message": "Sauvegarder sous" - }, - "schedule": { - "message": "Plage horaire" - }, - "screen": { - "message": "Écran" - }, - "screenshot": { - "message": "Capture d'écran" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Rechercher" - }, - "searchBarOnly": { - "message": "Uniquement la barre de recherche" - }, - "seekBackward10Seconds": { - "message": "Reculer de 10 secondes" - }, - "seekForward10Seconds": { - "message": "Avancer de 10 secondes" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Réglages" - }, - "settingsSuccessfullyImported": { - "message": "Importation des réglages réussie" - }, - "shortcuts": { - "message": "Raccourcis" - }, - "showCardsOnMouseHover": { - "message": "Afficher les cartes au survol de la souris" - }, - "showChannelVideosCount": { - "message": "Afficher le nombre de vidéos de la chaîne" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Aléatoire" - }, - "sidebar": { - "message": "Barre latérale" - }, - "spacebar": { - "message": "Barre d'espace" - }, - "squaredUserImages": { - "message": "Images des utilisateurs carrées" - }, - "static": { - "message": "Statique" - }, - "statsForNerds": { - "message": "Statistiques pour nerd" - }, - "step": { - "message": "Étape" - }, - "stop": { - "message": "Arrêter" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Abonnements" - }, - "subtitles": { - "message": "Activer les sous-titres" - }, - "sunset": { - "message": "Coucher de soleil" - }, - "sunsetToSunrise": { - "message": "Du coucher au lever du Soleil" - }, - "systemPeferenceDark": { - "message": "Préférence système : sombre" - }, - "systemPeferenceLight": { - "message": "Préférence système : clair" - }, - "teal": { - "message": "Sarcelle" - }, - "textColor": { - "message": "Couleur du texte" - }, - "themes": { - "message": "Thèmes" - }, - "thisWillRemoveAllCookies": { - "message": "Supprimer tous les cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Supprimer tous les cookies Youtube." - }, - "thisWillResetAllSettings": { - "message": "Réintialiser les réglages." - }, - "thisWillResetAllShortcuts": { - "message": "Réintialiser les raccourcis." - }, - "thumbnails": { - "message": "Miniature" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Temps de" - }, - "timeTo": { - "message": "Temps au" - }, - "todayAt": { - "message": "Aujourd'hui à" - }, - "toggleAutoplay": { - "message": "Basculer lecture auto" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Démarrage automatique des annonces" - }, - "translations": { - "message": "Traductions" - }, - "transparentBackground": { - "message": "Arrière-plan transparent" - }, - "trending": { - "message": "Tendances" - }, - "tryToReloadThePage": { - "message": "Essayez de rafraîchir la page" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "Prochaine lecture automatique" - }, - "use24HourFormat": { - "message": "Utiliser le format 24 h" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Vidéo" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La description de la vidéo sera développée pour obtenir le nom de la catégorie" - }, - "videoFormats": { - "message": "Formats de vidéo" - }, - "videos": { - "message": "Videos" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "À regarder plus tard" - }, - "watchTime": { - "message": "Temps de visionnage" - }, - "whenTabIsChanged": { - "message": "Quand l'onglet change" - }, - "white": { - "message": "Blanc" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Jaune" - }, - "youtubeHeaderLeft": { - "message": "En-tête YouTube (à gauche)" - }, - "youtubeHeaderRight": { - "message": "En-tête YouTube (à droite)" - }, - "youtubeHomePage": { - "message": "Page d'accueil de YouTube" - }, - "youtubeLanguage": { - "message": "Langue de YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limite la qualité vidéo à 1080p pour le codec h.264" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "À propos" + }, + "accept": { + "message": "Accepter" + }, + "activate": { + "message": "Activer" + }, + "activateCaptions": { + "message": "Activer les sous-titres" + }, + "activateFullscreen": { + "message": "Activer le plein écran" + }, + "activated": { + "message": "Activé" + }, + "activatedFeatures": { + "message": "Fonctionnalités activées" + }, + "activeFeatures": { + "message": "Fonctionnalités actives" + }, + "addScrollToTop": { + "message": "Ajouter « Remonter en haut »" + }, + "ads": { + "message": "Publicités" + }, + "all": { + "message": "Voir tout" + }, + "allow": { + "message": "Permettre" + }, + "allow60fps": { + "message": "Jouer à 60 fps" + }, + "alwaysActive": { + "message": "Toujours activé" + }, + "alwaysShowProgressBar": { + "message": "Toujours afficher la barre de progression" + }, + "amber": { + "message": "Ambre" + }, + "analyzer": { + "message": "Analyser" + }, + "appearance": { + "message": "Apparence" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formats de fichier audio" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Plein écran automatique" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pause automatique lors d'un changement d'onglet" + }, + "autoplay": { + "message": "Lecture automatique" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Sauvegarde et réinitialisation" + }, + "baseOnSystemColorScheme": { + "message": "Selon les paramètres du système" + }, + "belowPlayer": { + "message": "Sous le player" + }, + "black": { + "message": "Noir" + }, + "blacklist": { + "message": "Liste noire" + }, + "blockAll": { + "message": "Tout bloquer" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Bleu" + }, + "blueGray": { + "message": "Gris-bleu" + }, + "bluelight": { + "message": "Bleu pâle" + }, + "brown": { + "message": "Brun" + }, + "browser": { + "message": "Navigateur web" + }, + "browserVersion": { + "message": "Version du navigateur web" + }, + "bubbles": { + "message": "Bulles" + }, + "bug": { + "message": "Bogue" + }, + "buttons": { + "message": "Boutons" + }, + "cancel": { + "message": "Retour" + }, + "categories": { + "message": "Catégories" + }, + "channel": { + "message": "Chaîne" + }, + "channels": { + "message": "Chaînes" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Presse-papiers" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Réduire la section des abonnements" + }, + "collapsed": { + "message": "Réduire" + }, + "comments": { + "message": "Commentaires" + }, + "confirmationBeforeClosing": { + "message": "Confirmation avant la fermeture" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Noyaux" + }, + "cropChapterTitles": { + "message": "Couper les titres des chapitres" + }, + "customCss": { + "message": "CSS customisé" + }, + "customJs": { + "message": "JS customisé" + }, + "customMiniPlayer": { + "message": "Mini-lecteur personnalisé" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Sombre" + }, + "darkTheme": { + "message": "Thème sombre" + }, + "dateAndTime": { + "message": "Date et temps" + }, + "dawn": { + "message": "Aube" + }, + "decreasePlaybackSpeed": { + "message": "Réduire la vitesse de lecture" + }, + "decreaseVolume": { + "message": "Réduire le volume" + }, + "deepOrange": { + "message": "Orange foncé" + }, + "deepPurple": { + "message": "Violet foncé" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Onglet par défaut d'une chaîne" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Supprimer les cookies YouTube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Description" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Desert" + }, + "details": { + "message": "Détails" + }, + "developerOptions": { + "message": "Options de développeur" + }, + "device": { + "message": "Appareil" + }, + "dim": { + "message": "Assombrir" + }, + "disabled": { + "message": "Désactivé" + }, + "dislike": { + "message": "Je n'aime pas" + }, + "doNotChange": { + "message": "Ne pas changer" + }, + "donate": { + "message": "Donner" + }, + "draggable": { + "message": "Draggable" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Courriel" + }, + "empty": { + "message": "Vide" + }, + "enabled": { + "message": "Activé" + }, + "enabledForced": { + "message": "Activé (forcé)" + }, + "expanded": { + "message": "Étendu" + }, + "exportSettings": { + "message": "Exporter les réglages" + }, + "extension": { + "message": "Extension" + }, + "file": { + "message": "Fichier" + }, + "filters": { + "message": "Filtres" + }, + "fitToWindow": { + "message": "Ajuster à la fenêtre" + }, + "flash": { + "message": "Clignoter" + }, + "font": { + "message": "Police" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Bas de page" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Vitesse de lecture forcée" + }, + "forcedTheaterMode": { + "message": "Forcer le mode théâtre" + }, + "forcedVolume": { + "message": "Forcer le volume" + }, + "foundABug": { + "message": "Un bogue?" + }, + "fullWindow": { + "message": "Fenêtre pleine" + }, + "general": { + "message": "Général" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Barre de recherche" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Vert" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "Miniature HD" + }, + "header": { + "message": "Tête de page" + }, + "hidden": { + "message": "Caché" + }, + "hiddenOnVideoPage": { + "message": "Caché sur la page de la vidéo" + }, + "hideAnimatedThumbnails": { + "message": "Miniatures sans animation" + }, + "hideAnnotations": { + "message": "Cacher les annotations" + }, + "hideCards": { + "message": "Cacher les cartes" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Cacher les détails" + }, + "hideEndscreen": { + "message": "Cacher l'écran de fin" + }, + "hideFeaturedContent": { + "message": "Cacher le contenu recommandé" + }, + "hideFooter": { + "message": "Cacher le pied de page" + }, + "hideGradientBottom": { + "message": "Masquer le dégradé du bas" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Cacher la liste de lecture" + }, + "hideRightButtons": { + "message": "Cacher les boutons à droite" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Cacher « Faire défiler pour les détails »" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Voir le compte des vues" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Historique" + }, + "home": { + "message": "Accueil" + }, + "hover": { + "message": "Survoler" + }, + "hoverOnVideoPage": { + "message": "Survoler la page de la vidéo" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Depuis combien de temps la vidéo a été téléversé?" + }, + "icons": { + "message": "Icônes" + }, + "iconsOnly": { + "message": "Uniquement les icônes" + }, + "importSettings": { + "message": "Importer les réglages" + }, + "improveLogo": { + "message": "Améliorer le logo" + }, + "improvedtubeIconOnYoutube": { + "message": "Afficher l'icône ImprovedTube sur YouTube" + }, + "improvedtubeLanguage": { + "message": "Langue d'ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Version d'ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Accélérer la vitesse de lecture" + }, + "increaseVolume": { + "message": "Augmenter le volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Objets" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Langues" + }, + "legacyYoutube": { + "message": "Ancienne version de Youtube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Clair" + }, + "lightBlue": { + "message": "Bleu clair" + }, + "lightGreen": { + "message": "Vert clair" + }, + "like": { + "message": "J'aime" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "J'aime" + }, + "lime": { + "message": "Citron vert" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Chat en direct" + }, + "liveChatType": { + "message": "Type de chat en direct" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Normalisation de l'intensité sonore" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Marquer les vidéos déjà visionnées" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mélangeur de volume" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Mes couleurs" + }, + "name": { + "message": "Nom" + }, + "nativeMiniPlayer": { + "message": "Mini-lecteur natif" + }, + "new": { + "message": "Nouveau" + }, + "nextVideo": { + "message": "Prochaine vidéo" + }, + "night": { + "message": "Nuit" + }, + "noActiveFeatures": { + "message": "Pas de fonctionalité active" + }, + "noOpenVideoTabs": { + "message": "Aucun onglet de vidéo ouvert" + }, + "none": { + "message": "Aucun" + }, + "normal": { + "message": "Normal" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Vieux" + }, + "onAllVideos": { + "message": "Pour toutes les vidéos" + }, + "onSubscribedChannels": { + "message": "Sur les chaînes auxquelles je suis abonné" + }, + "onlyActiveOnYoutube": { + "message": "Uniquement actif sur YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Une seule instance à la fois" + }, + "openPopupPlayer": { + "message": "Ouvrir Video/playlist dans un nouvelle onglet" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Autres" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Permissions" + }, + "pictureInPicture": { + "message": "Image dans l'image" + }, + "pink": { + "message": "Rose" + }, + "plain": { + "message": "Ordinaire" + }, + "platform": { + "message": "Platforme" + }, + "playPause": { + "message": "Lire / Pause" + }, + "playbackSpeed": { + "message": "Vitesse de lecture" + }, + "player": { + "message": "Lecteur" + }, + "playerColor": { + "message": "Couleur du lecteur" + }, + "playerSize": { + "message": "Taille du lecteur" + }, + "playlist": { + "message": "Liste de lecture" + }, + "playlists": { + "message": "Listes de lecture" + }, + "popupPlayer": { + "message": "Détacher le lecteur" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Appuyez sur n'importe quelle touche ou utilisez la molette de la souris." + }, + "previousVideo": { + "message": "Vidéo précédente" + }, + "primaryColor": { + "message": "Couleur primaire" + }, + "purple": { + "message": "Violet" + }, + "quality": { + "message": "Qualité" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Nous évaluer" + }, + "red": { + "message": "Rouge" + }, + "redDislikeButton": { + "message": "Afficher la couleur rouge du bouton Je n'aime pas" + }, + "relatedVideos": { + "message": "Vidéos associés" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Supprimer les résultats de recherche associés" + }, + "repeat": { + "message": "Lire en boucle" + }, + "reset": { + "message": "Réintialiser" + }, + "resetAllSettings": { + "message": "Annuler réglages" + }, + "resetAllShortcuts": { + "message": "Annuler raccourcis" + }, + "reverse": { + "message": "Inverser" + }, + "rotate": { + "message": "Faire pivoter la vidéo" + }, + "save": { + "message": "Ok" + }, + "saveAs": { + "message": "Sauvegarder sous" + }, + "schedule": { + "message": "Plage horaire" + }, + "screen": { + "message": "Écran" + }, + "screenshot": { + "message": "Capture d'écran" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Rechercher" + }, + "searchBarOnly": { + "message": "Uniquement la barre de recherche" + }, + "seekBackward10Seconds": { + "message": "Reculer de 10 secondes" + }, + "seekForward10Seconds": { + "message": "Avancer de 10 secondes" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Réglages" + }, + "settingsSuccessfullyImported": { + "message": "Importation des réglages réussie" + }, + "shortcuts": { + "message": "Raccourcis" + }, + "showCardsOnMouseHover": { + "message": "Afficher les cartes au survol de la souris" + }, + "showChannelVideosCount": { + "message": "Afficher le nombre de vidéos de la chaîne" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Aléatoire" + }, + "sidebar": { + "message": "Barre latérale" + }, + "spacebar": { + "message": "Barre d'espace" + }, + "squaredUserImages": { + "message": "Images des utilisateurs carrées" + }, + "static": { + "message": "Statique" + }, + "statsForNerds": { + "message": "Statistiques pour nerd" + }, + "step": { + "message": "Étape" + }, + "stop": { + "message": "Arrêter" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Abonnements" + }, + "subtitles": { + "message": "Activer les sous-titres" + }, + "sunset": { + "message": "Coucher de soleil" + }, + "sunsetToSunrise": { + "message": "Du coucher au lever du Soleil" + }, + "systemPeferenceDark": { + "message": "Préférence système : sombre" + }, + "systemPeferenceLight": { + "message": "Préférence système : clair" + }, + "teal": { + "message": "Sarcelle" + }, + "textColor": { + "message": "Couleur du texte" + }, + "themes": { + "message": "Thèmes" + }, + "thisWillRemoveAllCookies": { + "message": "Supprimer tous les cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Supprimer tous les cookies Youtube." + }, + "thisWillResetAllSettings": { + "message": "Réintialiser les réglages." + }, + "thisWillResetAllShortcuts": { + "message": "Réintialiser les raccourcis." + }, + "thumbnails": { + "message": "Miniature" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Temps de" + }, + "timeTo": { + "message": "Temps au" + }, + "todayAt": { + "message": "Aujourd'hui à" + }, + "toggleAutoplay": { + "message": "Basculer lecture auto" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Démarrage automatique des annonces" + }, + "translations": { + "message": "Traductions" + }, + "transparentBackground": { + "message": "Arrière-plan transparent" + }, + "trending": { + "message": "Tendances" + }, + "tryToReloadThePage": { + "message": "Essayez de rafraîchir la page" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Prochaine lecture automatique" + }, + "use24HourFormat": { + "message": "Utiliser le format 24 h" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Vidéo" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "La description de la vidéo sera développée pour obtenir le nom de la catégorie" + }, + "videoFormats": { + "message": "Formats de vidéo" + }, + "videos": { + "message": "Videos" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "À regarder plus tard" + }, + "watchTime": { + "message": "Temps de visionnage" + }, + "whenTabIsChanged": { + "message": "Quand l'onglet change" + }, + "white": { + "message": "Blanc" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Jaune" + }, + "youtubeHeaderLeft": { + "message": "En-tête YouTube (à gauche)" + }, + "youtubeHeaderRight": { + "message": "En-tête YouTube (à droite)" + }, + "youtubeHomePage": { + "message": "Page d'accueil de YouTube" + }, + "youtubeLanguage": { + "message": "Langue de YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limite la qualité vidéo à 1080p pour le codec h.264" + } } \ No newline at end of file diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index ef1ec994e..d6f30563f 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -1,986 +1,992 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "के बारे में" - }, - "accept": { - "message": "स्वीकार" - }, - "activate": { - "message": "सक्रिय" - }, - "activateCaptions": { - "message": "कैप्शन सक्रिय करें" - }, - "activateFullscreen": { - "message": "पूर्णस्क्रीन सक्रिय करें" - }, - "activated": { - "message": "सक्रिय" - }, - "activatedFeatures": { - "message": "सक्रिय विशेषताएं" - }, - "activeFeatures": { - "message": "सक्रिय विशेषताएं" - }, - "addScrollToTop": { - "message": "«शीर्ष पर स्क्रॉल करें» जोड़ें" - }, - "ads": { - "message": "विज्ञापन" - }, - "all": { - "message": "सब" - }, - "allow": { - "message": "अनुमति" - }, - "allow60fps": { - "message": "60fps की अनुमति दें" - }, - "alwaysActive": { - "message": "हमेशा सक्रिय" - }, - "alwaysShowProgressBar": { - "message": "हमेशा प्रगति बार दिखाएं" - }, - "amber": { - "message": "अंबर" - }, - "analyzer": { - "message": "विश्लेषक" - }, - "appearance": { - "message": "दिखावट" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "ऑडियो" - }, - "audioFormats": { - "message": "ऑडियो प्रारूप" - }, - "auto": { - "message": "खुद ब खुद" - }, - "autoFullscreen": { - "message": "स्वत: पूर्ण स्क्रीन" - }, - "autopauseWhenSwitchingTabs": { - "message": "टैब स्विच करते समय ऑटोपॉज" - }, - "autoplay": { - "message": "स्वत: प्ले" - }, - "backgroundColor": { - "message": "पीछे का रंग" - }, - "backgroundOpacity": { - "message": "पृष्ठभूमि अस्पष्टता" - }, - "backupAndReset": { - "message": "बैकअप पुनर्स्थापित करना" - }, - "baseOnSystemColorScheme": { - "message": "सिस्टम रंग योजना के आधार पर" - }, - "belowPlayer": { - "message": "प्लेयर के नीचे" - }, - "black": { - "message": "काला" - }, - "blacklist": { - "message": "काला सूची में डालना" - }, - "blockAll": { - "message": "सभी को अवरोधित करें" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "नीला" - }, - "blueGray": { - "message": "नीला स्लेटी" - }, - "bluelight": { - "message": "नीली बत्ती" - }, - "brown": { - "message": "भूरा" - }, - "browser": { - "message": "ब्राउज़र" - }, - "browserVersion": { - "message": "ब्राउज़र संस्करण" - }, - "bubbles": { - "message": "बुलबुले" - }, - "bug": { - "message": "बग" - }, - "buttons": { - "message": "बटन" - }, - "cancel": { - "message": "रद्द" - }, - "categories": { - "message": "श्रेणियाँ" - }, - "channel": { - "message": "चैनल" - }, - "channels": { - "message": "चैनल" - }, - "characterEdgeStyle": { - "message": "कैरेक्टर एज स्टाइल" - }, - "clipboard": { - "message": "क्लिपबोर्ड" - }, - "codecH264": { - "message": "कोडक H264" - }, - "collapseOfSubscriptionSections": { - "message": "सदस्यता वर्गों का पतन" - }, - "collapsed": { - "message": "संक्षिप्त" - }, - "comments": { - "message": "टिप्पणियाँ" - }, - "confirmationBeforeClosing": { - "message": "बंद करने से पहले पुष्टि" - }, - "cookies": { - "message": "कुकीज़" - }, - "cores": { - "message": "कोर" - }, - "cropChapterTitles": { - "message": "फसल अध्याय के शीर्षक" - }, - "customCss": { - "message": "कस्टम सीएसएस" - }, - "customJs": { - "message": "कस्टम जेएस" - }, - "customMiniPlayer": { - "message": "कस्टम मिनी प्लेयर" - }, - "cyan": { - "message": "सियान" - }, - "dark": { - "message": "अंधेरा" - }, - "darkTheme": { - "message": "डार्क थीम" - }, - "dateAndTime": { - "message": "दिनांक और समय" - }, - "dawn": { - "message": "भोर" - }, - "decreasePlaybackSpeed": { - "message": "पार्श्व गति में कमी" - }, - "decreaseVolume": { - "message": "ध्वनि कम" - }, - "deepOrange": { - "message": "गहरा नारंगी" - }, - "deepPurple": { - "message": "गहरा बैंगनी" - }, - "default": { - "message": "डिफ़ॉल्ट" - }, - "defaultChannelTab": { - "message": "डिफ़ॉल्ट चैनल टैब" - }, - "defaultContentCountry": { - "message": "डिफॉल्ट विषय देश" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "यूट्यूब कुकीज़ हटाएं" - }, - "depressed": { - "message": "उदास" - }, - "description": { - "message": "विवरण" - }, - "description_ext": { - "message": "YouTube को व्यवस्थित एवं स्मार्ट बनाएं! यूट्यूब वीडियो कलर एड स्किप वॉल्यूम स्पीड चैनल टूल स्टाइल एचडी विज्ञापन एडब्लॉकर टैग कीवर्ड प्लेलिस्ट" - }, - "desert": { - "message": "रेगिस्तान" - }, - "details": { - "message": "विवरण" - }, - "developerOptions": { - "message": "डेवलपर विकल्प" - }, - "device": { - "message": "युक्ति" - }, - "dim": { - "message": "मंद" - }, - "disabled": { - "message": "विकलांग" - }, - "dislike": { - "message": "नापसन्द" - }, - "doNotChange": { - "message": "मत बदलो" - }, - "donate": { - "message": "दान" - }, - "draggable": { - "message": "खींचने योग्य" - }, - "dropShadow": { - "message": "परछाई डालना" - }, - "email": { - "message": "ईमेल" - }, - "empty": { - "message": "खाली" - }, - "enabled": { - "message": "सक्रिय" - }, - "enabledForced": { - "message": "सक्रिय(मजबूर)" - }, - "expanded": { - "message": "विस्तारित" - }, - "exportSettings": { - "message": "निर्यात सेटिंग्स" - }, - "extension": { - "message": "एक्सटेंशन" - }, - "file": { - "message": "फ़ाइल" - }, - "filters": { - "message": "फिल्टर" - }, - "fitToWindow": { - "message": "स्क्रीन फिट" - }, - "flash": { - "message": "चमक" - }, - "font": { - "message": "लिपि" - }, - "fontColor": { - "message": "लिपि का रंग" - }, - "fontFamily": { - "message": "लिपीओ का काि संग्रह" - }, - "fontOpacity": { - "message": "लिपि की अस्पष्टता" - }, - "fontSize": { - "message": "लिपीओ का आकार" - }, - "footer": { - "message": "पाद लेख" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "जबरदस्ती वीडियो शुरू से प्ले करें" - }, - "forcedPlaybackSpeed": { - "message": "जबरन पार्श्व गति" - }, - "forcedTheaterMode": { - "message": "जबरन थिएटर मोड" - }, - "forcedVolume": { - "message": "जबरन ध्वनि" - }, - "foundABug": { - "message": "बग मिला?" - }, - "fullWindow": { - "message": "पूर्ण स्क्रीन" - }, - "general": { - "message": "सामान्य" - }, - "github": { - "message": "गिटहब" - }, - "goToSearchBox": { - "message": "सर्च बॉक्स पर जाएं" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "जी पी यू" - }, - "green": { - "message": "हरा" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "एच डी थंबनेल" - }, - "header": { - "message": "हैडर" - }, - "hidden": { - "message": "छिपा हुआ" - }, - "hiddenOnVideoPage": { - "message": "वीडियो पेज पर छिपा हुआ" - }, - "hideAnimatedThumbnails": { - "message": "वीडियो पेज पर छिपा हुआ" - }, - "hideAnnotations": { - "message": "एनोटेशन छुपाएं" - }, - "hideCards": { - "message": "पत्ते छिपाओ" - }, - "hideCountryCode": { - "message": "देश कोड छुपाएं" - }, - "hideDate": { - "message": "तारीख छुपाएं" - }, - "hideDetails": { - "message": "जानकारी छिपाएँ" - }, - "hideEndscreen": { - "message": "अंत स्क्रीन छिपाएँ" - }, - "hideFeaturedContent": { - "message": "विशेषताओं को छिपाएँ" - }, - "hideFooter": { - "message": "पाद छिपाएँ" - }, - "hideGradientBottom": { - "message": "ग्रेडिएंट बॉटम छुपाएं" - }, - "hideMoreButton": { - "message": "अधिक बटन छुपाएं" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "प्लेलिस्ट छिपाएं" - }, - "hideRightButtons": { - "message": "दाएं बटन छुपाएं" - }, - "hideSaveButton": { - "message": "सहेजें बटन छुपाएं" - }, - "hideScrollForDetails": { - "message": "छिपाएँ «विवरण के लिए स्क्रॉल»" - }, - "hideShareButton": { - "message": "शेयर बटन छुपाएं" - }, - "hideSkipOverlay": { - "message": "स्किप ओवरले छुपाएं" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "व्यू काउंट छिपाएं" - }, - "hideVoiceSearchButton": { - "message": "ध्वनि खोज बटन छुपाएं" - }, - "high": { - "message": "High" - }, - "history": { - "message": "इतिहास" - }, - "home": { - "message": "घर" - }, - "hover": { - "message": "होवर" - }, - "hoverOnVideoPage": { - "message": "वीडियो पेज पर होवर" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "वीडियो कितनी देर पहले अपलोड किया गया था" - }, - "icons": { - "message": "प्रतीक" - }, - "iconsOnly": { - "message": "केवल प्रतीक" - }, - "importSettings": { - "message": "सेटिंग आयात करना" - }, - "improveLogo": { - "message": "लोगो सुधारो" - }, - "improvedtubeIconOnYoutube": { - "message": "यूट्यूब पर बेहतर आइकन" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube भाषा" - }, - "improvedtubeVersion": { - "message": "ImprovedTube संस्करण" - }, - "increasePlaybackSpeed": { - "message": "प्लेबैक स्पीड बढ़ाएं" - }, - "increaseVolume": { - "message": "ध्वनि बढ़ाएं" - }, - "indigo": { - "message": "नील" - }, - "items": { - "message": "आइटम" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "बोली" - }, - "legacyYoutube": { - "message": "विरासत यूट्यूब" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "हलका" - }, - "lightBlue": { - "message": "हल्का नीला" - }, - "lightGreen": { - "message": "हल्का हरा" - }, - "like": { - "message": "पसंद" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "को यह पसंद है" - }, - "lime": { - "message": "पीला हरा रंग" - }, - "limitPageWidth": { - "message": "पृष्ठ की चौड़ाई सीमित करें" - }, - "list": { - "message": "सूची" - }, - "liveChat": { - "message": "सीधी बातचीत" - }, - "liveChatType": { - "message": "लाइव चैट प्रकार" - }, - "location": { - "message": "स्थान" - }, - "loudnessNormalization": { - "message": "जोर से सामान्य होना" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "चिह्नित वीडियो देखे गए" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "मिक्सर" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "मेरे रंग" - }, - "name": { - "message": "नाम" - }, - "nativeMiniPlayer": { - "message": "मूल निवासी मिनी प्लेयर" - }, - "new": { - "message": "नया" - }, - "nextVideo": { - "message": "अगला वीडियो" - }, - "night": { - "message": "रात" - }, - "noActiveFeatures": { - "message": "कोई सक्रिय सुविधाएँ नहीं" - }, - "noOpenVideoTabs": { - "message": "कोई खुला वीडियो टैब नहीं" - }, - "none": { - "message": "कोई नहीं" - }, - "normal": { - "message": "साधारण" - }, - "old": { - "message": "पुराना" - }, - "onAllVideos": { - "message": "सभी वीडियो पर" - }, - "onSubscribedChannels": { - "message": "सदस्यता प्राप्त चैनलों पर" - }, - "onlyActiveOnYoutube": { - "message": "केवल यूट्यूब पर सक्रिय है" - }, - "onlyOnePlayerInstancePlaying": { - "message": "केवल एक प्लेयर का चल रहा है" - }, - "orange": { - "message": "नारंगी रंग" - }, - "os": { - "message": "ओ एस" - }, - "other": { - "message": "अन्य" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "अनुमतियां" - }, - "pictureInPicture": { - "message": "चित्र में चित्र" - }, - "pink": { - "message": "गुलाबी" - }, - "plain": { - "message": "सादा" - }, - "platform": { - "message": "मंच" - }, - "playPause": { - "message": "प्ले / ठहराव" - }, - "playbackSpeed": { - "message": "प्लेबैक स्पीड" - }, - "player": { - "message": "प्लेयर" - }, - "playerColor": { - "message": "प्लेयर रंग" - }, - "playerSize": { - "message": "प्लेयर आकार" - }, - "playlist": { - "message": "प्लेलिस्ट" - }, - "playlists": { - "message": "प्लेलिस्ट" - }, - "popupPlayer": { - "message": "पॉप अप प्लेयर" - }, - "position": { - "message": "स्थान" - }, - "pressAnyKeyOrScroll": { - "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" - }, - "previousVideo": { - "message": "पिछला वीडियो" - }, - "primaryColor": { - "message": "प्राथमिक रंग" - }, - "purple": { - "message": "बैंगनी" - }, - "quality": { - "message": "गुणवत्ता" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "हमें रेटिंग दें" - }, - "red": { - "message": "लाल" - }, - "redDislikeButton": { - "message": "नापसंद बटन लाल रंग दिखाएं" - }, - "relatedVideos": { - "message": "संबंधित वीडियो" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "संबंधित खोज परिणाम निकालें" - }, - "repeat": { - "message": "दोहराना" - }, - "reset": { - "message": "रीसेट" - }, - "resetAllSettings": { - "message": "सभी सेटिंग्स को रीसेट" - }, - "resetAllShortcuts": { - "message": "सभी शॉर्टकट रीसेट करें" - }, - "reverse": { - "message": "उलटना" - }, - "rotate": { - "message": "घुमाएँ" - }, - "save": { - "message": "सहेजें" - }, - "saveAs": { - "message": "के रूप रक्षित करें" - }, - "schedule": { - "message": "अनुसूची" - }, - "screen": { - "message": "स्क्रीन" - }, - "screenshot": { - "message": "स्क्रीनशॉट" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "खोज" - }, - "searchBarOnly": { - "message": "केवल बार खोजें" - }, - "seekBackward10Seconds": { - "message": "पिछड़े 10 सेकंड की तलाश करें" - }, - "seekForward10Seconds": { - "message": "पिछड़े 10 सेकंड की तलाश करें" - }, - "seekNextChapter": { - "message": "अगले अध्याय पर चलें" - }, - "seekPreviousChapter": { - "message": "पिछले अध्याय पर चलें" - }, - "settings": { - "message": "समायोजन" - }, - "settingsSuccessfullyImported": { - "message": "सेटिंग्स सफलतापूर्वक आयात की गईं" - }, - "shortcuts": { - "message": "शॉर्टकट" - }, - "showCardsOnMouseHover": { - "message": "माउस होवर पर कार्ड दिखाएं" - }, - "showChannelVideosCount": { - "message": "चैनल वीडियो काउंट दिखाएं" - }, - "showLess": { - "message": "कम दिखाएं" - }, - "showMore": { - "message": "और दिखाएं" - }, - "showRemainingDuration": { - "message": "वीडियो की बची हुई अवधि दिखाएं" - }, - "shuffle": { - "message": "मिश्रण" - }, - "sidebar": { - "message": "साइडबार" - }, - "spacebar": { - "message": "स्पेस बार" - }, - "squaredUserImages": { - "message": "चुकता उपयोगकर्ता चित्र" - }, - "static": { - "message": "स्थिर" - }, - "statsForNerds": { - "message": "डेवलपर के लिए आँकड़े दिखाएँ" - }, - "step": { - "message": "चरण" - }, - "stop": { - "message": "रुकें" - }, - "style": { - "message": "अंदाज" - }, - "styles": { - "message": "शैलियाँ" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "सदस्यता" - }, - "subtitles": { - "message": "उपशीर्षक" - }, - "sunset": { - "message": "सूर्यास्त" - }, - "sunsetToSunrise": { - "message": "सूर्योदय से सूर्यास्त" - }, - "systemPeferenceDark": { - "message": "सिस्टम प्राथमिकताएं: अंधेरा" - }, - "systemPeferenceLight": { - "message": "सिस्टम वरीयताएँ: प्रकाश" - }, - "teal": { - "message": "टील रंग" - }, - "textColor": { - "message": "लिखावट का रंग" - }, - "themes": { - "message": "विषय-वस्तु" - }, - "thisWillRemoveAllCookies": { - "message": "यह सभी कुकीज़ को हटा देगा।" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "यह सभी यूट्यूब कुकीज़ को हटा देगा।" - }, - "thisWillResetAllSettings": { - "message": "यह सभी सेटिंग्स को रीसेट कर देगा।" - }, - "thisWillResetAllShortcuts": { - "message": "यह सभी शॉर्टकट रीसेट कर देगा।" - }, - "thumbnails": { - "message": "थंबनेल" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "से समय" - }, - "timeTo": { - "message": "समय पर" - }, - "todayAt": { - "message": "आज इस समय" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "शीर्ष चैट" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "ट्रेलर ऑटोप्ले" - }, - "translations": { - "message": "अनुवाद" - }, - "transparentBackground": { - "message": "पारदर्शी पृष्ठभूमि" - }, - "trending": { - "message": "रुझान" - }, - "tryToReloadThePage": { - "message": "पृष्ठ को पुनः लोड करने का प्रयास करें" - }, - "type": { - "message": "टाइप" - }, - "upNextAutoplay": { - "message": "अगले ऑटोप्ले पर" - }, - "use24HourFormat": { - "message": "24-घंटे के प्रारूप का उपयोग करें" - }, - "version": { - "message": "संस्करण" - }, - "video": { - "message": "वीडियो" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "श्रेणी का नाम प्राप्त करने के लिए वीडियो विवरण का विस्तार किया जाएगा।" - }, - "videoFormats": { - "message": "वीडियो प्रारूप" - }, - "videos": { - "message": "वीडियो" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "ध्वनि" - }, - "watchLater": { - "message": "बाद में देखना" - }, - "watchTime": { - "message": "समय देखें" - }, - "whenTabIsChanged": { - "message": "जब टैब बदला जाता है" - }, - "white": { - "message": "सफेद" - }, - "windowColor": { - "message": "विंडो का रंग" - }, - "windowOpacity": { - "message": "विंडो की अस्पष्टता" - }, - "yellow": { - "message": "पीला" - }, - "youtubeHeaderLeft": { - "message": "यूट्यूब हैडर (बाएं)" - }, - "youtubeHeaderRight": { - "message": "यूट्यूब हैडर (दाएं)" - }, - "youtubeHomePage": { - "message": "यूट्यूब होम पेज" - }, - "youtubeLanguage": { - "message": "यूट्यूब भाषा" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "यूट्यूब h.264 कोडेक के लिए वीडियो की गुणवत्ता 1080 पी तक सीमित है" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "के बारे में" + }, + "accept": { + "message": "स्वीकार" + }, + "activate": { + "message": "सक्रिय" + }, + "activateCaptions": { + "message": "कैप्शन सक्रिय करें" + }, + "activateFullscreen": { + "message": "पूर्णस्क्रीन सक्रिय करें" + }, + "activated": { + "message": "सक्रिय" + }, + "activatedFeatures": { + "message": "सक्रिय विशेषताएं" + }, + "activeFeatures": { + "message": "सक्रिय विशेषताएं" + }, + "addScrollToTop": { + "message": "«शीर्ष पर स्क्रॉल करें» जोड़ें" + }, + "ads": { + "message": "विज्ञापन" + }, + "all": { + "message": "सब" + }, + "allow": { + "message": "अनुमति" + }, + "allow60fps": { + "message": "60fps की अनुमति दें" + }, + "alwaysActive": { + "message": "हमेशा सक्रिय" + }, + "alwaysShowProgressBar": { + "message": "हमेशा प्रगति बार दिखाएं" + }, + "amber": { + "message": "अंबर" + }, + "analyzer": { + "message": "विश्लेषक" + }, + "appearance": { + "message": "दिखावट" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "ऑडियो" + }, + "audioFormats": { + "message": "ऑडियो प्रारूप" + }, + "auto": { + "message": "खुद ब खुद" + }, + "autoFullscreen": { + "message": "स्वत: पूर्ण स्क्रीन" + }, + "autopauseWhenSwitchingTabs": { + "message": "टैब स्विच करते समय ऑटोपॉज" + }, + "autoplay": { + "message": "स्वत: प्ले" + }, + "backgroundColor": { + "message": "पीछे का रंग" + }, + "backgroundOpacity": { + "message": "पृष्ठभूमि अस्पष्टता" + }, + "backupAndReset": { + "message": "बैकअप पुनर्स्थापित करना" + }, + "baseOnSystemColorScheme": { + "message": "सिस्टम रंग योजना के आधार पर" + }, + "belowPlayer": { + "message": "प्लेयर के नीचे" + }, + "black": { + "message": "काला" + }, + "blacklist": { + "message": "काला सूची में डालना" + }, + "blockAll": { + "message": "सभी को अवरोधित करें" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "नीला" + }, + "blueGray": { + "message": "नीला स्लेटी" + }, + "bluelight": { + "message": "नीली बत्ती" + }, + "brown": { + "message": "भूरा" + }, + "browser": { + "message": "ब्राउज़र" + }, + "browserVersion": { + "message": "ब्राउज़र संस्करण" + }, + "bubbles": { + "message": "बुलबुले" + }, + "bug": { + "message": "बग" + }, + "buttons": { + "message": "बटन" + }, + "cancel": { + "message": "रद्द" + }, + "categories": { + "message": "श्रेणियाँ" + }, + "channel": { + "message": "चैनल" + }, + "channels": { + "message": "चैनल" + }, + "characterEdgeStyle": { + "message": "कैरेक्टर एज स्टाइल" + }, + "clipboard": { + "message": "क्लिपबोर्ड" + }, + "codecH264": { + "message": "कोडक H264" + }, + "collapseOfSubscriptionSections": { + "message": "सदस्यता वर्गों का पतन" + }, + "collapsed": { + "message": "संक्षिप्त" + }, + "comments": { + "message": "टिप्पणियाँ" + }, + "confirmationBeforeClosing": { + "message": "बंद करने से पहले पुष्टि" + }, + "cookies": { + "message": "कुकीज़" + }, + "cores": { + "message": "कोर" + }, + "cropChapterTitles": { + "message": "फसल अध्याय के शीर्षक" + }, + "customCss": { + "message": "कस्टम सीएसएस" + }, + "customJs": { + "message": "कस्टम जेएस" + }, + "customMiniPlayer": { + "message": "कस्टम मिनी प्लेयर" + }, + "cyan": { + "message": "सियान" + }, + "dark": { + "message": "अंधेरा" + }, + "darkTheme": { + "message": "डार्क थीम" + }, + "dateAndTime": { + "message": "दिनांक और समय" + }, + "dawn": { + "message": "भोर" + }, + "decreasePlaybackSpeed": { + "message": "पार्श्व गति में कमी" + }, + "decreaseVolume": { + "message": "ध्वनि कम" + }, + "deepOrange": { + "message": "गहरा नारंगी" + }, + "deepPurple": { + "message": "गहरा बैंगनी" + }, + "default": { + "message": "डिफ़ॉल्ट" + }, + "defaultChannelTab": { + "message": "डिफ़ॉल्ट चैनल टैब" + }, + "defaultContentCountry": { + "message": "डिफॉल्ट विषय देश" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "यूट्यूब कुकीज़ हटाएं" + }, + "depressed": { + "message": "उदास" + }, + "description": { + "message": "विवरण" + }, + "description_ext": { + "message": "YouTube को व्यवस्थित एवं स्मार्ट बनाएं! यूट्यूब वीडियो कलर एड स्किप वॉल्यूम स्पीड चैनल टूल स्टाइल एचडी विज्ञापन एडब्लॉकर टैग कीवर्ड प्लेलिस्ट" + }, + "desert": { + "message": "रेगिस्तान" + }, + "details": { + "message": "विवरण" + }, + "developerOptions": { + "message": "डेवलपर विकल्प" + }, + "device": { + "message": "युक्ति" + }, + "dim": { + "message": "मंद" + }, + "disabled": { + "message": "विकलांग" + }, + "dislike": { + "message": "नापसन्द" + }, + "doNotChange": { + "message": "मत बदलो" + }, + "donate": { + "message": "दान" + }, + "draggable": { + "message": "खींचने योग्य" + }, + "dropShadow": { + "message": "परछाई डालना" + }, + "email": { + "message": "ईमेल" + }, + "empty": { + "message": "खाली" + }, + "enabled": { + "message": "सक्रिय" + }, + "enabledForced": { + "message": "सक्रिय(मजबूर)" + }, + "expanded": { + "message": "विस्तारित" + }, + "exportSettings": { + "message": "निर्यात सेटिंग्स" + }, + "extension": { + "message": "एक्सटेंशन" + }, + "file": { + "message": "फ़ाइल" + }, + "filters": { + "message": "फिल्टर" + }, + "fitToWindow": { + "message": "स्क्रीन फिट" + }, + "flash": { + "message": "चमक" + }, + "font": { + "message": "लिपि" + }, + "fontColor": { + "message": "लिपि का रंग" + }, + "fontFamily": { + "message": "लिपीओ का काि संग्रह" + }, + "fontOpacity": { + "message": "लिपि की अस्पष्टता" + }, + "fontSize": { + "message": "लिपीओ का आकार" + }, + "footer": { + "message": "पाद लेख" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "जबरदस्ती वीडियो शुरू से प्ले करें" + }, + "forcedPlaybackSpeed": { + "message": "जबरन पार्श्व गति" + }, + "forcedTheaterMode": { + "message": "जबरन थिएटर मोड" + }, + "forcedVolume": { + "message": "जबरन ध्वनि" + }, + "foundABug": { + "message": "बग मिला?" + }, + "fullWindow": { + "message": "पूर्ण स्क्रीन" + }, + "general": { + "message": "सामान्य" + }, + "github": { + "message": "गिटहब" + }, + "goToSearchBox": { + "message": "सर्च बॉक्स पर जाएं" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "जी पी यू" + }, + "green": { + "message": "हरा" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "एच डी थंबनेल" + }, + "header": { + "message": "हैडर" + }, + "hidden": { + "message": "छिपा हुआ" + }, + "hiddenOnVideoPage": { + "message": "वीडियो पेज पर छिपा हुआ" + }, + "hideAnimatedThumbnails": { + "message": "वीडियो पेज पर छिपा हुआ" + }, + "hideAnnotations": { + "message": "एनोटेशन छुपाएं" + }, + "hideCards": { + "message": "पत्ते छिपाओ" + }, + "hideCountryCode": { + "message": "देश कोड छुपाएं" + }, + "hideDate": { + "message": "तारीख छुपाएं" + }, + "hideDetails": { + "message": "जानकारी छिपाएँ" + }, + "hideEndscreen": { + "message": "अंत स्क्रीन छिपाएँ" + }, + "hideFeaturedContent": { + "message": "विशेषताओं को छिपाएँ" + }, + "hideFooter": { + "message": "पाद छिपाएँ" + }, + "hideGradientBottom": { + "message": "ग्रेडिएंट बॉटम छुपाएं" + }, + "hideMoreButton": { + "message": "अधिक बटन छुपाएं" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "प्लेलिस्ट छिपाएं" + }, + "hideRightButtons": { + "message": "दाएं बटन छुपाएं" + }, + "hideSaveButton": { + "message": "सहेजें बटन छुपाएं" + }, + "hideScrollForDetails": { + "message": "छिपाएँ «विवरण के लिए स्क्रॉल»" + }, + "hideShareButton": { + "message": "शेयर बटन छुपाएं" + }, + "hideSkipOverlay": { + "message": "स्किप ओवरले छुपाएं" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "व्यू काउंट छिपाएं" + }, + "hideVoiceSearchButton": { + "message": "ध्वनि खोज बटन छुपाएं" + }, + "high": { + "message": "High" + }, + "history": { + "message": "इतिहास" + }, + "home": { + "message": "घर" + }, + "hover": { + "message": "होवर" + }, + "hoverOnVideoPage": { + "message": "वीडियो पेज पर होवर" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "वीडियो कितनी देर पहले अपलोड किया गया था" + }, + "icons": { + "message": "प्रतीक" + }, + "iconsOnly": { + "message": "केवल प्रतीक" + }, + "importSettings": { + "message": "सेटिंग आयात करना" + }, + "improveLogo": { + "message": "लोगो सुधारो" + }, + "improvedtubeIconOnYoutube": { + "message": "यूट्यूब पर बेहतर आइकन" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube भाषा" + }, + "improvedtubeVersion": { + "message": "ImprovedTube संस्करण" + }, + "increasePlaybackSpeed": { + "message": "प्लेबैक स्पीड बढ़ाएं" + }, + "increaseVolume": { + "message": "ध्वनि बढ़ाएं" + }, + "indigo": { + "message": "नील" + }, + "items": { + "message": "आइटम" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "बोली" + }, + "legacyYoutube": { + "message": "विरासत यूट्यूब" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "हलका" + }, + "lightBlue": { + "message": "हल्का नीला" + }, + "lightGreen": { + "message": "हल्का हरा" + }, + "like": { + "message": "पसंद" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "को यह पसंद है" + }, + "lime": { + "message": "पीला हरा रंग" + }, + "limitPageWidth": { + "message": "पृष्ठ की चौड़ाई सीमित करें" + }, + "list": { + "message": "सूची" + }, + "liveChat": { + "message": "सीधी बातचीत" + }, + "liveChatType": { + "message": "लाइव चैट प्रकार" + }, + "location": { + "message": "स्थान" + }, + "loudnessNormalization": { + "message": "जोर से सामान्य होना" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "चिह्नित वीडियो देखे गए" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "मिक्सर" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "मेरे रंग" + }, + "name": { + "message": "नाम" + }, + "nativeMiniPlayer": { + "message": "मूल निवासी मिनी प्लेयर" + }, + "new": { + "message": "नया" + }, + "nextVideo": { + "message": "अगला वीडियो" + }, + "night": { + "message": "रात" + }, + "noActiveFeatures": { + "message": "कोई सक्रिय सुविधाएँ नहीं" + }, + "noOpenVideoTabs": { + "message": "कोई खुला वीडियो टैब नहीं" + }, + "none": { + "message": "कोई नहीं" + }, + "normal": { + "message": "साधारण" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "पुराना" + }, + "onAllVideos": { + "message": "सभी वीडियो पर" + }, + "onSubscribedChannels": { + "message": "सदस्यता प्राप्त चैनलों पर" + }, + "onlyActiveOnYoutube": { + "message": "केवल यूट्यूब पर सक्रिय है" + }, + "onlyOnePlayerInstancePlaying": { + "message": "केवल एक प्लेयर का चल रहा है" + }, + "orange": { + "message": "नारंगी रंग" + }, + "os": { + "message": "ओ एस" + }, + "other": { + "message": "अन्य" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "अनुमतियां" + }, + "pictureInPicture": { + "message": "चित्र में चित्र" + }, + "pink": { + "message": "गुलाबी" + }, + "plain": { + "message": "सादा" + }, + "platform": { + "message": "मंच" + }, + "playPause": { + "message": "प्ले / ठहराव" + }, + "playbackSpeed": { + "message": "प्लेबैक स्पीड" + }, + "player": { + "message": "प्लेयर" + }, + "playerColor": { + "message": "प्लेयर रंग" + }, + "playerSize": { + "message": "प्लेयर आकार" + }, + "playlist": { + "message": "प्लेलिस्ट" + }, + "playlists": { + "message": "प्लेलिस्ट" + }, + "popupPlayer": { + "message": "पॉप अप प्लेयर" + }, + "position": { + "message": "स्थान" + }, + "pressAnyKeyOrScroll": { + "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" + }, + "previousVideo": { + "message": "पिछला वीडियो" + }, + "primaryColor": { + "message": "प्राथमिक रंग" + }, + "purple": { + "message": "बैंगनी" + }, + "quality": { + "message": "गुणवत्ता" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "हमें रेटिंग दें" + }, + "red": { + "message": "लाल" + }, + "redDislikeButton": { + "message": "नापसंद बटन लाल रंग दिखाएं" + }, + "relatedVideos": { + "message": "संबंधित वीडियो" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "संबंधित खोज परिणाम निकालें" + }, + "repeat": { + "message": "दोहराना" + }, + "reset": { + "message": "रीसेट" + }, + "resetAllSettings": { + "message": "सभी सेटिंग्स को रीसेट" + }, + "resetAllShortcuts": { + "message": "सभी शॉर्टकट रीसेट करें" + }, + "reverse": { + "message": "उलटना" + }, + "rotate": { + "message": "घुमाएँ" + }, + "save": { + "message": "सहेजें" + }, + "saveAs": { + "message": "के रूप रक्षित करें" + }, + "schedule": { + "message": "अनुसूची" + }, + "screen": { + "message": "स्क्रीन" + }, + "screenshot": { + "message": "स्क्रीनशॉट" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "खोज" + }, + "searchBarOnly": { + "message": "केवल बार खोजें" + }, + "seekBackward10Seconds": { + "message": "पिछड़े 10 सेकंड की तलाश करें" + }, + "seekForward10Seconds": { + "message": "पिछड़े 10 सेकंड की तलाश करें" + }, + "seekNextChapter": { + "message": "अगले अध्याय पर चलें" + }, + "seekPreviousChapter": { + "message": "पिछले अध्याय पर चलें" + }, + "settings": { + "message": "समायोजन" + }, + "settingsSuccessfullyImported": { + "message": "सेटिंग्स सफलतापूर्वक आयात की गईं" + }, + "shortcuts": { + "message": "शॉर्टकट" + }, + "showCardsOnMouseHover": { + "message": "माउस होवर पर कार्ड दिखाएं" + }, + "showChannelVideosCount": { + "message": "चैनल वीडियो काउंट दिखाएं" + }, + "showLess": { + "message": "कम दिखाएं" + }, + "showMore": { + "message": "और दिखाएं" + }, + "showRemainingDuration": { + "message": "वीडियो की बची हुई अवधि दिखाएं" + }, + "shuffle": { + "message": "मिश्रण" + }, + "sidebar": { + "message": "साइडबार" + }, + "spacebar": { + "message": "स्पेस बार" + }, + "squaredUserImages": { + "message": "चुकता उपयोगकर्ता चित्र" + }, + "static": { + "message": "स्थिर" + }, + "statsForNerds": { + "message": "डेवलपर के लिए आँकड़े दिखाएँ" + }, + "step": { + "message": "चरण" + }, + "stop": { + "message": "रुकें" + }, + "style": { + "message": "अंदाज" + }, + "styles": { + "message": "शैलियाँ" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "सदस्यता" + }, + "subtitles": { + "message": "उपशीर्षक" + }, + "sunset": { + "message": "सूर्यास्त" + }, + "sunsetToSunrise": { + "message": "सूर्योदय से सूर्यास्त" + }, + "systemPeferenceDark": { + "message": "सिस्टम प्राथमिकताएं: अंधेरा" + }, + "systemPeferenceLight": { + "message": "सिस्टम वरीयताएँ: प्रकाश" + }, + "teal": { + "message": "टील रंग" + }, + "textColor": { + "message": "लिखावट का रंग" + }, + "themes": { + "message": "विषय-वस्तु" + }, + "thisWillRemoveAllCookies": { + "message": "यह सभी कुकीज़ को हटा देगा।" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "यह सभी यूट्यूब कुकीज़ को हटा देगा।" + }, + "thisWillResetAllSettings": { + "message": "यह सभी सेटिंग्स को रीसेट कर देगा।" + }, + "thisWillResetAllShortcuts": { + "message": "यह सभी शॉर्टकट रीसेट कर देगा।" + }, + "thumbnails": { + "message": "थंबनेल" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "से समय" + }, + "timeTo": { + "message": "समय पर" + }, + "todayAt": { + "message": "आज इस समय" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "शीर्ष चैट" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "ट्रेलर ऑटोप्ले" + }, + "translations": { + "message": "अनुवाद" + }, + "transparentBackground": { + "message": "पारदर्शी पृष्ठभूमि" + }, + "trending": { + "message": "रुझान" + }, + "tryToReloadThePage": { + "message": "पृष्ठ को पुनः लोड करने का प्रयास करें" + }, + "type": { + "message": "टाइप" + }, + "upNextAutoplay": { + "message": "अगले ऑटोप्ले पर" + }, + "use24HourFormat": { + "message": "24-घंटे के प्रारूप का उपयोग करें" + }, + "version": { + "message": "संस्करण" + }, + "video": { + "message": "वीडियो" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "श्रेणी का नाम प्राप्त करने के लिए वीडियो विवरण का विस्तार किया जाएगा।" + }, + "videoFormats": { + "message": "वीडियो प्रारूप" + }, + "videos": { + "message": "वीडियो" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "ध्वनि" + }, + "watchLater": { + "message": "बाद में देखना" + }, + "watchTime": { + "message": "समय देखें" + }, + "whenTabIsChanged": { + "message": "जब टैब बदला जाता है" + }, + "white": { + "message": "सफेद" + }, + "windowColor": { + "message": "विंडो का रंग" + }, + "windowOpacity": { + "message": "विंडो की अस्पष्टता" + }, + "yellow": { + "message": "पीला" + }, + "youtubeHeaderLeft": { + "message": "यूट्यूब हैडर (बाएं)" + }, + "youtubeHeaderRight": { + "message": "यूट्यूब हैडर (दाएं)" + }, + "youtubeHomePage": { + "message": "यूट्यूब होम पेज" + }, + "youtubeLanguage": { + "message": "यूट्यूब भाषा" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "यूट्यूब h.264 कोडेक के लिए वीडियो की गुणवत्ता 1080 पी तक सीमित है" + } } \ No newline at end of file diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 4fab93a01..d424e8235 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -1,992 +1,998 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "O" - }, - "accept": { - "message": "Prihvati" - }, - "activate": { - "message": "Aktiviraj" - }, - "activateCaptions": { - "message": "Aktiviraj naslove" - }, - "activateFullscreen": { - "message": "Aktiviraj puni zaslon" - }, - "activated": { - "message": "Aktivirano" - }, - "activatedFeatures": { - "message": "Aktivirane značajke" - }, - "activeFeatures": { - "message": "Aktivne značajke" - }, - "addScrollToTop": { - "message": "Dodaj «Pomaknite se na vrh»" - }, - "ads": { - "message": "Oglasi" - }, - "all": { - "message": "Sve" - }, - "allow": { - "message": "Dopusti" - }, - "allow60fps": { - "message": "Dopusti 60fps" - }, - "alwaysActive": { - "message": "Uvijek aktivan" - }, - "alwaysShowProgressBar": { - "message": "Uvijek prikaži traku napretka" - }, - "amber": { - "message": "Jantar" - }, - "analyzer": { - "message": "Analizator" - }, - "appearance": { - "message": "Izgled" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio formati" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Automatski prikaz preko cijelog zaslona" - }, - "autopauseWhenSwitchingTabs": { - "message": "Automatska pauza prilikom zamjene kartica" - }, - "autoplay": { - "message": "Auto Play" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Sigurnosna kopija i resetiranje" - }, - "baseOnSystemColorScheme": { - "message": "Na temelju shema boja sustava" - }, - "belowPlayer": { - "message": "Ispod Playera" - }, - "black": { - "message": "Crno" - }, - "blacklist": { - "message": "Crna lista" - }, - "blockAll": { - "message": "Blokiraj sve" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Plava" - }, - "blueGray": { - "message": "Plavo siva" - }, - "bluelight": { - "message": "Svijetlo plava" - }, - "brown": { - "message": "Smeđa" - }, - "browser": { - "message": "Preglednik" - }, - "browserVersion": { - "message": "Verzija preglednika" - }, - "bubbles": { - "message": "Mjehurići" - }, - "bug": { - "message": "Greška" - }, - "buttons": { - "message": "Gumbi" - }, - "cancel": { - "message": "Otkaži" - }, - "categories": { - "message": "Kategorije" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanali" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Međuspremnik" - }, - "codecH264": { - "message": "Kodek h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Skupljanje pretplatničkih odjeljaka" - }, - "collapsed": { - "message": "Skupljeno" - }, - "comments": { - "message": "Komentari" - }, - "confirmationBeforeClosing": { - "message": "Potvrda prije zatvaranja" - }, - "cookies": { - "message": "Kolačići" - }, - "cores": { - "message": "Jezgre" - }, - "cropChapterTitles": { - "message": "Izreži naslove poglavlja" - }, - "customCss": { - "message": "Prilagođeni CSS" - }, - "customJs": { - "message": "Prilagođeni JS" - }, - "customMiniPlayer": { - "message": "Prilagođeni Mini-Player" - }, - "cyan": { - "message": "Cijan" - }, - "dark": { - "message": "Tamno" - }, - "darkTheme": { - "message": "Tamna tema" - }, - "dateAndTime": { - "message": "Datum & vrijeme" - }, - "dawn": { - "message": "Zora" - }, - "decreasePlaybackSpeed": { - "message": "Smanji brzinu reprodukcije" - }, - "decreaseVolume": { - "message": "Smanji glasnoću" - }, - "deepOrange": { - "message": "Duboko narančasta" - }, - "deepPurple": { - "message": "Duboko ljubičasta" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Zadana kartica kanala" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Izbrišite YouTube kolačiće" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Opis" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Zasluga" - }, - "details": { - "message": "Pojedinosti" - }, - "developerOptions": { - "message": "Opcije za programere" - }, - "device": { - "message": "Uređaj" - }, - "dim": { - "message": "Priguši" - }, - "disabled": { - "message": "Onemogućeno" - }, - "dislike": { - "message": "Ne sviđa mi se" - }, - "doNotChange": { - "message": "Nemoj mijenjati" - }, - "donate": { - "message": "Doniraj" - }, - "draggable": { - "message": "Povuci" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "E-mail" - }, - "empty": { - "message": "Prazno" - }, - "enabled": { - "message": "Omogućeno" - }, - "enabledForced": { - "message": "Omogućeno (prisilno)" - }, - "expanded": { - "message": "Prošireno" - }, - "exportSettings": { - "message": "Izvoz postavki" - }, - "extension": { - "message": "Proširenje" - }, - "file": { - "message": "Datoteka" - }, - "filters": { - "message": "Filteri" - }, - "fitToWindow": { - "message": "Prilagodi prozoru" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Podnožje" - }, - "forceSDR": { - "message": "Prisilno SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Prisiljena brzina reprodukcije" - }, - "forcedTheaterMode": { - "message": "Prisiljen kazališni način" - }, - "forcedVolume": { - "message": "Prisiljena glasnoća" - }, - "foundABug": { - "message": "Pronašli ste grešku?" - }, - "fullWindow": { - "message": "Puni prozor" - }, - "general": { - "message": "Općenito" - }, - "geoPreference": { - "message": "Geografske preferencije" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Idite na okvir za pretraživanje" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Zelena" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "HD sličica" - }, - "header": { - "message": "Zaglavlje" - }, - "hidden": { - "message": "Skriven" - }, - "hiddenOnVideoPage": { - "message": "Skriveno na stranici videozapisa" - }, - "hideAnimatedThumbnails": { - "message": "Sakrij animirane sličice" - }, - "hideAnnotations": { - "message": "Sakrij napomene" - }, - "hideCards": { - "message": "Sakrij kartice" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Sakrij detalje" - }, - "hideEndscreen": { - "message": "Sakrij završni zaslon" - }, - "hideFeaturedContent": { - "message": "Sakrij istaknuti sadržaj" - }, - "hideFooter": { - "message": "Sakrij podnožje" - }, - "hideGradientBottom": { - "message": "Sakrij sjenu oko trake playera" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Sakrij kontrole playera" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Sakrij popis za reprodukciju" - }, - "hideRightButtons": { - "message": "Sakrij desne gumbe" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Sakrij «Pomakni za detalje»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Sakrij gumbe na sličicama" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Sakrij broj pregleda" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "Povijest" - }, - "home": { - "message": "Početna" - }, - "hover": { - "message": "Pređite mišem preko" - }, - "hoverOnVideoPage": { - "message": "Zadržite pokazivač miša na stranici videozapisa" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Prije koliko je vremena video prenesen" - }, - "icons": { - "message": "Ikone" - }, - "iconsOnly": { - "message": "Samo ikone" - }, - "importSettings": { - "message": "Uvezi postavke" - }, - "improveLogo": { - "message": "Poboljšajte logotip" - }, - "improvedtubeIconOnYoutube": { - "message": "Ikona ImprovedTube na YouTubeu" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube jezik" - }, - "improvedtubeVersion": { - "message": "ImprovedTube verzija" - }, - "increasePlaybackSpeed": { - "message": "Povećajte brzinu reprodukcije" - }, - "increaseVolume": { - "message": "Povećajte glasnoću" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Predmeti" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Jezici" - }, - "legacyYoutube": { - "message": "Naslijeđeni YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Svjetlo" - }, - "lightBlue": { - "message": "Svjetlo plava" - }, - "lightGreen": { - "message": "Svjetlo zelena" - }, - "like": { - "message": "Sviđa mi se" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Sviđaju mi se" - }, - "lime": { - "message": "Limeta" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Chat uživo" - }, - "liveChatType": { - "message": "Vrsta chata uživo" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Normalizacija glasnoće" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Označi pogledane videozapise" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mikser" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Moje boje" - }, - "name": { - "message": "Naziv" - }, - "nativeMiniPlayer": { - "message": "Izvorni mini player" - }, - "new": { - "message": "Novo" - }, - "nextVideo": { - "message": "Sljedeći video" - }, - "night": { - "message": "Noć" - }, - "noActiveFeatures": { - "message": "Nema aktivnih značajki" - }, - "noOpenVideoTabs": { - "message": "Nema otvorenih video kartica" - }, - "none": { - "message": "Nijedna" - }, - "normal": { - "message": "Normalno" - }, - "old": { - "message": "Staro" - }, - "onAllVideos": { - "message": "Na svim video zapisima" - }, - "onSubscribedChannels": { - "message": "Na pretplaćenim kanalima" - }, - "onlyActiveOnYoutube": { - "message": "Aktivno samo na YouTubeu" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Svira samo jedna instanca playera" - }, - "openPopupPlayer": { - "message": "Otvorite videozapis / popis za reprodukciju u novom prozoru" - }, - "orange": { - "message": "Narančasto" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Ostalo" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Dopuštenja" - }, - "pictureInPicture": { - "message": "Slika u slici" - }, - "pink": { - "message": "Ružičasto" - }, - "plain": { - "message": "Jednostavno" - }, - "platform": { - "message": "Platforma" - }, - "playPause": { - "message": "Reprodukcija / pauza" - }, - "playbackSpeed": { - "message": "Brzina reprodukcije" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Boja playera" - }, - "playerSize": { - "message": "Veličina playera" - }, - "playlist": { - "message": "Popis za reprodukciju" - }, - "playlists": { - "message": "Popisi za reprodukciju" - }, - "popupPlayer": { - "message": "Player u skočnom prozoru" - }, - "position": { - "message": "Položaj" - }, - "pressAnyKeyOrScroll": { - "message": "Pritisnite bilo koju tipku ili upotrijebite kotačić miša." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Pritisnite bilo koju tipku ili upotrijebite kotačić miša" - }, - "previousVideo": { - "message": "Prethodni videozapis" - }, - "primaryColor": { - "message": "Primarna boja" - }, - "purple": { - "message": "Ljubičasta" - }, - "quality": { - "message": "Kvaliteta" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "Radna memorija" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Ocijenite nas" - }, - "red": { - "message": "Crvena" - }, - "redDislikeButton": { - "message": "Prikaži ne sviđa mi se botun u crvenoj boji" - }, - "relatedVideos": { - "message": "Slični videozapisi" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Uklonite slične rezultate pretraživanja" - }, - "repeat": { - "message": "Ponovi" - }, - "reset": { - "message": "Resetiraj" - }, - "resetAllSettings": { - "message": "Resetirajte sve postavke" - }, - "resetAllShortcuts": { - "message": "Resetirajte sve prečace" - }, - "reverse": { - "message": "Preokreni" - }, - "rotate": { - "message": "Rotiraj" - }, - "save": { - "message": "Sačuvaj" - }, - "saveAs": { - "message": "Sačuvaj kao" - }, - "schedule": { - "message": "Stavi na raspored" - }, - "screen": { - "message": "Zaslon" - }, - "screenshot": { - "message": "Snimka zaslona" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Pretraži" - }, - "searchBarOnly": { - "message": "Samo traka za pretraživanje" - }, - "seekBackward10Seconds": { - "message": "Traži unatrag 10 sekundi" - }, - "seekForward10Seconds": { - "message": "Traži 10 sekundi prema naprijed" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Postavke" - }, - "settingsSuccessfullyImported": { - "message": "Postavke su uspješno uvezene" - }, - "shortcuts": { - "message": "Prečaci" - }, - "showCardsOnMouseHover": { - "message": "Pokaži kartice prilikom prelaska miša" - }, - "showChannelVideosCount": { - "message": "Prikaži broj videozapisa na kanalu" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Nasumično" - }, - "sidebar": { - "message": "Bočna traka" - }, - "spacebar": { - "message": "Tipka razmaka" - }, - "squaredUserImages": { - "message": "Korisničke slike u kvadratu" - }, - "static": { - "message": "Statički" - }, - "statsForNerds": { - "message": "Prikaži statistiku za štrebere" - }, - "step": { - "message": "Korak" - }, - "stop": { - "message": "Stani" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stilovi" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Pretplate" - }, - "subtitles": { - "message": "Titlovi" - }, - "sunset": { - "message": "Zalazak sunca" - }, - "sunsetToSunrise": { - "message": "Od zalaska do izlaska sunca" - }, - "systemPeferenceDark": { - "message": "Postavke sustava: tamno" - }, - "systemPeferenceLight": { - "message": "Postavke sustava: svjetlo" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Boja teksta" - }, - "themes": { - "message": "Teme" - }, - "thisWillRemoveAllCookies": { - "message": "Ovo će ukloniti sve kolačiće." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Ovo će ukloniti sve YouTube kolačiće" - }, - "thisWillResetAllSettings": { - "message": "Ovo će resetirati sve postavke." - }, - "thisWillResetAllShortcuts": { - "message": "Ovo će resetirati sve prečace" - }, - "thumbnails": { - "message": "Sličice" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Vrijeme od" - }, - "timeTo": { - "message": "Vrijeme do" - }, - "todayAt": { - "message": "Danas u" - }, - "toggleAutoplay": { - "message": "Uključi / isključi automatsku reprodukciju" - }, - "toggleCards": { - "message": "Uključi / isključi kartice" - }, - "toggleControls": { - "message": "Uključi / isključi kontrole playera" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Automatska reprodukcija kratkog filma" - }, - "translations": { - "message": "Prijevodi" - }, - "transparentBackground": { - "message": "Prozirna pozadina" - }, - "trending": { - "message": "U trendu" - }, - "tryToReloadThePage": { - "message": "Pokušajte ponovo učitati stranicu" - }, - "type": { - "message": "Tip" - }, - "upNextAutoplay": { - "message": "Sljedeća automatska reprodukcija" - }, - "use24HourFormat": { - "message": "Koristite 24-satni format" - }, - "version": { - "message": "Verzija" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Opis videozapisa biti će proširen kako bi se dobio naziv kategorije" - }, - "videoFormats": { - "message": "Video formati" - }, - "videos": { - "message": "Videozapisi" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Glasnoća" - }, - "watchLater": { - "message": "Gledaj kasnije" - }, - "watchTime": { - "message": "Vrijeme gledanja" - }, - "whenTabIsChanged": { - "message": "Kada se kartica promijeni" - }, - "white": { - "message": "Bijela" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Žuta" - }, - "youtubeHeaderLeft": { - "message": "YouTube zaglavlje (lijevo)" - }, - "youtubeHeaderRight": { - "message": "YouTube zaglavlje (desno)" - }, - "youtubeHomePage": { - "message": "YouTube početna stranica" - }, - "youtubeLanguage": { - "message": "YouTube jezik" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube ograničava kvalitetu videozapisa na 1080p za h.264 kodek" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "O" + }, + "accept": { + "message": "Prihvati" + }, + "activate": { + "message": "Aktiviraj" + }, + "activateCaptions": { + "message": "Aktiviraj naslove" + }, + "activateFullscreen": { + "message": "Aktiviraj puni zaslon" + }, + "activated": { + "message": "Aktivirano" + }, + "activatedFeatures": { + "message": "Aktivirane značajke" + }, + "activeFeatures": { + "message": "Aktivne značajke" + }, + "addScrollToTop": { + "message": "Dodaj «Pomaknite se na vrh»" + }, + "ads": { + "message": "Oglasi" + }, + "all": { + "message": "Sve" + }, + "allow": { + "message": "Dopusti" + }, + "allow60fps": { + "message": "Dopusti 60fps" + }, + "alwaysActive": { + "message": "Uvijek aktivan" + }, + "alwaysShowProgressBar": { + "message": "Uvijek prikaži traku napretka" + }, + "amber": { + "message": "Jantar" + }, + "analyzer": { + "message": "Analizator" + }, + "appearance": { + "message": "Izgled" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formati" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Automatski prikaz preko cijelog zaslona" + }, + "autopauseWhenSwitchingTabs": { + "message": "Automatska pauza prilikom zamjene kartica" + }, + "autoplay": { + "message": "Auto Play" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Sigurnosna kopija i resetiranje" + }, + "baseOnSystemColorScheme": { + "message": "Na temelju shema boja sustava" + }, + "belowPlayer": { + "message": "Ispod Playera" + }, + "black": { + "message": "Crno" + }, + "blacklist": { + "message": "Crna lista" + }, + "blockAll": { + "message": "Blokiraj sve" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Plava" + }, + "blueGray": { + "message": "Plavo siva" + }, + "bluelight": { + "message": "Svijetlo plava" + }, + "brown": { + "message": "Smeđa" + }, + "browser": { + "message": "Preglednik" + }, + "browserVersion": { + "message": "Verzija preglednika" + }, + "bubbles": { + "message": "Mjehurići" + }, + "bug": { + "message": "Greška" + }, + "buttons": { + "message": "Gumbi" + }, + "cancel": { + "message": "Otkaži" + }, + "categories": { + "message": "Kategorije" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanali" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Međuspremnik" + }, + "codecH264": { + "message": "Kodek h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Skupljanje pretplatničkih odjeljaka" + }, + "collapsed": { + "message": "Skupljeno" + }, + "comments": { + "message": "Komentari" + }, + "confirmationBeforeClosing": { + "message": "Potvrda prije zatvaranja" + }, + "cookies": { + "message": "Kolačići" + }, + "cores": { + "message": "Jezgre" + }, + "cropChapterTitles": { + "message": "Izreži naslove poglavlja" + }, + "customCss": { + "message": "Prilagođeni CSS" + }, + "customJs": { + "message": "Prilagođeni JS" + }, + "customMiniPlayer": { + "message": "Prilagođeni Mini-Player" + }, + "cyan": { + "message": "Cijan" + }, + "dark": { + "message": "Tamno" + }, + "darkTheme": { + "message": "Tamna tema" + }, + "dateAndTime": { + "message": "Datum & vrijeme" + }, + "dawn": { + "message": "Zora" + }, + "decreasePlaybackSpeed": { + "message": "Smanji brzinu reprodukcije" + }, + "decreaseVolume": { + "message": "Smanji glasnoću" + }, + "deepOrange": { + "message": "Duboko narančasta" + }, + "deepPurple": { + "message": "Duboko ljubičasta" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Zadana kartica kanala" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Izbrišite YouTube kolačiće" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Opis" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Zasluga" + }, + "details": { + "message": "Pojedinosti" + }, + "developerOptions": { + "message": "Opcije za programere" + }, + "device": { + "message": "Uređaj" + }, + "dim": { + "message": "Priguši" + }, + "disabled": { + "message": "Onemogućeno" + }, + "dislike": { + "message": "Ne sviđa mi se" + }, + "doNotChange": { + "message": "Nemoj mijenjati" + }, + "donate": { + "message": "Doniraj" + }, + "draggable": { + "message": "Povuci" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "E-mail" + }, + "empty": { + "message": "Prazno" + }, + "enabled": { + "message": "Omogućeno" + }, + "enabledForced": { + "message": "Omogućeno (prisilno)" + }, + "expanded": { + "message": "Prošireno" + }, + "exportSettings": { + "message": "Izvoz postavki" + }, + "extension": { + "message": "Proširenje" + }, + "file": { + "message": "Datoteka" + }, + "filters": { + "message": "Filteri" + }, + "fitToWindow": { + "message": "Prilagodi prozoru" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Podnožje" + }, + "forceSDR": { + "message": "Prisilno SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Prisiljena brzina reprodukcije" + }, + "forcedTheaterMode": { + "message": "Prisiljen kazališni način" + }, + "forcedVolume": { + "message": "Prisiljena glasnoća" + }, + "foundABug": { + "message": "Pronašli ste grešku?" + }, + "fullWindow": { + "message": "Puni prozor" + }, + "general": { + "message": "Općenito" + }, + "geoPreference": { + "message": "Geografske preferencije" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Idite na okvir za pretraživanje" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Zelena" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD sličica" + }, + "header": { + "message": "Zaglavlje" + }, + "hidden": { + "message": "Skriven" + }, + "hiddenOnVideoPage": { + "message": "Skriveno na stranici videozapisa" + }, + "hideAnimatedThumbnails": { + "message": "Sakrij animirane sličice" + }, + "hideAnnotations": { + "message": "Sakrij napomene" + }, + "hideCards": { + "message": "Sakrij kartice" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Sakrij detalje" + }, + "hideEndscreen": { + "message": "Sakrij završni zaslon" + }, + "hideFeaturedContent": { + "message": "Sakrij istaknuti sadržaj" + }, + "hideFooter": { + "message": "Sakrij podnožje" + }, + "hideGradientBottom": { + "message": "Sakrij sjenu oko trake playera" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Sakrij kontrole playera" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Sakrij popis za reprodukciju" + }, + "hideRightButtons": { + "message": "Sakrij desne gumbe" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Sakrij «Pomakni za detalje»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Sakrij gumbe na sličicama" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Sakrij broj pregleda" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Povijest" + }, + "home": { + "message": "Početna" + }, + "hover": { + "message": "Pređite mišem preko" + }, + "hoverOnVideoPage": { + "message": "Zadržite pokazivač miša na stranici videozapisa" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Prije koliko je vremena video prenesen" + }, + "icons": { + "message": "Ikone" + }, + "iconsOnly": { + "message": "Samo ikone" + }, + "importSettings": { + "message": "Uvezi postavke" + }, + "improveLogo": { + "message": "Poboljšajte logotip" + }, + "improvedtubeIconOnYoutube": { + "message": "Ikona ImprovedTube na YouTubeu" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube jezik" + }, + "improvedtubeVersion": { + "message": "ImprovedTube verzija" + }, + "increasePlaybackSpeed": { + "message": "Povećajte brzinu reprodukcije" + }, + "increaseVolume": { + "message": "Povećajte glasnoću" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Predmeti" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Jezici" + }, + "legacyYoutube": { + "message": "Naslijeđeni YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Svjetlo" + }, + "lightBlue": { + "message": "Svjetlo plava" + }, + "lightGreen": { + "message": "Svjetlo zelena" + }, + "like": { + "message": "Sviđa mi se" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Sviđaju mi se" + }, + "lime": { + "message": "Limeta" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Chat uživo" + }, + "liveChatType": { + "message": "Vrsta chata uživo" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Normalizacija glasnoće" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Označi pogledane videozapise" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mikser" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Moje boje" + }, + "name": { + "message": "Naziv" + }, + "nativeMiniPlayer": { + "message": "Izvorni mini player" + }, + "new": { + "message": "Novo" + }, + "nextVideo": { + "message": "Sljedeći video" + }, + "night": { + "message": "Noć" + }, + "noActiveFeatures": { + "message": "Nema aktivnih značajki" + }, + "noOpenVideoTabs": { + "message": "Nema otvorenih video kartica" + }, + "none": { + "message": "Nijedna" + }, + "normal": { + "message": "Normalno" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Staro" + }, + "onAllVideos": { + "message": "Na svim video zapisima" + }, + "onSubscribedChannels": { + "message": "Na pretplaćenim kanalima" + }, + "onlyActiveOnYoutube": { + "message": "Aktivno samo na YouTubeu" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Svira samo jedna instanca playera" + }, + "openPopupPlayer": { + "message": "Otvorite videozapis / popis za reprodukciju u novom prozoru" + }, + "orange": { + "message": "Narančasto" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Ostalo" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Dopuštenja" + }, + "pictureInPicture": { + "message": "Slika u slici" + }, + "pink": { + "message": "Ružičasto" + }, + "plain": { + "message": "Jednostavno" + }, + "platform": { + "message": "Platforma" + }, + "playPause": { + "message": "Reprodukcija / pauza" + }, + "playbackSpeed": { + "message": "Brzina reprodukcije" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Boja playera" + }, + "playerSize": { + "message": "Veličina playera" + }, + "playlist": { + "message": "Popis za reprodukciju" + }, + "playlists": { + "message": "Popisi za reprodukciju" + }, + "popupPlayer": { + "message": "Player u skočnom prozoru" + }, + "position": { + "message": "Položaj" + }, + "pressAnyKeyOrScroll": { + "message": "Pritisnite bilo koju tipku ili upotrijebite kotačić miša." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Pritisnite bilo koju tipku ili upotrijebite kotačić miša" + }, + "previousVideo": { + "message": "Prethodni videozapis" + }, + "primaryColor": { + "message": "Primarna boja" + }, + "purple": { + "message": "Ljubičasta" + }, + "quality": { + "message": "Kvaliteta" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "Radna memorija" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Ocijenite nas" + }, + "red": { + "message": "Crvena" + }, + "redDislikeButton": { + "message": "Prikaži ne sviđa mi se botun u crvenoj boji" + }, + "relatedVideos": { + "message": "Slični videozapisi" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Uklonite slične rezultate pretraživanja" + }, + "repeat": { + "message": "Ponovi" + }, + "reset": { + "message": "Resetiraj" + }, + "resetAllSettings": { + "message": "Resetirajte sve postavke" + }, + "resetAllShortcuts": { + "message": "Resetirajte sve prečace" + }, + "reverse": { + "message": "Preokreni" + }, + "rotate": { + "message": "Rotiraj" + }, + "save": { + "message": "Sačuvaj" + }, + "saveAs": { + "message": "Sačuvaj kao" + }, + "schedule": { + "message": "Stavi na raspored" + }, + "screen": { + "message": "Zaslon" + }, + "screenshot": { + "message": "Snimka zaslona" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Pretraži" + }, + "searchBarOnly": { + "message": "Samo traka za pretraživanje" + }, + "seekBackward10Seconds": { + "message": "Traži unatrag 10 sekundi" + }, + "seekForward10Seconds": { + "message": "Traži 10 sekundi prema naprijed" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Postavke" + }, + "settingsSuccessfullyImported": { + "message": "Postavke su uspješno uvezene" + }, + "shortcuts": { + "message": "Prečaci" + }, + "showCardsOnMouseHover": { + "message": "Pokaži kartice prilikom prelaska miša" + }, + "showChannelVideosCount": { + "message": "Prikaži broj videozapisa na kanalu" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Nasumično" + }, + "sidebar": { + "message": "Bočna traka" + }, + "spacebar": { + "message": "Tipka razmaka" + }, + "squaredUserImages": { + "message": "Korisničke slike u kvadratu" + }, + "static": { + "message": "Statički" + }, + "statsForNerds": { + "message": "Prikaži statistiku za štrebere" + }, + "step": { + "message": "Korak" + }, + "stop": { + "message": "Stani" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stilovi" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Pretplate" + }, + "subtitles": { + "message": "Titlovi" + }, + "sunset": { + "message": "Zalazak sunca" + }, + "sunsetToSunrise": { + "message": "Od zalaska do izlaska sunca" + }, + "systemPeferenceDark": { + "message": "Postavke sustava: tamno" + }, + "systemPeferenceLight": { + "message": "Postavke sustava: svjetlo" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Boja teksta" + }, + "themes": { + "message": "Teme" + }, + "thisWillRemoveAllCookies": { + "message": "Ovo će ukloniti sve kolačiće." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Ovo će ukloniti sve YouTube kolačiće" + }, + "thisWillResetAllSettings": { + "message": "Ovo će resetirati sve postavke." + }, + "thisWillResetAllShortcuts": { + "message": "Ovo će resetirati sve prečace" + }, + "thumbnails": { + "message": "Sličice" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Vrijeme od" + }, + "timeTo": { + "message": "Vrijeme do" + }, + "todayAt": { + "message": "Danas u" + }, + "toggleAutoplay": { + "message": "Uključi / isključi automatsku reprodukciju" + }, + "toggleCards": { + "message": "Uključi / isključi kartice" + }, + "toggleControls": { + "message": "Uključi / isključi kontrole playera" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Automatska reprodukcija kratkog filma" + }, + "translations": { + "message": "Prijevodi" + }, + "transparentBackground": { + "message": "Prozirna pozadina" + }, + "trending": { + "message": "U trendu" + }, + "tryToReloadThePage": { + "message": "Pokušajte ponovo učitati stranicu" + }, + "type": { + "message": "Tip" + }, + "upNextAutoplay": { + "message": "Sljedeća automatska reprodukcija" + }, + "use24HourFormat": { + "message": "Koristite 24-satni format" + }, + "version": { + "message": "Verzija" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Opis videozapisa biti će proširen kako bi se dobio naziv kategorije" + }, + "videoFormats": { + "message": "Video formati" + }, + "videos": { + "message": "Videozapisi" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Glasnoća" + }, + "watchLater": { + "message": "Gledaj kasnije" + }, + "watchTime": { + "message": "Vrijeme gledanja" + }, + "whenTabIsChanged": { + "message": "Kada se kartica promijeni" + }, + "white": { + "message": "Bijela" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Žuta" + }, + "youtubeHeaderLeft": { + "message": "YouTube zaglavlje (lijevo)" + }, + "youtubeHeaderRight": { + "message": "YouTube zaglavlje (desno)" + }, + "youtubeHomePage": { + "message": "YouTube početna stranica" + }, + "youtubeLanguage": { + "message": "YouTube jezik" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube ograničava kvalitetu videozapisa na 1080p za h.264 kodek" + } } \ No newline at end of file diff --git a/_locales/id/messages.json b/_locales/id/messages.json index bf31adee8..b0876efdd 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -1,983 +1,989 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Tentang" - }, - "accept": { - "message": "Terima" - }, - "activate": { - "message": "Aktifkan" - }, - "activateCaptions": { - "message": "Aktifkan keterangan" - }, - "activateFullscreen": { - "message": "Aktifkan layar penuh" - }, - "activated": { - "message": "Diaktifkan" - }, - "activatedFeatures": { - "message": "Fitur diaktifkan" - }, - "activeFeatures": { - "message": "Fitur yang aktif" - }, - "addScrollToTop": { - "message": "Tambah «Gulir ke atas»" - }, - "ads": { - "message": "Tampilkan iklan" - }, - "all": { - "message": "Semua" - }, - "allow": { - "message": "Izinkan" - }, - "allow60fps": { - "message": "Izinkan 60fps" - }, - "alwaysActive": { - "message": "Selalu aktif" - }, - "alwaysShowProgressBar": { - "message": "Selalu tampilkan progress bar" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Pengnalisa" - }, - "appearance": { - "message": "Tampilan" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Suara" - }, - "audioFormats": { - "message": "Format suara" - }, - "auto": { - "message": "Otomatis" - }, - "autoFullscreen": { - "message": "Layar penuh otomatis" - }, - "autopauseWhenSwitchingTabs": { - "message": "Jeda saat mengganti tab" - }, - "autoplay": { - "message": "Putar secara otomatis" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Cadangkan & setel ulang" - }, - "baseOnSystemColorScheme": { - "message": "Berdasarkan skema warna sistem" - }, - "belowPlayer": { - "message": "Dibawah pemutar" - }, - "black": { - "message": "Hitam" - }, - "blacklist": { - "message": "Blokir" - }, - "blockAll": { - "message": "Blokir semua" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Biru" - }, - "blueGray": { - "message": "Abu-abu biru" - }, - "bluelight": { - "message": "Cahaya biru" - }, - "brown": { - "message": "Coklat" - }, - "browser": { - "message": "Peramban" - }, - "browserVersion": { - "message": "Versi peramban" - }, - "bubbles": { - "message": "Gelembung" - }, - "bug": { - "message": "Masalah" - }, - "buttons": { - "message": "Tombol" - }, - "cancel": { - "message": "Batalkan" - }, - "categories": { - "message": "Kategori" - }, - "channel": { - "message": "Saluran" - }, - "channels": { - "message": "Saluran" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Tutup bagian berlangganan" - }, - "collapsed": { - "message": "Tutup" - }, - "comments": { - "message": "Komentar" - }, - "confirmationBeforeClosing": { - "message": "Konfirmasi sebelum ditutup" - }, - "cookies": { - "message": "Kuki" - }, - "cores": { - "message": "Inti" - }, - "cropChapterTitles": { - "message": "Potong bagian judul " - }, - "customCss": { - "message": "Kostum CSS" - }, - "customJs": { - "message": "Kostum JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Gelap" - }, - "darkTheme": { - "message": "Tema gelap" - }, - "dateAndTime": { - "message": "Tanggal dan waktu" - }, - "dawn": { - "message": "Fajar" - }, - "decreasePlaybackSpeed": { - "message": "Kurangi kecepatan pemutaran" - }, - "decreaseVolume": { - "message": "Kurangi suara" - }, - "deepOrange": { - "message": "Oranye tua" - }, - "deepPurple": { - "message": "Ungu tua" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Tab saluran standar" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Hapus kuki youtube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Deskripsi" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Gurun" - }, - "details": { - "message": "Detail" - }, - "developerOptions": { - "message": "Opsi pengembang" - }, - "device": { - "message": "Perangkat" - }, - "dim": { - "message": "Redupkan" - }, - "disabled": { - "message": "Dinonaktifkan" - }, - "dislike": { - "message": "Tidak Suka" - }, - "doNotChange": { - "message": "Jangan ubah" - }, - "donate": { - "message": "Donasi" - }, - "draggable": { - "message": "Dapat diseret" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Surel" - }, - "empty": { - "message": "Kosong" - }, - "enabled": { - "message": "Aktifkan" - }, - "enabledForced": { - "message": "Aktifkan (paksa)" - }, - "expanded": { - "message": "Perluas" - }, - "exportSettings": { - "message": "Ekspor pengaturan" - }, - "extension": { - "message": "Ekstensi" - }, - "file": { - "message": "Berkas" - }, - "filters": { - "message": "Saringan" - }, - "fitToWindow": { - "message": "Sesuaikan dengan layar" - }, - "flash": { - "message": "Cahaya" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Catatan kaki" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Paksa kecepatan pemutaran" - }, - "forcedTheaterMode": { - "message": "Paksa mode teater" - }, - "forcedVolume": { - "message": "Paksa suara" - }, - "foundABug": { - "message": "Menemukan masalah?" - }, - "fullWindow": { - "message": "Layar penuh" - }, - "general": { - "message": "Umum" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Ke kotak pencarian" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Hijau" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "Gambar kecil HD" - }, - "header": { - "message": "Kepala" - }, - "hidden": { - "message": "Sembunyikan" - }, - "hiddenOnVideoPage": { - "message": "Tersembunyi di halaman video" - }, - "hideAnimatedThumbnails": { - "message": "Sembunyikan animasi gambar kecil" - }, - "hideAnnotations": { - "message": "Sembunyikan penjelasan" - }, - "hideCards": { - "message": "Sembunyikan kartu" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Sembunyikan detail" - }, - "hideEndscreen": { - "message": "Sembunyikan layar akhir" - }, - "hideFeaturedContent": { - "message": "Sembunyikan konten unggulan" - }, - "hideFooter": { - "message": "Sembunyikan catatan kaki" - }, - "hideGradientBottom": { - "message": "Sembunyikan Gradient Bagian Bawah" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Sembunyikan daftar putar" - }, - "hideRightButtons": { - "message": "Sembunyikan tombol kanan" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Sembunyikan «gulir untuk detail»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Sembunyikan jumlah penayangan" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "Sejarah" - }, - "home": { - "message": "Beranda" - }, - "hover": { - "message": "Arahkan" - }, - "hoverOnVideoPage": { - "message": "Arahkan pada halaman video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Berapa lama video itu diunggah" - }, - "icons": { - "message": "Ikon" - }, - "iconsOnly": { - "message": "Ikon saja" - }, - "importSettings": { - "message": "Impor pengaturan" - }, - "improveLogo": { - "message": "Tingkatkan kualitas logo" - }, - "improvedtubeIconOnYoutube": { - "message": "Ikon ImprovedTube di YouTube" - }, - "improvedtubeLanguage": { - "message": "Bahasa ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versi ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Tingkatkan kecepatan pemutaran" - }, - "increaseVolume": { - "message": "Tingkatkan suara" - }, - "indigo": { - "message": "Nila" - }, - "items": { - "message": "Item" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Bahasa" - }, - "legacyYoutube": { - "message": "YouTube lama" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Terang" - }, - "lightBlue": { - "message": "Biru terang" - }, - "lightGreen": { - "message": "Hijau terang" - }, - "like": { - "message": "Suka" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Suka" - }, - "lime": { - "message": "Limau" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Daftar" - }, - "liveChat": { - "message": "Obrolan langsung" - }, - "liveChatType": { - "message": "Jenis obrolan langsung" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Normalkan suara" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Tandai video yang ditonton" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mixer" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Warna saya" - }, - "name": { - "message": "Nama" - }, - "nativeMiniPlayer": { - "message": "Pemutar kecil bawaan" - }, - "new": { - "message": "Baru" - }, - "nextVideo": { - "message": "Video selanjutnya" - }, - "night": { - "message": "Malam" - }, - "noActiveFeatures": { - "message": "Tidak ada fitur aktif" - }, - "noOpenVideoTabs": { - "message": "Tidak ada tab video terbuka" - }, - "none": { - "message": "Tidak ada" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Lama" - }, - "onAllVideos": { - "message": "Disetiap video" - }, - "onSubscribedChannels": { - "message": "Di saluran berlangganan" - }, - "onlyActiveOnYoutube": { - "message": "Hanya aktif di YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Hanya mainkan satu pemutar" - }, - "orange": { - "message": "Oranye" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Lainnya" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Perizinan" - }, - "pictureInPicture": { - "message": "Gambar di dalam gambar" - }, - "pink": { - "message": "Merah jambu" - }, - "plain": { - "message": "Dataran" - }, - "platform": { - "message": "Platform" - }, - "playPause": { - "message": "Mulai / Jeda" - }, - "playbackSpeed": { - "message": "Kecepatan pemutar" - }, - "player": { - "message": "Pemutar" - }, - "playerColor": { - "message": "Warna pemutar" - }, - "playerSize": { - "message": "Ukuran pemutar" - }, - "playlist": { - "message": "Daftar putar" - }, - "playlists": { - "message": "Daftar putar" - }, - "popupPlayer": { - "message": "Pemutar sembulan" - }, - "position": { - "message": "Posisi" - }, - "pressAnyKeyOrScroll": { - "message": "Tekan tombol apa saja atau gunakan roda mouse." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Tekan tombol apa saja atau gunakan roda mouse" - }, - "previousVideo": { - "message": "Video sebelumnya" - }, - "primaryColor": { - "message": "Warna utama" - }, - "purple": { - "message": "Ungu" - }, - "quality": { - "message": "Kualitas video" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Nilai Kami" - }, - "red": { - "message": "Merah" - }, - "relatedVideos": { - "message": "Video terkait" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Hapus hasil pencarian terkait" - }, - "repeat": { - "message": "Putar ulang" - }, - "reset": { - "message": "Setel ulang" - }, - "resetAllSettings": { - "message": "Setel ulang semua pengaturan" - }, - "resetAllShortcuts": { - "message": "Setel ulang semua pintasan" - }, - "reverse": { - "message": "Putar secara terbalik" - }, - "rotate": { - "message": "Putar" - }, - "save": { - "message": "Simpan" - }, - "saveAs": { - "message": "Simpan dengan" - }, - "schedule": { - "message": "Jadwal" - }, - "screen": { - "message": "Layar" - }, - "screenshot": { - "message": "Tangkapan layar" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Cari" - }, - "searchBarOnly": { - "message": "Hanya bilah pencarian" - }, - "seekBackward10Seconds": { - "message": "Mundur 10 detik" - }, - "seekForward10Seconds": { - "message": "Maju 10 detik" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Pengaturan" - }, - "settingsSuccessfullyImported": { - "message": "Berhasil mengimpor pengaturan" - }, - "shortcuts": { - "message": "Pintasan" - }, - "showCardsOnMouseHover": { - "message": "Tunjukkan kartu pada arah mouse" - }, - "showChannelVideosCount": { - "message": "Tampilkan jumlah video saluran" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Putar secara acak" - }, - "sidebar": { - "message": "Bilah samping" - }, - "spacebar": { - "message": "Bilah spasi" - }, - "squaredUserImages": { - "message": "Gambar pengguna kotak" - }, - "static": { - "message": "Statis" - }, - "statsForNerds": { - "message": "Tampilkan statistik bagi para 'kutu buku'" - }, - "step": { - "message": "Langkah" - }, - "stop": { - "message": "Berhenti" - }, - "style": { - "message": "Mode" - }, - "styles": { - "message": "Mode" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Berlangganan" - }, - "subtitles": { - "message": "Teks" - }, - "sunset": { - "message": "Senja" - }, - "sunsetToSunrise": { - "message": "Matahari terbenam hingga matahari terbit" - }, - "systemPeferenceDark": { - "message": "Preferensi sistem: gelap" - }, - "systemPeferenceLight": { - "message": "Preferensi sistem: terang" - }, - "teal": { - "message": "Hijau kebiruan" - }, - "textColor": { - "message": "Warna teks" - }, - "themes": { - "message": "Tema" - }, - "thisWillRemoveAllCookies": { - "message": "Ini akan menghapus semua kuki." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Ini akan menghapus semua kuki YouTube" - }, - "thisWillResetAllSettings": { - "message": "Ini akan mengatur ulang semua pengaturan." - }, - "thisWillResetAllShortcuts": { - "message": "Ini akan mengatur ulang semua pintasan" - }, - "thumbnails": { - "message": "Gambar kecil" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Waktu dari" - }, - "timeTo": { - "message": "Waktu ke" - }, - "todayAt": { - "message": "Hari ini di" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Alihkan kartu" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Obrolan teratas" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Putar otomatis cuplikan" - }, - "translations": { - "message": "Terjemahan" - }, - "transparentBackground": { - "message": "Latar belakang transparan" - }, - "trending": { - "message": "Populer" - }, - "tryToReloadThePage": { - "message": "Coba muat ulang halaman" - }, - "type": { - "message": "Tipe" - }, - "upNextAutoplay": { - "message": "Putar otomatis berikutnya" - }, - "use24HourFormat": { - "message": "Gunakan format 24 jam" - }, - "version": { - "message": "Versi" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Deskripsi video akan diperluas untuk mendapatkan nama kategori" - }, - "videoFormats": { - "message": "Format video" - }, - "videos": { - "message": "Video" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Suara" - }, - "watchLater": { - "message": "Tonton nanti" - }, - "watchTime": { - "message": "Waktu tayang" - }, - "whenTabIsChanged": { - "message": "Saat tab berubah" - }, - "white": { - "message": "Putih" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Kuning" - }, - "youtubeHeaderLeft": { - "message": "Header YouTube (kiri)" - }, - "youtubeHeaderRight": { - "message": "Header YouTube (kanan)" - }, - "youtubeHomePage": { - "message": "Beranda YouTube" - }, - "youtubeLanguage": { - "message": "Bahasa YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube membatasi kualitas video hingga 1080p untuk codec h.264" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Tentang" + }, + "accept": { + "message": "Terima" + }, + "activate": { + "message": "Aktifkan" + }, + "activateCaptions": { + "message": "Aktifkan keterangan" + }, + "activateFullscreen": { + "message": "Aktifkan layar penuh" + }, + "activated": { + "message": "Diaktifkan" + }, + "activatedFeatures": { + "message": "Fitur diaktifkan" + }, + "activeFeatures": { + "message": "Fitur yang aktif" + }, + "addScrollToTop": { + "message": "Tambah «Gulir ke atas»" + }, + "ads": { + "message": "Tampilkan iklan" + }, + "all": { + "message": "Semua" + }, + "allow": { + "message": "Izinkan" + }, + "allow60fps": { + "message": "Izinkan 60fps" + }, + "alwaysActive": { + "message": "Selalu aktif" + }, + "alwaysShowProgressBar": { + "message": "Selalu tampilkan progress bar" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Pengnalisa" + }, + "appearance": { + "message": "Tampilan" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "Suara" + }, + "audioFormats": { + "message": "Format suara" + }, + "auto": { + "message": "Otomatis" + }, + "autoFullscreen": { + "message": "Layar penuh otomatis" + }, + "autopauseWhenSwitchingTabs": { + "message": "Jeda saat mengganti tab" + }, + "autoplay": { + "message": "Putar secara otomatis" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Cadangkan & setel ulang" + }, + "baseOnSystemColorScheme": { + "message": "Berdasarkan skema warna sistem" + }, + "belowPlayer": { + "message": "Dibawah pemutar" + }, + "black": { + "message": "Hitam" + }, + "blacklist": { + "message": "Blokir" + }, + "blockAll": { + "message": "Blokir semua" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Biru" + }, + "blueGray": { + "message": "Abu-abu biru" + }, + "bluelight": { + "message": "Cahaya biru" + }, + "brown": { + "message": "Coklat" + }, + "browser": { + "message": "Peramban" + }, + "browserVersion": { + "message": "Versi peramban" + }, + "bubbles": { + "message": "Gelembung" + }, + "bug": { + "message": "Masalah" + }, + "buttons": { + "message": "Tombol" + }, + "cancel": { + "message": "Batalkan" + }, + "categories": { + "message": "Kategori" + }, + "channel": { + "message": "Saluran" + }, + "channels": { + "message": "Saluran" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Tutup bagian berlangganan" + }, + "collapsed": { + "message": "Tutup" + }, + "comments": { + "message": "Komentar" + }, + "confirmationBeforeClosing": { + "message": "Konfirmasi sebelum ditutup" + }, + "cookies": { + "message": "Kuki" + }, + "cores": { + "message": "Inti" + }, + "cropChapterTitles": { + "message": "Potong bagian judul " + }, + "customCss": { + "message": "Kostum CSS" + }, + "customJs": { + "message": "Kostum JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Gelap" + }, + "darkTheme": { + "message": "Tema gelap" + }, + "dateAndTime": { + "message": "Tanggal dan waktu" + }, + "dawn": { + "message": "Fajar" + }, + "decreasePlaybackSpeed": { + "message": "Kurangi kecepatan pemutaran" + }, + "decreaseVolume": { + "message": "Kurangi suara" + }, + "deepOrange": { + "message": "Oranye tua" + }, + "deepPurple": { + "message": "Ungu tua" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Tab saluran standar" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Hapus kuki youtube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Deskripsi" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Gurun" + }, + "details": { + "message": "Detail" + }, + "developerOptions": { + "message": "Opsi pengembang" + }, + "device": { + "message": "Perangkat" + }, + "dim": { + "message": "Redupkan" + }, + "disabled": { + "message": "Dinonaktifkan" + }, + "dislike": { + "message": "Tidak Suka" + }, + "doNotChange": { + "message": "Jangan ubah" + }, + "donate": { + "message": "Donasi" + }, + "draggable": { + "message": "Dapat diseret" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Surel" + }, + "empty": { + "message": "Kosong" + }, + "enabled": { + "message": "Aktifkan" + }, + "enabledForced": { + "message": "Aktifkan (paksa)" + }, + "expanded": { + "message": "Perluas" + }, + "exportSettings": { + "message": "Ekspor pengaturan" + }, + "extension": { + "message": "Ekstensi" + }, + "file": { + "message": "Berkas" + }, + "filters": { + "message": "Saringan" + }, + "fitToWindow": { + "message": "Sesuaikan dengan layar" + }, + "flash": { + "message": "Cahaya" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Catatan kaki" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Paksa kecepatan pemutaran" + }, + "forcedTheaterMode": { + "message": "Paksa mode teater" + }, + "forcedVolume": { + "message": "Paksa suara" + }, + "foundABug": { + "message": "Menemukan masalah?" + }, + "fullWindow": { + "message": "Layar penuh" + }, + "general": { + "message": "Umum" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Ke kotak pencarian" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Hijau" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "Gambar kecil HD" + }, + "header": { + "message": "Kepala" + }, + "hidden": { + "message": "Sembunyikan" + }, + "hiddenOnVideoPage": { + "message": "Tersembunyi di halaman video" + }, + "hideAnimatedThumbnails": { + "message": "Sembunyikan animasi gambar kecil" + }, + "hideAnnotations": { + "message": "Sembunyikan penjelasan" + }, + "hideCards": { + "message": "Sembunyikan kartu" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Sembunyikan detail" + }, + "hideEndscreen": { + "message": "Sembunyikan layar akhir" + }, + "hideFeaturedContent": { + "message": "Sembunyikan konten unggulan" + }, + "hideFooter": { + "message": "Sembunyikan catatan kaki" + }, + "hideGradientBottom": { + "message": "Sembunyikan Gradient Bagian Bawah" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Sembunyikan daftar putar" + }, + "hideRightButtons": { + "message": "Sembunyikan tombol kanan" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Sembunyikan «gulir untuk detail»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Sembunyikan jumlah penayangan" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Sejarah" + }, + "home": { + "message": "Beranda" + }, + "hover": { + "message": "Arahkan" + }, + "hoverOnVideoPage": { + "message": "Arahkan pada halaman video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Berapa lama video itu diunggah" + }, + "icons": { + "message": "Ikon" + }, + "iconsOnly": { + "message": "Ikon saja" + }, + "importSettings": { + "message": "Impor pengaturan" + }, + "improveLogo": { + "message": "Tingkatkan kualitas logo" + }, + "improvedtubeIconOnYoutube": { + "message": "Ikon ImprovedTube di YouTube" + }, + "improvedtubeLanguage": { + "message": "Bahasa ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Versi ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Tingkatkan kecepatan pemutaran" + }, + "increaseVolume": { + "message": "Tingkatkan suara" + }, + "indigo": { + "message": "Nila" + }, + "items": { + "message": "Item" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Bahasa" + }, + "legacyYoutube": { + "message": "YouTube lama" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Terang" + }, + "lightBlue": { + "message": "Biru terang" + }, + "lightGreen": { + "message": "Hijau terang" + }, + "like": { + "message": "Suka" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Suka" + }, + "lime": { + "message": "Limau" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Daftar" + }, + "liveChat": { + "message": "Obrolan langsung" + }, + "liveChatType": { + "message": "Jenis obrolan langsung" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Normalkan suara" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Tandai video yang ditonton" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Warna saya" + }, + "name": { + "message": "Nama" + }, + "nativeMiniPlayer": { + "message": "Pemutar kecil bawaan" + }, + "new": { + "message": "Baru" + }, + "nextVideo": { + "message": "Video selanjutnya" + }, + "night": { + "message": "Malam" + }, + "noActiveFeatures": { + "message": "Tidak ada fitur aktif" + }, + "noOpenVideoTabs": { + "message": "Tidak ada tab video terbuka" + }, + "none": { + "message": "Tidak ada" + }, + "normal": { + "message": "Normal" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Lama" + }, + "onAllVideos": { + "message": "Disetiap video" + }, + "onSubscribedChannels": { + "message": "Di saluran berlangganan" + }, + "onlyActiveOnYoutube": { + "message": "Hanya aktif di YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Hanya mainkan satu pemutar" + }, + "orange": { + "message": "Oranye" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Lainnya" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Perizinan" + }, + "pictureInPicture": { + "message": "Gambar di dalam gambar" + }, + "pink": { + "message": "Merah jambu" + }, + "plain": { + "message": "Dataran" + }, + "platform": { + "message": "Platform" + }, + "playPause": { + "message": "Mulai / Jeda" + }, + "playbackSpeed": { + "message": "Kecepatan pemutar" + }, + "player": { + "message": "Pemutar" + }, + "playerColor": { + "message": "Warna pemutar" + }, + "playerSize": { + "message": "Ukuran pemutar" + }, + "playlist": { + "message": "Daftar putar" + }, + "playlists": { + "message": "Daftar putar" + }, + "popupPlayer": { + "message": "Pemutar sembulan" + }, + "position": { + "message": "Posisi" + }, + "pressAnyKeyOrScroll": { + "message": "Tekan tombol apa saja atau gunakan roda mouse." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Tekan tombol apa saja atau gunakan roda mouse" + }, + "previousVideo": { + "message": "Video sebelumnya" + }, + "primaryColor": { + "message": "Warna utama" + }, + "purple": { + "message": "Ungu" + }, + "quality": { + "message": "Kualitas video" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Nilai Kami" + }, + "red": { + "message": "Merah" + }, + "relatedVideos": { + "message": "Video terkait" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Hapus hasil pencarian terkait" + }, + "repeat": { + "message": "Putar ulang" + }, + "reset": { + "message": "Setel ulang" + }, + "resetAllSettings": { + "message": "Setel ulang semua pengaturan" + }, + "resetAllShortcuts": { + "message": "Setel ulang semua pintasan" + }, + "reverse": { + "message": "Putar secara terbalik" + }, + "rotate": { + "message": "Putar" + }, + "save": { + "message": "Simpan" + }, + "saveAs": { + "message": "Simpan dengan" + }, + "schedule": { + "message": "Jadwal" + }, + "screen": { + "message": "Layar" + }, + "screenshot": { + "message": "Tangkapan layar" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Cari" + }, + "searchBarOnly": { + "message": "Hanya bilah pencarian" + }, + "seekBackward10Seconds": { + "message": "Mundur 10 detik" + }, + "seekForward10Seconds": { + "message": "Maju 10 detik" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Pengaturan" + }, + "settingsSuccessfullyImported": { + "message": "Berhasil mengimpor pengaturan" + }, + "shortcuts": { + "message": "Pintasan" + }, + "showCardsOnMouseHover": { + "message": "Tunjukkan kartu pada arah mouse" + }, + "showChannelVideosCount": { + "message": "Tampilkan jumlah video saluran" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Putar secara acak" + }, + "sidebar": { + "message": "Bilah samping" + }, + "spacebar": { + "message": "Bilah spasi" + }, + "squaredUserImages": { + "message": "Gambar pengguna kotak" + }, + "static": { + "message": "Statis" + }, + "statsForNerds": { + "message": "Tampilkan statistik bagi para 'kutu buku'" + }, + "step": { + "message": "Langkah" + }, + "stop": { + "message": "Berhenti" + }, + "style": { + "message": "Mode" + }, + "styles": { + "message": "Mode" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Berlangganan" + }, + "subtitles": { + "message": "Teks" + }, + "sunset": { + "message": "Senja" + }, + "sunsetToSunrise": { + "message": "Matahari terbenam hingga matahari terbit" + }, + "systemPeferenceDark": { + "message": "Preferensi sistem: gelap" + }, + "systemPeferenceLight": { + "message": "Preferensi sistem: terang" + }, + "teal": { + "message": "Hijau kebiruan" + }, + "textColor": { + "message": "Warna teks" + }, + "themes": { + "message": "Tema" + }, + "thisWillRemoveAllCookies": { + "message": "Ini akan menghapus semua kuki." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Ini akan menghapus semua kuki YouTube" + }, + "thisWillResetAllSettings": { + "message": "Ini akan mengatur ulang semua pengaturan." + }, + "thisWillResetAllShortcuts": { + "message": "Ini akan mengatur ulang semua pintasan" + }, + "thumbnails": { + "message": "Gambar kecil" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Waktu dari" + }, + "timeTo": { + "message": "Waktu ke" + }, + "todayAt": { + "message": "Hari ini di" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Alihkan kartu" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Obrolan teratas" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Putar otomatis cuplikan" + }, + "translations": { + "message": "Terjemahan" + }, + "transparentBackground": { + "message": "Latar belakang transparan" + }, + "trending": { + "message": "Populer" + }, + "tryToReloadThePage": { + "message": "Coba muat ulang halaman" + }, + "type": { + "message": "Tipe" + }, + "upNextAutoplay": { + "message": "Putar otomatis berikutnya" + }, + "use24HourFormat": { + "message": "Gunakan format 24 jam" + }, + "version": { + "message": "Versi" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Deskripsi video akan diperluas untuk mendapatkan nama kategori" + }, + "videoFormats": { + "message": "Format video" + }, + "videos": { + "message": "Video" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Suara" + }, + "watchLater": { + "message": "Tonton nanti" + }, + "watchTime": { + "message": "Waktu tayang" + }, + "whenTabIsChanged": { + "message": "Saat tab berubah" + }, + "white": { + "message": "Putih" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Kuning" + }, + "youtubeHeaderLeft": { + "message": "Header YouTube (kiri)" + }, + "youtubeHeaderRight": { + "message": "Header YouTube (kanan)" + }, + "youtubeHomePage": { + "message": "Beranda YouTube" + }, + "youtubeLanguage": { + "message": "Bahasa YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube membatasi kualitas video hingga 1080p untuk codec h.264" + } } \ No newline at end of file diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 1dabee5c0..fe0abda08 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -1,983 +1,989 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Al riguardo" - }, - "accept": { - "message": "Accetta" - }, - "activate": { - "message": "Attivo/a" - }, - "activateCaptions": { - "message": "Attiva didascalie" - }, - "activateFullscreen": { - "message": "Attiva schermo intero" - }, - "activated": { - "message": "Attivato/a" - }, - "activatedFeatures": { - "message": "Funzionalità attivate" - }, - "activeFeatures": { - "message": "Funzioni disponibili" - }, - "addScrollToTop": { - "message": "Aggiungi «Scorri in cima»" - }, - "ads": { - "message": "Pubblicità" - }, - "all": { - "message": "Tutte" - }, - "allow": { - "message": "Permetti" - }, - "allow60fps": { - "message": "Permetti 60 fps" - }, - "alwaysActive": { - "message": "Sempre attivo" - }, - "alwaysShowProgressBar": { - "message": "Mostra sempre barra di avanzamento" - }, - "amber": { - "message": "Ambra" - }, - "analyzer": { - "message": "Analizzatore" - }, - "appearance": { - "message": "Aspetto" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formati audio" - }, - "auto": { - "message": "Automatico" - }, - "autoFullscreen": { - "message": "Schermo intero automatico" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausa automatica al cambio scheda" - }, - "autoplay": { - "message": "Avvio automatico" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Backup e reimpostazione" - }, - "baseOnSystemColorScheme": { - "message": "Basato sullo schema colore di sistema" - }, - "belowPlayer": { - "message": "Sotto il lettore" - }, - "black": { - "message": "Nero" - }, - "blacklist": { - "message": "Lista nera" - }, - "blockAll": { - "message": "Blocca tutte" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Blu" - }, - "blueGray": { - "message": "Grigio blu" - }, - "bluelight": { - "message": "Luce blu" - }, - "brown": { - "message": "Marrone" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Versione browser" - }, - "bubbles": { - "message": "Bolle" - }, - "bug": { - "message": "Difetto" - }, - "buttons": { - "message": "Pulsanti" - }, - "cancel": { - "message": "Annulla" - }, - "categories": { - "message": "Categorie" - }, - "channel": { - "message": "Canale" - }, - "channels": { - "message": "Canali" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Appunti" - }, - "codecH264": { - "message": "Codec H.264" - }, - "collapseOfSubscriptionSections": { - "message": "Comprimi sezioni di sottoscrizione" - }, - "collapsed": { - "message": "Compressa/i" - }, - "comments": { - "message": "Commenti" - }, - "confirmationBeforeClosing": { - "message": "Conferma prima della chiusura" - }, - "cookies": { - "message": "Cookie" - }, - "cores": { - "message": "Core" - }, - "cropChapterTitles": { - "message": "Ritaglia titoli dei capitoli" - }, - "customCss": { - "message": "CSS personalizzato" - }, - "customJs": { - "message": "JS personalizzato" - }, - "customMiniPlayer": { - "message": "Mini lettore personalizzato" - }, - "cyan": { - "message": "Ciano" - }, - "dark": { - "message": "Scuro" - }, - "darkTheme": { - "message": "Tema scuro" - }, - "dateAndTime": { - "message": "Data e ora" - }, - "dawn": { - "message": "Albeggio" - }, - "decreasePlaybackSpeed": { - "message": "Riduci velocità di riproduzione" - }, - "decreaseVolume": { - "message": "Diminuisci volume" - }, - "deepOrange": { - "message": "Arancione intenso" - }, - "deepPurple": { - "message": "Viola intenso" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Scheda predefinita" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Cancella cookie YouTube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Descrizione" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Deserto" - }, - "details": { - "message": "Dettagli" - }, - "developerOptions": { - "message": "Opzioni per sviluppatori" - }, - "device": { - "message": "Dispositivo" - }, - "dim": { - "message": "Smorzamento" - }, - "disabled": { - "message": "Disabilitato" - }, - "dislike": { - "message": "Non mi piace" - }, - "doNotChange": { - "message": "Non cambiare" - }, - "donate": { - "message": "Donazione" - }, - "draggable": { - "message": "Trascinabile" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "E-mail" - }, - "empty": { - "message": "Vuota" - }, - "enabled": { - "message": "Abilitato" - }, - "enabledForced": { - "message": "Abilitato (forzato)" - }, - "expanded": { - "message": "Estesa" - }, - "exportSettings": { - "message": "Esporta impostazioni" - }, - "extension": { - "message": "Estensione" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filtri" - }, - "fitToWindow": { - "message": "Adatta alla finestra" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Piè di pagina" - }, - "forceSDR": { - "message": "Forza SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Velocità di riproduzione forzata" - }, - "forcedTheaterMode": { - "message": "Modalità cinema forzata" - }, - "forcedVolume": { - "message": "Volume forzato" - }, - "foundABug": { - "message": "Trovato un difetto?" - }, - "fullWindow": { - "message": "Finestra intera" - }, - "general": { - "message": "Generale" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Vai alla casella di ricerca" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "Miniatura in altà qualità" - }, - "header": { - "message": "Intestazione" - }, - "hidden": { - "message": "Nascosta/i" - }, - "hiddenOnVideoPage": { - "message": "Nascosta nella pagina video" - }, - "hideAnimatedThumbnails": { - "message": "Nascondi miniature animate" - }, - "hideAnnotations": { - "message": "Nascondi annotazioni" - }, - "hideCards": { - "message": "Nascondi tessere di fine video" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Nascondi dettagli" - }, - "hideEndscreen": { - "message": "Nascondi finale video" - }, - "hideFeaturedContent": { - "message": "Nascondi contenuti in primo piano" - }, - "hideFooter": { - "message": "Nascondi piè di pagina" - }, - "hideGradientBottom": { - "message": "Nascondi fondo gradiente" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Nascondi scaletta" - }, - "hideRightButtons": { - "message": "Nascondi pulsanti sulla destra" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Nascondi «Scorri per dettagli»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Nascondi contatore visualizzazioni" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "Cronologia" - }, - "home": { - "message": "Pagina iniziale" - }, - "hover": { - "message": "In sospensione" - }, - "hoverOnVideoPage": { - "message": "In sospensione sulla pagine del video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Quanto tempo fa il video è stato caricato" - }, - "icons": { - "message": "Icone" - }, - "iconsOnly": { - "message": "Solo icone" - }, - "importSettings": { - "message": "Importa impostazioni" - }, - "improveLogo": { - "message": "Migliora logo YouTube" - }, - "improvedtubeIconOnYoutube": { - "message": "Icona su YouTube" - }, - "improvedtubeLanguage": { - "message": "Lingua" - }, - "improvedtubeVersion": { - "message": "Versione" - }, - "increasePlaybackSpeed": { - "message": "Incrementa velocità di riproduzione" - }, - "increaseVolume": { - "message": "Aumenta volume" - }, - "indigo": { - "message": "Indaco" - }, - "items": { - "message": "Oggetti" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Lingue" - }, - "legacyYoutube": { - "message": "YouTube versione legacy" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Chiaro" - }, - "lightBlue": { - "message": "Blu chiaro" - }, - "lightGreen": { - "message": "Verde chiaro" - }, - "like": { - "message": "Mi piace" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Numero di Mi piace" - }, - "lime": { - "message": "Lime" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Chat dal vivo" - }, - "liveChatType": { - "message": "Tipologia chat dal vivo" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Normalizzazione rumorosità" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Contrassegna video visti" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mixer" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Miei colori" - }, - "name": { - "message": "Nome" - }, - "nativeMiniPlayer": { - "message": "Mini lettore nativo" - }, - "new": { - "message": "Nuovo" - }, - "nextVideo": { - "message": "Prossimo video" - }, - "night": { - "message": "Notte" - }, - "noActiveFeatures": { - "message": "Nessuna funzione attivata" - }, - "noOpenVideoTabs": { - "message": "Nessuna scheda video aperta" - }, - "none": { - "message": "Alcuno/a" - }, - "normal": { - "message": "Standard" - }, - "old": { - "message": "Vecchio" - }, - "onAllVideos": { - "message": "Su tutti i video" - }, - "onSubscribedChannels": { - "message": "In canali sottoscritti" - }, - "onlyActiveOnYoutube": { - "message": "Attivo solo su YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Istanza unica di riproduzione attiva" - }, - "orange": { - "message": "Arancione" - }, - "os": { - "message": "Sistema Operativo" - }, - "other": { - "message": "Altro" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Autorizzazioni" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Pianura" - }, - "platform": { - "message": "Piattaforma" - }, - "playPause": { - "message": "Avvio/Pausa" - }, - "playbackSpeed": { - "message": "Velocità di riproduzione" - }, - "player": { - "message": "Lettore" - }, - "playerColor": { - "message": "Colore lettore" - }, - "playerSize": { - "message": "Dimensione lettore" - }, - "playlist": { - "message": "Scaletta" - }, - "playlists": { - "message": "Scalette" - }, - "popupPlayer": { - "message": "Lettore pop-up" - }, - "position": { - "message": "Posizione" - }, - "pressAnyKeyOrScroll": { - "message": "Premere un qualunque tasto o scorrere" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Premere un qualunque tasto o usare rotella del mouse" - }, - "previousVideo": { - "message": "Video precedente" - }, - "primaryColor": { - "message": "Colore primario" - }, - "purple": { - "message": "Viola" - }, - "quality": { - "message": "Qualità" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Valutaci" - }, - "red": { - "message": "Rosso" - }, - "redDislikeButton": { - "message": "Mostra pulsante Non mi piace in rosso" - }, - "relatedVideos": { - "message": "Video correlati" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Rimuovi risultati di ricerca correlati" - }, - "repeat": { - "message": "Ripeti" - }, - "reset": { - "message": "Reimpostazione" - }, - "resetAllSettings": { - "message": "Reimposta tutte le impostazioni" - }, - "resetAllShortcuts": { - "message": "Reimposta tutte le scorciatoie" - }, - "reverse": { - "message": "Inverti" - }, - "rotate": { - "message": "Ruota" - }, - "save": { - "message": "Salva" - }, - "saveAs": { - "message": "Salva come" - }, - "schedule": { - "message": "Programmazione" - }, - "screen": { - "message": "Schermo" - }, - "screenshot": { - "message": "Screenshot" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Ricerca" - }, - "searchBarOnly": { - "message": "Cerca solamente nella barra" - }, - "seekBackward10Seconds": { - "message": "Muovi indietro 10 secondi" - }, - "seekForward10Seconds": { - "message": "Muovi avanti 10 secondi" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Impostazioni" - }, - "settingsSuccessfullyImported": { - "message": "Impostazioni importate con successo" - }, - "shortcuts": { - "message": "Scorciatoie" - }, - "showCardsOnMouseHover": { - "message": "Mostra tessere di fine video al passaggio del puntatore" - }, - "showChannelVideosCount": { - "message": "Mostra contatore visualizzazioni canale" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Riproduzione casuale" - }, - "sidebar": { - "message": "Barra laterale" - }, - "spacebar": { - "message": "Barra spaziatrice" - }, - "squaredUserImages": { - "message": "Immagini utenti squadrate" - }, - "static": { - "message": "Statica" - }, - "statsForNerds": { - "message": "Visualizza statistiche per nerd" - }, - "stop": { - "message": "Arresto" - }, - "style": { - "message": "Stile" - }, - "styles": { - "message": "Stili" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Sottoscrizioni" - }, - "subtitles": { - "message": "Sottotitoli" - }, - "sunset": { - "message": "Tramonto" - }, - "sunsetToSunrise": { - "message": "Dal tramonto all'alba" - }, - "systemPeferenceDark": { - "message": "Preferenza di sistema: scuro" - }, - "systemPeferenceLight": { - "message": "Preferenza di sistema: chiaro" - }, - "teal": { - "message": "Verde acqua" - }, - "textColor": { - "message": "Colore testo" - }, - "themes": { - "message": "Temi" - }, - "thisWillRemoveAllCookies": { - "message": "Questo rimuoverà tutti i cookie" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Questo rimuoverà tutti i cookie di YouTube" - }, - "thisWillResetAllSettings": { - "message": "Questo reimposterà l'intera configurazione" - }, - "thisWillResetAllShortcuts": { - "message": "Questo reimposterà tutte le scorciatoie" - }, - "thumbnails": { - "message": "Miniature" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Dalle ore" - }, - "timeTo": { - "message": "Alle ore" - }, - "todayAt": { - "message": "Oggi alle" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Dis/attiva tessere di fine video" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Chat superiore" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Avvio automatico trailer" - }, - "translations": { - "message": "Traduzioni" - }, - "transparentBackground": { - "message": "Sfondo trasparente" - }, - "trending": { - "message": "In tendenza" - }, - "tryToReloadThePage": { - "message": "Provare a ricaricare la pagina" - }, - "type": { - "message": "Tipologia" - }, - "upNextAutoplay": { - "message": "Avvio automatico prossimo video" - }, - "use24HourFormat": { - "message": "Usa formato a 24 ore" - }, - "version": { - "message": "Numero versione" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "La descrizione del video verrà espansa per ottenere il nome della categoria" - }, - "videoFormats": { - "message": "Formati video" - }, - "videos": { - "message": "Video" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Guarda più tardi" - }, - "watchTime": { - "message": "Tempo di visione" - }, - "whenTabIsChanged": { - "message": "Quando si cambia scheda" - }, - "white": { - "message": "Bianco" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Giallo" - }, - "youtubeHeaderLeft": { - "message": "Intestazione YouTube (sinistra)" - }, - "youtubeHeaderRight": { - "message": "Intestazione YouTube (destra)" - }, - "youtubeHomePage": { - "message": "Pagina iniziale YouTube" - }, - "youtubeLanguage": { - "message": "Lingua YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limita la qualità video a 1080p per il codec h.264" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Al riguardo" + }, + "accept": { + "message": "Accetta" + }, + "activate": { + "message": "Attivo/a" + }, + "activateCaptions": { + "message": "Attiva didascalie" + }, + "activateFullscreen": { + "message": "Attiva schermo intero" + }, + "activated": { + "message": "Attivato/a" + }, + "activatedFeatures": { + "message": "Funzionalità attivate" + }, + "activeFeatures": { + "message": "Funzioni disponibili" + }, + "addScrollToTop": { + "message": "Aggiungi «Scorri in cima»" + }, + "ads": { + "message": "Pubblicità" + }, + "all": { + "message": "Tutte" + }, + "allow": { + "message": "Permetti" + }, + "allow60fps": { + "message": "Permetti 60 fps" + }, + "alwaysActive": { + "message": "Sempre attivo" + }, + "alwaysShowProgressBar": { + "message": "Mostra sempre barra di avanzamento" + }, + "amber": { + "message": "Ambra" + }, + "analyzer": { + "message": "Analizzatore" + }, + "appearance": { + "message": "Aspetto" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formati audio" + }, + "auto": { + "message": "Automatico" + }, + "autoFullscreen": { + "message": "Schermo intero automatico" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausa automatica al cambio scheda" + }, + "autoplay": { + "message": "Avvio automatico" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Backup e reimpostazione" + }, + "baseOnSystemColorScheme": { + "message": "Basato sullo schema colore di sistema" + }, + "belowPlayer": { + "message": "Sotto il lettore" + }, + "black": { + "message": "Nero" + }, + "blacklist": { + "message": "Lista nera" + }, + "blockAll": { + "message": "Blocca tutte" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Blu" + }, + "blueGray": { + "message": "Grigio blu" + }, + "bluelight": { + "message": "Luce blu" + }, + "brown": { + "message": "Marrone" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Versione browser" + }, + "bubbles": { + "message": "Bolle" + }, + "bug": { + "message": "Difetto" + }, + "buttons": { + "message": "Pulsanti" + }, + "cancel": { + "message": "Annulla" + }, + "categories": { + "message": "Categorie" + }, + "channel": { + "message": "Canale" + }, + "channels": { + "message": "Canali" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Appunti" + }, + "codecH264": { + "message": "Codec H.264" + }, + "collapseOfSubscriptionSections": { + "message": "Comprimi sezioni di sottoscrizione" + }, + "collapsed": { + "message": "Compressa/i" + }, + "comments": { + "message": "Commenti" + }, + "confirmationBeforeClosing": { + "message": "Conferma prima della chiusura" + }, + "cookies": { + "message": "Cookie" + }, + "cores": { + "message": "Core" + }, + "cropChapterTitles": { + "message": "Ritaglia titoli dei capitoli" + }, + "customCss": { + "message": "CSS personalizzato" + }, + "customJs": { + "message": "JS personalizzato" + }, + "customMiniPlayer": { + "message": "Mini lettore personalizzato" + }, + "cyan": { + "message": "Ciano" + }, + "dark": { + "message": "Scuro" + }, + "darkTheme": { + "message": "Tema scuro" + }, + "dateAndTime": { + "message": "Data e ora" + }, + "dawn": { + "message": "Albeggio" + }, + "decreasePlaybackSpeed": { + "message": "Riduci velocità di riproduzione" + }, + "decreaseVolume": { + "message": "Diminuisci volume" + }, + "deepOrange": { + "message": "Arancione intenso" + }, + "deepPurple": { + "message": "Viola intenso" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Scheda predefinita" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Cancella cookie YouTube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Descrizione" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Deserto" + }, + "details": { + "message": "Dettagli" + }, + "developerOptions": { + "message": "Opzioni per sviluppatori" + }, + "device": { + "message": "Dispositivo" + }, + "dim": { + "message": "Smorzamento" + }, + "disabled": { + "message": "Disabilitato" + }, + "dislike": { + "message": "Non mi piace" + }, + "doNotChange": { + "message": "Non cambiare" + }, + "donate": { + "message": "Donazione" + }, + "draggable": { + "message": "Trascinabile" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "E-mail" + }, + "empty": { + "message": "Vuota" + }, + "enabled": { + "message": "Abilitato" + }, + "enabledForced": { + "message": "Abilitato (forzato)" + }, + "expanded": { + "message": "Estesa" + }, + "exportSettings": { + "message": "Esporta impostazioni" + }, + "extension": { + "message": "Estensione" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filtri" + }, + "fitToWindow": { + "message": "Adatta alla finestra" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Piè di pagina" + }, + "forceSDR": { + "message": "Forza SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Velocità di riproduzione forzata" + }, + "forcedTheaterMode": { + "message": "Modalità cinema forzata" + }, + "forcedVolume": { + "message": "Volume forzato" + }, + "foundABug": { + "message": "Trovato un difetto?" + }, + "fullWindow": { + "message": "Finestra intera" + }, + "general": { + "message": "Generale" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Vai alla casella di ricerca" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "Miniatura in altà qualità" + }, + "header": { + "message": "Intestazione" + }, + "hidden": { + "message": "Nascosta/i" + }, + "hiddenOnVideoPage": { + "message": "Nascosta nella pagina video" + }, + "hideAnimatedThumbnails": { + "message": "Nascondi miniature animate" + }, + "hideAnnotations": { + "message": "Nascondi annotazioni" + }, + "hideCards": { + "message": "Nascondi tessere di fine video" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Nascondi dettagli" + }, + "hideEndscreen": { + "message": "Nascondi finale video" + }, + "hideFeaturedContent": { + "message": "Nascondi contenuti in primo piano" + }, + "hideFooter": { + "message": "Nascondi piè di pagina" + }, + "hideGradientBottom": { + "message": "Nascondi fondo gradiente" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Nascondi scaletta" + }, + "hideRightButtons": { + "message": "Nascondi pulsanti sulla destra" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Nascondi «Scorri per dettagli»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Nascondi contatore visualizzazioni" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Cronologia" + }, + "home": { + "message": "Pagina iniziale" + }, + "hover": { + "message": "In sospensione" + }, + "hoverOnVideoPage": { + "message": "In sospensione sulla pagine del video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Quanto tempo fa il video è stato caricato" + }, + "icons": { + "message": "Icone" + }, + "iconsOnly": { + "message": "Solo icone" + }, + "importSettings": { + "message": "Importa impostazioni" + }, + "improveLogo": { + "message": "Migliora logo YouTube" + }, + "improvedtubeIconOnYoutube": { + "message": "Icona su YouTube" + }, + "improvedtubeLanguage": { + "message": "Lingua" + }, + "improvedtubeVersion": { + "message": "Versione" + }, + "increasePlaybackSpeed": { + "message": "Incrementa velocità di riproduzione" + }, + "increaseVolume": { + "message": "Aumenta volume" + }, + "indigo": { + "message": "Indaco" + }, + "items": { + "message": "Oggetti" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Lingue" + }, + "legacyYoutube": { + "message": "YouTube versione legacy" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Chiaro" + }, + "lightBlue": { + "message": "Blu chiaro" + }, + "lightGreen": { + "message": "Verde chiaro" + }, + "like": { + "message": "Mi piace" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Numero di Mi piace" + }, + "lime": { + "message": "Lime" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Chat dal vivo" + }, + "liveChatType": { + "message": "Tipologia chat dal vivo" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Normalizzazione rumorosità" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Contrassegna video visti" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Miei colori" + }, + "name": { + "message": "Nome" + }, + "nativeMiniPlayer": { + "message": "Mini lettore nativo" + }, + "new": { + "message": "Nuovo" + }, + "nextVideo": { + "message": "Prossimo video" + }, + "night": { + "message": "Notte" + }, + "noActiveFeatures": { + "message": "Nessuna funzione attivata" + }, + "noOpenVideoTabs": { + "message": "Nessuna scheda video aperta" + }, + "none": { + "message": "Alcuno/a" + }, + "normal": { + "message": "Standard" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Vecchio" + }, + "onAllVideos": { + "message": "Su tutti i video" + }, + "onSubscribedChannels": { + "message": "In canali sottoscritti" + }, + "onlyActiveOnYoutube": { + "message": "Attivo solo su YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Istanza unica di riproduzione attiva" + }, + "orange": { + "message": "Arancione" + }, + "os": { + "message": "Sistema Operativo" + }, + "other": { + "message": "Altro" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Autorizzazioni" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Pianura" + }, + "platform": { + "message": "Piattaforma" + }, + "playPause": { + "message": "Avvio/Pausa" + }, + "playbackSpeed": { + "message": "Velocità di riproduzione" + }, + "player": { + "message": "Lettore" + }, + "playerColor": { + "message": "Colore lettore" + }, + "playerSize": { + "message": "Dimensione lettore" + }, + "playlist": { + "message": "Scaletta" + }, + "playlists": { + "message": "Scalette" + }, + "popupPlayer": { + "message": "Lettore pop-up" + }, + "position": { + "message": "Posizione" + }, + "pressAnyKeyOrScroll": { + "message": "Premere un qualunque tasto o scorrere" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Premere un qualunque tasto o usare rotella del mouse" + }, + "previousVideo": { + "message": "Video precedente" + }, + "primaryColor": { + "message": "Colore primario" + }, + "purple": { + "message": "Viola" + }, + "quality": { + "message": "Qualità" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Valutaci" + }, + "red": { + "message": "Rosso" + }, + "redDislikeButton": { + "message": "Mostra pulsante Non mi piace in rosso" + }, + "relatedVideos": { + "message": "Video correlati" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Rimuovi risultati di ricerca correlati" + }, + "repeat": { + "message": "Ripeti" + }, + "reset": { + "message": "Reimpostazione" + }, + "resetAllSettings": { + "message": "Reimposta tutte le impostazioni" + }, + "resetAllShortcuts": { + "message": "Reimposta tutte le scorciatoie" + }, + "reverse": { + "message": "Inverti" + }, + "rotate": { + "message": "Ruota" + }, + "save": { + "message": "Salva" + }, + "saveAs": { + "message": "Salva come" + }, + "schedule": { + "message": "Programmazione" + }, + "screen": { + "message": "Schermo" + }, + "screenshot": { + "message": "Screenshot" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Ricerca" + }, + "searchBarOnly": { + "message": "Cerca solamente nella barra" + }, + "seekBackward10Seconds": { + "message": "Muovi indietro 10 secondi" + }, + "seekForward10Seconds": { + "message": "Muovi avanti 10 secondi" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Impostazioni" + }, + "settingsSuccessfullyImported": { + "message": "Impostazioni importate con successo" + }, + "shortcuts": { + "message": "Scorciatoie" + }, + "showCardsOnMouseHover": { + "message": "Mostra tessere di fine video al passaggio del puntatore" + }, + "showChannelVideosCount": { + "message": "Mostra contatore visualizzazioni canale" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Riproduzione casuale" + }, + "sidebar": { + "message": "Barra laterale" + }, + "spacebar": { + "message": "Barra spaziatrice" + }, + "squaredUserImages": { + "message": "Immagini utenti squadrate" + }, + "static": { + "message": "Statica" + }, + "statsForNerds": { + "message": "Visualizza statistiche per nerd" + }, + "stop": { + "message": "Arresto" + }, + "style": { + "message": "Stile" + }, + "styles": { + "message": "Stili" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Sottoscrizioni" + }, + "subtitles": { + "message": "Sottotitoli" + }, + "sunset": { + "message": "Tramonto" + }, + "sunsetToSunrise": { + "message": "Dal tramonto all'alba" + }, + "systemPeferenceDark": { + "message": "Preferenza di sistema: scuro" + }, + "systemPeferenceLight": { + "message": "Preferenza di sistema: chiaro" + }, + "teal": { + "message": "Verde acqua" + }, + "textColor": { + "message": "Colore testo" + }, + "themes": { + "message": "Temi" + }, + "thisWillRemoveAllCookies": { + "message": "Questo rimuoverà tutti i cookie" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Questo rimuoverà tutti i cookie di YouTube" + }, + "thisWillResetAllSettings": { + "message": "Questo reimposterà l'intera configurazione" + }, + "thisWillResetAllShortcuts": { + "message": "Questo reimposterà tutte le scorciatoie" + }, + "thumbnails": { + "message": "Miniature" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Dalle ore" + }, + "timeTo": { + "message": "Alle ore" + }, + "todayAt": { + "message": "Oggi alle" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Dis/attiva tessere di fine video" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Chat superiore" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Avvio automatico trailer" + }, + "translations": { + "message": "Traduzioni" + }, + "transparentBackground": { + "message": "Sfondo trasparente" + }, + "trending": { + "message": "In tendenza" + }, + "tryToReloadThePage": { + "message": "Provare a ricaricare la pagina" + }, + "type": { + "message": "Tipologia" + }, + "upNextAutoplay": { + "message": "Avvio automatico prossimo video" + }, + "use24HourFormat": { + "message": "Usa formato a 24 ore" + }, + "version": { + "message": "Numero versione" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "La descrizione del video verrà espansa per ottenere il nome della categoria" + }, + "videoFormats": { + "message": "Formati video" + }, + "videos": { + "message": "Video" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Guarda più tardi" + }, + "watchTime": { + "message": "Tempo di visione" + }, + "whenTabIsChanged": { + "message": "Quando si cambia scheda" + }, + "white": { + "message": "Bianco" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Giallo" + }, + "youtubeHeaderLeft": { + "message": "Intestazione YouTube (sinistra)" + }, + "youtubeHeaderRight": { + "message": "Intestazione YouTube (destra)" + }, + "youtubeHomePage": { + "message": "Pagina iniziale YouTube" + }, + "youtubeLanguage": { + "message": "Lingua YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limita la qualità video a 1080p per il codec h.264" + } } \ No newline at end of file diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 5cd11cc0f..7caed9beb 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -1,986 +1,992 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "このソフトについて" - }, - "accept": { - "message": "了解" - }, - "activate": { - "message": "有効にする" - }, - "activateCaptions": { - "message": "キャプションを有効にする" - }, - "activateFullscreen": { - "message": "全画面にする" - }, - "activated": { - "message": "有効化" - }, - "activatedFeatures": { - "message": "有効化された機能" - }, - "activeFeatures": { - "message": "機能の切り替え" - }, - "addScrollToTop": { - "message": "「一番上にスクロール」のボタンを追加する" - }, - "ads": { - "message": "広告" - }, - "all": { - "message": "すべて" - }, - "allow": { - "message": "許可" - }, - "allow60fps": { - "message": "60fpsを許可する" - }, - "alwaysActive": { - "message": "常に有効" - }, - "alwaysShowProgressBar": { - "message": "常にプログレスバーを表示する" - }, - "amber": { - "message": "アンバー" - }, - "analyzer": { - "message": "分析" - }, - "appearance": { - "message": "外観" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "音声" - }, - "audioFormats": { - "message": "音声形式" - }, - "auto": { - "message": "自動" - }, - "autoFullscreen": { - "message": "自動的に全画面にする" - }, - "autopauseWhenSwitchingTabs": { - "message": "タブ切り替えで自動的に一時停止" - }, - "autoplay": { - "message": "自動再生" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "バックアップとリセット" - }, - "baseOnSystemColorScheme": { - "message": "システムの色に合わせる" - }, - "belowPlayer": { - "message": "プレーヤーの下" - }, - "black": { - "message": "黒" - }, - "blacklist": { - "message": "ブラックリスト" - }, - "blockAll": { - "message": "すべてブロックする" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "青" - }, - "blueGray": { - "message": "青みがかった灰" - }, - "bluelight": { - "message": "ブルーライト" - }, - "brown": { - "message": "茶" - }, - "browser": { - "message": "ブラウザー" - }, - "browserVersion": { - "message": "ブラウザーのバージョン" - }, - "bubbles": { - "message": "バブル" - }, - "bug": { - "message": "バグ" - }, - "buttons": { - "message": "ボタン" - }, - "cancel": { - "message": "キャンセル" - }, - "categories": { - "message": "カテゴリー" - }, - "channel": { - "message": "チャンネル" - }, - "channels": { - "message": "チャンネル" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "クリップボード" - }, - "codecH264": { - "message": "H.264コーデック" - }, - "collapseOfSubscriptionSections": { - "message": "サブスクリプション部分を畳む" - }, - "collapsed": { - "message": "畳む" - }, - "comments": { - "message": "コメント" - }, - "confirmationBeforeClosing": { - "message": "閉じる前に確認する" - }, - "cookies": { - "message": "Cookie" - }, - "cores": { - "message": "コア数" - }, - "cropChapterTitles": { - "message": "チャプターのタイトルをトリミングする" - }, - "customCss": { - "message": "カスタム CSS" - }, - "customJs": { - "message": "カスタム JS" - }, - "customMiniPlayer": { - "message": "カスタムミニプレーヤー" - }, - "cyan": { - "message": "シアン" - }, - "dark": { - "message": "ダーク" - }, - "darkTheme": { - "message": "ダークテーマ" - }, - "dateAndTime": { - "message": "日付と時刻" - }, - "dawn": { - "message": "夜明け" - }, - "decreasePlaybackSpeed": { - "message": "再生速度を下げる" - }, - "decreaseVolume": { - "message": "音量を下げる" - }, - "deepOrange": { - "message": "深いオレンジ" - }, - "deepPurple": { - "message": "深い紫" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "デフォルトのチャンネルタブ" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "YouTube の Cookie を削除する" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "説明" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "砂漠" - }, - "details": { - "message": "詳細" - }, - "developerOptions": { - "message": "開発者向けオプション" - }, - "device": { - "message": "デバイス" - }, - "dim": { - "message": "暗さ" - }, - "disabled": { - "message": "無効" - }, - "dislike": { - "message": "低評価" - }, - "doNotChange": { - "message": "変更しない" - }, - "donate": { - "message": "寄付する" - }, - "draggable": { - "message": "ドラッグ可能にする" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "なし" - }, - "enabled": { - "message": "有効" - }, - "enabledForced": { - "message": "有効 (強制)" - }, - "expanded": { - "message": "広げる" - }, - "exportSettings": { - "message": "設定をエクスポートする" - }, - "extension": { - "message": "拡張" - }, - "file": { - "message": "ファイル" - }, - "filters": { - "message": "フィルター" - }, - "fitToWindow": { - "message": "ウィンドウに合わせる" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "フォント" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "フッター" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "再生速度を指定する" - }, - "forcedTheaterMode": { - "message": "シアターモードにする" - }, - "forcedVolume": { - "message": "音量を指定する" - }, - "foundABug": { - "message": "バグ報告" - }, - "fullWindow": { - "message": "フルウィンドウ" - }, - "general": { - "message": "一般" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "検索ボックスに行く" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "緑" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "HDサムネイル" - }, - "header": { - "message": "ヘッダー" - }, - "hidden": { - "message": "隠す" - }, - "hiddenOnVideoPage": { - "message": "動画ページでは隠す" - }, - "hideAnimatedThumbnails": { - "message": "サムネイルのアニメーションを行わない" - }, - "hideAnnotations": { - "message": "アノテーションを隠す" - }, - "hideCards": { - "message": "カードを隠す" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "詳細を隠す" - }, - "hideEndscreen": { - "message": "再生終了時の画面を隠す" - }, - "hideFeaturedContent": { - "message": "おすすめチャンネルを非表示にする" - }, - "hideFooter": { - "message": "フッターを隠す" - }, - "hideGradientBottom": { - "message": "グラデーションの下部を隠す" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "再生リストを隠す" - }, - "hideRightButtons": { - "message": "右ボタンを隠す" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "「スクロールして詳細を表示」を隠す" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "視聴数を隠す" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "履歴" - }, - "home": { - "message": "ホーム" - }, - "hover": { - "message": "ホバー" - }, - "hoverOnVideoPage": { - "message": "動画ページではホバー" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "動画がアップロードされてからの時間" - }, - "icons": { - "message": "アイコン" - }, - "iconsOnly": { - "message": "アイコンのみ" - }, - "importSettings": { - "message": "設定をインポートする" - }, - "improveLogo": { - "message": "ロゴを改良する" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTubeアイコンをYouTubeに表示する" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube の言語" - }, - "improvedtubeVersion": { - "message": "ImprovedTube のバージョン" - }, - "increasePlaybackSpeed": { - "message": "再生速度を上げる" - }, - "increaseVolume": { - "message": "音量を上げる" - }, - "indigo": { - "message": "インディゴ" - }, - "items": { - "message": "アイテム" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "言語" - }, - "legacyYoutube": { - "message": "古い YouTube にする" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "ライト" - }, - "lightBlue": { - "message": "薄い青" - }, - "lightGreen": { - "message": "薄い緑" - }, - "like": { - "message": "高評価" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "評価" - }, - "lime": { - "message": "ライム" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "リスト" - }, - "liveChat": { - "message": "ライブチャット" - }, - "liveChatType": { - "message": "ライブチャットの種類" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "音量のノーマリゼーション" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "視聴した動画にマークを付ける" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "ミキサー" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "色設定" - }, - "name": { - "message": "名前" - }, - "nativeMiniPlayer": { - "message": "ネイティブミニプレーヤー" - }, - "new": { - "message": "新規" - }, - "nextVideo": { - "message": "次の動画" - }, - "night": { - "message": "夜" - }, - "noActiveFeatures": { - "message": "有効化された機能がありません" - }, - "noOpenVideoTabs": { - "message": "開いている動画タブがありません" - }, - "none": { - "message": "なし" - }, - "normal": { - "message": "標準" - }, - "old": { - "message": "Old" - }, - "onAllVideos": { - "message": "すべて許可する" - }, - "onSubscribedChannels": { - "message": "登録したチャンネルでは許可する" - }, - "onlyActiveOnYoutube": { - "message": "YouTube で有効" - }, - "onlyOnePlayerInstancePlaying": { - "message": "1つのプレーヤーインスタンスのみにする" - }, - "orange": { - "message": "オレンジ" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "その他" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "権限" - }, - "pictureInPicture": { - "message": "ピクチャーインピクチャー" - }, - "pink": { - "message": "ピンク" - }, - "plain": { - "message": "プレーン" - }, - "platform": { - "message": "プラットフォーム" - }, - "playPause": { - "message": "再生/一時停止" - }, - "playbackSpeed": { - "message": "再生速度" - }, - "player": { - "message": "プレーヤー" - }, - "playerColor": { - "message": "プレーヤーの色" - }, - "playerSize": { - "message": "プレーヤーのサイズ" - }, - "playlist": { - "message": "再生リスト" - }, - "playlists": { - "message": "再生リスト" - }, - "popupPlayer": { - "message": "ポップアッププレーヤー" - }, - "position": { - "message": "位置" - }, - "pressAnyKeyOrScroll": { - "message": "任意のキーを押すか、マウスホイールを使用してください" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "任意のキーを押すか、マウスホイールを使用してください" - }, - "previousVideo": { - "message": "前の動画" - }, - "primaryColor": { - "message": "全体の色" - }, - "purple": { - "message": "紫" - }, - "quality": { - "message": "画質" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "評価する" - }, - "red": { - "message": "赤" - }, - "redDislikeButton": { - "message": "低評価ボタンを赤色で表示する" - }, - "relatedVideos": { - "message": "関連動画" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "関連動画を検索結果から削除する" - }, - "repeat": { - "message": "リピート" - }, - "reset": { - "message": "リセット" - }, - "resetAllSettings": { - "message": "すべての設定をリセットする" - }, - "resetAllShortcuts": { - "message": "すべてのショートカットをリセットする" - }, - "reverse": { - "message": "逆順にする" - }, - "rotate": { - "message": "回転" - }, - "save": { - "message": "保存" - }, - "saveAs": { - "message": "別名で保存する" - }, - "schedule": { - "message": "スケジュール" - }, - "screen": { - "message": "スクリーン" - }, - "screenshot": { - "message": "スクリーンショット" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "検索" - }, - "searchBarOnly": { - "message": "検索バーのみ" - }, - "seekBackward10Seconds": { - "message": "10秒戻る" - }, - "seekForward10Seconds": { - "message": "10秒進む" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "設定" - }, - "settingsSuccessfullyImported": { - "message": "設定を正常にインポートしました" - }, - "shortcuts": { - "message": "ショートカット" - }, - "showCardsOnMouseHover": { - "message": "マウスオーバーでカードを表示する" - }, - "showChannelVideosCount": { - "message": "チャンネルの動画数を表示する" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "シャッフル" - }, - "sidebar": { - "message": "サイドバー" - }, - "spacebar": { - "message": "スペースキー" - }, - "squaredUserImages": { - "message": "ユーザー画像を四角にする" - }, - "static": { - "message": "スタティック" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "ステップ" - }, - "stop": { - "message": "停止" - }, - "style": { - "message": "スタイル" - }, - "styles": { - "message": "スタイル" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "登録チャンネル" - }, - "subtitles": { - "message": "サブタイトル" - }, - "sunset": { - "message": "夕焼け" - }, - "sunsetToSunrise": { - "message": "夕焼けから日の出へ" - }, - "systemPeferenceDark": { - "message": "システム設定: ダーク" - }, - "systemPeferenceLight": { - "message": "システム設定: ライト" - }, - "teal": { - "message": "ティール" - }, - "textColor": { - "message": "文字の色" - }, - "themes": { - "message": "テーマ" - }, - "thisWillRemoveAllCookies": { - "message": "これはすべての Cookie を削除します。" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "YouTube のすべての Cookie を削除します" - }, - "thisWillResetAllSettings": { - "message": "すべての設定をリセットします。" - }, - "thisWillResetAllShortcuts": { - "message": "すべてのショートカットをリセットします" - }, - "thumbnails": { - "message": "サムネイル" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "この時間から" - }, - "timeTo": { - "message": "この時間まで" - }, - "todayAt": { - "message": "測定時刻" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "上位チャット" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "トレーラーを自動再生する" - }, - "translations": { - "message": "翻訳" - }, - "transparentBackground": { - "message": "透明な背景" - }, - "trending": { - "message": "急上昇" - }, - "tryToReloadThePage": { - "message": "ページをリロードしてみてください" - }, - "type": { - "message": "種類" - }, - "upNextAutoplay": { - "message": "次の動画を自動再生する" - }, - "use24HourFormat": { - "message": "24時間表示にする" - }, - "version": { - "message": "バージョン" - }, - "video": { - "message": "動画" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "動画の説明はカテゴリ名を取得するために広げられます" - }, - "videoFormats": { - "message": "動画形式" - }, - "videos": { - "message": "動画" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "音量" - }, - "watchLater": { - "message": "後で見る" - }, - "watchTime": { - "message": "視聴時間" - }, - "whenTabIsChanged": { - "message": "タブを変更したとき" - }, - "white": { - "message": "白" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "黄" - }, - "youtubeHeaderLeft": { - "message": "YouTube のヘッダー左" - }, - "youtubeHeaderRight": { - "message": "YouTube のヘッダー右" - }, - "youtubeHomePage": { - "message": "YouTube のホームページ" - }, - "youtubeLanguage": { - "message": "YouTube の言語" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube はH.264コーデックの画質を1080pに制限しています" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "このソフトについて" + }, + "accept": { + "message": "了解" + }, + "activate": { + "message": "有効にする" + }, + "activateCaptions": { + "message": "キャプションを有効にする" + }, + "activateFullscreen": { + "message": "全画面にする" + }, + "activated": { + "message": "有効化" + }, + "activatedFeatures": { + "message": "有効化された機能" + }, + "activeFeatures": { + "message": "機能の切り替え" + }, + "addScrollToTop": { + "message": "「一番上にスクロール」のボタンを追加する" + }, + "ads": { + "message": "広告" + }, + "all": { + "message": "すべて" + }, + "allow": { + "message": "許可" + }, + "allow60fps": { + "message": "60fpsを許可する" + }, + "alwaysActive": { + "message": "常に有効" + }, + "alwaysShowProgressBar": { + "message": "常にプログレスバーを表示する" + }, + "amber": { + "message": "アンバー" + }, + "analyzer": { + "message": "分析" + }, + "appearance": { + "message": "外観" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "音声" + }, + "audioFormats": { + "message": "音声形式" + }, + "auto": { + "message": "自動" + }, + "autoFullscreen": { + "message": "自動的に全画面にする" + }, + "autopauseWhenSwitchingTabs": { + "message": "タブ切り替えで自動的に一時停止" + }, + "autoplay": { + "message": "自動再生" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "バックアップとリセット" + }, + "baseOnSystemColorScheme": { + "message": "システムの色に合わせる" + }, + "belowPlayer": { + "message": "プレーヤーの下" + }, + "black": { + "message": "黒" + }, + "blacklist": { + "message": "ブラックリスト" + }, + "blockAll": { + "message": "すべてブロックする" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "青" + }, + "blueGray": { + "message": "青みがかった灰" + }, + "bluelight": { + "message": "ブルーライト" + }, + "brown": { + "message": "茶" + }, + "browser": { + "message": "ブラウザー" + }, + "browserVersion": { + "message": "ブラウザーのバージョン" + }, + "bubbles": { + "message": "バブル" + }, + "bug": { + "message": "バグ" + }, + "buttons": { + "message": "ボタン" + }, + "cancel": { + "message": "キャンセル" + }, + "categories": { + "message": "カテゴリー" + }, + "channel": { + "message": "チャンネル" + }, + "channels": { + "message": "チャンネル" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "クリップボード" + }, + "codecH264": { + "message": "H.264コーデック" + }, + "collapseOfSubscriptionSections": { + "message": "サブスクリプション部分を畳む" + }, + "collapsed": { + "message": "畳む" + }, + "comments": { + "message": "コメント" + }, + "confirmationBeforeClosing": { + "message": "閉じる前に確認する" + }, + "cookies": { + "message": "Cookie" + }, + "cores": { + "message": "コア数" + }, + "cropChapterTitles": { + "message": "チャプターのタイトルをトリミングする" + }, + "customCss": { + "message": "カスタム CSS" + }, + "customJs": { + "message": "カスタム JS" + }, + "customMiniPlayer": { + "message": "カスタムミニプレーヤー" + }, + "cyan": { + "message": "シアン" + }, + "dark": { + "message": "ダーク" + }, + "darkTheme": { + "message": "ダークテーマ" + }, + "dateAndTime": { + "message": "日付と時刻" + }, + "dawn": { + "message": "夜明け" + }, + "decreasePlaybackSpeed": { + "message": "再生速度を下げる" + }, + "decreaseVolume": { + "message": "音量を下げる" + }, + "deepOrange": { + "message": "深いオレンジ" + }, + "deepPurple": { + "message": "深い紫" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "デフォルトのチャンネルタブ" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "YouTube の Cookie を削除する" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "説明" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "砂漠" + }, + "details": { + "message": "詳細" + }, + "developerOptions": { + "message": "開発者向けオプション" + }, + "device": { + "message": "デバイス" + }, + "dim": { + "message": "暗さ" + }, + "disabled": { + "message": "無効" + }, + "dislike": { + "message": "低評価" + }, + "doNotChange": { + "message": "変更しない" + }, + "donate": { + "message": "寄付する" + }, + "draggable": { + "message": "ドラッグ可能にする" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "なし" + }, + "enabled": { + "message": "有効" + }, + "enabledForced": { + "message": "有効 (強制)" + }, + "expanded": { + "message": "広げる" + }, + "exportSettings": { + "message": "設定をエクスポートする" + }, + "extension": { + "message": "拡張" + }, + "file": { + "message": "ファイル" + }, + "filters": { + "message": "フィルター" + }, + "fitToWindow": { + "message": "ウィンドウに合わせる" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "フォント" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "フッター" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "再生速度を指定する" + }, + "forcedTheaterMode": { + "message": "シアターモードにする" + }, + "forcedVolume": { + "message": "音量を指定する" + }, + "foundABug": { + "message": "バグ報告" + }, + "fullWindow": { + "message": "フルウィンドウ" + }, + "general": { + "message": "一般" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "検索ボックスに行く" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "緑" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HDサムネイル" + }, + "header": { + "message": "ヘッダー" + }, + "hidden": { + "message": "隠す" + }, + "hiddenOnVideoPage": { + "message": "動画ページでは隠す" + }, + "hideAnimatedThumbnails": { + "message": "サムネイルのアニメーションを行わない" + }, + "hideAnnotations": { + "message": "アノテーションを隠す" + }, + "hideCards": { + "message": "カードを隠す" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "詳細を隠す" + }, + "hideEndscreen": { + "message": "再生終了時の画面を隠す" + }, + "hideFeaturedContent": { + "message": "おすすめチャンネルを非表示にする" + }, + "hideFooter": { + "message": "フッターを隠す" + }, + "hideGradientBottom": { + "message": "グラデーションの下部を隠す" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "再生リストを隠す" + }, + "hideRightButtons": { + "message": "右ボタンを隠す" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "「スクロールして詳細を表示」を隠す" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "視聴数を隠す" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "履歴" + }, + "home": { + "message": "ホーム" + }, + "hover": { + "message": "ホバー" + }, + "hoverOnVideoPage": { + "message": "動画ページではホバー" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "動画がアップロードされてからの時間" + }, + "icons": { + "message": "アイコン" + }, + "iconsOnly": { + "message": "アイコンのみ" + }, + "importSettings": { + "message": "設定をインポートする" + }, + "improveLogo": { + "message": "ロゴを改良する" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTubeアイコンをYouTubeに表示する" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube の言語" + }, + "improvedtubeVersion": { + "message": "ImprovedTube のバージョン" + }, + "increasePlaybackSpeed": { + "message": "再生速度を上げる" + }, + "increaseVolume": { + "message": "音量を上げる" + }, + "indigo": { + "message": "インディゴ" + }, + "items": { + "message": "アイテム" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "言語" + }, + "legacyYoutube": { + "message": "古い YouTube にする" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "ライト" + }, + "lightBlue": { + "message": "薄い青" + }, + "lightGreen": { + "message": "薄い緑" + }, + "like": { + "message": "高評価" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "評価" + }, + "lime": { + "message": "ライム" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "リスト" + }, + "liveChat": { + "message": "ライブチャット" + }, + "liveChatType": { + "message": "ライブチャットの種類" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "音量のノーマリゼーション" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "視聴した動画にマークを付ける" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "ミキサー" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "色設定" + }, + "name": { + "message": "名前" + }, + "nativeMiniPlayer": { + "message": "ネイティブミニプレーヤー" + }, + "new": { + "message": "新規" + }, + "nextVideo": { + "message": "次の動画" + }, + "night": { + "message": "夜" + }, + "noActiveFeatures": { + "message": "有効化された機能がありません" + }, + "noOpenVideoTabs": { + "message": "開いている動画タブがありません" + }, + "none": { + "message": "なし" + }, + "normal": { + "message": "標準" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Old" + }, + "onAllVideos": { + "message": "すべて許可する" + }, + "onSubscribedChannels": { + "message": "登録したチャンネルでは許可する" + }, + "onlyActiveOnYoutube": { + "message": "YouTube で有効" + }, + "onlyOnePlayerInstancePlaying": { + "message": "1つのプレーヤーインスタンスのみにする" + }, + "orange": { + "message": "オレンジ" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "その他" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "権限" + }, + "pictureInPicture": { + "message": "ピクチャーインピクチャー" + }, + "pink": { + "message": "ピンク" + }, + "plain": { + "message": "プレーン" + }, + "platform": { + "message": "プラットフォーム" + }, + "playPause": { + "message": "再生/一時停止" + }, + "playbackSpeed": { + "message": "再生速度" + }, + "player": { + "message": "プレーヤー" + }, + "playerColor": { + "message": "プレーヤーの色" + }, + "playerSize": { + "message": "プレーヤーのサイズ" + }, + "playlist": { + "message": "再生リスト" + }, + "playlists": { + "message": "再生リスト" + }, + "popupPlayer": { + "message": "ポップアッププレーヤー" + }, + "position": { + "message": "位置" + }, + "pressAnyKeyOrScroll": { + "message": "任意のキーを押すか、マウスホイールを使用してください" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "任意のキーを押すか、マウスホイールを使用してください" + }, + "previousVideo": { + "message": "前の動画" + }, + "primaryColor": { + "message": "全体の色" + }, + "purple": { + "message": "紫" + }, + "quality": { + "message": "画質" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "評価する" + }, + "red": { + "message": "赤" + }, + "redDislikeButton": { + "message": "低評価ボタンを赤色で表示する" + }, + "relatedVideos": { + "message": "関連動画" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "関連動画を検索結果から削除する" + }, + "repeat": { + "message": "リピート" + }, + "reset": { + "message": "リセット" + }, + "resetAllSettings": { + "message": "すべての設定をリセットする" + }, + "resetAllShortcuts": { + "message": "すべてのショートカットをリセットする" + }, + "reverse": { + "message": "逆順にする" + }, + "rotate": { + "message": "回転" + }, + "save": { + "message": "保存" + }, + "saveAs": { + "message": "別名で保存する" + }, + "schedule": { + "message": "スケジュール" + }, + "screen": { + "message": "スクリーン" + }, + "screenshot": { + "message": "スクリーンショット" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "検索" + }, + "searchBarOnly": { + "message": "検索バーのみ" + }, + "seekBackward10Seconds": { + "message": "10秒戻る" + }, + "seekForward10Seconds": { + "message": "10秒進む" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "設定" + }, + "settingsSuccessfullyImported": { + "message": "設定を正常にインポートしました" + }, + "shortcuts": { + "message": "ショートカット" + }, + "showCardsOnMouseHover": { + "message": "マウスオーバーでカードを表示する" + }, + "showChannelVideosCount": { + "message": "チャンネルの動画数を表示する" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "シャッフル" + }, + "sidebar": { + "message": "サイドバー" + }, + "spacebar": { + "message": "スペースキー" + }, + "squaredUserImages": { + "message": "ユーザー画像を四角にする" + }, + "static": { + "message": "スタティック" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "ステップ" + }, + "stop": { + "message": "停止" + }, + "style": { + "message": "スタイル" + }, + "styles": { + "message": "スタイル" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "登録チャンネル" + }, + "subtitles": { + "message": "サブタイトル" + }, + "sunset": { + "message": "夕焼け" + }, + "sunsetToSunrise": { + "message": "夕焼けから日の出へ" + }, + "systemPeferenceDark": { + "message": "システム設定: ダーク" + }, + "systemPeferenceLight": { + "message": "システム設定: ライト" + }, + "teal": { + "message": "ティール" + }, + "textColor": { + "message": "文字の色" + }, + "themes": { + "message": "テーマ" + }, + "thisWillRemoveAllCookies": { + "message": "これはすべての Cookie を削除します。" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "YouTube のすべての Cookie を削除します" + }, + "thisWillResetAllSettings": { + "message": "すべての設定をリセットします。" + }, + "thisWillResetAllShortcuts": { + "message": "すべてのショートカットをリセットします" + }, + "thumbnails": { + "message": "サムネイル" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "この時間から" + }, + "timeTo": { + "message": "この時間まで" + }, + "todayAt": { + "message": "測定時刻" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "上位チャット" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "トレーラーを自動再生する" + }, + "translations": { + "message": "翻訳" + }, + "transparentBackground": { + "message": "透明な背景" + }, + "trending": { + "message": "急上昇" + }, + "tryToReloadThePage": { + "message": "ページをリロードしてみてください" + }, + "type": { + "message": "種類" + }, + "upNextAutoplay": { + "message": "次の動画を自動再生する" + }, + "use24HourFormat": { + "message": "24時間表示にする" + }, + "version": { + "message": "バージョン" + }, + "video": { + "message": "動画" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "動画の説明はカテゴリ名を取得するために広げられます" + }, + "videoFormats": { + "message": "動画形式" + }, + "videos": { + "message": "動画" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "音量" + }, + "watchLater": { + "message": "後で見る" + }, + "watchTime": { + "message": "視聴時間" + }, + "whenTabIsChanged": { + "message": "タブを変更したとき" + }, + "white": { + "message": "白" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "黄" + }, + "youtubeHeaderLeft": { + "message": "YouTube のヘッダー左" + }, + "youtubeHeaderRight": { + "message": "YouTube のヘッダー右" + }, + "youtubeHomePage": { + "message": "YouTube のホームページ" + }, + "youtubeLanguage": { + "message": "YouTube の言語" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube はH.264コーデックの画質を1080pに制限しています" + } } \ No newline at end of file diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 29a6d0177..3560eae45 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -1,983 +1,989 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "정보" - }, - "accept": { - "message": "동의" - }, - "activate": { - "message": "활성화" - }, - "activateCaptions": { - "message": "자막 활성화" - }, - "activateFullscreen": { - "message": "전체화면 활성화" - }, - "activated": { - "message": "활성화됨" - }, - "activatedFeatures": { - "message": "활성화된 기능" - }, - "activeFeatures": { - "message": "활성 기능" - }, - "addScrollToTop": { - "message": "<<맨위로>> 추가" - }, - "ads": { - "message": "광고" - }, - "all": { - "message": "모두" - }, - "allow": { - "message": "허용" - }, - "allow60fps": { - "message": "60에프피에스(fps) 허용" - }, - "alwaysActive": { - "message": "항상 활성화" - }, - "alwaysShowProgressBar": { - "message": "재생 진행상태(Progress Bar) 항상 표시" - }, - "amber": { - "message": "호박색" - }, - "analyzer": { - "message": "분석" - }, - "appearance": { - "message": "외관" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "오디오" - }, - "audioFormats": { - "message": "오디오 형식" - }, - "auto": { - "message": "자동" - }, - "autoFullscreen": { - "message": "자동 전체화면" - }, - "autopauseWhenSwitchingTabs": { - "message": "탭전환시 자동 일시정지" - }, - "autoplay": { - "message": "자동재생" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "백업 & 리셋" - }, - "baseOnSystemColorScheme": { - "message": "시스템 색 구성표 기반" - }, - "belowPlayer": { - "message": "플레이어 아래" - }, - "black": { - "message": "검정" - }, - "blacklist": { - "message": "블랙리스트" - }, - "blockAll": { - "message": "모두 차단" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "파랑" - }, - "blueGray": { - "message": "블루그레이" - }, - "bluelight": { - "message": "블루라이트" - }, - "brown": { - "message": "갈색" - }, - "browser": { - "message": "브라우저" - }, - "browserVersion": { - "message": "브라우저 버전" - }, - "bubbles": { - "message": "버블" - }, - "bug": { - "message": "버그" - }, - "buttons": { - "message": "버튼" - }, - "cancel": { - "message": "취소" - }, - "categories": { - "message": "카테고리" - }, - "channel": { - "message": "채널" - }, - "channels": { - "message": "채널" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "클립보드" - }, - "codecH264": { - "message": "코덱 h.264" - }, - "collapseOfSubscriptionSections": { - "message": "구독섹션 축소" - }, - "collapsed": { - "message": "축소됨" - }, - "comments": { - "message": "댓글" - }, - "confirmationBeforeClosing": { - "message": "닫기전에 확인하기" - }, - "cookies": { - "message": "쿠키" - }, - "cores": { - "message": "코어" - }, - "cropChapterTitles": { - "message": "제목 자르기" - }, - "customCss": { - "message": "사용자 지정 캐스캐이팅 스타일 시트(CSS)" - }, - "customJs": { - "message": "사용자 지정 자바스크립트(JS)" - }, - "customMiniPlayer": { - "message": "커스텀 미니플레이어" - }, - "cyan": { - "message": "옥색" - }, - "dark": { - "message": "다크" - }, - "darkTheme": { - "message": "다크 테마" - }, - "dateAndTime": { - "message": "날짜 & 시간" - }, - "dawn": { - "message": "석양" - }, - "decreasePlaybackSpeed": { - "message": "되감기 속도 감소" - }, - "decreaseVolume": { - "message": "볼륨 감소" - }, - "deepOrange": { - "message": "진한 주황" - }, - "deepPurple": { - "message": "진한 보라" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "기본 채널 탭" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "유튜브 쿠키 삭제" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "설명" - }, - "description_ext": { - "message": "유튜브를 깔끌하고 스마트하게 만들어줍니다! 유튜브 비디오 내 컬러, 광고제거, 볼륨, 배속, 채널 툴, 스타일, HD, 광고성 블록, 태그, 키워드, 재생목록" - }, - "desert": { - "message": "사막" - }, - "details": { - "message": "자세히" - }, - "developerOptions": { - "message": "개발자 옵션" - }, - "device": { - "message": "디바이스" - }, - "dim": { - "message": "어둡게" - }, - "disabled": { - "message": "비활성화" - }, - "dislike": { - "message": "싫어요" - }, - "doNotChange": { - "message": "바꾸지 않음" - }, - "donate": { - "message": "후원하기" - }, - "draggable": { - "message": "드래그 가능" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "이메일" - }, - "empty": { - "message": "비어있음" - }, - "enabled": { - "message": "활성화" - }, - "enabledForced": { - "message": "강제로 활성화" - }, - "expanded": { - "message": "확장" - }, - "exportSettings": { - "message": "설정 내보내기" - }, - "extension": { - "message": "확대" - }, - "file": { - "message": "파일" - }, - "filters": { - "message": "필터" - }, - "fitToWindow": { - "message": "창크기에 맞추기" - }, - "flash": { - "message": "플래시" - }, - "font": { - "message": "글꼴" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "하단" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "되감기 속도 강제설정" - }, - "forcedTheaterMode": { - "message": "강제 영화관 모드" - }, - "forcedVolume": { - "message": "볼륨 강제설정" - }, - "foundABug": { - "message": "버그신고" - }, - "fullWindow": { - "message": "전체 화면" - }, - "general": { - "message": "일반" - }, - "github": { - "message": "깃허브(GitHub)" - }, - "goToSearchBox": { - "message": "검색창으로 이동" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "그래픽 처리 장치" - }, - "green": { - "message": "초록" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "HD 썸네일" - }, - "header": { - "message": "헤더" - }, - "hidden": { - "message": "숨김" - }, - "hiddenOnVideoPage": { - "message": "비디오 페이지 숨기기" - }, - "hideAnimatedThumbnails": { - "message": "썸네일 애니메이션 숨기기" - }, - "hideAnnotations": { - "message": "설명 숨기기" - }, - "hideCards": { - "message": "카드 숨기기" - }, - "hideCountryCode": { - "message": "국가코드 숨기기" - }, - "hideDate": { - "message": "날짜 숨기기" - }, - "hideDetails": { - "message": "상세설명 숨기기" - }, - "hideEndscreen": { - "message": "종료후 화면 숨기기" - }, - "hideFeaturedContent": { - "message": "추천 영상 숨기기" - }, - "hideFooter": { - "message": "하단 숨기기" - }, - "hideGradientBottom": { - "message": "그라데이션 맨 아래로 숨기기" - }, - "hideMoreButton": { - "message": "\"더보기\" 버튼 숨기기" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "재생 목록 숨기기" - }, - "hideRightButtons": { - "message": "오른쪽 버튼 숨기기" - }, - "hideSaveButton": { - "message": "\"저장\" 버튼 숨기기" - }, - "hideScrollForDetails": { - "message": "«스크롤 하여 자세한 설명» 숨기기" - }, - "hideShareButton": { - "message": "\"공유\" 버튼 숨기기" - }, - "hideSkipOverlay": { - "message": "\"오버레이 건너뛰기\" 숨기기" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "조회수 숨기기" - }, - "hideVoiceSearchButton": { - "message": "\"음성으로 찾기\" 버튼 숨기기" - }, - "high": { - "message": "High" - }, - "history": { - "message": "히스토리" - }, - "home": { - "message": "홈" - }, - "hover": { - "message": "띄우기" - }, - "hoverOnVideoPage": { - "message": "비디오 페이지 띄우기" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "업로드 시기" - }, - "icons": { - "message": "아이콘" - }, - "iconsOnly": { - "message": "아이콘만" - }, - "importSettings": { - "message": "설정 불러오기" - }, - "improveLogo": { - "message": "향상된 로고" - }, - "improvedtubeIconOnYoutube": { - "message": "향상된 유튜브 아이콘" - }, - "improvedtubeLanguage": { - "message": "향상된 유튜브 언어" - }, - "improvedtubeVersion": { - "message": "향상된 유튜브 버전" - }, - "increasePlaybackSpeed": { - "message": "되감기 속도 증가" - }, - "increaseVolume": { - "message": "볼륨 증가" - }, - "indigo": { - "message": "남색" - }, - "items": { - "message": "요소" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "언어" - }, - "legacyYoutube": { - "message": "레거시 유튜브" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "밝게" - }, - "lightBlue": { - "message": "연파랑" - }, - "lightGreen": { - "message": "연초록" - }, - "like": { - "message": "좋아요" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "좋아요" - }, - "lime": { - "message": "라임" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "리스트" - }, - "liveChat": { - "message": "실시간 채팅" - }, - "liveChatType": { - "message": "실시간 채팅 유형" - }, - "location": { - "message": "지역" - }, - "loudnessNormalization": { - "message": "볼륨 자동조정" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "시청한 영상 표시" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "믹서" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "내 컬러" - }, - "name": { - "message": "이름" - }, - "nativeMiniPlayer": { - "message": "네이티브 미니플레이어" - }, - "new": { - "message": "새로운 소식" - }, - "nextVideo": { - "message": "다음 영상" - }, - "night": { - "message": "저녘" - }, - "noActiveFeatures": { - "message": "활성 기능 없음" - }, - "noOpenVideoTabs": { - "message": "열린 비디오 탭 없음" - }, - "none": { - "message": "없음" - }, - "normal": { - "message": "기본" - }, - "old": { - "message": "오래됨" - }, - "onAllVideos": { - "message": "모든 비디오" - }, - "onSubscribedChannels": { - "message": "구독한 채널" - }, - "onlyActiveOnYoutube": { - "message": "유튜브만 활성화" - }, - "onlyOnePlayerInstancePlaying": { - "message": "하나의 플레이어만 재생" - }, - "orange": { - "message": "주황" - }, - "os": { - "message": "운영체제" - }, - "other": { - "message": "기타" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "권한" - }, - "pictureInPicture": { - "message": "픽처 인 픽처(PIP) 재생" - }, - "pink": { - "message": "분홍" - }, - "plain": { - "message": "무색" - }, - "platform": { - "message": "플랫폼" - }, - "playPause": { - "message": "재생 / 일시정지" - }, - "playbackSpeed": { - "message": "되감기 속도" - }, - "player": { - "message": "플레이어" - }, - "playerColor": { - "message": "플레이어 컬러" - }, - "playerSize": { - "message": "플레이어 크기" - }, - "playlist": { - "message": "플레이리스트" - }, - "playlists": { - "message": "플레이리스트" - }, - "popupPlayer": { - "message": "팝업 플레이어" - }, - "position": { - "message": "위치" - }, - "pressAnyKeyOrScroll": { - "message": "사용할 단축키 또는 마우스 휠을 누르세요." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "사용할 단축키 또는 마우스 휠을 누르세요." - }, - "previousVideo": { - "message": "이전 영상" - }, - "primaryColor": { - "message": "주 색상" - }, - "purple": { - "message": "보라" - }, - "quality": { - "message": "퀄리티" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "램" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "평가하기" - }, - "red": { - "message": "빨강" - }, - "relatedVideos": { - "message": "관련 영상" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "관련 검색결과 제거" - }, - "repeat": { - "message": "반복" - }, - "reset": { - "message": "리셋" - }, - "resetAllSettings": { - "message": "모든 설정 리셋" - }, - "resetAllShortcuts": { - "message": "모든 단축키 리셋" - }, - "reverse": { - "message": "반대로" - }, - "rotate": { - "message": "회전" - }, - "save": { - "message": "저장" - }, - "saveAs": { - "message": "다른이름으로 저장" - }, - "schedule": { - "message": "스케줄" - }, - "screen": { - "message": "스크린" - }, - "screenshot": { - "message": "스크린샷" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "검색" - }, - "searchBarOnly": { - "message": "검색창만" - }, - "seekBackward10Seconds": { - "message": "뒤로 10초" - }, - "seekForward10Seconds": { - "message": "앞으로 10초" - }, - "seekNextChapter": { - "message": "다음 챕터 보기" - }, - "seekPreviousChapter": { - "message": "이전 챕터 보기" - }, - "settings": { - "message": "설정" - }, - "settingsSuccessfullyImported": { - "message": "설정 내보내기 완료" - }, - "shortcuts": { - "message": "단축키" - }, - "showCardsOnMouseHover": { - "message": "마우스 올릴 때 카드보기" - }, - "showChannelVideosCount": { - "message": "채널의 비디오수 표시" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "셔플" - }, - "sidebar": { - "message": "사이드바" - }, - "spacebar": { - "message": "스페이스바" - }, - "squaredUserImages": { - "message": "정사각형 프로필사진" - }, - "static": { - "message": "고정" - }, - "statsForNerds": { - "message": "너드 통계 표시" - }, - "step": { - "message": "스텝" - }, - "stop": { - "message": "정지" - }, - "style": { - "message": "스타일" - }, - "styles": { - "message": "스타일" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "구독" - }, - "subtitles": { - "message": "자막" - }, - "sunset": { - "message": "일몰" - }, - "sunsetToSunrise": { - "message": "일몰부터 일출까지" - }, - "systemPeferenceDark": { - "message": "개인 설정: 다크" - }, - "systemPeferenceLight": { - "message": "개인 설정: 라이트" - }, - "teal": { - "message": "청록" - }, - "textColor": { - "message": "텍스트 색상" - }, - "themes": { - "message": "테마" - }, - "thisWillRemoveAllCookies": { - "message": "모든 쿠키를 삭제합니다." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "모든 유튜브 쿠키를 삭제합니다." - }, - "thisWillResetAllSettings": { - "message": "모든 설정을 초기화 합니다." - }, - "thisWillResetAllShortcuts": { - "message": "모든 단축키를 초기화 합니다." - }, - "thumbnails": { - "message": "썸네일" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "다음시간 부터" - }, - "timeTo": { - "message": "다음시간 까지" - }, - "todayAt": { - "message": "오늘의" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "토글 카드" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "탑 챗" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "트레일러 자동재생" - }, - "translations": { - "message": "번역" - }, - "transparentBackground": { - "message": "투명한 배경" - }, - "trending": { - "message": "인기" - }, - "tryToReloadThePage": { - "message": "새로고침을 시도하십시오" - }, - "type": { - "message": "타입" - }, - "upNextAutoplay": { - "message": "다음영상 자동재생" - }, - "use24HourFormat": { - "message": "24시간 형식 사용" - }, - "version": { - "message": "버젼" - }, - "video": { - "message": "영상" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "카테고리의 이름을 얻기 위해 비디오 설명이 확장됩니다" - }, - "videoFormats": { - "message": "비디오 형식" - }, - "videos": { - "message": "비디오" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "음량" - }, - "watchLater": { - "message": "나중에 보기" - }, - "watchTime": { - "message": "시간 보기" - }, - "whenTabIsChanged": { - "message": "탭이 바뀔때" - }, - "white": { - "message": "하양" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "노랑" - }, - "youtubeHeaderLeft": { - "message": "유튜브 헤더 (왼쪽)" - }, - "youtubeHeaderRight": { - "message": "유튜브 헤더 (오른쪽)" - }, - "youtubeHomePage": { - "message": "유튜브 홈페이지" - }, - "youtubeLanguage": { - "message": "유튜브 언어" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "유튜브는 h.264 코덱에서 비디오 품질을 1080p로 제한합니다" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "정보" + }, + "accept": { + "message": "동의" + }, + "activate": { + "message": "활성화" + }, + "activateCaptions": { + "message": "자막 활성화" + }, + "activateFullscreen": { + "message": "전체화면 활성화" + }, + "activated": { + "message": "활성화됨" + }, + "activatedFeatures": { + "message": "활성화된 기능" + }, + "activeFeatures": { + "message": "활성 기능" + }, + "addScrollToTop": { + "message": "<<맨위로>> 추가" + }, + "ads": { + "message": "광고" + }, + "all": { + "message": "모두" + }, + "allow": { + "message": "허용" + }, + "allow60fps": { + "message": "60에프피에스(fps) 허용" + }, + "alwaysActive": { + "message": "항상 활성화" + }, + "alwaysShowProgressBar": { + "message": "재생 진행상태(Progress Bar) 항상 표시" + }, + "amber": { + "message": "호박색" + }, + "analyzer": { + "message": "분석" + }, + "appearance": { + "message": "외관" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "오디오" + }, + "audioFormats": { + "message": "오디오 형식" + }, + "auto": { + "message": "자동" + }, + "autoFullscreen": { + "message": "자동 전체화면" + }, + "autopauseWhenSwitchingTabs": { + "message": "탭전환시 자동 일시정지" + }, + "autoplay": { + "message": "자동재생" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "백업 & 리셋" + }, + "baseOnSystemColorScheme": { + "message": "시스템 색 구성표 기반" + }, + "belowPlayer": { + "message": "플레이어 아래" + }, + "black": { + "message": "검정" + }, + "blacklist": { + "message": "블랙리스트" + }, + "blockAll": { + "message": "모두 차단" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "파랑" + }, + "blueGray": { + "message": "블루그레이" + }, + "bluelight": { + "message": "블루라이트" + }, + "brown": { + "message": "갈색" + }, + "browser": { + "message": "브라우저" + }, + "browserVersion": { + "message": "브라우저 버전" + }, + "bubbles": { + "message": "버블" + }, + "bug": { + "message": "버그" + }, + "buttons": { + "message": "버튼" + }, + "cancel": { + "message": "취소" + }, + "categories": { + "message": "카테고리" + }, + "channel": { + "message": "채널" + }, + "channels": { + "message": "채널" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "클립보드" + }, + "codecH264": { + "message": "코덱 h.264" + }, + "collapseOfSubscriptionSections": { + "message": "구독섹션 축소" + }, + "collapsed": { + "message": "축소됨" + }, + "comments": { + "message": "댓글" + }, + "confirmationBeforeClosing": { + "message": "닫기전에 확인하기" + }, + "cookies": { + "message": "쿠키" + }, + "cores": { + "message": "코어" + }, + "cropChapterTitles": { + "message": "제목 자르기" + }, + "customCss": { + "message": "사용자 지정 캐스캐이팅 스타일 시트(CSS)" + }, + "customJs": { + "message": "사용자 지정 자바스크립트(JS)" + }, + "customMiniPlayer": { + "message": "커스텀 미니플레이어" + }, + "cyan": { + "message": "옥색" + }, + "dark": { + "message": "다크" + }, + "darkTheme": { + "message": "다크 테마" + }, + "dateAndTime": { + "message": "날짜 & 시간" + }, + "dawn": { + "message": "석양" + }, + "decreasePlaybackSpeed": { + "message": "되감기 속도 감소" + }, + "decreaseVolume": { + "message": "볼륨 감소" + }, + "deepOrange": { + "message": "진한 주황" + }, + "deepPurple": { + "message": "진한 보라" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "기본 채널 탭" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "유튜브 쿠키 삭제" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "설명" + }, + "description_ext": { + "message": "유튜브를 깔끌하고 스마트하게 만들어줍니다! 유튜브 비디오 내 컬러, 광고제거, 볼륨, 배속, 채널 툴, 스타일, HD, 광고성 블록, 태그, 키워드, 재생목록" + }, + "desert": { + "message": "사막" + }, + "details": { + "message": "자세히" + }, + "developerOptions": { + "message": "개발자 옵션" + }, + "device": { + "message": "디바이스" + }, + "dim": { + "message": "어둡게" + }, + "disabled": { + "message": "비활성화" + }, + "dislike": { + "message": "싫어요" + }, + "doNotChange": { + "message": "바꾸지 않음" + }, + "donate": { + "message": "후원하기" + }, + "draggable": { + "message": "드래그 가능" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "이메일" + }, + "empty": { + "message": "비어있음" + }, + "enabled": { + "message": "활성화" + }, + "enabledForced": { + "message": "강제로 활성화" + }, + "expanded": { + "message": "확장" + }, + "exportSettings": { + "message": "설정 내보내기" + }, + "extension": { + "message": "확대" + }, + "file": { + "message": "파일" + }, + "filters": { + "message": "필터" + }, + "fitToWindow": { + "message": "창크기에 맞추기" + }, + "flash": { + "message": "플래시" + }, + "font": { + "message": "글꼴" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "하단" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "되감기 속도 강제설정" + }, + "forcedTheaterMode": { + "message": "강제 영화관 모드" + }, + "forcedVolume": { + "message": "볼륨 강제설정" + }, + "foundABug": { + "message": "버그신고" + }, + "fullWindow": { + "message": "전체 화면" + }, + "general": { + "message": "일반" + }, + "github": { + "message": "깃허브(GitHub)" + }, + "goToSearchBox": { + "message": "검색창으로 이동" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "그래픽 처리 장치" + }, + "green": { + "message": "초록" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD 썸네일" + }, + "header": { + "message": "헤더" + }, + "hidden": { + "message": "숨김" + }, + "hiddenOnVideoPage": { + "message": "비디오 페이지 숨기기" + }, + "hideAnimatedThumbnails": { + "message": "썸네일 애니메이션 숨기기" + }, + "hideAnnotations": { + "message": "설명 숨기기" + }, + "hideCards": { + "message": "카드 숨기기" + }, + "hideCountryCode": { + "message": "국가코드 숨기기" + }, + "hideDate": { + "message": "날짜 숨기기" + }, + "hideDetails": { + "message": "상세설명 숨기기" + }, + "hideEndscreen": { + "message": "종료후 화면 숨기기" + }, + "hideFeaturedContent": { + "message": "추천 영상 숨기기" + }, + "hideFooter": { + "message": "하단 숨기기" + }, + "hideGradientBottom": { + "message": "그라데이션 맨 아래로 숨기기" + }, + "hideMoreButton": { + "message": "\"더보기\" 버튼 숨기기" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "재생 목록 숨기기" + }, + "hideRightButtons": { + "message": "오른쪽 버튼 숨기기" + }, + "hideSaveButton": { + "message": "\"저장\" 버튼 숨기기" + }, + "hideScrollForDetails": { + "message": "«스크롤 하여 자세한 설명» 숨기기" + }, + "hideShareButton": { + "message": "\"공유\" 버튼 숨기기" + }, + "hideSkipOverlay": { + "message": "\"오버레이 건너뛰기\" 숨기기" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "조회수 숨기기" + }, + "hideVoiceSearchButton": { + "message": "\"음성으로 찾기\" 버튼 숨기기" + }, + "high": { + "message": "High" + }, + "history": { + "message": "히스토리" + }, + "home": { + "message": "홈" + }, + "hover": { + "message": "띄우기" + }, + "hoverOnVideoPage": { + "message": "비디오 페이지 띄우기" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "업로드 시기" + }, + "icons": { + "message": "아이콘" + }, + "iconsOnly": { + "message": "아이콘만" + }, + "importSettings": { + "message": "설정 불러오기" + }, + "improveLogo": { + "message": "향상된 로고" + }, + "improvedtubeIconOnYoutube": { + "message": "향상된 유튜브 아이콘" + }, + "improvedtubeLanguage": { + "message": "향상된 유튜브 언어" + }, + "improvedtubeVersion": { + "message": "향상된 유튜브 버전" + }, + "increasePlaybackSpeed": { + "message": "되감기 속도 증가" + }, + "increaseVolume": { + "message": "볼륨 증가" + }, + "indigo": { + "message": "남색" + }, + "items": { + "message": "요소" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "언어" + }, + "legacyYoutube": { + "message": "레거시 유튜브" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "밝게" + }, + "lightBlue": { + "message": "연파랑" + }, + "lightGreen": { + "message": "연초록" + }, + "like": { + "message": "좋아요" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "좋아요" + }, + "lime": { + "message": "라임" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "리스트" + }, + "liveChat": { + "message": "실시간 채팅" + }, + "liveChatType": { + "message": "실시간 채팅 유형" + }, + "location": { + "message": "지역" + }, + "loudnessNormalization": { + "message": "볼륨 자동조정" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "시청한 영상 표시" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "믹서" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "내 컬러" + }, + "name": { + "message": "이름" + }, + "nativeMiniPlayer": { + "message": "네이티브 미니플레이어" + }, + "new": { + "message": "새로운 소식" + }, + "nextVideo": { + "message": "다음 영상" + }, + "night": { + "message": "저녘" + }, + "noActiveFeatures": { + "message": "활성 기능 없음" + }, + "noOpenVideoTabs": { + "message": "열린 비디오 탭 없음" + }, + "none": { + "message": "없음" + }, + "normal": { + "message": "기본" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "오래됨" + }, + "onAllVideos": { + "message": "모든 비디오" + }, + "onSubscribedChannels": { + "message": "구독한 채널" + }, + "onlyActiveOnYoutube": { + "message": "유튜브만 활성화" + }, + "onlyOnePlayerInstancePlaying": { + "message": "하나의 플레이어만 재생" + }, + "orange": { + "message": "주황" + }, + "os": { + "message": "운영체제" + }, + "other": { + "message": "기타" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "권한" + }, + "pictureInPicture": { + "message": "픽처 인 픽처(PIP) 재생" + }, + "pink": { + "message": "분홍" + }, + "plain": { + "message": "무색" + }, + "platform": { + "message": "플랫폼" + }, + "playPause": { + "message": "재생 / 일시정지" + }, + "playbackSpeed": { + "message": "되감기 속도" + }, + "player": { + "message": "플레이어" + }, + "playerColor": { + "message": "플레이어 컬러" + }, + "playerSize": { + "message": "플레이어 크기" + }, + "playlist": { + "message": "플레이리스트" + }, + "playlists": { + "message": "플레이리스트" + }, + "popupPlayer": { + "message": "팝업 플레이어" + }, + "position": { + "message": "위치" + }, + "pressAnyKeyOrScroll": { + "message": "사용할 단축키 또는 마우스 휠을 누르세요." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "사용할 단축키 또는 마우스 휠을 누르세요." + }, + "previousVideo": { + "message": "이전 영상" + }, + "primaryColor": { + "message": "주 색상" + }, + "purple": { + "message": "보라" + }, + "quality": { + "message": "퀄리티" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "램" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "평가하기" + }, + "red": { + "message": "빨강" + }, + "relatedVideos": { + "message": "관련 영상" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "관련 검색결과 제거" + }, + "repeat": { + "message": "반복" + }, + "reset": { + "message": "리셋" + }, + "resetAllSettings": { + "message": "모든 설정 리셋" + }, + "resetAllShortcuts": { + "message": "모든 단축키 리셋" + }, + "reverse": { + "message": "반대로" + }, + "rotate": { + "message": "회전" + }, + "save": { + "message": "저장" + }, + "saveAs": { + "message": "다른이름으로 저장" + }, + "schedule": { + "message": "스케줄" + }, + "screen": { + "message": "스크린" + }, + "screenshot": { + "message": "스크린샷" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "검색" + }, + "searchBarOnly": { + "message": "검색창만" + }, + "seekBackward10Seconds": { + "message": "뒤로 10초" + }, + "seekForward10Seconds": { + "message": "앞으로 10초" + }, + "seekNextChapter": { + "message": "다음 챕터 보기" + }, + "seekPreviousChapter": { + "message": "이전 챕터 보기" + }, + "settings": { + "message": "설정" + }, + "settingsSuccessfullyImported": { + "message": "설정 내보내기 완료" + }, + "shortcuts": { + "message": "단축키" + }, + "showCardsOnMouseHover": { + "message": "마우스 올릴 때 카드보기" + }, + "showChannelVideosCount": { + "message": "채널의 비디오수 표시" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "셔플" + }, + "sidebar": { + "message": "사이드바" + }, + "spacebar": { + "message": "스페이스바" + }, + "squaredUserImages": { + "message": "정사각형 프로필사진" + }, + "static": { + "message": "고정" + }, + "statsForNerds": { + "message": "너드 통계 표시" + }, + "step": { + "message": "스텝" + }, + "stop": { + "message": "정지" + }, + "style": { + "message": "스타일" + }, + "styles": { + "message": "스타일" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "구독" + }, + "subtitles": { + "message": "자막" + }, + "sunset": { + "message": "일몰" + }, + "sunsetToSunrise": { + "message": "일몰부터 일출까지" + }, + "systemPeferenceDark": { + "message": "개인 설정: 다크" + }, + "systemPeferenceLight": { + "message": "개인 설정: 라이트" + }, + "teal": { + "message": "청록" + }, + "textColor": { + "message": "텍스트 색상" + }, + "themes": { + "message": "테마" + }, + "thisWillRemoveAllCookies": { + "message": "모든 쿠키를 삭제합니다." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "모든 유튜브 쿠키를 삭제합니다." + }, + "thisWillResetAllSettings": { + "message": "모든 설정을 초기화 합니다." + }, + "thisWillResetAllShortcuts": { + "message": "모든 단축키를 초기화 합니다." + }, + "thumbnails": { + "message": "썸네일" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "다음시간 부터" + }, + "timeTo": { + "message": "다음시간 까지" + }, + "todayAt": { + "message": "오늘의" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "토글 카드" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "탑 챗" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "트레일러 자동재생" + }, + "translations": { + "message": "번역" + }, + "transparentBackground": { + "message": "투명한 배경" + }, + "trending": { + "message": "인기" + }, + "tryToReloadThePage": { + "message": "새로고침을 시도하십시오" + }, + "type": { + "message": "타입" + }, + "upNextAutoplay": { + "message": "다음영상 자동재생" + }, + "use24HourFormat": { + "message": "24시간 형식 사용" + }, + "version": { + "message": "버젼" + }, + "video": { + "message": "영상" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "카테고리의 이름을 얻기 위해 비디오 설명이 확장됩니다" + }, + "videoFormats": { + "message": "비디오 형식" + }, + "videos": { + "message": "비디오" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "음량" + }, + "watchLater": { + "message": "나중에 보기" + }, + "watchTime": { + "message": "시간 보기" + }, + "whenTabIsChanged": { + "message": "탭이 바뀔때" + }, + "white": { + "message": "하양" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "노랑" + }, + "youtubeHeaderLeft": { + "message": "유튜브 헤더 (왼쪽)" + }, + "youtubeHeaderRight": { + "message": "유튜브 헤더 (오른쪽)" + }, + "youtubeHomePage": { + "message": "유튜브 홈페이지" + }, + "youtubeLanguage": { + "message": "유튜브 언어" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "유튜브는 h.264 코덱에서 비디오 품질을 1080p로 제한합니다" + } } \ No newline at end of file diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index b067c6c49..e0b831464 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -1,989 +1,995 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Om" - }, - "accept": { - "message": "aksepter" - }, - "activate": { - "message": "Aktiver" - }, - "activateCaptions": { - "message": "Aktiver underteksting" - }, - "activateFullscreen": { - "message": "Aktiver fullskjerm" - }, - "activated": { - "message": "Aktivert" - }, - "activatedFeatures": { - "message": "Aktiverte funksjoner" - }, - "activeFeatures": { - "message": "Aktive funksjoner" - }, - "addScrollToTop": { - "message": "Legg til «Rull til toppen»" - }, - "ads": { - "message": "Reklamer" - }, - "all": { - "message": "Alle" - }, - "allow": { - "message": "Tillat" - }, - "allow60fps": { - "message": "Tillat 60 bps" - }, - "alwaysActive": { - "message": "Alltid aktiv" - }, - "alwaysShowProgressBar": { - "message": "Alltid vis fremdriftslinje" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analysator" - }, - "appearance": { - "message": "Utseende" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Lyd" - }, - "audioFormats": { - "message": "Lydformater" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-fullskjerm" - }, - "autopauseWhenSwitchingTabs": { - "message": "Autopause når du bytter faner" - }, - "autoplay": { - "message": "Autoplay" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Sikkerhetskopiering og tilbakestilling" - }, - "baseOnSystemColorScheme": { - "message": "Baser på systemfargevalg" - }, - "belowPlayer": { - "message": "Nedenfor avspiller" - }, - "black": { - "message": "Svart" - }, - "blacklist": { - "message": "Svartelist" - }, - "blockAll": { - "message": "Blokker alle" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Blå" - }, - "blueGray": { - "message": "Blågrå" - }, - "bluelight": { - "message": "Blålys" - }, - "brown": { - "message": "Brun" - }, - "browser": { - "message": "Nettleser" - }, - "browserVersion": { - "message": "Nettleser-versjon" - }, - "bubbles": { - "message": "Bobler" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Knapper" - }, - "cancel": { - "message": "Avbryt" - }, - "categories": { - "message": "Kategorier" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanaler" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Utklippstavle" - }, - "codecH264": { - "message": "H.264-kodek" - }, - "collapseOfSubscriptionSections": { - "message": "Kollaps av abonnementsdelene" - }, - "collapsed": { - "message": "kollapset" - }, - "comments": { - "message": "Kommentarer" - }, - "confirmationBeforeClosing": { - "message": "Bekreftelse før stenging" - }, - "cookies": { - "message": "Informasjonskapslene" - }, - "cores": { - "message": "Kjerner" - }, - "cropChapterTitles": { - "message": "Beskjær kapitteltitler" - }, - "customCss": { - "message": "Tilpasset CSS" - }, - "customJs": { - "message": "Tilpasset JS" - }, - "customMiniPlayer": { - "message": "Egendefinert miniavspiller" - }, - "cyan": { - "message": "Blålilla" - }, - "dark": { - "message": "Mørk" - }, - "darkTheme": { - "message": "Mørk drakt" - }, - "dateAndTime": { - "message": "Dato og klokkeslett" - }, - "dawn": { - "message": "Soloppgang" - }, - "decreasePlaybackSpeed": { - "message": "Reduser avspillingshastighet" - }, - "decreaseVolume": { - "message": "Reduser lydstyrken" - }, - "deepOrange": { - "message": "Dyporansje" - }, - "deepPurple": { - "message": "Mørkelilla" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Forvalgt kanalfane" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Slett YouTube-informasjonskapsler" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Beskrivelse" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Ørken" - }, - "details": { - "message": "Detaljer" - }, - "developerOptions": { - "message": "Utviklermuligheter" - }, - "device": { - "message": "Enhet" - }, - "dim": { - "message": "Dim" - }, - "disabled": { - "message": "Avslått" - }, - "dislike": { - "message": "Mislik" - }, - "doNotChange": { - "message": "Ikke endre" - }, - "donate": { - "message": "Doner" - }, - "draggable": { - "message": "Flyttbare" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "E-post" - }, - "empty": { - "message": "Tom" - }, - "enabled": { - "message": "Aktivert" - }, - "enabledForced": { - "message": "Aktivert (tvunget)" - }, - "expanded": { - "message": "Utvidet" - }, - "exportSettings": { - "message": "Eksporter innstillinger" - }, - "extension": { - "message": "Utvidelse" - }, - "file": { - "message": "Fil" - }, - "filters": { - "message": "Filtre" - }, - "fitToWindow": { - "message": "Tilpass til vindu" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Bunntekst" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Tvungen avspillingshastighet" - }, - "forcedTheaterMode": { - "message": "Tvunget teater-modus" - }, - "forcedVolume": { - "message": "Tvunget lydstyrke" - }, - "foundABug": { - "message": "Fant du en feil?" - }, - "fullWindow": { - "message": "Fullt vindu" - }, - "general": { - "message": "Generelt" - }, - "geoPreference": { - "message": "Geo-preferanse" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Gå til søkefeltet" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Grønn" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "HD-miniatyrbilde" - }, - "header": { - "message": "Overskrift" - }, - "hidden": { - "message": "Skjult" - }, - "hiddenOnVideoPage": { - "message": "Skjult på videosiden" - }, - "hideAnimatedThumbnails": { - "message": "Skjul animerte miniatyrbilder" - }, - "hideAnnotations": { - "message": "Skjul annoteringer" - }, - "hideCards": { - "message": "Skjul kort" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Skjul detaljer" - }, - "hideEndscreen": { - "message": "Skjul sluttskjerm" - }, - "hideFeaturedContent": { - "message": "Skjul omtalt innhold" - }, - "hideFooter": { - "message": "Skjul bunntekst" - }, - "hideGradientBottom": { - "message": "Skjul bunn-fargeovergang" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Skjul spilleliste" - }, - "hideRightButtons": { - "message": "Skjul høyre-knapper" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Skjul «Bla for detaljer»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Skjul visningsteller" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "Historie" - }, - "home": { - "message": "Hjem" - }, - "hover": { - "message": "Hold" - }, - "hoverOnVideoPage": { - "message": "Hold musepekeren på videosiden" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Hvor lenge siden videoen ble opplastet" - }, - "icons": { - "message": "Ikoner" - }, - "iconsOnly": { - "message": "Kun ikoner" - }, - "importSettings": { - "message": "Importer innstillinger" - }, - "improveLogo": { - "message": "Forbedre logo" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube-ikonet på YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube-språk" - }, - "improvedtubeVersion": { - "message": "ImprovedTube-versjon" - }, - "increasePlaybackSpeed": { - "message": "Øk avspillingshastigheten" - }, - "increaseVolume": { - "message": "Øk lydstyrken" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Elementer" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Språk" - }, - "legacyYoutube": { - "message": "Gammeldags YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Lys" - }, - "lightBlue": { - "message": "Lyseblå" - }, - "lightGreen": { - "message": "Lysegrønn" - }, - "like": { - "message": "Gunst" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Begunstninger" - }, - "lime": { - "message": "Lime" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Sanntidssludring" - }, - "liveChatType": { - "message": "Sanntidssludringstype" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Lydstyrkenormalisering" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Marker sette videoer" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mikser" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Mine farger" - }, - "name": { - "message": "Navn" - }, - "nativeMiniPlayer": { - "message": "Innebygd miniavspiller" - }, - "new": { - "message": "Ny" - }, - "nextVideo": { - "message": "Neste video" - }, - "night": { - "message": "Natt" - }, - "noActiveFeatures": { - "message": "Ingen aktive funksjoner" - }, - "noOpenVideoTabs": { - "message": "Ingen åpne videofaner" - }, - "none": { - "message": "Ingen" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Gammel" - }, - "onAllVideos": { - "message": "På alle videoer" - }, - "onSubscribedChannels": { - "message": "På abonnementskanaler" - }, - "onlyActiveOnYoutube": { - "message": "Kun aktiv på YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Kun én avspiller viser noe" - }, - "orange": { - "message": "Oransje" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Andre" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "rettigheter" - }, - "pictureInPicture": { - "message": "Bilde-i-bilde" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Vanlig" - }, - "platform": { - "message": "Plattform" - }, - "playPause": { - "message": "Spill / Pause" - }, - "playbackSpeed": { - "message": "Avspillingshastighet" - }, - "player": { - "message": "Avspiller" - }, - "playerColor": { - "message": "Avspiller-farge" - }, - "playerSize": { - "message": "Avspiller-størrelse" - }, - "playlist": { - "message": "Spilleliste" - }, - "playlists": { - "message": "Spillelister" - }, - "popupPlayer": { - "message": "Oppsprettsspiller" - }, - "position": { - "message": "Posisjon" - }, - "pressAnyKeyOrScroll": { - "message": "Trykk på hvilken som helst tast, eller bruk musehjulet." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Trykk på hvilken som helst tast, eller bruk musehjulet" - }, - "previousVideo": { - "message": "Forrige video" - }, - "primaryColor": { - "message": "Hovedfarge" - }, - "purple": { - "message": "Lilla" - }, - "quality": { - "message": "Kvalitet" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "Minne" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Rangere oss" - }, - "red": { - "message": "Rød" - }, - "redDislikeButton": { - "message": "Vis tommel ned i rød farge" - }, - "relatedVideos": { - "message": "Relaterte videoer" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Fjern relaterte søkeresultater" - }, - "repeat": { - "message": "Gjenta" - }, - "reset": { - "message": "Tilbakestill" - }, - "resetAllSettings": { - "message": "Tilbakestill alle instillinger" - }, - "resetAllShortcuts": { - "message": "Tilbakestill alle snarveier" - }, - "reverse": { - "message": "Omvendt" - }, - "rotate": { - "message": "Roter" - }, - "save": { - "message": "Lagre" - }, - "saveAs": { - "message": "Lagre som" - }, - "schedule": { - "message": "Tidsplan" - }, - "screen": { - "message": "Skjerm" - }, - "screenshot": { - "message": "Skjeravbildning" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Søk" - }, - "searchBarOnly": { - "message": "Bare søkefelt" - }, - "seekBackward10Seconds": { - "message": "Spol 10 sekunder bakover" - }, - "seekForward10Seconds": { - "message": "Spol 10 sekunder fremover" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Innstillinger" - }, - "settingsSuccessfullyImported": { - "message": "Innstillinger importert" - }, - "shortcuts": { - "message": "Snarveier" - }, - "showCardsOnMouseHover": { - "message": "Vis kort på musepekeren" - }, - "showChannelVideosCount": { - "message": "Vis antall kanaler" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Tilfeldig rekkefølge" - }, - "sidebar": { - "message": "Sidepanel" - }, - "spacebar": { - "message": "Mellomrom" - }, - "squaredUserImages": { - "message": "Kvadratiske brukerbilder" - }, - "static": { - "message": "Statisk" - }, - "statsForNerds": { - "message": "Vis statistikk for nerder" - }, - "step": { - "message": "Steg" - }, - "stop": { - "message": "Stopp" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stiler" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Abonnementer" - }, - "subtitles": { - "message": "Undertekster" - }, - "sunset": { - "message": "Solnedgang" - }, - "sunsetToSunrise": { - "message": "Solnedgang til soloppgang" - }, - "systemPeferenceDark": { - "message": "Systeminnstillinger: mørk" - }, - "systemPeferenceLight": { - "message": "Systeminnstillinger: lys" - }, - "teal": { - "message": "Blågrønn" - }, - "textColor": { - "message": "Tekstfarge" - }, - "themes": { - "message": "Drakter" - }, - "thisWillRemoveAllCookies": { - "message": "Dette vil fjerne alle informasjonskapsler." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Dette vil fjerne alle YouTube-informasjonskapsler" - }, - "thisWillResetAllSettings": { - "message": "Dette vil tilbakestille alle innstillinger." - }, - "thisWillResetAllShortcuts": { - "message": "Dette vil tilbakestille alle snarveier" - }, - "thumbnails": { - "message": "miniatyrbilder " - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Fra" - }, - "timeTo": { - "message": "Til" - }, - "todayAt": { - "message": "I dag kl." - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Veksle kort" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Hovedsludring" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Trailer autospilling" - }, - "translations": { - "message": "Oversettelser" - }, - "transparentBackground": { - "message": "Gjennomsiktig bakgrunn" - }, - "trending": { - "message": "Trender" - }, - "tryToReloadThePage": { - "message": "Forsøk å laste inn siden på nytt" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "«Spilles senere»-autospilling" - }, - "use24HourFormat": { - "message": "Bruk 24-timersformat" - }, - "version": { - "message": "Versjon" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Videobeskrivelsen vil bli utvidet for å få med navnet på kategorien" - }, - "videoFormats": { - "message": "Video-formater" - }, - "videos": { - "message": "Videoer" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Lydstyrke" - }, - "watchLater": { - "message": "Se senere" - }, - "watchTime": { - "message": "Tid sett" - }, - "whenTabIsChanged": { - "message": "Når fanen endres" - }, - "white": { - "message": "Hvit" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Gul" - }, - "youtubeHeaderLeft": { - "message": "YouTube-topptekst (til venstre)" - }, - "youtubeHeaderRight": { - "message": "YouTube-topptekst (til høyre)" - }, - "youtubeHomePage": { - "message": "YouTube-startside" - }, - "youtubeLanguage": { - "message": "YouTube-språk" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube begrenser videokvaliteten til 1080p for H.264-kodeket" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Om" + }, + "accept": { + "message": "aksepter" + }, + "activate": { + "message": "Aktiver" + }, + "activateCaptions": { + "message": "Aktiver underteksting" + }, + "activateFullscreen": { + "message": "Aktiver fullskjerm" + }, + "activated": { + "message": "Aktivert" + }, + "activatedFeatures": { + "message": "Aktiverte funksjoner" + }, + "activeFeatures": { + "message": "Aktive funksjoner" + }, + "addScrollToTop": { + "message": "Legg til «Rull til toppen»" + }, + "ads": { + "message": "Reklamer" + }, + "all": { + "message": "Alle" + }, + "allow": { + "message": "Tillat" + }, + "allow60fps": { + "message": "Tillat 60 bps" + }, + "alwaysActive": { + "message": "Alltid aktiv" + }, + "alwaysShowProgressBar": { + "message": "Alltid vis fremdriftslinje" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analysator" + }, + "appearance": { + "message": "Utseende" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "Lyd" + }, + "audioFormats": { + "message": "Lydformater" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullskjerm" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause når du bytter faner" + }, + "autoplay": { + "message": "Autoplay" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Sikkerhetskopiering og tilbakestilling" + }, + "baseOnSystemColorScheme": { + "message": "Baser på systemfargevalg" + }, + "belowPlayer": { + "message": "Nedenfor avspiller" + }, + "black": { + "message": "Svart" + }, + "blacklist": { + "message": "Svartelist" + }, + "blockAll": { + "message": "Blokker alle" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Blå" + }, + "blueGray": { + "message": "Blågrå" + }, + "bluelight": { + "message": "Blålys" + }, + "brown": { + "message": "Brun" + }, + "browser": { + "message": "Nettleser" + }, + "browserVersion": { + "message": "Nettleser-versjon" + }, + "bubbles": { + "message": "Bobler" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Knapper" + }, + "cancel": { + "message": "Avbryt" + }, + "categories": { + "message": "Kategorier" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanaler" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Utklippstavle" + }, + "codecH264": { + "message": "H.264-kodek" + }, + "collapseOfSubscriptionSections": { + "message": "Kollaps av abonnementsdelene" + }, + "collapsed": { + "message": "kollapset" + }, + "comments": { + "message": "Kommentarer" + }, + "confirmationBeforeClosing": { + "message": "Bekreftelse før stenging" + }, + "cookies": { + "message": "Informasjonskapslene" + }, + "cores": { + "message": "Kjerner" + }, + "cropChapterTitles": { + "message": "Beskjær kapitteltitler" + }, + "customCss": { + "message": "Tilpasset CSS" + }, + "customJs": { + "message": "Tilpasset JS" + }, + "customMiniPlayer": { + "message": "Egendefinert miniavspiller" + }, + "cyan": { + "message": "Blålilla" + }, + "dark": { + "message": "Mørk" + }, + "darkTheme": { + "message": "Mørk drakt" + }, + "dateAndTime": { + "message": "Dato og klokkeslett" + }, + "dawn": { + "message": "Soloppgang" + }, + "decreasePlaybackSpeed": { + "message": "Reduser avspillingshastighet" + }, + "decreaseVolume": { + "message": "Reduser lydstyrken" + }, + "deepOrange": { + "message": "Dyporansje" + }, + "deepPurple": { + "message": "Mørkelilla" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Forvalgt kanalfane" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Slett YouTube-informasjonskapsler" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Beskrivelse" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Ørken" + }, + "details": { + "message": "Detaljer" + }, + "developerOptions": { + "message": "Utviklermuligheter" + }, + "device": { + "message": "Enhet" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Avslått" + }, + "dislike": { + "message": "Mislik" + }, + "doNotChange": { + "message": "Ikke endre" + }, + "donate": { + "message": "Doner" + }, + "draggable": { + "message": "Flyttbare" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "E-post" + }, + "empty": { + "message": "Tom" + }, + "enabled": { + "message": "Aktivert" + }, + "enabledForced": { + "message": "Aktivert (tvunget)" + }, + "expanded": { + "message": "Utvidet" + }, + "exportSettings": { + "message": "Eksporter innstillinger" + }, + "extension": { + "message": "Utvidelse" + }, + "file": { + "message": "Fil" + }, + "filters": { + "message": "Filtre" + }, + "fitToWindow": { + "message": "Tilpass til vindu" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Bunntekst" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Tvungen avspillingshastighet" + }, + "forcedTheaterMode": { + "message": "Tvunget teater-modus" + }, + "forcedVolume": { + "message": "Tvunget lydstyrke" + }, + "foundABug": { + "message": "Fant du en feil?" + }, + "fullWindow": { + "message": "Fullt vindu" + }, + "general": { + "message": "Generelt" + }, + "geoPreference": { + "message": "Geo-preferanse" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Gå til søkefeltet" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Grønn" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD-miniatyrbilde" + }, + "header": { + "message": "Overskrift" + }, + "hidden": { + "message": "Skjult" + }, + "hiddenOnVideoPage": { + "message": "Skjult på videosiden" + }, + "hideAnimatedThumbnails": { + "message": "Skjul animerte miniatyrbilder" + }, + "hideAnnotations": { + "message": "Skjul annoteringer" + }, + "hideCards": { + "message": "Skjul kort" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Skjul detaljer" + }, + "hideEndscreen": { + "message": "Skjul sluttskjerm" + }, + "hideFeaturedContent": { + "message": "Skjul omtalt innhold" + }, + "hideFooter": { + "message": "Skjul bunntekst" + }, + "hideGradientBottom": { + "message": "Skjul bunn-fargeovergang" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Skjul spilleliste" + }, + "hideRightButtons": { + "message": "Skjul høyre-knapper" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Skjul «Bla for detaljer»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Skjul visningsteller" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Historie" + }, + "home": { + "message": "Hjem" + }, + "hover": { + "message": "Hold" + }, + "hoverOnVideoPage": { + "message": "Hold musepekeren på videosiden" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Hvor lenge siden videoen ble opplastet" + }, + "icons": { + "message": "Ikoner" + }, + "iconsOnly": { + "message": "Kun ikoner" + }, + "importSettings": { + "message": "Importer innstillinger" + }, + "improveLogo": { + "message": "Forbedre logo" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube-ikonet på YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube-språk" + }, + "improvedtubeVersion": { + "message": "ImprovedTube-versjon" + }, + "increasePlaybackSpeed": { + "message": "Øk avspillingshastigheten" + }, + "increaseVolume": { + "message": "Øk lydstyrken" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Elementer" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Språk" + }, + "legacyYoutube": { + "message": "Gammeldags YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Lys" + }, + "lightBlue": { + "message": "Lyseblå" + }, + "lightGreen": { + "message": "Lysegrønn" + }, + "like": { + "message": "Gunst" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Begunstninger" + }, + "lime": { + "message": "Lime" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Sanntidssludring" + }, + "liveChatType": { + "message": "Sanntidssludringstype" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Lydstyrkenormalisering" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Marker sette videoer" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mikser" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Mine farger" + }, + "name": { + "message": "Navn" + }, + "nativeMiniPlayer": { + "message": "Innebygd miniavspiller" + }, + "new": { + "message": "Ny" + }, + "nextVideo": { + "message": "Neste video" + }, + "night": { + "message": "Natt" + }, + "noActiveFeatures": { + "message": "Ingen aktive funksjoner" + }, + "noOpenVideoTabs": { + "message": "Ingen åpne videofaner" + }, + "none": { + "message": "Ingen" + }, + "normal": { + "message": "Normal" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Gammel" + }, + "onAllVideos": { + "message": "På alle videoer" + }, + "onSubscribedChannels": { + "message": "På abonnementskanaler" + }, + "onlyActiveOnYoutube": { + "message": "Kun aktiv på YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Kun én avspiller viser noe" + }, + "orange": { + "message": "Oransje" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Andre" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "rettigheter" + }, + "pictureInPicture": { + "message": "Bilde-i-bilde" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Vanlig" + }, + "platform": { + "message": "Plattform" + }, + "playPause": { + "message": "Spill / Pause" + }, + "playbackSpeed": { + "message": "Avspillingshastighet" + }, + "player": { + "message": "Avspiller" + }, + "playerColor": { + "message": "Avspiller-farge" + }, + "playerSize": { + "message": "Avspiller-størrelse" + }, + "playlist": { + "message": "Spilleliste" + }, + "playlists": { + "message": "Spillelister" + }, + "popupPlayer": { + "message": "Oppsprettsspiller" + }, + "position": { + "message": "Posisjon" + }, + "pressAnyKeyOrScroll": { + "message": "Trykk på hvilken som helst tast, eller bruk musehjulet." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Trykk på hvilken som helst tast, eller bruk musehjulet" + }, + "previousVideo": { + "message": "Forrige video" + }, + "primaryColor": { + "message": "Hovedfarge" + }, + "purple": { + "message": "Lilla" + }, + "quality": { + "message": "Kvalitet" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "Minne" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Rangere oss" + }, + "red": { + "message": "Rød" + }, + "redDislikeButton": { + "message": "Vis tommel ned i rød farge" + }, + "relatedVideos": { + "message": "Relaterte videoer" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Fjern relaterte søkeresultater" + }, + "repeat": { + "message": "Gjenta" + }, + "reset": { + "message": "Tilbakestill" + }, + "resetAllSettings": { + "message": "Tilbakestill alle instillinger" + }, + "resetAllShortcuts": { + "message": "Tilbakestill alle snarveier" + }, + "reverse": { + "message": "Omvendt" + }, + "rotate": { + "message": "Roter" + }, + "save": { + "message": "Lagre" + }, + "saveAs": { + "message": "Lagre som" + }, + "schedule": { + "message": "Tidsplan" + }, + "screen": { + "message": "Skjerm" + }, + "screenshot": { + "message": "Skjeravbildning" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Søk" + }, + "searchBarOnly": { + "message": "Bare søkefelt" + }, + "seekBackward10Seconds": { + "message": "Spol 10 sekunder bakover" + }, + "seekForward10Seconds": { + "message": "Spol 10 sekunder fremover" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Innstillinger" + }, + "settingsSuccessfullyImported": { + "message": "Innstillinger importert" + }, + "shortcuts": { + "message": "Snarveier" + }, + "showCardsOnMouseHover": { + "message": "Vis kort på musepekeren" + }, + "showChannelVideosCount": { + "message": "Vis antall kanaler" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Tilfeldig rekkefølge" + }, + "sidebar": { + "message": "Sidepanel" + }, + "spacebar": { + "message": "Mellomrom" + }, + "squaredUserImages": { + "message": "Kvadratiske brukerbilder" + }, + "static": { + "message": "Statisk" + }, + "statsForNerds": { + "message": "Vis statistikk for nerder" + }, + "step": { + "message": "Steg" + }, + "stop": { + "message": "Stopp" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stiler" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Abonnementer" + }, + "subtitles": { + "message": "Undertekster" + }, + "sunset": { + "message": "Solnedgang" + }, + "sunsetToSunrise": { + "message": "Solnedgang til soloppgang" + }, + "systemPeferenceDark": { + "message": "Systeminnstillinger: mørk" + }, + "systemPeferenceLight": { + "message": "Systeminnstillinger: lys" + }, + "teal": { + "message": "Blågrønn" + }, + "textColor": { + "message": "Tekstfarge" + }, + "themes": { + "message": "Drakter" + }, + "thisWillRemoveAllCookies": { + "message": "Dette vil fjerne alle informasjonskapsler." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Dette vil fjerne alle YouTube-informasjonskapsler" + }, + "thisWillResetAllSettings": { + "message": "Dette vil tilbakestille alle innstillinger." + }, + "thisWillResetAllShortcuts": { + "message": "Dette vil tilbakestille alle snarveier" + }, + "thumbnails": { + "message": "miniatyrbilder " + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Fra" + }, + "timeTo": { + "message": "Til" + }, + "todayAt": { + "message": "I dag kl." + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Veksle kort" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Hovedsludring" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Trailer autospilling" + }, + "translations": { + "message": "Oversettelser" + }, + "transparentBackground": { + "message": "Gjennomsiktig bakgrunn" + }, + "trending": { + "message": "Trender" + }, + "tryToReloadThePage": { + "message": "Forsøk å laste inn siden på nytt" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "«Spilles senere»-autospilling" + }, + "use24HourFormat": { + "message": "Bruk 24-timersformat" + }, + "version": { + "message": "Versjon" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Videobeskrivelsen vil bli utvidet for å få med navnet på kategorien" + }, + "videoFormats": { + "message": "Video-formater" + }, + "videos": { + "message": "Videoer" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Lydstyrke" + }, + "watchLater": { + "message": "Se senere" + }, + "watchTime": { + "message": "Tid sett" + }, + "whenTabIsChanged": { + "message": "Når fanen endres" + }, + "white": { + "message": "Hvit" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Gul" + }, + "youtubeHeaderLeft": { + "message": "YouTube-topptekst (til venstre)" + }, + "youtubeHeaderRight": { + "message": "YouTube-topptekst (til høyre)" + }, + "youtubeHomePage": { + "message": "YouTube-startside" + }, + "youtubeLanguage": { + "message": "YouTube-språk" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube begrenser videokvaliteten til 1080p for H.264-kodeket" + } } \ No newline at end of file diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index c49732971..9eba29035 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -1,986 +1,992 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Over" - }, - "accept": { - "message": "Accepteren" - }, - "activate": { - "message": "Activeren" - }, - "activateCaptions": { - "message": "Activeer bijschriften" - }, - "activateFullscreen": { - "message": "Activeer volledig scherm" - }, - "activated": { - "message": "Geactiveerd" - }, - "activatedFeatures": { - "message": "Geactiveerde features" - }, - "activeFeatures": { - "message": "Actieve features" - }, - "addScrollToTop": { - "message": "Voeg «Scroll to top» toe" - }, - "ads": { - "message": "Reclames" - }, - "all": { - "message": "Alles" - }, - "allow": { - "message": "Toestaan" - }, - "allow60fps": { - "message": "60fps toestaan" - }, - "alwaysActive": { - "message": "Altijd actief" - }, - "alwaysShowProgressBar": { - "message": "Altijd voortgangsbalk laten zien" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analyse" - }, - "appearance": { - "message": "Uiterlijk" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio formaten" - }, - "auto": { - "message": "Automatisch" - }, - "autoFullscreen": { - "message": "Automatisch volledig scherm" - }, - "autopauseWhenSwitchingTabs": { - "message": "Automatisch pauzeren bij het wisselen van tabbladen" - }, - "autoplay": { - "message": "Automatisch afspelen" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Backup maken & reseten" - }, - "baseOnSystemColorScheme": { - "message": "Baseer op kleurenschema van systeem" - }, - "belowPlayer": { - "message": "Onder de speler" - }, - "black": { - "message": "Zwart" - }, - "blacklist": { - "message": "Zwarte lijst" - }, - "blockAll": { - "message": "Alles blokkeren" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Blauw" - }, - "blueGray": { - "message": "Blauw grijs" - }, - "bluelight": { - "message": "Blauw licht" - }, - "brown": { - "message": "Bruin" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser versie" - }, - "bubbles": { - "message": "Bubbels" - }, - "bug": { - "message": "Insect" - }, - "buttons": { - "message": "Knoppen" - }, - "cancel": { - "message": "Annuleren" - }, - "categories": { - "message": "Categoriën" - }, - "channel": { - "message": "Kanaal" - }, - "channels": { - "message": "Kanalen" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Klembord" - }, - "codecH264": { - "message": "Encoderen in h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Uitklappen van abonnee sectie" - }, - "collapsed": { - "message": "Ingeklapt" - }, - "comments": { - "message": "Reacties" - }, - "confirmationBeforeClosing": { - "message": "Bevestiging voor sluiten" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Kernen" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Aangepaste CSS" - }, - "customJs": { - "message": "Aangepaste JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyaan" - }, - "dark": { - "message": "Donker" - }, - "darkTheme": { - "message": "Donker thema" - }, - "dateAndTime": { - "message": "Datum & tijd" - }, - "dawn": { - "message": "Morgenrood" - }, - "decreasePlaybackSpeed": { - "message": "Verminder afspeelsnelheid" - }, - "decreaseVolume": { - "message": "Verminder volume" - }, - "deepOrange": { - "message": "Donker oranje" - }, - "deepPurple": { - "message": "donker aars" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Standaard kanaaltabblad" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "YouTube-cookies verwijderen" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Beschrijving" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Woestijn" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Ontwikkelaarsopties" - }, - "device": { - "message": "Apparaat" - }, - "dim": { - "message": "Dimmen" - }, - "disabled": { - "message": "Uitgeschakeld" - }, - "dislike": { - "message": "Niet leuk vinden" - }, - "doNotChange": { - "message": "Niet aanpassen" - }, - "donate": { - "message": "Doneer" - }, - "draggable": { - "message": "Sleepbaar" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "E-mail" - }, - "empty": { - "message": "Leeg" - }, - "enabled": { - "message": "Ingeschakeld" - }, - "enabledForced": { - "message": "Ingeschakeld (geforceerd)" - }, - "expanded": { - "message": "Uitgeklapt" - }, - "exportSettings": { - "message": "Instellingen exporteren" - }, - "extension": { - "message": "Extensie" - }, - "file": { - "message": "Bestand" - }, - "filters": { - "message": "Filters" - }, - "fitToWindow": { - "message": "Aanpassen aan vensterbreedte" - }, - "flash": { - "message": "Flits" - }, - "font": { - "message": "Lettertype" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Voettekst" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Afspeelsnelheid afdwingen" - }, - "forcedTheaterMode": { - "message": "Altijd theatermodus gebruiken" - }, - "forcedVolume": { - "message": "Volume afdwingen" - }, - "foundABug": { - "message": "Heb je een bug gevonden?" - }, - "fullWindow": { - "message": "Volledige venstergrootte" - }, - "general": { - "message": "Algemeen" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Ga naar de zoekbalk" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Groen" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "HD-miniatuurvoorbeeld" - }, - "header": { - "message": "Kop" - }, - "hidden": { - "message": "Verborgen" - }, - "hiddenOnVideoPage": { - "message": "Verborgen op videopagina" - }, - "hideAnimatedThumbnails": { - "message": "Geen bewegende miniatuurvoorbeelden" - }, - "hideAnnotations": { - "message": "Verberg annotaties" - }, - "hideCards": { - "message": "Verberg kaarten" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Verberg details" - }, - "hideEndscreen": { - "message": "Verberg eindscherm" - }, - "hideFeaturedContent": { - "message": "Verberg uitgelichte inhoud" - }, - "hideFooter": { - "message": "Verberg voettekst" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Verberg afspeellijst" - }, - "hideRightButtons": { - "message": "Verberg rechter knoppen" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Verberg «Scroll for details»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Verberg views teller" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "Geschiedenis" - }, - "home": { - "message": "Thuis" - }, - "hover": { - "message": "Overzweven met cursor" - }, - "hoverOnVideoPage": { - "message": "Overzweven met cursor op videopagina" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Uploaddatum tonen" - }, - "icons": { - "message": "Iconen" - }, - "iconsOnly": { - "message": "Alleen pictogrammen" - }, - "importSettings": { - "message": "Instellingen importeren" - }, - "improveLogo": { - "message": "YouTube-logo verbeteren" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icoon op YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube taal" - }, - "improvedtubeVersion": { - "message": "ImprovedTube versie" - }, - "increasePlaybackSpeed": { - "message": "Verhoog afspeelsnelheid" - }, - "increaseVolume": { - "message": "Verhoog volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Talen" - }, - "legacyYoutube": { - "message": "Oude YouTube-uiterlijk" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Licht" - }, - "lightBlue": { - "message": "Licht blauw" - }, - "lightGreen": { - "message": "Licht groen" - }, - "like": { - "message": "Vind ik leuk" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Vind-ik-leuks" - }, - "lime": { - "message": "Limoen" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Lijst" - }, - "liveChat": { - "message": "Live berichtenvenster" - }, - "liveChatType": { - "message": "Live berichtenvenster type" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Volume normaliseren" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Merk bekeken videos aan" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mixer" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Mijn kleuren" - }, - "name": { - "message": "Naam" - }, - "nativeMiniPlayer": { - "message": "Ingebouwde minispeler" - }, - "new": { - "message": "Nieuw" - }, - "nextVideo": { - "message": "Volgende video afspelen" - }, - "night": { - "message": "Nacht" - }, - "noActiveFeatures": { - "message": "Geen actieve features" - }, - "noOpenVideoTabs": { - "message": "Geen openstaande videotabbladen" - }, - "none": { - "message": "Geen" - }, - "normal": { - "message": "Normaal" - }, - "old": { - "message": "Oud" - }, - "onAllVideos": { - "message": "Bij alle videos" - }, - "onSubscribedChannels": { - "message": "Op geabonneerde kanalen" - }, - "onlyActiveOnYoutube": { - "message": "Alleen actief op YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Slechts één actieve speler toestaan" - }, - "orange": { - "message": "Oranje" - }, - "os": { - "message": "Besturingssysteem" - }, - "other": { - "message": "Anders" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Machtigingen" - }, - "pictureInPicture": { - "message": "Afbeelding-in-Afbeelding" - }, - "pink": { - "message": "Roze" - }, - "plain": { - "message": "Vlakte" - }, - "platform": { - "message": "Platform" - }, - "playPause": { - "message": "Video afspelen/pauzeren" - }, - "playbackSpeed": { - "message": "Afspeelsnelheid" - }, - "player": { - "message": "Speler" - }, - "playerColor": { - "message": "Spelerkleur" - }, - "playerSize": { - "message": "Spelergrootte" - }, - "playlist": { - "message": "Afspeellijst" - }, - "playlists": { - "message": "Afspeellijsten" - }, - "popupPlayer": { - "message": "Pop-upspeler" - }, - "position": { - "message": "Positie" - }, - "pressAnyKeyOrScroll": { - "message": "Druk op een toets of muiswiel." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Druk op een toets of gebruik muiswiel" - }, - "previousVideo": { - "message": "Vorige video afspelen" - }, - "primaryColor": { - "message": "Primaire kleur" - }, - "purple": { - "message": "Paars" - }, - "quality": { - "message": "Kwaliteit" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Geef ons een beoordeling" - }, - "red": { - "message": "Rood" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Gerelateerde video's" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Verwijder resultaten van gerelateerde videos" - }, - "repeat": { - "message": "Herhalen" - }, - "reset": { - "message": "Herstel" - }, - "resetAllSettings": { - "message": "Standaardwaarden herstellen" - }, - "resetAllShortcuts": { - "message": "Herstel alle snelkoppelingen" - }, - "reverse": { - "message": "Omdraaien" - }, - "rotate": { - "message": "Draaien" - }, - "save": { - "message": "Opslaan" - }, - "saveAs": { - "message": "Opslaan als" - }, - "schedule": { - "message": "Schema" - }, - "screen": { - "message": "Beeldscherm" - }, - "screenshot": { - "message": "Schermafbeelding" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Zoeken" - }, - "searchBarOnly": { - "message": "Alleen zoekbalk" - }, - "seekBackward10Seconds": { - "message": "Zoek 10 seconde terug" - }, - "seekForward10Seconds": { - "message": "Zoek 10 seconde naar voren" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Instellingen" - }, - "settingsSuccessfullyImported": { - "message": "Instellingen succesvol geïmporteerd" - }, - "shortcuts": { - "message": "Sneltoetsen" - }, - "showCardsOnMouseHover": { - "message": "Laat kaarten zien onder muisaanwijzer" - }, - "showChannelVideosCount": { - "message": "Aantal kanaalvideo's tonen" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Willekeurig" - }, - "sidebar": { - "message": "Zijbalk" - }, - "spacebar": { - "message": "Spatiebalk" - }, - "squaredUserImages": { - "message": "Vierkante gebruikersafbeeldingen" - }, - "static": { - "message": "Statisch" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Stap" - }, - "stop": { - "message": "Stoppen" - }, - "style": { - "message": "Stijl" - }, - "styles": { - "message": "Stijlen" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Abonnementen" - }, - "subtitles": { - "message": "Ondertiteling tonen" - }, - "sunset": { - "message": "Zonsondergang" - }, - "sunsetToSunrise": { - "message": "Zonsondergang tot zonsopkomst" - }, - "systemPeferenceDark": { - "message": "Systeem voorkeur: donker" - }, - "systemPeferenceLight": { - "message": "Systeem voorkeur: licht" - }, - "teal": { - "message": "Groenblauw" - }, - "textColor": { - "message": "Tekst kleur" - }, - "themes": { - "message": "Thema's" - }, - "thisWillRemoveAllCookies": { - "message": "Dit verwijdert alle cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Dit verwijdert alle YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "Dit herstelt alle instellingen." - }, - "thisWillResetAllShortcuts": { - "message": "Dit herstelt alle snelkoppelingen" - }, - "thumbnails": { - "message": "Miniatuurvoorbeelden" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Tijd vanaf" - }, - "timeTo": { - "message": "Tijd tot" - }, - "todayAt": { - "message": "Vandaag om" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Top-chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Trailer automatisch afspelen" - }, - "translations": { - "message": "vertalingen" - }, - "transparentBackground": { - "message": "Doorzichtige achtergrond" - }, - "trending": { - "message": "Populair" - }, - "tryToReloadThePage": { - "message": "Probeer de pagina te herladen" - }, - "type": { - "message": "Soort" - }, - "upNextAutoplay": { - "message": "Volgende in wachtrij automatisch afspelen" - }, - "use24HourFormat": { - "message": "24-uurstijd gebruiken" - }, - "version": { - "message": "Versie" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video omschrijving wordt uitgeklapt om de naam van de categorie te verkrijgen" - }, - "videoFormats": { - "message": "Video formaten" - }, - "videos": { - "message": "Video's" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Later bekijken" - }, - "watchTime": { - "message": "Kijk tijd" - }, - "whenTabIsChanged": { - "message": "Wanneer het tabblat veranderd" - }, - "white": { - "message": "Wit" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Geel" - }, - "youtubeHeaderLeft": { - "message": "YouTube-kop (links)" - }, - "youtubeHeaderRight": { - "message": "YouTube-kop (rechts)" - }, - "youtubeHomePage": { - "message": "YouTube-startpagina" - }, - "youtubeLanguage": { - "message": "YouTube taal" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limiteerd video kwaliteit tot 1080p voor h.264 codec" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Over" + }, + "accept": { + "message": "Accepteren" + }, + "activate": { + "message": "Activeren" + }, + "activateCaptions": { + "message": "Activeer bijschriften" + }, + "activateFullscreen": { + "message": "Activeer volledig scherm" + }, + "activated": { + "message": "Geactiveerd" + }, + "activatedFeatures": { + "message": "Geactiveerde features" + }, + "activeFeatures": { + "message": "Actieve features" + }, + "addScrollToTop": { + "message": "Voeg «Scroll to top» toe" + }, + "ads": { + "message": "Reclames" + }, + "all": { + "message": "Alles" + }, + "allow": { + "message": "Toestaan" + }, + "allow60fps": { + "message": "60fps toestaan" + }, + "alwaysActive": { + "message": "Altijd actief" + }, + "alwaysShowProgressBar": { + "message": "Altijd voortgangsbalk laten zien" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analyse" + }, + "appearance": { + "message": "Uiterlijk" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formaten" + }, + "auto": { + "message": "Automatisch" + }, + "autoFullscreen": { + "message": "Automatisch volledig scherm" + }, + "autopauseWhenSwitchingTabs": { + "message": "Automatisch pauzeren bij het wisselen van tabbladen" + }, + "autoplay": { + "message": "Automatisch afspelen" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Backup maken & reseten" + }, + "baseOnSystemColorScheme": { + "message": "Baseer op kleurenschema van systeem" + }, + "belowPlayer": { + "message": "Onder de speler" + }, + "black": { + "message": "Zwart" + }, + "blacklist": { + "message": "Zwarte lijst" + }, + "blockAll": { + "message": "Alles blokkeren" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Blauw" + }, + "blueGray": { + "message": "Blauw grijs" + }, + "bluelight": { + "message": "Blauw licht" + }, + "brown": { + "message": "Bruin" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser versie" + }, + "bubbles": { + "message": "Bubbels" + }, + "bug": { + "message": "Insect" + }, + "buttons": { + "message": "Knoppen" + }, + "cancel": { + "message": "Annuleren" + }, + "categories": { + "message": "Categoriën" + }, + "channel": { + "message": "Kanaal" + }, + "channels": { + "message": "Kanalen" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Klembord" + }, + "codecH264": { + "message": "Encoderen in h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Uitklappen van abonnee sectie" + }, + "collapsed": { + "message": "Ingeklapt" + }, + "comments": { + "message": "Reacties" + }, + "confirmationBeforeClosing": { + "message": "Bevestiging voor sluiten" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Kernen" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Aangepaste CSS" + }, + "customJs": { + "message": "Aangepaste JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyaan" + }, + "dark": { + "message": "Donker" + }, + "darkTheme": { + "message": "Donker thema" + }, + "dateAndTime": { + "message": "Datum & tijd" + }, + "dawn": { + "message": "Morgenrood" + }, + "decreasePlaybackSpeed": { + "message": "Verminder afspeelsnelheid" + }, + "decreaseVolume": { + "message": "Verminder volume" + }, + "deepOrange": { + "message": "Donker oranje" + }, + "deepPurple": { + "message": "donker aars" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Standaard kanaaltabblad" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "YouTube-cookies verwijderen" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Beschrijving" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Woestijn" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Ontwikkelaarsopties" + }, + "device": { + "message": "Apparaat" + }, + "dim": { + "message": "Dimmen" + }, + "disabled": { + "message": "Uitgeschakeld" + }, + "dislike": { + "message": "Niet leuk vinden" + }, + "doNotChange": { + "message": "Niet aanpassen" + }, + "donate": { + "message": "Doneer" + }, + "draggable": { + "message": "Sleepbaar" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "E-mail" + }, + "empty": { + "message": "Leeg" + }, + "enabled": { + "message": "Ingeschakeld" + }, + "enabledForced": { + "message": "Ingeschakeld (geforceerd)" + }, + "expanded": { + "message": "Uitgeklapt" + }, + "exportSettings": { + "message": "Instellingen exporteren" + }, + "extension": { + "message": "Extensie" + }, + "file": { + "message": "Bestand" + }, + "filters": { + "message": "Filters" + }, + "fitToWindow": { + "message": "Aanpassen aan vensterbreedte" + }, + "flash": { + "message": "Flits" + }, + "font": { + "message": "Lettertype" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Voettekst" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Afspeelsnelheid afdwingen" + }, + "forcedTheaterMode": { + "message": "Altijd theatermodus gebruiken" + }, + "forcedVolume": { + "message": "Volume afdwingen" + }, + "foundABug": { + "message": "Heb je een bug gevonden?" + }, + "fullWindow": { + "message": "Volledige venstergrootte" + }, + "general": { + "message": "Algemeen" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Ga naar de zoekbalk" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Groen" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD-miniatuurvoorbeeld" + }, + "header": { + "message": "Kop" + }, + "hidden": { + "message": "Verborgen" + }, + "hiddenOnVideoPage": { + "message": "Verborgen op videopagina" + }, + "hideAnimatedThumbnails": { + "message": "Geen bewegende miniatuurvoorbeelden" + }, + "hideAnnotations": { + "message": "Verberg annotaties" + }, + "hideCards": { + "message": "Verberg kaarten" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Verberg details" + }, + "hideEndscreen": { + "message": "Verberg eindscherm" + }, + "hideFeaturedContent": { + "message": "Verberg uitgelichte inhoud" + }, + "hideFooter": { + "message": "Verberg voettekst" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Verberg afspeellijst" + }, + "hideRightButtons": { + "message": "Verberg rechter knoppen" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Verberg «Scroll for details»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Verberg views teller" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Geschiedenis" + }, + "home": { + "message": "Thuis" + }, + "hover": { + "message": "Overzweven met cursor" + }, + "hoverOnVideoPage": { + "message": "Overzweven met cursor op videopagina" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Uploaddatum tonen" + }, + "icons": { + "message": "Iconen" + }, + "iconsOnly": { + "message": "Alleen pictogrammen" + }, + "importSettings": { + "message": "Instellingen importeren" + }, + "improveLogo": { + "message": "YouTube-logo verbeteren" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube icoon op YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube taal" + }, + "improvedtubeVersion": { + "message": "ImprovedTube versie" + }, + "increasePlaybackSpeed": { + "message": "Verhoog afspeelsnelheid" + }, + "increaseVolume": { + "message": "Verhoog volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Talen" + }, + "legacyYoutube": { + "message": "Oude YouTube-uiterlijk" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Licht" + }, + "lightBlue": { + "message": "Licht blauw" + }, + "lightGreen": { + "message": "Licht groen" + }, + "like": { + "message": "Vind ik leuk" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Vind-ik-leuks" + }, + "lime": { + "message": "Limoen" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Lijst" + }, + "liveChat": { + "message": "Live berichtenvenster" + }, + "liveChatType": { + "message": "Live berichtenvenster type" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Volume normaliseren" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Merk bekeken videos aan" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Mijn kleuren" + }, + "name": { + "message": "Naam" + }, + "nativeMiniPlayer": { + "message": "Ingebouwde minispeler" + }, + "new": { + "message": "Nieuw" + }, + "nextVideo": { + "message": "Volgende video afspelen" + }, + "night": { + "message": "Nacht" + }, + "noActiveFeatures": { + "message": "Geen actieve features" + }, + "noOpenVideoTabs": { + "message": "Geen openstaande videotabbladen" + }, + "none": { + "message": "Geen" + }, + "normal": { + "message": "Normaal" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Oud" + }, + "onAllVideos": { + "message": "Bij alle videos" + }, + "onSubscribedChannels": { + "message": "Op geabonneerde kanalen" + }, + "onlyActiveOnYoutube": { + "message": "Alleen actief op YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Slechts één actieve speler toestaan" + }, + "orange": { + "message": "Oranje" + }, + "os": { + "message": "Besturingssysteem" + }, + "other": { + "message": "Anders" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Machtigingen" + }, + "pictureInPicture": { + "message": "Afbeelding-in-Afbeelding" + }, + "pink": { + "message": "Roze" + }, + "plain": { + "message": "Vlakte" + }, + "platform": { + "message": "Platform" + }, + "playPause": { + "message": "Video afspelen/pauzeren" + }, + "playbackSpeed": { + "message": "Afspeelsnelheid" + }, + "player": { + "message": "Speler" + }, + "playerColor": { + "message": "Spelerkleur" + }, + "playerSize": { + "message": "Spelergrootte" + }, + "playlist": { + "message": "Afspeellijst" + }, + "playlists": { + "message": "Afspeellijsten" + }, + "popupPlayer": { + "message": "Pop-upspeler" + }, + "position": { + "message": "Positie" + }, + "pressAnyKeyOrScroll": { + "message": "Druk op een toets of muiswiel." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Druk op een toets of gebruik muiswiel" + }, + "previousVideo": { + "message": "Vorige video afspelen" + }, + "primaryColor": { + "message": "Primaire kleur" + }, + "purple": { + "message": "Paars" + }, + "quality": { + "message": "Kwaliteit" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Geef ons een beoordeling" + }, + "red": { + "message": "Rood" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Gerelateerde video's" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Verwijder resultaten van gerelateerde videos" + }, + "repeat": { + "message": "Herhalen" + }, + "reset": { + "message": "Herstel" + }, + "resetAllSettings": { + "message": "Standaardwaarden herstellen" + }, + "resetAllShortcuts": { + "message": "Herstel alle snelkoppelingen" + }, + "reverse": { + "message": "Omdraaien" + }, + "rotate": { + "message": "Draaien" + }, + "save": { + "message": "Opslaan" + }, + "saveAs": { + "message": "Opslaan als" + }, + "schedule": { + "message": "Schema" + }, + "screen": { + "message": "Beeldscherm" + }, + "screenshot": { + "message": "Schermafbeelding" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Zoeken" + }, + "searchBarOnly": { + "message": "Alleen zoekbalk" + }, + "seekBackward10Seconds": { + "message": "Zoek 10 seconde terug" + }, + "seekForward10Seconds": { + "message": "Zoek 10 seconde naar voren" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Instellingen" + }, + "settingsSuccessfullyImported": { + "message": "Instellingen succesvol geïmporteerd" + }, + "shortcuts": { + "message": "Sneltoetsen" + }, + "showCardsOnMouseHover": { + "message": "Laat kaarten zien onder muisaanwijzer" + }, + "showChannelVideosCount": { + "message": "Aantal kanaalvideo's tonen" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Willekeurig" + }, + "sidebar": { + "message": "Zijbalk" + }, + "spacebar": { + "message": "Spatiebalk" + }, + "squaredUserImages": { + "message": "Vierkante gebruikersafbeeldingen" + }, + "static": { + "message": "Statisch" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Stap" + }, + "stop": { + "message": "Stoppen" + }, + "style": { + "message": "Stijl" + }, + "styles": { + "message": "Stijlen" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Abonnementen" + }, + "subtitles": { + "message": "Ondertiteling tonen" + }, + "sunset": { + "message": "Zonsondergang" + }, + "sunsetToSunrise": { + "message": "Zonsondergang tot zonsopkomst" + }, + "systemPeferenceDark": { + "message": "Systeem voorkeur: donker" + }, + "systemPeferenceLight": { + "message": "Systeem voorkeur: licht" + }, + "teal": { + "message": "Groenblauw" + }, + "textColor": { + "message": "Tekst kleur" + }, + "themes": { + "message": "Thema's" + }, + "thisWillRemoveAllCookies": { + "message": "Dit verwijdert alle cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Dit verwijdert alle YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "Dit herstelt alle instellingen." + }, + "thisWillResetAllShortcuts": { + "message": "Dit herstelt alle snelkoppelingen" + }, + "thumbnails": { + "message": "Miniatuurvoorbeelden" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Tijd vanaf" + }, + "timeTo": { + "message": "Tijd tot" + }, + "todayAt": { + "message": "Vandaag om" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Top-chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Trailer automatisch afspelen" + }, + "translations": { + "message": "vertalingen" + }, + "transparentBackground": { + "message": "Doorzichtige achtergrond" + }, + "trending": { + "message": "Populair" + }, + "tryToReloadThePage": { + "message": "Probeer de pagina te herladen" + }, + "type": { + "message": "Soort" + }, + "upNextAutoplay": { + "message": "Volgende in wachtrij automatisch afspelen" + }, + "use24HourFormat": { + "message": "24-uurstijd gebruiken" + }, + "version": { + "message": "Versie" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video omschrijving wordt uitgeklapt om de naam van de categorie te verkrijgen" + }, + "videoFormats": { + "message": "Video formaten" + }, + "videos": { + "message": "Video's" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Later bekijken" + }, + "watchTime": { + "message": "Kijk tijd" + }, + "whenTabIsChanged": { + "message": "Wanneer het tabblat veranderd" + }, + "white": { + "message": "Wit" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Geel" + }, + "youtubeHeaderLeft": { + "message": "YouTube-kop (links)" + }, + "youtubeHeaderRight": { + "message": "YouTube-kop (rechts)" + }, + "youtubeHomePage": { + "message": "YouTube-startpagina" + }, + "youtubeLanguage": { + "message": "YouTube taal" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limiteerd video kwaliteit tot 1080p voor h.264 codec" + } } \ No newline at end of file diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 074db3059..5e7bdb16a 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -1,977 +1,983 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Om" - }, - "accept": { - "message": "aksepter" - }, - "activate": { - "message": "Aktiver" - }, - "activateCaptions": { - "message": "Aktiver texting" - }, - "activateFullscreen": { - "message": "Aktiver fullskjerm" - }, - "activated": { - "message": "Aktivert" - }, - "activatedFeatures": { - "message": "Aktiverte funksjoner" - }, - "activeFeatures": { - "message": "Aktive funksjoner" - }, - "addScrollToTop": { - "message": "Legg til «Rull til toppen»" - }, - "ads": { - "message": "Reklamer" - }, - "all": { - "message": "Alle" - }, - "allow": { - "message": "Tillat" - }, - "allow60fps": { - "message": "Tillat 60fps" - }, - "alwaysActive": { - "message": "Alltid aktiv" - }, - "alwaysShowProgressBar": { - "message": "Alltid vis fremdriftslinje" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analysator" - }, - "appearance": { - "message": "Utseende" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Lyd" - }, - "audioFormats": { - "message": "Lyd formater" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-fullskjerm" - }, - "autopauseWhenSwitchingTabs": { - "message": "Autopause når du bytter faner" - }, - "autoplay": { - "message": "Autoplay" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Sikkerhetskopiering og tilbakestilling" - }, - "baseOnSystemColorScheme": { - "message": "Baser på systemfargevalg" - }, - "belowPlayer": { - "message": "Nedenfor spiller" - }, - "black": { - "message": "Svart" - }, - "blacklist": { - "message": "Svartelist" - }, - "blockAll": { - "message": "Blokker alle" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Blå" - }, - "blueGray": { - "message": "Blå grå" - }, - "bluelight": { - "message": "Blålys" - }, - "brown": { - "message": "Brun" - }, - "browser": { - "message": "Nettleser" - }, - "browserVersion": { - "message": "Nettleser versjon" - }, - "bubbles": { - "message": "Bobler" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Knapper" - }, - "cancel": { - "message": "Avbryt" - }, - "categories": { - "message": "Kategorier" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanaler" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Utklippstavle" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Kollaps av abonnements seksjonene" - }, - "collapsed": { - "message": "kollapset" - }, - "comments": { - "message": "Kommentarer" - }, - "confirmationBeforeClosing": { - "message": "Bekreftelse før stenging" - }, - "cookies": { - "message": "Informasjonskapslene" - }, - "cores": { - "message": "Kjerner" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Tilpasset CSS" - }, - "customJs": { - "message": "Tilpasset JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Mørk" - }, - "darkTheme": { - "message": "Mørkt tema" - }, - "dateAndTime": { - "message": "Dato og klokkeslett" - }, - "dawn": { - "message": "Soloppgang" - }, - "decreasePlaybackSpeed": { - "message": "Reduser avspillingshastighet" - }, - "decreaseVolume": { - "message": "Reduser volumet" - }, - "deepOrange": { - "message": "Dyporansje" - }, - "deepPurple": { - "message": "Mørkelilla" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Standard kanalfane" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Slett YouTube-informasjonskapsler" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Beskrivelse" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Ørken" - }, - "details": { - "message": "Detaljer" - }, - "developerOptions": { - "message": "Utviklermuligheter" - }, - "device": { - "message": "Enhet" - }, - "dim": { - "message": "Dim" - }, - "disabled": { - "message": "Avslått" - }, - "dislike": { - "message": "Mislik" - }, - "doNotChange": { - "message": "Ikke endre" - }, - "donate": { - "message": "Doner" - }, - "draggable": { - "message": "Flyttbare" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "E-post" - }, - "empty": { - "message": "Tom" - }, - "enabled": { - "message": "Aktivert" - }, - "enabledForced": { - "message": "Aktivert (tvunget)" - }, - "expanded": { - "message": "Utvidet" - }, - "exportSettings": { - "message": "Eksporter innstillinger" - }, - "extension": { - "message": "Utvidelse" - }, - "file": { - "message": "Fil" - }, - "filters": { - "message": "Filtre" - }, - "fitToWindow": { - "message": "Tilpass til vindu" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Bunntekst" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Tvungen avspillingshastighet" - }, - "forcedTheaterMode": { - "message": "Tvunget teater-modus" - }, - "forcedVolume": { - "message": "Tvangsvolum" - }, - "foundABug": { - "message": "Fant du en feil?" - }, - "fullWindow": { - "message": "Fullt vindu" - }, - "general": { - "message": "Generell" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Gå til søkefeltet" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Grønn" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "HD-miniatyrbilde" - }, - "header": { - "message": "Overskrift" - }, - "hidden": { - "message": "Skjult" - }, - "hiddenOnVideoPage": { - "message": "Skjult på video siden" - }, - "hideAnimatedThumbnails": { - "message": "Skjul animerte miniatyrbilder" - }, - "hideAnnotations": { - "message": "Skjul annoteringer" - }, - "hideCards": { - "message": "Skjul kort" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Skjul detaljer" - }, - "hideEndscreen": { - "message": "Skjul sluttskjerm" - }, - "hideFeaturedContent": { - "message": "Skjul omtalt innhold" - }, - "hideFooter": { - "message": "Skjul bunntekst " - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Skjul spilleliste" - }, - "hideRightButtons": { - "message": "Skjul høyre knapper" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Skjul «Bla for detaljer»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Skjul visninger teller" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "Historie" - }, - "home": { - "message": "Hjem" - }, - "hover": { - "message": "Hold" - }, - "hoverOnVideoPage": { - "message": "Hold musepekeren på videosiden" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Hvor lenge siden videoen ble lastet opp" - }, - "icons": { - "message": "Ikoner" - }, - "iconsOnly": { - "message": "Bare Ikoner" - }, - "importSettings": { - "message": "Importer innstillinger" - }, - "improveLogo": { - "message": "Improve logo" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube-ikonet på YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube språk" - }, - "improvedtubeVersion": { - "message": "ImprovedTube versjon" - }, - "increasePlaybackSpeed": { - "message": "Øk avspillingshastigheten" - }, - "increaseVolume": { - "message": "Øk volumet" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Elementer" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Språk" - }, - "legacyYoutube": { - "message": "Legacy YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Lys" - }, - "lightBlue": { - "message": "Lyse blå" - }, - "lightGreen": { - "message": "Lyse grønn" - }, - "like": { - "message": "Like" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Likes" - }, - "lime": { - "message": "Lime" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Live chat" - }, - "liveChatType": { - "message": "Live chat type" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Høytthetsnormalisering" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Marker sette videoer" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mikser" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Mine farger" - }, - "name": { - "message": "Navn" - }, - "nativeMiniPlayer": { - "message": "Innfødt minispiller" - }, - "new": { - "message": "Ny" - }, - "nextVideo": { - "message": "Neste video" - }, - "night": { - "message": "Natt" - }, - "noActiveFeatures": { - "message": "Ingen aktive funksjoner" - }, - "noOpenVideoTabs": { - "message": "Ingen åpne videofaner" - }, - "none": { - "message": "Ingen" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Gammel" - }, - "onAllVideos": { - "message": "På alle videoer" - }, - "onSubscribedChannels": { - "message": "På abonnementskanaler" - }, - "onlyActiveOnYoutube": { - "message": "Bare aktiv på YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Bare en spillerforekomst som spiller" - }, - "orange": { - "message": "Oransje" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Andre" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "rettigheter" - }, - "pictureInPicture": { - "message": "Bilde-i-bilde" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Vanlig" - }, - "platform": { - "message": "Plattform" - }, - "playPause": { - "message": "Spill / Pause" - }, - "playbackSpeed": { - "message": "Avspillingshastighet" - }, - "player": { - "message": "Spiller" - }, - "playerColor": { - "message": "Spiller farge" - }, - "playerSize": { - "message": "Spiller størrelse" - }, - "playlist": { - "message": "Spilleliste" - }, - "playlists": { - "message": "Spillelister" - }, - "popupPlayer": { - "message": "Popup-spiller" - }, - "position": { - "message": "Posisjon" - }, - "pressAnyKeyOrScroll": { - "message": "Trykk på hvilken som helst tast eller bruk musehjulet." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Trykk på hvilken som helst tast eller bruk musehjulet" - }, - "previousVideo": { - "message": "Forrige video" - }, - "primaryColor": { - "message": "Hovedfarge" - }, - "purple": { - "message": "Lilla" - }, - "quality": { - "message": "Quality" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Rangere oss" - }, - "red": { - "message": "Rød" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Relaterte videoer" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Fjern relaterte søkeresultater" - }, - "repeat": { - "message": "Gjenta" - }, - "reset": { - "message": "Tilbakestill" - }, - "resetAllSettings": { - "message": "Tilbakestill alle instillinger" - }, - "resetAllShortcuts": { - "message": "Tilbakestill alle snarveier" - }, - "reverse": { - "message": "Omvendt" - }, - "rotate": { - "message": "Roter" - }, - "save": { - "message": "Lagre" - }, - "saveAs": { - "message": "Lagre som" - }, - "schedule": { - "message": "Tidsplan" - }, - "screen": { - "message": "Skjerm" - }, - "screenshot": { - "message": "Skjermbilde" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Søk" - }, - "searchBarOnly": { - "message": "Bare søkefelt" - }, - "seekBackward10Seconds": { - "message": "Spol 10 sekunder bakover" - }, - "seekForward10Seconds": { - "message": "Spol 10 sekunder frem" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Innstillinger" - }, - "settingsSuccessfullyImported": { - "message": "Innstillinger importert" - }, - "shortcuts": { - "message": "Snarveier" - }, - "showCardsOnMouseHover": { - "message": "Vis kort på musepekeren" - }, - "showChannelVideosCount": { - "message": "Vis antall kanaler" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Tilfeldig rekkefølge" - }, - "sidebar": { - "message": "Sidepanel" - }, - "spacebar": { - "message": "Mellomrom" - }, - "squaredUserImages": { - "message": "Kvadratiske brukerbilder" - }, - "static": { - "message": "Statisk" - }, - "step": { - "message": "Steg" - }, - "stop": { - "message": "Stopp" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stiler" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Abonnementer" - }, - "subtitles": { - "message": "Undertekster" - }, - "sunset": { - "message": "Solnedgang" - }, - "sunsetToSunrise": { - "message": "Solnedgang til soloppgang" - }, - "systemPeferenceDark": { - "message": "Systeminnstillinger: mørk" - }, - "systemPeferenceLight": { - "message": "Systeminnstillinger: lys" - }, - "teal": { - "message": "Blågrønn" - }, - "textColor": { - "message": "Tekstfarge" - }, - "themes": { - "message": "Temaer" - }, - "thisWillRemoveAllCookies": { - "message": "Dette vil fjerne alle informasjonskapsler." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Dette vil fjerne alle YouTube-informasjonskapsler" - }, - "thisWillResetAllSettings": { - "message": "Dette vil tilbakestille alle innstillinger." - }, - "thisWillResetAllShortcuts": { - "message": "Dette vil tilbakestille alle snarveier" - }, - "thumbnails": { - "message": "miniatyrbilder " - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Tid fra" - }, - "timeTo": { - "message": "Tid til" - }, - "todayAt": { - "message": "I dag kl" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Hoved chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Trailer autospilling" - }, - "translations": { - "message": "Oversettelser" - }, - "transparentBackground": { - "message": "Gjennomsiktig bakgrunn" - }, - "trending": { - "message": "Trender" - }, - "tryToReloadThePage": { - "message": "Forsøk å laste inn siden på nytt" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "Opp neste autospilling" - }, - "use24HourFormat": { - "message": "Bruk 24-timers format" - }, - "version": { - "message": "Versjon" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Videobeskrivelsen vil bli utvidet for å få navnet på kategorien" - }, - "videoFormats": { - "message": "Video formater" - }, - "videos": { - "message": "Videoer" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Se senere" - }, - "watchTime": { - "message": "Tid sett" - }, - "whenTabIsChanged": { - "message": "Når fanen endres" - }, - "white": { - "message": "Hvit" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Gul" - }, - "youtubeHeaderLeft": { - "message": "YouTube Header (til venstre)" - }, - "youtubeHeaderRight": { - "message": "YouTube Header (til høyre)" - }, - "youtubeHomePage": { - "message": "YouTube startside" - }, - "youtubeLanguage": { - "message": "YouTube språk" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube begrenser videokvaliteten til 1080p for h.264-kodeken" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Om" + }, + "accept": { + "message": "aksepter" + }, + "activate": { + "message": "Aktiver" + }, + "activateCaptions": { + "message": "Aktiver texting" + }, + "activateFullscreen": { + "message": "Aktiver fullskjerm" + }, + "activated": { + "message": "Aktivert" + }, + "activatedFeatures": { + "message": "Aktiverte funksjoner" + }, + "activeFeatures": { + "message": "Aktive funksjoner" + }, + "addScrollToTop": { + "message": "Legg til «Rull til toppen»" + }, + "ads": { + "message": "Reklamer" + }, + "all": { + "message": "Alle" + }, + "allow": { + "message": "Tillat" + }, + "allow60fps": { + "message": "Tillat 60fps" + }, + "alwaysActive": { + "message": "Alltid aktiv" + }, + "alwaysShowProgressBar": { + "message": "Alltid vis fremdriftslinje" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analysator" + }, + "appearance": { + "message": "Utseende" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "Lyd" + }, + "audioFormats": { + "message": "Lyd formater" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullskjerm" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause når du bytter faner" + }, + "autoplay": { + "message": "Autoplay" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Sikkerhetskopiering og tilbakestilling" + }, + "baseOnSystemColorScheme": { + "message": "Baser på systemfargevalg" + }, + "belowPlayer": { + "message": "Nedenfor spiller" + }, + "black": { + "message": "Svart" + }, + "blacklist": { + "message": "Svartelist" + }, + "blockAll": { + "message": "Blokker alle" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Blå" + }, + "blueGray": { + "message": "Blå grå" + }, + "bluelight": { + "message": "Blålys" + }, + "brown": { + "message": "Brun" + }, + "browser": { + "message": "Nettleser" + }, + "browserVersion": { + "message": "Nettleser versjon" + }, + "bubbles": { + "message": "Bobler" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Knapper" + }, + "cancel": { + "message": "Avbryt" + }, + "categories": { + "message": "Kategorier" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanaler" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Utklippstavle" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Kollaps av abonnements seksjonene" + }, + "collapsed": { + "message": "kollapset" + }, + "comments": { + "message": "Kommentarer" + }, + "confirmationBeforeClosing": { + "message": "Bekreftelse før stenging" + }, + "cookies": { + "message": "Informasjonskapslene" + }, + "cores": { + "message": "Kjerner" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Tilpasset CSS" + }, + "customJs": { + "message": "Tilpasset JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Mørk" + }, + "darkTheme": { + "message": "Mørkt tema" + }, + "dateAndTime": { + "message": "Dato og klokkeslett" + }, + "dawn": { + "message": "Soloppgang" + }, + "decreasePlaybackSpeed": { + "message": "Reduser avspillingshastighet" + }, + "decreaseVolume": { + "message": "Reduser volumet" + }, + "deepOrange": { + "message": "Dyporansje" + }, + "deepPurple": { + "message": "Mørkelilla" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Standard kanalfane" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Slett YouTube-informasjonskapsler" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Beskrivelse" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Ørken" + }, + "details": { + "message": "Detaljer" + }, + "developerOptions": { + "message": "Utviklermuligheter" + }, + "device": { + "message": "Enhet" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Avslått" + }, + "dislike": { + "message": "Mislik" + }, + "doNotChange": { + "message": "Ikke endre" + }, + "donate": { + "message": "Doner" + }, + "draggable": { + "message": "Flyttbare" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "E-post" + }, + "empty": { + "message": "Tom" + }, + "enabled": { + "message": "Aktivert" + }, + "enabledForced": { + "message": "Aktivert (tvunget)" + }, + "expanded": { + "message": "Utvidet" + }, + "exportSettings": { + "message": "Eksporter innstillinger" + }, + "extension": { + "message": "Utvidelse" + }, + "file": { + "message": "Fil" + }, + "filters": { + "message": "Filtre" + }, + "fitToWindow": { + "message": "Tilpass til vindu" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Bunntekst" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Tvungen avspillingshastighet" + }, + "forcedTheaterMode": { + "message": "Tvunget teater-modus" + }, + "forcedVolume": { + "message": "Tvangsvolum" + }, + "foundABug": { + "message": "Fant du en feil?" + }, + "fullWindow": { + "message": "Fullt vindu" + }, + "general": { + "message": "Generell" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Gå til søkefeltet" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Grønn" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD-miniatyrbilde" + }, + "header": { + "message": "Overskrift" + }, + "hidden": { + "message": "Skjult" + }, + "hiddenOnVideoPage": { + "message": "Skjult på video siden" + }, + "hideAnimatedThumbnails": { + "message": "Skjul animerte miniatyrbilder" + }, + "hideAnnotations": { + "message": "Skjul annoteringer" + }, + "hideCards": { + "message": "Skjul kort" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Skjul detaljer" + }, + "hideEndscreen": { + "message": "Skjul sluttskjerm" + }, + "hideFeaturedContent": { + "message": "Skjul omtalt innhold" + }, + "hideFooter": { + "message": "Skjul bunntekst " + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Skjul spilleliste" + }, + "hideRightButtons": { + "message": "Skjul høyre knapper" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Skjul «Bla for detaljer»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Skjul visninger teller" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Historie" + }, + "home": { + "message": "Hjem" + }, + "hover": { + "message": "Hold" + }, + "hoverOnVideoPage": { + "message": "Hold musepekeren på videosiden" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Hvor lenge siden videoen ble lastet opp" + }, + "icons": { + "message": "Ikoner" + }, + "iconsOnly": { + "message": "Bare Ikoner" + }, + "importSettings": { + "message": "Importer innstillinger" + }, + "improveLogo": { + "message": "Improve logo" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube-ikonet på YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube språk" + }, + "improvedtubeVersion": { + "message": "ImprovedTube versjon" + }, + "increasePlaybackSpeed": { + "message": "Øk avspillingshastigheten" + }, + "increaseVolume": { + "message": "Øk volumet" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Elementer" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Språk" + }, + "legacyYoutube": { + "message": "Legacy YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Lys" + }, + "lightBlue": { + "message": "Lyse blå" + }, + "lightGreen": { + "message": "Lyse grønn" + }, + "like": { + "message": "Like" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Likes" + }, + "lime": { + "message": "Lime" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Live chat type" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Høytthetsnormalisering" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Marker sette videoer" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mikser" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Mine farger" + }, + "name": { + "message": "Navn" + }, + "nativeMiniPlayer": { + "message": "Innfødt minispiller" + }, + "new": { + "message": "Ny" + }, + "nextVideo": { + "message": "Neste video" + }, + "night": { + "message": "Natt" + }, + "noActiveFeatures": { + "message": "Ingen aktive funksjoner" + }, + "noOpenVideoTabs": { + "message": "Ingen åpne videofaner" + }, + "none": { + "message": "Ingen" + }, + "normal": { + "message": "Normal" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Gammel" + }, + "onAllVideos": { + "message": "På alle videoer" + }, + "onSubscribedChannels": { + "message": "På abonnementskanaler" + }, + "onlyActiveOnYoutube": { + "message": "Bare aktiv på YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Bare en spillerforekomst som spiller" + }, + "orange": { + "message": "Oransje" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Andre" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "rettigheter" + }, + "pictureInPicture": { + "message": "Bilde-i-bilde" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Vanlig" + }, + "platform": { + "message": "Plattform" + }, + "playPause": { + "message": "Spill / Pause" + }, + "playbackSpeed": { + "message": "Avspillingshastighet" + }, + "player": { + "message": "Spiller" + }, + "playerColor": { + "message": "Spiller farge" + }, + "playerSize": { + "message": "Spiller størrelse" + }, + "playlist": { + "message": "Spilleliste" + }, + "playlists": { + "message": "Spillelister" + }, + "popupPlayer": { + "message": "Popup-spiller" + }, + "position": { + "message": "Posisjon" + }, + "pressAnyKeyOrScroll": { + "message": "Trykk på hvilken som helst tast eller bruk musehjulet." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Trykk på hvilken som helst tast eller bruk musehjulet" + }, + "previousVideo": { + "message": "Forrige video" + }, + "primaryColor": { + "message": "Hovedfarge" + }, + "purple": { + "message": "Lilla" + }, + "quality": { + "message": "Quality" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Rangere oss" + }, + "red": { + "message": "Rød" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Relaterte videoer" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Fjern relaterte søkeresultater" + }, + "repeat": { + "message": "Gjenta" + }, + "reset": { + "message": "Tilbakestill" + }, + "resetAllSettings": { + "message": "Tilbakestill alle instillinger" + }, + "resetAllShortcuts": { + "message": "Tilbakestill alle snarveier" + }, + "reverse": { + "message": "Omvendt" + }, + "rotate": { + "message": "Roter" + }, + "save": { + "message": "Lagre" + }, + "saveAs": { + "message": "Lagre som" + }, + "schedule": { + "message": "Tidsplan" + }, + "screen": { + "message": "Skjerm" + }, + "screenshot": { + "message": "Skjermbilde" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Søk" + }, + "searchBarOnly": { + "message": "Bare søkefelt" + }, + "seekBackward10Seconds": { + "message": "Spol 10 sekunder bakover" + }, + "seekForward10Seconds": { + "message": "Spol 10 sekunder frem" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Innstillinger" + }, + "settingsSuccessfullyImported": { + "message": "Innstillinger importert" + }, + "shortcuts": { + "message": "Snarveier" + }, + "showCardsOnMouseHover": { + "message": "Vis kort på musepekeren" + }, + "showChannelVideosCount": { + "message": "Vis antall kanaler" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Tilfeldig rekkefølge" + }, + "sidebar": { + "message": "Sidepanel" + }, + "spacebar": { + "message": "Mellomrom" + }, + "squaredUserImages": { + "message": "Kvadratiske brukerbilder" + }, + "static": { + "message": "Statisk" + }, + "step": { + "message": "Steg" + }, + "stop": { + "message": "Stopp" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stiler" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Abonnementer" + }, + "subtitles": { + "message": "Undertekster" + }, + "sunset": { + "message": "Solnedgang" + }, + "sunsetToSunrise": { + "message": "Solnedgang til soloppgang" + }, + "systemPeferenceDark": { + "message": "Systeminnstillinger: mørk" + }, + "systemPeferenceLight": { + "message": "Systeminnstillinger: lys" + }, + "teal": { + "message": "Blågrønn" + }, + "textColor": { + "message": "Tekstfarge" + }, + "themes": { + "message": "Temaer" + }, + "thisWillRemoveAllCookies": { + "message": "Dette vil fjerne alle informasjonskapsler." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Dette vil fjerne alle YouTube-informasjonskapsler" + }, + "thisWillResetAllSettings": { + "message": "Dette vil tilbakestille alle innstillinger." + }, + "thisWillResetAllShortcuts": { + "message": "Dette vil tilbakestille alle snarveier" + }, + "thumbnails": { + "message": "miniatyrbilder " + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Tid fra" + }, + "timeTo": { + "message": "Tid til" + }, + "todayAt": { + "message": "I dag kl" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Hoved chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Trailer autospilling" + }, + "translations": { + "message": "Oversettelser" + }, + "transparentBackground": { + "message": "Gjennomsiktig bakgrunn" + }, + "trending": { + "message": "Trender" + }, + "tryToReloadThePage": { + "message": "Forsøk å laste inn siden på nytt" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Opp neste autospilling" + }, + "use24HourFormat": { + "message": "Bruk 24-timers format" + }, + "version": { + "message": "Versjon" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Videobeskrivelsen vil bli utvidet for å få navnet på kategorien" + }, + "videoFormats": { + "message": "Video formater" + }, + "videos": { + "message": "Videoer" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Se senere" + }, + "watchTime": { + "message": "Tid sett" + }, + "whenTabIsChanged": { + "message": "Når fanen endres" + }, + "white": { + "message": "Hvit" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Gul" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (til venstre)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (til høyre)" + }, + "youtubeHomePage": { + "message": "YouTube startside" + }, + "youtubeLanguage": { + "message": "YouTube språk" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube begrenser videokvaliteten til 1080p for h.264-kodeken" + } } \ No newline at end of file diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index b96324b8f..0e720e205 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -1,995 +1,1001 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Informacje" - }, - "accept": { - "message": "Akceptuj" - }, - "activate": { - "message": "Aktywuj" - }, - "activateCaptions": { - "message": "Aktywuj napisy" - }, - "activateFullscreen": { - "message": "Aktywuj tryb pełnoekranowy" - }, - "activated": { - "message": "Aktywowane" - }, - "activatedFeatures": { - "message": "Aktywowane funkcje" - }, - "activeFeatures": { - "message": "Aktywne funkcje" - }, - "addScrollToTop": { - "message": "Dodaj «Przewiń do góry»" - }, - "ads": { - "message": "Reklamy" - }, - "all": { - "message": "Wszystkie" - }, - "allow": { - "message": "Zezwól" - }, - "allow60fps": { - "message": "Zezwól na 60fps" - }, - "alwaysActive": { - "message": "Zawsze aktywne" - }, - "alwaysShowProgressBar": { - "message": "Zawsze pokazuj pasek postępu" - }, - "amber": { - "message": "Bursztynowy" - }, - "analyzer": { - "message": "Analizator" - }, - "appearance": { - "message": "Wygląd" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formaty audio" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Automatyczny tryb pełnoekranowy" - }, - "autopauseWhenSwitchingTabs": { - "message": "Automatyczna pauza przy zmianie kart" - }, - "autoplay": { - "message": "Autoodtwarzanie" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Kopia zapasowa i reset" - }, - "baseOnSystemColorScheme": { - "message": "Bazuj na systemowym schemacie kolorów" - }, - "belowPlayer": { - "message": "Pod odtwarzaczem" - }, - "black": { - "message": "Czarny" - }, - "blacklist": { - "message": "Czarna lista" - }, - "blockAll": { - "message": "Blokuj wszystkie" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Niebieski" - }, - "blueGray": { - "message": "Szaroniebieski" - }, - "bluelight": { - "message": "Niebieskie światło" - }, - "brown": { - "message": "Brązowy" - }, - "browser": { - "message": "Przeglądarka" - }, - "browserVersion": { - "message": "Wersja przeglądarki" - }, - "bubbles": { - "message": "Dymki" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Przyciski" - }, - "cancel": { - "message": "Anuluj" - }, - "categories": { - "message": "Kategorie" - }, - "channel": { - "message": "Kanał" - }, - "channels": { - "message": "Kanały" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Schowek" - }, - "codecH264": { - "message": "Kodek h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Zwinięcie sekcji subskrypcji" - }, - "collapsed": { - "message": "Zwinięte" - }, - "comments": { - "message": "Komentarze" - }, - "confirmationBeforeClosing": { - "message": "Potwierdzenie przy zamknięciu" - }, - "cookies": { - "message": "Ciasteczka" - }, - "cores": { - "message": "Rdzenie" - }, - "cropChapterTitles": { - "message": "Przycinaj tytuły rozdziałów" - }, - "customCss": { - "message": "Niestandardowy CSS" - }, - "customJs": { - "message": "Niestandardowy JS" - }, - "customMiniPlayer": { - "message": "Niestandardowy Mini-Odtwarzacz" - }, - "cyan": { - "message": "Cyjan" - }, - "dark": { - "message": "Ciemny" - }, - "darkTheme": { - "message": "Ciemny motyw" - }, - "dateAndTime": { - "message": "Data i godzina" - }, - "dawn": { - "message": "Świt" - }, - "decreasePlaybackSpeed": { - "message": "Zmniejsz prędkość odtwarzania" - }, - "decreaseVolume": { - "message": "Zmniejsz głośność" - }, - "deepOrange": { - "message": "Głęboki pomarańczowy" - }, - "deepPurple": { - "message": "Głęboki fioletowy" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Domyślna zakładka na kanałach" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Usuń obejrzane wideo" - }, - "deleteYoutubeCookies": { - "message": "Usuń ciasteczka YouTube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Opis" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Pustynia" - }, - "details": { - "message": "Szczegóły" - }, - "developerOptions": { - "message": "Ustawienia deweloperskie" - }, - "device": { - "message": "Urządzenie" - }, - "dim": { - "message": "Przyciemnij" - }, - "disabled": { - "message": "Wyłączony" - }, - "dislike": { - "message": "Nie podoba mi się" - }, - "doNotChange": { - "message": "Nie zmieniaj" - }, - "donate": { - "message": "Dotacja" - }, - "draggable": { - "message": "Przeciągalne" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Pusty" - }, - "enabled": { - "message": "Włączony" - }, - "enabledForced": { - "message": "Włączony (wymuszony)" - }, - "expanded": { - "message": "Rozwinięty" - }, - "exportSettings": { - "message": "Eksport ustawień" - }, - "extension": { - "message": "Rozszerzenie" - }, - "file": { - "message": "Plik" - }, - "filters": { - "message": "Filtry" - }, - "fitToWindow": { - "message": "Dopasuj do okna" - }, - "flash": { - "message": "Błysk" - }, - "font": { - "message": "Czcionka" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Stopka" - }, - "forceSDR": { - "message": "Wymuś SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Wymuś prędkość odtwarzania" - }, - "forcedTheaterMode": { - "message": "Wymuś tryb kinowy" - }, - "forcedVolume": { - "message": "Wymuś poziom głośności" - }, - "foundABug": { - "message": "Znalazłeś błąd?" - }, - "fullWindow": { - "message": "Pełne okno" - }, - "general": { - "message": "Ogólne" - }, - "geoPreference": { - "message": "Geo preferencja" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Idź do paska wyszukiwania" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Zielony" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "Miniatura HD" - }, - "header": { - "message": "Nagłówek" - }, - "hidden": { - "message": "Ukryty" - }, - "hiddenOnVideoPage": { - "message": "Ukryty na stronie z wideo" - }, - "hideAnimatedThumbnails": { - "message": "Ukryj animowane miniatury" - }, - "hideAnnotations": { - "message": "Ukryj adnotacje" - }, - "hideCards": { - "message": "Ukryj karty" - }, - "hideCountryCode": { - "message": "Ukryj kod kraju" - }, - "hideDate": { - "message": "Ukryj datę" - }, - "hideDetails": { - "message": "Ukryj szczegóły" - }, - "hideEndscreen": { - "message": "Ukryj ekran końcowy" - }, - "hideFeaturedContent": { - "message": "Ukryj wyróżnioną zawartość" - }, - "hideFooter": { - "message": "Ukryj stopkę" - }, - "hideGradientBottom": { - "message": "Ukryj cień dookoła paska odtwarzania" - }, - "hideMoreButton": { - "message": "Ukryj przycisk \"Więcej\"" - }, - "hidePlayerControlsBar": { - "message": "Ukryj pasek sterowania odtwarzaczem" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Ukryj playliste" - }, - "hideRightButtons": { - "message": "Ukryj przyciski po prawej" - }, - "hideSaveButton": { - "message": "Ukryj przycisk \"Zapisz\"" - }, - "hideScrollForDetails": { - "message": "Ukryj «Przewiń do szczegółów»" - }, - "hideShareButton": { - "message": "Ukryj przycisk \"Udostępnij\"" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Ukryj przyciski na miniaturach" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Ukryj ilość wyświetleń" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "Historia" - }, - "home": { - "message": "Strona główna" - }, - "hover": { - "message": "Najedź" - }, - "hoverOnVideoPage": { - "message": "Najedź na stronie wideo" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Jak dawno wideo zostało przesłane" - }, - "icons": { - "message": "Ikony" - }, - "iconsOnly": { - "message": "Tylko ikony" - }, - "importSettings": { - "message": "Import ustawień" - }, - "improveLogo": { - "message": "Ulepsz logo" - }, - "improvedtubeIconOnYoutube": { - "message": "Ikona ImprovedTube na YouTube" - }, - "improvedtubeLanguage": { - "message": "Język ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Wersja ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Zwiększ prędkość odtwarzania" - }, - "increaseVolume": { - "message": "Zwiększ głośność" - }, - "indigo": { - "message": "Indygo" - }, - "items": { - "message": "Przedmioty" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Języki" - }, - "legacyYoutube": { - "message": "Stara wersja YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Jasny" - }, - "lightBlue": { - "message": "Jasnoniebieski" - }, - "lightGreen": { - "message": "Jasnozielony" - }, - "like": { - "message": "Polub" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Polubienia" - }, - "lime": { - "message": "Limonkowy" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Czat na żywo" - }, - "liveChatType": { - "message": "Rodzaj czatu na żywo" - }, - "location": { - "message": "Położenie" - }, - "loudnessNormalization": { - "message": "Normalizacja głośności" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Oznacz obejrzane wideo" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mikser" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Moje kolory" - }, - "name": { - "message": "Nazwa" - }, - "nativeMiniPlayer": { - "message": "Natywny mini-odtwarzacz" - }, - "new": { - "message": "Nowe" - }, - "nextVideo": { - "message": "Następne wideo" - }, - "night": { - "message": "Noc" - }, - "noActiveFeatures": { - "message": "Brak aktywnych funkcji" - }, - "noOpenVideoTabs": { - "message": "Brak otwartych kart wideo" - }, - "none": { - "message": "Brak" - }, - "normal": { - "message": "Normalny" - }, - "old": { - "message": "Stary" - }, - "onAllVideos": { - "message": "Na wszystkich wideo" - }, - "onSubscribedChannels": { - "message": "Na subskrybowanych kanałach" - }, - "onlyActiveOnYoutube": { - "message": "Aktywny tylko na YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Odtwarzanie tylko jednej instancji odtwarzacza" - }, - "openPopupPlayer": { - "message": "Otwórz wideo/playliste w nowym oknie" - }, - "orange": { - "message": "Pomarańczowy" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Inne" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Uprawnienia" - }, - "pictureInPicture": { - "message": "Obraz w Obrazie" - }, - "pink": { - "message": "Różowy" - }, - "plain": { - "message": "Zwykły" - }, - "platform": { - "message": "Platforma" - }, - "playPause": { - "message": "Odtwarzanie / Pauza" - }, - "playbackSpeed": { - "message": "Prędkość odtwarzania" - }, - "player": { - "message": "Odtwarzacz" - }, - "playerColor": { - "message": "Kolor odtwarzacza" - }, - "playerSize": { - "message": "Rozmiar odtwarzacza" - }, - "playlist": { - "message": "Lista odtwarzania" - }, - "playlists": { - "message": "Listy odtwarzania" - }, - "popupPlayer": { - "message": "Odtwarzacz popout" - }, - "position": { - "message": "Pozycja" - }, - "pressAnyKeyOrScroll": { - "message": "Wciśnij dowolny przycisk lub użyj kółka myszy." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Wciśnij dowolny przycisk lub użyj kółka myszy" - }, - "previousVideo": { - "message": "Poprzednie wideo" - }, - "primaryColor": { - "message": "Kolor główny" - }, - "purple": { - "message": "Fioletowy" - }, - "quality": { - "message": "Jakość" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Oceń nas" - }, - "red": { - "message": "Czerwony" - }, - "redDislikeButton": { - "message": "Koloruj przycisk 'Nie lubię' na czerwono" - }, - "relatedVideos": { - "message": "Wideo powiązane" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Usuń powiązane wyniki wyszukiwania" - }, - "repeat": { - "message": "Powtarzaj" - }, - "reset": { - "message": "Reset" - }, - "resetAllSettings": { - "message": "Resetuj wszystkie ustawienia" - }, - "resetAllShortcuts": { - "message": "Resetuj wszystkie skróty" - }, - "reverse": { - "message": "Odwróć" - }, - "rotate": { - "message": "Obróć" - }, - "save": { - "message": "Zapisz" - }, - "saveAs": { - "message": "Zapisz jako" - }, - "schedule": { - "message": "Harmonogram" - }, - "screen": { - "message": "Ekran" - }, - "screenshot": { - "message": "Zrzut ekranu" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Wyszukaj" - }, - "searchBarOnly": { - "message": "Tylko pasek wyszukiwania" - }, - "seekBackward10Seconds": { - "message": "Przewiń 10 sekund do tyłu" - }, - "seekForward10Seconds": { - "message": "Przewiń 10 sekund do przodu" - }, - "seekNextChapter": { - "message": "Przewiń do następnego rozdziału" - }, - "seekPreviousChapter": { - "message": "Przewiń do poprzedniego rozdziału" - }, - "settings": { - "message": "Ustawienia" - }, - "settingsSuccessfullyImported": { - "message": "Ustawienia pomyślnie zaimportowane" - }, - "shortcuts": { - "message": "Skróty" - }, - "showCardsOnMouseHover": { - "message": "Pokaż karty po najechaniu myszą" - }, - "showChannelVideosCount": { - "message": "Pokaż ilość wideo na kanale" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Losowo" - }, - "sidebar": { - "message": "Panel boczny" - }, - "spacebar": { - "message": "Spacja" - }, - "squaredUserImages": { - "message": "Kwadratowe avatary użytkowników" - }, - "static": { - "message": "Statyczne" - }, - "statsForNerds": { - "message": "Statystyki dla nerdów" - }, - "step": { - "message": "Stopień" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Styl" - }, - "styles": { - "message": "Style" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Subskrypcje" - }, - "subtitles": { - "message": "Napisy" - }, - "sunset": { - "message": "Zachód" - }, - "sunsetToSunrise": { - "message": "Od zachodu do wschodu słońca" - }, - "systemPeferenceDark": { - "message": "Preferencja systemowa: ciemne" - }, - "systemPeferenceLight": { - "message": "Preferencja systemowa: jasne" - }, - "teal": { - "message": "Morski" - }, - "textColor": { - "message": "Kolor tekstu" - }, - "themes": { - "message": "Motywy" - }, - "thisWillRemoveAllCookies": { - "message": "To usunie wszystkie ciasteczka." - }, - "thisWillRemoveAllWatchedVideos": { - "message": "To usunie wszystkie obejrzane wideo." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "To usunie wszystkie ciasteczka YouTube." - }, - "thisWillResetAllSettings": { - "message": "To zresetuje wszystkie ustawienia." - }, - "thisWillResetAllShortcuts": { - "message": "To zresetuje wszystkie skróty" - }, - "thumbnails": { - "message": "Miniatury" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Od" - }, - "timeTo": { - "message": "Do" - }, - "todayAt": { - "message": "Dzisiaj o" - }, - "toggleAutoplay": { - "message": "Przełącz autoodtwarzanie" - }, - "toggleCards": { - "message": "Przełącz karty" - }, - "toggleControls": { - "message": "Przełącz widoczność sterowania odtwarzaczew" - }, - "topChat": { - "message": "Czat na górze" - }, - "trackWatchedVideos": { - "message": "Śledź obejrzane wideo" - }, - "trailerAutoplay": { - "message": "Autoodtwarzanie zwiastunów" - }, - "translations": { - "message": "Tłumaczenia" - }, - "transparentBackground": { - "message": "Przezroczyste tło" - }, - "trending": { - "message": "Na czasie" - }, - "tryToReloadThePage": { - "message": "Spróbuj przeładować stronę" - }, - "type": { - "message": "Typ" - }, - "upNextAutoplay": { - "message": "Autoodwarzanie następnego wideo" - }, - "use24HourFormat": { - "message": "Używaj 24-godzinnego formatu czasu" - }, - "version": { - "message": "Wersja" - }, - "video": { - "message": "Wideo" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Opis wideo zostanie rozwinięty aby pozyskać nazwę kategorii" - }, - "videoFormats": { - "message": "Formaty wideo" - }, - "videos": { - "message": "Wideo" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Głośność" - }, - "watchLater": { - "message": "Obejrzyj później" - }, - "watchTime": { - "message": "Czas oglądania" - }, - "whenTabIsChanged": { - "message": "Kiedy zostaje zmieniona karta" - }, - "white": { - "message": "Biały" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Żółty" - }, - "youtubeHeaderLeft": { - "message": "Nagłówek YouTube (lewy)" - }, - "youtubeHeaderRight": { - "message": "Nagłówek YouTube (prawy)" - }, - "youtubeHomePage": { - "message": "Strona główna YouTube" - }, - "youtubeLanguage": { - "message": "Język YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube ogranicza jakość wideo do 1080p przy kodeku h.264" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Informacje" + }, + "accept": { + "message": "Akceptuj" + }, + "activate": { + "message": "Aktywuj" + }, + "activateCaptions": { + "message": "Aktywuj napisy" + }, + "activateFullscreen": { + "message": "Aktywuj tryb pełnoekranowy" + }, + "activated": { + "message": "Aktywowane" + }, + "activatedFeatures": { + "message": "Aktywowane funkcje" + }, + "activeFeatures": { + "message": "Aktywne funkcje" + }, + "addScrollToTop": { + "message": "Dodaj «Przewiń do góry»" + }, + "ads": { + "message": "Reklamy" + }, + "all": { + "message": "Wszystkie" + }, + "allow": { + "message": "Zezwól" + }, + "allow60fps": { + "message": "Zezwól na 60fps" + }, + "alwaysActive": { + "message": "Zawsze aktywne" + }, + "alwaysShowProgressBar": { + "message": "Zawsze pokazuj pasek postępu" + }, + "amber": { + "message": "Bursztynowy" + }, + "analyzer": { + "message": "Analizator" + }, + "appearance": { + "message": "Wygląd" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formaty audio" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Automatyczny tryb pełnoekranowy" + }, + "autopauseWhenSwitchingTabs": { + "message": "Automatyczna pauza przy zmianie kart" + }, + "autoplay": { + "message": "Autoodtwarzanie" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Kopia zapasowa i reset" + }, + "baseOnSystemColorScheme": { + "message": "Bazuj na systemowym schemacie kolorów" + }, + "belowPlayer": { + "message": "Pod odtwarzaczem" + }, + "black": { + "message": "Czarny" + }, + "blacklist": { + "message": "Czarna lista" + }, + "blockAll": { + "message": "Blokuj wszystkie" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Niebieski" + }, + "blueGray": { + "message": "Szaroniebieski" + }, + "bluelight": { + "message": "Niebieskie światło" + }, + "brown": { + "message": "Brązowy" + }, + "browser": { + "message": "Przeglądarka" + }, + "browserVersion": { + "message": "Wersja przeglądarki" + }, + "bubbles": { + "message": "Dymki" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Przyciski" + }, + "cancel": { + "message": "Anuluj" + }, + "categories": { + "message": "Kategorie" + }, + "channel": { + "message": "Kanał" + }, + "channels": { + "message": "Kanały" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Schowek" + }, + "codecH264": { + "message": "Kodek h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Zwinięcie sekcji subskrypcji" + }, + "collapsed": { + "message": "Zwinięte" + }, + "comments": { + "message": "Komentarze" + }, + "confirmationBeforeClosing": { + "message": "Potwierdzenie przy zamknięciu" + }, + "cookies": { + "message": "Ciasteczka" + }, + "cores": { + "message": "Rdzenie" + }, + "cropChapterTitles": { + "message": "Przycinaj tytuły rozdziałów" + }, + "customCss": { + "message": "Niestandardowy CSS" + }, + "customJs": { + "message": "Niestandardowy JS" + }, + "customMiniPlayer": { + "message": "Niestandardowy Mini-Odtwarzacz" + }, + "cyan": { + "message": "Cyjan" + }, + "dark": { + "message": "Ciemny" + }, + "darkTheme": { + "message": "Ciemny motyw" + }, + "dateAndTime": { + "message": "Data i godzina" + }, + "dawn": { + "message": "Świt" + }, + "decreasePlaybackSpeed": { + "message": "Zmniejsz prędkość odtwarzania" + }, + "decreaseVolume": { + "message": "Zmniejsz głośność" + }, + "deepOrange": { + "message": "Głęboki pomarańczowy" + }, + "deepPurple": { + "message": "Głęboki fioletowy" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Domyślna zakładka na kanałach" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Usuń obejrzane wideo" + }, + "deleteYoutubeCookies": { + "message": "Usuń ciasteczka YouTube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Opis" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Pustynia" + }, + "details": { + "message": "Szczegóły" + }, + "developerOptions": { + "message": "Ustawienia deweloperskie" + }, + "device": { + "message": "Urządzenie" + }, + "dim": { + "message": "Przyciemnij" + }, + "disabled": { + "message": "Wyłączony" + }, + "dislike": { + "message": "Nie podoba mi się" + }, + "doNotChange": { + "message": "Nie zmieniaj" + }, + "donate": { + "message": "Dotacja" + }, + "draggable": { + "message": "Przeciągalne" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Pusty" + }, + "enabled": { + "message": "Włączony" + }, + "enabledForced": { + "message": "Włączony (wymuszony)" + }, + "expanded": { + "message": "Rozwinięty" + }, + "exportSettings": { + "message": "Eksport ustawień" + }, + "extension": { + "message": "Rozszerzenie" + }, + "file": { + "message": "Plik" + }, + "filters": { + "message": "Filtry" + }, + "fitToWindow": { + "message": "Dopasuj do okna" + }, + "flash": { + "message": "Błysk" + }, + "font": { + "message": "Czcionka" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Stopka" + }, + "forceSDR": { + "message": "Wymuś SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Wymuś prędkość odtwarzania" + }, + "forcedTheaterMode": { + "message": "Wymuś tryb kinowy" + }, + "forcedVolume": { + "message": "Wymuś poziom głośności" + }, + "foundABug": { + "message": "Znalazłeś błąd?" + }, + "fullWindow": { + "message": "Pełne okno" + }, + "general": { + "message": "Ogólne" + }, + "geoPreference": { + "message": "Geo preferencja" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Idź do paska wyszukiwania" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Zielony" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "Miniatura HD" + }, + "header": { + "message": "Nagłówek" + }, + "hidden": { + "message": "Ukryty" + }, + "hiddenOnVideoPage": { + "message": "Ukryty na stronie z wideo" + }, + "hideAnimatedThumbnails": { + "message": "Ukryj animowane miniatury" + }, + "hideAnnotations": { + "message": "Ukryj adnotacje" + }, + "hideCards": { + "message": "Ukryj karty" + }, + "hideCountryCode": { + "message": "Ukryj kod kraju" + }, + "hideDate": { + "message": "Ukryj datę" + }, + "hideDetails": { + "message": "Ukryj szczegóły" + }, + "hideEndscreen": { + "message": "Ukryj ekran końcowy" + }, + "hideFeaturedContent": { + "message": "Ukryj wyróżnioną zawartość" + }, + "hideFooter": { + "message": "Ukryj stopkę" + }, + "hideGradientBottom": { + "message": "Ukryj cień dookoła paska odtwarzania" + }, + "hideMoreButton": { + "message": "Ukryj przycisk \"Więcej\"" + }, + "hidePlayerControlsBar": { + "message": "Ukryj pasek sterowania odtwarzaczem" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Ukryj playliste" + }, + "hideRightButtons": { + "message": "Ukryj przyciski po prawej" + }, + "hideSaveButton": { + "message": "Ukryj przycisk \"Zapisz\"" + }, + "hideScrollForDetails": { + "message": "Ukryj «Przewiń do szczegółów»" + }, + "hideShareButton": { + "message": "Ukryj przycisk \"Udostępnij\"" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Ukryj przyciski na miniaturach" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Ukryj ilość wyświetleń" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Historia" + }, + "home": { + "message": "Strona główna" + }, + "hover": { + "message": "Najedź" + }, + "hoverOnVideoPage": { + "message": "Najedź na stronie wideo" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Jak dawno wideo zostało przesłane" + }, + "icons": { + "message": "Ikony" + }, + "iconsOnly": { + "message": "Tylko ikony" + }, + "importSettings": { + "message": "Import ustawień" + }, + "improveLogo": { + "message": "Ulepsz logo" + }, + "improvedtubeIconOnYoutube": { + "message": "Ikona ImprovedTube na YouTube" + }, + "improvedtubeLanguage": { + "message": "Język ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Wersja ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Zwiększ prędkość odtwarzania" + }, + "increaseVolume": { + "message": "Zwiększ głośność" + }, + "indigo": { + "message": "Indygo" + }, + "items": { + "message": "Przedmioty" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Języki" + }, + "legacyYoutube": { + "message": "Stara wersja YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Jasny" + }, + "lightBlue": { + "message": "Jasnoniebieski" + }, + "lightGreen": { + "message": "Jasnozielony" + }, + "like": { + "message": "Polub" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Polubienia" + }, + "lime": { + "message": "Limonkowy" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Czat na żywo" + }, + "liveChatType": { + "message": "Rodzaj czatu na żywo" + }, + "location": { + "message": "Położenie" + }, + "loudnessNormalization": { + "message": "Normalizacja głośności" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Oznacz obejrzane wideo" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mikser" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Moje kolory" + }, + "name": { + "message": "Nazwa" + }, + "nativeMiniPlayer": { + "message": "Natywny mini-odtwarzacz" + }, + "new": { + "message": "Nowe" + }, + "nextVideo": { + "message": "Następne wideo" + }, + "night": { + "message": "Noc" + }, + "noActiveFeatures": { + "message": "Brak aktywnych funkcji" + }, + "noOpenVideoTabs": { + "message": "Brak otwartych kart wideo" + }, + "none": { + "message": "Brak" + }, + "normal": { + "message": "Normalny" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Stary" + }, + "onAllVideos": { + "message": "Na wszystkich wideo" + }, + "onSubscribedChannels": { + "message": "Na subskrybowanych kanałach" + }, + "onlyActiveOnYoutube": { + "message": "Aktywny tylko na YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Odtwarzanie tylko jednej instancji odtwarzacza" + }, + "openPopupPlayer": { + "message": "Otwórz wideo/playliste w nowym oknie" + }, + "orange": { + "message": "Pomarańczowy" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Inne" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Uprawnienia" + }, + "pictureInPicture": { + "message": "Obraz w Obrazie" + }, + "pink": { + "message": "Różowy" + }, + "plain": { + "message": "Zwykły" + }, + "platform": { + "message": "Platforma" + }, + "playPause": { + "message": "Odtwarzanie / Pauza" + }, + "playbackSpeed": { + "message": "Prędkość odtwarzania" + }, + "player": { + "message": "Odtwarzacz" + }, + "playerColor": { + "message": "Kolor odtwarzacza" + }, + "playerSize": { + "message": "Rozmiar odtwarzacza" + }, + "playlist": { + "message": "Lista odtwarzania" + }, + "playlists": { + "message": "Listy odtwarzania" + }, + "popupPlayer": { + "message": "Odtwarzacz popout" + }, + "position": { + "message": "Pozycja" + }, + "pressAnyKeyOrScroll": { + "message": "Wciśnij dowolny przycisk lub użyj kółka myszy." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Wciśnij dowolny przycisk lub użyj kółka myszy" + }, + "previousVideo": { + "message": "Poprzednie wideo" + }, + "primaryColor": { + "message": "Kolor główny" + }, + "purple": { + "message": "Fioletowy" + }, + "quality": { + "message": "Jakość" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Oceń nas" + }, + "red": { + "message": "Czerwony" + }, + "redDislikeButton": { + "message": "Koloruj przycisk 'Nie lubię' na czerwono" + }, + "relatedVideos": { + "message": "Wideo powiązane" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Usuń powiązane wyniki wyszukiwania" + }, + "repeat": { + "message": "Powtarzaj" + }, + "reset": { + "message": "Reset" + }, + "resetAllSettings": { + "message": "Resetuj wszystkie ustawienia" + }, + "resetAllShortcuts": { + "message": "Resetuj wszystkie skróty" + }, + "reverse": { + "message": "Odwróć" + }, + "rotate": { + "message": "Obróć" + }, + "save": { + "message": "Zapisz" + }, + "saveAs": { + "message": "Zapisz jako" + }, + "schedule": { + "message": "Harmonogram" + }, + "screen": { + "message": "Ekran" + }, + "screenshot": { + "message": "Zrzut ekranu" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Wyszukaj" + }, + "searchBarOnly": { + "message": "Tylko pasek wyszukiwania" + }, + "seekBackward10Seconds": { + "message": "Przewiń 10 sekund do tyłu" + }, + "seekForward10Seconds": { + "message": "Przewiń 10 sekund do przodu" + }, + "seekNextChapter": { + "message": "Przewiń do następnego rozdziału" + }, + "seekPreviousChapter": { + "message": "Przewiń do poprzedniego rozdziału" + }, + "settings": { + "message": "Ustawienia" + }, + "settingsSuccessfullyImported": { + "message": "Ustawienia pomyślnie zaimportowane" + }, + "shortcuts": { + "message": "Skróty" + }, + "showCardsOnMouseHover": { + "message": "Pokaż karty po najechaniu myszą" + }, + "showChannelVideosCount": { + "message": "Pokaż ilość wideo na kanale" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Losowo" + }, + "sidebar": { + "message": "Panel boczny" + }, + "spacebar": { + "message": "Spacja" + }, + "squaredUserImages": { + "message": "Kwadratowe avatary użytkowników" + }, + "static": { + "message": "Statyczne" + }, + "statsForNerds": { + "message": "Statystyki dla nerdów" + }, + "step": { + "message": "Stopień" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Styl" + }, + "styles": { + "message": "Style" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Subskrypcje" + }, + "subtitles": { + "message": "Napisy" + }, + "sunset": { + "message": "Zachód" + }, + "sunsetToSunrise": { + "message": "Od zachodu do wschodu słońca" + }, + "systemPeferenceDark": { + "message": "Preferencja systemowa: ciemne" + }, + "systemPeferenceLight": { + "message": "Preferencja systemowa: jasne" + }, + "teal": { + "message": "Morski" + }, + "textColor": { + "message": "Kolor tekstu" + }, + "themes": { + "message": "Motywy" + }, + "thisWillRemoveAllCookies": { + "message": "To usunie wszystkie ciasteczka." + }, + "thisWillRemoveAllWatchedVideos": { + "message": "To usunie wszystkie obejrzane wideo." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "To usunie wszystkie ciasteczka YouTube." + }, + "thisWillResetAllSettings": { + "message": "To zresetuje wszystkie ustawienia." + }, + "thisWillResetAllShortcuts": { + "message": "To zresetuje wszystkie skróty" + }, + "thumbnails": { + "message": "Miniatury" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Od" + }, + "timeTo": { + "message": "Do" + }, + "todayAt": { + "message": "Dzisiaj o" + }, + "toggleAutoplay": { + "message": "Przełącz autoodtwarzanie" + }, + "toggleCards": { + "message": "Przełącz karty" + }, + "toggleControls": { + "message": "Przełącz widoczność sterowania odtwarzaczew" + }, + "topChat": { + "message": "Czat na górze" + }, + "trackWatchedVideos": { + "message": "Śledź obejrzane wideo" + }, + "trailerAutoplay": { + "message": "Autoodtwarzanie zwiastunów" + }, + "translations": { + "message": "Tłumaczenia" + }, + "transparentBackground": { + "message": "Przezroczyste tło" + }, + "trending": { + "message": "Na czasie" + }, + "tryToReloadThePage": { + "message": "Spróbuj przeładować stronę" + }, + "type": { + "message": "Typ" + }, + "upNextAutoplay": { + "message": "Autoodwarzanie następnego wideo" + }, + "use24HourFormat": { + "message": "Używaj 24-godzinnego formatu czasu" + }, + "version": { + "message": "Wersja" + }, + "video": { + "message": "Wideo" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Opis wideo zostanie rozwinięty aby pozyskać nazwę kategorii" + }, + "videoFormats": { + "message": "Formaty wideo" + }, + "videos": { + "message": "Wideo" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Głośność" + }, + "watchLater": { + "message": "Obejrzyj później" + }, + "watchTime": { + "message": "Czas oglądania" + }, + "whenTabIsChanged": { + "message": "Kiedy zostaje zmieniona karta" + }, + "white": { + "message": "Biały" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Żółty" + }, + "youtubeHeaderLeft": { + "message": "Nagłówek YouTube (lewy)" + }, + "youtubeHeaderRight": { + "message": "Nagłówek YouTube (prawy)" + }, + "youtubeHomePage": { + "message": "Strona główna YouTube" + }, + "youtubeLanguage": { + "message": "Język YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube ogranicza jakość wideo do 1080p przy kodeku h.264" + } } \ No newline at end of file diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 5d51615c9..15fd1880c 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -1,986 +1,992 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Sobre" - }, - "accept": { - "message": "Accept" - }, - "activate": { - "message": "Activate" - }, - "activateCaptions": { - "message": "Ativar legendas" - }, - "activateFullscreen": { - "message": "Ativar tela cheia" - }, - "activated": { - "message": "Activated" - }, - "activatedFeatures": { - "message": "Activated features" - }, - "activeFeatures": { - "message": "Funções ativas" - }, - "addScrollToTop": { - "message": "Habilitar botão «Voltar ao Topo»" - }, - "ads": { - "message": "Anúncios" - }, - "all": { - "message": "All" - }, - "allow": { - "message": "Permitir" - }, - "allow60fps": { - "message": "Permitir 60fps" - }, - "alwaysActive": { - "message": "Sempre ativo" - }, - "alwaysShowProgressBar": { - "message": "Sempre exibir a barra de progresso" - }, - "amber": { - "message": "Âmbar" - }, - "analyzer": { - "message": "Analítico" - }, - "appearance": { - "message": "Aparência" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Áudio" - }, - "audioFormats": { - "message": "Formatos de áudio" - }, - "auto": { - "message": "Automático" - }, - "autoFullscreen": { - "message": "Tela cheia automática" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausar vídeo ao alternar entre abas" - }, - "autoplay": { - "message": "Reprodução automática" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Backup & Restauração" - }, - "baseOnSystemColorScheme": { - "message": "Baseado nas cores do sistema" - }, - "belowPlayer": { - "message": "Abaixo do player" - }, - "black": { - "message": "Preto" - }, - "blacklist": { - "message": "Lista negra" - }, - "blockAll": { - "message": "Bloquear tudo" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Azul" - }, - "blueGray": { - "message": "Cinza Azulado" - }, - "bluelight": { - "message": "Filtrar luz azul" - }, - "brown": { - "message": "Marrom" - }, - "browser": { - "message": "Navegador" - }, - "browserVersion": { - "message": "Versão do navegador" - }, - "bubbles": { - "message": "Bolhas" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Botões" - }, - "cancel": { - "message": "Cancelar" - }, - "categories": { - "message": "Categorias" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canais" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" - }, - "collapsed": { - "message": "Retraído" - }, - "comments": { - "message": "Comentários" - }, - "confirmationBeforeClosing": { - "message": "Alerta ao fechar a página" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Núcleos" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Custom JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Ciano" - }, - "dark": { - "message": "Obscuro" - }, - "darkTheme": { - "message": "Tema escuro" - }, - "dateAndTime": { - "message": "Data & Hora" - }, - "dawn": { - "message": "Alvorecer" - }, - "decreasePlaybackSpeed": { - "message": "Diminuir velocidade" - }, - "decreaseVolume": { - "message": "Diminuir volume" - }, - "deepOrange": { - "message": "Laranja Escuro" - }, - "deepPurple": { - "message": "Roxo Escuro" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Aba padrão do canal" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Deletar cookies do YouTube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Descrição" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Deserto" - }, - "details": { - "message": "Detalhes" - }, - "developerOptions": { - "message": "Developer options" - }, - "device": { - "message": "Dispositivo" - }, - "dim": { - "message": "Escurecer" - }, - "disabled": { - "message": "Desabilitado" - }, - "dislike": { - "message": "Não Gostei." - }, - "doNotChange": { - "message": "Não alterar" - }, - "donate": { - "message": "Doar" - }, - "draggable": { - "message": "Arrastável" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Vazio" - }, - "enabled": { - "message": "Habilitado" - }, - "enabledForced": { - "message": "Enabled (forced)" - }, - "expanded": { - "message": "Expandido" - }, - "exportSettings": { - "message": "Exportar configurações" - }, - "extension": { - "message": "Extensão" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filtros" - }, - "fitToWindow": { - "message": "Ajustar à janela" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Rodapé" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, - "forcedTheaterMode": { - "message": "Forçar modo teatro" - }, - "forcedVolume": { - "message": "Forçar volume" - }, - "foundABug": { - "message": "Encontrou um bug?" - }, - "fullWindow": { - "message": "Preencher a janela" - }, - "general": { - "message": "Geral" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Selecionar barra de pesquisa" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "Miniatura em HD" - }, - "header": { - "message": "Cabeçalho" - }, - "hidden": { - "message": "Oculto" - }, - "hiddenOnVideoPage": { - "message": "Oculto na página de vídeo" - }, - "hideAnimatedThumbnails": { - "message": "Desabilitar miniaturas animadas" - }, - "hideAnnotations": { - "message": "Ocultar anotações" - }, - "hideCards": { - "message": "Ocultar cards" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Ocultar detalhes" - }, - "hideEndscreen": { - "message": "Ocultar tela final" - }, - "hideFeaturedContent": { - "message": "Ocultar conteúdo em destaque" - }, - "hideFooter": { - "message": "Ocultar rodapé" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Ocultar playlist" - }, - "hideRightButtons": { - "message": "Ocultar botões à direita" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Ocultar «Rolar Para Ver Detalhes»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Ocultar visualizações" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "Histórico" - }, - "home": { - "message": "Início" - }, - "hover": { - "message": "Retrátil" - }, - "hoverOnVideoPage": { - "message": "Retrátil na página de video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Tempo decorrido desde a publicação" - }, - "icons": { - "message": "Ícones" - }, - "iconsOnly": { - "message": "Apenas ícones" - }, - "importSettings": { - "message": "Importar configurações" - }, - "improveLogo": { - "message": "Aprimorar logomarca" - }, - "improvedtubeIconOnYoutube": { - "message": "Ícone do ImprovedTube no YouTube" - }, - "improvedtubeLanguage": { - "message": "Idioma do ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versão do ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Aumentar velocidade" - }, - "increaseVolume": { - "message": "Diminuir volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Itens" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Idiomas" - }, - "legacyYoutube": { - "message": "YouTube antigo" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Claro" - }, - "lightBlue": { - "message": "Azul Claro" - }, - "lightGreen": { - "message": "Verde Claro" - }, - "like": { - "message": "Gostei!" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Avaliações" - }, - "lime": { - "message": "Verde Limão" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Bate-Papo Ao Vivo" - }, - "liveChatType": { - "message": "Live chat type" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Normalização de volume" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Mark watched videos" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mixer" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "My colors" - }, - "name": { - "message": "Nome" - }, - "nativeMiniPlayer": { - "message": "Mini player nativo" - }, - "new": { - "message": "Novo" - }, - "nextVideo": { - "message": "Próximo vídeo" - }, - "night": { - "message": "Noite" - }, - "noActiveFeatures": { - "message": "No active features" - }, - "noOpenVideoTabs": { - "message": "Nenhuma aba de vídeo aberta" - }, - "none": { - "message": "Nenhum" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Antigo" - }, - "onAllVideos": { - "message": "Em todos os vídeos" - }, - "onSubscribedChannels": { - "message": "Apenas em inscrições" - }, - "onlyActiveOnYoutube": { - "message": "Ativo apenas no YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "orange": { - "message": "Laranja" - }, - "os": { - "message": "Sistema Operacional" - }, - "other": { - "message": "Outras opções" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Permissões" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Panície" - }, - "platform": { - "message": "Plataforma" - }, - "playPause": { - "message": "Reproduzir / Pausar" - }, - "playbackSpeed": { - "message": "Velocidade de reprodução" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Cor do player" - }, - "playerSize": { - "message": "Tamanho do player" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "popupPlayer": { - "message": "Player externo" - }, - "position": { - "message": "Posição" - }, - "pressAnyKeyOrScroll": { - "message": "Pressione qualquer tecla ou use a roda do mouse" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Pressione qualquer tecla ou use a roda do mouse" - }, - "previousVideo": { - "message": "Vídeo anterior" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "Roxo" - }, - "quality": { - "message": "Qualidade" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Avalie-nos!" - }, - "red": { - "message": "Vermelho" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Vídeos relacionados" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Remove related search results" - }, - "repeat": { - "message": "Repetir" - }, - "reset": { - "message": "Restaurar" - }, - "resetAllSettings": { - "message": "Restaurar todas as configurações" - }, - "resetAllShortcuts": { - "message": "Reset all shortcuts" - }, - "reverse": { - "message": "Reverso" - }, - "rotate": { - "message": "Rotacionar" - }, - "save": { - "message": "Salvar" - }, - "saveAs": { - "message": "Salvar como" - }, - "schedule": { - "message": "Agendamento" - }, - "screen": { - "message": "Tela" - }, - "screenshot": { - "message": "Captura de tela" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Pesquisar" - }, - "searchBarOnly": { - "message": "Apenas barra de pesquisa" - }, - "seekBackward10Seconds": { - "message": "Retroceder 10 segundos" - }, - "seekForward10Seconds": { - "message": "Avançar 10 segundos" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Configurações" - }, - "settingsSuccessfullyImported": { - "message": "Configurações importadas com sucesso" - }, - "shortcuts": { - "message": "Atalhos" - }, - "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" - }, - "showChannelVideosCount": { - "message": "Número de vídeos do canal" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Aleatório" - }, - "sidebar": { - "message": "Painel lateral" - }, - "spacebar": { - "message": "Espaço" - }, - "squaredUserImages": { - "message": "Avatares quadrados" - }, - "static": { - "message": "Estático" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Parar" - }, - "style": { - "message": "Estilo" - }, - "styles": { - "message": "Estilos" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Inscrições" - }, - "subtitles": { - "message": "Legendas" - }, - "sunset": { - "message": "Pôr do Sol" - }, - "sunsetToSunrise": { - "message": "Durante a noite" - }, - "systemPeferenceDark": { - "message": "Preferência do sistema: Escuro" - }, - "systemPeferenceLight": { - "message": "Preferência do sistema: Claro" - }, - "teal": { - "message": "Verde Azulado" - }, - "textColor": { - "message": "Text color" - }, - "themes": { - "message": "Temas" - }, - "thisWillRemoveAllCookies": { - "message": "Todos os cookies serão removidos." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Todos os cookies do YouTube serão removidos" - }, - "thisWillResetAllSettings": { - "message": "As configurações padrão serão restauradas." - }, - "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" - }, - "thumbnails": { - "message": "Miniaturas" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Horário inicial" - }, - "timeTo": { - "message": "Horário final" - }, - "todayAt": { - "message": "Hoje às" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Reproduzir trailer" - }, - "translations": { - "message": "Translations" - }, - "transparentBackground": { - "message": "Fundo transparente" - }, - "trending": { - "message": "Em Alta" - }, - "tryToReloadThePage": { - "message": "Recarregue a página" - }, - "type": { - "message": "Tipo" - }, - "upNextAutoplay": { - "message": "Reproduzir vídeo em seguida" - }, - "use24HourFormat": { - "message": "Usar formato de 24 horas" - }, - "version": { - "message": "Versão" - }, - "video": { - "message": "Vídeo" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "A descrição se expandirá para acessar a categoria do vídeo" - }, - "videoFormats": { - "message": "Formatos de vídeo" - }, - "videos": { - "message": "Vídeos" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Assistir mais tarde" - }, - "watchTime": { - "message": "Tempo de exibição" - }, - "whenTabIsChanged": { - "message": "Quando alternar entre abas" - }, - "white": { - "message": "Branco" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Amarelo" - }, - "youtubeHeaderLeft": { - "message": "No cabeçalho à esquerda" - }, - "youtubeHeaderRight": { - "message": "No cabeçalho à direita" - }, - "youtubeHomePage": { - "message": "Página inicial do YouTube" - }, - "youtubeLanguage": { - "message": "Idioma do YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "O YouTube limita o codec h.264 à resolução de 1080p" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Sobre" + }, + "accept": { + "message": "Accept" + }, + "activate": { + "message": "Activate" + }, + "activateCaptions": { + "message": "Ativar legendas" + }, + "activateFullscreen": { + "message": "Ativar tela cheia" + }, + "activated": { + "message": "Activated" + }, + "activatedFeatures": { + "message": "Activated features" + }, + "activeFeatures": { + "message": "Funções ativas" + }, + "addScrollToTop": { + "message": "Habilitar botão «Voltar ao Topo»" + }, + "ads": { + "message": "Anúncios" + }, + "all": { + "message": "All" + }, + "allow": { + "message": "Permitir" + }, + "allow60fps": { + "message": "Permitir 60fps" + }, + "alwaysActive": { + "message": "Sempre ativo" + }, + "alwaysShowProgressBar": { + "message": "Sempre exibir a barra de progresso" + }, + "amber": { + "message": "Âmbar" + }, + "analyzer": { + "message": "Analítico" + }, + "appearance": { + "message": "Aparência" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "Áudio" + }, + "audioFormats": { + "message": "Formatos de áudio" + }, + "auto": { + "message": "Automático" + }, + "autoFullscreen": { + "message": "Tela cheia automática" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausar vídeo ao alternar entre abas" + }, + "autoplay": { + "message": "Reprodução automática" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Backup & Restauração" + }, + "baseOnSystemColorScheme": { + "message": "Baseado nas cores do sistema" + }, + "belowPlayer": { + "message": "Abaixo do player" + }, + "black": { + "message": "Preto" + }, + "blacklist": { + "message": "Lista negra" + }, + "blockAll": { + "message": "Bloquear tudo" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Azul" + }, + "blueGray": { + "message": "Cinza Azulado" + }, + "bluelight": { + "message": "Filtrar luz azul" + }, + "brown": { + "message": "Marrom" + }, + "browser": { + "message": "Navegador" + }, + "browserVersion": { + "message": "Versão do navegador" + }, + "bubbles": { + "message": "Bolhas" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Botões" + }, + "cancel": { + "message": "Cancelar" + }, + "categories": { + "message": "Categorias" + }, + "channel": { + "message": "Canal" + }, + "channels": { + "message": "Canais" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Collapse of subscription sections" + }, + "collapsed": { + "message": "Retraído" + }, + "comments": { + "message": "Comentários" + }, + "confirmationBeforeClosing": { + "message": "Alerta ao fechar a página" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Núcleos" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Custom JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Ciano" + }, + "dark": { + "message": "Obscuro" + }, + "darkTheme": { + "message": "Tema escuro" + }, + "dateAndTime": { + "message": "Data & Hora" + }, + "dawn": { + "message": "Alvorecer" + }, + "decreasePlaybackSpeed": { + "message": "Diminuir velocidade" + }, + "decreaseVolume": { + "message": "Diminuir volume" + }, + "deepOrange": { + "message": "Laranja Escuro" + }, + "deepPurple": { + "message": "Roxo Escuro" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Aba padrão do canal" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Deletar cookies do YouTube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Descrição" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Deserto" + }, + "details": { + "message": "Detalhes" + }, + "developerOptions": { + "message": "Developer options" + }, + "device": { + "message": "Dispositivo" + }, + "dim": { + "message": "Escurecer" + }, + "disabled": { + "message": "Desabilitado" + }, + "dislike": { + "message": "Não Gostei." + }, + "doNotChange": { + "message": "Não alterar" + }, + "donate": { + "message": "Doar" + }, + "draggable": { + "message": "Arrastável" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Vazio" + }, + "enabled": { + "message": "Habilitado" + }, + "enabledForced": { + "message": "Enabled (forced)" + }, + "expanded": { + "message": "Expandido" + }, + "exportSettings": { + "message": "Exportar configurações" + }, + "extension": { + "message": "Extensão" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filtros" + }, + "fitToWindow": { + "message": "Ajustar à janela" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Rodapé" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, + "forcedTheaterMode": { + "message": "Forçar modo teatro" + }, + "forcedVolume": { + "message": "Forçar volume" + }, + "foundABug": { + "message": "Encontrou um bug?" + }, + "fullWindow": { + "message": "Preencher a janela" + }, + "general": { + "message": "Geral" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Selecionar barra de pesquisa" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "Miniatura em HD" + }, + "header": { + "message": "Cabeçalho" + }, + "hidden": { + "message": "Oculto" + }, + "hiddenOnVideoPage": { + "message": "Oculto na página de vídeo" + }, + "hideAnimatedThumbnails": { + "message": "Desabilitar miniaturas animadas" + }, + "hideAnnotations": { + "message": "Ocultar anotações" + }, + "hideCards": { + "message": "Ocultar cards" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Ocultar detalhes" + }, + "hideEndscreen": { + "message": "Ocultar tela final" + }, + "hideFeaturedContent": { + "message": "Ocultar conteúdo em destaque" + }, + "hideFooter": { + "message": "Ocultar rodapé" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Ocultar playlist" + }, + "hideRightButtons": { + "message": "Ocultar botões à direita" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Ocultar «Rolar Para Ver Detalhes»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Ocultar visualizações" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Histórico" + }, + "home": { + "message": "Início" + }, + "hover": { + "message": "Retrátil" + }, + "hoverOnVideoPage": { + "message": "Retrátil na página de video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Tempo decorrido desde a publicação" + }, + "icons": { + "message": "Ícones" + }, + "iconsOnly": { + "message": "Apenas ícones" + }, + "importSettings": { + "message": "Importar configurações" + }, + "improveLogo": { + "message": "Aprimorar logomarca" + }, + "improvedtubeIconOnYoutube": { + "message": "Ícone do ImprovedTube no YouTube" + }, + "improvedtubeLanguage": { + "message": "Idioma do ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Versão do ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Aumentar velocidade" + }, + "increaseVolume": { + "message": "Diminuir volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Itens" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Idiomas" + }, + "legacyYoutube": { + "message": "YouTube antigo" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Claro" + }, + "lightBlue": { + "message": "Azul Claro" + }, + "lightGreen": { + "message": "Verde Claro" + }, + "like": { + "message": "Gostei!" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Avaliações" + }, + "lime": { + "message": "Verde Limão" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Bate-Papo Ao Vivo" + }, + "liveChatType": { + "message": "Live chat type" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Normalização de volume" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Mark watched videos" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "My colors" + }, + "name": { + "message": "Nome" + }, + "nativeMiniPlayer": { + "message": "Mini player nativo" + }, + "new": { + "message": "Novo" + }, + "nextVideo": { + "message": "Próximo vídeo" + }, + "night": { + "message": "Noite" + }, + "noActiveFeatures": { + "message": "No active features" + }, + "noOpenVideoTabs": { + "message": "Nenhuma aba de vídeo aberta" + }, + "none": { + "message": "Nenhum" + }, + "normal": { + "message": "Normal" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Antigo" + }, + "onAllVideos": { + "message": "Em todos os vídeos" + }, + "onSubscribedChannels": { + "message": "Apenas em inscrições" + }, + "onlyActiveOnYoutube": { + "message": "Ativo apenas no YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "orange": { + "message": "Laranja" + }, + "os": { + "message": "Sistema Operacional" + }, + "other": { + "message": "Outras opções" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Permissões" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Panície" + }, + "platform": { + "message": "Plataforma" + }, + "playPause": { + "message": "Reproduzir / Pausar" + }, + "playbackSpeed": { + "message": "Velocidade de reprodução" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Cor do player" + }, + "playerSize": { + "message": "Tamanho do player" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "popupPlayer": { + "message": "Player externo" + }, + "position": { + "message": "Posição" + }, + "pressAnyKeyOrScroll": { + "message": "Pressione qualquer tecla ou use a roda do mouse" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Pressione qualquer tecla ou use a roda do mouse" + }, + "previousVideo": { + "message": "Vídeo anterior" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "Roxo" + }, + "quality": { + "message": "Qualidade" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Avalie-nos!" + }, + "red": { + "message": "Vermelho" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Vídeos relacionados" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Remove related search results" + }, + "repeat": { + "message": "Repetir" + }, + "reset": { + "message": "Restaurar" + }, + "resetAllSettings": { + "message": "Restaurar todas as configurações" + }, + "resetAllShortcuts": { + "message": "Reset all shortcuts" + }, + "reverse": { + "message": "Reverso" + }, + "rotate": { + "message": "Rotacionar" + }, + "save": { + "message": "Salvar" + }, + "saveAs": { + "message": "Salvar como" + }, + "schedule": { + "message": "Agendamento" + }, + "screen": { + "message": "Tela" + }, + "screenshot": { + "message": "Captura de tela" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Pesquisar" + }, + "searchBarOnly": { + "message": "Apenas barra de pesquisa" + }, + "seekBackward10Seconds": { + "message": "Retroceder 10 segundos" + }, + "seekForward10Seconds": { + "message": "Avançar 10 segundos" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Configurações" + }, + "settingsSuccessfullyImported": { + "message": "Configurações importadas com sucesso" + }, + "shortcuts": { + "message": "Atalhos" + }, + "showCardsOnMouseHover": { + "message": "Show cards on mouse hover" + }, + "showChannelVideosCount": { + "message": "Número de vídeos do canal" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Aleatório" + }, + "sidebar": { + "message": "Painel lateral" + }, + "spacebar": { + "message": "Espaço" + }, + "squaredUserImages": { + "message": "Avatares quadrados" + }, + "static": { + "message": "Estático" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Parar" + }, + "style": { + "message": "Estilo" + }, + "styles": { + "message": "Estilos" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Inscrições" + }, + "subtitles": { + "message": "Legendas" + }, + "sunset": { + "message": "Pôr do Sol" + }, + "sunsetToSunrise": { + "message": "Durante a noite" + }, + "systemPeferenceDark": { + "message": "Preferência do sistema: Escuro" + }, + "systemPeferenceLight": { + "message": "Preferência do sistema: Claro" + }, + "teal": { + "message": "Verde Azulado" + }, + "textColor": { + "message": "Text color" + }, + "themes": { + "message": "Temas" + }, + "thisWillRemoveAllCookies": { + "message": "Todos os cookies serão removidos." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Todos os cookies do YouTube serão removidos" + }, + "thisWillResetAllSettings": { + "message": "As configurações padrão serão restauradas." + }, + "thisWillResetAllShortcuts": { + "message": "This will reset all shortcuts" + }, + "thumbnails": { + "message": "Miniaturas" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Horário inicial" + }, + "timeTo": { + "message": "Horário final" + }, + "todayAt": { + "message": "Hoje às" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Reproduzir trailer" + }, + "translations": { + "message": "Translations" + }, + "transparentBackground": { + "message": "Fundo transparente" + }, + "trending": { + "message": "Em Alta" + }, + "tryToReloadThePage": { + "message": "Recarregue a página" + }, + "type": { + "message": "Tipo" + }, + "upNextAutoplay": { + "message": "Reproduzir vídeo em seguida" + }, + "use24HourFormat": { + "message": "Usar formato de 24 horas" + }, + "version": { + "message": "Versão" + }, + "video": { + "message": "Vídeo" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "A descrição se expandirá para acessar a categoria do vídeo" + }, + "videoFormats": { + "message": "Formatos de vídeo" + }, + "videos": { + "message": "Vídeos" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Assistir mais tarde" + }, + "watchTime": { + "message": "Tempo de exibição" + }, + "whenTabIsChanged": { + "message": "Quando alternar entre abas" + }, + "white": { + "message": "Branco" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Amarelo" + }, + "youtubeHeaderLeft": { + "message": "No cabeçalho à esquerda" + }, + "youtubeHeaderRight": { + "message": "No cabeçalho à direita" + }, + "youtubeHomePage": { + "message": "Página inicial do YouTube" + }, + "youtubeLanguage": { + "message": "Idioma do YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "O YouTube limita o codec h.264 à resolução de 1080p" + } } \ No newline at end of file diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index ada8b7c09..dac319d6e 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -1,986 +1,992 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Acerca" - }, - "accept": { - "message": "Aceitar" - }, - "activate": { - "message": "Ativar" - }, - "activateCaptions": { - "message": "Ativar legendas" - }, - "activateFullscreen": { - "message": "Ativar ecrã completo" - }, - "activated": { - "message": "Ativado" - }, - "activatedFeatures": { - "message": "Opções ativadas" - }, - "activeFeatures": { - "message": "Opções ativas" - }, - "addScrollToTop": { - "message": "Adicionar «Ir para o topo»" - }, - "ads": { - "message": "Anúncios" - }, - "all": { - "message": "Todas" - }, - "allow": { - "message": "Permitir" - }, - "allow60fps": { - "message": "Permitir 60fps" - }, - "alwaysActive": { - "message": "Sempre ativo" - }, - "alwaysShowProgressBar": { - "message": "Mostrar sempre a barra de progressos" - }, - "amber": { - "message": "Âmbar" - }, - "analyzer": { - "message": "Analisador" - }, - "appearance": { - "message": "Aparência" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Áudio" - }, - "audioFormats": { - "message": "Formatos de áudio" - }, - "auto": { - "message": "Automático" - }, - "autoFullscreen": { - "message": "Ecrân completo automático" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pausa quando muda de abas" - }, - "autoplay": { - "message": "Reprodução automática" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Cópia de segurança e repor" - }, - "baseOnSystemColorScheme": { - "message": "Baseado no esquema de cores do sistema" - }, - "belowPlayer": { - "message": "Reprodutor abaixo" - }, - "black": { - "message": "Preto" - }, - "blacklist": { - "message": "Lista negra" - }, - "blockAll": { - "message": "Bloquear todos" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Azul" - }, - "blueGray": { - "message": "Azul acizentado" - }, - "bluelight": { - "message": "Azul claro" - }, - "brown": { - "message": "Castanho" - }, - "browser": { - "message": "Navegador" - }, - "browserVersion": { - "message": "Versão do navegador" - }, - "bubbles": { - "message": "Bolhas" - }, - "bug": { - "message": "Erro" - }, - "buttons": { - "message": "Botões" - }, - "cancel": { - "message": "Cancelar" - }, - "categories": { - "message": "Categorias" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canais" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Area de transferência" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Extender as secções escolhidas" - }, - "collapsed": { - "message": "Extender" - }, - "comments": { - "message": "Comentários" - }, - "confirmationBeforeClosing": { - "message": "Confirmar antes de encerrar" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "CSS personalizadas" - }, - "customJs": { - "message": "JS personalizadas" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Esverdeado" - }, - "dark": { - "message": "Escuro" - }, - "darkTheme": { - "message": "Tema escuro" - }, - "dateAndTime": { - "message": "Data & hora" - }, - "dawn": { - "message": "Escurecer" - }, - "decreasePlaybackSpeed": { - "message": "Diminuir velocidade de leitura" - }, - "decreaseVolume": { - "message": "Diminuir volume" - }, - "deepOrange": { - "message": "Laranja forte" - }, - "deepPurple": { - "message": "Lilás forte" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Aba padrão do canal" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Apagar os cookies do YouTube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Descrição" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Deserto" - }, - "details": { - "message": "Detalhes" - }, - "developerOptions": { - "message": "Opções de programador" - }, - "device": { - "message": "Aparelho" - }, - "dim": { - "message": "Escurecer" - }, - "disabled": { - "message": "Desabilitado" - }, - "dislike": { - "message": "Não gostar" - }, - "doNotChange": { - "message": "Não mudes" - }, - "donate": { - "message": "Doar" - }, - "draggable": { - "message": "Podes arrastar" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Correio electronico" - }, - "empty": { - "message": "Vazio" - }, - "enabled": { - "message": "Ativado" - }, - "enabledForced": { - "message": "Ativado (forçado)" - }, - "expanded": { - "message": "Expandir" - }, - "exportSettings": { - "message": "Exportar definições" - }, - "extension": { - "message": "Extenção" - }, - "file": { - "message": "Ficheiro" - }, - "filters": { - "message": "Filtros" - }, - "fitToWindow": { - "message": "Ajustar á janela" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Tipo de letra" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Cabeçalho" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Forçar velocidade de leitura" - }, - "forcedTheaterMode": { - "message": "Forçar modo de cinema" - }, - "forcedVolume": { - "message": "Volume forçado" - }, - "foundABug": { - "message": "Encontrou um erro?" - }, - "fullWindow": { - "message": "Janela completa" - }, - "general": { - "message": "Geral" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Vai à caixa de pesquisa" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "Miniatura HD" - }, - "header": { - "message": "Cabeçalho" - }, - "hidden": { - "message": "Escondido" - }, - "hiddenOnVideoPage": { - "message": "Escondido na página do video" - }, - "hideAnimatedThumbnails": { - "message": "Esconder miniaturas animadas" - }, - "hideAnnotations": { - "message": "Esconder anotações" - }, - "hideCards": { - "message": "Esconder cartas" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Esconder detalhes" - }, - "hideEndscreen": { - "message": "Esconder ecãn final" - }, - "hideFeaturedContent": { - "message": "Esconder conteúdo" - }, - "hideFooter": { - "message": "Esconder rodapé" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Esconder lista de reprodução" - }, - "hideRightButtons": { - "message": "Esconder botões do lado direito" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Esconder «Rodar para detalhes»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Esconder número de vistos" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "História" - }, - "home": { - "message": "Casa" - }, - "hover": { - "message": "Aponta" - }, - "hoverOnVideoPage": { - "message": "Apontar na página do video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "À quanto tempo o video foi enviado" - }, - "icons": { - "message": "Ícones" - }, - "iconsOnly": { - "message": "Ícones apenas" - }, - "importSettings": { - "message": "Importar definições" - }, - "improveLogo": { - "message": "Melhorar logotipo" - }, - "improvedtubeIconOnYoutube": { - "message": "Ícon do ImprovedTube no YouTube" - }, - "improvedtubeLanguage": { - "message": "Linguagem do ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versão do ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Aumentar velocidade de leitura" - }, - "increaseVolume": { - "message": "Aumentar o volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Artigos" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Linguagens" - }, - "legacyYoutube": { - "message": "YouTube antigo" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Claro" - }, - "lightBlue": { - "message": "Azul claro" - }, - "lightGreen": { - "message": "Verde claro" - }, - "like": { - "message": "Gostar" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Gostos" - }, - "lime": { - "message": "Limão" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Lista" - }, - "liveChat": { - "message": "Conversa do vivo" - }, - "liveChatType": { - "message": "Tipo de conversa do vivo" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Normalização do volume" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Marcar os videos como vistos" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mistura" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Minhas cores" - }, - "name": { - "message": "Nome" - }, - "nativeMiniPlayer": { - "message": "Leitor pequeno padrão" - }, - "new": { - "message": "Novo" - }, - "nextVideo": { - "message": "Próximo video" - }, - "night": { - "message": "Noite" - }, - "noActiveFeatures": { - "message": "Sem opções ativas" - }, - "noOpenVideoTabs": { - "message": "Não abrir janelas de video" - }, - "none": { - "message": "Nenhuma" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Velho" - }, - "onAllVideos": { - "message": "Em todos os videos" - }, - "onSubscribedChannels": { - "message": "Nos canais subscritos" - }, - "onlyActiveOnYoutube": { - "message": "Ativo apenas no YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Apenas uma instância do leitor de video" - }, - "orange": { - "message": "Laranja" - }, - "os": { - "message": "SO" - }, - "other": { - "message": "Outro" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Permissões" - }, - "pictureInPicture": { - "message": "Janela em janela" - }, - "pink": { - "message": "Rosa" - }, - "plain": { - "message": "Simples" - }, - "platform": { - "message": "Plataforma" - }, - "playPause": { - "message": "Reproduzir / Pausar" - }, - "playbackSpeed": { - "message": "Velocidade de leitura" - }, - "player": { - "message": "Leitor" - }, - "playerColor": { - "message": "Côr do leitor" - }, - "playerSize": { - "message": "Tamanho do leitor" - }, - "playlist": { - "message": "Lista de reprodução" - }, - "playlists": { - "message": "Listas de reprodução" - }, - "popupPlayer": { - "message": "Leitor em janela" - }, - "position": { - "message": "Posição" - }, - "pressAnyKeyOrScroll": { - "message": "Carrega em qualquer tecla ou usa a roldana do rato" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Carrega em qualquer tecla ou usa a roldana do rato" - }, - "previousVideo": { - "message": "Video anterior" - }, - "primaryColor": { - "message": "Côr primaria" - }, - "purple": { - "message": "Violeta" - }, - "quality": { - "message": "Qualidade" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "Memoria" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Avalia-nos" - }, - "red": { - "message": "Vermelho" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Videos relacionados" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Remove resultados relacionado com a pesquisa" - }, - "repeat": { - "message": "Repetir" - }, - "reset": { - "message": "Valores de origem" - }, - "resetAllSettings": { - "message": "Valores de origem em todas as definições" - }, - "resetAllShortcuts": { - "message": "Repôr todos os atalhos" - }, - "reverse": { - "message": "Recuar" - }, - "rotate": { - "message": "Rodar" - }, - "save": { - "message": "Gravar" - }, - "saveAs": { - "message": "Gravar como" - }, - "schedule": { - "message": "Agendar" - }, - "screen": { - "message": "Ecrân" - }, - "screenshot": { - "message": "Foto do ecrân" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Pesquisa" - }, - "searchBarOnly": { - "message": "Apenas barra de pesquisa" - }, - "seekBackward10Seconds": { - "message": "Andar para trás 10 segundos" - }, - "seekForward10Seconds": { - "message": "Andar para frente 10 segundos" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Definições" - }, - "settingsSuccessfullyImported": { - "message": "Definições importadas com sucesso" - }, - "shortcuts": { - "message": "Atalhos" - }, - "showCardsOnMouseHover": { - "message": "Mostrar cartas ao passar o rato por cima" - }, - "showChannelVideosCount": { - "message": "Mostrar contagem de videos do canal" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Misturar" - }, - "sidebar": { - "message": "Barra lateral" - }, - "spacebar": { - "message": "Barra de espaços" - }, - "squaredUserImages": { - "message": "Imagens de utilizador enquadradas" - }, - "static": { - "message": "Estática" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Passo" - }, - "stop": { - "message": "Parar" - }, - "style": { - "message": "Estilo" - }, - "styles": { - "message": "Estilos" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Subscrições" - }, - "subtitles": { - "message": "Legendas" - }, - "sunset": { - "message": "Pôr do sol" - }, - "sunsetToSunrise": { - "message": "Pôr do sol até de manhã" - }, - "systemPeferenceDark": { - "message": "Preferências do sistema: Escuro" - }, - "systemPeferenceLight": { - "message": "Preferências do sistema: Claro" - }, - "teal": { - "message": "Azul esverdeado" - }, - "textColor": { - "message": "Côr do texto" - }, - "themes": { - "message": "Temas" - }, - "thisWillRemoveAllCookies": { - "message": "Isto vai remover todos os cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Isto vai remover todos os cookies do YouTube" - }, - "thisWillResetAllSettings": { - "message": "Isto vai reiniciar todas as definições." - }, - "thisWillResetAllShortcuts": { - "message": "Isto vai reiniciar todos os atalhos" - }, - "thumbnails": { - "message": "Miniaturas" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Tempo de" - }, - "timeTo": { - "message": "Tempo para" - }, - "todayAt": { - "message": "Hoje em" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Conversa principal" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Trailer toca automaticamente" - }, - "translations": { - "message": "Traduções" - }, - "transparentBackground": { - "message": "Fundo transparente" - }, - "trending": { - "message": "Tendências" - }, - "tryToReloadThePage": { - "message": "Tenta carregar a pagina de novo" - }, - "type": { - "message": "Escreve" - }, - "upNextAutoplay": { - "message": "Arquivo seguinte a tocar" - }, - "use24HourFormat": { - "message": "Usar formato de 24-horas" - }, - "version": { - "message": "Versão" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "A descrição do video vai ser expandida para ver o nome da categoria" - }, - "videoFormats": { - "message": "Formatos de video" - }, - "videos": { - "message": "Videos" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Vêr mais tarde" - }, - "watchTime": { - "message": "Tempo de visualização" - }, - "whenTabIsChanged": { - "message": "Quando a janela mudar" - }, - "white": { - "message": "Branco" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Amarelo" - }, - "youtubeHeaderLeft": { - "message": "Cabeçalho do YouTube (esquerda)" - }, - "youtubeHeaderRight": { - "message": "Cabeçalho do YouTube (direita)" - }, - "youtubeHomePage": { - "message": "Página principal do YouTube" - }, - "youtubeLanguage": { - "message": "Linguagem do YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "O YouTube limita a qualidade do video em 1080p para o codec h.264" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Acerca" + }, + "accept": { + "message": "Aceitar" + }, + "activate": { + "message": "Ativar" + }, + "activateCaptions": { + "message": "Ativar legendas" + }, + "activateFullscreen": { + "message": "Ativar ecrã completo" + }, + "activated": { + "message": "Ativado" + }, + "activatedFeatures": { + "message": "Opções ativadas" + }, + "activeFeatures": { + "message": "Opções ativas" + }, + "addScrollToTop": { + "message": "Adicionar «Ir para o topo»" + }, + "ads": { + "message": "Anúncios" + }, + "all": { + "message": "Todas" + }, + "allow": { + "message": "Permitir" + }, + "allow60fps": { + "message": "Permitir 60fps" + }, + "alwaysActive": { + "message": "Sempre ativo" + }, + "alwaysShowProgressBar": { + "message": "Mostrar sempre a barra de progressos" + }, + "amber": { + "message": "Âmbar" + }, + "analyzer": { + "message": "Analisador" + }, + "appearance": { + "message": "Aparência" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "Áudio" + }, + "audioFormats": { + "message": "Formatos de áudio" + }, + "auto": { + "message": "Automático" + }, + "autoFullscreen": { + "message": "Ecrân completo automático" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pausa quando muda de abas" + }, + "autoplay": { + "message": "Reprodução automática" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Cópia de segurança e repor" + }, + "baseOnSystemColorScheme": { + "message": "Baseado no esquema de cores do sistema" + }, + "belowPlayer": { + "message": "Reprodutor abaixo" + }, + "black": { + "message": "Preto" + }, + "blacklist": { + "message": "Lista negra" + }, + "blockAll": { + "message": "Bloquear todos" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Azul" + }, + "blueGray": { + "message": "Azul acizentado" + }, + "bluelight": { + "message": "Azul claro" + }, + "brown": { + "message": "Castanho" + }, + "browser": { + "message": "Navegador" + }, + "browserVersion": { + "message": "Versão do navegador" + }, + "bubbles": { + "message": "Bolhas" + }, + "bug": { + "message": "Erro" + }, + "buttons": { + "message": "Botões" + }, + "cancel": { + "message": "Cancelar" + }, + "categories": { + "message": "Categorias" + }, + "channel": { + "message": "Canal" + }, + "channels": { + "message": "Canais" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Area de transferência" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Extender as secções escolhidas" + }, + "collapsed": { + "message": "Extender" + }, + "comments": { + "message": "Comentários" + }, + "confirmationBeforeClosing": { + "message": "Confirmar antes de encerrar" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "CSS personalizadas" + }, + "customJs": { + "message": "JS personalizadas" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Esverdeado" + }, + "dark": { + "message": "Escuro" + }, + "darkTheme": { + "message": "Tema escuro" + }, + "dateAndTime": { + "message": "Data & hora" + }, + "dawn": { + "message": "Escurecer" + }, + "decreasePlaybackSpeed": { + "message": "Diminuir velocidade de leitura" + }, + "decreaseVolume": { + "message": "Diminuir volume" + }, + "deepOrange": { + "message": "Laranja forte" + }, + "deepPurple": { + "message": "Lilás forte" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Aba padrão do canal" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Apagar os cookies do YouTube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Descrição" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Deserto" + }, + "details": { + "message": "Detalhes" + }, + "developerOptions": { + "message": "Opções de programador" + }, + "device": { + "message": "Aparelho" + }, + "dim": { + "message": "Escurecer" + }, + "disabled": { + "message": "Desabilitado" + }, + "dislike": { + "message": "Não gostar" + }, + "doNotChange": { + "message": "Não mudes" + }, + "donate": { + "message": "Doar" + }, + "draggable": { + "message": "Podes arrastar" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Correio electronico" + }, + "empty": { + "message": "Vazio" + }, + "enabled": { + "message": "Ativado" + }, + "enabledForced": { + "message": "Ativado (forçado)" + }, + "expanded": { + "message": "Expandir" + }, + "exportSettings": { + "message": "Exportar definições" + }, + "extension": { + "message": "Extenção" + }, + "file": { + "message": "Ficheiro" + }, + "filters": { + "message": "Filtros" + }, + "fitToWindow": { + "message": "Ajustar á janela" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Tipo de letra" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Cabeçalho" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Forçar velocidade de leitura" + }, + "forcedTheaterMode": { + "message": "Forçar modo de cinema" + }, + "forcedVolume": { + "message": "Volume forçado" + }, + "foundABug": { + "message": "Encontrou um erro?" + }, + "fullWindow": { + "message": "Janela completa" + }, + "general": { + "message": "Geral" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Vai à caixa de pesquisa" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "Miniatura HD" + }, + "header": { + "message": "Cabeçalho" + }, + "hidden": { + "message": "Escondido" + }, + "hiddenOnVideoPage": { + "message": "Escondido na página do video" + }, + "hideAnimatedThumbnails": { + "message": "Esconder miniaturas animadas" + }, + "hideAnnotations": { + "message": "Esconder anotações" + }, + "hideCards": { + "message": "Esconder cartas" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Esconder detalhes" + }, + "hideEndscreen": { + "message": "Esconder ecãn final" + }, + "hideFeaturedContent": { + "message": "Esconder conteúdo" + }, + "hideFooter": { + "message": "Esconder rodapé" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Esconder lista de reprodução" + }, + "hideRightButtons": { + "message": "Esconder botões do lado direito" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Esconder «Rodar para detalhes»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Esconder número de vistos" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "História" + }, + "home": { + "message": "Casa" + }, + "hover": { + "message": "Aponta" + }, + "hoverOnVideoPage": { + "message": "Apontar na página do video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "À quanto tempo o video foi enviado" + }, + "icons": { + "message": "Ícones" + }, + "iconsOnly": { + "message": "Ícones apenas" + }, + "importSettings": { + "message": "Importar definições" + }, + "improveLogo": { + "message": "Melhorar logotipo" + }, + "improvedtubeIconOnYoutube": { + "message": "Ícon do ImprovedTube no YouTube" + }, + "improvedtubeLanguage": { + "message": "Linguagem do ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Versão do ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Aumentar velocidade de leitura" + }, + "increaseVolume": { + "message": "Aumentar o volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Artigos" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Linguagens" + }, + "legacyYoutube": { + "message": "YouTube antigo" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Claro" + }, + "lightBlue": { + "message": "Azul claro" + }, + "lightGreen": { + "message": "Verde claro" + }, + "like": { + "message": "Gostar" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Gostos" + }, + "lime": { + "message": "Limão" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Lista" + }, + "liveChat": { + "message": "Conversa do vivo" + }, + "liveChatType": { + "message": "Tipo de conversa do vivo" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Normalização do volume" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Marcar os videos como vistos" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mistura" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Minhas cores" + }, + "name": { + "message": "Nome" + }, + "nativeMiniPlayer": { + "message": "Leitor pequeno padrão" + }, + "new": { + "message": "Novo" + }, + "nextVideo": { + "message": "Próximo video" + }, + "night": { + "message": "Noite" + }, + "noActiveFeatures": { + "message": "Sem opções ativas" + }, + "noOpenVideoTabs": { + "message": "Não abrir janelas de video" + }, + "none": { + "message": "Nenhuma" + }, + "normal": { + "message": "Normal" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Velho" + }, + "onAllVideos": { + "message": "Em todos os videos" + }, + "onSubscribedChannels": { + "message": "Nos canais subscritos" + }, + "onlyActiveOnYoutube": { + "message": "Ativo apenas no YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Apenas uma instância do leitor de video" + }, + "orange": { + "message": "Laranja" + }, + "os": { + "message": "SO" + }, + "other": { + "message": "Outro" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Permissões" + }, + "pictureInPicture": { + "message": "Janela em janela" + }, + "pink": { + "message": "Rosa" + }, + "plain": { + "message": "Simples" + }, + "platform": { + "message": "Plataforma" + }, + "playPause": { + "message": "Reproduzir / Pausar" + }, + "playbackSpeed": { + "message": "Velocidade de leitura" + }, + "player": { + "message": "Leitor" + }, + "playerColor": { + "message": "Côr do leitor" + }, + "playerSize": { + "message": "Tamanho do leitor" + }, + "playlist": { + "message": "Lista de reprodução" + }, + "playlists": { + "message": "Listas de reprodução" + }, + "popupPlayer": { + "message": "Leitor em janela" + }, + "position": { + "message": "Posição" + }, + "pressAnyKeyOrScroll": { + "message": "Carrega em qualquer tecla ou usa a roldana do rato" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Carrega em qualquer tecla ou usa a roldana do rato" + }, + "previousVideo": { + "message": "Video anterior" + }, + "primaryColor": { + "message": "Côr primaria" + }, + "purple": { + "message": "Violeta" + }, + "quality": { + "message": "Qualidade" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "Memoria" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Avalia-nos" + }, + "red": { + "message": "Vermelho" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Videos relacionados" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Remove resultados relacionado com a pesquisa" + }, + "repeat": { + "message": "Repetir" + }, + "reset": { + "message": "Valores de origem" + }, + "resetAllSettings": { + "message": "Valores de origem em todas as definições" + }, + "resetAllShortcuts": { + "message": "Repôr todos os atalhos" + }, + "reverse": { + "message": "Recuar" + }, + "rotate": { + "message": "Rodar" + }, + "save": { + "message": "Gravar" + }, + "saveAs": { + "message": "Gravar como" + }, + "schedule": { + "message": "Agendar" + }, + "screen": { + "message": "Ecrân" + }, + "screenshot": { + "message": "Foto do ecrân" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Pesquisa" + }, + "searchBarOnly": { + "message": "Apenas barra de pesquisa" + }, + "seekBackward10Seconds": { + "message": "Andar para trás 10 segundos" + }, + "seekForward10Seconds": { + "message": "Andar para frente 10 segundos" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Definições" + }, + "settingsSuccessfullyImported": { + "message": "Definições importadas com sucesso" + }, + "shortcuts": { + "message": "Atalhos" + }, + "showCardsOnMouseHover": { + "message": "Mostrar cartas ao passar o rato por cima" + }, + "showChannelVideosCount": { + "message": "Mostrar contagem de videos do canal" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Misturar" + }, + "sidebar": { + "message": "Barra lateral" + }, + "spacebar": { + "message": "Barra de espaços" + }, + "squaredUserImages": { + "message": "Imagens de utilizador enquadradas" + }, + "static": { + "message": "Estática" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Passo" + }, + "stop": { + "message": "Parar" + }, + "style": { + "message": "Estilo" + }, + "styles": { + "message": "Estilos" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Subscrições" + }, + "subtitles": { + "message": "Legendas" + }, + "sunset": { + "message": "Pôr do sol" + }, + "sunsetToSunrise": { + "message": "Pôr do sol até de manhã" + }, + "systemPeferenceDark": { + "message": "Preferências do sistema: Escuro" + }, + "systemPeferenceLight": { + "message": "Preferências do sistema: Claro" + }, + "teal": { + "message": "Azul esverdeado" + }, + "textColor": { + "message": "Côr do texto" + }, + "themes": { + "message": "Temas" + }, + "thisWillRemoveAllCookies": { + "message": "Isto vai remover todos os cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Isto vai remover todos os cookies do YouTube" + }, + "thisWillResetAllSettings": { + "message": "Isto vai reiniciar todas as definições." + }, + "thisWillResetAllShortcuts": { + "message": "Isto vai reiniciar todos os atalhos" + }, + "thumbnails": { + "message": "Miniaturas" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Tempo de" + }, + "timeTo": { + "message": "Tempo para" + }, + "todayAt": { + "message": "Hoje em" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Conversa principal" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Trailer toca automaticamente" + }, + "translations": { + "message": "Traduções" + }, + "transparentBackground": { + "message": "Fundo transparente" + }, + "trending": { + "message": "Tendências" + }, + "tryToReloadThePage": { + "message": "Tenta carregar a pagina de novo" + }, + "type": { + "message": "Escreve" + }, + "upNextAutoplay": { + "message": "Arquivo seguinte a tocar" + }, + "use24HourFormat": { + "message": "Usar formato de 24-horas" + }, + "version": { + "message": "Versão" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "A descrição do video vai ser expandida para ver o nome da categoria" + }, + "videoFormats": { + "message": "Formatos de video" + }, + "videos": { + "message": "Videos" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Vêr mais tarde" + }, + "watchTime": { + "message": "Tempo de visualização" + }, + "whenTabIsChanged": { + "message": "Quando a janela mudar" + }, + "white": { + "message": "Branco" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Amarelo" + }, + "youtubeHeaderLeft": { + "message": "Cabeçalho do YouTube (esquerda)" + }, + "youtubeHeaderRight": { + "message": "Cabeçalho do YouTube (direita)" + }, + "youtubeHomePage": { + "message": "Página principal do YouTube" + }, + "youtubeLanguage": { + "message": "Linguagem do YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "O YouTube limita a qualidade do video em 1080p para o codec h.264" + } } \ No newline at end of file diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 3a5c845dd..4915ebbac 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -1,992 +1,998 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Despre" - }, - "accept": { - "message": "Acceptă" - }, - "activate": { - "message": "Activează" - }, - "activateCaptions": { - "message": "Activează subtitrările" - }, - "activateFullscreen": { - "message": "Activează ecran complet" - }, - "activated": { - "message": "Activat" - }, - "activatedFeatures": { - "message": "Caracteristici activate" - }, - "activeFeatures": { - "message": "Caracteristici active" - }, - "addScrollToTop": { - "message": "Adaugă «Derulează la început»" - }, - "ads": { - "message": "Reclame" - }, - "all": { - "message": "Tot" - }, - "allow": { - "message": "Permite" - }, - "allow60fps": { - "message": "Permite 60fps" - }, - "alwaysActive": { - "message": "Mereu activ" - }, - "alwaysShowProgressBar": { - "message": "Arată mereu bara de progres" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analizator" - }, - "appearance": { - "message": "Aparențe" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Formaturi audio" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-fullscreen" - }, - "autopauseWhenSwitchingTabs": { - "message": "Pauzează automat la schimbarea tab-ului" - }, - "autoplay": { - "message": "Pornește automat" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Salvează & resetează" - }, - "baseOnSystemColorScheme": { - "message": "Bazat pe schema de culori a sistemului" - }, - "belowPlayer": { - "message": "Below player" - }, - "black": { - "message": "Înapoi" - }, - "blacklist": { - "message": "Lista neagră" - }, - "blockAll": { - "message": "Blochează tot" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Albastru" - }, - "blueGray": { - "message": "Gri albastru" - }, - "bluelight": { - "message": "Lumină albastră" - }, - "brown": { - "message": "Maro" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Versiunea browserului" - }, - "bubbles": { - "message": "Bule" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Butoane" - }, - "cancel": { - "message": "Anulează" - }, - "categories": { - "message": "Categorii" - }, - "channel": { - "message": "Canal" - }, - "channels": { - "message": "Canale" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Închide secțiunea de subscripții" - }, - "collapsed": { - "message": "Închis" - }, - "comments": { - "message": "Comentarii" - }, - "confirmationBeforeClosing": { - "message": "Confirmă înainte să închizi" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Nuclee" - }, - "cropChapterTitles": { - "message": "Taie titlurile capitolelor" - }, - "customCss": { - "message": "CSS Personalizat" - }, - "customJs": { - "message": "JS Personalizat" - }, - "customMiniPlayer": { - "message": "Mini-Player Personalizat" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Închis" - }, - "darkTheme": { - "message": "Temă închisă" - }, - "dateAndTime": { - "message": "Data & timpul" - }, - "dawn": { - "message": "Răsărit" - }, - "decreasePlaybackSpeed": { - "message": "Scade viteza playback-ului" - }, - "decreaseVolume": { - "message": "Scade volumul" - }, - "deepOrange": { - "message": "Portocaliu închis" - }, - "deepPurple": { - "message": "Mov închis" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Tab-ul implicit al canalului" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Șterge cookie-urile YouTube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Descriere" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Deșert" - }, - "details": { - "message": "Detalii" - }, - "developerOptions": { - "message": "Opțiunile dezvoltatorului" - }, - "device": { - "message": "Dispozitiv" - }, - "dim": { - "message": "Întunecă" - }, - "disabled": { - "message": "Dezactivat" - }, - "dislike": { - "message": "Nu îmi place" - }, - "doNotChange": { - "message": "Nu schimba" - }, - "donate": { - "message": "Donează" - }, - "draggable": { - "message": "Poate fi tras" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Gol" - }, - "enabled": { - "message": "Activat" - }, - "enabledForced": { - "message": "Activat (forțat)" - }, - "expanded": { - "message": "Deschis" - }, - "exportSettings": { - "message": "Exportă setările" - }, - "extension": { - "message": "Extensie" - }, - "file": { - "message": "Fișier" - }, - "filters": { - "message": "Filtre" - }, - "fitToWindow": { - "message": "Potrivește în fereastră" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Subsol" - }, - "forceSDR": { - "message": "Forțează SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Viteză de playback forțată" - }, - "forcedTheaterMode": { - "message": "Modul teatru forțat" - }, - "forcedVolume": { - "message": "Volum forțat" - }, - "foundABug": { - "message": "Ai găsit un bug?" - }, - "fullWindow": { - "message": "Ecran complet" - }, - "general": { - "message": "General" - }, - "geoPreference": { - "message": "Preferințe Geo" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Du-te la casuța de căutare" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Verde" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "Miniatură HD" - }, - "header": { - "message": "Antet" - }, - "hidden": { - "message": "Ascuns" - }, - "hiddenOnVideoPage": { - "message": "Ascuns pe pagina video" - }, - "hideAnimatedThumbnails": { - "message": "Ascunde miniaturile animate" - }, - "hideAnnotations": { - "message": "Ascunde adnotările" - }, - "hideCards": { - "message": "Ascunde cardurile" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Ascunde detaliile" - }, - "hideEndscreen": { - "message": "Ascunde ecranul de final" - }, - "hideFeaturedContent": { - "message": "Ascunde conținutul prezentat" - }, - "hideFooter": { - "message": "Ascunde subsolul" - }, - "hideGradientBottom": { - "message": "Ascunde Gradient Bottom" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Ascunde playlistul" - }, - "hideRightButtons": { - "message": "Ascunde butoanele din dreapta" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Ascunde «Derulează pentru detalii»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Ascunde numărul vizualizărilor" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "Istoric" - }, - "home": { - "message": "Acasă" - }, - "hover": { - "message": "Hover" - }, - "hoverOnVideoPage": { - "message": "Hover pe pagina video" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Acum cât timp a fost încărcat videoclipul" - }, - "icons": { - "message": "Iconițe" - }, - "iconsOnly": { - "message": "Doar iconițe" - }, - "importSettings": { - "message": "Importă setările" - }, - "improveLogo": { - "message": "Îmbunătățește sigla" - }, - "improvedtubeIconOnYoutube": { - "message": "Iconița ImprovedTube pe YouTube" - }, - "improvedtubeLanguage": { - "message": "Limba ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Versiunea ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Crește viteza de playback" - }, - "increaseVolume": { - "message": "Crește volumul" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Obiecte" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Limbi" - }, - "legacyYoutube": { - "message": "YouTube vechi" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Deschis" - }, - "lightBlue": { - "message": "Albastru deschis" - }, - "lightGreen": { - "message": "Verde deschis" - }, - "like": { - "message": "Îmi place" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Like-uri" - }, - "lime": { - "message": "Lime" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Listă" - }, - "liveChat": { - "message": "Chat live" - }, - "liveChatType": { - "message": "Chat live scrie" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Normalizează zgomotul" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Marchează videoclipurile văzute" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mixer" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Culorile mele" - }, - "name": { - "message": "Nume" - }, - "nativeMiniPlayer": { - "message": "Mini-Player nativ" - }, - "new": { - "message": "Nou" - }, - "nextVideo": { - "message": "Următorul video" - }, - "night": { - "message": "Noapte" - }, - "noActiveFeatures": { - "message": "Nici o caracteristică activată" - }, - "noOpenVideoTabs": { - "message": "Niciun tab video deschis" - }, - "none": { - "message": "Nimic" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Vechi" - }, - "onAllVideos": { - "message": "Pe toate videoclipurile" - }, - "onSubscribedChannels": { - "message": "Pe canalele abonate" - }, - "onlyActiveOnYoutube": { - "message": "Activ doar pe YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Doar o instanță de player care merge" - }, - "openPopupPlayer": { - "message": "Deschide videoclipul/playlistul într-o fereastră nouă" - }, - "orange": { - "message": "Portocaliu" - }, - "os": { - "message": "SO" - }, - "other": { - "message": "Altele" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Permisiuni" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Roz" - }, - "plain": { - "message": "Simplu" - }, - "platform": { - "message": "Platformă" - }, - "playPause": { - "message": "Redă / Pauză" - }, - "playbackSpeed": { - "message": "Viteza playbackului" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Culoare player" - }, - "playerSize": { - "message": "Mărime player" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlisturi" - }, - "popupPlayer": { - "message": "Player popup" - }, - "position": { - "message": "Poziție" - }, - "pressAnyKeyOrScroll": { - "message": "Apasă orice buton sau folosește rotița mouseului." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Apasă orice buton sau folosește rotița mouseului" - }, - "previousVideo": { - "message": "Videoclipul anterior" - }, - "primaryColor": { - "message": "Culoarea primară" - }, - "purple": { - "message": "Mov" - }, - "quality": { - "message": "Calitate" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Dă-ne o notă" - }, - "red": { - "message": "Roșu" - }, - "redDislikeButton": { - "message": "Arată butonul nu îmi place cu culoare roșie" - }, - "relatedVideos": { - "message": "Videoclipuri asemănătoare" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Elimină rezultatele asemănătoare a căutării" - }, - "repeat": { - "message": "Repetă" - }, - "reset": { - "message": "Resetează" - }, - "resetAllSettings": { - "message": "Resetează toate setările" - }, - "resetAllShortcuts": { - "message": "Resetează toate scurtăturile" - }, - "reverse": { - "message": "Invers" - }, - "rotate": { - "message": "Rotește" - }, - "save": { - "message": "Salvează" - }, - "saveAs": { - "message": "Salvează ca" - }, - "schedule": { - "message": "Program" - }, - "screen": { - "message": "Ecran" - }, - "screenshot": { - "message": "Captură de ecran" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Caută" - }, - "searchBarOnly": { - "message": "Doar bara de căutare" - }, - "seekBackward10Seconds": { - "message": "Sari înapoi 10 secunde" - }, - "seekForward10Seconds": { - "message": "Sari înainte 10 secunde" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Setări" - }, - "settingsSuccessfullyImported": { - "message": "Setările au fost importate cu succes" - }, - "shortcuts": { - "message": "Scurtături" - }, - "showCardsOnMouseHover": { - "message": "Arată cardurile la hover-ul cu mouseul" - }, - "showChannelVideosCount": { - "message": "Arată numărul de videoclipuri al canalului" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Amestecă" - }, - "sidebar": { - "message": "Bara laterală" - }, - "spacebar": { - "message": "Bara de spațiu" - }, - "squaredUserImages": { - "message": "Avatarele utilizatorului pătrat" - }, - "static": { - "message": "Static" - }, - "statsForNerds": { - "message": "Arată Statisticile pentru Tocilari" - }, - "step": { - "message": "Pas" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stiluri" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Abonamente" - }, - "subtitles": { - "message": "Subtitrări" - }, - "sunset": { - "message": "Apus" - }, - "sunsetToSunrise": { - "message": "De la apus la răsărit" - }, - "systemPeferenceDark": { - "message": "Preferința sitemului: închis" - }, - "systemPeferenceLight": { - "message": "Preferința sitemului: deschis" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Culoarea textului" - }, - "themes": { - "message": "Teme" - }, - "thisWillRemoveAllCookies": { - "message": "Asta va șterge toate cookie-urile." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Asta va șterge toate cooki-urile YouTube." - }, - "thisWillResetAllSettings": { - "message": "Asta va reseta toate setările." - }, - "thisWillResetAllShortcuts": { - "message": "Asta va șterge toate scurtăturile" - }, - "thumbnails": { - "message": "Miniaturi" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Timp de la" - }, - "timeTo": { - "message": "Timp până la" - }, - "todayAt": { - "message": "Azi la" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Comută cardurile" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Auto-redă trailerul" - }, - "translations": { - "message": "Traduceri" - }, - "transparentBackground": { - "message": "Fundal Transparent" - }, - "trending": { - "message": "Tendințe" - }, - "tryToReloadThePage": { - "message": "Încearcă să reîmprospătezi pagina" - }, - "type": { - "message": "Scrie" - }, - "upNextAutoplay": { - "message": "Urmează" - }, - "use24HourFormat": { - "message": "Folosește formatul de 24 de ore" - }, - "version": { - "message": "Versiune" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Descripția videoclipului va fi extinsă pentru a afla numele categoriei" - }, - "videoFormats": { - "message": "Formatul videoclipului" - }, - "videos": { - "message": "Videoclipuri" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volum" - }, - "watchLater": { - "message": "Vezi mai târziu" - }, - "watchTime": { - "message": "Timp de vizionare" - }, - "whenTabIsChanged": { - "message": "Când tabul este schimbat" - }, - "white": { - "message": "Alb" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Galben" - }, - "youtubeHeaderLeft": { - "message": "Antetul YouTube (stânga)" - }, - "youtubeHeaderRight": { - "message": "Antetul YouTube (dreapta)" - }, - "youtubeHomePage": { - "message": "Pagina de pornire YouTube" - }, - "youtubeLanguage": { - "message": "Limba de afișare YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limitează calitatea videoclipului la 1080p pentru codecul h.264" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Despre" + }, + "accept": { + "message": "Acceptă" + }, + "activate": { + "message": "Activează" + }, + "activateCaptions": { + "message": "Activează subtitrările" + }, + "activateFullscreen": { + "message": "Activează ecran complet" + }, + "activated": { + "message": "Activat" + }, + "activatedFeatures": { + "message": "Caracteristici activate" + }, + "activeFeatures": { + "message": "Caracteristici active" + }, + "addScrollToTop": { + "message": "Adaugă «Derulează la început»" + }, + "ads": { + "message": "Reclame" + }, + "all": { + "message": "Tot" + }, + "allow": { + "message": "Permite" + }, + "allow60fps": { + "message": "Permite 60fps" + }, + "alwaysActive": { + "message": "Mereu activ" + }, + "alwaysShowProgressBar": { + "message": "Arată mereu bara de progres" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analizator" + }, + "appearance": { + "message": "Aparențe" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Formaturi audio" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullscreen" + }, + "autopauseWhenSwitchingTabs": { + "message": "Pauzează automat la schimbarea tab-ului" + }, + "autoplay": { + "message": "Pornește automat" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Salvează & resetează" + }, + "baseOnSystemColorScheme": { + "message": "Bazat pe schema de culori a sistemului" + }, + "belowPlayer": { + "message": "Below player" + }, + "black": { + "message": "Înapoi" + }, + "blacklist": { + "message": "Lista neagră" + }, + "blockAll": { + "message": "Blochează tot" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Albastru" + }, + "blueGray": { + "message": "Gri albastru" + }, + "bluelight": { + "message": "Lumină albastră" + }, + "brown": { + "message": "Maro" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Versiunea browserului" + }, + "bubbles": { + "message": "Bule" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Butoane" + }, + "cancel": { + "message": "Anulează" + }, + "categories": { + "message": "Categorii" + }, + "channel": { + "message": "Canal" + }, + "channels": { + "message": "Canale" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Închide secțiunea de subscripții" + }, + "collapsed": { + "message": "Închis" + }, + "comments": { + "message": "Comentarii" + }, + "confirmationBeforeClosing": { + "message": "Confirmă înainte să închizi" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Nuclee" + }, + "cropChapterTitles": { + "message": "Taie titlurile capitolelor" + }, + "customCss": { + "message": "CSS Personalizat" + }, + "customJs": { + "message": "JS Personalizat" + }, + "customMiniPlayer": { + "message": "Mini-Player Personalizat" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Închis" + }, + "darkTheme": { + "message": "Temă închisă" + }, + "dateAndTime": { + "message": "Data & timpul" + }, + "dawn": { + "message": "Răsărit" + }, + "decreasePlaybackSpeed": { + "message": "Scade viteza playback-ului" + }, + "decreaseVolume": { + "message": "Scade volumul" + }, + "deepOrange": { + "message": "Portocaliu închis" + }, + "deepPurple": { + "message": "Mov închis" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Tab-ul implicit al canalului" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Șterge cookie-urile YouTube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Descriere" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Deșert" + }, + "details": { + "message": "Detalii" + }, + "developerOptions": { + "message": "Opțiunile dezvoltatorului" + }, + "device": { + "message": "Dispozitiv" + }, + "dim": { + "message": "Întunecă" + }, + "disabled": { + "message": "Dezactivat" + }, + "dislike": { + "message": "Nu îmi place" + }, + "doNotChange": { + "message": "Nu schimba" + }, + "donate": { + "message": "Donează" + }, + "draggable": { + "message": "Poate fi tras" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Gol" + }, + "enabled": { + "message": "Activat" + }, + "enabledForced": { + "message": "Activat (forțat)" + }, + "expanded": { + "message": "Deschis" + }, + "exportSettings": { + "message": "Exportă setările" + }, + "extension": { + "message": "Extensie" + }, + "file": { + "message": "Fișier" + }, + "filters": { + "message": "Filtre" + }, + "fitToWindow": { + "message": "Potrivește în fereastră" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Subsol" + }, + "forceSDR": { + "message": "Forțează SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Viteză de playback forțată" + }, + "forcedTheaterMode": { + "message": "Modul teatru forțat" + }, + "forcedVolume": { + "message": "Volum forțat" + }, + "foundABug": { + "message": "Ai găsit un bug?" + }, + "fullWindow": { + "message": "Ecran complet" + }, + "general": { + "message": "General" + }, + "geoPreference": { + "message": "Preferințe Geo" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Du-te la casuța de căutare" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Verde" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "Miniatură HD" + }, + "header": { + "message": "Antet" + }, + "hidden": { + "message": "Ascuns" + }, + "hiddenOnVideoPage": { + "message": "Ascuns pe pagina video" + }, + "hideAnimatedThumbnails": { + "message": "Ascunde miniaturile animate" + }, + "hideAnnotations": { + "message": "Ascunde adnotările" + }, + "hideCards": { + "message": "Ascunde cardurile" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Ascunde detaliile" + }, + "hideEndscreen": { + "message": "Ascunde ecranul de final" + }, + "hideFeaturedContent": { + "message": "Ascunde conținutul prezentat" + }, + "hideFooter": { + "message": "Ascunde subsolul" + }, + "hideGradientBottom": { + "message": "Ascunde Gradient Bottom" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Ascunde playlistul" + }, + "hideRightButtons": { + "message": "Ascunde butoanele din dreapta" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Ascunde «Derulează pentru detalii»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Ascunde numărul vizualizărilor" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Istoric" + }, + "home": { + "message": "Acasă" + }, + "hover": { + "message": "Hover" + }, + "hoverOnVideoPage": { + "message": "Hover pe pagina video" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Acum cât timp a fost încărcat videoclipul" + }, + "icons": { + "message": "Iconițe" + }, + "iconsOnly": { + "message": "Doar iconițe" + }, + "importSettings": { + "message": "Importă setările" + }, + "improveLogo": { + "message": "Îmbunătățește sigla" + }, + "improvedtubeIconOnYoutube": { + "message": "Iconița ImprovedTube pe YouTube" + }, + "improvedtubeLanguage": { + "message": "Limba ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Versiunea ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Crește viteza de playback" + }, + "increaseVolume": { + "message": "Crește volumul" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Obiecte" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Limbi" + }, + "legacyYoutube": { + "message": "YouTube vechi" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Deschis" + }, + "lightBlue": { + "message": "Albastru deschis" + }, + "lightGreen": { + "message": "Verde deschis" + }, + "like": { + "message": "Îmi place" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Like-uri" + }, + "lime": { + "message": "Lime" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Listă" + }, + "liveChat": { + "message": "Chat live" + }, + "liveChatType": { + "message": "Chat live scrie" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Normalizează zgomotul" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Marchează videoclipurile văzute" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Culorile mele" + }, + "name": { + "message": "Nume" + }, + "nativeMiniPlayer": { + "message": "Mini-Player nativ" + }, + "new": { + "message": "Nou" + }, + "nextVideo": { + "message": "Următorul video" + }, + "night": { + "message": "Noapte" + }, + "noActiveFeatures": { + "message": "Nici o caracteristică activată" + }, + "noOpenVideoTabs": { + "message": "Niciun tab video deschis" + }, + "none": { + "message": "Nimic" + }, + "normal": { + "message": "Normal" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Vechi" + }, + "onAllVideos": { + "message": "Pe toate videoclipurile" + }, + "onSubscribedChannels": { + "message": "Pe canalele abonate" + }, + "onlyActiveOnYoutube": { + "message": "Activ doar pe YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Doar o instanță de player care merge" + }, + "openPopupPlayer": { + "message": "Deschide videoclipul/playlistul într-o fereastră nouă" + }, + "orange": { + "message": "Portocaliu" + }, + "os": { + "message": "SO" + }, + "other": { + "message": "Altele" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Permisiuni" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Roz" + }, + "plain": { + "message": "Simplu" + }, + "platform": { + "message": "Platformă" + }, + "playPause": { + "message": "Redă / Pauză" + }, + "playbackSpeed": { + "message": "Viteza playbackului" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Culoare player" + }, + "playerSize": { + "message": "Mărime player" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlisturi" + }, + "popupPlayer": { + "message": "Player popup" + }, + "position": { + "message": "Poziție" + }, + "pressAnyKeyOrScroll": { + "message": "Apasă orice buton sau folosește rotița mouseului." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Apasă orice buton sau folosește rotița mouseului" + }, + "previousVideo": { + "message": "Videoclipul anterior" + }, + "primaryColor": { + "message": "Culoarea primară" + }, + "purple": { + "message": "Mov" + }, + "quality": { + "message": "Calitate" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Dă-ne o notă" + }, + "red": { + "message": "Roșu" + }, + "redDislikeButton": { + "message": "Arată butonul nu îmi place cu culoare roșie" + }, + "relatedVideos": { + "message": "Videoclipuri asemănătoare" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Elimină rezultatele asemănătoare a căutării" + }, + "repeat": { + "message": "Repetă" + }, + "reset": { + "message": "Resetează" + }, + "resetAllSettings": { + "message": "Resetează toate setările" + }, + "resetAllShortcuts": { + "message": "Resetează toate scurtăturile" + }, + "reverse": { + "message": "Invers" + }, + "rotate": { + "message": "Rotește" + }, + "save": { + "message": "Salvează" + }, + "saveAs": { + "message": "Salvează ca" + }, + "schedule": { + "message": "Program" + }, + "screen": { + "message": "Ecran" + }, + "screenshot": { + "message": "Captură de ecran" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Caută" + }, + "searchBarOnly": { + "message": "Doar bara de căutare" + }, + "seekBackward10Seconds": { + "message": "Sari înapoi 10 secunde" + }, + "seekForward10Seconds": { + "message": "Sari înainte 10 secunde" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Setări" + }, + "settingsSuccessfullyImported": { + "message": "Setările au fost importate cu succes" + }, + "shortcuts": { + "message": "Scurtături" + }, + "showCardsOnMouseHover": { + "message": "Arată cardurile la hover-ul cu mouseul" + }, + "showChannelVideosCount": { + "message": "Arată numărul de videoclipuri al canalului" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Amestecă" + }, + "sidebar": { + "message": "Bara laterală" + }, + "spacebar": { + "message": "Bara de spațiu" + }, + "squaredUserImages": { + "message": "Avatarele utilizatorului pătrat" + }, + "static": { + "message": "Static" + }, + "statsForNerds": { + "message": "Arată Statisticile pentru Tocilari" + }, + "step": { + "message": "Pas" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stiluri" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Abonamente" + }, + "subtitles": { + "message": "Subtitrări" + }, + "sunset": { + "message": "Apus" + }, + "sunsetToSunrise": { + "message": "De la apus la răsărit" + }, + "systemPeferenceDark": { + "message": "Preferința sitemului: închis" + }, + "systemPeferenceLight": { + "message": "Preferința sitemului: deschis" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Culoarea textului" + }, + "themes": { + "message": "Teme" + }, + "thisWillRemoveAllCookies": { + "message": "Asta va șterge toate cookie-urile." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Asta va șterge toate cooki-urile YouTube." + }, + "thisWillResetAllSettings": { + "message": "Asta va reseta toate setările." + }, + "thisWillResetAllShortcuts": { + "message": "Asta va șterge toate scurtăturile" + }, + "thumbnails": { + "message": "Miniaturi" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Timp de la" + }, + "timeTo": { + "message": "Timp până la" + }, + "todayAt": { + "message": "Azi la" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Comută cardurile" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Auto-redă trailerul" + }, + "translations": { + "message": "Traduceri" + }, + "transparentBackground": { + "message": "Fundal Transparent" + }, + "trending": { + "message": "Tendințe" + }, + "tryToReloadThePage": { + "message": "Încearcă să reîmprospătezi pagina" + }, + "type": { + "message": "Scrie" + }, + "upNextAutoplay": { + "message": "Urmează" + }, + "use24HourFormat": { + "message": "Folosește formatul de 24 de ore" + }, + "version": { + "message": "Versiune" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Descripția videoclipului va fi extinsă pentru a afla numele categoriei" + }, + "videoFormats": { + "message": "Formatul videoclipului" + }, + "videos": { + "message": "Videoclipuri" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volum" + }, + "watchLater": { + "message": "Vezi mai târziu" + }, + "watchTime": { + "message": "Timp de vizionare" + }, + "whenTabIsChanged": { + "message": "Când tabul este schimbat" + }, + "white": { + "message": "Alb" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Galben" + }, + "youtubeHeaderLeft": { + "message": "Antetul YouTube (stânga)" + }, + "youtubeHeaderRight": { + "message": "Antetul YouTube (dreapta)" + }, + "youtubeHomePage": { + "message": "Pagina de pornire YouTube" + }, + "youtubeLanguage": { + "message": "Limba de afișare YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limitează calitatea videoclipului la 1080p pentru codecul h.264" + } } \ No newline at end of file diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index e72b8688e..656697f8e 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -1,992 +1,998 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Об ImprovedTube" - }, - "accept": { - "message": "Принять" - }, - "activate": { - "message": "Активировать" - }, - "activateCaptions": { - "message": "Активировать субтитры" - }, - "activateFullscreen": { - "message": "Перейти в полноэкранный режим" - }, - "activated": { - "message": "Активировано" - }, - "activatedFeatures": { - "message": "Активированные функции" - }, - "activeFeatures": { - "message": "Активные функции" - }, - "addScrollToTop": { - "message": "Добавить кнопку «наверх»" - }, - "ads": { - "message": "Реклама" - }, - "all": { - "message": "Все" - }, - "allow": { - "message": "Разрешить" - }, - "allow60fps": { - "message": "Разрешить 60fps" - }, - "alwaysActive": { - "message": "Всегда активный" - }, - "alwaysShowProgressBar": { - "message": "Всегда показывать прогресс-бар" - }, - "amber": { - "message": "Янтарный" - }, - "analyzer": { - "message": "Анализатор" - }, - "appearance": { - "message": "Внешний вид" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Аудио" - }, - "audioFormats": { - "message": "Аудио форматы" - }, - "auto": { - "message": "Авто" - }, - "autoFullscreen": { - "message": "Автоматический переход в полноэкранный режим" - }, - "autopauseWhenSwitchingTabs": { - "message": "Автопауза при переходе между вкладками" - }, - "autoplay": { - "message": "Автовоспроизведение" - }, - "backgroundColor": { - "message": "Цвет фона" - }, - "backgroundOpacity": { - "message": "Прозрачность фона" - }, - "backupAndReset": { - "message": "Резервное копирование и сброс" - }, - "baseOnSystemColorScheme": { - "message": "Зависит от системной цветовой схемы" - }, - "belowPlayer": { - "message": "Ниже плеера" - }, - "black": { - "message": "Черный" - }, - "blacklist": { - "message": "Черный список" - }, - "blockAll": { - "message": "Заблокировать всё" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Синий" - }, - "blueGray": { - "message": "Серо-голубой" - }, - "bluelight": { - "message": "Синий свет" - }, - "brown": { - "message": "Коричневый" - }, - "browser": { - "message": "Браузер" - }, - "browserVersion": { - "message": "Версия браузера" - }, - "bubbles": { - "message": "Пузыри" - }, - "bug": { - "message": "Ошибка" - }, - "buttons": { - "message": "Кнопки" - }, - "cancel": { - "message": "Отмена" - }, - "categories": { - "message": "Категории" - }, - "channel": { - "message": "Канал" - }, - "channels": { - "message": "Каналы" - }, - "characterEdgeStyle": { - "message": "Стиль контура символов" - }, - "clipboard": { - "message": "Буфер обмена" - }, - "codecH264": { - "message": "Кодек h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Свернуть раздел подписок" - }, - "collapsed": { - "message": "Свернуть" - }, - "comments": { - "message": "Комментарии" - }, - "confirmationBeforeClosing": { - "message": "Подтверждение закрытия" - }, - "cookies": { - "message": "Куки" - }, - "cores": { - "message": "Ядра" - }, - "cropChapterTitles": { - "message": "Обрезать заголовки глав" - }, - "customCss": { - "message": "Пользовательский CSS" - }, - "customJs": { - "message": "Пользовательский JS" - }, - "customMiniPlayer": { - "message": "Новый мини-плеер" - }, - "cyan": { - "message": "Сине-зелёный" - }, - "dark": { - "message": "Темная" - }, - "darkTheme": { - "message": "Ночная тема" - }, - "dateAndTime": { - "message": "Дата и время" - }, - "dawn": { - "message": "Рассвет" - }, - "decreasePlaybackSpeed": { - "message": "Уменьшить скорость видео" - }, - "decreaseVolume": { - "message": "Уменьшить громкость" - }, - "decreaseVolume5": { - "message": "Уменьшить громкость на 5%" - }, - "deepOrange": { - "message": "Темно-оранжевый" - }, - "deepPurple": { - "message": "Темно-фиолетовый" - }, - "default": { - "message": "По умолчанию" - }, - "defaultChannelTab": { - "message": "Вкладка канала по умолчанию" - }, - "defaultContentCountry": { - "message": "Контент страны по умолчанию" - }, - "deleteWatchedVideos": { - "message": "Удалить просмотренные видео" - }, - "deleteYoutubeCookies": { - "message": "Удалить куки YouTube" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Описание" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Пустыня" - }, - "details": { - "message": "Подробная информация" - }, - "developerOptions": { - "message": "Настройки разработчика" - }, - "device": { - "message": "Устройство" - }, - "dim": { - "message": "Тусклость" - }, - "disabled": { - "message": "Выключено" - }, - "dislike": { - "message": "Дизлайк" - }, - "doNotChange": { - "message": "Не менять" - }, - "donate": { - "message": "Пожертвовать" - }, - "draggable": { - "message": "Перетаскиваемый" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Пусто" - }, - "enabled": { - "message": "Включено" - }, - "enabledForced": { - "message": "Включено (принудительно)" - }, - "expanded": { - "message": "Развернуть" - }, - "exportSettings": { - "message": "Экспорт настроек" - }, - "extension": { - "message": "Расширение" - }, - "file": { - "message": "Файл" - }, - "filters": { - "message": "Фильтры" - }, - "fitToWindow": { - "message": "Подогнать под окно" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Шрифт" - }, - "fontColor": { - "message": "Цвет шрифта" - }, - "fontFamily": { - "message": "Семейство шрифтов" - }, - "fontOpacity": { - "message": "Прозрачность шрифта" - }, - "fontSize": { - "message": "Размер шрифта" - }, - "footer": { - "message": "Нижний колонтитул" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Всегда проигрывать видео с начала" - }, - "forcedPlaybackSpeed": { - "message": "Форсировать скорость воспроизведения" - }, - "forcedTheaterMode": { - "message": "Принудительно переходить в режим кино" - }, - "forcedVolume": { - "message": "Принудительная громкость" - }, - "foundABug": { - "message": "Нашли ошибку?" - }, - "fullWindow": { - "message": "Растянуть на все окно" - }, - "general": { - "message": "Общее" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Перейти в окно поиска" - }, - "googleApiKey": { - "message": "Ключ Google API" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Зеленый" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "Превью высокого качества" - }, - "header": { - "message": "Верхняя панель" - }, - "hidden": { - "message": "Скрыть" - }, - "hiddenOnVideoPage": { - "message": "Скрыть (только на странице с видео)" - }, - "hideAnimatedThumbnails": { - "message": "Скрыть анимированные превью" - }, - "hideAnnotations": { - "message": "Скрыть аннотации" - }, - "hideCards": { - "message": "Скрыть карточки" - }, - "hideCountryCode": { - "message": "Скрыть код страны" - }, - "hideDate": { - "message": "Скрыть дату" - }, - "hideDetails": { - "message": "Скрыть подробную информацию" - }, - "hideEndscreen": { - "message": "Скрыть экран после видео" - }, - "hideFeaturedContent": { - "message": "Скрыть рекомендации" - }, - "hideFooter": { - "message": "Скрыть нижний колонтитул" - }, - "hideGradientBottom": { - "message": "Скрыть нижний градиент" - }, - "hideMoreButton": { - "message": "Скрыть кнопку \"...\"" - }, - "hidePlayerControlsBar": { - "message": "Скрыть панель управления плеером" - }, - "hidePlayerControlsBarButtons": { - "message": "Скрыть кнопки панели управления плеером" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Скрыть плейлист" - }, - "hideRightButtons": { - "message": "Скрыть кнопки (справа)" - }, - "hideSaveButton": { - "message": "Скрыть кнопку \"Сохранить\"" - }, - "hideScrollForDetails": { - "message": "Скрыть «Прокрутите для подробной информации»" - }, - "hideShareButton": { - "message": "Скрыть кнопку \"Поделиться\"" - }, - "hideSkipOverlay": { - "message": "Скрыть наложение \"5 секунд\"" - }, - "hideThumbnailOverlay": { - "message": "Скрыть наложение на превью" - }, - "hideThumbnails": { - "message": "Скрыть превью" - }, - "hideViewsCount": { - "message": "Скрыть количество просмотров" - }, - "hideVoiceSearchButton": { - "message": "Скрыть кнопку голосового поиска" - }, - "high": { - "message": "High" - }, - "history": { - "message": "История" - }, - "home": { - "message": "Домашняя страница" - }, - "hover": { - "message": "Показывать при наведении" - }, - "hoverOnVideoPage": { - "message": "Показывать при наведении (только на странице с видео)" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Показывать как давно было загружено видео" - }, - "icons": { - "message": "Иконки" - }, - "iconsOnly": { - "message": "Только иконки" - }, - "importSettings": { - "message": "Импорт настроек" - }, - "improveLogo": { - "message": "Улучшить логотип YouTube" - }, - "improvedtubeIconOnYoutube": { - "message": "Значок ImprovedTube в YouTube" - }, - "improvedtubeLanguage": { - "message": "Язык ImprovedTube" - }, - "improvedtubeVersion": { - "message": "Версия ImprovedTube" - }, - "increasePlaybackSpeed": { - "message": "Увеличить скорость видео" - }, - "increaseVolume": { - "message": "Увеличить громкость" - }, - "increaseVolume5": { - "message": "Увеличить громкости на 5%" - }, - "indigo": { - "message": "Индиго" - }, - "items": { - "message": "Items" - }, - "language": { - "message": "Язык" - }, - "languages": { - "message": "Языки" - }, - "legacyYoutube": { - "message": "Старая версия YouTube" - }, - "library": { - "message": "Библиотека" - }, - "light": { - "message": "Светлая" - }, - "lightBlue": { - "message": "Светло-синий" - }, - "lightGreen": { - "message": "Светло-зеленый" - }, - "like": { - "message": "Лайк" - }, - "liked": { - "message": "Понравившиеся" - }, - "likes": { - "message": "Лайки" - }, - "lime": { - "message": "Лайм" - }, - "limitPageWidth": { - "message": "Ограничить ширину страницы" - }, - "list": { - "message": "Список" - }, - "liveChat": { - "message": "Live-чат" - }, - "liveChatType": { - "message": "Тип live-чата" - }, - "location": { - "message": "Место нахождения" - }, - "loudnessNormalization": { - "message": "Нормализировать громкость" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Отмечать просмотренные видео" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Миксер" - }, - "moveSidebarLeft": { - "message": "Сместить боковую панель влево" - }, - "moveThumbnailsRight": { - "message": "Сместить превью вправо" - }, - "myColors": { - "message": "Мои цвета" - }, - "name": { - "message": "Имя" - }, - "nativeMiniPlayer": { - "message": "Мини-плеер от YouTube" - }, - "new": { - "message": "Новый" - }, - "nextVideo": { - "message": "Следующее видео" - }, - "night": { - "message": "Ночь" - }, - "noActiveFeatures": { - "message": "Нет активных функций" - }, - "noOpenVideoTabs": { - "message": "Нет открытых вкладок с видео" - }, - "none": { - "message": "Пусто" - }, - "normal": { - "message": "Обычный" - }, - "old": { - "message": "Старый" - }, - "onAllVideos": { - "message": "Во всех видео" - }, - "onSubscribedChannels": { - "message": "Только на каналах в подписках" - }, - "onlyActiveOnYoutube": { - "message": "Активен только в YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Только один экземпляр плеера играет" - }, - "orange": { - "message": "Оранжевый" - }, - "os": { - "message": "ОС" - }, - "other": { - "message": "Другое" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Разрешения" - }, - "pictureInPicture": { - "message": "Картинка в картинке" - }, - "pink": { - "message": "Розовый" - }, - "plain": { - "message": "Равнина" - }, - "platform": { - "message": "Платформа" - }, - "playPause": { - "message": "Воспроизведение / Пауза" - }, - "playbackSpeed": { - "message": "Скорость воспроизведения" - }, - "player": { - "message": "Плеер" - }, - "playerColor": { - "message": "Цвет плеера" - }, - "playerSize": { - "message": "Размер плеера" - }, - "playlist": { - "message": "Плейлист" - }, - "playlists": { - "message": "Плейлисты" - }, - "popupPlayer": { - "message": "Плеер во всплывающем окне" - }, - "position": { - "message": "Позиция" - }, - "pressAnyKeyOrScroll": { - "message": "Нажмите любую клавишу или воспользуйтесь колесом мыши" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Нажмите любую клавишу или используйте колесо мыши" - }, - "previousVideo": { - "message": "Предыдущее видео" - }, - "primaryColor": { - "message": "Основной цвет" - }, - "purple": { - "message": "Фиолетовый" - }, - "quality": { - "message": "Качество" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Оставить отзыв" - }, - "rateUs": { - "message": "Оцените нас" - }, - "red": { - "message": "Красный" - }, - "redDislikeButton": { - "message": "Сделать дизлайк красным" - }, - "relatedVideos": { - "message": "Похожие видео" - }, - "remote": { - "message": "Продолжить просмотр на ТВ" - }, - "removeRelatedSearchResults": { - "message": "Удалить похожие результаты поиска" - }, - "repeat": { - "message": "Повтор" - }, - "reset": { - "message": "Сбросить" - }, - "resetAllSettings": { - "message": "Сбросить все настройки" - }, - "resetAllShortcuts": { - "message": "Сбросить все горячие клавиши" - }, - "reverse": { - "message": "Обратный порядок" - }, - "rotate": { - "message": "Повернуть" - }, - "save": { - "message": "Сохранить" - }, - "saveAs": { - "message": "Сохранить как" - }, - "schedule": { - "message": "Расписание" - }, - "screen": { - "message": "Экран" - }, - "screenshot": { - "message": "Скриншот" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Поиск" - }, - "searchBarOnly": { - "message": "Только поле поиска" - }, - "seekBackward10Seconds": { - "message": "Перемотать на 10 секунд назад" - }, - "seekForward10Seconds": { - "message": "Перемотать на 10 секунд вперед" - }, - "seekNextChapter": { - "message": "Следующая глава" - }, - "seekPreviousChapter": { - "message": "Предыдущая глава" - }, - "settings": { - "message": "Настройки" - }, - "settingsSuccessfullyImported": { - "message": "Настройки успешно импортированы" - }, - "shortcuts": { - "message": "Горячие клавиши" - }, - "showCardsOnMouseHover": { - "message": "Показывать карточки при наведении мыши" - }, - "showChannelVideosCount": { - "message": "Показывать количество видео на канале" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Показать оставшуюся продолжительность видео" - }, - "shuffle": { - "message": "Случайный порядок" - }, - "sidebar": { - "message": "Боковая панель" - }, - "spacebar": { - "message": "Пробел" - }, - "squaredUserImages": { - "message": "Квадратные аватарки пользователей" - }, - "static": { - "message": "Статично" - }, - "statsForNerds": { - "message": "Показать статистику для сисадминов" - }, - "step": { - "message": "Шаг" - }, - "stop": { - "message": "Стоп" - }, - "style": { - "message": "Стиль" - }, - "styles": { - "message": "Стили" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Подписки" - }, - "subtitles": { - "message": "Субтитры" - }, - "sunset": { - "message": "Закат" - }, - "sunsetToSunrise": { - "message": "От заката до рассвета" - }, - "systemPeferenceDark": { - "message": "Предпочитаемая системой: темная" - }, - "systemPeferenceLight": { - "message": "Предпочитаемая системой: светлая" - }, - "teal": { - "message": "Бирюзовый" - }, - "textColor": { - "message": "Цвет текста" - }, - "themes": { - "message": "Темы" - }, - "thisWillRemoveAllCookies": { - "message": "Это удалит все куки" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Вы действительно хотите удалить все куки YouTube?" - }, - "thisWillResetAllSettings": { - "message": "Это сбросит все настройки" - }, - "thisWillResetAllShortcuts": { - "message": "Это сбросит все горячие клавиши" - }, - "thumbnails": { - "message": "Превью" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Время от" - }, - "timeTo": { - "message": "Время до" - }, - "todayAt": { - "message": "Сегодня в" - }, - "toggleAutoplay": { - "message": "Переключить автовоспроизведение" - }, - "toggleCards": { - "message": "Переключить карточки" - }, - "toggleControls": { - "message": "Переключить панель управления" - }, - "topChat": { - "message": "Top чат" - }, - "trackWatchedVideos": { - "message": "Отслеживать просмотренные видео" - }, - "trailerAutoplay": { - "message": "Автовоспроизведение трейлера" - }, - "translations": { - "message": "Переводы" - }, - "transparentBackground": { - "message": "Прозрачный фон" - }, - "trending": { - "message": "Тренды" - }, - "tryToReloadThePage": { - "message": "Попробуйте перезагрузить страницу" - }, - "type": { - "message": "Тип" - }, - "upNextAutoplay": { - "message": "Автовоспроизведение следующего видео" - }, - "use24HourFormat": { - "message": "24-часовой формат" - }, - "version": { - "message": "Версия" - }, - "video": { - "message": "Видео" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Описание видео будет развернуто, чтобы получить название категории видео" - }, - "videoFormats": { - "message": "Форматы видео" - }, - "videos": { - "message": "Видео" - }, - "viewMode": { - "message": "Режим просмотра" - }, - "volume": { - "message": "Громкость" - }, - "watchLater": { - "message": "Посмотреть позже" - }, - "watchTime": { - "message": "Время просмотра" - }, - "whenTabIsChanged": { - "message": "При переключении вкладок" - }, - "white": { - "message": "Белый" - }, - "windowColor": { - "message": "Цвет окна" - }, - "windowOpacity": { - "message": "Прозрачность окна" - }, - "yellow": { - "message": "Желтый" - }, - "youtubeHeaderLeft": { - "message": "Верхняя панель (слева)" - }, - "youtubeHeaderRight": { - "message": "Верхняя панель (справа)" - }, - "youtubeHomePage": { - "message": "Домашняя страница YouTube" - }, - "youtubeLanguage": { - "message": "Язык YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube ограничивает качетво видео до 1080p для кодека h.264" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Об ImprovedTube" + }, + "accept": { + "message": "Принять" + }, + "activate": { + "message": "Активировать" + }, + "activateCaptions": { + "message": "Активировать субтитры" + }, + "activateFullscreen": { + "message": "Перейти в полноэкранный режим" + }, + "activated": { + "message": "Активировано" + }, + "activatedFeatures": { + "message": "Активированные функции" + }, + "activeFeatures": { + "message": "Активные функции" + }, + "addScrollToTop": { + "message": "Добавить кнопку «наверх»" + }, + "ads": { + "message": "Реклама" + }, + "all": { + "message": "Все" + }, + "allow": { + "message": "Разрешить" + }, + "allow60fps": { + "message": "Разрешить 60fps" + }, + "alwaysActive": { + "message": "Всегда активный" + }, + "alwaysShowProgressBar": { + "message": "Всегда показывать прогресс-бар" + }, + "amber": { + "message": "Янтарный" + }, + "analyzer": { + "message": "Анализатор" + }, + "appearance": { + "message": "Внешний вид" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "Аудио" + }, + "audioFormats": { + "message": "Аудио форматы" + }, + "auto": { + "message": "Авто" + }, + "autoFullscreen": { + "message": "Автоматический переход в полноэкранный режим" + }, + "autopauseWhenSwitchingTabs": { + "message": "Автопауза при переходе между вкладками" + }, + "autoplay": { + "message": "Автовоспроизведение" + }, + "backgroundColor": { + "message": "Цвет фона" + }, + "backgroundOpacity": { + "message": "Прозрачность фона" + }, + "backupAndReset": { + "message": "Резервное копирование и сброс" + }, + "baseOnSystemColorScheme": { + "message": "Зависит от системной цветовой схемы" + }, + "belowPlayer": { + "message": "Ниже плеера" + }, + "black": { + "message": "Черный" + }, + "blacklist": { + "message": "Черный список" + }, + "blockAll": { + "message": "Заблокировать всё" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Синий" + }, + "blueGray": { + "message": "Серо-голубой" + }, + "bluelight": { + "message": "Синий свет" + }, + "brown": { + "message": "Коричневый" + }, + "browser": { + "message": "Браузер" + }, + "browserVersion": { + "message": "Версия браузера" + }, + "bubbles": { + "message": "Пузыри" + }, + "bug": { + "message": "Ошибка" + }, + "buttons": { + "message": "Кнопки" + }, + "cancel": { + "message": "Отмена" + }, + "categories": { + "message": "Категории" + }, + "channel": { + "message": "Канал" + }, + "channels": { + "message": "Каналы" + }, + "characterEdgeStyle": { + "message": "Стиль контура символов" + }, + "clipboard": { + "message": "Буфер обмена" + }, + "codecH264": { + "message": "Кодек h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Свернуть раздел подписок" + }, + "collapsed": { + "message": "Свернуть" + }, + "comments": { + "message": "Комментарии" + }, + "confirmationBeforeClosing": { + "message": "Подтверждение закрытия" + }, + "cookies": { + "message": "Куки" + }, + "cores": { + "message": "Ядра" + }, + "cropChapterTitles": { + "message": "Обрезать заголовки глав" + }, + "customCss": { + "message": "Пользовательский CSS" + }, + "customJs": { + "message": "Пользовательский JS" + }, + "customMiniPlayer": { + "message": "Новый мини-плеер" + }, + "cyan": { + "message": "Сине-зелёный" + }, + "dark": { + "message": "Темная" + }, + "darkTheme": { + "message": "Ночная тема" + }, + "dateAndTime": { + "message": "Дата и время" + }, + "dawn": { + "message": "Рассвет" + }, + "decreasePlaybackSpeed": { + "message": "Уменьшить скорость видео" + }, + "decreaseVolume": { + "message": "Уменьшить громкость" + }, + "decreaseVolume5": { + "message": "Уменьшить громкость на 5%" + }, + "deepOrange": { + "message": "Темно-оранжевый" + }, + "deepPurple": { + "message": "Темно-фиолетовый" + }, + "default": { + "message": "По умолчанию" + }, + "defaultChannelTab": { + "message": "Вкладка канала по умолчанию" + }, + "defaultContentCountry": { + "message": "Контент страны по умолчанию" + }, + "deleteWatchedVideos": { + "message": "Удалить просмотренные видео" + }, + "deleteYoutubeCookies": { + "message": "Удалить куки YouTube" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Описание" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Пустыня" + }, + "details": { + "message": "Подробная информация" + }, + "developerOptions": { + "message": "Настройки разработчика" + }, + "device": { + "message": "Устройство" + }, + "dim": { + "message": "Тусклость" + }, + "disabled": { + "message": "Выключено" + }, + "dislike": { + "message": "Дизлайк" + }, + "doNotChange": { + "message": "Не менять" + }, + "donate": { + "message": "Пожертвовать" + }, + "draggable": { + "message": "Перетаскиваемый" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Пусто" + }, + "enabled": { + "message": "Включено" + }, + "enabledForced": { + "message": "Включено (принудительно)" + }, + "expanded": { + "message": "Развернуть" + }, + "exportSettings": { + "message": "Экспорт настроек" + }, + "extension": { + "message": "Расширение" + }, + "file": { + "message": "Файл" + }, + "filters": { + "message": "Фильтры" + }, + "fitToWindow": { + "message": "Подогнать под окно" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Шрифт" + }, + "fontColor": { + "message": "Цвет шрифта" + }, + "fontFamily": { + "message": "Семейство шрифтов" + }, + "fontOpacity": { + "message": "Прозрачность шрифта" + }, + "fontSize": { + "message": "Размер шрифта" + }, + "footer": { + "message": "Нижний колонтитул" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Всегда проигрывать видео с начала" + }, + "forcedPlaybackSpeed": { + "message": "Форсировать скорость воспроизведения" + }, + "forcedTheaterMode": { + "message": "Принудительно переходить в режим кино" + }, + "forcedVolume": { + "message": "Принудительная громкость" + }, + "foundABug": { + "message": "Нашли ошибку?" + }, + "fullWindow": { + "message": "Растянуть на все окно" + }, + "general": { + "message": "Общее" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Перейти в окно поиска" + }, + "googleApiKey": { + "message": "Ключ Google API" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Зеленый" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "Превью высокого качества" + }, + "header": { + "message": "Верхняя панель" + }, + "hidden": { + "message": "Скрыть" + }, + "hiddenOnVideoPage": { + "message": "Скрыть (только на странице с видео)" + }, + "hideAnimatedThumbnails": { + "message": "Скрыть анимированные превью" + }, + "hideAnnotations": { + "message": "Скрыть аннотации" + }, + "hideCards": { + "message": "Скрыть карточки" + }, + "hideCountryCode": { + "message": "Скрыть код страны" + }, + "hideDate": { + "message": "Скрыть дату" + }, + "hideDetails": { + "message": "Скрыть подробную информацию" + }, + "hideEndscreen": { + "message": "Скрыть экран после видео" + }, + "hideFeaturedContent": { + "message": "Скрыть рекомендации" + }, + "hideFooter": { + "message": "Скрыть нижний колонтитул" + }, + "hideGradientBottom": { + "message": "Скрыть нижний градиент" + }, + "hideMoreButton": { + "message": "Скрыть кнопку \"...\"" + }, + "hidePlayerControlsBar": { + "message": "Скрыть панель управления плеером" + }, + "hidePlayerControlsBarButtons": { + "message": "Скрыть кнопки панели управления плеером" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Скрыть плейлист" + }, + "hideRightButtons": { + "message": "Скрыть кнопки (справа)" + }, + "hideSaveButton": { + "message": "Скрыть кнопку \"Сохранить\"" + }, + "hideScrollForDetails": { + "message": "Скрыть «Прокрутите для подробной информации»" + }, + "hideShareButton": { + "message": "Скрыть кнопку \"Поделиться\"" + }, + "hideSkipOverlay": { + "message": "Скрыть наложение \"5 секунд\"" + }, + "hideThumbnailOverlay": { + "message": "Скрыть наложение на превью" + }, + "hideThumbnails": { + "message": "Скрыть превью" + }, + "hideViewsCount": { + "message": "Скрыть количество просмотров" + }, + "hideVoiceSearchButton": { + "message": "Скрыть кнопку голосового поиска" + }, + "high": { + "message": "High" + }, + "history": { + "message": "История" + }, + "home": { + "message": "Домашняя страница" + }, + "hover": { + "message": "Показывать при наведении" + }, + "hoverOnVideoPage": { + "message": "Показывать при наведении (только на странице с видео)" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Показывать как давно было загружено видео" + }, + "icons": { + "message": "Иконки" + }, + "iconsOnly": { + "message": "Только иконки" + }, + "importSettings": { + "message": "Импорт настроек" + }, + "improveLogo": { + "message": "Улучшить логотип YouTube" + }, + "improvedtubeIconOnYoutube": { + "message": "Значок ImprovedTube в YouTube" + }, + "improvedtubeLanguage": { + "message": "Язык ImprovedTube" + }, + "improvedtubeVersion": { + "message": "Версия ImprovedTube" + }, + "increasePlaybackSpeed": { + "message": "Увеличить скорость видео" + }, + "increaseVolume": { + "message": "Увеличить громкость" + }, + "increaseVolume5": { + "message": "Увеличить громкости на 5%" + }, + "indigo": { + "message": "Индиго" + }, + "items": { + "message": "Items" + }, + "language": { + "message": "Язык" + }, + "languages": { + "message": "Языки" + }, + "legacyYoutube": { + "message": "Старая версия YouTube" + }, + "library": { + "message": "Библиотека" + }, + "light": { + "message": "Светлая" + }, + "lightBlue": { + "message": "Светло-синий" + }, + "lightGreen": { + "message": "Светло-зеленый" + }, + "like": { + "message": "Лайк" + }, + "liked": { + "message": "Понравившиеся" + }, + "likes": { + "message": "Лайки" + }, + "lime": { + "message": "Лайм" + }, + "limitPageWidth": { + "message": "Ограничить ширину страницы" + }, + "list": { + "message": "Список" + }, + "liveChat": { + "message": "Live-чат" + }, + "liveChatType": { + "message": "Тип live-чата" + }, + "location": { + "message": "Место нахождения" + }, + "loudnessNormalization": { + "message": "Нормализировать громкость" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Отмечать просмотренные видео" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Миксер" + }, + "moveSidebarLeft": { + "message": "Сместить боковую панель влево" + }, + "moveThumbnailsRight": { + "message": "Сместить превью вправо" + }, + "myColors": { + "message": "Мои цвета" + }, + "name": { + "message": "Имя" + }, + "nativeMiniPlayer": { + "message": "Мини-плеер от YouTube" + }, + "new": { + "message": "Новый" + }, + "nextVideo": { + "message": "Следующее видео" + }, + "night": { + "message": "Ночь" + }, + "noActiveFeatures": { + "message": "Нет активных функций" + }, + "noOpenVideoTabs": { + "message": "Нет открытых вкладок с видео" + }, + "none": { + "message": "Пусто" + }, + "normal": { + "message": "Обычный" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Старый" + }, + "onAllVideos": { + "message": "Во всех видео" + }, + "onSubscribedChannels": { + "message": "Только на каналах в подписках" + }, + "onlyActiveOnYoutube": { + "message": "Активен только в YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Только один экземпляр плеера играет" + }, + "orange": { + "message": "Оранжевый" + }, + "os": { + "message": "ОС" + }, + "other": { + "message": "Другое" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Разрешения" + }, + "pictureInPicture": { + "message": "Картинка в картинке" + }, + "pink": { + "message": "Розовый" + }, + "plain": { + "message": "Равнина" + }, + "platform": { + "message": "Платформа" + }, + "playPause": { + "message": "Воспроизведение / Пауза" + }, + "playbackSpeed": { + "message": "Скорость воспроизведения" + }, + "player": { + "message": "Плеер" + }, + "playerColor": { + "message": "Цвет плеера" + }, + "playerSize": { + "message": "Размер плеера" + }, + "playlist": { + "message": "Плейлист" + }, + "playlists": { + "message": "Плейлисты" + }, + "popupPlayer": { + "message": "Плеер во всплывающем окне" + }, + "position": { + "message": "Позиция" + }, + "pressAnyKeyOrScroll": { + "message": "Нажмите любую клавишу или воспользуйтесь колесом мыши" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Нажмите любую клавишу или используйте колесо мыши" + }, + "previousVideo": { + "message": "Предыдущее видео" + }, + "primaryColor": { + "message": "Основной цвет" + }, + "purple": { + "message": "Фиолетовый" + }, + "quality": { + "message": "Качество" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Оставить отзыв" + }, + "rateUs": { + "message": "Оцените нас" + }, + "red": { + "message": "Красный" + }, + "redDislikeButton": { + "message": "Сделать дизлайк красным" + }, + "relatedVideos": { + "message": "Похожие видео" + }, + "remote": { + "message": "Продолжить просмотр на ТВ" + }, + "removeRelatedSearchResults": { + "message": "Удалить похожие результаты поиска" + }, + "repeat": { + "message": "Повтор" + }, + "reset": { + "message": "Сбросить" + }, + "resetAllSettings": { + "message": "Сбросить все настройки" + }, + "resetAllShortcuts": { + "message": "Сбросить все горячие клавиши" + }, + "reverse": { + "message": "Обратный порядок" + }, + "rotate": { + "message": "Повернуть" + }, + "save": { + "message": "Сохранить" + }, + "saveAs": { + "message": "Сохранить как" + }, + "schedule": { + "message": "Расписание" + }, + "screen": { + "message": "Экран" + }, + "screenshot": { + "message": "Скриншот" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Поиск" + }, + "searchBarOnly": { + "message": "Только поле поиска" + }, + "seekBackward10Seconds": { + "message": "Перемотать на 10 секунд назад" + }, + "seekForward10Seconds": { + "message": "Перемотать на 10 секунд вперед" + }, + "seekNextChapter": { + "message": "Следующая глава" + }, + "seekPreviousChapter": { + "message": "Предыдущая глава" + }, + "settings": { + "message": "Настройки" + }, + "settingsSuccessfullyImported": { + "message": "Настройки успешно импортированы" + }, + "shortcuts": { + "message": "Горячие клавиши" + }, + "showCardsOnMouseHover": { + "message": "Показывать карточки при наведении мыши" + }, + "showChannelVideosCount": { + "message": "Показывать количество видео на канале" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Показать оставшуюся продолжительность видео" + }, + "shuffle": { + "message": "Случайный порядок" + }, + "sidebar": { + "message": "Боковая панель" + }, + "spacebar": { + "message": "Пробел" + }, + "squaredUserImages": { + "message": "Квадратные аватарки пользователей" + }, + "static": { + "message": "Статично" + }, + "statsForNerds": { + "message": "Показать статистику для сисадминов" + }, + "step": { + "message": "Шаг" + }, + "stop": { + "message": "Стоп" + }, + "style": { + "message": "Стиль" + }, + "styles": { + "message": "Стили" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Подписки" + }, + "subtitles": { + "message": "Субтитры" + }, + "sunset": { + "message": "Закат" + }, + "sunsetToSunrise": { + "message": "От заката до рассвета" + }, + "systemPeferenceDark": { + "message": "Предпочитаемая системой: темная" + }, + "systemPeferenceLight": { + "message": "Предпочитаемая системой: светлая" + }, + "teal": { + "message": "Бирюзовый" + }, + "textColor": { + "message": "Цвет текста" + }, + "themes": { + "message": "Темы" + }, + "thisWillRemoveAllCookies": { + "message": "Это удалит все куки" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Вы действительно хотите удалить все куки YouTube?" + }, + "thisWillResetAllSettings": { + "message": "Это сбросит все настройки" + }, + "thisWillResetAllShortcuts": { + "message": "Это сбросит все горячие клавиши" + }, + "thumbnails": { + "message": "Превью" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Время от" + }, + "timeTo": { + "message": "Время до" + }, + "todayAt": { + "message": "Сегодня в" + }, + "toggleAutoplay": { + "message": "Переключить автовоспроизведение" + }, + "toggleCards": { + "message": "Переключить карточки" + }, + "toggleControls": { + "message": "Переключить панель управления" + }, + "topChat": { + "message": "Top чат" + }, + "trackWatchedVideos": { + "message": "Отслеживать просмотренные видео" + }, + "trailerAutoplay": { + "message": "Автовоспроизведение трейлера" + }, + "translations": { + "message": "Переводы" + }, + "transparentBackground": { + "message": "Прозрачный фон" + }, + "trending": { + "message": "Тренды" + }, + "tryToReloadThePage": { + "message": "Попробуйте перезагрузить страницу" + }, + "type": { + "message": "Тип" + }, + "upNextAutoplay": { + "message": "Автовоспроизведение следующего видео" + }, + "use24HourFormat": { + "message": "24-часовой формат" + }, + "version": { + "message": "Версия" + }, + "video": { + "message": "Видео" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Описание видео будет развернуто, чтобы получить название категории видео" + }, + "videoFormats": { + "message": "Форматы видео" + }, + "videos": { + "message": "Видео" + }, + "viewMode": { + "message": "Режим просмотра" + }, + "volume": { + "message": "Громкость" + }, + "watchLater": { + "message": "Посмотреть позже" + }, + "watchTime": { + "message": "Время просмотра" + }, + "whenTabIsChanged": { + "message": "При переключении вкладок" + }, + "white": { + "message": "Белый" + }, + "windowColor": { + "message": "Цвет окна" + }, + "windowOpacity": { + "message": "Прозрачность окна" + }, + "yellow": { + "message": "Желтый" + }, + "youtubeHeaderLeft": { + "message": "Верхняя панель (слева)" + }, + "youtubeHeaderRight": { + "message": "Верхняя панель (справа)" + }, + "youtubeHomePage": { + "message": "Домашняя страница YouTube" + }, + "youtubeLanguage": { + "message": "Язык YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube ограничивает качетво видео до 1080p для кодека h.264" + } } \ No newline at end of file diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 3717edcef..d8d8ee78d 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -1,986 +1,992 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "O" - }, - "accept": { - "message": "Prijať" - }, - "activate": { - "message": "Aktivovať" - }, - "activateCaptions": { - "message": "Aktivovať titulky" - }, - "activateFullscreen": { - "message": "Aktivovať zobrazenie na celú obrazovku" - }, - "activated": { - "message": "Aktivované" - }, - "activatedFeatures": { - "message": "Aktivované fukncie" - }, - "activeFeatures": { - "message": "Aktívne funkcie" - }, - "addScrollToTop": { - "message": "Prejdite «Vrátiť sa na začiatok»" - }, - "ads": { - "message": "Reklamy" - }, - "all": { - "message": "Všetko" - }, - "allow": { - "message": "Povoliť" - }, - "allow60fps": { - "message": "Povoliť 60fps" - }, - "alwaysActive": { - "message": "Vždy aktívne" - }, - "alwaysShowProgressBar": { - "message": "Vždy zobrazovať ukazateľ priebehu" - }, - "amber": { - "message": "Ambra" - }, - "analyzer": { - "message": "Analyzátor" - }, - "appearance": { - "message": "Vzhľad" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Zvuk" - }, - "audioFormats": { - "message": "Formát zvuku" - }, - "auto": { - "message": "Automaticky" - }, - "autoFullscreen": { - "message": "Automaticky-fullscreen" - }, - "autopauseWhenSwitchingTabs": { - "message": "Automatické pozastavenie pri prepínaní kariet" - }, - "autoplay": { - "message": "Automatické prehrávanie" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Zálohovanie & Obnova" - }, - "baseOnSystemColorScheme": { - "message": "Nastavené podľa farby systému" - }, - "belowPlayer": { - "message": "Pod prehrávačom" - }, - "black": { - "message": "Čierna" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "Zablokovať všetko" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "Modrá" - }, - "blueGray": { - "message": "Šedo-modrá" - }, - "bluelight": { - "message": "Modré svetlo" - }, - "brown": { - "message": "Hnedá" - }, - "browser": { - "message": "Prehliadac" - }, - "browserVersion": { - "message": "Verzie prehliadača" - }, - "bubbles": { - "message": "Bubliny" - }, - "bug": { - "message": "Chyba" - }, - "buttons": { - "message": "Tlačidlá" - }, - "cancel": { - "message": "Zrušiť" - }, - "categories": { - "message": "Kategórie" - }, - "channel": { - "message": "Kanál" - }, - "channels": { - "message": "Kanály" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "Schránka" - }, - "codecH264": { - "message": "Kodek h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Zbaliť sekciu Odber" - }, - "collapsed": { - "message": "Zbaliť" - }, - "comments": { - "message": "Komentáre" - }, - "confirmationBeforeClosing": { - "message": "Potvrdiť pred zatvorenímk" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Jadrá" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "customCss": { - "message": "Vlastné CSS" - }, - "customJs": { - "message": "Vlastné JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Tyrkysová" - }, - "dark": { - "message": "Tmavý" - }, - "darkTheme": { - "message": "Tmavá téma" - }, - "dateAndTime": { - "message": "Dátum a čas" - }, - "dawn": { - "message": "Svitanie" - }, - "decreasePlaybackSpeed": { - "message": "Znížiť rýchlosť prehrávania" - }, - "decreaseVolume": { - "message": "Znížiť hlasitosť" - }, - "deepOrange": { - "message": "Tmavo oranžová" - }, - "deepPurple": { - "message": "Tmavo fialová" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Predvolená karta kanálu" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Vymazať YouTube cookies" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Podrobnosti" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Púšť" - }, - "details": { - "message": "Detaily" - }, - "developerOptions": { - "message": "Možnosti pre vývojara" - }, - "device": { - "message": "Zariadenie" - }, - "dim": { - "message": "Stmvaviť" - }, - "disabled": { - "message": "Vypnutý" - }, - "dislike": { - "message": "Dislike" - }, - "doNotChange": { - "message": "Nemeniť" - }, - "donate": { - "message": "Prispieť" - }, - "draggable": { - "message": "Posuvné" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Prázdny" - }, - "enabled": { - "message": "Zapnuté" - }, - "enabledForced": { - "message": "Zapnuté (vynútene)" - }, - "expanded": { - "message": "Rozbalené" - }, - "exportSettings": { - "message": "Exportovať nastavenia" - }, - "extension": { - "message": "Rozšírenia" - }, - "file": { - "message": "Súbor" - }, - "filters": { - "message": "Filtre" - }, - "fitToWindow": { - "message": "Prispôsobiť oknu" - }, - "flash": { - "message": "Blikať" - }, - "font": { - "message": "Písmo" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Pätička" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Vynútená rýchlosť prehrávania" - }, - "forcedTheaterMode": { - "message": "Vynútený divadelný režim" - }, - "forcedVolume": { - "message": "Vynútená hlasitosť" - }, - "foundABug": { - "message": "Našli ste chybu?" - }, - "fullWindow": { - "message": "Celé okno" - }, - "general": { - "message": "Všeobecné" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Prejdite do vyhľadávanieho poľa" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Zelená" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "HD náhlad" - }, - "header": { - "message": "Hlavička" - }, - "hidden": { - "message": "Skryté" - }, - "hiddenOnVideoPage": { - "message": "Skyté na stránke videa" - }, - "hideAnimatedThumbnails": { - "message": "Skryť animované náhľady" - }, - "hideAnnotations": { - "message": "Skryť anotácie" - }, - "hideCards": { - "message": "Skryť karty" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetails": { - "message": "Skryť detaily" - }, - "hideEndscreen": { - "message": "Skryť zobrazenie na konci videa" - }, - "hideFeaturedContent": { - "message": "Skryť odporúčaný obsah" - }, - "hideFooter": { - "message": "Hide pätičku" - }, - "hideGradientBottom": { - "message": "Hide Gradient Bottom" - }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Skryť zoznam videí" - }, - "hideRightButtons": { - "message": "Skryť tlčidlá v pravo" - }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, - "hideScrollForDetails": { - "message": "Skryť «Zarolujte pre detaily»" - }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, - "hideSkipOverlay": { - "message": "Hide Skip Overlay" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Skyť počet videní" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "História" - }, - "home": { - "message": "Domov" - }, - "hover": { - "message": "Vznášať sa" - }, - "hoverOnVideoPage": { - "message": "Umiestnite kurzor na stránku videa" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Kedy bolo toto video nahrané?" - }, - "icons": { - "message": "Ikony" - }, - "iconsOnly": { - "message": "Iba ikony" - }, - "importSettings": { - "message": "Importovať nastavenia" - }, - "improveLogo": { - "message": "Improve logo" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube ikona na YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube jazyk" - }, - "improvedtubeVersion": { - "message": "ImprovedTube verzia" - }, - "increasePlaybackSpeed": { - "message": "Zvýšiť rýchlosť prehrávania" - }, - "increaseVolume": { - "message": "Zvýšiť hlasitosť" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Jazyky" - }, - "legacyYoutube": { - "message": "Starý YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Svetlo" - }, - "lightBlue": { - "message": "Svetlo modrá" - }, - "lightGreen": { - "message": "Svetlo zelená" - }, - "like": { - "message": "Páči sa mi to" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "Páči sa mi to" - }, - "lime": { - "message": "Limetková" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "Zoznam" - }, - "liveChat": { - "message": "Živí chat" - }, - "liveChatType": { - "message": "Typ živého chatu" - }, - "location": { - "message": "Location" - }, - "loudnessNormalization": { - "message": "Vyrovnanie hlasitosti" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Označiť ako videné" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mixér" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "Moje farby" - }, - "name": { - "message": "Meno" - }, - "nativeMiniPlayer": { - "message": "Natívny mini prehrávač" - }, - "new": { - "message": "Nový" - }, - "nextVideo": { - "message": "Ďalšie video" - }, - "night": { - "message": "Noc" - }, - "noActiveFeatures": { - "message": "Žiadne aktívne fukncie" - }, - "noOpenVideoTabs": { - "message": "Žiadne otvorené karty s videami" - }, - "none": { - "message": "Žiadny" - }, - "normal": { - "message": "Normále" - }, - "old": { - "message": "Starý" - }, - "onAllVideos": { - "message": "Na všetkých videách" - }, - "onSubscribedChannels": { - "message": "Na odoberaných kanáloch" - }, - "onlyActiveOnYoutube": { - "message": "Aktívne iba na YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Prehrávať iba jedno video" - }, - "orange": { - "message": "Oranžová" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Ostatné" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Povolenia" - }, - "pictureInPicture": { - "message": "Obraz v obraze" - }, - "pink": { - "message": "Ružová" - }, - "plain": { - "message": "Jednoduchý" - }, - "platform": { - "message": "Platforma" - }, - "playPause": { - "message": "Prehrať / Pozastavť" - }, - "playbackSpeed": { - "message": "Rýchlosť prehrávania" - }, - "player": { - "message": "Prehrávač" - }, - "playerColor": { - "message": "Farba prehrávača" - }, - "playerSize": { - "message": "Veľkosť prehrávača" - }, - "playlist": { - "message": "Zoznam videí" - }, - "playlists": { - "message": "Zoznamy videí" - }, - "popupPlayer": { - "message": "Popup prehrávač" - }, - "position": { - "message": "Pozícia" - }, - "pressAnyKeyOrScroll": { - "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky" - }, - "previousVideo": { - "message": "Predchýdzajúce video" - }, - "primaryColor": { - "message": "Primárna farba" - }, - "purple": { - "message": "Fialová" - }, - "quality": { - "message": "Kvalita" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Ohodnoťte nás" - }, - "red": { - "message": "Červená" - }, - "redDislikeButton": { - "message": "Show dislike button red colour" - }, - "relatedVideos": { - "message": "Súvisiace videá" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Odstránte príbuzné výsledky vyhľadávania" - }, - "repeat": { - "message": "Opakovať" - }, - "reset": { - "message": "Obnoviť" - }, - "resetAllSettings": { - "message": "Obnoviť všetky nastavenia" - }, - "resetAllShortcuts": { - "message": "Obnoviť všetky skratky" - }, - "reverse": { - "message": "Obrátené" - }, - "rotate": { - "message": "Otočiť" - }, - "save": { - "message": "Uložiť" - }, - "saveAs": { - "message": "Uložiť ako" - }, - "schedule": { - "message": "Naplánovať" - }, - "screen": { - "message": "Obrazovka" - }, - "screenshot": { - "message": "Screenshot" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Vyhľadať" - }, - "searchBarOnly": { - "message": "Iba vyhľadávacie pole" - }, - "seekBackward10Seconds": { - "message": "Pretočiť spät o 10 sekúnd" - }, - "seekForward10Seconds": { - "message": "Pretočiť dopredu o 10 sekúnd" - }, - "seekNextChapter": { - "message": "seekNextChapter" - }, - "seekPreviousChapter": { - "message": "seekPreviousChapter" - }, - "settings": { - "message": "Nastavenia" - }, - "settingsSuccessfullyImported": { - "message": "Nastavenia úspešne importované" - }, - "shortcuts": { - "message": "Skratky" - }, - "showCardsOnMouseHover": { - "message": "Zobraziť karty pri prechode myšou" - }, - "showChannelVideosCount": { - "message": "Zobraziť počet videí kanálu" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Náhodne" - }, - "sidebar": { - "message": "Bočný panel" - }, - "spacebar": { - "message": "Medzera" - }, - "squaredUserImages": { - "message": "Štvorcový obrázok užívateľa" - }, - "static": { - "message": "Statické" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Krok" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Štýl" - }, - "styles": { - "message": "Štýly" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Odbery" - }, - "subtitles": { - "message": "Titulky" - }, - "sunset": { - "message": "Západ slnka" - }, - "sunsetToSunrise": { - "message": "Západ slnka do východu slnka" - }, - "systemPeferenceDark": { - "message": "Predvolené: tmavé" - }, - "systemPeferenceLight": { - "message": "Predvolené: svetlé" - }, - "teal": { - "message": "Modrozelený" - }, - "textColor": { - "message": "Farba textu" - }, - "themes": { - "message": "Témy" - }, - "thisWillRemoveAllCookies": { - "message": "Toto odstráni všetky cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Toto odstráni všetky YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "Toto obnový všetky nastavenia." - }, - "thisWillResetAllShortcuts": { - "message": "Toto obnový všetky skratky" - }, - "thumbnails": { - "message": "Náhlady" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Čas od" - }, - "timeTo": { - "message": "Čas do" - }, - "todayAt": { - "message": "Dnes o" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Automatické prehrávanie ukážky" - }, - "translations": { - "message": "Preklady" - }, - "transparentBackground": { - "message": "Priehľadné pozadie" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Skúsťe obnoviť stránku" - }, - "type": { - "message": "Typ" - }, - "upNextAutoplay": { - "message": "Automaticky prehrať ďaľšie v poradí" - }, - "use24HourFormat": { - "message": "Použť 24-hodinový formát" - }, - "version": { - "message": "Verzia" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Podrobnosti videa budú zobrazené pre získanie názvu kategórie" - }, - "videoFormats": { - "message": "Formáty videa" - }, - "videos": { - "message": "Vedeá" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Hlasitosť" - }, - "watchLater": { - "message": "Pozrieť neskor" - }, - "watchTime": { - "message": "Čas sledovania" - }, - "whenTabIsChanged": { - "message": "Pri zmene karty" - }, - "white": { - "message": "Biela" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Žltá" - }, - "youtubeHeaderLeft": { - "message": "YouTube hlavička (vľavo)" - }, - "youtubeHeaderRight": { - "message": "YouTube hlavička (vpravo)" - }, - "youtubeHomePage": { - "message": "Domáca stránka YouTube" - }, - "youtubeLanguage": { - "message": "Jazyk YouTube" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube obmedzuje kvalitu videa na 1080p pri kodeku h.264" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "O" + }, + "accept": { + "message": "Prijať" + }, + "activate": { + "message": "Aktivovať" + }, + "activateCaptions": { + "message": "Aktivovať titulky" + }, + "activateFullscreen": { + "message": "Aktivovať zobrazenie na celú obrazovku" + }, + "activated": { + "message": "Aktivované" + }, + "activatedFeatures": { + "message": "Aktivované fukncie" + }, + "activeFeatures": { + "message": "Aktívne funkcie" + }, + "addScrollToTop": { + "message": "Prejdite «Vrátiť sa na začiatok»" + }, + "ads": { + "message": "Reklamy" + }, + "all": { + "message": "Všetko" + }, + "allow": { + "message": "Povoliť" + }, + "allow60fps": { + "message": "Povoliť 60fps" + }, + "alwaysActive": { + "message": "Vždy aktívne" + }, + "alwaysShowProgressBar": { + "message": "Vždy zobrazovať ukazateľ priebehu" + }, + "amber": { + "message": "Ambra" + }, + "analyzer": { + "message": "Analyzátor" + }, + "appearance": { + "message": "Vzhľad" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "Zvuk" + }, + "audioFormats": { + "message": "Formát zvuku" + }, + "auto": { + "message": "Automaticky" + }, + "autoFullscreen": { + "message": "Automaticky-fullscreen" + }, + "autopauseWhenSwitchingTabs": { + "message": "Automatické pozastavenie pri prepínaní kariet" + }, + "autoplay": { + "message": "Automatické prehrávanie" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Zálohovanie & Obnova" + }, + "baseOnSystemColorScheme": { + "message": "Nastavené podľa farby systému" + }, + "belowPlayer": { + "message": "Pod prehrávačom" + }, + "black": { + "message": "Čierna" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "Zablokovať všetko" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "Modrá" + }, + "blueGray": { + "message": "Šedo-modrá" + }, + "bluelight": { + "message": "Modré svetlo" + }, + "brown": { + "message": "Hnedá" + }, + "browser": { + "message": "Prehliadac" + }, + "browserVersion": { + "message": "Verzie prehliadača" + }, + "bubbles": { + "message": "Bubliny" + }, + "bug": { + "message": "Chyba" + }, + "buttons": { + "message": "Tlačidlá" + }, + "cancel": { + "message": "Zrušiť" + }, + "categories": { + "message": "Kategórie" + }, + "channel": { + "message": "Kanál" + }, + "channels": { + "message": "Kanály" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "Schránka" + }, + "codecH264": { + "message": "Kodek h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Zbaliť sekciu Odber" + }, + "collapsed": { + "message": "Zbaliť" + }, + "comments": { + "message": "Komentáre" + }, + "confirmationBeforeClosing": { + "message": "Potvrdiť pred zatvorenímk" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Jadrá" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "customCss": { + "message": "Vlastné CSS" + }, + "customJs": { + "message": "Vlastné JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Tyrkysová" + }, + "dark": { + "message": "Tmavý" + }, + "darkTheme": { + "message": "Tmavá téma" + }, + "dateAndTime": { + "message": "Dátum a čas" + }, + "dawn": { + "message": "Svitanie" + }, + "decreasePlaybackSpeed": { + "message": "Znížiť rýchlosť prehrávania" + }, + "decreaseVolume": { + "message": "Znížiť hlasitosť" + }, + "deepOrange": { + "message": "Tmavo oranžová" + }, + "deepPurple": { + "message": "Tmavo fialová" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Predvolená karta kanálu" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Vymazať YouTube cookies" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Podrobnosti" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Púšť" + }, + "details": { + "message": "Detaily" + }, + "developerOptions": { + "message": "Možnosti pre vývojara" + }, + "device": { + "message": "Zariadenie" + }, + "dim": { + "message": "Stmvaviť" + }, + "disabled": { + "message": "Vypnutý" + }, + "dislike": { + "message": "Dislike" + }, + "doNotChange": { + "message": "Nemeniť" + }, + "donate": { + "message": "Prispieť" + }, + "draggable": { + "message": "Posuvné" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Prázdny" + }, + "enabled": { + "message": "Zapnuté" + }, + "enabledForced": { + "message": "Zapnuté (vynútene)" + }, + "expanded": { + "message": "Rozbalené" + }, + "exportSettings": { + "message": "Exportovať nastavenia" + }, + "extension": { + "message": "Rozšírenia" + }, + "file": { + "message": "Súbor" + }, + "filters": { + "message": "Filtre" + }, + "fitToWindow": { + "message": "Prispôsobiť oknu" + }, + "flash": { + "message": "Blikať" + }, + "font": { + "message": "Písmo" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Pätička" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Vynútená rýchlosť prehrávania" + }, + "forcedTheaterMode": { + "message": "Vynútený divadelný režim" + }, + "forcedVolume": { + "message": "Vynútená hlasitosť" + }, + "foundABug": { + "message": "Našli ste chybu?" + }, + "fullWindow": { + "message": "Celé okno" + }, + "general": { + "message": "Všeobecné" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Prejdite do vyhľadávanieho poľa" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Zelená" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD náhlad" + }, + "header": { + "message": "Hlavička" + }, + "hidden": { + "message": "Skryté" + }, + "hiddenOnVideoPage": { + "message": "Skyté na stránke videa" + }, + "hideAnimatedThumbnails": { + "message": "Skryť animované náhľady" + }, + "hideAnnotations": { + "message": "Skryť anotácie" + }, + "hideCards": { + "message": "Skryť karty" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetails": { + "message": "Skryť detaily" + }, + "hideEndscreen": { + "message": "Skryť zobrazenie na konci videa" + }, + "hideFeaturedContent": { + "message": "Skryť odporúčaný obsah" + }, + "hideFooter": { + "message": "Hide pätičku" + }, + "hideGradientBottom": { + "message": "Hide Gradient Bottom" + }, + "hideMoreButton": { + "message": "Hide \"More\" button" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Skryť zoznam videí" + }, + "hideRightButtons": { + "message": "Skryť tlčidlá v pravo" + }, + "hideSaveButton": { + "message": "Hide \"Save\" button" + }, + "hideScrollForDetails": { + "message": "Skryť «Zarolujte pre detaily»" + }, + "hideShareButton": { + "message": "Hide \"Share\" button" + }, + "hideSkipOverlay": { + "message": "Hide Skip Overlay" + }, + "hideThumbnailOverlay": { + "message": "Hide thumbnail overlay" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Skyť počet videní" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "História" + }, + "home": { + "message": "Domov" + }, + "hover": { + "message": "Vznášať sa" + }, + "hoverOnVideoPage": { + "message": "Umiestnite kurzor na stránku videa" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Kedy bolo toto video nahrané?" + }, + "icons": { + "message": "Ikony" + }, + "iconsOnly": { + "message": "Iba ikony" + }, + "importSettings": { + "message": "Importovať nastavenia" + }, + "improveLogo": { + "message": "Improve logo" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube ikona na YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube jazyk" + }, + "improvedtubeVersion": { + "message": "ImprovedTube verzia" + }, + "increasePlaybackSpeed": { + "message": "Zvýšiť rýchlosť prehrávania" + }, + "increaseVolume": { + "message": "Zvýšiť hlasitosť" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Jazyky" + }, + "legacyYoutube": { + "message": "Starý YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Svetlo" + }, + "lightBlue": { + "message": "Svetlo modrá" + }, + "lightGreen": { + "message": "Svetlo zelená" + }, + "like": { + "message": "Páči sa mi to" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "Páči sa mi to" + }, + "lime": { + "message": "Limetková" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "Zoznam" + }, + "liveChat": { + "message": "Živí chat" + }, + "liveChatType": { + "message": "Typ živého chatu" + }, + "location": { + "message": "Location" + }, + "loudnessNormalization": { + "message": "Vyrovnanie hlasitosti" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Označiť ako videné" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixér" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "Moje farby" + }, + "name": { + "message": "Meno" + }, + "nativeMiniPlayer": { + "message": "Natívny mini prehrávač" + }, + "new": { + "message": "Nový" + }, + "nextVideo": { + "message": "Ďalšie video" + }, + "night": { + "message": "Noc" + }, + "noActiveFeatures": { + "message": "Žiadne aktívne fukncie" + }, + "noOpenVideoTabs": { + "message": "Žiadne otvorené karty s videami" + }, + "none": { + "message": "Žiadny" + }, + "normal": { + "message": "Normále" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Starý" + }, + "onAllVideos": { + "message": "Na všetkých videách" + }, + "onSubscribedChannels": { + "message": "Na odoberaných kanáloch" + }, + "onlyActiveOnYoutube": { + "message": "Aktívne iba na YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Prehrávať iba jedno video" + }, + "orange": { + "message": "Oranžová" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Ostatné" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Povolenia" + }, + "pictureInPicture": { + "message": "Obraz v obraze" + }, + "pink": { + "message": "Ružová" + }, + "plain": { + "message": "Jednoduchý" + }, + "platform": { + "message": "Platforma" + }, + "playPause": { + "message": "Prehrať / Pozastavť" + }, + "playbackSpeed": { + "message": "Rýchlosť prehrávania" + }, + "player": { + "message": "Prehrávač" + }, + "playerColor": { + "message": "Farba prehrávača" + }, + "playerSize": { + "message": "Veľkosť prehrávača" + }, + "playlist": { + "message": "Zoznam videí" + }, + "playlists": { + "message": "Zoznamy videí" + }, + "popupPlayer": { + "message": "Popup prehrávač" + }, + "position": { + "message": "Pozícia" + }, + "pressAnyKeyOrScroll": { + "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Stlačte ľubovolnú klávesu alebo použite kolisko myšky" + }, + "previousVideo": { + "message": "Predchýdzajúce video" + }, + "primaryColor": { + "message": "Primárna farba" + }, + "purple": { + "message": "Fialová" + }, + "quality": { + "message": "Kvalita" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Ohodnoťte nás" + }, + "red": { + "message": "Červená" + }, + "redDislikeButton": { + "message": "Show dislike button red colour" + }, + "relatedVideos": { + "message": "Súvisiace videá" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Odstránte príbuzné výsledky vyhľadávania" + }, + "repeat": { + "message": "Opakovať" + }, + "reset": { + "message": "Obnoviť" + }, + "resetAllSettings": { + "message": "Obnoviť všetky nastavenia" + }, + "resetAllShortcuts": { + "message": "Obnoviť všetky skratky" + }, + "reverse": { + "message": "Obrátené" + }, + "rotate": { + "message": "Otočiť" + }, + "save": { + "message": "Uložiť" + }, + "saveAs": { + "message": "Uložiť ako" + }, + "schedule": { + "message": "Naplánovať" + }, + "screen": { + "message": "Obrazovka" + }, + "screenshot": { + "message": "Screenshot" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Vyhľadať" + }, + "searchBarOnly": { + "message": "Iba vyhľadávacie pole" + }, + "seekBackward10Seconds": { + "message": "Pretočiť spät o 10 sekúnd" + }, + "seekForward10Seconds": { + "message": "Pretočiť dopredu o 10 sekúnd" + }, + "seekNextChapter": { + "message": "seekNextChapter" + }, + "seekPreviousChapter": { + "message": "seekPreviousChapter" + }, + "settings": { + "message": "Nastavenia" + }, + "settingsSuccessfullyImported": { + "message": "Nastavenia úspešne importované" + }, + "shortcuts": { + "message": "Skratky" + }, + "showCardsOnMouseHover": { + "message": "Zobraziť karty pri prechode myšou" + }, + "showChannelVideosCount": { + "message": "Zobraziť počet videí kanálu" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Náhodne" + }, + "sidebar": { + "message": "Bočný panel" + }, + "spacebar": { + "message": "Medzera" + }, + "squaredUserImages": { + "message": "Štvorcový obrázok užívateľa" + }, + "static": { + "message": "Statické" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Krok" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Štýl" + }, + "styles": { + "message": "Štýly" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Odbery" + }, + "subtitles": { + "message": "Titulky" + }, + "sunset": { + "message": "Západ slnka" + }, + "sunsetToSunrise": { + "message": "Západ slnka do východu slnka" + }, + "systemPeferenceDark": { + "message": "Predvolené: tmavé" + }, + "systemPeferenceLight": { + "message": "Predvolené: svetlé" + }, + "teal": { + "message": "Modrozelený" + }, + "textColor": { + "message": "Farba textu" + }, + "themes": { + "message": "Témy" + }, + "thisWillRemoveAllCookies": { + "message": "Toto odstráni všetky cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Toto odstráni všetky YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "Toto obnový všetky nastavenia." + }, + "thisWillResetAllShortcuts": { + "message": "Toto obnový všetky skratky" + }, + "thumbnails": { + "message": "Náhlady" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Čas od" + }, + "timeTo": { + "message": "Čas do" + }, + "todayAt": { + "message": "Dnes o" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Automatické prehrávanie ukážky" + }, + "translations": { + "message": "Preklady" + }, + "transparentBackground": { + "message": "Priehľadné pozadie" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Skúsťe obnoviť stránku" + }, + "type": { + "message": "Typ" + }, + "upNextAutoplay": { + "message": "Automaticky prehrať ďaľšie v poradí" + }, + "use24HourFormat": { + "message": "Použť 24-hodinový formát" + }, + "version": { + "message": "Verzia" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Podrobnosti videa budú zobrazené pre získanie názvu kategórie" + }, + "videoFormats": { + "message": "Formáty videa" + }, + "videos": { + "message": "Vedeá" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Hlasitosť" + }, + "watchLater": { + "message": "Pozrieť neskor" + }, + "watchTime": { + "message": "Čas sledovania" + }, + "whenTabIsChanged": { + "message": "Pri zmene karty" + }, + "white": { + "message": "Biela" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Žltá" + }, + "youtubeHeaderLeft": { + "message": "YouTube hlavička (vľavo)" + }, + "youtubeHeaderRight": { + "message": "YouTube hlavička (vpravo)" + }, + "youtubeHomePage": { + "message": "Domáca stránka YouTube" + }, + "youtubeLanguage": { + "message": "Jazyk YouTube" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube obmedzuje kvalitu videa na 1080p pri kodeku h.264" + } } \ No newline at end of file diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index c5d50c875..81537725c 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -1,986 +1,992 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "Hakkında" - }, - "accept": { - "message": "Onayla" - }, - "activate": { - "message": "Aktifleştir" - }, - "activateCaptions": { - "message": "Altyazıları Aktifleştir" - }, - "activateFullscreen": { - "message": "Tam ekranı Aktifleştir" - }, - "activated": { - "message": "Aktifleştirilmiş" - }, - "activatedFeatures": { - "message": "Aktifleştirilmiş özellikler" - }, - "activeFeatures": { - "message": "Etkin özellikler" - }, - "addScrollToTop": { - "message": "«Yukarı kaydır» ekle" - }, - "ads": { - "message": "Reklamlar" - }, - "all": { - "message": "Tümü" - }, - "allow": { - "message": "İzin ver" - }, - "allow60fps": { - "message": "60fps'e izin ver" - }, - "alwaysActive": { - "message": "Sürekli etkin" - }, - "alwaysShowProgressBar": { - "message": "İlerleme çubuğunu sürekli göster" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analizör" - }, - "appearance": { - "message": "Görünüm" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "Ses" - }, - "audioFormats": { - "message": "Ses formatları" - }, - "auto": { - "message": "Otomatik" - }, - "autoFullscreen": { - "message": "Otomatik tam ekran" - }, - "autopauseWhenSwitchingTabs": { - "message": "Sekme değiştirildiğinde duraklat" - }, - "autoplay": { - "message": "Otomatik oynat" - }, - "backgroundColor": { - "message": "Arkaplan rengi" - }, - "backgroundOpacity": { - "message": "Arkaplan opaklığı" - }, - "backupAndReset": { - "message": "Yedek & sıfırla" - }, - "baseOnSystemColorScheme": { - "message": "Sistem renk şeması temelli" - }, - "belowPlayer": { - "message": "Oynatıcının altında" - }, - "black": { - "message": "Kara" - }, - "blacklist": { - "message": "Kara Liste" - }, - "blockAll": { - "message": "Tümünü engelle" - }, - "blockMusic": { - "message": "Sesi engelle" - }, - "blue": { - "message": "Mavi" - }, - "blueGray": { - "message": "Mavi gri" - }, - "bluelight": { - "message": "Mavi Işık" - }, - "brown": { - "message": "Kahverengi" - }, - "browser": { - "message": "Tarayıcı" - }, - "browserVersion": { - "message": "Tarayıcı Sürümü" - }, - "bubbles": { - "message": "Baloncuklar" - }, - "bug": { - "message": "Hata" - }, - "buttons": { - "message": "Butonlar" - }, - "cancel": { - "message": "İptal" - }, - "categories": { - "message": "Kategoriler" - }, - "channel": { - "message": "Kanal" - }, - "channels": { - "message": "Kanallar" - }, - "characterEdgeStyle": { - "message": "Karakter kenar stili" - }, - "clipboard": { - "message": "Pano" - }, - "codecH264": { - "message": "Codec h.264" - }, - "collapseOfSubscriptionSections": { - "message": "Abonelik bölümlerini daralt" - }, - "collapsed": { - "message": "Daraltılmış" - }, - "comments": { - "message": "Yorumlar" - }, - "confirmationBeforeClosing": { - "message": "Kapatmadan önce uyar" - }, - "cookies": { - "message": "Çerezler" - }, - "cores": { - "message": "Çekirdekler" - }, - "cropChapterTitles": { - "message": "Bölüm başlıklarını kırp" - }, - "customCss": { - "message": "Özel CSS" - }, - "customJs": { - "message": "Özel JS" - }, - "customMiniPlayer": { - "message": "Özel Mini Oynatıcı" - }, - "cyan": { - "message": "Camgöbeği" - }, - "dark": { - "message": "Koyu" - }, - "darkTheme": { - "message": "Koyu tema" - }, - "dateAndTime": { - "message": "Tarih & zaman" - }, - "dawn": { - "message": "Şafak" - }, - "decreasePlaybackSpeed": { - "message": "Oynatma hızını azalt" - }, - "decreaseVolume": { - "message": "Sesi azalt" - }, - "deepOrange": { - "message": "Koyu turuncu" - }, - "deepPurple": { - "message": "Koyu mor" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Varsayılan kanal sekmesi" - }, - "defaultContentCountry": { - "message": "Varsayılan içerik ülkesi" - }, - "deleteWatchedVideos": { - "message": "İzlenen videoları sil" - }, - "deleteYoutubeCookies": { - "message": "YouTube çerezleri sil" - }, - "depressed": { - "message": "Bunalımlı" - }, - "description": { - "message": "Açıklama" - }, - "description_ext": { - "message": "YouTube'u düzenli+akıllı hale getirin! YouTube video renkli reklam hacmi atlama hızı kanal aracı stili HD reklamlar reklam engelleme reklam engelleyici etiketleri anahtar kelime oynatma listesi" - }, - "desert": { - "message": "Çöl" - }, - "details": { - "message": "Ayrıntılar" - }, - "developerOptions": { - "message": "Geliştirici seçenekleri" - }, - "device": { - "message": "Cihaz" - }, - "dim": { - "message": "Karart" - }, - "disabled": { - "message": "Devredışı" - }, - "dislike": { - "message": "Beğenmeme" - }, - "doNotChange": { - "message": "Değiştirme" - }, - "donate": { - "message": "Bağış" - }, - "draggable": { - "message": "Sürüklenebilir" - }, - "dropShadow": { - "message": "Düşen gölge" - }, - "email": { - "message": "Eposta" - }, - "empty": { - "message": "Boş" - }, - "enabled": { - "message": "Etkin" - }, - "enabledForced": { - "message": "Etkin (Zorla)" - }, - "expanded": { - "message": "Genişletilmiş" - }, - "exportSettings": { - "message": "Ayarları dışa aktar" - }, - "extension": { - "message": "Uzantı" - }, - "file": { - "message": "Dosya" - }, - "filters": { - "message": "Filtreler" - }, - "fitToWindow": { - "message": "Pencereye sığdır" - }, - "flash": { - "message": "Flaş" - }, - "font": { - "message": "Yazı Tipi" - }, - "fontColor": { - "message": "Yazı rengi" - }, - "fontFamily": { - "message": "Font ailesi" - }, - "fontOpacity": { - "message": "Yazı tipi opaklığı" - }, - "fontSize": { - "message": "Yazı Boyutu" - }, - "footer": { - "message": "Altbilgi" - }, - "forceSDR": { - "message": "SDR Zorla" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "En başından itibaren zorunlu oynatma videosu" - }, - "forcedPlaybackSpeed": { - "message": "Oynatma hızını uygulamaya zorla" - }, - "forcedTheaterMode": { - "message": "Sinema modunu zorla" - }, - "forcedVolume": { - "message": "Sesi zorla" - }, - "foundABug": { - "message": "Hata mı buldun?" - }, - "fullWindow": { - "message": "Tam pencere" - }, - "general": { - "message": "Genel" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Arama kutusuna git" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Yeşil" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "HD küçük resim" - }, - "header": { - "message": "Başlık" - }, - "hidden": { - "message": "Gizli" - }, - "hiddenOnVideoPage": { - "message": "Video sayfasında gizli" - }, - "hideAnimatedThumbnails": { - "message": "Hareketli küçük resimleri gizle" - }, - "hideAnnotations": { - "message": "Ek açıklamaları gizle" - }, - "hideCards": { - "message": "Kartları gizle" - }, - "hideCountryCode": { - "message": "Ülke kodunu gizle" - }, - "hideDate": { - "message": "Tarihi gizle" - }, - "hideDetails": { - "message": "Detayları gizle" - }, - "hideEndscreen": { - "message": "Ekran sonunu gizle" - }, - "hideFeaturedContent": { - "message": "Öne çıkan içeriği gizle" - }, - "hideFooter": { - "message": "Footer'ı gizle" - }, - "hideGradientBottom": { - "message": "Gradyan Altını Gizle" - }, - "hideMoreButton": { - "message": "\"Diğer\" düğmesini gizle" - }, - "hidePlayerControlsBar": { - "message": "Oynatıcı kontrol çubuğunu gizle" - }, - "hidePlayerControlsBarButtons": { - "message": "Oynatıcı kontrolleri çubuğu düğmelerini gizle" - }, - "hidePlayerControlsBarOptions": { - "message": "Oynatıcı kontrol seçeneklerini gizle" - }, - "hidePlaylist": { - "message": "Oynatma Listesi'ni gizle" - }, - "hideRightButtons": { - "message": "Sağ butonları gizle" - }, - "hideSaveButton": { - "message": "\"Kaydet\" butonunu gizle " - }, - "hideScrollForDetails": { - "message": "«Ayrıntılar için kaydır» gizle" - }, - "hideShareButton": { - "message": "\"Paylaş\" butonunu gizle" - }, - "hideSkipOverlay": { - "message": "Yer Paylaşımını Atla Gizle" - }, - "hideThumbnailOverlay": { - "message": "Küçük resim yer paylaşımını gizle" - }, - "hideThumbnails": { - "message": "Küçük resimleri gizle" - }, - "hideViewsCount": { - "message": "Görüntüleme sayısını gizle" - }, - "hideVoiceSearchButton": { - "message": "Sesli arama düğmesini gizle" - }, - "high": { - "message": "High" - }, - "history": { - "message": "Geçmiş" - }, - "home": { - "message": "Ana Sayfa" - }, - "hover": { - "message": "Gölge" - }, - "hoverOnVideoPage": { - "message": "Videonun Üzerinde Hover" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "Video ne kadar süre önce yüklendi" - }, - "icons": { - "message": "Simgeler" - }, - "iconsOnly": { - "message": "Yalnızca simgeler" - }, - "importSettings": { - "message": "Ayarları içe aktar" - }, - "improveLogo": { - "message": "Logoyu geliştir" - }, - "improvedtubeIconOnYoutube": { - "message": "YouTube'da ImprovedTube Simgesi" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube dili" - }, - "improvedtubeVersion": { - "message": "ImprovedTube sürümü" - }, - "increasePlaybackSpeed": { - "message": "Oynatma hızını artır" - }, - "increaseVolume": { - "message": "Sesi artır" - }, - "indigo": { - "message": "Çivit" - }, - "items": { - "message": "Öğeler" - }, - "language": { - "message": "Dil" - }, - "languages": { - "message": "Diller" - }, - "legacyYoutube": { - "message": "Eski YouTube" - }, - "library": { - "message": "Kütüphane" - }, - "light": { - "message": "Açık" - }, - "lightBlue": { - "message": "Açık mavi" - }, - "lightGreen": { - "message": "Açık yeşil" - }, - "like": { - "message": "Beğen" - }, - "liked": { - "message": "Beğenildi" - }, - "likes": { - "message": "Beğeniler" - }, - "lime": { - "message": "Lime" - }, - "limitPageWidth": { - "message": "Sayfa genişliğini sınırla" - }, - "list": { - "message": "Liste" - }, - "liveChat": { - "message": "Canlı sohbet" - }, - "liveChatType": { - "message": "Canlı sohbet türü" - }, - "location": { - "message": "Konum" - }, - "loudnessNormalization": { - "message": "Gürültü normalleştirme" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "İzlenen videoları işaretle" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Karıştırıcı" - }, - "moveSidebarLeft": { - "message": "Kenar çubuğunu sola taşı" - }, - "moveThumbnailsRight": { - "message": "Küçük resimleri sağa taşı" - }, - "myColors": { - "message": "Renklerim" - }, - "name": { - "message": "İsim" - }, - "nativeMiniPlayer": { - "message": "Native mini oynatıcı" - }, - "new": { - "message": "Yeni" - }, - "nextVideo": { - "message": "Sonraki video" - }, - "night": { - "message": "Gece" - }, - "noActiveFeatures": { - "message": "Aktif özellik yok" - }, - "noOpenVideoTabs": { - "message": "Açık video sekmesi yok" - }, - "none": { - "message": "Yok" - }, - "normal": { - "message": "Normal" - }, - "old": { - "message": "Eski" - }, - "onAllVideos": { - "message": "Tüm videolarda" - }, - "onSubscribedChannels": { - "message": "Abone olunan kanallarda" - }, - "onlyActiveOnYoutube": { - "message": "Yalnızca YouTube'da etkin" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Sadece bir oynatıcı örneği" - }, - "orange": { - "message": "Turuncu" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Diğer" - }, - "outline": { - "message": "Ana hat" - }, - "overlay": { - "message": "Arayüz" - }, - "permissions": { - "message": "İzinler" - }, - "pictureInPicture": { - "message": "Resim içinde resim" - }, - "pink": { - "message": "Pembe" - }, - "plain": { - "message": "Sade" - }, - "platform": { - "message": "Platform" - }, - "playPause": { - "message": "Oynat / Duraklat" - }, - "playbackSpeed": { - "message": "Oynatma hızı" - }, - "player": { - "message": "Oynatıcı" - }, - "playerColor": { - "message": "Oynatıcı rengi" - }, - "playerSize": { - "message": "Oynatıcı boyutu" - }, - "playlist": { - "message": "Oynatma Listesi" - }, - "playlists": { - "message": "Oynatma Listeleri" - }, - "popupPlayer": { - "message": "Popup oynatıcı" - }, - "position": { - "message": "Konum" - }, - "pressAnyKeyOrScroll": { - "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan" - }, - "previousVideo": { - "message": "Önceki video" - }, - "primaryColor": { - "message": "Birincil renk" - }, - "purple": { - "message": "Mor" - }, - "quality": { - "message": "Kalite" - }, - "raised": { - "message": "Kabarık" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Beni oyla" - }, - "rateUs": { - "message": "Bizi oyla" - }, - "red": { - "message": "Kırmızı" - }, - "redDislikeButton": { - "message": "Beğenmeme düğmesinini kırmızı renkte göster" - }, - "relatedVideos": { - "message": "İlgili videolar" - }, - "remote": { - "message": "TV'de oynat" - }, - "removeRelatedSearchResults": { - "message": "İlgili arama sonuçlarını kaldır" - }, - "repeat": { - "message": "Tekrarla" - }, - "reset": { - "message": "Sıfırla" - }, - "resetAllSettings": { - "message": "Tüm ayarları sıfırla" - }, - "resetAllShortcuts": { - "message": "Tüm kısayolları sıfırla" - }, - "reverse": { - "message": "Ters" - }, - "rotate": { - "message": "Döndür" - }, - "save": { - "message": "Kaydet" - }, - "saveAs": { - "message": "Farklı kaydet" - }, - "schedule": { - "message": "Takvim" - }, - "screen": { - "message": "Ekran" - }, - "screenshot": { - "message": "Ekran görüntüsü" - }, - "scrollBar": { - "message": "Kaydırma çubuğu" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Ara" - }, - "searchBarOnly": { - "message": "Yalnızca arama çubuğu" - }, - "seekBackward10Seconds": { - "message": "10 saniye geriye git" - }, - "seekForward10Seconds": { - "message": "10 saniye ileriye git" - }, - "seekNextChapter": { - "message": "10 saniye geriye git" - }, - "seekPreviousChapter": { - "message": "Önceki Bölümü Ara" - }, - "settings": { - "message": "Ayarlar" - }, - "settingsSuccessfullyImported": { - "message": "Ayarlar başarıyla içe aktarıldı" - }, - "shortcuts": { - "message": "Kısayollar" - }, - "showCardsOnMouseHover": { - "message": "Fareyle üzerine gelindiğinde kartları göster" - }, - "showChannelVideosCount": { - "message": "Kanalın video sayısını göster" - }, - "showLess": { - "message": "Daha az göster" - }, - "showMore": { - "message": "Daha fazla göster" - }, - "showRemainingDuration": { - "message": "Videonun kalan süresini göster" - }, - "shuffle": { - "message": "Karıştır" - }, - "sidebar": { - "message": "Kenar çubuğu" - }, - "spacebar": { - "message": "Ara çubuğu" - }, - "squaredUserImages": { - "message": "Kare kullanıcı görüntüleri" - }, - "static": { - "message": "Statik" - }, - "statsForNerds": { - "message": "Meraklılar için istatistikler" - }, - "step": { - "message": "Adım" - }, - "stop": { - "message": "Durdur" - }, - "style": { - "message": "Stil" - }, - "styles": { - "message": "Stiller" - }, - "subscribe": { - "message": "Abone Ol" - }, - "subscriptions": { - "message": "Aboneler" - }, - "subtitles": { - "message": "Altyazılar" - }, - "sunset": { - "message": "Gün batımı" - }, - "sunsetToSunrise": { - "message": "Gün batımından gün doğumuna" - }, - "systemPeferenceDark": { - "message": "Sistem tercihi: koyu" - }, - "systemPeferenceLight": { - "message": "Sistem tercihi: açık" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Yazı rengi" - }, - "themes": { - "message": "Temalar" - }, - "thisWillRemoveAllCookies": { - "message": "Bu, tüm çerezleri kaldıracaktır." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "Bu, tüm YouTube çerezlerini kaldıracaktır." - }, - "thisWillResetAllSettings": { - "message": "Bu, tüm ayarları sıfırlayacaktır." - }, - "thisWillResetAllShortcuts": { - "message": "Bu, tüm kısayolları sıfırlayacaktır." - }, - "thumbnails": { - "message": "Küçük resimler" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Şu zamandan" - }, - "timeTo": { - "message": "Şu zamana" - }, - "todayAt": { - "message": "Bugün" - }, - "toggleAutoplay": { - "message": "Otomatik oynatmayı aç/kapat" - }, - "toggleCards": { - "message": "Kartları aç/kapat" - }, - "toggleControls": { - "message": "Kontrolleri aç/kapat" - }, - "topChat": { - "message": "En İyi Sohbet Mesajları" - }, - "trackWatchedVideos": { - "message": "İzlenen videoları takip edin" - }, - "trailerAutoplay": { - "message": "Fragman otomatik oynatımı" - }, - "translations": { - "message": "Çeviriler" - }, - "transparentBackground": { - "message": "Saydam arka plan" - }, - "trending": { - "message": "Trendler" - }, - "tryToReloadThePage": { - "message": "Sayfayı yeniden yüklemeyi deneyin" - }, - "type": { - "message": "Tip" - }, - "upNextAutoplay": { - "message": "Sonraki otomatik oynatma" - }, - "use24HourFormat": { - "message": "24 saat biçimini kullan" - }, - "version": { - "message": "Sürüm" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "Kategorinin adını almak için video açıklaması genişletilecek" - }, - "videoFormats": { - "message": "Video formatları" - }, - "videos": { - "message": "Videolar" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Ses" - }, - "watchLater": { - "message": "Sonra izle" - }, - "watchTime": { - "message": "İzleme zamanı" - }, - "whenTabIsChanged": { - "message": "Sekme değiştirildiğinde" - }, - "white": { - "message": "Beyaz" - }, - "windowColor": { - "message": "Pencere rengi" - }, - "windowOpacity": { - "message": "Pencere opaklığı" - }, - "yellow": { - "message": "Sarı" - }, - "youtubeHeaderLeft": { - "message": "YouTube Header (sol)" - }, - "youtubeHeaderRight": { - "message": "YouTube Header (sağ)" - }, - "youtubeHomePage": { - "message": "YouTube ana sayfası" - }, - "youtubeLanguage": { - "message": "YouTube dili" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube, h.264 codec bileşeni için video kalitesini 1080p ile sınırlar" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "Hakkında" + }, + "accept": { + "message": "Onayla" + }, + "activate": { + "message": "Aktifleştir" + }, + "activateCaptions": { + "message": "Altyazıları Aktifleştir" + }, + "activateFullscreen": { + "message": "Tam ekranı Aktifleştir" + }, + "activated": { + "message": "Aktifleştirilmiş" + }, + "activatedFeatures": { + "message": "Aktifleştirilmiş özellikler" + }, + "activeFeatures": { + "message": "Etkin özellikler" + }, + "addScrollToTop": { + "message": "«Yukarı kaydır» ekle" + }, + "ads": { + "message": "Reklamlar" + }, + "all": { + "message": "Tümü" + }, + "allow": { + "message": "İzin ver" + }, + "allow60fps": { + "message": "60fps'e izin ver" + }, + "alwaysActive": { + "message": "Sürekli etkin" + }, + "alwaysShowProgressBar": { + "message": "İlerleme çubuğunu sürekli göster" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analizör" + }, + "appearance": { + "message": "Görünüm" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "Ses" + }, + "audioFormats": { + "message": "Ses formatları" + }, + "auto": { + "message": "Otomatik" + }, + "autoFullscreen": { + "message": "Otomatik tam ekran" + }, + "autopauseWhenSwitchingTabs": { + "message": "Sekme değiştirildiğinde duraklat" + }, + "autoplay": { + "message": "Otomatik oynat" + }, + "backgroundColor": { + "message": "Arkaplan rengi" + }, + "backgroundOpacity": { + "message": "Arkaplan opaklığı" + }, + "backupAndReset": { + "message": "Yedek & sıfırla" + }, + "baseOnSystemColorScheme": { + "message": "Sistem renk şeması temelli" + }, + "belowPlayer": { + "message": "Oynatıcının altında" + }, + "black": { + "message": "Kara" + }, + "blacklist": { + "message": "Kara Liste" + }, + "blockAll": { + "message": "Tümünü engelle" + }, + "blockMusic": { + "message": "Sesi engelle" + }, + "blue": { + "message": "Mavi" + }, + "blueGray": { + "message": "Mavi gri" + }, + "bluelight": { + "message": "Mavi Işık" + }, + "brown": { + "message": "Kahverengi" + }, + "browser": { + "message": "Tarayıcı" + }, + "browserVersion": { + "message": "Tarayıcı Sürümü" + }, + "bubbles": { + "message": "Baloncuklar" + }, + "bug": { + "message": "Hata" + }, + "buttons": { + "message": "Butonlar" + }, + "cancel": { + "message": "İptal" + }, + "categories": { + "message": "Kategoriler" + }, + "channel": { + "message": "Kanal" + }, + "channels": { + "message": "Kanallar" + }, + "characterEdgeStyle": { + "message": "Karakter kenar stili" + }, + "clipboard": { + "message": "Pano" + }, + "codecH264": { + "message": "Codec h.264" + }, + "collapseOfSubscriptionSections": { + "message": "Abonelik bölümlerini daralt" + }, + "collapsed": { + "message": "Daraltılmış" + }, + "comments": { + "message": "Yorumlar" + }, + "confirmationBeforeClosing": { + "message": "Kapatmadan önce uyar" + }, + "cookies": { + "message": "Çerezler" + }, + "cores": { + "message": "Çekirdekler" + }, + "cropChapterTitles": { + "message": "Bölüm başlıklarını kırp" + }, + "customCss": { + "message": "Özel CSS" + }, + "customJs": { + "message": "Özel JS" + }, + "customMiniPlayer": { + "message": "Özel Mini Oynatıcı" + }, + "cyan": { + "message": "Camgöbeği" + }, + "dark": { + "message": "Koyu" + }, + "darkTheme": { + "message": "Koyu tema" + }, + "dateAndTime": { + "message": "Tarih & zaman" + }, + "dawn": { + "message": "Şafak" + }, + "decreasePlaybackSpeed": { + "message": "Oynatma hızını azalt" + }, + "decreaseVolume": { + "message": "Sesi azalt" + }, + "deepOrange": { + "message": "Koyu turuncu" + }, + "deepPurple": { + "message": "Koyu mor" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Varsayılan kanal sekmesi" + }, + "defaultContentCountry": { + "message": "Varsayılan içerik ülkesi" + }, + "deleteWatchedVideos": { + "message": "İzlenen videoları sil" + }, + "deleteYoutubeCookies": { + "message": "YouTube çerezleri sil" + }, + "depressed": { + "message": "Bunalımlı" + }, + "description": { + "message": "Açıklama" + }, + "description_ext": { + "message": "YouTube'u düzenli+akıllı hale getirin! YouTube video renkli reklam hacmi atlama hızı kanal aracı stili HD reklamlar reklam engelleme reklam engelleyici etiketleri anahtar kelime oynatma listesi" + }, + "desert": { + "message": "Çöl" + }, + "details": { + "message": "Ayrıntılar" + }, + "developerOptions": { + "message": "Geliştirici seçenekleri" + }, + "device": { + "message": "Cihaz" + }, + "dim": { + "message": "Karart" + }, + "disabled": { + "message": "Devredışı" + }, + "dislike": { + "message": "Beğenmeme" + }, + "doNotChange": { + "message": "Değiştirme" + }, + "donate": { + "message": "Bağış" + }, + "draggable": { + "message": "Sürüklenebilir" + }, + "dropShadow": { + "message": "Düşen gölge" + }, + "email": { + "message": "Eposta" + }, + "empty": { + "message": "Boş" + }, + "enabled": { + "message": "Etkin" + }, + "enabledForced": { + "message": "Etkin (Zorla)" + }, + "expanded": { + "message": "Genişletilmiş" + }, + "exportSettings": { + "message": "Ayarları dışa aktar" + }, + "extension": { + "message": "Uzantı" + }, + "file": { + "message": "Dosya" + }, + "filters": { + "message": "Filtreler" + }, + "fitToWindow": { + "message": "Pencereye sığdır" + }, + "flash": { + "message": "Flaş" + }, + "font": { + "message": "Yazı Tipi" + }, + "fontColor": { + "message": "Yazı rengi" + }, + "fontFamily": { + "message": "Font ailesi" + }, + "fontOpacity": { + "message": "Yazı tipi opaklığı" + }, + "fontSize": { + "message": "Yazı Boyutu" + }, + "footer": { + "message": "Altbilgi" + }, + "forceSDR": { + "message": "SDR Zorla" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "En başından itibaren zorunlu oynatma videosu" + }, + "forcedPlaybackSpeed": { + "message": "Oynatma hızını uygulamaya zorla" + }, + "forcedTheaterMode": { + "message": "Sinema modunu zorla" + }, + "forcedVolume": { + "message": "Sesi zorla" + }, + "foundABug": { + "message": "Hata mı buldun?" + }, + "fullWindow": { + "message": "Tam pencere" + }, + "general": { + "message": "Genel" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Arama kutusuna git" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Yeşil" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD küçük resim" + }, + "header": { + "message": "Başlık" + }, + "hidden": { + "message": "Gizli" + }, + "hiddenOnVideoPage": { + "message": "Video sayfasında gizli" + }, + "hideAnimatedThumbnails": { + "message": "Hareketli küçük resimleri gizle" + }, + "hideAnnotations": { + "message": "Ek açıklamaları gizle" + }, + "hideCards": { + "message": "Kartları gizle" + }, + "hideCountryCode": { + "message": "Ülke kodunu gizle" + }, + "hideDate": { + "message": "Tarihi gizle" + }, + "hideDetails": { + "message": "Detayları gizle" + }, + "hideEndscreen": { + "message": "Ekran sonunu gizle" + }, + "hideFeaturedContent": { + "message": "Öne çıkan içeriği gizle" + }, + "hideFooter": { + "message": "Footer'ı gizle" + }, + "hideGradientBottom": { + "message": "Gradyan Altını Gizle" + }, + "hideMoreButton": { + "message": "\"Diğer\" düğmesini gizle" + }, + "hidePlayerControlsBar": { + "message": "Oynatıcı kontrol çubuğunu gizle" + }, + "hidePlayerControlsBarButtons": { + "message": "Oynatıcı kontrolleri çubuğu düğmelerini gizle" + }, + "hidePlayerControlsBarOptions": { + "message": "Oynatıcı kontrol seçeneklerini gizle" + }, + "hidePlaylist": { + "message": "Oynatma Listesi'ni gizle" + }, + "hideRightButtons": { + "message": "Sağ butonları gizle" + }, + "hideSaveButton": { + "message": "\"Kaydet\" butonunu gizle " + }, + "hideScrollForDetails": { + "message": "«Ayrıntılar için kaydır» gizle" + }, + "hideShareButton": { + "message": "\"Paylaş\" butonunu gizle" + }, + "hideSkipOverlay": { + "message": "Yer Paylaşımını Atla Gizle" + }, + "hideThumbnailOverlay": { + "message": "Küçük resim yer paylaşımını gizle" + }, + "hideThumbnails": { + "message": "Küçük resimleri gizle" + }, + "hideViewsCount": { + "message": "Görüntüleme sayısını gizle" + }, + "hideVoiceSearchButton": { + "message": "Sesli arama düğmesini gizle" + }, + "high": { + "message": "High" + }, + "history": { + "message": "Geçmiş" + }, + "home": { + "message": "Ana Sayfa" + }, + "hover": { + "message": "Gölge" + }, + "hoverOnVideoPage": { + "message": "Videonun Üzerinde Hover" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "Video ne kadar süre önce yüklendi" + }, + "icons": { + "message": "Simgeler" + }, + "iconsOnly": { + "message": "Yalnızca simgeler" + }, + "importSettings": { + "message": "Ayarları içe aktar" + }, + "improveLogo": { + "message": "Logoyu geliştir" + }, + "improvedtubeIconOnYoutube": { + "message": "YouTube'da ImprovedTube Simgesi" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube dili" + }, + "improvedtubeVersion": { + "message": "ImprovedTube sürümü" + }, + "increasePlaybackSpeed": { + "message": "Oynatma hızını artır" + }, + "increaseVolume": { + "message": "Sesi artır" + }, + "indigo": { + "message": "Çivit" + }, + "items": { + "message": "Öğeler" + }, + "language": { + "message": "Dil" + }, + "languages": { + "message": "Diller" + }, + "legacyYoutube": { + "message": "Eski YouTube" + }, + "library": { + "message": "Kütüphane" + }, + "light": { + "message": "Açık" + }, + "lightBlue": { + "message": "Açık mavi" + }, + "lightGreen": { + "message": "Açık yeşil" + }, + "like": { + "message": "Beğen" + }, + "liked": { + "message": "Beğenildi" + }, + "likes": { + "message": "Beğeniler" + }, + "lime": { + "message": "Lime" + }, + "limitPageWidth": { + "message": "Sayfa genişliğini sınırla" + }, + "list": { + "message": "Liste" + }, + "liveChat": { + "message": "Canlı sohbet" + }, + "liveChatType": { + "message": "Canlı sohbet türü" + }, + "location": { + "message": "Konum" + }, + "loudnessNormalization": { + "message": "Gürültü normalleştirme" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "İzlenen videoları işaretle" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Karıştırıcı" + }, + "moveSidebarLeft": { + "message": "Kenar çubuğunu sola taşı" + }, + "moveThumbnailsRight": { + "message": "Küçük resimleri sağa taşı" + }, + "myColors": { + "message": "Renklerim" + }, + "name": { + "message": "İsim" + }, + "nativeMiniPlayer": { + "message": "Native mini oynatıcı" + }, + "new": { + "message": "Yeni" + }, + "nextVideo": { + "message": "Sonraki video" + }, + "night": { + "message": "Gece" + }, + "noActiveFeatures": { + "message": "Aktif özellik yok" + }, + "noOpenVideoTabs": { + "message": "Açık video sekmesi yok" + }, + "none": { + "message": "Yok" + }, + "normal": { + "message": "Normal" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Eski" + }, + "onAllVideos": { + "message": "Tüm videolarda" + }, + "onSubscribedChannels": { + "message": "Abone olunan kanallarda" + }, + "onlyActiveOnYoutube": { + "message": "Yalnızca YouTube'da etkin" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Sadece bir oynatıcı örneği" + }, + "orange": { + "message": "Turuncu" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Diğer" + }, + "outline": { + "message": "Ana hat" + }, + "overlay": { + "message": "Arayüz" + }, + "permissions": { + "message": "İzinler" + }, + "pictureInPicture": { + "message": "Resim içinde resim" + }, + "pink": { + "message": "Pembe" + }, + "plain": { + "message": "Sade" + }, + "platform": { + "message": "Platform" + }, + "playPause": { + "message": "Oynat / Duraklat" + }, + "playbackSpeed": { + "message": "Oynatma hızı" + }, + "player": { + "message": "Oynatıcı" + }, + "playerColor": { + "message": "Oynatıcı rengi" + }, + "playerSize": { + "message": "Oynatıcı boyutu" + }, + "playlist": { + "message": "Oynatma Listesi" + }, + "playlists": { + "message": "Oynatma Listeleri" + }, + "popupPlayer": { + "message": "Popup oynatıcı" + }, + "position": { + "message": "Konum" + }, + "pressAnyKeyOrScroll": { + "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Herhangi bir tuşa bas veya farenin tekerleğini kullan" + }, + "previousVideo": { + "message": "Önceki video" + }, + "primaryColor": { + "message": "Birincil renk" + }, + "purple": { + "message": "Mor" + }, + "quality": { + "message": "Kalite" + }, + "raised": { + "message": "Kabarık" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Beni oyla" + }, + "rateUs": { + "message": "Bizi oyla" + }, + "red": { + "message": "Kırmızı" + }, + "redDislikeButton": { + "message": "Beğenmeme düğmesinini kırmızı renkte göster" + }, + "relatedVideos": { + "message": "İlgili videolar" + }, + "remote": { + "message": "TV'de oynat" + }, + "removeRelatedSearchResults": { + "message": "İlgili arama sonuçlarını kaldır" + }, + "repeat": { + "message": "Tekrarla" + }, + "reset": { + "message": "Sıfırla" + }, + "resetAllSettings": { + "message": "Tüm ayarları sıfırla" + }, + "resetAllShortcuts": { + "message": "Tüm kısayolları sıfırla" + }, + "reverse": { + "message": "Ters" + }, + "rotate": { + "message": "Döndür" + }, + "save": { + "message": "Kaydet" + }, + "saveAs": { + "message": "Farklı kaydet" + }, + "schedule": { + "message": "Takvim" + }, + "screen": { + "message": "Ekran" + }, + "screenshot": { + "message": "Ekran görüntüsü" + }, + "scrollBar": { + "message": "Kaydırma çubuğu" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Ara" + }, + "searchBarOnly": { + "message": "Yalnızca arama çubuğu" + }, + "seekBackward10Seconds": { + "message": "10 saniye geriye git" + }, + "seekForward10Seconds": { + "message": "10 saniye ileriye git" + }, + "seekNextChapter": { + "message": "10 saniye geriye git" + }, + "seekPreviousChapter": { + "message": "Önceki Bölümü Ara" + }, + "settings": { + "message": "Ayarlar" + }, + "settingsSuccessfullyImported": { + "message": "Ayarlar başarıyla içe aktarıldı" + }, + "shortcuts": { + "message": "Kısayollar" + }, + "showCardsOnMouseHover": { + "message": "Fareyle üzerine gelindiğinde kartları göster" + }, + "showChannelVideosCount": { + "message": "Kanalın video sayısını göster" + }, + "showLess": { + "message": "Daha az göster" + }, + "showMore": { + "message": "Daha fazla göster" + }, + "showRemainingDuration": { + "message": "Videonun kalan süresini göster" + }, + "shuffle": { + "message": "Karıştır" + }, + "sidebar": { + "message": "Kenar çubuğu" + }, + "spacebar": { + "message": "Ara çubuğu" + }, + "squaredUserImages": { + "message": "Kare kullanıcı görüntüleri" + }, + "static": { + "message": "Statik" + }, + "statsForNerds": { + "message": "Meraklılar için istatistikler" + }, + "step": { + "message": "Adım" + }, + "stop": { + "message": "Durdur" + }, + "style": { + "message": "Stil" + }, + "styles": { + "message": "Stiller" + }, + "subscribe": { + "message": "Abone Ol" + }, + "subscriptions": { + "message": "Aboneler" + }, + "subtitles": { + "message": "Altyazılar" + }, + "sunset": { + "message": "Gün batımı" + }, + "sunsetToSunrise": { + "message": "Gün batımından gün doğumuna" + }, + "systemPeferenceDark": { + "message": "Sistem tercihi: koyu" + }, + "systemPeferenceLight": { + "message": "Sistem tercihi: açık" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Yazı rengi" + }, + "themes": { + "message": "Temalar" + }, + "thisWillRemoveAllCookies": { + "message": "Bu, tüm çerezleri kaldıracaktır." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "Bu, tüm YouTube çerezlerini kaldıracaktır." + }, + "thisWillResetAllSettings": { + "message": "Bu, tüm ayarları sıfırlayacaktır." + }, + "thisWillResetAllShortcuts": { + "message": "Bu, tüm kısayolları sıfırlayacaktır." + }, + "thumbnails": { + "message": "Küçük resimler" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Şu zamandan" + }, + "timeTo": { + "message": "Şu zamana" + }, + "todayAt": { + "message": "Bugün" + }, + "toggleAutoplay": { + "message": "Otomatik oynatmayı aç/kapat" + }, + "toggleCards": { + "message": "Kartları aç/kapat" + }, + "toggleControls": { + "message": "Kontrolleri aç/kapat" + }, + "topChat": { + "message": "En İyi Sohbet Mesajları" + }, + "trackWatchedVideos": { + "message": "İzlenen videoları takip edin" + }, + "trailerAutoplay": { + "message": "Fragman otomatik oynatımı" + }, + "translations": { + "message": "Çeviriler" + }, + "transparentBackground": { + "message": "Saydam arka plan" + }, + "trending": { + "message": "Trendler" + }, + "tryToReloadThePage": { + "message": "Sayfayı yeniden yüklemeyi deneyin" + }, + "type": { + "message": "Tip" + }, + "upNextAutoplay": { + "message": "Sonraki otomatik oynatma" + }, + "use24HourFormat": { + "message": "24 saat biçimini kullan" + }, + "version": { + "message": "Sürüm" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "Kategorinin adını almak için video açıklaması genişletilecek" + }, + "videoFormats": { + "message": "Video formatları" + }, + "videos": { + "message": "Videolar" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Ses" + }, + "watchLater": { + "message": "Sonra izle" + }, + "watchTime": { + "message": "İzleme zamanı" + }, + "whenTabIsChanged": { + "message": "Sekme değiştirildiğinde" + }, + "white": { + "message": "Beyaz" + }, + "windowColor": { + "message": "Pencere rengi" + }, + "windowOpacity": { + "message": "Pencere opaklığı" + }, + "yellow": { + "message": "Sarı" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (sol)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (sağ)" + }, + "youtubeHomePage": { + "message": "YouTube ana sayfası" + }, + "youtubeLanguage": { + "message": "YouTube dili" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube, h.264 codec bileşeni için video kalitesini 1080p ile sınırlar" + } } \ No newline at end of file diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index a1eef4aab..235fd1674 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -1,998 +1,1004 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "关于" - }, - "accept": { - "message": "接受" - }, - "activate": { - "message": "启用" - }, - "activateCaptions": { - "message": "启用字幕" - }, - "activateFullscreen": { - "message": "启用全屏" - }, - "activated": { - "message": "启用" - }, - "activatedFeatures": { - "message": "已启用功能" - }, - "activeFeatures": { - "message": "启用功能" - }, - "addScrollToTop": { - "message": "增加【返回顶部】按钮" - }, - "ads": { - "message": "广告" - }, - "all": { - "message": "所有" - }, - "allow": { - "message": "允许" - }, - "allow60fps": { - "message": "允许60FPS" - }, - "alwaysActive": { - "message": "始终启用" - }, - "alwaysShowProgressBar": { - "message": "始终显示进度条" - }, - "amber": { - "message": "琥珀色" - }, - "analyzer": { - "message": "分析仪" - }, - "appearance": { - "message": "外观" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "audio": { - "message": "音频" - }, - "audioFormats": { - "message": "音频格式" - }, - "auto": { - "message": "自动" - }, - "autoFullscreen": { - "message": "自动全屏" - }, - "autopauseWhenSwitchingTabs": { - "message": "切换标签时暂停播放" - }, - "autoplay": { - "message": "自动播放" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "备份与恢复" - }, - "baseOnSystemColorScheme": { - "message": "使用系统配色" - }, - "belowPlayer": { - "message": "在播放器下方" - }, - "black": { - "message": "纯黑" - }, - "blacklist": { - "message": "黑名单" - }, - "blockAll": { - "message": "拦截所有" - }, - "blockMusic": { - "message": "Block music" - }, - "blue": { - "message": "蓝色" - }, - "blueGray": { - "message": "蓝灰色" - }, - "bluelight": { - "message": "色彩柔和度" - }, - "brown": { - "message": "棕色" - }, - "browser": { - "message": "浏览器" - }, - "browserVersion": { - "message": "浏览器版本" - }, - "bubbles": { - "message": "网格" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "按钮" - }, - "cancel": { - "message": "取消" - }, - "categories": { - "message": "分类" - }, - "channel": { - "message": "频道" - }, - "channels": { - "message": "频道" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clipboard": { - "message": "粘贴板" - }, - "codecH264": { - "message": "采用 h.264 编码" - }, - "collapseOfSubscriptionSections": { - "message": "订阅区域显示展开/收起按钮" - }, - "collapsed": { - "message": "收起" - }, - "comments": { - "message": "评论" - }, - "confirmationBeforeClosing": { - "message": "页面关闭确认" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "核心" - }, - "cropChapterTitles": { - "message": "裁剪章节标题" - }, - "customCss": { - "message": "自定义CSS" - }, - "customJs": { - "message": "自定义JS" - }, - "customMiniPlayer": { - "message": "自定义迷你播放器" - }, - "cyan": { - "message": "青色" - }, - "dark": { - "message": "黑暗" - }, - "darkTheme": { - "message": "夜间模式" - }, - "dateAndTime": { - "message": "时间与日期" - }, - "dawn": { - "message": "黎明" - }, - "decreasePlaybackSpeed": { - "message": "视频减速" - }, - "decreaseVolume": { - "message": "降低音量" - }, - "deepOrange": { - "message": "深橙色" - }, - "deepPurple": { - "message": "深紫色" - }, - "default": { - "message": "默认" - }, - "defaultChannelTab": { - "message": "默认频道页" - }, - "defaultContentCountry": { - "message": "默认内容国家" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "清空 YouTube cookies" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "视频描述" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "沙漠" - }, - "details": { - "message": "细节信息" - }, - "developerOptions": { - "message": "开发者选项" - }, - "device": { - "message": "设备" - }, - "dim": { - "message": "遮罩层厚度" - }, - "disabled": { - "message": "停用" - }, - "dislike": { - "message": "踩一下" - }, - "doNotChange": { - "message": "不做改变" - }, - "donate": { - "message": "支持" - }, - "draggable": { - "message": "可拖动" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "暂无" - }, - "enabled": { - "message": "启用" - }, - "enabledForced": { - "message": "强制启用" - }, - "expanded": { - "message": "展开" - }, - "exportSettings": { - "message": "导出设置" - }, - "extension": { - "message": "扩展" - }, - "file": { - "message": "文件" - }, - "filters": { - "message": "滤镜" - }, - "fitToWindow": { - "message": "窗口自适应" - }, - "flash": { - "message": "闪光" - }, - "font": { - "message": "字体" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "底部栏" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "强制设置播放速度" - }, - "forcedTheaterMode": { - "message": "强制设置剧场模式" - }, - "forcedVolume": { - "message": "强制修改音量" - }, - "foundABug": { - "message": "遇到了Bug?" - }, - "fullWindow": { - "message": "全屏" - }, - "general": { - "message": "一般设置" - }, - "geoPreference": { - "message": "地理偏好" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "转到搜索框" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "绿色" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "高清缩略图" - }, - "header": { - "message": "顶部栏" - }, - "hidden": { - "message": "隐藏" - }, - "hiddenOnVideoPage": { - "message": "在视频播放页面时隐藏" - }, - "hideAnimatedThumbnails": { - "message": "隐藏动态缩略图" - }, - "hideAnnotations": { - "message": "隐藏预览图" - }, - "hideCards": { - "message": "隐藏信息卡片" - }, - "hideCountryCode": { - "message": "隐藏国家代码" - }, - "hideDate": { - "message": "隐藏日期" - }, - "hideDetails": { - "message": "隐藏详细信息" - }, - "hideEndscreen": { - "message": "隐藏结束画面" - }, - "hideFeaturedContent": { - "message": "隐藏精选频道" - }, - "hideFooter": { - "message": "隐藏底部栏" - }, - "hideGradientBottom": { - "message": "隐藏底部渐变层" - }, - "hideMoreButton": { - "message": "隐藏 \"更多\" 按钮" - }, - "hidePlayerControlsBar": { - "message": "隐藏播放器控制栏" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "隐藏播放列表" - }, - "hideRightButtons": { - "message": "隐藏右侧按钮" - }, - "hideSaveButton": { - "message": "隐藏 \"保存\"按钮" - }, - "hideScrollForDetails": { - "message": "隐藏 «滚动至详细信息»" - }, - "hideShareButton": { - "message": "隐藏\"共享\"按钮" - }, - "hideSkipOverlay": { - "message": "隐藏跳过叠加" - }, - "hideThumbnailOverlay": { - "message": "隐藏缩略图上的按钮" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "隐藏观看量" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "历史记录" - }, - "home": { - "message": "首页" - }, - "hover": { - "message": "悬浮" - }, - "hoverOnVideoPage": { - "message": "在视频播放页面时悬浮显示" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "投稿于多久之前" - }, - "icons": { - "message": "图标" - }, - "iconsOnly": { - "message": "仅显示图标" - }, - "importSettings": { - "message": "导入设置" - }, - "improveLogo": { - "message": "优化图标" - }, - "improvedtubeIconOnYoutube": { - "message": "在 YouTube 显示 ImprovedTube 图标" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube 语言" - }, - "improvedtubeVersion": { - "message": "ImprovedTube 版本" - }, - "increasePlaybackSpeed": { - "message": "视频加速" - }, - "increaseVolume": { - "message": "增加音量" - }, - "indigo": { - "message": "靛青色" - }, - "items": { - "message": "项目" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "语言" - }, - "legacyYoutube": { - "message": "旧版 YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "明亮" - }, - "lightBlue": { - "message": "浅蓝色" - }, - "lightGreen": { - "message": "浅绿色" - }, - "like": { - "message": "顶一下" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "顶/踩总数" - }, - "lime": { - "message": "石灰色" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "列表" - }, - "liveChat": { - "message": "实时聊天窗" - }, - "liveChatType": { - "message": "实时聊天窗类型" - }, - "location": { - "message": "地点" - }, - "loudnessNormalization": { - "message": "音量标准化" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "标记为已观看" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "混音器" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "自定义颜色" - }, - "name": { - "message": "名字" - }, - "nativeMiniPlayer": { - "message": "原版迷你播放器" - }, - "new": { - "message": "新的" - }, - "nextVideo": { - "message": "上一个视频" - }, - "night": { - "message": "夜色" - }, - "noActiveFeatures": { - "message": "没有已启用的功能" - }, - "noOpenVideoTabs": { - "message": "没有已打开的视频标签" - }, - "none": { - "message": "无" - }, - "normal": { - "message": "正常" - }, - "old": { - "message": "旧版" - }, - "onAllVideos": { - "message": "在所有视频" - }, - "onSubscribedChannels": { - "message": "在订阅频道" - }, - "onlyActiveOnYoutube": { - "message": "仅在 YouTube 上启用" - }, - "onlyOnePlayerInstancePlaying": { - "message": "同时仅播放一个" - }, - "openPopupPlayer": { - "message": "在新窗口打开视频/播放列表" - }, - "orange": { - "message": "橙色" - }, - "os": { - "message": "操作系统" - }, - "other": { - "message": "其他" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "许可" - }, - "pictureInPicture": { - "message": "画中画" - }, - "pink": { - "message": "粉色" - }, - "plain": { - "message": "野外" - }, - "platform": { - "message": "平台" - }, - "playPause": { - "message": "播放/暂停" - }, - "playbackSpeed": { - "message": "播放速度" - }, - "player": { - "message": "播放器" - }, - "playerColor": { - "message": "播放器颜色" - }, - "playerSize": { - "message": "播放器大小" - }, - "playlist": { - "message": "播放列表" - }, - "playlists": { - "message": "稍后观看" - }, - "popupPlayer": { - "message": "弹出播放器" - }, - "position": { - "message": "位置" - }, - "pressAnyKeyOrScroll": { - "message": "按下任意键或滚动鼠标滚轴." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "按下任意键或鼠标滚轴." - }, - "previousVideo": { - "message": "下一个视频" - }, - "primaryColor": { - "message": "主色调" - }, - "purple": { - "message": "紫色" - }, - "quality": { - "message": "画质" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "给我们评价" - }, - "red": { - "message": "红色" - }, - "redDislikeButton": { - "message": "将【踩一下】设置为红色" - }, - "relatedVideos": { - "message": "相关视频" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "隐藏搜索相关结果" - }, - "repeat": { - "message": "循环" - }, - "reset": { - "message": "重置" - }, - "resetAllSettings": { - "message": "重置所有设置" - }, - "resetAllShortcuts": { - "message": "重置所有快捷键" - }, - "reverse": { - "message": "逆序" - }, - "rotate": { - "message": "旋转" - }, - "save": { - "message": "保存" - }, - "saveAs": { - "message": "另存为" - }, - "schedule": { - "message": "定时开/关" - }, - "screen": { - "message": "屏幕" - }, - "screenshot": { - "message": "截图" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "搜索" - }, - "searchBarOnly": { - "message": "仅搜索栏" - }, - "seekBackward10Seconds": { - "message": "倒退10秒" - }, - "seekForward10Seconds": { - "message": "快进10秒" - }, - "seekNextChapter": { - "message": "寻找下一章" - }, - "seekPreviousChapter": { - "message": "寻找上一章" - }, - "settings": { - "message": "ImprovedTube 设置" - }, - "settingsSuccessfullyImported": { - "message": "设置导入成功" - }, - "shortcuts": { - "message": "快捷键" - }, - "showCardsOnMouseHover": { - "message": "鼠标悬浮时显示信息卡片" - }, - "showChannelVideosCount": { - "message": "显示频道内视频数" - }, - "showLess": { - "message": "显示较少" - }, - "showMore": { - "message": "展示更多" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "随机" - }, - "sidebar": { - "message": "侧边栏" - }, - "spacebar": { - "message": "空格" - }, - "squaredUserImages": { - "message": "方形用户头像" - }, - "static": { - "message": "静态" - }, - "statsForNerds": { - "message": "显示专业信息" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "停止" - }, - "style": { - "message": "样式" - }, - "styles": { - "message": "样式" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "订阅内容" - }, - "subtitles": { - "message": "副标题" - }, - "sunset": { - "message": "晚霞" - }, - "sunsetToSunrise": { - "message": "日落到日出" - }, - "systemPeferenceDark": { - "message": "系统偏好: 深色" - }, - "systemPeferenceLight": { - "message": "系统偏好: 浅色" - }, - "teal": { - "message": "蓝绿色" - }, - "textColor": { - "message": "文字颜色" - }, - "themes": { - "message": "主题" - }, - "thisWillRemoveAllCookies": { - "message": "将清空所有 cookies." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "将清空所有 YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "将重置所有设置." - }, - "thisWillResetAllShortcuts": { - "message": "将会重置所有快捷键" - }, - "thumbnails": { - "message": "缩略图" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "开始时间" - }, - "timeTo": { - "message": "结束时间" - }, - "todayAt": { - "message": "截止今天" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "切换卡片" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "热门聊天" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "自动播放预告片" - }, - "translations": { - "message": "翻译" - }, - "transparentBackground": { - "message": "透明背景" - }, - "trending": { - "message": "时下流行" - }, - "tryToReloadThePage": { - "message": "尝试刷新页面" - }, - "turnOff": { - "message": "关闭时间" - }, - "turnOn": { - "message": "开启时间" - }, - "type": { - "message": "类型" - }, - "upNextAutoplay": { - "message": "自动播放下一视频" - }, - "use24HourFormat": { - "message": "使用24小时制" - }, - "version": { - "message": "版本" - }, - "video": { - "message": "视频" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "扩展视频简介到分类" - }, - "videoFormats": { - "message": "视频格式" - }, - "videos": { - "message": "视频" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "音量" - }, - "watchLater": { - "message": "稍后观看" - }, - "watchTime": { - "message": "观看时间" - }, - "whenTabIsChanged": { - "message": "切换标签时" - }, - "white": { - "message": "白色" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "黄色" - }, - "youtubeHeaderLeft": { - "message": "Youtube标题(左)" - }, - "youtubeHeaderRight": { - "message": "Youtube标题(右)" - }, - "youtubeHomePage": { - "message": "YouTube默认主页" - }, - "youtubeLanguage": { - "message": "YouTube 语言" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "采用 H.264 编解码时,YouTube 会将视频画质设为 1080p" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "关于" + }, + "accept": { + "message": "接受" + }, + "activate": { + "message": "启用" + }, + "activateCaptions": { + "message": "启用字幕" + }, + "activateFullscreen": { + "message": "启用全屏" + }, + "activated": { + "message": "启用" + }, + "activatedFeatures": { + "message": "已启用功能" + }, + "activeFeatures": { + "message": "启用功能" + }, + "addScrollToTop": { + "message": "增加【返回顶部】按钮" + }, + "ads": { + "message": "广告" + }, + "all": { + "message": "所有" + }, + "allow": { + "message": "允许" + }, + "allow60fps": { + "message": "允许60FPS" + }, + "alwaysActive": { + "message": "始终启用" + }, + "alwaysShowProgressBar": { + "message": "始终显示进度条" + }, + "amber": { + "message": "琥珀色" + }, + "analyzer": { + "message": "分析仪" + }, + "appearance": { + "message": "外观" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "音频" + }, + "audioFormats": { + "message": "音频格式" + }, + "auto": { + "message": "自动" + }, + "autoFullscreen": { + "message": "自动全屏" + }, + "autopauseWhenSwitchingTabs": { + "message": "切换标签时暂停播放" + }, + "autoplay": { + "message": "自动播放" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "备份与恢复" + }, + "baseOnSystemColorScheme": { + "message": "使用系统配色" + }, + "belowPlayer": { + "message": "在播放器下方" + }, + "black": { + "message": "纯黑" + }, + "blacklist": { + "message": "黑名单" + }, + "blockAll": { + "message": "拦截所有" + }, + "blockMusic": { + "message": "Block music" + }, + "blue": { + "message": "蓝色" + }, + "blueGray": { + "message": "蓝灰色" + }, + "bluelight": { + "message": "色彩柔和度" + }, + "brown": { + "message": "棕色" + }, + "browser": { + "message": "浏览器" + }, + "browserVersion": { + "message": "浏览器版本" + }, + "bubbles": { + "message": "网格" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "按钮" + }, + "cancel": { + "message": "取消" + }, + "categories": { + "message": "分类" + }, + "channel": { + "message": "频道" + }, + "channels": { + "message": "频道" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clipboard": { + "message": "粘贴板" + }, + "codecH264": { + "message": "采用 h.264 编码" + }, + "collapseOfSubscriptionSections": { + "message": "订阅区域显示展开/收起按钮" + }, + "collapsed": { + "message": "收起" + }, + "comments": { + "message": "评论" + }, + "confirmationBeforeClosing": { + "message": "页面关闭确认" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "核心" + }, + "cropChapterTitles": { + "message": "裁剪章节标题" + }, + "customCss": { + "message": "自定义CSS" + }, + "customJs": { + "message": "自定义JS" + }, + "customMiniPlayer": { + "message": "自定义迷你播放器" + }, + "cyan": { + "message": "青色" + }, + "dark": { + "message": "黑暗" + }, + "darkTheme": { + "message": "夜间模式" + }, + "dateAndTime": { + "message": "时间与日期" + }, + "dawn": { + "message": "黎明" + }, + "decreasePlaybackSpeed": { + "message": "视频减速" + }, + "decreaseVolume": { + "message": "降低音量" + }, + "deepOrange": { + "message": "深橙色" + }, + "deepPurple": { + "message": "深紫色" + }, + "default": { + "message": "默认" + }, + "defaultChannelTab": { + "message": "默认频道页" + }, + "defaultContentCountry": { + "message": "默认内容国家" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "清空 YouTube cookies" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "视频描述" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "沙漠" + }, + "details": { + "message": "细节信息" + }, + "developerOptions": { + "message": "开发者选项" + }, + "device": { + "message": "设备" + }, + "dim": { + "message": "遮罩层厚度" + }, + "disabled": { + "message": "停用" + }, + "dislike": { + "message": "踩一下" + }, + "doNotChange": { + "message": "不做改变" + }, + "donate": { + "message": "支持" + }, + "draggable": { + "message": "可拖动" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "暂无" + }, + "enabled": { + "message": "启用" + }, + "enabledForced": { + "message": "强制启用" + }, + "expanded": { + "message": "展开" + }, + "exportSettings": { + "message": "导出设置" + }, + "extension": { + "message": "扩展" + }, + "file": { + "message": "文件" + }, + "filters": { + "message": "滤镜" + }, + "fitToWindow": { + "message": "窗口自适应" + }, + "flash": { + "message": "闪光" + }, + "font": { + "message": "字体" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "底部栏" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Forced play video from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "强制设置播放速度" + }, + "forcedTheaterMode": { + "message": "强制设置剧场模式" + }, + "forcedVolume": { + "message": "强制修改音量" + }, + "foundABug": { + "message": "遇到了Bug?" + }, + "fullWindow": { + "message": "全屏" + }, + "general": { + "message": "一般设置" + }, + "geoPreference": { + "message": "地理偏好" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "转到搜索框" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "绿色" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "高清缩略图" + }, + "header": { + "message": "顶部栏" + }, + "hidden": { + "message": "隐藏" + }, + "hiddenOnVideoPage": { + "message": "在视频播放页面时隐藏" + }, + "hideAnimatedThumbnails": { + "message": "隐藏动态缩略图" + }, + "hideAnnotations": { + "message": "隐藏预览图" + }, + "hideCards": { + "message": "隐藏信息卡片" + }, + "hideCountryCode": { + "message": "隐藏国家代码" + }, + "hideDate": { + "message": "隐藏日期" + }, + "hideDetails": { + "message": "隐藏详细信息" + }, + "hideEndscreen": { + "message": "隐藏结束画面" + }, + "hideFeaturedContent": { + "message": "隐藏精选频道" + }, + "hideFooter": { + "message": "隐藏底部栏" + }, + "hideGradientBottom": { + "message": "隐藏底部渐变层" + }, + "hideMoreButton": { + "message": "隐藏 \"更多\" 按钮" + }, + "hidePlayerControlsBar": { + "message": "隐藏播放器控制栏" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls bar buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "隐藏播放列表" + }, + "hideRightButtons": { + "message": "隐藏右侧按钮" + }, + "hideSaveButton": { + "message": "隐藏 \"保存\"按钮" + }, + "hideScrollForDetails": { + "message": "隐藏 «滚动至详细信息»" + }, + "hideShareButton": { + "message": "隐藏\"共享\"按钮" + }, + "hideSkipOverlay": { + "message": "隐藏跳过叠加" + }, + "hideThumbnailOverlay": { + "message": "隐藏缩略图上的按钮" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "隐藏观看量" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "历史记录" + }, + "home": { + "message": "首页" + }, + "hover": { + "message": "悬浮" + }, + "hoverOnVideoPage": { + "message": "在视频播放页面时悬浮显示" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "投稿于多久之前" + }, + "icons": { + "message": "图标" + }, + "iconsOnly": { + "message": "仅显示图标" + }, + "importSettings": { + "message": "导入设置" + }, + "improveLogo": { + "message": "优化图标" + }, + "improvedtubeIconOnYoutube": { + "message": "在 YouTube 显示 ImprovedTube 图标" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube 语言" + }, + "improvedtubeVersion": { + "message": "ImprovedTube 版本" + }, + "increasePlaybackSpeed": { + "message": "视频加速" + }, + "increaseVolume": { + "message": "增加音量" + }, + "indigo": { + "message": "靛青色" + }, + "items": { + "message": "项目" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "语言" + }, + "legacyYoutube": { + "message": "旧版 YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "明亮" + }, + "lightBlue": { + "message": "浅蓝色" + }, + "lightGreen": { + "message": "浅绿色" + }, + "like": { + "message": "顶一下" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "顶/踩总数" + }, + "lime": { + "message": "石灰色" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "列表" + }, + "liveChat": { + "message": "实时聊天窗" + }, + "liveChatType": { + "message": "实时聊天窗类型" + }, + "location": { + "message": "地点" + }, + "loudnessNormalization": { + "message": "音量标准化" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "标记为已观看" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "混音器" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "自定义颜色" + }, + "name": { + "message": "名字" + }, + "nativeMiniPlayer": { + "message": "原版迷你播放器" + }, + "new": { + "message": "新的" + }, + "nextVideo": { + "message": "上一个视频" + }, + "night": { + "message": "夜色" + }, + "noActiveFeatures": { + "message": "没有已启用的功能" + }, + "noOpenVideoTabs": { + "message": "没有已打开的视频标签" + }, + "none": { + "message": "无" + }, + "normal": { + "message": "正常" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "旧版" + }, + "onAllVideos": { + "message": "在所有视频" + }, + "onSubscribedChannels": { + "message": "在订阅频道" + }, + "onlyActiveOnYoutube": { + "message": "仅在 YouTube 上启用" + }, + "onlyOnePlayerInstancePlaying": { + "message": "同时仅播放一个" + }, + "openPopupPlayer": { + "message": "在新窗口打开视频/播放列表" + }, + "orange": { + "message": "橙色" + }, + "os": { + "message": "操作系统" + }, + "other": { + "message": "其他" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "许可" + }, + "pictureInPicture": { + "message": "画中画" + }, + "pink": { + "message": "粉色" + }, + "plain": { + "message": "野外" + }, + "platform": { + "message": "平台" + }, + "playPause": { + "message": "播放/暂停" + }, + "playbackSpeed": { + "message": "播放速度" + }, + "player": { + "message": "播放器" + }, + "playerColor": { + "message": "播放器颜色" + }, + "playerSize": { + "message": "播放器大小" + }, + "playlist": { + "message": "播放列表" + }, + "playlists": { + "message": "稍后观看" + }, + "popupPlayer": { + "message": "弹出播放器" + }, + "position": { + "message": "位置" + }, + "pressAnyKeyOrScroll": { + "message": "按下任意键或滚动鼠标滚轴." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "按下任意键或鼠标滚轴." + }, + "previousVideo": { + "message": "下一个视频" + }, + "primaryColor": { + "message": "主色调" + }, + "purple": { + "message": "紫色" + }, + "quality": { + "message": "画质" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "给我们评价" + }, + "red": { + "message": "红色" + }, + "redDislikeButton": { + "message": "将【踩一下】设置为红色" + }, + "relatedVideos": { + "message": "相关视频" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "隐藏搜索相关结果" + }, + "repeat": { + "message": "循环" + }, + "reset": { + "message": "重置" + }, + "resetAllSettings": { + "message": "重置所有设置" + }, + "resetAllShortcuts": { + "message": "重置所有快捷键" + }, + "reverse": { + "message": "逆序" + }, + "rotate": { + "message": "旋转" + }, + "save": { + "message": "保存" + }, + "saveAs": { + "message": "另存为" + }, + "schedule": { + "message": "定时开/关" + }, + "screen": { + "message": "屏幕" + }, + "screenshot": { + "message": "截图" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "搜索" + }, + "searchBarOnly": { + "message": "仅搜索栏" + }, + "seekBackward10Seconds": { + "message": "倒退10秒" + }, + "seekForward10Seconds": { + "message": "快进10秒" + }, + "seekNextChapter": { + "message": "寻找下一章" + }, + "seekPreviousChapter": { + "message": "寻找上一章" + }, + "settings": { + "message": "ImprovedTube 设置" + }, + "settingsSuccessfullyImported": { + "message": "设置导入成功" + }, + "shortcuts": { + "message": "快捷键" + }, + "showCardsOnMouseHover": { + "message": "鼠标悬浮时显示信息卡片" + }, + "showChannelVideosCount": { + "message": "显示频道内视频数" + }, + "showLess": { + "message": "显示较少" + }, + "showMore": { + "message": "展示更多" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "随机" + }, + "sidebar": { + "message": "侧边栏" + }, + "spacebar": { + "message": "空格" + }, + "squaredUserImages": { + "message": "方形用户头像" + }, + "static": { + "message": "静态" + }, + "statsForNerds": { + "message": "显示专业信息" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "停止" + }, + "style": { + "message": "样式" + }, + "styles": { + "message": "样式" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "订阅内容" + }, + "subtitles": { + "message": "副标题" + }, + "sunset": { + "message": "晚霞" + }, + "sunsetToSunrise": { + "message": "日落到日出" + }, + "systemPeferenceDark": { + "message": "系统偏好: 深色" + }, + "systemPeferenceLight": { + "message": "系统偏好: 浅色" + }, + "teal": { + "message": "蓝绿色" + }, + "textColor": { + "message": "文字颜色" + }, + "themes": { + "message": "主题" + }, + "thisWillRemoveAllCookies": { + "message": "将清空所有 cookies." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "将清空所有 YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "将重置所有设置." + }, + "thisWillResetAllShortcuts": { + "message": "将会重置所有快捷键" + }, + "thumbnails": { + "message": "缩略图" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "开始时间" + }, + "timeTo": { + "message": "结束时间" + }, + "todayAt": { + "message": "截止今天" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "切换卡片" + }, + "toggleControls": { + "message": "Toggle controls" + }, + "topChat": { + "message": "热门聊天" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "自动播放预告片" + }, + "translations": { + "message": "翻译" + }, + "transparentBackground": { + "message": "透明背景" + }, + "trending": { + "message": "时下流行" + }, + "tryToReloadThePage": { + "message": "尝试刷新页面" + }, + "turnOff": { + "message": "关闭时间" + }, + "turnOn": { + "message": "开启时间" + }, + "type": { + "message": "类型" + }, + "upNextAutoplay": { + "message": "自动播放下一视频" + }, + "use24HourFormat": { + "message": "使用24小时制" + }, + "version": { + "message": "版本" + }, + "video": { + "message": "视频" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "扩展视频简介到分类" + }, + "videoFormats": { + "message": "视频格式" + }, + "videos": { + "message": "视频" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "音量" + }, + "watchLater": { + "message": "稍后观看" + }, + "watchTime": { + "message": "观看时间" + }, + "whenTabIsChanged": { + "message": "切换标签时" + }, + "white": { + "message": "白色" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "黄色" + }, + "youtubeHeaderLeft": { + "message": "Youtube标题(左)" + }, + "youtubeHeaderRight": { + "message": "Youtube标题(右)" + }, + "youtubeHomePage": { + "message": "YouTube默认主页" + }, + "youtubeLanguage": { + "message": "YouTube 语言" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "采用 H.264 编解码时,YouTube 会将视频画质设为 1080p" + } } \ No newline at end of file diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 81d80430b..840077aa8 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -1,989 +1,995 @@ { - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "關於" - }, - "accept": { - "message": "接受" - }, - "activate": { - "message": "啟用" - }, - "activateCaptions": { - "message": "開啟字幕" - }, - "activateFullscreen": { - "message": "開啟全螢幕" - }, - "activated": { - "message": "啟用" - }, - "activatedFeatures": { - "message": "已啟用功能" - }, - "activeFeatures": { - "message": "已啟用功能" - }, - "addScrollToTop": { - "message": "新增「回到頂部」按鈕" - }, - "ads": { - "message": "廣告" - }, - "all": { - "message": "所有" - }, - "allow": { - "message": "允許" - }, - "allow60fps": { - "message": "允許 60fps" - }, - "alwaysActive": { - "message": "始終有效" - }, - "alwaysShowProgressBar": { - "message": "一律顯示進度條" - }, - "amber": { - "message": "琥珀色" - }, - "analyzer": { - "message": "觀看紀錄" - }, - "appearance": { - "message": "外貌" - }, - "areYouSureYouWantToExportTheData": { - "message": "您確定要匯出資料嗎?" - }, - "audio": { - "message": "音頻" - }, - "audioFormats": { - "message": "音頻格式" - }, - "auto": { - "message": "自動" - }, - "autoFullscreen": { - "message": "自動全螢幕" - }, - "autopauseWhenSwitchingTabs": { - "message": "切換分頁時自動暫停" - }, - "autoplay": { - "message": "自動播放" - }, - "backgroundColor": { - "message": "背景顏色" - }, - "backgroundOpacity": { - "message": "背景透明度" - }, - "backupAndReset": { - "message": "備份 & 重置" - }, - "baseOnSystemColorScheme": { - "message": "使用系統配色方案" - }, - "belowPlayer": { - "message": "於播放器底下" - }, - "black": { - "message": "黑色" - }, - "blacklist": { - "message": "黑名單" - }, - "blockAll": { - "message": "封鎖所有" - }, - "blockMusic": { - "message": "禁止音樂" - }, - "blue": { - "message": "藍色" - }, - "blueGray": { - "message": "藍灰色" - }, - "bluelight": { - "message": "藍光" - }, - "brown": { - "message": "棕色" - }, - "browser": { - "message": "瀏覽器" - }, - "browserVersion": { - "message": "瀏覽器版本" - }, - "bubbles": { - "message": "Bubbles" - }, - "bug": { - "message": "問題" - }, - "buttons": { - "message": "按鈕" - }, - "cancel": { - "message": "取消" - }, - "categories": { - "message": "類別" - }, - "channel": { - "message": "頻道" - }, - "channels": { - "message": "頻道" - }, - "characterEdgeStyle": { - "message": "字型邊緣型式" - }, - "clipboard": { - "message": "剪貼簿" - }, - "codecH264": { - "message": "使用 H.264 解碼" - }, - "collapseOfSubscriptionSections": { - "message": "於訂閱區顯示縮放按鈕" - }, - "collapsed": { - "message": "簡縮" - }, - "comments": { - "message": "評論" - }, - "confirmationBeforeClosing": { - "message": "關閉前先確認" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "核心數" - }, - "cropChapterTitles": { - "message": "截斷章節名稱" - }, - "customCss": { - "message": "自訂 CSS" - }, - "customJs": { - "message": "自訂 JS" - }, - "customMiniPlayer": { - "message": "自訂迷你播放器" - }, - "cyan": { - "message": "青色" - }, - "dark": { - "message": "暗黑" - }, - "darkTheme": { - "message": "暗黑主題" - }, - "dateAndTime": { - "message": "日期和時間" - }, - "dawn": { - "message": "黎明" - }, - "decreasePlaybackSpeed": { - "message": "降低播放速度" - }, - "decreaseVolume": { - "message": "減輕音量" - }, - "deepOrange": { - "message": "深橙色" - }, - "deepPurple": { - "message": "深紫色" - }, - "default": { - "message": "預設" - }, - "defaultChannelTab": { - "message": "預設頻道標籤" - }, - "defaultContentCountry": { - "message": "預設國家" - }, - "deleteWatchedVideos": { - "message": "刪除已觀看的影片" - }, - "deleteYoutubeCookies": { - "message": "刪除 YouTube cookies" - }, - "depressed": { - "message": "內凹" - }, - "description": { - "message": "影片描述" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "沙漠" - }, - "details": { - "message": "細節" - }, - "developerOptions": { - "message": "開發人員選項" - }, - "device": { - "message": "裝置" - }, - "dim": { - "message": "光線暗度" - }, - "disabled": { - "message": "關閉" - }, - "dislike": { - "message": "不喜歡" - }, - "doNotChange": { - "message": "不要改變" - }, - "donate": { - "message": "捐贈" - }, - "draggable": { - "message": "可拖動" - }, - "dropShadow": { - "message": "投射陰影" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "空白" - }, - "enabled": { - "message": "啟用" - }, - "enabledForced": { - "message": "強制啟用" - }, - "expanded": { - "message": "擴展" - }, - "exportSettings": { - "message": "導出設定" - }, - "extension": { - "message": "擴充元件" - }, - "file": { - "message": "檔案" - }, - "filters": { - "message": "濾鏡" - }, - "fitToWindow": { - "message": "依視窗大小縮放" - }, - "flash": { - "message": "是否使用 Flash" - }, - "font": { - "message": "字體" - }, - "fontColor": { - "message": "字型顏色" - }, - "fontFamily": { - "message": "字型" - }, - "fontOpacity": { - "message": "字型透明度" - }, - "fontSize": { - "message": "字型大小" - }, - "footer": { - "message": "頁腳" - }, - "forceSDR": { - "message": "強制使用標準動態範圍 (SDR)" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "強制從頭播放" - }, - "forcedPlaybackSpeed": { - "message": "強制播放速度" - }, - "forcedTheaterMode": { - "message": "強制劇院模式" - }, - "forcedVolume": { - "message": "強制播放音量" - }, - "foundABug": { - "message": "遇到問題了嗎?" - }, - "fullWindow": { - "message": "全螢幕" - }, - "general": { - "message": "一般" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "轉到搜索框" - }, - "googleApiKey": { - "message": "Google API 金鑰" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "綠色" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "HD 縮圖" - }, - "header": { - "message": "標頭" - }, - "hidden": { - "message": "隱藏" - }, - "hiddenOnVideoPage": { - "message": "於影片頁面自動隱藏" - }, - "hideAnimatedThumbnails": { - "message": "隱藏動態的縮略圖" - }, - "hideAnnotations": { - "message": "隱藏註解" - }, - "hideCards": { - "message": "隱藏資訊卡" - }, - "hideCountryCode": { - "message": "隱藏國家代號" - }, - "hideDate": { - "message": "隱藏日期" - }, - "hideDetails": { - "message": "隱藏細節" - }, - "hideEndscreen": { - "message": "隱藏結束畫面" - }, - "hideFeaturedContent": { - "message": "隱藏精選影片" - }, - "hideFooter": { - "message": "隱藏頁腳" - }, - "hideGradientBottom": { - "message": "隱藏底部漸層圖層" - }, - "hideMoreButton": { - "message": "隱藏「顯示更多」按鈕" - }, - "hidePlayerControlsBar": { - "message": "隱藏播放器控制欄" - }, - "hidePlayerControlsBarButtons": { - "message": "隱藏播放列按鈕" - }, - "hidePlayerControlsBarOptions": { - "message": "隱藏播放選項" - }, - "hidePlaylist": { - "message": "隱藏播放清單" - }, - "hideRightButtons": { - "message": "隱藏右側按鈕" - }, - "hideSaveButton": { - "message": "隱藏「儲存」按鈕" - }, - "hideScrollForDetails": { - "message": "隱藏「向下捲動即可查看詳情」" - }, - "hideShareButton": { - "message": "隱藏「分享」按鈕" - }, - "hideSkipOverlay": { - "message": "隱藏「跳至區段」按鈕" - }, - "hideThumbnailOverlay": { - "message": "隱藏縮圖上的按鈕" - }, - "hideThumbnails": { - "message": "隱藏縮圖" - }, - "hideViewsCount": { - "message": "隱藏觀看次數" - }, - "hideVoiceSearchButton": { - "message": "隱藏語音搜尋按鈕" - }, - "high": { - "message": "高" - }, - "history": { - "message": "觀看記錄" - }, - "home": { - "message": "首頁" - }, - "hover": { - "message": "滑鼠暫留時顯示" - }, - "hoverOnVideoPage": { - "message": "於影片頁面滑鼠暫留時顯示" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "顯示影片上傳時間" - }, - "icons": { - "message": "圖標" - }, - "iconsOnly": { - "message": "只有圖標" - }, - "importSettings": { - "message": "導入設定" - }, - "improveLogo": { - "message": "改進 YouTube 圖示" - }, - "improvedtubeIconOnYoutube": { - "message": "於 YouTube 中顯示 ImprovedTube 圖示" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube 語言" - }, - "improvedtubeVersion": { - "message": "ImprovedTube 版本" - }, - "increasePlaybackSpeed": { - "message": "加快播放速度" - }, - "increaseVolume": { - "message": "增加音量" - }, - "indigo": { - "message": "靛青" - }, - "items": { - "message": "項目" - }, - "language": { - "message": "語言" - }, - "languages": { - "message": "語言" - }, - "legacyYoutube": { - "message": "舊版 YouTube" - }, - "library": { - "message": "影片庫" - }, - "light": { - "message": "淺色" - }, - "lightBlue": { - "message": "淺藍色" - }, - "lightGreen": { - "message": "淺綠色" - }, - "like": { - "message": "喜歡" - }, - "liked": { - "message": "Liked" - }, - "likes": { - "message": "顯示按讚數量" - }, - "lime": { - "message": "萊姆色" - }, - "limitPageWidth": { - "message": "限制頁面寬度" - }, - "list": { - "message": "清單" - }, - "liveChat": { - "message": "Live 聊天視窗" - }, - "liveChatType": { - "message": "Live 聊天視窗種類" - }, - "location": { - "message": "地區" - }, - "loudnessNormalization": { - "message": "音量標準化" - }, - "low": { - "message": "低" - }, - "markWatchedVideos": { - "message": "標記已觀看影片" - }, - "medium": { - "message": "中" - }, - "mixer": { - "message": "音量混合器" - }, - "moveSidebarLeft": { - "message": "將側邊欄移至右方" - }, - "moveThumbnailsRight": { - "message": "將預覽圖移至右方" - }, - "myColors": { - "message": "自訂主色" - }, - "name": { - "message": "名稱" - }, - "nativeMiniPlayer": { - "message": "迷你播放器" - }, - "new": { - "message": "新增" - }, - "nextVideo": { - "message": "下一個影片" - }, - "night": { - "message": "夜晚" - }, - "noActiveFeatures": { - "message": "無已啟用功能" - }, - "noOpenVideoTabs": { - "message": "無已開啟之影片頁面" - }, - "none": { - "message": "無" - }, - "normal": { - "message": "正常" - }, - "old": { - "message": "舊版" - }, - "onAllVideos": { - "message": "於所有影片中" - }, - "onSubscribedChannels": { - "message": "於已訂閱的頻道中" - }, - "onlyActiveOnYoutube": { - "message": "僅適用於 YouTube 網站" - }, - "onlyOnePlayerInstancePlaying": { - "message": "同時間僅限播放單一影片" - }, - "openPopupPlayer": { - "message": "開啟影片或播放清單於新視窗中" - }, - "orange": { - "message": "橘色" - }, - "os": { - "message": "作業系統" - }, - "other": { - "message": "其他" - }, - "outline": { - "message": "外框" - }, - "overlay": { - "message": "遮罩" - }, - "permissions": { - "message": "權限" - }, - "pictureInPicture": { - "message": "子母畫面" - }, - "pink": { - "message": "粉紅色" - }, - "plain": { - "message": "樸素" - }, - "platform": { - "message": "平台" - }, - "playPause": { - "message": "播放/暫停" - }, - "playbackSpeed": { - "message": "播放速度" - }, - "player": { - "message": "播放器" - }, - "playerColor": { - "message": "影片進度條顏色" - }, - "playerSize": { - "message": "播放器大小" - }, - "playlist": { - "message": "播放列表" - }, - "playlists": { - "message": "播放清單" - }, - "popupPlayer": { - "message": "彈出播放器" - }, - "position": { - "message": "位置" - }, - "pressAnyKeyOrScroll": { - "message": "按任意鍵或使用滑鼠滾輪。" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "按任意鍵或使用鼠標滾輪。" - }, - "previousVideo": { - "message": "回到之前的影片" - }, - "primaryColor": { - "message": "主要顏色" - }, - "purple": { - "message": "紫色" - }, - "quality": { - "message": "品質" - }, - "raised": { - "message": "浮凸" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "給我評分" - }, - "rateUs": { - "message": "評分" - }, - "red": { - "message": "紅色" - }, - "redDislikeButton": { - "message": "將「不喜歡」數量以紅色顯示" - }, - "relatedVideos": { - "message": "推薦影片" - }, - "remote": { - "message": "於電視上播放" - }, - "removeRelatedSearchResults": { - "message": "移除搜尋相關結果" - }, - "repeat": { - "message": "重複播放" - }, - "reset": { - "message": "重置" - }, - "resetAllSettings": { - "message": "重置所有設定" - }, - "resetAllShortcuts": { - "message": "重置所有快捷鍵" - }, - "reverse": { - "message": "回播" - }, - "rotate": { - "message": "旋轉影片" - }, - "save": { - "message": "儲存" - }, - "saveAs": { - "message": "另存為" - }, - "schedule": { - "message": "排程" - }, - "screen": { - "message": "螢幕" - }, - "screenshot": { - "message": "截圖" - }, - "scrollBar": { - "message": "滾動條" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "搜尋" - }, - "searchBarOnly": { - "message": "僅顯示搜尋列" - }, - "seekBackward10Seconds": { - "message": "倒退10秒" - }, - "seekForward10Seconds": { - "message": "前進10秒" - }, - "seekNextChapter": { - "message": "跳至下一章節" - }, - "seekPreviousChapter": { - "message": "跳至前一章節" - }, - "settings": { - "message": "設定" - }, - "settingsSuccessfullyImported": { - "message": "已成功匯入設定" - }, - "shortcuts": { - "message": "快捷鍵" - }, - "showCardsOnMouseHover": { - "message": "滑鼠暫留時顯示資訊卡" - }, - "showChannelVideosCount": { - "message": "顯示頻道影片數量" - }, - "showLess": { - "message": "顯示更少" - }, - "showMore": { - "message": "顯示更多" - }, - "showRemainingDuration": { - "message": "顯示影片剩餘時間" - }, - "shuffle": { - "message": "隨機播放" - }, - "sidebar": { - "message": "側邊欄" - }, - "spacebar": { - "message": "空白鍵" - }, - "squaredUserImages": { - "message": "方形用戶圖像" - }, - "static": { - "message": "靜止" - }, - "statsForNerds": { - "message": "顯示「統計資料」按鈕" - }, - "step": { - "message": "音量調整間隔" - }, - "stop": { - "message": "停止" - }, - "style": { - "message": "樣式" - }, - "styles": { - "message": "樣式" - }, - "subscribe": { - "message": "訂閱" - }, - "subscriptions": { - "message": "訂閱內容" - }, - "subtitles": { - "message": "字幕" - }, - "sunset": { - "message": "日落" - }, - "sunsetToSunrise": { - "message": "日出至入落" - }, - "systemPeferenceDark": { - "message": "系統預設: 暗黑模式" - }, - "systemPeferenceLight": { - "message": "系統預設: 白天模式" - }, - "teal": { - "message": "藍綠色" - }, - "textColor": { - "message": "文字顏色" - }, - "themes": { - "message": "主題" - }, - "thisWillRemoveAllCookies": { - "message": "這將刪除所有的 cookies。" - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "這將刪除所有 YouTube Cookies。" - }, - "thisWillResetAllSettings": { - "message": "這將重置所有設定。" - }, - "thisWillResetAllShortcuts": { - "message": "這將重置所有快捷鍵。" - }, - "thumbnails": { - "message": "縮圖" - }, - "thumbnailsQuality": { - "message": "縮圖品質" - }, - "timeFrom": { - "message": "開始時間" - }, - "timeTo": { - "message": "結束時間" - }, - "todayAt": { - "message": "自今日" - }, - "toggleAutoplay": { - "message": "切換自動播放" - }, - "toggleCards": { - "message": "啟用結束畫面" - }, - "toggleControls": { - "message": "開關播放器控制" - }, - "topChat": { - "message": "重點聊天室訊息" - }, - "trackWatchedVideos": { - "message": "追蹤已觀看的影片" - }, - "trailerAutoplay": { - "message": "預告片自動播放" - }, - "translations": { - "message": "翻譯" - }, - "transparentBackground": { - "message": "透明背景" - }, - "trending": { - "message": "發燒影片" - }, - "tryToReloadThePage": { - "message": "嘗試重新整理頁面" - }, - "type": { - "message": "種類" - }, - "upNextAutoplay": { - "message": "自動播放下一個影片" - }, - "use24HourFormat": { - "message": "使用24小時格式" - }, - "version": { - "message": "版本" - }, - "video": { - "message": "影片" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "影片敘述將自動展開以顯示影片分類名稱" - }, - "videoFormats": { - "message": "影片格式" - }, - "videos": { - "message": "影片" - }, - "viewMode": { - "message": "預設檢視模式" - }, - "volume": { - "message": "音量" - }, - "watchLater": { - "message": "稍後觀看" - }, - "watchTime": { - "message": "已觀看時間" - }, - "whenTabIsChanged": { - "message": "當分頁改變時" - }, - "white": { - "message": "白色" - }, - "windowColor": { - "message": "視窗顏色" - }, - "windowOpacity": { - "message": "視窗透明度" - }, - "yellow": { - "message": "黃色" - }, - "youtubeHeaderLeft": { - "message": "YouTube 標頭 (左)" - }, - "youtubeHeaderRight": { - "message": "YouTube 標頭 (右)" - }, - "youtubeHomePage": { - "message": "預設的 YouTube 主頁" - }, - "youtubeLanguage": { - "message": "YouTube 語言" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "使用 H.264 編碼時,YouTube 會將畫質限制為 1080p 內。" - } + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "關於" + }, + "accept": { + "message": "接受" + }, + "activate": { + "message": "啟用" + }, + "activateCaptions": { + "message": "開啟字幕" + }, + "activateFullscreen": { + "message": "開啟全螢幕" + }, + "activated": { + "message": "啟用" + }, + "activatedFeatures": { + "message": "已啟用功能" + }, + "activeFeatures": { + "message": "已啟用功能" + }, + "addScrollToTop": { + "message": "新增「回到頂部」按鈕" + }, + "ads": { + "message": "廣告" + }, + "all": { + "message": "所有" + }, + "allow": { + "message": "允許" + }, + "allow60fps": { + "message": "允許 60fps" + }, + "alwaysActive": { + "message": "始終有效" + }, + "alwaysShowProgressBar": { + "message": "一律顯示進度條" + }, + "amber": { + "message": "琥珀色" + }, + "analyzer": { + "message": "觀看紀錄" + }, + "appearance": { + "message": "外貌" + }, + "areYouSureYouWantToExportTheData": { + "message": "您確定要匯出資料嗎?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import the data?" + }, + "audio": { + "message": "音頻" + }, + "audioFormats": { + "message": "音頻格式" + }, + "auto": { + "message": "自動" + }, + "autoFullscreen": { + "message": "自動全螢幕" + }, + "autopauseWhenSwitchingTabs": { + "message": "切換分頁時自動暫停" + }, + "autoplay": { + "message": "自動播放" + }, + "backgroundColor": { + "message": "背景顏色" + }, + "backgroundOpacity": { + "message": "背景透明度" + }, + "backupAndReset": { + "message": "備份 & 重置" + }, + "baseOnSystemColorScheme": { + "message": "使用系統配色方案" + }, + "belowPlayer": { + "message": "於播放器底下" + }, + "black": { + "message": "黑色" + }, + "blacklist": { + "message": "黑名單" + }, + "blockAll": { + "message": "封鎖所有" + }, + "blockMusic": { + "message": "禁止音樂" + }, + "blue": { + "message": "藍色" + }, + "blueGray": { + "message": "藍灰色" + }, + "bluelight": { + "message": "藍光" + }, + "brown": { + "message": "棕色" + }, + "browser": { + "message": "瀏覽器" + }, + "browserVersion": { + "message": "瀏覽器版本" + }, + "bubbles": { + "message": "Bubbles" + }, + "bug": { + "message": "問題" + }, + "buttons": { + "message": "按鈕" + }, + "cancel": { + "message": "取消" + }, + "categories": { + "message": "類別" + }, + "channel": { + "message": "頻道" + }, + "channels": { + "message": "頻道" + }, + "characterEdgeStyle": { + "message": "字型邊緣型式" + }, + "clipboard": { + "message": "剪貼簿" + }, + "codecH264": { + "message": "使用 H.264 解碼" + }, + "collapseOfSubscriptionSections": { + "message": "於訂閱區顯示縮放按鈕" + }, + "collapsed": { + "message": "簡縮" + }, + "comments": { + "message": "評論" + }, + "confirmationBeforeClosing": { + "message": "關閉前先確認" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "核心數" + }, + "cropChapterTitles": { + "message": "截斷章節名稱" + }, + "customCss": { + "message": "自訂 CSS" + }, + "customJs": { + "message": "自訂 JS" + }, + "customMiniPlayer": { + "message": "自訂迷你播放器" + }, + "cyan": { + "message": "青色" + }, + "dark": { + "message": "暗黑" + }, + "darkTheme": { + "message": "暗黑主題" + }, + "dateAndTime": { + "message": "日期和時間" + }, + "dawn": { + "message": "黎明" + }, + "decreasePlaybackSpeed": { + "message": "降低播放速度" + }, + "decreaseVolume": { + "message": "減輕音量" + }, + "deepOrange": { + "message": "深橙色" + }, + "deepPurple": { + "message": "深紫色" + }, + "default": { + "message": "預設" + }, + "defaultChannelTab": { + "message": "預設頻道標籤" + }, + "defaultContentCountry": { + "message": "預設國家" + }, + "deleteWatchedVideos": { + "message": "刪除已觀看的影片" + }, + "deleteYoutubeCookies": { + "message": "刪除 YouTube cookies" + }, + "depressed": { + "message": "內凹" + }, + "description": { + "message": "影片描述" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "沙漠" + }, + "details": { + "message": "細節" + }, + "developerOptions": { + "message": "開發人員選項" + }, + "device": { + "message": "裝置" + }, + "dim": { + "message": "光線暗度" + }, + "disabled": { + "message": "關閉" + }, + "dislike": { + "message": "不喜歡" + }, + "doNotChange": { + "message": "不要改變" + }, + "donate": { + "message": "捐贈" + }, + "draggable": { + "message": "可拖動" + }, + "dropShadow": { + "message": "投射陰影" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "空白" + }, + "enabled": { + "message": "啟用" + }, + "enabledForced": { + "message": "強制啟用" + }, + "expanded": { + "message": "擴展" + }, + "exportSettings": { + "message": "導出設定" + }, + "extension": { + "message": "擴充元件" + }, + "file": { + "message": "檔案" + }, + "filters": { + "message": "濾鏡" + }, + "fitToWindow": { + "message": "依視窗大小縮放" + }, + "flash": { + "message": "是否使用 Flash" + }, + "font": { + "message": "字體" + }, + "fontColor": { + "message": "字型顏色" + }, + "fontFamily": { + "message": "字型" + }, + "fontOpacity": { + "message": "字型透明度" + }, + "fontSize": { + "message": "字型大小" + }, + "footer": { + "message": "頁腳" + }, + "forceSDR": { + "message": "強制使用標準動態範圍 (SDR)" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "強制從頭播放" + }, + "forcedPlaybackSpeed": { + "message": "強制播放速度" + }, + "forcedTheaterMode": { + "message": "強制劇院模式" + }, + "forcedVolume": { + "message": "強制播放音量" + }, + "foundABug": { + "message": "遇到問題了嗎?" + }, + "fullWindow": { + "message": "全螢幕" + }, + "general": { + "message": "一般" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "轉到搜索框" + }, + "googleApiKey": { + "message": "Google API 金鑰" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "綠色" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD 縮圖" + }, + "header": { + "message": "標頭" + }, + "hidden": { + "message": "隱藏" + }, + "hiddenOnVideoPage": { + "message": "於影片頁面自動隱藏" + }, + "hideAnimatedThumbnails": { + "message": "隱藏動態的縮略圖" + }, + "hideAnnotations": { + "message": "隱藏註解" + }, + "hideCards": { + "message": "隱藏資訊卡" + }, + "hideCountryCode": { + "message": "隱藏國家代號" + }, + "hideDate": { + "message": "隱藏日期" + }, + "hideDetails": { + "message": "隱藏細節" + }, + "hideEndscreen": { + "message": "隱藏結束畫面" + }, + "hideFeaturedContent": { + "message": "隱藏精選影片" + }, + "hideFooter": { + "message": "隱藏頁腳" + }, + "hideGradientBottom": { + "message": "隱藏底部漸層圖層" + }, + "hideMoreButton": { + "message": "隱藏「顯示更多」按鈕" + }, + "hidePlayerControlsBar": { + "message": "隱藏播放器控制欄" + }, + "hidePlayerControlsBarButtons": { + "message": "隱藏播放列按鈕" + }, + "hidePlayerControlsBarOptions": { + "message": "隱藏播放選項" + }, + "hidePlaylist": { + "message": "隱藏播放清單" + }, + "hideRightButtons": { + "message": "隱藏右側按鈕" + }, + "hideSaveButton": { + "message": "隱藏「儲存」按鈕" + }, + "hideScrollForDetails": { + "message": "隱藏「向下捲動即可查看詳情」" + }, + "hideShareButton": { + "message": "隱藏「分享」按鈕" + }, + "hideSkipOverlay": { + "message": "隱藏「跳至區段」按鈕" + }, + "hideThumbnailOverlay": { + "message": "隱藏縮圖上的按鈕" + }, + "hideThumbnails": { + "message": "隱藏縮圖" + }, + "hideViewsCount": { + "message": "隱藏觀看次數" + }, + "hideVoiceSearchButton": { + "message": "隱藏語音搜尋按鈕" + }, + "high": { + "message": "高" + }, + "history": { + "message": "觀看記錄" + }, + "home": { + "message": "首頁" + }, + "hover": { + "message": "滑鼠暫留時顯示" + }, + "hoverOnVideoPage": { + "message": "於影片頁面滑鼠暫留時顯示" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "顯示影片上傳時間" + }, + "icons": { + "message": "圖標" + }, + "iconsOnly": { + "message": "只有圖標" + }, + "importSettings": { + "message": "導入設定" + }, + "improveLogo": { + "message": "改進 YouTube 圖示" + }, + "improvedtubeIconOnYoutube": { + "message": "於 YouTube 中顯示 ImprovedTube 圖示" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube 語言" + }, + "improvedtubeVersion": { + "message": "ImprovedTube 版本" + }, + "increasePlaybackSpeed": { + "message": "加快播放速度" + }, + "increaseVolume": { + "message": "增加音量" + }, + "indigo": { + "message": "靛青" + }, + "items": { + "message": "項目" + }, + "language": { + "message": "語言" + }, + "languages": { + "message": "語言" + }, + "legacyYoutube": { + "message": "舊版 YouTube" + }, + "library": { + "message": "影片庫" + }, + "light": { + "message": "淺色" + }, + "lightBlue": { + "message": "淺藍色" + }, + "lightGreen": { + "message": "淺綠色" + }, + "like": { + "message": "喜歡" + }, + "liked": { + "message": "Liked" + }, + "likes": { + "message": "顯示按讚數量" + }, + "lime": { + "message": "萊姆色" + }, + "limitPageWidth": { + "message": "限制頁面寬度" + }, + "list": { + "message": "清單" + }, + "liveChat": { + "message": "Live 聊天視窗" + }, + "liveChatType": { + "message": "Live 聊天視窗種類" + }, + "location": { + "message": "地區" + }, + "loudnessNormalization": { + "message": "音量標準化" + }, + "low": { + "message": "低" + }, + "markWatchedVideos": { + "message": "標記已觀看影片" + }, + "medium": { + "message": "中" + }, + "mixer": { + "message": "音量混合器" + }, + "moveSidebarLeft": { + "message": "將側邊欄移至右方" + }, + "moveThumbnailsRight": { + "message": "將預覽圖移至右方" + }, + "myColors": { + "message": "自訂主色" + }, + "name": { + "message": "名稱" + }, + "nativeMiniPlayer": { + "message": "迷你播放器" + }, + "new": { + "message": "新增" + }, + "nextVideo": { + "message": "下一個影片" + }, + "night": { + "message": "夜晚" + }, + "noActiveFeatures": { + "message": "無已啟用功能" + }, + "noOpenVideoTabs": { + "message": "無已開啟之影片頁面" + }, + "none": { + "message": "無" + }, + "normal": { + "message": "正常" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "舊版" + }, + "onAllVideos": { + "message": "於所有影片中" + }, + "onSubscribedChannels": { + "message": "於已訂閱的頻道中" + }, + "onlyActiveOnYoutube": { + "message": "僅適用於 YouTube 網站" + }, + "onlyOnePlayerInstancePlaying": { + "message": "同時間僅限播放單一影片" + }, + "openPopupPlayer": { + "message": "開啟影片或播放清單於新視窗中" + }, + "orange": { + "message": "橘色" + }, + "os": { + "message": "作業系統" + }, + "other": { + "message": "其他" + }, + "outline": { + "message": "外框" + }, + "overlay": { + "message": "遮罩" + }, + "permissions": { + "message": "權限" + }, + "pictureInPicture": { + "message": "子母畫面" + }, + "pink": { + "message": "粉紅色" + }, + "plain": { + "message": "樸素" + }, + "platform": { + "message": "平台" + }, + "playPause": { + "message": "播放/暫停" + }, + "playbackSpeed": { + "message": "播放速度" + }, + "player": { + "message": "播放器" + }, + "playerColor": { + "message": "影片進度條顏色" + }, + "playerSize": { + "message": "播放器大小" + }, + "playlist": { + "message": "播放列表" + }, + "playlists": { + "message": "播放清單" + }, + "popupPlayer": { + "message": "彈出播放器" + }, + "position": { + "message": "位置" + }, + "pressAnyKeyOrScroll": { + "message": "按任意鍵或使用滑鼠滾輪。" + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "按任意鍵或使用鼠標滾輪。" + }, + "previousVideo": { + "message": "回到之前的影片" + }, + "primaryColor": { + "message": "主要顏色" + }, + "purple": { + "message": "紫色" + }, + "quality": { + "message": "品質" + }, + "raised": { + "message": "浮凸" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "給我評分" + }, + "rateUs": { + "message": "評分" + }, + "red": { + "message": "紅色" + }, + "redDislikeButton": { + "message": "將「不喜歡」數量以紅色顯示" + }, + "relatedVideos": { + "message": "推薦影片" + }, + "remote": { + "message": "於電視上播放" + }, + "removeRelatedSearchResults": { + "message": "移除搜尋相關結果" + }, + "repeat": { + "message": "重複播放" + }, + "reset": { + "message": "重置" + }, + "resetAllSettings": { + "message": "重置所有設定" + }, + "resetAllShortcuts": { + "message": "重置所有快捷鍵" + }, + "reverse": { + "message": "回播" + }, + "rotate": { + "message": "旋轉影片" + }, + "save": { + "message": "儲存" + }, + "saveAs": { + "message": "另存為" + }, + "schedule": { + "message": "排程" + }, + "screen": { + "message": "螢幕" + }, + "screenshot": { + "message": "截圖" + }, + "scrollBar": { + "message": "滾動條" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "搜尋" + }, + "searchBarOnly": { + "message": "僅顯示搜尋列" + }, + "seekBackward10Seconds": { + "message": "倒退10秒" + }, + "seekForward10Seconds": { + "message": "前進10秒" + }, + "seekNextChapter": { + "message": "跳至下一章節" + }, + "seekPreviousChapter": { + "message": "跳至前一章節" + }, + "settings": { + "message": "設定" + }, + "settingsSuccessfullyImported": { + "message": "已成功匯入設定" + }, + "shortcuts": { + "message": "快捷鍵" + }, + "showCardsOnMouseHover": { + "message": "滑鼠暫留時顯示資訊卡" + }, + "showChannelVideosCount": { + "message": "顯示頻道影片數量" + }, + "showLess": { + "message": "顯示更少" + }, + "showMore": { + "message": "顯示更多" + }, + "showRemainingDuration": { + "message": "顯示影片剩餘時間" + }, + "shuffle": { + "message": "隨機播放" + }, + "sidebar": { + "message": "側邊欄" + }, + "spacebar": { + "message": "空白鍵" + }, + "squaredUserImages": { + "message": "方形用戶圖像" + }, + "static": { + "message": "靜止" + }, + "statsForNerds": { + "message": "顯示「統計資料」按鈕" + }, + "step": { + "message": "音量調整間隔" + }, + "stop": { + "message": "停止" + }, + "style": { + "message": "樣式" + }, + "styles": { + "message": "樣式" + }, + "subscribe": { + "message": "訂閱" + }, + "subscriptions": { + "message": "訂閱內容" + }, + "subtitles": { + "message": "字幕" + }, + "sunset": { + "message": "日落" + }, + "sunsetToSunrise": { + "message": "日出至入落" + }, + "systemPeferenceDark": { + "message": "系統預設: 暗黑模式" + }, + "systemPeferenceLight": { + "message": "系統預設: 白天模式" + }, + "teal": { + "message": "藍綠色" + }, + "textColor": { + "message": "文字顏色" + }, + "themes": { + "message": "主題" + }, + "thisWillRemoveAllCookies": { + "message": "這將刪除所有的 cookies。" + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "這將刪除所有 YouTube Cookies。" + }, + "thisWillResetAllSettings": { + "message": "這將重置所有設定。" + }, + "thisWillResetAllShortcuts": { + "message": "這將重置所有快捷鍵。" + }, + "thumbnails": { + "message": "縮圖" + }, + "thumbnailsQuality": { + "message": "縮圖品質" + }, + "timeFrom": { + "message": "開始時間" + }, + "timeTo": { + "message": "結束時間" + }, + "todayAt": { + "message": "自今日" + }, + "toggleAutoplay": { + "message": "切換自動播放" + }, + "toggleCards": { + "message": "啟用結束畫面" + }, + "toggleControls": { + "message": "開關播放器控制" + }, + "topChat": { + "message": "重點聊天室訊息" + }, + "trackWatchedVideos": { + "message": "追蹤已觀看的影片" + }, + "trailerAutoplay": { + "message": "預告片自動播放" + }, + "translations": { + "message": "翻譯" + }, + "transparentBackground": { + "message": "透明背景" + }, + "trending": { + "message": "發燒影片" + }, + "tryToReloadThePage": { + "message": "嘗試重新整理頁面" + }, + "type": { + "message": "種類" + }, + "upNextAutoplay": { + "message": "自動播放下一個影片" + }, + "use24HourFormat": { + "message": "使用24小時格式" + }, + "version": { + "message": "版本" + }, + "video": { + "message": "影片" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "影片敘述將自動展開以顯示影片分類名稱" + }, + "videoFormats": { + "message": "影片格式" + }, + "videos": { + "message": "影片" + }, + "viewMode": { + "message": "預設檢視模式" + }, + "volume": { + "message": "音量" + }, + "watchLater": { + "message": "稍後觀看" + }, + "watchTime": { + "message": "已觀看時間" + }, + "whenTabIsChanged": { + "message": "當分頁改變時" + }, + "white": { + "message": "白色" + }, + "windowColor": { + "message": "視窗顏色" + }, + "windowOpacity": { + "message": "視窗透明度" + }, + "yellow": { + "message": "黃色" + }, + "youtubeHeaderLeft": { + "message": "YouTube 標頭 (左)" + }, + "youtubeHeaderRight": { + "message": "YouTube 標頭 (右)" + }, + "youtubeHomePage": { + "message": "預設的 YouTube 主頁" + }, + "youtubeLanguage": { + "message": "YouTube 語言" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "使用 H.264 編碼時,YouTube 會將畫質限制為 1080p 內。" + } } \ No newline at end of file diff --git a/background.js b/background.js index daad366e0..2cacdf4f8 100644 --- a/background.js +++ b/background.js @@ -6,6 +6,7 @@ # Localization # Context menu # Tab focus/blur +# Migration # Initialization # Get items from storage # Storage change listener @@ -184,6 +185,19 @@ chrome.windows.onFocusChanged.addListener(function (windowId) { }); +/*-------------------------------------------------------------- +# MIGRATION +--------------------------------------------------------------*/ + +function migration(items) { + if (items.hd_thumbnails === true) { + items.thumbnails_quality = 'maxresdefault'; + } + + delete items.hd_thumbnails; +} + + /*-------------------------------------------------------------- # INITIALIZATION --------------------------------------------------------------*/ @@ -195,6 +209,7 @@ chrome.windows.onFocusChanged.addListener(function (windowId) { chrome.storage.local.get(function (items) { //googleAnalytics(items.ga); //uninstallURL(); + migration(items); getLocalization(items.language, function (locale) { updateContextMenu(locale); diff --git a/manifest.json b/manifest.json index 761d59fa4..86a29e2b2 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.651", + "version": "3.712", "default_locale": "en", "icons": { "128": "icons/128.png", diff --git a/popup.css b/popup.css index de9b0085a..fd47461c0 100644 --- a/popup.css +++ b/popup.css @@ -28,18 +28,6 @@ body { body[theme=dark] { --satus-primary: #ff4158; - --satus-header-background: #1c2027; - --satus-header-text: #b5b5b5; - --satus-layers-background: #121316; - --satus-layers-text: #bfbfbf; - --satus-section-card-background: #191b1f; - --satus-modal-background: #191b1f; - --satus-modal-text: #b5b5b5; - --satus-hover: rgba(255, 255, 255, .07); - --it-category-background: linear-gradient(135deg, #ff4158, #ff001f); - --it-category-shadow: rgba(222, 0, 27, .7); - --it-appearance-shadow-color: #393e46; - --satus-switch-track: #ccc; } body[theme=night] { @@ -124,16 +112,6 @@ body[theme=plain] { body[theme=black] { --satus-primary: #ff4158; - --satus-header-background: #222; - --satus-header-text: #fafafa; - --satus-layers-background: #111; - --satus-layers-text: #eee; - --satus-section-card-background: #222; - --satus-modal-background: #222; - --satus-modal-text: #fafafa; - --satus-hover: rgba(255, 255, 255, .04); - --it-appearance-shadow-color: #222; - --satus-switch-track: #ccc; } body { @@ -195,6 +173,14 @@ body { flex: 1; } +body[title_version='true'] .satus-span--title::after +{ + font: 700 10px sans-serif; + margin: 0 0 0 4px; + content: attr(data-version); + opacity: .6 +} + .satus-input--search[type=text] { position: absolute; z-index: 1; @@ -326,13 +312,28 @@ body { # MAIN --------------------------------------------------------------*/ -.satus-section--home { - position: relative; +body:not([improvedtube_home='list']) .satus-section--home { + position: absolute; overflow: hidden; width: 100%; + left: 0; +} + +body[improvedtube_home='list'] .satus-section--home { + flex-direction: column; + box-sizing: border-box; + width: 100%; + max-width: 900px; + margin: 8px auto; + padding: 8px 0; + color: var(--satus-section-card-text); + border: 1px solid rgba(0, 0, 0, .1); + border-radius: 8px; + background: var(--satus-section-card-background); + justify-content: stretch; } -.satus-section--home .satus-button { +body:not([improvedtube_home='list']) .satus-section--home .satus-button { display: flex; flex-direction: column; width: calc(100% / 3); @@ -343,15 +344,26 @@ body { align-items: center; } -body[page] .satus-section--home .satus-button { +body[improvedtube_home='list'] .satus-section--home>.satus-button { + width: 100%; + padding: 0 16px; +} + +body[improvedtube_home='list'] .satus-section--home>.satus-button>span>svg { + width: 20px; + margin: 2px 16px 0 0; + color: var(--satus-primary); +} + +body:not([improvedtube_home='list'])[page] .satus-section--home .satus-button { width: 96px; } -.satus-section--home .satus-button:hover { +body:not([improvedtube_home='list']) .satus-section--home .satus-button:hover { background: transparent; } -.satus-section--home .satus-button> :nth-child(1) { +body:not([improvedtube_home='list']) .satus-section--home .satus-button> :nth-child(1) { display: block; overflow: visible; width: 28px; @@ -365,13 +377,13 @@ body[page] .satus-section--home .satus-button { box-shadow: 0 2px 1px 1px rgb(222, 0, 27, .7), 0 3px 5px rgb(0, 0, 0, .35); } -.satus-section--home .satus-button:hover> :nth-child(1) { +body:not([improvedtube_home='list']) .satus-section--home .satus-button:hover> :nth-child(1) { transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; transform: translateY(4px) scale(.975); box-shadow: 0 1px 1px 0 rgb(222, 0, 27, .7), 0 1px 2px rgba(0, 0, 0, .35); } -.satus-section--home .satus-button> :nth-child(2) { +body:not([improvedtube_home='list']) .satus-section--home .satus-button> :nth-child(2) { overflow: hidden; width: calc(100% - 16px); margin: 8px 0 0; @@ -380,46 +392,58 @@ body[page] .satus-section--home .satus-button { text-overflow: ellipsis; } -.satus-button--general svg { +body:not([improvedtube_home='list']) .satus-button--general svg { position: relative; } -.satus-button--appearance svg { +body:not([improvedtube_home='list']) .satus-button--appearance svg { position: relative; top: 1px; left: 1px; } -.satus-button--themes svg { +body:not([improvedtube_home='list']) .satus-button--themes svg { position: relative; } -.satus-button--player svg { +body:not([improvedtube_home='list']) .satus-button--player svg { position: relative; top: 1px; left: 2px; } -.satus-button--playlist svg { +body:not([improvedtube_home='list']) .satus-button--playlist svg { position: relative; top: 1px; } -.satus-button--shortcuts svg { +body:not([improvedtube_home='list']) .satus-button--shortcuts svg { position: relative; top: 1px; } -.satus-button--blacklist svg { +body:not([improvedtube_home='list']) .satus-button--blacklist svg { position: relative; top: 1px; } -.satus-button--analyzer svg { +body:not([improvedtube_home='list']) .satus-button--analyzer svg { position: relative; top: 1px; } +body[it_general='false'] .satus-button--general, +body[it_appearance='false'] .satus-button--appearance, +body[it_themes='false'] .satus-button--themes, +body[it_player='false'] .satus-button--player, +body[it_playlist='false'] .satus-button--playlist, +body[it_channel='false'] .satus-button--channel, +body[it_shortcuts='false'] .satus-button--shortcuts, +body[it_blacklist='false'] .satus-button--blacklist, +body[it_analyzer='false'] .satus-button--analyzer { + display: none; +} + /*-------------------------------------------------------------- # APPEARANCE diff --git a/popup.js b/popup.js index 3424e262e..d290adf7e 100644 --- a/popup.js +++ b/popup.js @@ -31,7 +31,6 @@ var skeleton = { on: { click: 'layers.back' }, - pluviam: true, svg: { component: 'svg', @@ -50,7 +49,10 @@ var skeleton = { }, title: { component: 'span', - variant: 'title' + variant: 'title', + data: { + version: chrome.runtime.getManifest().version + } } }, section_end: { @@ -120,7 +122,11 @@ var skeleton = { parent = parent.parent; } - var category = parent.parent.label.text; + var category = ''; + + if (parent.parent && parent.parent.label && parent.parent.label.text) { + category = parent.parent.label.text; + } parent = result; @@ -252,7 +258,6 @@ var skeleton = { this.base.skeleton.header.section_end.search_field.rendered.focus(); } }, - pluviam: true, svg: { component: 'svg', @@ -2617,7 +2622,6 @@ var skeleton = { } } }, - pluviam: true, svg: { component: 'svg', @@ -5038,6 +5042,11 @@ var skeleton = { } } } + }, + reset_playback_speed: { + component: 'shortcut', + text: 'reset', + storage: 'shortcut_reset_playback_speed' } } } @@ -5669,165 +5678,174 @@ var skeleton = { }; -/*-------------------------------------------------------------- -# INITIALIZATION ---------------------------------------------------------------*/ +function exportData() { + if (location.href.indexOf('action=export') !== -1) { + var blob; -satus.parents(skeleton, true); + try { + blob = new Blob([JSON.stringify(satus.storage.data)], { + type: 'application/json;charset=utf-8' + }); + } catch (error) { + return modalError(error); + } -satus.storage.attributes = { - theme: true -}; + satus.render({ + component: 'modal', -satus.storage.import(function (items) { - var language = items.language || window.navigator.language; + label: { + component: 'span', + text: 'areYouSureYouWantToExportTheData' + }, + actions: { + component: 'section', + variant: 'actions', + + ok: { + component: 'button', + text: 'ok', + on: { + click: function () { + try { + chrome.permissions.request({ + permissions: ['downloads'] + }, function (granted) { + if (granted) { + chrome.downloads.download({ + url: URL.createObjectURL(blob), + filename: 'improvedtube.json', + saveAs: true + }, function () { + setTimeout(function () { + close(); + }, 1000); + }); + } + }); + } catch (error) { + return modalError(error); + } - if (language.indexOf('en') === 0) { - language = 'en'; + this.parentNode.parentNode.parentNode.close(); + } + } + }, + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.parentNode.parentNode.parentNode.close(); + } + } + } + } + }); } +} - if (document.documentElement.hasAttribute('page')) { - chrome.runtime.sendMessage({ - name: 'get-localization', - code: language - }, function (response) { - satus.locale.strings = response; +function importData() { + if (location.href.indexOf('action=import') !== -1) { + satus.render({ + component: 'modal', - satus.render(skeleton); - }); - } else { - satus.ajax('_locales/' + language + '/messages.json', function (response) { - try { - response = JSON.parse(response); + label: { + component: 'span', + text: 'areYouSureYouWantToImportTheData' + }, + actions: { + component: 'section', + variant: 'actions', - for (var key in response) { - satus.locale.strings[key] = response[key].message; - } - } catch (error) { - console.error(error); - } + ok: { + component: 'button', + text: 'ok', + on: { + click: function () { + var input = document.createElement('input'); - satus.render(skeleton); + input.type = 'file'; - if (location.href.indexOf('action=import') !== -1) { - satus.render({ - component: 'modal', + input.addEventListener('change', function () { + var file_reader = new FileReader(); - label: { - component: 'span', - text: 'areYouSureYouWantToImportTheData' - }, - actions: { - component: 'section', - variant: 'actions', + file_reader.onload = function () { + var data = JSON.parse(this.result); - ok: { - component: 'button', - text: 'ok', - on: { - click: function () { - var input = document.createElement('input'); + for (var key in data) { + satus.storage.set(key, data[key]); + } - input.type = 'file'; + close(); + }; - input.addEventListener('change', function () { - var file_reader = new FileReader(); + file_reader.readAsText(this.files[0]); + }); - file_reader.onload = function () { - var data = JSON.parse(this.result); + input.click(); - for (var key in data) { - satus.storage.set(key, data[key]); - } + this.parentNode.parentNode.parentNode.close(); + } + } + }, + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.parentNode.parentNode.parentNode.close(); + } + } + } + } + }); + } +} - close(); - }; - file_reader.readAsText(this.files[0]); - }); +/*-------------------------------------------------------------- +# INITIALIZATION +--------------------------------------------------------------*/ - input.click(); +satus.parents(skeleton, false); - this.parentNode.parentNode.parentNode.close(); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.parentNode.parentNode.parentNode.close(); - } - } - } - } - }); - } else if (location.href.indexOf('action=export') !== -1) { - var blob; +satus.storage.attributes = { + theme: true, + improvedtube_home: true, + title_version: true, + it_general: true, + it_appearance: true, + it_themes: true, + it_player: true, + it_playlist: true, + it_channel: true, + it_shortcuts: true, + it_blacklist: true, + it_analyzer: true +}; - try { - blob = new Blob([JSON.stringify(satus.storage.data)], { - type: 'application/json;charset=utf-8' - }); - } catch (error) { - return modalError(error); - } +satus.storage.import(function (items) { + if (document.documentElement.hasAttribute('page')) { + var language = items.language || window.navigator.language; - satus.render({ - component: 'modal', + if (language.indexOf('en') === 0) { + language = 'en'; + } - label: { - component: 'span', - text: 'areYouSureYouWantToExportTheData' - }, - actions: { - component: 'section', - variant: 'actions', + chrome.runtime.sendMessage({ + name: 'get-localization', + code: language + }, function (response) { + satus.locale.strings = response; - ok: { - component: 'button', - text: 'ok', - on: { - click: function () { - try { - chrome.permissions.request({ - permissions: ['downloads'] - }, function (granted) { - if (granted) { - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: 'improvedtube.json', - saveAs: true - }, function () { - setTimeout(function () { - close(); - }, 1000); - }); - } - }); - } catch (error) { - return modalError(error); - } + satus.render(skeleton); + }); + } else { + satus.locale.import(items.language, '../_locales/', function () { + satus.render(skeleton); - this.parentNode.parentNode.parentNode.close(); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.parentNode.parentNode.parentNode.close(); - } - } - } - } - }); - } - }, function (success) { - satus.ajax('_locales/en/messages.json', success); + exportData(); + importData(); }); } }); \ No newline at end of file diff --git a/satus.css b/satus.css index e374bbe45..b5315942a 100644 --- a/satus.css +++ b/satus.css @@ -1 +1 @@ -body{--satus-primary:#f6b465;--satus-switch-background:rgba(0,0,0,.08);--satus-header-background:#fff;--satus-header-text:#848471;--satus-layers-background:#f6f6f4;--satus-layers-text:#848471;--satus-section-card-background:#fff;--satus-modal-background:#f6f6f4;--satus-modal-text:#848471;--satus-hover:rgba(0, 0, 0, .04);--satus-text-field--background:#333347;--satus-text-field--text:#c4c4d4;--satus-switch-track:#b8b8b8;--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#fff;--satus-tabs:#fff;--satus-tooltip:rgba(0,0,0,.4)}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:0;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:22px;height:22px;border:2px solid rgba(0,0,0,.16);border-radius:50%;background:#fff}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{padding-top:0}.satus-color-picker__palette{position:relative;overflow:hidden;width:100%;height:256px;background-color:red}.satus-color-picker__palette:before{position:absolute;top:0;left:0;width:100%;height:100%;content:'';background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,transparent)}.satus-color-picker__cursor{position:absolute;width:5px;height:5px;transform:translate(-50%,-50%);pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000}.satus-modal--color-picker .satus-modal__surface .satus-section--color{margin:8px 16px 0;align-items:center}.satus-color-picker__color{width:32px;height:32px;margin:0 16px 0 0;border:2px solid rgba(0,0,0,.16);border-radius:50%;background:red}.satus-slider.satus-color-picker__hue{padding:0;flex:1}.satus-color-picker__hue .satus-slider__track{height:16px;border-radius:4px;background-image:linear-gradient(90deg,red,#ff2a00,#f50,#ff7f00,#fa0,#ffd400,#ff0,#d4ff00,#af0,#80ff00,#5f0,#2bff00,#0f0,#00ff2b,#0f5,#00ff80,#0fa,#00ffd5,#0ff,#00d4ff,#0af,#007fff,#05f,#002bff,#00f,#2a00ff,#50f,#7f00ff,#a0f,#d400ff,#f0f,#ff00d4,#f0a,#ff0080,#f05,#ff002b,red)}.satus-color-picker__hue .satus-slider__handle{width:16px;height:16px;background:#fff;box-shadow:0 0 4px rgb(0,0,0,.64)}.satus-color-picker__hue .satus-slider__handle:focus::after,.satus-color-picker__hue .satus-slider__track-fill,.satus-color-picker__hue::before{display:none}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background);overflow-y:auto;box-sizing:border-box}.satus-tabs{position:relative;display:flex;overflow:hidden;box-sizing:border-box;border-radius:4px;background:#e8e8e3;border:2px solid #e8e8e3;height:26px}.satus-tabs__selection{position:absolute;z-index:0;left:0;width:50%;height:100%;transition:left .25s;border-radius:4px;background:#fff}.satus-tabs__button{background:0 0;border:none;font-family:inherit;font-weight:500;font-size:12px;color:inherit;height:100%;flex:1;text-transform:uppercase;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;position:relative;z-index:1;padding:0 16px}.satus-tabs__button:hover{cursor:pointer}.satus-menubar,.satus-menubar ul{margin:0;padding:0;list-style:none;background:var(--satus-menubar-background);color:var(--satus-menubar-text)}.satus-menubar li>.satus-button{height:32px;font-size:14px}.satus-menubar>li>ul{display:none;position:absolute}.satus-menubar>li>:focus+ul,.satus-menubar>li>ul:hover{display:block}.satus-button{font:inherit;position:relative;overflow:hidden;height:48px;margin:0;padding:8px;color:var(--satus-button-text,inherit);border:none;background:var(--satus-button-background,transparent);appearance:none;text-align:left}.satus-button:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-button>*{pointer-events:none}.satus-header .satus-button{width:40px;min-width:40px;height:40px;padding:8px;color:inherit;border-radius:50%}.satus-header .satus-section--align-start>*{margin-right:8px}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;min-height:48px}.satus-list__item>:last-child{text-align:right}.satus-section{display:flex;box-sizing:border-box;flex-wrap:wrap}.satus-section--align-start{align-items:center;justify-content:flex-start}.satus-section--align-end{align-items:center;justify-content:flex-end}.satus-section--space-between{align-items:center;justify-content:space-between}.satus-section--column{flex-direction:column}.satus-section--card{flex-direction:column;box-sizing:border-box;max-width:900px;width:100%;margin:8px auto;padding:8px 0;color:var(--satus-section-card-text);border:1px solid rgba(0,0,0,.1);border-radius:8px;background:var(--satus-section-card-background)}.satus-section--card>*{box-sizing:border-box;width:100%;min-height:48px;padding:0 16px;text-align:left}.satus-section--card>.satus-radio,.satus-section--card>.satus-select,.satus-section--card>.satus-switch{display:flex;justify-content:space-between;align-items:center}.satus-section--card>.satus-button:hover,.satus-section--card>.satus-radio:hover,.satus-section--card>.satus-select:hover,.satus-section--card>.satus-slider:hover,.satus-section--card>.satus-switch:hover{background-color:var(--satus-hover)}.satus-section--card>.satus-button{display:flex;padding:0 16px;align-items:center}.satus-section--card>.satus-button>svg{width:20px;margin:2px 16px 0 0;color:var(--satus-primary)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3)}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.16);backdrop-filter:blur(8px)}.satus-modal__surface{display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;margin:0 16px;padding:12px 16px;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-text);border-radius:6px;background-color:var(--satus-modal-background);box-shadow:inset 0 -1px 1px 1px rgb(0,0,0,.1),0 2px 6px rgb(0,0,0,.15)}.satus-modal__surface .satus-section--actions{display:flex;width:100%;padding:0;justify-content:flex-end;align-items:center;margin:8px 0 0}.satus-modal__surface .satus-section--actions .satus-button{height:32px;margin-left:8px;padding:0 8px;border-radius:4px;font-weight:500;color:var(--satus-primary);letter-spacing:.5px}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}.satus-modal--vertical .satus-modal__surface{position:absolute;top:8px;right:8px;left:auto;min-width:200px;max-width:200px;padding:8px 0;margin:0;transform-origin:right top}.satus-modal--vertical .satus-modal__surface>*{display:flex;height:36px;padding:0 16px;align-items:center}.satus-modal--vertical .satus-button svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75;fill:none;stroke:var(--satus-primary);flex:0 0 20px}.satus-modal--vertical .satus-button .satus-span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:0;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer}.satus-switch__content{display:flex;align-items:center}.satus-switch__content>svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75}.satus-switch>i{width:38px;height:20px;transition:background-color 150ms;border-radius:20px;background-color:var(--satus-switch-track);flex:0 0 38px}.satus-section--card .satus-switch>i{margin-left:16px}.satus-switch[data-value=true]>i{background-color:var(--satus-switch-track--active)}.satus-switch>i::before{display:block;width:16px;height:16px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:var(--satus-switch-thumb);will-change:transform}.satus-switch[data-value=true]>i::before{transform:translateX(18px)}.satus-slider{box-sizing:border-box;width:100%;padding:8px 16px 0;outline:0}.satus-slider__container{position:relative;height:32px;width:100%}.satus-slider__track{position:absolute;top:50%;left:0;height:2px;width:100%;transform:translateY(-50%)}.satus-slider__track::before{position:absolute;left:0;top:0;width:100%;height:100%;background:var(--satus-primary);opacity:.24;content:''}.satus-slider__handle:focus::after{content:attr(data-value);position:absolute;left:50%;top:-2px;background:var(--satus-primary);color:#fff;display:block;transform:translate(-50%,-100%);padding:1px 4px;border-radius:4px}.satus-slider__track-fill{position:absolute;left:0;top:0;height:100%;background:var(--satus-primary)}.satus-slider__handle{position:absolute;width:10px;height:10px;background:var(--satus-primary);border-radius:50%;transform:translate(-50%,-50%);top:50%;left:0}.satus-slider__handle::before{content:'';background:var(--satus-primary);position:absolute;left:50%;top:50%;width:1px;height:1px;opacity:0;border-radius:50%;transform:translate(-50%,-50%) scale(1);transition:.2s}.satus-slider:focus .satus-slider__handle::before{transform:translate(-50%,-50%) scale(26);opacity:.24}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{text-transform:uppercase;font-size:11px;opacity:.5}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;background:rgba(0,0,0,.15);margin:8px 4px 0;border-radius:8px}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__mouse>div{position:absolute;top:0;left:13px;width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-4px;left:21px;width:2px;height:18px;content:'';background:#f96754}.satus-shortcut__mouse.false::after{position:absolute;top:-12px;left:17px;width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:14px;left:17px;width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-base{display:flex;flex-direction:column;width:100%;height:100%}.satus-text-field{position:relative;padding:0 16px;background-color:var(--satus-text-field--background);border-radius:8px;color:var(--satus-text-field--text);overflow:hidden;display:flex}.satus-text-field__pre{display:flex;position:relative;height:100%;margin:0;padding:0;overflow:hidden;align-items:center;flex:1}.satus-text-field__input{font:inherit;position:absolute;top:0;left:0;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0;opacity:0;border:none;appearance:none;z-index:9}.satus-text-field__hidden-text{position:absolute;pointer-events:none;opacity:0}.satus-text-field__text{position:absolute;top:0;left:0;display:flex;height:100%;margin:0;align-items:center}.satus-text-field__cursor{position:absolute;top:6px;left:0;display:none;width:2px;height:25px;animation:blink 1s step-end 8;background:#fa0}.satus-text-field__selection{position:absolute;top:5px;left:0;display:none;width:0;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:3px;background:rgba(255,255,255,.1)}.satus-text-field__input:focus+*+*+*+.satus-text-field__cursor,.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field__text>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__text>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-header{z-index:1;display:flex;box-sizing:border-box;height:56px;padding:0 12px;color:var(--satus-header-text);background:var(--satus-header-background);box-shadow:0 1px 2px rgb(47,41,34,.16);align-items:center;justify-content:space-between}.satus-alert{display:flex;box-sizing:border-box;min-height:48px;margin:8px;padding:8px 16px;border-radius:8px;align-items:center}.satus-alert--error{color:#c55959;border:1px solid #641616;background:#430f0f}.satus-layers{position:relative;overflow:hidden;color:var(--satus-layers-text);background:var(--satus-layers-background);flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;box-sizing:border-box;width:100%;height:100%;padding:0 12px;flex-wrap:wrap;align-content:flex-start}.satus-input[type=text]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:0;padding:0 8px;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-input[type=text]{font-size:16px;margin:8px 0;padding:4px 8px;border:1px solid #e8e8e8;border-radius:4px;background-color:#fff}.satus-aside{color:var(--satus-aside-text);background:var(--satus-aside-background);box-sizing:border-box}.satus-select{position:relative;display:flex;box-sizing:border-box;align-items:center;justify-content:space-between}.satus-select__content{display:flex;align-items:center}.satus-select__content>svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75}.satus-select__value{margin-left:16px;text-align:right;opacity:.75}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;padding:inherit;cursor:pointer;opacity:0;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1s;opacity:var(--satus-pluviam-opacity,.08);border-radius:50%;background:var(--satus-pluviam-background,#000);animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:var(--satus-pluviam-opacity,.08)}70%{transform:scale(.8);opacity:var(--satus-pluviam-opacity,.08)}100%{transform:scale(1);opacity:0}} \ No newline at end of file +[hidden]{display:none}body{--satus-primary:#f6b465;--satus-switch-background:rgba(0,0,0,.08);--satus-header-background:#fff;--satus-header-text:#848471;--satus-layers-background:#f6f6f4;--satus-layers-text:#848471;--satus-section-card-background:#fff;--satus-modal-background:#f6f6f4;--satus-modal-text:#848471;--satus-hover:rgba(0, 0, 0, .04);--satus-text-field--background:#e8e8e3;--satus-text-field--border:#d6d6cd;--satus-text-field--text:#848471;--satus-switch-track:#b8b8b8;--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#fff;--satus-tabs:#fff;--satus-tooltip:rgba(0,0,0,.4);--satus-sortable-ghost:rgba(0, 0, 0, .80);--satus-sortable-background:#f9cf9f;--satus-sortable-text:#fff;--satus-divider:#e0e0e0;--satus-tabs-background:#e8e8e3;--satus-tabs-foreground:#fff;--satus-context-menu--border:#ccc;--satus-checkbox--background:rgb(90, 90, 73, .08);--satus-checkbox--border:rgb(90, 90, 73, .16);--satus-checkbox--mark:#fff}body[theme=dark]{--satus-primary:#90a5e0;--satus-switch-background:rgba(0,0,0,.08);--satus-header-background:#232b43;--satus-header-text:#bcc4dc;--satus-layers-background:#0e111b;--satus-layers-text:#bcc4dc;--satus-section-card-background:#1d2335;--satus-modal-background:#252e46;--satus-modal-text:#bcc4dc;--satus-hover:rgba(255, 255, 255, .08);--satus-text-field--background:#20273c;--satus-text-field--border:#2e3957;--satus-text-field--text:#c4c4d4;--satus-switch-track:#101219;--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#d7dcea;--satus-tooltip:rgba(255,255,255,.4);--satus-sortable-ghost:rgba(255, 255, 255, .8);--satus-sortable-background:var(--satus-primary);--satus-sortable-text:#fff;--satus-divider:#3e4865;--satus-tabs-background:#1f2433;--satus-tabs-foreground:#344165;--satus-context-menu--border:#2e3957;--satus-checkbox--background:rgb(233, 234, 237, .08);--satus-checkbox--border:rgb(233, 234, 237, .16);--satus-checkbox--mark:#fff}body[theme=black]{--satus-primary:#8f8f8f;--satus-switch-background:rgba(255,255,255,.08);--satus-header-background:#1f1f1f;--satus-header-text:#ccc;--satus-layers-background:#000;--satus-layers-text:#ccc;--satus-section-card-background:#1a1a1a;--satus-modal-background:#212121;--satus-modal-text:#ccc;--satus-hover:rgba(255, 255, 255, .08);--satus-text-field--background:#333333;--satus-text-field--border:#525252;--satus-text-field--text:#ccc;--satus-switch-track:#111;--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#ddd;--satus-tooltip:rgba(255,255,255,.4);--satus-sortable-ghost:rgba(255, 255, 255, .8);--satus-sortable-background:var(--satus-primary);--satus-sortable-text:#fff;--satus-divider:#444;--satus-tabs-background:#111;--satus-tabs-foreground:#2e2e2e;--satus-context-menu--border:#525252;--satus-checkbox--background:rgb(235, 235, 235, .08);--satus-checkbox--border:rgb(235, 235, 235, .16);--satus-checkbox--mark:#fff}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:0;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:22px;height:22px;border:2px solid rgba(0,0,0,.16);border-radius:50%;background:#fff}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{padding-top:0}.satus-color-picker__palette{position:relative;overflow:hidden;width:100%;height:256px;background-color:red}.satus-color-picker__palette:before{position:absolute;top:0;left:0;width:100%;height:100%;content:'';background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,transparent)}.satus-color-picker__cursor{position:absolute;width:5px;height:5px;transform:translate(-50%,-50%);pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000}.satus-modal--color-picker .satus-modal__surface .satus-section--color{margin:8px 16px 0;align-items:center}.satus-color-picker__color{width:32px;height:32px;margin:0 16px 0 0;border:2px solid rgba(0,0,0,.16);border-radius:50%;background:red}.satus-slider.satus-color-picker__hue{padding:0;flex:1}.satus-color-picker__hue .satus-slider__track{height:16px;border-radius:4px;background-image:linear-gradient(90deg,red,#ff2a00,#f50,#ff7f00,#fa0,#ffd400,#ff0,#d4ff00,#af0,#80ff00,#5f0,#2bff00,#0f0,#00ff2b,#0f5,#00ff80,#0fa,#00ffd5,#0ff,#00d4ff,#0af,#007fff,#05f,#002bff,#00f,#2a00ff,#50f,#7f00ff,#a0f,#d400ff,#f0f,#ff00d4,#f0a,#ff0080,#f05,#ff002b,red)}.satus-color-picker__hue .satus-slider__handle{width:16px;height:16px;background:#fff;box-shadow:0 0 4px rgb(0,0,0,.64)}.satus-color-picker__hue .satus-slider__handle:focus::after,.satus-color-picker__hue .satus-slider__track-fill,.satus-color-picker__hue::before{display:none}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background);overflow-y:auto;box-sizing:border-box}.satus-tabs{display:flex;height:26px!important}.satus-tabs__content{position:relative;overflow:hidden;width:100%;height:100%;border:2px solid var(--satus-tabs-background);border-radius:4px;background:var(--satus-tabs-background)}.satus-tabs__selection{position:absolute;z-index:0;top:0;left:0;height:100%;transition:left .25s;border-radius:4px;background:var(--satus-tabs-foreground)}.satus-tabs__button{font:inherit;position:relative;z-index:1;overflow:hidden;height:100%;padding:0 4px;white-space:nowrap;text-overflow:ellipsis;color:inherit;border:none;background:0 0;flex:1}.satus-tabs__button:hover{cursor:pointer}.satus-menubar,.satus-menubar ul{margin:0;padding:0;list-style:none;background:var(--satus-menubar-background);color:var(--satus-menubar-text)}.satus-menubar li>.satus-button{height:32px;font-size:14px}.satus-menubar>li>ul{display:none;position:absolute}.satus-menubar>li>:focus+ul,.satus-menubar>li>ul:hover{display:block}.satus-button{font:inherit;position:relative;display:flex;overflow:hidden;height:48px;margin:0;padding:8px;text-align:left;color:var(--satus-button-text,inherit);border:none;background:var(--satus-button-background,transparent);appearance:none;align-items:center}.satus-button:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-button[hidden]{display:none}.satus-button>svg{min-width:20px}.satus-button>.satus-span--label{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;min-height:48px}.satus-list__item>:last-child{text-align:right}.satus-section{display:flex;box-sizing:border-box;flex-wrap:wrap}.satus-section--align-start{align-items:center;justify-content:flex-start}.satus-section--align-end{align-items:center;justify-content:flex-end}.satus-section--space-between{align-items:center;justify-content:space-between}.satus-section--column{flex-direction:column}.satus-section--card{flex-direction:column;box-sizing:border-box;width:100%;max-width:900px;margin:8px auto;padding:8px 0;color:var(--satus-section-card-text);border:1px solid rgba(0,0,0,.1);border-radius:8px;background:var(--satus-section-card-background);justify-content:stretch}.satus-section--card>:not(.satus-button){box-sizing:border-box;min-height:48px;padding:0 16px;text-align:left}.satus-section--card>.satus-radio,.satus-section--card>.satus-select,.satus-section--card>.satus-switch{display:flex;justify-content:space-between;align-items:center}.satus-section--card>.satus-button:hover,.satus-section--card>.satus-radio:hover,.satus-section--card>.satus-select:hover,.satus-section--card>.satus-slider:hover,.satus-section--card>.satus-switch:hover{background-color:var(--satus-hover)}.satus-section--card>.satus-button{width:100%;padding:0 16px}.satus-section--card>.satus-button>svg{width:20px;margin:2px 16px 0 0;color:var(--satus-primary)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3)}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.16);backdrop-filter:blur(8px)}.satus-modal__surface{display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;margin:0 16px;padding:12px 16px;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-text);border-radius:6px;background-color:var(--satus-modal-background);box-shadow:inset 0 -1px 1px 1px rgb(0,0,0,.1),0 2px 6px rgb(0,0,0,.15)}.satus-modal__surface .satus-section--actions{display:flex;width:100%;margin:8px 0 0;padding:0;justify-content:flex-end;align-items:center}.satus-modal__surface .satus-section--actions .satus-button{font-weight:500;height:32px;margin-left:8px;padding:0 8px;letter-spacing:.5px;color:var(--satus-primary);border-radius:4px}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}.satus-modal--vertical .satus-modal__surface{position:absolute;top:8px;right:8px;left:auto;min-width:200px;max-width:200px;margin:0;padding:8px 0;transform-origin:right top}.satus-modal--vertical .satus-modal__surface>.satus-button,.satus-modal--vertical .satus-modal__surface>.satus-select,.satus-modal--vertical .satus-modal__surface>.satus-switch{display:flex;height:36px;padding:0 16px;align-items:center}.satus-modal--vertical .satus-modal__surface>.satus-tabs{padding:0 12px}.satus-modal--vertical .satus-modal__surface>.satus-span{font-size:13px;font-weight:500;margin:6px 0;padding:0 12px}.satus-modal--vertical .satus-modal__surface>.satus-button:hover,.satus-modal--vertical .satus-modal__surface>.satus-select:hover,.satus-modal--vertical .satus-modal__surface>.satus-switch:hover{background-color:var(--satus-hover)}.satus-modal--vertical .satus-button svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75;flex:0 0 20px}.satus-modal--vertical .satus-button .satus-span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-checkbox{position:relative;font:inherit;display:flex;color:inherit;border:none;background:0 0;appearance:none;align-items:center;justify-content:flex-start}.satus-checkbox:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-checkbox:focus{outline:0}.satus-checkbox__content{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.satus-checkbox::before{display:flex;min-width:16px;width:16px;height:16px;margin:0 12px 0 0;content:'';border:1px solid var(--satus-checkbox--border);border-radius:6px;background:var(--satus-checkbox--background);align-items:center;justify-content:center}.satus-checkbox[data-value=true]::before{background:var(--satus-primary)}.satus-checkbox[data-value=true]::after{position:absolute;top:20px;left:20px;width:8px;height:4px;content:'';transform:rotate(-45deg);border:2px solid var(--satus-checkbox--mark);border-top:none;border-right:none}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:0;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer}.satus-switch__content{display:flex;align-items:center}.satus-switch__content>svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75}.satus-switch>i{width:38px;height:20px;transition:background-color 150ms;border-radius:20px;background-color:var(--satus-switch-track);flex:0 0 38px}.satus-section--card .satus-switch>i{margin-left:16px}.satus-switch[data-value=true]>i{background-color:var(--satus-switch-track--active)}.satus-switch>i::before{display:block;width:16px;height:16px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:var(--satus-switch-thumb);will-change:transform}.satus-switch[data-value=true]>i::before{transform:translateX(18px)}.satus-slider{box-sizing:border-box;width:100%;padding:8px 16px 0;outline:0}.satus-slider__container{position:relative;height:32px;width:100%}.satus-slider__track{position:absolute;top:50%;left:0;height:2px;width:100%;transform:translateY(-50%)}.satus-slider__track::before{position:absolute;left:0;top:0;width:100%;height:100%;background:var(--satus-primary);opacity:.24;content:''}.satus-slider__handle:focus::after{content:attr(data-value);position:absolute;left:50%;top:-2px;background:var(--satus-primary);color:#fff;display:block;transform:translate(-50%,-100%);padding:1px 4px;border-radius:4px}.satus-slider__track-fill{position:absolute;left:0;top:0;height:100%;background:var(--satus-primary)}.satus-slider__handle{position:absolute;width:10px;height:10px;background:var(--satus-primary);border-radius:50%;transform:translate(-50%,-50%);top:50%;left:0}.satus-slider__handle::before{content:'';background:var(--satus-primary);position:absolute;left:50%;top:50%;width:1px;height:1px;opacity:0;border-radius:50%;transform:translate(-50%,-50%) scale(1);transition:.2s}.satus-slider:focus .satus-slider__handle::before{transform:translate(-50%,-50%) scale(26);opacity:.24}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{text-transform:uppercase;font-size:11px;opacity:.5}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;background:rgba(0,0,0,.15);margin:8px 4px 0;border-radius:8px}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__mouse>div{position:absolute;top:0;left:13px;width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-4px;left:21px;width:2px;height:18px;content:'';background:#f96754}.satus-shortcut__mouse.false::after{position:absolute;top:-12px;left:17px;width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:14px;left:17px;width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-base{display:flex;flex-direction:column;width:100%;height:100%}.satus-text-field{position:relative;padding:0 16px;background-color:var(--satus-text-field--background);border-radius:8px;color:var(--satus-text-field--text);overflow:hidden;display:flex}.satus-text-field__pre{display:flex;position:relative;height:100%;margin:0;padding:0;overflow:hidden;align-items:center;flex:1}.satus-text-field__input{font:inherit;position:absolute;top:0;left:0;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0;opacity:0;border:none;appearance:none;z-index:9}.satus-text-field__hidden-text{position:absolute;pointer-events:none;opacity:0}.satus-text-field__text{position:absolute;top:0;left:0;display:flex;height:100%;margin:0;align-items:center}.satus-text-field__cursor{position:absolute;top:6px;left:0;display:none;width:2px;height:25px;animation:blink 1s step-end 8;background:#fa0}.satus-text-field__selection{position:absolute;top:5px;left:0;display:none;width:0;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:3px;background:rgba(255,255,255,.1)}.satus-text-field__input:focus+*+*+*+.satus-text-field__cursor,.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field__text>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__text>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-header{z-index:1;display:flex;box-sizing:border-box;height:56px;padding:0 12px;color:var(--satus-header-text);background:var(--satus-header-background);box-shadow:0 1px 2px rgb(47,41,34,.16);align-items:center;justify-content:space-between}.satus-header .satus-button{width:40px;min-width:40px;height:40px;padding:8px;color:inherit;border-radius:50%}.satus-header .satus-section--align-start>*{margin-right:8px}.satus-header .satus-span--title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1}.satus-alert{display:flex;box-sizing:border-box;min-height:48px;margin:8px;padding:8px 16px;border-radius:8px;align-items:center}.satus-alert--error{color:#cf7777;border:1px solid #6f1f1f;background:#501616}.satus-layers{position:relative;overflow:hidden;color:var(--satus-layers-text);background:var(--satus-layers-background);flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;box-sizing:border-box;width:100%;height:100%;padding:0 12px;flex-wrap:wrap;align-content:flex-start}.satus-divider{height:1px;margin:16px 0 12px;background:var(--satus-divider)}.satus-input[type=password],.satus-input[type=text]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:0;padding:0 8px;color:var(--satus-text-field--text,inherit);border:none;outline:0;background:0 0;appearance:none;font-size:16px;margin:8px 0;padding:4px 8px;border:1px solid var(--satus-text-field--border);border-radius:4px;background-color:var(--satus-text-field--background)}.satus-aside{color:var(--satus-aside-text);background:var(--satus-aside-background);box-sizing:border-box}.satus-select{position:relative;display:flex;box-sizing:border-box;align-items:center;justify-content:space-between}.satus-select__content{display:flex;align-items:center}.satus-select__content>svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75}.satus-select__value{margin-left:16px;text-align:right;opacity:.75}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;padding:inherit;cursor:pointer;opacity:0;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-modal--contextmenu .satus-modal__scrim{background:0 0;backdrop-filter:none;animation:none;visibility:visible;opacity:1;transform:none}.satus-modal--contextmenu .satus-modal__surface{position:absolute;margin:0;box-sizing:border-box;min-width:200px;max-width:200px;padding:4px 0;border-radius:4px;border:1px solid var(--satus-context-menu--border);box-shadow:none;animation:none;visibility:visible;opacity:1;transform:none}.satus-modal--contextmenu .satus-modal__surface>*{display:flex;height:32px;padding:0 16px;align-items:center}.satus-modal--contextmenu .satus-modal__surface .satus-button svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75;fill:none;stroke:var(--satus-primary);flex:0 0 20px}.satus-modal--contextmenu .satus-modal__surface .satus-button .satus-span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1s;opacity:var(--satus-pluviam-opacity,.08);border-radius:50%;background:var(--satus-pluviam-background,#000);animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:var(--satus-pluviam-opacity,.08)}70%{transform:scale(.8);opacity:var(--satus-pluviam-opacity,.08)}100%{transform:scale(1);opacity:0}}.satus-sortable__chosen{color:var(--satus-sortable-text)!important;background-color:var(--satus-sortable-background)!important}.satus-sortable__ghost{position:fixed!important;z-index:999!important;top:0!important;left:0!important;pointer-events:none!important;box-shadow:0 1px 3px rgb(0,0,0,.2),0 4px 8px rgb(0,0,0,.1),inset 0 0 0 1px rgb(0,0,0,.16);will-change:transform!important;opacity:.8!important} \ No newline at end of file diff --git a/satus.js b/satus.js index 88068682b..7f3c29a6e 100644 --- a/satus.js +++ b/satus.js @@ -1 +1 @@ -var satus={components:{},events:{},locale:{strings:{}},storage:{attributes:{},data:{}},append:function(e,t){(t||document.body).appendChild(e)},getAnimationDuration:function(e){return 1e3*Number(window.getComputedStyle(e).getPropertyValue("animation-duration").replace(/[^0-9.]/g,""))},attr:function(e,t){if(t)for(var M in t){var i;e.is_svg?e.setAttributeNS(null,M,t[M]):(i=t[M],-1!==["placeholder","title"].indexOf(M)&&(i=satus.locale.get(i)),e.setAttribute(M,i))}},elementIndex:function(e){return Array.prototype.slice.call(e.parentNode.children).indexOf(e)},data:function(e,t){if(t)for(var M in t)e.dataset[M]=t[M]},properties:function(e,t){if(t)for(var M in t)e[M]=t[M]},camelize:function(e){for(var t="",M=0,i=e.length;MparseInt(e,16)),i={name:"AES-GCM",iv:new Uint8Array(M)};try{var N=(new TextDecoder).decode(await crypto.subtle.decrypt(i,await crypto.subtle.importKey("raw",await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t)),i,!1,["decrypt"]),new Uint8Array(atob(e.slice(24)).match(/[\s\S]/g).map(e=>e.charCodeAt(0)))))}catch(e){return!1}return N},satus.encrypt=async function(e,t){var M=crypto.getRandomValues(new Uint8Array(12)),i={name:"AES-GCM",iv:M};return Array.from(M).map(e=>("00"+e.toString(16)).slice(-2)).join("")+btoa(Array.from(new Uint8Array(await crypto.subtle.encrypt(i,await crypto.subtle.importKey("raw",await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t)),i,!1,["encrypt"]),(new TextEncoder).encode(e)))).map(e=>String.fromCharCode(e)).join(""))},satus.render=function(e,t,M,i){if(e.hasOwnProperty("component")&&!0!==M){var N,I=e.component,M=this.camelize(I);if(e.on&&e.on.beforerender&&e.on.beforerender(e),"function"==typeof e.storage?e.storage=e.storage():!1===e.hasOwnProperty("storage")&&i&&(e.storage=i),this.components[M]?(N=this.components[M](e),!1===this.isset(N.inner)&&(N.inner=N)):"svg"===I||t&&t.is_svg?((N=document.createElementNS("http://www.w3.org/2000/svg",I)).is_svg=!0,N.inner=N):(N=document.createElement(e.component)).inner=N,!1===N.inner.hasOwnProperty("base")&&t&&(N.inner.base=t.base),N.inner.base&&"layers"===I&&(N.inner.base.layers=N),(e.rendered=N).skeleton=e,N.className=(N.className+" satus-"+e.component).trim(),N.change=function(e){this.skeleton.storage&&satus.storage.set(this.skeleton.storage,e),this.dispatchEvent(new CustomEvent("change"))},e.variant&&(N.className+=" satus-"+e.component+"--"+e.variant),this.append(N,t),t=N.inner||N,this.class(N,e.class),this.style(N,e.style),this.attr(N,e.attr),this.data(N,e.data),this.properties(N,e.properties),this.on(N,e.on),this.text(t,e.text),N.dispatchEvent(new CustomEvent("render")),!0===e.autofocus&&N.focus(),this.events.hasOwnProperty("render"))for(var a=0,g=this.events.render.length;aparseInt(e,16)),a={name:"AES-GCM",iv:new Uint8Array(n)};try{var s=(new TextDecoder).decode(await crypto.subtle.decrypt(a,await crypto.subtle.importKey("raw",await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t)),a,!1,["decrypt"]),new Uint8Array(atob(e.slice(24)).match(/[\s\S]/g).map(e=>e.charCodeAt(0)))))}catch(e){return!1}return s},satus.encrypt=async function(e,t){var n=crypto.getRandomValues(new Uint8Array(12)),a={name:"AES-GCM",iv:n};return Array.from(n).map(e=>("00"+e.toString(16)).slice(-2)).join("")+btoa(Array.from(new Uint8Array(await crypto.subtle.encrypt(a,await crypto.subtle.importKey("raw",await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t)),a,!1,["encrypt"]),(new TextEncoder).encode(e)))).map(e=>String.fromCharCode(e)).join(""))},satus.isArray=function(e){return!!Array.isArray(e)},satus.isNumber=function(e){return"number"==typeof e&&!1===isNaN(e)},satus.indexOf=function(e,t){var n=0;if(satus.isArray(t))n=t.indexOf(e);else for(;e=e.previousElementSibling;)n++;return n},satus.toIndex=function(e,t,n){satus.isArray(n)&&n.splice(e,0,n.splice(satus.indexOf(t,n),1)[0])},satus.clone=function(e){for(var t=e.cloneNode(!0),n=window.getComputedStyle(e.parentNode),a=window.getComputedStyle(e),s="",o=0,r=a.length;o Date: Sat, 6 Nov 2021 21:20:52 +0300 Subject: [PATCH 0422/1224] v3.750 --- background.js | 85 +- content-scripts.js | 8 +- content-styles.css | 2 +- manifest.json | 108 +- satus.css | 1 - satus.js | 1 - {fonts => ui/fonts}/Roboto-Light.ttf | Bin {fonts => ui/fonts}/Roboto-Medium.ttf | Bin {fonts => ui/fonts}/Roboto-Regular.ttf | Bin options.html => ui/options.html | 13 +- page.js => ui/page.js | 6 +- popup.html => ui/popup.html | 13 +- ui/satus/satus.css | 1472 +++++++++++++ ui/satus/satus.js | 2636 ++++++++++++++++++++++++ popup.js => ui/script.js | 160 +- popup.css => ui/styles.css | 23 +- youtube-scripts.js | 178 +- 17 files changed, 4437 insertions(+), 269 deletions(-) delete mode 100644 satus.css delete mode 100644 satus.js rename {fonts => ui/fonts}/Roboto-Light.ttf (100%) rename {fonts => ui/fonts}/Roboto-Medium.ttf (100%) rename {fonts => ui/fonts}/Roboto-Regular.ttf (100%) rename options.html => ui/options.html (70%) rename page.js => ui/page.js (80%) rename popup.html => ui/popup.html (69%) create mode 100644 ui/satus/satus.css create mode 100644 ui/satus/satus.js rename popup.js => ui/script.js (98%) rename popup.css => ui/styles.css (98%) diff --git a/background.js b/background.js index 2cacdf4f8..dee6d12b7 100644 --- a/background.js +++ b/background.js @@ -194,7 +194,87 @@ function migration(items) { items.thumbnails_quality = 'maxresdefault'; } - delete items.hd_thumbnails; + for (var key in items) { + var item = items[key]; + + if (key.indexOf('shortcut') !== -1 && typeof item === 'string') { + try { + item = JSON.parse(item); + + var value = { + alt: item.altKey, + ctrl: item.ctrlKey, + shift: item.shiftKey + }; + + if (item.hasOwnProperty('key') && item.hasOwnProperty('keyCode')) { + value.keys = {}; + + value.keys[item.keyCode] = { + key: item.key + }; + } + + items[key] = value; + } catch (error) { + console.log(error); + } + } + } + + if (items.theme_my_colors === true) { + items.theme = 'my-colors'; + } else if (items.default_dark_theme === true) { + items.theme = 'dark'; + } else if (items.night_theme === true) { + items.theme = 'night'; + } else if (items.dawn_theme === true) { + items.theme = 'dawn'; + } else if (items.sunset_theme === true) { + items.theme = 'sunset'; + } else if (items.desert_theme === true) { + items.theme = 'desert'; + } else if (items.plain_theme === true) { + items.theme = 'plain'; + } else if (items.black_theme === true) { + items.theme = 'black'; + } + + if (typeof items.theme_primary_color === 'string') { + var match = items.theme_primary_color.match(/[0-9.]+/g); + + if (match) { + for (var i = 0, l = match.length; i < l; i++) { + match[i] = parseFloat(match[i]); + } + } + + items.theme_primary_color = match; + } + + if (typeof items.theme_text_color === 'string') { + var match = items.theme_text_color.match(/[0-9.]+/g); + + if (match) { + for (var i = 0, l = match.length; i < l; i++) { + match[i] = parseFloat(match[i]); + } + } + + items.theme_text_color = match; + } + + chrome.storage.local.set(items); + + chrome.storage.local.remove('hd_thumbnails'); + chrome.storage.local.remove('theme_my_colors'); + chrome.storage.local.remove('default_dark_theme'); + chrome.storage.local.remove('night_theme'); + chrome.storage.local.remove('dawn_theme'); + chrome.storage.local.remove('sunset_theme'); + chrome.storage.local.remove('desert_theme'); + chrome.storage.local.remove('plain_theme'); + chrome.storage.local.remove('black_theme'); } @@ -209,11 +289,12 @@ function migration(items) { chrome.storage.local.get(function (items) { //googleAnalytics(items.ga); //uninstallURL(); - migration(items); getLocalization(items.language, function (locale) { updateContextMenu(locale); }); + + migration(items); }); diff --git a/content-scripts.js b/content-scripts.js index 6eebff216..dc473b320 100644 --- a/content-scripts.js +++ b/content-scripts.js @@ -64,7 +64,7 @@ function attributes(items) { 'hide-playlist': true, 'related-videos': true, 'comments': true, - 'sidebar-left':true, + 'sidebar-left': true, 'thumbnails-right': true, 'thumbnails-hide': true, 'hide-footer': true, @@ -164,7 +164,7 @@ chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { var element = document.querySelector('video'); if (element) { - sendResponse(element.volume); + sendResponse(element.volume * 100); } } else if (request.action === 'set-volume') { var element = document.querySelector('video'); @@ -184,9 +184,9 @@ chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { if (element) { element.playbackRate = request.value; } - } else if (request.action === 'delete-youtube-cookies') { + } else if (request.action === 'delete-youtube-cookies') { injectScript('ImprovedTube.deleteYoutubeCookies();'); - } + } injectScript('ImprovedTube.pageOnFocus();'); }); diff --git a/content-styles.css b/content-styles.css index 1c4d38b4f..a6702f7ed 100644 --- a/content-styles.css +++ b/content-styles.css @@ -2852,7 +2852,7 @@ html[it-player-remote-button=true] .ytp-remote-button { } #it-reverse-playlist.active svg { - fill: var(--yt-spec-icon-active-other); + fill: #f00; } diff --git a/manifest.json b/manifest.json index 86a29e2b2..0a41452c6 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.712", + "version": "3.750", "default_locale": "en", "icons": { "128": "icons/128.png", @@ -18,62 +18,66 @@ ] }, "browser_action": { - "default_popup": "popup.html" + "default_popup": "ui/popup.html" }, - "options_page": "options.html", - "content_scripts": [{ - "all_frames": true, - "css": [ - "content-styles.css" - ], - "exclude_matches": [ - "https://www.youtube.com/improvedtube", - "https://www.youtube.com/tv*", - "https://www.youtube.com/audiolibrary/*", - "http://studio.youtube.com/*" - ], - "js": [ - "youtube-scripts.js", - "content-scripts.js" - ], - "matches": [ - "https://www.youtube.com/*" - ], - "run_at": "document_start" - }, { - "all_frames": true, - "css": [ - "satus.css", - "popup.css" - ], - "js": [ - "satus.js", - "popup.js" - ], - "matches": [ - "https://www.youtube.com/improvedtube" - ], - "run_at": "document_end" - }, { - "all_frames": true, - "js": [ - "page.js" - ], - "matches": [ - "https://www.youtube.com/improvedtube" - ], - "run_at": "document_start" - }], - "content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'", + "options_page": "ui/options.html", + "content_scripts": [ + { + "all_frames": true, + "css": [ + "content-styles.css" + ], + "exclude_matches": [ + "https://www.youtube.com/improvedtube", + "https://www.youtube.com/tv*", + "https://www.youtube.com/audiolibrary/*", + "http://studio.youtube.com/*" + ], + "js": [ + "youtube-scripts.js", + "content-scripts.js" + ], + "matches": [ + "https://www.youtube.com/*" + ], + "run_at": "document_start" + }, + { + "all_frames": true, + "css": [ + "ui/satus/satus.css", + "ui/styles.css" + ], + "js": [ + "ui/satus/satus.js", + "ui/script.js" + ], + "matches": [ + "https://www.youtube.com/improvedtube" + ], + "run_at": "document_end" + }, + { + "all_frames": true, + "js": [ + "ui/page.js" + ], + "matches": [ + "https://www.youtube.com/improvedtube" + ], + "run_at": "document_start" + } + ], "offline_enabled": true, + "optional_permissions": [ + "downloads", + "https://*.youtube.com/*" + ], "permissions": [ "https://www.youtube.com/", "contextMenus", "storage" ], - "optional_permissions": [ - "downloads", - "https://*.youtube.com/*" - ], + "content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'", "update_url": "https://clients2.google.com/service/update2/crx" -} +} \ No newline at end of file diff --git a/satus.css b/satus.css deleted file mode 100644 index b5315942a..000000000 --- a/satus.css +++ /dev/null @@ -1 +0,0 @@ -[hidden]{display:none}body{--satus-primary:#f6b465;--satus-switch-background:rgba(0,0,0,.08);--satus-header-background:#fff;--satus-header-text:#848471;--satus-layers-background:#f6f6f4;--satus-layers-text:#848471;--satus-section-card-background:#fff;--satus-modal-background:#f6f6f4;--satus-modal-text:#848471;--satus-hover:rgba(0, 0, 0, .04);--satus-text-field--background:#e8e8e3;--satus-text-field--border:#d6d6cd;--satus-text-field--text:#848471;--satus-switch-track:#b8b8b8;--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#fff;--satus-tabs:#fff;--satus-tooltip:rgba(0,0,0,.4);--satus-sortable-ghost:rgba(0, 0, 0, .80);--satus-sortable-background:#f9cf9f;--satus-sortable-text:#fff;--satus-divider:#e0e0e0;--satus-tabs-background:#e8e8e3;--satus-tabs-foreground:#fff;--satus-context-menu--border:#ccc;--satus-checkbox--background:rgb(90, 90, 73, .08);--satus-checkbox--border:rgb(90, 90, 73, .16);--satus-checkbox--mark:#fff}body[theme=dark]{--satus-primary:#90a5e0;--satus-switch-background:rgba(0,0,0,.08);--satus-header-background:#232b43;--satus-header-text:#bcc4dc;--satus-layers-background:#0e111b;--satus-layers-text:#bcc4dc;--satus-section-card-background:#1d2335;--satus-modal-background:#252e46;--satus-modal-text:#bcc4dc;--satus-hover:rgba(255, 255, 255, .08);--satus-text-field--background:#20273c;--satus-text-field--border:#2e3957;--satus-text-field--text:#c4c4d4;--satus-switch-track:#101219;--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#d7dcea;--satus-tooltip:rgba(255,255,255,.4);--satus-sortable-ghost:rgba(255, 255, 255, .8);--satus-sortable-background:var(--satus-primary);--satus-sortable-text:#fff;--satus-divider:#3e4865;--satus-tabs-background:#1f2433;--satus-tabs-foreground:#344165;--satus-context-menu--border:#2e3957;--satus-checkbox--background:rgb(233, 234, 237, .08);--satus-checkbox--border:rgb(233, 234, 237, .16);--satus-checkbox--mark:#fff}body[theme=black]{--satus-primary:#8f8f8f;--satus-switch-background:rgba(255,255,255,.08);--satus-header-background:#1f1f1f;--satus-header-text:#ccc;--satus-layers-background:#000;--satus-layers-text:#ccc;--satus-section-card-background:#1a1a1a;--satus-modal-background:#212121;--satus-modal-text:#ccc;--satus-hover:rgba(255, 255, 255, .08);--satus-text-field--background:#333333;--satus-text-field--border:#525252;--satus-text-field--text:#ccc;--satus-switch-track:#111;--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#ddd;--satus-tooltip:rgba(255,255,255,.4);--satus-sortable-ghost:rgba(255, 255, 255, .8);--satus-sortable-background:var(--satus-primary);--satus-sortable-text:#fff;--satus-divider:#444;--satus-tabs-background:#111;--satus-tabs-foreground:#2e2e2e;--satus-context-menu--border:#525252;--satus-checkbox--background:rgb(235, 235, 235, .08);--satus-checkbox--border:rgb(235, 235, 235, .16);--satus-checkbox--mark:#fff}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:0;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:22px;height:22px;border:2px solid rgba(0,0,0,.16);border-radius:50%;background:#fff}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{padding-top:0}.satus-color-picker__palette{position:relative;overflow:hidden;width:100%;height:256px;background-color:red}.satus-color-picker__palette:before{position:absolute;top:0;left:0;width:100%;height:100%;content:'';background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,transparent)}.satus-color-picker__cursor{position:absolute;width:5px;height:5px;transform:translate(-50%,-50%);pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000}.satus-modal--color-picker .satus-modal__surface .satus-section--color{margin:8px 16px 0;align-items:center}.satus-color-picker__color{width:32px;height:32px;margin:0 16px 0 0;border:2px solid rgba(0,0,0,.16);border-radius:50%;background:red}.satus-slider.satus-color-picker__hue{padding:0;flex:1}.satus-color-picker__hue .satus-slider__track{height:16px;border-radius:4px;background-image:linear-gradient(90deg,red,#ff2a00,#f50,#ff7f00,#fa0,#ffd400,#ff0,#d4ff00,#af0,#80ff00,#5f0,#2bff00,#0f0,#00ff2b,#0f5,#00ff80,#0fa,#00ffd5,#0ff,#00d4ff,#0af,#007fff,#05f,#002bff,#00f,#2a00ff,#50f,#7f00ff,#a0f,#d400ff,#f0f,#ff00d4,#f0a,#ff0080,#f05,#ff002b,red)}.satus-color-picker__hue .satus-slider__handle{width:16px;height:16px;background:#fff;box-shadow:0 0 4px rgb(0,0,0,.64)}.satus-color-picker__hue .satus-slider__handle:focus::after,.satus-color-picker__hue .satus-slider__track-fill,.satus-color-picker__hue::before{display:none}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background);overflow-y:auto;box-sizing:border-box}.satus-tabs{display:flex;height:26px!important}.satus-tabs__content{position:relative;overflow:hidden;width:100%;height:100%;border:2px solid var(--satus-tabs-background);border-radius:4px;background:var(--satus-tabs-background)}.satus-tabs__selection{position:absolute;z-index:0;top:0;left:0;height:100%;transition:left .25s;border-radius:4px;background:var(--satus-tabs-foreground)}.satus-tabs__button{font:inherit;position:relative;z-index:1;overflow:hidden;height:100%;padding:0 4px;white-space:nowrap;text-overflow:ellipsis;color:inherit;border:none;background:0 0;flex:1}.satus-tabs__button:hover{cursor:pointer}.satus-menubar,.satus-menubar ul{margin:0;padding:0;list-style:none;background:var(--satus-menubar-background);color:var(--satus-menubar-text)}.satus-menubar li>.satus-button{height:32px;font-size:14px}.satus-menubar>li>ul{display:none;position:absolute}.satus-menubar>li>:focus+ul,.satus-menubar>li>ul:hover{display:block}.satus-button{font:inherit;position:relative;display:flex;overflow:hidden;height:48px;margin:0;padding:8px;text-align:left;color:var(--satus-button-text,inherit);border:none;background:var(--satus-button-background,transparent);appearance:none;align-items:center}.satus-button:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-button[hidden]{display:none}.satus-button>svg{min-width:20px}.satus-button>.satus-span--label{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;min-height:48px}.satus-list__item>:last-child{text-align:right}.satus-section{display:flex;box-sizing:border-box;flex-wrap:wrap}.satus-section--align-start{align-items:center;justify-content:flex-start}.satus-section--align-end{align-items:center;justify-content:flex-end}.satus-section--space-between{align-items:center;justify-content:space-between}.satus-section--column{flex-direction:column}.satus-section--card{flex-direction:column;box-sizing:border-box;width:100%;max-width:900px;margin:8px auto;padding:8px 0;color:var(--satus-section-card-text);border:1px solid rgba(0,0,0,.1);border-radius:8px;background:var(--satus-section-card-background);justify-content:stretch}.satus-section--card>:not(.satus-button){box-sizing:border-box;min-height:48px;padding:0 16px;text-align:left}.satus-section--card>.satus-radio,.satus-section--card>.satus-select,.satus-section--card>.satus-switch{display:flex;justify-content:space-between;align-items:center}.satus-section--card>.satus-button:hover,.satus-section--card>.satus-radio:hover,.satus-section--card>.satus-select:hover,.satus-section--card>.satus-slider:hover,.satus-section--card>.satus-switch:hover{background-color:var(--satus-hover)}.satus-section--card>.satus-button{width:100%;padding:0 16px}.satus-section--card>.satus-button>svg{width:20px;margin:2px 16px 0 0;color:var(--satus-primary)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3)}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.16);backdrop-filter:blur(8px)}.satus-modal__surface{display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;margin:0 16px;padding:12px 16px;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-text);border-radius:6px;background-color:var(--satus-modal-background);box-shadow:inset 0 -1px 1px 1px rgb(0,0,0,.1),0 2px 6px rgb(0,0,0,.15)}.satus-modal__surface .satus-section--actions{display:flex;width:100%;margin:8px 0 0;padding:0;justify-content:flex-end;align-items:center}.satus-modal__surface .satus-section--actions .satus-button{font-weight:500;height:32px;margin-left:8px;padding:0 8px;letter-spacing:.5px;color:var(--satus-primary);border-radius:4px}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}.satus-modal--vertical .satus-modal__surface{position:absolute;top:8px;right:8px;left:auto;min-width:200px;max-width:200px;margin:0;padding:8px 0;transform-origin:right top}.satus-modal--vertical .satus-modal__surface>.satus-button,.satus-modal--vertical .satus-modal__surface>.satus-select,.satus-modal--vertical .satus-modal__surface>.satus-switch{display:flex;height:36px;padding:0 16px;align-items:center}.satus-modal--vertical .satus-modal__surface>.satus-tabs{padding:0 12px}.satus-modal--vertical .satus-modal__surface>.satus-span{font-size:13px;font-weight:500;margin:6px 0;padding:0 12px}.satus-modal--vertical .satus-modal__surface>.satus-button:hover,.satus-modal--vertical .satus-modal__surface>.satus-select:hover,.satus-modal--vertical .satus-modal__surface>.satus-switch:hover{background-color:var(--satus-hover)}.satus-modal--vertical .satus-button svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75;flex:0 0 20px}.satus-modal--vertical .satus-button .satus-span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-checkbox{position:relative;font:inherit;display:flex;color:inherit;border:none;background:0 0;appearance:none;align-items:center;justify-content:flex-start}.satus-checkbox:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-checkbox:focus{outline:0}.satus-checkbox__content{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.satus-checkbox::before{display:flex;min-width:16px;width:16px;height:16px;margin:0 12px 0 0;content:'';border:1px solid var(--satus-checkbox--border);border-radius:6px;background:var(--satus-checkbox--background);align-items:center;justify-content:center}.satus-checkbox[data-value=true]::before{background:var(--satus-primary)}.satus-checkbox[data-value=true]::after{position:absolute;top:20px;left:20px;width:8px;height:4px;content:'';transform:rotate(-45deg);border:2px solid var(--satus-checkbox--mark);border-top:none;border-right:none}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:0;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer}.satus-switch__content{display:flex;align-items:center}.satus-switch__content>svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75}.satus-switch>i{width:38px;height:20px;transition:background-color 150ms;border-radius:20px;background-color:var(--satus-switch-track);flex:0 0 38px}.satus-section--card .satus-switch>i{margin-left:16px}.satus-switch[data-value=true]>i{background-color:var(--satus-switch-track--active)}.satus-switch>i::before{display:block;width:16px;height:16px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:var(--satus-switch-thumb);will-change:transform}.satus-switch[data-value=true]>i::before{transform:translateX(18px)}.satus-slider{box-sizing:border-box;width:100%;padding:8px 16px 0;outline:0}.satus-slider__container{position:relative;height:32px;width:100%}.satus-slider__track{position:absolute;top:50%;left:0;height:2px;width:100%;transform:translateY(-50%)}.satus-slider__track::before{position:absolute;left:0;top:0;width:100%;height:100%;background:var(--satus-primary);opacity:.24;content:''}.satus-slider__handle:focus::after{content:attr(data-value);position:absolute;left:50%;top:-2px;background:var(--satus-primary);color:#fff;display:block;transform:translate(-50%,-100%);padding:1px 4px;border-radius:4px}.satus-slider__track-fill{position:absolute;left:0;top:0;height:100%;background:var(--satus-primary)}.satus-slider__handle{position:absolute;width:10px;height:10px;background:var(--satus-primary);border-radius:50%;transform:translate(-50%,-50%);top:50%;left:0}.satus-slider__handle::before{content:'';background:var(--satus-primary);position:absolute;left:50%;top:50%;width:1px;height:1px;opacity:0;border-radius:50%;transform:translate(-50%,-50%) scale(1);transition:.2s}.satus-slider:focus .satus-slider__handle::before{transform:translate(-50%,-50%) scale(26);opacity:.24}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{text-transform:uppercase;font-size:11px;opacity:.5}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;background:rgba(0,0,0,.15);margin:8px 4px 0;border-radius:8px}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__mouse>div{position:absolute;top:0;left:13px;width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-4px;left:21px;width:2px;height:18px;content:'';background:#f96754}.satus-shortcut__mouse.false::after{position:absolute;top:-12px;left:17px;width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:14px;left:17px;width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-base{display:flex;flex-direction:column;width:100%;height:100%}.satus-text-field{position:relative;padding:0 16px;background-color:var(--satus-text-field--background);border-radius:8px;color:var(--satus-text-field--text);overflow:hidden;display:flex}.satus-text-field__pre{display:flex;position:relative;height:100%;margin:0;padding:0;overflow:hidden;align-items:center;flex:1}.satus-text-field__input{font:inherit;position:absolute;top:0;left:0;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0;opacity:0;border:none;appearance:none;z-index:9}.satus-text-field__hidden-text{position:absolute;pointer-events:none;opacity:0}.satus-text-field__text{position:absolute;top:0;left:0;display:flex;height:100%;margin:0;align-items:center}.satus-text-field__cursor{position:absolute;top:6px;left:0;display:none;width:2px;height:25px;animation:blink 1s step-end 8;background:#fa0}.satus-text-field__selection{position:absolute;top:5px;left:0;display:none;width:0;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:3px;background:rgba(255,255,255,.1)}.satus-text-field__input:focus+*+*+*+.satus-text-field__cursor,.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field__text>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__text>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-header{z-index:1;display:flex;box-sizing:border-box;height:56px;padding:0 12px;color:var(--satus-header-text);background:var(--satus-header-background);box-shadow:0 1px 2px rgb(47,41,34,.16);align-items:center;justify-content:space-between}.satus-header .satus-button{width:40px;min-width:40px;height:40px;padding:8px;color:inherit;border-radius:50%}.satus-header .satus-section--align-start>*{margin-right:8px}.satus-header .satus-span--title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1}.satus-alert{display:flex;box-sizing:border-box;min-height:48px;margin:8px;padding:8px 16px;border-radius:8px;align-items:center}.satus-alert--error{color:#cf7777;border:1px solid #6f1f1f;background:#501616}.satus-layers{position:relative;overflow:hidden;color:var(--satus-layers-text);background:var(--satus-layers-background);flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;box-sizing:border-box;width:100%;height:100%;padding:0 12px;flex-wrap:wrap;align-content:flex-start}.satus-divider{height:1px;margin:16px 0 12px;background:var(--satus-divider)}.satus-input[type=password],.satus-input[type=text]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:0;padding:0 8px;color:var(--satus-text-field--text,inherit);border:none;outline:0;background:0 0;appearance:none;font-size:16px;margin:8px 0;padding:4px 8px;border:1px solid var(--satus-text-field--border);border-radius:4px;background-color:var(--satus-text-field--background)}.satus-aside{color:var(--satus-aside-text);background:var(--satus-aside-background);box-sizing:border-box}.satus-select{position:relative;display:flex;box-sizing:border-box;align-items:center;justify-content:space-between}.satus-select__content{display:flex;align-items:center}.satus-select__content>svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75}.satus-select__value{margin-left:16px;text-align:right;opacity:.75}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;padding:inherit;cursor:pointer;opacity:0;color:inherit;border:none;outline:0;background:0 0;appearance:none}.satus-select:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-modal--contextmenu .satus-modal__scrim{background:0 0;backdrop-filter:none;animation:none;visibility:visible;opacity:1;transform:none}.satus-modal--contextmenu .satus-modal__surface{position:absolute;margin:0;box-sizing:border-box;min-width:200px;max-width:200px;padding:4px 0;border-radius:4px;border:1px solid var(--satus-context-menu--border);box-shadow:none;animation:none;visibility:visible;opacity:1;transform:none}.satus-modal--contextmenu .satus-modal__surface>*{display:flex;height:32px;padding:0 16px;align-items:center}.satus-modal--contextmenu .satus-modal__surface .satus-button svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75;fill:none;stroke:var(--satus-primary);flex:0 0 20px}.satus-modal--contextmenu .satus-modal__surface .satus-button .satus-span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1s;opacity:var(--satus-pluviam-opacity,.08);border-radius:50%;background:var(--satus-pluviam-background,#000);animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:var(--satus-pluviam-opacity,.08)}70%{transform:scale(.8);opacity:var(--satus-pluviam-opacity,.08)}100%{transform:scale(1);opacity:0}}.satus-sortable__chosen{color:var(--satus-sortable-text)!important;background-color:var(--satus-sortable-background)!important}.satus-sortable__ghost{position:fixed!important;z-index:999!important;top:0!important;left:0!important;pointer-events:none!important;box-shadow:0 1px 3px rgb(0,0,0,.2),0 4px 8px rgb(0,0,0,.1),inset 0 0 0 1px rgb(0,0,0,.16);will-change:transform!important;opacity:.8!important} \ No newline at end of file diff --git a/satus.js b/satus.js deleted file mode 100644 index 7f3c29a6e..000000000 --- a/satus.js +++ /dev/null @@ -1 +0,0 @@ -var satus={components:{},events:{},locale:{strings:{}},storage:{attributes:{},data:{}},append:function(e,t){(t||document.body).appendChild(e)},getAnimationDuration:function(e){return 1e3*Number(window.getComputedStyle(e).getPropertyValue("animation-duration").replace(/[^0-9.]/g,""))},attr:function(e,t){if(t)for(var n in t){var a;e.is_svg?e.setAttributeNS(null,n,t[n]):(a=t[n],-1!==["placeholder","title"].indexOf(n)&&(a=satus.locale.get(a)),e.setAttribute(n,a))}},elementIndex:function(e){return Array.prototype.slice.call(e.parentNode.children).indexOf(e)},data:function(e,t){if(t)for(var n in t)e.dataset[n]=t[n]},properties:function(e,t){if(t)for(var n in t)e[n]=t[n]},camelize:function(e){for(var t="",n=0,a=e.length;nparseInt(e,16)),a={name:"AES-GCM",iv:new Uint8Array(n)};try{var s=(new TextDecoder).decode(await crypto.subtle.decrypt(a,await crypto.subtle.importKey("raw",await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t)),a,!1,["decrypt"]),new Uint8Array(atob(e.slice(24)).match(/[\s\S]/g).map(e=>e.charCodeAt(0)))))}catch(e){return!1}return s},satus.encrypt=async function(e,t){var n=crypto.getRandomValues(new Uint8Array(12)),a={name:"AES-GCM",iv:n};return Array.from(n).map(e=>("00"+e.toString(16)).slice(-2)).join("")+btoa(Array.from(new Uint8Array(await crypto.subtle.encrypt(a,await crypto.subtle.importKey("raw",await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t)),a,!1,["encrypt"]),(new TextEncoder).encode(e)))).map(e=>String.fromCharCode(e)).join(""))},satus.isArray=function(e){return!!Array.isArray(e)},satus.isNumber=function(e){return"number"==typeof e&&!1===isNaN(e)},satus.indexOf=function(e,t){var n=0;if(satus.isArray(t))n=t.indexOf(e);else for(;e=e.previousElementSibling;)n++;return n},satus.toIndex=function(e,t,n){satus.isArray(n)&&n.splice(e,0,n.splice(satus.indexOf(t,n),1)[0])},satus.clone=function(e){for(var t=e.cloneNode(!0),n=window.getComputedStyle(e.parentNode),a=window.getComputedStyle(e),s="",o=0,r=a.length;oImprovedTube - - - - + + + + - - - - + + + + - - + + - \ No newline at end of file diff --git a/ui/page.js b/ui/page.js index 0ee076cbd..811bb0aa4 100644 --- a/ui/page.js +++ b/ui/page.js @@ -3,30 +3,30 @@ --------------------------------------------------------------*/ document.addEventListener('DOMContentLoaded', function () { - var charset = document.createElement('meta'), - viewport = document.createElement('meta'), - title = document.createElement('title'), - style = document.createElement('style'); + var charset = document.createElement('meta'), + viewport = document.createElement('meta'), + title = document.createElement('title'), + style = document.createElement('style'); - charset.setAttribute('charset', 'utf-8'); - viewport.setAttribute('name', 'viewport'); - viewport.setAttribute('content', 'width=device-width,initial-scale=1'); + charset.setAttribute('charset', 'utf-8'); + viewport.setAttribute('name', 'viewport'); + viewport.setAttribute('content', 'width=device-width,initial-scale=1'); - title.textContent = 'ImprovedTube'; - style.textContent = 'body{width:100vw;height:100vh}'; + title.textContent = 'ImprovedTube'; + style.textContent = 'body{width:100vw;height:100vh}'; - for (var i = document.head.childNodes.length - 1; i > -1; i--) { - document.head.childNodes[i].remove(); - } + for (var i = document.head.childNodes.length - 1; i > -1; i--) { + document.head.childNodes[i].remove(); + } - document.head.appendChild(charset); - document.head.appendChild(viewport); - document.head.appendChild(title); - document.head.appendChild(style); + document.head.appendChild(charset); + document.head.appendChild(viewport); + document.head.appendChild(title); + document.head.appendChild(style); - document.documentElement.setAttribute('page', true); + document.documentElement.setAttribute('page', true); - for (var i = document.body.childNodes.length - 1; i > -1; i--) { - document.body.childNodes[i].remove(); - } + for (var i = document.body.childNodes.length - 1; i > -1; i--) { + document.body.childNodes[i].remove(); + } }); \ No newline at end of file diff --git a/ui/popup.html b/ui/popup.html index 6b97f8331..47d0fdd56 100644 --- a/ui/popup.html +++ b/ui/popup.html @@ -10,27 +10,11 @@ height: 500px } - - + + - \ No newline at end of file diff --git a/ui/satus/satus.css b/ui/satus/satus.css index 988b2d165..7df25f0f5 100644 --- a/ui/satus/satus.css +++ b/ui/satus/satus.css @@ -1,1676 +1 @@ - -/*-------------------------------------------------------------- ->>> THEMES: ----------------------------------------------------------------- -# Default -# Dark -# Black ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# DEFAULT ---------------------------------------------------------------*/ - -body { - --satus-contrast: 0, 0, 0; - --satus-primary: #f6b465; - --satus-hover: rgba(var(--satus-contrast), .04); - - --satus-alert-error-background: #fde6e6; - --satus-alert-error-border: #ecd7d7; - --satus-alert-error-color: #ad5f5f; - - --satus-checkbox--background: rgb(90, 90, 73, .08); - --satus-checkbox--border: rgb(90, 90, 73, .16); - --satus-checkbox--mark: #fff; - - --satus-divider: rgba(var(--satus-contrast),.1); - - --satus-header-background: #fff; - --satus-header-border: rgba(var(--satus-contrast),.1); - --satus-header-text: #8f8f8f; - - --satus-layers-background: #f6f5f4; - --satus-layers-text: #8f8f8f; - - --satus-modal-background: #f6f6f4; - --satus-modal-border: rgba(var(--satus-contrast), .1); - --satus-modal-text: #8f8f8f; - - --satus-section-card-background: #fff; - --satus-section-card-border: rgba(var(--satus-contrast),.1); - - --satus-select-background: #f6f6f4; - --satus-select-text: #8f8f8f; - - --satus-switch-background: rgba(var(--satus-contrast),.08); - --satus-switch-track: #e0e0e0; - --satus-switch-track--active: var(--satus-primary); - --satus-switch-thumb: #fff; - - --satus-tabs-background: #e8e8e3; - --satus-tabs-foreground: #fff; - --satus-tabs-border: rgba(var(--satus-contrast), .1); - - --satus-text-field--background: #38384d; - --satus-text-field--text: #9595b2; - - - --satus-tooltip: rgba(var(--satus-contrast),.4); - --satus-sortable-ghost: rgba(var(--satus-contrast), .80); - --satus-sortable-background: rgba(var(--satus-contrast), .08); - --satus-sortable-text: currentColor; - - --satus-slider-background: #fff; -} - - -/*-------------------------------------------------------------- -# DARK ---------------------------------------------------------------*/ - -body[data-theme=dark] { - --satus-contrast: 255, 255, 255; - --satus-primary: #8f8f8f; - --satus-switch-background: rgba(var(--satus-contrast),.08); - --satus-header-background: #1f1f1f; - --satus-header-border: rgba(var(--satus-contrast),.08); - --satus-header-text: #ccc; - --satus-layers-background: #000; - --satus-layers-text: #ccc; - --satus-section-card-background: #1e1e1e; - --satus-section-card-border: rgba(var(--satus-contrast),.08); - --satus-modal-background: #212121; - --satus-modal-border: rgba(var(--satus-contrast),.08); - --satus-modal-text: #ccc; - --satus-hover: rgba(var(--satus-contrast), .05); - --satus-text-field--background: #333333; - --satus-text-field--border: #525252; - --satus-text-field--text: #ccc; - --satus-switch-track: #111; - --satus-switch-track--active: var(--satus-primary); - --satus-switch-thumb: #ddd; - --satus-tooltip: rgba(var(--satus-contrast),.4); - --satus-sortable-ghost: rgba(var(--satus-contrast), .8); - --satus-sortable-background: rgba(var(--satus-contrast), .1); - --satus-sortable-text: #fff; - --satus-divider: rgba(var(--satus-contrast),.08); - --satus-tabs-background: #111; - --satus-tabs-foreground: #2e2e2e; - --satus-tabs-border: #2f2f2f; - --satus-checkbox--background: rgb(var(--satus-contrast), .08); - --satus-checkbox--border: #2f2f2f; - --satus-checkbox--mark: #fff; - --satus-alert-error-background: #501616; - --satus-alert-error-border: #6f1f1f; - --satus-alert-error-color: #cf7777; - --satus-slider-background: #333333; -} - - -/*-------------------------------------------------------------- -# BLACK ---------------------------------------------------------------*/ - -body[data-theme=black] { - --satus-contrast: 255, 255, 255; - --satus-primary: #8f8f8f; - --satus-switch-background: rgba(var(--satus-contrast),.08); - --satus-header-background: #000; - --satus-header-border: rgba(var(--satus-contrast),.16); - --satus-header-text: #ccc; - --satus-layers-background: #000; - --satus-layers-text: #ccc; - --satus-section-card-background: #000; - --satus-section-card-border: rgba(var(--satus-contrast),.16); - --satus-modal-background: #000; - --satus-modal-border: rgba(var(--satus-contrast),.16); - --satus-modal-text: #ccc; - --satus-hover: rgba(var(--satus-contrast), .05); - --satus-text-field--background: #333333; - --satus-text-field--border: #525252; - --satus-text-field--text: #ccc; - --satus-switch-track: rgba(var(--satus-contrast),.16); - --satus-switch-track--active: var(--satus-primary); - --satus-switch-thumb: #ddd; - --satus-tooltip: rgba(var(--satus-contrast),.4); - --satus-sortable-ghost: rgba(var(--satus-contrast), .8); - --satus-sortable-background: rgba(var(--satus-contrast), .1); - --satus-sortable-text: #fff; - --satus-divider: rgba(var(--satus-contrast),.08); - --satus-tabs-background: #111; - --satus-tabs-foreground: #2e2e2e; - --satus-tabs-border: #2f2f2f; - --satus-checkbox--background: rgb(var(--satus-contrast), .08); - --satus-checkbox--border: #2f2f2f; - --satus-checkbox--mark: #fff; - --satus-alert-error-background: #501616; - --satus-alert-error-border: #6f1f1f; - --satus-alert-error-color: #cf7777; - --satus-slider-background: #333333; -} -/*-------------------------------------------------------------- ->>> ELEMENTS: ----------------------------------------------------------------- -# Reset -# Attributes - # Hidden ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# RESET ---------------------------------------------------------------*/ - -:where([class^=satus]:not(iframe, canvas, img, svg, video, svg *, symbol *)) { - display: revert; - all: unset; -} - -:where([class^=satus]:not(iframe, canvas, img, svg, video, svg *, symbol *)) { - box-sizing: border-box; -} - - -/*-------------------------------------------------------------- -# ATTRIBUTES ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# HIDDEN ---------------------------------------------------------------*/ - -[class^=satus][hidden] { - display: none; -} -/*-------------------------------------------------------------- ->>> PLUVIAM ---------------------------------------------------------------*/ - -.satus-pluviam { - position: absolute; - transform: scale(0); - animation-name: pluviam; - animation-duration: 1000ms; - opacity: var(--satus-pluviam-opacity, .08); - border-radius: 50%; - background: var(--satus-pluviam-background, #000); - animation-fill-mode: forwards; -} - -@keyframes pluviam { - 0% { - transform: scale(0); - opacity: var(--satus-pluviam-opacity, .08); - } - 70% { - transform: scale(.8); - opacity: var(--satus-pluviam-opacity, .08); - } - 100% { - transform: scale(1); - opacity: 0; - } -} -/*-------------------------------------------------------------- ->>> SORTABLE ---------------------------------------------------------------*/ - -.satus-sortable__chosen { - color: var(--satus-sortable-text) !important; - background-color: var(--satus-sortable-background) !important; -} - -.satus-sortable__ghost { - position: fixed !important; - z-index: 999 !important; - top: 0 !important; - left: 0 !important; - pointer-events: none !important; - box-shadow: 0 1px 3px rgb(0, 0, 0, .2), 0 4px 8px rgb(0, 0, 0, .1), inset 0 0 0 1px rgb(0, 0, 0, .16); - will-change: transform !important; - opacity: .8 !important; -} -/*-------------------------------------------------------------- ->>> CONTEXT MENU ---------------------------------------------------------------*/ - -.satus-modal--contextmenu .satus-modal__scrim { - background: none; - backdrop-filter: none; - animation: none; - visibility: visible; - opacity: 1; - transform: none; -} - -.satus-modal--contextmenu .satus-modal__surface { - position: absolute; - margin: 0; - box-sizing: border-box; - min-width: 200px; - max-width: 200px; - padding: 4px 0; - border-radius: 4px; - box-shadow: none; - animation: none; - visibility: visible; - opacity: 1; - transform: none; -} - -.satus-modal--contextmenu .satus-modal__surface > * { - -} - -.satus-modal--contextmenu .satus-modal__surface>* { - display: flex; - height: 32px; - padding: 0 16px; - align-items: center; -} - -.satus-modal--contextmenu .satus-modal__surface .satus-button svg { - width: 20px; - height: 18px; - margin: 0 14px 0 0; - opacity: .75; - fill: none; - stroke: var(--satus-primary); - flex: 0 0 20px; -} - -.satus-modal--contextmenu .satus-modal__surface .satus-button .satus-span { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -/*-------------------------------------------------------------- ->>> BASE ---------------------------------------------------------------*/ - -.satus-base { - display: flex; - flex-direction: column; - width: 100%; - height: 100% -} -/**/ - -.satus-aside { - color: var(--satus-aside-text); - background: var(--satus-aside-background); - box-sizing: border-box; -} -/*-------------------------------------------------------------- ->>> RADIO ---------------------------------------------------------------*/ -/*-------------------------------------------------------------- ->>> CHECKBOX ---------------------------------------------------------------*/ - -.satus-checkbox { - position: relative; - font: inherit; - display: flex; - color: inherit; - border: none; - background: transparent; - appearance: none; - align-items: center; - justify-content: flex-start; -} - -.satus-checkbox:hover { - cursor: pointer; - background-color: var(--satus-hover); -} - -.satus-checkbox:focus { - outline: none; -} - -.satus-checkbox__content { - display: block; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; -} - -.satus-checkbox::before { - display: flex; - min-width: 16px; - width: 16px; - height: 16px; - margin: 0 12px 0 0; - content: ''; - border: 1px solid var(--satus-checkbox--border); - border-radius: 6px; - background: var(--satus-checkbox--background); - align-items: center; - justify-content: center; -} - -.satus-checkbox[data-value=true]::before { - background: var(--satus-primary); -} - -.satus-checkbox[data-value=true]::after { - position: absolute; - top: 20px; - left: 20px; - width: 8px; - height: 4px; - content: ''; - transform: rotate(-45deg); - border: 2px solid var(--satus-checkbox--mark); - border-top: none; - border-right: none; -} -/*-------------------------------------------------------------- ->>> SELECT ---------------------------------------------------------------*/ - -.satus-select { - position: relative; - display: flex; - cursor: pointer; - align-items: center; - justify-content: space-between; -} - -.satus-select:hover { - background-color: var(--satus-hover); -} - -.satus-select>span:nth-child(2) { - display: flex; - align-items: center; -} - -.satus-select>span:nth-child(2)>svg { - width: 20px; - height: 18px; - margin: 0 14px 0 0; - opacity: .75; -} - -.satus-select>span:nth-child(3) { - margin-left: 16px; - text-align: right; - opacity: .75; -} - -.satus-select select { - font: inherit; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - margin: 0; - padding: inherit; - opacity: 0; - border: none; - outline: none; - appearance: none; - z-index: 1; -} - -.satus-select option { - color: var(--satus-select-text); - background: var(--satus-select-background); -} -/*-------------------------------------------------------------- ->>> SHORTCUT: ----------------------------------------------------------------- -# ---------------------------------------------------------------*/ - -.satus-shortcut { - justify-content: space-between; -} - -.satus-shortcut__value { - font-size: 11px; - display: flex; - text-transform: uppercase; - align-items: center; -} - -.satus-shortcut__actions { - display: flex; - justify-content: flex-end; -} - -.satus-shortcut__actions .satus-button { - height: 32px; - margin: 8px 4px 0; - border-radius: 8px; - background: rgba(0, 0, 0, .15); -} - -.satus-shortcut__actions .satus-button:hover { - background: rgba(0, 0, 0, .25); -} - -.satus-shortcut__primary { - display: flex; - box-sizing: border-box; - width: 100%; - height: 68px; - padding: 16px; - background: rgba(0, 0, 0, .16); - align-items: center; -} - -.satus-shortcut__key { - display: flex; - box-sizing: border-box; - min-width: 32px; - height: 32px; - padding: 4px 8px; - border-radius: 4px; - background: #fff; - color: #575757; - box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); - align-items: center; - justify-content: center; -} - -.satus-shortcut__value>.satus-shortcut__key { - font-size: 14px; - min-width: 24px; - height: 24px; -} - -.satus-shortcut__plus { - position: relative; - width: 12px; - height: 12px; - margin: 8px; -} - -.satus-shortcut__plus::before { - position: absolute; - top: 0; - left: 5px; - width: 2px; - height: 12px; - content: ''; - background-color: #aaa; -} - -.satus-shortcut__plus::after { - position: absolute; - top: 5px; - left: 0; - width: 12px; - height: 2px; - content: ''; - background-color: #aaa; -} - -.satus-shortcut__mouse { - position: relative; - display: flex; - width: 28px; - height: 36px; - border-radius: 50%; - border-top-left-radius: 12px; - border-top-right-radius: 12px; - background: #fff; - box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); -} - -.satus-shortcut__value>.satus-shortcut__mouse { - width: 22px; - height: 28px; -} - -.satus-shortcut__mouse>div { - position: absolute; - top: 0; - left: calc(50% - 1px); - width: 2px; - height: 11px; - border-radius: 2px; - background: #ccc; -} - -.satus-shortcut__mouse::before { - position: absolute; - top: -16%; - right: 14%; - width: 2px; - height: 60%; - content: ''; - background: #f96754; -} - -.satus-shortcut__mouse.false::before { - top: -6%; -} - -.satus-shortcut__mouse.false::after { - position: absolute; - top: -20%; - right: calc(14% - 4px); - width: 0; - height: 0; - content: ''; - border-right: 5px solid transparent; - border-bottom: 8px solid #f96754; - border-left: 5px solid transparent; -} - -.satus-shortcut__mouse.true::after { - position: absolute; - top: 40%; - right: calc(14% - 4px); - width: 0; - height: 0; - content: ''; - border-top: 8px solid #f96754; - border-right: 5px solid transparent; - border-left: 5px solid transparent; -} - -.satus-shortcut__mouse.click::before { - position: absolute; - top: 0; - left: -1px; - width: 10px; - height: 10px; - content: ''; - border-radius: 50%; - background: #f96754; -} - -.satus-shortcut__mouse.middle::before { - position: absolute; - top: 0; - left: 50%; - width: 10px; - height: 10px; - content: ''; - border-radius: 50%; - background: #f96754; - z-index: 1; - transform: translateX(-50%); -} - -.satus-shortcut__mouse.context::before { - position: absolute; - top: 0; - left: 15px; - width: 10px; - height: 10px; - content: ''; - border-radius: 50%; - background: #f96754; -} - -.satus-section_shortcut { - width: 100%; - margin: 8px 0 0; - justify-content: flex-end; -} - -.satus-button_shortcut { - font-weight: 500; - overflow: hidden; - height: 28px; - min-height: 28px; - margin-right: 2px; - padding: 4px 8px; - text-transform: uppercase; - color: #f96754; - border-radius: 4px; -} -/*-------------------------------------------------------------- ->>> SWITCH ----------------------------------------------------------------- -# Container -# Track -# Thumb ---------------------------------------------------------------*/ - - -/*-------------------------------------------------------------- -# CONTAINER ---------------------------------------------------------------*/ - -.satus-switch { - font: inherit; - display: flex; - transition: background-color 75ms; - color: inherit; - border: none; - outline: none; - background-color: transparent; - justify-content: space-between; - align-items: center; -} - -.satus-switch:hover { - cursor: pointer; -} - -.satus-switch__content { - display: flex; - align-items: center; -} - -.satus-switch__content>svg { - width: 20px; - height: 18px; - margin: 0 14px 0 0; - opacity: .75; -} - - -/*-------------------------------------------------------------- -# TRACK ---------------------------------------------------------------*/ - -.satus-switch>i { - width: 32px; - height: 18px; - transition: background-color 150ms; - border-radius: 18px; - background-color: var(--satus-switch-track); - flex: 0 0 32px; -} - -.satus-section--card .satus-switch>i { - margin-left: 16px; -} - -.satus-switch[data-value='true']>i { - background-color: var(--satus-switch-track--active); -} - - -/*-------------------------------------------------------------- -# THUMB ---------------------------------------------------------------*/ - -.satus-switch>i::before { - display: block; - width: 14px; - height: 14px; - margin: 2px; - content: ''; - transition: transform 150ms cubic-bezier(.4, 0, .2, 1); - border-radius: 50%; - background-color: var(--satus-switch-thumb); - will-change: transform; -} - -.satus-switch[data-value='true']>i::before { - transform: translateX(14px); -} -/*-------------------------------------------------------------- ->>> LAYERS ---------------------------------------------------------------*/ - -.satus-layers { - position: relative; - overflow: hidden; - color: var(--satus-layers-text); - background: var(--satus-layers-background); - flex: 1; -} - -.satus-layer { - position: absolute; - top: 0; - left: 0; - display: flex; - overflow-y: auto; - flex-direction: column; - box-sizing: border-box; - width: 100%; - height: 100%; - padding: 0 12px; - align-content: center; -} -/*-------------------------------------------------------------- -# INPUT ---------------------------------------------------------------*/ - -.satus-input[type=text], -.satus-input[type=password], -.satus-input[type=number] { - font: inherit; - box-sizing: border-box; - width: 100%; - margin: 0; - padding: 6px 8px; - color: var(--satus-text-field--text, inherit); - border: none; - outline: none; - background: none; - appearance: none; - font-size: 16px; - margin: 8px 0; - border: 1px solid var(--satus-text-field--border); - border-radius: 4px; - background-color: var(--satus-text-field--background); -} -/*-------------------------------------------------------------- ->>> MENUBAR ---------------------------------------------------------------*/ - -.satus-menubar { - display: flex; -} - -.satus-menubar, -.satus-menubar ul { - margin: 0; - padding: 0; - list-style: none; - color: var(--satus-menubar-text); - background: var(--satus-menubar-background); -} - -.satus-menubar li { - position: relative; -} - -.satus-menubar li:focus, -.satus-menubar li:hover { - background: var(--satus-menubar-hover); -} - -.satus-menubar>li ul { - position: absolute; - min-width: 126px; -} - -.satus-menubar>li>ul ul { - top: 0; - left: 100%; -} - -.satus-menubar li>ul { - position: absolute; - display: none; -} - -.satus-menubar li>*:not(ul):focus+ul, -.satus-menubar li>*:not(ul):hover+ul, -.satus-menubar li>ul:hover { - display: block; -} - -.satus-menubar li> :not(ul) { - font-size: 14px; - display: flex; - width: 100%; - height: 32px; - align-items: center; -} -/*-------------------------------------------------------------- -# MAIN ---------------------------------------------------------------*/ - -.satus-main { - color: var(--satus-main-text); - background: var(--satus-main-background); - overflow-y: auto; - box-sizing: border-box; -} -/*-------------------------------------------------------------- -# SCROLLBAR ---------------------------------------------------------------*/ - -::-webkit-scrollbar { - width: 4px; -} - -::-webkit-scrollbar:hover { - width: 8px; -} - -::-webkit-scrollbar-thumb { - background: rgba(var(--satus-contrast), .3); -} -/*-------------------------------------------------------------- ->>> TEXTAREA ---------------------------------------------------------------*/ - -.satus-textarea { - position: relative; - display: flex; - overflow: hidden; - color: var(--satus-textarea-color, inherit); - background: var(--satus-textarea-background); -} - -.satus-textarea textarea { - font-size: inherit; - line-height: 1.2; - overflow: auto; - width: 100%; - height: 100%; - padding: 0; - resize: none; - white-space: pre; - word-break: break-all; - color: inherit; - border: none; - outline: none; - background: transparent; - overflow-wrap: normal; -} - -.satus-textarea__line-number { - padding: 0 16px 0 8px; - opacity: .5; -} - -.satus-textarea__line-number>span { - font-size: inherit; - line-height: 1.2; - display: block; - width: 100%; - text-align: right; -} -/*-------------------------------------------------------------- ->>> DIVIDER ---------------------------------------------------------------*/ - -.satus-divider { - height: 1px; - margin: 16px 0 12px; - background: var(--satus-divider); -} -/*-------------------------------------------------------------- ->>> TEXT FIELD ---------------------------------------------------------------*/ - -.satus-text-field { - position: relative; - padding: 0 16px; - background-color: var(--satus-text-field--background); - border-radius: 8px; - color: var(--satus-text-field--text); - overflow: hidden; - display: flex; -} - -.satus-text-field__pre { - display: flex; - position: relative; - height: 100%; - margin: 0; - padding: 0; - overflow: hidden; - align-items: center; - flex: 1; -} - -.satus-text-field__input { - font: inherit; - position: absolute; - top: 0; - left: 0; - width: 100%; - min-width: 0; - max-width: none; - height: 100%; - min-height: 0; - max-height: none; - margin: 0; - padding: 0; - opacity: 0; - border: none; - appearance: none; - z-index: 9; -} - -.satus-text-field__hidden-text { - position: absolute; - pointer-events: none; - opacity: 0; -} - -.satus-text-field__text { - position: absolute; - top: 0; - left: 0; - display: flex; - height: 100%; - margin: 0; - align-items: center; -} - -.satus-text-field__cursor { - position: absolute; - top: 6px; - left: 0; - display: none; - width: 2px; - height: 25px; - animation: blink 1s step-end 8; - background: #fa0; -} - -.satus-text-field__selection { - position: absolute; - top: 5px; - left: 0; - display: none; - width: 0; - height: 25px; - border: 1px solid rgba(255, 255, 255, .2); - border-radius: 3px; - background: rgba(255, 255, 255, .1); -} - -.satus-text-field__input:focus + * + * + * + .satus-text-field__cursor, -.satus-text-field__selection:not([disabled]) { - display: block; -} - -@keyframes blink { - from, - to { - opacity: 1; - } - 50% { - opacity: 0; - } -} - - -/*-------------------------------------------------------------- -# SYNTAX HIGHLIGHTING ---------------------------------------------------------------*/ - -.satus-text-field__text>.group { - color: #47ff47; - background-color: rgb(71, 255, 71, .16); -} - -.satus-text-field__text>.character-class { - color: #ffc247; - background-color: rgb(255, 170, 0, .16); -} - -.satus-text-field__text>.quantifier { - color: #47c2ff; - background-color: rgb(71, 194, 255, .16); -} - -.satus-text-field__text>.anchor { - color: #47c2ff; - background-color: rgb(71, 194, 255, .16); -} - -.satus-text-field__text>.metasequence { - color: #47ff47; - background-color: rgb(71, 255, 71, .16); -} - -.satus-text-field__text>.text { - color: #c4c4d4; - background-color: rgb(196, 196, 212, .16); -} -/*-------------------------------------------------------------- ->>> TABS ---------------------------------------------------------------*/ - -.satus-tabs { - display: flex; - height: 26px !important; -} - -.satus-tabs__content { - position: relative; - overflow: hidden; - width: 100%; - height: 100%; - border: 2px solid var(--satus-tabs-background); - border-radius: 4px; - background: var(--satus-tabs-background); - display: flex; -} - -.satus-tabs__selection { - position: absolute; - z-index: 0; - top: 0; - left: 0; - height: 100%; - transition: left .25s; - border-radius: 4px; - background: var(--satus-tabs-foreground); - box-sizing: border-box; - border: 1px solid var(--satus-tabs-border); -} - -.satus-tabs__button { - font: inherit; - position: relative; - z-index: 1; - overflow: hidden; - height: 100%; - padding: 0 4px; - white-space: nowrap; - text-overflow: ellipsis; - color: inherit; - border: none; - background: transparent; - flex: 1; - text-align: center; -} - -.satus-tabs__button:hover { - cursor: pointer; -} -/*-------------------------------------------------------------- ->>> ALERT ---------------------------------------------------------------*/ - -.satus-alert { - display: flex; - box-sizing: border-box; - min-height: 48px; - margin: 8px 0 0; - padding: 8px 16px; - border-radius: 8px; - align-items: center; -} - -.satus-alert--error { - color: var(--satus-alert-error-color); - border: 1px solid var(--satus-alert-error-border); - background: var(--satus-alert-error-background); -} -/*-------------------------------------------------------------- ->>> SLIDER ---------------------------------------------------------------*/ - -.satus-slider { - display: block; - background: var(--satus-slider-background); -} - -.satus-slider__label { - display: flex; - margin: 12px 0 0; - justify-content: space-between; - align-items: center; -} - -.satus-slider .satus-input[type=number] { - font: inherit; - width: 64px; - margin: 0; - padding: 0; - text-align: right; - color: inherit; - background: transparent; -} - -.satus-slider__track { - position: relative; - display: block; - min-width: 128px; - height: 40px; - margin: 0 2px; -} - -.satus-slider__track::before { - position: absolute; - top: 50%; - left: 0; - display: block; - width: 100%; - height: 2px; - content: ''; - transform: translateY(-50%); - opacity: .24; - background: var(--satus-primary); -} - -.satus-slider__slice { - position: absolute; - top: 50%; - left: 0; - height: 2px; - transform: translateY(-50%); - background: var(--satus-primary); -} - -.satus-slider__slice::before { - position: absolute; - top: 50%; - right: 0; - display: block; - width: 22px; - height: 22px; - content: ''; - transition: width 200ms, height 200ms, opacity 200ms; - transform: translate(50%, -50%); - opacity: 0; - border-radius: 50%; - background: var(--satus-primary); -} - -.satus-slider__track:focus .satus-slider__slice::before { - width: 32px; - height: 32px; - opacity: .16; -} - -.satus-slider__slice::after { - position: absolute; - top: 50%; - right: 0; - display: block; - width: 10px; - height: 10px; - content: ''; - transition: width 200ms, height 200ms; - transform: translate(50%, -50%); - border-radius: 50%; - background: var(--satus-primary); -} - -.satus-slider__track:focus .satus-slider__slice::after { - width: 12px; - height: 12px; -} -/*-------------------------------------------------------------- ->>> COLOR PICKER: ----------------------------------------------------------------- -# Button -# Modal ---------------------------------------------------------------*/ - - -/*-------------------------------------------------------------- -# BUTTON ---------------------------------------------------------------*/ - -.satus-color-picker { - font-size: inherit; - position: relative; - display: flex; - box-sizing: border-box; - margin: 0; - cursor: pointer; - color: inherit; - border: none; - outline: none; - background-color: var(--satus-theme-button); - justify-content: space-between; - -webkit-tap-highlight-color: transparent; - align-items: center; - -webkit-appearance: none; -} - -.satus-color-picker__value { - width: 22px; - height: 22px; - border: 2px solid rgba(0, 0, 0, .16); - border-radius: 50%; - background: #fff; -} - - -/*-------------------------------------------------------------- -# MODAL ---------------------------------------------------------------*/ - -.satus-modal--color-picker { - position: relative; -} - -.satus-modal--color-picker .satus-modal__surface { - padding-top: 0; -} - -.satus-color-picker__palette { - position: relative; - overflow: hidden; - width: 100%; - height: 256px; - background-color: #f00; -} - -.satus-color-picker__palette:before { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - content: ''; - background-image: linear-gradient(0deg, black, transparent), linear-gradient(90deg, white, transparent); -} - -.satus-color-picker__cursor { - position: absolute; - width: 5px; - height: 5px; - transform: translate(-50%, -50%); - pointer-events: none; - border: 1px solid #fff; - border-radius: 50%; - box-shadow: 0 0 0 1px #000; -} - -.satus-modal--color-picker .satus-modal__surface .satus-section--color { - margin: 8px 16px 0; - align-items: center; -} - -.satus-color-picker__color { - width: 32px; - height: 32px; - margin: 0 16px 0 0; - border: 2px solid rgba(0, 0, 0, .16); - border-radius: 50%; - background: #f00; -} - -.satus-slider.satus-color-picker__hue { - padding: 0; - flex: 1; -} - -.satus-color-picker__hue .satus-slider__track { - height: 16px; - border-radius: 4px; - background-image: linear-gradient(90deg, #f00, #ff2a00, #f50, #ff7f00, #fa0, #ffd400, #ff0, #d4ff00, #af0, #80ff00, #5f0, #2bff00, #0f0, #00ff2b, #0f5, #00ff80, #0fa, #00ffd5, #0ff, #00d4ff, #0af, #007fff, #05f, #002bff, #00f, #2a00ff, #50f, #7f00ff, #a0f, #d400ff, #f0f, #ff00d4, #f0a, #ff0080, #f05, #ff002b, #f00); -} - -.satus-color-picker__hue .satus-slider__handle { - width: 16px; - height: 16px; - background: #fff; - box-shadow: 0 0 4px rgb(0, 0, 0, .64); -} - -.satus-color-picker__hue::before, -.satus-color-picker__hue .satus-slider__track-fill, -.satus-color-picker__hue .satus-slider__handle:focus::after { - display: none; -} -/*-------------------------------------------------------------- ->>> SECTION: ----------------------------------------------------------------- -# Align -# Card ---------------------------------------------------------------*/ - -.satus-section { - display: flex; - box-sizing: border-box; - flex-wrap: wrap; -} - - -/*-------------------------------------------------------------- -# ALIGN ---------------------------------------------------------------*/ - -.satus-section--align-start { - align-items: center; - justify-content: flex-start; -} - -.satus-section--align-end { - align-items: center; - justify-content: flex-end; -} - -.satus-section--space-between { - align-items: center; - justify-content: space-between; -} - -.satus-section--column { - flex-direction: column; -} - - -/*-------------------------------------------------------------- -# CARD ---------------------------------------------------------------*/ - -.satus-section--card { - flex-direction: column; - box-sizing: border-box; - width: 100%; - max-width: 900px; - margin: 8px auto; - padding: 8px 0; - color: var(--satus-section-card-text); - border: 1px solid var(--satus-section-card-border); - border-radius: 8px; - background: var(--satus-section-card-background); - justify-content: stretch; -} - -.satus-section--label { - width: 100%; - max-width: 900px; - margin: 8px auto; -} - -.satus-section--card>*:not(.satus-button) { - box-sizing: border-box; - min-height: 48px; - padding: 0 16px; - text-align: left; -} - -.satus-section--card>.satus-switch, -.satus-section--card>.satus-select, -.satus-section--card>.satus-radio { - display: flex; - justify-content: space-between; - align-items: center; -} - -.satus-section--card>.satus-button:hover, -.satus-section--card>.satus-switch:hover, -.satus-section--card>.satus-select:hover, -.satus-section--card>.satus-slider:hover, -.satus-section--card>.satus-radio:hover { - background-color: var(--satus-hover); -} - -.satus-section--card>.satus-button { - width: 100%; - padding: 0 16px; -} - -.satus-section--card>.satus-button>svg { - width: 20px; - margin: 2px 16px 0 0; - color: var(--satus-primary); -} - -.satus-section--card>.satus-span { - display: flex; - align-items: center; -} -/*-------------------------------------------------------------- ->>> LIST: ---------------------------------------------------------------*/ - -.satus-list { - list-style: none; - margin: 0; -} - -.satus-list__item { - display: flex; - align-items: center; - justify-content: space-between; - min-height: 48px; -} - -.satus-list__item>*:last-child { - text-align: right; -} -/*-------------------------------------------------------------- ->>> HEADER ---------------------------------------------------------------*/ - -.satus-header { - z-index: 1; - display: flex; - box-sizing: border-box; - height: 56px; - padding: 0 12px; - color: var(--satus-header-text); - background: var(--satus-header-background); - border-bottom: 1px solid var(--satus-header-border); - box-shadow: 0 0 3px rgb(0, 0, 0, .1); - align-items: center; - justify-content: space-between; -} - -.satus-header .satus-button { - width: 40px; - min-width: 40px; - height: 40px; - padding: 8px; - color: inherit; - border-radius: 50%; -} - -.satus-header .satus-section--align-start>* { - margin-right: 8px; -} - -.satus-header .satus-span--title { - font-size: 15px; - font-weight: 500; - overflow: hidden; - white-space: nowrap; - letter-spacing: .0125em; - text-overflow: ellipsis; - flex: 1; -} -/*-------------------------------------------------------------- -# BUTTON ---------------------------------------------------------------*/ - -.satus-button { - font: inherit; - position: relative; - display: flex; - overflow: hidden; - height: 48px; - margin: 0; - padding: 8px; - text-align: left; - color: var(--satus-button-text, inherit); - border: none; - background: var(--satus-button-background, transparent); - appearance: none; - align-items: center; -} - -.satus-button:hover { - cursor: pointer; - background-color: var(--satus-hover); -} - -.satus-button[hidden] { - display: none; -} - -.satus-button>svg { - min-width: 20px; -} - -.satus-button>.satus-span--label { - display: block; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -/*-------------------------------------------------------------- ->>> MODAL ---------------------------------------------------------------*/ - -.satus-modal { - position: absolute; - z-index: 100; - top: 0; - left: 0; - display: flex; - width: 100%; - height: 100vh; - justify-content: center; - align-items: center; -} - -.satus-modal__scrim { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - animation: modalFadeIn 150ms linear forwards; - opacity: 0; - background: rgba(0, 0, 0, .16); - backdrop-filter: blur(8px); -} - -.satus-modal__surface { - display: flex; - overflow-y: auto; - flex-direction: column; - width: 95%; - min-width: 240px; - max-width: 560px; - max-height: 80%; - margin: 0 16px; - padding: 12px 16px; - transform: scale(.8); - animation: modalZoomIn 150ms linear forwards; - animation-delay: 20ms; - opacity: 0; - color: var(--satus-modal-text); - border-radius: 6px; - background-color: var(--satus-modal-background); - border: 1px solid var(--satus-modal-border); - box-shadow: 0 2px 6px rgb(0, 0, 0, .15); - box-sizing: border-box; -} - -.satus-modal__surface .satus-section--actions { - display: flex; - width: 100%; - margin: 8px 0 0; - padding: 0; - justify-content: flex-end; - align-items: center; -} - -.satus-modal__surface .satus-section--actions .satus-button { - font-weight: 500; - height: 32px; - margin-left: 8px; - padding: 0 8px; - letter-spacing: .5px; - color: var(--satus-primary); - border-radius: 4px; -} - -.satus-modal__surface .satus-section--actions .satus-button:hover { - background: rgba(var(--satus-contrast), .075); -} - -.satus-modal--closing .satus-modal__scrim { - animation: modalFadeOut 70ms linear forwards; -} - -.satus-modal--closing .satus-modal__surface { - animation: modalZoomOut 70ms linear forwards; -} - -.satus-modal--vertical .satus-modal__surface { - position: absolute; - top: 8px; - right: 8px; - left: auto; - min-width: 200px; - max-width: 200px; - margin: 0; - padding: 8px 0; - transform-origin: right top; -} - -.satus-modal--vertical .satus-modal__surface>.satus-button, -.satus-modal--vertical .satus-modal__surface>.satus-switch, -.satus-modal--vertical .satus-modal__surface>.satus-select { - height: 36px; - padding: 0 16px; -} - -.satus-modal--vertical .satus-modal__surface>.satus-tabs { - padding: 0 12px; -} - -.satus-modal--vertical .satus-modal__surface>.satus-span { - font-size: 13px; - font-weight: 500; - margin: 6px 0; - padding: 0 12px; -} - -.satus-modal--vertical .satus-modal__surface>.satus-button:hover, -.satus-modal--vertical .satus-modal__surface>.satus-switch:hover, -.satus-modal--vertical .satus-modal__surface>.satus-select:hover { - background-color: var(--satus-hover); -} - -.satus-modal--vertical .satus-button svg { - width: 20px; - height: 18px; - margin: 0 14px 0 0; - opacity: .75; - flex: 0 0 20px; -} - -.satus-modal--vertical .satus-button .satus-span { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - - -/*-------------------------------------------------------------- -# ANIMATIONS ---------------------------------------------------------------*/ - -@keyframes modalFadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} - -@keyframes modalFadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - } -} - -@keyframes modalZoomIn { - from { - transform: scale(.8); - opacity: 0; - } - to { - transform: scale(1); - opacity: 1; - } -} - -@keyframes modalZoomOut { - from { - transform: scale(1); - opacity: 1; - } - to { - transform: scale(.8); - opacity: 0; - } -} \ No newline at end of file +body{--satus-contrast:0,0,0;--satus-primary:#f6b465;--satus-hover:rgba(var(--satus-contrast),.04);--satus-alert-error-background:#fde6e6;--satus-alert-error-border:#ecd7d7;--satus-alert-error-color:#ad5f5f;--satus-checkbox--background:rgb(90,90,73,.08);--satus-checkbox--border:rgb(90,90,73,.16);--satus-checkbox--mark:#fff;--satus-divider:rgba(var(--satus-contrast),.1);--satus-header-background:#fff;--satus-header-border:rgba(var(--satus-contrast),.1);--satus-header-text:#8f8f8f;--satus-layers-background:#f6f5f4;--satus-layers-text:#8f8f8f;--satus-modal-background:#f6f6f4;--satus-modal-border:rgba(var(--satus-contrast),.1);--satus-modal-text:#8f8f8f;--satus-section-card-background:#fff;--satus-section-card-border:rgba(var(--satus-contrast),.1);--satus-select-background:#f6f6f4;--satus-select-text:#8f8f8f;--satus-switch-background:rgba(var(--satus-contrast),.08);--satus-switch-track:#e0e0e0;--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#fff;--satus-tabs-background:#e8e8e3;--satus-tabs-foreground:#fff;--satus-tabs-border:rgba(var(--satus-contrast),.1);--satus-text-field--background:#38384d;--satus-text-field--text:#9595b2;--satus-tooltip:rgba(var(--satus-contrast),.4);--satus-sortable-ghost:rgba(var(--satus-contrast),.80);--satus-sortable-background:rgba(var(--satus-contrast),.08);--satus-sortable-text:currentColor;--satus-slider-background:#fff}body[data-theme=dark]{--satus-contrast:255,255,255;--satus-primary:#8f8f8f;--satus-switch-background:rgba(var(--satus-contrast),.08);--satus-header-background:#1f1f1f;--satus-header-border:rgba(var(--satus-contrast),.08);--satus-header-text:#ccc;--satus-layers-background:#000;--satus-layers-text:#ccc;--satus-section-card-background:#1e1e1e;--satus-section-card-border:rgba(var(--satus-contrast),.08);--satus-modal-background:#212121;--satus-modal-border:rgba(var(--satus-contrast),.08);--satus-modal-text:#ccc;--satus-hover:rgba(var(--satus-contrast),.05);--satus-text-field--background:#333333;--satus-text-field--border:#525252;--satus-text-field--text:#ccc;--satus-switch-track:#111;--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#ddd;--satus-tooltip:rgba(var(--satus-contrast),.4);--satus-sortable-ghost:rgba(var(--satus-contrast),.8);--satus-sortable-background:rgba(var(--satus-contrast),.1);--satus-sortable-text:#fff;--satus-divider:rgba(var(--satus-contrast),.08);--satus-tabs-background:#111;--satus-tabs-foreground:#2e2e2e;--satus-tabs-border:#2f2f2f;--satus-checkbox--background:rgb(var(--satus-contrast),.08);--satus-checkbox--border:#2f2f2f;--satus-checkbox--mark:#fff;--satus-alert-error-background:#501616;--satus-alert-error-border:#6f1f1f;--satus-alert-error-color:#cf7777;--satus-slider-background:#333333}body[data-theme=black]{--satus-contrast:255,255,255;--satus-primary:#8f8f8f;--satus-switch-background:rgba(var(--satus-contrast),.08);--satus-header-background:#000;--satus-header-border:rgba(var(--satus-contrast),.16);--satus-header-text:#ccc;--satus-layers-background:#000;--satus-layers-text:#ccc;--satus-section-card-background:#000;--satus-section-card-border:rgba(var(--satus-contrast),.16);--satus-modal-background:#000;--satus-modal-border:rgba(var(--satus-contrast),.16);--satus-modal-text:#ccc;--satus-hover:rgba(var(--satus-contrast),.05);--satus-text-field--background:#333333;--satus-text-field--border:#525252;--satus-text-field--text:#ccc;--satus-switch-track:rgba(var(--satus-contrast),.16);--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#ddd;--satus-tooltip:rgba(var(--satus-contrast),.4);--satus-sortable-ghost:rgba(var(--satus-contrast),.8);--satus-sortable-background:rgba(var(--satus-contrast),.1);--satus-sortable-text:#fff;--satus-divider:rgba(var(--satus-contrast),.08);--satus-tabs-background:#111;--satus-tabs-foreground:#2e2e2e;--satus-tabs-border:#2f2f2f;--satus-checkbox--background:rgb(var(--satus-contrast),.08);--satus-checkbox--border:#2f2f2f;--satus-checkbox--mark:#fff;--satus-alert-error-background:#501616;--satus-alert-error-border:#6f1f1f;--satus-alert-error-color:#cf7777;--satus-slider-background:#333333}:where([class^=satus]:not(iframe,canvas,img,svg,video,svg *,symbol *)){display:revert;all:unset;box-sizing:border-box}[class^=satus][hidden]{display:none}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1000ms;opacity:var(--satus-pluviam-opacity,.08);border-radius:50%;background:var(--satus-pluviam-background,#000);animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:var(--satus-pluviam-opacity,.08)}70%{transform:scale(.8);opacity:var(--satus-pluviam-opacity,.08)}100%{transform:scale(1);opacity:0}}.satus-sortable__chosen{color:var(--satus-sortable-text)!important;background-color:var(--satus-sortable-background)!important}.satus-sortable__ghost{position:fixed!important;z-index:999!important;top:0!important;left:0!important;pointer-events:none!important;box-shadow:0 1px 3px rgb(0,0,0,.2),0 4px 8px rgb(0,0,0,.1),inset 0 0 0 1px rgb(0,0,0,.16);will-change:transform!important;opacity:.8!important}.satus-modal--contextmenu .satus-modal__scrim{background:none;backdrop-filter:none;animation:none;visibility:visible;opacity:1;transform:none}.satus-modal--contextmenu .satus-modal__surface{position:absolute;margin:0;box-sizing:border-box;min-width:200px;max-width:200px;padding:4px 0;border-radius:4px;box-shadow:none;animation:none;visibility:visible;opacity:1;transform:none}.satus-modal--contextmenu .satus-modal__surface>*{display:flex;height:32px;padding:0 16px;align-items:center}.satus-modal--contextmenu .satus-modal__surface .satus-button svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75;fill:none;stroke:var(--satus-primary);flex:0 0 20px}.satus-modal--contextmenu .satus-modal__surface .satus-button .satus-span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.satus-base{display:flex;flex-direction:column;width:100%;height:100%}.satus-aside{color:var(--satus-aside-text);background:var(--satus-aside-background);box-sizing:border-box}.satus-checkbox{position:relative;font:inherit;display:flex;color:inherit;border:none;background:transparent;appearance:none;align-items:center;justify-content:flex-start}.satus-checkbox:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-checkbox:focus{outline:none}.satus-checkbox__content{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.satus-checkbox::before{display:flex;min-width:16px;width:16px;height:16px;margin:0 12px 0 0;content:'';border:1px solid var(--satus-checkbox--border);border-radius:6px;background:var(--satus-checkbox--background);align-items:center;justify-content:center}.satus-checkbox[data-value=true]::before{background:var(--satus-primary)}.satus-checkbox[data-value=true]::after{position:absolute;top:20px;left:20px;width:8px;height:4px;content:'';transform:rotate(-45deg);border:2px solid var(--satus-checkbox--mark);border-top:none;border-right:none}.satus-select{position:relative;display:flex;cursor:pointer;align-items:center;justify-content:space-between}.satus-select:hover{background-color:var(--satus-hover)}.satus-select>span:nth-child(2){display:flex;align-items:center}.satus-select>span:nth-child(2)>svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75}.satus-select>span:nth-child(3){margin-left:16px;text-align:right;opacity:.75}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:inherit;opacity:0;border:none;outline:none;appearance:none;z-index:1}.satus-select option{color:var(--satus-select-text);background:var(--satus-select-background)}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{font-size:11px;display:flex;text-transform:uppercase;align-items:center}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;margin:8px 4px 0;border-radius:8px;background:rgba(0,0,0,.15)}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;color:#575757;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__value>.satus-shortcut__key{font-size:14px;min-width:24px;height:24px}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__value>.satus-shortcut__mouse{width:22px;height:28px}.satus-shortcut__mouse>div{position:absolute;top:0;left:calc(50% - 1px);width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-16%;right:14%;width:2px;height:60%;content:'';background:#f96754}.satus-shortcut__mouse.false::before{top:-6%}.satus-shortcut__mouse.false::after{position:absolute;top:-20%;right:calc(14% - 4px);width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:40%;right:calc(14% - 4px);width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-shortcut__mouse.click::before{position:absolute;top:0;left:-1px;width:10px;height:10px;content:'';border-radius:50%;background:#f96754}.satus-shortcut__mouse.middle::before{position:absolute;top:0;left:50%;width:10px;height:10px;content:'';border-radius:50%;background:#f96754;z-index:1;transform:translateX(-50%)}.satus-shortcut__mouse.context::before{position:absolute;top:0;left:15px;width:10px;height:10px;content:'';border-radius:50%;background:#f96754}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:none;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer}.satus-switch__content{display:flex;align-items:center}.satus-switch__content>svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75}.satus-switch>i{width:32px;height:18px;transition:background-color 150ms;border-radius:18px;background-color:var(--satus-switch-track);flex:0 0 32px}.satus-section--card .satus-switch>i{margin-left:16px}.satus-switch[data-value='true']>i{background-color:var(--satus-switch-track--active)}.satus-switch>i::before{display:block;width:14px;height:14px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:var(--satus-switch-thumb);will-change:transform}.satus-switch[data-value='true']>i::before{transform:translateX(14px)}.satus-layers{position:relative;overflow:hidden;color:var(--satus-layers-text);background:var(--satus-layers-background);flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;flex-direction:column;box-sizing:border-box;width:100%;height:100%;padding:0 12px;align-content:center}.satus-input[type=text],.satus-input[type=password],.satus-input[type=number]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:6px 8px;color:var(--satus-text-field--text,inherit);border:none;outline:none;background:none;appearance:none;font-size:16px;margin:8px 0;border:1px solid var(--satus-text-field--border);border-radius:4px;background-color:var(--satus-text-field--background)}.satus-menubar{display:flex}.satus-menubar,.satus-menubar ul{margin:0;padding:0;list-style:none;color:var(--satus-menubar-text);background:var(--satus-menubar-background)}.satus-menubar li{position:relative}.satus-menubar li:focus,.satus-menubar li:hover{background:var(--satus-menubar-hover)}.satus-menubar>li ul{position:absolute;min-width:126px}.satus-menubar>li>ul ul{top:0;left:100%}.satus-menubar li>ul{position:absolute;display:none}.satus-menubar li>:not(ul):focus+ul,.satus-menubar li>:not(ul):hover+ul,.satus-menubar li>ul:hover{display:block}.satus-menubar li> :not(ul){font-size:14px;display:flex;width:100%;height:32px;align-items:center}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background);overflow-y:auto;box-sizing:border-box}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(var(--satus-contrast),.3)}.satus-textarea{position:relative;display:flex;overflow:hidden;color:var(--satus-textarea-color,inherit);background:var(--satus-textarea-background)}.satus-textarea textarea{font-size:inherit;line-height:1.2;overflow:auto;width:100%;height:100%;padding:0;resize:none;white-space:pre;word-break:break-all;color:inherit;border:none;outline:none;background:transparent;overflow-wrap:normal}.satus-textarea__line-number{padding:0 16px 0 8px;opacity:.5}.satus-textarea__line-number>span{font-size:inherit;line-height:1.2;display:block;width:100%;text-align:right}.satus-divider{height:1px;margin:16px 0 12px;background:var(--satus-divider)}.satus-text-field{position:relative;padding:0 16px;background-color:var(--satus-text-field--background);border-radius:8px;color:var(--satus-text-field--text);overflow:hidden;display:flex}.satus-text-field__pre{display:flex;position:relative;height:100%;margin:0;padding:0;overflow:hidden;align-items:center;flex:1}.satus-text-field__input{font:inherit;position:absolute;top:0;left:0;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0;opacity:0;border:none;appearance:none;z-index:9}.satus-text-field__hidden-text{position:absolute;pointer-events:none;opacity:0}.satus-text-field__text{position:absolute;top:0;left:0;display:flex;height:100%;margin:0;align-items:center}.satus-text-field__cursor{position:absolute;top:6px;left:0;display:none;width:2px;height:25px;animation:blink 1s step-end 8;background:#fa0}.satus-text-field__selection{position:absolute;top:5px;left:0;display:none;width:0;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:3px;background:rgba(255,255,255,.1)}.satus-text-field__input:focus + * + * + * + .satus-text-field__cursor,.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field__text>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__text>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-tabs{display:flex;height:26px!important}.satus-tabs__content{position:relative;overflow:hidden;width:100%;height:100%;border:2px solid var(--satus-tabs-background);border-radius:4px;background:var(--satus-tabs-background);display:flex}.satus-tabs__selection{position:absolute;z-index:0;top:0;left:0;height:100%;transition:left .25s;border-radius:4px;background:var(--satus-tabs-foreground);box-sizing:border-box;border:1px solid var(--satus-tabs-border)}.satus-tabs__button{font:inherit;position:relative;z-index:1;overflow:hidden;height:100%;padding:0 4px;white-space:nowrap;text-overflow:ellipsis;color:inherit;border:none;background:transparent;flex:1;text-align:center}.satus-tabs__button:hover{cursor:pointer}.satus-alert{display:flex;box-sizing:border-box;min-height:48px;margin:8px 0 0;padding:8px 16px;border-radius:8px;align-items:center}.satus-alert--error{color:var(--satus-alert-error-color);border:1px solid var(--satus-alert-error-border);background:var(--satus-alert-error-background)}.satus-slider{display:block;background:var(--satus-slider-background)}.satus-slider__label{display:flex;margin:12px 0 0;justify-content:space-between;align-items:center}.satus-slider .satus-input[type=number]{font:inherit;width:64px;margin:0;padding:0;text-align:right;color:inherit;background:transparent}.satus-slider__track{position:relative;display:block;min-width:128px;height:40px;margin:0 2px}.satus-slider__track::before{position:absolute;top:50%;left:0;display:block;width:100%;height:2px;content:'';transform:translateY(-50%);opacity:.24;background:var(--satus-primary)}.satus-slider__slice{position:absolute;top:50%;left:0;height:2px;transform:translateY(-50%);background:var(--satus-primary)}.satus-slider__slice::before{position:absolute;top:50%;right:0;display:block;width:22px;height:22px;content:'';transition:width 200ms,height 200ms,opacity 200ms;transform:translate(50%,-50%);opacity:0;border-radius:50%;background:var(--satus-primary)}.satus-slider__track:focus .satus-slider__slice::before{width:32px;height:32px;opacity:.16}.satus-slider__slice::after{position:absolute;top:50%;right:0;display:block;width:10px;height:10px;content:'';transition:width 200ms,height 200ms;transform:translate(50%,-50%);border-radius:50%;background:var(--satus-primary)}.satus-slider__track:focus .satus-slider__slice::after{width:12px;height:12px}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:none;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:22px;height:22px;border:2px solid rgba(0,0,0,.16);border-radius:50%;background:#fff}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{padding-top:0}.satus-color-picker__palette{position:relative;overflow:hidden;width:100%;height:256px;background-color:#f00}.satus-color-picker__palette:before{position:absolute;top:0;left:0;width:100%;height:100%;content:'';background-image:linear-gradient(0deg,black,transparent),linear-gradient(90deg,white,transparent)}.satus-color-picker__cursor{position:absolute;width:5px;height:5px;transform:translate(-50%,-50%);pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000}.satus-modal--color-picker .satus-modal__surface .satus-section--color{margin:8px 16px 0;align-items:center}.satus-color-picker__color{width:32px;height:32px;margin:0 16px 0 0;border:2px solid rgba(0,0,0,.16);border-radius:50%;background:#f00}.satus-slider.satus-color-picker__hue{padding:0;flex:1}.satus-color-picker__hue .satus-slider__track{height:16px;border-radius:4px;background-image:linear-gradient(90deg,#f00,#ff2a00,#f50,#ff7f00,#fa0,#ffd400,#ff0,#d4ff00,#af0,#80ff00,#5f0,#2bff00,#0f0,#00ff2b,#0f5,#00ff80,#0fa,#00ffd5,#0ff,#00d4ff,#0af,#007fff,#05f,#002bff,#00f,#2a00ff,#50f,#7f00ff,#a0f,#d400ff,#f0f,#ff00d4,#f0a,#ff0080,#f05,#ff002b,#f00)}.satus-color-picker__hue .satus-slider__handle{width:16px;height:16px;background:#fff;box-shadow:0 0 4px rgb(0,0,0,.64)}.satus-color-picker__hue::before,.satus-color-picker__hue .satus-slider__track-fill,.satus-color-picker__hue .satus-slider__handle:focus::after{display:none}.satus-section{display:flex;box-sizing:border-box;flex-wrap:wrap}.satus-section--align-start{align-items:center;justify-content:flex-start}.satus-section--align-end{align-items:center;justify-content:flex-end}.satus-section--space-between{align-items:center;justify-content:space-between}.satus-section--column{flex-direction:column}.satus-section--card{flex-direction:column;box-sizing:border-box;width:100%;max-width:900px;margin:8px auto;padding:8px 0;color:var(--satus-section-card-text);border:1px solid var(--satus-section-card-border);border-radius:8px;background:var(--satus-section-card-background);justify-content:stretch}.satus-section--label{width:100%;max-width:900px;margin:8px auto}.satus-section--card>:not(.satus-button){box-sizing:border-box;min-height:48px;padding:0 16px;text-align:left}.satus-section--card>.satus-switch,.satus-section--card>.satus-select,.satus-section--card>.satus-radio{display:flex;justify-content:space-between;align-items:center}.satus-section--card>.satus-button:hover,.satus-section--card>.satus-switch:hover,.satus-section--card>.satus-select:hover,.satus-section--card>.satus-slider:hover,.satus-section--card>.satus-radio:hover{background-color:var(--satus-hover)}.satus-section--card>.satus-button{width:100%;padding:0 16px}.satus-section--card>.satus-button>svg{width:20px;margin:2px 16px 0 0;color:var(--satus-primary)}.satus-section--card>.satus-span{display:flex;align-items:center}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;min-height:48px}.satus-list__item>:last-child{text-align:right}.satus-header{z-index:1;display:flex;box-sizing:border-box;height:56px;padding:0 12px;color:var(--satus-header-text);background:var(--satus-header-background);border-bottom:1px solid var(--satus-header-border);box-shadow:0 0 3px rgb(0,0,0,.1);align-items:center;justify-content:space-between}.satus-header .satus-button{width:40px;min-width:40px;height:40px;padding:8px;color:inherit;border-radius:50%}.satus-header .satus-section--align-start>*{margin-right:8px}.satus-header .satus-span--title{font-size:15px;font-weight:500;overflow:hidden;white-space:nowrap;letter-spacing:.0125em;text-overflow:ellipsis;flex:1}.satus-button{font:inherit;position:relative;display:flex;overflow:hidden;height:48px;margin:0;padding:8px;text-align:left;color:var(--satus-button-text,inherit);border:none;background:var(--satus-button-background,transparent);appearance:none;align-items:center}.satus-button:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-button[hidden]{display:none}.satus-button>svg{min-width:20px}.satus-button>.satus-span--label{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.16);backdrop-filter:blur(8px)}.satus-modal__surface{display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;margin:0 16px;padding:12px 16px;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-text);border-radius:6px;background-color:var(--satus-modal-background);border:1px solid var(--satus-modal-border);box-shadow:0 2px 6px rgb(0,0,0,.15);box-sizing:border-box}.satus-modal__surface .satus-section--actions{display:flex;width:100%;margin:8px 0 0;padding:0;justify-content:flex-end;align-items:center}.satus-modal__surface .satus-section--actions .satus-button{font-weight:500;height:32px;margin-left:8px;padding:0 8px;letter-spacing:.5px;color:var(--satus-primary);border-radius:4px}.satus-modal__surface .satus-section--actions .satus-button:hover{background:rgba(var(--satus-contrast),.075)}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}.satus-modal--vertical .satus-modal__surface{position:absolute;top:8px;right:8px;left:auto;min-width:200px;max-width:200px;margin:0;padding:8px 0;transform-origin:right top}.satus-modal--vertical .satus-modal__surface>.satus-button,.satus-modal--vertical .satus-modal__surface>.satus-switch,.satus-modal--vertical .satus-modal__surface>.satus-select{height:36px;padding:0 16px}.satus-modal--vertical .satus-modal__surface>.satus-tabs{padding:0 12px}.satus-modal--vertical .satus-modal__surface>.satus-span{font-size:13px;font-weight:500;margin:6px 0;padding:0 12px}.satus-modal--vertical .satus-modal__surface>.satus-button:hover,.satus-modal--vertical .satus-modal__surface>.satus-switch:hover,.satus-modal--vertical .satus-modal__surface>.satus-select:hover{background-color:var(--satus-hover)}.satus-modal--vertical .satus-button svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75;flex:0 0 20px}.satus-modal--vertical .satus-button .satus-span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}} \ No newline at end of file diff --git a/ui/satus/satus.js b/ui/satus/satus.js index d0a5d68e0..cf8e3f550 100644 --- a/ui/satus/satus.js +++ b/ui/satus/satus.js @@ -1,3255 +1 @@ - -/*-------------------------------------------------------------- ->>> CORE: ----------------------------------------------------------------- -# Global variable -# Functions -# Crypt -# Storage -# Localization -# Render ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# GLOBAL VARIABLE ---------------------------------------------------------------*/ - -var satus = { - components: {}, - events: {}, - locale: { - strings: {} - }, - storage: { - attributes: {}, - data: {} - } -}; - - -/*-------------------------------------------------------------- -# FUNCTIONS ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# ANIMATION DURATION ---------------------------------------------------------------*/ - -satus.getAnimationDuration = function (element) { - return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; -}; - - -/*-------------------------------------------------------------- -# AJAX ---------------------------------------------------------------*/ - -satus.ajax = function (url, success, error) { - var xhr = new XMLHttpRequest(); - - xhr.onload = function () { - success(this.response); - }; - xhr.onerror = function () { - error(success); - }; - - xhr.open('GET', url, true); - xhr.send(); -}; - -/*-------------------------------------------------------------- -# APPEND ---------------------------------------------------------------*/ - -satus.append = function (element, container) { - (container || document.body).appendChild(element); -}; - - -/*-------------------------------------------------------------- -# APPEND ---------------------------------------------------------------*/ - -satus.attr = function (element, attributes) { - if (attributes) { - for (var key in attributes) { - if (element.is_svg) { - element.setAttributeNS(null, key, attributes[key]); - } else { - var value = attributes[key]; - - if (['placeholder', 'title'].indexOf(key) !== -1) { - value = satus.locale.get(value); - } - - element.setAttribute(key, value); - } - } - } -}; - -satus.elementIndex = function (element) { - return Array.prototype.slice.call(element.parentNode.children).indexOf(element); -}; - - -/*-------------------------------------------------------------- -# CAMELIZE ---------------------------------------------------------------*/ - -satus.camelize = function (string) { - var result = ''; - - for (var i = 0, l = string.length; i < l; i++) { - var character = string[i]; - - if (character === '-') { - i++; - - result += string[i].toUpperCase(); - } else { - result += character; - } - } - - return result; -}; - - -/*-------------------------------------------------------------- -# CLASS ---------------------------------------------------------------*/ - -satus.class = function (element, string) { - if (string) { - element.className += ' ' + string; - } -}; - - -/*-------------------------------------------------------------- -# CLONE ---------------------------------------------------------------*/ - -satus.clone = function (item) { - var clone = item.cloneNode(true), - parent_css = window.getComputedStyle(item.parentNode), - css = window.getComputedStyle(item), - style = ''; - - for (var i = 0, l = css.length; i < l; i++) { - var property = css[i], - value = css.getPropertyValue(property); - - if (property === 'background-color') { - value = parent_css.getPropertyValue('background-color'); - } - - if (['box-shadow', 'left', 'top', 'bottom', 'right', 'opacity'].indexOf(property) === -1) { - style += property + ':' + value + ';'; - } - } - - - clone.setAttribute('style', style); - - return clone; -}; - - -/*-------------------------------------------------------------- -# DATA ---------------------------------------------------------------*/ - -satus.data = function (element, data) { - if (data) { - for (var key in data) { - element.dataset[key] = data[key]; - } - } -}; - - -/*-------------------------------------------------------------- -# PROPERTIES ---------------------------------------------------------------*/ - -satus.properties = function (element, properties) { - if (properties) { - for (var key in properties) { - element[key] = properties[key]; - } - } -}; - - -/*-------------------------------------------------------------- -# SNAKELIZE ---------------------------------------------------------------*/ - -satus.snakelize = function (string) { - return string.replace(/([A-Z])/g, '-$1').toLowerCase(); -}; - - -/*-------------------------------------------------------------- -# EMPTY ---------------------------------------------------------------*/ - -satus.empty = function (element, exclude = []) { - for (var i = element.childNodes.length - 1; i > -1; i--) { - var child = element.childNodes[i]; - - if (exclude.indexOf(child) === -1) { - child.remove(); - } - } -}; - - -/*-------------------------------------------------------------- -# EVENTS ---------------------------------------------------------------*/ - -Object.defineProperty(satus.events, 'add', { - value: function (type, listener) { - if (this.hasOwnProperty(type) === false) { - this[type] = []; - } - - this[type].push(listener); - } -}); - - -/*-------------------------------------------------------------- -# ISSET ---------------------------------------------------------------*/ - -satus.isset = function (variable) { - if (variable === null || variable === undefined) { - return false; - } - - return true; -}; - - -/*-------------------------------------------------------------- -# FETCH ---------------------------------------------------------------*/ - -satus.fetch = function (url, success, error) { - fetch(url).then(function (response) { - if (response.ok) { - response.json().then(success); - } else { - error(); - } - }).catch(function () { - error(success); - }); -}; - - -/*-------------------------------------------------------------- -# ON ---------------------------------------------------------------*/ - -satus.on = function (element, events) { - if (this.isset(events) && typeof events === 'object') { - for (var selector in events) { - var type = typeof events[selector]; - - if (selector === 'selectionchange') { - element = document; - } - - if (type === 'function') { - element.addEventListener(selector, events[selector]); - } else if (type === 'object') { - element.addEventListener(selector, function (event) { - this.skeleton.on[event.type].parent = this.skeleton; - - if (this.skeleton.on[event.type].component !== 'modal' && this.base && this.base.layers) { - this.base.layers.open(this.skeleton.on[event.type]); - } else { - satus.render(this.skeleton.on[event.type], this.base); - } - }); - } else if (type === 'string') { - element.addEventListener(selector, function () { - var match = this.skeleton.on[event.type].match(/(["'`].+["'`]|[^.()]+)/g), - target = this.base; - - for (var i = 0, l = match.length; i < l; i++) { - var key = match[i]; - - if (target.skeleton[key]) { - target = target.skeleton[key]; - } else { - if (typeof target[key] === 'function') { - target[key](); - } else { - target = target[key]; - } - } - - if (target.rendered) { - target = target.rendered; - } - } - }); - } - } - } -}; - - -/*-------------------------------------------------------------- -# STYLE ---------------------------------------------------------------*/ - -satus.style = function (component, object) { - for (var key in object) { - component.style[key] = object[key]; - } -}; - - -/*-------------------------------------------------------------- -# SEARCH ---------------------------------------------------------------*/ - -satus.search = function (query, object, callback) { - var elements = ['switch', 'select', 'slider', 'shortcut', 'radio', 'color-picker'], - threads = 0, - results = {}; - - query = query.toLowerCase(); - - function parse(items, parent) { - threads++; - - for (var key in items) { - if (key !== 'rendered' && key !== 'base' && key !== 'parent') { - var item = items[key]; - - if (elements.indexOf(item.component) !== -1 && key.indexOf(query) !== -1) { - results[key] = Object.assign({}, item); - } - - if (typeof item === 'object') { - parse(item, items); - } - } - } - - threads--; - - if (threads === 0) { - callback(results); - } - } - - parse(object); -}; - - -/*-------------------------------------------------------------- -# PARENTS ---------------------------------------------------------------*/ - -satus.parents = function (object, components_only) { - function parse(items, parent) { - for (var key in items) { - if (key !== 'rendered' && key !== 'base' && key !== 'parent') { - var item = items[key]; - - if (components_only !== true || item.component) { - item.parent = items; - } - - if (typeof item === 'object' && item.component !== 'shortcut') { - parse(item, items); - } - } - } - } - - parse(object); -}; - - -/*-------------------------------------------------------------- -# TEXT ---------------------------------------------------------------*/ - -satus.text = function (component, value) { - if (typeof value === 'function') { - value = value(); - } - - if (value) { - component.appendChild(document.createTextNode(this.locale.get(value))); - } -}; - - -/*-------------------------------------------------------------- -# IS ---------------------------------------------------------------*/ - -satus.isArray = function (array) { - if (Array.isArray(array)) { - return true; - } else { - return false; - } -}; - -satus.isNumber = function (number) { - if (typeof number === 'number' && isNaN(number) === false) { - return true; - } else { - return false; - } -}; - - -/*-------------------------------------------------------------- -# INDEX OF ---------------------------------------------------------------*/ - -satus.indexOf = function (child, parent) { - var index = 0; - - if (satus.isArray(parent)) { - index = parent.indexOf(child); - } else { - while ((child = child.previousElementSibling)) { - index++; - } - } - - return index; -}; - - -/*-------------------------------------------------------------- -# TO INDEX ---------------------------------------------------------------*/ - -satus.toIndex = function (index, child, parent) { - if (satus.isArray(parent)) { - parent.splice(index, 0, parent.splice(satus.indexOf(child, parent), 1)[0]) - } -}; - - -/*-------------------------------------------------------------- -# REMOVE ---------------------------------------------------------------*/ - -satus.remove = function (child, parent) { - if (satus.isArray(parent)) { - parent.splice(satus.indexOf(child, parent), 1); - } -}; - - -/*-------------------------------------------------------------- -# CREATE ELEMENT ---------------------------------------------------------------*/ - -satus.createElement = function (tagName, className) { - var element = document.createElement(tagName); - - if (className) { - element.className = 'satus-' + className; - } - - element.add = function (tagName, className) { - var element = satus.createElement(tagName, className); - - this.appendChild(element); - - return element; - }; - - return element; -}; - - -/*-------------------------------------------------------------- -# CRYPT ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# DECRYPTION ---------------------------------------------------------------*/ - -satus.decrypt = async function (text, password) { - var iv = text.slice(0, 24).match(/.{2}/g).map(byte => parseInt(byte, 16)), - algorithm = { - name: 'AES-GCM', - iv: new Uint8Array(iv) - }; - - try { - var data = new TextDecoder().decode(await crypto.subtle.decrypt( - algorithm, - await crypto.subtle.importKey( - 'raw', - await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)), - algorithm, - false, ['decrypt'] - ), - new Uint8Array(atob(text.slice(24)).match(/[\s\S]/g).map(ch => ch.charCodeAt(0))) - )); - } catch (err) { - return false; - } - - return data; -}; - - -/*-------------------------------------------------------------- -# ENCRYPTION ---------------------------------------------------------------*/ - -satus.encrypt = async function (text, password) { - var iv = crypto.getRandomValues(new Uint8Array(12)), - algorithm = { - name: 'AES-GCM', - iv: iv - }; - - return Array.from(iv).map(b => ('00' + b.toString(16)).slice(-2)).join('') + btoa(Array.from(new Uint8Array(await crypto.subtle.encrypt( - algorithm, - await crypto.subtle.importKey('raw', await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)), algorithm, false, ['encrypt']), - new TextEncoder().encode(text) - ))).map(byte => String.fromCharCode(byte)).join('')); -}; - - -/*-------------------------------------------------------------- -# STORAGE ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# GET ---------------------------------------------------------------*/ - -satus.storage.get = function (name) { - var target = satus.storage.data; - - if (typeof name !== 'string') { - return; - } - - name = name.split('/').filter(function (value) { - return value != ''; - }); - - for (var i = 0, l = name.length; i < l; i++) { - if (satus.isset(target[name[i]])) { - target = target[name[i]]; - } else { - return undefined; - } - } - - return target; -}; - - -/*-------------------------------------------------------------- -# SET ---------------------------------------------------------------*/ - -satus.storage.set = function (name, value, callback) { - var items = {}, - target = satus.storage.data; - - if (typeof name !== 'string') { - return; - } - - name = name.split('/').filter(function (value) { - return value != ''; - }); - - for (var i = 0, l = name.length; i < l; i++) { - var item = name[i]; - - if (i < l - 1) { - - if (target[item]) { - target = target[item]; - } else { - target[item] = {}; - - target = target[item]; - } - } else { - target[item] = value; - } - } - - for (var key in this.data) { - if (typeof this.data[key] !== 'function') { - items[key] = this.data[key]; - } - } - - if (satus.storage.attributes[name]) { - document.body.setAttribute('data-' + name, value); - } - - chrome.storage.local.set(items, callback); -}; - - -/*-------------------------------------------------------------- -# REMOVE ---------------------------------------------------------------*/ - -satus.storage.remove = function (name) { - delete this.data[name]; - - chrome.storage.local.remove(name); -}; - - -/*-------------------------------------------------------------- -# IMPORT ---------------------------------------------------------------*/ - -satus.storage.import = function (keys, callback) { - if (typeof keys === 'function') { - callback = keys; - - keys = undefined; - } - - chrome.storage.local.get(keys, function (items) { - for (var key in items) { - if (satus.storage.attributes[key]) { - document.body.setAttribute('data-' + key, items[key]); - } - - satus.storage.data[key] = items[key]; - } - - if (callback) { - callback(items); - } - }); -}; - - -/*-------------------------------------------------------------- -# CLEAR ---------------------------------------------------------------*/ - -satus.storage.clear = function (callback) { - this.data = {}; - - chrome.storage.local.clear(callback); -}; - - -/*-------------------------------------------------------------- -# LOCALIZATION ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# GET ---------------------------------------------------------------*/ - -satus.locale.get = function (string) { - return this.strings[string] || string; -}; - - -/*-------------------------------------------------------------- -# IMPORT ---------------------------------------------------------------*/ - -satus.locale.import = function (code, path, callback) { - var language = code || window.navigator.language; - - if (language.indexOf('en') === 0) { - language = 'en'; - } - - if (!path) { - path = '_locales/'; - } - - satus.fetch(chrome.runtime.getURL(path + language + '/messages.json'), function (response) { - for (var key in response) { - satus.locale.strings[key] = response[key].message; - } - - callback(); - }, function (success) { - satus.fetch(chrome.runtime.getURL(path + 'en/messages.json'), success, function () { - success(); - }); - }); -}; - - -/*-------------------------------------------------------------- -# RENDER ---------------------------------------------------------------*/ - -satus.render = function (skeleton, container, skip, property) { - var component; - - if (skeleton.hasOwnProperty('component') && skip !== true) { - var name = skeleton.component, - camelized_name = this.camelize(name); - - if (skeleton.on && skeleton.on.beforerender) { - skeleton.on.beforerender(skeleton); - } - - if (this.components[camelized_name]) { - component = this.components[camelized_name](skeleton); - - if (this.isset(component.inner) === false) { - component.inner = component; - } - } else if (name === 'svg' || container && container.is_svg) { - component = document.createElementNS('http://www.w3.org/2000/svg', name); - - component.is_svg = true; - - component.inner = component; - } else { - component = document.createElement(skeleton.component); - - component.inner = component; - } - - if (component.inner.hasOwnProperty('base') === false && container) { - component.inner.base = container.base; - } - - if (component.inner.base && name === 'layers') { - component.inner.base.layers = component; - } - - skeleton.rendered = component; - component.skeleton = skeleton; - - component.className = (component.className + ' satus-' + skeleton.component).trim(); - - if (skeleton.variant) { - component.className += ' satus-' + skeleton.component + '--' + skeleton.variant; - } - - this.append(component, container); - - container = component.inner || component; - - this.class(component, skeleton.class); - this.style(component, skeleton.style); - this.attr(component, skeleton.attr); - this.data(component, skeleton.data); - this.properties(component, skeleton.properties); - this.on(component, skeleton.on); - this.text(container, skeleton.text); - - if (component.hasOwnProperty('storage') === false && skeleton.storage !== false) { - component.storage = skeleton.storage || property || false; - } - - if (component.hasOwnProperty('storageValue') === false) { - if (component.storage !== false) { - component.storageValue = satus.storage.get(component.storage); - } - - if (skeleton.hasOwnProperty('value') && component.storageValue === undefined) { - component.storageValue = skeleton.value; - } - } - - component.storageChange = function () { - if (this.storage) { - var key = this.storage; - - if (typeof key === 'function') { - key = key(); - } - - satus.storage.set(key, this.storageValue); - } - - this.dispatchEvent(new CustomEvent('change')); - }; - - component.dispatchEvent(new CustomEvent('render')); - - if (skeleton.autofocus === true) { - component.focus(); - } - - if (this.events.hasOwnProperty('render')) { - for (var i = 0, l = this.events['render'].length; i < l; i++) { - this.events['render'][i](component, skeleton); - } - } - } - - if (!component || component.render_children !== false) { - for (var key in skeleton) { - if (key !== 'parent' && skeleton[key] && skeleton[key].hasOwnProperty('component')) { - skeleton[key].parent = skeleton; - - this.render(skeleton[key], container, false, key); - } - } - } - - return component; -}; -/*-------------------------------------------------------------- ->>> COLOR: ----------------------------------------------------------------- -# RGB to HSL -# HUE to RGB -# HSL to RGB ---------------------------------------------------------------*/ - -satus.color = {}; - - -/*-------------------------------------------------------------- -# RGB TO HSL ---------------------------------------------------------------*/ - -satus.color.rgbToHsl = function (array) { - var r = array[0] / 255, - g = array[1] / 255, - b = array[2] / 255, - min = Math.min(r, g, b), - max = Math.max(r, g, b), - h = 0, - s = 0, - l = (min + max) / 2; - - if (min === max) { - h = 0; - s = 0; - } else { - var delta = max - min; - - s = l <= 0.5 ? delta / (max + min) : delta / (2 - max - min); - - if (max === r) { - h = (g - b) / delta + (g < b ? 6 : 0); - } else if (max === g) { - h = (b - r) / delta + 2; - } else if (max === b) { - h = (r - g) / delta + 4; - } - - h /= 6; - } - - h *= 360; - s *= 100; - l *= 100; - - if (array.length === 3) { - return [h, s, l]; - } else { - return [h, s, l, array[3]]; - } -}; - - -/*-------------------------------------------------------------- -# HUE TO RGB ---------------------------------------------------------------*/ - -satus.color.hueToRgb = function (array) { - var t1 = array[0], - t2 = array[1], - hue = array[2]; - - if (hue < 0) { - hue += 6; - } - - if (hue >= 6) { - hue -= 6; - } - - if (hue < 1) { - return (t2 - t1) * hue + t1; - } else if (hue < 3) { - return t2; - } else if (hue < 4) { - return (t2 - t1) * (4 - hue) + t1; - } else { - return t1; - } -}; - - -/*-------------------------------------------------------------- -# HSL TO RGB ---------------------------------------------------------------*/ - -satus.color.hslToRgb = function (array) { - var h = array[0] / 360, - s = array[1] / 100, - l = array[2] / 100, - r, g, b; - - if (s == 0) { - r = g = b = l; - } else { - var hue2rgb = function hue2rgb(p, q, t) { - if (t < 0) t += 1; - if (t > 1) t -= 1; - if (t < 1 / 6) return p + (q - p) * 6 * t; - if (t < 1 / 2) return q; - if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; - return p; - } - - var q = l < 0.5 ? l * (1 + s) : l + s - l * s; - var p = 2 * l - q; - r = hue2rgb(p, q, h + 1 / 3); - g = hue2rgb(p, q, h); - b = hue2rgb(p, q, h - 1 / 3); - } - - return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)]; -}; -/*-------------------------------------------------------------- ->>> PLUVIAM ---------------------------------------------------------------*/ - -satus.events.add('render', function (component, skeleton) { - if (skeleton.pluviam === true) { - function createPluviam(event) { - var pluviam = document.createElement('span'), - rect = this.getBoundingClientRect(), - x = event.clientX - rect.left, - y = event.clientY - rect.top, - diameter = Math.sqrt(Math.pow(rect.width * 2, 2) + Math.pow(rect.height * 2, 2)); - - pluviam.className = 'satus-pluviam'; - - pluviam.style.left = x - diameter / 2 + 'px'; - pluviam.style.top = y - diameter / 2 + 'px'; - pluviam.style.width = diameter + 'px'; - pluviam.style.height = diameter + 'px'; - - this.appendChild(pluviam); - - setTimeout(function () { - pluviam.remove(); - }, 1000); - } - - component.addEventListener('mousedown', createPluviam); - component.addEventListener('mouseover', createPluviam); - } -}); -/*-------------------------------------------------------------- ->>> EXTENSION STORAGE ---------------------------------------------------------------*/ -/*-------------------------------------------------------------- ->>> INDEXEDDB: ----------------------------------------------------------------- -# Global variable -# Methods - # Open - # Get - # Get by key - # Set - # Clear - # Delete - # Search ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# GLOBAL VARIABLE ---------------------------------------------------------------*/ - -satus.indexeddb = { - request: null -}; - - -/*-------------------------------------------------------------- -# METHODS ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# OPEN ----------------------------------------------------------------- -satus.indexeddb.open('rootCellar', { - fruits: { - indexes: [ - 'id', - 'name', - 'amount', - ... - ], - keyOptions: { - keyPath: 'id', - autoIncrement: true - } - }, - ... -}, function () { ... }); ---------------------------------------------------------------*/ - -satus.indexeddb.open = function (name, objects, callback) { - var request = indexedDB.open(name); - - request.onerror = function (event) { - callback(); - }; - - request.onblocked = function(event) { - satus.indexeddb.open(callback); - }; - - request.onsuccess = function (event) { - satus.indexeddb.request = this.result; - - callback(); - }; - - request.onupgradeneeded = function (event) { - satus.indexeddb.request = this.result; - - for (var key in objects) { - var object = objects[key]; - - if (!this.result.objectStoreNames.contains(key)) { - var object_store = this.result.createObjectStore(key, object.keyOptions); - - for (var i = 0, l = object.indexes.length; i < l; i++) { - var name = object.indexes[i]; - - object_store.createIndex(name, name); - } - } - } - - this.result.onversionchange = function (event) { - satus.indexeddb.close(); - - satus.indexeddb.open(callback); - }; - }; -}; - - -/*-------------------------------------------------------------- -# GET ----------------------------------------------------------------- -satus.indexeddb.get({ - fruits: { - direction: 'next', - index: 'name', - offset: 0, - limit: 100 - }, - ... -}, function (result) { ... }); ---------------------------------------------------------------*/ - -satus.indexeddb.get = function (items, callback) { - var queue = [], - results = {}; - - for (var key in items) { - var item = items[key]; - - queue.push({ - name: key, - direction: item.direction, - index: item.index, - offset: item.offset - }); - } - - function handle() { - var item = queue[0], - transaction = satus.indexeddb.request.transaction(item.name, 'readonly'), - object_store = transaction.objectStore(item.name), - object_result = [], - offset = item.offset || 0, - limit = item.limit || 100; - - if (item.index) { - object_store = object_store.index(item.index); - } - - results[item.name] = object_result; - - object_store.openCursor(null, item.direction).onsuccess = function(event) { - var cursor = event.target.result; - - if (cursor) { - if (item.offset > 0) { - cursor.advance(item.offset); - - item.offset = 0; - } else if (object_result.length < limit) { - object_result.push(cursor.value); - - cursor.continue(); - } - } else { - object_store.count().onsuccess = function(event) { - object_result.fullLength = event.target.result; - - queue.shift(); - - if (queue.length === 0) { - callback(results); - } else { - handle(); - } - }; - } - }; - } - - handle(); -}; - - -/*-------------------------------------------------------------- -# GET BY KEY ----------------------------------------------------------------- -satus.indexeddb.getByKey({ - fruits: [1], - ... -}, function (result) { ... }); ---------------------------------------------------------------*/ - -satus.indexeddb.getByKey = function (items, callback) { - var queue = [], - results = {}; - - for (var name in items) { - queue.push({ - name: name, - keys: items[name] - }); - } - - function handle() { - var item = queue[0], - transaction = satus.indexeddb.request.transaction(item.name, 'readonly'), - object_store = transaction.objectStore(item.name), - object_result = []; - - results[item.name] = object_result; - - for (var i = 0, l = item.keys.length; i < l; i++) { - var key = item.keys[i]; - - object_store.get(key).onsuccess = function(event) { - var result = event.target.result; - - if (result) { - object_result.push(result); - } - - object_store.count().onsuccess = function(event) { - object_result.fullLength = event.target.result; - - queue.shift(); - - if (queue.length === 0) { - callback(results); - } else { - handle(); - } - }; - }; - } - } - - handle(); -}; - - -/*-------------------------------------------------------------- -# SET ----------------------------------------------------------------- -satus.indexeddb.set({ - fruits: [ - { name: 'apple', amount: 500 }, - ... - ], - ... -}, function () { ... }); ---------------------------------------------------------------*/ - -satus.indexeddb.set = function (items, callback) { - var threads = 0; - - for (var name in items) { - var item = items[name], - transaction = this.request.transaction(name, 'readwrite'), - object_store = transaction.objectStore(name); - - for (var i = 0, l = item.length; i < l; i++) { - var request = object_store.put(item[i]); - - threads++; - - request.onsuccess = function () { - threads--; - - if (callback && threads === 0) { - callback(); - } - }; - - request.onerror = function () { - threads--; - - if (callback && threads === 0) { - callback(); - } - }; - } - } -}; - - -/*-------------------------------------------------------------- -# CLEAR ----------------------------------------------------------------- -satus.indexeddb.clear(['fruits'], function (result) { ... }); ---------------------------------------------------------------*/ - -satus.indexeddb.clear = function (items) { - if (typeof items === 'string') { - items = [items]; - } - - for (var i = 0, l = items.length; i < l; i++) { - var name = items[i], - transaction = satus.indexeddb.request.transaction(name, 'readwrite'), - object_store = transaction.objectStore(name); - - object_store.clear(); - } -}; - - -/*-------------------------------------------------------------- -# DELETE ----------------------------------------------------------------- -satus.indexeddb.delete({ - fruits: { - name: [ - 'apple' - ] - } -}); ---------------------------------------------------------------*/ - -satus.indexeddb.delete = function (stores, callback) { - var queue = []; - - for (var name in stores) { - var store = stores[name]; - - for (var index in store) { - queue.push({ - object_store_name: name, - index_name: index, - keys: store[index] - }); - } - } - - function handle() { - var item = queue[0], - transaction = satus.indexeddb.request.transaction(item.object_store_name, 'readwrite'), - object_store = transaction.objectStore(item.object_store_name), - object_result = []; - - if (item.index_name) { - object_store = object_store.index(item.index_name); - } - - object_store.openCursor(null, item.direction).onsuccess = function(event) { - var cursor = event.target.result; - - if (cursor) { - cursor.delete(); - } - - queue.shift(); - - if (queue.length === 0) { - callback(); - } else { - handle(); - } - }; - } - - handle(); -}; - - -/*-------------------------------------------------------------- -# SEARCH ----------------------------------------------------------------- -satus.indexeddb.search({ - fruits: { - query: 'apple', // or function () { ... } - direction: 'next', - index: 'name', - offset: 0, - limit: 0 - }, - ... -}, function () { ... }); ---------------------------------------------------------------*/ - -satus.indexeddb.search = function (items, callback) { - var queue = [], - results = {}; - - for (var key in items) { - var item = items[key]; - - queue.push({ - name: key, - direction: item.direction, - index: item.index, - offset: item.offset - }); - } - - function handle() { - var item = queue[0], - transaction = satus.indexeddb.request.transaction(item.name, 'readonly'), - object_store = transaction.objectStore(item.name), - object_result = [], - offset = item.offset || 0, - limit = item.limit || 100; - - if (item.index) { - object_store = object_store.index(item.index); - } - - results[item.name] = object_result; - - object_store.openCursor(null, item.direction).onsuccess = function(event) { - var cursor = event.target.result; - - if (cursor) { - if (item.offset > 0) { - cursor.advance(item.offset); - - item.offset = 0; - } else if (limit && object_result.length < limit) { - object_result.push(cursor.value); - - cursor.continue(); - } - } else { - object_store.count().onsuccess = function(event) { - object_result.fullLength = event.target.result; - - queue.shift(); - - if (queue.length === 0) { - callback(results); - } else { - handle(); - } - }; - } - }; - } - - handle(); -}; -/*-------------------------------------------------------------- ->>> SORTABLE ---------------------------------------------------------------*/ - -satus.events.add('render', function (component, skeleton) { - if (skeleton.sortable === true) { - component.addEventListener('mousedown', function (event) { - if (event.button !== 0) { - return false; - } - - var component = this, - rect = this.getBoundingClientRect(), - x = event.clientX, - y = event.clientY, - offset_x = event.clientX - rect.left, - offset_y = event.clientY - rect.top, - ghost = satus.clone(this), - children = this.parentNode.children, - appended = false; - - ghost.classList.add('satus-sortable__ghost'); - - function mousemove(event) { - if (appended === false && (Math.abs(event.clientX - x) > 4 || Math.abs(event.clientY - y) > 4)) { - appended = true; - - component.classList.add('satus-sortable__chosen'); - - component.parentNode.appendChild(ghost); - } - - ghost.style.transform = 'translate(' + (event.clientX - offset_x) + 'px, ' + (event.clientY - offset_y) + 'px)'; - } - - function mouseup(event) { - component.classList.remove('satus-sortable__chosen'); - ghost.remove(); - - window.removeEventListener('mousemove', mousemove, true); - window.removeEventListener('mouseup', mouseup, true); - - for (var i = 0, l = children.length; i < l; i++) { - var child = children[i]; - - if (child !== component) { - child.removeEventListener('mouseover', siblingMouseOver); - } - } - - component.dispatchEvent(new CustomEvent('sort')); - - event.stopPropagation(); - - return false; - } - - window.addEventListener('mousemove', mousemove, { - passive: true, - capture: true - }); - - window.addEventListener('mouseup', mouseup, { - passive: true, - capture: true - }); - - function siblingMouseOver(event) { - var target = event.target, - parent = target.parentNode, - y = event.layerY / (target.offsetHeight / 100); - - if (y < 50 && target.previousSibling !== component || y >= 50 && target.nextSibling === component) { - parent.insertBefore(component, target); - } else { - parent.insertBefore(component, target.nextSibling); - } - } - - for (var i = 0, l = children.length; i < l; i++) { - var child = children[i]; - - if (child !== component) { - child.addEventListener('mouseover', siblingMouseOver); - } - } - - event.stopPropagation(); - event.preventDefault(); - - return false; - }); - } -}); -/*-------------------------------------------------------------- ->>> USER ---------------------------------------------------------------*/ - -satus.user = function () { - /*-------------------------------------------------------------- - 1.0 VARIABLES - --------------------------------------------------------------*/ - - var user_agent = navigator.userAgent, - random_cookie = 'ta{t`nX6cMXK,Wsc', - video = document.createElement('video'), - video_formats = { - ogg: 'video/ogg; codecs="theora"', - h264: 'video/mp4; codecs="avc1.42E01E"', - webm: 'video/webm; codecs="vp8, vorbis"', - vp9: 'video/webm; codecs="vp9"', - hls: 'application/x-mpegURL; codecs="avc1.42E01E"' - }, - audio = document.createElement('audio'), - audio_formats = { - mp3: 'audio/mpeg', - mp4: 'audio/mp4', - aif: 'audio/x-aiff' - }, - cvs = document.createElement('canvas'), - ctx = cvs.getContext('webgl'), - data = { - browser: { - audio: null, - cookies: null, - flash: null, - java: null, - languages: null, - name: null, - platform: null, - version: null, - video: null, - webgl: null - }, - os: { - name: null, - type: null - }, - device: { - connection: { - type: null, - speed: null - }, - cores: null, - gpu: null, - max_touch_points: null, - ram: null, - screen: null, - touch: null - } - }; - - - /*-------------------------------------------------------------- - 2.0 SOFTWARE - --------------------------------------------------------------*/ - - /*-------------------------------------------------------------- - 2.1.0 OS - --------------------------------------------------------------*/ - - /*-------------------------------------------------------------- - 2.1.1 NAME - --------------------------------------------------------------*/ - - if (navigator.appVersion.indexOf('Win') !== -1) { - if (navigator.appVersion.match(/(Windows 10.0|Windows NT 10.0)/)) { - data.os.name = 'Windows 10'; - } else if (navigator.appVersion.match(/(Windows 8.1|Windows NT 6.3)/)) { - data.os.name = 'Windows 8.1'; - } else if (navigator.appVersion.match(/(Windows 8|Windows NT 6.2)/)) { - data.os.name = 'Windows 8'; - } else if (navigator.appVersion.match(/(Windows 7|Windows NT 6.1)/)) { - data.os.name = 'Windows 7'; - } else if (navigator.appVersion.match(/(Windows NT 6.0)/)) { - data.os.name = 'Windows Vista'; - } else if (navigator.appVersion.match(/(Windows NT 5.1|Windows XP)/)) { - data.os.name = 'Windows XP'; - } else { - data.os.name = 'Windows'; - } - } else if (navigator.appVersion.indexOf('(iPhone|iPad|iPod)') !== -1) { - data.os.name = 'iOS'; - } else if (navigator.appVersion.indexOf('Mac') !== -1) { - data.os.name = 'macOS'; - } else if (navigator.appVersion.indexOf('Android') !== -1) { - data.os.name = 'Android'; - } else if (navigator.appVersion.indexOf('OpenBSD') !== -1) { - data.os.name = 'OpenBSD'; - } else if (navigator.appVersion.indexOf('SunOS') !== -1) { - data.os.name = 'SunOS'; - } else if (navigator.appVersion.indexOf('Linux') !== -1) { - data.os.name = 'Linux'; - } else if (navigator.appVersion.indexOf('X11') !== -1) { - data.os.name = 'UNIX'; - } - - /*-------------------------------------------------------------- - 2.1.2 TYPE - --------------------------------------------------------------*/ - - if (navigator.appVersion.match(/(Win64|x64|x86_64|WOW64)/)) { - data.os.type = '64-bit'; - } else { - data.os.type = '32-bit'; - } - - - /*-------------------------------------------------------------- - 2.2.0 BROWSER - --------------------------------------------------------------*/ - - /*-------------------------------------------------------------- - 2.2.1 NAME - --------------------------------------------------------------*/ - - if (user_agent.indexOf('Opera') !== -1) { - data.browser.name = 'Opera'; - } else if (user_agent.indexOf('Vivaldi') !== -1) { - data.browser.name = 'Vivaldi'; - } else if (user_agent.indexOf('Edge') !== -1) { - data.browser.name = 'Edge'; - } else if (user_agent.indexOf('Chrome') !== -1) { - data.browser.name = 'Chrome'; - } else if (user_agent.indexOf('Safari') !== -1) { - data.browser.name = 'Safari'; - } else if (user_agent.indexOf('Firefox') !== -1) { - data.browser.name = 'Firefox'; - } else if (user_agent.indexOf('MSIE') !== -1) { - data.browser.name = 'IE'; - } - - - /*-------------------------------------------------------------- - 2.2.2 VERSION - --------------------------------------------------------------*/ - - var browser_version = user_agent.match(new RegExp(data.browser.name + '/([0-9.]+)')); - - if (browser_version[1]) { - data.browser.version = browser_version[1]; - } - - - /*-------------------------------------------------------------- - 2.2.3 PLATFORM - --------------------------------------------------------------*/ - - data.browser.platform = navigator.platform || null; - - - /*-------------------------------------------------------------- - 2.2.4 LANGUAGES - --------------------------------------------------------------*/ - - data.browser.languages = navigator.languages || null; - - - /*-------------------------------------------------------------- - 2.2.5 COOKIES - --------------------------------------------------------------*/ - - if (document.cookie) { - document.cookie = random_cookie; - - if (document.cookie.indexOf(random_cookie) !== -1) { - data.browser.cookies = true; - } - } - - - /*-------------------------------------------------------------- - 2.2.6 FLASH - --------------------------------------------------------------*/ - - try { - if (new ActiveXObject('ShockwaveFlash.ShockwaveFlash')) { - data.browser.flash = true; - } - } catch (e) { - if (navigator.mimeTypes['application/x-shockwave-flash']) { - data.browser.flash = true; - } - } - - - /*-------------------------------------------------------------- - 2.2.7 JAVA - --------------------------------------------------------------*/ - - if (typeof navigator.javaEnabled === 'function' && navigator.javaEnabled()) { - data.browser.java = true; - } - - - /*-------------------------------------------------------------- - 2.2.8 VIDEO FORMATS - --------------------------------------------------------------*/ - - if (typeof video.canPlayType === 'function') { - data.browser.video = {}; - - for (var i in video_formats) { - var can_play_type = video.canPlayType(video_formats[i]); - - if (can_play_type === '') { - data.browser.video[i] = false; - } else { - data.browser.video[i] = can_play_type; - } - } - } - - - /*-------------------------------------------------------------- - 2.2.9 AUDIO FORMATS - --------------------------------------------------------------*/ - - if (typeof audio.canPlayType === 'function') { - data.browser.audio = {}; - - for (var i in audio_formats) { - var can_play_type = audio.canPlayType(audio_formats[i]); - - if (can_play_type == '') { - data.browser.audio[i] = false; - } else { - data.browser.audio[i] = can_play_type; - } - } - } - - - /*-------------------------------------------------------------- - 2.2.10 WEBGL - --------------------------------------------------------------*/ - - if (ctx && ctx instanceof WebGLRenderingContext) { - data.browser.webgl = true; - } - - - /*-------------------------------------------------------------- - 3.0 HARDWARE - --------------------------------------------------------------*/ - - /*-------------------------------------------------------------- - 3.1 SCREEN - --------------------------------------------------------------*/ - - if (screen) { - data.device.screen = screen.width + 'x' + screen.height; - } - - - /*-------------------------------------------------------------- - 3.2 RAM - --------------------------------------------------------------*/ - - if ('deviceMemory' in navigator) { - data.device.ram = navigator.deviceMemory + ' GB'; - } - - - /*-------------------------------------------------------------- - 3.3 GPU - --------------------------------------------------------------*/ - - if ( - ctx && - ctx instanceof WebGLRenderingContext && - 'getParameter' in ctx && - 'getExtension' in ctx - ) { - var info = ctx.getExtension('WEBGL_debug_renderer_info'); - - if (info) { - data.device.gpu = ctx.getParameter(info.UNMASKED_RENDERER_WEBGL); - } - } - - - /*-------------------------------------------------------------- - 3.4 CORES - --------------------------------------------------------------*/ - - if (navigator.hardwareConcurrency) { - data.device.cores = navigator.hardwareConcurrency; - } - - - /*-------------------------------------------------------------- - 3.5 TOUCH - --------------------------------------------------------------*/ - - if ( - window.hasOwnProperty('ontouchstart') || - window.DocumentTouch && document instanceof window.DocumentTouch || - navigator.maxTouchPoints > 0 || - window.navigator.msMaxTouchPoints > 0 - ) { - data.device.touch = true; - data.device.max_touch_points = navigator.maxTouchPoints; - } - - - /*-------------------------------------------------------------- - 3.6 CONNECTION - --------------------------------------------------------------*/ - - if (typeof navigator.connection === 'object') { - data.device.connection.type = navigator.connection.effectiveType || null; - - if (navigator.connection.downlink) { - data.device.connection.speed = navigator.connection.downlink + ' Mbps'; - } - } - - - /*-------------------------------------------------------------- - 4.0 CLEARING - --------------------------------------------------------------*/ - - video.remove(); - audio.remove(); - cvs.remove(); - - - return data; -}; -/*-------------------------------------------------------------- ->>> UUID ---------------------------------------------------------------*/ - -satus.uuid = function () { - return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (match) { - return (match ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> match / 4).toString(16) - }); -}; -/*-------------------------------------------------------------- ->>> CONTEXT MENU ---------------------------------------------------------------*/ - -satus.events.add('render', function (component, skeleton) { - if (skeleton.contextMenu) { - component.addEventListener('contextmenu', function (event) { - var x = event.clientX, - y = event.clientY, - modal = satus.render({ - component: 'modal', - variant: 'contextmenu', - parent: this.skeleton - }); - - if (window.innerWidth - x < 200) { - x = window.innerWidth - 200; - } - - modal.inner.style.left = x + 'px'; - modal.inner.style.top = y + 'px'; - - satus.render(this.skeleton.contextMenu, modal.inner); - - event.preventDefault(); - event.stopPropagation(); - - return false; - }); - } -}); -/*-------------------------------------------------------------- ->>> BASE ---------------------------------------------------------------*/ - -satus.components.base = function (skeleton) { - var component = document.createElement('div'); - - component.base = component; - - return component; -}; -/*-------------------------------------------------------------- ->>> RADIO ---------------------------------------------------------------*/ - -satus.components.radio = function (skeleton) { - var component = document.createElement('label'), - content = document.createElement('span'), - radio = document.createElement('input'); - - component.inner = content; - - radio.type = 'radio'; - - if (skeleton.group) { - component.storage = skeleton.group; - radio.name = skeleton.group; - } - - if (skeleton.value) { - radio.value = skeleton.value; - } - - component.addEventListener('render', function () { - this.storageValue = satus.storage.get(this.storage); - - if (satus.isset(this.storageValue)) { - radio.checked = this.storageValue === skeleton.value; - } else if (skeleton.checked) { - radio.checked = true; - } - }); - - radio.addEventListener('change', function () { - component.storageValue = this.value; - component.storageChange(); - }); - - component.appendChild(content); - component.appendChild(radio); - - return component; -}; -/*-------------------------------------------------------------- ->>> CHECKBOX ---------------------------------------------------------------*/ - -satus.components.checkbox = function (skeleton) { - var component = document.createElement('button'), - content = document.createElement('span'); - - component.inner = content; - - content.className = 'satus-checkbox__content'; - - component.appendChild(content); - - component.addEventListener('click', function () { - if (this.dataset.value === 'true') { - this.storageValue = false; - this.dataset.value = 'false'; - } else { - this.storageValue = true; - this.dataset.value = 'true'; - } - - this.storageChange(); - }); - - component.addEventListener('render', function () { - this.dataset.value = this.storageValue; - }); - - return component; -}; -/*-------------------------------------------------------------- ->>> SELECT ---------------------------------------------------------------*/ - -satus.components.select = function (skeleton) { - var component = document.createElement('div'), - component_content = document.createElement('span'), - component_value = document.createElement('span'), - component_select = document.createElement('select'); - - for (var i = 0, l = skeleton.options.length; i < l; i++) { - var option = document.createElement('option'); - - option.value = skeleton.options[i].value; - - satus.text(option, skeleton.options[i].text); - - component_select.appendChild(option); - } - - component.inner = component_content; - component.select = component_select; - - Object.defineProperty(component, 'value', { - get() { - return this.select.value; - }, - set(value) { - this.select.value = value; - } - }); - - component.render = function () { - var value_element = this.children[2]; - - satus.empty(value_element); - - satus.text(value_element, this.select.options[this.select.selectedIndex].text); - - this.dataset.value = this.value; - }; - - component.addEventListener('render', function () { - this.value = this.storageValue || this.skeleton.options[0].value; - - this.render(); - }); - - component_select.addEventListener('change', function () { - var component = this.parentNode; - - component.storageValue = this.value; - - component.storageChange(); - - component.render(); - }); - - component.appendChild(component_select); - component.appendChild(component_content); - component.appendChild(component_value); - - return component; -}; -/*-------------------------------------------------------------- ->>> SHORTCUT ---------------------------------------------------------------*/ - -satus.components.shortcut = function (skeleton) { - var component = document.createElement('button'), - content = document.createElement('span'), - value = document.createElement('div'); - - component.inner = content; - - component.className = 'satus-button'; - value.className = 'satus-shortcut__value'; - - component.render = function (parent) { - var self = this, - parent = parent || self.primary, - children = parent.children; - - satus.empty(parent); - - function createElement(name) { - var element = document.createElement('div'); - - element.className = 'satus-shortcut__' + name; - - parent.appendChild(element); - - return element; - } - - if (this.data.alt) { - createElement('key').textContent = 'Alt'; - } - - if (this.data.ctrl) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - createElement('key').textContent = 'Ctrl'; - } - - if (this.data.shift) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - createElement('key').textContent = 'Shift'; - } - - for (var code in this.data.keys) { - var key = this.data.keys[code].key, - arrows = ['ArrowUp', 'ArrowRight', 'ArrowDown', 'ArrowLeft'], - index = arrows.indexOf(key); - - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - if (index !== -1) { - createElement('key').textContent = ['↑', '→', '↓', '←'][index]; - } else if (key === ' ') { - createElement('key').textContent = '␣'; - } else if (key) { - createElement('key').textContent = key.toUpperCase(); - } - } - - if (this.data.wheel) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - var mouse = createElement('mouse'), - div = document.createElement('div'); - - mouse.appendChild(div); - - mouse.className += ' ' + (this.data.wheel > 0); - } - - if (this.data.click) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - var mouse = createElement('mouse'), - div = document.createElement('div'); - - mouse.appendChild(div); - - mouse.className += ' click'; - } - - if (this.data.middle) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - var mouse = createElement('mouse'), - div = document.createElement('div'); - - mouse.appendChild(div); - - mouse.className += ' middle'; - } - - if (this.data.context) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - var mouse = createElement('mouse'), - div = document.createElement('div'); - - mouse.appendChild(div); - - mouse.className += ' context'; - } - }; - - component.valueElement = value; - - component.appendChild(content); - component.appendChild(value); - - component.keydown = function (event) { - event.preventDefault(); - event.stopPropagation(); - - component.data = { - alt: event.altKey, - ctrl: event.ctrlKey, - shift: event.shiftKey, - keys: {} - }; - - if (['control', 'alt', 'altgraph', 'shift'].indexOf(event.key.toLowerCase()) === -1) { - component.data.keys[event.keyCode] = { - code: event.code, - key: event.key - }; - } - - component.data.wheel = 0; - - component.render(); - - return false; - }; - - if (skeleton.wheel !== false) { - component.mousewheel = function (event) { - event.stopPropagation(); - - if ( - ( - component.data.wheel === 0 && - ( - Object.keys(component.data.keys).length === 0 && - component.data.alt === false && - component.data.ctrl === false && - component.data.shift === false - ) - ) || - component.data.wheel < 0 && event.deltaY > 0 || - component.data.wheel > 0 && event.deltaY < 0) { - component.data = { - alt: false, - ctrl: false, - shift: false, - keys: {} - }; - } - - component.data.wheel = event.deltaY < 0 ? -1 : 1; - - component.render(); - - return false; - }; - } - - component.addEventListener('render', function () { - this.data = this.storageValue || { - alt: false, - ctrl: false, - shift: false, - keys: {}, - wheel: 0 - }; - - this.render(this.valueElement); - }); - - component.addEventListener('click', function () { - satus.render({ - component: 'modal', - properties: { - parent: this - }, - on: { - close: function () { - window.removeEventListener('keydown', component.keydown); - window.removeEventListener('wheel', component.mousewheel); - } - }, - - primary: { - component: 'div', - class: 'satus-shortcut__primary', - on: { - render: function () { - component.primary = this; - - if (component.skeleton.mouseButtons === true) { - this.addEventListener('mousedown', function (event) { - if ( - component.data.click && event.button === 0 || - component.data.middle && event.button === 1 - ) { - component.data = { - alt: false, - ctrl: false, - shift: false, - keys: {} - }; - } - - component.data.click = false; - component.data.middle = false; - component.data.context = false; - - if (event.button === 0) { - component.data.click = true; - - component.render(); - } else if (event.button === 1) { - component.data.middle = true; - - component.render(); - } - }); - - this.addEventListener('contextmenu', function (event) { - event.preventDefault(); - event.stopPropagation(); - - if (component.data.context) { - component.data = { - alt: false, - ctrl: false, - shift: false, - keys: {} - }; - } - - component.data.context = true; - component.data.middle = false; - component.data.click = false; - - component.render(); - - return false; - }); - } - - component.render(); - } - } - }, - actions: { - component: 'section', - variant: 'actions', - - reset: { - component: 'button', - text: 'reset', - on: { - click: function () { - var component = this.parentNode.parentNode.parentNode.parent; - - component.data = component.skeleton.value || {}; - - component.render(component.valueElement); - - satus.storage.remove(component.storage); - - this.parentNode.parentNode.parentNode.close(); - - window.removeEventListener('keydown', component.keydown); - window.removeEventListener('wheel', component.mousewheel); - } - } - }, - empty: { - component: 'button', - text: 'empty', - on: { - click: function () { - component.data = { - "alt": false, - "ctrl": false, - "shift": false, - "keys": { - "0": { - "code": "Lang1", - "key": "" - } - }, - "wheel": 0 - }; - - component.storageValue = component.data; - - component.storageChange(); - - component.render(component.valueElement); - - this.parentNode.parentNode.parentNode.close(); - - window.removeEventListener('keydown', component.keydown); - window.removeEventListener('wheel', component.mousewheel); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - component.data = satus.storage.get(component.storage) || component.skeleton.value || {}; - - component.render(component.valueElement); - - this.parentNode.parentNode.parentNode.close(); - - window.removeEventListener('keydown', component.keydown); - window.removeEventListener('wheel', component.mousewheel); - } - } - }, - save: { - component: 'button', - text: 'save', - on: { - click: function () { - component.storageValue = component.data; - - component.storageChange(); - - component.render(component.valueElement); - - this.parentNode.parentNode.parentNode.close(); - - window.removeEventListener('keydown', component.keydown); - window.removeEventListener('wheel', component.mousewheel); - } - } - } - } - }); - - window.addEventListener('keydown', this.keydown); - window.addEventListener('wheel', this.mousewheel); - }); - - return component; -}; -/*-------------------------------------------------------------- ->>> SWITCH ---------------------------------------------------------------*/ - -satus.components.switch = function (skeleton) { - var component = document.createElement('button'), - component_content = document.createElement('span'), - component_thumb = document.createElement('i'); - - component.inner = component_content; - - component_content.className = 'satus-switch__content'; - - component.addEventListener('click', function () { - if (this.dataset.value === 'true') { - this.storageValue = false; - this.dataset.value = 'false'; - } else { - this.storageValue = true; - this.dataset.value = 'true'; - } - - this.storageChange(); - }); - - component.addEventListener('render', function () { - this.dataset.value = this.storageValue; - }); - - component.appendChild(component_content); - component.appendChild(component_thumb); - - return component; -}; -/*-------------------------------------------------------------- ->>> LAYERS ---------------------------------------------------------------*/ - -satus.components.layers = function (skeleton) { - var component = document.createElement('div'); - - component.path = [skeleton]; - - component.back = function () { - if (this.path.length > 1) { - this.path.pop(); - - this.open(); - } - }; - - component.open = function (skeleton) { - var layer = document.createElement('div'); - - if (skeleton) { - this.path.push(skeleton); - } else { - skeleton = this.path[this.path.length - 1]; - } - - layer.className = 'satus-layer'; - - layer.skeleton = skeleton; - layer.base = this.base; - - satus.render(skeleton, layer, skeleton.component === 'layers'); - - satus.empty(this); - - this.appendChild(layer); - - this.dispatchEvent(new Event('open')); - }; - - component.update = function () { - var layer = this.querySelector('.satus-layer'); - - satus.empty(layer); - - satus.render(layer.skeleton, layer); - }; - - component.render_children = false; - - component.addEventListener('render', function () { - this.open(); - }); - - return component; -}; -/*-------------------------------------------------------------- ->>> INPUT ---------------------------------------------------------------*/ - -satus.components.input = function (skeleton) { - var component = document.createElement('input'); - - if (skeleton.attr) { - var key = skeleton.attr.name || skeleton.storage, - value; - - if (satus.isset(satus.storage.get(key))) { - value = satus.storage.get(key); - } else { - value = skeleton.value; - } - - if (skeleton.attr.type === 'radio') { - component.checked = value === skeleton.attr.value || skeleton.value; - } else if (satus.isset(value)) { - component.value = value; - } - - component.addEventListener('change', function () { - var key = this.skeleton.attr.name || this.skeleton.storage; - - satus.storage.set(key, this.value); - }); - } else { - var key = skeleton.name || skeleton.storage, - value; - - component.type = skeleton.type; - - if (satus.isset(satus.storage.get(key))) { - value = satus.storage.get(key); - } else { - value = skeleton.value; - } - - if (skeleton.type === 'radio') { - component.checked = value === skeleton.value || skeleton.value; - } else if (satus.isset(value)) { - component.value = value; - } - - component.addEventListener('change', function () { - var key = this.skeleton.name || this.skeleton.storage; - - satus.storage.set(key, this.value); - }); - } - - return component; -}; -/*-------------------------------------------------------------- ->>> MENUBAR ---------------------------------------------------------------*/ - -satus.components.menubar = function (skeleton) { - function createList(items) { - var ul = document.createElement('ul'); - - for (var key in items) { - var item = items[key], - li = document.createElement('li'); - - satus.render(item, li); - - if (item.items) { - li.appendChild(createList(item.items)); - } - - ul.appendChild(li); - } - - return ul; - } - - return createList(skeleton.items); -}; -/*-------------------------------------------------------------- ->>> TEXTAREA ---------------------------------------------------------------*/ - -satus.components.textarea = function (skeleton) { - var component = document.createElement('div'), - line_number = document.createElement('div'), - textarea = document.createElement('textarea'); - - line_number.className = 'satus-textarea__line-number'; - - component.line_number = line_number; - component.textarea = textarea; - - Object.defineProperty(component, 'value', { - get() { - return this.textarea.value; - }, - set(value) { - this.textarea.value = value; - - this.line_number.update(); - } - }); - - line_number.update = function () { - var count = this.parentNode.textarea.value.split('\n').length; - - if (count !== this.children.length) { - satus.empty(this); - - for (var i = 1; i <= count; i++) { - var span = document.createElement('span'); - - span.textContent = i; - - this.appendChild(span); - } - } - }; - - textarea.addEventListener('input', function () { - this.parentNode.line_number.update(); - }); - - textarea.addEventListener('selectionchange', function () { - this.parentNode.line_number.update(); - }); - - textarea.addEventListener('scroll', function () { - this.parentNode.line_number.style.transform = 'translateY(-' + this.scrollTop + 'px)'; - - this.parentNode.line_number.update(); - }); - - component.appendChild(line_number); - component.appendChild(textarea); - - line_number.update(1); - - return component; -}; -/*-------------------------------------------------------------- ->>> DIVIDER ---------------------------------------------------------------*/ - -satus.components.divider = function () { - var component = document.createElement('div'); - - return component; -}; -/*-------------------------------------------------------------- ->>> TEXT FIELD ---------------------------------------------------------------*/ - -satus.components.textField = function (skeleton) { - var component = document.createElement('div'), - pre = document.createElement('pre'), - input = document.createElement('textarea'), - hidden_text = document.createElement('span'), - text = document.createElement('span'), - selection = document.createElement('div'), - cursor = document.createElement('div'); - - input.className = 'satus-text-field__input'; - pre.className = 'satus-text-field__pre'; - hidden_text.className = 'satus-text-field__hidden-text'; - text.className = 'satus-text-field__text'; - selection.className = 'satus-text-field__selection'; - cursor.className = 'satus-text-field__cursor'; - - component.inputElement = input; - component.textElement = text; - component.languages = { - regex: function (component) { - var regex_token = /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g, - char_class_token = /[^\\-]+|-|\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)/g, - char_class_parts = /^(\[\^?)(]?(?:[^\\\]]+|\\[\S\s]?)*)(]?)$/, - quantifier = /^(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??$/, - matches = component.inputElement.value.match(regex_token); - - function create(type, string) { - var span = document.createElement('span'); - - span.className = type; - span.textContent = string; - - component.textElement.appendChild(span); - } - - for (var i = 0, l = matches.length; i < l; i++) { - var match = matches[i]; - - if (match[0] === '[') { - create('character-class', match); - } else if (match[0] === '(') { - create('group', match); - } else if (match[0] === ')') { - create('group', match); - } else if (match[0] === '\\' || match === '^') { - create('anchor', match); - } else if (quantifier.test(match)) { - create('quantifier', match); - } else if (match === '|' || match === '.') { - create('metasequence', match); - } else { - create('text', match); - } - } - } - }; - component._syntax = skeleton.syntax; - - Object.defineProperty(component, 'value', { - get: function () { - return this.inputElement.value; - }, - set: function (value) { - var input = this.inputElement; - - input.value = value; - - input.updateValue(); - input.updateCursor(); - } - }); - - Object.defineProperty(component, 'syntax', { - get: function () { - return this._syntax; - }, - set: function (value) { - var input = this.inputElement; - - this._syntax = value; - - input.updateValue(); - input.updateCursor(); - } - }); - - input.rows = skeleton.rows || 1; - input.autocapitalize = 'none'; - input.autocomplete = 'off'; - input.autocorrect = 'off'; - input.spellcheck = false; - input.autofocus = true; - input.textElement = text; - input.hiddenTextElement = hidden_text; - input.selectionElement = selection; - input.cursorElement = cursor; - - input.updateValue = function () { - var component = this.parentNode.parentNode; - - for (var i = this.textElement.childNodes.length - 1; i > -1; i--) { - this.textElement.childNodes[i].remove(); - } - - if (this.value.length > 0) { - if (component.languages[component._syntax]) { - component.languages[component._syntax](component); - } else { - this.textElement.textContent = this.value; - } - } - }; - - input.updateCursor = function () { - var cursor = this.cursorElement, - selection = this.selectionElement, - hidden_text = this.hiddenTextElement, - start = this.selectionStart, - end = this.selectionEnd; - - cursor.style.animation = 'none'; - - if (start === end) { - selection.setAttribute('disabled', ''); - } else { - selection.removeAttribute('disabled'); - - hidden_text.textContent = this.value.substring(0, start); - - selection.style.left = hidden_text.offsetWidth - this.scrollLeft + 'px'; - - hidden_text.textContent = this.value.substring(start, end); - - selection.style.width = hidden_text.offsetWidth + 'px'; - } - - if (this.selectionDirection === 'forward') { - hidden_text.textContent = this.value.substring(0, end); - } else { - hidden_text.textContent = this.value.substring(0, start); - } - - cursor.style.left = hidden_text.offsetWidth - this.scrollLeft + 'px'; - - cursor.style.animation = ''; - - hidden_text.textContent = ''; - }; - - input.addEventListener('keydown', function () { - var self = this; - - setTimeout(function () { - var component = self.parentNode.parentNode; - - component.storageValue = self.value; - component.storageChange(); - - self.updateValue(); - self.updateCursor(); - }); - }); - - input.addEventListener('scroll', function (event) { - this.textElement.style.left = -this.scrollLeft + 'px'; - }); - - document.addEventListener('selectionchange', function () { - input.updateCursor(); - }); - - selection.setAttribute('disabled', ''); - - pre.appendChild(input); - pre.appendChild(hidden_text); - pre.appendChild(text); - pre.appendChild(selection); - pre.appendChild(cursor); - component.appendChild(pre); - - component.addEventListener('render', function () { - input.value = this.storageValue; - - this.inputElement.updateValue(); - this.inputElement.updateCursor(); - }); - - return component; -}; -/*-------------------------------------------------------------- ->>> TABS ---------------------------------------------------------------*/ - -satus.components.tabs = function (skeleton) { - var component = document.createElement('div'), - content = document.createElement('div'), - selection = document.createElement('div'); - - content.className = 'satus-tabs__content'; - selection.className = 'satus-tabs__selection'; - selection.style.width = 100 / skeleton.items.length + '%'; - - content.appendChild(selection); - - component.selection = selection; - - for (var i = 0, l = skeleton.items.length; i < l; i++) { - var item = skeleton.items[i], - button = document.createElement('button'); - - button.className = 'satus-tabs__button'; - button.value = item; - button.style.width = 100 / l + '%'; - - satus.text(button, item); - - button.addEventListener('click', function () { - var component = this.parentNode.parentNode; - - component.selection.style.left = 100 / (this.parentNode.children.length - 1) * (satus.indexOf(this) - 1) + '%'; - - component.storageValue = this.value; - component.storageChange(); - }); - - if (skeleton.value === item) { - selection.style.left = i * 50 + '%'; - } - - content.appendChild(button); - } - - component.appendChild(content); - - component.addEventListener('render', function () { - var index = satus.indexOf(this.storageValue, this.skeleton.items); - - if (index === -1) { - index = 0; - } - - this.selection.style.left = 100 / this.skeleton.items.length * index + '%'; - }); - - return component; -}; -/*-------------------------------------------------------------- ->>> ALERT ---------------------------------------------------------------*/ - -satus.components.alert = function (skeleton) { - var component = document.createElement('div'); - - return component; -}; -/*-------------------------------------------------------------- ->>> SLIDER ---------------------------------------------------------------*/ - -satus.components.slider = function (skeleton) { - var component = satus.createElement('div'), - label = component.add('div', 'slider__label'); - - component.min = skeleton.min || 0; - component.max = skeleton.max || 1; - component.step = skeleton.step || 1; - component.percentageStep = 100 / ((component.max - component.min) / component.step); - component.precision = String(component.step).replace(/[0-9]./, '').length; - component.inner = label.add('div', 'slider__inner'); - component.track = component.add('div', 'slider__track'); - component.track.tabIndex = 0; - component.slice = component.track.add('div', 'slider__slice'); - - component.valueElement = satus.render({ - component: 'input', - type: 'number', - properties: { - min: component.min, - max: component.max, - step: component.step - }, - on: { - input: function () { - var component = this.parentNode.parentNode; - - component.value = Math.min(component.max, Math.max(this.value, component.min)); - - component.storageValue = component.value; - - component.storageChange(); - - component.update(); - } - } - }, label); - - if (satus.isset(skeleton.value)) { - component.value = skeleton.value; - } else { - component.value = (component.max < component.min) ? component.min : component.min + (component.max - component.min) / 2; - } - - component.update = function () { - this.dataset.value = this.value; - - this.valueElement.value = this.value; - - this.slice.style.width = (this.value - this.min) / ((this.max - this.min) / 100) + '%'; - }; - - component.move = function (event) { - var track = this.track.getBoundingClientRect(), - x = Math.min(track.width, Math.max(event.clientX - track.left, 0)); - - this.value = x / track.width * 100 / this.percentageStep * this.step + this.min; - this.value = Math.round(this.value / this.step) * this.step; - this.value = Number(this.value.toFixed(this.precision)); - - this.storageValue = this.value; - - this.storageChange(); - - this.update(); - }; - - component.track.addEventListener('keydown', function (event) { - if (event.keyCode === 37) { - this.value -= this.step; - } else if (event.keyCode === 39) { - this.value += this.step; - } - - this.value = Math.min(this.max, Math.max(this.value, this.min)); - - this.storageValue = this.value; - - this.storageChange(); - - this.update(); - }); - - component.track.addEventListener('mousedown', function (event) { - if (event.button === 0) { - var component = this.parentNode; - - component.move(event); - - function mousemove(event) { - event.preventDefault(); - event.stopPropagation(); - - component.move(event); - - return false; - } - - function mouseup() { - window.removeEventListener('mousemove', mousemove); - window.removeEventListener('mouseup', mouseup); - } - - window.addEventListener('mousemove', mousemove); - window.addEventListener('mouseup', mouseup); - } - }); - - component.addEventListener('render', function () { - if (satus.isNumber(this.storageValue)) { - this.value = this.storageValue; - } - - component.update(); - }); - - return component; -}; -/*-------------------------------------------------------------- ->>> COLOR PICKER ---------------------------------------------------------------*/ - -satus.components.colorPicker = function (skeleton) { - var component = document.createElement('button'), - component_label = document.createElement('span'), - component_value = document.createElement('span'); - - component.inner = component_label; - component.valueElement = component_value; - - component.className = 'satus-button'; - component_value.className = 'satus-color-picker__value'; - - component.appendChild(component_label); - component.appendChild(component_value); - - component.addEventListener('click', function () { - var rgb = this.rgb, - hsl = satus.color.rgbToHsl(rgb), - s = hsl[1] / 100, - l = hsl[2] / 100; - - s *= l < .5 ? l : 1 - l; - - var v = l + s; - - s = 2 * s / (l + s); - - satus.render({ - component: 'modal', - variant: 'color-picker', - value: hsl, - parent: this, - - palette: { - component: 'div', - class: 'satus-color-picker__palette', - style: { - 'backgroundColor': 'hsl(' + hsl[0] + 'deg, 100%, 50%)' - }, - on: { - mousedown: function () { - var palette = this, - rect = this.getBoundingClientRect(), - cursor = this.children[0]; - - function mousemove(event) { - var hsl = palette.skeleton.parent.value, - x = event.clientX - rect.left, - y = event.clientY - rect.top, - s; - - x = Math.min(Math.max(x, 0), rect.width) / (rect.width / 100); - y = Math.min(Math.max(y, 0), rect.height) / (rect.height / 100); - - var v = 100 - y, - l = (2 - x / 100) * v / 2; - - hsl[1] = x * v / (l < 50 ? l * 2 : 200 - l * 2); - hsl[2] = l; - - cursor.style.left = x + '%'; - cursor.style.top = y + '%'; - - palette.nextSibling.children[0].style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; - - event.preventDefault(); - } - - function mouseup() { - window.removeEventListener('mousemove', mousemove); - window.removeEventListener('mouseup', mouseup); - } - - window.addEventListener('mousemove', mousemove); - window.addEventListener('mouseup', mouseup); - } - }, - - cursor: { - component: 'div', - class: 'satus-color-picker__cursor', - style: { - 'left': s * 100 + '%', - 'top': 100 - v * 100 + '%' - } - } - }, - section: { - component: 'section', - variant: 'color', - - color: { - component: 'div', - class: 'satus-color-picker__color', - style: { - 'backgroundColor': 'rgb(' + this.rgb.join(',') + ')' - } - }, - hue: { - component: 'slider', - class: 'satus-color-picker__hue', - storage: false, - value: hsl[0], - max: 360, - on: { - change: function () { - var modal = this.skeleton.parent.parent, - hsl = modal.value; - - hsl[0] = this.values[0]; - - this.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; - this.parentNode.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg, 100%, 50%)'; - } - } - } - }, - actions: { - component: 'section', - variant: 'actions', - - reset: { - component: 'button', - text: 'reset', - on: { - click: function () { - var modal = this.skeleton.parent.parent, - component = modal.parent; - - component.rgb = component.skeleton.value; - - component.storageValue = component.rgb; - component.storageChange(); - - component.valueElement.style.backgroundColor = 'rgb(' + component.rgb.join(',') + ')'; - - modal.rendered.close(); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.skeleton.parent.parent.rendered.close(); - } - } - }, - ok: { - component: 'button', - text: 'OK', - on: { - click: function () { - var modal = this.skeleton.parent.parent, - component = modal.parent; - - component.rgb = satus.color.hslToRgb(modal.value); - - component.storageValue = component.rgb; - component.storageChange(); - - component.valueElement.style.backgroundColor = 'rgb(' + component.rgb.join(',') + ')'; - - modal.rendered.close(); - } - } - } - } - }); - }); - - component.addEventListener('render', function () { - component.rgb = this.storageValue || [0, 100, 50]; - - component_value.style.backgroundColor = 'rgb(' + component.rgb.join(',') + ')'; - }); - - return component; -}; -/*-------------------------------------------------------------- ->>> LIST ---------------------------------------------------------------*/ - -satus.components.list = function (skeleton) { - var ul = document.createElement('ul'); - - for (var i = 0, l = skeleton.items.length; i < l; i++) { - var li = document.createElement('li'), - item = skeleton.items[i]; - - li.className = 'satus-list__item'; - - for (var j = 0, k = item.length; j < k; j++) { - var child = item[j]; - - if (typeof child === 'string') { - var span = document.createElement('span'); - - span.textContent = satus.locale.get(child); - - li.appendChild(span); - } else { - satus.render(child, li); - } - } - - ul.appendChild(li); - } - - return ul; -}; -/*-------------------------------------------------------------- ->>> MODAL ---------------------------------------------------------------*/ - -satus.components.modal = function (skeleton) { - var component = document.createElement('div'), - scrim = document.createElement('div'), - surface = document.createElement('div'); - - component.inner = surface; - - scrim.className = 'satus-modal__scrim'; - surface.className = 'satus-modal__surface'; - - component.close = function () { - var component = this, - component_surface = this.children[1]; - - this.classList.add('satus-modal--closing'); - - setTimeout(function () { - component.remove(); - - component.dispatchEvent(new CustomEvent('close')); - }, satus.getAnimationDuration(component_surface)); - }; - - scrim.addEventListener('click', function () { - this.parentNode.close(); - }); - - component.appendChild(scrim); - component.appendChild(surface); - - return component; -}; \ No newline at end of file +var satus={components:{},events:{},locale:{strings:{}},storage:{attributes:{},data:{}},getAnimationDuration:function(e){return 1e3*Number(window.getComputedStyle(e).getPropertyValue("animation-duration").replace(/[^0-9.]/g,""))},ajax:function(e,t,n){var a=new XMLHttpRequest;a.onload=function(){t(this.response)},a.onerror=function(){n(t)},a.open("GET",e,!0),a.send()},append:function(e,t){(t||document.body).appendChild(e)},attr:function(e,t){if(t)for(var n in t)if(e.is_svg)e.setAttributeNS(null,n,t[n]);else{var a=t[n];-1!==["placeholder","title"].indexOf(n)&&(a=satus.locale.get(a)),e.setAttribute(n,a)}},elementIndex:function(e){return Array.prototype.slice.call(e.parentNode.children).indexOf(e)},camelize:function(e){for(var t="",n=0,a=e.length;n-1;n--){var a=e.childNodes[n];-1===t.indexOf(a)&&a.remove()}}};Object.defineProperty(satus.events,"add",{value:function(e,t){!1===this.hasOwnProperty(e)&&(this[e]=[]),this[e].push(t)}}),satus.isset=function(e){return null!=e},satus.fetch=function(e,t,n){fetch(e).then((function(e){e.ok?e.json().then(t):n()})).catch((function(){n(t)}))},satus.on=function(e,t){if(this.isset(t)&&"object"==typeof t)for(var n in t){var a=typeof t[n];"selectionchange"===n&&(e=document),"function"===a?e.addEventListener(n,t[n]):"object"===a?e.addEventListener(n,(function(e){this.skeleton.on[e.type].parent=this.skeleton,"modal"!==this.skeleton.on[e.type].component&&this.base&&this.base.layers?this.base.layers.open(this.skeleton.on[e.type]):satus.render(this.skeleton.on[e.type],this.base)})):"string"===a&&e.addEventListener(n,(function(){for(var e=this.skeleton.on[event.type].match(/(["'`].+["'`]|[^.()]+)/g),t=this.base,n=0,a=e.length;nparseInt(e,16))),a={name:"AES-GCM",iv:new Uint8Array(n)};try{var s=(new TextDecoder).decode(await crypto.subtle.decrypt(a,await crypto.subtle.importKey("raw",await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t)),a,!1,["decrypt"]),new Uint8Array(atob(e.slice(24)).match(/[\s\S]/g).map((e=>e.charCodeAt(0))))))}catch(e){return!1}return s},satus.encrypt=async function(e,t){var n=crypto.getRandomValues(new Uint8Array(12)),a={name:"AES-GCM",iv:n};return Array.from(n).map((e=>("00"+e.toString(16)).slice(-2))).join("")+btoa(Array.from(new Uint8Array(await crypto.subtle.encrypt(a,await crypto.subtle.importKey("raw",await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t)),a,!1,["encrypt"]),(new TextEncoder).encode(e)))).map((e=>String.fromCharCode(e))).join(""))},satus.storage.get=function(e){var t=satus.storage.data;if("string"==typeof e){for(var n=0,a=(e=e.split("/").filter((function(e){return""!=e}))).length;n=6&&(a-=6),a<1?(n-t)*a+t:a<3?n:a<4?(n-t)*(4-a)+t:t},satus.color.hslToRgb=function(e){var t,n,a,s=e[0]/360,o=e[1]/100,r=e[2]/100;if(0==o)t=n=a=r;else{var i=function(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e},u=r<.5?r*(1+o):r+o-r*o,l=2*r-u;t=i(l,u,s+1/3),n=i(l,u,s),a=i(l,u,s-1/3)}return[Math.round(255*t),Math.round(255*n),Math.round(255*a)]},satus.events.add("render",(function(e,t){if(!0===t.pluviam){function n(e){var t=document.createElement("span"),n=this.getBoundingClientRect(),a=e.clientX-n.left,s=e.clientY-n.top,o=Math.sqrt(Math.pow(2*n.width,2)+Math.pow(2*n.height,2));t.className="satus-pluviam",t.style.left=a-o/2+"px",t.style.top=s-o/2+"px",t.style.width=o+"px",t.style.height=o+"px",this.appendChild(t),setTimeout((function(){t.remove()}),1e3)}e.addEventListener("mousedown",n),e.addEventListener("mouseover",n)}})),satus.indexeddb={request:null},satus.indexeddb.open=function(e,t,n){var a=indexedDB.open(e);a.onerror=function(e){n()},a.onblocked=function(e){satus.indexeddb.open(n)},a.onsuccess=function(e){satus.indexeddb.request=this.result,n()},a.onupgradeneeded=function(e){for(var a in satus.indexeddb.request=this.result,t){var s=t[a];if(!this.result.objectStoreNames.contains(a))for(var o=this.result.createObjectStore(a,s.keyOptions),r=0,i=s.indexes.length;r0?(l.advance(s.offset),s.offset=0):r.length0?(l.advance(s.offset),s.offset=0):i&&r.length4||Math.abs(e.clientY-s)>4)&&(l=!0,t.classList.add("satus-sortable__chosen"),t.parentNode.appendChild(i)),i.style.transform="translate("+(e.clientX-o)+"px, "+(e.clientY-r)+"px)"}function d(e){var n=e.target,a=n.parentNode,s=e.layerY/(n.offsetHeight/100);s<50&&n.previousSibling!==t||s>=50&&n.nextSibling===t?a.insertBefore(t,n):a.insertBefore(t,n.nextSibling)}i.classList.add("satus-sortable__ghost"),window.addEventListener("mousemove",c,{passive:!0,capture:!0}),window.addEventListener("mouseup",(function e(n){t.classList.remove("satus-sortable__chosen"),i.remove(),window.removeEventListener("mousemove",c,!0),window.removeEventListener("mouseup",e,!0);for(var a=0,s=u.length;a0||window.navigator.msMaxTouchPoints>0)&&(u.device.touch=!0,u.device.max_touch_points=navigator.maxTouchPoints),"object"==typeof navigator.connection&&(u.device.connection.type=navigator.connection.effectiveType||null,navigator.connection.downlink&&(u.device.connection.speed=navigator.connection.downlink+" Mbps")),n.remove(),s.remove(),r.remove(),u},satus.uuid=function(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(e){return(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)}))},satus.events.add("render",(function(e,t){t.contextMenu&&e.addEventListener("contextmenu",(function(e){var t=e.clientX,n=e.clientY,a=satus.render({component:"modal",variant:"contextmenu",parent:this.skeleton});return window.innerWidth-t<200&&(t=window.innerWidth-200),a.inner.style.left=t+"px",a.inner.style.top=n+"px",satus.render(this.skeleton.contextMenu,a.inner),e.preventDefault(),e.stopPropagation(),!1}))})),satus.components.base=function(e){var t=document.createElement("div");return t.base=t,t},satus.components.radio=function(e){var t=document.createElement("label"),n=document.createElement("span"),a=document.createElement("input");return t.inner=n,a.type="radio",e.group&&(t.storage=e.group,a.name=e.group),e.value&&(a.value=e.value),t.addEventListener("render",(function(){this.storageValue=satus.storage.get(this.storage),satus.isset(this.storageValue)?a.checked=this.storageValue===e.value:e.checked&&(a.checked=!0)})),a.addEventListener("change",(function(){t.storageValue=this.value,t.storageChange()})),t.appendChild(n),t.appendChild(a),t},satus.components.checkbox=function(e){var t=document.createElement("button"),n=document.createElement("span");return t.inner=n,n.className="satus-checkbox__content",t.appendChild(n),t.addEventListener("click",(function(){"true"===this.dataset.value?(this.storageValue=!1,this.dataset.value="false"):(this.storageValue=!0,this.dataset.value="true"),this.storageChange()})),t.addEventListener("render",(function(){this.dataset.value=this.storageValue})),t},satus.components.select=function(e){for(var t=document.createElement("div"),n=document.createElement("span"),a=document.createElement("span"),s=document.createElement("select"),o=0,r=e.options.length;o0)}if(this.data.click){t.length&&-1===t[t.length-1].className.indexOf("plus")&&n("plus");r=n("mouse"),i=document.createElement("div");r.appendChild(i),r.className+=" click"}if(this.data.middle){t.length&&-1===t[t.length-1].className.indexOf("plus")&&n("plus");r=n("mouse"),i=document.createElement("div");r.appendChild(i),r.className+=" middle"}if(this.data.context){t.length&&-1===t[t.length-1].className.indexOf("plus")&&n("plus");r=n("mouse"),i=document.createElement("div");r.appendChild(i),r.className+=" context"}},t.valueElement=a,t.appendChild(n),t.appendChild(a),t.keydown=function(e){return e.preventDefault(),e.stopPropagation(),t.data={alt:e.altKey,ctrl:e.ctrlKey,shift:e.shiftKey,keys:{}},-1===["control","alt","altgraph","shift"].indexOf(e.key.toLowerCase())&&(t.data.keys[e.keyCode]={code:e.code,key:e.key}),t.data.wheel=0,t.render(),!1},!1!==e.wheel&&(t.mousewheel=function(e){return e.stopPropagation(),(0===t.data.wheel&&0===Object.keys(t.data.keys).length&&!1===t.data.alt&&!1===t.data.ctrl&&!1===t.data.shift||t.data.wheel<0&&e.deltaY>0||t.data.wheel>0&&e.deltaY<0)&&(t.data={alt:!1,ctrl:!1,shift:!1,keys:{}}),t.data.wheel=e.deltaY<0?-1:1,t.render(),!1}),t.addEventListener("render",(function(){this.data=this.storageValue||{alt:!1,ctrl:!1,shift:!1,keys:{},wheel:0},this.render(this.valueElement)})),t.addEventListener("click",(function(){satus.render({component:"modal",properties:{parent:this},on:{close:function(){window.removeEventListener("keydown",t.keydown),window.removeEventListener("wheel",t.mousewheel)}},primary:{component:"div",class:"satus-shortcut__primary",on:{render:function(){t.primary=this,!0===t.skeleton.mouseButtons&&(this.addEventListener("mousedown",(function(e){(t.data.click&&0===e.button||t.data.middle&&1===e.button)&&(t.data={alt:!1,ctrl:!1,shift:!1,keys:{}}),t.data.click=!1,t.data.middle=!1,t.data.context=!1,0===e.button?(t.data.click=!0,t.render()):1===e.button&&(t.data.middle=!0,t.render())})),this.addEventListener("contextmenu",(function(e){return e.preventDefault(),e.stopPropagation(),t.data.context&&(t.data={alt:!1,ctrl:!1,shift:!1,keys:{}}),t.data.context=!0,t.data.middle=!1,t.data.click=!1,t.render(),!1}))),t.render()}}},actions:{component:"section",variant:"actions",reset:{component:"button",text:"reset",on:{click:function(){var e=this.parentNode.parentNode.parentNode.parent;e.data=e.skeleton.value||{},e.render(e.valueElement),satus.storage.remove(e.storage),this.parentNode.parentNode.parentNode.close(),window.removeEventListener("keydown",e.keydown),window.removeEventListener("wheel",e.mousewheel)}}},empty:{component:"button",text:"empty",on:{click:function(){t.data={alt:!1,ctrl:!1,shift:!1,keys:{0:{code:"Lang1",key:""}},wheel:0},t.storageValue=t.data,t.storageChange(),t.render(t.valueElement),this.parentNode.parentNode.parentNode.close(),window.removeEventListener("keydown",t.keydown),window.removeEventListener("wheel",t.mousewheel)}}},cancel:{component:"button",text:"cancel",on:{click:function(){t.data=satus.storage.get(t.storage)||t.skeleton.value||{},t.render(t.valueElement),this.parentNode.parentNode.parentNode.close(),window.removeEventListener("keydown",t.keydown),window.removeEventListener("wheel",t.mousewheel)}}},save:{component:"button",text:"save",on:{click:function(){t.storageValue=t.data,t.storageChange(),t.render(t.valueElement),this.parentNode.parentNode.parentNode.close(),window.removeEventListener("keydown",t.keydown),window.removeEventListener("wheel",t.mousewheel)}}}}}),window.addEventListener("keydown",this.keydown),window.addEventListener("wheel",this.mousewheel)})),t},satus.components.switch=function(e){var t=document.createElement("button"),n=document.createElement("span"),a=document.createElement("i");return t.inner=n,n.className="satus-switch__content",t.addEventListener("click",(function(){"true"===this.dataset.value?(this.storageValue=!1,this.dataset.value="false"):(this.storageValue=!0,this.dataset.value="true"),this.storageChange()})),t.addEventListener("render",(function(){this.dataset.value=this.storageValue})),t.appendChild(n),t.appendChild(a),t},satus.components.layers=function(e){var t=document.createElement("div");return t.path=[e],t.back=function(){this.path.length>1&&(this.path.pop(),this.open())},t.open=function(e){var t=document.createElement("div");e?this.path.push(e):e=this.path[this.path.length-1],t.className="satus-layer",t.skeleton=e,t.base=this.base,satus.render(e,t,"layers"===e.component),satus.empty(this),this.appendChild(t),this.dispatchEvent(new Event("open"))},t.update=function(){var e=this.querySelector(".satus-layer");satus.empty(e),satus.render(e.skeleton,e)},t.render_children=!1,t.addEventListener("render",(function(){this.open()})),t},satus.components.input=function(e){var t=document.createElement("input");if(e.attr){var n=e.attr.name||e.storage;a=satus.isset(satus.storage.get(n))?satus.storage.get(n):e.value,"radio"===e.attr.type?t.checked=a===e.attr.value||e.value:satus.isset(a)&&(t.value=a),t.addEventListener("change",(function(){var e=this.skeleton.attr.name||this.skeleton.storage;satus.storage.set(e,this.value)}))}else{var a;n=e.name||e.storage;t.type=e.type,a=satus.isset(satus.storage.get(n))?satus.storage.get(n):e.value,"radio"===e.type?t.checked=a===e.value||e.value:satus.isset(a)&&(t.value=a),t.addEventListener("change",(function(){var e=this.skeleton.name||this.skeleton.storage;satus.storage.set(e,this.value)}))}return t},satus.components.menubar=function(e){return function e(t){var n=document.createElement("ul");for(var a in t){var s=t[a],o=document.createElement("li");satus.render(s,o),s.items&&o.appendChild(e(s.items)),n.appendChild(o)}return n}(e.items)},satus.components.textarea=function(e){var t=document.createElement("div"),n=document.createElement("div"),a=document.createElement("textarea");return n.className="satus-textarea__line-number",t.line_number=n,t.textarea=a,Object.defineProperty(t,"value",{get(){return this.textarea.value},set(e){this.textarea.value=e,this.line_number.update()}}),n.update=function(){var e=this.parentNode.textarea.value.split("\n").length;if(e!==this.children.length){satus.empty(this);for(var t=1;t<=e;t++){var n=document.createElement("span");n.textContent=t,this.appendChild(n)}}},a.addEventListener("input",(function(){this.parentNode.line_number.update()})),a.addEventListener("selectionchange",(function(){this.parentNode.line_number.update()})),a.addEventListener("scroll",(function(){this.parentNode.line_number.style.transform="translateY(-"+this.scrollTop+"px)",this.parentNode.line_number.update()})),t.appendChild(n),t.appendChild(a),n.update(1),t},satus.components.divider=function(){return document.createElement("div")},satus.components.textField=function(e){var t=document.createElement("div"),n=document.createElement("pre"),a=document.createElement("textarea"),s=document.createElement("span"),o=document.createElement("span"),r=document.createElement("div"),i=document.createElement("div");return a.className="satus-text-field__input",n.className="satus-text-field__pre",s.className="satus-text-field__hidden-text",o.className="satus-text-field__text",r.className="satus-text-field__selection",i.className="satus-text-field__cursor",t.inputElement=a,t.textElement=o,t.languages={regex:function(e){var t=/^(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??$/,n=e.inputElement.value.match(/\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g);function a(t,n){var a=document.createElement("span");a.className=t,a.textContent=n,e.textElement.appendChild(a)}for(var s=0,o=n.length;s-1;t--)this.textElement.childNodes[t].remove();this.value.length>0&&(e.languages[e._syntax]?e.languages[e._syntax](e):this.textElement.textContent=this.value)},a.updateCursor=function(){var e=this.cursorElement,t=this.selectionElement,n=this.hiddenTextElement,a=this.selectionStart,s=this.selectionEnd;e.style.animation="none",a===s?t.setAttribute("disabled",""):(t.removeAttribute("disabled"),n.textContent=this.value.substring(0,a),t.style.left=n.offsetWidth-this.scrollLeft+"px",n.textContent=this.value.substring(a,s),t.style.width=n.offsetWidth+"px"),"forward"===this.selectionDirection?n.textContent=this.value.substring(0,s):n.textContent=this.value.substring(0,a),e.style.left=n.offsetWidth-this.scrollLeft+"px",e.style.animation="",n.textContent=""},a.addEventListener("keydown",(function(){var e=this;setTimeout((function(){var t=e.parentNode.parentNode;t.storageValue=e.value,t.storageChange(),e.updateValue(),e.updateCursor()}))})),a.addEventListener("scroll",(function(e){this.textElement.style.left=-this.scrollLeft+"px"})),document.addEventListener("selectionchange",(function(){a.updateCursor()})),r.setAttribute("disabled",""),n.appendChild(a),n.appendChild(s),n.appendChild(o),n.appendChild(r),n.appendChild(i),t.appendChild(n),t.addEventListener("render",(function(){a.value=this.storageValue,this.inputElement.updateValue(),this.inputElement.updateCursor()})),t},satus.components.tabs=function(e){var t=document.createElement("div"),n=document.createElement("div"),a=document.createElement("div");n.className="satus-tabs__content",a.className="satus-tabs__selection",a.style.width=100/e.items.length+"%",n.appendChild(a),t.selection=a;for(var s=0,o=e.items.length;s 0) { - satus.search(value, skeleton, function (results) { - var search_results = document.querySelector('.search-results'), - skeleton = { - component: 'modal', - class: 'search-results' - }; - - for (var key in results) { - var result = results[key], - parent = result; - - while ( - parent.parent && - !parent.parent.category - ) { - parent = parent.parent; - } - - var category = ''; - - if (parent.parent && parent.parent.label && parent.parent.label.text) { - category = parent.parent.label.text; - } - - parent = result; - - while ( - parent.parent && - parent.parent.component !== 'button' - ) { - parent = parent.parent; - } - - parent = parent.parent; - - if (parent) { - if (parent.label) { - var subcategory = parent.label.text; - } else { - var subcategory = parent.text; - } - - skeleton[category + subcategory + '_label'] = { - component: 'span', - class: 'satus-section--label', - text: satus.locale.get(category) + ' -> ' + satus.locale.get(subcategory) - }; - - if (!skeleton[category + subcategory]) { - skeleton[category + subcategory] = { - component: 'section', - variant: 'card' - }; - } - - skeleton[category + subcategory][key] = result; - } else { - skeleton[category + '_label'] = { - component: 'span', - class: 'satus-section--label', - text: category - }; - - if (!skeleton[category]) { - skeleton[category] = { - component: 'section', - variant: 'card' - }; - } - - skeleton[category][key] = result; - } - } - - if (Object.keys(results).length === 0) { - if (search_results) { - search_results.remove(); - } - } else { - if (search_results) { - var parent = document.querySelector('.search-results .satus-modal__surface'); - - while (parent.children[0]) { - parent.children[0].remove(); - } - - delete skeleton.component; - - satus.render(skeleton, parent); - } else { - satus.render(skeleton, self.base); - - document.querySelector('.search-results .satus-modal__scrim').addEventListener('click', function () { - var results = document.querySelector('.search-results'); - - if (results) { - results.close(); - } - - document.querySelector('.satus-input--search').value = ''; - document.querySelector('.search-mode').classList.remove('search-mode'); - }); - } - } - }, true); - } else { - var results = document.querySelector('.search-results'); - - if (results) { - results.close(); - } - } - } - } - }, - search_close: { - component: 'button', - class: 'satus-button--close-search', - on: { - click: function () { - var results = document.querySelector('.search-results'); - - if (results) { - results.close(); - } - - this.base.classList.remove('search-mode'); - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'stroke-width': '1.75' - }, - - path: { - component: 'path', - attr: { - 'd': 'M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z' - } - } - } - }, - search: { - component: 'button', - on: { - click: function () { - this.base.classList.toggle('search-mode'); - - this.base.skeleton.header.section_end.search_field.rendered.focus(); - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'stroke': 'currentcolor', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - 'stroke-width': '1.25' - }, - - circle: { - component: 'circle', - attr: { - 'cx': '11', - 'cy': '10.5', - 'r': '6' - } - }, - path: { - component: 'path', - attr: { - 'd': 'M20 20l-4-4' - } - } - } - }, - menu: { - component: 'button', - on: { - click: { - component: 'modal', - variant: 'vertical', - - active_features: { - component: 'button', - on: { - click: { - component: 'section', - variant: 'card', - on: { - render: function () { - var component = this; - - this.skeleton.parent.parent.rendered.close(); - - satus.search('', skeleton, function (results) { - var skeleton = {}; - - for (var key in results) { - var result = results[key], - default_value = result.value || false, - value = satus.storage.get(key), - parent = result; - - if (result.component === 'select') { - if (satus.isset(result.value) === false) { - default_value = result.options[0].value; - } - } - - if (satus.isset(value) && value !== default_value) { - while ( - parent.parent && - !parent.parent.category - ) { - parent = parent.parent; - } - - var category = parent.parent.label.text; - - parent = result; - - while ( - parent.parent && - parent.parent.component !== 'button' - ) { - parent = parent.parent; - } - - parent = parent.parent; - - console.log(result, category, parent); - - if (parent) { - if (parent.label) { - var subcategory = parent.label.text; - } else { - var subcategory = parent.text; - } - - skeleton[category + subcategory + '_label'] = { - component: 'span', - class: 'satus-section--label', - text: satus.locale.get(category) + ' -> ' + satus.locale.get(subcategory) - }; - - if (!skeleton[category + subcategory]) { - skeleton[category + subcategory] = { - component: 'section', - variant: 'card' - }; - } - - skeleton[category + subcategory][key] = result; - } else { - skeleton[category + '_label'] = { - component: 'span', - class: 'satus-section--label', - text: category - }; - - if (!skeleton[category]) { - skeleton[category] = { - component: 'section', - variant: 'card' - }; - } - - skeleton[category][key] = result; - } - } - } - - if (Object.keys(skeleton).length === 0) { - skeleton = { - component: 'section', - variant: 'card', - - span: { - component: 'span', - text: 'noActiveFeatures' - } - }; - } - - satus.render(skeleton, component.parentNode); - - component.remove(); - }); - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'stroke-width': 1.75 - }, - - path1: { - component: 'path', - attr: { - 'd': 'M22 11.08V12a10 10 0 11-5.93-9.14' - } - }, - path2: { - component: 'path', - attr: { - 'd': 'M22 4L12 14.01l-3-3' - } - } - }, - label: { - component: 'span', - text: 'activeFeatures' - } - }, - settings: { - component: 'button', - category: true, - on: { - click: { - section_1: { - component: 'section', - variant: 'card', - on: { - render: function () { - this.skeleton.parent.parent.parent.rendered.close(); - } - }, - - developer_options: { - component: 'button', - on: { - click: { - custom_js_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'customJs' - }, - custom_js: { - component: 'input', - attr: { - 'type': 'text' - }, - on: { - render: function () { - this.value = satus.storage.get('custom_js') || ''; - }, - input: function () { - satus.storage.set('custom_js', this.value); - } - } - }, - custom_css_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'customCss' - }, - custom_css: { - component: 'input', - attr: { - 'type': 'text' - }, - on: { - render: function () { - this.value = satus.storage.get('custom_css') || ''; - }, - input: function () { - satus.storage.set('custom_css', this.value); - } - } - }, - google_api_key_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'googleApiKey' - }, - google_api_key: { - component: 'input', - attr: { - type: 'text' - }, - on: { - render: function () { - this.value = satus.storage.get('google-api-key') || 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; - }, - input: function () { - var value = this.value; - - if (value.length === 0) { - value = 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; - } - - satus.storage.set('google-api-key', value); - } - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'currentColor' - }, - - path: { - component: 'path', - attr: { - 'd': 'M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z' - } - } - }, - label: { - component: 'span', - text: 'developerOptions' - } - }, - }, - section_2: { - component: 'section', - variant: 'card', - - appearance: { - component: 'button', - on: { - click: { - section_label_1: { - component: 'span', - class: 'satus-section--label', - text: 'general' - }, - section_1: { - component: 'section', - variant: 'card', - header: { - component: 'button', - text: 'header', - on: { - click: { - section: { - component: 'section', - variant: 'card', - - title_version: { - component: 'switch', - text: 'version' - } - } - } - } - }, - home: { - component: 'button', - text: 'home', - on: { - click: { - section_1: { - component: 'section', - variant: 'card', - - improvedtube_home: { - component: 'select', - text: 'style', - options: [{ - text: 'bubbles', - value: 'bubbles' - }, { - text: 'list', - value: 'list' - }] - } - }, - section_label_2: { - component: 'span', - class: 'satus-section--label', - text: 'categories' - }, - section_2: { - component: 'section', - variant: 'card', - - it_general: { - component: 'switch', - text: 'general', - value: true - }, - it_appearance: { - component: 'switch', - text: 'appearance', - value: true - }, - it_themes: { - component: 'switch', - text: 'themes', - value: true - }, - it_player: { - component: 'switch', - text: 'player', - value: true - }, - it_playlist: { - component: 'switch', - text: 'playlist', - value: true - }, - it_channel: { - component: 'switch', - text: 'channel', - value: true - }, - it_shortcuts: { - component: 'switch', - text: 'shortcuts', - value: true - }, - it_mixer: { - component: 'switch', - text: 'mixer', - value: true - }, - it_analyzer: { - component: 'switch', - text: 'analyzer', - value: true - }, - it_blacklist: { - component: 'switch', - text: 'blacklist', - value: true - } - } - } - } - } - }, - section_label_2: { - component: 'span', - class: 'satus-section--label', - text: 'icons' - }, - section_2: { - component: 'section', - variant: 'card', - - improvedtube_youtube_icon: { - text: 'improvedtubeIconOnYoutube', - component: 'select', - options: [{ - text: 'disabled', - value: 'disabled' - }, { - text: 'youtubeHeaderLeft', - value: 'header_left' - }, { - text: 'youtubeHeaderRight', - value: 'header_right' - }, { - text: 'sidebar', - value: 'sidebar' - }, { - text: 'draggable', - value: 'draggable' - }, { - text: 'belowPlayer', - value: 'below_player' - }] - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'currentColor' - }, - - path: { - component: 'path', - attr: { - 'd': 'M7 16c.6 0 1 .5 1 1a2 2 0 0 1-2 2h-.5a4 4 0 0 0 .5-2c0-.6.5-1 1-1M18.7 3a1 1 0 0 0-.7.3l-9 9 2.8 2.7 9-9c.3-.4.3-1 0-1.4l-1.4-1.3a1 1 0 0 0-.7-.3zM7 14a3 3 0 0 0-3 3c0 1.3-1.2 2-2 2 1 1.2 2.5 2 4 2a4 4 0 0 0 4-4 3 3 0 0 0-3-3z' - } - } - }, - label: { - component: 'span', - text: 'appearance' - } - }, - languages: { - component: 'button', - on: { - click: { - section: { - component: 'section', - variant: 'card', - - language: { - text: 'improvedtubeLanguage', - component: 'select', - on: { - change: function (name, value) { - satus.memory.set('locale', {}); - - satus.locale(function () { - document.querySelector('.satus-main__container').innerHTML = ''; - - document.querySelector('.satus-header__title').innerText = satus.locale.getMessage('languages'); - document.querySelector('#search').placeholder = satus.locale.getMessage('search'); - - satus.render(document.querySelector('.satus-main__container'), skeleton.main.section.settings.section.languages); - }); - } - }, - options: [{ - value: 'en', - text: 'English' - }, { - value: 'ko', - text: '한국어' - }, { - value: 'es', - text: 'Español (España)' - }, { - value: 'ru', - text: 'Русский' - }, { - value: 'de', - text: 'Deutsch' - }, { - value: 'zh_TW', - text: '中文 (繁體)' - }, { - value: 'pt_PT', - text: 'Português' - }, { - value: 'pt_BR', - text: 'Português (Brasil)' - }, { - value: 'zh_CN', - text: '中文 (简体)' - }, { - value: 'fr', - text: 'Français' - }, { - value: 'ja', - text: '日本語' - }, { - value: 'tr', - text: 'Türkçe' - }, { - value: 'it', - text: 'Italiano' - }, { - value: 'nl', - text: 'Nederlands' - }, { - value: 'ar', - text: 'العربية' - }, { - value: 'id', - text: 'Bahasa Indonesia' - }, { - value: 'nb', - text: 'Norsk' - }, { - value: 'nb_NO', - text: 'Norsk (Bokmål)' - }, { - value: 'el', - text: 'Ελληνικά' - }, { - value: 'bn', - text: 'বাংলা' - }, { - value: 'hin', - text: 'हिन्दी' - }, { - value: 'sk', - text: 'Slovenčina' - }, { - value: 'pl', - text: 'Polski' - }] - }, - youtube_language: { - text: 'youtubeLanguage', - component: 'select', - options: [{ - value: 'default', - text: 'default' - }, - { - value: "en", - text: "English" - }, { - value: "es", - text: "Español (España)" - }, { - value: "es-419", - text: "Español (Latinoamérica)" - }, { - value: "es-US", - text: "Español (US)" - }, { - value: "ru", - text: "Русский" - }, { - value: "de", - text: "Deutsch" - }, { - value: "pt-PT", - text: "Português" - }, { - value: "pt", - text: "Português (Brasil)" - }, { - value: "fr", - text: "Français" - }, { - value: "pl", - text: "Polski" - }, { - value: "ja", - text: "日本語" - }, { - value: "af", - text: "Afrikaans" - }, { - value: "az", - text: "Azərbaycan" - }, { - value: "id", - text: "Bahasa Indonesia" - }, { - value: "ms", - text: "Bahasa Malaysia" - }, { - value: "bs", - text: "Bosanski" - }, { - value: "ca", - text: "Català" - }, { - value: "cs", - text: "Čeština" - }, { - value: "da", - text: "Dansk" - }, { - value: "et", - text: "Eesti" - }, { - value: "eu", - text: "Euskara" - }, { - value: "fil", - text: "Filipino" - }, { - value: "fr-CA", - text: "Français (Canada)" - }, { - value: "gl", - text: "Galego" - }, { - value: "hr", - text: "Hrvatski" - }, { - value: "zu", - text: "IsiZulu" - }, { - value: "is", - text: "Íslenska" - }, { - value: "it", - text: "Italiano" - }, { - value: "sw", - text: "Kiswahili" - }, { - value: "lv", - text: "Latviešu valoda" - }, { - value: "lt", - text: "Lietuvių" - }, { - value: "hu", - text: "Magyar" - }, { - value: "nl", - text: "Nederlands" - }, { - value: "no", - text: "Norsk" - }, { - value: "uz", - text: "O‘zbek" - }, { - value: "ro", - text: "Română" - }, { - value: "sq", - text: "Shqip" - }, { - value: "sk", - text: "Slovenčina" - }, { - value: "sl", - text: "Slovenščina" - }, { - value: "sr-Latn", - text: "Srpski" - }, { - value: "fi", - text: "Suomi" - }, { - value: "sv", - text: "Svenska" - }, { - value: "vi", - text: "Tiếng Việt" - }, { - value: "tr", - text: "Türkçe" - }, { - value: "be", - text: "Беларуская" - }, { - value: "bg", - text: "Български" - }, { - value: "ky", - text: "Кыргызча" - }, { - value: "kk", - text: "Қазақ Тілі" - }, { - value: "mk", - text: "Македонски" - }, { - value: "mn", - text: "Монгол" - }, { - value: "sr", - text: "Српски" - }, { - value: "uk", - text: "Українська" - }, { - value: "el", - text: "Ελληνικά" - }, { - value: "hy", - text: "Հայերեն" - }, { - value: "iw", - text: "עברית" - }, { - value: "ur", - text: "اردو" - }, { - value: "ar", - text: "العربية" - }, { - value: "fa", - text: "فارسی" - }, { - value: "ne", - text: "नेपाली" - }, { - value: "mr", - text: "मराठी" - }, { - value: "hi", - text: "हिन्दी" - }, { - value: "bn", - text: "বাংলা" - }, { - value: "pa", - text: "ਪੰਜਾਬੀ" - }, { - value: "gu", - text: "ગુજરાતી" - }, { - value: "ta", - text: "தமிழ்" - }, { - value: "te", - text: "తెలుగు" - }, { - value: "kn", - text: "ಕನ್ನಡ" - }, { - value: "ml", - text: "മലയാളം" - }, { - value: "si", - text: "සිංහල" - }, { - value: "th", - text: "ภาษาไทย" - }, { - value: "lo", - text: "ລາວ" - }, { - value: "my", - text: "ဗမာ" - }, { - value: "ka", - text: "ქართული" - }, { - value: "am", - text: "አማርኛ" - }, { - value: "km", - text: "ខ្មែរ" - }, { - value: "zh-CN", - text: "中文 (简体)" - }, { - value: "zh-TW", - text: "中文 (繁體)" - }, { - value: "zh-HK", - text: "中文 (香港)" - }, { - value: "ko", - text: "한국어" - } - ] - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'currentColor' - }, - - path: { - component: 'path', - attr: { - 'd': 'M12.9 15l-2.6-2.4c1.8-2 3-4.2 3.8-6.6H17V4h-7V2H8v2H1v2h11.2c-.7 2-1.8 3.8-3.2 5.3-1-1-1.7-2.1-2.3-3.3h-2c.7 1.6 1.7 3.2 3 4.6l-5.1 5L4 19l5-5 3.1 3.1.8-2zm5.6-5h-2L12 22h2l1.1-3H20l1.1 3h2l-4.5-12zm-2.6 7l1.6-4.3 1.6 4.3H16z' - } - } - }, - label: { - component: 'span', - text: 'languages' - } - }, - backup_and_reset: { - component: 'button', - on: { - click: { - section: { - component: 'section', - variant: 'card', - - import_settings: { - component: 'button', - text: 'importSettings', - on: { - click: function () { - if (location.href.indexOf('/options.html?action=import') !== -1) { - importData(); - } else { - chrome.tabs.create({ - url: chrome.runtime.getURL('ui/options.html?action=import') - }); - } - } - } - }, - export_settings: { - component: 'button', - text: 'exportSettings', - on: { - click: function () { - if (location.href.indexOf('/options.html?action=export') !== -1) { - exportData(); - } else { - chrome.tabs.create({ - url: chrome.runtime.getURL('ui/options.html?action=export') - }); - } - } - } - }, - reset_all_settings: { - component: 'button', - text: 'resetAllSettings', - on: { - click: { - component: 'modal', - - message: { - component: 'span', - text: 'thisWillResetAllSettings' - }, - section: { - component: 'section', - variant: 'actions', - - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.parentNode.parentNode.parentNode.close(); - } - } - }, - accept: { - component: 'button', - text: 'accept', - on: { - click: function () { - satus.storage.clear(); - - this.parentNode.parentNode.parentNode.close(); - } - } - } - } - } - } - }, - delete_youtube_cookies: { - component: 'button', - text: 'deleteYoutubeCookies', - - on: { - click: { - component: 'modal', - - message: { - component: 'span', - text: 'thisWillRemoveAllYouTubeCookies' - }, - section: { - component: 'section', - variant: 'actions', - - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.parentNode.parentNode.parentNode.close(); - } - } - }, - accept: { - component: 'button', - text: 'accept', - on: { - click: function () { - chrome.tabs.query({}, function (tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - action: 'delete-youtube-cookies' - }); - } - } - }); - - this.parentNode.parentNode.parentNode.close(); - } - } - } - } - } - } - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'currentColor' - }, - - path: { - component: 'path', - attr: { - 'd': 'M13.3 3A9 9 0 0 0 4 12H2.2c-.5 0-.7.5-.3.8l2.7 2.8c.2.2.6.2.8 0L8 12.8c.4-.3.1-.8-.3-.8H6a7 7 0 1 1 2.7 5.5 1 1 0 0 0-1.3.1 1 1 0 0 0 0 1.5A9 9 0 0 0 22 11.7C22 7 18 3.1 13.4 3zm-.6 5c-.4 0-.7.3-.7.8v3.6c0 .4.2.7.5.9l3.1 1.8c.4.2.8.1 1-.2.2-.4.1-.8-.2-1l-3-1.8V8.7c0-.4-.2-.7-.7-.7z' - } - } - }, - label: { - component: 'span', - text: 'backupAndReset' - } - }, - date_and_time: { - component: 'button', - on: { - click: { - section: { - component: 'section', - variant: 'card', - - use_24_hour_format: { - component: 'switch', - text: 'use24HourFormat', - value: true - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'currentColor' - }, - - path: { - component: 'path', - attr: { - 'd': 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm-.2-13c-.5 0-.8.3-.8.7v4.7c0 .4.2.7.5.9l4.1 2.5c.4.2.8 0 1-.3.2-.3.1-.7-.2-1l-3.9-2.2V7.7c0-.4-.3-.7-.7-.7z' - } - } - }, - label: { - component: 'span', - text: 'dateAndTime' - } - }, - location: { - component: 'button', - on: { - click: { - section: { - component: 'section', - variant: 'card', - - default_content_country: { - component: 'select', - text: 'defaultContentCountry', - - options: [{ - text: "default", - value: "default" - }, - { - text: "Afghanistan", - value: "AF" - }, - { - text: "Albania", - value: "AL" - }, - { - text: "Algeria", - value: "DZ" - }, - { - text: "American Samoa", - value: "AS" - }, - { - text: "Andorra", - value: "AD" - }, - { - text: "Angola", - value: "AO" - }, - { - text: "Anguilla", - value: "AI" - }, - { - text: "Antarctica", - value: "AQ" - }, - { - text: "Antigua and Barbuda", - value: "AG" - }, - { - text: "Argentina", - value: "AR" - }, - { - text: "Armenia", - value: "AM" - }, - { - text: "Aruba", - value: "AW" - }, - { - text: "Australia", - value: "AU" - }, - { - text: "Austria", - value: "AT" - }, - { - text: "Azerbaijan", - value: "AZ" - }, - { - text: "Bahrain", - value: "BH" - }, - { - text: "Bailiwick of Guernsey", - value: "GG" - }, - { - text: "Bangladesh", - value: "BD" - }, - { - text: "Barbados", - value: "BB" - }, - { - text: "Belarus", - value: "BY" - }, - { - text: "Belgium", - value: "BE" - }, - { - text: "Belize", - value: "BZ" - }, - { - text: "Benin", - value: "BJ" - }, - { - text: "Bermuda", - value: "BM" - }, - { - text: "Bhutan", - value: "BT" - }, - { - text: "Bolivia", - value: "BO" - }, - { - text: "Bonaire", - value: "BQ" - }, - { - text: "Bosnia and Herzegovina", - value: "BA" - }, - { - text: "Botswana", - value: "BW" - }, - { - text: "Bouvet Island", - value: "BV" - }, - { - text: "Brazil", - value: "BR" - }, - { - text: "British Indian Ocean Territory", - value: "IO" - }, - { - text: "British Virgin Islands", - value: "VG" - }, - { - text: "Brunei", - value: "BN" - }, - { - text: "Bulgaria", - value: "BG" - }, - { - text: "Burkina Faso", - value: "BF" - }, - { - text: "Burundi", - value: "BI" - }, - { - text: "Cambodia", - value: "KH" - }, - { - text: "Cameroon", - value: "CM" - }, - { - text: "Canada", - value: "CA" - }, - { - text: "Cape Verde", - value: "CV" - }, - { - text: "Cayman Islands", - value: "KY" - }, - { - text: "Central African Republic", - value: "CF" - }, - { - text: "Chad", - value: "TD" - }, - { - text: "Chile", - value: "CL" - }, - { - text: "China", - value: "CN" - }, - { - text: "Christmas Island", - value: "CX" - }, - { - text: "Cocos (Keeling) Islands", - value: "CC" - }, - { - text: "Collectivity of Saint Martin", - value: "MF" - }, - { - text: "Colombia", - value: "CO" - }, - { - text: "Comoros", - value: "KM" - }, - { - text: "Cook Islands", - value: "CK" - }, - { - text: "Costa Rica", - value: "CR" - }, - { - text: "Croatia", - value: "HR" - }, - { - text: "Cuba", - value: "CU" - }, - { - text: "Curaçao", - value: "CW" - }, - { - text: "Cyprus", - value: "CY" - }, - { - text: "Czech Republic", - value: "CZ" - }, - { - text: "Democratic Republic of the Congo", - value: "CD" - }, - { - text: "Denmark", - value: "DK" - }, - { - text: "Djibouti", - value: "DJ" - }, - { - text: "Dominica", - value: "DM" - }, - { - text: "Dominican Republic", - value: "DO" - }, - { - text: "East Timor", - value: "TL" - }, - { - text: "Ecuador", - value: "EC" - }, - { - text: "Egypt", - value: "EG" - }, - { - text: "El Salvador", - value: "SV" - }, - { - text: "Equatorial Guinea", - value: "GQ" - }, - { - text: "Eritrea", - value: "ER" - }, - { - text: "Estonia", - value: "EE" - }, - { - text: "Eswatini", - value: "SZ" - }, - { - text: "Ethiopia", - value: "ET" - }, - { - text: "Falkland Islands", - value: "FK" - }, - { - text: "Faroe Islands", - value: "FO" - }, - { - text: "Federated States of Micronesia", - value: "FM" - }, - { - text: "Fiji", - value: "FJ" - }, - { - text: "Finland", - value: "FI" - }, - { - text: "France", - value: "FR" - }, - { - text: "French Guiana", - value: "GF" - }, - { - text: "French Polynesia", - value: "PF" - }, - { - text: "French Southern and Antarctic Lands", - value: "TF" - }, - { - text: "Gabon", - value: "GA" - }, - { - text: "Georgia (country)", - value: "GE" - }, - { - text: "Germany", - value: "DE" - }, - { - text: "Ghana", - value: "GH" - }, - { - text: "Gibraltar", - value: "GI" - }, - { - text: "Greece", - value: "GR" - }, - { - text: "Greenland", - value: "GL" - }, - { - text: "Grenada", - value: "GD" - }, - { - text: "Guadeloupe", - value: "GP" - }, - { - text: "Guam", - value: "GU" - }, - { - text: "Guatemala", - value: "GT" - }, - { - text: "Guinea", - value: "GN" - }, - { - text: "Guinea-Bissau", - value: "GW" - }, - { - text: "Guyana", - value: "GY" - }, - { - text: "Haiti", - value: "HT" - }, - { - text: "Heard Island and McDonald Islands", - value: "HM" - }, - { - text: "Holy See", - value: "VA" - }, - { - text: "Honduras", - value: "HN" - }, - { - text: "Hong Kong", - value: "HK" - }, - { - text: "Hungary", - value: "HU" - }, - { - text: "Iceland", - value: "IS" - }, - { - text: "India", - value: "IN" - }, - { - text: "Indonesia", - value: "ID" - }, - { - text: "Iran", - value: "IR" - }, - { - text: "Iraq", - value: "IQ" - }, - { - text: "Isle of Man", - value: "IM" - }, - { - text: "Israel", - value: "IL" - }, - { - text: "Italy", - value: "IT" - }, - { - text: "Ivory Coast", - value: "CI" - }, - { - text: "Jamaica", - value: "JM" - }, - { - text: "Japan", - value: "JP" - }, - { - text: "Jersey", - value: "JE" - }, - { - text: "Jordan", - value: "JO" - }, - { - text: "Kazakhstan", - value: "KZ" - }, - { - text: "Kenya", - value: "KE" - }, - { - text: "Kiribati", - value: "KI" - }, - { - text: "Kuwait", - value: "KW" - }, - { - text: "Kyrgyzstan", - value: "KG" - }, - { - text: "Laos", - value: "LA" - }, - { - text: "Latvia", - value: "LV" - }, - { - text: "Lebanon", - value: "LB" - }, - { - text: "Lesotho", - value: "LS" - }, - { - text: "Liberia", - value: "LR" - }, - { - text: "Libya", - value: "LY" - }, - { - text: "Liechtenstein", - value: "LI" - }, - { - text: "Lithuania", - value: "LT" - }, - { - text: "Luxembourg", - value: "LU" - }, - { - text: "Macau", - value: "MO" - }, - { - text: "Madagascar", - value: "MG" - }, - { - text: "Malawi", - value: "MW" - }, - { - text: "Malaysia", - value: "MY" - }, - { - text: "Maldives", - value: "MV" - }, - { - text: "Mali", - value: "ML" - }, - { - text: "Malta", - value: "MT" - }, - { - text: "Marshall Islands", - value: "MH" - }, - { - text: "Martinique", - value: "MQ" - }, - { - text: "Mauritania", - value: "MR" - }, - { - text: "Mauritius", - value: "MU" - }, - { - text: "Mayotte", - value: "YT" - }, - { - text: "Mexico", - value: "MX" - }, - { - text: "Moldova", - value: "MD" - }, - { - text: "Monaco", - value: "MC" - }, - { - text: "Mongolia", - value: "MN" - }, - { - text: "Montenegro", - value: "ME" - }, - { - text: "Montserrat", - value: "MS" - }, - { - text: "Morocco", - value: "MA" - }, - { - text: "Mozambique", - value: "MZ" - }, - { - text: "Myanmar", - value: "MM" - }, - { - text: "Namibia", - value: "NA" - }, - { - text: "Nauru", - value: "NR" - }, - { - text: "Nepal", - value: "NP" - }, - { - text: "Netherlands", - value: "NL" - }, - { - text: "New Caledonia", - value: "NC" - }, - { - text: "New Zealand", - value: "NZ" - }, - { - text: "Nicaragua", - value: "NI" - }, - { - text: "Niger", - value: "NE" - }, - { - text: "Nigeria", - value: "NG" - }, - { - text: "Niue", - value: "NU" - }, - { - text: "Norfolk Island", - value: "NF" - }, - { - text: "North Korea", - value: "KP" - }, - { - text: "North Macedonia", - value: "MK" - }, - { - text: "Northern Mariana Islands", - value: "MP" - }, - { - text: "Norway", - value: "NO" - }, - { - text: "Oman", - value: "OM" - }, - { - text: "Pakistan", - value: "PK" - }, - { - text: "Palau", - value: "PW" - }, - { - text: "Panama", - value: "PA" - }, - { - text: "Papua New Guinea", - value: "PG" - }, - { - text: "Paraguay", - value: "PY" - }, - { - text: "Peru", - value: "PE" - }, - { - text: "Philippines", - value: "PH" - }, - { - text: "Pitcairn Islands", - value: "PN" - }, - { - text: "Poland", - value: "PL" - }, - { - text: "Portugal", - value: "PT" - }, - { - text: "Puerto Rico", - value: "PR" - }, - { - text: "Qatar", - value: "QA" - }, - { - text: "Republic of Ireland", - value: "IE" - }, - { - text: "Republic of the Congo", - value: "CG" - }, - { - text: "Romania", - value: "RO" - }, - { - text: "Russia", - value: "RU" - }, - { - text: "Rwanda", - value: "RW" - }, - { - text: "Réunion", - value: "RE" - }, - { - text: "Saint Barthélemy", - value: "BL" - }, - { - text: "Saint Helena", - value: "SH" - }, - { - text: "Saint Kitts and Nevis", - value: "KN" - }, - { - text: "Saint Lucia", - value: "LC" - }, - { - text: "Saint Pierre and Miquelon", - value: "PM" - }, - { - text: "Saint Vincent and the Grenadines", - value: "VC" - }, - { - text: "Samoa", - value: "WS" - }, - { - text: "San Marino", - value: "SM" - }, - { - text: "Saudi Arabia", - value: "SA" - }, - { - text: "Senegal", - value: "SN" - }, - { - text: "Serbia", - value: "RS" - }, - { - text: "Seychelles", - value: "SC" - }, - { - text: "Sierra Leone", - value: "SL" - }, - { - text: "Singapore", - value: "SG" - }, - { - text: "Sint Maarten", - value: "SX" - }, - { - text: "Slovakia", - value: "SK" - }, - { - text: "Slovenia", - value: "SI" - }, - { - text: "Solomon Islands", - value: "SB" - }, - { - text: "Somalia", - value: "SO" - }, - { - text: "South Africa", - value: "ZA" - }, - { - text: "South Georgia and the South Sandwich Islands", - value: "GS" - }, - { - text: "South Korea", - value: "KR" - }, - { - text: "South Sudan", - value: "SS" - }, - { - text: "Spain", - value: "ES" - }, - { - text: "Sri Lanka", - value: "LK" - }, - { - text: "State of Palestine", - value: "PS" - }, - { - text: "Sudan", - value: "SD" - }, - { - text: "Suriname", - value: "SR" - }, - { - text: "Svalbard", - value: "SJ" - }, - { - text: "Sweden", - value: "SE" - }, - { - text: "Switzerland", - value: "CH" - }, - { - text: "Syria", - value: "SY" - }, - { - text: "São Tomé and Príncipe", - value: "ST" - }, - { - text: "Taiwan", - value: "TW" - }, - { - text: "Tajikistan", - value: "TJ" - }, - { - text: "Tanzania", - value: "TZ" - }, - { - text: "Thailand", - value: "TH" - }, - { - text: "The Bahamas", - value: "BS" - }, - { - text: "The Gambia", - value: "GM" - }, - { - text: "Togo", - value: "TG" - }, - { - text: "Tokelau", - value: "TK" - }, - { - text: "Tonga", - value: "TO" - }, - { - text: "Trinidad and Tobago", - value: "TT" - }, - { - text: "Tunisia", - value: "TN" - }, - { - text: "Turkey", - value: "TR" - }, - { - text: "Turkmenistan", - value: "TM" - }, - { - text: "Turks and Caicos Islands", - value: "TC" - }, - { - text: "Tuvalu", - value: "TV" - }, - { - text: "Uganda", - value: "UG" - }, - { - text: "Ukraine", - value: "UA" - }, - { - text: "United Arab Emirates", - value: "AE" - }, - { - text: "United Kingdom", - value: "GB" - }, - { - text: "United States Virgin Islands", - value: "VI" - }, - { - text: "United States", - value: "UM" - }, - { - text: "United States", - value: "US" - }, - { - text: "Uruguay", - value: "UY" - }, - { - text: "Uzbekistan", - value: "UZ" - }, - { - text: "Vanuatu", - value: "VU" - }, - { - text: "Venezuela", - value: "VE" - }, - { - text: "Vietnam", - value: "VN" - }, - { - text: "Wallis and Futuna", - value: "WF" - }, - { - text: "Western Sahara", - value: "EH" - }, - { - text: "Yemen", - value: "YE" - }, - { - text: "Zambia", - value: "ZM" - }, - { - text: "Zimbabwe", - value: "ZW" - }, - { - text: "Åland Islands", - value: "AX" - } - ] - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'currentColor' - }, - - circle: { - component: 'circle', - attr: { - 'cx': '12', - 'cy': '9', - 'r': '2.5' - } - }, - path: { - component: 'path', - attr: { - 'd': 'M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z' - } - } - }, - label: { - component: 'span', - text: 'location' - } - }, - about: { - component: 'button', - on: { - click: { - component: 'span', - - on: { - render: function () { - var component = this, - manifest = chrome.runtime.getManifest(), - user = satus.user(), - skeleton_about = { - extension_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'extension' - }, - extension_section: { - component: 'section', - variant: 'card', - - list: { - component: 'list', - items: [ - ['version', manifest.version], - ['permissions', manifest.permissions.join(', ').replace('https://www.youtube.com/', 'YouTube')] - ] - } - }, - browser_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'browser' - }, - browser_section: { - component: 'section', - variant: 'card', - - list: { - component: 'list', - items: [ - ['name', user.browser.name], - ['version', user.browser.version], - ['platform', user.browser.platform], - ['videoFormats', { - component: 'span', - on: { - render: function () { - var formats = []; - - for (var key in user.browser.video) { - if (user.browser.video[key] !== false) { - formats.push(key); - } - } - - this.textContent = formats.join(', '); - } - } - }], - ['audioFormats', { - component: 'span', - on: { - render: function () { - var formats = []; - - for (var key in user.browser.audio) { - if (user.browser.audio[key] !== false) { - formats.push(key); - } - } - - this.textContent = formats.join(', '); - } - } - }], - ['flash', !!user.browser.flash ? 'true' : 'false'] - ] - } - }, - os_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'os' - }, - os_section: { - component: 'section', - variant: 'card', - - list: { - component: 'list', - items: [ - ['name', user.os.name], - ['type', user.os.type] - ] - } - }, - device_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'device' - }, - device_section: { - component: 'section', - variant: 'card', - - list: { - component: 'list', - items: [ - ['screen', user.device.screen], - ['cores', user.device.cores], - ['gpu', user.device.gpu], - ['ram', user.device.ram] - ] - } - } - }; - - setTimeout(function () { - satus.render(skeleton_about, component.parentNode); - - component.remove(); - }); - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'currentColor' - }, - - path: { - component: 'path', - attr: { - 'd': 'M11 7h2v2h-2zm0 4h2v6h-2zm1-9a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16z' - } - } - }, - label: { - component: 'span', - text: 'about' - } - } - }, - email: { - component: 'button', - class: 'satus-button--email', - category: true, - text:'Bugs@improvedtube.com', - on: { - click: function () { - window.open('mailto:bugs@improvedtube.com', '_blank'); - } - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'stroke-width': '1.75' - }, - - circle: { - component: 'circle', - attr: { - 'cx': '12', - 'cy': '12', - 'r': '3' - } - }, - path: { - component: 'path', - attr: { - 'd': 'M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 010 2.83 2 2 0 01-2.83 0l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-2 2 2 2 0 01-2-2v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83 0 2 2 0 010-2.83l.06-.06a1.65 1.65 0 00.33-1.82 1.65 1.65 0 00-1.51-1H3a2 2 0 01-2-2 2 2 0 012-2h.09A1.65 1.65 0 004.6 9a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 010-2.83 2 2 0 012.83 0l.06.06a1.65 1.65 0 001.82.33H9a1.65 1.65 0 001-1.51V3a2 2 0 012-2 2 2 0 012 2v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 0 2 2 0 010 2.83l-.06.06a1.65 1.65 0 00-.33 1.82V9a1.65 1.65 0 001.51 1H21a2 2 0 012 2 2 2 0 01-2 2h-.09a1.65 1.65 0 00-1.51 1z' - } - } - }, - label: { - component: 'span', - text: 'settings' - } - }, - mixer: { - component: 'button', - on: { - click: { - component: 'section', - on: { - render: function () { - var component = this; - - this.skeleton.parent.parent.rendered.close(); - - if (chrome && chrome.tabs) { - chrome.tabs.query({}, function (tabs) { - var mixer = { - component: 'section', - variant: 'card', - parent: component.skeleton, - - message: { - component: 'span', - text: 'noOpenVideoTabs' - } - }; - - for (var i = 0, l = tabs.length; i < l; i++) { - var tab = tabs[i]; - - chrome.tabs.sendMessage(tab.id, { - action: 'mixer' - }, function (response) { - if (response) { - if (mixer) { - var parent = mixer.rendered.parentNode; - - mixer.rendered.remove(); - - mixer = parent; - } - - console.log(response.volume); - - satus.render({ - component: 'section', - class: 'satus-section--mixer', - style: { - 'background': 'url(https://img.youtube.com/vi/' + response.url + '/0.jpg) center center / cover no-repeat #000', - }, - - title: { - component: 'h1', - text: response.title - }, - section: { - component: 'section', - data: { - 'noConnectionLabel': satus.locale.get('tryToReloadThePage') || 'tryToReloadThePage' - }, - - mixer_volume: { - component: 'slider', - text: 'volume', - data: { - id: response.tabId - }, - storage: false, - max: 100, - value: response.volume, - on: { - change: function () { - chrome.tabs.sendMessage(Number(this.dataset.id), { - action: 'set-volume', - value: this.value - }); - } - } - }, - mixer_playback_speed: { - component: 'slider', - text: 'playbackSpeed', - data: { - id: response.tabId - }, - storage: false, - min: .1, - max: 8, - step: .05, - value: response.playbackSpeed, - on: { - change: function () { - chrome.tabs.sendMessage(Number(this.dataset.id), { - action: 'set-playback-speed', - value: this.value - }); - } - } - } - } - }, mixer); - } - }); - } - - satus.render(mixer, component.parentNode); - - component.remove(); - }); - } - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'stroke-width': '1.75' - }, - - path: { - component: 'path', - attr: { - 'd': 'M11 5L6 9H2v6h4l5 4V5zM19.07 4.93a10 10 0 010 14.14M15.54 8.46a5 5 0 010 7.07' - } - } - }, - label: { - component: 'span', - text: 'mixer' - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'stroke-width': '2' - }, - - circle1: { - component: 'circle', - attr: { - 'cx': '12', - 'cy': '5.25', - 'r': '0.45' - } - }, - circle2: { - component: 'circle', - attr: { - 'cx': '12', - 'cy': '12', - 'r': '0.45' - } - }, - circle3: { - component: 'circle', - attr: { - 'cx': '12', - 'cy': '18.75', - 'r': '0.45' - } - } - } - } - } - }, - layers: { - component: 'layers', - on: { - open: function () { - var skeleton = this.path[this.path.length - 1], - parent = skeleton.parent, - section = this.base.skeleton.header.section_start, - title = 'ImprovedTube'; - - if (parent) { - if (parent.label) { - title = parent.label.text; - } else if (parent.text) { - title = parent.text; - } - } - - section.back.rendered.hidden = this.path.length <= 1; - section.title.rendered.innerText = satus.locale.get(title); - } - }, - - section: { - component: 'section', - variant: 'home', - - general: { - component: 'button', - variant: 'general', - category: true, - on: { - click: { - component: 'section', - variant: 'card', - - youtube_home_page: { - component: 'select', - text: 'youtubeHomePage', - options: [{ - text: 'home', - value: '/' - }, { - text: 'trending', - value: '/feed/trending' - }, { - text: 'subscriptions', - value: '/feed/subscriptions' - }, { - text: 'history', - value: '/feed/history' - }, { - text: 'watchLater', - value: '/playlist?list=WL' - }, { - text: 'search', - value: 'search' - }, { - text: 'liked', - value: '/playlist?list=LL' - }, { - text: 'library', - value: '/feed/library' - }], - tags: 'trending,subscriptions,history,watch,search' - }, - collapse_of_subscription_sections: { - component: 'switch', - text: 'collapseOfSubscriptionSections' - }, - remove_related_search_results: { - component: 'switch', - text: 'removeRelatedSearchResults' - }, - mark_watched_videos: { - component: 'switch', - text: 'markWatchedVideos', - on: { - click: function () { - if (satus.storage.get('mark_watched_videos')) { - if (!satus.storage.get('track_watched_videos')) { - this.nextSibling.click(); - } - } - } - } - }, - popup_window_buttons: { - component: 'switch', - text: 'popupWindowButtons', - }, - track_watched_videos: { - component: 'switch', - text: 'trackWatchedVideos' - }, - delete_watched_videos: { - component: 'button', - style: { - 'justifyContent': 'space-between' - }, - on: { - click: { - component: 'modal', - variant: 'confirm', - - message: { - component: 'span', - text: 'thisWillRemoveAllWatchedVideos', - style: { - 'width': '100%', - 'opacity': '.8' - } - }, - section: { - component: 'section', - variant: 'actions', - - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.parentNode.parentNode.parentNode.close(); - } - } - }, - accept: { - component: 'button', - text: 'accept', - on: { - click: function () { - var modal = this.parentNode.parentNode.parentNode; - - satus.storage.set('watched', {}); - - console.log(modal.skeleton); - - modal.skeleton.parent.counter.rendered.textContent = '0'; - - modal.close(); - } - } - } - } - } - }, - - label: { - component: 'span', - text: 'deleteWatchedVideos' - }, - counter: { - component: 'span', - style: { - opacity: .75 - }, - on: { - render: function () { - var watched = satus.storage.get('watched'); - - if (watched) { - this.textContent = Object.keys(watched).length; - } else { - this.textContent = '0'; - } - } - } - } - }, - only_one_player_instance_playing: { - component: 'switch', - text: 'onlyOnePlayerInstancePlaying' - }, - confirmation_before_closing: { - component: 'switch', - text: 'confirmationBeforeClosing', - tags: 'random prevent close exit' - }, - add_scroll_to_top: { - component: 'switch', - text: 'addScrollToTop', - tags: 'up' - }, - limit_page_width: { - component: 'switch', - text: 'limitPageWidth', - value: true - }, - squared_user_images: { - component: 'switch', - text: 'squaredUserImages', - tags: 'avatar' - }, - thumbnails_quality: { - component: 'select', - text: 'thumbnailsQuality', - options: [{ - text: 'default', - value: 'null' - }, { - text: 'low', - value: 'default' - }, { - text: 'medium', - value: 'mqdefault' - }, { - text: 'high', - value: 'hqdefault' - }, { - text: 'sd', - value: 'sddefault' - }, { - text: 'hd', - value: 'maxresdefault' - }], - tags: 'preview quality' - }, - hide_animated_thumbnails: { - component: 'switch', - text: 'hideAnimatedThumbnails', - tags: 'preview' - }, - hide_thumbnail_overlay: { - component: 'switch', - text: 'hideThumbnailOverlay', - tags: 'preview' - }, - default_content_country: { - component: 'select', - text: 'defaultContentCountry', - - options: [{ - text: "default", - value: "default" - }, - { - text: "Afghanistan", - value: "AF" - }, - { - text: "Albania", - value: "AL" - }, - { - text: "Algeria", - value: "DZ" - }, - { - text: "American Samoa", - value: "AS" - }, - { - text: "Andorra", - value: "AD" - }, - { - text: "Angola", - value: "AO" - }, - { - text: "Anguilla", - value: "AI" - }, - { - text: "Antarctica", - value: "AQ" - }, - { - text: "Antigua and Barbuda", - value: "AG" - }, - { - text: "Argentina", - value: "AR" - }, - { - text: "Armenia", - value: "AM" - }, - { - text: "Aruba", - value: "AW" - }, - { - text: "Australia", - value: "AU" - }, - { - text: "Austria", - value: "AT" - }, - { - text: "Azerbaijan", - value: "AZ" - }, - { - text: "Bahrain", - value: "BH" - }, - { - text: "Bailiwick of Guernsey", - value: "GG" - }, - { - text: "Bangladesh", - value: "BD" - }, - { - text: "Barbados", - value: "BB" - }, - { - text: "Belarus", - value: "BY" - }, - { - text: "Belgium", - value: "BE" - }, - { - text: "Belize", - value: "BZ" - }, - { - text: "Benin", - value: "BJ" - }, - { - text: "Bermuda", - value: "BM" - }, - { - text: "Bhutan", - value: "BT" - }, - { - text: "Bolivia", - value: "BO" - }, - { - text: "Bonaire", - value: "BQ" - }, - { - text: "Bosnia and Herzegovina", - value: "BA" - }, - { - text: "Botswana", - value: "BW" - }, - { - text: "Bouvet Island", - value: "BV" - }, - { - text: "Brazil", - value: "BR" - }, - { - text: "British Indian Ocean Territory", - value: "IO" - }, - { - text: "British Virgin Islands", - value: "VG" - }, - { - text: "Brunei", - value: "BN" - }, - { - text: "Bulgaria", - value: "BG" - }, - { - text: "Burkina Faso", - value: "BF" - }, - { - text: "Burundi", - value: "BI" - }, - { - text: "Cambodia", - value: "KH" - }, - { - text: "Cameroon", - value: "CM" - }, - { - text: "Canada", - value: "CA" - }, - { - text: "Cape Verde", - value: "CV" - }, - { - text: "Cayman Islands", - value: "KY" - }, - { - text: "Central African Republic", - value: "CF" - }, - { - text: "Chad", - value: "TD" - }, - { - text: "Chile", - value: "CL" - }, - { - text: "China", - value: "CN" - }, - { - text: "Christmas Island", - value: "CX" - }, - { - text: "Cocos (Keeling) Islands", - value: "CC" - }, - { - text: "Collectivity of Saint Martin", - value: "MF" - }, - { - text: "Colombia", - value: "CO" - }, - { - text: "Comoros", - value: "KM" - }, - { - text: "Cook Islands", - value: "CK" - }, - { - text: "Costa Rica", - value: "CR" - }, - { - text: "Croatia", - value: "HR" - }, - { - text: "Cuba", - value: "CU" - }, - { - text: "Curaçao", - value: "CW" - }, - { - text: "Cyprus", - value: "CY" - }, - { - text: "Czech Republic", - value: "CZ" - }, - { - text: "Democratic Republic of the Congo", - value: "CD" - }, - { - text: "Denmark", - value: "DK" - }, - { - text: "Djibouti", - value: "DJ" - }, - { - text: "Dominica", - value: "DM" - }, - { - text: "Dominican Republic", - value: "DO" - }, - { - text: "East Timor", - value: "TL" - }, - { - text: "Ecuador", - value: "EC" - }, - { - text: "Egypt", - value: "EG" - }, - { - text: "El Salvador", - value: "SV" - }, - { - text: "Equatorial Guinea", - value: "GQ" - }, - { - text: "Eritrea", - value: "ER" - }, - { - text: "Estonia", - value: "EE" - }, - { - text: "Eswatini", - value: "SZ" - }, - { - text: "Ethiopia", - value: "ET" - }, - { - text: "Falkland Islands", - value: "FK" - }, - { - text: "Faroe Islands", - value: "FO" - }, - { - text: "Federated States of Micronesia", - value: "FM" - }, - { - text: "Fiji", - value: "FJ" - }, - { - text: "Finland", - value: "FI" - }, - { - text: "France", - value: "FR" - }, - { - text: "French Guiana", - value: "GF" - }, - { - text: "French Polynesia", - value: "PF" - }, - { - text: "French Southern and Antarctic Lands", - value: "TF" - }, - { - text: "Gabon", - value: "GA" - }, - { - text: "Georgia (country)", - value: "GE" - }, - { - text: "Germany", - value: "DE" - }, - { - text: "Ghana", - value: "GH" - }, - { - text: "Gibraltar", - value: "GI" - }, - { - text: "Greece", - value: "GR" - }, - { - text: "Greenland", - value: "GL" - }, - { - text: "Grenada", - value: "GD" - }, - { - text: "Guadeloupe", - value: "GP" - }, - { - text: "Guam", - value: "GU" - }, - { - text: "Guatemala", - value: "GT" - }, - { - text: "Guinea", - value: "GN" - }, - { - text: "Guinea-Bissau", - value: "GW" - }, - { - text: "Guyana", - value: "GY" - }, - { - text: "Haiti", - value: "HT" - }, - { - text: "Heard Island and McDonald Islands", - value: "HM" - }, - { - text: "Holy See", - value: "VA" - }, - { - text: "Honduras", - value: "HN" - }, - { - text: "Hong Kong", - value: "HK" - }, - { - text: "Hungary", - value: "HU" - }, - { - text: "Iceland", - value: "IS" - }, - { - text: "India", - value: "IN" - }, - { - text: "Indonesia", - value: "ID" - }, - { - text: "Iran", - value: "IR" - }, - { - text: "Iraq", - value: "IQ" - }, - { - text: "Isle of Man", - value: "IM" - }, - { - text: "Israel", - value: "IL" - }, - { - text: "Italy", - value: "IT" - }, - { - text: "Ivory Coast", - value: "CI" - }, - { - text: "Jamaica", - value: "JM" - }, - { - text: "Japan", - value: "JP" - }, - { - text: "Jersey", - value: "JE" - }, - { - text: "Jordan", - value: "JO" - }, - { - text: "Kazakhstan", - value: "KZ" - }, - { - text: "Kenya", - value: "KE" - }, - { - text: "Kiribati", - value: "KI" - }, - { - text: "Kuwait", - value: "KW" - }, - { - text: "Kyrgyzstan", - value: "KG" - }, - { - text: "Laos", - value: "LA" - }, - { - text: "Latvia", - value: "LV" - }, - { - text: "Lebanon", - value: "LB" - }, - { - text: "Lesotho", - value: "LS" - }, - { - text: "Liberia", - value: "LR" - }, - { - text: "Libya", - value: "LY" - }, - { - text: "Liechtenstein", - value: "LI" - }, - { - text: "Lithuania", - value: "LT" - }, - { - text: "Luxembourg", - value: "LU" - }, - { - text: "Macau", - value: "MO" - }, - { - text: "Madagascar", - value: "MG" - }, - { - text: "Malawi", - value: "MW" - }, - { - text: "Malaysia", - value: "MY" - }, - { - text: "Maldives", - value: "MV" - }, - { - text: "Mali", - value: "ML" - }, - { - text: "Malta", - value: "MT" - }, - { - text: "Marshall Islands", - value: "MH" - }, - { - text: "Martinique", - value: "MQ" - }, - { - text: "Mauritania", - value: "MR" - }, - { - text: "Mauritius", - value: "MU" - }, - { - text: "Mayotte", - value: "YT" - }, - { - text: "Mexico", - value: "MX" - }, - { - text: "Moldova", - value: "MD" - }, - { - text: "Monaco", - value: "MC" - }, - { - text: "Mongolia", - value: "MN" - }, - { - text: "Montenegro", - value: "ME" - }, - { - text: "Montserrat", - value: "MS" - }, - { - text: "Morocco", - value: "MA" - }, - { - text: "Mozambique", - value: "MZ" - }, - { - text: "Myanmar", - value: "MM" - }, - { - text: "Namibia", - value: "NA" - }, - { - text: "Nauru", - value: "NR" - }, - { - text: "Nepal", - value: "NP" - }, - { - text: "Netherlands", - value: "NL" - }, - { - text: "New Caledonia", - value: "NC" - }, - { - text: "New Zealand", - value: "NZ" - }, - { - text: "Nicaragua", - value: "NI" - }, - { - text: "Niger", - value: "NE" - }, - { - text: "Nigeria", - value: "NG" - }, - { - text: "Niue", - value: "NU" - }, - { - text: "Norfolk Island", - value: "NF" - }, - { - text: "North Korea", - value: "KP" - }, - { - text: "North Macedonia", - value: "MK" - }, - { - text: "Northern Mariana Islands", - value: "MP" - }, - { - text: "Norway", - value: "NO" - }, - { - text: "Oman", - value: "OM" - }, - { - text: "Pakistan", - value: "PK" - }, - { - text: "Palau", - value: "PW" - }, - { - text: "Panama", - value: "PA" - }, - { - text: "Papua New Guinea", - value: "PG" - }, - { - text: "Paraguay", - value: "PY" - }, - { - text: "Peru", - value: "PE" - }, - { - text: "Philippines", - value: "PH" - }, - { - text: "Pitcairn Islands", - value: "PN" - }, - { - text: "Poland", - value: "PL" - }, - { - text: "Portugal", - value: "PT" - }, - { - text: "Puerto Rico", - value: "PR" - }, - { - text: "Qatar", - value: "QA" - }, - { - text: "Republic of Ireland", - value: "IE" - }, - { - text: "Republic of the Congo", - value: "CG" - }, - { - text: "Romania", - value: "RO" - }, - { - text: "Russia", - value: "RU" - }, - { - text: "Rwanda", - value: "RW" - }, - { - text: "Réunion", - value: "RE" - }, - { - text: "Saint Barthélemy", - value: "BL" - }, - { - text: "Saint Helena", - value: "SH" - }, - { - text: "Saint Kitts and Nevis", - value: "KN" - }, - { - text: "Saint Lucia", - value: "LC" - }, - { - text: "Saint Pierre and Miquelon", - value: "PM" - }, - { - text: "Saint Vincent and the Grenadines", - value: "VC" - }, - { - text: "Samoa", - value: "WS" - }, - { - text: "San Marino", - value: "SM" - }, - { - text: "Saudi Arabia", - value: "SA" - }, - { - text: "Senegal", - value: "SN" - }, - { - text: "Serbia", - value: "RS" - }, - { - text: "Seychelles", - value: "SC" - }, - { - text: "Sierra Leone", - value: "SL" - }, - { - text: "Singapore", - value: "SG" - }, - { - text: "Sint Maarten", - value: "SX" - }, - { - text: "Slovakia", - value: "SK" - }, - { - text: "Slovenia", - value: "SI" - }, - { - text: "Solomon Islands", - value: "SB" - }, - { - text: "Somalia", - value: "SO" - }, - { - text: "South Africa", - value: "ZA" - }, - { - text: "South Georgia and the South Sandwich Islands", - value: "GS" - }, - { - text: "South Korea", - value: "KR" - }, - { - text: "South Sudan", - value: "SS" - }, - { - text: "Spain", - value: "ES" - }, - { - text: "Sri Lanka", - value: "LK" - }, - { - text: "State of Palestine", - value: "PS" - }, - { - text: "Sudan", - value: "SD" - }, - { - text: "Suriname", - value: "SR" - }, - { - text: "Svalbard", - value: "SJ" - }, - { - text: "Sweden", - value: "SE" - }, - { - text: "Switzerland", - value: "CH" - }, - { - text: "Syria", - value: "SY" - }, - { - text: "São Tomé and Príncipe", - value: "ST" - }, - { - text: "Taiwan", - value: "TW" - }, - { - text: "Tajikistan", - value: "TJ" - }, - { - text: "Tanzania", - value: "TZ" - }, - { - text: "Thailand", - value: "TH" - }, - { - text: "The Bahamas", - value: "BS" - }, - { - text: "The Gambia", - value: "GM" - }, - { - text: "Togo", - value: "TG" - }, - { - text: "Tokelau", - value: "TK" - }, - { - text: "Tonga", - value: "TO" - }, - { - text: "Trinidad and Tobago", - value: "TT" - }, - { - text: "Tunisia", - value: "TN" - }, - { - text: "Turkey", - value: "TR" - }, - { - text: "Turkmenistan", - value: "TM" - }, - { - text: "Turks and Caicos Islands", - value: "TC" - }, - { - text: "Tuvalu", - value: "TV" - }, - { - text: "Uganda", - value: "UG" - }, - { - text: "Ukraine", - value: "UA" - }, - { - text: "United Arab Emirates", - value: "AE" - }, - { - text: "United Kingdom", - value: "GB" - }, - { - text: "United States Virgin Islands", - value: "VI" - }, - { - text: "United States", - value: "UM" - }, - { - text: "United States", - value: "US" - }, - { - text: "Uruguay", - value: "UY" - }, - { - text: "Uzbekistan", - value: "UZ" - }, - { - text: "Vanuatu", - value: "VU" - }, - { - text: "Venezuela", - value: "VE" - }, - { - text: "Vietnam", - value: "VN" - }, - { - text: "Wallis and Futuna", - value: "WF" - }, - { - text: "Western Sahara", - value: "EH" - }, - { - text: "Yemen", - value: "YE" - }, - { - text: "Zambia", - value: "ZM" - }, - { - text: "Zimbabwe", - value: "ZW" - }, - { - text: "Åland Islands", - value: "AX" - } - ] - }, - youtube_language: { - text: 'youtubeLanguage', - component: 'select', - options: [{ - value: 'default', - text: 'default' - }, - { - value: "en", - text: "English" - }, { - value: "es", - text: "Español (España)" - }, { - value: "es-419", - text: "Español (Latinoamérica)" - }, { - value: "es-US", - text: "Español (US)" - }, { - value: "ru", - text: "Русский" - }, { - value: "de", - text: "Deutsch" - }, { - value: "pt-PT", - text: "Português" - }, { - value: "pt", - text: "Português (Brasil)" - }, { - value: "fr", - text: "Français" - }, { - value: "pl", - text: "Polski" - }, { - value: "ja", - text: "日本語" - }, { - value: "af", - text: "Afrikaans" - }, { - value: "az", - text: "Azərbaycan" - }, { - value: "id", - text: "Bahasa Indonesia" - }, { - value: "ms", - text: "Bahasa Malaysia" - }, { - value: "bs", - text: "Bosanski" - }, { - value: "ca", - text: "Català" - }, { - value: "cs", - text: "Čeština" - }, { - value: "da", - text: "Dansk" - }, { - value: "et", - text: "Eesti" - }, { - value: "eu", - text: "Euskara" - }, { - value: "fil", - text: "Filipino" - }, { - value: "fr-CA", - text: "Français (Canada)" - }, { - value: "gl", - text: "Galego" - }, { - value: "hr", - text: "Hrvatski" - }, { - value: "zu", - text: "IsiZulu" - }, { - value: "is", - text: "Íslenska" - }, { - value: "it", - text: "Italiano" - }, { - value: "sw", - text: "Kiswahili" - }, { - value: "lv", - text: "Latviešu valoda" - }, { - value: "lt", - text: "Lietuvių" - }, { - value: "hu", - text: "Magyar" - }, { - value: "nl", - text: "Nederlands" - }, { - value: "no", - text: "Norsk" - }, { - value: "uz", - text: "O‘zbek" - }, { - value: "ro", - text: "Română" - }, { - value: "sq", - text: "Shqip" - }, { - value: "sk", - text: "Slovenčina" - }, { - value: "sl", - text: "Slovenščina" - }, { - value: "sr-Latn", - text: "Srpski" - }, { - value: "fi", - text: "Suomi" - }, { - value: "sv", - text: "Svenska" - }, { - value: "vi", - text: "Tiếng Việt" - }, { - value: "tr", - text: "Türkçe" - }, { - value: "be", - text: "Беларуская" - }, { - value: "bg", - text: "Български" - }, { - value: "ky", - text: "Кыргызча" - }, { - value: "kk", - text: "Қазақ Тілі" - }, { - value: "mk", - text: "Македонски" - }, { - value: "mn", - text: "Монгол" - }, { - value: "sr", - text: "Српски" - }, { - value: "uk", - text: "Українська" - }, { - value: "el", - text: "Ελληνικά" - }, { - value: "hy", - text: "Հայերեն" - }, { - value: "iw", - text: "עברית" - }, { - value: "ur", - text: "اردو" - }, { - value: "ar", - text: "العربية" - }, { - value: "fa", - text: "فارسی" - }, { - value: "ne", - text: "नेपाली" - }, { - value: "mr", - text: "मराठी" - }, { - value: "hi", - text: "हिन्दी" - }, { - value: "bn", - text: "বাংলা" - }, { - value: "pa", - text: "ਪੰਜਾਬੀ" - }, { - value: "gu", - text: "ગુજરાતી" - }, { - value: "ta", - text: "தமிழ்" - }, { - value: "te", - text: "తెలుగు" - }, { - value: "kn", - text: "ಕನ್ನಡ" - }, { - value: "ml", - text: "മലയാളം" - }, { - value: "si", - text: "සිංහල" - }, { - value: "th", - text: "ภาษาไทย" - }, { - value: "lo", - text: "ລາວ" - }, { - value: "my", - text: "ဗမာ" - }, { - value: "ka", - text: "ქართული" - }, { - value: "am", - text: "አማርኛ" - }, { - value: "km", - text: "ខ្មែរ" - }, { - value: "zh-CN", - text: "中文 (简体)" - }, { - value: "zh-TW", - text: "中文 (繁體)" - }, { - value: "zh-HK", - text: "中文 (香港)" - }, { - value: "ko", - text: "한국어" - } - ] - } - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'none', - 'stroke': 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': '1.75' - }, - - path: { - component: 'path', - attr: { - 'd': 'M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1zM4 22v-7' - } - } - } - }, - label: { - component: 'span', - text: 'general' - } - }, - appearance: { - component: 'button', - variant: 'appearance', - category: true, - on: { - click: { - component: 'section', - class: 'satus-section--appearance', - - header: { - component: 'button', - text: 'header', - class: 'satus-button--header', - on: { - click: { - component: 'section', - variant: 'card', - - header_position: { - component: 'select', - text: 'position', - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'hidden', - value: 'hidden' - }, { - text: 'hover', - value: 'hover' - }, { - text: 'hiddenOnVideoPage', - value: 'hidden_on_video_page' - }, { - text: 'hoverOnVideoPage', - value: 'hover_on_video_page' - }, { - text: 'static', - value: 'static' - }], - tags: 'hide,hover,static,top' - }, - header_improve_logo: { - component: 'switch', - text: 'improveLogo', - tags: 'youtube' - }, - header_hide_right_buttons: { - component: 'switch', - text: 'hideRightButtons', - tags: 'user' - }, - header_hide_country_code: { - component: 'switch', - text: 'hideCountryCode', - tags: 'country,code' - }, - hide_voice_search_button: { - component: 'switch', - text: 'hideVoiceSearchButton' - } - } - } - }, - player: { - component: 'button', - text: 'player', - class: 'satus-button--player', - on: { - click: { - component: 'section', - variant: 'card', - - player_size: { - component: 'select', - variant: 'player-size', - text: 'playerSize', - options: [{ - text: 'doNotChange', - value: 'do_not_change' - }, { - text: 'fullWindow', - value: 'full_window' - }, { - text: 'fitToWindow', - value: 'fit_to_window' - }, { - text: '144p', - value: '144p' - }, { - text: '240p', - value: '240p' - }, { - text: '360p', - value: '360p' - }, { - text: '480p', - value: '480p' - }, { - text: '576p', - value: '576p' - }, { - text: '720p', - value: '720p' - }, { - text: '1080p', - value: '1080p' - }, { - text: '1440p', - value: '1440p' - }, { - text: '2160p', - value: '2160p' - }, { - text: 'custom', - value: 'custom' - }] - }, - section: { - component: 'section', - variant: 'custom-player-size', - - custom_player_size_width: { - component: 'input', - attr: { - type: 'text', - name: 'custom_player_size_width', - placeholder: '1280' - } - }, - x: { - component: 'span', - text: 'x' - }, - custom_player_size_height: { - component: 'input', - attr: { - type: 'text', - name: 'custom_player_size_height', - placeholder: '720' - } - } - }, - forced_theater_mode: { - component: 'switch', - text: 'forcedTheaterMode', - tags: 'wide' - }, - hide_gradient_bottom: { - component: 'switch', - text: 'hideGradientBottom' - }, - player_hide_skip_overlay: { - component: 'switch', - text: 'hideSkipOverlay', - value: false, - tags: 'remove,hide' - }, - player_remaining_duration: { - component: 'switch', - text: 'showRemainingDuration', - value: false - }, - always_show_progress_bar: { - component: 'switch', - text: 'alwaysShowProgressBar' - }, - player_color: { - component: 'select', - text: 'playerColor', - options: [{ - text: 'red', - value: 'red' - }, { - text: 'pink', - value: 'pink' - }, { - text: 'purple', - value: 'purple' - }, { - text: 'deepPurple', - value: 'deep_purple' - }, { - text: 'indigo', - value: 'indigo' - }, { - text: 'blue', - value: 'blue' - }, { - text: 'lightBlue', - value: 'light_blue' - }, { - text: 'cyan', - value: 'cyan' - }, { - text: 'teal', - value: 'teal' - }, { - text: 'green', - value: 'green' - }, { - text: 'lightGreen', - value: 'light_green' - }, { - text: 'lime', - value: 'lime' - }, { - text: 'yellow', - value: 'yellow' - }, { - text: 'amber', - value: 'amber' - }, { - text: 'orange', - value: 'orange' - }, { - text: 'deepOrange', - value: 'deep_orange' - }, { - text: 'brown', - value: 'brown' - }, { - text: 'blueGray', - value: 'blue_gray' - }, { - text: 'white', - value: 'white' - }], - tags: 'style' - }, - player_transparent_background: { - component: 'switch', - text: 'transparentBackground' - }, - player_hide_annotations: { - component: 'switch', - text: 'hideAnnotations', - tags: 'hide,remove,elements' - }, - player_hide_cards: { - component: 'switch', - text: 'hideCards', - tags: 'hide,remove,elements' - }, - player_show_cards_on_mouse_hover: { - component: 'switch', - text: 'showCardsOnMouseHover', - tags: 'hide,remove,elements' - }, - player_hide_endscreen: { - component: 'switch', - text: 'hideEndscreen' - }, - player_hd_thumbnail: { - component: 'switch', - text: 'hdThumbnail', - tags: 'preview' - }, - hide_scroll_for_details: { - component: 'switch', - text: 'hideScrollForDetails', - tags: 'remove,hide' - } - } - } - }, - details: { - component: 'button', - text: 'details', - class: 'satus-button--details', - on: { - click: { - component: 'section', - variant: 'card', - - hide_details: { - component: 'switch', - text: 'hideDetails', - tags: 'hide,remove' - }, - hide_views_count: { - component: 'switch', - text: 'hideViewsCount', - tags: 'hide,remove' - }, - hide_date: { - component: 'switch', - text: 'hideDate', - tags: 'hide,remove' - }, - likes: { - component: 'select', - text: 'likes', - - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'iconsOnly', - value: 'icons_only' - }, { - text: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - hide_share_button: { - component: 'switch', - text: 'hideShareButton', - tags: 'hide,remove' - }, - hide_download_button: { - component: 'switch', - text: 'hideDownloadButton', - tags: 'hide,remove' - }, - hide_thanks_button: { - component: 'switch', - text: 'hideThanksButton', - tags: 'hide,remove' - }, - hide_clip_button: { - component: 'switch', - text: 'hideClipButton', - tags: 'hide,remove' - }, - hide_save_button: { - component: 'switch', - text: 'hideSaveButton', - tags: 'hide,remove' - }, - hide_report_button: { - component: 'switch', - text: 'hideReportButton', - tags: 'hide,remove' - }, - hide_more_button: { - component: 'switch', - text: 'hideMoreButton', - tags: 'hide,remove' - }, - description: { - component: 'select', - text: 'description', - - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'expanded', - value: 'expanded' - }, { - text: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - how_long_ago_the_video_was_uploaded: { - component: 'switch', - text: 'howLongAgoTheVideoWasUploaded' - }, - channel_videos_count: { - component: 'switch', - text: 'showChannelVideosCount' - }, - red_dislike_button: { - component: 'switch', - text: 'redDislikeButton' - }, - improvedtube_buttons: { - component: 'switch', - text: 'improvedtubeButtons' - } - } - } - }, - sidebar: { - component: 'button', - text: 'sidebar', - class: 'satus-button--sidebar', - on: { - click: { - component: 'section', - variant: 'card', - - related_videos: { - component: 'select', - text: 'relatedVideos', - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'collapsed', - value: 'collapsed' - }, { - text: 'hidden', - value: 'hidden' - }], - tags: 'right' - }, - livechat: { - component: 'select', - text: 'liveChat', - - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'collapsed', - value: 'collapsed' - }, { - text: 'hidden', - value: 'hidden' - }] - }, - hide_playlist: { - component: 'switch', - text: 'hidePlaylist' - }, - sidebar_left: { - component: 'switch', - text: 'moveSidebarLeft' - }, - thumbnails_right: { - component: 'switch', - text: 'moveThumbnailsRight' - }, - thumbnails_hide: { - component: 'switch', - text: 'hideThumbnails' - } - } - } - }, - comments: { - component: 'button', - text: 'comments', - class: 'satus-button--comments', - on: { - click: { - component: 'section', - variant: 'card', - - comments: { - component: 'select', - text: 'comments', - - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'collapsed', - value: 'collapsed' - }, { - text: 'hidden', - value: 'hidden' - }] - }, - hide_author_avatars: { - component: 'switch', - text: 'Hide Avatars' - } - } - } - }, - footer: { - component: 'button', - text: 'footer', - class: 'satus-button--footer', - on: { - click: { - component: 'section', - variant: 'card', - - hide_footer: { - component: 'switch', - text: 'hideFooter', - tags: 'bottom' - } - } - } - } - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'transparent', - 'stroke': 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': '1.75' - }, - - path: { - component: 'path', - attr: { - 'd': 'M17 3a2.83 2.83 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z' - } - } - } - }, - label: { - component: 'span', - text: 'appearance' - } - }, - themes: { - component: 'button', - class: 'satus-button--themes', - category: true, - on: { - click: { - section: { - component: 'section', - variant: 'card', - - my_colors: { - component: 'button', - text: 'myColors', - on: { - click: { - section: { - component: 'section', - variant: 'card', - - theme_my_colors: { - component: 'switch', - text: 'activate', - storage: false, - on: { - render: function () { - this.dataset.value = satus.storage.get('theme') === 'my-colors'; - }, - click: function () { - var value = 'default'; - - if (this.dataset.value === 'true') { - value = 'my-colors'; - } - - satus.storage.set('theme', value); - } - } - } - }, - - section2: { - component: 'section', - variant: 'card', - - theme_primary_color: { - component: 'color-picker', - text: 'primaryColor', - value: [200, 200, 200] - }, - theme_text_color: { - component: 'color-picker', - text: 'textColor', - value: [25, 25, 25] - } - } - } - } - }, - filters: { - component: 'button', - text: 'filters', - on: { - click: { - component: 'section', - variant: 'card', - - bluelight: { - component: 'slider', - text: 'bluelight', - step: 1, - max: 90, - value: 0 - }, - dim: { - component: 'slider', - text: 'dim', - step: 1, - max: 90, - value: 0 - } - } - } - }, - schedule: { - component: 'button', - text: 'schedule', - on: { - click: { - component: 'section', - variant: 'card', - - schedule: { - component: 'select', - text: 'schedule', - - options: [{ - text: 'disabled', - value: 'disabled' - }, { - text: 'sunsetToSunrise', - value: 'sunset_to_sunrise' - }, { - text: 'systemPeferenceDark', - value: 'system_peference_dark' - }, { - text: 'systemPeferenceLight', - value: 'system_peference_light' - }] - }, - schedule_time_from: { - component: 'select', - text: 'timeFrom', - options: [{ - text: '00:00', - value: '00:00' - }, { - text: '01:00', - value: '01:00' - }, { - text: '02:00', - value: '02:00' - }, { - text: '03:00', - value: '03:00' - }, { - text: '04:00', - value: '04:00' - }, { - text: '05:00', - value: '05:00' - }, { - text: '06:00', - value: '06:00' - }, { - text: '07:00', - value: '07:00' - }, { - text: '08:00', - value: '08:00' - }, { - text: '09:00', - value: '09:00' - }, { - text: '10:00', - value: '10:00' - }, { - text: '11:00', - value: '11:00' - }, { - text: '12:00', - value: '12:00' - }, { - text: '13:00', - value: '13:00' - }, { - text: '14:00', - value: '14:00' - }, { - text: '15:00', - value: '15:00' - }, { - text: '16:00', - value: '16:00' - }, { - text: '17:00', - value: '17:00' - }, { - text: '18:00', - value: '18:00' - }, { - text: '19:00', - value: '19:00' - }, { - text: '20:00', - value: '20:00' - }, { - text: '21:00', - value: '21:00' - }, { - text: '22:00', - value: '22:00' - }, { - text: '23:00', - value: '23:00' - }] - }, - schedule_time_to: { - component: 'select', - text: 'timeTo', - options: [{ - text: '00:00', - value: '00:00' - }, { - text: '01:00', - value: '01:00' - }, { - text: '02:00', - value: '02:00' - }, { - text: '03:00', - value: '03:00' - }, { - text: '04:00', - value: '04:00' - }, { - text: '05:00', - value: '05:00' - }, { - text: '06:00', - value: '06:00' - }, { - text: '07:00', - value: '07:00' - }, { - text: '08:00', - value: '08:00' - }, { - text: '09:00', - value: '09:00' - }, { - text: '10:00', - value: '10:00' - }, { - text: '11:00', - value: '11:00' - }, { - text: '12:00', - value: '12:00' - }, { - text: '13:00', - value: '13:00' - }, { - text: '14:00', - value: '14:00' - }, { - text: '15:00', - value: '15:00' - }, { - text: '16:00', - value: '16:00' - }, { - text: '17:00', - value: '17:00' - }, { - text: '18:00', - value: '18:00' - }, { - text: '19:00', - value: '19:00' - }, { - text: '20:00', - value: '20:00' - }, { - text: '21:00', - value: '21:00' - }, { - text: '22:00', - value: '22:00' - }, { - text: '23:00', - value: '23:00' - }] - } - } - } - }, - font: { - component: 'select', - text: 'font', - options: [{ - text: 'Youtube standard (Roboto)', - value: 'Default' - }, { - text: 'Open Sans', - value: 'Open+Sans' - }, { - text: 'Lato', - value: 'Lato' - }, { - text: 'Montserrat', - value: 'Montserrat' - }, { - text: 'Source Sans Pro', - value: 'Source+Sans+Pro' - }, { - text: 'Roboto Condensed', - value: 'Roboto+Condensed' - }, { - text: 'Oswald', - value: 'Oswald' - }, { - text: 'Comfortaa', - value: 'Comfortaa' - }, { - text: 'Roboto Mono', - value: 'Roboto+Mono' - }, { - text: 'Raleway', - value: 'Raleway' - }, { - text: 'Poppins', - value: 'Poppins' - }, { - text: 'Noto Sans', - value: 'Noto+Sans' - }, { - text: 'Roboto Slab', - value: 'Roboto+Slab' - }, { - text: 'Marriweather', - value: 'Marriweather' - }, { - text: 'PT Sans', - value: 'PT+Sans' - }] - } - }, - section_2: { - component: 'section', - variant: 'card', - - default: { - component: 'label', - class: 'satus-label--default-theme', - text: 'default', - - radio: { - component: 'radio', - group: 'theme', - value: 'default', - checked: true - } - }, - dark: { - component: 'label', - class: 'satus-label--dark-theme', - text: 'dark', - - radio: { - component: 'radio', - group: 'theme', - value: 'dark' - } - }, - night: { - component: 'label', - class: 'satus-label--night-theme', - text: 'night', - - radio: { - component: 'radio', - group: 'theme', - value: 'night' - } - }, - dawn: { - component: 'label', - class: 'satus-label--dawn-theme', - text: 'dawn', - - radio: { - component: 'radio', - group: 'theme', - value: 'dawn' - } - }, - sunset: { - component: 'label', - class: 'satus-label--sunset-theme', - text: 'sunset', - - radio: { - component: 'radio', - group: 'theme', - value: 'sunset' - } - }, - desert: { - component: 'label', - class: 'satus-label--desert-theme', - text: 'desert', - - radio: { - component: 'radio', - group: 'theme', - value: 'desert' - } - }, - plain: { - component: 'label', - class: 'satus-label--plain-theme', - text: 'plain', - - radio: { - component: 'radio', - group: 'theme', - value: 'plain' - } - }, - black: { - component: 'label', - class: 'satus-label--black-theme', - text: 'black', - - radio: { - component: 'radio', - group: 'theme', - value: 'black' - } - } - } - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'transparent', - 'stroke': 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': '1.75' - }, - - path: { - component: 'path', - attr: { - 'd': 'M12 2.69l5.66 5.66a8 8 0 11-11.31 0z' - } - } - } - }, - label: { - component: 'span', - text: 'themes' - } - }, - player: { - component: 'button', - class: 'satus-button--player', - category: true, - on: { - click: { - section_1: { - component: 'section', - variant: 'card', - - autoplay: { - component: 'switch', - text: 'autoplay', - value: true, - storage: 'player_autoplay' - }, - forced_play_video_from_the_beginning: { - component: 'switch', - text: 'forcedPlayVideoFromTheBeginning' - }, - ads: { - text: 'ads', - component: 'select', - options: [{ - text: 'onAllVideos', - value: 'all_videos', - default: 'true' - }, { - text: 'onSubscribedChannels', - value: 'subscribed_channels' - }, { - text: 'blockMusic', - value: 'block_music' - }, { - text: 'blockAll', - value: 'block_all' - }], - storage: 'player_ads' - }, - quality: { - component: 'select', - text: 'quality', - options: [{ - text: 'auto', - value: 'auto' - }, { - text: '144p', - value: 'tiny' - }, { - text: '240p', - value: 'small' - }, { - text: '360p', - value: 'medium' - }, { - text: '480p', - value: 'large' - }, { - text: '720p', - value: 'hd720' - }, { - text: '1080p', - value: 'hd1080' - }, { - text: '1440p', - value: 'hd1440' - }, { - text: '2160p', - value: 'hd2160' - }, { - text: '2880p', - value: 'hd2880' - }, { - text: '4320p', - value: 'highres' - }], - storage: 'player_quality' - }, - autofullscreen: { - component: 'switch', - text: 'autoFullscreen', - storage: 'player_autofullscreen' - }, - autopause_when_switching_tabs: { - component: 'switch', - text: 'autopauseWhenSwitchingTabs', - storage: 'player_autopause_when_switching_tabs' - }, - player_forced_playback_speed: { - component: 'switch', - text: 'forcedPlaybackSpeed', - id: 'forced-playback-speed', - onrender: function () { - this.dataset.value = satus.storage.player_forced_playback_speed; - }, - onchange: function () { - this.dataset.value = satus.storage.player_forced_playback_speed; - } - }, - player_playback_speed: { - component: 'slider', - text: 'playbackSpeed', - textarea: true, - value: 1, - min: .1, - max: 8, - step: .05 - }, - subtitles: { - component: 'button', - text: 'subtitles', - on: { - click: { - component: 'section', - variant: 'card', - - player_subtitles: { - component: 'switch', - text: 'subtitles' - }, - auto_generate: { - component: 'switch', - text: 'Allow auto generate' - }, - subtitles_language: { - component: 'select', - text: 'language', - options: [{ - value: 'default', - text: 'default' - }, - { - value: 'af', - text: 'Afrikaans' - }, - { - value: 'sq', - text: 'Albanian' - }, - { - value: 'am', - text: 'Amharic' - }, - { - value: 'ar', - text: 'Arabic' - }, - { - value: 'hy', - text: 'Armenian' - }, - { - value: 'az', - text: 'Azerbaijani' - }, - { - value: 'bn', - text: 'Bangla' - }, - { - value: 'eu', - text: 'Basque' - }, - { - value: 'be', - text: 'Belarusian' - }, - { - value: 'bs', - text: 'Bosnian' - }, - { - value: 'bg', - text: 'Bulgarian' - }, - { - value: 'my', - text: 'Burmese' - }, - { - value: 'ca', - text: 'Catalan' - }, - { - value: 'ceb', - text: 'Cebuano' - }, - { - value: 'zh-Hans', - text: 'Chinese (Simplified)' - }, - { - value: 'zh-Hant', - text: 'Chinese (Traditional)' - }, - { - value: 'co', - text: 'Corsican' - }, - { - value: 'hr', - text: 'Croatian' - }, - { - value: 'cs', - text: 'Czech' - }, - { - value: 'da', - text: 'Danish' - }, - { - value: 'nl', - text: 'Dutch' - }, - { - value: 'en', - text: 'English' - }, - { - value: 'eo', - text: 'Esperanto' - }, - { - value: 'et', - text: 'Estonian' - }, - { - value: 'fil', - text: 'Filipino' - }, - { - value: 'fi', - text: 'Finnish' - }, - { - value: 'fr', - text: 'French' - }, - { - value: 'gl', - text: 'Galician' - }, - { - value: 'ka', - text: 'Georgian' - }, - { - value: 'de', - text: 'German' - }, - { - value: 'el', - text: 'Greek' - }, - { - value: 'gu', - text: 'Gujarati' - }, - { - value: 'ht', - text: 'Haitian Creole' - }, - { - value: 'ha', - text: 'Hausa' - }, - { - value: 'haw', - text: 'Hawaiian' - }, - { - value: 'iw', - text: 'Hebrew' - }, - { - value: 'hi', - text: 'Hindi' - }, - { - value: 'hmn', - text: 'Hmong' - }, - { - value: 'hu', - text: 'Hungarian' - }, - { - value: 'is', - text: 'Icelandic' - }, - { - value: 'ig', - text: 'Igbo' - }, - { - value: 'id', - text: 'Indonesian' - }, - { - value: 'ga', - text: 'Irish' - }, - { - value: 'it', - text: 'Italian' - }, - { - value: 'ja', - text: 'Japanese' - }, - { - value: 'jv', - text: 'Javanese' - }, - { - value: 'kn', - text: 'Kannada' - }, - { - value: 'kk', - text: 'Kazakh' - }, - { - value: 'km', - text: 'Khmer' - }, - { - value: 'rw', - text: 'Kinyarwanda' - }, - { - value: 'ko', - text: 'Korean' - }, - { - value: 'ku', - text: 'Kurdish' - }, - { - value: 'ky', - text: 'Kyrgyz' - }, - { - value: 'lo', - text: 'Lao' - }, - { - value: 'la', - text: 'Latin' - }, - { - value: 'lv', - text: 'Latvian' - }, - { - value: 'lt', - text: 'Lithuanian' - }, - { - value: 'lb', - text: 'Luxembourgish' - }, - { - value: 'mk', - text: 'Macedonian' - }, - { - value: 'mg', - text: 'Malagasy' - }, - { - value: 'ms', - text: 'Malay' - }, - { - value: 'ml', - text: 'Malayalam' - }, - { - value: 'mt', - text: 'Maltese' - }, - { - value: 'mi', - text: 'Maori' - }, - { - value: 'mr', - text: 'Marathi' - }, - { - value: 'mn', - text: 'Mongolian' - }, - { - value: 'ne', - text: 'Nepali' - }, - { - value: 'no', - text: 'Norwegian' - }, - { - value: 'ny', - text: 'Nyanja' - }, - { - value: 'or', - text: 'Odia' - }, - { - value: 'ps', - text: 'Pashto' - }, - { - value: 'fa', - text: 'Persian' - }, - { - value: 'pl', - text: 'Polish' - }, - { - value: 'pt', - text: 'Portuguese' - }, - { - value: 'pa', - text: 'Punjabi' - }, - { - value: 'ro', - text: 'Romanian' - }, - { - value: 'ru', - text: 'Russian' - }, - { - value: 'sm', - text: 'Samoan' - }, - { - value: 'gd', - text: 'Scottish Gaelic' - }, - { - value: 'sr', - text: 'Serbian' - }, - { - value: 'sn', - text: 'Shona' - }, - { - value: 'sd', - text: 'Sindhi' - }, - { - value: 'si', - text: 'Sinhala' - }, - { - value: 'sk', - text: 'Slovak' - }, - { - value: 'sl', - text: 'Slovenian' - }, - { - value: 'so', - text: 'Somali' - }, - { - value: 'st', - text: 'Southern Sotho' - }, - { - value: 'es', - text: 'Spanish' - }, - { - value: 'su', - text: 'Sundanese' - }, - { - value: 'sw', - text: 'Swahili' - }, - { - value: 'sv', - text: 'Swedish' - }, - { - value: 'tg', - text: 'Tajik' - }, - { - value: 'ta', - text: 'Tamil' - }, - { - value: 'tt', - text: 'Tatar' - }, - { - value: 'te', - text: 'Telugu' - }, - { - value: 'th', - text: 'Thai' - }, - { - value: 'tr', - text: 'Turkish' - }, - { - value: 'tk', - text: 'Turkmen' - }, - { - value: 'uk', - text: 'Ukrainian' - }, - { - value: 'ur', - text: 'Urdu' - }, - { - value: 'ug', - text: 'Uyghur' - }, - { - value: 'uz', - text: 'Uzbek' - }, - { - value: 'vi', - text: 'Vietnamese' - }, - { - value: 'cy', - text: 'Welsh' - }, - { - value: 'fy', - text: 'Western Frisian' - }, - { - value: 'xh', - text: 'Xhosa' - }, - { - value: 'yi', - text: 'Yiddish' - }, - { - value: 'yo', - text: 'Yoruba' - }, - { - value: 'zu', - text: 'Zulu' - } - ] - }, - subtitles_font_family: { - component: 'select', - text: 'fontFamily', - options: [{ - text: 'Monospaced Serif', - value: 1 - }, { - text: 'Proportional Serif', - value: 2 - }, { - text: 'Monospaced Sans-Serif', - value: 3 - }, { - text: 'Proportional Sans-Serif', - value: 4 - }, { - text: 'Casual', - value: 5 - }, { - text: 'Cursive', - value: 6 - }, { - text: 'Small Capitals', - value: 7 - }] - }, - subtitles_font_color: { - component: 'select', - text: 'fontColor', - options: [{ - text: 'white', - value: '#fff' - }, { - text: 'yellow', - value: '#ff0' - }, { - text: 'green', - value: '#0f0' - }, { - text: 'cyan', - value: '#0ff' - }, { - text: 'blue', - value: '#00f' - }, { - text: 'magenta', - value: '#f0f' - }, { - text: 'red', - value: '#f00' - }, { - text: 'black', - value: '#000' - }] - }, - subtitles_font_size: { - component: 'select', - text: 'fontSize', - options: [{ - text: '50%', - value: -2 - }, { - text: '75%', - value: -1 - }, { - text: '100%', - value: 0 - }, { - text: '150%', - value: 1 - }, { - text: '200%', - value: 2 - }, { - text: '300%', - value: 3 - }, { - text: '400%', - value: 4 - }] - }, - subtitles_background_color: { - component: 'select', - text: 'backgroundColor', - options: [{ - text: 'white', - value: '#fff' - }, { - text: 'yellow', - value: '#ff0' - }, { - text: 'green', - value: '#0f0' - }, { - text: 'cyan', - value: '#0ff' - }, { - text: 'blue', - value: '#00f' - }, { - text: 'magenta', - value: '#f0f' - }, { - text: 'red', - value: '#f00' - }, { - text: 'black', - value: '#000' - }] - }, - subtitles_background_opacity: { - component: 'slider', - text: 'backgroundOpacity', - value: 75, - min: 0, - max: 100, - step: 1 - }, - subtitles_window_color: { - component: 'select', - text: 'windowColor', - options: [{ - text: 'white', - value: '#fff' - }, { - text: 'yellow', - value: '#ff0' - }, { - text: 'green', - value: '#0f0' - }, { - text: 'cyan', - value: '#0ff' - }, { - text: 'blue', - value: '#00f' - }, { - text: 'magenta', - value: '#f0f' - }, { - text: 'red', - value: '#f00' - }, { - text: 'black', - value: '#000' - }] - }, - subtitles_window_opacity: { - component: 'slider', - text: 'windowOpacity', - value: 0, - min: 0, - max: 100, - step: 1 - }, - subtitles_character_edge_style: { - component: 'select', - text: 'characterEdgeStyle', - options: [{ - text: 'none', - value: 0 - }, { - text: 'dropShadow', - value: 4 - }, { - text: 'raised', - value: 1 - }, { - text: 'depressed', - value: 2 - }, { - text: 'outline', - value: 3 - }] - }, - subtitles_font_opacity: { - component: 'slider', - text: 'fontOpacity', - value: 100, - min: 0, - max: 100, - step: 1 - } - } - } - }, - crop_chapter_titles: { - component: 'switch', - text: 'cropChapterTitles', - value: true, - storage: 'player_crop_chapter_titles' - }, - up_next_autoplay: { - component: 'switch', - text: 'upNextAutoplay', - value: true - }, - mini_player: { - component: 'switch', - text: 'customMiniPlayer' - }, - h264: { - component: 'switch', - text: 'codecH264', - storage: 'player_h264', - on: { - click: function () { - if (this.dataset.value === 'true') { - satus.render({ - component: 'modal', - - message: { - component: 'text', - text: 'youtubeLimitsVideoQualityTo1080pForH264Codec' - }, - actions: { - component: 'section', - variant: 'actions', - - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.parentNode.parentNode.parentNode.click(); - } - } - }, - ok: { - component: 'button', - text: 'OK', - onclick: function () { - - this.parentNode.parentNode.parentNode.click(); - } - } - } - }); - } - } - } - }, - player_codecs: { - component: 'button', - text: 'codecs', - on: { - click: { - section: { - component: 'section', - variant: 'card', - - block_h264: { - component: 'switch', - text: 'blockH264' - }, - block_vp8: { - component: 'switch', - text: 'blockVp8' - }, - block_vp9: { - component: 'switch', - text: 'blockVp9' - }, - block_av1: { - component: 'switch', - text: 'blockAv1' - } - } - } - } - }, - avoid_cpu_rendering_when_possible: { - component: 'select', - text: 'avoidCpuRenderingWhenPossible', - options: [ - {text: 'disabled', value: 'disabled'}, - {text: 'auto', value: 'auto'}, - {text: 'avoidAv1', value: 'av1'}, - {text: 'avoidAv1Vp9', value: 'av1-vp9'}, - {text: 'avoidAv1Vp8Vp9', value: 'av1-vp8-vp9'} - ] - }, - player_60fps: { - component: 'switch', - text: 'allow60fps', - value: true - }, - sdr: { - component: 'switch', - text: 'forceSDR', - value: false, - storage: 'player_SDR' - }, - player_forced_volume: { - component: 'switch', - text: 'forcedVolume', - id: 'forced-volume', - onrender: function () { - this.dataset.value = satus.storage.player_forced_volume; - }, - onchange: function () { - this.dataset.value = satus.storage.player_forced_volume; - } - }, - player_volume: { - component: 'slider', - text: 'volume', - step: 1, - max: 400, - value: 100 - }, - player_loudness_normalization: { - component: 'switch', - text: 'loudnessNormalization', - value: true - }, - hide_controls: { - component: 'select', - text: 'hidePlayerControlsBar', + component: 'base', + class: 'search-mode', + attr: { + 'theme': 'default' + }, + + header: { + component: 'header', + + section_start: { + component: 'section', + variant: 'align-start', + + back: { + component: 'button', + attr: { + 'hidden': 'true' + }, + on: { + click: 'layers.back' + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'stroke-width': '1.5' + }, + + path: { + component: 'path', + attr: { + 'd': 'M14 18l-6-6 6-6' + } + } + } + }, + title: { + component: 'span', + variant: 'title', + data: { + version: chrome.runtime.getManifest().version + } + } + }, + section_end: { + component: 'section', + variant: 'align-end', + + search_field: { + component: 'input', + class: 'satus-input--search', + storage: false, + attr: { + 'type': 'text', + 'placeholder': 'search', + 'autofocus': true + }, + on: { + render: function () { + this.focus(); + }, + blur: function () { + if (this.value.length === 0) { + var results = document.querySelector('.search-results'); + + if (results) { + results.close(); + } + + this.base.classList.remove('search-mode'); + } + }, + keydown: function (event) { + var value = this.value, + key = event.key; + + setTimeout(function () { + if (value.length === 0 && key === 'Backspace') { + var results = document.querySelector('.search-results'); + + if (results) { + results.close(); + } + + this.base.classList.remove('search-mode'); + } + }); + }, + input: function (event) { + var self = this, + value = this.value.trim(); + + if (value.length > 0) { + satus.search(value, skeleton, function (results) { + var search_results = document.querySelector('.search-results'), + skeleton = { + component: 'modal', + class: 'search-results' + }; + + for (var key in results) { + var result = results[key], + parent = result; + + while ( + parent.parent && + !parent.parent.category + ) { + parent = parent.parent; + } + + var category = ''; + + if (parent.parent && parent.parent.label && parent.parent.label.text) { + category = parent.parent.label.text; + } + + parent = result; + + while ( + parent.parent && + parent.parent.component !== 'button' + ) { + parent = parent.parent; + } + + parent = parent.parent; + + if (parent) { + if (parent.label) { + var subcategory = parent.label.text; + } else { + var subcategory = parent.text; + } + + skeleton[category + subcategory + '_label'] = { + component: 'span', + class: 'satus-section--label', + text: satus.locale.get(category) + ' -> ' + satus.locale.get(subcategory) + }; + + if (!skeleton[category + subcategory]) { + skeleton[category + subcategory] = { + component: 'section', + variant: 'card' + }; + } + + skeleton[category + subcategory][key] = result; + } else { + skeleton[category + '_label'] = { + component: 'span', + class: 'satus-section--label', + text: category + }; + + if (!skeleton[category]) { + skeleton[category] = { + component: 'section', + variant: 'card' + }; + } + + skeleton[category][key] = result; + } + } + + if (Object.keys(results).length === 0) { + if (search_results) { + search_results.remove(); + } + } else { + if (search_results) { + var parent = document.querySelector('.search-results .satus-modal__surface'); + + while (parent.children[0]) { + parent.children[0].remove(); + } + + delete skeleton.component; + + satus.render(skeleton, parent); + } else { + satus.render(skeleton, self.base); + + document.querySelector('.search-results .satus-modal__scrim').addEventListener('click', function () { + var results = document.querySelector('.search-results'); + + if (results) { + results.close(); + } + + document.querySelector('.satus-input--search').value = ''; + document.querySelector('.search-mode').classList.remove('search-mode'); + }); + } + } + }, true); + } else { + var results = document.querySelector('.search-results'); + + if (results) { + results.close(); + } + } + } + } + }, + search_close: { + component: 'button', + class: 'satus-button--close-search', + on: { + click: function () { + var results = document.querySelector('.search-results'); + + if (results) { + results.close(); + } + + this.base.classList.remove('search-mode'); + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'stroke-width': '1.75' + }, + + path: { + component: 'path', + attr: { + 'd': 'M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z' + } + } + } + }, + search: { + component: 'button', + on: { + click: function () { + this.base.classList.toggle('search-mode'); + + this.base.skeleton.header.section_end.search_field.rendered.focus(); + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'stroke': 'currentcolor', + 'stroke-linecap': 'round', + 'stroke-linejoin': 'round', + 'stroke-width': '1.25' + }, + + circle: { + component: 'circle', + attr: { + 'cx': '11', + 'cy': '10.5', + 'r': '6' + } + }, + path: { + component: 'path', + attr: { + 'd': 'M20 20l-4-4' + } + } + } + }, + menu: { + component: 'button', + on: { + click: { + component: 'modal', + variant: 'vertical', + + active_features: { + component: 'button', + on: { + click: { + component: 'section', + variant: 'card', + on: { + render: function () { + var component = this; + + this.skeleton.parent.parent.rendered.close(); + + satus.search('', skeleton, function (results) { + var skeleton = {}; + + for (var key in results) { + var result = results[key], + default_value = result.value || false, + value = satus.storage.get(key), + parent = result; + + if (result.component === 'select') { + if (satus.isset(result.value) === false) { + default_value = result.options[0].value; + } + } + + if (satus.isset(value) && value !== default_value) { + while ( + parent.parent && + !parent.parent.category + ) { + parent = parent.parent; + } + + var category = parent.parent.label.text; + + parent = result; + + while ( + parent.parent && + parent.parent.component !== 'button' + ) { + parent = parent.parent; + } + + parent = parent.parent; + + console.log(result, category, parent); + + if (parent) { + if (parent.label) { + var subcategory = parent.label.text; + } else { + var subcategory = parent.text; + } + + skeleton[category + subcategory + '_label'] = { + component: 'span', + class: 'satus-section--label', + text: satus.locale.get(category) + ' -> ' + satus.locale.get(subcategory) + }; + + if (!skeleton[category + subcategory]) { + skeleton[category + subcategory] = { + component: 'section', + variant: 'card' + }; + } + + skeleton[category + subcategory][key] = result; + } else { + skeleton[category + '_label'] = { + component: 'span', + class: 'satus-section--label', + text: category + }; + + if (!skeleton[category]) { + skeleton[category] = { + component: 'section', + variant: 'card' + }; + } + + skeleton[category][key] = result; + } + } + } + + if (Object.keys(skeleton).length === 0) { + skeleton = { + component: 'section', + variant: 'card', + + span: { + component: 'span', + text: 'noActiveFeatures' + } + }; + } + + satus.render(skeleton, component.parentNode); + + component.remove(); + }); + } + } + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'stroke-width': 1.75 + }, + + path1: { + component: 'path', + attr: { + 'd': 'M22 11.08V12a10 10 0 11-5.93-9.14' + } + }, + path2: { + component: 'path', + attr: { + 'd': 'M22 4L12 14.01l-3-3' + } + } + }, + label: { + component: 'span', + text: 'activeFeatures' + } + }, + settings: { + component: 'button', + category: true, + on: { + click: { + section_1: { + component: 'section', + variant: 'card', + on: { + render: function () { + this.skeleton.parent.parent.parent.rendered.close(); + } + }, + + developer_options: { + component: 'button', + on: { + click: { + custom_js_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'customJs' + }, + custom_js: { + component: 'input', + attr: { + 'type': 'text' + }, + on: { + render: function () { + this.value = satus.storage.get('custom_js') || ''; + }, + input: function () { + satus.storage.set('custom_js', this.value); + } + } + }, + custom_css_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'customCss' + }, + custom_css: { + component: 'input', + attr: { + 'type': 'text' + }, + on: { + render: function () { + this.value = satus.storage.get('custom_css') || ''; + }, + input: function () { + satus.storage.set('custom_css', this.value); + } + } + }, + google_api_key_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'googleApiKey' + }, + google_api_key: { + component: 'input', + attr: { + type: 'text' + }, + on: { + render: function () { + this.value = satus.storage.get('google-api-key') || 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; + }, + input: function () { + var value = this.value; + + if (value.length === 0) { + value = 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; + } + + satus.storage.set('google-api-key', value); + } + } + } + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' + }, + + path: { + component: 'path', + attr: { + 'd': 'M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z' + } + } + }, + label: { + component: 'span', + text: 'developerOptions' + } + }, + }, + section_2: { + component: 'section', + variant: 'card', + + appearance: { + component: 'button', + on: { + click: { + section_label_1: { + component: 'span', + class: 'satus-section--label', + text: 'general' + }, + section_1: { + component: 'section', + variant: 'card', + header: { + component: 'button', + text: 'header', + on: { + click: { + section: { + component: 'section', + variant: 'card', + + title_version: { + component: 'switch', + text: 'version' + } + } + } + } + }, + home: { + component: 'button', + text: 'home', + on: { + click: { + section_1: { + component: 'section', + variant: 'card', + + improvedtube_home: { + component: 'select', + text: 'style', + options: [{ + text: 'bubbles', + value: 'bubbles' + }, { + text: 'list', + value: 'list' + }] + } + }, + section_label_2: { + component: 'span', + class: 'satus-section--label', + text: 'categories' + }, + section_2: { + component: 'section', + variant: 'card', + + it_general: { + component: 'switch', + text: 'general', + value: true + }, + it_appearance: { + component: 'switch', + text: 'appearance', + value: true + }, + it_themes: { + component: 'switch', + text: 'themes', + value: true + }, + it_player: { + component: 'switch', + text: 'player', + value: true + }, + it_playlist: { + component: 'switch', + text: 'playlist', + value: true + }, + it_channel: { + component: 'switch', + text: 'channel', + value: true + }, + it_shortcuts: { + component: 'switch', + text: 'shortcuts', + value: true + }, + it_mixer: { + component: 'switch', + text: 'mixer', + value: true + }, + it_analyzer: { + component: 'switch', + text: 'analyzer', + value: true + }, + it_blacklist: { + component: 'switch', + text: 'blacklist', + value: true + } + } + } + } + } + }, + section_label_2: { + component: 'span', + class: 'satus-section--label', + text: 'icons' + }, + section_2: { + component: 'section', + variant: 'card', + + improvedtube_youtube_icon: { + text: 'improvedtubeIconOnYoutube', + component: 'select', + options: [{ + text: 'disabled', + value: 'disabled' + }, { + text: 'youtubeHeaderLeft', + value: 'header_left' + }, { + text: 'youtubeHeaderRight', + value: 'header_right' + }, { + text: 'sidebar', + value: 'sidebar' + }, { + text: 'draggable', + value: 'draggable' + }, { + text: 'belowPlayer', + value: 'below_player' + }] + } + } + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' + }, + + path: { + component: 'path', + attr: { + 'd': 'M7 16c.6 0 1 .5 1 1a2 2 0 0 1-2 2h-.5a4 4 0 0 0 .5-2c0-.6.5-1 1-1M18.7 3a1 1 0 0 0-.7.3l-9 9 2.8 2.7 9-9c.3-.4.3-1 0-1.4l-1.4-1.3a1 1 0 0 0-.7-.3zM7 14a3 3 0 0 0-3 3c0 1.3-1.2 2-2 2 1 1.2 2.5 2 4 2a4 4 0 0 0 4-4 3 3 0 0 0-3-3z' + } + } + }, + label: { + component: 'span', + text: 'appearance' + } + }, + languages: { + component: 'button', + on: { + click: { + section: { + component: 'section', + variant: 'card', + + language: { + text: 'improvedtubeLanguage', + component: 'select', + on: { + change: function (name, value) { + satus.memory.set('locale', {}); + + satus.locale(function () { + document.querySelector('.satus-main__container').innerHTML = ''; + + document.querySelector('.satus-header__title').innerText = satus.locale.getMessage('languages'); + document.querySelector('#search').placeholder = satus.locale.getMessage('search'); + + satus.render(document.querySelector('.satus-main__container'), skeleton.main.section.settings.section.languages); + }); + } + }, + options: [{ + value: 'en', + text: 'English' + }, { + value: 'ko', + text: '한국어' + }, { + value: 'es', + text: 'Español (España)' + }, { + value: 'ru', + text: 'Русский' + }, { + value: 'de', + text: 'Deutsch' + }, { + value: 'zh_TW', + text: '中文 (繁體)' + }, { + value: 'pt_PT', + text: 'Português' + }, { + value: 'pt_BR', + text: 'Português (Brasil)' + }, { + value: 'zh_CN', + text: '中文 (简体)' + }, { + value: 'fr', + text: 'Français' + }, { + value: 'ja', + text: '日本語' + }, { + value: 'tr', + text: 'Türkçe' + }, { + value: 'it', + text: 'Italiano' + }, { + value: 'nl', + text: 'Nederlands' + }, { + value: 'ar', + text: 'العربية' + }, { + value: 'id', + text: 'Bahasa Indonesia' + }, { + value: 'nb', + text: 'Norsk' + }, { + value: 'nb_NO', + text: 'Norsk (Bokmål)' + }, { + value: 'el', + text: 'Ελληνικά' + }, { + value: 'bn', + text: 'বাংলা' + }, { + value: 'hin', + text: 'हिन्दी' + }, { + value: 'sk', + text: 'Slovenčina' + }, { + value: 'pl', + text: 'Polski' + }] + }, + youtube_language: { + text: 'youtubeLanguage', + component: 'select', + options: [{ + value: 'default', + text: 'default' + }, + { + value: "en", + text: "English" + }, { + value: "es", + text: "Español (España)" + }, { + value: "es-419", + text: "Español (Latinoamérica)" + }, { + value: "es-US", + text: "Español (US)" + }, { + value: "ru", + text: "Русский" + }, { + value: "de", + text: "Deutsch" + }, { + value: "pt-PT", + text: "Português" + }, { + value: "pt", + text: "Português (Brasil)" + }, { + value: "fr", + text: "Français" + }, { + value: "pl", + text: "Polski" + }, { + value: "ja", + text: "日本語" + }, { + value: "af", + text: "Afrikaans" + }, { + value: "az", + text: "Azərbaycan" + }, { + value: "id", + text: "Bahasa Indonesia" + }, { + value: "ms", + text: "Bahasa Malaysia" + }, { + value: "bs", + text: "Bosanski" + }, { + value: "ca", + text: "Català" + }, { + value: "cs", + text: "Čeština" + }, { + value: "da", + text: "Dansk" + }, { + value: "et", + text: "Eesti" + }, { + value: "eu", + text: "Euskara" + }, { + value: "fil", + text: "Filipino" + }, { + value: "fr-CA", + text: "Français (Canada)" + }, { + value: "gl", + text: "Galego" + }, { + value: "hr", + text: "Hrvatski" + }, { + value: "zu", + text: "IsiZulu" + }, { + value: "is", + text: "Íslenska" + }, { + value: "it", + text: "Italiano" + }, { + value: "sw", + text: "Kiswahili" + }, { + value: "lv", + text: "Latviešu valoda" + }, { + value: "lt", + text: "Lietuvių" + }, { + value: "hu", + text: "Magyar" + }, { + value: "nl", + text: "Nederlands" + }, { + value: "no", + text: "Norsk" + }, { + value: "uz", + text: "O‘zbek" + }, { + value: "ro", + text: "Română" + }, { + value: "sq", + text: "Shqip" + }, { + value: "sk", + text: "Slovenčina" + }, { + value: "sl", + text: "Slovenščina" + }, { + value: "sr-Latn", + text: "Srpski" + }, { + value: "fi", + text: "Suomi" + }, { + value: "sv", + text: "Svenska" + }, { + value: "vi", + text: "Tiếng Việt" + }, { + value: "tr", + text: "Türkçe" + }, { + value: "be", + text: "Беларуская" + }, { + value: "bg", + text: "Български" + }, { + value: "ky", + text: "Кыргызча" + }, { + value: "kk", + text: "Қазақ Тілі" + }, { + value: "mk", + text: "Македонски" + }, { + value: "mn", + text: "Монгол" + }, { + value: "sr", + text: "Српски" + }, { + value: "uk", + text: "Українська" + }, { + value: "el", + text: "Ελληνικά" + }, { + value: "hy", + text: "Հայերեն" + }, { + value: "iw", + text: "עברית" + }, { + value: "ur", + text: "اردو" + }, { + value: "ar", + text: "العربية" + }, { + value: "fa", + text: "فارسی" + }, { + value: "ne", + text: "नेपाली" + }, { + value: "mr", + text: "मराठी" + }, { + value: "hi", + text: "हिन्दी" + }, { + value: "bn", + text: "বাংলা" + }, { + value: "pa", + text: "ਪੰਜਾਬੀ" + }, { + value: "gu", + text: "ગુજરાતી" + }, { + value: "ta", + text: "தமிழ்" + }, { + value: "te", + text: "తెలుగు" + }, { + value: "kn", + text: "ಕನ್ನಡ" + }, { + value: "ml", + text: "മലയാളം" + }, { + value: "si", + text: "සිංහල" + }, { + value: "th", + text: "ภาษาไทย" + }, { + value: "lo", + text: "ລາວ" + }, { + value: "my", + text: "ဗမာ" + }, { + value: "ka", + text: "ქართული" + }, { + value: "am", + text: "አማርኛ" + }, { + value: "km", + text: "ខ្មែរ" + }, { + value: "zh-CN", + text: "中文 (简体)" + }, { + value: "zh-TW", + text: "中文 (繁體)" + }, { + value: "zh-HK", + text: "中文 (香港)" + }, { + value: "ko", + text: "한국어" + } + ] + } + } + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' + }, + + path: { + component: 'path', + attr: { + 'd': 'M12.9 15l-2.6-2.4c1.8-2 3-4.2 3.8-6.6H17V4h-7V2H8v2H1v2h11.2c-.7 2-1.8 3.8-3.2 5.3-1-1-1.7-2.1-2.3-3.3h-2c.7 1.6 1.7 3.2 3 4.6l-5.1 5L4 19l5-5 3.1 3.1.8-2zm5.6-5h-2L12 22h2l1.1-3H20l1.1 3h2l-4.5-12zm-2.6 7l1.6-4.3 1.6 4.3H16z' + } + } + }, + label: { + component: 'span', + text: 'languages' + } + }, + backup_and_reset: { + component: 'button', + on: { + click: { + section: { + component: 'section', + variant: 'card', + + import_settings: { + component: 'button', + text: 'importSettings', + on: { + click: function () { + if (location.href.indexOf('/options.html?action=import') !== -1) { + importData(); + } else { + chrome.tabs.create({ + url: chrome.runtime.getURL('ui/options.html?action=import') + }); + } + } + } + }, + export_settings: { + component: 'button', + text: 'exportSettings', + on: { + click: function () { + if (location.href.indexOf('/options.html?action=export') !== -1) { + exportData(); + } else { + chrome.tabs.create({ + url: chrome.runtime.getURL('ui/options.html?action=export') + }); + } + } + } + }, + reset_all_settings: { + component: 'button', + text: 'resetAllSettings', + on: { + click: { + component: 'modal', + + message: { + component: 'span', + text: 'thisWillResetAllSettings' + }, + section: { + component: 'section', + variant: 'actions', + + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.parentNode.parentNode.parentNode.close(); + } + } + }, + accept: { + component: 'button', + text: 'accept', + on: { + click: function () { + satus.storage.clear(); + + this.parentNode.parentNode.parentNode.close(); + } + } + } + } + } + } + }, + delete_youtube_cookies: { + component: 'button', + text: 'deleteYoutubeCookies', + + on: { + click: { + component: 'modal', + + message: { + component: 'span', + text: 'thisWillRemoveAllYouTubeCookies' + }, + section: { + component: 'section', + variant: 'actions', + + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.parentNode.parentNode.parentNode.close(); + } + } + }, + accept: { + component: 'button', + text: 'accept', + on: { + click: function () { + chrome.tabs.query({}, function (tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + action: 'delete-youtube-cookies' + }); + } + } + }); + + this.parentNode.parentNode.parentNode.close(); + } + } + } + } + } + } + } + } + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' + }, + + path: { + component: 'path', + attr: { + 'd': 'M13.3 3A9 9 0 0 0 4 12H2.2c-.5 0-.7.5-.3.8l2.7 2.8c.2.2.6.2.8 0L8 12.8c.4-.3.1-.8-.3-.8H6a7 7 0 1 1 2.7 5.5 1 1 0 0 0-1.3.1 1 1 0 0 0 0 1.5A9 9 0 0 0 22 11.7C22 7 18 3.1 13.4 3zm-.6 5c-.4 0-.7.3-.7.8v3.6c0 .4.2.7.5.9l3.1 1.8c.4.2.8.1 1-.2.2-.4.1-.8-.2-1l-3-1.8V8.7c0-.4-.2-.7-.7-.7z' + } + } + }, + label: { + component: 'span', + text: 'backupAndReset' + } + }, + date_and_time: { + component: 'button', + on: { + click: { + section: { + component: 'section', + variant: 'card', + + use_24_hour_format: { + component: 'switch', + text: 'use24HourFormat', + value: true + } + } + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' + }, + + path: { + component: 'path', + attr: { + 'd': 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm-.2-13c-.5 0-.8.3-.8.7v4.7c0 .4.2.7.5.9l4.1 2.5c.4.2.8 0 1-.3.2-.3.1-.7-.2-1l-3.9-2.2V7.7c0-.4-.3-.7-.7-.7z' + } + } + }, + label: { + component: 'span', + text: 'dateAndTime' + } + }, + location: { + component: 'button', + on: { + click: { + section: { + component: 'section', + variant: 'card', + + default_content_country: { + component: 'select', + text: 'defaultContentCountry', + + options: [{ + text: "default", + value: "default" + }, + { + text: "Afghanistan", + value: "AF" + }, + { + text: "Albania", + value: "AL" + }, + { + text: "Algeria", + value: "DZ" + }, + { + text: "American Samoa", + value: "AS" + }, + { + text: "Andorra", + value: "AD" + }, + { + text: "Angola", + value: "AO" + }, + { + text: "Anguilla", + value: "AI" + }, + { + text: "Antarctica", + value: "AQ" + }, + { + text: "Antigua and Barbuda", + value: "AG" + }, + { + text: "Argentina", + value: "AR" + }, + { + text: "Armenia", + value: "AM" + }, + { + text: "Aruba", + value: "AW" + }, + { + text: "Australia", + value: "AU" + }, + { + text: "Austria", + value: "AT" + }, + { + text: "Azerbaijan", + value: "AZ" + }, + { + text: "Bahrain", + value: "BH" + }, + { + text: "Bailiwick of Guernsey", + value: "GG" + }, + { + text: "Bangladesh", + value: "BD" + }, + { + text: "Barbados", + value: "BB" + }, + { + text: "Belarus", + value: "BY" + }, + { + text: "Belgium", + value: "BE" + }, + { + text: "Belize", + value: "BZ" + }, + { + text: "Benin", + value: "BJ" + }, + { + text: "Bermuda", + value: "BM" + }, + { + text: "Bhutan", + value: "BT" + }, + { + text: "Bolivia", + value: "BO" + }, + { + text: "Bonaire", + value: "BQ" + }, + { + text: "Bosnia and Herzegovina", + value: "BA" + }, + { + text: "Botswana", + value: "BW" + }, + { + text: "Bouvet Island", + value: "BV" + }, + { + text: "Brazil", + value: "BR" + }, + { + text: "British Indian Ocean Territory", + value: "IO" + }, + { + text: "British Virgin Islands", + value: "VG" + }, + { + text: "Brunei", + value: "BN" + }, + { + text: "Bulgaria", + value: "BG" + }, + { + text: "Burkina Faso", + value: "BF" + }, + { + text: "Burundi", + value: "BI" + }, + { + text: "Cambodia", + value: "KH" + }, + { + text: "Cameroon", + value: "CM" + }, + { + text: "Canada", + value: "CA" + }, + { + text: "Cape Verde", + value: "CV" + }, + { + text: "Cayman Islands", + value: "KY" + }, + { + text: "Central African Republic", + value: "CF" + }, + { + text: "Chad", + value: "TD" + }, + { + text: "Chile", + value: "CL" + }, + { + text: "China", + value: "CN" + }, + { + text: "Christmas Island", + value: "CX" + }, + { + text: "Cocos (Keeling) Islands", + value: "CC" + }, + { + text: "Collectivity of Saint Martin", + value: "MF" + }, + { + text: "Colombia", + value: "CO" + }, + { + text: "Comoros", + value: "KM" + }, + { + text: "Cook Islands", + value: "CK" + }, + { + text: "Costa Rica", + value: "CR" + }, + { + text: "Croatia", + value: "HR" + }, + { + text: "Cuba", + value: "CU" + }, + { + text: "Curaçao", + value: "CW" + }, + { + text: "Cyprus", + value: "CY" + }, + { + text: "Czech Republic", + value: "CZ" + }, + { + text: "Democratic Republic of the Congo", + value: "CD" + }, + { + text: "Denmark", + value: "DK" + }, + { + text: "Djibouti", + value: "DJ" + }, + { + text: "Dominica", + value: "DM" + }, + { + text: "Dominican Republic", + value: "DO" + }, + { + text: "East Timor", + value: "TL" + }, + { + text: "Ecuador", + value: "EC" + }, + { + text: "Egypt", + value: "EG" + }, + { + text: "El Salvador", + value: "SV" + }, + { + text: "Equatorial Guinea", + value: "GQ" + }, + { + text: "Eritrea", + value: "ER" + }, + { + text: "Estonia", + value: "EE" + }, + { + text: "Eswatini", + value: "SZ" + }, + { + text: "Ethiopia", + value: "ET" + }, + { + text: "Falkland Islands", + value: "FK" + }, + { + text: "Faroe Islands", + value: "FO" + }, + { + text: "Federated States of Micronesia", + value: "FM" + }, + { + text: "Fiji", + value: "FJ" + }, + { + text: "Finland", + value: "FI" + }, + { + text: "France", + value: "FR" + }, + { + text: "French Guiana", + value: "GF" + }, + { + text: "French Polynesia", + value: "PF" + }, + { + text: "French Southern and Antarctic Lands", + value: "TF" + }, + { + text: "Gabon", + value: "GA" + }, + { + text: "Georgia (country)", + value: "GE" + }, + { + text: "Germany", + value: "DE" + }, + { + text: "Ghana", + value: "GH" + }, + { + text: "Gibraltar", + value: "GI" + }, + { + text: "Greece", + value: "GR" + }, + { + text: "Greenland", + value: "GL" + }, + { + text: "Grenada", + value: "GD" + }, + { + text: "Guadeloupe", + value: "GP" + }, + { + text: "Guam", + value: "GU" + }, + { + text: "Guatemala", + value: "GT" + }, + { + text: "Guinea", + value: "GN" + }, + { + text: "Guinea-Bissau", + value: "GW" + }, + { + text: "Guyana", + value: "GY" + }, + { + text: "Haiti", + value: "HT" + }, + { + text: "Heard Island and McDonald Islands", + value: "HM" + }, + { + text: "Holy See", + value: "VA" + }, + { + text: "Honduras", + value: "HN" + }, + { + text: "Hong Kong", + value: "HK" + }, + { + text: "Hungary", + value: "HU" + }, + { + text: "Iceland", + value: "IS" + }, + { + text: "India", + value: "IN" + }, + { + text: "Indonesia", + value: "ID" + }, + { + text: "Iran", + value: "IR" + }, + { + text: "Iraq", + value: "IQ" + }, + { + text: "Isle of Man", + value: "IM" + }, + { + text: "Israel", + value: "IL" + }, + { + text: "Italy", + value: "IT" + }, + { + text: "Ivory Coast", + value: "CI" + }, + { + text: "Jamaica", + value: "JM" + }, + { + text: "Japan", + value: "JP" + }, + { + text: "Jersey", + value: "JE" + }, + { + text: "Jordan", + value: "JO" + }, + { + text: "Kazakhstan", + value: "KZ" + }, + { + text: "Kenya", + value: "KE" + }, + { + text: "Kiribati", + value: "KI" + }, + { + text: "Kuwait", + value: "KW" + }, + { + text: "Kyrgyzstan", + value: "KG" + }, + { + text: "Laos", + value: "LA" + }, + { + text: "Latvia", + value: "LV" + }, + { + text: "Lebanon", + value: "LB" + }, + { + text: "Lesotho", + value: "LS" + }, + { + text: "Liberia", + value: "LR" + }, + { + text: "Libya", + value: "LY" + }, + { + text: "Liechtenstein", + value: "LI" + }, + { + text: "Lithuania", + value: "LT" + }, + { + text: "Luxembourg", + value: "LU" + }, + { + text: "Macau", + value: "MO" + }, + { + text: "Madagascar", + value: "MG" + }, + { + text: "Malawi", + value: "MW" + }, + { + text: "Malaysia", + value: "MY" + }, + { + text: "Maldives", + value: "MV" + }, + { + text: "Mali", + value: "ML" + }, + { + text: "Malta", + value: "MT" + }, + { + text: "Marshall Islands", + value: "MH" + }, + { + text: "Martinique", + value: "MQ" + }, + { + text: "Mauritania", + value: "MR" + }, + { + text: "Mauritius", + value: "MU" + }, + { + text: "Mayotte", + value: "YT" + }, + { + text: "Mexico", + value: "MX" + }, + { + text: "Moldova", + value: "MD" + }, + { + text: "Monaco", + value: "MC" + }, + { + text: "Mongolia", + value: "MN" + }, + { + text: "Montenegro", + value: "ME" + }, + { + text: "Montserrat", + value: "MS" + }, + { + text: "Morocco", + value: "MA" + }, + { + text: "Mozambique", + value: "MZ" + }, + { + text: "Myanmar", + value: "MM" + }, + { + text: "Namibia", + value: "NA" + }, + { + text: "Nauru", + value: "NR" + }, + { + text: "Nepal", + value: "NP" + }, + { + text: "Netherlands", + value: "NL" + }, + { + text: "New Caledonia", + value: "NC" + }, + { + text: "New Zealand", + value: "NZ" + }, + { + text: "Nicaragua", + value: "NI" + }, + { + text: "Niger", + value: "NE" + }, + { + text: "Nigeria", + value: "NG" + }, + { + text: "Niue", + value: "NU" + }, + { + text: "Norfolk Island", + value: "NF" + }, + { + text: "North Korea", + value: "KP" + }, + { + text: "North Macedonia", + value: "MK" + }, + { + text: "Northern Mariana Islands", + value: "MP" + }, + { + text: "Norway", + value: "NO" + }, + { + text: "Oman", + value: "OM" + }, + { + text: "Pakistan", + value: "PK" + }, + { + text: "Palau", + value: "PW" + }, + { + text: "Panama", + value: "PA" + }, + { + text: "Papua New Guinea", + value: "PG" + }, + { + text: "Paraguay", + value: "PY" + }, + { + text: "Peru", + value: "PE" + }, + { + text: "Philippines", + value: "PH" + }, + { + text: "Pitcairn Islands", + value: "PN" + }, + { + text: "Poland", + value: "PL" + }, + { + text: "Portugal", + value: "PT" + }, + { + text: "Puerto Rico", + value: "PR" + }, + { + text: "Qatar", + value: "QA" + }, + { + text: "Republic of Ireland", + value: "IE" + }, + { + text: "Republic of the Congo", + value: "CG" + }, + { + text: "Romania", + value: "RO" + }, + { + text: "Russia", + value: "RU" + }, + { + text: "Rwanda", + value: "RW" + }, + { + text: "Réunion", + value: "RE" + }, + { + text: "Saint Barthélemy", + value: "BL" + }, + { + text: "Saint Helena", + value: "SH" + }, + { + text: "Saint Kitts and Nevis", + value: "KN" + }, + { + text: "Saint Lucia", + value: "LC" + }, + { + text: "Saint Pierre and Miquelon", + value: "PM" + }, + { + text: "Saint Vincent and the Grenadines", + value: "VC" + }, + { + text: "Samoa", + value: "WS" + }, + { + text: "San Marino", + value: "SM" + }, + { + text: "Saudi Arabia", + value: "SA" + }, + { + text: "Senegal", + value: "SN" + }, + { + text: "Serbia", + value: "RS" + }, + { + text: "Seychelles", + value: "SC" + }, + { + text: "Sierra Leone", + value: "SL" + }, + { + text: "Singapore", + value: "SG" + }, + { + text: "Sint Maarten", + value: "SX" + }, + { + text: "Slovakia", + value: "SK" + }, + { + text: "Slovenia", + value: "SI" + }, + { + text: "Solomon Islands", + value: "SB" + }, + { + text: "Somalia", + value: "SO" + }, + { + text: "South Africa", + value: "ZA" + }, + { + text: "South Georgia and the South Sandwich Islands", + value: "GS" + }, + { + text: "South Korea", + value: "KR" + }, + { + text: "South Sudan", + value: "SS" + }, + { + text: "Spain", + value: "ES" + }, + { + text: "Sri Lanka", + value: "LK" + }, + { + text: "State of Palestine", + value: "PS" + }, + { + text: "Sudan", + value: "SD" + }, + { + text: "Suriname", + value: "SR" + }, + { + text: "Svalbard", + value: "SJ" + }, + { + text: "Sweden", + value: "SE" + }, + { + text: "Switzerland", + value: "CH" + }, + { + text: "Syria", + value: "SY" + }, + { + text: "São Tomé and Príncipe", + value: "ST" + }, + { + text: "Taiwan", + value: "TW" + }, + { + text: "Tajikistan", + value: "TJ" + }, + { + text: "Tanzania", + value: "TZ" + }, + { + text: "Thailand", + value: "TH" + }, + { + text: "The Bahamas", + value: "BS" + }, + { + text: "The Gambia", + value: "GM" + }, + { + text: "Togo", + value: "TG" + }, + { + text: "Tokelau", + value: "TK" + }, + { + text: "Tonga", + value: "TO" + }, + { + text: "Trinidad and Tobago", + value: "TT" + }, + { + text: "Tunisia", + value: "TN" + }, + { + text: "Turkey", + value: "TR" + }, + { + text: "Turkmenistan", + value: "TM" + }, + { + text: "Turks and Caicos Islands", + value: "TC" + }, + { + text: "Tuvalu", + value: "TV" + }, + { + text: "Uganda", + value: "UG" + }, + { + text: "Ukraine", + value: "UA" + }, + { + text: "United Arab Emirates", + value: "AE" + }, + { + text: "United Kingdom", + value: "GB" + }, + { + text: "United States Virgin Islands", + value: "VI" + }, + { + text: "United States", + value: "UM" + }, + { + text: "United States", + value: "US" + }, + { + text: "Uruguay", + value: "UY" + }, + { + text: "Uzbekistan", + value: "UZ" + }, + { + text: "Vanuatu", + value: "VU" + }, + { + text: "Venezuela", + value: "VE" + }, + { + text: "Vietnam", + value: "VN" + }, + { + text: "Wallis and Futuna", + value: "WF" + }, + { + text: "Western Sahara", + value: "EH" + }, + { + text: "Yemen", + value: "YE" + }, + { + text: "Zambia", + value: "ZM" + }, + { + text: "Zimbabwe", + value: "ZW" + }, + { + text: "Åland Islands", + value: "AX" + } + ] + } + } + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' + }, + + circle: { + component: 'circle', + attr: { + 'cx': '12', + 'cy': '9', + 'r': '2.5' + } + }, + path: { + component: 'path', + attr: { + 'd': 'M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z' + } + } + }, + label: { + component: 'span', + text: 'location' + } + }, + about: { + component: 'button', + on: { + click: { + component: 'span', + + on: { + render: function () { + var component = this, + manifest = chrome.runtime.getManifest(), + user = satus.user(), + skeleton_about = { + extension_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'extension' + }, + extension_section: { + component: 'section', + variant: 'card', + + list: { + component: 'list', + items: [ + ['version', manifest.version], + ['permissions', manifest.permissions.join(', ').replace('https://www.youtube.com/', 'YouTube')] + ] + } + }, + browser_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'browser' + }, + browser_section: { + component: 'section', + variant: 'card', + + list: { + component: 'list', + items: [ + ['name', user.browser.name], + ['version', user.browser.version], + ['platform', user.browser.platform], + ['videoFormats', { + component: 'span', + on: { + render: function () { + var formats = []; + + for (var key in user.browser.video) { + if (user.browser.video[key] !== false) { + formats.push(key); + } + } + + this.textContent = formats.join(', '); + } + } + }], + ['audioFormats', { + component: 'span', + on: { + render: function () { + var formats = []; + + for (var key in user.browser.audio) { + if (user.browser.audio[key] !== false) { + formats.push(key); + } + } + + this.textContent = formats.join(', '); + } + } + }], + ['flash', !!user.browser.flash ? 'true' : 'false'] + ] + } + }, + os_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'os' + }, + os_section: { + component: 'section', + variant: 'card', + + list: { + component: 'list', + items: [ + ['name', user.os.name], + ['type', user.os.type] + ] + } + }, + device_section_label: { + component: 'span', + class: 'satus-section--label', + text: 'device' + }, + device_section: { + component: 'section', + variant: 'card', + + list: { + component: 'list', + items: [ + ['screen', user.device.screen], + ['cores', user.device.cores], + ['gpu', user.device.gpu], + ['ram', user.device.ram] + ] + } + } + }; + + setTimeout(function () { + satus.render(skeleton_about, component.parentNode); + + component.remove(); + }); + } + } + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' + }, + + path: { + component: 'path', + attr: { + 'd': 'M11 7h2v2h-2zm0 4h2v6h-2zm1-9a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16z' + } + } + }, + label: { + component: 'span', + text: 'about' + } + } + }, + email: { + component: 'button', + class: 'satus-button--email', + category: true, + text: 'Bugs@improvedtube.com', + on: { + click: function () { + window.open('mailto:bugs@improvedtube.com', '_blank'); + } + } + } + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'stroke-width': '1.75' + }, + + circle: { + component: 'circle', + attr: { + 'cx': '12', + 'cy': '12', + 'r': '3' + } + }, + path: { + component: 'path', + attr: { + 'd': 'M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 010 2.83 2 2 0 01-2.83 0l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-2 2 2 2 0 01-2-2v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83 0 2 2 0 010-2.83l.06-.06a1.65 1.65 0 00.33-1.82 1.65 1.65 0 00-1.51-1H3a2 2 0 01-2-2 2 2 0 012-2h.09A1.65 1.65 0 004.6 9a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 010-2.83 2 2 0 012.83 0l.06.06a1.65 1.65 0 001.82.33H9a1.65 1.65 0 001-1.51V3a2 2 0 012-2 2 2 0 012 2v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 0 2 2 0 010 2.83l-.06.06a1.65 1.65 0 00-.33 1.82V9a1.65 1.65 0 001.51 1H21a2 2 0 012 2 2 2 0 01-2 2h-.09a1.65 1.65 0 00-1.51 1z' + } + } + }, + label: { + component: 'span', + text: 'settings' + } + }, + mixer: { + component: 'button', + on: { + click: { + component: 'section', + on: { + render: function () { + var component = this; + + this.skeleton.parent.parent.rendered.close(); + + if (chrome && chrome.tabs) { + chrome.tabs.query({}, function (tabs) { + var mixer = { + component: 'section', + variant: 'card', + parent: component.skeleton, + + message: { + component: 'span', + text: 'noOpenVideoTabs' + } + }; + + for (var i = 0, l = tabs.length; i < l; i++) { + var tab = tabs[i]; + + chrome.tabs.sendMessage(tab.id, { + action: 'mixer' + }, function (response) { + if (response) { + if (mixer) { + var parent = mixer.rendered.parentNode; + + mixer.rendered.remove(); + + mixer = parent; + } + + console.log(response.volume); + + satus.render({ + component: 'section', + class: 'satus-section--mixer', + style: { + 'background': 'url(https://img.youtube.com/vi/' + response.url + '/0.jpg) center center / cover no-repeat #000', + }, + + title: { + component: 'h1', + text: response.title + }, + section: { + component: 'section', + data: { + 'noConnectionLabel': satus.locale.get('tryToReloadThePage') || 'tryToReloadThePage' + }, + + mixer_volume: { + component: 'slider', + text: 'volume', + data: { + id: response.tabId + }, + storage: false, + max: 100, + value: response.volume, + on: { + change: function () { + chrome.tabs.sendMessage(Number(this.dataset.id), { + action: 'set-volume', + value: this.value + }); + } + } + }, + mixer_playback_speed: { + component: 'slider', + text: 'playbackSpeed', + data: { + id: response.tabId + }, + storage: false, + min: .1, + max: 8, + step: .05, + value: response.playbackSpeed, + on: { + change: function () { + chrome.tabs.sendMessage(Number(this.dataset.id), { + action: 'set-playback-speed', + value: this.value + }); + } + } + } + } + }, mixer); + } + }); + } + + satus.render(mixer, component.parentNode); + + component.remove(); + }); + } + } + } + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'stroke-width': '1.75' + }, + + path: { + component: 'path', + attr: { + 'd': 'M11 5L6 9H2v6h4l5 4V5zM19.07 4.93a10 10 0 010 14.14M15.54 8.46a5 5 0 010 7.07' + } + } + }, + label: { + component: 'span', + text: 'mixer' + } + } + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'stroke-width': '2' + }, + + circle1: { + component: 'circle', + attr: { + 'cx': '12', + 'cy': '5.25', + 'r': '0.45' + } + }, + circle2: { + component: 'circle', + attr: { + 'cx': '12', + 'cy': '12', + 'r': '0.45' + } + }, + circle3: { + component: 'circle', + attr: { + 'cx': '12', + 'cy': '18.75', + 'r': '0.45' + } + } + } + } + } + }, + layers: { + component: 'layers', + on: { + open: function () { + var skeleton = this.path[this.path.length - 1], + parent = skeleton.parent, + section = this.base.skeleton.header.section_start, + title = 'ImprovedTube'; + + if (parent) { + if (parent.label) { + title = parent.label.text; + } else if (parent.text) { + title = parent.text; + } + } + + section.back.rendered.hidden = this.path.length <= 1; + section.title.rendered.innerText = satus.locale.get(title); + } + }, + + section: { + component: 'section', + variant: 'home', + + general: { + component: 'button', + variant: 'general', + category: true, + on: { + click: { + component: 'section', + variant: 'card', + + youtube_home_page: { + component: 'select', + text: 'youtubeHomePage', + options: [{ + text: 'home', + value: '/' + }, { + text: 'trending', + value: '/feed/trending' + }, { + text: 'subscriptions', + value: '/feed/subscriptions' + }, { + text: 'history', + value: '/feed/history' + }, { + text: 'watchLater', + value: '/playlist?list=WL' + }, { + text: 'search', + value: 'search' + }, { + text: 'liked', + value: '/playlist?list=LL' + }, { + text: 'library', + value: '/feed/library' + }], + tags: 'trending,subscriptions,history,watch,search' + }, + collapse_of_subscription_sections: { + component: 'switch', + text: 'collapseOfSubscriptionSections' + }, + remove_related_search_results: { + component: 'switch', + text: 'removeRelatedSearchResults' + }, + mark_watched_videos: { + component: 'switch', + text: 'markWatchedVideos', + on: { + click: function () { + if (satus.storage.get('mark_watched_videos')) { + if (!satus.storage.get('track_watched_videos')) { + this.nextSibling.click(); + } + } + } + } + }, + popup_window_buttons: { + component: 'switch', + text: 'popupWindowButtons', + }, + track_watched_videos: { + component: 'switch', + text: 'trackWatchedVideos' + }, + delete_watched_videos: { + component: 'button', + style: { + 'justifyContent': 'space-between' + }, + on: { + click: { + component: 'modal', + variant: 'confirm', + + message: { + component: 'span', + text: 'thisWillRemoveAllWatchedVideos', + style: { + 'width': '100%', + 'opacity': '.8' + } + }, + section: { + component: 'section', + variant: 'actions', + + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.parentNode.parentNode.parentNode.close(); + } + } + }, + accept: { + component: 'button', + text: 'accept', + on: { + click: function () { + var modal = this.parentNode.parentNode.parentNode; + + satus.storage.set('watched', {}); + + console.log(modal.skeleton); + + modal.skeleton.parent.counter.rendered.textContent = '0'; + + modal.close(); + } + } + } + } + } + }, + + label: { + component: 'span', + text: 'deleteWatchedVideos' + }, + counter: { + component: 'span', + style: { + opacity: .75 + }, + on: { + render: function () { + var watched = satus.storage.get('watched'); + + if (watched) { + this.textContent = Object.keys(watched).length; + } else { + this.textContent = '0'; + } + } + } + } + }, + only_one_player_instance_playing: { + component: 'switch', + text: 'onlyOnePlayerInstancePlaying' + }, + confirmation_before_closing: { + component: 'switch', + text: 'confirmationBeforeClosing', + tags: 'random prevent close exit' + }, + add_scroll_to_top: { + component: 'switch', + text: 'addScrollToTop', + tags: 'up' + }, + limit_page_width: { + component: 'switch', + text: 'limitPageWidth', + value: true + }, + squared_user_images: { + component: 'switch', + text: 'squaredUserImages', + tags: 'avatar' + }, + thumbnails_quality: { + component: 'select', + text: 'thumbnailsQuality', + options: [{ + text: 'default', + value: 'null' + }, { + text: 'low', + value: 'default' + }, { + text: 'medium', + value: 'mqdefault' + }, { + text: 'high', + value: 'hqdefault' + }, { + text: 'sd', + value: 'sddefault' + }, { + text: 'hd', + value: 'maxresdefault' + }], + tags: 'preview quality' + }, + hide_animated_thumbnails: { + component: 'switch', + text: 'hideAnimatedThumbnails', + tags: 'preview' + }, + hide_thumbnail_overlay: { + component: 'switch', + text: 'hideThumbnailOverlay', + tags: 'preview' + }, + default_content_country: { + component: 'select', + text: 'defaultContentCountry', + + options: [{ + text: "default", + value: "default" + }, + { + text: "Afghanistan", + value: "AF" + }, + { + text: "Albania", + value: "AL" + }, + { + text: "Algeria", + value: "DZ" + }, + { + text: "American Samoa", + value: "AS" + }, + { + text: "Andorra", + value: "AD" + }, + { + text: "Angola", + value: "AO" + }, + { + text: "Anguilla", + value: "AI" + }, + { + text: "Antarctica", + value: "AQ" + }, + { + text: "Antigua and Barbuda", + value: "AG" + }, + { + text: "Argentina", + value: "AR" + }, + { + text: "Armenia", + value: "AM" + }, + { + text: "Aruba", + value: "AW" + }, + { + text: "Australia", + value: "AU" + }, + { + text: "Austria", + value: "AT" + }, + { + text: "Azerbaijan", + value: "AZ" + }, + { + text: "Bahrain", + value: "BH" + }, + { + text: "Bailiwick of Guernsey", + value: "GG" + }, + { + text: "Bangladesh", + value: "BD" + }, + { + text: "Barbados", + value: "BB" + }, + { + text: "Belarus", + value: "BY" + }, + { + text: "Belgium", + value: "BE" + }, + { + text: "Belize", + value: "BZ" + }, + { + text: "Benin", + value: "BJ" + }, + { + text: "Bermuda", + value: "BM" + }, + { + text: "Bhutan", + value: "BT" + }, + { + text: "Bolivia", + value: "BO" + }, + { + text: "Bonaire", + value: "BQ" + }, + { + text: "Bosnia and Herzegovina", + value: "BA" + }, + { + text: "Botswana", + value: "BW" + }, + { + text: "Bouvet Island", + value: "BV" + }, + { + text: "Brazil", + value: "BR" + }, + { + text: "British Indian Ocean Territory", + value: "IO" + }, + { + text: "British Virgin Islands", + value: "VG" + }, + { + text: "Brunei", + value: "BN" + }, + { + text: "Bulgaria", + value: "BG" + }, + { + text: "Burkina Faso", + value: "BF" + }, + { + text: "Burundi", + value: "BI" + }, + { + text: "Cambodia", + value: "KH" + }, + { + text: "Cameroon", + value: "CM" + }, + { + text: "Canada", + value: "CA" + }, + { + text: "Cape Verde", + value: "CV" + }, + { + text: "Cayman Islands", + value: "KY" + }, + { + text: "Central African Republic", + value: "CF" + }, + { + text: "Chad", + value: "TD" + }, + { + text: "Chile", + value: "CL" + }, + { + text: "China", + value: "CN" + }, + { + text: "Christmas Island", + value: "CX" + }, + { + text: "Cocos (Keeling) Islands", + value: "CC" + }, + { + text: "Collectivity of Saint Martin", + value: "MF" + }, + { + text: "Colombia", + value: "CO" + }, + { + text: "Comoros", + value: "KM" + }, + { + text: "Cook Islands", + value: "CK" + }, + { + text: "Costa Rica", + value: "CR" + }, + { + text: "Croatia", + value: "HR" + }, + { + text: "Cuba", + value: "CU" + }, + { + text: "Curaçao", + value: "CW" + }, + { + text: "Cyprus", + value: "CY" + }, + { + text: "Czech Republic", + value: "CZ" + }, + { + text: "Democratic Republic of the Congo", + value: "CD" + }, + { + text: "Denmark", + value: "DK" + }, + { + text: "Djibouti", + value: "DJ" + }, + { + text: "Dominica", + value: "DM" + }, + { + text: "Dominican Republic", + value: "DO" + }, + { + text: "East Timor", + value: "TL" + }, + { + text: "Ecuador", + value: "EC" + }, + { + text: "Egypt", + value: "EG" + }, + { + text: "El Salvador", + value: "SV" + }, + { + text: "Equatorial Guinea", + value: "GQ" + }, + { + text: "Eritrea", + value: "ER" + }, + { + text: "Estonia", + value: "EE" + }, + { + text: "Eswatini", + value: "SZ" + }, + { + text: "Ethiopia", + value: "ET" + }, + { + text: "Falkland Islands", + value: "FK" + }, + { + text: "Faroe Islands", + value: "FO" + }, + { + text: "Federated States of Micronesia", + value: "FM" + }, + { + text: "Fiji", + value: "FJ" + }, + { + text: "Finland", + value: "FI" + }, + { + text: "France", + value: "FR" + }, + { + text: "French Guiana", + value: "GF" + }, + { + text: "French Polynesia", + value: "PF" + }, + { + text: "French Southern and Antarctic Lands", + value: "TF" + }, + { + text: "Gabon", + value: "GA" + }, + { + text: "Georgia (country)", + value: "GE" + }, + { + text: "Germany", + value: "DE" + }, + { + text: "Ghana", + value: "GH" + }, + { + text: "Gibraltar", + value: "GI" + }, + { + text: "Greece", + value: "GR" + }, + { + text: "Greenland", + value: "GL" + }, + { + text: "Grenada", + value: "GD" + }, + { + text: "Guadeloupe", + value: "GP" + }, + { + text: "Guam", + value: "GU" + }, + { + text: "Guatemala", + value: "GT" + }, + { + text: "Guinea", + value: "GN" + }, + { + text: "Guinea-Bissau", + value: "GW" + }, + { + text: "Guyana", + value: "GY" + }, + { + text: "Haiti", + value: "HT" + }, + { + text: "Heard Island and McDonald Islands", + value: "HM" + }, + { + text: "Holy See", + value: "VA" + }, + { + text: "Honduras", + value: "HN" + }, + { + text: "Hong Kong", + value: "HK" + }, + { + text: "Hungary", + value: "HU" + }, + { + text: "Iceland", + value: "IS" + }, + { + text: "India", + value: "IN" + }, + { + text: "Indonesia", + value: "ID" + }, + { + text: "Iran", + value: "IR" + }, + { + text: "Iraq", + value: "IQ" + }, + { + text: "Isle of Man", + value: "IM" + }, + { + text: "Israel", + value: "IL" + }, + { + text: "Italy", + value: "IT" + }, + { + text: "Ivory Coast", + value: "CI" + }, + { + text: "Jamaica", + value: "JM" + }, + { + text: "Japan", + value: "JP" + }, + { + text: "Jersey", + value: "JE" + }, + { + text: "Jordan", + value: "JO" + }, + { + text: "Kazakhstan", + value: "KZ" + }, + { + text: "Kenya", + value: "KE" + }, + { + text: "Kiribati", + value: "KI" + }, + { + text: "Kuwait", + value: "KW" + }, + { + text: "Kyrgyzstan", + value: "KG" + }, + { + text: "Laos", + value: "LA" + }, + { + text: "Latvia", + value: "LV" + }, + { + text: "Lebanon", + value: "LB" + }, + { + text: "Lesotho", + value: "LS" + }, + { + text: "Liberia", + value: "LR" + }, + { + text: "Libya", + value: "LY" + }, + { + text: "Liechtenstein", + value: "LI" + }, + { + text: "Lithuania", + value: "LT" + }, + { + text: "Luxembourg", + value: "LU" + }, + { + text: "Macau", + value: "MO" + }, + { + text: "Madagascar", + value: "MG" + }, + { + text: "Malawi", + value: "MW" + }, + { + text: "Malaysia", + value: "MY" + }, + { + text: "Maldives", + value: "MV" + }, + { + text: "Mali", + value: "ML" + }, + { + text: "Malta", + value: "MT" + }, + { + text: "Marshall Islands", + value: "MH" + }, + { + text: "Martinique", + value: "MQ" + }, + { + text: "Mauritania", + value: "MR" + }, + { + text: "Mauritius", + value: "MU" + }, + { + text: "Mayotte", + value: "YT" + }, + { + text: "Mexico", + value: "MX" + }, + { + text: "Moldova", + value: "MD" + }, + { + text: "Monaco", + value: "MC" + }, + { + text: "Mongolia", + value: "MN" + }, + { + text: "Montenegro", + value: "ME" + }, + { + text: "Montserrat", + value: "MS" + }, + { + text: "Morocco", + value: "MA" + }, + { + text: "Mozambique", + value: "MZ" + }, + { + text: "Myanmar", + value: "MM" + }, + { + text: "Namibia", + value: "NA" + }, + { + text: "Nauru", + value: "NR" + }, + { + text: "Nepal", + value: "NP" + }, + { + text: "Netherlands", + value: "NL" + }, + { + text: "New Caledonia", + value: "NC" + }, + { + text: "New Zealand", + value: "NZ" + }, + { + text: "Nicaragua", + value: "NI" + }, + { + text: "Niger", + value: "NE" + }, + { + text: "Nigeria", + value: "NG" + }, + { + text: "Niue", + value: "NU" + }, + { + text: "Norfolk Island", + value: "NF" + }, + { + text: "North Korea", + value: "KP" + }, + { + text: "North Macedonia", + value: "MK" + }, + { + text: "Northern Mariana Islands", + value: "MP" + }, + { + text: "Norway", + value: "NO" + }, + { + text: "Oman", + value: "OM" + }, + { + text: "Pakistan", + value: "PK" + }, + { + text: "Palau", + value: "PW" + }, + { + text: "Panama", + value: "PA" + }, + { + text: "Papua New Guinea", + value: "PG" + }, + { + text: "Paraguay", + value: "PY" + }, + { + text: "Peru", + value: "PE" + }, + { + text: "Philippines", + value: "PH" + }, + { + text: "Pitcairn Islands", + value: "PN" + }, + { + text: "Poland", + value: "PL" + }, + { + text: "Portugal", + value: "PT" + }, + { + text: "Puerto Rico", + value: "PR" + }, + { + text: "Qatar", + value: "QA" + }, + { + text: "Republic of Ireland", + value: "IE" + }, + { + text: "Republic of the Congo", + value: "CG" + }, + { + text: "Romania", + value: "RO" + }, + { + text: "Russia", + value: "RU" + }, + { + text: "Rwanda", + value: "RW" + }, + { + text: "Réunion", + value: "RE" + }, + { + text: "Saint Barthélemy", + value: "BL" + }, + { + text: "Saint Helena", + value: "SH" + }, + { + text: "Saint Kitts and Nevis", + value: "KN" + }, + { + text: "Saint Lucia", + value: "LC" + }, + { + text: "Saint Pierre and Miquelon", + value: "PM" + }, + { + text: "Saint Vincent and the Grenadines", + value: "VC" + }, + { + text: "Samoa", + value: "WS" + }, + { + text: "San Marino", + value: "SM" + }, + { + text: "Saudi Arabia", + value: "SA" + }, + { + text: "Senegal", + value: "SN" + }, + { + text: "Serbia", + value: "RS" + }, + { + text: "Seychelles", + value: "SC" + }, + { + text: "Sierra Leone", + value: "SL" + }, + { + text: "Singapore", + value: "SG" + }, + { + text: "Sint Maarten", + value: "SX" + }, + { + text: "Slovakia", + value: "SK" + }, + { + text: "Slovenia", + value: "SI" + }, + { + text: "Solomon Islands", + value: "SB" + }, + { + text: "Somalia", + value: "SO" + }, + { + text: "South Africa", + value: "ZA" + }, + { + text: "South Georgia and the South Sandwich Islands", + value: "GS" + }, + { + text: "South Korea", + value: "KR" + }, + { + text: "South Sudan", + value: "SS" + }, + { + text: "Spain", + value: "ES" + }, + { + text: "Sri Lanka", + value: "LK" + }, + { + text: "State of Palestine", + value: "PS" + }, + { + text: "Sudan", + value: "SD" + }, + { + text: "Suriname", + value: "SR" + }, + { + text: "Svalbard", + value: "SJ" + }, + { + text: "Sweden", + value: "SE" + }, + { + text: "Switzerland", + value: "CH" + }, + { + text: "Syria", + value: "SY" + }, + { + text: "São Tomé and Príncipe", + value: "ST" + }, + { + text: "Taiwan", + value: "TW" + }, + { + text: "Tajikistan", + value: "TJ" + }, + { + text: "Tanzania", + value: "TZ" + }, + { + text: "Thailand", + value: "TH" + }, + { + text: "The Bahamas", + value: "BS" + }, + { + text: "The Gambia", + value: "GM" + }, + { + text: "Togo", + value: "TG" + }, + { + text: "Tokelau", + value: "TK" + }, + { + text: "Tonga", + value: "TO" + }, + { + text: "Trinidad and Tobago", + value: "TT" + }, + { + text: "Tunisia", + value: "TN" + }, + { + text: "Turkey", + value: "TR" + }, + { + text: "Turkmenistan", + value: "TM" + }, + { + text: "Turks and Caicos Islands", + value: "TC" + }, + { + text: "Tuvalu", + value: "TV" + }, + { + text: "Uganda", + value: "UG" + }, + { + text: "Ukraine", + value: "UA" + }, + { + text: "United Arab Emirates", + value: "AE" + }, + { + text: "United Kingdom", + value: "GB" + }, + { + text: "United States Virgin Islands", + value: "VI" + }, + { + text: "United States", + value: "UM" + }, + { + text: "United States", + value: "US" + }, + { + text: "Uruguay", + value: "UY" + }, + { + text: "Uzbekistan", + value: "UZ" + }, + { + text: "Vanuatu", + value: "VU" + }, + { + text: "Venezuela", + value: "VE" + }, + { + text: "Vietnam", + value: "VN" + }, + { + text: "Wallis and Futuna", + value: "WF" + }, + { + text: "Western Sahara", + value: "EH" + }, + { + text: "Yemen", + value: "YE" + }, + { + text: "Zambia", + value: "ZM" + }, + { + text: "Zimbabwe", + value: "ZW" + }, + { + text: "Åland Islands", + value: "AX" + } + ] + }, + youtube_language: { + text: 'youtubeLanguage', + component: 'select', + options: [{ + value: 'default', + text: 'default' + }, + { + value: "en", + text: "English" + }, { + value: "es", + text: "Español (España)" + }, { + value: "es-419", + text: "Español (Latinoamérica)" + }, { + value: "es-US", + text: "Español (US)" + }, { + value: "ru", + text: "Русский" + }, { + value: "de", + text: "Deutsch" + }, { + value: "pt-PT", + text: "Português" + }, { + value: "pt", + text: "Português (Brasil)" + }, { + value: "fr", + text: "Français" + }, { + value: "pl", + text: "Polski" + }, { + value: "ja", + text: "日本語" + }, { + value: "af", + text: "Afrikaans" + }, { + value: "az", + text: "Azərbaycan" + }, { + value: "id", + text: "Bahasa Indonesia" + }, { + value: "ms", + text: "Bahasa Malaysia" + }, { + value: "bs", + text: "Bosanski" + }, { + value: "ca", + text: "Català" + }, { + value: "cs", + text: "Čeština" + }, { + value: "da", + text: "Dansk" + }, { + value: "et", + text: "Eesti" + }, { + value: "eu", + text: "Euskara" + }, { + value: "fil", + text: "Filipino" + }, { + value: "fr-CA", + text: "Français (Canada)" + }, { + value: "gl", + text: "Galego" + }, { + value: "hr", + text: "Hrvatski" + }, { + value: "zu", + text: "IsiZulu" + }, { + value: "is", + text: "Íslenska" + }, { + value: "it", + text: "Italiano" + }, { + value: "sw", + text: "Kiswahili" + }, { + value: "lv", + text: "Latviešu valoda" + }, { + value: "lt", + text: "Lietuvių" + }, { + value: "hu", + text: "Magyar" + }, { + value: "nl", + text: "Nederlands" + }, { + value: "no", + text: "Norsk" + }, { + value: "uz", + text: "O‘zbek" + }, { + value: "ro", + text: "Română" + }, { + value: "sq", + text: "Shqip" + }, { + value: "sk", + text: "Slovenčina" + }, { + value: "sl", + text: "Slovenščina" + }, { + value: "sr-Latn", + text: "Srpski" + }, { + value: "fi", + text: "Suomi" + }, { + value: "sv", + text: "Svenska" + }, { + value: "vi", + text: "Tiếng Việt" + }, { + value: "tr", + text: "Türkçe" + }, { + value: "be", + text: "Беларуская" + }, { + value: "bg", + text: "Български" + }, { + value: "ky", + text: "Кыргызча" + }, { + value: "kk", + text: "Қазақ Тілі" + }, { + value: "mk", + text: "Македонски" + }, { + value: "mn", + text: "Монгол" + }, { + value: "sr", + text: "Српски" + }, { + value: "uk", + text: "Українська" + }, { + value: "el", + text: "Ελληνικά" + }, { + value: "hy", + text: "Հայերեն" + }, { + value: "iw", + text: "עברית" + }, { + value: "ur", + text: "اردو" + }, { + value: "ar", + text: "العربية" + }, { + value: "fa", + text: "فارسی" + }, { + value: "ne", + text: "नेपाली" + }, { + value: "mr", + text: "मराठी" + }, { + value: "hi", + text: "हिन्दी" + }, { + value: "bn", + text: "বাংলা" + }, { + value: "pa", + text: "ਪੰਜਾਬੀ" + }, { + value: "gu", + text: "ગુજરાતી" + }, { + value: "ta", + text: "தமிழ்" + }, { + value: "te", + text: "తెలుగు" + }, { + value: "kn", + text: "ಕನ್ನಡ" + }, { + value: "ml", + text: "മലയാളം" + }, { + value: "si", + text: "සිංහල" + }, { + value: "th", + text: "ภาษาไทย" + }, { + value: "lo", + text: "ລາວ" + }, { + value: "my", + text: "ဗမာ" + }, { + value: "ka", + text: "ქართული" + }, { + value: "am", + text: "አማርኛ" + }, { + value: "km", + text: "ខ្មែរ" + }, { + value: "zh-CN", + text: "中文 (简体)" + }, { + value: "zh-TW", + text: "中文 (繁體)" + }, { + value: "zh-HK", + text: "中文 (香港)" + }, { + value: "ko", + text: "한국어" + } + ] + } + } + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'none', + 'stroke': 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': '1.75' + }, + + path: { + component: 'path', + attr: { + 'd': 'M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1zM4 22v-7' + } + } + } + }, + label: { + component: 'span', + text: 'general' + } + }, + appearance: { + component: 'button', + variant: 'appearance', + category: true, + on: { + click: { + component: 'section', + class: 'satus-section--appearance', + + header: { + component: 'button', + text: 'header', + class: 'satus-button--header', + on: { + click: { + component: 'section', + variant: 'card', + + header_position: { + component: 'select', + text: 'position', + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'hidden', + value: 'hidden' + }, { + text: 'hover', + value: 'hover' + }, { + text: 'hiddenOnVideoPage', + value: 'hidden_on_video_page' + }, { + text: 'hoverOnVideoPage', + value: 'hover_on_video_page' + }, { + text: 'static', + value: 'static' + }], + tags: 'hide,hover,static,top' + }, + header_improve_logo: { + component: 'switch', + text: 'improveLogo', + tags: 'youtube' + }, + header_hide_right_buttons: { + component: 'switch', + text: 'hideRightButtons', + tags: 'user' + }, + header_hide_country_code: { + component: 'switch', + text: 'hideCountryCode', + tags: 'country,code' + }, + hide_voice_search_button: { + component: 'switch', + text: 'hideVoiceSearchButton' + } + } + } + }, + player: { + component: 'button', + text: 'player', + class: 'satus-button--player', + on: { + click: { + component: 'section', + variant: 'card', + + player_size: { + component: 'select', + variant: 'player-size', + text: 'playerSize', + options: [{ + text: 'doNotChange', + value: 'do_not_change' + }, { + text: 'fullWindow', + value: 'full_window' + }, { + text: 'fitToWindow', + value: 'fit_to_window' + }, { + text: '144p', + value: '144p' + }, { + text: '240p', + value: '240p' + }, { + text: '360p', + value: '360p' + }, { + text: '480p', + value: '480p' + }, { + text: '576p', + value: '576p' + }, { + text: '720p', + value: '720p' + }, { + text: '1080p', + value: '1080p' + }, { + text: '1440p', + value: '1440p' + }, { + text: '2160p', + value: '2160p' + }, { + text: 'custom', + value: 'custom' + }] + }, + section: { + component: 'section', + variant: 'custom-player-size', + + custom_player_size_width: { + component: 'input', + attr: { + type: 'text', + name: 'custom_player_size_width', + placeholder: '1280' + } + }, + x: { + component: 'span', + text: 'x' + }, + custom_player_size_height: { + component: 'input', + attr: { + type: 'text', + name: 'custom_player_size_height', + placeholder: '720' + } + } + }, + forced_theater_mode: { + component: 'switch', + text: 'forcedTheaterMode', + tags: 'wide' + }, + hide_gradient_bottom: { + component: 'switch', + text: 'hideGradientBottom' + }, + player_hide_skip_overlay: { + component: 'switch', + text: 'hideSkipOverlay', + value: false, + tags: 'remove,hide' + }, + player_remaining_duration: { + component: 'switch', + text: 'showRemainingDuration', + value: false + }, + always_show_progress_bar: { + component: 'switch', + text: 'alwaysShowProgressBar' + }, + player_color: { + component: 'select', + text: 'playerColor', + options: [{ + text: 'red', + value: 'red' + }, { + text: 'pink', + value: 'pink' + }, { + text: 'purple', + value: 'purple' + }, { + text: 'deepPurple', + value: 'deep_purple' + }, { + text: 'indigo', + value: 'indigo' + }, { + text: 'blue', + value: 'blue' + }, { + text: 'lightBlue', + value: 'light_blue' + }, { + text: 'cyan', + value: 'cyan' + }, { + text: 'teal', + value: 'teal' + }, { + text: 'green', + value: 'green' + }, { + text: 'lightGreen', + value: 'light_green' + }, { + text: 'lime', + value: 'lime' + }, { + text: 'yellow', + value: 'yellow' + }, { + text: 'amber', + value: 'amber' + }, { + text: 'orange', + value: 'orange' + }, { + text: 'deepOrange', + value: 'deep_orange' + }, { + text: 'brown', + value: 'brown' + }, { + text: 'blueGray', + value: 'blue_gray' + }, { + text: 'white', + value: 'white' + }], + tags: 'style' + }, + player_transparent_background: { + component: 'switch', + text: 'transparentBackground' + }, + player_hide_annotations: { + component: 'switch', + text: 'hideAnnotations', + tags: 'hide,remove,elements' + }, + player_hide_cards: { + component: 'switch', + text: 'hideCards', + tags: 'hide,remove,elements' + }, + player_show_cards_on_mouse_hover: { + component: 'switch', + text: 'showCardsOnMouseHover', + tags: 'hide,remove,elements' + }, + player_hide_endscreen: { + component: 'switch', + text: 'hideEndscreen' + }, + player_hd_thumbnail: { + component: 'switch', + text: 'hdThumbnail', + tags: 'preview' + }, + hide_scroll_for_details: { + component: 'switch', + text: 'hideScrollForDetails', + tags: 'remove,hide' + } + } + } + }, + details: { + component: 'button', + text: 'details', + class: 'satus-button--details', + on: { + click: { + component: 'section', + variant: 'card', + + hide_details: { + component: 'switch', + text: 'hideDetails', + tags: 'hide,remove' + }, + hide_views_count: { + component: 'switch', + text: 'hideViewsCount', + tags: 'hide,remove' + }, + hide_date: { + component: 'switch', + text: 'hideDate', + tags: 'hide,remove' + }, + likes: { + component: 'select', + text: 'likes', + + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'iconsOnly', + value: 'icons_only' + }, { + text: 'hidden', + value: 'hidden' + }], + tags: 'hide,remove' + }, + hide_share_button: { + component: 'switch', + text: 'hideShareButton', + tags: 'hide,remove' + }, + hide_download_button: { + component: 'switch', + text: 'hideDownloadButton', + tags: 'hide,remove' + }, + hide_thanks_button: { + component: 'switch', + text: 'hideThanksButton', + tags: 'hide,remove' + }, + hide_clip_button: { + component: 'switch', + text: 'hideClipButton', + tags: 'hide,remove' + }, + hide_save_button: { + component: 'switch', + text: 'hideSaveButton', + tags: 'hide,remove' + }, + hide_report_button: { + component: 'switch', + text: 'hideReportButton', + tags: 'hide,remove' + }, + hide_more_button: { + component: 'switch', + text: 'hideMoreButton', + tags: 'hide,remove' + }, + description: { + component: 'select', + text: 'description', + + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'expanded', + value: 'expanded' + }, { + text: 'hidden', + value: 'hidden' + }], + tags: 'hide,remove' + }, + how_long_ago_the_video_was_uploaded: { + component: 'switch', + text: 'howLongAgoTheVideoWasUploaded' + }, + channel_videos_count: { + component: 'switch', + text: 'showChannelVideosCount' + }, + red_dislike_button: { + component: 'switch', + text: 'redDislikeButton' + }, + improvedtube_buttons: { + component: 'switch', + text: 'improvedtubeButtons' + } + } + } + }, + sidebar: { + component: 'button', + text: 'sidebar', + class: 'satus-button--sidebar', + on: { + click: { + component: 'section', + variant: 'card', + + related_videos: { + component: 'select', + text: 'relatedVideos', + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'collapsed', + value: 'collapsed' + }, { + text: 'hidden', + value: 'hidden' + }], + tags: 'right' + }, + livechat: { + component: 'select', + text: 'liveChat', + + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'collapsed', + value: 'collapsed' + }, { + text: 'hidden', + value: 'hidden' + }] + }, + hide_playlist: { + component: 'switch', + text: 'hidePlaylist' + }, + sidebar_left: { + component: 'switch', + text: 'moveSidebarLeft' + }, + thumbnails_right: { + component: 'switch', + text: 'moveThumbnailsRight' + }, + thumbnails_hide: { + component: 'switch', + text: 'hideThumbnails' + } + } + } + }, + comments: { + component: 'button', + text: 'comments', + class: 'satus-button--comments', + on: { + click: { + component: 'section', + variant: 'card', + + comments: { + component: 'select', + text: 'comments', + + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'collapsed', + value: 'collapsed' + }, { + text: 'hidden', + value: 'hidden' + }] + }, + hide_author_avatars: { + component: 'switch', + text: 'Hide Avatars' + } + } + } + }, + footer: { + component: 'button', + text: 'footer', + class: 'satus-button--footer', + on: { + click: { + component: 'section', + variant: 'card', + + hide_footer: { + component: 'switch', + text: 'hideFooter', + tags: 'bottom' + } + } + } + } + } + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'transparent', + 'stroke': 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': '1.75' + }, + + path: { + component: 'path', + attr: { + 'd': 'M17 3a2.83 2.83 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z' + } + } + } + }, + label: { + component: 'span', + text: 'appearance' + } + }, + themes: { + component: 'button', + class: 'satus-button--themes', + category: true, + on: { + click: { + section: { + component: 'section', + variant: 'card', + + my_colors: { + component: 'button', + text: 'myColors', + on: { + click: { + section: { + component: 'section', + variant: 'card', + + theme_my_colors: { + component: 'switch', + text: 'activate', + storage: false, + on: { + render: function () { + this.dataset.value = satus.storage.get('theme') === 'my-colors'; + }, + click: function () { + var value = 'default'; + + if (this.dataset.value === 'true') { + value = 'my-colors'; + } + + satus.storage.set('theme', value); + } + } + } + }, + + section2: { + component: 'section', + variant: 'card', + + theme_primary_color: { + component: 'color-picker', + text: 'primaryColor', + value: [200, 200, 200] + }, + theme_text_color: { + component: 'color-picker', + text: 'textColor', + value: [25, 25, 25] + } + } + } + } + }, + filters: { + component: 'button', + text: 'filters', + on: { + click: { + component: 'section', + variant: 'card', + + bluelight: { + component: 'slider', + text: 'bluelight', + step: 1, + max: 90, + value: 0 + }, + dim: { + component: 'slider', + text: 'dim', + step: 1, + max: 90, + value: 0 + } + } + } + }, + schedule: { + component: 'button', + text: 'schedule', + on: { + click: { + component: 'section', + variant: 'card', + + schedule: { + component: 'select', + text: 'schedule', + + options: [{ + text: 'disabled', + value: 'disabled' + }, { + text: 'sunsetToSunrise', + value: 'sunset_to_sunrise' + }, { + text: 'systemPeferenceDark', + value: 'system_peference_dark' + }, { + text: 'systemPeferenceLight', + value: 'system_peference_light' + }] + }, + schedule_time_from: { + component: 'select', + text: 'timeFrom', + options: [{ + text: '00:00', + value: '00:00' + }, { + text: '01:00', + value: '01:00' + }, { + text: '02:00', + value: '02:00' + }, { + text: '03:00', + value: '03:00' + }, { + text: '04:00', + value: '04:00' + }, { + text: '05:00', + value: '05:00' + }, { + text: '06:00', + value: '06:00' + }, { + text: '07:00', + value: '07:00' + }, { + text: '08:00', + value: '08:00' + }, { + text: '09:00', + value: '09:00' + }, { + text: '10:00', + value: '10:00' + }, { + text: '11:00', + value: '11:00' + }, { + text: '12:00', + value: '12:00' + }, { + text: '13:00', + value: '13:00' + }, { + text: '14:00', + value: '14:00' + }, { + text: '15:00', + value: '15:00' + }, { + text: '16:00', + value: '16:00' + }, { + text: '17:00', + value: '17:00' + }, { + text: '18:00', + value: '18:00' + }, { + text: '19:00', + value: '19:00' + }, { + text: '20:00', + value: '20:00' + }, { + text: '21:00', + value: '21:00' + }, { + text: '22:00', + value: '22:00' + }, { + text: '23:00', + value: '23:00' + }] + }, + schedule_time_to: { + component: 'select', + text: 'timeTo', + options: [{ + text: '00:00', + value: '00:00' + }, { + text: '01:00', + value: '01:00' + }, { + text: '02:00', + value: '02:00' + }, { + text: '03:00', + value: '03:00' + }, { + text: '04:00', + value: '04:00' + }, { + text: '05:00', + value: '05:00' + }, { + text: '06:00', + value: '06:00' + }, { + text: '07:00', + value: '07:00' + }, { + text: '08:00', + value: '08:00' + }, { + text: '09:00', + value: '09:00' + }, { + text: '10:00', + value: '10:00' + }, { + text: '11:00', + value: '11:00' + }, { + text: '12:00', + value: '12:00' + }, { + text: '13:00', + value: '13:00' + }, { + text: '14:00', + value: '14:00' + }, { + text: '15:00', + value: '15:00' + }, { + text: '16:00', + value: '16:00' + }, { + text: '17:00', + value: '17:00' + }, { + text: '18:00', + value: '18:00' + }, { + text: '19:00', + value: '19:00' + }, { + text: '20:00', + value: '20:00' + }, { + text: '21:00', + value: '21:00' + }, { + text: '22:00', + value: '22:00' + }, { + text: '23:00', + value: '23:00' + }] + } + } + } + }, + font: { + component: 'select', + text: 'font', + options: [{ + text: 'Youtube standard (Roboto)', + value: 'Default' + }, { + text: 'Open Sans', + value: 'Open+Sans' + }, { + text: 'Lato', + value: 'Lato' + }, { + text: 'Montserrat', + value: 'Montserrat' + }, { + text: 'Source Sans Pro', + value: 'Source+Sans+Pro' + }, { + text: 'Roboto Condensed', + value: 'Roboto+Condensed' + }, { + text: 'Oswald', + value: 'Oswald' + }, { + text: 'Comfortaa', + value: 'Comfortaa' + }, { + text: 'Roboto Mono', + value: 'Roboto+Mono' + }, { + text: 'Raleway', + value: 'Raleway' + }, { + text: 'Poppins', + value: 'Poppins' + }, { + text: 'Noto Sans', + value: 'Noto+Sans' + }, { + text: 'Roboto Slab', + value: 'Roboto+Slab' + }, { + text: 'Marriweather', + value: 'Marriweather' + }, { + text: 'PT Sans', + value: 'PT+Sans' + }] + } + }, + section_2: { + component: 'section', + variant: 'card', + + default: { + component: 'label', + class: 'satus-label--default-theme', + text: 'default', + + radio: { + component: 'radio', + group: 'theme', + value: 'default', + checked: true + } + }, + dark: { + component: 'label', + class: 'satus-label--dark-theme', + text: 'dark', + + radio: { + component: 'radio', + group: 'theme', + value: 'dark' + } + }, + night: { + component: 'label', + class: 'satus-label--night-theme', + text: 'night', + + radio: { + component: 'radio', + group: 'theme', + value: 'night' + } + }, + dawn: { + component: 'label', + class: 'satus-label--dawn-theme', + text: 'dawn', + + radio: { + component: 'radio', + group: 'theme', + value: 'dawn' + } + }, + sunset: { + component: 'label', + class: 'satus-label--sunset-theme', + text: 'sunset', + + radio: { + component: 'radio', + group: 'theme', + value: 'sunset' + } + }, + desert: { + component: 'label', + class: 'satus-label--desert-theme', + text: 'desert', + + radio: { + component: 'radio', + group: 'theme', + value: 'desert' + } + }, + plain: { + component: 'label', + class: 'satus-label--plain-theme', + text: 'plain', + + radio: { + component: 'radio', + group: 'theme', + value: 'plain' + } + }, + black: { + component: 'label', + class: 'satus-label--black-theme', + text: 'black', + + radio: { + component: 'radio', + group: 'theme', + value: 'black' + } + } + } + } + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'transparent', + 'stroke': 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': '1.75' + }, + + path: { + component: 'path', + attr: { + 'd': 'M12 2.69l5.66 5.66a8 8 0 11-11.31 0z' + } + } + } + }, + label: { + component: 'span', + text: 'themes' + } + }, + player: { + component: 'button', + class: 'satus-button--player', + category: true, + on: { + click: { + section_1: { + component: 'section', + variant: 'card', + + autoplay: { + component: 'switch', + text: 'autoplay', + value: true, + storage: 'player_autoplay' + }, + forced_play_video_from_the_beginning: { + component: 'switch', + text: 'forcedPlayVideoFromTheBeginning' + }, + ads: { + text: 'ads', + component: 'select', + options: [{ + text: 'onAllVideos', + value: 'all_videos', + default: 'true' + }, { + text: 'onSubscribedChannels', + value: 'subscribed_channels' + }, { + text: 'blockMusic', + value: 'block_music' + }, { + text: 'blockAll', + value: 'block_all' + }], + storage: 'player_ads' + }, + quality: { + component: 'select', + text: 'quality', + options: [{ + text: 'auto', + value: 'auto' + }, { + text: '144p', + value: 'tiny' + }, { + text: '240p', + value: 'small' + }, { + text: '360p', + value: 'medium' + }, { + text: '480p', + value: 'large' + }, { + text: '720p', + value: 'hd720' + }, { + text: '1080p', + value: 'hd1080' + }, { + text: '1440p', + value: 'hd1440' + }, { + text: '2160p', + value: 'hd2160' + }, { + text: '2880p', + value: 'hd2880' + }, { + text: '4320p', + value: 'highres' + }], + storage: 'player_quality' + }, + autofullscreen: { + component: 'switch', + text: 'autoFullscreen', + storage: 'player_autofullscreen' + }, + autopause_when_switching_tabs: { + component: 'switch', + text: 'autopauseWhenSwitchingTabs', + storage: 'player_autopause_when_switching_tabs' + }, + player_forced_playback_speed: { + component: 'switch', + text: 'forcedPlaybackSpeed', + id: 'forced-playback-speed', + onrender: function () { + this.dataset.value = satus.storage.player_forced_playback_speed; + }, + onchange: function () { + this.dataset.value = satus.storage.player_forced_playback_speed; + } + }, + player_playback_speed: { + component: 'slider', + text: 'playbackSpeed', + textarea: true, + value: 1, + min: .1, + max: 8, + step: .05 + }, + subtitles: { + component: 'button', + text: 'subtitles', + on: { + click: { + component: 'section', + variant: 'card', + + player_subtitles: { + component: 'switch', + text: 'subtitles' + }, + auto_generate: { + component: 'switch', + text: 'Allow auto generate' + }, + subtitles_language: { + component: 'select', + text: 'language', + options: [{ + value: 'default', + text: 'default' + }, + { + value: 'af', + text: 'Afrikaans' + }, + { + value: 'sq', + text: 'Albanian' + }, + { + value: 'am', + text: 'Amharic' + }, + { + value: 'ar', + text: 'Arabic' + }, + { + value: 'hy', + text: 'Armenian' + }, + { + value: 'az', + text: 'Azerbaijani' + }, + { + value: 'bn', + text: 'Bangla' + }, + { + value: 'eu', + text: 'Basque' + }, + { + value: 'be', + text: 'Belarusian' + }, + { + value: 'bs', + text: 'Bosnian' + }, + { + value: 'bg', + text: 'Bulgarian' + }, + { + value: 'my', + text: 'Burmese' + }, + { + value: 'ca', + text: 'Catalan' + }, + { + value: 'ceb', + text: 'Cebuano' + }, + { + value: 'zh-Hans', + text: 'Chinese (Simplified)' + }, + { + value: 'zh-Hant', + text: 'Chinese (Traditional)' + }, + { + value: 'co', + text: 'Corsican' + }, + { + value: 'hr', + text: 'Croatian' + }, + { + value: 'cs', + text: 'Czech' + }, + { + value: 'da', + text: 'Danish' + }, + { + value: 'nl', + text: 'Dutch' + }, + { + value: 'en', + text: 'English' + }, + { + value: 'eo', + text: 'Esperanto' + }, + { + value: 'et', + text: 'Estonian' + }, + { + value: 'fil', + text: 'Filipino' + }, + { + value: 'fi', + text: 'Finnish' + }, + { + value: 'fr', + text: 'French' + }, + { + value: 'gl', + text: 'Galician' + }, + { + value: 'ka', + text: 'Georgian' + }, + { + value: 'de', + text: 'German' + }, + { + value: 'el', + text: 'Greek' + }, + { + value: 'gu', + text: 'Gujarati' + }, + { + value: 'ht', + text: 'Haitian Creole' + }, + { + value: 'ha', + text: 'Hausa' + }, + { + value: 'haw', + text: 'Hawaiian' + }, + { + value: 'iw', + text: 'Hebrew' + }, + { + value: 'hi', + text: 'Hindi' + }, + { + value: 'hmn', + text: 'Hmong' + }, + { + value: 'hu', + text: 'Hungarian' + }, + { + value: 'is', + text: 'Icelandic' + }, + { + value: 'ig', + text: 'Igbo' + }, + { + value: 'id', + text: 'Indonesian' + }, + { + value: 'ga', + text: 'Irish' + }, + { + value: 'it', + text: 'Italian' + }, + { + value: 'ja', + text: 'Japanese' + }, + { + value: 'jv', + text: 'Javanese' + }, + { + value: 'kn', + text: 'Kannada' + }, + { + value: 'kk', + text: 'Kazakh' + }, + { + value: 'km', + text: 'Khmer' + }, + { + value: 'rw', + text: 'Kinyarwanda' + }, + { + value: 'ko', + text: 'Korean' + }, + { + value: 'ku', + text: 'Kurdish' + }, + { + value: 'ky', + text: 'Kyrgyz' + }, + { + value: 'lo', + text: 'Lao' + }, + { + value: 'la', + text: 'Latin' + }, + { + value: 'lv', + text: 'Latvian' + }, + { + value: 'lt', + text: 'Lithuanian' + }, + { + value: 'lb', + text: 'Luxembourgish' + }, + { + value: 'mk', + text: 'Macedonian' + }, + { + value: 'mg', + text: 'Malagasy' + }, + { + value: 'ms', + text: 'Malay' + }, + { + value: 'ml', + text: 'Malayalam' + }, + { + value: 'mt', + text: 'Maltese' + }, + { + value: 'mi', + text: 'Maori' + }, + { + value: 'mr', + text: 'Marathi' + }, + { + value: 'mn', + text: 'Mongolian' + }, + { + value: 'ne', + text: 'Nepali' + }, + { + value: 'no', + text: 'Norwegian' + }, + { + value: 'ny', + text: 'Nyanja' + }, + { + value: 'or', + text: 'Odia' + }, + { + value: 'ps', + text: 'Pashto' + }, + { + value: 'fa', + text: 'Persian' + }, + { + value: 'pl', + text: 'Polish' + }, + { + value: 'pt', + text: 'Portuguese' + }, + { + value: 'pa', + text: 'Punjabi' + }, + { + value: 'ro', + text: 'Romanian' + }, + { + value: 'ru', + text: 'Russian' + }, + { + value: 'sm', + text: 'Samoan' + }, + { + value: 'gd', + text: 'Scottish Gaelic' + }, + { + value: 'sr', + text: 'Serbian' + }, + { + value: 'sn', + text: 'Shona' + }, + { + value: 'sd', + text: 'Sindhi' + }, + { + value: 'si', + text: 'Sinhala' + }, + { + value: 'sk', + text: 'Slovak' + }, + { + value: 'sl', + text: 'Slovenian' + }, + { + value: 'so', + text: 'Somali' + }, + { + value: 'st', + text: 'Southern Sotho' + }, + { + value: 'es', + text: 'Spanish' + }, + { + value: 'su', + text: 'Sundanese' + }, + { + value: 'sw', + text: 'Swahili' + }, + { + value: 'sv', + text: 'Swedish' + }, + { + value: 'tg', + text: 'Tajik' + }, + { + value: 'ta', + text: 'Tamil' + }, + { + value: 'tt', + text: 'Tatar' + }, + { + value: 'te', + text: 'Telugu' + }, + { + value: 'th', + text: 'Thai' + }, + { + value: 'tr', + text: 'Turkish' + }, + { + value: 'tk', + text: 'Turkmen' + }, + { + value: 'uk', + text: 'Ukrainian' + }, + { + value: 'ur', + text: 'Urdu' + }, + { + value: 'ug', + text: 'Uyghur' + }, + { + value: 'uz', + text: 'Uzbek' + }, + { + value: 'vi', + text: 'Vietnamese' + }, + { + value: 'cy', + text: 'Welsh' + }, + { + value: 'fy', + text: 'Western Frisian' + }, + { + value: 'xh', + text: 'Xhosa' + }, + { + value: 'yi', + text: 'Yiddish' + }, + { + value: 'yo', + text: 'Yoruba' + }, + { + value: 'zu', + text: 'Zulu' + } + ] + }, + subtitles_font_family: { + component: 'select', + text: 'fontFamily', + options: [{ + text: 'Monospaced Serif', + value: 1 + }, { + text: 'Proportional Serif', + value: 2 + }, { + text: 'Monospaced Sans-Serif', + value: 3 + }, { + text: 'Proportional Sans-Serif', + value: 4 + }, { + text: 'Casual', + value: 5 + }, { + text: 'Cursive', + value: 6 + }, { + text: 'Small Capitals', + value: 7 + }] + }, + subtitles_font_color: { + component: 'select', + text: 'fontColor', + options: [{ + text: 'white', + value: '#fff' + }, { + text: 'yellow', + value: '#ff0' + }, { + text: 'green', + value: '#0f0' + }, { + text: 'cyan', + value: '#0ff' + }, { + text: 'blue', + value: '#00f' + }, { + text: 'magenta', + value: '#f0f' + }, { + text: 'red', + value: '#f00' + }, { + text: 'black', + value: '#000' + }] + }, + subtitles_font_size: { + component: 'select', + text: 'fontSize', + options: [{ + text: '50%', + value: -2 + }, { + text: '75%', + value: -1 + }, { + text: '100%', + value: 0 + }, { + text: '150%', + value: 1 + }, { + text: '200%', + value: 2 + }, { + text: '300%', + value: 3 + }, { + text: '400%', + value: 4 + }] + }, + subtitles_background_color: { + component: 'select', + text: 'backgroundColor', + options: [{ + text: 'white', + value: '#fff' + }, { + text: 'yellow', + value: '#ff0' + }, { + text: 'green', + value: '#0f0' + }, { + text: 'cyan', + value: '#0ff' + }, { + text: 'blue', + value: '#00f' + }, { + text: 'magenta', + value: '#f0f' + }, { + text: 'red', + value: '#f00' + }, { + text: 'black', + value: '#000' + }] + }, + subtitles_background_opacity: { + component: 'slider', + text: 'backgroundOpacity', + value: 75, + min: 0, + max: 100, + step: 1 + }, + subtitles_window_color: { + component: 'select', + text: 'windowColor', + options: [{ + text: 'white', + value: '#fff' + }, { + text: 'yellow', + value: '#ff0' + }, { + text: 'green', + value: '#0f0' + }, { + text: 'cyan', + value: '#0ff' + }, { + text: 'blue', + value: '#00f' + }, { + text: 'magenta', + value: '#f0f' + }, { + text: 'red', + value: '#f00' + }, { + text: 'black', + value: '#000' + }] + }, + subtitles_window_opacity: { + component: 'slider', + text: 'windowOpacity', + value: 0, + min: 0, + max: 100, + step: 1 + }, + subtitles_character_edge_style: { + component: 'select', + text: 'characterEdgeStyle', + options: [{ + text: 'none', + value: 0 + }, { + text: 'dropShadow', + value: 4 + }, { + text: 'raised', + value: 1 + }, { + text: 'depressed', + value: 2 + }, { + text: 'outline', + value: 3 + }] + }, + subtitles_font_opacity: { + component: 'slider', + text: 'fontOpacity', + value: 100, + min: 0, + max: 100, + step: 1 + } + } + } + }, + crop_chapter_titles: { + component: 'switch', + text: 'cropChapterTitles', + value: true, + storage: 'player_crop_chapter_titles' + }, + up_next_autoplay: { + component: 'switch', + text: 'upNextAutoplay', + value: true + }, + mini_player: { + component: 'switch', + text: 'customMiniPlayer' + }, + h264: { + component: 'switch', + text: 'codecH264', + storage: 'player_h264', + on: { + click: function () { + if (this.dataset.value === 'true') { + satus.render({ + component: 'modal', + + message: { + component: 'text', + text: 'youtubeLimitsVideoQualityTo1080pForH264Codec' + }, + actions: { + component: 'section', + variant: 'actions', + + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.parentNode.parentNode.parentNode.click(); + } + } + }, + ok: { + component: 'button', + text: 'OK', + onclick: function () { + + this.parentNode.parentNode.parentNode.click(); + } + } + } + }); + } + } + } + }, + player_codecs: { + component: 'button', + text: 'codecs', + on: { + click: { + section: { + component: 'section', + variant: 'card', + + block_h264: { + component: 'switch', + text: 'blockH264' + }, + block_vp8: { + component: 'switch', + text: 'blockVp8' + }, + block_vp9: { + component: 'switch', + text: 'blockVp9' + }, + block_av1: { + component: 'switch', + text: 'blockAv1' + } + } + } + } + }, + avoid_cpu_rendering_when_possible: { + component: 'select', + text: 'avoidCpuRenderingWhenPossible', + options: [{ + text: 'disabled', + value: 'disabled' + }, + { + text: 'auto', + value: 'auto' + }, + { + text: 'avoidAv1', + value: 'av1' + }, + { + text: 'avoidAv1Vp9', + value: 'av1-vp9' + }, + { + text: 'avoidAv1Vp8Vp9', + value: 'av1-vp8-vp9' + } + ] + }, + player_60fps: { + component: 'switch', + text: 'allow60fps', + value: true + }, + sdr: { + component: 'switch', + text: 'forceSDR', + value: false, + storage: 'player_SDR' + }, + player_forced_volume: { + component: 'switch', + text: 'forcedVolume', + id: 'forced-volume', + onrender: function () { + this.dataset.value = satus.storage.player_forced_volume; + }, + onchange: function () { + this.dataset.value = satus.storage.player_forced_volume; + } + }, + player_volume: { + component: 'slider', + text: 'volume', + step: 1, + max: 400, + value: 100 + }, + player_loudness_normalization: { + component: 'switch', + text: 'loudnessNormalization', + value: true + }, + hide_controls: { + component: 'select', + text: 'hidePlayerControlsBar', options: [{ text: 'off', value: 'off', @@ -6017,1170 +6031,1170 @@ var skeleton = { value: 'always' }], storage: 'player_hide_controls' - }, - player_hide_controls_options: { - component: 'button', - text: 'hidePlayerControlsBarButtons', - on: { - click: { - component: 'section', - variant: 'card', - - player_play_button: { - component: 'switch', - text: 'playPause' - }, - player_previous_button: { - component: 'switch', - text: 'previousVideo' - }, - player_next_button: { - component: 'switch', - text: 'nextVideo' - }, - player_volume_button: { - component: 'switch', - text: 'volume' - }, - player_autoplay_button: { - component: 'switch', - text: 'autoplay' - }, - player_settings_button: { - component: 'switch', - text: 'settings' - }, - player_subtitles_button: { - component: 'switch', - text: 'subtitles' - }, - player_miniplayer_button: { - component: 'switch', - text: 'nativeMiniPlayer' - }, - player_view_button: { - component: 'switch', - text: 'viewMode' - }, - player_screen_button: { - component: 'switch', - text: 'screen' - }, - player_remote_button: { - component: 'switch', - text: 'remote' - } - } - } - } - }, - section_2: { - component: 'section', - variant: 'card', - - player_screenshot: { - component: 'button', - text: 'screenshot', - on: { - click: { - component: 'section', - variant: 'card', - - player_screenshot_button: { - component: 'switch', - text: 'activate' - }, - player_screenshot_save_as: { - component: 'select', - text: 'saveAs', - options: [{ - text: 'file', - value: 'file' - }, { - text: 'clipboard', - value: 'clipboard' - }] - } - } - } - }, - player_repeat: { - component: 'button', - text: 'repeat', - on: { - click: { - component: 'section', - variant: 'card', - - player_repeat_button: { - component: 'switch', - text: 'activate' - }, - player_always_repeat: { - component: 'switch', - text: 'alwaysActive' - } - } - } - }, - player_rotate_button: { - component: 'switch', - text: 'rotate' - }, - player_popup_button: { - component: 'switch', - text: 'popupPlayer' - } - }, - section_3: { - component: 'section', - variant: 'card', - - below_player_screenshot: { - component: 'switch', - text: 'screenshot', - value: true - }, - below_player_pip: { - component: 'switch', - text: 'pictureInPicture', - value: true - }, - below_player_loop: { - component: 'switch', - text: 'loop', - value: true - } - } - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'transparent', - 'stroke': 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': '1.75' - }, - - path: { - component: 'path', - attr: { - 'd': 'M5 3l14 9-14 9V3z' - } - } - } - }, - label: { - component: 'span', - text: 'player' - } - }, - playlist: { - component: 'button', - class: 'satus-button--playlist', - category: true, - on: { - click: { - component: 'section', - variant: 'card', - - playlist_autoplay: { - component: 'switch', - text: 'autoplay', - value: true - }, - playlist_up_next_autoplay: { - component: 'switch', - text: 'upNextAutoplay', - value: true - }, - playlist_reverse: { - component: 'switch', - text: 'reverse' - }, - playlist_repeat: { - component: 'switch', - text: 'repeat' - }, - playlist_shuffle: { - component: 'switch', - text: 'shuffle' - } - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - viewBox: '0 0 24 24', - fill: 'transparent', - stroke: 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': 1.75 - }, - - path: { - component: 'path', - attr: { - d: 'M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01' - } - } - } - }, - label: { - component: 'span', - text: 'playlist' - } - }, - channel: { - component: 'button', - class: 'satus-button--channel', - category: true, - on: { - click: { - component: 'section', - variant: 'card', - - channel_default_tab: { - component: 'select', - text: 'defaultChannelTab', - options: [{ - text: 'home', - value: '/home' - }, { - text: 'videos', - value: '/videos' - }, { - text: 'playlists', - value: '/playlists' - }] - }, - channel_trailer_autoplay: { - component: 'switch', - text: 'trailerAutoplay', - value: true - }, - channel_play_all_button: { - component: 'switch', - text: 'playAllButton' - }, - channel_hide_featured_content: { - component: 'switch', - text: 'hideFeaturedContent' - } - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - viewBox: '0 0 24 24', - fill: 'transparent', - stroke: 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': 1.75 - }, - - rect: { - component: 'rect', - attr: { - width: 20, - height: 15, - x: 2, - y: 7, - rx: 2, - ry: 2 - } - }, - path: { - component: 'path', - attr: { - d: 'M17 2l-5 5-5-5' - } - } - } - }, - label: { - component: 'span', - text: 'channel' - } - }, - shortcuts: { - component: 'button', - class: 'satus-button--shortcuts', - category: true, - on: { - click: { - section: { - component: 'section', - variant: 'card', - - picture_in_picture: { - component: 'shortcut', - text: 'pictureInPicture', - storage: 'shortcut_picture_in_picture' - }, - volume: { - component: 'button', - text: 'volume', - on: { - click: { - section_1: { - component: 'section', - variant: 'card', - - volume_step: { - component: 'slider', - text: 'step', - min: 1, - max: 10, - step: 1, - value: 5, - storage: 'shortcut_volume_step' - } - }, - - section_2: { - component: 'section', - variant: 'card', - - increase_volume: { - component: 'shortcut', - text: 'increaseVolume', - storage: 'shortcut_increase_volume', - value: { - keys: { - 38: { - key: 'ArrowUp' - } - } - } - }, - decrease_volume: { - component: 'shortcut', - text: 'decreaseVolume', - storage: 'shortcut_decrease_volume', - value: { - keys: { - 40: { - key: 'ArrowDown' - } - } - } - } - } - } - } - }, - shortcut_screenshot: { - component: 'shortcut', - text: 'screenshot' - }, - playback_speed: { - component: 'button', - text: 'playbackSpeed', - on: { - click: { - section_step: { - component: 'section', - variant: 'card', - - playback_speed_step: { - component: 'slider', - text: 'step', - min: .05, - max: .5, - step: .05, - value: .05, - storage: 'shortcut_playback_speed_step' - } - }, - - section: { - component: 'section', - variant: 'card', - - increase_playback_speed: { - component: 'shortcut', - text: 'increasePlaybackSpeed', - storage: 'shortcut_increase_playback_speed', - value: { - keys: { - 188: { - key: '<' - } - } - } - }, - decrease_playback_speed: { - component: 'shortcut', - text: 'decreasePlaybackSpeed', - storage: 'shortcut_decrease_playback_speed', - value: { - keys: { - 190: { - key: '>' - } - } - } - }, - reset_playback_speed: { - component: 'shortcut', - text: 'reset', - storage: 'shortcut_reset_playback_speed' - } - } - } - } - }, - shortcut_toggle_controls: { - component: 'shortcut', - text: 'toggleControls' - }, - shortcut_next_video: { - component: 'shortcut', - text: 'nextVideo', - value: { - shift: true, - keys: { - 78: { - key: 'n' - } - } - } - }, - shortcut_prev_video: { - component: 'shortcut', - text: 'previousVideo', - value: { - shift: true, - keys: { - 80: { - key: 'p' - } - } - } - }, - shortcut_play_pause: { - component: 'shortcut', - text: 'playPause', - value: { - keys: { - 32: { - code: 'space' - } - } - } - }, - shortcut_stop: { - component: 'shortcut', - text: 'stop' - }, - shortcut_toggle_autoplay: { - component: 'shortcut', - text: 'toggleAutoplay' - }, - shortcut_seek_backward: { - component: 'shortcut', - text: 'seekBackward10Seconds', - value: { - keys: { - 74: { - key: 'j' - } - } - } - }, - shortcut_seek_forward: { - component: 'shortcut', - text: 'seekForward10Seconds', - value: { - keys: { - 76: { - key: 'l' - } - } - } - }, - shortcut_seek_next_chapter: { - component: 'shortcut', - text: 'seekNextChapter' - }, - shortcut_seek_previous_chapter: { - component: 'shortcut', - text: 'seekPreviousChapter' - }, - shortcut_activate_fullscreen: { - component: 'shortcut', - text: 'activateFullscreen', - value: { - keys: { - 70: { - key: 'f' - } - } - } - }, - shortcut_activate_captions: { - component: 'shortcut', - text: 'activateCaptions', - value: { - keys: { - 67: { - key: 'c' - } - } - } - }, - shortcut_quality: { - component: 'button', - text: 'quality', - on: { - click: { - component: 'section', - variant: 'card', - - shortcut_auto: { - component: 'shortcut', - text: 'auto' - }, - shortcut_144p: { - component: 'shortcut', - text: '144p' - }, - shortcut_240p: { - component: 'shortcut', - text: '240p' - }, - shortcut_360p: { - component: 'shortcut', - text: '360p' - }, - shortcut_480p: { - component: 'shortcut', - text: '480p' - }, - shortcut_720p: { - component: 'shortcut', - text: '720p' - }, - shortcut_1080p: { - component: 'shortcut', - text: '1080p' - }, - shortcut_1440p: { - component: 'shortcut', - text: '1440p' - }, - shortcut_2160p: { - component: 'shortcut', - text: '2160p' - }, - shortcut_2880p: { - component: 'shortcut', - text: '2880p' - }, - shortcut_4320p: { - component: 'shortcut', - text: '4320p' - } - } - } - }, - shortcut_custom_mini_player: { - component: 'shortcut', - text: 'customMiniPlayer', - value: { - keys: { - 73: { - key: 'i' - } - } - } - }, - shortcut_stats_for_nerds: { - component: 'shortcut', - text: 'statsForNerds' - }, - shortcut_toggle_cards: { - component: 'shortcut', - text: 'toggleCards' - }, - shortcut_popup_player: { - component: 'shortcut', - text: 'popupPlayer' - }, - shortcut_go_to_search_box: { - component: 'shortcut', - text: 'goToSearchBox', - value: { - keys: { - 191: { - key: '/' - } - } - } - }, - shortcut_like_shortcut: { - component: 'shortcut', - text: 'like' - }, - shortcut_dislike_shortcut: { - component: 'shortcut', - text: 'dislike' - }, - shortcut_subscribe: { - component: 'shortcut', - text: 'subscribe' - }, - shortcut_dark_theme: { - component: 'shortcut', - text: 'darkTheme' - } - } - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'transparent', - 'stroke': 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': '1.75' - }, - - path: { - component: 'path', - attr: { - 'd': 'M18 3a3 3 0 00-3 3v12a3 3 0 003 3 3 3 0 003-3 3 3 0 00-3-3H6a3 3 0 00-3 3 3 3 0 003 3 3 3 0 003-3V6a3 3 0 00-3-3 3 3 0 00-3 3 3 3 0 003 3h12a3 3 0 003-3 3 3 0 00-3-3z' - } - } - } - }, - label: { - component: 'span', - text: 'shortcuts' - } - }, - blacklist: { - component: 'button', - class: 'satus-button--blacklist', - category: true, - on: { - click: { - section: { - component: 'section', - variant: 'card', - - blacklist_activate: { - component: 'switch', - text: 'activate' - } - }, - - section2: { - component: 'section', - variant: 'card', - - channels: { - component: 'button', - text: 'channels', - on: { - click: { - component: 'section', - variant: 'card', - on: { - render: function () { - var self = this, - blacklist = satus.storage.get('blacklist'); - - if (blacklist && blacklist.channels) { - var list = {}; - - for (var item in blacklist.channels) { - if (blacklist.channels[item] !== false) { - var title = blacklist.channels[item].title || ''; - - list[item] = { - type: 'section', - text: title.length > 20 ? title.substr(0, 20) + '...' : title, - class: 'satus-section--blacklist', - style: { - 'background-image': 'url(' + blacklist.channels[item].preview + ')', - 'background-color': '#000' - }, - - section: { - type: 'section', - - delete: { - type: 'button', - icon: '', - onclick: function () { - delete blacklist.channels[item]; - - satus.storage.set('blacklist', blacklist); - - this.classList.add('removing'); - - setTimeout(function () { - self.remove(); - }, 250); - } - } - } - }; - } - } - - if (Object.keys(list).length === 0) { - list.error = { - type: 'span', - text: 'empty' - }; - } - - satus.render(list, this); - } else { - satus.render({ - component: 'span', - text: 'empty' - }, this); - } - } - } - } - } - }, - videos: { - component: 'button', - text: 'videos', - on: { - click: { - component: 'section', - variant: 'card', - on: { - render: function () { - var self = this, - blacklist = satus.storage.get('blacklist'); - - if (blacklist && blacklist.videos) { - let list = {}; - - for (let item in blacklist.videos) { - if (blacklist.videos[item] !== false) { - let title = blacklist.videos[item].title || ''; - - list[item] = { - type: 'section', - text: title.length > 20 ? title.substr(0, 20) + '...' : title, - class: 'satus-section--blacklist', - style: { - 'background-image': 'url(https://img.youtube.com/vi/' + item + '/0.jpg)' - }, - - section: { - type: 'section', - - delete: { - type: 'button', - icon: '', - onclick: function () { - delete blacklist.videos[item]; - - satus.storage.set('blacklist', blacklist); - this.parentNode.parentNode.classList.add('removing'); - - setTimeout(function () { - self.parentNode.parentNode.remove(); - }, 250); - } - } - } - }; - } - } - - if (Object.keys(list).length === 0) { - list.section = { - component: 'span', - text: 'empty' - }; - } - - satus.render(list, this); - } else { - satus.render({ - component: 'span', - text: 'empty' - }, this); - } - } - } - } - } - } - } - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'transparent', - 'stroke': 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': 1.75 - }, - - circle: { - component: 'circle', - attr: { - 'cx': 12, - 'cy': 12, - 'r': 10 - } - }, - path: { - component: 'path', - attr: { - 'd': 'M4.93 4.93l14.14 14.14' - } - } - } - }, - label: { - component: 'span', - text: 'blacklist' - } - }, - analyzer: { - component: 'button', - class: 'satus-button--analyzer', - category: true, - on: { - click: { - section: { - component: 'section', - variant: 'card', - - analyzer_activation: { - component: 'switch', - text: 'activate' - } - }, - section_2: { - component: 'section', - variant: 'card', - on: { - render: function () { - var data = satus.storage.get('analyzer') || {}, - all_data = {}, - all_data_sort = [], - all_time_value = 0, - current_date = new Date().toDateString(), - container = document.createElement('div'), - top_text_container = document.createElement('div'), - today_at = document.createElement('div'), - watch_time = document.createElement('div'), - all_time = document.createElement('div'), - chart = document.createElement('div'), - bottom_text_container = document.createElement('div'); - - container.className = 'analyzer-container'; - top_text_container.className = 'analyzer-top-text'; - watch_time.className = 'analyzer-watch-time'; - today_at.className = 'analyzer-today-at'; - all_time.className = 'analyzer-all-time'; - chart.className = 'analyzer-chart'; - bottom_text_container.className = 'analyzer-bottom'; - - let currentDateData = data[current_date]; - if (currentDateData) { - for (let i in currentDateData) { - if (currentDateData[i]) { - for (let j in currentDateData[i]) { - if (!all_data[j]) { - all_data[j] = 0; - } - - all_data[j] += currentDateData[i][j]; - } - } - } - } - - for (let i in all_data) { - all_data_sort.push([i, all_data[i]]); - all_time_value += all_data[i]; - } - - all_data_sort.sort(function (a, b) { - return b[1] - a[1]; - }); - - var now_minutes = new Date().getMinutes(); - - watch_time.innerText = satus.locale.get('watchTime'); - today_at.innerText = satus.locale.get('todayAt') + ' ' + (new Date().getHours() + ':' + (now_minutes < 10 ? '0' + now_minutes : now_minutes)); - all_time.innerText = Math.floor(all_time_value / 60) + 'h ' + (all_time_value - Math.floor(all_time_value / 60) * 60) + 'm'; - - let h = 0; - - for (let i = 0; i < 4; i++) { - let column = document.createElement('div'); - - column.className = 'analyzer-column'; - - for (let j = 0; j < 6; j++) { - let hours = h + ':00'; - - h++; - - let data_column = document.createElement('div'); - - data_column.className = 'analyzer-data-column'; - - if (currentDateData && currentDateData[hours]) { - for (let k in currentDateData[hours]) { - let block = document.createElement('div'); - - block.className = 'analyzer-data'; - - let height = data[current_date][hours][k] * 100 / 60; - - block.title = k; - block.style.height = height + '%'; - - if (k === all_data_sort[0][0]) { - block.className += ' first'; - } else if (k === all_data_sort[1][0]) { - block.className += ' second'; - } else if (k === all_data_sort[2][0]) { - block.className += ' third'; - } - - data_column.appendChild(block); - } - } - - column.appendChild(data_column); - } - - chart.appendChild(column); - } - - - for (let i = 0; i < 3; i++) { - if (all_data_sort[i]) { - let cont = document.createElement('div'), - label = document.createElement('div'), - value = document.createElement('div'); - - label.className = 'label'; - - label.innerText = all_data_sort[i][0]; - value.innerText = Math.floor(all_data_sort[i][1] / 60) + 'h ' + (all_data_sort[i][1] - Math.floor(all_data_sort[i][1] / 60) * 60) + 'm'; - - cont.appendChild(label); - cont.appendChild(value); - bottom_text_container.appendChild(cont); - } - } - - container.appendChild(all_time); - container.appendChild(chart); - this.appendChild(top_text_container); - top_text_container.appendChild(watch_time); - top_text_container.appendChild(today_at); - container.appendChild(bottom_text_container); - this.appendChild(container); - } - } - } - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - viewBox: '0 0 24 24', - fill: 'transparent', - stroke: 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': 1.75 - }, - - path: { - component: 'path', - attr: { - d: 'M21.21 15.89A10 10 0 118 2.83M22 12A10 10 0 0012 2v10z' - } - } - } - }, - label: { - component: 'span', - text: 'analyzer' - } - } - } - } + }, + player_hide_controls_options: { + component: 'button', + text: 'hidePlayerControlsBarButtons', + on: { + click: { + component: 'section', + variant: 'card', + + player_play_button: { + component: 'switch', + text: 'playPause' + }, + player_previous_button: { + component: 'switch', + text: 'previousVideo' + }, + player_next_button: { + component: 'switch', + text: 'nextVideo' + }, + player_volume_button: { + component: 'switch', + text: 'volume' + }, + player_autoplay_button: { + component: 'switch', + text: 'autoplay' + }, + player_settings_button: { + component: 'switch', + text: 'settings' + }, + player_subtitles_button: { + component: 'switch', + text: 'subtitles' + }, + player_miniplayer_button: { + component: 'switch', + text: 'nativeMiniPlayer' + }, + player_view_button: { + component: 'switch', + text: 'viewMode' + }, + player_screen_button: { + component: 'switch', + text: 'screen' + }, + player_remote_button: { + component: 'switch', + text: 'remote' + } + } + } + } + }, + section_2: { + component: 'section', + variant: 'card', + + player_screenshot: { + component: 'button', + text: 'screenshot', + on: { + click: { + component: 'section', + variant: 'card', + + player_screenshot_button: { + component: 'switch', + text: 'activate' + }, + player_screenshot_save_as: { + component: 'select', + text: 'saveAs', + options: [{ + text: 'file', + value: 'file' + }, { + text: 'clipboard', + value: 'clipboard' + }] + } + } + } + }, + player_repeat: { + component: 'button', + text: 'repeat', + on: { + click: { + component: 'section', + variant: 'card', + + player_repeat_button: { + component: 'switch', + text: 'activate' + }, + player_always_repeat: { + component: 'switch', + text: 'alwaysActive' + } + } + } + }, + player_rotate_button: { + component: 'switch', + text: 'rotate' + }, + player_popup_button: { + component: 'switch', + text: 'popupPlayer' + } + }, + section_3: { + component: 'section', + variant: 'card', + + below_player_screenshot: { + component: 'switch', + text: 'screenshot', + value: true + }, + below_player_pip: { + component: 'switch', + text: 'pictureInPicture', + value: true + }, + below_player_loop: { + component: 'switch', + text: 'loop', + value: true + } + } + } + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'transparent', + 'stroke': 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': '1.75' + }, + + path: { + component: 'path', + attr: { + 'd': 'M5 3l14 9-14 9V3z' + } + } + } + }, + label: { + component: 'span', + text: 'player' + } + }, + playlist: { + component: 'button', + class: 'satus-button--playlist', + category: true, + on: { + click: { + component: 'section', + variant: 'card', + + playlist_autoplay: { + component: 'switch', + text: 'autoplay', + value: true + }, + playlist_up_next_autoplay: { + component: 'switch', + text: 'upNextAutoplay', + value: true + }, + playlist_reverse: { + component: 'switch', + text: 'reverse' + }, + playlist_repeat: { + component: 'switch', + text: 'repeat' + }, + playlist_shuffle: { + component: 'switch', + text: 'shuffle' + } + } + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'transparent', + stroke: 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': 1.75 + }, + + path: { + component: 'path', + attr: { + d: 'M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01' + } + } + } + }, + label: { + component: 'span', + text: 'playlist' + } + }, + channel: { + component: 'button', + class: 'satus-button--channel', + category: true, + on: { + click: { + component: 'section', + variant: 'card', + + channel_default_tab: { + component: 'select', + text: 'defaultChannelTab', + options: [{ + text: 'home', + value: '/home' + }, { + text: 'videos', + value: '/videos' + }, { + text: 'playlists', + value: '/playlists' + }] + }, + channel_trailer_autoplay: { + component: 'switch', + text: 'trailerAutoplay', + value: true + }, + channel_play_all_button: { + component: 'switch', + text: 'playAllButton' + }, + channel_hide_featured_content: { + component: 'switch', + text: 'hideFeaturedContent' + } + } + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'transparent', + stroke: 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': 1.75 + }, + + rect: { + component: 'rect', + attr: { + width: 20, + height: 15, + x: 2, + y: 7, + rx: 2, + ry: 2 + } + }, + path: { + component: 'path', + attr: { + d: 'M17 2l-5 5-5-5' + } + } + } + }, + label: { + component: 'span', + text: 'channel' + } + }, + shortcuts: { + component: 'button', + class: 'satus-button--shortcuts', + category: true, + on: { + click: { + section: { + component: 'section', + variant: 'card', + + picture_in_picture: { + component: 'shortcut', + text: 'pictureInPicture', + storage: 'shortcut_picture_in_picture' + }, + volume: { + component: 'button', + text: 'volume', + on: { + click: { + section_1: { + component: 'section', + variant: 'card', + + volume_step: { + component: 'slider', + text: 'step', + min: 1, + max: 10, + step: 1, + value: 5, + storage: 'shortcut_volume_step' + } + }, + + section_2: { + component: 'section', + variant: 'card', + + increase_volume: { + component: 'shortcut', + text: 'increaseVolume', + storage: 'shortcut_increase_volume', + value: { + keys: { + 38: { + key: 'ArrowUp' + } + } + } + }, + decrease_volume: { + component: 'shortcut', + text: 'decreaseVolume', + storage: 'shortcut_decrease_volume', + value: { + keys: { + 40: { + key: 'ArrowDown' + } + } + } + } + } + } + } + }, + shortcut_screenshot: { + component: 'shortcut', + text: 'screenshot' + }, + playback_speed: { + component: 'button', + text: 'playbackSpeed', + on: { + click: { + section_step: { + component: 'section', + variant: 'card', + + playback_speed_step: { + component: 'slider', + text: 'step', + min: .05, + max: .5, + step: .05, + value: .05, + storage: 'shortcut_playback_speed_step' + } + }, + + section: { + component: 'section', + variant: 'card', + + increase_playback_speed: { + component: 'shortcut', + text: 'increasePlaybackSpeed', + storage: 'shortcut_increase_playback_speed', + value: { + keys: { + 188: { + key: '<' + } + } + } + }, + decrease_playback_speed: { + component: 'shortcut', + text: 'decreasePlaybackSpeed', + storage: 'shortcut_decrease_playback_speed', + value: { + keys: { + 190: { + key: '>' + } + } + } + }, + reset_playback_speed: { + component: 'shortcut', + text: 'reset', + storage: 'shortcut_reset_playback_speed' + } + } + } + } + }, + shortcut_toggle_controls: { + component: 'shortcut', + text: 'toggleControls' + }, + shortcut_next_video: { + component: 'shortcut', + text: 'nextVideo', + value: { + shift: true, + keys: { + 78: { + key: 'n' + } + } + } + }, + shortcut_prev_video: { + component: 'shortcut', + text: 'previousVideo', + value: { + shift: true, + keys: { + 80: { + key: 'p' + } + } + } + }, + shortcut_play_pause: { + component: 'shortcut', + text: 'playPause', + value: { + keys: { + 32: { + code: 'space' + } + } + } + }, + shortcut_stop: { + component: 'shortcut', + text: 'stop' + }, + shortcut_toggle_autoplay: { + component: 'shortcut', + text: 'toggleAutoplay' + }, + shortcut_seek_backward: { + component: 'shortcut', + text: 'seekBackward10Seconds', + value: { + keys: { + 74: { + key: 'j' + } + } + } + }, + shortcut_seek_forward: { + component: 'shortcut', + text: 'seekForward10Seconds', + value: { + keys: { + 76: { + key: 'l' + } + } + } + }, + shortcut_seek_next_chapter: { + component: 'shortcut', + text: 'seekNextChapter' + }, + shortcut_seek_previous_chapter: { + component: 'shortcut', + text: 'seekPreviousChapter' + }, + shortcut_activate_fullscreen: { + component: 'shortcut', + text: 'activateFullscreen', + value: { + keys: { + 70: { + key: 'f' + } + } + } + }, + shortcut_activate_captions: { + component: 'shortcut', + text: 'activateCaptions', + value: { + keys: { + 67: { + key: 'c' + } + } + } + }, + shortcut_quality: { + component: 'button', + text: 'quality', + on: { + click: { + component: 'section', + variant: 'card', + + shortcut_auto: { + component: 'shortcut', + text: 'auto' + }, + shortcut_144p: { + component: 'shortcut', + text: '144p' + }, + shortcut_240p: { + component: 'shortcut', + text: '240p' + }, + shortcut_360p: { + component: 'shortcut', + text: '360p' + }, + shortcut_480p: { + component: 'shortcut', + text: '480p' + }, + shortcut_720p: { + component: 'shortcut', + text: '720p' + }, + shortcut_1080p: { + component: 'shortcut', + text: '1080p' + }, + shortcut_1440p: { + component: 'shortcut', + text: '1440p' + }, + shortcut_2160p: { + component: 'shortcut', + text: '2160p' + }, + shortcut_2880p: { + component: 'shortcut', + text: '2880p' + }, + shortcut_4320p: { + component: 'shortcut', + text: '4320p' + } + } + } + }, + shortcut_custom_mini_player: { + component: 'shortcut', + text: 'customMiniPlayer', + value: { + keys: { + 73: { + key: 'i' + } + } + } + }, + shortcut_stats_for_nerds: { + component: 'shortcut', + text: 'statsForNerds' + }, + shortcut_toggle_cards: { + component: 'shortcut', + text: 'toggleCards' + }, + shortcut_popup_player: { + component: 'shortcut', + text: 'popupPlayer' + }, + shortcut_go_to_search_box: { + component: 'shortcut', + text: 'goToSearchBox', + value: { + keys: { + 191: { + key: '/' + } + } + } + }, + shortcut_like_shortcut: { + component: 'shortcut', + text: 'like' + }, + shortcut_dislike_shortcut: { + component: 'shortcut', + text: 'dislike' + }, + shortcut_subscribe: { + component: 'shortcut', + text: 'subscribe' + }, + shortcut_dark_theme: { + component: 'shortcut', + text: 'darkTheme' + } + } + } + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'transparent', + 'stroke': 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': '1.75' + }, + + path: { + component: 'path', + attr: { + 'd': 'M18 3a3 3 0 00-3 3v12a3 3 0 003 3 3 3 0 003-3 3 3 0 00-3-3H6a3 3 0 00-3 3 3 3 0 003 3 3 3 0 003-3V6a3 3 0 00-3-3 3 3 0 00-3 3 3 3 0 003 3h12a3 3 0 003-3 3 3 0 00-3-3z' + } + } + } + }, + label: { + component: 'span', + text: 'shortcuts' + } + }, + blacklist: { + component: 'button', + class: 'satus-button--blacklist', + category: true, + on: { + click: { + section: { + component: 'section', + variant: 'card', + + blacklist_activate: { + component: 'switch', + text: 'activate' + } + }, + + section2: { + component: 'section', + variant: 'card', + + channels: { + component: 'button', + text: 'channels', + on: { + click: { + component: 'section', + variant: 'card', + on: { + render: function () { + var self = this, + blacklist = satus.storage.get('blacklist'); + + if (blacklist && blacklist.channels) { + var list = {}; + + for (var item in blacklist.channels) { + if (blacklist.channels[item] !== false) { + var title = blacklist.channels[item].title || ''; + + list[item] = { + type: 'section', + text: title.length > 20 ? title.substr(0, 20) + '...' : title, + class: 'satus-section--blacklist', + style: { + 'background-image': 'url(' + blacklist.channels[item].preview + ')', + 'background-color': '#000' + }, + + section: { + type: 'section', + + delete: { + type: 'button', + icon: '', + onclick: function () { + delete blacklist.channels[item]; + + satus.storage.set('blacklist', blacklist); + + this.classList.add('removing'); + + setTimeout(function () { + self.remove(); + }, 250); + } + } + } + }; + } + } + + if (Object.keys(list).length === 0) { + list.error = { + type: 'span', + text: 'empty' + }; + } + + satus.render(list, this); + } else { + satus.render({ + component: 'span', + text: 'empty' + }, this); + } + } + } + } + } + }, + videos: { + component: 'button', + text: 'videos', + on: { + click: { + component: 'section', + variant: 'card', + on: { + render: function () { + var self = this, + blacklist = satus.storage.get('blacklist'); + + if (blacklist && blacklist.videos) { + let list = {}; + + for (let item in blacklist.videos) { + if (blacklist.videos[item] !== false) { + let title = blacklist.videos[item].title || ''; + + list[item] = { + type: 'section', + text: title.length > 20 ? title.substr(0, 20) + '...' : title, + class: 'satus-section--blacklist', + style: { + 'background-image': 'url(https://img.youtube.com/vi/' + item + '/0.jpg)' + }, + + section: { + type: 'section', + + delete: { + type: 'button', + icon: '', + onclick: function () { + delete blacklist.videos[item]; + + satus.storage.set('blacklist', blacklist); + this.parentNode.parentNode.classList.add('removing'); + + setTimeout(function () { + self.parentNode.parentNode.remove(); + }, 250); + } + } + } + }; + } + } + + if (Object.keys(list).length === 0) { + list.section = { + component: 'span', + text: 'empty' + }; + } + + satus.render(list, this); + } else { + satus.render({ + component: 'span', + text: 'empty' + }, this); + } + } + } + } + } + } + } + } + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'transparent', + 'stroke': 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': 1.75 + }, + + circle: { + component: 'circle', + attr: { + 'cx': 12, + 'cy': 12, + 'r': 10 + } + }, + path: { + component: 'path', + attr: { + 'd': 'M4.93 4.93l14.14 14.14' + } + } + } + }, + label: { + component: 'span', + text: 'blacklist' + } + }, + analyzer: { + component: 'button', + class: 'satus-button--analyzer', + category: true, + on: { + click: { + section: { + component: 'section', + variant: 'card', + + analyzer_activation: { + component: 'switch', + text: 'activate' + } + }, + section_2: { + component: 'section', + variant: 'card', + on: { + render: function () { + var data = satus.storage.get('analyzer') || {}, + all_data = {}, + all_data_sort = [], + all_time_value = 0, + current_date = new Date().toDateString(), + container = document.createElement('div'), + top_text_container = document.createElement('div'), + today_at = document.createElement('div'), + watch_time = document.createElement('div'), + all_time = document.createElement('div'), + chart = document.createElement('div'), + bottom_text_container = document.createElement('div'); + + container.className = 'analyzer-container'; + top_text_container.className = 'analyzer-top-text'; + watch_time.className = 'analyzer-watch-time'; + today_at.className = 'analyzer-today-at'; + all_time.className = 'analyzer-all-time'; + chart.className = 'analyzer-chart'; + bottom_text_container.className = 'analyzer-bottom'; + + let currentDateData = data[current_date]; + if (currentDateData) { + for (let i in currentDateData) { + if (currentDateData[i]) { + for (let j in currentDateData[i]) { + if (!all_data[j]) { + all_data[j] = 0; + } + + all_data[j] += currentDateData[i][j]; + } + } + } + } + + for (let i in all_data) { + all_data_sort.push([i, all_data[i]]); + all_time_value += all_data[i]; + } + + all_data_sort.sort(function (a, b) { + return b[1] - a[1]; + }); + + var now_minutes = new Date().getMinutes(); + + watch_time.innerText = satus.locale.get('watchTime'); + today_at.innerText = satus.locale.get('todayAt') + ' ' + (new Date().getHours() + ':' + (now_minutes < 10 ? '0' + now_minutes : now_minutes)); + all_time.innerText = Math.floor(all_time_value / 60) + 'h ' + (all_time_value - Math.floor(all_time_value / 60) * 60) + 'm'; + + let h = 0; + + for (let i = 0; i < 4; i++) { + let column = document.createElement('div'); + + column.className = 'analyzer-column'; + + for (let j = 0; j < 6; j++) { + let hours = h + ':00'; + + h++; + + let data_column = document.createElement('div'); + + data_column.className = 'analyzer-data-column'; + + if (currentDateData && currentDateData[hours]) { + for (let k in currentDateData[hours]) { + let block = document.createElement('div'); + + block.className = 'analyzer-data'; + + let height = data[current_date][hours][k] * 100 / 60; + + block.title = k; + block.style.height = height + '%'; + + if (k === all_data_sort[0][0]) { + block.className += ' first'; + } else if (k === all_data_sort[1][0]) { + block.className += ' second'; + } else if (k === all_data_sort[2][0]) { + block.className += ' third'; + } + + data_column.appendChild(block); + } + } + + column.appendChild(data_column); + } + + chart.appendChild(column); + } + + + for (let i = 0; i < 3; i++) { + if (all_data_sort[i]) { + let cont = document.createElement('div'), + label = document.createElement('div'), + value = document.createElement('div'); + + label.className = 'label'; + + label.innerText = all_data_sort[i][0]; + value.innerText = Math.floor(all_data_sort[i][1] / 60) + 'h ' + (all_data_sort[i][1] - Math.floor(all_data_sort[i][1] / 60) * 60) + 'm'; + + cont.appendChild(label); + cont.appendChild(value); + bottom_text_container.appendChild(cont); + } + } + + container.appendChild(all_time); + container.appendChild(chart); + this.appendChild(top_text_container); + top_text_container.appendChild(watch_time); + top_text_container.appendChild(today_at); + container.appendChild(bottom_text_container); + this.appendChild(container); + } + } + } + } + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'transparent', + stroke: 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': 1.75 + }, + + path: { + component: 'path', + attr: { + d: 'M21.21 15.89A10 10 0 118 2.83M22 12A10 10 0 0012 2v10z' + } + } + } + }, + label: { + component: 'span', + text: 'analyzer' + } + } + } + } }; function exportData() { - if (location.href.indexOf('action=export') !== -1) { - var blob; - - try { - var data = Object.assign({}, satus.storage.data); - - delete data.analyzer; - delete data.blacklist; - delete data.watched; - - blob = new Blob([JSON.stringify(data)], { - type: 'application/json;charset=utf-8' - }); - } catch (error) { - return modalError(error); - } - - satus.render({ - component: 'modal', - - label: { - component: 'span', - text: 'areYouSureYouWantToExportTheData' - }, - actions: { - component: 'section', - variant: 'actions', - - ok: { - component: 'button', - text: 'ok', - on: { - click: function () { - try { - chrome.permissions.request({ - permissions: ['downloads'] - }, function (granted) { - if (granted) { - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: 'improvedtube.txt', - saveAs: true - }, function () { - setTimeout(function () { - close(); - }, 1000); - }); - } - }); - } catch (error) { - return modalError(error); - } - - this.parentNode.parentNode.parentNode.close(); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.parentNode.parentNode.parentNode.close(); - } - } - } - } - }); - } + if (location.href.indexOf('action=export') !== -1) { + var blob; + + try { + var data = Object.assign({}, satus.storage.data); + + delete data.analyzer; + delete data.blacklist; + delete data.watched; + + blob = new Blob([JSON.stringify(data)], { + type: 'application/json;charset=utf-8' + }); + } catch (error) { + return modalError(error); + } + + satus.render({ + component: 'modal', + + label: { + component: 'span', + text: 'areYouSureYouWantToExportTheData' + }, + actions: { + component: 'section', + variant: 'actions', + + ok: { + component: 'button', + text: 'ok', + on: { + click: function () { + try { + chrome.permissions.request({ + permissions: ['downloads'] + }, function (granted) { + if (granted) { + chrome.downloads.download({ + url: URL.createObjectURL(blob), + filename: 'improvedtube.txt', + saveAs: true + }, function () { + setTimeout(function () { + close(); + }, 1000); + }); + } + }); + } catch (error) { + return modalError(error); + } + + this.parentNode.parentNode.parentNode.close(); + } + } + }, + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.parentNode.parentNode.parentNode.close(); + } + } + } + } + }); + } } function importData() { - if (location.href.indexOf('action=import') !== -1) { - satus.render({ - component: 'modal', - - label: { - component: 'span', - text: 'areYouSureYouWantToImportTheData' - }, - actions: { - component: 'section', - variant: 'actions', - - ok: { - component: 'button', - text: 'ok', - on: { - click: function () { - var input = document.createElement('input'); - - input.type = 'file'; - - input.addEventListener('change', function () { - var file_reader = new FileReader(); - - file_reader.onload = function () { - var data = JSON.parse(this.result); - - for (var key in data) { - satus.storage.set(key, data[key]); - } - - close(); - }; - - file_reader.readAsText(this.files[0]); - }); - - input.click(); - - this.parentNode.parentNode.parentNode.close(); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.parentNode.parentNode.parentNode.close(); - } - } - } - } - }); - } + if (location.href.indexOf('action=import') !== -1) { + satus.render({ + component: 'modal', + + label: { + component: 'span', + text: 'areYouSureYouWantToImportTheData' + }, + actions: { + component: 'section', + variant: 'actions', + + ok: { + component: 'button', + text: 'ok', + on: { + click: function () { + var input = document.createElement('input'); + + input.type = 'file'; + + input.addEventListener('change', function () { + var file_reader = new FileReader(); + + file_reader.onload = function () { + var data = JSON.parse(this.result); + + for (var key in data) { + satus.storage.set(key, data[key]); + } + + close(); + }; + + file_reader.readAsText(this.files[0]); + }); + + input.click(); + + this.parentNode.parentNode.parentNode.close(); + } + } + }, + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.parentNode.parentNode.parentNode.close(); + } + } + } + } + }); + } } @@ -7191,35 +7205,35 @@ function importData() { satus.parents(skeleton, false); satus.storage.attributes = { - theme: true, - improvedtube_home: true, - title_version: true, - it_general: true, - it_appearance: true, - it_themes: true, - it_player: true, - it_playlist: true, - it_channel: true, - it_shortcuts: true, - it_blacklist: true, - it_analyzer: true + theme: true, + improvedtube_home: true, + title_version: true, + it_general: true, + it_appearance: true, + it_themes: true, + it_player: true, + it_playlist: true, + it_channel: true, + it_shortcuts: true, + it_blacklist: true, + it_analyzer: true }; satus.storage.import(function (items) { - var language = items.language || window.navigator.language; + var language = items.language || window.navigator.language; - satus.locale.import(language, '_locales/', function () { - satus.render(skeleton); + satus.locale.import(language, '_locales/', function () { + satus.render(skeleton); - exportData(); - importData(); - }); + exportData(); + importData(); + }); }); chrome.runtime.sendMessage({ - name: 'migration' + name: 'migration' }, function () { - satus.storage.import(function (items) { + satus.storage.import(function (items) { - }); + }); }); \ No newline at end of file diff --git a/ui/styles.css b/ui/styles.css index 37c4afc2c..d6f4319b6 100644 --- a/ui/styles.css +++ b/ui/styles.css @@ -1,312 +1,372 @@ /*-------------------------------------------------------------- >>> STYLES: ---------------------------------------------------------------- +# Fonts # Document # Header # Main --------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# FONTS +--------------------------------------------------------------*/ + +@font-face { + font-family: 'Roboto'; + + src: url(fonts/Roboto-Regular.ttf); +} + +@font-face { + font-family: 'Roboto'; + font-weight: 300; + + src: url(fonts/Roboto-Light.ttf); +} + +@font-face { + font-family: 'Roboto'; + font-weight: 500; + + src: url(fonts/Roboto-Medium.ttf); +} + + /*-------------------------------------------------------------- # DOCUMENT --------------------------------------------------------------*/ body { - --satus-primary: #ff4158; - --it-category-background: linear-gradient(135deg, #ff4158, #ff001f); - --it-category-shadow: rgba(222, 0, 27, .7); - --it-appearance-shadow-color: #dfdfdf; + --satus-primary: #ff4158; + --it-category-background: linear-gradient(135deg, #ff4158, #ff001f); + --it-category-shadow: rgba(222, 0, 27, .7); + --it-appearance-shadow-color: #dfdfdf; } body[data-theme=dark] { - --satus-primary: #ff4158; - --satus-section-opaque-background: #333333; + --satus-primary: #ff4158; + --satus-section-opaque-background: #333; } body[data-theme=night] { - --satus-primary: #9ebdfa; - --satus-header-background: #24478f; - --satus-header-text: #fafafa; - --satus-layers-background: #142952; - --satus-layers-text: #fafafa; - --satus-section-opaque-background: #1f3d7a; - --satus-modal-background: #24478f; - --satus-modal-text: #fafafa; - --satus-hover: rgba(255, 255, 255, .07); - --it-category-background: linear-gradient(135deg, #2e5cb8, #234790); - --it-category-shadow: rgb(41, 82, 163, .7); - --it-appearance-shadow-color: #558bf6; - --satus-switch-track: #ccc; + --satus-primary: #9ebdfa; + --satus-header-background: #24478f; + --satus-header-text: #fafafa; + --satus-layers-background: #142952; + --satus-layers-text: #fafafa; + --satus-section-opaque-background: #1f3d7a; + --satus-modal-background: #24478f; + --satus-modal-text: #fafafa; + --satus-hover: rgba(255, 255, 255, .07); + --it-category-background: linear-gradient(135deg, #2e5cb8, #234790); + --it-category-shadow: rgb(41, 82, 163, .7); + --it-appearance-shadow-color: #558bf6; + --satus-switch-track: #ccc; } body[data-theme=dawn] { - --satus-primary: #e2367e; - --satus-header-background: #e98f63; - --satus-header-text: #fafafa; - --satus-layers-background: #e23681; - --satus-layers-text: #eee; - --satus-section-opaque-background: rgb(255, 255, 255, .2); - --satus-modal-background: #ed8e5e; - --satus-modal-text: #fafafa; - --satus-hover: rgba(255, 255, 255, .07); - --it-category-background: linear-gradient(135deg, #e98f63, #e27036); - --it-category-shadow: rgb(226, 112, 54, .7); - --it-appearance-shadow-color: #e86e30; - --satus-switch-track: #ccc; + --satus-primary: #e2367e; + --satus-header-background: #e98f63; + --satus-header-text: #fafafa; + --satus-layers-background: #e23681; + --satus-layers-text: #eee; + --satus-section-opaque-background: rgb(255, 255, 255, .2); + --satus-modal-background: #ed8e5e; + --satus-modal-text: #fafafa; + --satus-hover: rgba(255, 255, 255, .07); + --it-category-background: linear-gradient(135deg, #e98f63, #e27036); + --it-category-shadow: rgb(226, 112, 54, .7); + --it-appearance-shadow-color: #e86e30; + --satus-switch-track: #ccc; } body[data-theme=sunset] { - --satus-primary: #cc666e; - --satus-header-background: #af5a5e; - --satus-header-text: #fafafa; - --satus-layers-background: #2f3364; - --satus-layers-text: #eee; - --satus-section-opaque-background: rgb(138, 92, 96, .5); - --satus-modal-background: #a96165; - --satus-modal-text: #fafafa; - --satus-hover: rgba(255, 255, 255, .07); - --it-category-background: linear-gradient(135deg, #e98f63, #e27036); - --it-category-shadow: rgb(226, 112, 54, .7); - --it-appearance-shadow-color: #e86e30; - --satus-switch-track: #ccc; + --satus-primary: #cc666e; + --satus-header-background: #af5a5e; + --satus-header-text: #fafafa; + --satus-layers-background: #2f3364; + --satus-layers-text: #eee; + --satus-section-opaque-background: rgb(138, 92, 96, .5); + --satus-modal-background: #a96165; + --satus-modal-text: #fafafa; + --satus-hover: rgba(255, 255, 255, .07); + --it-category-background: linear-gradient(135deg, #e98f63, #e27036); + --it-category-shadow: rgb(226, 112, 54, .7); + --it-appearance-shadow-color: #e86e30; + --satus-switch-track: #ccc; } body[data-theme=desert] { - --satus-primary: #f83; - --satus-header-background: #8cb7f2; - --satus-header-text: #fafafa; - --satus-layers-background: #e6bf4c; - --satus-layers-text: #4d4d4d; - --satus-section-opaque-background: #f5e0a3; - --satus-modal-background: #8cb7f2; - --satus-modal-text: #fafafa; - --satus-hover: rgba(255, 255, 255, .07); - --it-category-background: linear-gradient(135deg, #f83, #d15700); - --it-category-shadow: rgb(230, 96, 0, .7); - --it-appearance-shadow-color: #5e9aed; - --satus-switch-track: #ccc; + --satus-primary: #f83; + --satus-header-background: #8cb7f2; + --satus-header-text: #fafafa; + --satus-layers-background: #e6bf4c; + --satus-layers-text: #4d4d4d; + --satus-section-opaque-background: #f5e0a3; + --satus-modal-background: #8cb7f2; + --satus-modal-text: #fafafa; + --satus-hover: rgba(255, 255, 255, .07); + --it-category-background: linear-gradient(135deg, #f83, #d15700); + --it-category-shadow: rgb(230, 96, 0, .7); + --it-appearance-shadow-color: #5e9aed; + --satus-switch-track: #ccc; } body[data-theme=plain] { - --satus-primary: #badec9; - --satus-header-background: #9fc6af; - --satus-header-text: #404040; - --satus-layers-background: #dea975; - --satus-layers-text: #404040; - --satus-section-opaque-background: #e2b88d; - --satus-modal-background: #abceb8; - --satus-modal-text: #404040; - --satus-hover: rgba(255, 255, 255, .07); - --it-category-background: linear-gradient(135deg, #abceb8, #609f7a); - --it-category-shadow: #70a987b3; - --it-appearance-shadow-color: #d7995b; - --satus-switch-track: #ccc; + --satus-primary: #badec9; + --satus-header-background: #9fc6af; + --satus-header-text: #404040; + --satus-layers-background: #dea975; + --satus-layers-text: #404040; + --satus-section-opaque-background: #e2b88d; + --satus-modal-background: #abceb8; + --satus-modal-text: #404040; + --satus-hover: rgba(255, 255, 255, .07); + --it-category-background: linear-gradient(135deg, #abceb8, #609f7a); + --it-category-shadow: #70a987b3; + --it-appearance-shadow-color: #d7995b; + --satus-switch-track: #ccc; } body[data-theme=black] { - --satus-primary: #ff4158; + --satus-primary: #ff4158; } body { - font-family: 'Roboto', sans-serif; - font-size: 14px; - overflow: hidden; - margin: 0; + font-family: 'Roboto', sans-serif; + font-size: 14px; + + overflow: hidden; + + margin: 0; } -.satus-button--email{ - padding: 8px; - cursor: pointer; - text-align: center; - justify-content: center; - letter-spacing: .125px; - height: auto; - color: var(--satus-primary); +.satus-button--email { + height: auto; + padding: 8px; + + cursor: pointer; + text-align: center; + letter-spacing: .125px; + + color: var(--satus-primary); + + justify-content: center; } + /*-------------------------------------------------------------- # HEADER --------------------------------------------------------------*/ .satus-header { - height: 56px; + height: 56px; } .satus-header .satus-section { - width: calc(100% - 96px); - flex-wrap: nowrap; - flex: 1; + width: calc(100% - 96px); + + flex-wrap: nowrap; + flex: 1; } .satus-header .satus-section--align-start>* { - margin-right: 8px; + margin-right: 8px; } .satus-header .satus-section--align-end>* { - margin-left: 8px; + margin-left: 8px; } .satus-header .satus-button { - width: 40px; - min-width: 40px; - height: 40px; - padding: 8px; - color: inherit; - border-radius: 50%; + width: 40px; + min-width: 40px; + height: 40px; + padding: 8px; + + color: inherit; + border-radius: 50%; } .satus-header .satus-button:hover { - cursor: pointer; - background: rgba(0, 0, 0, .04); + cursor: pointer; + + background: rgba(0, 0, 0, .04); } .satus-header .satus-button>svg { - stroke: currentcolor; - stroke-linecap: round; - stroke-linejoin: round; - fill: none; + stroke: currentcolor; + stroke-linecap: round; + stroke-linejoin: round; + fill: none; } .satus-header .satus-span--title { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - flex: 1; + overflow: hidden; + + white-space: nowrap; + text-overflow: ellipsis; + + flex: 1; } body[data-title_version='true'] .satus-span--title::after { - font: 700 10px sans-serif; - margin: 0 0 0 4px; - content: attr(data-version); - opacity: .6; + font: 700 10px sans-serif; + + margin: 0 0 0 4px; + + content: attr(data-version); + + opacity: .6; } .satus-input--search[type=text] { - position: absolute; - z-index: 1; - right: 60px; - display: none; - width: calc(100vw - 72px); - height: 36px; - margin: 0; - padding-right: 36px; - background: var(--satus-header-background); + position: absolute; + z-index: 1; + right: 60px; + + display: none; + + width: calc(100vw - 72px); + height: 36px; + margin: 0; + padding-right: 36px; + + background: var(--satus-header-background); } .satus-input--search:focus { - box-shadow: 0 0 0 4px rgba(13, 110, 253, .25); + box-shadow: 0 0 0 4px rgba(13, 110, 253, .25); } .search-mode .satus-input--search { - display: block; + display: block; } .search-mode--results { - border-bottom-right-radius: unset; - border-bottom-left-radius: unset; + border-bottom-right-radius: unset; + border-bottom-left-radius: unset; } .satus-header .satus-button--close-search { - position: absolute; - z-index: 1; - right: 68px; - display: none; - width: 28px; - min-width: 28px; - height: 28px; - padding: 4px !important; + position: absolute; + z-index: 1; + right: 68px; + + display: none; + + width: 28px; + min-width: 28px; + height: 28px; + padding: 4px !important; } .search-mode .satus-button--close-search { - display: block; + display: block; } .satus-header .satus-button--close-search>svg { - stroke: none; - fill: currentColor; + stroke: none; + fill: currentColor; } .search-results { - top: 48px; - overflow: hidden; - height: calc(100vh - 48px); + top: 48px; + + overflow: hidden; + + height: calc(100vh - 48px); } .search-results .satus-modal__scrim { - top: 8px; - backdrop-filter: none; + top: 8px; + + backdrop-filter: none; } .search-results .satus-modal__surface { - position: absolute; - top: 0; - left: 12px; - width: calc(100% - 72px); - min-width: unset; - max-width: unset; - margin: 0; - padding: 0; - transform-origin: top; - border-top-left-radius: 0; - border-top-right-radius: 0; - background-color: var(--satus-layers-background); - box-shadow: inset 0 5px 4px -4px rgba(0, 0, 0, .24); + position: absolute; + top: 0; + left: 12px; + + width: calc(100% - 72px); + min-width: unset; + max-width: unset; + margin: 0; + padding: 0; + + transform-origin: top; + + border-top-left-radius: 0; + border-top-right-radius: 0; + background-color: var(--satus-layers-background); + box-shadow: inset 0 5px 4px -4px rgba(0, 0, 0, .24); } .search-results .satus-section--card { - width: calc(100% - 16px); - margin: 8px; + width: calc(100% - 16px); + margin: 8px; } .search-results .satus-section>* { - width: 100%; - height: 40px; - padding: 0 16px; + width: 100%; + height: 40px; + padding: 0 16px; } .search-results .satus-select__label { - text-align: left; + text-align: left; } .search-results .satus-section--label { - font-size: 15px; - font-weight: 500; - display: block; - width: calc(100% - 16px); - max-width: 900px; - margin: 8px auto 0 12px; + font-size: 15px; + font-weight: 500; + + display: block; + + width: calc(100% - 16px); + max-width: 900px; + margin: 8px auto 0 12px; } .satus-modal--vertical .satus-modal__surface { - position: absolute; - top: 8px; - right: 8px; - left: auto; - min-width: 180px; - max-width: 180px; - transform-origin: right top; + position: absolute; + top: 8px; + right: 8px; + left: auto; + + min-width: 180px; + max-width: 180px; + + transform-origin: right top; } .satus-modal--vertical .satus-button { - display: flex; - height: 36px; - padding: 0 16px; - align-items: center; + display: flex; + + height: 36px; + padding: 0 16px; + + align-items: center; } .satus-modal--vertical .satus-button svg { - width: 20px; - height: 18px; - margin: 0 14px 0 0; - opacity: .75; - fill: none; - stroke: var(--satus-primary); - flex: 0 0 20px; + width: 20px; + height: 18px; + margin: 0 14px 0 0; + + opacity: .75; + + fill: none; + stroke: var(--satus-primary); + flex: 0 0 20px; } .satus-modal--vertical .satus-button .satus-span { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; + overflow: hidden; + + white-space: nowrap; + text-overflow: ellipsis; } @@ -315,126 +375,141 @@ body[data-title_version='true'] .satus-span--title::after { --------------------------------------------------------------*/ body:not([data-improvedtube_home='list']) .satus-section--home { - position: absolute; - left: 0; - overflow: hidden; - width: 100%; + position: absolute; + left: 0; + + overflow: hidden; + + width: 100%; } body[data-improvedtube_home='list'] .satus-section--home { - flex-direction: column; - box-sizing: border-box; - width: 100%; - max-width: 900px; - margin: 8px auto; - padding: 8px 0; - color: var(--satus-section-card-text); - border: 1px solid rgba(0, 0, 0, .1); - border-radius: 8px; - background: var(--satus-section-opaque-background); - justify-content: stretch; + flex-direction: column; + + box-sizing: border-box; + width: 100%; + max-width: 900px; + margin: 8px auto; + padding: 8px 0; + + color: var(--satus-section-card-text); + border: 1px solid rgba(0, 0, 0, .1); + border-radius: 8px; + background: var(--satus-section-opaque-background); + + justify-content: stretch; } body:not([data-improvedtube_home='list']) .satus-section--home .satus-button { - display: flex; - flex-direction: column; - width: calc(100% / 3); - height: 96px; - margin: 16px 0 0; - padding: 0; - cursor: pointer; - align-items: center; + display: flex; + flex-direction: column; + + width: calc(100% / 3); + height: 96px; + margin: 16px 0 0; + padding: 0; + + cursor: pointer; + + align-items: center; } body[data-improvedtube_home='list'] .satus-section--home>.satus-button { - width: 100%; - padding: 0 16px; + width: 100%; + padding: 0 16px; } body[data-improvedtube_home='list'] .satus-section--home>.satus-button>span>svg { - width: 20px; - margin: 2px 16px 0 0; - color: var(--satus-primary); + width: 20px; + margin: 2px 16px 0 0; + + color: var(--satus-primary); } body:not([data-improvedtube_home='list'])[page] .satus-section--home .satus-button { - width: 96px; + width: 96px; } body:not([data-improvedtube_home='list']) .satus-section--home .satus-button:hover { - background: transparent; + background: transparent; } body:not([data-improvedtube_home='list']) .satus-section--home .satus-button> :nth-child(1) { - width: 60px; - height: 60px; - padding: 16px; - transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; - color: rgba(255, 255, 255, .85); - border-radius: 50%; - background: linear-gradient(135deg, #ff4158, #ff001f); - box-shadow: 0 2px 1px 1px rgb(222, 0, 27, .7), 0 3px 5px rgb(0, 0, 0, .35); + width: 60px; + height: 60px; + padding: 16px; + + transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; + + color: rgba(255, 255, 255, .85); + border-radius: 50%; + background: linear-gradient(135deg, #ff4158, #ff001f); + box-shadow: 0 2px 1px 1px rgb(222, 0, 27, .7), 0 3px 5px rgb(0, 0, 0, .35); } body:not([data-improvedtube_home='list']) .satus-section--home .satus-button:hover> :nth-child(1) { - transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; - transform: translateY(4px) scale(.975); - box-shadow: 0 1px 1px 0 rgb(222, 0, 27, .7), 0 1px 2px rgba(0, 0, 0, .35); + transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; + transform: translateY(4px) scale(.975); + + box-shadow: 0 1px 1px 0 rgb(222, 0, 27, .7), 0 1px 2px rgba(0, 0, 0, .35); } body:not([data-improvedtube_home='list']) .satus-section--home .satus-button> :nth-child(2) { - overflow: hidden; - width: calc(100% - 16px); - margin: 8px 0 0; - text-align: center; - white-space: nowrap; - text-overflow: ellipsis; + overflow: hidden; + + width: calc(100% - 16px); + margin: 8px 0 0; + + text-align: center; + white-space: nowrap; + text-overflow: ellipsis; } body:not([data-improvedtube_home='list']) .satus-button--general svg { - position: relative; + position: relative; } body:not([data-improvedtube_home='list']) .satus-button--appearance svg { - position: relative; - top: 1px; - left: 1px; + position: relative; + top: 1px; + left: 1px; } body:not([data-improvedtube_home='list']) .satus-button--themes svg { - position: relative; + position: relative; } body:not([data-improvedtube_home='list']) .satus-button--player svg { - position: relative; - top: 1px; - left: 2px; + position: relative; + top: 1px; + left: 2px; } body:not([data-improvedtube_home='list']) .satus-button--playlist svg { - position: relative; - top: 1px; + position: relative; + top: 1px; } body:not([data-improvedtube_home='list']) .satus-button--shortcuts svg { - position: relative; - top: 1px; + position: relative; + top: 1px; } body:not([data-improvedtube_home='list']) .satus-button--blacklist svg { - position: relative; - top: 1px; + position: relative; + top: 1px; } body:not([data-improvedtube_home='list']) .satus-button--analyzer svg { - position: relative; - top: 1px; + position: relative; + top: 1px; } body:not([data-improvedtube_home='list']) .satus-button--email svg { - position: relative; - top: 1px; + position: relative; + top: 1px; } + body[data-it_general='false'] .satus-button--general, body[data-it_appearance='false'] .satus-button--appearance, body[data-it_themes='false'] .satus-button--themes, @@ -445,7 +520,7 @@ body[data-it_shortcuts='false'] .satus-button--shortcuts, body[data-it_blacklist='false'] .satus-button--blacklist, body[data-it_analyzer='false'] .satus-button--analyzer, body[data-it_analyzer='false'] .satus-button--email { - display: none; + display: none; } @@ -454,136 +529,161 @@ body[data-it_analyzer='false'] .satus-button--email { --------------------------------------------------------------*/ .satus-section--appearance { - position: relative; - width: 100%; - max-width: 900px; - height: 100%; - margin: auto; + position: relative; + + width: 100%; + max-width: 900px; + height: 100%; + margin: auto; } .satus-section--appearance .satus-button { - position: absolute; - box-sizing: border-box; - padding: 0; - transition-duration: .5s; - transition-property: transform, box-shadow; - transform: scale(1); - text-align: center; - border: 1px solid var(--it-appearance-shadow-color); - border-radius: 6px; - box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0); - justify-content: center; - align-items: center; + position: absolute; + + box-sizing: border-box; + padding: 0; + + transition-duration: .5s; + transition-property: transform, box-shadow; + transform: scale(1); + text-align: center; + + border: 1px solid var(--it-appearance-shadow-color); + border-radius: 6px; + box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0); + + justify-content: center; + align-items: center; } .satus-section--appearance .satus-button:hover { - z-index: 9; - transition-duration: .25s; - transform: scale(1.03) translate(-8px, -4px); - box-shadow: 1px 1px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 2px 2px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 3px 3px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 4px 4px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 5px 6px 4px 0 rgba(0, 0, 0, .1); + z-index: 9; + + transition-duration: .25s; + transform: scale(1.03) translate(-8px, -4px); + + box-shadow: 1px 1px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 2px 2px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 3px 3px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 4px 4px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 5px 6px 4px 0 rgba(0, 0, 0, .1); } .satus-section--appearance .satus-button--header { - top: 16px; - left: 16px; - width: calc(100% - 32px); - height: 40px; - min-height: auto; - color: var(--satus-modal-text); - background-color: var(--satus-modal-background); + top: 16px; + left: 16px; + + width: calc(100% - 32px); + height: 40px; + min-height: auto; + + color: var(--satus-modal-text); + background-color: var(--satus-modal-background); } .satus-section--appearance .satus-button--header:hover { - transform: scale(1.03) translate(-9px, -4px); + transform: scale(1.03) translate(-9px, -4px); } .satus-section--appearance .satus-button--player { - top: 64px; - left: 16px; - width: calc(70% - 32px); - height: 96px; - min-height: auto; - color: #eee; - border-color: #333; - background-color: #444; + top: 64px; + left: 16px; + + width: calc(70% - 32px); + height: 96px; + min-height: auto; + + color: #eee; + border-color: #333; + background-color: #444; } .satus-section--appearance .satus-button--player .label { - color: #fff; + color: #fff; } .satus-section--appearance .satus-button--player:hover { - transform: scale(1.03) translate(-7px, -4px); - box-shadow: 1px 1px 0 0 #333, 2px 2px 0 0 #333, 3px 3px 0 0 #333, 4px 4px 0 0 #333, 5px 6px 4px 0 rgba(0, 0, 0, .1); + transform: scale(1.03) translate(-7px, -4px); + + box-shadow: 1px 1px 0 0 #333, 2px 2px 0 0 #333, 3px 3px 0 0 #333, 4px 4px 0 0 #333, 5px 6px 4px 0 rgba(0, 0, 0, .1); } .satus-section--appearance .satus-button--details { - top: 168px; - left: 16px; - width: calc(70% - 32px); - height: 56px; - min-height: auto; - color: var(--satus-modal-text); - background-color: var(--satus-modal-background); + top: 168px; + left: 16px; + + width: calc(70% - 32px); + height: 56px; + min-height: auto; + + color: var(--satus-modal-text); + background-color: var(--satus-modal-background); } .satus-section--appearance .satus-button--description { - top: 13.5rem; - left: 1rem; - width: calc(70% - 2rem); - height: 3.5rem; - min-height: 3.5rem; - color: var(--satus-modal-text); - background-color: var(--satus-modal-background); + top: 13.5rem; + left: 1rem; + + width: calc(70% - 2rem); + height: 3.5rem; + min-height: 3.5rem; + + color: var(--satus-modal-text); + background-color: var(--satus-modal-background); } .satus-section--appearance .satus-button--comments { - top: 232px; - left: 16px; - width: calc(70% - 32px); - height: 80px; - min-height: auto; - color: var(--satus-modal-text); - background-color: var(--satus-modal-background); + top: 232px; + left: 16px; + + width: calc(70% - 32px); + height: 80px; + min-height: auto; + + color: var(--satus-modal-text); + background-color: var(--satus-modal-background); } .satus-section--appearance .satus-button--footer { - top: 320px; - left: 16px; - width: calc(70% - 32px); - height: 64px; - min-height: auto; - color: var(--satus-modal-text); - background-color: var(--satus-modal-background); + top: 320px; + left: 16px; + + width: calc(70% - 32px); + height: 64px; + min-height: auto; + + color: var(--satus-modal-text); + background-color: var(--satus-modal-background); } .satus-section--appearance .satus-button--sidebar { - top: 64px; - left: calc(70% - 8px); - width: calc(30% - 8px); - height: 160px; - color: var(--satus-modal-text); - background-color: var(--satus-modal-background); + top: 64px; + left: calc(70% - 8px); + + width: calc(30% - 8px); + height: 160px; + + color: var(--satus-modal-text); + background-color: var(--satus-modal-background); } .satus-section--custom-player-size { - display: none; - flex-wrap: nowrap; - align-items: center; + display: none; + + flex-wrap: nowrap; + align-items: center; } .satus-select--player-size[data-value='custom']+.satus-section--custom-player-size { - display: flex; + display: flex; } .satus-section--custom-player-size>input { - width: auto; - text-align: center; + width: auto; + + text-align: center; } .satus-section--custom-player-size>span { - margin: 0 8px; - content: 'x'; + margin: 0 8px; + + content: 'x'; } @@ -599,206 +699,250 @@ body[data-it_analyzer='false'] .satus-button--email { .satus-label--desert-theme, .satus-label--plain-theme, .satus-label--black-theme { - display: flex; - width: auto; - height: 80px; - margin: 8px; - cursor: pointer; - color: #fff; - border-radius: 8px; - text-shadow: 0 1px 3px rgba(0, 0, 0, .7); - justify-content: space-between; - align-items: center; + display: flex; + + width: auto; + height: 80px; + margin: 8px; + + cursor: pointer; + + color: #fff; + border-radius: 8px; + text-shadow: 0 1px 3px rgba(0, 0, 0, .7); + + justify-content: space-between; + align-items: center; } .satus-label--default-theme { - background: #f0f0f0; + background: #f0f0f0; } .satus-label--dark-theme { - position: relative; - overflow: hidden; - background: linear-gradient(#0d1216, #353d46) !important; + position: relative; + + overflow: hidden; + + background: linear-gradient(#0d1216, #353d46) !important; } .satus-label--dark-theme::before { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - content: ''; - animation-name: satus-label--dark-theme; - animation-duration: 4s; - animation-timing-function: ease-in-out; - animation-iteration-count: infinite; - pointer-events: none; - background: radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%) !important; - background-repeat: no-repeat !important; - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px !important; - background-size: 50px 50px, 50px 50px, 100px 100px, 75px 75px !important; - filter: blur(8px); + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + animation-name: satus-label--dark-theme; + animation-duration: 4s; + animation-timing-function: ease-in-out; + animation-iteration-count: infinite; + pointer-events: none; + + background: radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%) !important; + background-repeat: no-repeat !important; + background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px !important; + background-size: 50px 50px, 50px 50px, 100px 100px, 75px 75px !important; + + filter: blur(8px); } @keyframes satus-label--dark-theme { - 0% { - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; - } - 50% { - background-position: 20px 20px, 230px -20px, 0 -40px, 160px 10px; - } - 100% { - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; - } + 0% { + background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; + } + + 50% { + background-position: 20px 20px, 230px -20px, 0 -40px, 160px 10px; + } + + 100% { + background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; + } } .satus-label--night-theme { - position: relative; - overflow: hidden; - animation-name: satus-label--night-theme; - animation-duration: .75s; - animation-iteration-count: infinite; - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5) !important; - background-repeat: no-repeat !important; - background-position: 75% 80%, 35% 65%, 30% 10%, 50% 40%, 10% 80%, 90% 10%, 0 0 !important; - background-size: 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, auto !important; + position: relative; + + overflow: hidden; + + animation-name: satus-label--night-theme; + animation-duration: .75s; + animation-iteration-count: infinite; + + background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5) !important; + background-repeat: no-repeat !important; + background-position: 75% 80%, 35% 65%, 30% 10%, 50% 40%, 10% 80%, 90% 10%, 0 0 !important; + background-size: 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, auto !important; } @keyframes satus-label--night-theme { - 0% { - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); - } - 25% { - background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); - } - 50% { - background-image: radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .9) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); - } - 75% { - background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); - } - 100% { - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); - } + 0% { + background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); + } + + 25% { + background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); + } + + 50% { + background-image: radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .9) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); + } + + 75% { + background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); + } + + 100% { + background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); + } } .satus-label--dawn-theme { - position: relative; - overflow: hidden; - background: linear-gradient(#ed74a9, #ffba99) !important; + position: relative; + + overflow: hidden; + + background: linear-gradient(#ed74a9, #ffba99) !important; } .satus-slabel-dawn-theme::before { - position: absolute; - right: 1rem; - bottom: -5rem; - width: 10rem; - height: 10rem; - content: ''; - animation-name: satus-label--dawn-theme; - animation-duration: .75s; - animation-iteration-count: infinite; - pointer-events: none; - border-radius: 50%; - background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; + position: absolute; + right: 1rem; + bottom: -5rem; + + width: 10rem; + height: 10rem; + + content: ''; + animation-name: satus-label--dawn-theme; + animation-duration: .75s; + animation-iteration-count: infinite; + pointer-events: none; + + border-radius: 50%; + background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; } @keyframes satus-label--dawn-theme { - 0% { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); - } - 50% { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .30) 20%, rgba(255, 255, 231, .30) 35%, rgba(255, 255, 231, .20) 35%, rgba(255, 255, 231, .20) 55%, rgba(255, 255, 231, .10) 55%, rgba(255, 255, 231, .10) 75%, transparent 75%); - } - 100% { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); - } + 0% { + background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); + } + + 50% { + background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .30) 20%, rgba(255, 255, 231, .30) 35%, rgba(255, 255, 231, .20) 35%, rgba(255, 255, 231, .20) 55%, rgba(255, 255, 231, .10) 55%, rgba(255, 255, 231, .10) 75%, transparent 75%); + } + + 100% { + background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); + } } .satus-label--sunset-theme { - position: relative; - overflow: hidden; - background: linear-gradient(#2f3364, #a96165) !important; + position: relative; + + overflow: hidden; + + background: linear-gradient(#2f3364, #a96165) !important; } .satus-label--sunset-theme::before { - position: absolute; - top: -1rem; - left: 50%; - overflow: hidden; - width: 8rem; - height: 8rem; - content: ''; - transform: translate(-50%, 0%); - pointer-events: none; - border-radius: 50%; - background: linear-gradient(#fa7965, #f56264, transparent) !important; + position: absolute; + top: -1rem; + left: 50%; + + overflow: hidden; + + width: 8rem; + height: 8rem; + + content: ''; + transform: translate(-50%, 0%); + pointer-events: none; + + border-radius: 50%; + background: linear-gradient(#fa7965, #f56264, transparent) !important; } .satus-label--desert-theme { - position: relative; - overflow: hidden; - background-image: radial-gradient(#ffe498 50%, transparent 50%), linear-gradient(#9dc2ee, #f5fdff) !important; - background-repeat: no-repeat !important; - background-position: -120px 36px, 0 !important; - background-size: 240%, 100% !important; + position: relative; + + overflow: hidden; + + background-image: radial-gradient(#ffe498 50%, transparent 50%), linear-gradient(#9dc2ee, #f5fdff) !important; + background-repeat: no-repeat !important; + background-position: -120px 36px, 0 !important; + background-size: 240%, 100% !important; } .satus-label--desert-theme::before { - position: absolute; - top: -100%; - left: 40%; - width: 10rem; - height: 10rem; - content: ''; - animation-name: satus-label--desert-theme; - animation-duration: .75s; - animation-delay: .5s; - animation-iteration-count: infinite; - pointer-events: none; - border-radius: 50%; - background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; + position: absolute; + top: -100%; + left: 40%; + + width: 10rem; + height: 10rem; + + content: ''; + animation-name: satus-label--desert-theme; + animation-duration: .75s; + animation-delay: .5s; + animation-iteration-count: infinite; + pointer-events: none; + + border-radius: 50%; + background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; } @keyframes satus-label--desert-theme { - 0% { - background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); - } - 50% { - background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .30) 20%, rgba(255, 255, 231, .30) 35%, rgba(255, 255, 231, .20) 35%, rgba(255, 255, 231, .20) 55%, rgba(255, 255, 231, .10) 55%, rgba(255, 255, 231, .1) 75%, transparent 75%); - } - 100% { - background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); - } + 0% { + background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); + } + + 50% { + background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .30) 20%, rgba(255, 255, 231, .30) 35%, rgba(255, 255, 231, .20) 35%, rgba(255, 255, 231, .20) 55%, rgba(255, 255, 231, .10) 55%, rgba(255, 255, 231, .1) 75%, transparent 75%); + } + + 100% { + background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); + } } .satus-label--plain-theme { - position: relative; - overflow: hidden; - background-image: radial-gradient(#dea975 50%, transparent 50%), radial-gradient(#e8b887 50%, transparent 50%), radial-gradient(#f1cc9f 50%, transparent 50%), radial-gradient(#f3ddb8 50%, transparent 50%), linear-gradient(#abceb8, #e7ede1) !important; - background-repeat: no-repeat !important; - background-position: -50px 50px, -370px 40px, 0 36px, -360px 26px, 0 !important; - background-size: 240%, 240%, 240%, 240%, 100% !important; + position: relative; + + overflow: hidden; + + background-image: radial-gradient(#dea975 50%, transparent 50%), radial-gradient(#e8b887 50%, transparent 50%), radial-gradient(#f1cc9f 50%, transparent 50%), radial-gradient(#f3ddb8 50%, transparent 50%), linear-gradient(#abceb8, #e7ede1) !important; + background-repeat: no-repeat !important; + background-position: -50px 50px, -370px 40px, 0 36px, -360px 26px, 0 !important; + background-size: 240%, 240%, 240%, 240%, 100% !important; } .satus-label--plain-theme::before { - position: absolute; - top: -70%; - left: 10%; - width: 7rem; - height: 7rem; - content: ''; - animation-name: satus-label--plain-theme; - animation-duration: .75s; - animation-delay: .2s; - animation-iteration-count: infinite; - pointer-events: none; - border-radius: 50%; - background: radial-gradient(#fff 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; + position: absolute; + top: -70%; + left: 10%; + + width: 7rem; + height: 7rem; + + content: ''; + animation-name: satus-label--plain-theme; + animation-duration: .75s; + animation-delay: .2s; + animation-iteration-count: infinite; + pointer-events: none; + + border-radius: 50%; + background: radial-gradient(#fff 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; } .satus-label--black-theme { - background: #000 !important; + background: #000 !important; } @@ -807,76 +951,95 @@ body[data-it_analyzer='false'] .satus-button--email { --------------------------------------------------------------*/ .satus-section.satus-section--blacklist { - position: relative; - overflow: hidden; - flex-direction: column; - width: calc(100% - 32px); - height: 116px; - margin: 8px 16px 0; - transition: opacity .25s; - opacity: 1; - border-radius: 10px; - background-color: #000; - background-position: center; - background-size: cover; - flex: unset; - align-items: flex-start; + position: relative; + + overflow: hidden; + flex-direction: column; + + width: calc(100% - 32px); + height: 116px; + margin: 8px 16px 0; + + transition: opacity .25s; + + opacity: 1; + border-radius: 10px; + background-color: #000; + background-position: center; + background-size: cover; + + flex: unset; + align-items: flex-start; } .satus-section.satus-section--blacklist.removing { - opacity: 0; + opacity: 0; } .satus-section.satus-section--blacklist::before { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - margin: 0; - content: ''; - background: rgba(0, 0, 0, .5); + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + margin: 0; + + content: ''; + + background: rgba(0, 0, 0, .5); } .satus-section.satus-section--blacklist>.label { - font-size: 16px; - font-weight: 700; - position: absolute; - z-index: 1; - bottom: 28px; - text-transform: uppercase; - opacity: 1; - color: #fff; + font-size: 16px; + font-weight: 700; + + position: absolute; + z-index: 1; + bottom: 28px; + + text-transform: uppercase; + + opacity: 1; + color: #fff; } .satus-section.satus-section--blacklist::after { - position: absolute; - z-index: 1; - bottom: 16px; - left: 16px; - content: attr(data-label); - color: rgba(255, 255, 255, .5); + position: absolute; + z-index: 1; + bottom: 16px; + left: 16px; + + content: attr(data-label); + + color: rgba(255, 255, 255, .5); } .satus-section.satus-section--blacklist>.satus-section { - position: absolute; - z-index: 999; - bottom: 0; - visibility: hidden; - width: 100%; - margin: 0; - padding: 0; - transition: .15s; - opacity: 0; - border: none; - border-radius: 0; - background: rgba(255, 255, 255, .95); - justify-content: center; + position: absolute; + z-index: 999; + bottom: 0; + + visibility: hidden; + + width: 100%; + margin: 0; + padding: 0; + + transition: .15s; + + opacity: 0; + border: none; + border-radius: 0; + background: rgba(255, 255, 255, .95); + + justify-content: center; } .satus-section.satus-section--blacklist:hover>.satus-section { - visibility: visible; - opacity: 1; + visibility: visible; + + opacity: 1; } @@ -885,123 +1048,147 @@ body[data-it_analyzer='false'] .satus-button--email { --------------------------------------------------------------*/ .analyzer-top-text { - font-size: 13px; - display: flex; - box-sizing: border-box; - width: 100%; - height: auto; - margin: 16px 0 0; - padding: 0 16px; - background: transparent !important; - justify-content: space-between; + font-size: 13px; + + display: flex; + + box-sizing: border-box; + width: 100%; + height: auto; + margin: 16px 0 0; + padding: 0 16px; + + background: transparent !important; + + justify-content: space-between; } .analyzer-watch-time { - text-transform: uppercase; + text-transform: uppercase; } .analyzer-today-at { - box-sizing: border-box; + box-sizing: border-box; } .analyzer-container { - box-sizing: border-box; - width: 100%; - height: auto; - margin: 8px 0 16px; - padding: 16px; - box-shadow: 0 0 2px rgba(0, 0, 0, .2); + box-sizing: border-box; + width: 100%; + height: auto; + margin: 8px 0 16px; + padding: 16px; + + box-shadow: 0 0 2px rgba(0, 0, 0, .2); } .analyzer-all-time { - font-size: 24px; - font-weight: 400; - margin-bottom: 8px; - color: #4c4c4c; + font-size: 24px; + font-weight: 400; + + margin-bottom: 8px; + + color: #4c4c4c; } .analyzer-chart { - position: relative; - display: flex; - overflow: hidden; - box-sizing: border-box; - height: 140px; - margin: 8px 0; - border-bottom: 1px solid #ccc; - justify-content: space-between; + position: relative; + + display: flex; + overflow: hidden; + + box-sizing: border-box; + height: 140px; + margin: 8px 0; + + border-bottom: 1px solid #ccc; + + justify-content: space-between; } .analyzer-chart::before { - position: absolute; - top: -78%; - left: -15%; - width: 125%; - height: 250%; - content: ''; - transform: rotate(-45deg); - background: linear-gradient(transparent 50%, rgba(0, 0, 0, .05) 50%); - background-size: 4px 4px; + position: absolute; + top: -78%; + left: -15%; + + width: 125%; + height: 250%; + + content: ''; + transform: rotate(-45deg); + + background: linear-gradient(transparent 50%, rgba(0, 0, 0, .05) 50%); + background-size: 4px 4px; } .analyzer-column { - z-index: 1; - display: flex; - border-right: 1px solid #ccc; - flex: 1; + z-index: 1; + + display: flex; + + border-right: 1px solid #ccc; + + flex: 1; } .analyzer-column:first-child { - border-left: 1px solid #ccc; + border-left: 1px solid #ccc; } .analyzer-data-column { - display: flex; - flex-direction: column; - justify-content: flex-end; - flex: 1; + display: flex; + flex-direction: column; + + justify-content: flex-end; + flex: 1; } .analyzer-data { - height: 20px; - margin: 0 1px; - background-color: #c5c5c5; + height: 20px; + margin: 0 1px; + + background-color: #c5c5c5; } .analyzer-data.first { - background-color: #1c00db; - order: 3; + background-color: #1c00db; + + order: 3; } .analyzer-data.second { - background-color: #4dd0e1; - order: 2; + background-color: #4dd0e1; + + order: 2; } .analyzer-data.third { - background-color: #ff9800; - order: 1; + background-color: #ff9800; + + order: 1; } .analyzer-bottom { - display: flex; - margin: 14px 0 0; - justify-content: space-between; + display: flex; + + margin: 14px 0 0; + + justify-content: space-between; } .analyzer-bottom>div .label { - margin: 0 0 2px; + margin: 0 0 2px; } .analyzer-bottom>div:first-child .label { - color: #1c00db; + color: #1c00db; } .analyzer-bottom>div:nth-child(2) .label { - color: #4dd0e1; + color: #4dd0e1; } .analyzer-bottom>div:nth-child(3) .label { - color: #ff9800; + color: #ff9800; } @@ -1010,77 +1197,99 @@ body[data-it_analyzer='false'] .satus-button--email { --------------------------------------------------------------*/ .satus-section--mixer { - position: relative; - overflow: hidden; - flex-direction: column; - width: calc(100% - 32px); - height: 128px; - margin: 8px 16px 0; - border: unset; - border-radius: 10px; - flex: unset; - align-items: flex-start; + position: relative; + + overflow: hidden; + flex-direction: column; + + width: calc(100% - 32px); + height: 128px; + margin: 8px 16px 0; + + border: unset; + border-radius: 10px; + + flex: unset; + align-items: flex-start; } .satus-section--mixer::before { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - content: ''; - background: rgba(0, 0, 0, .5); + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + + background: rgba(0, 0, 0, .5); } .satus-section--mixer .satus-h1 { - font-size: 14px; - position: absolute; - bottom: 0; - left: 0; - margin: 16px; - transition: 200ms; - color: #fff; - text-shadow: 0 0 1px rgb(0, 0, 0, .4); + font-size: 14px; + + position: absolute; + bottom: 0; + left: 0; + + margin: 16px; + + transition: 200ms; + + color: #fff; + text-shadow: 0 0 1px rgb(0, 0, 0, .4); } .satus-section--mixer:hover .satus-h1 { - opacity: 0; + opacity: 0; } .satus-section--mixer>.satus-section { - position: absolute; - bottom: 0; - visibility: hidden; - width: 100%; - margin: 0; - padding: 0; - transition: 200ms; - transform: translateY(32px); - opacity: 0; - border: unset; - border-radius: unset; - background: var(--satus-section-opaque-background); + position: absolute; + bottom: 0; + + visibility: hidden; + + width: 100%; + margin: 0; + padding: 0; + + transition: 200ms; + transform: translateY(32px); + + opacity: 0; + border: unset; + border-radius: unset; + background: var(--satus-section-opaque-background); } .satus-section--mixer:hover>.satus-section { - visibility: visible; - transform: translateY(0); - opacity: 1; + visibility: visible; + + transform: translateY(0); + + opacity: 1; } .satus-section--mixer.noconnection>.satus-section>div { - visibility: hidden; - pointer-events: none; + visibility: hidden; + + pointer-events: none; } .satus-section--mixer.noconnection>.satus-section::after { - font-size: 18px; - font-weight: 500; - position: absolute; - top: 50%; - width: 100%; - content: attr(data-no-connection-label); - transform: translateY(-50%); - text-align: center; - opacity: .8; + font-size: 18px; + font-weight: 500; + + position: absolute; + top: 50%; + + width: 100%; + + content: attr(data-no-connection-label); + transform: translateY(-50%); + text-align: center; + + opacity: .8; } \ No newline at end of file From 451c2d696564c94910bfea0e37697fa34842cbe5 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 5 Jul 2022 08:05:08 +0300 Subject: [PATCH 0597/1224] Changes in repo files --- {wiki => .github/wiki}/translations/0.png | Bin {wiki => .github/wiki}/translations/1.png | Bin {wiki => .github/wiki}/translations/2.png | Bin {wiki => .github/wiki}/translations/3.png | Bin {wiki => .github/wiki}/translations/4.png | Bin {wiki => .github/wiki}/translations/5.png | Bin {wiki => .github/wiki}/translations/6.png | Bin {wiki => .github/wiki}/translations/7.png | Bin previews/chrome.png | Bin 1915 -> 0 bytes previews/edge.png | Bin 1044 -> 0 bytes previews/firefox.png | Bin 2668 -> 0 bytes previews/opera.png | Bin 3787 -> 0 bytes 12 files changed, 0 insertions(+), 0 deletions(-) rename {wiki => .github/wiki}/translations/0.png (100%) rename {wiki => .github/wiki}/translations/1.png (100%) rename {wiki => .github/wiki}/translations/2.png (100%) rename {wiki => .github/wiki}/translations/3.png (100%) rename {wiki => .github/wiki}/translations/4.png (100%) rename {wiki => .github/wiki}/translations/5.png (100%) rename {wiki => .github/wiki}/translations/6.png (100%) rename {wiki => .github/wiki}/translations/7.png (100%) delete mode 100644 previews/chrome.png delete mode 100644 previews/edge.png delete mode 100644 previews/firefox.png delete mode 100644 previews/opera.png diff --git a/wiki/translations/0.png b/.github/wiki/translations/0.png similarity index 100% rename from wiki/translations/0.png rename to .github/wiki/translations/0.png diff --git a/wiki/translations/1.png b/.github/wiki/translations/1.png similarity index 100% rename from wiki/translations/1.png rename to .github/wiki/translations/1.png diff --git a/wiki/translations/2.png b/.github/wiki/translations/2.png similarity index 100% rename from wiki/translations/2.png rename to .github/wiki/translations/2.png diff --git a/wiki/translations/3.png b/.github/wiki/translations/3.png similarity index 100% rename from wiki/translations/3.png rename to .github/wiki/translations/3.png diff --git a/wiki/translations/4.png b/.github/wiki/translations/4.png similarity index 100% rename from wiki/translations/4.png rename to .github/wiki/translations/4.png diff --git a/wiki/translations/5.png b/.github/wiki/translations/5.png similarity index 100% rename from wiki/translations/5.png rename to .github/wiki/translations/5.png diff --git a/wiki/translations/6.png b/.github/wiki/translations/6.png similarity index 100% rename from wiki/translations/6.png rename to .github/wiki/translations/6.png diff --git a/wiki/translations/7.png b/.github/wiki/translations/7.png similarity index 100% rename from wiki/translations/7.png rename to .github/wiki/translations/7.png diff --git a/previews/chrome.png b/previews/chrome.png deleted file mode 100644 index 5df6228d0e9f6a6f4eba06a108bbe65e5b8321f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1915 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 O0000|4upoKtcaY zJ6bug-tG7QJwyLGMgLMa|5i2sNIm8aaR0R<|Is@C-bMN_P`W(mF{0W3*GH|??EmFN z|D_rK;zIxMOyUn`-V(-a!A`KL5u$|7|F0T;EzixFes-bzJI`Rr~*!692_Y zr%Cb|oYDV!AoVL#Ad${mNxRJc2%d1N9o~f zMQTdV|6e)P6?cd}+-y?WXFUkd-pcb3DuOGhz2&SeZcKnKjt{ zuTMLuy}M1&+K_VR*HzCNe7a(Tm`d>QnuD9~+RKZ1Xfl=v%evzs~i2tiC_fb8iM|Z78a+F+` z=uk?Ya@b)ubx z2WA$JyVXMK!A+-W+n^rY?0xl$O;E2~_4fAe&9p))Z8X-Yo4rw-w*IVUZu0X(RKG&2 zrxyDABdVX@=3*X+|wex4gq+Uw)^1xDmk4>poMIAi$iikDO2UID^ zUj8^dJO-?Zy5U&-k1*=R7yi`jxTsXBQaqptKco{9F8-W;&D*eb4c*u zH$2TY#c@Cfve*O^s=u<00oP+LSb*Au-5o25-By-)WNJQY>oHy^n5`-*&i1- zd-m+OxSE=mJxY}-B_&xX6pCvvjT|&O3y-JWVoKBul>}3(+%KZi+ZSfdXRLu|?_(*# z*3?`c7NC!pP%IRW3aP+uA&nh% z+X6%Dn?rL5HtyqxzPH1Ia)BUBEDjS3jjNT*k&iL8aRFFSxyHm0>$|@ou@G^G`jRj9 zsMY1=VGuy=H9Ac&hd-v&oVnkCb^cDzKsPtHz-96Ao`Hey`Z6-W+FvuAlA=;qmSe0? zIAT1*@}W{WQa&>Ue1`g^Qvkgo2&{`h3e--%df0cS3l_9qA)Cx=GVn5-Ov(S8XziUpg&%*$DyqdE~QU_IT=j#gAG zUAkfg;-(#K0P2za{QRV%qM~SlAU)lbia$^Z22^-&k&X&~NrL_h?47koF;p^zSwOw^ zmDalR#V>oBS{E-R*oKCN^}E*`ftrYV{J2OhD33O!ieSp*;PsV073Wz?_X3ru~SUTT)b2cad6MITT%Mx(wv-rR1$J z6;NE1Xg;RG*xR$1)q(Z}oM3d6Gs!0WT8a<1gjzCFV-1?SaC>56+p5*8!MeDjq5`CA z+PB}j6_r=jom8n_H#B6@0pJbogLNZFx;*TZGE|s;wG~1!O9p(j6psc_K`#|qMBR}+ zZORlUN1WJW$EPn@z6!9bTU%R4M@QGRpM2WUk+-oRDk-V5sA#Cu=sXE%tmT^b&{E|X z$52Hi$-0l8T(g3}bpljWy%LM4TXJVin?@2lYtgppU~wDamc{=d#Mut*?!<$|YrC0hKP5 zWg{z2tfNa~$#fEliHRq#g@lBJ$HqbtgzyhH9=>x%iJ| zTas1!L7Ds1nM`6GZ{K08_wJr(4uPz$MA(8e1*eQpBh^tI3_F0cVFwUVay|;P9e_)^ zt;7Nd@t5f{8DoSc5!ySM9CYx#OD2U!*F3>LJAi@j5(DinM7{y3Zlha0J|&7%F0|_>&EZ$l{qR^*MhOW3Pm<}A+i;| z5k4|k*9WCmcP(H`31EF95En&6gb#uquFtW;%NBI$Jy)3wxHx3sbZsfwVx<>@=$yJ; zEv`%)-c@SV*I4PC(j9g6_4Rc-w&a*xBDB8iRy0N9M=JmS diff --git a/previews/opera.png b/previews/opera.png deleted file mode 100644 index 12bb52ef048d57b67dc597cc8ba58c28e515ec5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3787 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 B%Nzgz From 0ab9bb530a06fc77d5ccb8d3e5f5a8d8706e2211 Mon Sep 17 00:00:00 2001 From: FluidExtractor Date: Sun, 10 Jul 2022 11:04:04 +0200 Subject: [PATCH 0598/1224] Update messages.json --- _locales/pl/messages.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 46f9e8137..faf4cecd6 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -90,7 +90,7 @@ "message": "Autoodtwarzanie" }, "avoidAv1": { - "message": "Avoid AV1" + "message": "Unikaj AV1" }, "avoidAv1Vp8Vp9": { "message": "Unikaj AV1, VP8, VP9" @@ -189,7 +189,7 @@ "message": "Kodek h.264" }, "codecs": { - "message": "Codecs" + "message": "Kodeki" }, "collapseOfSubscriptionSections": { "message": "Zwinięcie sekcji subskrypcji" @@ -213,7 +213,7 @@ "message": "Przycinaj tytuły rozdziałów" }, "custom": { - "message": "Custom" + "message": "Niestandardowy" }, "customCss": { "message": "Niestandardowy CSS" @@ -270,7 +270,7 @@ "message": "Wklęsłe" }, "description": { - "message": "Description" + "message": "Opis" }, "description_ext": { "message": "Spraw, aby YouTube był uporządkowany i inteligentny! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" @@ -426,7 +426,7 @@ "message": "Ukryj karty" }, "hideClipButton": { - "message": "Hide \"Clip\" button" + "message": "Ukryj przycisk \"Klip\"" }, "hideCountryCode": { "message": "Ukryj kod kraju" @@ -438,7 +438,7 @@ "message": "Ukryj szczegóły" }, "hideDownloadButton": { - "message": "Hide \"Download\" button" + "message": "Ukryj przycisk \"Pobierz\"" }, "hideEndscreen": { "message": "Ukryj ekran końcowy" @@ -468,7 +468,7 @@ "message": "Ukryj playliste" }, "hideReportButton": { - "message": "Hide \"Report\" button" + "message": "Ukryj przycisk \"Zgłoś\"" }, "hideRightButtons": { "message": "Ukryj przyciski po prawej" @@ -486,7 +486,7 @@ "message": "Ukryj nakładkę pomijania" }, "hideThanksButton": { - "message": "Hide \"Thanks\" button" + "message": "Ukryj przycisk \"Podziękuj\"" }, "hideThumbnailOverlay": { "message": "Ukryj przyciski na miniaturach" @@ -603,7 +603,7 @@ "message": "Położenie" }, "loop": { - "message": "Loop" + "message": "Pętla" }, "loudnessNormalization": { "message": "Normalizacja głośności" From a78d2dbeba5c2adc4a26edb6b44639419bb9ecf0 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Mon, 11 Jul 2022 11:19:05 +0800 Subject: [PATCH 0599/1224] Fix player element overlap Fix #1371 --- content-styles.css | 5 ----- manifest.json | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/content-styles.css b/content-styles.css index 65181f3c1..7070a7d9b 100644 --- a/content-styles.css +++ b/content-styles.css @@ -303,17 +303,12 @@ html[it-limit-page-width=false] ytd-watch-flexy:not([fullscreen]) #primary.ytd-w html[it-limit-page-width=false] ytd-watch-flexy:not([fullscreen]) #player-container-outer.ytd-watch-flexy { max-width: 100% !important; - max-height: var(--ytd-watch-flexy-max-player-height) !important; } html[it-limit-page-width=false] ytd-watch-flexy:not([fullscreen]) #player-container-inner.ytd-watch-flexy { padding-top: calc(var(--ytd-watch-flexy-max-player-height) + 45px) !important; } -html[it-limit-page-width=false] ytd-watch-flexy:not([fullscreen]) #player { - padding-bottom: 45px !important; -} - html[it-limit-page-width=false] ytd-watch-flexy:not([fullscreen]) .html5-video-container { height: 100% !important; width: 100% !important; diff --git a/manifest.json b/manifest.json index 26e081b3a..052c3c529 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.964", + "version": "3.965", "default_locale": "en", "icons": { "128": "icons/128.png", From 7ffb14231968bf2d9614af71b66986e182891c5b Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Tue, 12 Jul 2022 17:57:10 +0800 Subject: [PATCH 0600/1224] Fixed forced theater mode not working fix #1336 --- youtube-scripts.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 0dfb75017..97fa7218e 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -505,7 +505,6 @@ ImprovedTube.initPlayer = function () { delete ImprovedTube.elements.player.dataset.defaultQuality; ImprovedTube.forcedPlayVideoFromTheBeginning(); - ImprovedTube.forcedTheaterMode(); ImprovedTube.playerPlaybackSpeed(false); ImprovedTube.subtitles(); ImprovedTube.subtitlesLanguage(); @@ -520,6 +519,10 @@ ImprovedTube.initPlayer = function () { ImprovedTube.subtitlesBackgroundOpacity(); ImprovedTube.playerQuality(); ImprovedTube.playerVolume(); + setTimeout(function () { + ImprovedTube.forcedTheaterMode(); + }, 200); + if (location.href.indexOf('/embed/') === -1) { ImprovedTube.miniPlayer(); @@ -1230,7 +1233,6 @@ ImprovedTube.playerSize = function () { ImprovedTube.forcedTheaterMode = function () { if ( - window.self === window.top && this.storage.forced_theater_mode === true && this.elements.ytd_watch && this.elements.player @@ -1242,7 +1244,7 @@ ImprovedTube.forcedTheaterMode = function () { setTimeout(function () { button.click(); - }, 200); + }, 100); } } }; From 50f521631aee268b6084f38a9a3a699c697fd976 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 15 Jul 2022 13:41:20 +0800 Subject: [PATCH 0601/1224] Fixed force volume not working due to gain Fix #1376 --- youtube-scripts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 97fa7218e..8f51a7ad9 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -2807,7 +2807,7 @@ ImprovedTube.playerVolume = function () { volume = Number(volume); } - if (volume <= 100) { + if (!this.audioContextGain && volume <= 100) { if (this.audioContext) { this.audioContext.close(); } From 723f2ea57fe76b0d0abcc496ee04fbb42f4a25ea Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 15 Jul 2022 17:02:45 +0800 Subject: [PATCH 0602/1224] Fix expand description not working on href redirect page ImprovedTube.childHandler() and ImprovedTube.init() will be run on yt-navigate-finish event. This is to allow ImprovedTube to run on href youtube page. Fix #1187 --- youtube-scripts.js | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 8f51a7ad9..e8b60f9b5 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -417,7 +417,7 @@ ImprovedTube.ytElementsHandler = function (node) { subtree: false }); } else if (name === 'TP-YT-PAPER-BUTTON') { - if (id === 'more' && node.parentNode.parentNode.id === 'container') { + if (document.documentElement.dataset.pageType === 'video' && id === 'more' && node.parentNode.parentNode.id === 'container') { this.elements.moreButton = node; this.description(); @@ -1552,7 +1552,10 @@ ImprovedTube.channelVideosCount = function () { ImprovedTube.description = function () { if (this.storage.description === 'expanded') { - this.elements.moreButton.click(); + var button = this.elements.moreButton; + setTimeout(function () { + button.click(); + }, 500); } }; @@ -4557,12 +4560,8 @@ document.addEventListener('improvedtube-player-loaded', function () { document.addEventListener('yt-navigate-finish', function () { ImprovedTube.pageType(); - - - if (ImprovedTube.elements.player && ImprovedTube.elements.player.setPlaybackRate) { - ImprovedTube.videoPageUpdate(); - ImprovedTube.initPlayer(); - } + ImprovedTube.childHandler(document.body); + ImprovedTube.init(); ImprovedTube.channelPlayAllButton(); }); From 4b08b417494a26f4cb5c55f78d69c2f1fb2720c1 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 16 Jul 2022 15:45:04 +0800 Subject: [PATCH 0603/1224] Improve expand description --- youtube-scripts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index e8b60f9b5..b3b2fa766 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1555,7 +1555,7 @@ ImprovedTube.description = function () { var button = this.elements.moreButton; setTimeout(function () { button.click(); - }, 500); + }, 750); } }; From bbb72cf29563694b39c937e6dcbf20b9c09c3406 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 16 Jul 2022 15:48:53 +0800 Subject: [PATCH 0604/1224] Remove unneeded code --- youtube-scripts.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index b3b2fa766..2b0f082d3 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -4519,10 +4519,6 @@ ImprovedTube.init = function () { ImprovedTube.themes(); }); - window.addEventListener('yt-page-data-updated', function () { - ImprovedTube.pageType(); - }); - var yt_player_updated = function () { document.dispatchEvent(new CustomEvent('improvedtube-player-loaded')); @@ -4592,8 +4588,6 @@ new MutationObserver(function (mutationList) { if (message){ if (message.storage) { ImprovedTube.storage = message.storage; - - ImprovedTube.init(); } else if (message['storage-update']) { var storage_update = message['storage-update']; From db5ffb9dd0233ceb3469d627207aa5703b7bb32a Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 16 Jul 2022 15:56:34 +0800 Subject: [PATCH 0605/1224] Improve yt-page-data-updated event function --- youtube-scripts.js | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 2b0f082d3..d89f022bf 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -264,7 +264,7 @@ ImprovedTube.ytElementsHandler = function (node) { this.improvedtubeYoutubeIcon(); this.improvedtubeYoutubeButtonsUnderPlayer(); - if(document.documentElement.dataset.pageType == 'video'){ + if(document.documentElement.dataset.pageType === 'video'){ this.hideDetailButton(node.querySelectorAll('#info #top-level-buttons-computed ytd-button-renderer')); } } else if (name === 'YTD-VIDEO-SECONDARY-INFO-RENDERER') { @@ -4563,14 +4563,16 @@ document.addEventListener('yt-navigate-finish', function () { }); document.addEventListener('yt-page-data-updated', function (event) { - setTimeout(function () { - ImprovedTube.howLongAgoTheVideoWasUploaded(); - }, 1000); - - if (/[?&]list=([^&]+).*$/.test(location.href)) { - ImprovedTube.playlistRepeat(); - ImprovedTube.playlistShuffle(); - ImprovedTube.playlistReverse(); + if(document.documentElement.dataset.pageType === 'video'){ + setTimeout(function () { + ImprovedTube.howLongAgoTheVideoWasUploaded(); + }, 1000); + + if (/[?&]list=([^&]+).*$/.test(location.href)) { + ImprovedTube.playlistRepeat(); + ImprovedTube.playlistShuffle(); + ImprovedTube.playlistReverse(); + } } }); From d48e47a41e0b354f93bd7f9775c3f5c6ec57ea01 Mon Sep 17 00:00:00 2001 From: Harrison Boyd Date: Tue, 16 Aug 2022 19:42:56 -0500 Subject: [PATCH 0606/1224] Fixed Issue #1395 --- youtube-scripts.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index d89f022bf..c452cea3e 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1511,11 +1511,14 @@ ImprovedTube.channelVideosCount = function () { if (this.storage.channel_videos_count === true && this.elements.yt_channel_link) { var xhr = new XMLHttpRequest(), key = this.storage['google-api-key'] || ImprovedTube.defaultApiKey, - id = this.elements.yt_channel_link.href.slice(this.elements.yt_channel_link.href.indexOf('/channel/') + '/channel/'.length); + id = this.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v'); - if (id.indexOf('/') !== -1) { - id = id.match(/.+?(?=\/)/)[0]; - } + xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=' + id + '&key=' + key, false); + xhr.send(); + var response = JSON.parse(xhr.responseText); + id = response.items[0].snippet.channelId; + + xhr = new XMLHttpRequest(); xhr.addEventListener('load', function () { var response = JSON.parse(this.responseText), From a866371a715a6c9c64fb9db57d6efa9e0829b9f3 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 9 Sep 2022 13:10:05 +0800 Subject: [PATCH 0607/1224] Fixed fit_to_window theater mode not working correctly on video first open --- content-styles.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content-styles.css b/content-styles.css index 7070a7d9b..31ce7585d 100644 --- a/content-styles.css +++ b/content-styles.css @@ -843,6 +843,8 @@ html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change' [data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) video { position: static !important; + width: auto !important; + height: calc(var(--it-player-size) - var(--it-header-size)) !important; max-height: calc(var(--it-player-size) - var(--it-header-size)) !important; } From 8475640e330db9f4bb6ed3cc14967a96d2bbd6ad Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 9 Sep 2022 13:21:54 +0800 Subject: [PATCH 0608/1224] Fixed fit_to_window non-theater mode layout Sidebar no longer overlay ontop of video on fit_to_window non-theater mode --- content-styles.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content-styles.css b/content-styles.css index 31ce7585d..f5e579cad 100644 --- a/content-styles.css +++ b/content-styles.css @@ -870,6 +870,8 @@ html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change' [data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) video { position: static !important; + width: 100% !important; + height: calc(var(--it-player-size) - var(--it-header-size)) !important; max-height: calc(var(--it-player-size) - var(--it-header-size)) !important; } From 4ada447e7c86163a191aa0d35f72a2a7403fbc84 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 9 Sep 2022 13:45:54 +0800 Subject: [PATCH 0609/1224] Fixed #1401 --- content-styles.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content-styles.css b/content-styles.css index f5e579cad..fec209eab 100644 --- a/content-styles.css +++ b/content-styles.css @@ -2913,7 +2913,7 @@ html[it-player-play-button=true] .ytp-play-button, html[it-player-previous-button=true] .ytp-prev-button, html[it-player-next-button=true] .ytp-next-button, html[it-player-volume-button=true] .ytp-volume-area, -html[it-player-autoplay-button=true] .ytp-autonav-toggle-button-container, +html[it-player-autoplay-button=true] .ytp-right-controls .ytp-button[data-tooltip-target-id = ytp-autonav-toggle-button], html[it-player-settings-button=true] .ytp-settings-button, html[it-player-subtitles-button=true] .ytp-subtitles-button, html[it-player-miniplayer-button=true] .ytp-miniplayer-button, From f14d2aa5330ea999d27a63dce2ea3e86ca9f3440 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 9 Sep 2022 15:04:42 +0800 Subject: [PATCH 0610/1224] Improved autoplay() Youtube have change its code again, the stopvideo() method no longer work and causing error so I revert back to the old code the improved it. Sadly it will still play 1 second of the video before it pause. Fixed #1387 --- youtube-scripts.js | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index d89f022bf..a418e430f 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -488,7 +488,6 @@ ImprovedTube.playerOnPlay = function () { this.removeEventListener('ended', ImprovedTube.playerOnEnded, true); this.addEventListener('ended', ImprovedTube.playerOnEnded, true); - ImprovedTube.autoplay(this); ImprovedTube.playerLoudnessNormalization(); return original.apply(this, arguments); @@ -1898,30 +1897,21 @@ ImprovedTube.schedule = function () { 4.4.1 AUTOPLAY ------------------------------------------------------------------------------*/ -ImprovedTube.autoplay = function (video) { +ImprovedTube.autoplay = function () { + var video = ImprovedTube.elements.player; if (ImprovedTube.video_url !== location.href) { ImprovedTube.allow_autoplay = false; } - if (this.check === true){ - setTimeout(function () { - video.parentNode.parentNode.pauseVideo(); - if (ImprovedTube.storage.forced_play_video_from_the_beginning === false && ImprovedTube.video_url.match(/&t=(\d+)s/)) { - video.parentNode.parentNode.seekTo(ImprovedTube.video_url.match(/&t=(\d+)s/)[1]); - } - }); - this.check = false; - } - else if (ImprovedTube.allow_autoplay === false && video.parentNode.parentNode.classList.contains('ad-showing') === false && + if (ImprovedTube.allow_autoplay === false && video.classList.contains('ad-showing') === false && ( - (location.href.indexOf('/watch?') !== -1 && ((location.href.indexOf('list=') === -1 && ImprovedTube.storage.player_autoplay === false) || (location.href.indexOf('list=') !== -1 && ImprovedTube.storage.playlist_autoplay === false))) || - (ImprovedTube.regex.channel.test(location.href) && ImprovedTube.storage.channel_trailer_autoplay === false) + (document.documentElement.dataset.pageType === "video" && ((location.href.indexOf('list=') === -1 && ImprovedTube.storage.player_autoplay === false) || (ImprovedTube.storage.playlist_autoplay === false))) || + (document.documentElement.dataset.pageType === "channel" && ImprovedTube.storage.channel_trailer_autoplay === false) ) ) { setTimeout(function () { - video.parentNode.parentNode.stopVideo(); + video.pauseVideo(); }); - this.check = true; } }; @@ -4527,14 +4517,14 @@ ImprovedTube.init = function () { window.addEventListener('yt-player-updated', yt_player_updated); - this.bluelight(); this.codecs(); this.player60fps(); + this.playerOnPlay(); this.playerSDR(); this.shortcuts(); - this.playerOnPlay(); this.onkeydown(); this.onmousedown(); + this.bluelight(); this.defaultContentCountry(); this.youtubeLanguage(); @@ -4556,6 +4546,7 @@ document.addEventListener('improvedtube-player-loaded', function () { document.addEventListener('yt-navigate-finish', function () { ImprovedTube.pageType(); + ImprovedTube.autoplay(); ImprovedTube.childHandler(document.body); ImprovedTube.init(); From 31792414c350e65a1f6694d903602474e02396fa Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 10 Sep 2022 14:03:04 +0800 Subject: [PATCH 0611/1224] Fixed fit_to_window non-theater mode layout --- youtube-scripts.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index a418e430f..3c5e8b7df 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1180,9 +1180,13 @@ ImprovedTube.playerSize = function () { height = max_height; } - style.textContent += 'width:' + width + 'px !important;'; + if (this.elements.ytd_watch.theater) { + style.textContent += 'width:' + width + 'px !important;'; + } + else { + style.textContent += 'width:100% !important;'; + } style.textContent += 'height:' + height + 'px !important;'; - style.textContent += '}'; this.elements.player_size_style = style; @@ -1194,7 +1198,7 @@ ImprovedTube.playerSize = function () { }, 100); } - if (this.storage.player_size === 'custom') { + else if (this.storage.player_size === 'custom') { var width = Number(this.storage.custom_player_size_width) || 1280, height = Number(this.storage.custom_player_size_height) || 720, style = this.elements.player_size_style || document.createElement('style'); From 0cd978108bf55a44905df2cffbc7f9cc3e02ef9a Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 23 Sep 2022 21:40:31 +0800 Subject: [PATCH 0612/1224] Fixed hide detail button not working Now hideDetailButton() use the svg path to read the button. This is to support all language. --- content-styles.css | 10 +++++----- youtube-scripts.js | 23 +++++++++++++++++++---- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/content-styles.css b/content-styles.css index fec209eab..1076044a5 100644 --- a/content-styles.css +++ b/content-styles.css @@ -1220,8 +1220,8 @@ html[it-hide-date=true] #count+#info-strings>#dot { 2.4.5 HIDE SHARE BUTTON --------------------------------------------------------------*/ -html[it-hide-share-button=true] #info #top-level-buttons ytd-button-renderer#Share-button, -html[it-hide-share-button=true] #info #top-level-buttons-computed ytd-button-renderer#Share-button { +html[it-hide-share-button=true] #info #top-level-buttons ytd-button-renderer:nth-child(3), +html[it-hide-share-button=true] #info #top-level-buttons-computed ytd-button-renderer:nth-child(3) { display: none; } @@ -1270,8 +1270,8 @@ html[it-hide-save-button=true] #info #top-level-buttons-computed ytd-button-rend 2.4.10 REPORT REPORT BUTTON --------------------------------------------------------------*/ -html[it-hide-report-button=true] #info #top-level-buttons ytd-button-renderer#-button, -html[it-hide-report-button=true] #info #top-level-buttons-computed ytd-button-renderer#-button { +html[it-hide-report-button=true] #info #top-level-buttons ytd-button-renderer#Report-button, +html[it-hide-report-button=true] #info #top-level-buttons-computed ytd-button-renderer#Report-button { display: none; } @@ -1280,7 +1280,7 @@ html[it-hide-report-button=true] #info #top-level-buttons-computed ytd-button-re 2.4.11 HIDE MORE BUTTON --------------------------------------------------------------*/ -html[it-hide-more-button=true] #info #flexible-item-buttons+yt-icon-button { +html[it-hide-more-button=true] #info ytd-menu-renderer yt-button-shape#button-shape { display: none; } diff --git a/youtube-scripts.js b/youtube-scripts.js index 3c5e8b7df..e8ba32f50 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -265,7 +265,7 @@ ImprovedTube.ytElementsHandler = function (node) { this.improvedtubeYoutubeIcon(); this.improvedtubeYoutubeButtonsUnderPlayer(); if(document.documentElement.dataset.pageType === 'video'){ - this.hideDetailButton(node.querySelectorAll('#info #top-level-buttons-computed ytd-button-renderer')); + this.hideDetailButton(node.querySelector('#info #top-level-buttons-computed').children); } } else if (name === 'YTD-VIDEO-SECONDARY-INFO-RENDERER') { this.elements.yt_channel_name = node.querySelector('ytd-channel-name'); @@ -1568,9 +1568,24 @@ ImprovedTube.description = function () { ------------------------------------------------------------------------------*/ ImprovedTube.hideDetailButton = function (el) { - for(var i = 0; i < el.length; i++){ - el[i].setAttribute('id', el[i].textContent + '-button'); - } + setTimeout(function () { + for(var i = 3; i < el.length; i++){ + tmp = el[i].querySelector("g.yt-icon path").attributes.d.textContent; + if (tmp === "M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z M14,7H2v1h12V7z M2,12h8v-1H2V12z M2,16h8v-1H2V16z") { + el[i].setAttribute('id', 'Save-button'); + } + else if (tmp === "M8,7c0,0.55-0.45,1-1,1S6,7.55,6,7c0-0.55,0.45-1,1-1S8,6.45,8,7z M7,16c-0.55,0-1,0.45-1,1c0,0.55,0.45,1,1,1s1-0.45,1-1 C8,16.45,7.55,16,7,16z M10.79,8.23L21,18.44V20h-3.27l-5.76-5.76l-1.27,1.27C10.89,15.97,11,16.47,11,17c0,2.21-1.79,4-4,4 c-2.21,0-4-1.79-4-4c0-2.21,1.79-4,4-4c0.42,0,0.81,0.08,1.19,0.2l1.37-1.37l-1.11-1.11C8,10.89,7.51,11,7,11c-2.21,0-4-1.79-4-4 c0-2.21,1.79-4,4-4c2.21,0,4,1.79,4,4C11,7.43,10.91,7.84,10.79,8.23z M10.08,8.94L9.65,8.5l0.19-0.58C9.95,7.58,10,7.28,10,7 c0-1.65-1.35-3-3-3S4,5.35,4,7c0,1.65,1.35,3,3,3c0.36,0,0.73-0.07,1.09-0.21L8.7,9.55l0.46,0.46l1.11,1.11l0.71,0.71l-0.71,0.71 L8.9,13.91l-0.43,0.43l-0.58-0.18C7.55,14.05,7.27,14,7,14c-1.65,0-3,1.35-3,3c0,1.65,1.35,3,3,3s3-1.35,3-3 c0-0.38-0.07-0.75-0.22-1.12l-0.25-0.61L10,14.8l1.27-1.27l0.71-0.71l0.71,0.71L18.15,19H20v-0.15L10.08,8.94z M17.73,4H21v1.56 l-5.52,5.52l-2.41-2.41L17.73,4z M18.15,5l-3.67,3.67l1,1L20,5.15V5H18.15z") { + el[i].setAttribute('id', 'Clip-button'); + } + else if (tmp === "M16.5,3C19.02,3,21,5.19,21,7.99c0,3.7-3.28,6.94-8.25,11.86L12,20.59l-0.74-0.73l-0.04-0.04C6.27,14.92,3,11.69,3,7.99 C3,5.19,4.98,3,7.5,3c1.4,0,2.79,0.71,3.71,1.89L12,5.9l0.79-1.01C13.71,3.71,15.1,3,16.5,3 M16.5,2c-1.74,0-3.41,0.88-4.5,2.28 C10.91,2.88,9.24,2,7.5,2C4.42,2,2,4.64,2,7.99c0,4.12,3.4,7.48,8.55,12.58L12,22l1.45-1.44C18.6,15.47,22,12.11,22,7.99 C22,4.64,19.58,2,16.5,2L16.5,2z M11.33,10.86c0.2,0.14,0.53,0.26,1,0.36c0.47,0.1,0.86,0.22,1.18,0.35 c0.99,0.4,1.49,1.09,1.49,2.07c0,0.7-0.28,1.27-0.83,1.71c-0.33,0.26-0.73,0.43-1.17,0.54V17h-2v-1.16 c-0.18-0.05-0.37-0.1-0.53-0.19c-0.46-0.23-0.92-0.55-1.18-0.95C9.15,14.48,9.06,14.24,9,14h2c0.05,0.09,0.07,0.18,0.15,0.25 c0.23,0.19,0.54,0.29,0.92,0.29c0.36,0,0.63-0.07,0.82-0.22s0.28-0.35,0.28-0.59c0-0.25-0.11-0.45-0.34-0.6s-0.59-0.27-1.1-0.39 c-1.67-0.39-2.51-1.16-2.51-2.34c0-0.68,0.26-1.26,0.78-1.71c0.28-0.25,0.62-0.43,1-0.54V7h2v1.12c0.46,0.11,0.85,0.29,1.18,0.57 C14.59,9.05,14.9,9.48,15,10h-2c-0.04-0.09-0.1-0.17-0.16-0.24c-0.17-0.19-0.44-0.29-0.81-0.29c-0.32,0-0.56,0.08-0.74,0.24 c-0.17,0.16-0.26,0.36-0.26,0.6C11.03,10.53,11.13,10.72,11.33,10.86z") { + el[i].setAttribute('id', 'Thanks-button'); + } + else if (tmp === "M13.18,4l0.24,1.2L13.58,6h0.82H19v7h-5.18l-0.24-1.2L13.42,11H12.6H6V4H13.18 M14,3H5v18h1v-9h6.6l0.4,2h7V5h-5.6L14,3 L14,3z") { + el[i].setAttribute('id', 'Report-button'); + } + } + }, 30); + console.log(el); }; From af441b1f50a8d69a16d0107a8ac9ea762fa189de Mon Sep 17 00:00:00 2001 From: "H. Boyd" Date: Mon, 26 Sep 2022 15:06:44 -0500 Subject: [PATCH 0613/1224] added check for custom channel ID to reduce api usage --- youtube-scripts.js | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index c452cea3e..64e6fc706 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1509,14 +1509,21 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { ImprovedTube.channelVideosCount = function () { if (this.storage.channel_videos_count === true && this.elements.yt_channel_link) { - var xhr = new XMLHttpRequest(), - key = this.storage['google-api-key'] || ImprovedTube.defaultApiKey, - id = this.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v'); - - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=' + id + '&key=' + key, false); - xhr.send(); - var response = JSON.parse(xhr.responseText); - id = response.items[0].snippet.channelId; + var key = this.storage['google-api-key'] || ImprovedTube.defaultApiKey; + if (this.elements.yt_channel_link.href.indexOf('/channel/') == -1) { + var xhr = new XMLHttpRequest(), + id = this.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v'); + + xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=' + id + '&key=' + key, false); + xhr.send(); + var response = JSON.parse(xhr.responseText); + id = response.items[0].snippet.channelId; + } else { + id = this.elements.yt_channel_link.href.slice(this.elements.yt_channel_link.href.indexOf('/channel/') + '/channel/'.length); + if (id.indexOf('/') !== -1) { + id = id.match(/.+?(?=\/)/)[0]; + } + } xhr = new XMLHttpRequest(); From fd4f5d904f0a9bfafb361b681643ddf3fae35186 Mon Sep 17 00:00:00 2001 From: "H. Boyd" Date: Mon, 26 Sep 2022 15:06:44 -0500 Subject: [PATCH 0614/1224] Add custom channel ID check for API use reduction --- youtube-scripts.js | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index c452cea3e..64e6fc706 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1509,14 +1509,21 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { ImprovedTube.channelVideosCount = function () { if (this.storage.channel_videos_count === true && this.elements.yt_channel_link) { - var xhr = new XMLHttpRequest(), - key = this.storage['google-api-key'] || ImprovedTube.defaultApiKey, - id = this.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v'); - - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=' + id + '&key=' + key, false); - xhr.send(); - var response = JSON.parse(xhr.responseText); - id = response.items[0].snippet.channelId; + var key = this.storage['google-api-key'] || ImprovedTube.defaultApiKey; + if (this.elements.yt_channel_link.href.indexOf('/channel/') == -1) { + var xhr = new XMLHttpRequest(), + id = this.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v'); + + xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=' + id + '&key=' + key, false); + xhr.send(); + var response = JSON.parse(xhr.responseText); + id = response.items[0].snippet.channelId; + } else { + id = this.elements.yt_channel_link.href.slice(this.elements.yt_channel_link.href.indexOf('/channel/') + '/channel/'.length); + if (id.indexOf('/') !== -1) { + id = id.match(/.+?(?=\/)/)[0]; + } + } xhr = new XMLHttpRequest(); From 4fc9265533dbe76de3d154f9e3c9518f772eb641 Mon Sep 17 00:00:00 2001 From: "H. Boyd" Date: Thu, 29 Sep 2022 13:47:45 -0500 Subject: [PATCH 0615/1224] Rework playback speed to be more intuitive --- _locales/en/messages.json | 11 +++++---- ui/script.js | 47 ++++++++++++++++++++++++--------------- youtube-scripts.js | 2 +- 3 files changed, 37 insertions(+), 23 deletions(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 50d0e3fb4..b3e25d533 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -368,8 +368,11 @@ "forcedPlayVideoFromTheBeginning": { "message": "Force video to play from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "defaultPlaybackSpeedMenu": { + "message": "Default Playback Speed" + }, + "defaultPlaybackSpeedEnable": { + "message": "Enable Default playback speed" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -719,8 +722,8 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" + "defaultPlaybackSpeedSet": { + "message": "Set Default Playback Speed" }, "player": { "message": "Player" diff --git a/ui/script.js b/ui/script.js index e8895befe..0069c0136 100644 --- a/ui/script.js +++ b/ui/script.js @@ -5205,26 +5205,37 @@ var skeleton = { text: 'autopauseWhenSwitchingTabs', storage: 'player_autopause_when_switching_tabs' }, - player_forced_playback_speed: { - component: 'switch', - text: 'forcedPlaybackSpeed', - id: 'forced-playback-speed', - onrender: function () { - this.dataset.value = satus.storage.player_forced_playback_speed; - }, - onchange: function () { - this.dataset.value = satus.storage.player_forced_playback_speed; + default_playback_speed_menu: { + component: 'button', + text: 'defaultPlaybackSpeedMenu', + on: { + click: { + component: 'section', + variant: 'card', + + player_default_playback_speed_enable: { + component: 'switch', + text: 'defaultPlaybackSpeedEnable', + id: 'default-playback-speed-enable', + onrender: function () { + this.dataset.value = satus.storage.player_default_playback_speed_enable; + }, + onchange: function () { + this.dataset.value = satus.storage.player_default_playback_speed_enable; + } + }, + player_playback_speed: { + component: 'slider', + text: 'defaultPlaybackSpeedSet', + textarea: true, + value: 1, + min: .1, + max: 8, + step: .05 + } + } } }, - player_playback_speed: { - component: 'slider', - text: 'playbackSpeed', - textarea: true, - value: 1, - min: .1, - max: 8, - step: .05 - }, subtitles: { component: 'button', text: 'subtitles', diff --git a/youtube-scripts.js b/youtube-scripts.js index 0b2d41c84..ab951c160 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1973,7 +1973,7 @@ ImprovedTube.playerPlaybackSpeed = function (change) { option = 1; } - if (this.storage.player_forced_playback_speed === true) { + if (this.storage.player_default_playback_speed_enable === true) { if (location.href.indexOf('music') === -1 && player.getVideoData().isLive === false) { player.setPlaybackRate(Number(option)); video.playbackRate = Number(option); From a28e7125e6dad6cd665d0f29b9b6962fb649c454 Mon Sep 17 00:00:00 2001 From: "H. Boyd" Date: Thu, 29 Sep 2022 16:26:20 -0500 Subject: [PATCH 0616/1224] Fix playlist autoplay (#1412) --- youtube-scripts.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index ab951c160..348db0f0e 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -3134,8 +3134,7 @@ ImprovedTube.playlistUpNextAutoplay = function (event) { ImprovedTube.getParam(location.href, 'list') && ImprovedTube.storage.playlist_up_next_autoplay === false ) { - event.preventDefault(); - event.stopPropagation(); + this.elements.ytd_watch.playlistData.currentIndex = this.elements.ytd_watch.playlistData.totalVideos } }; From b450f6ebeb6352591a59545f49f965b682d0e9cb Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 1 Oct 2022 15:19:36 +0800 Subject: [PATCH 0617/1224] Remove debug msg --- youtube-scripts.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index e8ba32f50..e89e9be8e 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1584,8 +1584,7 @@ ImprovedTube.hideDetailButton = function (el) { el[i].setAttribute('id', 'Report-button'); } } - }, 30); - console.log(el); + }, 35); }; From 95a8e2f4d21609fa302218f4aca3201c4da696e4 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 1 Oct 2022 15:52:47 +0800 Subject: [PATCH 0618/1224] Improved hideDetailButton() --- content-styles.css | 4 ++-- youtube-scripts.js | 17 ++++++++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/content-styles.css b/content-styles.css index 1076044a5..42576e681 100644 --- a/content-styles.css +++ b/content-styles.css @@ -1220,8 +1220,8 @@ html[it-hide-date=true] #count+#info-strings>#dot { 2.4.5 HIDE SHARE BUTTON --------------------------------------------------------------*/ -html[it-hide-share-button=true] #info #top-level-buttons ytd-button-renderer:nth-child(3), -html[it-hide-share-button=true] #info #top-level-buttons-computed ytd-button-renderer:nth-child(3) { +html[it-hide-share-button=true] #info #top-level-buttons ytd-button-renderer#Share-button, +html[it-hide-share-button=true] #info #top-level-buttons-computed ytd-button-renderer#Share-button { display: none; } diff --git a/youtube-scripts.js b/youtube-scripts.js index e89e9be8e..7570f450e 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1569,22 +1569,25 @@ ImprovedTube.description = function () { ImprovedTube.hideDetailButton = function (el) { setTimeout(function () { - for(var i = 3; i < el.length; i++){ - tmp = el[i].querySelector("g.yt-icon path").attributes.d.textContent; - if (tmp === "M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z M14,7H2v1h12V7z M2,12h8v-1H2V12z M2,16h8v-1H2V16z") { + for (var i = 2; i < el.length; i++) { + tmp = el[i].querySelector("g.yt-icon path").attributes.d.textContent.split(" ")[0]; + if (tmp === "M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z") { el[i].setAttribute('id', 'Save-button'); } - else if (tmp === "M8,7c0,0.55-0.45,1-1,1S6,7.55,6,7c0-0.55,0.45-1,1-1S8,6.45,8,7z M7,16c-0.55,0-1,0.45-1,1c0,0.55,0.45,1,1,1s1-0.45,1-1 C8,16.45,7.55,16,7,16z M10.79,8.23L21,18.44V20h-3.27l-5.76-5.76l-1.27,1.27C10.89,15.97,11,16.47,11,17c0,2.21-1.79,4-4,4 c-2.21,0-4-1.79-4-4c0-2.21,1.79-4,4-4c0.42,0,0.81,0.08,1.19,0.2l1.37-1.37l-1.11-1.11C8,10.89,7.51,11,7,11c-2.21,0-4-1.79-4-4 c0-2.21,1.79-4,4-4c2.21,0,4,1.79,4,4C11,7.43,10.91,7.84,10.79,8.23z M10.08,8.94L9.65,8.5l0.19-0.58C9.95,7.58,10,7.28,10,7 c0-1.65-1.35-3-3-3S4,5.35,4,7c0,1.65,1.35,3,3,3c0.36,0,0.73-0.07,1.09-0.21L8.7,9.55l0.46,0.46l1.11,1.11l0.71,0.71l-0.71,0.71 L8.9,13.91l-0.43,0.43l-0.58-0.18C7.55,14.05,7.27,14,7,14c-1.65,0-3,1.35-3,3c0,1.65,1.35,3,3,3s3-1.35,3-3 c0-0.38-0.07-0.75-0.22-1.12l-0.25-0.61L10,14.8l1.27-1.27l0.71-0.71l0.71,0.71L18.15,19H20v-0.15L10.08,8.94z M17.73,4H21v1.56 l-5.52,5.52l-2.41-2.41L17.73,4z M18.15,5l-3.67,3.67l1,1L20,5.15V5H18.15z") { + else if (tmp === "M8,7c0,0.55-0.45,1-1,1S6,7.55,6,7c0-0.55,0.45-1,1-1S8,6.45,8,7z") { el[i].setAttribute('id', 'Clip-button'); } - else if (tmp === "M16.5,3C19.02,3,21,5.19,21,7.99c0,3.7-3.28,6.94-8.25,11.86L12,20.59l-0.74-0.73l-0.04-0.04C6.27,14.92,3,11.69,3,7.99 C3,5.19,4.98,3,7.5,3c1.4,0,2.79,0.71,3.71,1.89L12,5.9l0.79-1.01C13.71,3.71,15.1,3,16.5,3 M16.5,2c-1.74,0-3.41,0.88-4.5,2.28 C10.91,2.88,9.24,2,7.5,2C4.42,2,2,4.64,2,7.99c0,4.12,3.4,7.48,8.55,12.58L12,22l1.45-1.44C18.6,15.47,22,12.11,22,7.99 C22,4.64,19.58,2,16.5,2L16.5,2z M11.33,10.86c0.2,0.14,0.53,0.26,1,0.36c0.47,0.1,0.86,0.22,1.18,0.35 c0.99,0.4,1.49,1.09,1.49,2.07c0,0.7-0.28,1.27-0.83,1.71c-0.33,0.26-0.73,0.43-1.17,0.54V17h-2v-1.16 c-0.18-0.05-0.37-0.1-0.53-0.19c-0.46-0.23-0.92-0.55-1.18-0.95C9.15,14.48,9.06,14.24,9,14h2c0.05,0.09,0.07,0.18,0.15,0.25 c0.23,0.19,0.54,0.29,0.92,0.29c0.36,0,0.63-0.07,0.82-0.22s0.28-0.35,0.28-0.59c0-0.25-0.11-0.45-0.34-0.6s-0.59-0.27-1.1-0.39 c-1.67-0.39-2.51-1.16-2.51-2.34c0-0.68,0.26-1.26,0.78-1.71c0.28-0.25,0.62-0.43,1-0.54V7h2v1.12c0.46,0.11,0.85,0.29,1.18,0.57 C14.59,9.05,14.9,9.48,15,10h-2c-0.04-0.09-0.1-0.17-0.16-0.24c-0.17-0.19-0.44-0.29-0.81-0.29c-0.32,0-0.56,0.08-0.74,0.24 c-0.17,0.16-0.26,0.36-0.26,0.6C11.03,10.53,11.13,10.72,11.33,10.86z") { + else if (tmp === "M16.5,3C19.02,3,21,5.19,21,7.99c0,3.7-3.28,6.94-8.25,11.86L12,20.59l-0.74-0.73l-0.04-0.04C6.27,14.92,3,11.69,3,7.99") { el[i].setAttribute('id', 'Thanks-button'); } - else if (tmp === "M13.18,4l0.24,1.2L13.58,6h0.82H19v7h-5.18l-0.24-1.2L13.42,11H12.6H6V4H13.18 M14,3H5v18h1v-9h6.6l0.4,2h7V5h-5.6L14,3 L14,3z") { + else if (tmp === "M13.18,4l0.24,1.2L13.58,6h0.82H19v7h-5.18l-0.24-1.2L13.42,11H12.6H6V4H13.18") { el[i].setAttribute('id', 'Report-button'); } + else if (tmp === "M15,5.63L20.66,12L15,18.37V15v-1h-1c-3.96,0-7.14,1-9.75,3.09c1.84-4.07,5.11-6.4,9.89-7.1L15,9.86V9V5.63") { + el[i].setAttribute('id', 'Share-button'); + } } - }, 35); + }, 30); }; From 874521883fbc92f8ef8823404db0f49ad6482133 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 1 Oct 2022 17:00:09 +0800 Subject: [PATCH 0619/1224] Add hide detail label --- _locales/am/messages.json | 60 +- _locales/ar/messages.json | 60 +- _locales/bg/messages.json | 60 +- _locales/bn/messages.json | 60 +- _locales/ca/messages.json | 60 +- _locales/cs/messages.json | 60 +- _locales/da/messages.json | 60 +- _locales/de/messages.json | 60 +- _locales/el/messages.json | 60 +- _locales/en/messages.json | 59 +- _locales/en_GB/messages.json | 1067 +++++++++++++++++++++++++++++++++ _locales/en_US/messages.json | 1067 +++++++++++++++++++++++++++++++++ _locales/es/messages.json | 64 +- _locales/es_419/messages.json | 1067 +++++++++++++++++++++++++++++++++ _locales/et/messages.json | 60 +- _locales/fa/messages.json | 60 +- _locales/fi/messages.json | 60 +- _locales/fil/messages.json | 60 +- _locales/fr/messages.json | 60 +- _locales/gu/messages.json | 60 +- _locales/he/messages.json | 60 +- _locales/hi/messages.json | 60 +- _locales/hin/messages.json | 51 +- _locales/hr/messages.json | 60 +- _locales/hu/messages.json | 60 +- _locales/id/messages.json | 60 +- _locales/it/messages.json | 60 +- _locales/ja/messages.json | 60 +- _locales/kn/messages.json | 60 +- _locales/ko/messages.json | 60 +- _locales/lt/messages.json | 60 +- _locales/lv/messages.json | 60 +- _locales/ml/messages.json | 60 +- _locales/mr/messages.json | 60 +- _locales/ms/messages.json | 60 +- _locales/nb_NO/messages.json | 51 +- _locales/nl/messages.json | 60 +- _locales/no/messages.json | 60 +- _locales/pl/messages.json | 60 +- _locales/pt_BR/messages.json | 61 +- _locales/pt_PT/messages.json | 60 +- _locales/ro/messages.json | 60 +- _locales/ru/messages.json | 60 +- _locales/si/messages.json | 51 +- _locales/sk/messages.json | 60 +- _locales/sl/messages.json | 60 +- _locales/sr/messages.json | 60 +- _locales/sv/messages.json | 60 +- _locales/sw/messages.json | 60 +- _locales/ta/messages.json | 60 +- _locales/te/messages.json | 60 +- _locales/th/messages.json | 60 +- _locales/tr/messages.json | 60 +- _locales/uk/messages.json | 60 +- _locales/vi/messages.json | 60 +- _locales/zh_CN/messages.json | 60 +- _locales/zh_TW/messages.json | 62 +- content-styles.css | 66 +- ui/script.js | 142 +++-- 59 files changed, 5245 insertions(+), 1383 deletions(-) create mode 100644 _locales/en_GB/messages.json create mode 100644 _locales/en_US/messages.json create mode 100644 _locales/es_419/messages.json diff --git a/_locales/am/messages.json b/_locales/am/messages.json index df8dae522..8e51dce39 100644 --- a/_locales/am/messages.json +++ b/_locales/am/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 second skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index ee8318258..d9c32cb58 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "السماح لـ60إطار" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "دائما نشط" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "الحافظة" }, @@ -305,6 +311,9 @@ "donate": { "message": "تبرع" }, + "download": { + "message": "Download" + }, "draggable": { "message": "قابل للسحب" }, @@ -425,24 +434,24 @@ "hideAnnotations": { "message": "إخفاء التعليقات التوضيحية" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "إخفاء البطاقات" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "إخفاء التفاصيل" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "إخفاء شاشة النهاية" }, @@ -455,9 +464,6 @@ "hideGradientBottom": { "message": "إخفاء التدرج الأسود السفلي" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -470,27 +476,15 @@ "hidePlaylist": { "message": "إخفاء قائمة التشغيل" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "إخفاء الأزرار اليسرى" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "«إخفاء «التمرير للحصول على التفاصيل" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 second skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -584,12 +578,12 @@ "like": { "message": "اعحبني" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "الإعجابات" - }, "lime": { "message": "جير" }, @@ -626,6 +620,9 @@ "mixer": { "message": "مهندس الصوت" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -662,6 +659,9 @@ "normal": { "message": "عادي" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -794,6 +794,9 @@ "repeat": { "message": "تكرار" }, + "report": { + "message": "Report" + }, "reset": { "message": "إعادة تعيين" }, @@ -854,6 +857,9 @@ "settingsSuccessfullyImported": { "message": "تم استيراد الإعدادات بنجاح" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "اختصارات" }, @@ -929,6 +935,9 @@ "textColor": { "message": "لون النص" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "المظاهر" }, @@ -1028,6 +1037,9 @@ "watchTime": { "message": "وقت المشاهدة" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "عندما يتم تغيير علامة التبويب" }, diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/bg/messages.json +++ b/_locales/bg/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index ddbe6abe6..9fdb25f72 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "60 ফ্রেম প্রতি সেকেন্ অনুমতি দিনড" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "সর্বদা সক্রিয়" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "ক্যারেক্টার এজ স্টাইল" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "ক্লিপবোর্ড" }, @@ -302,6 +308,9 @@ "donate": { "message": "দান করুন" }, + "download": { + "message": "Download" + }, "draggable": { "message": "টেনে আনে" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "টীকাগুলি লুকান" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "কার্ড লুকান" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "কান্ট্রি কোড লুকান" }, "hideDate": { "message": "তারিখ লুকান" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "আড়াল বিস্তারিত" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "এন্ডস্ক্রিন লুকান" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "গ্রেডিয়েন্ট নীচে লুকান" }, - "hideMoreButton": { - "message": "আরও লুকান বোতাম" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "প্লেলিস্ট লুকান" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "ডান বোতামগুলি লুকান" }, - "hideSaveButton": { - "message": "সংরক্ষণ ভোতার লোকাল" - }, "hideScrollForDetails": { "message": "«বিশদ জন্য স্ক্রোলs» লুকান" }, - "hideShareButton": { - "message": "শেয়ার বাটন লোকাল" - }, "hideSkipOverlay": { "message": "স্কিপ ওভারলে লুকান" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -578,12 +572,12 @@ "like": { "message": "লাইক" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "লাইক গুলি" - }, "lime": { "message": "চুন" }, @@ -620,6 +614,9 @@ "mixer": { "message": "মিক্সার" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "সাধারণ" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "পুনরাবৃত্তি" }, + "report": { + "message": "Report" + }, "reset": { "message": "রিসেট" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "সেটিংস সফলভাবে আমদানি করা হয়েছে" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "শর্টকাটস" }, @@ -923,6 +929,9 @@ "textColor": { "message": "লেখার রঙ" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "থিমস" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "দেখার সময়" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "ট্যাব পরিবর্তন করা হয়" }, diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/ca/messages.json +++ b/_locales/ca/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/cs/messages.json +++ b/_locales/cs/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/da/messages.json b/_locales/da/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/da/messages.json +++ b/_locales/da/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 09dfa453c..efe09016a 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "60fps zulassen" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Immer aktiv" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Zeichenumrandung" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Zwischenablage" }, @@ -302,6 +308,9 @@ "donate": { "message": "Spenden" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Verschiebbar" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Anmerkungen ausblenden" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Karten ausblenden" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Ländercode ausblenden" }, "hideDate": { "message": "Datum ausblenden" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Details ausblenden" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Endkarten ausblenden (Schlussbildschirme)" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Farbverlauf ausblenden" }, - "hideMoreButton": { - "message": "\"Mehr\" Schaltfläche ausblenden" - }, "hidePlayerControlsBar": { "message": "Kontrolleiste ausblenden" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Playlists ausblenden" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Rechte Buttons ausblenden" }, - "hideSaveButton": { - "message": "\"Speichern\" Schaltfläche ausblenden" - }, "hideScrollForDetails": { "message": "„Für Details scrollen“ ausblenden" }, - "hideShareButton": { - "message": "\"Teilen\" Schaltfläche ausblenden" - }, "hideSkipOverlay": { "message": "Überspringen Overlay ausblenden" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Thumbnail Overlay ausblenden" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Limette" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mischpult" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Seitenleiste nach links verschieben" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat (Wiederholen)" }, + "report": { + "message": "Report" + }, "reset": { "message": "Zurücksetzen" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Einstellungen erfolgreich importiert!" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Hotkeys" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Textfarbe" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Farbschemen" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Verbrauchte Zeit" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "Beim Tab-Wechsel" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index d5afb5f27..5d1195f70 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Επίτρεψε 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Πάντοτε ενεργό" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Μετακινήσιμο με σύρση" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Απόκρυψε τα annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Απόκρυψε τις κάρτες" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Απόκρυψε τις λεπτομέρειες" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Απόκρυψε την κάρτα τέλους" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Απόκρυψε το κάτω μέρος της χρωματικής διαβάθμισης" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Απόκρυψε τα playlists" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Απόκρυψε τα κουμπιά στα δεξιά" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Απόκρυψε το «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -578,12 +572,12 @@ "like": { "message": "Μου αρέσει" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Μοσχολέμονο" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Κανονικό" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Επανάληψη" }, + "report": { + "message": "Report" + }, "reset": { "message": "Επαναφορά" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Επιτυχής εισαγωγή ρυθμίσεων" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Συντομεύσεις" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Χρώμα κειμένου" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Θέματα" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Χρόνος προβολής" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "Όταν αλλάζεις καρτέλα" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 50d0e3fb4..58a43b2cb 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -185,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -305,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -425,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -455,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -470,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 second skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -581,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -623,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -659,12 +653,12 @@ "normal": { "message": "Normal" }, - "ok": { - "message": "Ok" - }, "off": { "message": "Off" }, + "ok": { + "message": "Ok" + }, "old": { "message": "Old" }, @@ -794,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -854,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -929,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1061,4 +1064,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube limits video quality to 1080p for h.264 codec" } -} +} \ No newline at end of file diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json new file mode 100644 index 000000000..58a43b2cb --- /dev/null +++ b/_locales/en_GB/messages.json @@ -0,0 +1,1067 @@ +{ + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "About" + }, + "accept": { + "message": "Accept" + }, + "activate": { + "message": "Activate" + }, + "activateCaptions": { + "message": "Activate captions" + }, + "activateFullscreen": { + "message": "Activate fullscreen" + }, + "activated": { + "message": "Activated" + }, + "activatedFeatures": { + "message": "Activated features" + }, + "activeFeatures": { + "message": "Active features" + }, + "addScrollToTop": { + "message": "Add «Scroll to top»" + }, + "ads": { + "message": "Ads" + }, + "all": { + "message": "All" + }, + "allow": { + "message": "Allow" + }, + "allow60fps": { + "message": "Allow 60fps" + }, + "always": { + "message": "Always" + }, + "alwaysActive": { + "message": "Always active" + }, + "alwaysShowProgressBar": { + "message": "Always show progress bar" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analyzer" + }, + "appearance": { + "message": "Appearance" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import this data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formats" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullscreen" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause when switching tabs" + }, + "autoplay": { + "message": "Autoplay" + }, + "avoidAv1": { + "message": "Avoid AV1" + }, + "avoidAv1Vp8Vp9": { + "message": "Avoid AV1, VP8, VP9" + }, + "avoidAv1Vp9": { + "message": "Avoid AV1, VP9" + }, + "avoidCpuRenderingWhenPossible": { + "message": "Avoid CPU rendering when possible" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Backup & reset" + }, + "baseOnSystemColorScheme": { + "message": "Base on system color scheme" + }, + "belowPlayer": { + "message": "Below player" + }, + "black": { + "message": "Black" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "Block all" + }, + "blockAv1": { + "message": "Block AV1" + }, + "blockH264": { + "message": "Block H.264" + }, + "blockMusic": { + "message": "Block music" + }, + "blockVp8": { + "message": "Block VP8" + }, + "blockVp9": { + "message": "Block VP9" + }, + "blue": { + "message": "Blue" + }, + "blueGray": { + "message": "Blue gray" + }, + "bluelight": { + "message": "Bluelight" + }, + "brown": { + "message": "Brown" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser version" + }, + "bubbles": { + "message": "Bubbles" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Buttons" + }, + "cancel": { + "message": "Cancel" + }, + "categories": { + "message": "Categories" + }, + "channel": { + "message": "Channel" + }, + "channels": { + "message": "Channels" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clip": { + "message": "Clip" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "codecs": { + "message": "Codecs" + }, + "collapseOfSubscriptionSections": { + "message": "Collapse of subscription sections" + }, + "collapsed": { + "message": "Collapsed" + }, + "comments": { + "message": "Comments" + }, + "confirmationBeforeClosing": { + "message": "Confirmation before closing" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "custom": { + "message": "Custom" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Custom JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Dark" + }, + "darkTheme": { + "message": "Dark theme" + }, + "dateAndTime": { + "message": "Date & time" + }, + "dawn": { + "message": "Dawn" + }, + "decreasePlaybackSpeed": { + "message": "Decrease playback speed" + }, + "decreaseVolume": { + "message": "Decrease volume" + }, + "deepOrange": { + "message": "Deep orange" + }, + "deepPurple": { + "message": "Deep purple" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Default channel tab" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Delete YouTube cookies" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Description" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Desert" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Developer options" + }, + "device": { + "message": "Device" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Disabled" + }, + "dislike": { + "message": "Dislike" + }, + "doNotChange": { + "message": "Don't change" + }, + "donate": { + "message": "Donate" + }, + "download": { + "message": "Download" + }, + "draggable": { + "message": "Draggable" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Empty" + }, + "enabled": { + "message": "Enabled" + }, + "enabledForced": { + "message": "Enabled (forced)" + }, + "expanded": { + "message": "Expanded" + }, + "exportSettings": { + "message": "Export settings" + }, + "extension": { + "message": "Extension" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filters" + }, + "fitToWindow": { + "message": "Fit to window" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Footer" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Force video to play from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, + "forcedTheaterMode": { + "message": "Forced theater mode" + }, + "forcedVolume": { + "message": "Forced volume" + }, + "foundABug": { + "message": "Found a bug?" + }, + "fullWindow": { + "message": "Full window" + }, + "general": { + "message": "General" + }, + "geoPreference": { + "message": "Geo Preference" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Go to search box" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Green" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD thumbnail" + }, + "header": { + "message": "Header" + }, + "hidden": { + "message": "Hidden" + }, + "hiddenOnVideoPage": { + "message": "Hidden on video page" + }, + "hideAnimatedThumbnails": { + "message": "Hide animated thumbnails" + }, + "hideAnnotations": { + "message": "Hide annotations" + }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, + "hideCards": { + "message": "Hide cards" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, + "hideDetails": { + "message": "Hide details" + }, + "hideEndscreen": { + "message": "Hide endscreen" + }, + "hideFeaturedContent": { + "message": "Hide featured content" + }, + "hideFooter": { + "message": "Hide footer" + }, + "hideGradientBottom": { + "message": "Hide shadow around player-bar" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Hide playlist" + }, + "hideRightButtons": { + "message": "Hide right buttons" + }, + "hideScrollForDetails": { + "message": "Hide «Scroll for details»" + }, + "hideSkipOverlay": { + "message": "Hide 5 second skip animation" + }, + "hideThumbnailOverlay": { + "message": "Hide buttons on thumbnails" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Hide views count" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "History" + }, + "home": { + "message": "Home" + }, + "hover": { + "message": "Hover" + }, + "hoverOnVideoPage": { + "message": "Hover on video page" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "How long ago the video was uploaded" + }, + "icons": { + "message": "Icons" + }, + "iconsOnly": { + "message": "Icons only" + }, + "importSettings": { + "message": "Import settings" + }, + "improveLogo": { + "message": "Improve logo" + }, + "improvedtubeButtons": { + "message": "ImprovedTube buttons" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube icon on YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube language" + }, + "improvedtubeVersion": { + "message": "ImprovedTube version" + }, + "increasePlaybackSpeed": { + "message": "Increase playback speed" + }, + "increaseVolume": { + "message": "Increase volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Languages" + }, + "legacyYoutube": { + "message": "Legacy YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Light" + }, + "lightBlue": { + "message": "Light blue" + }, + "lightGreen": { + "message": "Light green" + }, + "like": { + "message": "Like" + }, + "likeAndDislike": { + "message": "Like and Dislike " + }, + "liked": { + "message": "Liked" + }, + "lime": { + "message": "Lime" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "List" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Live chat type" + }, + "location": { + "message": "Location" + }, + "loop": { + "message": "Loop" + }, + "loudnessNormalization": { + "message": "Loudness normalization" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Mark watched videos" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "more": { + "message": "More" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "My colors" + }, + "name": { + "message": "Name" + }, + "nativeMiniPlayer": { + "message": "Native mini player" + }, + "new": { + "message": "New" + }, + "nextVideo": { + "message": "Next video" + }, + "night": { + "message": "Night" + }, + "noActiveFeatures": { + "message": "No active features" + }, + "noOpenVideoTabs": { + "message": "No open video tabs" + }, + "none": { + "message": "None" + }, + "normal": { + "message": "Normal" + }, + "off": { + "message": "Off" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Old" + }, + "onAllVideos": { + "message": "On all videos" + }, + "onSubscribedChannels": { + "message": "On subscribed channels" + }, + "onlyActiveOnYoutube": { + "message": "Only active on YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "openPopupPlayer": { + "message": "Open video/playlist in a new window" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Other" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Permissions" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Pink" + }, + "plain": { + "message": "Plain" + }, + "platform": { + "message": "Platform" + }, + "playAllButton": { + "message": "\"Play all\" button" + }, + "playPause": { + "message": "Play / Pause" + }, + "playbackSpeed": { + "message": "Playback speed" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Player color" + }, + "playerSize": { + "message": "Player size" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "popupPlayer": { + "message": "Popup player" + }, + "popupWindowButtons": { + "message": "Add popup Window buttons" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Press any key or use mouse wheel." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Press any key or use mouse wheel" + }, + "previousVideo": { + "message": "Previous video" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "Purple" + }, + "quality": { + "message": "Quality" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Rate us" + }, + "red": { + "message": "Red" + }, + "redDislikeButton": { + "message": "Show dislike button in red" + }, + "relatedVideos": { + "message": "Related videos" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Remove related search results" + }, + "repeat": { + "message": "Repeat" + }, + "report": { + "message": "Report" + }, + "reset": { + "message": "Reset" + }, + "resetAllSettings": { + "message": "Reset all settings" + }, + "resetAllShortcuts": { + "message": "Reset all shortcuts" + }, + "reverse": { + "message": "Reverse" + }, + "rotate": { + "message": "Rotate" + }, + "save": { + "message": "Save" + }, + "saveAs": { + "message": "Save as" + }, + "schedule": { + "message": "Schedule" + }, + "screen": { + "message": "Screen" + }, + "screenshot": { + "message": "Screenshot" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Search" + }, + "searchBarOnly": { + "message": "Search bar only" + }, + "seekBackward10Seconds": { + "message": "Seek backward 10 seconds" + }, + "seekForward10Seconds": { + "message": "Seek forward 10 seconds" + }, + "seekNextChapter": { + "message": "Seek Next Chapter" + }, + "seekPreviousChapter": { + "message": "Seek Previous Chapter" + }, + "settings": { + "message": "Settings" + }, + "settingsSuccessfullyImported": { + "message": "Settings successfully imported" + }, + "share": { + "message": "Share" + }, + "shortcuts": { + "message": "Shortcuts" + }, + "showCardsOnMouseHover": { + "message": "Show cards on mouse hover" + }, + "showChannelVideosCount": { + "message": "Show channel videos count" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Shuffle" + }, + "sidebar": { + "message": "Sidebar" + }, + "spacebar": { + "message": "Spacebar" + }, + "squaredUserImages": { + "message": "Squared user images" + }, + "static": { + "message": "Static" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Subscriptions" + }, + "subtitles": { + "message": "Subtitles" + }, + "sunset": { + "message": "Sunset" + }, + "sunsetToSunrise": { + "message": "Sunset to sunrise" + }, + "systemPeferenceDark": { + "message": "System preference: dark" + }, + "systemPeferenceLight": { + "message": "System preference: light" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Text color" + }, + "thanks": { + "message": "Thanks" + }, + "themes": { + "message": "Themes" + }, + "thisWillRemoveAllCookies": { + "message": "This will remove all cookies." + }, + "thisWillRemoveAllWatchedVideos": { + "message": "This will remove all watched videos." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "This will remove all YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "This will reset all settings." + }, + "thisWillResetAllShortcuts": { + "message": "This will reset all shortcuts" + }, + "thumbnails": { + "message": "Thumbnails" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Time from" + }, + "timeTo": { + "message": "Time to" + }, + "todayAt": { + "message": "Today at" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle player controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Trailer autoplay" + }, + "translations": { + "message": "Translations" + }, + "transparentBackground": { + "message": "Transparent background" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Try to reload the page" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Up next autoplay" + }, + "use24HourFormat": { + "message": "Use 24-hour format" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video description will be expanded to get the name of the category" + }, + "videoFormats": { + "message": "Video formats" + }, + "videos": { + "message": "Videos" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Watch later" + }, + "watchTime": { + "message": "Watch time" + }, + "whenPaused": { + "message": "When paused" + }, + "whenTabIsChanged": { + "message": "When tab is changed" + }, + "white": { + "message": "White" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Yellow" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (left)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (right)" + }, + "youtubeHomePage": { + "message": "YouTube home page" + }, + "youtubeLanguage": { + "message": "YouTube language" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limits video quality to 1080p for h.264 codec" + } +} \ No newline at end of file diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json new file mode 100644 index 000000000..58a43b2cb --- /dev/null +++ b/_locales/en_US/messages.json @@ -0,0 +1,1067 @@ +{ + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "About" + }, + "accept": { + "message": "Accept" + }, + "activate": { + "message": "Activate" + }, + "activateCaptions": { + "message": "Activate captions" + }, + "activateFullscreen": { + "message": "Activate fullscreen" + }, + "activated": { + "message": "Activated" + }, + "activatedFeatures": { + "message": "Activated features" + }, + "activeFeatures": { + "message": "Active features" + }, + "addScrollToTop": { + "message": "Add «Scroll to top»" + }, + "ads": { + "message": "Ads" + }, + "all": { + "message": "All" + }, + "allow": { + "message": "Allow" + }, + "allow60fps": { + "message": "Allow 60fps" + }, + "always": { + "message": "Always" + }, + "alwaysActive": { + "message": "Always active" + }, + "alwaysShowProgressBar": { + "message": "Always show progress bar" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analyzer" + }, + "appearance": { + "message": "Appearance" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import this data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formats" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullscreen" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause when switching tabs" + }, + "autoplay": { + "message": "Autoplay" + }, + "avoidAv1": { + "message": "Avoid AV1" + }, + "avoidAv1Vp8Vp9": { + "message": "Avoid AV1, VP8, VP9" + }, + "avoidAv1Vp9": { + "message": "Avoid AV1, VP9" + }, + "avoidCpuRenderingWhenPossible": { + "message": "Avoid CPU rendering when possible" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Backup & reset" + }, + "baseOnSystemColorScheme": { + "message": "Base on system color scheme" + }, + "belowPlayer": { + "message": "Below player" + }, + "black": { + "message": "Black" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "Block all" + }, + "blockAv1": { + "message": "Block AV1" + }, + "blockH264": { + "message": "Block H.264" + }, + "blockMusic": { + "message": "Block music" + }, + "blockVp8": { + "message": "Block VP8" + }, + "blockVp9": { + "message": "Block VP9" + }, + "blue": { + "message": "Blue" + }, + "blueGray": { + "message": "Blue gray" + }, + "bluelight": { + "message": "Bluelight" + }, + "brown": { + "message": "Brown" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser version" + }, + "bubbles": { + "message": "Bubbles" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Buttons" + }, + "cancel": { + "message": "Cancel" + }, + "categories": { + "message": "Categories" + }, + "channel": { + "message": "Channel" + }, + "channels": { + "message": "Channels" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clip": { + "message": "Clip" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "codecs": { + "message": "Codecs" + }, + "collapseOfSubscriptionSections": { + "message": "Collapse of subscription sections" + }, + "collapsed": { + "message": "Collapsed" + }, + "comments": { + "message": "Comments" + }, + "confirmationBeforeClosing": { + "message": "Confirmation before closing" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "custom": { + "message": "Custom" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Custom JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Dark" + }, + "darkTheme": { + "message": "Dark theme" + }, + "dateAndTime": { + "message": "Date & time" + }, + "dawn": { + "message": "Dawn" + }, + "decreasePlaybackSpeed": { + "message": "Decrease playback speed" + }, + "decreaseVolume": { + "message": "Decrease volume" + }, + "deepOrange": { + "message": "Deep orange" + }, + "deepPurple": { + "message": "Deep purple" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Default channel tab" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Delete YouTube cookies" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Description" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Desert" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Developer options" + }, + "device": { + "message": "Device" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Disabled" + }, + "dislike": { + "message": "Dislike" + }, + "doNotChange": { + "message": "Don't change" + }, + "donate": { + "message": "Donate" + }, + "download": { + "message": "Download" + }, + "draggable": { + "message": "Draggable" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Empty" + }, + "enabled": { + "message": "Enabled" + }, + "enabledForced": { + "message": "Enabled (forced)" + }, + "expanded": { + "message": "Expanded" + }, + "exportSettings": { + "message": "Export settings" + }, + "extension": { + "message": "Extension" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filters" + }, + "fitToWindow": { + "message": "Fit to window" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Footer" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Force video to play from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, + "forcedTheaterMode": { + "message": "Forced theater mode" + }, + "forcedVolume": { + "message": "Forced volume" + }, + "foundABug": { + "message": "Found a bug?" + }, + "fullWindow": { + "message": "Full window" + }, + "general": { + "message": "General" + }, + "geoPreference": { + "message": "Geo Preference" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Go to search box" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Green" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD thumbnail" + }, + "header": { + "message": "Header" + }, + "hidden": { + "message": "Hidden" + }, + "hiddenOnVideoPage": { + "message": "Hidden on video page" + }, + "hideAnimatedThumbnails": { + "message": "Hide animated thumbnails" + }, + "hideAnnotations": { + "message": "Hide annotations" + }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, + "hideCards": { + "message": "Hide cards" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, + "hideDetails": { + "message": "Hide details" + }, + "hideEndscreen": { + "message": "Hide endscreen" + }, + "hideFeaturedContent": { + "message": "Hide featured content" + }, + "hideFooter": { + "message": "Hide footer" + }, + "hideGradientBottom": { + "message": "Hide shadow around player-bar" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Hide playlist" + }, + "hideRightButtons": { + "message": "Hide right buttons" + }, + "hideScrollForDetails": { + "message": "Hide «Scroll for details»" + }, + "hideSkipOverlay": { + "message": "Hide 5 second skip animation" + }, + "hideThumbnailOverlay": { + "message": "Hide buttons on thumbnails" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Hide views count" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "History" + }, + "home": { + "message": "Home" + }, + "hover": { + "message": "Hover" + }, + "hoverOnVideoPage": { + "message": "Hover on video page" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "How long ago the video was uploaded" + }, + "icons": { + "message": "Icons" + }, + "iconsOnly": { + "message": "Icons only" + }, + "importSettings": { + "message": "Import settings" + }, + "improveLogo": { + "message": "Improve logo" + }, + "improvedtubeButtons": { + "message": "ImprovedTube buttons" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube icon on YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube language" + }, + "improvedtubeVersion": { + "message": "ImprovedTube version" + }, + "increasePlaybackSpeed": { + "message": "Increase playback speed" + }, + "increaseVolume": { + "message": "Increase volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Languages" + }, + "legacyYoutube": { + "message": "Legacy YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Light" + }, + "lightBlue": { + "message": "Light blue" + }, + "lightGreen": { + "message": "Light green" + }, + "like": { + "message": "Like" + }, + "likeAndDislike": { + "message": "Like and Dislike " + }, + "liked": { + "message": "Liked" + }, + "lime": { + "message": "Lime" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "List" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Live chat type" + }, + "location": { + "message": "Location" + }, + "loop": { + "message": "Loop" + }, + "loudnessNormalization": { + "message": "Loudness normalization" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Mark watched videos" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "more": { + "message": "More" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "My colors" + }, + "name": { + "message": "Name" + }, + "nativeMiniPlayer": { + "message": "Native mini player" + }, + "new": { + "message": "New" + }, + "nextVideo": { + "message": "Next video" + }, + "night": { + "message": "Night" + }, + "noActiveFeatures": { + "message": "No active features" + }, + "noOpenVideoTabs": { + "message": "No open video tabs" + }, + "none": { + "message": "None" + }, + "normal": { + "message": "Normal" + }, + "off": { + "message": "Off" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Old" + }, + "onAllVideos": { + "message": "On all videos" + }, + "onSubscribedChannels": { + "message": "On subscribed channels" + }, + "onlyActiveOnYoutube": { + "message": "Only active on YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "openPopupPlayer": { + "message": "Open video/playlist in a new window" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Other" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Permissions" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Pink" + }, + "plain": { + "message": "Plain" + }, + "platform": { + "message": "Platform" + }, + "playAllButton": { + "message": "\"Play all\" button" + }, + "playPause": { + "message": "Play / Pause" + }, + "playbackSpeed": { + "message": "Playback speed" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Player color" + }, + "playerSize": { + "message": "Player size" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "popupPlayer": { + "message": "Popup player" + }, + "popupWindowButtons": { + "message": "Add popup Window buttons" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Press any key or use mouse wheel." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Press any key or use mouse wheel" + }, + "previousVideo": { + "message": "Previous video" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "Purple" + }, + "quality": { + "message": "Quality" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Rate us" + }, + "red": { + "message": "Red" + }, + "redDislikeButton": { + "message": "Show dislike button in red" + }, + "relatedVideos": { + "message": "Related videos" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Remove related search results" + }, + "repeat": { + "message": "Repeat" + }, + "report": { + "message": "Report" + }, + "reset": { + "message": "Reset" + }, + "resetAllSettings": { + "message": "Reset all settings" + }, + "resetAllShortcuts": { + "message": "Reset all shortcuts" + }, + "reverse": { + "message": "Reverse" + }, + "rotate": { + "message": "Rotate" + }, + "save": { + "message": "Save" + }, + "saveAs": { + "message": "Save as" + }, + "schedule": { + "message": "Schedule" + }, + "screen": { + "message": "Screen" + }, + "screenshot": { + "message": "Screenshot" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Search" + }, + "searchBarOnly": { + "message": "Search bar only" + }, + "seekBackward10Seconds": { + "message": "Seek backward 10 seconds" + }, + "seekForward10Seconds": { + "message": "Seek forward 10 seconds" + }, + "seekNextChapter": { + "message": "Seek Next Chapter" + }, + "seekPreviousChapter": { + "message": "Seek Previous Chapter" + }, + "settings": { + "message": "Settings" + }, + "settingsSuccessfullyImported": { + "message": "Settings successfully imported" + }, + "share": { + "message": "Share" + }, + "shortcuts": { + "message": "Shortcuts" + }, + "showCardsOnMouseHover": { + "message": "Show cards on mouse hover" + }, + "showChannelVideosCount": { + "message": "Show channel videos count" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Shuffle" + }, + "sidebar": { + "message": "Sidebar" + }, + "spacebar": { + "message": "Spacebar" + }, + "squaredUserImages": { + "message": "Squared user images" + }, + "static": { + "message": "Static" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Subscriptions" + }, + "subtitles": { + "message": "Subtitles" + }, + "sunset": { + "message": "Sunset" + }, + "sunsetToSunrise": { + "message": "Sunset to sunrise" + }, + "systemPeferenceDark": { + "message": "System preference: dark" + }, + "systemPeferenceLight": { + "message": "System preference: light" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Text color" + }, + "thanks": { + "message": "Thanks" + }, + "themes": { + "message": "Themes" + }, + "thisWillRemoveAllCookies": { + "message": "This will remove all cookies." + }, + "thisWillRemoveAllWatchedVideos": { + "message": "This will remove all watched videos." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "This will remove all YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "This will reset all settings." + }, + "thisWillResetAllShortcuts": { + "message": "This will reset all shortcuts" + }, + "thumbnails": { + "message": "Thumbnails" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Time from" + }, + "timeTo": { + "message": "Time to" + }, + "todayAt": { + "message": "Today at" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle player controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Trailer autoplay" + }, + "translations": { + "message": "Translations" + }, + "transparentBackground": { + "message": "Transparent background" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Try to reload the page" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Up next autoplay" + }, + "use24HourFormat": { + "message": "Use 24-hour format" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video description will be expanded to get the name of the category" + }, + "videoFormats": { + "message": "Video formats" + }, + "videos": { + "message": "Videos" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Watch later" + }, + "watchTime": { + "message": "Watch time" + }, + "whenPaused": { + "message": "When paused" + }, + "whenTabIsChanged": { + "message": "When tab is changed" + }, + "white": { + "message": "White" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Yellow" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (left)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (right)" + }, + "youtubeHomePage": { + "message": "YouTube home page" + }, + "youtubeLanguage": { + "message": "YouTube language" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limits video quality to 1080p for h.264 codec" + } +} \ No newline at end of file diff --git a/_locales/es/messages.json b/_locales/es/messages.json index d23c7de5c..d71194be9 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Permitir 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Siempre activo" }, @@ -66,7 +69,7 @@ "message": "Apariencia" }, "areYouSureYouWantToExportTheData": { - "message": "¿Estas seguro que deseas exportar la informacion?" + "message": "¿Estas seguro que deseas exportar la informacion?" }, "areYouSureYouWantToImportTheData": { "message": "¿Estas seguro que deseas importar la informacion?" @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Portapapeles" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donar" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Arrastrable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Ocultar anotaciones" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Ocultar tarjetas" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Ocultar código de país" }, "hideDate": { "message": "Ocultar fecha" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Ocultar detalles" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Ocultar pantalla final" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Ocultar parte inferior degradada" }, - "hideMoreButton": { - "message": "Ocultar boton \"Mas\"" - }, "hidePlayerControlsBar": { "message": "Ocultar la barra del reproductor" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Ocultar playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Ocultar botones de la derecha" }, - "hideSaveButton": { - "message": "Ocultar boton \"Guardar\"" - }, "hideScrollForDetails": { "message": "Ocultar «Desliza hacia abajo para ver más detalles»" }, - "hideShareButton": { - "message": "Ocultar boton \"Compatir\"" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -578,12 +572,12 @@ "like": { "message": "Me gusta" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Me gusta" }, - "likes": { - "message": "Me gustas" - }, "lime": { "message": "Lima" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mezclador" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Mover barra lateral a la izquierda" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repetir" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reiniciar" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Ajustes importados correctamente" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Atajos" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Color del texto" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Temas" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Visualizaciones" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "Al cambiar de pestaña" }, @@ -1052,4 +1064,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube limita calidad de video a 1080p para el codec h.264" } -} +} \ No newline at end of file diff --git a/_locales/es_419/messages.json b/_locales/es_419/messages.json new file mode 100644 index 000000000..58a43b2cb --- /dev/null +++ b/_locales/es_419/messages.json @@ -0,0 +1,1067 @@ +{ + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "About" + }, + "accept": { + "message": "Accept" + }, + "activate": { + "message": "Activate" + }, + "activateCaptions": { + "message": "Activate captions" + }, + "activateFullscreen": { + "message": "Activate fullscreen" + }, + "activated": { + "message": "Activated" + }, + "activatedFeatures": { + "message": "Activated features" + }, + "activeFeatures": { + "message": "Active features" + }, + "addScrollToTop": { + "message": "Add «Scroll to top»" + }, + "ads": { + "message": "Ads" + }, + "all": { + "message": "All" + }, + "allow": { + "message": "Allow" + }, + "allow60fps": { + "message": "Allow 60fps" + }, + "always": { + "message": "Always" + }, + "alwaysActive": { + "message": "Always active" + }, + "alwaysShowProgressBar": { + "message": "Always show progress bar" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analyzer" + }, + "appearance": { + "message": "Appearance" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import this data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formats" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullscreen" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause when switching tabs" + }, + "autoplay": { + "message": "Autoplay" + }, + "avoidAv1": { + "message": "Avoid AV1" + }, + "avoidAv1Vp8Vp9": { + "message": "Avoid AV1, VP8, VP9" + }, + "avoidAv1Vp9": { + "message": "Avoid AV1, VP9" + }, + "avoidCpuRenderingWhenPossible": { + "message": "Avoid CPU rendering when possible" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Backup & reset" + }, + "baseOnSystemColorScheme": { + "message": "Base on system color scheme" + }, + "belowPlayer": { + "message": "Below player" + }, + "black": { + "message": "Black" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "Block all" + }, + "blockAv1": { + "message": "Block AV1" + }, + "blockH264": { + "message": "Block H.264" + }, + "blockMusic": { + "message": "Block music" + }, + "blockVp8": { + "message": "Block VP8" + }, + "blockVp9": { + "message": "Block VP9" + }, + "blue": { + "message": "Blue" + }, + "blueGray": { + "message": "Blue gray" + }, + "bluelight": { + "message": "Bluelight" + }, + "brown": { + "message": "Brown" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser version" + }, + "bubbles": { + "message": "Bubbles" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Buttons" + }, + "cancel": { + "message": "Cancel" + }, + "categories": { + "message": "Categories" + }, + "channel": { + "message": "Channel" + }, + "channels": { + "message": "Channels" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clip": { + "message": "Clip" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "codecs": { + "message": "Codecs" + }, + "collapseOfSubscriptionSections": { + "message": "Collapse of subscription sections" + }, + "collapsed": { + "message": "Collapsed" + }, + "comments": { + "message": "Comments" + }, + "confirmationBeforeClosing": { + "message": "Confirmation before closing" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "custom": { + "message": "Custom" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Custom JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Dark" + }, + "darkTheme": { + "message": "Dark theme" + }, + "dateAndTime": { + "message": "Date & time" + }, + "dawn": { + "message": "Dawn" + }, + "decreasePlaybackSpeed": { + "message": "Decrease playback speed" + }, + "decreaseVolume": { + "message": "Decrease volume" + }, + "deepOrange": { + "message": "Deep orange" + }, + "deepPurple": { + "message": "Deep purple" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Default channel tab" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Delete YouTube cookies" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Description" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Desert" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Developer options" + }, + "device": { + "message": "Device" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Disabled" + }, + "dislike": { + "message": "Dislike" + }, + "doNotChange": { + "message": "Don't change" + }, + "donate": { + "message": "Donate" + }, + "download": { + "message": "Download" + }, + "draggable": { + "message": "Draggable" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Empty" + }, + "enabled": { + "message": "Enabled" + }, + "enabledForced": { + "message": "Enabled (forced)" + }, + "expanded": { + "message": "Expanded" + }, + "exportSettings": { + "message": "Export settings" + }, + "extension": { + "message": "Extension" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filters" + }, + "fitToWindow": { + "message": "Fit to window" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Footer" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Force video to play from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, + "forcedTheaterMode": { + "message": "Forced theater mode" + }, + "forcedVolume": { + "message": "Forced volume" + }, + "foundABug": { + "message": "Found a bug?" + }, + "fullWindow": { + "message": "Full window" + }, + "general": { + "message": "General" + }, + "geoPreference": { + "message": "Geo Preference" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Go to search box" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Green" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD thumbnail" + }, + "header": { + "message": "Header" + }, + "hidden": { + "message": "Hidden" + }, + "hiddenOnVideoPage": { + "message": "Hidden on video page" + }, + "hideAnimatedThumbnails": { + "message": "Hide animated thumbnails" + }, + "hideAnnotations": { + "message": "Hide annotations" + }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, + "hideCards": { + "message": "Hide cards" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, + "hideDetails": { + "message": "Hide details" + }, + "hideEndscreen": { + "message": "Hide endscreen" + }, + "hideFeaturedContent": { + "message": "Hide featured content" + }, + "hideFooter": { + "message": "Hide footer" + }, + "hideGradientBottom": { + "message": "Hide shadow around player-bar" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Hide playlist" + }, + "hideRightButtons": { + "message": "Hide right buttons" + }, + "hideScrollForDetails": { + "message": "Hide «Scroll for details»" + }, + "hideSkipOverlay": { + "message": "Hide 5 second skip animation" + }, + "hideThumbnailOverlay": { + "message": "Hide buttons on thumbnails" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Hide views count" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "History" + }, + "home": { + "message": "Home" + }, + "hover": { + "message": "Hover" + }, + "hoverOnVideoPage": { + "message": "Hover on video page" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "How long ago the video was uploaded" + }, + "icons": { + "message": "Icons" + }, + "iconsOnly": { + "message": "Icons only" + }, + "importSettings": { + "message": "Import settings" + }, + "improveLogo": { + "message": "Improve logo" + }, + "improvedtubeButtons": { + "message": "ImprovedTube buttons" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube icon on YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube language" + }, + "improvedtubeVersion": { + "message": "ImprovedTube version" + }, + "increasePlaybackSpeed": { + "message": "Increase playback speed" + }, + "increaseVolume": { + "message": "Increase volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Languages" + }, + "legacyYoutube": { + "message": "Legacy YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Light" + }, + "lightBlue": { + "message": "Light blue" + }, + "lightGreen": { + "message": "Light green" + }, + "like": { + "message": "Like" + }, + "likeAndDislike": { + "message": "Like and Dislike " + }, + "liked": { + "message": "Liked" + }, + "lime": { + "message": "Lime" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "List" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Live chat type" + }, + "location": { + "message": "Location" + }, + "loop": { + "message": "Loop" + }, + "loudnessNormalization": { + "message": "Loudness normalization" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Mark watched videos" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "more": { + "message": "More" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "My colors" + }, + "name": { + "message": "Name" + }, + "nativeMiniPlayer": { + "message": "Native mini player" + }, + "new": { + "message": "New" + }, + "nextVideo": { + "message": "Next video" + }, + "night": { + "message": "Night" + }, + "noActiveFeatures": { + "message": "No active features" + }, + "noOpenVideoTabs": { + "message": "No open video tabs" + }, + "none": { + "message": "None" + }, + "normal": { + "message": "Normal" + }, + "off": { + "message": "Off" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Old" + }, + "onAllVideos": { + "message": "On all videos" + }, + "onSubscribedChannels": { + "message": "On subscribed channels" + }, + "onlyActiveOnYoutube": { + "message": "Only active on YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "openPopupPlayer": { + "message": "Open video/playlist in a new window" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Other" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Permissions" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Pink" + }, + "plain": { + "message": "Plain" + }, + "platform": { + "message": "Platform" + }, + "playAllButton": { + "message": "\"Play all\" button" + }, + "playPause": { + "message": "Play / Pause" + }, + "playbackSpeed": { + "message": "Playback speed" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Player color" + }, + "playerSize": { + "message": "Player size" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "popupPlayer": { + "message": "Popup player" + }, + "popupWindowButtons": { + "message": "Add popup Window buttons" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Press any key or use mouse wheel." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Press any key or use mouse wheel" + }, + "previousVideo": { + "message": "Previous video" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "Purple" + }, + "quality": { + "message": "Quality" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Rate us" + }, + "red": { + "message": "Red" + }, + "redDislikeButton": { + "message": "Show dislike button in red" + }, + "relatedVideos": { + "message": "Related videos" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Remove related search results" + }, + "repeat": { + "message": "Repeat" + }, + "report": { + "message": "Report" + }, + "reset": { + "message": "Reset" + }, + "resetAllSettings": { + "message": "Reset all settings" + }, + "resetAllShortcuts": { + "message": "Reset all shortcuts" + }, + "reverse": { + "message": "Reverse" + }, + "rotate": { + "message": "Rotate" + }, + "save": { + "message": "Save" + }, + "saveAs": { + "message": "Save as" + }, + "schedule": { + "message": "Schedule" + }, + "screen": { + "message": "Screen" + }, + "screenshot": { + "message": "Screenshot" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Search" + }, + "searchBarOnly": { + "message": "Search bar only" + }, + "seekBackward10Seconds": { + "message": "Seek backward 10 seconds" + }, + "seekForward10Seconds": { + "message": "Seek forward 10 seconds" + }, + "seekNextChapter": { + "message": "Seek Next Chapter" + }, + "seekPreviousChapter": { + "message": "Seek Previous Chapter" + }, + "settings": { + "message": "Settings" + }, + "settingsSuccessfullyImported": { + "message": "Settings successfully imported" + }, + "share": { + "message": "Share" + }, + "shortcuts": { + "message": "Shortcuts" + }, + "showCardsOnMouseHover": { + "message": "Show cards on mouse hover" + }, + "showChannelVideosCount": { + "message": "Show channel videos count" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Shuffle" + }, + "sidebar": { + "message": "Sidebar" + }, + "spacebar": { + "message": "Spacebar" + }, + "squaredUserImages": { + "message": "Squared user images" + }, + "static": { + "message": "Static" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Subscriptions" + }, + "subtitles": { + "message": "Subtitles" + }, + "sunset": { + "message": "Sunset" + }, + "sunsetToSunrise": { + "message": "Sunset to sunrise" + }, + "systemPeferenceDark": { + "message": "System preference: dark" + }, + "systemPeferenceLight": { + "message": "System preference: light" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Text color" + }, + "thanks": { + "message": "Thanks" + }, + "themes": { + "message": "Themes" + }, + "thisWillRemoveAllCookies": { + "message": "This will remove all cookies." + }, + "thisWillRemoveAllWatchedVideos": { + "message": "This will remove all watched videos." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "This will remove all YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "This will reset all settings." + }, + "thisWillResetAllShortcuts": { + "message": "This will reset all shortcuts" + }, + "thumbnails": { + "message": "Thumbnails" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Time from" + }, + "timeTo": { + "message": "Time to" + }, + "todayAt": { + "message": "Today at" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle player controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Trailer autoplay" + }, + "translations": { + "message": "Translations" + }, + "transparentBackground": { + "message": "Transparent background" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Try to reload the page" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Up next autoplay" + }, + "use24HourFormat": { + "message": "Use 24-hour format" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video description will be expanded to get the name of the category" + }, + "videoFormats": { + "message": "Video formats" + }, + "videos": { + "message": "Videos" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Watch later" + }, + "watchTime": { + "message": "Watch time" + }, + "whenPaused": { + "message": "When paused" + }, + "whenTabIsChanged": { + "message": "When tab is changed" + }, + "white": { + "message": "White" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Yellow" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (left)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (right)" + }, + "youtubeHomePage": { + "message": "YouTube home page" + }, + "youtubeLanguage": { + "message": "YouTube language" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limits video quality to 1080p for h.264 codec" + } +} \ No newline at end of file diff --git a/_locales/et/messages.json b/_locales/et/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/et/messages.json +++ b/_locales/et/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/fa/messages.json b/_locales/fa/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/fa/messages.json +++ b/_locales/fa/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/fi/messages.json b/_locales/fi/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/fi/messages.json +++ b/_locales/fi/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/fil/messages.json b/_locales/fil/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/fil/messages.json +++ b/_locales/fil/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 31ec1321a..4a6ba6dbf 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Jouer à 60 fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Toujours activé" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Presse-papiers" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donner" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Cacher les annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Cacher les cartes" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Cacher les détails" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Cacher l'écran de fin" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Masquer le dégradé du bas" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Cacher la liste de lecture" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Cacher les boutons à droite" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Cacher « Faire défiler pour les détails »" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -578,12 +572,12 @@ "like": { "message": "J'aime" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "J'aime" - }, "lime": { "message": "Citron vert" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mélangeur de volume" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Lire en boucle" }, + "report": { + "message": "Report" + }, "reset": { "message": "Réintialiser" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Importation des réglages réussie" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Raccourcis" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Couleur du texte" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Thèmes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Temps de visionnage" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "Quand l'onglet change" }, diff --git a/_locales/gu/messages.json b/_locales/gu/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/gu/messages.json +++ b/_locales/gu/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/he/messages.json b/_locales/he/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/he/messages.json +++ b/_locales/he/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/hi/messages.json b/_locales/hi/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/hi/messages.json +++ b/_locales/hi/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index da3470df3..d66ac2c9f 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -182,6 +182,9 @@ "characterEdgeStyle": { "message": "कैरेक्टर एज स्टाइल" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "क्लिपबोर्ड" }, @@ -302,6 +305,9 @@ "donate": { "message": "दान" }, + "download": { + "message": "Download" + }, "draggable": { "message": "खींचने योग्य" }, @@ -422,24 +428,24 @@ "hideAnnotations": { "message": "एनोटेशन छुपाएं" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "पत्ते छिपाओ" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "देश कोड छुपाएं" }, "hideDate": { "message": "तारीख छुपाएं" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "जानकारी छिपाएँ" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "अंत स्क्रीन छिपाएँ" }, @@ -452,9 +458,6 @@ "hideGradientBottom": { "message": "ग्रेडिएंट बॉटम छुपाएं" }, - "hideMoreButton": { - "message": "अधिक बटन छुपाएं" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +470,15 @@ "hidePlaylist": { "message": "प्लेलिस्ट छिपाएं" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "दाएं बटन छुपाएं" }, - "hideSaveButton": { - "message": "सहेजें बटन छुपाएं" - }, "hideScrollForDetails": { "message": "छिपाएँ «विवरण के लिए स्क्रॉल»" }, - "hideShareButton": { - "message": "शेयर बटन छुपाएं" - }, "hideSkipOverlay": { "message": "स्किप ओवरले छुपाएं" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -578,12 +569,12 @@ "like": { "message": "पसंद" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "को यह पसंद है" - }, "lime": { "message": "पीला हरा रंग" }, @@ -620,6 +611,9 @@ "mixer": { "message": "मिक्सर" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -788,6 +782,9 @@ "repeat": { "message": "दोहराना" }, + "report": { + "message": "Report" + }, "reset": { "message": "रीसेट" }, @@ -848,6 +845,9 @@ "settingsSuccessfullyImported": { "message": "सेटिंग्स सफलतापूर्वक आयात की गईं" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "शॉर्टकट" }, @@ -923,6 +923,9 @@ "textColor": { "message": "लिखावट का रंग" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "विषय-वस्तु" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 2b333d551..55eaf90b3 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Dopusti 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Uvijek aktivan" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Međuspremnik" }, @@ -302,6 +308,9 @@ "donate": { "message": "Doniraj" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Povuci" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Sakrij napomene" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Sakrij kartice" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Sakrij detalje" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Sakrij završni zaslon" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Sakrij sjenu oko trake playera" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Sakrij kontrole playera" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Sakrij popis za reprodukciju" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Sakrij desne gumbe" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Sakrij «Pomakni za detalje»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Sakrij gumbe na sličicama" }, @@ -578,12 +572,12 @@ "like": { "message": "Sviđa mi se" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Sviđaju mi se" - }, "lime": { "message": "Limeta" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mikser" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normalno" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Ponovi" }, + "report": { + "message": "Report" + }, "reset": { "message": "Resetiraj" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Postavke su uspješno uvezene" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Prečaci" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Boja teksta" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Teme" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Vrijeme gledanja" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "Kada se kartica promijeni" }, diff --git a/_locales/hu/messages.json b/_locales/hu/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/hu/messages.json +++ b/_locales/hu/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index d02598f6b..c9fd46fe5 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Izinkan 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Selalu aktif" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donasi" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Dapat diseret" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Sembunyikan penjelasan" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Sembunyikan kartu" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Sembunyikan detail" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Sembunyikan layar akhir" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Sembunyikan Gradient Bagian Bawah" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Sembunyikan daftar putar" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Sembunyikan tombol kanan" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Sembunyikan «gulir untuk detail»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -578,12 +572,12 @@ "like": { "message": "Suka" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Suka" - }, "lime": { "message": "Limau" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Putar ulang" }, + "report": { + "message": "Report" + }, "reset": { "message": "Setel ulang" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Berhasil mengimpor pengaturan" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Pintasan" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Warna teks" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Tema" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Waktu tayang" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "Saat tab berubah" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 65c6fe815..71c2b6dec 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Permetti 60 fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Sempre attivo" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Stile del bordo carattere" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Appunti" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donazione" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Trascinabile" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Nascondi annotazioni" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Nascondi tessere di fine video" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Nascondi codice paese" }, "hideDate": { "message": "Nascondi data" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Nascondi dettagli" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Nascondi finale video" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Nascondi fondo gradiente" }, - "hideMoreButton": { - "message": "Nascondi bottone \"Altro\"" - }, "hidePlayerControlsBar": { "message": "Nascondi barra dei controlli del lettore" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Nascondi scaletta" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Nascondi pulsanti sulla destra" }, - "hideSaveButton": { - "message": "Nascondi bottone \"Salva\"" - }, "hideScrollForDetails": { "message": "Nascondi «Scorri per dettagli»" }, - "hideShareButton": { - "message": "Nascondi bottone \"Condividi\"" - }, "hideSkipOverlay": { "message": "Nascondi \"Salta overlay\"" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Nascondi overlay miniature" }, @@ -578,12 +572,12 @@ "like": { "message": "Mi piace" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Piaciuto" }, - "likes": { - "message": "Numero di Mi piace" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Sposta barra laterale a sinistra" }, @@ -656,6 +653,9 @@ "normal": { "message": "Standard" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Ripeti" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reimposta" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Impostazioni importate con successo" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Scorciatoie" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Colore testo" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Temi" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Tempo di visione" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "Quando si cambia scheda" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index e18fd212a..762da5db7 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "60fps を許可する" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "常に有効" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "文字の縁のスタイル" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "クリップボード" }, @@ -302,6 +308,9 @@ "donate": { "message": "寄付する" }, + "download": { + "message": "Download" + }, "draggable": { "message": "ドラッグ可能にする" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "アノテーションを隠す" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "カードを隠す" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "地域コードを隠す" }, "hideDate": { "message": "日付を隠す" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "詳細を隠す" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "再生終了時の画面を隠す" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "グラデーションの下部を隠す" }, - "hideMoreButton": { - "message": "\"もっと見る\" ボタンを隠す" - }, "hidePlayerControlsBar": { "message": "プレーヤーのコントロールバーを隠す" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "再生リストを隠す" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "右ボタンを隠す" }, - "hideSaveButton": { - "message": "\"保存\" ボタンを隠す" - }, "hideScrollForDetails": { "message": "\"スクロールして詳細を表示\" を隠す" }, - "hideShareButton": { - "message": "\"共有\" ボタンを隠す" - }, "hideSkipOverlay": { "message": "スキップオーバーレイを隠す" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "サムネイルオーバーレイを隠す" }, @@ -578,12 +572,12 @@ "like": { "message": "高評価" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "評価" - }, "lime": { "message": "ライム" }, @@ -620,6 +614,9 @@ "mixer": { "message": "ミキサー" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "サイドバーを左に移動" }, @@ -656,6 +653,9 @@ "normal": { "message": "標準" }, + "off": { + "message": "Off" + }, "ok": { "message": "OK" }, @@ -788,6 +788,9 @@ "repeat": { "message": "リピート" }, + "report": { + "message": "Report" + }, "reset": { "message": "リセット" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "設定を正常にインポートしました" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "ショートカット" }, @@ -923,6 +929,9 @@ "textColor": { "message": "文字の色" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "テーマ" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "視聴時間" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "タブを変更したとき" }, diff --git a/_locales/kn/messages.json b/_locales/kn/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/kn/messages.json +++ b/_locales/kn/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 0a3f25273..516308d7c 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "60에프피에스(fps) 허용" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "항상 활성화" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "클립보드" }, @@ -302,6 +308,9 @@ "donate": { "message": "후원하기" }, + "download": { + "message": "Download" + }, "draggable": { "message": "드래그 가능" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "설명 숨기기" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "카드 숨기기" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "국가코드 숨기기" }, "hideDate": { "message": "날짜 숨기기" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "상세설명 숨기기" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "종료후 화면 숨기기" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "그라데이션 맨 아래로 숨기기" }, - "hideMoreButton": { - "message": "\"더보기\" 버튼 숨기기" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "재생 목록 숨기기" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "오른쪽 버튼 숨기기" }, - "hideSaveButton": { - "message": "\"저장\" 버튼 숨기기" - }, "hideScrollForDetails": { "message": "«스크롤 하여 자세한 설명» 숨기기" }, - "hideShareButton": { - "message": "\"공유\" 버튼 숨기기" - }, "hideSkipOverlay": { "message": "\"오버레이 건너뛰기\" 숨기기" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -578,12 +572,12 @@ "like": { "message": "좋아요" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "좋아요" - }, "lime": { "message": "라임" }, @@ -620,6 +614,9 @@ "mixer": { "message": "믹서" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "기본" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "반복" }, + "report": { + "message": "Report" + }, "reset": { "message": "리셋" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "설정 내보내기 완료" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "단축키" }, @@ -923,6 +929,9 @@ "textColor": { "message": "텍스트 색상" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "테마" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "시간 보기" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "탭이 바뀔때" }, diff --git a/_locales/lt/messages.json b/_locales/lt/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/lt/messages.json +++ b/_locales/lt/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/lv/messages.json b/_locales/lv/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/lv/messages.json +++ b/_locales/lv/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/ml/messages.json b/_locales/ml/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/ml/messages.json +++ b/_locales/ml/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/mr/messages.json b/_locales/mr/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/mr/messages.json +++ b/_locales/mr/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/ms/messages.json b/_locales/ms/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/ms/messages.json +++ b/_locales/ms/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index c0c1d7b16..c64459edb 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -182,6 +182,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Utklippstavle" }, @@ -302,6 +305,9 @@ "donate": { "message": "Doner" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Flyttbare" }, @@ -422,24 +428,24 @@ "hideAnnotations": { "message": "Skjul annoteringer" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Skjul kort" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Skjul detaljer" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Skjul sluttskjerm" }, @@ -452,9 +458,6 @@ "hideGradientBottom": { "message": "Skjul bunn-fargeovergang" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +470,15 @@ "hidePlaylist": { "message": "Skjul spilleliste" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Skjul høyre-knapper" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Skjul «Bla for detaljer»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -578,12 +569,12 @@ "like": { "message": "Gunst" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Begunstninger" - }, "lime": { "message": "Lime" }, @@ -620,6 +611,9 @@ "mixer": { "message": "Mikser" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -788,6 +782,9 @@ "repeat": { "message": "Gjenta" }, + "report": { + "message": "Report" + }, "reset": { "message": "Tilbakestill" }, @@ -848,6 +845,9 @@ "settingsSuccessfullyImported": { "message": "Innstillinger importert" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Snarveier" }, @@ -923,6 +923,9 @@ "textColor": { "message": "Tekstfarge" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Drakter" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 757536cb9..fed6bdd53 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "60fps toestaan" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Altijd actief" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Stijl omlijning letters" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Klembord" }, @@ -302,6 +308,9 @@ "donate": { "message": "Doneer" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Sleepbaar" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Verberg annotaties" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Verberg kaarten" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Verberg landcode" }, "hideDate": { "message": "Verberg datum" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Verberg details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Verberg eindscherm" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Verberg Gradient Onderkant" }, - "hideMoreButton": { - "message": "Verberg 'Meer'-knop" - }, "hidePlayerControlsBar": { "message": "Verberg afspeelbalk" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Verberg afspeellijst" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Verberg knoppen rechterkant" }, - "hideSaveButton": { - "message": "Verberg 'Opslaan'-knop" - }, "hideScrollForDetails": { "message": "Verberg «Scrollen voor meer details»" }, - "hideShareButton": { - "message": "Verberg \"Deel\"-knop" - }, "hideSkipOverlay": { "message": "Verberg knop voor overslaan omslag" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Verberg miniatuurafbeeldingen omslag" }, @@ -578,12 +572,12 @@ "like": { "message": "Vind ik leuk" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Leuk gevonden" }, - "likes": { - "message": "Vind-ik-leuks" - }, "lime": { "message": "Limoen" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Verplaats zijbalk naar links" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normaal" }, + "off": { + "message": "Off" + }, "ok": { "message": "OK" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Herhalen" }, + "report": { + "message": "Report" + }, "reset": { "message": "Herstel" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Instellingen succesvol geïmporteerd" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Sneltoetsen" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Tekstkleur" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Thema's" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Tijd van bekijken" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "Wanneer het tabblad is veranderd" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index f27c4b55a..c2400549c 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Tillat 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Alltid aktiv" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Utklippstavle" }, @@ -302,6 +308,9 @@ "donate": { "message": "Doner" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Flyttbare" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Skjul annoteringer" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Skjul kort" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Skjul detaljer" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Skjul sluttskjerm" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Skjul spilleliste" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Skjul høyre knapper" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Skjul «Bla for detaljer»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mikser" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Gjenta" }, + "report": { + "message": "Report" + }, "reset": { "message": "Tilbakestill" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Innstillinger importert" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Snarveier" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Tekstfarge" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Temaer" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Tid sett" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "Når fanen endres" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index faf4cecd6..8fa8f9ea4 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Zezwól na 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Zawsze aktywne" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Styl krawędzi znaków" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Schowek" }, @@ -302,6 +308,9 @@ "donate": { "message": "Dotacja" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Przeciągalne" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Ukryj adnotacje" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Ukryj karty" }, - "hideClipButton": { - "message": "Ukryj przycisk \"Klip\"" - }, "hideCountryCode": { "message": "Ukryj kod kraju" }, "hideDate": { "message": "Ukryj datę" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Ukryj szczegóły" }, - "hideDownloadButton": { - "message": "Ukryj przycisk \"Pobierz\"" - }, "hideEndscreen": { "message": "Ukryj ekran końcowy" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Ukryj cień dookoła paska odtwarzania" }, - "hideMoreButton": { - "message": "Ukryj przycisk \"Więcej\"" - }, "hidePlayerControlsBar": { "message": "Ukryj pasek sterowania odtwarzaczem" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Ukryj playliste" }, - "hideReportButton": { - "message": "Ukryj przycisk \"Zgłoś\"" - }, "hideRightButtons": { "message": "Ukryj przyciski po prawej" }, - "hideSaveButton": { - "message": "Ukryj przycisk \"Zapisz\"" - }, "hideScrollForDetails": { "message": "Ukryj «Przewiń do szczegółów»" }, - "hideShareButton": { - "message": "Ukryj przycisk \"Udostępnij\"" - }, "hideSkipOverlay": { "message": "Ukryj nakładkę pomijania" }, - "hideThanksButton": { - "message": "Ukryj przycisk \"Podziękuj\"" - }, "hideThumbnailOverlay": { "message": "Ukryj przyciski na miniaturach" }, @@ -578,12 +572,12 @@ "like": { "message": "Polub" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Polubione" }, - "likes": { - "message": "Polubienia" - }, "lime": { "message": "Limonkowy" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mikser" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Przenieś panel boczny na lewo" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normalny" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Powtarzaj" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Ustawienia pomyślnie zaimportowane" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Skróty" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Kolor tekstu" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Motywy" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Czas oglądania" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "Kiedy zostaje zmieniona karta" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 9a048ab69..1a2090eb4 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Permitir 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Sempre ativo" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Estilo da borda de personagem" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Àrea de transferência" }, @@ -302,6 +308,9 @@ "donate": { "message": "Doar" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Arrastável" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Ocultar anotações" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Ocultar cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Ocultar código do país" }, "hideDate": { "message": "Ocultar data" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Ocultar detalhes" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Ocultar tela final" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Ocultar sombra ao redor da barra do player" }, - "hideMoreButton": { - "message": "Ocultar botão \"Mais\"" - }, "hidePlayerControlsBar": { "message": "Ocultar a barra de controles do player" }, @@ -467,23 +473,14 @@ "hidePlaylist": { "message": "Ocultar playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Ocultar botões à direita" }, - "hideSaveButton": { - "message": "Ocultar botão \"Salvar\"" - }, "hideScrollForDetails": { "message": "Ocultar «Rolar para ver detalhes»" }, - "hideShareButton": { - "message": "Ocultar botão \"Compartilhar\"" - }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" + "hideSkipOverlay": { + "message": "Hide 5 second skip animation" }, "hideThumbnailOverlay": { "message": "Ocultar botões nas miniaturas" @@ -575,12 +572,12 @@ "like": { "message": "Avaliar!" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Avaliado" }, - "likes": { - "message": "Avaliações" - }, "lime": { "message": "Verde Limão" }, @@ -617,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Mover barra lateral para esquerda" }, @@ -653,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -785,6 +788,9 @@ "repeat": { "message": "Repetir" }, + "report": { + "message": "Report" + }, "reset": { "message": "Restaurar" }, @@ -845,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Configurações importadas com sucesso" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Atalhos" }, @@ -920,6 +929,9 @@ "textColor": { "message": "Cor do texto" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Temas" }, @@ -1019,6 +1031,9 @@ "watchTime": { "message": "Tempo de exibição" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "Quando a aba é alterada" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 755c335ef..78867302d 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Permitir 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Sempre ativo" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Area de transferência" }, @@ -302,6 +308,9 @@ "donate": { "message": "Doar" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Podes arrastar" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Esconder anotações" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Esconder cartas" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Esconder detalhes" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Esconder ecãn final" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide Gradient Bottom" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Esconder lista de reprodução" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Esconder botões do lado direito" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Esconder «Rodar para detalhes»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -578,12 +572,12 @@ "like": { "message": "Gostar" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Gostos" - }, "lime": { "message": "Limão" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mistura" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repetir" }, + "report": { + "message": "Report" + }, "reset": { "message": "Valores de origem" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Definições importadas com sucesso" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Atalhos" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Côr do texto" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Temas" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Tempo de visualização" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "Quando a janela mudar" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 1aab2c44c..d19af76fb 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Permite 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Mereu activ" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donează" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Poate fi tras" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Ascunde adnotările" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Ascunde cardurile" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Ascunde detaliile" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Ascunde ecranul de final" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Ascunde Gradient Bottom" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Ascundeți bara de control al jucătorului" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Ascunde playlistul" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Ascunde butoanele din dreapta" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Ascunde «Derulează pentru detalii»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -578,12 +572,12 @@ "like": { "message": "Îmi place" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Like-uri" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repetă" }, + "report": { + "message": "Report" + }, "reset": { "message": "Resetează" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Setările au fost importate cu succes" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Scurtături" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Culoarea textului" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Teme" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Timp de vizionare" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "Când tabul este schimbat" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 60495051e..69946f030 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Разрешить 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Всегда активный" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Стиль контура символов" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Буфер обмена" }, @@ -305,6 +311,9 @@ "donate": { "message": "Пожертвовать" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Перетаскиваемый" }, @@ -425,24 +434,24 @@ "hideAnnotations": { "message": "Скрывать аннотации" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Скрывать карточки" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Скрывать код страны" }, "hideDate": { "message": "Скрывать дату видео" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Скрывать подробную информацию" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Скрывать экран после видео" }, @@ -455,9 +464,6 @@ "hideGradientBottom": { "message": "Скрывать кнопку градиента" }, - "hideMoreButton": { - "message": "Скрывать кнопку \"...\"" - }, "hidePlayerControlsBar": { "message": "Скрывать панель управления плеером" }, @@ -470,27 +476,15 @@ "hidePlaylist": { "message": "Скрывать плейлисты" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Скрывать кнопки (справа)" }, - "hideSaveButton": { - "message": "Скрывать кнопку \"Сохранить\"" - }, "hideScrollForDetails": { "message": "Скрывать «Прокрутите для подробной информации»" }, - "hideShareButton": { - "message": "Скрывать кнопку \"Поделиться\"" - }, "hideSkipOverlay": { "message": "Скрывать наложение \"5 секунд\"" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Скрывать наложение на превью" }, @@ -584,12 +578,12 @@ "like": { "message": "Лайк" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Понравившиеся" }, - "likes": { - "message": "Лайки" - }, "lime": { "message": "Лайм" }, @@ -626,6 +620,9 @@ "mixer": { "message": "Миксер" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Сместить боковую панель влево" }, @@ -662,6 +659,9 @@ "normal": { "message": "Обычный" }, + "off": { + "message": "Off" + }, "ok": { "message": "Хорошо" }, @@ -794,6 +794,9 @@ "repeat": { "message": "Повтор" }, + "report": { + "message": "Report" + }, "reset": { "message": "Сбросить" }, @@ -854,6 +857,9 @@ "settingsSuccessfullyImported": { "message": "Настройки успешно импортированы" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Горячие клавиши" }, @@ -929,6 +935,9 @@ "textColor": { "message": "Цвет текста" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Темы" }, @@ -1028,6 +1037,9 @@ "watchTime": { "message": "Время просмотра" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "При смене вкладки" }, diff --git a/_locales/si/messages.json b/_locales/si/messages.json index b418fa8b6..915684537 100644 --- a/_locales/si/messages.json +++ b/_locales/si/messages.json @@ -182,6 +182,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard එක" }, @@ -302,6 +305,9 @@ "donate": { "message": "Donate කරන්න" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Drag කළ හැකි" }, @@ -422,24 +428,24 @@ "hideAnnotations": { "message": "Annotations සඟවන්න" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Cards සඟවන්න" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Country code එක හංගන්න" }, "hideDate": { "message": "Date එක හංගන්න" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Details හංගන්න" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Endscreen එක හංගන්න" }, @@ -452,9 +458,6 @@ "hideGradientBottom": { "message": "Player-bar එක වටේ තියෙන shadow එක සගවන්න" }, - "hideMoreButton": { - "message": "\"More\" button එක සඟවන්න" - }, "hidePlayerControlsBar": { "message": "Player controls bar එක සඟවන්න" }, @@ -467,27 +470,15 @@ "hidePlaylist": { "message": "Playlist සඟවන්න" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "දකුණු පැත්තෙ තියෙන button සඟවන්න" }, - "hideSaveButton": { - "message": "\"Save\" button එක සඟවන්න" - }, "hideScrollForDetails": { "message": "«Scroll for details» සඟවන්න" }, - "hideShareButton": { - "message": "\"Share\" button සඟවන්න" - }, "hideSkipOverlay": { "message": "5 seconds skip animation එක සඟවන්න" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Thumbnail මත තිබෙන button සඟවන්න" }, @@ -578,12 +569,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +611,9 @@ "mixer": { "message": "Mixer එක" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Sidebar එක වම් පැත්තට යවන්න" }, @@ -788,6 +782,9 @@ "repeat": { "message": "Repeat කරන්න" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset කරන්න" }, @@ -848,6 +845,9 @@ "settingsSuccessfullyImported": { "message": "සාර්ථකව settings import කරනලදී." }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +923,9 @@ "textColor": { "message": "Text color එක" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index a85193ad8..885d4d7e1 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Povoliť 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Vždy aktívne" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Schránka" }, @@ -302,6 +308,9 @@ "donate": { "message": "Prispieť" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Posuvné" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Skryť anotácie" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Skryť karty" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Skryť detaily" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Skryť zobrazenie na konci videa" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide Gradient Bottom" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Skryť zoznam videí" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Skryť tlčidlá v pravo" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Skryť «Zarolujte pre detaily»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -578,12 +572,12 @@ "like": { "message": "Páči sa mi to" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Páči sa mi to" - }, "lime": { "message": "Limetková" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixér" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normále" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Opakovať" }, + "report": { + "message": "Report" + }, "reset": { "message": "Obnoviť" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Nastavenia úspešne importované" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Skratky" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Farba textu" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Témy" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Čas sledovania" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "Pri zmene karty" }, diff --git a/_locales/sl/messages.json b/_locales/sl/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/sl/messages.json +++ b/_locales/sl/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/sr/messages.json +++ b/_locales/sr/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/sw/messages.json b/_locales/sw/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/sw/messages.json +++ b/_locales/sw/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/ta/messages.json b/_locales/ta/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/ta/messages.json +++ b/_locales/ta/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/te/messages.json b/_locales/te/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/te/messages.json +++ b/_locales/te/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/th/messages.json b/_locales/th/messages.json index b9d38be74..b6a4e0ed4 100644 --- a/_locales/th/messages.json +++ b/_locales/th/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text color" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 1e53104f7..a1ead340e 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "60fps'e izin ver" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Sürekli etkin" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Karakter kenar stili" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Pano" }, @@ -302,6 +308,9 @@ "donate": { "message": "Bağış" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Sürüklenebilir" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Ek açıklamaları gizle" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Kartları gizle" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Ülke kodunu gizle" }, "hideDate": { "message": "Tarihi gizle" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Detayları gizle" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Ekran sonunu gizle" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Gradyan Altını Gizle" }, - "hideMoreButton": { - "message": "\"Diğer\" düğmesini gizle" - }, "hidePlayerControlsBar": { "message": "Oynatıcı kontrol çubuğunu gizle" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Oynatma Listesi'ni gizle" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Sağ butonları gizle" }, - "hideSaveButton": { - "message": "\"Kaydet\" butonunu gizle " - }, "hideScrollForDetails": { "message": "«Ayrıntılar için kaydır» gizle" }, - "hideShareButton": { - "message": "\"Paylaş\" butonunu gizle" - }, "hideSkipOverlay": { "message": "Yer Paylaşımını Atla Gizle" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Küçük resim yer paylaşımını gizle" }, @@ -578,12 +572,12 @@ "like": { "message": "Beğen" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Beğenildi" }, - "likes": { - "message": "Beğeniler" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Karıştırıcı" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Kenar çubuğunu sola taşı" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Tamam" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Tekrarla" }, + "report": { + "message": "Report" + }, "reset": { "message": "Sıfırla" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Ayarlar başarıyla içe aktarıldı" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Kısayollar" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Yazı rengi" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Temalar" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "İzleme zamanı" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "Sekme değiştirildiğinde" }, diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json index 651e62606..f808e0371 100644 --- a/_locales/uk/messages.json +++ b/_locales/uk/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Allow 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Always active" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Character edge style" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Donate" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Draggable" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Hide annotations" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Hide cards" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Hide country code" }, "hideDate": { "message": "Hide date" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide \"More\" button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide \"Save\" button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide \"Share\" button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -578,12 +572,12 @@ "like": { "message": "Like" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "Likes" - }, "lime": { "message": "Lime" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "Normal" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Repeat" }, + "report": { + "message": "Report" + }, "reset": { "message": "Reset" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Settings successfully imported" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Shortcuts" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Text colour" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Themes" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Watch time" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "When tab is changed" }, diff --git a/_locales/vi/messages.json b/_locales/vi/messages.json index 00dd1f6e8..0c5e5a065 100644 --- a/_locales/vi/messages.json +++ b/_locales/vi/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "Cho phép 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "Luôn luôn hoạt động" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "Kiểu cạnh ký tự" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "Clipboard" }, @@ -302,6 +308,9 @@ "donate": { "message": "Quyên tặng" }, + "download": { + "message": "Download" + }, "draggable": { "message": "Có thể kéo" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "Ẩn chú thích" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "Ẩn thẻ" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "Ẩn mã quốc gia" }, "hideDate": { "message": "Ẩn ngày" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "Ẩn chi tiết" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "Ẩn màn hình kết thúc" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "Ẩn bóng xung quanh thanh trình phát" }, - "hideMoreButton": { - "message": "Ẩn nút \"Thêm\" " - }, "hidePlayerControlsBar": { "message": "Ẩn thanh điều khiển trình phát" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "Ẩn danh sách phát" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "Ẩn các nút bên phải" }, - "hideSaveButton": { - "message": "Ẩn nút \"Lưu\" " - }, "hideScrollForDetails": { "message": "Ẩn «Cuộn để biết chi tiết»" }, - "hideShareButton": { - "message": "Ẩn nút \"Chia sẻ\" " - }, "hideSkipOverlay": { "message": "Ẩn hoạt ảnh bỏ qua 5 giây" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "Ẩn các nút trên hình thu nhỏ" }, @@ -578,12 +572,12 @@ "like": { "message": "Thích" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Đã thích" }, - "likes": { - "message": "Thích" - }, "lime": { "message": "Chanh xanh" }, @@ -620,6 +614,9 @@ "mixer": { "message": "Mixer" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Di chuyển thanh bên sang trái" }, @@ -656,6 +653,9 @@ "normal": { "message": "Bình thường" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "Lặp lại" }, + "report": { + "message": "Report" + }, "reset": { "message": "Cài đặt lại" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "Đã nhập thành công cài đặt" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "Phím tắt" }, @@ -923,6 +929,9 @@ "textColor": { "message": "Màu văn bản" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "Chủ đề" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "Thời gian xem" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "Khi tab được thay đổi" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index e49d0b24d..9eaafd3e3 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "允许60FPS" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "始终启用" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "文字阴影风格" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "粘贴板" }, @@ -302,6 +308,9 @@ "donate": { "message": "支持" }, + "download": { + "message": "Download" + }, "draggable": { "message": "可拖动" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "隐藏预览图" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "隐藏信息卡片" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "隐藏国家代码" }, "hideDate": { "message": "隐藏日期" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "隐藏详细信息" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "隐藏结束画面" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "隐藏底部渐变层" }, - "hideMoreButton": { - "message": "隐藏 \"更多\" 按钮" - }, "hidePlayerControlsBar": { "message": "隐藏播放器控制栏" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "隐藏播放列表" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "隐藏右侧按钮" }, - "hideSaveButton": { - "message": "隐藏 \"保存\"按钮" - }, "hideScrollForDetails": { "message": "隐藏 «滚动至详细信息»" }, - "hideShareButton": { - "message": "隐藏\"共享\"按钮" - }, "hideSkipOverlay": { "message": "隐藏跳过叠加" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "隐藏缩略图上的按钮" }, @@ -578,12 +572,12 @@ "like": { "message": "顶一下" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "顶/踩总数" - }, "lime": { "message": "石灰色" }, @@ -620,6 +614,9 @@ "mixer": { "message": "混音器" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -656,6 +653,9 @@ "normal": { "message": "正常" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "循环" }, + "report": { + "message": "Report" + }, "reset": { "message": "重置" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "设置导入成功" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "快捷键" }, @@ -923,6 +929,9 @@ "textColor": { "message": "文字颜色" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "主题" }, @@ -1028,6 +1037,9 @@ "watchTime": { "message": "观看时间" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "切换标签时" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index edd75667f..7e2b3047e 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -50,6 +50,9 @@ "allow60fps": { "message": "允許 60fps" }, + "always": { + "message": "Always" + }, "alwaysActive": { "message": "始終有效" }, @@ -182,6 +185,9 @@ "characterEdgeStyle": { "message": "字型邊緣型式" }, + "clip": { + "message": "Clip" + }, "clipboard": { "message": "剪貼簿" }, @@ -302,6 +308,9 @@ "donate": { "message": "捐贈" }, + "download": { + "message": "Download" + }, "draggable": { "message": "可拖動" }, @@ -422,24 +431,24 @@ "hideAnnotations": { "message": "隱藏註解" }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, "hideCards": { "message": "隱藏資訊卡" }, - "hideClipButton": { - "message": "Hide \"Clip\" button" - }, "hideCountryCode": { "message": "隱藏國家代號" }, "hideDate": { "message": "隱藏日期" }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, "hideDetails": { "message": "隱藏細節" }, - "hideDownloadButton": { - "message": "Hide \"Download\" button" - }, "hideEndscreen": { "message": "隱藏結束畫面" }, @@ -452,9 +461,6 @@ "hideGradientBottom": { "message": "隱藏底部漸層圖層" }, - "hideMoreButton": { - "message": "隱藏「顯示更多」按鈕" - }, "hidePlayerControlsBar": { "message": "隱藏播放器控制欄" }, @@ -467,27 +473,15 @@ "hidePlaylist": { "message": "隱藏播放清單" }, - "hideReportButton": { - "message": "Hide \"Report\" button" - }, "hideRightButtons": { "message": "隱藏右側按鈕" }, - "hideSaveButton": { - "message": "隱藏「儲存」按鈕" - }, "hideScrollForDetails": { "message": "隱藏「向下捲動即可查看詳情」" }, - "hideShareButton": { - "message": "隱藏「分享」按鈕" - }, "hideSkipOverlay": { "message": "隱藏「跳至區段」按鈕" }, - "hideThanksButton": { - "message": "Hide \"Thanks\" button" - }, "hideThumbnailOverlay": { "message": "隱藏縮圖上的按鈕" }, @@ -578,12 +572,12 @@ "like": { "message": "喜歡" }, + "likeAndDislike": { + "message": "Like and Dislike " + }, "liked": { "message": "Liked" }, - "likes": { - "message": "顯示按讚數量" - }, "lime": { "message": "萊姆色" }, @@ -620,6 +614,9 @@ "mixer": { "message": "音量混合器" }, + "more": { + "message": "More" + }, "moveSidebarLeft": { "message": "將側邊欄移至右方" }, @@ -656,6 +653,9 @@ "normal": { "message": "正常" }, + "off": { + "message": "Off" + }, "ok": { "message": "Ok" }, @@ -788,6 +788,9 @@ "repeat": { "message": "重複播放" }, + "report": { + "message": "Report" + }, "reset": { "message": "重置" }, @@ -848,6 +851,9 @@ "settingsSuccessfullyImported": { "message": "已成功匯入設定" }, + "share": { + "message": "Share" + }, "shortcuts": { "message": "快捷鍵" }, @@ -923,6 +929,9 @@ "textColor": { "message": "文字顏色" }, + "thanks": { + "message": "Thanks" + }, "themes": { "message": "主題" }, @@ -1022,6 +1031,9 @@ "watchTime": { "message": "已觀看時間" }, + "whenPaused": { + "message": "When paused" + }, "whenTabIsChanged": { "message": "當分頁改變時" }, @@ -1052,4 +1064,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "使用 H.264 編碼時,YouTube 會將畫質限制為 1080p 內。" } -} +} \ No newline at end of file diff --git a/content-styles.css b/content-styles.css index 42576e681..bf4191f45 100644 --- a/content-styles.css +++ b/content-styles.css @@ -42,7 +42,7 @@ 2.4.1 Hide details 2.4.2 Hide views count 2.4.3 Hide date - 2.4.4 Likes + 2.4.4 Hide like button 2.4.5 Hide share button 2.4.6 Hide download button 2.4.7 Hide thanks button @@ -1178,41 +1178,23 @@ html[it-hide-date=true] #count+#info-strings>#dot { /*-------------------------------------------------------------- -2.4.4 LIKES +2.4.4 HIDE LIKE BUTTON --------------------------------------------------------------*/ -[it-likes=hidden] #watch8-sentiment-actions>.like-button-renderer, -[it-likes=hidden] .video-extras-sparkbar-likes, -[it-likes=hidden] .video-extras-sparkbar-dislikes, -[it-likes=hidden] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(1), -[it-likes=hidden] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(2), -[it-likes=hidden] #info #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1), -[it-likes=hidden] #info #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2), -[it-likes=hidden] #sentiment.ytd-video-primary-info-renderer { - visibility: hidden !important; - pointer-events: none !important; -} - -[it-likes=icons_only] #watch8-sentiment-actions>.like-button-renderer button>span, -[it-likes=icons_only] .video-extras-sparkbar-likes, -[it-likes=icons_only] .video-extras-sparkbar-dislikes, -[it-likes=icons_only] #top-level-buttons ytd-toggle-button-renderer:nth-child(1) yt-formatted-string, -[it-likes=icons_only] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) yt-formatted-string, -[it-likes=icons_only] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) yt-formatted-string, -[it-likes=icons_only] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) yt-formatted-string, -[it-likes=icons_only] #sentiment.ytd-video-primary-info-renderer { - visibility: hidden !important; - pointer-events: none !important; -} - -[it-likes=icons_only] #text.style-scope.ytd-toggle-button-renderer.style-text, -[it-likes=icons_only] #text.style-scope.ytd-toggle-button-renderer.style-default-active { - visibility: hidden !important; +[it-hide-like-button=true] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(1), +[it-hide-like-button=true] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(2), +[it-hide-like-button=true] #info #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1), +[it-hide-like-button=true] #info #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2), +[it-hide-like-button=true] #sentiment.ytd-video-primary-info-renderer { + display: none; } -[it-likes=icons_only] .like-button-renderer-like-button, -[it-likes=icons_only] .like-button-renderer-dislike-button { - color: transparent !important; +[it-hide-like-button-text=true] #top-level-buttons ytd-toggle-button-renderer:nth-child(1) div.cbox, +[it-hide-like-button-text=true] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) div.cbox, +[it-hide-like-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) div.cbox, +[it-hide-like-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) div.cbox, +[it-hide-like-button-text=true] #sentiment.ytd-video-primary-info-renderer { + display: none; } @@ -1225,6 +1207,10 @@ html[it-hide-share-button=true] #info #top-level-buttons-computed ytd-button-ren display: none; } +html[it-hide-share-button-text=true] #info #top-level-buttons ytd-button-renderer#Share-button div.cbox, +html[it-hide-share-button-text=true] #info #top-level-buttons-computed ytd-button-renderer#Share-button div.cbox { + display: none; +} /*-------------------------------------------------------------- 2.4.6 HIDE DOWNLOAD BUTTON @@ -1235,6 +1221,10 @@ html[it-hide-download-button=true] #info #top-level-buttons-computed ytd-downloa display: none; } +html[it-hide-download-button-text=true] #info #top-level-buttons ytd-download-button-renderer div.cbox , +html[it-hide-download-button-text=true] #info #top-level-buttons-computed ytd-download-button-renderer div.cbox { + display: none; +} /*-------------------------------------------------------------- 2.4.7 HIDE THANKS BUTTON @@ -1245,6 +1235,10 @@ html[it-hide-thanks-button=true] #info #top-level-buttons-computed ytd-button-re display: none; } +html[it-hide-thanks-button-text=true] #info #top-level-buttons ytd-button-renderer#Thanks-button div.cbox, +html[it-hide-thanks-button-text=true] #info #top-level-buttons-computed ytd-button-renderer#Thanks-button div.cbox { + display: none; +} /*-------------------------------------------------------------- 2.4.8 HIDE CLIP BUTTON @@ -1255,6 +1249,10 @@ html[it-hide-clip-button=true] #info #top-level-buttons-computed ytd-button-rend display: none; } +html[it-hide-clip-button-text=true] #info #top-level-buttons ytd-button-renderer#Clip-button div.cbox, +html[it-hide-clip-button-text=true] #info #top-level-buttons-computed ytd-button-renderer#Clip-button div.cbox { + display: none; +} /*-------------------------------------------------------------- 2.4.9 HIDE SAVE BUTTON @@ -1265,6 +1263,10 @@ html[it-hide-save-button=true] #info #top-level-buttons-computed ytd-button-rend display: none; } +html[it-hide-save-button-text=true] #info #top-level-buttons ytd-button-renderer#Save-button div.cbox, +html[it-hide-save-button-text=true] #info #top-level-buttons-computed ytd-button-renderer#Save-button div.cbox { + display: none; +} /*-------------------------------------------------------------- 2.4.10 REPORT REPORT BUTTON diff --git a/ui/script.js b/ui/script.js index e8895befe..7d34c0063 100644 --- a/ui/script.js +++ b/ui/script.js @@ -4456,56 +4456,100 @@ var skeleton = { text: 'hideDate', tags: 'hide,remove' }, - likes: { - component: 'select', - text: 'likes', - - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'iconsOnly', - value: 'icons_only' - }, { - text: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - hide_share_button: { - component: 'switch', - text: 'hideShareButton', - tags: 'hide,remove' - }, - hide_download_button: { - component: 'switch', - text: 'hideDownloadButton', - tags: 'hide,remove' - }, - hide_thanks_button: { - component: 'switch', - text: 'hideThanksButton', - tags: 'hide,remove' - }, - hide_clip_button: { - component: 'switch', - text: 'hideClipButton', - tags: 'hide,remove' - }, - hide_save_button: { - component: 'switch', - text: 'hideSaveButton', - tags: 'hide,remove' - }, - hide_report_button: { - component: 'switch', - text: 'hideReportButton', - tags: 'hide,remove' + hide_details_button: { + component: 'button', + text: 'hideDetailButton', + on: { + click: { + component: 'section', + variant: 'card', + hide_like_button: { + component: 'switch', + text: 'likeAndDislike', + tags: 'hide,remove' + }, + hide_share_button: { + component: 'switch', + text: 'share', + tags: 'hide,remove' + }, + hide_download_button: { + component: 'switch', + text: 'download', + tags: 'hide,remove' + }, + hide_thanks_button: { + component: 'switch', + text: 'thanks', + tags: 'hide,remove' + }, + hide_clip_button: { + component: 'switch', + text: 'clip', + tags: 'hide,remove' + }, + hide_save_button: { + component: 'switch', + text: 'save', + tags: 'hide,remove' + }, + hide_report_button: { + component: 'switch', + text: 'report', + tags: 'hide,remove' + }, + hide_more_button: { + component: 'switch', + text: 'more', + tags: 'hide,remove' + } + } + } }, - hide_more_button: { - component: 'switch', - text: 'hideMoreButton', - tags: 'hide,remove' + hide_details_button_text: { + component: 'button', + text: 'hideButtonLabel', + on: { + click: { + component: 'section', + variant: 'card', + hide_like_button_text: { + component: 'switch', + text: 'likeAndDislike', + tags: 'hide,remove' + }, + hide_like_button_text: { + component: 'switch', + text: 'likeAndDislike', + tags: 'hide,remove' + }, + hide_share_button_text: { + component: 'switch', + text: 'share', + tags: 'hide,remove' + }, + hide_download_button_text: { + component: 'switch', + text: 'download', + tags: 'hide,remove' + }, + hide_thanks_button_text: { + component: 'switch', + text: 'thanks', + tags: 'hide,remove' + }, + hide_clip_button_text: { + component: 'switch', + text: 'clip', + tags: 'hide,remove' + }, + hide_save_button_text: { + component: 'switch', + text: 'save', + tags: 'hide,remove' + } + } + } }, description: { component: 'select', From a8adf8ad1f0c448167452f018b677d4cbe919829 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 1 Oct 2022 17:32:13 +0800 Subject: [PATCH 0620/1224] Fix expanded descriptions not working Fix #1400 --- youtube-scripts.js | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index 7570f450e..be8b79ea3 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -418,9 +418,9 @@ ImprovedTube.ytElementsHandler = function (node) { }); } else if (name === 'TP-YT-PAPER-BUTTON') { if (document.documentElement.dataset.pageType === 'video' && id === 'more' && node.parentNode.parentNode.id === 'container') { - this.elements.moreButton = node; - - this.description(); + setTimeout(function () { + ImprovedTube.description(node); + }, 750); } } }; @@ -1553,12 +1553,9 @@ ImprovedTube.channelVideosCount = function () { 4.2.3.3 DESCRIPTION ------------------------------------------------------------------------------*/ -ImprovedTube.description = function () { +ImprovedTube.description = function (el) { if (this.storage.description === 'expanded') { - var button = this.elements.moreButton; - setTimeout(function () { - button.click(); - }, 750); + el.click(); } }; From 49a25509a90a464201ebbc01925f2578113831b1 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 1 Oct 2022 17:41:47 +0800 Subject: [PATCH 0621/1224] Add auto revert new YouTube UI changes on description --- content-styles.css | 12 +++++++++++- youtube-scripts.js | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/content-styles.css b/content-styles.css index bf4191f45..5367f7cda 100644 --- a/content-styles.css +++ b/content-styles.css @@ -1292,10 +1292,20 @@ html[it-hide-more-button=true] #info ytd-menu-renderer yt-button-shape#button-sh --------------------------------------------------------------*/ html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, -html[it-description=hidden] div#action-panel-details { +html[it-description=hidden] div#action-panel-details, +ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents { display: none !important; } +html[it-description=normal] ytd-watch-metadata, +html[it-description=expanded] ytd-watch-metadata { + display: none !important; +} + +html[it-description=normal] ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents, +html[it-description=expanded] ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents { + display: block !important; +} /*-------------------------------------------------------------- 2.4.13 HOW LONG AGO THE VIDEO WAS UPLOADED diff --git a/youtube-scripts.js b/youtube-scripts.js index be8b79ea3..75689448b 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1555,6 +1555,7 @@ ImprovedTube.channelVideosCount = function () { ImprovedTube.description = function (el) { if (this.storage.description === 'expanded') { + console.log(el); el.click(); } }; From 63a90acf477a107f419cad7c8a7d876d9fb2d476 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 2 Oct 2022 07:43:49 +0200 Subject: [PATCH 0622/1224] Update script.js --- ui/script.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/ui/script.js b/ui/script.js index 02b2444da..2d9ac0de2 100644 --- a/ui/script.js +++ b/ui/script.js @@ -4447,10 +4447,21 @@ var skeleton = { tags: 'hide,remove' }, hide_views_count: { - component: 'switch', - text: 'hideViewsCount', + component: 'select', + text: 'hideViewsCount', + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'both', + value: 'both' + }, { + text: 'views count ', + value: 'true' + }], tags: 'hide,remove' }, + hide_date: { component: 'switch', text: 'hideDate', @@ -7291,4 +7302,4 @@ chrome.runtime.sendMessage({ satus.storage.import(function (items) { }); -}); \ No newline at end of file +}); From df7494ac672fb0b91c3fab1564551e14c494b107 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 2 Oct 2022 08:18:07 +0200 Subject: [PATCH 0623/1224] Update script.js --- ui/script.js | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/ui/script.js b/ui/script.js index 2d9ac0de2..c623acc5f 100644 --- a/ui/script.js +++ b/ui/script.js @@ -4447,21 +4447,11 @@ var skeleton = { tags: 'hide,remove' }, hide_views_count: { - component: 'select', + component: 'switch', text: 'hideViewsCount', - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'both', - value: 'both' - }, { - text: 'views count ', - value: 'true' - }], tags: 'hide,remove' }, - + hide_date: { component: 'switch', text: 'hideDate', From f933317073c9249572eb912f2b158ef991f198a1 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 2 Oct 2022 08:19:55 +0200 Subject: [PATCH 0624/1224] Update content-styles.css --- content-styles.css | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/content-styles.css b/content-styles.css index 5367f7cda..8e3331916 100644 --- a/content-styles.css +++ b/content-styles.css @@ -1158,7 +1158,7 @@ html[it-hide-details=true] #primary-inner .watch-active-metadata { /*-------------------------------------------------------------- -2.4.2 HIDE VIEWS COUNT +2.4.2 HIDE VIEWS & COMMENTS COUNTS --------------------------------------------------------------*/ html[it-hide-views-count=true] #count, @@ -1166,7 +1166,6 @@ html[it-hide-views-count=true] #count+#info-strings>#dot { display: none; } - /*-------------------------------------------------------------- 2.4.3 HIDE DATE --------------------------------------------------------------*/ @@ -3300,4 +3299,4 @@ ytd-guide-section-renderer .it-button::after { color: var(--paper-tooltip-text-color, white); border-radius: 2px; background-color: var(--paper-tooltip-background, #616161); -} \ No newline at end of file +} From e5087c4fb709174afe667eae130c0539a5f758d5 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 2 Oct 2022 17:40:25 +0200 Subject: [PATCH 0625/1224] Update content-styles.css --- content-styles.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content-styles.css b/content-styles.css index 8e3331916..f0b550c74 100644 --- a/content-styles.css +++ b/content-styles.css @@ -1296,12 +1296,12 @@ ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents { display: none !important; } -html[it-description=normal] ytd-watch-metadata, +html[it-description=classic] ytd-watch-metadata, html[it-description=expanded] ytd-watch-metadata { display: none !important; } -html[it-description=normal] ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents, +html[it-description=classic] ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents, html[it-description=expanded] ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents { display: block !important; } From 6f4adf6af6f47d3481c49e496452e12eef1fbaa6 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 2 Oct 2022 22:16:16 +0200 Subject: [PATCH 0626/1224] Update script.js --- ui/script.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ui/script.js b/ui/script.js index c623acc5f..9e07f4e0b 100644 --- a/ui/script.js +++ b/ui/script.js @@ -4562,6 +4562,9 @@ var skeleton = { }, { text: 'expanded', value: 'expanded' + }, { + text: 'classic', + value: 'classic' }, { text: 'hidden', value: 'hidden' From 48577e059694cb46be4c61f7e41e72e32528755e Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 3 Oct 2022 00:01:06 +0200 Subject: [PATCH 0627/1224] youtube.com #description #actions # menu --- youtube-scripts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index ffa7ab5b0..cbbe1d3a8 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -265,7 +265,7 @@ ImprovedTube.ytElementsHandler = function (node) { this.improvedtubeYoutubeIcon(); this.improvedtubeYoutubeButtonsUnderPlayer(); if(document.documentElement.dataset.pageType === 'video'){ - this.hideDetailButton(node.querySelector('#info #top-level-buttons-computed').children); + this.hideDetailButton(node.querySelector('#menu #top-level-buttons-computed').children); } } else if (name === 'YTD-VIDEO-SECONDARY-INFO-RENDERER') { this.elements.yt_channel_name = node.querySelector('ytd-channel-name'); From 406a858db34044b08764695fb20fe82c8eacb09f Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 3 Oct 2022 00:15:38 +0200 Subject: [PATCH 0628/1224] hide_dislike_button_text --- ui/script.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/script.js b/ui/script.js index 9e07f4e0b..8ba5b08b6 100644 --- a/ui/script.js +++ b/ui/script.js @@ -4519,9 +4519,9 @@ var skeleton = { text: 'likeAndDislike', tags: 'hide,remove' }, - hide_like_button_text: { + hide_dislike_button_text: { component: 'switch', - text: 'likeAndDislike', + text: 'dislike', tags: 'hide,remove' }, hide_share_button_text: { From d070192edd323471bc9feca3171dc18c9a7f653a Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 3 Oct 2022 00:25:13 +0200 Subject: [PATCH 0629/1224] Update content-styles.css --- content-styles.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/content-styles.css b/content-styles.css index f0b550c74..a9bc2b531 100644 --- a/content-styles.css +++ b/content-styles.css @@ -1196,6 +1196,9 @@ html[it-hide-date=true] #count+#info-strings>#dot { display: none; } +[it-hide-dislike-button-text=true] #menu #button path[d^="M17,4h-1H6.57C5.5,4,4.59,4.67,4.38,5.61l-1.34"] { + visibility:hidden; +} /*-------------------------------------------------------------- 2.4.5 HIDE SHARE BUTTON From aedf70a8b7ccede1269048504f0f104842d2ca0e Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 3 Oct 2022 00:51:42 +0200 Subject: [PATCH 0630/1224] Update content-styles.css --- content-styles.css | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/content-styles.css b/content-styles.css index a9bc2b531..5d2859281 100644 --- a/content-styles.css +++ b/content-styles.css @@ -1158,7 +1158,7 @@ html[it-hide-details=true] #primary-inner .watch-active-metadata { /*-------------------------------------------------------------- -2.4.2 HIDE VIEWS & COMMENTS COUNTS +2.4.2 HIDE VIEWS & COMMENTS COUNTS Video only: #count[class*="video"] --------------------------------------------------------------*/ html[it-hide-views-count=true] #count, @@ -1196,10 +1196,6 @@ html[it-hide-date=true] #count+#info-strings>#dot { display: none; } -[it-hide-dislike-button-text=true] #menu #button path[d^="M17,4h-1H6.57C5.5,4,4.59,4.67,4.38,5.61l-1.34"] { - visibility:hidden; -} - /*-------------------------------------------------------------- 2.4.5 HIDE SHARE BUTTON --------------------------------------------------------------*/ From 2f90255df2748ba32e070c513f436d96df58d144 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 3 Oct 2022 01:55:15 +0200 Subject: [PATCH 0631/1224] id === 'more' || id === 'expand-sizer' --- youtube-scripts.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index cbbe1d3a8..c92b95123 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -417,7 +417,7 @@ ImprovedTube.ytElementsHandler = function (node) { subtree: false }); } else if (name === 'TP-YT-PAPER-BUTTON') { - if (document.documentElement.dataset.pageType === 'video' && id === 'more' && node.parentNode.parentNode.id === 'container') { + if (document.documentElement.dataset.pageType === 'video' && id === 'more' || id === 'expand-sizer' && node.parentNode.parentNode.id === 'container') { setTimeout(function () { ImprovedTube.description(node); }, 750); @@ -1560,7 +1560,7 @@ ImprovedTube.channelVideosCount = function () { /*------------------------------------------------------------------------------ -4.2.3.3 DESCRIPTION +4.2.3.3 FZ ------------------------------------------------------------------------------*/ ImprovedTube.description = function (el) { @@ -1579,6 +1579,9 @@ ImprovedTube.hideDetailButton = function (el) { setTimeout(function () { for (var i = 2; i < el.length; i++) { tmp = el[i].querySelector("g.yt-icon path").attributes.d.textContent.split(" ")[0]; + if (tmp === "M17,4h-1H6.57C5.5,4,4.59,4.67,4.38,5.61l-1.34,6C2.77,12.85") { + el[i].setAttribute('id', 'Dislike'); + } if (tmp === "M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z") { el[i].setAttribute('id', 'Save-button'); } From 7ca574e8fdb68db2526fe5471a2753538f84aa81 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 3 Oct 2022 02:03:51 +0200 Subject: [PATCH 0632/1224] Update content-styles.css --- content-styles.css | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/content-styles.css b/content-styles.css index 5d2859281..f402f19f9 100644 --- a/content-styles.css +++ b/content-styles.css @@ -1289,19 +1289,18 @@ html[it-hide-more-button=true] #info ytd-menu-renderer yt-button-shape#button-sh 2.4.12 DESCRIPTION --------------------------------------------------------------*/ +html[it-description=hidden] #description, html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, html[it-description=hidden] div#action-panel-details, ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents { display: none !important; } -html[it-description=classic] ytd-watch-metadata, -html[it-description=expanded] ytd-watch-metadata { +html[it-description=classic] ytd-watch-metadata { display: none !important; } -html[it-description=classic] ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents, -html[it-description=expanded] ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents { +html[it-description=classic] ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents { display: block !important; } From 2090d925752186b4271abbb24ed773850b1e4d72 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 3 Oct 2022 02:45:20 +0200 Subject: [PATCH 0633/1224] Update youtube-scripts.js --- youtube-scripts.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/youtube-scripts.js b/youtube-scripts.js index c92b95123..accea7cee 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -417,7 +417,7 @@ ImprovedTube.ytElementsHandler = function (node) { subtree: false }); } else if (name === 'TP-YT-PAPER-BUTTON') { - if (document.documentElement.dataset.pageType === 'video' && id === 'more' || id === 'expand-sizer' && node.parentNode.parentNode.id === 'container') { + if (document.documentElement.dataset.pageType === 'video' && id === 'expand-sizer' || id === 'more' && node.parentNode.parentNode.id === 'container') { setTimeout(function () { ImprovedTube.description(node); }, 750); @@ -1560,7 +1560,7 @@ ImprovedTube.channelVideosCount = function () { /*------------------------------------------------------------------------------ -4.2.3.3 FZ +4.2.3.3 DESCRIPTION ------------------------------------------------------------------------------*/ ImprovedTube.description = function (el) { @@ -1572,17 +1572,14 @@ ImprovedTube.description = function (el) { /*------------------------------------------------------------------------------ -4.2.3.4 HIDE DETAIL BUTTON +4.2.3.4 HIDE DETAIL BUTTON dislike: M17,4h-1H6.57C5.5,4,4.59,4.67,4.38,5.61l-1.34, ------------------------------------------------------------------------------*/ ImprovedTube.hideDetailButton = function (el) { setTimeout(function () { for (var i = 2; i < el.length; i++) { tmp = el[i].querySelector("g.yt-icon path").attributes.d.textContent.split(" ")[0]; - if (tmp === "M17,4h-1H6.57C5.5,4,4.59,4.67,4.38,5.61l-1.34,6C2.77,12.85") { - el[i].setAttribute('id', 'Dislike'); - } - if (tmp === "M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z") { + if (tmp === "M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z") { el[i].setAttribute('id', 'Save-button'); } else if (tmp === "M8,7c0,0.55-0.45,1-1,1S6,7.55,6,7c0-0.55,0.45-1,1-1S8,6.45,8,7z") { From 573d1b69b0d316fb48fdf2a6e9c77c1faaf59998 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 3 Oct 2022 03:03:17 +0200 Subject: [PATCH 0634/1224] Update script.js --- ui/script.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/script.js b/ui/script.js index 8ba5b08b6..f230fce41 100644 --- a/ui/script.js +++ b/ui/script.js @@ -4519,10 +4519,10 @@ var skeleton = { text: 'likeAndDislike', tags: 'hide,remove' }, - hide_dislike_button_text: { + /* hide_dislike_button_text: { component: 'switch', text: 'dislike', - tags: 'hide,remove' + tags: 'hide,remove' */ }, hide_share_button_text: { component: 'switch', From e1caf6469f8e98fbad6fc20bc301661ce754467e Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 3 Oct 2022 03:28:52 +0200 Subject: [PATCH 0635/1224] Update script.js --- ui/script.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/script.js b/ui/script.js index f230fce41..005b48aee 100644 --- a/ui/script.js +++ b/ui/script.js @@ -4519,10 +4519,10 @@ var skeleton = { text: 'likeAndDislike', tags: 'hide,remove' }, - /* hide_dislike_button_text: { + hide_dislike_button_text: { component: 'switch', text: 'dislike', - tags: 'hide,remove' */ + tags: 'hide,remove' }, hide_share_button_text: { component: 'switch', From b3bf48b30660d281caecd18dc3b2efd714c09568 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 3 Oct 2022 03:31:49 +0200 Subject: [PATCH 0636/1224] Update content-styles.css --- content-styles.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/content-styles.css b/content-styles.css index f402f19f9..c180c8022 100644 --- a/content-styles.css +++ b/content-styles.css @@ -1196,6 +1196,11 @@ html[it-hide-date=true] #count+#info-strings>#dot { display: none; } +[it-hide-dislike-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) div.cbox, +[it-hide-dislike-button-text=true] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) div.cbox { + display: none; +} + /*-------------------------------------------------------------- 2.4.5 HIDE SHARE BUTTON --------------------------------------------------------------*/ From ead30b1d13e192789ac542a4043ac01f0f62a201 Mon Sep 17 00:00:00 2001 From: BitbenderM Date: Mon, 3 Oct 2022 22:52:06 +1100 Subject: [PATCH 0637/1224] Update time remaining to have the option to use playback speed Update of extension to have an option that when set will update the time remaining with reference to the playback speed. Issue #1224 --- _locales/am/messages.json | 3 +++ _locales/ar/messages.json | 3 +++ _locales/bg/messages.json | 3 +++ _locales/bn/messages.json | 3 +++ _locales/ca/messages.json | 3 +++ _locales/cs/messages.json | 3 +++ _locales/da/messages.json | 3 +++ _locales/de/messages.json | 3 +++ _locales/el/messages.json | 3 +++ _locales/en/messages.json | 3 +++ _locales/en_GB/messages.json | 3 +++ _locales/en_US/messages.json | 3 +++ _locales/es/messages.json | 3 +++ _locales/es_419/messages.json | 3 +++ _locales/et/messages.json | 3 +++ _locales/fa/messages.json | 3 +++ _locales/fi/messages.json | 3 +++ _locales/fil/messages.json | 3 +++ _locales/fr/messages.json | 3 +++ _locales/gu/messages.json | 3 +++ _locales/he/messages.json | 3 +++ _locales/hi/messages.json | 3 +++ _locales/hin/messages.json | 3 +++ _locales/hr/messages.json | 3 +++ _locales/hu/messages.json | 3 +++ _locales/id/messages.json | 3 +++ _locales/it/messages.json | 3 +++ _locales/ja/messages.json | 3 +++ _locales/kn/messages.json | 3 +++ _locales/ko/messages.json | 3 +++ _locales/lt/messages.json | 3 +++ _locales/lv/messages.json | 3 +++ _locales/ml/messages.json | 3 +++ _locales/mr/messages.json | 3 +++ _locales/ms/messages.json | 3 +++ _locales/nb_NO/messages.json | 3 +++ _locales/nl/messages.json | 3 +++ _locales/no/messages.json | 3 +++ _locales/pl/messages.json | 3 +++ _locales/pt_BR/messages.json | 3 +++ _locales/pt_PT/messages.json | 3 +++ _locales/ro/messages.json | 3 +++ _locales/ru/messages.json | 3 +++ _locales/si/messages.json | 3 +++ _locales/sk/messages.json | 3 +++ _locales/sl/messages.json | 3 +++ _locales/sr/messages.json | 3 +++ _locales/sv/messages.json | 3 +++ _locales/sw/messages.json | 3 +++ _locales/ta/messages.json | 3 +++ _locales/te/messages.json | 3 +++ _locales/th/messages.json | 3 +++ _locales/tr/messages.json | 3 +++ _locales/uk/messages.json | 3 +++ _locales/vi/messages.json | 3 +++ _locales/zh_CN/messages.json | 3 +++ _locales/zh_TW/messages.json | 3 +++ ui/script.js | 5 +++++ youtube-scripts.js | 9 ++++++++- 59 files changed, 184 insertions(+), 1 deletion(-) diff --git a/_locales/am/messages.json b/_locales/am/messages.json index 8e51dce39..b41486093 100644 --- a/_locales/am/messages.json +++ b/_locales/am/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index d9c32cb58..2c3b07923 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -320,6 +320,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "البريد الإلكتروني" }, diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/bg/messages.json +++ b/_locales/bg/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 9fdb25f72..2225f0ac7 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "ছায়া ফেলে দিন" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "ইমেল" }, diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/ca/messages.json +++ b/_locales/ca/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/cs/messages.json +++ b/_locales/cs/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/da/messages.json b/_locales/da/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/da/messages.json +++ b/_locales/da/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index efe09016a..451667512 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Schlagschatten" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "E-Mail" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 5d1195f70..b544f6918 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index ab99cbd1f..f6c20baf7 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json index 58a43b2cb..d5017dceb 100644 --- a/_locales/en_GB/messages.json +++ b/_locales/en_GB/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json index 58a43b2cb..d5017dceb 100644 --- a/_locales/en_US/messages.json +++ b/_locales/en_US/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index d71194be9..e54a64526 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/es_419/messages.json b/_locales/es_419/messages.json index 58a43b2cb..d5017dceb 100644 --- a/_locales/es_419/messages.json +++ b/_locales/es_419/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/et/messages.json b/_locales/et/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/et/messages.json +++ b/_locales/et/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/fa/messages.json b/_locales/fa/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/fa/messages.json +++ b/_locales/fa/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/fi/messages.json b/_locales/fi/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/fi/messages.json +++ b/_locales/fi/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/fil/messages.json b/_locales/fil/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/fil/messages.json +++ b/_locales/fil/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 4a6ba6dbf..ebc211b90 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Courriel" }, diff --git a/_locales/gu/messages.json b/_locales/gu/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/gu/messages.json +++ b/_locales/gu/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/he/messages.json b/_locales/he/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/he/messages.json +++ b/_locales/he/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/hi/messages.json b/_locales/hi/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/hi/messages.json +++ b/_locales/hi/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json index d66ac2c9f..f4094b165 100644 --- a/_locales/hin/messages.json +++ b/_locales/hin/messages.json @@ -314,6 +314,9 @@ "dropShadow": { "message": "परछाई डालना" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "ईमेल" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 55eaf90b3..d78522b81 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "E-mail" }, diff --git a/_locales/hu/messages.json b/_locales/hu/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/hu/messages.json +++ b/_locales/hu/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index c9fd46fe5..e59771558 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Surel" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 71c2b6dec..8d2c5407b 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "E-mail" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 762da5db7..a644dcfe0 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/kn/messages.json b/_locales/kn/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/kn/messages.json +++ b/_locales/kn/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 516308d7c..ea57dd5d5 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "이메일" }, diff --git a/_locales/lt/messages.json b/_locales/lt/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/lt/messages.json +++ b/_locales/lt/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/lv/messages.json b/_locales/lv/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/lv/messages.json +++ b/_locales/lv/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/ml/messages.json b/_locales/ml/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/ml/messages.json +++ b/_locales/ml/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/mr/messages.json b/_locales/mr/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/mr/messages.json +++ b/_locales/mr/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/ms/messages.json b/_locales/ms/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/ms/messages.json +++ b/_locales/ms/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index c64459edb..7fc85f82a 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -314,6 +314,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "E-post" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index fed6bdd53..0d8fc9f3d 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Toon Schaduw" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "E-mailadres" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index c2400549c..4fad1c7f9 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "E-post" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 8fa8f9ea4..e5f554c3a 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Cień" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 1a2090eb4..5f4ad7d40 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Sombra projetada" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 78867302d..8036afd83 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Correio electronico" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index d19af76fb..d87929fa7 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 69946f030..1ffacd45d 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -320,6 +320,9 @@ "dropShadow": { "message": "Отбрасывемая тень" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "E-mail" }, diff --git a/_locales/si/messages.json b/_locales/si/messages.json index 915684537..a9f516086 100644 --- a/_locales/si/messages.json +++ b/_locales/si/messages.json @@ -314,6 +314,9 @@ "dropShadow": { "message": "හෙවනැල්ල" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email එක" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 885d4d7e1..c13a42f44 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/sl/messages.json b/_locales/sl/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/sl/messages.json +++ b/_locales/sl/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/sr/messages.json +++ b/_locales/sr/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/sw/messages.json b/_locales/sw/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/sw/messages.json +++ b/_locales/sw/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/ta/messages.json b/_locales/ta/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/ta/messages.json +++ b/_locales/ta/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/te/messages.json b/_locales/te/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/te/messages.json +++ b/_locales/te/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/th/messages.json b/_locales/th/messages.json index b6a4e0ed4..adb62223f 100644 --- a/_locales/th/messages.json +++ b/_locales/th/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index a1ead340e..7363aa534 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Düşen gölge" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Eposta" }, diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json index f808e0371..7fe6fc60c 100644 --- a/_locales/uk/messages.json +++ b/_locales/uk/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/vi/messages.json b/_locales/vi/messages.json index 0c5e5a065..d6cf7a37d 100644 --- a/_locales/vi/messages.json +++ b/_locales/vi/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Bóng đổ" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 9eaafd3e3..985dac32a 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "Drop shadow" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 7e2b3047e..fffa8f557 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -317,6 +317,9 @@ "dropShadow": { "message": "投射陰影" }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, "email": { "message": "Email" }, diff --git a/ui/script.js b/ui/script.js index 005b48aee..76c431982 100644 --- a/ui/script.js +++ b/ui/script.js @@ -4329,6 +4329,11 @@ var skeleton = { text: 'showRemainingDuration', value: false }, + duration_with_speed: { + component: 'switch', + text: 'durationWithSpeed', + value: false + }, always_show_progress_bar: { component: 'switch', text: 'alwaysShowProgressBar' diff --git a/youtube-scripts.js b/youtube-scripts.js index accea7cee..e9c4faf39 100644 --- a/youtube-scripts.js +++ b/youtube-scripts.js @@ -1326,7 +1326,14 @@ ImprovedTube.alwaysShowProgressBar = function () { ImprovedTube.formatSecond = function (rTime) { var time = new Date(null); - time.setSeconds(rTime); + + if (this.storage.duration_with_speed === true) { + var playbackRate = this.elements.video.playbackRate; + time.setSeconds(rTime / playbackRate); + } else { + time.setSeconds(rTime); + } + if (rTime / 3600 < 1) { return time.toISOString().substr(14, 5); } else { From 62b4d2697ed949d33f5d442cb946258b8dd26cd3 Mon Sep 17 00:00:00 2001 From: FluidExtractor Date: Tue, 4 Oct 2022 17:43:20 +0200 Subject: [PATCH 0638/1224] Update messages.json Updated Polish translation --- _locales/pl/messages.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 8fa8f9ea4..dc9591986 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -51,7 +51,7 @@ "message": "Zezwól na 60fps" }, "always": { - "message": "Always" + "message": "Zawsze" }, "alwaysActive": { "message": "Zawsze aktywne" @@ -432,7 +432,7 @@ "message": "Ukryj adnotacje" }, "hideButtonLabel": { - "message": "Hide Button Label" + "message": "Ukryj etykiete przycisku" }, "hideCards": { "message": "Ukryj karty" @@ -444,7 +444,7 @@ "message": "Ukryj datę" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Ukryj przycisk Szczegóły" }, "hideDetails": { "message": "Ukryj szczegóły" @@ -654,7 +654,7 @@ "message": "Normalny" }, "off": { - "message": "Off" + "message": "Wyłączone" }, "ok": { "message": "Ok" @@ -852,7 +852,7 @@ "message": "Ustawienia pomyślnie zaimportowane" }, "share": { - "message": "Share" + "message": "Udostępnij" }, "shortcuts": { "message": "Skróty" @@ -993,7 +993,7 @@ "message": "Na czasie" }, "tryToReloadThePage": { - "message": "Spróbuj przeładować stronę" + "message": "Spróbuj odświeżyć stronę" }, "type": { "message": "Typ" @@ -1032,7 +1032,7 @@ "message": "Czas oglądania" }, "whenPaused": { - "message": "When paused" + "message": "Kiedy wideo jest zatrzymane" }, "whenTabIsChanged": { "message": "Kiedy zostaje zmieniona karta" @@ -1064,4 +1064,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube ogranicza jakość wideo do 1080p przy kodeku h.264" } -} \ No newline at end of file +} From d4b50a07795e155c9617892a41da64f857ed9172 Mon Sep 17 00:00:00 2001 From: victor-savinov <56786596+victor-savinov@users.noreply.github.com> Date: Sat, 8 Oct 2022 19:42:15 +0300 Subject: [PATCH 0639/1224] Chapter II --- manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 052c3c529..7af262b72 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "3.965", + "version": "4.0", "default_locale": "en", "icons": { "128": "icons/128.png", @@ -79,4 +79,4 @@ "storage" ], "content_security_policy": "script-src 'self' https://ssl.google-analytics.com/; object-src 'self'" -} \ No newline at end of file +} From b893d27691417da669ac66ce3669e80ebcbebab0 Mon Sep 17 00:00:00 2001 From: "H. Boyd" Date: Sun, 9 Oct 2022 00:27:38 -0400 Subject: [PATCH 0640/1224] Remove unused repetitive locales --- _locales/en_GB/messages.json | 1070 --------------------------------- _locales/en_US/messages.json | 1070 --------------------------------- _locales/es_419/messages.json | 1070 --------------------------------- 3 files changed, 3210 deletions(-) delete mode 100644 _locales/en_GB/messages.json delete mode 100644 _locales/en_US/messages.json delete mode 100644 _locales/es_419/messages.json diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json deleted file mode 100644 index d5017dceb..000000000 --- a/_locales/en_GB/messages.json +++ /dev/null @@ -1,1070 +0,0 @@ -{ - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "About" - }, - "accept": { - "message": "Accept" - }, - "activate": { - "message": "Activate" - }, - "activateCaptions": { - "message": "Activate captions" - }, - "activateFullscreen": { - "message": "Activate fullscreen" - }, - "activated": { - "message": "Activated" - }, - "activatedFeatures": { - "message": "Activated features" - }, - "activeFeatures": { - "message": "Active features" - }, - "addScrollToTop": { - "message": "Add «Scroll to top»" - }, - "ads": { - "message": "Ads" - }, - "all": { - "message": "All" - }, - "allow": { - "message": "Allow" - }, - "allow60fps": { - "message": "Allow 60fps" - }, - "always": { - "message": "Always" - }, - "alwaysActive": { - "message": "Always active" - }, - "alwaysShowProgressBar": { - "message": "Always show progress bar" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analyzer" - }, - "appearance": { - "message": "Appearance" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "areYouSureYouWantToImportTheData": { - "message": "Are you sure you want to import this data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio formats" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-fullscreen" - }, - "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" - }, - "autoplay": { - "message": "Autoplay" - }, - "avoidAv1": { - "message": "Avoid AV1" - }, - "avoidAv1Vp8Vp9": { - "message": "Avoid AV1, VP8, VP9" - }, - "avoidAv1Vp9": { - "message": "Avoid AV1, VP9" - }, - "avoidCpuRenderingWhenPossible": { - "message": "Avoid CPU rendering when possible" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Backup & reset" - }, - "baseOnSystemColorScheme": { - "message": "Base on system color scheme" - }, - "belowPlayer": { - "message": "Below player" - }, - "black": { - "message": "Black" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "Block all" - }, - "blockAv1": { - "message": "Block AV1" - }, - "blockH264": { - "message": "Block H.264" - }, - "blockMusic": { - "message": "Block music" - }, - "blockVp8": { - "message": "Block VP8" - }, - "blockVp9": { - "message": "Block VP9" - }, - "blue": { - "message": "Blue" - }, - "blueGray": { - "message": "Blue gray" - }, - "bluelight": { - "message": "Bluelight" - }, - "brown": { - "message": "Brown" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser version" - }, - "bubbles": { - "message": "Bubbles" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Buttons" - }, - "cancel": { - "message": "Cancel" - }, - "categories": { - "message": "Categories" - }, - "channel": { - "message": "Channel" - }, - "channels": { - "message": "Channels" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clip": { - "message": "Clip" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "codecs": { - "message": "Codecs" - }, - "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" - }, - "collapsed": { - "message": "Collapsed" - }, - "comments": { - "message": "Comments" - }, - "confirmationBeforeClosing": { - "message": "Confirmation before closing" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "custom": { - "message": "Custom" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Custom JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Dark" - }, - "darkTheme": { - "message": "Dark theme" - }, - "dateAndTime": { - "message": "Date & time" - }, - "dawn": { - "message": "Dawn" - }, - "decreasePlaybackSpeed": { - "message": "Decrease playback speed" - }, - "decreaseVolume": { - "message": "Decrease volume" - }, - "deepOrange": { - "message": "Deep orange" - }, - "deepPurple": { - "message": "Deep purple" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Default channel tab" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Delete YouTube cookies" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Description" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Desert" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Developer options" - }, - "device": { - "message": "Device" - }, - "dim": { - "message": "Dim" - }, - "disabled": { - "message": "Disabled" - }, - "dislike": { - "message": "Dislike" - }, - "doNotChange": { - "message": "Don't change" - }, - "donate": { - "message": "Donate" - }, - "download": { - "message": "Download" - }, - "draggable": { - "message": "Draggable" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "durationWithSpeed": { - "message": "Show time remaining with reference to playback speed" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Empty" - }, - "enabled": { - "message": "Enabled" - }, - "enabledForced": { - "message": "Enabled (forced)" - }, - "expanded": { - "message": "Expanded" - }, - "exportSettings": { - "message": "Export settings" - }, - "extension": { - "message": "Extension" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filters" - }, - "fitToWindow": { - "message": "Fit to window" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Footer" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Force video to play from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, - "forcedTheaterMode": { - "message": "Forced theater mode" - }, - "forcedVolume": { - "message": "Forced volume" - }, - "foundABug": { - "message": "Found a bug?" - }, - "fullWindow": { - "message": "Full window" - }, - "general": { - "message": "General" - }, - "geoPreference": { - "message": "Geo Preference" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Go to search box" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Green" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "HD thumbnail" - }, - "header": { - "message": "Header" - }, - "hidden": { - "message": "Hidden" - }, - "hiddenOnVideoPage": { - "message": "Hidden on video page" - }, - "hideAnimatedThumbnails": { - "message": "Hide animated thumbnails" - }, - "hideAnnotations": { - "message": "Hide annotations" - }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, - "hideCards": { - "message": "Hide cards" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetailButton": { - "message": "Hide Detail Button" - }, - "hideDetails": { - "message": "Hide details" - }, - "hideEndscreen": { - "message": "Hide endscreen" - }, - "hideFeaturedContent": { - "message": "Hide featured content" - }, - "hideFooter": { - "message": "Hide footer" - }, - "hideGradientBottom": { - "message": "Hide shadow around player-bar" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Hide playlist" - }, - "hideRightButtons": { - "message": "Hide right buttons" - }, - "hideScrollForDetails": { - "message": "Hide «Scroll for details»" - }, - "hideSkipOverlay": { - "message": "Hide 5 second skip animation" - }, - "hideThumbnailOverlay": { - "message": "Hide buttons on thumbnails" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Hide views count" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "History" - }, - "home": { - "message": "Home" - }, - "hover": { - "message": "Hover" - }, - "hoverOnVideoPage": { - "message": "Hover on video page" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" - }, - "icons": { - "message": "Icons" - }, - "iconsOnly": { - "message": "Icons only" - }, - "importSettings": { - "message": "Import settings" - }, - "improveLogo": { - "message": "Improve logo" - }, - "improvedtubeButtons": { - "message": "ImprovedTube buttons" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icon on YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube language" - }, - "improvedtubeVersion": { - "message": "ImprovedTube version" - }, - "increasePlaybackSpeed": { - "message": "Increase playback speed" - }, - "increaseVolume": { - "message": "Increase volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Languages" - }, - "legacyYoutube": { - "message": "Legacy YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Light" - }, - "lightBlue": { - "message": "Light blue" - }, - "lightGreen": { - "message": "Light green" - }, - "like": { - "message": "Like" - }, - "likeAndDislike": { - "message": "Like and Dislike " - }, - "liked": { - "message": "Liked" - }, - "lime": { - "message": "Lime" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "List" - }, - "liveChat": { - "message": "Live chat" - }, - "liveChatType": { - "message": "Live chat type" - }, - "location": { - "message": "Location" - }, - "loop": { - "message": "Loop" - }, - "loudnessNormalization": { - "message": "Loudness normalization" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Mark watched videos" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mixer" - }, - "more": { - "message": "More" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "My colors" - }, - "name": { - "message": "Name" - }, - "nativeMiniPlayer": { - "message": "Native mini player" - }, - "new": { - "message": "New" - }, - "nextVideo": { - "message": "Next video" - }, - "night": { - "message": "Night" - }, - "noActiveFeatures": { - "message": "No active features" - }, - "noOpenVideoTabs": { - "message": "No open video tabs" - }, - "none": { - "message": "None" - }, - "normal": { - "message": "Normal" - }, - "off": { - "message": "Off" - }, - "ok": { - "message": "Ok" - }, - "old": { - "message": "Old" - }, - "onAllVideos": { - "message": "On all videos" - }, - "onSubscribedChannels": { - "message": "On subscribed channels" - }, - "onlyActiveOnYoutube": { - "message": "Only active on YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "openPopupPlayer": { - "message": "Open video/playlist in a new window" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Other" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Permissions" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Pink" - }, - "plain": { - "message": "Plain" - }, - "platform": { - "message": "Platform" - }, - "playAllButton": { - "message": "\"Play all\" button" - }, - "playPause": { - "message": "Play / Pause" - }, - "playbackSpeed": { - "message": "Playback speed" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Player color" - }, - "playerSize": { - "message": "Player size" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "popupPlayer": { - "message": "Popup player" - }, - "popupWindowButtons": { - "message": "Add popup Window buttons" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Press any key or use mouse wheel." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Press any key or use mouse wheel" - }, - "previousVideo": { - "message": "Previous video" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "Purple" - }, - "quality": { - "message": "Quality" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Rate us" - }, - "red": { - "message": "Red" - }, - "redDislikeButton": { - "message": "Show dislike button in red" - }, - "relatedVideos": { - "message": "Related videos" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Remove related search results" - }, - "repeat": { - "message": "Repeat" - }, - "report": { - "message": "Report" - }, - "reset": { - "message": "Reset" - }, - "resetAllSettings": { - "message": "Reset all settings" - }, - "resetAllShortcuts": { - "message": "Reset all shortcuts" - }, - "reverse": { - "message": "Reverse" - }, - "rotate": { - "message": "Rotate" - }, - "save": { - "message": "Save" - }, - "saveAs": { - "message": "Save as" - }, - "schedule": { - "message": "Schedule" - }, - "screen": { - "message": "Screen" - }, - "screenshot": { - "message": "Screenshot" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Search" - }, - "searchBarOnly": { - "message": "Search bar only" - }, - "seekBackward10Seconds": { - "message": "Seek backward 10 seconds" - }, - "seekForward10Seconds": { - "message": "Seek forward 10 seconds" - }, - "seekNextChapter": { - "message": "Seek Next Chapter" - }, - "seekPreviousChapter": { - "message": "Seek Previous Chapter" - }, - "settings": { - "message": "Settings" - }, - "settingsSuccessfullyImported": { - "message": "Settings successfully imported" - }, - "share": { - "message": "Share" - }, - "shortcuts": { - "message": "Shortcuts" - }, - "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" - }, - "showChannelVideosCount": { - "message": "Show channel videos count" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Shuffle" - }, - "sidebar": { - "message": "Sidebar" - }, - "spacebar": { - "message": "Spacebar" - }, - "squaredUserImages": { - "message": "Squared user images" - }, - "static": { - "message": "Static" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Subscriptions" - }, - "subtitles": { - "message": "Subtitles" - }, - "sunset": { - "message": "Sunset" - }, - "sunsetToSunrise": { - "message": "Sunset to sunrise" - }, - "systemPeferenceDark": { - "message": "System preference: dark" - }, - "systemPeferenceLight": { - "message": "System preference: light" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Text color" - }, - "thanks": { - "message": "Thanks" - }, - "themes": { - "message": "Themes" - }, - "thisWillRemoveAllCookies": { - "message": "This will remove all cookies." - }, - "thisWillRemoveAllWatchedVideos": { - "message": "This will remove all watched videos." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "This will remove all YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "This will reset all settings." - }, - "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" - }, - "thumbnails": { - "message": "Thumbnails" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Time from" - }, - "timeTo": { - "message": "Time to" - }, - "todayAt": { - "message": "Today at" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle player controls" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Trailer autoplay" - }, - "translations": { - "message": "Translations" - }, - "transparentBackground": { - "message": "Transparent background" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Try to reload the page" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "Up next autoplay" - }, - "use24HourFormat": { - "message": "Use 24-hour format" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" - }, - "videoFormats": { - "message": "Video formats" - }, - "videos": { - "message": "Videos" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Watch later" - }, - "watchTime": { - "message": "Watch time" - }, - "whenPaused": { - "message": "When paused" - }, - "whenTabIsChanged": { - "message": "When tab is changed" - }, - "white": { - "message": "White" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Yellow" - }, - "youtubeHeaderLeft": { - "message": "YouTube Header (left)" - }, - "youtubeHeaderRight": { - "message": "YouTube Header (right)" - }, - "youtubeHomePage": { - "message": "YouTube home page" - }, - "youtubeLanguage": { - "message": "YouTube language" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limits video quality to 1080p for h.264 codec" - } -} \ No newline at end of file diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json deleted file mode 100644 index d5017dceb..000000000 --- a/_locales/en_US/messages.json +++ /dev/null @@ -1,1070 +0,0 @@ -{ - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "About" - }, - "accept": { - "message": "Accept" - }, - "activate": { - "message": "Activate" - }, - "activateCaptions": { - "message": "Activate captions" - }, - "activateFullscreen": { - "message": "Activate fullscreen" - }, - "activated": { - "message": "Activated" - }, - "activatedFeatures": { - "message": "Activated features" - }, - "activeFeatures": { - "message": "Active features" - }, - "addScrollToTop": { - "message": "Add «Scroll to top»" - }, - "ads": { - "message": "Ads" - }, - "all": { - "message": "All" - }, - "allow": { - "message": "Allow" - }, - "allow60fps": { - "message": "Allow 60fps" - }, - "always": { - "message": "Always" - }, - "alwaysActive": { - "message": "Always active" - }, - "alwaysShowProgressBar": { - "message": "Always show progress bar" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analyzer" - }, - "appearance": { - "message": "Appearance" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "areYouSureYouWantToImportTheData": { - "message": "Are you sure you want to import this data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio formats" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-fullscreen" - }, - "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" - }, - "autoplay": { - "message": "Autoplay" - }, - "avoidAv1": { - "message": "Avoid AV1" - }, - "avoidAv1Vp8Vp9": { - "message": "Avoid AV1, VP8, VP9" - }, - "avoidAv1Vp9": { - "message": "Avoid AV1, VP9" - }, - "avoidCpuRenderingWhenPossible": { - "message": "Avoid CPU rendering when possible" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Backup & reset" - }, - "baseOnSystemColorScheme": { - "message": "Base on system color scheme" - }, - "belowPlayer": { - "message": "Below player" - }, - "black": { - "message": "Black" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "Block all" - }, - "blockAv1": { - "message": "Block AV1" - }, - "blockH264": { - "message": "Block H.264" - }, - "blockMusic": { - "message": "Block music" - }, - "blockVp8": { - "message": "Block VP8" - }, - "blockVp9": { - "message": "Block VP9" - }, - "blue": { - "message": "Blue" - }, - "blueGray": { - "message": "Blue gray" - }, - "bluelight": { - "message": "Bluelight" - }, - "brown": { - "message": "Brown" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser version" - }, - "bubbles": { - "message": "Bubbles" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Buttons" - }, - "cancel": { - "message": "Cancel" - }, - "categories": { - "message": "Categories" - }, - "channel": { - "message": "Channel" - }, - "channels": { - "message": "Channels" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clip": { - "message": "Clip" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "codecs": { - "message": "Codecs" - }, - "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" - }, - "collapsed": { - "message": "Collapsed" - }, - "comments": { - "message": "Comments" - }, - "confirmationBeforeClosing": { - "message": "Confirmation before closing" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "custom": { - "message": "Custom" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Custom JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Dark" - }, - "darkTheme": { - "message": "Dark theme" - }, - "dateAndTime": { - "message": "Date & time" - }, - "dawn": { - "message": "Dawn" - }, - "decreasePlaybackSpeed": { - "message": "Decrease playback speed" - }, - "decreaseVolume": { - "message": "Decrease volume" - }, - "deepOrange": { - "message": "Deep orange" - }, - "deepPurple": { - "message": "Deep purple" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Default channel tab" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Delete YouTube cookies" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Description" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Desert" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Developer options" - }, - "device": { - "message": "Device" - }, - "dim": { - "message": "Dim" - }, - "disabled": { - "message": "Disabled" - }, - "dislike": { - "message": "Dislike" - }, - "doNotChange": { - "message": "Don't change" - }, - "donate": { - "message": "Donate" - }, - "download": { - "message": "Download" - }, - "draggable": { - "message": "Draggable" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "durationWithSpeed": { - "message": "Show time remaining with reference to playback speed" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Empty" - }, - "enabled": { - "message": "Enabled" - }, - "enabledForced": { - "message": "Enabled (forced)" - }, - "expanded": { - "message": "Expanded" - }, - "exportSettings": { - "message": "Export settings" - }, - "extension": { - "message": "Extension" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filters" - }, - "fitToWindow": { - "message": "Fit to window" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Footer" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Force video to play from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, - "forcedTheaterMode": { - "message": "Forced theater mode" - }, - "forcedVolume": { - "message": "Forced volume" - }, - "foundABug": { - "message": "Found a bug?" - }, - "fullWindow": { - "message": "Full window" - }, - "general": { - "message": "General" - }, - "geoPreference": { - "message": "Geo Preference" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Go to search box" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Green" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "HD thumbnail" - }, - "header": { - "message": "Header" - }, - "hidden": { - "message": "Hidden" - }, - "hiddenOnVideoPage": { - "message": "Hidden on video page" - }, - "hideAnimatedThumbnails": { - "message": "Hide animated thumbnails" - }, - "hideAnnotations": { - "message": "Hide annotations" - }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, - "hideCards": { - "message": "Hide cards" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetailButton": { - "message": "Hide Detail Button" - }, - "hideDetails": { - "message": "Hide details" - }, - "hideEndscreen": { - "message": "Hide endscreen" - }, - "hideFeaturedContent": { - "message": "Hide featured content" - }, - "hideFooter": { - "message": "Hide footer" - }, - "hideGradientBottom": { - "message": "Hide shadow around player-bar" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Hide playlist" - }, - "hideRightButtons": { - "message": "Hide right buttons" - }, - "hideScrollForDetails": { - "message": "Hide «Scroll for details»" - }, - "hideSkipOverlay": { - "message": "Hide 5 second skip animation" - }, - "hideThumbnailOverlay": { - "message": "Hide buttons on thumbnails" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Hide views count" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "History" - }, - "home": { - "message": "Home" - }, - "hover": { - "message": "Hover" - }, - "hoverOnVideoPage": { - "message": "Hover on video page" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" - }, - "icons": { - "message": "Icons" - }, - "iconsOnly": { - "message": "Icons only" - }, - "importSettings": { - "message": "Import settings" - }, - "improveLogo": { - "message": "Improve logo" - }, - "improvedtubeButtons": { - "message": "ImprovedTube buttons" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icon on YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube language" - }, - "improvedtubeVersion": { - "message": "ImprovedTube version" - }, - "increasePlaybackSpeed": { - "message": "Increase playback speed" - }, - "increaseVolume": { - "message": "Increase volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Languages" - }, - "legacyYoutube": { - "message": "Legacy YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Light" - }, - "lightBlue": { - "message": "Light blue" - }, - "lightGreen": { - "message": "Light green" - }, - "like": { - "message": "Like" - }, - "likeAndDislike": { - "message": "Like and Dislike " - }, - "liked": { - "message": "Liked" - }, - "lime": { - "message": "Lime" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "List" - }, - "liveChat": { - "message": "Live chat" - }, - "liveChatType": { - "message": "Live chat type" - }, - "location": { - "message": "Location" - }, - "loop": { - "message": "Loop" - }, - "loudnessNormalization": { - "message": "Loudness normalization" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Mark watched videos" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mixer" - }, - "more": { - "message": "More" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "My colors" - }, - "name": { - "message": "Name" - }, - "nativeMiniPlayer": { - "message": "Native mini player" - }, - "new": { - "message": "New" - }, - "nextVideo": { - "message": "Next video" - }, - "night": { - "message": "Night" - }, - "noActiveFeatures": { - "message": "No active features" - }, - "noOpenVideoTabs": { - "message": "No open video tabs" - }, - "none": { - "message": "None" - }, - "normal": { - "message": "Normal" - }, - "off": { - "message": "Off" - }, - "ok": { - "message": "Ok" - }, - "old": { - "message": "Old" - }, - "onAllVideos": { - "message": "On all videos" - }, - "onSubscribedChannels": { - "message": "On subscribed channels" - }, - "onlyActiveOnYoutube": { - "message": "Only active on YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "openPopupPlayer": { - "message": "Open video/playlist in a new window" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Other" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Permissions" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Pink" - }, - "plain": { - "message": "Plain" - }, - "platform": { - "message": "Platform" - }, - "playAllButton": { - "message": "\"Play all\" button" - }, - "playPause": { - "message": "Play / Pause" - }, - "playbackSpeed": { - "message": "Playback speed" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Player color" - }, - "playerSize": { - "message": "Player size" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "popupPlayer": { - "message": "Popup player" - }, - "popupWindowButtons": { - "message": "Add popup Window buttons" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Press any key or use mouse wheel." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Press any key or use mouse wheel" - }, - "previousVideo": { - "message": "Previous video" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "Purple" - }, - "quality": { - "message": "Quality" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Rate us" - }, - "red": { - "message": "Red" - }, - "redDislikeButton": { - "message": "Show dislike button in red" - }, - "relatedVideos": { - "message": "Related videos" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Remove related search results" - }, - "repeat": { - "message": "Repeat" - }, - "report": { - "message": "Report" - }, - "reset": { - "message": "Reset" - }, - "resetAllSettings": { - "message": "Reset all settings" - }, - "resetAllShortcuts": { - "message": "Reset all shortcuts" - }, - "reverse": { - "message": "Reverse" - }, - "rotate": { - "message": "Rotate" - }, - "save": { - "message": "Save" - }, - "saveAs": { - "message": "Save as" - }, - "schedule": { - "message": "Schedule" - }, - "screen": { - "message": "Screen" - }, - "screenshot": { - "message": "Screenshot" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Search" - }, - "searchBarOnly": { - "message": "Search bar only" - }, - "seekBackward10Seconds": { - "message": "Seek backward 10 seconds" - }, - "seekForward10Seconds": { - "message": "Seek forward 10 seconds" - }, - "seekNextChapter": { - "message": "Seek Next Chapter" - }, - "seekPreviousChapter": { - "message": "Seek Previous Chapter" - }, - "settings": { - "message": "Settings" - }, - "settingsSuccessfullyImported": { - "message": "Settings successfully imported" - }, - "share": { - "message": "Share" - }, - "shortcuts": { - "message": "Shortcuts" - }, - "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" - }, - "showChannelVideosCount": { - "message": "Show channel videos count" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Shuffle" - }, - "sidebar": { - "message": "Sidebar" - }, - "spacebar": { - "message": "Spacebar" - }, - "squaredUserImages": { - "message": "Squared user images" - }, - "static": { - "message": "Static" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Subscriptions" - }, - "subtitles": { - "message": "Subtitles" - }, - "sunset": { - "message": "Sunset" - }, - "sunsetToSunrise": { - "message": "Sunset to sunrise" - }, - "systemPeferenceDark": { - "message": "System preference: dark" - }, - "systemPeferenceLight": { - "message": "System preference: light" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Text color" - }, - "thanks": { - "message": "Thanks" - }, - "themes": { - "message": "Themes" - }, - "thisWillRemoveAllCookies": { - "message": "This will remove all cookies." - }, - "thisWillRemoveAllWatchedVideos": { - "message": "This will remove all watched videos." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "This will remove all YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "This will reset all settings." - }, - "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" - }, - "thumbnails": { - "message": "Thumbnails" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Time from" - }, - "timeTo": { - "message": "Time to" - }, - "todayAt": { - "message": "Today at" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle player controls" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Trailer autoplay" - }, - "translations": { - "message": "Translations" - }, - "transparentBackground": { - "message": "Transparent background" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Try to reload the page" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "Up next autoplay" - }, - "use24HourFormat": { - "message": "Use 24-hour format" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" - }, - "videoFormats": { - "message": "Video formats" - }, - "videos": { - "message": "Videos" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Watch later" - }, - "watchTime": { - "message": "Watch time" - }, - "whenPaused": { - "message": "When paused" - }, - "whenTabIsChanged": { - "message": "When tab is changed" - }, - "white": { - "message": "White" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Yellow" - }, - "youtubeHeaderLeft": { - "message": "YouTube Header (left)" - }, - "youtubeHeaderRight": { - "message": "YouTube Header (right)" - }, - "youtubeHomePage": { - "message": "YouTube home page" - }, - "youtubeLanguage": { - "message": "YouTube language" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limits video quality to 1080p for h.264 codec" - } -} \ No newline at end of file diff --git a/_locales/es_419/messages.json b/_locales/es_419/messages.json deleted file mode 100644 index d5017dceb..000000000 --- a/_locales/es_419/messages.json +++ /dev/null @@ -1,1070 +0,0 @@ -{ - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "About" - }, - "accept": { - "message": "Accept" - }, - "activate": { - "message": "Activate" - }, - "activateCaptions": { - "message": "Activate captions" - }, - "activateFullscreen": { - "message": "Activate fullscreen" - }, - "activated": { - "message": "Activated" - }, - "activatedFeatures": { - "message": "Activated features" - }, - "activeFeatures": { - "message": "Active features" - }, - "addScrollToTop": { - "message": "Add «Scroll to top»" - }, - "ads": { - "message": "Ads" - }, - "all": { - "message": "All" - }, - "allow": { - "message": "Allow" - }, - "allow60fps": { - "message": "Allow 60fps" - }, - "always": { - "message": "Always" - }, - "alwaysActive": { - "message": "Always active" - }, - "alwaysShowProgressBar": { - "message": "Always show progress bar" - }, - "amber": { - "message": "Amber" - }, - "analyzer": { - "message": "Analyzer" - }, - "appearance": { - "message": "Appearance" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "areYouSureYouWantToImportTheData": { - "message": "Are you sure you want to import this data?" - }, - "audio": { - "message": "Audio" - }, - "audioFormats": { - "message": "Audio formats" - }, - "auto": { - "message": "Auto" - }, - "autoFullscreen": { - "message": "Auto-fullscreen" - }, - "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" - }, - "autoplay": { - "message": "Autoplay" - }, - "avoidAv1": { - "message": "Avoid AV1" - }, - "avoidAv1Vp8Vp9": { - "message": "Avoid AV1, VP8, VP9" - }, - "avoidAv1Vp9": { - "message": "Avoid AV1, VP9" - }, - "avoidCpuRenderingWhenPossible": { - "message": "Avoid CPU rendering when possible" - }, - "backgroundColor": { - "message": "Background color" - }, - "backgroundOpacity": { - "message": "Background opacity" - }, - "backupAndReset": { - "message": "Backup & reset" - }, - "baseOnSystemColorScheme": { - "message": "Base on system color scheme" - }, - "belowPlayer": { - "message": "Below player" - }, - "black": { - "message": "Black" - }, - "blacklist": { - "message": "Blacklist" - }, - "blockAll": { - "message": "Block all" - }, - "blockAv1": { - "message": "Block AV1" - }, - "blockH264": { - "message": "Block H.264" - }, - "blockMusic": { - "message": "Block music" - }, - "blockVp8": { - "message": "Block VP8" - }, - "blockVp9": { - "message": "Block VP9" - }, - "blue": { - "message": "Blue" - }, - "blueGray": { - "message": "Blue gray" - }, - "bluelight": { - "message": "Bluelight" - }, - "brown": { - "message": "Brown" - }, - "browser": { - "message": "Browser" - }, - "browserVersion": { - "message": "Browser version" - }, - "bubbles": { - "message": "Bubbles" - }, - "bug": { - "message": "Bug" - }, - "buttons": { - "message": "Buttons" - }, - "cancel": { - "message": "Cancel" - }, - "categories": { - "message": "Categories" - }, - "channel": { - "message": "Channel" - }, - "channels": { - "message": "Channels" - }, - "characterEdgeStyle": { - "message": "Character edge style" - }, - "clip": { - "message": "Clip" - }, - "clipboard": { - "message": "Clipboard" - }, - "codecH264": { - "message": "Codec h.264" - }, - "codecs": { - "message": "Codecs" - }, - "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" - }, - "collapsed": { - "message": "Collapsed" - }, - "comments": { - "message": "Comments" - }, - "confirmationBeforeClosing": { - "message": "Confirmation before closing" - }, - "cookies": { - "message": "Cookies" - }, - "cores": { - "message": "Cores" - }, - "cropChapterTitles": { - "message": "Crop chapter titles" - }, - "custom": { - "message": "Custom" - }, - "customCss": { - "message": "Custom CSS" - }, - "customJs": { - "message": "Custom JS" - }, - "customMiniPlayer": { - "message": "Custom Mini-Player" - }, - "cyan": { - "message": "Cyan" - }, - "dark": { - "message": "Dark" - }, - "darkTheme": { - "message": "Dark theme" - }, - "dateAndTime": { - "message": "Date & time" - }, - "dawn": { - "message": "Dawn" - }, - "decreasePlaybackSpeed": { - "message": "Decrease playback speed" - }, - "decreaseVolume": { - "message": "Decrease volume" - }, - "deepOrange": { - "message": "Deep orange" - }, - "deepPurple": { - "message": "Deep purple" - }, - "default": { - "message": "Default" - }, - "defaultChannelTab": { - "message": "Default channel tab" - }, - "defaultContentCountry": { - "message": "Default content country" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "Delete YouTube cookies" - }, - "depressed": { - "message": "Depressed" - }, - "description": { - "message": "Description" - }, - "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" - }, - "desert": { - "message": "Desert" - }, - "details": { - "message": "Details" - }, - "developerOptions": { - "message": "Developer options" - }, - "device": { - "message": "Device" - }, - "dim": { - "message": "Dim" - }, - "disabled": { - "message": "Disabled" - }, - "dislike": { - "message": "Dislike" - }, - "doNotChange": { - "message": "Don't change" - }, - "donate": { - "message": "Donate" - }, - "download": { - "message": "Download" - }, - "draggable": { - "message": "Draggable" - }, - "dropShadow": { - "message": "Drop shadow" - }, - "durationWithSpeed": { - "message": "Show time remaining with reference to playback speed" - }, - "email": { - "message": "Email" - }, - "empty": { - "message": "Empty" - }, - "enabled": { - "message": "Enabled" - }, - "enabledForced": { - "message": "Enabled (forced)" - }, - "expanded": { - "message": "Expanded" - }, - "exportSettings": { - "message": "Export settings" - }, - "extension": { - "message": "Extension" - }, - "file": { - "message": "File" - }, - "filters": { - "message": "Filters" - }, - "fitToWindow": { - "message": "Fit to window" - }, - "flash": { - "message": "Flash" - }, - "font": { - "message": "Font" - }, - "fontColor": { - "message": "Font color" - }, - "fontFamily": { - "message": "Font family" - }, - "fontOpacity": { - "message": "Font opacity" - }, - "fontSize": { - "message": "Font size" - }, - "footer": { - "message": "Footer" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "Force video to play from the beginning" - }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, - "forcedTheaterMode": { - "message": "Forced theater mode" - }, - "forcedVolume": { - "message": "Forced volume" - }, - "foundABug": { - "message": "Found a bug?" - }, - "fullWindow": { - "message": "Full window" - }, - "general": { - "message": "General" - }, - "geoPreference": { - "message": "Geo Preference" - }, - "github": { - "message": "GitHub" - }, - "goToSearchBox": { - "message": "Go to search box" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "GPU" - }, - "green": { - "message": "Green" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "HD thumbnail" - }, - "header": { - "message": "Header" - }, - "hidden": { - "message": "Hidden" - }, - "hiddenOnVideoPage": { - "message": "Hidden on video page" - }, - "hideAnimatedThumbnails": { - "message": "Hide animated thumbnails" - }, - "hideAnnotations": { - "message": "Hide annotations" - }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, - "hideCards": { - "message": "Hide cards" - }, - "hideCountryCode": { - "message": "Hide country code" - }, - "hideDate": { - "message": "Hide date" - }, - "hideDetailButton": { - "message": "Hide Detail Button" - }, - "hideDetails": { - "message": "Hide details" - }, - "hideEndscreen": { - "message": "Hide endscreen" - }, - "hideFeaturedContent": { - "message": "Hide featured content" - }, - "hideFooter": { - "message": "Hide footer" - }, - "hideGradientBottom": { - "message": "Hide shadow around player-bar" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "Hide playlist" - }, - "hideRightButtons": { - "message": "Hide right buttons" - }, - "hideScrollForDetails": { - "message": "Hide «Scroll for details»" - }, - "hideSkipOverlay": { - "message": "Hide 5 second skip animation" - }, - "hideThumbnailOverlay": { - "message": "Hide buttons on thumbnails" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "Hide views count" - }, - "hideVoiceSearchButton": { - "message": "Hide voice search button" - }, - "high": { - "message": "High" - }, - "history": { - "message": "History" - }, - "home": { - "message": "Home" - }, - "hover": { - "message": "Hover" - }, - "hoverOnVideoPage": { - "message": "Hover on video page" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" - }, - "icons": { - "message": "Icons" - }, - "iconsOnly": { - "message": "Icons only" - }, - "importSettings": { - "message": "Import settings" - }, - "improveLogo": { - "message": "Improve logo" - }, - "improvedtubeButtons": { - "message": "ImprovedTube buttons" - }, - "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icon on YouTube" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube language" - }, - "improvedtubeVersion": { - "message": "ImprovedTube version" - }, - "increasePlaybackSpeed": { - "message": "Increase playback speed" - }, - "increaseVolume": { - "message": "Increase volume" - }, - "indigo": { - "message": "Indigo" - }, - "items": { - "message": "Items" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "Languages" - }, - "legacyYoutube": { - "message": "Legacy YouTube" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "Light" - }, - "lightBlue": { - "message": "Light blue" - }, - "lightGreen": { - "message": "Light green" - }, - "like": { - "message": "Like" - }, - "likeAndDislike": { - "message": "Like and Dislike " - }, - "liked": { - "message": "Liked" - }, - "lime": { - "message": "Lime" - }, - "limitPageWidth": { - "message": "Limit page width" - }, - "list": { - "message": "List" - }, - "liveChat": { - "message": "Live chat" - }, - "liveChatType": { - "message": "Live chat type" - }, - "location": { - "message": "Location" - }, - "loop": { - "message": "Loop" - }, - "loudnessNormalization": { - "message": "Loudness normalization" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "Mark watched videos" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "Mixer" - }, - "more": { - "message": "More" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "My colors" - }, - "name": { - "message": "Name" - }, - "nativeMiniPlayer": { - "message": "Native mini player" - }, - "new": { - "message": "New" - }, - "nextVideo": { - "message": "Next video" - }, - "night": { - "message": "Night" - }, - "noActiveFeatures": { - "message": "No active features" - }, - "noOpenVideoTabs": { - "message": "No open video tabs" - }, - "none": { - "message": "None" - }, - "normal": { - "message": "Normal" - }, - "off": { - "message": "Off" - }, - "ok": { - "message": "Ok" - }, - "old": { - "message": "Old" - }, - "onAllVideos": { - "message": "On all videos" - }, - "onSubscribedChannels": { - "message": "On subscribed channels" - }, - "onlyActiveOnYoutube": { - "message": "Only active on YouTube" - }, - "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" - }, - "openPopupPlayer": { - "message": "Open video/playlist in a new window" - }, - "orange": { - "message": "Orange" - }, - "os": { - "message": "OS" - }, - "other": { - "message": "Other" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "Permissions" - }, - "pictureInPicture": { - "message": "Picture-in-Picture" - }, - "pink": { - "message": "Pink" - }, - "plain": { - "message": "Plain" - }, - "platform": { - "message": "Platform" - }, - "playAllButton": { - "message": "\"Play all\" button" - }, - "playPause": { - "message": "Play / Pause" - }, - "playbackSpeed": { - "message": "Playback speed" - }, - "player": { - "message": "Player" - }, - "playerColor": { - "message": "Player color" - }, - "playerSize": { - "message": "Player size" - }, - "playlist": { - "message": "Playlist" - }, - "playlists": { - "message": "Playlists" - }, - "popupPlayer": { - "message": "Popup player" - }, - "popupWindowButtons": { - "message": "Add popup Window buttons" - }, - "position": { - "message": "Position" - }, - "pressAnyKeyOrScroll": { - "message": "Press any key or use mouse wheel." - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "Press any key or use mouse wheel" - }, - "previousVideo": { - "message": "Previous video" - }, - "primaryColor": { - "message": "Primary color" - }, - "purple": { - "message": "Purple" - }, - "quality": { - "message": "Quality" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "Rate us" - }, - "red": { - "message": "Red" - }, - "redDislikeButton": { - "message": "Show dislike button in red" - }, - "relatedVideos": { - "message": "Related videos" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "Remove related search results" - }, - "repeat": { - "message": "Repeat" - }, - "report": { - "message": "Report" - }, - "reset": { - "message": "Reset" - }, - "resetAllSettings": { - "message": "Reset all settings" - }, - "resetAllShortcuts": { - "message": "Reset all shortcuts" - }, - "reverse": { - "message": "Reverse" - }, - "rotate": { - "message": "Rotate" - }, - "save": { - "message": "Save" - }, - "saveAs": { - "message": "Save as" - }, - "schedule": { - "message": "Schedule" - }, - "screen": { - "message": "Screen" - }, - "screenshot": { - "message": "Screenshot" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "Search" - }, - "searchBarOnly": { - "message": "Search bar only" - }, - "seekBackward10Seconds": { - "message": "Seek backward 10 seconds" - }, - "seekForward10Seconds": { - "message": "Seek forward 10 seconds" - }, - "seekNextChapter": { - "message": "Seek Next Chapter" - }, - "seekPreviousChapter": { - "message": "Seek Previous Chapter" - }, - "settings": { - "message": "Settings" - }, - "settingsSuccessfullyImported": { - "message": "Settings successfully imported" - }, - "share": { - "message": "Share" - }, - "shortcuts": { - "message": "Shortcuts" - }, - "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" - }, - "showChannelVideosCount": { - "message": "Show channel videos count" - }, - "showLess": { - "message": "Show less" - }, - "showMore": { - "message": "Show more" - }, - "showRemainingDuration": { - "message": "Show video remaining duration" - }, - "shuffle": { - "message": "Shuffle" - }, - "sidebar": { - "message": "Sidebar" - }, - "spacebar": { - "message": "Spacebar" - }, - "squaredUserImages": { - "message": "Squared user images" - }, - "static": { - "message": "Static" - }, - "statsForNerds": { - "message": "Show Stats for Nerds" - }, - "step": { - "message": "Step" - }, - "stop": { - "message": "Stop" - }, - "style": { - "message": "Style" - }, - "styles": { - "message": "Styles" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "Subscriptions" - }, - "subtitles": { - "message": "Subtitles" - }, - "sunset": { - "message": "Sunset" - }, - "sunsetToSunrise": { - "message": "Sunset to sunrise" - }, - "systemPeferenceDark": { - "message": "System preference: dark" - }, - "systemPeferenceLight": { - "message": "System preference: light" - }, - "teal": { - "message": "Teal" - }, - "textColor": { - "message": "Text color" - }, - "thanks": { - "message": "Thanks" - }, - "themes": { - "message": "Themes" - }, - "thisWillRemoveAllCookies": { - "message": "This will remove all cookies." - }, - "thisWillRemoveAllWatchedVideos": { - "message": "This will remove all watched videos." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "This will remove all YouTube cookies" - }, - "thisWillResetAllSettings": { - "message": "This will reset all settings." - }, - "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" - }, - "thumbnails": { - "message": "Thumbnails" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "Time from" - }, - "timeTo": { - "message": "Time to" - }, - "todayAt": { - "message": "Today at" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle player controls" - }, - "topChat": { - "message": "Top chat" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "Trailer autoplay" - }, - "translations": { - "message": "Translations" - }, - "transparentBackground": { - "message": "Transparent background" - }, - "trending": { - "message": "Trending" - }, - "tryToReloadThePage": { - "message": "Try to reload the page" - }, - "type": { - "message": "Type" - }, - "upNextAutoplay": { - "message": "Up next autoplay" - }, - "use24HourFormat": { - "message": "Use 24-hour format" - }, - "version": { - "message": "Version" - }, - "video": { - "message": "Video" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" - }, - "videoFormats": { - "message": "Video formats" - }, - "videos": { - "message": "Videos" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "Volume" - }, - "watchLater": { - "message": "Watch later" - }, - "watchTime": { - "message": "Watch time" - }, - "whenPaused": { - "message": "When paused" - }, - "whenTabIsChanged": { - "message": "When tab is changed" - }, - "white": { - "message": "White" - }, - "windowColor": { - "message": "Window color" - }, - "windowOpacity": { - "message": "Window opacity" - }, - "yellow": { - "message": "Yellow" - }, - "youtubeHeaderLeft": { - "message": "YouTube Header (left)" - }, - "youtubeHeaderRight": { - "message": "YouTube Header (right)" - }, - "youtubeHomePage": { - "message": "YouTube home page" - }, - "youtubeLanguage": { - "message": "YouTube language" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limits video quality to 1080p for h.264 codec" - } -} \ No newline at end of file From 28b997e5ded9312b20089cdbeb9906a337341c3c Mon Sep 17 00:00:00 2001 From: "H. Boyd" Date: Sun, 9 Oct 2022 00:28:15 -0400 Subject: [PATCH 0641/1224] Fix Hindi locale naming --- _locales/hi/messages.json | 583 ++++++++++---------- _locales/hin/messages.json | 1061 ------------------------------------ 2 files changed, 287 insertions(+), 1357 deletions(-) delete mode 100644 _locales/hin/messages.json diff --git a/_locales/hi/messages.json b/_locales/hi/messages.json index adb62223f..f4094b165 100644 --- a/_locales/hi/messages.json +++ b/_locales/hi/messages.json @@ -12,61 +12,58 @@ "message": "⇧" }, "about": { - "message": "About" + "message": "के बारे में" }, "accept": { - "message": "Accept" + "message": "स्वीकार" }, "activate": { - "message": "Activate" + "message": "सक्रिय" }, "activateCaptions": { - "message": "Activate captions" + "message": "कैप्शन सक्रिय करें" }, "activateFullscreen": { - "message": "Activate fullscreen" + "message": "पूर्णस्क्रीन सक्रिय करें" }, "activated": { - "message": "Activated" + "message": "सक्रिय" }, "activatedFeatures": { - "message": "Activated features" + "message": "सक्रिय विशेषताएं" }, "activeFeatures": { - "message": "Active features" + "message": "सक्रिय विशेषताएं" }, "addScrollToTop": { - "message": "Add «Scroll to top»" + "message": "«शीर्ष पर स्क्रॉल करें» जोड़ें" }, "ads": { - "message": "Ads" + "message": "विज्ञापन" }, "all": { - "message": "All" + "message": "सब" }, "allow": { - "message": "Allow" + "message": "अनुमति" }, "allow60fps": { - "message": "Allow 60fps" - }, - "always": { - "message": "Always" + "message": "60fps की अनुमति दें" }, "alwaysActive": { - "message": "Always active" + "message": "हमेशा सक्रिय" }, "alwaysShowProgressBar": { - "message": "Always show progress bar" + "message": "हमेशा प्रगति बार दिखाएं" }, "amber": { - "message": "Amber" + "message": "अंबर" }, "analyzer": { - "message": "Analyzer" + "message": "विश्लेषक" }, "appearance": { - "message": "Appearance" + "message": "दिखावट" }, "areYouSureYouWantToExportTheData": { "message": "Are you sure you want to export the data?" @@ -75,22 +72,22 @@ "message": "Are you sure you want to import the data?" }, "audio": { - "message": "Audio" + "message": "ऑडियो" }, "audioFormats": { - "message": "Audio formats" + "message": "ऑडियो प्रारूप" }, "auto": { - "message": "Auto" + "message": "खुद ब खुद" }, "autoFullscreen": { - "message": "Auto-fullscreen" + "message": "स्वत: पूर्ण स्क्रीन" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "टैब स्विच करते समय ऑटोपॉज" }, "autoplay": { - "message": "Autoplay" + "message": "स्वत: प्ले" }, "avoidAv1": { "message": "Avoid AV1" @@ -105,28 +102,28 @@ "message": "Avoid CPU rendering when possible" }, "backgroundColor": { - "message": "Background color" + "message": "पीछे का रंग" }, "backgroundOpacity": { - "message": "Background opacity" + "message": "पृष्ठभूमि अस्पष्टता" }, "backupAndReset": { - "message": "Backup & reset" + "message": "बैकअप पुनर्स्थापित करना" }, "baseOnSystemColorScheme": { - "message": "Base on system color scheme" + "message": "सिस्टम रंग योजना के आधार पर" }, "belowPlayer": { - "message": "Below player" + "message": "प्लेयर के नीचे" }, "black": { - "message": "Black" + "message": "काला" }, "blacklist": { - "message": "Blacklist" + "message": "काला सूची में डालना" }, "blockAll": { - "message": "Block all" + "message": "सभी को अवरोधित करें" }, "blockAv1": { "message": "Block AV1" @@ -144,325 +141,325 @@ "message": "Block VP9" }, "blue": { - "message": "Blue" + "message": "नीला" }, "blueGray": { - "message": "Blue gray" + "message": "नीला स्लेटी" }, "bluelight": { - "message": "Bluelight" + "message": "नीली बत्ती" }, "brown": { - "message": "Brown" + "message": "भूरा" }, "browser": { - "message": "Browser" + "message": "ब्राउज़र" }, "browserVersion": { - "message": "Browser version" + "message": "ब्राउज़र संस्करण" }, "bubbles": { - "message": "Bubbles" + "message": "बुलबुले" }, "bug": { - "message": "Bug" + "message": "बग" }, "buttons": { - "message": "Buttons" + "message": "बटन" }, "cancel": { - "message": "Cancel" + "message": "रद्द" }, "categories": { - "message": "Categories" + "message": "श्रेणियाँ" }, "channel": { - "message": "Channel" + "message": "चैनल" }, "channels": { - "message": "Channels" + "message": "चैनल" }, "characterEdgeStyle": { - "message": "Character edge style" + "message": "कैरेक्टर एज स्टाइल" }, "clip": { "message": "Clip" }, "clipboard": { - "message": "Clipboard" + "message": "क्लिपबोर्ड" }, "codecH264": { - "message": "Codec h.264" + "message": "कोडक H264" }, "codecs": { "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "सदस्यता वर्गों का पतन" }, "collapsed": { - "message": "Collapsed" + "message": "संक्षिप्त" }, "comments": { - "message": "Comments" + "message": "टिप्पणियाँ" }, "confirmationBeforeClosing": { - "message": "Confirmation before closing" + "message": "बंद करने से पहले पुष्टि" }, "cookies": { - "message": "Cookies" + "message": "कुकीज़" }, "cores": { - "message": "Cores" + "message": "कोर" }, "cropChapterTitles": { - "message": "Crop chapter titles" + "message": "फसल अध्याय के शीर्षक" }, "custom": { "message": "Custom" }, "customCss": { - "message": "Custom CSS" + "message": "कस्टम सीएसएस" }, "customJs": { - "message": "Custom JS" + "message": "कस्टम जेएस" }, "customMiniPlayer": { - "message": "Custom Mini-Player" + "message": "कस्टम मिनी प्लेयर" }, "cyan": { - "message": "Cyan" + "message": "सियान" }, "dark": { - "message": "Dark" + "message": "अंधेरा" }, "darkTheme": { - "message": "Dark theme" + "message": "डार्क थीम" }, "dateAndTime": { - "message": "Date & time" + "message": "दिनांक और समय" }, "dawn": { - "message": "Dawn" + "message": "भोर" }, "decreasePlaybackSpeed": { - "message": "Decrease playback speed" + "message": "पार्श्व गति में कमी" }, "decreaseVolume": { - "message": "Decrease volume" + "message": "ध्वनि कम" }, "deepOrange": { - "message": "Deep orange" + "message": "गहरा नारंगी" }, "deepPurple": { - "message": "Deep purple" + "message": "गहरा बैंगनी" }, "default": { - "message": "Default" + "message": "डिफ़ॉल्ट" }, "defaultChannelTab": { - "message": "Default channel tab" + "message": "डिफ़ॉल्ट चैनल टैब" }, "defaultContentCountry": { - "message": "Default content country" + "message": "डिफॉल्ट विषय देश" }, "deleteWatchedVideos": { "message": "Delete watched videos" }, "deleteYoutubeCookies": { - "message": "Delete YouTube cookies" + "message": "यूट्यूब कुकीज़ हटाएं" }, "depressed": { - "message": "Depressed" + "message": "उदास" }, "description": { "message": "Description" }, "description_ext": { - "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + "message": "YouTube को व्यवस्थित एवं स्मार्ट बनाएं! यूट्यूब वीडियो कलर एड स्किप वॉल्यूम स्पीड चैनल टूल स्टाइल एचडी विज्ञापन एडब्लॉकर टैग कीवर्ड प्लेलिस्ट" }, "desert": { - "message": "Desert" + "message": "रेगिस्तान" }, "details": { - "message": "Details" + "message": "विवरण" }, "developerOptions": { - "message": "Developer options" + "message": "डेवलपर विकल्प" }, "device": { - "message": "Device" + "message": "युक्ति" }, "dim": { - "message": "Dim" + "message": "मंद" }, "disabled": { - "message": "Disabled" + "message": "विकलांग" }, "dislike": { - "message": "Dislike" + "message": "नापसन्द" }, "doNotChange": { - "message": "Don't change" + "message": "मत बदलो" }, "donate": { - "message": "Donate" + "message": "दान" }, "download": { "message": "Download" }, "draggable": { - "message": "Draggable" + "message": "खींचने योग्य" }, "dropShadow": { - "message": "Drop shadow" + "message": "परछाई डालना" }, "durationWithSpeed": { "message": "Show time remaining with reference to playback speed" }, "email": { - "message": "Email" + "message": "ईमेल" }, "empty": { - "message": "Empty" + "message": "खाली" }, "enabled": { - "message": "Enabled" + "message": "सक्रिय" }, "enabledForced": { - "message": "Enabled (forced)" + "message": "सक्रिय(मजबूर)" }, "expanded": { - "message": "Expanded" + "message": "विस्तारित" }, "exportSettings": { - "message": "Export settings" + "message": "निर्यात सेटिंग्स" }, "extension": { - "message": "Extension" + "message": "एक्सटेंशन" }, "file": { - "message": "File" + "message": "फ़ाइल" }, "filters": { - "message": "Filters" + "message": "फिल्टर" }, "fitToWindow": { - "message": "Fit to window" + "message": "स्क्रीन फिट" }, "flash": { - "message": "Flash" + "message": "चमक" }, "font": { - "message": "Font" + "message": "लिपि" }, "fontColor": { - "message": "Font color" + "message": "लिपि का रंग" }, "fontFamily": { - "message": "Font family" + "message": "लिपीओ का काि संग्रह" }, "fontOpacity": { - "message": "Font opacity" + "message": "लिपि की अस्पष्टता" }, "fontSize": { - "message": "Font size" + "message": "लिपीओ का आकार" }, "footer": { - "message": "Footer" + "message": "पाद लेख" }, "forceSDR": { "message": "Force SDR" }, "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" + "message": "जबरदस्ती वीडियो शुरू से प्ले करें" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "जबरन पार्श्व गति" }, "forcedTheaterMode": { - "message": "Forced theater mode" + "message": "जबरन थिएटर मोड" }, "forcedVolume": { - "message": "Forced volume" + "message": "जबरन ध्वनि" }, "foundABug": { - "message": "Found a bug?" + "message": "बग मिला?" }, "fullWindow": { - "message": "Full window" + "message": "पूर्ण स्क्रीन" }, "general": { - "message": "General" + "message": "सामान्य" }, "geoPreference": { "message": "Geo Preference" }, "github": { - "message": "GitHub" + "message": "गिटहब" }, "goToSearchBox": { - "message": "Go to search box" + "message": "सर्च बॉक्स पर जाएं" }, "googleApiKey": { "message": "Google API key" }, "gpu": { - "message": "GPU" + "message": "जी पी यू" }, "green": { - "message": "Green" + "message": "हरा" }, "hd": { "message": "HD" }, "hdThumbnail": { - "message": "HD thumbnail" + "message": "एच डी थंबनेल" }, "header": { - "message": "Header" + "message": "हैडर" }, "hidden": { - "message": "Hidden" + "message": "छिपा हुआ" }, "hiddenOnVideoPage": { - "message": "Hidden on video page" + "message": "वीडियो पेज पर छिपा हुआ" }, "hideAnimatedThumbnails": { - "message": "Hide animated thumbnails" + "message": "वीडियो पेज पर छिपा हुआ" }, "hideAnnotations": { - "message": "Hide annotations" + "message": "एनोटेशन छुपाएं" }, "hideButtonLabel": { "message": "Hide Button Label" }, "hideCards": { - "message": "Hide cards" + "message": "पत्ते छिपाओ" }, "hideCountryCode": { - "message": "Hide country code" + "message": "देश कोड छुपाएं" }, "hideDate": { - "message": "Hide date" + "message": "तारीख छुपाएं" }, "hideDetailButton": { "message": "Hide Detail Button" }, "hideDetails": { - "message": "Hide details" + "message": "जानकारी छिपाएँ" }, "hideEndscreen": { - "message": "Hide endscreen" + "message": "अंत स्क्रीन छिपाएँ" }, "hideFeaturedContent": { - "message": "Hide featured content" + "message": "विशेषताओं को छिपाएँ" }, "hideFooter": { - "message": "Hide footer" + "message": "पाद छिपाएँ" }, "hideGradientBottom": { - "message": "Hide shadow around player-bar" + "message": "ग्रेडिएंट बॉटम छुपाएं" }, "hidePlayerControlsBar": { "message": "Hide player controls bar" @@ -474,106 +471,106 @@ "message": "Hide player controls options" }, "hidePlaylist": { - "message": "Hide playlist" + "message": "प्लेलिस्ट छिपाएं" }, "hideRightButtons": { - "message": "Hide right buttons" + "message": "दाएं बटन छुपाएं" }, "hideScrollForDetails": { - "message": "Hide «Scroll for details»" + "message": "छिपाएँ «विवरण के लिए स्क्रॉल»" }, "hideSkipOverlay": { - "message": "Hide 5 seconds skip animation" + "message": "स्किप ओवरले छुपाएं" }, "hideThumbnailOverlay": { - "message": "Hide buttons on thumbnails" + "message": "Hide thumbnail overlay" }, "hideThumbnails": { "message": "Hide thumbnails" }, "hideViewsCount": { - "message": "Hide views count" + "message": "व्यू काउंट छिपाएं" }, "hideVoiceSearchButton": { - "message": "Hide voice search button" + "message": "ध्वनि खोज बटन छुपाएं" }, "high": { "message": "High" }, "history": { - "message": "History" + "message": "इतिहास" }, "home": { - "message": "Home" + "message": "घर" }, "hover": { - "message": "Hover" + "message": "होवर" }, "hoverOnVideoPage": { - "message": "Hover on video page" + "message": "वीडियो पेज पर होवर" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "वीडियो कितनी देर पहले अपलोड किया गया था" }, "icons": { - "message": "Icons" + "message": "प्रतीक" }, "iconsOnly": { - "message": "Icons only" + "message": "केवल प्रतीक" }, "importSettings": { - "message": "Import settings" + "message": "सेटिंग आयात करना" }, "improveLogo": { - "message": "Improve logo" + "message": "लोगो सुधारो" }, "improvedtubeButtons": { "message": "ImprovedTube buttons" }, "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icon on YouTube" + "message": "यूट्यूब पर बेहतर आइकन" }, "improvedtubeLanguage": { - "message": "ImprovedTube language" + "message": "ImprovedTube भाषा" }, "improvedtubeVersion": { - "message": "ImprovedTube version" + "message": "ImprovedTube संस्करण" }, "increasePlaybackSpeed": { - "message": "Increase playback speed" + "message": "प्लेबैक स्पीड बढ़ाएं" }, "increaseVolume": { - "message": "Increase volume" + "message": "ध्वनि बढ़ाएं" }, "indigo": { - "message": "Indigo" + "message": "नील" }, "items": { - "message": "Items" + "message": "आइटम" }, "language": { "message": "Language" }, "languages": { - "message": "Languages" + "message": "बोली" }, "legacyYoutube": { - "message": "Legacy YouTube" + "message": "विरासत यूट्यूब" }, "library": { "message": "Library" }, "light": { - "message": "Light" + "message": "हलका" }, "lightBlue": { - "message": "Light blue" + "message": "हल्का नीला" }, "lightGreen": { - "message": "Light green" + "message": "हल्का हरा" }, "like": { - "message": "Like" + "message": "पसंद" }, "likeAndDislike": { "message": "Like and Dislike " @@ -582,40 +579,40 @@ "message": "Liked" }, "lime": { - "message": "Lime" + "message": "पीला हरा रंग" }, "limitPageWidth": { - "message": "Limit page width" + "message": "पृष्ठ की चौड़ाई सीमित करें" }, "list": { - "message": "List" + "message": "सूची" }, "liveChat": { - "message": "Live chat" + "message": "सीधी बातचीत" }, "liveChatType": { - "message": "Live chat type" + "message": "लाइव चैट प्रकार" }, "location": { - "message": "Location" + "message": "स्थान" }, "loop": { "message": "Loop" }, "loudnessNormalization": { - "message": "Loudness normalization" + "message": "जोर से सामान्य होना" }, "low": { "message": "Low" }, "markWatchedVideos": { - "message": "Mark watched videos" + "message": "चिह्नित वीडियो देखे गए" }, "medium": { "message": "Medium" }, "mixer": { - "message": "Mixer" + "message": "मिक्सर" }, "more": { "message": "More" @@ -627,67 +624,64 @@ "message": "Move thumbnails right" }, "myColors": { - "message": "My colors" + "message": "मेरे रंग" }, "name": { - "message": "Name" + "message": "नाम" }, "nativeMiniPlayer": { - "message": "Native mini player" + "message": "मूल निवासी मिनी प्लेयर" }, "new": { - "message": "New" + "message": "नया" }, "nextVideo": { - "message": "Next video" + "message": "अगला वीडियो" }, "night": { - "message": "Night" + "message": "रात" }, "noActiveFeatures": { - "message": "No active features" + "message": "कोई सक्रिय सुविधाएँ नहीं" }, "noOpenVideoTabs": { - "message": "No open video tabs" + "message": "कोई खुला वीडियो टैब नहीं" }, "none": { - "message": "None" + "message": "कोई नहीं" }, "normal": { - "message": "Normal" - }, - "off": { - "message": "Off" + "message": "साधारण" }, "ok": { "message": "Ok" }, "old": { - "message": "Old" + "message": "पुराना" }, "onAllVideos": { - "message": "On all videos" + "message": "सभी वीडियो पर" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "सदस्यता प्राप्त चैनलों पर" }, "onlyActiveOnYoutube": { - "message": "Only active on YouTube" + "message": "केवल यूट्यूब पर सक्रिय है" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "केवल एक प्लेयर का चल रहा है" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" }, "orange": { - "message": "Orange" + "message": "नारंगी रंग" }, "os": { - "message": "OS" + "message": "ओ एस" }, "other": { - "message": "Other" + "message": "अन्य" }, "outline": { "message": "Outline" @@ -696,70 +690,70 @@ "message": "Overlay" }, "permissions": { - "message": "Permissions" + "message": "अनुमतियां" }, "pictureInPicture": { - "message": "Picture-in-Picture" + "message": "चित्र में चित्र" }, "pink": { - "message": "Pink" + "message": "गुलाबी" }, "plain": { - "message": "Plain" + "message": "सादा" }, "platform": { - "message": "Platform" + "message": "मंच" }, "playAllButton": { "message": "\"Play all\" button" }, "playPause": { - "message": "Play / Pause" + "message": "प्ले / ठहराव" }, "playbackSpeed": { - "message": "Playback speed" + "message": "प्लेबैक स्पीड" }, "player": { - "message": "Player" + "message": "प्लेयर" }, "playerColor": { - "message": "Player color" + "message": "प्लेयर रंग" }, "playerSize": { - "message": "Player size" + "message": "प्लेयर आकार" }, "playlist": { - "message": "Playlist" + "message": "प्लेलिस्ट" }, "playlists": { - "message": "Playlists" + "message": "प्लेलिस्ट" }, "popupPlayer": { - "message": "Popup player" + "message": "पॉप अप प्लेयर" }, "popupWindowButtons": { "message": "popup_window_buttons" }, "position": { - "message": "Position" + "message": "स्थान" }, "pressAnyKeyOrScroll": { - "message": "Press any key or use mouse wheel." + "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" }, "pressAnyKeyOrUseMouseWheel": { - "message": "Press any key or use mouse wheel" + "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" }, "previousVideo": { - "message": "Previous video" + "message": "पिछला वीडियो" }, "primaryColor": { - "message": "Primary color" + "message": "प्राथमिक रंग" }, "purple": { - "message": "Purple" + "message": "बैंगनी" }, "quality": { - "message": "Quality" + "message": "गुणवत्ता" }, "raised": { "message": "Raised" @@ -771,58 +765,58 @@ "message": "Rate me" }, "rateUs": { - "message": "Rate us" + "message": "हमें रेटिंग दें" }, "red": { - "message": "Red" + "message": "लाल" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "नापसंद बटन लाल रंग दिखाएं" }, "relatedVideos": { - "message": "Related videos" + "message": "संबंधित वीडियो" }, "remote": { "message": "Play on TV" }, "removeRelatedSearchResults": { - "message": "Remove related search results" + "message": "संबंधित खोज परिणाम निकालें" }, "repeat": { - "message": "Repeat" + "message": "दोहराना" }, "report": { "message": "Report" }, "reset": { - "message": "Reset" + "message": "रीसेट" }, "resetAllSettings": { - "message": "Reset all settings" + "message": "सभी सेटिंग्स को रीसेट" }, "resetAllShortcuts": { - "message": "Reset all shortcuts" + "message": "सभी शॉर्टकट रीसेट करें" }, "reverse": { - "message": "Reverse" + "message": "उलटना" }, "rotate": { - "message": "Rotate" + "message": "घुमाएँ" }, "save": { - "message": "Save" + "message": "सहेजें" }, "saveAs": { - "message": "Save as" + "message": "के रूप रक्षित करें" }, "schedule": { - "message": "Schedule" + "message": "अनुसूची" }, "screen": { - "message": "Screen" + "message": "स्क्रीन" }, "screenshot": { - "message": "Screenshot" + "message": "स्क्रीनशॉट" }, "scrollBar": { "message": "Scroll Bar" @@ -831,142 +825,142 @@ "message": "SD" }, "search": { - "message": "Search" + "message": "खोज" }, "searchBarOnly": { - "message": "Search bar only" + "message": "केवल बार खोजें" }, "seekBackward10Seconds": { - "message": "Seek backward 10 seconds" + "message": "पिछड़े 10 सेकंड की तलाश करें" }, "seekForward10Seconds": { - "message": "Seek forward 10 seconds" + "message": "पिछड़े 10 सेकंड की तलाश करें" }, "seekNextChapter": { - "message": "Seek Next Chapter" + "message": "अगले अध्याय पर चलें" }, "seekPreviousChapter": { - "message": "Seek Previous Chapter" + "message": "पिछले अध्याय पर चलें" }, "settings": { - "message": "Settings" + "message": "समायोजन" }, "settingsSuccessfullyImported": { - "message": "Settings successfully imported" + "message": "सेटिंग्स सफलतापूर्वक आयात की गईं" }, "share": { "message": "Share" }, "shortcuts": { - "message": "Shortcuts" + "message": "शॉर्टकट" }, "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" + "message": "माउस होवर पर कार्ड दिखाएं" }, "showChannelVideosCount": { - "message": "Show channel videos count" + "message": "चैनल वीडियो काउंट दिखाएं" }, "showLess": { - "message": "Show less" + "message": "कम दिखाएं" }, "showMore": { - "message": "Show more" + "message": "और दिखाएं" }, "showRemainingDuration": { - "message": "Show video remaining duration" + "message": "वीडियो की बची हुई अवधि दिखाएं" }, "shuffle": { - "message": "Shuffle" + "message": "मिश्रण" }, "sidebar": { - "message": "Sidebar" + "message": "साइडबार" }, "spacebar": { - "message": "Spacebar" + "message": "स्पेस बार" }, "squaredUserImages": { - "message": "Squared user images" + "message": "चुकता उपयोगकर्ता चित्र" }, "static": { - "message": "Static" + "message": "स्थिर" }, "statsForNerds": { - "message": "Show Stats for Nerds" + "message": "डेवलपर के लिए आँकड़े दिखाएँ" }, "step": { - "message": "Step" + "message": "चरण" }, "stop": { - "message": "Stop" + "message": "रुकें" }, "style": { - "message": "Style" + "message": "अंदाज" }, "styles": { - "message": "Styles" + "message": "शैलियाँ" }, "subscribe": { "message": "Subscribe" }, "subscriptions": { - "message": "Subscriptions" + "message": "सदस्यता" }, "subtitles": { - "message": "Subtitles" + "message": "उपशीर्षक" }, "sunset": { - "message": "Sunset" + "message": "सूर्यास्त" }, "sunsetToSunrise": { - "message": "Sunset to sunrise" + "message": "सूर्योदय से सूर्यास्त" }, "systemPeferenceDark": { - "message": "System peference: dark" + "message": "सिस्टम प्राथमिकताएं: अंधेरा" }, "systemPeferenceLight": { - "message": "System peference: light" + "message": "सिस्टम वरीयताएँ: प्रकाश" }, "teal": { - "message": "Teal" + "message": "टील रंग" }, "textColor": { - "message": "Text color" + "message": "लिखावट का रंग" }, "thanks": { "message": "Thanks" }, "themes": { - "message": "Themes" + "message": "विषय-वस्तु" }, "thisWillRemoveAllCookies": { - "message": "This will remove all cookies." + "message": "यह सभी कुकीज़ को हटा देगा।" }, "thisWillRemoveAllWatchedVideos": { "message": "This will remove all watched videos." }, "thisWillRemoveAllYouTubeCookies": { - "message": "This will remove all YouTube cookies" + "message": "यह सभी यूट्यूब कुकीज़ को हटा देगा।" }, "thisWillResetAllSettings": { - "message": "This will reset all settings." + "message": "यह सभी सेटिंग्स को रीसेट कर देगा।" }, "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" + "message": "यह सभी शॉर्टकट रीसेट कर देगा।" }, "thumbnails": { - "message": "Thumbnails" + "message": "थंबनेल" }, "thumbnailsQuality": { "message": "Thumbnails Quality" }, "timeFrom": { - "message": "Time from" + "message": "से समय" }, "timeTo": { - "message": "Time to" + "message": "समय पर" }, "todayAt": { - "message": "Today at" + "message": "आज इस समय" }, "toggleAutoplay": { "message": "Toggle autoplay" @@ -975,96 +969,93 @@ "message": "Toggle cards" }, "toggleControls": { - "message": "Toggle player controls" + "message": "Toggle controls" }, "topChat": { - "message": "Top chat" + "message": "शीर्ष चैट" }, "trackWatchedVideos": { "message": "Track watched videos" }, "trailerAutoplay": { - "message": "Trailer autoplay" + "message": "ट्रेलर ऑटोप्ले" }, "translations": { - "message": "Translations" + "message": "अनुवाद" }, "transparentBackground": { - "message": "Transparent background" + "message": "पारदर्शी पृष्ठभूमि" }, "trending": { - "message": "Trending" + "message": "रुझान" }, "tryToReloadThePage": { - "message": "Try to reload the page" + "message": "पृष्ठ को पुनः लोड करने का प्रयास करें" }, "type": { - "message": "Type" + "message": "टाइप" }, "upNextAutoplay": { - "message": "Up next autoplay" + "message": "अगले ऑटोप्ले पर" }, "use24HourFormat": { - "message": "Use 24-hour format" + "message": "24-घंटे के प्रारूप का उपयोग करें" }, "version": { - "message": "Version" + "message": "संस्करण" }, "video": { - "message": "Video" + "message": "वीडियो" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" + "message": "श्रेणी का नाम प्राप्त करने के लिए वीडियो विवरण का विस्तार किया जाएगा।" }, "videoFormats": { - "message": "Video formats" + "message": "वीडियो प्रारूप" }, "videos": { - "message": "Videos" + "message": "वीडियो" }, "viewMode": { "message": "View Mode" }, "volume": { - "message": "Volume" + "message": "ध्वनि" }, "watchLater": { - "message": "Watch later" + "message": "बाद में देखना" }, "watchTime": { - "message": "Watch time" - }, - "whenPaused": { - "message": "When paused" + "message": "समय देखें" }, "whenTabIsChanged": { - "message": "When tab is changed" + "message": "जब टैब बदला जाता है" }, "white": { - "message": "White" + "message": "सफेद" }, "windowColor": { - "message": "Window color" + "message": "विंडो का रंग" }, "windowOpacity": { - "message": "Window opacity" + "message": "विंडो की अस्पष्टता" }, "yellow": { - "message": "Yellow" + "message": "पीला" }, "youtubeHeaderLeft": { - "message": "YouTube Header (left)" + "message": "यूट्यूब हैडर (बाएं)" }, "youtubeHeaderRight": { - "message": "YouTube Header (right)" + "message": "यूट्यूब हैडर (दाएं)" }, "youtubeHomePage": { - "message": "YouTube home page" + "message": "यूट्यूब होम पेज" }, "youtubeLanguage": { - "message": "YouTube language" + "message": "यूट्यूब भाषा" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limits video quality to 1080p for h.264 codec" + "message": "यूट्यूब h.264 कोडेक के लिए वीडियो की गुणवत्ता 1080 पी तक सीमित है" } } \ No newline at end of file diff --git a/_locales/hin/messages.json b/_locales/hin/messages.json deleted file mode 100644 index f4094b165..000000000 --- a/_locales/hin/messages.json +++ /dev/null @@ -1,1061 +0,0 @@ -{ - "ARROWDOWN": { - "message": "⇩" - }, - "ARROWLEFT": { - "message": "⇦" - }, - "ARROWRIGHT": { - "message": "⇨" - }, - "ARROWUP": { - "message": "⇧" - }, - "about": { - "message": "के बारे में" - }, - "accept": { - "message": "स्वीकार" - }, - "activate": { - "message": "सक्रिय" - }, - "activateCaptions": { - "message": "कैप्शन सक्रिय करें" - }, - "activateFullscreen": { - "message": "पूर्णस्क्रीन सक्रिय करें" - }, - "activated": { - "message": "सक्रिय" - }, - "activatedFeatures": { - "message": "सक्रिय विशेषताएं" - }, - "activeFeatures": { - "message": "सक्रिय विशेषताएं" - }, - "addScrollToTop": { - "message": "«शीर्ष पर स्क्रॉल करें» जोड़ें" - }, - "ads": { - "message": "विज्ञापन" - }, - "all": { - "message": "सब" - }, - "allow": { - "message": "अनुमति" - }, - "allow60fps": { - "message": "60fps की अनुमति दें" - }, - "alwaysActive": { - "message": "हमेशा सक्रिय" - }, - "alwaysShowProgressBar": { - "message": "हमेशा प्रगति बार दिखाएं" - }, - "amber": { - "message": "अंबर" - }, - "analyzer": { - "message": "विश्लेषक" - }, - "appearance": { - "message": "दिखावट" - }, - "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" - }, - "areYouSureYouWantToImportTheData": { - "message": "Are you sure you want to import the data?" - }, - "audio": { - "message": "ऑडियो" - }, - "audioFormats": { - "message": "ऑडियो प्रारूप" - }, - "auto": { - "message": "खुद ब खुद" - }, - "autoFullscreen": { - "message": "स्वत: पूर्ण स्क्रीन" - }, - "autopauseWhenSwitchingTabs": { - "message": "टैब स्विच करते समय ऑटोपॉज" - }, - "autoplay": { - "message": "स्वत: प्ले" - }, - "avoidAv1": { - "message": "Avoid AV1" - }, - "avoidAv1Vp8Vp9": { - "message": "Avoid AV1, VP8, VP9" - }, - "avoidAv1Vp9": { - "message": "Avoid AV1, VP9" - }, - "avoidCpuRenderingWhenPossible": { - "message": "Avoid CPU rendering when possible" - }, - "backgroundColor": { - "message": "पीछे का रंग" - }, - "backgroundOpacity": { - "message": "पृष्ठभूमि अस्पष्टता" - }, - "backupAndReset": { - "message": "बैकअप पुनर्स्थापित करना" - }, - "baseOnSystemColorScheme": { - "message": "सिस्टम रंग योजना के आधार पर" - }, - "belowPlayer": { - "message": "प्लेयर के नीचे" - }, - "black": { - "message": "काला" - }, - "blacklist": { - "message": "काला सूची में डालना" - }, - "blockAll": { - "message": "सभी को अवरोधित करें" - }, - "blockAv1": { - "message": "Block AV1" - }, - "blockH264": { - "message": "Block H.264" - }, - "blockMusic": { - "message": "Block music" - }, - "blockVp8": { - "message": "Block VP8" - }, - "blockVp9": { - "message": "Block VP9" - }, - "blue": { - "message": "नीला" - }, - "blueGray": { - "message": "नीला स्लेटी" - }, - "bluelight": { - "message": "नीली बत्ती" - }, - "brown": { - "message": "भूरा" - }, - "browser": { - "message": "ब्राउज़र" - }, - "browserVersion": { - "message": "ब्राउज़र संस्करण" - }, - "bubbles": { - "message": "बुलबुले" - }, - "bug": { - "message": "बग" - }, - "buttons": { - "message": "बटन" - }, - "cancel": { - "message": "रद्द" - }, - "categories": { - "message": "श्रेणियाँ" - }, - "channel": { - "message": "चैनल" - }, - "channels": { - "message": "चैनल" - }, - "characterEdgeStyle": { - "message": "कैरेक्टर एज स्टाइल" - }, - "clip": { - "message": "Clip" - }, - "clipboard": { - "message": "क्लिपबोर्ड" - }, - "codecH264": { - "message": "कोडक H264" - }, - "codecs": { - "message": "Codecs" - }, - "collapseOfSubscriptionSections": { - "message": "सदस्यता वर्गों का पतन" - }, - "collapsed": { - "message": "संक्षिप्त" - }, - "comments": { - "message": "टिप्पणियाँ" - }, - "confirmationBeforeClosing": { - "message": "बंद करने से पहले पुष्टि" - }, - "cookies": { - "message": "कुकीज़" - }, - "cores": { - "message": "कोर" - }, - "cropChapterTitles": { - "message": "फसल अध्याय के शीर्षक" - }, - "custom": { - "message": "Custom" - }, - "customCss": { - "message": "कस्टम सीएसएस" - }, - "customJs": { - "message": "कस्टम जेएस" - }, - "customMiniPlayer": { - "message": "कस्टम मिनी प्लेयर" - }, - "cyan": { - "message": "सियान" - }, - "dark": { - "message": "अंधेरा" - }, - "darkTheme": { - "message": "डार्क थीम" - }, - "dateAndTime": { - "message": "दिनांक और समय" - }, - "dawn": { - "message": "भोर" - }, - "decreasePlaybackSpeed": { - "message": "पार्श्व गति में कमी" - }, - "decreaseVolume": { - "message": "ध्वनि कम" - }, - "deepOrange": { - "message": "गहरा नारंगी" - }, - "deepPurple": { - "message": "गहरा बैंगनी" - }, - "default": { - "message": "डिफ़ॉल्ट" - }, - "defaultChannelTab": { - "message": "डिफ़ॉल्ट चैनल टैब" - }, - "defaultContentCountry": { - "message": "डिफॉल्ट विषय देश" - }, - "deleteWatchedVideos": { - "message": "Delete watched videos" - }, - "deleteYoutubeCookies": { - "message": "यूट्यूब कुकीज़ हटाएं" - }, - "depressed": { - "message": "उदास" - }, - "description": { - "message": "Description" - }, - "description_ext": { - "message": "YouTube को व्यवस्थित एवं स्मार्ट बनाएं! यूट्यूब वीडियो कलर एड स्किप वॉल्यूम स्पीड चैनल टूल स्टाइल एचडी विज्ञापन एडब्लॉकर टैग कीवर्ड प्लेलिस्ट" - }, - "desert": { - "message": "रेगिस्तान" - }, - "details": { - "message": "विवरण" - }, - "developerOptions": { - "message": "डेवलपर विकल्प" - }, - "device": { - "message": "युक्ति" - }, - "dim": { - "message": "मंद" - }, - "disabled": { - "message": "विकलांग" - }, - "dislike": { - "message": "नापसन्द" - }, - "doNotChange": { - "message": "मत बदलो" - }, - "donate": { - "message": "दान" - }, - "download": { - "message": "Download" - }, - "draggable": { - "message": "खींचने योग्य" - }, - "dropShadow": { - "message": "परछाई डालना" - }, - "durationWithSpeed": { - "message": "Show time remaining with reference to playback speed" - }, - "email": { - "message": "ईमेल" - }, - "empty": { - "message": "खाली" - }, - "enabled": { - "message": "सक्रिय" - }, - "enabledForced": { - "message": "सक्रिय(मजबूर)" - }, - "expanded": { - "message": "विस्तारित" - }, - "exportSettings": { - "message": "निर्यात सेटिंग्स" - }, - "extension": { - "message": "एक्सटेंशन" - }, - "file": { - "message": "फ़ाइल" - }, - "filters": { - "message": "फिल्टर" - }, - "fitToWindow": { - "message": "स्क्रीन फिट" - }, - "flash": { - "message": "चमक" - }, - "font": { - "message": "लिपि" - }, - "fontColor": { - "message": "लिपि का रंग" - }, - "fontFamily": { - "message": "लिपीओ का काि संग्रह" - }, - "fontOpacity": { - "message": "लिपि की अस्पष्टता" - }, - "fontSize": { - "message": "लिपीओ का आकार" - }, - "footer": { - "message": "पाद लेख" - }, - "forceSDR": { - "message": "Force SDR" - }, - "forcedPlayVideoFromTheBeginning": { - "message": "जबरदस्ती वीडियो शुरू से प्ले करें" - }, - "forcedPlaybackSpeed": { - "message": "जबरन पार्श्व गति" - }, - "forcedTheaterMode": { - "message": "जबरन थिएटर मोड" - }, - "forcedVolume": { - "message": "जबरन ध्वनि" - }, - "foundABug": { - "message": "बग मिला?" - }, - "fullWindow": { - "message": "पूर्ण स्क्रीन" - }, - "general": { - "message": "सामान्य" - }, - "geoPreference": { - "message": "Geo Preference" - }, - "github": { - "message": "गिटहब" - }, - "goToSearchBox": { - "message": "सर्च बॉक्स पर जाएं" - }, - "googleApiKey": { - "message": "Google API key" - }, - "gpu": { - "message": "जी पी यू" - }, - "green": { - "message": "हरा" - }, - "hd": { - "message": "HD" - }, - "hdThumbnail": { - "message": "एच डी थंबनेल" - }, - "header": { - "message": "हैडर" - }, - "hidden": { - "message": "छिपा हुआ" - }, - "hiddenOnVideoPage": { - "message": "वीडियो पेज पर छिपा हुआ" - }, - "hideAnimatedThumbnails": { - "message": "वीडियो पेज पर छिपा हुआ" - }, - "hideAnnotations": { - "message": "एनोटेशन छुपाएं" - }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, - "hideCards": { - "message": "पत्ते छिपाओ" - }, - "hideCountryCode": { - "message": "देश कोड छुपाएं" - }, - "hideDate": { - "message": "तारीख छुपाएं" - }, - "hideDetailButton": { - "message": "Hide Detail Button" - }, - "hideDetails": { - "message": "जानकारी छिपाएँ" - }, - "hideEndscreen": { - "message": "अंत स्क्रीन छिपाएँ" - }, - "hideFeaturedContent": { - "message": "विशेषताओं को छिपाएँ" - }, - "hideFooter": { - "message": "पाद छिपाएँ" - }, - "hideGradientBottom": { - "message": "ग्रेडिएंट बॉटम छुपाएं" - }, - "hidePlayerControlsBar": { - "message": "Hide player controls bar" - }, - "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" - }, - "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" - }, - "hidePlaylist": { - "message": "प्लेलिस्ट छिपाएं" - }, - "hideRightButtons": { - "message": "दाएं बटन छुपाएं" - }, - "hideScrollForDetails": { - "message": "छिपाएँ «विवरण के लिए स्क्रॉल»" - }, - "hideSkipOverlay": { - "message": "स्किप ओवरले छुपाएं" - }, - "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" - }, - "hideThumbnails": { - "message": "Hide thumbnails" - }, - "hideViewsCount": { - "message": "व्यू काउंट छिपाएं" - }, - "hideVoiceSearchButton": { - "message": "ध्वनि खोज बटन छुपाएं" - }, - "high": { - "message": "High" - }, - "history": { - "message": "इतिहास" - }, - "home": { - "message": "घर" - }, - "hover": { - "message": "होवर" - }, - "hoverOnVideoPage": { - "message": "वीडियो पेज पर होवर" - }, - "howLongAgoTheVideoWasUploaded": { - "message": "वीडियो कितनी देर पहले अपलोड किया गया था" - }, - "icons": { - "message": "प्रतीक" - }, - "iconsOnly": { - "message": "केवल प्रतीक" - }, - "importSettings": { - "message": "सेटिंग आयात करना" - }, - "improveLogo": { - "message": "लोगो सुधारो" - }, - "improvedtubeButtons": { - "message": "ImprovedTube buttons" - }, - "improvedtubeIconOnYoutube": { - "message": "यूट्यूब पर बेहतर आइकन" - }, - "improvedtubeLanguage": { - "message": "ImprovedTube भाषा" - }, - "improvedtubeVersion": { - "message": "ImprovedTube संस्करण" - }, - "increasePlaybackSpeed": { - "message": "प्लेबैक स्पीड बढ़ाएं" - }, - "increaseVolume": { - "message": "ध्वनि बढ़ाएं" - }, - "indigo": { - "message": "नील" - }, - "items": { - "message": "आइटम" - }, - "language": { - "message": "Language" - }, - "languages": { - "message": "बोली" - }, - "legacyYoutube": { - "message": "विरासत यूट्यूब" - }, - "library": { - "message": "Library" - }, - "light": { - "message": "हलका" - }, - "lightBlue": { - "message": "हल्का नीला" - }, - "lightGreen": { - "message": "हल्का हरा" - }, - "like": { - "message": "पसंद" - }, - "likeAndDislike": { - "message": "Like and Dislike " - }, - "liked": { - "message": "Liked" - }, - "lime": { - "message": "पीला हरा रंग" - }, - "limitPageWidth": { - "message": "पृष्ठ की चौड़ाई सीमित करें" - }, - "list": { - "message": "सूची" - }, - "liveChat": { - "message": "सीधी बातचीत" - }, - "liveChatType": { - "message": "लाइव चैट प्रकार" - }, - "location": { - "message": "स्थान" - }, - "loop": { - "message": "Loop" - }, - "loudnessNormalization": { - "message": "जोर से सामान्य होना" - }, - "low": { - "message": "Low" - }, - "markWatchedVideos": { - "message": "चिह्नित वीडियो देखे गए" - }, - "medium": { - "message": "Medium" - }, - "mixer": { - "message": "मिक्सर" - }, - "more": { - "message": "More" - }, - "moveSidebarLeft": { - "message": "Move sidebar left" - }, - "moveThumbnailsRight": { - "message": "Move thumbnails right" - }, - "myColors": { - "message": "मेरे रंग" - }, - "name": { - "message": "नाम" - }, - "nativeMiniPlayer": { - "message": "मूल निवासी मिनी प्लेयर" - }, - "new": { - "message": "नया" - }, - "nextVideo": { - "message": "अगला वीडियो" - }, - "night": { - "message": "रात" - }, - "noActiveFeatures": { - "message": "कोई सक्रिय सुविधाएँ नहीं" - }, - "noOpenVideoTabs": { - "message": "कोई खुला वीडियो टैब नहीं" - }, - "none": { - "message": "कोई नहीं" - }, - "normal": { - "message": "साधारण" - }, - "ok": { - "message": "Ok" - }, - "old": { - "message": "पुराना" - }, - "onAllVideos": { - "message": "सभी वीडियो पर" - }, - "onSubscribedChannels": { - "message": "सदस्यता प्राप्त चैनलों पर" - }, - "onlyActiveOnYoutube": { - "message": "केवल यूट्यूब पर सक्रिय है" - }, - "onlyOnePlayerInstancePlaying": { - "message": "केवल एक प्लेयर का चल रहा है" - }, - "openPopupPlayer": { - "message": "Open video/playlist in a new window" - }, - "orange": { - "message": "नारंगी रंग" - }, - "os": { - "message": "ओ एस" - }, - "other": { - "message": "अन्य" - }, - "outline": { - "message": "Outline" - }, - "overlay": { - "message": "Overlay" - }, - "permissions": { - "message": "अनुमतियां" - }, - "pictureInPicture": { - "message": "चित्र में चित्र" - }, - "pink": { - "message": "गुलाबी" - }, - "plain": { - "message": "सादा" - }, - "platform": { - "message": "मंच" - }, - "playAllButton": { - "message": "\"Play all\" button" - }, - "playPause": { - "message": "प्ले / ठहराव" - }, - "playbackSpeed": { - "message": "प्लेबैक स्पीड" - }, - "player": { - "message": "प्लेयर" - }, - "playerColor": { - "message": "प्लेयर रंग" - }, - "playerSize": { - "message": "प्लेयर आकार" - }, - "playlist": { - "message": "प्लेलिस्ट" - }, - "playlists": { - "message": "प्लेलिस्ट" - }, - "popupPlayer": { - "message": "पॉप अप प्लेयर" - }, - "popupWindowButtons": { - "message": "popup_window_buttons" - }, - "position": { - "message": "स्थान" - }, - "pressAnyKeyOrScroll": { - "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" - }, - "pressAnyKeyOrUseMouseWheel": { - "message": "किसी भी कुंजी को दबाएं या माउस व्हील का उपयोग करें।" - }, - "previousVideo": { - "message": "पिछला वीडियो" - }, - "primaryColor": { - "message": "प्राथमिक रंग" - }, - "purple": { - "message": "बैंगनी" - }, - "quality": { - "message": "गुणवत्ता" - }, - "raised": { - "message": "Raised" - }, - "ram": { - "message": "RAM" - }, - "rateMe": { - "message": "Rate me" - }, - "rateUs": { - "message": "हमें रेटिंग दें" - }, - "red": { - "message": "लाल" - }, - "redDislikeButton": { - "message": "नापसंद बटन लाल रंग दिखाएं" - }, - "relatedVideos": { - "message": "संबंधित वीडियो" - }, - "remote": { - "message": "Play on TV" - }, - "removeRelatedSearchResults": { - "message": "संबंधित खोज परिणाम निकालें" - }, - "repeat": { - "message": "दोहराना" - }, - "report": { - "message": "Report" - }, - "reset": { - "message": "रीसेट" - }, - "resetAllSettings": { - "message": "सभी सेटिंग्स को रीसेट" - }, - "resetAllShortcuts": { - "message": "सभी शॉर्टकट रीसेट करें" - }, - "reverse": { - "message": "उलटना" - }, - "rotate": { - "message": "घुमाएँ" - }, - "save": { - "message": "सहेजें" - }, - "saveAs": { - "message": "के रूप रक्षित करें" - }, - "schedule": { - "message": "अनुसूची" - }, - "screen": { - "message": "स्क्रीन" - }, - "screenshot": { - "message": "स्क्रीनशॉट" - }, - "scrollBar": { - "message": "Scroll Bar" - }, - "sd": { - "message": "SD" - }, - "search": { - "message": "खोज" - }, - "searchBarOnly": { - "message": "केवल बार खोजें" - }, - "seekBackward10Seconds": { - "message": "पिछड़े 10 सेकंड की तलाश करें" - }, - "seekForward10Seconds": { - "message": "पिछड़े 10 सेकंड की तलाश करें" - }, - "seekNextChapter": { - "message": "अगले अध्याय पर चलें" - }, - "seekPreviousChapter": { - "message": "पिछले अध्याय पर चलें" - }, - "settings": { - "message": "समायोजन" - }, - "settingsSuccessfullyImported": { - "message": "सेटिंग्स सफलतापूर्वक आयात की गईं" - }, - "share": { - "message": "Share" - }, - "shortcuts": { - "message": "शॉर्टकट" - }, - "showCardsOnMouseHover": { - "message": "माउस होवर पर कार्ड दिखाएं" - }, - "showChannelVideosCount": { - "message": "चैनल वीडियो काउंट दिखाएं" - }, - "showLess": { - "message": "कम दिखाएं" - }, - "showMore": { - "message": "और दिखाएं" - }, - "showRemainingDuration": { - "message": "वीडियो की बची हुई अवधि दिखाएं" - }, - "shuffle": { - "message": "मिश्रण" - }, - "sidebar": { - "message": "साइडबार" - }, - "spacebar": { - "message": "स्पेस बार" - }, - "squaredUserImages": { - "message": "चुकता उपयोगकर्ता चित्र" - }, - "static": { - "message": "स्थिर" - }, - "statsForNerds": { - "message": "डेवलपर के लिए आँकड़े दिखाएँ" - }, - "step": { - "message": "चरण" - }, - "stop": { - "message": "रुकें" - }, - "style": { - "message": "अंदाज" - }, - "styles": { - "message": "शैलियाँ" - }, - "subscribe": { - "message": "Subscribe" - }, - "subscriptions": { - "message": "सदस्यता" - }, - "subtitles": { - "message": "उपशीर्षक" - }, - "sunset": { - "message": "सूर्यास्त" - }, - "sunsetToSunrise": { - "message": "सूर्योदय से सूर्यास्त" - }, - "systemPeferenceDark": { - "message": "सिस्टम प्राथमिकताएं: अंधेरा" - }, - "systemPeferenceLight": { - "message": "सिस्टम वरीयताएँ: प्रकाश" - }, - "teal": { - "message": "टील रंग" - }, - "textColor": { - "message": "लिखावट का रंग" - }, - "thanks": { - "message": "Thanks" - }, - "themes": { - "message": "विषय-वस्तु" - }, - "thisWillRemoveAllCookies": { - "message": "यह सभी कुकीज़ को हटा देगा।" - }, - "thisWillRemoveAllWatchedVideos": { - "message": "This will remove all watched videos." - }, - "thisWillRemoveAllYouTubeCookies": { - "message": "यह सभी यूट्यूब कुकीज़ को हटा देगा।" - }, - "thisWillResetAllSettings": { - "message": "यह सभी सेटिंग्स को रीसेट कर देगा।" - }, - "thisWillResetAllShortcuts": { - "message": "यह सभी शॉर्टकट रीसेट कर देगा।" - }, - "thumbnails": { - "message": "थंबनेल" - }, - "thumbnailsQuality": { - "message": "Thumbnails Quality" - }, - "timeFrom": { - "message": "से समय" - }, - "timeTo": { - "message": "समय पर" - }, - "todayAt": { - "message": "आज इस समय" - }, - "toggleAutoplay": { - "message": "Toggle autoplay" - }, - "toggleCards": { - "message": "Toggle cards" - }, - "toggleControls": { - "message": "Toggle controls" - }, - "topChat": { - "message": "शीर्ष चैट" - }, - "trackWatchedVideos": { - "message": "Track watched videos" - }, - "trailerAutoplay": { - "message": "ट्रेलर ऑटोप्ले" - }, - "translations": { - "message": "अनुवाद" - }, - "transparentBackground": { - "message": "पारदर्शी पृष्ठभूमि" - }, - "trending": { - "message": "रुझान" - }, - "tryToReloadThePage": { - "message": "पृष्ठ को पुनः लोड करने का प्रयास करें" - }, - "type": { - "message": "टाइप" - }, - "upNextAutoplay": { - "message": "अगले ऑटोप्ले पर" - }, - "use24HourFormat": { - "message": "24-घंटे के प्रारूप का उपयोग करें" - }, - "version": { - "message": "संस्करण" - }, - "video": { - "message": "वीडियो" - }, - "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "श्रेणी का नाम प्राप्त करने के लिए वीडियो विवरण का विस्तार किया जाएगा।" - }, - "videoFormats": { - "message": "वीडियो प्रारूप" - }, - "videos": { - "message": "वीडियो" - }, - "viewMode": { - "message": "View Mode" - }, - "volume": { - "message": "ध्वनि" - }, - "watchLater": { - "message": "बाद में देखना" - }, - "watchTime": { - "message": "समय देखें" - }, - "whenTabIsChanged": { - "message": "जब टैब बदला जाता है" - }, - "white": { - "message": "सफेद" - }, - "windowColor": { - "message": "विंडो का रंग" - }, - "windowOpacity": { - "message": "विंडो की अस्पष्टता" - }, - "yellow": { - "message": "पीला" - }, - "youtubeHeaderLeft": { - "message": "यूट्यूब हैडर (बाएं)" - }, - "youtubeHeaderRight": { - "message": "यूट्यूब हैडर (दाएं)" - }, - "youtubeHomePage": { - "message": "यूट्यूब होम पेज" - }, - "youtubeLanguage": { - "message": "यूट्यूब भाषा" - }, - "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "यूट्यूब h.264 कोडेक के लिए वीडियो की गुणवत्ता 1080 पी तक सीमित है" - } -} \ No newline at end of file From 23cf46103b86ce51ebb303d6a7ebd3622672873a Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Sun, 9 Oct 2022 16:45:02 +0300 Subject: [PATCH 0642/1224] Options page, etc. --- {ui => assets}/fonts/Roboto-Light.ttf | Bin {ui => assets}/fonts/Roboto-Medium.ttf | Bin {ui => assets}/fonts/Roboto-Regular.ttf | Bin {icons => assets/icons}/128.png | Bin {icons => assets/icons}/16.png | Bin {icons => assets/icons}/32.png | Bin {icons => assets/icons}/48.png | Bin assets/satus/satus.css | 2066 +++++ assets/satus/satus.js | 3371 ++++++++ background.js | 34 - manifest.json | 37 +- options-page/functions.js | 161 + options-page/index.html | 48 + options-page/index.js | 58 + .../skeleton-parts/active-features.js | 134 + options-page/skeleton-parts/analyzer.js | 219 + options-page/skeleton-parts/appearance.js | 547 ++ options-page/skeleton-parts/blacklist.js | 213 + options-page/skeleton-parts/channel.js | 80 + options-page/skeleton-parts/general.js | 1296 +++ options-page/skeleton-parts/mixer.js | 127 + options-page/skeleton-parts/night-mode.js | 96 + options-page/skeleton-parts/player.js | 1077 +++ options-page/skeleton-parts/playlist.js | 71 + options-page/skeleton-parts/search.js | 206 + options-page/skeleton-parts/settings.js | 855 ++ options-page/skeleton-parts/shortcuts.js | 372 + options-page/skeleton-parts/themes.js | 177 + options-page/skeleton.js | 194 + options-page/styles/analyzer.css | 41 + options-page/styles/appearance.css | 160 + options-page/styles/blacklist.css | 22 + options-page/styles/fonts.css | 40 + options-page/styles/header.css | 28 + options-page/styles/home.css | 115 + options-page/styles/mixer.css | 110 + options-page/styles/night-mode.css | 8 + options-page/styles/player.css | 8 + options-page/styles/search.css | 104 + options-page/styles/settings.css | 31 + options-page/styles/themes.css | 450 + ui/options.html | 21 - ui/page.js | 32 - ui/popup.html | 20 - ui/satus/satus.css | 1 - ui/satus/satus.js | 1 - ui/script.js | 7303 ----------------- ui/styles.css | 1295 --- 48 files changed, 12491 insertions(+), 8738 deletions(-) rename {ui => assets}/fonts/Roboto-Light.ttf (100%) rename {ui => assets}/fonts/Roboto-Medium.ttf (100%) rename {ui => assets}/fonts/Roboto-Regular.ttf (100%) rename {icons => assets/icons}/128.png (100%) rename {icons => assets/icons}/16.png (100%) rename {icons => assets/icons}/32.png (100%) rename {icons => assets/icons}/48.png (100%) create mode 100644 assets/satus/satus.css create mode 100644 assets/satus/satus.js create mode 100644 options-page/functions.js create mode 100644 options-page/index.html create mode 100644 options-page/index.js create mode 100644 options-page/skeleton-parts/active-features.js create mode 100644 options-page/skeleton-parts/analyzer.js create mode 100644 options-page/skeleton-parts/appearance.js create mode 100644 options-page/skeleton-parts/blacklist.js create mode 100644 options-page/skeleton-parts/channel.js create mode 100644 options-page/skeleton-parts/general.js create mode 100644 options-page/skeleton-parts/mixer.js create mode 100644 options-page/skeleton-parts/night-mode.js create mode 100644 options-page/skeleton-parts/player.js create mode 100644 options-page/skeleton-parts/playlist.js create mode 100644 options-page/skeleton-parts/search.js create mode 100644 options-page/skeleton-parts/settings.js create mode 100644 options-page/skeleton-parts/shortcuts.js create mode 100644 options-page/skeleton-parts/themes.js create mode 100644 options-page/skeleton.js create mode 100644 options-page/styles/analyzer.css create mode 100644 options-page/styles/appearance.css create mode 100644 options-page/styles/blacklist.css create mode 100644 options-page/styles/fonts.css create mode 100644 options-page/styles/header.css create mode 100644 options-page/styles/home.css create mode 100644 options-page/styles/mixer.css create mode 100644 options-page/styles/night-mode.css create mode 100644 options-page/styles/player.css create mode 100644 options-page/styles/search.css create mode 100644 options-page/styles/settings.css create mode 100644 options-page/styles/themes.css delete mode 100644 ui/options.html delete mode 100644 ui/page.js delete mode 100644 ui/popup.html delete mode 100644 ui/satus/satus.css delete mode 100644 ui/satus/satus.js delete mode 100644 ui/script.js delete mode 100644 ui/styles.css diff --git a/ui/fonts/Roboto-Light.ttf b/assets/fonts/Roboto-Light.ttf similarity index 100% rename from ui/fonts/Roboto-Light.ttf rename to assets/fonts/Roboto-Light.ttf diff --git a/ui/fonts/Roboto-Medium.ttf b/assets/fonts/Roboto-Medium.ttf similarity index 100% rename from ui/fonts/Roboto-Medium.ttf rename to assets/fonts/Roboto-Medium.ttf diff --git a/ui/fonts/Roboto-Regular.ttf b/assets/fonts/Roboto-Regular.ttf similarity index 100% rename from ui/fonts/Roboto-Regular.ttf rename to assets/fonts/Roboto-Regular.ttf diff --git a/icons/128.png b/assets/icons/128.png similarity index 100% rename from icons/128.png rename to assets/icons/128.png diff --git a/icons/16.png b/assets/icons/16.png similarity index 100% rename from icons/16.png rename to assets/icons/16.png diff --git a/icons/32.png b/assets/icons/32.png similarity index 100% rename from icons/32.png rename to assets/icons/32.png diff --git a/icons/48.png b/assets/icons/48.png similarity index 100% rename from icons/48.png rename to assets/icons/48.png diff --git a/assets/satus/satus.css b/assets/satus/satus.css new file mode 100644 index 000000000..7ad0f9faf --- /dev/null +++ b/assets/satus/satus.css @@ -0,0 +1,2066 @@ +/*-------------------------------------------------------------- +# SCROLLBAR +--------------------------------------------------------------*/ + +:where([class^='satus'])::-webkit-scrollbar { + width: 4px; +} + +:where([class^='satus'])::-webkit-scrollbar:hover { + width: 8px; +} + +:where([class^='satus'])::-webkit-scrollbar-thumb { + background: rgba(var(--satus-light), .2); +} + +:where([class^='satus'])::-webkit-scrollbar-thumb:hover { + background: rgba(var(--satus-light), .3); +} +/*-------------------------------------------------------------- +# ANIMATIONS +--------------------------------------------------------------*/ + +@keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +@keyframes fadeInLeft { + from { + opacity: 0; + transform: translateX(-100%); + } + to { + opacity: 1; + transform: translateX(0); + } +} + +@keyframes fadeInRight { + from { + opacity: 0; + transform: translateX(100%); + } + to { + opacity: 1; + transform: translateX(0); + } +} + +@keyframes fadeOut { + from { + opacity: 1; + } + to { + opacity: 0; + } +} + +@keyframes fadeOutLeft { + from { + opacity: 1; + transform: translateX(0); + } + to { + opacity: 0; + transform: translateX(-50%); + } +} + +@keyframes fadeOutRight { + from { + opacity: 1; + transform: translateX(0); + } + to { + opacity: 0; + transform: translateX(50%); + } +} + +@keyframes zoomIn { + from { + transform: scale(.8); + opacity: 0; + } + to { + transform: scale(1); + opacity: 1; + } +} + +@keyframes zoomOut { + from { + transform: scale(1); + opacity: 1; + } + to { + transform: scale(.8); + opacity: 0; + } +} +/*-------------------------------------------------------------- +>>> THEMES +--------------------------------------------------------------*/ + +.satus-base { + --satus-light: 0, 20, 82; + --satus-primary: #ff4158; + --satus-alert-background--error: #501616; + --satus-alert-border--error: 1px solid #6f1f1f; + --satus-alert-foreground--error: #d77070; + --satus-alert-background--success: rgb(246, 180, 101, .32); + --satus-alert-border--success: 1px solid rgb(246, 180, 101, .6); + --satus-alert-foreground--success: rgb(184, 115, 30); + --satus-base-background: #f3f4f6; + --satus-base-foreground: #565e76; + --satus-checkbox-background: #f3f4f6; + --satus-checkbox-border: #dcdfe5; + --satus-checkbox-foreground: rgb(255, 255, 255, .96); + --satus-divider: rgba(var(--satus-light), .1); + --satus-header-background: #fff; + --satus-header-foreground: inherit; + --satus-header-shadow: 0 1px 0 #dcdee5; + --satus-layers-background: var(--satus-base-background); + --satus-layers-foreground: inherit; + --satus-section-background: #fff; + --satus-section-border: #dcdee5; + --satus-section-foreground: inherit; + --satus-sidebar-background: #fff; + --satus-sidebar-foreground: inherit; + --satus-sidebar-shadow: #dcdee5; + --satus-modal-foreground: inherit; + --satus-modal-background: #fff; + --satus-modal-shadow: 0 1px 4px #7d86a1; + --satus-tabs-background: rgba(var(--satus-light), .04); + --satus-tabs-foreground: #fff; + --satus-text-field-background: #edf0f2; + --satus-text-field-border: #dcdee5; + --satus-text-field-color: #7d8ba1; + --satus-text-field-selection: rgb(149, 166, 178, .35); + --satus-text-field-cursor: #fa0; + --satus-switch-track: #e1e4ea; + --satus-switch-track--checked: var(--satus-primary); + --satus-switch-thumb: #fff; + --satus-input-text-background: #e8e8e3; + --satus-input-text-border: #d6d6cd; + --satus-input-text-text: #848471; +} + +.satus-base[theme=dark] { + --satus-light: 255, 255, 255; + --satus-primary: #3691bf; + --satus-alert-background--error: #501616; + --satus-alert-border--error: 1px solid #6f1f1f; + --satus-alert-foreground--error: #d77070; + --satus-alert-background--success: #143648; + --satus-alert-border--success: 1px solid #1d4f67; + --satus-alert-foreground--success: #50a4ce; + --satus-base-background: #151528; + --satus-base-foreground: #fafafa; + --satus-header-background: #313172; + --satus-header-shadow: transparent; + --satus-section-background: #232343; + --satus-section-border: #232343; + --satus-modal-background: #313172; + --satus-modal-shadow: 0 1px 4px #22222f; + --satus-switch-track: #52527a; +} +/*-------------------------------------------------------------- +>>> NORMALIZE +--------------------------------------------------------------*/ + +:where([class^='satus']) { + box-sizing: border-box; +} + +:where([class^='satus'])[hidden]:not([hidden='false']) { + display: none; +} + +:where([class^='satus'])[transparent] { + opacity: 0; +} +/*-------------------------------------------------------------- +>>> MODAL +---------------------------------------------------------------- +# Container +# Scrim +# Surface +# Variants + # Vertical menu +--------------------------------------------------------------*/ + + +/*-------------------------------------------------------------- +# CONTAINER +--------------------------------------------------------------*/ + +.satus-modal { + position: fixed; + z-index: 9; + top: 0; + left: 0; + display: flex; + width: 100vw; + height: 100vh; + justify-content: center; + align-items: center; +} + + +/*-------------------------------------------------------------- +# SCRIM +--------------------------------------------------------------*/ + +.satus-modal__scrim { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + animation: fadeIn 150ms linear forwards; + opacity: 0; + background: rgba(0, 0, 0, .16); + backdrop-filter: blur(8px); +} + +.satus-modal--closing .satus-modal__scrim { + animation: fadeOut 70ms linear forwards; +} + + +/*-------------------------------------------------------------- +# SURFACE +--------------------------------------------------------------*/ + +.satus-modal__surface { + display: flex; + overflow-y: auto; + flex-direction: column; + box-sizing: border-box; + width: 95%; + min-width: 240px; + max-width: 560px; + max-height: 80%; + margin: 8px; + padding: 12px 16px; + transform: scale(.8); + animation: zoomIn 150ms linear forwards; + animation-delay: 20ms; + opacity: 0; + color: var(--satus-modal-foreground); + border-radius: 3px; + background-color: var(--satus-modal-background); + box-shadow: var(--satus-modal-shadow); +} + +.satus-modal--closing .satus-modal__surface { + animation: zoomOut 70ms linear forwards; +} + +.satus-modal__content { + margin: 6px 0 12px; +} + +.satus-section--actions { + justify-content: flex-end; +} +.satus-section--actions > *:not(:first-child) { + margin-left: 8px; +} + + +/*-------------------------------------------------------------- +# VARIANTS +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# VERTICAL MENU +--------------------------------------------------------------*/ + +.satus-modal--vertical-menu .satus-modal__surface { + position: absolute; + top: 8px; + right: 8px; + left: auto; + min-width: 180px; + max-width: 180px; + margin: 0; + padding: 8px 0; + transform-origin: right top; +} + +.satus-modal--vertical-menu .satus-modal__surface>[class^='satus']:where(:not(.satus-divider)) { + height: 36px; + padding: 0 16px; + border-radius: 0; +} + +.satus-modal--vertical-menu .satus-modal__surface>.satus-span { + font-size: 13px; + font-weight: 500; + margin: 6px 0; + padding: 0 12px; + height: auto; +} + +.satus-modal--vertical-menu .satus-modal__surface>.satus-tabs { + margin: 0 12px; + border-radius: 3px; + height: 26px; + padding: 0; +} + +.satus-modal--vertical-menu .satus-select svg, +.satus-modal--vertical-menu .satus-button svg { + margin: 0 14px 0 0; + opacity: .64; + flex: 0 0 18px; +} + +.satus-modal--vertical-menu .satus-button .satus-span { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.satus-modal--vertical-menu .satus-switch:hover { + cursor: pointer; + + background-color: rgba(var(--satus-light), .06); +} + +.satus-modal--vertical-menu .satus-switch:focus { + background-color: rgba(var(--satus-light), .08); +} +/*-------------------------------------------------------------- +>>> GRID +--------------------------------------------------------------*/ + +.satus-grid { + display: flex; + align-items: stretch; + height: 100%; + padding: 8px; +} +/*-------------------------------------------------------------- +>>> TEXT FIELD +---------------------------------------------------------------- +# Parts + # Container + # Input + # +# Syntax highlighting + # Regular expression +--------------------------------------------------------------*/ + +.satus-text-field { + display: flex; + + min-width: 240px; + height: 36px; + + color: var(--satus-text-field-foreground, inherit); + border: 1px solid var(--satus-text-field-border); + border-radius: 4px; + background: var(--satus-text-field-background); + + align-items: center; + justify-content: space-between; +} + +.satus-text-field__container { + position: relative; + + overflow: hidden; + + height: 100%; + + flex: 1; +} + +.satus-text-field[line-numbers=false] .satus-text-field__container { + margin-left: 8px; +} + +.satus-text-field__textarea, +.satus-text-field__input { + font: inherit; + + position: absolute; + z-index: 9; + top: 0; + left: 0; + + overflow: auto; + + width: 100%; + min-width: 0; + max-width: none; + height: 100%; + min-height: 0; + max-height: none; + margin: 0; + padding: 0 12px; + + white-space: pre; + + opacity: 0; + color: inherit; + border: none; + border-radius: 4px; + outline: none; + + appearance: none; + overflow-wrap: normal; +} + +.satus-text-field__display { + position: absolute; + top: 0; + left: 0; + + display: flex; + + width: 100%; + height: 100%; +} + +.satus-text-field__line-numbers { + padding: 0 12px 0 0; + + opacity: .5; +} + +.satus-text-field__line-numbers>span { + font-size: inherit; + + display: block; + + width: 100%; + + text-align: right; +} + +.satus-text-field__pre { + font: inherit; + + display: flex; + + margin: 0; +} + +.satus-text-field__hidden-value { + font: inherit; + + position: absolute; + + overflow: auto; + + white-space: pre; + pointer-events: none; + + opacity: 0; + + overflow-wrap: normal; +} + +.satus-text-field__selection { + position: absolute; + top: 0; + left: 0; + + display: none; + + width: 0; + height: 22px; + margin: 6px 12px; + + border: 1px solid var(--satus-text-field-selection); + border-radius: 3px; + background: var(--satus-text-field-selection); +} + +.satus-text-field__cursor { + position: absolute; + top: 0; + left: 0; + + display: none; + + width: 2px; + height: 22px; + margin: -3px 0 0; + + animation: blink 1s step-end 8; + + background: var(--satus-text-field-cursor); +} + +.satus-text-field__textarea:focus+.satus-text-field__display>.satus-text-field__cursor, +.satus-text-field__textarea:focus+.satus-text-field__display>.satus-text-field__selection:not([disabled]), +.satus-text-field__input:focus+.satus-text-field__display>.satus-text-field__cursor, +.satus-text-field__input:focus+.satus-text-field__display>.satus-text-field__selection:not([disabled]) { + display: block; +} + +@keyframes blink { + + from, + to { + opacity: 1; + } + + 50% { + opacity: 0; + } +} + + +/*-------------------------------------------------------------- +# MULTILINE: FALSE +--------------------------------------------------------------*/ + +.satus-text-field[multiline=false] .satus-text-field__pre { + align-items: center; +} + +.satus-text-field[multiline=false] .satus-text-field__cursor { + top: calc(50% - 9px); +} + + +/*-------------------------------------------------------------- +# SYNTAX HIGHLIGHTING +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# REGULAR EXPRESSION +--------------------------------------------------------------*/ + +.satus-text-field__pre>.group { + color: #47ff47; + background-color: rgb(71, 255, 71, .16); +} + +.satus-text-field__pre>.character-class { + color: #ffc247; + background-color: rgb(255, 170, 0, .16); +} + +.satus-text-field__pre>.quantifier { + color: #47c2ff; + background-color: rgb(71, 194, 255, .16); +} + +.satus-text-field__pre>.anchor { + color: #47c2ff; + background-color: rgb(71, 194, 255, .16); +} + +.satus-text-field__pre>.metasequence { + color: #47ff47; + background-color: rgb(71, 255, 71, .16); +} + +.satus-text-field__pre>.text { + color: #c4c4d4; + background-color: rgb(196, 196, 212, .16); +} +/*-------------------------------------------------------------- +>>> CHART +--------------------------------------------------------------*/ + +.satus-chart { + font-size: 90%; + + position: relative; + + height: 128px; + margin: 4px 12px; + + color: rgba(var(--satus-light), .32); + border: 1px dashed rgba(var(--satus-light), .2); + border-top: unset; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +.satus-chart__labels { + position: absolute; + top: 0; + left: 0; + + display: flex; + + width: 100%; + height: 100%; + + justify-content: space-between; + align-items: stretch; +} + +.satus-chart__section { + padding: 4px; + + flex: 1; +} + +.satus-chart__section:not(:last-child) { + border-right: 1px dashed rgba(var(--satus-light), .2); +} + + +.satus-chart__bars { + position: absolute; + top: 0; + left: 0; + + display: flex; + + width: 100%; + height: 100%; + + justify-content: space-between; + align-items: stretch; +} + +.satus-chart__bar { + display: flex; + flex-direction: column; + + margin: 0 1px; + + flex: 1; + align-items: center; + justify-content: flex-end; +} + +.satus-chart__piece { + width: 100%; +} + +.satus-chart__piece:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} +/*-------------------------------------------------------------- +>>> SELECT +--------------------------------------------------------------*/ + +.satus-select { + position: relative; + + display: flex; + + cursor: pointer; + + align-items: center; + justify-content: space-between; +} + +.satus-select:hover { + background-color: var(--satus-hover); +} + +.satus-select__content { + display: flex; + + flex: 2; + overflow: hidden; + + align-items: center; +} + +.satus-select svg { + width: 20px; + height: 18px; + margin: 0 14px 0 0; + + opacity: .64; +} + +.satus-select__content .satus-span { + overflow: hidden; + + text-overflow: ellipsis; +} + +.satus-select__value { + display: block; + overflow: hidden; + + flex: 1; + margin-left: 8px; + + text-align: right; + text-overflow: ellipsis; + + opacity: .64; +} + +.satus-select select { + font: inherit; + + position: absolute; + z-index: 1; + top: 0; + left: 0; + + width: 100%; + height: 100%; + margin: 0; + padding: inherit; + + cursor: inherit; + + opacity: 0; + border: none; + outline: none; + + appearance: none; +} + +.satus-select:hover { + cursor: pointer; + + background-color: rgba(var(--satus-light), .06); +} + +.satus-select:focus { + background-color: rgba(var(--satus-light), .08); +} + +.satus-select select::-webkit-scrollbar { + width: 4px; +} + +.satus-select select::-webkit-scrollbar:hover { + width: 8px; +} + +.satus-select select::-webkit-scrollbar-thumb { + background: rgba(0, 0, 0, .2); +} + +.satus-select select::-webkit-scrollbar-thumb:hover { + background: rgba(0, 0, 0, .3); +} + +.satus-select option { + color: var(--satus-select-text); + background: var(--satus-select-background); +} +/*-------------------------------------------------------------- +>>> DIVIDER +--------------------------------------------------------------*/ + +.satus-divider { + height: 1px; + margin: 16px 0 12px; + background: var(--satus-divider); +} +/*-------------------------------------------------------------- +>>> SECTION +---------------------------------------------------------------- +# Variants + # Align start + # Align end + # Card +# Media +--------------------------------------------------------------*/ + +.satus-section { + display: flex; + + flex-wrap: wrap; +} + + +/*-------------------------------------------------------------- +# ALIGN START +--------------------------------------------------------------*/ + +.satus-section--align-start { + align-items: center; +} + +.satus-section--align-start>*:not(:last-child) { + margin-right: 8px; +} + + +/*-------------------------------------------------------------- +# ALIGN END +--------------------------------------------------------------*/ + +.satus-section--align-end { + align-items: center; + justify-content: flex-end; +} + +.satus-section--align-end>*:not(:first-child) { + margin-left: 8px; +} + + +/*-------------------------------------------------------------- +# CARD +--------------------------------------------------------------*/ + +.satus-section--card { + flex-direction: column; + + max-width: 900px; + margin: 12px; + padding: 8px 0; + + border: 1px solid var(--satus-section-border); + border-radius: 3px; + background: var(--satus-section-background); + color: var(--satus-section-foreground); +} + +.satus-section--transparent-card { + max-width: 900px; + margin: 8px 12px; +} + +.satus-section--card[data-title], +.satus-section--transparent-card[data-title] +{ + position: relative; + + margin-top: 32px; +} + +.satus-section--card[data-title]::before, +.satus-section--transparent-card::before +{ + position: absolute; + top: -8px; + left: 0; + + content: attr(data-title); + transform: translateY(-100%); +} + + +.satus-section--transparent-card > [class^='satus'] { + width: 100%; +} + +.satus-section--card>[class^='satus']:not(.satus-list):not(.satus-section) { + display: flex; + + min-height: 48px; + padding: 8px 12px; + + transition: background-color .18s cubic-bezier(.25, .8, .5, 1); + text-align: left; + + border-radius: 0; + + align-items: center; +} + +.satus-section--card>[class^='satus']:not(.satus-list):not(.satus-section):not(.satus-chart) { + width: 100%; +} + +.satus-section--card>[class^='satus']:not(.satus-chart):not(.satus-list):not(.satus-span):hover { + background-color: rgba(var(--satus-light), .06); +} + +.satus-section--card>.satus-button { + justify-content: flex-start; +} + +.satus-section--card>.satus-button>svg, +.satus-section--card>.satus-select>svg +{ + width: 20px; + margin: 0 14px 0 0; + + color: var(--satus-primary); +} + +.satus-section--card>.satus-span { + display: flex; + + align-items: center; +} + +.satus-section--transparent { + background: unset; + border: unset; + padding: 0; + border-radius: unset; +} + + +/*-------------------------------------------------------------- +# MEDIA +--------------------------------------------------------------*/ + +@media (min-width: 901px) { + .satus-section--card, + .satus-section--transparent-card { + margin-left: auto; + margin-right: auto; + } +} +/*-------------------------------------------------------------- +>>> BASE +--------------------------------------------------------------*/ + +.satus-base { + display: flex; + flex-direction: column; + + width: 100%; + height: 100%; + + color: var(--satus-base-foreground); + background: var(--satus-base-background); +} +/*-------------------------------------------------------------- +>>> ALERT +---------------------------------------------------------------- +# Media +--------------------------------------------------------------*/ + +.satus-alert { + display: flex; + + max-width: 900px; + min-height: 48px; + margin: 12px; + padding: 8px 12px; + + border-radius: 3px; + + align-items: center; +} + +.satus-alert--error { + color: var(--satus-alert-foreground--error); + border: var(--satus-alert-border--error); + background: var(--satus-alert-background--error); +} + +.satus-alert--success { + color: var(--satus-alert-foreground--success); + border: var(--satus-alert-border--success); + background: var(--satus-alert-background--success); +} + + +/*-------------------------------------------------------------- +# MEDIA +--------------------------------------------------------------*/ + +@media (min-width: 901px) { + .satus-alert { + margin-right: auto; + margin-left: auto; + } +} +/*-------------------------------------------------------------- +>>> INPUT +--------------------------------------------------------------*/ + +.satus-input[type=text], +.satus-input[type=password] { + font: inherit; + font-size: 16px; + + box-sizing: border-box; + width: 100%; + height: 26px; + margin: 0; + margin: 8px 0; + padding: 0 8px; + + color: var(--satus-input-text-foreground, inherit); + border: none; + border: 1px solid var(--satus-input-text-border); + border-radius: 4px; + outline: none; + background: none; + background-color: var(--satus-input-text-background); + + appearance: none; +} + +.satus-input--error[type=text], +.satus-input--error[type=password] { + outline: 2px solid rgba(255, 0, 0, .32); +} +/*-------------------------------------------------------------- +>>> MAIN +--------------------------------------------------------------*/ + +.satus-main { + display: flex; + flex: 1 +} +/*-------------------------------------------------------------- +>>> SIDEBAR +--------------------------------------------------------------*/ + +.satus-sidebar { + z-index: 1; + display: flex; + flex-direction: column; + width: 56px; + padding: 12px 0; + color: var(--satus-sidebar-foreground); + background: var(--satus-sidebar-background); + box-shadow: 1px 0 0 var(--satus-sidebar-shadow) +} +/*-------------------------------------------------------------- +>>> LAYERS +--------------------------------------------------------------*/ + +.satus-layers { + position: relative; + + overflow: hidden; + + flex: 1; +} + +.satus-layers__layer { + position: absolute; + top: 0; + left: 0; + + overflow: auto; + + width: 100%; + height: 100%; + + color: var(--satus-layers-foreground); + background: var(--satus-layers-background); +} +/*-------------------------------------------------------------- +>>> LIST +--------------------------------------------------------------*/ + +.satus-list { + margin: 0; + + list-style: none; +} + +.satus-list__item { + display: flex; + + min-height: 48px; + padding: 0 16px; + + align-items: center; + justify-content: space-between; +} + +.satus-list__item>*:not(:first-child) { + margin-left: 8px; +} + +.satus-list__item>*:last-child { + font-size: 92%; + + text-align: right; + + opacity: .64; +} +/*-------------------------------------------------------------- +>>> COLOR PICKER: +---------------------------------------------------------------- +# Button +# Modal +--------------------------------------------------------------*/ + + +/*-------------------------------------------------------------- +# BUTTON +--------------------------------------------------------------*/ + +.satus-color-picker { + font-size: inherit; + + position: relative; + + display: flex; + + box-sizing: border-box; + margin: 0; + + cursor: pointer; + + color: inherit; + border: none; + outline: none; + background-color: var(--satus-theme-button); + + justify-content: space-between; + -webkit-tap-highlight-color: transparent; + align-items: center; + -webkit-appearance: none; +} + +.satus-color-picker__value { + width: 22px; + height: 22px; + + border: 2px solid rgba(0, 0, 0, .16); + border-radius: 50%; +} + + +/*-------------------------------------------------------------- +# MODAL +--------------------------------------------------------------*/ + +.satus-modal--color-picker .satus-modal__surface { + padding: 8px; +} + +.satus-color-picker__palette { + position: relative; + + overflow: hidden; + + width: 100%; + height: 256px; + margin: 0 0 4px; + + border-radius: 5px; + background-color: #f00; +} + +.satus-color-picker__palette:before { + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + + background-image: linear-gradient(0deg, black, transparent), linear-gradient(90deg, white, transparent); +} + +.satus-color-picker__cursor { + position: absolute; + + width: 5px; + height: 5px; + + transform: translate(-50%, -50%); + pointer-events: none; + + border: 1px solid #fff; + border-radius: 50%; + box-shadow: 0 0 0 1px #000; +} + +.satus-modal--color-picker .satus-modal__surface .satus-section--color { + margin: 8px 4px; + + align-items: center; +} + +.satus-color-picker__color { + width: 32px; + height: 32px; + margin: 0 16px 0 0; + + border: 2px solid rgba(0, 0, 0, .16); + border-radius: 50%; + background: #f00; +} + +.satus-slider.satus-color-picker__hue { + padding: 0; + + flex: 1; +} + +.satus-color-picker__hue .satus-slider__track-container { + height: 16px; + margin: 0; + + border-radius: 4px; + background-image: linear-gradient(90deg, #f00, #ff2a00, #f50, #ff7f00, #fa0, #ffd400, #ff0, #d4ff00, #af0, #80ff00, #5f0, #2bff00, #0f0, #00ff2b, #0f5, #00ff80, #0fa, #00ffd5, #0ff, #00d4ff, #0af, #007fff, #05f, #002bff, #00f, #2a00ff, #50f, #7f00ff, #a0f, #d400ff, #f0f, #ff00d4, #f0a, #ff0080, #f05, #ff002b, #f00); +} + +.satus-color-picker__hue .satus-slider__track-container::before { + display: none; +} + +.satus-color-picker__hue .satus-slider__track { + background: transparent; +} + +.satus-color-picker__hue .satus-slider__track::after { + width: 16px; + height: 16px; + + background: #fff; + box-shadow: 0 0 4px rgb(0, 0, 0, .64); +} +/*-------------------------------------------------------------- +>>> SPAN +--------------------------------------------------------------*/ + +.satus-span--title { + font-weight: 500; + overflow: hidden; + + white-space: nowrap; + text-overflow: ellipsis; + + flex: 1; +} +/*-------------------------------------------------------------- +>>> BUTTON +---------------------------------------------------------------- +# Base +# Basic +# Icon +--------------------------------------------------------------*/ + + +/*-------------------------------------------------------------- +# BASE +--------------------------------------------------------------*/ + +.satus-button { + font: inherit; + + position: relative; + + display: inline-flex; + overflow: hidden; + + height: 36px; + padding: 8px; + + transition: background-color .3s cubic-bezier(.25, .8, .5, 1); + + color: inherit; + border: none; + border-radius: 6px; + outline: none; + background: transparent; + + appearance: none; + align-items: center; +} + +.satus-button:hover { + cursor: pointer; + + background-color: rgba(var(--satus-light), .06); +} + +.satus-button:focus { + background-color: rgba(var(--satus-light), .08); +} + +.satus-button svg { + width: 100%; + max-width: 24px; + height: 100%; + max-height: 24px; +} + + +/*-------------------------------------------------------------- +# BASIC +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# ICON +--------------------------------------------------------------*/ + +.satus-button--icon { + width: 40px; + height: 40px; + + border-radius: 50%; +} + +.satus-button--icon svg { + width: 24px; + height: 24px; +} +/*-------------------------------------------------------------- +>>> HEADER +--------------------------------------------------------------*/ + +.satus-header { + z-index: 1; + + display: flex; + + height: 56px; + padding: 0 12px; + + color: var(--satus-header-foreground); + background: var(--satus-header-background); + box-shadow: var(--satus-header-shadow); + + justify-content: space-between; + align-items: center; +} +/*-------------------------------------------------------------- +>>> RADIO +--------------------------------------------------------------*/ + +.satus-radio { + position: relative; + display: flex; +} + +.satus-radio__input { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0; + margin: 0; + z-index: 9; +} + +.satus-radio__content { + flex: 1; + padding: 0 12px; +} + +.satus-radio__i { + width: 16px; + height: 16px; + border: 1px solid rgba(var(--satus-light),.64); + border-radius: 50%; + transition: 200ms; +} + +.satus-radio__input + .satus-radio__i::before { + width: 8px; + height: 8px; + margin: 3px; + border-radius: 50%; + background: var(--satus-primary); + content: ''; + display: block; + transform: scale(0); + transition: 200ms; +} + +.satus-radio__input:checked + .satus-radio__i { + border-color: var(--satus-primary); +} + +.satus-radio__input:checked + .satus-radio__i::before { + background: var(--satus-primary); + transform: scale(1); +} +/*-------------------------------------------------------------- +>>> SLIDER +--------------------------------------------------------------*/ + +.satus-slider { + display: flex; + + flex-wrap: wrap; +} + +.satus-slider__content { + width: 100%; + display: flex; + justify-content: space-between; +} + +.satus-slider__input[type='text'] { + appearance: none; + background: transparent; + border: none; + color: inherit; + font: inherit; + padding: 0; + margin: 0; + outline: none; + width: 64px; + text-align: right; +} + +.satus-slider__track-container { + position: relative; + + width: 100%; + height: 20px; + margin: 10px 0 -2px; +} + +.satus-slider__track-container::before { + position: absolute; + top: calc(50% - 1px); + left: 0; + + width: 100%; + height: 2px; + + content: ''; + + opacity: .24; + background: var(--satus-primary); +} + +.satus-slider__input[type='range'] { + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + margin: 0; + + opacity: 0; +} + +.satus-slider__track { + position: absolute; + top: calc(50% - 1px); + left: 0; + + width: 0; + height: 2px; + + background: var(--satus-primary); + pointer-events: none; +} + +.satus-slider__track::before { + position: absolute; + top: 50%; + right: 0; + transform: translate(50%, -50%); + display: block; + width: 16px; + height: 16px; + content: ''; + transition: width 200ms, height 200ms, opacity 200ms; + opacity: 0; + border-radius: 50%; + background: var(--satus-primary); +} + +.satus-slider__input:focus + .satus-slider__track::before { + width: 24px; + height: 24px; + opacity: .16; +} + +.satus-slider__input:active + .satus-slider__track::before { + width: 26px; + height: 26px; + opacity: .16; +} + +.satus-slider__track::after { + position: absolute; + top: 50%; + right: 0; + transform: translate(50%, -50%); + + width: 10px; + height: 10px; + + content: ''; + + border-radius: 50%; + background: var(--satus-primary); + pointer-events: none; + transition: width 200ms, height 200ms, opacity 200ms; +} + +.satus-slider__input:active + .satus-slider__track::after +{ + width: 12px; + height: 12px; +} + + + + + +.satus-slider--row { + flex-wrap: nowrap; + justify-content: space-between; +} + +.satus-slider--row .satus-slider__track-container { + margin: 0 0 -2px 12px; + max-width: 50%; +} +/*-------------------------------------------------------------- +>>> TABS +--------------------------------------------------------------*/ + +.satus-tabs { + position: relative; + + display: flex; + + border: 2px solid var(--satus-tabs-background); + border-radius: 4px; + background: var(--satus-tabs-background); +} + +.satus-tabs::before { + position: absolute; + top: 0; + left: calc(calc(100% / var(--satus-tabs-count)) * var(--satus-tabs-current)); + + width: calc(100% / var(--satus-tabs-count)); + height: 100%; + + content: ''; + transition: left .25s; + + border-radius: 3px; + background: var(--satus-tabs-foreground); +} + +.satus-tabs__button { + font: inherit; + + position: relative; + z-index: 1; + + overflow: hidden; + + margin: 0; + padding: 0 8px; + + text-overflow: ellipsis; + + color: inherit; + border: none; + border-radius: 3px; + outline: none; + background: transparent; + + flex: 1; + appearance: none; +} +/*-------------------------------------------------------------- +>>> SHORTCUT: +---------------------------------------------------------------- +# +--------------------------------------------------------------*/ + +.satus-shortcut__value { + font-size: 11px; + + display: flex; + + margin-left: 16px; + + text-transform: uppercase; + + align-items: center; + flex: 1; + justify-content: flex-end; +} + +.satus-shortcut__actions { + display: flex; + + justify-content: flex-end; +} + +.satus-shortcut__actions .satus-button { + height: 32px; + margin: 8px 4px 0; + + border-radius: 8px; + background: rgba(0, 0, 0, .15); +} + +.satus-shortcut__actions .satus-button:hover { + background: rgba(0, 0, 0, .25); +} + +.satus-shortcut__primary { + display: flex; + + height: 64px; + margin: 0 0 12px; + padding: 16px; + + border-radius: 3px; + background: rgba(0, 0, 0, .16); + + align-items: center; +} + +.satus-shortcut__key { + display: flex; + + min-width: 32px; + height: 32px; + padding: 4px 8px; + + border-radius: 4px; + background: #fff; + box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); + + align-items: center; + justify-content: center; +} + +.satus-shortcut__value>.satus-shortcut__key { + font-size: 12px; + + min-width: 24px; + height: 24px; +} + +.satus-shortcut__plus { + position: relative; + + width: 12px; + height: 12px; + margin: 8px; +} + +.satus-shortcut__plus::before { + position: absolute; + top: 0; + left: 5px; + + width: 2px; + height: 12px; + + content: ''; + + background-color: #aaa; +} + +.satus-shortcut__plus::after { + position: absolute; + top: 5px; + left: 0; + + width: 12px; + height: 2px; + + content: ''; + + background-color: #aaa; +} + +.satus-shortcut__mouse { + position: relative; + + display: flex; + + width: 28px; + height: 36px; + + border-radius: 50%; + border-top-left-radius: 12px; + border-top-right-radius: 12px; + background: #fff; + box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); +} + +.satus-shortcut__value>.satus-shortcut__mouse { + width: 22px; + height: 28px; +} + +.satus-shortcut__mouse>div { + position: absolute; + top: 0; + left: calc(50% - 1px); + + width: 2px; + height: 11px; + + border-radius: 2px; + background: #ccc; +} + +.satus-shortcut__mouse::before { + position: absolute; + top: -16%; + right: 14%; + + width: 2px; + height: 60%; + + content: ''; + + background: #f96754; +} + +.satus-shortcut__mouse.false::before { + top: -6%; +} + +.satus-shortcut__mouse.false::after { + position: absolute; + top: -20%; + right: calc(14% - 4px); + + width: 0; + height: 0; + + content: ''; + + border-right: 5px solid transparent; + border-bottom: 8px solid #f96754; + border-left: 5px solid transparent; +} + +.satus-shortcut__mouse.true::after { + position: absolute; + top: 40%; + right: calc(14% - 4px); + + width: 0; + height: 0; + + content: ''; + + border-top: 8px solid #f96754; + border-right: 5px solid transparent; + border-left: 5px solid transparent; +} + +.satus-shortcut__mouse.click::before { + position: absolute; + top: 0; + left: -1px; + + width: 10px; + height: 10px; + + content: ''; + + border-radius: 50%; + background: #f96754; +} + +.satus-shortcut__mouse.middle::before { + position: absolute; + z-index: 1; + top: 0; + left: 50%; + + width: 10px; + height: 10px; + + content: ''; + transform: translateX(-50%); + + border-radius: 50%; + background: #f96754; +} + +.satus-shortcut__mouse.context::before { + position: absolute; + top: 0; + left: 15px; + + width: 10px; + height: 10px; + + content: ''; + + border-radius: 50%; + background: #f96754; +} + +.satus-section_shortcut { + width: 100%; + margin: 8px 0 0; + + justify-content: flex-end; +} + +.satus-button_shortcut { + font-weight: 500; + + overflow: hidden; + + height: 28px; + min-height: 28px; + margin-right: 2px; + padding: 4px 8px; + + text-transform: uppercase; + + color: #f96754; + border-radius: 4px; +} +/*-------------------------------------------------------------- +>>> CHECKBOX +--------------------------------------------------------------*/ + +.satus-checkbox { + position: relative; + + display: flex; + + cursor: pointer; + + align-items: center; +} + +.satus-checkbox__input { + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + margin: 0; + padding: 0; + + opacity: 0; + border: none; + + appearance: none; +} + +.satus-checkbox__checkmark { + position: relative; + + display: flex; + + width: 16px; + min-width: 16px; + height: 16px; + min-height: 16px; + margin: 0 12px 0 0; + + content: ''; + + border: 1px solid var(--satus-checkbox-border); + border-radius: 3px; + background: var(--satus-checkbox-background); +} + +.satus-checkbox[data-value=true] .satus-checkbox__checkmark { + border-color: var(--satus-primary); + background: var(--satus-primary); +} + +.satus-checkbox[data-value=true] .satus-checkbox__checkmark::before { + position: absolute; + top: 3px; + left: 2px; + + width: 8px; + height: 4px; + + content: ''; + transform: rotate(-45deg); + + border: 2px solid var(--satus-checkbox-foreground); + border-top: none; + border-right: none; +} +/*-------------------------------------------------------------- +>>> SWITCH +---------------------------------------------------------------- +# Container +# Track +# Thumb +--------------------------------------------------------------*/ + + +/*-------------------------------------------------------------- +# CONTAINER +--------------------------------------------------------------*/ + +.satus-switch { + font: inherit; + + display: flex; + + transition: background-color 75ms; + + color: inherit; + border: none; + outline: none; + background-color: transparent; + + justify-content: space-between; + align-items: center; +} + +.satus-switch:hover { + cursor: pointer; +} + +.satus-switch__content { + display: flex; + + align-items: center; +} + +.satus-switch__content>svg { + width: 20px; + height: 18px; + margin: 0 14px 0 0; + + opacity: .64; +} + + +/*-------------------------------------------------------------- +# TRACK +--------------------------------------------------------------*/ + +.satus-switch>i { + width: 32px; + height: 18px; + + transition: background-color 150ms; + + border-radius: 18px; + background-color: var(--satus-switch-track); + + flex: 0 0 32px; +} + +.satus-section--card .satus-switch>i { + margin-left: 16px; +} + +.satus-switch[data-value='true']>i { + background-color: var(--satus-switch-track--checked); +} + + +/*-------------------------------------------------------------- +# THUMB +--------------------------------------------------------------*/ + +.satus-switch>i::before { + display: block; + + width: 14px; + height: 14px; + margin: 2px; + + content: ''; + transition: transform 150ms cubic-bezier(.4, 0, .2, 1); + + border-radius: 50%; + background-color: var(--satus-switch-thumb); + + will-change: transform; +} + +.satus-switch[data-value='true']>i::before { + transform: translateX(14px); +} +/*-------------------------------------------------------------- +>>> CONTEXT MENU +--------------------------------------------------------------*/ + +.satus-modal--contextmenu .satus-modal__scrim { + visibility: visible; + + transform: none; + animation: none; + + opacity: 1; + background: none; + + backdrop-filter: none; +} + +.satus-modal--contextmenu .satus-modal__surface { + position: absolute; + + visibility: visible; + + min-width: 200px; + max-width: 200px; + margin: 0; + padding: 4px 0; + + transform: none; + animation: none; + + opacity: 1; + border-radius: 4px; + box-shadow: 0 0 0 1px rgba(var(--satus-light), .1); +} + +.satus-modal--contextmenu .satus-modal__surface>* { + display: flex; + + height: 32px; + padding: 0 16px; + + align-items: center; +} + +.satus-modal--contextmenu .satus-modal__surface .satus-button svg { + width: 20px; + height: 18px; + margin: 0 14px 0 0; + + opacity: .75; + + fill: none; + stroke: var(--satus-primary); + flex: 0 0 20px; +} + +.satus-modal--contextmenu .satus-modal__surface .satus-button .satus-span { + overflow: hidden; + + white-space: nowrap; + text-overflow: ellipsis; +} +/*-------------------------------------------------------------- +>>> SORTABLE +--------------------------------------------------------------*/ + +.satus-sortable__chosen { + color: var(--satus-sortable-text) !important; + background-color: var(--satus-sortable-background) !important; +} + +.satus-sortable__ghost { + position: fixed !important; + z-index: 999 !important; + top: 0 !important; + left: 0 !important; + + pointer-events: none !important; + + opacity: .8 !important; + box-shadow: 0 1px 3px rgb(0, 0, 0, .2), 0 4px 8px rgb(0, 0, 0, .1), inset 0 0 0 1px rgb(0, 0, 0, .16) !important; + + will-change: transform !important; +} diff --git a/assets/satus/satus.js b/assets/satus/satus.js new file mode 100644 index 000000000..5d2f2a12d --- /dev/null +++ b/assets/satus/satus.js @@ -0,0 +1,3371 @@ +/*-------------------------------------------------------------- +>>> CORE +---------------------------------------------------------------- +# Global variable +# Animations duration +# Append +# Attr +# Camelize +# Snakelize +# Class +# Create element +# CSS +# Empty +# Element index +# Events +# Get property +# Is +# On +# Render +# Sort +# Storage + # Clear + # Get + # Import + # Set + # Remove + # On changed +# Localization +# Log +# Text +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# GLOBAL VARIABLE +--------------------------------------------------------------*/ + +var satus = { + components: {}, + events: { + data: {} + }, + locale: { + data: {} + }, + storage: { + data: {}, + type: 'extension' + } +}; + + +/*-------------------------------------------------------------- +# ANIMATION DURATION +--------------------------------------------------------------*/ + +satus.getAnimationDuration = function (element) { + return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; +}; + + +/*-------------------------------------------------------------- +# APPEND +--------------------------------------------------------------*/ + +satus.append = function (child, parent) { + (parent || document.body).appendChild(child); +}; + + +/*-------------------------------------------------------------- +# ATTR +--------------------------------------------------------------*/ + +satus.attr = function (element, attributes) { + if (attributes) { + for (var name in attributes) { + var value = attributes[name]; + + if (satus.isFunction(value)) { + value = value(); + } + + if (element.namespaceURI) { + if (value === false) { + element.removeAttributeNS(null, name); + } else { + element.setAttributeNS(null, name, value); + } + } else { + if (value === false) { + element.removeAttribute(name); + } else { + element.setAttribute(name, value); + } + } + } + } +}; + + +/*-------------------------------------------------------------- +# CAMELIZE +--------------------------------------------------------------*/ + +satus.camelize = function (string) { + var result = ''; + + for (var i = 0, l = string.length; i < l; i++) { + var character = string[i]; + + if (character === '_' || character === '-') { + i++; + + result += string[i].toUpperCase(); + } else { + result += character; + } + } + + return result; +}; + + +/*-------------------------------------------------------------- +# SNAKELIZE +--------------------------------------------------------------*/ + +satus.snakelize = function (string) { + return string.replace(/([A-Z])/g, '-$1').toLowerCase(); +}; + + +/*-------------------------------------------------------------- +# CLASS +--------------------------------------------------------------*/ + +satus.class = function (element, className) { + if (className) { + element.classList.add(className); + } +}; + + +/*-------------------------------------------------------------- +# CLONE +--------------------------------------------------------------*/ + +satus.clone = function (item) { + var clone = item.cloneNode(true), + parent_css = window.getComputedStyle(item.parentNode), + css = window.getComputedStyle(item), + style = ''; + + for (var i = 0, l = css.length; i < l; i++) { + var property = css[i], + value = css.getPropertyValue(property); + + if (property === 'background-color') { + value = parent_css.getPropertyValue('background-color'); + } + + if (['box-shadow', 'left', 'top', 'bottom', 'right', 'opacity'].indexOf(property) === -1) { + style += property + ':' + value + ';'; + } + } + + + clone.setAttribute('style', style); + + return clone; +}; + + +/*-------------------------------------------------------------- +# CREATE ELEMENT +--------------------------------------------------------------*/ + +satus.createElement = function (tagName, componentName, namespaceURI) { + var camelizedTagName = this.camelize(tagName), + className = 'satus-' + (componentName || tagName), + element, + match = className.match(/__[^__]+/g); + + if (!namespaceURI) { + if (tagName === 'svg') { + namespaceURI = 'http://www.w3.org/2000/svg'; + } + } + + if (namespaceURI) { + element = document.createElementNS(namespaceURI, tagName); + } else if (this.components[camelizedTagName]) { + element = document.createElement('div'); + } else { + element = document.createElement(tagName); + } + + if (match && match.length > 1) { + className = className.slice(0, className.indexOf('__')) + match[match.length - 1]; + } + + element.componentName = componentName; + element.className = className; + + element.createChildElement = function (tagName, componentName, namespaceURI) { + var element = satus.createElement(tagName, this.componentName + '__' + (componentName || tagName), namespaceURI); + + if (this.baseProvider) { + element.baseProvider = this.baseProvider; + } + + if (this.layersProvider) { + element.layersProvider = this.layersProvider; + } + + this.appendChild(element); + + return element; + }; + + return element; +}; + + +/*-------------------------------------------------------------- +# CSS +--------------------------------------------------------------*/ + +satus.css = function (element, property) { + return window.getComputedStyle(element).getPropertyValue(property); +}; + + +/*-------------------------------------------------------------- +# CRYPT +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# DECRYPTION +--------------------------------------------------------------*/ + +satus.decrypt = async function (text, password) { + var iv = text.slice(0, 24).match(/.{2}/g).map(byte => parseInt(byte, 16)), + algorithm = { + name: 'AES-GCM', + iv: new Uint8Array(iv) + }; + + try { + var data = new TextDecoder().decode(await crypto.subtle.decrypt( + algorithm, + await crypto.subtle.importKey( + 'raw', + await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)), + algorithm, + false, ['decrypt'] + ), + new Uint8Array(atob(text.slice(24)).match(/[\s\S]/g).map(ch => ch.charCodeAt(0))) + )); + } catch (err) { + return false; + } + + return data; +}; + + +/*-------------------------------------------------------------- +# ENCRYPTION +--------------------------------------------------------------*/ + +satus.encrypt = async function (text, password) { + var iv = crypto.getRandomValues(new Uint8Array(12)), + algorithm = { + name: 'AES-GCM', + iv: iv + }; + + return Array.from(iv).map(b => ('00' + b.toString(16)).slice(-2)).join('') + btoa(Array.from(new Uint8Array(await crypto.subtle.encrypt( + algorithm, + await crypto.subtle.importKey('raw', await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)), algorithm, false, ['encrypt']), + new TextEncoder().encode(text) + ))).map(byte => String.fromCharCode(byte)).join('')); +}; + + +/*-------------------------------------------------------------- +# DATA +--------------------------------------------------------------*/ + +satus.data = function (element, data) { + if (data) { + for (var key in data) { + var value = data[key]; + + if (satus.isFunction(value)) { + value = value(); + } + + element.dataset[key] = value; + } + } +}; + + +/*-------------------------------------------------------------- +# EMPTY +--------------------------------------------------------------*/ + +satus.empty = function (element, exclude = []) { + for (var i = element.childNodes.length - 1; i > -1; i--) { + var child = element.childNodes[i]; + + if (exclude.indexOf(child) === -1) { + child.remove(); + } + } +}; + + +/*-------------------------------------------------------------- +# ELEMENT INDEX +--------------------------------------------------------------*/ + +satus.elementIndex = function (element) { + return Array.prototype.slice.call(element.parentNode.children).indexOf(element); +}; + + +/*-------------------------------------------------------------- +# EVENTS +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# ON +--------------------------------------------------------------*/ + +satus.events.on = function (type, handler) { + if (!this.data[type]) { + this.data[type] = []; + } + + this.data[type].push(handler); +}; + + +/*-------------------------------------------------------------- +# TRIGGER +--------------------------------------------------------------*/ + +satus.events.trigger = function (type, data) { + var handlers = this.data[type]; + + if (handlers) { + for (var i = 0, l = handlers.length; i < l; i++) { + handlers[i](data); + } + } +}; + + +/*-------------------------------------------------------------- +# FETCH +--------------------------------------------------------------*/ + +satus.fetch = function (url, success, error, type) { + fetch(url).then(function (response) { + if (response.ok) { + response[type || 'json']().then(success); + } else { + error(); + } + }).catch(function () { + error(success); + }); +}; + + +/*-------------------------------------------------------------- +# GET PROPERTY +--------------------------------------------------------------*/ + +satus.getProperty = function (object, string) { + var properties = string.split('.'); + + for (var i = 0, l = properties.length; i < l; i++) { + var property = properties[i]; + + console.log(object); + + if (object = object[property]) { + if (i === l - 1) { + return object; + } + } else { + return false; + } + } +}; + + +/*-------------------------------------------------------------- +# INDEX OF +--------------------------------------------------------------*/ + +satus.indexOf = function (child, parent) { + var index = 0; + + if (satus.isArray(parent)) { + index = parent.indexOf(child); + } else { + while ((child = child.previousElementSibling)) { + index++; + } + } + + return index; +}; + + +/*-------------------------------------------------------------- +# TO INDEX +--------------------------------------------------------------*/ + +satus.toIndex = function (index, child, parent) { + if (satus.isArray(parent)) { + parent.splice(index, 0, parent.splice(satus.indexOf(child, parent), 1)[0]) + } +}; + + +/*-------------------------------------------------------------- +# ISSET +--------------------------------------------------------------*/ + +satus.isset = function (target, is_object) { + if (is_object === true) { + var keys = target.split('.').filter(function (value) { + return value != ''; + }); + + for (var i = 0, l = keys.length; i < l; i++) { + if (satus.isset(target[keys[i]])) { + target = target[keys[i]]; + } else { + return undefined; + } + } + + return target; + } else { + if (target === null || target === undefined) { + return false; + } + } + + return true; +}; + + +/*-------------------------------------------------------------- +# IS +--------------------------------------------------------------*/ + +satus.isArray = function (target) { + if (Array.isArray(target)) { + return true; + } else { + return false; + } +}; + +satus.isBoolean = function (target) { + return target === false || target === true; +}; + +satus.isElement = function (target) { + return target instanceof Element || target instanceof HTMLDocument; +}; + +satus.isFunction = function (target) { + return typeof target === 'function'; +}; + +satus.isNodeList = function (target) { + return target instanceof NodeList; +}; + +satus.isNumber = function (target) { + if (typeof target === 'number' && isNaN(target) === false) { + return true; + } else { + return false; + } +}; + +satus.isObject = function (target) { + return target instanceof Object && target !== null; +}; + +satus.isString = function (target) { + if (typeof target === 'string') { + return true; + } else { + return false; + } +}; + + +/*-------------------------------------------------------------- +# ON +--------------------------------------------------------------*/ + +satus.on = function (element, listeners) { + if (listeners) { + for (var type in listeners) { + var listener = listeners[type]; + + if (type === 'selectionchange') { + element = document; + } + + if (satus.isFunction(listener)) { + element.addEventListener(type, listener); + } else if (satus.isArray(listener) || satus.isObject(listener)) { + element.addEventListener(type, function (event) { + var target = this.skeleton.on[event.type], + layers = this.layersProvider; + + target.parentSkeleton = this.skeleton; + target.parentElement = this; + + if (!layers && this.baseProvider.layers.length > 0) { + layers = this.baseProvider.layers[0]; + } + + if (target.prepend === true) { + satus.prepend(target, this.parentNode); + } else if (layers && target.component !== 'modal') { + layers.open(target); + } else { + satus.render(target, this.baseProvider); + } + }); + } else if (satus.isString(listener)) { + element.addEventListener(type, function () { + var match = this.skeleton.on[event.type].match(/(["'`].+["'`]|[^.()]+)/g), + target = this.baseProvider; + + for (var i = 0, l = match.length; i < l; i++) { + var key = match[i]; + + if (target.skeleton[key]) { + target = target.skeleton[key]; + } else { + if (typeof target[key] === 'function') { + target[key](); + } else { + target = target[key]; + } + } + + if (target.rendered) { + target = target.rendered; + } + } + }); + } + } + } +}; + + +/*-------------------------------------------------------------- +# PARENTIFY +--------------------------------------------------------------*/ + +satus.parentify = function (parentObject, exclude) { + for (var key in parentObject) { + if (exclude.indexOf(key) === -1) { + var child = parentObject[key]; + + if (satus.isset(child)) { + child.parentObject = parentObject; + + if ( + satus.isObject(child) && + !satus.isArray(child) && + !satus.isElement(child) && + !satus.isFunction(child) + ) { + this.parentify(child, exclude); + } + } + } + } +}; + + +/*-------------------------------------------------------------- +# PREPEND +--------------------------------------------------------------*/ + +satus.prepend = function (child, parent) { + if (this.isElement(child)) { + parent.prepend(child); + } else if (this.isObject(child)) { + this.render(child, parent, undefined, undefined, true); + } +}; + + +/*-------------------------------------------------------------- +# PROPERTIES +--------------------------------------------------------------*/ + +satus.properties = function (element, properties) { + if (properties) { + for (var key in properties) { + var property = properties[key]; + + if (['placeholder', 'title'].indexOf(key) !== -1) { + property = satus.locale.get(property); + } + + element[key] = property; + } + } +}; + + +/*-------------------------------------------------------------- +# REMOVE +--------------------------------------------------------------*/ + +satus.remove = function (child, parent) { + if (satus.isArray(parent)) { + parent.splice(satus.indexOf(child, parent), 1); + } +}; + + +/*-------------------------------------------------------------- +# RENDER +--------------------------------------------------------------*/ + +satus.render = function (skeleton, container, property, childrenOnly, prepend, skip_children) { + var element; + + if (skeleton.component && childrenOnly !== true) { + var tagName = skeleton.component, + camelizedTagName = this.camelize(tagName), + namespaceURI = skeleton.namespaceURI; + + if (!namespaceURI) { + if (tagName === 'svg') { + namespaceURI = 'http://www.w3.org/2000/svg'; + } else if (skeleton.parentSkeleton && skeleton.parentSkeleton.namespaceURI) { + namespaceURI = skeleton.parentSkeleton.namespaceURI; + } + + skeleton.namespaceURI = namespaceURI; + } + + element = this.createElement(tagName, tagName, namespaceURI); + + skeleton.rendered = element; + element.skeleton = skeleton; + element.childrenContainer = element; + element.componentName = tagName; + + if (skeleton.variant) { + var variant = skeleton.variant; + + if (this.isFunction(variant)) { + variant = variant(); + } + + if (satus.isArray(variant)) { + for (var i = 0, l = variant.length; i < l; i++) { + element.className += ' satus-' + tagName + '--' + variant[i]; + } + } else { + element.className += ' satus-' + tagName + '--' + variant; + } + } + + if (skeleton.id) { + element.id = skeleton.id; + } + + if (container) { + if (container.baseProvider) { + element.baseProvider = container.baseProvider; + } + + if (container.layersProvider) { + element.layersProvider = container.layersProvider; + } + } + + this.attr(element, skeleton.attr); + this.style(element, skeleton.style); + this.data(element, skeleton.data); + this.class(element, skeleton.class); + this.properties(element, skeleton.properties); + this.on(element, skeleton.on); + + element.storage = (function () { + var parent = element, + key = skeleton.storage || property || false, + value; + + if (satus.isFunction(key)) { + key = key(); + } + + if (skeleton.storage !== false) { + if (key) { + value = satus.storage.get(key); + } + + if (skeleton.hasOwnProperty('value') && value === undefined) { + value = skeleton.value; + } + } + + return Object.defineProperties({}, { + key: { + get: function () { + return key; + }, + set: function (string) { + key = string; + } + }, + value: { + get: function () { + return value; + }, + set: function (val) { + value = val; + + if (skeleton.storage !== false) { + satus.storage.set(key, val); + } + + parent.dispatchEvent(new CustomEvent('change')); + } + } + }); + }()); + + if (this.components[camelizedTagName]) { + this.components[camelizedTagName](element, skeleton); + } + + this.text(element.childrenContainer, skeleton.text); + this.prepend(skeleton.before, element.childrenContainer); + + if (prepend) { + this.prepend(element, container); + } else { + this.append(element, container); + } + + if (skeleton.hasOwnProperty('parentSkeleton') === false && container) { + skeleton.parentSkeleton = container.skeleton; + } + + satus.events.trigger('render', element); + + element.dispatchEvent(new CustomEvent('render')); + + container = element.childrenContainer || element; + } + + if ((!element || element.renderChildren !== false) & skip_children !== true) { + for (var key in skeleton) { + var item = skeleton[key]; + + if (key !== 'parentSkeleton' && key !== 'parentElement' && key !== 'parentObject' && key !== 'before') { + if (item && item.component) { + item.parentSkeleton = skeleton; + + if (element) { + item.parentElement = element; + } + + this.render(item, container, key, undefined, prepend); + } + } + } + } + + return element; +}; + + +/*-------------------------------------------------------------- +# SORT +--------------------------------------------------------------*/ + +satus.sort = function (array, order, property) { + var type; + + if (property) { + type = typeof array[0][property]; + } else { + type = typeof array[0]; + } + + if (order !== 'desc') { + if (type === 'number') { + if (property) { + return array.sort(function (a, b) { + return a[property] - b[property]; + }); + } else { + return array.sort(function (a, b) { + return a - b; + }); + } + } else if (type === 'string') { + if (property) { + return array.sort(function (a, b) { + return a[property].localeCompare(b[property]); + }); + } else { + return array.sort(function (a, b) { + return a.localeCompare(b); + }); + } + } + } else { + if (type === 'number') { + if (property) { + return array.sort(function (a, b) { + return b[property] - a[property]; + }); + } else { + return array.sort(function (a, b) { + return b - a; + }); + } + } else if (type === 'string') { + if (property) { + return array.sort(function (a, b) { + return b[property].localeCompare(a[property]); + }); + } else { + return array.sort(function (a, b) { + return b.localeCompare(a); + }); + } + } + } +}; + + +/*-------------------------------------------------------------- +# STORAGE +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# CLEAR +--------------------------------------------------------------*/ + +satus.storage.clear = function (callback) { + this.data = {}; + + chrome.storage.local.clear(function () { + satus.events.trigger('storage-clear'); + + if (callback) { + callback(); + } + }); +}; + + +/*-------------------------------------------------------------- +# GET +--------------------------------------------------------------*/ + +satus.storage.get = function (key, callback) { + var target = this.data; + + if (typeof key !== 'string') { + return; + } + + key = key.split('/').filter(function (value) { + return value != ''; + }); + + for (var i = 0, l = key.length; i < l; i++) { + if (satus.isset(target[key[i]])) { + target = target[key[i]]; + } else { + return undefined; + } + } + + if (typeof target === 'function') { + return target(); + } else { + return target; + } +}; + + +/*-------------------------------------------------------------- +# IMPORT +--------------------------------------------------------------*/ + +satus.storage.import = function (keys, callback) { + var self = this; + + if (typeof keys === 'function') { + callback = keys; + + keys = undefined; + } + + chrome.storage.local.get(keys, function (items) { + for (var key in items) { + self.data[key] = items[key]; + } + + satus.log('STORAGE: data was successfully imported'); + + satus.events.trigger('storage-import'); + + if (callback) { + callback(items); + } + }); +}; + + +/*-------------------------------------------------------------- +# REMOVE +--------------------------------------------------------------*/ + +satus.storage.remove = function (key, callback) { + var target = this.data; + + if (typeof key !== 'string') { + return; + } + + key = key.split('/').filter(function (value) { + return value != ''; + }); + + for (var i = 0, l = key.length; i < l; i++) { + if (satus.isset(target[key[i]])) { + if (i === l - 1) { + delete target[key[i]]; + } else { + target = target[key[i]]; + } + } else { + return undefined; + } + } + + if (key.length === 1) { + chrome.storage.local.remove(key[0]); + } else { + chrome.storage.local.set(this.data, function () { + satus.events.trigger('storage-remove'); + + if (callback) { + callback(); + } + }); + } +}; + + +/*-------------------------------------------------------------- +# SET +--------------------------------------------------------------*/ + +satus.storage.set = function (key, value, callback) { + var items = {}, + target = this.data; + + if (typeof key !== 'string') { + return; + } + + key = key.split('/').filter(function (value) { + return value != ''; + }); + + for (var i = 0, l = key.length; i < l; i++) { + var item = key[i]; + + if (i < l - 1) { + + if (target[item]) { + target = target[item]; + } else { + target[item] = {}; + + target = target[item]; + } + } else { + target[item] = value; + } + } + + for (var key in this.data) { + if (typeof this.data[key] !== 'function') { + items[key] = this.data[key]; + } + } + + chrome.storage.local.set(items, function () { + satus.events.trigger('storage-set'); + + if (callback) { + callback(); + } + }); +}; + + +/*-------------------------------------------------------------- +# ON CHANGED +--------------------------------------------------------------*/ + +satus.storage.onchanged = function (callback) { + chrome.storage.onChanged.addListener(function (changes) { + for (var key in changes) { + callback(key, changes[key].newValue); + } + }); +}; + + +/*-------------------------------------------------------------- +# LAST +--------------------------------------------------------------*/ + +satus.last = function (variable) { + if (this.isArray(variable) || this.isNodeList(variable) || variable instanceof HTMLCollection) { + return variable[variable.length - 1]; + } +}; + + +/*-------------------------------------------------------------- +# LOCALIZATION +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# GET +--------------------------------------------------------------*/ + +satus.locale.get = function (string) { + return this.data[string] || string; +}; + + +/*-------------------------------------------------------------- +# IMPORT +---------------------------------------------------------------- +satus.locale.import(url, onload, onsuccess); +--------------------------------------------------------------*/ + +satus.locale.import = function (code, callback, path) { + var language = code || window.navigator.language; + + if (language.indexOf('en') === 0) { + language = 'en'; + } + + language = language.replace('-', '_'); + + if (!path) { + path = '_locales/'; + } + + satus.fetch(chrome.runtime.getURL(path + language + '/messages.json'), function (response) { + for (var key in response) { + satus.locale.data[key] = response[key].message; + } + + //satus.log('LOCALE: data was successfully imported'); + + if (callback) { + callback(); + } + }, function (success) { + satus.fetch(chrome.runtime.getURL(path + 'en/messages.json'), success, function () { + success(); + }); + }); +}; + + +/*-------------------------------------------------------------- +# LOG +--------------------------------------------------------------*/ + +satus.log = function () { + console.log.apply(null, arguments); +}; + + +/*-------------------------------------------------------------- +# STYLE +--------------------------------------------------------------*/ + +satus.style = function (element, object) { + if (object) { + for (var key in object) { + element.style[key] = object[key]; + } + } +}; + + +/*-------------------------------------------------------------- +# TEXT +--------------------------------------------------------------*/ + +satus.text = function (element, value) { + if (value) { + if (satus.isFunction(value)) { + value = value(); + } + + element.appendChild(document.createTextNode(this.locale.get(value))); + } +}; +/*-------------------------------------------------------------- +>>> MODAL +---------------------------------------------------------------- +# Confirm +--------------------------------------------------------------*/ + +satus.components.modal = function (component, skeleton) { + component.scrim = component.createChildElement('div', 'scrim'); + component.surface = component.createChildElement('div', 'surface'); + + component.close = function () { + var component = this; + + this.classList.add('satus-modal--closing'); + + setTimeout(function () { + component.remove(); + + component.dispatchEvent(new CustomEvent('close')); + }, Number(satus.css(this.surface, 'animation-duration').replace(/[^0-9.]/g, '')) * 1000); + }; + + component.scrim.addEventListener('click', function () { + this.parentNode.close(); + }); + + if (satus.isset(skeleton.content)) { + component.surface.content = component.surface.createChildElement('p', 'content'); + + if (satus.isObject(skeleton.content)) { + satus.render(skeleton.content, component.surface.content); + } else { + component.surface.content.textContent = satus.locale.get(skeleton.content); + } + } else { + component.childrenContainer = component.surface; + } + + if (satus.components.modal[skeleton.variant]) { + satus.components.modal[skeleton.variant](component, skeleton); + } +}; + + +/*-------------------------------------------------------------- +# CONFIRM +--------------------------------------------------------------*/ + +satus.components.modal.confirm = function (component, skeleton) { + component.surface.actions = satus.render({ + component: 'section', + variant: 'align-end' + }, component.surface); + + if (skeleton.buttons) { + for (var key in skeleton.buttons) { + var button = skeleton.buttons[key]; + + if (satus.isObject(button) && button.component === 'button') { + satus.render(button, component.surface.actions).modalProvider = component; + } + } + } else { + satus.render({ + cancel: { + component: 'button', + text: 'cancel', + properties: { + modalProvider: component, + }, + on: { + click: function () { + this.modalProvider.dispatchEvent(new CustomEvent('cancel')); + this.modalProvider.close(); + } + } + }, + ok: { + component: 'button', + text: 'ok', + properties: { + modalProvider: component, + }, + on: { + click: function () { + this.modalProvider.dispatchEvent(new CustomEvent('confirm')); + this.modalProvider.close(); + } + } + } + }, component.surface.actions); + } +}; +/*-------------------------------------------------------------- +>>> GRID +--------------------------------------------------------------*/ + +satus.components.grid = function (component, skeleton) { + console.log(component, skeleton); +}; +/*-------------------------------------------------------------- +>>> TEXT FIELD +--------------------------------------------------------------*/ + +satus.components.textField = function (component, skeleton) { + var container = component.createChildElement('div', 'container'), + input = container.createChildElement(skeleton.rows === 1 ? 'input' : 'textarea'), + display = container.createChildElement('div', 'display'), + line_numbers = display.createChildElement('div', 'line-numbers'), + pre = display.createChildElement('pre'), + selection = display.createChildElement('div', 'selection'), + cursor = display.createChildElement('div', 'cursor'), + hiddenValue = container.createChildElement('pre', 'hidden-value'); + + if (skeleton.rows === 1) { + component.setAttribute('multiline', 'false'); + + component.multiline = false; + } + + component.placeholder = skeleton.placeholder; + component.input = input; + component.display = display; + component.lineNumbers = line_numbers; + component.pre = pre; + component.hiddenValue = hiddenValue; + component.selection = selection; + component.cursor = cursor; + component.syntax = { + current: 'text', + handlers: { + regex: function (value, target) { + var regex_token = /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g, + char_class_token = /[^\\-]+|-|\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)/g, + char_class_parts = /^(\[\^?)(]?(?:[^\\\]]+|\\[\S\s]?)*)(]?)$/, + quantifier = /^(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??$/, + matches = value.match(regex_token); + + function create(type, string) { + var span = document.createElement('span'); + + span.className = type; + span.textContent = string; + + target.appendChild(span); + } + + if (matches) { + for (var i = 0, l = matches.length; i < l; i++) { + var match = matches[i]; + + if (match[0] === '[') { + create('character-class', match); + } else if (match[0] === '(') { + create('group', match); + } else if (match[0] === ')') { + create('group', match); + } else if (match[0] === '\\' || match === '^') { + create('anchor', match); + } else if (quantifier.test(match)) { + create('quantifier', match); + } else if (match === '|' || match === '.') { + create('metasequence', match); + } else { + create('text', match); + } + } + } + } + }, + set: function (syntax) { + if (this.handlers[syntax]) { + this.current = syntax; + } else { + this.current = 'text'; + } + + pre.update(); + } + }; + component.focus = function () { + this.input.focus(); + }; + + if (skeleton.lineNumbers === false) { + component.setAttribute('line-numbers', 'false'); + + component.lineNumbers.setAttribute('hidden', ''); + } + + if (satus.isset(skeleton.cols)) { + input.cols = skeleton.cols; + } + + if (satus.isset(skeleton.rows)) { + input.rows = skeleton.rows; + } + + Object.defineProperty(component, 'value', { + get: function () { + return this.input.value; + }, + set: function (value) { + this.input.value = value; + } + }); + + if (skeleton.syntax) { + component.syntax.set(skeleton.syntax); + } + + selection.setAttribute('disabled', ''); + + line_numbers.update = function () { + var component = this.parentNode.parentNode.parentNode, + count = component.input.value.split('\n').length; + + if (count !== this.children.length) { + satus.empty(this); + + for (var i = 1; i <= count; i++) { + var span = document.createElement('span'); + + span.textContent = i; + + this.appendChild(span); + } + } + + component.input.style.paddingLeft = this.offsetWidth + 'px'; + }; + + pre.update = function () { + var component = this.parentNode.parentNode.parentNode, + handler = component.syntax.handlers[component.syntax.current], + value = component.value || ''; + + for (var i = this.childNodes.length - 1; i > -1; i--) { + this.childNodes[i].remove(); + } + + if (handler) { + handler(value, this); + } else { + this.textContent = value; + } + + if (value.length === 0) { + var placeholder = component.placeholder; + + if (typeof placeholder === 'function') { + placeholder = component.placeholder(); + } else { + placeholder = satus.locale.get(placeholder); + } + + this.textContent = placeholder; + } + }; + + cursor.update = function () { + var component = this.parentNode.parentNode.parentNode, + input = component.input, + value = input.value, + rows_count = value.split('\n').length, + start = input.selectionStart, + end = input.selectionEnd, + rows = value.slice(0, start).split('\n'), + top = 0; + + this.style.animation = 'none'; + + if (input.selectionDirection === 'forward') { + component.hiddenValue.textContent = value.substring(0, end); + } else { + component.hiddenValue.textContent = value.substring(0, start); + } + + top = component.hiddenValue.offsetHeight; + + component.hiddenValue.textContent = satus.last(rows); + + top -= component.hiddenValue.offsetHeight; + + if (component.multiline !== false) { + this.style.top = top + 'px'; + } + + this.style.left = component.hiddenValue.offsetWidth + component.lineNumbers.offsetWidth + 'px'; + + if (start === end) { + component.selection.setAttribute('disabled', ''); + } else { + component.selection.removeAttribute('disabled'); + + /*component.hiddenValue.textContent = value.substring(0, start); + + component.selection.style.left = component.hiddenValue.offsetWidth - input.scrollLeft + 'px'; + + component.hiddenValue.textContent = value.substring(start, end); + + component.selection.style.width = component.hiddenValue.offsetWidth + 'px';*/ + } + + this.style.animation = ''; + + component.hiddenValue.textContent = ''; + }; + + document.addEventListener('selectionchange', function (event) { + component.lineNumbers.update(); + component.pre.update(); + component.cursor.update(); + }); + + input.addEventListener('input', function () { + var component = this.parentNode.parentNode; + + component.storage.value = this.value; + + component.lineNumbers.update(); + component.pre.update(); + component.cursor.update(); + }); + + input.addEventListener('scroll', function (event) { + var component = this.parentNode.parentNode; + + component.display.style.top = -this.scrollTop + 'px'; + component.display.style.left = -this.scrollLeft + 'px'; + + component.lineNumbers.update(); + component.pre.update(); + component.cursor.update(); + }); + + component.addEventListener('change', function () { + this.lineNumbers.update(); + this.pre.update(); + this.cursor.update(); + }); + + component.value = component.storage.value || ''; + + component.addEventListener('render', function () { + component.lineNumbers.update(); + component.pre.update(); + component.cursor.update(); + }); + + if (skeleton.on) { + for (var type in skeleton.on) { + input.addEventListener(type, function (event) { + this.parentNode.parentNode.dispatchEvent(new Event(event.type)); + }); + } + } +}; +/*-------------------------------------------------------------- +>>> CHART +---------------------------------------------------------------- +# Core + # Bar +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# CORE +--------------------------------------------------------------*/ + +satus.components.chart = function (component, skeleton) { + var type = skeleton.type; + + if (this.chart[type]) { + component.classList.add('satus-chart--' + type); + + this.chart[type](component, skeleton); + } +}; + + +/*-------------------------------------------------------------- +# BAR +--------------------------------------------------------------*/ + +satus.components.chart.bar = function (component, skeleton) { + var labels = skeleton.labels, + datasets = skeleton.datasets, + bars = []; + + if (satus.isFunction(labels)) { + labels = labels(); + } + + if (satus.isFunction(datasets)) { + datasets = datasets(); + } + + if (satus.isArray(labels)) { + var container = component.createChildElement('div', 'labels'); + + for (var i = 0, l = labels.length; i < l; i++) { + var label = labels[i], + section = container.createChildElement('div', 'section'); + + section.textContent = label; + } + } + + if (satus.isArray(datasets)) { + var container = component.createChildElement('div', 'bars'); + + for (var i = 0, l = datasets.length; i < l; i++) { + var dataset = datasets[i]; + + for (var j = 0, k = dataset.data.length; j < k; j++) { + if (!satus.isElement(bars[j])) { + bars.push(container.createChildElement('div', 'bar')); + } + + var piece = bars[j].createChildElement('div', 'piece'); + + piece.title = dataset.label; + piece.style.height = dataset.data[j] + '%'; + piece.style.backgroundColor = 'rgb(' + dataset.color.join(',') + ')'; + } + } + } +}; +/*-------------------------------------------------------------- +>>> SELECT +--------------------------------------------------------------*/ + +satus.components.select = function (component, skeleton) { + var content = component.createChildElement('div', 'content'); + + component.childrenContainer = content; + component.valueElement = document.createElement('span'); + component.selectElement = document.createElement('select'); + + component.valueElement.className = 'satus-select__value'; + + component.appendChild(component.valueElement); + component.appendChild(component.selectElement); + + component.options = skeleton.options || []; + + if (satus.isFunction(component.options)) { + component.options = component.options(); + + if (!satus.isset(component.options)) { + component.options = []; + } + } + + for (var i = 0, l = component.options.length; i < l; i++) { + var option = document.createElement('option'); + + option.value = component.options[i].value; + + satus.text(option, component.options[i].text); + + component.selectElement.appendChild(option); + } + + Object.defineProperty(component, 'value', { + get() { + return this.selectElement.value; + }, + set(value) { + this.selectElement.value = value; + } + }); + + component.render = function () { + satus.empty(this.valueElement); + + if (this.selectElement.options[this.selectElement.selectedIndex]) { + satus.text(this.valueElement, this.selectElement.options[this.selectElement.selectedIndex].text); + } + + this.dataset.value = this.value; + }; + + component.selectElement.addEventListener('change', function () { + var component = this.parentNode; + + component.storage.value = this.value; + + component.render(); + }); + + component.value = component.storage.value || component.options[0].value; + + component.render(); +}; +/*-------------------------------------------------------------- +>>> DIVIDER +--------------------------------------------------------------*/ + +satus.components.divider = function () {}; +/*-------------------------------------------------------------- +>>> SECTION +--------------------------------------------------------------*/ + +satus.components.section = function (component, skeleton) { + if (satus.isString(skeleton.title)) { + component.dataset.title = satus.locale.get(skeleton.title); + } +}; +/*-------------------------------------------------------------- +>>> BASE +--------------------------------------------------------------*/ + +satus.components.base = function (component) { + component.baseProvider = component; + component.layers = []; +}; +/*-------------------------------------------------------------- +>>> ALERT +--------------------------------------------------------------*/ + +satus.components.alert = function (component, skeleton) {}; +/*-------------------------------------------------------------- +>>> TIME +--------------------------------------------------------------*/ + +satus.components.time = function (component, skeleton) { + var select_skeleton = Object.assign({}, skeleton); + + select_skeleton.component = 'select'; + select_skeleton.options = []; + + if (satus.isFunction(select_skeleton.hour12)) { + select_skeleton.hour12 = select_skeleton.hour12(); + } + + for (var i = 0, l = 24; i < l; i++) { + var hour = i, + value = i; + + if (select_skeleton.hour12 === true && i > 12) { + hour -= 12; + } + + if (hour < 10) { + hour = '0' + hour; + value = '0' + value; + } + + if (select_skeleton.hour12 === true) { + if (i > 12) { + hour += ':00 pm'; + } else { + hour += ':00 am'; + } + } else { + hour += ':00' + } + + select_skeleton.options.push({ + text: hour, + value: value + ':00' + }); + } + + satus.components.select(component, select_skeleton); + + component.classList.add('satus-select'); +}; +/*-------------------------------------------------------------- +>>> SIDEBAR +--------------------------------------------------------------*/ + +satus.components.sidebar = function (component, skeleton) {}; +/*-------------------------------------------------------------- +>>> LAYERS +--------------------------------------------------------------*/ + +satus.components.layers = function (component, skeleton) { + component.path = []; + component.renderChildren = false; + component.baseProvider.layers.push(component); + component.layersProvider = component; + + component.back = function () { + if (this.path.length > 1) { + this.path.pop(); + + this.open(this.path[this.path.length - 1], false); + } + }; + + component.open = function (skeleton, history) { + var previous_layer = satus.last(this.querySelectorAll('.satus-layers__layer')), + layer = this.createChildElement('div', 'layer'); + + if (history !== false) { + if (previous_layer) { + previous_layer.style.animation = 'fadeOutLeft 100ms linear forwards'; + layer.style.animation = 'fadeInRight 100ms linear forwards'; + } + + this.path.push(skeleton); + } else { + previous_layer.style.animation = 'fadeOutRight 100ms linear forwards'; + layer.style.animation = 'fadeInLeft 100ms linear forwards'; + } + + if (previous_layer) { + setTimeout(function () { + previous_layer.remove(); + }, satus.getAnimationDuration(previous_layer)); + } + + layer.skeleton = skeleton; + layer.baseProvider = this.baseProvider; + + satus.render(skeleton, layer, undefined, skeleton.component === 'layers'); + + this.dispatchEvent(new Event('open')); + }; + + component.update = function () { + var layer = this.querySelector('.satus-layers__layer'); + + satus.empty(layer); + satus.render(layer.skeleton, layer); + }; + + component.open(skeleton); +}; +/*-------------------------------------------------------------- +>>> LIST +--------------------------------------------------------------*/ + +satus.components.list = function (component, skeleton) { + for (var i = 0, l = skeleton.items.length; i < l; i++) { + var li = component.createChildElement('div', 'item'), + item = skeleton.items[i]; + + for (var j = 0, k = item.length; j < k; j++) { + var child = item[j]; + + if (satus.isObject(child)) { + satus.render(child, li); + } else { + var span = li.createChildElement('span'); + + span.textContent = satus.locale.get(child); + } + } + } +}; +/*-------------------------------------------------------------- +>>> COLOR PICKER +--------------------------------------------------------------*/ + +satus.components.colorPicker = function (component, skeleton) { + var component_content = component.createChildElement('div', 'content'), + component_value = component.createChildElement('span', 'value'); + + component.childrenContainer = component_content; + component.valueElement = component_value; + + component.className = 'satus-button'; + + component.addEventListener('click', function () { + var rgb = this.rgb, + hsl = satus.color.rgbToHsl(rgb), + s = hsl[1] / 100, + l = hsl[2] / 100; + + s *= l < .5 ? l : 1 - l; + + var v = l + s; + + s = 2 * s / (l + s); + + satus.render({ + component: 'modal', + variant: 'color-picker', + value: hsl, + parentElement: this, + + palette: { + component: 'div', + class: 'satus-color-picker__palette', + style: { + 'backgroundColor': 'hsl(' + hsl[0] + 'deg, 100%, 50%)' + }, + on: { + mousedown: function () { + var palette = this, + rect = this.getBoundingClientRect(), + cursor = this.children[0]; + + function mousemove(event) { + var hsl = palette.skeleton.parentSkeleton.storage.value, + x = event.clientX - rect.left, + y = event.clientY - rect.top, + s; + + x = Math.min(Math.max(x, 0), rect.width) / (rect.width / 100); + y = Math.min(Math.max(y, 0), rect.height) / (rect.height / 100); + + var v = 100 - y, + l = (2 - x / 100) * v / 2; + + hsl[1] = x * v / (l < 50 ? l * 2 : 200 - l * 2); + hsl[2] = l; + + cursor.style.left = x + '%'; + cursor.style.top = y + '%'; + + palette.nextSibling.children[0].style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; + + event.preventDefault(); + } + + function mouseup() { + window.removeEventListener('mousemove', mousemove); + window.removeEventListener('mouseup', mouseup); + } + + window.addEventListener('mousemove', mousemove); + window.addEventListener('mouseup', mouseup); + } + }, + + cursor: { + component: 'div', + class: 'satus-color-picker__cursor', + style: { + 'left': s * 100 + '%', + 'top': 100 - v * 100 + '%' + } + } + }, + section: { + component: 'section', + variant: 'color', + + color: { + component: 'div', + class: 'satus-color-picker__color', + style: { + 'backgroundColor': 'rgb(' + this.rgb.join(',') + ')' + } + }, + hue: { + component: 'slider', + class: 'satus-color-picker__hue', + storage: false, + value: hsl[0], + max: 360, + on: { + change: function () { + var modal = this.skeleton.parentSkeleton.parentSkeleton, + hsl = modal.storage.value; + + hsl[0] = this.values[0]; + + this.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; + this.parentSkeletonNode.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg, 100%, 50%)'; + } + } + } + }, + actions: { + component: 'section', + variant: 'actions', + + reset: { + component: 'button', + text: 'reset', + on: { + click: function () { + var modal = this.skeleton.parentSkeleton.parentSkeleton, + component = modal.parentSkeleton; + + component.rgb = component.skeleton.value; + + component.storage.value = component.rgb; + + component.valueElement.style.backgroundColor = 'rgb(' + component.rgb.join(',') + ')'; + + modal.rendered.close(); + } + } + }, + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.skeleton.parentSkeleton.parentSkeleton.rendered.close(); + } + } + }, + ok: { + component: 'button', + text: 'OK', + on: { + click: function () { + var modal = this.skeleton.parentSkeleton.parentSkeleton, + component = modal.parentSkeleton; + + component.rgb = satus.color.hslToRgb(modal.storage.value); + + component.storage.value = component.rgb; + + component.valueElement.style.backgroundColor = 'rgb(' + component.rgb.join(',') + ')'; + + modal.rendered.close(); + } + } + } + } + }, this.baseProvider.layers[0]); + }); + + component.addEventListener('render', function () { + component.rgb = this.storage.value || [0, 100, 50]; + + component_value.style.backgroundColor = 'rgb(' + component.rgb.join(',') + ')'; + }); +}; + +satus.components.colorPicker = function (component, skeleton) { + component.childrenContainer = component.createChildElement('div', 'content'); + + component.color = (function (element) { + var array; + + Object.defineProperty(element, 'value', { + get: function () { + return array; + }, + set: function (value) { + array = value; + + this.parentNode.storage.value = array; + + element.style.backgroundColor = 'rgb(' + value.join(',') + ')'; + } + }); + + element.value = component.storage.value || component.skeleton.value || [0, 0, 0]; + + return element; + })(component.createChildElement('span', 'value')); + + component.addEventListener('click', function () { + var hsl = satus.color.rgbToHsl(this.color.value), + s = hsl[1] / 100, + l = hsl[2] / 100; + + s *= l < .5 ? l : 1 - l; + + var v = l + s; + + s = 2 * s / (l + s); + + satus.render({ + component: 'modal', + variant: 'color-picker', + value: hsl, + parentElement: this, + + palette: { + component: 'div', + class: 'satus-color-picker__palette', + style: { + 'backgroundColor': 'hsl(' + hsl[0] + 'deg, 100%, 50%)' + }, + on: { + mousedown: function (event) { + if (event.button !== 0) { + return false; + } + + var palette = this, + rect = this.getBoundingClientRect(), + cursor = this.children[0]; + + function mousemove(event) { + var hsl = palette.skeleton.parentSkeleton.value, + x = event.clientX - rect.left, + y = event.clientY - rect.top, + s; + + x = Math.min(Math.max(x, 0), rect.width) / (rect.width / 100); + y = Math.min(Math.max(y, 0), rect.height) / (rect.height / 100); + + var v = 100 - y, + l = (2 - x / 100) * v / 2; + + hsl[1] = x * v / (l < 50 ? l * 2 : 200 - l * 2); + hsl[2] = l; + + cursor.style.left = x + '%'; + cursor.style.top = y + '%'; + + palette.nextSibling.children[0].style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; + + event.preventDefault(); + } + + function mouseup() { + window.removeEventListener('mousemove', mousemove); + window.removeEventListener('mouseup', mouseup); + } + + window.addEventListener('mousemove', mousemove); + window.addEventListener('mouseup', mouseup); + } + }, + + cursor: { + component: 'div', + class: 'satus-color-picker__cursor', + style: { + 'left': s * 100 + '%', + 'top': 100 - v * 100 + '%' + } + } + }, + section: { + component: 'section', + variant: 'color', + + color: { + component: 'div', + class: 'satus-color-picker__color', + style: { + 'backgroundColor': 'rgb(' + this.color.value.join(',') + ')' + } + }, + hue: { + component: 'slider', + class: 'satus-color-picker__hue', + storage: false, + value: hsl[0], + max: 360, + on: { + input: function () { + var modal = this.skeleton.parentSkeleton.parentSkeleton, + hsl = modal.value; + + hsl[0] = this.storage.value; + + this.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; + this.parentNode.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg, 100%, 50%)'; + } + } + } + }, + actions: { + component: 'section', + variant: 'actions', + + reset: { + component: 'button', + text: 'reset', + on: { + click: function () { + var modal = this.skeleton.parentSkeleton.parentSkeleton, + component = modal.parentElement; + + component.color.value = component.skeleton.value || [0, 0, 0]; + + modal.rendered.close(); + } + } + }, + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.skeleton.parentSkeleton.parentSkeleton.rendered.close(); + } + } + }, + ok: { + component: 'button', + text: 'OK', + on: { + click: function () { + var modal = this.skeleton.parentSkeleton.parentSkeleton, + component = modal.parentElement; + + component.color.value = satus.color.hslToRgb(modal.value); + + modal.rendered.close(); + } + } + } + } + }, this.baseProvider.layers[0]); + }); +}; +/*-------------------------------------------------------------- +>>> RADIO +--------------------------------------------------------------*/ + +satus.components.radio = function (component, skeleton) { + component.nativeControl = component.createChildElement('input', 'input'); + + component.createChildElement('i'); + + component.childrenContainer = component.createChildElement('div', 'content'); + + component.nativeControl.type = 'radio'; + + if (skeleton.group) { + component.storage.key = skeleton.group; + component.nativeControl.name = skeleton.group; + } + + if (skeleton.value) { + component.nativeControl.value = skeleton.value; + } + + component.storage.value = satus.storage.get(component.storage.key); + + if (satus.isset(component.storage.value)) { + component.nativeControl.checked = component.storage.value === skeleton.value; + } else if (skeleton.checked) { + component.nativeControl.checked = true; + } + + component.nativeControl.addEventListener('change', function () { + var component = this.parentNode; + + component.storage.value = this.value; + }); +}; +/*-------------------------------------------------------------- +>>> SLIDER +--------------------------------------------------------------*/ + +satus.components.slider = function (component, skeleton) { + var content = component.createChildElement('div', 'content'), + children_container = content.createChildElement('div', 'children-container'), + text_input = content.createChildElement('input'), + track_container = component.createChildElement('div', 'track-container'), + input = track_container.createChildElement('input', 'input'); + + component.childrenContainer = children_container; + component.textInput = text_input; + component.input = input; + component.track = track_container.createChildElement('div', 'track'); + + text_input.type = 'text'; + + input.type = 'range'; + input.min = skeleton.min || 0; + input.max = skeleton.max || 1; + input.step = skeleton.step || 1; + input.value = component.storage.value || skeleton.value || 0; + + text_input.addEventListener('blur', function () { + var component = this.parentNode.parentNode; + + component.input.value = Number(this.value.replace(/[^0-9.]/g, '')); + component.storage.value = Number(component.input.value); + + component.update(); + }); + + text_input.addEventListener('keydown', function (event) { + if (event.key === 'Enter') { + var component = this.parentNode.parentNode; + + component.input.value = Number(this.value.replace(/[^0-9.]/g, '')); + component.storage.value = Number(component.input.value); + + component.update(); + } + }); + + input.addEventListener('input', function () { + var component = this.parentNode.parentNode; + + component.storage.value = Number(this.value); + + component.update(); + }); + + component.update = function () { + var input = this.input; + + this.textInput.value = input.value; + + this.track.style.width = 100 / (input.max - input.min) * (input.value - input.min) + '%'; + }; + + component.update(); + + if (skeleton.on) { + for (var type in skeleton.on) { + input.addEventListener(type, function (event) { + this.parentNode.parentNode.dispatchEvent(new Event(event.type)); + }); + } + } +}; +/*-------------------------------------------------------------- +>>> TABS +--------------------------------------------------------------*/ + +satus.components.tabs = function (component, skeleton) { + var tabs = skeleton.items, + value = skeleton.value; + + if (satus.isFunction(tabs)) { + tabs = tabs(); + } + + if (satus.isFunction(value)) { + value = value(); + } + + for (var i = 0, l = tabs.length; i < l; i++) { + var tab = tabs[i], + button = component.createChildElement('button'); + + button.addEventListener('click', function () { + var component = this.parentNode, + index = satus.elementIndex(this); + + component.value = index; + + component.style.setProperty('--satus-tabs-current', index); + }); + + satus.text(button, tab); + } + + component.style.setProperty('--satus-tabs-count', tabs.length); + component.style.setProperty('--satus-tabs-current', value || 0); +}; +/*-------------------------------------------------------------- +>>> SHORTCUT +--------------------------------------------------------------*/ + +satus.components.shortcut = function (component, skeleton) { + component.childrenContainer = component.createChildElement('div', 'content'); + component.valueElement = component.createChildElement('div', 'value'); + + component.className = 'satus-button'; + + component.render = function (parent) { + var self = this, + parent = parent || self.primary, + children = parent.children; + + satus.empty(parent); + + function createElement(name) { + var element = document.createElement('div'); + + element.className = 'satus-shortcut__' + name; + + parent.appendChild(element); + + return element; + } + + if (this.data.alt) { + createElement('key').textContent = 'Alt'; + } + + if (this.data.ctrl) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + createElement('key').textContent = 'Ctrl'; + } + + if (this.data.shift) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + createElement('key').textContent = 'Shift'; + } + + for (var code in this.data.keys) { + var key = this.data.keys[code].key, + arrows = ['ArrowUp', 'ArrowRight', 'ArrowDown', 'ArrowLeft'], + index = arrows.indexOf(key); + + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + if (index !== -1) { + createElement('key').textContent = ['↑', '→', '↓', '←'][index]; + } else if (key === ' ') { + createElement('key').textContent = '␣'; + } else if (key) { + createElement('key').textContent = key.toUpperCase(); + } + } + + if (this.data.wheel) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + var mouse = createElement('mouse'), + div = document.createElement('div'); + + mouse.appendChild(div); + + mouse.className += ' ' + (this.data.wheel > 0); + } + + if (this.data.click) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + var mouse = createElement('mouse'), + div = document.createElement('div'); + + mouse.appendChild(div); + + mouse.className += ' click'; + } + + if (this.data.middle) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + var mouse = createElement('mouse'), + div = document.createElement('div'); + + mouse.appendChild(div); + + mouse.className += ' middle'; + } + + if (this.data.context) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + var mouse = createElement('mouse'), + div = document.createElement('div'); + + mouse.appendChild(div); + + mouse.className += ' context'; + } + }; + + component.keydown = function (event) { + event.preventDefault(); + event.stopPropagation(); + + component.data = { + alt: event.altKey, + ctrl: event.ctrlKey, + shift: event.shiftKey, + keys: {} + }; + + if (['control', 'alt', 'altgraph', 'shift'].indexOf(event.key.toLowerCase()) === -1) { + component.data.keys[event.keyCode] = { + code: event.code, + key: event.key + }; + } + + component.data.wheel = 0; + + component.render(); + + return false; + }; + + if (skeleton.wheel !== false) { + component.mousewheel = function (event) { + event.stopPropagation(); + + if ( + ( + component.data.wheel === 0 && + ( + Object.keys(component.data.keys).length === 0 && + component.data.alt === false && + component.data.ctrl === false && + component.data.shift === false + ) + ) || + component.data.wheel < 0 && event.deltaY > 0 || + component.data.wheel > 0 && event.deltaY < 0) { + component.data = { + alt: false, + ctrl: false, + shift: false, + keys: {} + }; + } + + component.data.wheel = event.deltaY < 0 ? -1 : 1; + + component.render(); + + return false; + }; + } + + component.addEventListener('click', function () { + satus.render({ + component: 'modal', + properties: { + parent: this + }, + on: { + close: function () { + window.removeEventListener('keydown', component.keydown); + window.removeEventListener('wheel', component.mousewheel); + } + }, + + primary: { + component: 'div', + class: 'satus-shortcut__primary', + on: { + render: function () { + component.primary = this; + + if (component.skeleton.mouseButtons === true) { + this.addEventListener('mousedown', function (event) { + if ( + component.data.click && event.button === 0 || + component.data.middle && event.button === 1 + ) { + component.data = { + alt: false, + ctrl: false, + shift: false, + keys: {} + }; + } + + component.data.click = false; + component.data.middle = false; + component.data.context = false; + + if (event.button === 0) { + component.data.click = true; + + component.render(); + } else if (event.button === 1) { + component.data.middle = true; + + component.render(); + } + }); + + this.addEventListener('contextmenu', function (event) { + event.preventDefault(); + event.stopPropagation(); + + if (component.data.context) { + component.data = { + alt: false, + ctrl: false, + shift: false, + keys: {} + }; + } + + component.data.context = true; + component.data.middle = false; + component.data.click = false; + + component.render(); + + return false; + }); + } + + component.render(); + } + } + }, + actions: { + component: 'section', + variant: 'actions', + + reset: { + component: 'button', + text: 'reset', + on: { + click: function () { + var component = this.parentNode.parentNode.parentNode.parent; + + component.data = component.skeleton.value || {}; + + component.render(component.valueElement); + + satus.storage.remove(component.storage); + + this.parentNode.parentNode.parentNode.close(); + + window.removeEventListener('keydown', component.keydown); + window.removeEventListener('wheel', component.mousewheel); + } + } + }, + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + component.data = satus.storage.get(component.storage) || component.skeleton.value || {}; + + component.render(component.valueElement); + + this.parentNode.parentNode.parentNode.close(); + + window.removeEventListener('keydown', component.keydown); + window.removeEventListener('wheel', component.mousewheel); + } + } + }, + save: { + component: 'button', + text: 'save', + on: { + click: function () { + component.storage.value = component.data; + + component.render(component.valueElement); + + this.parentNode.parentNode.parentNode.close(); + + window.removeEventListener('keydown', component.keydown); + window.removeEventListener('wheel', component.mousewheel); + } + } + } + } + }, this.baseProvider); + + window.addEventListener('keydown', this.keydown); + window.addEventListener('wheel', this.mousewheel); + }); + + component.data = component.storage.value || { + alt: false, + ctrl: false, + shift: false, + keys: {}, + wheel: 0 + }; + + component.render(component.valueElement); +}; +/*-------------------------------------------------------------- +>>> CHECKBOX +--------------------------------------------------------------*/ + +satus.components.checkbox = function (component, skeleton) { + component.input = component.createChildElement('input'); + component.input.type = 'checkbox'; + + component.checkmark = component.createChildElement('div', 'checkmark'); + + component.childrenContainer = component.createChildElement('div', 'content'); + + component.dataset.value = component.storage.value || skeleton.value; + component.input.checked = component.storage.value || skeleton.value; + + component.input.addEventListener('change', function () { + var component = this.parentNode; + + if (this.checked === true) { + component.storage.value = true; + component.dataset.value = 'true'; + } else { + component.storage.value = false; + component.dataset.value = 'false'; + } + }); +}; +/*-------------------------------------------------------------- +>>> SWITCH +--------------------------------------------------------------*/ + +satus.components.switch = function (component, skeleton) { + var value = satus.isset(component.storage.value) ? component.storage.value : skeleton.value; + + if (satus.isFunction(value)) { + value = value(); + } + + component.childrenContainer = component.createChildElement('div', 'content'); + + component.createChildElement('i'); + + component.dataset.value = value; + + component.addEventListener('click', function () { + if (this.dataset.value === 'true') { + this.dataset.value = 'false'; + this.storage.value = false; + } else { + this.dataset.value = 'true'; + this.storage.value = true; + } + }, true); +}; +/*-------------------------------------------------------------- +>>> CONTEXT MENU +--------------------------------------------------------------*/ + +satus.events.on('render', function (component) { + if (component.skeleton.contextMenu) { + component.addEventListener('contextmenu', function (event) { + var base = this.baseProvider, + base_rect = base.getBoundingClientRect(), + x = event.clientX - base_rect.left, + y = event.clientY - base_rect.top, + modal = satus.render({ + component: 'modal', + variant: 'contextmenu', + parentSkeleton: this.skeleton, + baseProvider: base + }, base); + + if (base_rect.width - x < 200) { + x = base_rect.width - x; + + if (x + 200 > base_rect.width) { + x = 0; + } + + modal.childrenContainer.style.right = x + 'px'; + } else { + modal.childrenContainer.style.left = x + 'px'; + } + + modal.childrenContainer.style.top = y + 'px'; + + this.skeleton.contextMenu.parentSkeleton = this.skeleton; + + satus.render(this.skeleton.contextMenu, modal.childrenContainer); + + event.preventDefault(); + event.stopPropagation(); + + return false; + }); + } +}); +/*-------------------------------------------------------------- +>>> SORTABLE +--------------------------------------------------------------*/ + +satus.events.on('render', function (component) { + if (component.skeleton.sortable === true) { + component.addEventListener('mousedown', function (event) { + if (event.button !== 0) { + return false; + } + + var component = this, + rect = this.getBoundingClientRect(), + x = event.clientX, + y = event.clientY, + offset_x = event.clientX - rect.left, + offset_y = event.clientY - rect.top, + ghost = satus.clone(this), + children = this.parentNode.children, + appended = false; + + ghost.classList.add('satus-sortable__ghost'); + + function mousemove(event) { + if (appended === false && (Math.abs(event.clientX - x) > 4 || Math.abs(event.clientY - y) > 4)) { + appended = true; + + component.classList.add('satus-sortable__chosen'); + + component.baseProvider.appendChild(ghost); + } + + ghost.style.transform = 'translate(' + (event.clientX - offset_x) + 'px, ' + (event.clientY - offset_y) + 'px)'; + } + + function mouseup(event) { + component.classList.remove('satus-sortable__chosen'); + ghost.remove(); + + window.removeEventListener('mousemove', mousemove, true); + window.removeEventListener('mouseup', mouseup, true); + + for (var i = 0, l = children.length; i < l; i++) { + var child = children[i]; + + if (child !== component) { + child.removeEventListener('mouseover', siblingMouseOver); + } + } + + component.dispatchEvent(new CustomEvent('sort')); + + event.stopPropagation(); + + return false; + } + + window.addEventListener('mousemove', mousemove, { + passive: true, + capture: true + }); + + window.addEventListener('mouseup', mouseup, { + passive: true, + capture: true + }); + + function siblingMouseOver(event) { + var parent = this.parentNode, + y = event.layerY / (this.offsetHeight / 100); + + if (y < 50 && this.previousSibling !== component || y >= 50 && this.nextSibling === component) { + parent.insertBefore(component, this); + } else { + parent.insertBefore(component, this.nextSibling); + } + } + + for (var i = 0, l = children.length; i < l; i++) { + var child = children[i]; + + if (child !== component) { + child.addEventListener('mouseover', siblingMouseOver); + } + } + + event.stopPropagation(); + event.preventDefault(); + + return false; + }); + } +}); +/*-------------------------------------------------------------- +>>> MANIFEST +--------------------------------------------------------------*/ + +satus.manifest = function () { + var object = {}; + + if (this.isset('chrome.runtime.getManifest')) { + object = chrome.runtime.getManifest(); + } + + return object; +}; +/*-------------------------------------------------------------- +>>> COLOR: +---------------------------------------------------------------- +# String to array +# RGB to HSL +# HUE to RGB +# HSL to RGB +--------------------------------------------------------------*/ + +satus.color = {}; + + +/*-------------------------------------------------------------- +# STRING TO ARRAY +--------------------------------------------------------------*/ + +satus.color.stringToArray = function (string) { + var match = string.match(/[0-9.]+/g); + + if (match) { + for (var i = 0, l = match.length; i < l; i++) { + match[i] = parseFloat(match[i]); + } + } + + return match; +}; + + +/*-------------------------------------------------------------- +# RGB TO HSL +--------------------------------------------------------------*/ + +satus.color.rgbToHsl = function (array) { + var r = array[0] / 255, + g = array[1] / 255, + b = array[2] / 255, + min = Math.min(r, g, b), + max = Math.max(r, g, b), + h = 0, + s = 0, + l = (min + max) / 2; + + if (min === max) { + h = 0; + s = 0; + } else { + var delta = max - min; + + s = l <= 0.5 ? delta / (max + min) : delta / (2 - max - min); + + if (max === r) { + h = (g - b) / delta + (g < b ? 6 : 0); + } else if (max === g) { + h = (b - r) / delta + 2; + } else if (max === b) { + h = (r - g) / delta + 4; + } + + h /= 6; + } + + h *= 360; + s *= 100; + l *= 100; + + if (array.length === 3) { + return [h, s, l]; + } else { + return [h, s, l, array[3]]; + } +}; + + +/*-------------------------------------------------------------- +# HUE TO RGB +--------------------------------------------------------------*/ + +satus.color.hueToRgb = function (array) { + var t1 = array[0], + t2 = array[1], + hue = array[2]; + + if (hue < 0) { + hue += 6; + } + + if (hue >= 6) { + hue -= 6; + } + + if (hue < 1) { + return (t2 - t1) * hue + t1; + } else if (hue < 3) { + return t2; + } else if (hue < 4) { + return (t2 - t1) * (4 - hue) + t1; + } else { + return t1; + } +}; + + +/*-------------------------------------------------------------- +# HSL TO RGB +--------------------------------------------------------------*/ + +satus.color.hslToRgb = function (array) { + var h = array[0] / 360, + s = array[1] / 100, + l = array[2] / 100, + r, g, b; + + if (s == 0) { + r = g = b = l; + } else { + var hue2rgb = function (p, q, t) { + if (t < 0) t += 1; + if (t > 1) t -= 1; + if (t < 1 / 6) return p + (q - p) * 6 * t; + if (t < 1 / 2) return q; + if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; + return p; + }; + + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hue2rgb(p, q, h + 1 / 3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1 / 3); + } + + return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)]; +}; +/*-------------------------------------------------------------- +>>> USER +---------------------------------------------------------------- +# OS + # Name + # Bitness +# Browser + # Name + # Version + # Platform + # Manifest + # Languages + # Cookies + # Flash + # Java + # Audio + # Video + # WebGL +# Device + # Screen + # RAM + # GPU + # Cores + # Touch + # Connection +--------------------------------------------------------------*/ + +satus.user = { + browser: {}, + device: {}, + os: {} +}; + +/*-------------------------------------------------------------- +# OS +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# NAME +--------------------------------------------------------------*/ + +satus.user.os.name = function () { + var app_version = navigator.appVersion; + + if (app_version.indexOf('Win') !== -1) { + if (app_version.match(/(Windows 10.0|Windows NT 10.0)/)) { + return 'Windows 10'; + } else if (app_version.match(/(Windows 8.1|Windows NT 6.3)/)) { + return 'Windows 8.1'; + } else if (app_version.match(/(Windows 8|Windows NT 6.2)/)) { + return 'Windows 8'; + } else if (app_version.match(/(Windows 7|Windows NT 6.1)/)) { + return 'Windows 7'; + } else if (app_version.match(/(Windows NT 6.0)/)) { + return 'Windows Vista'; + } else if (app_version.match(/(Windows NT 5.1|Windows XP)/)) { + return 'Windows XP'; + } else { + return 'Windows'; + } + } else if (app_version.indexOf('(iPhone|iPad|iPod)') !== -1) { + return 'iOS'; + } else if (app_version.indexOf('Mac') !== -1) { + return 'macOS'; + } else if (app_version.indexOf('Android') !== -1) { + return 'Android'; + } else if (app_version.indexOf('OpenBSD') !== -1) { + return 'OpenBSD'; + } else if (app_version.indexOf('SunOS') !== -1) { + return 'SunOS'; + } else if (app_version.indexOf('Linux') !== -1) { + return 'Linux'; + } else if (app_version.indexOf('X11') !== -1) { + return 'UNIX'; + } +}; + + +/*-------------------------------------------------------------- +# BITNESS +--------------------------------------------------------------*/ + +satus.user.os.bitness = function () { + if (navigator.appVersion.match(/(Win64|x64|x86_64|WOW64)/)) { + return '64-bit'; + } else { + return '32-bit'; + } +}; + + +/*-------------------------------------------------------------- +# BROWSER +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# NAME +--------------------------------------------------------------*/ + +satus.user.browser.name = function () { + var user_agent = navigator.userAgent; + + if (user_agent.indexOf('Opera') !== -1) { + return 'Opera'; + } else if (user_agent.indexOf('Vivaldi') !== -1) { + return 'Vivaldi'; + } else if (user_agent.indexOf('Edge') !== -1) { + return 'Edge'; + } else if (user_agent.indexOf('Chrome') !== -1) { + return 'Chrome'; + } else if (user_agent.indexOf('Safari') !== -1) { + return 'Safari'; + } else if (user_agent.indexOf('Firefox') !== -1) { + return 'Firefox'; + } else if (user_agent.indexOf('MSIE') !== -1) { + return 'IE'; + } +}; + + +/*-------------------------------------------------------------- +# VERSION +--------------------------------------------------------------*/ + +satus.user.browser.version = function () { + var browser_name = satus.user.browser.name(), + browser_version = navigator.userAgent.match(new RegExp(browser_name + '/([0-9.]+)')); + + return browser_version[1]; +}; + + +/*-------------------------------------------------------------- +# PLATFORM +--------------------------------------------------------------*/ + +satus.user.browser.platform = function () { + return navigator.platform; +}; + + +/*-------------------------------------------------------------- +# MANIFEST +--------------------------------------------------------------*/ + +satus.user.browser.manifest = function () { + return chrome.runtime.getManifest() || {}; +}; + + +/*-------------------------------------------------------------- +# LANGUAGES +--------------------------------------------------------------*/ + +satus.user.browser.languages = function () { + return navigator.languages; +}; + + +/*-------------------------------------------------------------- +# COOKIES +--------------------------------------------------------------*/ + +satus.user.browser.cookies = function () { + if (document.cookie) { + var random_cookie = 'ta{t`nX6cMXK,Wsc'; + + document.cookie = random_cookie; + + if (document.cookie.indexOf(random_cookie) !== -1) { + return true; + } + } + + return false; +}; + + +/*-------------------------------------------------------------- +# FLASH +--------------------------------------------------------------*/ + +satus.user.browser.flash = function () { + try { + if (new ActiveXObject('ShockwaveFlash.ShockwaveFlash')) { + return true; + } + } catch (error) { + if (navigator.mimeTypes['application/x-shockwave-flash']) { + return true; + } + } + + return false; +}; + + +/*-------------------------------------------------------------- +# JAVA +--------------------------------------------------------------*/ + +satus.user.browser.java = function () { + if (satus.isFunction(navigator.javaEnabled) && navigator.javaEnabled()) { + return true; + } else { + return false; + } +}; + + +/*-------------------------------------------------------------- +# AUDIO +--------------------------------------------------------------*/ + +satus.user.browser.audio = function () { + var audio = document.createElement('audio'), + types = { + mp3: 'audio/mpeg', + mp4: 'audio/mp4', + aif: 'audio/x-aiff' + }, + result = []; + + if (satus.isFunction(audio.canPlayType)) { + for (var key in types) { + var can_play_type = audio.canPlayType(types[key]); + + if (can_play_type !== '') { + result.push(key); + } + } + } + + return result; +}; + + +/*-------------------------------------------------------------- +# VIDEO +--------------------------------------------------------------*/ + +satus.user.browser.video = function () { + var video = document.createElement('video'), + types = { + ogg: 'video/ogg; codecs="theora"', + h264: 'video/mp4; codecs="avc1.42E01E"', + webm: 'video/webm; codecs="vp8, vorbis"', + vp9: 'video/webm; codecs="vp9"', + hls: 'application/x-mpegURL; codecs="avc1.42E01E"' + }, + result = []; + + if (satus.isFunction(video.canPlayType)) { + for (var key in types) { + var can_play_type = video.canPlayType(types[key]); + + if (can_play_type !== '') { + result.push(key); + } + } + } + + return result; +}; + + +/*-------------------------------------------------------------- +# WEBGL +--------------------------------------------------------------*/ + +satus.user.browser.webgl = function () { + var cvs = document.createElement('canvas'), + ctx = cvs.getContext('webgl'); + + return ctx && ctx instanceof WebGLRenderingContext; +}; + + +/*-------------------------------------------------------------- +# HARDWARE +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# SCREEN +--------------------------------------------------------------*/ + +satus.user.device.screen = function () { + if (screen) { + return screen.width + 'x' + screen.height; + } +}; + + +/*-------------------------------------------------------------- +# RAM +--------------------------------------------------------------*/ + +satus.user.device.ram = function () { + if ('deviceMemory' in navigator) { + return navigator.deviceMemory + ' GB'; + } +}; + + +/*-------------------------------------------------------------- +# GPU +--------------------------------------------------------------*/ + +satus.user.device.gpu = function () { + var cvs = document.createElement('canvas'), + ctx = cvs.getContext('webgl'); + + if ( + ctx && + ctx instanceof WebGLRenderingContext && + 'getParameter' in ctx && + 'getExtension' in ctx + ) { + var info = ctx.getExtension('WEBGL_debug_renderer_info'); + + if (info) { + return ctx.getParameter(info.UNMASKED_RENDERER_WEBGL); + } + } +}; + + +/*-------------------------------------------------------------- +# CORES +--------------------------------------------------------------*/ + +satus.user.device.cores = function () { + return navigator.deviceConcurrency; +}; + + +/*-------------------------------------------------------------- +# TOUCH +--------------------------------------------------------------*/ + +satus.user.device.touch = function () { + var result = {}; + + if ( + window.hasOwnProperty('ontouchstart') || + window.DocumentTouch && document instanceof window.DocumentTouch || + navigator.maxTouchPoints > 0 || + window.navigator.msMaxTouchPoints > 0 + ) { + result.touch = true; + result.maxTouchPoints = navigator.maxTouchPoints; + } + + return result; +}; + + +/*-------------------------------------------------------------- +# CONNECTION +--------------------------------------------------------------*/ + +satus.user.device.connection = function () { + var result = {}; + + if (typeof navigator.connection === 'object') { + result.type = navigator.connection.effectiveType || null; + + if (navigator.connection.downlink) { + result.speed = navigator.connection.downlink + ' Mbps'; + } + } + + return result; +}; +/*-------------------------------------------------------------- +# SEARCH +--------------------------------------------------------------*/ + +satus.search = function (query, object, callback) { + var elements = ['switch', 'select', 'slider', 'shortcut', 'radio', 'color-picker'], + threads = 0, + results = {}, + excluded = [ + 'baseProvider', + 'layersProvider', + 'parentObject', + 'parentSkeleton', + 'namespaceURI' + ]; + + query = query.toLowerCase(); + + function parse(items, parent) { + threads++; + + for (var key in items) { + if (excluded.indexOf(key) === -1) { + var item = items[key]; + + if (item.component) { + //console.log(key, item.component); + + if (elements.indexOf(item.component) !== -1 && key.indexOf(query) !== -1) { + results[key] = Object.assign({}, item); + } + } + + if ( + satus.isObject(item) && + !satus.isArray(item) && + !satus.isElement(item) && + !satus.isFunction(item) + ) { + parse(item, items); + } + } + } + + threads--; + + if (threads === 0) { + callback(results); + } + } + + parse(object); +}; diff --git a/background.js b/background.js index f9ed04b8a..f9dcad4bf 100644 --- a/background.js +++ b/background.js @@ -1,7 +1,6 @@ /*-------------------------------------------------------------- >>> BACKGROUND ---------------------------------------------------------------- -# Google Analytics # Uninstall URL # Context menu # Tab focus/blur @@ -12,38 +11,6 @@ # Update listener --------------------------------------------------------------*/ -/*-------------------------------------------------------------- -# GOOGLE ANALYTICS ---------------------------------------------------------------*/ - -var _gaq = []; - -function googleAnalytics(previous_time) { - var version = chrome.runtime.getManifest().version, - script = document.createElement('script'), - current_time = new Date().getTime(); - - _gaq.push(['_setAccount', 'UA-88354155-1']); - _gaq.push(['_setSessionCookieTimeout', 14400000]); - - if (current_time - (previous_time || 0) >= 86400000) { - _gaq.push([ - '_trackPageview', - '/improvedtube-' + version + '/background', - 'page-loaded' - ]); - - chrome.storage.local.set({ - ga: current_time - }); - } - - script.src = 'https://ssl.google-analytics.com/ga.js'; - - document.body.appendChild(script); -} - - /*-------------------------------------------------------------- # UNINSTALL URL --------------------------------------------------------------*/ @@ -258,7 +225,6 @@ function migration(items) { chrome.storage.local.get(function (items) { uninstallURL(); - //googleAnalytics(items.ga); migration(items); }); diff --git a/manifest.json b/manifest.json index 7af262b72..c5e984396 100644 --- a/manifest.json +++ b/manifest.json @@ -6,10 +6,10 @@ "version": "4.0", "default_locale": "en", "icons": { - "128": "icons/128.png", - "16": "icons/16.png", - "32": "icons/32.png", - "48": "icons/48.png" + "128": "assets/icons/128.png", + "16": "assets/icons/16.png", + "32": "assets/icons/32.png", + "48": "assets/icons/48.png" }, "background": { "scripts": [ @@ -17,9 +17,9 @@ ] }, "browser_action": { - "default_popup": "ui/popup.html" + "default_popup": "options-page/index.html" }, - "options_page": "ui/options.html", + "options_page": "options-page/index.html", "content_scripts": [ { "all_frames": true, @@ -39,31 +39,6 @@ "https://www.youtube.com/*" ], "run_at": "document_start" - }, - { - "all_frames": true, - "css": [ - "ui/satus/satus.css", - "ui/styles.css" - ], - "js": [ - "ui/satus/satus.js", - "ui/script.js" - ], - "matches": [ - "https://www.youtube.com/improvedtube" - ], - "run_at": "document_end" - }, - { - "all_frames": true, - "js": [ - "ui/page.js" - ], - "matches": [ - "https://www.youtube.com/improvedtube" - ], - "run_at": "document_start" } ], "offline_enabled": true, diff --git a/options-page/functions.js b/options-page/functions.js new file mode 100644 index 000000000..282dd952f --- /dev/null +++ b/options-page/functions.js @@ -0,0 +1,161 @@ +/*-------------------------------------------------------------- +>>> FUNCTIONS: +---------------------------------------------------------------- +# Attributes +# Export settings +# Import settings +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# ATTRIBUTES +--------------------------------------------------------------*/ + +extension.attributes = function () { + var attributes = { + theme: true, + improvedtube_home: true, + title_version: true, + it_general: true, + it_appearance: true, + it_themes: true, + it_player: true, + it_playlist: true, + it_channel: true, + it_shortcuts: true, + it_blacklist: true, + it_analyzer: true, + layer_animation_scale: true + }; + + for (var attribute in attributes) { + var value = satus.storage.get(attribute); + + if (attribute === 'improvedtube_home') { + attribute = 'home-style'; + } + + if (satus.isset(value)) { + extension.skeleton.rendered.setAttribute(attribute.replace('it_', '').replace(/_/g, '-'), value); + } + } +}; + + +/*-------------------------------------------------------------- +# EXPORT SETTINGS +--------------------------------------------------------------*/ + +extension.exportSettings = function () { + if (location.href.indexOf('action=export-settings') !== -1) { + satus.render({ + component: 'modal', + variant: 'confirm', + content: 'areYouSureYouWantToExportTheData', + buttons: { + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.modalProvider.close(); + } + } + }, + ok: { + component: 'button', + text: 'ok', + on: { + click: function () { + try { + var blob = new Blob([JSON.stringify(satus.storage.data)], { + type: 'application/json;charset=utf-8' + }); + + chrome.permissions.request({ + permissions: ['downloads'] + }, function (granted) { + if (granted) { + chrome.downloads.download({ + url: URL.createObjectURL(blob), + filename: 'improvedtube.json', + saveAs: true + }, function () { + setTimeout(function () { + close(); + }, 1000); + }); + } + }); + } catch (error) { + console.error(error); + } + } + } + } + } + }, extension.skeleton.rendered); + } +}; + + +/*-------------------------------------------------------------- +# IMPORT SETTINGS +--------------------------------------------------------------*/ + +extension.importSettings = function () { + if (location.href.indexOf('action=import-settings') !== -1) { + satus.render({ + component: 'modal', + variant: 'confirm', + content: 'areYouSureYouWantToImportTheData', + buttons: { + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.modalProvider.close(); + } + } + }, + ok: { + component: 'button', + text: 'ok', + on: { + click: function () { + var input = document.createElement('input'); + + input.type = 'file'; + + input.addEventListener('change', function () { + var file_reader = new FileReader(); + + file_reader.onload = function () { + var data = JSON.parse(this.result); + + for (var key in data) { + satus.storage.set(key, data[key]); + } + + setTimeout(function () { + chrome.runtime.sendMessage({ + action: 'import-settings' + }); + + setTimeout(function () { + close(); + }, 128); + }, 256); + }; + + file_reader.readAsText(this.files[0]); + }); + + input.click(); + } + } + } + } + }, extension.skeleton.rendered); + } +}; \ No newline at end of file diff --git a/options-page/index.html b/options-page/index.html new file mode 100644 index 000000000..dd8dd27dc --- /dev/null +++ b/options-page/index.html @@ -0,0 +1,48 @@ + + + + + + ImprovedTube + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/options-page/index.js b/options-page/index.js new file mode 100644 index 000000000..9741582c5 --- /dev/null +++ b/options-page/index.js @@ -0,0 +1,58 @@ +/*-------------------------------------------------------------- +>>> INDEX: +---------------------------------------------------------------- +# Global variable +# Initialization +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# GLOBAL VARIABLE +--------------------------------------------------------------*/ + +var extension = { + skeleton: {} +}; + + +/*-------------------------------------------------------------- +# INITIALIZATION +--------------------------------------------------------------*/ + +satus.storage.import(function (items) { + var language = items.language; + + if (!language || language === 'default') { + language = window.navigator.language; + } + + satus.locale.import(language, function () { + satus.render(extension.skeleton); + + extension.exportSettings(); + extension.importSettings(); + + satus.parentify(extension.skeleton, [ + 'attr', + 'baseProvider', + 'layersProvider', + 'rendered', + 'storage', + 'parentObject', + 'parentSkeleton', + 'childrenContainer', + 'value' + ]); + + extension.attributes(); + }, '_locales/'); + + satus.events.on('storage-set', extension.attributes); +}); + +chrome.runtime.sendMessage({ + action: 'options-page-connected' +}, function (response) { + if (response.isTab) { + document.body.setAttribute('tab', ''); + } +}); \ No newline at end of file diff --git a/options-page/skeleton-parts/active-features.js b/options-page/skeleton-parts/active-features.js new file mode 100644 index 000000000..3c1ad2e14 --- /dev/null +++ b/options-page/skeleton-parts/active-features.js @@ -0,0 +1,134 @@ +/*-------------------------------------------------------------- +>>> ACTIVE FEATURES +--------------------------------------------------------------*/ + +extension.skeleton.header.sectionEnd.menu.on.click.activeFeatures = { + component: 'button', + on: { + click: { + component: 'section', + variant: 'card', + on: { + render: function () { + var component = this; + + satus.search('', extension.skeleton, function (features) { + var skeleton = {}; + + for (var key in features) { + var feature = features[key], + default_value = feature.value, + value = satus.storage.get(feature.storage || key), + parent_object = feature; + + if (!satus.isset(default_value)) { + if (feature.component === 'select') { + if (feature.options && feature.options[0]) { + default_value = feature.options[0].value; + } + } else { + default_value = false; + } + } + + if (satus.isset(value) && value != default_value) { + while ( + parent_object.parentObject && + !parent_object.parentObject.category + ) { + parent_object = parent_object.parentObject; + } + + if (parent_object.parentObject) { + var category = parent_object.parentObject.label.text; + + parent_object = feature; + + while ( + parent_object.parentObject && + parent_object.parentObject.component !== 'button' + ) { + parent_object = parent_object.parentObject; + } + + parent_object = parent_object.parentObject; + + if (parent_object) { + if (parent_object.label) { + var subcategory = parent_object.label.text; + } else { + var subcategory = parent_object.text; + } + + if (category === subcategory) { + var text = satus.locale.get(category); + } else { + var text = satus.locale.get(category) + ' > ' + satus.locale.get(subcategory); + } + + if (!skeleton[category + subcategory]) { + skeleton[category + subcategory] = { + component: 'section', + variant: 'card', + title: text + }; + } + + skeleton[category + subcategory][key] = feature; + } else { + if (!skeleton[category]) { + skeleton[category] = { + component: 'section', + variant: 'card', + title: category + }; + } + + skeleton[category][key] = feature; + } + } + } + } + + if (Object.keys(skeleton).length === 0) { + satus.render({ + component: 'span', + text: 'empty' + }, component); + } else { + satus.render(skeleton, component.parentNode); + + component.remove(); + } + }); + } + } + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'none', + 'stroke-width': '1.75' + }, + + path1: { + component: 'path', + attr: { + 'd': 'M22 11.08V12a10 10 0 11-5.93-9.14' + } + }, + path2: { + component: 'path', + attr: { + 'd': 'M22 4L12 14.01l-3-3' + } + } + }, + label: { + component: 'span', + text: 'activeFeatures' + } +}; \ No newline at end of file diff --git a/options-page/skeleton-parts/analyzer.js b/options-page/skeleton-parts/analyzer.js new file mode 100644 index 000000000..a1a83e20e --- /dev/null +++ b/options-page/skeleton-parts/analyzer.js @@ -0,0 +1,219 @@ +/*-------------------------------------------------------------- +>>> ANALYZER +--------------------------------------------------------------*/ + +extension.skeleton.main.layers.section.analyzer = { + component: 'button', + variant: 'analyzer', + on: { + click: { + analyzer_activation: { + component: 'switch', + variant: 'activation', + text: 'activate' + }, + chartSection: { + component: 'section', + variant: 'card', + title: 'watchTime', + + chart: { + component: 'chart', + type: 'bar', + labels: function () { + var labels = []; + + for (var i = 0; i < 4; i++) { + var hour = i * 6; + + if (satus.storage.get('use_24_hour_format') === false) { + if (hour === 0) { + hour = 12; + } + + if (hour > 12) { + hour = hour - 12 + 'P'; + } else { + hour += 'A'; + } + } else { + if (hour < 10) { + hour = '0' + hour; + } + } + + labels.push(String(hour)); + } + + return labels; + }, + datasets: function () { + var analyzer = satus.storage.get('analyzer'), + datasets = [], + channel_counter = {}, + max = 3600; + + if (satus.isObject(analyzer)) { + var hours = analyzer[ /*new Date().toDateString()*/ 'Sun May 29 2022']; + + if (satus.isObject(hours)) { + for (var hour in hours) { + var channels = hours[hour], + max2 = 0; + + if (satus.isObject(channels)) { + for (var name in channels) { + var seconds = channels[name]; + + if (satus.isNumber(seconds)) { + if (!satus.isObject(channel_counter[name])) { + channel_counter[name] = { + label: name, + data: [] + }; + + for (var i = 0; i < 24; i++) { + channel_counter[name].data.push(0); + } + } + + channel_counter[name].data[hour] = seconds; + + max2 += seconds; + } + } + } + + if (max2 > max) { + max = max2; + } + } + } + } + + for (var i = 0, k = Object.keys(channel_counter), l = k.length; i < l; i++) { + var channel = channel_counter[k[i]]; + + channel.color = satus.color.hslToRgb([360 / l * i, 100, 40]); + + for (var j = 0, m = channel.data.length; j < m; j++) { + channel.data[j] = channel.data[j] / (max / 100); + + if (channel.data[j] < 1) { + channel.data[j] = 0; + } + } + + datasets.push(channel); + } + + return datasets; + } + } + }, + mostViewedChannelsSection: { + component: 'section', + variant: 'card', + title: 'mostViewedChannels', + on: { + render: function () { + var analyzer = satus.storage.get('analyzer'), + array = [], + object = {}; + + if (satus.isObject(analyzer)) { + for (var key in analyzer) { + var date = analyzer[key]; + + if (satus.isObject(date)) { + for (var hour in date) { + var channels = date[hour]; + + if (satus.isObject(channels)) { + for (var name in channels) { + var data = channels[name]; + + if (satus.isNumber(data)) { + if (!satus.isObject(object[name])) { + object[name] = 0; + } + + object[name] += data; + } + } + } + } + } + } + } + + for (var key in object) { + var hours = 0, + minutes = 0, + seconds = object[key]; + + hours = Math.floor(seconds / 60 / 60); + minutes = Math.floor(seconds / 60) % 60; + seconds = Math.floor(seconds - minutes * 60); + + if (hours < 10) { + hours = '0' + hours; + } + + if (minutes < 10) { + minutes = '0' + minutes; + } + + if (seconds < 10) { + seconds = '0' + seconds; + } + + array.push([ + key, + hours + ':' + minutes + ':' + seconds + ]); + } + + if (array.length > 0) { + satus.render({ + component: 'list', + items: satus.sort(array, 'desc', 1).slice(0, 8) + }, this); + } else { + satus.render({ + component: 'span', + text: 'empty' + }, this); + } + } + } + } + } + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'transparent', + 'stroke': 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': '1.75' + }, + + path: { + component: 'path', + attr: { + 'd': 'M21.21 15.89A10 10 0 118 2.83M22 12A10 10 0 0012 2v10z' + } + } + } + }, + label: { + component: 'span', + text: 'analyzer' + } +}; \ No newline at end of file diff --git a/options-page/skeleton-parts/appearance.js b/options-page/skeleton-parts/appearance.js new file mode 100644 index 000000000..ff44c2127 --- /dev/null +++ b/options-page/skeleton-parts/appearance.js @@ -0,0 +1,547 @@ +/*-------------------------------------------------------------- +>>> APPEARANCE +---------------------------------------------------------------- +# Header +# Player +# Details +# Comments +# Footer +# Sidebar +--------------------------------------------------------------*/ + +extension.skeleton.main.layers.section.appearance = { + component: 'button', + variant: 'appearance', + category: true, + on: { + click: { + component: 'section', + variant: 'appearance' + } + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'transparent', + 'stroke': 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': '1.75' + }, + + path: { + component: 'path', + attr: { + 'd': 'M17 3a2.83 2.83 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z' + } + } + } + }, + label: { + component: 'span', + text: 'appearance' + } +}; + + +/*-------------------------------------------------------------- +# HEADER +--------------------------------------------------------------*/ + +extension.skeleton.main.layers.section.appearance.on.click.header = { + component: 'button', + variant: 'header', + text: 'header', + on: { + click: { + component: 'section', + variant: 'card', + + header_position: { + component: 'select', + text: 'position', + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'hidden', + value: 'hidden' + }, { + text: 'hover', + value: 'hover' + }, { + text: 'hiddenOnVideoPage', + value: 'hidden_on_video_page' + }, { + text: 'hoverOnVideoPage', + value: 'hover_on_video_page' + }, { + text: 'static', + value: 'static' + }], + tags: 'hide,hover,static,top' + }, + header_improve_logo: { + component: 'switch', + text: 'improveLogo', + tags: 'youtube' + }, + header_hide_right_buttons: { + component: 'switch', + text: 'hideRightButtons', + tags: 'user' + }, + header_hide_country_code: { + component: 'switch', + text: 'hideCountryCode', + tags: 'country,code' + }, + hide_voice_search_button: { + component: 'switch', + text: 'hideVoiceSearchButton' + } + } + } +}; + + +/*-------------------------------------------------------------- +# PLAYER +--------------------------------------------------------------*/ + +extension.skeleton.main.layers.section.appearance.on.click.player = { + component: 'button', + variant: 'player', + text: 'player', + on: { + click: { + component: 'section', + variant: 'card', + + player_size: { + component: 'select', + variant: 'player-size', + text: 'playerSize', + options: [{ + text: 'doNotChange', + value: 'do_not_change' + }, { + text: 'fullWindow', + value: 'full_window' + }, { + text: 'fitToWindow', + value: 'fit_to_window' + }, { + text: '144p', + value: '144p' + }, { + text: '240p', + value: '240p' + }, { + text: '360p', + value: '360p' + }, { + text: '480p', + value: '480p' + }, { + text: '576p', + value: '576p' + }, { + text: '720p', + value: '720p' + }, { + text: '1080p', + value: '1080p' + }, { + text: '1440p', + value: '1440p' + }, { + text: '2160p', + value: '2160p' + }, { + text: 'custom', + value: 'custom' + }] + }, + customPlayerSizeSection: { + component: 'section', + variant: 'custom-player-size', + + custom_player_size_width: { + component: 'text-field', + placeholder: '1280', + storage: 'custom_player_size_width' + }, + x: { + component: 'span', + text: 'x' + }, + custom_player_size_height: { + component: 'text-field', + placeholder: '720', + storage: 'custom_player_size_height' + } + }, + forced_theater_mode: { + component: 'switch', + text: 'forcedTheaterMode', + tags: 'wide' + }, + hide_gradient_bottom: { + component: 'switch', + text: 'hideGradientBottom' + }, + player_hide_skip_overlay: { + component: 'switch', + text: 'hideSkipOverlay', + value: false, + tags: 'remove,hide' + }, + player_remaining_duration: { + component: 'switch', + text: 'showRemainingDuration', + value: false + }, + always_show_progress_bar: { + component: 'switch', + text: 'alwaysShowProgressBar' + }, + player_color: { + component: 'select', + text: 'playerColor', + options: [{ + text: 'red', + value: 'red' + }, { + text: 'pink', + value: 'pink' + }, { + text: 'purple', + value: 'purple' + }, { + text: 'deepPurple', + value: 'deep_purple' + }, { + text: 'indigo', + value: 'indigo' + }, { + text: 'blue', + value: 'blue' + }, { + text: 'lightBlue', + value: 'light_blue' + }, { + text: 'cyan', + value: 'cyan' + }, { + text: 'teal', + value: 'teal' + }, { + text: 'green', + value: 'green' + }, { + text: 'lightGreen', + value: 'light_green' + }, { + text: 'lime', + value: 'lime' + }, { + text: 'yellow', + value: 'yellow' + }, { + text: 'amber', + value: 'amber' + }, { + text: 'orange', + value: 'orange' + }, { + text: 'deepOrange', + value: 'deep_orange' + }, { + text: 'brown', + value: 'brown' + }, { + text: 'blueGray', + value: 'blue_gray' + }, { + text: 'white', + value: 'white' + }], + tags: 'style' + }, + player_transparent_background: { + component: 'switch', + text: 'transparentBackground' + }, + player_hide_annotations: { + component: 'switch', + text: 'hideAnnotations', + tags: 'hide,remove,elements' + }, + player_hide_cards: { + component: 'switch', + text: 'hideCards', + tags: 'hide,remove,elements' + }, + player_show_cards_on_mouse_hover: { + component: 'switch', + text: 'showCardsOnMouseHover', + tags: 'hide,remove,elements' + }, + player_hide_endscreen: { + component: 'switch', + text: 'hideEndscreen' + }, + player_hd_thumbnail: { + component: 'switch', + text: 'hdThumbnail', + tags: 'preview' + }, + hide_scroll_for_details: { + component: 'switch', + text: 'hideScrollForDetails', + tags: 'remove,hide' + } + } + } +}; + + +/*-------------------------------------------------------------- +# DETAIL +--------------------------------------------------------------*/ + +extension.skeleton.main.layers.section.appearance.on.click.details = { + component: 'button', + variant: 'details', + text: 'details', + on: { + click: { + component: 'section', + variant: 'card', + + hide_details: { + component: 'switch', + text: 'hideDetails', + tags: 'hide,remove' + }, + hide_views_count: { + component: 'switch', + text: 'hideViewsCount', + tags: 'hide,remove' + }, + hide_date: { + component: 'switch', + text: 'hideDate', + tags: 'hide,remove' + }, + likes: { + component: 'select', + text: 'likes', + + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'iconsOnly', + value: 'icons_only' + }, { + text: 'hidden', + value: 'hidden' + }], + tags: 'hide,remove' + }, + hide_share_button: { + component: 'switch', + text: 'hideShareButton', + tags: 'hide,remove' + }, + hide_download_button: { + component: 'switch', + text: 'hideDownloadButton', + tags: 'hide,remove' + }, + hide_thanks_button: { + component: 'switch', + text: 'hideThanksButton', + tags: 'hide,remove' + }, + hide_clip_button: { + component: 'switch', + text: 'hideClipButton', + tags: 'hide,remove' + }, + hide_save_button: { + component: 'switch', + text: 'hideSaveButton', + tags: 'hide,remove' + }, + hide_report_button: { + component: 'switch', + text: 'hideReportButton', + tags: 'hide,remove' + }, + hide_more_button: { + component: 'switch', + text: 'hideMoreButton', + tags: 'hide,remove' + }, + description: { + component: 'select', + text: 'description', + + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'expanded', + value: 'expanded' + }, { + text: 'hidden', + value: 'hidden' + }], + tags: 'hide,remove' + }, + how_long_ago_the_video_was_uploaded: { + component: 'switch', + text: 'howLongAgoTheVideoWasUploaded' + }, + channel_videos_count: { + component: 'switch', + text: 'showChannelVideosCount' + }, + red_dislike_button: { + component: 'switch', + text: 'redDislikeButton' + } + } + } +}; + + +/*-------------------------------------------------------------- +# COMMENTS +--------------------------------------------------------------*/ + +extension.skeleton.main.layers.section.appearance.on.click.comments = { + component: 'button', + variant: 'comments', + text: 'comments', + on: { + click: { + component: 'section', + variant: 'card', + + comments: { + component: 'select', + text: 'comments', + + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'collapsed', + value: 'collapsed' + }, { + text: 'hidden', + value: 'hidden' + }] + }, + hide_author_avatars: { + component: 'switch', + text: 'Hide Avatars' + } + } + } +}; + + +/*-------------------------------------------------------------- +# FOOTER +--------------------------------------------------------------*/ + +extension.skeleton.main.layers.section.appearance.on.click.footer = { + component: 'button', + variant: 'footer', + text: 'footer', + on: { + click: { + component: 'section', + variant: 'card', + + hide_footer: { + component: 'switch', + text: 'hideFooter', + tags: 'bottom' + } + } + } +}; + + +/*-------------------------------------------------------------- +# SIDEBAR +--------------------------------------------------------------*/ + +extension.skeleton.main.layers.section.appearance.on.click.sidebar = { + component: 'button', + variant: 'sidebar', + text: 'sidebar', + on: { + click: { + component: 'section', + variant: 'card', + + related_videos: { + component: 'select', + text: 'relatedVideos', + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'collapsed', + value: 'collapsed' + }, { + text: 'hidden', + value: 'hidden' + }], + tags: 'right' + }, + livechat: { + component: 'select', + text: 'liveChat', + + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'collapsed', + value: 'collapsed' + }, { + text: 'hidden', + value: 'hidden' + }] + }, + hide_playlist: { + component: 'switch', + text: 'hidePlaylist' + }, + sidebar_left: { + component: 'switch', + text: 'moveSidebarLeft' + }, + thumbnails_right: { + component: 'switch', + text: 'moveThumbnailsRight' + }, + thumbnails_hide: { + component: 'switch', + text: 'hideThumbnails' + } + } + } +}; \ No newline at end of file diff --git a/options-page/skeleton-parts/blacklist.js b/options-page/skeleton-parts/blacklist.js new file mode 100644 index 000000000..7a6c4b091 --- /dev/null +++ b/options-page/skeleton-parts/blacklist.js @@ -0,0 +1,213 @@ +/*-------------------------------------------------------------- +>>> BLACKLIST +--------------------------------------------------------------*/ + +extension.skeleton.main.layers.section.blacklist = { + component: 'button', + variant: 'blacklist', + category: true, + on: { + click: { + blacklist_activate: { + component: 'switch', + variant: 'activation', + text: 'activate' + }, + section2: { + component: 'section', + variant: 'card', + + channels: { + component: 'button', + text: 'channels', + on: { + click: { + component: 'section', + variant: 'card', + on: { + render: function () { + var skeleton = {}, + blacklist = satus.storage.get('blacklist'); + + if (blacklist && blacklist.channels) { + for (var key in blacklist.channels) { + var channel = blacklist.channels[key]; + + if (channel !== false) { + skeleton[key] = { + component: 'div', + variant: 'blacklist', + data: { + id: key + }, + + title: { + component: 'div', + text: channel.title || '' + }, + delete: { + component: 'button', + on: { + click: function () { + var blacklist = satus.storage.get('blacklist'), + component = this.parentNode; + + if (blacklist && blacklist.channels) { + delete blacklist.channels[component.dataset.id]; + + satus.storage.set('blacklist', blacklist, function () { + component.remove(); + }); + } + } + }, + + svg: { + component: 'svg', + attr: { + 'fill': 'currentColor', + 'viewBox': '0 0 24 24' + }, + + path: { + component: 'path', + attr: { + 'd': 'M6 19c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v10zM18 4h-2.5l-.7-.7A1 1 0 0 0 14 3H9.9a1 1 0 0 0-.7.3l-.7.7H6c-.6 0-1 .5-1 1s.5 1 1 1h12c.6 0 1-.5 1-1s-.5-1-1-1z' + } + } + } + } + }; + } + } + } + + if (Object.keys(skeleton).length === 0) { + satus.render({ + component: 'span', + text: 'empty' + }, this); + } else { + satus.render(skeleton, this); + } + } + } + } + } + }, + videos: { + component: 'button', + text: 'videos', + on: { + click: { + component: 'section', + variant: 'card', + on: { + render: function () { + var skeleton = {}, + blacklist = satus.storage.get('blacklist'); + + if (blacklist && blacklist.videos) { + for (var key in blacklist.videos) { + var video = blacklist.videos[key]; + + if (video !== false) { + skeleton[key] = { + component: 'div', + variant: 'blacklist', + data: { + id: key + }, + + title: { + component: 'div', + text: video.title || '' + }, + delete: { + component: 'button', + on: { + click: function () { + var blacklist = satus.storage.get('blacklist'), + component = this.parentNode; + + if (blacklist && blacklist.videos) { + delete blacklist.videos[component.dataset.id]; + + satus.storage.set('blacklist', blacklist, function () { + component.remove(); + }); + } + } + }, + + svg: { + component: 'svg', + attr: { + 'fill': 'currentColor', + 'viewBox': '0 0 24 24' + }, + + path: { + component: 'path', + attr: { + 'd': 'M6 19c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v10zM18 4h-2.5l-.7-.7A1 1 0 0 0 14 3H9.9a1 1 0 0 0-.7.3l-.7.7H6c-.6 0-1 .5-1 1s.5 1 1 1h12c.6 0 1-.5 1-1s-.5-1-1-1z' + } + } + } + } + }; + } + } + } + + if (Object.keys(skeleton).length === 0) { + satus.render({ + component: 'span', + text: 'empty' + }, this); + } else { + satus.render(skeleton, this); + } + } + } + } + } + } + } + } + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'transparent', + 'stroke': 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': '1.75' + }, + + circle: { + component: 'circle', + attr: { + 'cx': '12', + 'cy': '12', + 'r': '10' + } + }, + path: { + component: 'path', + attr: { + 'd': 'M4.93 4.93l14.14 14.14' + } + } + } + }, + label: { + component: 'span', + text: 'blacklist' + } +}; \ No newline at end of file diff --git a/options-page/skeleton-parts/channel.js b/options-page/skeleton-parts/channel.js new file mode 100644 index 000000000..2167718dc --- /dev/null +++ b/options-page/skeleton-parts/channel.js @@ -0,0 +1,80 @@ +/*-------------------------------------------------------------- +>>> CHANNEL +--------------------------------------------------------------*/ + +extension.skeleton.main.layers.section.channel = { + component: 'button', + variant: 'channel', + category: true, + on: { + click: { + component: 'section', + variant: 'card', + + channel_default_tab: { + component: 'select', + text: 'defaultChannelTab', + options: [{ + text: 'home', + value: '/home' + }, { + text: 'videos', + value: '/videos' + }, { + text: 'playlists', + value: '/playlists' + }] + }, + channel_trailer_autoplay: { + component: 'switch', + text: 'trailerAutoplay', + value: true + }, + channel_play_all_button: { + component: 'switch', + text: 'playAllButton' + }, + channel_hide_featured_content: { + component: 'switch', + text: 'hideFeaturedContent' + } + } + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'transparent', + 'stroke': 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': '1.75' + }, + + rect: { + component: 'rect', + attr: { + 'width': '20', + 'height': '15', + 'x': '2', + 'y': '7', + 'rx': '2', + 'ry': '2' + } + }, + path: { + component: 'path', + attr: { + 'd': 'M17 2l-5 5-5-5' + } + } + } + }, + label: { + component: 'span', + text: 'channel' + } +}; \ No newline at end of file diff --git a/options-page/skeleton-parts/general.js b/options-page/skeleton-parts/general.js new file mode 100644 index 000000000..de8aff9f8 --- /dev/null +++ b/options-page/skeleton-parts/general.js @@ -0,0 +1,1296 @@ +/*-------------------------------------------------------------- +>>> GENERAL +--------------------------------------------------------------*/ + +extension.skeleton.main.layers.section.general = { + component: 'button', + variant: 'general', + category: true, + on: { + click: [{ + component: 'section', + variant: 'card', + + youtube_home_page: { + component: 'select', + text: 'youtubeHomePage', + options: [{ + text: 'home', + value: '/' + }, { + text: 'trending', + value: '/feed/trending' + }, { + text: 'subscriptions', + value: '/feed/subscriptions' + }, { + text: 'history', + value: '/feed/history' + }, { + text: 'watchLater', + value: '/playlist?list=WL' + }, { + text: 'search', + value: 'search' + }, { + text: 'liked', + value: '/playlist?list=LL' + }, { + text: 'library', + value: '/feed/library' + }], + tags: 'trending,subscriptions,history,watch,search' + }, + collapse_of_subscription_sections: { + component: 'switch', + text: 'collapseOfSubscriptionSections' + }, + remove_related_search_results: { + component: 'switch', + text: 'removeRelatedSearchResults' + }, + only_one_player_instance_playing: { + component: 'switch', + text: 'onlyOnePlayerInstancePlaying' + }, + scroll_bar: { + component: 'select', + text: 'scrollBar', + options: [{ + text: 'default', + value: 'default' + }, { + text: 'hidden', + value: 'hidden' + }] + }, + add_scroll_to_top: { + component: 'switch', + text: 'addScrollToTop', + tags: 'up' + }, + limit_page_width: { + component: 'switch', + text: 'limitPageWidth', + value: true + }, + squared_user_images: { + component: 'switch', + text: 'squaredUserImages', + tags: 'avatar' + }, + confirmation_before_closing: { + component: 'switch', + text: 'confirmationBeforeClosing', + tags: 'random prevent close exit' + }, + default_content_country: { + component: 'select', + text: 'defaultContentCountry', + options: [{ + text: "default", + value: "default" + }, + { + text: "Afghanistan", + value: "AF" + }, + { + text: "Albania", + value: "AL" + }, + { + text: "Algeria", + value: "DZ" + }, + { + text: "American Samoa", + value: "AS" + }, + { + text: "Andorra", + value: "AD" + }, + { + text: "Angola", + value: "AO" + }, + { + text: "Anguilla", + value: "AI" + }, + { + text: "Antarctica", + value: "AQ" + }, + { + text: "Antigua and Barbuda", + value: "AG" + }, + { + text: "Argentina", + value: "AR" + }, + { + text: "Armenia", + value: "AM" + }, + { + text: "Aruba", + value: "AW" + }, + { + text: "Australia", + value: "AU" + }, + { + text: "Austria", + value: "AT" + }, + { + text: "Azerbaijan", + value: "AZ" + }, + { + text: "Bahrain", + value: "BH" + }, + { + text: "Bailiwick of Guernsey", + value: "GG" + }, + { + text: "Bangladesh", + value: "BD" + }, + { + text: "Barbados", + value: "BB" + }, + { + text: "Belarus", + value: "BY" + }, + { + text: "Belgium", + value: "BE" + }, + { + text: "Belize", + value: "BZ" + }, + { + text: "Benin", + value: "BJ" + }, + { + text: "Bermuda", + value: "BM" + }, + { + text: "Bhutan", + value: "BT" + }, + { + text: "Bolivia", + value: "BO" + }, + { + text: "Bonaire", + value: "BQ" + }, + { + text: "Bosnia and Herzegovina", + value: "BA" + }, + { + text: "Botswana", + value: "BW" + }, + { + text: "Bouvet Island", + value: "BV" + }, + { + text: "Brazil", + value: "BR" + }, + { + text: "British Indian Ocean Territory", + value: "IO" + }, + { + text: "British Virgin Islands", + value: "VG" + }, + { + text: "Brunei", + value: "BN" + }, + { + text: "Bulgaria", + value: "BG" + }, + { + text: "Burkina Faso", + value: "BF" + }, + { + text: "Burundi", + value: "BI" + }, + { + text: "Cambodia", + value: "KH" + }, + { + text: "Cameroon", + value: "CM" + }, + { + text: "Canada", + value: "CA" + }, + { + text: "Cape Verde", + value: "CV" + }, + { + text: "Cayman Islands", + value: "KY" + }, + { + text: "Central African Republic", + value: "CF" + }, + { + text: "Chad", + value: "TD" + }, + { + text: "Chile", + value: "CL" + }, + { + text: "China", + value: "CN" + }, + { + text: "Christmas Island", + value: "CX" + }, + { + text: "Cocos (Keeling) Islands", + value: "CC" + }, + { + text: "Collectivity of Saint Martin", + value: "MF" + }, + { + text: "Colombia", + value: "CO" + }, + { + text: "Comoros", + value: "KM" + }, + { + text: "Cook Islands", + value: "CK" + }, + { + text: "Costa Rica", + value: "CR" + }, + { + text: "Croatia", + value: "HR" + }, + { + text: "Cuba", + value: "CU" + }, + { + text: "Curaçao", + value: "CW" + }, + { + text: "Cyprus", + value: "CY" + }, + { + text: "Czech Republic", + value: "CZ" + }, + { + text: "Democratic Republic of the Congo", + value: "CD" + }, + { + text: "Denmark", + value: "DK" + }, + { + text: "Djibouti", + value: "DJ" + }, + { + text: "Dominica", + value: "DM" + }, + { + text: "Dominican Republic", + value: "DO" + }, + { + text: "East Timor", + value: "TL" + }, + { + text: "Ecuador", + value: "EC" + }, + { + text: "Egypt", + value: "EG" + }, + { + text: "El Salvador", + value: "SV" + }, + { + text: "Equatorial Guinea", + value: "GQ" + }, + { + text: "Eritrea", + value: "ER" + }, + { + text: "Estonia", + value: "EE" + }, + { + text: "Eswatini", + value: "SZ" + }, + { + text: "Ethiopia", + value: "ET" + }, + { + text: "Falkland Islands", + value: "FK" + }, + { + text: "Faroe Islands", + value: "FO" + }, + { + text: "Federated States of Micronesia", + value: "FM" + }, + { + text: "Fiji", + value: "FJ" + }, + { + text: "Finland", + value: "FI" + }, + { + text: "France", + value: "FR" + }, + { + text: "French Guiana", + value: "GF" + }, + { + text: "French Polynesia", + value: "PF" + }, + { + text: "French Southern and Antarctic Lands", + value: "TF" + }, + { + text: "Gabon", + value: "GA" + }, + { + text: "Georgia (country)", + value: "GE" + }, + { + text: "Germany", + value: "DE" + }, + { + text: "Ghana", + value: "GH" + }, + { + text: "Gibraltar", + value: "GI" + }, + { + text: "Greece", + value: "GR" + }, + { + text: "Greenland", + value: "GL" + }, + { + text: "Grenada", + value: "GD" + }, + { + text: "Guadeloupe", + value: "GP" + }, + { + text: "Guam", + value: "GU" + }, + { + text: "Guatemala", + value: "GT" + }, + { + text: "Guinea", + value: "GN" + }, + { + text: "Guinea-Bissau", + value: "GW" + }, + { + text: "Guyana", + value: "GY" + }, + { + text: "Haiti", + value: "HT" + }, + { + text: "Heard Island and McDonald Islands", + value: "HM" + }, + { + text: "Holy See", + value: "VA" + }, + { + text: "Honduras", + value: "HN" + }, + { + text: "Hong Kong", + value: "HK" + }, + { + text: "Hungary", + value: "HU" + }, + { + text: "Iceland", + value: "IS" + }, + { + text: "India", + value: "IN" + }, + { + text: "Indonesia", + value: "ID" + }, + { + text: "Iran", + value: "IR" + }, + { + text: "Iraq", + value: "IQ" + }, + { + text: "Isle of Man", + value: "IM" + }, + { + text: "Israel", + value: "IL" + }, + { + text: "Italy", + value: "IT" + }, + { + text: "Ivory Coast", + value: "CI" + }, + { + text: "Jamaica", + value: "JM" + }, + { + text: "Japan", + value: "JP" + }, + { + text: "Jersey", + value: "JE" + }, + { + text: "Jordan", + value: "JO" + }, + { + text: "Kazakhstan", + value: "KZ" + }, + { + text: "Kenya", + value: "KE" + }, + { + text: "Kiribati", + value: "KI" + }, + { + text: "Kuwait", + value: "KW" + }, + { + text: "Kyrgyzstan", + value: "KG" + }, + { + text: "Laos", + value: "LA" + }, + { + text: "Latvia", + value: "LV" + }, + { + text: "Lebanon", + value: "LB" + }, + { + text: "Lesotho", + value: "LS" + }, + { + text: "Liberia", + value: "LR" + }, + { + text: "Libya", + value: "LY" + }, + { + text: "Liechtenstein", + value: "LI" + }, + { + text: "Lithuania", + value: "LT" + }, + { + text: "Luxembourg", + value: "LU" + }, + { + text: "Macau", + value: "MO" + }, + { + text: "Madagascar", + value: "MG" + }, + { + text: "Malawi", + value: "MW" + }, + { + text: "Malaysia", + value: "MY" + }, + { + text: "Maldives", + value: "MV" + }, + { + text: "Mali", + value: "ML" + }, + { + text: "Malta", + value: "MT" + }, + { + text: "Marshall Islands", + value: "MH" + }, + { + text: "Martinique", + value: "MQ" + }, + { + text: "Mauritania", + value: "MR" + }, + { + text: "Mauritius", + value: "MU" + }, + { + text: "Mayotte", + value: "YT" + }, + { + text: "Mexico", + value: "MX" + }, + { + text: "Moldova", + value: "MD" + }, + { + text: "Monaco", + value: "MC" + }, + { + text: "Mongolia", + value: "MN" + }, + { + text: "Montenegro", + value: "ME" + }, + { + text: "Montserrat", + value: "MS" + }, + { + text: "Morocco", + value: "MA" + }, + { + text: "Mozambique", + value: "MZ" + }, + { + text: "Myanmar", + value: "MM" + }, + { + text: "Namibia", + value: "NA" + }, + { + text: "Nauru", + value: "NR" + }, + { + text: "Nepal", + value: "NP" + }, + { + text: "Netherlands", + value: "NL" + }, + { + text: "New Caledonia", + value: "NC" + }, + { + text: "New Zealand", + value: "NZ" + }, + { + text: "Nicaragua", + value: "NI" + }, + { + text: "Niger", + value: "NE" + }, + { + text: "Nigeria", + value: "NG" + }, + { + text: "Niue", + value: "NU" + }, + { + text: "Norfolk Island", + value: "NF" + }, + { + text: "North Korea", + value: "KP" + }, + { + text: "North Macedonia", + value: "MK" + }, + { + text: "Northern Mariana Islands", + value: "MP" + }, + { + text: "Norway", + value: "NO" + }, + { + text: "Oman", + value: "OM" + }, + { + text: "Pakistan", + value: "PK" + }, + { + text: "Palau", + value: "PW" + }, + { + text: "Panama", + value: "PA" + }, + { + text: "Papua New Guinea", + value: "PG" + }, + { + text: "Paraguay", + value: "PY" + }, + { + text: "Peru", + value: "PE" + }, + { + text: "Philippines", + value: "PH" + }, + { + text: "Pitcairn Islands", + value: "PN" + }, + { + text: "Poland", + value: "PL" + }, + { + text: "Portugal", + value: "PT" + }, + { + text: "Puerto Rico", + value: "PR" + }, + { + text: "Qatar", + value: "QA" + }, + { + text: "Republic of Ireland", + value: "IE" + }, + { + text: "Republic of the Congo", + value: "CG" + }, + { + text: "Romania", + value: "RO" + }, + { + text: "Russia", + value: "RU" + }, + { + text: "Rwanda", + value: "RW" + }, + { + text: "Réunion", + value: "RE" + }, + { + text: "Saint Barthélemy", + value: "BL" + }, + { + text: "Saint Helena", + value: "SH" + }, + { + text: "Saint Kitts and Nevis", + value: "KN" + }, + { + text: "Saint Lucia", + value: "LC" + }, + { + text: "Saint Pierre and Miquelon", + value: "PM" + }, + { + text: "Saint Vincent and the Grenadines", + value: "VC" + }, + { + text: "Samoa", + value: "WS" + }, + { + text: "San Marino", + value: "SM" + }, + { + text: "Saudi Arabia", + value: "SA" + }, + { + text: "Senegal", + value: "SN" + }, + { + text: "Serbia", + value: "RS" + }, + { + text: "Seychelles", + value: "SC" + }, + { + text: "Sierra Leone", + value: "SL" + }, + { + text: "Singapore", + value: "SG" + }, + { + text: "Sint Maarten", + value: "SX" + }, + { + text: "Slovakia", + value: "SK" + }, + { + text: "Slovenia", + value: "SI" + }, + { + text: "Solomon Islands", + value: "SB" + }, + { + text: "Somalia", + value: "SO" + }, + { + text: "South Africa", + value: "ZA" + }, + { + text: "South Georgia and the South Sandwich Islands", + value: "GS" + }, + { + text: "South Korea", + value: "KR" + }, + { + text: "South Sudan", + value: "SS" + }, + { + text: "Spain", + value: "ES" + }, + { + text: "Sri Lanka", + value: "LK" + }, + { + text: "State of Palestine", + value: "PS" + }, + { + text: "Sudan", + value: "SD" + }, + { + text: "Suriname", + value: "SR" + }, + { + text: "Svalbard", + value: "SJ" + }, + { + text: "Sweden", + value: "SE" + }, + { + text: "Switzerland", + value: "CH" + }, + { + text: "Syria", + value: "SY" + }, + { + text: "São Tomé and Príncipe", + value: "ST" + }, + { + text: "Taiwan", + value: "TW" + }, + { + text: "Tajikistan", + value: "TJ" + }, + { + text: "Tanzania", + value: "TZ" + }, + { + text: "Thailand", + value: "TH" + }, + { + text: "The Bahamas", + value: "BS" + }, + { + text: "The Gambia", + value: "GM" + }, + { + text: "Togo", + value: "TG" + }, + { + text: "Tokelau", + value: "TK" + }, + { + text: "Tonga", + value: "TO" + }, + { + text: "Trinidad and Tobago", + value: "TT" + }, + { + text: "Tunisia", + value: "TN" + }, + { + text: "Turkey", + value: "TR" + }, + { + text: "Turkmenistan", + value: "TM" + }, + { + text: "Turks and Caicos Islands", + value: "TC" + }, + { + text: "Tuvalu", + value: "TV" + }, + { + text: "Uganda", + value: "UG" + }, + { + text: "Ukraine", + value: "UA" + }, + { + text: "United Arab Emirates", + value: "AE" + }, + { + text: "United Kingdom", + value: "GB" + }, + { + text: "United States Virgin Islands", + value: "VI" + }, + { + text: "United States", + value: "UM" + }, + { + text: "United States", + value: "US" + }, + { + text: "Uruguay", + value: "UY" + }, + { + text: "Uzbekistan", + value: "UZ" + }, + { + text: "Vanuatu", + value: "VU" + }, + { + text: "Venezuela", + value: "VE" + }, + { + text: "Vietnam", + value: "VN" + }, + { + text: "Wallis and Futuna", + value: "WF" + }, + { + text: "Western Sahara", + value: "EH" + }, + { + text: "Yemen", + value: "YE" + }, + { + text: "Zambia", + value: "ZM" + }, + { + text: "Zimbabwe", + value: "ZW" + }, + { + text: "Åland Islands", + value: "AX" + } + ] + }, + popup_window_buttons: { + component: 'switch', + text: 'popupWindowButtons', + }, + font: { + component: 'select', + text: 'font', + options: [{ + text: 'default', + value: 'Default' + }, { + text: 'Comfortaa', + value: 'Comfortaa' + }, { + text: 'Lato', + value: 'Lato' + }, { + text: 'Marriweather', + value: 'Marriweather' + }, { + text: 'Montserrat', + value: 'Montserrat' + }, { + text: 'Noto Sans', + value: 'Noto+Sans' + }, { + text: 'Open Sans', + value: 'Open+Sans' + }, { + text: 'Oswald', + value: 'Oswald' + }, { + text: 'Poppins', + value: 'Poppins' + }, { + text: 'PT Sans', + value: 'PT+Sans' + }, { + text: 'Raleway', + value: 'Raleway' + }, { + text: 'Roboto Condensed', + value: 'Roboto+Condensed' + }, { + text: 'Roboto Mono', + value: 'Roboto+Mono' + }, { + text: 'Roboto Slab', + value: 'Roboto+Slab' + }, { + text: 'Source Sans Pro', + value: 'Source+Sans+Pro' + }] + } + }, + { + component: 'section', + variant: 'card', + title: 'watchedVideos', + + mark_watched_videos: { + component: 'switch', + text: 'markWatchedVideos', + on: { + click: function () { + if (satus.storage.get('mark_watched_videos')) { + if (!satus.storage.get('track_watched_videos')) { + this.nextSibling.click(); + } + } + } + } + }, + track_watched_videos: { + component: 'switch', + text: 'trackWatchedVideos' + }, + delete_watched_videos: { + component: 'button', + text: 'deleteWatchedVideos', + style: { + justifyContent: 'space-between' + }, + on: { + click: { + component: 'modal', + variant: 'confirm', + content: 'thisWillRemoveAllWatchedVideos', + buttons: { + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.modalProvider.close(); + } + } + }, + reset: { + component: 'button', + text: 'accept', + on: { + click: function () { + var modal = this.parentNode.parentNode.parentNode; + + satus.storage.remove('watched'); + + modal.skeleton.parentSkeleton.counter.rendered.textContent = '0'; + + modal.close(); + } + } + } + } + } + }, + + counter: { + component: 'span', + style: { + opacity: .64 + }, + on: { + render: function () { + var watched = satus.storage.get('watched'); + + if (watched) { + this.textContent = Object.keys(watched).length; + } else { + this.textContent = '0'; + } + } + } + } + } + }, + { + component: 'section', + variant: 'card', + title: 'thumbnails', + + thumbnails_quality: { + component: 'select', + text: 'thumbnailsQuality', + options: [{ + text: 'default', + value: 'null' + }, { + text: 'low', + value: 'default' + }, { + text: 'medium', + value: 'mqdefault' + }, { + text: 'high', + value: 'hqdefault' + }, { + text: 'sd', + value: 'sddefault' + }, { + text: 'hd', + value: 'maxresdefault' + }], + tags: 'preview quality' + }, + hide_animated_thumbnails: { + component: 'switch', + text: 'hideAnimatedThumbnails', + tags: 'preview' + }, + hide_thumbnail_overlay: { + component: 'switch', + text: 'hideThumbnailOverlay', + tags: 'preview' + } + } + ] + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'none', + 'stroke': 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': '1.75' + }, + + path: { + component: 'path', + attr: { + 'd': 'M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1zM4 22v-7' + } + } + } + }, + label: { + component: 'span', + text: 'general' + } +}; \ No newline at end of file diff --git a/options-page/skeleton-parts/mixer.js b/options-page/skeleton-parts/mixer.js new file mode 100644 index 000000000..ec472b3da --- /dev/null +++ b/options-page/skeleton-parts/mixer.js @@ -0,0 +1,127 @@ +/*-------------------------------------------------------------- +>>> MIXER +--------------------------------------------------------------*/ + +extension.skeleton.header.sectionEnd.menu.on.click.mixer = { + component: 'button', + on: { + click: { + component: 'section', + variant: 'card', + on: { + render: function () { + var component = this, + parent = component.parentNode; + + if (chrome && chrome.tabs) { + chrome.tabs.query({}, function (tabs) { + satus.render({ + component: 'span', + text: 'noOpenVideoTabs' + }, component); + + for (var i = 0, l = tabs.length; i < l; i++) { + var tab = tabs[i]; + + chrome.tabs.sendMessage(tab.id, { + action: 'mixer' + }, function (response) { + if (response) { + console.log(response); + if (component) { + component.remove(); + + component = undefined; + } + + satus.render({ + component: 'section', + class: 'satus-section--mixer', + style: { + 'backgroundImage': 'url(https://img.youtube.com/vi/' + response.url + '/0.jpg)', + }, + + title: { + component: 'h1', + text: response.title + }, + section: { + component: 'section', + data: { + 'noConnectionLabel': satus.locale.get('tryToReloadThePage') || 'tryToReloadThePage' + }, + + mixer_volume: { + component: 'slider', + variant: 'row', + text: 'volume', + data: { + id: response.tabId + }, + storage: false, + step: 1, + min: 0, + max: 100, + value: response.volume, + on: { + change: function () { + chrome.tabs.sendMessage(Number(this.dataset.id), { + action: 'set-volume', + value: this.storage.value + }); + } + } + }, + mixer_playback_speed: { + component: 'slider', + variant: 'row', + text: 'playbackSpeed', + data: { + id: response.tabId + }, + storage: false, + min: .1, + max: 8, + step: .05, + value: response.playbackRate, + on: { + change: function () { + chrome.tabs.sendMessage(Number(this.dataset.id), { + action: 'set-playback-speed', + value: this.storage.value + }); + } + } + } + } + }, parent); + } + }); + } + }); + } + } + } + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'none', + 'stroke-width': '1.75' + }, + + path: { + component: 'path', + attr: { + 'd': 'M11 5L6 9H2v6h4l5 4V5zM19.07 4.93a10 10 0 010 14.14M15.54 8.46a5 5 0 010 7.07' + } + } + }, + label: { + component: 'span', + text: 'mixer' + } +}; \ No newline at end of file diff --git a/options-page/skeleton-parts/night-mode.js b/options-page/skeleton-parts/night-mode.js new file mode 100644 index 000000000..e4861db04 --- /dev/null +++ b/options-page/skeleton-parts/night-mode.js @@ -0,0 +1,96 @@ +/*-------------------------------------------------------------- +>>> NIGHT MODE +--------------------------------------------------------------*/ + +extension.skeleton.header.sectionEnd.menu.on.click.nightMode = { + component: 'button', + category: true, + on: { + click: { + filters: { + component: 'section', + variant: 'card', + title: 'filters', + + dim: { + component: 'slider', + variant: 'row', + text: 'dim', + step: 1, + max: 90, + value: 0 + }, + bluelight: { + component: 'slider', + variant: 'row', + text: 'bluelight', + step: 1, + max: 90, + value: 0 + } + }, + schedule: { + component: 'section', + variant: 'card', + title: 'schedule', + + schedule: { + component: 'select', + text: 'activate', + + options: [{ + text: 'disabled', + value: 'disabled' + }, { + text: 'sunsetToSunrise', + value: 'sunset_to_sunrise' + }, { + text: 'systemPeferenceDark', + value: 'system_peference_dark' + }, { + text: 'systemPeferenceLight', + value: 'system_peference_light' + }] + }, + schedule_time_from: { + component: 'time', + text: 'timeFrom', + variant: 'from', + hour12: function () { + return satus.storage.get('use_24_hour_format') === false; + } + }, + schedule_time_to: { + component: 'time', + text: 'timeTo', + variant: 'to', + hour12: function () { + return satus.storage.get('use_24_hour_format') === false; + } + } + } + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'none', + 'stroke-linecap': 'round', + 'stroke-linejoin': 'round', + 'stroke-width': '1.75' + }, + + path1: { + component: 'path', + attr: { + 'd': 'M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z' + } + } + }, + label: { + component: 'span', + text: 'nightMode' + } +}; \ No newline at end of file diff --git a/options-page/skeleton-parts/player.js b/options-page/skeleton-parts/player.js new file mode 100644 index 000000000..0c91b93a5 --- /dev/null +++ b/options-page/skeleton-parts/player.js @@ -0,0 +1,1077 @@ +/*-------------------------------------------------------------- +>>> PLAYER +--------------------------------------------------------------*/ + +extension.skeleton.main.layers.section.player = { + component: 'button', + variant: 'player', + category: true, + on: { + click: {} + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'transparent', + 'stroke': 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': '1.75' + }, + + path: { + component: 'path', + attr: { + 'd': 'M5 3l14 9-14 9V3z' + } + } + } + }, + label: { + component: 'span', + text: 'player' + } +}; + + +/*-------------------------------------------------------------- +# SECTION +--------------------------------------------------------------*/ + +extension.skeleton.main.layers.section.player.on.click = { + section_1: { + component: 'section', + variant: 'card', + + autoplay: { + component: 'switch', + text: 'autoplay', + value: true, + storage: 'player_autoplay' + }, + quality: { + component: 'select', + text: 'quality', + options: [{ + text: 'auto', + value: 'auto' + }, { + text: '144p', + value: 'tiny' + }, { + text: '240p', + value: 'small' + }, { + text: '360p', + value: 'medium' + }, { + text: '480p', + value: 'large' + }, { + text: '720p', + value: 'hd720' + }, { + text: '1080p', + value: 'hd1080' + }, { + text: '1440p', + value: 'hd1440' + }, { + text: '2160p', + value: 'hd2160' + }, { + text: '2880p', + value: 'hd2880' + }, { + text: '4320p', + value: 'highres' + }], + storage: 'player_quality' + }, + player_forced_volume: { + component: 'switch', + text: 'forcedVolume', + id: 'forced-volume' + }, + player_volume: { + component: 'slider', + text: 'volume', + step: 1, + max: 400, + value: 100 + }, + player_forced_playback_speed: { + component: 'switch', + text: 'forcedPlaybackSpeed', + id: 'forced-playback-speed' + }, + player_playback_speed: { + component: 'slider', + text: 'playbackSpeed', + textarea: true, + value: 1, + min: .1, + max: 8, + step: .05 + }, + forced_play_video_from_the_beginning: { + component: 'switch', + text: 'forcedPlayVideoFromTheBeginning' + }, + autofullscreen: { + component: 'switch', + text: 'autoFullscreen', + storage: 'player_autofullscreen' + }, + autopause_when_switching_tabs: { + component: 'switch', + text: 'autopauseWhenSwitchingTabs', + storage: 'player_autopause_when_switching_tabs' + }, + subtitles: { + component: 'button', + text: 'subtitles', + on: { + click: { + component: 'section', + variant: 'card', + + player_subtitles: { + component: 'switch', + text: 'subtitles' + }, + auto_generate: { + component: 'switch', + text: 'Allow auto generate' + }, + subtitles_language: { + component: 'select', + text: 'language', + options: [{ + value: 'default', + text: 'default' + }, + { + value: 'af', + text: 'Afrikaans' + }, + { + value: 'sq', + text: 'Albanian' + }, + { + value: 'am', + text: 'Amharic' + }, + { + value: 'ar', + text: 'Arabic' + }, + { + value: 'hy', + text: 'Armenian' + }, + { + value: 'az', + text: 'Azerbaijani' + }, + { + value: 'bn', + text: 'Bangla' + }, + { + value: 'eu', + text: 'Basque' + }, + { + value: 'be', + text: 'Belarusian' + }, + { + value: 'bs', + text: 'Bosnian' + }, + { + value: 'bg', + text: 'Bulgarian' + }, + { + value: 'my', + text: 'Burmese' + }, + { + value: 'ca', + text: 'Catalan' + }, + { + value: 'ceb', + text: 'Cebuano' + }, + { + value: 'zh-Hans', + text: 'Chinese (Simplified)' + }, + { + value: 'zh-Hant', + text: 'Chinese (Traditional)' + }, + { + value: 'co', + text: 'Corsican' + }, + { + value: 'hr', + text: 'Croatian' + }, + { + value: 'cs', + text: 'Czech' + }, + { + value: 'da', + text: 'Danish' + }, + { + value: 'nl', + text: 'Dutch' + }, + { + value: 'en', + text: 'English' + }, + { + value: 'eo', + text: 'Esperanto' + }, + { + value: 'et', + text: 'Estonian' + }, + { + value: 'fil', + text: 'Filipino' + }, + { + value: 'fi', + text: 'Finnish' + }, + { + value: 'fr', + text: 'French' + }, + { + value: 'gl', + text: 'Galician' + }, + { + value: 'ka', + text: 'Georgian' + }, + { + value: 'de', + text: 'German' + }, + { + value: 'el', + text: 'Greek' + }, + { + value: 'gu', + text: 'Gujarati' + }, + { + value: 'ht', + text: 'Haitian Creole' + }, + { + value: 'ha', + text: 'Hausa' + }, + { + value: 'haw', + text: 'Hawaiian' + }, + { + value: 'iw', + text: 'Hebrew' + }, + { + value: 'hi', + text: 'Hindi' + }, + { + value: 'hmn', + text: 'Hmong' + }, + { + value: 'hu', + text: 'Hungarian' + }, + { + value: 'is', + text: 'Icelandic' + }, + { + value: 'ig', + text: 'Igbo' + }, + { + value: 'id', + text: 'Indonesian' + }, + { + value: 'ga', + text: 'Irish' + }, + { + value: 'it', + text: 'Italian' + }, + { + value: 'ja', + text: 'Japanese' + }, + { + value: 'jv', + text: 'Javanese' + }, + { + value: 'kn', + text: 'Kannada' + }, + { + value: 'kk', + text: 'Kazakh' + }, + { + value: 'km', + text: 'Khmer' + }, + { + value: 'rw', + text: 'Kinyarwanda' + }, + { + value: 'ko', + text: 'Korean' + }, + { + value: 'ku', + text: 'Kurdish' + }, + { + value: 'ky', + text: 'Kyrgyz' + }, + { + value: 'lo', + text: 'Lao' + }, + { + value: 'la', + text: 'Latin' + }, + { + value: 'lv', + text: 'Latvian' + }, + { + value: 'lt', + text: 'Lithuanian' + }, + { + value: 'lb', + text: 'Luxembourgish' + }, + { + value: 'mk', + text: 'Macedonian' + }, + { + value: 'mg', + text: 'Malagasy' + }, + { + value: 'ms', + text: 'Malay' + }, + { + value: 'ml', + text: 'Malayalam' + }, + { + value: 'mt', + text: 'Maltese' + }, + { + value: 'mi', + text: 'Maori' + }, + { + value: 'mr', + text: 'Marathi' + }, + { + value: 'mn', + text: 'Mongolian' + }, + { + value: 'ne', + text: 'Nepali' + }, + { + value: 'no', + text: 'Norwegian' + }, + { + value: 'ny', + text: 'Nyanja' + }, + { + value: 'or', + text: 'Odia' + }, + { + value: 'ps', + text: 'Pashto' + }, + { + value: 'fa', + text: 'Persian' + }, + { + value: 'pl', + text: 'Polish' + }, + { + value: 'pt', + text: 'Portuguese' + }, + { + value: 'pa', + text: 'Punjabi' + }, + { + value: 'ro', + text: 'Romanian' + }, + { + value: 'ru', + text: 'Russian' + }, + { + value: 'sm', + text: 'Samoan' + }, + { + value: 'gd', + text: 'Scottish Gaelic' + }, + { + value: 'sr', + text: 'Serbian' + }, + { + value: 'sn', + text: 'Shona' + }, + { + value: 'sd', + text: 'Sindhi' + }, + { + value: 'si', + text: 'Sinhala' + }, + { + value: 'sk', + text: 'Slovak' + }, + { + value: 'sl', + text: 'Slovenian' + }, + { + value: 'so', + text: 'Somali' + }, + { + value: 'st', + text: 'Southern Sotho' + }, + { + value: 'es', + text: 'Spanish' + }, + { + value: 'su', + text: 'Sundanese' + }, + { + value: 'sw', + text: 'Swahili' + }, + { + value: 'sv', + text: 'Swedish' + }, + { + value: 'tg', + text: 'Tajik' + }, + { + value: 'ta', + text: 'Tamil' + }, + { + value: 'tt', + text: 'Tatar' + }, + { + value: 'te', + text: 'Telugu' + }, + { + value: 'th', + text: 'Thai' + }, + { + value: 'tr', + text: 'Turkish' + }, + { + value: 'tk', + text: 'Turkmen' + }, + { + value: 'uk', + text: 'Ukrainian' + }, + { + value: 'ur', + text: 'Urdu' + }, + { + value: 'ug', + text: 'Uyghur' + }, + { + value: 'uz', + text: 'Uzbek' + }, + { + value: 'vi', + text: 'Vietnamese' + }, + { + value: 'cy', + text: 'Welsh' + }, + { + value: 'fy', + text: 'Western Frisian' + }, + { + value: 'xh', + text: 'Xhosa' + }, + { + value: 'yi', + text: 'Yiddish' + }, + { + value: 'yo', + text: 'Yoruba' + }, + { + value: 'zu', + text: 'Zulu' + } + ] + }, + subtitles_font_family: { + component: 'select', + text: 'fontFamily', + options: [{ + text: 'Monospaced Serif', + value: 1 + }, { + text: 'Proportional Serif', + value: 2 + }, { + text: 'Monospaced Sans-Serif', + value: 3 + }, { + text: 'Proportional Sans-Serif', + value: 4 + }, { + text: 'Casual', + value: 5 + }, { + text: 'Cursive', + value: 6 + }, { + text: 'Small Capitals', + value: 7 + }] + }, + subtitles_font_color: { + component: 'select', + text: 'fontColor', + options: [{ + text: 'white', + value: '#fff' + }, { + text: 'yellow', + value: '#ff0' + }, { + text: 'green', + value: '#0f0' + }, { + text: 'cyan', + value: '#0ff' + }, { + text: 'blue', + value: '#00f' + }, { + text: 'magenta', + value: '#f0f' + }, { + text: 'red', + value: '#f00' + }, { + text: 'black', + value: '#000' + }] + }, + subtitles_font_size: { + component: 'select', + text: 'fontSize', + options: [{ + text: '50%', + value: -2 + }, { + text: '75%', + value: -1 + }, { + text: '100%', + value: 0 + }, { + text: '150%', + value: 1 + }, { + text: '200%', + value: 2 + }, { + text: '300%', + value: 3 + }, { + text: '400%', + value: 4 + }] + }, + subtitles_background_color: { + component: 'select', + text: 'backgroundColor', + options: [{ + text: 'white', + value: '#fff' + }, { + text: 'yellow', + value: '#ff0' + }, { + text: 'green', + value: '#0f0' + }, { + text: 'cyan', + value: '#0ff' + }, { + text: 'blue', + value: '#00f' + }, { + text: 'magenta', + value: '#f0f' + }, { + text: 'red', + value: '#f00' + }, { + text: 'black', + value: '#000' + }] + }, + subtitles_background_opacity: { + component: 'slider', + text: 'backgroundOpacity', + value: 75, + min: 0, + max: 100, + step: 1 + }, + subtitles_window_color: { + component: 'select', + text: 'windowColor', + options: [{ + text: 'white', + value: '#fff' + }, { + text: 'yellow', + value: '#ff0' + }, { + text: 'green', + value: '#0f0' + }, { + text: 'cyan', + value: '#0ff' + }, { + text: 'blue', + value: '#00f' + }, { + text: 'magenta', + value: '#f0f' + }, { + text: 'red', + value: '#f00' + }, { + text: 'black', + value: '#000' + }] + }, + subtitles_window_opacity: { + component: 'slider', + text: 'windowOpacity', + value: 0, + min: 0, + max: 100, + step: 1 + }, + subtitles_character_edge_style: { + component: 'select', + text: 'characterEdgeStyle', + options: [{ + text: 'none', + value: 0 + }, { + text: 'dropShadow', + value: 4 + }, { + text: 'raised', + value: 1 + }, { + text: 'depressed', + value: 2 + }, { + text: 'outline', + value: 3 + }] + }, + subtitles_font_opacity: { + component: 'slider', + text: 'fontOpacity', + value: 100, + min: 0, + max: 100, + step: 1 + } + } + } + }, + crop_chapter_titles: { + component: 'switch', + text: 'cropChapterTitles', + value: true, + storage: 'player_crop_chapter_titles' + }, + up_next_autoplay: { + component: 'switch', + text: 'upNextAutoplay', + value: true + }, + mini_player: { + component: 'switch', + text: 'customMiniPlayer' + }, + h264: { + component: 'switch', + text: 'codecH264', + storage: 'player_h264', + on: { + click: function () { + if (this.dataset.value === 'true') { + satus.render({ + component: 'modal', + + message: { + component: 'text', + text: 'youtubeLimitsVideoQualityTo1080pForH264Codec' + }, + actions: { + component: 'section', + variant: 'actions', + + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.parentNode.parentNode.parentNode.click(); + } + } + }, + ok: { + component: 'button', + text: 'OK', + onclick: function () { + + this.parentNode.parentNode.parentNode.click(); + } + } + } + }); + } + } + } + }, + player_codecs: { + component: 'button', + text: 'codecs', + on: { + click: { + section: { + component: 'section', + variant: 'card', + + block_h264: { + component: 'switch', + text: 'blockH264' + }, + block_vp8: { + component: 'switch', + text: 'blockVp8' + }, + block_vp9: { + component: 'switch', + text: 'blockVp9' + }, + block_av1: { + component: 'switch', + text: 'blockAv1' + } + } + } + } + }, + avoid_cpu_rendering_when_possible: { + component: 'select', + text: 'avoidCpuRenderingWhenPossible', + options: [{ + text: 'disabled', + value: 'disabled' + }, + { + text: 'auto', + value: 'auto' + }, + { + text: 'avoidAv1', + value: 'av1' + }, + { + text: 'avoidAv1Vp9', + value: 'av1-vp9' + }, + { + text: 'avoidAv1Vp8Vp9', + value: 'av1-vp8-vp9' + } + ] + }, + player_60fps: { + component: 'switch', + text: 'allow60fps', + value: true + }, + sdr: { + component: 'switch', + text: 'forceSDR', + value: false, + storage: 'player_SDR' + }, + player_loudness_normalization: { + component: 'switch', + text: 'loudnessNormalization', + value: true + }, + hide_controls: { + component: 'select', + text: 'hidePlayerControlsBar', + options: [{ + text: 'off', + value: 'off', + default: 'true' + }, { + text: 'whenPaused', + value: 'when_paused' + }, { + text: 'always', + value: 'always' + }], + storage: 'player_hide_controls' + }, + player_hide_controls_options: { + component: 'button', + text: 'hidePlayerControlsBarButtons', + on: { + click: { + component: 'section', + variant: 'card', + + player_play_button: { + component: 'switch', + text: 'playPause' + }, + player_previous_button: { + component: 'switch', + text: 'previousVideo' + }, + player_next_button: { + component: 'switch', + text: 'nextVideo' + }, + player_volume_button: { + component: 'switch', + text: 'volume' + }, + player_autoplay_button: { + component: 'switch', + text: 'autoplay' + }, + player_settings_button: { + component: 'switch', + text: 'settings' + }, + player_subtitles_button: { + component: 'switch', + text: 'subtitles' + }, + player_miniplayer_button: { + component: 'switch', + text: 'nativeMiniPlayer' + }, + player_view_button: { + component: 'switch', + text: 'viewMode' + }, + player_screen_button: { + component: 'switch', + text: 'screen' + }, + player_remote_button: { + component: 'switch', + text: 'remote' + } + } + } + }, + ads: { + text: 'ads', + component: 'select', + options: [{ + text: 'onAllVideos', + value: 'all_videos', + default: 'true' + }, { + text: 'onSubscribedChannels', + value: 'subscribed_channels' + }, { + text: 'blockMusic', + value: 'block_music' + }, { + text: 'blockAll', + value: 'block_all' + }], + storage: 'player_ads' + } + }, + section_2: { + component: 'section', + variant: 'card', + + player_screenshot: { + component: 'button', + text: 'screenshot', + on: { + click: { + component: 'section', + variant: 'card', + + player_screenshot_button: { + component: 'switch', + text: 'activate' + }, + player_screenshot_save_as: { + component: 'select', + text: 'saveAs', + options: [{ + text: 'file', + value: 'file' + }, { + text: 'clipboard', + value: 'clipboard' + }] + } + } + } + }, + player_repeat: { + component: 'button', + text: 'repeat', + on: { + click: { + component: 'section', + variant: 'card', + + player_repeat_button: { + component: 'switch', + text: 'activate' + }, + player_always_repeat: { + component: 'switch', + text: 'alwaysActive' + } + } + } + }, + player_rotate_button: { + component: 'switch', + text: 'rotate' + }, + player_popup_button: { + component: 'switch', + text: 'popupPlayer' + } + }, + section_3: { + component: 'section', + variant: 'card', + + below_player_screenshot: { + component: 'switch', + text: 'screenshot', + value: true + }, + below_player_pip: { + component: 'switch', + text: 'pictureInPicture', + value: true + }, + below_player_loop: { + component: 'switch', + text: 'loop', + value: true + } + } +}; \ No newline at end of file diff --git a/options-page/skeleton-parts/playlist.js b/options-page/skeleton-parts/playlist.js new file mode 100644 index 000000000..a7b6ea188 --- /dev/null +++ b/options-page/skeleton-parts/playlist.js @@ -0,0 +1,71 @@ +/*-------------------------------------------------------------- +>>> PLAYLIST +--------------------------------------------------------------*/ + +extension.skeleton.main.layers.section.playlist = { + component: 'button', + variant: 'playlist', + category: true, + on: { + click: { + section: { + component: 'section', + variant: 'card', + + playlist_autoplay: { + component: 'switch', + text: 'autoplay', + value: true + }, + playlist_up_next_autoplay: { + component: 'switch', + text: 'upNextAutoplay', + value: true + } + }, + section2: { + component: 'section', + variant: 'card', + + playlist_reverse: { + component: 'switch', + text: 'reverse' + }, + playlist_repeat: { + component: 'switch', + text: 'repeat' + }, + playlist_shuffle: { + component: 'switch', + text: 'shuffle' + } + } + } + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + viewBox: '0 0 24 24', + fill: 'transparent', + stroke: 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': '1.75' + }, + + path: { + component: 'path', + attr: { + d: 'M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01' + } + } + } + }, + label: { + component: 'span', + text: 'playlist' + } +}; \ No newline at end of file diff --git a/options-page/skeleton-parts/search.js b/options-page/skeleton-parts/search.js new file mode 100644 index 000000000..77f6b769d --- /dev/null +++ b/options-page/skeleton-parts/search.js @@ -0,0 +1,206 @@ +/*-------------------------------------------------------------- +>>> PLAYLIST +--------------------------------------------------------------*/ + +extension.skeleton.header.sectionEnd.search.on.click = { + component: 'text-field', + variant: 'search', + storage: false, + prepend: true, + placeholder: 'search', + lineNumbers: false, + rows: 1, + on: { + render: function () { + this.focus(); + }, + blur: function () { + if (this.value.length === 0) { + var search_results = document.querySelector('.search-results'); + + if (search_results) { + search_results.close(); + } + + this.remove(); + } + }, + keydown: function (event) { + var self = this; + + setTimeout(function () { + if (self.storage.value.length === 0 && event.key === 'Backspace') { + var search_results = document.querySelector('.search-results'); + + if (search_results) { + search_results.close(); + } + + self.baseProvider.classList.remove('search-mode'); + } + }); + }, + input: function (event) { + var self = this, + value = this.value.trim(); + + if (value.length > 0) { + satus.search(value, extension.skeleton, function (results) { + var search_results = document.querySelector('.search-results'), + skeleton = { + component: 'modal', + class: 'search-results' + }; + + for (var key in results) { + var result = results[key], + parent = result; + + while ( + parent.parentObject && + !parent.parentObject.category + ) { + parent = parent.parentObject; + } + + var category = ''; + + if (parent.parentObject && parent.parentObject.label && parent.parentObject.label.text) { + category = parent.parentObject.label.text; + } + + parent = result; + + while ( + parent.parentObject && + parent.parentObject.component !== 'button' + ) { + parent = parent.parentObject; + } + + parent = parent.parentObject; + + if (parent) { + if (parent.label) { + var subcategory = parent.label.text; + } else { + var subcategory = parent.text; + } + + if (category === subcategory) { + var text = satus.locale.get(category); + } else { + var text = satus.locale.get(category) + ' > ' + satus.locale.get(subcategory); + } + + skeleton[category + subcategory + '_label'] = { + component: 'span', + class: 'satus-section--label', + text: text + }; + + if (!skeleton[category + subcategory]) { + skeleton[category + subcategory] = { + component: 'section', + variant: 'card' + }; + } + + skeleton[category + subcategory][key] = result; + } else { + skeleton[category + '_label'] = { + component: 'span', + class: 'satus-section--label', + text: category + }; + + if (!skeleton[category]) { + skeleton[category] = { + component: 'section', + variant: 'card' + }; + } + + skeleton[category][key] = result; + } + } + + if (Object.keys(results).length === 0) { + if (search_results) { + search_results.remove(); + + self.removeAttribute('results'); + } + } else { + if (search_results) { + var surface = document.querySelector('.search-results .satus-modal__surface'); + + satus.empty(surface); + + satus.render(skeleton, surface, undefined, true); + } else { + self.setAttribute('results', ''); + + satus.render(skeleton, self.baseProvider); + + document.querySelector('.search-results .satus-modal__scrim').addEventListener('click', function () { + var text_field = this.parentElement.baseProvider.skeleton.header.sectionEnd.textField.rendered, + search_results = document.querySelector('.search-results'); + + if (search_results) { + search_results.close(); + } + + text_field.value = ''; + text_field.style.display = ''; + + self.removeAttribute('results'); + }); + } + } + }, true); + } else { + var search_results = document.querySelector('.search-results'); + + if (search_results) { + search_results.close(); + + self.removeAttribute('results'); + } + } + } + }, + + close: { + component: 'button', + variant: 'icon', + on: { + click: function () { + var search_results = document.querySelector('.search-results'); + + if (search_results) { + search_results.close(); + } + + this.parentNode.remove(); + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'stroke-width': '1.75', + 'stroke': 'none', + 'fill': 'currentColor' + }, + + path: { + component: 'path', + attr: { + 'd': 'M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z' + } + } + } + } +}; \ No newline at end of file diff --git a/options-page/skeleton-parts/settings.js b/options-page/skeleton-parts/settings.js new file mode 100644 index 000000000..d6c65ed0f --- /dev/null +++ b/options-page/skeleton-parts/settings.js @@ -0,0 +1,855 @@ +/*-------------------------------------------------------------- +>>> SETTINGS: +---------------------------------------------------------------- +# Button +# Appearance +# Language +# Date & time +# Backup & reset +# Developer options +# About +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# BUTTON +--------------------------------------------------------------*/ + +extension.skeleton.header.sectionEnd.menu.on.click.settings = { + component: 'button', + category: true, + on: { + click: { + firstSection: { + component: 'section', + variant: 'card' + }, + secondSection: { + component: 'section', + variant: 'card' + } + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'none', + 'stroke-width': '1.75' + }, + + circle: { + component: 'circle', + attr: { + 'cx': '12', + 'cy': '12', + 'r': '3' + } + }, + path: { + component: 'path', + attr: { + 'd': 'M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 010 2.83 2 2 0 01-2.83 0l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-2 2 2 2 0 01-2-2v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83 0 2 2 0 010-2.83l.06-.06a1.65 1.65 0 00.33-1.82 1.65 1.65 0 00-1.51-1H3a2 2 0 01-2-2 2 2 0 012-2h.09A1.65 1.65 0 004.6 9a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 010-2.83 2 2 0 012.83 0l.06.06a1.65 1.65 0 001.82.33H9a1.65 1.65 0 001-1.51V3a2 2 0 012-2 2 2 0 012 2v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 0 2 2 0 010 2.83l-.06.06a1.65 1.65 0 00-.33 1.82V9a1.65 1.65 0 001.51 1H21a2 2 0 012 2 2 2 0 01-2 2h-.09a1.65 1.65 0 00-1.51 1z' + } + } + }, + label: { + component: 'span', + text: 'settings' + } +}; + + +/*-------------------------------------------------------------- +# APPEARANCE +--------------------------------------------------------------*/ + +extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.firstSection.appearance = { + component: 'button', + text: 'appearance', + before: { + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' + }, + + path: { + component: 'path', + attr: { + 'd': 'M7 16c.6 0 1 .5 1 1a2 2 0 0 1-2 2h-.5a4 4 0 0 0 .5-2c0-.6.5-1 1-1M18.7 3a1 1 0 0 0-.7.3l-9 9 2.8 2.7 9-9c.3-.4.3-1 0-1.4l-1.4-1.3a1 1 0 0 0-.7-.3zM7 14a3 3 0 0 0-3 3c0 1.3-1.2 2-2 2 1 1.2 2.5 2 4 2a4 4 0 0 0 4-4 3 3 0 0 0-3-3z' + } + } + } + }, + on: { + click: { + header: { + component: 'section', + variant: 'card', + title: 'header', + + title_version: { + component: 'switch', + text: 'showVersion' + } + }, + home: { + component: 'section', + variant: 'card', + title: 'homeScreen', + + layout: { + component: 'select', + text: 'layout', + storage: 'improvedtube_home', + options: [{ + text: 'bubbles', + value: 'bubbles' + }, { + text: 'list', + value: 'list' + }] + }, + hideCategories: { + component: 'button', + text: 'hideCategories', + on: { + click: { + section: { + component: 'section', + variant: 'card', + + it_general: { + component: 'checkbox', + text: 'general' + }, + it_appearance: { + component: 'checkbox', + text: 'appearance' + }, + it_themes: { + component: 'checkbox', + text: 'themes' + }, + it_player: { + component: 'checkbox', + text: 'player' + }, + it_playlist: { + component: 'checkbox', + text: 'playlist' + }, + it_channel: { + component: 'checkbox', + text: 'channel' + }, + it_shortcuts: { + component: 'checkbox', + text: 'shortcuts' + }, + it_mixer: { + component: 'checkbox', + text: 'mixer' + }, + it_analyzer: { + component: 'checkbox', + text: 'analyzer' + }, + it_blacklist: { + component: 'checkbox', + text: 'blacklist' + } + } + } + } + } + }, + animations: { + component: 'section', + variant: 'card', + title: 'animations', + + layer_animation_scale: { + component: 'select', + text: 'layerAnimationScale', + value: 1, + options: [{ + text: '0x', + value: 0 + }, { + text: '1x', + value: 1 + }] + } + } + } + } +}; + + +/*-------------------------------------------------------------- +# LANGUAGE +--------------------------------------------------------------*/ + +extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSection.language = { + component: 'button', + text: 'language', + before: { + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'none', + 'stroke': 'currentColor', + 'troke-linecap': 'round', + 'stroke-linejoin': 'round', + 'stroke-width': '1.75' + }, + + circle: { + component: 'circle', + attr: { + 'cx': '12', + 'cy': '12', + 'r': '10' + } + }, + path: { + component: 'path', + attr: { + 'd': 'M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z' + } + } + } + }, + on: { + click: { + section: { + component: 'section', + variant: 'card', + languages: [{ + value: 'default', + text: 'default' + }, + { + value: "en", + text: "English" + }, { + value: "es", + text: "Español (España)" + }, { + value: "es-419", + text: "Español (Latinoamérica)" + }, { + value: "es-US", + text: "Español (US)" + }, { + value: "ru", + text: "Русский" + }, { + value: "de", + text: "Deutsch" + }, { + value: "pt-PT", + text: "Português" + }, { + value: "pt", + text: "Português (Brasil)" + }, { + value: "fr", + text: "Français" + }, { + value: "pl", + text: "Polski" + }, { + value: "ja", + text: "日本語" + }, { + value: "af", + text: "Afrikaans" + }, { + value: "az", + text: "Azərbaycan" + }, { + value: "id", + text: "Bahasa Indonesia" + }, { + value: "ms", + text: "Bahasa Malaysia" + }, { + value: "bs", + text: "Bosanski" + }, { + value: "ca", + text: "Català" + }, { + value: "cs", + text: "Čeština" + }, { + value: "da", + text: "Dansk" + }, { + value: "et", + text: "Eesti" + }, { + value: "eu", + text: "Euskara" + }, { + value: "fil", + text: "Filipino" + }, { + value: "fr-CA", + text: "Français (Canada)" + }, { + value: "gl", + text: "Galego" + }, { + value: "hr", + text: "Hrvatski" + }, { + value: "zu", + text: "IsiZulu" + }, { + value: "is", + text: "Íslenska" + }, { + value: "it", + text: "Italiano" + }, { + value: "sw", + text: "Kiswahili" + }, { + value: "lv", + text: "Latviešu valoda" + }, { + value: "lt", + text: "Lietuvių" + }, { + value: "hu", + text: "Magyar" + }, { + value: "nl", + text: "Nederlands" + }, { + value: "no", + text: "Norsk" + }, { + value: "uz", + text: "O‘zbek" + }, { + value: "ro", + text: "Română" + }, { + value: "sq", + text: "Shqip" + }, { + value: "sk", + text: "Slovenčina" + }, { + value: "sl", + text: "Slovenščina" + }, { + value: "sr-Latn", + text: "Srpski" + }, { + value: "fi", + text: "Suomi" + }, { + value: "sv", + text: "Svenska" + }, { + value: "vi", + text: "Tiếng Việt" + }, { + value: "tr", + text: "Türkçe" + }, { + value: "be", + text: "Беларуская" + }, { + value: "bg", + text: "Български" + }, { + value: "ky", + text: "Кыргызча" + }, { + value: "kk", + text: "Қазақ Тілі" + }, { + value: "mk", + text: "Македонски" + }, { + value: "mn", + text: "Монгол" + }, { + value: "sr", + text: "Српски" + }, { + value: "uk", + text: "Українська" + }, { + value: "el", + text: "Ελληνικά" + }, { + value: "hy", + text: "Հայերեն" + }, { + value: "iw", + text: "עברית" + }, { + value: "ur", + text: "اردو" + }, { + value: "ar", + text: "العربية" + }, { + value: "fa", + text: "فارسی" + }, { + value: "ne", + text: "नेपाली" + }, { + value: "mr", + text: "मराठी" + }, { + value: "hi", + text: "हिन्दी" + }, { + value: "bn", + text: "বাংলা" + }, { + value: "pa", + text: "ਪੰਜਾਬੀ" + }, { + value: "gu", + text: "ગુજરાતી" + }, { + value: "ta", + text: "தமிழ்" + }, { + value: "te", + text: "తెలుగు" + }, { + value: "kn", + text: "ಕನ್ನಡ" + }, { + value: "ml", + text: "മലയാളം" + }, { + value: "si", + text: "සිංහල" + }, { + value: "th", + text: "ภาษาไทย" + }, { + value: "lo", + text: "ລາວ" + }, { + value: "my", + text: "ဗမာ" + }, { + value: "ka", + text: "ქართული" + }, { + value: "am", + text: "አማርኛ" + }, { + value: "km", + text: "ខ្មែរ" + }, { + value: "zh-CN", + text: "中文 (简体)" + }, { + value: "zh-TW", + text: "中文 (繁體)" + }, { + value: "zh-HK", + text: "中文 (香港)" + }, { + value: "ko", + text: "한국어" + } + ], + + improvedtube: { + component: 'select', + text: 'ImprovedTube', + storage: 'language', + options: function () { + return extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSection.language.on.click.section.languages; + } + }, + youtube: { + component: 'select', + text: 'YouTube', + storage: 'youtube_language', + options: function () { + return extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSection.language.on.click.section.languages; + } + } + } + } + } +}; + + +/*-------------------------------------------------------------- +# DATE & TIME +--------------------------------------------------------------*/ + +extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSection.dateAndTime = { + component: 'button', + text: 'dateAndTime', + before: { + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' + }, + + path: { + component: 'path', + attr: { + 'd': 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm-.2-13c-.5 0-.8.3-.8.7v4.7c0 .4.2.7.5.9l4.1 2.5c.4.2.8 0 1-.3.2-.3.1-.7-.2-1l-3.9-2.2V7.7c0-.4-.3-.7-.7-.7z' + } + } + } + }, + on: { + click: { + component: 'section', + variant: 'card', + + use_24_hour_format: { + component: 'switch', + text: 'use24HourFormat', + value: true + } + } + } +}; + + +/*-------------------------------------------------------------- +# BACKUP & RESET +--------------------------------------------------------------*/ + +extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSection.backupAndReset = { + component: 'button', + text: 'backupAndReset', + before: { + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' + }, + + path: { + component: 'path', + attr: { + 'd': 'M13.3 3A9 9 0 0 0 4 12H2.2c-.5 0-.7.5-.3.8l2.7 2.8c.2.2.6.2.8 0L8 12.8c.4-.3.1-.8-.3-.8H6a7 7 0 1 1 2.7 5.5 1 1 0 0 0-1.3.1 1 1 0 0 0 0 1.5A9 9 0 0 0 22 11.7C22 7 18 3.1 13.4 3zm-.6 5c-.4 0-.7.3-.7.8v3.6c0 .4.2.7.5.9l3.1 1.8c.4.2.8.1 1-.2.2-.4.1-.8-.2-1l-3-1.8V8.7c0-.4-.2-.7-.7-.7z' + } + } + } + }, + on: { + click: { + section: { + component: 'section', + variant: 'card', + + importSettings: { + component: 'button', + text: 'importSettings', + on: { + click: function () { + if (location.href.indexOf('/index.html?action=import-settings') !== -1) { + extension.importSettings(); + } else { + window.open(chrome.runtime.getURL('options-page/index.html?action=import-settings'), '_blank'); + } + } + } + }, + exportSettings: { + component: 'button', + text: 'exportSettings', + on: { + click: function () { + if (location.href.indexOf('/index.html?action=export-settings') !== -1) { + extension.exportSettings(); + } else { + window.open(chrome.runtime.getURL('options-page/index.html?action=export-settings'), '_blank'); + } + } + } + } + }, + reset: { + component: 'section', + variant: 'card', + + resetAllSettings: { + component: 'button', + text: 'resetAllSettings', + on: { + click: { + component: 'modal', + variant: 'confirm', + content: 'allYourSettingsWillBeErasedAndCanTBeRecovered', + buttons: { + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.modalProvider.close(); + } + } + }, + reset: { + component: 'button', + text: 'reset', + on: { + click: function () { + satus.storage.clear(function () { + window.close(); + }); + } + } + } + } + } + } + }, + resetAllShortcuts: { + component: 'button', + text: 'resetAllShortcuts', + on: { + click: { + component: 'modal', + variant: 'confirm', + content: 'allYourShortcutsWillBeErasedAndCanTBeRecovered', + buttons: { + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.modalProvider.close(); + } + } + }, + reset: { + component: 'button', + text: 'reset', + on: { + click: function () { + for (var key in satus.storage.data) { + if (key.indexOf('shortcut_') === 0) { + satus.storage.remove(key); + } + } + + this.modalProvider.close(); + } + } + } + } + } + } + } + } + } + } +}; + + +/*-------------------------------------------------------------- +# DEVELOPER OPTIONS +--------------------------------------------------------------*/ + +extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSection.developerOptions = { + component: 'button', + text: 'developerOptions', + before: { + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' + }, + + path: { + component: 'path', + attr: { + 'd': 'M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z' + } + } + } + }, + on: { + click: { + component: 'section', + variant: 'card', + + api: { + component: 'button', + text: 'API', + on: { + click: { + component: 'section', + variant: 'transparent-card', + title: 'YouTube API', + + textField: { + component: 'text-field', + storage: 'google-api-key', + value: 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA', + rows: 1, + lineNumbers: false + } + } + } + }, + css: { + component: 'button', + text: 'CSS', + on: { + click: { + component: 'text-field', + storage: 'custom_css', + style: { + height: '100%' + } + } + } + }, + js: { + component: 'button', + text: 'JavaScript', + on: { + click: { + component: 'text-field', + storage: 'custom_js', + style: { + height: '100%' + } + } + } + } + } + } +}; + + +/*-------------------------------------------------------------- +# ABOUT +--------------------------------------------------------------*/ + +extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSection.about = { + component: 'button', + text: 'about', + before: { + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' + }, + + path: { + component: 'path', + attr: { + 'd': 'M11 7h2v2h-2zm0 4h2v6h-2zm1-9a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16z' + } + } + } + }, + on: { + click: { + extensionSection: { + component: 'section', + variant: 'card', + + list: { + component: 'list', + items: [ + ['name', satus.user.browser.manifest().name], + ['version', satus.user.browser.manifest().version_name || satus.user.browser.manifest().version], + ['permissions', satus.user.browser.manifest().permissions.join(', ').replace('https://www.youtube.com/', 'YouTube')] + ] + } + }, + otherSection: { + component: 'section', + variant: 'card', + + softwareInformation: { + component: 'button', + text: 'softwareInformation', + on: { + click: { + osSection: { + component: 'section', + variant: 'card', + title: 'os', + + list: { + component: 'list', + items: [ + ['name', satus.user.os.name()], + ['bitness', satus.user.os.bitness()] + ] + } + }, + browserSection: { + component: 'section', + variant: 'card', + title: 'browser', + + list: { + component: 'list', + items: [ + ['name', satus.user.browser.name()], + ['version', satus.user.browser.version()], + ['platform', satus.user.browser.platform()], + ['audioFormats', satus.user.browser.audio().join(', ')], + ['videoFormats', satus.user.browser.video().join(', ')], + ['Flash', satus.user.browser.flash()], + ['Java', satus.user.browser.java()], + ['Cookies', satus.user.browser.cookies()] + ] + } + } + } + } + }, + hardwareInformation: { + component: 'button', + text: 'hardwareInformation', + on: { + click: { + component: 'section', + variant: 'card', + + list: { + component: 'list', + items: [ + ['screen', satus.user.device.screen()], + ['cores', satus.user.device.cores()], + ['gpu', satus.user.device.gpu()], + ['ram', satus.user.device.ram()] + ] + } + } + } + } + } + } + } +}; \ No newline at end of file diff --git a/options-page/skeleton-parts/shortcuts.js b/options-page/skeleton-parts/shortcuts.js new file mode 100644 index 000000000..1318987e1 --- /dev/null +++ b/options-page/skeleton-parts/shortcuts.js @@ -0,0 +1,372 @@ +/*-------------------------------------------------------------- +>>> SHURTCUTS +--------------------------------------------------------------*/ + +extension.skeleton.main.layers.section.shortcuts = { + component: 'button', + variant: 'shortcuts', + category: true, + on: { + click: { + playerSection: { + component: 'section', + variant: 'card', + title: 'player', + + shortcut_quality: { + component: 'button', + text: 'quality', + on: { + click: { + component: 'section', + variant: 'card', + + shortcut_auto: { + component: 'shortcut', + text: 'auto' + }, + shortcut_144p: { + component: 'shortcut', + text: '144p' + }, + shortcut_240p: { + component: 'shortcut', + text: '240p' + }, + shortcut_360p: { + component: 'shortcut', + text: '360p' + }, + shortcut_480p: { + component: 'shortcut', + text: '480p' + }, + shortcut_720p: { + component: 'shortcut', + text: '720p' + }, + shortcut_1080p: { + component: 'shortcut', + text: '1080p' + }, + shortcut_1440p: { + component: 'shortcut', + text: '1440p' + }, + shortcut_2160p: { + component: 'shortcut', + text: '2160p' + }, + shortcut_2880p: { + component: 'shortcut', + text: '2880p' + }, + shortcut_4320p: { + component: 'shortcut', + text: '4320p' + } + } + } + }, + volume: { + component: 'button', + text: 'volume', + on: { + click: { + section_1: { + component: 'section', + variant: 'card', + + volume_step: { + component: 'slider', + text: 'step', + min: 1, + max: 10, + step: 1, + value: 5, + storage: 'shortcut_volume_step' + } + }, + + section_2: { + component: 'section', + variant: 'card', + + increase_volume: { + component: 'shortcut', + text: 'increaseVolume', + storage: 'shortcut_increase_volume', + value: { + keys: { + 38: { + key: 'ArrowUp' + } + } + } + }, + decrease_volume: { + component: 'shortcut', + text: 'decreaseVolume', + storage: 'shortcut_decrease_volume', + value: { + keys: { + 40: { + key: 'ArrowDown' + } + } + } + } + } + } + } + }, + playback_speed: { + component: 'button', + text: 'playbackSpeed', + on: { + click: { + section_step: { + component: 'section', + variant: 'card', + + playback_speed_step: { + component: 'slider', + text: 'step', + min: .05, + max: .5, + step: .05, + value: .05, + storage: 'shortcut_playback_speed_step' + } + }, + + section: { + component: 'section', + variant: 'card', + + increase_playback_speed: { + component: 'shortcut', + text: 'increasePlaybackSpeed', + storage: 'shortcut_increase_playback_speed', + value: { + keys: { + 188: { + key: '<' + } + } + } + }, + decrease_playback_speed: { + component: 'shortcut', + text: 'decreasePlaybackSpeed', + storage: 'shortcut_decrease_playback_speed', + value: { + keys: { + 190: { + key: '>' + } + } + } + }, + reset_playback_speed: { + component: 'shortcut', + text: 'reset', + storage: 'shortcut_reset_playback_speed' + } + } + } + } + }, + shortcut_play_pause: { + component: 'shortcut', + text: 'playPause', + value: { + keys: { + 32: { + code: 'space' + } + } + } + }, + shortcut_stop: { + component: 'shortcut', + text: 'stop' + }, + shortcut_seek_backward: { + component: 'shortcut', + text: 'seekBackward10Seconds', + value: { + keys: { + 74: { + key: 'j' + } + } + } + }, + shortcut_seek_forward: { + component: 'shortcut', + text: 'seekForward10Seconds', + value: { + keys: { + 76: { + key: 'l' + } + } + } + }, + shortcut_seek_next_chapter: { + component: 'shortcut', + text: 'seekNextChapter' + }, + shortcut_seek_previous_chapter: { + component: 'shortcut', + text: 'seekPreviousChapter' + }, + shortcut_next_video: { + component: 'shortcut', + text: 'nextVideo', + value: { + shift: true, + keys: { + 78: { + key: 'n' + } + } + } + }, + shortcut_prev_video: { + component: 'shortcut', + text: 'previousVideo', + value: { + shift: true, + keys: { + 80: { + key: 'p' + } + } + } + }, + shortcut_activate_fullscreen: { + component: 'shortcut', + text: 'activateFullscreen', + value: { + keys: { + 70: { + key: 'f' + } + } + } + }, + shortcut_activate_captions: { + component: 'shortcut', + text: 'activateCaptions', + value: { + keys: { + 67: { + key: 'c' + } + } + } + }, + shortcut_toggle_cards: { + component: 'shortcut', + text: 'toggleCards' + }, + shortcut_popup_player: { + component: 'shortcut', + text: 'popupPlayer' + }, + shortcut_stats_for_nerds: { + component: 'shortcut', + text: 'statsForNerds' + } + }, + section: { + component: 'section', + variant: 'card', + + picture_in_picture: { + component: 'shortcut', + text: 'pictureInPicture', + storage: 'shortcut_picture_in_picture' + }, + shortcut_screenshot: { + component: 'shortcut', + text: 'screenshot' + }, + shortcut_toggle_controls: { + component: 'shortcut', + text: 'toggleControls' + }, + shortcut_toggle_autoplay: { + component: 'shortcut', + text: 'toggleAutoplay' + }, + shortcut_custom_mini_player: { + component: 'shortcut', + text: 'customMiniPlayer', + value: { + keys: { + 73: { + key: 'i' + } + } + } + }, + shortcut_go_to_search_box: { + component: 'shortcut', + text: 'goToSearchBox', + value: { + keys: { + 191: { + key: '/' + } + } + } + }, + shortcut_like_shortcut: { + component: 'shortcut', + text: 'like' + }, + shortcut_dislike_shortcut: { + component: 'shortcut', + text: 'dislike' + }, + shortcut_subscribe: { + component: 'shortcut', + text: 'subscribe' + }, + shortcut_dark_theme: { + component: 'shortcut', + text: 'darkTheme' + } + } + } + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'transparent', + 'stroke': 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': '1.75' + }, + + path: { + component: 'path', + attr: { + 'd': 'M18 3a3 3 0 00-3 3v12a3 3 0 003 3 3 3 0 003-3 3 3 0 00-3-3H6a3 3 0 00-3 3 3 3 0 003 3 3 3 0 003-3V6a3 3 0 00-3-3 3 3 0 00-3 3 3 3 0 003 3h12a3 3 0 003-3 3 3 0 00-3-3z' + } + } + } + }, + label: { + component: 'span', + text: 'shortcuts' + } +}; \ No newline at end of file diff --git a/options-page/skeleton-parts/themes.js b/options-page/skeleton-parts/themes.js new file mode 100644 index 000000000..8672cdef1 --- /dev/null +++ b/options-page/skeleton-parts/themes.js @@ -0,0 +1,177 @@ +/*-------------------------------------------------------------- +>>> THEMES +---------------------------------------------------------------- +# Font +# Themes +--------------------------------------------------------------*/ + +extension.skeleton.main.layers.section.themes = { + component: 'button', + variant: 'themes', + category: true, + on: { + click: { + section: { + component: 'section', + variant: 'card' + } + } + }, + + icon: { + component: 'span', + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'transparent', + 'stroke': 'currentColor', + 'stroke-linecap': 'round', + 'stroke-width': '1.75' + }, + + path: { + component: 'path', + attr: { + 'd': 'M12 2.69l5.66 5.66a8 8 0 11-11.31 0z' + } + } + } + }, + label: { + component: 'span', + text: 'themes' + } +}; + + +/*-------------------------------------------------------------- +# THEMES +--------------------------------------------------------------*/ + +extension.skeleton.main.layers.section.themes.on.click.section = { + component: 'section', + variant: 'transparent-card', + + custom: { + component: 'label', + variant: 'custom-theme', + text: 'custom', + + radio: { + component: 'radio', + group: 'theme', + value: 'custom', + checked: true, + on: { + click: { + section: { + component: 'section', + variant: 'card', + + theme_primary_color: { + component: 'color-picker', + text: 'primaryColor', + value: [200, 200, 200] + }, + theme_text_color: { + component: 'color-picker', + text: 'textColor', + value: [25, 25, 25] + } + } + } + } + } + }, + default: { + component: 'label', + variant: 'default-theme', + text: 'default', + + radio: { + component: 'radio', + group: 'theme', + value: 'default', + checked: true + } + }, + dark: { + component: 'label', + variant: 'dark-theme', + text: 'dark', + + radio: { + component: 'radio', + group: 'theme', + value: 'dark' + } + }, + night: { + component: 'label', + variant: 'night-theme', + text: 'night', + + radio: { + component: 'radio', + group: 'theme', + value: 'night' + } + }, + dawn: { + component: 'label', + variant: 'dawn-theme', + text: 'dawn', + + radio: { + component: 'radio', + group: 'theme', + value: 'dawn' + } + }, + sunset: { + component: 'label', + variant: 'sunset-theme', + text: 'sunset', + + radio: { + component: 'radio', + group: 'theme', + value: 'sunset' + } + }, + desert: { + component: 'label', + variant: 'desert-theme', + text: 'desert', + + radio: { + component: 'radio', + group: 'theme', + value: 'desert' + } + }, + plain: { + component: 'label', + variant: 'plain-theme', + text: 'plain', + + radio: { + component: 'radio', + group: 'theme', + value: 'plain' + } + }, + black: { + component: 'label', + variant: 'black-theme', + text: 'black', + + radio: { + component: 'radio', + group: 'theme', + value: 'black' + } + } +}; \ No newline at end of file diff --git a/options-page/skeleton.js b/options-page/skeleton.js new file mode 100644 index 000000000..6dad63274 --- /dev/null +++ b/options-page/skeleton.js @@ -0,0 +1,194 @@ +/*-------------------------------------------------------------- +>>> SKELETON: +---------------------------------------------------------------- +# Base +# Header +# Main +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# BASE +--------------------------------------------------------------*/ + +extension.skeleton = { + component: 'base' +}; + + +/*-------------------------------------------------------------- +# HEADER +--------------------------------------------------------------*/ + +extension.skeleton.header = { + component: 'header', + + sectionStart: { + component: 'section', + variant: 'align-start', + + back: { + component: 'button', + variant: 'icon', + attr: { + 'hidden': 'true' + }, + on: { + click: 'main.layers.back' + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'stroke-width': '1.5', + 'stroke': 'currentColor', + 'fill': 'none' + }, + + path: { + component: 'path', + attr: { + 'd': 'M14 18l-6-6 6-6' + } + } + } + }, + title: { + component: 'span', + variant: 'title', + data: { + version: chrome.runtime.getManifest().version + } + } + }, + sectionEnd: { + component: 'section', + variant: 'align-end', + + search: { + component: 'button', + variant: 'icon', + on: {}, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'stroke': 'currentcolor', + 'stroke-linecap': 'round', + 'stroke-linejoin': 'round', + 'stroke-width': '1.25', + 'fill': 'none' + }, + + circle: { + component: 'circle', + attr: { + 'cx': '11', + 'cy': '10.5', + 'r': '6' + } + }, + path: { + component: 'path', + attr: { + 'd': 'M20 20l-4-4' + } + } + } + }, + menu: { + component: 'button', + variant: 'icon', + on: { + click: { + component: 'modal', + variant: 'vertical-menu' + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'stroke-width': '2', + 'stroke': 'currentColor', + 'fill': 'none' + }, + + circle1: { + component: 'circle', + attr: { + 'cx': '12', + 'cy': '5.25', + 'r': '0.45' + } + }, + circle2: { + component: 'circle', + attr: { + 'cx': '12', + 'cy': '12', + 'r': '0.45' + } + }, + circle3: { + component: 'circle', + attr: { + 'cx': '12', + 'cy': '18.75', + 'r': '0.45' + } + } + } + } + } +}; + + +/*-------------------------------------------------------------- +# MAIN +--------------------------------------------------------------*/ + +extension.skeleton.main = { + component: 'main', + + layers: { + component: 'layers', + on: { + open: function () { + var skeleton = satus.last(this.path), + section = this.baseProvider.skeleton.header.sectionStart, + title = 'ImprovedTube'; + + if (skeleton.parentSkeleton) { + if (skeleton.parentSkeleton.label) { + title = skeleton.parentSkeleton.label.text; + } else if (skeleton.parentSkeleton.text) { + title = skeleton.parentSkeleton.text; + } + } + + section.back.rendered.hidden = this.path.length <= 1; + section.title.rendered.innerText = satus.locale.get(title); + + var vertical_menu = document.querySelector('.satus-modal--vertical-menu'); + + if (vertical_menu) { + vertical_menu.close(); + } + } + }, + + section: { + component: 'section', + variant: function () { + if (satus.storage.get('improvedtube_home') === 'list') { + return 'card'; + } + + return 'home'; + } + } + } +}; \ No newline at end of file diff --git a/options-page/styles/analyzer.css b/options-page/styles/analyzer.css new file mode 100644 index 000000000..8d37df7cf --- /dev/null +++ b/options-page/styles/analyzer.css @@ -0,0 +1,41 @@ +/*-------------------------------------------------------------- +>>> ANALYZER +--------------------------------------------------------------*/ + +.analyzer-watch-time { + font-size: 13px; + + display: flex; + + margin: 16px 6px 0; + + opacity: .72; + + justify-content: space-between; +} + +.analyzer-watch-time__label { + text-transform: uppercase; +} + +.satus-switch--activation { + margin: 12px; + padding: 12px; + + border-radius: 3px; + background: rgba(var(--satus-light), .08); + + --satus-switch-track: rgba(var(--satus-light), .1); +} + +.satus-switch--activation:focus { + background: rgba(var(--satus-light), .16); +} + +.satus-switch--activation:hover { + background: rgba(var(--satus-light), .12); +} + +.satus-switch--activation[data-value='true']>.satus-switch__i { + opacity: .88; +} \ No newline at end of file diff --git a/options-page/styles/appearance.css b/options-page/styles/appearance.css new file mode 100644 index 000000000..219d3b386 --- /dev/null +++ b/options-page/styles/appearance.css @@ -0,0 +1,160 @@ +/*-------------------------------------------------------------- +>>> APPEARANCE: +---------------------------------------------------------------- +# Buttons +# Custom player size +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# BUTTONS +--------------------------------------------------------------*/ + +.satus-section--appearance { + position: relative; + + width: 100%; + max-width: 900px; + height: 100%; + margin: auto; +} + +.satus-section--appearance .satus-button { + position: absolute; + + display: block; + + transition: transform .5s, box-shadow .5s; + transform: scale(1); + text-align: center; + + border: 1px solid var(--it-appearance-shadow-color); + border-radius: 3px; + background: var(--satus-section-background); + box-shadow: 0 0 2px 0 rgb(0 0 0 / 0%); +} + +.satus-section--appearance .satus-button:hover { + z-index: 9; + + transition-duration: .25s; + transform: scale(1.03) translate(-8px, -4px); + + box-shadow: 1px 1px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 2px 2px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 3px 3px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 4px 4px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 5px 6px 4px 0 rgba(0, 0, 0, .1); +} + +.satus-section--appearance .satus-button--header { + top: 16px; + left: 16px; + + width: calc(100% - 32px); + height: 40px; + min-height: auto; +} + +.satus-section--appearance .satus-button--header:hover { + transform: scale(1.03) translate(-9px, -4px); +} + +.satus-section--appearance .satus-button--player { + top: 64px; + left: 16px; + + width: calc(70% - 32px); + height: 96px; + min-height: auto; + + color: #eee; + border-color: #333; + background-color: #444; +} + +.satus-section--appearance .satus-button--player .label { + color: #fff; +} + +.satus-section--appearance .satus-button--player:hover { + transform: scale(1.03) translate(-7px, -4px); + + box-shadow: 1px 1px 0 0 #333, 2px 2px 0 0 #333, 3px 3px 0 0 #333, 4px 4px 0 0 #333, 5px 6px 4px 0 rgba(0, 0, 0, .1); +} + +.satus-section--appearance .satus-button--details { + top: 168px; + left: 16px; + + width: calc(70% - 32px); + height: 56px; + min-height: auto; +} + +.satus-section--appearance .satus-button--comments { + top: 232px; + left: 16px; + + width: calc(70% - 32px); + height: 80px; + min-height: auto; +} + +.satus-section--appearance .satus-button--footer { + top: 320px; + left: 16px; + + width: calc(70% - 32px); + height: 64px; + min-height: auto; +} + +.satus-section--appearance .satus-button--sidebar { + top: 64px; + left: calc(70% - 8px); + + width: calc(30% - 8px); + height: 160px; +} + + +/*-------------------------------------------------------------- +# CUSTOM PLAYER SIZE +--------------------------------------------------------------*/ + +.satus-section--custom-player-size { + position: relative; + + display: flex; + visibility: hidden; + overflow: hidden; + + height: 0; + padding: 0 8px; + + transition: 400ms; + + background: rgba(var(--satus-light), .04); + box-shadow: inset 0 3px 4px -4px, inset 0 -3px 4px -4px; + + flex-wrap: nowrap; + align-items: center; +} + +.satus-select--player-size[data-value='custom']+.satus-section--custom-player-size { + visibility: visible; + + height: 68px; + padding: 16px 8px; +} + +.satus-section--custom-player-size>.satus-text-field { + width: auto; + min-width: unset; + + text-align: center; + + flex: 1; +} + +.satus-section--custom-player-size>span { + margin: 0 8px; + + content: 'x'; +} \ No newline at end of file diff --git a/options-page/styles/blacklist.css b/options-page/styles/blacklist.css new file mode 100644 index 000000000..4dd40db17 --- /dev/null +++ b/options-page/styles/blacklist.css @@ -0,0 +1,22 @@ +/*-------------------------------------------------------------- +>>> BLACKLIST +--------------------------------------------------------------*/ + +.satus-div--blacklist> :first-child { + overflow: hidden; + + white-space: nowrap; + text-overflow: ellipsis; + + flex: 1; +} + +.satus-div--blacklist>button { + height: 32px; + margin: 0 0 0 12px; + padding: 6px; +} + +.satus-div--blacklist:not(:hover)>button { + display: none; +} \ No newline at end of file diff --git a/options-page/styles/fonts.css b/options-page/styles/fonts.css new file mode 100644 index 000000000..1390e99c6 --- /dev/null +++ b/options-page/styles/fonts.css @@ -0,0 +1,40 @@ +/*-------------------------------------------------------------- +>>> FONTS: +---------------------------------------------------------------- +# Sources +# Base +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# SOURCES +--------------------------------------------------------------*/ + +@font-face { + font-family: 'Roboto'; + + src: url(../../assets/fonts/Roboto-Regular.ttf); +} + +@font-face { + font-family: 'Roboto'; + font-weight: 300; + + src: url(../../assets/fonts/Roboto-Light.ttf); +} + +@font-face { + font-family: 'Roboto'; + font-weight: 500; + + src: url(../../assets/fonts/Roboto-Medium.ttf); +} + + +/*-------------------------------------------------------------- +# BASE +--------------------------------------------------------------*/ + +.satus-base { + font-family: 'Roboto', sans-serif; + font-size: 14px; +} \ No newline at end of file diff --git a/options-page/styles/header.css b/options-page/styles/header.css new file mode 100644 index 000000000..cd6c4a9af --- /dev/null +++ b/options-page/styles/header.css @@ -0,0 +1,28 @@ +/*-------------------------------------------------------------- +>>> HEADER +--------------------------------------------------------------*/ + +.satus-header>.satus-section--align-start { + max-width: calc(100% - 96px); +} + +.satus-base[title-version='true'] .satus-span--title::after { + font: 700 10px sans-serif; + + margin: 0 0 0 4px; + + content: attr(data-version); + + opacity: .6; +} + +.satus-modal--vertical-menu .satus-button svg { + stroke: var(--satus-primary); +} + +.satus-modal--vertical-menu .satus-button .satus-span { + overflow: hidden; + + white-space: nowrap; + text-overflow: ellipsis; +} \ No newline at end of file diff --git a/options-page/styles/home.css b/options-page/styles/home.css new file mode 100644 index 000000000..27cc21d20 --- /dev/null +++ b/options-page/styles/home.css @@ -0,0 +1,115 @@ +/*-------------------------------------------------------------- +>>> HOME: +---------------------------------------------------------------- +# Buttons +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# BUTTONS +--------------------------------------------------------------*/ + +.satus-section--home .satus-button { + display: flex; + flex-direction: column; + + width: calc(100% / 3); + height: unset; + margin: 8px 0 0; + padding: 8px 0; +} + +.satus-base:not([improvedtube-home='list'])[page] .satus-section--home .satus-button { + width: 96px; +} + +.satus-section--home .satus-button:focus, +.satus-section--home .satus-button:hover { + background: transparent; +} + +.satus-section--home .satus-button> :nth-child(1) { + display: flex; + + width: 60px; + height: 60px; + margin: 0 0 8px; + padding: 16px; + + transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; + + color: var(--satus-bubble-foreground); + border-radius: 50%; + background: var(--satus-bubble-background); + box-shadow: var(--satus-bubble-shadow-raised); + + align-items: center; + justify-content: center; +} + +.satus-section--home .satus-button:hover> :nth-child(1) { + transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; + transform: translateY(4px) scale(.975); + + box-shadow: var(--satus-bubble-shadow-unelevated); +} + +.satus-section--home .satus-button> :nth-child(2) { + overflow: hidden; + + width: 100%; + padding: 0 8px; + + text-align: center; + white-space: nowrap; + text-overflow: ellipsis; +} + +.satus-section--home svg { + position: relative; + top: 1px; +} + +.satus-button--player svg { + top: 1px; + left: 2px; +} + +.satus-base[home-style='list'] .satus-button--general > span:first-child, +.satus-base[home-style='list'] .satus-button--appearance > span:first-child, +.satus-base[home-style='list'] .satus-button--themes > span:first-child, +.satus-base[home-style='list'] .satus-button--player > span:first-child, +.satus-base[home-style='list'] .satus-button--playlist > span:first-child, +.satus-base[home-style='list'] .satus-button--channel > span:first-child, +.satus-base[home-style='list'] .satus-button--shortcuts > span:first-child, +.satus-base[home-style='list'] .satus-button--blacklist > span:first-child, +.satus-base[home-style='list'] .satus-button--analyzer > span:first-child { + display: block; + height: 20px; + width: 20px; + color: var(--satus-primary); + margin: 0 14px 0 0; +} + +.satus-base[general='true'] .satus-button--general, +.satus-base[appearance='true'] .satus-button--appearance, +.satus-base[themes='true'] .satus-button--themes, +.satus-base[player='true'] .satus-button--player, +.satus-base[playlist='true'] .satus-button--playlist, +.satus-base[channel='true'] .satus-button--channel, +.satus-base[shortcuts='true'] .satus-button--shortcuts, +.satus-base[blacklist='true'] .satus-button--blacklist, +.satus-base[analyzer='true'] .satus-button--analyzer { + display: none !important; +} + + +body[tab] { + width: 100vw; + height: 100vh; + overflow: hidden; +} + +body[tab] .satus-base { + width: 100%; + height: 100%; +} \ No newline at end of file diff --git a/options-page/styles/mixer.css b/options-page/styles/mixer.css new file mode 100644 index 000000000..d0280b3c6 --- /dev/null +++ b/options-page/styles/mixer.css @@ -0,0 +1,110 @@ +/*-------------------------------------------------------------- +# MIXER +--------------------------------------------------------------*/ + +.satus-section--mixer { + position: relative; + + overflow: hidden; + flex-direction: column; + + width: calc(100% - 32px); + height: 128px; + margin: 8px 16px 0; + + border: unset; + border-radius: 10px; + background-color: #000; + background-repeat: no-repeat; + background-position: center; + background-size: cover; + + flex: unset; + align-items: flex-start; +} + +.satus-section--mixer::before { + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + + background: rgba(0, 0, 0, .5); +} + +.satus-section--mixer .satus-h1 { + font-size: 14px; + + position: absolute; + bottom: 0; + left: 0; + + margin: 16px; + + transition: 200ms; + + color: #fff; + text-shadow: 0 0 1px rgb(0, 0, 0, .4); +} + +.satus-section--mixer:hover .satus-h1 { + opacity: 0; +} + +.satus-section--mixer>.satus-section { + position: absolute; + bottom: 0; + + visibility: hidden; + + width: 100%; + margin: 0; + padding: 4px 0; + + transition: 200ms; + transform: translateY(32px); + + opacity: 0; + border: unset; + border-radius: unset; + background: #fff; +} + +.satus-section--mixer:hover>.satus-section { + visibility: visible; + + transform: translateY(0); + + opacity: 1; +} + +.satus-section--mixer.noconnection>.satus-section>div { + visibility: hidden; + + pointer-events: none; +} + +.satus-section--mixer.noconnection>.satus-section::after { + font-size: 18px; + font-weight: 500; + + position: absolute; + top: 50%; + + width: 100%; + + content: attr(data-no-connection-label); + transform: translateY(-50%); + text-align: center; + + opacity: .8; +} + +.satus-section--mixer .satus-slider { + width: 100%; + padding: 4px 12px; +} \ No newline at end of file diff --git a/options-page/styles/night-mode.css b/options-page/styles/night-mode.css new file mode 100644 index 000000000..b6255aae4 --- /dev/null +++ b/options-page/styles/night-mode.css @@ -0,0 +1,8 @@ +/*-------------------------------------------------------------- +>>> NIGHT MODE +--------------------------------------------------------------*/ + +:not([data-value='sunset_to_sunrise']) + .satus-time--from, +:not([data-value='sunset_to_sunrise']) + * + .satus-time--to { + display: none !important +} \ No newline at end of file diff --git a/options-page/styles/player.css b/options-page/styles/player.css new file mode 100644 index 000000000..a3443fb84 --- /dev/null +++ b/options-page/styles/player.css @@ -0,0 +1,8 @@ +/*-------------------------------------------------------------- +>>> PLAYER +--------------------------------------------------------------*/ + +#forced-volume:not([data-value='true']) + .satus-slider, +#forced-playback-speed:not([data-value='true']) + .satus-slider { + display: none; +} \ No newline at end of file diff --git a/options-page/styles/search.css b/options-page/styles/search.css new file mode 100644 index 000000000..136c69bab --- /dev/null +++ b/options-page/styles/search.css @@ -0,0 +1,104 @@ +/*-------------------------------------------------------------- +>>> SEARCH: +---------------------------------------------------------------- +# Buttons +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# BUTTONS +--------------------------------------------------------------*/ + +.satus-text-field--search { + position: absolute; + z-index: 1; + right: 60px; + + width: calc(100vw - 72px); + margin: 0; + padding-right: 36px; +} + +.satus-text-field--search:focus { + box-shadow: 0 0 0 4px rgba(13, 110, 253, .25); +} + +.search-mode .satus-text-field--search { + display: block; +} + +.search-mode--results { + border-bottom-right-radius: unset; + border-bottom-left-radius: unset; +} + +.satus-text-field--search>.satus-button { + position: absolute; + z-index: 9; + top: 0; + right: 0; + + width: 26px; + min-width: 26px; + height: 26px; + margin: 4px; + padding: 3px; +} + +.satus-text-field--search[results] { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.search-results { + top: 56px; + + height: calc(100vh - 56px); +} + +.search-results .satus-modal__surface { + position: absolute; + top: -10px; + left: 12px; + + width: calc(100% - 72px); + min-width: unset; + max-width: unset; + max-height: calc(100vh - 56px); + margin: 0; + padding: 0; + + transform: none; + transform-origin: top; + animation: none; + + opacity: 1; + border: 1px solid var(--satus-text-field-border); + border-top: none; + border-radius: 4px; + border-top-left-radius: 0; + border-top-right-radius: 0; + background-color: var(--satus-text-field-background); + box-shadow: none; +} + +.search-results .satus-section>* { + width: 100%; + height: 40px; + min-height: unset; + padding: 0 16px; +} + +.search-results .satus-select__label { + text-align: left; +} + +.search-results .satus-section--label { + font-size: 15px; + font-weight: 500; + + display: block; + + width: calc(100% - 16px); + max-width: 900px; + margin: 8px auto 0 12px; +} \ No newline at end of file diff --git a/options-page/styles/settings.css b/options-page/styles/settings.css new file mode 100644 index 000000000..19c1a6e0a --- /dev/null +++ b/options-page/styles/settings.css @@ -0,0 +1,31 @@ +/*-------------------------------------------------------------- +>>> SETTINGS: +---------------------------------------------------------------- +# Animations +# Email +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# ANIMATIONS +--------------------------------------------------------------*/ + +[layer-animation-scale='0'] .satus-layers__layer { + animation-duration: 0s !important +} + + +/*-------------------------------------------------------------- +# EMAIL +--------------------------------------------------------------*/ + +.satus-button--email { + display: flex; + height: auto; + margin: auto; + padding: 8px; + cursor: pointer; + text-align: center; + letter-spacing: .125px; + color: var(--satus-primary); + justify-content: center +} \ No newline at end of file diff --git a/options-page/styles/themes.css b/options-page/styles/themes.css new file mode 100644 index 000000000..00f3111e5 --- /dev/null +++ b/options-page/styles/themes.css @@ -0,0 +1,450 @@ +/*-------------------------------------------------------------- +>>> THEMES: +---------------------------------------------------------------- +# Default +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# DEFAULT +--------------------------------------------------------------*/ + +.satus-base { + --satus-bubble-foreground: rgba(255, 255, 255, .75); + --satus-bubble-background: linear-gradient(135deg, #ff4766, #f50029); + --satus-bubble-shadow-raised: 0 2px 1px 1px #d60024, 0 4px 4px rgb(82, 0, 14, .32); + --satus-bubble-shadow-unelevated: 0 1px 1px 0 #d60024, 0 1px 2px rgb(82, 0, 14, .32); + --it-appearance-shadow-color: #dfdfdf; +} + +.satus-base[theme='dark'] { + --satus-light: 255, 255, 255; + --satus-base-background: #131316; + --satus-base-foreground: #e0e0e0; + --satus-header-background: #26262c; + --satus-header-text: #e0e0e0; + --satus-header-shadow: 0 1px 0 #000; + --satus-layers-background: #131316; + --satus-layers-text: #e0e0e0; + --satus-section-background: #1c1d21; + --satus-section-border: #212121; + --satus-switch-track: #e1e4ea; + --satus-modal-background: #2a2b32; + --satus-modal-foreground: #e0e0e0; + --satus-modal-shadow: 0 1px 5px 3px rgba(0, 0, 0, .24); + --satus-tabs-background: #1c1d21; + --satus-tabs-foreground: #33343d; + --satus-text-field-background: #1e1e1e; + --satus-text-field-foreground: #e0e0e0; +} + +.satus-base[theme='night'] { + --satus-bubble-foreground: rgba(255, 255, 255, .75); + --satus-bubble-background: linear-gradient(135deg, #3a48b4, #5663c8); + --satus-bubble-shadow-raised: 0 2px 1px 1px #2f3b92, 0 4px 4px rgb(82, 0, 14, .32); + --satus-bubble-shadow-unelevated: 0 1px 1px 0 #2f3b92, 0 1px 2px rgb(82, 0, 14, .32); + --it-appearance-shadow-color: #dfdfdf; + --satus-light: 255, 255, 255; + --satus-primary: #f5f5f5; + --satus-base-background: #191f4d; + --satus-base-foreground: #f5f5f5; + --satus-header-background: #3a48b4; + --satus-header-text: #f5f5f5; + --satus-header-shadow: 0 1px 0 #000; + --satus-layers-background: #191f4d; + --satus-layers-text: #f5f5f5; + --satus-section-background: #28327b; + --satus-section-border: #2f3b92; + --satus-switch-track: #e1e4ea; + --satus-modal-background: #3a48b4; + --satus-modal-foreground: #f5f5f5; + --satus-modal-shadow: 0 1px 5px 3px rgba(0, 0, 0, .24); + --satus-text-field-background: #3a48b4; + --satus-text-field-foreground: #f5f5f5; + --satus-text-field-border: #5d6acb; +} + +.satus-base[theme='dawn'] { + --satus-bubble-foreground: rgba(255, 255, 255, .75); + --satus-bubble-background: linear-gradient(145deg, #ed5a97 46%, #ffa77a); + --satus-bubble-shadow-raised: 0 2px 1px 1px #de357c, 0 4px 4px rgb(82, 0, 14, .32); + --satus-bubble-shadow-unelevated: 0 1px 1px 0 #de357c, 0 1px 2px rgb(82, 0, 14, .32); + --it-appearance-shadow-color: #dfdfdf; + --satus-light: 255, 255, 255; + --satus-primary: #f5f5f5; + --satus-base-background: linear-gradient(345deg, #ffa77a, #de357c 70%); + --satus-base-foreground: #f5f5f5; + --satus-header-background: #e45892; + --satus-header-text: #fff; + --satus-header-shadow: 0 2px 2px #db2470; + --satus-layers-background: linear-gradient(345deg, #ffa77a, #de357c 70%); + --satus-layers-text: #f5f5f5; + --satus-section-background: rgb(221, 75, 136, .6); + --satus-section-border: rgb(224, 92, 147, .8); + --satus-switch-track: rgb(255, 255, 255, .24); + --satus-modal-background: #e45892; + --satus-modal-foreground: #fff; + --satus-modal-shadow: 0 1px 5px 3px rgba(0, 0, 0, .24); + --satus-text-field-background: #ed74a9; + --satus-text-field-foreground: #f5f5f5; + --satus-text-field-border: #e53883; +} + +.satus-base[theme='sunset'] { + --satus-bubble-foreground: rgba(255, 255, 255, .75); + --satus-bubble-background: linear-gradient(145deg, #ef4d5a 46%, #fa7965); + --satus-bubble-shadow-raised: 0 2px 1px 1px #e14749, 0 4px 4px rgb(82, 0, 14, .32); + --satus-bubble-shadow-unelevated: 0 1px 1px 0 #e14749, 0 1px 2px rgb(82, 0, 14, .32); + --it-appearance-shadow-color: #dfdfdf; + --satus-light: 255, 255, 255; + --satus-primary: #f5f5f5; + --satus-base-background: linear-gradient(345deg, #a96165, #2f3364 70%); + --satus-base-foreground: #f5f5f5; + --satus-header-background: #313668; + --satus-header-text: #fff; + --satus-header-shadow: 0 2px 2px #262a54; + --satus-layers-background: linear-gradient(345deg, #a96165, #2f3364 70%); + --satus-layers-text: #f5f5f5; + --satus-section-background: rgb(62, 67, 121, .6); + --satus-section-border: #313668; + --satus-switch-track: rgb(255, 255, 255, .24); + --satus-modal-background: #313668; + --satus-modal-foreground: #fff; + --satus-modal-shadow: 0 1px 5px 3px rgba(0, 0, 0, .24); + --satus-text-field-background: #313668; + --satus-text-field-foreground: #f5f5f5; + --satus-text-field-border: #313668; +} + +.satus-base[theme='desert'] { + --satus-bubble-foreground: rgba(255, 255, 255, .75); + --satus-bubble-background: linear-gradient(145deg, #7ea5f1 46%, #5a8bed); + --satus-bubble-shadow-raised: 0 2px 1px 1px #3571e9, 0 4px 4px rgb(82, 0, 14, .32); + --satus-bubble-shadow-unelevated: 0 1px 1px 0 #3571e9, 0 1px 2px rgb(82, 0, 14, .32); + --it-appearance-shadow-color: #dfdfdf; + --satus-light: 0, 0, 0; + --satus-primary: #73a1fc; + --satus-base-background: #fde49b; + --satus-base-foreground: #444; + --satus-header-background: #73a1fc; + --satus-header-foreground: #fff; + --satus-header-shadow: 0 2px 2px #5288f4; + --satus-layers-background: #fde49b; + --satus-layers-text: #242424; + --satus-section-background: #fcda73; + --satus-section-foreground: #444; + --satus-section-border: #fcd55f; + --satus-switch-track: rgb(255, 255, 255, .24); + --satus-modal-background: #73a1fc; + --satus-modal-foreground: #fff; + --satus-modal-shadow: 0 1px 5px 3px rgba(0, 0, 0, .24); + --satus-text-field-background: #73a1fc; + --satus-text-field-foreground: #f5f5f5; + --satus-text-field-border: #73a1fc; +} + +.satus-base[theme='plain'] { + --satus-bubble-foreground: rgba(255, 255, 255, .75); + --satus-bubble-background: linear-gradient(145deg, #4c946b 46%, #4c946b); + --satus-bubble-shadow-raised: 0 2px 1px 1px #4c946b, 0 4px 4px rgb(82, 0, 14, .32); + --satus-bubble-shadow-unelevated: 0 1px 1px 0 #4c946b, 0 1px 2px rgb(82, 0, 14, .32); + --it-appearance-shadow-color: #dfdfdf; + --satus-light: 0, 0, 0; + --satus-primary: #fff; + --satus-base-background: #8db9a0; + --satus-base-foreground: #fff; + --satus-header-background: #57a87a; + --satus-header-foreground: #fff; + --satus-header-shadow: 0 2px 2px #4c946b; + --satus-layers-background: #8db9a0; + --satus-layers-text: #242424; + --satus-section-background: #4c946b; + --satus-section-foreground: #fff; + --satus-section-border: #458762; + --satus-switch-track: rgb(255, 255, 255, .24); + --satus-modal-background: #57a87a; + --satus-modal-foreground: #fff; + --satus-modal-shadow: 0 1px 5px 3px rgba(0, 0, 0, .24); + --satus-text-field-background: ##57a87a; + --satus-text-field-foreground: #f5f5f5; + --satus-text-field-border: #4c946b; +} + +.satus-base[theme='black'] { + --it-appearance-shadow-color: #333; + --satus-light: 255, 255, 255; + --satus-base-background: #000; + --satus-base-foreground: #e0e0e0; + --satus-header-background: #111; + --satus-header-text: #e0e0e0; + --satus-header-shadow: 0 1px 0 #222; + --satus-layers-background: #000; + --satus-layers-text: #b8b8b8; + --satus-section-background: #131316; + --satus-section-border: #26272c; + --satus-switch-track: #292929; + --satus-modal-background: #1d1e20; + --satus-modal-foreground: #e0e0e0; + --satus-modal-shadow: 0 1px 5px 3px rgba(0, 0, 0, .24); + --satus-tabs-background: #1c1d21; + --satus-tabs-foreground: #33343d; + --satus-text-field-background: #1e1e1e; + --satus-text-field-border: #333; + --satus-text-field-foreground: #e0e0e0; +} + + +.satus-label[class$='-theme'] { + display: flex; + + height: 80px; + margin: 0 0 12px 0; + padding: 8px 16px; + + cursor: pointer; + + color: #fff; + border: 1px solid rgba(var(--satus-light), .1); + border-radius: 8px; + text-shadow: 0 1px 3px #000; + + justify-content: space-between; + align-items: center; +} + +.satus-label--custom-theme { + background: linear-gradient(to left, #e52d27, #b31217); +} + +.satus-label--default-theme { + background: #f0f0f0; +} + +.satus-label--dark-theme { + position: relative; + + overflow: hidden; + + background: linear-gradient(#0d1216, #353d46) !important; +} + +.satus-label--dark-theme::before { + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + animation-name: satus-label--dark-theme; + animation-duration: 4s; + animation-timing-function: ease-in-out; + animation-iteration-count: infinite; + pointer-events: none; + + background: radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%) !important; + background-repeat: no-repeat !important; + background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px !important; + background-size: 50px 50px, 50px 50px, 100px 100px, 75px 75px !important; + + filter: blur(8px); +} + +@keyframes satus-label--dark-theme { + 0% { + background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; + } + + 50% { + background-position: 20px 20px, 230px -20px, 0 -40px, 160px 10px; + } + + 100% { + background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; + } +} + +.satus-label--night-theme { + position: relative; + + overflow: hidden; + + animation-name: satus-label--night-theme; + animation-duration: .75s; + animation-iteration-count: infinite; + + background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5) !important; + background-repeat: no-repeat !important; + background-position: 75% 80%, 35% 65%, 30% 10%, 50% 40%, 10% 80%, 90% 10%, 0 0 !important; + background-size: 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, auto !important; +} + +@keyframes satus-label--night-theme { + 0% { + background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); + } + + 25% { + background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); + } + + 50% { + background-image: radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .9) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); + } + + 75% { + background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); + } + + 100% { + background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); + } +} + +.satus-label--dawn-theme { + position: relative; + + overflow: hidden; + + background: linear-gradient(#ed74a9, #ffba99) !important; +} + +.satus-slabel-dawn-theme::before { + position: absolute; + right: 1rem; + bottom: -5rem; + + width: 10rem; + height: 10rem; + + content: ''; + animation-name: satus-label--dawn-theme; + animation-duration: .75s; + animation-iteration-count: infinite; + pointer-events: none; + + border-radius: 50%; + background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; +} + +@keyframes satus-label--dawn-theme { + 0% { + background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); + } + + 50% { + background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .30) 20%, rgba(255, 255, 231, .30) 35%, rgba(255, 255, 231, .20) 35%, rgba(255, 255, 231, .20) 55%, rgba(255, 255, 231, .10) 55%, rgba(255, 255, 231, .10) 75%, transparent 75%); + } + + 100% { + background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); + } +} + +.satus-label--sunset-theme { + position: relative; + + overflow: hidden; + + background: linear-gradient(#2f3364, #a96165) !important; +} + +.satus-label--sunset-theme::before { + position: absolute; + top: -1rem; + left: 50%; + + overflow: hidden; + + width: 8rem; + height: 8rem; + + content: ''; + transform: translate(-50%, 0%); + pointer-events: none; + + border-radius: 50%; + background: linear-gradient(#fa7965, #f56264, transparent) !important; +} + +.satus-label--desert-theme { + position: relative; + + overflow: hidden; + + background-image: radial-gradient(#ffe498 50%, transparent 50%), linear-gradient(#9dc2ee, #f5fdff) !important; + background-repeat: no-repeat !important; + background-position: -120px 36px, 0 !important; + background-size: 240%, 100% !important; +} + +.satus-label--desert-theme::before { + position: absolute; + top: -100%; + left: 40%; + + width: 10rem; + height: 10rem; + + content: ''; + animation-name: satus-label--desert-theme; + animation-duration: .75s; + animation-delay: .5s; + animation-iteration-count: infinite; + pointer-events: none; + + border-radius: 50%; + background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; +} + +@keyframes satus-label--desert-theme { + 0% { + background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); + } + + 50% { + background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .30) 20%, rgba(255, 255, 231, .30) 35%, rgba(255, 255, 231, .20) 35%, rgba(255, 255, 231, .20) 55%, rgba(255, 255, 231, .10) 55%, rgba(255, 255, 231, .1) 75%, transparent 75%); + } + + 100% { + background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); + } +} + +.satus-label--plain-theme { + position: relative; + + overflow: hidden; + + background-image: radial-gradient(#dea975 50%, transparent 50%), radial-gradient(#e8b887 50%, transparent 50%), radial-gradient(#f1cc9f 50%, transparent 50%), radial-gradient(#f3ddb8 50%, transparent 50%), linear-gradient(#abceb8, #e7ede1) !important; + background-repeat: no-repeat !important; + background-position: -50px 50px, -370px 40px, 0 36px, -360px 26px, 0 !important; + background-size: 240%, 240%, 240%, 240%, 100% !important; +} + +.satus-label--plain-theme::before { + position: absolute; + top: -70%; + left: 10%; + + width: 7rem; + height: 7rem; + + content: ''; + animation-name: satus-label--plain-theme; + animation-duration: .75s; + animation-delay: .2s; + animation-iteration-count: infinite; + pointer-events: none; + + border-radius: 50%; + background: radial-gradient(#fff 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; +} + +.satus-label--black-theme { + background: #000 !important; +} + +.satus-radio__content { + display: none; +} \ No newline at end of file diff --git a/ui/options.html b/ui/options.html deleted file mode 100644 index 2da97f1d7..000000000 --- a/ui/options.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - ImprovedTube - - - - - - - - - \ No newline at end of file diff --git a/ui/page.js b/ui/page.js deleted file mode 100644 index 811bb0aa4..000000000 --- a/ui/page.js +++ /dev/null @@ -1,32 +0,0 @@ -/*-------------------------------------------------------------- ->>> IMPROVEDTUBE UI (WEBSITE MODE) ---------------------------------------------------------------*/ - -document.addEventListener('DOMContentLoaded', function () { - var charset = document.createElement('meta'), - viewport = document.createElement('meta'), - title = document.createElement('title'), - style = document.createElement('style'); - - charset.setAttribute('charset', 'utf-8'); - viewport.setAttribute('name', 'viewport'); - viewport.setAttribute('content', 'width=device-width,initial-scale=1'); - - title.textContent = 'ImprovedTube'; - style.textContent = 'body{width:100vw;height:100vh}'; - - for (var i = document.head.childNodes.length - 1; i > -1; i--) { - document.head.childNodes[i].remove(); - } - - document.head.appendChild(charset); - document.head.appendChild(viewport); - document.head.appendChild(title); - document.head.appendChild(style); - - document.documentElement.setAttribute('page', true); - - for (var i = document.body.childNodes.length - 1; i > -1; i--) { - document.body.childNodes[i].remove(); - } -}); \ No newline at end of file diff --git a/ui/popup.html b/ui/popup.html deleted file mode 100644 index 47d0fdd56..000000000 --- a/ui/popup.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - ImprovedTube - - - - - - - - - \ No newline at end of file diff --git a/ui/satus/satus.css b/ui/satus/satus.css deleted file mode 100644 index 7df25f0f5..000000000 --- a/ui/satus/satus.css +++ /dev/null @@ -1 +0,0 @@ -body{--satus-contrast:0,0,0;--satus-primary:#f6b465;--satus-hover:rgba(var(--satus-contrast),.04);--satus-alert-error-background:#fde6e6;--satus-alert-error-border:#ecd7d7;--satus-alert-error-color:#ad5f5f;--satus-checkbox--background:rgb(90,90,73,.08);--satus-checkbox--border:rgb(90,90,73,.16);--satus-checkbox--mark:#fff;--satus-divider:rgba(var(--satus-contrast),.1);--satus-header-background:#fff;--satus-header-border:rgba(var(--satus-contrast),.1);--satus-header-text:#8f8f8f;--satus-layers-background:#f6f5f4;--satus-layers-text:#8f8f8f;--satus-modal-background:#f6f6f4;--satus-modal-border:rgba(var(--satus-contrast),.1);--satus-modal-text:#8f8f8f;--satus-section-card-background:#fff;--satus-section-card-border:rgba(var(--satus-contrast),.1);--satus-select-background:#f6f6f4;--satus-select-text:#8f8f8f;--satus-switch-background:rgba(var(--satus-contrast),.08);--satus-switch-track:#e0e0e0;--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#fff;--satus-tabs-background:#e8e8e3;--satus-tabs-foreground:#fff;--satus-tabs-border:rgba(var(--satus-contrast),.1);--satus-text-field--background:#38384d;--satus-text-field--text:#9595b2;--satus-tooltip:rgba(var(--satus-contrast),.4);--satus-sortable-ghost:rgba(var(--satus-contrast),.80);--satus-sortable-background:rgba(var(--satus-contrast),.08);--satus-sortable-text:currentColor;--satus-slider-background:#fff}body[data-theme=dark]{--satus-contrast:255,255,255;--satus-primary:#8f8f8f;--satus-switch-background:rgba(var(--satus-contrast),.08);--satus-header-background:#1f1f1f;--satus-header-border:rgba(var(--satus-contrast),.08);--satus-header-text:#ccc;--satus-layers-background:#000;--satus-layers-text:#ccc;--satus-section-card-background:#1e1e1e;--satus-section-card-border:rgba(var(--satus-contrast),.08);--satus-modal-background:#212121;--satus-modal-border:rgba(var(--satus-contrast),.08);--satus-modal-text:#ccc;--satus-hover:rgba(var(--satus-contrast),.05);--satus-text-field--background:#333333;--satus-text-field--border:#525252;--satus-text-field--text:#ccc;--satus-switch-track:#111;--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#ddd;--satus-tooltip:rgba(var(--satus-contrast),.4);--satus-sortable-ghost:rgba(var(--satus-contrast),.8);--satus-sortable-background:rgba(var(--satus-contrast),.1);--satus-sortable-text:#fff;--satus-divider:rgba(var(--satus-contrast),.08);--satus-tabs-background:#111;--satus-tabs-foreground:#2e2e2e;--satus-tabs-border:#2f2f2f;--satus-checkbox--background:rgb(var(--satus-contrast),.08);--satus-checkbox--border:#2f2f2f;--satus-checkbox--mark:#fff;--satus-alert-error-background:#501616;--satus-alert-error-border:#6f1f1f;--satus-alert-error-color:#cf7777;--satus-slider-background:#333333}body[data-theme=black]{--satus-contrast:255,255,255;--satus-primary:#8f8f8f;--satus-switch-background:rgba(var(--satus-contrast),.08);--satus-header-background:#000;--satus-header-border:rgba(var(--satus-contrast),.16);--satus-header-text:#ccc;--satus-layers-background:#000;--satus-layers-text:#ccc;--satus-section-card-background:#000;--satus-section-card-border:rgba(var(--satus-contrast),.16);--satus-modal-background:#000;--satus-modal-border:rgba(var(--satus-contrast),.16);--satus-modal-text:#ccc;--satus-hover:rgba(var(--satus-contrast),.05);--satus-text-field--background:#333333;--satus-text-field--border:#525252;--satus-text-field--text:#ccc;--satus-switch-track:rgba(var(--satus-contrast),.16);--satus-switch-track--active:var(--satus-primary);--satus-switch-thumb:#ddd;--satus-tooltip:rgba(var(--satus-contrast),.4);--satus-sortable-ghost:rgba(var(--satus-contrast),.8);--satus-sortable-background:rgba(var(--satus-contrast),.1);--satus-sortable-text:#fff;--satus-divider:rgba(var(--satus-contrast),.08);--satus-tabs-background:#111;--satus-tabs-foreground:#2e2e2e;--satus-tabs-border:#2f2f2f;--satus-checkbox--background:rgb(var(--satus-contrast),.08);--satus-checkbox--border:#2f2f2f;--satus-checkbox--mark:#fff;--satus-alert-error-background:#501616;--satus-alert-error-border:#6f1f1f;--satus-alert-error-color:#cf7777;--satus-slider-background:#333333}:where([class^=satus]:not(iframe,canvas,img,svg,video,svg *,symbol *)){display:revert;all:unset;box-sizing:border-box}[class^=satus][hidden]{display:none}.satus-pluviam{position:absolute;transform:scale(0);animation-name:pluviam;animation-duration:1000ms;opacity:var(--satus-pluviam-opacity,.08);border-radius:50%;background:var(--satus-pluviam-background,#000);animation-fill-mode:forwards}@keyframes pluviam{0%{transform:scale(0);opacity:var(--satus-pluviam-opacity,.08)}70%{transform:scale(.8);opacity:var(--satus-pluviam-opacity,.08)}100%{transform:scale(1);opacity:0}}.satus-sortable__chosen{color:var(--satus-sortable-text)!important;background-color:var(--satus-sortable-background)!important}.satus-sortable__ghost{position:fixed!important;z-index:999!important;top:0!important;left:0!important;pointer-events:none!important;box-shadow:0 1px 3px rgb(0,0,0,.2),0 4px 8px rgb(0,0,0,.1),inset 0 0 0 1px rgb(0,0,0,.16);will-change:transform!important;opacity:.8!important}.satus-modal--contextmenu .satus-modal__scrim{background:none;backdrop-filter:none;animation:none;visibility:visible;opacity:1;transform:none}.satus-modal--contextmenu .satus-modal__surface{position:absolute;margin:0;box-sizing:border-box;min-width:200px;max-width:200px;padding:4px 0;border-radius:4px;box-shadow:none;animation:none;visibility:visible;opacity:1;transform:none}.satus-modal--contextmenu .satus-modal__surface>*{display:flex;height:32px;padding:0 16px;align-items:center}.satus-modal--contextmenu .satus-modal__surface .satus-button svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75;fill:none;stroke:var(--satus-primary);flex:0 0 20px}.satus-modal--contextmenu .satus-modal__surface .satus-button .satus-span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.satus-base{display:flex;flex-direction:column;width:100%;height:100%}.satus-aside{color:var(--satus-aside-text);background:var(--satus-aside-background);box-sizing:border-box}.satus-checkbox{position:relative;font:inherit;display:flex;color:inherit;border:none;background:transparent;appearance:none;align-items:center;justify-content:flex-start}.satus-checkbox:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-checkbox:focus{outline:none}.satus-checkbox__content{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.satus-checkbox::before{display:flex;min-width:16px;width:16px;height:16px;margin:0 12px 0 0;content:'';border:1px solid var(--satus-checkbox--border);border-radius:6px;background:var(--satus-checkbox--background);align-items:center;justify-content:center}.satus-checkbox[data-value=true]::before{background:var(--satus-primary)}.satus-checkbox[data-value=true]::after{position:absolute;top:20px;left:20px;width:8px;height:4px;content:'';transform:rotate(-45deg);border:2px solid var(--satus-checkbox--mark);border-top:none;border-right:none}.satus-select{position:relative;display:flex;cursor:pointer;align-items:center;justify-content:space-between}.satus-select:hover{background-color:var(--satus-hover)}.satus-select>span:nth-child(2){display:flex;align-items:center}.satus-select>span:nth-child(2)>svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75}.satus-select>span:nth-child(3){margin-left:16px;text-align:right;opacity:.75}.satus-select select{font:inherit;position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:inherit;opacity:0;border:none;outline:none;appearance:none;z-index:1}.satus-select option{color:var(--satus-select-text);background:var(--satus-select-background)}.satus-shortcut{justify-content:space-between}.satus-shortcut__value{font-size:11px;display:flex;text-transform:uppercase;align-items:center}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;margin:8px 4px 0;border-radius:8px;background:rgba(0,0,0,.15)}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;box-sizing:border-box;width:100%;height:68px;padding:16px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;box-sizing:border-box;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;color:#575757;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__value>.satus-shortcut__key{font-size:14px;min-width:24px;height:24px}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__value>.satus-shortcut__mouse{width:22px;height:28px}.satus-shortcut__mouse>div{position:absolute;top:0;left:calc(50% - 1px);width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-16%;right:14%;width:2px;height:60%;content:'';background:#f96754}.satus-shortcut__mouse.false::before{top:-6%}.satus-shortcut__mouse.false::after{position:absolute;top:-20%;right:calc(14% - 4px);width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:40%;right:calc(14% - 4px);width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-shortcut__mouse.click::before{position:absolute;top:0;left:-1px;width:10px;height:10px;content:'';border-radius:50%;background:#f96754}.satus-shortcut__mouse.middle::before{position:absolute;top:0;left:50%;width:10px;height:10px;content:'';border-radius:50%;background:#f96754;z-index:1;transform:translateX(-50%)}.satus-shortcut__mouse.context::before{position:absolute;top:0;left:15px;width:10px;height:10px;content:'';border-radius:50%;background:#f96754}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:none;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer}.satus-switch__content{display:flex;align-items:center}.satus-switch__content>svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75}.satus-switch>i{width:32px;height:18px;transition:background-color 150ms;border-radius:18px;background-color:var(--satus-switch-track);flex:0 0 32px}.satus-section--card .satus-switch>i{margin-left:16px}.satus-switch[data-value='true']>i{background-color:var(--satus-switch-track--active)}.satus-switch>i::before{display:block;width:14px;height:14px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:var(--satus-switch-thumb);will-change:transform}.satus-switch[data-value='true']>i::before{transform:translateX(14px)}.satus-layers{position:relative;overflow:hidden;color:var(--satus-layers-text);background:var(--satus-layers-background);flex:1}.satus-layer{position:absolute;top:0;left:0;display:flex;overflow-y:auto;flex-direction:column;box-sizing:border-box;width:100%;height:100%;padding:0 12px;align-content:center}.satus-input[type=text],.satus-input[type=password],.satus-input[type=number]{font:inherit;box-sizing:border-box;width:100%;margin:0;padding:6px 8px;color:var(--satus-text-field--text,inherit);border:none;outline:none;background:none;appearance:none;font-size:16px;margin:8px 0;border:1px solid var(--satus-text-field--border);border-radius:4px;background-color:var(--satus-text-field--background)}.satus-menubar{display:flex}.satus-menubar,.satus-menubar ul{margin:0;padding:0;list-style:none;color:var(--satus-menubar-text);background:var(--satus-menubar-background)}.satus-menubar li{position:relative}.satus-menubar li:focus,.satus-menubar li:hover{background:var(--satus-menubar-hover)}.satus-menubar>li ul{position:absolute;min-width:126px}.satus-menubar>li>ul ul{top:0;left:100%}.satus-menubar li>ul{position:absolute;display:none}.satus-menubar li>:not(ul):focus+ul,.satus-menubar li>:not(ul):hover+ul,.satus-menubar li>ul:hover{display:block}.satus-menubar li> :not(ul){font-size:14px;display:flex;width:100%;height:32px;align-items:center}.satus-main{color:var(--satus-main-text);background:var(--satus-main-background);overflow-y:auto;box-sizing:border-box}::-webkit-scrollbar{width:4px}::-webkit-scrollbar:hover{width:8px}::-webkit-scrollbar-thumb{background:rgba(var(--satus-contrast),.3)}.satus-textarea{position:relative;display:flex;overflow:hidden;color:var(--satus-textarea-color,inherit);background:var(--satus-textarea-background)}.satus-textarea textarea{font-size:inherit;line-height:1.2;overflow:auto;width:100%;height:100%;padding:0;resize:none;white-space:pre;word-break:break-all;color:inherit;border:none;outline:none;background:transparent;overflow-wrap:normal}.satus-textarea__line-number{padding:0 16px 0 8px;opacity:.5}.satus-textarea__line-number>span{font-size:inherit;line-height:1.2;display:block;width:100%;text-align:right}.satus-divider{height:1px;margin:16px 0 12px;background:var(--satus-divider)}.satus-text-field{position:relative;padding:0 16px;background-color:var(--satus-text-field--background);border-radius:8px;color:var(--satus-text-field--text);overflow:hidden;display:flex}.satus-text-field__pre{display:flex;position:relative;height:100%;margin:0;padding:0;overflow:hidden;align-items:center;flex:1}.satus-text-field__input{font:inherit;position:absolute;top:0;left:0;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0;opacity:0;border:none;appearance:none;z-index:9}.satus-text-field__hidden-text{position:absolute;pointer-events:none;opacity:0}.satus-text-field__text{position:absolute;top:0;left:0;display:flex;height:100%;margin:0;align-items:center}.satus-text-field__cursor{position:absolute;top:6px;left:0;display:none;width:2px;height:25px;animation:blink 1s step-end 8;background:#fa0}.satus-text-field__selection{position:absolute;top:5px;left:0;display:none;width:0;height:25px;border:1px solid rgba(255,255,255,.2);border-radius:3px;background:rgba(255,255,255,.1)}.satus-text-field__input:focus + * + * + * + .satus-text-field__cursor,.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field__text>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__text>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__text>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__text>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-tabs{display:flex;height:26px!important}.satus-tabs__content{position:relative;overflow:hidden;width:100%;height:100%;border:2px solid var(--satus-tabs-background);border-radius:4px;background:var(--satus-tabs-background);display:flex}.satus-tabs__selection{position:absolute;z-index:0;top:0;left:0;height:100%;transition:left .25s;border-radius:4px;background:var(--satus-tabs-foreground);box-sizing:border-box;border:1px solid var(--satus-tabs-border)}.satus-tabs__button{font:inherit;position:relative;z-index:1;overflow:hidden;height:100%;padding:0 4px;white-space:nowrap;text-overflow:ellipsis;color:inherit;border:none;background:transparent;flex:1;text-align:center}.satus-tabs__button:hover{cursor:pointer}.satus-alert{display:flex;box-sizing:border-box;min-height:48px;margin:8px 0 0;padding:8px 16px;border-radius:8px;align-items:center}.satus-alert--error{color:var(--satus-alert-error-color);border:1px solid var(--satus-alert-error-border);background:var(--satus-alert-error-background)}.satus-slider{display:block;background:var(--satus-slider-background)}.satus-slider__label{display:flex;margin:12px 0 0;justify-content:space-between;align-items:center}.satus-slider .satus-input[type=number]{font:inherit;width:64px;margin:0;padding:0;text-align:right;color:inherit;background:transparent}.satus-slider__track{position:relative;display:block;min-width:128px;height:40px;margin:0 2px}.satus-slider__track::before{position:absolute;top:50%;left:0;display:block;width:100%;height:2px;content:'';transform:translateY(-50%);opacity:.24;background:var(--satus-primary)}.satus-slider__slice{position:absolute;top:50%;left:0;height:2px;transform:translateY(-50%);background:var(--satus-primary)}.satus-slider__slice::before{position:absolute;top:50%;right:0;display:block;width:22px;height:22px;content:'';transition:width 200ms,height 200ms,opacity 200ms;transform:translate(50%,-50%);opacity:0;border-radius:50%;background:var(--satus-primary)}.satus-slider__track:focus .satus-slider__slice::before{width:32px;height:32px;opacity:.16}.satus-slider__slice::after{position:absolute;top:50%;right:0;display:block;width:10px;height:10px;content:'';transition:width 200ms,height 200ms;transform:translate(50%,-50%);border-radius:50%;background:var(--satus-primary)}.satus-slider__track:focus .satus-slider__slice::after{width:12px;height:12px}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:none;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:22px;height:22px;border:2px solid rgba(0,0,0,.16);border-radius:50%;background:#fff}.satus-modal--color-picker{position:relative}.satus-modal--color-picker .satus-modal__surface{padding-top:0}.satus-color-picker__palette{position:relative;overflow:hidden;width:100%;height:256px;background-color:#f00}.satus-color-picker__palette:before{position:absolute;top:0;left:0;width:100%;height:100%;content:'';background-image:linear-gradient(0deg,black,transparent),linear-gradient(90deg,white,transparent)}.satus-color-picker__cursor{position:absolute;width:5px;height:5px;transform:translate(-50%,-50%);pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000}.satus-modal--color-picker .satus-modal__surface .satus-section--color{margin:8px 16px 0;align-items:center}.satus-color-picker__color{width:32px;height:32px;margin:0 16px 0 0;border:2px solid rgba(0,0,0,.16);border-radius:50%;background:#f00}.satus-slider.satus-color-picker__hue{padding:0;flex:1}.satus-color-picker__hue .satus-slider__track{height:16px;border-radius:4px;background-image:linear-gradient(90deg,#f00,#ff2a00,#f50,#ff7f00,#fa0,#ffd400,#ff0,#d4ff00,#af0,#80ff00,#5f0,#2bff00,#0f0,#00ff2b,#0f5,#00ff80,#0fa,#00ffd5,#0ff,#00d4ff,#0af,#007fff,#05f,#002bff,#00f,#2a00ff,#50f,#7f00ff,#a0f,#d400ff,#f0f,#ff00d4,#f0a,#ff0080,#f05,#ff002b,#f00)}.satus-color-picker__hue .satus-slider__handle{width:16px;height:16px;background:#fff;box-shadow:0 0 4px rgb(0,0,0,.64)}.satus-color-picker__hue::before,.satus-color-picker__hue .satus-slider__track-fill,.satus-color-picker__hue .satus-slider__handle:focus::after{display:none}.satus-section{display:flex;box-sizing:border-box;flex-wrap:wrap}.satus-section--align-start{align-items:center;justify-content:flex-start}.satus-section--align-end{align-items:center;justify-content:flex-end}.satus-section--space-between{align-items:center;justify-content:space-between}.satus-section--column{flex-direction:column}.satus-section--card{flex-direction:column;box-sizing:border-box;width:100%;max-width:900px;margin:8px auto;padding:8px 0;color:var(--satus-section-card-text);border:1px solid var(--satus-section-card-border);border-radius:8px;background:var(--satus-section-card-background);justify-content:stretch}.satus-section--label{width:100%;max-width:900px;margin:8px auto}.satus-section--card>:not(.satus-button){box-sizing:border-box;min-height:48px;padding:0 16px;text-align:left}.satus-section--card>.satus-switch,.satus-section--card>.satus-select,.satus-section--card>.satus-radio{display:flex;justify-content:space-between;align-items:center}.satus-section--card>.satus-button:hover,.satus-section--card>.satus-switch:hover,.satus-section--card>.satus-select:hover,.satus-section--card>.satus-slider:hover,.satus-section--card>.satus-radio:hover{background-color:var(--satus-hover)}.satus-section--card>.satus-button{width:100%;padding:0 16px}.satus-section--card>.satus-button>svg{width:20px;margin:2px 16px 0 0;color:var(--satus-primary)}.satus-section--card>.satus-span{display:flex;align-items:center}.satus-list{list-style:none;margin:0}.satus-list__item{display:flex;align-items:center;justify-content:space-between;min-height:48px}.satus-list__item>:last-child{text-align:right}.satus-header{z-index:1;display:flex;box-sizing:border-box;height:56px;padding:0 12px;color:var(--satus-header-text);background:var(--satus-header-background);border-bottom:1px solid var(--satus-header-border);box-shadow:0 0 3px rgb(0,0,0,.1);align-items:center;justify-content:space-between}.satus-header .satus-button{width:40px;min-width:40px;height:40px;padding:8px;color:inherit;border-radius:50%}.satus-header .satus-section--align-start>*{margin-right:8px}.satus-header .satus-span--title{font-size:15px;font-weight:500;overflow:hidden;white-space:nowrap;letter-spacing:.0125em;text-overflow:ellipsis;flex:1}.satus-button{font:inherit;position:relative;display:flex;overflow:hidden;height:48px;margin:0;padding:8px;text-align:left;color:var(--satus-button-text,inherit);border:none;background:var(--satus-button-background,transparent);appearance:none;align-items:center}.satus-button:hover{cursor:pointer;background-color:var(--satus-hover)}.satus-button[hidden]{display:none}.satus-button>svg{min-width:20px}.satus-button>.satus-span--label{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.satus-modal{position:absolute;z-index:100;top:0;left:0;display:flex;width:100%;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:modalFadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.16);backdrop-filter:blur(8px)}.satus-modal__surface{display:flex;overflow-y:auto;flex-direction:column;width:95%;min-width:240px;max-width:560px;max-height:80%;margin:0 16px;padding:12px 16px;transform:scale(.8);animation:modalZoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-text);border-radius:6px;background-color:var(--satus-modal-background);border:1px solid var(--satus-modal-border);box-shadow:0 2px 6px rgb(0,0,0,.15);box-sizing:border-box}.satus-modal__surface .satus-section--actions{display:flex;width:100%;margin:8px 0 0;padding:0;justify-content:flex-end;align-items:center}.satus-modal__surface .satus-section--actions .satus-button{font-weight:500;height:32px;margin-left:8px;padding:0 8px;letter-spacing:.5px;color:var(--satus-primary);border-radius:4px}.satus-modal__surface .satus-section--actions .satus-button:hover{background:rgba(var(--satus-contrast),.075)}.satus-modal--closing .satus-modal__scrim{animation:modalFadeOut 70ms linear forwards}.satus-modal--closing .satus-modal__surface{animation:modalZoomOut 70ms linear forwards}.satus-modal--vertical .satus-modal__surface{position:absolute;top:8px;right:8px;left:auto;min-width:200px;max-width:200px;margin:0;padding:8px 0;transform-origin:right top}.satus-modal--vertical .satus-modal__surface>.satus-button,.satus-modal--vertical .satus-modal__surface>.satus-switch,.satus-modal--vertical .satus-modal__surface>.satus-select{height:36px;padding:0 16px}.satus-modal--vertical .satus-modal__surface>.satus-tabs{padding:0 12px}.satus-modal--vertical .satus-modal__surface>.satus-span{font-size:13px;font-weight:500;margin:6px 0;padding:0 12px}.satus-modal--vertical .satus-modal__surface>.satus-button:hover,.satus-modal--vertical .satus-modal__surface>.satus-switch:hover,.satus-modal--vertical .satus-modal__surface>.satus-select:hover{background-color:var(--satus-hover)}.satus-modal--vertical .satus-button svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75;flex:0 0 20px}.satus-modal--vertical .satus-button .satus-span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}@keyframes modalFadeOut{from{opacity:1}to{opacity:0}}@keyframes modalZoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalZoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}} \ No newline at end of file diff --git a/ui/satus/satus.js b/ui/satus/satus.js deleted file mode 100644 index cf8e3f550..000000000 --- a/ui/satus/satus.js +++ /dev/null @@ -1 +0,0 @@ -var satus={components:{},events:{},locale:{strings:{}},storage:{attributes:{},data:{}},getAnimationDuration:function(e){return 1e3*Number(window.getComputedStyle(e).getPropertyValue("animation-duration").replace(/[^0-9.]/g,""))},ajax:function(e,t,n){var a=new XMLHttpRequest;a.onload=function(){t(this.response)},a.onerror=function(){n(t)},a.open("GET",e,!0),a.send()},append:function(e,t){(t||document.body).appendChild(e)},attr:function(e,t){if(t)for(var n in t)if(e.is_svg)e.setAttributeNS(null,n,t[n]);else{var a=t[n];-1!==["placeholder","title"].indexOf(n)&&(a=satus.locale.get(a)),e.setAttribute(n,a)}},elementIndex:function(e){return Array.prototype.slice.call(e.parentNode.children).indexOf(e)},camelize:function(e){for(var t="",n=0,a=e.length;n-1;n--){var a=e.childNodes[n];-1===t.indexOf(a)&&a.remove()}}};Object.defineProperty(satus.events,"add",{value:function(e,t){!1===this.hasOwnProperty(e)&&(this[e]=[]),this[e].push(t)}}),satus.isset=function(e){return null!=e},satus.fetch=function(e,t,n){fetch(e).then((function(e){e.ok?e.json().then(t):n()})).catch((function(){n(t)}))},satus.on=function(e,t){if(this.isset(t)&&"object"==typeof t)for(var n in t){var a=typeof t[n];"selectionchange"===n&&(e=document),"function"===a?e.addEventListener(n,t[n]):"object"===a?e.addEventListener(n,(function(e){this.skeleton.on[e.type].parent=this.skeleton,"modal"!==this.skeleton.on[e.type].component&&this.base&&this.base.layers?this.base.layers.open(this.skeleton.on[e.type]):satus.render(this.skeleton.on[e.type],this.base)})):"string"===a&&e.addEventListener(n,(function(){for(var e=this.skeleton.on[event.type].match(/(["'`].+["'`]|[^.()]+)/g),t=this.base,n=0,a=e.length;nparseInt(e,16))),a={name:"AES-GCM",iv:new Uint8Array(n)};try{var s=(new TextDecoder).decode(await crypto.subtle.decrypt(a,await crypto.subtle.importKey("raw",await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t)),a,!1,["decrypt"]),new Uint8Array(atob(e.slice(24)).match(/[\s\S]/g).map((e=>e.charCodeAt(0))))))}catch(e){return!1}return s},satus.encrypt=async function(e,t){var n=crypto.getRandomValues(new Uint8Array(12)),a={name:"AES-GCM",iv:n};return Array.from(n).map((e=>("00"+e.toString(16)).slice(-2))).join("")+btoa(Array.from(new Uint8Array(await crypto.subtle.encrypt(a,await crypto.subtle.importKey("raw",await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t)),a,!1,["encrypt"]),(new TextEncoder).encode(e)))).map((e=>String.fromCharCode(e))).join(""))},satus.storage.get=function(e){var t=satus.storage.data;if("string"==typeof e){for(var n=0,a=(e=e.split("/").filter((function(e){return""!=e}))).length;n=6&&(a-=6),a<1?(n-t)*a+t:a<3?n:a<4?(n-t)*(4-a)+t:t},satus.color.hslToRgb=function(e){var t,n,a,s=e[0]/360,o=e[1]/100,r=e[2]/100;if(0==o)t=n=a=r;else{var i=function(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e},u=r<.5?r*(1+o):r+o-r*o,l=2*r-u;t=i(l,u,s+1/3),n=i(l,u,s),a=i(l,u,s-1/3)}return[Math.round(255*t),Math.round(255*n),Math.round(255*a)]},satus.events.add("render",(function(e,t){if(!0===t.pluviam){function n(e){var t=document.createElement("span"),n=this.getBoundingClientRect(),a=e.clientX-n.left,s=e.clientY-n.top,o=Math.sqrt(Math.pow(2*n.width,2)+Math.pow(2*n.height,2));t.className="satus-pluviam",t.style.left=a-o/2+"px",t.style.top=s-o/2+"px",t.style.width=o+"px",t.style.height=o+"px",this.appendChild(t),setTimeout((function(){t.remove()}),1e3)}e.addEventListener("mousedown",n),e.addEventListener("mouseover",n)}})),satus.indexeddb={request:null},satus.indexeddb.open=function(e,t,n){var a=indexedDB.open(e);a.onerror=function(e){n()},a.onblocked=function(e){satus.indexeddb.open(n)},a.onsuccess=function(e){satus.indexeddb.request=this.result,n()},a.onupgradeneeded=function(e){for(var a in satus.indexeddb.request=this.result,t){var s=t[a];if(!this.result.objectStoreNames.contains(a))for(var o=this.result.createObjectStore(a,s.keyOptions),r=0,i=s.indexes.length;r0?(l.advance(s.offset),s.offset=0):r.length0?(l.advance(s.offset),s.offset=0):i&&r.length4||Math.abs(e.clientY-s)>4)&&(l=!0,t.classList.add("satus-sortable__chosen"),t.parentNode.appendChild(i)),i.style.transform="translate("+(e.clientX-o)+"px, "+(e.clientY-r)+"px)"}function d(e){var n=e.target,a=n.parentNode,s=e.layerY/(n.offsetHeight/100);s<50&&n.previousSibling!==t||s>=50&&n.nextSibling===t?a.insertBefore(t,n):a.insertBefore(t,n.nextSibling)}i.classList.add("satus-sortable__ghost"),window.addEventListener("mousemove",c,{passive:!0,capture:!0}),window.addEventListener("mouseup",(function e(n){t.classList.remove("satus-sortable__chosen"),i.remove(),window.removeEventListener("mousemove",c,!0),window.removeEventListener("mouseup",e,!0);for(var a=0,s=u.length;a0||window.navigator.msMaxTouchPoints>0)&&(u.device.touch=!0,u.device.max_touch_points=navigator.maxTouchPoints),"object"==typeof navigator.connection&&(u.device.connection.type=navigator.connection.effectiveType||null,navigator.connection.downlink&&(u.device.connection.speed=navigator.connection.downlink+" Mbps")),n.remove(),s.remove(),r.remove(),u},satus.uuid=function(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(e){return(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)}))},satus.events.add("render",(function(e,t){t.contextMenu&&e.addEventListener("contextmenu",(function(e){var t=e.clientX,n=e.clientY,a=satus.render({component:"modal",variant:"contextmenu",parent:this.skeleton});return window.innerWidth-t<200&&(t=window.innerWidth-200),a.inner.style.left=t+"px",a.inner.style.top=n+"px",satus.render(this.skeleton.contextMenu,a.inner),e.preventDefault(),e.stopPropagation(),!1}))})),satus.components.base=function(e){var t=document.createElement("div");return t.base=t,t},satus.components.radio=function(e){var t=document.createElement("label"),n=document.createElement("span"),a=document.createElement("input");return t.inner=n,a.type="radio",e.group&&(t.storage=e.group,a.name=e.group),e.value&&(a.value=e.value),t.addEventListener("render",(function(){this.storageValue=satus.storage.get(this.storage),satus.isset(this.storageValue)?a.checked=this.storageValue===e.value:e.checked&&(a.checked=!0)})),a.addEventListener("change",(function(){t.storageValue=this.value,t.storageChange()})),t.appendChild(n),t.appendChild(a),t},satus.components.checkbox=function(e){var t=document.createElement("button"),n=document.createElement("span");return t.inner=n,n.className="satus-checkbox__content",t.appendChild(n),t.addEventListener("click",(function(){"true"===this.dataset.value?(this.storageValue=!1,this.dataset.value="false"):(this.storageValue=!0,this.dataset.value="true"),this.storageChange()})),t.addEventListener("render",(function(){this.dataset.value=this.storageValue})),t},satus.components.select=function(e){for(var t=document.createElement("div"),n=document.createElement("span"),a=document.createElement("span"),s=document.createElement("select"),o=0,r=e.options.length;o0)}if(this.data.click){t.length&&-1===t[t.length-1].className.indexOf("plus")&&n("plus");r=n("mouse"),i=document.createElement("div");r.appendChild(i),r.className+=" click"}if(this.data.middle){t.length&&-1===t[t.length-1].className.indexOf("plus")&&n("plus");r=n("mouse"),i=document.createElement("div");r.appendChild(i),r.className+=" middle"}if(this.data.context){t.length&&-1===t[t.length-1].className.indexOf("plus")&&n("plus");r=n("mouse"),i=document.createElement("div");r.appendChild(i),r.className+=" context"}},t.valueElement=a,t.appendChild(n),t.appendChild(a),t.keydown=function(e){return e.preventDefault(),e.stopPropagation(),t.data={alt:e.altKey,ctrl:e.ctrlKey,shift:e.shiftKey,keys:{}},-1===["control","alt","altgraph","shift"].indexOf(e.key.toLowerCase())&&(t.data.keys[e.keyCode]={code:e.code,key:e.key}),t.data.wheel=0,t.render(),!1},!1!==e.wheel&&(t.mousewheel=function(e){return e.stopPropagation(),(0===t.data.wheel&&0===Object.keys(t.data.keys).length&&!1===t.data.alt&&!1===t.data.ctrl&&!1===t.data.shift||t.data.wheel<0&&e.deltaY>0||t.data.wheel>0&&e.deltaY<0)&&(t.data={alt:!1,ctrl:!1,shift:!1,keys:{}}),t.data.wheel=e.deltaY<0?-1:1,t.render(),!1}),t.addEventListener("render",(function(){this.data=this.storageValue||{alt:!1,ctrl:!1,shift:!1,keys:{},wheel:0},this.render(this.valueElement)})),t.addEventListener("click",(function(){satus.render({component:"modal",properties:{parent:this},on:{close:function(){window.removeEventListener("keydown",t.keydown),window.removeEventListener("wheel",t.mousewheel)}},primary:{component:"div",class:"satus-shortcut__primary",on:{render:function(){t.primary=this,!0===t.skeleton.mouseButtons&&(this.addEventListener("mousedown",(function(e){(t.data.click&&0===e.button||t.data.middle&&1===e.button)&&(t.data={alt:!1,ctrl:!1,shift:!1,keys:{}}),t.data.click=!1,t.data.middle=!1,t.data.context=!1,0===e.button?(t.data.click=!0,t.render()):1===e.button&&(t.data.middle=!0,t.render())})),this.addEventListener("contextmenu",(function(e){return e.preventDefault(),e.stopPropagation(),t.data.context&&(t.data={alt:!1,ctrl:!1,shift:!1,keys:{}}),t.data.context=!0,t.data.middle=!1,t.data.click=!1,t.render(),!1}))),t.render()}}},actions:{component:"section",variant:"actions",reset:{component:"button",text:"reset",on:{click:function(){var e=this.parentNode.parentNode.parentNode.parent;e.data=e.skeleton.value||{},e.render(e.valueElement),satus.storage.remove(e.storage),this.parentNode.parentNode.parentNode.close(),window.removeEventListener("keydown",e.keydown),window.removeEventListener("wheel",e.mousewheel)}}},empty:{component:"button",text:"empty",on:{click:function(){t.data={alt:!1,ctrl:!1,shift:!1,keys:{0:{code:"Lang1",key:""}},wheel:0},t.storageValue=t.data,t.storageChange(),t.render(t.valueElement),this.parentNode.parentNode.parentNode.close(),window.removeEventListener("keydown",t.keydown),window.removeEventListener("wheel",t.mousewheel)}}},cancel:{component:"button",text:"cancel",on:{click:function(){t.data=satus.storage.get(t.storage)||t.skeleton.value||{},t.render(t.valueElement),this.parentNode.parentNode.parentNode.close(),window.removeEventListener("keydown",t.keydown),window.removeEventListener("wheel",t.mousewheel)}}},save:{component:"button",text:"save",on:{click:function(){t.storageValue=t.data,t.storageChange(),t.render(t.valueElement),this.parentNode.parentNode.parentNode.close(),window.removeEventListener("keydown",t.keydown),window.removeEventListener("wheel",t.mousewheel)}}}}}),window.addEventListener("keydown",this.keydown),window.addEventListener("wheel",this.mousewheel)})),t},satus.components.switch=function(e){var t=document.createElement("button"),n=document.createElement("span"),a=document.createElement("i");return t.inner=n,n.className="satus-switch__content",t.addEventListener("click",(function(){"true"===this.dataset.value?(this.storageValue=!1,this.dataset.value="false"):(this.storageValue=!0,this.dataset.value="true"),this.storageChange()})),t.addEventListener("render",(function(){this.dataset.value=this.storageValue})),t.appendChild(n),t.appendChild(a),t},satus.components.layers=function(e){var t=document.createElement("div");return t.path=[e],t.back=function(){this.path.length>1&&(this.path.pop(),this.open())},t.open=function(e){var t=document.createElement("div");e?this.path.push(e):e=this.path[this.path.length-1],t.className="satus-layer",t.skeleton=e,t.base=this.base,satus.render(e,t,"layers"===e.component),satus.empty(this),this.appendChild(t),this.dispatchEvent(new Event("open"))},t.update=function(){var e=this.querySelector(".satus-layer");satus.empty(e),satus.render(e.skeleton,e)},t.render_children=!1,t.addEventListener("render",(function(){this.open()})),t},satus.components.input=function(e){var t=document.createElement("input");if(e.attr){var n=e.attr.name||e.storage;a=satus.isset(satus.storage.get(n))?satus.storage.get(n):e.value,"radio"===e.attr.type?t.checked=a===e.attr.value||e.value:satus.isset(a)&&(t.value=a),t.addEventListener("change",(function(){var e=this.skeleton.attr.name||this.skeleton.storage;satus.storage.set(e,this.value)}))}else{var a;n=e.name||e.storage;t.type=e.type,a=satus.isset(satus.storage.get(n))?satus.storage.get(n):e.value,"radio"===e.type?t.checked=a===e.value||e.value:satus.isset(a)&&(t.value=a),t.addEventListener("change",(function(){var e=this.skeleton.name||this.skeleton.storage;satus.storage.set(e,this.value)}))}return t},satus.components.menubar=function(e){return function e(t){var n=document.createElement("ul");for(var a in t){var s=t[a],o=document.createElement("li");satus.render(s,o),s.items&&o.appendChild(e(s.items)),n.appendChild(o)}return n}(e.items)},satus.components.textarea=function(e){var t=document.createElement("div"),n=document.createElement("div"),a=document.createElement("textarea");return n.className="satus-textarea__line-number",t.line_number=n,t.textarea=a,Object.defineProperty(t,"value",{get(){return this.textarea.value},set(e){this.textarea.value=e,this.line_number.update()}}),n.update=function(){var e=this.parentNode.textarea.value.split("\n").length;if(e!==this.children.length){satus.empty(this);for(var t=1;t<=e;t++){var n=document.createElement("span");n.textContent=t,this.appendChild(n)}}},a.addEventListener("input",(function(){this.parentNode.line_number.update()})),a.addEventListener("selectionchange",(function(){this.parentNode.line_number.update()})),a.addEventListener("scroll",(function(){this.parentNode.line_number.style.transform="translateY(-"+this.scrollTop+"px)",this.parentNode.line_number.update()})),t.appendChild(n),t.appendChild(a),n.update(1),t},satus.components.divider=function(){return document.createElement("div")},satus.components.textField=function(e){var t=document.createElement("div"),n=document.createElement("pre"),a=document.createElement("textarea"),s=document.createElement("span"),o=document.createElement("span"),r=document.createElement("div"),i=document.createElement("div");return a.className="satus-text-field__input",n.className="satus-text-field__pre",s.className="satus-text-field__hidden-text",o.className="satus-text-field__text",r.className="satus-text-field__selection",i.className="satus-text-field__cursor",t.inputElement=a,t.textElement=o,t.languages={regex:function(e){var t=/^(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??$/,n=e.inputElement.value.match(/\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g);function a(t,n){var a=document.createElement("span");a.className=t,a.textContent=n,e.textElement.appendChild(a)}for(var s=0,o=n.length;s-1;t--)this.textElement.childNodes[t].remove();this.value.length>0&&(e.languages[e._syntax]?e.languages[e._syntax](e):this.textElement.textContent=this.value)},a.updateCursor=function(){var e=this.cursorElement,t=this.selectionElement,n=this.hiddenTextElement,a=this.selectionStart,s=this.selectionEnd;e.style.animation="none",a===s?t.setAttribute("disabled",""):(t.removeAttribute("disabled"),n.textContent=this.value.substring(0,a),t.style.left=n.offsetWidth-this.scrollLeft+"px",n.textContent=this.value.substring(a,s),t.style.width=n.offsetWidth+"px"),"forward"===this.selectionDirection?n.textContent=this.value.substring(0,s):n.textContent=this.value.substring(0,a),e.style.left=n.offsetWidth-this.scrollLeft+"px",e.style.animation="",n.textContent=""},a.addEventListener("keydown",(function(){var e=this;setTimeout((function(){var t=e.parentNode.parentNode;t.storageValue=e.value,t.storageChange(),e.updateValue(),e.updateCursor()}))})),a.addEventListener("scroll",(function(e){this.textElement.style.left=-this.scrollLeft+"px"})),document.addEventListener("selectionchange",(function(){a.updateCursor()})),r.setAttribute("disabled",""),n.appendChild(a),n.appendChild(s),n.appendChild(o),n.appendChild(r),n.appendChild(i),t.appendChild(n),t.addEventListener("render",(function(){a.value=this.storageValue,this.inputElement.updateValue(),this.inputElement.updateCursor()})),t},satus.components.tabs=function(e){var t=document.createElement("div"),n=document.createElement("div"),a=document.createElement("div");n.className="satus-tabs__content",a.className="satus-tabs__selection",a.style.width=100/e.items.length+"%",n.appendChild(a),t.selection=a;for(var s=0,o=e.items.length;s>> POPUP: ----------------------------------------------------------------- -# Skeleton -# Initialization ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# SKELETON ---------------------------------------------------------------*/ - -var skeleton = { - component: 'base', - class: 'search-mode', - attr: { - 'theme': 'default' - }, - - header: { - component: 'header', - - section_start: { - component: 'section', - variant: 'align-start', - - back: { - component: 'button', - attr: { - 'hidden': 'true' - }, - on: { - click: 'layers.back' - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'stroke-width': '1.5' - }, - - path: { - component: 'path', - attr: { - 'd': 'M14 18l-6-6 6-6' - } - } - } - }, - title: { - component: 'span', - variant: 'title', - data: { - version: chrome.runtime.getManifest().version - } - } - }, - section_end: { - component: 'section', - variant: 'align-end', - - search_field: { - component: 'input', - class: 'satus-input--search', - storage: false, - attr: { - 'type': 'text', - 'placeholder': 'search', - 'autofocus': true - }, - on: { - render: function () { - this.focus(); - }, - blur: function () { - if (this.value.length === 0) { - var results = document.querySelector('.search-results'); - - if (results) { - results.close(); - } - - this.base.classList.remove('search-mode'); - } - }, - keydown: function (event) { - var value = this.value, - key = event.key; - - setTimeout(function () { - if (value.length === 0 && key === 'Backspace') { - var results = document.querySelector('.search-results'); - - if (results) { - results.close(); - } - - this.base.classList.remove('search-mode'); - } - }); - }, - input: function (event) { - var self = this, - value = this.value.trim(); - - if (value.length > 0) { - satus.search(value, skeleton, function (results) { - var search_results = document.querySelector('.search-results'), - skeleton = { - component: 'modal', - class: 'search-results' - }; - - for (var key in results) { - var result = results[key], - parent = result; - - while ( - parent.parent && - !parent.parent.category - ) { - parent = parent.parent; - } - - var category = ''; - - if (parent.parent && parent.parent.label && parent.parent.label.text) { - category = parent.parent.label.text; - } - - parent = result; - - while ( - parent.parent && - parent.parent.component !== 'button' - ) { - parent = parent.parent; - } - - parent = parent.parent; - - if (parent) { - if (parent.label) { - var subcategory = parent.label.text; - } else { - var subcategory = parent.text; - } - - skeleton[category + subcategory + '_label'] = { - component: 'span', - class: 'satus-section--label', - text: satus.locale.get(category) + ' -> ' + satus.locale.get(subcategory) - }; - - if (!skeleton[category + subcategory]) { - skeleton[category + subcategory] = { - component: 'section', - variant: 'card' - }; - } - - skeleton[category + subcategory][key] = result; - } else { - skeleton[category + '_label'] = { - component: 'span', - class: 'satus-section--label', - text: category - }; - - if (!skeleton[category]) { - skeleton[category] = { - component: 'section', - variant: 'card' - }; - } - - skeleton[category][key] = result; - } - } - - if (Object.keys(results).length === 0) { - if (search_results) { - search_results.remove(); - } - } else { - if (search_results) { - var parent = document.querySelector('.search-results .satus-modal__surface'); - - while (parent.children[0]) { - parent.children[0].remove(); - } - - delete skeleton.component; - - satus.render(skeleton, parent); - } else { - satus.render(skeleton, self.base); - - document.querySelector('.search-results .satus-modal__scrim').addEventListener('click', function () { - var results = document.querySelector('.search-results'); - - if (results) { - results.close(); - } - - document.querySelector('.satus-input--search').value = ''; - document.querySelector('.search-mode').classList.remove('search-mode'); - }); - } - } - }, true); - } else { - var results = document.querySelector('.search-results'); - - if (results) { - results.close(); - } - } - } - } - }, - search_close: { - component: 'button', - class: 'satus-button--close-search', - on: { - click: function () { - var results = document.querySelector('.search-results'); - - if (results) { - results.close(); - } - - this.base.classList.remove('search-mode'); - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'stroke-width': '1.75' - }, - - path: { - component: 'path', - attr: { - 'd': 'M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z' - } - } - } - }, - search: { - component: 'button', - on: { - click: function () { - this.base.classList.toggle('search-mode'); - - this.base.skeleton.header.section_end.search_field.rendered.focus(); - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'stroke': 'currentcolor', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - 'stroke-width': '1.25' - }, - - circle: { - component: 'circle', - attr: { - 'cx': '11', - 'cy': '10.5', - 'r': '6' - } - }, - path: { - component: 'path', - attr: { - 'd': 'M20 20l-4-4' - } - } - } - }, - menu: { - component: 'button', - on: { - click: { - component: 'modal', - variant: 'vertical', - - active_features: { - component: 'button', - on: { - click: { - component: 'section', - variant: 'card', - on: { - render: function () { - var component = this; - - this.skeleton.parent.parent.rendered.close(); - - satus.search('', skeleton, function (results) { - var skeleton = {}; - - for (var key in results) { - var result = results[key], - default_value = result.value || false, - value = satus.storage.get(key), - parent = result; - - if (result.component === 'select') { - if (satus.isset(result.value) === false) { - default_value = result.options[0].value; - } - } - - if (satus.isset(value) && value !== default_value) { - while ( - parent.parent && - !parent.parent.category - ) { - parent = parent.parent; - } - - var category = parent.parent.label.text; - - parent = result; - - while ( - parent.parent && - parent.parent.component !== 'button' - ) { - parent = parent.parent; - } - - parent = parent.parent; - - console.log(result, category, parent); - - if (parent) { - if (parent.label) { - var subcategory = parent.label.text; - } else { - var subcategory = parent.text; - } - - skeleton[category + subcategory + '_label'] = { - component: 'span', - class: 'satus-section--label', - text: satus.locale.get(category) + ' -> ' + satus.locale.get(subcategory) - }; - - if (!skeleton[category + subcategory]) { - skeleton[category + subcategory] = { - component: 'section', - variant: 'card' - }; - } - - skeleton[category + subcategory][key] = result; - } else { - skeleton[category + '_label'] = { - component: 'span', - class: 'satus-section--label', - text: category - }; - - if (!skeleton[category]) { - skeleton[category] = { - component: 'section', - variant: 'card' - }; - } - - skeleton[category][key] = result; - } - } - } - - if (Object.keys(skeleton).length === 0) { - skeleton = { - component: 'section', - variant: 'card', - - span: { - component: 'span', - text: 'noActiveFeatures' - } - }; - } - - satus.render(skeleton, component.parentNode); - - component.remove(); - }); - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'stroke-width': 1.75 - }, - - path1: { - component: 'path', - attr: { - 'd': 'M22 11.08V12a10 10 0 11-5.93-9.14' - } - }, - path2: { - component: 'path', - attr: { - 'd': 'M22 4L12 14.01l-3-3' - } - } - }, - label: { - component: 'span', - text: 'activeFeatures' - } - }, - settings: { - component: 'button', - category: true, - on: { - click: { - section_1: { - component: 'section', - variant: 'card', - on: { - render: function () { - this.skeleton.parent.parent.parent.rendered.close(); - } - }, - - developer_options: { - component: 'button', - on: { - click: { - custom_js_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'customJs' - }, - custom_js: { - component: 'input', - attr: { - 'type': 'text' - }, - on: { - render: function () { - this.value = satus.storage.get('custom_js') || ''; - }, - input: function () { - satus.storage.set('custom_js', this.value); - } - } - }, - custom_css_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'customCss' - }, - custom_css: { - component: 'input', - attr: { - 'type': 'text' - }, - on: { - render: function () { - this.value = satus.storage.get('custom_css') || ''; - }, - input: function () { - satus.storage.set('custom_css', this.value); - } - } - }, - google_api_key_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'googleApiKey' - }, - google_api_key: { - component: 'input', - attr: { - type: 'text' - }, - on: { - render: function () { - this.value = satus.storage.get('google-api-key') || 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; - }, - input: function () { - var value = this.value; - - if (value.length === 0) { - value = 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA'; - } - - satus.storage.set('google-api-key', value); - } - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'currentColor' - }, - - path: { - component: 'path', - attr: { - 'd': 'M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z' - } - } - }, - label: { - component: 'span', - text: 'developerOptions' - } - }, - }, - section_2: { - component: 'section', - variant: 'card', - - appearance: { - component: 'button', - on: { - click: { - section_label_1: { - component: 'span', - class: 'satus-section--label', - text: 'general' - }, - section_1: { - component: 'section', - variant: 'card', - header: { - component: 'button', - text: 'header', - on: { - click: { - section: { - component: 'section', - variant: 'card', - - title_version: { - component: 'switch', - text: 'version' - } - } - } - } - }, - home: { - component: 'button', - text: 'home', - on: { - click: { - section_1: { - component: 'section', - variant: 'card', - - improvedtube_home: { - component: 'select', - text: 'style', - options: [{ - text: 'bubbles', - value: 'bubbles' - }, { - text: 'list', - value: 'list' - }] - } - }, - section_label_2: { - component: 'span', - class: 'satus-section--label', - text: 'categories' - }, - section_2: { - component: 'section', - variant: 'card', - - it_general: { - component: 'switch', - text: 'general', - value: true - }, - it_appearance: { - component: 'switch', - text: 'appearance', - value: true - }, - it_themes: { - component: 'switch', - text: 'themes', - value: true - }, - it_player: { - component: 'switch', - text: 'player', - value: true - }, - it_playlist: { - component: 'switch', - text: 'playlist', - value: true - }, - it_channel: { - component: 'switch', - text: 'channel', - value: true - }, - it_shortcuts: { - component: 'switch', - text: 'shortcuts', - value: true - }, - it_mixer: { - component: 'switch', - text: 'mixer', - value: true - }, - it_analyzer: { - component: 'switch', - text: 'analyzer', - value: true - }, - it_blacklist: { - component: 'switch', - text: 'blacklist', - value: true - } - } - } - } - } - }, - section_label_2: { - component: 'span', - class: 'satus-section--label', - text: 'icons' - }, - section_2: { - component: 'section', - variant: 'card', - - improvedtube_youtube_icon: { - text: 'improvedtubeIconOnYoutube', - component: 'select', - options: [{ - text: 'disabled', - value: 'disabled' - }, { - text: 'youtubeHeaderLeft', - value: 'header_left' - }, { - text: 'youtubeHeaderRight', - value: 'header_right' - }, { - text: 'sidebar', - value: 'sidebar' - }, { - text: 'draggable', - value: 'draggable' - }, { - text: 'belowPlayer', - value: 'below_player' - }] - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'currentColor' - }, - - path: { - component: 'path', - attr: { - 'd': 'M7 16c.6 0 1 .5 1 1a2 2 0 0 1-2 2h-.5a4 4 0 0 0 .5-2c0-.6.5-1 1-1M18.7 3a1 1 0 0 0-.7.3l-9 9 2.8 2.7 9-9c.3-.4.3-1 0-1.4l-1.4-1.3a1 1 0 0 0-.7-.3zM7 14a3 3 0 0 0-3 3c0 1.3-1.2 2-2 2 1 1.2 2.5 2 4 2a4 4 0 0 0 4-4 3 3 0 0 0-3-3z' - } - } - }, - label: { - component: 'span', - text: 'appearance' - } - }, - languages: { - component: 'button', - on: { - click: { - section: { - component: 'section', - variant: 'card', - - language: { - text: 'improvedtubeLanguage', - component: 'select', - on: { - change: function (name, value) { - satus.memory.set('locale', {}); - - satus.locale(function () { - document.querySelector('.satus-main__container').innerHTML = ''; - - document.querySelector('.satus-header__title').innerText = satus.locale.getMessage('languages'); - document.querySelector('#search').placeholder = satus.locale.getMessage('search'); - - satus.render(document.querySelector('.satus-main__container'), skeleton.main.section.settings.section.languages); - }); - } - }, - options: [{ - value: 'en', - text: 'English' - }, { - value: 'ko', - text: '한국어' - }, { - value: 'es', - text: 'Español (España)' - }, { - value: 'ru', - text: 'Русский' - }, { - value: 'de', - text: 'Deutsch' - }, { - value: 'zh_TW', - text: '中文 (繁體)' - }, { - value: 'pt_PT', - text: 'Português' - }, { - value: 'pt_BR', - text: 'Português (Brasil)' - }, { - value: 'zh_CN', - text: '中文 (简体)' - }, { - value: 'fr', - text: 'Français' - }, { - value: 'ja', - text: '日本語' - }, { - value: 'tr', - text: 'Türkçe' - }, { - value: 'it', - text: 'Italiano' - }, { - value: 'nl', - text: 'Nederlands' - }, { - value: 'ar', - text: 'العربية' - }, { - value: 'id', - text: 'Bahasa Indonesia' - }, { - value: 'nb', - text: 'Norsk' - }, { - value: 'nb_NO', - text: 'Norsk (Bokmål)' - }, { - value: 'el', - text: 'Ελληνικά' - }, { - value: 'bn', - text: 'বাংলা' - }, { - value: 'hin', - text: 'हिन्दी' - }, { - value: 'sk', - text: 'Slovenčina' - }, { - value: 'pl', - text: 'Polski' - }] - }, - youtube_language: { - text: 'youtubeLanguage', - component: 'select', - options: [{ - value: 'default', - text: 'default' - }, - { - value: "en", - text: "English" - }, { - value: "es", - text: "Español (España)" - }, { - value: "es-419", - text: "Español (Latinoamérica)" - }, { - value: "es-US", - text: "Español (US)" - }, { - value: "ru", - text: "Русский" - }, { - value: "de", - text: "Deutsch" - }, { - value: "pt-PT", - text: "Português" - }, { - value: "pt", - text: "Português (Brasil)" - }, { - value: "fr", - text: "Français" - }, { - value: "pl", - text: "Polski" - }, { - value: "ja", - text: "日本語" - }, { - value: "af", - text: "Afrikaans" - }, { - value: "az", - text: "Azərbaycan" - }, { - value: "id", - text: "Bahasa Indonesia" - }, { - value: "ms", - text: "Bahasa Malaysia" - }, { - value: "bs", - text: "Bosanski" - }, { - value: "ca", - text: "Català" - }, { - value: "cs", - text: "Čeština" - }, { - value: "da", - text: "Dansk" - }, { - value: "et", - text: "Eesti" - }, { - value: "eu", - text: "Euskara" - }, { - value: "fil", - text: "Filipino" - }, { - value: "fr-CA", - text: "Français (Canada)" - }, { - value: "gl", - text: "Galego" - }, { - value: "hr", - text: "Hrvatski" - }, { - value: "zu", - text: "IsiZulu" - }, { - value: "is", - text: "Íslenska" - }, { - value: "it", - text: "Italiano" - }, { - value: "sw", - text: "Kiswahili" - }, { - value: "lv", - text: "Latviešu valoda" - }, { - value: "lt", - text: "Lietuvių" - }, { - value: "hu", - text: "Magyar" - }, { - value: "nl", - text: "Nederlands" - }, { - value: "no", - text: "Norsk" - }, { - value: "uz", - text: "O‘zbek" - }, { - value: "ro", - text: "Română" - }, { - value: "sq", - text: "Shqip" - }, { - value: "sk", - text: "Slovenčina" - }, { - value: "sl", - text: "Slovenščina" - }, { - value: "sr-Latn", - text: "Srpski" - }, { - value: "fi", - text: "Suomi" - }, { - value: "sv", - text: "Svenska" - }, { - value: "vi", - text: "Tiếng Việt" - }, { - value: "tr", - text: "Türkçe" - }, { - value: "be", - text: "Беларуская" - }, { - value: "bg", - text: "Български" - }, { - value: "ky", - text: "Кыргызча" - }, { - value: "kk", - text: "Қазақ Тілі" - }, { - value: "mk", - text: "Македонски" - }, { - value: "mn", - text: "Монгол" - }, { - value: "sr", - text: "Српски" - }, { - value: "uk", - text: "Українська" - }, { - value: "el", - text: "Ελληνικά" - }, { - value: "hy", - text: "Հայերեն" - }, { - value: "iw", - text: "עברית" - }, { - value: "ur", - text: "اردو" - }, { - value: "ar", - text: "العربية" - }, { - value: "fa", - text: "فارسی" - }, { - value: "ne", - text: "नेपाली" - }, { - value: "mr", - text: "मराठी" - }, { - value: "hi", - text: "हिन्दी" - }, { - value: "bn", - text: "বাংলা" - }, { - value: "pa", - text: "ਪੰਜਾਬੀ" - }, { - value: "gu", - text: "ગુજરાતી" - }, { - value: "ta", - text: "தமிழ்" - }, { - value: "te", - text: "తెలుగు" - }, { - value: "kn", - text: "ಕನ್ನಡ" - }, { - value: "ml", - text: "മലയാളം" - }, { - value: "si", - text: "සිංහල" - }, { - value: "th", - text: "ภาษาไทย" - }, { - value: "lo", - text: "ລາວ" - }, { - value: "my", - text: "ဗမာ" - }, { - value: "ka", - text: "ქართული" - }, { - value: "am", - text: "አማርኛ" - }, { - value: "km", - text: "ខ្មែរ" - }, { - value: "zh-CN", - text: "中文 (简体)" - }, { - value: "zh-TW", - text: "中文 (繁體)" - }, { - value: "zh-HK", - text: "中文 (香港)" - }, { - value: "ko", - text: "한국어" - } - ] - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'currentColor' - }, - - path: { - component: 'path', - attr: { - 'd': 'M12.9 15l-2.6-2.4c1.8-2 3-4.2 3.8-6.6H17V4h-7V2H8v2H1v2h11.2c-.7 2-1.8 3.8-3.2 5.3-1-1-1.7-2.1-2.3-3.3h-2c.7 1.6 1.7 3.2 3 4.6l-5.1 5L4 19l5-5 3.1 3.1.8-2zm5.6-5h-2L12 22h2l1.1-3H20l1.1 3h2l-4.5-12zm-2.6 7l1.6-4.3 1.6 4.3H16z' - } - } - }, - label: { - component: 'span', - text: 'languages' - } - }, - backup_and_reset: { - component: 'button', - on: { - click: { - section: { - component: 'section', - variant: 'card', - - import_settings: { - component: 'button', - text: 'importSettings', - on: { - click: function () { - if (location.href.indexOf('/options.html?action=import') !== -1) { - importData(); - } else { - chrome.tabs.create({ - url: chrome.runtime.getURL('ui/options.html?action=import') - }); - } - } - } - }, - export_settings: { - component: 'button', - text: 'exportSettings', - on: { - click: function () { - if (location.href.indexOf('/options.html?action=export') !== -1) { - exportData(); - } else { - chrome.tabs.create({ - url: chrome.runtime.getURL('ui/options.html?action=export') - }); - } - } - } - }, - reset_all_settings: { - component: 'button', - text: 'resetAllSettings', - on: { - click: { - component: 'modal', - - message: { - component: 'span', - text: 'thisWillResetAllSettings' - }, - section: { - component: 'section', - variant: 'actions', - - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.parentNode.parentNode.parentNode.close(); - } - } - }, - accept: { - component: 'button', - text: 'accept', - on: { - click: function () { - satus.storage.clear(); - - this.parentNode.parentNode.parentNode.close(); - } - } - } - } - } - } - }, - delete_youtube_cookies: { - component: 'button', - text: 'deleteYoutubeCookies', - - on: { - click: { - component: 'modal', - - message: { - component: 'span', - text: 'thisWillRemoveAllYouTubeCookies' - }, - section: { - component: 'section', - variant: 'actions', - - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.parentNode.parentNode.parentNode.close(); - } - } - }, - accept: { - component: 'button', - text: 'accept', - on: { - click: function () { - chrome.tabs.query({}, function (tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - action: 'delete-youtube-cookies' - }); - } - } - }); - - this.parentNode.parentNode.parentNode.close(); - } - } - } - } - } - } - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'currentColor' - }, - - path: { - component: 'path', - attr: { - 'd': 'M13.3 3A9 9 0 0 0 4 12H2.2c-.5 0-.7.5-.3.8l2.7 2.8c.2.2.6.2.8 0L8 12.8c.4-.3.1-.8-.3-.8H6a7 7 0 1 1 2.7 5.5 1 1 0 0 0-1.3.1 1 1 0 0 0 0 1.5A9 9 0 0 0 22 11.7C22 7 18 3.1 13.4 3zm-.6 5c-.4 0-.7.3-.7.8v3.6c0 .4.2.7.5.9l3.1 1.8c.4.2.8.1 1-.2.2-.4.1-.8-.2-1l-3-1.8V8.7c0-.4-.2-.7-.7-.7z' - } - } - }, - label: { - component: 'span', - text: 'backupAndReset' - } - }, - date_and_time: { - component: 'button', - on: { - click: { - section: { - component: 'section', - variant: 'card', - - use_24_hour_format: { - component: 'switch', - text: 'use24HourFormat', - value: true - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'currentColor' - }, - - path: { - component: 'path', - attr: { - 'd': 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm-.2-13c-.5 0-.8.3-.8.7v4.7c0 .4.2.7.5.9l4.1 2.5c.4.2.8 0 1-.3.2-.3.1-.7-.2-1l-3.9-2.2V7.7c0-.4-.3-.7-.7-.7z' - } - } - }, - label: { - component: 'span', - text: 'dateAndTime' - } - }, - location: { - component: 'button', - on: { - click: { - section: { - component: 'section', - variant: 'card', - - default_content_country: { - component: 'select', - text: 'defaultContentCountry', - - options: [{ - text: "default", - value: "default" - }, - { - text: "Afghanistan", - value: "AF" - }, - { - text: "Albania", - value: "AL" - }, - { - text: "Algeria", - value: "DZ" - }, - { - text: "American Samoa", - value: "AS" - }, - { - text: "Andorra", - value: "AD" - }, - { - text: "Angola", - value: "AO" - }, - { - text: "Anguilla", - value: "AI" - }, - { - text: "Antarctica", - value: "AQ" - }, - { - text: "Antigua and Barbuda", - value: "AG" - }, - { - text: "Argentina", - value: "AR" - }, - { - text: "Armenia", - value: "AM" - }, - { - text: "Aruba", - value: "AW" - }, - { - text: "Australia", - value: "AU" - }, - { - text: "Austria", - value: "AT" - }, - { - text: "Azerbaijan", - value: "AZ" - }, - { - text: "Bahrain", - value: "BH" - }, - { - text: "Bailiwick of Guernsey", - value: "GG" - }, - { - text: "Bangladesh", - value: "BD" - }, - { - text: "Barbados", - value: "BB" - }, - { - text: "Belarus", - value: "BY" - }, - { - text: "Belgium", - value: "BE" - }, - { - text: "Belize", - value: "BZ" - }, - { - text: "Benin", - value: "BJ" - }, - { - text: "Bermuda", - value: "BM" - }, - { - text: "Bhutan", - value: "BT" - }, - { - text: "Bolivia", - value: "BO" - }, - { - text: "Bonaire", - value: "BQ" - }, - { - text: "Bosnia and Herzegovina", - value: "BA" - }, - { - text: "Botswana", - value: "BW" - }, - { - text: "Bouvet Island", - value: "BV" - }, - { - text: "Brazil", - value: "BR" - }, - { - text: "British Indian Ocean Territory", - value: "IO" - }, - { - text: "British Virgin Islands", - value: "VG" - }, - { - text: "Brunei", - value: "BN" - }, - { - text: "Bulgaria", - value: "BG" - }, - { - text: "Burkina Faso", - value: "BF" - }, - { - text: "Burundi", - value: "BI" - }, - { - text: "Cambodia", - value: "KH" - }, - { - text: "Cameroon", - value: "CM" - }, - { - text: "Canada", - value: "CA" - }, - { - text: "Cape Verde", - value: "CV" - }, - { - text: "Cayman Islands", - value: "KY" - }, - { - text: "Central African Republic", - value: "CF" - }, - { - text: "Chad", - value: "TD" - }, - { - text: "Chile", - value: "CL" - }, - { - text: "China", - value: "CN" - }, - { - text: "Christmas Island", - value: "CX" - }, - { - text: "Cocos (Keeling) Islands", - value: "CC" - }, - { - text: "Collectivity of Saint Martin", - value: "MF" - }, - { - text: "Colombia", - value: "CO" - }, - { - text: "Comoros", - value: "KM" - }, - { - text: "Cook Islands", - value: "CK" - }, - { - text: "Costa Rica", - value: "CR" - }, - { - text: "Croatia", - value: "HR" - }, - { - text: "Cuba", - value: "CU" - }, - { - text: "Curaçao", - value: "CW" - }, - { - text: "Cyprus", - value: "CY" - }, - { - text: "Czech Republic", - value: "CZ" - }, - { - text: "Democratic Republic of the Congo", - value: "CD" - }, - { - text: "Denmark", - value: "DK" - }, - { - text: "Djibouti", - value: "DJ" - }, - { - text: "Dominica", - value: "DM" - }, - { - text: "Dominican Republic", - value: "DO" - }, - { - text: "East Timor", - value: "TL" - }, - { - text: "Ecuador", - value: "EC" - }, - { - text: "Egypt", - value: "EG" - }, - { - text: "El Salvador", - value: "SV" - }, - { - text: "Equatorial Guinea", - value: "GQ" - }, - { - text: "Eritrea", - value: "ER" - }, - { - text: "Estonia", - value: "EE" - }, - { - text: "Eswatini", - value: "SZ" - }, - { - text: "Ethiopia", - value: "ET" - }, - { - text: "Falkland Islands", - value: "FK" - }, - { - text: "Faroe Islands", - value: "FO" - }, - { - text: "Federated States of Micronesia", - value: "FM" - }, - { - text: "Fiji", - value: "FJ" - }, - { - text: "Finland", - value: "FI" - }, - { - text: "France", - value: "FR" - }, - { - text: "French Guiana", - value: "GF" - }, - { - text: "French Polynesia", - value: "PF" - }, - { - text: "French Southern and Antarctic Lands", - value: "TF" - }, - { - text: "Gabon", - value: "GA" - }, - { - text: "Georgia (country)", - value: "GE" - }, - { - text: "Germany", - value: "DE" - }, - { - text: "Ghana", - value: "GH" - }, - { - text: "Gibraltar", - value: "GI" - }, - { - text: "Greece", - value: "GR" - }, - { - text: "Greenland", - value: "GL" - }, - { - text: "Grenada", - value: "GD" - }, - { - text: "Guadeloupe", - value: "GP" - }, - { - text: "Guam", - value: "GU" - }, - { - text: "Guatemala", - value: "GT" - }, - { - text: "Guinea", - value: "GN" - }, - { - text: "Guinea-Bissau", - value: "GW" - }, - { - text: "Guyana", - value: "GY" - }, - { - text: "Haiti", - value: "HT" - }, - { - text: "Heard Island and McDonald Islands", - value: "HM" - }, - { - text: "Holy See", - value: "VA" - }, - { - text: "Honduras", - value: "HN" - }, - { - text: "Hong Kong", - value: "HK" - }, - { - text: "Hungary", - value: "HU" - }, - { - text: "Iceland", - value: "IS" - }, - { - text: "India", - value: "IN" - }, - { - text: "Indonesia", - value: "ID" - }, - { - text: "Iran", - value: "IR" - }, - { - text: "Iraq", - value: "IQ" - }, - { - text: "Isle of Man", - value: "IM" - }, - { - text: "Israel", - value: "IL" - }, - { - text: "Italy", - value: "IT" - }, - { - text: "Ivory Coast", - value: "CI" - }, - { - text: "Jamaica", - value: "JM" - }, - { - text: "Japan", - value: "JP" - }, - { - text: "Jersey", - value: "JE" - }, - { - text: "Jordan", - value: "JO" - }, - { - text: "Kazakhstan", - value: "KZ" - }, - { - text: "Kenya", - value: "KE" - }, - { - text: "Kiribati", - value: "KI" - }, - { - text: "Kuwait", - value: "KW" - }, - { - text: "Kyrgyzstan", - value: "KG" - }, - { - text: "Laos", - value: "LA" - }, - { - text: "Latvia", - value: "LV" - }, - { - text: "Lebanon", - value: "LB" - }, - { - text: "Lesotho", - value: "LS" - }, - { - text: "Liberia", - value: "LR" - }, - { - text: "Libya", - value: "LY" - }, - { - text: "Liechtenstein", - value: "LI" - }, - { - text: "Lithuania", - value: "LT" - }, - { - text: "Luxembourg", - value: "LU" - }, - { - text: "Macau", - value: "MO" - }, - { - text: "Madagascar", - value: "MG" - }, - { - text: "Malawi", - value: "MW" - }, - { - text: "Malaysia", - value: "MY" - }, - { - text: "Maldives", - value: "MV" - }, - { - text: "Mali", - value: "ML" - }, - { - text: "Malta", - value: "MT" - }, - { - text: "Marshall Islands", - value: "MH" - }, - { - text: "Martinique", - value: "MQ" - }, - { - text: "Mauritania", - value: "MR" - }, - { - text: "Mauritius", - value: "MU" - }, - { - text: "Mayotte", - value: "YT" - }, - { - text: "Mexico", - value: "MX" - }, - { - text: "Moldova", - value: "MD" - }, - { - text: "Monaco", - value: "MC" - }, - { - text: "Mongolia", - value: "MN" - }, - { - text: "Montenegro", - value: "ME" - }, - { - text: "Montserrat", - value: "MS" - }, - { - text: "Morocco", - value: "MA" - }, - { - text: "Mozambique", - value: "MZ" - }, - { - text: "Myanmar", - value: "MM" - }, - { - text: "Namibia", - value: "NA" - }, - { - text: "Nauru", - value: "NR" - }, - { - text: "Nepal", - value: "NP" - }, - { - text: "Netherlands", - value: "NL" - }, - { - text: "New Caledonia", - value: "NC" - }, - { - text: "New Zealand", - value: "NZ" - }, - { - text: "Nicaragua", - value: "NI" - }, - { - text: "Niger", - value: "NE" - }, - { - text: "Nigeria", - value: "NG" - }, - { - text: "Niue", - value: "NU" - }, - { - text: "Norfolk Island", - value: "NF" - }, - { - text: "North Korea", - value: "KP" - }, - { - text: "North Macedonia", - value: "MK" - }, - { - text: "Northern Mariana Islands", - value: "MP" - }, - { - text: "Norway", - value: "NO" - }, - { - text: "Oman", - value: "OM" - }, - { - text: "Pakistan", - value: "PK" - }, - { - text: "Palau", - value: "PW" - }, - { - text: "Panama", - value: "PA" - }, - { - text: "Papua New Guinea", - value: "PG" - }, - { - text: "Paraguay", - value: "PY" - }, - { - text: "Peru", - value: "PE" - }, - { - text: "Philippines", - value: "PH" - }, - { - text: "Pitcairn Islands", - value: "PN" - }, - { - text: "Poland", - value: "PL" - }, - { - text: "Portugal", - value: "PT" - }, - { - text: "Puerto Rico", - value: "PR" - }, - { - text: "Qatar", - value: "QA" - }, - { - text: "Republic of Ireland", - value: "IE" - }, - { - text: "Republic of the Congo", - value: "CG" - }, - { - text: "Romania", - value: "RO" - }, - { - text: "Russia", - value: "RU" - }, - { - text: "Rwanda", - value: "RW" - }, - { - text: "Réunion", - value: "RE" - }, - { - text: "Saint Barthélemy", - value: "BL" - }, - { - text: "Saint Helena", - value: "SH" - }, - { - text: "Saint Kitts and Nevis", - value: "KN" - }, - { - text: "Saint Lucia", - value: "LC" - }, - { - text: "Saint Pierre and Miquelon", - value: "PM" - }, - { - text: "Saint Vincent and the Grenadines", - value: "VC" - }, - { - text: "Samoa", - value: "WS" - }, - { - text: "San Marino", - value: "SM" - }, - { - text: "Saudi Arabia", - value: "SA" - }, - { - text: "Senegal", - value: "SN" - }, - { - text: "Serbia", - value: "RS" - }, - { - text: "Seychelles", - value: "SC" - }, - { - text: "Sierra Leone", - value: "SL" - }, - { - text: "Singapore", - value: "SG" - }, - { - text: "Sint Maarten", - value: "SX" - }, - { - text: "Slovakia", - value: "SK" - }, - { - text: "Slovenia", - value: "SI" - }, - { - text: "Solomon Islands", - value: "SB" - }, - { - text: "Somalia", - value: "SO" - }, - { - text: "South Africa", - value: "ZA" - }, - { - text: "South Georgia and the South Sandwich Islands", - value: "GS" - }, - { - text: "South Korea", - value: "KR" - }, - { - text: "South Sudan", - value: "SS" - }, - { - text: "Spain", - value: "ES" - }, - { - text: "Sri Lanka", - value: "LK" - }, - { - text: "State of Palestine", - value: "PS" - }, - { - text: "Sudan", - value: "SD" - }, - { - text: "Suriname", - value: "SR" - }, - { - text: "Svalbard", - value: "SJ" - }, - { - text: "Sweden", - value: "SE" - }, - { - text: "Switzerland", - value: "CH" - }, - { - text: "Syria", - value: "SY" - }, - { - text: "São Tomé and Príncipe", - value: "ST" - }, - { - text: "Taiwan", - value: "TW" - }, - { - text: "Tajikistan", - value: "TJ" - }, - { - text: "Tanzania", - value: "TZ" - }, - { - text: "Thailand", - value: "TH" - }, - { - text: "The Bahamas", - value: "BS" - }, - { - text: "The Gambia", - value: "GM" - }, - { - text: "Togo", - value: "TG" - }, - { - text: "Tokelau", - value: "TK" - }, - { - text: "Tonga", - value: "TO" - }, - { - text: "Trinidad and Tobago", - value: "TT" - }, - { - text: "Tunisia", - value: "TN" - }, - { - text: "Turkey", - value: "TR" - }, - { - text: "Turkmenistan", - value: "TM" - }, - { - text: "Turks and Caicos Islands", - value: "TC" - }, - { - text: "Tuvalu", - value: "TV" - }, - { - text: "Uganda", - value: "UG" - }, - { - text: "Ukraine", - value: "UA" - }, - { - text: "United Arab Emirates", - value: "AE" - }, - { - text: "United Kingdom", - value: "GB" - }, - { - text: "United States Virgin Islands", - value: "VI" - }, - { - text: "United States", - value: "UM" - }, - { - text: "United States", - value: "US" - }, - { - text: "Uruguay", - value: "UY" - }, - { - text: "Uzbekistan", - value: "UZ" - }, - { - text: "Vanuatu", - value: "VU" - }, - { - text: "Venezuela", - value: "VE" - }, - { - text: "Vietnam", - value: "VN" - }, - { - text: "Wallis and Futuna", - value: "WF" - }, - { - text: "Western Sahara", - value: "EH" - }, - { - text: "Yemen", - value: "YE" - }, - { - text: "Zambia", - value: "ZM" - }, - { - text: "Zimbabwe", - value: "ZW" - }, - { - text: "Åland Islands", - value: "AX" - } - ] - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'currentColor' - }, - - circle: { - component: 'circle', - attr: { - 'cx': '12', - 'cy': '9', - 'r': '2.5' - } - }, - path: { - component: 'path', - attr: { - 'd': 'M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z' - } - } - }, - label: { - component: 'span', - text: 'location' - } - }, - about: { - component: 'button', - on: { - click: { - component: 'span', - - on: { - render: function () { - var component = this, - manifest = chrome.runtime.getManifest(), - user = satus.user(), - skeleton_about = { - extension_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'extension' - }, - extension_section: { - component: 'section', - variant: 'card', - - list: { - component: 'list', - items: [ - ['version', manifest.version], - ['permissions', manifest.permissions.join(', ').replace('https://www.youtube.com/', 'YouTube')] - ] - } - }, - browser_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'browser' - }, - browser_section: { - component: 'section', - variant: 'card', - - list: { - component: 'list', - items: [ - ['name', user.browser.name], - ['version', user.browser.version], - ['platform', user.browser.platform], - ['videoFormats', { - component: 'span', - on: { - render: function () { - var formats = []; - - for (var key in user.browser.video) { - if (user.browser.video[key] !== false) { - formats.push(key); - } - } - - this.textContent = formats.join(', '); - } - } - }], - ['audioFormats', { - component: 'span', - on: { - render: function () { - var formats = []; - - for (var key in user.browser.audio) { - if (user.browser.audio[key] !== false) { - formats.push(key); - } - } - - this.textContent = formats.join(', '); - } - } - }], - ['flash', !!user.browser.flash ? 'true' : 'false'] - ] - } - }, - os_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'os' - }, - os_section: { - component: 'section', - variant: 'card', - - list: { - component: 'list', - items: [ - ['name', user.os.name], - ['type', user.os.type] - ] - } - }, - device_section_label: { - component: 'span', - class: 'satus-section--label', - text: 'device' - }, - device_section: { - component: 'section', - variant: 'card', - - list: { - component: 'list', - items: [ - ['screen', user.device.screen], - ['cores', user.device.cores], - ['gpu', user.device.gpu], - ['ram', user.device.ram] - ] - } - } - }; - - setTimeout(function () { - satus.render(skeleton_about, component.parentNode); - - component.remove(); - }); - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'currentColor' - }, - - path: { - component: 'path', - attr: { - 'd': 'M11 7h2v2h-2zm0 4h2v6h-2zm1-9a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16z' - } - } - }, - label: { - component: 'span', - text: 'about' - } - } - }, - email: { - component: 'button', - class: 'satus-button--email', - category: true, - text: 'Bugs@improvedtube.com', - on: { - click: function () { - window.open('mailto:bugs@improvedtube.com', '_blank'); - } - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'stroke-width': '1.75' - }, - - circle: { - component: 'circle', - attr: { - 'cx': '12', - 'cy': '12', - 'r': '3' - } - }, - path: { - component: 'path', - attr: { - 'd': 'M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 010 2.83 2 2 0 01-2.83 0l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-2 2 2 2 0 01-2-2v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83 0 2 2 0 010-2.83l.06-.06a1.65 1.65 0 00.33-1.82 1.65 1.65 0 00-1.51-1H3a2 2 0 01-2-2 2 2 0 012-2h.09A1.65 1.65 0 004.6 9a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 010-2.83 2 2 0 012.83 0l.06.06a1.65 1.65 0 001.82.33H9a1.65 1.65 0 001-1.51V3a2 2 0 012-2 2 2 0 012 2v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 0 2 2 0 010 2.83l-.06.06a1.65 1.65 0 00-.33 1.82V9a1.65 1.65 0 001.51 1H21a2 2 0 012 2 2 2 0 01-2 2h-.09a1.65 1.65 0 00-1.51 1z' - } - } - }, - label: { - component: 'span', - text: 'settings' - } - }, - mixer: { - component: 'button', - on: { - click: { - component: 'section', - on: { - render: function () { - var component = this; - - this.skeleton.parent.parent.rendered.close(); - - if (chrome && chrome.tabs) { - chrome.tabs.query({}, function (tabs) { - var mixer = { - component: 'section', - variant: 'card', - parent: component.skeleton, - - message: { - component: 'span', - text: 'noOpenVideoTabs' - } - }; - - for (var i = 0, l = tabs.length; i < l; i++) { - var tab = tabs[i]; - - chrome.tabs.sendMessage(tab.id, { - action: 'mixer' - }, function (response) { - if (response) { - if (mixer) { - var parent = mixer.rendered.parentNode; - - mixer.rendered.remove(); - - mixer = parent; - } - - console.log(response.volume); - - satus.render({ - component: 'section', - class: 'satus-section--mixer', - style: { - 'background': 'url(https://img.youtube.com/vi/' + response.url + '/0.jpg) center center / cover no-repeat #000', - }, - - title: { - component: 'h1', - text: response.title - }, - section: { - component: 'section', - data: { - 'noConnectionLabel': satus.locale.get('tryToReloadThePage') || 'tryToReloadThePage' - }, - - mixer_volume: { - component: 'slider', - text: 'volume', - data: { - id: response.tabId - }, - storage: false, - max: 100, - value: response.volume, - on: { - change: function () { - chrome.tabs.sendMessage(Number(this.dataset.id), { - action: 'set-volume', - value: this.value - }); - } - } - }, - mixer_playback_speed: { - component: 'slider', - text: 'playbackSpeed', - data: { - id: response.tabId - }, - storage: false, - min: .1, - max: 8, - step: .05, - value: response.playbackSpeed, - on: { - change: function () { - chrome.tabs.sendMessage(Number(this.dataset.id), { - action: 'set-playback-speed', - value: this.value - }); - } - } - } - } - }, mixer); - } - }); - } - - satus.render(mixer, component.parentNode); - - component.remove(); - }); - } - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'stroke-width': '1.75' - }, - - path: { - component: 'path', - attr: { - 'd': 'M11 5L6 9H2v6h4l5 4V5zM19.07 4.93a10 10 0 010 14.14M15.54 8.46a5 5 0 010 7.07' - } - } - }, - label: { - component: 'span', - text: 'mixer' - } - } - } - }, - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'stroke-width': '2' - }, - - circle1: { - component: 'circle', - attr: { - 'cx': '12', - 'cy': '5.25', - 'r': '0.45' - } - }, - circle2: { - component: 'circle', - attr: { - 'cx': '12', - 'cy': '12', - 'r': '0.45' - } - }, - circle3: { - component: 'circle', - attr: { - 'cx': '12', - 'cy': '18.75', - 'r': '0.45' - } - } - } - } - } - }, - layers: { - component: 'layers', - on: { - open: function () { - var skeleton = this.path[this.path.length - 1], - parent = skeleton.parent, - section = this.base.skeleton.header.section_start, - title = 'ImprovedTube'; - - if (parent) { - if (parent.label) { - title = parent.label.text; - } else if (parent.text) { - title = parent.text; - } - } - - section.back.rendered.hidden = this.path.length <= 1; - section.title.rendered.innerText = satus.locale.get(title); - } - }, - - section: { - component: 'section', - variant: 'home', - - general: { - component: 'button', - variant: 'general', - category: true, - on: { - click: { - component: 'section', - variant: 'card', - - youtube_home_page: { - component: 'select', - text: 'youtubeHomePage', - options: [{ - text: 'home', - value: '/' - }, { - text: 'trending', - value: '/feed/trending' - }, { - text: 'subscriptions', - value: '/feed/subscriptions' - }, { - text: 'history', - value: '/feed/history' - }, { - text: 'watchLater', - value: '/playlist?list=WL' - }, { - text: 'search', - value: 'search' - }, { - text: 'liked', - value: '/playlist?list=LL' - }, { - text: 'library', - value: '/feed/library' - }], - tags: 'trending,subscriptions,history,watch,search' - }, - collapse_of_subscription_sections: { - component: 'switch', - text: 'collapseOfSubscriptionSections' - }, - remove_related_search_results: { - component: 'switch', - text: 'removeRelatedSearchResults' - }, - mark_watched_videos: { - component: 'switch', - text: 'markWatchedVideos', - on: { - click: function () { - if (satus.storage.get('mark_watched_videos')) { - if (!satus.storage.get('track_watched_videos')) { - this.nextSibling.click(); - } - } - } - } - }, - popup_window_buttons: { - component: 'switch', - text: 'popupWindowButtons', - }, - track_watched_videos: { - component: 'switch', - text: 'trackWatchedVideos' - }, - delete_watched_videos: { - component: 'button', - style: { - 'justifyContent': 'space-between' - }, - on: { - click: { - component: 'modal', - variant: 'confirm', - - message: { - component: 'span', - text: 'thisWillRemoveAllWatchedVideos', - style: { - 'width': '100%', - 'opacity': '.8' - } - }, - section: { - component: 'section', - variant: 'actions', - - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.parentNode.parentNode.parentNode.close(); - } - } - }, - accept: { - component: 'button', - text: 'accept', - on: { - click: function () { - var modal = this.parentNode.parentNode.parentNode; - - satus.storage.set('watched', {}); - - console.log(modal.skeleton); - - modal.skeleton.parent.counter.rendered.textContent = '0'; - - modal.close(); - } - } - } - } - } - }, - - label: { - component: 'span', - text: 'deleteWatchedVideos' - }, - counter: { - component: 'span', - style: { - opacity: .75 - }, - on: { - render: function () { - var watched = satus.storage.get('watched'); - - if (watched) { - this.textContent = Object.keys(watched).length; - } else { - this.textContent = '0'; - } - } - } - } - }, - only_one_player_instance_playing: { - component: 'switch', - text: 'onlyOnePlayerInstancePlaying' - }, - confirmation_before_closing: { - component: 'switch', - text: 'confirmationBeforeClosing', - tags: 'random prevent close exit' - }, - add_scroll_to_top: { - component: 'switch', - text: 'addScrollToTop', - tags: 'up' - }, - limit_page_width: { - component: 'switch', - text: 'limitPageWidth', - value: true - }, - squared_user_images: { - component: 'switch', - text: 'squaredUserImages', - tags: 'avatar' - }, - thumbnails_quality: { - component: 'select', - text: 'thumbnailsQuality', - options: [{ - text: 'default', - value: 'null' - }, { - text: 'low', - value: 'default' - }, { - text: 'medium', - value: 'mqdefault' - }, { - text: 'high', - value: 'hqdefault' - }, { - text: 'sd', - value: 'sddefault' - }, { - text: 'hd', - value: 'maxresdefault' - }], - tags: 'preview quality' - }, - hide_animated_thumbnails: { - component: 'switch', - text: 'hideAnimatedThumbnails', - tags: 'preview' - }, - hide_thumbnail_overlay: { - component: 'switch', - text: 'hideThumbnailOverlay', - tags: 'preview' - }, - default_content_country: { - component: 'select', - text: 'defaultContentCountry', - - options: [{ - text: "default", - value: "default" - }, - { - text: "Afghanistan", - value: "AF" - }, - { - text: "Albania", - value: "AL" - }, - { - text: "Algeria", - value: "DZ" - }, - { - text: "American Samoa", - value: "AS" - }, - { - text: "Andorra", - value: "AD" - }, - { - text: "Angola", - value: "AO" - }, - { - text: "Anguilla", - value: "AI" - }, - { - text: "Antarctica", - value: "AQ" - }, - { - text: "Antigua and Barbuda", - value: "AG" - }, - { - text: "Argentina", - value: "AR" - }, - { - text: "Armenia", - value: "AM" - }, - { - text: "Aruba", - value: "AW" - }, - { - text: "Australia", - value: "AU" - }, - { - text: "Austria", - value: "AT" - }, - { - text: "Azerbaijan", - value: "AZ" - }, - { - text: "Bahrain", - value: "BH" - }, - { - text: "Bailiwick of Guernsey", - value: "GG" - }, - { - text: "Bangladesh", - value: "BD" - }, - { - text: "Barbados", - value: "BB" - }, - { - text: "Belarus", - value: "BY" - }, - { - text: "Belgium", - value: "BE" - }, - { - text: "Belize", - value: "BZ" - }, - { - text: "Benin", - value: "BJ" - }, - { - text: "Bermuda", - value: "BM" - }, - { - text: "Bhutan", - value: "BT" - }, - { - text: "Bolivia", - value: "BO" - }, - { - text: "Bonaire", - value: "BQ" - }, - { - text: "Bosnia and Herzegovina", - value: "BA" - }, - { - text: "Botswana", - value: "BW" - }, - { - text: "Bouvet Island", - value: "BV" - }, - { - text: "Brazil", - value: "BR" - }, - { - text: "British Indian Ocean Territory", - value: "IO" - }, - { - text: "British Virgin Islands", - value: "VG" - }, - { - text: "Brunei", - value: "BN" - }, - { - text: "Bulgaria", - value: "BG" - }, - { - text: "Burkina Faso", - value: "BF" - }, - { - text: "Burundi", - value: "BI" - }, - { - text: "Cambodia", - value: "KH" - }, - { - text: "Cameroon", - value: "CM" - }, - { - text: "Canada", - value: "CA" - }, - { - text: "Cape Verde", - value: "CV" - }, - { - text: "Cayman Islands", - value: "KY" - }, - { - text: "Central African Republic", - value: "CF" - }, - { - text: "Chad", - value: "TD" - }, - { - text: "Chile", - value: "CL" - }, - { - text: "China", - value: "CN" - }, - { - text: "Christmas Island", - value: "CX" - }, - { - text: "Cocos (Keeling) Islands", - value: "CC" - }, - { - text: "Collectivity of Saint Martin", - value: "MF" - }, - { - text: "Colombia", - value: "CO" - }, - { - text: "Comoros", - value: "KM" - }, - { - text: "Cook Islands", - value: "CK" - }, - { - text: "Costa Rica", - value: "CR" - }, - { - text: "Croatia", - value: "HR" - }, - { - text: "Cuba", - value: "CU" - }, - { - text: "Curaçao", - value: "CW" - }, - { - text: "Cyprus", - value: "CY" - }, - { - text: "Czech Republic", - value: "CZ" - }, - { - text: "Democratic Republic of the Congo", - value: "CD" - }, - { - text: "Denmark", - value: "DK" - }, - { - text: "Djibouti", - value: "DJ" - }, - { - text: "Dominica", - value: "DM" - }, - { - text: "Dominican Republic", - value: "DO" - }, - { - text: "East Timor", - value: "TL" - }, - { - text: "Ecuador", - value: "EC" - }, - { - text: "Egypt", - value: "EG" - }, - { - text: "El Salvador", - value: "SV" - }, - { - text: "Equatorial Guinea", - value: "GQ" - }, - { - text: "Eritrea", - value: "ER" - }, - { - text: "Estonia", - value: "EE" - }, - { - text: "Eswatini", - value: "SZ" - }, - { - text: "Ethiopia", - value: "ET" - }, - { - text: "Falkland Islands", - value: "FK" - }, - { - text: "Faroe Islands", - value: "FO" - }, - { - text: "Federated States of Micronesia", - value: "FM" - }, - { - text: "Fiji", - value: "FJ" - }, - { - text: "Finland", - value: "FI" - }, - { - text: "France", - value: "FR" - }, - { - text: "French Guiana", - value: "GF" - }, - { - text: "French Polynesia", - value: "PF" - }, - { - text: "French Southern and Antarctic Lands", - value: "TF" - }, - { - text: "Gabon", - value: "GA" - }, - { - text: "Georgia (country)", - value: "GE" - }, - { - text: "Germany", - value: "DE" - }, - { - text: "Ghana", - value: "GH" - }, - { - text: "Gibraltar", - value: "GI" - }, - { - text: "Greece", - value: "GR" - }, - { - text: "Greenland", - value: "GL" - }, - { - text: "Grenada", - value: "GD" - }, - { - text: "Guadeloupe", - value: "GP" - }, - { - text: "Guam", - value: "GU" - }, - { - text: "Guatemala", - value: "GT" - }, - { - text: "Guinea", - value: "GN" - }, - { - text: "Guinea-Bissau", - value: "GW" - }, - { - text: "Guyana", - value: "GY" - }, - { - text: "Haiti", - value: "HT" - }, - { - text: "Heard Island and McDonald Islands", - value: "HM" - }, - { - text: "Holy See", - value: "VA" - }, - { - text: "Honduras", - value: "HN" - }, - { - text: "Hong Kong", - value: "HK" - }, - { - text: "Hungary", - value: "HU" - }, - { - text: "Iceland", - value: "IS" - }, - { - text: "India", - value: "IN" - }, - { - text: "Indonesia", - value: "ID" - }, - { - text: "Iran", - value: "IR" - }, - { - text: "Iraq", - value: "IQ" - }, - { - text: "Isle of Man", - value: "IM" - }, - { - text: "Israel", - value: "IL" - }, - { - text: "Italy", - value: "IT" - }, - { - text: "Ivory Coast", - value: "CI" - }, - { - text: "Jamaica", - value: "JM" - }, - { - text: "Japan", - value: "JP" - }, - { - text: "Jersey", - value: "JE" - }, - { - text: "Jordan", - value: "JO" - }, - { - text: "Kazakhstan", - value: "KZ" - }, - { - text: "Kenya", - value: "KE" - }, - { - text: "Kiribati", - value: "KI" - }, - { - text: "Kuwait", - value: "KW" - }, - { - text: "Kyrgyzstan", - value: "KG" - }, - { - text: "Laos", - value: "LA" - }, - { - text: "Latvia", - value: "LV" - }, - { - text: "Lebanon", - value: "LB" - }, - { - text: "Lesotho", - value: "LS" - }, - { - text: "Liberia", - value: "LR" - }, - { - text: "Libya", - value: "LY" - }, - { - text: "Liechtenstein", - value: "LI" - }, - { - text: "Lithuania", - value: "LT" - }, - { - text: "Luxembourg", - value: "LU" - }, - { - text: "Macau", - value: "MO" - }, - { - text: "Madagascar", - value: "MG" - }, - { - text: "Malawi", - value: "MW" - }, - { - text: "Malaysia", - value: "MY" - }, - { - text: "Maldives", - value: "MV" - }, - { - text: "Mali", - value: "ML" - }, - { - text: "Malta", - value: "MT" - }, - { - text: "Marshall Islands", - value: "MH" - }, - { - text: "Martinique", - value: "MQ" - }, - { - text: "Mauritania", - value: "MR" - }, - { - text: "Mauritius", - value: "MU" - }, - { - text: "Mayotte", - value: "YT" - }, - { - text: "Mexico", - value: "MX" - }, - { - text: "Moldova", - value: "MD" - }, - { - text: "Monaco", - value: "MC" - }, - { - text: "Mongolia", - value: "MN" - }, - { - text: "Montenegro", - value: "ME" - }, - { - text: "Montserrat", - value: "MS" - }, - { - text: "Morocco", - value: "MA" - }, - { - text: "Mozambique", - value: "MZ" - }, - { - text: "Myanmar", - value: "MM" - }, - { - text: "Namibia", - value: "NA" - }, - { - text: "Nauru", - value: "NR" - }, - { - text: "Nepal", - value: "NP" - }, - { - text: "Netherlands", - value: "NL" - }, - { - text: "New Caledonia", - value: "NC" - }, - { - text: "New Zealand", - value: "NZ" - }, - { - text: "Nicaragua", - value: "NI" - }, - { - text: "Niger", - value: "NE" - }, - { - text: "Nigeria", - value: "NG" - }, - { - text: "Niue", - value: "NU" - }, - { - text: "Norfolk Island", - value: "NF" - }, - { - text: "North Korea", - value: "KP" - }, - { - text: "North Macedonia", - value: "MK" - }, - { - text: "Northern Mariana Islands", - value: "MP" - }, - { - text: "Norway", - value: "NO" - }, - { - text: "Oman", - value: "OM" - }, - { - text: "Pakistan", - value: "PK" - }, - { - text: "Palau", - value: "PW" - }, - { - text: "Panama", - value: "PA" - }, - { - text: "Papua New Guinea", - value: "PG" - }, - { - text: "Paraguay", - value: "PY" - }, - { - text: "Peru", - value: "PE" - }, - { - text: "Philippines", - value: "PH" - }, - { - text: "Pitcairn Islands", - value: "PN" - }, - { - text: "Poland", - value: "PL" - }, - { - text: "Portugal", - value: "PT" - }, - { - text: "Puerto Rico", - value: "PR" - }, - { - text: "Qatar", - value: "QA" - }, - { - text: "Republic of Ireland", - value: "IE" - }, - { - text: "Republic of the Congo", - value: "CG" - }, - { - text: "Romania", - value: "RO" - }, - { - text: "Russia", - value: "RU" - }, - { - text: "Rwanda", - value: "RW" - }, - { - text: "Réunion", - value: "RE" - }, - { - text: "Saint Barthélemy", - value: "BL" - }, - { - text: "Saint Helena", - value: "SH" - }, - { - text: "Saint Kitts and Nevis", - value: "KN" - }, - { - text: "Saint Lucia", - value: "LC" - }, - { - text: "Saint Pierre and Miquelon", - value: "PM" - }, - { - text: "Saint Vincent and the Grenadines", - value: "VC" - }, - { - text: "Samoa", - value: "WS" - }, - { - text: "San Marino", - value: "SM" - }, - { - text: "Saudi Arabia", - value: "SA" - }, - { - text: "Senegal", - value: "SN" - }, - { - text: "Serbia", - value: "RS" - }, - { - text: "Seychelles", - value: "SC" - }, - { - text: "Sierra Leone", - value: "SL" - }, - { - text: "Singapore", - value: "SG" - }, - { - text: "Sint Maarten", - value: "SX" - }, - { - text: "Slovakia", - value: "SK" - }, - { - text: "Slovenia", - value: "SI" - }, - { - text: "Solomon Islands", - value: "SB" - }, - { - text: "Somalia", - value: "SO" - }, - { - text: "South Africa", - value: "ZA" - }, - { - text: "South Georgia and the South Sandwich Islands", - value: "GS" - }, - { - text: "South Korea", - value: "KR" - }, - { - text: "South Sudan", - value: "SS" - }, - { - text: "Spain", - value: "ES" - }, - { - text: "Sri Lanka", - value: "LK" - }, - { - text: "State of Palestine", - value: "PS" - }, - { - text: "Sudan", - value: "SD" - }, - { - text: "Suriname", - value: "SR" - }, - { - text: "Svalbard", - value: "SJ" - }, - { - text: "Sweden", - value: "SE" - }, - { - text: "Switzerland", - value: "CH" - }, - { - text: "Syria", - value: "SY" - }, - { - text: "São Tomé and Príncipe", - value: "ST" - }, - { - text: "Taiwan", - value: "TW" - }, - { - text: "Tajikistan", - value: "TJ" - }, - { - text: "Tanzania", - value: "TZ" - }, - { - text: "Thailand", - value: "TH" - }, - { - text: "The Bahamas", - value: "BS" - }, - { - text: "The Gambia", - value: "GM" - }, - { - text: "Togo", - value: "TG" - }, - { - text: "Tokelau", - value: "TK" - }, - { - text: "Tonga", - value: "TO" - }, - { - text: "Trinidad and Tobago", - value: "TT" - }, - { - text: "Tunisia", - value: "TN" - }, - { - text: "Turkey", - value: "TR" - }, - { - text: "Turkmenistan", - value: "TM" - }, - { - text: "Turks and Caicos Islands", - value: "TC" - }, - { - text: "Tuvalu", - value: "TV" - }, - { - text: "Uganda", - value: "UG" - }, - { - text: "Ukraine", - value: "UA" - }, - { - text: "United Arab Emirates", - value: "AE" - }, - { - text: "United Kingdom", - value: "GB" - }, - { - text: "United States Virgin Islands", - value: "VI" - }, - { - text: "United States", - value: "UM" - }, - { - text: "United States", - value: "US" - }, - { - text: "Uruguay", - value: "UY" - }, - { - text: "Uzbekistan", - value: "UZ" - }, - { - text: "Vanuatu", - value: "VU" - }, - { - text: "Venezuela", - value: "VE" - }, - { - text: "Vietnam", - value: "VN" - }, - { - text: "Wallis and Futuna", - value: "WF" - }, - { - text: "Western Sahara", - value: "EH" - }, - { - text: "Yemen", - value: "YE" - }, - { - text: "Zambia", - value: "ZM" - }, - { - text: "Zimbabwe", - value: "ZW" - }, - { - text: "Åland Islands", - value: "AX" - } - ] - }, - youtube_language: { - text: 'youtubeLanguage', - component: 'select', - options: [{ - value: 'default', - text: 'default' - }, - { - value: "en", - text: "English" - }, { - value: "es", - text: "Español (España)" - }, { - value: "es-419", - text: "Español (Latinoamérica)" - }, { - value: "es-US", - text: "Español (US)" - }, { - value: "ru", - text: "Русский" - }, { - value: "de", - text: "Deutsch" - }, { - value: "pt-PT", - text: "Português" - }, { - value: "pt", - text: "Português (Brasil)" - }, { - value: "fr", - text: "Français" - }, { - value: "pl", - text: "Polski" - }, { - value: "ja", - text: "日本語" - }, { - value: "af", - text: "Afrikaans" - }, { - value: "az", - text: "Azərbaycan" - }, { - value: "id", - text: "Bahasa Indonesia" - }, { - value: "ms", - text: "Bahasa Malaysia" - }, { - value: "bs", - text: "Bosanski" - }, { - value: "ca", - text: "Català" - }, { - value: "cs", - text: "Čeština" - }, { - value: "da", - text: "Dansk" - }, { - value: "et", - text: "Eesti" - }, { - value: "eu", - text: "Euskara" - }, { - value: "fil", - text: "Filipino" - }, { - value: "fr-CA", - text: "Français (Canada)" - }, { - value: "gl", - text: "Galego" - }, { - value: "hr", - text: "Hrvatski" - }, { - value: "zu", - text: "IsiZulu" - }, { - value: "is", - text: "Íslenska" - }, { - value: "it", - text: "Italiano" - }, { - value: "sw", - text: "Kiswahili" - }, { - value: "lv", - text: "Latviešu valoda" - }, { - value: "lt", - text: "Lietuvių" - }, { - value: "hu", - text: "Magyar" - }, { - value: "nl", - text: "Nederlands" - }, { - value: "no", - text: "Norsk" - }, { - value: "uz", - text: "O‘zbek" - }, { - value: "ro", - text: "Română" - }, { - value: "sq", - text: "Shqip" - }, { - value: "sk", - text: "Slovenčina" - }, { - value: "sl", - text: "Slovenščina" - }, { - value: "sr-Latn", - text: "Srpski" - }, { - value: "fi", - text: "Suomi" - }, { - value: "sv", - text: "Svenska" - }, { - value: "vi", - text: "Tiếng Việt" - }, { - value: "tr", - text: "Türkçe" - }, { - value: "be", - text: "Беларуская" - }, { - value: "bg", - text: "Български" - }, { - value: "ky", - text: "Кыргызча" - }, { - value: "kk", - text: "Қазақ Тілі" - }, { - value: "mk", - text: "Македонски" - }, { - value: "mn", - text: "Монгол" - }, { - value: "sr", - text: "Српски" - }, { - value: "uk", - text: "Українська" - }, { - value: "el", - text: "Ελληνικά" - }, { - value: "hy", - text: "Հայերեն" - }, { - value: "iw", - text: "עברית" - }, { - value: "ur", - text: "اردو" - }, { - value: "ar", - text: "العربية" - }, { - value: "fa", - text: "فارسی" - }, { - value: "ne", - text: "नेपाली" - }, { - value: "mr", - text: "मराठी" - }, { - value: "hi", - text: "हिन्दी" - }, { - value: "bn", - text: "বাংলা" - }, { - value: "pa", - text: "ਪੰਜਾਬੀ" - }, { - value: "gu", - text: "ગુજરાતી" - }, { - value: "ta", - text: "தமிழ்" - }, { - value: "te", - text: "తెలుగు" - }, { - value: "kn", - text: "ಕನ್ನಡ" - }, { - value: "ml", - text: "മലയാളം" - }, { - value: "si", - text: "සිංහල" - }, { - value: "th", - text: "ภาษาไทย" - }, { - value: "lo", - text: "ລາວ" - }, { - value: "my", - text: "ဗမာ" - }, { - value: "ka", - text: "ქართული" - }, { - value: "am", - text: "አማርኛ" - }, { - value: "km", - text: "ខ្មែរ" - }, { - value: "zh-CN", - text: "中文 (简体)" - }, { - value: "zh-TW", - text: "中文 (繁體)" - }, { - value: "zh-HK", - text: "中文 (香港)" - }, { - value: "ko", - text: "한국어" - } - ] - } - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'none', - 'stroke': 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': '1.75' - }, - - path: { - component: 'path', - attr: { - 'd': 'M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1zM4 22v-7' - } - } - } - }, - label: { - component: 'span', - text: 'general' - } - }, - appearance: { - component: 'button', - variant: 'appearance', - category: true, - on: { - click: { - component: 'section', - class: 'satus-section--appearance', - - header: { - component: 'button', - text: 'header', - class: 'satus-button--header', - on: { - click: { - component: 'section', - variant: 'card', - - header_position: { - component: 'select', - text: 'position', - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'hidden', - value: 'hidden' - }, { - text: 'hover', - value: 'hover' - }, { - text: 'hiddenOnVideoPage', - value: 'hidden_on_video_page' - }, { - text: 'hoverOnVideoPage', - value: 'hover_on_video_page' - }, { - text: 'static', - value: 'static' - }], - tags: 'hide,hover,static,top' - }, - header_improve_logo: { - component: 'switch', - text: 'improveLogo', - tags: 'youtube' - }, - header_hide_right_buttons: { - component: 'switch', - text: 'hideRightButtons', - tags: 'user' - }, - header_hide_country_code: { - component: 'switch', - text: 'hideCountryCode', - tags: 'country,code' - }, - hide_voice_search_button: { - component: 'switch', - text: 'hideVoiceSearchButton' - } - } - } - }, - player: { - component: 'button', - text: 'player', - class: 'satus-button--player', - on: { - click: { - component: 'section', - variant: 'card', - - player_size: { - component: 'select', - variant: 'player-size', - text: 'playerSize', - options: [{ - text: 'doNotChange', - value: 'do_not_change' - }, { - text: 'fullWindow', - value: 'full_window' - }, { - text: 'fitToWindow', - value: 'fit_to_window' - }, { - text: '144p', - value: '144p' - }, { - text: '240p', - value: '240p' - }, { - text: '360p', - value: '360p' - }, { - text: '480p', - value: '480p' - }, { - text: '576p', - value: '576p' - }, { - text: '720p', - value: '720p' - }, { - text: '1080p', - value: '1080p' - }, { - text: '1440p', - value: '1440p' - }, { - text: '2160p', - value: '2160p' - }, { - text: 'custom', - value: 'custom' - }] - }, - section: { - component: 'section', - variant: 'custom-player-size', - - custom_player_size_width: { - component: 'input', - attr: { - type: 'text', - name: 'custom_player_size_width', - placeholder: '1280' - } - }, - x: { - component: 'span', - text: 'x' - }, - custom_player_size_height: { - component: 'input', - attr: { - type: 'text', - name: 'custom_player_size_height', - placeholder: '720' - } - } - }, - forced_theater_mode: { - component: 'switch', - text: 'forcedTheaterMode', - tags: 'wide' - }, - hide_gradient_bottom: { - component: 'switch', - text: 'hideGradientBottom' - }, - player_hide_skip_overlay: { - component: 'switch', - text: 'hideSkipOverlay', - value: false, - tags: 'remove,hide' - }, - player_remaining_duration: { - component: 'switch', - text: 'showRemainingDuration', - value: false - }, - duration_with_speed: { - component: 'switch', - text: 'durationWithSpeed', - value: false - }, - always_show_progress_bar: { - component: 'switch', - text: 'alwaysShowProgressBar' - }, - player_color: { - component: 'select', - text: 'playerColor', - options: [{ - text: 'red', - value: 'red' - }, { - text: 'pink', - value: 'pink' - }, { - text: 'purple', - value: 'purple' - }, { - text: 'deepPurple', - value: 'deep_purple' - }, { - text: 'indigo', - value: 'indigo' - }, { - text: 'blue', - value: 'blue' - }, { - text: 'lightBlue', - value: 'light_blue' - }, { - text: 'cyan', - value: 'cyan' - }, { - text: 'teal', - value: 'teal' - }, { - text: 'green', - value: 'green' - }, { - text: 'lightGreen', - value: 'light_green' - }, { - text: 'lime', - value: 'lime' - }, { - text: 'yellow', - value: 'yellow' - }, { - text: 'amber', - value: 'amber' - }, { - text: 'orange', - value: 'orange' - }, { - text: 'deepOrange', - value: 'deep_orange' - }, { - text: 'brown', - value: 'brown' - }, { - text: 'blueGray', - value: 'blue_gray' - }, { - text: 'white', - value: 'white' - }], - tags: 'style' - }, - player_transparent_background: { - component: 'switch', - text: 'transparentBackground' - }, - player_hide_annotations: { - component: 'switch', - text: 'hideAnnotations', - tags: 'hide,remove,elements' - }, - player_hide_cards: { - component: 'switch', - text: 'hideCards', - tags: 'hide,remove,elements' - }, - player_show_cards_on_mouse_hover: { - component: 'switch', - text: 'showCardsOnMouseHover', - tags: 'hide,remove,elements' - }, - player_hide_endscreen: { - component: 'switch', - text: 'hideEndscreen' - }, - player_hd_thumbnail: { - component: 'switch', - text: 'hdThumbnail', - tags: 'preview' - }, - hide_scroll_for_details: { - component: 'switch', - text: 'hideScrollForDetails', - tags: 'remove,hide' - } - } - } - }, - details: { - component: 'button', - text: 'details', - class: 'satus-button--details', - on: { - click: { - component: 'section', - variant: 'card', - - hide_details: { - component: 'switch', - text: 'hideDetails', - tags: 'hide,remove' - }, - hide_views_count: { - component: 'switch', - text: 'hideViewsCount', - tags: 'hide,remove' - }, - - hide_date: { - component: 'switch', - text: 'hideDate', - tags: 'hide,remove' - }, - hide_details_button: { - component: 'button', - text: 'hideDetailButton', - on: { - click: { - component: 'section', - variant: 'card', - hide_like_button: { - component: 'switch', - text: 'likeAndDislike', - tags: 'hide,remove' - }, - hide_share_button: { - component: 'switch', - text: 'share', - tags: 'hide,remove' - }, - hide_download_button: { - component: 'switch', - text: 'download', - tags: 'hide,remove' - }, - hide_thanks_button: { - component: 'switch', - text: 'thanks', - tags: 'hide,remove' - }, - hide_clip_button: { - component: 'switch', - text: 'clip', - tags: 'hide,remove' - }, - hide_save_button: { - component: 'switch', - text: 'save', - tags: 'hide,remove' - }, - hide_report_button: { - component: 'switch', - text: 'report', - tags: 'hide,remove' - }, - hide_more_button: { - component: 'switch', - text: 'more', - tags: 'hide,remove' - } - } - } - }, - hide_details_button_text: { - component: 'button', - text: 'hideButtonLabel', - on: { - click: { - component: 'section', - variant: 'card', - hide_like_button_text: { - component: 'switch', - text: 'likeAndDislike', - tags: 'hide,remove' - }, - hide_dislike_button_text: { - component: 'switch', - text: 'dislike', - tags: 'hide,remove' - }, - hide_share_button_text: { - component: 'switch', - text: 'share', - tags: 'hide,remove' - }, - hide_download_button_text: { - component: 'switch', - text: 'download', - tags: 'hide,remove' - }, - hide_thanks_button_text: { - component: 'switch', - text: 'thanks', - tags: 'hide,remove' - }, - hide_clip_button_text: { - component: 'switch', - text: 'clip', - tags: 'hide,remove' - }, - hide_save_button_text: { - component: 'switch', - text: 'save', - tags: 'hide,remove' - } - } - } - }, - description: { - component: 'select', - text: 'description', - - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'expanded', - value: 'expanded' - }, { - text: 'classic', - value: 'classic' - }, { - text: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - how_long_ago_the_video_was_uploaded: { - component: 'switch', - text: 'howLongAgoTheVideoWasUploaded' - }, - channel_videos_count: { - component: 'switch', - text: 'showChannelVideosCount' - }, - red_dislike_button: { - component: 'switch', - text: 'redDislikeButton' - }, - improvedtube_buttons: { - component: 'switch', - text: 'improvedtubeButtons' - } - } - } - }, - sidebar: { - component: 'button', - text: 'sidebar', - class: 'satus-button--sidebar', - on: { - click: { - component: 'section', - variant: 'card', - - related_videos: { - component: 'select', - text: 'relatedVideos', - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'collapsed', - value: 'collapsed' - }, { - text: 'hidden', - value: 'hidden' - }], - tags: 'right' - }, - livechat: { - component: 'select', - text: 'liveChat', - - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'collapsed', - value: 'collapsed' - }, { - text: 'hidden', - value: 'hidden' - }] - }, - hide_playlist: { - component: 'switch', - text: 'hidePlaylist' - }, - sidebar_left: { - component: 'switch', - text: 'moveSidebarLeft' - }, - thumbnails_right: { - component: 'switch', - text: 'moveThumbnailsRight' - }, - thumbnails_hide: { - component: 'switch', - text: 'hideThumbnails' - } - } - } - }, - comments: { - component: 'button', - text: 'comments', - class: 'satus-button--comments', - on: { - click: { - component: 'section', - variant: 'card', - - comments: { - component: 'select', - text: 'comments', - - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'collapsed', - value: 'collapsed' - }, { - text: 'hidden', - value: 'hidden' - }] - }, - hide_author_avatars: { - component: 'switch', - text: 'Hide Avatars' - } - } - } - }, - footer: { - component: 'button', - text: 'footer', - class: 'satus-button--footer', - on: { - click: { - component: 'section', - variant: 'card', - - hide_footer: { - component: 'switch', - text: 'hideFooter', - tags: 'bottom' - } - } - } - } - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'transparent', - 'stroke': 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': '1.75' - }, - - path: { - component: 'path', - attr: { - 'd': 'M17 3a2.83 2.83 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z' - } - } - } - }, - label: { - component: 'span', - text: 'appearance' - } - }, - themes: { - component: 'button', - class: 'satus-button--themes', - category: true, - on: { - click: { - section: { - component: 'section', - variant: 'card', - - my_colors: { - component: 'button', - text: 'myColors', - on: { - click: { - section: { - component: 'section', - variant: 'card', - - theme_my_colors: { - component: 'switch', - text: 'activate', - storage: false, - on: { - render: function () { - this.dataset.value = satus.storage.get('theme') === 'my-colors'; - }, - click: function () { - var value = 'default'; - - if (this.dataset.value === 'true') { - value = 'my-colors'; - } - - satus.storage.set('theme', value); - } - } - } - }, - - section2: { - component: 'section', - variant: 'card', - - theme_primary_color: { - component: 'color-picker', - text: 'primaryColor', - value: [200, 200, 200] - }, - theme_text_color: { - component: 'color-picker', - text: 'textColor', - value: [25, 25, 25] - } - } - } - } - }, - filters: { - component: 'button', - text: 'filters', - on: { - click: { - component: 'section', - variant: 'card', - - bluelight: { - component: 'slider', - text: 'bluelight', - step: 1, - max: 90, - value: 0 - }, - dim: { - component: 'slider', - text: 'dim', - step: 1, - max: 90, - value: 0 - } - } - } - }, - schedule: { - component: 'button', - text: 'schedule', - on: { - click: { - component: 'section', - variant: 'card', - - schedule: { - component: 'select', - text: 'schedule', - - options: [{ - text: 'disabled', - value: 'disabled' - }, { - text: 'sunsetToSunrise', - value: 'sunset_to_sunrise' - }, { - text: 'systemPeferenceDark', - value: 'system_peference_dark' - }, { - text: 'systemPeferenceLight', - value: 'system_peference_light' - }] - }, - schedule_time_from: { - component: 'select', - text: 'timeFrom', - options: [{ - text: '00:00', - value: '00:00' - }, { - text: '01:00', - value: '01:00' - }, { - text: '02:00', - value: '02:00' - }, { - text: '03:00', - value: '03:00' - }, { - text: '04:00', - value: '04:00' - }, { - text: '05:00', - value: '05:00' - }, { - text: '06:00', - value: '06:00' - }, { - text: '07:00', - value: '07:00' - }, { - text: '08:00', - value: '08:00' - }, { - text: '09:00', - value: '09:00' - }, { - text: '10:00', - value: '10:00' - }, { - text: '11:00', - value: '11:00' - }, { - text: '12:00', - value: '12:00' - }, { - text: '13:00', - value: '13:00' - }, { - text: '14:00', - value: '14:00' - }, { - text: '15:00', - value: '15:00' - }, { - text: '16:00', - value: '16:00' - }, { - text: '17:00', - value: '17:00' - }, { - text: '18:00', - value: '18:00' - }, { - text: '19:00', - value: '19:00' - }, { - text: '20:00', - value: '20:00' - }, { - text: '21:00', - value: '21:00' - }, { - text: '22:00', - value: '22:00' - }, { - text: '23:00', - value: '23:00' - }] - }, - schedule_time_to: { - component: 'select', - text: 'timeTo', - options: [{ - text: '00:00', - value: '00:00' - }, { - text: '01:00', - value: '01:00' - }, { - text: '02:00', - value: '02:00' - }, { - text: '03:00', - value: '03:00' - }, { - text: '04:00', - value: '04:00' - }, { - text: '05:00', - value: '05:00' - }, { - text: '06:00', - value: '06:00' - }, { - text: '07:00', - value: '07:00' - }, { - text: '08:00', - value: '08:00' - }, { - text: '09:00', - value: '09:00' - }, { - text: '10:00', - value: '10:00' - }, { - text: '11:00', - value: '11:00' - }, { - text: '12:00', - value: '12:00' - }, { - text: '13:00', - value: '13:00' - }, { - text: '14:00', - value: '14:00' - }, { - text: '15:00', - value: '15:00' - }, { - text: '16:00', - value: '16:00' - }, { - text: '17:00', - value: '17:00' - }, { - text: '18:00', - value: '18:00' - }, { - text: '19:00', - value: '19:00' - }, { - text: '20:00', - value: '20:00' - }, { - text: '21:00', - value: '21:00' - }, { - text: '22:00', - value: '22:00' - }, { - text: '23:00', - value: '23:00' - }] - } - } - } - }, - font: { - component: 'select', - text: 'font', - options: [{ - text: 'Youtube standard (Roboto)', - value: 'Default' - }, { - text: 'Open Sans', - value: 'Open+Sans' - }, { - text: 'Lato', - value: 'Lato' - }, { - text: 'Montserrat', - value: 'Montserrat' - }, { - text: 'Source Sans Pro', - value: 'Source+Sans+Pro' - }, { - text: 'Roboto Condensed', - value: 'Roboto+Condensed' - }, { - text: 'Oswald', - value: 'Oswald' - }, { - text: 'Comfortaa', - value: 'Comfortaa' - }, { - text: 'Roboto Mono', - value: 'Roboto+Mono' - }, { - text: 'Raleway', - value: 'Raleway' - }, { - text: 'Poppins', - value: 'Poppins' - }, { - text: 'Noto Sans', - value: 'Noto+Sans' - }, { - text: 'Roboto Slab', - value: 'Roboto+Slab' - }, { - text: 'Marriweather', - value: 'Marriweather' - }, { - text: 'PT Sans', - value: 'PT+Sans' - }] - } - }, - section_2: { - component: 'section', - variant: 'card', - - default: { - component: 'label', - class: 'satus-label--default-theme', - text: 'default', - - radio: { - component: 'radio', - group: 'theme', - value: 'default', - checked: true - } - }, - dark: { - component: 'label', - class: 'satus-label--dark-theme', - text: 'dark', - - radio: { - component: 'radio', - group: 'theme', - value: 'dark' - } - }, - night: { - component: 'label', - class: 'satus-label--night-theme', - text: 'night', - - radio: { - component: 'radio', - group: 'theme', - value: 'night' - } - }, - dawn: { - component: 'label', - class: 'satus-label--dawn-theme', - text: 'dawn', - - radio: { - component: 'radio', - group: 'theme', - value: 'dawn' - } - }, - sunset: { - component: 'label', - class: 'satus-label--sunset-theme', - text: 'sunset', - - radio: { - component: 'radio', - group: 'theme', - value: 'sunset' - } - }, - desert: { - component: 'label', - class: 'satus-label--desert-theme', - text: 'desert', - - radio: { - component: 'radio', - group: 'theme', - value: 'desert' - } - }, - plain: { - component: 'label', - class: 'satus-label--plain-theme', - text: 'plain', - - radio: { - component: 'radio', - group: 'theme', - value: 'plain' - } - }, - black: { - component: 'label', - class: 'satus-label--black-theme', - text: 'black', - - radio: { - component: 'radio', - group: 'theme', - value: 'black' - } - } - } - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'transparent', - 'stroke': 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': '1.75' - }, - - path: { - component: 'path', - attr: { - 'd': 'M12 2.69l5.66 5.66a8 8 0 11-11.31 0z' - } - } - } - }, - label: { - component: 'span', - text: 'themes' - } - }, - player: { - component: 'button', - class: 'satus-button--player', - category: true, - on: { - click: { - section_1: { - component: 'section', - variant: 'card', - - autoplay: { - component: 'switch', - text: 'autoplay', - value: true, - storage: 'player_autoplay' - }, - forced_play_video_from_the_beginning: { - component: 'switch', - text: 'forcedPlayVideoFromTheBeginning' - }, - ads: { - text: 'ads', - component: 'select', - options: [{ - text: 'onAllVideos', - value: 'all_videos', - default: 'true' - }, { - text: 'onSubscribedChannels', - value: 'subscribed_channels' - }, { - text: 'blockMusic', - value: 'block_music' - }, { - text: 'blockAll', - value: 'block_all' - }], - storage: 'player_ads' - }, - quality: { - component: 'select', - text: 'quality', - options: [{ - text: 'auto', - value: 'auto' - }, { - text: '144p', - value: 'tiny' - }, { - text: '240p', - value: 'small' - }, { - text: '360p', - value: 'medium' - }, { - text: '480p', - value: 'large' - }, { - text: '720p', - value: 'hd720' - }, { - text: '1080p', - value: 'hd1080' - }, { - text: '1440p', - value: 'hd1440' - }, { - text: '2160p', - value: 'hd2160' - }, { - text: '2880p', - value: 'hd2880' - }, { - text: '4320p', - value: 'highres' - }], - storage: 'player_quality' - }, - autofullscreen: { - component: 'switch', - text: 'autoFullscreen', - storage: 'player_autofullscreen' - }, - autopause_when_switching_tabs: { - component: 'switch', - text: 'autopauseWhenSwitchingTabs', - storage: 'player_autopause_when_switching_tabs' - }, - default_playback_speed_menu: { - component: 'button', - text: 'defaultPlaybackSpeedMenu', - on: { - click: { - component: 'section', - variant: 'card', - - player_default_playback_speed_enable: { - component: 'switch', - text: 'defaultPlaybackSpeedEnable', - id: 'default-playback-speed-enable', - onrender: function () { - this.dataset.value = satus.storage.player_default_playback_speed_enable; - }, - onchange: function () { - this.dataset.value = satus.storage.player_default_playback_speed_enable; - } - }, - player_playback_speed: { - component: 'slider', - text: 'defaultPlaybackSpeedSet', - textarea: true, - value: 1, - min: .1, - max: 8, - step: .05 - } - } - } - }, - subtitles: { - component: 'button', - text: 'subtitles', - on: { - click: { - component: 'section', - variant: 'card', - - player_subtitles: { - component: 'switch', - text: 'subtitles' - }, - auto_generate: { - component: 'switch', - text: 'Allow auto generate' - }, - subtitles_language: { - component: 'select', - text: 'language', - options: [{ - value: 'default', - text: 'default' - }, - { - value: 'af', - text: 'Afrikaans' - }, - { - value: 'sq', - text: 'Albanian' - }, - { - value: 'am', - text: 'Amharic' - }, - { - value: 'ar', - text: 'Arabic' - }, - { - value: 'hy', - text: 'Armenian' - }, - { - value: 'az', - text: 'Azerbaijani' - }, - { - value: 'bn', - text: 'Bangla' - }, - { - value: 'eu', - text: 'Basque' - }, - { - value: 'be', - text: 'Belarusian' - }, - { - value: 'bs', - text: 'Bosnian' - }, - { - value: 'bg', - text: 'Bulgarian' - }, - { - value: 'my', - text: 'Burmese' - }, - { - value: 'ca', - text: 'Catalan' - }, - { - value: 'ceb', - text: 'Cebuano' - }, - { - value: 'zh-Hans', - text: 'Chinese (Simplified)' - }, - { - value: 'zh-Hant', - text: 'Chinese (Traditional)' - }, - { - value: 'co', - text: 'Corsican' - }, - { - value: 'hr', - text: 'Croatian' - }, - { - value: 'cs', - text: 'Czech' - }, - { - value: 'da', - text: 'Danish' - }, - { - value: 'nl', - text: 'Dutch' - }, - { - value: 'en', - text: 'English' - }, - { - value: 'eo', - text: 'Esperanto' - }, - { - value: 'et', - text: 'Estonian' - }, - { - value: 'fil', - text: 'Filipino' - }, - { - value: 'fi', - text: 'Finnish' - }, - { - value: 'fr', - text: 'French' - }, - { - value: 'gl', - text: 'Galician' - }, - { - value: 'ka', - text: 'Georgian' - }, - { - value: 'de', - text: 'German' - }, - { - value: 'el', - text: 'Greek' - }, - { - value: 'gu', - text: 'Gujarati' - }, - { - value: 'ht', - text: 'Haitian Creole' - }, - { - value: 'ha', - text: 'Hausa' - }, - { - value: 'haw', - text: 'Hawaiian' - }, - { - value: 'iw', - text: 'Hebrew' - }, - { - value: 'hi', - text: 'Hindi' - }, - { - value: 'hmn', - text: 'Hmong' - }, - { - value: 'hu', - text: 'Hungarian' - }, - { - value: 'is', - text: 'Icelandic' - }, - { - value: 'ig', - text: 'Igbo' - }, - { - value: 'id', - text: 'Indonesian' - }, - { - value: 'ga', - text: 'Irish' - }, - { - value: 'it', - text: 'Italian' - }, - { - value: 'ja', - text: 'Japanese' - }, - { - value: 'jv', - text: 'Javanese' - }, - { - value: 'kn', - text: 'Kannada' - }, - { - value: 'kk', - text: 'Kazakh' - }, - { - value: 'km', - text: 'Khmer' - }, - { - value: 'rw', - text: 'Kinyarwanda' - }, - { - value: 'ko', - text: 'Korean' - }, - { - value: 'ku', - text: 'Kurdish' - }, - { - value: 'ky', - text: 'Kyrgyz' - }, - { - value: 'lo', - text: 'Lao' - }, - { - value: 'la', - text: 'Latin' - }, - { - value: 'lv', - text: 'Latvian' - }, - { - value: 'lt', - text: 'Lithuanian' - }, - { - value: 'lb', - text: 'Luxembourgish' - }, - { - value: 'mk', - text: 'Macedonian' - }, - { - value: 'mg', - text: 'Malagasy' - }, - { - value: 'ms', - text: 'Malay' - }, - { - value: 'ml', - text: 'Malayalam' - }, - { - value: 'mt', - text: 'Maltese' - }, - { - value: 'mi', - text: 'Maori' - }, - { - value: 'mr', - text: 'Marathi' - }, - { - value: 'mn', - text: 'Mongolian' - }, - { - value: 'ne', - text: 'Nepali' - }, - { - value: 'no', - text: 'Norwegian' - }, - { - value: 'ny', - text: 'Nyanja' - }, - { - value: 'or', - text: 'Odia' - }, - { - value: 'ps', - text: 'Pashto' - }, - { - value: 'fa', - text: 'Persian' - }, - { - value: 'pl', - text: 'Polish' - }, - { - value: 'pt', - text: 'Portuguese' - }, - { - value: 'pa', - text: 'Punjabi' - }, - { - value: 'ro', - text: 'Romanian' - }, - { - value: 'ru', - text: 'Russian' - }, - { - value: 'sm', - text: 'Samoan' - }, - { - value: 'gd', - text: 'Scottish Gaelic' - }, - { - value: 'sr', - text: 'Serbian' - }, - { - value: 'sn', - text: 'Shona' - }, - { - value: 'sd', - text: 'Sindhi' - }, - { - value: 'si', - text: 'Sinhala' - }, - { - value: 'sk', - text: 'Slovak' - }, - { - value: 'sl', - text: 'Slovenian' - }, - { - value: 'so', - text: 'Somali' - }, - { - value: 'st', - text: 'Southern Sotho' - }, - { - value: 'es', - text: 'Spanish' - }, - { - value: 'su', - text: 'Sundanese' - }, - { - value: 'sw', - text: 'Swahili' - }, - { - value: 'sv', - text: 'Swedish' - }, - { - value: 'tg', - text: 'Tajik' - }, - { - value: 'ta', - text: 'Tamil' - }, - { - value: 'tt', - text: 'Tatar' - }, - { - value: 'te', - text: 'Telugu' - }, - { - value: 'th', - text: 'Thai' - }, - { - value: 'tr', - text: 'Turkish' - }, - { - value: 'tk', - text: 'Turkmen' - }, - { - value: 'uk', - text: 'Ukrainian' - }, - { - value: 'ur', - text: 'Urdu' - }, - { - value: 'ug', - text: 'Uyghur' - }, - { - value: 'uz', - text: 'Uzbek' - }, - { - value: 'vi', - text: 'Vietnamese' - }, - { - value: 'cy', - text: 'Welsh' - }, - { - value: 'fy', - text: 'Western Frisian' - }, - { - value: 'xh', - text: 'Xhosa' - }, - { - value: 'yi', - text: 'Yiddish' - }, - { - value: 'yo', - text: 'Yoruba' - }, - { - value: 'zu', - text: 'Zulu' - } - ] - }, - subtitles_font_family: { - component: 'select', - text: 'fontFamily', - options: [{ - text: 'Monospaced Serif', - value: 1 - }, { - text: 'Proportional Serif', - value: 2 - }, { - text: 'Monospaced Sans-Serif', - value: 3 - }, { - text: 'Proportional Sans-Serif', - value: 4 - }, { - text: 'Casual', - value: 5 - }, { - text: 'Cursive', - value: 6 - }, { - text: 'Small Capitals', - value: 7 - }] - }, - subtitles_font_color: { - component: 'select', - text: 'fontColor', - options: [{ - text: 'white', - value: '#fff' - }, { - text: 'yellow', - value: '#ff0' - }, { - text: 'green', - value: '#0f0' - }, { - text: 'cyan', - value: '#0ff' - }, { - text: 'blue', - value: '#00f' - }, { - text: 'magenta', - value: '#f0f' - }, { - text: 'red', - value: '#f00' - }, { - text: 'black', - value: '#000' - }] - }, - subtitles_font_size: { - component: 'select', - text: 'fontSize', - options: [{ - text: '50%', - value: -2 - }, { - text: '75%', - value: -1 - }, { - text: '100%', - value: 0 - }, { - text: '150%', - value: 1 - }, { - text: '200%', - value: 2 - }, { - text: '300%', - value: 3 - }, { - text: '400%', - value: 4 - }] - }, - subtitles_background_color: { - component: 'select', - text: 'backgroundColor', - options: [{ - text: 'white', - value: '#fff' - }, { - text: 'yellow', - value: '#ff0' - }, { - text: 'green', - value: '#0f0' - }, { - text: 'cyan', - value: '#0ff' - }, { - text: 'blue', - value: '#00f' - }, { - text: 'magenta', - value: '#f0f' - }, { - text: 'red', - value: '#f00' - }, { - text: 'black', - value: '#000' - }] - }, - subtitles_background_opacity: { - component: 'slider', - text: 'backgroundOpacity', - value: 75, - min: 0, - max: 100, - step: 1 - }, - subtitles_window_color: { - component: 'select', - text: 'windowColor', - options: [{ - text: 'white', - value: '#fff' - }, { - text: 'yellow', - value: '#ff0' - }, { - text: 'green', - value: '#0f0' - }, { - text: 'cyan', - value: '#0ff' - }, { - text: 'blue', - value: '#00f' - }, { - text: 'magenta', - value: '#f0f' - }, { - text: 'red', - value: '#f00' - }, { - text: 'black', - value: '#000' - }] - }, - subtitles_window_opacity: { - component: 'slider', - text: 'windowOpacity', - value: 0, - min: 0, - max: 100, - step: 1 - }, - subtitles_character_edge_style: { - component: 'select', - text: 'characterEdgeStyle', - options: [{ - text: 'none', - value: 0 - }, { - text: 'dropShadow', - value: 4 - }, { - text: 'raised', - value: 1 - }, { - text: 'depressed', - value: 2 - }, { - text: 'outline', - value: 3 - }] - }, - subtitles_font_opacity: { - component: 'slider', - text: 'fontOpacity', - value: 100, - min: 0, - max: 100, - step: 1 - } - } - } - }, - crop_chapter_titles: { - component: 'switch', - text: 'cropChapterTitles', - value: true, - storage: 'player_crop_chapter_titles' - }, - up_next_autoplay: { - component: 'switch', - text: 'upNextAutoplay', - value: true - }, - mini_player: { - component: 'switch', - text: 'customMiniPlayer' - }, - h264: { - component: 'switch', - text: 'codecH264', - storage: 'player_h264', - on: { - click: function () { - if (this.dataset.value === 'true') { - satus.render({ - component: 'modal', - - message: { - component: 'text', - text: 'youtubeLimitsVideoQualityTo1080pForH264Codec' - }, - actions: { - component: 'section', - variant: 'actions', - - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.parentNode.parentNode.parentNode.click(); - } - } - }, - ok: { - component: 'button', - text: 'OK', - onclick: function () { - - this.parentNode.parentNode.parentNode.click(); - } - } - } - }); - } - } - } - }, - player_codecs: { - component: 'button', - text: 'codecs', - on: { - click: { - section: { - component: 'section', - variant: 'card', - - block_h264: { - component: 'switch', - text: 'blockH264' - }, - block_vp8: { - component: 'switch', - text: 'blockVp8' - }, - block_vp9: { - component: 'switch', - text: 'blockVp9' - }, - block_av1: { - component: 'switch', - text: 'blockAv1' - } - } - } - } - }, - avoid_cpu_rendering_when_possible: { - component: 'select', - text: 'avoidCpuRenderingWhenPossible', - options: [{ - text: 'disabled', - value: 'disabled' - }, - { - text: 'auto', - value: 'auto' - }, - { - text: 'avoidAv1', - value: 'av1' - }, - { - text: 'avoidAv1Vp9', - value: 'av1-vp9' - }, - { - text: 'avoidAv1Vp8Vp9', - value: 'av1-vp8-vp9' - } - ] - }, - player_60fps: { - component: 'switch', - text: 'allow60fps', - value: true - }, - sdr: { - component: 'switch', - text: 'forceSDR', - value: false, - storage: 'player_SDR' - }, - player_forced_volume: { - component: 'switch', - text: 'forcedVolume', - id: 'forced-volume', - onrender: function () { - this.dataset.value = satus.storage.player_forced_volume; - }, - onchange: function () { - this.dataset.value = satus.storage.player_forced_volume; - } - }, - player_volume: { - component: 'slider', - text: 'volume', - step: 1, - max: 400, - value: 100 - }, - player_loudness_normalization: { - component: 'switch', - text: 'loudnessNormalization', - value: true - }, - hide_controls: { - component: 'select', - text: 'hidePlayerControlsBar', - options: [{ - text: 'off', - value: 'off', - default: 'true' - }, { - text: 'whenPaused', - value: 'when_paused' - }, { - text: 'always', - value: 'always' - }], - storage: 'player_hide_controls' - }, - player_hide_controls_options: { - component: 'button', - text: 'hidePlayerControlsBarButtons', - on: { - click: { - component: 'section', - variant: 'card', - - player_play_button: { - component: 'switch', - text: 'playPause' - }, - player_previous_button: { - component: 'switch', - text: 'previousVideo' - }, - player_next_button: { - component: 'switch', - text: 'nextVideo' - }, - player_volume_button: { - component: 'switch', - text: 'volume' - }, - player_autoplay_button: { - component: 'switch', - text: 'autoplay' - }, - player_settings_button: { - component: 'switch', - text: 'settings' - }, - player_subtitles_button: { - component: 'switch', - text: 'subtitles' - }, - player_miniplayer_button: { - component: 'switch', - text: 'nativeMiniPlayer' - }, - player_view_button: { - component: 'switch', - text: 'viewMode' - }, - player_screen_button: { - component: 'switch', - text: 'screen' - }, - player_remote_button: { - component: 'switch', - text: 'remote' - } - } - } - } - }, - section_2: { - component: 'section', - variant: 'card', - - player_screenshot: { - component: 'button', - text: 'screenshot', - on: { - click: { - component: 'section', - variant: 'card', - - player_screenshot_button: { - component: 'switch', - text: 'activate' - }, - player_screenshot_save_as: { - component: 'select', - text: 'saveAs', - options: [{ - text: 'file', - value: 'file' - }, { - text: 'clipboard', - value: 'clipboard' - }] - } - } - } - }, - player_repeat: { - component: 'button', - text: 'repeat', - on: { - click: { - component: 'section', - variant: 'card', - - player_repeat_button: { - component: 'switch', - text: 'activate' - }, - player_always_repeat: { - component: 'switch', - text: 'alwaysActive' - } - } - } - }, - player_rotate_button: { - component: 'switch', - text: 'rotate' - }, - player_popup_button: { - component: 'switch', - text: 'popupPlayer' - } - }, - section_3: { - component: 'section', - variant: 'card', - - below_player_screenshot: { - component: 'switch', - text: 'screenshot', - value: true - }, - below_player_pip: { - component: 'switch', - text: 'pictureInPicture', - value: true - }, - below_player_loop: { - component: 'switch', - text: 'loop', - value: true - } - } - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'transparent', - 'stroke': 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': '1.75' - }, - - path: { - component: 'path', - attr: { - 'd': 'M5 3l14 9-14 9V3z' - } - } - } - }, - label: { - component: 'span', - text: 'player' - } - }, - playlist: { - component: 'button', - class: 'satus-button--playlist', - category: true, - on: { - click: { - component: 'section', - variant: 'card', - - playlist_autoplay: { - component: 'switch', - text: 'autoplay', - value: true - }, - playlist_up_next_autoplay: { - component: 'switch', - text: 'upNextAutoplay', - value: true - }, - playlist_reverse: { - component: 'switch', - text: 'reverse' - }, - playlist_repeat: { - component: 'switch', - text: 'repeat' - }, - playlist_shuffle: { - component: 'switch', - text: 'shuffle' - } - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - viewBox: '0 0 24 24', - fill: 'transparent', - stroke: 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': 1.75 - }, - - path: { - component: 'path', - attr: { - d: 'M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01' - } - } - } - }, - label: { - component: 'span', - text: 'playlist' - } - }, - channel: { - component: 'button', - class: 'satus-button--channel', - category: true, - on: { - click: { - component: 'section', - variant: 'card', - - channel_default_tab: { - component: 'select', - text: 'defaultChannelTab', - options: [{ - text: 'home', - value: '/home' - }, { - text: 'videos', - value: '/videos' - }, { - text: 'playlists', - value: '/playlists' - }] - }, - channel_trailer_autoplay: { - component: 'switch', - text: 'trailerAutoplay', - value: true - }, - channel_play_all_button: { - component: 'switch', - text: 'playAllButton' - }, - channel_hide_featured_content: { - component: 'switch', - text: 'hideFeaturedContent' - } - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - viewBox: '0 0 24 24', - fill: 'transparent', - stroke: 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': 1.75 - }, - - rect: { - component: 'rect', - attr: { - width: 20, - height: 15, - x: 2, - y: 7, - rx: 2, - ry: 2 - } - }, - path: { - component: 'path', - attr: { - d: 'M17 2l-5 5-5-5' - } - } - } - }, - label: { - component: 'span', - text: 'channel' - } - }, - shortcuts: { - component: 'button', - class: 'satus-button--shortcuts', - category: true, - on: { - click: { - section: { - component: 'section', - variant: 'card', - - picture_in_picture: { - component: 'shortcut', - text: 'pictureInPicture', - storage: 'shortcut_picture_in_picture' - }, - volume: { - component: 'button', - text: 'volume', - on: { - click: { - section_1: { - component: 'section', - variant: 'card', - - volume_step: { - component: 'slider', - text: 'step', - min: 1, - max: 10, - step: 1, - value: 5, - storage: 'shortcut_volume_step' - } - }, - - section_2: { - component: 'section', - variant: 'card', - - increase_volume: { - component: 'shortcut', - text: 'increaseVolume', - storage: 'shortcut_increase_volume', - value: { - keys: { - 38: { - key: 'ArrowUp' - } - } - } - }, - decrease_volume: { - component: 'shortcut', - text: 'decreaseVolume', - storage: 'shortcut_decrease_volume', - value: { - keys: { - 40: { - key: 'ArrowDown' - } - } - } - } - } - } - } - }, - shortcut_screenshot: { - component: 'shortcut', - text: 'screenshot' - }, - playback_speed: { - component: 'button', - text: 'playbackSpeed', - on: { - click: { - section_step: { - component: 'section', - variant: 'card', - - playback_speed_step: { - component: 'slider', - text: 'step', - min: .05, - max: .5, - step: .05, - value: .05, - storage: 'shortcut_playback_speed_step' - } - }, - - section: { - component: 'section', - variant: 'card', - - increase_playback_speed: { - component: 'shortcut', - text: 'increasePlaybackSpeed', - storage: 'shortcut_increase_playback_speed', - value: { - keys: { - 188: { - key: '<' - } - } - } - }, - decrease_playback_speed: { - component: 'shortcut', - text: 'decreasePlaybackSpeed', - storage: 'shortcut_decrease_playback_speed', - value: { - keys: { - 190: { - key: '>' - } - } - } - }, - reset_playback_speed: { - component: 'shortcut', - text: 'reset', - storage: 'shortcut_reset_playback_speed' - } - } - } - } - }, - shortcut_toggle_controls: { - component: 'shortcut', - text: 'toggleControls' - }, - shortcut_next_video: { - component: 'shortcut', - text: 'nextVideo', - value: { - shift: true, - keys: { - 78: { - key: 'n' - } - } - } - }, - shortcut_prev_video: { - component: 'shortcut', - text: 'previousVideo', - value: { - shift: true, - keys: { - 80: { - key: 'p' - } - } - } - }, - shortcut_play_pause: { - component: 'shortcut', - text: 'playPause', - value: { - keys: { - 32: { - code: 'space' - } - } - } - }, - shortcut_stop: { - component: 'shortcut', - text: 'stop' - }, - shortcut_toggle_autoplay: { - component: 'shortcut', - text: 'toggleAutoplay' - }, - shortcut_seek_backward: { - component: 'shortcut', - text: 'seekBackward10Seconds', - value: { - keys: { - 74: { - key: 'j' - } - } - } - }, - shortcut_seek_forward: { - component: 'shortcut', - text: 'seekForward10Seconds', - value: { - keys: { - 76: { - key: 'l' - } - } - } - }, - shortcut_seek_next_chapter: { - component: 'shortcut', - text: 'seekNextChapter' - }, - shortcut_seek_previous_chapter: { - component: 'shortcut', - text: 'seekPreviousChapter' - }, - shortcut_activate_fullscreen: { - component: 'shortcut', - text: 'activateFullscreen', - value: { - keys: { - 70: { - key: 'f' - } - } - } - }, - shortcut_activate_captions: { - component: 'shortcut', - text: 'activateCaptions', - value: { - keys: { - 67: { - key: 'c' - } - } - } - }, - shortcut_quality: { - component: 'button', - text: 'quality', - on: { - click: { - component: 'section', - variant: 'card', - - shortcut_auto: { - component: 'shortcut', - text: 'auto' - }, - shortcut_144p: { - component: 'shortcut', - text: '144p' - }, - shortcut_240p: { - component: 'shortcut', - text: '240p' - }, - shortcut_360p: { - component: 'shortcut', - text: '360p' - }, - shortcut_480p: { - component: 'shortcut', - text: '480p' - }, - shortcut_720p: { - component: 'shortcut', - text: '720p' - }, - shortcut_1080p: { - component: 'shortcut', - text: '1080p' - }, - shortcut_1440p: { - component: 'shortcut', - text: '1440p' - }, - shortcut_2160p: { - component: 'shortcut', - text: '2160p' - }, - shortcut_2880p: { - component: 'shortcut', - text: '2880p' - }, - shortcut_4320p: { - component: 'shortcut', - text: '4320p' - } - } - } - }, - shortcut_custom_mini_player: { - component: 'shortcut', - text: 'customMiniPlayer', - value: { - keys: { - 73: { - key: 'i' - } - } - } - }, - shortcut_stats_for_nerds: { - component: 'shortcut', - text: 'statsForNerds' - }, - shortcut_toggle_cards: { - component: 'shortcut', - text: 'toggleCards' - }, - shortcut_popup_player: { - component: 'shortcut', - text: 'popupPlayer' - }, - shortcut_go_to_search_box: { - component: 'shortcut', - text: 'goToSearchBox', - value: { - keys: { - 191: { - key: '/' - } - } - } - }, - shortcut_like_shortcut: { - component: 'shortcut', - text: 'like' - }, - shortcut_dislike_shortcut: { - component: 'shortcut', - text: 'dislike' - }, - shortcut_subscribe: { - component: 'shortcut', - text: 'subscribe' - }, - shortcut_dark_theme: { - component: 'shortcut', - text: 'darkTheme' - } - } - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'transparent', - 'stroke': 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': '1.75' - }, - - path: { - component: 'path', - attr: { - 'd': 'M18 3a3 3 0 00-3 3v12a3 3 0 003 3 3 3 0 003-3 3 3 0 00-3-3H6a3 3 0 00-3 3 3 3 0 003 3 3 3 0 003-3V6a3 3 0 00-3-3 3 3 0 00-3 3 3 3 0 003 3h12a3 3 0 003-3 3 3 0 00-3-3z' - } - } - } - }, - label: { - component: 'span', - text: 'shortcuts' - } - }, - blacklist: { - component: 'button', - class: 'satus-button--blacklist', - category: true, - on: { - click: { - section: { - component: 'section', - variant: 'card', - - blacklist_activate: { - component: 'switch', - text: 'activate' - } - }, - - section2: { - component: 'section', - variant: 'card', - - channels: { - component: 'button', - text: 'channels', - on: { - click: { - component: 'section', - variant: 'card', - on: { - render: function () { - var self = this, - blacklist = satus.storage.get('blacklist'); - - if (blacklist && blacklist.channels) { - var list = {}; - - for (var item in blacklist.channels) { - if (blacklist.channels[item] !== false) { - var title = blacklist.channels[item].title || ''; - - list[item] = { - type: 'section', - text: title.length > 20 ? title.substr(0, 20) + '...' : title, - class: 'satus-section--blacklist', - style: { - 'background-image': 'url(' + blacklist.channels[item].preview + ')', - 'background-color': '#000' - }, - - section: { - type: 'section', - - delete: { - type: 'button', - icon: '', - onclick: function () { - delete blacklist.channels[item]; - - satus.storage.set('blacklist', blacklist); - - this.classList.add('removing'); - - setTimeout(function () { - self.remove(); - }, 250); - } - } - } - }; - } - } - - if (Object.keys(list).length === 0) { - list.error = { - type: 'span', - text: 'empty' - }; - } - - satus.render(list, this); - } else { - satus.render({ - component: 'span', - text: 'empty' - }, this); - } - } - } - } - } - }, - videos: { - component: 'button', - text: 'videos', - on: { - click: { - component: 'section', - variant: 'card', - on: { - render: function () { - var self = this, - blacklist = satus.storage.get('blacklist'); - - if (blacklist && blacklist.videos) { - let list = {}; - - for (let item in blacklist.videos) { - if (blacklist.videos[item] !== false) { - let title = blacklist.videos[item].title || ''; - - list[item] = { - type: 'section', - text: title.length > 20 ? title.substr(0, 20) + '...' : title, - class: 'satus-section--blacklist', - style: { - 'background-image': 'url(https://img.youtube.com/vi/' + item + '/0.jpg)' - }, - - section: { - type: 'section', - - delete: { - type: 'button', - icon: '', - onclick: function () { - delete blacklist.videos[item]; - - satus.storage.set('blacklist', blacklist); - this.parentNode.parentNode.classList.add('removing'); - - setTimeout(function () { - self.parentNode.parentNode.remove(); - }, 250); - } - } - } - }; - } - } - - if (Object.keys(list).length === 0) { - list.section = { - component: 'span', - text: 'empty' - }; - } - - satus.render(list, this); - } else { - satus.render({ - component: 'span', - text: 'empty' - }, this); - } - } - } - } - } - } - } - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'transparent', - 'stroke': 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': 1.75 - }, - - circle: { - component: 'circle', - attr: { - 'cx': 12, - 'cy': 12, - 'r': 10 - } - }, - path: { - component: 'path', - attr: { - 'd': 'M4.93 4.93l14.14 14.14' - } - } - } - }, - label: { - component: 'span', - text: 'blacklist' - } - }, - analyzer: { - component: 'button', - class: 'satus-button--analyzer', - category: true, - on: { - click: { - section: { - component: 'section', - variant: 'card', - - analyzer_activation: { - component: 'switch', - text: 'activate' - } - }, - section_2: { - component: 'section', - variant: 'card', - on: { - render: function () { - var data = satus.storage.get('analyzer') || {}, - all_data = {}, - all_data_sort = [], - all_time_value = 0, - current_date = new Date().toDateString(), - container = document.createElement('div'), - top_text_container = document.createElement('div'), - today_at = document.createElement('div'), - watch_time = document.createElement('div'), - all_time = document.createElement('div'), - chart = document.createElement('div'), - bottom_text_container = document.createElement('div'); - - container.className = 'analyzer-container'; - top_text_container.className = 'analyzer-top-text'; - watch_time.className = 'analyzer-watch-time'; - today_at.className = 'analyzer-today-at'; - all_time.className = 'analyzer-all-time'; - chart.className = 'analyzer-chart'; - bottom_text_container.className = 'analyzer-bottom'; - - let currentDateData = data[current_date]; - if (currentDateData) { - for (let i in currentDateData) { - if (currentDateData[i]) { - for (let j in currentDateData[i]) { - if (!all_data[j]) { - all_data[j] = 0; - } - - all_data[j] += currentDateData[i][j]; - } - } - } - } - - for (let i in all_data) { - all_data_sort.push([i, all_data[i]]); - all_time_value += all_data[i]; - } - - all_data_sort.sort(function (a, b) { - return b[1] - a[1]; - }); - - var now_minutes = new Date().getMinutes(); - - watch_time.innerText = satus.locale.get('watchTime'); - today_at.innerText = satus.locale.get('todayAt') + ' ' + (new Date().getHours() + ':' + (now_minutes < 10 ? '0' + now_minutes : now_minutes)); - all_time.innerText = Math.floor(all_time_value / 60) + 'h ' + (all_time_value - Math.floor(all_time_value / 60) * 60) + 'm'; - - let h = 0; - - for (let i = 0; i < 4; i++) { - let column = document.createElement('div'); - - column.className = 'analyzer-column'; - - for (let j = 0; j < 6; j++) { - let hours = h + ':00'; - - h++; - - let data_column = document.createElement('div'); - - data_column.className = 'analyzer-data-column'; - - if (currentDateData && currentDateData[hours]) { - for (let k in currentDateData[hours]) { - let block = document.createElement('div'); - - block.className = 'analyzer-data'; - - let height = data[current_date][hours][k] * 100 / 60; - - block.title = k; - block.style.height = height + '%'; - - if (k === all_data_sort[0][0]) { - block.className += ' first'; - } else if (k === all_data_sort[1][0]) { - block.className += ' second'; - } else if (k === all_data_sort[2][0]) { - block.className += ' third'; - } - - data_column.appendChild(block); - } - } - - column.appendChild(data_column); - } - - chart.appendChild(column); - } - - - for (let i = 0; i < 3; i++) { - if (all_data_sort[i]) { - let cont = document.createElement('div'), - label = document.createElement('div'), - value = document.createElement('div'); - - label.className = 'label'; - - label.innerText = all_data_sort[i][0]; - value.innerText = Math.floor(all_data_sort[i][1] / 60) + 'h ' + (all_data_sort[i][1] - Math.floor(all_data_sort[i][1] / 60) * 60) + 'm'; - - cont.appendChild(label); - cont.appendChild(value); - bottom_text_container.appendChild(cont); - } - } - - container.appendChild(all_time); - container.appendChild(chart); - this.appendChild(top_text_container); - top_text_container.appendChild(watch_time); - top_text_container.appendChild(today_at); - container.appendChild(bottom_text_container); - this.appendChild(container); - } - } - } - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - viewBox: '0 0 24 24', - fill: 'transparent', - stroke: 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': 1.75 - }, - - path: { - component: 'path', - attr: { - d: 'M21.21 15.89A10 10 0 118 2.83M22 12A10 10 0 0012 2v10z' - } - } - } - }, - label: { - component: 'span', - text: 'analyzer' - } - } - } - } -}; - - -function exportData() { - if (location.href.indexOf('action=export') !== -1) { - var blob; - - try { - var data = Object.assign({}, satus.storage.data); - - delete data.analyzer; - delete data.blacklist; - delete data.watched; - - blob = new Blob([JSON.stringify(data)], { - type: 'application/json;charset=utf-8' - }); - } catch (error) { - return modalError(error); - } - - satus.render({ - component: 'modal', - - label: { - component: 'span', - text: 'areYouSureYouWantToExportTheData' - }, - actions: { - component: 'section', - variant: 'actions', - - ok: { - component: 'button', - text: 'ok', - on: { - click: function () { - try { - chrome.permissions.request({ - permissions: ['downloads'] - }, function (granted) { - if (granted) { - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: 'improvedtube.txt', - saveAs: true - }, function () { - setTimeout(function () { - close(); - }, 1000); - }); - } - }); - } catch (error) { - return modalError(error); - } - - this.parentNode.parentNode.parentNode.close(); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.parentNode.parentNode.parentNode.close(); - } - } - } - } - }); - } -} - -function importData() { - if (location.href.indexOf('action=import') !== -1) { - satus.render({ - component: 'modal', - - label: { - component: 'span', - text: 'areYouSureYouWantToImportTheData' - }, - actions: { - component: 'section', - variant: 'actions', - - ok: { - component: 'button', - text: 'ok', - on: { - click: function () { - var input = document.createElement('input'); - - input.type = 'file'; - - input.addEventListener('change', function () { - var file_reader = new FileReader(); - - file_reader.onload = function () { - var data = JSON.parse(this.result); - - for (var key in data) { - satus.storage.set(key, data[key]); - } - - close(); - }; - - file_reader.readAsText(this.files[0]); - }); - - input.click(); - - this.parentNode.parentNode.parentNode.close(); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.parentNode.parentNode.parentNode.close(); - } - } - } - } - }); - } -} - - -/*-------------------------------------------------------------- -# INITIALIZATION ---------------------------------------------------------------*/ - -satus.parents(skeleton, false); - -satus.storage.attributes = { - theme: true, - improvedtube_home: true, - title_version: true, - it_general: true, - it_appearance: true, - it_themes: true, - it_player: true, - it_playlist: true, - it_channel: true, - it_shortcuts: true, - it_blacklist: true, - it_analyzer: true -}; - -satus.storage.import(function (items) { - var language = items.language || window.navigator.language; - - satus.locale.import(language, '_locales/', function () { - satus.render(skeleton); - - exportData(); - importData(); - }); -}); - -chrome.runtime.sendMessage({ - name: 'migration' -}, function () { - satus.storage.import(function (items) { - - }); -}); diff --git a/ui/styles.css b/ui/styles.css deleted file mode 100644 index d6f4319b6..000000000 --- a/ui/styles.css +++ /dev/null @@ -1,1295 +0,0 @@ -/*-------------------------------------------------------------- ->>> STYLES: ----------------------------------------------------------------- -# Fonts -# Document -# Header -# Main ---------------------------------------------------------------*/ - - -/*-------------------------------------------------------------- -# FONTS ---------------------------------------------------------------*/ - -@font-face { - font-family: 'Roboto'; - - src: url(fonts/Roboto-Regular.ttf); -} - -@font-face { - font-family: 'Roboto'; - font-weight: 300; - - src: url(fonts/Roboto-Light.ttf); -} - -@font-face { - font-family: 'Roboto'; - font-weight: 500; - - src: url(fonts/Roboto-Medium.ttf); -} - - -/*-------------------------------------------------------------- -# DOCUMENT ---------------------------------------------------------------*/ - -body { - --satus-primary: #ff4158; - --it-category-background: linear-gradient(135deg, #ff4158, #ff001f); - --it-category-shadow: rgba(222, 0, 27, .7); - --it-appearance-shadow-color: #dfdfdf; -} - -body[data-theme=dark] { - --satus-primary: #ff4158; - --satus-section-opaque-background: #333; -} - -body[data-theme=night] { - --satus-primary: #9ebdfa; - --satus-header-background: #24478f; - --satus-header-text: #fafafa; - --satus-layers-background: #142952; - --satus-layers-text: #fafafa; - --satus-section-opaque-background: #1f3d7a; - --satus-modal-background: #24478f; - --satus-modal-text: #fafafa; - --satus-hover: rgba(255, 255, 255, .07); - --it-category-background: linear-gradient(135deg, #2e5cb8, #234790); - --it-category-shadow: rgb(41, 82, 163, .7); - --it-appearance-shadow-color: #558bf6; - --satus-switch-track: #ccc; -} - -body[data-theme=dawn] { - --satus-primary: #e2367e; - --satus-header-background: #e98f63; - --satus-header-text: #fafafa; - --satus-layers-background: #e23681; - --satus-layers-text: #eee; - --satus-section-opaque-background: rgb(255, 255, 255, .2); - --satus-modal-background: #ed8e5e; - --satus-modal-text: #fafafa; - --satus-hover: rgba(255, 255, 255, .07); - --it-category-background: linear-gradient(135deg, #e98f63, #e27036); - --it-category-shadow: rgb(226, 112, 54, .7); - --it-appearance-shadow-color: #e86e30; - --satus-switch-track: #ccc; -} - -body[data-theme=sunset] { - --satus-primary: #cc666e; - --satus-header-background: #af5a5e; - --satus-header-text: #fafafa; - --satus-layers-background: #2f3364; - --satus-layers-text: #eee; - --satus-section-opaque-background: rgb(138, 92, 96, .5); - --satus-modal-background: #a96165; - --satus-modal-text: #fafafa; - --satus-hover: rgba(255, 255, 255, .07); - --it-category-background: linear-gradient(135deg, #e98f63, #e27036); - --it-category-shadow: rgb(226, 112, 54, .7); - --it-appearance-shadow-color: #e86e30; - --satus-switch-track: #ccc; -} - -body[data-theme=desert] { - --satus-primary: #f83; - --satus-header-background: #8cb7f2; - --satus-header-text: #fafafa; - --satus-layers-background: #e6bf4c; - --satus-layers-text: #4d4d4d; - --satus-section-opaque-background: #f5e0a3; - --satus-modal-background: #8cb7f2; - --satus-modal-text: #fafafa; - --satus-hover: rgba(255, 255, 255, .07); - --it-category-background: linear-gradient(135deg, #f83, #d15700); - --it-category-shadow: rgb(230, 96, 0, .7); - --it-appearance-shadow-color: #5e9aed; - --satus-switch-track: #ccc; -} - -body[data-theme=plain] { - --satus-primary: #badec9; - --satus-header-background: #9fc6af; - --satus-header-text: #404040; - --satus-layers-background: #dea975; - --satus-layers-text: #404040; - --satus-section-opaque-background: #e2b88d; - --satus-modal-background: #abceb8; - --satus-modal-text: #404040; - --satus-hover: rgba(255, 255, 255, .07); - --it-category-background: linear-gradient(135deg, #abceb8, #609f7a); - --it-category-shadow: #70a987b3; - --it-appearance-shadow-color: #d7995b; - --satus-switch-track: #ccc; -} - -body[data-theme=black] { - --satus-primary: #ff4158; -} - -body { - font-family: 'Roboto', sans-serif; - font-size: 14px; - - overflow: hidden; - - margin: 0; -} - -.satus-button--email { - height: auto; - padding: 8px; - - cursor: pointer; - text-align: center; - letter-spacing: .125px; - - color: var(--satus-primary); - - justify-content: center; -} - -/*-------------------------------------------------------------- -# HEADER ---------------------------------------------------------------*/ - -.satus-header { - height: 56px; -} - -.satus-header .satus-section { - width: calc(100% - 96px); - - flex-wrap: nowrap; - flex: 1; -} - -.satus-header .satus-section--align-start>* { - margin-right: 8px; -} - -.satus-header .satus-section--align-end>* { - margin-left: 8px; -} - -.satus-header .satus-button { - width: 40px; - min-width: 40px; - height: 40px; - padding: 8px; - - color: inherit; - border-radius: 50%; -} - -.satus-header .satus-button:hover { - cursor: pointer; - - background: rgba(0, 0, 0, .04); -} - -.satus-header .satus-button>svg { - stroke: currentcolor; - stroke-linecap: round; - stroke-linejoin: round; - fill: none; -} - -.satus-header .satus-span--title { - overflow: hidden; - - white-space: nowrap; - text-overflow: ellipsis; - - flex: 1; -} - -body[data-title_version='true'] .satus-span--title::after { - font: 700 10px sans-serif; - - margin: 0 0 0 4px; - - content: attr(data-version); - - opacity: .6; -} - -.satus-input--search[type=text] { - position: absolute; - z-index: 1; - right: 60px; - - display: none; - - width: calc(100vw - 72px); - height: 36px; - margin: 0; - padding-right: 36px; - - background: var(--satus-header-background); -} - -.satus-input--search:focus { - box-shadow: 0 0 0 4px rgba(13, 110, 253, .25); -} - -.search-mode .satus-input--search { - display: block; -} - -.search-mode--results { - border-bottom-right-radius: unset; - border-bottom-left-radius: unset; -} - -.satus-header .satus-button--close-search { - position: absolute; - z-index: 1; - right: 68px; - - display: none; - - width: 28px; - min-width: 28px; - height: 28px; - padding: 4px !important; -} - -.search-mode .satus-button--close-search { - display: block; -} - -.satus-header .satus-button--close-search>svg { - stroke: none; - fill: currentColor; -} - -.search-results { - top: 48px; - - overflow: hidden; - - height: calc(100vh - 48px); -} - -.search-results .satus-modal__scrim { - top: 8px; - - backdrop-filter: none; -} - -.search-results .satus-modal__surface { - position: absolute; - top: 0; - left: 12px; - - width: calc(100% - 72px); - min-width: unset; - max-width: unset; - margin: 0; - padding: 0; - - transform-origin: top; - - border-top-left-radius: 0; - border-top-right-radius: 0; - background-color: var(--satus-layers-background); - box-shadow: inset 0 5px 4px -4px rgba(0, 0, 0, .24); -} - -.search-results .satus-section--card { - width: calc(100% - 16px); - margin: 8px; -} - -.search-results .satus-section>* { - width: 100%; - height: 40px; - padding: 0 16px; -} - -.search-results .satus-select__label { - text-align: left; -} - -.search-results .satus-section--label { - font-size: 15px; - font-weight: 500; - - display: block; - - width: calc(100% - 16px); - max-width: 900px; - margin: 8px auto 0 12px; -} - -.satus-modal--vertical .satus-modal__surface { - position: absolute; - top: 8px; - right: 8px; - left: auto; - - min-width: 180px; - max-width: 180px; - - transform-origin: right top; -} - -.satus-modal--vertical .satus-button { - display: flex; - - height: 36px; - padding: 0 16px; - - align-items: center; -} - -.satus-modal--vertical .satus-button svg { - width: 20px; - height: 18px; - margin: 0 14px 0 0; - - opacity: .75; - - fill: none; - stroke: var(--satus-primary); - flex: 0 0 20px; -} - -.satus-modal--vertical .satus-button .satus-span { - overflow: hidden; - - white-space: nowrap; - text-overflow: ellipsis; -} - - -/*-------------------------------------------------------------- -# MAIN ---------------------------------------------------------------*/ - -body:not([data-improvedtube_home='list']) .satus-section--home { - position: absolute; - left: 0; - - overflow: hidden; - - width: 100%; -} - -body[data-improvedtube_home='list'] .satus-section--home { - flex-direction: column; - - box-sizing: border-box; - width: 100%; - max-width: 900px; - margin: 8px auto; - padding: 8px 0; - - color: var(--satus-section-card-text); - border: 1px solid rgba(0, 0, 0, .1); - border-radius: 8px; - background: var(--satus-section-opaque-background); - - justify-content: stretch; -} - -body:not([data-improvedtube_home='list']) .satus-section--home .satus-button { - display: flex; - flex-direction: column; - - width: calc(100% / 3); - height: 96px; - margin: 16px 0 0; - padding: 0; - - cursor: pointer; - - align-items: center; -} - -body[data-improvedtube_home='list'] .satus-section--home>.satus-button { - width: 100%; - padding: 0 16px; -} - -body[data-improvedtube_home='list'] .satus-section--home>.satus-button>span>svg { - width: 20px; - margin: 2px 16px 0 0; - - color: var(--satus-primary); -} - -body:not([data-improvedtube_home='list'])[page] .satus-section--home .satus-button { - width: 96px; -} - -body:not([data-improvedtube_home='list']) .satus-section--home .satus-button:hover { - background: transparent; -} - -body:not([data-improvedtube_home='list']) .satus-section--home .satus-button> :nth-child(1) { - width: 60px; - height: 60px; - padding: 16px; - - transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; - - color: rgba(255, 255, 255, .85); - border-radius: 50%; - background: linear-gradient(135deg, #ff4158, #ff001f); - box-shadow: 0 2px 1px 1px rgb(222, 0, 27, .7), 0 3px 5px rgb(0, 0, 0, .35); -} - -body:not([data-improvedtube_home='list']) .satus-section--home .satus-button:hover> :nth-child(1) { - transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; - transform: translateY(4px) scale(.975); - - box-shadow: 0 1px 1px 0 rgb(222, 0, 27, .7), 0 1px 2px rgba(0, 0, 0, .35); -} - -body:not([data-improvedtube_home='list']) .satus-section--home .satus-button> :nth-child(2) { - overflow: hidden; - - width: calc(100% - 16px); - margin: 8px 0 0; - - text-align: center; - white-space: nowrap; - text-overflow: ellipsis; -} - -body:not([data-improvedtube_home='list']) .satus-button--general svg { - position: relative; -} - -body:not([data-improvedtube_home='list']) .satus-button--appearance svg { - position: relative; - top: 1px; - left: 1px; -} - -body:not([data-improvedtube_home='list']) .satus-button--themes svg { - position: relative; -} - -body:not([data-improvedtube_home='list']) .satus-button--player svg { - position: relative; - top: 1px; - left: 2px; -} - -body:not([data-improvedtube_home='list']) .satus-button--playlist svg { - position: relative; - top: 1px; -} - -body:not([data-improvedtube_home='list']) .satus-button--shortcuts svg { - position: relative; - top: 1px; -} - -body:not([data-improvedtube_home='list']) .satus-button--blacklist svg { - position: relative; - top: 1px; -} - -body:not([data-improvedtube_home='list']) .satus-button--analyzer svg { - position: relative; - top: 1px; -} - -body:not([data-improvedtube_home='list']) .satus-button--email svg { - position: relative; - top: 1px; -} - -body[data-it_general='false'] .satus-button--general, -body[data-it_appearance='false'] .satus-button--appearance, -body[data-it_themes='false'] .satus-button--themes, -body[data-it_player='false'] .satus-button--player, -body[data-it_playlist='false'] .satus-button--playlist, -body[data-it_channel='false'] .satus-button--channel, -body[data-it_shortcuts='false'] .satus-button--shortcuts, -body[data-it_blacklist='false'] .satus-button--blacklist, -body[data-it_analyzer='false'] .satus-button--analyzer, -body[data-it_analyzer='false'] .satus-button--email { - display: none; -} - - -/*-------------------------------------------------------------- -# APPEARANCE ---------------------------------------------------------------*/ - -.satus-section--appearance { - position: relative; - - width: 100%; - max-width: 900px; - height: 100%; - margin: auto; -} - -.satus-section--appearance .satus-button { - position: absolute; - - box-sizing: border-box; - padding: 0; - - transition-duration: .5s; - transition-property: transform, box-shadow; - transform: scale(1); - text-align: center; - - border: 1px solid var(--it-appearance-shadow-color); - border-radius: 6px; - box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0); - - justify-content: center; - align-items: center; -} - -.satus-section--appearance .satus-button:hover { - z-index: 9; - - transition-duration: .25s; - transform: scale(1.03) translate(-8px, -4px); - - box-shadow: 1px 1px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 2px 2px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 3px 3px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 4px 4px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 5px 6px 4px 0 rgba(0, 0, 0, .1); -} - -.satus-section--appearance .satus-button--header { - top: 16px; - left: 16px; - - width: calc(100% - 32px); - height: 40px; - min-height: auto; - - color: var(--satus-modal-text); - background-color: var(--satus-modal-background); -} - -.satus-section--appearance .satus-button--header:hover { - transform: scale(1.03) translate(-9px, -4px); -} - -.satus-section--appearance .satus-button--player { - top: 64px; - left: 16px; - - width: calc(70% - 32px); - height: 96px; - min-height: auto; - - color: #eee; - border-color: #333; - background-color: #444; -} - -.satus-section--appearance .satus-button--player .label { - color: #fff; -} - -.satus-section--appearance .satus-button--player:hover { - transform: scale(1.03) translate(-7px, -4px); - - box-shadow: 1px 1px 0 0 #333, 2px 2px 0 0 #333, 3px 3px 0 0 #333, 4px 4px 0 0 #333, 5px 6px 4px 0 rgba(0, 0, 0, .1); -} - -.satus-section--appearance .satus-button--details { - top: 168px; - left: 16px; - - width: calc(70% - 32px); - height: 56px; - min-height: auto; - - color: var(--satus-modal-text); - background-color: var(--satus-modal-background); -} - -.satus-section--appearance .satus-button--description { - top: 13.5rem; - left: 1rem; - - width: calc(70% - 2rem); - height: 3.5rem; - min-height: 3.5rem; - - color: var(--satus-modal-text); - background-color: var(--satus-modal-background); -} - -.satus-section--appearance .satus-button--comments { - top: 232px; - left: 16px; - - width: calc(70% - 32px); - height: 80px; - min-height: auto; - - color: var(--satus-modal-text); - background-color: var(--satus-modal-background); -} - -.satus-section--appearance .satus-button--footer { - top: 320px; - left: 16px; - - width: calc(70% - 32px); - height: 64px; - min-height: auto; - - color: var(--satus-modal-text); - background-color: var(--satus-modal-background); -} - -.satus-section--appearance .satus-button--sidebar { - top: 64px; - left: calc(70% - 8px); - - width: calc(30% - 8px); - height: 160px; - - color: var(--satus-modal-text); - background-color: var(--satus-modal-background); -} - -.satus-section--custom-player-size { - display: none; - - flex-wrap: nowrap; - align-items: center; -} - -.satus-select--player-size[data-value='custom']+.satus-section--custom-player-size { - display: flex; -} - -.satus-section--custom-player-size>input { - width: auto; - - text-align: center; -} - -.satus-section--custom-player-size>span { - margin: 0 8px; - - content: 'x'; -} - - -/*-------------------------------------------------------------- -# THEMES ---------------------------------------------------------------*/ - -.satus-label--default-theme, -.satus-label--dark-theme, -.satus-label--night-theme, -.satus-label--dawn-theme, -.satus-label--sunset-theme, -.satus-label--desert-theme, -.satus-label--plain-theme, -.satus-label--black-theme { - display: flex; - - width: auto; - height: 80px; - margin: 8px; - - cursor: pointer; - - color: #fff; - border-radius: 8px; - text-shadow: 0 1px 3px rgba(0, 0, 0, .7); - - justify-content: space-between; - align-items: center; -} - -.satus-label--default-theme { - background: #f0f0f0; -} - -.satus-label--dark-theme { - position: relative; - - overflow: hidden; - - background: linear-gradient(#0d1216, #353d46) !important; -} - -.satus-label--dark-theme::before { - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - animation-name: satus-label--dark-theme; - animation-duration: 4s; - animation-timing-function: ease-in-out; - animation-iteration-count: infinite; - pointer-events: none; - - background: radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%), radial-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2), transparent 60%) !important; - background-repeat: no-repeat !important; - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px !important; - background-size: 50px 50px, 50px 50px, 100px 100px, 75px 75px !important; - - filter: blur(8px); -} - -@keyframes satus-label--dark-theme { - 0% { - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; - } - - 50% { - background-position: 20px 20px, 230px -20px, 0 -40px, 160px 10px; - } - - 100% { - background-position: -10px 40px, 200px 0, -30px -20px, 130px 30px; - } -} - -.satus-label--night-theme { - position: relative; - - overflow: hidden; - - animation-name: satus-label--night-theme; - animation-duration: .75s; - animation-iteration-count: infinite; - - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5) !important; - background-repeat: no-repeat !important; - background-position: 75% 80%, 35% 65%, 30% 10%, 50% 40%, 10% 80%, 90% 10%, 0 0 !important; - background-size: 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, 3px 3px, auto !important; -} - -@keyframes satus-label--night-theme { - 0% { - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); - } - - 25% { - background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); - } - - 50% { - background-image: radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .9) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); - } - - 75% { - background-image: radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .45) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .7) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .3) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); - } - - 100% { - background-image: radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .2) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .8) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .6) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .4) 50%, transparent 50%), radial-gradient(rgba(255, 255, 255, .5) 50%, transparent 50%), linear-gradient(#3a48b4, #61a7f5); - } -} - -.satus-label--dawn-theme { - position: relative; - - overflow: hidden; - - background: linear-gradient(#ed74a9, #ffba99) !important; -} - -.satus-slabel-dawn-theme::before { - position: absolute; - right: 1rem; - bottom: -5rem; - - width: 10rem; - height: 10rem; - - content: ''; - animation-name: satus-label--dawn-theme; - animation-duration: .75s; - animation-iteration-count: infinite; - pointer-events: none; - - border-radius: 50%; - background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; -} - -@keyframes satus-label--dawn-theme { - 0% { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); - } - - 50% { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .30) 20%, rgba(255, 255, 231, .30) 35%, rgba(255, 255, 231, .20) 35%, rgba(255, 255, 231, .20) 55%, rgba(255, 255, 231, .10) 55%, rgba(255, 255, 231, .10) 75%, transparent 75%); - } - - 100% { - background: radial-gradient(rgba(255, 255, 231, .85) 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); - } -} - -.satus-label--sunset-theme { - position: relative; - - overflow: hidden; - - background: linear-gradient(#2f3364, #a96165) !important; -} - -.satus-label--sunset-theme::before { - position: absolute; - top: -1rem; - left: 50%; - - overflow: hidden; - - width: 8rem; - height: 8rem; - - content: ''; - transform: translate(-50%, 0%); - pointer-events: none; - - border-radius: 50%; - background: linear-gradient(#fa7965, #f56264, transparent) !important; -} - -.satus-label--desert-theme { - position: relative; - - overflow: hidden; - - background-image: radial-gradient(#ffe498 50%, transparent 50%), linear-gradient(#9dc2ee, #f5fdff) !important; - background-repeat: no-repeat !important; - background-position: -120px 36px, 0 !important; - background-size: 240%, 100% !important; -} - -.satus-label--desert-theme::before { - position: absolute; - top: -100%; - left: 40%; - - width: 10rem; - height: 10rem; - - content: ''; - animation-name: satus-label--desert-theme; - animation-duration: .75s; - animation-delay: .5s; - animation-iteration-count: infinite; - pointer-events: none; - - border-radius: 50%; - background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; -} - -@keyframes satus-label--desert-theme { - 0% { - background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); - } - - 50% { - background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .30) 20%, rgba(255, 255, 231, .30) 35%, rgba(255, 255, 231, .20) 35%, rgba(255, 255, 231, .20) 55%, rgba(255, 255, 231, .10) 55%, rgba(255, 255, 231, .1) 75%, transparent 75%); - } - - 100% { - background: radial-gradient(#fefefe 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%); - } -} - -.satus-label--plain-theme { - position: relative; - - overflow: hidden; - - background-image: radial-gradient(#dea975 50%, transparent 50%), radial-gradient(#e8b887 50%, transparent 50%), radial-gradient(#f1cc9f 50%, transparent 50%), radial-gradient(#f3ddb8 50%, transparent 50%), linear-gradient(#abceb8, #e7ede1) !important; - background-repeat: no-repeat !important; - background-position: -50px 50px, -370px 40px, 0 36px, -360px 26px, 0 !important; - background-size: 240%, 240%, 240%, 240%, 100% !important; -} - -.satus-label--plain-theme::before { - position: absolute; - top: -70%; - left: 10%; - - width: 7rem; - height: 7rem; - - content: ''; - animation-name: satus-label--plain-theme; - animation-duration: .75s; - animation-delay: .2s; - animation-iteration-count: infinite; - pointer-events: none; - - border-radius: 50%; - background: radial-gradient(#fff 20%, rgba(255, 255, 231, .25) 20%, rgba(255, 255, 231, .25) 35%, rgba(255, 255, 231, .15) 35%, rgba(255, 255, 231, .15) 55%, rgba(255, 255, 231, .05) 55%, rgba(255, 255, 231, .05) 75%, transparent 75%) !important; -} - -.satus-label--black-theme { - background: #000 !important; -} - - -/*-------------------------------------------------------------- -# BLACKLIST ---------------------------------------------------------------*/ - -.satus-section.satus-section--blacklist { - position: relative; - - overflow: hidden; - flex-direction: column; - - width: calc(100% - 32px); - height: 116px; - margin: 8px 16px 0; - - transition: opacity .25s; - - opacity: 1; - border-radius: 10px; - background-color: #000; - background-position: center; - background-size: cover; - - flex: unset; - align-items: flex-start; -} - -.satus-section.satus-section--blacklist.removing { - opacity: 0; -} - -.satus-section.satus-section--blacklist::before { - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - margin: 0; - - content: ''; - - background: rgba(0, 0, 0, .5); -} - -.satus-section.satus-section--blacklist>.label { - font-size: 16px; - font-weight: 700; - - position: absolute; - z-index: 1; - bottom: 28px; - - text-transform: uppercase; - - opacity: 1; - color: #fff; -} - -.satus-section.satus-section--blacklist::after { - position: absolute; - z-index: 1; - bottom: 16px; - left: 16px; - - content: attr(data-label); - - color: rgba(255, 255, 255, .5); -} - -.satus-section.satus-section--blacklist>.satus-section { - position: absolute; - z-index: 999; - bottom: 0; - - visibility: hidden; - - width: 100%; - margin: 0; - padding: 0; - - transition: .15s; - - opacity: 0; - border: none; - border-radius: 0; - background: rgba(255, 255, 255, .95); - - justify-content: center; -} - -.satus-section.satus-section--blacklist:hover>.satus-section { - visibility: visible; - - opacity: 1; -} - - -/*-------------------------------------------------------------- -# ANALYZER ---------------------------------------------------------------*/ - -.analyzer-top-text { - font-size: 13px; - - display: flex; - - box-sizing: border-box; - width: 100%; - height: auto; - margin: 16px 0 0; - padding: 0 16px; - - background: transparent !important; - - justify-content: space-between; -} - -.analyzer-watch-time { - text-transform: uppercase; -} - -.analyzer-today-at { - box-sizing: border-box; -} - -.analyzer-container { - box-sizing: border-box; - width: 100%; - height: auto; - margin: 8px 0 16px; - padding: 16px; - - box-shadow: 0 0 2px rgba(0, 0, 0, .2); -} - -.analyzer-all-time { - font-size: 24px; - font-weight: 400; - - margin-bottom: 8px; - - color: #4c4c4c; -} - -.analyzer-chart { - position: relative; - - display: flex; - overflow: hidden; - - box-sizing: border-box; - height: 140px; - margin: 8px 0; - - border-bottom: 1px solid #ccc; - - justify-content: space-between; -} - -.analyzer-chart::before { - position: absolute; - top: -78%; - left: -15%; - - width: 125%; - height: 250%; - - content: ''; - transform: rotate(-45deg); - - background: linear-gradient(transparent 50%, rgba(0, 0, 0, .05) 50%); - background-size: 4px 4px; -} - -.analyzer-column { - z-index: 1; - - display: flex; - - border-right: 1px solid #ccc; - - flex: 1; -} - -.analyzer-column:first-child { - border-left: 1px solid #ccc; -} - -.analyzer-data-column { - display: flex; - flex-direction: column; - - justify-content: flex-end; - flex: 1; -} - -.analyzer-data { - height: 20px; - margin: 0 1px; - - background-color: #c5c5c5; -} - -.analyzer-data.first { - background-color: #1c00db; - - order: 3; -} - -.analyzer-data.second { - background-color: #4dd0e1; - - order: 2; -} - -.analyzer-data.third { - background-color: #ff9800; - - order: 1; -} - -.analyzer-bottom { - display: flex; - - margin: 14px 0 0; - - justify-content: space-between; -} - -.analyzer-bottom>div .label { - margin: 0 0 2px; -} - -.analyzer-bottom>div:first-child .label { - color: #1c00db; -} - -.analyzer-bottom>div:nth-child(2) .label { - color: #4dd0e1; -} - -.analyzer-bottom>div:nth-child(3) .label { - color: #ff9800; -} - - -/*-------------------------------------------------------------- -# MIXER ---------------------------------------------------------------*/ - -.satus-section--mixer { - position: relative; - - overflow: hidden; - flex-direction: column; - - width: calc(100% - 32px); - height: 128px; - margin: 8px 16px 0; - - border: unset; - border-radius: 10px; - - flex: unset; - align-items: flex-start; -} - -.satus-section--mixer::before { - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - - background: rgba(0, 0, 0, .5); -} - -.satus-section--mixer .satus-h1 { - font-size: 14px; - - position: absolute; - bottom: 0; - left: 0; - - margin: 16px; - - transition: 200ms; - - color: #fff; - text-shadow: 0 0 1px rgb(0, 0, 0, .4); -} - -.satus-section--mixer:hover .satus-h1 { - opacity: 0; -} - -.satus-section--mixer>.satus-section { - position: absolute; - bottom: 0; - - visibility: hidden; - - width: 100%; - margin: 0; - padding: 0; - - transition: 200ms; - transform: translateY(32px); - - opacity: 0; - border: unset; - border-radius: unset; - background: var(--satus-section-opaque-background); -} - -.satus-section--mixer:hover>.satus-section { - visibility: visible; - - transform: translateY(0); - - opacity: 1; -} - -.satus-section--mixer.noconnection>.satus-section>div { - visibility: hidden; - - pointer-events: none; -} - -.satus-section--mixer.noconnection>.satus-section::after { - font-size: 18px; - font-weight: 500; - - position: absolute; - top: 50%; - - width: 100%; - - content: attr(data-no-connection-label); - transform: translateY(-50%); - text-align: center; - - opacity: .8; -} \ No newline at end of file From b32021374f00b7186b5a78c6c39604a05a6b220b Mon Sep 17 00:00:00 2001 From: "H. Boyd" Date: Sun, 9 Oct 2022 17:32:15 -0500 Subject: [PATCH 0643/1224] Revert "Remove unused repetitive locales" This reverts commit b893d27691417da669ac66ce3669e80ebcbebab0. --- _locales/en_GB/messages.json | 1070 +++++++++++++++++++++++++++++++++ _locales/en_US/messages.json | 1070 +++++++++++++++++++++++++++++++++ _locales/es_419/messages.json | 1070 +++++++++++++++++++++++++++++++++ 3 files changed, 3210 insertions(+) create mode 100644 _locales/en_GB/messages.json create mode 100644 _locales/en_US/messages.json create mode 100644 _locales/es_419/messages.json diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json new file mode 100644 index 000000000..d5017dceb --- /dev/null +++ b/_locales/en_GB/messages.json @@ -0,0 +1,1070 @@ +{ + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "About" + }, + "accept": { + "message": "Accept" + }, + "activate": { + "message": "Activate" + }, + "activateCaptions": { + "message": "Activate captions" + }, + "activateFullscreen": { + "message": "Activate fullscreen" + }, + "activated": { + "message": "Activated" + }, + "activatedFeatures": { + "message": "Activated features" + }, + "activeFeatures": { + "message": "Active features" + }, + "addScrollToTop": { + "message": "Add «Scroll to top»" + }, + "ads": { + "message": "Ads" + }, + "all": { + "message": "All" + }, + "allow": { + "message": "Allow" + }, + "allow60fps": { + "message": "Allow 60fps" + }, + "always": { + "message": "Always" + }, + "alwaysActive": { + "message": "Always active" + }, + "alwaysShowProgressBar": { + "message": "Always show progress bar" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analyzer" + }, + "appearance": { + "message": "Appearance" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import this data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formats" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullscreen" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause when switching tabs" + }, + "autoplay": { + "message": "Autoplay" + }, + "avoidAv1": { + "message": "Avoid AV1" + }, + "avoidAv1Vp8Vp9": { + "message": "Avoid AV1, VP8, VP9" + }, + "avoidAv1Vp9": { + "message": "Avoid AV1, VP9" + }, + "avoidCpuRenderingWhenPossible": { + "message": "Avoid CPU rendering when possible" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Backup & reset" + }, + "baseOnSystemColorScheme": { + "message": "Base on system color scheme" + }, + "belowPlayer": { + "message": "Below player" + }, + "black": { + "message": "Black" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "Block all" + }, + "blockAv1": { + "message": "Block AV1" + }, + "blockH264": { + "message": "Block H.264" + }, + "blockMusic": { + "message": "Block music" + }, + "blockVp8": { + "message": "Block VP8" + }, + "blockVp9": { + "message": "Block VP9" + }, + "blue": { + "message": "Blue" + }, + "blueGray": { + "message": "Blue gray" + }, + "bluelight": { + "message": "Bluelight" + }, + "brown": { + "message": "Brown" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser version" + }, + "bubbles": { + "message": "Bubbles" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Buttons" + }, + "cancel": { + "message": "Cancel" + }, + "categories": { + "message": "Categories" + }, + "channel": { + "message": "Channel" + }, + "channels": { + "message": "Channels" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clip": { + "message": "Clip" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "codecs": { + "message": "Codecs" + }, + "collapseOfSubscriptionSections": { + "message": "Collapse of subscription sections" + }, + "collapsed": { + "message": "Collapsed" + }, + "comments": { + "message": "Comments" + }, + "confirmationBeforeClosing": { + "message": "Confirmation before closing" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "custom": { + "message": "Custom" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Custom JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Dark" + }, + "darkTheme": { + "message": "Dark theme" + }, + "dateAndTime": { + "message": "Date & time" + }, + "dawn": { + "message": "Dawn" + }, + "decreasePlaybackSpeed": { + "message": "Decrease playback speed" + }, + "decreaseVolume": { + "message": "Decrease volume" + }, + "deepOrange": { + "message": "Deep orange" + }, + "deepPurple": { + "message": "Deep purple" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Default channel tab" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Delete YouTube cookies" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Description" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Desert" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Developer options" + }, + "device": { + "message": "Device" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Disabled" + }, + "dislike": { + "message": "Dislike" + }, + "doNotChange": { + "message": "Don't change" + }, + "donate": { + "message": "Donate" + }, + "download": { + "message": "Download" + }, + "draggable": { + "message": "Draggable" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Empty" + }, + "enabled": { + "message": "Enabled" + }, + "enabledForced": { + "message": "Enabled (forced)" + }, + "expanded": { + "message": "Expanded" + }, + "exportSettings": { + "message": "Export settings" + }, + "extension": { + "message": "Extension" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filters" + }, + "fitToWindow": { + "message": "Fit to window" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Footer" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Force video to play from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, + "forcedTheaterMode": { + "message": "Forced theater mode" + }, + "forcedVolume": { + "message": "Forced volume" + }, + "foundABug": { + "message": "Found a bug?" + }, + "fullWindow": { + "message": "Full window" + }, + "general": { + "message": "General" + }, + "geoPreference": { + "message": "Geo Preference" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Go to search box" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Green" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD thumbnail" + }, + "header": { + "message": "Header" + }, + "hidden": { + "message": "Hidden" + }, + "hiddenOnVideoPage": { + "message": "Hidden on video page" + }, + "hideAnimatedThumbnails": { + "message": "Hide animated thumbnails" + }, + "hideAnnotations": { + "message": "Hide annotations" + }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, + "hideCards": { + "message": "Hide cards" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, + "hideDetails": { + "message": "Hide details" + }, + "hideEndscreen": { + "message": "Hide endscreen" + }, + "hideFeaturedContent": { + "message": "Hide featured content" + }, + "hideFooter": { + "message": "Hide footer" + }, + "hideGradientBottom": { + "message": "Hide shadow around player-bar" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Hide playlist" + }, + "hideRightButtons": { + "message": "Hide right buttons" + }, + "hideScrollForDetails": { + "message": "Hide «Scroll for details»" + }, + "hideSkipOverlay": { + "message": "Hide 5 second skip animation" + }, + "hideThumbnailOverlay": { + "message": "Hide buttons on thumbnails" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Hide views count" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "History" + }, + "home": { + "message": "Home" + }, + "hover": { + "message": "Hover" + }, + "hoverOnVideoPage": { + "message": "Hover on video page" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "How long ago the video was uploaded" + }, + "icons": { + "message": "Icons" + }, + "iconsOnly": { + "message": "Icons only" + }, + "importSettings": { + "message": "Import settings" + }, + "improveLogo": { + "message": "Improve logo" + }, + "improvedtubeButtons": { + "message": "ImprovedTube buttons" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube icon on YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube language" + }, + "improvedtubeVersion": { + "message": "ImprovedTube version" + }, + "increasePlaybackSpeed": { + "message": "Increase playback speed" + }, + "increaseVolume": { + "message": "Increase volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Languages" + }, + "legacyYoutube": { + "message": "Legacy YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Light" + }, + "lightBlue": { + "message": "Light blue" + }, + "lightGreen": { + "message": "Light green" + }, + "like": { + "message": "Like" + }, + "likeAndDislike": { + "message": "Like and Dislike " + }, + "liked": { + "message": "Liked" + }, + "lime": { + "message": "Lime" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "List" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Live chat type" + }, + "location": { + "message": "Location" + }, + "loop": { + "message": "Loop" + }, + "loudnessNormalization": { + "message": "Loudness normalization" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Mark watched videos" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "more": { + "message": "More" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "My colors" + }, + "name": { + "message": "Name" + }, + "nativeMiniPlayer": { + "message": "Native mini player" + }, + "new": { + "message": "New" + }, + "nextVideo": { + "message": "Next video" + }, + "night": { + "message": "Night" + }, + "noActiveFeatures": { + "message": "No active features" + }, + "noOpenVideoTabs": { + "message": "No open video tabs" + }, + "none": { + "message": "None" + }, + "normal": { + "message": "Normal" + }, + "off": { + "message": "Off" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Old" + }, + "onAllVideos": { + "message": "On all videos" + }, + "onSubscribedChannels": { + "message": "On subscribed channels" + }, + "onlyActiveOnYoutube": { + "message": "Only active on YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "openPopupPlayer": { + "message": "Open video/playlist in a new window" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Other" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Permissions" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Pink" + }, + "plain": { + "message": "Plain" + }, + "platform": { + "message": "Platform" + }, + "playAllButton": { + "message": "\"Play all\" button" + }, + "playPause": { + "message": "Play / Pause" + }, + "playbackSpeed": { + "message": "Playback speed" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Player color" + }, + "playerSize": { + "message": "Player size" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "popupPlayer": { + "message": "Popup player" + }, + "popupWindowButtons": { + "message": "Add popup Window buttons" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Press any key or use mouse wheel." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Press any key or use mouse wheel" + }, + "previousVideo": { + "message": "Previous video" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "Purple" + }, + "quality": { + "message": "Quality" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Rate us" + }, + "red": { + "message": "Red" + }, + "redDislikeButton": { + "message": "Show dislike button in red" + }, + "relatedVideos": { + "message": "Related videos" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Remove related search results" + }, + "repeat": { + "message": "Repeat" + }, + "report": { + "message": "Report" + }, + "reset": { + "message": "Reset" + }, + "resetAllSettings": { + "message": "Reset all settings" + }, + "resetAllShortcuts": { + "message": "Reset all shortcuts" + }, + "reverse": { + "message": "Reverse" + }, + "rotate": { + "message": "Rotate" + }, + "save": { + "message": "Save" + }, + "saveAs": { + "message": "Save as" + }, + "schedule": { + "message": "Schedule" + }, + "screen": { + "message": "Screen" + }, + "screenshot": { + "message": "Screenshot" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Search" + }, + "searchBarOnly": { + "message": "Search bar only" + }, + "seekBackward10Seconds": { + "message": "Seek backward 10 seconds" + }, + "seekForward10Seconds": { + "message": "Seek forward 10 seconds" + }, + "seekNextChapter": { + "message": "Seek Next Chapter" + }, + "seekPreviousChapter": { + "message": "Seek Previous Chapter" + }, + "settings": { + "message": "Settings" + }, + "settingsSuccessfullyImported": { + "message": "Settings successfully imported" + }, + "share": { + "message": "Share" + }, + "shortcuts": { + "message": "Shortcuts" + }, + "showCardsOnMouseHover": { + "message": "Show cards on mouse hover" + }, + "showChannelVideosCount": { + "message": "Show channel videos count" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Shuffle" + }, + "sidebar": { + "message": "Sidebar" + }, + "spacebar": { + "message": "Spacebar" + }, + "squaredUserImages": { + "message": "Squared user images" + }, + "static": { + "message": "Static" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Subscriptions" + }, + "subtitles": { + "message": "Subtitles" + }, + "sunset": { + "message": "Sunset" + }, + "sunsetToSunrise": { + "message": "Sunset to sunrise" + }, + "systemPeferenceDark": { + "message": "System preference: dark" + }, + "systemPeferenceLight": { + "message": "System preference: light" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Text color" + }, + "thanks": { + "message": "Thanks" + }, + "themes": { + "message": "Themes" + }, + "thisWillRemoveAllCookies": { + "message": "This will remove all cookies." + }, + "thisWillRemoveAllWatchedVideos": { + "message": "This will remove all watched videos." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "This will remove all YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "This will reset all settings." + }, + "thisWillResetAllShortcuts": { + "message": "This will reset all shortcuts" + }, + "thumbnails": { + "message": "Thumbnails" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Time from" + }, + "timeTo": { + "message": "Time to" + }, + "todayAt": { + "message": "Today at" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle player controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Trailer autoplay" + }, + "translations": { + "message": "Translations" + }, + "transparentBackground": { + "message": "Transparent background" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Try to reload the page" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Up next autoplay" + }, + "use24HourFormat": { + "message": "Use 24-hour format" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video description will be expanded to get the name of the category" + }, + "videoFormats": { + "message": "Video formats" + }, + "videos": { + "message": "Videos" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Watch later" + }, + "watchTime": { + "message": "Watch time" + }, + "whenPaused": { + "message": "When paused" + }, + "whenTabIsChanged": { + "message": "When tab is changed" + }, + "white": { + "message": "White" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Yellow" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (left)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (right)" + }, + "youtubeHomePage": { + "message": "YouTube home page" + }, + "youtubeLanguage": { + "message": "YouTube language" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limits video quality to 1080p for h.264 codec" + } +} \ No newline at end of file diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json new file mode 100644 index 000000000..d5017dceb --- /dev/null +++ b/_locales/en_US/messages.json @@ -0,0 +1,1070 @@ +{ + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "About" + }, + "accept": { + "message": "Accept" + }, + "activate": { + "message": "Activate" + }, + "activateCaptions": { + "message": "Activate captions" + }, + "activateFullscreen": { + "message": "Activate fullscreen" + }, + "activated": { + "message": "Activated" + }, + "activatedFeatures": { + "message": "Activated features" + }, + "activeFeatures": { + "message": "Active features" + }, + "addScrollToTop": { + "message": "Add «Scroll to top»" + }, + "ads": { + "message": "Ads" + }, + "all": { + "message": "All" + }, + "allow": { + "message": "Allow" + }, + "allow60fps": { + "message": "Allow 60fps" + }, + "always": { + "message": "Always" + }, + "alwaysActive": { + "message": "Always active" + }, + "alwaysShowProgressBar": { + "message": "Always show progress bar" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analyzer" + }, + "appearance": { + "message": "Appearance" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import this data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formats" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullscreen" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause when switching tabs" + }, + "autoplay": { + "message": "Autoplay" + }, + "avoidAv1": { + "message": "Avoid AV1" + }, + "avoidAv1Vp8Vp9": { + "message": "Avoid AV1, VP8, VP9" + }, + "avoidAv1Vp9": { + "message": "Avoid AV1, VP9" + }, + "avoidCpuRenderingWhenPossible": { + "message": "Avoid CPU rendering when possible" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Backup & reset" + }, + "baseOnSystemColorScheme": { + "message": "Base on system color scheme" + }, + "belowPlayer": { + "message": "Below player" + }, + "black": { + "message": "Black" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "Block all" + }, + "blockAv1": { + "message": "Block AV1" + }, + "blockH264": { + "message": "Block H.264" + }, + "blockMusic": { + "message": "Block music" + }, + "blockVp8": { + "message": "Block VP8" + }, + "blockVp9": { + "message": "Block VP9" + }, + "blue": { + "message": "Blue" + }, + "blueGray": { + "message": "Blue gray" + }, + "bluelight": { + "message": "Bluelight" + }, + "brown": { + "message": "Brown" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser version" + }, + "bubbles": { + "message": "Bubbles" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Buttons" + }, + "cancel": { + "message": "Cancel" + }, + "categories": { + "message": "Categories" + }, + "channel": { + "message": "Channel" + }, + "channels": { + "message": "Channels" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clip": { + "message": "Clip" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "codecs": { + "message": "Codecs" + }, + "collapseOfSubscriptionSections": { + "message": "Collapse of subscription sections" + }, + "collapsed": { + "message": "Collapsed" + }, + "comments": { + "message": "Comments" + }, + "confirmationBeforeClosing": { + "message": "Confirmation before closing" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "custom": { + "message": "Custom" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Custom JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Dark" + }, + "darkTheme": { + "message": "Dark theme" + }, + "dateAndTime": { + "message": "Date & time" + }, + "dawn": { + "message": "Dawn" + }, + "decreasePlaybackSpeed": { + "message": "Decrease playback speed" + }, + "decreaseVolume": { + "message": "Decrease volume" + }, + "deepOrange": { + "message": "Deep orange" + }, + "deepPurple": { + "message": "Deep purple" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Default channel tab" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Delete YouTube cookies" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Description" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Desert" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Developer options" + }, + "device": { + "message": "Device" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Disabled" + }, + "dislike": { + "message": "Dislike" + }, + "doNotChange": { + "message": "Don't change" + }, + "donate": { + "message": "Donate" + }, + "download": { + "message": "Download" + }, + "draggable": { + "message": "Draggable" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Empty" + }, + "enabled": { + "message": "Enabled" + }, + "enabledForced": { + "message": "Enabled (forced)" + }, + "expanded": { + "message": "Expanded" + }, + "exportSettings": { + "message": "Export settings" + }, + "extension": { + "message": "Extension" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filters" + }, + "fitToWindow": { + "message": "Fit to window" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Footer" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Force video to play from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, + "forcedTheaterMode": { + "message": "Forced theater mode" + }, + "forcedVolume": { + "message": "Forced volume" + }, + "foundABug": { + "message": "Found a bug?" + }, + "fullWindow": { + "message": "Full window" + }, + "general": { + "message": "General" + }, + "geoPreference": { + "message": "Geo Preference" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Go to search box" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Green" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD thumbnail" + }, + "header": { + "message": "Header" + }, + "hidden": { + "message": "Hidden" + }, + "hiddenOnVideoPage": { + "message": "Hidden on video page" + }, + "hideAnimatedThumbnails": { + "message": "Hide animated thumbnails" + }, + "hideAnnotations": { + "message": "Hide annotations" + }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, + "hideCards": { + "message": "Hide cards" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, + "hideDetails": { + "message": "Hide details" + }, + "hideEndscreen": { + "message": "Hide endscreen" + }, + "hideFeaturedContent": { + "message": "Hide featured content" + }, + "hideFooter": { + "message": "Hide footer" + }, + "hideGradientBottom": { + "message": "Hide shadow around player-bar" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Hide playlist" + }, + "hideRightButtons": { + "message": "Hide right buttons" + }, + "hideScrollForDetails": { + "message": "Hide «Scroll for details»" + }, + "hideSkipOverlay": { + "message": "Hide 5 second skip animation" + }, + "hideThumbnailOverlay": { + "message": "Hide buttons on thumbnails" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Hide views count" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "History" + }, + "home": { + "message": "Home" + }, + "hover": { + "message": "Hover" + }, + "hoverOnVideoPage": { + "message": "Hover on video page" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "How long ago the video was uploaded" + }, + "icons": { + "message": "Icons" + }, + "iconsOnly": { + "message": "Icons only" + }, + "importSettings": { + "message": "Import settings" + }, + "improveLogo": { + "message": "Improve logo" + }, + "improvedtubeButtons": { + "message": "ImprovedTube buttons" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube icon on YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube language" + }, + "improvedtubeVersion": { + "message": "ImprovedTube version" + }, + "increasePlaybackSpeed": { + "message": "Increase playback speed" + }, + "increaseVolume": { + "message": "Increase volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Languages" + }, + "legacyYoutube": { + "message": "Legacy YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Light" + }, + "lightBlue": { + "message": "Light blue" + }, + "lightGreen": { + "message": "Light green" + }, + "like": { + "message": "Like" + }, + "likeAndDislike": { + "message": "Like and Dislike " + }, + "liked": { + "message": "Liked" + }, + "lime": { + "message": "Lime" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "List" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Live chat type" + }, + "location": { + "message": "Location" + }, + "loop": { + "message": "Loop" + }, + "loudnessNormalization": { + "message": "Loudness normalization" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Mark watched videos" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "more": { + "message": "More" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "My colors" + }, + "name": { + "message": "Name" + }, + "nativeMiniPlayer": { + "message": "Native mini player" + }, + "new": { + "message": "New" + }, + "nextVideo": { + "message": "Next video" + }, + "night": { + "message": "Night" + }, + "noActiveFeatures": { + "message": "No active features" + }, + "noOpenVideoTabs": { + "message": "No open video tabs" + }, + "none": { + "message": "None" + }, + "normal": { + "message": "Normal" + }, + "off": { + "message": "Off" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Old" + }, + "onAllVideos": { + "message": "On all videos" + }, + "onSubscribedChannels": { + "message": "On subscribed channels" + }, + "onlyActiveOnYoutube": { + "message": "Only active on YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "openPopupPlayer": { + "message": "Open video/playlist in a new window" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Other" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Permissions" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Pink" + }, + "plain": { + "message": "Plain" + }, + "platform": { + "message": "Platform" + }, + "playAllButton": { + "message": "\"Play all\" button" + }, + "playPause": { + "message": "Play / Pause" + }, + "playbackSpeed": { + "message": "Playback speed" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Player color" + }, + "playerSize": { + "message": "Player size" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "popupPlayer": { + "message": "Popup player" + }, + "popupWindowButtons": { + "message": "Add popup Window buttons" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Press any key or use mouse wheel." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Press any key or use mouse wheel" + }, + "previousVideo": { + "message": "Previous video" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "Purple" + }, + "quality": { + "message": "Quality" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Rate us" + }, + "red": { + "message": "Red" + }, + "redDislikeButton": { + "message": "Show dislike button in red" + }, + "relatedVideos": { + "message": "Related videos" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Remove related search results" + }, + "repeat": { + "message": "Repeat" + }, + "report": { + "message": "Report" + }, + "reset": { + "message": "Reset" + }, + "resetAllSettings": { + "message": "Reset all settings" + }, + "resetAllShortcuts": { + "message": "Reset all shortcuts" + }, + "reverse": { + "message": "Reverse" + }, + "rotate": { + "message": "Rotate" + }, + "save": { + "message": "Save" + }, + "saveAs": { + "message": "Save as" + }, + "schedule": { + "message": "Schedule" + }, + "screen": { + "message": "Screen" + }, + "screenshot": { + "message": "Screenshot" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Search" + }, + "searchBarOnly": { + "message": "Search bar only" + }, + "seekBackward10Seconds": { + "message": "Seek backward 10 seconds" + }, + "seekForward10Seconds": { + "message": "Seek forward 10 seconds" + }, + "seekNextChapter": { + "message": "Seek Next Chapter" + }, + "seekPreviousChapter": { + "message": "Seek Previous Chapter" + }, + "settings": { + "message": "Settings" + }, + "settingsSuccessfullyImported": { + "message": "Settings successfully imported" + }, + "share": { + "message": "Share" + }, + "shortcuts": { + "message": "Shortcuts" + }, + "showCardsOnMouseHover": { + "message": "Show cards on mouse hover" + }, + "showChannelVideosCount": { + "message": "Show channel videos count" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Shuffle" + }, + "sidebar": { + "message": "Sidebar" + }, + "spacebar": { + "message": "Spacebar" + }, + "squaredUserImages": { + "message": "Squared user images" + }, + "static": { + "message": "Static" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Subscriptions" + }, + "subtitles": { + "message": "Subtitles" + }, + "sunset": { + "message": "Sunset" + }, + "sunsetToSunrise": { + "message": "Sunset to sunrise" + }, + "systemPeferenceDark": { + "message": "System preference: dark" + }, + "systemPeferenceLight": { + "message": "System preference: light" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Text color" + }, + "thanks": { + "message": "Thanks" + }, + "themes": { + "message": "Themes" + }, + "thisWillRemoveAllCookies": { + "message": "This will remove all cookies." + }, + "thisWillRemoveAllWatchedVideos": { + "message": "This will remove all watched videos." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "This will remove all YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "This will reset all settings." + }, + "thisWillResetAllShortcuts": { + "message": "This will reset all shortcuts" + }, + "thumbnails": { + "message": "Thumbnails" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Time from" + }, + "timeTo": { + "message": "Time to" + }, + "todayAt": { + "message": "Today at" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle player controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Trailer autoplay" + }, + "translations": { + "message": "Translations" + }, + "transparentBackground": { + "message": "Transparent background" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Try to reload the page" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Up next autoplay" + }, + "use24HourFormat": { + "message": "Use 24-hour format" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video description will be expanded to get the name of the category" + }, + "videoFormats": { + "message": "Video formats" + }, + "videos": { + "message": "Videos" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Watch later" + }, + "watchTime": { + "message": "Watch time" + }, + "whenPaused": { + "message": "When paused" + }, + "whenTabIsChanged": { + "message": "When tab is changed" + }, + "white": { + "message": "White" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Yellow" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (left)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (right)" + }, + "youtubeHomePage": { + "message": "YouTube home page" + }, + "youtubeLanguage": { + "message": "YouTube language" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limits video quality to 1080p for h.264 codec" + } +} \ No newline at end of file diff --git a/_locales/es_419/messages.json b/_locales/es_419/messages.json new file mode 100644 index 000000000..d5017dceb --- /dev/null +++ b/_locales/es_419/messages.json @@ -0,0 +1,1070 @@ +{ + "ARROWDOWN": { + "message": "⇩" + }, + "ARROWLEFT": { + "message": "⇦" + }, + "ARROWRIGHT": { + "message": "⇨" + }, + "ARROWUP": { + "message": "⇧" + }, + "about": { + "message": "About" + }, + "accept": { + "message": "Accept" + }, + "activate": { + "message": "Activate" + }, + "activateCaptions": { + "message": "Activate captions" + }, + "activateFullscreen": { + "message": "Activate fullscreen" + }, + "activated": { + "message": "Activated" + }, + "activatedFeatures": { + "message": "Activated features" + }, + "activeFeatures": { + "message": "Active features" + }, + "addScrollToTop": { + "message": "Add «Scroll to top»" + }, + "ads": { + "message": "Ads" + }, + "all": { + "message": "All" + }, + "allow": { + "message": "Allow" + }, + "allow60fps": { + "message": "Allow 60fps" + }, + "always": { + "message": "Always" + }, + "alwaysActive": { + "message": "Always active" + }, + "alwaysShowProgressBar": { + "message": "Always show progress bar" + }, + "amber": { + "message": "Amber" + }, + "analyzer": { + "message": "Analyzer" + }, + "appearance": { + "message": "Appearance" + }, + "areYouSureYouWantToExportTheData": { + "message": "Are you sure you want to export the data?" + }, + "areYouSureYouWantToImportTheData": { + "message": "Are you sure you want to import this data?" + }, + "audio": { + "message": "Audio" + }, + "audioFormats": { + "message": "Audio formats" + }, + "auto": { + "message": "Auto" + }, + "autoFullscreen": { + "message": "Auto-fullscreen" + }, + "autopauseWhenSwitchingTabs": { + "message": "Autopause when switching tabs" + }, + "autoplay": { + "message": "Autoplay" + }, + "avoidAv1": { + "message": "Avoid AV1" + }, + "avoidAv1Vp8Vp9": { + "message": "Avoid AV1, VP8, VP9" + }, + "avoidAv1Vp9": { + "message": "Avoid AV1, VP9" + }, + "avoidCpuRenderingWhenPossible": { + "message": "Avoid CPU rendering when possible" + }, + "backgroundColor": { + "message": "Background color" + }, + "backgroundOpacity": { + "message": "Background opacity" + }, + "backupAndReset": { + "message": "Backup & reset" + }, + "baseOnSystemColorScheme": { + "message": "Base on system color scheme" + }, + "belowPlayer": { + "message": "Below player" + }, + "black": { + "message": "Black" + }, + "blacklist": { + "message": "Blacklist" + }, + "blockAll": { + "message": "Block all" + }, + "blockAv1": { + "message": "Block AV1" + }, + "blockH264": { + "message": "Block H.264" + }, + "blockMusic": { + "message": "Block music" + }, + "blockVp8": { + "message": "Block VP8" + }, + "blockVp9": { + "message": "Block VP9" + }, + "blue": { + "message": "Blue" + }, + "blueGray": { + "message": "Blue gray" + }, + "bluelight": { + "message": "Bluelight" + }, + "brown": { + "message": "Brown" + }, + "browser": { + "message": "Browser" + }, + "browserVersion": { + "message": "Browser version" + }, + "bubbles": { + "message": "Bubbles" + }, + "bug": { + "message": "Bug" + }, + "buttons": { + "message": "Buttons" + }, + "cancel": { + "message": "Cancel" + }, + "categories": { + "message": "Categories" + }, + "channel": { + "message": "Channel" + }, + "channels": { + "message": "Channels" + }, + "characterEdgeStyle": { + "message": "Character edge style" + }, + "clip": { + "message": "Clip" + }, + "clipboard": { + "message": "Clipboard" + }, + "codecH264": { + "message": "Codec h.264" + }, + "codecs": { + "message": "Codecs" + }, + "collapseOfSubscriptionSections": { + "message": "Collapse of subscription sections" + }, + "collapsed": { + "message": "Collapsed" + }, + "comments": { + "message": "Comments" + }, + "confirmationBeforeClosing": { + "message": "Confirmation before closing" + }, + "cookies": { + "message": "Cookies" + }, + "cores": { + "message": "Cores" + }, + "cropChapterTitles": { + "message": "Crop chapter titles" + }, + "custom": { + "message": "Custom" + }, + "customCss": { + "message": "Custom CSS" + }, + "customJs": { + "message": "Custom JS" + }, + "customMiniPlayer": { + "message": "Custom Mini-Player" + }, + "cyan": { + "message": "Cyan" + }, + "dark": { + "message": "Dark" + }, + "darkTheme": { + "message": "Dark theme" + }, + "dateAndTime": { + "message": "Date & time" + }, + "dawn": { + "message": "Dawn" + }, + "decreasePlaybackSpeed": { + "message": "Decrease playback speed" + }, + "decreaseVolume": { + "message": "Decrease volume" + }, + "deepOrange": { + "message": "Deep orange" + }, + "deepPurple": { + "message": "Deep purple" + }, + "default": { + "message": "Default" + }, + "defaultChannelTab": { + "message": "Default channel tab" + }, + "defaultContentCountry": { + "message": "Default content country" + }, + "deleteWatchedVideos": { + "message": "Delete watched videos" + }, + "deleteYoutubeCookies": { + "message": "Delete YouTube cookies" + }, + "depressed": { + "message": "Depressed" + }, + "description": { + "message": "Description" + }, + "description_ext": { + "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" + }, + "desert": { + "message": "Desert" + }, + "details": { + "message": "Details" + }, + "developerOptions": { + "message": "Developer options" + }, + "device": { + "message": "Device" + }, + "dim": { + "message": "Dim" + }, + "disabled": { + "message": "Disabled" + }, + "dislike": { + "message": "Dislike" + }, + "doNotChange": { + "message": "Don't change" + }, + "donate": { + "message": "Donate" + }, + "download": { + "message": "Download" + }, + "draggable": { + "message": "Draggable" + }, + "dropShadow": { + "message": "Drop shadow" + }, + "durationWithSpeed": { + "message": "Show time remaining with reference to playback speed" + }, + "email": { + "message": "Email" + }, + "empty": { + "message": "Empty" + }, + "enabled": { + "message": "Enabled" + }, + "enabledForced": { + "message": "Enabled (forced)" + }, + "expanded": { + "message": "Expanded" + }, + "exportSettings": { + "message": "Export settings" + }, + "extension": { + "message": "Extension" + }, + "file": { + "message": "File" + }, + "filters": { + "message": "Filters" + }, + "fitToWindow": { + "message": "Fit to window" + }, + "flash": { + "message": "Flash" + }, + "font": { + "message": "Font" + }, + "fontColor": { + "message": "Font color" + }, + "fontFamily": { + "message": "Font family" + }, + "fontOpacity": { + "message": "Font opacity" + }, + "fontSize": { + "message": "Font size" + }, + "footer": { + "message": "Footer" + }, + "forceSDR": { + "message": "Force SDR" + }, + "forcedPlayVideoFromTheBeginning": { + "message": "Force video to play from the beginning" + }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, + "forcedTheaterMode": { + "message": "Forced theater mode" + }, + "forcedVolume": { + "message": "Forced volume" + }, + "foundABug": { + "message": "Found a bug?" + }, + "fullWindow": { + "message": "Full window" + }, + "general": { + "message": "General" + }, + "geoPreference": { + "message": "Geo Preference" + }, + "github": { + "message": "GitHub" + }, + "goToSearchBox": { + "message": "Go to search box" + }, + "googleApiKey": { + "message": "Google API key" + }, + "gpu": { + "message": "GPU" + }, + "green": { + "message": "Green" + }, + "hd": { + "message": "HD" + }, + "hdThumbnail": { + "message": "HD thumbnail" + }, + "header": { + "message": "Header" + }, + "hidden": { + "message": "Hidden" + }, + "hiddenOnVideoPage": { + "message": "Hidden on video page" + }, + "hideAnimatedThumbnails": { + "message": "Hide animated thumbnails" + }, + "hideAnnotations": { + "message": "Hide annotations" + }, + "hideButtonLabel": { + "message": "Hide Button Label" + }, + "hideCards": { + "message": "Hide cards" + }, + "hideCountryCode": { + "message": "Hide country code" + }, + "hideDate": { + "message": "Hide date" + }, + "hideDetailButton": { + "message": "Hide Detail Button" + }, + "hideDetails": { + "message": "Hide details" + }, + "hideEndscreen": { + "message": "Hide endscreen" + }, + "hideFeaturedContent": { + "message": "Hide featured content" + }, + "hideFooter": { + "message": "Hide footer" + }, + "hideGradientBottom": { + "message": "Hide shadow around player-bar" + }, + "hidePlayerControlsBar": { + "message": "Hide player controls bar" + }, + "hidePlayerControlsBarButtons": { + "message": "Hide player controls buttons" + }, + "hidePlayerControlsBarOptions": { + "message": "Hide player controls options" + }, + "hidePlaylist": { + "message": "Hide playlist" + }, + "hideRightButtons": { + "message": "Hide right buttons" + }, + "hideScrollForDetails": { + "message": "Hide «Scroll for details»" + }, + "hideSkipOverlay": { + "message": "Hide 5 second skip animation" + }, + "hideThumbnailOverlay": { + "message": "Hide buttons on thumbnails" + }, + "hideThumbnails": { + "message": "Hide thumbnails" + }, + "hideViewsCount": { + "message": "Hide views count" + }, + "hideVoiceSearchButton": { + "message": "Hide voice search button" + }, + "high": { + "message": "High" + }, + "history": { + "message": "History" + }, + "home": { + "message": "Home" + }, + "hover": { + "message": "Hover" + }, + "hoverOnVideoPage": { + "message": "Hover on video page" + }, + "howLongAgoTheVideoWasUploaded": { + "message": "How long ago the video was uploaded" + }, + "icons": { + "message": "Icons" + }, + "iconsOnly": { + "message": "Icons only" + }, + "importSettings": { + "message": "Import settings" + }, + "improveLogo": { + "message": "Improve logo" + }, + "improvedtubeButtons": { + "message": "ImprovedTube buttons" + }, + "improvedtubeIconOnYoutube": { + "message": "ImprovedTube icon on YouTube" + }, + "improvedtubeLanguage": { + "message": "ImprovedTube language" + }, + "improvedtubeVersion": { + "message": "ImprovedTube version" + }, + "increasePlaybackSpeed": { + "message": "Increase playback speed" + }, + "increaseVolume": { + "message": "Increase volume" + }, + "indigo": { + "message": "Indigo" + }, + "items": { + "message": "Items" + }, + "language": { + "message": "Language" + }, + "languages": { + "message": "Languages" + }, + "legacyYoutube": { + "message": "Legacy YouTube" + }, + "library": { + "message": "Library" + }, + "light": { + "message": "Light" + }, + "lightBlue": { + "message": "Light blue" + }, + "lightGreen": { + "message": "Light green" + }, + "like": { + "message": "Like" + }, + "likeAndDislike": { + "message": "Like and Dislike " + }, + "liked": { + "message": "Liked" + }, + "lime": { + "message": "Lime" + }, + "limitPageWidth": { + "message": "Limit page width" + }, + "list": { + "message": "List" + }, + "liveChat": { + "message": "Live chat" + }, + "liveChatType": { + "message": "Live chat type" + }, + "location": { + "message": "Location" + }, + "loop": { + "message": "Loop" + }, + "loudnessNormalization": { + "message": "Loudness normalization" + }, + "low": { + "message": "Low" + }, + "markWatchedVideos": { + "message": "Mark watched videos" + }, + "medium": { + "message": "Medium" + }, + "mixer": { + "message": "Mixer" + }, + "more": { + "message": "More" + }, + "moveSidebarLeft": { + "message": "Move sidebar left" + }, + "moveThumbnailsRight": { + "message": "Move thumbnails right" + }, + "myColors": { + "message": "My colors" + }, + "name": { + "message": "Name" + }, + "nativeMiniPlayer": { + "message": "Native mini player" + }, + "new": { + "message": "New" + }, + "nextVideo": { + "message": "Next video" + }, + "night": { + "message": "Night" + }, + "noActiveFeatures": { + "message": "No active features" + }, + "noOpenVideoTabs": { + "message": "No open video tabs" + }, + "none": { + "message": "None" + }, + "normal": { + "message": "Normal" + }, + "off": { + "message": "Off" + }, + "ok": { + "message": "Ok" + }, + "old": { + "message": "Old" + }, + "onAllVideos": { + "message": "On all videos" + }, + "onSubscribedChannels": { + "message": "On subscribed channels" + }, + "onlyActiveOnYoutube": { + "message": "Only active on YouTube" + }, + "onlyOnePlayerInstancePlaying": { + "message": "Only one player instance playing" + }, + "openPopupPlayer": { + "message": "Open video/playlist in a new window" + }, + "orange": { + "message": "Orange" + }, + "os": { + "message": "OS" + }, + "other": { + "message": "Other" + }, + "outline": { + "message": "Outline" + }, + "overlay": { + "message": "Overlay" + }, + "permissions": { + "message": "Permissions" + }, + "pictureInPicture": { + "message": "Picture-in-Picture" + }, + "pink": { + "message": "Pink" + }, + "plain": { + "message": "Plain" + }, + "platform": { + "message": "Platform" + }, + "playAllButton": { + "message": "\"Play all\" button" + }, + "playPause": { + "message": "Play / Pause" + }, + "playbackSpeed": { + "message": "Playback speed" + }, + "player": { + "message": "Player" + }, + "playerColor": { + "message": "Player color" + }, + "playerSize": { + "message": "Player size" + }, + "playlist": { + "message": "Playlist" + }, + "playlists": { + "message": "Playlists" + }, + "popupPlayer": { + "message": "Popup player" + }, + "popupWindowButtons": { + "message": "Add popup Window buttons" + }, + "position": { + "message": "Position" + }, + "pressAnyKeyOrScroll": { + "message": "Press any key or use mouse wheel." + }, + "pressAnyKeyOrUseMouseWheel": { + "message": "Press any key or use mouse wheel" + }, + "previousVideo": { + "message": "Previous video" + }, + "primaryColor": { + "message": "Primary color" + }, + "purple": { + "message": "Purple" + }, + "quality": { + "message": "Quality" + }, + "raised": { + "message": "Raised" + }, + "ram": { + "message": "RAM" + }, + "rateMe": { + "message": "Rate me" + }, + "rateUs": { + "message": "Rate us" + }, + "red": { + "message": "Red" + }, + "redDislikeButton": { + "message": "Show dislike button in red" + }, + "relatedVideos": { + "message": "Related videos" + }, + "remote": { + "message": "Play on TV" + }, + "removeRelatedSearchResults": { + "message": "Remove related search results" + }, + "repeat": { + "message": "Repeat" + }, + "report": { + "message": "Report" + }, + "reset": { + "message": "Reset" + }, + "resetAllSettings": { + "message": "Reset all settings" + }, + "resetAllShortcuts": { + "message": "Reset all shortcuts" + }, + "reverse": { + "message": "Reverse" + }, + "rotate": { + "message": "Rotate" + }, + "save": { + "message": "Save" + }, + "saveAs": { + "message": "Save as" + }, + "schedule": { + "message": "Schedule" + }, + "screen": { + "message": "Screen" + }, + "screenshot": { + "message": "Screenshot" + }, + "scrollBar": { + "message": "Scroll Bar" + }, + "sd": { + "message": "SD" + }, + "search": { + "message": "Search" + }, + "searchBarOnly": { + "message": "Search bar only" + }, + "seekBackward10Seconds": { + "message": "Seek backward 10 seconds" + }, + "seekForward10Seconds": { + "message": "Seek forward 10 seconds" + }, + "seekNextChapter": { + "message": "Seek Next Chapter" + }, + "seekPreviousChapter": { + "message": "Seek Previous Chapter" + }, + "settings": { + "message": "Settings" + }, + "settingsSuccessfullyImported": { + "message": "Settings successfully imported" + }, + "share": { + "message": "Share" + }, + "shortcuts": { + "message": "Shortcuts" + }, + "showCardsOnMouseHover": { + "message": "Show cards on mouse hover" + }, + "showChannelVideosCount": { + "message": "Show channel videos count" + }, + "showLess": { + "message": "Show less" + }, + "showMore": { + "message": "Show more" + }, + "showRemainingDuration": { + "message": "Show video remaining duration" + }, + "shuffle": { + "message": "Shuffle" + }, + "sidebar": { + "message": "Sidebar" + }, + "spacebar": { + "message": "Spacebar" + }, + "squaredUserImages": { + "message": "Squared user images" + }, + "static": { + "message": "Static" + }, + "statsForNerds": { + "message": "Show Stats for Nerds" + }, + "step": { + "message": "Step" + }, + "stop": { + "message": "Stop" + }, + "style": { + "message": "Style" + }, + "styles": { + "message": "Styles" + }, + "subscribe": { + "message": "Subscribe" + }, + "subscriptions": { + "message": "Subscriptions" + }, + "subtitles": { + "message": "Subtitles" + }, + "sunset": { + "message": "Sunset" + }, + "sunsetToSunrise": { + "message": "Sunset to sunrise" + }, + "systemPeferenceDark": { + "message": "System preference: dark" + }, + "systemPeferenceLight": { + "message": "System preference: light" + }, + "teal": { + "message": "Teal" + }, + "textColor": { + "message": "Text color" + }, + "thanks": { + "message": "Thanks" + }, + "themes": { + "message": "Themes" + }, + "thisWillRemoveAllCookies": { + "message": "This will remove all cookies." + }, + "thisWillRemoveAllWatchedVideos": { + "message": "This will remove all watched videos." + }, + "thisWillRemoveAllYouTubeCookies": { + "message": "This will remove all YouTube cookies" + }, + "thisWillResetAllSettings": { + "message": "This will reset all settings." + }, + "thisWillResetAllShortcuts": { + "message": "This will reset all shortcuts" + }, + "thumbnails": { + "message": "Thumbnails" + }, + "thumbnailsQuality": { + "message": "Thumbnails Quality" + }, + "timeFrom": { + "message": "Time from" + }, + "timeTo": { + "message": "Time to" + }, + "todayAt": { + "message": "Today at" + }, + "toggleAutoplay": { + "message": "Toggle autoplay" + }, + "toggleCards": { + "message": "Toggle cards" + }, + "toggleControls": { + "message": "Toggle player controls" + }, + "topChat": { + "message": "Top chat" + }, + "trackWatchedVideos": { + "message": "Track watched videos" + }, + "trailerAutoplay": { + "message": "Trailer autoplay" + }, + "translations": { + "message": "Translations" + }, + "transparentBackground": { + "message": "Transparent background" + }, + "trending": { + "message": "Trending" + }, + "tryToReloadThePage": { + "message": "Try to reload the page" + }, + "type": { + "message": "Type" + }, + "upNextAutoplay": { + "message": "Up next autoplay" + }, + "use24HourFormat": { + "message": "Use 24-hour format" + }, + "version": { + "message": "Version" + }, + "video": { + "message": "Video" + }, + "videoDescriptionWillBeExpandedToGetNameOfCategory": { + "message": "The video description will be expanded to get the name of the category" + }, + "videoFormats": { + "message": "Video formats" + }, + "videos": { + "message": "Videos" + }, + "viewMode": { + "message": "View Mode" + }, + "volume": { + "message": "Volume" + }, + "watchLater": { + "message": "Watch later" + }, + "watchTime": { + "message": "Watch time" + }, + "whenPaused": { + "message": "When paused" + }, + "whenTabIsChanged": { + "message": "When tab is changed" + }, + "white": { + "message": "White" + }, + "windowColor": { + "message": "Window color" + }, + "windowOpacity": { + "message": "Window opacity" + }, + "yellow": { + "message": "Yellow" + }, + "youtubeHeaderLeft": { + "message": "YouTube Header (left)" + }, + "youtubeHeaderRight": { + "message": "YouTube Header (right)" + }, + "youtubeHomePage": { + "message": "YouTube home page" + }, + "youtubeLanguage": { + "message": "YouTube language" + }, + "youtubeLimitsVideoQualityTo1080pForH264Codec": { + "message": "YouTube limits video quality to 1080p for h.264 codec" + } +} \ No newline at end of file From 2bed5653759a20e529dadf0a38c2851ebd44043b Mon Sep 17 00:00:00 2001 From: "H. Boyd" Date: Sun, 9 Oct 2022 17:33:16 -0500 Subject: [PATCH 0644/1224] Replace es_419 locale using es --- _locales/es_419/messages.json | 598 +++++++++++++++++----------------- 1 file changed, 299 insertions(+), 299 deletions(-) diff --git a/_locales/es_419/messages.json b/_locales/es_419/messages.json index d5017dceb..e54a64526 100644 --- a/_locales/es_419/messages.json +++ b/_locales/es_419/messages.json @@ -12,175 +12,175 @@ "message": "⇧" }, "about": { - "message": "About" + "message": "Acerca de" }, "accept": { - "message": "Accept" + "message": "Aceptar" }, "activate": { - "message": "Activate" + "message": "Activar" }, "activateCaptions": { - "message": "Activate captions" + "message": "Activar subtítulos" }, "activateFullscreen": { - "message": "Activate fullscreen" + "message": "Activar pantalla completa" }, "activated": { - "message": "Activated" + "message": "Activado" }, "activatedFeatures": { - "message": "Activated features" + "message": "Características activadas" }, "activeFeatures": { - "message": "Active features" + "message": "Activar características" }, "addScrollToTop": { - "message": "Add «Scroll to top»" + "message": "Añadir «Volver arriba»" }, "ads": { "message": "Ads" }, "all": { - "message": "All" + "message": "Todo" }, "allow": { - "message": "Allow" + "message": "Permitir" }, "allow60fps": { - "message": "Allow 60fps" + "message": "Permitir 60fps" }, "always": { "message": "Always" }, "alwaysActive": { - "message": "Always active" + "message": "Siempre activo" }, "alwaysShowProgressBar": { - "message": "Always show progress bar" + "message": "Siempre mostrar barra de progreso" }, "amber": { - "message": "Amber" + "message": "Ámbar" }, "analyzer": { - "message": "Analyzer" + "message": "Analizador" }, "appearance": { - "message": "Appearance" + "message": "Apariencia" }, "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" + "message": "¿Estas seguro que deseas exportar la informacion?" }, "areYouSureYouWantToImportTheData": { - "message": "Are you sure you want to import this data?" + "message": "¿Estas seguro que deseas importar la informacion?" }, "audio": { "message": "Audio" }, "audioFormats": { - "message": "Audio formats" + "message": "Formatos de audio" }, "auto": { - "message": "Auto" + "message": "Automático" }, "autoFullscreen": { - "message": "Auto-fullscreen" + "message": "Pantalla completa automática" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pausar al cambiar de pestaña" }, "autoplay": { - "message": "Autoplay" + "message": "Reproducción automática" }, "avoidAv1": { - "message": "Avoid AV1" + "message": "Evitar AV1" }, "avoidAv1Vp8Vp9": { - "message": "Avoid AV1, VP8, VP9" + "message": "Evitar AV1, VP8, VP9" }, "avoidAv1Vp9": { - "message": "Avoid AV1, VP9" + "message": "Evitar AV1, VP9" }, "avoidCpuRenderingWhenPossible": { - "message": "Avoid CPU rendering when possible" + "message": "Evitar renderizar con CPU cuando sea posible" }, "backgroundColor": { - "message": "Background color" + "message": "Color de fondo" }, "backgroundOpacity": { - "message": "Background opacity" + "message": "Opacidad de fondo" }, "backupAndReset": { "message": "Backup & reset" }, "baseOnSystemColorScheme": { - "message": "Base on system color scheme" + "message": "Según tema del sistema" }, "belowPlayer": { - "message": "Below player" + "message": "Debajo del reproductor" }, "black": { - "message": "Black" + "message": "Negro" }, "blacklist": { - "message": "Blacklist" + "message": "Lista negra" }, "blockAll": { - "message": "Block all" + "message": "Bloquear todo" }, "blockAv1": { - "message": "Block AV1" + "message": "Bloquear AV1" }, "blockH264": { - "message": "Block H.264" + "message": "Bloquear H.264" }, "blockMusic": { - "message": "Block music" + "message": "Bloquear musica" }, "blockVp8": { - "message": "Block VP8" + "message": "Bloquear VP8" }, "blockVp9": { - "message": "Block VP9" + "message": "Bloquear VP9" }, "blue": { - "message": "Blue" + "message": "Azul" }, "blueGray": { - "message": "Blue gray" + "message": "Gris azulado" }, "bluelight": { - "message": "Bluelight" + "message": "Luz azul" }, "brown": { - "message": "Brown" + "message": "Marrón" }, "browser": { - "message": "Browser" + "message": "Navegador" }, "browserVersion": { - "message": "Browser version" + "message": "Version del navegador" }, "bubbles": { - "message": "Bubbles" + "message": "Burbujas" }, "bug": { - "message": "Bug" + "message": "Error (Bug)" }, "buttons": { - "message": "Buttons" + "message": "Botones" }, "cancel": { - "message": "Cancel" + "message": "Cancelar" }, "categories": { - "message": "Categories" + "message": "Categorías" }, "channel": { - "message": "Channel" + "message": "Canal" }, "channels": { - "message": "Channels" + "message": "Canales" }, "characterEdgeStyle": { "message": "Character edge style" @@ -189,130 +189,130 @@ "message": "Clip" }, "clipboard": { - "message": "Clipboard" + "message": "Portapapeles" }, "codecH264": { - "message": "Codec h.264" + "message": "Códec h.264" }, "codecs": { "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Compactar sección de suscripciones" }, "collapsed": { - "message": "Collapsed" + "message": "Compacto" }, "comments": { - "message": "Comments" + "message": "Comentarios" }, "confirmationBeforeClosing": { - "message": "Confirmation before closing" + "message": "Confirmar antes de cerrar" }, "cookies": { "message": "Cookies" }, "cores": { - "message": "Cores" + "message": "Núcleos" }, "cropChapterTitles": { - "message": "Crop chapter titles" + "message": "Recortar título de capítulos" }, "custom": { "message": "Custom" }, "customCss": { - "message": "Custom CSS" + "message": "CSS personalizado" }, "customJs": { - "message": "Custom JS" + "message": "JS personalizado" }, "customMiniPlayer": { - "message": "Custom Mini-Player" + "message": "Mini-Reproductor personalizado" }, "cyan": { - "message": "Cyan" + "message": "Cian" }, "dark": { - "message": "Dark" + "message": "Oscuro" }, "darkTheme": { - "message": "Dark theme" + "message": "Tema oscuro" }, "dateAndTime": { - "message": "Date & time" + "message": "Fecha y hora" }, "dawn": { - "message": "Dawn" + "message": "Amanecer" }, "decreasePlaybackSpeed": { - "message": "Decrease playback speed" + "message": "Disminuir velocidad de reproducción" }, "decreaseVolume": { - "message": "Decrease volume" + "message": "Bajar volumen" }, "deepOrange": { - "message": "Deep orange" + "message": "Naranja profundo" }, "deepPurple": { - "message": "Deep purple" + "message": "Violeta profundo" }, "default": { "message": "Default" }, "defaultChannelTab": { - "message": "Default channel tab" + "message": "Pestaña del canal por defecto" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Contenido del pais por defecto" }, "deleteWatchedVideos": { - "message": "Delete watched videos" + "message": "Eliminar videos vistos" }, "deleteYoutubeCookies": { - "message": "Delete YouTube cookies" + "message": "Borrar cookies de YouTube" }, "depressed": { "message": "Depressed" }, "description": { - "message": "Description" + "message": "Descripcion" }, "description_ext": { "message": "Make YouTube tidy+smart! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "desert": { - "message": "Desert" + "message": "Desierto" }, "details": { - "message": "Details" + "message": "Detalles" }, "developerOptions": { - "message": "Developer options" + "message": "Opciones de desarrollador" }, "device": { - "message": "Device" + "message": "Dispositivo" }, "dim": { - "message": "Dim" + "message": "Oscuro" }, "disabled": { - "message": "Disabled" + "message": "Desactivado" }, "dislike": { "message": "Dislike" }, "doNotChange": { - "message": "Don't change" + "message": "No cambiar" }, "donate": { - "message": "Donate" + "message": "Donar" }, "download": { "message": "Download" }, "draggable": { - "message": "Draggable" + "message": "Arrastrable" }, "dropShadow": { "message": "Drop shadow" @@ -324,73 +324,73 @@ "message": "Email" }, "empty": { - "message": "Empty" + "message": "Vacío" }, "enabled": { - "message": "Enabled" + "message": "Activado" }, "enabledForced": { - "message": "Enabled (forced)" + "message": "Activado (forzado)" }, "expanded": { - "message": "Expanded" + "message": "Expandido" }, "exportSettings": { - "message": "Export settings" + "message": "Exportar configuración" }, "extension": { - "message": "Extension" + "message": "Extensión" }, "file": { - "message": "File" + "message": "Archivo" }, "filters": { - "message": "Filters" + "message": "Filtros" }, "fitToWindow": { - "message": "Fit to window" + "message": "Ajustar a la ventana" }, "flash": { "message": "Flash" }, "font": { - "message": "Font" + "message": "Fuente" }, "fontColor": { - "message": "Font color" + "message": "Color de fuente" }, "fontFamily": { - "message": "Font family" + "message": "Tipografia de fuente" }, "fontOpacity": { - "message": "Font opacity" + "message": "Opacidad de fuente" }, "fontSize": { - "message": "Font size" + "message": "Tamaño de fuente" }, "footer": { - "message": "Footer" + "message": "Pie de pagina" }, "forceSDR": { - "message": "Force SDR" + "message": "Forzar SDR" }, "forcedPlayVideoFromTheBeginning": { - "message": "Force video to play from the beginning" + "message": "Forzar la reproduccion del video desde el inicio" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forzar velocidad de reproducción" }, "forcedTheaterMode": { - "message": "Forced theater mode" + "message": "Forzar modo teatro" }, "forcedVolume": { - "message": "Forced volume" + "message": "Forzar volumen" }, "foundABug": { - "message": "Found a bug?" + "message": "¿Encontraste un error (bug)?" }, "fullWindow": { - "message": "Full window" + "message": "Pantalla completa" }, "general": { "message": "General" @@ -402,7 +402,7 @@ "message": "GitHub" }, "goToSearchBox": { - "message": "Go to search box" + "message": "Ir a la barra de búsqueda" }, "googleApiKey": { "message": "Google API key" @@ -411,247 +411,247 @@ "message": "GPU" }, "green": { - "message": "Green" + "message": "Verde" }, "hd": { "message": "HD" }, "hdThumbnail": { - "message": "HD thumbnail" + "message": "Miniatura HD" }, "header": { - "message": "Header" + "message": "Encabezado" }, "hidden": { - "message": "Hidden" + "message": "Oculto" }, "hiddenOnVideoPage": { - "message": "Hidden on video page" + "message": "Oculto en la página de video" }, "hideAnimatedThumbnails": { - "message": "Hide animated thumbnails" + "message": "Ocultar miniaturas animadas" }, "hideAnnotations": { - "message": "Hide annotations" + "message": "Ocultar anotaciones" }, "hideButtonLabel": { "message": "Hide Button Label" }, "hideCards": { - "message": "Hide cards" + "message": "Ocultar tarjetas" }, "hideCountryCode": { - "message": "Hide country code" + "message": "Ocultar código de país" }, "hideDate": { - "message": "Hide date" + "message": "Ocultar fecha" }, "hideDetailButton": { "message": "Hide Detail Button" }, "hideDetails": { - "message": "Hide details" + "message": "Ocultar detalles" }, "hideEndscreen": { - "message": "Hide endscreen" + "message": "Ocultar pantalla final" }, "hideFeaturedContent": { - "message": "Hide featured content" + "message": "Ocultar contenido destacado" }, "hideFooter": { - "message": "Hide footer" + "message": "Ocultar pie de página" }, "hideGradientBottom": { - "message": "Hide shadow around player-bar" + "message": "Ocultar parte inferior degradada" }, "hidePlayerControlsBar": { - "message": "Hide player controls bar" + "message": "Ocultar la barra del reproductor" }, "hidePlayerControlsBarButtons": { - "message": "Hide player controls buttons" + "message": "Ocultar los controles de la barra del reproductor" }, "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" + "message": "Ocultar opciones de control del reproductor" }, "hidePlaylist": { - "message": "Hide playlist" + "message": "Ocultar playlist" }, "hideRightButtons": { - "message": "Hide right buttons" + "message": "Ocultar botones de la derecha" }, "hideScrollForDetails": { - "message": "Hide «Scroll for details»" + "message": "Ocultar «Desliza hacia abajo para ver más detalles»" }, "hideSkipOverlay": { - "message": "Hide 5 second skip animation" + "message": "Hide Skip Overlay" }, "hideThumbnailOverlay": { - "message": "Hide buttons on thumbnails" + "message": "Hide thumbnail overlay" }, "hideThumbnails": { - "message": "Hide thumbnails" + "message": "Ocultar miniaturas" }, "hideViewsCount": { - "message": "Hide views count" + "message": "Ocultar contador de visitas" }, "hideVoiceSearchButton": { - "message": "Hide voice search button" + "message": "Ocultar boton de busqueda por voz" }, "high": { - "message": "High" + "message": "Alto" }, "history": { - "message": "History" + "message": "Historial" }, "home": { - "message": "Home" + "message": "Inicio" }, "hover": { - "message": "Hover" + "message": "Cursor sobre (hover)" }, "hoverOnVideoPage": { - "message": "Hover on video page" + "message": "Cursor sobre (hover) en página de video" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Hace cuánto tiempo se subió el video" }, "icons": { - "message": "Icons" + "message": "Iconos" }, "iconsOnly": { - "message": "Icons only" + "message": "Solo iconos" }, "importSettings": { - "message": "Import settings" + "message": "Importar configuración" }, "improveLogo": { - "message": "Improve logo" + "message": "Mejorar logo" }, "improvedtubeButtons": { - "message": "ImprovedTube buttons" + "message": "Botones ImprovedTube" }, "improvedtubeIconOnYoutube": { - "message": "ImprovedTube icon on YouTube" + "message": "Icono ImprovedTube en YouTube" }, "improvedtubeLanguage": { - "message": "ImprovedTube language" + "message": "Idioma de ImprovedTube" }, "improvedtubeVersion": { - "message": "ImprovedTube version" + "message": "Version de ImprovedTube" }, "increasePlaybackSpeed": { - "message": "Increase playback speed" + "message": "Aumentar velocidad de reproducción" }, "increaseVolume": { - "message": "Increase volume" + "message": "Subir volumen" }, "indigo": { - "message": "Indigo" + "message": "Índigo" }, "items": { "message": "Items" }, "language": { - "message": "Language" + "message": "Idioma" }, "languages": { - "message": "Languages" + "message": "Idiomas" }, "legacyYoutube": { - "message": "Legacy YouTube" + "message": " YouTube antiguo" }, "library": { - "message": "Library" + "message": "Biblioteca" }, "light": { - "message": "Light" + "message": "Claro" }, "lightBlue": { - "message": "Light blue" + "message": "Azul claro" }, "lightGreen": { - "message": "Light green" + "message": "Verde claro" }, "like": { - "message": "Like" + "message": "Me gusta" }, "likeAndDislike": { "message": "Like and Dislike " }, "liked": { - "message": "Liked" + "message": "Me gusta" }, "lime": { - "message": "Lime" + "message": "Lima" }, "limitPageWidth": { - "message": "Limit page width" + "message": "Limitar ancho de la pagina" }, "list": { - "message": "List" + "message": "Lista" }, "liveChat": { - "message": "Live chat" + "message": "Chat en directo" }, "liveChatType": { - "message": "Live chat type" + "message": "Tipo de chat en directo" }, "location": { - "message": "Location" + "message": "Ubicación" }, "loop": { - "message": "Loop" + "message": "Bucle" }, "loudnessNormalization": { - "message": "Loudness normalization" + "message": "Normalización de volumen" }, "low": { - "message": "Low" + "message": "Bajo" }, "markWatchedVideos": { - "message": "Mark watched videos" + "message": "Marcar videos vistos" }, "medium": { - "message": "Medium" + "message": "Medio" }, "mixer": { - "message": "Mixer" + "message": "Mezclador" }, "more": { "message": "More" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "Mover barra lateral a la izquierda" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Mover miniaturas a la derecha" }, "myColors": { - "message": "My colors" + "message": "Mis colores" }, "name": { - "message": "Name" + "message": "Nombre" }, "nativeMiniPlayer": { - "message": "Native mini player" + "message": "Mini-Reproductor nativo" }, "new": { - "message": "New" + "message": "Nuevo" }, "nextVideo": { - "message": "Next video" + "message": "Siguiente video" }, "night": { - "message": "Night" + "message": "Noche" }, "noActiveFeatures": { - "message": "No active features" + "message": "Sin características activas" }, "noOpenVideoTabs": { - "message": "No open video tabs" + "message": "Sin pestañas de video abiertas" }, "none": { - "message": "None" + "message": "Ninguno" }, "normal": { "message": "Normal" @@ -663,31 +663,31 @@ "message": "Ok" }, "old": { - "message": "Old" + "message": "Viejo" }, "onAllVideos": { - "message": "On all videos" + "message": "En todos los videos" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "En canales suscritos" }, "onlyActiveOnYoutube": { - "message": "Only active on YouTube" + "message": "Solo activo en YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Solo una pestaña reproduciendo" }, "openPopupPlayer": { - "message": "Open video/playlist in a new window" + "message": "Abrir video/lista de reproduccion en una nueva ventana" }, "orange": { - "message": "Orange" + "message": "Naranja" }, "os": { "message": "OS" }, "other": { - "message": "Other" + "message": "Otro" }, "outline": { "message": "Outline" @@ -696,70 +696,70 @@ "message": "Overlay" }, "permissions": { - "message": "Permissions" + "message": "Permisos" }, "pictureInPicture": { - "message": "Picture-in-Picture" + "message": "Imagen en imagen" }, "pink": { - "message": "Pink" + "message": "Rosa" }, "plain": { - "message": "Plain" + "message": "Plano" }, "platform": { - "message": "Platform" + "message": "Plataforma" }, "playAllButton": { - "message": "\"Play all\" button" + "message": "Boton \"Reproducir todo\"" }, "playPause": { - "message": "Play / Pause" + "message": "Reproducir / pausar" }, "playbackSpeed": { - "message": "Playback speed" + "message": "Velocidad de reproducción" }, "player": { - "message": "Player" + "message": "Reproductor" }, "playerColor": { - "message": "Player color" + "message": "Color del reproductor" }, "playerSize": { - "message": "Player size" + "message": "Tamaño del reproductor" }, "playlist": { - "message": "Playlist" + "message": "Lista de reproducción" }, "playlists": { - "message": "Playlists" + "message": "Listas de reproducción" }, "popupPlayer": { - "message": "Popup player" + "message": "Reproductor emergente" }, "popupWindowButtons": { - "message": "Add popup Window buttons" + "message": "popup_window_buttons" }, "position": { - "message": "Position" + "message": "Posición" }, "pressAnyKeyOrScroll": { - "message": "Press any key or use mouse wheel." + "message": "Aprieta una tecla o haz scroll" }, "pressAnyKeyOrUseMouseWheel": { - "message": "Press any key or use mouse wheel" + "message": "Aprieta una tecla o usa la rueda del ratón" }, "previousVideo": { - "message": "Previous video" + "message": "Reproducir video anterior" }, "primaryColor": { - "message": "Primary color" + "message": "Color Primario" }, "purple": { - "message": "Purple" + "message": "Morado" }, "quality": { - "message": "Quality" + "message": "Calidad" }, "raised": { "message": "Raised" @@ -768,205 +768,205 @@ "message": "RAM" }, "rateMe": { - "message": "Rate me" + "message": "Califícame" }, "rateUs": { - "message": "Rate us" + "message": "Califíquenos" }, "red": { - "message": "Red" + "message": "Rojo" }, "redDislikeButton": { - "message": "Show dislike button in red" + "message": "Mostrar el botón de dislike de color rojo" }, "relatedVideos": { - "message": "Related videos" + "message": "Vídeos relacionados" }, "remote": { - "message": "Play on TV" + "message": "Reproducir en el televisor" }, "removeRelatedSearchResults": { - "message": "Remove related search results" + "message": "Quitar resultados relacionados" }, "repeat": { - "message": "Repeat" + "message": "Repetir" }, "report": { "message": "Report" }, "reset": { - "message": "Reset" + "message": "Reiniciar" }, "resetAllSettings": { - "message": "Reset all settings" + "message": "Restablecer todos los ajustes" }, "resetAllShortcuts": { - "message": "Reset all shortcuts" + "message": "Restablecer todos los atajos" }, "reverse": { - "message": "Reverse" + "message": "Revertir" }, "rotate": { - "message": "Rotate" + "message": "Rotar" }, "save": { - "message": "Save" + "message": "Guardar" }, "saveAs": { - "message": "Save as" + "message": "Guardar como" }, "schedule": { - "message": "Schedule" + "message": "Programar" }, "screen": { - "message": "Screen" + "message": "Pantalla" }, "screenshot": { - "message": "Screenshot" + "message": "Captura de pantalla" }, "scrollBar": { - "message": "Scroll Bar" + "message": "Barra de desplazamiento" }, "sd": { "message": "SD" }, "search": { - "message": "Search" + "message": "Búsqueda" }, "searchBarOnly": { - "message": "Search bar only" + "message": "Solo barra de búsqueda" }, "seekBackward10Seconds": { - "message": "Seek backward 10 seconds" + "message": "Retroceder 10 segundos" }, "seekForward10Seconds": { - "message": "Seek forward 10 seconds" + "message": "Adelantar 10 segundos" }, "seekNextChapter": { - "message": "Seek Next Chapter" + "message": "Saltar al siguente capitulo" }, "seekPreviousChapter": { - "message": "Seek Previous Chapter" + "message": "Saltar al capitulo anterior" }, "settings": { - "message": "Settings" + "message": "Ajustes" }, "settingsSuccessfullyImported": { - "message": "Settings successfully imported" + "message": "Ajustes importados correctamente" }, "share": { "message": "Share" }, "shortcuts": { - "message": "Shortcuts" + "message": "Atajos" }, "showCardsOnMouseHover": { - "message": "Show cards on mouse hover" + "message": "Mostrar tarjetas al pasar el ratón" }, "showChannelVideosCount": { - "message": "Show channel videos count" + "message": "Mostrar recuento de videos del canal" }, "showLess": { - "message": "Show less" + "message": "Mostrar menos" }, "showMore": { - "message": "Show more" + "message": "Mostrar mas" }, "showRemainingDuration": { - "message": "Show video remaining duration" + "message": "Mostrar la duración restante del video" }, "shuffle": { - "message": "Shuffle" + "message": "Aleatorio" }, "sidebar": { - "message": "Sidebar" + "message": "Barra lateral" }, "spacebar": { - "message": "Spacebar" + "message": "Espacio" }, "squaredUserImages": { - "message": "Squared user images" + "message": "Fotos de perfil cuadradas" }, "static": { - "message": "Static" + "message": "Estático" }, "statsForNerds": { - "message": "Show Stats for Nerds" + "message": "Mostrar estadísticas para Nerds" }, "step": { - "message": "Step" + "message": "Paso" }, "stop": { "message": "Stop" }, "style": { - "message": "Style" + "message": "Estilo" }, "styles": { - "message": "Styles" + "message": "Estilos" }, "subscribe": { "message": "Subscribe" }, "subscriptions": { - "message": "Subscriptions" + "message": "Suscripciones" }, "subtitles": { - "message": "Subtitles" + "message": "Subtítulos" }, "sunset": { - "message": "Sunset" + "message": "Atardecer" }, "sunsetToSunrise": { - "message": "Sunset to sunrise" + "message": "De atardecer a amanecer" }, "systemPeferenceDark": { - "message": "System preference: dark" + "message": "Preferencia del sistema: Oscuro" }, "systemPeferenceLight": { - "message": "System preference: light" + "message": "Preferencia del sistema: Claro" }, "teal": { - "message": "Teal" + "message": "Verde azulado" }, "textColor": { - "message": "Text color" + "message": "Color del texto" }, "thanks": { "message": "Thanks" }, "themes": { - "message": "Themes" + "message": "Temas" }, "thisWillRemoveAllCookies": { - "message": "This will remove all cookies." + "message": "Esto borrará todas las cookies." }, "thisWillRemoveAllWatchedVideos": { "message": "This will remove all watched videos." }, "thisWillRemoveAllYouTubeCookies": { - "message": "This will remove all YouTube cookies" + "message": "Esto borrará todas las cookies de YouTube" }, "thisWillResetAllSettings": { - "message": "This will reset all settings." + "message": "Esto restablecerá todos los ajustes" }, "thisWillResetAllShortcuts": { - "message": "This will reset all shortcuts" + "message": "Esto restablecerá todos los atajos" }, "thumbnails": { - "message": "Thumbnails" + "message": "Miniaturas" }, "thumbnailsQuality": { - "message": "Thumbnails Quality" + "message": "Calidad de miniaturas" }, "timeFrom": { - "message": "Time from" + "message": "Desde" }, "timeTo": { - "message": "Time to" + "message": "Hasta" }, "todayAt": { - "message": "Today at" + "message": "Hoy a las" }, "toggleAutoplay": { "message": "Toggle autoplay" @@ -975,7 +975,7 @@ "message": "Toggle cards" }, "toggleControls": { - "message": "Toggle player controls" + "message": "Toggle controls" }, "topChat": { "message": "Top chat" @@ -984,40 +984,40 @@ "message": "Track watched videos" }, "trailerAutoplay": { - "message": "Trailer autoplay" + "message": "Reproducción automática de trailer" }, "translations": { - "message": "Translations" + "message": "Traducciones" }, "transparentBackground": { - "message": "Transparent background" + "message": "Fondo transparente" }, "trending": { - "message": "Trending" + "message": "Tendencias" }, "tryToReloadThePage": { - "message": "Try to reload the page" + "message": "Intentar recargar la página" }, "type": { - "message": "Type" + "message": "Tipo" }, "upNextAutoplay": { - "message": "Up next autoplay" + "message": "Siguiente reproducción automática" }, "use24HourFormat": { - "message": "Use 24-hour format" + "message": "Usar formato 24 horas" }, "version": { - "message": "Version" + "message": "Versión" }, "video": { "message": "Video" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "The video description will be expanded to get the name of the category" + "message": "La descripción del video se expandirá para obtener el nombre de la categoría." }, "videoFormats": { - "message": "Video formats" + "message": "Formatos de video" }, "videos": { "message": "Videos" @@ -1026,45 +1026,45 @@ "message": "View Mode" }, "volume": { - "message": "Volume" + "message": "Volumen" }, "watchLater": { - "message": "Watch later" + "message": "Ver más tarde" }, "watchTime": { - "message": "Watch time" + "message": "Visualizaciones" }, "whenPaused": { "message": "When paused" }, "whenTabIsChanged": { - "message": "When tab is changed" + "message": "Al cambiar de pestaña" }, "white": { - "message": "White" + "message": "Blanco" }, "windowColor": { "message": "Window color" }, "windowOpacity": { - "message": "Window opacity" + "message": "Opacidad de la ventana" }, "yellow": { - "message": "Yellow" + "message": "Amarillo" }, "youtubeHeaderLeft": { - "message": "YouTube Header (left)" + "message": "Encabezado YouTube (izq)" }, "youtubeHeaderRight": { - "message": "YouTube Header (right)" + "message": "Encabezado YouTube (der)" }, "youtubeHomePage": { - "message": "YouTube home page" + "message": "Página de inicio de YouTube" }, "youtubeLanguage": { - "message": "YouTube language" + "message": "Idioma de YouTube" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube limits video quality to 1080p for h.264 codec" + "message": "YouTube limita calidad de video a 1080p para el codec h.264" } } \ No newline at end of file From 8528f28036d1bf5a804c16daabf0805c9fe41c46 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Mon, 10 Oct 2022 19:03:17 +0300 Subject: [PATCH 0645/1224] Updated locales --- _locales/am/messages.json | 51 +++++++++++++ _locales/ar/messages.json | 51 +++++++++++++ _locales/bg/messages.json | 51 +++++++++++++ _locales/bn/messages.json | 51 +++++++++++++ _locales/ca/messages.json | 51 +++++++++++++ _locales/cs/messages.json | 51 +++++++++++++ _locales/da/messages.json | 51 +++++++++++++ _locales/de/messages.json | 51 +++++++++++++ _locales/el/messages.json | 51 +++++++++++++ _locales/en/messages.json | 71 +++++++++++++++++-- _locales/es/messages.json | 51 +++++++++++++ _locales/et/messages.json | 51 +++++++++++++ _locales/fa/messages.json | 51 +++++++++++++ _locales/fi/messages.json | 51 +++++++++++++ _locales/fil/messages.json | 51 +++++++++++++ _locales/fr/messages.json | 51 +++++++++++++ _locales/gu/messages.json | 51 +++++++++++++ _locales/he/messages.json | 51 +++++++++++++ _locales/hi/messages.json | 51 +++++++++++++ _locales/hr/messages.json | 51 +++++++++++++ _locales/hu/messages.json | 51 +++++++++++++ _locales/id/messages.json | 51 +++++++++++++ _locales/it/messages.json | 51 +++++++++++++ _locales/ja/messages.json | 51 +++++++++++++ _locales/kn/messages.json | 51 +++++++++++++ _locales/ko/messages.json | 51 +++++++++++++ _locales/lt/messages.json | 51 +++++++++++++ _locales/lv/messages.json | 51 +++++++++++++ _locales/ml/messages.json | 51 +++++++++++++ _locales/mr/messages.json | 51 +++++++++++++ _locales/ms/messages.json | 51 +++++++++++++ _locales/nb_NO/messages.json | 51 +++++++++++++ _locales/nl/messages.json | 51 +++++++++++++ _locales/no/messages.json | 51 +++++++++++++ _locales/pl/messages.json | 53 +++++++++++++- _locales/pt_BR/messages.json | 51 +++++++++++++ _locales/pt_PT/messages.json | 51 +++++++++++++ _locales/ro/messages.json | 51 +++++++++++++ _locales/ru/messages.json | 51 +++++++++++++ _locales/si/messages.json | 51 +++++++++++++ _locales/sk/messages.json | 51 +++++++++++++ _locales/sl/messages.json | 51 +++++++++++++ _locales/sr/messages.json | 51 +++++++++++++ _locales/sv/messages.json | 51 +++++++++++++ _locales/sw/messages.json | 51 +++++++++++++ _locales/ta/messages.json | 51 +++++++++++++ _locales/te/messages.json | 51 +++++++++++++ _locales/th/messages.json | 51 +++++++++++++ _locales/tr/messages.json | 51 +++++++++++++ _locales/uk/messages.json | 51 +++++++++++++ _locales/vi/messages.json | 51 +++++++++++++ _locales/zh_CN/messages.json | 51 +++++++++++++ _locales/zh_TW/messages.json | 51 +++++++++++++ ...tension builder and Browser Stores Updater | 19 ----- 54 files changed, 2717 insertions(+), 27 deletions(-) delete mode 100644 py/Extension builder and Browser Stores Updater diff --git a/_locales/am/messages.json b/_locales/am/messages.json index b41486093..3b0665c05 100644 --- a/_locales/am/messages.json +++ b/_locales/am/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 second skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 2c3b07923..d0d90c95c 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "المحلل" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "المظهر العام" }, @@ -416,6 +419,9 @@ "green": { "message": "أخضر" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -443,6 +449,12 @@ "hideCards": { "message": "إخفاء البطاقات" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -455,6 +467,9 @@ "hideDetails": { "message": "إخفاء التفاصيل" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "إخفاء شاشة النهاية" }, @@ -467,6 +482,9 @@ "hideGradientBottom": { "message": "إخفاء التدرج الأسود السفلي" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -479,15 +497,27 @@ "hidePlaylist": { "message": "إخفاء قائمة التشغيل" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "إخفاء الأزرار اليسرى" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "«إخفاء «التمرير للحصول على التفاصيل" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 second skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -563,6 +593,12 @@ "languages": { "message": "اللغات" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "اليوتيوب القديم" }, @@ -587,6 +623,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "جير" }, @@ -626,6 +665,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -650,6 +692,9 @@ "night": { "message": "ليل" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "لا يوجد ميزات نشطة" }, @@ -881,12 +926,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "عشوائي" }, "sidebar": { "message": "الشريط الجانبي" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "مفتاح المسافة" }, diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json index adb62223f..0d4866397 100644 --- a/_locales/bg/messages.json +++ b/_locales/bg/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 2225f0ac7..c0874e2f8 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "বিশ্লেষক" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "উপস্থিতি" }, @@ -413,6 +416,9 @@ "green": { "message": "সবুজ" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "কার্ড লুকান" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "কান্ট্রি কোড লুকান" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "আড়াল বিস্তারিত" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "এন্ডস্ক্রিন লুকান" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "গ্রেডিয়েন্ট নীচে লুকান" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "প্লেলিস্ট লুকান" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "ডান বোতামগুলি লুকান" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "«বিশদ জন্য স্ক্রোলs» লুকান" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "স্কিপ ওভারলে লুকান" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -557,6 +587,12 @@ "languages": { "message": "ভাষা" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "উত্তরাধিকার ইউটিউব" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "চুন" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "রাত" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "কোনও সক্রিয় বৈশিষ্ট্য নেই" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "ভিডিও অবশিষ্ট সময় দেখান" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "অদলবদল" }, "sidebar": { "message": "সাইডবার" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "স্পেসবার" }, diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json index adb62223f..0d4866397 100644 --- a/_locales/ca/messages.json +++ b/_locales/ca/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json index adb62223f..0d4866397 100644 --- a/_locales/cs/messages.json +++ b/_locales/cs/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/da/messages.json b/_locales/da/messages.json index adb62223f..0d4866397 100644 --- a/_locales/da/messages.json +++ b/_locales/da/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 451667512..ca65d3209 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyse" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Aussehen" }, @@ -413,6 +416,9 @@ "green": { "message": "Grün" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Karten ausblenden" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Ländercode ausblenden" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Details ausblenden" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Endkarten ausblenden (Schlussbildschirme)" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Farbverlauf ausblenden" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Kontrolleiste ausblenden" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Playlists ausblenden" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Rechte Buttons ausblenden" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "„Für Details scrollen“ ausblenden" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Überspringen Overlay ausblenden" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Thumbnail Overlay ausblenden" }, @@ -557,6 +587,12 @@ "languages": { "message": "Sprachen" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Klassiches YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Limette" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Seitenleiste nach links verschieben" }, @@ -644,6 +686,9 @@ "night": { "message": "Nacht" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "Keine aktiven Features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Verbleibende Laufzeit anzeigen" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Zufallswiedergabe" }, "sidebar": { "message": "Seitenleiste" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Leertaste" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index b544f6918..0d430094a 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Αναλυτής" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Εμφάνιση" }, @@ -413,6 +416,9 @@ "green": { "message": "Πράσινο" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Απόκρυψε τις κάρτες" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Απόκρυψε τις λεπτομέρειες" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Απόκρυψε την κάρτα τέλους" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Απόκρυψε το κάτω μέρος της χρωματικής διαβάθμισης" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Απόκρυψε τα playlists" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Απόκρυψε τα κουμπιά στα δεξιά" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Απόκρυψε το «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -557,6 +587,12 @@ "languages": { "message": "Γλώσσες" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Παλιά έκδοση YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Μοσχολέμονο" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Νύχτα" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "Καμία λειτουργία ενεργή" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Τυχαία αναπαραγωγή" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index f6c20baf7..bc176a47f 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -266,6 +269,15 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeedEnable": { + "message": "Enable Default playback speed" + }, + "defaultPlaybackSpeedMenu": { + "message": "Default Playback Speed" + }, + "defaultPlaybackSpeedSet": { + "message": "Set Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -377,11 +389,8 @@ "forcedPlayVideoFromTheBeginning": { "message": "Force video to play from the beginning" }, - "defaultPlaybackSpeedMenu": { - "message": "Default Playback Speed" - }, - "defaultPlaybackSpeedEnable": { - "message": "Enable Default playback speed" + "forcedPlaybackSpeed": { + "message": "Forced playback speed" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -416,6 +425,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -443,6 +455,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -455,6 +473,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -467,6 +488,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -479,15 +503,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 second skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -560,6 +596,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -584,6 +626,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -623,6 +668,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -647,6 +695,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -719,8 +770,8 @@ "playPause": { "message": "Play / Pause" }, - "defaultPlaybackSpeedSet": { - "message": "Set Default Playback Speed" + "playbackSpeed": { + "message": "Playback speed" }, "player": { "message": "Player" @@ -878,12 +929,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index e54a64526..b37898cbe 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analizador" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Apariencia" }, @@ -413,6 +416,9 @@ "green": { "message": "Verde" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Ocultar tarjetas" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Ocultar código de país" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Ocultar detalles" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Ocultar pantalla final" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Ocultar parte inferior degradada" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Ocultar la barra del reproductor" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Ocultar playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Ocultar botones de la derecha" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Ocultar «Desliza hacia abajo para ver más detalles»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -557,6 +587,12 @@ "languages": { "message": "Idiomas" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": " YouTube antiguo" }, @@ -581,6 +617,9 @@ "liked": { "message": "Me gusta" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lima" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Mover barra lateral a la izquierda" }, @@ -644,6 +686,9 @@ "night": { "message": "Noche" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "Sin características activas" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Mostrar la duración restante del video" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Aleatorio" }, "sidebar": { "message": "Barra lateral" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Espacio" }, diff --git a/_locales/et/messages.json b/_locales/et/messages.json index adb62223f..0d4866397 100644 --- a/_locales/et/messages.json +++ b/_locales/et/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/fa/messages.json b/_locales/fa/messages.json index adb62223f..0d4866397 100644 --- a/_locales/fa/messages.json +++ b/_locales/fa/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/fi/messages.json b/_locales/fi/messages.json index adb62223f..0d4866397 100644 --- a/_locales/fi/messages.json +++ b/_locales/fi/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/fil/messages.json b/_locales/fil/messages.json index adb62223f..0d4866397 100644 --- a/_locales/fil/messages.json +++ b/_locales/fil/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index ebc211b90..21f62803f 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyser" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Apparence" }, @@ -413,6 +416,9 @@ "green": { "message": "Vert" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Cacher les cartes" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Cacher les détails" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Cacher l'écran de fin" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Masquer le dégradé du bas" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Cacher la liste de lecture" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Cacher les boutons à droite" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Cacher « Faire défiler pour les détails »" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -557,6 +587,12 @@ "languages": { "message": "Langues" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Ancienne version de Youtube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Citron vert" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Nuit" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "Pas de fonctionalité active" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Aléatoire" }, "sidebar": { "message": "Barre latérale" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Barre d'espace" }, diff --git a/_locales/gu/messages.json b/_locales/gu/messages.json index adb62223f..0d4866397 100644 --- a/_locales/gu/messages.json +++ b/_locales/gu/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/he/messages.json b/_locales/he/messages.json index adb62223f..0d4866397 100644 --- a/_locales/he/messages.json +++ b/_locales/he/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/hi/messages.json b/_locales/hi/messages.json index f4094b165..94ef520b7 100644 --- a/_locales/hi/messages.json +++ b/_locales/hi/messages.json @@ -62,6 +62,9 @@ "analyzer": { "message": "विश्लेषक" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "दिखावट" }, @@ -410,6 +413,9 @@ "green": { "message": "हरा" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -437,6 +443,12 @@ "hideCards": { "message": "पत्ते छिपाओ" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "देश कोड छुपाएं" }, @@ -449,6 +461,9 @@ "hideDetails": { "message": "जानकारी छिपाएँ" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "अंत स्क्रीन छिपाएँ" }, @@ -461,6 +476,9 @@ "hideGradientBottom": { "message": "ग्रेडिएंट बॉटम छुपाएं" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -473,15 +491,27 @@ "hidePlaylist": { "message": "प्लेलिस्ट छिपाएं" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "दाएं बटन छुपाएं" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "छिपाएँ «विवरण के लिए स्क्रॉल»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "स्किप ओवरले छुपाएं" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -554,6 +584,12 @@ "languages": { "message": "बोली" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "विरासत यूट्यूब" }, @@ -578,6 +614,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "पीला हरा रंग" }, @@ -617,6 +656,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -641,6 +683,9 @@ "night": { "message": "रात" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "कोई सक्रिय सुविधाएँ नहीं" }, @@ -869,12 +914,18 @@ "showRemainingDuration": { "message": "वीडियो की बची हुई अवधि दिखाएं" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "मिश्रण" }, "sidebar": { "message": "साइडबार" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "स्पेस बार" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index d78522b81..81f98e14c 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analizator" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Izgled" }, @@ -413,6 +416,9 @@ "green": { "message": "Zelena" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Sakrij kartice" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Sakrij detalje" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Sakrij završni zaslon" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Sakrij sjenu oko trake playera" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Sakrij kontrole playera" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Sakrij popis za reprodukciju" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Sakrij desne gumbe" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Sakrij «Pomakni za detalje»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Sakrij gumbe na sličicama" }, @@ -557,6 +587,12 @@ "languages": { "message": "Jezici" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Naslijeđeni YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Limeta" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Noć" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "Nema aktivnih značajki" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Nasumično" }, "sidebar": { "message": "Bočna traka" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Tipka razmaka" }, diff --git a/_locales/hu/messages.json b/_locales/hu/messages.json index adb62223f..0d4866397 100644 --- a/_locales/hu/messages.json +++ b/_locales/hu/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index e59771558..7dc9dd0a7 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Pengnalisa" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Tampilan" }, @@ -413,6 +416,9 @@ "green": { "message": "Hijau" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Sembunyikan kartu" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Sembunyikan detail" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Sembunyikan layar akhir" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Sembunyikan Gradient Bagian Bawah" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Sembunyikan daftar putar" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Sembunyikan tombol kanan" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Sembunyikan «gulir untuk detail»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -557,6 +587,12 @@ "languages": { "message": "Bahasa" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "YouTube lama" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Limau" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Malam" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "Tidak ada fitur aktif" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Putar secara acak" }, "sidebar": { "message": "Bilah samping" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Bilah spasi" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 8d2c5407b..135004009 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analizzatore" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Aspetto" }, @@ -413,6 +416,9 @@ "green": { "message": "Verde" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Nascondi tessere di fine video" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Nascondi codice paese" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Nascondi dettagli" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Nascondi finale video" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Nascondi fondo gradiente" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Nascondi barra dei controlli del lettore" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Nascondi scaletta" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Nascondi pulsanti sulla destra" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Nascondi «Scorri per dettagli»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Nascondi \"Salta overlay\"" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Nascondi overlay miniature" }, @@ -557,6 +587,12 @@ "languages": { "message": "Lingue" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "YouTube versione legacy" }, @@ -581,6 +617,9 @@ "liked": { "message": "Piaciuto" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Sposta barra laterale a sinistra" }, @@ -644,6 +686,9 @@ "night": { "message": "Notte" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "Nessuna funzione attivata" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Mostra durata residua del video" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Riproduzione casuale" }, "sidebar": { "message": "Barra laterale" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Barra spaziatrice" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index a644dcfe0..ec09277f6 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "分析" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "外観" }, @@ -413,6 +416,9 @@ "green": { "message": "緑" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "カードを隠す" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "地域コードを隠す" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "詳細を隠す" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "再生終了時の画面を隠す" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "グラデーションの下部を隠す" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "プレーヤーのコントロールバーを隠す" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "再生リストを隠す" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "右ボタンを隠す" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "\"スクロールして詳細を表示\" を隠す" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "スキップオーバーレイを隠す" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "サムネイルオーバーレイを隠す" }, @@ -557,6 +587,12 @@ "languages": { "message": "言語" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "古い YouTube にする" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "ライム" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "サイドバーを左に移動" }, @@ -644,6 +686,9 @@ "night": { "message": "夜" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "有効化された機能がありません" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "動画の残り時間を表示する" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "シャッフル" }, "sidebar": { "message": "サイドバー" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "スペースキー" }, diff --git a/_locales/kn/messages.json b/_locales/kn/messages.json index adb62223f..0d4866397 100644 --- a/_locales/kn/messages.json +++ b/_locales/kn/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index ea57dd5d5..a1ad52ede 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "분석" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "외관" }, @@ -413,6 +416,9 @@ "green": { "message": "초록" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "카드 숨기기" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "국가코드 숨기기" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "상세설명 숨기기" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "종료후 화면 숨기기" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "그라데이션 맨 아래로 숨기기" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "재생 목록 숨기기" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "오른쪽 버튼 숨기기" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "«스크롤 하여 자세한 설명» 숨기기" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "\"오버레이 건너뛰기\" 숨기기" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -557,6 +587,12 @@ "languages": { "message": "언어" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "레거시 유튜브" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "라임" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "저녘" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "활성 기능 없음" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "셔플" }, "sidebar": { "message": "사이드바" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "스페이스바" }, diff --git a/_locales/lt/messages.json b/_locales/lt/messages.json index adb62223f..0d4866397 100644 --- a/_locales/lt/messages.json +++ b/_locales/lt/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/lv/messages.json b/_locales/lv/messages.json index adb62223f..0d4866397 100644 --- a/_locales/lv/messages.json +++ b/_locales/lv/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/ml/messages.json b/_locales/ml/messages.json index adb62223f..0d4866397 100644 --- a/_locales/ml/messages.json +++ b/_locales/ml/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/mr/messages.json b/_locales/mr/messages.json index adb62223f..0d4866397 100644 --- a/_locales/mr/messages.json +++ b/_locales/mr/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/ms/messages.json b/_locales/ms/messages.json index adb62223f..0d4866397 100644 --- a/_locales/ms/messages.json +++ b/_locales/ms/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 7fc85f82a..e5e5e822a 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -62,6 +62,9 @@ "analyzer": { "message": "Analysator" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Utseende" }, @@ -410,6 +413,9 @@ "green": { "message": "Grønn" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -437,6 +443,12 @@ "hideCards": { "message": "Skjul kort" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -449,6 +461,9 @@ "hideDetails": { "message": "Skjul detaljer" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Skjul sluttskjerm" }, @@ -461,6 +476,9 @@ "hideGradientBottom": { "message": "Skjul bunn-fargeovergang" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -473,15 +491,27 @@ "hidePlaylist": { "message": "Skjul spilleliste" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Skjul høyre-knapper" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Skjul «Bla for detaljer»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -554,6 +584,12 @@ "languages": { "message": "Språk" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Gammeldags YouTube" }, @@ -578,6 +614,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -617,6 +656,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -641,6 +683,9 @@ "night": { "message": "Natt" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "Ingen aktive funksjoner" }, @@ -869,12 +914,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Tilfeldig rekkefølge" }, "sidebar": { "message": "Sidepanel" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Mellomrom" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 0d8fc9f3d..333cc9f22 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyse" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Uiterlijk" }, @@ -413,6 +416,9 @@ "green": { "message": "Groen" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Verberg kaarten" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Verberg landcode" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Verberg details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Verberg eindscherm" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Verberg Gradient Onderkant" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Verberg afspeelbalk" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Verberg afspeellijst" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Verberg knoppen rechterkant" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Verberg «Scrollen voor meer details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Verberg knop voor overslaan omslag" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Verberg miniatuurafbeeldingen omslag" }, @@ -557,6 +587,12 @@ "languages": { "message": "Talen" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Klassieke YouTube-uiterlijk" }, @@ -581,6 +617,9 @@ "liked": { "message": "Leuk gevonden" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Limoen" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Verplaats zijbalk naar links" }, @@ -644,6 +686,9 @@ "night": { "message": "Nacht" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "Geen actieve functies" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Laat resterende afspeelduur zien" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Willekeurig" }, "sidebar": { "message": "Zijbalk" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spatiebalk" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 4fad1c7f9..010be5442 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analysator" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Utseende" }, @@ -413,6 +416,9 @@ "green": { "message": "Grønn" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Skjul kort" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Skjul detaljer" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Skjul sluttskjerm" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Skjul spilleliste" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Skjul høyre knapper" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Skjul «Bla for detaljer»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -557,6 +587,12 @@ "languages": { "message": "Språk" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Natt" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "Ingen aktive funksjoner" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Tilfeldig rekkefølge" }, "sidebar": { "message": "Sidepanel" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Mellomrom" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 8f31ef111..035244bd0 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analizator" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Wygląd" }, @@ -413,6 +416,9 @@ "green": { "message": "Zielony" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Ukryj karty" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Ukryj kod kraju" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Ukryj szczegóły" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Ukryj ekran końcowy" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Ukryj cień dookoła paska odtwarzania" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Ukryj pasek sterowania odtwarzaczem" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Ukryj playliste" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Ukryj przyciski po prawej" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Ukryj «Przewiń do szczegółów»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Ukryj nakładkę pomijania" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Ukryj przyciski na miniaturach" }, @@ -557,6 +587,12 @@ "languages": { "message": "Języki" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Stara wersja YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Polubione" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Limonkowy" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Przenieś panel boczny na lewo" }, @@ -644,6 +686,9 @@ "night": { "message": "Noc" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "Brak aktywnych funkcji" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Pokaż pozostały czas trwania filmu" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Losowo" }, "sidebar": { "message": "Panel boczny" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacja" }, @@ -1067,4 +1118,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube ogranicza jakość wideo do 1080p przy kodeku h.264" } -} +} \ No newline at end of file diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 5f4ad7d40..1ae4fab55 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analisador" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Aparência" }, @@ -413,6 +416,9 @@ "green": { "message": "Verde" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Ocultar cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Ocultar código do país" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Ocultar detalhes" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Ocultar tela final" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Ocultar sombra ao redor da barra do player" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Ocultar a barra de controles do player" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Ocultar playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Ocultar botões à direita" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Ocultar «Rolar para ver detalhes»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 second skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Ocultar botões nas miniaturas" }, @@ -557,6 +587,12 @@ "languages": { "message": "Idiomas" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "YouTube Antigo" }, @@ -581,6 +617,9 @@ "liked": { "message": "Avaliado" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Verde Limão" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Mover barra lateral para esquerda" }, @@ -644,6 +686,9 @@ "night": { "message": "Noite" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "Sem recursos ativos" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Mostrar duração restante do vídeo" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Aleatório" }, "sidebar": { "message": "Painel Lateral" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Espaço" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 8036afd83..51a561317 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analisador" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Aparência" }, @@ -413,6 +416,9 @@ "green": { "message": "Verde" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Esconder cartas" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Esconder detalhes" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Esconder ecãn final" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide Gradient Bottom" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Esconder lista de reprodução" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Esconder botões do lado direito" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Esconder «Rodar para detalhes»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -557,6 +587,12 @@ "languages": { "message": "Linguagens" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "YouTube antigo" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Limão" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Noite" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "Sem opções ativas" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Misturar" }, "sidebar": { "message": "Barra lateral" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Barra de espaços" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index d87929fa7..41417d7d0 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analizator" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Aparențe" }, @@ -413,6 +416,9 @@ "green": { "message": "Verde" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Ascunde cardurile" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Ascunde detaliile" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Ascunde ecranul de final" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Ascunde Gradient Bottom" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Ascundeți bara de control al jucătorului" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Ascunde playlistul" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Ascunde butoanele din dreapta" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Ascunde «Derulează pentru detalii»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -557,6 +587,12 @@ "languages": { "message": "Limbi" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "YouTube vechi" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Noapte" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "Nici o caracteristică activată" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Amestecă" }, "sidebar": { "message": "Bara laterală" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Bara de spațiu" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 1ffacd45d..28538f2af 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Анализатор" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Внешний вид" }, @@ -416,6 +419,9 @@ "green": { "message": "Зеленый" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -443,6 +449,12 @@ "hideCards": { "message": "Скрывать карточки" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Скрывать код страны" }, @@ -455,6 +467,9 @@ "hideDetails": { "message": "Скрывать подробную информацию" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Скрывать экран после видео" }, @@ -467,6 +482,9 @@ "hideGradientBottom": { "message": "Скрывать кнопку градиента" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Скрывать панель управления плеером" }, @@ -479,15 +497,27 @@ "hidePlaylist": { "message": "Скрывать плейлисты" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Скрывать кнопки (справа)" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Скрывать «Прокрутите для подробной информации»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Скрывать наложение \"5 секунд\"" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Скрывать наложение на превью" }, @@ -563,6 +593,12 @@ "languages": { "message": "Языки" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Старая версия YouTube" }, @@ -587,6 +623,9 @@ "liked": { "message": "Понравившиеся" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Лайм" }, @@ -626,6 +665,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Сместить боковую панель влево" }, @@ -650,6 +692,9 @@ "night": { "message": "Ночь" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "Нет активных функций" }, @@ -881,12 +926,18 @@ "showRemainingDuration": { "message": "Показать время до конца видео" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Перемешать" }, "sidebar": { "message": "Боковая панель" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Пробел" }, diff --git a/_locales/si/messages.json b/_locales/si/messages.json index a9f516086..cee076e1e 100644 --- a/_locales/si/messages.json +++ b/_locales/si/messages.json @@ -62,6 +62,9 @@ "analyzer": { "message": "විශ්ලේෂක" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "පෙනුම" }, @@ -410,6 +413,9 @@ "green": { "message": "කොළ" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -437,6 +443,12 @@ "hideCards": { "message": "Cards සඟවන්න" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Country code එක හංගන්න" }, @@ -449,6 +461,9 @@ "hideDetails": { "message": "Details හංගන්න" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Endscreen එක හංගන්න" }, @@ -461,6 +476,9 @@ "hideGradientBottom": { "message": "Player-bar එක වටේ තියෙන shadow එක සගවන්න" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Player controls bar එක සඟවන්න" }, @@ -473,15 +491,27 @@ "hidePlaylist": { "message": "Playlist සඟවන්න" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "දකුණු පැත්තෙ තියෙන button සඟවන්න" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "«Scroll for details» සඟවන්න" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "5 seconds skip animation එක සඟවන්න" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Thumbnail මත තිබෙන button සඟවන්න" }, @@ -554,6 +584,12 @@ "languages": { "message": "භාෂාවන්" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -578,6 +614,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -617,6 +656,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Sidebar එක වම් පැත්තට යවන්න" }, @@ -641,6 +683,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "ක්‍රියාකාරීව තිබෙන Features නොමැත" }, @@ -869,12 +914,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle කරන්න" }, "sidebar": { "message": "Sidebar එක" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar එක" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index c13a42f44..2e4f45927 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzátor" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Vzhľad" }, @@ -413,6 +416,9 @@ "green": { "message": "Zelená" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Skryť karty" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Skryť detaily" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Skryť zobrazenie na konci videa" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide Gradient Bottom" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Skryť zoznam videí" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Skryť tlčidlá v pravo" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Skryť «Zarolujte pre detaily»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -557,6 +587,12 @@ "languages": { "message": "Jazyky" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Starý YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Limetková" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Noc" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "Žiadne aktívne fukncie" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Náhodne" }, "sidebar": { "message": "Bočný panel" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Medzera" }, diff --git a/_locales/sl/messages.json b/_locales/sl/messages.json index adb62223f..0d4866397 100644 --- a/_locales/sl/messages.json +++ b/_locales/sl/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json index adb62223f..0d4866397 100644 --- a/_locales/sr/messages.json +++ b/_locales/sr/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index adb62223f..0d4866397 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/sw/messages.json b/_locales/sw/messages.json index adb62223f..0d4866397 100644 --- a/_locales/sw/messages.json +++ b/_locales/sw/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/ta/messages.json b/_locales/ta/messages.json index adb62223f..0d4866397 100644 --- a/_locales/ta/messages.json +++ b/_locales/ta/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/te/messages.json b/_locales/te/messages.json index adb62223f..0d4866397 100644 --- a/_locales/te/messages.json +++ b/_locales/te/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/th/messages.json b/_locales/th/messages.json index adb62223f..0d4866397 100644 --- a/_locales/th/messages.json +++ b/_locales/th/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyzer" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 7363aa534..975af72a7 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analizör" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Görünüm" }, @@ -413,6 +416,9 @@ "green": { "message": "Yeşil" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Kartları gizle" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Ülke kodunu gizle" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Detayları gizle" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Ekran sonunu gizle" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Gradyan Altını Gizle" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Oynatıcı kontrol çubuğunu gizle" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Oynatma Listesi'ni gizle" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Sağ butonları gizle" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "«Ayrıntılar için kaydır» gizle" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Yer Paylaşımını Atla Gizle" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Küçük resim yer paylaşımını gizle" }, @@ -557,6 +587,12 @@ "languages": { "message": "Diller" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Eski YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Beğenildi" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Kenar çubuğunu sola taşı" }, @@ -644,6 +686,9 @@ "night": { "message": "Gece" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "Aktif özellik yok" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Videonun kalan süresini göster" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Karıştır" }, "sidebar": { "message": "Kenar çubuğu" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Ara çubuğu" }, diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json index 7fe6fc60c..b467f5ea3 100644 --- a/_locales/uk/messages.json +++ b/_locales/uk/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Analyser" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Appearance" }, @@ -413,6 +416,9 @@ "green": { "message": "Green" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Hide cards" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Hide country code" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Hide details" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Hide right buttons" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -557,6 +587,12 @@ "languages": { "message": "Languages" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Lime" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "Night" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "No active features" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Shuffle" }, "sidebar": { "message": "Sidebar" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Spacebar" }, diff --git a/_locales/vi/messages.json b/_locales/vi/messages.json index d6cf7a37d..3d4f5686c 100644 --- a/_locales/vi/messages.json +++ b/_locales/vi/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "Bộ phân tích" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "Diện mạo" }, @@ -413,6 +416,9 @@ "green": { "message": "Xanh lục" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "Ẩn thẻ" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "Ẩn mã quốc gia" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "Ẩn chi tiết" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "Ẩn màn hình kết thúc" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "Ẩn bóng xung quanh thanh trình phát" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "Ẩn thanh điều khiển trình phát" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "Ẩn danh sách phát" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "Ẩn các nút bên phải" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "Ẩn «Cuộn để biết chi tiết»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "Ẩn hoạt ảnh bỏ qua 5 giây" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "Ẩn các nút trên hình thu nhỏ" }, @@ -557,6 +587,12 @@ "languages": { "message": "Ngôn ngữ" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "Legacy YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Đã thích" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "Chanh xanh" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Di chuyển thanh bên sang trái" }, @@ -644,6 +686,9 @@ "night": { "message": "Đêm" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "Không có tính năng hoạt động" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Hiển thị thời lượng còn lại của video" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "Xáo trộn" }, "sidebar": { "message": "Thanh bên" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "Phím cách" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 985dac32a..8dfae832b 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "分析仪" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "外观" }, @@ -413,6 +416,9 @@ "green": { "message": "绿色" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "隐藏信息卡片" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "隐藏国家代码" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "隐藏详细信息" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "隐藏结束画面" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "隐藏底部渐变层" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "隐藏播放器控制栏" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "隐藏播放列表" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "隐藏右侧按钮" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "隐藏 «滚动至详细信息»" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "隐藏跳过叠加" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "隐藏缩略图上的按钮" }, @@ -557,6 +587,12 @@ "languages": { "message": "语言" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "旧版 YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "石灰色" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "Move sidebar left" }, @@ -644,6 +686,9 @@ "night": { "message": "夜色" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "没有已启用的功能" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "Show video remaining duration" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "随机" }, "sidebar": { "message": "侧边栏" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "空格" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index fffa8f557..5c85fcc5c 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -65,6 +65,9 @@ "analyzer": { "message": "觀看紀錄" }, + "animations": { + "message": "Animations" + }, "appearance": { "message": "外觀" }, @@ -413,6 +416,9 @@ "green": { "message": "綠色" }, + "hardwareInformation": { + "message": "Hardware information" + }, "hd": { "message": "HD" }, @@ -440,6 +446,12 @@ "hideCards": { "message": "隱藏資訊卡" }, + "hideCategories": { + "message": "Hide categories" + }, + "hideClipButton": { + "message": "Hide clip button" + }, "hideCountryCode": { "message": "隱藏國家代號" }, @@ -452,6 +464,9 @@ "hideDetails": { "message": "隱藏細節" }, + "hideDownloadButton": { + "message": "Hide download button" + }, "hideEndscreen": { "message": "隱藏結束畫面" }, @@ -464,6 +479,9 @@ "hideGradientBottom": { "message": "隱藏底部漸層圖層" }, + "hideMoreButton": { + "message": "Hide more button" + }, "hidePlayerControlsBar": { "message": "隱藏播放器控制欄" }, @@ -476,15 +494,27 @@ "hidePlaylist": { "message": "隱藏播放清單" }, + "hideReportButton": { + "message": "Hide report button" + }, "hideRightButtons": { "message": "隱藏右側按鈕" }, + "hideSaveButton": { + "message": "Hide save button" + }, "hideScrollForDetails": { "message": "隱藏「向下捲動即可查看詳情」" }, + "hideShareButton": { + "message": "Hide share button" + }, "hideSkipOverlay": { "message": "隱藏「跳至區段」按鈕" }, + "hideThanksButton": { + "message": "Hide thanks button" + }, "hideThumbnailOverlay": { "message": "隱藏縮圖上的按鈕" }, @@ -557,6 +587,12 @@ "languages": { "message": "語言" }, + "layerAnimationScale": { + "message": "Layer animation scale" + }, + "layout": { + "message": "Layout" + }, "legacyYoutube": { "message": "舊版 YouTube" }, @@ -581,6 +617,9 @@ "liked": { "message": "Liked" }, + "likes": { + "message": "Likes" + }, "lime": { "message": "萊姆色" }, @@ -620,6 +659,9 @@ "more": { "message": "More" }, + "mostViewedChannels": { + "message": "Most viewed channels" + }, "moveSidebarLeft": { "message": "將側邊欄移至右方" }, @@ -644,6 +686,9 @@ "night": { "message": "夜晚" }, + "nightMode": { + "message": "Night mode" + }, "noActiveFeatures": { "message": "無已啟用功能" }, @@ -875,12 +920,18 @@ "showRemainingDuration": { "message": "顯示影片剩餘時間" }, + "showVersion": { + "message": "Show version" + }, "shuffle": { "message": "隨機播放" }, "sidebar": { "message": "側邊欄" }, + "softwareInformation": { + "message": "Software information" + }, "spacebar": { "message": "空白鍵" }, diff --git a/py/Extension builder and Browser Stores Updater b/py/Extension builder and Browser Stores Updater deleted file mode 100644 index 8b385d8c3..000000000 --- a/py/Extension builder and Browser Stores Updater +++ /dev/null @@ -1,19 +0,0 @@ -# ToDo / Required -# EVERY EXTENSION: -# - Edge: doesnt allow chrome update url -# - update urls by browser: https://edge.microsoft.com/extensionwebstorebase/v1/crx , https://clients2.google.com/service/update2/crx - -# - Extention name: Edge&Whale deny ' (Replace with *) + Whale denies '&' (replace with '+') + Opera denies Emoji (delete) - -Microsoft store has a bug/complification with languages https://github.com/code4charity/YouTube-Extension/discussions/966#discussioncomment-963315 - -# - Firefox: remove or comment-out: dynamic innerHtml, where it calls "remote content" (googleapis.com/youtube) - -# - Firefox, Opera: Removing google analytics (or removing from Repo & adding it only for google webstore version?) - -# ImprovedTube: -# - Repo will include m.youtube permission (firefox addons are available on phones), *.youtube.com - +global permission, to help with all videos. - (besides Google Webstore version remains with www.youtube only(by mistake), until we announce that. - -# Version 3.2: Firefox has commented-out // video.parentNode.parentNode.pauseVideo(); (autoplay-bug) From 946e854150b1deeb982e92c79609c839b710f3af Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 11 Oct 2022 20:35:52 +0300 Subject: [PATCH 0646/1224] Updated content-scripts, etc. --- background.js | 320 +- content-scripts.js | 333 -- content-scripts/extension-context/core.js | 325 ++ .../extension-context/functions.js | 17 + content-scripts/extension-context/init.js | 232 + .../appearance/comments/comments.css | 66 + .../appearance/comments/comments.js | 38 + .../appearance/details/details.css | 165 + .../appearance/details/details.js | 10 + .../appearance/footer/footer.css | 13 + .../appearance/header/header.css | 106 + .../appearance/player/player.css | 204 + .../appearance/player/player.js | 10 + .../appearance/sidebar/sidebar.css | 98 + .../appearance/sidebar/sidebar.js | 38 + .../youtube-features/content-styles.css | 1510 +----- .../youtube-features/general/general.css | 382 ++ .../youtube-features/general/general.js | 553 ++ .../night-mode/night-mode.css | 71 + .../youtube-features/night-mode/night-mode.js | 140 + content-scripts/website-context/core.js | 199 + content-scripts/website-context/functions.js | 531 ++ content-scripts/website-context/init.js | 104 + content-scripts/website-context/mutations.js | 22 + .../youtube-features/appearance.js | 344 ++ .../youtube-features/blacklist.js | 175 + .../youtube-features/channel.js | 78 + .../youtube-features/player.js | 1125 ++++ .../youtube-features/playlist.js | 122 + .../youtube-features/settings.js | 284 + .../youtube-features/shortcuts.js | 672 +++ .../youtube-features/themes.js | 79 + manifest.json | 63 +- youtube-scripts.js | 4684 ----------------- 34 files changed, 6421 insertions(+), 6692 deletions(-) delete mode 100644 content-scripts.js create mode 100644 content-scripts/extension-context/core.js create mode 100644 content-scripts/extension-context/functions.js create mode 100644 content-scripts/extension-context/init.js create mode 100644 content-scripts/extension-context/youtube-features/appearance/comments/comments.css create mode 100644 content-scripts/extension-context/youtube-features/appearance/comments/comments.js create mode 100644 content-scripts/extension-context/youtube-features/appearance/details/details.css create mode 100644 content-scripts/extension-context/youtube-features/appearance/details/details.js create mode 100644 content-scripts/extension-context/youtube-features/appearance/footer/footer.css create mode 100644 content-scripts/extension-context/youtube-features/appearance/header/header.css create mode 100644 content-scripts/extension-context/youtube-features/appearance/player/player.css create mode 100644 content-scripts/extension-context/youtube-features/appearance/player/player.js create mode 100644 content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css create mode 100644 content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.js rename content-styles.css => content-scripts/extension-context/youtube-features/content-styles.css (63%) create mode 100644 content-scripts/extension-context/youtube-features/general/general.css create mode 100644 content-scripts/extension-context/youtube-features/general/general.js create mode 100644 content-scripts/extension-context/youtube-features/night-mode/night-mode.css create mode 100644 content-scripts/extension-context/youtube-features/night-mode/night-mode.js create mode 100644 content-scripts/website-context/core.js create mode 100644 content-scripts/website-context/functions.js create mode 100644 content-scripts/website-context/init.js create mode 100644 content-scripts/website-context/mutations.js create mode 100644 content-scripts/website-context/youtube-features/appearance.js create mode 100644 content-scripts/website-context/youtube-features/blacklist.js create mode 100644 content-scripts/website-context/youtube-features/channel.js create mode 100644 content-scripts/website-context/youtube-features/player.js create mode 100644 content-scripts/website-context/youtube-features/playlist.js create mode 100644 content-scripts/website-context/youtube-features/settings.js create mode 100644 content-scripts/website-context/youtube-features/shortcuts.js create mode 100644 content-scripts/website-context/youtube-features/themes.js delete mode 100644 youtube-scripts.js diff --git a/background.js b/background.js index f9dcad4bf..8607ce7a3 100644 --- a/background.js +++ b/background.js @@ -1,59 +1,129 @@ /*-------------------------------------------------------------- >>> BACKGROUND ---------------------------------------------------------------- -# Uninstall URL -# Context menu -# Tab focus/blur -# Migration -# Initialization - # Get items from storage - # Message listener - # Update listener +# Google Analytics +# Locale --------------------------------------------------------------*/ /*-------------------------------------------------------------- -# UNINSTALL URL +# GOOGLE ANALYTICS --------------------------------------------------------------*/ -function uninstallURL() { - chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); +var _gaq = []; + +function googleAnalytics(previous_time) { + var version = chrome.runtime.getManifest().version, + script = document.createElement('script'), + current_time = new Date().getTime(); + + _gaq.push(['_setAccount', 'UA-88354155-1']); + _gaq.push(['_setSessionCookieTimeout', 14400000]); + + if (current_time - (previous_time || 0) >= 86400000) { + _gaq.push([ + '_trackPageview', + '/improvedtube-' + version + '/background', + 'page-loaded' + ]); + + chrome.storage.local.set({ + ga: current_time + }); + } + + script.src = 'https://ssl.google-analytics.com/ga.js'; + + document.body.appendChild(script); } +chrome.storage.local.get(function (items) { + //googleAnalytics(items.ga); +}); + /*-------------------------------------------------------------- -# CONTEXT MENU +# LOCALE --------------------------------------------------------------*/ -function updateContextMenu(locale) { - var items = [ - 'donate', - 'rateMe', - 'GitHub' - ]; - chrome.contextMenus.removeAll(); +function getLocale(language, callback) { + language = language.replace('-', '_'); - for (var i = 0; i < 3; i++) { - var item = items[i]; + fetch('_locales/' + language + '/messages.json').then(function (response) { + if (response.ok) { + response.json().then(callback); + } else { + getLocale('en', callback); + } + }).catch(function () { + getLocale('en', callback); + }); +} - chrome.contextMenus.create({ - id: String(i), - title: locale[item] || item, - contexts: ['browser_action'] - }); + +/*-------------------------------------------------------------- +# CONTEXT MENU +--------------------------------------------------------------*/ + +function updateContextMenu(language) { + if (!language) { + language = chrome.i18n.getUILanguage(); } - chrome.contextMenus.onClicked.addListener(function (info) { - var links = [ - 'https://www.improvedtube.com/donate', - 'https://chrome.google.com/webstore/detail/improve-youtube-video-you/bnomihfieiccainjcjblhegjgglakjdd', - 'https://github.com/code4charity/YouTube-Extension' + getLocale(language, function (response) { + var items = [ + 'donate', + 'rateMe', + 'GitHub' ]; - window.open(links[info.menuItemId]); + chrome.contextMenus.removeAll(); + + for (var i = 0; i < 3; i++) { + var item = items[i], + text = response[item]; + + if (text) { + text = text.message; + } else { + text = item; + } + + chrome.contextMenus.create({ + id: String(i), + title: text, + contexts: ['browser_action'] + }); + } + + chrome.contextMenus.onClicked.addListener(function (info) { + var links = [ + 'https://www.improvedtube.com/donate', + 'https://chrome.google.com/webstore/detail/improve-youtube-video-you/bnomihfieiccainjcjblhegjgglakjdd', + 'https://github.com/code4charity/YouTube-Extension' + ]; + + window.open(links[info.menuItemId]); + }); }); } +chrome.runtime.onInstalled.addListener(function (details) { + chrome.storage.local.get(function (items) { + var language = items.language; + + updateContextMenu(language); + }); +}); + +chrome.storage.onChanged.addListener(function (changes) { + for (var key in changes) { + if (key === 'language') { + updateContextMenu(changes[key].newValue); + } + } +}); + /*-------------------------------------------------------------- # TAB FOCUS/BLUR @@ -118,117 +188,6 @@ chrome.windows.onFocusChanged.addListener(function (windowId) { }); -/*-------------------------------------------------------------- -# MIGRATION ---------------------------------------------------------------*/ - -function migration(items) { - if (items.hd_thumbnails === true) { - items.thumbnails_quality = 'maxresdefault'; - } - - for (var key in items) { - var item = items[key]; - - if (key.indexOf('shortcut') !== -1 && typeof item === 'string') { - try { - item = JSON.parse(item); - - var value = { - alt: item.altKey, - ctrl: item.ctrlKey, - shift: item.shiftKey - }; - - if (item.hasOwnProperty('key') && item.hasOwnProperty('keyCode')) { - value.keys = {}; - - value.keys[item.keyCode] = { - key: item.key - }; - } - - if (item.hasOwnProperty('wheel')) { - value.wheel = item.wheel < 0 ? -1 : 1; - } - - items[key] = value; - } catch (error) { - console.log(error); - } - } - } - - if (items.theme_my_colors === true) { - items.theme = 'my-colors'; - } else if (items.default_dark_theme === true) { - items.theme = 'dark'; - } else if (items.night_theme === true) { - items.theme = 'night'; - } else if (items.dawn_theme === true) { - items.theme = 'dawn'; - } else if (items.sunset_theme === true) { - items.theme = 'sunset'; - } else if (items.desert_theme === true) { - items.theme = 'desert'; - } else if (items.plain_theme === true) { - items.theme = 'plain'; - } else if (items.black_theme === true) { - items.theme = 'black'; - } - - if (typeof items.theme_primary_color === 'string') { - var match = items.theme_primary_color.match(/[0-9.]+/g); - - if (match) { - for (var i = 0, l = match.length; i < l; i++) { - match[i] = parseFloat(match[i]); - } - } - - items.theme_primary_color = match; - } - - if (typeof items.theme_text_color === 'string') { - var match = items.theme_text_color.match(/[0-9.]+/g); - - if (match) { - for (var i = 0, l = match.length; i < l; i++) { - match[i] = parseFloat(match[i]); - } - } - - items.theme_text_color = match; - } - - chrome.storage.local.set(items); - - chrome.storage.local.remove('hd_thumbnails'); - chrome.storage.local.remove('theme_my_colors'); - chrome.storage.local.remove('default_dark_theme'); - chrome.storage.local.remove('night_theme'); - chrome.storage.local.remove('dawn_theme'); - chrome.storage.local.remove('sunset_theme'); - chrome.storage.local.remove('desert_theme'); - chrome.storage.local.remove('plain_theme'); - chrome.storage.local.remove('black_theme'); -} - - -/*-------------------------------------------------------------- -# INITIALIZATION ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# GET ITEMS FROM STORAGE ---------------------------------------------------------------*/ - -chrome.storage.local.get(function (items) { - uninstallURL(); - migration(items); -}); - - /*-------------------------------------------------------------- # MESSAGE LISTENER --------------------------------------------------------------*/ @@ -236,33 +195,7 @@ chrome.storage.local.get(function (items) { chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { var name = request.name; - if (name === 'migration') { - chrome.storage.local.get(function (items) { - try { - migration(items); - } catch (error) {} - - setTimeout(function () { - if (sender.tab) { - sendResponse(sender.tab.id); - } - }, 500); - }); - - return true; - } else if (name === 'only-one-player') { - chrome.tabs.query({}, function (tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - var tab = tabs[i]; - - if (sender.tab.id !== tab.id) { - chrome.tabs.sendMessage(tab.id, { - action: 'pause' - }); - } - } - }); - } else if (name === 'download') { + if (name === 'download') { chrome.permissions.request({ permissions: ['downloads'], origins: ['https://www.youtube.com/*'] @@ -285,36 +218,39 @@ chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { console.error('Permission is not granted.'); } }); - } else if (name === 'export') { - chrome.storage.local.get(function (data) { - chrome.permissions.request({ - permissions: ['downloads'], - origins: ['https://www.youtube.com/*'] - }, function (granted) { - if (granted) { - var blob = new Blob([JSON.stringify(data)], { - type: 'application/octet-stream' - }), - date = new Date(); + } +}); - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: 'improvedtube-' + (date.getMonth() + 1) + '-' + date.getDate() + '-' + date.getFullYear() + '.txt', - saveAs: true +chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) { + var action = message.action || message; + + if (action === 'play') { + chrome.tabs.query({}, function (tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + var tab = tabs[i]; + + if (sender.tab.id !== tab.id) { + chrome.tabs.sendMessage(tab.id, { + action: 'another-video-started-playing' }); } - }); + } + }); + } else if (action === 'options-page-connected') { + sendResponse({ + isTab: sender.hasOwnProperty('tab') + }); + } else if (action === 'tab-connected') { + sendResponse({ + hostname: new URL(sender.url).hostname, + tabId: sender.tab.id }); } }); /*-------------------------------------------------------------- -# UPDATE LISTENER +# UNINSTALL URL --------------------------------------------------------------*/ -chrome.runtime.onInstalled.addListener(function (details) { - chrome.storage.local.get(function (items) { - migration(items); - }); -}); \ No newline at end of file +chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); \ No newline at end of file diff --git a/content-scripts.js b/content-scripts.js deleted file mode 100644 index f62efa606..000000000 --- a/content-scripts.js +++ /dev/null @@ -1,333 +0,0 @@ -/*------------------------------------------------------------------------------ ->>> TABLE OF CONTENTS: --------------------------------------------------------------------------------- -1.0 Camelize -2.0 Attributes -3.0 Injection -4.0 Storage -5.0 Messages -6.0 Initialization -------------------------------------------------------------------------------*/ - -var tabId = null, - storage = {}; - -/*------------------------------------------------------------------------------ -1.0 CAMELIZE -------------------------------------------------------------------------------*/ - -function camelize(string) { - return string.split('-').map(function (element, index) { - if (index === 0) { - return element; - } - - return element[0].toUpperCase() + element.slice(1); - }).join(''); -} - - -/*------------------------------------------------------------------------------ -2.0 ATTRIBUTES -------------------------------------------------------------------------------*/ - -function attributes(items) { - for (var key in items) { - var attribute = key.replace(/_/g, '-'); - - document.documentElement.setAttribute('it-' + attribute, items[key]); - } -} - -function sendMessage(object, callback, name) { - document.documentElement.setAttribute('it-message', JSON.stringify(object) + ' '); - - if (typeof callback === 'function') { - new MutationObserver(function (mutationList) { - for (var i = 0, l = mutationList.length; i < l; i++) { - var mutation = mutationList[i]; - - if (mutation.type === 'attributes') { - if (mutation.attributeName === 'it-response') { - var message = document.documentElement.getAttribute('it-response'); - - try { - message = JSON.parse(message); - } catch (error) {} - - if (object[name]) { - message.tabId = tabId; - - callback(message); - } - - this.disconnect(); - } - } - } - }).observe(document.documentElement, { - attributes: true, - childList: false, - subtree: false - }); - } -} - - -/*------------------------------------------------------------------------------ -3.0 INJECTION -------------------------------------------------------------------------------*/ - -function injectYoutubeScript() { - var script = document.createElement('script'); - - script.src = chrome.runtime.getURL('youtube-scripts.js'); - - document.documentElement.appendChild(script); -} - - -/*------------------------------------------------------------------------------ -4.0 STORAGE LISTENER -------------------------------------------------------------------------------*/ - -chrome.storage.onChanged.addListener(function (changes) { - for (var key in changes) { - var attribute = key.replace(/_/g, '-'), - camelized_key = camelize(attribute), - value = changes[key].newValue; - - storage[key] = value; - - if (camelized_key === 'blacklistActivate') { - camelized_key = 'blacklist'; - } else if (camelized_key === 'playerForcedPlaybackSpeed') { - camelized_key = 'playerPlaybackSpeed'; - } - - document.documentElement.setAttribute('it-' + attribute, value); - - sendMessage({ - 'storage-update': { - key: key, - camelizedKey: camelized_key, - value: value - } - }); - } -}); - - -/*------------------------------------------------------------------------------ -5.0 MESSAGE LISTENER -------------------------------------------------------------------------------*/ - -chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { - if (request.action === 'focus') { - sendMessage({ - focus: true - }); - } else if (request.action === 'blur') { - sendMessage({ - blur: true - }); - } else if (request.action === 'pause') { - sendMessage({ - pause: true - }); - } else if (request.action === 'set-volume') { - sendMessage({ - setVolume: request.value - }); - } else if (request.action === 'set-playback-speed') { - sendMessage({ - setPlaybackSpeed: request.value - }); - } else if (request.action === 'mixer') { - sendMessage({ - mixer: true - }, sendResponse, 'mixer'); - - return true; - } else if (request.action === 'delete-youtube-cookies') { - sendMessage({ - deleteCookies: true - }); - } -}); - - -/*------------------------------------------------------------------------------ -6.0 INITIALIZATION -------------------------------------------------------------------------------*/ - -injectYoutubeScript(); - -chrome.runtime.sendMessage({ - name: 'migration' -}, function (response) { - tabId = response; -}); - -chrome.storage.local.get('youtube_home_page', function (items) { - var option = items.youtube_home_page; - - if (location.pathname === '/') { - if (location.hostname === 'www.youtube.com') { - if ( - option === '/feed/trending' || - option === '/feed/subscriptions' || - option === '/feed/history' || - option === '/playlist?list=WL' || - option === '/playlist?list=LL' || - option === '/feed/library' - ) { - location.replace(option); - - return; - } - } - } -}); - -document.addEventListener('it-init', function () { - chrome.storage.local.get(function (items) { - storage = Object.assign({}, items); - - sendMessage({ - storage - }); - - attributes(storage); - - if (window.matchMedia) { - document.documentElement.dataset.systemColorScheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; - } - }); -}); - -new MutationObserver(function (mutationList) { - for (var i = 0, l = mutationList.length; i < l; i++) { - var mutation = mutationList[i]; - - if (mutation.type === 'attributes') { - if (mutation.attributeName === 'it-message') { - var message = document.documentElement.getAttribute('it-message'); - - try { - message = JSON.parse(message); - } catch (error) {} - - if (message && message.requestOptionsUrl) { - sendMessage({ - responseOptionsUrl: chrome.runtime.getURL('ui/options.html') - }); - } else if (message && message.onlyOnePlayer) { - chrome.runtime.sendMessage({ - name: 'only-one-player' - }); - } - } - } - } -}).observe(document.documentElement, { - attributes: true, - childList: false, - subtree: false -}); - -chrome.runtime.sendMessage({ - enabled: true -}); - -document.addEventListener('ImprovedTubeWatched', function (event) { - if (chrome && chrome.runtime) { - var action = event.detail.action, - id = event.detail.id; - - if (!storage.watched || typeof storage.watched !== 'object') { - storage.watched = {}; - } - - if (action === 'set') { - storage.watched[id] = { - title: event.detail.title - }; - } - - if (action === 'remove') { - delete storage.watched[id]; - } - - chrome.storage.local.set({ - watched: storage.watched - }); - } -}); - -document.addEventListener('ImprovedTubeBlacklist', function (event) { - if (chrome && chrome.runtime) { - var type = event.detail.type, - id = event.detail.id, - title = event.detail.title; - - if (!storage.blacklist || typeof storage.blacklist !== 'object') { - storage.blacklist = {}; - } - - if (type === 'channel') { - if (!storage.blacklist.channels) { - storage.blacklist.channels = {}; - } - - storage.blacklist.channels[id] = { - title: title, - preview: event.detail.preview - }; - } - - if (type === 'video') { - if (!storage.blacklist.videos) { - storage.blacklist.videos = {}; - } - - storage.blacklist.videos[id] = { - title: title - }; - } - - chrome.storage.local.set({ - blacklist: storage.blacklist - }); - } -}); - -document.addEventListener('analyzer', function (event) { - if (storage.analyzer_activation === true) { - var data = event.detail.name, - date = new Date().toDateString(), - hours = new Date().getHours() + ':00'; - - if (!storage.analyzer) { - storage.analyzer = {}; - } - - if (!storage.analyzer[date]) { - storage.analyzer[date] = {}; - } - - if (!storage.analyzer[date][hours]) { - storage.analyzer[date][hours] = {}; - } - - if (!storage.analyzer[date][hours][data]) { - storage.analyzer[date][hours][data] = 0; - } - - storage.analyzer[date][hours][data]++; - - chrome.storage.local.set({ - analyzer: storage.analyzer - }); - } -}); \ No newline at end of file diff --git a/content-scripts/extension-context/core.js b/content-scripts/extension-context/core.js new file mode 100644 index 000000000..86de2a60c --- /dev/null +++ b/content-scripts/extension-context/core.js @@ -0,0 +1,325 @@ +/*-------------------------------------------------------------- +>>> CORE: +---------------------------------------------------------------- +# Global variable +# Camelize +# Events + # On + # Trigger +# Inject +# Messages + # Create element + # Listener + # Send +# Storage + # Get + # Listener + # Load +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# GLOBAL VARIABLE +--------------------------------------------------------------*/ + +var extension = { + domReady: false, + events: { + listeners: {} + }, + features: {}, + functions: {}, + messages: { + queue: [] + }, + ready: false, + storage: { + data: {} + } +}; + + +/*-------------------------------------------------------------- +# CAMELIZE +--------------------------------------------------------------*/ + +extension.camelize = function (string) { + var result = ''; + + for (var i = 0, l = string.length; i < l; i++) { + var character = string[i]; + + if (character === '_' || character === '-') { + i++; + + result += string[i].toUpperCase(); + } else { + result += character; + } + } + + return result; +}; + + +/*-------------------------------------------------------------- +# EVENTS +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# ON +--------------------------------------------------------------*/ + +extension.events.on = function (type, listener, options = {}) { + var listeners = extension.events.listeners; + + if (!listeners[type]) { + listeners[type] = []; + } + + if (options.async === true) { + listener = (function (original) { + return async function () { + return new Promise(original); + }; + })(listener); + } + + if (options.prepend === true) { + listeners[type].unshift(listener); + } else { + listeners[type].push(listener); + } +}; + + +/*-------------------------------------------------------------- +# TRIGGER +--------------------------------------------------------------*/ + +extension.events.trigger = async function (type, data) { + var listeners = extension.events.listeners[type]; + + if (listeners) { + for (var i = 0, l = listeners.length; i < l; i++) { + var listener = listeners[i]; + + if (typeof listener === 'function') { + if (listener instanceof(async function () {}).constructor === true) { + await listener(data); + } else { + listener(data); + } + } + } + } +}; + +/*-------------------------------------------------------------- +# INJECT +---------------------------------------------------------------- + +--------------------------------------------------------------*/ + +extension.inject = function (paths, callback) { + if (paths.length > 0) { + var element, + path = chrome.runtime.getURL(paths[0]); + + if (path.indexOf('.css') !== -1) { + element = document.createElement('link'); + + element.rel = 'stylesheet'; + element.href = path; + } else { + element = document.createElement('script'); + + element.src = path; + } + + element.onload = function () { + paths.shift(); + + extension.inject(paths, callback); + }; + + document.documentElement.appendChild(element); + } else if (callback) { + callback(); + } +}; + +/*extension.inject = function (urls, callback) { + var threads = urls.length; + + for (var i = 0, l = urls.length; i < l; i++) { + var element, + url = chrome.runtime.getURL(urls[i]); + + if (url.indexOf('.css') !== -1) { + element = document.createElement('link'); + + element.rel = 'stylesheet'; + element.href = url; + } else { + element = document.createElement('script'); + + element.src = url; + } + + element.onload = function () { + threads--; + + if (threads === 0) { + callback(); + } + }; + + document.documentElement.appendChild(element); + } +};*/ + + +/*-------------------------------------------------------------- +# MESSAGES +---------------------------------------------------------------- + Designed for messaging between contexts of extension and + website. +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# CREATE ELEMENT +--------------------------------------------------------------*/ + +extension.messages.create = function () { + this.element = document.createElement('div'); + + this.element.id = 'it-messages-from-extension'; + + this.element.style.display = 'none'; + + document.documentElement.appendChild(this.element); +}; + +/*-------------------------------------------------------------- +# LISTENER +--------------------------------------------------------------*/ + +extension.messages.listener = function () { + document.addEventListener('it-message-from-extension--readed', function () { + extension.messages.queue.pop(); + + if (extension.messages.queue.length > 0) { + extension.messages.element.textContent = message; + + document.dispatchEvent(new CustomEvent('it-message-from-extension')); + } + }); +}; + +/*-------------------------------------------------------------- +# SEND +--------------------------------------------------------------*/ + +extension.messages.send = function (message) { + if (typeof message === 'object') { + message = JSON.stringify(message); + } + + this.queue.push(message); + + if (this.queue.length === 1) { + this.element.textContent = message; + + document.dispatchEvent(new CustomEvent('it-message-from-extension')); + } +}; + + +/*-------------------------------------------------------------- +# STORAGE +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# GET +--------------------------------------------------------------*/ + +extension.storage.get = function (key) { + if (key.indexOf('/') === -1) { + return this.data[key]; + } else { + var target = this.data, + path = key.split('/').filter(function (value) { + return value != ''; + }); + + for (var i = 0, l = key.length; i < l; i++) { + var part = keys[i]; + + if (target.hasOwnProperty(part)) { + target = target[part]; + } else { + return undefined; + } + } + } +}; + +/*-------------------------------------------------------------- +# LISTENER +--------------------------------------------------------------*/ + +extension.storage.listener = function () { + chrome.storage.onChanged.addListener(function (changes) { + for (var key in changes) { + var value = changes[key].newValue, + camelized_key = extension.camelize(key); + + extension.storage.data[key] = value; + + document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), value); + + if (typeof extension.features[camelized_key] === 'function') { + extension.features[camelized_key](true); + } + + extension.events.trigger('storage-changed', { + key, + value + }); + + extension.messages.send({ + action: 'storage-changed', + camelizedKey: camelized_key, + key, + value + }); + } + }); +}; + +/*-------------------------------------------------------------- +# LOAD +--------------------------------------------------------------*/ + +extension.storage.load = function (callback) { + chrome.storage.local.get(function (items) { + for (var key in items) { + var value = items[key]; + + extension.storage.data[key] = value; + + document.documentElement.setAttribute('it-' + key.replace(/_/g, '-'), value); + } + + extension.events.trigger('storage-loaded'); + + extension.messages.send({ + action: 'storage-loaded', + storage: items + }); + + if (callback) { + callback(extension.storage.data); + } + }); +}; \ No newline at end of file diff --git a/content-scripts/extension-context/functions.js b/content-scripts/extension-context/functions.js new file mode 100644 index 000000000..a6a40306e --- /dev/null +++ b/content-scripts/extension-context/functions.js @@ -0,0 +1,17 @@ +/*-------------------------------------------------------------- +>>> FUNCTIONS: +---------------------------------------------------------------- +# Get URL parameter +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# GET URL PARAMETER +--------------------------------------------------------------*/ + +extension.functions.getUrlParameter = function (url, parameter) { + var match = url.match(new RegExp('(\\?|\\&)' + parameter + '=[^&]+')); + + if (match) { + return match[0].substr(3); + } +}; \ No newline at end of file diff --git a/content-scripts/extension-context/init.js b/content-scripts/extension-context/init.js new file mode 100644 index 000000000..78eb53851 --- /dev/null +++ b/content-scripts/extension-context/init.js @@ -0,0 +1,232 @@ +/*-------------------------------------------------------------- +>>> INITIALIZATION +--------------------------------------------------------------*/ + +extension.features.youtubeHomePage('init'); + +document.documentElement.setAttribute('it-pathname', location.pathname); + +window.addEventListener('yt-navigate-finish', function () { + document.documentElement.setAttribute('it-pathname', location.pathname); + + extension.features.trackWatchedVideos(); + extension.features.thumbnailsQuality(); +}); + +extension.messages.create(); +extension.messages.listener(); + +extension.events.on('init', function (resolve) { + extension.storage.listener(); + extension.storage.load(function () { + resolve(); + }); +}, { + async: true +}); + +function bodyReady() { + if (extension.ready && extension.domReady) { + extension.features.addScrollToTop(); + extension.features.font(); + } +} + +extension.events.on('init', function () { + extension.features.bluelight(); + extension.features.dim(); + extension.features.youtubeHomePage(); + extension.features.collapseOfSubscriptionSections(); + extension.features.confirmationBeforeClosing(); + extension.features.defaultContentCountry(); + extension.features.popupWindowButtons(); + extension.features.markWatchedVideos(); + extension.features.relatedVideos(); + extension.features.comments(); + + bodyReady(); +}); + +chrome.runtime.sendMessage({ + action: 'tab-connected' +}, function (response) { + if (response) { + extension.tabId = response.tabId; + } +}); + +extension.inject([ + '/content-scripts/website-context/core.js', + '/content-scripts/website-context/functions.js', + '/content-scripts/website-context/youtube-features/appearance.js', + '/content-scripts/website-context/youtube-features/themes.js', + '/content-scripts/website-context/youtube-features/player.js', + '/content-scripts/website-context/youtube-features/playlist.js', + '/content-scripts/website-context/youtube-features/channel.js', + '/content-scripts/website-context/youtube-features/shortcuts.js', + '/content-scripts/website-context/youtube-features/blacklist.js', + '/content-scripts/website-context/youtube-features/settings.js', + '/content-scripts/website-context/init.js', + '/content-scripts/website-context/mutations.js' +], function () { + extension.ready = true; + + extension.events.trigger('init'); +}); + +document.addEventListener('DOMContentLoaded', function () { + extension.domReady = true; + + bodyReady(); +}); + +chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { + if (request.action === 'focus') { + extension.messages.send({ + focus: true + }); + } else if (request.action === 'blur') { + extension.messages.send({ + blur: true + }); + } else if (request.action === 'pause') { + extension.messages.send({ + pause: true + }); + } else if (request.action === 'set-volume') { + extension.messages.send({ + setVolume: request.value + }); + } else if (request.action === 'set-playback-speed') { + extension.messages.send({ + setPlaybackSpeed: request.value + }); + } else if (request.action === 'mixer') { + extension.messages.send({ + mixer: true + }, sendResponse, 'mixer'); + + return true; + } else if (request.action === 'delete-youtube-cookies') { + extension.messages.send({ + deleteCookies: true + }); + } else if (request.action === 'another-video-started-playing') { + extension.features.onlyOnePlayerInstancePlaying(); + } +}); + +document.addEventListener('it-message-from-youtube', function () { + var provider = document.querySelector('#it-messages-from-youtube'); + + if (provider) { + var message = provider.textContent; + + document.dispatchEvent(new CustomEvent('it-message-from-youtube--readed')); + + try { + message = JSON.parse(message); + } catch (error) { + console.log(error); + } + + console.log(message); + + if (message.requestOptionsUrl === true) { + extension.messages.send({ + responseOptionsUrl: chrome.runtime.getURL('options-page/index.html') + }); + } else if (message.onlyOnePlayer === true) { + chrome.runtime.sendMessage({ + name: 'only-one-player' + }); + } else if (message.action === 'analyzer') { + if (extension.storage.data.analyzer_activation === true) { + var data = message.name, + date = new Date().toDateString(), + hours = new Date().getHours() + ':00'; + + if (!extension.storage.data.analyzer) { + extension.storage.data.analyzer = {}; + } + + if (!extension.storage.data.analyzer[date]) { + extension.storage.data.analyzer[date] = {}; + } + + if (!extension.storage.data.analyzer[date][hours]) { + extension.storage.data.analyzer[date][hours] = {}; + } + + if (!extension.storage.data.analyzer[date][hours][data]) { + extension.storage.data.analyzer[date][hours][data] = 0; + } + + extension.storage.data.analyzer[date][hours][data]++; + + chrome.storage.local.set({ + analyzer: extension.storage.data.analyzer + }); + } + } else if (message.action === 'blacklist') { + var type = message.type, + id = message.id, + title = message.title; + + if (!extension.storage.data.blacklist || typeof extension.storage.data.blacklist !== 'object') { + extension.storage.data.blacklist = {}; + } + + if (type === 'channel') { + if (!extension.storage.data.blacklist.channels) { + extension.storage.data.blacklist.channels = {}; + } + + extension.storage.data.blacklist.channels[id] = { + title: title, + preview: message.preview + }; + } + + if (type === 'video') { + if (!extension.storage.data.blacklist.videos) { + extension.storage.data.blacklist.videos = {}; + } + + extension.storage.data.blacklist.videos[id] = { + title: title + }; + } + + chrome.storage.local.set({ + blacklist: extension.storage.data.blacklist + }); + } else if (message.action === 'watched') { + if (!extension.storage.data.watched || typeof extension.storage.data.watched !== 'object') { + extension.storage.data.watched = {}; + } + + if (message.type === 'add') { + extension.storage.data.watched[message.id] = { + title: message.title + }; + } + + if (message.type === 'remove') { + delete extension.storage.data.watched[message.id]; + } + + chrome.storage.local.set({ + watched: extension.storage.data.watched + }); + } + } +}); + +document.addEventListener('it-play', function (event) { + var videos = document.querySelectorAll('video'); + + chrome.runtime.sendMessage({ + action: 'play' + }); +}); \ No newline at end of file diff --git a/content-scripts/extension-context/youtube-features/appearance/comments/comments.css b/content-scripts/extension-context/youtube-features/appearance/comments/comments.css new file mode 100644 index 000000000..aea268a18 --- /dev/null +++ b/content-scripts/extension-context/youtube-features/appearance/comments/comments.css @@ -0,0 +1,66 @@ +/*-------------------------------------------------------------- +>>> COMMENTS: +---------------------------------------------------------------- +# Comments + # Collapsed + # Hidden +# Hide avatars +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# COLLAPSED +--------------------------------------------------------------*/ + +html[it-comments='collapsed'] ytd-comments:not([it-activated]) ytd-comments-header-renderer::after { + content: 'Show more' !important; +} + +html[it-comments='collapsed'] ytd-comments[it-activated] ytd-comments-header-renderer::after { + content: 'Show less' !important; +} + +html[it-comments='collapsed'] ytd-comments ytd-comments-header-renderer::after { + font-family: inherit !important; + font-size: 1.6rem !important; + font-weight: 400 !important; + + display: flex !important; + + width: 100% !important; + height: 48px !important; + margin: 16px 0 0 !important; + + color: var(--yt-spec-text-primary) !important; + border-bottom: 1px solid var(--yt-spec-10-percent-layer) !important; + + justify-content: center !important; + align-items: center !important; +} + +html[it-comments='collapsed'] ytd-comments:not([it-activated]) ytd-item-section-renderer>#spinner-container, +html[it-comments='collapsed'] ytd-comments:not([it-activated]) ytd-item-section-renderer>#contents, +html[it-comments='collapsed'] ytd-comments:not([it-activated]) ytd-item-section-renderer>#continuations { + visibility: hidden !important; + + pointer-events: none !important; +} + + +/*-------------------------------------------------------------- +# HIDDEN +--------------------------------------------------------------*/ + +html[it-comments='hidden'] ytd-comments { + display: none !important; +} + + +/*-------------------------------------------------------------- +# HIDE AVATARS +--------------------------------------------------------------*/ + +html[it-hide-author-avatars='true'] ytd-comments #author-thumbnail, +html[it-hide-author-avatars='true'] ytd-comments #creator-thumbnail, +html[it-hide-author-avatars='true'] ytd-comments #hearted-thumbnail { + display: none !important; +} \ No newline at end of file diff --git a/content-scripts/extension-context/youtube-features/appearance/comments/comments.js b/content-scripts/extension-context/youtube-features/appearance/comments/comments.js new file mode 100644 index 000000000..6b27af5bd --- /dev/null +++ b/content-scripts/extension-context/youtube-features/appearance/comments/comments.js @@ -0,0 +1,38 @@ +/*-------------------------------------------------------------- +>>> COMMENTS: +---------------------------------------------------------------- +# Collapsed +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# COLLAPSED +--------------------------------------------------------------*/ + +extension.features.comments = function (anything) { + if (anything instanceof Event) { + var event = anything; + + if (event.type === 'click') { + var target = event.target; + + if (target.nodeName === 'YTD-COMMENTS-HEADER-RENDERER') { + var rect = target.getBoundingClientRect(); + + if ( + event.clientX - rect.left >= 0 && + event.clientX - rect.left < rect.width && + event.clientY - rect.top + rect.height >= 0 && + rect.top + rect.height - event.clientY < 48 + ) { + document.querySelector('ytd-comments').toggleAttribute('it-activated'); + } + } + } + } else { + if (extension.storage.get('comments') === 'collapsed') { + window.addEventListener('click', this.comments, true); + } else { + window.removeEventListener('click', this.comments, true); + } + } +}; \ No newline at end of file diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/content-scripts/extension-context/youtube-features/appearance/details/details.css new file mode 100644 index 000000000..19e253350 --- /dev/null +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.css @@ -0,0 +1,165 @@ +/*-------------------------------------------------------------- +>>> DETAILS +---------------------------------------------------------------- +# +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# HIDE DETAILS +--------------------------------------------------------------*/ + +html[it-hide-details='true'] ytd-video-primary-info-renderer, +html[it-hide-details='true'] ytd-video-secondary-info-renderer { + display: none !important; +} + + +/*-------------------------------------------------------------- +# HIDE VIEWS COUNT +--------------------------------------------------------------*/ + +html[it-hide-views-count='true'] #info #count, +html[it-hide-views-count='true'] #info #count + #info-strings>#dot { + display: none !important; +} + + +/*-------------------------------------------------------------- +# HIDE DATE +--------------------------------------------------------------*/ + +html[it-hide-date='true'] #info #count + #info-strings>yt-formatted-string, +html[it-hide-date='true'] #info #count + #info-strings>#dot { + display: none !important; +} + + +/*-------------------------------------------------------------- +# LIKES +--------------------------------------------------------------*/ + +html[it-likes='hidden'] #info .top-level-buttons>ytd-toggle-button-renderer:nth-child(1), +html[it-likes='hidden'] #info .top-level-buttons>ytd-toggle-button-renderer:nth-child(2) { + display: none !important; +} + +html[it-likes='icons_only'] #info .top-level-buttons>ytd-toggle-button-renderer:nth-child(1) yt-formatted-string, +html[it-likes='icons_only'] #info .top-level-buttons>ytd-toggle-button-renderer:nth-child(2) yt-formatted-string { + display: none !important; +} + + +/*-------------------------------------------------------------- +# HIDE SHARE BUTTON +--------------------------------------------------------------*/ + +html[it-hide-share-button='true'] #info .top-level-buttons ytd-button-renderer:nth-child(3) { + display: none !important; +} + + +/*-------------------------------------------------------------- +# HIDE DOWNLOAD BUTTON +--------------------------------------------------------------*/ + +html[it-hide-download-button='true'] #info .top-level-buttons ytd-download-button-renderer { + display: none !important; +} + + +/*-------------------------------------------------------------- +# HIDE THANKS BUTTON +--------------------------------------------------------------*/ + +html[it-hide-thanks-button='true'] #info .top-level-buttons ytd-button-renderer#Thanks-button { + display: none !important; +} + + +/*-------------------------------------------------------------- +# HIDE CLIP BUTTON +--------------------------------------------------------------*/ + +html[it-hide-clip-button='true'] #info .top-level-buttons ytd-button-renderer#Clip-button { + display: none !important; +} + + +/*-------------------------------------------------------------- +# HIDE SAVE BUTTON +--------------------------------------------------------------*/ + +html[it-hide-save-button='true'] #info .top-level-buttons ytd-button-renderer:last-child { + display: none !important; +} + + +/*-------------------------------------------------------------- +# HIDE REPORT BUTTON +--------------------------------------------------------------*/ + +html[it-hide-report-button='true'] #info .top-level-buttons ytd-button-renderer#-button { + display: none !important; +} + + +/*-------------------------------------------------------------- +# HIDE MORE BUTTON +--------------------------------------------------------------*/ + +html[it-hide-more-button='true'] #info ytd-menu-renderer>yt-icon-button { + display: none !important; +} + + +/*-------------------------------------------------------------- +# DESCRIPTION +--------------------------------------------------------------*/ + +html[it-description='hidden'] #meta>#meta-contents ytd-expander { + display: none !important; +} + +html[it-description='expanded'] #meta>#meta-contents ytd-expander tp-yt-paper-button { + display: none !important; +} + +html[it-description='expanded'] #meta>#meta-contents ytd-expander>#content { + max-height: none !important; +} + + +/*-------------------------------------------------------------- +# HOW LONG AGO THE VIDEO WAS UPLOADED +--------------------------------------------------------------*/ + +.it-how-long-ago-the-video-was-uploaded { + float: right !important; + + margin-left: 4px !important; + + color: var(--yt-spec-text-secondary) !important; +} + + +/*-------------------------------------------------------------- +# SHOW CHANNEL VIDEOS COUNT +--------------------------------------------------------------*/ + +.it-channel-videos-count { + display: inline-block !important; + + margin-left: 4px !important; + + color: var(--yt-spec-text-secondary) !important; +} + + +/*-------------------------------------------------------------- +# SHOW DISLIKE RED COLOR +--------------------------------------------------------------*/ + +html[it-red-dislike-button='true'] #info .top-level-buttons>ytd-toggle-button-renderer:nth-child(2), +html[it-red-dislike-button='true'] #info .top-level-buttons>ytd-toggle-button-renderer:nth-child(2) yt-formatted-string { + color: #fc0000 !important; +} \ No newline at end of file diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.js b/content-scripts/extension-context/youtube-features/appearance/details/details.js new file mode 100644 index 000000000..9325e9dae --- /dev/null +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.js @@ -0,0 +1,10 @@ +/*-------------------------------------------------------------- +>>> DETAILS: +---------------------------------------------------------------- +# +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# +--------------------------------------------------------------*/ + diff --git a/content-scripts/extension-context/youtube-features/appearance/footer/footer.css b/content-scripts/extension-context/youtube-features/appearance/footer/footer.css new file mode 100644 index 000000000..6adddce18 --- /dev/null +++ b/content-scripts/extension-context/youtube-features/appearance/footer/footer.css @@ -0,0 +1,13 @@ +/*-------------------------------------------------------------- +>>> FOOTER: +---------------------------------------------------------------- +# Hide +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# HIDE +--------------------------------------------------------------*/ + +html[it-hide-footer='true'] ytd-guide-renderer #footer { + display: none !important; +} \ No newline at end of file diff --git a/content-scripts/extension-context/youtube-features/appearance/header/header.css b/content-scripts/extension-context/youtube-features/appearance/header/header.css new file mode 100644 index 000000000..91a3bd0ca --- /dev/null +++ b/content-scripts/extension-context/youtube-features/appearance/header/header.css @@ -0,0 +1,106 @@ +/*-------------------------------------------------------------- +>>> HEADER: +---------------------------------------------------------------- +# Position +# Improve logo +# Hide right buttons +# Hide country code +# Hide voice search button +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# POSITION +--------------------------------------------------------------*/ + +html[it-header-position='hidden'] #masthead, +html[it-header-position='hidden'] #guide-spacer, +html[it-header-position='static'] #guide-spacer, +html[it-header-position^='hidden'][it-pathname='/watch'] #masthead, +html[it-header-position^='hidden'][it-pathname='/watch'] #guide-spacer { + display: none !important; +} + +html[it-header-position='hidden'] #page-manager, +html[it-header-position^='hidden'][it-pathname='/watch'] #page-manager { + margin-top: 0 !important; +} + +html[it-header-position='hover'] #masthead-container, +html[it-header-position^='hover'][it-pathname='/watch'] #masthead-container { + z-index: 9999 !important; + + transition: transform 200ms !important; + transform: translateY(-80%) !important; +} + +html[it-header-position='hover'] #masthead-container:hover, +html[it-header-position^='hover'][it-pathname='/watch'] #masthead-container:hover, +html[it-search-focus='true'] #masthead-container { + transform: translateY(0%) !important; +} + +html[it-header-position='hover'] #guide-spacer, +html[it-header-position='hover'] #page-manager, +html[it-header-position^='hover'][it-pathname='/watch'] #guide-spacer, +html[it-header-position^='hover'][it-pathname='/watch'] #page-manager, +html[it-header-position^='static'] #page-manager { + margin-top: 0 !important; +} + +html[it-header-position^='hidden'] ytd-mini-guide-renderer, +html[it-header-position^='hover'] ytd-mini-guide-renderer { + top: 0 !important; +} + +html[it-header-position='static'] #masthead-container { + position: relative !important; +} + +html[it-header-position^='hover'] #chips-wrapper.ytd-feed-filter-chip-bar-renderer, +html[it-header-position^='hidden'] #chips-wrapper.ytd-feed-filter-chip-bar-renderer, +html[it-header-position='static'] #chips-wrapper.ytd-feed-filter-chip-bar-renderer { + position: inherit !important; +} + + +/*-------------------------------------------------------------- +# IMPROVE LOGO +--------------------------------------------------------------*/ + +html[it-header-improve-logo='true'] ytd-topbar-logo-renderer path[fill='#FF0000'], +html[it-header-improve-logo='true'] ytd-topbar-logo-renderer polygon[fill='#FFFFFF'] { + fill: rgb(40, 40, 40) !important; +} + +html[it-header-improve-logo='true'][dark] ytd-topbar-logo-renderer path[fill='#FF0000'] { + fill: rgb(66, 66, 66) !important; +} + + +/*-------------------------------------------------------------- +# HIDE RIGHT BUTTONS +--------------------------------------------------------------*/ + +html[it-header-hide-right-buttons='true'] #masthead #container #end { + visibility: hidden !important; + + pointer-events: none !important; +} + + +/*-------------------------------------------------------------- +# HIDE COUNTRY CODE +--------------------------------------------------------------*/ + +html[it-header-hide-country-code='true'] #logo #country-code { + display: none !important; +} + + +/*-------------------------------------------------------------- +# HIDE VOICE SEARCH BUTTON +--------------------------------------------------------------*/ + +html[it-hide-voice-search-button='true'] #voice-search-button { + display: none !important; +} \ No newline at end of file diff --git a/content-scripts/extension-context/youtube-features/appearance/player/player.css b/content-scripts/extension-context/youtube-features/appearance/player/player.css new file mode 100644 index 000000000..fdbd6e1ee --- /dev/null +++ b/content-scripts/extension-context/youtube-features/appearance/player/player.css @@ -0,0 +1,204 @@ +/*-------------------------------------------------------------- +>>> PLAYER +---------------------------------------------------------------- +# Hide shadow around player bar +# Always show progress bar +# Transparent background +# Hide annotations +# Hide cards +# Show cards on mouse hover +# Hide endscreen +# Hide "Scroll for details" +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# HIDE SHADOW AROUND PLAYER BAR +--------------------------------------------------------------*/ + +html[it-hide-gradient-bottom='true'] .ytp-gradient-bottom { + display: none; +} + + +/*-------------------------------------------------------------- +# ALWAYS SHOW PROGRESS BAR +--------------------------------------------------------------*/ + +html[it-always-show-progress-bar='true'] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom { + opacity: 1 !important; +} + +html[it-always-show-progress-bar='true'] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-chrome-controls { + opacity: 0 !important; +} + +html[it-always-show-progress-bar='true'] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-progress-bar-container { + bottom: 0 !important; +} + + +/*-------------------------------------------------------------- +# COLOR +--------------------------------------------------------------*/ + +html[it-player-color='pink'] { + --it-player-color: #e91e63; +} + +html[it-player-color='purple'] { + --it-player-color: #9c27b0; +} + +html[it-player-color='deep_purple'] { + --it-player-color: #673ab7; +} + +html[it-player-color='indigo'] { + --it-player-color: #3f51b5; +} + +html[it-player-color='blue'] { + --it-player-color: #1e88e5; +} + +html[it-player-color='light_blue'] { + --it-player-color: #03a9f4; +} + +html[it-player-color='cyan'] { + --it-player-color: #00bcd4; +} + +html[it-player-color='teal'] { + --it-player-color: #009688; +} + +html[it-player-color='green'] { + --it-player-color: #4caf50; +} + +html[it-player-color='light_green'] { + --it-player-color: #8bc34a; +} + +html[it-player-color='lime'] { + --it-player-color: #cddc39; +} + +html[it-player-color='yellow'] { + --it-player-color: #ffeb3b; +} + +html[it-player-color='amber'] { + --it-player-color: #ffc107; +} + +html[it-player-color='orange'] { + --it-player-color: #ff9800; +} + +html[it-player-color='deep_orange'] { + --it-player-color: #ff5722; +} + +html[it-player-color='brown'] { + --it-player-color: #795548; +} + +html[it-player-color='blue_gray'] { + --it-player-color: #607d8b; +} + +html[it-player-color='white'] { + --it-player-color: #fff; +} + +html[it-player-color]:not([it-player-color='red']):not([it-player-color='normal']) .ytp-play-progress, +html[it-player-color]:not([it-player-color='red']):not([it-player-color='normal']) .ytp-scrubber-button, +html[it-player-color]:not([it-player-color='red']):not([it-player-color='normal']) .ytp-menuitem[aria-checked='true'] .ytp-menuitem-toggle-checkbox, +html[it-player-color]:not([it-player-color='red']):not([it-player-color='normal']) .ytp-settings-button.ytp-hd-quality-badge:after { + background-color: var(--it-player-color) !important; +} + +html[it-player-color]:not([it-player-color='red']):not([it-player-color='normal']) .ytp-swatch-color { + color: var(--it-player-color) !important; +} + + +/*-------------------------------------------------------------- +# TRANSPARENT BACKGROUND +--------------------------------------------------------------*/ + +html[it-player-transparent-background='true'] #player-theater-container, +html[it-player-transparent-background='true'] #theater-background, +html[it-player-transparent-background='true'] #player-api, +html[it-player-transparent-background='true'] .player-api, +html[it-player-transparent-background='true'] #movie_player, +html[it-player-transparent-background='true'] #player-container, +html[it-player-transparent-background='true'] #movie_player video { + background-color: transparent !important; +} + + +/*-------------------------------------------------------------- +# HIDE ANNOTATIONS +--------------------------------------------------------------*/ + +html[it-player-hide-annotations='true'] .annotation, +html[it-player-hide-annotations='true'] .annotation-type-text, +html[it-player-hide-annotations='true'] .annotation-shape { + display: none !important; +} + + +/*-------------------------------------------------------------- +# HIDE CARDS +--------------------------------------------------------------*/ + +html[it-player-hide-cards='true'] .ytp-ce-element, +html[it-player-hide-cards='true'] .ytp-ce-video, +html[it-player-hide-cards='true'] .ytp-cards-button, +html[it-player-hide-cards='true'] .ytp-cards-teaser { + display: none !important; +} + + +/*-------------------------------------------------------------- +# SHOW CARDS ON MOUSE HOVER +--------------------------------------------------------------*/ + +html[it-player-show-cards-on-mouse-hover='true'] .html5-video-player:not(:hover) .ytp-ce-element, +html[it-player-show-cards-on-mouse-hover='true'] .html5-video-player:not(:hover) .ytp-ce-video, +html[it-player-show-cards-on-mouse-hover='true'] .html5-video-player:not(:hover) .ytp-cards-button, +html[it-player-show-cards-on-mouse-hover='true'] .html5-video-player:not(:hover) .ytp-cards-teaser { + display: none !important; +} + +html[it-player-show-cards-on-mouse-hover='true'] .html5-video-player:hover .ytp-ce-element, +html[it-player-show-cards-on-mouse-hover='true'] .html5-video-player:hover .ytp-ce-video, +html[it-player-show-cards-on-mouse-hover='true'] .html5-video-player:hover .ytp-cards-button, +html[it-player-show-cards-on-mouse-hover='true'] .html5-video-player:hover .ytp-cards-teaser { + display: block !important; +} + + +/*-------------------------------------------------------------- +# HIDE ENDSCREEN +--------------------------------------------------------------*/ + +html[it-player-hide-endscreen='true'] .html5-endscreen { + display: none !important; +} + + +/*-------------------------------------------------------------- +# HIDE "SCROLL FOR DETAILS" +--------------------------------------------------------------*/ + +html[it-hide-scroll-for-details='true'] button.ytp-fullerscreen-edu-button { + display: none !important; +} + +html[it-hide-scroll-for-details='true'] ytd-app[scrolling_] { + overflow: hidden !important; +} \ No newline at end of file diff --git a/content-scripts/extension-context/youtube-features/appearance/player/player.js b/content-scripts/extension-context/youtube-features/appearance/player/player.js new file mode 100644 index 000000000..319b74a30 --- /dev/null +++ b/content-scripts/extension-context/youtube-features/appearance/player/player.js @@ -0,0 +1,10 @@ +/*-------------------------------------------------------------- +>>> PLAYER +---------------------------------------------------------------- +# +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# +--------------------------------------------------------------*/ + diff --git a/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css b/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css new file mode 100644 index 000000000..e71633061 --- /dev/null +++ b/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css @@ -0,0 +1,98 @@ +/*-------------------------------------------------------------- +>>> SIDEBAR +---------------------------------------------------------------- +# Related videos +# Livechat +# Hide playlist +# Move sidebar left +# Move thumbnails right +# Hide thumbnails +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# RELATED VIDEOS +--------------------------------------------------------------*/ + +html[it-related-videos='hidden'] #related > ytd-watch-next-secondary-results-renderer > #items { + display: none !important; +} + +html[it-related-videos='collapsed'] #related > ytd-watch-next-secondary-results-renderer > #items:not([it-activated])::before { + content: 'Show more' !important; +} + +html[it-related-videos='collapsed'] #related > ytd-watch-next-secondary-results-renderer > #items[it-activated]::before { + content: 'Show less' !important; +} + +html[it-related-videos='collapsed'] #related > ytd-watch-next-secondary-results-renderer > #items::before { + font-family: inherit !important; + font-size: 1.6rem !important; + font-weight: 400 !important; + + display: flex !important; + + width: 100% !important; + height: 48px !important; + margin: 0 !important; + + color: var(--yt-spec-text-primary) !important; + border-bottom: 1px solid var(--yt-spec-10-percent-layer) !important; + + justify-content: center !important; + align-items: center !important; +} + +html[it-related-videos='collapsed'] #related > ytd-watch-next-secondary-results-renderer > #items:not([it-activated]) > *{ + visibility: hidden !important; + + pointer-events: none !important; +} + + +/*-------------------------------------------------------------- +# LIVECHAT +--------------------------------------------------------------*/ + +html[it-livechat='hidden'] ytd-live-chat-frame#chat { + display: none !important; +} + + +/*-------------------------------------------------------------- +# HIDE PLAYLIST +--------------------------------------------------------------*/ + +html[it-hide-playlist='true'] ytd-playlist-panel-renderer#playlist { + display: none !important; +} + + +/*-------------------------------------------------------------- +# MOVE SIDEBAR LEFT +--------------------------------------------------------------*/ + +html[it-sidebar-left='true'] #columns>#primary, +html[it-sidebar-left='true'] #head>#upnext +{ + order: 7 !important; +} + + +/*-------------------------------------------------------------- +# MOVE THUMBNAILS RIGHT +--------------------------------------------------------------*/ + +html[it-thumbnails-right='true'] ytd-watch-next-secondary-results-renderer ytd-thumbnail { + order: 7 !important; +} + + +/*-------------------------------------------------------------- +# HIDE THUMBNAILS +--------------------------------------------------------------*/ + +html[it-thumbnails-hide='true'] ytd-watch-next-secondary-results-renderer ytd-thumbnail, +html[it-thumbnails-hide='true'] ytd-watch-next-secondary-results-renderer ytd-playlist-thumbnail { + display: none !important; +} \ No newline at end of file diff --git a/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.js b/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.js new file mode 100644 index 000000000..e760e4740 --- /dev/null +++ b/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.js @@ -0,0 +1,38 @@ +/*-------------------------------------------------------------- +>>> SIDEBAR +---------------------------------------------------------------- +# Related videos +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# RELATED VIDEOS +--------------------------------------------------------------*/ + +extension.features.relatedVideos = function (anything) { + if (anything instanceof Event) { + var event = anything; + + if (event.type === 'click') { + var target = event.target; + + if (target.id === 'items' && target.parentNode.nodeName === 'YTD-WATCH-NEXT-SECONDARY-RESULTS-RENDERER') { + var rect = target.getBoundingClientRect(); + + if ( + event.clientX - rect.left >= 0 && + event.clientX - rect.left < rect.width && + event.clientY - rect.top >= 0 && + event.clientY - rect.top < 48 + ) { + target.toggleAttribute('it-activated'); + } + } + } + } else { + if (extension.storage.get('related_videos') === 'collapsed') { + window.addEventListener('click', this.relatedVideos, true); + } else { + window.removeEventListener('click', this.relatedVideos, true); + } + } +}; \ No newline at end of file diff --git a/content-styles.css b/content-scripts/extension-context/youtube-features/content-styles.css similarity index 63% rename from content-styles.css rename to content-scripts/extension-context/youtube-features/content-styles.css index c180c8022..650e6e1de 100644 --- a/content-styles.css +++ b/content-scripts/extension-context/youtube-features/content-styles.css @@ -1,61 +1,6 @@ -/*-------------------------------------------------------------- +/*------------------------------------------------------------------------------ >>> TABLE OF CONTENTS: ----------------------------------------------------------------- -1.0 General - 1.1 YouTube home page - 1.2 Collapse of subscription sections - 1.3 Add "Scroll to top" - 1.4 Remove related search results - 1.5 Mark watched videos - 1.6 Limit page width - 1.7 Squared user images - 1.8 Hide animated thumbnails - 1.9 Hide buttons on thumbnails - 1.10 Scroll Bar - 1.11 Popup Window Button -2.0 Appearance - 2.1 Header - 2.1.1 Position - 2.1.2 Improve logo - 2.1.3 Hide right buttons - 2.1.4 Hide country code - 2.1.5 Hide voice search button - 2.2 Player - 2.2.1 Hide annotations - 2.2.2 Hide cards - 2.2.3 Show cards on mouse hover - 2.2.4 Player size - 2.2.5 Player color - 2.2.6 Transparent background - 2.2.7 Hide endscreen - 2.2.8 Hide "Scroll for details" - 2.2.9 Always show progress bar - 2.2.10 Hide Gradient Bottom - 2.2.11 Skip overlay - 2.3 Sidebar - 2.3.1 Livechat - 2.3.2 Hide playlist - 2.3.3 Related videos - 2.3.4 Sidebar Position - 2.3.5 Thumbnails - 2.4 Details - 2.4.1 Hide details - 2.4.2 Hide views count - 2.4.3 Hide date - 2.4.4 Hide like button - 2.4.5 Hide share button - 2.4.6 Hide download button - 2.4.7 Hide thanks button - 2.4.8 Hide clip button - 2.4.9 Hide save button - 2.4.10 Hide report button - 2.4.11 Hide more button - 2.4.12 Description - 2.4.13 How long ago the video was uploaded - 2.4.14 Show channel videos count - 2.4.15 Show dislike button red colour - 2.5 Comments - 2.6 Footer +-------------------------------------------------------------------------------- 3.0 Themes 3.1 Bluelight 3.2 Dim @@ -78,1381 +23,15 @@ 8.0 Settings 8.1 ImprovedTube icon on YouTube 9.0 Blacklist ---------------------------------------------------------------*/ +------------------------------------------------------------------------------*/ -/*-------------------------------------------------------------- -1.0 GENERAL ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -1.1 YOUTUBE HOME PAGE ---------------------------------------------------------------*/ - -html[data-page-type=home][it-youtube-home-page=search], -html[data-page-type=home][it-youtube-home-page=search] app-drawer[opened], -html[data-page-type=home][it-youtube-home-page=search] #appbar-guide-menu { - visibility: hidden; - overflow: hidden; - width: 100vw; - height: 100vh; - pointer-events: none; -} - -html[data-page-type=home][it-youtube-home-page=search] ytd-masthead ytd-searchbox, -html[data-page-type=home][it-youtube-home-page=search] #yt-masthead-content { - position: fixed; - z-index: 99999; - top: 0; - left: 0; - display: flex; - visibility: visible; - width: 100vw; - height: 100vh; - margin: 0; - padding: 0; - pointer-events: all; - background: var(--yt-spec-general-background-a); - justify-content: center; - align-items: center; -} - -html[data-page-type=home][it-youtube-home-page=search] ytd-searchbox>form { - width: 100%; - max-width: 768px; - padding: 16px 32px; -} - -html[data-page-type=home][it-youtube-home-page=search] .gstl_50.sbdd_a { - z-index: 99999; - visibility: visible; - pointer-events: all; -} - - -/*-------------------------------------------------------------- -1.2 COLLAPSE OF SUBSCRIPTION SECTION ---------------------------------------------------------------*/ - -ytd-item-section-renderer .grid-subheader+#contents { - overflow: hidden; -} - -ytd-item-section-renderer.it-section-collapsed .grid-subheader+#contents { - height: 0 !important; -} - -ytd-item-section-renderer .it-button-section-collapse { - margin: none; - padding: none; - cursor: pointer; - color: inherit; - border: none; - background: transparent; -} - -ytd-item-section-renderer .it-button-section-collapse svg { - width: 24px; - height: 24px; - transition: transform 150ms; - pointer-events: none; - fill: var(--yt-spec-icon-inactive); -} - -ytd-item-section-renderer .it-button-section-collapse:hover svg { - fill: var(--yt-spec-icon-active-other); -} - -ytd-item-section-renderer.it-section-collapsed .it-button-section-collapse svg { - transform: rotate(180deg); -} - - -/*-------------------------------------------------------------- -1.3 ADD "SCROLL TO TOP" ---------------------------------------------------------------*/ - -#it-scroll-to-top { - position: fixed; - z-index: 999; - right: 32px; - bottom: 32px; - display: flex; - visibility: hidden; - box-sizing: border-box; - width: 56px; - height: 56px; - cursor: pointer; - transition: background 500ms 250ms, transform 500ms, box-shadow 525ms; - transform: translateY(88px); - pointer-events: none; - opacity: 0; - border-radius: 50%; - background: linear-gradient(135deg, #f8d266, #f17953); - box-shadow: 0 1px 1px 1px rgba(230, 109, 70, .7), 0 3px 5px rgba(0, 0, 0, .35); - justify-content: center; - align-items: center; -} - -html[it-show-scroll-to-top=true] #it-scroll-to-top { - visibility: visible; - transform: translateY(0px); - pointer-events: all; - opacity: 1; -} - -html:not([it-red-popup-theme]) #it-scroll-to-top, -html[it-red-popup-theme=true] #it-scroll-to-top { - background: #f73030; - box-shadow: 0 3px 5px rgba(0, 0, 0, .35); -} - -#it-scroll-to-top>svg { - width: 24px; - fill: #fff; -} - -html[it-show-scroll-to-top=true] #it-scroll-to-top:hover { - transition: background 250ms 125ms, transform 250ms, box-shadow 275ms; - transform: translateY(4px) scale(.975); - box-shadow: 0 5px 5px -3px rgba(0, 0, 0, .2), 0 8px 10px 1px rgba(0, 0, 0, .14), 0 3px 14px 2px rgba(0, 0, 0, .12); -} - - -/*-------------------------------------------------------------- -1.4 REMOVE RELATED SEARCH RESULTS ---------------------------------------------------------------*/ - -html[it-remove-related-search-results=true] ytd-horizontal-card-list-renderer.style-scope.ytd-item-section-renderer, -html[it-remove-related-search-results=true] li>div.feed-item-container.browse-list-item-container.yt-section-hover-container.compact-shelf.shelf-item.branded-page-box, -html[it-remove-related-search-results=true] li>div.search-refinements { - display: none; -} - - -/*-------------------------------------------------------------- -1.5 MARK WATCHED VIDEOS ---------------------------------------------------------------*/ - -.it-mark-watched { - position: absolute; - z-index: 999; - bottom: 4px; - left: 4px; - visibility: hidden; - width: 28px; - height: 28px; - cursor: pointer; - text-align: center; - color: #888; - border-radius: 2px; - background: rgba(0, 0, 0, .8); - font-family: inherit; - border: none; -} - -.it-mark-watched.watched { - color: #fff; -} - -.it-mark-watched::after { - display: flex; - align-items: center; - content: 'Watched'; - text-transform: uppercase; - color: var(--yt-spec-icon-active-other, #fff); - position: absolute; - left: 100%; - top: 0; - height: 28px; - width: 0; - background: rgba(0, 0, 0, 0.8); - overflow: hidden; - transition: width 200ms; - font-weight: 500; - justify-content: center; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; -} - -.it-mark-watched:hover::after { - width: 96px; -} - -.it-mark-watched svg { - position: absolute; - top: 4px; - left: 4px; - width: 20px; - height: 20px; - fill: currentColor; - pointer-events: none; -} - -*:hover>.it-mark-watched { - visibility: visible; -} - -/*-------------------------------------------------------------- -1.6 LIMIT PAGE WIDTH ---------------------------------------------------------------*/ - -html[it-limit-page-width=false] ytd-watch-flexy:not([fullscreen]) #columns.ytd-watch-flexy, -html[it-limit-page-width=false] ytd-watch-flexy:not([fullscreen]) #primary.ytd-watch-flexy { - max-width: 100% !important; -} - -html[it-limit-page-width=false] ytd-watch-flexy:not([fullscreen]) #player-container-outer.ytd-watch-flexy { - max-width: 100% !important; -} - -html[it-limit-page-width=false] ytd-watch-flexy:not([fullscreen]) #player-container-inner.ytd-watch-flexy { - padding-top: calc(var(--ytd-watch-flexy-max-player-height) + 45px) !important; -} - -html[it-limit-page-width=false] ytd-watch-flexy:not([fullscreen]) .html5-video-container { - height: 100% !important; - width: 100% !important; -} - -html[it-limit-page-width=false] ytd-watch-flexy:not([fullscreen]) video { - position: static !important; - left: 0 !important; - top: 0 !important; - width: 100% !important; - height: 100% !important; -} - - -/*-------------------------------------------------------------- -1.7 SQUARED USER IMAGES ---------------------------------------------------------------*/ - -html[it-squared-user-images=true] #avatar.ytd-shelf-renderer, -html[it-squared-user-images=true] yt-img-shadow, -html[it-squared-user-images=true] #yt-masthead-user .yt-masthead-user-icon { - border-radius: unset !important; -} - - -/*-------------------------------------------------------------- -1.8 HIDE ANIMATED THUMBNAILS ---------------------------------------------------------------*/ - -html[it-hide-animated-thumbnails=true] #mouseover-overlay, -html[it-hide-animated-thumbnails=true] .mouseover-play, -html[it-hide-animated-thumbnails=true] .mouseover-img { - visibility: hidden !important; -} - - -/*-------------------------------------------------------------- -1.9 HIDE BUTTONS ON THUMBNAILS ---------------------------------------------------------------*/ - -html[it-hide-thumbnail-overlay=true] #hover-overlays { - display: none -} - - -/*-------------------------------------------------------------- -1.10 Scroll Bar ---------------------------------------------------------------*/ - -html[it-scroll-bar=overlay] body, -html[it-scroll-bar=hidden] body { - overflow-y: overlay; -} - -html[it-scroll-bar=appear] body { - overflow-y: hidden; -} - -html[it-scroll-bar=hidden] ::-webkit-scrollbar { - display: none; -} - -/*-------------------------------------------------------------- -1.11 Popup Window Button ---------------------------------------------------------------*/ - -.it-popup-window { - position: absolute; - z-index: 999; - bottom: 36px; - left: 4px; - visibility: hidden; - width: 28px; - height: 28px; - cursor: pointer; - text-align: center; - color: #888; - border-radius: 2px; - background: rgba(0, 0, 0, .8); - font-family: inherit; - border: none; -} - -.it-popup-window svg { - position: absolute; - top: 4px; - left: 4px; - width: 20px; - height: 20px; - fill: currentColor; - pointer-events: none; -} - -*:hover>.it-popup-window { - visibility: visible; -} - -/*-------------------------------------------------------------- -2.0 APPEARANCE ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -2.1 HEADER ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -2.1.1 POSITION ---------------------------------------------------------------*/ - -html[it-header-position=hidden]:not([it-search-focus=true]) #masthead-container { - transform: translateY(-100%); -} - -html[it-header-position=hidden] tp-yt-app-drawer#guide #guide-spacer, -html[it-header-position=hidden] #masthead-container, -html[it-header-position=hidden] tp-yt-app-drawer:not([opened]) #header ytd-topbar-logo-renderer, -html[it-header-position=hover] tp-yt-app-drawer#guide #guide-spacer, -html[it-header-position=hover] tp-yt-app-drawer:not([opened]) #header ytd-topbar-logo-renderer, -html[it-header-position=static] tp-yt-app-drawer#guide #guide-spacer, -html[it-header-position=static] tp-yt-app-drawer:not([opened]) #header ytd-topbar-logo-renderer, -html[it-header-position=hidden_on_video_page][data-page-type=video] #masthead-container, -html[it-header-position=hidden_on_video_page][data-page-type=video] tp-yt-app-drawer#guide #guide-spacer, -html[it-header-position=hover_on_video_page][data-page-type=video] tp-yt-app-drawer#guide #guide-spacer { - display: none; -} - -html[it-header-position=hover] #masthead-container, -html[it-header-position=hover] tp-yt-app-drawer, -html[it-header-position=hover] ytd-mini-guide-renderer, -html[it-header-position=hover_on_video_page][data-page-type='video'] #masthead-container, -html[it-header-position=hover_on_video_page][data-page-type='video'] tp-yt-app-drawer, -html[it-header-position=hover_on_video_page][data-page-type='video'] ytd-mini-guide-renderer, -html[it-header-position=static] tp-yt-app-drawer, -html[it-header-position=static] ytd-mini-guide-renderer { - z-index: 2147483647 !important; -} - -html[it-header-position=hidden] ytd-page-manager#page-manager, -html[it-header-position=hidden_on_video_page][data-page-type='video'] ytd-page-manager#page-manager, -html[it-header-position=hover] ytd-page-manager#page-manager, -html[it-header-position=hover_on_video_page][data-page-type='video'] ytd-page-manager#page-manager, -html[it-header-position=static] ytd-page-manager#page-manager { - margin-top: 0; -} - -html[it-header-position=hover]:not([it-improvedtube-search=true]) #masthead-container, -html[it-header-position=hover_on_video_page][data-page-type='video']:not([it-improvedtube-search=true]) #masthead-container { - transition: transform 250ms; - transform: translateY(-75%); -} - -html[it-header-position=hover] #masthead-container:hover, -html[it-header-position=hover][it-search-focus=true] #masthead-container, -html[it-header-position=hover_on_video_page][data-page-type='video'] #masthead-container:hover, -html[it-header-position=hover_on_video_page][data-page-type='video'][it-search-focus=true] #masthead-container { - transform: translateY(0%); -} - -html[it-header-position=static] .ytd-app:not([masthead-hidden_]) #masthead-container { - position: relative; - z-index: 999999999999 !important; -} - -html[it-header-position=hover]:not([data-page-type=video]) tp-yt-app-drawer:not([opened]) #header, -html[it-header-position=hidden]:not([data-page-type=video]) tp-yt-app-drawer:not([opened]) #header, -html[it-header-position=static]:not([data-page-type=video]) tp-yt-app-drawer:not([opened]) #header { - position: absolute; - visibility: visible; - left: 240px; - top: 120px; - padding: 0 16px; - background: var(--yt-spec-brand-background-solid); -} - -html[it-header-position=hover] tp-yt-app-drawer #header, -html[it-header-position=hidden] tp-yt-app-drawer #header, -html[it-header-position=static] tp-yt-app-drawer #header { - display: flex !important; -} - -html[it-header-position=hover] #chips-wrapper.ytd-feed-filter-chip-bar-renderer, -html[it-header-position=hidden] #chips-wrapper.ytd-feed-filter-chip-bar-renderer, -html[it-header-position=static] #chips-wrapper.ytd-feed-filter-chip-bar-renderer { - position: inherit; -} - - -/*-------------------------------------------------------------- -2.1.2 IMPROVE LOGO ---------------------------------------------------------------*/ - -html[it-header-improve-logo=true] ytd-topbar-logo-renderer#logo, -html[it-header-improve-logo=true] ytd-topbar-logo-renderer.ytd-app { - filter: grayscale(1); -} - -html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer path[fill*='#FF0000'] { - fill: #282828; -} - -html[it-header-improve-logo=true][dark] g.ytd-topbar-logo-renderer path[fill*='#FF0000'] { - fill: #fff; -} - -html[it-header-improve-logo=true] g.ytd-topbar-logo-renderer polygon[fill*='#FFFFFF'] { - fill: #232323; -} - - -/*-------------------------------------------------------------- -2.1.3 HIDE RIGHT BUTTONS ---------------------------------------------------------------*/ - -html[it-header-hide-right-buttons=true] ytd-masthead#masthead #container #end { - visibility: hidden; - pointer-events: none; -} - - -/*-------------------------------------------------------------- -2.1.4 HIDE COUNTRY CODE ---------------------------------------------------------------*/ - -html[it-header-hide-country-code=true] #logo #country-code { - display: none; -} - - -/*-------------------------------------------------------------- -2.1.5 HIDE VOICE SEARCH BUTTON ---------------------------------------------------------------*/ - -html[it-hide-voice-search-button=true] #voice-search-button { - display: none !important; -} - - -/*-------------------------------------------------------------- -2.2 PLAYER ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -2.2.1 HIDE ANNOTATIONS ---------------------------------------------------------------*/ - -html[it-player-hide-annotations=true] .annotation, -html[it-player-hide-annotations=true] .annotation-type-text, -html[it-player-hide-annotations=true] .annotation-shape { - display: none; -} - - -/*-------------------------------------------------------------- -2.2.2 HIDE CARDS ---------------------------------------------------------------*/ - -html[it-player-hide-cards=true] .ytp-ce-element, -html[it-player-hide-cards=true] .ytp-ce-video, -html[it-player-hide-cards=true] .ytp-cards-button, -html[it-player-hide-cards=true] .ytp-cards-teaser { - display: none; -} - - -/*-------------------------------------------------------------- -2.2.3 SHOW CARDS ON MOUSE HOVER ---------------------------------------------------------------*/ - -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-ce-element, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-ce-video, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-cards-button, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:not(:hover) .ytp-cards-teaser { - display: none; -} - -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-ce-element, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-ce-video, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-cards-button, -html[it-player-show-cards-on-mouse-hover=true] .html5-video-player:hover .ytp-cards-teaser { - display: block; -} - - -/*-------------------------------------------------------------- -2.2.4 PLAYER SIZE ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# VARIABLES ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# HEADER ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# NORMAL ---------------------------------------------------------------*/ - -html[data-page-type=video]:not([it-header-position]) ytd-app, -html[data-page-type=video][it-header-position=normal] ytd-app, -html[data-page-type=video][it-header-position=static] ytd-app { - --it-header-size: 56px; -} - -html[data-page-type=video]:not([it-header-position]) ytd-watch-flexy:not([theater]), -html[data-page-type=video][it-header-position=normal] ytd-watch-flexy:not([theater]), -html[data-page-type=video][it-header-position=static] ytd-watch-flexy:not([theater]) { - --it-header-size: 104px; -} - -html[data-page-type=video]:not([it-header-position]) div#page, -html[data-page-type=video][it-header-position=normal] div#page, -html[data-page-type=video][it-header-position=static] div#page { - --it-header-size: 50px; -} - -html[data-page-type=video]:not([it-header-position]) div#page:not(.watch-wide), -html[data-page-type=video][it-header-position=normal] div#page:not(.watch-wide), -html[data-page-type=video][it-header-position=static] div#page:not(.watch-wide) { - --it-header-size: 70px; -} - - -/*-------------------------------------------------------------- -# HIDDEN ---------------------------------------------------------------*/ - -html[data-page-type=video][it-header-position=hidden], -html[data-page-type=video][it-header-position=hidden_on_video_page] { - --it-header-size: 0px; -} - -html[data-page-type=video][it-header-position=hidden] ytd-watch-flexy:not([theater]), -html[data-page-type=video][it-header-position=hidden_on_video_page] ytd-watch-flexy:not([theater]) { - --it-header-size: 48px; -} - -html[data-page-type=video][it-header-position=hidden] div#page, -html[data-page-type=video][it-header-position=hidden_on_video_page] div#page { - --it-header-size: 0px; -} - -html[data-page-type=video][it-header-position=hidden] div#page:not(.watch-wide), -html[data-page-type=video][it-header-position=hidden_on_video_page] div#page:not(.watch-wide) { - --it-header-size: 20px; -} - - -/*-------------------------------------------------------------- -# HOVER ---------------------------------------------------------------*/ - -html[data-page-type=video][it-header-position=hover], -html[data-page-type=video][it-header-position=hover_on_video_page] { - --it-header-size: 14px; -} - -html[data-page-type=video][it-header-position=hover] ytd-watch-flexy:not([theater]), -html[data-page-type=video][it-header-position=hover_on_video_page] ytd-watch-flexy:not([theater]) { - --it-header-size: 62px; -} - -html[data-page-type=video][it-header-position=hover] div#page, -html[data-page-type=video][it-header-position=hover_on_video_page] div#page { - --it-header-size: 12px; -} - -html[data-page-type=video][it-header-position=hover] div#page:not(.watch-wide), -html[data-page-type=video][it-header-position=hover_on_video_page] div#page:not(.watch-wide) { - --it-header-size: 32px; -} - -html[data-page-type=video][it-header-position=hover] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container, -html[data-page-type=video][it-header-position=hover_on_video_page] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container { - margin-top: 14px; -} - -html[data-page-type=video][it-header-position=hover] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen), -html[data-page-type=video][it-header-position=hover_on_video_page] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen) { - margin-top: 12px; -} - -html[data-page-type=video][it-header-position=hover] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]), -html[data-page-type=video][it-header-position=hover_on_video_page] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) { - margin-top: 14px; -} - - -/*-------------------------------------------------------------- -# FIXED PLAYER SIZE ---------------------------------------------------------------*/ - -html[data-page-type=video][it-player-size='240p'] *, -html[data-page-type=video][it-player-size='360p'] *, -html[data-page-type=video][it-player-size='480p'] *, -html[data-page-type=video][it-player-size='576p'] *, -html[data-page-type=video][it-player-size='720p'] *, -html[data-page-type=video][it-player-size='1080p'] *, -html[data-page-type=video][it-player-size='1440p'] *, -html[data-page-type=video][it-player-size='2160p'] * { - --it-header-size: 0px !important; -} - - -/*-------------------------------------------------------------- -# FULL WINDOW ---------------------------------------------------------------*/ - -html[data-page-type=video][it-player-size='240p'] { - --it-player-size: 240px; -} - -html[data-page-type=video][it-player-size='360p'] { - --it-player-size: 360px; -} - -html[data-page-type=video][it-player-size='480p'] { - --it-player-size: 480px; -} - -html[data-page-type=video][it-player-size='576p'] { - --it-player-size: 576px; -} - -html[data-page-type=video][it-player-size='720p'] { - --it-player-size: 720px; -} - -html[data-page-type=video][it-player-size='1080p'] { - --it-player-size: 1080px; -} - -html[data-page-type=video][it-player-size='1440p'] { - --it-player-size: 1440px; -} - -html[data-page-type=video][it-player-size='2160p'] { - --it-player-size: 2160px; -} - -html[data-page-type=video][it-player-size='full_window'] { - --it-player-size: 100vh; -} - -html[data-page-type=video][it-player-size='full_window'] .ytp-fit-cover-video .html5-main-video { - object-fit: contain !important; -} - -html[data-page-type=video][it-player-size='fit_to_window'] { - --it-player-size: 100vh; -} - -html[data-page-type=video][it-player-size='fit_to_window'] .ytp-fit-cover-video .html5-main-video { - object-fit: contain !important; -} - -/*-------------------------------------------------------------- -# ELEMENTS ---------------------------------------------------------------*/ - -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='custom']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-container-inner { - padding-top: calc(var(--it-player-size) - var(--it-header-size)) !important; -} - -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='custom']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container, -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='custom']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container { - width: auto !important; - height: calc(var(--it-player-size) - var(--it-header-size)) !important; - min-height: auto !important; - max-height: none !important; -} - -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='custom']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player { - background: #000 !important; -} - -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='custom']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-container { - position: absolute !important; - display: flex !important; - width: 100% !important; - height: 100% !important; - justify-content: center !important; - align-items: center !important; -} - -html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='custom']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video { - position: relative !important; - top: 0 !important; - left: 0 !important; - width: auto !important; - max-width: 100% !important; - height: calc(var(--it-player-size) - var(--it-header-size)) !important; -} - - -/*-------------------------------------------------------------- -# FIT TO WINDOW ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# THEATER: ON ---------------------------------------------------------------*/ - -[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container { - height: auto !important; - min-height: 0 !important; - max-height: unset !important; - background: transparent !important; -} - -[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-container { - position: static !important; -} - -[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) ytd-player>#container { - display: flex !important; - justify-content: center !important; - align-items: center !important; -} - -[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) .html5-video-container { - display: flex !important; - justify-content: center !important; - align-items: center !important; -} - -[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) .html5-video-player { - display: table !important; - width: auto !important; -} - -[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) video { - position: static !important; - width: auto !important; - height: calc(var(--it-player-size) - var(--it-header-size)) !important; - max-height: calc(var(--it-player-size) - var(--it-header-size)) !important; -} - - -/*-------------------------------------------------------------- -# THEATER: OFF ---------------------------------------------------------------*/ - -[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container-inner { - padding-top: 0 !important; -} - -[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container { - position: static !important; -} - - -[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) .html5-video-player { - width: auto; - display: table; - margin: auto -} - -[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) video { - position: static !important; - width: 100% !important; - height: calc(var(--it-player-size) - var(--it-header-size)) !important; - max-height: calc(var(--it-player-size) - var(--it-header-size)) !important; -} - - -/*-------------------------------------------------------------- -2.2.5 PLAYER COLOR ---------------------------------------------------------------*/ - -html[it-player-color='pink'] { - --it-player-color: #e91e63; -} - -html[it-player-color='purple'] { - --it-player-color: #9c27b0; -} - -html[it-player-color='deep_purple'] { - --it-player-color: #673ab7; -} - -html[it-player-color='indigo'] { - --it-player-color: #3f51b5; -} - -html[it-player-color='blue'] { - --it-player-color: #1e88e5; -} - -html[it-player-color='light_blue'] { - --it-player-color: #03a9f4; -} - -html[it-player-color='cyan'] { - --it-player-color: #00bcd4; -} - -html[it-player-color='teal'] { - --it-player-color: #009688; -} - -html[it-player-color='green'] { - --it-player-color: #4caf50; -} - -html[it-player-color='light_green'] { - --it-player-color: #8bc34a; -} - -html[it-player-color='lime'] { - --it-player-color: #cddc39; -} - -html[it-player-color='yellow'] { - --it-player-color: #ffeb3b; -} - -html[it-player-color='amber'] { - --it-player-color: #ffc107; -} - -html[it-player-color='orange'] { - --it-player-color: #ff9800; -} - -html[it-player-color='deep_orange'] { - --it-player-color: #ff5722; -} - -html[it-player-color='brown'] { - --it-player-color: #795548; -} - -html[it-player-color='blue_gray'] { - --it-player-color: #607d8b; -} - -html[it-player-color='white'] { - --it-player-color: #fff; -} - -html[it-player-color]:not([it-player-color='red']):not([it-player-color='normal']) .ytp-play-progress, -html[it-player-color]:not([it-player-color='red']):not([it-player-color='normal']) .ytp-scrubber-button, -html[it-player-color]:not([it-player-color='red']):not([it-player-color='normal']) .ytp-menuitem[aria-checked=true] .ytp-menuitem-toggle-checkbox, -html[it-player-color]:not([it-player-color='red']):not([it-player-color='normal']) .ytp-settings-button.ytp-hd-quality-badge:after { - background-color: var(--it-player-color) !important; -} - -html[it-player-color]:not([it-player-color='red']):not([it-player-color='normal']) .ytp-swatch-color { - color: var(--it-player-color) !important; -} - - -/*-------------------------------------------------------------- -2.2.6 TRANSPARENT BACKGROUND ---------------------------------------------------------------*/ - -[it-player-transparent-background=true] #player-theater-container, -[it-player-transparent-background=true] #theater-background, -[it-player-transparent-background=true] #player-api, -[it-player-transparent-background=true] .player-api, -[it-player-transparent-background=true] #movie_player, -[it-player-transparent-background=true] #player-container, -[it-player-transparent-background=true] #movie_player video { - background-color: transparent !important; -} - - -/*-------------------------------------------------------------- -2.2.7 HIDE ENDSCREEN ---------------------------------------------------------------*/ - -html[it-player-hide-endscreen=true] .html5-endscreen { - display: none !important; -} - - -/*-------------------------------------------------------------- -2.2.8 HIDE "SCROLL FOR DETAILS" ---------------------------------------------------------------*/ - -html[it-hide-scroll-for-details=true] button.ytp-fullerscreen-edu-button { - display: none !important; -} - -html[it-hide-scroll-for-details=true] ytd-app[scrolling_] { - overflow: hidden !important; -} - - -/*-------------------------------------------------------------- -2.2.9 ALWAYS SHOW PROGRESS BAR ---------------------------------------------------------------*/ - -html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom { - opacity: 1 !important; -} - -html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-chrome-controls { - opacity: 0 !important; -} - -html[it-always-show-progress-bar=true] .html5-video-player:not(.it-mini-player).ytp-autohide .ytp-chrome-bottom .ytp-progress-bar-container { - bottom: 0 !important; -} - - -/*-------------------------------------------------------------- -2.2.10 Hide Gradient Bottom ---------------------------------------------------------------*/ - -html[it-hide-gradient-bottom=true] .ytp-gradient-bottom { - display: none; -} - - -/*-------------------------------------------------------------- -2.2.11 Skip Overlay ---------------------------------------------------------------*/ - -html[it-player-hide-skip-overlay=true] .ytp-doubletap-ui, -.ytp-doubletap-ui-legacy { - visibility: hidden; -} - - -/*-------------------------------------------------------------- -2.3 SIDEBAR ---------------------------------------------------------------*/ - -ytd-watch-flexy[flexy] #secondary.ytd-watch-flexy { - width: auto !important; - min-width: unset !important; -} - -ytd-live-chat-frame, -div#secondary div#related, -div#secondary div#panels, -div#secondary div#donation-shelf, -div#secondary #playlist { - width: var(--ytd-watch-flexy-sidebar-width); - min-width: var(--ytd-watch-flexy-sidebar-min-width); -} - -/*-------------------------------------------------------------- -2.3.1 LIVECHAT ---------------------------------------------------------------*/ - -html[it-livechat=hidden] ytd-live-chat-frame#chat, -html[it-livechat=hidden] div#watch-sidebar-live-chat { - display: none !important; -} - - -/*-------------------------------------------------------------- -2.3.2 HIDE PLAYLIST ---------------------------------------------------------------*/ - -html[it-hide-playlist=true] ytd-playlist-panel-renderer#playlist, -html[it-hide-playlist=true] div#player-playlist, -html[it-hide-playlist=true] #placeholder-playlist { - position: absolute !important; - width: 0 !important; - height: 0 !important; - pointer-events: none !important; - opacity: 0 !important; -} - - -/*-------------------------------------------------------------- -2.3.3 RELATIVE VIDEOS ---------------------------------------------------------------*/ - -html[it-related-videos=hidden] div#related, -html[it-related-videos=hidden] div#secondary div#panels, -html[it-related-videos=hidden] div#secondary div#donation-shelf, -html[it-related-videos=collapsed].related-videos-collapsed #related>*:not(#improvedtube-collapsed-related-videos), -html[it-related-videos=collapsed]:not(.related-videos-collapsed) #improvedtube-collapsed-related-videos .show-more-text, -html[it-related-videos=collapsed].related-videos-collapsed #improvedtube-collapsed-related-videos .show-less-text { - display: none !important; -} - -#improvedtube-collapsed-related-videos { - font-family: inherit; - font-size: 12px; - font-weight: 500; - box-sizing: border-box; - width: 100%; - margin: 0 0 3rem; - padding: 1rem 0; - cursor: pointer; - letter-spacing: .007px; - text-transform: uppercase; - color: var(--yt-spec-text-secondary); - border: none; - border-bottom: 1px solid var(--yt-spec-10-percent-layer); - outline: none; - background: transparent; -} - - -/*-------------------------------------------------------------- -2.3.4 Sidebar position ---------------------------------------------------------------*/ - -html[it-sidebar-left='true'] #columns>#primary, -html[it-sidebar-left='true'] #head>#upnext -/* also moving autoplay button to the outside as the glow bothers next to the video */ - - { - order: 7; -} - - -/*-------------------------------------------------------------- -2.3.5 Thumbnails ---------------------------------------------------------------*/ - -html[it-thumbnails-right='true'] ytd-watch-next-secondary-results-renderer ytd-thumbnail { - order: 7; -} - -html[it-thumbnails-hide='true'] ytd-watch-next-secondary-results-renderer ytd-thumbnail, -html[it-thumbnails-hide='true'] ytd-watch-next-secondary-results-renderer ytd-playlist-thumbnail { - display: none; -} - - -/*-------------------------------------------------------------- -2.4 DETAILS ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -2.4.1 HIDE DETAILS ---------------------------------------------------------------*/ - -html[it-hide-details=true] #watch-header, -html[it-hide-details=true] #watch-action-panels, -html[it-hide-details=true] #action-panel-details, -html[it-hide-details=true] #primary-inner>#info, -html[it-hide-details=true] #primary-inner>#meta, -html[it-hide-details=true] #primary-inner .watch-active-metadata { - display: none !important; -} - - -/*-------------------------------------------------------------- -2.4.2 HIDE VIEWS & COMMENTS COUNTS Video only: #count[class*="video"] ---------------------------------------------------------------*/ - -html[it-hide-views-count=true] #count, -html[it-hide-views-count=true] #count+#info-strings>#dot { - display: none; -} - -/*-------------------------------------------------------------- -2.4.3 HIDE DATE ---------------------------------------------------------------*/ - -html[it-hide-date=true] #count+#info-strings>yt-formatted-string, -html[it-hide-date=true] #count+#info-strings>#dot { - display: none; -} - - -/*-------------------------------------------------------------- -2.4.4 HIDE LIKE BUTTON ---------------------------------------------------------------*/ - -[it-hide-like-button=true] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(1), -[it-hide-like-button=true] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(2), -[it-hide-like-button=true] #info #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1), -[it-hide-like-button=true] #info #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2), -[it-hide-like-button=true] #sentiment.ytd-video-primary-info-renderer { - display: none; -} - -[it-hide-like-button-text=true] #top-level-buttons ytd-toggle-button-renderer:nth-child(1) div.cbox, -[it-hide-like-button-text=true] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) div.cbox, -[it-hide-like-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) div.cbox, -[it-hide-like-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) div.cbox, -[it-hide-like-button-text=true] #sentiment.ytd-video-primary-info-renderer { - display: none; -} - -[it-hide-dislike-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) div.cbox, -[it-hide-dislike-button-text=true] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) div.cbox { - display: none; -} - -/*-------------------------------------------------------------- -2.4.5 HIDE SHARE BUTTON ---------------------------------------------------------------*/ - -html[it-hide-share-button=true] #info #top-level-buttons ytd-button-renderer#Share-button, -html[it-hide-share-button=true] #info #top-level-buttons-computed ytd-button-renderer#Share-button { - display: none; -} - -html[it-hide-share-button-text=true] #info #top-level-buttons ytd-button-renderer#Share-button div.cbox, -html[it-hide-share-button-text=true] #info #top-level-buttons-computed ytd-button-renderer#Share-button div.cbox { - display: none; -} - -/*-------------------------------------------------------------- -2.4.6 HIDE DOWNLOAD BUTTON ---------------------------------------------------------------*/ - -html[it-hide-download-button=true] #info #top-level-buttons ytd-download-button-renderer, -html[it-hide-download-button=true] #info #top-level-buttons-computed ytd-download-button-renderer { - display: none; -} - -html[it-hide-download-button-text=true] #info #top-level-buttons ytd-download-button-renderer div.cbox , -html[it-hide-download-button-text=true] #info #top-level-buttons-computed ytd-download-button-renderer div.cbox { - display: none; -} - -/*-------------------------------------------------------------- -2.4.7 HIDE THANKS BUTTON ---------------------------------------------------------------*/ - -html[it-hide-thanks-button=true] #info #top-level-buttons ytd-button-renderer#Thanks-button, -html[it-hide-thanks-button=true] #info #top-level-buttons-computed ytd-button-renderer#Thanks-button { - display: none; -} - -html[it-hide-thanks-button-text=true] #info #top-level-buttons ytd-button-renderer#Thanks-button div.cbox, -html[it-hide-thanks-button-text=true] #info #top-level-buttons-computed ytd-button-renderer#Thanks-button div.cbox { - display: none; -} - -/*-------------------------------------------------------------- -2.4.8 HIDE CLIP BUTTON ---------------------------------------------------------------*/ - -html[it-hide-clip-button=true] #info #top-level-buttons ytd-button-renderer#Clip-button, -html[it-hide-clip-button=true] #info #top-level-buttons-computed ytd-button-renderer#Clip-button { - display: none; -} - -html[it-hide-clip-button-text=true] #info #top-level-buttons ytd-button-renderer#Clip-button div.cbox, -html[it-hide-clip-button-text=true] #info #top-level-buttons-computed ytd-button-renderer#Clip-button div.cbox { - display: none; -} - -/*-------------------------------------------------------------- -2.4.9 HIDE SAVE BUTTON ---------------------------------------------------------------*/ - -html[it-hide-save-button=true] #info #top-level-buttons ytd-button-renderer#Save-button, -html[it-hide-save-button=true] #info #top-level-buttons-computed ytd-button-renderer#Save-button { - display: none; -} - -html[it-hide-save-button-text=true] #info #top-level-buttons ytd-button-renderer#Save-button div.cbox, -html[it-hide-save-button-text=true] #info #top-level-buttons-computed ytd-button-renderer#Save-button div.cbox { - display: none; -} - -/*-------------------------------------------------------------- -2.4.10 REPORT REPORT BUTTON ---------------------------------------------------------------*/ - -html[it-hide-report-button=true] #info #top-level-buttons ytd-button-renderer#Report-button, -html[it-hide-report-button=true] #info #top-level-buttons-computed ytd-button-renderer#Report-button { - display: none; -} - - -/*-------------------------------------------------------------- -2.4.11 HIDE MORE BUTTON ---------------------------------------------------------------*/ - -html[it-hide-more-button=true] #info ytd-menu-renderer yt-button-shape#button-shape { - display: none; -} - - -/*-------------------------------------------------------------- -2.4.12 DESCRIPTION ---------------------------------------------------------------*/ - -html[it-description=hidden] #description, -html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, -html[it-description=hidden] div#action-panel-details, -ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents { - display: none !important; -} - -html[it-description=classic] ytd-watch-metadata { - display: none !important; -} - -html[it-description=classic] ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents { - display: block !important; -} - -/*-------------------------------------------------------------- -2.4.13 HOW LONG AGO THE VIDEO WAS UPLOADED ---------------------------------------------------------------*/ - -.it-how-long-ago-the-video-was-uploaded { - margin-left: 4px; - float: right; - color: var(--yt-spec-text-secondary); -} - - -/*-------------------------------------------------------------- -2.4.14 SHOW CHANNEL VIDEOS COUNT ---------------------------------------------------------------*/ - -.it-channel-videos-count { - display: inline-block; - margin-left: 4px; - color: var(--yt-spec-text-secondary); -} - - -/*-------------------------------------------------------------- -2.4.15 SHOW DISLIKE RED COLOR ---------------------------------------------------------------*/ - -[it-red-dislike-button=true] #top-level-buttons>ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active>a, -[it-red-dislike-button=true] #top-level-buttons-computed>ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button:nth-child(2).style-default-active>a { - color: #fc0000 !important; -} - - -/*-------------------------------------------------------------- -2.5 COMMENTS ---------------------------------------------------------------*/ - -html[it-comments=hidden] ytd-comments#comments, -html[it-comments=collapsed].comments-collapsed #comment-section-renderer-items+button, -html[it-comments=collapsed]:not(.comments-collapsed) #improvedtube-collapsed-comments .show-more-text, -html[it-comments=collapsed].comments-collapsed #improvedtube-collapsed-comments .show-less-text, -html[it-comments=collapsed].comments-collapsed #comments #spinner { - display: none !important; -} - -html[it-comments=collapsed].comments-collapsed #comment-section-renderer-items, -html[it-comments=collapsed].comments-collapsed #comments #sections #contents { - overflow: hidden !important; - height: 0 !important; -} - -#improvedtube-collapsed-comments { - font-family: inherit; - font-size: 12px; - font-weight: 500; - box-sizing: border-box; - width: 100%; - margin: 0 0 3rem; - padding: 1rem 0; - cursor: pointer; - letter-spacing: .007px; - text-transform: uppercase; - color: var(--yt-spec-text-secondary); - border: none; - border-bottom: 1px solid var(--yt-spec-10-percent-layer); - outline: none; - background: transparent; -} - -html[it-hide-author-avatars=true] #author-thumbnail { - display: none; -} - -/*-------------------------------------------------------------- -2.6 FOOTER ---------------------------------------------------------------*/ - -html[it-hide-footer=true] ytd-guide-renderer #footer { - display: none !important; -} - - -/*-------------------------------------------------------------- +/*------------------------------------------------------------------------------ 3.0 THEMES ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -3.1 BLUELIGHT ---------------------------------------------------------------*/ - -html[it-bluelight]:not([it-bluelight='0']) { - height: auto; -} - -html[it-bluelight]:not([it-bluelight='0']), -html[it-bluelight]:not([it-bluelight='0']) .html5-video-player.ytp-fullscreen { - filter: url(#it-bluelight-filter); -} +------------------------------------------------------------------------------*/ -#it-bluelight { - position: fixed; - top: 0; - left: 0; - visibility: hidden; - width: 100%; - height: 100vh; - pointer-events: none; -} - - -/*-------------------------------------------------------------- -3.2 DIM ---------------------------------------------------------------*/ - -#it-dim { - position: fixed; - z-index: 2147483645; - top: 0; - left: 0; - width: 100%; - height: 100vh; - pointer-events: none; - background: #000; -} - -#it-dim-player { - position: fixed; - z-index: 2147483645; - top: 0; - left: 0; - visibility: hidden; - width: 100%; - height: 100vh; - pointer-events: none; - background: #000; -} - -.html5-video-player.ytp-fullscreen #it-dim-player { - visibility: visible !important; -} - - -/*-------------------------------------------------------------- +/*------------------------------------------------------------------------------ 3.3 THEMES ---------------------------------------------------------------*/ +------------------------------------------------------------------------------*/ /*BLACK*/ @@ -2744,22 +1323,22 @@ html[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule= } -/*-------------------------------------------------------------- +/*------------------------------------------------------------------------------ 4.0 PLAYER ---------------------------------------------------------------*/ +------------------------------------------------------------------------------*/ -/*-------------------------------------------------------------- +/*------------------------------------------------------------------------------ 4.1 CROP CHAPTER TITLES ---------------------------------------------------------------*/ +------------------------------------------------------------------------------*/ html[it-player-crop-chapter-titles=false] .ytp-chapter-title { width: auto !important; } -/*-------------------------------------------------------------- +/*------------------------------------------------------------------------------ 4.2 ADS ---------------------------------------------------------------*/ +------------------------------------------------------------------------------*/ html[it-player-ads=subscribed_channels] #related #player-ads, html[it-player-ads=block_all] #related #player-ads, @@ -2769,13 +1348,13 @@ html[it-player-ads=block_all] #masthead-ad { } -/*-------------------------------------------------------------- +/*------------------------------------------------------------------------------ 4.3 MINIPLAYER ---------------------------------------------------------------*/ +------------------------------------------------------------------------------*/ -/*-------------------------------------------------------------- +/*----------------------------------------------------------------------------- # POSITION & SIZE ---------------------------------------------------------------*/ +-----------------------------------------------------------------------------*/ .it-mini-player { position: fixed !important; @@ -2803,13 +1382,12 @@ html[it-player-ads=block_all] #masthead-ad { left: 0 !important; width: 100% !important; height: 100% !important; - object-fit: contain !important; } -/*-------------------------------------------------------------- +/*----------------------------------------------------------------------------- # DRAGGING ---------------------------------------------------------------*/ +-----------------------------------------------------------------------------*/ .improvedtube-mini-player.dragging { pointer-events: none !important; @@ -2879,9 +1457,9 @@ html[it-mini-player-cursor='nw-resize']::after { } -/*-------------------------------------------------------------- +/*------------------------------------------------------------------------------ # ---------------------------------------------------------------*/ +------------------------------------------------------------------------------*/ .it-player-button { position: relative !important; @@ -2920,14 +1498,14 @@ body.no-scroll .it-player-button--tooltip { } -/*-------------------------------------------------------------- +/*------------------------------------------------------------------------------ 4.8 hide controls options ---------------------------------------------------------------*/ +------------------------------------------------------------------------------*/ html[it-player-play-button=true] .ytp-play-button, html[it-player-previous-button=true] .ytp-prev-button, html[it-player-next-button=true] .ytp-next-button, html[it-player-volume-button=true] .ytp-volume-area, -html[it-player-autoplay-button=true] .ytp-right-controls .ytp-button[data-tooltip-target-id = ytp-autonav-toggle-button], +html[it-player-autoplay-button=true] .ytp-autonav-toggle-button-container, html[it-player-settings-button=true] .ytp-settings-button, html[it-player-subtitles-button=true] .ytp-subtitles-button, html[it-player-miniplayer-button=true] .ytp-miniplayer-button, @@ -2938,13 +1516,13 @@ html[it-player-remote-button=true] .ytp-remote-button { } -/*-------------------------------------------------------------- +/*------------------------------------------------------------------------------ 5.0 PLAYLIST ---------------------------------------------------------------*/ +------------------------------------------------------------------------------*/ -/*-------------------------------------------------------------- +/*------------------------------------------------------------------------------ 5.1 REVERSE ---------------------------------------------------------------*/ +------------------------------------------------------------------------------*/ #it-reverse-playlist { width: 40px; @@ -2960,13 +1538,13 @@ html[it-player-remote-button=true] .ytp-remote-button { } -/*-------------------------------------------------------------- +/*------------------------------------------------------------------------------ 6.0 CHANNEL ---------------------------------------------------------------*/ +------------------------------------------------------------------------------*/ -/*-------------------------------------------------------------- +/*------------------------------------------------------------------------------ 6.1 PLAY ALL BUTTON ---------------------------------------------------------------*/ +------------------------------------------------------------------------------*/ .it-play-all-button { font-size: 14px !important; @@ -2991,9 +1569,9 @@ html[it-player-remote-button=true] .ytp-remote-button { } -/*-------------------------------------------------------------- +/*------------------------------------------------------------------------------ 6.2 FEATURED CONTENT ---------------------------------------------------------------*/ +------------------------------------------------------------------------------*/ html[it-channel-hide-featured-content=true] #secondary #contents.style-scope.ytd-browse-secondary-contents-renderer, html[it-channel-hide-featured-content=true] .branded-page-v2-secondary-col { @@ -3008,9 +1586,9 @@ html[it-channel-hide-featured-content=true] #secondary ytd-browse-secondary-cont } -/*-------------------------------------------------------------- +/*------------------------------------------------------------------------------ 7.0 SHORTCUTS ---------------------------------------------------------------*/ +------------------------------------------------------------------------------*/ #it-status { font-size: 40px; @@ -3023,13 +1601,13 @@ html[it-channel-hide-featured-content=true] #secondary ytd-browse-secondary-cont } -/*-------------------------------------------------------------- +/*------------------------------------------------------------------------------ 8.0 SETTINGS ---------------------------------------------------------------*/ +------------------------------------------------------------------------------*/ -/*-------------------------------------------------------------- +/*------------------------------------------------------------------------------ 8.1 IMPROVEDTUBE ICON ON YOUTUBE ---------------------------------------------------------------*/ +------------------------------------------------------------------------------*/ .it-button { position: relative; @@ -3150,9 +1728,9 @@ ytd-guide-section-renderer .it-button::after { } -/*-------------------------------------------------------------- +/*------------------------------------------------------------------------------ 9.0 BLACKLIST ---------------------------------------------------------------*/ +------------------------------------------------------------------------------*/ .it-add-to-blacklist { position: absolute; @@ -3234,7 +1812,7 @@ ytd-guide-section-renderer .it-button::after { } -/*--------------------------------------------------------------NEW--------------------------------------------------------------*/ +/*------------NEW---------------*/ .improvedtube-sidebar-a { font-size: 1.4rem; @@ -3302,4 +1880,4 @@ ytd-guide-section-renderer .it-button::after { color: var(--paper-tooltip-text-color, white); border-radius: 2px; background-color: var(--paper-tooltip-background, #616161); -} +} \ No newline at end of file diff --git a/content-scripts/extension-context/youtube-features/general/general.css b/content-scripts/extension-context/youtube-features/general/general.css new file mode 100644 index 000000000..eca711e60 --- /dev/null +++ b/content-scripts/extension-context/youtube-features/general/general.css @@ -0,0 +1,382 @@ +/*-------------------------------------------------------------- +>>> GENERAL: +---------------------------------------------------------------- +# YouTube home page +# Collapse of subscription section +# Remove related search results +# Scroll bar +# Add "Scroll to top" +# Limit page width +# Squared user images +# Mark watched videos +# Hide aniamted thubmnails +# Hide buttons on thumbnails +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# YOUTUBE HOME PAGE +--------------------------------------------------------------*/ + +html[it-pathname='/'][it-youtube-home-page='search']>body, +html[it-pathname='/'][it-youtube-home-page='search'] #guide[opened] { + visibility: hidden !important; + + pointer-events: none !important; +} + +html[it-pathname='/'][it-youtube-home-page='search']>body { + overflow: hidden !important; + + width: 100vw !important; + height: 100vh !important; +} + +html[it-pathname='/'][it-youtube-home-page='search'] ytd-searchbox, +html[it-pathname='/'][it-youtube-home-page='search'] ytm-searchbox { + position: fixed !important; + z-index: 99999 !important; + top: 0 !important; + left: 0 !important; + + display: flex !important; + visibility: visible !important; + + box-sizing: border-box !important; + width: 100vw !important; + height: 100vh !important; + margin: 0 !important; + padding: 16px !important; + + pointer-events: all !important; + + justify-content: center !important; + align-items: center !important; +} + +html[it-pathname='/'][it-youtube-home-page='search'] ytd-searchbox>form, +html[it-pathname='/'][it-youtube-home-page='search'] ytm-searchbox>form { + width: 100% !important; + max-width: 768px !important; +} + + +/*-------------------------------------------------------------- +# COLLAPSE OF SUBSCRIPTION SECTIONS +--------------------------------------------------------------*/ + +html[it-pathname='/feed/subscriptions'][it-collapse-of-subscription-sections='true'] ytd-item-section-renderer h2 #title { + overflow: visible !important; + + cursor: pointer !important; +} + +html[it-pathname='/feed/subscriptions'][it-collapse-of-subscription-sections='true'] ytd-item-section-renderer h2 #title::after { + position: relative !important; + top: 2px !important; + + display: inline-block !important; + + width: 6px !important; + height: 6px !important; + margin: 0 0 0 12px !important; + + content: '' !important; + transform: rotate(45deg) !important; + transform-origin: center center !important; + + border-top: currentColor 2px solid !important; + border-left: currentColor 2px solid !important; +} + +html[it-pathname='/feed/subscriptions'][it-collapse-of-subscription-sections='true'] ytd-item-section-renderer.it-section-collapsed h2 #title::after { + top: -3px !important; + + transform: rotate(-135deg) !important; +} + +html[it-pathname='/feed/subscriptions'][it-collapse-of-subscription-sections='true'] ytd-item-section-renderer .grid-subheader+#contents { + overflow: hidden !important; +} + +html[it-pathname='/feed/subscriptions'][it-collapse-of-subscription-sections='true'] ytd-item-section-renderer.it-section-collapsed .grid-subheader+#contents { + height: 0 !important; +} + + +/*-------------------------------------------------------------- +# REMOVE RELATED SEARCH RESULTS +--------------------------------------------------------------*/ + +html[it-pathname='/results'][it-remove-related-search-results='true'] ytd-shelf-renderer>#dismissible>.grid-subheader, +html[it-pathname='/results'][it-remove-related-search-results='true'] ytd-shelf-renderer>#dismissible>.grid-subheader+#contents { + display: none !important; +} + + +/*-------------------------------------------------------------- +# SCROLL BAR +--------------------------------------------------------------*/ + +html[it-scroll-bar=hidden] body { + overflow-y: overlay; +} + +html[it-scroll-bar=hidden] ::-webkit-scrollbar { + display: none; +} + + +/*-------------------------------------------------------------- +# ADD "SCROLL TO TOP" +--------------------------------------------------------------*/ + +#it-scroll-to-top { + position: fixed !important; + z-index: 999 !important; + right: 32px !important; + bottom: 32px !important; + + display: flex !important; + visibility: hidden !important; + + box-sizing: border-box !important; + width: 56px !important; + height: 56px !important; + + cursor: pointer !important; + transition: background 500ms 250ms, transform 500ms, box-shadow 525ms !important; + transform: translateY(88px) !important; + pointer-events: none !important; + + opacity: 0 !important; + border-radius: 50% !important; + background: linear-gradient(135deg, #ff4766, #f50029) !important; + box-shadow: 0 2px 1px 1px #d60024, 0 4px 4px rgb(82, 0, 14, .32) !important; + + justify-content: center !important; + align-items: center !important; +} + +#it-scroll-to-top>svg { + width: 24px !important; + + fill: #fff !important; +} + +html[it-scroll-to-top='true'] #it-scroll-to-top { + visibility: visible !important; + + transform: translateY(0px) !important; + pointer-events: all !important; + + opacity: 1 !important; +} + +html[it-scroll-to-top='true'] #it-scroll-to-top:focus, +html[it-scroll-to-top='true'] #it-scroll-to-top:hover { + transition: background 250ms 125ms, transform 250ms, box-shadow 275ms !important; + transform: translateY(4px) scale(.975) !important; + + box-shadow: 0 1px 1px 0 #d60024, 0 1px 2px rgb(82, 0, 14, .32) !important; +} + + +/*-------------------------------------------------------------- +# LIMIT PAGE WIDTH +--------------------------------------------------------------*/ + +html[it-limit-page-width='false'] ytd-browse > ytd-two-column-browse-results-renderer { + width: auto !important; + max-width: auto !important; +} + +html[it-limit-page-width='false'] ytd-watch-flexy:not([fullscreen]) #columns.ytd-watch-flexy, +html[it-limit-page-width='false'] ytd-watch-flexy:not([fullscreen]) #primary.ytd-watch-flexy { + max-width: 100% !important; +} + +html[it-limit-page-width='false'] ytd-watch-flexy:not([fullscreen]) #player-container-outer.ytd-watch-flexy { + max-width: 100% !important; + max-height: var(--ytd-watch-flexy-max-player-height) !important; +} + +html[it-limit-page-width='false'] ytd-watch-flexy:not([fullscreen]) #player-container-inner.ytd-watch-flexy { + padding-top: calc(var(--ytd-watch-flexy-max-player-height) + 45px) !important; +} + +html[it-limit-page-width='false'] ytd-watch-flexy:not([fullscreen]) #player { + padding-bottom: 45px !important; +} + +html[it-limit-page-width='false'] ytd-watch-flexy:not([fullscreen]) .html5-video-container { + width: 100% !important; + height: 100% !important; +} + +html[it-limit-page-width='false'] ytd-watch-flexy:not([fullscreen]) video { + position: static !important; + top: 0 !important; + left: 0 !important; + + width: 100% !important; + height: 100% !important; + + object-fit: contain !important; +} + + +/*-------------------------------------------------------------- +# SQUARED USER IMAGES +--------------------------------------------------------------*/ + +html[it-squared-user-images='true'] #avatar.ytd-shelf-renderer, +html[it-squared-user-images='true'] yt-img-shadow, +html[it-squared-user-images='true'] #yt-masthead-user .yt-masthead-user-icon { + border-radius: unset !important; +} + + +/*-------------------------------------------------------------- +# Popup Window Button +--------------------------------------------------------------*/ + +.it-popup-window { + font-family: inherit; + + position: absolute; + z-index: 999; + bottom: 36px; + left: 4px; + + visibility: hidden; + + width: 28px; + height: 28px; + + cursor: pointer; + text-align: center; + + color: #888; + border: none; + border-radius: 2px; + background: rgba(0, 0, 0, .8); +} + +.it-popup-window svg { + position: absolute; + top: 4px; + left: 4px; + + width: 20px; + height: 20px; + + pointer-events: none; + + fill: currentColor; +} + +*:hover>.it-popup-window { + visibility: visible; +} + + +/*-------------------------------------------------------------- +# MARK WATCHED VIDEOS +--------------------------------------------------------------*/ + +.it-mark-watched-videos { + font-family: inherit !important; + font-size: inherit !important; + + position: absolute !important; + z-index: 999 !important; + bottom: 4px !important; + left: 4px !important; + + visibility: hidden !important; + + width: 28px !important; + height: 28px !important; + padding: 2px !important; + + content: '' !important; + cursor: pointer !important; + text-align: center !important; + + color: #888 !important; + border: none !important; + border-radius: 2px !important; + background-color: rgba(0, 0, 0, .8) !important; + + fill: #fff !important; +} + +.it-mark-watched-videos[data-watched] { + background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"%3E%3Cpath fill="%23FFF" d="M12 4.5C7 4.5 2.7 7.6 1 12a11.8 11.8 0 0 0 22 0c-1.7-4.4-6-7.5-11-7.5zM12 17a5 5 0 1 1 0-10 5 5 0 0 1 0 10zm0-8a3 3 0 1 0 0 6 3 3 0 0 0 0-6z"/%3E%3C/svg%3E') !important; +} + +#thumbnail.ytd-thumbnail:hover .it-mark-watched-videos { + visibility: visible !important; +} + +.it-mark-watched-videos[watched]>svg:first-child, +.it-mark-watched-videos:not([watched])>svg:last-child { + display: none !important; +} + +.it-mark-watched-videos:hover { + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +.it-mark-watched-videos::after { + font-size: 1.2em !important; + font-weight: 500 !important; + + position: absolute !important; + top: 0 !important; + left: 100% !important; + + display: flex !important; + overflow: hidden !important; + + width: 0 !important; + height: 28px !important; + + content: 'Watched'; + transition: width 200ms !important; + text-transform: uppercase !important; + + color: var(--yt-spec-icon-active-other, #fff) !important; + border-top-right-radius: 2px !important; + border-bottom-right-radius: 2px !important; + background: rgba(0, 0, 0, .8) !important; + + align-items: center !important; + justify-content: center !important; +} + +.it-mark-watched-videos:hover::after { + width: 96px !important; +} + + +/*-------------------------------------------------------------- +# HIDE ANIMATED THUMBNAILS +--------------------------------------------------------------*/ + +html[it-hide-animated-thumbnails='true'] #mouseover-overlay, +html[it-hide-animated-thumbnails='true'] .mouseover-play, +html[it-hide-animated-thumbnails='true'] .mouseover-img, +html[it-hide-animated-thumbnails='true'] #preview>ytd-video-preview { + display: none !important; +} + + +/*-------------------------------------------------------------- +# HIDE BUTTONS ON THUMBNAILS +--------------------------------------------------------------*/ + +html[it-hide-thumbnail-overlay='true'] #hover-overlays { + display: none !important; +} \ No newline at end of file diff --git a/content-scripts/extension-context/youtube-features/general/general.js b/content-scripts/extension-context/youtube-features/general/general.js new file mode 100644 index 000000000..f462d5519 --- /dev/null +++ b/content-scripts/extension-context/youtube-features/general/general.js @@ -0,0 +1,553 @@ +/*-------------------------------------------------------------- +>>> GENERAL: +---------------------------------------------------------------- +# YouTube home page +# Collapse of subscription sections +# Only one player instance playing +# Add "Scroll to top" +# Confirmation before closing +# Default content country +# Add "Popup window" buttons +# Font +# Mark watched videos +# Track watched videos +# Thumbnails quality +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# YOUTUBE HOME PAGE +--------------------------------------------------------------*/ + +extension.features.youtubeHomePage = function (anything) { + if (anything instanceof Event) { + var event = anything; + + if (event.target) { + var target = event.target; + + while (target.parentNode) { + if (target.nodeName === 'A' && target.id === 'logo') { + var option = extension.storage.get('youtube_home_page'); + + if (option !== 'search') { + event.preventDefault(); + event.stopPropagation(); + + window.open(option, '_self'); + + return false; + } + } else { + target = target.parentNode; + } + } + } + } else if (anything === 'init') { + extension.events.on('init', function (resolve) { + if (/(www|m)\.youtube\.com\/?(\?|\#|$)/.test(location.href)) { + chrome.storage.local.get('youtube_home_page', function (items) { + var option = items.youtube_home_page; + + if ( + option === '/feed/trending' || + option === '/feed/subscriptions' || + option === '/feed/history' || + option === '/playlist?list=WL' || + option === '/playlist?list=LL' || + option === '/feed/library' + ) { + location.replace(option); + } else { + resolve(); + } + }); + } else { + resolve(); + } + }, { + async: true, + prepend: true + }); + } else { + var option = extension.storage.get('youtube_home_page'); + + window.removeEventListener('click', this.youtubeHomePage); + + if ( + option === '/feed/trending' || + option === '/feed/subscriptions' || + option === '/feed/history' || + option === '/playlist?list=WL' || + option === '/playlist?list=LL' || + option === '/feed/library' + ) { + window.addEventListener('click', this.youtubeHomePage, true); + } + } +}; + + +/*-------------------------------------------------------------- +# COLLAPSE OF SUBSCRIPTION SECTIONS +--------------------------------------------------------------*/ + +extension.features.collapseOfSubscriptionSections = function (event) { + if (event instanceof Event) { + var section, + content; + + if (event.target) { + var target = event.target; + + while (target.parentNode) { + if (target.nodeName === 'YTD-ITEM-SECTION-RENDERER') { + section = target; + } else if (target.className && target.className.indexOf && target.className.indexOf('grid-subheader') !== -1) { + content = target.nextElementSibling; + } + + target = target.parentNode; + } + } + + if (section && content) { + event.preventDefault(); + event.stopPropagation(); + + if (section.className.indexOf('it-section-collapsed') === -1) { + content.style.height = content.offsetHeight + 'px'; + content.style.transition = 'height 200ms'; + } + + setTimeout(function () { + section.classList.toggle('it-section-collapsed'); + }); + + return false; + } + } else { + window.removeEventListener('click', this.collapseOfSubscriptionSections); + + if ( + extension.storage.get('collapse_of_subscription_sections') === true && + location.href.indexOf('feed/subscriptions') !== -1 + ) { + window.addEventListener('click', this.collapseOfSubscriptionSections, true); + } + } +}; + + +/*-------------------------------------------------------------- +# ONLY ONE PLAYER INSTANCE PLAYING +--------------------------------------------------------------*/ + +extension.features.onlyOnePlayerInstancePlaying = function () { + if (extension.storage.get('only_one_player_instance_playing') === true) { + var videos = document.querySelectorAll('video'); + + for (var i = 0, l = videos.length; i < l; i++) { + videos[i].pause(); + } + } +}; + + +/*-------------------------------------------------------------- +# ADD "SCROLL TO TOP" +--------------------------------------------------------------*/ + +extension.features.addScrollToTop = function (event) { + if (event instanceof Event) { + if (window.scrollY > window.innerHeight / 2) { + document.documentElement.setAttribute('it-scroll-to-top', 'true'); + } else { + document.documentElement.removeAttribute('it-scroll-to-top'); + } + } else { + if (extension.storage.get('add_scroll_to_top') === true) { + this.addScrollToTop.button = satus.render({ + component: 'div', + id: 'it-scroll-to-top', + on: { + click: function () { + window.scrollTo(0, 0); + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24' + }, + + path: { + component: 'path', + attr: { + 'd': 'M13 19V7.8l4.9 5c.4.3 1 .3 1.4 0 .4-.5.4-1.1 0-1.5l-6.6-6.6a1 1 0 0 0-1.4 0l-6.6 6.6a1 1 0 1 0 1.4 1.4L11 7.8V19c0 .6.5 1 1 1s1-.5 1-1z' + } + } + } + }); + + window.addEventListener('scroll', this.addScrollToTop); + } else if (this.addScrollToTop.button) { + window.removeEventListener('scroll', this.addScrollToTop); + + this.addScrollToTop.button.remove(); + } + } +}; + + +/*-------------------------------------------------------------- +# CONFIRMATION BEFORE CLOSING +--------------------------------------------------------------*/ + +extension.features.confirmationBeforeClosing = function () { + window.onbeforeunload = function () { + if (extension.storage.get('confirmation_before_closing') === true) { + return 'You have attempted to leave this page. Are you sure?'; + } + }; +}; + + +/*-------------------------------------------------------------- +# DEFAULT CONTENT COUNTRY +--------------------------------------------------------------*/ + +extension.features.defaultContentCountry = function (changed) { + var value = extension.storage.get('default_content_country'); + + if (satus.isset(value)) { + if (value !== 'default') { + var date = new Date(); + + date.setTime(date.getTime() + 3.154e+10); + + document.cookie = 's_gl=' + value + '; path=/; domain=.youtube.com; expires=' + date.toGMTString(); + } else { + document.cookie = 's_gl=0; path=/; domain=.youtube.com; expires=Thu, 01 Jan 1970 00:00:01 GMT'; + } + } + + if (changed) { + location.reload(); + } +}; + + +/*-------------------------------------------------------------- +# ADD "POPUP WINDOW" BUTTONS +--------------------------------------------------------------*/ + +extension.features.popupWindowButtons = function (event) { + if (event instanceof Event) { + if (event.type === 'mouseover') { + if (event.target) { + var target = event.target, + detected = false; + + while (detected === false && target.parentNode) { + if ( + target.id === 'thumbnail' && target.className.indexOf('ytd-thumbnail') !== -1 || + target.className.indexOf('thumb-link') !== -1 + ) { + if (!target.itPopupWindowButton) { + target.itPopupWindowButton = satus.render({ + component: 'button', + class: 'it-popup-window', + data: { + id: extension.functions.getUrlParameter(target.href, 'v') + }, + on: { + click: function (event) { + event.preventDefault(); + event.stopPropagation(); + + window.open('https://www.youtube.com/embed/' + this.dataset.id + '?autoplay=' + (extension.storage.get('player_autoplay') == false ? '0' : '1'), '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no'); + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24' + }, + + path: { + component: 'path', + attr: { + 'd': 'M19 7h-8v6h8V7zm2-4H3C2 3 1 4 1 5v14c0 1 1 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 16H3V5h18v14z' + } + } + } + }, target); + } + + detected = true; + } + + target = target.parentNode; + } + } + } + } else { + if (extension.storage.get('popup_window_buttons') === true) { + window.addEventListener('mouseover', this.popupWindowButtons, true); + } else { + window.removeEventListener('mouseover', this.popupWindowButtons, true); + } + } +}; + + +/*-------------------------------------------------------------- +# FONT +--------------------------------------------------------------*/ + +extension.features.font = function (changed) { + var option = extension.storage.get('font'); + + if (satus.isString(option) && option !== 'Default') { + var link = this.font.link || document.createElement('link'), + style = this.font.style || document.createElement('style'); + + link.rel = 'stylesheet'; + link.href = '//fonts.googleapis.com/css2?family=' + option; + + style.textContent = '*{font-family:"' + option.replace(/\+/g, ' ') + '" !important}'; + + document.head.appendChild(link); + document.head.appendChild(style); + + this.font.link = link; + this.font.style = style; + } else if (changed) { + var link = this.font.link, + style = this.font.style; + + if (link) { + link.remove(); + } + + if (style) { + style.remove(); + } + } +}; + + +/*-------------------------------------------------------------- +# MARK WATCHED VIDEOS +--------------------------------------------------------------*/ + +extension.features.markWatchedVideos = function (anything) { + if (anything instanceof Event) { + var event = anything; + + if (event.type === 'mouseover') { + if (event.target) { + var target = event.target, + detected = false; + + while (detected === false && target.parentNode) { + if ( + target.className && target.className.indexOf && + ( + target.id === 'thumbnail' && target.className.indexOf('ytd-thumbnail') !== -1 || + target.className.indexOf('thumb-link') !== -1 + ) + ) { + if (!target.itMarkWatchedVideosButton) { + target.itMarkWatchedVideosButton = satus.render({ + component: 'button', + class: 'it-mark-watched-videos', + data: { + id: extension.functions.getUrlParameter(target.href, 'v') + }, + on: { + click: function (event) { + var id = this.dataset.id, + value = this.toggleAttribute('watched'); + + event.preventDefault(); + event.stopPropagation(); + + if (!extension.storage.watched) { + extension.storage.watched = {}; + } + + if (value) { + extension.storage.get('watched')[id] = { + title: '' + }; + } else { + delete extension.storage.get('watched')[id]; + } + + chrome.storage.local.set({ + watched: extension.storage.get('watched') + }); + }, + render: function () { + if (extension.storage.get('watched') && extension.storage.get('watched')[this.dataset.id]) { + this.setAttribute('watched', ''); + } + } + }, + + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24' + }, + + path: { + component: 'path', + attr: { + 'd': 'M12 15.15q1.525 0 2.588-1.063 1.062-1.062 1.062-2.587 0-1.525-1.062-2.588Q13.525 7.85 12 7.85q-1.525 0-2.587 1.062Q8.35 9.975 8.35 11.5q0 1.525 1.063 2.587Q10.475 15.15 12 15.15Zm0-.95q-1.125 0-1.912-.788Q9.3 12.625 9.3 11.5t.788-1.913Q10.875 8.8 12 8.8t1.913.787q.787.788.787 1.913t-.787 1.912q-.788.788-1.913.788Zm0 3.8q-3.1 0-5.688-1.613Q3.725 14.775 2.325 12q-.05-.1-.075-.225-.025-.125-.025-.275 0-.15.025-.275.025-.125.075-.225 1.4-2.775 3.987-4.388Q8.9 5 12 5q3.1 0 5.688 1.612Q20.275 8.225 21.675 11q.05.1.075.225.025.125.025.275 0 .15-.025.275-.025.125-.075.225-1.4 2.775-3.987 4.387Q15.1 18 12 18Zm0-6.5Zm0 5.5q2.825 0 5.188-1.488Q19.55 14.025 20.8 11.5q-1.25-2.525-3.612-4.013Q14.825 6 12 6 9.175 6 6.812 7.487 4.45 8.975 3.2 11.5q1.25 2.525 3.612 4.012Q9.175 17 12 17Z' + } + } + }, + svg2: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24' + }, + + path: { + component: 'path', + attr: { + 'd': 'M12 15.15q1.525 0 2.588-1.063 1.062-1.062 1.062-2.587 0-1.525-1.062-2.588Q13.525 7.85 12 7.85q-1.525 0-2.587 1.062Q8.35 9.975 8.35 11.5q0 1.525 1.063 2.587Q10.475 15.15 12 15.15Zm0-.95q-1.125 0-1.912-.788Q9.3 12.625 9.3 11.5t.788-1.913Q10.875 8.8 12 8.8t1.913.787q.787.788.787 1.913t-.787 1.912q-.788.788-1.913.788Zm0 3.8q-3.1 0-5.688-1.613Q3.725 14.775 2.325 12q-.05-.1-.075-.225-.025-.125-.025-.275 0-.15.025-.275.025-.125.075-.225 1.4-2.775 3.987-4.388Q8.9 5 12 5q3.1 0 5.688 1.612Q20.275 8.225 21.675 11q.05.1.075.225.025.125.025.275 0 .15-.025.275-.025.125-.075.225-1.4 2.775-3.987 4.387Q15.1 18 12 18Z' + } + } + } + }, target); + } else { + var button = target.itMarkWatchedVideosButton; + + if (extension.storage.get('watched') && extension.storage.get('watched')[button.dataset.id]) { + button.setAttribute('watched', ''); + } else { + button.removeAttribute('watched'); + } + } + + detected = true; + } + + target = target.parentNode; + } + } + } + } else if (anything === true) { + var buttons = document.querySelectorAll('.it-mark-watched-videos'); + + for (var i = 0, l = buttons.length; i < l; i++) { + var button = buttons[i]; + + button.remove(); + } + } else { + window.removeEventListener('mouseover', this.markWatchedVideos, true); + + if (extension.storage.get('mark_watched_videos') === true) { + window.addEventListener('mouseover', this.markWatchedVideos, true); + } + } +}; + + +/*-------------------------------------------------------------- +# TRACK WATCHED VIDEOS +--------------------------------------------------------------*/ + +extension.features.trackWatchedVideos = function () { + if (extension.storage.get('track_watched_videos') === true && document.documentElement.getAttribute('it-pathname').indexOf('/watch') === 0) { + var id = extension.functions.getUrlParameter(location.href, 'v'); + + if (!extension.storage.get('watched')) { + extension.storage.get('watched') = {}; + } + + extension.storage.get('watched')[id] = { + title: document.title + }; + + chrome.storage.local.set({ + watched: extension.storage.get('watched') + }); + } +}; + + +/*-------------------------------------------------------------- +# THUMBNAILS QUALITY +--------------------------------------------------------------*/ + +extension.features.thumbnailsQuality = function (anything) { + var option = extension.storage.get('thumbnails_quality'); + + function handler(thumbnail) { + if (!thumbnail.dataset.defaultSrc && extension.features.thumbnailsQuality.regex.test(thumbnail.src)) { + thumbnail.dataset.defaultSrc = thumbnail.src; + + thumbnail.onload = function () { + if (this.naturalHeight <= 90) { + this.src = this.dataset.defaultSrc; + } + }; + + thumbnail.onerror = function () { + this.src = thumbnail.dataset.defaultSrc; + }; + + thumbnail.src = thumbnail.src.replace(extension.features.thumbnailsQuality.regex, extension.storage.get('thumbnails_quality') + '.jpg'); + } + } + + if (['default', 'mqdefault', 'hqdefault', 'sddefault', 'maxresdefault'].includes(option) === true) { + var thumbnails = document.querySelectorAll('img'); + + this.thumbnailsQuality.regex = /(default\.jpg|mqdefault\.jpg|hqdefault\.jpg|hq720\.jpg|sddefault\.jpg|maxresdefault\.jpg)+/; + + for (var i = 0, l = thumbnails.length; i < l; i++) { + handler(thumbnails[i]); + } + + if (!this.thumbnailsQuality.observer) { + this.thumbnailsQuality.observer = new MutationObserver(function (mutationList) { + for (var i = 0, l = mutationList.length; i < l; i++) { + var mutation = mutationList[i]; + + if (mutation.type === 'attributes') { + handler(mutation.target); + } + } + }); + + this.thumbnailsQuality.observer.observe(document.documentElement, { + attributeFilter: ['src'], + attributes: true, + childList: true, + subtree: true + }); + } + } else if (anything === true) { + var thumbnails = document.querySelectorAll('img[data-default-src]'); + + for (var i = 0, l = thumbnails.length; i < l; i++) { + var thumbnail = thumbnails[i]; + + thumbnail.src = thumbnail.dataset.defaultSrc; + + thumbnail.removeAttribute('data-default-src'); + } + + if (this.thumbnailsQuality.observer) { + this.thumbnailsQuality.observer.disconnect(); + } + } +}; \ No newline at end of file diff --git a/content-scripts/extension-context/youtube-features/night-mode/night-mode.css b/content-scripts/extension-context/youtube-features/night-mode/night-mode.css new file mode 100644 index 000000000..99b63ff2d --- /dev/null +++ b/content-scripts/extension-context/youtube-features/night-mode/night-mode.css @@ -0,0 +1,71 @@ +/*-------------------------------------------------------------- +>>> NIGHT MODE: +---------------------------------------------------------------- +# Bluelight +# Dim +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# BLUELIGHT +--------------------------------------------------------------*/ + +html[it-bluelight]:not([it-bluelight='0']) { + height: auto !important; +} + +html[it-bluelight]:not([it-bluelight='0']), +html[it-bluelight]:not([it-bluelight='0']) .html5-video-player.ytp-fullscreen { + filter: url(#it-bluelight-filter) !important; +} + +#it-bluelight { + position: fixed !important; + top: 0 !important; + left: 0 !important; + + visibility: hidden !important; + + width: 100% !important; + height: 100vh !important; + + pointer-events: none !important; +} + + +/*-------------------------------------------------------------- +# DIM +--------------------------------------------------------------*/ + +#it-dim { + position: fixed !important; + z-index: 2147483645 !important; + top: 0 !important; + left: 0 !important; + + width: 100% !important; + height: 100vh !important; + + pointer-events: none !important; + + background: #000 !important; +} + +#it-dim-player { + position: fixed !important; + z-index: 2147483645 !important; + top: 0 !important; + left: 0 !important; + + visibility: hidden !important; + + width: 100% !important; + height: 100vh !important; + + pointer-events: none !important; + + background: #000 !important; +} + +.html5-video-player.ytp-fullscreen #it-dim-player { + visibility: visible !important; +} \ No newline at end of file diff --git a/content-scripts/extension-context/youtube-features/night-mode/night-mode.js b/content-scripts/extension-context/youtube-features/night-mode/night-mode.js new file mode 100644 index 000000000..0a23cb395 --- /dev/null +++ b/content-scripts/extension-context/youtube-features/night-mode/night-mode.js @@ -0,0 +1,140 @@ +/*-------------------------------------------------------------- +>>> NIGHT MODE: +---------------------------------------------------------------- +# Filters + # Bluelight + # Dim +# Schedule +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# FILTERS +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# BLUELIGHT +--------------------------------------------------------------*/ + +extension.features.bluelight = function () { + var value = extension.storage.get('bluelight'); + + if (extension.features.schedule() === false) { + return false; + } + + if (satus.isset(value) === false) { + value = 0; + } + + if (typeof value !== 'number') { + value = Number(value); + } + + if (value !== 0) { + if (!this.bluelight.bluelight || !this.bluelight.feColorMatrix) { + var div = this.bluelight.bluelight || document.createElement('div'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + filter = document.createElementNS('http://www.w3.org/2000/svg', 'filter'), + feColorMatrix = document.createElementNS('http://www.w3.org/2000/svg', 'feColorMatrix'), + matrix = feColorMatrix.values.baseVal; + + div.id = 'it-bluelight'; + + svg.setAttributeNS(null, 'viewBox', '0 0 1 1'); + svg.setAttributeNS(null, 'version', '1.1'); + filter.setAttributeNS(null, 'id', 'it-bluelight-filter'); + feColorMatrix.setAttributeNS(null, 'type', 'matrix'); + + for (var i = 0; i < 20; i++) { + var number = svg.createSVGNumber(); + + number.value = 0; + + matrix.appendItem(number); + } + + matrix[0].value = 1; + matrix[6].value = 1; + matrix[12].value = 1 - parseFloat(value) / 100; + matrix[18].value = 1; + + filter.appendChild(feColorMatrix); + svg.appendChild(filter); + div.appendChild(svg); + document.documentElement.appendChild(div); + + this.bluelight.feColorMatrix = feColorMatrix; + this.bluelight.bluelight = div; + } else { + this.bluelight.feColorMatrix.values.baseVal[12].value = 1 - parseFloat(value) / 100; + } + } else if (this.bluelight.bluelight) { + this.bluelight.bluelight.remove(); + + delete this.bluelight.bluelight; + delete this.bluelight.feColorMatrix; + } +}; + + +/*-------------------------------------------------------------- +# DIM +--------------------------------------------------------------*/ + +extension.features.dim = function () { + var value = extension.storage.get('dim'); + + if (extension.features.schedule() === false) { + return false; + } + + if (satus.isset(value) === false) { + value = 0; + } + + if (typeof value !== 'number') { + value = Number(value); + } + + if (value !== 0) { + if (!this.dim.element) { + var element = document.createElement('div'); + + element.id = 'it-dim'; + element.style.opacity = parseInt(Number(value)) / 100 || 0; + + document.documentElement.appendChild(element); + + this.dim.element = element; + } else { + this.dim.element.style.opacity = parseInt(Number(value)) / 100 || 0; + } + } else if (this.dim.element) { + this.dim.element.remove(); + + delete this.dim.element; + } +}; + + +/*-------------------------------------------------------------- +# SCHEDULE +--------------------------------------------------------------*/ + +extension.features.schedule = function () { + var current = new Date().getHours(), + from = Number((extension.storage.get('schedule_time_from') || '00:00').substr(0, 2)), + to = Number((extension.storage.get('schedule_time_to') || '00:00').substr(0, 2)); + + if (to < from && current > from && current < 24) { + times.to += 24; + } else if (to < from && current < to) { + from = 0; + } + + if (extension.storage.get('schedule') !== 'sunset_to_sunrise' || current >= from && current < to) { + return true; + } + + return false; +}; \ No newline at end of file diff --git a/content-scripts/website-context/core.js b/content-scripts/website-context/core.js new file mode 100644 index 000000000..1f6a355e5 --- /dev/null +++ b/content-scripts/website-context/core.js @@ -0,0 +1,199 @@ +/*-------------------------------------------------------------- +>>> CORE: +---------------------------------------------------------------- +# Global variable +# Messages + # Create element + # Listener + # Send +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# GLOBAL VARIABLE +--------------------------------------------------------------*/ + +var ImprovedTube = { + messages: { + queue: [] + }, + storage: {}, + elements: { + buttons: {}, + masthead: {}, + playlist: {}, + livechat: {}, + related: {}, + comments: {}, + collapse_of_subscription_sections: [], + mark_watched_videos: [], + blacklist_buttons: [] + }, + regex: { + channel: new RegExp('\/(user|channel|c)\/'), + channel_home_page: new RegExp('\/(user|channel|c)\/.+(\/featured)?\/?$'), + channel_home_page_postfix: new RegExp('\/(featured)?\/?$'), + thumbnail_quality: new RegExp('(default\.jpg|mqdefault\.jpg|hqdefault\.jpg|hq720\.jpg|sddefault\.jpg|maxresdefault\.jpg)+'), + video_id: new RegExp('[?&]v=([^&]+)'), + channel_link: new RegExp('https:\/\/www.youtube.com\/(channel|user|c)\/') + }, + video_src: false, + initialVideoUpdateDone: false, + latestVideoDuration: 0, + video_url: '', + focus: false, + played_before_blur: false, + played_time: 0, + allow_autoplay: false, + mini_player__mode: false, + mini_player__move: false, + mini_player__cursor: '', + mini_player__x: 0, + mini_player__y: 0, + mini_player__max_x: 0, + mini_player__max_y: 0, + mini_player__original_width: 0, + mini_player__original_height: 0, + mini_player__width: 200, + mini_player__height: 160, + miniPlayer_mouseDown_x: 0, + miniPlayer_mouseDown_y: 0, + mini_player__player_offset_x: 0, + mini_player__player_offset_y: 0, + miniPlayer_resize_offset: 16, + playlistReversed: false, + status_timer: false, + defaultApiKey: 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA' +}; + + +/*-------------------------------------------------------------- +# MESSAGES +---------------------------------------------------------------- + Designed for messaging between contexts of extension and + website. +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# CREATE ELEMENT +--------------------------------------------------------------*/ + +ImprovedTube.messages.create = function () { + this.element = document.createElement('div'); + + this.element.id = 'it-messages-from-youtube'; + + this.element.style.display = 'none'; + + document.documentElement.appendChild(this.element); +}; + +/*-------------------------------------------------------------- +# LISTENER +--------------------------------------------------------------*/ + +ImprovedTube.messages.listener = function () { + document.addEventListener('it-message-from-youtube--readed', function () { + ImprovedTube.messages.queue.pop(); + + if (ImprovedTube.messages.queue.length > 0) { + ImprovedTube.messages.element.textContent = message; + + document.dispatchEvent(new CustomEvent('it-message-from-youtube')); + } + }); +}; + +document.addEventListener('it-message-from-extension', function () { + var provider = document.querySelector('#it-messages-from-extension'); + + if (provider) { + var message = provider.textContent; + + document.dispatchEvent(new CustomEvent('it-message-from-extension--readed')); + + try { + message = JSON.parse(message); + } catch (error) { + console.log(error); + } + + if (message.action === 'storage-loaded') { + ImprovedTube.storage = message.storage; + + ImprovedTube.init(); + } else if (message.action === 'storage-changed') { + var camelized_key = message.camelizedKey; + + ImprovedTube.storage[message.key] = message.value; + + if (camelized_key === 'blacklistActivate') { + camelized_key = 'blacklist'; + } else if (camelized_key === 'playerForcedPlaybackSpeed') { + camelized_key = 'playerPlaybackSpeed'; + } + + if (ImprovedTube[camelized_key]) { + ImprovedTube[camelized_key](); + } + } else if (message.focus === true) { + ImprovedTube.focus = true; + + ImprovedTube.pageOnFocus(); + } else if (message.blur === true) { + ImprovedTube.focus = false; + + ImprovedTube.pageOnFocus(); + + document.dispatchEvent(new CustomEvent('improvedtube-blur')); + } else if (message.pause === true) { + if (ImprovedTube.elements.player) { + ImprovedTube.played_before_blur = ImprovedTube.elements.player.getPlayerState() === 1; + ImprovedTube.elements.player.pauseVideo(); + } + } else if (message.hasOwnProperty('setVolume')) { + if (ImprovedTube.elements.player) { + ImprovedTube.elements.player.setVolume(message.setVolume); + } + } else if (message.hasOwnProperty('setPlaybackSpeed')) { + if (ImprovedTube.elements.player) { + ImprovedTube.elements.player.setPlaybackRate(message.setPlaybackSpeed); + } + } else if (message.deleteCookies === true) { + ImprovedTube.deleteYoutubeCookies(); + } else if (message.hasOwnProperty('responseOptionsUrl')) { + var iframe = document.querySelector('.it-button__iframe'); + + if (iframe) { + iframe.src = message.responseOptionsUrl; + } + } else if (message.hasOwnProperty('mixer')) { + if (ImprovedTube.elements.player) { + /*document.documentElement.setAttribute('it-response', JSON.stringify({ + mixer: true, + url: location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3), + volume: ImprovedTube.elements.player.getVolume(), + playbackRate: ImprovedTube.elements.player.getPlaybackRate(), + title: document.title + }));*/ + } + } + } +}); + +/*-------------------------------------------------------------- +# SEND +--------------------------------------------------------------*/ + +ImprovedTube.messages.send = function (message) { + if (typeof message === 'object') { + message = JSON.stringify(message); + } + + this.queue.push(message); + + if (this.queue.length === 1) { + this.element.textContent = message; + + document.dispatchEvent(new CustomEvent('it-message-from-youtube')); + } +}; \ No newline at end of file diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js new file mode 100644 index 000000000..d7a2c5fe7 --- /dev/null +++ b/content-scripts/website-context/functions.js @@ -0,0 +1,531 @@ +/*-------------------------------------------------------------- +>>> FUNCTIONS +--------------------------------------------------------------*/ + +ImprovedTube.childHandler = function (node) { + var children = node.children; + + this.ytElementsHandler(node); + + if (children) { + for (var i = 0, l = children.length; i < l; i++) { + ImprovedTube.childHandler(children[i]); + } + } +}; + +ImprovedTube.ytElementsHandler = function (node) { + var name = node.nodeName, + id = node.id; + + if (name === 'A' && node.href) { + this.channelDefaultTab(node); + + if (node.className.indexOf('ytd-thumbnail') !== -1) { + this.blacklist('video', node); + } + + if (node.href.match(/(channel|user|c)\/([^/]+)/)) { + this.blacklist('channel', node); + } + } else if (name === 'META') { + if (node.getAttribute('itemprop') === 'genre') { + ImprovedTube.genre = node.content; + } + } else if (name === 'YTD-TOGGLE-BUTTON-RENDERER') { + if ( + node.parentComponent && + node.parentComponent.nodeName === 'YTD-MENU-RENDERER' && + node.parentComponent.parentComponent && + node.parentComponent.parentComponent.nodeName === 'YTD-PLAYLIST-PANEL-RENDERER' + ) { + var index = Array.prototype.indexOf.call(node.parentNode.children, node); + + if (index === 0) { + this.elements.playlist.repeat_button = node; + + this.playlistRepeat(); + + this.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode; + + this.playlistReverse(); + } else if (index === 1) { + this.elements.playlist.shuffle_button = node; + + this.playlistShuffle(); + + this.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode; + + this.playlistReverse(); + } + } + } else if (name === 'YTD-GUIDE-SECTION-RENDERER' && !this.elements.sidebar_section) { + this.elements.sidebar_section = node; + + this.improvedtubeYoutubeIcon(); + } else if (name === 'YTD-VIDEO-PRIMARY-INFO-RENDERER') { + this.elements.video_title = node.querySelector('.title.ytd-video-primary-info-renderer'); + + this.improvedtubeYoutubeIcon(); + this.improvedtubeYoutubeButtonsUnderPlayer(); + } else if (name === 'YTD-VIDEO-SECONDARY-INFO-RENDERER') { + this.elements.yt_channel_name = node.querySelector('ytd-channel-name'); + this.elements.yt_channel_link = node.querySelector('ytd-channel-name a'); + + if (document.documentElement.dataset.pageType === 'video') { + this.howLongAgoTheVideoWasUploaded(); + this.channelVideosCount(); + } + } else if (name === 'YTD-SUBSCRIBE-BUTTON-RENDERER') { + if (node.className.indexOf('ytd-c4-tabbed-header-renderer') !== -1) { + ImprovedTube.blacklist('channel', node); + } + + ImprovedTube.elements.subscribe_button = node; + } else if (id === 'chat') { + this.elements.livechat.button = node.querySelector('ytd-toggle-button-renderer'); + + this.livechat(); + } else if (name === 'YTD-MASTHEAD' && !this.elements.masthead) { + this.elements.masthead = { + start: node.querySelector('#start'), + end: node.querySelector('#end'), + logo: node.querySelector('a#logo') + }; + + this.improvedtubeYoutubeIcon(); + } else if (name === 'YTD-PLAYER' && !this.elements.ytd_player) { + ImprovedTube.elements.ytd_player = node; + } else if (id === 'movie_player' && !this.elements.player) { + if (!this.elements.ytd_player) {} + + ImprovedTube.elements.player = node; + ImprovedTube.elements.video = node.querySelector('video'); + ImprovedTube.elements.player_left_controls = node.querySelector('.ytp-left-controls'); + ImprovedTube.elements.player_thumbnail = node.querySelector('.ytp-cued-thumbnail-overlay-image'); + ImprovedTube.elements.player_subtitles_button = node.querySelector('.ytp-subtitles-button'); + + ImprovedTube.playerSize(); + + new MutationObserver(function (mutationList) { + for (var i = 0, l = mutationList.length; i < l; i++) { + var mutation = mutationList[i]; + + if (mutation.type === 'childList') { + for (var j = 0, k = mutation.addedNodes.length; j < k; j++) { + var node = mutation.addedNodes[j]; + + if (node.nodeName === 'DIV' && node.className.indexOf('ytp-ad-player-overlay') !== -1) { + ImprovedTube.playerAds(node); + } + } + } + } + }).observe(node, { + attributes: false, + childList: true, + subtree: true + }); + + new MutationObserver(function (mutationList) { + for (var i = 0, l = mutationList.length; i < l; i++) { + var mutation = mutationList[i]; + + if (mutation.type === 'attributes') { + if (mutation.attributeName === 'style') { + ImprovedTube.playerHdThumbnail(); + } + } + } + }).observe(ImprovedTube.elements.player_thumbnail, { + attributes: true, + attributeFilter: ['style'], + childList: false, + subtree: false + }); + } else if (name === 'YTD-WATCH-FLEXY') { + this.elements.ytd_watch = node; + + if ( + this.isset(this.storage.player_size) && + this.storage.player_size !== 'do_not_change' + ) { + node.calculateCurrentPlayerSize_ = function () { + if (!this.theater && ImprovedTube.elements.player) { + if (this.updateStyles) { + this.updthisateStyles({ + '--ytd-watch-flexy-width-ratio': 1, + '--ytd-watch-flexy-height-ratio': 0.5625 + }); + + this.updateStyles({ + '--ytd-watch-width-ratio': 1, + '--ytd-watch-height-ratio': 0.5625 + }); + } + + return { + width: ImprovedTube.elements.player.offsetWidth, + height: Math.round(ImprovedTube.elements.player.offsetWidth / (16 / 9)) + }; + } + + return { + width: NaN, + height: NaN + }; + }; + + node.calculateNormalPlayerSize_ = node.calculateCurrentPlayerSize_; + } + + new MutationObserver(function (mutationList) { + for (var i = 0, l = mutationList.length; i < l; i++) { + var mutation = mutationList[i]; + + if (mutation.type === 'attributes') { + if (mutation.attributeName === 'theater') { + setTimeout(function () { + ImprovedTube.playerSize(); + }, 100); + } + } + } + }).observe(node, { + attributes: true, + attributeFilter: ['theater'], + childList: false, + subtree: false + }); + } +}; + +ImprovedTube.pageType = function () { + if (location.pathname === '/') { + document.documentElement.dataset.pageType = 'home'; + } else if (/\/subscriptions\?/.test(location.href)) { + document.documentElement.dataset.pageType = 'subscriptions'; + } else if (/\/watch\?/.test(location.href)) { + document.documentElement.dataset.pageType = 'video'; + } else if (/\/channel|user|c\//.test(location.href)) { + document.documentElement.dataset.pageType = 'channel'; + } else { + document.documentElement.dataset.pageType = 'other'; + } +}; + +ImprovedTube.pageOnFocus = function () { + this.playerAutopauseWhenSwitchingTabs(); +}; + +ImprovedTube.videoPageUpdate = function () { + if (document.documentElement.dataset.pageType === 'video') { + var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); + + if (this.storage.track_watched_videos === true) { + if (video_id) { + ImprovedTube.messages.send({ + action: 'watched', + type: 'add', + id: video_id, + title: document.title + }); + } + } + + this.initialVideoUpdateDone = true; + + this.howLongAgoTheVideoWasUploaded(); + this.channelVideosCount(); + + this.upNextAutoplay(); + this.playerAutofullscreen(); + this.playerScreenshotButton(); + this.playerRepeatButton(); + this.playerRotateButton(); + this.playerPopupButton(); + this.playerControls(); + } +}; + +ImprovedTube.playerOnPlay = function () { + HTMLMediaElement.prototype.play = (function (original) { + return function () { + this.removeEventListener('loadedmetadata', ImprovedTube.playerOnLoadedMetadata); + this.addEventListener('loadedmetadata', ImprovedTube.playerOnLoadedMetadata); + + this.removeEventListener('timeupdate', ImprovedTube.playerOnTimeUpdate); + this.addEventListener('timeupdate', ImprovedTube.playerOnTimeUpdate); + + this.removeEventListener('pause', ImprovedTube.playerOnPause, true); + this.addEventListener('pause', ImprovedTube.playerOnPause, true); + + this.removeEventListener('ended', ImprovedTube.playerOnEnded, true); + this.addEventListener('ended', ImprovedTube.playerOnEnded, true); + + ImprovedTube.autoplay(this); + ImprovedTube.playerLoudnessNormalization(); + + return original.apply(this, arguments); + } + })(HTMLMediaElement.prototype.play); +}; + +ImprovedTube.initPlayer = function () { + if (ImprovedTube.elements.player && ImprovedTube.video_url !== location.href) { + + ImprovedTube.video_url = location.href; + ImprovedTube.played_before_blur = false; + + delete ImprovedTube.elements.player.dataset.defaultQuality; + + ImprovedTube.forcedPlayVideoFromTheBeginning(); + ImprovedTube.forcedTheaterMode(); + ImprovedTube.playerPlaybackSpeed(false); + ImprovedTube.subtitles(); + ImprovedTube.subtitlesLanguage(); + ImprovedTube.subtitlesFontFamily(); + ImprovedTube.subtitlesFontColor(); + ImprovedTube.subtitlesFontSize(); + ImprovedTube.subtitlesBackgroundColor(); + ImprovedTube.subtitlesWindowColor(); + ImprovedTube.subtitlesWindowOpacity(); + ImprovedTube.subtitlesCharacterEdgeStyle(); + ImprovedTube.subtitlesFontOpacity(); + ImprovedTube.subtitlesBackgroundOpacity(); + ImprovedTube.playerQuality(); + ImprovedTube.playerVolume(); + + if (location.href.indexOf('/embed/') === -1) { + ImprovedTube.miniPlayer(); + } + } +}; + +ImprovedTube.playerOnLoadedMetadata = function () { + setTimeout(function () { + ImprovedTube.playerSize(); + }, 100); +}; + +ImprovedTube.playerOnTimeUpdate = function () { + if (ImprovedTube.video_src !== this.src) { + ImprovedTube.video_src = this.src; + + if (ImprovedTube.initialVideoUpdateDone !== true) { + ImprovedTube.playerQuality(); + } + } else if (ImprovedTube.latestVideoDuration !== this.duration) { + ImprovedTube.latestVideoDuration = this.duration; + + ImprovedTube.playerQuality(); + } + + ImprovedTube.alwaysShowProgressBar(); + ImprovedTube.playerRemainingDuration(); + + ImprovedTube.played_time += .25; +}; + +ImprovedTube.playerOnPause = function (event) { + ImprovedTube.playlistUpNextAutoplay(event); + + if (ImprovedTube.elements.yt_channel_name) { + ImprovedTube.messages.send({ + action: 'analyzer', + name: ImprovedTube.elements.yt_channel_name.__data.tooltipText, + time: ImprovedTube.played_time + }); + } + + ImprovedTube.played_time = 0; +}; + +ImprovedTube.playerOnEnded = function (event) { + ImprovedTube.playlistUpNextAutoplay(event); + + ImprovedTube.messages.send({ + action: 'analyzer', + name: ImprovedTube.elements.yt_channel_name.__data.tooltipText, + time: ImprovedTube.played_time + }); + + ImprovedTube.played_time = 0; +}; + +ImprovedTube.onkeydown = function () { + window.addEventListener('keydown', function () { + if ( + ImprovedTube.elements.player && + ImprovedTube.elements.player.className.indexOf('ad-showing') === -1 + ) { + ImprovedTube.allow_autoplay = true; + } + }, true); +}; + +ImprovedTube.onmousedown = function (event) { + window.addEventListener('mousedown', function (event) { + if (ImprovedTube.elements.player && ImprovedTube.elements.player.className.indexOf('ad-showing') === -1) { + var path = event.composedPath(); + + for (var i = 0, l = path.length; i < l; i++) { + if ( + path[i].className && + path[i].className.indexOf && + ( + path[i].className.indexOf('html5-main-video') !== -1 || + path[i].className.indexOf('ytp-play-button') !== -1 + ) + ) { + ImprovedTube.allow_autoplay = true; + } + } + } + }, true); +}; + +ImprovedTube.getCookieValueByName = function (name) { + var match = document.cookie.match(new RegExp('([; ]' + name + '|^' + name + ')([^\\s;]*)', 'g')); + + if (match) { + var cookie = match[0]; + + return cookie.replace(name + '=', '').replace(' ', ''); + } else + return ''; +}; + +ImprovedTube.getParam = function (query, name) { + var params = query.split('&'), + param = false; + + for (var i = 0; i < params.length; i++) { + params[i] = params[i].split('='); + + if (params[i][0] == name) { + param = params[i][1]; + } + } + + if (param) { + return param; + } else { + return false; + } +}; + +ImprovedTube.getParams = function (query) { + var params = query.split('&'), + result = {}; + + for (var i = 0, l = params.length; i < l; i++) { + params[i] = params[i].split('='); + + result[params[i][0]] = params[i][1]; + } + + return result; +}; + +ImprovedTube.setCookie = function (name, value) { + var date = new Date(); + + date.setTime(date.getTime() + 3.154e+10); + + document.cookie = name + '=' + value + '; path=/; domain=.youtube.com; expires=' + date.toGMTString(); +}; + +ImprovedTube.createPlayerButton = function (options) { + var controls = this.elements.player_left_controls; + + if (controls) { + var button = document.createElement('button'); + + button.className = 'ytp-button it-player-button'; + + button.dataset.title = options.title; + + button.addEventListener('mouseover', function () { + var tooltip = document.createElement('div'), + rect = this.getBoundingClientRect(); + + tooltip.className = 'it-player-button--tooltip'; + + tooltip.style.left = rect.left + rect.width / 2 + 'px'; + tooltip.style.top = rect.top - 8 + 'px'; + + tooltip.textContent = this.dataset.title; + + function mouseleave() { + tooltip.remove(); + + this.removeEventListener('mouseleave', mouseleave); + } + + this.addEventListener('mouseleave', mouseleave); + + document.body.appendChild(tooltip); + }); + + if (options.id) { + if (this.elements.buttons[options.id]) { + this.elements.buttons[options.id].remove(); + } + + button.id = options.id; + + this.elements.buttons[options.id] = button; + } + + if (options.child) { + button.appendChild(options.child); + } + + button.style.opacity = options.opacity || '.5'; + + if (options.onclick) { + button.onclick = options.onclick; + } + + controls.insertBefore(button, controls.childNodes[3]); + } +}; + +ImprovedTube.empty = function (element) { + for (var i = element.childNodes.length - 1; i > -1; i--) { + element.childNodes[i].remove(); + } +}; + +ImprovedTube.isset = function (variable) { + return !(typeof variable === 'undefined' || variable === null || variable === 'null'); +}; + +ImprovedTube.stopPropagation = function (event) { + event.stopPropagation(); +}; + +ImprovedTube.showStatus = function (value) { + if (!this.elements.status) { + this.elements.status = document.createElement('div'); + + this.elements.status.id = 'it-status'; + } + + if (typeof value === 'number') { + value = value.toFixed(2); + } + + this.elements.status.textContent = value; + + if (ImprovedTube.status_timer) { + clearTimeout(ImprovedTube.status_timer); + } + + ImprovedTube.status_timer = setTimeout(function () { + ImprovedTube.elements.status.remove(); + }, 500); + + this.elements.player.appendChild(this.elements.status); +}; \ No newline at end of file diff --git a/content-scripts/website-context/init.js b/content-scripts/website-context/init.js new file mode 100644 index 000000000..639f2e9e4 --- /dev/null +++ b/content-scripts/website-context/init.js @@ -0,0 +1,104 @@ +/*-------------------------------------------------------------- +>>> INITIALIZATION +--------------------------------------------------------------*/ + +ImprovedTube.messages.create(); +ImprovedTube.messages.listener(); + +if (document.body) { + ImprovedTube.childHandler(document.body); +} + +ImprovedTube.observer = new MutationObserver(function (mutationList) { + for (var i = 0, l = mutationList.length; i < l; i++) { + var mutation = mutationList[i]; + + if (mutation.type === 'childList') { + for (var j = 0, k = mutation.addedNodes.length; j < k; j++) { + ImprovedTube.childHandler(mutation.addedNodes[j]); + } + } + } +}); + +ImprovedTube.observer.observe(document.documentElement, { + attributes: false, + childList: true, + subtree: true +}); + +new MutationObserver(function (mutationList) { + for (var i = 0, l = mutationList.length; i < l; i++) { + var mutation = mutationList[i]; + + if (mutation.type === 'attributes') { + ImprovedTube.channelDefaultTab(mutation.target); + } + } +}).observe(document.documentElement, { + attributeFilter: ['href'], + attributes: true, + childList: true, + subtree: true +}); + +ImprovedTube.init = function () { + window.addEventListener('yt-page-data-updated', function () { + ImprovedTube.pageType(); + }); + + var yt_player_updated = function () { + document.dispatchEvent(new CustomEvent('improvedtube-player-loaded')); + + window.removeEventListener('yt-player-updated', yt_player_updated); + }; + + window.addEventListener('yt-player-updated', yt_player_updated); + + this.playerH264(); + this.player60fps(); + this.playerSDR(); + this.shortcuts(); + this.playerOnPlay(); + this.onkeydown(); + this.onmousedown(); + this.youtubeLanguage(); + + if (ImprovedTube.elements.player && ImprovedTube.elements.player.setPlaybackRate) { + ImprovedTube.videoPageUpdate(); + ImprovedTube.initPlayer(); + } + + if (window.matchMedia) { + document.documentElement.dataset.systemColorScheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; + } +}; + +document.addEventListener('yt-navigate-finish', function () { + ImprovedTube.pageType(); + + if (ImprovedTube.elements.player && ImprovedTube.elements.player.setPlaybackRate) { + ImprovedTube.videoPageUpdate(); + ImprovedTube.initPlayer(); + } + + ImprovedTube.channelPlayAllButton(); +}); + +document.addEventListener('yt-page-data-updated', function (event) { + if (/[?&]list=([^&]+).*$/.test(location.href)) { + ImprovedTube.playlistRepeat(); + ImprovedTube.playlistShuffle(); + ImprovedTube.playlistReverse(); + } +}); + +window.addEventListener('load', function () { + ImprovedTube.elements.masthead = { + start: document.querySelector('ytd-masthead #start'), + end: document.querySelector('ytd-masthead #end'), + logo: document.querySelector('ytd-masthead a#logo') + }; + + ImprovedTube.improvedtubeYoutubeIcon(); +}); \ No newline at end of file diff --git a/content-scripts/website-context/mutations.js b/content-scripts/website-context/mutations.js new file mode 100644 index 000000000..32b493533 --- /dev/null +++ b/content-scripts/website-context/mutations.js @@ -0,0 +1,22 @@ +/*-------------------------------------------------------------- +>>> MUTATIONS +---------------------------------------------------------------- +# Media element + # Play +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# MEDIA ELEMENT +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# PLAY +--------------------------------------------------------------*/ + +HTMLMediaElement.prototype.play = (function (original) { + return function () { + document.dispatchEvent(new CustomEvent('it-play')); + + return original.apply(this, arguments); + } +})(HTMLMediaElement.prototype.play); \ No newline at end of file diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js new file mode 100644 index 000000000..f32abbe1a --- /dev/null +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -0,0 +1,344 @@ +/*------------------------------------------------------------------------------ +4.2.0 APPEARANCE +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +4.2.1 PLAYER +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +4.2.1.1 PLAYER SIZE +------------------------------------------------------------------------------*/ + +ImprovedTube.playerSize = function () { + if (window.self === window.top) { + if (this.elements.player_size_style) { + this.elements.player_size_style.remove(); + } + + if (this.storage.forced_theater_mode === true && this.storage.player_size === 'fit_to_window') { + var button = document.querySelector('button.ytp-size-button'), + container = document.getElementById('player-theater-container'); + + if (button && (container && !container.firstChild)) { + button.click(); + } + } + + if (this.storage.player_size === 'fit_to_window' && this.elements.ytd_watch && this.elements.ytd_player) { + var video = this.elements.video, + aspect_ratio = video.videoWidth / video.videoHeight, + width, + height, + max_height = window.innerHeight, + style = this.elements.player_size_style || document.createElement('style'); + + if (this.elements.ytd_watch.theater === true) { + width = this.elements.ytd_player.offsetWidth; + + style.textContent = '[data-page-type="video"][it-player-size="fit_to_window"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) video {'; + } else { + width = this.elements.ytd_watch.offsetWidth; + + style.textContent = '[data-page-type="video"][it-player-size="fit_to_window"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) video {'; + } + + height = width / aspect_ratio; + + if (height > max_height) { + width -= (height - max_height) * aspect_ratio; + height = max_height; + } + + style.textContent += 'width:' + width + 'px !important;'; + style.textContent += 'height:' + height + 'px !important;'; + + style.textContent += '}'; + + this.elements.player_size_style = style; + + document.body.appendChild(style); + + setTimeout(function () { + window.dispatchEvent(new Event('resize')); + }, 100); + } + + if (this.storage.player_size === 'custom') { + var width = Number(this.storage.custom_player_size_width) || 1280, + height = Number(this.storage.custom_player_size_height) || 720, + style = this.elements.player_size_style || document.createElement('style'); + + style.textContent = '[data-page-type="video"][it-player-size="custom"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video {'; + style.textContent += 'width:' + width + 'px !important;'; + style.textContent += 'height:' + height + 'px !important;'; + style.textContent += '}'; + + style.textContent += '[data-page-type="video"][it-player-size="custom"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-container-inner.ytd-watch-flexy {'; + style.textContent += 'padding-top:' + height + 'px !important;'; + style.textContent += '}'; + + style.textContent += '[data-page-type="video"][it-player-size="custom"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-theater-container.ytd-watch-flexy {'; + style.textContent += 'height:' + height + 'px !important;'; + style.textContent += 'min-height:' + height + 'px !important;'; + style.textContent += 'max-height:' + height + 'px !important;'; + style.textContent += '}'; + + this.elements.player_size_style = style; + + document.body.appendChild(style); + + setTimeout(function () { + window.dispatchEvent(new Event('resize')); + }, 100); + } + } +}; + + +/*------------------------------------------------------------------------------ +4.2.1.2 FORCED THEATER MODE +------------------------------------------------------------------------------*/ + +ImprovedTube.forcedTheaterMode = function () { + if ( + window.self === window.top && + this.storage.forced_theater_mode === true && + this.elements.ytd_watch && + this.elements.player + ) { + var button = this.elements.player.querySelector('button.ytp-size-button'); + + if (button && this.elements.ytd_watch.theater === false) { + document.cookie = 'wide=1;domain=.youtube.com'; + + setTimeout(function () { + button.click(); + }, 200); + } + } +}; + + +/*------------------------------------------------------------------------------ +4.2.1.3 HD THUMBNAIL +------------------------------------------------------------------------------*/ + +ImprovedTube.playerHdThumbnail = function () { + if (this.storage.player_hd_thumbnail === true) { + var thumbnail = ImprovedTube.elements.player_thumbnail; + + if (thumbnail.style.backgroundImage.indexOf('/hqdefault.jpg') !== -1) { + thumbnail.style.backgroundImage = thumbnail.style.backgroundImage.replace('/hqdefault.jpg', '/maxresdefault.jpg'); + } + } +}; + + +/*------------------------------------------------------------------------------ +4.2.1.4 ALWAYS SHOW PROGRESS BAR +------------------------------------------------------------------------------*/ + +ImprovedTube.alwaysShowProgressBar = function () { + if (this.storage.always_show_progress_bar === true) { + var player = ImprovedTube.elements.player; + + if (player && player.className.indexOf('ytp-autohide') !== -1) { + var played = player.getCurrentTime() * 100 / player.getDuration(), + loaded = player.getVideoBytesLoaded() * 100, + play_bars = player.querySelectorAll('.ytp-play-progress'), + load_bars = player.querySelectorAll('.ytp-load-progress'), + width = 0, + progress_play = 0, + progress_load = 0; + + for (var i = 0, l = play_bars.length; i < l; i++) { + width += play_bars[i].offsetWidth; + } + + var width_percent = width / 100; + + for (var i = 0, l = play_bars.length; i < l; i++) { + var a = play_bars[i].offsetWidth / width_percent, + b = 0, + c = 0; + + if (played - progress_play >= a) { + b = 100; + } else if (played > progress_play && played < a + progress_play) { + b = 100 * ((played - progress_play) * width_percent) / play_bars[i].offsetWidth; + } + + play_bars[i].style.transform = 'scaleX(' + b / 100 + ')'; + + if (loaded - progress_load >= a) { + c = 100; + } else if (loaded > progress_load && loaded < a + progress_load) { + c = 100 * ((loaded - progress_load) * width_percent) / play_bars[i].offsetWidth; + } + + load_bars[i].style.transform = 'scaleX(' + c / 100 + ')'; + + progress_play += a; + progress_load += a; + } + } + } +}; + + +/*------------------------------------------------------------------------------ +4.2.1.5 VIDEO REMAINING DURATION +------------------------------------------------------------------------------*/ + +ImprovedTube.formatSecond = function (rTime) { + var time = new Date(null); + time.setSeconds(rTime); + if (rTime / 3600 < 1) { + return time.toISOString().substr(14, 5); + } else { + return time.toISOString().substr(11, 8); + } +} + +ImprovedTube.playerRemainingDuration = function () { + var element = document.querySelector('.ytp-time-remaining-duration'); + if (this.storage.player_remaining_duration === true) { + var player = ImprovedTube.elements.player; + var rTime = ImprovedTube.formatSecond((player.getDuration() - player.getCurrentTime()).toFixed(0)); + if (!element) { + var label = document.createElement('span'); + label.textContent = ' (-' + rTime + ')'; + label.className = 'ytp-time-remaining-duration'; + document.querySelector('.ytp-time-display').appendChild(label); + } else { + element.textContent = ' (-' + rTime + ')'; + } + } else if (element) { + element.remove(); + } +}; + + +/*------------------------------------------------------------------------------ +4.2.2 SIDEBAR +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +4.2.2.1 LIVECHAT +------------------------------------------------------------------------------*/ + +ImprovedTube.livechat = function () { + if (this.storage.livechat === 'collapsed') { + ImprovedTube.elements.livechat.button.click(); + } +}; + + +/*------------------------------------------------------------------------------ +4.2.3 DETAILS +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +4.2.3.1 HOW LONG AGO THE VIDEO WAS UPLOADED +------------------------------------------------------------------------------*/ + +ImprovedTube.howLongAgoTheVideoWasUploaded = function () { + if (this.storage.how_long_ago_the_video_was_uploaded === true && this.elements.yt_channel_name) { + var xhr = new XMLHttpRequest(), + key = this.storage['google-api-key'] || ImprovedTube.defaultApiKey, + id = this.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v'); + + function timeSince(date) { + var seconds = Math.floor((new Date() - new Date(date)) / 1000), + interval = Math.floor(seconds / 31536000); + + if (interval > 1) { + return interval + ' years ago'; + } + interval = Math.floor(seconds / 2592000); + if (interval > 1) { + return interval + ' months ago'; + } + interval = Math.floor(seconds / 86400); + if (interval > 1) { + return interval + ' days ago'; + } + interval = Math.floor(seconds / 3600); + if (interval > 1) { + return interval + ' hours ago'; + } + interval = Math.floor(seconds / 60); + if (interval > 1) { + return interval + ' minutes ago'; + } + + return Math.floor(seconds) + ' seconds ago'; + } + + xhr.addEventListener('load', function () { + var response = JSON.parse(this.responseText), + element = ImprovedTube.elements.how_long_ago_the_video_was_uploaded || document.createElement('div'); + + ImprovedTube.empty(element); + + if (response.error) { + element.appendChild(document.createTextNode('• Error: ' + response.error.code)); + } else { + element.appendChild(document.createTextNode('• ' + timeSince(response.items[0].snippet.publishedAt))); + } + + element.className = 'it-how-long-ago-the-video-was-uploaded'; + + ImprovedTube.elements.how_long_ago_the_video_was_uploaded = element; + + document.querySelector('#info #info-text').appendChild(element); + }); + + xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=' + id + '&key=' + key, true); + xhr.send(); + } +}; + + +/*------------------------------------------------------------------------------ +4.2.3.2 SHOW CHANNEL VIDEOS COUNT +------------------------------------------------------------------------------*/ + +ImprovedTube.channelVideosCount = function () { + if (this.storage.channel_videos_count === true && this.elements.yt_channel_link) { + var xhr = new XMLHttpRequest(), + key = this.storage['google-api-key'] || ImprovedTube.defaultApiKey, + id = this.elements.yt_channel_link.href.slice(this.elements.yt_channel_link.href.indexOf('/channel/') + '/channel/'.length); + + if (id.indexOf('/') !== -1) { + id = id.match(/.+?(?=\/)/)[0]; + } + + xhr.addEventListener('load', function () { + var response = JSON.parse(this.responseText), + parent = document.querySelector('#meta ytd-channel-name + yt-formatted-string'), + element = ImprovedTube.elements.channel_videos_count || document.createElement('div'); + + ImprovedTube.empty(element); + + if (response.error) { + element.appendChild(document.createTextNode('• Error: ' + response.error.code)); + } else { + element.appendChild(document.createTextNode('• ' + response.items[0].statistics.videoCount + ' videos')); + } + + element.className = 'it-channel-videos-count'; + + ImprovedTube.elements.channel_videos_count = element; + + parent.appendChild(element); + + ImprovedTube.elements.channel_videos_count = element; + }); + + + xhr.open('GET', 'https://www.googleapis.com/youtube/v3/channels?part=statistics&id=' + id + '&key=' + key, true); + xhr.send(); + } +}; \ No newline at end of file diff --git a/content-scripts/website-context/youtube-features/blacklist.js b/content-scripts/website-context/youtube-features/blacklist.js new file mode 100644 index 000000000..6abf03c8c --- /dev/null +++ b/content-scripts/website-context/youtube-features/blacklist.js @@ -0,0 +1,175 @@ +/*------------------------------------------------------------------------------ +4.8.0 BLACKLIST +------------------------------------------------------------------------------*/ + +ImprovedTube.blacklist = function (type, node) { + if (this.storage.blacklist_activate !== true) { + for (var i = 0, l = this.elements.blacklist_buttons.length; i < l; i++) { + this.elements.blacklist_buttons[i].remove(); + } + + return; + } else if (this.isset(node) === false) { + var a = document.querySelectorAll('a.ytd-thumbnail'), + a2 = document.querySelectorAll('a[href*="/channel/"],a[href*="/user/"],a[href*="/c/"]'), + subscribe_buttons = document.querySelectorAll('ytd-subscribe-button-renderer.ytd-c4-tabbed-header-renderer'); + + for (var i = 0, l = a.length; i < l; i++) { + this.blacklist('video', a[i]); + } + + for (var i = 0, l = subscribe_buttons.length; i < l; i++) { + this.blacklist('channel', subscribe_buttons[i]); + } + + for (var i = 0, l = a2.length; i < l; i++) { + this.blacklist('channel', a2[i]); + } + } + + if (!this.storage.blacklist || typeof this.storage.blacklist !== 'object') { + this.storage.blacklist = { + channels: {}, + videos: {} + }; + } + + if (!this.storage.blacklist.channels || typeof this.storage.blacklist.channels !== 'object') { + this.storage.blacklist.channels = {}; + } + + if (!this.storage.blacklist.videos || typeof this.storage.blacklist.videos !== 'object') { + this.storage.blacklist.videos = {}; + } + + if (type === 'video') { + var button = document.createElement('button'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'), + id = node.href.match(ImprovedTube.regex.video_id); + + button.className = 'it-add-to-blacklist'; + button.addEventListener('click', function (event) { + if (this.parentNode.href) { + var data = this.parentNode.parentNode.__data, + id = this.parentNode.href.match(ImprovedTube.regex.video_id), + title = ''; + + if ( + data && + data.data && + data.data.title && + data.data.title.runs && + data.data.title.runs[0] + ) { + title = data.data.title.runs[0].text; + } else if ( + data && + data && + data.data && + data.data.title.simpleText + ) { + title = data.data.title.simpleText; + } + + if (id && id[1]) { + ImprovedTube.messages.send({ + action: 'blacklist', + type: 'video', + id: id[1], + title + }); + + ImprovedTube.storage.blacklist.videos[id[1]] = { + title: title + }; + + this.parentNode.parentNode.__dataHost.className += ' it-blacklisted-video'; + + event.preventDefault(); + event.stopPropagation(); + } + } + }, true); + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M12 2a10 10 0 100 20 10 10 0 000-20zm0 18A8 8 0 015.69 7.1L16.9 18.31A7.9 7.9 0 0112 20zm6.31-3.1L7.1 5.69A8 8 0 0118.31 16.9z'); + + svg.appendChild(path); + button.appendChild(svg); + + node.appendChild(button); + + this.elements.blacklist_buttons.push(button); + + if (id && id[1] && ImprovedTube.storage.blacklist.videos[id[1]]) { + node.parentNode.__dataHost.classList.add('it-blacklisted-video'); + } + } else if (type === 'channel') { + if (node.nodeName === 'A') { + try { + var id = node.href.match(/(channel|user|c)\/([^/]+)/)[2]; + + if (this.storage.blacklist.channels[id]) { + var parent = node.parentNode.__dataHost.__dataHost; + + if ( + parent.nodeName === 'YTD-GRID-VIDEO-RENDERER' && + parent.nodeName === 'YTD-VIDEO-META-BLOCK' + ) { + parent.classList.add('it-blacklisted-video'); + } + } + } catch (err) {} + } else { + var button = this.elements.blacklistChannel || document.createElement('button'), + id = location.href.match(/(channel|user|c)\/([^/]+)/)[2]; + + button.className = 'it-add-channel-to-blacklist'; + + if (this.storage.blacklist.channels[id]) { + button.innerText = 'Remove from blacklist'; + button.added = true; + } else { + button.innerText = 'Add to blacklist'; + button.added = false; + } + + button.addEventListener('click', function (event) { + var data = this.parentNode.__dataHost.__data.data, + id = location.href.match(/(channel|user|c)\/([^/]+)/)[2]; + + this.added = !this.added; + + ImprovedTube.messages.send({ + type: 'channel', + id, + title: data.title, + prevent: data.avatar.thumbnails[0].url + }); + + ImprovedTube.storage.blacklist.channels[id] = { + title: data.title, + prevent: data.avatar.thumbnails[0].url + }; + + if (this.added) { + button.innerText = 'Remove from blacklist'; + } else { + button.innerText = 'Add to blacklist'; + } + + event.preventDefault(); + event.stopPropagation(); + + return false; + }, true); + + this.elements.blacklist_buttons.push(button); + + node.parentNode.parentNode.appendChild(button); + + this.elements.blacklistChannel = button; + } + } +}; \ No newline at end of file diff --git a/content-scripts/website-context/youtube-features/channel.js b/content-scripts/website-context/youtube-features/channel.js new file mode 100644 index 000000000..4d364c38c --- /dev/null +++ b/content-scripts/website-context/youtube-features/channel.js @@ -0,0 +1,78 @@ +/*------------------------------------------------------------------------------ +4.6.0 CHANNEL +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +4.6.1 DEFAULT CHANNEL TAB +------------------------------------------------------------------------------*/ + +ImprovedTube.channelDefaultTab = function (a) { + var option = this.storage.channel_default_tab; + + if (option && option !== '/' && a.parentNode && a.parentNode.id !== 'contenteditable-root') { + if (this.regex.channel_home_page.test(a.href) && !a.href.endsWith(option)) { + if (!a.dataset.itOrigin) { + a.dataset.itOrigin = a.href.replace(this.regex.channel_home_page_postfix, ''); + } + + a.href = a.dataset.itOrigin + option; + + a.addEventListener('click', function (event) { + event.stopPropagation(); + }, true); + } + } +}; + +/*------------------------------------------------------------------------------ +4.6.2 PLAY ALL BUTTON +------------------------------------------------------------------------------*/ + +ImprovedTube.channelPlayAllButton = function () { + if (this.storage.channel_play_all_button === true) { + if (/\/(channel|user|c)\/[^/]+\/videos/.test(location.href)) { + var container = document.querySelector('ytd-channel-sub-menu-renderer #primary-items'); + + if (!this.elements.playAllButton) { + var button = document.createElement('a'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + button.className = 'it-play-all-button'; + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M6,4l12,8L6,20V4z'); + + svg.appendChild(path); + button.appendChild(svg); + button.appendChild(document.createTextNode('Play all')); + + this.elements.playAllButton = button; + + if (container) { + container.appendChild(button); + } + } else if (container) { + container.appendChild(this.elements.playAllButton); + } + } else if (this.elements.playAllButton) { + this.elements.playAllButton.remove(); + } + + if (this.elements.playAllButton) { + var app = document.querySelector('ytd-app'); + + if ( + app && + app.__data && + app.__data.data && + app.__data.data.response && + app.__data.data.response.metadata && + app.__data.data.response.metadata.channelMetadataRenderer && + app.__data.data.response.metadata.channelMetadataRenderer.externalId + ) { + this.elements.playAllButton.href = '/playlist?list=UU' + app.__data.data.response.metadata.channelMetadataRenderer.externalId.substring(2); + } + } + } +}; \ No newline at end of file diff --git a/content-scripts/website-context/youtube-features/player.js b/content-scripts/website-context/youtube-features/player.js new file mode 100644 index 000000000..490ce1869 --- /dev/null +++ b/content-scripts/website-context/youtube-features/player.js @@ -0,0 +1,1125 @@ +/*------------------------------------------------------------------------------ +4.4.0 PLAYER +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +4.4.1 AUTOPLAY +------------------------------------------------------------------------------*/ + +ImprovedTube.autoplay = function (video) { + if (ImprovedTube.video_url !== location.href) { + ImprovedTube.allow_autoplay = false; + } + + if ( + ( + (location.href.indexOf('/watch?') !== -1 && location.href.indexOf('list=') === -1 && ImprovedTube.storage.player_autoplay === false) || + (location.href.indexOf('/watch?') !== -1 && location.href.indexOf('list=') !== -1 && ImprovedTube.storage.playlist_autoplay === false) || + (ImprovedTube.regex.channel.test(location.href) && ImprovedTube.storage.channel_trailer_autoplay === false) + ) === true && + ImprovedTube.allow_autoplay === false && + video.parentNode.parentNode.classList.contains('ad-showing') === false + ) { + setTimeout(function () { + video.parentNode.parentNode.pauseVideo(); + }); + } +}; + + +/*------------------------------------------------------------------------------ +4.4.2 FORCED PLAY VIDEO FROM THE BEGINNING +------------------------------------------------------------------------------*/ + +ImprovedTube.forcedPlayVideoFromTheBeginning = function () { + if (this.storage.forced_play_video_from_the_beginning === true) { + this.elements.player.seekTo(0); + } +}; + + +/*------------------------------------------------------------------------------ +4.4.2 AUTOPAUSE WHEN SWITCHING TABS +------------------------------------------------------------------------------*/ + +ImprovedTube.playerAutopauseWhenSwitchingTabs = function () { + var player = ImprovedTube.elements.player; + + if (this.storage.player_autopause_when_switching_tabs === true && player) { + if (this.focus === false) { + this.played_before_blur = player.getPlayerState() === 1; + + player.pauseVideo(); + } else if (this.focus === true && this.played_before_blur === true) { + player.playVideo(); + } + } +}; + + +/*------------------------------------------------------------------------------ +4.4.3 FORCED PLAYBACK SPEED +------------------------------------------------------------------------------*/ + +ImprovedTube.playerPlaybackSpeed = function (change) { + var player = this.elements.player, + video = player.querySelector('video'), + option = this.storage.player_playback_speed; + + if (this.isset(option) === false) { + option = 1; + } + + if (this.storage.player_forced_playback_speed === true) { + if (location.href.indexOf('music') === -1 && player.getVideoData().isLive === false) { + player.setPlaybackRate(Number(option)); + video.playbackRate = Number(option); + } else { + player.setPlaybackRate(1); + } + } +}; + + +/*------------------------------------------------------------------------------ +4.4.4 SUBTITLES +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitles = function () { + if (this.storage.player_subtitles === true) { + var player = this.elements.player; + + if (player && player.toggleSubtitlesOn) { + player.toggleSubtitlesOn(); + } + } +}; + + +/*------------------------------------------------------------------------------ +4.4.4.1 SUBTITLES LANGUAGE +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesLanguage = function () { + var option = this.storage.subtitles_language; + + if (this.isset(option) && option !== 'default') { + var player = this.elements.player, + button = this.elements.player_subtitles_button; + + if (player && player.getOption && button && button.getAttribute('aria-pressed') === 'true') { + var tracklist = this.elements.player.getOption('captions', 'tracklist', { + includeAsr: true + }); + + if (tracklist && tracklist[0]) { + tracklist = tracklist[0]; + + tracklist.translationLanguage = { + languageCode: option, + languageName: option + }; + + this.elements.player.setOption('captions', 'track', tracklist); + } + } + } +}; + + +/*------------------------------------------------------------------------------ +4.4.4.1 SUBTITLES FONT FAMILY +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesFontFamily = function () { + var option = this.storage.subtitles_font_family; + + if (this.isset(option)) { + var player = this.elements.player, + button = this.elements.player_subtitles_button; + + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true') { + var settings = player.getSubtitlesUserSettings(); + + if (settings) { + settings.fontFamily = Number(option); + + player.updateSubtitlesUserSettings(settings); + } + } + } +}; + + +/*------------------------------------------------------------------------------ +4.4.4.2 SUBTITLES FONT COLOR +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesFontColor = function () { + var option = this.storage.subtitles_font_color; + + if (this.isset(option)) { + var player = this.elements.player, + button = this.elements.player_subtitles_button; + + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true') { + var settings = player.getSubtitlesUserSettings(); + + if (settings) { + settings.color = option; + + player.updateSubtitlesUserSettings(settings); + } + } + } +}; + + +/*------------------------------------------------------------------------------ +4.4.4.3 SUBTITLES FONT SIZE +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesFontSize = function () { + var option = this.storage.subtitles_font_size; + + if (this.isset(option)) { + var player = this.elements.player, + button = this.elements.player_subtitles_button; + + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true') { + var settings = player.getSubtitlesUserSettings(); + + if (settings) { + settings.fontSizeIncrement = Number(option); + + player.updateSubtitlesUserSettings(settings); + } + } + } +}; + + +/*------------------------------------------------------------------------------ +4.4.4.4 SUBTITLES BACKGROUND COLOR +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesBackgroundColor = function () { + var option = this.storage.subtitles_background_color; + + if (this.isset(option)) { + var player = this.elements.player, + button = this.elements.player_subtitles_button; + + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true') { + var settings = player.getSubtitlesUserSettings(); + + if (settings) { + settings.background = option; + + player.updateSubtitlesUserSettings(settings); + } + } + } +}; + + +/*------------------------------------------------------------------------------ +4.4.4.5 SUBTITLES BACKGROUND OPACITY +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesBackgroundOpacity = function () { + var option = this.storage.subtitles_background_opacity; + + if (this.isset(option)) { + var player = this.elements.player, + button = this.elements.player_subtitles_button; + + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true') { + var settings = player.getSubtitlesUserSettings(); + + if (settings) { + settings.backgroundOpacity = option / 100; + + player.updateSubtitlesUserSettings(settings); + } + } + } +}; + + +/*------------------------------------------------------------------------------ +4.4.4.6 SUBTITLES WINDOW COLOR +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesWindowColor = function () { + var option = this.storage.subtitles_window_color; + + if (this.isset(option)) { + var player = this.elements.player, + button = this.elements.player_subtitles_button; + + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true') { + var settings = player.getSubtitlesUserSettings(); + + if (settings) { + settings.windowColor = option; + + player.updateSubtitlesUserSettings(settings); + } + } + } +}; + + +/*------------------------------------------------------------------------------ +4.4.4.7 SUBTITLES WINDOW OPACITY +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesWindowOpacity = function () { + var option = this.storage.subtitles_window_opacity; + + if (this.isset(option)) { + var player = this.elements.player, + button = this.elements.player_subtitles_button; + + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true') { + var settings = player.getSubtitlesUserSettings(); + + if (settings) { + settings.windowOpacity = Number(option) / 100; + + player.updateSubtitlesUserSettings(settings); + } + } + } +}; + + +/*------------------------------------------------------------------------------ +4.4.4.8 SUBTITLES CHARACTER EDGE STYLE +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesCharacterEdgeStyle = function () { + var option = this.storage.subtitles_character_edge_style; + + if (this.isset(option)) { + var player = this.elements.player, + button = this.elements.player_subtitles_button; + + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true') { + var settings = player.getSubtitlesUserSettings(); + + if (settings) { + settings.charEdgeStyle = Number(option); + + player.updateSubtitlesUserSettings(settings); + } + } + } +}; + + +/*------------------------------------------------------------------------------ +4.4.4.9 SUBTITLES FONT OPACITY +------------------------------------------------------------------------------*/ + +ImprovedTube.subtitlesFontOpacity = function () { + var option = this.storage.subtitles_font_opacity; + + if (this.isset(option)) { + var player = this.elements.player, + button = this.elements.player_subtitles_button; + + if (player && player.getSubtitlesUserSettings && button && button.getAttribute('aria-pressed') === 'true') { + var settings = player.getSubtitlesUserSettings(); + + if (settings) { + settings.textOpacity = option / 100; + + player.updateSubtitlesUserSettings(settings); + } + } + } +}; + + +/*------------------------------------------------------------------------------ +4.4.5 UP NEXT AUTOPLAY +------------------------------------------------------------------------------*/ + +ImprovedTube.upNextAutoplay = function () { + var option = this.storage.up_next_autoplay; + + if (this.isset(option)) { + var toggle = document.querySelector('.ytp-autonav-toggle-button'); + + if (toggle) { + if (option !== (toggle.getAttribute('aria-checked') === 'true')) { + toggle.click(); + } + } + } +}; + + +/*------------------------------------------------------------------------------ +4.4.6 ADS +------------------------------------------------------------------------------*/ + +ImprovedTube.playerAds = function (parent) { + var button = parent.querySelector('.ytp-ad-skip-button.ytp-button'); + if (button) { + if (this.storage.player_ads === 'block_all') { + button.click(); + } else if (this.storage.player_ads === 'subscribed_channels') { + if (!parent.querySelector('#meta paper-button[subscribed]')) { + button.click(); + } + } else if (this.storage.player_ads === 'block_music') { + if (ImprovedTube.elements.genre === 'music') { + button.click(); + } + } + } +}; + + +/*------------------------------------------------------------------------------ +4.4.7 CUSTOM MINI-PLAYER +------------------------------------------------------------------------------*/ + +ImprovedTube.mini_player__setSize = function (width, height) { + ImprovedTube.elements.player.style.width = width + 'px'; + ImprovedTube.elements.player.style.height = height + 'px'; +}; + +ImprovedTube.miniPlayer_scroll = function () { + if (window.scrollY >= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.elements.player.classList.contains('ytp-player-minimized') === false) { + ImprovedTube.mini_player__mode = true; + + ImprovedTube.mini_player__original_width = ImprovedTube.elements.player.offsetWidth; + ImprovedTube.mini_player__original_height = ImprovedTube.elements.player.offsetHeight; + + ImprovedTube.elements.player.classList.add('it-mini-player'); + + ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); + ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); + + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); + + ImprovedTube.elements.player.style.transform = 'translate(' + ImprovedTube.mini_player__x + 'px, ' + ImprovedTube.mini_player__y + 'px)'; + + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); + + window.addEventListener('mousedown', ImprovedTube.miniPlayer_mouseDown); + window.addEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); + + window.dispatchEvent(new Event('resize')); + } else if (window.scrollY < 256 && ImprovedTube.mini_player__mode === true || ImprovedTube.elements.player.classList.contains('ytp-player-minimized') === true) { + ImprovedTube.mini_player__mode = false; + ImprovedTube.elements.player.classList.remove('it-mini-player'); + ImprovedTube.mini_player__move = false; + ImprovedTube.elements.player.style.transform = 'translate(' + 0 + 'px, ' + 0 + 'px)'; + ImprovedTube.elements.player.style.width = ''; + ImprovedTube.elements.player.style.height = ''; + + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); + + window.removeEventListener('mousedown', ImprovedTube.miniPlayer_mouseDown); + window.removeEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); + + window.dispatchEvent(new Event('resize')); + } +}; + +ImprovedTube.miniPlayer_mouseDown = function (event) { + if (event.button !== 0) { + return false; + } + + if (ImprovedTube.miniPlayer_resize() === true) { + return false; + } + + var is_player = false, + path = event.composedPath(); + + for (var i = 0, l = path.length; i < l; i++) { + if ((path[i].classList && path[i].classList.contains('it-mini-player')) === true) { + is_player = true; + } + } + + if (is_player === false) { + return false; + } + + event.preventDefault(); + + var bcr = ImprovedTube.elements.player.getBoundingClientRect(); + + ImprovedTube.miniPlayer_mouseDown_x = event.clientX; + ImprovedTube.miniPlayer_mouseDown_y = event.clientY; + ImprovedTube.mini_player__width = bcr.width; + ImprovedTube.mini_player__height = bcr.height; + + ImprovedTube.mini_player__player_offset_x = event.clientX - bcr.x; + ImprovedTube.mini_player__player_offset_y = event.clientY - bcr.y; + + ImprovedTube.mini_player__max_x = document.body.offsetWidth - ImprovedTube.mini_player__width; + ImprovedTube.mini_player__max_y = window.innerHeight - ImprovedTube.mini_player__height; + + window.addEventListener('mouseup', ImprovedTube.miniPlayer_mouseUp); + window.addEventListener('mousemove', ImprovedTube.miniPlayer_mouseMove); +}; + +ImprovedTube.miniPlayer_mouseUp = function () { + var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; + + strg.x = ImprovedTube.mini_player__x; + strg.y = ImprovedTube.mini_player__y; + + localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); + + window.removeEventListener('mouseup', ImprovedTube.miniPlayer_mouseUp); + window.removeEventListener('mousemove', ImprovedTube.miniPlayer_mouseMove); + + ImprovedTube.mini_player__move = false; + + setTimeout(function () { + window.removeEventListener('click', ImprovedTube.miniPlayer_click, true); + }); +}; + +ImprovedTube.miniPlayer_click = function (event) { + event.stopPropagation(); + event.preventDefault(); +}; + +ImprovedTube.miniPlayer_mouseMove = function (event) { + if ( + event.clientX < ImprovedTube.miniPlayer_mouseDown_x - 5 || + event.clientY < ImprovedTube.miniPlayer_mouseDown_y - 5 || + event.clientX > ImprovedTube.miniPlayer_mouseDown_x + 5 || + event.clientY > ImprovedTube.miniPlayer_mouseDown_y + 5 + ) { + var x = event.clientX - ImprovedTube.mini_player__player_offset_x, + y = event.clientY - ImprovedTube.mini_player__player_offset_y; + + if (ImprovedTube.mini_player__move === false) { + ImprovedTube.mini_player__move = true; + + window.addEventListener('click', ImprovedTube.miniPlayer_click, true); + } + + if (x < 0) { + x = 0; + } + + if (y < 0) { + y = 0; + } + + if (x > ImprovedTube.mini_player__max_x) { + x = ImprovedTube.mini_player__max_x; + } + + if (y > ImprovedTube.mini_player__max_y) { + y = ImprovedTube.mini_player__max_y; + } + + ImprovedTube.mini_player__x = x; + ImprovedTube.mini_player__y = y; + + ImprovedTube.elements.player.style.transform = 'translate(' + x + 'px, ' + y + 'px)'; + } +}; + +ImprovedTube.miniPlayer_cursorUpdate = function (event) { + var x = event.clientX, + y = event.clientY, + c = ImprovedTube.mini_player__cursor; + + if ( + x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.miniPlayer_resize_offset && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.miniPlayer_resize_offset + ) { + c = 'ne-resize'; + } else if ( + x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.miniPlayer_resize_offset && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.miniPlayer_resize_offset && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'se-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.miniPlayer_resize_offset && + y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.miniPlayer_resize_offset && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'sw-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.miniPlayer_resize_offset && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.miniPlayer_resize_offset + ) { + c = 'nw-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.miniPlayer_resize_offset + ) { + c = 'n-resize'; + } else if ( + x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.miniPlayer_resize_offset && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'e-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.miniPlayer_resize_offset && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 's-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.miniPlayer_resize_offset && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'w-resize'; + } else { + c = ''; + } + + if (ImprovedTube.mini_player__cursor !== c) { + ImprovedTube.mini_player__cursor = c; + + document.documentElement.setAttribute('it-mini-player-cursor', ImprovedTube.mini_player__cursor); + } +}; + +ImprovedTube.miniPlayer_resize = function (event) { + if (ImprovedTube.mini_player__cursor !== '') { + window.removeEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); + window.addEventListener('mouseup', ImprovedTube.miniPlayer_resizeMouseUp); + window.addEventListener('mousemove', ImprovedTube.miniPlayer_resizeMouseMove); + + return true; + } +}; + +ImprovedTube.miniPlayer_resizeMouseMove = function (event) { + if (ImprovedTube.mini_player__cursor === 'n-resize') { + ImprovedTube.elements.player.style.transform = 'translate(' + ImprovedTube.mini_player__x + 'px, ' + event.clientY + 'px)'; + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); + } else if (ImprovedTube.mini_player__cursor === 'e-resize') { + ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__height); + } else if (ImprovedTube.mini_player__cursor === 's-resize') { + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, event.clientY - ImprovedTube.mini_player__y); + } else if (ImprovedTube.mini_player__cursor === 'w-resize') { + ImprovedTube.elements.player.style.transform = 'translate(' + event.clientX + 'px, ' + ImprovedTube.mini_player__y + 'px)'; + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__height); + } else if (ImprovedTube.mini_player__cursor === 'ne-resize') { + ImprovedTube.elements.player.style.transform = 'translate(' + ImprovedTube.mini_player__x + 'px, ' + event.clientY + 'px)'; + ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); + } else if (ImprovedTube.mini_player__cursor === 'se-resize') { + ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, event.clientY - ImprovedTube.mini_player__y); + } else if (ImprovedTube.mini_player__cursor === 'sw-resize') { + ImprovedTube.elements.player.style.transform = 'translate(' + event.clientX + 'px, ' + ImprovedTube.mini_player__y + 'px)'; + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, event.clientY - ImprovedTube.mini_player__y); + } else if (ImprovedTube.mini_player__cursor === 'nw-resize') { + ImprovedTube.elements.player.style.transform = 'translate(' + event.clientX + 'px, ' + event.clientY + 'px)'; + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); + } +}; + +ImprovedTube.miniPlayer_resizeMouseUp = function (event) { + var bcr = ImprovedTube.elements.player.getBoundingClientRect(); + + ImprovedTube.mini_player__x = bcr.left; + ImprovedTube.mini_player__y = bcr.top; + ImprovedTube.mini_player__width = bcr.width; + ImprovedTube.mini_player__height = bcr.height; + + window.dispatchEvent(new Event('resize')); + + var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; + + strg.width = ImprovedTube.mini_player__width; + strg.height = ImprovedTube.mini_player__height; + + localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); + + window.addEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); + window.removeEventListener('mouseup', ImprovedTube.miniPlayer_resizeMouseUp); + window.removeEventListener('mousemove', ImprovedTube.miniPlayer_resizeMouseMove); +}; + +ImprovedTube.miniPlayer = function () { + if (this.storage.mini_player === true) { + var data = localStorage.getItem('improedtube-mini-player'); + + try { + if (this.isset(data)) { + data = JSON.parse(data); + } else { + data = {}; + } + } catch (error) { + data = {}; + } + + data.x = data.x || 16; + data.y = data.y || 16; + data.width = data.width || 200; + data.height = data.height || 150; + + this.mini_player__x = data.x; + this.mini_player__y = data.y; + this.mini_player__width = data.width; + this.mini_player__height = data.height; + + window.removeEventListener('scroll', this.miniPlayer_scroll); + window.addEventListener('scroll', this.miniPlayer_scroll); + } else { + this.mini_player__mode = false; + this.elements.player.classList.remove('it-mini-player'); + this.mini_player__move = false; + + this.elements.player.style.width = ''; + this.elements.player.style.height = ''; + this.elements.player.style.transform = 'translate(' + 0 + 'px, ' + 0 + 'px)'; + + this.elements.player.classList.remove('it-mini-player'); + + this.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); + + window.dispatchEvent(new Event('resize')); + + window.removeEventListener('mousedown', this.miniPlayer_mouseDown); + window.removeEventListener('mousemove', this.miniPlayer_mouseMove); + window.removeEventListener('mouseup', this.miniPlayer_mouseUp); + window.removeEventListener('click', this.miniPlayer_click); + window.removeEventListener('scroll', this.miniPlayer_scroll); + window.removeEventListener('mousemove', this.miniPlayer_cursorUpdate); + } +}; + + +/*------------------------------------------------------------------------------ +4.4.8 AUTO FULLSCREEN +------------------------------------------------------------------------------*/ + +ImprovedTube.playerAutofullscreen = function () { + if ( + this.storage.player_autofullscreen === true && + document.documentElement.dataset.pageType === 'video' && + !document.fullscreenElement + ) { + this.elements.player.toggleFullscreen(); + } +}; + + +/*------------------------------------------------------------------------------ +4.4.9 QUALITY +------------------------------------------------------------------------------*/ + +ImprovedTube.playerQuality = function () { + var player = this.elements.player, + quality = this.storage.player_quality; + + if (player && player.getAvailableQualityLevels && !player.dataset.defaultQuality) { + var available_quality_levels = player.getAvailableQualityLevels(); + + if (quality && quality !== 'auto') { + if (available_quality_levels.includes(quality) === false) { + quality = available_quality_levels[0]; + } + + player.setPlaybackQualityRange(quality); + player.setPlaybackQuality(quality); + player.dataset.defaultQuality = quality; + } + } +}; + + +/*------------------------------------------------------------------------------ +4.4.10 CODEC H.264 +------------------------------------------------------------------------------*/ + +ImprovedTube.playerH264 = function () { + if (this.storage.player_h264 === true) { + var canPlayType = HTMLMediaElement.prototype.canPlayType; + + function overwrite(self, callback, mime) { + if (/webm|vp8|vp9/.test(mime)) { + return false; + } else { + return callback.call(self, mime); + } + } + + if (window.MediaSource) { + var isTypeSupported = window.MediaSource.isTypeSupported; + + window.MediaSource.isTypeSupported = function (mime) { + return overwrite(this, isTypeSupported, mime); + }; + } + + HTMLMediaElement.prototype.canPlayType = function (mime) { + var status = overwrite(this, canPlayType, mime); + + if (!status) { + return ''; + } else { + return status; + } + }; + } +}; + + +/*------------------------------------------------------------------------------ +4.4.11 ALLOW 60FPS +------------------------------------------------------------------------------*/ + +ImprovedTube.player60fps = function () { + if (this.storage.player_60fps === false) { + var canPlayType = HTMLMediaElement.prototype.canPlayType; + + function overwrite(self, callback, mime) { + var match = /framerate=(\d+)/.exec(mime); + + if (match && match[1] > 30) { + return ''; + } else { + return callback.call(self, mime); + } + } + + if (window.MediaSource) { + var isTypeSupported = window.MediaSource.isTypeSupported; + + window.MediaSource.isTypeSupported = function (mime) { + return overwrite(this, isTypeSupported, mime); + }; + } + + HTMLMediaElement.prototype.canPlayType = function (mime) { + var status = overwrite(this, canPlayType, mime); + + if (!status) { + return ''; + } else { + return status; + } + }; + } +}; + + +/*------------------------------------------------------------------------------ +4.4.12 FORCED VOLUME +------------------------------------------------------------------------------*/ + +ImprovedTube.playerVolume = function () { + if (this.storage.player_forced_volume === true) { + var volume = this.storage.player_volume; + + if (!this.isset(volume)) { + volume = 100; + } else { + volume = Number(volume); + } + + this.elements.player.setVolume(volume); + } +}; + + +/*------------------------------------------------------------------------------ +4.4.13 LOUDNESS NORMALIZATION +------------------------------------------------------------------------------*/ + +ImprovedTube.onvolumechange = function (event) { + if (document.querySelector('.ytp-volume-panel') && ImprovedTube.storage.player_loudness_normalization === false) { + var volume = Number(document.querySelector('.ytp-volume-panel').getAttribute('aria-valuenow')); + + this.volume = volume / 100; + } +}; + +ImprovedTube.playerLoudnessNormalization = function () { + var video = this.elements.video; + + if (video) { + video.removeEventListener('volumechange', this.onvolumechange); + video.addEventListener('volumechange', this.onvolumechange); + } + + if (this.storage.player_loudness_normalization === false) { + try { + var local_storage = localStorage['yt-player-volume']; + + if (this.isset(Number(this.storage.player_volume)) && this.storage.player_forced_volume === true) { + + } else if (local_storage) { + local_storage = JSON.parse(JSON.parse(local_storage).data); + + local_storage = Number(local_storage.volume); + + video.volume = local_storage / 100; + } else { + video.volume = 100; + } + } catch (err) {} + } +}; + + +/*------------------------------------------------------------------------------ +4.4.14 SCREENSHOT +------------------------------------------------------------------------------*/ + +ImprovedTube.screenshot = function () { + var video = ImprovedTube.elements.video, + style = document.createElement('style'), + cvs = document.createElement('canvas'), + ctx = cvs.getContext('2d'); + + style.textContent = 'video{width:' + video.videoWidth + 'px !important;height:' + video.videoHeight + 'px !important}'; + + cvs.width = video.videoWidth; + cvs.height = video.videoHeight; + + document.body.appendChild(style); + + setTimeout(function () { + ctx.drawImage(video, 0, 0, cvs.width, cvs.height); + + cvs.toBlob(function (blob) { + if (ImprovedTube.storage.player_screenshot_save_as !== 'clipboard') { + var a = document.createElement('a'); + + a.href = URL.createObjectURL(blob); + + a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '-' + new Date(ImprovedTube.elements.player.getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; + + a.click(); + } else { + navigator.clipboard.write([ + new ClipboardItem({ + 'image/png': blob + }) + ]); + } + }); + + style.remove(); + }); +}; + +ImprovedTube.playerScreenshotButton = function () { + if (this.storage.player_screenshot_button === true) { + var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'); + + svg.appendChild(path); + + this.createPlayerButton({ + id: 'it-screenshot-button', + child: svg, + opacity: 1, + onclick: this.screenshot, + title: 'Screenshot' + }); + } else if (this.elements.buttons['it-screenshot-styles']) { + this.elements.buttons['it-screenshot-styles'].remove(); + } +}; + + +/*------------------------------------------------------------------------------ +4.4.15 REPEAT +------------------------------------------------------------------------------*/ + +ImprovedTube.playerRepeatButton = function (node) { + if (this.storage.player_repeat_button === true) { + var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z'); + + svg.appendChild(path); + + this.createPlayerButton({ + id: 'it-repeat-button', + child: svg, + onclick: function () { + var video = ImprovedTube.elements.video; + + if (video.hasAttribute('loop')) { + video.removeAttribute('loop'); + + this.style.opacity = '.5'; + } else if (!/ad-showing/.test(ImprovedTube.elements.player.className)) { + video.setAttribute('loop', ''); + + this.style.opacity = '1'; + } + }, + title: 'Repeat' + }); + + if (this.storage.player_always_repeat === true) { + setTimeout(function () { + ImprovedTube.elements.video.setAttribute('loop', ''); + + ImprovedTube.elements.buttons['it-repeat-styles'].style.opacity = '1'; + }, 100); + } + } else if (this.elements.buttons['it-repeat-styles']) { + this.elements.buttons['it-repeat-styles'].remove(); + } +}; + + +/*------------------------------------------------------------------------------ +4.4.16 ROTATE +------------------------------------------------------------------------------*/ + +ImprovedTube.playerRotateButton = function () { + if (this.storage.player_rotate_button === true) { + var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M15.55 5.55L11 1v3.07a8 8 0 0 0 0 15.86v-2.02a6 6 0 0 1 0-11.82V10l4.55-4.45zM19.93 11a7.9 7.9 0 0 0-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02a7.92 7.92 0 0 0 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41A7.9 7.9 0 0 0 19.93 13h-2.02a5.9 5.9 0 0 1-1.02 2.48z'); + + svg.appendChild(path); + + this.createPlayerButton({ + id: 'it-rotate-button', + child: svg, + opacity: 1, + onclick: function () { + var player = ImprovedTube.elements.player, + video = ImprovedTube.elements.video, + rotate = Number(document.body.dataset.itRotate) || 0, + transform = ''; + + rotate += 90; + + if (rotate === 360) { + rotate = 0; + } + + document.body.dataset.itRotate = rotate; + + transform += 'rotate(' + rotate + 'deg)'; + + if (rotate == 90 || rotate == 270) { + var is_vertical_video = video.videoHeight > video.videoWidth; + + transform += ' scale(' + (is_vertical_video ? player.clientWidth : player.clientHeight) / (is_vertical_video ? player.clientHeight : player.clientWidth) + ')'; + } + + if (!ImprovedTube.elements.buttons['it-rotate-styles']) { + var style = document.createElement('style'); + + ImprovedTube.elements.buttons['it-rotate-styles'] = style; + + document.body.appendChild(style); + } + + ImprovedTube.elements.buttons['it-rotate-styles'].textContent = 'video{transform:' + transform + '}'; + }, + title: 'Rotate' + }); + } else if (this.elements.buttons['it-rotate-button']) { + this.elements.buttons['it-rotate-button'].remove(); + this.elements.buttons['it-rotate-styles'].remove(); + } +}; + + +/*------------------------------------------------------------------------------ +4.4.17 POPUP PLAYER +------------------------------------------------------------------------------*/ + +ImprovedTube.playerPopupButton = function () { + if (this.storage.player_popup_button === true) { + var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M19 7h-8v6h8V7zm2-4H3C2 3 1 4 1 5v14c0 1 1 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 16H3V5h18v14z'); + + svg.appendChild(path); + + this.createPlayerButton({ + id: 'it-popup-player-button', + child: svg, + opacity: 1, + onclick: function () { + var player = ImprovedTube.elements.player; + + player.pauseVideo(); + + window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(player.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + player.offsetWidth + ',height=' + player.offsetHeight); + }, + title: 'Popup' + }); + } else if (this.elements.buttons['it-popup-player-button']) { + this.elements.buttons['it-popup-player-button'].remove(); + } +}; + + +/*------------------------------------------------------------------------------ +4.4.18 Force SDR +------------------------------------------------------------------------------*/ + +ImprovedTube.playerSDR = function () { + if (this.storage.player_SDR === true) { + Object.defineProperty(window.screen, 'pixelDepth', { + enumerable: true, + configurable: true, + value: 24 + }); + } +}; + + +/*------------------------------------------------------------------------------ +4.4.19 Hide controls +------------------------------------------------------------------------------*/ + +ImprovedTube.playerControls = function () { + if (this.elements.player) { + if (this.storage.player_hide_controls === true) { + this.elements.player.hideControls(); + } else { + this.elements.player.showControls(); + } + } +}; \ No newline at end of file diff --git a/content-scripts/website-context/youtube-features/playlist.js b/content-scripts/website-context/youtube-features/playlist.js new file mode 100644 index 000000000..c2833972e --- /dev/null +++ b/content-scripts/website-context/youtube-features/playlist.js @@ -0,0 +1,122 @@ +/*------------------------------------------------------------------------------ +4.5.0 PLAYLIST +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +4.5.1 UP NEXT AUTOPLAY +------------------------------------------------------------------------------*/ + +ImprovedTube.playlistUpNextAutoplay = function (event) { + if ( + ImprovedTube.getParam(location.href, 'list') && + ImprovedTube.storage.playlist_up_next_autoplay === false + ) { + event.preventDefault(); + event.stopPropagation(); + } +}; + + +/*------------------------------------------------------------------------------ +4.5.2 REVERSE +------------------------------------------------------------------------------*/ + +ImprovedTube.playlistReverse = function () { + if (this.storage.playlist_reverse === true) { + function update() { + var results = ImprovedTube.elements.ytd_watch.data.contents.twoColumnWatchNextResults, + playlist = results.playlist.playlist, + autoplay = results.autoplay.autoplay; + + playlist.contents.reverse(); + + playlist.currentIndex = playlist.totalVideos - playlist.currentIndex - 1; + playlist.localCurrentIndex = playlist.contents.length - playlist.localCurrentIndex - 1; + + for (var i = 0, l = autoplay.sets.length; i < l; i++) { + var item = autoplay.sets[i]; + + item.autoplayVideo = item.previousButtonVideo; + item.previousButtonVideo = item.nextButtonVideo; + item.nextButtonVideo = item.autoplayVideo; + } + + ImprovedTube.elements.ytd_watch.updatePageData_(JSON.parse(JSON.stringify(ImprovedTube.elements.ytd_watch.data))); + + setTimeout(function () { + var playlist_manager = document.querySelector('yt-playlist-manager'); + + ImprovedTube.elements.ytd_player.updatePlayerComponents(null, autoplay, null, playlist); + playlist_manager.autoplayData = autoplay; + playlist_manager.setPlaylistData(playlist); + ImprovedTube.elements.ytd_player.updatePlayerPlaylist_(playlist); + }, 100); + } + + if (!document.querySelector('#it-reverse-playlist') && ImprovedTube.elements.playlist.actions) { + var button = document.createElement('button'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + button.id = 'it-reverse-playlist'; + button.className = 'style-scope yt-icon-button'; + button.addEventListener('click', function (event) { + var playlist_manager = document.querySelector('yt-playlist-manager'); + + event.preventDefault(); + event.stopPropagation(); + + this.classList.toggle('active'); + + ImprovedTube.playlistReversed = !ImprovedTube.playlistReversed; + + update(); + + return false; + }, true); + + svg.setAttributeNS(null, 'width', '24'); + svg.setAttributeNS(null, 'height', '24'); + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z'); + + svg.appendChild(path); + + button.appendChild(svg); + + ImprovedTube.elements.playlist.actions.appendChild(button); + } + + if (this.playlistReversed === true) { + update(); + } + } +}; + + +/*------------------------------------------------------------------------------ +4.5.3 REPEAT +------------------------------------------------------------------------------*/ + +ImprovedTube.playlistRepeat = function () { + var button = ImprovedTube.elements.playlist.repeat_button, + option = ImprovedTube.storage.playlist_repeat; + + if (button && (option === true && button.className.search('style-default-active') === -1 || option === 'disabled' && button.className.indexOf('style-default-active') !== -1)) { + button.click(); + } +}; + + +/*------------------------------------------------------------------------------ +4.5.4 SHUFFLE +------------------------------------------------------------------------------*/ + +ImprovedTube.playlistShuffle = function () { + var button = ImprovedTube.elements.playlist.shuffle_button, + option = ImprovedTube.storage.playlist_shuffle; + + if (button && (option === true && button.className.search('style-default-active') === -1 || option === 'disabled' && button.className.indexOf('style-default-active') !== -1)) { + button.click(); + } +}; \ No newline at end of file diff --git a/content-scripts/website-context/youtube-features/settings.js b/content-scripts/website-context/youtube-features/settings.js new file mode 100644 index 000000000..d11dfb437 --- /dev/null +++ b/content-scripts/website-context/youtube-features/settings.js @@ -0,0 +1,284 @@ +/*------------------------------------------------------------------------------ +4.10.0 SETTINGS +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +4.10.1 IMPROVEDTUBE ICON +------------------------------------------------------------------------------*/ + +ImprovedTube.improvedtubeYoutubeIcon = function () { + var data = localStorage.getItem('improvedtube-button-position'), + x = 0, + y = 0, + option = this.storage.improvedtube_youtube_icon, + button = this.elements.improvedtube_button; + + if (data) { + data = JSON.parse(data); + + x = Math.min(Math.max(data.x, 0), document.body.offsetWidth - 48); + y = Math.min(Math.max(data.y, 0), window.innerHeight - 48); + } + + if (!button) { + var label = document.createElement('span'); + + button = document.createElement('button'); + + button.className = 'it-button'; + + button.addEventListener('mousedown', function (event) { + if (ImprovedTube.storage.improvedtube_youtube_icon === 'draggable') { + var x2 = event.layerX, + y2 = event.layerY; + + function mousemove(event) { + if (button.className.indexOf('dragging') === -1) { + button.classList.add('it-button--dragging'); + } + + x = Math.min(Math.max(event.clientX - x2, 0), document.body.offsetWidth - 48); + y = Math.min(Math.max(event.clientY - y2, 0), window.innerHeight - 48); + + button.style.left = x + 'px'; + button.style.top = y + 'px'; + } + + function mouseup() { + localStorage.setItem('improvedtube-button-position', JSON.stringify({ + x, + y + })); + + window.removeEventListener('mousemove', mousemove); + window.removeEventListener('mouseup', mouseup); + } + + function click() { + button.classList.remove('it-button--dragging'); + + window.removeEventListener('click', click); + } + + window.addEventListener('mousemove', mousemove); + window.addEventListener('mouseup', mouseup); + window.addEventListener('click', click); + + event.preventDefault(); + } + }); + + button.addEventListener('click', function () { + if (this.classList.contains('it-button--dragging') === false) { + var rect = this.getBoundingClientRect(), + left = rect.x, + top = rect.y, + scrim = document.createElement('div'), + iframe = document.createElement('iframe'); + + scrim.className = 'it-button__scrim'; + scrim.addEventListener('click', function () { + scrim.remove(); + iframe.remove(); + }); + + iframe.className = 'it-button__iframe'; + + if (document.body.offsetWidth - left < 308) { + left = document.body.offsetWidth - 308; + } + + if (window.innerHeight - top < Math.min(500, window.innerHeight) + 8) { + top = window.innerHeight - Math.min(500, window.innerHeight) - 8; + } + + iframe.style.left = left + 'px'; + iframe.style.top = top + 'px'; + + document.body.appendChild(scrim); + document.body.appendChild(iframe); + + ImprovedTube.messages.send({ + requestOptionsUrl: true + }); + } + }); + + label.textContent = 'ImprovedTube'; + + button.appendChild(label); + + this.elements.improvedtube_button = button; + } + + button.className = 'it-button'; + button.style.left = ''; + button.style.top = ''; + + if (option === 'header_left') { + if (this.elements.masthead.start) { + this.elements.masthead.start.insertBefore(button, this.elements.masthead.start.children[0]); + } + } else if (option === 'header_right') { + if (this.elements.masthead.end) { + this.elements.masthead.end.appendChild(button); + } + } else if (option === 'below_player') { + if (this.elements.video_title) { + button.classList.add('it-button--below-player'); + + this.elements.video_title.appendChild(button); + } + } else if (option === 'sidebar') { + if (this.elements.sidebar_section) { + this.elements.sidebar_section.appendChild(button); + } + } else if (option === 'draggable') { + if (document.body) { + button.style.left = x + 'px'; + button.style.top = y + 'px'; + + button.classList.add('it-button--draggable'); + + document.body.appendChild(button); + } + } else if (button) { + button.remove(); + } +}; + +/*------------------------------------------------------------------------------ +4.10.2 PLAYER BUTTONS +------------------------------------------------------------------------------*/ + +ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { + if (window.self !== window.top) { + return false; + } + + var section = document.querySelector('#info #menu-container.ytd-video-primary-info-renderer'); + + if (section && !document.querySelector('.improvedtube-player-button')) { + if (this.storage.below_player_screenshot !== false) { + var button = document.createElement('button'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + button.className = 'improvedtube-player-button'; + button.dataset.tooltip = 'Screenshot'; + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'); + + button.onclick = ImprovedTube.screenshot; + + svg.appendChild(path); + button.appendChild(svg); + + section.parentNode.insertBefore(button, section); + } + + if (this.storage.below_player_pip !== false) { + var button = document.createElement('button'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + button.className = 'improvedtube-player-button'; + button.dataset.tooltip = 'Picture in picture'; + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M19 7h-8v6h8V7zm2-4H3C2 3 1 4 1 5v14c0 1 1 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 16H3V5h18v14z'); + + button.onclick = function () { + var video = document.querySelector('#movie_player video'); + + if (video) { + video.requestPictureInPicture(); + } + }; + + svg.appendChild(path); + button.appendChild(svg); + + section.parentNode.insertBefore(button, section); + } + + if (this.storage.below_player_loop !== false) { + var button = document.createElement('button'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + button.className = 'improvedtube-player-button'; + button.dataset.tooltip = 'Loop'; + + svg.style.opacity = '.5'; + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z'); + + button.onclick = function () { + var video = ImprovedTube.elements.video, + svg = this.children[0]; + + if (video.hasAttribute('loop')) { + video.removeAttribute('loop'); + + svg.style.opacity = '.5'; + } else if (!/ad-showing/.test(ImprovedTube.elements.player.className)) { + video.setAttribute('loop', ''); + + svg.style.opacity = '1'; + } + }; + + svg.appendChild(path); + button.appendChild(svg); + + section.parentNode.insertBefore(button, section); + } + } +}; + + +/*----------------------------------------------------------------------------- +4.10.3 DELETE YOUTUBE COOKIES +-----------------------------------------------------------------------------*/ + +ImprovedTube.deleteYoutubeCookies = function () { + var cookies = document.cookie.split(';'); + + for (var i = 0, l = cookies.length; i < l; i++) { + var cookie = cookies[i], + eqPos = cookie.indexOf('='), + name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; + + document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; + } + + setTimeout(function () { + location.reload(); + }, 100); +}; + + +/*----------------------------------------------------------------------------- +4.10.4 YOUTUBE LANGUAGE +-----------------------------------------------------------------------------*/ + +ImprovedTube.youtubeLanguage = function () { + var value = this.storage.youtube_language; + + if (this.isset(value)) { + var pref = this.getCookieValueByName('PREF'); + + if (value !== 'default') { + var hl = this.getParam(pref, 'hl'); + + if (hl) { + this.setCookie('PREF', pref.replace('hl=' + hl, 'hl=' + value)); + } else { + this.setCookie('PREF', pref + '&hl=' + value); + } + } + } +}; \ No newline at end of file diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/content-scripts/website-context/youtube-features/shortcuts.js new file mode 100644 index 000000000..7b106e38b --- /dev/null +++ b/content-scripts/website-context/youtube-features/shortcuts.js @@ -0,0 +1,672 @@ +/*------------------------------------------------------------------------------ +4.7.0 SHORTCUTS +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcuts = function () { + var keyboard = { + alt: false, + ctrl: false, + shift: false, + keys: {} + }, + mouse = { + player: false, + wheel: 0 + }, + storage = {}; + + function handler() { + var prevent = false; + + for (var key in storage) { + var shortcut = storage[key], + same_keys = true; + + if ( + typeof shortcut === 'object' && + (keyboard.alt === shortcut.alt || !ImprovedTube.isset(shortcut.alt)) && + (keyboard.ctrl === shortcut.ctrl || !ImprovedTube.isset(shortcut.ctrl)) && + (keyboard.shift === shortcut.shift || !ImprovedTube.isset(shortcut.shift)) && + (mouse.wheel === shortcut.wheel || !ImprovedTube.isset(shortcut.wheel)) + ) { + if (keyboard.keys && shortcut.keys) { + for (var code in keyboard.keys) { + if (!shortcut.keys[code]) { + same_keys = false; + } + } + for (var code in shortcut.keys) { + if (!keyboard.keys[code]) { + same_keys = false; + } + } + } + + if (!ImprovedTube.isset(mouse.wheel) || mouse.wheel === 0 || mouse.player === true) { + if (same_keys === true) { + if ([ + 'shortcutAuto', + 'shortcut144p', + 'shortcut240p', + 'shortcut360p', + 'shortcut480p', + 'shortcut720p', + 'shortcut1080p', + 'shortcut1440p', + 'shortcut2160p', + 'shortcut2880p', + 'shortcut4320p' + ].includes(key) === true) { + ImprovedTube['shortcutQuality'](key); + } else if (typeof ImprovedTube[key] === 'function') { + ImprovedTube[key](); + } + + prevent = true; + } + } + } + } + + return prevent; + } + + window.addEventListener('keydown', function (event) { + if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].includes(document.activeElement.tagName) === true || event.target.isContentEditable) { + return false; + } + + if (event.code === 'AltLeft' || event.code === 'AltRight') { + keyboard.alt = true; + } else if (event.code === 'ControlLeft' || event.code === 'ControlRight') { + keyboard.ctrl = true; + } else if (event.code === 'ShiftLeft' || event.code === 'ShiftRight') { + keyboard.shift = true; + } else { + keyboard.keys[event.keyCode] = true; + } + + mouse.wheel = 0; + + if (handler() === true) { + event.preventDefault(); + event.stopPropagation(); + + return false; + } + }, true); + + window.addEventListener('keyup', function (event) { + if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].includes(document.activeElement.tagName) === true || event.target.isContentEditable) { + return false; + } + + if (event.code === 'AltLeft' || event.code === 'AltRight') { + keyboard.alt = false; + } else if (event.code === 'ControlLeft' || event.code === 'ControlRight') { + keyboard.ctrl = false; + } else if (event.code === 'ShiftLeft' || event.code === 'ShiftRight') { + keyboard.shift = false; + } else { + delete keyboard.keys[event.keyCode]; + } + + mouse.wheel = 0; + }, true); + + window.addEventListener('wheel', function (event) { + if (event.deltaY > 0) { + mouse.wheel = 1; + } else { + mouse.wheel = -1; + } + + if (handler() === true) { + event.preventDefault(); + event.stopPropagation(); + + return false; + } + }, { + passive: false, + capture: true + }); + + document.addEventListener('improvedtube-player-loaded', function () { + ImprovedTube.elements.player.parentNode.addEventListener('mouseover', function () { + mouse.player = true; + mouse.wheel = 0; + }, true); + + ImprovedTube.elements.player.parentNode.addEventListener('mouseout', function () { + mouse.player = false; + mouse.wheel = 0; + }, true); + }); + + document.addEventListener('improvedtube-blur', function () { + keyboard.alt = false; + keyboard.ctrl = false; + keyboard.shift = false; + + for (var key in keyboard.keys) { + delete keyboard.keys[key]; + } + + mouse.player = false; + mouse.wheel = 0; + }); + + for (var name in this.storage) { + if (name.indexOf('shortcut_') === 0) { + if (this.isset(this.storage[name]) && this.storage[name] !== false) { + try { + var key = 'shortcut' + (name.replace(/_?shortcut_?/g, '').replace(/\_/g, '-')).split('-').map(function (element, index) { + return element[0].toUpperCase() + element.slice(1); + }).join(''); + + storage[key] = this.storage[name]; + } catch (error) { + console.error(error); + } + } + } + } +}; + + +/*------------------------------------------------------------------------------ +4.7.1 QUALITY +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutQuality = function (key) { + if (this.elements.player) { + var value = key.replace('shortcut', '').toLowerCase(); + + if (value === '144p') { + value = 'tiny'; + } + + if (value === '240p') { + value = 'small'; + } + + if (value === '360p') { + value = 'medium'; + } + + if (value === '480p') { + value = 'large'; + } + + if (value === '720p') { + value = 'hd720'; + } + + if (value === '1080p') { + value = 'hd1080'; + } + + if (value === '1440p') { + value = 'hd1440'; + } + + if (value === '2160p') { + value = 'hd2160'; + } + + if (value === '2880p') { + value = 'hd2880'; + } + + if (value === '4320p') { + value = 'highres'; + } + + this.elements.player.setPlaybackQualityRange(value); + this.elements.player.setPlaybackQuality(value); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.2 PICTURE IN PICTURE +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutPictureInPicture = function () { + if (this.elements.video) { + this.elements.video.requestPictureInPicture(); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.3 TOGGLE CONTROLS +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutToggleControls = function () { + if (this.elements.player) { + this.storage.player_hide_controls = !this.storage.player_hide_controls; + + if (this.storage.player_hide_controls) { + this.elements.player.hideControls(); + } else { + this.elements.player.showControls(); + } + } +}; + + +/*------------------------------------------------------------------------------ +4.7.4 PLAY / PAUSE +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutPlayPause = function () { + if (this.elements.player) { + if (this.elements.video.paused) { + this.elements.player.playVideo(); + } else { + this.elements.player.pauseVideo(); + } + } +}; + + +/*------------------------------------------------------------------------------ +4.7.5 STOP +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutStop = function () { + if (this.elements.player) { + this.elements.player.stopVideo(); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.6 TOGGLE AUTOPLAY +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutToggleAutoplay = function () { + var toggle = document.querySelector('.ytp-autonav-toggle-button'), + attribute = toggle.getAttribute('aria-checked') === 'true'; + + if (toggle) { + toggle.click(); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.7 NEXT VIDEO +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutNextVideo = function () { + if (this.elements.player) { + var playlist_loop_button = document.querySelector('[aria-label="Loop playlist"]'); + + if (playlist_loop_button) { + if (playlist_loop_button.ariaPressed === 'true') { + this.elements.player.setLoop(true); + } else { + this.elements.player.setLoop(false) + } + } + + this.elements.player.nextVideo(); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.8 PREVIOUS VIDEO +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutPrevVideo = function () { + if (this.elements.player) { + var playlist_loop_button = document.querySelector('[aria-label="Loop playlist"]'); + + if (playlist_loop_button) { + if (playlist_loop_button.ariaPressed === 'true') { + this.elements.player.setLoop(true); + } else { + this.elements.player.setLoop(false) + } + } + + this.elements.player.previousVideo(); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.9 SEEK BACKWARD +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutSeekBackward = function () { + if (this.elements.player) { + this.elements.player.seekBy(-10); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.10 SEEK FORWARD +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutSeekForward = function () { + if (this.elements.player) { + this.elements.player.seekBy(10); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.11 SEEK NEXT CHAPTER +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutSeekNextChapter = function () { + if (this.elements.player) { + var player = this.elements.player, + chapters_container = player.querySelector('.ytp-chapters-container'), + progress_bar = player.querySelector('.ytp-progress-bar'); + + if (chapters_container && chapters_container.children && progress_bar) { + var chapters = chapters_container.children, + duration = player.getDuration(), + current_width = player.getCurrentTime() / (duration / 100) * (progress_bar.offsetWidth / 100); + + for (var i = 0, l = chapters.length; i < l; i++) { + var left = chapters[i].offsetLeft; + + if (current_width < left) { + player.seekTo(left / (progress_bar.offsetWidth / 100) * (duration / 100)); + + return false; + } + } + } + } +}; + + +/*------------------------------------------------------------------------------ +4.7.12 SEEK PREVIOUS CHAPTER +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutSeekPreviousChapter = function () { + if (this.elements.player) { + var player = this.elements.player, + chapters_container = player.querySelector('.ytp-chapters-container'), + progress_bar = player.querySelector('.ytp-progress-bar'); + + if (chapters_container && chapters_container.children && progress_bar) { + var chapters = chapters_container.children, + duration = player.getDuration(), + current_width = player.getCurrentTime() / (duration / 100) * (progress_bar.offsetWidth / 100); + + for (var i = chapters.length - 1; i > 0; i--) { + if (current_width > chapters[i].offsetLeft) { + var left = 0; + + if (i > 0) { + left = chapters[i - 1].offsetLeft; + } + + player.seekTo(left / (progress_bar.offsetWidth / 100) * (duration / 100)); + + return false; + } + } + } + } +}; + + +/*------------------------------------------------------------------------------ +4.7.13 INCREASE VOLUME +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutIncreaseVolume = function () { + var player = this.elements.player, + value = Number(this.storage.shortcut_volume_step) || 5; + + if (player) { + player.setVolume(player.getVolume() + value); + + localStorage['yt-player-volume'] = JSON.stringify({ + data: JSON.stringify({ + volume: player.getVolume(), + muted: player.isMuted(), + expiration: Date.now(), + creation: Date.now() + }) + }); + + sessionStorage['yt-player-volume'] = localStorage['yt-player-volume']; + + this.showStatus(player.getVolume()); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.14 DECREASE VOLUME +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutDecreaseVolume = function () { + var player = this.elements.player, + value = Number(this.storage.shortcut_volume_step) || 5; + + if (player) { + player.setVolume(player.getVolume() - value); + + localStorage['yt-player-volume'] = JSON.stringify({ + data: JSON.stringify({ + volume: player.getVolume(), + muted: player.isMuted(), + expiration: Date.now(), + creation: Date.now() + }) + }); + + sessionStorage['yt-player-volume'] = localStorage['yt-player-volume']; + + this.showStatus(player.getVolume()); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.15 SCREENSHOT +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutScreenshot = function () { + this.screenshot(); +}; + + +/*------------------------------------------------------------------------------ +4.7.16 INCREASE PLAYBACK SPEED +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutIncreasePlaybackSpeed = function () { + var video = this.elements.video, + value = Number(ImprovedTube.storage.shortcut_playback_speed_step) || .05; + + if (video) { + video.playbackRate = video.playbackRate + value; + + ImprovedTube.showStatus(video.playbackRate); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.17 DECREASE PLAYBACK SPEED +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutDecreasePlaybackSpeed = function () { + var video = this.elements.video, + value = Number(ImprovedTube.storage.shortcut_playback_speed_step) || .05; + + if (video) { + video.playbackRate = Math.max(video.playbackRate - value, .05); + + ImprovedTube.showStatus(video.playbackRate); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.18 RESET PLAYBACK SPEED +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutResetPlaybackSpeed = function () { + var video = this.elements.video; + + if (video) { + video.playbackRate = 1; + + ImprovedTube.showStatus(video.playbackRate); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.19 GO TO SEARCH BOX +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutGoToSearchBox = function () { + var search = document.querySelector('#search'); + + if (search) { + search.focus(); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.20 ACTIVATE FULLSCREEN +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutActivateFullscreen = function () { + if (this.elements.player) { + this.elements.player.toggleFullscreen(); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.21 ACTIVATE CAPTIONS +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutActivateCaptions = function () { + var player = this.elements.player; + + if (player && player.toggleSubtitlesOn) { + player.toggleSubtitlesOn(); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.22 LIKE +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutLike = function () { + var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer')[0]); + + if (like) { + like.click(); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.23 DISLIKE +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutDislike = function () { + var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer')[1]); + + if (like) { + like.click(); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.24 SUBSCRIBE +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutSubscribe = function () { + if (this.elements.subscribe_button) { + this.elements.subscribe_button.click(); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.25 DARK THEME +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutDarkTheme = function () { + if (document.documentElement.hasAttribute('dark')) { + document.documentElement.removeAttribute('dark'); + document.documentElement.removeAttribute('it-theme'); + } else { + document.documentElement.setAttribute('dark', ''); + document.documentElement.setAttribute('it-theme', 'true'); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.26 CUSTOM MINI PLAYER +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutCustomMiniPlayer = function () { + this.storage.mini_player = !this.storage.mini_player; + + this.miniPlayer(); +}; + + +/*------------------------------------------------------------------------------ +4.7.27 STATS FOR NERDS +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutStatsForNerds = function () { + var player = this.elements.player; + + if (player.isVideoInfoVisible()) { + player.hideVideoInfo(); + } else { + player.showVideoInfo(); + } +}; + + +/*------------------------------------------------------------------------------ +4.7.28 TOGGLE CARDS +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutToggleCards = function () { + document.documentElement.toggleAttribute('it-player-hide-cards'); +}; + + +/*------------------------------------------------------------------------------ +4.7.29 POPUP PLAYER +------------------------------------------------------------------------------*/ + +ImprovedTube.shortcutPopupPlayer = function () { + var player = this.elements.player; + + if (document.documentElement.dataset.pageType === 'video' && player) { + player.pauseVideo(); + + window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(player.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + player.offsetWidth + ',height=' + player.offsetHeight); + } +}; \ No newline at end of file diff --git a/content-scripts/website-context/youtube-features/themes.js b/content-scripts/website-context/youtube-features/themes.js new file mode 100644 index 000000000..abf02c0f7 --- /dev/null +++ b/content-scripts/website-context/youtube-features/themes.js @@ -0,0 +1,79 @@ +/*------------------------------------------------------------------------------ +4.3.0 THEMES +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +4.3.1 MY COLORS +------------------------------------------------------------------------------*/ + +ImprovedTube.myColors = function () { + if ( + this.storage.theme === 'my-colors' && + Array.isArray(this.storage.theme_primary_color) && + Array.isArray(this.storage.theme_text_color) + ) { + var style = this.elements.my_colors || document.createElement('style'), + primary_color = this.storage.theme_primary_color, + text_color = this.storage.theme_text_color; + + if (primary_color) { + primary_color = 'rgb(' + primary_color.join(',') + ')'; + } else { + primary_color = 'rgb(200, 200, 200)'; + } + + if (text_color) { + text_color = 'rgb(' + text_color.join(',') + ')'; + } else { + text_color = 'rgb(25, 25, 25)'; + } + + style.className = 'it-theme-editor'; + style.textContent = 'html{' + + '--yt-swatch-textbox-bg:rgba(19,19,19,1)!important;' + + '--yt-swatch-icon-color:rgba(136,136,136,1)!important;' + + '--yt-spec-brand-background-primary:rgba(0,0,0, 0.1) !important;' + + '--yt-spec-brand-background-secondary:rgba(0,0,0, 0.1) !important;' + + '--yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important;' + + '--yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important;' + + '--yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important;' + + '--yt-spec-brand-button-background:rgba(136,136,136,1) !important;' + + '--yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important;' + + '--yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important;' + + '--yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important;' + + '--yt-spec-10-percent-layer:rgba(136,136,136,1) !important;' + + '--yt-swatch-primary:' + primary_color + '!important;' + + '--yt-swatch-primary-darker:' + primary_color + '!important;' + + '--yt-spec-brand-background-solid:' + primary_color + '!important;' + + '--yt-spec-general-background-a:' + primary_color + '!important;' + + '--yt-spec-general-background-b:' + primary_color + '!important;' + + '--yt-spec-general-background-c:' + primary_color + '!important;' + + '--yt-spec-touch-response:' + primary_color + '!important;' + + '--yt-swatch-text: ' + text_color + '!important;' + + '--yt-swatch-important-text: ' + text_color + '!important;' + + '--yt-swatch-input-text: ' + text_color + '!important;' + + '--yt-swatch-logo-override: ' + text_color + '!important;' + + '--yt-spec-text-primary:' + text_color + ' !important;' + + '--yt-spec-text-primary-inverse:' + text_color + ' !important;' + + '--yt-spec-text-secondary:' + text_color + ' !important;' + + '--yt-spec-text-disabled:' + text_color + ' !important;' + + '--yt-spec-icon-active-other:' + text_color + ' !important;' + + '--yt-spec-icon-inactive:' + text_color + ' !important;' + + '--yt-spec-icon-disabled:' + text_color + ' !important;' + + '--yt-spec-filled-button-text:' + text_color + ' !important;' + + '--yt-spec-call-to-action-inverse:' + text_color + ' !important;' + + '--yt-spec-brand-icon-active:' + text_color + ' !important;' + + '--yt-spec-brand-icon-inactive:' + text_color + ' !important;' + + '--yt-spec-brand-link-text:' + text_color + '!important;' + + '--yt-spec-brand-subscribe-button-background:' + text_color + ' !important;' + + '--yt-spec-wordmark-text:' + text_color + ' !important;' + + '--yt-spec-selected-nav-text:' + text_color + ' !important;' + + '}'; + + this.elements.my_colors = style; + + document.documentElement.appendChild(style); + } else if (this.elements.my_colors) { + this.elements.my_colors.remove(); + } +}; \ No newline at end of file diff --git a/manifest.json b/manifest.json index c5e984396..567e3f2f1 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,6 @@ { - "manifest_version": 2, - "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", - "short_name": "ImprovedTube", + "manifest_version": 3, + "name": "ImprovedTube", "description": "__MSG_description_ext__", "version": "4.0", "default_locale": "en", @@ -12,11 +11,9 @@ "48": "assets/icons/48.png" }, "background": { - "scripts": [ - "background.js" - ] + "service_worker": "background.js" }, - "browser_action": { + "action": { "default_popup": "options-page/index.html" }, "options_page": "options-page/index.html", @@ -24,16 +21,31 @@ { "all_frames": true, "css": [ - "content-styles.css" + "content-scripts/extension-context/youtube-features/content-styles.css", + "content-scripts/extension-context/youtube-features/night-mode/night-mode.css", + "content-scripts/extension-context/youtube-features/general/general.css", + "content-scripts/extension-context/youtube-features/appearance/header/header.css", + "content-scripts/extension-context/youtube-features/appearance/player/player.css", + "content-scripts/extension-context/youtube-features/appearance/details/details.css", + "content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css", + "content-scripts/extension-context/youtube-features/appearance/comments/comments.css", + "content-scripts/extension-context/youtube-features/appearance/footer/footer.css" ], "exclude_matches": [ - "https://www.youtube.com/improvedtube", - "https://www.youtube.com/tv*", "https://www.youtube.com/audiolibrary/*", - "http://studio.youtube.com/*" + "https://www.youtube.com/tv*" ], "js": [ - "content-scripts.js" + "assets/satus/satus.js", + "content-scripts/extension-context/core.js", + "content-scripts/extension-context/functions.js", + "content-scripts/extension-context/youtube-features/night-mode/night-mode.js", + "content-scripts/extension-context/youtube-features/general/general.js", + "content-scripts/extension-context/youtube-features/appearance/player/player.js", + "content-scripts/extension-context/youtube-features/appearance/details/details.js", + "content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.js", + "content-scripts/extension-context/youtube-features/appearance/comments/comments.js", + "content-scripts/extension-context/init.js" ], "matches": [ "https://www.youtube.com/*" @@ -42,10 +54,6 @@ } ], "offline_enabled": true, - "web_accessible_resources": [ - "ui/options.html", - "youtube-scripts.js" - ], "optional_permissions": [ "downloads" ], @@ -53,5 +61,26 @@ "contextMenus", "storage" ], - "content_security_policy": "script-src 'self' https://ssl.google-analytics.com/; object-src 'self'" + "web_accessible_resources": [ + { + "resources": [ + "options-page/index.html", + "content-scripts/website-context/core.js", + "content-scripts/website-context/functions.js", + "content-scripts/website-context/youtube-features/appearance.js", + "content-scripts/website-context/youtube-features/themes.js", + "content-scripts/website-context/youtube-features/player.js", + "content-scripts/website-context/youtube-features/playlist.js", + "content-scripts/website-context/youtube-features/channel.js", + "content-scripts/website-context/youtube-features/shortcuts.js", + "content-scripts/website-context/youtube-features/blacklist.js", + "content-scripts/website-context/youtube-features/settings.js", + "content-scripts/website-context/init.js", + "content-scripts/website-context/mutations.js" + ], + "matches": [ + "https://www.youtube.com/*" + ] + } + ] } diff --git a/youtube-scripts.js b/youtube-scripts.js deleted file mode 100644 index e9c4faf39..000000000 --- a/youtube-scripts.js +++ /dev/null @@ -1,4684 +0,0 @@ -/*------------------------------------------------------------------------------ ->>> TABLE OF CONTENTS: --------------------------------------------------------------------------------- -1.0 Global variable -3.0 -4.0 Features - 4.1.0 General - 4.1.1 YouTube home page - 4.1.2 Collapse of subscription sections - 4.1.3 Add "Scroll to top" - 4.1.4 Confirmation before closing - 4.1.5 Mark watched videos - 4.1.6 Only one player instance playing - 4.1.7 HD thumbnails - 4.1.8 Add popup window buttons - 4.2.0 Appearance - 4.2.1 Player - 4.2.1.1 Player size - 4.2.1.2 Forced theater mode - 4.2.1.3 HD thumbnail - 4.2.1.4 Always show progress bar - 4.2.1.5 Video remaining duration - 4.2.2 Sidebar - 4.2.2.1 Livechat - 4.2.2.2 Related videos - 4.2.3 Details - 4.2.3.1 How long ago the video was uploaded - 4.2.3.2 Show channel videos count - 4.2.3.3 Description - 4.2.3.4 Hide Detail Button - 4.2.5 Comments - 4.3.0 Themes - 4.3.1 My colors - 4.3.2 Bluelight - 4.3.3 Dim - 4.3.4 Font - 4.3.5 Themes - 4.3.6 Schedule - 4.4.0 Player - 4.4.1 Autoplay - 4.4.2 Autopause when switching tabs - 4.4.3 Forced playback speed - 4.4.4 Subtitles - 4.4.5 Up next autoplay - 4.4.6 Ads - 4.4.7 Custom mini-player - 4.4.8 Auto fullscreen - 4.4.9 Quality - 4.4.10 Avoid CPU rendering when possible - 4.4.11 Allow 60fps - 4.4.12 Forced volume - 4.4.13 Loudness normalization - 4.4.14 Screenshot - 4.4.15 Repeat - 4.4.16 Rotate - 4.4.17 Popup player - 4.4.18 Force SDR - 4.4.19 Hide controls - 4.5.0 Playlist - 4.5.1 Up next autoplay - 4.5.2 Reverse - 4.5.3 Repeat - 4.5.4 Shuffle - 4.6.0 Channel - 4.6.1 Default channel tab - 4.6.2 "Play all" button - 4.7.0 Shortcuts - 4.7.1 Quality - 4.7.2 Picture in Picture - 4.7.3 Toggle control - 4.7.4 Play / pause - 4.7.5 Stop - 4.7.6 Toggle autoplay - 4.7.7 Next videos - 4.7.8 Previous video - 4.7.9 Seek backward - 4.7.10 Seek forward - 4.7.11 Seek next chapter - 4.7.12 Seek previous chapter - 4.7.13 Increase volume - 4.7.14 Decrease volume - 4.7.15 Screenshot - 4.7.16 Increase playback speed - 4.7.17 Decrease playback speed - 4.7.18 Go to search box - 4.7.19 Activate fullscreen - 4.7.20 Activate captions - 4.7.21 Like - 4.7.22 Dislike - 4.7.23 Subscribe - 4.7.24 Dark theme - 4.7.25 Custom mini player - 4.7.26 Stats for nerds - 4.7.27 Toggle cards - 4.7.28 Popup player - 4.8.0 Blacklist - 4.9.0 Analyzer - 4.10.0 Settings - 4.10.1 ImprovedTube icon - 4.10.2 ImprovedTube player buttons - 4.10.3 Delete YouTube cookies - 4.10.4 YouTube language - 4.10.5 Default content country -4.0 Initialization -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -1.0 GLOBAL VARIABLE --------------------------------------------------------------------------------- -The variable "ImprovedTube" is used on the YouTube side. -------------------------------------------------------------------------------*/ - -var ImprovedTube = { - storage: {}, - elements: { - buttons: {}, - masthead: {}, - playlist: {}, - livechat: {}, - related: {}, - comments: {}, - collapse_of_subscription_sections: [], - mark_watched_videos: [], - blacklist_buttons: [], - popup_window_buttons: [] - }, - regex: { - channel: new RegExp('\/(user|channel|c)\/'), - channel_home_page: new RegExp('\/(user|channel|c)\/.+(\/featured)?\/?$'), - channel_home_page_postfix: new RegExp('\/(featured)?\/?$'), - thumbnail_quality: new RegExp('(default\.jpg|mqdefault\.jpg|hqdefault\.jpg|hq720\.jpg|sddefault\.jpg|maxresdefault\.jpg)+'), - video_id: new RegExp('[?&]v=([^&]+)'), - channel_link: new RegExp('https:\/\/www.youtube.com\/(channel|user|c)\/') - }, - video_src: false, - initialVideoUpdateDone: false, - latestVideoDuration: 0, - video_url: '', - focus: false, - played_before_blur: false, - played_time: 0, - allow_autoplay: false, - mini_player__mode: false, - mini_player__move: false, - mini_player__cursor: '', - mini_player__x: 0, - mini_player__y: 0, - mini_player__max_x: 0, - mini_player__max_y: 0, - mini_player__original_width: 0, - mini_player__original_height: 0, - mini_player__width: 200, - mini_player__height: 160, - miniPlayer_mouseDown_x: 0, - miniPlayer_mouseDown_y: 0, - mini_player__player_offset_x: 0, - mini_player__player_offset_y: 0, - miniPlayer_resize_offset: 16, - playlistReversed: false, - status_timer: false, - defaultApiKey: 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA' -}; - -/*------------------------------------------------------------------------------ -3.0 --------------------------------------------------------------------------------- - -------------------------------------------------------------------------------*/ - -ImprovedTube.childHandler = function (node) { - var children = node.children; - - this.ytElementsHandler(node); - - if (children) { - for (var i = 0, l = children.length; i < l; i++) { - ImprovedTube.childHandler(children[i]); - } - } -}; - -ImprovedTube.ytElementsHandler = function (node) { - var name = node.nodeName, - id = node.id; - - if (name === 'A' && node.href) { - if (id === 'logo') { - //ImprovedTube.youtubeHomePage(); - } - - this.channelDefaultTab(node); - this.markWatchedVideos(node); - this.popupWindowButtons(node); - - if (node.className.indexOf('ytd-thumbnail') !== -1) { - this.blacklist('video', node); - } - - if (node.href.match(/(channel|user|c)\/([^/]+)/)) { - this.blacklist('channel', node); - } - } else if (name === 'IMG') { - if (node.src) { - this.thumbnailsQuality(node); - } else { - new MutationObserver(function (mutationList) { - for (var i = 0, l = mutationList.length; i < l; i++) { - var mutation = mutationList[i]; - - if (mutation.type === 'attributes' && mutation.attributeName === 'src') { - ImprovedTube.thumbnailsQuality(mutation.target); - } - } - - this.disconnect(); - }).observe(node, { - attributes: true, - attributeFilter: ['src'], - childList: false, - subtree: false - }); - } - } else if (name === 'YTD-ITEM-SECTION-RENDERER') { - this.collapseOfSubscriptionSections(node); - } else if (name === 'META') { - if (node.getAttribute('itemprop') === 'genre') { - ImprovedTube.genre = node.content; - } - } else if (name === 'YTD-TOGGLE-BUTTON-RENDERER' || name === 'YTD-PLAYLIST-LOOP-BUTTON-RENDERER') { - if ( - node.parentComponent && - node.parentComponent.nodeName === 'YTD-MENU-RENDERER' && - node.parentComponent.parentComponent && - node.parentComponent.parentComponent.nodeName === 'YTD-PLAYLIST-PANEL-RENDERER' - ) { - var index = Array.prototype.indexOf.call(node.parentNode.children, node); - - if (index === 0) { - this.elements.playlist.repeat_button = node.button.firstElementChild; - - this.playlistRepeat(); - - this.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode; - - this.playlistReverse(); - } else if (index === 1) { - this.elements.playlist.shuffle_button = node; - - this.playlistShuffle(); - - this.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode; - - this.playlistReverse(); - } - } - } else if (name === 'YTD-GUIDE-SECTION-RENDERER') { - if(!this.elements.sidebar_section){ - this.elements.sidebar_section = node; - - this.improvedtubeYoutubeIcon(); - } - } else if (name === 'YTD-VIDEO-PRIMARY-INFO-RENDERER') { - this.elements.video_title = node.querySelector('.title.ytd-video-primary-info-renderer'); - - this.improvedtubeYoutubeIcon(); - this.improvedtubeYoutubeButtonsUnderPlayer(); - if(document.documentElement.dataset.pageType === 'video'){ - this.hideDetailButton(node.querySelector('#menu #top-level-buttons-computed').children); - } - } else if (name === 'YTD-VIDEO-SECONDARY-INFO-RENDERER') { - this.elements.yt_channel_name = node.querySelector('ytd-channel-name'); - this.elements.yt_channel_link = node.querySelector('ytd-channel-name a'); - - if (document.documentElement.dataset.pageType === 'video') { - this.howLongAgoTheVideoWasUploaded(); - this.channelVideosCount(); - } - } else if (name === 'YTD-SUBSCRIBE-BUTTON-RENDERER') { - if (node.className.indexOf('ytd-c4-tabbed-header-renderer') !== -1) { - ImprovedTube.blacklist('channel', node); - } - - ImprovedTube.elements.subscribe_button = node; - } else if (name === 'YTD-LIVE-CHAT-FRAME') { - this.elements.livechat.chat = node; - this.elements.livechat.button = node.querySelector('ytd-toggle-button-renderer'); - - if (this.storage.livechat === 'collapsed' && this.elements.livechat.button) { - var interval = setInterval(function () { - if (ImprovedTube.elements.livechat.chat.hasAttribute('collapsed')) { - clearInterval(interval); - } else { - ImprovedTube.livechat(); - } - }, 1000); - } - } else if (id === 'related') { - if (node.className.indexOf('ytd-watch-flexy') !== -1) { - this.elements.related.container = node; - - this.relatedVideos(); - } - } else if (name === 'YTD-COMMENTS-HEADER-RENDERER') { - this.elements.comments.container = node; - - this.comments(); - } else if (name === 'YTD-MASTHEAD') { - if(!this.elements.masthead){ - this.elements.masthead = { - start: node.querySelector('#start'), - end: node.querySelector('#end'), - logo: node.querySelector('a#logo') - }; - - this.improvedtubeYoutubeIcon(); - this.youtubeHomePage(); - } - } else if (name === 'YTD-PLAYER') { - if(!this.elements.ytd_player){ - ImprovedTube.elements.ytd_player = node; - } - } else if (id === 'movie_player') { - if (!this.elements.player) { - ImprovedTube.elements.player = node; - ImprovedTube.elements.video = node.querySelector('video'); - ImprovedTube.elements.player_left_controls = node.querySelector('.ytp-left-controls'); - ImprovedTube.elements.player_thumbnail = node.querySelector('.ytp-cued-thumbnail-overlay-image'); - ImprovedTube.elements.player_subtitles_button = node.querySelector('.ytp-subtitles-button'); - - ImprovedTube.playerSize(); - - new MutationObserver(function (mutationList) { - for (var i = 0, l = mutationList.length; i < l; i++) { - var mutation = mutationList[i]; - - if (mutation.type === 'childList') { - for (var j = 0, k = mutation.addedNodes.length; j < k; j++) { - var node = mutation.addedNodes[j]; - - if (node.nodeName === 'DIV' && node.className.indexOf('ytp-ad-player-overlay') !== -1) { - ImprovedTube.playerAds(node); - } - } - } - } - }).observe(node, { - attributes: false, - childList: true, - subtree: true - }); - - new MutationObserver(function (mutationList) { - for (var i = 0, l = mutationList.length; i < l; i++) { - var mutation = mutationList[i]; - - if (mutation.type === 'attributes' && mutation.attributeName === 'style') { - ImprovedTube.playerHdThumbnail(); - } - } - }).observe(ImprovedTube.elements.player_thumbnail, { - attributes: true, - attributeFilter: ['style'], - childList: false, - subtree: false - }); - } - } else if (name === 'YTD-WATCH-FLEXY') { - this.elements.ytd_watch = node; - - if ( - this.isset(this.storage.player_size) && - this.storage.player_size !== 'do_not_change' - ) { - node.calculateCurrentPlayerSize_ = function () { - if (!this.theater && ImprovedTube.elements.player) { - if (this.updateStyles) { - this.updthisateStyles({ - '--ytd-watch-flexy-width-ratio': 1, - '--ytd-watch-flexy-height-ratio': 0.5625 - }); - - this.updateStyles({ - '--ytd-watch-width-ratio': 1, - '--ytd-watch-height-ratio': 0.5625 - }); - } - - return { - width: ImprovedTube.elements.player.offsetWidth, - height: Math.round(ImprovedTube.elements.player.offsetWidth / (16 / 9)) - }; - } - - return { - width: NaN, - height: NaN - }; - }; - - node.calculateNormalPlayerSize_ = node.calculateCurrentPlayerSize_; - } - - new MutationObserver(function (mutationList) { - for (var i = 0, l = mutationList.length; i < l; i++) { - var mutation = mutationList[i]; - - if (mutation.type === 'attributes' && mutation.attributeName === 'theater') { - setTimeout(function () { - ImprovedTube.playerSize(); - }, 100); - } - } - }).observe(node, { - attributes: true, - attributeFilter: ['theater'], - childList: false, - subtree: false - }); - } else if (name === 'TP-YT-PAPER-BUTTON') { - if (document.documentElement.dataset.pageType === 'video' && id === 'expand-sizer' || id === 'more' && node.parentNode.parentNode.id === 'container') { - setTimeout(function () { - ImprovedTube.description(node); - }, 750); - } - } -}; - -ImprovedTube.pageType = function () { - if (location.pathname === '/') { - document.documentElement.dataset.pageType = 'home'; - } else if (/\/subscriptions\?/.test(location.href)) { - document.documentElement.dataset.pageType = 'subscriptions'; - } else if (/\/watch\?/.test(location.href)) { - document.documentElement.dataset.pageType = 'video'; - } else if (/\/channel|user|c\//.test(location.href)) { - document.documentElement.dataset.pageType = 'channel'; - } else { - document.documentElement.dataset.pageType = 'other'; - } -}; - -ImprovedTube.pageOnFocus = function () { - this.onlyOnePlayerInstancePlaying(); - this.playerAutopauseWhenSwitchingTabs(); -}; - -ImprovedTube.videoPageUpdate = function () { - if (document.documentElement.dataset.pageType === 'video') { - var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); - - if (this.storage.track_watched_videos === true && video_id) { - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'set', - id: video_id, - title: document.title - } - })); - } - - this.initialVideoUpdateDone = true; - - this.howLongAgoTheVideoWasUploaded(); - this.channelVideosCount(); - - this.upNextAutoplay(); - this.playerAutofullscreen(); - this.playerScreenshotButton(); - this.playerRepeatButton(); - this.playerRotateButton(); - this.playerPopupButton(); - this.playerControls(); - } -}; - -ImprovedTube.playerOnPlay = function () { - HTMLMediaElement.prototype.play = (function (original) { - return function () { - this.removeEventListener('loadedmetadata', ImprovedTube.playerOnLoadedMetadata); - this.addEventListener('loadedmetadata', ImprovedTube.playerOnLoadedMetadata); - - this.removeEventListener('timeupdate', ImprovedTube.playerOnTimeUpdate); - this.addEventListener('timeupdate', ImprovedTube.playerOnTimeUpdate); - - this.removeEventListener('pause', ImprovedTube.playerOnPause, true); - this.addEventListener('pause', ImprovedTube.playerOnPause, true); - - this.removeEventListener('ended', ImprovedTube.playerOnEnded, true); - this.addEventListener('ended', ImprovedTube.playerOnEnded, true); - - ImprovedTube.playerLoudnessNormalization(); - - return original.apply(this, arguments); - } - })(HTMLMediaElement.prototype.play); -}; - -ImprovedTube.initPlayer = function () { - if (ImprovedTube.elements.player && ImprovedTube.video_url !== location.href) { - - ImprovedTube.video_url = location.href; - ImprovedTube.played_before_blur = false; - - delete ImprovedTube.elements.player.dataset.defaultQuality; - - ImprovedTube.forcedPlayVideoFromTheBeginning(); - ImprovedTube.playerPlaybackSpeed(false); - ImprovedTube.subtitles(); - ImprovedTube.subtitlesLanguage(); - ImprovedTube.subtitlesFontFamily(); - ImprovedTube.subtitlesFontColor(); - ImprovedTube.subtitlesFontSize(); - ImprovedTube.subtitlesBackgroundColor(); - ImprovedTube.subtitlesWindowColor(); - ImprovedTube.subtitlesWindowOpacity(); - ImprovedTube.subtitlesCharacterEdgeStyle(); - ImprovedTube.subtitlesFontOpacity(); - ImprovedTube.subtitlesBackgroundOpacity(); - ImprovedTube.playerQuality(); - ImprovedTube.playerVolume(); - setTimeout(function () { - ImprovedTube.forcedTheaterMode(); - }, 200); - - - if (location.href.indexOf('/embed/') === -1) { - ImprovedTube.miniPlayer(); - } - } -}; - -ImprovedTube.playerOnLoadedMetadata = function () { - setTimeout(function () { - ImprovedTube.playerSize(); - }, 100); -}; - -ImprovedTube.playerOnTimeUpdate = function () { - if (ImprovedTube.video_src !== this.src) { - ImprovedTube.video_src = this.src; - - if (ImprovedTube.initialVideoUpdateDone !== true) { - ImprovedTube.playerQuality(); - } - } else if (ImprovedTube.latestVideoDuration !== this.duration) { - ImprovedTube.latestVideoDuration = this.duration; - - ImprovedTube.playerQuality(); - } - - ImprovedTube.alwaysShowProgressBar(); - ImprovedTube.playerRemainingDuration(); - - ImprovedTube.played_time += .25; -}; - -ImprovedTube.playerOnPause = function (event) { - ImprovedTube.playlistUpNextAutoplay(event); - - if (ImprovedTube.elements.yt_channel_name) { - document.dispatchEvent(new CustomEvent('analyzer', { - detail: { - name: ImprovedTube.elements.yt_channel_name.__data.tooltipText, - time: ImprovedTube.played_time - } - })); - } - - ImprovedTube.played_time = 0; -}; - -ImprovedTube.playerOnEnded = function (event) { - ImprovedTube.playlistUpNextAutoplay(event); - - document.dispatchEvent(new CustomEvent('analyzer', { - detail: { - name: ImprovedTube.elements.yt_channel_name.__data.tooltipText, - time: ImprovedTube.played_time - } - })); - - ImprovedTube.played_time = 0; -}; - -ImprovedTube.onkeydown = function () { - window.addEventListener('keydown', function () { - if ( - ImprovedTube.elements.player && - ImprovedTube.elements.player.className.indexOf('ad-showing') === -1 - ) { - ImprovedTube.allow_autoplay = true; - } - }, true); -}; - -ImprovedTube.onmousedown = function (event) { - window.addEventListener('mousedown', function (event) { - if (ImprovedTube.elements.player && ImprovedTube.elements.player.className.indexOf('ad-showing') === -1) { - var path = event.composedPath(); - - for (var i = 0, l = path.length; i < l; i++) { - if ( - path[i].className && - path[i].className.indexOf && - ( - path[i].className.indexOf('html5-main-video') !== -1 || - path[i].className.indexOf('ytp-play-button') !== -1 - ) - ) { - ImprovedTube.allow_autoplay = true; - } - } - } - }, true); -}; - -ImprovedTube.getCookieValueByName = function (name) { - var match = document.cookie.match(new RegExp('([; ]' + name + '|^' + name + ')([^\\s;]*)', 'g')); - - if (match) { - var cookie = match[0]; - - return cookie.replace(name + '=', '').replace(' ', ''); - } else - return ''; -}; - -ImprovedTube.getParam = function (query, name) { - var params = query.split('&'), - param = false; - - for (var i = 0; i < params.length; i++) { - params[i] = params[i].split('='); - - if (params[i][0] == name) { - param = params[i][1]; - } - } - - if (param) { - return param; - } else { - return false; - } -}; - -ImprovedTube.getParams = function (query) { - var params = query.split('&'), - result = {}; - - for (var i = 0, l = params.length; i < l; i++) { - params[i] = params[i].split('='); - - result[params[i][0]] = params[i][1]; - } - - return result; -}; - -ImprovedTube.setCookie = function (name, value) { - var date = new Date(); - - date.setTime(date.getTime() + 3.154e+10); - - document.cookie = name + '=' + value + '; path=/; domain=.youtube.com; expires=' + date.toGMTString(); -}; - -ImprovedTube.createPlayerButton = function (options) { - var controls = this.elements.player_left_controls; - - if (controls) { - var button = document.createElement('button'); - - button.className = 'ytp-button it-player-button'; - - button.dataset.title = options.title; - - button.addEventListener('mouseover', function () { - var tooltip = document.createElement('div'), - rect = this.getBoundingClientRect(); - - tooltip.className = 'it-player-button--tooltip'; - - tooltip.style.left = rect.left + rect.width / 2 + 'px'; - tooltip.style.top = rect.top - 8 + 'px'; - - tooltip.textContent = this.dataset.title; - - function mouseleave() { - tooltip.remove(); - - this.removeEventListener('mouseleave', mouseleave); - } - - this.addEventListener('mouseleave', mouseleave); - - document.body.appendChild(tooltip); - }); - - if (options.id) { - if (this.elements.buttons[options.id]) { - this.elements.buttons[options.id].remove(); - } - - button.id = options.id; - - this.elements.buttons[options.id] = button; - } - - if (options.child) { - button.appendChild(options.child); - } - - button.style.opacity = options.opacity || '.5'; - - if (options.onclick) { - button.onclick = options.onclick; - } - - controls.insertBefore(button, controls.childNodes[3]); - } -}; - -ImprovedTube.empty = function (element) { - for (var i = element.childNodes.length - 1; i > -1; i--) { - element.childNodes[i].remove(); - } -}; - -ImprovedTube.isset = function (variable) { - return !(typeof variable === 'undefined' || variable === null || variable === 'null'); -}; - -ImprovedTube.stopPropagation = function (event) { - event.stopPropagation(); -}; - -ImprovedTube.showStatus = function (value) { - if (!this.elements.status) { - this.elements.status = document.createElement('div'); - - this.elements.status.id = 'it-status'; - } - - if (typeof value === 'number') { - value = value.toFixed(2); - } - - this.elements.status.textContent = value; - - if (ImprovedTube.status_timer) { - clearTimeout(ImprovedTube.status_timer); - } - - ImprovedTube.status_timer = setTimeout(function () { - ImprovedTube.elements.status.remove(); - }, 500); - - this.elements.player.appendChild(this.elements.status); -}; - - -/*------------------------------------------------------------------------------ -4.0 FEATURES --------------------------------------------------------------------------------- - -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -4.1.0 GENERAL -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -4.1.1 YOUTUBE HOME PAGE -------------------------------------------------------------------------------*/ - -ImprovedTube.youtubeHomePage = function () { - var element = this.elements.masthead.logo, - option = this.storage.youtube_home_page; - - if (element) { - if (this.isset(option)) { - element.href = option; - - element.addEventListener('click', this.stopPropagation, true); - } else { - element.href = '/'; - - element.removeEventListener('click', this.stopPropagation); - } - } -}; - - -/*------------------------------------------------------------------------------ -4.1.2 COLLAPSE OF SUBSCRIPTION SECTION -------------------------------------------------------------------------------*/ - -ImprovedTube.collapseOfSubscriptionSections = function (node) { - if (this.isset(node) === false) { - var sections = document.querySelectorAll('ytd-item-section-renderer'); - - for (var i = 0, l = sections.length; i < l; i++) { - this.collapseOfSubscriptionSections(sections[i]); - } - - return; - } - - if (this.storage.collapse_of_subscription_sections === true) { - if (location.href.indexOf('feed/subscriptions') !== -1) { - var h2 = node.querySelector('h2'); - - if (!node.querySelector('.it-section-collapse') && h2) { - var button = document.createElement('button'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - button.className = 'it-button-section-collapse'; - button.section = node; - button.content = node.querySelector('.grid-subheader + #contents'); - - button.addEventListener('click', function () { - var section = this.section; - - if (section.className.indexOf('it-section-collapsed') === -1) { - this.content.style.height = this.content.offsetHeight + 'px'; - this.content.style.transition = 'height 150ms'; - } - - setTimeout(function () { - section.classList.toggle('it-section-collapsed'); - }); - }); - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M7.4 15.4l4.6-4.6 4.6 4.6L18 14l-6-6-6 6z'); - - svg.appendChild(path); - - button.appendChild(svg); - - h2.parentNode.insertBefore(button, h2.nextSibling); - - this.elements.collapse_of_subscription_sections.push(button); - } - } - } else { - var elements = this.elements.collapse_of_subscription_sections; - - for (var i = 0, l = elements.length; i < l; i++) { - var element = elements[i]; - - if (element.section) { - element.section.classList.remove('it-section-collapsed'); - } - - if (element.content) { - element.content.style.height = ''; - element.content.style.transition = ''; - } - - element.remove(); - } - } -}; - - -/*------------------------------------------------------------------------------ -4.1.3 ADD "SCROLL TO TOP" -------------------------------------------------------------------------------*/ - -ImprovedTube.addScrollToTop = function () { - if (this.storage.add_scroll_to_top === true) { - var button = document.createElement('div'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - button.id = 'it-scroll-to-top'; - - button.addEventListener('click', function () { - window.scrollTo(0, 0); - }); - - button.scroll = function () { - if (window.scrollY > window.innerHeight / 2) { - document.documentElement.setAttribute('it-show-scroll-to-top', true); - } else { - document.documentElement.setAttribute('it-show-scroll-to-top', false); - } - }; - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M13 19V7.8l4.9 5c.4.3 1 .3 1.4 0 .4-.5.4-1.1 0-1.5l-6.6-6.6a1 1 0 0 0-1.4 0l-6.6 6.6a1 1 0 1 0 1.4 1.4L11 7.8V19c0 .6.5 1 1 1s1-.5 1-1z'); - - svg.appendChild(path); - button.appendChild(svg); - document.body.appendChild(button); - - window.addEventListener('scroll', button.scroll); - - this.elements.scroll_to_top = button; - } else if (this.elements.scroll_to_top) { - window.removeEventListener('scroll', this.elements.scroll_to_top.scroll); - - this.elements.scroll_to_top.remove(); - } -}; - - -/*------------------------------------------------------------------------------ -4.1.4 CONFIRMATION BEFORE CLOSING -------------------------------------------------------------------------------*/ - -ImprovedTube.confirmationBeforeClosing = function () { - window.onbeforeunload = function () { - if (ImprovedTube.storage.confirmation_before_closing === true) { - return 'You have attempted to leave this page. Are you sure?'; - } - }; -}; - - -/*------------------------------------------------------------------------------ -4.1.5 MARK WATCHED VIDEOS -------------------------------------------------------------------------------*/ - -ImprovedTube.markWatchedVideos = function (node) { - if (this.isset(node) === false) { - var thumbnails = document.querySelectorAll('#thumbnail.ytd-thumbnail,.thumb-link'); - - for (var i = 0, l = thumbnails.length; i < l; i++) { - this.markWatchedVideos(thumbnails[i]); - } - - return; - } - - if (this.storage.mark_watched_videos === true) { - if ( - node.id === 'thumbnail' && node.className.indexOf('ytd-thumbnail') !== -1 || - node.className.indexOf('thumb-link') !== -1 - ) { - var button = document.createElement('button'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - button.className = 'it-mark-watched' + (this.storage.watched && this.storage.watched[this.getParam(new URL(node.href || 'https://www.youtube.com/').search.substr(1), 'v')] ? ' watched' : ''); - - button.addEventListener('click', function (event) { - var watched = !this.classList.contains('watched'); - - event.preventDefault(); - event.stopPropagation(); - - this.classList.toggle('watched'); - - try { - var video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'), - item = this.parentNode; - - while ( - item.nodeName && - item.nodeName !== 'YTD-RICH-ITEM-RENDERER' && - item.nodeName !== 'YTD-COMPACT-VIDEO-RENDERER' && - item.nodeName !== 'YTD-GRID-VIDEO-RENDERER' && - item.classList && - !item.classList.contains('yt-shelf-grid-item') && - !item.classList.contains('video-list-item') - ) { - item = item.parentNode; - } - - if (!ImprovedTube.storage.watched) { - ImprovedTube.storage.watched = {}; - } - - if (watched === true) { - ImprovedTube.storage.watched[video_id] = { - title: item.querySelector('#video-title').innerText - }; - - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'set', - id: video_id, - title: item.querySelector('#video-title').innerText - } - })); - } else if (ImprovedTube.storage.watched[video_id]) { - delete ImprovedTube.storage.watched[video_id]; - - document.dispatchEvent(new CustomEvent('ImprovedTubeWatched', { - detail: { - action: 'remove', - id: video_id - } - })); - } - } catch (err) {} - }); - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M12 4.5C7 4.5 2.7 7.6 1 12a11.8 11.8 0 0022 0c-1.7-4.4-6-7.5-11-7.5zM12 17a5 5 0 110-10 5 5 0 010 10zm0-8a3 3 0 100 6 3 3 0 000-6z'); - - svg.appendChild(path); - button.appendChild(svg); - - node.appendChild(button); - - this.elements.mark_watched_videos.push(button); - } - } else { - var buttons = this.elements.mark_watched_videos; - - for (var i = 0, l = buttons.length; i < l; i++) { - buttons[i].remove(); - } - } -}; - - -/*------------------------------------------------------------------------------ -4.1.6 ONLY ONE PLAYER INSTANCE PLAYING -------------------------------------------------------------------------------*/ - -ImprovedTube.onlyOnePlayerInstancePlaying = function () { - var player = ImprovedTube.elements.player; - - if (this.storage.only_one_player_instance_playing === true && this.focus === true && player) { - if (ImprovedTube.played_before_blur === true) { - player.playVideo(); - } - - document.dispatchEvent(new CustomEvent('ImprovedTubeOnlyOnePlayer')); - } -}; - -document.addEventListener('ImprovedTubeOnlyOnePlayer', function (event) { - document.documentElement.setAttribute('it-message', JSON.stringify({ - onlyOnePlayer: true - })); -}); - - -/*------------------------------------------------------------------------------ -4.1.7 HD THUMBNAILS -------------------------------------------------------------------------------*/ - -ImprovedTube.thumbnailsQuality = function (node) { - var option = this.storage.thumbnails_quality; - - if (this.isset(node) === false) { - var thumbnails = document.querySelectorAll('img'); - - for (var i = 0, l = thumbnails.length; i < l; i++) { - this.thumbnailsQuality(thumbnails[i]); - } - - return; - } - - if (['default', 'mqdefault', 'hqdefault', 'sddefault', 'maxresdefault'].includes(option) === true) { - if (!node.dataset.defaultSrc && this.regex.thumbnail_quality.test(node.src)) { - node.dataset.defaultSrc = node.src; - node.onload = function () { - if (this.naturalHeight <= 90) { - this.src = this.dataset.defaultSrc; - } - }; - node.src = node.src.replace(this.regex.thumbnail_quality, option + '.jpg'); - node.onerror = function () { - this.error = ""; - this.src = node.dataset.defaultSrc; - } - } - } -}; - -/*------------------------------------------------------------------------------ -4.1.8 ADD POPUP WINDOW BUTTONS -------------------------------------------------------------------------------*/ - -ImprovedTube.popupWindowButtons = function (node) { - if (this.isset(node) === false) { - var thumbnails = document.querySelectorAll('#thumbnail.ytd-thumbnail,.thumb-link'); - - for (var i = 0, l = thumbnails.length; i < l; i++) { - this.popupWindowButtons(thumbnails[i]); - } - - return; - } - - if (this.storage.popup_window_buttons === true) { - if ( - node.id === 'thumbnail' && node.className.indexOf('ytd-thumbnail') !== -1 || - node.className.indexOf('thumb-link') !== -1 - ) { - var button = document.createElement('button'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - button.className = 'it-popup-window'; - button.addEventListener('click', function (event) { - event.preventDefault(); - event.stopPropagation(); - try { - var video_id = ImprovedTube.getParam(new URL(this.parentNode.href).search.substr(1), 'v'); - window.open('//www.youtube.com/embed/' + video_id + '?autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no'); - } catch (err) {} - }); - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M19 7h-8v6h8V7zm2-4H3C2 3 1 4 1 5v14c0 1 1 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 16H3V5h18v14z'); - - svg.appendChild(path); - button.appendChild(svg); - - node.appendChild(button); - this.elements.popup_window_buttons.push(button); - } - } else { - var buttons = this.elements.popup_window_buttons; - - for (var i = 0, l = buttons.length; i < l; i++) { - buttons[i].remove(); - } - } -}; - -/*------------------------------------------------------------------------------ -4.2.0 APPEARANCE -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -4.2.1 PLAYER -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -4.2.1.1 PLAYER SIZE -------------------------------------------------------------------------------*/ - -ImprovedTube.playerSize = function () { - if (window.self === window.top) { - if (this.elements.player_size_style) { - this.elements.player_size_style.remove(); - } - - if (this.storage.forced_theater_mode === true && this.storage.player_size === 'fit_to_window') { - var button = document.querySelector('button.ytp-size-button'), - container = document.getElementById('player-theater-container'); - - if (button && (container && !container.firstChild)) { - button.click(); - } - } - - if (this.storage.player_size === 'fit_to_window' && this.elements.ytd_watch && this.elements.ytd_player) { - var video = this.elements.video, - aspect_ratio = video.videoWidth / video.videoHeight, - width, - height, - max_height = window.innerHeight, - style = this.elements.player_size_style || document.createElement('style'); - - if (this.elements.ytd_watch.theater === true) { - width = this.elements.ytd_player.offsetWidth; - - style.textContent = '[data-page-type="video"][it-player-size="fit_to_window"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) video {'; - } else { - width = this.elements.ytd_watch.offsetWidth; - - style.textContent = '[data-page-type="video"][it-player-size="fit_to_window"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) video {'; - } - - height = width / aspect_ratio; - - if (height > max_height) { - width -= (height - max_height) * aspect_ratio; - height = max_height; - } - - if (this.elements.ytd_watch.theater) { - style.textContent += 'width:' + width + 'px !important;'; - } - else { - style.textContent += 'width:100% !important;'; - } - style.textContent += 'height:' + height + 'px !important;'; - style.textContent += '}'; - - this.elements.player_size_style = style; - - document.body.appendChild(style); - - setTimeout(function () { - window.dispatchEvent(new Event('resize')); - }, 100); - } - - else if (this.storage.player_size === 'custom') { - var width = Number(this.storage.custom_player_size_width) || 1280, - height = Number(this.storage.custom_player_size_height) || 720, - style = this.elements.player_size_style || document.createElement('style'); - - style.textContent = '[data-page-type="video"][it-player-size="custom"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video {'; - style.textContent += 'width:' + width + 'px !important;'; - style.textContent += 'height:' + height + 'px !important;'; - style.textContent += '}'; - - style.textContent += '[data-page-type="video"][it-player-size="custom"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-container-inner.ytd-watch-flexy {'; - style.textContent += 'padding-top:' + height + 'px !important;'; - style.textContent += '}'; - - style.textContent += '[data-page-type="video"][it-player-size="custom"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-theater-container.ytd-watch-flexy {'; - style.textContent += 'height:' + height + 'px !important;'; - style.textContent += 'min-height:' + height + 'px !important;'; - style.textContent += 'max-height:' + height + 'px !important;'; - style.textContent += '}'; - - this.elements.player_size_style = style; - - document.body.appendChild(style); - - setTimeout(function () { - window.dispatchEvent(new Event('resize')); - }, 100); - } - } -}; - - -/*------------------------------------------------------------------------------ -4.2.1.2 FORCED THEATER MODE -------------------------------------------------------------------------------*/ - -ImprovedTube.forcedTheaterMode = function () { - if ( - this.storage.forced_theater_mode === true && - this.elements.ytd_watch && - this.elements.player - ) { - var button = this.elements.player.querySelector('button.ytp-size-button'); - - if (button && this.elements.ytd_watch.theater === false) { - document.cookie = 'wide=1;domain=.youtube.com'; - - setTimeout(function () { - button.click(); - }, 100); - } - } -}; - - -/*------------------------------------------------------------------------------ -4.2.1.3 HD THUMBNAIL -------------------------------------------------------------------------------*/ - -ImprovedTube.playerHdThumbnail = function () { - if (this.storage.player_hd_thumbnail === true) { - var thumbnail = ImprovedTube.elements.player_thumbnail; - - if (thumbnail.style.backgroundImage.indexOf('/hqdefault.jpg') !== -1) { - thumbnail.style.backgroundImage = thumbnail.style.backgroundImage.replace('/hqdefault.jpg', '/maxresdefault.jpg'); - } - } -}; - - -/*------------------------------------------------------------------------------ -4.2.1.4 ALWAYS SHOW PROGRESS BAR -------------------------------------------------------------------------------*/ - -ImprovedTube.alwaysShowProgressBar = function () { - if (this.storage.always_show_progress_bar === true) { - var player = ImprovedTube.elements.player; - - if (player && player.className.indexOf('ytp-autohide') !== -1) { - var played = player.getCurrentTime() * 100 / player.getDuration(), - loaded = player.getVideoBytesLoaded() * 100, - play_bars = player.querySelectorAll('.ytp-play-progress'), - load_bars = player.querySelectorAll('.ytp-load-progress'), - width = 0, - progress_play = 0, - progress_load = 0; - - for (var i = 0, l = play_bars.length; i < l; i++) { - width += play_bars[i].offsetWidth; - } - - var width_percent = width / 100; - - for (var i = 0, l = play_bars.length; i < l; i++) { - var a = play_bars[i].offsetWidth / width_percent, - b = 0, - c = 0; - - if (played - progress_play >= a) { - b = 100; - } else if (played > progress_play && played < a + progress_play) { - b = 100 * ((played - progress_play) * width_percent) / play_bars[i].offsetWidth; - } - - play_bars[i].style.transform = 'scaleX(' + b / 100 + ')'; - - if (loaded - progress_load >= a) { - c = 100; - } else if (loaded > progress_load && loaded < a + progress_load) { - c = 100 * ((loaded - progress_load) * width_percent) / play_bars[i].offsetWidth; - } - - load_bars[i].style.transform = 'scaleX(' + c / 100 + ')'; - - progress_play += a; - progress_load += a; - } - } - } -}; - - -/*------------------------------------------------------------------------------ -4.2.1.5 VIDEO REMAINING DURATION -------------------------------------------------------------------------------*/ - -ImprovedTube.formatSecond = function (rTime) { - var time = new Date(null); - - if (this.storage.duration_with_speed === true) { - var playbackRate = this.elements.video.playbackRate; - time.setSeconds(rTime / playbackRate); - } else { - time.setSeconds(rTime); - } - - if (rTime / 3600 < 1) { - return time.toISOString().substr(14, 5); - } else { - return time.toISOString().substr(11, 8); - } -} - -ImprovedTube.playerRemainingDuration = function () { - var element = document.querySelector('.ytp-time-remaining-duration'); - if (this.storage.player_remaining_duration === true) { - var player = ImprovedTube.elements.player; - var rTime = ImprovedTube.formatSecond((player.getDuration() - player.getCurrentTime()).toFixed(0)); - if (!element) { - var label = document.createElement('span'); - label.textContent = ' (-' + rTime + ')'; - label.className = 'ytp-time-remaining-duration'; - document.querySelector('.ytp-time-display').appendChild(label); - } else { - element.textContent = ' (-' + rTime + ')'; - } - } else if (element) { - element.remove(); - } -}; - - -/*------------------------------------------------------------------------------ -4.2.2 SIDEBAR -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -4.2.2.1 LIVECHAT -------------------------------------------------------------------------------*/ - -ImprovedTube.livechat = function () { - if (this.storage.livechat === 'collapsed') { - this.elements.livechat.button.click(); - } -}; - - -/*------------------------------------------------------------------------------ -4.2.2.2 RELATED VIDEOS -------------------------------------------------------------------------------*/ - -ImprovedTube.relatedVideos = function () { - if (this.storage.related_videos === 'collapsed' && !this.elements.related.button) { - var button = document.createElement('button'), - content = document.createElement('span'), - show_more = document.createElement('span'), - show_less = document.createElement('span'), - parent = this.elements.related.container; - - button.id = 'improvedtube-collapsed-related-videos'; - button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; - button.onclick = function () { - document.documentElement.classList.toggle('related-videos-collapsed'); - }; - - content.className = 'yt-uix-button-content'; - - show_more.className = 'show-more-text'; - show_more.textContent = 'Show more'; - - show_less.className = 'show-less-text'; - show_less.textContent = 'Show less'; - - content.appendChild(show_more); - content.appendChild(show_less); - button.appendChild(content); - - this.elements.related.button = button; - - parent.insertBefore(button, parent.children[0]); - - document.documentElement.classList.add('related-videos-collapsed'); - } -}; - - -/*------------------------------------------------------------------------------ -4.2.3 DETAILS -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -4.2.3.1 HOW LONG AGO THE VIDEO WAS UPLOADED -------------------------------------------------------------------------------*/ - -ImprovedTube.howLongAgoTheVideoWasUploaded = function () { - if (this.storage.how_long_ago_the_video_was_uploaded === true && this.elements.yt_channel_name) { - var date_element = document.querySelector('#info #info-text #info-strings yt-formatted-string'); - - clearInterval(this.infoDateInterval); - - if (!date_element) { - this.infoDateInterval = setInterval(function () { - ImprovedTube.howLongAgoTheVideoWasUploaded(); - }, 1000); - - return false; - } - - function append(string) { - var element = ImprovedTube.elements.how_long_ago_the_video_was_uploaded || document.createElement('div'); - - element.className = 'it-how-long-ago-the-video-was-uploaded'; - - element.textContent = '• ' + string; - - ImprovedTube.elements.how_long_ago_the_video_was_uploaded = element; - - document.querySelector('#info #info-text').appendChild(element); - } - - if (date_element) { - var date = new Date(date_element.textContent); - - if (isNaN(date.getTime()) !== true && new Date() - date.getTime() >= 86400000) { - append(timeSince(date)); - - return; - } - } - - - var xhr = new XMLHttpRequest(), - key = this.storage['google-api-key'] || ImprovedTube.defaultApiKey, - id = this.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v'); - - function timeSince(date) { - var seconds = Math.floor((new Date() - date) / 1000), - interval = Math.floor(seconds / 31536000); - - if (interval > 1) { - return interval + ' years ago'; - } - interval = Math.floor(seconds / 2592000); - if (interval > 1) { - return interval + ' months ago'; - } - interval = Math.floor(seconds / 86400); - if (interval > 1) { - return interval + ' days ago'; - } - interval = Math.floor(seconds / 3600); - if (interval > 1) { - return interval + ' hours ago'; - } - interval = Math.floor(seconds / 60); - if (interval > 1) { - return interval + ' minutes ago'; - } - - return Math.floor(seconds) + ' seconds ago'; - } - - xhr.addEventListener('load', function () { - var response = JSON.parse(this.responseText), - element = ImprovedTube.elements.how_long_ago_the_video_was_uploaded || document.createElement('div'); - - ImprovedTube.empty(element); - - if (response.error) { - if (date_element) { - var date = new Date(date_element.textContent); - - append(timeSince(date)); - } - } else { - append(timeSince(new Date(response.items[0].snippet.publishedAt))); - } - }); - - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=' + id + '&key=' + key, true); - xhr.send(); - } -}; - - -/*------------------------------------------------------------------------------ -4.2.3.2 SHOW CHANNEL VIDEOS COUNT -------------------------------------------------------------------------------*/ - -ImprovedTube.channelVideosCount = function () { - if (this.storage.channel_videos_count === true && this.elements.yt_channel_link) { - var key = this.storage['google-api-key'] || ImprovedTube.defaultApiKey; - if (this.elements.yt_channel_link.href.indexOf('/channel/') == -1) { - var xhr = new XMLHttpRequest(), - id = this.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v'); - - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=' + id + '&key=' + key, false); - xhr.send(); - var response = JSON.parse(xhr.responseText); - id = response.items[0].snippet.channelId; - } else { - id = this.elements.yt_channel_link.href.slice(this.elements.yt_channel_link.href.indexOf('/channel/') + '/channel/'.length); - if (id.indexOf('/') !== -1) { - id = id.match(/.+?(?=\/)/)[0]; - } - } - - xhr = new XMLHttpRequest(); - - xhr.addEventListener('load', function () { - var response = JSON.parse(this.responseText), - parent = document.querySelector('#meta ytd-channel-name + yt-formatted-string'), - element = ImprovedTube.elements.channel_videos_count || document.createElement('div'); - - ImprovedTube.empty(element); - - if (response.error) { - element.appendChild(document.createTextNode('• Error: ' + response.error.code)); - } else { - element.appendChild(document.createTextNode('• ' + response.items[0].statistics.videoCount + ' videos')); - } - - element.className = 'it-channel-videos-count'; - - ImprovedTube.elements.channel_videos_count = element; - - parent.appendChild(element); - - ImprovedTube.elements.channel_videos_count = element; - }); - - - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/channels?part=statistics&id=' + id + '&key=' + key, true); - xhr.send(); - } -}; - - -/*------------------------------------------------------------------------------ -4.2.3.3 DESCRIPTION -------------------------------------------------------------------------------*/ - -ImprovedTube.description = function (el) { - if (this.storage.description === 'expanded') { - console.log(el); - el.click(); - } -}; - - -/*------------------------------------------------------------------------------ -4.2.3.4 HIDE DETAIL BUTTON dislike: M17,4h-1H6.57C5.5,4,4.59,4.67,4.38,5.61l-1.34, -------------------------------------------------------------------------------*/ - -ImprovedTube.hideDetailButton = function (el) { - setTimeout(function () { - for (var i = 2; i < el.length; i++) { - tmp = el[i].querySelector("g.yt-icon path").attributes.d.textContent.split(" ")[0]; - if (tmp === "M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z") { - el[i].setAttribute('id', 'Save-button'); - } - else if (tmp === "M8,7c0,0.55-0.45,1-1,1S6,7.55,6,7c0-0.55,0.45-1,1-1S8,6.45,8,7z") { - el[i].setAttribute('id', 'Clip-button'); - } - else if (tmp === "M16.5,3C19.02,3,21,5.19,21,7.99c0,3.7-3.28,6.94-8.25,11.86L12,20.59l-0.74-0.73l-0.04-0.04C6.27,14.92,3,11.69,3,7.99") { - el[i].setAttribute('id', 'Thanks-button'); - } - else if (tmp === "M13.18,4l0.24,1.2L13.58,6h0.82H19v7h-5.18l-0.24-1.2L13.42,11H12.6H6V4H13.18") { - el[i].setAttribute('id', 'Report-button'); - } - else if (tmp === "M15,5.63L20.66,12L15,18.37V15v-1h-1c-3.96,0-7.14,1-9.75,3.09c1.84-4.07,5.11-6.4,9.89-7.1L15,9.86V9V5.63") { - el[i].setAttribute('id', 'Share-button'); - } - } - }, 30); -}; - - -/*------------------------------------------------------------------------------ -4.2.4 COMMENTS -------------------------------------------------------------------------------*/ - -ImprovedTube.comments = function () { - if (this.storage.comments === 'collapsed') { - if (!this.elements.comments.button) { - var button = document.createElement('button'), - content = document.createElement('span'), - show_more = document.createElement('span'), - show_less = document.createElement('span'); - - button.id = 'improvedtube-collapsed-comments'; - button.className = 'yt-uix-button yt-uix-button-size-default yt-uix-button-default comment-section-renderer-paginator yt-uix-sessionlink'; - button.onclick = function () { - document.documentElement.classList.toggle('comments-collapsed'); - }; - - content.className = 'yt-uix-button-content'; - - show_more.className = 'show-more-text'; - show_more.textContent = 'Show more'; - - show_less.className = 'show-less-text'; - show_less.textContent = 'Show less'; - - content.appendChild(show_more); - content.appendChild(show_less); - button.appendChild(content); - - document.documentElement.classList.add('comments-collapsed'); - - this.elements.comments.container.appendChild(button); - - this.elements.comments.button = button; - } - } else if (this.elements.comments.button) { - this.elements.comments.button.remove(); - - delete this.elements.comments.button; - - document.documentElement.classList.remove('comments-collapsed'); - } -}; - - -/*------------------------------------------------------------------------------ -4.3.0 THEMES -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -4.3.1 MY COLORS -------------------------------------------------------------------------------*/ - -ImprovedTube.myColors = function () { - if ( - this.storage.theme === 'my-colors' && - Array.isArray(this.storage.theme_primary_color) && - Array.isArray(this.storage.theme_text_color) - ) { - var style = this.elements.my_colors || document.createElement('style'), - primary_color = this.storage.theme_primary_color, - text_color = this.storage.theme_text_color; - - if (primary_color) { - primary_color = 'rgb(' + primary_color.join(',') + ')'; - } else { - primary_color = 'rgb(200, 200, 200)'; - } - - if (text_color) { - text_color = 'rgb(' + text_color.join(',') + ')'; - } else { - text_color = 'rgb(25, 25, 25)'; - } - - style.className = 'it-theme-editor'; - style.textContent = 'html{' + - '--yt-swatch-textbox-bg:rgba(19,19,19,1)!important;' + - '--yt-swatch-icon-color:rgba(136,136,136,1)!important;' + - '--yt-spec-brand-background-primary:rgba(0,0,0, 0.1) !important;' + - '--yt-spec-brand-background-secondary:rgba(0,0,0, 0.1) !important;' + - '--yt-spec-badge-chip-background:rgba(0, 0, 0, 0.05) !important;' + - '--yt-spec-verified-badge-background:rgba(0, 0, 0, 0.15) !important;' + - '--yt-spec-button-chip-background-hover:rgba(0, 0, 0, 0.10) !important;' + - '--yt-spec-brand-button-background:rgba(136,136,136,1) !important;' + - '--yt-spec-filled-button-focus-outline:rgba(0, 0, 0, 0.60) !important;' + - '--yt-spec-call-to-action-button-focus-outline:rgba(0,0,0, 0.30) !important;' + - '--yt-spec-brand-text-button-focus-outline:rgba(204, 0, 0, 0.30) !important;' + - '--yt-spec-10-percent-layer:rgba(136,136,136,1) !important;' + - '--yt-swatch-primary:' + primary_color + '!important;' + - '--yt-swatch-primary-darker:' + primary_color + '!important;' + - '--yt-spec-brand-background-solid:' + primary_color + '!important;' + - '--yt-spec-general-background-a:' + primary_color + '!important;' + - '--yt-spec-general-background-b:' + primary_color + '!important;' + - '--yt-spec-general-background-c:' + primary_color + '!important;' + - '--yt-spec-touch-response:' + primary_color + '!important;' + - '--yt-swatch-text: ' + text_color + '!important;' + - '--yt-swatch-important-text: ' + text_color + '!important;' + - '--yt-swatch-input-text: ' + text_color + '!important;' + - '--yt-swatch-logo-override: ' + text_color + '!important;' + - '--yt-spec-text-primary:' + text_color + ' !important;' + - '--yt-spec-text-primary-inverse:' + text_color + ' !important;' + - '--yt-spec-text-secondary:' + text_color + ' !important;' + - '--yt-spec-text-disabled:' + text_color + ' !important;' + - '--yt-spec-icon-active-other:' + text_color + ' !important;' + - '--yt-spec-icon-inactive:' + text_color + ' !important;' + - '--yt-spec-icon-disabled:' + text_color + ' !important;' + - '--yt-spec-filled-button-text:' + text_color + ' !important;' + - '--yt-spec-call-to-action-inverse:' + text_color + ' !important;' + - '--yt-spec-brand-icon-active:' + text_color + ' !important;' + - '--yt-spec-brand-icon-inactive:' + text_color + ' !important;' + - '--yt-spec-brand-link-text:' + text_color + '!important;' + - '--yt-spec-brand-subscribe-button-background:' + text_color + ' !important;' + - '--yt-spec-wordmark-text:' + text_color + ' !important;' + - '--yt-spec-selected-nav-text:' + text_color + ' !important;' + - '}'; - - this.elements.my_colors = style; - - document.documentElement.appendChild(style); - } else if (this.elements.my_colors) { - this.elements.my_colors.remove(); - } -}; - - -/*------------------------------------------------------------------------------ -4.3.2 BLUELIGHT -------------------------------------------------------------------------------*/ - -ImprovedTube.bluelight = function () { - var value = this.storage.bluelight; - - if (this.schedule() === false) { - return false; - } - - if (this.isset(value) === false) { - value = 0; - } - - if (typeof value !== 'number') { - value = Number(value); - } - - if (value !== 0) { - if (!this.elements.bluelight || !this.elements.feColorMatrix) { - var div = this.elements.bluelight || document.createElement('div'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - filter = document.createElementNS('http://www.w3.org/2000/svg', 'filter'), - feColorMatrix = document.createElementNS('http://www.w3.org/2000/svg', 'feColorMatrix'), - matrix = feColorMatrix.values.baseVal; - - div.id = 'it-bluelight'; - - svg.setAttributeNS(null, 'viewBox', '0 0 1 1'); - svg.setAttributeNS(null, 'version', '1.1'); - filter.setAttributeNS(null, 'id', 'it-bluelight-filter'); - feColorMatrix.setAttributeNS(null, 'type', 'matrix'); - - for (var i = 0; i < 20; i++) { - var number = svg.createSVGNumber(); - - number.value = 0; - - matrix.appendItem(number); - } - - matrix[0].value = 1; - matrix[6].value = 1; - matrix[12].value = 1 - parseFloat(value) / 100; - matrix[18].value = 1; - - filter.appendChild(feColorMatrix); - svg.appendChild(filter); - div.appendChild(svg); - document.documentElement.appendChild(div); - - this.elements.feColorMatrix = feColorMatrix; - this.elements.bluelight = div; - } else { - this.elements.feColorMatrix.values.baseVal[12].value = 1 - parseFloat(value) / 100; - } - } else if (this.elements.bluelight) { - this.elements.bluelight.remove(); - - delete this.elements.bluelight; - delete this.elements.feColorMatrix; - } -}; - - -/*------------------------------------------------------------------------------ -4.3.3 DIM -------------------------------------------------------------------------------*/ - -ImprovedTube.dim = function () { - var value = this.storage.dim; - - if (this.schedule() === false) { - return false; - } - - if (this.isset(value) === false) { - value = 0; - } - - if (typeof value !== 'number') { - value = Number(value); - } - - if (value !== 0) { - if (!this.elements.dim) { - var div = document.createElement('div'); - - div.id = 'it-dim'; - div.style.opacity = parseInt(Number(value)) / 100 || 0; - - document.documentElement.appendChild(div); - - this.elements.dim = div; - } else { - this.elements.dim.style.opacity = parseInt(Number(value)) / 100 || 0; - } - } else if (this.elements.dim) { - this.elements.dim.remove(); - - delete this.elements.dim; - } -}; - - -/*------------------------------------------------------------------------------ -4.3.4 FONT -------------------------------------------------------------------------------*/ - -ImprovedTube.font = function () { - var option = this.storage.font; - - if (option && option !== 'Default') { - var link = this.elements.myFont || document.createElement('link'), - style = document.createElement('style'); - - link.rel = 'stylesheet'; - link.href = '//fonts.googleapis.com/css2?family=' + option; - - style.textContent = '*{font-family:"' + option.replace(/\+/g, ' ') + '" !important}'; - - this.elements.myFont = link; - this.elements.myFontStyle = style; - - document.documentElement.style.fontFamily = option.replace(/\+/g, ' '); - - document.documentElement.appendChild(link); - document.documentElement.appendChild(style); - } else if (this.elements.myFont) { - document.documentElement.style.fontFamily = ''; - - this.elements.myFont.remove(); - this.elements.myFontStyle.remove(); - } -}; - - -/*------------------------------------------------------------------------------ -4.3.5 THEMES -------------------------------------------------------------------------------*/ - -ImprovedTube.themes = function () { - this.myColors(); - - if (this.schedule() === true && this.isset(this.storage.theme)) { - var PREF_OLD = this.getParams(this.getCookieValueByName('PREF')), - PREF = this.getParams(this.getCookieValueByName('PREF')), - result = ''; - - if (!this.isset(PREF.f6) || this.isset(PREF.f6) && PREF.f6.length !== 3) { - PREF.f6 = '400'; - } else if (PREF.f6.length === 3) { - PREF.f6 = '4' + PREF.f6.substr(1); - } - - for (var i in PREF) { - result += i + '=' + PREF[i] + '&'; - } - - this.setCookie('PREF', result.slice(0, -1)); - - document.documentElement.setAttribute('it-theme', this.storage.theme); - } else { - document.documentElement.removeAttribute('it-theme'); - } -}; - - -/*------------------------------------------------------------------------------ -4.3.6 SCHEDULE -------------------------------------------------------------------------------*/ - -ImprovedTube.schedule = function () { - var current = new Date().getHours(), - from = Number((this.storage.schedule_time_from || '00:00').substr(0, 2)), - to = Number((this.storage.schedule_time_to || '00:00').substr(0, 2)); - - if (to < from && current > from && current < 24) { - times.to += 24; - } else if (to < from && current < to) { - from = 0; - } - - if (this.storage.schedule !== 'sunset_to_sunrise' || current >= from && current < to) { - return true; - } - - return false; -}; - - -/*------------------------------------------------------------------------------ -4.4.0 PLAYER -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -4.4.1 AUTOPLAY -------------------------------------------------------------------------------*/ - -ImprovedTube.autoplay = function () { - var video = ImprovedTube.elements.player; - if (ImprovedTube.video_url !== location.href) { - ImprovedTube.allow_autoplay = false; - } - - if (ImprovedTube.allow_autoplay === false && video.classList.contains('ad-showing') === false && - ( - (document.documentElement.dataset.pageType === "video" && ((location.href.indexOf('list=') === -1 && ImprovedTube.storage.player_autoplay === false) || (ImprovedTube.storage.playlist_autoplay === false))) || - (document.documentElement.dataset.pageType === "channel" && ImprovedTube.storage.channel_trailer_autoplay === false) - ) - ) { - setTimeout(function () { - video.pauseVideo(); - }); - } -}; - - -/*------------------------------------------------------------------------------ -4.4.2 FORCED PLAY VIDEO FROM THE BEGINNING -------------------------------------------------------------------------------*/ - -ImprovedTube.forcedPlayVideoFromTheBeginning = function () { - if (this.storage.forced_play_video_from_the_beginning === true) { - this.elements.player.seekTo(0); - } -}; - - -/*------------------------------------------------------------------------------ -4.4.2 AUTOPAUSE WHEN SWITCHING TABS -------------------------------------------------------------------------------*/ - -ImprovedTube.playerAutopauseWhenSwitchingTabs = function () { - var player = ImprovedTube.elements.player; - - if (this.storage.player_autopause_when_switching_tabs === true && player) { - if (this.focus === false) { - this.played_before_blur = player.getPlayerState() === 1; - - player.pauseVideo(); - } else if (this.focus === true && this.played_before_blur === true) { - player.playVideo(); - } - } -}; - - -/*------------------------------------------------------------------------------ -4.4.3 FORCED PLAYBACK SPEED -------------------------------------------------------------------------------*/ - -ImprovedTube.playerPlaybackSpeed = function (change) { - var player = this.elements.player, - video = player.querySelector('video'), - option = this.storage.player_playback_speed; - - if (this.isset(option) === false) { - option = 1; - } - - if (this.storage.player_default_playback_speed_enable === true) { - if (location.href.indexOf('music') === -1 && player.getVideoData().isLive === false) { - player.setPlaybackRate(Number(option)); - video.playbackRate = Number(option); - } else { - player.setPlaybackRate(1); - } - } -}; - - -/*------------------------------------------------------------------------------ -4.4.4 SUBTITLES -------------------------------------------------------------------------------*/ - -ImprovedTube.subtitles = function () { - if (this.storage.player_subtitles === true) { - var player = this.elements.player; - - if (player && player.toggleSubtitlesOn) { - player.toggleSubtitlesOn(); - } - } -}; - - -/*------------------------------------------------------------------------------ -4.4.4.1 SUBTITLES LANGUAGE / AUTO GENERATE -------------------------------------------------------------------------------*/ - -ImprovedTube.subtitlesLanguage = function () { - var option = this.storage.subtitles_language, - autoGenerate = this.storage.auto_generate; - - if (this.isset(option) && option !== 'default') { - var player = this.elements.player, - button = this.elements.player_subtitles_button; - - if (player && player.getOption && button && button.getAttribute('aria-pressed') === 'true') { - var tracklist = this.elements.player.getOption('captions', 'tracklist', { - includeAsr: true - }); - - var matchTrack = false; - for (var i =0, l = tracklist.length; i= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.elements.player.classList.contains('ytp-player-minimized') === false) { - ImprovedTube.mini_player__mode = true; - - ImprovedTube.mini_player__original_width = ImprovedTube.elements.player.offsetWidth; - ImprovedTube.mini_player__original_height = ImprovedTube.elements.player.offsetHeight; - - ImprovedTube.elements.player.classList.add('it-mini-player'); - - ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); - ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - ImprovedTube.elements.player.style.transform = 'translate(' + ImprovedTube.mini_player__x + 'px, ' + ImprovedTube.mini_player__y + 'px)'; - - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height, true, true); - - window.addEventListener('mousedown', ImprovedTube.miniPlayer_mouseDown); - window.addEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); - - window.dispatchEvent(new Event('resize')); - } else if (window.scrollY < 256 && ImprovedTube.mini_player__mode === true || ImprovedTube.elements.player.classList.contains('ytp-player-minimized') === true) { - ImprovedTube.mini_player__mode = false; - ImprovedTube.elements.player.classList.remove('it-mini-player'); - ImprovedTube.mini_player__move = false; - ImprovedTube.elements.player.style.transform = 'translate(' + 0 + 'px, ' + 0 + 'px)'; - ImprovedTube.elements.player.style.width = ''; - ImprovedTube.elements.player.style.height = ''; - - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - window.removeEventListener('mousedown', ImprovedTube.miniPlayer_mouseDown); - window.removeEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); - - window.dispatchEvent(new Event('resize')); - } -}; - -ImprovedTube.miniPlayer_mouseDown = function (event) { - if (event.button !== 0) { - return false; - } - - if (ImprovedTube.miniPlayer_resize() === true) { - return false; - } - - var is_player = false, - path = event.composedPath(); - - for (var i = 0, l = path.length; i < l; i++) { - if ((path[i].classList && path[i].classList.contains('it-mini-player')) === true) { - is_player = true; - } - } - - if (is_player === false) { - return false; - } - - event.preventDefault(); - - var bcr = ImprovedTube.elements.player.getBoundingClientRect(); - - ImprovedTube.miniPlayer_mouseDown_x = event.clientX; - ImprovedTube.miniPlayer_mouseDown_y = event.clientY; - ImprovedTube.mini_player__width = bcr.width; - ImprovedTube.mini_player__height = bcr.height; - - ImprovedTube.mini_player__player_offset_x = event.clientX - bcr.x; - ImprovedTube.mini_player__player_offset_y = event.clientY - bcr.y; - - ImprovedTube.mini_player__max_x = document.body.offsetWidth - ImprovedTube.mini_player__width; - ImprovedTube.mini_player__max_y = window.innerHeight - ImprovedTube.mini_player__height; - - window.addEventListener('mouseup', ImprovedTube.miniPlayer_mouseUp); - window.addEventListener('mousemove', ImprovedTube.miniPlayer_mouseMove); -}; - -ImprovedTube.miniPlayer_mouseUp = function () { - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - - strg.x = ImprovedTube.mini_player__x; - strg.y = ImprovedTube.mini_player__y; - - localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - - window.removeEventListener('mouseup', ImprovedTube.miniPlayer_mouseUp); - window.removeEventListener('mousemove', ImprovedTube.miniPlayer_mouseMove); - - ImprovedTube.mini_player__move = false; - - setTimeout(function () { - window.removeEventListener('click', ImprovedTube.miniPlayer_click, true); - }); -}; - -ImprovedTube.miniPlayer_click = function (event) { - event.stopPropagation(); - event.preventDefault(); -}; - -ImprovedTube.miniPlayer_mouseMove = function (event) { - if ( - event.clientX < ImprovedTube.miniPlayer_mouseDown_x - 5 || - event.clientY < ImprovedTube.miniPlayer_mouseDown_y - 5 || - event.clientX > ImprovedTube.miniPlayer_mouseDown_x + 5 || - event.clientY > ImprovedTube.miniPlayer_mouseDown_y + 5 - ) { - var x = event.clientX - ImprovedTube.mini_player__player_offset_x, - y = event.clientY - ImprovedTube.mini_player__player_offset_y; - - if (ImprovedTube.mini_player__move === false) { - ImprovedTube.mini_player__move = true; - - window.addEventListener('click', ImprovedTube.miniPlayer_click, true); - } - - if (x < 0) { - x = 0; - } - - if (y < 0) { - y = 0; - } - - if (x > ImprovedTube.mini_player__max_x) { - x = ImprovedTube.mini_player__max_x; - } - - if (y > ImprovedTube.mini_player__max_y) { - y = ImprovedTube.mini_player__max_y; - } - - ImprovedTube.mini_player__x = x; - ImprovedTube.mini_player__y = y; - - ImprovedTube.elements.player.style.transform = 'translate(' + x + 'px, ' + y + 'px)'; - } -}; - -ImprovedTube.miniPlayer_cursorUpdate = function (event) { - var x = event.clientX, - y = event.clientY, - c = ImprovedTube.mini_player__cursor; - - if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.miniPlayer_resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.miniPlayer_resize_offset - ) { - c = 'ne-resize'; - } else if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.miniPlayer_resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.miniPlayer_resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'se-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.miniPlayer_resize_offset && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.miniPlayer_resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'sw-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.miniPlayer_resize_offset && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.miniPlayer_resize_offset - ) { - c = 'nw-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.miniPlayer_resize_offset - ) { - c = 'n-resize'; - } else if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.miniPlayer_resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'e-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.miniPlayer_resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 's-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.miniPlayer_resize_offset && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'w-resize'; - } else { - c = ''; - } - - if (ImprovedTube.mini_player__cursor !== c) { - ImprovedTube.mini_player__cursor = c; - - document.documentElement.setAttribute('it-mini-player-cursor', ImprovedTube.mini_player__cursor); - } -}; - -ImprovedTube.miniPlayer_resize = function (event) { - if (ImprovedTube.mini_player__cursor !== '') { - window.removeEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); - window.addEventListener('mouseup', ImprovedTube.miniPlayer_resizeMouseUp); - window.addEventListener('mousemove', ImprovedTube.miniPlayer_resizeMouseMove); - - return true; - } -}; - -ImprovedTube.miniPlayer_resizeMouseMove = function (event) { - if (ImprovedTube.mini_player__cursor === 'n-resize') { - ImprovedTube.elements.player.style.transform = 'translate(' + ImprovedTube.mini_player__x + 'px, ' + event.clientY + 'px)'; - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); - } else if (ImprovedTube.mini_player__cursor === 'e-resize') { - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__height); - } else if (ImprovedTube.mini_player__cursor === 's-resize') { - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, event.clientY - ImprovedTube.mini_player__y); - } else if (ImprovedTube.mini_player__cursor === 'w-resize') { - ImprovedTube.elements.player.style.transform = 'translate(' + event.clientX + 'px, ' + ImprovedTube.mini_player__y + 'px)'; - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__height); - } else if (ImprovedTube.mini_player__cursor === 'ne-resize') { - ImprovedTube.elements.player.style.transform = 'translate(' + ImprovedTube.mini_player__x + 'px, ' + event.clientY + 'px)'; - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY, true); - } else if (ImprovedTube.mini_player__cursor === 'se-resize') { - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, event.clientY - ImprovedTube.mini_player__y, true); - } else if (ImprovedTube.mini_player__cursor === 'sw-resize') { - ImprovedTube.elements.player.style.transform = 'translate(' + event.clientX + 'px, ' + ImprovedTube.mini_player__y + 'px)'; - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, event.clientY - ImprovedTube.mini_player__y, true); - } else if (ImprovedTube.mini_player__cursor === 'nw-resize') { - ImprovedTube.elements.player.style.transform = 'translate(' + event.clientX + 'px, ' + event.clientY + 'px)'; - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY, true); - } -}; - -ImprovedTube.miniPlayer_resizeMouseUp = function (event) { - var bcr = ImprovedTube.elements.player.getBoundingClientRect(); - - ImprovedTube.mini_player__x = bcr.left; - ImprovedTube.mini_player__y = bcr.top; - ImprovedTube.mini_player__width = bcr.width; - ImprovedTube.mini_player__height = bcr.height; - - window.dispatchEvent(new Event('resize')); - - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - - strg.width = ImprovedTube.mini_player__width; - strg.height = ImprovedTube.mini_player__height; - - localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - - window.addEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); - window.removeEventListener('mouseup', ImprovedTube.miniPlayer_resizeMouseUp); - window.removeEventListener('mousemove', ImprovedTube.miniPlayer_resizeMouseMove); -}; - -ImprovedTube.miniPlayer = function () { - if (this.storage.mini_player === true) { - var data = localStorage.getItem('improedtube-mini-player'); - - try { - if (this.isset(data)) { - data = JSON.parse(data); - } else { - data = {}; - } - } catch (error) { - data = {}; - } - - data.x = data.x || 16; - data.y = data.y || 16; - data.width = data.width || 200; - data.height = data.height || 150; - - this.mini_player__x = data.x; - this.mini_player__y = data.y; - this.mini_player__width = data.width; - this.mini_player__height = data.height; - - window.removeEventListener('scroll', this.miniPlayer_scroll); - window.addEventListener('scroll', this.miniPlayer_scroll); - } else { - this.mini_player__mode = false; - this.elements.player.classList.remove('it-mini-player'); - this.mini_player__move = false; - - this.elements.player.style.width = ''; - this.elements.player.style.height = ''; - this.elements.player.style.transform = 'translate(' + 0 + 'px, ' + 0 + 'px)'; - - this.elements.player.classList.remove('it-mini-player'); - - this.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - window.dispatchEvent(new Event('resize')); - - window.removeEventListener('mousedown', this.miniPlayer_mouseDown); - window.removeEventListener('mousemove', this.miniPlayer_mouseMove); - window.removeEventListener('mouseup', this.miniPlayer_mouseUp); - window.removeEventListener('click', this.miniPlayer_click); - window.removeEventListener('scroll', this.miniPlayer_scroll); - window.removeEventListener('mousemove', this.miniPlayer_cursorUpdate); - } -}; - - -/*------------------------------------------------------------------------------ -4.4.8 AUTO FULLSCREEN -------------------------------------------------------------------------------*/ - -ImprovedTube.playerAutofullscreen = function () { - if ( - this.storage.player_autofullscreen === true && - document.documentElement.dataset.pageType === 'video' && - !document.fullscreenElement - ) { - this.elements.player.toggleFullscreen(); - } -}; - - -/*------------------------------------------------------------------------------ -4.4.9 QUALITY -------------------------------------------------------------------------------*/ - -ImprovedTube.playerQuality = function () { - var player = this.elements.player, - quality = this.storage.player_quality; - - if (player && player.getAvailableQualityLevels && !player.dataset.defaultQuality) { - var available_quality_levels = player.getAvailableQualityLevels(); - - if (quality && quality !== 'auto') { - if (available_quality_levels.includes(quality) === false) { - quality = available_quality_levels[0]; - } - - player.setPlaybackQualityRange(quality); - player.setPlaybackQuality(quality); - player.dataset.defaultQuality = quality; - } - } -}; - - -/*------------------------------------------------------------------------------ -4.4.10 AVOID CPU RENDERING WHEN POSSIBLE -------------------------------------------------------------------------------*/ - -ImprovedTube.codecs = function () { - if ( - this.storage.player_h264 === true || - this.storage.block_h264 === true || - this.storage.block_vp8 === true || - this.storage.block_vp9 === true || - this.storage.block_av1 === true - ) { - var canPlayType = HTMLMediaElement.prototype.canPlayType; - - function overwrite(self, callback, mime) { - if ( - ImprovedTube.storage.player_h264 === true && /webm|vp8|vp9/.test(mime) || - ImprovedTube.storage.block_h264 === true && /avc/.test(mime) || - ImprovedTube.storage.block_vp8 === true && /vp8/.test(mime) || - ImprovedTube.storage.block_vp9 === true && /vp9||vp09/.test(mime) || - ImprovedTube.storage.block_av1 === true && /av01/.test(mime) - ) { - return false; - } else { - return callback.call(self, mime); - } - } - - if (window.MediaSource) { - var isTypeSupported = window.MediaSource.isTypeSupported; - - window.MediaSource.isTypeSupported = function (mime) { - return overwrite(this, isTypeSupported, mime); - }; - } - - HTMLMediaElement.prototype.canPlayType = function (mime) { - var status = overwrite(this, canPlayType, mime); - - if (!status) { - return ''; - } else { - return status; - } - }; - } -}; - -ImprovedTube.avoidCpuRenderingWhenPossible = function () { - var option = this.storage.avoid_cpu_rendering_when_possible; - - if (option && option !== 'disabled') { - function overwrite(self, callback, mime) { - if ( - option === 'av1' && /av01/.test(mime) || - option === 'av1-vp9' && /av01||vp9||vp09/.test(mime) || - option === 'av1-vp8-vp9' && /av01||vp8||vp9||vp09/.test(mime) - ) { - return ''; - } else { - return callback.call(self, mime); - } - } - - if (window.MediaSource) { - (function (original) { - window.MediaSource.isTypeSupported = function (mime) { - var result = overwrite(this, original, mime); - - if (result === '') { - return false; - } else { - return result; - } - }; - })(window.MediaSource.isTypeSupported); - } - - (function (original) { - HTMLMediaElement.prototype.canPlayType = function (mime) { - return overwrite(this, original, mime); - }; - })(HTMLMediaElement.prototype.canPlayType); - } -}; - - -/*------------------------------------------------------------------------------ -4.4.11 ALLOW 60FPS -------------------------------------------------------------------------------*/ - -ImprovedTube.player60fps = function () { - if (this.storage.player_60fps === false) { - var canPlayType = HTMLMediaElement.prototype.canPlayType; - - function overwrite(self, callback, mime) { - var match = /framerate=(\d+)/.exec(mime); - - if (match && match[1] > 30) { - return ''; - } else { - return callback.call(self, mime); - } - } - - if (window.MediaSource) { - var isTypeSupported = window.MediaSource.isTypeSupported; - - window.MediaSource.isTypeSupported = function (mime) { - return overwrite(this, isTypeSupported, mime); - }; - } - - HTMLMediaElement.prototype.canPlayType = function (mime) { - var status = overwrite(this, canPlayType, mime); - - if (!status) { - return ''; - } else { - return status; - } - }; - } -}; - - -/*------------------------------------------------------------------------------ -4.4.12 FORCED VOLUME -------------------------------------------------------------------------------*/ - -ImprovedTube.playerVolume = function () { - if (this.storage.player_forced_volume === true) { - var volume = this.storage.player_volume; - - if (!this.isset(volume)) { - volume = 100; - } else { - volume = Number(volume); - } - - if (!this.audioContextGain && volume <= 100) { - if (this.audioContext) { - this.audioContext.close(); - } - - this.elements.player.setVolume(volume); - } else { - if (!this.audioContext) { - this.audioContext = new AudioContext(); - - this.audioContextSource = this.audioContext.createMediaElementSource(document.querySelector('video')); - this.audioContextGain = this.audioContext.createGain(); - - this.audioContextGain.gain.value = 1; - this.audioContextSource.connect(this.audioContextGain); - this.audioContextGain.connect(this.audioContext.destination) - } - - this.audioContextGain.gain.value = volume / 100; - } - } -}; - - -/*------------------------------------------------------------------------------ -4.4.13 LOUDNESS NORMALIZATION -------------------------------------------------------------------------------*/ - -ImprovedTube.onvolumechange = function (event) { - if (document.querySelector('.ytp-volume-panel') && ImprovedTube.storage.player_loudness_normalization === false) { - var volume = Number(document.querySelector('.ytp-volume-panel').getAttribute('aria-valuenow')); - - this.volume = volume / 100; - } -}; - -ImprovedTube.playerLoudnessNormalization = function () { - var video = this.elements.video; - - if (video) { - video.removeEventListener('volumechange', this.onvolumechange); - video.addEventListener('volumechange', this.onvolumechange); - } - - if (this.storage.player_loudness_normalization === false) { - try { - var local_storage = localStorage['yt-player-volume']; - - if (this.isset(Number(this.storage.player_volume)) && this.storage.player_forced_volume === true) { - - } else if (local_storage) { - local_storage = JSON.parse(JSON.parse(local_storage).data); - - local_storage = Number(local_storage.volume); - - video.volume = local_storage / 100; - } else { - video.volume = 100; - } - } catch (err) {} - } -}; - - -/*------------------------------------------------------------------------------ -4.4.14 SCREENSHOT -------------------------------------------------------------------------------*/ - -ImprovedTube.screenshot = function () { - var video = ImprovedTube.elements.video, - style = document.createElement('style'), - cvs = document.createElement('canvas'), - ctx = cvs.getContext('2d'); - - style.textContent = 'video{width:' + video.videoWidth + 'px !important;height:' + video.videoHeight + 'px !important}'; - - cvs.width = video.videoWidth; - cvs.height = video.videoHeight; - - document.body.appendChild(style); - - setTimeout(function () { - ctx.drawImage(video, 0, 0, cvs.width, cvs.height); - - cvs.toBlob(function (blob) { - if (ImprovedTube.storage.player_screenshot_save_as !== 'clipboard') { - var a = document.createElement('a'); - - a.href = URL.createObjectURL(blob); - - a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '-' + new Date(ImprovedTube.elements.player.getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; - - a.click(); - } else { - navigator.clipboard.write([ - new ClipboardItem({ - 'image/png': blob - }) - ]); - } - }); - - style.remove(); - }); -}; - -ImprovedTube.playerScreenshotButton = function () { - if (this.storage.player_screenshot_button === true) { - var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'); - - svg.appendChild(path); - - this.createPlayerButton({ - id: 'it-screenshot-button', - child: svg, - opacity: 1, - onclick: this.screenshot, - title: 'Screenshot' - }); - } else if (this.elements.buttons['it-screenshot-styles']) { - this.elements.buttons['it-screenshot-styles'].remove(); - } -}; - - -/*------------------------------------------------------------------------------ -4.4.15 REPEAT -------------------------------------------------------------------------------*/ - -ImprovedTube.playerRepeatButton = function (node) { - if (this.storage.player_repeat_button === true) { - var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z'); - - svg.appendChild(path); - - this.createPlayerButton({ - id: 'it-repeat-button', - child: svg, - onclick: function () { - var video = ImprovedTube.elements.video; - - if (video.hasAttribute('loop')) { - video.removeAttribute('loop'); - - this.style.opacity = '.5'; - } else if (!/ad-showing/.test(ImprovedTube.elements.player.className)) { - video.setAttribute('loop', ''); - - this.style.opacity = '1'; - } - }, - title: 'Repeat' - }); - - if (this.storage.player_always_repeat === true) { - setTimeout(function () { - ImprovedTube.elements.video.setAttribute('loop', ''); - - ImprovedTube.elements.buttons['it-repeat-styles'].style.opacity = '1'; - }, 100); - } - } else if (this.elements.buttons['it-repeat-styles']) { - this.elements.buttons['it-repeat-styles'].remove(); - } -}; - - -/*------------------------------------------------------------------------------ -4.4.16 ROTATE -------------------------------------------------------------------------------*/ - -ImprovedTube.playerRotateButton = function () { - if (this.storage.player_rotate_button === true) { - var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M15.55 5.55L11 1v3.07a8 8 0 0 0 0 15.86v-2.02a6 6 0 0 1 0-11.82V10l4.55-4.45zM19.93 11a7.9 7.9 0 0 0-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02a7.92 7.92 0 0 0 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41A7.9 7.9 0 0 0 19.93 13h-2.02a5.9 5.9 0 0 1-1.02 2.48z'); - - svg.appendChild(path); - - this.createPlayerButton({ - id: 'it-rotate-button', - child: svg, - opacity: 1, - onclick: function () { - var player = ImprovedTube.elements.player, - video = ImprovedTube.elements.video, - rotate = Number(document.body.dataset.itRotate) || 0, - transform = ''; - - rotate += 90; - - if (rotate === 360) { - rotate = 0; - } - - document.body.dataset.itRotate = rotate; - - transform += 'rotate(' + rotate + 'deg)'; - - if (rotate == 90 || rotate == 270) { - var is_vertical_video = video.videoHeight > video.videoWidth; - - transform += ' scale(' + (is_vertical_video ? player.clientWidth : player.clientHeight) / (is_vertical_video ? player.clientHeight : player.clientWidth) + ')'; - } - - if (!ImprovedTube.elements.buttons['it-rotate-styles']) { - var style = document.createElement('style'); - - ImprovedTube.elements.buttons['it-rotate-styles'] = style; - - document.body.appendChild(style); - } - - ImprovedTube.elements.buttons['it-rotate-styles'].textContent = 'video{transform:' + transform + '}'; - }, - title: 'Rotate' - }); - } else if (this.elements.buttons['it-rotate-button']) { - this.elements.buttons['it-rotate-button'].remove(); - this.elements.buttons['it-rotate-styles'].remove(); - } -}; - - -/*------------------------------------------------------------------------------ -4.4.17 POPUP PLAYER -------------------------------------------------------------------------------*/ - -ImprovedTube.playerPopupButton = function () { - if (this.storage.player_popup_button === true) { - var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M19 7h-8v6h8V7zm2-4H3C2 3 1 4 1 5v14c0 1 1 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 16H3V5h18v14z'); - - svg.appendChild(path); - - this.createPlayerButton({ - id: 'it-popup-player-button', - child: svg, - opacity: 1, - onclick: function () { - var player = ImprovedTube.elements.player; - - player.pauseVideo(); - - window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(player.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + player.offsetWidth + ',height=' + player.offsetHeight); - }, - title: 'Popup' - }); - } else if (this.elements.buttons['it-popup-player-button']) { - this.elements.buttons['it-popup-player-button'].remove(); - } -}; - - -/*------------------------------------------------------------------------------ -4.4.18 Force SDR -------------------------------------------------------------------------------*/ - -ImprovedTube.playerSDR = function () { - if (this.storage.player_SDR === true) { - Object.defineProperty(window.screen, 'pixelDepth', { - enumerable: true, - configurable: true, - value: 24 - }); - } -}; - - -/*------------------------------------------------------------------------------ -4.4.19 Hide controls -------------------------------------------------------------------------------*/ - -ImprovedTube.playerControls = function (mouseIn=false) { - var player = this.elements.player; - - if (player) { - if (this.storage.player_hide_controls === 'always') { - player.hideControls(); - } else if(this.storage.player_hide_controls === 'off') { - player.showControls(); - } else if(this.storage.player_hide_controls === 'when_paused') { - if(this.elements.video.paused) { - if(mouseIn) { - player.showControls(); - } else { - player.hideControls(); - } - } - } - } -}; - - -/*------------------------------------------------------------------------------ -4.5.0 PLAYLIST -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -4.5.1 UP NEXT AUTOPLAY -------------------------------------------------------------------------------*/ - -ImprovedTube.playlistUpNextAutoplay = function (event) { - if ( - ImprovedTube.getParam(location.href, 'list') && - ImprovedTube.storage.playlist_up_next_autoplay === false - ) { - this.elements.ytd_watch.playlistData.currentIndex = this.elements.ytd_watch.playlistData.totalVideos - } -}; - - -/*------------------------------------------------------------------------------ -4.5.2 REVERSE -------------------------------------------------------------------------------*/ - -ImprovedTube.playlistReverse = function () { - if (this.storage.playlist_reverse === true) { - function update() { - var results = ImprovedTube.elements.ytd_watch.data.contents.twoColumnWatchNextResults, - playlist = results.playlist.playlist, - autoplay = results.autoplay.autoplay; - - playlist.contents.reverse(); - - playlist.currentIndex = playlist.totalVideos - playlist.currentIndex - 1; - playlist.localCurrentIndex = playlist.contents.length - playlist.localCurrentIndex - 1; - - for (var i = 0, l = autoplay.sets.length; i < l; i++) { - var item = autoplay.sets[i]; - - item.autoplayVideo = item.previousButtonVideo; - item.previousButtonVideo = item.nextButtonVideo; - item.nextButtonVideo = item.autoplayVideo; - } - - ImprovedTube.elements.ytd_watch.updatePageData_(JSON.parse(JSON.stringify(ImprovedTube.elements.ytd_watch.data))); - - setTimeout(function () { - var playlist_manager = document.querySelector('yt-playlist-manager'); - - ImprovedTube.elements.ytd_player.updatePlayerComponents(null, autoplay, null, playlist); - playlist_manager.autoplayData = autoplay; - playlist_manager.setPlaylistData(playlist); - ImprovedTube.elements.ytd_player.updatePlayerPlaylist_(playlist); - }, 100); - } - - if (!document.querySelector('#it-reverse-playlist') && ImprovedTube.elements.playlist.actions) { - var button = document.createElement('button'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - button.id = 'it-reverse-playlist'; - button.className = 'style-scope yt-icon-button'; - button.addEventListener('click', function (event) { - var playlist_manager = document.querySelector('yt-playlist-manager'); - - event.preventDefault(); - event.stopPropagation(); - - this.classList.toggle('active'); - - ImprovedTube.playlistReversed = !ImprovedTube.playlistReversed; - - update(); - - return false; - }, true); - - svg.setAttributeNS(null, 'width', '24'); - svg.setAttributeNS(null, 'height', '24'); - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z'); - - svg.appendChild(path); - - button.appendChild(svg); - - ImprovedTube.elements.playlist.actions.appendChild(button); - } - - if (this.playlistReversed === true) { - update(); - } - } -}; - - -/*------------------------------------------------------------------------------ -4.5.3 REPEAT -------------------------------------------------------------------------------*/ - -ImprovedTube.playlistRepeat = function () { - var button = ImprovedTube.elements.playlist.repeat_button, - svg = ImprovedTube.elements.playlist.repeat_button.querySelector("path"), - option = ImprovedTube.storage.playlist_repeat; - - if (svg && ((option === true && svg.attributes.d.textContent !== 'M20,14h2v5L5.84,19.02l1.77,1.77l-1.41,1.41L1.99,18l4.21-4.21l1.41,1.41l-1.82,1.82L20,17V14z M4,7l14.21-0.02l-1.82,1.82 l1.41,1.41L22.01,6l-4.21-4.21l-1.41,1.41l1.77,1.77L2,5v6h2V7z') - || (option === false && svg.attributes.d.textContent !== 'M21,13h1v5L3.93,18.03l2.62,2.62l-0.71,0.71L1.99,17.5l3.85-3.85l0.71,0.71l-2.67,2.67L21,17V13z M3,7l17.12-0.03 l-2.67,2.67l0.71,0.71l3.85-3.85l-3.85-3.85l-0.71,0.71l2.62,2.62L2,6v5h1V7z'))) { - button.click(); - } -}; - - -/*------------------------------------------------------------------------------ -4.5.4 SHUFFLE -------------------------------------------------------------------------------*/ - -ImprovedTube.playlistShuffle = function () { - var button = ImprovedTube.elements.playlist.shuffle_button, - option = ImprovedTube.storage.playlist_shuffle; - - if (button && (option === true && button.className.search('style-default-active') === -1 || option === false && button.className.indexOf('style-default-active') !== -1)) { - button.click(); - } -}; - - -/*------------------------------------------------------------------------------ -4.6.0 CHANNEL -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -4.6.1 DEFAULT CHANNEL TAB -------------------------------------------------------------------------------*/ - -ImprovedTube.channelDefaultTab = function (a) { - var option = this.storage.channel_default_tab; - - if (option && option !== '/' && a.parentNode && a.parentNode.id !== 'contenteditable-root') { - if (this.regex.channel_home_page.test(a.href) && !a.href.endsWith(option)) { - - a.href = a.href.replace(this.regex.channel_home_page_postfix, '') + option; - - a.addEventListener('click', function (event) { - event.stopPropagation(); - }, true); - } - } -}; - -/*------------------------------------------------------------------------------ -4.6.2 PLAY ALL BUTTON -------------------------------------------------------------------------------*/ - -ImprovedTube.channelPlayAllButton = function () { - if (this.storage.channel_play_all_button === true) { - if (/\/(channel|user|c)\/[^/]+\/videos/.test(location.href)) { - var container = document.querySelector('ytd-channel-sub-menu-renderer #primary-items'); - - if (!this.elements.playAllButton) { - var button = document.createElement('a'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - button.className = 'it-play-all-button'; - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M6,4l12,8L6,20V4z'); - - svg.appendChild(path); - button.appendChild(svg); - button.appendChild(document.createTextNode('Play all')); - - this.elements.playAllButton = button; - - if (container) { - container.appendChild(button); - } - } else if (container) { - container.appendChild(this.elements.playAllButton); - } - } else if (this.elements.playAllButton) { - this.elements.playAllButton.remove(); - } - - if (this.elements.playAllButton) { - var app = document.querySelector('ytd-app'); - - if ( - app && - app.__data && - app.__data.data && - app.__data.data.response && - app.__data.data.response.metadata && - app.__data.data.response.metadata.channelMetadataRenderer && - app.__data.data.response.metadata.channelMetadataRenderer.externalId - ) { - this.elements.playAllButton.href = '/playlist?list=UU' + app.__data.data.response.metadata.channelMetadataRenderer.externalId.substring(2); - } - } - } -}; - - -/*------------------------------------------------------------------------------ -4.7.0 SHORTCUTS -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcuts = function () { - var keyboard = { - alt: false, - ctrl: false, - shift: false, - keys: {} - }, - mouse = { - player: false, - wheel: 0 - }, - storage = {}; - - function handler() { - var prevent = false; - - for (var key in storage) { - var shortcut = storage[key], - same_keys = true; - - if ( - typeof shortcut === 'object' && - (keyboard.alt === shortcut.alt || !ImprovedTube.isset(shortcut.alt)) && - (keyboard.ctrl === shortcut.ctrl || !ImprovedTube.isset(shortcut.ctrl)) && - (keyboard.shift === shortcut.shift || !ImprovedTube.isset(shortcut.shift)) && - (mouse.wheel === shortcut.wheel || !ImprovedTube.isset(shortcut.wheel)) - ) { - if (keyboard.keys && shortcut.keys) { - for (var code in keyboard.keys) { - if (!shortcut.keys[code]) { - same_keys = false; - } - } - for (var code in shortcut.keys) { - if (!keyboard.keys[code]) { - same_keys = false; - } - } - } - - if (!ImprovedTube.isset(mouse.wheel) || mouse.wheel === 0 || mouse.player === true) { - if (same_keys === true) { - if ([ - 'shortcutAuto', - 'shortcut144p', - 'shortcut240p', - 'shortcut360p', - 'shortcut480p', - 'shortcut720p', - 'shortcut1080p', - 'shortcut1440p', - 'shortcut2160p', - 'shortcut2880p', - 'shortcut4320p' - ].includes(key) === true) { - ImprovedTube['shortcutQuality'](key); - } else if (typeof ImprovedTube[key] === 'function') { - ImprovedTube[key](); - } - - prevent = true; - } - } - } - } - - return prevent; - } - - window.addEventListener('keydown', function (event) { - if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].includes(document.activeElement.tagName) === true || event.target.isContentEditable) { - return false; - } - - if (event.code === 'AltLeft' || event.code === 'AltRight') { - keyboard.alt = true; - } else if (event.code === 'ControlLeft' || event.code === 'ControlRight') { - keyboard.ctrl = true; - } else if (event.code === 'ShiftLeft' || event.code === 'ShiftRight') { - keyboard.shift = true; - } else { - keyboard.keys[event.keyCode] = true; - } - - mouse.wheel = 0; - - if (handler() === true) { - event.preventDefault(); - event.stopPropagation(); - - return false; - } - }, true); - - window.addEventListener('keyup', function (event) { - if (document.activeElement && ['EMBED', 'INPUT', 'OBJECT', 'TEXTAREA', 'IFRAME'].includes(document.activeElement.tagName) === true || event.target.isContentEditable) { - return false; - } - - if (event.code === 'AltLeft' || event.code === 'AltRight') { - keyboard.alt = false; - } else if (event.code === 'ControlLeft' || event.code === 'ControlRight') { - keyboard.ctrl = false; - } else if (event.code === 'ShiftLeft' || event.code === 'ShiftRight') { - keyboard.shift = false; - } else { - delete keyboard.keys[event.keyCode]; - } - - mouse.wheel = 0; - }, true); - - window.addEventListener('wheel', function (event) { - if (event.deltaY > 0) { - mouse.wheel = 1; - } else { - mouse.wheel = -1; - } - - if (handler() === true) { - event.preventDefault(); - event.stopPropagation(); - - return false; - } - }, { - passive: false, - capture: true - }); - - document.addEventListener('improvedtube-player-loaded', function () { - ImprovedTube.elements.player.parentNode.addEventListener('mouseover', function () { - mouse.player = true; - mouse.wheel = 0; - }, true); - - ImprovedTube.elements.player.parentNode.addEventListener('mouseout', function () { - mouse.player = false; - mouse.wheel = 0; - }, true); - }); - - document.addEventListener('improvedtube-blur', function () { - keyboard.alt = false; - keyboard.ctrl = false; - keyboard.shift = false; - - for (var key in keyboard.keys) { - delete keyboard.keys[key]; - } - - mouse.player = false; - mouse.wheel = 0; - }); - - for (var name in this.storage) { - if (name.indexOf('shortcut_') === 0) { - if (this.isset(this.storage[name]) && this.storage[name] !== false) { - try { - var key = 'shortcut' + (name.replace(/_?shortcut_?/g, '').replace(/\_/g, '-')).split('-').map(function (element, index) { - return element[0].toUpperCase() + element.slice(1); - }).join(''); - - storage[key] = this.storage[name]; - } catch (error) { - console.error(error); - } - } - } - } -}; - - -/*------------------------------------------------------------------------------ -4.7.1 QUALITY -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutQuality = function (key) { - if (this.elements.player) { - var value = key.replace('shortcut', '').toLowerCase(); - - if (value === '144p') { - value = 'tiny'; - } else if (value === '240p') { - value = 'small'; - } else if (value === '360p') { - value = 'medium'; - } else if (value === '480p') { - value = 'large'; - } else if (value === '720p') { - value = 'hd720'; - } else if (value === '1080p') { - value = 'hd1080'; - } else if (value === '1440p') { - value = 'hd1440'; - } else if (value === '2160p') { - value = 'hd2160'; - } else if (value === '2880p') { - value = 'hd2880'; - } else if (value === '4320p') { - value = 'highres'; - } - - this.elements.player.setPlaybackQualityRange(value); - this.elements.player.setPlaybackQuality(value); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.2 PICTURE IN PICTURE -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutPictureInPicture = function () { - if (this.elements.video) { - this.elements.video.requestPictureInPicture(); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.3 TOGGLE CONTROLS -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutToggleControls = function () { - if (this.elements.player) { - this.storage.player_hide_controls = !this.storage.player_hide_controls; - - if (this.storage.player_hide_controls) { - this.elements.player.hideControls(); - } else { - this.elements.player.showControls(); - } - } -}; - - -/*------------------------------------------------------------------------------ -4.7.4 PLAY / PAUSE -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutPlayPause = function () { - if (this.elements.player) { - if (this.elements.video.paused) { - this.elements.player.playVideo(); - } else { - this.elements.player.pauseVideo(); - } - } -}; - - -/*------------------------------------------------------------------------------ -4.7.5 STOP -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutStop = function () { - if (this.elements.player) { - this.elements.player.stopVideo(); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.6 TOGGLE AUTOPLAY -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutToggleAutoplay = function () { - var toggle = document.querySelector('#ytd-player .ytp-autonav-toggle-button'), - attribute = toggle.getAttribute('aria-checked') === 'true'; - - if (toggle) { - toggle.click(); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.7 NEXT VIDEO -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutNextVideo = function () { - if (this.elements.player) { - var playlist_loop_button = document.querySelector('[aria-label="Loop playlist"]'); - - if (playlist_loop_button) { - if (playlist_loop_button.ariaPressed === 'true') { - this.elements.player.setLoop(true); - } else { - this.elements.player.setLoop(false) - } - } - - this.elements.player.nextVideo(); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.8 PREVIOUS VIDEO -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutPrevVideo = function () { - if (this.elements.player) { - var playlist_loop_button = document.querySelector('[aria-label="Loop playlist"]'); - - if (playlist_loop_button) { - if (playlist_loop_button.ariaPressed === 'true') { - this.elements.player.setLoop(true); - } else { - this.elements.player.setLoop(false) - } - } - - this.elements.player.previousVideo(); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.9 SEEK BACKWARD -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutSeekBackward = function () { - if (this.elements.player) { - this.elements.player.seekBy(-10); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.10 SEEK FORWARD -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutSeekForward = function () { - if (this.elements.player) { - this.elements.player.seekBy(10); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.11 SEEK NEXT CHAPTER -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutSeekNextChapter = function () { - if (this.elements.player) { - var player = this.elements.player, - chapters_container = player.querySelector('.ytp-chapters-container'), - progress_bar = player.querySelector('.ytp-progress-bar'); - - if (chapters_container && chapters_container.children && progress_bar) { - var chapters = chapters_container.children, - duration = player.getDuration(), - current_width = player.getCurrentTime() / (duration / 100) * (progress_bar.offsetWidth / 100); - - for (var i = 0, l = chapters.length; i < l; i++) { - var left = chapters[i].offsetLeft; - - if (current_width < left) { - player.seekTo(left / (progress_bar.offsetWidth / 100) * (duration / 100)); - - return false; - } - } - } - } -}; - - -/*------------------------------------------------------------------------------ -4.7.12 SEEK PREVIOUS CHAPTER -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutSeekPreviousChapter = function () { - if (this.elements.player) { - var player = this.elements.player, - chapters_container = player.querySelector('.ytp-chapters-container'), - progress_bar = player.querySelector('.ytp-progress-bar'); - - if (chapters_container && chapters_container.children && progress_bar) { - var chapters = chapters_container.children, - duration = player.getDuration(), - current_width = player.getCurrentTime() / (duration / 100) * (progress_bar.offsetWidth / 100); - - for (var i = chapters.length - 1; i > 0; i--) { - if (current_width > chapters[i].offsetLeft) { - var left = 0; - - if (i > 0) { - left = chapters[i - 1].offsetLeft; - } - - player.seekTo(left / (progress_bar.offsetWidth / 100) * (duration / 100)); - - return false; - } - } - } - } -}; - - -/*------------------------------------------------------------------------------ -4.7.13 INCREASE VOLUME -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutIncreaseVolume = function () { - var player = this.elements.player, - value = Number(this.storage.shortcut_volume_step) || 5; - - if (player) { - player.setVolume(player.getVolume() + value); - - localStorage['yt-player-volume'] = JSON.stringify({ - data: JSON.stringify({ - volume: player.getVolume(), - muted: player.isMuted(), - expiration: Date.now(), - creation: Date.now() - }) - }); - - sessionStorage['yt-player-volume'] = localStorage['yt-player-volume']; - - this.showStatus(player.getVolume()); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.14 DECREASE VOLUME -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutDecreaseVolume = function () { - var player = this.elements.player, - value = Number(this.storage.shortcut_volume_step) || 5; - - if (player) { - player.setVolume(player.getVolume() - value); - - localStorage['yt-player-volume'] = JSON.stringify({ - data: JSON.stringify({ - volume: player.getVolume(), - muted: player.isMuted(), - expiration: Date.now(), - creation: Date.now() - }) - }); - - sessionStorage['yt-player-volume'] = localStorage['yt-player-volume']; - - this.showStatus(player.getVolume()); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.15 SCREENSHOT -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutScreenshot = function () { - this.screenshot(); -}; - - -/*------------------------------------------------------------------------------ -4.7.16 INCREASE PLAYBACK SPEED -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutIncreasePlaybackSpeed = function () { - var video = this.elements.video, - value = Number(ImprovedTube.storage.shortcut_playback_speed_step) || .05; - - if (video) { - video.playbackRate = video.playbackRate + value; - - ImprovedTube.showStatus(video.playbackRate); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.17 DECREASE PLAYBACK SPEED -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutDecreasePlaybackSpeed = function () { - var video = this.elements.video, - value = Number(ImprovedTube.storage.shortcut_playback_speed_step) || .05; - - if (video) { - video.playbackRate = Math.max(video.playbackRate - value, .05); - - ImprovedTube.showStatus(video.playbackRate); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.18 RESET PLAYBACK SPEED -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutResetPlaybackSpeed = function () { - var video = this.elements.video; - - if (video) { - video.playbackRate = 1; - - ImprovedTube.showStatus(video.playbackRate); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.19 GO TO SEARCH BOX -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutGoToSearchBox = function () { - var search = document.querySelector('#search'); - - if (search) { - search.focus(); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.20 ACTIVATE FULLSCREEN -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutActivateFullscreen = function () { - if (this.elements.player) { - this.elements.player.toggleFullscreen(); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.21 ACTIVATE CAPTIONS -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutActivateCaptions = function () { - var player = this.elements.player; - - if (player && player.toggleSubtitlesOn) { - player.toggleSubtitlesOn(); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.22 LIKE -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutLike = function () { - var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer')[0]); - - if (like) { - like.click(); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.23 DISLIKE -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutDislike = function () { - var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer')[1]); - - if (like) { - like.click(); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.24 SUBSCRIBE -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutSubscribe = function () { - if (this.elements.subscribe_button) { - this.elements.subscribe_button.click(); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.25 DARK THEME -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutDarkTheme = function () { - if (document.documentElement.hasAttribute('dark')) { - document.documentElement.removeAttribute('dark'); - document.documentElement.removeAttribute('it-theme'); - } else { - document.documentElement.setAttribute('dark', ''); - document.documentElement.setAttribute('it-theme', 'true'); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.26 CUSTOM MINI PLAYER -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutCustomMiniPlayer = function () { - this.storage.mini_player = !this.storage.mini_player; - - this.miniPlayer(); -}; - - -/*------------------------------------------------------------------------------ -4.7.27 STATS FOR NERDS -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutStatsForNerds = function () { - var player = this.elements.player; - - if (player.isVideoInfoVisible()) { - player.hideVideoInfo(); - } else { - player.showVideoInfo(); - } -}; - - -/*------------------------------------------------------------------------------ -4.7.28 TOGGLE CARDS -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutToggleCards = function () { - document.documentElement.toggleAttribute('it-player-hide-cards'); -}; - - -/*------------------------------------------------------------------------------ -4.7.29 POPUP PLAYER -------------------------------------------------------------------------------*/ - -ImprovedTube.shortcutPopupPlayer = function () { - var player = this.elements.player; - - if (document.documentElement.dataset.pageType === 'video' && player) { - player.pauseVideo(); - - window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(player.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + player.offsetWidth + ',height=' + player.offsetHeight); - } -}; - - -/*------------------------------------------------------------------------------ -4.8.0 BLACKLIST -------------------------------------------------------------------------------*/ - -ImprovedTube.blacklist = function (type, node) { - if (this.storage.blacklist_activate !== true) { - for (var i = 0, l = this.elements.blacklist_buttons.length; i < l; i++) { - this.elements.blacklist_buttons[i].remove(); - } - - return; - } else if (this.isset(node) === false) { - var a = document.querySelectorAll('a.ytd-thumbnail'), - a2 = document.querySelectorAll('a[href*="/channel/"],a[href*="/user/"],a[href*="/c/"]'), - subscribe_buttons = document.querySelectorAll('ytd-subscribe-button-renderer.ytd-c4-tabbed-header-renderer'); - - for (var i = 0, l = a.length; i < l; i++) { - this.blacklist('video', a[i]); - } - - for (var i = 0, l = subscribe_buttons.length; i < l; i++) { - this.blacklist('channel', subscribe_buttons[i]); - } - - for (var i = 0, l = a2.length; i < l; i++) { - this.blacklist('channel', a2[i]); - } - } - - if (!this.storage.blacklist || typeof this.storage.blacklist !== 'object') { - this.storage.blacklist = { - channels: {}, - videos: {} - }; - } - - if (!this.storage.blacklist.channels || typeof this.storage.blacklist.channels !== 'object') { - this.storage.blacklist.channels = {}; - } - - if (!this.storage.blacklist.videos || typeof this.storage.blacklist.videos !== 'object') { - this.storage.blacklist.videos = {}; - } - - if (type === 'video') { - var button = document.createElement('button'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'), - id = node.href.match(ImprovedTube.regex.video_id); - - button.className = 'it-add-to-blacklist'; - button.addEventListener('click', function (event) { - if (this.parentNode.href) { - var data = this.parentNode.parentNode.__data, - id = this.parentNode.href.match(ImprovedTube.regex.video_id), - title = ''; - - if ( - data && - data.data && - data.data.title && - data.data.title.runs && - data.data.title.runs[0] - ) { - title = data.data.title.runs[0].text; - } else if ( - data && - data && - data.data && - data.data.title.simpleText - ) { - title = data.data.title.simpleText; - } - - if (id && id[1]) { - document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { - detail: { - type: 'video', - id: id[1], - title: title - } - })); - - ImprovedTube.storage.blacklist.videos[id[1]] = { - title: title - }; - - this.parentNode.parentNode.__dataHost.className += ' it-blacklisted-video'; - - event.preventDefault(); - event.stopPropagation(); - } - } - }, true); - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M12 2a10 10 0 100 20 10 10 0 000-20zm0 18A8 8 0 015.69 7.1L16.9 18.31A7.9 7.9 0 0112 20zm6.31-3.1L7.1 5.69A8 8 0 0118.31 16.9z'); - - svg.appendChild(path); - button.appendChild(svg); - - node.appendChild(button); - - this.elements.blacklist_buttons.push(button); - - if (id && id[1] && ImprovedTube.storage.blacklist.videos[id[1]]) { - node.parentNode.__dataHost.classList.add('it-blacklisted-video'); - } - } else if (type === 'channel') { - if (node.nodeName === 'A') { - try { - var id = node.href.match(/(channel|user|c)\/([^/]+)/)[2]; - - if (this.storage.blacklist.channels[id]) { - var parent = node.parentNode.__dataHost.__dataHost; - - if ( - parent.nodeName === 'YTD-GRID-VIDEO-RENDERER' && - parent.nodeName === 'YTD-VIDEO-META-BLOCK' - ) { - parent.classList.add('it-blacklisted-video'); - } - } - } catch (err) {} - } else { - var button = this.elements.blacklistChannel || document.createElement('button'), - id = location.href.match(/(channel|user|c)\/([^/]+)/)[2]; - - button.className = 'it-add-channel-to-blacklist'; - - if (this.storage.blacklist.channels[id]) { - button.innerText = 'Remove from blacklist'; - button.added = true; - } else { - button.innerText = 'Add to blacklist'; - button.added = false; - } - - button.addEventListener('click', function (event) { - var data = this.parentNode.__dataHost.__data.data, - id = location.href.match(/(channel|user|c)\/([^/]+)/)[2]; - - this.added = !this.added; - - document.dispatchEvent(new CustomEvent('ImprovedTubeBlacklist', { - detail: { - type: 'channel', - id: id, - title: data.title, - prevent: data.avatar.thumbnails[0].url - } - })); - - ImprovedTube.storage.blacklist.channels[id] = { - title: data.title, - prevent: data.avatar.thumbnails[0].url - }; - - if (this.added) { - button.innerText = 'Remove from blacklist'; - } else { - button.innerText = 'Add to blacklist'; - } - - event.preventDefault(); - event.stopPropagation(); - - return false; - }, true); - - this.elements.blacklist_buttons.push(button); - - node.parentNode.parentNode.appendChild(button); - - this.elements.blacklistChannel = button; - } - } -}; - - -/*------------------------------------------------------------------------------ -4.9.0 ANALYZER -------------------------------------------------------------------------------*/ - - -/*------------------------------------------------------------------------------ -4.10.0 SETTINGS -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -4.10.1 IMPROVEDTUBE ICON -------------------------------------------------------------------------------*/ - -ImprovedTube.improvedtubeYoutubeIcon = function () { - var data = localStorage.getItem('improvedtube-button-position'), - x = 0, - y = 0, - option = this.storage.improvedtube_youtube_icon, - button = this.elements.improvedtube_button; - - if (data) { - data = JSON.parse(data); - - x = Math.min(Math.max(data.x, 0), document.body.offsetWidth - 48); - y = Math.min(Math.max(data.y, 0), window.innerHeight - 48); - } - - if (!button) { - var label = document.createElement('span'); - - button = document.createElement('button'); - - button.className = 'it-button'; - - button.addEventListener('mousedown', function (event) { - if (ImprovedTube.storage.improvedtube_youtube_icon === 'draggable') { - var x2 = event.layerX, - y2 = event.layerY; - - function mousemove(event) { - if (button.className.indexOf('dragging') === -1) { - button.classList.add('it-button--dragging'); - } - - x = Math.min(Math.max(event.clientX - x2, 0), document.body.offsetWidth - 48); - y = Math.min(Math.max(event.clientY - y2, 0), window.innerHeight - 48); - - button.style.left = x + 'px'; - button.style.top = y + 'px'; - } - - function mouseup() { - localStorage.setItem('improvedtube-button-position', JSON.stringify({ - x, - y - })); - - window.removeEventListener('mousemove', mousemove); - window.removeEventListener('mouseup', mouseup); - } - - function click() { - button.classList.remove('it-button--dragging'); - - window.removeEventListener('click', click); - } - - window.addEventListener('mousemove', mousemove); - window.addEventListener('mouseup', mouseup); - window.addEventListener('click', click); - - event.preventDefault(); - } - }); - - button.addEventListener('click', function () { - if (this.classList.contains('it-button--dragging') === false) { - var rect = this.getBoundingClientRect(), - left = rect.x, - top = rect.y, - scrim = document.createElement('div'), - iframe = document.createElement('iframe'); - - scrim.className = 'it-button__scrim'; - scrim.addEventListener('click', function () { - scrim.remove(); - iframe.remove(); - }); - - iframe.className = 'it-button__iframe'; - - document.documentElement.setAttribute('it-message', JSON.stringify({ - requestOptionsUrl: true - })); - - if (document.body.offsetWidth - left < 308) { - left = document.body.offsetWidth - 308; - } - - if (window.innerHeight - top < Math.min(500, window.innerHeight) + 8) { - top = window.innerHeight - Math.min(500, window.innerHeight) - 8; - } - - iframe.style.left = left + 'px'; - iframe.style.top = top + 'px'; - - document.body.appendChild(scrim); - document.body.appendChild(iframe); - } - }); - - label.textContent = 'ImprovedTube'; - - button.appendChild(label); - - this.elements.improvedtube_button = button; - } - - button.className = 'it-button'; - button.style.left = ''; - button.style.top = ''; - - if (option === 'header_left') { - if (this.elements.masthead.start) { - this.elements.masthead.start.insertBefore(button, this.elements.masthead.start.children[0]); - } - } else if (option === 'header_right') { - if (this.elements.masthead.end) { - this.elements.masthead.end.appendChild(button); - } - } else if (option === 'below_player') { - if (this.elements.video_title) { - button.classList.add('it-button--below-player'); - - this.elements.video_title.appendChild(button); - } - } else if (option === 'sidebar') { - if (this.elements.sidebar_section) { - this.elements.sidebar_section.appendChild(button); - } - } else if (option === 'draggable') { - if (document.body) { - button.style.left = x + 'px'; - button.style.top = y + 'px'; - - button.classList.add('it-button--draggable'); - - document.body.appendChild(button); - } - } else if (button) { - button.remove(); - } -}; - -/*------------------------------------------------------------------------------ -4.10.2 PLAYER BUTTONS -------------------------------------------------------------------------------*/ - -ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { - if (window.self !== window.top) { - return false; - } - - if (this.storage.improvedtube_buttons === true) { - var section = document.querySelector('#info #menu-container.ytd-video-primary-info-renderer'); - - if (section && !document.querySelector('.improvedtube-player-button')) { - if (this.storage.below_player_screenshot !== false) { - var button = document.createElement('button'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - button.className = 'improvedtube-player-button'; - button.dataset.tooltip = 'Screenshot'; - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'); - - button.onclick = ImprovedTube.screenshot; - - svg.appendChild(path); - button.appendChild(svg); - - section.parentNode.insertBefore(button, section); - } - - if (this.storage.below_player_pip !== false) { - var button = document.createElement('button'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - button.className = 'improvedtube-player-button'; - button.dataset.tooltip = 'Picture in picture'; - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M19 7h-8v6h8V7zm2-4H3C2 3 1 4 1 5v14c0 1 1 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 16H3V5h18v14z'); - - button.onclick = function () { - var video = document.querySelector('#movie_player video'); - - if (video) { - video.requestPictureInPicture(); - } - }; - - svg.appendChild(path); - button.appendChild(svg); - - section.parentNode.insertBefore(button, section); - } - - if (this.storage.below_player_loop !== false) { - var button = document.createElement('button'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - button.className = 'improvedtube-player-button'; - button.dataset.tooltip = 'Loop'; - - svg.style.opacity = '.5'; - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z'); - - button.onclick = function () { - var video = ImprovedTube.elements.video, - svg = this.children[0]; - - if (video.hasAttribute('loop')) { - video.removeAttribute('loop'); - - svg.style.opacity = '.5'; - } else if (!/ad-showing/.test(ImprovedTube.elements.player.className)) { - video.setAttribute('loop', ''); - - svg.style.opacity = '1'; - } - }; - - svg.appendChild(path); - button.appendChild(svg); - - section.parentNode.insertBefore(button, section); - } - } - } -}; - - -/*----------------------------------------------------------------------------- -4.10.3 DELETE YOUTUBE COOKIES ------------------------------------------------------------------------------*/ - -ImprovedTube.deleteYoutubeCookies = function () { - var cookies = document.cookie.split(';'); - - for (var i = 0, l = cookies.length; i < l; i++) { - var cookie = cookies[i], - eqPos = cookie.indexOf('='), - name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; - - document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; - } - - setTimeout(function () { - location.reload(); - }, 100); -}; - - -/*----------------------------------------------------------------------------- -4.10.4 YOUTUBE LANGUAGE ------------------------------------------------------------------------------*/ - -ImprovedTube.youtubeLanguage = function () { - var value = this.storage.youtube_language; - - if (this.isset(value) && value !== 'default') { - var pref = this.getCookieValueByName('PREF'); - var hl = this.getParam(pref, 'hl'); - - if (hl) { - this.setCookie('PREF', pref.replace('hl=' + hl, 'hl=' + value)); - } else { - this.setCookie('PREF', pref + '&hl=' + value); - } - } -}; - - -/*----------------------------------------------------------------------------- -4.10.5 DEFAULT CONTENT COUNTRY ------------------------------------------------------------------------------*/ - -ImprovedTube.defaultContentCountry = function () { - var value = this.storage.default_content_country; - - if (this.isset(value)) { - if (value !== 'default') { - this.setCookie('s_gl', value); - } - } -}; - - -/*------------------------------------------------------------------------------ -2.0 INITIALIZATION --------------------------------------------------------------------------------- -The first function called on the YouTube side. -------------------------------------------------------------------------------*/ - -if (document.body) { - ImprovedTube.childHandler(document.body); -} - -ImprovedTube.observer = new MutationObserver(function (mutationList) { - for (var i = 0, l = mutationList.length; i < l; i++) { - var mutation = mutationList[i]; - - if (mutation.type === 'childList') { - for (var j = 0, k = mutation.addedNodes.length; j < k; j++) { - ImprovedTube.childHandler(mutation.addedNodes[j]); - } - } - } -}); - -ImprovedTube.observer.observe(document.documentElement, { - attributes: false, - childList: true, - subtree: true -}); - -new MutationObserver(function (mutationList) { - for (var i = 0, l = mutationList.length; i < l; i++) { - var mutation = mutationList[i]; - - if (mutation.type === 'attributes') { - ImprovedTube.channelDefaultTab(mutation.target); - } - } -}).observe(document.documentElement, { - attributeFilter: ['href'], - attributes: true, - childList: true, - subtree: true -}); - -ImprovedTube.init = function () { - var message = document.documentElement.getAttribute('it-message'); - - try { - ImprovedTube.storage = JSON.parse(message).storage || {}; - } catch (error) {} - - window.addEventListener('DOMContentLoaded', function () { - ImprovedTube.addScrollToTop(); - ImprovedTube.confirmationBeforeClosing(); - ImprovedTube.dim(); - ImprovedTube.font(); - ImprovedTube.themes(); - }); - - var yt_player_updated = function () { - document.dispatchEvent(new CustomEvent('improvedtube-player-loaded')); - - window.removeEventListener('yt-player-updated', yt_player_updated); - }; - - window.addEventListener('yt-player-updated', yt_player_updated); - - this.codecs(); - this.player60fps(); - this.playerOnPlay(); - this.playerSDR(); - this.shortcuts(); - this.onkeydown(); - this.onmousedown(); - this.bluelight(); - this.defaultContentCountry(); - this.youtubeLanguage(); - - if (ImprovedTube.elements.player && ImprovedTube.elements.player.setPlaybackRate) { - ImprovedTube.videoPageUpdate(); - ImprovedTube.initPlayer(); - } -}; - -document.addEventListener('improvedtube-player-loaded', function () { - ImprovedTube.elements.player.parentNode.addEventListener('mouseenter', function () { - ImprovedTube.playerControls(true); - }); - - ImprovedTube.elements.player.parentNode.addEventListener('mouseleave', function () { - ImprovedTube.playerControls(false); - }); -}); - -document.addEventListener('yt-navigate-finish', function () { - ImprovedTube.pageType(); - ImprovedTube.autoplay(); - ImprovedTube.childHandler(document.body); - ImprovedTube.init(); - - ImprovedTube.channelPlayAllButton(); -}); - -document.addEventListener('yt-page-data-updated', function (event) { - if(document.documentElement.dataset.pageType === 'video'){ - setTimeout(function () { - ImprovedTube.howLongAgoTheVideoWasUploaded(); - }, 1000); - - if (/[?&]list=([^&]+).*$/.test(location.href)) { - ImprovedTube.playlistRepeat(); - ImprovedTube.playlistShuffle(); - ImprovedTube.playlistReverse(); - } - } -}); - -new MutationObserver(function (mutationList) { - for (var i = 0, l = mutationList.length; i < l; i++) { - var mutation = mutationList[i]; - - if (mutation.type === 'attributes' && mutation.attributeName === 'it-message') { - var message = document.documentElement.getAttribute('it-message'); - - try { - message = JSON.parse(message); - } catch (error) {} - - if (message){ - if (message.storage) { - ImprovedTube.storage = message.storage; - } else if (message['storage-update']) { - var storage_update = message['storage-update']; - - ImprovedTube.storage[storage_update.key] = storage_update.value; - - if (ImprovedTube[storage_update.camelizedKey]) { - ImprovedTube[storage_update.camelizedKey](); - } - } else if (message.focus) { - ImprovedTube.focus = true; - - ImprovedTube.pageOnFocus(); - } else if (message.blur) { - ImprovedTube.focus = false; - - ImprovedTube.pageOnFocus(); - - document.dispatchEvent(new CustomEvent('improvedtube-blur')); - } else if (message.deleteCookies) { - ImprovedTube.deleteYoutubeCookies(); - } else if (message.responseOptionsUrl) { - var iframe = document.querySelector('.it-button__iframe'); - - if (iframe) { - iframe.src = message.responseOptionsUrl; - } - } else if (ImprovedTube.elements.player){ - if (message.pause) { - ImprovedTube.played_before_blur = ImprovedTube.elements.player.getPlayerState() === 1; - ImprovedTube.elements.player.pauseVideo(); - } else if (message.setVolume) { - ImprovedTube.elements.player.setVolume(message.setVolume); - } else if (message.setPlaybackSpeed) { - ImprovedTube.elements.player.setPlaybackRate(message.setPlaybackSpeed); - } else if (message.mixer) { - document.documentElement.setAttribute('it-response', JSON.stringify({ - mixer: true, - url: location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3), - volume: ImprovedTube.elements.player.getVolume(), - playbackRate: ImprovedTube.elements.player.getPlaybackRate(), - title: document.title - })); - } - } - } - } - } -}).observe(document.documentElement, { - attributes: true, - childList: false, - subtree: false -}); - -window.addEventListener('load', function () { - ImprovedTube.elements.masthead = { - start: document.querySelector('ytd-masthead #start'), - end: document.querySelector('ytd-masthead #end'), - logo: document.querySelector('ytd-masthead a#logo') - }; - - ImprovedTube.improvedtubeYoutubeIcon(); - ImprovedTube.youtubeHomePage(); -}); - -document.dispatchEvent(new CustomEvent('it-init')); - From b8417d662f009bf8513490f1e0b49a29d8b72626 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Tue, 11 Oct 2022 20:38:26 +0300 Subject: [PATCH 0647/1224] Removed Google Analytics --- background.js | 39 +-------------------------------------- 1 file changed, 1 insertion(+), 38 deletions(-) diff --git a/background.js b/background.js index 8607ce7a3..51a3c5fb4 100644 --- a/background.js +++ b/background.js @@ -1,46 +1,9 @@ /*-------------------------------------------------------------- >>> BACKGROUND ---------------------------------------------------------------- -# Google Analytics -# Locale +# --------------------------------------------------------------*/ -/*-------------------------------------------------------------- -# GOOGLE ANALYTICS ---------------------------------------------------------------*/ - -var _gaq = []; - -function googleAnalytics(previous_time) { - var version = chrome.runtime.getManifest().version, - script = document.createElement('script'), - current_time = new Date().getTime(); - - _gaq.push(['_setAccount', 'UA-88354155-1']); - _gaq.push(['_setSessionCookieTimeout', 14400000]); - - if (current_time - (previous_time || 0) >= 86400000) { - _gaq.push([ - '_trackPageview', - '/improvedtube-' + version + '/background', - 'page-loaded' - ]); - - chrome.storage.local.set({ - ga: current_time - }); - } - - script.src = 'https://ssl.google-analytics.com/ga.js'; - - document.body.appendChild(script); -} - -chrome.storage.local.get(function (items) { - //googleAnalytics(items.ga); -}); - - /*-------------------------------------------------------------- # LOCALE --------------------------------------------------------------*/ From daf1998289ce569d2417e00d248ba314f6b9c687 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Wed, 12 Oct 2022 21:02:52 +0300 Subject: [PATCH 0648/1224] Some updates --- assets/satus/satus.css | 2067 +----------------------- assets/satus/satus.js | 3372 +--------------------------------------- background.js | 8 +- 3 files changed, 8 insertions(+), 5439 deletions(-) diff --git a/assets/satus/satus.css b/assets/satus/satus.css index 7ad0f9faf..dda44c1f0 100644 --- a/assets/satus/satus.css +++ b/assets/satus/satus.css @@ -1,2066 +1 @@ -/*-------------------------------------------------------------- -# SCROLLBAR ---------------------------------------------------------------*/ - -:where([class^='satus'])::-webkit-scrollbar { - width: 4px; -} - -:where([class^='satus'])::-webkit-scrollbar:hover { - width: 8px; -} - -:where([class^='satus'])::-webkit-scrollbar-thumb { - background: rgba(var(--satus-light), .2); -} - -:where([class^='satus'])::-webkit-scrollbar-thumb:hover { - background: rgba(var(--satus-light), .3); -} -/*-------------------------------------------------------------- -# ANIMATIONS ---------------------------------------------------------------*/ - -@keyframes fadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} - -@keyframes fadeInLeft { - from { - opacity: 0; - transform: translateX(-100%); - } - to { - opacity: 1; - transform: translateX(0); - } -} - -@keyframes fadeInRight { - from { - opacity: 0; - transform: translateX(100%); - } - to { - opacity: 1; - transform: translateX(0); - } -} - -@keyframes fadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - } -} - -@keyframes fadeOutLeft { - from { - opacity: 1; - transform: translateX(0); - } - to { - opacity: 0; - transform: translateX(-50%); - } -} - -@keyframes fadeOutRight { - from { - opacity: 1; - transform: translateX(0); - } - to { - opacity: 0; - transform: translateX(50%); - } -} - -@keyframes zoomIn { - from { - transform: scale(.8); - opacity: 0; - } - to { - transform: scale(1); - opacity: 1; - } -} - -@keyframes zoomOut { - from { - transform: scale(1); - opacity: 1; - } - to { - transform: scale(.8); - opacity: 0; - } -} -/*-------------------------------------------------------------- ->>> THEMES ---------------------------------------------------------------*/ - -.satus-base { - --satus-light: 0, 20, 82; - --satus-primary: #ff4158; - --satus-alert-background--error: #501616; - --satus-alert-border--error: 1px solid #6f1f1f; - --satus-alert-foreground--error: #d77070; - --satus-alert-background--success: rgb(246, 180, 101, .32); - --satus-alert-border--success: 1px solid rgb(246, 180, 101, .6); - --satus-alert-foreground--success: rgb(184, 115, 30); - --satus-base-background: #f3f4f6; - --satus-base-foreground: #565e76; - --satus-checkbox-background: #f3f4f6; - --satus-checkbox-border: #dcdfe5; - --satus-checkbox-foreground: rgb(255, 255, 255, .96); - --satus-divider: rgba(var(--satus-light), .1); - --satus-header-background: #fff; - --satus-header-foreground: inherit; - --satus-header-shadow: 0 1px 0 #dcdee5; - --satus-layers-background: var(--satus-base-background); - --satus-layers-foreground: inherit; - --satus-section-background: #fff; - --satus-section-border: #dcdee5; - --satus-section-foreground: inherit; - --satus-sidebar-background: #fff; - --satus-sidebar-foreground: inherit; - --satus-sidebar-shadow: #dcdee5; - --satus-modal-foreground: inherit; - --satus-modal-background: #fff; - --satus-modal-shadow: 0 1px 4px #7d86a1; - --satus-tabs-background: rgba(var(--satus-light), .04); - --satus-tabs-foreground: #fff; - --satus-text-field-background: #edf0f2; - --satus-text-field-border: #dcdee5; - --satus-text-field-color: #7d8ba1; - --satus-text-field-selection: rgb(149, 166, 178, .35); - --satus-text-field-cursor: #fa0; - --satus-switch-track: #e1e4ea; - --satus-switch-track--checked: var(--satus-primary); - --satus-switch-thumb: #fff; - --satus-input-text-background: #e8e8e3; - --satus-input-text-border: #d6d6cd; - --satus-input-text-text: #848471; -} - -.satus-base[theme=dark] { - --satus-light: 255, 255, 255; - --satus-primary: #3691bf; - --satus-alert-background--error: #501616; - --satus-alert-border--error: 1px solid #6f1f1f; - --satus-alert-foreground--error: #d77070; - --satus-alert-background--success: #143648; - --satus-alert-border--success: 1px solid #1d4f67; - --satus-alert-foreground--success: #50a4ce; - --satus-base-background: #151528; - --satus-base-foreground: #fafafa; - --satus-header-background: #313172; - --satus-header-shadow: transparent; - --satus-section-background: #232343; - --satus-section-border: #232343; - --satus-modal-background: #313172; - --satus-modal-shadow: 0 1px 4px #22222f; - --satus-switch-track: #52527a; -} -/*-------------------------------------------------------------- ->>> NORMALIZE ---------------------------------------------------------------*/ - -:where([class^='satus']) { - box-sizing: border-box; -} - -:where([class^='satus'])[hidden]:not([hidden='false']) { - display: none; -} - -:where([class^='satus'])[transparent] { - opacity: 0; -} -/*-------------------------------------------------------------- ->>> MODAL ----------------------------------------------------------------- -# Container -# Scrim -# Surface -# Variants - # Vertical menu ---------------------------------------------------------------*/ - - -/*-------------------------------------------------------------- -# CONTAINER ---------------------------------------------------------------*/ - -.satus-modal { - position: fixed; - z-index: 9; - top: 0; - left: 0; - display: flex; - width: 100vw; - height: 100vh; - justify-content: center; - align-items: center; -} - - -/*-------------------------------------------------------------- -# SCRIM ---------------------------------------------------------------*/ - -.satus-modal__scrim { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - animation: fadeIn 150ms linear forwards; - opacity: 0; - background: rgba(0, 0, 0, .16); - backdrop-filter: blur(8px); -} - -.satus-modal--closing .satus-modal__scrim { - animation: fadeOut 70ms linear forwards; -} - - -/*-------------------------------------------------------------- -# SURFACE ---------------------------------------------------------------*/ - -.satus-modal__surface { - display: flex; - overflow-y: auto; - flex-direction: column; - box-sizing: border-box; - width: 95%; - min-width: 240px; - max-width: 560px; - max-height: 80%; - margin: 8px; - padding: 12px 16px; - transform: scale(.8); - animation: zoomIn 150ms linear forwards; - animation-delay: 20ms; - opacity: 0; - color: var(--satus-modal-foreground); - border-radius: 3px; - background-color: var(--satus-modal-background); - box-shadow: var(--satus-modal-shadow); -} - -.satus-modal--closing .satus-modal__surface { - animation: zoomOut 70ms linear forwards; -} - -.satus-modal__content { - margin: 6px 0 12px; -} - -.satus-section--actions { - justify-content: flex-end; -} -.satus-section--actions > *:not(:first-child) { - margin-left: 8px; -} - - -/*-------------------------------------------------------------- -# VARIANTS ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# VERTICAL MENU ---------------------------------------------------------------*/ - -.satus-modal--vertical-menu .satus-modal__surface { - position: absolute; - top: 8px; - right: 8px; - left: auto; - min-width: 180px; - max-width: 180px; - margin: 0; - padding: 8px 0; - transform-origin: right top; -} - -.satus-modal--vertical-menu .satus-modal__surface>[class^='satus']:where(:not(.satus-divider)) { - height: 36px; - padding: 0 16px; - border-radius: 0; -} - -.satus-modal--vertical-menu .satus-modal__surface>.satus-span { - font-size: 13px; - font-weight: 500; - margin: 6px 0; - padding: 0 12px; - height: auto; -} - -.satus-modal--vertical-menu .satus-modal__surface>.satus-tabs { - margin: 0 12px; - border-radius: 3px; - height: 26px; - padding: 0; -} - -.satus-modal--vertical-menu .satus-select svg, -.satus-modal--vertical-menu .satus-button svg { - margin: 0 14px 0 0; - opacity: .64; - flex: 0 0 18px; -} - -.satus-modal--vertical-menu .satus-button .satus-span { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - -.satus-modal--vertical-menu .satus-switch:hover { - cursor: pointer; - - background-color: rgba(var(--satus-light), .06); -} - -.satus-modal--vertical-menu .satus-switch:focus { - background-color: rgba(var(--satus-light), .08); -} -/*-------------------------------------------------------------- ->>> GRID ---------------------------------------------------------------*/ - -.satus-grid { - display: flex; - align-items: stretch; - height: 100%; - padding: 8px; -} -/*-------------------------------------------------------------- ->>> TEXT FIELD ----------------------------------------------------------------- -# Parts - # Container - # Input - # -# Syntax highlighting - # Regular expression ---------------------------------------------------------------*/ - -.satus-text-field { - display: flex; - - min-width: 240px; - height: 36px; - - color: var(--satus-text-field-foreground, inherit); - border: 1px solid var(--satus-text-field-border); - border-radius: 4px; - background: var(--satus-text-field-background); - - align-items: center; - justify-content: space-between; -} - -.satus-text-field__container { - position: relative; - - overflow: hidden; - - height: 100%; - - flex: 1; -} - -.satus-text-field[line-numbers=false] .satus-text-field__container { - margin-left: 8px; -} - -.satus-text-field__textarea, -.satus-text-field__input { - font: inherit; - - position: absolute; - z-index: 9; - top: 0; - left: 0; - - overflow: auto; - - width: 100%; - min-width: 0; - max-width: none; - height: 100%; - min-height: 0; - max-height: none; - margin: 0; - padding: 0 12px; - - white-space: pre; - - opacity: 0; - color: inherit; - border: none; - border-radius: 4px; - outline: none; - - appearance: none; - overflow-wrap: normal; -} - -.satus-text-field__display { - position: absolute; - top: 0; - left: 0; - - display: flex; - - width: 100%; - height: 100%; -} - -.satus-text-field__line-numbers { - padding: 0 12px 0 0; - - opacity: .5; -} - -.satus-text-field__line-numbers>span { - font-size: inherit; - - display: block; - - width: 100%; - - text-align: right; -} - -.satus-text-field__pre { - font: inherit; - - display: flex; - - margin: 0; -} - -.satus-text-field__hidden-value { - font: inherit; - - position: absolute; - - overflow: auto; - - white-space: pre; - pointer-events: none; - - opacity: 0; - - overflow-wrap: normal; -} - -.satus-text-field__selection { - position: absolute; - top: 0; - left: 0; - - display: none; - - width: 0; - height: 22px; - margin: 6px 12px; - - border: 1px solid var(--satus-text-field-selection); - border-radius: 3px; - background: var(--satus-text-field-selection); -} - -.satus-text-field__cursor { - position: absolute; - top: 0; - left: 0; - - display: none; - - width: 2px; - height: 22px; - margin: -3px 0 0; - - animation: blink 1s step-end 8; - - background: var(--satus-text-field-cursor); -} - -.satus-text-field__textarea:focus+.satus-text-field__display>.satus-text-field__cursor, -.satus-text-field__textarea:focus+.satus-text-field__display>.satus-text-field__selection:not([disabled]), -.satus-text-field__input:focus+.satus-text-field__display>.satus-text-field__cursor, -.satus-text-field__input:focus+.satus-text-field__display>.satus-text-field__selection:not([disabled]) { - display: block; -} - -@keyframes blink { - - from, - to { - opacity: 1; - } - - 50% { - opacity: 0; - } -} - - -/*-------------------------------------------------------------- -# MULTILINE: FALSE ---------------------------------------------------------------*/ - -.satus-text-field[multiline=false] .satus-text-field__pre { - align-items: center; -} - -.satus-text-field[multiline=false] .satus-text-field__cursor { - top: calc(50% - 9px); -} - - -/*-------------------------------------------------------------- -# SYNTAX HIGHLIGHTING ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# REGULAR EXPRESSION ---------------------------------------------------------------*/ - -.satus-text-field__pre>.group { - color: #47ff47; - background-color: rgb(71, 255, 71, .16); -} - -.satus-text-field__pre>.character-class { - color: #ffc247; - background-color: rgb(255, 170, 0, .16); -} - -.satus-text-field__pre>.quantifier { - color: #47c2ff; - background-color: rgb(71, 194, 255, .16); -} - -.satus-text-field__pre>.anchor { - color: #47c2ff; - background-color: rgb(71, 194, 255, .16); -} - -.satus-text-field__pre>.metasequence { - color: #47ff47; - background-color: rgb(71, 255, 71, .16); -} - -.satus-text-field__pre>.text { - color: #c4c4d4; - background-color: rgb(196, 196, 212, .16); -} -/*-------------------------------------------------------------- ->>> CHART ---------------------------------------------------------------*/ - -.satus-chart { - font-size: 90%; - - position: relative; - - height: 128px; - margin: 4px 12px; - - color: rgba(var(--satus-light), .32); - border: 1px dashed rgba(var(--satus-light), .2); - border-top: unset; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} - -.satus-chart__labels { - position: absolute; - top: 0; - left: 0; - - display: flex; - - width: 100%; - height: 100%; - - justify-content: space-between; - align-items: stretch; -} - -.satus-chart__section { - padding: 4px; - - flex: 1; -} - -.satus-chart__section:not(:last-child) { - border-right: 1px dashed rgba(var(--satus-light), .2); -} - - -.satus-chart__bars { - position: absolute; - top: 0; - left: 0; - - display: flex; - - width: 100%; - height: 100%; - - justify-content: space-between; - align-items: stretch; -} - -.satus-chart__bar { - display: flex; - flex-direction: column; - - margin: 0 1px; - - flex: 1; - align-items: center; - justify-content: flex-end; -} - -.satus-chart__piece { - width: 100%; -} - -.satus-chart__piece:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} -/*-------------------------------------------------------------- ->>> SELECT ---------------------------------------------------------------*/ - -.satus-select { - position: relative; - - display: flex; - - cursor: pointer; - - align-items: center; - justify-content: space-between; -} - -.satus-select:hover { - background-color: var(--satus-hover); -} - -.satus-select__content { - display: flex; - - flex: 2; - overflow: hidden; - - align-items: center; -} - -.satus-select svg { - width: 20px; - height: 18px; - margin: 0 14px 0 0; - - opacity: .64; -} - -.satus-select__content .satus-span { - overflow: hidden; - - text-overflow: ellipsis; -} - -.satus-select__value { - display: block; - overflow: hidden; - - flex: 1; - margin-left: 8px; - - text-align: right; - text-overflow: ellipsis; - - opacity: .64; -} - -.satus-select select { - font: inherit; - - position: absolute; - z-index: 1; - top: 0; - left: 0; - - width: 100%; - height: 100%; - margin: 0; - padding: inherit; - - cursor: inherit; - - opacity: 0; - border: none; - outline: none; - - appearance: none; -} - -.satus-select:hover { - cursor: pointer; - - background-color: rgba(var(--satus-light), .06); -} - -.satus-select:focus { - background-color: rgba(var(--satus-light), .08); -} - -.satus-select select::-webkit-scrollbar { - width: 4px; -} - -.satus-select select::-webkit-scrollbar:hover { - width: 8px; -} - -.satus-select select::-webkit-scrollbar-thumb { - background: rgba(0, 0, 0, .2); -} - -.satus-select select::-webkit-scrollbar-thumb:hover { - background: rgba(0, 0, 0, .3); -} - -.satus-select option { - color: var(--satus-select-text); - background: var(--satus-select-background); -} -/*-------------------------------------------------------------- ->>> DIVIDER ---------------------------------------------------------------*/ - -.satus-divider { - height: 1px; - margin: 16px 0 12px; - background: var(--satus-divider); -} -/*-------------------------------------------------------------- ->>> SECTION ----------------------------------------------------------------- -# Variants - # Align start - # Align end - # Card -# Media ---------------------------------------------------------------*/ - -.satus-section { - display: flex; - - flex-wrap: wrap; -} - - -/*-------------------------------------------------------------- -# ALIGN START ---------------------------------------------------------------*/ - -.satus-section--align-start { - align-items: center; -} - -.satus-section--align-start>*:not(:last-child) { - margin-right: 8px; -} - - -/*-------------------------------------------------------------- -# ALIGN END ---------------------------------------------------------------*/ - -.satus-section--align-end { - align-items: center; - justify-content: flex-end; -} - -.satus-section--align-end>*:not(:first-child) { - margin-left: 8px; -} - - -/*-------------------------------------------------------------- -# CARD ---------------------------------------------------------------*/ - -.satus-section--card { - flex-direction: column; - - max-width: 900px; - margin: 12px; - padding: 8px 0; - - border: 1px solid var(--satus-section-border); - border-radius: 3px; - background: var(--satus-section-background); - color: var(--satus-section-foreground); -} - -.satus-section--transparent-card { - max-width: 900px; - margin: 8px 12px; -} - -.satus-section--card[data-title], -.satus-section--transparent-card[data-title] -{ - position: relative; - - margin-top: 32px; -} - -.satus-section--card[data-title]::before, -.satus-section--transparent-card::before -{ - position: absolute; - top: -8px; - left: 0; - - content: attr(data-title); - transform: translateY(-100%); -} - - -.satus-section--transparent-card > [class^='satus'] { - width: 100%; -} - -.satus-section--card>[class^='satus']:not(.satus-list):not(.satus-section) { - display: flex; - - min-height: 48px; - padding: 8px 12px; - - transition: background-color .18s cubic-bezier(.25, .8, .5, 1); - text-align: left; - - border-radius: 0; - - align-items: center; -} - -.satus-section--card>[class^='satus']:not(.satus-list):not(.satus-section):not(.satus-chart) { - width: 100%; -} - -.satus-section--card>[class^='satus']:not(.satus-chart):not(.satus-list):not(.satus-span):hover { - background-color: rgba(var(--satus-light), .06); -} - -.satus-section--card>.satus-button { - justify-content: flex-start; -} - -.satus-section--card>.satus-button>svg, -.satus-section--card>.satus-select>svg -{ - width: 20px; - margin: 0 14px 0 0; - - color: var(--satus-primary); -} - -.satus-section--card>.satus-span { - display: flex; - - align-items: center; -} - -.satus-section--transparent { - background: unset; - border: unset; - padding: 0; - border-radius: unset; -} - - -/*-------------------------------------------------------------- -# MEDIA ---------------------------------------------------------------*/ - -@media (min-width: 901px) { - .satus-section--card, - .satus-section--transparent-card { - margin-left: auto; - margin-right: auto; - } -} -/*-------------------------------------------------------------- ->>> BASE ---------------------------------------------------------------*/ - -.satus-base { - display: flex; - flex-direction: column; - - width: 100%; - height: 100%; - - color: var(--satus-base-foreground); - background: var(--satus-base-background); -} -/*-------------------------------------------------------------- ->>> ALERT ----------------------------------------------------------------- -# Media ---------------------------------------------------------------*/ - -.satus-alert { - display: flex; - - max-width: 900px; - min-height: 48px; - margin: 12px; - padding: 8px 12px; - - border-radius: 3px; - - align-items: center; -} - -.satus-alert--error { - color: var(--satus-alert-foreground--error); - border: var(--satus-alert-border--error); - background: var(--satus-alert-background--error); -} - -.satus-alert--success { - color: var(--satus-alert-foreground--success); - border: var(--satus-alert-border--success); - background: var(--satus-alert-background--success); -} - - -/*-------------------------------------------------------------- -# MEDIA ---------------------------------------------------------------*/ - -@media (min-width: 901px) { - .satus-alert { - margin-right: auto; - margin-left: auto; - } -} -/*-------------------------------------------------------------- ->>> INPUT ---------------------------------------------------------------*/ - -.satus-input[type=text], -.satus-input[type=password] { - font: inherit; - font-size: 16px; - - box-sizing: border-box; - width: 100%; - height: 26px; - margin: 0; - margin: 8px 0; - padding: 0 8px; - - color: var(--satus-input-text-foreground, inherit); - border: none; - border: 1px solid var(--satus-input-text-border); - border-radius: 4px; - outline: none; - background: none; - background-color: var(--satus-input-text-background); - - appearance: none; -} - -.satus-input--error[type=text], -.satus-input--error[type=password] { - outline: 2px solid rgba(255, 0, 0, .32); -} -/*-------------------------------------------------------------- ->>> MAIN ---------------------------------------------------------------*/ - -.satus-main { - display: flex; - flex: 1 -} -/*-------------------------------------------------------------- ->>> SIDEBAR ---------------------------------------------------------------*/ - -.satus-sidebar { - z-index: 1; - display: flex; - flex-direction: column; - width: 56px; - padding: 12px 0; - color: var(--satus-sidebar-foreground); - background: var(--satus-sidebar-background); - box-shadow: 1px 0 0 var(--satus-sidebar-shadow) -} -/*-------------------------------------------------------------- ->>> LAYERS ---------------------------------------------------------------*/ - -.satus-layers { - position: relative; - - overflow: hidden; - - flex: 1; -} - -.satus-layers__layer { - position: absolute; - top: 0; - left: 0; - - overflow: auto; - - width: 100%; - height: 100%; - - color: var(--satus-layers-foreground); - background: var(--satus-layers-background); -} -/*-------------------------------------------------------------- ->>> LIST ---------------------------------------------------------------*/ - -.satus-list { - margin: 0; - - list-style: none; -} - -.satus-list__item { - display: flex; - - min-height: 48px; - padding: 0 16px; - - align-items: center; - justify-content: space-between; -} - -.satus-list__item>*:not(:first-child) { - margin-left: 8px; -} - -.satus-list__item>*:last-child { - font-size: 92%; - - text-align: right; - - opacity: .64; -} -/*-------------------------------------------------------------- ->>> COLOR PICKER: ----------------------------------------------------------------- -# Button -# Modal ---------------------------------------------------------------*/ - - -/*-------------------------------------------------------------- -# BUTTON ---------------------------------------------------------------*/ - -.satus-color-picker { - font-size: inherit; - - position: relative; - - display: flex; - - box-sizing: border-box; - margin: 0; - - cursor: pointer; - - color: inherit; - border: none; - outline: none; - background-color: var(--satus-theme-button); - - justify-content: space-between; - -webkit-tap-highlight-color: transparent; - align-items: center; - -webkit-appearance: none; -} - -.satus-color-picker__value { - width: 22px; - height: 22px; - - border: 2px solid rgba(0, 0, 0, .16); - border-radius: 50%; -} - - -/*-------------------------------------------------------------- -# MODAL ---------------------------------------------------------------*/ - -.satus-modal--color-picker .satus-modal__surface { - padding: 8px; -} - -.satus-color-picker__palette { - position: relative; - - overflow: hidden; - - width: 100%; - height: 256px; - margin: 0 0 4px; - - border-radius: 5px; - background-color: #f00; -} - -.satus-color-picker__palette:before { - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - - background-image: linear-gradient(0deg, black, transparent), linear-gradient(90deg, white, transparent); -} - -.satus-color-picker__cursor { - position: absolute; - - width: 5px; - height: 5px; - - transform: translate(-50%, -50%); - pointer-events: none; - - border: 1px solid #fff; - border-radius: 50%; - box-shadow: 0 0 0 1px #000; -} - -.satus-modal--color-picker .satus-modal__surface .satus-section--color { - margin: 8px 4px; - - align-items: center; -} - -.satus-color-picker__color { - width: 32px; - height: 32px; - margin: 0 16px 0 0; - - border: 2px solid rgba(0, 0, 0, .16); - border-radius: 50%; - background: #f00; -} - -.satus-slider.satus-color-picker__hue { - padding: 0; - - flex: 1; -} - -.satus-color-picker__hue .satus-slider__track-container { - height: 16px; - margin: 0; - - border-radius: 4px; - background-image: linear-gradient(90deg, #f00, #ff2a00, #f50, #ff7f00, #fa0, #ffd400, #ff0, #d4ff00, #af0, #80ff00, #5f0, #2bff00, #0f0, #00ff2b, #0f5, #00ff80, #0fa, #00ffd5, #0ff, #00d4ff, #0af, #007fff, #05f, #002bff, #00f, #2a00ff, #50f, #7f00ff, #a0f, #d400ff, #f0f, #ff00d4, #f0a, #ff0080, #f05, #ff002b, #f00); -} - -.satus-color-picker__hue .satus-slider__track-container::before { - display: none; -} - -.satus-color-picker__hue .satus-slider__track { - background: transparent; -} - -.satus-color-picker__hue .satus-slider__track::after { - width: 16px; - height: 16px; - - background: #fff; - box-shadow: 0 0 4px rgb(0, 0, 0, .64); -} -/*-------------------------------------------------------------- ->>> SPAN ---------------------------------------------------------------*/ - -.satus-span--title { - font-weight: 500; - overflow: hidden; - - white-space: nowrap; - text-overflow: ellipsis; - - flex: 1; -} -/*-------------------------------------------------------------- ->>> BUTTON ----------------------------------------------------------------- -# Base -# Basic -# Icon ---------------------------------------------------------------*/ - - -/*-------------------------------------------------------------- -# BASE ---------------------------------------------------------------*/ - -.satus-button { - font: inherit; - - position: relative; - - display: inline-flex; - overflow: hidden; - - height: 36px; - padding: 8px; - - transition: background-color .3s cubic-bezier(.25, .8, .5, 1); - - color: inherit; - border: none; - border-radius: 6px; - outline: none; - background: transparent; - - appearance: none; - align-items: center; -} - -.satus-button:hover { - cursor: pointer; - - background-color: rgba(var(--satus-light), .06); -} - -.satus-button:focus { - background-color: rgba(var(--satus-light), .08); -} - -.satus-button svg { - width: 100%; - max-width: 24px; - height: 100%; - max-height: 24px; -} - - -/*-------------------------------------------------------------- -# BASIC ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# ICON ---------------------------------------------------------------*/ - -.satus-button--icon { - width: 40px; - height: 40px; - - border-radius: 50%; -} - -.satus-button--icon svg { - width: 24px; - height: 24px; -} -/*-------------------------------------------------------------- ->>> HEADER ---------------------------------------------------------------*/ - -.satus-header { - z-index: 1; - - display: flex; - - height: 56px; - padding: 0 12px; - - color: var(--satus-header-foreground); - background: var(--satus-header-background); - box-shadow: var(--satus-header-shadow); - - justify-content: space-between; - align-items: center; -} -/*-------------------------------------------------------------- ->>> RADIO ---------------------------------------------------------------*/ - -.satus-radio { - position: relative; - display: flex; -} - -.satus-radio__input { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - opacity: 0; - margin: 0; - z-index: 9; -} - -.satus-radio__content { - flex: 1; - padding: 0 12px; -} - -.satus-radio__i { - width: 16px; - height: 16px; - border: 1px solid rgba(var(--satus-light),.64); - border-radius: 50%; - transition: 200ms; -} - -.satus-radio__input + .satus-radio__i::before { - width: 8px; - height: 8px; - margin: 3px; - border-radius: 50%; - background: var(--satus-primary); - content: ''; - display: block; - transform: scale(0); - transition: 200ms; -} - -.satus-radio__input:checked + .satus-radio__i { - border-color: var(--satus-primary); -} - -.satus-radio__input:checked + .satus-radio__i::before { - background: var(--satus-primary); - transform: scale(1); -} -/*-------------------------------------------------------------- ->>> SLIDER ---------------------------------------------------------------*/ - -.satus-slider { - display: flex; - - flex-wrap: wrap; -} - -.satus-slider__content { - width: 100%; - display: flex; - justify-content: space-between; -} - -.satus-slider__input[type='text'] { - appearance: none; - background: transparent; - border: none; - color: inherit; - font: inherit; - padding: 0; - margin: 0; - outline: none; - width: 64px; - text-align: right; -} - -.satus-slider__track-container { - position: relative; - - width: 100%; - height: 20px; - margin: 10px 0 -2px; -} - -.satus-slider__track-container::before { - position: absolute; - top: calc(50% - 1px); - left: 0; - - width: 100%; - height: 2px; - - content: ''; - - opacity: .24; - background: var(--satus-primary); -} - -.satus-slider__input[type='range'] { - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - margin: 0; - - opacity: 0; -} - -.satus-slider__track { - position: absolute; - top: calc(50% - 1px); - left: 0; - - width: 0; - height: 2px; - - background: var(--satus-primary); - pointer-events: none; -} - -.satus-slider__track::before { - position: absolute; - top: 50%; - right: 0; - transform: translate(50%, -50%); - display: block; - width: 16px; - height: 16px; - content: ''; - transition: width 200ms, height 200ms, opacity 200ms; - opacity: 0; - border-radius: 50%; - background: var(--satus-primary); -} - -.satus-slider__input:focus + .satus-slider__track::before { - width: 24px; - height: 24px; - opacity: .16; -} - -.satus-slider__input:active + .satus-slider__track::before { - width: 26px; - height: 26px; - opacity: .16; -} - -.satus-slider__track::after { - position: absolute; - top: 50%; - right: 0; - transform: translate(50%, -50%); - - width: 10px; - height: 10px; - - content: ''; - - border-radius: 50%; - background: var(--satus-primary); - pointer-events: none; - transition: width 200ms, height 200ms, opacity 200ms; -} - -.satus-slider__input:active + .satus-slider__track::after -{ - width: 12px; - height: 12px; -} - - - - - -.satus-slider--row { - flex-wrap: nowrap; - justify-content: space-between; -} - -.satus-slider--row .satus-slider__track-container { - margin: 0 0 -2px 12px; - max-width: 50%; -} -/*-------------------------------------------------------------- ->>> TABS ---------------------------------------------------------------*/ - -.satus-tabs { - position: relative; - - display: flex; - - border: 2px solid var(--satus-tabs-background); - border-radius: 4px; - background: var(--satus-tabs-background); -} - -.satus-tabs::before { - position: absolute; - top: 0; - left: calc(calc(100% / var(--satus-tabs-count)) * var(--satus-tabs-current)); - - width: calc(100% / var(--satus-tabs-count)); - height: 100%; - - content: ''; - transition: left .25s; - - border-radius: 3px; - background: var(--satus-tabs-foreground); -} - -.satus-tabs__button { - font: inherit; - - position: relative; - z-index: 1; - - overflow: hidden; - - margin: 0; - padding: 0 8px; - - text-overflow: ellipsis; - - color: inherit; - border: none; - border-radius: 3px; - outline: none; - background: transparent; - - flex: 1; - appearance: none; -} -/*-------------------------------------------------------------- ->>> SHORTCUT: ----------------------------------------------------------------- -# ---------------------------------------------------------------*/ - -.satus-shortcut__value { - font-size: 11px; - - display: flex; - - margin-left: 16px; - - text-transform: uppercase; - - align-items: center; - flex: 1; - justify-content: flex-end; -} - -.satus-shortcut__actions { - display: flex; - - justify-content: flex-end; -} - -.satus-shortcut__actions .satus-button { - height: 32px; - margin: 8px 4px 0; - - border-radius: 8px; - background: rgba(0, 0, 0, .15); -} - -.satus-shortcut__actions .satus-button:hover { - background: rgba(0, 0, 0, .25); -} - -.satus-shortcut__primary { - display: flex; - - height: 64px; - margin: 0 0 12px; - padding: 16px; - - border-radius: 3px; - background: rgba(0, 0, 0, .16); - - align-items: center; -} - -.satus-shortcut__key { - display: flex; - - min-width: 32px; - height: 32px; - padding: 4px 8px; - - border-radius: 4px; - background: #fff; - box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); - - align-items: center; - justify-content: center; -} - -.satus-shortcut__value>.satus-shortcut__key { - font-size: 12px; - - min-width: 24px; - height: 24px; -} - -.satus-shortcut__plus { - position: relative; - - width: 12px; - height: 12px; - margin: 8px; -} - -.satus-shortcut__plus::before { - position: absolute; - top: 0; - left: 5px; - - width: 2px; - height: 12px; - - content: ''; - - background-color: #aaa; -} - -.satus-shortcut__plus::after { - position: absolute; - top: 5px; - left: 0; - - width: 12px; - height: 2px; - - content: ''; - - background-color: #aaa; -} - -.satus-shortcut__mouse { - position: relative; - - display: flex; - - width: 28px; - height: 36px; - - border-radius: 50%; - border-top-left-radius: 12px; - border-top-right-radius: 12px; - background: #fff; - box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); -} - -.satus-shortcut__value>.satus-shortcut__mouse { - width: 22px; - height: 28px; -} - -.satus-shortcut__mouse>div { - position: absolute; - top: 0; - left: calc(50% - 1px); - - width: 2px; - height: 11px; - - border-radius: 2px; - background: #ccc; -} - -.satus-shortcut__mouse::before { - position: absolute; - top: -16%; - right: 14%; - - width: 2px; - height: 60%; - - content: ''; - - background: #f96754; -} - -.satus-shortcut__mouse.false::before { - top: -6%; -} - -.satus-shortcut__mouse.false::after { - position: absolute; - top: -20%; - right: calc(14% - 4px); - - width: 0; - height: 0; - - content: ''; - - border-right: 5px solid transparent; - border-bottom: 8px solid #f96754; - border-left: 5px solid transparent; -} - -.satus-shortcut__mouse.true::after { - position: absolute; - top: 40%; - right: calc(14% - 4px); - - width: 0; - height: 0; - - content: ''; - - border-top: 8px solid #f96754; - border-right: 5px solid transparent; - border-left: 5px solid transparent; -} - -.satus-shortcut__mouse.click::before { - position: absolute; - top: 0; - left: -1px; - - width: 10px; - height: 10px; - - content: ''; - - border-radius: 50%; - background: #f96754; -} - -.satus-shortcut__mouse.middle::before { - position: absolute; - z-index: 1; - top: 0; - left: 50%; - - width: 10px; - height: 10px; - - content: ''; - transform: translateX(-50%); - - border-radius: 50%; - background: #f96754; -} - -.satus-shortcut__mouse.context::before { - position: absolute; - top: 0; - left: 15px; - - width: 10px; - height: 10px; - - content: ''; - - border-radius: 50%; - background: #f96754; -} - -.satus-section_shortcut { - width: 100%; - margin: 8px 0 0; - - justify-content: flex-end; -} - -.satus-button_shortcut { - font-weight: 500; - - overflow: hidden; - - height: 28px; - min-height: 28px; - margin-right: 2px; - padding: 4px 8px; - - text-transform: uppercase; - - color: #f96754; - border-radius: 4px; -} -/*-------------------------------------------------------------- ->>> CHECKBOX ---------------------------------------------------------------*/ - -.satus-checkbox { - position: relative; - - display: flex; - - cursor: pointer; - - align-items: center; -} - -.satus-checkbox__input { - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - margin: 0; - padding: 0; - - opacity: 0; - border: none; - - appearance: none; -} - -.satus-checkbox__checkmark { - position: relative; - - display: flex; - - width: 16px; - min-width: 16px; - height: 16px; - min-height: 16px; - margin: 0 12px 0 0; - - content: ''; - - border: 1px solid var(--satus-checkbox-border); - border-radius: 3px; - background: var(--satus-checkbox-background); -} - -.satus-checkbox[data-value=true] .satus-checkbox__checkmark { - border-color: var(--satus-primary); - background: var(--satus-primary); -} - -.satus-checkbox[data-value=true] .satus-checkbox__checkmark::before { - position: absolute; - top: 3px; - left: 2px; - - width: 8px; - height: 4px; - - content: ''; - transform: rotate(-45deg); - - border: 2px solid var(--satus-checkbox-foreground); - border-top: none; - border-right: none; -} -/*-------------------------------------------------------------- ->>> SWITCH ----------------------------------------------------------------- -# Container -# Track -# Thumb ---------------------------------------------------------------*/ - - -/*-------------------------------------------------------------- -# CONTAINER ---------------------------------------------------------------*/ - -.satus-switch { - font: inherit; - - display: flex; - - transition: background-color 75ms; - - color: inherit; - border: none; - outline: none; - background-color: transparent; - - justify-content: space-between; - align-items: center; -} - -.satus-switch:hover { - cursor: pointer; -} - -.satus-switch__content { - display: flex; - - align-items: center; -} - -.satus-switch__content>svg { - width: 20px; - height: 18px; - margin: 0 14px 0 0; - - opacity: .64; -} - - -/*-------------------------------------------------------------- -# TRACK ---------------------------------------------------------------*/ - -.satus-switch>i { - width: 32px; - height: 18px; - - transition: background-color 150ms; - - border-radius: 18px; - background-color: var(--satus-switch-track); - - flex: 0 0 32px; -} - -.satus-section--card .satus-switch>i { - margin-left: 16px; -} - -.satus-switch[data-value='true']>i { - background-color: var(--satus-switch-track--checked); -} - - -/*-------------------------------------------------------------- -# THUMB ---------------------------------------------------------------*/ - -.satus-switch>i::before { - display: block; - - width: 14px; - height: 14px; - margin: 2px; - - content: ''; - transition: transform 150ms cubic-bezier(.4, 0, .2, 1); - - border-radius: 50%; - background-color: var(--satus-switch-thumb); - - will-change: transform; -} - -.satus-switch[data-value='true']>i::before { - transform: translateX(14px); -} -/*-------------------------------------------------------------- ->>> CONTEXT MENU ---------------------------------------------------------------*/ - -.satus-modal--contextmenu .satus-modal__scrim { - visibility: visible; - - transform: none; - animation: none; - - opacity: 1; - background: none; - - backdrop-filter: none; -} - -.satus-modal--contextmenu .satus-modal__surface { - position: absolute; - - visibility: visible; - - min-width: 200px; - max-width: 200px; - margin: 0; - padding: 4px 0; - - transform: none; - animation: none; - - opacity: 1; - border-radius: 4px; - box-shadow: 0 0 0 1px rgba(var(--satus-light), .1); -} - -.satus-modal--contextmenu .satus-modal__surface>* { - display: flex; - - height: 32px; - padding: 0 16px; - - align-items: center; -} - -.satus-modal--contextmenu .satus-modal__surface .satus-button svg { - width: 20px; - height: 18px; - margin: 0 14px 0 0; - - opacity: .75; - - fill: none; - stroke: var(--satus-primary); - flex: 0 0 20px; -} - -.satus-modal--contextmenu .satus-modal__surface .satus-button .satus-span { - overflow: hidden; - - white-space: nowrap; - text-overflow: ellipsis; -} -/*-------------------------------------------------------------- ->>> SORTABLE ---------------------------------------------------------------*/ - -.satus-sortable__chosen { - color: var(--satus-sortable-text) !important; - background-color: var(--satus-sortable-background) !important; -} - -.satus-sortable__ghost { - position: fixed !important; - z-index: 999 !important; - top: 0 !important; - left: 0 !important; - - pointer-events: none !important; - - opacity: .8 !important; - box-shadow: 0 1px 3px rgb(0, 0, 0, .2), 0 4px 8px rgb(0, 0, 0, .1), inset 0 0 0 1px rgb(0, 0, 0, .16) !important; - - will-change: transform !important; -} +:where([class^='satus'])::-webkit-scrollbar{width:4px}:where([class^='satus'])::-webkit-scrollbar:hover{width:8px}:where([class^='satus'])::-webkit-scrollbar-thumb{background:rgba(var(--satus-light),.2)}:where([class^='satus'])::-webkit-scrollbar-thumb:hover{background:rgba(var(--satus-light),.3)}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeInLeft{from{opacity:0;transform:translateX(-100%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOutLeft{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-50%)}}@keyframes fadeOutRight{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(50%)}}@keyframes zoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes zoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-base{--satus-light:0,20,82;--satus-primary:#ff4158;--satus-alert-background--error:#501616;--satus-alert-border--error:1px solid #6f1f1f;--satus-alert-foreground--error:#d77070;--satus-alert-background--success:rgb(246,180,101,.32);--satus-alert-border--success:1px solid rgb(246,180,101,.6);--satus-alert-foreground--success:rgb(184,115,30);--satus-base-background:#f3f4f6;--satus-base-foreground:#565e76;--satus-checkbox-background:#f3f4f6;--satus-checkbox-border:#dcdfe5;--satus-checkbox-foreground:rgb(255,255,255,.96);--satus-divider:rgba(var(--satus-light),.1);--satus-header-background:#fff;--satus-header-foreground:inherit;--satus-header-shadow:0 1px 0 #dcdee5;--satus-layers-background:var(--satus-base-background);--satus-layers-foreground:inherit;--satus-section-background:#fff;--satus-section-border:#dcdee5;--satus-section-foreground:inherit;--satus-sidebar-background:#fff;--satus-sidebar-foreground:inherit;--satus-sidebar-shadow:#dcdee5;--satus-modal-foreground:inherit;--satus-modal-background:#fff;--satus-modal-shadow:0 1px 4px #7d86a1;--satus-tabs-background:rgba(var(--satus-light),.04);--satus-tabs-foreground:#fff;--satus-text-field-background:#edf0f2;--satus-text-field-border:#dcdee5;--satus-text-field-color:#7d8ba1;--satus-text-field-selection:rgb(149,166,178,.35);--satus-text-field-cursor:#fa0;--satus-switch-track:#e1e4ea;--satus-switch-track--checked:var(--satus-primary);--satus-switch-thumb:#fff;--satus-input-text-background:#e8e8e3;--satus-input-text-border:#d6d6cd;--satus-input-text-text:#848471}.satus-base[theme=dark]{--satus-light:255,255,255;--satus-primary:#3691bf;--satus-alert-background--error:#501616;--satus-alert-border--error:1px solid #6f1f1f;--satus-alert-foreground--error:#d77070;--satus-alert-background--success:#143648;--satus-alert-border--success:1px solid #1d4f67;--satus-alert-foreground--success:#50a4ce;--satus-base-background:#151528;--satus-base-foreground:#fafafa;--satus-header-background:#313172;--satus-header-shadow:transparent;--satus-section-background:#232343;--satus-section-border:#232343;--satus-modal-background:#313172;--satus-modal-shadow:0 1px 4px #22222f;--satus-switch-track:#52527a}:where([class^='satus']){box-sizing:border-box}:where([class^='satus'])[hidden]:not([hidden='false']){display:none}:where([class^='satus'])[transparent]{opacity:0}.satus-modal{position:fixed;z-index:9;top:0;left:0;display:flex;width:100vw;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:fadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.16);backdrop-filter:blur(8px)}.satus-modal--closing .satus-modal__scrim{animation:fadeOut 70ms linear forwards}.satus-modal__surface{display:flex;overflow-y:auto;flex-direction:column;box-sizing:border-box;width:95%;min-width:240px;max-width:560px;max-height:80%;margin:8px;padding:12px 16px;transform:scale(.8);animation:zoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-foreground);border-radius:3px;background-color:var(--satus-modal-background);box-shadow:var(--satus-modal-shadow)}.satus-modal--closing .satus-modal__surface{animation:zoomOut 70ms linear forwards}.satus-modal__content{margin:6px 0 12px}.satus-section--actions{justify-content:flex-end}.satus-section--actions > :not(:first-child){margin-left:8px}.satus-modal--vertical-menu .satus-modal__surface{position:absolute;top:8px;right:8px;left:auto;min-width:180px;max-width:180px;margin:0;padding:8px 0;transform-origin:right top}.satus-modal--vertical-menu .satus-modal__surface>[class^='satus']:where(:not(.satus-divider)){height:36px;padding:0 16px;border-radius:0}.satus-modal--vertical-menu .satus-modal__surface>.satus-span{font-size:13px;font-weight:500;margin:6px 0;padding:0 12px;height:auto}.satus-modal--vertical-menu .satus-modal__surface>.satus-tabs{margin:0 12px;border-radius:3px;height:26px;padding:0}.satus-modal--vertical-menu .satus-select svg,.satus-modal--vertical-menu .satus-button svg{margin:0 14px 0 0;opacity:.64;flex:0 0 18px}.satus-modal--vertical-menu .satus-button .satus-span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.satus-modal--vertical-menu .satus-switch:hover{cursor:pointer;background-color:rgba(var(--satus-light),.06)}.satus-modal--vertical-menu .satus-switch:focus{background-color:rgba(var(--satus-light),.08)}.satus-grid{display:flex;align-items:stretch;height:100%;padding:8px}.satus-text-field{display:flex;min-width:240px;height:36px;color:var(--satus-text-field-foreground,inherit);border:1px solid var(--satus-text-field-border);border-radius:4px;background:var(--satus-text-field-background);align-items:center;justify-content:space-between}.satus-text-field__container{position:relative;overflow:hidden;height:100%;flex:1}.satus-text-field[line-numbers=false] .satus-text-field__container{margin-left:8px}.satus-text-field__textarea,.satus-text-field__input{font:inherit;position:absolute;z-index:9;top:0;left:0;overflow:auto;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0 12px;white-space:pre;opacity:0;color:inherit;border:none;border-radius:4px;outline:none;appearance:none;overflow-wrap:normal}.satus-text-field__display{position:absolute;top:0;left:0;display:flex;width:100%;height:100%}.satus-text-field__line-numbers{padding:0 12px 0 0;opacity:.5}.satus-text-field__line-numbers>span{font-size:inherit;display:block;width:100%;text-align:right}.satus-text-field__pre{font:inherit;display:flex;margin:0}.satus-text-field__hidden-value{font:inherit;position:absolute;overflow:auto;white-space:pre;pointer-events:none;opacity:0;overflow-wrap:normal}.satus-text-field__selection{position:absolute;top:0;left:0;display:none;width:0;height:22px;margin:6px 12px;border:1px solid var(--satus-text-field-selection);border-radius:3px;background:var(--satus-text-field-selection)}.satus-text-field__cursor{position:absolute;top:0;left:0;display:none;width:2px;height:22px;margin:-3px 0 0;animation:blink 1s step-end 8;background:var(--satus-text-field-cursor)}.satus-text-field__textarea:focus+.satus-text-field__display>.satus-text-field__cursor,.satus-text-field__textarea:focus+.satus-text-field__display>.satus-text-field__selection:not([disabled]),.satus-text-field__input:focus+.satus-text-field__display>.satus-text-field__cursor,.satus-text-field__input:focus+.satus-text-field__display>.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field[multiline=false] .satus-text-field__pre{align-items:center}.satus-text-field[multiline=false] .satus-text-field__cursor{top:calc(50% - 9px)}.satus-text-field__pre>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__pre>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__pre>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__pre>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__pre>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__pre>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-chart{font-size:90%;position:relative;height:128px;margin:4px 12px;color:rgba(var(--satus-light),.32);border:1px dashed rgba(var(--satus-light),.2);border-top:unset;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.satus-chart__labels{position:absolute;top:0;left:0;display:flex;width:100%;height:100%;justify-content:space-between;align-items:stretch}.satus-chart__section{padding:4px;flex:1}.satus-chart__section:not(:last-child){border-right:1px dashed rgba(var(--satus-light),.2)}.satus-chart__bars{position:absolute;top:0;left:0;display:flex;width:100%;height:100%;justify-content:space-between;align-items:stretch}.satus-chart__bar{display:flex;flex-direction:column;margin:0 1px;flex:1;align-items:center;justify-content:flex-end}.satus-chart__piece{width:100%}.satus-chart__piece:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.satus-select{position:relative;display:flex;cursor:pointer;align-items:center;justify-content:space-between}.satus-select:hover{background-color:var(--satus-hover)}.satus-select__content{display:flex;flex:2;overflow:hidden;align-items:center}.satus-select svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.64}.satus-select__content .satus-span{overflow:hidden;text-overflow:ellipsis}.satus-select__value{display:block;overflow:hidden;flex:1;margin-left:8px;text-align:right;text-overflow:ellipsis;opacity:.64}.satus-select select{font:inherit;position:absolute;z-index:1;top:0;left:0;width:100%;height:100%;margin:0;padding:inherit;cursor:inherit;opacity:0;border:none;outline:none;appearance:none}.satus-select:hover{cursor:pointer;background-color:rgba(var(--satus-light),.06)}.satus-select:focus{background-color:rgba(var(--satus-light),.08)}.satus-select select::-webkit-scrollbar{width:4px}.satus-select select::-webkit-scrollbar:hover{width:8px}.satus-select select::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2)}.satus-select select::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.3)}.satus-select option{color:var(--satus-select-text);background:var(--satus-select-background)}.satus-divider{height:1px;margin:16px 0 12px;background:var(--satus-divider)}.satus-section{display:flex;flex-wrap:wrap}.satus-section--align-start{align-items:center}.satus-section--align-start>:not(:last-child){margin-right:8px}.satus-section--align-end{align-items:center;justify-content:flex-end}.satus-section--align-end>:not(:first-child){margin-left:8px}.satus-section--card{flex-direction:column;max-width:900px;margin:12px;padding:8px 0;border:1px solid var(--satus-section-border);border-radius:3px;background:var(--satus-section-background);color:var(--satus-section-foreground)}.satus-section--transparent-card{max-width:900px;margin:8px 12px}.satus-section--card[data-title],.satus-section--transparent-card[data-title]{position:relative;margin-top:32px}.satus-section--card[data-title]::before,.satus-section--transparent-card::before{position:absolute;top:-8px;left:0;content:attr(data-title);transform:translateY(-100%)}.satus-section--transparent-card > [class^='satus']{width:100%}.satus-section--card>[class^='satus']:not(.satus-list):not(.satus-section){display:flex;min-height:48px;padding:8px 12px;transition:background-color .18s cubic-bezier(.25,.8,.5,1);text-align:left;border-radius:0;align-items:center}.satus-section--card>[class^='satus']:not(.satus-list):not(.satus-section):not(.satus-chart){width:100%}.satus-section--card>[class^='satus']:not(.satus-chart):not(.satus-list):not(.satus-span):hover{background-color:rgba(var(--satus-light),.06)}.satus-section--card>.satus-button{justify-content:flex-start}.satus-section--card>.satus-button>svg,.satus-section--card>.satus-select>svg{width:20px;margin:0 14px 0 0;color:var(--satus-primary)}.satus-section--card>.satus-span{display:flex;align-items:center}.satus-section--transparent{background:unset;border:unset;padding:0;border-radius:unset}@media (min-width: 901px){.satus-section--card,.satus-section--transparent-card{margin-left:auto;margin-right:auto}}.satus-base{display:flex;flex-direction:column;width:100%;height:100%;color:var(--satus-base-foreground);background:var(--satus-base-background)}.satus-alert{display:flex;max-width:900px;min-height:48px;margin:12px;padding:8px 12px;border-radius:3px;align-items:center}.satus-alert--error{color:var(--satus-alert-foreground--error);border:var(--satus-alert-border--error);background:var(--satus-alert-background--error)}.satus-alert--success{color:var(--satus-alert-foreground--success);border:var(--satus-alert-border--success);background:var(--satus-alert-background--success)}@media (min-width: 901px){.satus-alert{margin-right:auto;margin-left:auto}}.satus-input[type=text],.satus-input[type=password]{font:inherit;font-size:16px;box-sizing:border-box;width:100%;height:26px;margin:0;margin:8px 0;padding:0 8px;color:var(--satus-input-text-foreground,inherit);border:none;border:1px solid var(--satus-input-text-border);border-radius:4px;outline:none;background:none;background-color:var(--satus-input-text-background);appearance:none}.satus-input--error[type=text],.satus-input--error[type=password]{outline:2px solid rgba(255,0,0,.32)}.satus-main{display:flex;flex:1}.satus-sidebar{z-index:1;display:flex;flex-direction:column;width:56px;padding:12px 0;color:var(--satus-sidebar-foreground);background:var(--satus-sidebar-background);box-shadow:1px 0 0 var(--satus-sidebar-shadow)}.satus-layers{position:relative;overflow:hidden;flex:1}.satus-layers__layer{position:absolute;top:0;left:0;overflow:auto;width:100%;height:100%;color:var(--satus-layers-foreground);background:var(--satus-layers-background)}.satus-list{margin:0;list-style:none}.satus-list__item{display:flex;min-height:48px;padding:0 16px;align-items:center;justify-content:space-between}.satus-list__item>:not(:first-child){margin-left:8px}.satus-list__item>:last-child{font-size:92%;text-align:right;opacity:.64}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:none;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:22px;height:22px;border:2px solid rgba(0,0,0,.16);border-radius:50%}.satus-modal--color-picker .satus-modal__surface{padding:8px}.satus-color-picker__palette{position:relative;overflow:hidden;width:100%;height:256px;margin:0 0 4px;border-radius:5px;background-color:#f00}.satus-color-picker__palette:before{position:absolute;top:0;left:0;width:100%;height:100%;content:'';background-image:linear-gradient(0deg,black,transparent),linear-gradient(90deg,white,transparent)}.satus-color-picker__cursor{position:absolute;width:5px;height:5px;transform:translate(-50%,-50%);pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000}.satus-modal--color-picker .satus-modal__surface .satus-section--color{margin:8px 4px;align-items:center}.satus-color-picker__color{width:32px;height:32px;margin:0 16px 0 0;border:2px solid rgba(0,0,0,.16);border-radius:50%;background:#f00}.satus-slider.satus-color-picker__hue{padding:0;flex:1}.satus-color-picker__hue .satus-slider__track-container{height:16px;margin:0;border-radius:4px;background-image:linear-gradient(90deg,#f00,#ff2a00,#f50,#ff7f00,#fa0,#ffd400,#ff0,#d4ff00,#af0,#80ff00,#5f0,#2bff00,#0f0,#00ff2b,#0f5,#00ff80,#0fa,#00ffd5,#0ff,#00d4ff,#0af,#007fff,#05f,#002bff,#00f,#2a00ff,#50f,#7f00ff,#a0f,#d400ff,#f0f,#ff00d4,#f0a,#ff0080,#f05,#ff002b,#f00)}.satus-color-picker__hue .satus-slider__track-container::before{display:none}.satus-color-picker__hue .satus-slider__track{background:transparent}.satus-color-picker__hue .satus-slider__track::after{width:16px;height:16px;background:#fff;box-shadow:0 0 4px rgb(0,0,0,.64)}.satus-span--title{font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1}.satus-button{font:inherit;position:relative;display:inline-flex;overflow:hidden;height:36px;padding:8px;transition:background-color .3s cubic-bezier(.25,.8,.5,1);color:inherit;border:none;border-radius:6px;outline:none;background:transparent;appearance:none;align-items:center}.satus-button:hover{cursor:pointer;background-color:rgba(var(--satus-light),.06)}.satus-button:focus{background-color:rgba(var(--satus-light),.08)}.satus-button svg{width:100%;max-width:24px;height:100%;max-height:24px}.satus-button--icon{width:40px;height:40px;border-radius:50%}.satus-button--icon svg{width:24px;height:24px}.satus-header{z-index:1;display:flex;height:56px;padding:0 12px;color:var(--satus-header-foreground);background:var(--satus-header-background);box-shadow:var(--satus-header-shadow);justify-content:space-between;align-items:center}.satus-radio{position:relative;display:flex}.satus-radio__input{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;margin:0;z-index:9}.satus-radio__content{flex:1;padding:0 12px}.satus-radio__i{width:16px;height:16px;border:1px solid rgba(var(--satus-light),.64);border-radius:50%;transition:200ms}.satus-radio__input + .satus-radio__i::before{width:8px;height:8px;margin:3px;border-radius:50%;background:var(--satus-primary);content:'';display:block;transform:scale(0);transition:200ms}.satus-radio__input:checked + .satus-radio__i{border-color:var(--satus-primary)}.satus-radio__input:checked + .satus-radio__i::before{background:var(--satus-primary);transform:scale(1)}.satus-slider{display:flex;flex-wrap:wrap}.satus-slider__content{width:100%;display:flex;justify-content:space-between}.satus-slider__input[type='text']{appearance:none;background:transparent;border:none;color:inherit;font:inherit;padding:0;margin:0;outline:none;width:64px;text-align:right}.satus-slider__track-container{position:relative;width:100%;height:20px;margin:10px 0 -2px}.satus-slider__track-container::before{position:absolute;top:calc(50% - 1px);left:0;width:100%;height:2px;content:'';opacity:.24;background:var(--satus-primary)}.satus-slider__input[type='range']{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;opacity:0}.satus-slider__track{position:absolute;top:calc(50% - 1px);left:0;width:0;height:2px;background:var(--satus-primary);pointer-events:none}.satus-slider__track::before{position:absolute;top:50%;right:0;transform:translate(50%,-50%);display:block;width:16px;height:16px;content:'';transition:width 200ms,height 200ms,opacity 200ms;opacity:0;border-radius:50%;background:var(--satus-primary)}.satus-slider__input:focus + .satus-slider__track::before{width:24px;height:24px;opacity:.16}.satus-slider__input:active + .satus-slider__track::before{width:26px;height:26px;opacity:.16}.satus-slider__track::after{position:absolute;top:50%;right:0;transform:translate(50%,-50%);width:10px;height:10px;content:'';border-radius:50%;background:var(--satus-primary);pointer-events:none;transition:width 200ms,height 200ms,opacity 200ms}.satus-slider__input:active + .satus-slider__track::after{width:12px;height:12px}.satus-slider--row{flex-wrap:nowrap;justify-content:space-between}.satus-slider--row .satus-slider__track-container{margin:0 0 -2px 12px;max-width:50%}.satus-tabs{position:relative;display:flex;border:2px solid var(--satus-tabs-background);border-radius:4px;background:var(--satus-tabs-background)}.satus-tabs::before{position:absolute;top:0;left:calc(calc(100% / var(--satus-tabs-count)) * var(--satus-tabs-current));width:calc(100% / var(--satus-tabs-count));height:100%;content:'';transition:left .25s;border-radius:3px;background:var(--satus-tabs-foreground)}.satus-tabs__button{font:inherit;position:relative;z-index:1;overflow:hidden;margin:0;padding:0 8px;text-overflow:ellipsis;color:inherit;border:none;border-radius:3px;outline:none;background:transparent;flex:1;appearance:none}.satus-shortcut__value{font-size:11px;display:flex;margin-left:16px;text-transform:uppercase;align-items:center;flex:1;justify-content:flex-end}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;margin:8px 4px 0;border-radius:8px;background:rgba(0,0,0,.15)}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;height:64px;margin:0 0 12px;padding:16px;border-radius:3px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__value>.satus-shortcut__key{font-size:12px;min-width:24px;height:24px}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__value>.satus-shortcut__mouse{width:22px;height:28px}.satus-shortcut__mouse>div{position:absolute;top:0;left:calc(50% - 1px);width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-16%;right:14%;width:2px;height:60%;content:'';background:#f96754}.satus-shortcut__mouse.false::before{top:-6%}.satus-shortcut__mouse.false::after{position:absolute;top:-20%;right:calc(14% - 4px);width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:40%;right:calc(14% - 4px);width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-shortcut__mouse.click::before{position:absolute;top:0;left:-1px;width:10px;height:10px;content:'';border-radius:50%;background:#f96754}.satus-shortcut__mouse.middle::before{position:absolute;z-index:1;top:0;left:50%;width:10px;height:10px;content:'';transform:translateX(-50%);border-radius:50%;background:#f96754}.satus-shortcut__mouse.context::before{position:absolute;top:0;left:15px;width:10px;height:10px;content:'';border-radius:50%;background:#f96754}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-checkbox{position:relative;display:flex;cursor:pointer;align-items:center}.satus-checkbox__input{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;opacity:0;border:none;appearance:none}.satus-checkbox__checkmark{position:relative;display:flex;width:16px;min-width:16px;height:16px;min-height:16px;margin:0 12px 0 0;content:'';border:1px solid var(--satus-checkbox-border);border-radius:3px;background:var(--satus-checkbox-background)}.satus-checkbox[data-value=true] .satus-checkbox__checkmark{border-color:var(--satus-primary);background:var(--satus-primary)}.satus-checkbox[data-value=true] .satus-checkbox__checkmark::before{position:absolute;top:3px;left:2px;width:8px;height:4px;content:'';transform:rotate(-45deg);border:2px solid var(--satus-checkbox-foreground);border-top:none;border-right:none}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:none;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer}.satus-switch__content{display:flex;align-items:center}.satus-switch__content>svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.64}.satus-switch>i{width:32px;height:18px;transition:background-color 150ms;border-radius:18px;background-color:var(--satus-switch-track);flex:0 0 32px}.satus-section--card .satus-switch>i{margin-left:16px}.satus-switch[data-value='true']>i{background-color:var(--satus-switch-track--checked)}.satus-switch>i::before{display:block;width:14px;height:14px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:var(--satus-switch-thumb);will-change:transform}.satus-switch[data-value='true']>i::before{transform:translateX(14px)}.satus-modal--contextmenu .satus-modal__scrim{visibility:visible;transform:none;animation:none;opacity:1;background:none;backdrop-filter:none}.satus-modal--contextmenu .satus-modal__surface{position:absolute;visibility:visible;min-width:200px;max-width:200px;margin:0;padding:4px 0;transform:none;animation:none;opacity:1;border-radius:4px;box-shadow:0 0 0 1px rgba(var(--satus-light),.1)}.satus-modal--contextmenu .satus-modal__surface>*{display:flex;height:32px;padding:0 16px;align-items:center}.satus-modal--contextmenu .satus-modal__surface .satus-button svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75;fill:none;stroke:var(--satus-primary);flex:0 0 20px}.satus-modal--contextmenu .satus-modal__surface .satus-button .satus-span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.satus-sortable__chosen{color:var(--satus-sortable-text)!important;background-color:var(--satus-sortable-background)!important}.satus-sortable__ghost{position:fixed!important;z-index:999!important;top:0!important;left:0!important;pointer-events:none!important;opacity:.8!important;box-shadow:0 1px 3px rgb(0,0,0,.2),0 4px 8px rgb(0,0,0,.1),inset 0 0 0 1px rgb(0,0,0,.16)!important;will-change:transform!important} \ No newline at end of file diff --git a/assets/satus/satus.js b/assets/satus/satus.js index 5d2f2a12d..2f81c762d 100644 --- a/assets/satus/satus.js +++ b/assets/satus/satus.js @@ -1,3371 +1 @@ -/*-------------------------------------------------------------- ->>> CORE ----------------------------------------------------------------- -# Global variable -# Animations duration -# Append -# Attr -# Camelize -# Snakelize -# Class -# Create element -# CSS -# Empty -# Element index -# Events -# Get property -# Is -# On -# Render -# Sort -# Storage - # Clear - # Get - # Import - # Set - # Remove - # On changed -# Localization -# Log -# Text ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# GLOBAL VARIABLE ---------------------------------------------------------------*/ - -var satus = { - components: {}, - events: { - data: {} - }, - locale: { - data: {} - }, - storage: { - data: {}, - type: 'extension' - } -}; - - -/*-------------------------------------------------------------- -# ANIMATION DURATION ---------------------------------------------------------------*/ - -satus.getAnimationDuration = function (element) { - return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; -}; - - -/*-------------------------------------------------------------- -# APPEND ---------------------------------------------------------------*/ - -satus.append = function (child, parent) { - (parent || document.body).appendChild(child); -}; - - -/*-------------------------------------------------------------- -# ATTR ---------------------------------------------------------------*/ - -satus.attr = function (element, attributes) { - if (attributes) { - for (var name in attributes) { - var value = attributes[name]; - - if (satus.isFunction(value)) { - value = value(); - } - - if (element.namespaceURI) { - if (value === false) { - element.removeAttributeNS(null, name); - } else { - element.setAttributeNS(null, name, value); - } - } else { - if (value === false) { - element.removeAttribute(name); - } else { - element.setAttribute(name, value); - } - } - } - } -}; - - -/*-------------------------------------------------------------- -# CAMELIZE ---------------------------------------------------------------*/ - -satus.camelize = function (string) { - var result = ''; - - for (var i = 0, l = string.length; i < l; i++) { - var character = string[i]; - - if (character === '_' || character === '-') { - i++; - - result += string[i].toUpperCase(); - } else { - result += character; - } - } - - return result; -}; - - -/*-------------------------------------------------------------- -# SNAKELIZE ---------------------------------------------------------------*/ - -satus.snakelize = function (string) { - return string.replace(/([A-Z])/g, '-$1').toLowerCase(); -}; - - -/*-------------------------------------------------------------- -# CLASS ---------------------------------------------------------------*/ - -satus.class = function (element, className) { - if (className) { - element.classList.add(className); - } -}; - - -/*-------------------------------------------------------------- -# CLONE ---------------------------------------------------------------*/ - -satus.clone = function (item) { - var clone = item.cloneNode(true), - parent_css = window.getComputedStyle(item.parentNode), - css = window.getComputedStyle(item), - style = ''; - - for (var i = 0, l = css.length; i < l; i++) { - var property = css[i], - value = css.getPropertyValue(property); - - if (property === 'background-color') { - value = parent_css.getPropertyValue('background-color'); - } - - if (['box-shadow', 'left', 'top', 'bottom', 'right', 'opacity'].indexOf(property) === -1) { - style += property + ':' + value + ';'; - } - } - - - clone.setAttribute('style', style); - - return clone; -}; - - -/*-------------------------------------------------------------- -# CREATE ELEMENT ---------------------------------------------------------------*/ - -satus.createElement = function (tagName, componentName, namespaceURI) { - var camelizedTagName = this.camelize(tagName), - className = 'satus-' + (componentName || tagName), - element, - match = className.match(/__[^__]+/g); - - if (!namespaceURI) { - if (tagName === 'svg') { - namespaceURI = 'http://www.w3.org/2000/svg'; - } - } - - if (namespaceURI) { - element = document.createElementNS(namespaceURI, tagName); - } else if (this.components[camelizedTagName]) { - element = document.createElement('div'); - } else { - element = document.createElement(tagName); - } - - if (match && match.length > 1) { - className = className.slice(0, className.indexOf('__')) + match[match.length - 1]; - } - - element.componentName = componentName; - element.className = className; - - element.createChildElement = function (tagName, componentName, namespaceURI) { - var element = satus.createElement(tagName, this.componentName + '__' + (componentName || tagName), namespaceURI); - - if (this.baseProvider) { - element.baseProvider = this.baseProvider; - } - - if (this.layersProvider) { - element.layersProvider = this.layersProvider; - } - - this.appendChild(element); - - return element; - }; - - return element; -}; - - -/*-------------------------------------------------------------- -# CSS ---------------------------------------------------------------*/ - -satus.css = function (element, property) { - return window.getComputedStyle(element).getPropertyValue(property); -}; - - -/*-------------------------------------------------------------- -# CRYPT ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# DECRYPTION ---------------------------------------------------------------*/ - -satus.decrypt = async function (text, password) { - var iv = text.slice(0, 24).match(/.{2}/g).map(byte => parseInt(byte, 16)), - algorithm = { - name: 'AES-GCM', - iv: new Uint8Array(iv) - }; - - try { - var data = new TextDecoder().decode(await crypto.subtle.decrypt( - algorithm, - await crypto.subtle.importKey( - 'raw', - await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)), - algorithm, - false, ['decrypt'] - ), - new Uint8Array(atob(text.slice(24)).match(/[\s\S]/g).map(ch => ch.charCodeAt(0))) - )); - } catch (err) { - return false; - } - - return data; -}; - - -/*-------------------------------------------------------------- -# ENCRYPTION ---------------------------------------------------------------*/ - -satus.encrypt = async function (text, password) { - var iv = crypto.getRandomValues(new Uint8Array(12)), - algorithm = { - name: 'AES-GCM', - iv: iv - }; - - return Array.from(iv).map(b => ('00' + b.toString(16)).slice(-2)).join('') + btoa(Array.from(new Uint8Array(await crypto.subtle.encrypt( - algorithm, - await crypto.subtle.importKey('raw', await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)), algorithm, false, ['encrypt']), - new TextEncoder().encode(text) - ))).map(byte => String.fromCharCode(byte)).join('')); -}; - - -/*-------------------------------------------------------------- -# DATA ---------------------------------------------------------------*/ - -satus.data = function (element, data) { - if (data) { - for (var key in data) { - var value = data[key]; - - if (satus.isFunction(value)) { - value = value(); - } - - element.dataset[key] = value; - } - } -}; - - -/*-------------------------------------------------------------- -# EMPTY ---------------------------------------------------------------*/ - -satus.empty = function (element, exclude = []) { - for (var i = element.childNodes.length - 1; i > -1; i--) { - var child = element.childNodes[i]; - - if (exclude.indexOf(child) === -1) { - child.remove(); - } - } -}; - - -/*-------------------------------------------------------------- -# ELEMENT INDEX ---------------------------------------------------------------*/ - -satus.elementIndex = function (element) { - return Array.prototype.slice.call(element.parentNode.children).indexOf(element); -}; - - -/*-------------------------------------------------------------- -# EVENTS ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# ON ---------------------------------------------------------------*/ - -satus.events.on = function (type, handler) { - if (!this.data[type]) { - this.data[type] = []; - } - - this.data[type].push(handler); -}; - - -/*-------------------------------------------------------------- -# TRIGGER ---------------------------------------------------------------*/ - -satus.events.trigger = function (type, data) { - var handlers = this.data[type]; - - if (handlers) { - for (var i = 0, l = handlers.length; i < l; i++) { - handlers[i](data); - } - } -}; - - -/*-------------------------------------------------------------- -# FETCH ---------------------------------------------------------------*/ - -satus.fetch = function (url, success, error, type) { - fetch(url).then(function (response) { - if (response.ok) { - response[type || 'json']().then(success); - } else { - error(); - } - }).catch(function () { - error(success); - }); -}; - - -/*-------------------------------------------------------------- -# GET PROPERTY ---------------------------------------------------------------*/ - -satus.getProperty = function (object, string) { - var properties = string.split('.'); - - for (var i = 0, l = properties.length; i < l; i++) { - var property = properties[i]; - - console.log(object); - - if (object = object[property]) { - if (i === l - 1) { - return object; - } - } else { - return false; - } - } -}; - - -/*-------------------------------------------------------------- -# INDEX OF ---------------------------------------------------------------*/ - -satus.indexOf = function (child, parent) { - var index = 0; - - if (satus.isArray(parent)) { - index = parent.indexOf(child); - } else { - while ((child = child.previousElementSibling)) { - index++; - } - } - - return index; -}; - - -/*-------------------------------------------------------------- -# TO INDEX ---------------------------------------------------------------*/ - -satus.toIndex = function (index, child, parent) { - if (satus.isArray(parent)) { - parent.splice(index, 0, parent.splice(satus.indexOf(child, parent), 1)[0]) - } -}; - - -/*-------------------------------------------------------------- -# ISSET ---------------------------------------------------------------*/ - -satus.isset = function (target, is_object) { - if (is_object === true) { - var keys = target.split('.').filter(function (value) { - return value != ''; - }); - - for (var i = 0, l = keys.length; i < l; i++) { - if (satus.isset(target[keys[i]])) { - target = target[keys[i]]; - } else { - return undefined; - } - } - - return target; - } else { - if (target === null || target === undefined) { - return false; - } - } - - return true; -}; - - -/*-------------------------------------------------------------- -# IS ---------------------------------------------------------------*/ - -satus.isArray = function (target) { - if (Array.isArray(target)) { - return true; - } else { - return false; - } -}; - -satus.isBoolean = function (target) { - return target === false || target === true; -}; - -satus.isElement = function (target) { - return target instanceof Element || target instanceof HTMLDocument; -}; - -satus.isFunction = function (target) { - return typeof target === 'function'; -}; - -satus.isNodeList = function (target) { - return target instanceof NodeList; -}; - -satus.isNumber = function (target) { - if (typeof target === 'number' && isNaN(target) === false) { - return true; - } else { - return false; - } -}; - -satus.isObject = function (target) { - return target instanceof Object && target !== null; -}; - -satus.isString = function (target) { - if (typeof target === 'string') { - return true; - } else { - return false; - } -}; - - -/*-------------------------------------------------------------- -# ON ---------------------------------------------------------------*/ - -satus.on = function (element, listeners) { - if (listeners) { - for (var type in listeners) { - var listener = listeners[type]; - - if (type === 'selectionchange') { - element = document; - } - - if (satus.isFunction(listener)) { - element.addEventListener(type, listener); - } else if (satus.isArray(listener) || satus.isObject(listener)) { - element.addEventListener(type, function (event) { - var target = this.skeleton.on[event.type], - layers = this.layersProvider; - - target.parentSkeleton = this.skeleton; - target.parentElement = this; - - if (!layers && this.baseProvider.layers.length > 0) { - layers = this.baseProvider.layers[0]; - } - - if (target.prepend === true) { - satus.prepend(target, this.parentNode); - } else if (layers && target.component !== 'modal') { - layers.open(target); - } else { - satus.render(target, this.baseProvider); - } - }); - } else if (satus.isString(listener)) { - element.addEventListener(type, function () { - var match = this.skeleton.on[event.type].match(/(["'`].+["'`]|[^.()]+)/g), - target = this.baseProvider; - - for (var i = 0, l = match.length; i < l; i++) { - var key = match[i]; - - if (target.skeleton[key]) { - target = target.skeleton[key]; - } else { - if (typeof target[key] === 'function') { - target[key](); - } else { - target = target[key]; - } - } - - if (target.rendered) { - target = target.rendered; - } - } - }); - } - } - } -}; - - -/*-------------------------------------------------------------- -# PARENTIFY ---------------------------------------------------------------*/ - -satus.parentify = function (parentObject, exclude) { - for (var key in parentObject) { - if (exclude.indexOf(key) === -1) { - var child = parentObject[key]; - - if (satus.isset(child)) { - child.parentObject = parentObject; - - if ( - satus.isObject(child) && - !satus.isArray(child) && - !satus.isElement(child) && - !satus.isFunction(child) - ) { - this.parentify(child, exclude); - } - } - } - } -}; - - -/*-------------------------------------------------------------- -# PREPEND ---------------------------------------------------------------*/ - -satus.prepend = function (child, parent) { - if (this.isElement(child)) { - parent.prepend(child); - } else if (this.isObject(child)) { - this.render(child, parent, undefined, undefined, true); - } -}; - - -/*-------------------------------------------------------------- -# PROPERTIES ---------------------------------------------------------------*/ - -satus.properties = function (element, properties) { - if (properties) { - for (var key in properties) { - var property = properties[key]; - - if (['placeholder', 'title'].indexOf(key) !== -1) { - property = satus.locale.get(property); - } - - element[key] = property; - } - } -}; - - -/*-------------------------------------------------------------- -# REMOVE ---------------------------------------------------------------*/ - -satus.remove = function (child, parent) { - if (satus.isArray(parent)) { - parent.splice(satus.indexOf(child, parent), 1); - } -}; - - -/*-------------------------------------------------------------- -# RENDER ---------------------------------------------------------------*/ - -satus.render = function (skeleton, container, property, childrenOnly, prepend, skip_children) { - var element; - - if (skeleton.component && childrenOnly !== true) { - var tagName = skeleton.component, - camelizedTagName = this.camelize(tagName), - namespaceURI = skeleton.namespaceURI; - - if (!namespaceURI) { - if (tagName === 'svg') { - namespaceURI = 'http://www.w3.org/2000/svg'; - } else if (skeleton.parentSkeleton && skeleton.parentSkeleton.namespaceURI) { - namespaceURI = skeleton.parentSkeleton.namespaceURI; - } - - skeleton.namespaceURI = namespaceURI; - } - - element = this.createElement(tagName, tagName, namespaceURI); - - skeleton.rendered = element; - element.skeleton = skeleton; - element.childrenContainer = element; - element.componentName = tagName; - - if (skeleton.variant) { - var variant = skeleton.variant; - - if (this.isFunction(variant)) { - variant = variant(); - } - - if (satus.isArray(variant)) { - for (var i = 0, l = variant.length; i < l; i++) { - element.className += ' satus-' + tagName + '--' + variant[i]; - } - } else { - element.className += ' satus-' + tagName + '--' + variant; - } - } - - if (skeleton.id) { - element.id = skeleton.id; - } - - if (container) { - if (container.baseProvider) { - element.baseProvider = container.baseProvider; - } - - if (container.layersProvider) { - element.layersProvider = container.layersProvider; - } - } - - this.attr(element, skeleton.attr); - this.style(element, skeleton.style); - this.data(element, skeleton.data); - this.class(element, skeleton.class); - this.properties(element, skeleton.properties); - this.on(element, skeleton.on); - - element.storage = (function () { - var parent = element, - key = skeleton.storage || property || false, - value; - - if (satus.isFunction(key)) { - key = key(); - } - - if (skeleton.storage !== false) { - if (key) { - value = satus.storage.get(key); - } - - if (skeleton.hasOwnProperty('value') && value === undefined) { - value = skeleton.value; - } - } - - return Object.defineProperties({}, { - key: { - get: function () { - return key; - }, - set: function (string) { - key = string; - } - }, - value: { - get: function () { - return value; - }, - set: function (val) { - value = val; - - if (skeleton.storage !== false) { - satus.storage.set(key, val); - } - - parent.dispatchEvent(new CustomEvent('change')); - } - } - }); - }()); - - if (this.components[camelizedTagName]) { - this.components[camelizedTagName](element, skeleton); - } - - this.text(element.childrenContainer, skeleton.text); - this.prepend(skeleton.before, element.childrenContainer); - - if (prepend) { - this.prepend(element, container); - } else { - this.append(element, container); - } - - if (skeleton.hasOwnProperty('parentSkeleton') === false && container) { - skeleton.parentSkeleton = container.skeleton; - } - - satus.events.trigger('render', element); - - element.dispatchEvent(new CustomEvent('render')); - - container = element.childrenContainer || element; - } - - if ((!element || element.renderChildren !== false) & skip_children !== true) { - for (var key in skeleton) { - var item = skeleton[key]; - - if (key !== 'parentSkeleton' && key !== 'parentElement' && key !== 'parentObject' && key !== 'before') { - if (item && item.component) { - item.parentSkeleton = skeleton; - - if (element) { - item.parentElement = element; - } - - this.render(item, container, key, undefined, prepend); - } - } - } - } - - return element; -}; - - -/*-------------------------------------------------------------- -# SORT ---------------------------------------------------------------*/ - -satus.sort = function (array, order, property) { - var type; - - if (property) { - type = typeof array[0][property]; - } else { - type = typeof array[0]; - } - - if (order !== 'desc') { - if (type === 'number') { - if (property) { - return array.sort(function (a, b) { - return a[property] - b[property]; - }); - } else { - return array.sort(function (a, b) { - return a - b; - }); - } - } else if (type === 'string') { - if (property) { - return array.sort(function (a, b) { - return a[property].localeCompare(b[property]); - }); - } else { - return array.sort(function (a, b) { - return a.localeCompare(b); - }); - } - } - } else { - if (type === 'number') { - if (property) { - return array.sort(function (a, b) { - return b[property] - a[property]; - }); - } else { - return array.sort(function (a, b) { - return b - a; - }); - } - } else if (type === 'string') { - if (property) { - return array.sort(function (a, b) { - return b[property].localeCompare(a[property]); - }); - } else { - return array.sort(function (a, b) { - return b.localeCompare(a); - }); - } - } - } -}; - - -/*-------------------------------------------------------------- -# STORAGE ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# CLEAR ---------------------------------------------------------------*/ - -satus.storage.clear = function (callback) { - this.data = {}; - - chrome.storage.local.clear(function () { - satus.events.trigger('storage-clear'); - - if (callback) { - callback(); - } - }); -}; - - -/*-------------------------------------------------------------- -# GET ---------------------------------------------------------------*/ - -satus.storage.get = function (key, callback) { - var target = this.data; - - if (typeof key !== 'string') { - return; - } - - key = key.split('/').filter(function (value) { - return value != ''; - }); - - for (var i = 0, l = key.length; i < l; i++) { - if (satus.isset(target[key[i]])) { - target = target[key[i]]; - } else { - return undefined; - } - } - - if (typeof target === 'function') { - return target(); - } else { - return target; - } -}; - - -/*-------------------------------------------------------------- -# IMPORT ---------------------------------------------------------------*/ - -satus.storage.import = function (keys, callback) { - var self = this; - - if (typeof keys === 'function') { - callback = keys; - - keys = undefined; - } - - chrome.storage.local.get(keys, function (items) { - for (var key in items) { - self.data[key] = items[key]; - } - - satus.log('STORAGE: data was successfully imported'); - - satus.events.trigger('storage-import'); - - if (callback) { - callback(items); - } - }); -}; - - -/*-------------------------------------------------------------- -# REMOVE ---------------------------------------------------------------*/ - -satus.storage.remove = function (key, callback) { - var target = this.data; - - if (typeof key !== 'string') { - return; - } - - key = key.split('/').filter(function (value) { - return value != ''; - }); - - for (var i = 0, l = key.length; i < l; i++) { - if (satus.isset(target[key[i]])) { - if (i === l - 1) { - delete target[key[i]]; - } else { - target = target[key[i]]; - } - } else { - return undefined; - } - } - - if (key.length === 1) { - chrome.storage.local.remove(key[0]); - } else { - chrome.storage.local.set(this.data, function () { - satus.events.trigger('storage-remove'); - - if (callback) { - callback(); - } - }); - } -}; - - -/*-------------------------------------------------------------- -# SET ---------------------------------------------------------------*/ - -satus.storage.set = function (key, value, callback) { - var items = {}, - target = this.data; - - if (typeof key !== 'string') { - return; - } - - key = key.split('/').filter(function (value) { - return value != ''; - }); - - for (var i = 0, l = key.length; i < l; i++) { - var item = key[i]; - - if (i < l - 1) { - - if (target[item]) { - target = target[item]; - } else { - target[item] = {}; - - target = target[item]; - } - } else { - target[item] = value; - } - } - - for (var key in this.data) { - if (typeof this.data[key] !== 'function') { - items[key] = this.data[key]; - } - } - - chrome.storage.local.set(items, function () { - satus.events.trigger('storage-set'); - - if (callback) { - callback(); - } - }); -}; - - -/*-------------------------------------------------------------- -# ON CHANGED ---------------------------------------------------------------*/ - -satus.storage.onchanged = function (callback) { - chrome.storage.onChanged.addListener(function (changes) { - for (var key in changes) { - callback(key, changes[key].newValue); - } - }); -}; - - -/*-------------------------------------------------------------- -# LAST ---------------------------------------------------------------*/ - -satus.last = function (variable) { - if (this.isArray(variable) || this.isNodeList(variable) || variable instanceof HTMLCollection) { - return variable[variable.length - 1]; - } -}; - - -/*-------------------------------------------------------------- -# LOCALIZATION ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# GET ---------------------------------------------------------------*/ - -satus.locale.get = function (string) { - return this.data[string] || string; -}; - - -/*-------------------------------------------------------------- -# IMPORT ----------------------------------------------------------------- -satus.locale.import(url, onload, onsuccess); ---------------------------------------------------------------*/ - -satus.locale.import = function (code, callback, path) { - var language = code || window.navigator.language; - - if (language.indexOf('en') === 0) { - language = 'en'; - } - - language = language.replace('-', '_'); - - if (!path) { - path = '_locales/'; - } - - satus.fetch(chrome.runtime.getURL(path + language + '/messages.json'), function (response) { - for (var key in response) { - satus.locale.data[key] = response[key].message; - } - - //satus.log('LOCALE: data was successfully imported'); - - if (callback) { - callback(); - } - }, function (success) { - satus.fetch(chrome.runtime.getURL(path + 'en/messages.json'), success, function () { - success(); - }); - }); -}; - - -/*-------------------------------------------------------------- -# LOG ---------------------------------------------------------------*/ - -satus.log = function () { - console.log.apply(null, arguments); -}; - - -/*-------------------------------------------------------------- -# STYLE ---------------------------------------------------------------*/ - -satus.style = function (element, object) { - if (object) { - for (var key in object) { - element.style[key] = object[key]; - } - } -}; - - -/*-------------------------------------------------------------- -# TEXT ---------------------------------------------------------------*/ - -satus.text = function (element, value) { - if (value) { - if (satus.isFunction(value)) { - value = value(); - } - - element.appendChild(document.createTextNode(this.locale.get(value))); - } -}; -/*-------------------------------------------------------------- ->>> MODAL ----------------------------------------------------------------- -# Confirm ---------------------------------------------------------------*/ - -satus.components.modal = function (component, skeleton) { - component.scrim = component.createChildElement('div', 'scrim'); - component.surface = component.createChildElement('div', 'surface'); - - component.close = function () { - var component = this; - - this.classList.add('satus-modal--closing'); - - setTimeout(function () { - component.remove(); - - component.dispatchEvent(new CustomEvent('close')); - }, Number(satus.css(this.surface, 'animation-duration').replace(/[^0-9.]/g, '')) * 1000); - }; - - component.scrim.addEventListener('click', function () { - this.parentNode.close(); - }); - - if (satus.isset(skeleton.content)) { - component.surface.content = component.surface.createChildElement('p', 'content'); - - if (satus.isObject(skeleton.content)) { - satus.render(skeleton.content, component.surface.content); - } else { - component.surface.content.textContent = satus.locale.get(skeleton.content); - } - } else { - component.childrenContainer = component.surface; - } - - if (satus.components.modal[skeleton.variant]) { - satus.components.modal[skeleton.variant](component, skeleton); - } -}; - - -/*-------------------------------------------------------------- -# CONFIRM ---------------------------------------------------------------*/ - -satus.components.modal.confirm = function (component, skeleton) { - component.surface.actions = satus.render({ - component: 'section', - variant: 'align-end' - }, component.surface); - - if (skeleton.buttons) { - for (var key in skeleton.buttons) { - var button = skeleton.buttons[key]; - - if (satus.isObject(button) && button.component === 'button') { - satus.render(button, component.surface.actions).modalProvider = component; - } - } - } else { - satus.render({ - cancel: { - component: 'button', - text: 'cancel', - properties: { - modalProvider: component, - }, - on: { - click: function () { - this.modalProvider.dispatchEvent(new CustomEvent('cancel')); - this.modalProvider.close(); - } - } - }, - ok: { - component: 'button', - text: 'ok', - properties: { - modalProvider: component, - }, - on: { - click: function () { - this.modalProvider.dispatchEvent(new CustomEvent('confirm')); - this.modalProvider.close(); - } - } - } - }, component.surface.actions); - } -}; -/*-------------------------------------------------------------- ->>> GRID ---------------------------------------------------------------*/ - -satus.components.grid = function (component, skeleton) { - console.log(component, skeleton); -}; -/*-------------------------------------------------------------- ->>> TEXT FIELD ---------------------------------------------------------------*/ - -satus.components.textField = function (component, skeleton) { - var container = component.createChildElement('div', 'container'), - input = container.createChildElement(skeleton.rows === 1 ? 'input' : 'textarea'), - display = container.createChildElement('div', 'display'), - line_numbers = display.createChildElement('div', 'line-numbers'), - pre = display.createChildElement('pre'), - selection = display.createChildElement('div', 'selection'), - cursor = display.createChildElement('div', 'cursor'), - hiddenValue = container.createChildElement('pre', 'hidden-value'); - - if (skeleton.rows === 1) { - component.setAttribute('multiline', 'false'); - - component.multiline = false; - } - - component.placeholder = skeleton.placeholder; - component.input = input; - component.display = display; - component.lineNumbers = line_numbers; - component.pre = pre; - component.hiddenValue = hiddenValue; - component.selection = selection; - component.cursor = cursor; - component.syntax = { - current: 'text', - handlers: { - regex: function (value, target) { - var regex_token = /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g, - char_class_token = /[^\\-]+|-|\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)/g, - char_class_parts = /^(\[\^?)(]?(?:[^\\\]]+|\\[\S\s]?)*)(]?)$/, - quantifier = /^(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??$/, - matches = value.match(regex_token); - - function create(type, string) { - var span = document.createElement('span'); - - span.className = type; - span.textContent = string; - - target.appendChild(span); - } - - if (matches) { - for (var i = 0, l = matches.length; i < l; i++) { - var match = matches[i]; - - if (match[0] === '[') { - create('character-class', match); - } else if (match[0] === '(') { - create('group', match); - } else if (match[0] === ')') { - create('group', match); - } else if (match[0] === '\\' || match === '^') { - create('anchor', match); - } else if (quantifier.test(match)) { - create('quantifier', match); - } else if (match === '|' || match === '.') { - create('metasequence', match); - } else { - create('text', match); - } - } - } - } - }, - set: function (syntax) { - if (this.handlers[syntax]) { - this.current = syntax; - } else { - this.current = 'text'; - } - - pre.update(); - } - }; - component.focus = function () { - this.input.focus(); - }; - - if (skeleton.lineNumbers === false) { - component.setAttribute('line-numbers', 'false'); - - component.lineNumbers.setAttribute('hidden', ''); - } - - if (satus.isset(skeleton.cols)) { - input.cols = skeleton.cols; - } - - if (satus.isset(skeleton.rows)) { - input.rows = skeleton.rows; - } - - Object.defineProperty(component, 'value', { - get: function () { - return this.input.value; - }, - set: function (value) { - this.input.value = value; - } - }); - - if (skeleton.syntax) { - component.syntax.set(skeleton.syntax); - } - - selection.setAttribute('disabled', ''); - - line_numbers.update = function () { - var component = this.parentNode.parentNode.parentNode, - count = component.input.value.split('\n').length; - - if (count !== this.children.length) { - satus.empty(this); - - for (var i = 1; i <= count; i++) { - var span = document.createElement('span'); - - span.textContent = i; - - this.appendChild(span); - } - } - - component.input.style.paddingLeft = this.offsetWidth + 'px'; - }; - - pre.update = function () { - var component = this.parentNode.parentNode.parentNode, - handler = component.syntax.handlers[component.syntax.current], - value = component.value || ''; - - for (var i = this.childNodes.length - 1; i > -1; i--) { - this.childNodes[i].remove(); - } - - if (handler) { - handler(value, this); - } else { - this.textContent = value; - } - - if (value.length === 0) { - var placeholder = component.placeholder; - - if (typeof placeholder === 'function') { - placeholder = component.placeholder(); - } else { - placeholder = satus.locale.get(placeholder); - } - - this.textContent = placeholder; - } - }; - - cursor.update = function () { - var component = this.parentNode.parentNode.parentNode, - input = component.input, - value = input.value, - rows_count = value.split('\n').length, - start = input.selectionStart, - end = input.selectionEnd, - rows = value.slice(0, start).split('\n'), - top = 0; - - this.style.animation = 'none'; - - if (input.selectionDirection === 'forward') { - component.hiddenValue.textContent = value.substring(0, end); - } else { - component.hiddenValue.textContent = value.substring(0, start); - } - - top = component.hiddenValue.offsetHeight; - - component.hiddenValue.textContent = satus.last(rows); - - top -= component.hiddenValue.offsetHeight; - - if (component.multiline !== false) { - this.style.top = top + 'px'; - } - - this.style.left = component.hiddenValue.offsetWidth + component.lineNumbers.offsetWidth + 'px'; - - if (start === end) { - component.selection.setAttribute('disabled', ''); - } else { - component.selection.removeAttribute('disabled'); - - /*component.hiddenValue.textContent = value.substring(0, start); - - component.selection.style.left = component.hiddenValue.offsetWidth - input.scrollLeft + 'px'; - - component.hiddenValue.textContent = value.substring(start, end); - - component.selection.style.width = component.hiddenValue.offsetWidth + 'px';*/ - } - - this.style.animation = ''; - - component.hiddenValue.textContent = ''; - }; - - document.addEventListener('selectionchange', function (event) { - component.lineNumbers.update(); - component.pre.update(); - component.cursor.update(); - }); - - input.addEventListener('input', function () { - var component = this.parentNode.parentNode; - - component.storage.value = this.value; - - component.lineNumbers.update(); - component.pre.update(); - component.cursor.update(); - }); - - input.addEventListener('scroll', function (event) { - var component = this.parentNode.parentNode; - - component.display.style.top = -this.scrollTop + 'px'; - component.display.style.left = -this.scrollLeft + 'px'; - - component.lineNumbers.update(); - component.pre.update(); - component.cursor.update(); - }); - - component.addEventListener('change', function () { - this.lineNumbers.update(); - this.pre.update(); - this.cursor.update(); - }); - - component.value = component.storage.value || ''; - - component.addEventListener('render', function () { - component.lineNumbers.update(); - component.pre.update(); - component.cursor.update(); - }); - - if (skeleton.on) { - for (var type in skeleton.on) { - input.addEventListener(type, function (event) { - this.parentNode.parentNode.dispatchEvent(new Event(event.type)); - }); - } - } -}; -/*-------------------------------------------------------------- ->>> CHART ----------------------------------------------------------------- -# Core - # Bar ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# CORE ---------------------------------------------------------------*/ - -satus.components.chart = function (component, skeleton) { - var type = skeleton.type; - - if (this.chart[type]) { - component.classList.add('satus-chart--' + type); - - this.chart[type](component, skeleton); - } -}; - - -/*-------------------------------------------------------------- -# BAR ---------------------------------------------------------------*/ - -satus.components.chart.bar = function (component, skeleton) { - var labels = skeleton.labels, - datasets = skeleton.datasets, - bars = []; - - if (satus.isFunction(labels)) { - labels = labels(); - } - - if (satus.isFunction(datasets)) { - datasets = datasets(); - } - - if (satus.isArray(labels)) { - var container = component.createChildElement('div', 'labels'); - - for (var i = 0, l = labels.length; i < l; i++) { - var label = labels[i], - section = container.createChildElement('div', 'section'); - - section.textContent = label; - } - } - - if (satus.isArray(datasets)) { - var container = component.createChildElement('div', 'bars'); - - for (var i = 0, l = datasets.length; i < l; i++) { - var dataset = datasets[i]; - - for (var j = 0, k = dataset.data.length; j < k; j++) { - if (!satus.isElement(bars[j])) { - bars.push(container.createChildElement('div', 'bar')); - } - - var piece = bars[j].createChildElement('div', 'piece'); - - piece.title = dataset.label; - piece.style.height = dataset.data[j] + '%'; - piece.style.backgroundColor = 'rgb(' + dataset.color.join(',') + ')'; - } - } - } -}; -/*-------------------------------------------------------------- ->>> SELECT ---------------------------------------------------------------*/ - -satus.components.select = function (component, skeleton) { - var content = component.createChildElement('div', 'content'); - - component.childrenContainer = content; - component.valueElement = document.createElement('span'); - component.selectElement = document.createElement('select'); - - component.valueElement.className = 'satus-select__value'; - - component.appendChild(component.valueElement); - component.appendChild(component.selectElement); - - component.options = skeleton.options || []; - - if (satus.isFunction(component.options)) { - component.options = component.options(); - - if (!satus.isset(component.options)) { - component.options = []; - } - } - - for (var i = 0, l = component.options.length; i < l; i++) { - var option = document.createElement('option'); - - option.value = component.options[i].value; - - satus.text(option, component.options[i].text); - - component.selectElement.appendChild(option); - } - - Object.defineProperty(component, 'value', { - get() { - return this.selectElement.value; - }, - set(value) { - this.selectElement.value = value; - } - }); - - component.render = function () { - satus.empty(this.valueElement); - - if (this.selectElement.options[this.selectElement.selectedIndex]) { - satus.text(this.valueElement, this.selectElement.options[this.selectElement.selectedIndex].text); - } - - this.dataset.value = this.value; - }; - - component.selectElement.addEventListener('change', function () { - var component = this.parentNode; - - component.storage.value = this.value; - - component.render(); - }); - - component.value = component.storage.value || component.options[0].value; - - component.render(); -}; -/*-------------------------------------------------------------- ->>> DIVIDER ---------------------------------------------------------------*/ - -satus.components.divider = function () {}; -/*-------------------------------------------------------------- ->>> SECTION ---------------------------------------------------------------*/ - -satus.components.section = function (component, skeleton) { - if (satus.isString(skeleton.title)) { - component.dataset.title = satus.locale.get(skeleton.title); - } -}; -/*-------------------------------------------------------------- ->>> BASE ---------------------------------------------------------------*/ - -satus.components.base = function (component) { - component.baseProvider = component; - component.layers = []; -}; -/*-------------------------------------------------------------- ->>> ALERT ---------------------------------------------------------------*/ - -satus.components.alert = function (component, skeleton) {}; -/*-------------------------------------------------------------- ->>> TIME ---------------------------------------------------------------*/ - -satus.components.time = function (component, skeleton) { - var select_skeleton = Object.assign({}, skeleton); - - select_skeleton.component = 'select'; - select_skeleton.options = []; - - if (satus.isFunction(select_skeleton.hour12)) { - select_skeleton.hour12 = select_skeleton.hour12(); - } - - for (var i = 0, l = 24; i < l; i++) { - var hour = i, - value = i; - - if (select_skeleton.hour12 === true && i > 12) { - hour -= 12; - } - - if (hour < 10) { - hour = '0' + hour; - value = '0' + value; - } - - if (select_skeleton.hour12 === true) { - if (i > 12) { - hour += ':00 pm'; - } else { - hour += ':00 am'; - } - } else { - hour += ':00' - } - - select_skeleton.options.push({ - text: hour, - value: value + ':00' - }); - } - - satus.components.select(component, select_skeleton); - - component.classList.add('satus-select'); -}; -/*-------------------------------------------------------------- ->>> SIDEBAR ---------------------------------------------------------------*/ - -satus.components.sidebar = function (component, skeleton) {}; -/*-------------------------------------------------------------- ->>> LAYERS ---------------------------------------------------------------*/ - -satus.components.layers = function (component, skeleton) { - component.path = []; - component.renderChildren = false; - component.baseProvider.layers.push(component); - component.layersProvider = component; - - component.back = function () { - if (this.path.length > 1) { - this.path.pop(); - - this.open(this.path[this.path.length - 1], false); - } - }; - - component.open = function (skeleton, history) { - var previous_layer = satus.last(this.querySelectorAll('.satus-layers__layer')), - layer = this.createChildElement('div', 'layer'); - - if (history !== false) { - if (previous_layer) { - previous_layer.style.animation = 'fadeOutLeft 100ms linear forwards'; - layer.style.animation = 'fadeInRight 100ms linear forwards'; - } - - this.path.push(skeleton); - } else { - previous_layer.style.animation = 'fadeOutRight 100ms linear forwards'; - layer.style.animation = 'fadeInLeft 100ms linear forwards'; - } - - if (previous_layer) { - setTimeout(function () { - previous_layer.remove(); - }, satus.getAnimationDuration(previous_layer)); - } - - layer.skeleton = skeleton; - layer.baseProvider = this.baseProvider; - - satus.render(skeleton, layer, undefined, skeleton.component === 'layers'); - - this.dispatchEvent(new Event('open')); - }; - - component.update = function () { - var layer = this.querySelector('.satus-layers__layer'); - - satus.empty(layer); - satus.render(layer.skeleton, layer); - }; - - component.open(skeleton); -}; -/*-------------------------------------------------------------- ->>> LIST ---------------------------------------------------------------*/ - -satus.components.list = function (component, skeleton) { - for (var i = 0, l = skeleton.items.length; i < l; i++) { - var li = component.createChildElement('div', 'item'), - item = skeleton.items[i]; - - for (var j = 0, k = item.length; j < k; j++) { - var child = item[j]; - - if (satus.isObject(child)) { - satus.render(child, li); - } else { - var span = li.createChildElement('span'); - - span.textContent = satus.locale.get(child); - } - } - } -}; -/*-------------------------------------------------------------- ->>> COLOR PICKER ---------------------------------------------------------------*/ - -satus.components.colorPicker = function (component, skeleton) { - var component_content = component.createChildElement('div', 'content'), - component_value = component.createChildElement('span', 'value'); - - component.childrenContainer = component_content; - component.valueElement = component_value; - - component.className = 'satus-button'; - - component.addEventListener('click', function () { - var rgb = this.rgb, - hsl = satus.color.rgbToHsl(rgb), - s = hsl[1] / 100, - l = hsl[2] / 100; - - s *= l < .5 ? l : 1 - l; - - var v = l + s; - - s = 2 * s / (l + s); - - satus.render({ - component: 'modal', - variant: 'color-picker', - value: hsl, - parentElement: this, - - palette: { - component: 'div', - class: 'satus-color-picker__palette', - style: { - 'backgroundColor': 'hsl(' + hsl[0] + 'deg, 100%, 50%)' - }, - on: { - mousedown: function () { - var palette = this, - rect = this.getBoundingClientRect(), - cursor = this.children[0]; - - function mousemove(event) { - var hsl = palette.skeleton.parentSkeleton.storage.value, - x = event.clientX - rect.left, - y = event.clientY - rect.top, - s; - - x = Math.min(Math.max(x, 0), rect.width) / (rect.width / 100); - y = Math.min(Math.max(y, 0), rect.height) / (rect.height / 100); - - var v = 100 - y, - l = (2 - x / 100) * v / 2; - - hsl[1] = x * v / (l < 50 ? l * 2 : 200 - l * 2); - hsl[2] = l; - - cursor.style.left = x + '%'; - cursor.style.top = y + '%'; - - palette.nextSibling.children[0].style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; - - event.preventDefault(); - } - - function mouseup() { - window.removeEventListener('mousemove', mousemove); - window.removeEventListener('mouseup', mouseup); - } - - window.addEventListener('mousemove', mousemove); - window.addEventListener('mouseup', mouseup); - } - }, - - cursor: { - component: 'div', - class: 'satus-color-picker__cursor', - style: { - 'left': s * 100 + '%', - 'top': 100 - v * 100 + '%' - } - } - }, - section: { - component: 'section', - variant: 'color', - - color: { - component: 'div', - class: 'satus-color-picker__color', - style: { - 'backgroundColor': 'rgb(' + this.rgb.join(',') + ')' - } - }, - hue: { - component: 'slider', - class: 'satus-color-picker__hue', - storage: false, - value: hsl[0], - max: 360, - on: { - change: function () { - var modal = this.skeleton.parentSkeleton.parentSkeleton, - hsl = modal.storage.value; - - hsl[0] = this.values[0]; - - this.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; - this.parentSkeletonNode.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg, 100%, 50%)'; - } - } - } - }, - actions: { - component: 'section', - variant: 'actions', - - reset: { - component: 'button', - text: 'reset', - on: { - click: function () { - var modal = this.skeleton.parentSkeleton.parentSkeleton, - component = modal.parentSkeleton; - - component.rgb = component.skeleton.value; - - component.storage.value = component.rgb; - - component.valueElement.style.backgroundColor = 'rgb(' + component.rgb.join(',') + ')'; - - modal.rendered.close(); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.skeleton.parentSkeleton.parentSkeleton.rendered.close(); - } - } - }, - ok: { - component: 'button', - text: 'OK', - on: { - click: function () { - var modal = this.skeleton.parentSkeleton.parentSkeleton, - component = modal.parentSkeleton; - - component.rgb = satus.color.hslToRgb(modal.storage.value); - - component.storage.value = component.rgb; - - component.valueElement.style.backgroundColor = 'rgb(' + component.rgb.join(',') + ')'; - - modal.rendered.close(); - } - } - } - } - }, this.baseProvider.layers[0]); - }); - - component.addEventListener('render', function () { - component.rgb = this.storage.value || [0, 100, 50]; - - component_value.style.backgroundColor = 'rgb(' + component.rgb.join(',') + ')'; - }); -}; - -satus.components.colorPicker = function (component, skeleton) { - component.childrenContainer = component.createChildElement('div', 'content'); - - component.color = (function (element) { - var array; - - Object.defineProperty(element, 'value', { - get: function () { - return array; - }, - set: function (value) { - array = value; - - this.parentNode.storage.value = array; - - element.style.backgroundColor = 'rgb(' + value.join(',') + ')'; - } - }); - - element.value = component.storage.value || component.skeleton.value || [0, 0, 0]; - - return element; - })(component.createChildElement('span', 'value')); - - component.addEventListener('click', function () { - var hsl = satus.color.rgbToHsl(this.color.value), - s = hsl[1] / 100, - l = hsl[2] / 100; - - s *= l < .5 ? l : 1 - l; - - var v = l + s; - - s = 2 * s / (l + s); - - satus.render({ - component: 'modal', - variant: 'color-picker', - value: hsl, - parentElement: this, - - palette: { - component: 'div', - class: 'satus-color-picker__palette', - style: { - 'backgroundColor': 'hsl(' + hsl[0] + 'deg, 100%, 50%)' - }, - on: { - mousedown: function (event) { - if (event.button !== 0) { - return false; - } - - var palette = this, - rect = this.getBoundingClientRect(), - cursor = this.children[0]; - - function mousemove(event) { - var hsl = palette.skeleton.parentSkeleton.value, - x = event.clientX - rect.left, - y = event.clientY - rect.top, - s; - - x = Math.min(Math.max(x, 0), rect.width) / (rect.width / 100); - y = Math.min(Math.max(y, 0), rect.height) / (rect.height / 100); - - var v = 100 - y, - l = (2 - x / 100) * v / 2; - - hsl[1] = x * v / (l < 50 ? l * 2 : 200 - l * 2); - hsl[2] = l; - - cursor.style.left = x + '%'; - cursor.style.top = y + '%'; - - palette.nextSibling.children[0].style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; - - event.preventDefault(); - } - - function mouseup() { - window.removeEventListener('mousemove', mousemove); - window.removeEventListener('mouseup', mouseup); - } - - window.addEventListener('mousemove', mousemove); - window.addEventListener('mouseup', mouseup); - } - }, - - cursor: { - component: 'div', - class: 'satus-color-picker__cursor', - style: { - 'left': s * 100 + '%', - 'top': 100 - v * 100 + '%' - } - } - }, - section: { - component: 'section', - variant: 'color', - - color: { - component: 'div', - class: 'satus-color-picker__color', - style: { - 'backgroundColor': 'rgb(' + this.color.value.join(',') + ')' - } - }, - hue: { - component: 'slider', - class: 'satus-color-picker__hue', - storage: false, - value: hsl[0], - max: 360, - on: { - input: function () { - var modal = this.skeleton.parentSkeleton.parentSkeleton, - hsl = modal.value; - - hsl[0] = this.storage.value; - - this.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; - this.parentNode.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg, 100%, 50%)'; - } - } - } - }, - actions: { - component: 'section', - variant: 'actions', - - reset: { - component: 'button', - text: 'reset', - on: { - click: function () { - var modal = this.skeleton.parentSkeleton.parentSkeleton, - component = modal.parentElement; - - component.color.value = component.skeleton.value || [0, 0, 0]; - - modal.rendered.close(); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.skeleton.parentSkeleton.parentSkeleton.rendered.close(); - } - } - }, - ok: { - component: 'button', - text: 'OK', - on: { - click: function () { - var modal = this.skeleton.parentSkeleton.parentSkeleton, - component = modal.parentElement; - - component.color.value = satus.color.hslToRgb(modal.value); - - modal.rendered.close(); - } - } - } - } - }, this.baseProvider.layers[0]); - }); -}; -/*-------------------------------------------------------------- ->>> RADIO ---------------------------------------------------------------*/ - -satus.components.radio = function (component, skeleton) { - component.nativeControl = component.createChildElement('input', 'input'); - - component.createChildElement('i'); - - component.childrenContainer = component.createChildElement('div', 'content'); - - component.nativeControl.type = 'radio'; - - if (skeleton.group) { - component.storage.key = skeleton.group; - component.nativeControl.name = skeleton.group; - } - - if (skeleton.value) { - component.nativeControl.value = skeleton.value; - } - - component.storage.value = satus.storage.get(component.storage.key); - - if (satus.isset(component.storage.value)) { - component.nativeControl.checked = component.storage.value === skeleton.value; - } else if (skeleton.checked) { - component.nativeControl.checked = true; - } - - component.nativeControl.addEventListener('change', function () { - var component = this.parentNode; - - component.storage.value = this.value; - }); -}; -/*-------------------------------------------------------------- ->>> SLIDER ---------------------------------------------------------------*/ - -satus.components.slider = function (component, skeleton) { - var content = component.createChildElement('div', 'content'), - children_container = content.createChildElement('div', 'children-container'), - text_input = content.createChildElement('input'), - track_container = component.createChildElement('div', 'track-container'), - input = track_container.createChildElement('input', 'input'); - - component.childrenContainer = children_container; - component.textInput = text_input; - component.input = input; - component.track = track_container.createChildElement('div', 'track'); - - text_input.type = 'text'; - - input.type = 'range'; - input.min = skeleton.min || 0; - input.max = skeleton.max || 1; - input.step = skeleton.step || 1; - input.value = component.storage.value || skeleton.value || 0; - - text_input.addEventListener('blur', function () { - var component = this.parentNode.parentNode; - - component.input.value = Number(this.value.replace(/[^0-9.]/g, '')); - component.storage.value = Number(component.input.value); - - component.update(); - }); - - text_input.addEventListener('keydown', function (event) { - if (event.key === 'Enter') { - var component = this.parentNode.parentNode; - - component.input.value = Number(this.value.replace(/[^0-9.]/g, '')); - component.storage.value = Number(component.input.value); - - component.update(); - } - }); - - input.addEventListener('input', function () { - var component = this.parentNode.parentNode; - - component.storage.value = Number(this.value); - - component.update(); - }); - - component.update = function () { - var input = this.input; - - this.textInput.value = input.value; - - this.track.style.width = 100 / (input.max - input.min) * (input.value - input.min) + '%'; - }; - - component.update(); - - if (skeleton.on) { - for (var type in skeleton.on) { - input.addEventListener(type, function (event) { - this.parentNode.parentNode.dispatchEvent(new Event(event.type)); - }); - } - } -}; -/*-------------------------------------------------------------- ->>> TABS ---------------------------------------------------------------*/ - -satus.components.tabs = function (component, skeleton) { - var tabs = skeleton.items, - value = skeleton.value; - - if (satus.isFunction(tabs)) { - tabs = tabs(); - } - - if (satus.isFunction(value)) { - value = value(); - } - - for (var i = 0, l = tabs.length; i < l; i++) { - var tab = tabs[i], - button = component.createChildElement('button'); - - button.addEventListener('click', function () { - var component = this.parentNode, - index = satus.elementIndex(this); - - component.value = index; - - component.style.setProperty('--satus-tabs-current', index); - }); - - satus.text(button, tab); - } - - component.style.setProperty('--satus-tabs-count', tabs.length); - component.style.setProperty('--satus-tabs-current', value || 0); -}; -/*-------------------------------------------------------------- ->>> SHORTCUT ---------------------------------------------------------------*/ - -satus.components.shortcut = function (component, skeleton) { - component.childrenContainer = component.createChildElement('div', 'content'); - component.valueElement = component.createChildElement('div', 'value'); - - component.className = 'satus-button'; - - component.render = function (parent) { - var self = this, - parent = parent || self.primary, - children = parent.children; - - satus.empty(parent); - - function createElement(name) { - var element = document.createElement('div'); - - element.className = 'satus-shortcut__' + name; - - parent.appendChild(element); - - return element; - } - - if (this.data.alt) { - createElement('key').textContent = 'Alt'; - } - - if (this.data.ctrl) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - createElement('key').textContent = 'Ctrl'; - } - - if (this.data.shift) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - createElement('key').textContent = 'Shift'; - } - - for (var code in this.data.keys) { - var key = this.data.keys[code].key, - arrows = ['ArrowUp', 'ArrowRight', 'ArrowDown', 'ArrowLeft'], - index = arrows.indexOf(key); - - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - if (index !== -1) { - createElement('key').textContent = ['↑', '→', '↓', '←'][index]; - } else if (key === ' ') { - createElement('key').textContent = '␣'; - } else if (key) { - createElement('key').textContent = key.toUpperCase(); - } - } - - if (this.data.wheel) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - var mouse = createElement('mouse'), - div = document.createElement('div'); - - mouse.appendChild(div); - - mouse.className += ' ' + (this.data.wheel > 0); - } - - if (this.data.click) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - var mouse = createElement('mouse'), - div = document.createElement('div'); - - mouse.appendChild(div); - - mouse.className += ' click'; - } - - if (this.data.middle) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - var mouse = createElement('mouse'), - div = document.createElement('div'); - - mouse.appendChild(div); - - mouse.className += ' middle'; - } - - if (this.data.context) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - var mouse = createElement('mouse'), - div = document.createElement('div'); - - mouse.appendChild(div); - - mouse.className += ' context'; - } - }; - - component.keydown = function (event) { - event.preventDefault(); - event.stopPropagation(); - - component.data = { - alt: event.altKey, - ctrl: event.ctrlKey, - shift: event.shiftKey, - keys: {} - }; - - if (['control', 'alt', 'altgraph', 'shift'].indexOf(event.key.toLowerCase()) === -1) { - component.data.keys[event.keyCode] = { - code: event.code, - key: event.key - }; - } - - component.data.wheel = 0; - - component.render(); - - return false; - }; - - if (skeleton.wheel !== false) { - component.mousewheel = function (event) { - event.stopPropagation(); - - if ( - ( - component.data.wheel === 0 && - ( - Object.keys(component.data.keys).length === 0 && - component.data.alt === false && - component.data.ctrl === false && - component.data.shift === false - ) - ) || - component.data.wheel < 0 && event.deltaY > 0 || - component.data.wheel > 0 && event.deltaY < 0) { - component.data = { - alt: false, - ctrl: false, - shift: false, - keys: {} - }; - } - - component.data.wheel = event.deltaY < 0 ? -1 : 1; - - component.render(); - - return false; - }; - } - - component.addEventListener('click', function () { - satus.render({ - component: 'modal', - properties: { - parent: this - }, - on: { - close: function () { - window.removeEventListener('keydown', component.keydown); - window.removeEventListener('wheel', component.mousewheel); - } - }, - - primary: { - component: 'div', - class: 'satus-shortcut__primary', - on: { - render: function () { - component.primary = this; - - if (component.skeleton.mouseButtons === true) { - this.addEventListener('mousedown', function (event) { - if ( - component.data.click && event.button === 0 || - component.data.middle && event.button === 1 - ) { - component.data = { - alt: false, - ctrl: false, - shift: false, - keys: {} - }; - } - - component.data.click = false; - component.data.middle = false; - component.data.context = false; - - if (event.button === 0) { - component.data.click = true; - - component.render(); - } else if (event.button === 1) { - component.data.middle = true; - - component.render(); - } - }); - - this.addEventListener('contextmenu', function (event) { - event.preventDefault(); - event.stopPropagation(); - - if (component.data.context) { - component.data = { - alt: false, - ctrl: false, - shift: false, - keys: {} - }; - } - - component.data.context = true; - component.data.middle = false; - component.data.click = false; - - component.render(); - - return false; - }); - } - - component.render(); - } - } - }, - actions: { - component: 'section', - variant: 'actions', - - reset: { - component: 'button', - text: 'reset', - on: { - click: function () { - var component = this.parentNode.parentNode.parentNode.parent; - - component.data = component.skeleton.value || {}; - - component.render(component.valueElement); - - satus.storage.remove(component.storage); - - this.parentNode.parentNode.parentNode.close(); - - window.removeEventListener('keydown', component.keydown); - window.removeEventListener('wheel', component.mousewheel); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - component.data = satus.storage.get(component.storage) || component.skeleton.value || {}; - - component.render(component.valueElement); - - this.parentNode.parentNode.parentNode.close(); - - window.removeEventListener('keydown', component.keydown); - window.removeEventListener('wheel', component.mousewheel); - } - } - }, - save: { - component: 'button', - text: 'save', - on: { - click: function () { - component.storage.value = component.data; - - component.render(component.valueElement); - - this.parentNode.parentNode.parentNode.close(); - - window.removeEventListener('keydown', component.keydown); - window.removeEventListener('wheel', component.mousewheel); - } - } - } - } - }, this.baseProvider); - - window.addEventListener('keydown', this.keydown); - window.addEventListener('wheel', this.mousewheel); - }); - - component.data = component.storage.value || { - alt: false, - ctrl: false, - shift: false, - keys: {}, - wheel: 0 - }; - - component.render(component.valueElement); -}; -/*-------------------------------------------------------------- ->>> CHECKBOX ---------------------------------------------------------------*/ - -satus.components.checkbox = function (component, skeleton) { - component.input = component.createChildElement('input'); - component.input.type = 'checkbox'; - - component.checkmark = component.createChildElement('div', 'checkmark'); - - component.childrenContainer = component.createChildElement('div', 'content'); - - component.dataset.value = component.storage.value || skeleton.value; - component.input.checked = component.storage.value || skeleton.value; - - component.input.addEventListener('change', function () { - var component = this.parentNode; - - if (this.checked === true) { - component.storage.value = true; - component.dataset.value = 'true'; - } else { - component.storage.value = false; - component.dataset.value = 'false'; - } - }); -}; -/*-------------------------------------------------------------- ->>> SWITCH ---------------------------------------------------------------*/ - -satus.components.switch = function (component, skeleton) { - var value = satus.isset(component.storage.value) ? component.storage.value : skeleton.value; - - if (satus.isFunction(value)) { - value = value(); - } - - component.childrenContainer = component.createChildElement('div', 'content'); - - component.createChildElement('i'); - - component.dataset.value = value; - - component.addEventListener('click', function () { - if (this.dataset.value === 'true') { - this.dataset.value = 'false'; - this.storage.value = false; - } else { - this.dataset.value = 'true'; - this.storage.value = true; - } - }, true); -}; -/*-------------------------------------------------------------- ->>> CONTEXT MENU ---------------------------------------------------------------*/ - -satus.events.on('render', function (component) { - if (component.skeleton.contextMenu) { - component.addEventListener('contextmenu', function (event) { - var base = this.baseProvider, - base_rect = base.getBoundingClientRect(), - x = event.clientX - base_rect.left, - y = event.clientY - base_rect.top, - modal = satus.render({ - component: 'modal', - variant: 'contextmenu', - parentSkeleton: this.skeleton, - baseProvider: base - }, base); - - if (base_rect.width - x < 200) { - x = base_rect.width - x; - - if (x + 200 > base_rect.width) { - x = 0; - } - - modal.childrenContainer.style.right = x + 'px'; - } else { - modal.childrenContainer.style.left = x + 'px'; - } - - modal.childrenContainer.style.top = y + 'px'; - - this.skeleton.contextMenu.parentSkeleton = this.skeleton; - - satus.render(this.skeleton.contextMenu, modal.childrenContainer); - - event.preventDefault(); - event.stopPropagation(); - - return false; - }); - } -}); -/*-------------------------------------------------------------- ->>> SORTABLE ---------------------------------------------------------------*/ - -satus.events.on('render', function (component) { - if (component.skeleton.sortable === true) { - component.addEventListener('mousedown', function (event) { - if (event.button !== 0) { - return false; - } - - var component = this, - rect = this.getBoundingClientRect(), - x = event.clientX, - y = event.clientY, - offset_x = event.clientX - rect.left, - offset_y = event.clientY - rect.top, - ghost = satus.clone(this), - children = this.parentNode.children, - appended = false; - - ghost.classList.add('satus-sortable__ghost'); - - function mousemove(event) { - if (appended === false && (Math.abs(event.clientX - x) > 4 || Math.abs(event.clientY - y) > 4)) { - appended = true; - - component.classList.add('satus-sortable__chosen'); - - component.baseProvider.appendChild(ghost); - } - - ghost.style.transform = 'translate(' + (event.clientX - offset_x) + 'px, ' + (event.clientY - offset_y) + 'px)'; - } - - function mouseup(event) { - component.classList.remove('satus-sortable__chosen'); - ghost.remove(); - - window.removeEventListener('mousemove', mousemove, true); - window.removeEventListener('mouseup', mouseup, true); - - for (var i = 0, l = children.length; i < l; i++) { - var child = children[i]; - - if (child !== component) { - child.removeEventListener('mouseover', siblingMouseOver); - } - } - - component.dispatchEvent(new CustomEvent('sort')); - - event.stopPropagation(); - - return false; - } - - window.addEventListener('mousemove', mousemove, { - passive: true, - capture: true - }); - - window.addEventListener('mouseup', mouseup, { - passive: true, - capture: true - }); - - function siblingMouseOver(event) { - var parent = this.parentNode, - y = event.layerY / (this.offsetHeight / 100); - - if (y < 50 && this.previousSibling !== component || y >= 50 && this.nextSibling === component) { - parent.insertBefore(component, this); - } else { - parent.insertBefore(component, this.nextSibling); - } - } - - for (var i = 0, l = children.length; i < l; i++) { - var child = children[i]; - - if (child !== component) { - child.addEventListener('mouseover', siblingMouseOver); - } - } - - event.stopPropagation(); - event.preventDefault(); - - return false; - }); - } -}); -/*-------------------------------------------------------------- ->>> MANIFEST ---------------------------------------------------------------*/ - -satus.manifest = function () { - var object = {}; - - if (this.isset('chrome.runtime.getManifest')) { - object = chrome.runtime.getManifest(); - } - - return object; -}; -/*-------------------------------------------------------------- ->>> COLOR: ----------------------------------------------------------------- -# String to array -# RGB to HSL -# HUE to RGB -# HSL to RGB ---------------------------------------------------------------*/ - -satus.color = {}; - - -/*-------------------------------------------------------------- -# STRING TO ARRAY ---------------------------------------------------------------*/ - -satus.color.stringToArray = function (string) { - var match = string.match(/[0-9.]+/g); - - if (match) { - for (var i = 0, l = match.length; i < l; i++) { - match[i] = parseFloat(match[i]); - } - } - - return match; -}; - - -/*-------------------------------------------------------------- -# RGB TO HSL ---------------------------------------------------------------*/ - -satus.color.rgbToHsl = function (array) { - var r = array[0] / 255, - g = array[1] / 255, - b = array[2] / 255, - min = Math.min(r, g, b), - max = Math.max(r, g, b), - h = 0, - s = 0, - l = (min + max) / 2; - - if (min === max) { - h = 0; - s = 0; - } else { - var delta = max - min; - - s = l <= 0.5 ? delta / (max + min) : delta / (2 - max - min); - - if (max === r) { - h = (g - b) / delta + (g < b ? 6 : 0); - } else if (max === g) { - h = (b - r) / delta + 2; - } else if (max === b) { - h = (r - g) / delta + 4; - } - - h /= 6; - } - - h *= 360; - s *= 100; - l *= 100; - - if (array.length === 3) { - return [h, s, l]; - } else { - return [h, s, l, array[3]]; - } -}; - - -/*-------------------------------------------------------------- -# HUE TO RGB ---------------------------------------------------------------*/ - -satus.color.hueToRgb = function (array) { - var t1 = array[0], - t2 = array[1], - hue = array[2]; - - if (hue < 0) { - hue += 6; - } - - if (hue >= 6) { - hue -= 6; - } - - if (hue < 1) { - return (t2 - t1) * hue + t1; - } else if (hue < 3) { - return t2; - } else if (hue < 4) { - return (t2 - t1) * (4 - hue) + t1; - } else { - return t1; - } -}; - - -/*-------------------------------------------------------------- -# HSL TO RGB ---------------------------------------------------------------*/ - -satus.color.hslToRgb = function (array) { - var h = array[0] / 360, - s = array[1] / 100, - l = array[2] / 100, - r, g, b; - - if (s == 0) { - r = g = b = l; - } else { - var hue2rgb = function (p, q, t) { - if (t < 0) t += 1; - if (t > 1) t -= 1; - if (t < 1 / 6) return p + (q - p) * 6 * t; - if (t < 1 / 2) return q; - if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; - return p; - }; - - var q = l < 0.5 ? l * (1 + s) : l + s - l * s; - var p = 2 * l - q; - r = hue2rgb(p, q, h + 1 / 3); - g = hue2rgb(p, q, h); - b = hue2rgb(p, q, h - 1 / 3); - } - - return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)]; -}; -/*-------------------------------------------------------------- ->>> USER ----------------------------------------------------------------- -# OS - # Name - # Bitness -# Browser - # Name - # Version - # Platform - # Manifest - # Languages - # Cookies - # Flash - # Java - # Audio - # Video - # WebGL -# Device - # Screen - # RAM - # GPU - # Cores - # Touch - # Connection ---------------------------------------------------------------*/ - -satus.user = { - browser: {}, - device: {}, - os: {} -}; - -/*-------------------------------------------------------------- -# OS ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# NAME ---------------------------------------------------------------*/ - -satus.user.os.name = function () { - var app_version = navigator.appVersion; - - if (app_version.indexOf('Win') !== -1) { - if (app_version.match(/(Windows 10.0|Windows NT 10.0)/)) { - return 'Windows 10'; - } else if (app_version.match(/(Windows 8.1|Windows NT 6.3)/)) { - return 'Windows 8.1'; - } else if (app_version.match(/(Windows 8|Windows NT 6.2)/)) { - return 'Windows 8'; - } else if (app_version.match(/(Windows 7|Windows NT 6.1)/)) { - return 'Windows 7'; - } else if (app_version.match(/(Windows NT 6.0)/)) { - return 'Windows Vista'; - } else if (app_version.match(/(Windows NT 5.1|Windows XP)/)) { - return 'Windows XP'; - } else { - return 'Windows'; - } - } else if (app_version.indexOf('(iPhone|iPad|iPod)') !== -1) { - return 'iOS'; - } else if (app_version.indexOf('Mac') !== -1) { - return 'macOS'; - } else if (app_version.indexOf('Android') !== -1) { - return 'Android'; - } else if (app_version.indexOf('OpenBSD') !== -1) { - return 'OpenBSD'; - } else if (app_version.indexOf('SunOS') !== -1) { - return 'SunOS'; - } else if (app_version.indexOf('Linux') !== -1) { - return 'Linux'; - } else if (app_version.indexOf('X11') !== -1) { - return 'UNIX'; - } -}; - - -/*-------------------------------------------------------------- -# BITNESS ---------------------------------------------------------------*/ - -satus.user.os.bitness = function () { - if (navigator.appVersion.match(/(Win64|x64|x86_64|WOW64)/)) { - return '64-bit'; - } else { - return '32-bit'; - } -}; - - -/*-------------------------------------------------------------- -# BROWSER ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# NAME ---------------------------------------------------------------*/ - -satus.user.browser.name = function () { - var user_agent = navigator.userAgent; - - if (user_agent.indexOf('Opera') !== -1) { - return 'Opera'; - } else if (user_agent.indexOf('Vivaldi') !== -1) { - return 'Vivaldi'; - } else if (user_agent.indexOf('Edge') !== -1) { - return 'Edge'; - } else if (user_agent.indexOf('Chrome') !== -1) { - return 'Chrome'; - } else if (user_agent.indexOf('Safari') !== -1) { - return 'Safari'; - } else if (user_agent.indexOf('Firefox') !== -1) { - return 'Firefox'; - } else if (user_agent.indexOf('MSIE') !== -1) { - return 'IE'; - } -}; - - -/*-------------------------------------------------------------- -# VERSION ---------------------------------------------------------------*/ - -satus.user.browser.version = function () { - var browser_name = satus.user.browser.name(), - browser_version = navigator.userAgent.match(new RegExp(browser_name + '/([0-9.]+)')); - - return browser_version[1]; -}; - - -/*-------------------------------------------------------------- -# PLATFORM ---------------------------------------------------------------*/ - -satus.user.browser.platform = function () { - return navigator.platform; -}; - - -/*-------------------------------------------------------------- -# MANIFEST ---------------------------------------------------------------*/ - -satus.user.browser.manifest = function () { - return chrome.runtime.getManifest() || {}; -}; - - -/*-------------------------------------------------------------- -# LANGUAGES ---------------------------------------------------------------*/ - -satus.user.browser.languages = function () { - return navigator.languages; -}; - - -/*-------------------------------------------------------------- -# COOKIES ---------------------------------------------------------------*/ - -satus.user.browser.cookies = function () { - if (document.cookie) { - var random_cookie = 'ta{t`nX6cMXK,Wsc'; - - document.cookie = random_cookie; - - if (document.cookie.indexOf(random_cookie) !== -1) { - return true; - } - } - - return false; -}; - - -/*-------------------------------------------------------------- -# FLASH ---------------------------------------------------------------*/ - -satus.user.browser.flash = function () { - try { - if (new ActiveXObject('ShockwaveFlash.ShockwaveFlash')) { - return true; - } - } catch (error) { - if (navigator.mimeTypes['application/x-shockwave-flash']) { - return true; - } - } - - return false; -}; - - -/*-------------------------------------------------------------- -# JAVA ---------------------------------------------------------------*/ - -satus.user.browser.java = function () { - if (satus.isFunction(navigator.javaEnabled) && navigator.javaEnabled()) { - return true; - } else { - return false; - } -}; - - -/*-------------------------------------------------------------- -# AUDIO ---------------------------------------------------------------*/ - -satus.user.browser.audio = function () { - var audio = document.createElement('audio'), - types = { - mp3: 'audio/mpeg', - mp4: 'audio/mp4', - aif: 'audio/x-aiff' - }, - result = []; - - if (satus.isFunction(audio.canPlayType)) { - for (var key in types) { - var can_play_type = audio.canPlayType(types[key]); - - if (can_play_type !== '') { - result.push(key); - } - } - } - - return result; -}; - - -/*-------------------------------------------------------------- -# VIDEO ---------------------------------------------------------------*/ - -satus.user.browser.video = function () { - var video = document.createElement('video'), - types = { - ogg: 'video/ogg; codecs="theora"', - h264: 'video/mp4; codecs="avc1.42E01E"', - webm: 'video/webm; codecs="vp8, vorbis"', - vp9: 'video/webm; codecs="vp9"', - hls: 'application/x-mpegURL; codecs="avc1.42E01E"' - }, - result = []; - - if (satus.isFunction(video.canPlayType)) { - for (var key in types) { - var can_play_type = video.canPlayType(types[key]); - - if (can_play_type !== '') { - result.push(key); - } - } - } - - return result; -}; - - -/*-------------------------------------------------------------- -# WEBGL ---------------------------------------------------------------*/ - -satus.user.browser.webgl = function () { - var cvs = document.createElement('canvas'), - ctx = cvs.getContext('webgl'); - - return ctx && ctx instanceof WebGLRenderingContext; -}; - - -/*-------------------------------------------------------------- -# HARDWARE ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# SCREEN ---------------------------------------------------------------*/ - -satus.user.device.screen = function () { - if (screen) { - return screen.width + 'x' + screen.height; - } -}; - - -/*-------------------------------------------------------------- -# RAM ---------------------------------------------------------------*/ - -satus.user.device.ram = function () { - if ('deviceMemory' in navigator) { - return navigator.deviceMemory + ' GB'; - } -}; - - -/*-------------------------------------------------------------- -# GPU ---------------------------------------------------------------*/ - -satus.user.device.gpu = function () { - var cvs = document.createElement('canvas'), - ctx = cvs.getContext('webgl'); - - if ( - ctx && - ctx instanceof WebGLRenderingContext && - 'getParameter' in ctx && - 'getExtension' in ctx - ) { - var info = ctx.getExtension('WEBGL_debug_renderer_info'); - - if (info) { - return ctx.getParameter(info.UNMASKED_RENDERER_WEBGL); - } - } -}; - - -/*-------------------------------------------------------------- -# CORES ---------------------------------------------------------------*/ - -satus.user.device.cores = function () { - return navigator.deviceConcurrency; -}; - - -/*-------------------------------------------------------------- -# TOUCH ---------------------------------------------------------------*/ - -satus.user.device.touch = function () { - var result = {}; - - if ( - window.hasOwnProperty('ontouchstart') || - window.DocumentTouch && document instanceof window.DocumentTouch || - navigator.maxTouchPoints > 0 || - window.navigator.msMaxTouchPoints > 0 - ) { - result.touch = true; - result.maxTouchPoints = navigator.maxTouchPoints; - } - - return result; -}; - - -/*-------------------------------------------------------------- -# CONNECTION ---------------------------------------------------------------*/ - -satus.user.device.connection = function () { - var result = {}; - - if (typeof navigator.connection === 'object') { - result.type = navigator.connection.effectiveType || null; - - if (navigator.connection.downlink) { - result.speed = navigator.connection.downlink + ' Mbps'; - } - } - - return result; -}; -/*-------------------------------------------------------------- -# SEARCH ---------------------------------------------------------------*/ - -satus.search = function (query, object, callback) { - var elements = ['switch', 'select', 'slider', 'shortcut', 'radio', 'color-picker'], - threads = 0, - results = {}, - excluded = [ - 'baseProvider', - 'layersProvider', - 'parentObject', - 'parentSkeleton', - 'namespaceURI' - ]; - - query = query.toLowerCase(); - - function parse(items, parent) { - threads++; - - for (var key in items) { - if (excluded.indexOf(key) === -1) { - var item = items[key]; - - if (item.component) { - //console.log(key, item.component); - - if (elements.indexOf(item.component) !== -1 && key.indexOf(query) !== -1) { - results[key] = Object.assign({}, item); - } - } - - if ( - satus.isObject(item) && - !satus.isArray(item) && - !satus.isElement(item) && - !satus.isFunction(item) - ) { - parse(item, items); - } - } - } - - threads--; - - if (threads === 0) { - callback(results); - } - } - - parse(object); -}; +var satus={components:{},events:{data:{}},locale:{data:{}},storage:{data:{},type:"extension"},getAnimationDuration:function(e){return 1e3*Number(window.getComputedStyle(e).getPropertyValue("animation-duration").replace(/[^0-9.]/g,""))},append:function(e,t){(t||document.body).appendChild(e)},attr:function(e,t){if(t)for(var n in t){var s=t[n];satus.isFunction(s)&&(s=s()),e.namespaceURI?!1===s?e.removeAttributeNS(null,n):e.setAttributeNS(null,n,s):!1===s?e.removeAttribute(n):e.setAttribute(n,s)}},camelize:function(e){for(var t="",n=0,s=e.length;nparseInt(e,16)),s={name:"AES-GCM",iv:new Uint8Array(n)};try{var a=(new TextDecoder).decode(await crypto.subtle.decrypt(s,await crypto.subtle.importKey("raw",await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t)),s,!1,["decrypt"]),new Uint8Array(atob(e.slice(24)).match(/[\s\S]/g).map(e=>e.charCodeAt(0)))))}catch(e){return!1}return a},encrypt:async function(e,t){var n=crypto.getRandomValues(new Uint8Array(12)),s={name:"AES-GCM",iv:n};return Array.from(n).map(e=>("00"+e.toString(16)).slice(-2)).join("")+btoa(Array.from(new Uint8Array(await crypto.subtle.encrypt(s,await crypto.subtle.importKey("raw",await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t)),s,!1,["encrypt"]),(new TextEncoder).encode(e)))).map(e=>String.fromCharCode(e)).join(""))},data:function(e,t){if(t)for(var n in t){var s=t[n];satus.isFunction(s)&&(s=s()),e.dataset[n]=s}},empty:function(e,t=[]){for(var n=e.childNodes.length-1;-1n.width&&(s=0),t.childrenContainer.style.right=s+"px"):t.childrenContainer.style.left=s+"px",t.childrenContainer.style.top=a+"px",this.skeleton.contextMenu.parentSkeleton=this.skeleton,satus.render(this.skeleton.contextMenu,t.childrenContainer),e.preventDefault(),e.stopPropagation(),!1})}),satus.events.on("render",function(e){!0===e.skeleton.sortable&&e.addEventListener("mousedown",function(e){if(0!==e.button)return!1;var o=this,t=this.getBoundingClientRect(),n=e.clientX,s=e.clientY,a=e.clientX-t.left,r=e.clientY-t.top,i=satus.clone(this),l=this.parentNode.children,u=!1;function c(e){!1===u&&(4>> BACKGROUND ---------------------------------------------------------------- -# +# Locale +# Context menu +# Tab focus/blur +# Message listener +# Uninstall URL --------------------------------------------------------------*/ /*-------------------------------------------------------------- @@ -216,4 +220,4 @@ chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) { # UNINSTALL URL --------------------------------------------------------------*/ -chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); \ No newline at end of file +//chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); \ No newline at end of file From 7320cfc3725d0cd43577e07cabc00c8c157a59e3 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 18 Oct 2022 03:29:07 +0200 Subject: [PATCH 0649/1224] Create firefox-addon-store-builder.py --- .github/ISSUE_TEMPLATE/bug_report.md | 31 ++ .../feature-request---suggestion---idea.md | 47 +++ ...-solution------also-check--discussions-.md | 10 + .github/README.md | 337 ++++++++++++++++++ .github/SECURITY.md | 4 + LICENSE | 22 ++ py/building for browser stores.md | 27 ++ py/firefox-addon-store-builder.py | 1 + 8 files changed, 479 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature-request---suggestion---idea.md create mode 100644 .github/ISSUE_TEMPLATE/other-topic--plan--mission--3rd-party-solution------also-check--discussions-.md create mode 100644 .github/README.md create mode 100644 .github/SECURITY.md create mode 100644 LICENSE create mode 100644 py/building for browser stores.md create mode 100644 py/firefox-addon-store-builder.py diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000..09e27ff0e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,31 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: Bug, help wanted +assignees: '' + +--- + + +_**1.** Thanks for coming! Before submitting please check if the issue has already been reported ever. With [GitHub's issue search (use this link)](https://github.com/ImprovedTube/ImprovedTube/issues?q=) (else removing "is:issue is:open" from the standard search)_ + +_**2.** If you find the issue you can answer/react there to give it your voice (or just say hello :) ),_ + - _If the status is "closed" (=fixed) recently, then Web Stores will also be updates soon. + If it was closed month-years ago, then it reappeared and must be fixed again._ +## Bug Report: + ⚬ *BUG*: + + ⚬ *HOW*: + +⚬ *EXPECTED (/preferred) behavior*: + + ⚬ *Screenshots*: +/ ⚬ *Context*: + +## Setup: +⚬ ImprovedTube Version: +⚬ Browser: +⚬ Settings: +⚬ OS: +⚬ Device: diff --git a/.github/ISSUE_TEMPLATE/feature-request---suggestion---idea.md b/.github/ISSUE_TEMPLATE/feature-request---suggestion---idea.md new file mode 100644 index 000000000..734119dbe --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request---suggestion---idea.md @@ -0,0 +1,47 @@ +--- +name: Feature request / suggestion / idea +about: Suggest an idea for this project +title: '' +labels: Feature request, help wanted +assignees: '' + +--- + + + +⚬ _PROBLEM_: + + +⚬ _SOLUTION_: + + + ⚬ _ALTERNATIVES_: + + + ⚬ _RELEVANCE / SCOPE_: + + +⚬ _"SIDE EFFECTS"_: + + +⚬ _CONTEXT_: +// + Thank you! + +SHORT Table | (Summary) +------------ | ------------- +*Problem* | +*Solution* | +*Alternatives*| +*Scope* | +*Side effects*| +*Context* | diff --git a/.github/ISSUE_TEMPLATE/other-topic--plan--mission--3rd-party-solution------also-check--discussions-.md b/.github/ISSUE_TEMPLATE/other-topic--plan--mission--3rd-party-solution------also-check--discussions-.md new file mode 100644 index 000000000..4af9e623b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/other-topic--plan--mission--3rd-party-solution------also-check--discussions-.md @@ -0,0 +1,10 @@ +--- +name: Other topic, plan, mission, 3rd party solution,... (also check /discussions) +about: Other contributions / issues +title: '' +labels: '' +assignees: ImprovedTube + +--- + + diff --git a/.github/README.md b/.github/README.md new file mode 100644 index 000000000..8300c367d --- /dev/null +++ b/.github/README.md @@ -0,0 +1,337 @@ + + + + +

+ImprovedTube   

+/«Improve YouTube!»/ +is a lightweight & powerful extension to improve your video experience & choice.

+
+ +

+ [Report a bug] + ·[Request feature] + ·[Donate] + ·[Features] +

+ +

YouTube Extension

+ +

+Critiques

+recommended by firefox +by (only ~ 100)
+'Might be the best YouTube Extension Ever'-
+'enhances YouTube in meaningful ways'-
+'Strong add-on, full control. Yet clear & easy'-
+Big thanks ♡ to our contributors, dodieboy,
+translators/wiki-authors & donators :bowtie:
+
+ +### The strongest Youtube Extension
90 proven features - the only one of a kind + Since 2012 we have gradually been adding lightweight features & keeping up with sisyphean maintainance after big Youtube changes (throughout the years we witnessed the birth & fall of other promising & open YouTube Extensions [1](https://github.com/YePpHa/YouTubeCenter "YouTubeCenter"), [2](https://github.com/ParticleCore/Iridium "Iridium"), ... ) Yet adding something is easier & so motivating as there are 500 000 users. [[👪Join us]](https://github.com/code-for-charity/YouTube-Extension/discussions/1006 "github.com/Code-for-Charity"). +#####
Spread the word [📣](Http://Twitter_Whatsapp_Discord_Youtube_Facebook_eMail_Telegram_Signal)
+        - +**W**hy arent there millions of users yet? We didn't write a guide or manual, let alone ads. This project can still fly much higher through your word of mouth & eventually enable us to work on all wishes & more immediate updates around the clock 🌱 + + +

+Planned Features

+ + - 🛈ToolTips + - global Video Controls + - Fullpage Video History/Dashboard + - Smart Filtering/Blocking/Discovery + - Preventing CPU Rendering by default +
+ +

   +🏝🏕 To-DoList

  
+ +##### **1.** **[ ]** [**Documentation, wiki, screenshots, video, ...**](https://github.com/code-for-charity/YouTube-Extension/wiki "We need to help people learning as easily as possible about our 90+ features. (Drafts welcome. This will become 🛈tooltips in the extension too!") +> We need to help people to learn as easily as possible about our [90+ features](https://github.com/ImprovedTube/ImprovedTube/wiki/Features). (Drafts welcome. This will become **🛈ToolTips** in the extension!") **&** **[ ]**[Updating translations](https://github.com/code-for-charity/YouTube-Extension/wiki/Translation-HowTo " - some language files miss additions.") **+** **[ ]**proofreading [eng](https://github.com/ImprovedTube/ImprovedTube/blob/master/_locales/en/messages.json) +#### **2.** [ ][**Plans & Specifications 🧩**](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+sort%3Acomments-desc+is%3Aopen+label%3A🧩Plan%20ready++-label%3A%22not+Goo.+Chrome%22+ "often unique & relevant (special)")
   **&**    [ ] [**organizational Discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=category%3AToDo++category%3AOrganization+ "Future & Structure") +##### **3.** [ ] [**Feature Requests🌟🧚**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3A%22Feature+Request%22+sort%3Acomments-desc+is%3Aopen+-label%3A_++-label%3A%22not+Goo.+Chrome%22+ "- sometimes easy / CSS") - sometimes easy / CSS
     **+** [ ]  [**Wishes in discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=-category%3AToDo+-category%3AOrganization+ "Wishes, Ideas, Questions, News") +#### [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") we aim to offer some bug-bounties [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "❤️").
+**[ ]** Tidy: [(Rest/Unsorted 'issues')](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+is%3Aopen+-label%3Abug+-label%3A%22Feature+Request%22+-label%3A%F0%9F%A7%A9Plan%20ready+-label%3A_+-label%3A%22not+Goo.+Chrome%22+sort%3Acreated-desc++-label%3A"Niche%2Frare+usecase%3F%2Ffun%3F"++-label%3Aunclear "Our github issues, which are not yet labled yet to appear in one of the ToDo-categories above") +> Further reading: [***"Contributing without programming"***](https://github.com/ImprovedTube/YouTube-Extension/discussions/753) & [*"Our CSS, JavaScript, json"*](https://github.com/ImprovedTube/ImprovedTube/pull/371#issuecomment-669725163) ( ***outdated**)* (*Newcomers are [we](https://github.com/ImprovedTube/ImprovedTube/issues/387#issuecomment-664980078)lcome tho! We review all edits & love to collaborate*) +
+ +

     +🧰 Features      

+ + - Fit Video to window & default resolution & Pop-up player + - hiding distractions + - Youtube Themes & Colors + - Video Repeat-, screenshot-, rotate-buttons + - *Many* Customizable hotkeys / shortcuts + +
+ +

      +🔧 Install from source

 
+ +### 1.) **Download & extract the [[latest🧪version]](https://github.com/code4charity/YouTube-Extension/archive/refs/heads/master.zip) or [[release]](https://github.com/code-for-charity/YouTube-Extension/releases)** +- **Safari**: + - 2.) [**#494**](https://github.com/code4charity/YouTube-Extension/issues/494#issuecomment-675098753) + +- **Chrome / Chromium / Brave / Edge / Vivaldi** + - 2.) Go to your Browser's Extensions page (*chrome://extensions/*) + - 3.) Activate `Developer mode` + - 4.) Click the `Load unpacked` button & Select the extracted folder + +- **Firefox / LibreWolf / Waterfox / IceCat** + - 2.) Go to `Add-ons` (*about:addons*) + - 3.) Click on `Extensions` tab + - 4.) Click on `Debug Add-ons` (*about:debugging#/runtime/this-firefox*) + - 5.) Click on `Load Temporary Add-on…` + - 6.) Select the `manifest.json` file from unzipped folder +
+ +

  +🎁 Extensions/Projects

 ▼
+ +### Our extensions +* **`Browsing / Filters`:** +[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)
+[**unFreeze me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!") [](https://github.com/code-for-charity/hid-control-prevention) +[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/custom-user-agent) +[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm) [](https://github.com/code-for-charity/regex-replace) + +* `Research`: +[Regex Search](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex-search) +* **`Video / Media`:** (Features to be integrated in ImprovedTube...)
+[**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper) +[**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame) +[**`unBlob`**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob) +(Equalizer[](https://github.com/code-for-charity/equalizer)) + +* 🐣`Home`: +**`History Manager`** +( Start Page ) +[`TextEditor`]([https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka?hl=de))[](https://github.com/code-for-charity/Texteditor2) +[`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/to-do) +([`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch)) + +### Open-Source & Git +[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") +[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot) +
**`Development`:** [**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library [**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library +
[TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player), +
+ + +

+🌎 Translators

+✔️EN+ +en_GB : +KorbinCode +
Proofreaders:___ (You?)
+✔️CN(zh_CN) : +niceRAM, +ausers
+✔️CN(zh_TW) : +Still34, +water903,
+suitangi
+ES : +Kioraga, +Compvictor, +dimateos
+HI : +monishamandal02, +BRAVO68WEB
+FR : +leghort, +Eymiks, +Solvabl
+AR : +Raayib
+✔️BN : +BRAVO68WEB
+RU : +qweered,alexesprit
+✔️pt_BR : +dthiago, +Mike-Correa
+DavidBrazSan
+PT : +DrNopt
+ID : +Bagus23, +A.Muttaqin
+✔️DE : +Termuellinator, +css-smueller
+✔️JA : +utuhiro78
+TR : +onurdumangoz, +daswareinfach
+VN : +zeref-dragneel
+KO : +msc9533, +LYHyoung
+❌(Iranian) Persian : +_____(You?)
+✔️IT : +urfausto
+❌TH Thai : +______(You?)
+✔️PL : +FluidExtractor
+Ukrainian : +(You?)
+Hebrew : +(You?)
+Czech : +(You?)
+SE Swedish : +(You?)
+NL : +aron-hoogeveen, +Vistaus
+RO : +hateofhades
+SI : +AshenNethsara
+EL(Greek) : +molyvius
+DA Danish : +(You?)
+Hungarian : +(You?)
+FI Finnish : +(You?)
+Serbian : +(You?)
+Slovak : +(You?)
+BG Bulgarian : +(You?)
+no_NB : +comradekingu
+HR(Croatian) : +mbeara
+Croatian : +(You?)
+NO : +master3395, +comradekingu
+SK : +bbc-s
+Catalan, Valencian : +(You?)
+Estonian : +(You?)
+
= missing some additions/updates + +
+ +
The following popular languages are
+spoken mainly. But dont hesitate to add
+one of them. (Even if or fun)
+Urdu +Nigerian Pidgin (English Creole)
+Western-&Eastern-Punjabi
+Marathi(Indo-European)Telugu
+Tamil Yue Chinese (incl. Cantonese)
+Tagalog (New name: Filipino)
Wu Chinese (incl. Shanghainese)
+Hausa
Egyptian Spoken Arabic
+SwahiliJavaneseKannadaGujarati
+Amharic, Bhojpuri,
+Min Nan Chinese (incl. Hokkien),
+Jin Chinese Yoruba Hakka Chinese,
+Burmese,
+Spoken Arabic: Sudanese & Algerian
+Lingala, Malaysian Malay

+(Combined these have more native
+speakers than English + Spanish + Hindi.
+And more second-language speakers than
+Chinese + Hindi + Spanish)
+
+
+ + +

     +📟 "Ticker"

  
+ +###### ❔[**ImprovedTube controls** in, under or around the video player or cursor](https://github.com/code4charity/YouTube-Extension/issues/1445).
❔[**Meaningful/Most similar extensions**? Social-Fixer, Youtube Enhancer, Simplify, ...](https://github.com/code4charity/YouTube-Extension/issues/1016).
📟 We are focused on update, bugs & UX but please keep up your wishes for Features!
📟 Enjoy **our projects: global** [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl), to tweak CSS everywhere + Theme engine in the making, ...
📟 **2021:** Firefox, Edge, Opera, Whale added (please try&rate) +
+ +#####
💡 Got great ideas?
+ +We'll work on novel (new & unique) projects [github/**Wish-Factory**](https://github.com/code-for-charity/wish-factory "💡🎁") +
(or ideas@improvedtube.com) + +

     +🌾👩‍💻 "Behind the scenes"

  
+ +web store +web store analytics +youtube recommmendation +
+Do you need to run a popular extension, site, app or repo?
We'll love to help meaningful projects@improvedtube.com +
+ + + + + + + + +


+ + + + + + +

     +📜Old Introduction:

   
  
+ +[ImprovedTube](https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd), +      is an extension we built to refine your YouTube experience. A one-stop-shop with many powerful features to enhance YouTube, yet liteweight. A larger player & tidy YouTube UI / hiding distractions were the first loved feature. And there was so much left to build and are many clever features to come still.        ImprovedTube is designed with our own UI library: [Satus](https://github.com/victor-savinov/satus) (to manage your settings efficiently & create familiar apps/['cousins](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl) easily.)       Please spread the word: ImprovedTube is the only project of it's kind, because other open Youtube Extensions resigned. No other project provides so much CSS to adjust a website[🦄](https://github.com/search?q=stars%3A%3E700++size%3A%3E3000+++language%3ACSS++App+OR+Addon+OR+Extension+NOT+framework+NOT+apps&type=Repositories&s=updated&o=desc). +

+ + chrome-web-store-linkChrome-users

+ +### Some ImprovedTube features: +- Video quality +- Themes and customisation +- Repeat-, screenshot-, rotate-buttons +- Pop-up player +- Ads management +- Hide Cards and Annotations +- Customise video page appearance (always expand description, hide related videos etc.) +- Channel page customisations +- Customisation of hotkeys/shortcuts +- Statistics +- Volume mixer +_[Full list](https://github.com/ImprovedTube/YouTube/wiki/Features)_ + +## 🔧 Install from source + +### 1.) **Download & extract the [[latest🧪version]](https://github.com/code4charity/YouTube-Extension/archive/refs/heads/master.zip) or [[release]](https://github.com/code-for-charity/YouTube-Extension/releases)** +- **Safari**: + - 2.) [Issue #494](https://github.com/code4charity/YouTube-Extension/issues/494#issuecomment-675098753) + +- **Chrome / Chromium / Brave / Edge / Vivaldi** + - 2.) Go to your Browser's Extensions page (*chrome://extensions/*) + - 3.) Activate `Developer mode` + - 4.) Click the `Load unpacked` button & Select the extracted folder + +- **Firefox / LibreWolf / Waterfox / IceCat** + - 2.) Go to `Add-ons` (*about:addons*) + - 3.) Click on `Extensions` tab + - 4.) Click on `Debug Add-ons` (*about:debugging#/runtime/this-firefox*) + - 5.) Click on `Load Temporary Add-on…` + - 6.) Select the `manifest.json` file from unzipped folder + + #### Web browser support +|[Brave](https://brave.com)
Brave | [Chromium](https://github.com/chromium/chromium)
Chromium | [Chrome](https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd)
Chrome | [Edge](https://www.microsoft.com/edge)
Edge | [Firefox](https://foundation.mozilla.org)
Firefox | [Opera](https://addons.opera.com/en/extensions/details/install-chrome-extensions/)
Opera| [Safari](https://www.apple.com/safari/)
Safari | [Vivaldi](https://github.com/ric2b/Vivaldi-browser)
Vivaldi | +| --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | +| 0.52+ | 49.0+ | 49.0+ | 79.0+ | 44.0+ | 36.0+ | x.x+ | 1.0+ | +
diff --git a/.github/SECURITY.md b/.github/SECURITY.md new file mode 100644 index 000000000..f1dcb979a --- /dev/null +++ b/.github/SECURITY.md @@ -0,0 +1,4 @@ +info: ImprovedTube is a high layer product (in the Browser, with limited permission, youtube.com only) +and we need to pass the new google webstore reviews/audit (year 2021). Nonetheless, if update ever is urgent please post here in public and / or write to bugs@improvedtube.com using the keyword ASAP. (for example if the youtube player isn't working properly for many people.) + + diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..16437f3cc --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +©️ 2012-2022 ( no warranty / liablity ) Thank you! + +For simplicity & intellectual growth: Unless stated otherwise, all accepted pull-requests are assumed, +to come under a viral copyleft license, GNU agpl-3.0-7abcdef, for the world. And free of copyrights to the original maintainers. (these intellectual contributions are granted to the original maintainers free-of-charge, non-exclusively, for publishing & modification. Contributors do have the right to be mentioned in credits) +--- +'Friendly/charitable License'(-DRAFT. Talk to us? ☺ if you are into international law): +FREEDOMS: +1. Personal use: This was made for you ♡ If you like it consider donating. Our work is efficient. (If you ever change or repurpose anything, please take the time to show us ♡.) +2. Contributors: Unlike popular licences we would like to acknowledge that you become a shareholder of this project / 'cooperative, proportionally to the time well spent. Please vote about our futures actions. +3. Publishers: Unmodified Distribution welcome! permitted. (just don't wrap it in ads or drive-by installs) + 3.1 Modified Versions or piece/s of our code: + - Registered Charity organisations: you can modify / repurpose. (Just don't remove our links or state the source well.) + - ONLY RESTRICTION: commercially publishing/repurosing any of the code, that is not the full, such as 'version 3.8'. Written permission/contract is required. No such permission was granted to anybody as of 2022. Exception: OS's like Debian, Fedora. + +This licence refers to: https://github.com/code4charity/YouTube-Extension +--- +COMMENT/Postamble: Reason for the specific restriction: 1. Some publishers use [our] code without permission commercially, with [excessive] adware/spyware. +Together they can have more users than the original, since software is often not chosen well. +Thus we rationally/responsibly have to care. - Inspite of the tendency for smart behavior, to be superior on a long-term, as assumed by licences like GNU, +marketing / competition / economy are not fair in the present. Billions of users dont review every software choice +(2. For this project we can't imagine requiring to ask first will hinder any good cause but only help each.) + diff --git a/py/building for browser stores.md b/py/building for browser stores.md new file mode 100644 index 000000000..62369dde4 --- /dev/null +++ b/py/building for browser stores.md @@ -0,0 +1,27 @@ +#### EVERY EXTENSION: +- Edge: doesnt allow a chrome update url + - update URL edge: https://edge.microsoft.com/extensionwebstorebase/v1/crx , chrome: https://clients2.google.com/service/update2/crx + +##### Extension name + + - Edge & Whale deny ' (Replace ' with *) + - Whale denies '&' (replace with '+') + - Opera denies Emoji (delete) + +- Microsoft store has a bug/complification with languages https://github.com/code4charity/YouTube-Extension/discussions/966#discussioncomment-963315 + +##### FIREFOX: + +- Security: remove or comment-out: "remote content" (googleapis.com/youtube) called as dynamic innerHtml +- Version 3.2: Firefox has commented-out // video.parentNode.parentNode.pauseVideo(); (fixes autoplay-bug) + +#### Firefox & Opera : + +- Require moving google analytics. We can removing it from the Repo & only add it when generating the google webstore version. + +#### ImprovedTube: +- Repo will include m.youtube permissions (firefox addons are available on phones)
_(besides Google Webstore version remains with www . youtube only (by mistake), until we announce change)_ + - & *.youtube.com + global permission, to work for all \. + + + diff --git a/py/firefox-addon-store-builder.py b/py/firefox-addon-store-builder.py new file mode 100644 index 000000000..8146d2803 --- /dev/null +++ b/py/firefox-addon-store-builder.py @@ -0,0 +1 @@ +asdasdad From 64f493c8dae2d7399a0a4a6875c5c771b70d5dae Mon Sep 17 00:00:00 2001 From: Improved Date: Thu, 20 Oct 2022 12:16:29 +0200 Subject: [PATCH 0650/1224] a --- .github/github.png | Bin 0 -> 8823 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/github.png diff --git a/.github/github.png b/.github/github.png new file mode 100644 index 0000000000000000000000000000000000000000..bebf88e667ab098a2d7884a7e410c516f55a886c GIT binary patch literal 8823 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 literal 0 HcmV?d00001 From 32547968ed619f72605bab1f714badcccbf1f170 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 20 Oct 2022 12:24:42 +0200 Subject: [PATCH 0651/1224] Update README.md --- .github/README.md | 119 ++++++++++++++++++++++++---------------------- 1 file changed, 61 insertions(+), 58 deletions(-) diff --git a/.github/README.md b/.github/README.md index 8300c367d..24e5a1522 100644 --- a/.github/README.md +++ b/.github/README.md @@ -17,26 +17,28 @@ is a lightweight & powerful extension to improve your video experience & choice.

[Report a bug] - ·[Request feature] - ·[Donate] - ·[Features] + · [Request feature] + · [Donate] + · [Features]

YouTube Extension

-

-Critiques

+

Critiques

recommended by firefox by (only ~ 100)
'Might be the best YouTube Extension Ever'-
'enhances YouTube in meaningful ways'-
-'Strong add-on, full control. Yet clear & easy'-
+'Strong add-on, full control. Yet clear & easy'-
+
Big thanks ♡ to our contributors, dodieboy,
-translators/wiki-authors & donators :bowtie:
-
+translators/wiki-authors & donators :bowtie:
+
### The strongest Youtube Extension
90 proven features - the only one of a kind - Since 2012 we have gradually been adding lightweight features & keeping up with sisyphean maintainance after big Youtube changes (throughout the years we witnessed the birth & fall of other promising & open YouTube Extensions [1](https://github.com/YePpHa/YouTubeCenter "YouTubeCenter"), [2](https://github.com/ParticleCore/Iridium "Iridium"), ... ) Yet adding something is easier & so motivating as there are 500 000 users. [[👪Join us]](https://github.com/code-for-charity/YouTube-Extension/discussions/1006 "github.com/Code-for-Charity"). + Since 2012 we have gradually been adding lightweight features & keeping up with Youtube changes. +(throughout the years we witnessed the birth & fall of other promising & open YouTube Extensions [1](https://github.com/YePpHa/YouTubeCenter "YouTubeCenter"), [2](https://github.com/ParticleCore/Iridium "Iridium"), ... ) +Today adding something is easier & so motivating as there are 500 000 users. [[👪Join us]](https://github.com/code-for-charity/YouTube-Extension/discussions/1006 "github.com/Code-for-Charity"). #####
Spread the word [📣](Http://Twitter_Whatsapp_Discord_Youtube_Facebook_eMail_Telegram_Signal)
        - **W**hy arent there millions of users yet? We didn't write a guide or manual, let alone ads. This project can still fly much higher through your word of mouth & eventually enable us to work on all wishes & more immediate updates around the clock 🌱 @@ -46,7 +48,7 @@ Big thanks ♡ to our

     🧰 Features      

- - Fit Video to window & default resolution & Pop-up player - - hiding distractions - - Youtube Themes & Colors + - Fit Video to window, default resolution or pop-up player + - Hiding distractions + - Youtube Themes, Colors & night schedule - Video Repeat-, screenshot-, rotate-buttons - - *Many* Customizable hotkeys / shortcuts + - Customizable hotkeys / shortcuts
@@ -95,44 +97,45 @@ Planned Features - 6.) Select the `manifest.json` file from unzipped folder -

  -🎁 Extensions/Projects

 ▼
+

+ 🎁Extensions/Projects

### Our extensions * **`Browsing / Filters`:** -[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)
-[**unFreeze me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!") [](https://github.com/code-for-charity/hid-control-prevention) -[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/custom-user-agent) -[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm) [](https://github.com/code-for-charity/regex-replace) +[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)
+[**unFreeze me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!") [](https://github.com/code-for-charity/hid-control-prevention) +[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/custom-user-agent) +[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm) [](https://github.com/code-for-charity/regex-replace) * `Research`: -[Regex Search](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex-search) +[Regex Search](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex-search) * **`Video / Media`:** (Features to be integrated in ImprovedTube...)
-[**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper) -[**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame) -[**`unBlob`**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob) -(Equalizer[](https://github.com/code-for-charity/equalizer)) - -* 🐣`Home`: -**`History Manager`** -( Start Page ) -[`TextEditor`]([https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka?hl=de))[](https://github.com/code-for-charity/Texteditor2) -[`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/to-do) -([`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch)) - -### Open-Source & Git -[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") -[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot) -
**`Development`:** [**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library [**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library -
[TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player), -
+[**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper) +[**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame) +[**`unBlob`**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob) +(Equalizer[](https://github.com/code-for-charity/equalizer)) + +* `Home`: +**`History Manager`** +( Start Page ) +[`TextEditor`]([https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka?hl=de))[](https://github.com/code-for-charity/Texteditor2) +[`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/to-do) +([`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch)) + +### **`Development`:** [**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library [**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library ([TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player)) + +### Git Community +🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") +🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot) + +
-

🌎 Translators

+
✔️EN+ -en_GB : -KorbinCode + en_GB : +KorbinCode
Proofreaders:___ (You?)
✔️CN(zh_CN) : niceRAM, @@ -157,7 +160,8 @@ Planned Features
✔️BN : BRAVO68WEB
RU : -qweered,alexesprit
+qweered, +alexesprit
✔️pt_BR : dthiago, Mike-Correa
@@ -168,7 +172,7 @@ Planned Features
Bagus23, A.Muttaqin
✔️DE : -Termuellinator, +Termuellinator, css-smueller
✔️JA : utuhiro78
@@ -231,36 +235,35 @@ Planned Features
Catalan, Valencian : (You?)
Estonian : -(You?)
-
= missing some additions/updates +(You?)
+
+ = missing some additions/updates
-
The following popular languages are
-spoken mainly. But dont hesitate to add
-one of them. (Even if or fun)
-Urdu +
The following popular languages are
+spoken mainly. But dont hesitate to add
one of them. (Even if just for fun)

+Urdu Nigerian Pidgin (English Creole)
Western-&Eastern-Punjabi
Marathi(Indo-European)Telugu
Tamil Yue Chinese (incl. Cantonese)
Tagalog (New name: Filipino)
Wu Chinese (incl. Shanghainese)
-Hausa
Egyptian Spoken Arabic
+HausaEgyptian Spoken Arabic
SwahiliJavaneseKannadaGujarati
Amharic, Bhojpuri,
Min Nan Chinese (incl. Hokkien),
Jin Chinese Yoruba Hakka Chinese,
Burmese,
Spoken Arabic: Sudanese & Algerian
-Lingala, Malaysian Malay

-(Combined these have more native
+Lingala, Malaysian Malay
+(Combined these have more first-language
speakers than English + Spanish + Hindi.
And more second-language speakers than
-Chinese + Hindi + Spanish)
-
-
- - +Chinese + Hindi + Spanish)
+
+ +

     📟 "Ticker"

  
From c4de1de4b5f7336e0ecd3a05d6b687777c206ba8 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 20 Oct 2022 12:35:16 +0200 Subject: [PATCH 0652/1224] Update README.md --- .github/README.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/.github/README.md b/.github/README.md index 24e5a1522..57489705c 100644 --- a/.github/README.md +++ b/.github/README.md @@ -101,11 +101,12 @@ Planned Features 🎁Extensions/Projects▼ ### Our extensions -* **`Browsing / Filters`:** -[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)
-[**unFreeze me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!") [](https://github.com/code-for-charity/hid-control-prevention) -[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/custom-user-agent) -[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm) [](https://github.com/code-for-charity/regex-replace) +* **`Browsing`:** +[**`History Manager`**]
+[[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)]
+[[**unFreeze me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/hid-control-prevention)] +[[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/custom-user-agent)] +[[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm) [](https://github.com/code-for-charity/regex-replace)] * `Research`: [Regex Search](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex-search) @@ -116,13 +117,13 @@ Planned Features (Equalizer[](https://github.com/code-for-charity/equalizer)) * `Home`: -**`History Manager`** + ( Start Page ) -[`TextEditor`]([https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka?hl=de))[](https://github.com/code-for-charity/Texteditor2) -[`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/to-do) -([`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch)) +[[`TextEditor`]([https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka?hl=de))[](https://github.com/code-for-charity/Texteditor2)] +[[`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/to-do)] +[[`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)")] -### **`Development`:** [**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library [**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library ([TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player)) +### **`Development`:** [[**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library] [[**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library] ([TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player)) ### Git Community 🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") From 30f138eb2915b5c33f3faff844aee85d36722632 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 20 Oct 2022 12:43:23 +0200 Subject: [PATCH 0653/1224] Update README.md --- .github/README.md | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/.github/README.md b/.github/README.md index 57489705c..67142b482 100644 --- a/.github/README.md +++ b/.github/README.md @@ -101,33 +101,31 @@ Planned Features 🎁Extensions/Projects▼ ### Our extensions -* **`Browsing`:** -[**`History Manager`**]
-[[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)]
+[**`History Manager`**] [[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)]
[[**unFreeze me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/hid-control-prevention)] [[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/custom-user-agent)] [[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm) [](https://github.com/code-for-charity/regex-replace)] -* `Research`: -[Regex Search](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex-search) -* **`Video / Media`:** (Features to be integrated in ImprovedTube...)
-[**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper) -[**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame) -[**`unBlob`**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob) +* Research: +[[Regex Search](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex-search)] +* **Video / Media:** (Features to be integrated in ImprovedTube...)
+[[**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper)] +[[**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame)] +[[**`unBlob`**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob)] (Equalizer[](https://github.com/code-for-charity/equalizer)) -* `Home`: - +Home: ( Start Page ) [[`TextEditor`]([https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka?hl=de))[](https://github.com/code-for-charity/Texteditor2)] [[`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/to-do)] [[`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)")] -### **`Development`:** [[**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library] [[**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library] ([TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player)) +#### **Development:** +[[**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library] [[**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library] ([TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player)) -### Git Community -🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") -🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot) +#### Git Community: +[🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex")] +[🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot)]
From 351ed98d2746364b7a1cd48bce5afa941468fce5 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 20 Oct 2022 12:53:38 +0200 Subject: [PATCH 0654/1224] Update README.md --- .github/README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/README.md b/.github/README.md index 67142b482..de4302231 100644 --- a/.github/README.md +++ b/.github/README.md @@ -56,13 +56,14 @@ Planned Features

   🏝🏕 To-DoList

  
- + +#### **0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we offer bug-bounties, if you are poor [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "❤️")>.
##### **1.** **[ ]** [**Documentation, wiki, screenshots, video, ...**](https://github.com/code-for-charity/YouTube-Extension/wiki "We need to help people learning as easily as possible about our 90+ features. (Drafts welcome. This will become 🛈tooltips in the extension too!") -> We need to help people to learn as easily as possible about our [90+ features](https://github.com/ImprovedTube/ImprovedTube/wiki/Features). (Drafts welcome. This will become **🛈ToolTips** in the extension!") **&** **[ ]**[Updating translations](https://github.com/code-for-charity/YouTube-Extension/wiki/Translation-HowTo " - some language files miss additions.") **+** **[ ]**proofreading [eng](https://github.com/ImprovedTube/ImprovedTube/blob/master/_locales/en/messages.json) +> We need to help people to learn as easily as possible about our [90+ features](https://github.com/ImprovedTube/ImprovedTube/wiki/Features). (Drafts welcome. This will become **🛈ToolTips** in the extension!")
+**[ ]**[Updating translations](https://github.com/code-for-charity/YouTube-Extension/wiki/Translation-HowTo " - some language files miss additions.") +**[ ]**proofreading [eng](https://github.com/ImprovedTube/ImprovedTube/blob/master/_locales/en/messages.json) #### **2.** [ ][**Plans & Specifications 🧩**](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+sort%3Acomments-desc+is%3Aopen+label%3A🧩Plan%20ready++-label%3A%22not+Goo.+Chrome%22+ "often unique & relevant (special)")
   **&**    [ ] [**organizational Discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=category%3AToDo++category%3AOrganization+ "Future & Structure") ##### **3.** [ ] [**Feature Requests🌟🧚**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3A%22Feature+Request%22+sort%3Acomments-desc+is%3Aopen+-label%3A_++-label%3A%22not+Goo.+Chrome%22+ "- sometimes easy / CSS") - sometimes easy / CSS
     **+** [ ]  [**Wishes in discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=-category%3AToDo+-category%3AOrganization+ "Wishes, Ideas, Questions, News") -#### [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") we aim to offer some bug-bounties [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "❤️").
-**[ ]** Tidy: [(Rest/Unsorted 'issues')](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+is%3Aopen+-label%3Abug+-label%3A%22Feature+Request%22+-label%3A%F0%9F%A7%A9Plan%20ready+-label%3A_+-label%3A%22not+Goo.+Chrome%22+sort%3Acreated-desc++-label%3A"Niche%2Frare+usecase%3F%2Ffun%3F"++-label%3Aunclear "Our github issues, which are not yet labled yet to appear in one of the ToDo-categories above") + +###### **0.1. [ ]** Tidy: [(Rest/Unsorted 'issues')](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+is%3Aopen+-label%3Abug+-label%3A%22Feature+Request%22+-label%3A%F0%9F%A7%A9Plan%20ready+-label%3A_+-label%3A%22not+Goo.+Chrome%22+sort%3Acreated-desc++-label%3A"Niche%2Frare+usecase%3F%2Ffun%3F"++-label%3Aunclear "Our github issues, which are not yet labled yet to appear in one of the ToDo-categories above") > Further reading: [***"Contributing without programming"***](https://github.com/ImprovedTube/YouTube-Extension/discussions/753) & [*"Our CSS, JavaScript, json"*](https://github.com/ImprovedTube/ImprovedTube/pull/371#issuecomment-669725163) ( ***outdated**)* (*Newcomers are [we](https://github.com/ImprovedTube/ImprovedTube/issues/387#issuecomment-664980078)lcome tho! We review all edits & love to collaborate*)
From 5a2946c2c9dac7d66725936ee5a471b12e0e516b Mon Sep 17 00:00:00 2001 From: Toni Kaplan Date: Fri, 21 Oct 2022 01:09:50 -0400 Subject: [PATCH 0655/1224] add hide comments count option (issue #1440) --- _locales/en_US/messages.json | 3 +++ .../youtube-features/appearance/details/details.css | 7 +++++++ options-page/skeleton-parts/appearance.js | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json index d5017dceb..d691f9a7a 100644 --- a/_locales/en_US/messages.json +++ b/_locales/en_US/messages.json @@ -440,6 +440,9 @@ "hideCards": { "message": "Hide cards" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/content-scripts/extension-context/youtube-features/appearance/details/details.css index 19e253350..95c02cb8f 100644 --- a/content-scripts/extension-context/youtube-features/appearance/details/details.css +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.css @@ -23,6 +23,13 @@ html[it-hide-views-count='true'] #info #count + #info-strings>#dot { display: none !important; } +/*-------------------------------------------------------------- +# HIDE COMMENTS COUNT +--------------------------------------------------------------*/ + +html[it-hide-comments-count='true'] #comments #count { + display: none !important; +} /*-------------------------------------------------------------- # HIDE DATE diff --git a/options-page/skeleton-parts/appearance.js b/options-page/skeleton-parts/appearance.js index ff44c2127..f3b3b440f 100644 --- a/options-page/skeleton-parts/appearance.js +++ b/options-page/skeleton-parts/appearance.js @@ -454,6 +454,11 @@ extension.skeleton.main.layers.section.appearance.on.click.comments = { hide_author_avatars: { component: 'switch', text: 'Hide Avatars' + }, + hide_comments_count: { + component: 'switch', + text: 'hideCommentsCount', + tags: 'hide,remove' } } } From 1b8eb85b97d6fd0236d6ce073e8755c494126ee4 Mon Sep 17 00:00:00 2001 From: Toni Kaplan Date: Fri, 21 Oct 2022 01:11:39 -0400 Subject: [PATCH 0656/1224] add hide comments count option locales (issue #1440) --- _locales/am/messages.json | 3 +++ _locales/ar/messages.json | 3 +++ _locales/bg/messages.json | 3 +++ _locales/bn/messages.json | 3 +++ _locales/ca/messages.json | 3 +++ _locales/cs/messages.json | 3 +++ _locales/da/messages.json | 3 +++ _locales/de/messages.json | 3 +++ _locales/el/messages.json | 3 +++ _locales/en/messages.json | 3 +++ _locales/en_GB/messages.json | 3 +++ _locales/es/messages.json | 3 +++ _locales/es_419/messages.json | 3 +++ _locales/et/messages.json | 3 +++ _locales/fa/messages.json | 3 +++ _locales/fi/messages.json | 3 +++ _locales/fil/messages.json | 3 +++ _locales/fr/messages.json | 3 +++ _locales/gu/messages.json | 3 +++ _locales/he/messages.json | 3 +++ _locales/hi/messages.json | 3 +++ _locales/hr/messages.json | 3 +++ _locales/hu/messages.json | 3 +++ _locales/id/messages.json | 3 +++ _locales/it/messages.json | 3 +++ _locales/ja/messages.json | 3 +++ _locales/kn/messages.json | 3 +++ _locales/ko/messages.json | 3 +++ _locales/lt/messages.json | 3 +++ _locales/lv/messages.json | 3 +++ _locales/ml/messages.json | 3 +++ _locales/mr/messages.json | 3 +++ _locales/ms/messages.json | 3 +++ _locales/nb_NO/messages.json | 3 +++ _locales/nl/messages.json | 3 +++ _locales/no/messages.json | 3 +++ _locales/pl/messages.json | 3 +++ _locales/pt_BR/messages.json | 3 +++ _locales/pt_PT/messages.json | 3 +++ _locales/ro/messages.json | 3 +++ _locales/ru/messages.json | 3 +++ _locales/si/messages.json | 3 +++ _locales/sk/messages.json | 3 +++ _locales/sl/messages.json | 3 +++ _locales/sr/messages.json | 3 +++ _locales/sv/messages.json | 3 +++ _locales/sw/messages.json | 3 +++ _locales/ta/messages.json | 3 +++ _locales/te/messages.json | 3 +++ _locales/th/messages.json | 3 +++ _locales/tr/messages.json | 3 +++ _locales/uk/messages.json | 3 +++ _locales/vi/messages.json | 3 +++ _locales/zh_CN/messages.json | 3 +++ _locales/zh_TW/messages.json | 3 +++ 55 files changed, 165 insertions(+) diff --git a/_locales/am/messages.json b/_locales/am/messages.json index 3b0665c05..244080cb7 100644 --- a/_locales/am/messages.json +++ b/_locales/am/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index d0d90c95c..14feacc43 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -455,6 +455,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/bg/messages.json +++ b/_locales/bg/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index c0874e2f8..cbc80d2bd 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "কান্ট্রি কোড লুকান" }, diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/ca/messages.json +++ b/_locales/ca/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/cs/messages.json +++ b/_locales/cs/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/da/messages.json b/_locales/da/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/da/messages.json +++ b/_locales/da/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index ca65d3209..b6c445319 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount": { + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Ländercode ausblenden" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 0d430094a..251a34de6 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index bc176a47f..425e2ac12 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -461,6 +461,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json index d5017dceb..d691f9a7a 100644 --- a/_locales/en_GB/messages.json +++ b/_locales/en_GB/messages.json @@ -440,6 +440,9 @@ "hideCards": { "message": "Hide cards" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index b37898cbe..b17102028 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Ocultar código de país" }, diff --git a/_locales/es_419/messages.json b/_locales/es_419/messages.json index e54a64526..4a123895b 100644 --- a/_locales/es_419/messages.json +++ b/_locales/es_419/messages.json @@ -440,6 +440,9 @@ "hideCards": { "message": "Ocultar tarjetas" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Ocultar código de país" }, diff --git a/_locales/et/messages.json b/_locales/et/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/et/messages.json +++ b/_locales/et/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/fa/messages.json b/_locales/fa/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/fa/messages.json +++ b/_locales/fa/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/fi/messages.json b/_locales/fi/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/fi/messages.json +++ b/_locales/fi/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/fil/messages.json b/_locales/fil/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/fil/messages.json +++ b/_locales/fil/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 21f62803f..ed89693cb 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/gu/messages.json b/_locales/gu/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/gu/messages.json +++ b/_locales/gu/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/he/messages.json b/_locales/he/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/he/messages.json +++ b/_locales/he/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/hi/messages.json b/_locales/hi/messages.json index 94ef520b7..20ba9f309 100644 --- a/_locales/hi/messages.json +++ b/_locales/hi/messages.json @@ -449,6 +449,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "देश कोड छुपाएं" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 81f98e14c..0a338177b 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/hu/messages.json b/_locales/hu/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/hu/messages.json +++ b/_locales/hu/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 7dc9dd0a7..ad915ed5c 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 135004009..55917e7fa 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Nascondi codice paese" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index ec09277f6..04b651a9a 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "地域コードを隠す" }, diff --git a/_locales/kn/messages.json b/_locales/kn/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/kn/messages.json +++ b/_locales/kn/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index a1ad52ede..ba014ecf0 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "국가코드 숨기기" }, diff --git a/_locales/lt/messages.json b/_locales/lt/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/lt/messages.json +++ b/_locales/lt/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/lv/messages.json b/_locales/lv/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/lv/messages.json +++ b/_locales/lv/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/ml/messages.json b/_locales/ml/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/ml/messages.json +++ b/_locales/ml/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/mr/messages.json b/_locales/mr/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/mr/messages.json +++ b/_locales/mr/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/ms/messages.json b/_locales/ms/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/ms/messages.json +++ b/_locales/ms/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index e5e5e822a..6b4dcac9a 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -449,6 +449,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 333cc9f22..2a8115cb5 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Verberg landcode" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 010be5442..84ad762e7 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 035244bd0..87aed820c 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Ukryj kod kraju" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 1ae4fab55..6b14807eb 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Ocultar código do país" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 51a561317..2968c3cb8 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 41417d7d0..096ff76b8 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 28538f2af..844c0bdaf 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -455,6 +455,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Скрывать код страны" }, diff --git a/_locales/si/messages.json b/_locales/si/messages.json index cee076e1e..1729a42d4 100644 --- a/_locales/si/messages.json +++ b/_locales/si/messages.json @@ -449,6 +449,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Country code එක හංගන්න" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 2e4f45927..6cfc26d2f 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/sl/messages.json b/_locales/sl/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/sl/messages.json +++ b/_locales/sl/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/sr/messages.json +++ b/_locales/sr/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/sw/messages.json b/_locales/sw/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/sw/messages.json +++ b/_locales/sw/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/ta/messages.json b/_locales/ta/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/ta/messages.json +++ b/_locales/ta/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/te/messages.json b/_locales/te/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/te/messages.json +++ b/_locales/te/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/th/messages.json b/_locales/th/messages.json index 0d4866397..39b48b8d4 100644 --- a/_locales/th/messages.json +++ b/_locales/th/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 975af72a7..ac03d0ecb 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Ülke kodunu gizle" }, diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json index b467f5ea3..24e78d8a8 100644 --- a/_locales/uk/messages.json +++ b/_locales/uk/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Hide country code" }, diff --git a/_locales/vi/messages.json b/_locales/vi/messages.json index 3d4f5686c..000f4b894 100644 --- a/_locales/vi/messages.json +++ b/_locales/vi/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "Ẩn mã quốc gia" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 8dfae832b..537ccceba 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "隐藏国家代码" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 5c85fcc5c..99fa12957 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -452,6 +452,9 @@ "hideClipButton": { "message": "Hide clip button" }, + "hideCommentsCount":{ + "message": "Hide comments count" + }, "hideCountryCode": { "message": "隱藏國家代號" }, From d6b3185b116d1540e5243cefb9d173965d17f08f Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 21 Oct 2022 15:33:45 +0800 Subject: [PATCH 0657/1224] Fixed player size not working --- .../appearance/player/player.css | 275 ++++++++++++++++++ .../youtube-features/appearance.js | 40 +-- 2 files changed, 276 insertions(+), 39 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/player/player.css b/content-scripts/extension-context/youtube-features/appearance/player/player.css index fdbd6e1ee..63a8b305b 100644 --- a/content-scripts/extension-context/youtube-features/appearance/player/player.css +++ b/content-scripts/extension-context/youtube-features/appearance/player/player.css @@ -9,6 +9,7 @@ # Show cards on mouse hover # Hide endscreen # Hide "Scroll for details" +# Player Size --------------------------------------------------------------*/ /*-------------------------------------------------------------- @@ -201,4 +202,278 @@ html[it-hide-scroll-for-details='true'] button.ytp-fullerscreen-edu-button { html[it-hide-scroll-for-details='true'] ytd-app[scrolling_] { overflow: hidden !important; +} + +/*-------------------------------------------------------------- +# Player Size +--------------------------------------------------------------*/ + + /*-------------------------------------------------------------- +# NORMAL +--------------------------------------------------------------*/ + +html[data-page-type=video]:not([it-header-position]) ytd-app, +html[data-page-type=video][it-header-position=normal] ytd-app, +html[data-page-type=video][it-header-position=static] ytd-app { + --it-header-size: 56px; +} + +html[data-page-type=video]:not([it-header-position]) ytd-watch-flexy:not([theater]), +html[data-page-type=video][it-header-position=normal] ytd-watch-flexy:not([theater]), +html[data-page-type=video][it-header-position=static] ytd-watch-flexy:not([theater]) { + --it-header-size: 104px; +} + +html[data-page-type=video]:not([it-header-position]) div#page, +html[data-page-type=video][it-header-position=normal] div#page, +html[data-page-type=video][it-header-position=static] div#page { + --it-header-size: 50px; +} + +html[data-page-type=video]:not([it-header-position]) div#page:not(.watch-wide), +html[data-page-type=video][it-header-position=normal] div#page:not(.watch-wide), +html[data-page-type=video][it-header-position=static] div#page:not(.watch-wide) { + --it-header-size: 70px; +} + + +/*-------------------------------------------------------------- +# HIDDEN +--------------------------------------------------------------*/ + +html[data-page-type=video][it-header-position=hidden], +html[data-page-type=video][it-header-position=hidden_on_video_page] { + --it-header-size: 0px; +} + +html[data-page-type=video][it-header-position=hidden] ytd-watch-flexy:not([theater]), +html[data-page-type=video][it-header-position=hidden_on_video_page] ytd-watch-flexy:not([theater]) { + --it-header-size: 48px; +} + +html[data-page-type=video][it-header-position=hidden] div#page, +html[data-page-type=video][it-header-position=hidden_on_video_page] div#page { + --it-header-size: 0px; +} + +html[data-page-type=video][it-header-position=hidden] div#page:not(.watch-wide), +html[data-page-type=video][it-header-position=hidden_on_video_page] div#page:not(.watch-wide) { + --it-header-size: 20px; +} + + +/*-------------------------------------------------------------- +# HOVER +--------------------------------------------------------------*/ + +html[data-page-type=video][it-header-position=hover], +html[data-page-type=video][it-header-position=hover_on_video_page] { + --it-header-size: 14px; +} + +html[data-page-type=video][it-header-position=hover] ytd-watch-flexy:not([theater]), +html[data-page-type=video][it-header-position=hover_on_video_page] ytd-watch-flexy:not([theater]) { + --it-header-size: 62px; +} + +html[data-page-type=video][it-header-position=hover] div#page, +html[data-page-type=video][it-header-position=hover_on_video_page] div#page { + --it-header-size: 12px; +} + +html[data-page-type=video][it-header-position=hover] div#page:not(.watch-wide), +html[data-page-type=video][it-header-position=hover_on_video_page] div#page:not(.watch-wide) { + --it-header-size: 32px; +} + +html[data-page-type=video][it-header-position=hover] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container, +html[data-page-type=video][it-header-position=hover_on_video_page] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .player-theater-container { + margin-top: 14px; +} + +html[data-page-type=video][it-header-position=hover] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen), +html[data-page-type=video][it-header-position=hover_on_video_page] div#page #movie_player:not(.it-mini-player):not(.ytp-fullscreen) { + margin-top: 12px; +} + +html[data-page-type=video][it-header-position=hover] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]), +html[data-page-type=video][it-header-position=hover_on_video_page] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) { + margin-top: 14px; +} + + /*-------------------------------------------------------------- +# FIXED PLAYER SIZE +--------------------------------------------------------------*/ + +html[data-page-type=video][it-player-size='240p'] *, +html[data-page-type=video][it-player-size='360p'] *, +html[data-page-type=video][it-player-size='480p'] *, +html[data-page-type=video][it-player-size='576p'] *, +html[data-page-type=video][it-player-size='720p'] *, +html[data-page-type=video][it-player-size='1080p'] *, +html[data-page-type=video][it-player-size='1440p'] *, +html[data-page-type=video][it-player-size='2160p'] * { + --it-header-size: 0px !important; +} + + +/*-------------------------------------------------------------- +# FULL WINDOW +--------------------------------------------------------------*/ + +html[data-page-type=video][it-player-size='240p'] { + --it-player-size: 240px; +} + +html[data-page-type=video][it-player-size='360p'] { + --it-player-size: 360px; +} + +html[data-page-type=video][it-player-size='480p'] { + --it-player-size: 480px; +} + +html[data-page-type=video][it-player-size='576p'] { + --it-player-size: 576px; +} + +html[data-page-type=video][it-player-size='720p'] { + --it-player-size: 720px; +} + +html[data-page-type=video][it-player-size='1080p'] { + --it-player-size: 1080px; +} + +html[data-page-type=video][it-player-size='1440p'] { + --it-player-size: 1440px; +} + +html[data-page-type=video][it-player-size='2160p'] { + --it-player-size: 2160px; +} + +html[data-page-type=video][it-player-size='full_window'] { + --it-player-size: 100vh; +} + +html[data-page-type=video][it-player-size='full_window'] .ytp-fit-cover-video .html5-main-video { + object-fit: contain !important; +} + +html[data-page-type=video][it-player-size='fit_to_window'] { + --it-player-size: 100vh; +} + +html[data-page-type=video][it-player-size='fit_to_window'] .ytp-fit-cover-video .html5-main-video { + object-fit: contain !important; +} + +/*-------------------------------------------------------------- +# ELEMENTS +--------------------------------------------------------------*/ + +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='custom']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-container-inner { + padding-top: calc(var(--it-player-size) - var(--it-header-size)) !important; +} + +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='custom']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container, +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='custom']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container { + width: auto !important; + height: calc(var(--it-player-size) - var(--it-header-size)) !important; + min-height: auto !important; + max-height: none !important; +} + +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='custom']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player { + background: #000 !important; +} + +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='custom']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-container { + position: absolute !important; + display: flex !important; + width: 100% !important; + height: 100% !important; + justify-content: center !important; + align-items: center !important; +} + +html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change']):not([it-player-size='custom']):not([it-player-size='normal']):not([it-player-size='fit_to_window']) ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video { + position: relative !important; + top: 0 !important; + left: 0 !important; + width: auto !important; + max-width: 100% !important; + height: calc(var(--it-player-size) - var(--it-header-size)) !important; +} + + +/*-------------------------------------------------------------- +# FIT TO WINDOW +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# THEATER: ON +--------------------------------------------------------------*/ + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container { + height: auto !important; + min-height: 0 !important; + max-height: unset !important; + background: transparent !important; +} + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-container { + position: static !important; +} + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) ytd-player>#container { + display: flex !important; + justify-content: center !important; + align-items: center !important; +} + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) .html5-video-container { + display: flex !important; + justify-content: center !important; + align-items: center !important; +} + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) .html5-video-player { + display: table !important; + width: auto !important; +} + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) video { + position: static !important; + width: auto !important; + height: calc(var(--it-player-size) - var(--it-header-size)) !important; + max-height: none !important; +} + + +/*-------------------------------------------------------------- +# THEATER: OFF +--------------------------------------------------------------*/ + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container-inner { + padding-top: 0 !important; +} + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container { + position: static !important; +} + + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) .html5-video-player { + width: auto; + display: table; + margin: auto +} + +[data-page-type='video'][it-player-size='fit_to_window'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) video { + position: static !important; + width: 100% !important; + height: calc(var(--it-player-size) - var(--it-header-size)) !important; + max-height: none !important; } \ No newline at end of file diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index f32abbe1a..767e4cd27 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -25,45 +25,7 @@ ImprovedTube.playerSize = function () { } } - if (this.storage.player_size === 'fit_to_window' && this.elements.ytd_watch && this.elements.ytd_player) { - var video = this.elements.video, - aspect_ratio = video.videoWidth / video.videoHeight, - width, - height, - max_height = window.innerHeight, - style = this.elements.player_size_style || document.createElement('style'); - - if (this.elements.ytd_watch.theater === true) { - width = this.elements.ytd_player.offsetWidth; - - style.textContent = '[data-page-type="video"][it-player-size="fit_to_window"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) video {'; - } else { - width = this.elements.ytd_watch.offsetWidth; - - style.textContent = '[data-page-type="video"][it-player-size="fit_to_window"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) video {'; - } - - height = width / aspect_ratio; - - if (height > max_height) { - width -= (height - max_height) * aspect_ratio; - height = max_height; - } - - style.textContent += 'width:' + width + 'px !important;'; - style.textContent += 'height:' + height + 'px !important;'; - - style.textContent += '}'; - - this.elements.player_size_style = style; - - document.body.appendChild(style); - - setTimeout(function () { - window.dispatchEvent(new Event('resize')); - }, 100); - } - + if (this.storage.player_size === 'custom') { var width = Number(this.storage.custom_player_size_width) || 1280, height = Number(this.storage.custom_player_size_height) || 720, From 23c3a20663e0a3aa0f99af82fb13d5de71140a87 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 21 Oct 2022 16:31:15 +0800 Subject: [PATCH 0658/1224] Fix locale.py codec error --- py/locale.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/py/locale.py b/py/locale.py index a312b57fa..6e854a525 100644 --- a/py/locale.py +++ b/py/locale.py @@ -69,7 +69,7 @@ def addItem(allFiles): camelized_message = lowerCamelCase(message) for keyFile in allFiles: - with open(keyFile, 'r+') as json_file: + with open(keyFile, 'r+', encoding='utf-8') as json_file: data = json.load(json_file) if (camelized_message in data) == False: @@ -88,7 +88,7 @@ def removeItem(allFiles): key = input('Enter your key (lowerCamelCase): ') for keyFile in allFiles: - with open(keyFile, 'r+') as json_file: + with open(keyFile, 'r+', encoding='utf-8') as json_file: data = json.load(json_file) if key in data: @@ -109,7 +109,7 @@ def changeKey(allFiles): new_key = input('Enter new key: ') for keyFile in allFiles: - with open(keyFile, 'r+') as file: + with open(keyFile, 'r+', encoding='utf-8') as file: data = json.load(file) if old_key in data: @@ -128,7 +128,7 @@ def changeKey(allFiles): def decodeCharacters(allFiles): for keyFile in allFiles: - with open(keyFile, 'r+') as json_file: + with open(keyFile, 'r+', encoding='utf-8') as json_file: data = json.load(json_file) json_file.seek(0) @@ -200,7 +200,7 @@ def upgrade(): ] if os.path.exists('../_locales/en/messages.json'): - file = open('../_locales/en/messages.json', 'r+') + file = open('../_locales/en/messages.json', 'r+', encoding='utf-8') default_locale = json.load(file) @@ -220,7 +220,7 @@ def upgrade(): file.close() else: - with open(path + '/messages.json', 'r+') as file: + with open(path + '/messages.json', 'r+', encoding='utf-8') as file: data = json.load(file) file.seek(0) From 914be3304137084f44e7290277d5927da6c824bf Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 21 Oct 2022 16:42:02 +0800 Subject: [PATCH 0659/1224] Disable debug command --- content-scripts/extension-context/init.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content-scripts/extension-context/init.js b/content-scripts/extension-context/init.js index 78eb53851..c0b461343 100644 --- a/content-scripts/extension-context/init.js +++ b/content-scripts/extension-context/init.js @@ -130,7 +130,7 @@ document.addEventListener('it-message-from-youtube', function () { console.log(error); } - console.log(message); + //console.log(message); if (message.requestOptionsUrl === true) { extension.messages.send({ From 928bd3940d91ed061d8c4e26603626b289ed490a Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 21 Oct 2022 16:46:38 +0800 Subject: [PATCH 0660/1224] Add hide detail button and button text --- _locales/am/messages.json | 26 +-- _locales/ar/messages.json | 26 +-- _locales/bg/messages.json | 26 +-- _locales/bn/messages.json | 26 +-- _locales/ca/messages.json | 26 +-- _locales/cs/messages.json | 26 +-- _locales/da/messages.json | 26 +-- _locales/de/messages.json | 28 +--- _locales/el/messages.json | 26 +-- _locales/en/messages.json | 26 +-- _locales/en_GB/messages.json | 5 +- _locales/en_US/messages.json | 5 +- _locales/es/messages.json | 26 +-- _locales/es_419/messages.json | 5 +- _locales/et/messages.json | 26 +-- _locales/fa/messages.json | 26 +-- _locales/fi/messages.json | 26 +-- _locales/fil/messages.json | 26 +-- _locales/fr/messages.json | 26 +-- _locales/gu/messages.json | 26 +-- _locales/he/messages.json | 26 +-- _locales/hi/messages.json | 26 +-- _locales/hr/messages.json | 26 +-- _locales/hu/messages.json | 26 +-- _locales/id/messages.json | 26 +-- _locales/it/messages.json | 26 +-- _locales/ja/messages.json | 26 +-- _locales/kn/messages.json | 26 +-- _locales/ko/messages.json | 26 +-- _locales/lt/messages.json | 26 +-- _locales/lv/messages.json | 26 +-- _locales/ml/messages.json | 26 +-- _locales/mr/messages.json | 26 +-- _locales/ms/messages.json | 26 +-- _locales/nb_NO/messages.json | 26 +-- _locales/nl/messages.json | 26 +-- _locales/no/messages.json | 26 +-- _locales/pl/messages.json | 26 +-- _locales/pt_BR/messages.json | 26 +-- _locales/pt_PT/messages.json | 26 +-- _locales/ro/messages.json | 26 +-- _locales/ru/messages.json | 26 +-- _locales/si/messages.json | 26 +-- _locales/sk/messages.json | 26 +-- _locales/sl/messages.json | 26 +-- _locales/sr/messages.json | 26 +-- _locales/sv/messages.json | 26 +-- _locales/sw/messages.json | 26 +-- _locales/ta/messages.json | 26 +-- _locales/te/messages.json | 26 +-- _locales/th/messages.json | 26 +-- _locales/tr/messages.json | 26 +-- _locales/uk/messages.json | 26 +-- _locales/vi/messages.json | 26 +-- _locales/zh_CN/messages.json | 26 +-- _locales/zh_TW/messages.json | 26 +-- content-scripts/website-context/functions.js | 4 + .../youtube-features/appearance.js | 27 ++++ options-page/skeleton-parts/appearance.js | 152 ++++++++++++------ options-page/styles/appearance.css | 125 ++++++++++++++ 60 files changed, 316 insertions(+), 1387 deletions(-) diff --git a/_locales/am/messages.json b/_locales/am/messages.json index 244080cb7..838ef0780 100644 --- a/_locales/am/messages.json +++ b/_locales/am/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 second skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 14feacc43..d13fd1fc0 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -452,10 +452,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -470,9 +467,6 @@ "hideDetails": { "message": "إخفاء التفاصيل" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "إخفاء شاشة النهاية" }, @@ -485,9 +479,6 @@ "hideGradientBottom": { "message": "إخفاء التدرج الأسود السفلي" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -500,27 +491,15 @@ "hidePlaylist": { "message": "إخفاء قائمة التشغيل" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "إخفاء الأزرار اليسرى" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "«إخفاء «التمرير للحصول على التفاصيل" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 second skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -620,9 +599,6 @@ "like": { "message": "اعحبني" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/bg/messages.json +++ b/_locales/bg/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index cbc80d2bd..f0de57e7a 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "আড়াল বিস্তারিত" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "এন্ডস্ক্রিন লুকান" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "গ্রেডিয়েন্ট নীচে লুকান" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "প্লেলিস্ট লুকান" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "ডান বোতামগুলি লুকান" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "«বিশদ জন্য স্ক্রোলs» লুকান" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "স্কিপ ওভারলে লুকান" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -614,9 +593,6 @@ "like": { "message": "লাইক" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/ca/messages.json +++ b/_locales/ca/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/cs/messages.json +++ b/_locales/cs/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/da/messages.json b/_locales/da/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/da/messages.json +++ b/_locales/da/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index b6c445319..e86e465e3 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -449,12 +449,9 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" + "hideCommentsCount": { + "message": "Hide comments count" }, - "hideCommentsCount": { - "message": "Hide comments count" - }, "hideCountryCode": { "message": "Ländercode ausblenden" }, @@ -467,9 +464,6 @@ "hideDetails": { "message": "Details ausblenden" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Endkarten ausblenden (Schlussbildschirme)" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Farbverlauf ausblenden" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Kontrolleiste ausblenden" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Playlists ausblenden" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Rechte Buttons ausblenden" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "„Für Details scrollen“ ausblenden" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Überspringen Overlay ausblenden" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Thumbnail Overlay ausblenden" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 251a34de6..d01b8a2c6 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Απόκρυψε τις λεπτομέρειες" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Απόκρυψε την κάρτα τέλους" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Απόκρυψε το κάτω μέρος της χρωματικής διαβάθμισης" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Απόκρυψε τα playlists" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Απόκρυψε τα κουμπιά στα δεξιά" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Απόκρυψε το «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -614,9 +593,6 @@ "like": { "message": "Μου αρέσει" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 425e2ac12..d7aab1649 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -458,10 +458,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -476,9 +473,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -491,9 +485,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -506,27 +497,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 second skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -623,9 +602,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json index d691f9a7a..6bd3a8f7c 100644 --- a/_locales/en_GB/messages.json +++ b/_locales/en_GB/messages.json @@ -440,7 +440,7 @@ "hideCards": { "message": "Hide cards" }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -578,9 +578,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json index d691f9a7a..6bd3a8f7c 100644 --- a/_locales/en_US/messages.json +++ b/_locales/en_US/messages.json @@ -440,7 +440,7 @@ "hideCards": { "message": "Hide cards" }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -578,9 +578,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index b17102028..5fc91a0b7 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Ocultar detalles" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Ocultar pantalla final" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Ocultar parte inferior degradada" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Ocultar la barra del reproductor" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Ocultar playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Ocultar botones de la derecha" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Ocultar «Desliza hacia abajo para ver más detalles»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -614,9 +593,6 @@ "like": { "message": "Me gusta" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Me gusta" }, diff --git a/_locales/es_419/messages.json b/_locales/es_419/messages.json index 4a123895b..9dd63f3ea 100644 --- a/_locales/es_419/messages.json +++ b/_locales/es_419/messages.json @@ -440,7 +440,7 @@ "hideCards": { "message": "Ocultar tarjetas" }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -578,9 +578,6 @@ "like": { "message": "Me gusta" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Me gusta" }, diff --git a/_locales/et/messages.json b/_locales/et/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/et/messages.json +++ b/_locales/et/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/fa/messages.json b/_locales/fa/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/fa/messages.json +++ b/_locales/fa/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/fi/messages.json b/_locales/fi/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/fi/messages.json +++ b/_locales/fi/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/fil/messages.json b/_locales/fil/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/fil/messages.json +++ b/_locales/fil/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index ed89693cb..3307c7457 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Cacher les détails" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Cacher l'écran de fin" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Masquer le dégradé du bas" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Cacher la liste de lecture" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Cacher les boutons à droite" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Cacher « Faire défiler pour les détails »" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -614,9 +593,6 @@ "like": { "message": "J'aime" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/gu/messages.json b/_locales/gu/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/gu/messages.json +++ b/_locales/gu/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/he/messages.json b/_locales/he/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/he/messages.json +++ b/_locales/he/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/hi/messages.json b/_locales/hi/messages.json index 20ba9f309..86aef7a15 100644 --- a/_locales/hi/messages.json +++ b/_locales/hi/messages.json @@ -446,10 +446,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -464,9 +461,6 @@ "hideDetails": { "message": "जानकारी छिपाएँ" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "अंत स्क्रीन छिपाएँ" }, @@ -479,9 +473,6 @@ "hideGradientBottom": { "message": "ग्रेडिएंट बॉटम छुपाएं" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -494,27 +485,15 @@ "hidePlaylist": { "message": "प्लेलिस्ट छिपाएं" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "दाएं बटन छुपाएं" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "छिपाएँ «विवरण के लिए स्क्रॉल»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "स्किप ओवरले छुपाएं" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -611,9 +590,6 @@ "like": { "message": "पसंद" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 0a338177b..793d187b0 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Sakrij detalje" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Sakrij završni zaslon" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Sakrij sjenu oko trake playera" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Sakrij kontrole playera" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Sakrij popis za reprodukciju" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Sakrij desne gumbe" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Sakrij «Pomakni za detalje»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Sakrij gumbe na sličicama" }, @@ -614,9 +593,6 @@ "like": { "message": "Sviđa mi se" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/hu/messages.json b/_locales/hu/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/hu/messages.json +++ b/_locales/hu/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index ad915ed5c..2689e350c 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Sembunyikan detail" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Sembunyikan layar akhir" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Sembunyikan Gradient Bagian Bawah" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Sembunyikan daftar putar" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Sembunyikan tombol kanan" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Sembunyikan «gulir untuk detail»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -614,9 +593,6 @@ "like": { "message": "Suka" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 55917e7fa..aa37772a1 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Nascondi dettagli" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Nascondi finale video" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Nascondi fondo gradiente" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Nascondi barra dei controlli del lettore" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Nascondi scaletta" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Nascondi pulsanti sulla destra" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Nascondi «Scorri per dettagli»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Nascondi \"Salta overlay\"" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Nascondi overlay miniature" }, @@ -614,9 +593,6 @@ "like": { "message": "Mi piace" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Piaciuto" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 04b651a9a..bf7977b95 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "詳細を隠す" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "再生終了時の画面を隠す" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "グラデーションの下部を隠す" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "プレーヤーのコントロールバーを隠す" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "再生リストを隠す" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "右ボタンを隠す" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "\"スクロールして詳細を表示\" を隠す" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "スキップオーバーレイを隠す" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "サムネイルオーバーレイを隠す" }, @@ -614,9 +593,6 @@ "like": { "message": "高評価" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/kn/messages.json b/_locales/kn/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/kn/messages.json +++ b/_locales/kn/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index ba014ecf0..587aa12d1 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "상세설명 숨기기" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "종료후 화면 숨기기" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "그라데이션 맨 아래로 숨기기" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "재생 목록 숨기기" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "오른쪽 버튼 숨기기" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "«스크롤 하여 자세한 설명» 숨기기" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "\"오버레이 건너뛰기\" 숨기기" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -614,9 +593,6 @@ "like": { "message": "좋아요" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/lt/messages.json b/_locales/lt/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/lt/messages.json +++ b/_locales/lt/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/lv/messages.json b/_locales/lv/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/lv/messages.json +++ b/_locales/lv/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/ml/messages.json b/_locales/ml/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/ml/messages.json +++ b/_locales/ml/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/mr/messages.json b/_locales/mr/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/mr/messages.json +++ b/_locales/mr/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/ms/messages.json b/_locales/ms/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/ms/messages.json +++ b/_locales/ms/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 6b4dcac9a..a322e2b54 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -446,10 +446,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -464,9 +461,6 @@ "hideDetails": { "message": "Skjul detaljer" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Skjul sluttskjerm" }, @@ -479,9 +473,6 @@ "hideGradientBottom": { "message": "Skjul bunn-fargeovergang" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -494,27 +485,15 @@ "hidePlaylist": { "message": "Skjul spilleliste" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Skjul høyre-knapper" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Skjul «Bla for detaljer»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -611,9 +590,6 @@ "like": { "message": "Gunst" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 2a8115cb5..d7ee06b33 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Verberg details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Verberg eindscherm" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Verberg Gradient Onderkant" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Verberg afspeelbalk" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Verberg afspeellijst" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Verberg knoppen rechterkant" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Verberg «Scrollen voor meer details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Verberg knop voor overslaan omslag" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Verberg miniatuurafbeeldingen omslag" }, @@ -614,9 +593,6 @@ "like": { "message": "Vind ik leuk" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Leuk gevonden" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 84ad762e7..5cb5aa617 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Skjul detaljer" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Skjul sluttskjerm" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Skjul spilleliste" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Skjul høyre knapper" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Skjul «Bla for detaljer»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 87aed820c..73050e5f6 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Ukryj szczegóły" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Ukryj ekran końcowy" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Ukryj cień dookoła paska odtwarzania" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Ukryj pasek sterowania odtwarzaczem" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Ukryj playliste" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Ukryj przyciski po prawej" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Ukryj «Przewiń do szczegółów»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Ukryj nakładkę pomijania" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Ukryj przyciski na miniaturach" }, @@ -614,9 +593,6 @@ "like": { "message": "Polub" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Polubione" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 6b14807eb..792035c84 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Ocultar detalhes" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Ocultar tela final" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Ocultar sombra ao redor da barra do player" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Ocultar a barra de controles do player" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Ocultar playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Ocultar botões à direita" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Ocultar «Rolar para ver detalhes»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 second skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Ocultar botões nas miniaturas" }, @@ -614,9 +593,6 @@ "like": { "message": "Avaliar!" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Avaliado" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 2968c3cb8..fbb0a6560 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Esconder detalhes" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Esconder ecãn final" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide Gradient Bottom" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Esconder lista de reprodução" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Esconder botões do lado direito" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Esconder «Rodar para detalhes»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -614,9 +593,6 @@ "like": { "message": "Gostar" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 096ff76b8..37b779e5c 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Ascunde detaliile" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Ascunde ecranul de final" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Ascunde Gradient Bottom" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Ascundeți bara de control al jucătorului" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Ascunde playlistul" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Ascunde butoanele din dreapta" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Ascunde «Derulează pentru detalii»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -614,9 +593,6 @@ "like": { "message": "Îmi place" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 844c0bdaf..ad414cfd9 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -452,10 +452,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -470,9 +467,6 @@ "hideDetails": { "message": "Скрывать подробную информацию" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Скрывать экран после видео" }, @@ -485,9 +479,6 @@ "hideGradientBottom": { "message": "Скрывать кнопку градиента" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Скрывать панель управления плеером" }, @@ -500,27 +491,15 @@ "hidePlaylist": { "message": "Скрывать плейлисты" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Скрывать кнопки (справа)" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Скрывать «Прокрутите для подробной информации»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Скрывать наложение \"5 секунд\"" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Скрывать наложение на превью" }, @@ -620,9 +599,6 @@ "like": { "message": "Лайк" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Понравившиеся" }, diff --git a/_locales/si/messages.json b/_locales/si/messages.json index 1729a42d4..a18e5f69c 100644 --- a/_locales/si/messages.json +++ b/_locales/si/messages.json @@ -446,10 +446,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -464,9 +461,6 @@ "hideDetails": { "message": "Details හංගන්න" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Endscreen එක හංගන්න" }, @@ -479,9 +473,6 @@ "hideGradientBottom": { "message": "Player-bar එක වටේ තියෙන shadow එක සගවන්න" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Player controls bar එක සඟවන්න" }, @@ -494,27 +485,15 @@ "hidePlaylist": { "message": "Playlist සඟවන්න" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "දකුණු පැත්තෙ තියෙන button සඟවන්න" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "«Scroll for details» සඟවන්න" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "5 seconds skip animation එක සඟවන්න" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Thumbnail මත තිබෙන button සඟවන්න" }, @@ -611,9 +590,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 6cfc26d2f..b13fc3b4c 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Skryť detaily" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Skryť zobrazenie na konci videa" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide Gradient Bottom" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Skryť zoznam videí" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Skryť tlčidlá v pravo" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Skryť «Zarolujte pre detaily»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide Skip Overlay" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide thumbnail overlay" }, @@ -614,9 +593,6 @@ "like": { "message": "Páči sa mi to" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/sl/messages.json b/_locales/sl/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/sl/messages.json +++ b/_locales/sl/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/sr/messages.json +++ b/_locales/sr/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/sw/messages.json b/_locales/sw/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/sw/messages.json +++ b/_locales/sw/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/ta/messages.json b/_locales/ta/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/ta/messages.json +++ b/_locales/ta/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/te/messages.json b/_locales/te/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/te/messages.json +++ b/_locales/te/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/th/messages.json b/_locales/th/messages.json index 39b48b8d4..4781d0f90 100644 --- a/_locales/th/messages.json +++ b/_locales/th/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index ac03d0ecb..95bf1d641 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Detayları gizle" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Ekran sonunu gizle" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Gradyan Altını Gizle" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Oynatıcı kontrol çubuğunu gizle" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Oynatma Listesi'ni gizle" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Sağ butonları gizle" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "«Ayrıntılar için kaydır» gizle" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Yer Paylaşımını Atla Gizle" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Küçük resim yer paylaşımını gizle" }, @@ -614,9 +593,6 @@ "like": { "message": "Beğen" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Beğenildi" }, diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json index 24e78d8a8..26e05c2bf 100644 --- a/_locales/uk/messages.json +++ b/_locales/uk/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Hide details" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Hide playlist" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Hide right buttons" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Hide 5 seconds skip animation" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -614,9 +593,6 @@ "like": { "message": "Like" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/vi/messages.json b/_locales/vi/messages.json index 000f4b894..94e20a9fc 100644 --- a/_locales/vi/messages.json +++ b/_locales/vi/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "Ẩn chi tiết" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "Ẩn màn hình kết thúc" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "Ẩn bóng xung quanh thanh trình phát" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "Ẩn thanh điều khiển trình phát" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "Ẩn danh sách phát" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "Ẩn các nút bên phải" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "Ẩn «Cuộn để biết chi tiết»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "Ẩn hoạt ảnh bỏ qua 5 giây" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "Ẩn các nút trên hình thu nhỏ" }, @@ -614,9 +593,6 @@ "like": { "message": "Thích" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Đã thích" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 537ccceba..18b362845 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "隐藏详细信息" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "隐藏结束画面" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "隐藏底部渐变层" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "隐藏播放器控制栏" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "隐藏播放列表" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "隐藏右侧按钮" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "隐藏 «滚动至详细信息»" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "隐藏跳过叠加" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "隐藏缩略图上的按钮" }, @@ -614,9 +593,6 @@ "like": { "message": "顶一下" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 99fa12957..db3bead4f 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -449,10 +449,7 @@ "hideCategories": { "message": "Hide categories" }, - "hideClipButton": { - "message": "Hide clip button" - }, - "hideCommentsCount":{ + "hideCommentsCount": { "message": "Hide comments count" }, "hideCountryCode": { @@ -467,9 +464,6 @@ "hideDetails": { "message": "隱藏細節" }, - "hideDownloadButton": { - "message": "Hide download button" - }, "hideEndscreen": { "message": "隱藏結束畫面" }, @@ -482,9 +476,6 @@ "hideGradientBottom": { "message": "隱藏底部漸層圖層" }, - "hideMoreButton": { - "message": "Hide more button" - }, "hidePlayerControlsBar": { "message": "隱藏播放器控制欄" }, @@ -497,27 +488,15 @@ "hidePlaylist": { "message": "隱藏播放清單" }, - "hideReportButton": { - "message": "Hide report button" - }, "hideRightButtons": { "message": "隱藏右側按鈕" }, - "hideSaveButton": { - "message": "Hide save button" - }, "hideScrollForDetails": { "message": "隱藏「向下捲動即可查看詳情」" }, - "hideShareButton": { - "message": "Hide share button" - }, "hideSkipOverlay": { "message": "隱藏「跳至區段」按鈕" }, - "hideThanksButton": { - "message": "Hide thanks button" - }, "hideThumbnailOverlay": { "message": "隱藏縮圖上的按鈕" }, @@ -614,9 +593,6 @@ "like": { "message": "喜歡" }, - "likeAndDislike": { - "message": "Like and Dislike " - }, "liked": { "message": "Liked" }, diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index d7a2c5fe7..217ae11eb 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -68,6 +68,10 @@ ImprovedTube.ytElementsHandler = function (node) { this.improvedtubeYoutubeIcon(); this.improvedtubeYoutubeButtonsUnderPlayer(); + + if(document.documentElement.dataset.pageType === 'video'){ + this.hideDetailButton(node.querySelector('#menu #top-level-buttons-computed').children); + } } else if (name === 'YTD-VIDEO-SECONDARY-INFO-RENDERER') { this.elements.yt_channel_name = node.querySelector('ytd-channel-name'); this.elements.yt_channel_link = node.querySelector('ytd-channel-name a'); diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index 767e4cd27..6b67946ff 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -303,4 +303,31 @@ ImprovedTube.channelVideosCount = function () { xhr.open('GET', 'https://www.googleapis.com/youtube/v3/channels?part=statistics&id=' + id + '&key=' + key, true); xhr.send(); } +}; + + /*------------------------------------------------------------------------------ +4.2.3.4 HIDE DETAIL BUTTON +------------------------------------------------------------------------------*/ + +ImprovedTube.hideDetailButton = function (el) { + setTimeout(function () { + for (var i = 2; i < el.length; i++) { + tmp = el[i].querySelector("g.yt-icon path").attributes.d.textContent.split(" ")[0]; + if (tmp === "M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z") { + el[i].setAttribute('id', 'Save-button'); + } + else if (tmp === "M8,7c0,0.55-0.45,1-1,1S6,7.55,6,7c0-0.55,0.45-1,1-1S8,6.45,8,7z") { + el[i].setAttribute('id', 'Clip-button'); + } + else if (tmp === "M16.5,3C19.02,3,21,5.19,21,7.99c0,3.7-3.28,6.94-8.25,11.86L12,20.59l-0.74-0.73l-0.04-0.04C6.27,14.92,3,11.69,3,7.99") { + el[i].setAttribute('id', 'Thanks-button'); + } + else if (tmp === "M13.18,4l0.24,1.2L13.58,6h0.82H19v7h-5.18l-0.24-1.2L13.42,11H12.6H6V4H13.18") { + el[i].setAttribute('id', 'Report-button'); + } + else if (tmp === "M15,5.63L20.66,12L15,18.37V15v-1h-1c-3.96,0-7.14,1-9.75,3.09c1.84-4.07,5.11-6.4,9.89-7.1L15,9.86V9V5.63") { + el[i].setAttribute('id', 'Share-button'); + } + } + }, 30); }; \ No newline at end of file diff --git a/options-page/skeleton-parts/appearance.js b/options-page/skeleton-parts/appearance.js index f3b3b440f..ed9c2f0d7 100644 --- a/options-page/skeleton-parts/appearance.js +++ b/options-page/skeleton-parts/appearance.js @@ -339,56 +339,110 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { text: 'hideDate', tags: 'hide,remove' }, - likes: { - component: 'select', - text: 'likes', - - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'iconsOnly', - value: 'icons_only' - }, { - text: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - hide_share_button: { - component: 'switch', - text: 'hideShareButton', - tags: 'hide,remove' - }, - hide_download_button: { - component: 'switch', - text: 'hideDownloadButton', - tags: 'hide,remove' - }, - hide_thanks_button: { - component: 'switch', - text: 'hideThanksButton', - tags: 'hide,remove' - }, - hide_clip_button: { - component: 'switch', - text: 'hideClipButton', - tags: 'hide,remove' - }, - hide_save_button: { - component: 'switch', - text: 'hideSaveButton', - tags: 'hide,remove' - }, - hide_report_button: { - component: 'switch', - text: 'hideReportButton', - tags: 'hide,remove' + hide_details_button: { + component: 'button', + text: 'hideDetailButton', + on: { + click: { + component: 'section', + variant: 'card', + hide_like_button: { + component: 'switch', + text: 'like', + tags: 'hide,remove' + }, + hide_dislike_button: { + component: 'switch', + text: 'dislike', + tags: 'hide,remove' + }, + hide_share_button: { + component: 'switch', + text: 'share', + tags: 'hide,remove' + }, + hide_download_button: { + component: 'switch', + text: 'download', + tags: 'hide,remove' + }, + hide_thanks_button: { + component: 'switch', + text: 'thanks', + tags: 'hide,remove' + }, + hide_clip_button: { + component: 'switch', + text: 'clip', + tags: 'hide,remove' + }, + hide_save_button: { + component: 'switch', + text: 'save', + tags: 'hide,remove' + }, + hide_report_button: { + component: 'switch', + text: 'report', + tags: 'hide,remove' + }, + hide_more_button: { + component: 'switch', + text: 'more', + tags: 'hide,remove' + }, + hide_more_button: { + component: 'switch', + text: 'more', + tags: 'hide,remove' + } + } + } }, - hide_more_button: { - component: 'switch', - text: 'hideMoreButton', - tags: 'hide,remove' + hide_details_button_text: { + component: 'button', + text: 'hideButtonLabel', + on: { + click: { + component: 'section', + variant: 'card', + hide_like_button_text: { + component: 'switch', + text: 'like', + tags: 'hide,remove' + }, + hide_dislike_button_text: { + component: 'switch', + text: 'dislike', + tags: 'hide,remove' + }, + hide_share_button_text: { + component: 'switch', + text: 'share', + tags: 'hide,remove' + }, + hide_download_button_text: { + component: 'switch', + text: 'download', + tags: 'hide,remove' + }, + hide_thanks_button_text: { + component: 'switch', + text: 'thanks', + tags: 'hide,remove' + }, + hide_clip_button_text: { + component: 'switch', + text: 'clip', + tags: 'hide,remove' + }, + hide_save_button_text: { + component: 'switch', + text: 'save', + tags: 'hide,remove' + } + } + } }, description: { component: 'select', diff --git a/options-page/styles/appearance.css b/options-page/styles/appearance.css index 219d3b386..58ae0e471 100644 --- a/options-page/styles/appearance.css +++ b/options-page/styles/appearance.css @@ -3,6 +3,7 @@ ---------------------------------------------------------------- # Buttons # Custom player size +# Hide Detail Button --------------------------------------------------------------*/ /*-------------------------------------------------------------- @@ -157,4 +158,128 @@ margin: 0 8px; content: 'x'; +} + + /*-------------------------------------------------------------- +HIDE DETAIL BUTTON +--------------------------------------------------------------*/ + + /*-------------------------------------------------------------- +HIDE LIKE BUTTON +--------------------------------------------------------------*/ + +[it-hide-like-button=true] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(1), +[it-hide-like-button=true] #info #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) { + display: none; +} + +[it-hide-like-button-text=true] #top-level-buttons ytd-toggle-button-renderer:nth-child(1) div.cbox, +[it-hide-like-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) div.cbox { + display: none; +} + + /*-------------------------------------------------------------- +HIDE DISLIKE BUTTON +--------------------------------------------------------------*/ + +[it-hide-dislike-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) div.cbox, +[it-hide-dislike-button-text=true] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) div.cbox { + display: none; +} + +[it-hide-dislike-button-text=true] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) div.cbox, +[it-hide-dislike-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) div.cbox { + display: none; +} + +/*-------------------------------------------------------------- +HIDE SHARE BUTTON +--------------------------------------------------------------*/ + +html[it-hide-share-button=true] #top-level-buttons ytd-button-renderer#Share-button, +html[it-hide-share-button=true] #top-level-buttons-computed ytd-button-renderer#Share-button { + display: none; +} + +html[it-hide-share-button-text=true] #top-level-buttons ytd-button-renderer#Share-button div.cbox, +html[it-hide-share-button-text=true] #top-level-buttons-computed ytd-button-renderer#Share-button div.cbox { + display: none; +} + +/*-------------------------------------------------------------- +HIDE DOWNLOAD BUTTON +--------------------------------------------------------------*/ + +html[it-hide-download-button=true] #top-level-buttons ytd-download-button-renderer, +html[it-hide-download-button=true] #top-level-buttons-computed ytd-download-button-renderer { + display: none; +} + +html[it-hide-download-button-text=true] #top-level-buttons ytd-download-button-renderer div.cbox , +html[it-hide-download-button-text=true] #top-level-buttons-computed ytd-download-button-renderer div.cbox { + display: none; +} + +/*-------------------------------------------------------------- +HIDE THANKS BUTTON +--------------------------------------------------------------*/ + +html[it-hide-thanks-button=true] #top-level-buttons ytd-button-renderer#Thanks-button, +html[it-hide-thanks-button=true] #top-level-buttons-computed ytd-button-renderer#Thanks-button { + display: none; +} + +html[it-hide-thanks-button-text=true] #top-level-buttons ytd-button-renderer#Thanks-button div.cbox, +html[it-hide-thanks-button-text=true] #top-level-buttons-computed ytd-button-renderer#Thanks-button div.cbox { + display: none; +} + +/*-------------------------------------------------------------- +HIDE CLIP BUTTON +--------------------------------------------------------------*/ + +html[it-hide-clip-button=true] #top-level-buttons ytd-button-renderer#Clip-button, +html[it-hide-clip-button=true] #top-level-buttons-computed ytd-button-renderer#Clip-button { + display: none; +} + +html[it-hide-clip-button-text=true] #top-level-buttons ytd-button-renderer#Clip-button div.cbox, +html[it-hide-clip-button-text=true] #top-level-buttons-computed ytd-button-renderer#Clip-button div.cbox { + display: none; +} + +/*-------------------------------------------------------------- +HIDE SAVE BUTTON +--------------------------------------------------------------*/ + +html[it-hide-save-button=true] #top-level-buttons ytd-button-renderer#Save-button, +html[it-hide-save-button=true] #top-level-buttons-computed ytd-button-renderer#Save-button { + display: none; +} + +html[it-hide-save-button-text=true] #top-level-buttons ytd-button-renderer#Save-button div.cbox, +html[it-hide-save-button-text=true] #top-level-buttons-computed ytd-button-renderer#Save-button div.cbox { + display: none; +} + +/*-------------------------------------------------------------- +REPORT REPORT BUTTON +--------------------------------------------------------------*/ + +html[it-hide-report-button=true] #top-level-buttons ytd-button-renderer#Report-button, +html[it-hide-report-button=true] #top-level-buttons-computed ytd-button-renderer#Report-button { + display: none; +} + + +/*-------------------------------------------------------------- +HIDE MORE BUTTON +--------------------------------------------------------------*/ + +html[it-hide-more-button=true] #menu yt-button-shape#button-shape { + display: none; +} + +html[it-hide-more-button=true] body{ + background-color: aqua; } \ No newline at end of file From a6f4502ca295879cd8ed4f4576c17fa23912ad95 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 22 Oct 2022 11:36:20 +0200 Subject: [PATCH 0661/1224] Create CONTRIBUTING.md --- CONTRIBUTING.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..f944b384f --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1 @@ +:) From 1f7801a3472517e84dec365aae9f92a04ba544fe Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sat, 22 Oct 2022 19:23:14 +0800 Subject: [PATCH 0662/1224] Update zh_TW translation --- _locales/zh_TW/messages.json | 50 ++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index db3bead4f..a627cafa2 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -114,7 +114,7 @@ "message": "背景透明度" }, "backupAndReset": { - "message": "備份 & 重置" + "message": "備份 & 重設" }, "baseOnSystemColorScheme": { "message": "使用系統配色方案" @@ -198,7 +198,7 @@ "message": "使用 H.264 解碼" }, "codecs": { - "message": "Codecs" + "message": "編碼" }, "collapseOfSubscriptionSections": { "message": "於訂閱區顯示縮放按鈕" @@ -405,7 +405,7 @@ "message": "GitHub" }, "goToSearchBox": { - "message": "轉到搜索框" + "message": "轉到搜尋框" }, "googleApiKey": { "message": "Google API 金鑰" @@ -417,7 +417,7 @@ "message": "綠色" }, "hardwareInformation": { - "message": "Hardware information" + "message": "硬體資訊" }, "hd": { "message": "HD" @@ -441,16 +441,16 @@ "message": "隱藏註解" }, "hideButtonLabel": { - "message": "Hide Button Label" + "message": "隱藏按鈕標籤" }, "hideCards": { "message": "隱藏資訊卡" }, "hideCategories": { - "message": "Hide categories" + "message": "隱藏分類" }, "hideCommentsCount": { - "message": "Hide comments count" + "message": "隱藏評論數量" }, "hideCountryCode": { "message": "隱藏國家代號" @@ -459,10 +459,10 @@ "message": "隱藏日期" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "隱藏詳細資訊按鈕" }, "hideDetails": { - "message": "隱藏細節" + "message": "隱藏詳細資訊" }, "hideEndscreen": { "message": "隱藏結束畫面" @@ -636,10 +636,10 @@ "message": "音量混合器" }, "more": { - "message": "More" + "message": "更多" }, "mostViewedChannels": { - "message": "Most viewed channels" + "message": "最多觀看的頻道" }, "moveSidebarLeft": { "message": "將側邊欄移至右方" @@ -666,7 +666,7 @@ "message": "夜晚" }, "nightMode": { - "message": "Night mode" + "message": "夜晚模式" }, "noActiveFeatures": { "message": "無已啟用功能" @@ -681,7 +681,7 @@ "message": "正常" }, "off": { - "message": "Off" + "message": "關閉" }, "ok": { "message": "Ok" @@ -816,16 +816,16 @@ "message": "重複播放" }, "report": { - "message": "Report" + "message": "回報" }, "reset": { - "message": "重置" + "message": "重設" }, "resetAllSettings": { - "message": "重置所有設定" + "message": "重設所有設定" }, "resetAllShortcuts": { - "message": "重置所有快捷鍵" + "message": "重設所有快捷鍵" }, "reverse": { "message": "回播" @@ -879,7 +879,7 @@ "message": "已成功匯入設定" }, "share": { - "message": "Share" + "message": "分享" }, "shortcuts": { "message": "快捷鍵" @@ -900,7 +900,7 @@ "message": "顯示影片剩餘時間" }, "showVersion": { - "message": "Show version" + "message": "顯示版本" }, "shuffle": { "message": "隨機播放" @@ -909,7 +909,7 @@ "message": "側邊欄" }, "softwareInformation": { - "message": "Software information" + "message": "軟體資訊" }, "spacebar": { "message": "空白鍵" @@ -978,10 +978,10 @@ "message": "這將刪除所有 YouTube Cookies。" }, "thisWillResetAllSettings": { - "message": "這將重置所有設定。" + "message": "這將重設所有設定。" }, "thisWillResetAllShortcuts": { - "message": "這將重置所有快捷鍵。" + "message": "這將重設所有快捷鍵。" }, "thumbnails": { "message": "縮圖" @@ -1065,7 +1065,7 @@ "message": "已觀看時間" }, "whenPaused": { - "message": "When paused" + "message": "當暫停播放時" }, "whenTabIsChanged": { "message": "當分頁改變時" @@ -1089,7 +1089,7 @@ "message": "YouTube 標頭 (右)" }, "youtubeHomePage": { - "message": "預設的 YouTube 主頁" + "message": "預設的 YouTube 首頁" }, "youtubeLanguage": { "message": "YouTube 語言" @@ -1097,4 +1097,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "使用 H.264 編碼時,YouTube 會將畫質限制為 1080p 內。" } -} \ No newline at end of file +} From 74aa433169e617b78f99ec44ef7bdf598f60fb9d Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sun, 23 Oct 2022 21:00:20 +0800 Subject: [PATCH 0663/1224] Fixed hide detail button text and hide like and dislike button not working --- .../appearance/details/details.css | 89 +++++++++---- options-page/styles/appearance.css | 119 ------------------ 2 files changed, 67 insertions(+), 141 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/content-scripts/extension-context/youtube-features/appearance/details/details.css index 95c02cb8f..e52617589 100644 --- a/content-scripts/extension-context/youtube-features/appearance/details/details.css +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.css @@ -41,18 +41,32 @@ html[it-hide-date='true'] #info #count + #info-strings>#dot { } -/*-------------------------------------------------------------- -# LIKES + /*-------------------------------------------------------------- +HIDE LIKE BUTTON --------------------------------------------------------------*/ -html[it-likes='hidden'] #info .top-level-buttons>ytd-toggle-button-renderer:nth-child(1), -html[it-likes='hidden'] #info .top-level-buttons>ytd-toggle-button-renderer:nth-child(2) { - display: none !important; +[it-hide-like-button=true] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(1), +[it-hide-like-button=true] #info #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) { + display: none; } -html[it-likes='icons_only'] #info .top-level-buttons>ytd-toggle-button-renderer:nth-child(1) yt-formatted-string, -html[it-likes='icons_only'] #info .top-level-buttons>ytd-toggle-button-renderer:nth-child(2) yt-formatted-string { - display: none !important; +[it-hide-like-button-text=true] #top-level-buttons ytd-toggle-button-renderer:nth-child(1) div.cbox, +[it-hide-like-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) div.cbox { + display: none; +} + + /*-------------------------------------------------------------- +HIDE DISLIKE BUTTON +--------------------------------------------------------------*/ + +[it-hide-dislike-button=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2), +[it-hide-dislike-button=true] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) { + display: none; +} + +[it-hide-dislike-button-text=true] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) div.cbox, +[it-hide-dislike-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) div.cbox { + display: none; } @@ -60,8 +74,14 @@ html[it-likes='icons_only'] #info .top-level-buttons>ytd-toggle-button-renderer: # HIDE SHARE BUTTON --------------------------------------------------------------*/ -html[it-hide-share-button='true'] #info .top-level-buttons ytd-button-renderer:nth-child(3) { - display: none !important; +html[it-hide-share-button=true] #top-level-buttons ytd-button-renderer#Share-button, +html[it-hide-share-button=true] #top-level-buttons-computed ytd-button-renderer#Share-button { + display: none; +} + +html[it-hide-share-button-text=true] #top-level-buttons ytd-button-renderer#Share-button div.cbox, +html[it-hide-share-button-text=true] #top-level-buttons-computed ytd-button-renderer#Share-button div.cbox { + display: none; } @@ -69,8 +89,14 @@ html[it-hide-share-button='true'] #info .top-level-buttons ytd-button-renderer:n # HIDE DOWNLOAD BUTTON --------------------------------------------------------------*/ -html[it-hide-download-button='true'] #info .top-level-buttons ytd-download-button-renderer { - display: none !important; +html[it-hide-download-button=true] #top-level-buttons ytd-download-button-renderer, +html[it-hide-download-button=true] #top-level-buttons-computed ytd-download-button-renderer { + display: none; +} + +html[it-hide-download-button-text=true] #top-level-buttons ytd-download-button-renderer div.cbox , +html[it-hide-download-button-text=true] #top-level-buttons-computed ytd-download-button-renderer div.cbox { + display: none; } @@ -78,8 +104,14 @@ html[it-hide-download-button='true'] #info .top-level-buttons ytd-download-butto # HIDE THANKS BUTTON --------------------------------------------------------------*/ -html[it-hide-thanks-button='true'] #info .top-level-buttons ytd-button-renderer#Thanks-button { - display: none !important; +html[it-hide-thanks-button=true] #top-level-buttons ytd-button-renderer#Thanks-button, +html[it-hide-thanks-button=true] #top-level-buttons-computed ytd-button-renderer#Thanks-button { + display: none; +} + +html[it-hide-thanks-button-text=true] #top-level-buttons ytd-button-renderer#Thanks-button div.cbox, +html[it-hide-thanks-button-text=true] #top-level-buttons-computed ytd-button-renderer#Thanks-button div.cbox { + display: none; } @@ -87,8 +119,14 @@ html[it-hide-thanks-button='true'] #info .top-level-buttons ytd-button-renderer# # HIDE CLIP BUTTON --------------------------------------------------------------*/ -html[it-hide-clip-button='true'] #info .top-level-buttons ytd-button-renderer#Clip-button { - display: none !important; +html[it-hide-clip-button=true] #top-level-buttons ytd-button-renderer#Clip-button, +html[it-hide-clip-button=true] #top-level-buttons-computed ytd-button-renderer#Clip-button { + display: none; +} + +html[it-hide-clip-button-text=true] #top-level-buttons ytd-button-renderer#Clip-button div.cbox, +html[it-hide-clip-button-text=true] #top-level-buttons-computed ytd-button-renderer#Clip-button div.cbox { + display: none; } @@ -96,8 +134,14 @@ html[it-hide-clip-button='true'] #info .top-level-buttons ytd-button-renderer#Cl # HIDE SAVE BUTTON --------------------------------------------------------------*/ -html[it-hide-save-button='true'] #info .top-level-buttons ytd-button-renderer:last-child { - display: none !important; +html[it-hide-save-button=true] #top-level-buttons ytd-button-renderer#Save-button, +html[it-hide-save-button=true] #top-level-buttons-computed ytd-button-renderer#Save-button { + display: none; +} + +html[it-hide-save-button-text=true] #top-level-buttons ytd-button-renderer#Save-button div.cbox, +html[it-hide-save-button-text=true] #top-level-buttons-computed ytd-button-renderer#Save-button div.cbox { + display: none; } @@ -105,8 +149,9 @@ html[it-hide-save-button='true'] #info .top-level-buttons ytd-button-renderer:la # HIDE REPORT BUTTON --------------------------------------------------------------*/ -html[it-hide-report-button='true'] #info .top-level-buttons ytd-button-renderer#-button { - display: none !important; +html[it-hide-report-button=true] #top-level-buttons ytd-button-renderer#Report-button, +html[it-hide-report-button=true] #top-level-buttons-computed ytd-button-renderer#Report-button { + display: none; } @@ -114,8 +159,8 @@ html[it-hide-report-button='true'] #info .top-level-buttons ytd-button-renderer# # HIDE MORE BUTTON --------------------------------------------------------------*/ -html[it-hide-more-button='true'] #info ytd-menu-renderer>yt-icon-button { - display: none !important; +html[it-hide-more-button=true] #menu yt-button-shape#button-shape { + display: none; } diff --git a/options-page/styles/appearance.css b/options-page/styles/appearance.css index 58ae0e471..8ee4f4785 100644 --- a/options-page/styles/appearance.css +++ b/options-page/styles/appearance.css @@ -164,122 +164,3 @@ HIDE DETAIL BUTTON --------------------------------------------------------------*/ - /*-------------------------------------------------------------- -HIDE LIKE BUTTON ---------------------------------------------------------------*/ - -[it-hide-like-button=true] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(1), -[it-hide-like-button=true] #info #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) { - display: none; -} - -[it-hide-like-button-text=true] #top-level-buttons ytd-toggle-button-renderer:nth-child(1) div.cbox, -[it-hide-like-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) div.cbox { - display: none; -} - - /*-------------------------------------------------------------- -HIDE DISLIKE BUTTON ---------------------------------------------------------------*/ - -[it-hide-dislike-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) div.cbox, -[it-hide-dislike-button-text=true] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) div.cbox { - display: none; -} - -[it-hide-dislike-button-text=true] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) div.cbox, -[it-hide-dislike-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) div.cbox { - display: none; -} - -/*-------------------------------------------------------------- -HIDE SHARE BUTTON ---------------------------------------------------------------*/ - -html[it-hide-share-button=true] #top-level-buttons ytd-button-renderer#Share-button, -html[it-hide-share-button=true] #top-level-buttons-computed ytd-button-renderer#Share-button { - display: none; -} - -html[it-hide-share-button-text=true] #top-level-buttons ytd-button-renderer#Share-button div.cbox, -html[it-hide-share-button-text=true] #top-level-buttons-computed ytd-button-renderer#Share-button div.cbox { - display: none; -} - -/*-------------------------------------------------------------- -HIDE DOWNLOAD BUTTON ---------------------------------------------------------------*/ - -html[it-hide-download-button=true] #top-level-buttons ytd-download-button-renderer, -html[it-hide-download-button=true] #top-level-buttons-computed ytd-download-button-renderer { - display: none; -} - -html[it-hide-download-button-text=true] #top-level-buttons ytd-download-button-renderer div.cbox , -html[it-hide-download-button-text=true] #top-level-buttons-computed ytd-download-button-renderer div.cbox { - display: none; -} - -/*-------------------------------------------------------------- -HIDE THANKS BUTTON ---------------------------------------------------------------*/ - -html[it-hide-thanks-button=true] #top-level-buttons ytd-button-renderer#Thanks-button, -html[it-hide-thanks-button=true] #top-level-buttons-computed ytd-button-renderer#Thanks-button { - display: none; -} - -html[it-hide-thanks-button-text=true] #top-level-buttons ytd-button-renderer#Thanks-button div.cbox, -html[it-hide-thanks-button-text=true] #top-level-buttons-computed ytd-button-renderer#Thanks-button div.cbox { - display: none; -} - -/*-------------------------------------------------------------- -HIDE CLIP BUTTON ---------------------------------------------------------------*/ - -html[it-hide-clip-button=true] #top-level-buttons ytd-button-renderer#Clip-button, -html[it-hide-clip-button=true] #top-level-buttons-computed ytd-button-renderer#Clip-button { - display: none; -} - -html[it-hide-clip-button-text=true] #top-level-buttons ytd-button-renderer#Clip-button div.cbox, -html[it-hide-clip-button-text=true] #top-level-buttons-computed ytd-button-renderer#Clip-button div.cbox { - display: none; -} - -/*-------------------------------------------------------------- -HIDE SAVE BUTTON ---------------------------------------------------------------*/ - -html[it-hide-save-button=true] #top-level-buttons ytd-button-renderer#Save-button, -html[it-hide-save-button=true] #top-level-buttons-computed ytd-button-renderer#Save-button { - display: none; -} - -html[it-hide-save-button-text=true] #top-level-buttons ytd-button-renderer#Save-button div.cbox, -html[it-hide-save-button-text=true] #top-level-buttons-computed ytd-button-renderer#Save-button div.cbox { - display: none; -} - -/*-------------------------------------------------------------- -REPORT REPORT BUTTON ---------------------------------------------------------------*/ - -html[it-hide-report-button=true] #top-level-buttons ytd-button-renderer#Report-button, -html[it-hide-report-button=true] #top-level-buttons-computed ytd-button-renderer#Report-button { - display: none; -} - - -/*-------------------------------------------------------------- -HIDE MORE BUTTON ---------------------------------------------------------------*/ - -html[it-hide-more-button=true] #menu yt-button-shape#button-shape { - display: none; -} - -html[it-hide-more-button=true] body{ - background-color: aqua; -} \ No newline at end of file From 4d3e277c87854919e33e4952d83a227503761092 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sun, 23 Oct 2022 21:16:49 +0800 Subject: [PATCH 0664/1224] Improved detail button size when text is hidden --- .../appearance/details/details.css | 79 ++++++++++--------- 1 file changed, 43 insertions(+), 36 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/content-scripts/extension-context/youtube-features/appearance/details/details.css index e52617589..07a8f435c 100644 --- a/content-scripts/extension-context/youtube-features/appearance/details/details.css +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.css @@ -45,28 +45,31 @@ html[it-hide-date='true'] #info #count + #info-strings>#dot { HIDE LIKE BUTTON --------------------------------------------------------------*/ -[it-hide-like-button=true] #info #top-level-buttons ytd-toggle-button-renderer:nth-child(1), -[it-hide-like-button=true] #info #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) { +html[it-hide-like-button=true] #info #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1), +html[it-hide-like-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) div.cbox { display: none; } -[it-hide-like-button-text=true] #top-level-buttons ytd-toggle-button-renderer:nth-child(1) div.cbox, -[it-hide-like-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) div.cbox { - display: none; +html[it-hide-like-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) .yt-spec-button-shape-next__icon, +html[it-hide-like-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) button{ + margin: 0; + padding: 0 5px; } + /*-------------------------------------------------------------- HIDE DISLIKE BUTTON --------------------------------------------------------------*/ -[it-hide-dislike-button=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2), -[it-hide-dislike-button=true] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) { +html[it-hide-dislike-button=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2), +html[it-hide-dislike-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) div.cbox { display: none; } -[it-hide-dislike-button-text=true] #top-level-buttons ytd-toggle-button-renderer:nth-child(2) div.cbox, -[it-hide-dislike-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) div.cbox { - display: none; +html[it-hide-dislike-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) .yt-spec-button-shape-next__icon, +html[it-hide-dislike-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) button{ + margin: 0; + padding: 0 5px; } @@ -74,14 +77,15 @@ HIDE DISLIKE BUTTON # HIDE SHARE BUTTON --------------------------------------------------------------*/ -html[it-hide-share-button=true] #top-level-buttons ytd-button-renderer#Share-button, -html[it-hide-share-button=true] #top-level-buttons-computed ytd-button-renderer#Share-button { +html[it-hide-share-button=true] #top-level-buttons-computed ytd-button-renderer#Share-button, +html[it-hide-share-button-text=true] #top-level-buttons-computed ytd-button-renderer#Share-button div.cbox { display: none; } -html[it-hide-share-button-text=true] #top-level-buttons ytd-button-renderer#Share-button div.cbox, -html[it-hide-share-button-text=true] #top-level-buttons-computed ytd-button-renderer#Share-button div.cbox { - display: none; +html[it-hide-share-button-text=true] #top-level-buttons-computed ytd-button-renderer#Share-button .yt-spec-button-shape-next__icon, +html[it-hide-share-button-text=true] #top-level-buttons-computed ytd-button-renderer#Share-button button{ + margin: 0; + padding: 0 5px; } @@ -89,14 +93,15 @@ html[it-hide-share-button-text=true] #top-level-buttons-computed ytd-button-rend # HIDE DOWNLOAD BUTTON --------------------------------------------------------------*/ -html[it-hide-download-button=true] #top-level-buttons ytd-download-button-renderer, -html[it-hide-download-button=true] #top-level-buttons-computed ytd-download-button-renderer { +html[it-hide-download-button=true] #top-level-buttons-computed ytd-download-button-renderer, +html[it-hide-download-button-text=true] #top-level-buttons-computed ytd-download-button-renderer div.cbox { display: none; } -html[it-hide-download-button-text=true] #top-level-buttons ytd-download-button-renderer div.cbox , -html[it-hide-download-button-text=true] #top-level-buttons-computed ytd-download-button-renderer div.cbox { - display: none; +html[it-hide-download-button-text=true] #top-level-buttons-computed ytd-download-button-renderer .yt-spec-button-shape-next__icon, +html[it-hide-download-button-text=true] #top-level-buttons-computed ytd-download-button-renderer button{ + margin: 0; + padding: 0 5px; } @@ -104,14 +109,15 @@ html[it-hide-download-button-text=true] #top-level-buttons-computed ytd-download # HIDE THANKS BUTTON --------------------------------------------------------------*/ -html[it-hide-thanks-button=true] #top-level-buttons ytd-button-renderer#Thanks-button, -html[it-hide-thanks-button=true] #top-level-buttons-computed ytd-button-renderer#Thanks-button { +html[it-hide-thanks-button=true] #top-level-buttons-computed ytd-button-renderer#Thanks-button, +html[it-hide-thanks-button-text=true] #top-level-buttons-computed ytd-button-renderer#Thanks-button div.cbox { display: none; } -html[it-hide-thanks-button-text=true] #top-level-buttons ytd-button-renderer#Thanks-button div.cbox, -html[it-hide-thanks-button-text=true] #top-level-buttons-computed ytd-button-renderer#Thanks-button div.cbox { - display: none; +html[it-hide-thanks-button-text=true] #top-level-buttons-computed ytd-button-renderer#Thanks-button .yt-spec-button-shape-next__icon, +html[it-hide-thanks-button-text=true] #top-level-buttons-computed ytd-button-renderer#Thanks-button button{ + margin: 0; + padding: 0 5px; } @@ -119,14 +125,15 @@ html[it-hide-thanks-button-text=true] #top-level-buttons-computed ytd-button-ren # HIDE CLIP BUTTON --------------------------------------------------------------*/ -html[it-hide-clip-button=true] #top-level-buttons ytd-button-renderer#Clip-button, -html[it-hide-clip-button=true] #top-level-buttons-computed ytd-button-renderer#Clip-button { +html[it-hide-clip-button=true] #top-level-buttons-computed ytd-button-renderer#Clip-button, +html[it-hide-clip-button-text=true] #top-level-buttons-computed ytd-button-renderer#Clip-button div.cbox { display: none; } -html[it-hide-clip-button-text=true] #top-level-buttons ytd-button-renderer#Clip-button div.cbox, -html[it-hide-clip-button-text=true] #top-level-buttons-computed ytd-button-renderer#Clip-button div.cbox { - display: none; +html[it-hide-clip-button-text=true] #top-level-buttons-computed ytd-button-renderer#Clip-button .yt-spec-button-shape-next__icon, +html[it-hide-clip-button-text=true] #top-level-buttons-computed ytd-button-renderer#Clip-button button{ + margin: 0; + padding: 0 5px; } @@ -134,14 +141,15 @@ html[it-hide-clip-button-text=true] #top-level-buttons-computed ytd-button-rende # HIDE SAVE BUTTON --------------------------------------------------------------*/ -html[it-hide-save-button=true] #top-level-buttons ytd-button-renderer#Save-button, -html[it-hide-save-button=true] #top-level-buttons-computed ytd-button-renderer#Save-button { +html[it-hide-save-button=true] #top-level-buttons-computed ytd-button-renderer#Save-button, +html[it-hide-save-button-text=true] #top-level-buttons-computed ytd-button-renderer#Save-button div.cbox { display: none; } -html[it-hide-save-button-text=true] #top-level-buttons ytd-button-renderer#Save-button div.cbox, -html[it-hide-save-button-text=true] #top-level-buttons-computed ytd-button-renderer#Save-button div.cbox { - display: none; +html[it-hide-save-button-text=true] #top-level-buttons-computed ytd-button-renderer#Save-button .yt-spec-button-shape-next__icon, +html[it-hide-save-button-text=true] #top-level-buttons-computed ytd-button-renderer#Save-button button{ + margin: 0; + padding: 0 5px; } @@ -149,7 +157,6 @@ html[it-hide-save-button-text=true] #top-level-buttons-computed ytd-button-rende # HIDE REPORT BUTTON --------------------------------------------------------------*/ -html[it-hide-report-button=true] #top-level-buttons ytd-button-renderer#Report-button, html[it-hide-report-button=true] #top-level-buttons-computed ytd-button-renderer#Report-button { display: none; } From fd2c0bdc4fb3ec6d69d4dbf80b1555147b9f10d2 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sun, 23 Oct 2022 21:27:48 +0800 Subject: [PATCH 0665/1224] Update channelVideosCount() Port commit fd4f5d9 by @hboyd2003 to v4 --- .../youtube-features/appearance.js | 60 +++++++++++-------- 1 file changed, 35 insertions(+), 25 deletions(-) diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index 6b67946ff..a2fb0b4b2 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -268,41 +268,51 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { ------------------------------------------------------------------------------*/ ImprovedTube.channelVideosCount = function () { - if (this.storage.channel_videos_count === true && this.elements.yt_channel_link) { - var xhr = new XMLHttpRequest(), - key = this.storage['google-api-key'] || ImprovedTube.defaultApiKey, - id = this.elements.yt_channel_link.href.slice(this.elements.yt_channel_link.href.indexOf('/channel/') + '/channel/'.length); + if (this.storage.channel_videos_count === true && this.elements.yt_channel_link) { + var key = this.storage['google-api-key'] || ImprovedTube.defaultApiKey; + if (this.elements.yt_channel_link.href.indexOf('/channel/') == -1) { + var xhr = new XMLHttpRequest(), + id = this.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v'); + + xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=' + id + '&key=' + key, false); + xhr.send(); + var response = JSON.parse(xhr.responseText); + id = response.items[0].snippet.channelId; + } else { + id = this.elements.yt_channel_link.href.slice(this.elements.yt_channel_link.href.indexOf('/channel/') + '/channel/'.length); + if (id.indexOf('/') !== -1) { + id = id.match(/.+?(?=\/)/)[0]; + } + } - if (id.indexOf('/') !== -1) { - id = id.match(/.+?(?=\/)/)[0]; - } + xhr = new XMLHttpRequest(); - xhr.addEventListener('load', function () { - var response = JSON.parse(this.responseText), - parent = document.querySelector('#meta ytd-channel-name + yt-formatted-string'), - element = ImprovedTube.elements.channel_videos_count || document.createElement('div'); + xhr.addEventListener('load', function () { + var response = JSON.parse(this.responseText), + parent = document.querySelector('#meta ytd-channel-name + yt-formatted-string'), + element = ImprovedTube.elements.channel_videos_count || document.createElement('div'); - ImprovedTube.empty(element); + ImprovedTube.empty(element); - if (response.error) { - element.appendChild(document.createTextNode('• Error: ' + response.error.code)); - } else { - element.appendChild(document.createTextNode('• ' + response.items[0].statistics.videoCount + ' videos')); - } + if (response.error) { + element.appendChild(document.createTextNode('• Error: ' + response.error.code)); + } else { + element.appendChild(document.createTextNode('• ' + response.items[0].statistics.videoCount + ' videos')); + } - element.className = 'it-channel-videos-count'; + element.className = 'it-channel-videos-count'; - ImprovedTube.elements.channel_videos_count = element; + ImprovedTube.elements.channel_videos_count = element; - parent.appendChild(element); + parent.appendChild(element); - ImprovedTube.elements.channel_videos_count = element; - }); + ImprovedTube.elements.channel_videos_count = element; + }); - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/channels?part=statistics&id=' + id + '&key=' + key, true); - xhr.send(); - } + xhr.open('GET', 'https://www.googleapis.com/youtube/v3/channels?part=statistics&id=' + id + '&key=' + key, true); + xhr.send(); + } }; /*------------------------------------------------------------------------------ From 539e413c46c93b2be841c3d6f30f92c169ee6751 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sun, 23 Oct 2022 21:34:17 +0800 Subject: [PATCH 0666/1224] Update playerPlaybackSpeed() Port commit 4fc9265by @hboyd2003 to v4 --- _locales/am/messages.json | 15 ++++--- _locales/ar/messages.json | 15 ++++--- _locales/bg/messages.json | 15 ++++--- _locales/bn/messages.json | 15 ++++--- _locales/ca/messages.json | 15 ++++--- _locales/cs/messages.json | 15 ++++--- _locales/da/messages.json | 15 ++++--- _locales/de/messages.json | 15 ++++--- _locales/el/messages.json | 15 ++++--- _locales/en/messages.json | 15 ++++--- _locales/en_GB/messages.json | 15 ++++--- _locales/en_US/messages.json | 15 ++++--- _locales/es/messages.json | 15 ++++--- _locales/es_419/messages.json | 15 ++++--- _locales/et/messages.json | 15 ++++--- _locales/fa/messages.json | 15 ++++--- _locales/fi/messages.json | 15 ++++--- _locales/fil/messages.json | 15 ++++--- _locales/fr/messages.json | 15 ++++--- _locales/gu/messages.json | 15 ++++--- _locales/he/messages.json | 15 ++++--- _locales/hi/messages.json | 15 ++++--- _locales/hr/messages.json | 15 ++++--- _locales/hu/messages.json | 15 ++++--- _locales/id/messages.json | 15 ++++--- _locales/it/messages.json | 15 ++++--- _locales/ja/messages.json | 15 ++++--- _locales/kn/messages.json | 15 ++++--- _locales/ko/messages.json | 15 ++++--- _locales/lt/messages.json | 15 ++++--- _locales/lv/messages.json | 15 ++++--- _locales/ml/messages.json | 15 ++++--- _locales/mr/messages.json | 15 ++++--- _locales/ms/messages.json | 15 ++++--- _locales/nb_NO/messages.json | 15 ++++--- _locales/nl/messages.json | 15 ++++--- _locales/no/messages.json | 15 ++++--- _locales/pl/messages.json | 15 ++++--- _locales/pt_BR/messages.json | 15 ++++--- _locales/pt_PT/messages.json | 15 ++++--- _locales/ro/messages.json | 15 ++++--- _locales/ru/messages.json | 15 ++++--- _locales/si/messages.json | 15 ++++--- _locales/sk/messages.json | 15 ++++--- _locales/sl/messages.json | 15 ++++--- _locales/sr/messages.json | 15 ++++--- _locales/sv/messages.json | 15 ++++--- _locales/sw/messages.json | 15 ++++--- _locales/ta/messages.json | 15 ++++--- _locales/te/messages.json | 15 ++++--- _locales/th/messages.json | 15 ++++--- _locales/tr/messages.json | 15 ++++--- _locales/uk/messages.json | 15 ++++--- _locales/vi/messages.json | 15 ++++--- _locales/zh_CN/messages.json | 15 ++++--- _locales/zh_TW/messages.json | 15 ++++--- .../youtube-features/player.js | 2 +- options-page/skeleton-parts/player.js | 43 +++++++++++++------ 58 files changed, 535 insertions(+), 350 deletions(-) diff --git a/_locales/am/messages.json b/_locales/am/messages.json index 838ef0780..54d52e478 100644 --- a/_locales/am/messages.json +++ b/_locales/am/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Force video to play from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index d13fd1fc0..19ac55aac 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -272,6 +272,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -332,6 +335,9 @@ "empty": { "message": "فارغة" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "ممكّن" }, @@ -383,9 +389,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "تثبيت سرعة التشغيل" - }, "forcedTheaterMode": { "message": "فرض وضع المسرح" }, @@ -746,9 +749,6 @@ "playPause": { "message": "تشغيل / ايقاف" }, - "playbackSpeed": { - "message": "سرعة التشغيل" - }, "player": { "message": "المشغل" }, @@ -878,6 +878,9 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "الإعدادات" }, diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/bg/messages.json +++ b/_locales/bg/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index f0de57e7a..315f9e53c 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "ডিফল্ট বিষয়বস্তুর দেশ" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "খালি" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "সক্ষম" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "জোর করে শুরু থেকে ভিডিও চালান" }, - "forcedPlaybackSpeed": { - "message": "জোর করে প্লেব্যাক গতি" - }, "forcedTheaterMode": { "message": "জোর করে থিয়েটার মোড" }, @@ -740,9 +743,6 @@ "playPause": { "message": "খেলার / বিরতি" }, - "playbackSpeed": { - "message": "প্লেব্যাক গতি" - }, "player": { "message": "প্লেয়ার" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "পূর্ববর্তী অধ্যায় সন্ধান করুন" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "সেটিংস" }, diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/ca/messages.json +++ b/_locales/ca/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/cs/messages.json +++ b/_locales/cs/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/da/messages.json b/_locales/da/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/da/messages.json +++ b/_locales/da/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index e86e465e3..ebae4bb4a 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Standard-Land für Inhalte" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Gesehene Videos entfernen" }, @@ -329,6 +332,9 @@ "empty": { "message": "leer" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "aktiviert" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Spiele Video erzwungen von Beginn ab" }, - "forcedPlaybackSpeed": { - "message": "erzwungene Abspielgeschwindigkeit" - }, "forcedTheaterMode": { "message": "Kinomodus erzwingen" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Abspielgeschwindigkeit" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Vorheriges Kapitel" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Einstellungen" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index d01b8a2c6..8cc006611 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Κενό" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Ενεργοποιημένο" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Υποχρεωτική ταχύτητα αναπαραγωγής" - }, "forcedTheaterMode": { "message": "Υποχρεωτική λειτουργία κινηματογράφου" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Ταχύτητα αναπαραγωγής" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Ρυθμίσεις" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index d7aab1649..cd78bcf1e 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "defaultPlaybackSpeedEnable": { "message": "Enable Default playback speed" }, @@ -338,6 +341,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -389,9 +395,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Force video to play from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -749,9 +752,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -881,6 +881,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json index 6bd3a8f7c..43aa373d0 100644 --- a/_locales/en_GB/messages.json +++ b/_locales/en_GB/messages.json @@ -266,6 +266,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -326,6 +329,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -377,9 +383,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Force video to play from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -716,9 +719,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -848,6 +848,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json index 6bd3a8f7c..43aa373d0 100644 --- a/_locales/en_US/messages.json +++ b/_locales/en_US/messages.json @@ -266,6 +266,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -326,6 +329,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -377,9 +383,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Force video to play from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -716,9 +719,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -848,6 +848,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 5fc91a0b7..32edd2944 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Contenido del pais por defecto" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Eliminar videos vistos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Vacío" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Activado" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forzar la reproduccion del video desde el inicio" }, - "forcedPlaybackSpeed": { - "message": "Forzar velocidad de reproducción" - }, "forcedTheaterMode": { "message": "Forzar modo teatro" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Reproducir / pausar" }, - "playbackSpeed": { - "message": "Velocidad de reproducción" - }, "player": { "message": "Reproductor" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Saltar al capitulo anterior" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Ajustes" }, diff --git a/_locales/es_419/messages.json b/_locales/es_419/messages.json index 9dd63f3ea..0999b11ea 100644 --- a/_locales/es_419/messages.json +++ b/_locales/es_419/messages.json @@ -266,6 +266,9 @@ "defaultContentCountry": { "message": "Contenido del pais por defecto" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Eliminar videos vistos" }, @@ -326,6 +329,9 @@ "empty": { "message": "Vacío" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Activado" }, @@ -377,9 +383,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forzar la reproduccion del video desde el inicio" }, - "forcedPlaybackSpeed": { - "message": "Forzar velocidad de reproducción" - }, "forcedTheaterMode": { "message": "Forzar modo teatro" }, @@ -716,9 +719,6 @@ "playPause": { "message": "Reproducir / pausar" }, - "playbackSpeed": { - "message": "Velocidad de reproducción" - }, "player": { "message": "Reproductor" }, @@ -848,6 +848,9 @@ "seekPreviousChapter": { "message": "Saltar al capitulo anterior" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Ajustes" }, diff --git a/_locales/et/messages.json b/_locales/et/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/et/messages.json +++ b/_locales/et/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/fa/messages.json b/_locales/fa/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/fa/messages.json +++ b/_locales/fa/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/fi/messages.json b/_locales/fi/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/fi/messages.json +++ b/_locales/fi/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/fil/messages.json b/_locales/fil/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/fil/messages.json +++ b/_locales/fil/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 3307c7457..932bc05d7 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Vide" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Activé" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Vitesse de lecture forcée" - }, "forcedTheaterMode": { "message": "Forcer le mode théâtre" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Lire / Pause" }, - "playbackSpeed": { - "message": "Vitesse de lecture" - }, "player": { "message": "Lecteur" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Réglages" }, diff --git a/_locales/gu/messages.json b/_locales/gu/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/gu/messages.json +++ b/_locales/gu/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/he/messages.json b/_locales/he/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/he/messages.json +++ b/_locales/he/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/hi/messages.json b/_locales/hi/messages.json index 86aef7a15..125909234 100644 --- a/_locales/hi/messages.json +++ b/_locales/hi/messages.json @@ -266,6 +266,9 @@ "defaultContentCountry": { "message": "डिफॉल्ट विषय देश" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -326,6 +329,9 @@ "empty": { "message": "खाली" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "सक्रिय" }, @@ -377,9 +383,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "जबरदस्ती वीडियो शुरू से प्ले करें" }, - "forcedPlaybackSpeed": { - "message": "जबरन पार्श्व गति" - }, "forcedTheaterMode": { "message": "जबरन थिएटर मोड" }, @@ -734,9 +737,6 @@ "playPause": { "message": "प्ले / ठहराव" }, - "playbackSpeed": { - "message": "प्लेबैक स्पीड" - }, "player": { "message": "प्लेयर" }, @@ -866,6 +866,9 @@ "seekPreviousChapter": { "message": "पिछले अध्याय पर चलें" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "समायोजन" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 793d187b0..b75e897dc 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Prazno" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Omogućeno" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Prisiljena brzina reprodukcije" - }, "forcedTheaterMode": { "message": "Prisiljen kazališni način" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Reprodukcija / pauza" }, - "playbackSpeed": { - "message": "Brzina reprodukcije" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Postavke" }, diff --git a/_locales/hu/messages.json b/_locales/hu/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/hu/messages.json +++ b/_locales/hu/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 2689e350c..f53f06081 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Kosong" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Aktifkan" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Paksa kecepatan pemutaran" - }, "forcedTheaterMode": { "message": "Paksa mode teater" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Mulai / Jeda" }, - "playbackSpeed": { - "message": "Kecepatan pemutar" - }, "player": { "message": "Pemutar" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Pengaturan" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index aa37772a1..f2c2a690f 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Paese del contenuto predefinito" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Elimina video guardati" }, @@ -329,6 +332,9 @@ "empty": { "message": "Vuota" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Abilitato" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Riproduzione forzata di video dall'inizio" }, - "forcedPlaybackSpeed": { - "message": "Velocità di riproduzione forzata" - }, "forcedTheaterMode": { "message": "Modalità cinema forzata" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Avvio/Pausa" }, - "playbackSpeed": { - "message": "Velocità di riproduzione" - }, "player": { "message": "Lettore" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Cerca precedente capitolo" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Impostazioni" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index bf7977b95..b3a1231bf 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "デフォルトのコンテンツの地域" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "視聴した動画を削除する" }, @@ -329,6 +332,9 @@ "empty": { "message": "なし" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "有効" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "強制的に動画を最初から再生する" }, - "forcedPlaybackSpeed": { - "message": "再生速度を指定する" - }, "forcedTheaterMode": { "message": "シアターモードにする" }, @@ -740,9 +743,6 @@ "playPause": { "message": "再生/一時停止" }, - "playbackSpeed": { - "message": "再生速度" - }, "player": { "message": "プレーヤー" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "前のチャプターへ戻る" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "設定" }, diff --git a/_locales/kn/messages.json b/_locales/kn/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/kn/messages.json +++ b/_locales/kn/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 587aa12d1..4412872e7 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "비어있음" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "활성화" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "되감기 속도 강제설정" - }, "forcedTheaterMode": { "message": "강제 영화관 모드" }, @@ -740,9 +743,6 @@ "playPause": { "message": "재생 / 일시정지" }, - "playbackSpeed": { - "message": "되감기 속도" - }, "player": { "message": "플레이어" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "이전 챕터 보기" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "설정" }, diff --git a/_locales/lt/messages.json b/_locales/lt/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/lt/messages.json +++ b/_locales/lt/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/lv/messages.json b/_locales/lv/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/lv/messages.json +++ b/_locales/lv/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/ml/messages.json b/_locales/ml/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/ml/messages.json +++ b/_locales/ml/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/mr/messages.json b/_locales/mr/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/mr/messages.json +++ b/_locales/mr/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/ms/messages.json b/_locales/ms/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/ms/messages.json +++ b/_locales/ms/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index a322e2b54..12b71f9a8 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -266,6 +266,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -326,6 +329,9 @@ "empty": { "message": "Tom" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Aktivert" }, @@ -377,9 +383,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Tvungen avspillingshastighet" - }, "forcedTheaterMode": { "message": "Tvunget teater-modus" }, @@ -734,9 +737,6 @@ "playPause": { "message": "Spill / Pause" }, - "playbackSpeed": { - "message": "Avspillingshastighet" - }, "player": { "message": "Avspiller" }, @@ -866,6 +866,9 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Innstillinger" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index d7ee06b33..3388e60b4 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Standaardland voor inhoud" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Verwijder bekeken video's" }, @@ -329,6 +332,9 @@ "empty": { "message": "Leeg" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Ingeschakeld" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forceer video's af te spelen vanaf het begin" }, - "forcedPlaybackSpeed": { - "message": "Forceer afspeelsnelheid" - }, "forcedTheaterMode": { "message": "Forceer Theatermodus" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Video afspelen/pauzeren" }, - "playbackSpeed": { - "message": "Afspeelsnelheid" - }, "player": { "message": "Speler" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Ga naar vorig hoofdstuk" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Instellingen" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 5cb5aa617..474bba3c4 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Tom" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Aktivert" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Tvungen avspillingshastighet" - }, "forcedTheaterMode": { "message": "Tvunget teater-modus" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Spill / Pause" }, - "playbackSpeed": { - "message": "Avspillingshastighet" - }, "player": { "message": "Spiller" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Innstillinger" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 73050e5f6..b49383e0b 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Domyślny kraj zawartości" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Usuń obejrzane wideo" }, @@ -329,6 +332,9 @@ "empty": { "message": "Pusty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Włączony" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Wymuś odtwarzanie wideo od początku" }, - "forcedPlaybackSpeed": { - "message": "Wymuś prędkość odtwarzania" - }, "forcedTheaterMode": { "message": "Wymuś tryb kinowy" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Odtwarzanie / Pauza" }, - "playbackSpeed": { - "message": "Prędkość odtwarzania" - }, "player": { "message": "Odtwarzacz" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Przewiń do poprzedniego rozdziału" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Ustawienia" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 792035c84..5dafeb6ed 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Conteúdo padrão do país " }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Excluir vídeos assistidos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Vazio" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Ativado" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Reprodução do vídeo desde o início forçado" }, - "forcedPlaybackSpeed": { - "message": " Velocidade do reprodução forçado" - }, "forcedTheaterMode": { "message": "Modo teatro forçado" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Reproduzir / Pausar" }, - "playbackSpeed": { - "message": "Velocidade de reprodução" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Buscar capítulo anterior" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Configurações" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index fbb0a6560..4d015c65e 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Vazio" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Ativado" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forçar velocidade de leitura" - }, "forcedTheaterMode": { "message": "Forçar modo de cinema" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Reproduzir / Pausar" }, - "playbackSpeed": { - "message": "Velocidade de leitura" - }, "player": { "message": "Leitor" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Definições" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 37b779e5c..c84d6d340 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Gol" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Activat" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Viteză de playback forțată" - }, "forcedTheaterMode": { "message": "Modul teatru forțat" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Redă / Pauză" }, - "playbackSpeed": { - "message": "Viteza playbackului" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Setări" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index ad414cfd9..b9e0ace5b 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -272,6 +272,9 @@ "defaultContentCountry": { "message": "Страна по умолчанию" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Удалять просмотренные видео" }, @@ -332,6 +335,9 @@ "empty": { "message": "Пустой" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Включен" }, @@ -383,9 +389,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Всегда играть видео с начала" }, - "forcedPlaybackSpeed": { - "message": "Принудительная скорость воспроизведения" - }, "forcedTheaterMode": { "message": "Принудительно переходить в режим кино" }, @@ -746,9 +749,6 @@ "playPause": { "message": "Играть / Пауза" }, - "playbackSpeed": { - "message": "Скорость воспроизведения" - }, "player": { "message": "Плеер" }, @@ -878,6 +878,9 @@ "seekPreviousChapter": { "message": "Предыдущая глава" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Настройки" }, diff --git a/_locales/si/messages.json b/_locales/si/messages.json index a18e5f69c..c90e3176b 100644 --- a/_locales/si/messages.json +++ b/_locales/si/messages.json @@ -266,6 +266,9 @@ "defaultContentCountry": { "message": "සාමාන්‍ය content country එක" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "බලපු වීඩියෝ delete කරන්න" }, @@ -326,6 +329,9 @@ "empty": { "message": "හිස්" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -377,9 +383,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "වීඩියෝව මුල සිට බලහත්කාරයෙන් play කරන්න" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -734,9 +737,6 @@ "playPause": { "message": "Play කරන්න / Pause කරන්න" }, - "playbackSpeed": { - "message": "Playback speed එක" - }, "player": { "message": "Player එක" }, @@ -866,6 +866,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index b13fc3b4c..c0ff22025 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Prázdny" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Zapnuté" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Vynútená rýchlosť prehrávania" - }, "forcedTheaterMode": { "message": "Vynútený divadelný režim" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Prehrať / Pozastavť" }, - "playbackSpeed": { - "message": "Rýchlosť prehrávania" - }, "player": { "message": "Prehrávač" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Nastavenia" }, diff --git a/_locales/sl/messages.json b/_locales/sl/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/sl/messages.json +++ b/_locales/sl/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/sr/messages.json +++ b/_locales/sr/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/sw/messages.json b/_locales/sw/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/sw/messages.json +++ b/_locales/sw/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/ta/messages.json b/_locales/ta/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/ta/messages.json +++ b/_locales/ta/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/te/messages.json b/_locales/te/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/te/messages.json +++ b/_locales/te/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/th/messages.json b/_locales/th/messages.json index 4781d0f90..662d99f0a 100644 --- a/_locales/th/messages.json +++ b/_locales/th/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 95bf1d641..36c5198d7 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Varsayılan içerik ülkesi" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "İzlenen videoları sil" }, @@ -329,6 +332,9 @@ "empty": { "message": "Boş" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Etkin" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "En başından itibaren zorunlu oynatma videosu" }, - "forcedPlaybackSpeed": { - "message": "Oynatma hızını uygulamaya zorla" - }, "forcedTheaterMode": { "message": "Sinema modunu zorla" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Oynat / Duraklat" }, - "playbackSpeed": { - "message": "Oynatma hızı" - }, "player": { "message": "Oynatıcı" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Önceki Bölümü Ara" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Ayarlar" }, diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json index 26e05c2bf..a7c4749f2 100644 --- a/_locales/uk/messages.json +++ b/_locales/uk/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Default content country" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "Empty" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Enabled" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "Forced playback speed" - }, "forcedTheaterMode": { "message": "Forced theatre mode" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Play / Pause" }, - "playbackSpeed": { - "message": "Playback speed" - }, "player": { "message": "Player" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Settings" }, diff --git a/_locales/vi/messages.json b/_locales/vi/messages.json index 94e20a9fc..57ae22de0 100644 --- a/_locales/vi/messages.json +++ b/_locales/vi/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "Quốc gia nội dung mặc định" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Xóa video đã xem" }, @@ -329,6 +332,9 @@ "empty": { "message": "Trống" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "Đã bật" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Bắt buộc phát video từ đầu" }, - "forcedPlaybackSpeed": { - "message": "Tốc độ phát lại bắt buộc" - }, "forcedTheaterMode": { "message": "Bắt buộc chế độ rạp hát" }, @@ -740,9 +743,6 @@ "playPause": { "message": "Phát / Tạm dừng" }, - "playbackSpeed": { - "message": "Tốc độ phát lại" - }, "player": { "message": "Trình phát" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "Tìm kiếm chương trước" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "Cài đặt" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 18b362845..dabd1ce5a 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "默认内容国家" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -329,6 +332,9 @@ "empty": { "message": "暂无" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "启用" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, - "forcedPlaybackSpeed": { - "message": "强制设置播放速度" - }, "forcedTheaterMode": { "message": "强制设置剧场模式" }, @@ -740,9 +743,6 @@ "playPause": { "message": "播放/暂停" }, - "playbackSpeed": { - "message": "播放速度" - }, "player": { "message": "播放器" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "寻找上一章" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "ImprovedTube 设置" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index db3bead4f..6caa12c13 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -269,6 +269,9 @@ "defaultContentCountry": { "message": "預設國家" }, + "defaultPlaybackSpeed": { + "message": "Default Playback Speed" + }, "deleteWatchedVideos": { "message": "刪除已觀看的影片" }, @@ -329,6 +332,9 @@ "empty": { "message": "空白" }, + "enableDefaultPlaybackSpeed": { + "message": "Enable Default playback speed" + }, "enabled": { "message": "啟用" }, @@ -380,9 +386,6 @@ "forcedPlayVideoFromTheBeginning": { "message": "強制從頭播放" }, - "forcedPlaybackSpeed": { - "message": "強制播放速度" - }, "forcedTheaterMode": { "message": "強制劇院模式" }, @@ -740,9 +743,6 @@ "playPause": { "message": "播放/暫停" }, - "playbackSpeed": { - "message": "播放速度" - }, "player": { "message": "播放器" }, @@ -872,6 +872,9 @@ "seekPreviousChapter": { "message": "跳至前一章節" }, + "setDefaultPlaybackSpeed": { + "message": "Set Default Playback Speed" + }, "settings": { "message": "設定" }, diff --git a/content-scripts/website-context/youtube-features/player.js b/content-scripts/website-context/youtube-features/player.js index 490ce1869..ee6a2615f 100644 --- a/content-scripts/website-context/youtube-features/player.js +++ b/content-scripts/website-context/youtube-features/player.js @@ -70,7 +70,7 @@ ImprovedTube.playerPlaybackSpeed = function (change) { option = 1; } - if (this.storage.player_forced_playback_speed === true) { + if (this.storage.player_default_playback_speed_enable === true) { if (location.href.indexOf('music') === -1 && player.getVideoData().isLive === false) { player.setPlaybackRate(Number(option)); video.playbackRate = Number(option); diff --git a/options-page/skeleton-parts/player.js b/options-page/skeleton-parts/player.js index 0c91b93a5..50c6b8131 100644 --- a/options-page/skeleton-parts/player.js +++ b/options-page/skeleton-parts/player.js @@ -104,19 +104,36 @@ extension.skeleton.main.layers.section.player.on.click = { max: 400, value: 100 }, - player_forced_playback_speed: { - component: 'switch', - text: 'forcedPlaybackSpeed', - id: 'forced-playback-speed' - }, - player_playback_speed: { - component: 'slider', - text: 'playbackSpeed', - textarea: true, - value: 1, - min: .1, - max: 8, - step: .05 + default_playback_speed_menu: { + component: 'button', + text: 'defaultPlaybackSpeedMenu', + on: { + click: { + component: 'section', + variant: 'card', + + player_default_playback_speed_enable: { + component: 'switch', + text: 'defaultPlaybackSpeedEnable', + id: 'default-playback-speed-enable', + onrender: function () { + this.dataset.value = satus.storage.player_default_playback_speed_enable; + }, + onchange: function () { + this.dataset.value = satus.storage.player_default_playback_speed_enable; + } + }, + player_playback_speed: { + component: 'slider', + text: 'defaultPlaybackSpeedSet', + textarea: true, + value: 1, + min: .1, + max: 8, + step: .05 + } + } + } }, forced_play_video_from_the_beginning: { component: 'switch', From 65af7f07f71708c71cb38b60d5352104aebe645e Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sun, 23 Oct 2022 21:50:55 +0800 Subject: [PATCH 0667/1224] Update playerControls() Port commit 484fd34 by @JuniorGenius to v4 --- content-scripts/website-context/init.js | 10 +++++++ .../youtube-features/player.js | 26 +++++++++++++------ 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/content-scripts/website-context/init.js b/content-scripts/website-context/init.js index 639f2e9e4..04bde347e 100644 --- a/content-scripts/website-context/init.js +++ b/content-scripts/website-context/init.js @@ -101,4 +101,14 @@ window.addEventListener('load', function () { }; ImprovedTube.improvedtubeYoutubeIcon(); +}); + +document.addEventListener('improvedtube-player-loaded', function () { + ImprovedTube.elements.player.parentNode.addEventListener('mouseenter', function () { + ImprovedTube.playerControls(true); + }); + + ImprovedTube.elements.player.parentNode.addEventListener('mouseleave', function () { + ImprovedTube.playerControls(false); + }); }); \ No newline at end of file diff --git a/content-scripts/website-context/youtube-features/player.js b/content-scripts/website-context/youtube-features/player.js index ee6a2615f..a180da0a6 100644 --- a/content-scripts/website-context/youtube-features/player.js +++ b/content-scripts/website-context/youtube-features/player.js @@ -1114,12 +1114,22 @@ ImprovedTube.playerSDR = function () { 4.4.19 Hide controls ------------------------------------------------------------------------------*/ -ImprovedTube.playerControls = function () { - if (this.elements.player) { - if (this.storage.player_hide_controls === true) { - this.elements.player.hideControls(); - } else { - this.elements.player.showControls(); - } - } +ImprovedTube.playerControls = function (mouseIn=false) { + var player = this.elements.player; + + if (player) { + if (this.storage.player_hide_controls === 'always') { + player.hideControls(); + } else if(this.storage.player_hide_controls === 'off') { + player.showControls(); + } else if(this.storage.player_hide_controls === 'when_paused') { + if(this.elements.video.paused) { + if(mouseIn) { + player.showControls(); + } else { + player.hideControls(); + } + } + } + } }; \ No newline at end of file From 1fdac6aeec9d8cee29257433e90a9771b98dcd64 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sun, 23 Oct 2022 22:06:13 +0800 Subject: [PATCH 0668/1224] Update subtitles() Port 6ae0483 by @MyBestFriend to v4 --- .../youtube-features/player.js | 50 ++++++++++--------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/content-scripts/website-context/youtube-features/player.js b/content-scripts/website-context/youtube-features/player.js index a180da0a6..d9f61a6b2 100644 --- a/content-scripts/website-context/youtube-features/player.js +++ b/content-scripts/website-context/youtube-features/player.js @@ -101,29 +101,33 @@ ImprovedTube.subtitles = function () { ------------------------------------------------------------------------------*/ ImprovedTube.subtitlesLanguage = function () { - var option = this.storage.subtitles_language; - - if (this.isset(option) && option !== 'default') { - var player = this.elements.player, - button = this.elements.player_subtitles_button; - - if (player && player.getOption && button && button.getAttribute('aria-pressed') === 'true') { - var tracklist = this.elements.player.getOption('captions', 'tracklist', { - includeAsr: true - }); - - if (tracklist && tracklist[0]) { - tracklist = tracklist[0]; - - tracklist.translationLanguage = { - languageCode: option, - languageName: option - }; - - this.elements.player.setOption('captions', 'track', tracklist); - } - } - } + var option = this.storage.subtitles_language, + autoGenerate = this.storage.auto_generate; + + if (this.isset(option) && option !== 'default') { + var player = this.elements.player, + button = this.elements.player_subtitles_button; + + if (player && player.getOption && button && button.getAttribute('aria-pressed') === 'true') { + var tracklist = this.elements.player.getOption('captions', 'tracklist', { + includeAsr: true + }); + + var matchTrack = false; + for (var i =0, l = tracklist.length; i Date: Sun, 23 Oct 2022 22:09:05 +0800 Subject: [PATCH 0669/1224] Update shortcutStop() Port commit 27d848b by @JuniorGenius to v4 --- .../website-context/youtube-features/shortcuts.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/content-scripts/website-context/youtube-features/shortcuts.js index 7b106e38b..65cca35d6 100644 --- a/content-scripts/website-context/youtube-features/shortcuts.js +++ b/content-scripts/website-context/youtube-features/shortcuts.js @@ -288,12 +288,12 @@ ImprovedTube.shortcutStop = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutToggleAutoplay = function () { - var toggle = document.querySelector('.ytp-autonav-toggle-button'), - attribute = toggle.getAttribute('aria-checked') === 'true'; + var toggle = document.querySelector('#ytd-player .ytp-autonav-toggle-button'), + attribute = toggle.getAttribute('aria-checked') === 'true'; - if (toggle) { - toggle.click(); - } + if (toggle) { + toggle.click(); + } }; From f4f54b09bf4b93867ed7a92babf2bf3d7bac3459 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sun, 23 Oct 2022 22:10:38 +0800 Subject: [PATCH 0670/1224] Update channelDefaultTab() --- content-scripts/website-context/youtube-features/channel.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/content-scripts/website-context/youtube-features/channel.js b/content-scripts/website-context/youtube-features/channel.js index 4d364c38c..bd8da09c4 100644 --- a/content-scripts/website-context/youtube-features/channel.js +++ b/content-scripts/website-context/youtube-features/channel.js @@ -11,11 +11,7 @@ ImprovedTube.channelDefaultTab = function (a) { if (option && option !== '/' && a.parentNode && a.parentNode.id !== 'contenteditable-root') { if (this.regex.channel_home_page.test(a.href) && !a.href.endsWith(option)) { - if (!a.dataset.itOrigin) { - a.dataset.itOrigin = a.href.replace(this.regex.channel_home_page_postfix, ''); - } - - a.href = a.dataset.itOrigin + option; + a.href = a.href.replace(this.regex.channel_home_page_postfix, '') + option; a.addEventListener('click', function (event) { event.stopPropagation(); From 19535f7a4352ab05b014f63cb44177be6c481f4e Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sun, 23 Oct 2022 22:21:12 +0800 Subject: [PATCH 0671/1224] Update mini_player__setSize() Port commit 9401b84 by @samit43 to v4 --- .../youtube-features/player.js | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/content-scripts/website-context/youtube-features/player.js b/content-scripts/website-context/youtube-features/player.js index d9f61a6b2..fb35de38a 100644 --- a/content-scripts/website-context/youtube-features/player.js +++ b/content-scripts/website-context/youtube-features/player.js @@ -392,9 +392,19 @@ ImprovedTube.playerAds = function (parent) { 4.4.7 CUSTOM MINI-PLAYER ------------------------------------------------------------------------------*/ -ImprovedTube.mini_player__setSize = function (width, height) { - ImprovedTube.elements.player.style.width = width + 'px'; - ImprovedTube.elements.player.style.height = height + 'px'; +ImprovedTube.mini_player__setSize = function (width, height, keep_ar, keep_area) { + if (keep_ar) { + const aspect_ratio = ImprovedTube.elements.video.style.width.replace('px', '') / ImprovedTube.elements.video.style.height.replace('px', ''); + if (keep_area) { + height = Math.sqrt((width * height) / aspect_ratio); + width = height * aspect_ratio; + } else { + height = width / aspect_ratio; + } + } + + ImprovedTube.elements.player.style.width = width + 'px'; + ImprovedTube.elements.player.style.height = height + 'px'; }; ImprovedTube.miniPlayer_scroll = function () { @@ -414,7 +424,7 @@ ImprovedTube.miniPlayer_scroll = function () { ImprovedTube.elements.player.style.transform = 'translate(' + ImprovedTube.mini_player__x + 'px, ' + ImprovedTube.mini_player__y + 'px)'; - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height); + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height, true, true); window.addEventListener('mousedown', ImprovedTube.miniPlayer_mouseDown); window.addEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); @@ -636,15 +646,15 @@ ImprovedTube.miniPlayer_resizeMouseMove = function (event) { ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__height); } else if (ImprovedTube.mini_player__cursor === 'ne-resize') { ImprovedTube.elements.player.style.transform = 'translate(' + ImprovedTube.mini_player__x + 'px, ' + event.clientY + 'px)'; - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); + ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY, true); } else if (ImprovedTube.mini_player__cursor === 'se-resize') { - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, event.clientY - ImprovedTube.mini_player__y); + ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, event.clientY - ImprovedTube.mini_player__y, true); } else if (ImprovedTube.mini_player__cursor === 'sw-resize') { ImprovedTube.elements.player.style.transform = 'translate(' + event.clientX + 'px, ' + ImprovedTube.mini_player__y + 'px)'; - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, event.clientY - ImprovedTube.mini_player__y); + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, event.clientY - ImprovedTube.mini_player__y, true); } else if (ImprovedTube.mini_player__cursor === 'nw-resize') { ImprovedTube.elements.player.style.transform = 'translate(' + event.clientX + 'px, ' + event.clientY + 'px)'; - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY, true); } }; From 6db8ff5899057fd6702a324f83c7e4acfc0e474f Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sun, 23 Oct 2022 22:34:20 +0800 Subject: [PATCH 0672/1224] Update Header position --- .../appearance/header/header.css | 93 ++++++++++++------- 1 file changed, 60 insertions(+), 33 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/header/header.css b/content-scripts/extension-context/youtube-features/appearance/header/header.css index 91a3bd0ca..b9c3c1d0c 100644 --- a/content-scripts/extension-context/youtube-features/appearance/header/header.css +++ b/content-scripts/extension-context/youtube-features/appearance/header/header.css @@ -12,54 +12,81 @@ # POSITION --------------------------------------------------------------*/ -html[it-header-position='hidden'] #masthead, -html[it-header-position='hidden'] #guide-spacer, -html[it-header-position='static'] #guide-spacer, -html[it-header-position^='hidden'][it-pathname='/watch'] #masthead, -html[it-header-position^='hidden'][it-pathname='/watch'] #guide-spacer { - display: none !important; +html[it-header-position=hidden] tp-yt-app-drawer#guide #guide-spacer, +html[it-header-position=hidden] #masthead-container, +html[it-header-position=hidden] tp-yt-app-drawer:not([opened]) #header ytd-topbar-logo-renderer, +html[it-header-position=hover] tp-yt-app-drawer#guide #guide-spacer, +html[it-header-position=hover] tp-yt-app-drawer:not([opened]) #header ytd-topbar-logo-renderer, +html[it-header-position=static] tp-yt-app-drawer#guide #guide-spacer, +html[it-header-position=static] tp-yt-app-drawer:not([opened]) #header ytd-topbar-logo-renderer, +html[it-header-position=hidden_on_video_page][data-page-type=video] #masthead-container, +html[it-header-position=hidden_on_video_page][data-page-type=video] tp-yt-app-drawer#guide #guide-spacer, +html[it-header-position=hover_on_video_page][data-page-type=video] tp-yt-app-drawer#guide #guide-spacer { + display: none; +} + +html[it-header-position=hover] #masthead-container, +html[it-header-position=hover] tp-yt-app-drawer, +html[it-header-position=hover] ytd-mini-guide-renderer, +html[it-header-position=hover_on_video_page][data-page-type='video'] #masthead-container, +html[it-header-position=hover_on_video_page][data-page-type='video'] tp-yt-app-drawer, +html[it-header-position=hover_on_video_page][data-page-type='video'] ytd-mini-guide-renderer, +html[it-header-position=static] tp-yt-app-drawer, +html[it-header-position=static] ytd-mini-guide-renderer { + z-index: 2147483647 !important; } -html[it-header-position='hidden'] #page-manager, -html[it-header-position^='hidden'][it-pathname='/watch'] #page-manager { - margin-top: 0 !important; +html[it-header-position=hidden] ytd-page-manager#page-manager, +html[it-header-position=hidden_on_video_page][data-page-type='video'] ytd-page-manager#page-manager, +html[it-header-position=hover] ytd-page-manager#page-manager, +html[it-header-position=hover_on_video_page][data-page-type='video'] ytd-page-manager#page-manager, +html[it-header-position=static] ytd-page-manager#page-manager { + margin-top: 0; } -html[it-header-position='hover'] #masthead-container, -html[it-header-position^='hover'][it-pathname='/watch'] #masthead-container { - z-index: 9999 !important; +html[it-header-position=hover]:not([it-improvedtube-search=true]) #masthead-container, +html[it-header-position=hover_on_video_page][data-page-type='video']:not([it-improvedtube-search=true]) #masthead-container { + transition: transform 250ms; + transform: translateY(-75%); +} - transition: transform 200ms !important; - transform: translateY(-80%) !important; +html[it-header-position=hover] #masthead-container:hover, +html[it-header-position=hover][it-search-focus=true] #masthead-container, +html[it-header-position=hover_on_video_page][data-page-type='video'] #masthead-container:hover, +html[it-header-position=hover_on_video_page][data-page-type='video'][it-search-focus=true] #masthead-container { + transform: translateY(0%); } -html[it-header-position='hover'] #masthead-container:hover, -html[it-header-position^='hover'][it-pathname='/watch'] #masthead-container:hover, -html[it-search-focus='true'] #masthead-container { - transform: translateY(0%) !important; +html[it-header-position=hidden]:not([it-search-focus=true]) #masthead-container { + transform: translateY(-100%); } -html[it-header-position='hover'] #guide-spacer, -html[it-header-position='hover'] #page-manager, -html[it-header-position^='hover'][it-pathname='/watch'] #guide-spacer, -html[it-header-position^='hover'][it-pathname='/watch'] #page-manager, -html[it-header-position^='static'] #page-manager { - margin-top: 0 !important; +html[it-header-position=static] .ytd-app:not([masthead-hidden_]) #masthead-container { + position: relative; + z-index: 999999999999 !important; } -html[it-header-position^='hidden'] ytd-mini-guide-renderer, -html[it-header-position^='hover'] ytd-mini-guide-renderer { - top: 0 !important; +html[it-header-position=hover]:not([data-page-type=video]) tp-yt-app-drawer:not([opened]) #header, +html[it-header-position=hidden]:not([data-page-type=video]) tp-yt-app-drawer:not([opened]) #header, +html[it-header-position=static]:not([data-page-type=video]) tp-yt-app-drawer:not([opened]) #header { + position: absolute; + visibility: visible; + left: 240px; + top: 120px; + padding: 0 16px; + background: var(--yt-spec-brand-background-solid); } -html[it-header-position='static'] #masthead-container { - position: relative !important; +html[it-header-position=hover] tp-yt-app-drawer #header, +html[it-header-position=hidden] tp-yt-app-drawer #header, +html[it-header-position=static] tp-yt-app-drawer #header { + display: flex !important; } -html[it-header-position^='hover'] #chips-wrapper.ytd-feed-filter-chip-bar-renderer, -html[it-header-position^='hidden'] #chips-wrapper.ytd-feed-filter-chip-bar-renderer, -html[it-header-position='static'] #chips-wrapper.ytd-feed-filter-chip-bar-renderer { - position: inherit !important; +html[it-header-position=hover] #chips-wrapper.ytd-feed-filter-chip-bar-renderer, +html[it-header-position=hidden] #chips-wrapper.ytd-feed-filter-chip-bar-renderer, +html[it-header-position=static] #chips-wrapper.ytd-feed-filter-chip-bar-renderer { + position: inherit; } From 44551e47a94be73f2e283b70083a4e1a16ebb068 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sun, 23 Oct 2022 23:18:49 +0800 Subject: [PATCH 0673/1224] Update playlistRepeat() --- content-scripts/website-context/functions.js | 8 ++++---- content-scripts/website-context/init.js | 2 +- .../website-context/youtube-features/playlist.js | 11 ++++++----- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index 217ae11eb..5aa7dcd5f 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -32,7 +32,7 @@ ImprovedTube.ytElementsHandler = function (node) { if (node.getAttribute('itemprop') === 'genre') { ImprovedTube.genre = node.content; } - } else if (name === 'YTD-TOGGLE-BUTTON-RENDERER') { + } else if (name === 'YTD-TOGGLE-BUTTON-RENDERER' || name === 'YTD-PLAYLIST-LOOP-BUTTON-RENDERER') { if ( node.parentComponent && node.parentComponent.nodeName === 'YTD-MENU-RENDERER' && @@ -42,9 +42,9 @@ ImprovedTube.ytElementsHandler = function (node) { var index = Array.prototype.indexOf.call(node.parentNode.children, node); if (index === 0) { - this.elements.playlist.repeat_button = node; - - this.playlistRepeat(); + if (name === 'YTD-PLAYLIST-LOOP-BUTTON-RENDERER') { + this.elements.playlist.repeat_button = node.button.firstElementChild; + } this.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode; diff --git a/content-scripts/website-context/init.js b/content-scripts/website-context/init.js index 04bde347e..78e648802 100644 --- a/content-scripts/website-context/init.js +++ b/content-scripts/website-context/init.js @@ -86,7 +86,7 @@ document.addEventListener('yt-navigate-finish', function () { }); document.addEventListener('yt-page-data-updated', function (event) { - if (/[?&]list=([^&]+).*$/.test(location.href)) { + if (document.documentElement.dataset.pageType === 'video' && /[?&]list=([^&]+).*$/.test(location.href)) { ImprovedTube.playlistRepeat(); ImprovedTube.playlistShuffle(); ImprovedTube.playlistReverse(); diff --git a/content-scripts/website-context/youtube-features/playlist.js b/content-scripts/website-context/youtube-features/playlist.js index c2833972e..ec95c4a84 100644 --- a/content-scripts/website-context/youtube-features/playlist.js +++ b/content-scripts/website-context/youtube-features/playlist.js @@ -99,10 +99,11 @@ ImprovedTube.playlistReverse = function () { ------------------------------------------------------------------------------*/ ImprovedTube.playlistRepeat = function () { - var button = ImprovedTube.elements.playlist.repeat_button, - option = ImprovedTube.storage.playlist_repeat; - - if (button && (option === true && button.className.search('style-default-active') === -1 || option === 'disabled' && button.className.indexOf('style-default-active') !== -1)) { + var button = ImprovedTube.elements.playlist.repeat_button.firstElementChild, + svg = ImprovedTube.elements.playlist.repeat_button.querySelector("path"), + option = ImprovedTube.storage.playlist_repeat; + if (svg && ((option === true && svg !== 'M20,14h2v5L5.84,19.02l1.77,1.77l-1.41,1.41L1.99,18l4.21-4.21l1.41,1.41l-1.82,1.82L20,17V14z') + || (option === false && svg !== 'M21,13h1v5L3.93,18.03l2.62,2.62l-0.71,0.71L1.99,17.5l3.85-3.85l0.71,0.71l-2.67,2.67L21,17V13z'))) { button.click(); } }; @@ -116,7 +117,7 @@ ImprovedTube.playlistShuffle = function () { var button = ImprovedTube.elements.playlist.shuffle_button, option = ImprovedTube.storage.playlist_shuffle; - if (button && (option === true && button.className.search('style-default-active') === -1 || option === 'disabled' && button.className.indexOf('style-default-active') !== -1)) { + if (button && ((option === true && button.firstElementChild.firstElementChild.attributes[2].textContent !== 'Loop video') || (option === 'disabled' && button.firstElementChild.firstElementChild.attributes[2].textContent === 'Loop playlist'))) { button.click(); } }; \ No newline at end of file From 4491a2cd74503c3466a3f256f157132768fd6727 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sun, 23 Oct 2022 23:22:51 +0800 Subject: [PATCH 0674/1224] Improve autoplay() --- .../youtube-features/player.js | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/content-scripts/website-context/youtube-features/player.js b/content-scripts/website-context/youtube-features/player.js index fb35de38a..11bf5beda 100644 --- a/content-scripts/website-context/youtube-features/player.js +++ b/content-scripts/website-context/youtube-features/player.js @@ -6,24 +6,23 @@ 4.4.1 AUTOPLAY ------------------------------------------------------------------------------*/ -ImprovedTube.autoplay = function (video) { - if (ImprovedTube.video_url !== location.href) { - ImprovedTube.allow_autoplay = false; - } +ImprovedTube.autoplay = function () { + var video = ImprovedTube.elements.player; + if (ImprovedTube.video_url !== location.href) { + ImprovedTube.allow_autoplay = false; + } - if ( - ( - (location.href.indexOf('/watch?') !== -1 && location.href.indexOf('list=') === -1 && ImprovedTube.storage.player_autoplay === false) || - (location.href.indexOf('/watch?') !== -1 && location.href.indexOf('list=') !== -1 && ImprovedTube.storage.playlist_autoplay === false) || - (ImprovedTube.regex.channel.test(location.href) && ImprovedTube.storage.channel_trailer_autoplay === false) - ) === true && - ImprovedTube.allow_autoplay === false && - video.parentNode.parentNode.classList.contains('ad-showing') === false - ) { - setTimeout(function () { - video.parentNode.parentNode.pauseVideo(); - }); - } + if (ImprovedTube.allow_autoplay === false && video.classList.contains('ad-showing') === false && + ( + (document.documentElement.dataset.pageType === "video" && ((location.href.indexOf('list=') === -1 && ImprovedTube.storage.player_autoplay === false) || (ImprovedTube.storage.playlist_autoplay === false))) || + (document.documentElement.dataset.pageType === "channel" && ImprovedTube.storage.channel_trailer_autoplay === false) + ) + ) { + setTimeout(function () { + video.pauseVideo(); + + }); + } }; From 576092eabbac5e464a61bffae75bd051b12e53ac Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sun, 23 Oct 2022 23:28:11 +0800 Subject: [PATCH 0675/1224] Improved sidebar --- .../appearance/sidebar/sidebar.css | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css b/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css index e71633061..7aa912223 100644 --- a/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css +++ b/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css @@ -9,11 +9,30 @@ # Hide thumbnails --------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# SIDEBAR AUTO SIZING +--------------------------------------------------------------*/ +ytd-watch-flexy[flexy] #secondary.ytd-watch-flexy { + width: auto !important; + min-width: unset !important; +} + +ytd-live-chat-frame, +div#secondary div#related, +div#secondary div#panels, +div#secondary div#donation-shelf, +div#secondary #playlist { + width: var(--ytd-watch-flexy-sidebar-width); + min-width: var(--ytd-watch-flexy-sidebar-min-width); +} + /*-------------------------------------------------------------- # RELATED VIDEOS --------------------------------------------------------------*/ -html[it-related-videos='hidden'] #related > ytd-watch-next-secondary-results-renderer > #items { +html[it-related-videos='hidden'] #related > ytd-watch-next-secondary-results-renderer > #items, +html[it-related-videos=hidden] div#secondary div#panels, +html[it-related-videos=hidden] div#secondary div#donation-shelf { display: none !important; } From 4427cd4e1c77ee33f4b76441ea24285fa43def6c Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sun, 23 Oct 2022 23:54:17 +0800 Subject: [PATCH 0676/1224] Fixed forced theater mode not working --- content-scripts/website-context/functions.js | 6 ++++-- .../website-context/youtube-features/appearance.js | 14 ++++++-------- .../website-context/youtube-features/player.js | 1 - 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index 5aa7dcd5f..e584ccb25 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -241,7 +241,6 @@ ImprovedTube.videoPageUpdate = function () { this.howLongAgoTheVideoWasUploaded(); this.channelVideosCount(); - this.upNextAutoplay(); this.playerAutofullscreen(); this.playerScreenshotButton(); @@ -284,7 +283,6 @@ ImprovedTube.initPlayer = function () { delete ImprovedTube.elements.player.dataset.defaultQuality; ImprovedTube.forcedPlayVideoFromTheBeginning(); - ImprovedTube.forcedTheaterMode(); ImprovedTube.playerPlaybackSpeed(false); ImprovedTube.subtitles(); ImprovedTube.subtitlesLanguage(); @@ -300,6 +298,10 @@ ImprovedTube.initPlayer = function () { ImprovedTube.playerQuality(); ImprovedTube.playerVolume(); + setTimeout(function () { + ImprovedTube.forcedTheaterMode(); + }, 150); + if (location.href.indexOf('/embed/') === -1) { ImprovedTube.miniPlayer(); } diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index a2fb0b4b2..0435b59cd 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -63,20 +63,18 @@ ImprovedTube.playerSize = function () { ------------------------------------------------------------------------------*/ ImprovedTube.forcedTheaterMode = function () { - if ( - window.self === window.top && - this.storage.forced_theater_mode === true && - this.elements.ytd_watch && - this.elements.player + if (ImprovedTube.storage.forced_theater_mode === true && + ImprovedTube.elements.ytd_watch && + ImprovedTube.elements.player ) { - var button = this.elements.player.querySelector('button.ytp-size-button'); + var button = ImprovedTube.elements.player.querySelector('button.ytp-size-button'); - if (button && this.elements.ytd_watch.theater === false) { + if (button && ImprovedTube.elements.ytd_watch.theater === false) { document.cookie = 'wide=1;domain=.youtube.com'; setTimeout(function () { button.click(); - }, 200); + }, 100); } } }; diff --git a/content-scripts/website-context/youtube-features/player.js b/content-scripts/website-context/youtube-features/player.js index 11bf5beda..eaa8114ba 100644 --- a/content-scripts/website-context/youtube-features/player.js +++ b/content-scripts/website-context/youtube-features/player.js @@ -20,7 +20,6 @@ ImprovedTube.autoplay = function () { ) { setTimeout(function () { video.pauseVideo(); - }); } }; From 031afed1a310bf5a06b669c57c2765ccf8e517ac Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Mon, 24 Oct 2022 00:03:57 +0800 Subject: [PATCH 0677/1224] Update player control option fix hide autoplay not working move player control option from player to appearance player --- .../appearance/player/player.css | 17 +++++ .../youtube-features/content-styles.css | 19 ----- options-page/skeleton-parts/appearance.js | 71 +++++++++++++++++++ options-page/skeleton-parts/player.js | 71 ------------------- 4 files changed, 88 insertions(+), 90 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/player/player.css b/content-scripts/extension-context/youtube-features/appearance/player/player.css index 63a8b305b..990c6d311 100644 --- a/content-scripts/extension-context/youtube-features/appearance/player/player.css +++ b/content-scripts/extension-context/youtube-features/appearance/player/player.css @@ -476,4 +476,21 @@ html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change' width: 100% !important; height: calc(var(--it-player-size) - var(--it-header-size)) !important; max-height: none !important; +} + +/*------------------------------------------------------------------------------ +hide controls options +------------------------------------------------------------------------------*/ +html[it-player-play-button=true] .ytp-play-button, +html[it-player-previous-button=true] .ytp-prev-button, +html[it-player-next-button=true] .ytp-next-button, +html[it-player-volume-button=true] .ytp-volume-area, +html[it-player-autoplay-button=true] .ytp-right-controls .ytp-button[data-tooltip-target-id = ytp-autonav-toggle-button], +html[it-player-settings-button=true] .ytp-settings-button, +html[it-player-subtitles-button=true] .ytp-subtitles-button, +html[it-player-miniplayer-button=true] .ytp-miniplayer-button, +html[it-player-view-button=true] .ytp-size-button, +html[it-player-screen-button=true] .ytp-fullscreen-button, +html[it-player-remote-button=true] .ytp-remote-button { + display: none !important; } \ No newline at end of file diff --git a/content-scripts/extension-context/youtube-features/content-styles.css b/content-scripts/extension-context/youtube-features/content-styles.css index 650e6e1de..645206b9e 100644 --- a/content-scripts/extension-context/youtube-features/content-styles.css +++ b/content-scripts/extension-context/youtube-features/content-styles.css @@ -13,7 +13,6 @@ 4.5 Repeat 4.6 Rotate 4.7 Popup player - 4.8 Hide controls options 5.0 Playlist 5.1 Reverse 6.0 Channel @@ -1498,24 +1497,6 @@ body.no-scroll .it-player-button--tooltip { } -/*------------------------------------------------------------------------------ -4.8 hide controls options -------------------------------------------------------------------------------*/ -html[it-player-play-button=true] .ytp-play-button, -html[it-player-previous-button=true] .ytp-prev-button, -html[it-player-next-button=true] .ytp-next-button, -html[it-player-volume-button=true] .ytp-volume-area, -html[it-player-autoplay-button=true] .ytp-autonav-toggle-button-container, -html[it-player-settings-button=true] .ytp-settings-button, -html[it-player-subtitles-button=true] .ytp-subtitles-button, -html[it-player-miniplayer-button=true] .ytp-miniplayer-button, -html[it-player-view-button=true] .ytp-size-button, -html[it-player-screen-button=true] .ytp-fullscreen-button, -html[it-player-remote-button=true] .ytp-remote-button { - display: none !important; -} - - /*------------------------------------------------------------------------------ 5.0 PLAYLIST ------------------------------------------------------------------------------*/ diff --git a/options-page/skeleton-parts/appearance.js b/options-page/skeleton-parts/appearance.js index ed9c2f0d7..63f60cd9d 100644 --- a/options-page/skeleton-parts/appearance.js +++ b/options-page/skeleton-parts/appearance.js @@ -186,6 +186,77 @@ extension.skeleton.main.layers.section.appearance.on.click.player = { storage: 'custom_player_size_height' } }, + hide_controls: { + component: 'select', + text: 'hidePlayerControlsBar', + options: [{ + text: 'off', + value: 'off', + default: 'true' + }, { + text: 'whenPaused', + value: 'when_paused' + }, { + text: 'always', + value: 'always' + }], + storage: 'player_hide_controls' + }, + player_hide_controls_options: { + component: 'button', + text: 'hidePlayerControlsBarButtons', + on: { + click: { + component: 'section', + variant: 'card', + + player_play_button: { + component: 'switch', + text: 'playPause' + }, + player_previous_button: { + component: 'switch', + text: 'previousVideo' + }, + player_next_button: { + component: 'switch', + text: 'nextVideo' + }, + player_volume_button: { + component: 'switch', + text: 'volume' + }, + player_autoplay_button: { + component: 'switch', + text: 'autoplay' + }, + player_settings_button: { + component: 'switch', + text: 'settings' + }, + player_subtitles_button: { + component: 'switch', + text: 'subtitles' + }, + player_miniplayer_button: { + component: 'switch', + text: 'nativeMiniPlayer' + }, + player_view_button: { + component: 'switch', + text: 'viewMode' + }, + player_screen_button: { + component: 'switch', + text: 'screen' + }, + player_remote_button: { + component: 'switch', + text: 'remote' + } + } + } + }, forced_theater_mode: { component: 'switch', text: 'forcedTheaterMode', diff --git a/options-page/skeleton-parts/player.js b/options-page/skeleton-parts/player.js index 50c6b8131..fc3fb8759 100644 --- a/options-page/skeleton-parts/player.js +++ b/options-page/skeleton-parts/player.js @@ -922,77 +922,6 @@ extension.skeleton.main.layers.section.player.on.click = { text: 'loudnessNormalization', value: true }, - hide_controls: { - component: 'select', - text: 'hidePlayerControlsBar', - options: [{ - text: 'off', - value: 'off', - default: 'true' - }, { - text: 'whenPaused', - value: 'when_paused' - }, { - text: 'always', - value: 'always' - }], - storage: 'player_hide_controls' - }, - player_hide_controls_options: { - component: 'button', - text: 'hidePlayerControlsBarButtons', - on: { - click: { - component: 'section', - variant: 'card', - - player_play_button: { - component: 'switch', - text: 'playPause' - }, - player_previous_button: { - component: 'switch', - text: 'previousVideo' - }, - player_next_button: { - component: 'switch', - text: 'nextVideo' - }, - player_volume_button: { - component: 'switch', - text: 'volume' - }, - player_autoplay_button: { - component: 'switch', - text: 'autoplay' - }, - player_settings_button: { - component: 'switch', - text: 'settings' - }, - player_subtitles_button: { - component: 'switch', - text: 'subtitles' - }, - player_miniplayer_button: { - component: 'switch', - text: 'nativeMiniPlayer' - }, - player_view_button: { - component: 'switch', - text: 'viewMode' - }, - player_screen_button: { - component: 'switch', - text: 'screen' - }, - player_remote_button: { - component: 'switch', - text: 'remote' - } - } - } - }, ads: { text: 'ads', component: 'select', From 0507eef91d211c1cab3d155dd26de9729f0ab92d Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Mon, 24 Oct 2022 00:06:22 +0800 Subject: [PATCH 0678/1224] Update playlistUpNextAutoplay() Port commit a28e712 by @MyBestFriend to v4 --- content-scripts/website-context/youtube-features/playlist.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/content-scripts/website-context/youtube-features/playlist.js b/content-scripts/website-context/youtube-features/playlist.js index ec95c4a84..aa1c8e43d 100644 --- a/content-scripts/website-context/youtube-features/playlist.js +++ b/content-scripts/website-context/youtube-features/playlist.js @@ -11,8 +11,7 @@ ImprovedTube.playlistUpNextAutoplay = function (event) { ImprovedTube.getParam(location.href, 'list') && ImprovedTube.storage.playlist_up_next_autoplay === false ) { - event.preventDefault(); - event.stopPropagation(); + this.elements.ytd_watch.playlistData.currentIndex = this.elements.ytd_watch.playlistData.totalVideos } }; From 67e8e0ba697f43729545b99d8a3ba8875640a4e2 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Mon, 24 Oct 2022 00:23:45 +0800 Subject: [PATCH 0679/1224] Update alwaysShowProgressBar() Port commit ead30b1 from @BitbenderM to v4 and more --- .../youtube-features/appearance/details/details.css | 11 +++++++---- .../website-context/youtube-features/appearance.js | 8 +++++++- options-page/skeleton-parts/appearance.js | 8 ++++++++ 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/content-scripts/extension-context/youtube-features/appearance/details/details.css index 07a8f435c..d3da1f0dc 100644 --- a/content-scripts/extension-context/youtube-features/appearance/details/details.css +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.css @@ -175,16 +175,19 @@ html[it-hide-more-button=true] #menu yt-button-shape#button-shape { # DESCRIPTION --------------------------------------------------------------*/ -html[it-description='hidden'] #meta>#meta-contents ytd-expander { +html[it-description=hidden] #description, +html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, +html[it-description=hidden] div#action-panel-details, +ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents { display: none !important; } -html[it-description='expanded'] #meta>#meta-contents ytd-expander tp-yt-paper-button { +html[it-description=classic] ytd-watch-metadata { display: none !important; } -html[it-description='expanded'] #meta>#meta-contents ytd-expander>#content { - max-height: none !important; +html[it-description=classic] ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents { + display: block !important; } diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index 0435b59cd..8b7dd79a7 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -153,7 +153,13 @@ ImprovedTube.alwaysShowProgressBar = function () { ImprovedTube.formatSecond = function (rTime) { var time = new Date(null); - time.setSeconds(rTime); + if (this.storage.duration_with_speed === true) { + var playbackRate = this.elements.video.playbackRate; + time.setSeconds(rTime / playbackRate); + } else { + time.setSeconds(rTime); + } + if (rTime / 3600 < 1) { return time.toISOString().substr(14, 5); } else { diff --git a/options-page/skeleton-parts/appearance.js b/options-page/skeleton-parts/appearance.js index 63f60cd9d..01ddc6df5 100644 --- a/options-page/skeleton-parts/appearance.js +++ b/options-page/skeleton-parts/appearance.js @@ -277,6 +277,11 @@ extension.skeleton.main.layers.section.appearance.on.click.player = { text: 'showRemainingDuration', value: false }, + duration_with_speed: { + component: 'switch', + text: 'durationWithSpeed', + value: false + }, always_show_progress_bar: { component: 'switch', text: 'alwaysShowProgressBar' @@ -525,6 +530,9 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { }, { text: 'expanded', value: 'expanded' + }, { + text: 'classic', + value: 'classic' }, { text: 'hidden', value: 'hidden' From b910aa7199f7b341330353aacb60156bc63d6b9e Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Mon, 24 Oct 2022 01:13:24 +0800 Subject: [PATCH 0680/1224] Remove description "classic" option it cause the whole info bar (title of video) to be missing --- .../youtube-features/appearance/details/details.css | 7 ++++--- options-page/skeleton-parts/appearance.js | 3 --- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/content-scripts/extension-context/youtube-features/appearance/details/details.css index d3da1f0dc..6d835b15c 100644 --- a/content-scripts/extension-context/youtube-features/appearance/details/details.css +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.css @@ -175,18 +175,19 @@ html[it-hide-more-button=true] #menu yt-button-shape#button-shape { # DESCRIPTION --------------------------------------------------------------*/ -html[it-description=hidden] #description, html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, html[it-description=hidden] div#action-panel-details, ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents { display: none !important; } -html[it-description=classic] ytd-watch-metadata { +html[it-description=normal] ytd-watch-metadata, +html[it-description=expanded] ytd-watch-metadata { display: none !important; } -html[it-description=classic] ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents { +html[it-description=normal] ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents, +html[it-description=expanded] ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents { display: block !important; } diff --git a/options-page/skeleton-parts/appearance.js b/options-page/skeleton-parts/appearance.js index 01ddc6df5..61b6a38f8 100644 --- a/options-page/skeleton-parts/appearance.js +++ b/options-page/skeleton-parts/appearance.js @@ -530,9 +530,6 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { }, { text: 'expanded', value: 'expanded' - }, { - text: 'classic', - value: 'classic' }, { text: 'hidden', value: 'hidden' From a5f960b9d92a5313adb6db9edee76d8cb9b54d8e Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Mon, 24 Oct 2022 02:25:27 +0800 Subject: [PATCH 0681/1224] Add day of week (#1379) --- _locales/am/messages.json | 3 + _locales/ar/messages.json | 3 + _locales/bg/messages.json | 3 + _locales/bn/messages.json | 3 + _locales/ca/messages.json | 3 + _locales/cs/messages.json | 3 + _locales/da/messages.json | 3 + _locales/de/messages.json | 3 + _locales/el/messages.json | 3 + _locales/en/messages.json | 3 + _locales/en_GB/messages.json | 3 + _locales/en_US/messages.json | 3 + _locales/es/messages.json | 3 + _locales/es_419/messages.json | 3 + _locales/et/messages.json | 3 + _locales/fa/messages.json | 3 + _locales/fi/messages.json | 3 + _locales/fil/messages.json | 3 + _locales/fr/messages.json | 3 + _locales/gu/messages.json | 3 + _locales/he/messages.json | 3 + _locales/hi/messages.json | 3 + _locales/hr/messages.json | 3 + _locales/hu/messages.json | 3 + _locales/id/messages.json | 3 + _locales/it/messages.json | 3 + _locales/ja/messages.json | 3 + _locales/kn/messages.json | 3 + _locales/ko/messages.json | 3 + _locales/lt/messages.json | 3 + _locales/lv/messages.json | 3 + _locales/ml/messages.json | 3 + _locales/mr/messages.json | 3 + _locales/ms/messages.json | 3 + _locales/nb_NO/messages.json | 3 + _locales/nl/messages.json | 3 + _locales/no/messages.json | 3 + _locales/pl/messages.json | 3 + _locales/pt_BR/messages.json | 3 + _locales/pt_PT/messages.json | 3 + _locales/ro/messages.json | 3 + _locales/ru/messages.json | 3 + _locales/si/messages.json | 3 + _locales/sk/messages.json | 3 + _locales/sl/messages.json | 3 + _locales/sr/messages.json | 3 + _locales/sv/messages.json | 3 + _locales/sw/messages.json | 3 + _locales/ta/messages.json | 3 + _locales/te/messages.json | 3 + _locales/th/messages.json | 3 + _locales/tr/messages.json | 3 + _locales/uk/messages.json | 3 + _locales/vi/messages.json | 3 + _locales/zh_CN/messages.json | 3 + _locales/zh_TW/messages.json | 3 + content-scripts/website-context/functions.js | 141 +++++++++--------- .../youtube-features/appearance.js | 29 +++- options-page/skeleton-parts/appearance.js | 4 + 59 files changed, 271 insertions(+), 71 deletions(-) diff --git a/_locales/am/messages.json b/_locales/am/messages.json index 54d52e478..9a518a3e0 100644 --- a/_locales/am/messages.json +++ b/_locales/am/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 19ac55aac..d00c698fe 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -311,6 +311,9 @@ "dislike": { "message": "لم يعجبنى" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "الإفتراضي" }, diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/bg/messages.json +++ b/_locales/bg/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 315f9e53c..28d9c31b2 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "অপছন্দ" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "পরিবর্তন করবেন না" }, diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/ca/messages.json +++ b/_locales/ca/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/cs/messages.json +++ b/_locales/cs/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/da/messages.json b/_locales/da/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/da/messages.json +++ b/_locales/da/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index ebae4bb4a..b47bc3748 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "'Mag ich nicht'" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Nicht ändern" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 8cc006611..b4353b43a 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Δε μου αρέσει" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Να μην αλλάξει" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index cd78bcf1e..0482447e7 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -317,6 +317,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json index 43aa373d0..ea1e2a6fb 100644 --- a/_locales/en_GB/messages.json +++ b/_locales/en_GB/messages.json @@ -305,6 +305,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json index 43aa373d0..ea1e2a6fb 100644 --- a/_locales/en_US/messages.json +++ b/_locales/en_US/messages.json @@ -305,6 +305,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 32edd2944..c7325eab8 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "No cambiar" }, diff --git a/_locales/es_419/messages.json b/_locales/es_419/messages.json index 0999b11ea..c8b84ab4b 100644 --- a/_locales/es_419/messages.json +++ b/_locales/es_419/messages.json @@ -305,6 +305,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "No cambiar" }, diff --git a/_locales/et/messages.json b/_locales/et/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/et/messages.json +++ b/_locales/et/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/fa/messages.json b/_locales/fa/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/fa/messages.json +++ b/_locales/fa/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/fi/messages.json b/_locales/fi/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/fi/messages.json +++ b/_locales/fi/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/fil/messages.json b/_locales/fil/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/fil/messages.json +++ b/_locales/fil/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 932bc05d7..31b70498f 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Je n'aime pas" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Ne pas changer" }, diff --git a/_locales/gu/messages.json b/_locales/gu/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/gu/messages.json +++ b/_locales/gu/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/he/messages.json b/_locales/he/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/he/messages.json +++ b/_locales/he/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/hi/messages.json b/_locales/hi/messages.json index 125909234..846e07ec4 100644 --- a/_locales/hi/messages.json +++ b/_locales/hi/messages.json @@ -305,6 +305,9 @@ "dislike": { "message": "नापसन्द" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "मत बदलो" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index b75e897dc..a25e41854 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Ne sviđa mi se" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Nemoj mijenjati" }, diff --git a/_locales/hu/messages.json b/_locales/hu/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/hu/messages.json +++ b/_locales/hu/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index f53f06081..9c9bd9028 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Tidak Suka" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Jangan ubah" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index f2c2a690f..ddcec72b3 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Non mi piace" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Non cambiare" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index b3a1231bf..91fc04f3b 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "低評価" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "変更しない" }, diff --git a/_locales/kn/messages.json b/_locales/kn/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/kn/messages.json +++ b/_locales/kn/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 4412872e7..bef6eab01 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "싫어요" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "바꾸지 않음" }, diff --git a/_locales/lt/messages.json b/_locales/lt/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/lt/messages.json +++ b/_locales/lt/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/lv/messages.json b/_locales/lv/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/lv/messages.json +++ b/_locales/lv/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/ml/messages.json b/_locales/ml/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/ml/messages.json +++ b/_locales/ml/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/mr/messages.json b/_locales/mr/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/mr/messages.json +++ b/_locales/mr/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/ms/messages.json b/_locales/ms/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/ms/messages.json +++ b/_locales/ms/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 12b71f9a8..c40a1f7db 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -305,6 +305,9 @@ "dislike": { "message": "Mislik" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Ikke endre" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 3388e60b4..fca57e3e4 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Niet leuk vinden" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Niet aanpassen" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 474bba3c4..94d36d8e7 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Mislik" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Ikke endre" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index b49383e0b..bb36465d2 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Nie podoba mi się" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Nie zmieniaj" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 5dafeb6ed..c2a4fb1fd 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Não Gostei." }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Não Alterar" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 4d015c65e..c1fb58ea7 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Não gostar" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Não mudes" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index c84d6d340..46b8e983e 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Nu îmi place" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Nu schimba" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index b9e0ace5b..57501df21 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -311,6 +311,9 @@ "dislike": { "message": "Дизлайк" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Не менять" }, diff --git a/_locales/si/messages.json b/_locales/si/messages.json index c90e3176b..5813bf997 100644 --- a/_locales/si/messages.json +++ b/_locales/si/messages.json @@ -305,6 +305,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "වෙනස් කරන්න එපා" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index c0ff22025..68649a915 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Nemeniť" }, diff --git a/_locales/sl/messages.json b/_locales/sl/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/sl/messages.json +++ b/_locales/sl/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/sr/messages.json +++ b/_locales/sr/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/sw/messages.json b/_locales/sw/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/sw/messages.json +++ b/_locales/sw/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/ta/messages.json b/_locales/ta/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/ta/messages.json +++ b/_locales/ta/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/te/messages.json b/_locales/te/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/te/messages.json +++ b/_locales/te/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/th/messages.json b/_locales/th/messages.json index 662d99f0a..c05f50adf 100644 --- a/_locales/th/messages.json +++ b/_locales/th/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 36c5198d7..7345fde41 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Beğenmeme" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Değiştirme" }, diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json index a7c4749f2..2c38cb0b2 100644 --- a/_locales/uk/messages.json +++ b/_locales/uk/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Dislike" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Don't change" }, diff --git a/_locales/vi/messages.json b/_locales/vi/messages.json index 57ae22de0..9a879dbe8 100644 --- a/_locales/vi/messages.json +++ b/_locales/vi/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "Không thích" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "Đừng thay đổi" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index dabd1ce5a..9d3bc0c46 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "踩一下" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "不做改变" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 6caa12c13..79678b447 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -308,6 +308,9 @@ "dislike": { "message": "不喜歡" }, + "displayDayOfTheWeak": { + "message": "Display day of the weak" + }, "doNotChange": { "message": "不要改變" }, diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index e584ccb25..e9afad45b 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -90,63 +90,67 @@ ImprovedTube.ytElementsHandler = function (node) { this.elements.livechat.button = node.querySelector('ytd-toggle-button-renderer'); this.livechat(); - } else if (name === 'YTD-MASTHEAD' && !this.elements.masthead) { - this.elements.masthead = { - start: node.querySelector('#start'), - end: node.querySelector('#end'), - logo: node.querySelector('a#logo') - }; - - this.improvedtubeYoutubeIcon(); - } else if (name === 'YTD-PLAYER' && !this.elements.ytd_player) { - ImprovedTube.elements.ytd_player = node; + } else if (name === 'YTD-MASTHEAD') { + if(!this.elements.masthead) { + this.elements.masthead = { + start: node.querySelector('#start'), + end: node.querySelector('#end'), + logo: node.querySelector('a#logo') + }; + + this.improvedtubeYoutubeIcon(); + } + } else if (name === 'YTD-PLAYER') { + if(!this.elements.ytd_player) { + ImprovedTube.elements.ytd_player = node; + } } else if (id === 'movie_player' && !this.elements.player) { - if (!this.elements.ytd_player) {} - - ImprovedTube.elements.player = node; - ImprovedTube.elements.video = node.querySelector('video'); - ImprovedTube.elements.player_left_controls = node.querySelector('.ytp-left-controls'); - ImprovedTube.elements.player_thumbnail = node.querySelector('.ytp-cued-thumbnail-overlay-image'); - ImprovedTube.elements.player_subtitles_button = node.querySelector('.ytp-subtitles-button'); - - ImprovedTube.playerSize(); - - new MutationObserver(function (mutationList) { - for (var i = 0, l = mutationList.length; i < l; i++) { - var mutation = mutationList[i]; - - if (mutation.type === 'childList') { - for (var j = 0, k = mutation.addedNodes.length; j < k; j++) { - var node = mutation.addedNodes[j]; - - if (node.nodeName === 'DIV' && node.className.indexOf('ytp-ad-player-overlay') !== -1) { - ImprovedTube.playerAds(node); + if (!this.elements.player) { + ImprovedTube.elements.player = node; + ImprovedTube.elements.video = node.querySelector('video'); + ImprovedTube.elements.player_left_controls = node.querySelector('.ytp-left-controls'); + ImprovedTube.elements.player_thumbnail = node.querySelector('.ytp-cued-thumbnail-overlay-image'); + ImprovedTube.elements.player_subtitles_button = node.querySelector('.ytp-subtitles-button'); + + ImprovedTube.playerSize(); + + new MutationObserver(function (mutationList) { + for (var i = 0, l = mutationList.length; i < l; i++) { + var mutation = mutationList[i]; + + if (mutation.type === 'childList') { + for (var j = 0, k = mutation.addedNodes.length; j < k; j++) { + var node = mutation.addedNodes[j]; + + if (node.nodeName === 'DIV' && node.className.indexOf('ytp-ad-player-overlay') !== -1) { + ImprovedTube.playerAds(node); + } } } } - } - }).observe(node, { - attributes: false, - childList: true, - subtree: true - }); - - new MutationObserver(function (mutationList) { - for (var i = 0, l = mutationList.length; i < l; i++) { - var mutation = mutationList[i]; - - if (mutation.type === 'attributes') { - if (mutation.attributeName === 'style') { - ImprovedTube.playerHdThumbnail(); + }).observe(node, { + attributes: false, + childList: true, + subtree: true + }); + + new MutationObserver(function (mutationList) { + for (var i = 0, l = mutationList.length; i < l; i++) { + var mutation = mutationList[i]; + + if (mutation.type === 'attributes') { + if (mutation.attributeName === 'style') { + ImprovedTube.playerHdThumbnail(); + } } } - } - }).observe(ImprovedTube.elements.player_thumbnail, { - attributes: true, - attributeFilter: ['style'], - childList: false, - subtree: false - }); + }).observe(ImprovedTube.elements.player_thumbnail, { + attributes: true, + attributeFilter: ['style'], + childList: false, + subtree: false + }); + } } else if (name === 'YTD-WATCH-FLEXY') { this.elements.ytd_watch = node; @@ -226,28 +230,27 @@ ImprovedTube.videoPageUpdate = function () { if (document.documentElement.dataset.pageType === 'video') { var video_id = this.getParam(new URL(location.href).search.substr(1), 'v'); - if (this.storage.track_watched_videos === true) { - if (video_id) { - ImprovedTube.messages.send({ - action: 'watched', - type: 'add', - id: video_id, - title: document.title - }); - } + if (this.storage.track_watched_videos === true && video_id) { + ImprovedTube.messages.send({ + action: 'watched', + type: 'add', + id: video_id, + title: document.title + }); } this.initialVideoUpdateDone = true; - this.howLongAgoTheVideoWasUploaded(); - this.channelVideosCount(); - this.upNextAutoplay(); - this.playerAutofullscreen(); - this.playerScreenshotButton(); - this.playerRepeatButton(); - this.playerRotateButton(); - this.playerPopupButton(); - this.playerControls(); + ImprovedTube.howLongAgoTheVideoWasUploaded(); + ImprovedTube.dayOfWeek(); + ImprovedTube.channelVideosCount(); + ImprovedTube.upNextAutoplay(); + ImprovedTube.playerAutofullscreen(); + ImprovedTube.playerScreenshotButton(); + ImprovedTube.playerRepeatButton(); + ImprovedTube.playerRotateButton(); + ImprovedTube.playerPopupButton(); + ImprovedTube.playerControls(); } }; diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index 8b7dd79a7..429ffd1b5 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -159,7 +159,7 @@ ImprovedTube.formatSecond = function (rTime) { } else { time.setSeconds(rTime); } - + if (rTime / 3600 < 1) { return time.toISOString().substr(14, 5); } else { @@ -344,4 +344,29 @@ ImprovedTube.hideDetailButton = function (el) { } } }, 30); -}; \ No newline at end of file +}; + +/*-------------------------------------------------------------- +4.2.3.5 DAY OF WEEK +--------------------------------------------------------------*/ + +ImprovedTube.dayOfWeek = function () { + var element = document.querySelector('.ytd-day-of-week'); + if (this.storage.day_of_week === true) { + var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'] + setTimeout (function () { + var videoDate = document.querySelector('ytd-video-primary-info-renderer #info #info-strings yt-formatted-string') + var tempDate = new Date(videoDate.textContent); + if (!element) { + var label = document.createElement('span'); + label.textContent = days[tempDate.getDay()] + ", "; + label.className = 'ytd-day-of-week'; + videoDate.prepend(label); + } else { + element.textContent = days[tempDate.getDay()] + ", "; + } + }, 30); + } else if (element) { + element.remove(); + } +} \ No newline at end of file diff --git a/options-page/skeleton-parts/appearance.js b/options-page/skeleton-parts/appearance.js index 61b6a38f8..64a226081 100644 --- a/options-page/skeleton-parts/appearance.js +++ b/options-page/skeleton-parts/appearance.js @@ -547,6 +547,10 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { red_dislike_button: { component: 'switch', text: 'redDislikeButton' + }, + day_of_week: { + component: 'switch', + text: 'displayDayOfTheWeak' } } } From 9503254c6322de19a778dd77c1b4c54a222dd67f Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Mon, 24 Oct 2022 12:05:33 +0800 Subject: [PATCH 0682/1224] Revert "Update playerPlaybackSpeed()" This reverts commit 539e413c46c93b2be841c3d6f30f92c169ee6751. --- _locales/am/messages.json | 15 +++---- _locales/ar/messages.json | 15 +++---- _locales/bg/messages.json | 15 +++---- _locales/bn/messages.json | 15 +++---- _locales/ca/messages.json | 15 +++---- _locales/cs/messages.json | 15 +++---- _locales/da/messages.json | 15 +++---- _locales/de/messages.json | 15 +++---- _locales/el/messages.json | 15 +++---- _locales/en/messages.json | 15 +++---- _locales/en_GB/messages.json | 15 +++---- _locales/en_US/messages.json | 15 +++---- _locales/es/messages.json | 15 +++---- _locales/es_419/messages.json | 15 +++---- _locales/et/messages.json | 15 +++---- _locales/fa/messages.json | 15 +++---- _locales/fi/messages.json | 15 +++---- _locales/fil/messages.json | 15 +++---- _locales/fr/messages.json | 15 +++---- _locales/gu/messages.json | 15 +++---- _locales/he/messages.json | 15 +++---- _locales/hi/messages.json | 15 +++---- _locales/hr/messages.json | 15 +++---- _locales/hu/messages.json | 15 +++---- _locales/id/messages.json | 15 +++---- _locales/it/messages.json | 15 +++---- _locales/ja/messages.json | 15 +++---- _locales/kn/messages.json | 15 +++---- _locales/ko/messages.json | 15 +++---- _locales/lt/messages.json | 15 +++---- _locales/lv/messages.json | 15 +++---- _locales/ml/messages.json | 15 +++---- _locales/mr/messages.json | 15 +++---- _locales/ms/messages.json | 15 +++---- _locales/nb_NO/messages.json | 15 +++---- _locales/nl/messages.json | 15 +++---- _locales/no/messages.json | 15 +++---- _locales/pl/messages.json | 15 +++---- _locales/pt_BR/messages.json | 15 +++---- _locales/pt_PT/messages.json | 15 +++---- _locales/ro/messages.json | 15 +++---- _locales/ru/messages.json | 15 +++---- _locales/si/messages.json | 15 +++---- _locales/sk/messages.json | 15 +++---- _locales/sl/messages.json | 15 +++---- _locales/sr/messages.json | 15 +++---- _locales/sv/messages.json | 15 +++---- _locales/sw/messages.json | 15 +++---- _locales/ta/messages.json | 15 +++---- _locales/te/messages.json | 15 +++---- _locales/th/messages.json | 15 +++---- _locales/tr/messages.json | 15 +++---- _locales/uk/messages.json | 15 +++---- _locales/vi/messages.json | 15 +++---- _locales/zh_CN/messages.json | 15 +++---- _locales/zh_TW/messages.json | 15 +++---- .../youtube-features/player.js | 2 +- options-page/skeleton-parts/player.js | 43 ++++++------------- 58 files changed, 350 insertions(+), 535 deletions(-) diff --git a/_locales/am/messages.json b/_locales/am/messages.json index 9a518a3e0..9d0051c39 100644 --- a/_locales/am/messages.json +++ b/_locales/am/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Force video to play from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index d00c698fe..0bf60735a 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -272,9 +272,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -338,9 +335,6 @@ "empty": { "message": "فارغة" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "ممكّن" }, @@ -392,6 +386,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "تثبيت سرعة التشغيل" + }, "forcedTheaterMode": { "message": "فرض وضع المسرح" }, @@ -752,6 +749,9 @@ "playPause": { "message": "تشغيل / ايقاف" }, + "playbackSpeed": { + "message": "سرعة التشغيل" + }, "player": { "message": "المشغل" }, @@ -881,9 +881,6 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "الإعدادات" }, diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/bg/messages.json +++ b/_locales/bg/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 28d9c31b2..8765f804a 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "ডিফল্ট বিষয়বস্তুর দেশ" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "খালি" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "সক্ষম" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "জোর করে শুরু থেকে ভিডিও চালান" }, + "forcedPlaybackSpeed": { + "message": "জোর করে প্লেব্যাক গতি" + }, "forcedTheaterMode": { "message": "জোর করে থিয়েটার মোড" }, @@ -746,6 +743,9 @@ "playPause": { "message": "খেলার / বিরতি" }, + "playbackSpeed": { + "message": "প্লেব্যাক গতি" + }, "player": { "message": "প্লেয়ার" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "পূর্ববর্তী অধ্যায় সন্ধান করুন" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "সেটিংস" }, diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/ca/messages.json +++ b/_locales/ca/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/cs/messages.json +++ b/_locales/cs/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/da/messages.json b/_locales/da/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/da/messages.json +++ b/_locales/da/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index b47bc3748..85c60b3fd 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Standard-Land für Inhalte" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Gesehene Videos entfernen" }, @@ -335,9 +332,6 @@ "empty": { "message": "leer" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "aktiviert" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Spiele Video erzwungen von Beginn ab" }, + "forcedPlaybackSpeed": { + "message": "erzwungene Abspielgeschwindigkeit" + }, "forcedTheaterMode": { "message": "Kinomodus erzwingen" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Abspielgeschwindigkeit" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Vorheriges Kapitel" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Einstellungen" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index b4353b43a..2124ab4cf 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Κενό" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Ενεργοποιημένο" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Υποχρεωτική ταχύτητα αναπαραγωγής" + }, "forcedTheaterMode": { "message": "Υποχρεωτική λειτουργία κινηματογράφου" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Ταχύτητα αναπαραγωγής" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Ρυθμίσεις" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 0482447e7..82aa5066b 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "defaultPlaybackSpeedEnable": { "message": "Enable Default playback speed" }, @@ -344,9 +341,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -398,6 +392,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Force video to play from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -755,6 +752,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -884,9 +884,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json index ea1e2a6fb..84398eed1 100644 --- a/_locales/en_GB/messages.json +++ b/_locales/en_GB/messages.json @@ -266,9 +266,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -332,9 +329,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -386,6 +380,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Force video to play from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -722,6 +719,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -851,9 +851,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json index ea1e2a6fb..84398eed1 100644 --- a/_locales/en_US/messages.json +++ b/_locales/en_US/messages.json @@ -266,9 +266,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -332,9 +329,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -386,6 +380,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Force video to play from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -722,6 +719,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -851,9 +851,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index c7325eab8..9b5df6008 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Contenido del pais por defecto" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Eliminar videos vistos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Vacío" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Activado" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forzar la reproduccion del video desde el inicio" }, + "forcedPlaybackSpeed": { + "message": "Forzar velocidad de reproducción" + }, "forcedTheaterMode": { "message": "Forzar modo teatro" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Reproducir / pausar" }, + "playbackSpeed": { + "message": "Velocidad de reproducción" + }, "player": { "message": "Reproductor" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Saltar al capitulo anterior" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Ajustes" }, diff --git a/_locales/es_419/messages.json b/_locales/es_419/messages.json index c8b84ab4b..2dc47417f 100644 --- a/_locales/es_419/messages.json +++ b/_locales/es_419/messages.json @@ -266,9 +266,6 @@ "defaultContentCountry": { "message": "Contenido del pais por defecto" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Eliminar videos vistos" }, @@ -332,9 +329,6 @@ "empty": { "message": "Vacío" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Activado" }, @@ -386,6 +380,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forzar la reproduccion del video desde el inicio" }, + "forcedPlaybackSpeed": { + "message": "Forzar velocidad de reproducción" + }, "forcedTheaterMode": { "message": "Forzar modo teatro" }, @@ -722,6 +719,9 @@ "playPause": { "message": "Reproducir / pausar" }, + "playbackSpeed": { + "message": "Velocidad de reproducción" + }, "player": { "message": "Reproductor" }, @@ -851,9 +851,6 @@ "seekPreviousChapter": { "message": "Saltar al capitulo anterior" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Ajustes" }, diff --git a/_locales/et/messages.json b/_locales/et/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/et/messages.json +++ b/_locales/et/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/fa/messages.json b/_locales/fa/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/fa/messages.json +++ b/_locales/fa/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/fi/messages.json b/_locales/fi/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/fi/messages.json +++ b/_locales/fi/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/fil/messages.json b/_locales/fil/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/fil/messages.json +++ b/_locales/fil/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 31b70498f..3a02090f4 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Vide" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Activé" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Vitesse de lecture forcée" + }, "forcedTheaterMode": { "message": "Forcer le mode théâtre" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Lire / Pause" }, + "playbackSpeed": { + "message": "Vitesse de lecture" + }, "player": { "message": "Lecteur" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Réglages" }, diff --git a/_locales/gu/messages.json b/_locales/gu/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/gu/messages.json +++ b/_locales/gu/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/he/messages.json b/_locales/he/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/he/messages.json +++ b/_locales/he/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/hi/messages.json b/_locales/hi/messages.json index 846e07ec4..df73efefc 100644 --- a/_locales/hi/messages.json +++ b/_locales/hi/messages.json @@ -266,9 +266,6 @@ "defaultContentCountry": { "message": "डिफॉल्ट विषय देश" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -332,9 +329,6 @@ "empty": { "message": "खाली" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "सक्रिय" }, @@ -386,6 +380,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "जबरदस्ती वीडियो शुरू से प्ले करें" }, + "forcedPlaybackSpeed": { + "message": "जबरन पार्श्व गति" + }, "forcedTheaterMode": { "message": "जबरन थिएटर मोड" }, @@ -740,6 +737,9 @@ "playPause": { "message": "प्ले / ठहराव" }, + "playbackSpeed": { + "message": "प्लेबैक स्पीड" + }, "player": { "message": "प्लेयर" }, @@ -869,9 +869,6 @@ "seekPreviousChapter": { "message": "पिछले अध्याय पर चलें" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "समायोजन" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index a25e41854..e17d84849 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Prazno" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Omogućeno" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Prisiljena brzina reprodukcije" + }, "forcedTheaterMode": { "message": "Prisiljen kazališni način" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Reprodukcija / pauza" }, + "playbackSpeed": { + "message": "Brzina reprodukcije" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Postavke" }, diff --git a/_locales/hu/messages.json b/_locales/hu/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/hu/messages.json +++ b/_locales/hu/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 9c9bd9028..8e8913473 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Kosong" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Aktifkan" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Paksa kecepatan pemutaran" + }, "forcedTheaterMode": { "message": "Paksa mode teater" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Mulai / Jeda" }, + "playbackSpeed": { + "message": "Kecepatan pemutar" + }, "player": { "message": "Pemutar" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Pengaturan" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index ddcec72b3..fd74c44d7 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Paese del contenuto predefinito" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Elimina video guardati" }, @@ -335,9 +332,6 @@ "empty": { "message": "Vuota" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Abilitato" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Riproduzione forzata di video dall'inizio" }, + "forcedPlaybackSpeed": { + "message": "Velocità di riproduzione forzata" + }, "forcedTheaterMode": { "message": "Modalità cinema forzata" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Avvio/Pausa" }, + "playbackSpeed": { + "message": "Velocità di riproduzione" + }, "player": { "message": "Lettore" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Cerca precedente capitolo" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Impostazioni" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 91fc04f3b..7e5eef67f 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "デフォルトのコンテンツの地域" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "視聴した動画を削除する" }, @@ -335,9 +332,6 @@ "empty": { "message": "なし" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "有効" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "強制的に動画を最初から再生する" }, + "forcedPlaybackSpeed": { + "message": "再生速度を指定する" + }, "forcedTheaterMode": { "message": "シアターモードにする" }, @@ -746,6 +743,9 @@ "playPause": { "message": "再生/一時停止" }, + "playbackSpeed": { + "message": "再生速度" + }, "player": { "message": "プレーヤー" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "前のチャプターへ戻る" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "設定" }, diff --git a/_locales/kn/messages.json b/_locales/kn/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/kn/messages.json +++ b/_locales/kn/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index bef6eab01..050b1a8d3 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "비어있음" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "활성화" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "되감기 속도 강제설정" + }, "forcedTheaterMode": { "message": "강제 영화관 모드" }, @@ -746,6 +743,9 @@ "playPause": { "message": "재생 / 일시정지" }, + "playbackSpeed": { + "message": "되감기 속도" + }, "player": { "message": "플레이어" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "이전 챕터 보기" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "설정" }, diff --git a/_locales/lt/messages.json b/_locales/lt/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/lt/messages.json +++ b/_locales/lt/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/lv/messages.json b/_locales/lv/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/lv/messages.json +++ b/_locales/lv/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/ml/messages.json b/_locales/ml/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/ml/messages.json +++ b/_locales/ml/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/mr/messages.json b/_locales/mr/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/mr/messages.json +++ b/_locales/mr/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/ms/messages.json b/_locales/ms/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/ms/messages.json +++ b/_locales/ms/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index c40a1f7db..fb66c3a7b 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -266,9 +266,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -332,9 +329,6 @@ "empty": { "message": "Tom" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Aktivert" }, @@ -386,6 +380,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Tvungen avspillingshastighet" + }, "forcedTheaterMode": { "message": "Tvunget teater-modus" }, @@ -740,6 +737,9 @@ "playPause": { "message": "Spill / Pause" }, + "playbackSpeed": { + "message": "Avspillingshastighet" + }, "player": { "message": "Avspiller" }, @@ -869,9 +869,6 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Innstillinger" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index fca57e3e4..f8da0e0db 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Standaardland voor inhoud" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Verwijder bekeken video's" }, @@ -335,9 +332,6 @@ "empty": { "message": "Leeg" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Ingeschakeld" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forceer video's af te spelen vanaf het begin" }, + "forcedPlaybackSpeed": { + "message": "Forceer afspeelsnelheid" + }, "forcedTheaterMode": { "message": "Forceer Theatermodus" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Video afspelen/pauzeren" }, + "playbackSpeed": { + "message": "Afspeelsnelheid" + }, "player": { "message": "Speler" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Ga naar vorig hoofdstuk" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Instellingen" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 94d36d8e7..b9649ad0c 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Tom" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Aktivert" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Tvungen avspillingshastighet" + }, "forcedTheaterMode": { "message": "Tvunget teater-modus" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Spill / Pause" }, + "playbackSpeed": { + "message": "Avspillingshastighet" + }, "player": { "message": "Spiller" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Innstillinger" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index bb36465d2..9210b2dab 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Domyślny kraj zawartości" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Usuń obejrzane wideo" }, @@ -335,9 +332,6 @@ "empty": { "message": "Pusty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Włączony" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Wymuś odtwarzanie wideo od początku" }, + "forcedPlaybackSpeed": { + "message": "Wymuś prędkość odtwarzania" + }, "forcedTheaterMode": { "message": "Wymuś tryb kinowy" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Odtwarzanie / Pauza" }, + "playbackSpeed": { + "message": "Prędkość odtwarzania" + }, "player": { "message": "Odtwarzacz" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Przewiń do poprzedniego rozdziału" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Ustawienia" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index c2a4fb1fd..ace050969 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Conteúdo padrão do país " }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Excluir vídeos assistidos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Vazio" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Ativado" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Reprodução do vídeo desde o início forçado" }, + "forcedPlaybackSpeed": { + "message": " Velocidade do reprodução forçado" + }, "forcedTheaterMode": { "message": "Modo teatro forçado" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Reproduzir / Pausar" }, + "playbackSpeed": { + "message": "Velocidade de reprodução" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Buscar capítulo anterior" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Configurações" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index c1fb58ea7..bf84d4371 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Vazio" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Ativado" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forçar velocidade de leitura" + }, "forcedTheaterMode": { "message": "Forçar modo de cinema" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Reproduzir / Pausar" }, + "playbackSpeed": { + "message": "Velocidade de leitura" + }, "player": { "message": "Leitor" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Definições" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 46b8e983e..e8b9805e2 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Gol" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Activat" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Viteză de playback forțată" + }, "forcedTheaterMode": { "message": "Modul teatru forțat" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Redă / Pauză" }, + "playbackSpeed": { + "message": "Viteza playbackului" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Setări" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 57501df21..20a73ab54 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -272,9 +272,6 @@ "defaultContentCountry": { "message": "Страна по умолчанию" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Удалять просмотренные видео" }, @@ -338,9 +335,6 @@ "empty": { "message": "Пустой" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Включен" }, @@ -392,6 +386,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Всегда играть видео с начала" }, + "forcedPlaybackSpeed": { + "message": "Принудительная скорость воспроизведения" + }, "forcedTheaterMode": { "message": "Принудительно переходить в режим кино" }, @@ -752,6 +749,9 @@ "playPause": { "message": "Играть / Пауза" }, + "playbackSpeed": { + "message": "Скорость воспроизведения" + }, "player": { "message": "Плеер" }, @@ -881,9 +881,6 @@ "seekPreviousChapter": { "message": "Предыдущая глава" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Настройки" }, diff --git a/_locales/si/messages.json b/_locales/si/messages.json index 5813bf997..e3461437f 100644 --- a/_locales/si/messages.json +++ b/_locales/si/messages.json @@ -266,9 +266,6 @@ "defaultContentCountry": { "message": "සාමාන්‍ය content country එක" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "බලපු වීඩියෝ delete කරන්න" }, @@ -332,9 +329,6 @@ "empty": { "message": "හිස්" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -386,6 +380,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "වීඩියෝව මුල සිට බලහත්කාරයෙන් play කරන්න" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -740,6 +737,9 @@ "playPause": { "message": "Play කරන්න / Pause කරන්න" }, + "playbackSpeed": { + "message": "Playback speed එක" + }, "player": { "message": "Player එක" }, @@ -869,9 +869,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 68649a915..62bc046a2 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Prázdny" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Zapnuté" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Vynútená rýchlosť prehrávania" + }, "forcedTheaterMode": { "message": "Vynútený divadelný režim" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Prehrať / Pozastavť" }, + "playbackSpeed": { + "message": "Rýchlosť prehrávania" + }, "player": { "message": "Prehrávač" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "seekPreviousChapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Nastavenia" }, diff --git a/_locales/sl/messages.json b/_locales/sl/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/sl/messages.json +++ b/_locales/sl/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/sr/messages.json +++ b/_locales/sr/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/sw/messages.json b/_locales/sw/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/sw/messages.json +++ b/_locales/sw/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/ta/messages.json b/_locales/ta/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/ta/messages.json +++ b/_locales/ta/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/te/messages.json b/_locales/te/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/te/messages.json +++ b/_locales/te/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/th/messages.json b/_locales/th/messages.json index c05f50adf..30bdd29f3 100644 --- a/_locales/th/messages.json +++ b/_locales/th/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 7345fde41..a6af7a639 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Varsayılan içerik ülkesi" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "İzlenen videoları sil" }, @@ -335,9 +332,6 @@ "empty": { "message": "Boş" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Etkin" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "En başından itibaren zorunlu oynatma videosu" }, + "forcedPlaybackSpeed": { + "message": "Oynatma hızını uygulamaya zorla" + }, "forcedTheaterMode": { "message": "Sinema modunu zorla" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Oynat / Duraklat" }, + "playbackSpeed": { + "message": "Oynatma hızı" + }, "player": { "message": "Oynatıcı" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Önceki Bölümü Ara" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Ayarlar" }, diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json index 2c38cb0b2..3e27bd36a 100644 --- a/_locales/uk/messages.json +++ b/_locales/uk/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "Empty" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Enabled" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "Forced playback speed" + }, "forcedTheaterMode": { "message": "Forced theatre mode" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Play / Pause" }, + "playbackSpeed": { + "message": "Playback speed" + }, "player": { "message": "Player" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Seek Previous Chapter" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Settings" }, diff --git a/_locales/vi/messages.json b/_locales/vi/messages.json index 9a879dbe8..dc3e25c4b 100644 --- a/_locales/vi/messages.json +++ b/_locales/vi/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "Quốc gia nội dung mặc định" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Xóa video đã xem" }, @@ -335,9 +332,6 @@ "empty": { "message": "Trống" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "Đã bật" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Bắt buộc phát video từ đầu" }, + "forcedPlaybackSpeed": { + "message": "Tốc độ phát lại bắt buộc" + }, "forcedTheaterMode": { "message": "Bắt buộc chế độ rạp hát" }, @@ -746,6 +743,9 @@ "playPause": { "message": "Phát / Tạm dừng" }, + "playbackSpeed": { + "message": "Tốc độ phát lại" + }, "player": { "message": "Trình phát" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "Tìm kiếm chương trước" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "Cài đặt" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 9d3bc0c46..4c8a50a96 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "默认内容国家" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -335,9 +332,6 @@ "empty": { "message": "暂无" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "启用" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" }, + "forcedPlaybackSpeed": { + "message": "强制设置播放速度" + }, "forcedTheaterMode": { "message": "强制设置剧场模式" }, @@ -746,6 +743,9 @@ "playPause": { "message": "播放/暂停" }, + "playbackSpeed": { + "message": "播放速度" + }, "player": { "message": "播放器" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "寻找上一章" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "ImprovedTube 设置" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 79678b447..3e97138ab 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -269,9 +269,6 @@ "defaultContentCountry": { "message": "預設國家" }, - "defaultPlaybackSpeed": { - "message": "Default Playback Speed" - }, "deleteWatchedVideos": { "message": "刪除已觀看的影片" }, @@ -335,9 +332,6 @@ "empty": { "message": "空白" }, - "enableDefaultPlaybackSpeed": { - "message": "Enable Default playback speed" - }, "enabled": { "message": "啟用" }, @@ -389,6 +383,9 @@ "forcedPlayVideoFromTheBeginning": { "message": "強制從頭播放" }, + "forcedPlaybackSpeed": { + "message": "強制播放速度" + }, "forcedTheaterMode": { "message": "強制劇院模式" }, @@ -746,6 +743,9 @@ "playPause": { "message": "播放/暫停" }, + "playbackSpeed": { + "message": "播放速度" + }, "player": { "message": "播放器" }, @@ -875,9 +875,6 @@ "seekPreviousChapter": { "message": "跳至前一章節" }, - "setDefaultPlaybackSpeed": { - "message": "Set Default Playback Speed" - }, "settings": { "message": "設定" }, diff --git a/content-scripts/website-context/youtube-features/player.js b/content-scripts/website-context/youtube-features/player.js index eaa8114ba..65c24c3f2 100644 --- a/content-scripts/website-context/youtube-features/player.js +++ b/content-scripts/website-context/youtube-features/player.js @@ -68,7 +68,7 @@ ImprovedTube.playerPlaybackSpeed = function (change) { option = 1; } - if (this.storage.player_default_playback_speed_enable === true) { + if (this.storage.player_forced_playback_speed === true) { if (location.href.indexOf('music') === -1 && player.getVideoData().isLive === false) { player.setPlaybackRate(Number(option)); video.playbackRate = Number(option); diff --git a/options-page/skeleton-parts/player.js b/options-page/skeleton-parts/player.js index fc3fb8759..c3f1ef684 100644 --- a/options-page/skeleton-parts/player.js +++ b/options-page/skeleton-parts/player.js @@ -104,36 +104,19 @@ extension.skeleton.main.layers.section.player.on.click = { max: 400, value: 100 }, - default_playback_speed_menu: { - component: 'button', - text: 'defaultPlaybackSpeedMenu', - on: { - click: { - component: 'section', - variant: 'card', - - player_default_playback_speed_enable: { - component: 'switch', - text: 'defaultPlaybackSpeedEnable', - id: 'default-playback-speed-enable', - onrender: function () { - this.dataset.value = satus.storage.player_default_playback_speed_enable; - }, - onchange: function () { - this.dataset.value = satus.storage.player_default_playback_speed_enable; - } - }, - player_playback_speed: { - component: 'slider', - text: 'defaultPlaybackSpeedSet', - textarea: true, - value: 1, - min: .1, - max: 8, - step: .05 - } - } - } + player_forced_playback_speed: { + component: 'switch', + text: 'forcedPlaybackSpeed', + id: 'forced-playback-speed' + }, + player_playback_speed: { + component: 'slider', + text: 'playbackSpeed', + textarea: true, + value: 1, + min: .1, + max: 8, + step: .05 }, forced_play_video_from_the_beginning: { component: 'switch', From 74a25f8d22652f92ae99183c317dea146bf37fd1 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Tue, 25 Oct 2022 09:05:28 +0800 Subject: [PATCH 0683/1224] MutationObserver code optimization --- content-scripts/website-context/functions.js | 44 +++++++++++--------- content-scripts/website-context/init.js | 4 +- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index e9afad45b..483330804 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -4,12 +4,13 @@ ImprovedTube.childHandler = function (node) { var children = node.children; + if (node.nodeName !== 'SCRIPT' && node.nodeName !== 'svg' && node.nodeName !== '#text'&& node.nodeName !== '#comment' && node.nodeName !== 'SPAN' && node.nodeName !== 'DOM-IF' && node.nodeName !== 'DOM-REPEAT') { + this.ytElementsHandler(node); - this.ytElementsHandler(node); - - if (children) { - for (var i = 0, l = children.length; i < l; i++) { - ImprovedTube.childHandler(children[i]); + if (children) { + for (var i = 0, l = children.length; i < l; i++) { + ImprovedTube.childHandler(children[i]); + } } } }; @@ -18,15 +19,16 @@ ImprovedTube.ytElementsHandler = function (node) { var name = node.nodeName, id = node.id; - if (name === 'A' && node.href) { - this.channelDefaultTab(node); + if (name === 'A') { + if (node.href) { + this.channelDefaultTab(node); - if (node.className.indexOf('ytd-thumbnail') !== -1) { - this.blacklist('video', node); - } - - if (node.href.match(/(channel|user|c)\/([^/]+)/)) { - this.blacklist('channel', node); + if (node.className.indexOf('ytd-thumbnail') !== -1) { + this.blacklist('video', node); + } + if (node.href.match(/(channel|user|c)\/([^/]+)/)) { + this.blacklist('channel', node); + } } } else if (name === 'META') { if (node.getAttribute('itemprop') === 'genre') { @@ -59,10 +61,12 @@ ImprovedTube.ytElementsHandler = function (node) { this.playlistReverse(); } } - } else if (name === 'YTD-GUIDE-SECTION-RENDERER' && !this.elements.sidebar_section) { - this.elements.sidebar_section = node; + } else if (name === 'YTD-GUIDE-SECTION-RENDERER') { + if (!this.elements.sidebar_section) { + this.elements.sidebar_section = node; - this.improvedtubeYoutubeIcon(); + this.improvedtubeYoutubeIcon(); + } } else if (name === 'YTD-VIDEO-PRIMARY-INFO-RENDERER') { this.elements.video_title = node.querySelector('.title.ytd-video-primary-info-renderer'); @@ -91,20 +95,20 @@ ImprovedTube.ytElementsHandler = function (node) { this.livechat(); } else if (name === 'YTD-MASTHEAD') { - if(!this.elements.masthead) { + if (!this.elements.masthead) { this.elements.masthead = { start: node.querySelector('#start'), end: node.querySelector('#end'), logo: node.querySelector('a#logo') }; - + this.improvedtubeYoutubeIcon(); } } else if (name === 'YTD-PLAYER') { - if(!this.elements.ytd_player) { + if (!this.elements.ytd_player) { ImprovedTube.elements.ytd_player = node; } - } else if (id === 'movie_player' && !this.elements.player) { + } else if (id === 'movie_player') { if (!this.elements.player) { ImprovedTube.elements.player = node; ImprovedTube.elements.video = node.querySelector('video'); diff --git a/content-scripts/website-context/init.js b/content-scripts/website-context/init.js index 78e648802..75af8f481 100644 --- a/content-scripts/website-context/init.js +++ b/content-scripts/website-context/init.js @@ -19,9 +19,7 @@ ImprovedTube.observer = new MutationObserver(function (mutationList) { } } } -}); - -ImprovedTube.observer.observe(document.documentElement, { +}).observe(document.documentElement, { attributes: false, childList: true, subtree: true From 402d705ad6a1ff5df11b293d43010434f661289a Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Tue, 25 Oct 2022 10:11:17 +0800 Subject: [PATCH 0684/1224] Remove unused code --- content-scripts/website-context/functions.js | 30 -------------------- content-scripts/website-context/init.js | 8 +----- 2 files changed, 1 insertion(+), 37 deletions(-) diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index 483330804..dabd2c780 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -116,8 +116,6 @@ ImprovedTube.ytElementsHandler = function (node) { ImprovedTube.elements.player_thumbnail = node.querySelector('.ytp-cued-thumbnail-overlay-image'); ImprovedTube.elements.player_subtitles_button = node.querySelector('.ytp-subtitles-button'); - ImprovedTube.playerSize(); - new MutationObserver(function (mutationList) { for (var i = 0, l = mutationList.length; i < l; i++) { var mutation = mutationList[i]; @@ -190,25 +188,6 @@ ImprovedTube.ytElementsHandler = function (node) { node.calculateNormalPlayerSize_ = node.calculateCurrentPlayerSize_; } - - new MutationObserver(function (mutationList) { - for (var i = 0, l = mutationList.length; i < l; i++) { - var mutation = mutationList[i]; - - if (mutation.type === 'attributes') { - if (mutation.attributeName === 'theater') { - setTimeout(function () { - ImprovedTube.playerSize(); - }, 100); - } - } - } - }).observe(node, { - attributes: true, - attributeFilter: ['theater'], - childList: false, - subtree: false - }); } }; @@ -261,9 +240,6 @@ ImprovedTube.videoPageUpdate = function () { ImprovedTube.playerOnPlay = function () { HTMLMediaElement.prototype.play = (function (original) { return function () { - this.removeEventListener('loadedmetadata', ImprovedTube.playerOnLoadedMetadata); - this.addEventListener('loadedmetadata', ImprovedTube.playerOnLoadedMetadata); - this.removeEventListener('timeupdate', ImprovedTube.playerOnTimeUpdate); this.addEventListener('timeupdate', ImprovedTube.playerOnTimeUpdate); @@ -315,12 +291,6 @@ ImprovedTube.initPlayer = function () { } }; -ImprovedTube.playerOnLoadedMetadata = function () { - setTimeout(function () { - ImprovedTube.playerSize(); - }, 100); -}; - ImprovedTube.playerOnTimeUpdate = function () { if (ImprovedTube.video_src !== this.src) { ImprovedTube.video_src = this.src; diff --git a/content-scripts/website-context/init.js b/content-scripts/website-context/init.js index 75af8f481..8dcba79a1 100644 --- a/content-scripts/website-context/init.js +++ b/content-scripts/website-context/init.js @@ -41,9 +41,7 @@ new MutationObserver(function (mutationList) { }); ImprovedTube.init = function () { - window.addEventListener('yt-page-data-updated', function () { - ImprovedTube.pageType(); - }); + ImprovedTube.pageType(); var yt_player_updated = function () { document.dispatchEvent(new CustomEvent('improvedtube-player-loaded')); @@ -62,10 +60,6 @@ ImprovedTube.init = function () { this.onmousedown(); this.youtubeLanguage(); - if (ImprovedTube.elements.player && ImprovedTube.elements.player.setPlaybackRate) { - ImprovedTube.videoPageUpdate(); - ImprovedTube.initPlayer(); - } if (window.matchMedia) { document.documentElement.dataset.systemColorScheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; From ba8798a876699b6830c741ba251ce596149d877a Mon Sep 17 00:00:00 2001 From: Federico Slongo <73640124+FedericoSlongo@users.noreply.github.com> Date: Wed, 26 Oct 2022 12:55:28 +0200 Subject: [PATCH 0685/1224] Update messages.json --- _locales/it/messages.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/_locales/it/messages.json b/_locales/it/messages.json index aa37772a1..748ec9165 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -51,7 +51,7 @@ "message": "Permetti 60 fps" }, "always": { - "message": "Always" + "message": "Sempre" }, "alwaysActive": { "message": "Sempre attivo" @@ -96,16 +96,16 @@ "message": "Avvio automatico" }, "avoidAv1": { - "message": "Avoid AV1" + "message": "Evita AV1" }, "avoidAv1Vp8Vp9": { - "message": "Avoid AV1, VP8, VP9" + "message": "Evita AV1, VP8, VP9" }, "avoidAv1Vp9": { - "message": "Avoid AV1, VP9" + "message": "Evita AV1, VP9" }, "avoidCpuRenderingWhenPossible": { - "message": "Avoid CPU rendering when possible" + "message": "Evita rendering della CPU il più possibile" }, "backgroundColor": { "message": "Colore di sfondo" @@ -132,19 +132,19 @@ "message": "Blocca tutte" }, "blockAv1": { - "message": "Block AV1" + "message": "Blocca AV1" }, "blockH264": { - "message": "Block H.264" + "message": "Blocca H.264" }, "blockMusic": { "message": "Blocca musica" }, "blockVp8": { - "message": "Block VP8" + "message": "Blocca VP8" }, "blockVp9": { - "message": "Block VP9" + "message": "Blocca VP9" }, "blue": { "message": "Blu" @@ -1097,4 +1097,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube limita la qualità video a 1080p per il codec h.264" } -} \ No newline at end of file +} From 5a5718677b8337a4369ad194922c9cafb68c0855 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Thu, 27 Oct 2022 16:12:33 +0800 Subject: [PATCH 0686/1224] Fix channelDefaultTab() console error --- content-scripts/website-context/youtube-features/channel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content-scripts/website-context/youtube-features/channel.js b/content-scripts/website-context/youtube-features/channel.js index bd8da09c4..47b40a844 100644 --- a/content-scripts/website-context/youtube-features/channel.js +++ b/content-scripts/website-context/youtube-features/channel.js @@ -9,7 +9,7 @@ ImprovedTube.channelDefaultTab = function (a) { var option = this.storage.channel_default_tab; - if (option && option !== '/' && a.parentNode && a.parentNode.id !== 'contenteditable-root') { + if (option && option !== '/' && a && a.parentNode && a.parentNode.id !== 'contenteditable-root') { if (this.regex.channel_home_page.test(a.href) && !a.href.endsWith(option)) { a.href = a.href.replace(this.regex.channel_home_page_postfix, '') + option; From ebcc816fc127d1bd7132344830eca86a3c99efab Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Thu, 27 Oct 2022 16:14:07 +0800 Subject: [PATCH 0687/1224] Fix view count and date disappear when too many things in detail --- .../youtube-features/appearance/details/details.css | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/content-scripts/extension-context/youtube-features/appearance/details/details.css index 6d835b15c..6ec1d931a 100644 --- a/content-scripts/extension-context/youtube-features/appearance/details/details.css +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.css @@ -4,6 +4,14 @@ # --------------------------------------------------------------*/ +/*-------------------------------------------------------------- +# General +--------------------------------------------------------------*/ +#info #info-text { + max-height: 6rem; + display: block; +} + /*-------------------------------------------------------------- # HIDE DETAILS --------------------------------------------------------------*/ From 887800c953ca18f9973f0807c89eca71ae34a3eb Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Thu, 27 Oct 2022 16:15:24 +0800 Subject: [PATCH 0688/1224] Fix dayOfWeek() not working for steaming and other language --- content-scripts/website-context/functions.js | 4 ++-- .../website-context/youtube-features/appearance.js | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index dabd2c780..cf56ddc4a 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -206,7 +206,7 @@ ImprovedTube.pageType = function () { }; ImprovedTube.pageOnFocus = function () { - this.playerAutopauseWhenSwitchingTabs(); + ImprovedTube.playerAutopauseWhenSwitchingTabs(); }; ImprovedTube.videoPageUpdate = function () { @@ -249,7 +249,7 @@ ImprovedTube.playerOnPlay = function () { this.removeEventListener('ended', ImprovedTube.playerOnEnded, true); this.addEventListener('ended', ImprovedTube.playerOnEnded, true); - ImprovedTube.autoplay(this); + ImprovedTube.autoplay(); ImprovedTube.playerLoudnessNormalization(); return original.apply(this, arguments); diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index 429ffd1b5..25dbb2915 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -355,17 +355,17 @@ ImprovedTube.dayOfWeek = function () { if (this.storage.day_of_week === true) { var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'] setTimeout (function () { - var videoDate = document.querySelector('ytd-video-primary-info-renderer #info #info-strings yt-formatted-string') - var tempDate = new Date(videoDate.textContent); + var videoDate = document.querySelector('[itemprop=datePublished]').content; + var tempDate = new Date(videoDate); if (!element) { var label = document.createElement('span'); - label.textContent = days[tempDate.getDay()] + ", "; + label.textContent = " , " + days[tempDate.getDay() + 1]; label.className = 'ytd-day-of-week'; - videoDate.prepend(label); + document.querySelector('ytd-video-primary-info-renderer #info #info-strings yt-formatted-string').append(label); } else { - element.textContent = days[tempDate.getDay()] + ", "; + element.textContent = days[tempDate.getDay() + 1] + ", "; } - }, 30); + }, 25); } else if (element) { element.remove(); } From 88704f477f6e9e068cc71faeaf1f18540d3d340c Mon Sep 17 00:00:00 2001 From: CoachYT <69034647+CoachYT1@users.noreply.github.com> Date: Thu, 27 Oct 2022 11:41:56 +0200 Subject: [PATCH 0689/1224] Better translation --- _locales/it/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 748ec9165..4199f6c9f 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -105,7 +105,7 @@ "message": "Evita AV1, VP9" }, "avoidCpuRenderingWhenPossible": { - "message": "Evita rendering della CPU il più possibile" + "message": "Evita rendering tramite CPU quando possibile" }, "backgroundColor": { "message": "Colore di sfondo" From f4b50ceb1fd7d6a2944f54c7ac79c1accf917d82 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 28 Oct 2022 19:12:50 +0800 Subject: [PATCH 0690/1224] Improved playlistRepeat() --- content-scripts/website-context/functions.js | 4 ---- .../website-context/youtube-features/playlist.js | 9 +++++---- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index cf56ddc4a..5a6313177 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -44,10 +44,6 @@ ImprovedTube.ytElementsHandler = function (node) { var index = Array.prototype.indexOf.call(node.parentNode.children, node); if (index === 0) { - if (name === 'YTD-PLAYLIST-LOOP-BUTTON-RENDERER') { - this.elements.playlist.repeat_button = node.button.firstElementChild; - } - this.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode; this.playlistReverse(); diff --git a/content-scripts/website-context/youtube-features/playlist.js b/content-scripts/website-context/youtube-features/playlist.js index aa1c8e43d..00f69d959 100644 --- a/content-scripts/website-context/youtube-features/playlist.js +++ b/content-scripts/website-context/youtube-features/playlist.js @@ -98,12 +98,13 @@ ImprovedTube.playlistReverse = function () { ------------------------------------------------------------------------------*/ ImprovedTube.playlistRepeat = function () { - var button = ImprovedTube.elements.playlist.repeat_button.firstElementChild, - svg = ImprovedTube.elements.playlist.repeat_button.querySelector("path"), - option = ImprovedTube.storage.playlist_repeat; - if (svg && ((option === true && svg !== 'M20,14h2v5L5.84,19.02l1.77,1.77l-1.41,1.41L1.99,18l4.21-4.21l1.41,1.41l-1.82,1.82L20,17V14z') + var option = ImprovedTube.storage.playlist_repeat, + button = document.querySelector("ytd-playlist-loop-button-renderer button"), + svg = button.querySelector("path").attributes.d.textContent.split(" ")[0]; + if (button && ((option === true && svg !== 'M20,14h2v5L5.84,19.02l1.77,1.77l-1.41,1.41L1.99,18l4.21-4.21l1.41,1.41l-1.82,1.82L20,17V14z') || (option === false && svg !== 'M21,13h1v5L3.93,18.03l2.62,2.62l-0.71,0.71L1.99,17.5l3.85-3.85l0.71,0.71l-2.67,2.67L21,17V13z'))) { button.click(); + setTimeout(function () {ImprovedTube.playlistRepeat()}, 100); } }; From 2fe6adf43b50372762ea16c0bd1b6f3894950ea8 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 28 Oct 2022 19:21:49 +0800 Subject: [PATCH 0691/1224] Fixed pageOnFocus() error Fixed "ImprovedTube.playerAutopauseWhenSwitchingTabs is not a function" error --- content-scripts/website-context/core.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content-scripts/website-context/core.js b/content-scripts/website-context/core.js index 1f6a355e5..4bb02d3b6 100644 --- a/content-scripts/website-context/core.js +++ b/content-scripts/website-context/core.js @@ -135,11 +135,11 @@ document.addEventListener('it-message-from-extension', function () { if (ImprovedTube[camelized_key]) { ImprovedTube[camelized_key](); } - } else if (message.focus === true) { + } else if (message.focus === true && ImprovedTube.elements.player) { ImprovedTube.focus = true; ImprovedTube.pageOnFocus(); - } else if (message.blur === true) { + } else if (message.blur === true && ImprovedTube.elements.player) { ImprovedTube.focus = false; ImprovedTube.pageOnFocus(); From 7f5f755ee45cbebc2b5819fc182fe8075410be25 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 28 Oct 2022 19:24:26 +0800 Subject: [PATCH 0692/1224] Bump version --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 567e3f2f1..9978f64aa 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "4.0", + "version": "4.0.1", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 462514fedeaf1f4a14a76b20bd060c302c15c1fc Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 28 Oct 2022 19:41:48 +0800 Subject: [PATCH 0693/1224] Improved hover header Fix #1369 --- .../youtube-features/appearance/header/header.css | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/header/header.css b/content-scripts/extension-context/youtube-features/appearance/header/header.css index b9c3c1d0c..290d10746 100644 --- a/content-scripts/extension-context/youtube-features/appearance/header/header.css +++ b/content-scripts/extension-context/youtube-features/appearance/header/header.css @@ -46,8 +46,9 @@ html[it-header-position=static] ytd-page-manager#page-manager { html[it-header-position=hover]:not([it-improvedtube-search=true]) #masthead-container, html[it-header-position=hover_on_video_page][data-page-type='video']:not([it-improvedtube-search=true]) #masthead-container { - transition: transform 250ms; + transition: all 250ms ease-in-out; transform: translateY(-75%); + opacity: 0; } html[it-header-position=hover] #masthead-container:hover, @@ -55,6 +56,7 @@ html[it-header-position=hover][it-search-focus=true] #masthead-container, html[it-header-position=hover_on_video_page][data-page-type='video'] #masthead-container:hover, html[it-header-position=hover_on_video_page][data-page-type='video'][it-search-focus=true] #masthead-container { transform: translateY(0%); + opacity: 1; } html[it-header-position=hidden]:not([it-search-focus=true]) #masthead-container { From 6caf088841623b47b69bd4e5fe3aee42c976da85 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 29 Oct 2022 16:18:01 +0800 Subject: [PATCH 0694/1224] Updated duration_with_speed() it will only show when show-remaining-duration is enabled --- options-page/skeleton-parts/appearance.js | 1 + options-page/styles/appearance.css | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/options-page/skeleton-parts/appearance.js b/options-page/skeleton-parts/appearance.js index 64a226081..e7d157dd8 100644 --- a/options-page/skeleton-parts/appearance.js +++ b/options-page/skeleton-parts/appearance.js @@ -275,6 +275,7 @@ extension.skeleton.main.layers.section.appearance.on.click.player = { player_remaining_duration: { component: 'switch', text: 'showRemainingDuration', + id: 'show-remaining-duration', value: false }, duration_with_speed: { diff --git a/options-page/styles/appearance.css b/options-page/styles/appearance.css index 8ee4f4785..2988bf7ea 100644 --- a/options-page/styles/appearance.css +++ b/options-page/styles/appearance.css @@ -160,7 +160,11 @@ content: 'x'; } + /*-------------------------------------------------------------- -HIDE DETAIL BUTTON +DURATION WITH SPEED --------------------------------------------------------------*/ +#show-remaining-duration:not([data-value='true']) + .satus-switch { + display: none; +} \ No newline at end of file From e372e126c83e7ec217df32bdb878192cbe43206e Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 29 Oct 2022 16:33:17 +0800 Subject: [PATCH 0695/1224] Improved hide detail button and button text now used the old design --- _locales/am/messages.json | 3 - _locales/ar/messages.json | 3 - _locales/bg/messages.json | 3 - _locales/bn/messages.json | 3 - _locales/ca/messages.json | 3 - _locales/cs/messages.json | 3 - _locales/da/messages.json | 3 - _locales/de/messages.json | 3 - _locales/el/messages.json | 3 - _locales/en/messages.json | 3 - _locales/en_GB/messages.json | 3 - _locales/en_US/messages.json | 3 - _locales/es/messages.json | 3 - _locales/es_419/messages.json | 3 - _locales/et/messages.json | 3 - _locales/fa/messages.json | 3 - _locales/fi/messages.json | 3 - _locales/fil/messages.json | 3 - _locales/fr/messages.json | 3 - _locales/gu/messages.json | 3 - _locales/he/messages.json | 3 - _locales/hi/messages.json | 3 - _locales/hr/messages.json | 3 - _locales/hu/messages.json | 3 - _locales/id/messages.json | 3 - _locales/it/messages.json | 3 - _locales/ja/messages.json | 3 - _locales/kn/messages.json | 3 - _locales/ko/messages.json | 3 - _locales/lt/messages.json | 3 - _locales/lv/messages.json | 3 - _locales/ml/messages.json | 3 - _locales/mr/messages.json | 3 - _locales/ms/messages.json | 3 - _locales/nb_NO/messages.json | 3 - _locales/nl/messages.json | 3 - _locales/no/messages.json | 3 - _locales/pl/messages.json | 3 - _locales/pt_BR/messages.json | 3 - _locales/pt_PT/messages.json | 3 - _locales/ro/messages.json | 3 - _locales/ru/messages.json | 3 - _locales/si/messages.json | 3 - _locales/sk/messages.json | 3 - _locales/sl/messages.json | 3 - _locales/sr/messages.json | 3 - _locales/sv/messages.json | 3 - _locales/sw/messages.json | 3 - _locales/ta/messages.json | 3 - _locales/te/messages.json | 3 - _locales/th/messages.json | 3 - _locales/tr/messages.json | 3 - _locales/uk/messages.json | 3 - _locales/vi/messages.json | 3 - _locales/zh_CN/messages.json | 3 - _locales/zh_TW/messages.json | 3 - .../appearance/details/details.css | 60 ++++---- options-page/skeleton-parts/appearance.js | 134 ++++++++++-------- 58 files changed, 107 insertions(+), 255 deletions(-) diff --git a/_locales/am/messages.json b/_locales/am/messages.json index 9d0051c39..0f7adcb37 100644 --- a/_locales/am/messages.json +++ b/_locales/am/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 0bf60735a..0c20f33c8 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -446,9 +446,6 @@ "hideAnnotations": { "message": "إخفاء التعليقات التوضيحية" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "إخفاء البطاقات" }, diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/bg/messages.json +++ b/_locales/bg/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 8765f804a..ef6a5f22d 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "টীকাগুলি লুকান" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "কার্ড লুকান" }, diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/ca/messages.json +++ b/_locales/ca/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/cs/messages.json +++ b/_locales/cs/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/da/messages.json b/_locales/da/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/da/messages.json +++ b/_locales/da/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 85c60b3fd..5ee452b85 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Anmerkungen ausblenden" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Karten ausblenden" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 2124ab4cf..27c55f39f 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Απόκρυψε τα annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Απόκρυψε τις κάρτες" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 82aa5066b..f70e873a2 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -452,9 +452,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json index 84398eed1..8b7a0051c 100644 --- a/_locales/en_GB/messages.json +++ b/_locales/en_GB/messages.json @@ -437,9 +437,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json index 84398eed1..8b7a0051c 100644 --- a/_locales/en_US/messages.json +++ b/_locales/en_US/messages.json @@ -437,9 +437,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 9b5df6008..a86ba9ce2 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Ocultar anotaciones" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Ocultar tarjetas" }, diff --git a/_locales/es_419/messages.json b/_locales/es_419/messages.json index 2dc47417f..c72648784 100644 --- a/_locales/es_419/messages.json +++ b/_locales/es_419/messages.json @@ -437,9 +437,6 @@ "hideAnnotations": { "message": "Ocultar anotaciones" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Ocultar tarjetas" }, diff --git a/_locales/et/messages.json b/_locales/et/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/et/messages.json +++ b/_locales/et/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/fa/messages.json b/_locales/fa/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/fa/messages.json +++ b/_locales/fa/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/fi/messages.json b/_locales/fi/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/fi/messages.json +++ b/_locales/fi/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/fil/messages.json b/_locales/fil/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/fil/messages.json +++ b/_locales/fil/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 3a02090f4..aae589916 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Cacher les annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Cacher les cartes" }, diff --git a/_locales/gu/messages.json b/_locales/gu/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/gu/messages.json +++ b/_locales/gu/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/he/messages.json b/_locales/he/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/he/messages.json +++ b/_locales/he/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/hi/messages.json b/_locales/hi/messages.json index df73efefc..bd5fb0f2e 100644 --- a/_locales/hi/messages.json +++ b/_locales/hi/messages.json @@ -440,9 +440,6 @@ "hideAnnotations": { "message": "एनोटेशन छुपाएं" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "पत्ते छिपाओ" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index e17d84849..e5b6bbcfe 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Sakrij napomene" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Sakrij kartice" }, diff --git a/_locales/hu/messages.json b/_locales/hu/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/hu/messages.json +++ b/_locales/hu/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 8e8913473..e28513bef 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Sembunyikan penjelasan" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Sembunyikan kartu" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index fd74c44d7..904407220 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Nascondi annotazioni" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Nascondi tessere di fine video" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 7e5eef67f..63f8c30e0 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "アノテーションを隠す" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "カードを隠す" }, diff --git a/_locales/kn/messages.json b/_locales/kn/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/kn/messages.json +++ b/_locales/kn/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 050b1a8d3..b1eabaac3 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "설명 숨기기" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "카드 숨기기" }, diff --git a/_locales/lt/messages.json b/_locales/lt/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/lt/messages.json +++ b/_locales/lt/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/lv/messages.json b/_locales/lv/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/lv/messages.json +++ b/_locales/lv/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/ml/messages.json b/_locales/ml/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/ml/messages.json +++ b/_locales/ml/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/mr/messages.json b/_locales/mr/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/mr/messages.json +++ b/_locales/mr/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/ms/messages.json b/_locales/ms/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/ms/messages.json +++ b/_locales/ms/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index fb66c3a7b..ebde7d130 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -440,9 +440,6 @@ "hideAnnotations": { "message": "Skjul annoteringer" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Skjul kort" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index f8da0e0db..a036e3155 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Verberg annotaties" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Verberg kaarten" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index b9649ad0c..6116457e6 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Skjul annoteringer" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Skjul kort" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 9210b2dab..0bc479b32 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Ukryj adnotacje" }, - "hideButtonLabel": { - "message": "Ukryj etykiete przycisku" - }, "hideCards": { "message": "Ukryj karty" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index ace050969..a76a73846 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Ocultar anotações" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Ocultar cards" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index bf84d4371..0e06bc423 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Esconder anotações" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Esconder cartas" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index e8b9805e2..bb09e17ec 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Ascunde adnotările" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Ascunde cardurile" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 20a73ab54..44aed5990 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -446,9 +446,6 @@ "hideAnnotations": { "message": "Скрывать аннотации" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Скрывать карточки" }, diff --git a/_locales/si/messages.json b/_locales/si/messages.json index e3461437f..f21015d18 100644 --- a/_locales/si/messages.json +++ b/_locales/si/messages.json @@ -440,9 +440,6 @@ "hideAnnotations": { "message": "Annotations සඟවන්න" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Cards සඟවන්න" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 62bc046a2..0848f0845 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Skryť anotácie" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Skryť karty" }, diff --git a/_locales/sl/messages.json b/_locales/sl/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/sl/messages.json +++ b/_locales/sl/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/sr/messages.json +++ b/_locales/sr/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/sw/messages.json b/_locales/sw/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/sw/messages.json +++ b/_locales/sw/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/ta/messages.json b/_locales/ta/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/ta/messages.json +++ b/_locales/ta/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/te/messages.json b/_locales/te/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/te/messages.json +++ b/_locales/te/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/th/messages.json b/_locales/th/messages.json index 30bdd29f3..0b4f1130e 100644 --- a/_locales/th/messages.json +++ b/_locales/th/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index a6af7a639..4969f3b19 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Ek açıklamaları gizle" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Kartları gizle" }, diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json index 3e27bd36a..02b68d344 100644 --- a/_locales/uk/messages.json +++ b/_locales/uk/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Hide annotations" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Hide cards" }, diff --git a/_locales/vi/messages.json b/_locales/vi/messages.json index dc3e25c4b..896c8e16e 100644 --- a/_locales/vi/messages.json +++ b/_locales/vi/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "Ẩn chú thích" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "Ẩn thẻ" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 4c8a50a96..1d1cde05c 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "隐藏预览图" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "隐藏信息卡片" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 3e97138ab..b2e0bd5af 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -443,9 +443,6 @@ "hideAnnotations": { "message": "隱藏註解" }, - "hideButtonLabel": { - "message": "Hide Button Label" - }, "hideCards": { "message": "隱藏資訊卡" }, diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/content-scripts/extension-context/youtube-features/appearance/details/details.css index 6ec1d931a..07f04307e 100644 --- a/content-scripts/extension-context/youtube-features/appearance/details/details.css +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.css @@ -53,13 +53,13 @@ html[it-hide-date='true'] #info #count + #info-strings>#dot { HIDE LIKE BUTTON --------------------------------------------------------------*/ -html[it-hide-like-button=true] #info #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1), -html[it-hide-like-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) div.cbox { +html[it-hide-like-button='hidden'] #info #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1), +html[it-hide-like-button='icons_only'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) div.cbox { display: none; } -html[it-hide-like-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) .yt-spec-button-shape-next__icon, -html[it-hide-like-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) button{ +html[it-hide-like-button='icons_only'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) .yt-spec-button-shape-next__icon, +html[it-hide-like-button='icons_only'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) button{ margin: 0; padding: 0 5px; } @@ -69,13 +69,13 @@ html[it-hide-like-button-text=true] #top-level-buttons-computed ytd-toggle-butto HIDE DISLIKE BUTTON --------------------------------------------------------------*/ -html[it-hide-dislike-button=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2), -html[it-hide-dislike-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) div.cbox { +html[it-hide-dislike-button='hidden'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2), +html[it-hide-dislike-button='icons_only'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) div.cbox { display: none; } -html[it-hide-dislike-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) .yt-spec-button-shape-next__icon, -html[it-hide-dislike-button-text=true] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) button{ +html[it-hide-dislike-button='icons_only'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) .yt-spec-button-shape-next__icon, +html[it-hide-dislike-button='icons_only'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) button{ margin: 0; padding: 0 5px; } @@ -85,13 +85,13 @@ html[it-hide-dislike-button-text=true] #top-level-buttons-computed ytd-toggle-bu # HIDE SHARE BUTTON --------------------------------------------------------------*/ -html[it-hide-share-button=true] #top-level-buttons-computed ytd-button-renderer#Share-button, -html[it-hide-share-button-text=true] #top-level-buttons-computed ytd-button-renderer#Share-button div.cbox { +html[it-hide-share-button='hidden'] #top-level-buttons-computed ytd-button-renderer#Share-button, +html[it-hide-share-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Share-button div.cbox { display: none; } -html[it-hide-share-button-text=true] #top-level-buttons-computed ytd-button-renderer#Share-button .yt-spec-button-shape-next__icon, -html[it-hide-share-button-text=true] #top-level-buttons-computed ytd-button-renderer#Share-button button{ +html[it-hide-share-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Share-button .yt-spec-button-shape-next__icon, +html[it-hide-share-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Share-button button{ margin: 0; padding: 0 5px; } @@ -101,13 +101,13 @@ html[it-hide-share-button-text=true] #top-level-buttons-computed ytd-button-rend # HIDE DOWNLOAD BUTTON --------------------------------------------------------------*/ -html[it-hide-download-button=true] #top-level-buttons-computed ytd-download-button-renderer, -html[it-hide-download-button-text=true] #top-level-buttons-computed ytd-download-button-renderer div.cbox { +html[it-hide-download-button='hidden'] #top-level-buttons-computed ytd-download-button-renderer, +html[it-hide-download-button='icons_only'] #top-level-buttons-computed ytd-download-button-renderer div.cbox { display: none; } -html[it-hide-download-button-text=true] #top-level-buttons-computed ytd-download-button-renderer .yt-spec-button-shape-next__icon, -html[it-hide-download-button-text=true] #top-level-buttons-computed ytd-download-button-renderer button{ +html[it-hide-download-button='icons_only'] #top-level-buttons-computed ytd-download-button-renderer .yt-spec-button-shape-next__icon, +html[it-hide-download-button='icons_only'] #top-level-buttons-computed ytd-download-button-renderer button{ margin: 0; padding: 0 5px; } @@ -117,13 +117,13 @@ html[it-hide-download-button-text=true] #top-level-buttons-computed ytd-download # HIDE THANKS BUTTON --------------------------------------------------------------*/ -html[it-hide-thanks-button=true] #top-level-buttons-computed ytd-button-renderer#Thanks-button, -html[it-hide-thanks-button-text=true] #top-level-buttons-computed ytd-button-renderer#Thanks-button div.cbox { +html[it-hide-thanks-button='hidden'] #top-level-buttons-computed ytd-button-renderer#Thanks-button, +html[it-hide-thanks-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Thanks-button div.cbox { display: none; } -html[it-hide-thanks-button-text=true] #top-level-buttons-computed ytd-button-renderer#Thanks-button .yt-spec-button-shape-next__icon, -html[it-hide-thanks-button-text=true] #top-level-buttons-computed ytd-button-renderer#Thanks-button button{ +html[it-hide-thanks-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Thanks-button .yt-spec-button-shape-next__icon, +html[it-hide-thanks-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Thanks-button button{ margin: 0; padding: 0 5px; } @@ -133,13 +133,13 @@ html[it-hide-thanks-button-text=true] #top-level-buttons-computed ytd-button-ren # HIDE CLIP BUTTON --------------------------------------------------------------*/ -html[it-hide-clip-button=true] #top-level-buttons-computed ytd-button-renderer#Clip-button, -html[it-hide-clip-button-text=true] #top-level-buttons-computed ytd-button-renderer#Clip-button div.cbox { +html[it-hide-clip-button='hidden'] #top-level-buttons-computed ytd-button-renderer#Clip-button, +html[it-hide-clip-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Clip-button div.cbox { display: none; } -html[it-hide-clip-button-text=true] #top-level-buttons-computed ytd-button-renderer#Clip-button .yt-spec-button-shape-next__icon, -html[it-hide-clip-button-text=true] #top-level-buttons-computed ytd-button-renderer#Clip-button button{ +html[it-hide-clip-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Clip-button .yt-spec-button-shape-next__icon, +html[it-hide-clip-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Clip-button button{ margin: 0; padding: 0 5px; } @@ -149,13 +149,13 @@ html[it-hide-clip-button-text=true] #top-level-buttons-computed ytd-button-rende # HIDE SAVE BUTTON --------------------------------------------------------------*/ -html[it-hide-save-button=true] #top-level-buttons-computed ytd-button-renderer#Save-button, -html[it-hide-save-button-text=true] #top-level-buttons-computed ytd-button-renderer#Save-button div.cbox { +html[it-hide-save-button='hidden'] #top-level-buttons-computed ytd-button-renderer#Save-button, +html[it-hide-save-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Save-button div.cbox { display: none; } -html[it-hide-save-button-text=true] #top-level-buttons-computed ytd-button-renderer#Save-button .yt-spec-button-shape-next__icon, -html[it-hide-save-button-text=true] #top-level-buttons-computed ytd-button-renderer#Save-button button{ +html[it-hide-save-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Save-button .yt-spec-button-shape-next__icon, +html[it-hide-save-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Save-button button{ margin: 0; padding: 0 5px; } @@ -165,7 +165,7 @@ html[it-hide-save-button-text=true] #top-level-buttons-computed ytd-button-rende # HIDE REPORT BUTTON --------------------------------------------------------------*/ -html[it-hide-report-button=true] #top-level-buttons-computed ytd-button-renderer#Report-button { +html[it-hide-report-button='hidden'] #top-level-buttons-computed ytd-button-renderer#Report-button { display: none; } @@ -174,7 +174,7 @@ html[it-hide-report-button=true] #top-level-buttons-computed ytd-button-renderer # HIDE MORE BUTTON --------------------------------------------------------------*/ -html[it-hide-more-button=true] #menu yt-button-shape#button-shape { +html[it-hide-more-button='hidden'] #menu yt-button-shape#button-shape { display: none; } diff --git a/options-page/skeleton-parts/appearance.js b/options-page/skeleton-parts/appearance.js index e7d157dd8..0af8b6da7 100644 --- a/options-page/skeleton-parts/appearance.js +++ b/options-page/skeleton-parts/appearance.js @@ -424,38 +424,108 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { component: 'section', variant: 'card', hide_like_button: { - component: 'switch', + component: 'select', text: 'like', + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'iconsOnly', + value: 'icons_only' + }, { + text: 'hidden', + value: 'hidden' + }], tags: 'hide,remove' }, hide_dislike_button: { - component: 'switch', + component: 'select', text: 'dislike', + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'iconsOnly', + value: 'icons_only' + }, { + text: 'hidden', + value: 'hidden' + }], tags: 'hide,remove' }, hide_share_button: { - component: 'switch', + component: 'select', text: 'share', + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'iconsOnly', + value: 'icons_only' + }, { + text: 'hidden', + value: 'hidden' + }], tags: 'hide,remove' }, hide_download_button: { - component: 'switch', + component: 'select', text: 'download', + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'iconsOnly', + value: 'icons_only' + }, { + text: 'hidden', + value: 'hidden' + }], tags: 'hide,remove' }, hide_thanks_button: { - component: 'switch', + component: 'select', text: 'thanks', + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'iconsOnly', + value: 'icons_only' + }, { + text: 'hidden', + value: 'hidden' + }], tags: 'hide,remove' }, hide_clip_button: { - component: 'switch', + component: 'select', text: 'clip', + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'iconsOnly', + value: 'icons_only' + }, { + text: 'hidden', + value: 'hidden' + }], tags: 'hide,remove' }, hide_save_button: { - component: 'switch', + component: 'select', text: 'save', + options: [{ + text: 'normal', + value: 'normal' + }, { + text: 'iconsOnly', + value: 'icons_only' + }, { + text: 'hidden', + value: 'hidden' + }], tags: 'hide,remove' }, hide_report_button: { @@ -467,56 +537,6 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { component: 'switch', text: 'more', tags: 'hide,remove' - }, - hide_more_button: { - component: 'switch', - text: 'more', - tags: 'hide,remove' - } - } - } - }, - hide_details_button_text: { - component: 'button', - text: 'hideButtonLabel', - on: { - click: { - component: 'section', - variant: 'card', - hide_like_button_text: { - component: 'switch', - text: 'like', - tags: 'hide,remove' - }, - hide_dislike_button_text: { - component: 'switch', - text: 'dislike', - tags: 'hide,remove' - }, - hide_share_button_text: { - component: 'switch', - text: 'share', - tags: 'hide,remove' - }, - hide_download_button_text: { - component: 'switch', - text: 'download', - tags: 'hide,remove' - }, - hide_thanks_button_text: { - component: 'switch', - text: 'thanks', - tags: 'hide,remove' - }, - hide_clip_button_text: { - component: 'switch', - text: 'clip', - tags: 'hide,remove' - }, - hide_save_button_text: { - component: 'switch', - text: 'save', - tags: 'hide,remove' } } } From ad45a764dfcc4efe0610d355ad0ca049ef22ffc6 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 29 Oct 2022 18:01:17 +0800 Subject: [PATCH 0696/1224] Updated playerSize() --- .../appearance/player/player.css | 19 ++++++- content-scripts/website-context/functions.js | 11 ++++ .../youtube-features/appearance.js | 51 ++++--------------- 3 files changed, 40 insertions(+), 41 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/player/player.css b/content-scripts/extension-context/youtube-features/appearance/player/player.css index 990c6d311..9c2c92987 100644 --- a/content-scripts/extension-context/youtube-features/appearance/player/player.css +++ b/content-scripts/extension-context/youtube-features/appearance/player/player.css @@ -478,8 +478,25 @@ html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change' max-height: none !important; } +/*-------------------------------------------------------------- +# CUSTOM PLAYER SIZE +--------------------------------------------------------------*/ + +html[data-page-type='video'][it-player-size='custom'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container, +html[data-page-type='video'][it-player-size='custom'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy[theater]:not([fullscreen]) #player-theater-container { + width: var(--it-player-width) !important; + height: var(--it-player-height) !important; + margin: 0 auto; + min-height: auto !important; + max-height: none !important; +} + +html[data-page-type='video'][it-player-size='custom'] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([theater]):not([fullscreen]) #player-container-inner { + padding-top: var(--it-player-height) !important; +} + /*------------------------------------------------------------------------------ -hide controls options +HIDE CONTROLS OPTIONS ------------------------------------------------------------------------------*/ html[it-player-play-button=true] .ytp-play-button, html[it-player-previous-button=true] .ytp-prev-button, diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index 5a6313177..1dccee566 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -112,6 +112,8 @@ ImprovedTube.ytElementsHandler = function (node) { ImprovedTube.elements.player_thumbnail = node.querySelector('.ytp-cued-thumbnail-overlay-image'); ImprovedTube.elements.player_subtitles_button = node.querySelector('.ytp-subtitles-button'); + ImprovedTube.playerSize(); + new MutationObserver(function (mutationList) { for (var i = 0, l = mutationList.length; i < l; i++) { var mutation = mutationList[i]; @@ -236,6 +238,9 @@ ImprovedTube.videoPageUpdate = function () { ImprovedTube.playerOnPlay = function () { HTMLMediaElement.prototype.play = (function (original) { return function () { + this.removeEventListener('loadedmetadata', ImprovedTube.playerOnLoadedMetadata); + this.addEventListener('loadedmetadata', ImprovedTube.playerOnLoadedMetadata); + this.removeEventListener('timeupdate', ImprovedTube.playerOnTimeUpdate); this.addEventListener('timeupdate', ImprovedTube.playerOnTimeUpdate); @@ -306,6 +311,12 @@ ImprovedTube.playerOnTimeUpdate = function () { ImprovedTube.played_time += .25; }; +ImprovedTube.playerOnLoadedMetadata = function () { + setTimeout(function () { + ImprovedTube.playerSize(); + }, 100); +}; + ImprovedTube.playerOnPause = function (event) { ImprovedTube.playlistUpNextAutoplay(event); diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index 25dbb2915..782d71ab4 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -11,49 +11,20 @@ ------------------------------------------------------------------------------*/ ImprovedTube.playerSize = function () { - if (window.self === window.top) { - if (this.elements.player_size_style) { - this.elements.player_size_style.remove(); - } - - if (this.storage.forced_theater_mode === true && this.storage.player_size === 'fit_to_window') { - var button = document.querySelector('button.ytp-size-button'), - container = document.getElementById('player-theater-container'); - - if (button && (container && !container.firstChild)) { - button.click(); - } - } - - - if (this.storage.player_size === 'custom') { - var width = Number(this.storage.custom_player_size_width) || 1280, - height = Number(this.storage.custom_player_size_height) || 720, - style = this.elements.player_size_style || document.createElement('style'); + if (this.storage.player_size === 'custom') { + console.log("yes"); + var width = Number(this.storage.custom_player_size_width) || 1280, + height = Number(this.storage.custom_player_size_height) || 720, + style = this.elements.player_size_style || document.createElement('style'); - style.textContent = '[data-page-type="video"][it-player-size="custom"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) .html5-video-player:not(.it-mini-player) video {'; - style.textContent += 'width:' + width + 'px !important;'; - style.textContent += 'height:' + height + 'px !important;'; - style.textContent += '}'; + style.textContent = '[data-page-type="video"][it-player-size="custom"] {'; + style.textContent += '--it-player-width:' + width + 'px;'; + style.textContent += '--it-player-height:' + height + 'px;'; + style.textContent += '}'; - style.textContent += '[data-page-type="video"][it-player-size="custom"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-container-inner.ytd-watch-flexy {'; - style.textContent += 'padding-top:' + height + 'px !important;'; - style.textContent += '}'; + document.body.appendChild(style); - style.textContent += '[data-page-type="video"][it-player-size="custom"] ytd-app:not([player-fullscreen_]) ytd-watch-flexy:not([fullscreen]) #player-theater-container.ytd-watch-flexy {'; - style.textContent += 'height:' + height + 'px !important;'; - style.textContent += 'min-height:' + height + 'px !important;'; - style.textContent += 'max-height:' + height + 'px !important;'; - style.textContent += '}'; - - this.elements.player_size_style = style; - - document.body.appendChild(style); - - setTimeout(function () { - window.dispatchEvent(new Event('resize')); - }, 100); - } + window.dispatchEvent(new Event('resize')); } }; From c4e9222e4c4aa508bf04f449d630e7be5da7ce24 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 29 Oct 2022 13:37:09 +0200 Subject: [PATCH 0697/1224] Update README.md --- .github/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index de4302231..82f95cddd 100644 --- a/.github/README.md +++ b/.github/README.md @@ -187,7 +187,8 @@ Planned Features ❌(Iranian) Persian : _____(You?)
✔️IT : -urfausto
+urfausto, +FedericoSlongo
TH Thai : ______
(You?)
✔️PL : From 2d2a2e106a2820bcc88a4d238c65bd6c5a26da09 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sun, 30 Oct 2022 13:25:46 +0800 Subject: [PATCH 0698/1224] Format satus code --- assets/satus/satus.css | 1447 +++++++++++++++++++++++++++++- assets/satus/satus.js | 1920 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 3365 insertions(+), 2 deletions(-) diff --git a/assets/satus/satus.css b/assets/satus/satus.css index dda44c1f0..c2bb6a476 100644 --- a/assets/satus/satus.css +++ b/assets/satus/satus.css @@ -1 +1,1446 @@ -:where([class^='satus'])::-webkit-scrollbar{width:4px}:where([class^='satus'])::-webkit-scrollbar:hover{width:8px}:where([class^='satus'])::-webkit-scrollbar-thumb{background:rgba(var(--satus-light),.2)}:where([class^='satus'])::-webkit-scrollbar-thumb:hover{background:rgba(var(--satus-light),.3)}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeInLeft{from{opacity:0;transform:translateX(-100%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOutLeft{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-50%)}}@keyframes fadeOutRight{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(50%)}}@keyframes zoomIn{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes zoomOut{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.satus-base{--satus-light:0,20,82;--satus-primary:#ff4158;--satus-alert-background--error:#501616;--satus-alert-border--error:1px solid #6f1f1f;--satus-alert-foreground--error:#d77070;--satus-alert-background--success:rgb(246,180,101,.32);--satus-alert-border--success:1px solid rgb(246,180,101,.6);--satus-alert-foreground--success:rgb(184,115,30);--satus-base-background:#f3f4f6;--satus-base-foreground:#565e76;--satus-checkbox-background:#f3f4f6;--satus-checkbox-border:#dcdfe5;--satus-checkbox-foreground:rgb(255,255,255,.96);--satus-divider:rgba(var(--satus-light),.1);--satus-header-background:#fff;--satus-header-foreground:inherit;--satus-header-shadow:0 1px 0 #dcdee5;--satus-layers-background:var(--satus-base-background);--satus-layers-foreground:inherit;--satus-section-background:#fff;--satus-section-border:#dcdee5;--satus-section-foreground:inherit;--satus-sidebar-background:#fff;--satus-sidebar-foreground:inherit;--satus-sidebar-shadow:#dcdee5;--satus-modal-foreground:inherit;--satus-modal-background:#fff;--satus-modal-shadow:0 1px 4px #7d86a1;--satus-tabs-background:rgba(var(--satus-light),.04);--satus-tabs-foreground:#fff;--satus-text-field-background:#edf0f2;--satus-text-field-border:#dcdee5;--satus-text-field-color:#7d8ba1;--satus-text-field-selection:rgb(149,166,178,.35);--satus-text-field-cursor:#fa0;--satus-switch-track:#e1e4ea;--satus-switch-track--checked:var(--satus-primary);--satus-switch-thumb:#fff;--satus-input-text-background:#e8e8e3;--satus-input-text-border:#d6d6cd;--satus-input-text-text:#848471}.satus-base[theme=dark]{--satus-light:255,255,255;--satus-primary:#3691bf;--satus-alert-background--error:#501616;--satus-alert-border--error:1px solid #6f1f1f;--satus-alert-foreground--error:#d77070;--satus-alert-background--success:#143648;--satus-alert-border--success:1px solid #1d4f67;--satus-alert-foreground--success:#50a4ce;--satus-base-background:#151528;--satus-base-foreground:#fafafa;--satus-header-background:#313172;--satus-header-shadow:transparent;--satus-section-background:#232343;--satus-section-border:#232343;--satus-modal-background:#313172;--satus-modal-shadow:0 1px 4px #22222f;--satus-switch-track:#52527a}:where([class^='satus']){box-sizing:border-box}:where([class^='satus'])[hidden]:not([hidden='false']){display:none}:where([class^='satus'])[transparent]{opacity:0}.satus-modal{position:fixed;z-index:9;top:0;left:0;display:flex;width:100vw;height:100vh;justify-content:center;align-items:center}.satus-modal__scrim{position:absolute;top:0;left:0;width:100%;height:100%;animation:fadeIn 150ms linear forwards;opacity:0;background:rgba(0,0,0,.16);backdrop-filter:blur(8px)}.satus-modal--closing .satus-modal__scrim{animation:fadeOut 70ms linear forwards}.satus-modal__surface{display:flex;overflow-y:auto;flex-direction:column;box-sizing:border-box;width:95%;min-width:240px;max-width:560px;max-height:80%;margin:8px;padding:12px 16px;transform:scale(.8);animation:zoomIn 150ms linear forwards;animation-delay:20ms;opacity:0;color:var(--satus-modal-foreground);border-radius:3px;background-color:var(--satus-modal-background);box-shadow:var(--satus-modal-shadow)}.satus-modal--closing .satus-modal__surface{animation:zoomOut 70ms linear forwards}.satus-modal__content{margin:6px 0 12px}.satus-section--actions{justify-content:flex-end}.satus-section--actions > :not(:first-child){margin-left:8px}.satus-modal--vertical-menu .satus-modal__surface{position:absolute;top:8px;right:8px;left:auto;min-width:180px;max-width:180px;margin:0;padding:8px 0;transform-origin:right top}.satus-modal--vertical-menu .satus-modal__surface>[class^='satus']:where(:not(.satus-divider)){height:36px;padding:0 16px;border-radius:0}.satus-modal--vertical-menu .satus-modal__surface>.satus-span{font-size:13px;font-weight:500;margin:6px 0;padding:0 12px;height:auto}.satus-modal--vertical-menu .satus-modal__surface>.satus-tabs{margin:0 12px;border-radius:3px;height:26px;padding:0}.satus-modal--vertical-menu .satus-select svg,.satus-modal--vertical-menu .satus-button svg{margin:0 14px 0 0;opacity:.64;flex:0 0 18px}.satus-modal--vertical-menu .satus-button .satus-span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.satus-modal--vertical-menu .satus-switch:hover{cursor:pointer;background-color:rgba(var(--satus-light),.06)}.satus-modal--vertical-menu .satus-switch:focus{background-color:rgba(var(--satus-light),.08)}.satus-grid{display:flex;align-items:stretch;height:100%;padding:8px}.satus-text-field{display:flex;min-width:240px;height:36px;color:var(--satus-text-field-foreground,inherit);border:1px solid var(--satus-text-field-border);border-radius:4px;background:var(--satus-text-field-background);align-items:center;justify-content:space-between}.satus-text-field__container{position:relative;overflow:hidden;height:100%;flex:1}.satus-text-field[line-numbers=false] .satus-text-field__container{margin-left:8px}.satus-text-field__textarea,.satus-text-field__input{font:inherit;position:absolute;z-index:9;top:0;left:0;overflow:auto;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:0 12px;white-space:pre;opacity:0;color:inherit;border:none;border-radius:4px;outline:none;appearance:none;overflow-wrap:normal}.satus-text-field__display{position:absolute;top:0;left:0;display:flex;width:100%;height:100%}.satus-text-field__line-numbers{padding:0 12px 0 0;opacity:.5}.satus-text-field__line-numbers>span{font-size:inherit;display:block;width:100%;text-align:right}.satus-text-field__pre{font:inherit;display:flex;margin:0}.satus-text-field__hidden-value{font:inherit;position:absolute;overflow:auto;white-space:pre;pointer-events:none;opacity:0;overflow-wrap:normal}.satus-text-field__selection{position:absolute;top:0;left:0;display:none;width:0;height:22px;margin:6px 12px;border:1px solid var(--satus-text-field-selection);border-radius:3px;background:var(--satus-text-field-selection)}.satus-text-field__cursor{position:absolute;top:0;left:0;display:none;width:2px;height:22px;margin:-3px 0 0;animation:blink 1s step-end 8;background:var(--satus-text-field-cursor)}.satus-text-field__textarea:focus+.satus-text-field__display>.satus-text-field__cursor,.satus-text-field__textarea:focus+.satus-text-field__display>.satus-text-field__selection:not([disabled]),.satus-text-field__input:focus+.satus-text-field__display>.satus-text-field__cursor,.satus-text-field__input:focus+.satus-text-field__display>.satus-text-field__selection:not([disabled]){display:block}@keyframes blink{from,to{opacity:1}50%{opacity:0}}.satus-text-field[multiline=false] .satus-text-field__pre{align-items:center}.satus-text-field[multiline=false] .satus-text-field__cursor{top:calc(50% - 9px)}.satus-text-field__pre>.group{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__pre>.character-class{color:#ffc247;background-color:rgb(255,170,0,.16)}.satus-text-field__pre>.quantifier{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__pre>.anchor{color:#47c2ff;background-color:rgb(71,194,255,.16)}.satus-text-field__pre>.metasequence{color:#47ff47;background-color:rgb(71,255,71,.16)}.satus-text-field__pre>.text{color:#c4c4d4;background-color:rgb(196,196,212,.16)}.satus-chart{font-size:90%;position:relative;height:128px;margin:4px 12px;color:rgba(var(--satus-light),.32);border:1px dashed rgba(var(--satus-light),.2);border-top:unset;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.satus-chart__labels{position:absolute;top:0;left:0;display:flex;width:100%;height:100%;justify-content:space-between;align-items:stretch}.satus-chart__section{padding:4px;flex:1}.satus-chart__section:not(:last-child){border-right:1px dashed rgba(var(--satus-light),.2)}.satus-chart__bars{position:absolute;top:0;left:0;display:flex;width:100%;height:100%;justify-content:space-between;align-items:stretch}.satus-chart__bar{display:flex;flex-direction:column;margin:0 1px;flex:1;align-items:center;justify-content:flex-end}.satus-chart__piece{width:100%}.satus-chart__piece:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.satus-select{position:relative;display:flex;cursor:pointer;align-items:center;justify-content:space-between}.satus-select:hover{background-color:var(--satus-hover)}.satus-select__content{display:flex;flex:2;overflow:hidden;align-items:center}.satus-select svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.64}.satus-select__content .satus-span{overflow:hidden;text-overflow:ellipsis}.satus-select__value{display:block;overflow:hidden;flex:1;margin-left:8px;text-align:right;text-overflow:ellipsis;opacity:.64}.satus-select select{font:inherit;position:absolute;z-index:1;top:0;left:0;width:100%;height:100%;margin:0;padding:inherit;cursor:inherit;opacity:0;border:none;outline:none;appearance:none}.satus-select:hover{cursor:pointer;background-color:rgba(var(--satus-light),.06)}.satus-select:focus{background-color:rgba(var(--satus-light),.08)}.satus-select select::-webkit-scrollbar{width:4px}.satus-select select::-webkit-scrollbar:hover{width:8px}.satus-select select::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2)}.satus-select select::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.3)}.satus-select option{color:var(--satus-select-text);background:var(--satus-select-background)}.satus-divider{height:1px;margin:16px 0 12px;background:var(--satus-divider)}.satus-section{display:flex;flex-wrap:wrap}.satus-section--align-start{align-items:center}.satus-section--align-start>:not(:last-child){margin-right:8px}.satus-section--align-end{align-items:center;justify-content:flex-end}.satus-section--align-end>:not(:first-child){margin-left:8px}.satus-section--card{flex-direction:column;max-width:900px;margin:12px;padding:8px 0;border:1px solid var(--satus-section-border);border-radius:3px;background:var(--satus-section-background);color:var(--satus-section-foreground)}.satus-section--transparent-card{max-width:900px;margin:8px 12px}.satus-section--card[data-title],.satus-section--transparent-card[data-title]{position:relative;margin-top:32px}.satus-section--card[data-title]::before,.satus-section--transparent-card::before{position:absolute;top:-8px;left:0;content:attr(data-title);transform:translateY(-100%)}.satus-section--transparent-card > [class^='satus']{width:100%}.satus-section--card>[class^='satus']:not(.satus-list):not(.satus-section){display:flex;min-height:48px;padding:8px 12px;transition:background-color .18s cubic-bezier(.25,.8,.5,1);text-align:left;border-radius:0;align-items:center}.satus-section--card>[class^='satus']:not(.satus-list):not(.satus-section):not(.satus-chart){width:100%}.satus-section--card>[class^='satus']:not(.satus-chart):not(.satus-list):not(.satus-span):hover{background-color:rgba(var(--satus-light),.06)}.satus-section--card>.satus-button{justify-content:flex-start}.satus-section--card>.satus-button>svg,.satus-section--card>.satus-select>svg{width:20px;margin:0 14px 0 0;color:var(--satus-primary)}.satus-section--card>.satus-span{display:flex;align-items:center}.satus-section--transparent{background:unset;border:unset;padding:0;border-radius:unset}@media (min-width: 901px){.satus-section--card,.satus-section--transparent-card{margin-left:auto;margin-right:auto}}.satus-base{display:flex;flex-direction:column;width:100%;height:100%;color:var(--satus-base-foreground);background:var(--satus-base-background)}.satus-alert{display:flex;max-width:900px;min-height:48px;margin:12px;padding:8px 12px;border-radius:3px;align-items:center}.satus-alert--error{color:var(--satus-alert-foreground--error);border:var(--satus-alert-border--error);background:var(--satus-alert-background--error)}.satus-alert--success{color:var(--satus-alert-foreground--success);border:var(--satus-alert-border--success);background:var(--satus-alert-background--success)}@media (min-width: 901px){.satus-alert{margin-right:auto;margin-left:auto}}.satus-input[type=text],.satus-input[type=password]{font:inherit;font-size:16px;box-sizing:border-box;width:100%;height:26px;margin:0;margin:8px 0;padding:0 8px;color:var(--satus-input-text-foreground,inherit);border:none;border:1px solid var(--satus-input-text-border);border-radius:4px;outline:none;background:none;background-color:var(--satus-input-text-background);appearance:none}.satus-input--error[type=text],.satus-input--error[type=password]{outline:2px solid rgba(255,0,0,.32)}.satus-main{display:flex;flex:1}.satus-sidebar{z-index:1;display:flex;flex-direction:column;width:56px;padding:12px 0;color:var(--satus-sidebar-foreground);background:var(--satus-sidebar-background);box-shadow:1px 0 0 var(--satus-sidebar-shadow)}.satus-layers{position:relative;overflow:hidden;flex:1}.satus-layers__layer{position:absolute;top:0;left:0;overflow:auto;width:100%;height:100%;color:var(--satus-layers-foreground);background:var(--satus-layers-background)}.satus-list{margin:0;list-style:none}.satus-list__item{display:flex;min-height:48px;padding:0 16px;align-items:center;justify-content:space-between}.satus-list__item>:not(:first-child){margin-left:8px}.satus-list__item>:last-child{font-size:92%;text-align:right;opacity:.64}.satus-color-picker{font-size:inherit;position:relative;display:flex;box-sizing:border-box;margin:0;cursor:pointer;color:inherit;border:none;outline:none;background-color:var(--satus-theme-button);justify-content:space-between;-webkit-tap-highlight-color:transparent;align-items:center;-webkit-appearance:none}.satus-color-picker__value{width:22px;height:22px;border:2px solid rgba(0,0,0,.16);border-radius:50%}.satus-modal--color-picker .satus-modal__surface{padding:8px}.satus-color-picker__palette{position:relative;overflow:hidden;width:100%;height:256px;margin:0 0 4px;border-radius:5px;background-color:#f00}.satus-color-picker__palette:before{position:absolute;top:0;left:0;width:100%;height:100%;content:'';background-image:linear-gradient(0deg,black,transparent),linear-gradient(90deg,white,transparent)}.satus-color-picker__cursor{position:absolute;width:5px;height:5px;transform:translate(-50%,-50%);pointer-events:none;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000}.satus-modal--color-picker .satus-modal__surface .satus-section--color{margin:8px 4px;align-items:center}.satus-color-picker__color{width:32px;height:32px;margin:0 16px 0 0;border:2px solid rgba(0,0,0,.16);border-radius:50%;background:#f00}.satus-slider.satus-color-picker__hue{padding:0;flex:1}.satus-color-picker__hue .satus-slider__track-container{height:16px;margin:0;border-radius:4px;background-image:linear-gradient(90deg,#f00,#ff2a00,#f50,#ff7f00,#fa0,#ffd400,#ff0,#d4ff00,#af0,#80ff00,#5f0,#2bff00,#0f0,#00ff2b,#0f5,#00ff80,#0fa,#00ffd5,#0ff,#00d4ff,#0af,#007fff,#05f,#002bff,#00f,#2a00ff,#50f,#7f00ff,#a0f,#d400ff,#f0f,#ff00d4,#f0a,#ff0080,#f05,#ff002b,#f00)}.satus-color-picker__hue .satus-slider__track-container::before{display:none}.satus-color-picker__hue .satus-slider__track{background:transparent}.satus-color-picker__hue .satus-slider__track::after{width:16px;height:16px;background:#fff;box-shadow:0 0 4px rgb(0,0,0,.64)}.satus-span--title{font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1}.satus-button{font:inherit;position:relative;display:inline-flex;overflow:hidden;height:36px;padding:8px;transition:background-color .3s cubic-bezier(.25,.8,.5,1);color:inherit;border:none;border-radius:6px;outline:none;background:transparent;appearance:none;align-items:center}.satus-button:hover{cursor:pointer;background-color:rgba(var(--satus-light),.06)}.satus-button:focus{background-color:rgba(var(--satus-light),.08)}.satus-button svg{width:100%;max-width:24px;height:100%;max-height:24px}.satus-button--icon{width:40px;height:40px;border-radius:50%}.satus-button--icon svg{width:24px;height:24px}.satus-header{z-index:1;display:flex;height:56px;padding:0 12px;color:var(--satus-header-foreground);background:var(--satus-header-background);box-shadow:var(--satus-header-shadow);justify-content:space-between;align-items:center}.satus-radio{position:relative;display:flex}.satus-radio__input{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;margin:0;z-index:9}.satus-radio__content{flex:1;padding:0 12px}.satus-radio__i{width:16px;height:16px;border:1px solid rgba(var(--satus-light),.64);border-radius:50%;transition:200ms}.satus-radio__input + .satus-radio__i::before{width:8px;height:8px;margin:3px;border-radius:50%;background:var(--satus-primary);content:'';display:block;transform:scale(0);transition:200ms}.satus-radio__input:checked + .satus-radio__i{border-color:var(--satus-primary)}.satus-radio__input:checked + .satus-radio__i::before{background:var(--satus-primary);transform:scale(1)}.satus-slider{display:flex;flex-wrap:wrap}.satus-slider__content{width:100%;display:flex;justify-content:space-between}.satus-slider__input[type='text']{appearance:none;background:transparent;border:none;color:inherit;font:inherit;padding:0;margin:0;outline:none;width:64px;text-align:right}.satus-slider__track-container{position:relative;width:100%;height:20px;margin:10px 0 -2px}.satus-slider__track-container::before{position:absolute;top:calc(50% - 1px);left:0;width:100%;height:2px;content:'';opacity:.24;background:var(--satus-primary)}.satus-slider__input[type='range']{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;opacity:0}.satus-slider__track{position:absolute;top:calc(50% - 1px);left:0;width:0;height:2px;background:var(--satus-primary);pointer-events:none}.satus-slider__track::before{position:absolute;top:50%;right:0;transform:translate(50%,-50%);display:block;width:16px;height:16px;content:'';transition:width 200ms,height 200ms,opacity 200ms;opacity:0;border-radius:50%;background:var(--satus-primary)}.satus-slider__input:focus + .satus-slider__track::before{width:24px;height:24px;opacity:.16}.satus-slider__input:active + .satus-slider__track::before{width:26px;height:26px;opacity:.16}.satus-slider__track::after{position:absolute;top:50%;right:0;transform:translate(50%,-50%);width:10px;height:10px;content:'';border-radius:50%;background:var(--satus-primary);pointer-events:none;transition:width 200ms,height 200ms,opacity 200ms}.satus-slider__input:active + .satus-slider__track::after{width:12px;height:12px}.satus-slider--row{flex-wrap:nowrap;justify-content:space-between}.satus-slider--row .satus-slider__track-container{margin:0 0 -2px 12px;max-width:50%}.satus-tabs{position:relative;display:flex;border:2px solid var(--satus-tabs-background);border-radius:4px;background:var(--satus-tabs-background)}.satus-tabs::before{position:absolute;top:0;left:calc(calc(100% / var(--satus-tabs-count)) * var(--satus-tabs-current));width:calc(100% / var(--satus-tabs-count));height:100%;content:'';transition:left .25s;border-radius:3px;background:var(--satus-tabs-foreground)}.satus-tabs__button{font:inherit;position:relative;z-index:1;overflow:hidden;margin:0;padding:0 8px;text-overflow:ellipsis;color:inherit;border:none;border-radius:3px;outline:none;background:transparent;flex:1;appearance:none}.satus-shortcut__value{font-size:11px;display:flex;margin-left:16px;text-transform:uppercase;align-items:center;flex:1;justify-content:flex-end}.satus-shortcut__actions{display:flex;justify-content:flex-end}.satus-shortcut__actions .satus-button{height:32px;margin:8px 4px 0;border-radius:8px;background:rgba(0,0,0,.15)}.satus-shortcut__actions .satus-button:hover{background:rgba(0,0,0,.25)}.satus-shortcut__primary{display:flex;height:64px;margin:0 0 12px;padding:16px;border-radius:3px;background:rgba(0,0,0,.16);align-items:center}.satus-shortcut__key{display:flex;min-width:32px;height:32px;padding:4px 8px;border-radius:4px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1);align-items:center;justify-content:center}.satus-shortcut__value>.satus-shortcut__key{font-size:12px;min-width:24px;height:24px}.satus-shortcut__plus{position:relative;width:12px;height:12px;margin:8px}.satus-shortcut__plus::before{position:absolute;top:0;left:5px;width:2px;height:12px;content:'';background-color:#aaa}.satus-shortcut__plus::after{position:absolute;top:5px;left:0;width:12px;height:2px;content:'';background-color:#aaa}.satus-shortcut__mouse{position:relative;display:flex;width:28px;height:36px;border-radius:50%;border-top-left-radius:12px;border-top-right-radius:12px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15),inset 0 -3px 0 rgba(0,0,0,.1)}.satus-shortcut__value>.satus-shortcut__mouse{width:22px;height:28px}.satus-shortcut__mouse>div{position:absolute;top:0;left:calc(50% - 1px);width:2px;height:11px;border-radius:2px;background:#ccc}.satus-shortcut__mouse::before{position:absolute;top:-16%;right:14%;width:2px;height:60%;content:'';background:#f96754}.satus-shortcut__mouse.false::before{top:-6%}.satus-shortcut__mouse.false::after{position:absolute;top:-20%;right:calc(14% - 4px);width:0;height:0;content:'';border-right:5px solid transparent;border-bottom:8px solid #f96754;border-left:5px solid transparent}.satus-shortcut__mouse.true::after{position:absolute;top:40%;right:calc(14% - 4px);width:0;height:0;content:'';border-top:8px solid #f96754;border-right:5px solid transparent;border-left:5px solid transparent}.satus-shortcut__mouse.click::before{position:absolute;top:0;left:-1px;width:10px;height:10px;content:'';border-radius:50%;background:#f96754}.satus-shortcut__mouse.middle::before{position:absolute;z-index:1;top:0;left:50%;width:10px;height:10px;content:'';transform:translateX(-50%);border-radius:50%;background:#f96754}.satus-shortcut__mouse.context::before{position:absolute;top:0;left:15px;width:10px;height:10px;content:'';border-radius:50%;background:#f96754}.satus-section_shortcut{width:100%;margin:8px 0 0;justify-content:flex-end}.satus-button_shortcut{font-weight:500;overflow:hidden;height:28px;min-height:28px;margin-right:2px;padding:4px 8px;text-transform:uppercase;color:#f96754;border-radius:4px}.satus-checkbox{position:relative;display:flex;cursor:pointer;align-items:center}.satus-checkbox__input{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;opacity:0;border:none;appearance:none}.satus-checkbox__checkmark{position:relative;display:flex;width:16px;min-width:16px;height:16px;min-height:16px;margin:0 12px 0 0;content:'';border:1px solid var(--satus-checkbox-border);border-radius:3px;background:var(--satus-checkbox-background)}.satus-checkbox[data-value=true] .satus-checkbox__checkmark{border-color:var(--satus-primary);background:var(--satus-primary)}.satus-checkbox[data-value=true] .satus-checkbox__checkmark::before{position:absolute;top:3px;left:2px;width:8px;height:4px;content:'';transform:rotate(-45deg);border:2px solid var(--satus-checkbox-foreground);border-top:none;border-right:none}.satus-switch{font:inherit;display:flex;transition:background-color 75ms;color:inherit;border:none;outline:none;background-color:transparent;justify-content:space-between;align-items:center}.satus-switch:hover{cursor:pointer}.satus-switch__content{display:flex;align-items:center}.satus-switch__content>svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.64}.satus-switch>i{width:32px;height:18px;transition:background-color 150ms;border-radius:18px;background-color:var(--satus-switch-track);flex:0 0 32px}.satus-section--card .satus-switch>i{margin-left:16px}.satus-switch[data-value='true']>i{background-color:var(--satus-switch-track--checked)}.satus-switch>i::before{display:block;width:14px;height:14px;margin:2px;content:'';transition:transform 150ms cubic-bezier(.4,0,.2,1);border-radius:50%;background-color:var(--satus-switch-thumb);will-change:transform}.satus-switch[data-value='true']>i::before{transform:translateX(14px)}.satus-modal--contextmenu .satus-modal__scrim{visibility:visible;transform:none;animation:none;opacity:1;background:none;backdrop-filter:none}.satus-modal--contextmenu .satus-modal__surface{position:absolute;visibility:visible;min-width:200px;max-width:200px;margin:0;padding:4px 0;transform:none;animation:none;opacity:1;border-radius:4px;box-shadow:0 0 0 1px rgba(var(--satus-light),.1)}.satus-modal--contextmenu .satus-modal__surface>*{display:flex;height:32px;padding:0 16px;align-items:center}.satus-modal--contextmenu .satus-modal__surface .satus-button svg{width:20px;height:18px;margin:0 14px 0 0;opacity:.75;fill:none;stroke:var(--satus-primary);flex:0 0 20px}.satus-modal--contextmenu .satus-modal__surface .satus-button .satus-span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.satus-sortable__chosen{color:var(--satus-sortable-text)!important;background-color:var(--satus-sortable-background)!important}.satus-sortable__ghost{position:fixed!important;z-index:999!important;top:0!important;left:0!important;pointer-events:none!important;opacity:.8!important;box-shadow:0 1px 3px rgb(0,0,0,.2),0 4px 8px rgb(0,0,0,.1),inset 0 0 0 1px rgb(0,0,0,.16)!important;will-change:transform!important} \ No newline at end of file +:where([class^="satus"])::-webkit-scrollbar { + width: 4px; +} +:where([class^="satus"])::-webkit-scrollbar:hover { + width: 8px; +} +:where([class^="satus"])::-webkit-scrollbar-thumb { + background: rgba(var(--satus-light), 0.2); +} +:where([class^="satus"])::-webkit-scrollbar-thumb:hover { + background: rgba(var(--satus-light), 0.3); +} +@keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes fadeInLeft { + from { + opacity: 0; + transform: translateX(-100%); + } + to { + opacity: 1; + transform: translateX(0); + } +} +@keyframes fadeInRight { + from { + opacity: 0; + transform: translateX(100%); + } + to { + opacity: 1; + transform: translateX(0); + } +} +@keyframes fadeOut { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +@keyframes fadeOutLeft { + from { + opacity: 1; + transform: translateX(0); + } + to { + opacity: 0; + transform: translateX(-50%); + } +} +@keyframes fadeOutRight { + from { + opacity: 1; + transform: translateX(0); + } + to { + opacity: 0; + transform: translateX(50%); + } +} +@keyframes zoomIn { + from { + transform: scale(0.8); + opacity: 0; + } + to { + transform: scale(1); + opacity: 1; + } +} +@keyframes zoomOut { + from { + transform: scale(1); + opacity: 1; + } + to { + transform: scale(0.8); + opacity: 0; + } +} +.satus-base { + --satus-light: 0, 20, 82; + --satus-primary: #ff4158; + --satus-alert-background--error: #501616; + --satus-alert-border--error: 1px solid #6f1f1f; + --satus-alert-foreground--error: #d77070; + --satus-alert-background--success: rgb(246, 180, 101, 0.32); + --satus-alert-border--success: 1px solid rgb(246, 180, 101, 0.6); + --satus-alert-foreground--success: rgb(184, 115, 30); + --satus-base-background: #f3f4f6; + --satus-base-foreground: #565e76; + --satus-checkbox-background: #f3f4f6; + --satus-checkbox-border: #dcdfe5; + --satus-checkbox-foreground: rgb(255, 255, 255, 0.96); + --satus-divider: rgba(var(--satus-light), 0.1); + --satus-header-background: #fff; + --satus-header-foreground: inherit; + --satus-header-shadow: 0 1px 0 #dcdee5; + --satus-layers-background: var(--satus-base-background); + --satus-layers-foreground: inherit; + --satus-section-background: #fff; + --satus-section-border: #dcdee5; + --satus-section-foreground: inherit; + --satus-sidebar-background: #fff; + --satus-sidebar-foreground: inherit; + --satus-sidebar-shadow: #dcdee5; + --satus-modal-foreground: inherit; + --satus-modal-background: #fff; + --satus-modal-shadow: 0 1px 4px #7d86a1; + --satus-tabs-background: rgba(var(--satus-light), 0.04); + --satus-tabs-foreground: #fff; + --satus-text-field-background: #edf0f2; + --satus-text-field-border: #dcdee5; + --satus-text-field-color: #7d8ba1; + --satus-text-field-selection: rgb(149, 166, 178, 0.35); + --satus-text-field-cursor: #fa0; + --satus-switch-track: #e1e4ea; + --satus-switch-track--checked: var(--satus-primary); + --satus-switch-thumb: #fff; + --satus-input-text-background: #e8e8e3; + --satus-input-text-border: #d6d6cd; + --satus-input-text-text: #848471; +} +.satus-base[theme="dark"] { + --satus-light: 255, 255, 255; + --satus-primary: #3691bf; + --satus-alert-background--error: #501616; + --satus-alert-border--error: 1px solid #6f1f1f; + --satus-alert-foreground--error: #d77070; + --satus-alert-background--success: #143648; + --satus-alert-border--success: 1px solid #1d4f67; + --satus-alert-foreground--success: #50a4ce; + --satus-base-background: #151528; + --satus-base-foreground: #fafafa; + --satus-header-background: #313172; + --satus-header-shadow: transparent; + --satus-section-background: #232343; + --satus-section-border: #232343; + --satus-modal-background: #313172; + --satus-modal-shadow: 0 1px 4px #22222f; + --satus-switch-track: #52527a; +} +:where([class^="satus"]) { + box-sizing: border-box; +} +:where([class^="satus"])[hidden]:not([hidden="false"]) { + display: none; +} +:where([class^="satus"])[transparent] { + opacity: 0; +} +.satus-modal { + position: fixed; + z-index: 9; + top: 0; + left: 0; + display: flex; + width: 100vw; + height: 100vh; + justify-content: center; + align-items: center; +} +.satus-modal__scrim { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + animation: fadeIn 150ms linear forwards; + opacity: 0; + background: rgba(0, 0, 0, 0.16); + backdrop-filter: blur(8px); +} +.satus-modal--closing .satus-modal__scrim { + animation: fadeOut 70ms linear forwards; +} +.satus-modal__surface { + display: flex; + overflow-y: auto; + flex-direction: column; + box-sizing: border-box; + width: 95%; + min-width: 240px; + max-width: 560px; + max-height: 80%; + margin: 8px; + padding: 12px 16px; + transform: scale(0.8); + animation: zoomIn 150ms linear forwards; + animation-delay: 20ms; + opacity: 0; + color: var(--satus-modal-foreground); + border-radius: 3px; + background-color: var(--satus-modal-background); + box-shadow: var(--satus-modal-shadow); +} +.satus-modal--closing .satus-modal__surface { + animation: zoomOut 70ms linear forwards; +} +.satus-modal__content { + margin: 6px 0 12px; +} +.satus-section--actions { + justify-content: flex-end; +} +.satus-section--actions > :not(:first-child) { + margin-left: 8px; +} +.satus-modal--vertical-menu .satus-modal__surface { + position: absolute; + top: 8px; + right: 8px; + left: auto; + min-width: 180px; + max-width: 180px; + margin: 0; + padding: 8px 0; + transform-origin: right top; +} +.satus-modal--vertical-menu + .satus-modal__surface + > [class^="satus"]:where(:not(.satus-divider)) { + height: 36px; + padding: 0 16px; + border-radius: 0; +} +.satus-modal--vertical-menu .satus-modal__surface > .satus-span { + font-size: 13px; + font-weight: 500; + margin: 6px 0; + padding: 0 12px; + height: auto; +} +.satus-modal--vertical-menu .satus-modal__surface > .satus-tabs { + margin: 0 12px; + border-radius: 3px; + height: 26px; + padding: 0; +} +.satus-modal--vertical-menu .satus-select svg, +.satus-modal--vertical-menu .satus-button svg { + margin: 0 14px 0 0; + opacity: 0.64; + flex: 0 0 18px; +} +.satus-modal--vertical-menu .satus-button .satus-span { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.satus-modal--vertical-menu .satus-switch:hover { + cursor: pointer; + background-color: rgba(var(--satus-light), 0.06); +} +.satus-modal--vertical-menu .satus-switch:focus { + background-color: rgba(var(--satus-light), 0.08); +} +.satus-grid { + display: flex; + align-items: stretch; + height: 100%; + padding: 8px; +} +.satus-text-field { + display: flex; + min-width: 240px; + height: 36px; + color: var(--satus-text-field-foreground, inherit); + border: 1px solid var(--satus-text-field-border); + border-radius: 4px; + background: var(--satus-text-field-background); + align-items: center; + justify-content: space-between; +} +.satus-text-field__container { + position: relative; + overflow: hidden; + height: 100%; + flex: 1; +} +.satus-text-field[line-numbers="false"] .satus-text-field__container { + margin-left: 8px; +} +.satus-text-field__textarea, +.satus-text-field__input { + font: inherit; + position: absolute; + z-index: 9; + top: 0; + left: 0; + overflow: auto; + width: 100%; + min-width: 0; + max-width: none; + height: 100%; + min-height: 0; + max-height: none; + margin: 0; + padding: 0 12px; + white-space: pre; + opacity: 0; + color: inherit; + border: none; + border-radius: 4px; + outline: none; + appearance: none; + overflow-wrap: normal; +} +.satus-text-field__display { + position: absolute; + top: 0; + left: 0; + display: flex; + width: 100%; + height: 100%; +} +.satus-text-field__line-numbers { + padding: 0 12px 0 0; + opacity: 0.5; +} +.satus-text-field__line-numbers > span { + font-size: inherit; + display: block; + width: 100%; + text-align: right; +} +.satus-text-field__pre { + font: inherit; + display: flex; + margin: 0; +} +.satus-text-field__hidden-value { + font: inherit; + position: absolute; + overflow: auto; + white-space: pre; + pointer-events: none; + opacity: 0; + overflow-wrap: normal; +} +.satus-text-field__selection { + position: absolute; + top: 0; + left: 0; + display: none; + width: 0; + height: 22px; + margin: 6px 12px; + border: 1px solid var(--satus-text-field-selection); + border-radius: 3px; + background: var(--satus-text-field-selection); +} +.satus-text-field__cursor { + position: absolute; + top: 0; + left: 0; + display: none; + width: 2px; + height: 22px; + margin: -3px 0 0; + animation: blink 1s step-end 8; + background: var(--satus-text-field-cursor); +} +.satus-text-field__textarea:focus + + .satus-text-field__display + > .satus-text-field__cursor, +.satus-text-field__textarea:focus + + .satus-text-field__display + > .satus-text-field__selection:not([disabled]), +.satus-text-field__input:focus + + .satus-text-field__display + > .satus-text-field__cursor, +.satus-text-field__input:focus + + .satus-text-field__display + > .satus-text-field__selection:not([disabled]) { + display: block; +} +@keyframes blink { + from, + to { + opacity: 1; + } + 50% { + opacity: 0; + } +} +.satus-text-field[multiline="false"] .satus-text-field__pre { + align-items: center; +} +.satus-text-field[multiline="false"] .satus-text-field__cursor { + top: calc(50% - 9px); +} +.satus-text-field__pre > .group { + color: #47ff47; + background-color: rgb(71, 255, 71, 0.16); +} +.satus-text-field__pre > .character-class { + color: #ffc247; + background-color: rgb(255, 170, 0, 0.16); +} +.satus-text-field__pre > .quantifier { + color: #47c2ff; + background-color: rgb(71, 194, 255, 0.16); +} +.satus-text-field__pre > .anchor { + color: #47c2ff; + background-color: rgb(71, 194, 255, 0.16); +} +.satus-text-field__pre > .metasequence { + color: #47ff47; + background-color: rgb(71, 255, 71, 0.16); +} +.satus-text-field__pre > .text { + color: #c4c4d4; + background-color: rgb(196, 196, 212, 0.16); +} +.satus-chart { + font-size: 90%; + position: relative; + height: 128px; + margin: 4px 12px; + color: rgba(var(--satus-light), 0.32); + border: 1px dashed rgba(var(--satus-light), 0.2); + border-top: unset; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +.satus-chart__labels { + position: absolute; + top: 0; + left: 0; + display: flex; + width: 100%; + height: 100%; + justify-content: space-between; + align-items: stretch; +} +.satus-chart__section { + padding: 4px; + flex: 1; +} +.satus-chart__section:not(:last-child) { + border-right: 1px dashed rgba(var(--satus-light), 0.2); +} +.satus-chart__bars { + position: absolute; + top: 0; + left: 0; + display: flex; + width: 100%; + height: 100%; + justify-content: space-between; + align-items: stretch; +} +.satus-chart__bar { + display: flex; + flex-direction: column; + margin: 0 1px; + flex: 1; + align-items: center; + justify-content: flex-end; +} +.satus-chart__piece { + width: 100%; +} +.satus-chart__piece:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} +.satus-select { + position: relative; + display: flex; + cursor: pointer; + align-items: center; + justify-content: space-between; +} +.satus-select:hover { + background-color: var(--satus-hover); +} +.satus-select__content { + display: flex; + flex: 2; + overflow: hidden; + align-items: center; +} +.satus-select svg { + width: 20px; + height: 18px; + margin: 0 14px 0 0; + opacity: 0.64; +} +.satus-select__content .satus-span { + overflow: hidden; + text-overflow: ellipsis; +} +.satus-select__value { + display: block; + overflow: hidden; + flex: 1; + margin-left: 8px; + text-align: right; + text-overflow: ellipsis; + opacity: 0.64; +} +.satus-select select { + font: inherit; + position: absolute; + z-index: 1; + top: 0; + left: 0; + width: 100%; + height: 100%; + margin: 0; + padding: inherit; + cursor: inherit; + opacity: 0; + border: none; + outline: none; + appearance: none; +} +.satus-select:hover { + cursor: pointer; + background-color: rgba(var(--satus-light), 0.06); +} +.satus-select:focus { + background-color: rgba(var(--satus-light), 0.08); +} +.satus-select select::-webkit-scrollbar { + width: 4px; +} +.satus-select select::-webkit-scrollbar:hover { + width: 8px; +} +.satus-select select::-webkit-scrollbar-thumb { + background: rgba(0, 0, 0, 0.2); +} +.satus-select select::-webkit-scrollbar-thumb:hover { + background: rgba(0, 0, 0, 0.3); +} +.satus-select option { + color: var(--satus-select-text); + background: var(--satus-select-background); +} +.satus-divider { + height: 1px; + margin: 16px 0 12px; + background: var(--satus-divider); +} +.satus-section { + display: flex; + flex-wrap: wrap; +} +.satus-section--align-start { + align-items: center; +} +.satus-section--align-start > :not(:last-child) { + margin-right: 8px; +} +.satus-section--align-end { + align-items: center; + justify-content: flex-end; +} +.satus-section--align-end > :not(:first-child) { + margin-left: 8px; +} +.satus-section--card { + flex-direction: column; + max-width: 900px; + margin: 12px; + padding: 8px 0; + border: 1px solid var(--satus-section-border); + border-radius: 3px; + background: var(--satus-section-background); + color: var(--satus-section-foreground); +} +.satus-section--transparent-card { + max-width: 900px; + margin: 8px 12px; +} +.satus-section--card[data-title], +.satus-section--transparent-card[data-title] { + position: relative; + margin-top: 32px; +} +.satus-section--card[data-title]::before, +.satus-section--transparent-card::before { + position: absolute; + top: -8px; + left: 0; + content: attr(data-title); + transform: translateY(-100%); +} +.satus-section--transparent-card > [class^="satus"] { + width: 100%; +} +.satus-section--card > [class^="satus"]:not(.satus-list):not(.satus-section) { + display: flex; + min-height: 48px; + padding: 8px 12px; + transition: background-color 0.18s cubic-bezier(0.25, 0.8, 0.5, 1); + text-align: left; + border-radius: 0; + align-items: center; +} +.satus-section--card + > [class^="satus"]:not(.satus-list):not(.satus-section):not(.satus-chart) { + width: 100%; +} +.satus-section--card + > [class^="satus"]:not(.satus-chart):not(.satus-list):not(.satus-span):hover { + background-color: rgba(var(--satus-light), 0.06); +} +.satus-section--card > .satus-button { + justify-content: flex-start; +} +.satus-section--card > .satus-button > svg, +.satus-section--card > .satus-select > svg { + width: 20px; + margin: 0 14px 0 0; + color: var(--satus-primary); +} +.satus-section--card > .satus-span { + display: flex; + align-items: center; +} +.satus-section--transparent { + background: unset; + border: unset; + padding: 0; + border-radius: unset; +} +@media (min-width: 901px) { + .satus-section--card, + .satus-section--transparent-card { + margin-left: auto; + margin-right: auto; + } +} +.satus-base { + display: flex; + flex-direction: column; + width: 100%; + height: 100%; + color: var(--satus-base-foreground); + background: var(--satus-base-background); +} +.satus-alert { + display: flex; + max-width: 900px; + min-height: 48px; + margin: 12px; + padding: 8px 12px; + border-radius: 3px; + align-items: center; +} +.satus-alert--error { + color: var(--satus-alert-foreground--error); + border: var(--satus-alert-border--error); + background: var(--satus-alert-background--error); +} +.satus-alert--success { + color: var(--satus-alert-foreground--success); + border: var(--satus-alert-border--success); + background: var(--satus-alert-background--success); +} +@media (min-width: 901px) { + .satus-alert { + margin-right: auto; + margin-left: auto; + } +} +.satus-input[type="text"], +.satus-input[type="password"] { + font: inherit; + font-size: 16px; + box-sizing: border-box; + width: 100%; + height: 26px; + margin: 0; + margin: 8px 0; + padding: 0 8px; + color: var(--satus-input-text-foreground, inherit); + border: none; + border: 1px solid var(--satus-input-text-border); + border-radius: 4px; + outline: none; + background: none; + background-color: var(--satus-input-text-background); + appearance: none; +} +.satus-input--error[type="text"], +.satus-input--error[type="password"] { + outline: 2px solid rgba(255, 0, 0, 0.32); +} +.satus-main { + display: flex; + flex: 1; +} +.satus-sidebar { + z-index: 1; + display: flex; + flex-direction: column; + width: 56px; + padding: 12px 0; + color: var(--satus-sidebar-foreground); + background: var(--satus-sidebar-background); + box-shadow: 1px 0 0 var(--satus-sidebar-shadow); +} +.satus-layers { + position: relative; + overflow: hidden; + flex: 1; +} +.satus-layers__layer { + position: absolute; + top: 0; + left: 0; + overflow: auto; + width: 100%; + height: 100%; + color: var(--satus-layers-foreground); + background: var(--satus-layers-background); +} +.satus-list { + margin: 0; + list-style: none; +} +.satus-list__item { + display: flex; + min-height: 48px; + padding: 0 16px; + align-items: center; + justify-content: space-between; +} +.satus-list__item > :not(:first-child) { + margin-left: 8px; +} +.satus-list__item > :last-child { + font-size: 92%; + text-align: right; + opacity: 0.64; +} +.satus-color-picker { + font-size: inherit; + position: relative; + display: flex; + box-sizing: border-box; + margin: 0; + cursor: pointer; + color: inherit; + border: none; + outline: none; + background-color: var(--satus-theme-button); + justify-content: space-between; + -webkit-tap-highlight-color: transparent; + align-items: center; + -webkit-appearance: none; +} +.satus-color-picker__value { + width: 22px; + height: 22px; + border: 2px solid rgba(0, 0, 0, 0.16); + border-radius: 50%; +} +.satus-modal--color-picker .satus-modal__surface { + padding: 8px; +} +.satus-color-picker__palette { + position: relative; + overflow: hidden; + width: 100%; + height: 256px; + margin: 0 0 4px; + border-radius: 5px; + background-color: #f00; +} +.satus-color-picker__palette:before { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + content: ""; + background-image: linear-gradient(0deg, black, transparent), + linear-gradient(90deg, white, transparent); +} +.satus-color-picker__cursor { + position: absolute; + width: 5px; + height: 5px; + transform: translate(-50%, -50%); + pointer-events: none; + border: 1px solid #fff; + border-radius: 50%; + box-shadow: 0 0 0 1px #000; +} +.satus-modal--color-picker .satus-modal__surface .satus-section--color { + margin: 8px 4px; + align-items: center; +} +.satus-color-picker__color { + width: 32px; + height: 32px; + margin: 0 16px 0 0; + border: 2px solid rgba(0, 0, 0, 0.16); + border-radius: 50%; + background: #f00; +} +.satus-slider.satus-color-picker__hue { + padding: 0; + flex: 1; +} +.satus-color-picker__hue .satus-slider__track-container { + height: 16px; + margin: 0; + border-radius: 4px; + background-image: linear-gradient( + 90deg, + #f00, + #ff2a00, + #f50, + #ff7f00, + #fa0, + #ffd400, + #ff0, + #d4ff00, + #af0, + #80ff00, + #5f0, + #2bff00, + #0f0, + #00ff2b, + #0f5, + #00ff80, + #0fa, + #00ffd5, + #0ff, + #00d4ff, + #0af, + #007fff, + #05f, + #002bff, + #00f, + #2a00ff, + #50f, + #7f00ff, + #a0f, + #d400ff, + #f0f, + #ff00d4, + #f0a, + #ff0080, + #f05, + #ff002b, + #f00 + ); +} +.satus-color-picker__hue .satus-slider__track-container::before { + display: none; +} +.satus-color-picker__hue .satus-slider__track { + background: transparent; +} +.satus-color-picker__hue .satus-slider__track::after { + width: 16px; + height: 16px; + background: #fff; + box-shadow: 0 0 4px rgb(0, 0, 0, 0.64); +} +.satus-span--title { + font-weight: 500; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + flex: 1; +} +.satus-button { + font: inherit; + position: relative; + display: inline-flex; + overflow: hidden; + height: 36px; + padding: 8px; + transition: background-color 0.3s cubic-bezier(0.25, 0.8, 0.5, 1); + color: inherit; + border: none; + border-radius: 6px; + outline: none; + background: transparent; + appearance: none; + align-items: center; +} +.satus-button:hover { + cursor: pointer; + background-color: rgba(var(--satus-light), 0.06); +} +.satus-button:focus { + background-color: rgba(var(--satus-light), 0.08); +} +.satus-button svg { + width: 100%; + max-width: 24px; + height: 100%; + max-height: 24px; +} +.satus-button--icon { + width: 40px; + height: 40px; + border-radius: 50%; +} +.satus-button--icon svg { + width: 24px; + height: 24px; +} +.satus-header { + z-index: 1; + display: flex; + height: 56px; + padding: 0 12px; + color: var(--satus-header-foreground); + background: var(--satus-header-background); + box-shadow: var(--satus-header-shadow); + justify-content: space-between; + align-items: center; +} +.satus-radio { + position: relative; + display: flex; +} +.satus-radio__input { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0; + margin: 0; + z-index: 9; +} +.satus-radio__content { + flex: 1; + padding: 0 12px; +} +.satus-radio__i { + width: 16px; + height: 16px; + border: 1px solid rgba(var(--satus-light), 0.64); + border-radius: 50%; + transition: 200ms; +} +.satus-radio__input + .satus-radio__i::before { + width: 8px; + height: 8px; + margin: 3px; + border-radius: 50%; + background: var(--satus-primary); + content: ""; + display: block; + transform: scale(0); + transition: 200ms; +} +.satus-radio__input:checked + .satus-radio__i { + border-color: var(--satus-primary); +} +.satus-radio__input:checked + .satus-radio__i::before { + background: var(--satus-primary); + transform: scale(1); +} +.satus-slider { + display: flex; + flex-wrap: wrap; +} +.satus-slider__content { + width: 100%; + display: flex; + justify-content: space-between; +} +.satus-slider__input[type="text"] { + appearance: none; + background: transparent; + border: none; + color: inherit; + font: inherit; + padding: 0; + margin: 0; + outline: none; + width: 64px; + text-align: right; +} +.satus-slider__track-container { + position: relative; + width: 100%; + height: 20px; + margin: 10px 0 -2px; +} +.satus-slider__track-container::before { + position: absolute; + top: calc(50% - 1px); + left: 0; + width: 100%; + height: 2px; + content: ""; + opacity: 0.24; + background: var(--satus-primary); +} +.satus-slider__input[type="range"] { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + margin: 0; + opacity: 0; +} +.satus-slider__track { + position: absolute; + top: calc(50% - 1px); + left: 0; + width: 0; + height: 2px; + background: var(--satus-primary); + pointer-events: none; +} +.satus-slider__track::before { + position: absolute; + top: 50%; + right: 0; + transform: translate(50%, -50%); + display: block; + width: 16px; + height: 16px; + content: ""; + transition: width 200ms, height 200ms, opacity 200ms; + opacity: 0; + border-radius: 50%; + background: var(--satus-primary); +} +.satus-slider__input:focus + .satus-slider__track::before { + width: 24px; + height: 24px; + opacity: 0.16; +} +.satus-slider__input:active + .satus-slider__track::before { + width: 26px; + height: 26px; + opacity: 0.16; +} +.satus-slider__track::after { + position: absolute; + top: 50%; + right: 0; + transform: translate(50%, -50%); + width: 10px; + height: 10px; + content: ""; + border-radius: 50%; + background: var(--satus-primary); + pointer-events: none; + transition: width 200ms, height 200ms, opacity 200ms; +} +.satus-slider__input:active + .satus-slider__track::after { + width: 12px; + height: 12px; +} +.satus-slider--row { + flex-wrap: nowrap; + justify-content: space-between; +} +.satus-slider--row .satus-slider__track-container { + margin: 0 0 -2px 12px; + max-width: 50%; +} +.satus-tabs { + position: relative; + display: flex; + border: 2px solid var(--satus-tabs-background); + border-radius: 4px; + background: var(--satus-tabs-background); +} +.satus-tabs::before { + position: absolute; + top: 0; + left: calc(calc(100% / var(--satus-tabs-count)) * var(--satus-tabs-current)); + width: calc(100% / var(--satus-tabs-count)); + height: 100%; + content: ""; + transition: left 0.25s; + border-radius: 3px; + background: var(--satus-tabs-foreground); +} +.satus-tabs__button { + font: inherit; + position: relative; + z-index: 1; + overflow: hidden; + margin: 0; + padding: 0 8px; + text-overflow: ellipsis; + color: inherit; + border: none; + border-radius: 3px; + outline: none; + background: transparent; + flex: 1; + appearance: none; +} +.satus-shortcut__value { + font-size: 11px; + display: flex; + margin-left: 16px; + text-transform: uppercase; + align-items: center; + flex: 1; + justify-content: flex-end; +} +.satus-shortcut__actions { + display: flex; + justify-content: flex-end; +} +.satus-shortcut__actions .satus-button { + height: 32px; + margin: 8px 4px 0; + border-radius: 8px; + background: rgba(0, 0, 0, 0.15); +} +.satus-shortcut__actions .satus-button:hover { + background: rgba(0, 0, 0, 0.25); +} +.satus-shortcut__primary { + display: flex; + height: 64px; + margin: 0 0 12px; + padding: 16px; + border-radius: 3px; + background: rgba(0, 0, 0, 0.16); + align-items: center; +} +.satus-shortcut__key { + display: flex; + min-width: 32px; + height: 32px; + padding: 4px 8px; + border-radius: 4px; + background: #fff; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15), inset 0 -3px 0 rgba(0, 0, 0, 0.1); + align-items: center; + justify-content: center; +} +.satus-shortcut__value > .satus-shortcut__key { + font-size: 12px; + min-width: 24px; + height: 24px; +} +.satus-shortcut__plus { + position: relative; + width: 12px; + height: 12px; + margin: 8px; +} +.satus-shortcut__plus::before { + position: absolute; + top: 0; + left: 5px; + width: 2px; + height: 12px; + content: ""; + background-color: #aaa; +} +.satus-shortcut__plus::after { + position: absolute; + top: 5px; + left: 0; + width: 12px; + height: 2px; + content: ""; + background-color: #aaa; +} +.satus-shortcut__mouse { + position: relative; + display: flex; + width: 28px; + height: 36px; + border-radius: 50%; + border-top-left-radius: 12px; + border-top-right-radius: 12px; + background: #fff; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15), inset 0 -3px 0 rgba(0, 0, 0, 0.1); +} +.satus-shortcut__value > .satus-shortcut__mouse { + width: 22px; + height: 28px; +} +.satus-shortcut__mouse > div { + position: absolute; + top: 0; + left: calc(50% - 1px); + width: 2px; + height: 11px; + border-radius: 2px; + background: #ccc; +} +.satus-shortcut__mouse::before { + position: absolute; + top: -16%; + right: 14%; + width: 2px; + height: 60%; + content: ""; + background: #f96754; +} +.satus-shortcut__mouse.false::before { + top: -6%; +} +.satus-shortcut__mouse.false::after { + position: absolute; + top: -20%; + right: calc(14% - 4px); + width: 0; + height: 0; + content: ""; + border-right: 5px solid transparent; + border-bottom: 8px solid #f96754; + border-left: 5px solid transparent; +} +.satus-shortcut__mouse.true::after { + position: absolute; + top: 40%; + right: calc(14% - 4px); + width: 0; + height: 0; + content: ""; + border-top: 8px solid #f96754; + border-right: 5px solid transparent; + border-left: 5px solid transparent; +} +.satus-shortcut__mouse.click::before { + position: absolute; + top: 0; + left: -1px; + width: 10px; + height: 10px; + content: ""; + border-radius: 50%; + background: #f96754; +} +.satus-shortcut__mouse.middle::before { + position: absolute; + z-index: 1; + top: 0; + left: 50%; + width: 10px; + height: 10px; + content: ""; + transform: translateX(-50%); + border-radius: 50%; + background: #f96754; +} +.satus-shortcut__mouse.context::before { + position: absolute; + top: 0; + left: 15px; + width: 10px; + height: 10px; + content: ""; + border-radius: 50%; + background: #f96754; +} +.satus-section_shortcut { + width: 100%; + margin: 8px 0 0; + justify-content: flex-end; +} +.satus-button_shortcut { + font-weight: 500; + overflow: hidden; + height: 28px; + min-height: 28px; + margin-right: 2px; + padding: 4px 8px; + text-transform: uppercase; + color: #f96754; + border-radius: 4px; +} +.satus-checkbox { + position: relative; + display: flex; + cursor: pointer; + align-items: center; +} +.satus-checkbox__input { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + margin: 0; + padding: 0; + opacity: 0; + border: none; + appearance: none; +} +.satus-checkbox__checkmark { + position: relative; + display: flex; + width: 16px; + min-width: 16px; + height: 16px; + min-height: 16px; + margin: 0 12px 0 0; + content: ""; + border: 1px solid var(--satus-checkbox-border); + border-radius: 3px; + background: var(--satus-checkbox-background); +} +.satus-checkbox[data-value="true"] .satus-checkbox__checkmark { + border-color: var(--satus-primary); + background: var(--satus-primary); +} +.satus-checkbox[data-value="true"] .satus-checkbox__checkmark::before { + position: absolute; + top: 3px; + left: 2px; + width: 8px; + height: 4px; + content: ""; + transform: rotate(-45deg); + border: 2px solid var(--satus-checkbox-foreground); + border-top: none; + border-right: none; +} +.satus-switch { + font: inherit; + display: flex; + transition: background-color 75ms; + color: inherit; + border: none; + outline: none; + background-color: transparent; + justify-content: space-between; + align-items: center; +} +.satus-switch:hover { + cursor: pointer; +} +.satus-switch__content { + display: flex; + align-items: center; +} +.satus-switch__content > svg { + width: 20px; + height: 18px; + margin: 0 14px 0 0; + opacity: 0.64; +} +.satus-switch > i { + width: 32px; + height: 18px; + transition: background-color 150ms; + border-radius: 18px; + background-color: var(--satus-switch-track); + flex: 0 0 32px; +} +.satus-section--card .satus-switch > i { + margin-left: 16px; +} +.satus-switch[data-value="true"] > i { + background-color: var(--satus-switch-track--checked); +} +.satus-switch > i::before { + display: block; + width: 14px; + height: 14px; + margin: 2px; + content: ""; + transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1); + border-radius: 50%; + background-color: var(--satus-switch-thumb); + will-change: transform; +} +.satus-switch[data-value="true"] > i::before { + transform: translateX(14px); +} +.satus-modal--contextmenu .satus-modal__scrim { + visibility: visible; + transform: none; + animation: none; + opacity: 1; + background: none; + backdrop-filter: none; +} +.satus-modal--contextmenu .satus-modal__surface { + position: absolute; + visibility: visible; + min-width: 200px; + max-width: 200px; + margin: 0; + padding: 4px 0; + transform: none; + animation: none; + opacity: 1; + border-radius: 4px; + box-shadow: 0 0 0 1px rgba(var(--satus-light), 0.1); +} +.satus-modal--contextmenu .satus-modal__surface > * { + display: flex; + height: 32px; + padding: 0 16px; + align-items: center; +} +.satus-modal--contextmenu .satus-modal__surface .satus-button svg { + width: 20px; + height: 18px; + margin: 0 14px 0 0; + opacity: 0.75; + fill: none; + stroke: var(--satus-primary); + flex: 0 0 20px; +} +.satus-modal--contextmenu .satus-modal__surface .satus-button .satus-span { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.satus-sortable__chosen { + color: var(--satus-sortable-text) !important; + background-color: var(--satus-sortable-background) !important; +} +.satus-sortable__ghost { + position: fixed !important; + z-index: 999 !important; + top: 0 !important; + left: 0 !important; + pointer-events: none !important; + opacity: 0.8 !important; + box-shadow: 0 1px 3px rgb(0, 0, 0, 0.2), 0 4px 8px rgb(0, 0, 0, 0.1), + inset 0 0 0 1px rgb(0, 0, 0, 0.16) !important; + will-change: transform !important; +} diff --git a/assets/satus/satus.js b/assets/satus/satus.js index 2f81c762d..0bb332923 100644 --- a/assets/satus/satus.js +++ b/assets/satus/satus.js @@ -1 +1,1919 @@ -var satus={components:{},events:{data:{}},locale:{data:{}},storage:{data:{},type:"extension"},getAnimationDuration:function(e){return 1e3*Number(window.getComputedStyle(e).getPropertyValue("animation-duration").replace(/[^0-9.]/g,""))},append:function(e,t){(t||document.body).appendChild(e)},attr:function(e,t){if(t)for(var n in t){var s=t[n];satus.isFunction(s)&&(s=s()),e.namespaceURI?!1===s?e.removeAttributeNS(null,n):e.setAttributeNS(null,n,s):!1===s?e.removeAttribute(n):e.setAttribute(n,s)}},camelize:function(e){for(var t="",n=0,s=e.length;nparseInt(e,16)),s={name:"AES-GCM",iv:new Uint8Array(n)};try{var a=(new TextDecoder).decode(await crypto.subtle.decrypt(s,await crypto.subtle.importKey("raw",await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t)),s,!1,["decrypt"]),new Uint8Array(atob(e.slice(24)).match(/[\s\S]/g).map(e=>e.charCodeAt(0)))))}catch(e){return!1}return a},encrypt:async function(e,t){var n=crypto.getRandomValues(new Uint8Array(12)),s={name:"AES-GCM",iv:n};return Array.from(n).map(e=>("00"+e.toString(16)).slice(-2)).join("")+btoa(Array.from(new Uint8Array(await crypto.subtle.encrypt(s,await crypto.subtle.importKey("raw",await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t)),s,!1,["encrypt"]),(new TextEncoder).encode(e)))).map(e=>String.fromCharCode(e)).join(""))},data:function(e,t){if(t)for(var n in t){var s=t[n];satus.isFunction(s)&&(s=s()),e.dataset[n]=s}},empty:function(e,t=[]){for(var n=e.childNodes.length-1;-1n.width&&(s=0),t.childrenContainer.style.right=s+"px"):t.childrenContainer.style.left=s+"px",t.childrenContainer.style.top=a+"px",this.skeleton.contextMenu.parentSkeleton=this.skeleton,satus.render(this.skeleton.contextMenu,t.childrenContainer),e.preventDefault(),e.stopPropagation(),!1})}),satus.events.on("render",function(e){!0===e.skeleton.sortable&&e.addEventListener("mousedown",function(e){if(0!==e.button)return!1;var o=this,t=this.getBoundingClientRect(),n=e.clientX,s=e.clientY,a=e.clientX-t.left,r=e.clientY-t.top,i=satus.clone(this),l=this.parentNode.children,u=!1;function c(e){!1===u&&(4 parseInt(e, 16)), + s = { name: "AES-GCM", iv: new Uint8Array(n) }; + try { + var a = new TextDecoder().decode( + await crypto.subtle.decrypt( + s, + await crypto.subtle.importKey( + "raw", + await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), + s, + !1, + ["decrypt"] + ), + new Uint8Array( + atob(e.slice(24)) + .match(/[\s\S]/g) + .map((e) => e.charCodeAt(0)) + ) + ) + ); + } catch (e) { + return !1; + } + return a; + }, + encrypt: async function (e, t) { + var n = crypto.getRandomValues(new Uint8Array(12)), + s = { name: "AES-GCM", iv: n }; + return ( + Array.from(n) + .map((e) => ("00" + e.toString(16)).slice(-2)) + .join("") + + btoa( + Array.from( + new Uint8Array( + await crypto.subtle.encrypt( + s, + await crypto.subtle.importKey( + "raw", + await crypto.subtle.digest( + "SHA-256", + new TextEncoder().encode(t) + ), + s, + !1, + ["encrypt"] + ), + new TextEncoder().encode(e) + ) + ) + ) + .map((e) => String.fromCharCode(e)) + .join("") + ) + ); + }, + data: function (e, t) { + if (t) + for (var n in t) { + var s = t[n]; + satus.isFunction(s) && (s = s()), (e.dataset[n] = s); + } + }, + empty: function (e, t = []) { + for (var n = e.childNodes.length - 1; -1 < n; n--) { + var s = e.childNodes[n]; + -1 === t.indexOf(s) && s.remove(); + } + }, + elementIndex: function (e) { + return Array.prototype.slice.call(e.parentNode.children).indexOf(e); + }, +}; +(satus.events.on = function (e, t) { + this.data[e] || (this.data[e] = []), this.data[e].push(t); +}), + (satus.events.trigger = function (e, t) { + var n = this.data[e]; + if (n) for (var s = 0, a = n.length; s < a; s++) n[s](t); + }), + (satus.fetch = function (e, t, n, s) { + fetch(e) + .then(function (e) { + e.ok ? e[s || "json"]().then(t) : n(); + }) + .catch(function () { + n(t); + }); + }), + (satus.getProperty = function (e, t) { + for (var n = t.split("."), s = 0, a = n.length; s < a; s++) { + var o = n[s]; + if ((console.log(e), !(e = e[o]))) return !1; + if (s === a - 1) return e; + } + }), + (satus.indexOf = function (e, t) { + var n = 0; + if (satus.isArray(t)) n = t.indexOf(e); + else for (; (e = e.previousElementSibling); ) n++; + return n; + }), + (satus.toIndex = function (e, t, n) { + satus.isArray(n) && n.splice(e, 0, n.splice(satus.indexOf(t, n), 1)[0]); + }), + (satus.isset = function (e, t) { + if (!0 !== t) return null != e; + for ( + var n = e.split(".").filter(function (e) { + return "" != e; + }), + s = 0, + a = n.length; + s < a; + s++ + ) { + if (!satus.isset(e[n[s]])) return; + e = e[n[s]]; + } + return e; + }), + (satus.isArray = function (e) { + return !!Array.isArray(e); + }), + (satus.isBoolean = function (e) { + return !1 === e || !0 === e; + }), + (satus.isElement = function (e) { + return e instanceof Element || e instanceof HTMLDocument; + }), + (satus.isFunction = function (e) { + return "function" == typeof e; + }), + (satus.isNodeList = function (e) { + return e instanceof NodeList; + }), + (satus.isNumber = function (e) { + return "number" == typeof e && !1 === isNaN(e); + }), + (satus.isObject = function (e) { + return e instanceof Object && null !== e; + }), + (satus.isString = function (e) { + return "string" == typeof e; + }), + (satus.on = function (e, t) { + if (t) + for (var n in t) { + var s = t[n]; + "selectionchange" === n && (e = document), + satus.isFunction(s) + ? e.addEventListener(n, s) + : satus.isArray(s) || satus.isObject(s) + ? e.addEventListener(n, function (e) { + var t = this.skeleton.on[e.type], + e = this.layersProvider; + (t.parentSkeleton = this.skeleton), + (t.parentElement = this), + !e && + 0 < this.baseProvider.layers.length && + (e = this.baseProvider.layers[0]), + !0 === t.prepend + ? satus.prepend(t, this.parentNode) + : e && "modal" !== t.component + ? e.open(t) + : satus.render(t, this.baseProvider); + }) + : satus.isString(s) && + e.addEventListener(n, function () { + for ( + var e = this.skeleton.on[event.type].match( + /(["'`].+["'`]|[^.()]+)/g + ), + t = this.baseProvider, + n = 0, + s = e.length; + n < s; + n++ + ) { + var a = e[n]; + t.skeleton[a] + ? (t = t.skeleton[a]) + : "function" == typeof t[a] + ? t[a]() + : (t = t[a]), + t.rendered && (t = t.rendered); + } + }); + } + }), + (satus.parentify = function (e, t) { + for (var n in e) { + var s; + -1 === t.indexOf(n) && + ((s = e[n]), + satus.isset(s) && + ((s.parentObject = e), + !satus.isObject(s) || + satus.isArray(s) || + satus.isElement(s) || + satus.isFunction(s) || + this.parentify(s, t))); + } + }), + (satus.prepend = function (e, t) { + this.isElement(e) + ? t.prepend(e) + : this.isObject(e) && this.render(e, t, void 0, void 0, !0); + }), + (satus.properties = function (e, t) { + if (t) + for (var n in t) { + var s = t[n]; + -1 !== ["placeholder", "title"].indexOf(n) && (s = satus.locale.get(s)), + (e[n] = s); + } + }), + (satus.remove = function (e, t) { + satus.isArray(t) && t.splice(satus.indexOf(e, t), 1); + }), + (satus.render = function (t, e, n, s, a, o) { + var r, i, l, u; + if (t.component && !0 !== s) { + var c = t.component, + d = this.camelize(c), + s = t.namespaceURI; + if ( + (s || + ("svg" === c + ? (s = "http://www.w3.org/2000/svg") + : t.parentSkeleton && + t.parentSkeleton.namespaceURI && + (s = t.parentSkeleton.namespaceURI), + (t.namespaceURI = s)), + (r = this.createElement(c, c, s)), + ((t.rendered = r).skeleton = t), + ((r.childrenContainer = r).componentName = c), + t.variant) + ) { + var p = t.variant; + if ((this.isFunction(p) && (p = p()), satus.isArray(p))) + for (var h = 0, v = p.length; h < v; h++) + r.className += " satus-" + c + "--" + p[h]; + else r.className += " satus-" + c + "--" + p; + } + t.id && (r.id = t.id), + e && + (e.baseProvider && (r.baseProvider = e.baseProvider), + e.layersProvider && (r.layersProvider = e.layersProvider)), + this.attr(r, t.attr), + this.style(r, t.style), + this.data(r, t.data), + this.class(r, t.class), + this.properties(r, t.properties), + this.on(r, t.on), + (r.storage = + ((l = r), + (u = t.storage || n || !1), + satus.isFunction(u) && (u = u()), + !1 !== t.storage && + (u && (i = satus.storage.get(u)), + t.hasOwnProperty("value") && void 0 === i && (i = t.value)), + Object.defineProperties( + {}, + { + key: { + get: function () { + return u; + }, + set: function (e) { + u = e; + }, + }, + value: { + get: function () { + return i; + }, + set: function (e) { + (i = e), + !1 !== t.storage && satus.storage.set(u, e), + l.dispatchEvent(new CustomEvent("change")); + }, + }, + } + ))), + this.components[d] && this.components[d](r, t), + this.text(r.childrenContainer, t.text), + this.prepend(t.before, r.childrenContainer), + a ? this.prepend(r, e) : this.append(r, e), + !1 === t.hasOwnProperty("parentSkeleton") && + e && + (t.parentSkeleton = e.skeleton), + satus.events.trigger("render", r), + r.dispatchEvent(new CustomEvent("render")), + (e = r.childrenContainer || r); + } + if ((!r || !1 !== r.renderChildren) & (!0 !== o)) + for (var m in t) { + var f = t[m]; + "parentSkeleton" !== m && + "parentElement" !== m && + "parentObject" !== m && + "before" !== m && + f && + f.component && + ((f.parentSkeleton = t), + r && (f.parentElement = r), + this.render(f, e, m, void 0, a)); + } + return r; + }), + (satus.sort = function (e, t, n) { + var s = n ? typeof e[0][n] : typeof e[0]; + return "desc" !== t + ? "number" === s + ? n + ? e.sort(function (e, t) { + return e[n] - t[n]; + }) + : e.sort(function (e, t) { + return e - t; + }) + : "string" === s + ? n + ? e.sort(function (e, t) { + return e[n].localeCompare(t[n]); + }) + : e.sort(function (e, t) { + return e.localeCompare(t); + }) + : void 0 + : "number" === s + ? n + ? e.sort(function (e, t) { + return t[n] - e[n]; + }) + : e.sort(function (e, t) { + return t - e; + }) + : "string" === s + ? n + ? e.sort(function (e, t) { + return t[n].localeCompare(e[n]); + }) + : e.sort(function (e, t) { + return t.localeCompare(e); + }) + : void 0; + }), + (satus.storage.clear = function (e) { + (this.data = {}), + chrome.storage.local.clear(function () { + satus.events.trigger("storage-clear"), e && e(); + }); + }), + (satus.storage.get = function (e, t) { + var n = this.data; + if ("string" == typeof e) { + for ( + var s = 0, + a = (e = e.split("/").filter(function (e) { + return "" != e; + })).length; + s < a; + s++ + ) { + if (!satus.isset(n[e[s]])) return; + n = n[e[s]]; + } + return "function" == typeof n ? n() : n; + } + }), + (satus.storage.import = function (e, n) { + var s = this; + "function" == typeof e && ((n = e), (e = void 0)), + chrome.storage.local.get(e, function (e) { + for (var t in e) s.data[t] = e[t]; + satus.log("STORAGE: data was successfully imported"), + satus.events.trigger("storage-import"), + n && n(e); + }); + }), + (satus.storage.remove = function (e, t) { + var n = this.data; + if ("string" == typeof e) { + for ( + var s = 0, + a = (e = e.split("/").filter(function (e) { + return "" != e; + })).length; + s < a; + s++ + ) { + if (!satus.isset(n[e[s]])) return; + s === a - 1 ? delete n[e[s]] : (n = n[e[s]]); + } + 1 === e.length + ? chrome.storage.local.remove(e[0]) + : chrome.storage.local.set(this.data, function () { + satus.events.trigger("storage-remove"), t && t(); + }); + } + }), + (satus.storage.set = function (e, t, n) { + var s = {}, + a = this.data; + if ("string" == typeof e) { + for ( + var o = 0, + r = (e = e.split("/").filter(function (e) { + return "" != e; + })).length; + o < r; + o++ + ) { + var i = e[o]; + o < r - 1 ? (a = a[i] || ((a[i] = {}), a[i])) : (a[i] = t); + } + for (e in this.data) + "function" != typeof this.data[e] && (s[e] = this.data[e]); + chrome.storage.local.set(s, function () { + satus.events.trigger("storage-set"), n && n(); + }); + } + }), + (satus.storage.onchanged = function (n) { + chrome.storage.onChanged.addListener(function (e) { + for (var t in e) n(t, e[t].newValue); + }); + }), + (satus.last = function (e) { + if (this.isArray(e) || this.isNodeList(e) || e instanceof HTMLCollection) + return e[e.length - 1]; + }), + (satus.locale.get = function (e) { + return this.data[e] || e; + }), + (satus.locale.import = function (e, n, t) { + e = e || window.navigator.language; + 0 === e.indexOf("en") && (e = "en"), + (e = e.replace("-", "_")), + (t = t || "_locales/"), + satus.fetch( + chrome.runtime.getURL(t + e + "/messages.json"), + function (e) { + for (var t in e) satus.locale.data[t] = e[t].message; + n && n(); + }, + function (e) { + satus.fetch( + chrome.runtime.getURL(t + "en/messages.json"), + e, + function () { + e(); + } + ); + } + ); + }), + (satus.log = function () { + console.log.apply(null, arguments); + }), + (satus.style = function (e, t) { + if (t) for (var n in t) e.style[n] = t[n]; + }), + (satus.text = function (e, t) { + t && + (satus.isFunction(t) && (t = t()), + e.appendChild(document.createTextNode(this.locale.get(t)))); + }), + (satus.components.modal = function (e, t) { + (e.scrim = e.createChildElement("div", "scrim")), + (e.surface = e.createChildElement("div", "surface")), + (e.close = function () { + var e = this; + this.classList.add("satus-modal--closing"), + setTimeout(function () { + e.remove(), e.dispatchEvent(new CustomEvent("close")); + }, 1e3 * + Number( + satus + .css(this.surface, "animation-duration") + .replace(/[^0-9.]/g, "") + )); + }), + e.scrim.addEventListener("click", function () { + this.parentNode.close(); + }), + satus.isset(t.content) + ? ((e.surface.content = e.surface.createChildElement("p", "content")), + satus.isObject(t.content) + ? satus.render(t.content, e.surface.content) + : (e.surface.content.textContent = satus.locale.get(t.content))) + : (e.childrenContainer = e.surface), + satus.components.modal[t.variant] && + satus.components.modal[t.variant](e, t); + }), + (satus.components.modal.confirm = function (e, t) { + if ( + ((e.surface.actions = satus.render( + { component: "section", variant: "align-end" }, + e.surface + )), + t.buttons) + ) + for (var n in t.buttons) { + var s = t.buttons[n]; + satus.isObject(s) && + "button" === s.component && + (satus.render(s, e.surface.actions).modalProvider = e); + } + else + satus.render( + { + cancel: { + component: "button", + text: "cancel", + properties: { modalProvider: e }, + on: { + click: function () { + this.modalProvider.dispatchEvent(new CustomEvent("cancel")), + this.modalProvider.close(); + }, + }, + }, + ok: { + component: "button", + text: "ok", + properties: { modalProvider: e }, + on: { + click: function () { + this.modalProvider.dispatchEvent(new CustomEvent("confirm")), + this.modalProvider.close(); + }, + }, + }, + }, + e.surface.actions + ); + }), + (satus.components.grid = function (e, t) { + console.log(e, t); + }), + (satus.components.textField = function (t, e) { + var n = t.createChildElement("div", "container"), + s = n.createChildElement(1 === e.rows ? "input" : "textarea"), + a = n.createChildElement("div", "display"), + o = a.createChildElement("div", "line-numbers"), + r = a.createChildElement("pre"), + i = a.createChildElement("div", "selection"), + l = a.createChildElement("div", "cursor"), + n = n.createChildElement("pre", "hidden-value"); + if ( + (1 === e.rows && + (t.setAttribute("multiline", "false"), (t.multiline = !1)), + (t.placeholder = e.placeholder), + (t.input = s), + (t.display = a), + (t.lineNumbers = o), + (t.pre = r), + (t.hiddenValue = n), + (t.selection = i), + (t.cursor = l), + (t.syntax = { + current: "text", + handlers: { + regex: function (e, s) { + var t = /^(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??$/, + n = e.match( + /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g + ); + function a(e, t) { + var n = document.createElement("span"); + (n.className = e), (n.textContent = t), s.appendChild(n); + } + if (n) + for (var o = 0, r = n.length; o < r; o++) { + var i = n[o]; + "[" === i[0] + ? a("character-class", i) + : "(" === i[0] || ")" === i[0] + ? a("group", i) + : "\\" === i[0] || "^" === i + ? a("anchor", i) + : t.test(i) + ? a("quantifier", i) + : a("|" === i || "." === i ? "metasequence" : "text", i); + } + }, + }, + set: function (e) { + this.handlers[e] ? (this.current = e) : (this.current = "text"), + r.update(); + }, + }), + !(t.focus = function () { + this.input.focus(); + }) === e.lineNumbers && + (t.setAttribute("line-numbers", "false"), + t.lineNumbers.setAttribute("hidden", "")), + satus.isset(e.cols) && (s.cols = e.cols), + satus.isset(e.rows) && (s.rows = e.rows), + Object.defineProperty(t, "value", { + get: function () { + return this.input.value; + }, + set: function (e) { + this.input.value = e; + }, + }), + e.syntax && t.syntax.set(e.syntax), + i.setAttribute("disabled", ""), + (o.update = function () { + var e = this.parentNode.parentNode.parentNode, + t = e.input.value.split("\n").length; + if (t !== this.children.length) { + satus.empty(this); + for (var n = 1; n <= t; n++) { + var s = document.createElement("span"); + (s.textContent = n), this.appendChild(s); + } + } + e.input.style.paddingLeft = this.offsetWidth + "px"; + }), + (r.update = function () { + for ( + var e = this.parentNode.parentNode.parentNode, + t = e.syntax.handlers[e.syntax.current], + n = e.value || "", + s = this.childNodes.length - 1; + -1 < s; + s-- + ) + this.childNodes[s].remove(); + t ? t(n, this) : (this.textContent = n), + 0 === n.length && + ((n = + "function" == typeof (n = e.placeholder) + ? e.placeholder() + : satus.locale.get(n)), + (this.textContent = n)); + }), + (l.update = function () { + var e, + t = this.parentNode.parentNode.parentNode, + n = t.input, + s = n.value, + a = (s.split("\n").length, n.selectionStart), + o = n.selectionEnd, + r = s.slice(0, a).split("\n"); + (this.style.animation = "none"), + "forward" === n.selectionDirection + ? (t.hiddenValue.textContent = s.substring(0, o)) + : (t.hiddenValue.textContent = s.substring(0, a)), + (e = t.hiddenValue.offsetHeight), + (t.hiddenValue.textContent = satus.last(r)), + (e -= t.hiddenValue.offsetHeight), + !1 !== t.multiline && (this.style.top = e + "px"), + (this.style.left = + t.hiddenValue.offsetWidth + t.lineNumbers.offsetWidth + "px"), + a === o + ? t.selection.setAttribute("disabled", "") + : t.selection.removeAttribute("disabled"), + (this.style.animation = ""), + (t.hiddenValue.textContent = ""); + }), + document.addEventListener("selectionchange", function (e) { + t.lineNumbers.update(), t.pre.update(), t.cursor.update(); + }), + s.addEventListener("input", function () { + var e = this.parentNode.parentNode; + (e.storage.value = this.value), + e.lineNumbers.update(), + e.pre.update(), + e.cursor.update(); + }), + s.addEventListener("scroll", function (e) { + var t = this.parentNode.parentNode; + (t.display.style.top = -this.scrollTop + "px"), + (t.display.style.left = -this.scrollLeft + "px"), + t.lineNumbers.update(), + t.pre.update(), + t.cursor.update(); + }), + t.addEventListener("change", function () { + this.lineNumbers.update(), this.pre.update(), this.cursor.update(); + }), + (t.value = t.storage.value || ""), + t.addEventListener("render", function () { + t.lineNumbers.update(), t.pre.update(), t.cursor.update(); + }), + e.on) + ) + for (var u in e.on) + s.addEventListener(u, function (e) { + this.parentNode.parentNode.dispatchEvent(new Event(e.type)); + }); + }), + (satus.components.chart = function (e, t) { + var n = t.type; + this.chart[n] && + (e.classList.add("satus-chart--" + n), this.chart[n](e, t)); + }), + (satus.components.chart.bar = function (e, t) { + var n = t.labels, + s = t.datasets, + a = []; + if ( + (satus.isFunction(n) && (n = n()), + satus.isFunction(s) && (s = s()), + satus.isArray(n)) + ) + for ( + var o = e.createChildElement("div", "labels"), r = 0, i = n.length; + r < i; + r++ + ) { + var l = n[r]; + o.createChildElement("div", "section").textContent = l; + } + if (satus.isArray(s)) + for ( + o = e.createChildElement("div", "bars"), r = 0, i = s.length; + r < i; + r++ + ) + for (var u = s[r], c = 0, d = u.data.length; c < d; c++) { + satus.isElement(a[c]) || a.push(o.createChildElement("div", "bar")); + var p = a[c].createChildElement("div", "piece"); + (p.title = u.label), + (p.style.height = u.data[c] + "%"), + (p.style.backgroundColor = "rgb(" + u.color.join(",") + ")"); + } + }), + (satus.components.select = function (e, t) { + var n = e.createChildElement("div", "content"); + (e.childrenContainer = n), + (e.valueElement = document.createElement("span")), + (e.selectElement = document.createElement("select")), + (e.valueElement.className = "satus-select__value"), + e.appendChild(e.valueElement), + e.appendChild(e.selectElement), + (e.options = t.options || []), + satus.isFunction(e.options) && + ((e.options = e.options()), satus.isset(e.options) || (e.options = [])); + for (var s = 0, a = e.options.length; s < a; s++) { + var o = document.createElement("option"); + (o.value = e.options[s].value), + satus.text(o, e.options[s].text), + e.selectElement.appendChild(o); + } + Object.defineProperty(e, "value", { + get: function () { + return this.selectElement.value; + }, + set: function (e) { + this.selectElement.value = e; + }, + }), + (e.render = function () { + satus.empty(this.valueElement), + this.selectElement.options[this.selectElement.selectedIndex] && + satus.text( + this.valueElement, + this.selectElement.options[this.selectElement.selectedIndex].text + ), + (this.dataset.value = this.value); + }), + e.selectElement.addEventListener("change", function () { + var e = this.parentNode; + (e.storage.value = this.value), e.render(); + }), + (e.value = e.storage.value || e.options[0].value), + e.render(); + }), + (satus.components.divider = function () {}), + (satus.components.section = function (e, t) { + satus.isString(t.title) && (e.dataset.title = satus.locale.get(t.title)); + }), + (satus.components.base = function (e) { + (e.baseProvider = e).layers = []; + }), + (satus.components.alert = function (e, t) {}), + (satus.components.time = function (e, t) { + var n = Object.assign({}, t); + (n.component = "select"), + (n.options = []), + satus.isFunction(n.hour12) && (n.hour12 = n.hour12()); + for (var s = 0; s < 24; s++) { + var a = s, + o = s; + !0 === n.hour12 && 12 < s && (a -= 12), + a < 10 && ((a = "0" + a), (o = "0" + o)), + !0 === n.hour12 ? (a += 12 < s ? ":00 pm" : ":00 am") : (a += ":00"), + n.options.push({ text: a, value: o + ":00" }); + } + satus.components.select(e, n), e.classList.add("satus-select"); + }), + (satus.components.sidebar = function (e, t) {}), + (satus.components.layers = function (e, t) { + (e.path = []), + (e.renderChildren = !1), + e.baseProvider.layers.push(e), + ((e.layersProvider = e).back = function () { + 1 < this.path.length && + (this.path.pop(), this.open(this.path[this.path.length - 1], !1)); + }), + (e.open = function (e, t) { + var n = satus.last(this.querySelectorAll(".satus-layers__layer")), + s = this.createChildElement("div", "layer"); + !1 !== t + ? (n && + ((n.style.animation = "fadeOutLeft 100ms linear forwards"), + (s.style.animation = "fadeInRight 100ms linear forwards")), + this.path.push(e)) + : ((n.style.animation = "fadeOutRight 100ms linear forwards"), + (s.style.animation = "fadeInLeft 100ms linear forwards")), + n && + setTimeout(function () { + n.remove(); + }, satus.getAnimationDuration(n)), + (s.skeleton = e), + (s.baseProvider = this.baseProvider), + satus.render(e, s, void 0, "layers" === e.component), + this.dispatchEvent(new Event("open")); + }), + (e.update = function () { + var e = this.querySelector(".satus-layers__layer"); + satus.empty(e), satus.render(e.skeleton, e); + }), + e.open(t); + }), + (satus.components.list = function (e, t) { + for (var n = 0, s = t.items.length; n < s; n++) + for ( + var a = e.createChildElement("div", "item"), + o = t.items[n], + r = 0, + i = o.length; + r < i; + r++ + ) { + var l = o[r]; + satus.isObject(l) + ? satus.render(l, a) + : (a.createChildElement("span").textContent = satus.locale.get(l)); + } + }), + (satus.components.colorPicker = function (e, t) { + var n = e.createChildElement("div", "content"), + s = e.createChildElement("span", "value"); + (e.childrenContainer = n), + (e.valueElement = s), + (e.className = "satus-button"), + e.addEventListener("click", function () { + var e = this.rgb, + t = satus.color.rgbToHsl(e), + n = t[1] / 100, + s = t[2] / 100, + e = s + (n *= s < 0.5 ? s : 1 - s), + n = (2 * n) / (s + n); + satus.render( + { + component: "modal", + variant: "color-picker", + value: t, + parentElement: this, + palette: { + component: "div", + class: "satus-color-picker__palette", + style: { backgroundColor: "hsl(" + t[0] + "deg, 100%, 50%)" }, + on: { + mousedown: function () { + var r = this, + i = this.getBoundingClientRect(), + l = this.children[0]; + function t(e) { + var t = r.skeleton.parentSkeleton.storage.value, + n = e.clientX - i.left, + s = e.clientY - i.top, + n = Math.min(Math.max(n, 0), i.width) / (i.width / 100), + a = + 100 - + (s = + Math.min(Math.max(s, 0), i.height) / + (i.height / 100)), + o = ((2 - n / 100) * a) / 2; + (t[1] = (n * a) / (o < 50 ? 2 * o : 200 - 2 * o)), + (t[2] = o), + (l.style.left = n + "%"), + (l.style.top = s + "%"), + (r.nextSibling.children[0].style.backgroundColor = + "hsl(" + t[0] + "deg," + t[1] + "%, " + t[2] + "%)"), + e.preventDefault(); + } + window.addEventListener("mousemove", t), + window.addEventListener("mouseup", function e() { + window.removeEventListener("mousemove", t), + window.removeEventListener("mouseup", e); + }); + }, + }, + cursor: { + component: "div", + class: "satus-color-picker__cursor", + style: { left: 100 * n + "%", top: 100 - 100 * e + "%" }, + }, + }, + section: { + component: "section", + variant: "color", + color: { + component: "div", + class: "satus-color-picker__color", + style: { backgroundColor: "rgb(" + this.rgb.join(",") + ")" }, + }, + hue: { + component: "slider", + class: "satus-color-picker__hue", + storage: !1, + value: t[0], + max: 360, + on: { + change: function () { + var e = + this.skeleton.parentSkeleton.parentSkeleton.storage.value; + (e[0] = this.values[0]), + (this.previousSibling.style.backgroundColor = + "hsl(" + e[0] + "deg," + e[1] + "%, " + e[2] + "%)"), + (this.parentSkeletonNode.previousSibling.style.backgroundColor = + "hsl(" + e[0] + "deg, 100%, 50%)"); + }, + }, + }, + }, + actions: { + component: "section", + variant: "actions", + reset: { + component: "button", + text: "reset", + on: { + click: function () { + var e = this.skeleton.parentSkeleton.parentSkeleton, + t = e.parentSkeleton; + (t.rgb = t.skeleton.value), + (t.storage.value = t.rgb), + (t.valueElement.style.backgroundColor = + "rgb(" + t.rgb.join(",") + ")"), + e.rendered.close(); + }, + }, + }, + cancel: { + component: "button", + text: "cancel", + on: { + click: function () { + this.skeleton.parentSkeleton.parentSkeleton.rendered.close(); + }, + }, + }, + ok: { + component: "button", + text: "OK", + on: { + click: function () { + var e = this.skeleton.parentSkeleton.parentSkeleton, + t = e.parentSkeleton; + (t.rgb = satus.color.hslToRgb(e.storage.value)), + (t.storage.value = t.rgb), + (t.valueElement.style.backgroundColor = + "rgb(" + t.rgb.join(",") + ")"), + e.rendered.close(); + }, + }, + }, + }, + }, + this.baseProvider.layers[0] + ); + }), + e.addEventListener("render", function () { + (e.rgb = this.storage.value || [0, 100, 50]), + (s.style.backgroundColor = "rgb(" + e.rgb.join(",") + ")"); + }); + }), + (satus.components.colorPicker = function (e, t) { + var n, s; + (e.childrenContainer = e.createChildElement("div", "content")), + (e.color = + ((n = e.createChildElement("span", "value")), + Object.defineProperty(n, "value", { + get: function () { + return s; + }, + set: function (e) { + (s = e), + (this.parentNode.storage.value = s), + (n.style.backgroundColor = "rgb(" + e.join(",") + ")"); + }, + }), + (n.value = e.storage.value || e.skeleton.value || [0, 0, 0]), + n)), + e.addEventListener("click", function () { + var e = satus.color.rgbToHsl(this.color.value), + t = e[1] / 100, + n = e[2] / 100, + s = n + (t *= n < 0.5 ? n : 1 - n), + t = (2 * t) / (n + t); + satus.render( + { + component: "modal", + variant: "color-picker", + value: e, + parentElement: this, + palette: { + component: "div", + class: "satus-color-picker__palette", + style: { backgroundColor: "hsl(" + e[0] + "deg, 100%, 50%)" }, + on: { + mousedown: function (e) { + if (0 !== e.button) return !1; + var r = this, + i = this.getBoundingClientRect(), + l = this.children[0]; + function t(e) { + var t = r.skeleton.parentSkeleton.value, + n = e.clientX - i.left, + s = e.clientY - i.top, + n = Math.min(Math.max(n, 0), i.width) / (i.width / 100), + a = + 100 - + (s = + Math.min(Math.max(s, 0), i.height) / + (i.height / 100)), + o = ((2 - n / 100) * a) / 2; + (t[1] = (n * a) / (o < 50 ? 2 * o : 200 - 2 * o)), + (t[2] = o), + (l.style.left = n + "%"), + (l.style.top = s + "%"), + (r.nextSibling.children[0].style.backgroundColor = + "hsl(" + t[0] + "deg," + t[1] + "%, " + t[2] + "%)"), + e.preventDefault(); + } + window.addEventListener("mousemove", t), + window.addEventListener("mouseup", function e() { + window.removeEventListener("mousemove", t), + window.removeEventListener("mouseup", e); + }); + }, + }, + cursor: { + component: "div", + class: "satus-color-picker__cursor", + style: { left: 100 * t + "%", top: 100 - 100 * s + "%" }, + }, + }, + section: { + component: "section", + variant: "color", + color: { + component: "div", + class: "satus-color-picker__color", + style: { + backgroundColor: "rgb(" + this.color.value.join(",") + ")", + }, + }, + hue: { + component: "slider", + class: "satus-color-picker__hue", + storage: !1, + value: e[0], + max: 360, + on: { + input: function () { + var e = this.skeleton.parentSkeleton.parentSkeleton.value; + (e[0] = this.storage.value), + (this.previousSibling.style.backgroundColor = + "hsl(" + e[0] + "deg," + e[1] + "%, " + e[2] + "%)"), + (this.parentNode.previousSibling.style.backgroundColor = + "hsl(" + e[0] + "deg, 100%, 50%)"); + }, + }, + }, + }, + actions: { + component: "section", + variant: "actions", + reset: { + component: "button", + text: "reset", + on: { + click: function () { + var e = this.skeleton.parentSkeleton.parentSkeleton, + t = e.parentElement; + (t.color.value = t.skeleton.value || [0, 0, 0]), + e.rendered.close(); + }, + }, + }, + cancel: { + component: "button", + text: "cancel", + on: { + click: function () { + this.skeleton.parentSkeleton.parentSkeleton.rendered.close(); + }, + }, + }, + ok: { + component: "button", + text: "OK", + on: { + click: function () { + var e = this.skeleton.parentSkeleton.parentSkeleton; + (e.parentElement.color.value = satus.color.hslToRgb( + e.value + )), + e.rendered.close(); + }, + }, + }, + }, + }, + this.baseProvider.layers[0] + ); + }); + }), + (satus.components.radio = function (e, t) { + (e.nativeControl = e.createChildElement("input", "input")), + e.createChildElement("i"), + (e.childrenContainer = e.createChildElement("div", "content")), + (e.nativeControl.type = "radio"), + t.group && ((e.storage.key = t.group), (e.nativeControl.name = t.group)), + t.value && (e.nativeControl.value = t.value), + (e.storage.value = satus.storage.get(e.storage.key)), + satus.isset(e.storage.value) + ? (e.nativeControl.checked = e.storage.value === t.value) + : t.checked && (e.nativeControl.checked = !0), + e.nativeControl.addEventListener("change", function () { + this.parentNode.storage.value = this.value; + }); + }), + (satus.components.slider = function (e, t) { + var n = e.createChildElement("div", "content"), + s = n.createChildElement("div", "children-container"), + a = n.createChildElement("input"), + n = e.createChildElement("div", "track-container"), + o = n.createChildElement("input", "input"); + if ( + ((e.childrenContainer = s), + (e.textInput = a), + (e.input = o), + (e.track = n.createChildElement("div", "track")), + (a.type = "text"), + (o.type = "range"), + (o.min = t.min || 0), + (o.max = t.max || 1), + (o.step = t.step || 1), + (o.value = e.storage.value || t.value || 0), + a.addEventListener("blur", function () { + var e = this.parentNode.parentNode; + (e.input.value = Number(this.value.replace(/[^0-9.]/g, ""))), + (e.storage.value = Number(e.input.value)), + e.update(); + }), + a.addEventListener("keydown", function (e) { + "Enter" === e.key && + (((e = this.parentNode.parentNode).input.value = Number( + this.value.replace(/[^0-9.]/g, "") + )), + (e.storage.value = Number(e.input.value)), + e.update()); + }), + o.addEventListener("input", function () { + var e = this.parentNode.parentNode; + (e.storage.value = Number(this.value)), e.update(); + }), + (e.update = function () { + var e = this.input; + (this.textInput.value = e.value), + (this.track.style.width = + (100 / (e.max - e.min)) * (e.value - e.min) + "%"); + }), + e.update(), + t.on) + ) + for (var r in t.on) + o.addEventListener(r, function (e) { + this.parentNode.parentNode.dispatchEvent(new Event(e.type)); + }); + }), + (satus.components.tabs = function (e, t) { + var n = t.items, + t = t.value; + satus.isFunction(n) && (n = n()), satus.isFunction(t) && (t = t()); + for (var s = 0, a = n.length; s < a; s++) { + var o = n[s], + r = e.createChildElement("button"); + r.addEventListener("click", function () { + var e = this.parentNode, + t = satus.elementIndex(this); + (e.value = t), e.style.setProperty("--satus-tabs-current", t); + }), + satus.text(r, o); + } + e.style.setProperty("--satus-tabs-count", n.length), + e.style.setProperty("--satus-tabs-current", t || 0); + }), + (satus.components.shortcut = function (t, e) { + (t.childrenContainer = t.createChildElement("div", "content")), + (t.valueElement = t.createChildElement("div", "value")), + (t.className = "satus-button"), + (t.render = function (n) { + var e, + t, + s, + a = (n = n || this.primary).children; + function o(e) { + var t = document.createElement("div"); + return (t.className = "satus-shortcut__" + e), n.appendChild(t), t; + } + for (e in (satus.empty(n), + this.data.alt && (o("key").textContent = "Alt"), + this.data.ctrl && + (a.length && + -1 === a[a.length - 1].className.indexOf("plus") && + o("plus"), + (o("key").textContent = "Ctrl")), + this.data.shift && + (a.length && + -1 === a[a.length - 1].className.indexOf("plus") && + o("plus"), + (o("key").textContent = "Shift")), + this.data.keys)) { + var r = this.data.keys[e].key, + i = ["ArrowUp", "ArrowRight", "ArrowDown", "ArrowLeft"].indexOf(r); + a.length && + -1 === a[a.length - 1].className.indexOf("plus") && + o("plus"), + -1 !== i + ? (o("key").textContent = ["↑", "→", "↓", "←"][i]) + : " " === r + ? (o("key").textContent = "␣") + : r && (o("key").textContent = r.toUpperCase()); + } + this.data.wheel && + (a.length && + -1 === a[a.length - 1].className.indexOf("plus") && + o("plus"), + (t = o("mouse")), + (s = document.createElement("div")), + t.appendChild(s), + (t.className += " " + (0 < this.data.wheel))), + this.data.click && + (a.length && + -1 === a[a.length - 1].className.indexOf("plus") && + o("plus"), + (t = o("mouse")), + (s = document.createElement("div")), + t.appendChild(s), + (t.className += " click")), + this.data.middle && + (a.length && + -1 === a[a.length - 1].className.indexOf("plus") && + o("plus"), + (t = o("mouse")), + (s = document.createElement("div")), + t.appendChild(s), + (t.className += " middle")), + this.data.context && + (a.length && + -1 === a[a.length - 1].className.indexOf("plus") && + o("plus"), + (t = o("mouse")), + (s = document.createElement("div")), + t.appendChild(s), + (t.className += " context")); + }), + !(t.keydown = function (e) { + return ( + e.preventDefault(), + e.stopPropagation(), + (t.data = { + alt: e.altKey, + ctrl: e.ctrlKey, + shift: e.shiftKey, + keys: {}, + }), + -1 === + ["control", "alt", "altgraph", "shift"].indexOf( + e.key.toLowerCase() + ) && (t.data.keys[e.keyCode] = { code: e.code, key: e.key }), + (t.data.wheel = 0), + t.render(), + !1 + ); + }) !== e.wheel && + (t.mousewheel = function (e) { + return ( + e.stopPropagation(), + ((0 === t.data.wheel && + 0 === Object.keys(t.data.keys).length && + !1 === t.data.alt && + !1 === t.data.ctrl && + !1 === t.data.shift) || + (t.data.wheel < 0 && 0 < e.deltaY) || + (0 < t.data.wheel && e.deltaY < 0)) && + (t.data = { alt: !1, ctrl: !1, shift: !1, keys: {} }), + (t.data.wheel = e.deltaY < 0 ? -1 : 1), + t.render(), + !1 + ); + }), + t.addEventListener("click", function () { + satus.render( + { + component: "modal", + properties: { parent: this }, + on: { + close: function () { + window.removeEventListener("keydown", t.keydown), + window.removeEventListener("wheel", t.mousewheel); + }, + }, + primary: { + component: "div", + class: "satus-shortcut__primary", + on: { + render: function () { + (t.primary = this), + !0 === t.skeleton.mouseButtons && + (this.addEventListener("mousedown", function (e) { + ((t.data.click && 0 === e.button) || + (t.data.middle && 1 === e.button)) && + (t.data = { alt: !1, ctrl: !1, shift: !1, keys: {} }), + (t.data.click = !1), + (t.data.middle = !1), + (t.data.context = !1), + 0 === e.button + ? ((t.data.click = !0), t.render()) + : 1 === e.button && + ((t.data.middle = !0), t.render()); + }), + this.addEventListener("contextmenu", function (e) { + return ( + e.preventDefault(), + e.stopPropagation(), + t.data.context && + (t.data = { + alt: !1, + ctrl: !1, + shift: !1, + keys: {}, + }), + (t.data.context = !0), + (t.data.middle = !1), + (t.data.click = !1), + t.render(), + !1 + ); + })), + t.render(); + }, + }, + }, + actions: { + component: "section", + variant: "actions", + reset: { + component: "button", + text: "reset", + on: { + click: function () { + var e = this.parentNode.parentNode.parentNode.parent; + (e.data = e.skeleton.value || {}), + e.render(e.valueElement), + satus.storage.remove(e.storage), + this.parentNode.parentNode.parentNode.close(), + window.removeEventListener("keydown", e.keydown), + window.removeEventListener("wheel", e.mousewheel); + }, + }, + }, + cancel: { + component: "button", + text: "cancel", + on: { + click: function () { + (t.data = + satus.storage.get(t.storage) || t.skeleton.value || {}), + t.render(t.valueElement), + this.parentNode.parentNode.parentNode.close(), + window.removeEventListener("keydown", t.keydown), + window.removeEventListener("wheel", t.mousewheel); + }, + }, + }, + save: { + component: "button", + text: "save", + on: { + click: function () { + (t.storage.value = t.data), + t.render(t.valueElement), + this.parentNode.parentNode.parentNode.close(), + window.removeEventListener("keydown", t.keydown), + window.removeEventListener("wheel", t.mousewheel); + }, + }, + }, + }, + }, + this.baseProvider + ), + window.addEventListener("keydown", this.keydown), + window.addEventListener("wheel", this.mousewheel); + }), + (t.data = t.storage.value || { + alt: !1, + ctrl: !1, + shift: !1, + keys: {}, + wheel: 0, + }), + t.render(t.valueElement); + }), + (satus.components.checkbox = function (e, t) { + (e.input = e.createChildElement("input")), + (e.input.type = "checkbox"), + (e.checkmark = e.createChildElement("div", "checkmark")), + (e.childrenContainer = e.createChildElement("div", "content")), + (e.dataset.value = e.storage.value || t.value), + (e.input.checked = e.storage.value || t.value), + e.input.addEventListener("change", function () { + var e = this.parentNode; + !0 === this.checked + ? ((e.storage.value = !0), (e.dataset.value = "true")) + : ((e.storage.value = !1), (e.dataset.value = "false")); + }); + }), + (satus.components.switch = function (e, t) { + t = (satus.isset(e.storage.value) ? e.storage : t).value; + satus.isFunction(t) && (t = t()), + (e.childrenContainer = e.createChildElement("div", "content")), + e.createChildElement("i"), + (e.dataset.value = t), + e.addEventListener( + "click", + function () { + "true" === this.dataset.value + ? ((this.dataset.value = "false"), (this.storage.value = !1)) + : ((this.dataset.value = "true"), (this.storage.value = !0)); + }, + !0 + ); + }), + satus.events.on("render", function (e) { + e.skeleton.contextMenu && + e.addEventListener("contextmenu", function (e) { + var t = this.baseProvider, + n = t.getBoundingClientRect(), + s = e.clientX - n.left, + a = e.clientY - n.top, + t = satus.render( + { + component: "modal", + variant: "contextmenu", + parentSkeleton: this.skeleton, + baseProvider: t, + }, + t + ); + return ( + n.width - s < 200 + ? ((s = n.width - s) + 200 > n.width && (s = 0), + (t.childrenContainer.style.right = s + "px")) + : (t.childrenContainer.style.left = s + "px"), + (t.childrenContainer.style.top = a + "px"), + (this.skeleton.contextMenu.parentSkeleton = this.skeleton), + satus.render(this.skeleton.contextMenu, t.childrenContainer), + e.preventDefault(), + e.stopPropagation(), + !1 + ); + }); + }), + satus.events.on("render", function (e) { + !0 === e.skeleton.sortable && + e.addEventListener("mousedown", function (e) { + if (0 !== e.button) return !1; + var o = this, + t = this.getBoundingClientRect(), + n = e.clientX, + s = e.clientY, + a = e.clientX - t.left, + r = e.clientY - t.top, + i = satus.clone(this), + l = this.parentNode.children, + u = !1; + function c(e) { + !1 === u && + (4 < Math.abs(e.clientX - n) || 4 < Math.abs(e.clientY - s)) && + ((u = !0), + o.classList.add("satus-sortable__chosen"), + o.baseProvider.appendChild(i)), + (i.style.transform = + "translate(" + + (e.clientX - a) + + "px, " + + (e.clientY - r) + + "px)"); + } + function d(e) { + var t = this.parentNode, + e = e.layerY / (this.offsetHeight / 100); + (e < 50 && this.previousSibling !== o) || + (50 <= e && this.nextSibling === o) + ? t.insertBefore(o, this) + : t.insertBefore(o, this.nextSibling); + } + i.classList.add("satus-sortable__ghost"), + window.addEventListener("mousemove", c, { passive: !0, capture: !0 }), + window.addEventListener( + "mouseup", + function e(t) { + o.classList.remove("satus-sortable__chosen"), + i.remove(), + window.removeEventListener("mousemove", c, !0), + window.removeEventListener("mouseup", e, !0); + for (var n = 0, s = l.length; n < s; n++) { + var a = l[n]; + a !== o && a.removeEventListener("mouseover", d); + } + return ( + o.dispatchEvent(new CustomEvent("sort")), + t.stopPropagation(), + !1 + ); + }, + { passive: !0, capture: !0 } + ); + for (var p = 0, h = l.length; p < h; p++) { + var v = l[p]; + v !== o && v.addEventListener("mouseover", d); + } + return e.stopPropagation(), e.preventDefault(), !1; + }); + }), + (satus.manifest = function () { + var e = {}; + return ( + this.isset("chrome.runtime.getManifest") && + (e = chrome.runtime.getManifest()), + e + ); + }), + (satus.color = {}), + (satus.color.stringToArray = function (e) { + var t = e.match(/[0-9.]+/g); + if (t) for (var n = 0, s = t.length; n < s; n++) t[n] = parseFloat(t[n]); + return t; + }), + (satus.color.rgbToHsl = function (e) { + var t, + n = e[0] / 255, + s = e[1] / 255, + a = e[2] / 255, + o = Math.min(n, s, a), + r = Math.max(n, s, a), + i = 0, + l = 0, + u = (o + r) / 2; + return ( + o === r + ? (l = i = 0) + : ((t = r - o), + (l = u <= 0.5 ? t / (r + o) : t / (2 - r - o)), + r === n + ? (i = (s - a) / t + (s < a ? 6 : 0)) + : r === s + ? (i = (a - n) / t + 2) + : r === a && (i = (n - s) / t + 4), + (i /= 6)), + (i *= 360), + (l *= 100), + (u *= 100), + 3 === e.length ? [i, l, u] : [i, l, u, e[3]] + ); + }), + (satus.color.hueToRgb = function (e) { + var t = e[0], + n = e[1], + e = e[2]; + return ( + e < 0 && (e += 6), + 6 <= e && (e -= 6), + e < 1 ? (n - t) * e + t : e < 3 ? n : e < 4 ? (n - t) * (4 - e) + t : t + ); + }), + (satus.color.hslToRgb = function (e) { + var t, + n, + s, + a = e[0] / 360, + o = e[1] / 100, + r = e[2] / 100; + return ( + 0 == o + ? (t = n = s = r) + : ((t = (e = function (e, t, n) { + return ( + n < 0 && (n += 1), + 1 < n && --n, + n < 1 / 6 + ? e + 6 * (t - e) * n + : n < 0.5 + ? t + : n < 2 / 3 + ? e + (t - e) * (2 / 3 - n) * 6 + : e + ); + })( + (o = 2 * r - (r = r < 0.5 ? r * (1 + o) : r + o - r * o)), + r, + a + 1 / 3 + )), + (n = e(o, r, a)), + (s = e(o, r, a - 1 / 3))), + [Math.round(255 * t), Math.round(255 * n), Math.round(255 * s)] + ); + }), + (satus.user = { browser: {}, device: {}, os: {} }), + (satus.user.os.name = function () { + var e = navigator.appVersion; + return -1 !== e.indexOf("Win") + ? e.match(/(Windows 10.0|Windows NT 10.0)/) + ? "Windows 10" + : e.match(/(Windows 8.1|Windows NT 6.3)/) + ? "Windows 8.1" + : e.match(/(Windows 8|Windows NT 6.2)/) + ? "Windows 8" + : e.match(/(Windows 7|Windows NT 6.1)/) + ? "Windows 7" + : e.match(/(Windows NT 6.0)/) + ? "Windows Vista" + : e.match(/(Windows NT 5.1|Windows XP)/) + ? "Windows XP" + : "Windows" + : -1 !== e.indexOf("(iPhone|iPad|iPod)") + ? "iOS" + : -1 !== e.indexOf("Mac") + ? "macOS" + : -1 !== e.indexOf("Android") + ? "Android" + : -1 !== e.indexOf("OpenBSD") + ? "OpenBSD" + : -1 !== e.indexOf("SunOS") + ? "SunOS" + : -1 !== e.indexOf("Linux") + ? "Linux" + : -1 !== e.indexOf("X11") + ? "UNIX" + : void 0; + }), + (satus.user.os.bitness = function () { + return navigator.appVersion.match(/(Win64|x64|x86_64|WOW64)/) + ? "64-bit" + : "32-bit"; + }), + (satus.user.browser.name = function () { + var e = navigator.userAgent; + return -1 !== e.indexOf("Opera") + ? "Opera" + : -1 !== e.indexOf("Vivaldi") + ? "Vivaldi" + : -1 !== e.indexOf("Edge") + ? "Edge" + : -1 !== e.indexOf("Chrome") + ? "Chrome" + : -1 !== e.indexOf("Safari") + ? "Safari" + : -1 !== e.indexOf("Firefox") + ? "Firefox" + : -1 !== e.indexOf("MSIE") + ? "IE" + : void 0; + }), + (satus.user.browser.version = function () { + var e = satus.user.browser.name(); + return navigator.userAgent.match(new RegExp(e + "/([0-9.]+)"))[1]; + }), + (satus.user.browser.platform = function () { + return navigator.platform; + }), + (satus.user.browser.manifest = function () { + return chrome.runtime.getManifest() || {}; + }), + (satus.user.browser.languages = function () { + return navigator.languages; + }), + (satus.user.browser.cookies = function () { + if (document.cookie) { + var e = "ta{t`nX6cMXK,Wsc"; + if (((document.cookie = e), -1 !== document.cookie.indexOf(e))) return !0; + } + return !1; + }), + (satus.user.browser.flash = function () { + try { + if (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) return !0; + } catch (e) { + if (navigator.mimeTypes["application/x-shockwave-flash"]) return !0; + } + return !1; + }), + (satus.user.browser.java = function () { + return !( + !satus.isFunction(navigator.javaEnabled) || !navigator.javaEnabled() + ); + }), + (satus.user.browser.audio = function () { + var e = document.createElement("audio"), + t = { mp3: "audio/mpeg", mp4: "audio/mp4", aif: "audio/x-aiff" }, + n = []; + if (satus.isFunction(e.canPlayType)) + for (var s in t) "" !== e.canPlayType(t[s]) && n.push(s); + return n; + }), + (satus.user.browser.video = function () { + var e = document.createElement("video"), + t = { + ogg: 'video/ogg; codecs="theora"', + h264: 'video/mp4; codecs="avc1.42E01E"', + webm: 'video/webm; codecs="vp8, vorbis"', + vp9: 'video/webm; codecs="vp9"', + hls: 'application/x-mpegURL; codecs="avc1.42E01E"', + }, + n = []; + if (satus.isFunction(e.canPlayType)) + for (var s in t) "" !== e.canPlayType(t[s]) && n.push(s); + return n; + }), + (satus.user.browser.webgl = function () { + var e = document.createElement("canvas").getContext("webgl"); + return e && e instanceof WebGLRenderingContext; + }), + (satus.user.device.screen = function () { + if (screen) return screen.width + "x" + screen.height; + }), + (satus.user.device.ram = function () { + if ("deviceMemory" in navigator) return navigator.deviceMemory + " GB"; + }), + (satus.user.device.gpu = function () { + var e = document.createElement("canvas").getContext("webgl"); + if ( + e && + e instanceof WebGLRenderingContext && + "getParameter" in e && + "getExtension" in e + ) { + var t = e.getExtension("WEBGL_debug_renderer_info"); + if (t) return e.getParameter(t.UNMASKED_RENDERER_WEBGL); + } + }), + (satus.user.device.cores = function () { + return navigator.deviceConcurrency; + }), + (satus.user.device.touch = function () { + var e = {}; + return ( + (window.hasOwnProperty("ontouchstart") || + (window.DocumentTouch && document instanceof window.DocumentTouch) || + 0 < navigator.maxTouchPoints || + 0 < window.navigator.msMaxTouchPoints) && + ((e.touch = !0), (e.maxTouchPoints = navigator.maxTouchPoints)), + e + ); + }), + (satus.user.device.connection = function () { + var e = {}; + return ( + "object" == typeof navigator.connection && + ((e.type = navigator.connection.effectiveType || null), + navigator.connection.downlink && + (e.speed = navigator.connection.downlink + " Mbps")), + e + ); + }), + (satus.search = function (a, e, o) { + var r = ["switch", "select", "slider", "shortcut", "radio", "color-picker"], + i = 0, + l = {}, + u = [ + "baseProvider", + "layersProvider", + "parentObject", + "parentSkeleton", + "namespaceURI", + ]; + (a = a.toLowerCase()), + (function e(t) { + for (var n in (i++, t)) { + var s; + -1 === u.indexOf(n) && + ((s = t[n]).component && + -1 !== r.indexOf(s.component) && + -1 !== n.indexOf(a) && + (l[n] = Object.assign({}, s)), + !satus.isObject(s) || + satus.isArray(s) || + satus.isElement(s) || + satus.isFunction(s) || + e(s)); + } + 0 == --i && o(l); + })(e); + }); From ca2fea1575c2cf4f7d7e9afb4b67176e8f42f015 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sun, 30 Oct 2022 13:26:19 +0800 Subject: [PATCH 0699/1224] Fixed H.264's alert/dialogue broken --- options-page/skeleton-parts/player.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/options-page/skeleton-parts/player.js b/options-page/skeleton-parts/player.js index c3f1ef684..871b0f72c 100644 --- a/options-page/skeleton-parts/player.js +++ b/options-page/skeleton-parts/player.js @@ -801,6 +801,7 @@ extension.skeleton.main.layers.section.player.on.click = { on: { click: function () { if (this.dataset.value === 'true') { + var component = this; satus.render({ component: 'modal', @@ -817,20 +818,22 @@ extension.skeleton.main.layers.section.player.on.click = { text: 'cancel', on: { click: function () { - this.parentNode.parentNode.parentNode.click(); + component.click(); + this.parentNode.parentNode.parentNode.close() } } }, ok: { component: 'button', text: 'OK', - onclick: function () { - - this.parentNode.parentNode.parentNode.click(); + on: { + click: function () { + this.parentNode.parentNode.parentNode.close() + } } } } - }); + },this.parentNode.parentNode.parentNode); } } } From 508a80c068c3ecfe5e5f06dc0c0a52d76a4c5b19 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sun, 30 Oct 2022 15:26:30 +0800 Subject: [PATCH 0700/1224] Updated improvedtubeYoutubeIcon() Bring back improvedtubeYoutubeIcon() and updated it to link with the new yt header code --- .../appearance/header/header.css | 3 +++ content-scripts/website-context/core.js | 1 + content-scripts/website-context/functions.js | 10 ++++++++ content-scripts/website-context/init.js | 5 ++++ .../youtube-features/settings.js | 7 ++++-- options-page/skeleton-parts/settings.js | 23 +++++++++++++++++++ 6 files changed, 47 insertions(+), 2 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/header/header.css b/content-scripts/extension-context/youtube-features/appearance/header/header.css index 290d10746..3eb16b150 100644 --- a/content-scripts/extension-context/youtube-features/appearance/header/header.css +++ b/content-scripts/extension-context/youtube-features/appearance/header/header.css @@ -15,10 +15,13 @@ html[it-header-position=hidden] tp-yt-app-drawer#guide #guide-spacer, html[it-header-position=hidden] #masthead-container, html[it-header-position=hidden] tp-yt-app-drawer:not([opened]) #header ytd-topbar-logo-renderer, +html[it-header-position=hidden] tp-yt-app-drawer:not([opened]) #header .it-button, html[it-header-position=hover] tp-yt-app-drawer#guide #guide-spacer, html[it-header-position=hover] tp-yt-app-drawer:not([opened]) #header ytd-topbar-logo-renderer, +html[it-header-position=hover] tp-yt-app-drawer:not([opened]) #header .it-button, html[it-header-position=static] tp-yt-app-drawer#guide #guide-spacer, html[it-header-position=static] tp-yt-app-drawer:not([opened]) #header ytd-topbar-logo-renderer, +html[it-header-position=static] tp-yt-app-drawer:not([opened]) #header .it-button, html[it-header-position=hidden_on_video_page][data-page-type=video] #masthead-container, html[it-header-position=hidden_on_video_page][data-page-type=video] tp-yt-app-drawer#guide #guide-spacer, html[it-header-position=hover_on_video_page][data-page-type=video] tp-yt-app-drawer#guide #guide-spacer { diff --git a/content-scripts/website-context/core.js b/content-scripts/website-context/core.js index 4bb02d3b6..e84ff603c 100644 --- a/content-scripts/website-context/core.js +++ b/content-scripts/website-context/core.js @@ -20,6 +20,7 @@ var ImprovedTube = { elements: { buttons: {}, masthead: {}, + app_drawer: {}, playlist: {}, livechat: {}, related: {}, diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index 1dccee566..1773d4772 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -98,6 +98,16 @@ ImprovedTube.ytElementsHandler = function (node) { logo: node.querySelector('a#logo') }; + this.improvedtubeYoutubeIcon(); + } + } + else if (name === 'TP-YT-APP-DRAWER') { + if (!this.elements.app_drawer) { + this.elements.app_drawer = { + start: node.querySelector('div#header'), + logo: node.querySelector('a#logo') + }; + this.improvedtubeYoutubeIcon(); } } else if (name === 'YTD-PLAYER') { diff --git a/content-scripts/website-context/init.js b/content-scripts/website-context/init.js index 8dcba79a1..0f7e87873 100644 --- a/content-scripts/website-context/init.js +++ b/content-scripts/website-context/init.js @@ -92,6 +92,11 @@ window.addEventListener('load', function () { logo: document.querySelector('ytd-masthead a#logo') }; + ImprovedTube.elements.app_drawer = { + start: document.querySelector('tp-yt-app-drawer #header'), + logo: document.querySelector('tp-yt-app-drawer a#logo') + }; + ImprovedTube.improvedtubeYoutubeIcon(); }); diff --git a/content-scripts/website-context/youtube-features/settings.js b/content-scripts/website-context/youtube-features/settings.js index d11dfb437..bcff5b735 100644 --- a/content-scripts/website-context/youtube-features/settings.js +++ b/content-scripts/website-context/youtube-features/settings.js @@ -116,8 +116,11 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { button.style.top = ''; if (option === 'header_left') { - if (this.elements.masthead.start) { - this.elements.masthead.start.insertBefore(button, this.elements.masthead.start.children[0]); + if (this.storage.header_position === 'normal' && this.elements.masthead.start) { + this.elements.masthead.start.appendChild(button); + } + else if (this.elements.app_drawer.start) { + this.elements.app_drawer.start.appendChild(button); } } else if (option === 'header_right') { if (this.elements.masthead.end) { diff --git a/options-page/skeleton-parts/settings.js b/options-page/skeleton-parts/settings.js index d6c65ed0f..ffe0016f8 100644 --- a/options-page/skeleton-parts/settings.js +++ b/options-page/skeleton-parts/settings.js @@ -164,6 +164,29 @@ extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.firstSectio } } } + }, + improvedtube_youtube_icon: { + text: 'improvedtubeIconOnYoutube', + component: 'select', + options: [{ + text: 'disabled', + value: 'disabled' + }, { + text: 'youtubeHeaderLeft', + value: 'header_left' + }, { + text: 'youtubeHeaderRight', + value: 'header_right' + }, { + text: 'sidebar', + value: 'sidebar' + }, { + text: 'draggable', + value: 'draggable' + }, { + text: 'belowPlayer', + value: 'below_player' + }] } }, animations: { From ffdfeef5b30287f000433dceb290d7f610cf7fe7 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 30 Oct 2022 10:50:19 +0100 Subject: [PATCH 0701/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index 82f95cddd..2c925ddff 100644 --- a/.github/README.md +++ b/.github/README.md @@ -103,7 +103,7 @@ Planned Features ### Our extensions [**`History Manager`**] [[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)]
-[[**unFreeze me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/hid-control-prevention)] +[[**unLock me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse)] [[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/custom-user-agent)] [[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm) [](https://github.com/code-for-charity/regex-replace)] From 271ec0064f7b6c6af1b26c30ce821f20a55c280d Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 30 Oct 2022 11:18:08 +0100 Subject: [PATCH 0702/1224] Update README.md --- .github/README.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/.github/README.md b/.github/README.md index 2c925ddff..c6d9781fe 100644 --- a/.github/README.md +++ b/.github/README.md @@ -104,21 +104,20 @@ Planned Features ### Our extensions [**`History Manager`**] [[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)]
[[**unLock me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse)] -[[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/custom-user-agent)] -[[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm) [](https://github.com/code-for-charity/regex-replace)] - -* Research: -[[Regex Search](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex-search)] -* **Video / Media:** (Features to be integrated in ImprovedTube...)
+[[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent)] +[[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)] + * Research: +[[Regex Search](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] +* **Video / Media:** (**to be integrated in ImprovedTube**...)
[[**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper)] [[**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame)] [[**`unBlob`**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob)] (Equalizer[](https://github.com/code-for-charity/equalizer)) -Home: -( Start Page ) -[[`TextEditor`]([https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka?hl=de))[](https://github.com/code-for-charity/Texteditor2)] -[[`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/to-do)] + + Home: +(Start Page to be uploadedto be uploaded ) +[[`TextEditor`]([https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka?hl=de))[](https://github.com/code-for-charity/Editor)] +[[`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo)] [[`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)")] #### **Development:** From a7fe41694a33ec37bda62eb27e958c723c24a29c Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 30 Oct 2022 11:19:50 +0100 Subject: [PATCH 0703/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index c6d9781fe..72c85132b 100644 --- a/.github/README.md +++ b/.github/README.md @@ -81,7 +81,7 @@ Planned Features

      🔧 Install from source

 
-### 1.) **Download & extract the [[latest🧪version]](https://github.com/code4charity/YouTube-Extension/archive/refs/heads/master.zip) or [[release]](https://github.com/code-for-charity/YouTube-Extension/releases)** +1.) **Download & extract the [[latest🧪version]](https://github.com/code4charity/YouTube-Extension/archive/refs/heads/master.zip) or [[release]](https://github.com/code-for-charity/YouTube-Extension/releases)** - **Safari**: - 2.) [**#494**](https://github.com/code4charity/YouTube-Extension/issues/494#issuecomment-675098753) From f87af7101800e3cf8538511b25e4f34f5e241495 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 30 Oct 2022 11:37:48 +0100 Subject: [PATCH 0704/1224] Update README.md --- .github/README.md | 39 ++++++++++++--------------------------- 1 file changed, 12 insertions(+), 27 deletions(-) diff --git a/.github/README.md b/.github/README.md index 72c85132b..f690bf630 100644 --- a/.github/README.md +++ b/.github/README.md @@ -99,33 +99,18 @@ Planned Features

- 🎁Extensions/Projects

- -### Our extensions -[**`History Manager`**] [[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)]
-[[**unLock me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse)] -[[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent)] -[[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)] - * Research: -[[Regex Search](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] -* **Video / Media:** (**to be integrated in ImprovedTube**...)
-[[**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper)] -[[**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame)] -[[**`unBlob`**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob)] -(Equalizer[](https://github.com/code-for-charity/equalizer)) - - + Home: -(Start Page to be uploadedto be uploaded ) -[[`TextEditor`]([https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka?hl=de))[](https://github.com/code-for-charity/Editor)] -[[`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo)] -[[`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)")] - -#### **Development:** -[[**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library] [[**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library] ([TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player)) - -#### Git Community: -[🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex")] -[🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot)] + 🎁Extensions&Projects▼ + +#### [**`History Manager`**] [[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)] [**unLock me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse)] [[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent)] [[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)] +##### Research: [[Regex (Search)](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] +#### **Video / Media:** (**to be integrated in ImprovedTube**...) [[**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper)] [[**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame)] [[**`unBlob`**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob)] (Equalizer[](https://github.com/code-for-charity/equalizer)) + +##### Home: (Start Page to be uploaded ) [[`TextEditor`]([https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka?hl=de))[](https://github.com/code-for-charity/Editor)] [[`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo)] [[`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)")] + +### Projects: +#### **Development:** [[**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library] [[**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library] ([TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player)) + +#### Git Community: [🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex")] [🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot)]
From ccfcd711390d815144b11c42dafc9872c4a26127 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 30 Oct 2022 11:38:43 +0100 Subject: [PATCH 0705/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index f690bf630..cf89fd148 100644 --- a/.github/README.md +++ b/.github/README.md @@ -101,7 +101,7 @@ Planned Features

🎁Extensions&Projects

-#### [**`History Manager`**] [[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)] [**unLock me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse)] [[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent)] [[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)] +#### [**`History Manager`**] [[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)] [**unLock me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse)] [[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent)] [[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)] ##### Research: [[Regex (Search)](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] #### **Video / Media:** (**to be integrated in ImprovedTube**...) [[**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper)] [[**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame)] [[**`unBlob`**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob)] (Equalizer[](https://github.com/code-for-charity/equalizer)) From b50b4cd9d653dd5a311414999d29ace6e8f46181 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 30 Oct 2022 11:45:19 +0100 Subject: [PATCH 0706/1224] Update README.md --- .github/README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/README.md b/.github/README.md index cf89fd148..1c5be1b3e 100644 --- a/.github/README.md +++ b/.github/README.md @@ -99,15 +99,16 @@ Planned Features

- 🎁Extensions&Projects

+ 🎁Extensions & Projects▼ #### [**`History Manager`**] [[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)] [**unLock me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse)] [[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent)] [[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)] -##### Research: [[Regex (Search)](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] +##### Research: [[Regex (Search)](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] #### **Video / Media:** (**to be integrated in ImprovedTube**...) [[**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper)] [[**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame)] [[**`unBlob`**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob)] (Equalizer[](https://github.com/code-for-charity/equalizer)) ##### Home: (Start Page to be uploaded ) [[`TextEditor`]([https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka?hl=de))[](https://github.com/code-for-charity/Editor)] [[`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo)] [[`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)")] -### Projects: +--- + #### **Development:** [[**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library] [[**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library] ([TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player)) #### Git Community: [🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex")] [🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot)] @@ -286,7 +287,7 @@ Do you need to run a popular extension, site, app or repo?

We'll love to chrome-web-store-linkChrome-users

-### Some ImprovedTube features: +** Some ImprovedTube features**: - Video quality - Themes and customisation - Repeat-, screenshot-, rotate-buttons @@ -300,9 +301,8 @@ Do you need to run a popular extension, site, app or repo?

We'll love to - Volume mixer _[Full list](https://github.com/ImprovedTube/YouTube/wiki/Features)_ -## 🔧 Install from source - -### 1.) **Download & extract the [[latest🧪version]](https://github.com/code4charity/YouTube-Extension/archive/refs/heads/master.zip) or [[release]](https://github.com/code-for-charity/YouTube-Extension/releases)** +**🔧 Install from source** +1.) **Download & extract the [[latest🧪version]](https://github.com/code4charity/YouTube-Extension/archive/refs/heads/master.zip) or [[release]](https://github.com/code-for-charity/YouTube-Extension/releases)** - **Safari**: - 2.) [Issue #494](https://github.com/code4charity/YouTube-Extension/issues/494#issuecomment-675098753) @@ -318,7 +318,7 @@ _[Full list](https://github.com/ImprovedTube/YouTube/wiki/Features)_ - 5.) Click on `Load Temporary Add-on…` - 6.) Select the `manifest.json` file from unzipped folder - #### Web browser support +#### Web browser support |[Brave](https://brave.com)
Brave | [Chromium](https://github.com/chromium/chromium)
Chromium | [Chrome](https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd)
Chrome | [Edge](https://www.microsoft.com/edge)
Edge | [Firefox](https://foundation.mozilla.org)
Firefox | [Opera](https://addons.opera.com/en/extensions/details/install-chrome-extensions/)
Opera| [Safari](https://www.apple.com/safari/)
Safari | [Vivaldi](https://github.com/ric2b/Vivaldi-browser)
Vivaldi | | --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | | 0.52+ | 49.0+ | 49.0+ | 79.0+ | 44.0+ | 36.0+ | x.x+ | 1.0+ | From c2b23a0772b0a3c817b8a35b222e84cfd569350f Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 5 Nov 2022 01:07:32 +0800 Subject: [PATCH 0707/1224] Fix expand description not working --- content-scripts/website-context/functions.js | 8 +++++++- .../website-context/youtube-features/appearance.js | 10 ++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index 1773d4772..e4f6da61d 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -196,7 +196,13 @@ ImprovedTube.ytElementsHandler = function (node) { node.calculateNormalPlayerSize_ = node.calculateCurrentPlayerSize_; } - } + }else if (name === 'TP-YT-PAPER-BUTTON') { + if (document.documentElement.dataset.pageType === 'video' && id === 'more' && node.parentNode.parentNode.id === 'container') { + setTimeout(function () { + ImprovedTube.description(node); + }, 750); + } + } }; ImprovedTube.pageType = function () { diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index 782d71ab4..547f49f72 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -290,6 +290,16 @@ ImprovedTube.channelVideosCount = function () { } }; +/*------------------------------------------------------------------------------ +4.2.3.3 DESCRIPTION +------------------------------------------------------------------------------*/ + +ImprovedTube.description = function (el) { + if (this.storage.description === 'expanded') { + el.click(); + } +}; + /*------------------------------------------------------------------------------ 4.2.3.4 HIDE DETAIL BUTTON ------------------------------------------------------------------------------*/ From b1872be298bdf7d126f4098b6d81d4500b3f2f40 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Thu, 10 Nov 2022 20:02:29 +0800 Subject: [PATCH 0708/1224] Fixed theme not working --- .../extension-context/youtube-features/content-styles.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content-scripts/extension-context/youtube-features/content-styles.css b/content-scripts/extension-context/youtube-features/content-styles.css index 645206b9e..87ce4d71c 100644 --- a/content-scripts/extension-context/youtube-features/content-styles.css +++ b/content-scripts/extension-context/youtube-features/content-styles.css @@ -264,6 +264,8 @@ html[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=s --yt-swatch-logo-override: rgb(255, 255, 255) !important; --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; --yt-swatch-header-primary: #734; + --yt-spec-base-background: #734 !important; + --yt-spec-raised-background: #734 !important; --yt-spec-brand-background-solid: #d44d5c !important; --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; From 544f86f14576ab71927061408288470951d9e3e5 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Thu, 10 Nov 2022 20:05:44 +0800 Subject: [PATCH 0709/1224] Fixed theme not working --- .../youtube-features/content-styles.css | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/content-scripts/extension-context/youtube-features/content-styles.css b/content-scripts/extension-context/youtube-features/content-styles.css index 87ce4d71c..0ffd7b7da 100644 --- a/content-scripts/extension-context/youtube-features/content-styles.css +++ b/content-scripts/extension-context/youtube-features/content-styles.css @@ -46,6 +46,10 @@ --yt-swatch-logo-override: rgb(255, 255, 255) !important; --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; --yt-swatch-header-primary: #000; + --yt-spec-base-background: #000 !important; + --yt-spec-raised-background: #000 !important; + --yt-spec-menu-background: #000 !important; + --yt-spec-inverted-background: #fff; --yt-spec-brand-background-solid: #000 !important; --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; @@ -266,6 +270,8 @@ html[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=s --yt-swatch-header-primary: #734; --yt-spec-base-background: #734 !important; --yt-spec-raised-background: #734 !important; + --yt-spec-menu-background: #734 !important; + --yt-spec-inverted-background: #fff; --yt-spec-brand-background-solid: #d44d5c !important; --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; @@ -316,6 +322,9 @@ html[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=s --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; --yt-swatch-logo-override: rgb(255, 255, 255) !important; --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; + --yt-spec-general-background-a: #d44d5c !important; + --yt-spec-general-background-b: #d44d5c !important; + --yt-spec-general-background-c: #d44d5c !important; } [it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), @@ -485,6 +494,10 @@ html[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=sy --yt-swatch-logo-override: #555 !important; --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; --yt-swatch-header-primary: #bee3db; + --yt-spec-base-background: #faf9f9 !important; + --yt-spec-raised-background: #faf9f9 !important; + --yt-spec-menu-background: #faf9f9 !important; + --yt-spec-inverted-background: #fff; --yt-spec-brand-background-solid: #faf9f9 !important; --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; @@ -535,6 +548,9 @@ html[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=sy --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; --yt-swatch-logo-override: #555 !important; --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; + --yt-spec-general-background-a: #faf9f9 !important; + --yt-spec-general-background-b: #faf9f9 !important; + --yt-spec-general-background-c: #faf9f9 !important; } [it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), @@ -697,6 +713,10 @@ html[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule= --yt-swatch-logo-override: rgb(255, 255, 255) !important; --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; --yt-swatch-header-primary: #007ea7; + --yt-spec-base-background: #003459 !important; + --yt-spec-raised-background: #003459 !important; + --yt-spec-menu-background: #003459 !important; + --yt-spec-inverted-background: #fff; --yt-spec-brand-background-solid: #003459 !important; --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; @@ -754,6 +774,9 @@ html[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=s --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; --yt-swatch-logo-override: rgb(255, 255, 255) !important; --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; + --yt-spec-general-background-a: #003459 !important; + --yt-spec-general-background-b: #003459 !important; + --yt-spec-general-background-c: #003459 !important; } [it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), @@ -915,6 +938,10 @@ html[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=s --yt-swatch-logo-override: #666 !important; --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; --yt-swatch-header-primary: #d6d1b1; + --yt-spec-base-background: #c7efcf !important; + --yt-spec-raised-background: #c7efcf !important; + --yt-spec-menu-background: #c7efcf !important; + --yt-spec-inverted-background: #fff; --yt-spec-brand-background-solid: #c7efcf !important; --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; @@ -965,6 +992,9 @@ html[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=s --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; --yt-swatch-logo-override: #666 !important; --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; + --yt-spec-general-background-a: #c7efcf !important; + --yt-spec-general-background-b: #c7efcf !important; + --yt-spec-general-background-c: #c7efcf !important; } [it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), @@ -1127,6 +1157,10 @@ html[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=s --yt-swatch-logo-override: rgb(255, 255, 255) !important; --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; --yt-swatch-header-primary: #f56264; + --yt-spec-base-background: #2f3364 !important; + --yt-spec-raised-background: #2f3364 !important; + --yt-spec-menu-background: #2f3364 !important; + --yt-spec-inverted-background: #fff; --yt-spec-brand-background-solid: #2f3364 !important; --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; @@ -1177,6 +1211,9 @@ html[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=s --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; --yt-swatch-logo-override: rgb(255, 255, 255) !important; --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; + --yt-spec-general-background-a: #2f3364 !important; + --yt-spec-general-background-b: #2f3364 !important; + --yt-spec-general-background-c: #2f3364 !important; } [it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), From a2742e664387063c09488c470cdc617fb705c1dd Mon Sep 17 00:00:00 2001 From: Serdar <35432275+daswareinfach@users.noreply.github.com> Date: Fri, 11 Nov 2022 11:57:53 +0300 Subject: [PATCH 0710/1224] Update for missing translations Update for missing translations --- _locales/tr/messages.json | 54 +++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 4969f3b19..6304911b4 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -105,7 +105,7 @@ "message": "Avoid AV1, VP9" }, "avoidCpuRenderingWhenPossible": { - "message": "Avoid CPU rendering when possible" + "message": "Mümkün olduğunda CPU oluşturma işleminden kaçının" }, "backgroundColor": { "message": "Arkaplan rengi" @@ -144,7 +144,7 @@ "message": "Block VP8" }, "blockVp9": { - "message": "Block VP9" + "message": "VP9'u engelle" }, "blue": { "message": "Mavi" @@ -195,10 +195,10 @@ "message": "Pano" }, "codecH264": { - "message": "Codec h.264" + "message": "Kodek h.264" }, "codecs": { - "message": "Codecs" + "message": "Kodekler" }, "collapseOfSubscriptionSections": { "message": "Abonelik bölümlerini daralt" @@ -279,7 +279,7 @@ "message": "Bunalımlı" }, "description": { - "message": "Description" + "message": "Açıklama" }, "description_ext": { "message": "YouTube'u düzenli+akıllı hale getirin! YouTube video renkli reklam hacmi atlama hızı kanal aracı stili HD reklamlar reklam engelleme reklam engelleyici etiketleri anahtar kelime oynatma listesi" @@ -306,7 +306,7 @@ "message": "Beğenmeme" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Zayıfların gününü göster" }, "doNotChange": { "message": "Değiştirme" @@ -315,7 +315,7 @@ "message": "Bağış" }, "download": { - "message": "Download" + "message": "İndir" }, "draggable": { "message": "Sürüklenebilir" @@ -324,7 +324,7 @@ "message": "Düşen gölge" }, "durationWithSpeed": { - "message": "Show time remaining with reference to playback speed" + "message": "Oynatma hızına göre kalan süreyi göster" }, "email": { "message": "Eposta" @@ -420,7 +420,7 @@ "message": "Yeşil" }, "hardwareInformation": { - "message": "Hardware information" + "message": "Donanım Bilgileri" }, "hd": { "message": "HD" @@ -447,10 +447,10 @@ "message": "Kartları gizle" }, "hideCategories": { - "message": "Hide categories" + "message": "Kategorileri gizle" }, "hideCommentsCount": { - "message": "Hide comments count" + "message": "Yorum sayısını gizle" }, "hideCountryCode": { "message": "Ülke kodunu gizle" @@ -459,7 +459,7 @@ "message": "Tarihi gizle" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Ayrıntı Düğmesini Gizle" }, "hideDetails": { "message": "Detayları gizle" @@ -540,7 +540,7 @@ "message": "Logoyu geliştir" }, "improvedtubeButtons": { - "message": "ImprovedTube buttons" + "message": "ImprovedTube butonları" }, "improvedtubeIconOnYoutube": { "message": "YouTube'da ImprovedTube Simgesi" @@ -570,10 +570,10 @@ "message": "Diller" }, "layerAnimationScale": { - "message": "Layer animation scale" + "message": "Katman animasyon ölçeği" }, "layout": { - "message": "Layout" + "message": "Düzen" }, "legacyYoutube": { "message": "Eski YouTube" @@ -597,7 +597,7 @@ "message": "Beğenildi" }, "likes": { - "message": "Likes" + "message": "Beğeniler" }, "lime": { "message": "Lime" @@ -618,7 +618,7 @@ "message": "Konum" }, "loop": { - "message": "Loop" + "message": "Döngü" }, "loudnessNormalization": { "message": "Gürültü normalleştirme" @@ -636,10 +636,10 @@ "message": "Karıştırıcı" }, "more": { - "message": "More" + "message": "Daha fazla" }, "mostViewedChannels": { - "message": "Most viewed channels" + "message": "En çok izlenen kanallar" }, "moveSidebarLeft": { "message": "Kenar çubuğunu sola taşı" @@ -681,7 +681,7 @@ "message": "Normal" }, "off": { - "message": "Off" + "message": "Kapalı" }, "ok": { "message": "Tamam" @@ -702,7 +702,7 @@ "message": "Sadece bir oynatıcı örneği" }, "openPopupPlayer": { - "message": "Open video/playlist in a new window" + "message": "Videoyu/oynatma listesini yeni pencerede aç" }, "orange": { "message": "Turuncu" @@ -735,7 +735,7 @@ "message": "Platform" }, "playAllButton": { - "message": "\"Play all\" button" + "message": "\"Tümünü oynat\" butonu" }, "playPause": { "message": "Oynat / Duraklat" @@ -900,7 +900,7 @@ "message": "Videonun kalan süresini göster" }, "showVersion": { - "message": "Show version" + "message": "Versionu göster" }, "shuffle": { "message": "Karıştır" @@ -909,7 +909,7 @@ "message": "Kenar çubuğu" }, "softwareInformation": { - "message": "Software information" + "message": "Yazılım bilgisi" }, "spacebar": { "message": "Ara çubuğu" @@ -963,7 +963,7 @@ "message": "Yazı rengi" }, "thanks": { - "message": "Thanks" + "message": "Teşekkürler" }, "themes": { "message": "Temalar" @@ -972,7 +972,7 @@ "message": "Bu, tüm çerezleri kaldıracaktır." }, "thisWillRemoveAllWatchedVideos": { - "message": "This will remove all watched videos." + "message": "Bu, izlenen tüm videoları kaldıracaktır." }, "thisWillRemoveAllYouTubeCookies": { "message": "Bu, tüm YouTube çerezlerini kaldıracaktır." @@ -1097,4 +1097,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube, h.264 codec bileşeni için video kalitesini 1080p ile sınırlar" } -} \ No newline at end of file +} From 8cdd7884ba1885909735b1a191df8c79028a33ce Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 12 Nov 2022 02:01:58 +0100 Subject: [PATCH 0711/1224] Update messages.json --- _locales/en/messages.json | 48 +++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index f70e873a2..d0a1ef02e 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -44,7 +44,13 @@ "all": { "message": "All" }, - "allow": { + "allYourSettingsWillBeErasedAndCanTBeRecovered": { + "message": "All your settings will be erased and can't be recovered" + }, + "allYourShortcutsWillBeErasedAndCanTBeRecovered": { + "message": "All your shortcuts will be erased and can't be recovered" + }, + "allow": { "message": "Allow" }, "allow60fps": { @@ -122,6 +128,9 @@ "belowPlayer": { "message": "Below player" }, + "bitness": { + "message": "Bitness" + }, "black": { "message": "Black" }, @@ -155,6 +164,9 @@ "bluelight": { "message": "Bluelight" }, + "brightness": { + "message": "Brightness" + }, "brown": { "message": "Brown" }, @@ -269,15 +281,9 @@ "defaultContentCountry": { "message": "Default content country" }, - "defaultPlaybackSpeedEnable": { - "message": "Enable Default playback speed" - }, - "defaultPlaybackSpeedMenu": { + "defaultPlaybackSpeed": { "message": "Default Playback Speed" }, - "defaultPlaybackSpeedSet": { - "message": "Set Default Playback Speed" - }, "deleteWatchedVideos": { "message": "Delete watched videos" }, @@ -473,6 +479,9 @@ "hideDetails": { "message": "Hide details" }, + + + "hideEndscreen": { "message": "Hide endscreen" }, @@ -485,6 +494,9 @@ "hideGradientBottom": { "message": "Hide shadow around player-bar" }, + + + "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -497,15 +509,27 @@ "hidePlaylist": { "message": "Hide playlist" }, + + + "hideRightButtons": { "message": "Hide right buttons" }, + + + "hideScrollForDetails": { "message": "Hide «Scroll for details»" }, + + + "hideSkipOverlay": { "message": "Hide 5 second skip animation" }, + + + "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, @@ -527,6 +551,9 @@ "home": { "message": "Home" }, + "homeScreen": { + "message": "Home screen" + }, "hover": { "message": "Hover" }, @@ -1073,6 +1100,9 @@ "watchTime": { "message": "Watch time" }, + "watchedVideos": { + "message": "Watched videos" + }, "whenPaused": { "message": "When paused" }, @@ -1106,4 +1136,4 @@ "youtubeLimitsVideoQualityTo1080pForH264Codec": { "message": "YouTube limits video quality to 1080p for h.264 codec" } -} \ No newline at end of file +} From ac09615ef1bb190300e4fb263d916f76e15c00f0 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 12 Nov 2022 02:03:54 +0100 Subject: [PATCH 0712/1224] Update messages.json --- _locales/en/messages.json | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index d0a1ef02e..63db959c8 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -478,10 +478,7 @@ }, "hideDetails": { "message": "Hide details" - }, - - - + }, "hideEndscreen": { "message": "Hide endscreen" }, @@ -493,10 +490,7 @@ }, "hideGradientBottom": { "message": "Hide shadow around player-bar" - }, - - - + }, "hidePlayerControlsBar": { "message": "Hide player controls bar" }, @@ -508,28 +502,16 @@ }, "hidePlaylist": { "message": "Hide playlist" - }, - - - + }, "hideRightButtons": { "message": "Hide right buttons" - }, - - - + }, "hideScrollForDetails": { "message": "Hide «Scroll for details»" - }, - - - + }, "hideSkipOverlay": { "message": "Hide 5 second skip animation" - }, - - - + }, "hideThumbnailOverlay": { "message": "Hide buttons on thumbnails" }, From ff810afc60e75108abc94490c45d4cfc81d30cd6 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 12 Nov 2022 02:44:57 +0100 Subject: [PATCH 0713/1224] Update player.js --- options-page/skeleton-parts/player.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/options-page/skeleton-parts/player.js b/options-page/skeleton-parts/player.js index 871b0f72c..49834066c 100644 --- a/options-page/skeleton-parts/player.js +++ b/options-page/skeleton-parts/player.js @@ -931,6 +931,7 @@ extension.skeleton.main.layers.section.player.on.click = { section_2: { component: 'section', variant: 'card', + title: 'buttons', player_screenshot: { component: 'button', @@ -989,6 +990,7 @@ extension.skeleton.main.layers.section.player.on.click = { section_3: { component: 'section', variant: 'card', + title: 'Buttons (below the player)', below_player_screenshot: { component: 'switch', @@ -1006,4 +1008,4 @@ extension.skeleton.main.layers.section.player.on.click = { value: true } } -}; \ No newline at end of file +}; From e5f1e2bbb5bfba778e662f7ee37a705d540b4e7e Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 12 Nov 2022 02:52:57 +0100 Subject: [PATCH 0714/1224] Update player.js --- options-page/skeleton-parts/player.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/options-page/skeleton-parts/player.js b/options-page/skeleton-parts/player.js index 49834066c..50f72af1d 100644 --- a/options-page/skeleton-parts/player.js +++ b/options-page/skeleton-parts/player.js @@ -990,7 +990,7 @@ extension.skeleton.main.layers.section.player.on.click = { section_3: { component: 'section', variant: 'card', - title: 'Buttons (below the player)', + title: 'Buttons below the player', below_player_screenshot: { component: 'switch', From 8b5ed0dd362d516f54e3603912647d78d6391b7c Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 12 Nov 2022 04:15:07 +0100 Subject: [PATCH 0715/1224] name to support old user setting --- options-page/skeleton-parts/appearance.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/options-page/skeleton-parts/appearance.js b/options-page/skeleton-parts/appearance.js index 0af8b6da7..bae6ba035 100644 --- a/options-page/skeleton-parts/appearance.js +++ b/options-page/skeleton-parts/appearance.js @@ -423,7 +423,7 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { click: { component: 'section', variant: 'card', - hide_like_button: { + likes: { component: 'select', text: 'like', options: [{ @@ -704,4 +704,4 @@ extension.skeleton.main.layers.section.appearance.on.click.sidebar = { } } } -}; \ No newline at end of file +}; From a16c1e584bdd29327da92cebd13c37da0788868c Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 12 Nov 2022 04:19:29 +0100 Subject: [PATCH 0716/1224] Update details.css --- .../youtube-features/appearance/details/details.css | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/content-scripts/extension-context/youtube-features/appearance/details/details.css index 07f04307e..766ddafbb 100644 --- a/content-scripts/extension-context/youtube-features/appearance/details/details.css +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.css @@ -53,13 +53,13 @@ html[it-hide-date='true'] #info #count + #info-strings>#dot { HIDE LIKE BUTTON --------------------------------------------------------------*/ -html[it-hide-like-button='hidden'] #info #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1), -html[it-hide-like-button='icons_only'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) div.cbox { +html[it-likes='hidden'] #info #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1), +html[it-likes='icons_only'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) div.cbox { display: none; } -html[it-hide-like-button='icons_only'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) .yt-spec-button-shape-next__icon, -html[it-hide-like-button='icons_only'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) button{ +html[it-likes='icons_only'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) .yt-spec-button-shape-next__icon, +html[it-likes='icons_only'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) button{ margin: 0; padding: 0 5px; } @@ -233,4 +233,4 @@ html[it-description=expanded] ytd-watch-flexy #info-contents, ytd-watch-flexy #m html[it-red-dislike-button='true'] #info .top-level-buttons>ytd-toggle-button-renderer:nth-child(2), html[it-red-dislike-button='true'] #info .top-level-buttons>ytd-toggle-button-renderer:nth-child(2) yt-formatted-string { color: #fc0000 !important; -} \ No newline at end of file +} From 5cce70d77b666729daadd6563ee2ebb278b96bad Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 12 Nov 2022 04:42:17 +0100 Subject: [PATCH 0717/1224] Update background.js --- background.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/background.js b/background.js index f57f644ac..8da63e6c9 100644 --- a/background.js +++ b/background.js @@ -59,7 +59,7 @@ function updateContextMenu(language) { chrome.contextMenus.create({ id: String(i), title: text, - contexts: ['browser_action'] + contexts: ['action'] }); } @@ -220,4 +220,4 @@ chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) { # UNINSTALL URL --------------------------------------------------------------*/ -//chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); \ No newline at end of file +//chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); From 288ef122fa457094f65251ed57ba06454234566c Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 12 Nov 2022 04:51:15 +0100 Subject: [PATCH 0718/1224] Update background.js --- background.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/background.js b/background.js index 8da63e6c9..0ce1c4d4e 100644 --- a/background.js +++ b/background.js @@ -220,4 +220,4 @@ chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) { # UNINSTALL URL --------------------------------------------------------------*/ -//chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); +chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); From 91e733d5a30b6348ab93a07d837a11fed7905608 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 12 Nov 2022 13:38:18 +0100 Subject: [PATCH 0719/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index 1c5be1b3e..29b3408f2 100644 --- a/.github/README.md +++ b/.github/README.md @@ -57,7 +57,7 @@ Planned Features

   🏝🏕 To-DoList

  
-#### **0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we offer bug-bounties, if you are poor [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "❤️")>.
+#### **0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer bug bounties. If you are at a cheap/poor place: [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "❤️").
##### **1.** **[ ]** [**Documentation, wiki, screenshots, video, ...**](https://github.com/code-for-charity/YouTube-Extension/wiki "We need to help people learning as easily as possible about our 90+ features. (Drafts welcome. This will become 🛈tooltips in the extension too!") > We need to help people to learn as easily as possible about our [90+ features](https://github.com/ImprovedTube/ImprovedTube/wiki/Features). (Drafts welcome. This will become **🛈ToolTips** in the extension!")
+**[ ]**[Updating translations](https://github.com/code-for-charity/YouTube-Extension/wiki/Translation-HowTo " - some language files miss additions.") +**[ ]**proofreading [eng](https://github.com/ImprovedTube/ImprovedTube/blob/master/_locales/en/messages.json) #### **2.** [ ][**Plans & Specifications 🧩**](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+sort%3Acomments-desc+is%3Aopen+label%3A🧩Plan%20ready++-label%3A%22not+Goo.+Chrome%22+ "often unique & relevant (special)")
   **&**    [ ] [**organizational Discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=category%3AToDo++category%3AOrganization+ "Future & Structure") From f6e62c68dbdcedd4135cbd86e4e1c1d32b6ab28e Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 12 Nov 2022 13:38:58 +0100 Subject: [PATCH 0720/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index 29b3408f2..e5029988f 100644 --- a/.github/README.md +++ b/.github/README.md @@ -57,7 +57,7 @@ Planned Features

   🏝🏕 To-DoList

  
-#### **0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer bug bounties. If you are at a cheap/poor place: [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "❤️").
+#### **0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer bug bounties. If you are at a cheap/poor place: [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "❤️") .)
##### **1.** **[ ]** [**Documentation, wiki, screenshots, video, ...**](https://github.com/code-for-charity/YouTube-Extension/wiki "We need to help people learning as easily as possible about our 90+ features. (Drafts welcome. This will become 🛈tooltips in the extension too!") > We need to help people to learn as easily as possible about our [90+ features](https://github.com/ImprovedTube/ImprovedTube/wiki/Features). (Drafts welcome. This will become **🛈ToolTips** in the extension!")
+**[ ]**[Updating translations](https://github.com/code-for-charity/YouTube-Extension/wiki/Translation-HowTo " - some language files miss additions.") +**[ ]**proofreading [eng](https://github.com/ImprovedTube/ImprovedTube/blob/master/_locales/en/messages.json) #### **2.** [ ][**Plans & Specifications 🧩**](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+sort%3Acomments-desc+is%3Aopen+label%3A🧩Plan%20ready++-label%3A%22not+Goo.+Chrome%22+ "often unique & relevant (special)")
   **&**    [ ] [**organizational Discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=category%3AToDo++category%3AOrganization+ "Future & Structure") From bd3d4ac37ef126de7ce9da02c8bd2198cbb366ef Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 12 Nov 2022 13:42:32 +0100 Subject: [PATCH 0721/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index e5029988f..be882ecc3 100644 --- a/.github/README.md +++ b/.github/README.md @@ -57,7 +57,7 @@ Planned Features

   🏝🏕 To-DoList

  
-#### **0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer bug bounties. If you are at a cheap/poor place: [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "❤️") .)
+##### **0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer some bug bounty. [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "especially if you are at a cheap/poor place ❤️") .)
##### **1.** **[ ]** [**Documentation, wiki, screenshots, video, ...**](https://github.com/code-for-charity/YouTube-Extension/wiki "We need to help people learning as easily as possible about our 90+ features. (Drafts welcome. This will become 🛈tooltips in the extension too!") > We need to help people to learn as easily as possible about our [90+ features](https://github.com/ImprovedTube/ImprovedTube/wiki/Features). (Drafts welcome. This will become **🛈ToolTips** in the extension!")
+**[ ]**[Updating translations](https://github.com/code-for-charity/YouTube-Extension/wiki/Translation-HowTo " - some language files miss additions.") +**[ ]**proofreading [eng](https://github.com/ImprovedTube/ImprovedTube/blob/master/_locales/en/messages.json) #### **2.** [ ][**Plans & Specifications 🧩**](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+sort%3Acomments-desc+is%3Aopen+label%3A🧩Plan%20ready++-label%3A%22not+Goo.+Chrome%22+ "often unique & relevant (special)")
   **&**    [ ] [**organizational Discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=category%3AToDo++category%3AOrganization+ "Future & Structure") From cd32ff420f0b101a30acd5bb5a1c3093bcd65117 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 14 Nov 2022 18:55:09 +0100 Subject: [PATCH 0722/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index be882ecc3..d0e09207a 100644 --- a/.github/README.md +++ b/.github/README.md @@ -5,7 +5,7 @@

ImprovedTube   

/«Improve YouTube!»/ -is a lightweight & powerful extension to improve your video experience & choice.

+is a lightweight & powerful extension to enrich your experience & enable your choice.

From 7014221528c3e2a7d87d49602e6533a77444e788 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 18 Nov 2022 02:08:12 +0100 Subject: [PATCH 0723/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index d0e09207a..c6dcf7c82 100644 --- a/.github/README.md +++ b/.github/README.md @@ -60,7 +60,7 @@ Planned Features ##### **0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer some bug bounty. [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "especially if you are at a cheap/poor place ❤️") .)
##### **1.** **[ ]** [**Documentation, wiki, screenshots, video, ...**](https://github.com/code-for-charity/YouTube-Extension/wiki "We need to help people learning as easily as possible about our 90+ features. (Drafts welcome. This will become 🛈tooltips in the extension too!") > We need to help people to learn as easily as possible about our [90+ features](https://github.com/ImprovedTube/ImprovedTube/wiki/Features). (Drafts welcome. This will become **🛈ToolTips** in the extension!")
+**[ ]**[Updating translations](https://github.com/code-for-charity/YouTube-Extension/wiki/Translation-HowTo " - some language files miss additions.") +**[ ]**proofreading [eng](https://github.com/ImprovedTube/ImprovedTube/blob/master/_locales/en/messages.json) -#### **2.** [ ][**Plans & Specifications 🧩**](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+sort%3Acomments-desc+is%3Aopen+label%3A🧩Plan%20ready++-label%3A%22not+Goo.+Chrome%22+ "often unique & relevant (special)")
   **&**    [ ] [**organizational Discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=category%3AToDo++category%3AOrganization+ "Future & Structure") +#### **2.** [ ][**Plans / Specifications 🧩**](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues?q=is%3Aissue+sort%3Acomments-desc+is%3Aopen+label%3A%22%F0%9F%A7%A9Plan+ready%22++-label%3A%22not+Goo.+Chrome%22+ "often unique & relevant (special)")
   **&**    [ ] [**organizational Discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=category%3AToDo++category%3AOrganization+ "Future & Structure") ##### **3.** [ ] [**Feature Requests🌟🧚**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3A%22Feature+Request%22+sort%3Acomments-desc+is%3Aopen+-label%3A_++-label%3A%22not+Goo.+Chrome%22+ "- sometimes easy / CSS") - sometimes easy / CSS
     **+** [ ]  [**Wishes in discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=-category%3AToDo+-category%3AOrganization+ "Wishes, Ideas, Questions, News") ###### **0.1. [ ]** Tidy: [(Rest/Unsorted 'issues')](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+is%3Aopen+-label%3Abug+-label%3A%22Feature+Request%22+-label%3A%F0%9F%A7%A9Plan%20ready+-label%3A_+-label%3A%22not+Goo.+Chrome%22+sort%3Acreated-desc++-label%3A"Niche%2Frare+usecase%3F%2Ffun%3F"++-label%3Aunclear "Our github issues, which are not yet labled yet to appear in one of the ToDo-categories above") From 4d00248e05aefe6a1e44fa80a16793538d38d85a Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Wed, 23 Nov 2022 23:27:37 +0100 Subject: [PATCH 0724/1224] Update and rename CONTRIBUTING.md to CONTRIBUTINGmd --- CONTRIBUTING.md | 1 - CONTRIBUTINGmd | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 CONTRIBUTING.md create mode 100644 CONTRIBUTINGmd diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index f944b384f..000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1 +0,0 @@ -:) diff --git a/CONTRIBUTINGmd b/CONTRIBUTINGmd new file mode 100644 index 000000000..ea8bd617c --- /dev/null +++ b/CONTRIBUTINGmd @@ -0,0 +1 @@ +:) Check the pinned issues. And maybe the wiki, readme & discussions. From bcc9b1562612112e0d69bf3f21c8d778d6dcfd6c Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Wed, 23 Nov 2022 23:29:21 +0100 Subject: [PATCH 0725/1224] Update and rename CONTRIBUTINGmd to CONTRIBUTING.md --- CONTRIBUTING.md | 3 +++ CONTRIBUTINGmd | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 CONTRIBUTING.md delete mode 100644 CONTRIBUTINGmd diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..cae39de5d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,3 @@ +## :) Check the pinned issues. And maybe the wiki, readme & discussions. + +# Thanks for caring ♥ diff --git a/CONTRIBUTINGmd b/CONTRIBUTINGmd deleted file mode 100644 index ea8bd617c..000000000 --- a/CONTRIBUTINGmd +++ /dev/null @@ -1 +0,0 @@ -:) Check the pinned issues. And maybe the wiki, readme & discussions. From 8268aa17efc8185bc96b9754790f7af7cd937ffb Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 28 Nov 2022 01:22:09 +0100 Subject: [PATCH 0726/1224] Update README.md --- .github/README.md | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/.github/README.md b/.github/README.md index c6dcf7c82..66273b7f5 100644 --- a/.github/README.md +++ b/.github/README.md @@ -67,6 +67,24 @@ Planned Features > Further reading: [***"Contributing without programming"***](https://github.com/ImprovedTube/YouTube-Extension/discussions/753) & [*"Our CSS, JavaScript, json"*](https://github.com/ImprovedTube/ImprovedTube/pull/371#issuecomment-669725163) ( ***outdated**)* (*Newcomers are [we](https://github.com/ImprovedTube/ImprovedTube/issues/387#issuecomment-664980078)lcome tho! We review all edits & love to collaborate*)

+ +

+ 🎁Extensions & Projects

+ +#### [**`History Manager`**] [[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)] [**unLock me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse)] [[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent)] [[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)] +##### Research: [[Regex (Search)](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] +#### **Video / Media:** (**to be integrated in ImprovedTube**...) [[**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper)] [[**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame)] [[**`unBlob`**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob)] (Equalizer[](https://github.com/code-for-charity/equalizer)) + +##### Home: (Start Page to be uploaded ) [[`TextEditor`]([https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka?hl=de))[](https://github.com/code-for-charity/Editor)] [[`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo)] [[`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)")] + +--- + +#### **Development:** [[**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library] [[**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library] ([TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player)) + +#### Git Community: [🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex")] [🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot)] + +
+

     🧰 Features      

@@ -98,22 +116,8 @@ Planned Features - 6.) Select the `manifest.json` file from unzipped folder
-

- 🎁Extensions & Projects

- -#### [**`History Manager`**] [[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)] [**unLock me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse)] [[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent)] [[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)] -##### Research: [[Regex (Search)](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] -#### **Video / Media:** (**to be integrated in ImprovedTube**...) [[**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper)] [[**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame)] [[**`unBlob`**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob)] (Equalizer[](https://github.com/code-for-charity/equalizer)) -##### Home: (Start Page to be uploaded ) [[`TextEditor`]([https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka?hl=de))[](https://github.com/code-for-charity/Editor)] [[`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo)] [[`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)")] ---- - -#### **Development:** [[**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library] [[**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library] ([TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player)) - -#### Git Community: [🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex")] [🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot)] - -
From 1da9e1a695c2b3bc8888b4c31bf4ec5844c965ab Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 28 Nov 2022 01:26:59 +0100 Subject: [PATCH 0727/1224] Update README.md --- .github/README.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/README.md b/.github/README.md index 66273b7f5..98dc50ed8 100644 --- a/.github/README.md +++ b/.github/README.md @@ -1,8 +1,10 @@ - - - - -

+ + + + +

ImprovedTube   

/«Improve YouTube!»/ is a lightweight & powerful extension to enrich your experience & enable your choice.

From f312679e17a6057d4d0f1174b3fc75605bff64c6 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 28 Nov 2022 01:28:28 +0100 Subject: [PATCH 0728/1224] Update README.md --- .github/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/README.md b/.github/README.md index 98dc50ed8..f78e19eee 100644 --- a/.github/README.md +++ b/.github/README.md @@ -5,8 +5,8 @@ For some quick editing, text is at the start of lines

-ImprovedTube   

-/«Improve YouTube!»/ +«Improve YouTube!»   

+/ImprovedTube/ is a lightweight & powerful extension to enrich your experience & enable your choice.

From 0fc8e4836eb03bf9ce7263cd399bcc9aa0cda748 Mon Sep 17 00:00:00 2001 From: Nguyen Quan Date: Mon, 28 Nov 2022 17:08:35 +0700 Subject: [PATCH 0729/1224] General' Features don't appear in 'Search' & Settings: 'Activate Features --- .idea/.gitignore | 5 +++++ .idea/ImprovedTube-for-YouTube.iml | 12 ++++++++++++ .idea/modules.xml | 8 ++++++++ .idea/vcs.xml | 6 ++++++ options-page/skeleton-parts/general.js | 9 +++++---- 5 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/ImprovedTube-for-YouTube.iml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 000000000..b58b603fe --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/ImprovedTube-for-YouTube.iml b/.idea/ImprovedTube-for-YouTube.iml new file mode 100644 index 000000000..0c8867d7e --- /dev/null +++ b/.idea/ImprovedTube-for-YouTube.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 000000000..4e4aaaac4 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 000000000..94a25f7f4 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/options-page/skeleton-parts/general.js b/options-page/skeleton-parts/general.js index de8aff9f8..4ac2eb035 100644 --- a/options-page/skeleton-parts/general.js +++ b/options-page/skeleton-parts/general.js @@ -7,7 +7,8 @@ extension.skeleton.main.layers.section.general = { variant: 'general', category: true, on: { - click: [{ + click: { + section_1: { component: 'section', variant: 'card', @@ -1144,7 +1145,7 @@ extension.skeleton.main.layers.section.general = { }] } }, - { + section_2: { component: 'section', variant: 'card', title: 'watchedVideos', @@ -1225,7 +1226,7 @@ extension.skeleton.main.layers.section.general = { } } }, - { + section_3: { component: 'section', variant: 'card', title: 'thumbnails', @@ -1265,7 +1266,7 @@ extension.skeleton.main.layers.section.general = { tags: 'preview' } } - ] + } }, icon: { From 7a51be52be10976f54c8a2015045dfb539018fc8 Mon Sep 17 00:00:00 2001 From: Nguyen Quan Date: Tue, 29 Nov 2022 07:52:57 +0700 Subject: [PATCH 0730/1224] delete .idea/ --- .idea/.gitignore | 5 ----- .idea/ImprovedTube-for-YouTube.iml | 12 ------------ .idea/modules.xml | 8 -------- .idea/vcs.xml | 6 ------ 4 files changed, 31 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/ImprovedTube-for-YouTube.iml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index b58b603fe..000000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ diff --git a/.idea/ImprovedTube-for-YouTube.iml b/.idea/ImprovedTube-for-YouTube.iml deleted file mode 100644 index 0c8867d7e..000000000 --- a/.idea/ImprovedTube-for-YouTube.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 4e4aaaac4..000000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7f4..000000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From 4559eb11f2fd7f5e1c6b2423fdca1e84954d2f68 Mon Sep 17 00:00:00 2001 From: Nguyen Quan Date: Thu, 1 Dec 2022 09:47:18 +0700 Subject: [PATCH 0731/1224] Fix 1501: The setting of channel 'default channel tab' feature isn't working after YTB changed the layout. --- .gitignore | 1 + content-scripts/website-context/core.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..62c893550 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea/ \ No newline at end of file diff --git a/content-scripts/website-context/core.js b/content-scripts/website-context/core.js index e84ff603c..4280f8b51 100644 --- a/content-scripts/website-context/core.js +++ b/content-scripts/website-context/core.js @@ -31,7 +31,7 @@ var ImprovedTube = { }, regex: { channel: new RegExp('\/(user|channel|c)\/'), - channel_home_page: new RegExp('\/(user|channel|c)\/.+(\/featured)?\/?$'), + channel_home_page: new RegExp('\/(\@|user\/|channel\/|c\/).+(\/featured)?\/?$'), channel_home_page_postfix: new RegExp('\/(featured)?\/?$'), thumbnail_quality: new RegExp('(default\.jpg|mqdefault\.jpg|hqdefault\.jpg|hq720\.jpg|sddefault\.jpg|maxresdefault\.jpg)+'), video_id: new RegExp('[?&]v=([^&]+)'), From 4c6b089419213be566584cebeb33d0e55bf53df5 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 3 Dec 2022 07:56:47 +0100 Subject: [PATCH 0732/1224] Delete .gitignore --- .gitignore | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 62c893550..000000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.idea/ \ No newline at end of file From 2eaf6e9fa769ea1151444fedb541789b094fcbad Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Tue, 6 Dec 2022 12:31:38 +0800 Subject: [PATCH 0733/1224] Fix comments "collapsed" break short comment --- .../youtube-features/appearance/comments/comments.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/comments/comments.js b/content-scripts/extension-context/youtube-features/appearance/comments/comments.js index 6b27af5bd..e2bd170e6 100644 --- a/content-scripts/extension-context/youtube-features/appearance/comments/comments.js +++ b/content-scripts/extension-context/youtube-features/appearance/comments/comments.js @@ -24,7 +24,7 @@ extension.features.comments = function (anything) { event.clientY - rect.top + rect.height >= 0 && rect.top + rect.height - event.clientY < 48 ) { - document.querySelector('ytd-comments').toggleAttribute('it-activated'); + target.parentNode.parentNode.parentNode.toggleAttribute('it-activated'); } } } From 0fcb08183f8ae2258d419e44ebb368a080def677 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Tue, 6 Dec 2022 12:39:05 +0800 Subject: [PATCH 0734/1224] Fixed skip overlay not working --- .../youtube-features/appearance/player/player.css | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/content-scripts/extension-context/youtube-features/appearance/player/player.css b/content-scripts/extension-context/youtube-features/appearance/player/player.css index 9c2c92987..332072dd3 100644 --- a/content-scripts/extension-context/youtube-features/appearance/player/player.css +++ b/content-scripts/extension-context/youtube-features/appearance/player/player.css @@ -510,4 +510,13 @@ html[it-player-view-button=true] .ytp-size-button, html[it-player-screen-button=true] .ytp-fullscreen-button, html[it-player-remote-button=true] .ytp-remote-button { display: none !important; +} + +/*-------------------------------------------------------------- +# SKIP OVERLAY +--------------------------------------------------------------*/ + +html[it-player-hide-skip-overlay=true] .ytp-doubletap-ui, .ytp-doubletap-ui-legacy +{ + visibility: hidden; } \ No newline at end of file From 446b36ebcc6d9617a79e92a66c34380cbf6af806 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Tue, 6 Dec 2022 13:56:20 +0800 Subject: [PATCH 0735/1224] Update channel regex --- content-scripts/website-context/functions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index e4f6da61d..fc3a60a95 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -212,7 +212,7 @@ ImprovedTube.pageType = function () { document.documentElement.dataset.pageType = 'subscriptions'; } else if (/\/watch\?/.test(location.href)) { document.documentElement.dataset.pageType = 'video'; - } else if (/\/channel|user|c\//.test(location.href)) { + } else if (/\/channel|\/user|\/c\/|\/@.*\//.test(location.href)) { document.documentElement.dataset.pageType = 'channel'; } else { document.documentElement.dataset.pageType = 'other'; From dc9c1ada2c7be30a8302f75f975bdaf37c7e8e04 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Tue, 6 Dec 2022 13:57:15 +0800 Subject: [PATCH 0736/1224] Fix recently uploaded and popular buttons missing on channel when header on hover --- .../youtube-features/appearance/header/header.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content-scripts/extension-context/youtube-features/appearance/header/header.css b/content-scripts/extension-context/youtube-features/appearance/header/header.css index 3eb16b150..8f4b95166 100644 --- a/content-scripts/extension-context/youtube-features/appearance/header/header.css +++ b/content-scripts/extension-context/youtube-features/appearance/header/header.css @@ -43,6 +43,10 @@ html[it-header-position=hidden] ytd-page-manager#page-manager, html[it-header-position=hidden_on_video_page][data-page-type='video'] ytd-page-manager#page-manager, html[it-header-position=hover] ytd-page-manager#page-manager, html[it-header-position=hover_on_video_page][data-page-type='video'] ytd-page-manager#page-manager, +html[it-header-position=hidden][data-page-type='channel'] tp-yt-app-header#header, +html[it-header-position=hidden_on_video_page][data-page-type='channel'] tp-yt-app-header#header, +html[it-header-position=hover][data-page-type='channel'] tp-yt-app-header#header, +html[it-header-position=hover_on_video_page][data-page-type='channel'] tp-yt-app-header#header, html[it-header-position=static] ytd-page-manager#page-manager { margin-top: 0; } From 8a9c4cf959a96f7bd6c119b2745c7e3080a8a5cb Mon Sep 17 00:00:00 2001 From: Dmitry Britov Date: Thu, 8 Dec 2022 22:31:09 +0300 Subject: [PATCH 0737/1224] Added Russian localization --- _locales/ru/messages.json | 58 +++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 44aed5990..7adffb3f0 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -51,7 +51,7 @@ "message": "Разрешить 60fps" }, "always": { - "message": "Always" + "message": "Всегда" }, "alwaysActive": { "message": "Всегда активный" @@ -66,7 +66,7 @@ "message": "Анализатор" }, "animations": { - "message": "Animations" + "message": "Анимации" }, "appearance": { "message": "Внешний вид" @@ -132,19 +132,19 @@ "message": "Блокировать все" }, "blockAv1": { - "message": "Block AV1" + "message": "Блокировать AV1" }, "blockH264": { - "message": "Block H.264" + "message": "Блокировать H.264" }, "blockMusic": { "message": "Блокировать музыку" }, "blockVp8": { - "message": "Block VP8" + "message": "Блокировать VP8" }, "blockVp9": { - "message": "Block VP9" + "message": "Блокировать VP9" }, "blue": { "message": "Синий" @@ -189,7 +189,7 @@ "message": "Стиль контура символов" }, "clip": { - "message": "Clip" + "message": "Создать клип" }, "clipboard": { "message": "Буфер обмена" @@ -198,7 +198,7 @@ "message": "Кодек H.264" }, "codecs": { - "message": "Codecs" + "message": "Кодеки" }, "collapseOfSubscriptionSections": { "message": "Свернуть раздел подписок" @@ -231,7 +231,7 @@ "message": "Пользовательский JS" }, "customMiniPlayer": { - "message": "Новый мини-плеер" + "message": "Пользовательский мини-плеер" }, "cyan": { "message": "Бирюзовый" @@ -282,7 +282,7 @@ "message": "Депрессивный" }, "description": { - "message": "Description" + "message": "Описание" }, "description_ext": { "message": "Сделайте YouTube аккуратным + умным! Цвет видео YouTube пропуск рекламы громкость скорость канала стиль инструмента HD реклама adblock блокировщик рекламы теги список ключевых слов" @@ -309,7 +309,7 @@ "message": "Дизлайк" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Показывать день недели" }, "doNotChange": { "message": "Не менять" @@ -324,10 +324,10 @@ "message": "Перетаскиваемый" }, "dropShadow": { - "message": "Отбрасывемая тень" + "message": "Отбрасываемая тень" }, "durationWithSpeed": { - "message": "Show time remaining with reference to playback speed" + "message": "Показывать оставшееся время видео с учётом скорости воспроизведения" }, "email": { "message": "E-mail" @@ -423,7 +423,7 @@ "message": "Зеленый" }, "hardwareInformation": { - "message": "Hardware information" + "message": "Информация об оборудовании" }, "hd": { "message": "HD" @@ -462,7 +462,7 @@ "message": "Скрывать дату видео" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Скрывать кнопку «Ещё»" }, "hideDetails": { "message": "Скрывать подробную информацию" @@ -543,7 +543,7 @@ "message": "Улучшить логотип YouTube" }, "improvedtubeButtons": { - "message": "ImprovedTube buttons" + "message": "Кнопки расширения ImprovedTube" }, "improvedtubeIconOnYoutube": { "message": "Значок ImprovedTube в YouTube" @@ -576,10 +576,10 @@ "message": "Языки" }, "layerAnimationScale": { - "message": "Layer animation scale" + "message": "Масштаб слоя анимации" }, "layout": { - "message": "Layout" + "message": "Слой" }, "legacyYoutube": { "message": "Старая версия YouTube" @@ -603,7 +603,7 @@ "message": "Понравившиеся" }, "likes": { - "message": "Likes" + "message": "Лайки" }, "lime": { "message": "Лайм" @@ -645,7 +645,7 @@ "message": "More" }, "mostViewedChannels": { - "message": "Most viewed channels" + "message": "Самые просматриваемые каналы" }, "moveSidebarLeft": { "message": "Сместить боковую панель влево" @@ -672,7 +672,7 @@ "message": "Ночь" }, "nightMode": { - "message": "Night mode" + "message": "Ночной режим" }, "noActiveFeatures": { "message": "Нет активных функций" @@ -687,7 +687,7 @@ "message": "Обычный" }, "off": { - "message": "Off" + "message": "Выключить" }, "ok": { "message": "Хорошо" @@ -768,7 +768,7 @@ "message": "Плеер во всплывающем окне" }, "popupWindowButtons": { - "message": "popup_window_buttons" + "message": "Добавить кнопки всплывающего окна" }, "position": { "message": "Положение" @@ -822,7 +822,7 @@ "message": "Повтор" }, "report": { - "message": "Report" + "message": "Пожаловаться" }, "reset": { "message": "Сбросить" @@ -885,7 +885,7 @@ "message": "Настройки успешно импортированы" }, "share": { - "message": "Share" + "message": "Поделиться" }, "shortcuts": { "message": "Горячие клавиши" @@ -906,7 +906,7 @@ "message": "Показать время до конца видео" }, "showVersion": { - "message": "Show version" + "message": "Показывать версию" }, "shuffle": { "message": "Перемешать" @@ -915,7 +915,7 @@ "message": "Боковая панель" }, "softwareInformation": { - "message": "Software information" + "message": "Информация о программном обеспечении" }, "spacebar": { "message": "Пробел" @@ -1071,7 +1071,7 @@ "message": "Время просмотра" }, "whenPaused": { - "message": "When paused" + "message": "При паузе" }, "whenTabIsChanged": { "message": "При смене вкладки" @@ -1101,6 +1101,6 @@ "message": "Язык YouTube" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "YouTube ограничивает качетво видео до 1080p для кодека H.264" + "message": "YouTube ограничивает качество видео до 1080p для кодека H.264" } } \ No newline at end of file From e13137ffaacee16cd98ed546aa55d7dae09336da Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 9 Dec 2022 19:07:03 +0100 Subject: [PATCH 0738/1224] Update README.md --- .github/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index f78e19eee..ce7ae2b46 100644 --- a/.github/README.md +++ b/.github/README.md @@ -152,7 +152,8 @@ Planned Features

- + @@ -31,7 +31,7 @@ - + From 8b62836fa5273d3c2d40be43b8ab9ee914f0199a Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 22 Jan 2023 19:55:10 +0100 Subject: [PATCH 0768/1224] typos --- LICENSE | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/LICENSE b/LICENSE index ca4781802..b72c49840 100644 --- a/LICENSE +++ b/LICENSE @@ -15,9 +15,9 @@ DRAFT: Please vote about our futures actions. 3. PUBLISHERS: All unmodified distribution is welcome (essential)! permitted! (just don't wrap it in ads or drive-by installs!) - 3.1 MODIFIED Versions or pieces of our code: + 3.1. MODIFIED Versions or pieces of our code: - Registered Charity organisations: you can modify / repurpose. (Just don't remove our links or state the source well.) - RESTICTION: COMMERCIALLY modifying or repurosing any of the code that is not the full, such as 'version 3.8'. + RESTRICTION: COMMERCIALLY modifying or repurosing any of the code that is not the full, such as 'version 3.8'. Written permission/contract is required. No such permission was granted to as of 2023. Exception: OS's (Operatings Systems. Debian, Fedora, etc.) @@ -25,7 +25,7 @@ DRAFT: so that the license doesnt require virality) --- COMMENT/POSTAMBLE: -1. Reason for the specific restriction: +Reason for the specific restriction in 3.1.: Some publishers use [our] code without permission commercially, with [excessive] adware/spyware. Together they can have more users than the original, since software is often not chosen well. Thus we rationally/responsibly have to care. From 26d147041211aa3400f8ff46062bb0406190c9b9 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 22 Jan 2023 22:57:33 +0100 Subject: [PATCH 0769/1224] Update README.md --- .github/README.md | 372 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 355 insertions(+), 17 deletions(-) diff --git a/.github/README.md b/.github/README.md index e477fd391..51beeeade 100644 --- a/.github/README.md +++ b/.github/README.md @@ -1,25 +1,18 @@ -

- - ImprovedTube -

- +

ImprovedTube

Powerful but lightweight extension to enrich your video experience & content selection.

- Report a bug · Request feature · Contribute · Donate +
- -
- - + +

Install

-

🌎 Translators

BRAVO68WEB
RU : qweered, -alexesprit
+alexesprit, +kenclaron,
✔️pt_BR : dthiago, Mike-Correa
From a61f214ddfab91f0a29f41beaf6c3c52e738e0d7 Mon Sep 17 00:00:00 2001 From: 0x67686F7374 <120918635+0x67686F7374@users.noreply.github.com> Date: Sun, 18 Dec 2022 16:10:19 +0300 Subject: [PATCH 0739/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index ce7ae2b46..c1d2b65c4 100644 --- a/.github/README.md +++ b/.github/README.md @@ -49,7 +49,7 @@ Today adding something is easier & so motivating as there are 500 000 users. [[

Planned Features

- - 🛈ToolTips + - ToolTips - Global Video Controls - Fullpage Video History/Dashboard - Smart Filtering/Blocking/Discovery From c0a5f69b35c75891c7bcaf5881e02bc13baae683 Mon Sep 17 00:00:00 2001 From: 0x67686F7374 <120918635+0x67686F7374@users.noreply.github.com> Date: Mon, 19 Dec 2022 23:03:27 +0300 Subject: [PATCH 0740/1224] Update README.md --- .github/README.md | 378 ++++++---------------------------------------- 1 file changed, 46 insertions(+), 332 deletions(-) diff --git a/.github/README.md b/.github/README.md index c1d2b65c4..423649816 100644 --- a/.github/README.md +++ b/.github/README.md @@ -1,332 +1,46 @@ - - - - -

-«Improve YouTube!»   

-/ImprovedTube/ -is a lightweight & powerful extension to enrich your experience & enable your choice.

-

- - - - - - -

- -

- [Report a bug] - · [Request feature] - · [Donate] - · [Features] -

- -

YouTube Extension

- -

Critiques

-recommended by firefox -by (only ~ 100)
-'Might be the best YouTube Extension Ever'-
-'enhances YouTube in meaningful ways'-
-'Strong add-on, full control. Yet clear & easy'-
-
-Big thanks ♡ to our contributors, dodieboy,
-translators/wiki-authors & donators :bowtie:
-
- -### The strongest Youtube Extension
90 proven features - the only one of a kind - Since 2012 we have gradually been adding lightweight features & keeping up with Youtube changes. -(throughout the years we witnessed the birth & fall of other promising & open YouTube Extensions [1](https://github.com/YePpHa/YouTubeCenter "YouTubeCenter"), [2](https://github.com/ParticleCore/Iridium "Iridium"), ... ) -Today adding something is easier & so motivating as there are 500 000 users. [[👪Join us]](https://github.com/code-for-charity/YouTube-Extension/discussions/1006 "github.com/Code-for-Charity"). -#####
Spread the word [📣](Http://Twitter_Whatsapp_Discord_Youtube_Facebook_eMail_Telegram_Signal)
-        - -**W**hy arent there millions of users yet? We didn't write a guide or manual, let alone ads. This project can still fly much higher through your word of mouth & eventually enable us to work on all wishes & more immediate updates around the clock 🌱 - - -

-Planned Features

- - - ToolTips - - Global Video Controls - - Fullpage Video History/Dashboard - - Smart Filtering/Blocking/Discovery - - Preventing CPU Rendering by default -
- -

   -🏝🏕 To-DoList

  
- -##### **0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer some bug bounty. [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "especially if you are at a cheap/poor place ❤️") .)
-##### **1.** **[ ]** [**Documentation, wiki, screenshots, video, ...**](https://github.com/code-for-charity/YouTube-Extension/wiki "We need to help people learning as easily as possible about our 90+ features. (Drafts welcome. This will become 🛈tooltips in the extension too!") -> We need to help people to learn as easily as possible about our [90+ features](https://github.com/ImprovedTube/ImprovedTube/wiki/Features). (Drafts welcome. This will become **🛈ToolTips** in the extension!")
+**[ ]**[Updating translations](https://github.com/code-for-charity/YouTube-Extension/wiki/Translation-HowTo " - some language files miss additions.") +**[ ]**proofreading [eng](https://github.com/ImprovedTube/ImprovedTube/blob/master/_locales/en/messages.json) -#### **2.** [ ][**Plans / Specifications 🧩**](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues?q=is%3Aissue+sort%3Acomments-desc+is%3Aopen+label%3A%22%F0%9F%A7%A9Plan+ready%22++-label%3A%22not+Goo.+Chrome%22+ "often unique & relevant (special)")
   **&**    [ ] [**organizational Discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=category%3AToDo++category%3AOrganization+ "Future & Structure") -##### **3.** [ ] [**Feature Requests🌟🧚**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3A%22Feature+Request%22+sort%3Acomments-desc+is%3Aopen+-label%3A_++-label%3A%22not+Goo.+Chrome%22+ "- sometimes easy / CSS") - sometimes easy / CSS
     **+** [ ]  [**Wishes in discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=-category%3AToDo+-category%3AOrganization+ "Wishes, Ideas, Questions, News") - -###### **0.1. [ ]** Tidy: [(Rest/Unsorted 'issues')](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+is%3Aopen+-label%3Abug+-label%3A%22Feature+Request%22+-label%3A%F0%9F%A7%A9Plan%20ready+-label%3A_+-label%3A%22not+Goo.+Chrome%22+sort%3Acreated-desc++-label%3A"Niche%2Frare+usecase%3F%2Ffun%3F"++-label%3Aunclear "Our github issues, which are not yet labled yet to appear in one of the ToDo-categories above") -> Further reading: [***"Contributing without programming"***](https://github.com/ImprovedTube/YouTube-Extension/discussions/753) & [*"Our CSS, JavaScript, json"*](https://github.com/ImprovedTube/ImprovedTube/pull/371#issuecomment-669725163) ( ***outdated**)* (*Newcomers are [we](https://github.com/ImprovedTube/ImprovedTube/issues/387#issuecomment-664980078)lcome tho! We review all edits & love to collaborate*) -
- - -

- 🎁Extensions & Projects

- -#### [**`History Manager`**] [[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)] [**unLock me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse)] [[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent)] [[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)] -##### Research: [[Regex (Search)](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] -#### **Video / Media:** (**to be integrated in ImprovedTube**...) [[**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper)] [[**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame)] [[**`unBlob`**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob)] (Equalizer[](https://github.com/code-for-charity/equalizer)) - -##### Home: (Start Page to be uploaded ) [[`TextEditor`]([https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka?hl=de))[](https://github.com/code-for-charity/Editor)] [[`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo)] [[`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)")] - ---- - -#### **Development:** [[**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library] [[**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library] ([TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player)) - -#### Git Community: [🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex")] [🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot)] - -
- -

     -🧰 Features      

- - - Fit Video to window, default resolution or pop-up player - - Hiding distractions - - Youtube Themes, Colors & night schedule - - Video Repeat-, screenshot-, rotate-buttons - - Customizable hotkeys / shortcuts - -
- -

      -🔧 Install from source

 
- -1.) **Download & extract the [[latest🧪version]](https://github.com/code4charity/YouTube-Extension/archive/refs/heads/master.zip) or [[release]](https://github.com/code-for-charity/YouTube-Extension/releases)** -- **Safari**: - - 2.) [**#494**](https://github.com/code4charity/YouTube-Extension/issues/494#issuecomment-675098753) - -- **Chrome / Chromium / Brave / Edge / Vivaldi** - - 2.) Go to your Browser's Extensions page (*chrome://extensions/*) - - 3.) Activate `Developer mode` - - 4.) Click the `Load unpacked` button & Select the extracted folder - -- **Firefox / LibreWolf / Waterfox / IceCat** - - 2.) Go to `Add-ons` (*about:addons*) - - 3.) Click on `Extensions` tab - - 4.) Click on `Debug Add-ons` (*about:debugging#/runtime/this-firefox*) - - 5.) Click on `Load Temporary Add-on…` - - 6.) Select the `manifest.json` file from unzipped folder -
- - - - - -

-🌎 Translators

-✔️EN+ - en_GB : -KorbinCode -
Proofreaders:___ (You?)
-✔️CN(zh_CN) : -niceRAM, -ausers
-✔️CN(zh_TW) : -Still34, -water903,
-suitangi
-ES : -Kioraga, -Compvictor, -dimateos
-HI : -monishamandal02, -BRAVO68WEB
-FR : -leghort, -Eymiks, -Solvabl
-AR : -Raayib
-✔️BN : -BRAVO68WEB
-RU : -qweered, -alexesprit, -kenclaron,
-✔️pt_BR : -dthiago, -Mike-Correa
-DavidBrazSan
-PT : -DrNopt
-ID : -Bagus23, -A.Muttaqin
-✔️DE : -Termuellinator, -css-smueller
-✔️JA : -utuhiro78
-TR : -onurdumangoz, -daswareinfach
-VN : -zeref-dragneel
-KO : -msc9533, -LYHyoung
-❌(Iranian) Persian : -_____(You?)
-✔️IT : -urfausto, -FedericoSlongo
-❌TH Thai : -______(You?)
-✔️PL : -FluidExtractor
-Ukrainian : -(You?)
-Hebrew : -(You?)
-Czech : -(You?)
-SE Swedish : -(You?)
-NL : -aron-hoogeveen, -Vistaus
-RO : -hateofhades
-SI : -AshenNethsara
-EL(Greek) : -molyvius
-DA Danish : -(You?)
-Hungarian : -(You?)
-FI Finnish : -(You?)
-Serbian : -(You?)
-Slovak : -(You?)
-BG Bulgarian : -(You?)
-no_NB : -comradekingu
-HR(Croatian) : -mbeara
-Croatian : -(You?)
-NO : -master3395, -comradekingu
-SK : -bbc-s
-Catalan, Valencian : -(You?)
-Estonian : -(You?)
-
- - = missing some additions/updates -
- -
The following popular languages are
-spoken mainly. But dont hesitate to add
one of them. (Even if just for fun)

-Urdu -Nigerian Pidgin (English Creole)
-Western-&Eastern-Punjabi
-Marathi(Indo-European)Telugu
-Tamil Yue Chinese (incl. Cantonese)
-Tagalog (New name: Filipino)
Wu Chinese (incl. Shanghainese)
-HausaEgyptian Spoken Arabic
-SwahiliJavaneseKannadaGujarati
-Amharic, Bhojpuri,
-Min Nan Chinese (incl. Hokkien),
-Jin Chinese Yoruba Hakka Chinese,
-Burmese,
-Spoken Arabic: Sudanese & Algerian
-Lingala, Malaysian Malay
-(Combined these have more first-language
-speakers than English + Spanish + Hindi.
-And more second-language speakers than
-Chinese + Hindi + Spanish)
-
-
- -

     -📟 "Ticker"

  
- -###### ❔[**ImprovedTube controls** in, under or around the video player or cursor](https://github.com/code4charity/YouTube-Extension/issues/1445).
❔[**Meaningful/Most similar extensions**? Social-Fixer, Youtube Enhancer, Simplify, ...](https://github.com/code4charity/YouTube-Extension/issues/1016).
📟 We are focused on update, bugs & UX but please keep up your wishes for Features!
📟 Enjoy **our projects: global** [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl), to tweak CSS everywhere + Theme engine in the making, ...
📟 **2021:** Firefox, Edge, Opera, Whale added (please try&rate) -
- -#####
💡 Got great ideas?
- -We'll work on novel (new & unique) projects [github/**Wish-Factory**](https://github.com/code-for-charity/wish-factory "💡🎁") -
(or ideas@improvedtube.com) - -

     -🌾👩‍💻 "Behind the scenes"

  
- -web store -web store analytics -youtube recommmendation -
-Do you need to run a popular extension, site, app or repo?
We'll love to help meaningful projects@improvedtube.com -
- - - - - - - - -


     -📜Old Introduction:

     
- -[ImprovedTube](https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd), -      is an extension we built to refine your YouTube experience. A one-stop-shop with many powerful features to enhance YouTube, yet liteweight. A larger player & tidy YouTube UI / hiding distractions were the first loved feature. And there was so much left to build and are many clever features to come still.        ImprovedTube is designed with our own UI library: [Satus](https://github.com/victor-savinov/satus) (to manage your settings efficiently & create familiar apps/['cousins](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl) easily.)       Please spread the word: ImprovedTube is the only project of it's kind, because other open Youtube Extensions resigned. No other project provides so much CSS to adjust a website[🦄](https://github.com/search?q=stars%3A%3E700++size%3A%3E3000+++language%3ACSS++App+OR+Addon+OR+Extension+NOT+framework+NOT+apps&type=Repositories&s=updated&o=desc). -

- - chrome-web-store-linkChrome-users

- -** Some ImprovedTube features**: -- Video quality -- Themes and customisation -- Repeat-, screenshot-, rotate-buttons -- Pop-up player -- Ads management -- Hide Cards and Annotations -- Customise video page appearance (always expand description, hide related videos etc.) -- Channel page customisations -- Customisation of hotkeys/shortcuts -- Statistics -- Volume mixer -_[Full list](https://github.com/ImprovedTube/YouTube/wiki/Features)_ - -**🔧 Install from source** -1.) **Download & extract the [[latest🧪version]](https://github.com/code4charity/YouTube-Extension/archive/refs/heads/master.zip) or [[release]](https://github.com/code-for-charity/YouTube-Extension/releases)** -- **Safari**: - - 2.) [Issue #494](https://github.com/code4charity/YouTube-Extension/issues/494#issuecomment-675098753) - -- **Chrome / Chromium / Brave / Edge / Vivaldi** - - 2.) Go to your Browser's Extensions page (*chrome://extensions/*) - - 3.) Activate `Developer mode` - - 4.) Click the `Load unpacked` button & Select the extracted folder - -- **Firefox / LibreWolf / Waterfox / IceCat** - - 2.) Go to `Add-ons` (*about:addons*) - - 3.) Click on `Extensions` tab - - 4.) Click on `Debug Add-ons` (*about:debugging#/runtime/this-firefox*) - - 5.) Click on `Load Temporary Add-on…` - - 6.) Select the `manifest.json` file from unzipped folder - -#### Web browser support -|[Brave](https://brave.com)
Brave | [Chromium](https://github.com/chromium/chromium)
Chromium | [Chrome](https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd)
Chrome | [Edge](https://www.microsoft.com/edge)
Edge | [Firefox](https://foundation.mozilla.org)
Firefox | [Opera](https://addons.opera.com/en/extensions/details/install-chrome-extensions/)
Opera| [Safari](https://www.apple.com/safari/)
Safari | [Vivaldi](https://github.com/ric2b/Vivaldi-browser)
Vivaldi | -| --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | -| 0.52+ | 49.0+ | 49.0+ | 79.0+ | 44.0+ | 36.0+ | x.x+ | 1.0+ | -
+

+ + ImprovedTube +

+ +

Lightweight and powerful extension to enrich your YouTube experience.

+[Report a bug] · +[Request feature] · +[Donate] · +[Features] + +
+
+
+ + +

Install

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
LinkVersion
Chrome Web Store4.0.1
Microsoft Edge Addons3.800
Firefox Add-ons3.935
Opera Add-ons3.920
Whale Store3.800
+
+

Or install manually from GitHub.

From 53bd7704b82a5f1ea270cdf4f8a4bf433acee1bc Mon Sep 17 00:00:00 2001 From: 0x67686F7374 <120918635+0x67686F7374@users.noreply.github.com> Date: Tue, 20 Dec 2022 20:47:16 +0300 Subject: [PATCH 0741/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index 423649816..fc168537e 100644 --- a/.github/README.md +++ b/.github/README.md @@ -18,7 +18,7 @@ - + From 76c1f791644dc7dff20dee5e068585554e393939 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 20 Dec 2022 21:27:03 +0100 Subject: [PATCH 0742/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index fc168537e..bfc25d9a2 100644 --- a/.github/README.md +++ b/.github/README.md @@ -3,7 +3,7 @@ ImprovedTube -

Lightweight and powerful extension to enrich your YouTube experience.

+

Lightweight & powerful extension to enrich your video experience & choice.

[Report a bug] · [Request feature] · [Donate] · From 1eb57afa234fba934d5bb5eaed7a945d9d22aca4 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 20 Dec 2022 21:34:16 +0100 Subject: [PATCH 0743/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index bfc25d9a2..ff522376b 100644 --- a/.github/README.md +++ b/.github/README.md @@ -3,7 +3,7 @@ ImprovedTube -

Lightweight & powerful extension to enrich your video experience & choice.

+

Lightweight & powerful extension to enrich your video-experience & -choice.

[Report a bug] · [Request feature] · [Donate] · From 745168815cbf386fc7931673ace60f749c28731b Mon Sep 17 00:00:00 2001 From: 0x67686F7374 <120918635+0x67686F7374@users.noreply.github.com> Date: Wed, 21 Dec 2022 11:51:28 +0300 Subject: [PATCH 0744/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index ff522376b..649110f63 100644 --- a/.github/README.md +++ b/.github/README.md @@ -3,7 +3,7 @@ ImprovedTube -

Lightweight & powerful extension to enrich your video-experience & -choice.

+

Lightweight and powerful extension to enrich your video-experience and choice.

[Report a bug] · [Request feature] · [Donate] · From e2505479cf8f137a2749d632232e925d3962099f Mon Sep 17 00:00:00 2001 From: 0x67686F7374 <120918635+0x67686F7374@users.noreply.github.com> Date: Wed, 21 Dec 2022 11:52:39 +0300 Subject: [PATCH 0745/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index 649110f63..fc168537e 100644 --- a/.github/README.md +++ b/.github/README.md @@ -3,7 +3,7 @@ ImprovedTube -

Lightweight and powerful extension to enrich your video-experience and choice.

+

Lightweight and powerful extension to enrich your YouTube experience.

[Report a bug] · [Request feature] · [Donate] · From 41394c6f6bfb67340712b35adcb36ee404cc153f Mon Sep 17 00:00:00 2001 From: 0x67686F7374 <120918635+0x67686F7374@users.noreply.github.com> Date: Wed, 21 Dec 2022 11:54:59 +0300 Subject: [PATCH 0746/1224] Update README.md --- .github/README.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/README.md b/.github/README.md index fc168537e..17cc56010 100644 --- a/.github/README.md +++ b/.github/README.md @@ -4,16 +4,8 @@

Lightweight and powerful extension to enrich your YouTube experience.

-[Report a bug] · -[Request feature] · -[Donate] · -[Features] -

-
- -

Install

LinkStore Version
From 8fedeba71fac7c38a7dbbe82b5186dbabd62e86a Mon Sep 17 00:00:00 2001 From: 0x67686F7374 <120918635+0x67686F7374@users.noreply.github.com> Date: Wed, 21 Dec 2022 21:17:26 +0300 Subject: [PATCH 0747/1224] Update README.md --- .github/README.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/.github/README.md b/.github/README.md index 17cc56010..7d45142ab 100644 --- a/.github/README.md +++ b/.github/README.md @@ -4,8 +4,15 @@

Lightweight and powerful extension to enrich your YouTube experience.

+ +Report a bug · +Request feature · +Donate + +
-
+ +

Install

@@ -34,5 +41,11 @@
3.800
-

Or install manually from GitHub.

+ + +
+ + +

Contributing

+

For more info on how to contribute please see the contribution wiki.

From 33bf6205ce6ea090d2fef9a463ca934a48b3ee43 Mon Sep 17 00:00:00 2001 From: 0x67686F7374 <120918635+0x67686F7374@users.noreply.github.com> Date: Wed, 21 Dec 2022 21:22:22 +0300 Subject: [PATCH 0748/1224] Update README.md --- .github/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/README.md b/.github/README.md index 7d45142ab..e1aebdd10 100644 --- a/.github/README.md +++ b/.github/README.md @@ -5,8 +5,8 @@

Lightweight and powerful extension to enrich your YouTube experience.

-Report a bug · -Request feature · +Report a bug · +Request feature · Donate From 7b0dd31bea6b7843b3dfbd5fb432ce11cffbaade Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 22 Dec 2022 02:07:14 +0100 Subject: [PATCH 0749/1224] Update SECURITY.md --- .github/SECURITY.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/SECURITY.md b/.github/SECURITY.md index f1dcb979a..893b6fe08 100644 --- a/.github/SECURITY.md +++ b/.github/SECURITY.md @@ -1,4 +1,3 @@ -info: ImprovedTube is a high layer product (in the Browser, with limited permission, youtube.com only) -and we need to pass the new google webstore reviews/audit (year 2021). Nonetheless, if update ever is urgent please post here in public and / or write to bugs@improvedtube.com using the keyword ASAP. (for example if the youtube player isn't working properly for many people.) +info: ImprovedTube is a high layer product (in the Browser. Optionally with youtube.com permission only) and we need to pass the new Webstore reviews/audits (as updated in 2021 & 2023). Nonetheless, if an update ever is urgent please post here in public and / or write to bugs@improvedtube.com using the keyword ASAP. (for example if the youtube player isn't working properly for many people.) From 24afee77e5d2c205101b60d15c7dfd5ba341c9d8 Mon Sep 17 00:00:00 2001 From: 0x67686F7374 <120918635+0x67686F7374@users.noreply.github.com> Date: Thu, 29 Dec 2022 11:54:47 +0300 Subject: [PATCH 0750/1224] Update README.md --- .github/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/README.md b/.github/README.md index e1aebdd10..0530a9cd4 100644 --- a/.github/README.md +++ b/.github/README.md @@ -7,6 +7,7 @@ Report a bug · Request feature · +Contribute · Donate From 1ec6608b0faecee298f76871b28a41d5fc419d49 Mon Sep 17 00:00:00 2001 From: Federico Slongo <73640124+FedericoSlongo@users.noreply.github.com> Date: Fri, 13 Jan 2023 10:38:05 +0100 Subject: [PATCH 0751/1224] Updated italian translation I've translated some more lines to Italian --- _locales/it/messages.json | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/_locales/it/messages.json b/_locales/it/messages.json index b007fa9d4..94489c228 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -279,7 +279,7 @@ "message": "Depresso" }, "description": { - "message": "Description" + "message": "Descrizione" }, "description_ext": { "message": "Rendi YouTube ordinato & intelligente! YouTube colore video salta annuncio volume velocità canale utensile stile HD annunci blocca-annunci etichette tags keyword playlist" @@ -306,7 +306,7 @@ "message": "Non mi piace" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Mostra il giorno della settimana" }, "doNotChange": { "message": "Non cambiare" @@ -324,7 +324,7 @@ "message": "Drop shadow" }, "durationWithSpeed": { - "message": "Show time remaining with reference to playback speed" + "message": "Mostra il tempo rimanente con riferimento alla velocità di riproduzione" }, "email": { "message": "E-mail" @@ -402,7 +402,7 @@ "message": "Generale" }, "geoPreference": { - "message": "Geo Preference" + "message": "Preferenza Geo" }, "github": { "message": "GitHub" @@ -411,7 +411,7 @@ "message": "Vai alla casella di ricerca" }, "googleApiKey": { - "message": "Google API key" + "message": "Chiave API di Google" }, "gpu": { "message": "GPU" @@ -420,7 +420,7 @@ "message": "Verde" }, "hardwareInformation": { - "message": "Hardware information" + "message": "Informazioni hardware" }, "hd": { "message": "HD" @@ -447,10 +447,10 @@ "message": "Nascondi tessere di fine video" }, "hideCategories": { - "message": "Hide categories" + "message": "Nascondi categorie" }, "hideCommentsCount": { - "message": "Hide comments count" + "message": "Nascondi il numero dei commenti" }, "hideCountryCode": { "message": "Nascondi codice paese" @@ -459,7 +459,7 @@ "message": "Nascondi data" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Nascondi il pulsante dei dettagli" }, "hideDetails": { "message": "Nascondi dettagli" @@ -579,7 +579,7 @@ "message": "YouTube versione legacy" }, "library": { - "message": "Library" + "message": "Librerie" }, "light": { "message": "Chiaro" @@ -597,7 +597,7 @@ "message": "Piaciuto" }, "likes": { - "message": "Likes" + "message": "Mi piace" }, "lime": { "message": "Lime" @@ -636,7 +636,7 @@ "message": "Mixer" }, "more": { - "message": "More" + "message": "Di piú" }, "mostViewedChannels": { "message": "Most viewed channels" @@ -666,7 +666,7 @@ "message": "Notte" }, "nightMode": { - "message": "Night mode" + "message": "Molta notturna" }, "noActiveFeatures": { "message": "Nessuna funzione attivata" @@ -702,7 +702,7 @@ "message": "Istanza unica di riproduzione attiva" }, "openPopupPlayer": { - "message": "Open video/playlist in a new window" + "message": "Apri video/playlist in una nuova finestra" }, "orange": { "message": "Arancione" @@ -735,7 +735,7 @@ "message": "Piattaforma" }, "playAllButton": { - "message": "\"Play all\" button" + "message": "\"Riproduci tutto\" pulsante" }, "playPause": { "message": "Avvio/Pausa" @@ -1005,7 +1005,7 @@ "message": "Dis/attiva tessere di fine video" }, "toggleControls": { - "message": "Toggle controls" + "message": "Attiva/disattiva i controlli" }, "topChat": { "message": "Chat superiore" From 815277d66886f19c5d44b8416482905e0b1cabf1 Mon Sep 17 00:00:00 2001 From: samy kamkar Date: Sat, 14 Jan 2023 11:03:16 -0800 Subject: [PATCH 0752/1224] fix bug where search isn't focused (dupe ids) --- content-scripts/website-context/youtube-features/shortcuts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/content-scripts/website-context/youtube-features/shortcuts.js index 65cca35d6..fad6ee393 100644 --- a/content-scripts/website-context/youtube-features/shortcuts.js +++ b/content-scripts/website-context/youtube-features/shortcuts.js @@ -538,7 +538,7 @@ ImprovedTube.shortcutResetPlaybackSpeed = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutGoToSearchBox = function () { - var search = document.querySelector('#search'); + var search = document.querySelector('input#search'); if (search) { search.focus(); From cb2eeb6906fef23b62427b5f8511bb35e88857a2 Mon Sep 17 00:00:00 2001 From: samy kamkar Date: Sat, 14 Jan 2023 11:48:42 -0800 Subject: [PATCH 0753/1224] allow onhover header to show when search focused --- content-scripts/extension-context/init.js | 1 + .../youtube-features/general/general.js | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/content-scripts/extension-context/init.js b/content-scripts/extension-context/init.js index c0b461343..b5e2f21e6 100644 --- a/content-scripts/extension-context/init.js +++ b/content-scripts/extension-context/init.js @@ -29,6 +29,7 @@ function bodyReady() { if (extension.ready && extension.domReady) { extension.features.addScrollToTop(); extension.features.font(); + extension.features.showHeaderOnSearch(); } } diff --git a/content-scripts/extension-context/youtube-features/general/general.js b/content-scripts/extension-context/youtube-features/general/general.js index f462d5519..b22e06d7a 100644 --- a/content-scripts/extension-context/youtube-features/general/general.js +++ b/content-scripts/extension-context/youtube-features/general/general.js @@ -550,4 +550,29 @@ extension.features.thumbnailsQuality = function (anything) { this.thumbnailsQuality.observer.disconnect(); } } +}; + +/*-------------------------------------------------------------- +# SHOW HEADER ON "SEARCH" +--------------------------------------------------------------*/ + +extension.features.showHeaderOnSearch = function (event) { + var search = document.querySelector('input#search'); + if (search) { + + var headerPos = document.documentElement.getAttribute('it-header-position'); + document.documentElement.setAttribute('it-header-position-original', headerPos); + if (headerPos !== 'normal' && headerPos !== 'static') { + + search.addEventListener('focusin', function (e) { + document.documentElement.setAttribute('it-header-position', 'normal'); + }); + + search.addEventListener('focusout', function (e) { + var origHeaderPos = document.documentElement.getAttribute('it-header-position-original'); + document.documentElement.setAttribute('it-header-position', origHeaderPos); + }); + + } + } }; \ No newline at end of file From 65f82f8b50077247648f490ba693c4d1eeab4472 Mon Sep 17 00:00:00 2001 From: samy kamkar Date: Sat, 14 Jan 2023 11:54:03 -0800 Subject: [PATCH 0754/1224] Revert "allow onhover header to show when search focused" This reverts commit cb2eeb6906fef23b62427b5f8511bb35e88857a2. --- content-scripts/extension-context/init.js | 1 - .../youtube-features/general/general.js | 25 ------------------- 2 files changed, 26 deletions(-) diff --git a/content-scripts/extension-context/init.js b/content-scripts/extension-context/init.js index b5e2f21e6..c0b461343 100644 --- a/content-scripts/extension-context/init.js +++ b/content-scripts/extension-context/init.js @@ -29,7 +29,6 @@ function bodyReady() { if (extension.ready && extension.domReady) { extension.features.addScrollToTop(); extension.features.font(); - extension.features.showHeaderOnSearch(); } } diff --git a/content-scripts/extension-context/youtube-features/general/general.js b/content-scripts/extension-context/youtube-features/general/general.js index b22e06d7a..f462d5519 100644 --- a/content-scripts/extension-context/youtube-features/general/general.js +++ b/content-scripts/extension-context/youtube-features/general/general.js @@ -550,29 +550,4 @@ extension.features.thumbnailsQuality = function (anything) { this.thumbnailsQuality.observer.disconnect(); } } -}; - -/*-------------------------------------------------------------- -# SHOW HEADER ON "SEARCH" ---------------------------------------------------------------*/ - -extension.features.showHeaderOnSearch = function (event) { - var search = document.querySelector('input#search'); - if (search) { - - var headerPos = document.documentElement.getAttribute('it-header-position'); - document.documentElement.setAttribute('it-header-position-original', headerPos); - if (headerPos !== 'normal' && headerPos !== 'static') { - - search.addEventListener('focusin', function (e) { - document.documentElement.setAttribute('it-header-position', 'normal'); - }); - - search.addEventListener('focusout', function (e) { - var origHeaderPos = document.documentElement.getAttribute('it-header-position-original'); - document.documentElement.setAttribute('it-header-position', origHeaderPos); - }); - - } - } }; \ No newline at end of file From 94ba199e2f64d07e39cfaf5d90db30d0c283153c Mon Sep 17 00:00:00 2001 From: samy kamkar Date: Sat, 14 Jan 2023 11:55:52 -0800 Subject: [PATCH 0755/1224] allow onhover header to show when search focused --- content-scripts/extension-context/init.js | 1 + .../youtube-features/general/general.js | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/content-scripts/extension-context/init.js b/content-scripts/extension-context/init.js index c0b461343..b5e2f21e6 100644 --- a/content-scripts/extension-context/init.js +++ b/content-scripts/extension-context/init.js @@ -29,6 +29,7 @@ function bodyReady() { if (extension.ready && extension.domReady) { extension.features.addScrollToTop(); extension.features.font(); + extension.features.showHeaderOnSearch(); } } diff --git a/content-scripts/extension-context/youtube-features/general/general.js b/content-scripts/extension-context/youtube-features/general/general.js index f462d5519..b22e06d7a 100644 --- a/content-scripts/extension-context/youtube-features/general/general.js +++ b/content-scripts/extension-context/youtube-features/general/general.js @@ -550,4 +550,29 @@ extension.features.thumbnailsQuality = function (anything) { this.thumbnailsQuality.observer.disconnect(); } } +}; + +/*-------------------------------------------------------------- +# SHOW HEADER ON "SEARCH" +--------------------------------------------------------------*/ + +extension.features.showHeaderOnSearch = function (event) { + var search = document.querySelector('input#search'); + if (search) { + + var headerPos = document.documentElement.getAttribute('it-header-position'); + document.documentElement.setAttribute('it-header-position-original', headerPos); + if (headerPos !== 'normal' && headerPos !== 'static') { + + search.addEventListener('focusin', function (e) { + document.documentElement.setAttribute('it-header-position', 'normal'); + }); + + search.addEventListener('focusout', function (e) { + var origHeaderPos = document.documentElement.getAttribute('it-header-position-original'); + document.documentElement.setAttribute('it-header-position', origHeaderPos); + }); + + } + } }; \ No newline at end of file From 7a1dce0c5f7c5e00407bd1e3b8a740e3680df6a3 Mon Sep 17 00:00:00 2001 From: samy kamkar Date: Sat, 14 Jan 2023 14:14:59 -0800 Subject: [PATCH 0756/1224] fix like button shortcut --- content-scripts/website-context/youtube-features/shortcuts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/content-scripts/website-context/youtube-features/shortcuts.js index 65cca35d6..1cfdeaf4c 100644 --- a/content-scripts/website-context/youtube-features/shortcuts.js +++ b/content-scripts/website-context/youtube-features/shortcuts.js @@ -575,7 +575,7 @@ ImprovedTube.shortcutActivateCaptions = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutLike = function () { - var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer')[0]); + var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer button')[0]); if (like) { like.click(); From 1bfecdf659d856c70abe489791813631e81ec498 Mon Sep 17 00:00:00 2001 From: samy kamkar Date: Sat, 14 Jan 2023 14:16:35 -0800 Subject: [PATCH 0757/1224] fix dislike shortcut --- content-scripts/website-context/youtube-features/shortcuts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/content-scripts/website-context/youtube-features/shortcuts.js index 1cfdeaf4c..096655750 100644 --- a/content-scripts/website-context/youtube-features/shortcuts.js +++ b/content-scripts/website-context/youtube-features/shortcuts.js @@ -588,7 +588,7 @@ ImprovedTube.shortcutLike = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutDislike = function () { - var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer')[1]); + var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer button')[1]); if (like) { like.click(); From 1d00d37b3c61c00ec2fb6bfa97f53996adc8e9c4 Mon Sep 17 00:00:00 2001 From: samy kamkar Date: Sun, 15 Jan 2023 18:27:34 -0800 Subject: [PATCH 0758/1224] Add ability to set speed on all vids except music --- _locales/am/messages.json | 3 ++ _locales/ar/messages.json | 3 ++ _locales/bg/messages.json | 3 ++ _locales/bn/messages.json | 3 ++ _locales/ca/messages.json | 3 ++ _locales/cs/messages.json | 3 ++ _locales/da/messages.json | 3 ++ _locales/de/messages.json | 3 ++ _locales/el/messages.json | 3 ++ _locales/en/messages.json | 3 ++ _locales/en_GB/messages.json | 3 ++ _locales/en_US/messages.json | 3 ++ _locales/es/messages.json | 3 ++ _locales/es_419/messages.json | 3 ++ _locales/et/messages.json | 3 ++ _locales/fa/messages.json | 3 ++ _locales/fi/messages.json | 3 ++ _locales/fil/messages.json | 3 ++ _locales/fr/messages.json | 3 ++ _locales/gu/messages.json | 3 ++ _locales/he/messages.json | 3 ++ _locales/hi/messages.json | 3 ++ _locales/hr/messages.json | 3 ++ _locales/hu/messages.json | 3 ++ _locales/id/messages.json | 3 ++ _locales/it/messages.json | 3 ++ _locales/ja/messages.json | 3 ++ _locales/kn/messages.json | 3 ++ _locales/ko/messages.json | 3 ++ _locales/lt/messages.json | 3 ++ _locales/lv/messages.json | 3 ++ _locales/ml/messages.json | 3 ++ _locales/mr/messages.json | 3 ++ _locales/ms/messages.json | 3 ++ _locales/nb_NO/messages.json | 3 ++ _locales/nl/messages.json | 3 ++ _locales/no/messages.json | 3 ++ _locales/pl/messages.json | 3 ++ _locales/pt_BR/messages.json | 3 ++ _locales/pt_PT/messages.json | 3 ++ _locales/ro/messages.json | 3 ++ _locales/ru/messages.json | 3 ++ _locales/si/messages.json | 3 ++ _locales/sk/messages.json | 3 ++ _locales/sl/messages.json | 3 ++ _locales/sr/messages.json | 3 ++ _locales/sv/messages.json | 3 ++ _locales/sw/messages.json | 3 ++ _locales/ta/messages.json | 3 ++ _locales/te/messages.json | 3 ++ _locales/th/messages.json | 3 ++ _locales/tr/messages.json | 3 ++ _locales/uk/messages.json | 3 ++ _locales/vi/messages.json | 3 ++ _locales/zh_CN/messages.json | 3 ++ _locales/zh_TW/messages.json | 3 ++ .../youtube-features/player.js | 28 +++++++++++++------ options-page/skeleton-parts/player.js | 5 ++++ options-page/styles/player.css | 3 +- 59 files changed, 195 insertions(+), 9 deletions(-) diff --git a/_locales/am/messages.json b/_locales/am/messages.json index 0f7adcb37..6db8006c4 100644 --- a/_locales/am/messages.json +++ b/_locales/am/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 0c20f33c8..fa5824e82 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -389,6 +389,9 @@ "forcedPlaybackSpeed": { "message": "تثبيت سرعة التشغيل" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "فرض وضع المسرح" }, diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/bg/messages.json +++ b/_locales/bg/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index ef6a5f22d..b7bf565a0 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "জোর করে প্লেব্যাক গতি" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "জোর করে থিয়েটার মোড" }, diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/ca/messages.json +++ b/_locales/ca/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/cs/messages.json +++ b/_locales/cs/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/da/messages.json b/_locales/da/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/da/messages.json +++ b/_locales/da/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 5ee452b85..304c228ed 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "erzwungene Abspielgeschwindigkeit" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Kinomodus erzwingen" }, diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 27c55f39f..94353cf35 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Υποχρεωτική ταχύτητα αναπαραγωγής" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Υποχρεωτική λειτουργία κινηματογράφου" }, diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 63db959c8..c9e8f1c86 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -401,6 +401,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json index 8b7a0051c..c01cfc4f3 100644 --- a/_locales/en_GB/messages.json +++ b/_locales/en_GB/messages.json @@ -383,6 +383,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json index 8b7a0051c..c01cfc4f3 100644 --- a/_locales/en_US/messages.json +++ b/_locales/en_US/messages.json @@ -383,6 +383,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/es/messages.json b/_locales/es/messages.json index a86ba9ce2..121cd07c2 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forzar velocidad de reproducción" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forzar modo teatro" }, diff --git a/_locales/es_419/messages.json b/_locales/es_419/messages.json index c72648784..343949097 100644 --- a/_locales/es_419/messages.json +++ b/_locales/es_419/messages.json @@ -383,6 +383,9 @@ "forcedPlaybackSpeed": { "message": "Forzar velocidad de reproducción" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forzar modo teatro" }, diff --git a/_locales/et/messages.json b/_locales/et/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/et/messages.json +++ b/_locales/et/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/fa/messages.json b/_locales/fa/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/fa/messages.json +++ b/_locales/fa/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/fi/messages.json b/_locales/fi/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/fi/messages.json +++ b/_locales/fi/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/fil/messages.json b/_locales/fil/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/fil/messages.json +++ b/_locales/fil/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index aae589916..c183c1152 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Vitesse de lecture forcée" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forcer le mode théâtre" }, diff --git a/_locales/gu/messages.json b/_locales/gu/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/gu/messages.json +++ b/_locales/gu/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/he/messages.json b/_locales/he/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/he/messages.json +++ b/_locales/he/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/hi/messages.json b/_locales/hi/messages.json index bd5fb0f2e..1f470bf29 100644 --- a/_locales/hi/messages.json +++ b/_locales/hi/messages.json @@ -383,6 +383,9 @@ "forcedPlaybackSpeed": { "message": "जबरन पार्श्व गति" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "जबरन थिएटर मोड" }, diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index e5b6bbcfe..69180e407 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Prisiljena brzina reprodukcije" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Prisiljen kazališni način" }, diff --git a/_locales/hu/messages.json b/_locales/hu/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/hu/messages.json +++ b/_locales/hu/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/id/messages.json b/_locales/id/messages.json index e28513bef..f2e467899 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Paksa kecepatan pemutaran" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Paksa mode teater" }, diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 94489c228..4a5a40419 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Velocità di riproduzione forzata" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Modalità cinema forzata" }, diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 63f8c30e0..79af0fa6e 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "再生速度を指定する" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "シアターモードにする" }, diff --git a/_locales/kn/messages.json b/_locales/kn/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/kn/messages.json +++ b/_locales/kn/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index b1eabaac3..e383568eb 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "되감기 속도 강제설정" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "강제 영화관 모드" }, diff --git a/_locales/lt/messages.json b/_locales/lt/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/lt/messages.json +++ b/_locales/lt/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/lv/messages.json b/_locales/lv/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/lv/messages.json +++ b/_locales/lv/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/ml/messages.json b/_locales/ml/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/ml/messages.json +++ b/_locales/ml/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/mr/messages.json b/_locales/mr/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/mr/messages.json +++ b/_locales/mr/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/ms/messages.json b/_locales/ms/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/ms/messages.json +++ b/_locales/ms/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index ebde7d130..cf221b4e3 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -383,6 +383,9 @@ "forcedPlaybackSpeed": { "message": "Tvungen avspillingshastighet" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Tvunget teater-modus" }, diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index a036e3155..cceb81f97 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forceer afspeelsnelheid" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forceer Theatermodus" }, diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 6116457e6..246f20465 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Tvungen avspillingshastighet" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Tvunget teater-modus" }, diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 0bc479b32..46c25b31e 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Wymuś prędkość odtwarzania" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Wymuś tryb kinowy" }, diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index a76a73846..2272988df 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": " Velocidade do reprodução forçado" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Modo teatro forçado" }, diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 0e06bc423..035d3bd3d 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forçar velocidade de leitura" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forçar modo de cinema" }, diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index bb09e17ec..0248eec5f 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Viteză de playback forțată" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Modul teatru forțat" }, diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 7adffb3f0..f250126b7 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -389,6 +389,9 @@ "forcedPlaybackSpeed": { "message": "Принудительная скорость воспроизведения" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Принудительно переходить в режим кино" }, diff --git a/_locales/si/messages.json b/_locales/si/messages.json index f21015d18..e44130780 100644 --- a/_locales/si/messages.json +++ b/_locales/si/messages.json @@ -383,6 +383,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 0848f0845..1d97a8f26 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Vynútená rýchlosť prehrávania" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Vynútený divadelný režim" }, diff --git a/_locales/sl/messages.json b/_locales/sl/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/sl/messages.json +++ b/_locales/sl/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/sr/messages.json +++ b/_locales/sr/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/sw/messages.json b/_locales/sw/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/sw/messages.json +++ b/_locales/sw/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/ta/messages.json b/_locales/ta/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/ta/messages.json +++ b/_locales/ta/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/te/messages.json b/_locales/te/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/te/messages.json +++ b/_locales/te/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/th/messages.json b/_locales/th/messages.json index 0b4f1130e..b029c7aaf 100644 --- a/_locales/th/messages.json +++ b/_locales/th/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theater mode" }, diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index 6304911b4..eb3d90095 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Oynatma hızını uygulamaya zorla" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Sinema modunu zorla" }, diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json index 02b68d344..c5a3272e0 100644 --- a/_locales/uk/messages.json +++ b/_locales/uk/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Forced playback speed" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Forced theatre mode" }, diff --git a/_locales/vi/messages.json b/_locales/vi/messages.json index 896c8e16e..8812ae963 100644 --- a/_locales/vi/messages.json +++ b/_locales/vi/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "Tốc độ phát lại bắt buộc" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "Bắt buộc chế độ rạp hát" }, diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 1d1cde05c..8b67646c6 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "强制设置播放速度" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "强制设置剧场模式" }, diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 5c7851c7a..c90f83d57 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -386,6 +386,9 @@ "forcedPlaybackSpeed": { "message": "強制播放速度" }, + "forcedPlaybackSpeedMusic": { + "message": "Force playback speed for music" + }, "forcedTheaterMode": { "message": "強制劇院模式" }, diff --git a/content-scripts/website-context/youtube-features/player.js b/content-scripts/website-context/youtube-features/player.js index 65c24c3f2..90fd09e82 100644 --- a/content-scripts/website-context/youtube-features/player.js +++ b/content-scripts/website-context/youtube-features/player.js @@ -62,20 +62,32 @@ ImprovedTube.playerAutopauseWhenSwitchingTabs = function () { ImprovedTube.playerPlaybackSpeed = function (change) { var player = this.elements.player, video = player.querySelector('video'), - option = this.storage.player_playback_speed; + option = this.storage.player_playback_speed, + tries = 0; + const intervalMs = 100, + maxIntervalMs = 5000; if (this.isset(option) === false) { option = 1; } - if (this.storage.player_forced_playback_speed === true) { - if (location.href.indexOf('music') === -1 && player.getVideoData().isLive === false) { - player.setPlaybackRate(Number(option)); - video.playbackRate = Number(option); - } else { - player.setPlaybackRate(1); + var waitForDescInterval = setInterval(() => { + if (document.querySelector('div#description') || (++tries * intervalMs >= maxIntervalMs)) { + clearInterval(waitForDescInterval); } - } + + if (this.storage.player_forced_playback_speed === true) { + if (player.getVideoData().isLive === false && + (this.storage.player_force_speed_on_music === true || + (location.href.indexOf('music') === -1 && document.querySelector('h3#title')?.innerText !== 'Music') + )) { + player.setPlaybackRate(Number(option)); + video.playbackRate = Number(option); + } else { + player.setPlaybackRate(1); + } + } + }, intervalMs); }; diff --git a/options-page/skeleton-parts/player.js b/options-page/skeleton-parts/player.js index 50f72af1d..b9dc00baf 100644 --- a/options-page/skeleton-parts/player.js +++ b/options-page/skeleton-parts/player.js @@ -109,6 +109,11 @@ extension.skeleton.main.layers.section.player.on.click = { text: 'forcedPlaybackSpeed', id: 'forced-playback-speed' }, + player_force_speed_on_music: { + component: 'switch', + text: 'forcedPlaybackSpeedMusic', + id: 'forced-playback-speed-music' + }, player_playback_speed: { component: 'slider', text: 'playbackSpeed', diff --git a/options-page/styles/player.css b/options-page/styles/player.css index a3443fb84..14698d864 100644 --- a/options-page/styles/player.css +++ b/options-page/styles/player.css @@ -3,6 +3,7 @@ --------------------------------------------------------------*/ #forced-volume:not([data-value='true']) + .satus-slider, -#forced-playback-speed:not([data-value='true']) + .satus-slider { +#forced-playback-speed:not([data-value='true']) + .satus-switch, +#forced-playback-speed:not([data-value='true']) + .satus-switch + .satus-slider { display: none; } \ No newline at end of file From c6ff4fd777326effac324091dc8dc6684a6a27c5 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 16 Jan 2023 16:20:49 +0100 Subject: [PATCH 0759/1224] Update building for browser stores.md --- py/building for browser stores.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/py/building for browser stores.md b/py/building for browser stores.md index 62369dde4..4d937d424 100644 --- a/py/building for browser stores.md +++ b/py/building for browser stores.md @@ -1,4 +1,4 @@ -#### EVERY EXTENSION: +#### For every Browser extension: - Edge: doesnt allow a chrome update url - update URL edge: https://edge.microsoft.com/extensionwebstorebase/v1/crx , chrome: https://clients2.google.com/service/update2/crx @@ -19,9 +19,13 @@ - Require moving google analytics. We can removing it from the Repo & only add it when generating the google webstore version. -#### ImprovedTube: -- Repo will include m.youtube permissions (firefox addons are available on phones)
_(besides Google Webstore version remains with www . youtube only (by mistake), until we announce change)_ - - & *.youtube.com + global permission, to work for all \. +--- +--- + +#### ImprovedTube only: +- The repo should include m.youtube (firefox addons are available on phones) AND *.youtube.com + global permission, to work for all \'s. +
besides as of now the Google Webstore version remains with www.youtube only, until we announce change + From b1cce1b1bf438c6f0f5122e535370dba71f634c7 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 16 Jan 2023 16:54:18 +0100 Subject: [PATCH 0760/1224] Update building for browser stores.md --- py/building for browser stores.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/py/building for browser stores.md b/py/building for browser stores.md index 4d937d424..4ee4e2e6b 100644 --- a/py/building for browser stores.md +++ b/py/building for browser stores.md @@ -1,8 +1,8 @@ -#### For every Browser extension: +### For every Browser extension, a builder / build.py should consider these rules per browser-store: - Edge: doesnt allow a chrome update url - - update URL edge: https://edge.microsoft.com/extensionwebstorebase/v1/crx , chrome: https://clients2.google.com/service/update2/crx + - update URL edge: https://edge.microsoft.com/extensionwebstorebase/v1/crx , replace chrome: https://clients2.google.com/service/update2/crx -##### Extension name +##### Extension name (title in manifest.js) - Edge & Whale deny ' (Replace ' with *) - Whale denies '&' (replace with '+') @@ -17,14 +17,14 @@ #### Firefox & Opera : -- Require moving google analytics. We can removing it from the Repo & only add it when generating the google webstore version. +- Require moving google analytics. However it can be added / remain when generating the google webstore version. --- --- #### ImprovedTube only: - The repo should include m.youtube (firefox addons are available on phones) AND *.youtube.com + global permission, to work for all \'s. -
besides as of now the Google Webstore version remains with www.youtube only, until we announce change +
besides as of now only our Google Webstore version should remains with www.youtube, until we announce change From 9954f3bc5cd5d1094e77b4608c7e5c42735f3f70 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 16 Jan 2023 16:54:41 +0100 Subject: [PATCH 0761/1224] Update building for browser stores.md --- py/building for browser stores.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/py/building for browser stores.md b/py/building for browser stores.md index 4ee4e2e6b..66a836837 100644 --- a/py/building for browser stores.md +++ b/py/building for browser stores.md @@ -23,7 +23,8 @@ --- #### ImprovedTube only: -- The repo should include m.youtube (firefox addons are available on phones) AND *.youtube.com + global permission, to work for all \'s. +- The repo should include m.youtube (firefox addons are available on phones) + AND *.youtube.com + global permission, to work for all \'s.
besides as of now only our Google Webstore version should remains with www.youtube, until we announce change From bdc29c8e6af310e82cd97445ddc4b90e926bf678 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Wed, 18 Jan 2023 20:50:23 +0100 Subject: [PATCH 0762/1224] Delete firefox-addon-store-builder.py --- py/firefox-addon-store-builder.py | 1 - 1 file changed, 1 deletion(-) delete mode 100644 py/firefox-addon-store-builder.py diff --git a/py/firefox-addon-store-builder.py b/py/firefox-addon-store-builder.py deleted file mode 100644 index 8146d2803..000000000 --- a/py/firefox-addon-store-builder.py +++ /dev/null @@ -1 +0,0 @@ -asdasdad From a9e21928251e910d91896a332b96bc84894e0721 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 20 Jan 2023 10:45:58 +0100 Subject: [PATCH 0763/1224] Quick revision --- LICENSE | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/LICENSE b/LICENSE index 16437f3cc..ab4ca8679 100644 --- a/LICENSE +++ b/LICENSE @@ -1,22 +1,34 @@ ©️ 2012-2022 ( no warranty / liablity ) Thank you! - For simplicity & intellectual growth: Unless stated otherwise, all accepted pull-requests are assumed, to come under a viral copyleft license, GNU agpl-3.0-7abcdef, for the world. And free of copyrights to the original maintainers. (these intellectual contributions are granted to the original maintainers free-of-charge, non-exclusively, for publishing & modification. Contributors do have the right to be mentioned in credits) --- -'Friendly/charitable License'(-DRAFT. Talk to us? ☺ if you are into international law): +DRAFT: 'FRIENDLY-/CHARITY-License' + (The only complete Licence, covering contributors too & more. + Talk to us? ☺ if you are into international law): FREEDOMS: -1. Personal use: This was made for you ♡ If you like it consider donating. Our work is efficient. (If you ever change or repurpose anything, please take the time to show us ♡.) -2. Contributors: Unlike popular licences we would like to acknowledge that you become a shareholder of this project / 'cooperative, proportionally to the time well spent. Please vote about our futures actions. -3. Publishers: Unmodified Distribution welcome! permitted. (just don't wrap it in ads or drive-by installs) - 3.1 Modified Versions or piece/s of our code: +1. PERSONAL / PRIVATE use: This was made for you ♡ (If you like, consider donating. Our work is efficient.) + - If you ever change or repurpose code privately, please take the time to show us ♡ +2. CONTRIBUTORS: (Unlike in popular licences,) we would like to acknowledge, + that you become a shareholder of this project / cooperative, proportionally to the time well spent. + Please vote about our futures actions. +3. PUBLISHERS: All unmodified distribution is welcome (essential)! permitted! + (just don't wrap it in ads or drive-by installs!) + 3.1 MODIFIED Versions or pieces of our code: - Registered Charity organisations: you can modify / repurpose. (Just don't remove our links or state the source well.) - - ONLY RESTRICTION: commercially publishing/repurosing any of the code, that is not the full, such as 'version 3.8'. Written permission/contract is required. No such permission was granted to anybody as of 2022. Exception: OS's like Debian, Fedora. -This licence refers to: https://github.com/code4charity/YouTube-Extension +RESTICTION: COMMERCIALLY modifying or repurosing any of the code that is not the full, such as 'version 3.8'. + Written permission/contract is required. No such permission was granted to as of 2023. + Exception: OS's (Operatings Systems. Debian, Fedora, etc.) + +(This licence file refers to: https://github.com/code4charity/YouTube-Extension +so that the license doesnt require virality) --- -COMMENT/Postamble: Reason for the specific restriction: 1. Some publishers use [our] code without permission commercially, with [excessive] adware/spyware. +COMMENT/POSTAMBLE: +1. Reason for the specific restriction: + Some publishers use [our] code without permission commercially, with [excessive] adware/spyware. Together they can have more users than the original, since software is often not chosen well. -Thus we rationally/responsibly have to care. - Inspite of the tendency for smart behavior, to be superior on a long-term, as assumed by licences like GNU, -marketing / competition / economy are not fair in the present. Billions of users dont review every software choice -(2. For this project we can't imagine requiring to ask first will hinder any good cause but only help each.) +Thus we rationally/responsibly have to care. + - Despite of the tendency for smart behavior, to be superior on a long-term, as assumed by licences like GNU, +(Marketing / competition / economy are just not fair in the present. Billions of users might not review every software choice) +(And for this project we can't imagine, that requiring to ask first will hinder any good cause but only help/motivate/inspire each other) From dcd2ade6e49bd73bc74a5abb3e8dd3ce0dfc94d4 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 20 Jan 2023 10:54:20 +0100 Subject: [PATCH 0764/1224] Quick revision --- LICENSE | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/LICENSE b/LICENSE index ab4ca8679..c13c5085e 100644 --- a/LICENSE +++ b/LICENSE @@ -2,21 +2,22 @@ For simplicity & intellectual growth: Unless stated otherwise, all accepted pull-requests are assumed, to come under a viral copyleft license, GNU agpl-3.0-7abcdef, for the world. And free of copyrights to the original maintainers. (these intellectual contributions are granted to the original maintainers free-of-charge, non-exclusively, for publishing & modification. Contributors do have the right to be mentioned in credits) --- -DRAFT: 'FRIENDLY-/CHARITY-License' - (The only complete Licence, covering contributors too & more. - Talk to us? ☺ if you are into international law): -FREEDOMS: -1. PERSONAL / PRIVATE use: This was made for you ♡ (If you like, consider donating. Our work is efficient.) +DRAFT: +'FRIENDLY-/CHARITY-License' + (The only complete Licence, + to covering contributors too, governance & economic sustainability.) + (Talk to us? ☺ if you are into international law): + FREEDOMS: + 1. PERSONAL / PRIVATE use: This was made for you ♡ (If you like, consider donating. Our work is efficient.) - If you ever change or repurpose code privately, please take the time to show us ♡ -2. CONTRIBUTORS: (Unlike in popular licences,) we would like to acknowledge, + 2. CONTRIBUTORS: (Unlike in popular licences,) we would like to acknowledge, that you become a shareholder of this project / cooperative, proportionally to the time well spent. Please vote about our futures actions. -3. PUBLISHERS: All unmodified distribution is welcome (essential)! permitted! + 3. PUBLISHERS: All unmodified distribution is welcome (essential)! permitted! (just don't wrap it in ads or drive-by installs!) - 3.1 MODIFIED Versions or pieces of our code: - - Registered Charity organisations: you can modify / repurpose. (Just don't remove our links or state the source well.) - -RESTICTION: COMMERCIALLY modifying or repurosing any of the code that is not the full, such as 'version 3.8'. + 3.1 MODIFIED Versions or pieces of our code: + - Registered Charity organisations: you can modify / repurpose. (Just don't remove our links or state the source well.) + RESTICTION: COMMERCIALLY modifying or repurosing any of the code that is not the full, such as 'version 3.8'. Written permission/contract is required. No such permission was granted to as of 2023. Exception: OS's (Operatings Systems. Debian, Fedora, etc.) From a953d5a0dd008093132d66db96afe635a7c38358 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 20 Jan 2023 10:57:22 +0100 Subject: [PATCH 0765/1224] Quick revision --- LICENSE | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index c13c5085e..ca4781802 100644 --- a/LICENSE +++ b/LICENSE @@ -4,8 +4,8 @@ to come under a viral copyleft license, GNU agpl-3.0-7abcdef, for the world. And --- DRAFT: 'FRIENDLY-/CHARITY-License' - (The only complete Licence, - to covering contributors too, governance & economic sustainability.) + The only complete Licence, + to cover contributors too, regulation & economic sustainability. (Talk to us? ☺ if you are into international law): FREEDOMS: 1. PERSONAL / PRIVATE use: This was made for you ♡ (If you like, consider donating. Our work is efficient.) From bf7c3bc21a1848d75d44a0211e1d58e167b79f47 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 20 Jan 2023 17:53:56 +0100 Subject: [PATCH 0766/1224] removing typo: get('watched') = {}; --- .../extension-context/youtube-features/general/general.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/general/general.js b/content-scripts/extension-context/youtube-features/general/general.js index b22e06d7a..2d276aab8 100644 --- a/content-scripts/extension-context/youtube-features/general/general.js +++ b/content-scripts/extension-context/youtube-features/general/general.js @@ -468,8 +468,8 @@ extension.features.trackWatchedVideos = function () { if (extension.storage.get('track_watched_videos') === true && document.documentElement.getAttribute('it-pathname').indexOf('/watch') === 0) { var id = extension.functions.getUrlParameter(location.href, 'v'); - if (!extension.storage.get('watched')) { - extension.storage.get('watched') = {}; + if (!extension.storage.watched) { + extension.storage.watched = {}; } extension.storage.get('watched')[id] = { @@ -575,4 +575,4 @@ extension.features.showHeaderOnSearch = function (event) { } } -}; \ No newline at end of file +}; From 83031165bbc79e3f7628714737ada4e98eeec07e Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 22 Jan 2023 16:48:34 +0100 Subject: [PATCH 0767/1224] Update README.md --- .github/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/README.md b/.github/README.md index 0530a9cd4..e477fd391 100644 --- a/.github/README.md +++ b/.github/README.md @@ -3,7 +3,7 @@ ImprovedTube -

Lightweight and powerful extension to enrich your YouTube experience.

+

Powerful but lightweight extension to enrich your video experience & content selection.

Report a bug · Request feature · @@ -23,7 +23,7 @@
Chrome Web Store4.0.14.0.1.17
Microsoft Edge Addons
Firefox Add-ons3.9354.0.1.17
Opera Add-ons
- - + @@ -40,13 +33,358 @@ - -
StoreVersionStore + Version
Chrome Web Store
Whale Store 3.800
-

Or install manually from GitHub.

+ + or install manually + latest + + +

Roadmap

+ - Finding developers and patreons + - All bugs & wishes + - 🛈ToolTips & documentation + - Avoiding CPU-rendering by default + - Smart player buttons for all \ + - Smart content-filtering & discovery + - Full-page GUI, watch-history, dashboard +
-

Contributing

For more info on how to contribute please see the contribution wiki.

+ + + +

   Long 'ugly' Readme.md:

+ +

+«Improve YouTube!»   

+/ImprovedTube/ +is a lightweight & powerful extension to enrich your experience & enable your choice.

+

+ + + + +

+ +

+ [Report a bug] + · [Request feature] + · [Donate] + · [Features] +

+ +

YouTube Extension

+ +

Critiques

+recommended by firefox +by (only ~ 100)
+'Might be the best YouTube Extension Ever'-
+'enhances YouTube in meaningful ways'-
+'Strong add-on, full control. Yet clear & easy'-
+
+Big thanks ♡ to our contributors, dodieboy,
+translators/wiki-authors & donators :bowtie:
+
+ + +### The strongest Youtube Extension
90 proven features - the only one of a kind + Since 2012 we have gradually been adding lightweight features & keeping up with Youtube changes. +(throughout the years we witnessed the birth & fall of other promising & open YouTube Extensions [1](https://github.com/YePpHa/YouTubeCenter "YouTubeCenter"), [2](https://github.com/ParticleCore/Iridium "Iridium"), ... ) +Today adding something is easier & so motivating as there are 500 000 users. [[👪Join us]](https://github.com/code-for-charity/YouTube-Extension/discussions/1006 "github.com/Code-for-Charity"). + +#####
Spread the word [📣](Http://Twitter_Whatsapp_Discord_Youtube_Facebook_eMail_Telegram_Signal)
+        - +**W**hy arent there millions of users yet? We didn't write a guide or manual, let alone ads. This project can still fly much higher through your word of mouth & eventually enable us to work on all wishes & immediate fixes around the clock 🌱 + +

Roadmap

+ + - Finding developers and patreons + - All bugs & wishes + - 🛈ToolTips & documentation + - Avoiding CPU-rendering by default + - Smart player buttons for all \ + - Smart content-filtering & discovery + - Full-page GUI, watch-history, dashboard +
+ + +

   +🏝🏕 To-DoList

  
+ +##### **0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer some bug bounty. [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "especially if you are at a cheap/poor place ❤️") .)
+##### **1.** **[ ]** [**Documentation, wiki, screenshots, video, ...**](https://github.com/code-for-charity/YouTube-Extension/wiki "We need to help people learning as easily as possible about our 90+ features. (Drafts welcome. This will become 🛈tooltips in the extension too!") +> We need to help people to learn as easily as possible about our [90+ features](https://github.com/ImprovedTube/ImprovedTube/wiki/Features). (Drafts welcome. This will become **🛈ToolTips** in the extension!")
+**[ ]**[Updating translations](https://github.com/code-for-charity/YouTube-Extension/wiki/Translation-HowTo " - some language files miss additions.") +**[ ]**proofreading [eng](https://github.com/ImprovedTube/ImprovedTube/blob/master/_locales/en/messages.json) +#### **2.** [ ][**Plans / Specifications 🧩**](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues?q=is%3Aissue+sort%3Acomments-desc+is%3Aopen+label%3A%22%F0%9F%A7%A9Plan+ready%22++-label%3A%22not+Goo.+Chrome%22+ "often unique & relevant (special)")
   **&**    [ ] [**organizational Discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=category%3AToDo++category%3AOrganization+ "Future & Structure") +##### **3.** [ ] [**Feature Requests🌟🧚**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3A%22Feature+Request%22+sort%3Acomments-desc+is%3Aopen+-label%3A_++-label%3A%22not+Goo.+Chrome%22+ "- sometimes easy / CSS") - sometimes easy / CSS
     **+** [ ]  [**Wishes in discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=-category%3AToDo+-category%3AOrganization+ "Wishes, Ideas, Questions, News") + +###### **0.1. [ ]** Tidy: [(Rest/Unsorted 'issues')](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+is%3Aopen+-label%3Abug+-label%3A%22Feature+Request%22+-label%3A%F0%9F%A7%A9Plan%20ready+-label%3A_+-label%3A%22not+Goo.+Chrome%22+sort%3Acreated-desc++-label%3A"Niche%2Frare+usecase%3F%2Ffun%3F"++-label%3Aunclear "Our github issues, which are not yet labled yet to appear in one of the ToDo-categories above") +> Further reading: [***"Contributing without programming"***](https://github.com/ImprovedTube/YouTube-Extension/discussions/753) & [*"Our CSS, JavaScript, json"*](https://github.com/ImprovedTube/ImprovedTube/pull/371#issuecomment-669725163) ( ***outdated**)* (*Newcomers are [we](https://github.com/ImprovedTube/ImprovedTube/issues/387#issuecomment-664980078)lcome tho! We review all edits & love to collaborate*) +
+ + +

+ 🎁Extensions & Projects

+ +#### [**`History Manager`**] [[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)] [**unLock me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse)] [[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent)] [[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)] +##### Research: [[Regex (Search)](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] +#### **Video / Media:** (**to be integrated in ImprovedTube**...) [[**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper)] [[**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame)] [[**`unBlob`**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob)] (Equalizer[](https://github.com/code-for-charity/equalizer)) + +##### Home: (Start Page to be uploaded ) [[`TextEditor`]([https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka?hl=de))[](https://github.com/code-for-charity/Editor)] [[`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo)] [[`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)")] + +--- + +#### **Development:** [[**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library] [[**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library] ([TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player)) + +#### Git Community: [🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex")] [🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot)] + +
+ +

     +🧰 Features      

+ + - Fit Video to window, default resolution or pop-up player + - Hiding distractions + - Youtube Themes, Colors & night schedule + - Video Repeat-, screenshot-, rotate-buttons + - Customizable hotkeys / shortcuts + +
+ +

      +🔧 Install from source

 
+ +1.) **Download & extract the [[latest🧪version]](https://github.com/code4charity/YouTube-Extension/archive/refs/heads/master.zip) or [[release]](https://github.com/code-for-charity/YouTube-Extension/releases)** +- **Safari**: + - 2.) [**#494**](https://github.com/code4charity/YouTube-Extension/issues/494#issuecomment-675098753) + +- **Chrome / Chromium / Brave / Edge / Vivaldi** + - 2.) Go to your Browser's Extensions page (*chrome://extensions/*) + - 3.) Activate `Developer mode` + - 4.) Click the `Load unpacked` button & Select the extracted folder + +- **Firefox / LibreWolf / Waterfox / IceCat** + - 2.) Go to `Add-ons` (*about:addons*) + - 3.) Click on `Extensions` tab + - 4.) Click on `Debug Add-ons` (*about:debugging#/runtime/this-firefox*) + - 5.) Click on `Load Temporary Add-on…` + - 6.) Select the `manifest.json` file from unzipped folder +
+ + + +

+🌎 Translators

+✔️EN +en_GB : +KorbinCode +
Proofreaders:___ (You?)
+✔️CN(zh_CN) : +niceRAM, +ausers
+✔️CN(zh_TW) : +Still34, +water903,
+suitangi
+ES : +Kioraga, +Compvictor, +dimateos
+HI : +monishamandal02, +BRAVO68WEB
+FR : +leghort, +Eymiks, +Solvabl
+AR : +Raayib
+✔️BN : +BRAVO68WEB
+RU : +qweered, +alexesprit
+✔️pt_BR : +dthiago, +Mike-Correa
+DavidBrazSan
+PT : +DrNopt
+ID : +Bagus23, +A.Muttaqin
+✔️DE : +Termuellinator, +css-smueller
+✔️JA : +utuhiro78
+TR : +onurdumangoz, +daswareinfach
+VN : +zeref-dragneel
+KO : +msc9533, +LYHyoung
+(Iranian) Persian : +_____(You?)
+✔️IT : +urfausto, +FedericoSlongo
+TH Thai : +______(You?)
+✔️PL : +FluidExtractor
+Ukrainian : +(You?)
+Hebrew : +(You?)
+Czech : +(You?)
+SE Swedish : +(You?)
+NL : +aron-hoogeveen, +Vistaus
+RO : +hateofhades
+SI : +AshenNethsara
+EL(Greek) : +molyvius
+DA Danish : +(You?)
+Hungarian : +(You?)
+FI Finnish : +(You?)
+Serbian : +(You?)
+Slovak : +(You?)
+BG Bulgarian : +(You?)
+no_NB : +comradekingu
+HR(Croatian) : +mbeara
+Croatian : +(You?)
+NO : +master3395, +comradekingu
+SK : +bbc-s
+Catalan, Valencian : +(You?)
+Estonian : +(You?)
+
+ = missing some additions/updates +
+ +
The following popular languages are
+spoken mainly. But dont hesitate to add
one of them. (Even if just for fun)

+Urdu +Nigerian Pidgin (English Creole)
+Western-&Eastern-Punjabi
+Marathi(Indo-European)Telugu
+Tamil Yue Chinese (incl. Cantonese)
+Tagalog (New name: Filipino)
Wu Chinese (incl. Shanghainese)
+HausaEgyptian Spoken Arabic
+SwahiliJavaneseKannadaGujarati
+Amharic, Bhojpuri,
+Min Nan Chinese (incl. Hokkien),
+Jin Chinese Yoruba Hakka Chinese,
+Burmese,
+Spoken Arabic: Sudanese & Algerian
+Lingala, Malaysian Malay
+(Combined these have more first-language
+speakers than English + Spanish + Hindi.
+And more second-language speakers than
+Chinese + Hindi + Spanish)
+
+
+ + +

     +📟 "Ticker"

  
+ +###### ❔[**ImprovedTube controls** in, under or around the video player or cursor](https://github.com/code4charity/YouTube-Extension/issues/1445).
❔[**Meaningful/Most similar extensions**? Social-Fixer, Youtube Enhancer, Simplify, ...](https://github.com/code4charity/YouTube-Extension/issues/1016).
📟 We are focused on updates, bugs & UX but please keep up your wishes for Features!
📟 Enjoy **our projects: global** [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl), to tweak CSS everywhere + Theme engine in the making, ...
📟 **2021:** Firefox, Edge, Opera, Whale added (please try&rate) +
+ +#####
💡 Got great ideas?
+ +We'll work on novel (new & unique) projects [github/**Wish-Factory**](https://github.com/code-for-charity/wish-factory "💡🎁") +
(or ideas@improvedtube.com) + +

     +🌾👩‍💻 "Behind the scenes"

  
+ +web store +web store analytics +youtube recommmendation +
+Do you need to run a popular extension, site, app or repo?
We'll love to help meaningful projects@improvedtube.com +
+ + + + + + + + +


     +📜Old Introduction:

   
  
+ +[ImprovedTube](https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd), +      is an extension we built to refine your YouTube experience. A one-stop-shop with many powerful features to enhance YouTube, yet liteweight. A larger player & tidy YouTube UI / hiding distractions were the first loved feature. And there was so much left to build and are many clever features to come still.        ImprovedTube is designed with our own UI library: [Satus](https://github.com/victor-savinov/satus) (to manage your settings efficiently & create familiar apps/['cousins](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl) easily.)       Please spread the word: ImprovedTube is the only project of it's kind, because other open Youtube Extensions resigned. No other project provides so much CSS to adjust a website[🦄](https://github.com/search?q=stars%3A%3E700++size%3A%3E3000+++language%3ACSS++App+OR+Addon+OR+Extension+NOT+framework+NOT+apps&type=Repositories&s=updated&o=desc). +

+ + chrome-web-store-linkChrome-users

+ +** Some ImprovedTube features**: +- Video quality +- Themes and customisation +- Repeat-, screenshot-, rotate-buttons +- Pop-up player +- Ads management +- Hide Cards and Annotations +- Customise video page appearance (always expand description, hide related videos etc.) +- Channel page customisations +- Customisation of hotkeys/shortcuts +- Statistics +- Volume mixer +_[Full list](https://github.com/ImprovedTube/YouTube/wiki/Features)_ + +**🔧 Install from source** +1.) **Download & extract the [[latest🧪version]](https://github.com/code4charity/YouTube-Extension/archive/refs/heads/master.zip) or [[release]](https://github.com/code-for-charity/YouTube-Extension/releases)** +- **Safari**: + - 2.) [Issue #494](https://github.com/code4charity/YouTube-Extension/issues/494#issuecomment-675098753) + +- **Chrome / Chromium / Brave / Edge / Vivaldi** + - 2.) Go to your Browser's Extensions page (*chrome://extensions/*) + - 3.) Activate `Developer mode` + - 4.) Click the `Load unpacked` button & Select the extracted folder + +- **Firefox / LibreWolf / Waterfox / IceCat** + - 2.) Go to `Add-ons` (*about:addons*) + - 3.) Click on `Extensions` tab + - 4.) Click on `Debug Add-ons` (*about:debugging#/runtime/this-firefox*) + - 5.) Click on `Load Temporary Add-on…` + - 6.) Select the `manifest.json` file from unzipped folder + +#### Web browser support +|[Brave](https://brave.com)
Brave | [Chromium](https://github.com/chromium/chromium)
Chromium | [Chrome](https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd)
Chrome | [Edge](https://www.microsoft.com/edge)
Edge | [Firefox](https://foundation.mozilla.org)
Firefox | [Opera](https://addons.opera.com/en/extensions/details/install-chrome-extensions/)
Opera| [Safari](https://www.apple.com/safari/)
Safari | [Vivaldi](https://github.com/ric2b/Vivaldi-browser)
Vivaldi | +| --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | +| 0.52+ | 49.0+ | 49.0+ | 79.0+ | 44.0+ | 36.0+ | x.x+ | 1.0+ | +
+ + +
From 75ae817626d49a42bd535f851a4e29f203d7d2f0 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 22 Jan 2023 23:03:51 +0100 Subject: [PATCH 0770/1224] Update README.md --- .github/README.md | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/.github/README.md b/.github/README.md index 51beeeade..1a1c0f7ea 100644 --- a/.github/README.md +++ b/.github/README.md @@ -6,8 +6,6 @@ Donate
- -

Install

@@ -38,8 +36,8 @@
latest
-

Roadmap

- + - + - + - + - +
- +

Roadmap

+ - Finding developers and patreons - All bugs & wishes - 🛈ToolTips & documentation @@ -49,14 +47,10 @@ - Full-page GUI, watch-history, dashboard
- -

Contributing

-

For more info on how to contribute please see the contribution wiki.

+For more info on how to contribute please see the contribution wiki. - - -

   Long 'ugly' Readme.md:

+
   

Long 'ugly' Readme.md:

From 1a269359f16cb6513df0765dfa10808e0b4a3b68 Mon Sep 17 00:00:00 2001 From: Luca Park Date: Tue, 24 Jan 2023 01:28:51 +0900 Subject: [PATCH 0771/1224] Modifying Korean Translation --- _locales/ko/messages.json | 236 +++++++++++++++++++------------------- 1 file changed, 118 insertions(+), 118 deletions(-) diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index e383568eb..4b9bb99f0 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -36,7 +36,7 @@ "message": "활성 기능" }, "addScrollToTop": { - "message": "<<맨위로>> 추가" + "message": "<<맨 위로>> 추가" }, "ads": { "message": "광고" @@ -48,10 +48,10 @@ "message": "허용" }, "allow60fps": { - "message": "60에프피에스(fps) 허용" + "message": "60 fps 허용" }, "always": { - "message": "Always" + "message": "항상" }, "alwaysActive": { "message": "항상 활성화" @@ -72,10 +72,10 @@ "message": "외관" }, "areYouSureYouWantToExportTheData": { - "message": "Are you sure you want to export the data?" + "message": "데이터를 내보낼까요?" }, "areYouSureYouWantToImportTheData": { - "message": "Are you sure you want to import the data?" + "message": "데이터를 불러올까요?" }, "audio": { "message": "오디오" @@ -90,34 +90,34 @@ "message": "자동 전체화면" }, "autopauseWhenSwitchingTabs": { - "message": "탭전환시 자동 일시정지" + "message": "탭 전환 시 자동 일시중지" }, "autoplay": { "message": "자동재생" }, "avoidAv1": { - "message": "Avoid AV1" + "message": "AV1 막기" }, "avoidAv1Vp8Vp9": { - "message": "Avoid AV1, VP8, VP9" + "message": "AV1, VP8, VP9 막기" }, "avoidAv1Vp9": { - "message": "Avoid AV1, VP9" + "message": "AV1, VP9 막기" }, "avoidCpuRenderingWhenPossible": { - "message": "Avoid CPU rendering when possible" + "message": "가능할 경우 CPU 렌더링 막기" }, "backgroundColor": { - "message": "Background color" + "message": "배경 색상" }, "backgroundOpacity": { - "message": "Background opacity" + "message": "배경 투명도" }, "backupAndReset": { "message": "백업 & 리셋" }, "baseOnSystemColorScheme": { - "message": "시스템 색 구성표 기반" + "message": "시스템 색상 구성표 기반" }, "belowPlayer": { "message": "플레이어 아래" @@ -132,19 +132,19 @@ "message": "모두 차단" }, "blockAv1": { - "message": "Block AV1" + "message": "AV1 차단" }, "blockH264": { - "message": "Block H.264" + "message": "H.264 차단" }, "blockMusic": { - "message": "Block music" + "message": "음악 차단" }, "blockVp8": { - "message": "Block VP8" + "message": "VP8 차단" }, "blockVp9": { - "message": "Block VP9" + "message": "VP9 차단" }, "blue": { "message": "파랑" @@ -186,10 +186,10 @@ "message": "채널" }, "characterEdgeStyle": { - "message": "Character edge style" + "message": "글꼴 테두리 스타일" }, "clip": { - "message": "Clip" + "message": "클립" }, "clipboard": { "message": "클립보드" @@ -198,19 +198,19 @@ "message": "코덱 h.264" }, "codecs": { - "message": "Codecs" + "message": "코덱" }, "collapseOfSubscriptionSections": { - "message": "구독섹션 축소" + "message": "구독 섹션 접기" }, "collapsed": { - "message": "축소됨" + "message": "접힘" }, "comments": { "message": "댓글" }, "confirmationBeforeClosing": { - "message": "닫기전에 확인하기" + "message": "창을 닫기 전에 확인하기" }, "cookies": { "message": "쿠키" @@ -219,10 +219,10 @@ "message": "코어" }, "cropChapterTitles": { - "message": "제목 자르기" + "message": "긴 챕터 제목 자르기" }, "custom": { - "message": "Custom" + "message": "사용자 지정" }, "customCss": { "message": "사용자 지정 캐스캐이팅 스타일 시트(CSS)" @@ -243,13 +243,13 @@ "message": "다크 테마" }, "dateAndTime": { - "message": "날짜 & 시간" + "message": "날짜와 시간" }, "dawn": { "message": "석양" }, "decreasePlaybackSpeed": { - "message": "되감기 속도 감소" + "message": "재생 속도 빠르게" }, "decreaseVolume": { "message": "볼륨 감소" @@ -261,28 +261,28 @@ "message": "진한 보라" }, "default": { - "message": "Default" + "message": "기본값" }, "defaultChannelTab": { "message": "기본 채널 탭" }, "defaultContentCountry": { - "message": "Default content country" + "message": "기본 콘텐츠 지역" }, "deleteWatchedVideos": { - "message": "Delete watched videos" + "message": "시청한 영상 삭제" }, "deleteYoutubeCookies": { "message": "유튜브 쿠키 삭제" }, "depressed": { - "message": "Depressed" + "message": "음각" }, "description": { - "message": "Description" + "message": "영상 설명란" }, "description_ext": { - "message": "유튜브를 깔끌하고 스마트하게 만들어줍니다! 유튜브 비디오 내 컬러, 광고제거, 볼륨, 배속, 채널 툴, 스타일, HD, 광고성 블록, 태그, 키워드, 재생목록" + "message": "유튜브를 깔끔하고 스마트하게 만들어줍니다! 유튜브 비디오의 색상, 광고 제거, 음량, 배속, 채널 툴, 스타일, HD, 광고 차단, 태그, 키워드, 재생목록" }, "desert": { "message": "사막" @@ -306,7 +306,7 @@ "message": "싫어요" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "요일 표시" }, "doNotChange": { "message": "바꾸지 않음" @@ -315,16 +315,16 @@ "message": "후원하기" }, "download": { - "message": "Download" + "message": "오프라인 저장" }, "draggable": { "message": "드래그 가능" }, "dropShadow": { - "message": "Drop shadow" + "message": "그림자" }, "durationWithSpeed": { - "message": "Show time remaining with reference to playback speed" + "message": "남은 시간을 재생속도에 맞춰 표시하기" }, "email": { "message": "이메일" @@ -336,7 +336,7 @@ "message": "활성화" }, "enabledForced": { - "message": "강제로 활성화" + "message": "강제 활성화" }, "expanded": { "message": "확장" @@ -345,7 +345,7 @@ "message": "설정 내보내기" }, "extension": { - "message": "확대" + "message": "확장 프로그램" }, "file": { "message": "파일" @@ -354,7 +354,7 @@ "message": "필터" }, "fitToWindow": { - "message": "창크기에 맞추기" + "message": "창 크기에 맞추기" }, "flash": { "message": "플래시" @@ -363,31 +363,31 @@ "message": "글꼴" }, "fontColor": { - "message": "Font color" + "message": "글꼴 색상" }, "fontFamily": { - "message": "Font family" + "message": "글꼴 설정" }, "fontOpacity": { - "message": "Font opacity" + "message": "글꼴 투명도" }, "fontSize": { - "message": "Font size" + "message": "글꼴 크기" }, "footer": { "message": "하단" }, "forceSDR": { - "message": "Force SDR" + "message": "SDR 강제 적용" }, "forcedPlayVideoFromTheBeginning": { - "message": "Forced play video from the beginning" + "message": "영상을 무조건 처음부터 보기" }, "forcedPlaybackSpeed": { - "message": "되감기 속도 강제설정" + "message": "재생 속도 강제 설정" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "유튜브 뮤직 재생 속도 강제 설정" }, "forcedTheaterMode": { "message": "강제 영화관 모드" @@ -396,7 +396,7 @@ "message": "볼륨 강제설정" }, "foundABug": { - "message": "버그신고" + "message": "버그 신고" }, "fullWindow": { "message": "전체 화면" @@ -423,25 +423,25 @@ "message": "초록" }, "hardwareInformation": { - "message": "Hardware information" + "message": "하드웨어 정보" }, "hd": { "message": "HD" }, "hdThumbnail": { - "message": "HD 썸네일" + "message": "HD 섬네일" }, "header": { "message": "헤더" }, "hidden": { - "message": "숨김" + "message": "숨기기" }, "hiddenOnVideoPage": { - "message": "비디오 페이지 숨기기" + "message": "영상이 있을 때 숨기기" }, "hideAnimatedThumbnails": { - "message": "썸네일 애니메이션 숨기기" + "message": "섬네일 재생 끄기" }, "hideAnnotations": { "message": "설명 숨기기" @@ -450,7 +450,7 @@ "message": "카드 숨기기" }, "hideCategories": { - "message": "Hide categories" + "message": "카테고리 숨기기" }, "hideCommentsCount": { "message": "Hide comments count" @@ -468,7 +468,7 @@ "message": "상세설명 숨기기" }, "hideEndscreen": { - "message": "종료후 화면 숨기기" + "message": "영상 끝난 후 추천 영상 숨기기" }, "hideFeaturedContent": { "message": "추천 영상 숨기기" @@ -501,10 +501,10 @@ "message": "\"오버레이 건너뛰기\" 숨기기" }, "hideThumbnailOverlay": { - "message": "Hide thumbnail overlay" + "message": "섬네일 오버레이 숨기기" }, "hideThumbnails": { - "message": "Hide thumbnails" + "message": "섬네일 숨기기" }, "hideViewsCount": { "message": "조회수 숨기기" @@ -513,19 +513,19 @@ "message": "\"음성으로 찾기\" 버튼 숨기기" }, "high": { - "message": "High" + "message": "고화질" }, "history": { - "message": "히스토리" + "message": "시청 기록" }, "home": { "message": "홈" }, "hover": { - "message": "띄우기" + "message": "마우스를 올리면 띄우기" }, "hoverOnVideoPage": { - "message": "비디오 페이지 띄우기" + "message": "영상이 있을 때 마우스를 올리면 띄우기" }, "howLongAgoTheVideoWasUploaded": { "message": "업로드 시기" @@ -543,19 +543,19 @@ "message": "향상된 로고" }, "improvedtubeButtons": { - "message": "ImprovedTube buttons" + "message": "ImprovedTube 버튼" }, "improvedtubeIconOnYoutube": { - "message": "향상된 유튜브 아이콘" + "message": "ImprovedTube 아이콘" }, "improvedtubeLanguage": { - "message": "향상된 유튜브 언어" + "message": "ImprovedTube 언어" }, "improvedtubeVersion": { - "message": "향상된 유튜브 버전" + "message": "ImprovedTube 버전" }, "increasePlaybackSpeed": { - "message": "되감기 속도 증가" + "message": "재생 속도 느리게" }, "increaseVolume": { "message": "볼륨 증가" @@ -573,16 +573,16 @@ "message": "언어" }, "layerAnimationScale": { - "message": "Layer animation scale" + "message": "레이어 애니메이션 배속" }, "layout": { - "message": "Layout" + "message": "모양" }, "legacyYoutube": { "message": "레거시 유튜브" }, "library": { - "message": "Library" + "message": "보관함" }, "light": { "message": "밝게" @@ -597,7 +597,7 @@ "message": "좋아요" }, "liked": { - "message": "Liked" + "message": "좋아요 표시한 동영상" }, "likes": { "message": "Likes" @@ -606,7 +606,7 @@ "message": "라임" }, "limitPageWidth": { - "message": "Limit page width" + "message": "페이지 너비 제한" }, "list": { "message": "리스트" @@ -627,13 +627,13 @@ "message": "볼륨 자동조정" }, "low": { - "message": "Low" + "message": "저화질" }, "markWatchedVideos": { "message": "시청한 영상 표시" }, "medium": { - "message": "Medium" + "message": "보통 화질" }, "mixer": { "message": "믹서" @@ -642,16 +642,16 @@ "message": "More" }, "mostViewedChannels": { - "message": "Most viewed channels" + "message": "가장 많이 본 채널" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "사이드바 왼쪽으로 이동" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "섬네일 오른쪽으로 이동" }, "myColors": { - "message": "내 컬러" + "message": "내 색상" }, "name": { "message": "이름" @@ -666,10 +666,10 @@ "message": "다음 영상" }, "night": { - "message": "저녘" + "message": "저녁" }, "nightMode": { - "message": "Night mode" + "message": "수면 도움 모드" }, "noActiveFeatures": { "message": "활성 기능 없음" @@ -693,7 +693,7 @@ "message": "오래됨" }, "onAllVideos": { - "message": "모든 비디오" + "message": "모든 동영상" }, "onSubscribedChannels": { "message": "구독한 채널" @@ -717,7 +717,7 @@ "message": "기타" }, "outline": { - "message": "Outline" + "message": "외곽선" }, "overlay": { "message": "Overlay" @@ -741,16 +741,16 @@ "message": "\"Play all\" button" }, "playPause": { - "message": "재생 / 일시정지" + "message": "재생 / 일시중지" }, "playbackSpeed": { - "message": "되감기 속도" + "message": "영상 재생 속도" }, "player": { "message": "플레이어" }, "playerColor": { - "message": "플레이어 컬러" + "message": "플레이어 색상" }, "playerSize": { "message": "플레이어 크기" @@ -786,10 +786,10 @@ "message": "보라" }, "quality": { - "message": "퀄리티" + "message": "화질" }, "raised": { - "message": "Raised" + "message": "양각" }, "ram": { "message": "램" @@ -813,7 +813,7 @@ "message": "Play on TV" }, "removeRelatedSearchResults": { - "message": "관련 검색결과 제거" + "message": "관련 검색 결과 제거" }, "repeat": { "message": "반복" @@ -831,7 +831,7 @@ "message": "모든 단축키 리셋" }, "reverse": { - "message": "반대로" + "message": "거꾸로" }, "rotate": { "message": "회전" @@ -888,10 +888,10 @@ "message": "단축키" }, "showCardsOnMouseHover": { - "message": "마우스 올릴 때 카드보기" + "message": "마우스 올릴 때 카드 보기" }, "showChannelVideosCount": { - "message": "채널의 비디오수 표시" + "message": "채널의 비디오 수 표시" }, "showLess": { "message": "Show less" @@ -903,7 +903,7 @@ "message": "Show video remaining duration" }, "showVersion": { - "message": "Show version" + "message": "버전 표시" }, "shuffle": { "message": "셔플" @@ -912,22 +912,22 @@ "message": "사이드바" }, "softwareInformation": { - "message": "Software information" + "message": "소프트웨어 정보" }, "spacebar": { "message": "스페이스바" }, "squaredUserImages": { - "message": "정사각형 프로필사진" + "message": "정사각형 프로필 사진" }, "static": { - "message": "고정" + "message": "밑으로 내릴 때 숨기기" }, "statsForNerds": { - "message": "너드 통계 표시" + "message": "전문 통계 표시" }, "step": { - "message": "스텝" + "message": "간격" }, "stop": { "message": "정지" @@ -939,7 +939,7 @@ "message": "스타일" }, "subscribe": { - "message": "Subscribe" + "message": "구독하기" }, "subscriptions": { "message": "구독" @@ -951,7 +951,7 @@ "message": "일몰" }, "sunsetToSunrise": { - "message": "일몰부터 일출까지" + "message": "적용 시간 설정" }, "systemPeferenceDark": { "message": "개인 설정: 다크" @@ -975,7 +975,7 @@ "message": "모든 쿠키를 삭제합니다." }, "thisWillRemoveAllWatchedVideos": { - "message": "This will remove all watched videos." + "message": "모든 시청한 영상을 삭제합니다." }, "thisWillRemoveAllYouTubeCookies": { "message": "모든 유튜브 쿠키를 삭제합니다." @@ -987,28 +987,28 @@ "message": "모든 단축키를 초기화 합니다." }, "thumbnails": { - "message": "썸네일" + "message": "섬네일" }, "thumbnailsQuality": { - "message": "Thumbnails Quality" + "message": "섬네일 화질" }, "timeFrom": { - "message": "다음시간 부터" + "message": "이 시간 부터" }, "timeTo": { - "message": "다음시간 까지" + "message": "이 시간 까지" }, "todayAt": { "message": "오늘의" }, "toggleAutoplay": { - "message": "Toggle autoplay" + "message": "자동재생 켜기/끄기" }, "toggleCards": { - "message": "토글 카드" + "message": "카드 켜기/끄기" }, "toggleControls": { - "message": "Toggle controls" + "message": "컨트롤 켜기/끄기" }, "topChat": { "message": "탑 챗" @@ -1035,13 +1035,13 @@ "message": "타입" }, "upNextAutoplay": { - "message": "다음영상 자동재생" + "message": "다음 영상 자동재생" }, "use24HourFormat": { "message": "24시간 형식 사용" }, "version": { - "message": "버젼" + "message": "버전" }, "video": { "message": "영상" @@ -1056,31 +1056,31 @@ "message": "비디오" }, "viewMode": { - "message": "View Mode" + "message": "영화관 모드 전환" }, "volume": { "message": "음량" }, "watchLater": { - "message": "나중에 보기" + "message": "나중에 볼 동영상" }, "watchTime": { "message": "시간 보기" }, "whenPaused": { - "message": "When paused" + "message": "일시중지 중에" }, "whenTabIsChanged": { - "message": "탭이 바뀔때" + "message": "탭이 바뀔 때" }, "white": { "message": "하양" }, "windowColor": { - "message": "Window color" + "message": "자막 칸 색상" }, "windowOpacity": { - "message": "Window opacity" + "message": "자막 칸 투명도" }, "yellow": { "message": "노랑" @@ -1098,6 +1098,6 @@ "message": "유튜브 언어" }, "youtubeLimitsVideoQualityTo1080pForH264Codec": { - "message": "유튜브는 h.264 코덱에서 비디오 품질을 1080p로 제한합니다" + "message": "유튜브는 h.264 코덱에서 비디오 품질을 1080p로 제한합니다." } -} \ No newline at end of file +} From 8124ad56c624ae75b33a9107e31a85bc32162958 Mon Sep 17 00:00:00 2001 From: Luca Park Date: Tue, 24 Jan 2023 01:57:49 +0900 Subject: [PATCH 0772/1224] Modifying Korean Translation --- _locales/ko/messages.json | 56 +++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 4b9bb99f0..ef825fa9d 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -36,7 +36,7 @@ "message": "활성 기능" }, "addScrollToTop": { - "message": "<<맨 위로>> 추가" + "message": "<<맨 위로>> 버튼 추가" }, "ads": { "message": "광고" @@ -105,7 +105,7 @@ "message": "AV1, VP9 막기" }, "avoidCpuRenderingWhenPossible": { - "message": "가능할 경우 CPU 렌더링 막기" + "message": "가능한 경우 CPU 렌더링 막기" }, "backgroundColor": { "message": "배경 색상" @@ -204,7 +204,7 @@ "message": "구독 섹션 접기" }, "collapsed": { - "message": "접힘" + "message": "접기" }, "comments": { "message": "댓글" @@ -219,7 +219,7 @@ "message": "코어" }, "cropChapterTitles": { - "message": "긴 챕터 제목 자르기" + "message": "긴 챕터 이름 자르기" }, "custom": { "message": "사용자 지정" @@ -453,7 +453,7 @@ "message": "카테고리 숨기기" }, "hideCommentsCount": { - "message": "Hide comments count" + "message": "댓글 개수 숨기기" }, "hideCountryCode": { "message": "국가코드 숨기기" @@ -462,10 +462,10 @@ "message": "날짜 숨기기" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "상세 버튼 숨기기" }, "hideDetails": { - "message": "상세설명 숨기기" + "message": "영상 설명란 숨기기" }, "hideEndscreen": { "message": "영상 끝난 후 추천 영상 숨기기" @@ -477,16 +477,16 @@ "message": "하단 숨기기" }, "hideGradientBottom": { - "message": "그라데이션 맨 아래로 숨기기" + "message": "영상 아래 그라데이션 숨기기" }, "hidePlayerControlsBar": { - "message": "Hide player controls bar" + "message": "플레이어 컨트롤 바 숨기기" }, "hidePlayerControlsBarButtons": { - "message": "Hide player controls bar buttons" + "message": "플레이어 컨트롤 버튼 숨기기" }, "hidePlayerControlsBarOptions": { - "message": "Hide player controls options" + "message": "플레이어 컨트롤 옵션 숨기기" }, "hidePlaylist": { "message": "재생 목록 숨기기" @@ -507,7 +507,7 @@ "message": "섬네일 숨기기" }, "hideViewsCount": { - "message": "조회수 숨기기" + "message": "조회 수 숨기기" }, "hideVoiceSearchButton": { "message": "\"음성으로 찾기\" 버튼 숨기기" @@ -567,7 +567,7 @@ "message": "요소" }, "language": { - "message": "Language" + "message": "언어" }, "languages": { "message": "언어" @@ -705,7 +705,7 @@ "message": "하나의 플레이어만 재생" }, "openPopupPlayer": { - "message": "Open video/playlist in a new window" + "message": "동영상/재생목록을 새 창에서 열기" }, "orange": { "message": "주황" @@ -720,7 +720,7 @@ "message": "외곽선" }, "overlay": { - "message": "Overlay" + "message": "오버레이" }, "permissions": { "message": "권한" @@ -738,7 +738,7 @@ "message": "플랫폼" }, "playAllButton": { - "message": "\"Play all\" button" + "message": "\"모두 재생\" 버튼" }, "playPause": { "message": "재생 / 일시중지" @@ -804,13 +804,13 @@ "message": "빨강" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "싫어요 버튼 빨간색으로 표시" }, "relatedVideos": { "message": "관련 영상" }, "remote": { - "message": "Play on TV" + "message": "TV에서 재생" }, "removeRelatedSearchResults": { "message": "관련 검색 결과 제거" @@ -819,7 +819,7 @@ "message": "반복" }, "report": { - "message": "Report" + "message": "신고" }, "reset": { "message": "리셋" @@ -837,10 +837,10 @@ "message": "회전" }, "save": { - "message": "저장" + "message": "오프라인 저장" }, "saveAs": { - "message": "다른이름으로 저장" + "message": "다른 이름으로 저장" }, "schedule": { "message": "스케줄" @@ -891,16 +891,16 @@ "message": "마우스 올릴 때 카드 보기" }, "showChannelVideosCount": { - "message": "채널의 비디오 수 표시" + "message": "채널의 동영상 수 표시" }, "showLess": { - "message": "Show less" + "message": "간략히" }, "showMore": { - "message": "Show more" + "message": "더보기" }, "showRemainingDuration": { - "message": "Show video remaining duration" + "message": "동영상 남은 시간 표시" }, "showVersion": { "message": "버전 표시" @@ -1047,13 +1047,13 @@ "message": "영상" }, "videoDescriptionWillBeExpandedToGetNameOfCategory": { - "message": "카테고리의 이름을 얻기 위해 비디오 설명이 확장됩니다" + "message": "카테고리의 이름을 얻기 위해 동영상 설명이 확장됩니다" }, "videoFormats": { - "message": "비디오 형식" + "message": "동영상 형식" }, "videos": { - "message": "비디오" + "message": "동영상" }, "viewMode": { "message": "영화관 모드 전환" From 7f346c9142a2dbe4f98dd459a9b55e925378639a Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 23 Jan 2023 22:53:14 +0100 Subject: [PATCH 0773/1224] Update README.md --- .github/README.md | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/.github/README.md b/.github/README.md index 1a1c0f7ea..d4fdc3a02 100644 --- a/.github/README.md +++ b/.github/README.md @@ -6,11 +6,11 @@ Donate
-

Install

+

Install

- + @@ -35,8 +35,12 @@
Store - Version + StoreVersion
Chrome Web Store or install manually latest
- -

Roadmap

+ +

Contributing

+For more info on how to contribute please see the contribution wiki. + +

Roadmap

+
- Finding developers and patreons - All bugs & wishes @@ -45,12 +49,12 @@ - Smart player buttons for all \ - Smart content-filtering & discovery - Full-page GUI, watch-history, dashboard + - Integrating data such as [SB](https://github.com/mchangrh/sb-mirror) / [NB](https://github.com/andrewzlee/NeuralBlock) + - Integrating code / features like [YCS](https://github.com/sonigy/YCS) [YR](https://github.com/MarcGuiselin/youtube-refined) [NY](https://github.com/raingart/Nova-YouTube-extension) [IC](https://github.com/ThomasTavernier/Improve-Crunchyroll)
-

Contributing

-For more info on how to contribute please see the contribution wiki. - -
   

Long 'ugly' Readme.md:

+ +
   

Long 'ugly' Readme.md:

From a46b85b8d9fddda9a3b8c2bedd5077e2692a90c1 Mon Sep 17 00:00:00 2001 From: Luca Park Date: Tue, 24 Jan 2023 18:43:45 +0900 Subject: [PATCH 0774/1224] There was a bug in the video count function. Please check the API key. --- .../youtube-features/appearance.js | 414 +++++++++--------- 1 file changed, 200 insertions(+), 214 deletions(-) diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index 547f49f72..c1967bd29 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -11,152 +11,144 @@ ------------------------------------------------------------------------------*/ ImprovedTube.playerSize = function () { - if (this.storage.player_size === 'custom') { - console.log("yes"); - var width = Number(this.storage.custom_player_size_width) || 1280, - height = Number(this.storage.custom_player_size_height) || 720, - style = this.elements.player_size_style || document.createElement('style'); + if (this.storage.player_size === "custom") { + console.log("yes"); + var width = Number(this.storage.custom_player_size_width) || 1280, + height = Number(this.storage.custom_player_size_height) || 720, + style = this.elements.player_size_style || document.createElement("style"); - style.textContent = '[data-page-type="video"][it-player-size="custom"] {'; - style.textContent += '--it-player-width:' + width + 'px;'; - style.textContent += '--it-player-height:' + height + 'px;'; - style.textContent += '}'; + style.textContent = '[data-page-type="video"][it-player-size="custom"] {'; + style.textContent += "--it-player-width:" + width + "px;"; + style.textContent += "--it-player-height:" + height + "px;"; + style.textContent += "}"; - document.body.appendChild(style); + document.body.appendChild(style); - window.dispatchEvent(new Event('resize')); - } + window.dispatchEvent(new Event("resize")); + } }; - /*------------------------------------------------------------------------------ 4.2.1.2 FORCED THEATER MODE ------------------------------------------------------------------------------*/ ImprovedTube.forcedTheaterMode = function () { - if (ImprovedTube.storage.forced_theater_mode === true && - ImprovedTube.elements.ytd_watch && - ImprovedTube.elements.player - ) { - var button = ImprovedTube.elements.player.querySelector('button.ytp-size-button'); - - if (button && ImprovedTube.elements.ytd_watch.theater === false) { - document.cookie = 'wide=1;domain=.youtube.com'; - - setTimeout(function () { - button.click(); - }, 100); - } - } -}; + if (ImprovedTube.storage.forced_theater_mode === true && ImprovedTube.elements.ytd_watch && ImprovedTube.elements.player) { + var button = ImprovedTube.elements.player.querySelector("button.ytp-size-button"); + if (button && ImprovedTube.elements.ytd_watch.theater === false) { + document.cookie = "wide=1;domain=.youtube.com"; + + setTimeout(function () { + button.click(); + }, 100); + } + } +}; /*------------------------------------------------------------------------------ 4.2.1.3 HD THUMBNAIL ------------------------------------------------------------------------------*/ ImprovedTube.playerHdThumbnail = function () { - if (this.storage.player_hd_thumbnail === true) { - var thumbnail = ImprovedTube.elements.player_thumbnail; + if (this.storage.player_hd_thumbnail === true) { + var thumbnail = ImprovedTube.elements.player_thumbnail; - if (thumbnail.style.backgroundImage.indexOf('/hqdefault.jpg') !== -1) { - thumbnail.style.backgroundImage = thumbnail.style.backgroundImage.replace('/hqdefault.jpg', '/maxresdefault.jpg'); - } - } + if (thumbnail.style.backgroundImage.indexOf("/hqdefault.jpg") !== -1) { + thumbnail.style.backgroundImage = thumbnail.style.backgroundImage.replace("/hqdefault.jpg", "/maxresdefault.jpg"); + } + } }; - /*------------------------------------------------------------------------------ 4.2.1.4 ALWAYS SHOW PROGRESS BAR ------------------------------------------------------------------------------*/ ImprovedTube.alwaysShowProgressBar = function () { - if (this.storage.always_show_progress_bar === true) { - var player = ImprovedTube.elements.player; - - if (player && player.className.indexOf('ytp-autohide') !== -1) { - var played = player.getCurrentTime() * 100 / player.getDuration(), - loaded = player.getVideoBytesLoaded() * 100, - play_bars = player.querySelectorAll('.ytp-play-progress'), - load_bars = player.querySelectorAll('.ytp-load-progress'), - width = 0, - progress_play = 0, - progress_load = 0; - - for (var i = 0, l = play_bars.length; i < l; i++) { - width += play_bars[i].offsetWidth; - } - - var width_percent = width / 100; - - for (var i = 0, l = play_bars.length; i < l; i++) { - var a = play_bars[i].offsetWidth / width_percent, - b = 0, - c = 0; - - if (played - progress_play >= a) { - b = 100; - } else if (played > progress_play && played < a + progress_play) { - b = 100 * ((played - progress_play) * width_percent) / play_bars[i].offsetWidth; - } - - play_bars[i].style.transform = 'scaleX(' + b / 100 + ')'; - - if (loaded - progress_load >= a) { - c = 100; - } else if (loaded > progress_load && loaded < a + progress_load) { - c = 100 * ((loaded - progress_load) * width_percent) / play_bars[i].offsetWidth; - } - - load_bars[i].style.transform = 'scaleX(' + c / 100 + ')'; - - progress_play += a; - progress_load += a; - } - } - } -}; + if (this.storage.always_show_progress_bar === true) { + var player = ImprovedTube.elements.player; + + if (player && player.className.indexOf("ytp-autohide") !== -1) { + var played = (player.getCurrentTime() * 100) / player.getDuration(), + loaded = player.getVideoBytesLoaded() * 100, + play_bars = player.querySelectorAll(".ytp-play-progress"), + load_bars = player.querySelectorAll(".ytp-load-progress"), + width = 0, + progress_play = 0, + progress_load = 0; + + for (var i = 0, l = play_bars.length; i < l; i++) { + width += play_bars[i].offsetWidth; + } + + var width_percent = width / 100; + + for (var i = 0, l = play_bars.length; i < l; i++) { + var a = play_bars[i].offsetWidth / width_percent, + b = 0, + c = 0; + + if (played - progress_play >= a) { + b = 100; + } else if (played > progress_play && played < a + progress_play) { + b = (100 * ((played - progress_play) * width_percent)) / play_bars[i].offsetWidth; + } + + play_bars[i].style.transform = "scaleX(" + b / 100 + ")"; + + if (loaded - progress_load >= a) { + c = 100; + } else if (loaded > progress_load && loaded < a + progress_load) { + c = (100 * ((loaded - progress_load) * width_percent)) / play_bars[i].offsetWidth; + } + load_bars[i].style.transform = "scaleX(" + c / 100 + ")"; + + progress_play += a; + progress_load += a; + } + } + } +}; /*------------------------------------------------------------------------------ 4.2.1.5 VIDEO REMAINING DURATION ------------------------------------------------------------------------------*/ ImprovedTube.formatSecond = function (rTime) { - var time = new Date(null); - if (this.storage.duration_with_speed === true) { + var time = new Date(null); + if (this.storage.duration_with_speed === true) { var playbackRate = this.elements.video.playbackRate; time.setSeconds(rTime / playbackRate); } else { time.setSeconds(rTime); } - if (rTime / 3600 < 1) { - return time.toISOString().substr(14, 5); - } else { - return time.toISOString().substr(11, 8); - } -} + if (rTime / 3600 < 1) { + return time.toISOString().substr(14, 5); + } else { + return time.toISOString().substr(11, 8); + } +}; ImprovedTube.playerRemainingDuration = function () { - var element = document.querySelector('.ytp-time-remaining-duration'); - if (this.storage.player_remaining_duration === true) { - var player = ImprovedTube.elements.player; - var rTime = ImprovedTube.formatSecond((player.getDuration() - player.getCurrentTime()).toFixed(0)); - if (!element) { - var label = document.createElement('span'); - label.textContent = ' (-' + rTime + ')'; - label.className = 'ytp-time-remaining-duration'; - document.querySelector('.ytp-time-display').appendChild(label); - } else { - element.textContent = ' (-' + rTime + ')'; - } - } else if (element) { - element.remove(); - } + var element = document.querySelector(".ytp-time-remaining-duration"); + if (this.storage.player_remaining_duration === true) { + var player = ImprovedTube.elements.player; + var rTime = ImprovedTube.formatSecond((player.getDuration() - player.getCurrentTime()).toFixed(0)); + if (!element) { + var label = document.createElement("span"); + label.textContent = " (-" + rTime + ")"; + label.className = "ytp-time-remaining-duration"; + document.querySelector(".ytp-time-display").appendChild(label); + } else { + element.textContent = " (-" + rTime + ")"; + } + } else if (element) { + element.remove(); + } }; - /*------------------------------------------------------------------------------ 4.2.2 SIDEBAR ------------------------------------------------------------------------------*/ @@ -166,12 +158,11 @@ ImprovedTube.playerRemainingDuration = function () { ------------------------------------------------------------------------------*/ ImprovedTube.livechat = function () { - if (this.storage.livechat === 'collapsed') { - ImprovedTube.elements.livechat.button.click(); - } + if (this.storage.livechat === "collapsed") { + ImprovedTube.elements.livechat.button.click(); + } }; - /*------------------------------------------------------------------------------ 4.2.3 DETAILS ------------------------------------------------------------------------------*/ @@ -181,62 +172,61 @@ ImprovedTube.livechat = function () { ------------------------------------------------------------------------------*/ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { - if (this.storage.how_long_ago_the_video_was_uploaded === true && this.elements.yt_channel_name) { - var xhr = new XMLHttpRequest(), - key = this.storage['google-api-key'] || ImprovedTube.defaultApiKey, - id = this.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v'); - - function timeSince(date) { - var seconds = Math.floor((new Date() - new Date(date)) / 1000), - interval = Math.floor(seconds / 31536000); - - if (interval > 1) { - return interval + ' years ago'; - } - interval = Math.floor(seconds / 2592000); - if (interval > 1) { - return interval + ' months ago'; - } - interval = Math.floor(seconds / 86400); - if (interval > 1) { - return interval + ' days ago'; - } - interval = Math.floor(seconds / 3600); - if (interval > 1) { - return interval + ' hours ago'; - } - interval = Math.floor(seconds / 60); - if (interval > 1) { - return interval + ' minutes ago'; - } - - return Math.floor(seconds) + ' seconds ago'; - } - - xhr.addEventListener('load', function () { - var response = JSON.parse(this.responseText), - element = ImprovedTube.elements.how_long_ago_the_video_was_uploaded || document.createElement('div'); - - ImprovedTube.empty(element); - - if (response.error) { - element.appendChild(document.createTextNode('• Error: ' + response.error.code)); - } else { - element.appendChild(document.createTextNode('• ' + timeSince(response.items[0].snippet.publishedAt))); - } - - element.className = 'it-how-long-ago-the-video-was-uploaded'; - - ImprovedTube.elements.how_long_ago_the_video_was_uploaded = element; - - document.querySelector('#info #info-text').appendChild(element); - }); - - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=' + id + '&key=' + key, true); - xhr.send(); - } -}; + if (this.storage.how_long_ago_the_video_was_uploaded === true && this.elements.yt_channel_name) { + var xhr = new XMLHttpRequest(), + key = this.storage["google-api-key"] || ImprovedTube.defaultApiKey, + id = this.getParam(location.href.slice(location.href.indexOf("?") + 1), "v"); + + function timeSince(date) { + var seconds = Math.floor((new Date() - new Date(date)) / 1000), + interval = Math.floor(seconds / 31536000); + + if (interval > 1) { + return interval + " years ago"; + } + interval = Math.floor(seconds / 2592000); + if (interval > 1) { + return interval + " months ago"; + } + interval = Math.floor(seconds / 86400); + if (interval > 1) { + return interval + " days ago"; + } + interval = Math.floor(seconds / 3600); + if (interval > 1) { + return interval + " hours ago"; + } + interval = Math.floor(seconds / 60); + if (interval > 1) { + return interval + " minutes ago"; + } + + return Math.floor(seconds) + " seconds ago"; + } + + xhr.addEventListener("load", function () { + var response = JSON.parse(this.responseText), + element = ImprovedTube.elements.how_long_ago_the_video_was_uploaded || document.createElement("div"); + + ImprovedTube.empty(element); + + if (response.error) { + element.appendChild(document.createTextNode("• Error: " + response.error.code)); + } else { + element.appendChild(document.createTextNode("• " + timeSince(response.items[0].snippet.publishedAt))); + } + + element.className = "it-how-long-ago-the-video-was-uploaded"; + + ImprovedTube.elements.how_long_ago_the_video_was_uploaded = element; + document.querySelector("#info #info-text").appendChild(element); + }); + + xhr.open("GET", "https://www.googleapis.com/youtube/v3/videos?part=snippet&id=" + id + "&key=" + key, true); + xhr.send(); + } +}; /*------------------------------------------------------------------------------ 4.2.3.2 SHOW CHANNEL VIDEOS COUNT @@ -244,38 +234,39 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { ImprovedTube.channelVideosCount = function () { if (this.storage.channel_videos_count === true && this.elements.yt_channel_link) { - var key = this.storage['google-api-key'] || ImprovedTube.defaultApiKey; - if (this.elements.yt_channel_link.href.indexOf('/channel/') == -1) { + var key = this.storage["google-api-key"] || ImprovedTube.defaultApiKey; + if (this.elements.yt_channel_link.href.indexOf("/channel/") == -1) { var xhr = new XMLHttpRequest(), - id = this.getParam(location.href.slice(location.href.indexOf('?') + 1), 'v'); - - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=' + id + '&key=' + key, false); + id = this.getParam(location.href.slice(location.href.indexOf("?") + 1), "v"); + xhr.open("GET", "https://www.googleapis.com/youtube/v3/videos?part=snippet&id=" + id + "&key=" + key, false); xhr.send(); - var response = JSON.parse(xhr.responseText); - id = response.items[0].snippet.channelId; + if (xhr.readyState === xhr.DONE && xhr.status === 200) { + var response = JSON.parse(xhr.responseText); + id = response.items[0].snippet.channelId; + } } else { - id = this.elements.yt_channel_link.href.slice(this.elements.yt_channel_link.href.indexOf('/channel/') + '/channel/'.length); - if (id.indexOf('/') !== -1) { + id = this.elements.yt_channel_link.href.slice(this.elements.yt_channel_link.href.indexOf("/channel/") + "/channel/".length); + if (id.indexOf("/") !== -1) { id = id.match(/.+?(?=\/)/)[0]; } } xhr = new XMLHttpRequest(); - xhr.addEventListener('load', function () { + xhr.addEventListener("load", function () { var response = JSON.parse(this.responseText), - parent = document.querySelector('#meta ytd-channel-name + yt-formatted-string'), - element = ImprovedTube.elements.channel_videos_count || document.createElement('div'); + parent = document.querySelector("#meta ytd-channel-name + yt-formatted-string"), + element = ImprovedTube.elements.channel_videos_count || document.createElement("div"); ImprovedTube.empty(element); if (response.error) { - element.appendChild(document.createTextNode('• Error: ' + response.error.code)); + element.appendChild(document.createTextNode("• Error: " + response.error.code)); } else { - element.appendChild(document.createTextNode('• ' + response.items[0].statistics.videoCount + ' videos')); + element.appendChild(document.createTextNode("• " + response.items[0].statistics.videoCount + " videos")); } - element.className = 'it-channel-videos-count'; + element.className = "it-channel-videos-count"; ImprovedTube.elements.channel_videos_count = element; @@ -284,8 +275,7 @@ ImprovedTube.channelVideosCount = function () { ImprovedTube.elements.channel_videos_count = element; }); - - xhr.open('GET', 'https://www.googleapis.com/youtube/v3/channels?part=statistics&id=' + id + '&key=' + key, true); + xhr.open("GET", "https://www.googleapis.com/youtube/v3/channels?part=statistics&id=" + id + "&key=" + key, true); xhr.send(); } }; @@ -295,12 +285,12 @@ ImprovedTube.channelVideosCount = function () { ------------------------------------------------------------------------------*/ ImprovedTube.description = function (el) { - if (this.storage.description === 'expanded') { + if (this.storage.description === "expanded") { el.click(); } }; - /*------------------------------------------------------------------------------ +/*------------------------------------------------------------------------------ 4.2.3.4 HIDE DETAIL BUTTON ------------------------------------------------------------------------------*/ @@ -309,19 +299,15 @@ ImprovedTube.hideDetailButton = function (el) { for (var i = 2; i < el.length; i++) { tmp = el[i].querySelector("g.yt-icon path").attributes.d.textContent.split(" ")[0]; if (tmp === "M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z") { - el[i].setAttribute('id', 'Save-button'); - } - else if (tmp === "M8,7c0,0.55-0.45,1-1,1S6,7.55,6,7c0-0.55,0.45-1,1-1S8,6.45,8,7z") { - el[i].setAttribute('id', 'Clip-button'); - } - else if (tmp === "M16.5,3C19.02,3,21,5.19,21,7.99c0,3.7-3.28,6.94-8.25,11.86L12,20.59l-0.74-0.73l-0.04-0.04C6.27,14.92,3,11.69,3,7.99") { - el[i].setAttribute('id', 'Thanks-button'); - } - else if (tmp === "M13.18,4l0.24,1.2L13.58,6h0.82H19v7h-5.18l-0.24-1.2L13.42,11H12.6H6V4H13.18") { - el[i].setAttribute('id', 'Report-button'); - } - else if (tmp === "M15,5.63L20.66,12L15,18.37V15v-1h-1c-3.96,0-7.14,1-9.75,3.09c1.84-4.07,5.11-6.4,9.89-7.1L15,9.86V9V5.63") { - el[i].setAttribute('id', 'Share-button'); + el[i].setAttribute("id", "Save-button"); + } else if (tmp === "M8,7c0,0.55-0.45,1-1,1S6,7.55,6,7c0-0.55,0.45-1,1-1S8,6.45,8,7z") { + el[i].setAttribute("id", "Clip-button"); + } else if (tmp === "M16.5,3C19.02,3,21,5.19,21,7.99c0,3.7-3.28,6.94-8.25,11.86L12,20.59l-0.74-0.73l-0.04-0.04C6.27,14.92,3,11.69,3,7.99") { + el[i].setAttribute("id", "Thanks-button"); + } else if (tmp === "M13.18,4l0.24,1.2L13.58,6h0.82H19v7h-5.18l-0.24-1.2L13.42,11H12.6H6V4H13.18") { + el[i].setAttribute("id", "Report-button"); + } else if (tmp === "M15,5.63L20.66,12L15,18.37V15v-1h-1c-3.96,0-7.14,1-9.75,3.09c1.84-4.07,5.11-6.4,9.89-7.1L15,9.86V9V5.63") { + el[i].setAttribute("id", "Share-button"); } } }, 30); @@ -332,22 +318,22 @@ ImprovedTube.hideDetailButton = function (el) { --------------------------------------------------------------*/ ImprovedTube.dayOfWeek = function () { - var element = document.querySelector('.ytd-day-of-week'); - if (this.storage.day_of_week === true) { - var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'] - setTimeout (function () { - var videoDate = document.querySelector('[itemprop=datePublished]').content; - var tempDate = new Date(videoDate); - if (!element) { - var label = document.createElement('span'); - label.textContent = " , " + days[tempDate.getDay() + 1]; - label.className = 'ytd-day-of-week'; - document.querySelector('ytd-video-primary-info-renderer #info #info-strings yt-formatted-string').append(label); - } else { - element.textContent = days[tempDate.getDay() + 1] + ", "; - } - }, 25); - } else if (element) { - element.remove(); - } -} \ No newline at end of file + var element = document.querySelector(".ytd-day-of-week"); + if (this.storage.day_of_week === true) { + var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; + setTimeout(function () { + var videoDate = document.querySelector("[itemprop=datePublished]").content; + var tempDate = new Date(videoDate); + if (!element) { + var label = document.createElement("span"); + label.textContent = " , " + days[tempDate.getDay() + 1]; + label.className = "ytd-day-of-week"; + document.querySelector("ytd-video-primary-info-renderer #info #info-strings yt-formatted-string").append(label); + } else { + element.textContent = days[tempDate.getDay() + 1] + ", "; + } + }, 25); + } else if (element) { + element.remove(); + } +}; From 42e74ac79c22ee6a3be4f0ffe4df9f0647757fd0 Mon Sep 17 00:00:00 2001 From: Luca Park Date: Tue, 24 Jan 2023 19:21:49 +0900 Subject: [PATCH 0775/1224] Modify text and add content to the translation file for translation. --- _locales/ko/messages.json | 5 +- options-page/skeleton-parts/appearance.js | 1387 +++++++++++---------- 2 files changed, 739 insertions(+), 653 deletions(-) diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index ef825fa9d..e5b8a210d 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -446,6 +446,9 @@ "hideAnnotations": { "message": "설명 숨기기" }, + "hideAvatars": { + "message": "사용자 사진 숨기기" + }, "hideCards": { "message": "카드 숨기기" }, @@ -1014,7 +1017,7 @@ "message": "탑 챗" }, "trackWatchedVideos": { - "message": "Track watched videos" + "message": "시청한 동영상 추적" }, "trailerAutoplay": { "message": "트레일러 자동재생" diff --git a/options-page/skeleton-parts/appearance.js b/options-page/skeleton-parts/appearance.js index bae6ba035..0c6d17694 100644 --- a/options-page/skeleton-parts/appearance.js +++ b/options-page/skeleton-parts/appearance.js @@ -10,698 +10,781 @@ --------------------------------------------------------------*/ extension.skeleton.main.layers.section.appearance = { - component: 'button', - variant: 'appearance', - category: true, - on: { - click: { - component: 'section', - variant: 'appearance' - } - }, - - icon: { - component: 'span', - - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'transparent', - 'stroke': 'currentColor', - 'stroke-linecap': 'round', - 'stroke-width': '1.75' - }, - - path: { - component: 'path', - attr: { - 'd': 'M17 3a2.83 2.83 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z' - } - } - } - }, - label: { - component: 'span', - text: 'appearance' - } + component: "button", + variant: "appearance", + category: true, + on: { + click: { + component: "section", + variant: "appearance", + }, + }, + + icon: { + component: "span", + + svg: { + component: "svg", + attr: { + viewBox: "0 0 24 24", + fill: "transparent", + stroke: "currentColor", + "stroke-linecap": "round", + "stroke-width": "1.75", + }, + + path: { + component: "path", + attr: { + d: "M17 3a2.83 2.83 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z", + }, + }, + }, + }, + label: { + component: "span", + text: "appearance", + }, }; - /*-------------------------------------------------------------- # HEADER --------------------------------------------------------------*/ extension.skeleton.main.layers.section.appearance.on.click.header = { - component: 'button', - variant: 'header', - text: 'header', - on: { - click: { - component: 'section', - variant: 'card', - - header_position: { - component: 'select', - text: 'position', - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'hidden', - value: 'hidden' - }, { - text: 'hover', - value: 'hover' - }, { - text: 'hiddenOnVideoPage', - value: 'hidden_on_video_page' - }, { - text: 'hoverOnVideoPage', - value: 'hover_on_video_page' - }, { - text: 'static', - value: 'static' - }], - tags: 'hide,hover,static,top' - }, - header_improve_logo: { - component: 'switch', - text: 'improveLogo', - tags: 'youtube' - }, - header_hide_right_buttons: { - component: 'switch', - text: 'hideRightButtons', - tags: 'user' - }, - header_hide_country_code: { - component: 'switch', - text: 'hideCountryCode', - tags: 'country,code' - }, - hide_voice_search_button: { - component: 'switch', - text: 'hideVoiceSearchButton' - } - } - } + component: "button", + variant: "header", + text: "header", + on: { + click: { + component: "section", + variant: "card", + + header_position: { + component: "select", + text: "position", + options: [ + { + text: "normal", + value: "normal", + }, + { + text: "hidden", + value: "hidden", + }, + { + text: "hover", + value: "hover", + }, + { + text: "hiddenOnVideoPage", + value: "hidden_on_video_page", + }, + { + text: "hoverOnVideoPage", + value: "hover_on_video_page", + }, + { + text: "static", + value: "static", + }, + ], + tags: "hide,hover,static,top", + }, + header_improve_logo: { + component: "switch", + text: "improveLogo", + tags: "youtube", + }, + header_hide_right_buttons: { + component: "switch", + text: "hideRightButtons", + tags: "user", + }, + header_hide_country_code: { + component: "switch", + text: "hideCountryCode", + tags: "country,code", + }, + hide_voice_search_button: { + component: "switch", + text: "hideVoiceSearchButton", + }, + }, + }, }; - /*-------------------------------------------------------------- # PLAYER --------------------------------------------------------------*/ extension.skeleton.main.layers.section.appearance.on.click.player = { - component: 'button', - variant: 'player', - text: 'player', - on: { - click: { - component: 'section', - variant: 'card', - - player_size: { - component: 'select', - variant: 'player-size', - text: 'playerSize', - options: [{ - text: 'doNotChange', - value: 'do_not_change' - }, { - text: 'fullWindow', - value: 'full_window' - }, { - text: 'fitToWindow', - value: 'fit_to_window' - }, { - text: '144p', - value: '144p' - }, { - text: '240p', - value: '240p' - }, { - text: '360p', - value: '360p' - }, { - text: '480p', - value: '480p' - }, { - text: '576p', - value: '576p' - }, { - text: '720p', - value: '720p' - }, { - text: '1080p', - value: '1080p' - }, { - text: '1440p', - value: '1440p' - }, { - text: '2160p', - value: '2160p' - }, { - text: 'custom', - value: 'custom' - }] - }, - customPlayerSizeSection: { - component: 'section', - variant: 'custom-player-size', - - custom_player_size_width: { - component: 'text-field', - placeholder: '1280', - storage: 'custom_player_size_width' - }, - x: { - component: 'span', - text: 'x' - }, - custom_player_size_height: { - component: 'text-field', - placeholder: '720', - storage: 'custom_player_size_height' - } - }, - hide_controls: { - component: 'select', - text: 'hidePlayerControlsBar', - options: [{ - text: 'off', - value: 'off', - default: 'true' - }, { - text: 'whenPaused', - value: 'when_paused' - }, { - text: 'always', - value: 'always' - }], - storage: 'player_hide_controls' - }, - player_hide_controls_options: { - component: 'button', - text: 'hidePlayerControlsBarButtons', - on: { - click: { - component: 'section', - variant: 'card', - - player_play_button: { - component: 'switch', - text: 'playPause' - }, - player_previous_button: { - component: 'switch', - text: 'previousVideo' - }, - player_next_button: { - component: 'switch', - text: 'nextVideo' - }, - player_volume_button: { - component: 'switch', - text: 'volume' - }, - player_autoplay_button: { - component: 'switch', - text: 'autoplay' - }, - player_settings_button: { - component: 'switch', - text: 'settings' - }, - player_subtitles_button: { - component: 'switch', - text: 'subtitles' - }, - player_miniplayer_button: { - component: 'switch', - text: 'nativeMiniPlayer' - }, - player_view_button: { - component: 'switch', - text: 'viewMode' - }, - player_screen_button: { - component: 'switch', - text: 'screen' - }, - player_remote_button: { - component: 'switch', - text: 'remote' - } - } - } - }, - forced_theater_mode: { - component: 'switch', - text: 'forcedTheaterMode', - tags: 'wide' - }, - hide_gradient_bottom: { - component: 'switch', - text: 'hideGradientBottom' - }, - player_hide_skip_overlay: { - component: 'switch', - text: 'hideSkipOverlay', - value: false, - tags: 'remove,hide' - }, - player_remaining_duration: { - component: 'switch', - text: 'showRemainingDuration', - id: 'show-remaining-duration', - value: false - }, - duration_with_speed: { - component: 'switch', - text: 'durationWithSpeed', - value: false - }, - always_show_progress_bar: { - component: 'switch', - text: 'alwaysShowProgressBar' - }, - player_color: { - component: 'select', - text: 'playerColor', - options: [{ - text: 'red', - value: 'red' - }, { - text: 'pink', - value: 'pink' - }, { - text: 'purple', - value: 'purple' - }, { - text: 'deepPurple', - value: 'deep_purple' - }, { - text: 'indigo', - value: 'indigo' - }, { - text: 'blue', - value: 'blue' - }, { - text: 'lightBlue', - value: 'light_blue' - }, { - text: 'cyan', - value: 'cyan' - }, { - text: 'teal', - value: 'teal' - }, { - text: 'green', - value: 'green' - }, { - text: 'lightGreen', - value: 'light_green' - }, { - text: 'lime', - value: 'lime' - }, { - text: 'yellow', - value: 'yellow' - }, { - text: 'amber', - value: 'amber' - }, { - text: 'orange', - value: 'orange' - }, { - text: 'deepOrange', - value: 'deep_orange' - }, { - text: 'brown', - value: 'brown' - }, { - text: 'blueGray', - value: 'blue_gray' - }, { - text: 'white', - value: 'white' - }], - tags: 'style' - }, - player_transparent_background: { - component: 'switch', - text: 'transparentBackground' - }, - player_hide_annotations: { - component: 'switch', - text: 'hideAnnotations', - tags: 'hide,remove,elements' - }, - player_hide_cards: { - component: 'switch', - text: 'hideCards', - tags: 'hide,remove,elements' - }, - player_show_cards_on_mouse_hover: { - component: 'switch', - text: 'showCardsOnMouseHover', - tags: 'hide,remove,elements' - }, - player_hide_endscreen: { - component: 'switch', - text: 'hideEndscreen' - }, - player_hd_thumbnail: { - component: 'switch', - text: 'hdThumbnail', - tags: 'preview' - }, - hide_scroll_for_details: { - component: 'switch', - text: 'hideScrollForDetails', - tags: 'remove,hide' - } - } - } + component: "button", + variant: "player", + text: "player", + on: { + click: { + component: "section", + variant: "card", + + player_size: { + component: "select", + variant: "player-size", + text: "playerSize", + options: [ + { + text: "doNotChange", + value: "do_not_change", + }, + { + text: "fullWindow", + value: "full_window", + }, + { + text: "fitToWindow", + value: "fit_to_window", + }, + { + text: "144p", + value: "144p", + }, + { + text: "240p", + value: "240p", + }, + { + text: "360p", + value: "360p", + }, + { + text: "480p", + value: "480p", + }, + { + text: "576p", + value: "576p", + }, + { + text: "720p", + value: "720p", + }, + { + text: "1080p", + value: "1080p", + }, + { + text: "1440p", + value: "1440p", + }, + { + text: "2160p", + value: "2160p", + }, + { + text: "custom", + value: "custom", + }, + ], + }, + customPlayerSizeSection: { + component: "section", + variant: "custom-player-size", + + custom_player_size_width: { + component: "text-field", + placeholder: "1280", + storage: "custom_player_size_width", + }, + x: { + component: "span", + text: "x", + }, + custom_player_size_height: { + component: "text-field", + placeholder: "720", + storage: "custom_player_size_height", + }, + }, + hide_controls: { + component: "select", + text: "hidePlayerControlsBar", + options: [ + { + text: "off", + value: "off", + default: "true", + }, + { + text: "whenPaused", + value: "when_paused", + }, + { + text: "always", + value: "always", + }, + ], + storage: "player_hide_controls", + }, + player_hide_controls_options: { + component: "button", + text: "hidePlayerControlsBarButtons", + on: { + click: { + component: "section", + variant: "card", + + player_play_button: { + component: "switch", + text: "playPause", + }, + player_previous_button: { + component: "switch", + text: "previousVideo", + }, + player_next_button: { + component: "switch", + text: "nextVideo", + }, + player_volume_button: { + component: "switch", + text: "volume", + }, + player_autoplay_button: { + component: "switch", + text: "autoplay", + }, + player_settings_button: { + component: "switch", + text: "settings", + }, + player_subtitles_button: { + component: "switch", + text: "subtitles", + }, + player_miniplayer_button: { + component: "switch", + text: "nativeMiniPlayer", + }, + player_view_button: { + component: "switch", + text: "viewMode", + }, + player_screen_button: { + component: "switch", + text: "screen", + }, + player_remote_button: { + component: "switch", + text: "remote", + }, + }, + }, + }, + forced_theater_mode: { + component: "switch", + text: "forcedTheaterMode", + tags: "wide", + }, + hide_gradient_bottom: { + component: "switch", + text: "hideGradientBottom", + }, + player_hide_skip_overlay: { + component: "switch", + text: "hideSkipOverlay", + value: false, + tags: "remove,hide", + }, + player_remaining_duration: { + component: "switch", + text: "showRemainingDuration", + id: "show-remaining-duration", + value: false, + }, + duration_with_speed: { + component: "switch", + text: "durationWithSpeed", + value: false, + }, + always_show_progress_bar: { + component: "switch", + text: "alwaysShowProgressBar", + }, + player_color: { + component: "select", + text: "playerColor", + options: [ + { + text: "red", + value: "red", + }, + { + text: "pink", + value: "pink", + }, + { + text: "purple", + value: "purple", + }, + { + text: "deepPurple", + value: "deep_purple", + }, + { + text: "indigo", + value: "indigo", + }, + { + text: "blue", + value: "blue", + }, + { + text: "lightBlue", + value: "light_blue", + }, + { + text: "cyan", + value: "cyan", + }, + { + text: "teal", + value: "teal", + }, + { + text: "green", + value: "green", + }, + { + text: "lightGreen", + value: "light_green", + }, + { + text: "lime", + value: "lime", + }, + { + text: "yellow", + value: "yellow", + }, + { + text: "amber", + value: "amber", + }, + { + text: "orange", + value: "orange", + }, + { + text: "deepOrange", + value: "deep_orange", + }, + { + text: "brown", + value: "brown", + }, + { + text: "blueGray", + value: "blue_gray", + }, + { + text: "white", + value: "white", + }, + ], + tags: "style", + }, + player_transparent_background: { + component: "switch", + text: "transparentBackground", + }, + player_hide_annotations: { + component: "switch", + text: "hideAnnotations", + tags: "hide,remove,elements", + }, + player_hide_cards: { + component: "switch", + text: "hideCards", + tags: "hide,remove,elements", + }, + player_show_cards_on_mouse_hover: { + component: "switch", + text: "showCardsOnMouseHover", + tags: "hide,remove,elements", + }, + player_hide_endscreen: { + component: "switch", + text: "hideEndscreen", + }, + player_hd_thumbnail: { + component: "switch", + text: "hdThumbnail", + tags: "preview", + }, + hide_scroll_for_details: { + component: "switch", + text: "hideScrollForDetails", + tags: "remove,hide", + }, + }, + }, }; - /*-------------------------------------------------------------- # DETAIL --------------------------------------------------------------*/ extension.skeleton.main.layers.section.appearance.on.click.details = { - component: 'button', - variant: 'details', - text: 'details', - on: { - click: { - component: 'section', - variant: 'card', - - hide_details: { - component: 'switch', - text: 'hideDetails', - tags: 'hide,remove' - }, - hide_views_count: { - component: 'switch', - text: 'hideViewsCount', - tags: 'hide,remove' - }, - hide_date: { - component: 'switch', - text: 'hideDate', - tags: 'hide,remove' - }, - hide_details_button: { - component: 'button', - text: 'hideDetailButton', - on: { - click: { - component: 'section', - variant: 'card', - likes: { - component: 'select', - text: 'like', - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'iconsOnly', - value: 'icons_only' - }, { - text: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - hide_dislike_button: { - component: 'select', - text: 'dislike', - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'iconsOnly', - value: 'icons_only' - }, { - text: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - hide_share_button: { - component: 'select', - text: 'share', - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'iconsOnly', - value: 'icons_only' - }, { - text: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - hide_download_button: { - component: 'select', - text: 'download', - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'iconsOnly', - value: 'icons_only' - }, { - text: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - hide_thanks_button: { - component: 'select', - text: 'thanks', - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'iconsOnly', - value: 'icons_only' - }, { - text: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - hide_clip_button: { - component: 'select', - text: 'clip', - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'iconsOnly', - value: 'icons_only' - }, { - text: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - hide_save_button: { - component: 'select', - text: 'save', - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'iconsOnly', - value: 'icons_only' - }, { - text: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - hide_report_button: { - component: 'switch', - text: 'report', - tags: 'hide,remove' - }, - hide_more_button: { - component: 'switch', - text: 'more', - tags: 'hide,remove' - } - } - } - }, - description: { - component: 'select', - text: 'description', - - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'expanded', - value: 'expanded' - }, { - text: 'hidden', - value: 'hidden' - }], - tags: 'hide,remove' - }, - how_long_ago_the_video_was_uploaded: { - component: 'switch', - text: 'howLongAgoTheVideoWasUploaded' - }, - channel_videos_count: { - component: 'switch', - text: 'showChannelVideosCount' - }, - red_dislike_button: { - component: 'switch', - text: 'redDislikeButton' - }, - day_of_week: { - component: 'switch', - text: 'displayDayOfTheWeak' - } - } - } + component: "button", + variant: "details", + text: "details", + on: { + click: { + component: "section", + variant: "card", + + hide_details: { + component: "switch", + text: "hideDetails", + tags: "hide,remove", + }, + hide_views_count: { + component: "switch", + text: "hideViewsCount", + tags: "hide,remove", + }, + hide_date: { + component: "switch", + text: "hideDate", + tags: "hide,remove", + }, + hide_details_button: { + component: "button", + text: "hideDetailButton", + on: { + click: { + component: "section", + variant: "card", + likes: { + component: "select", + text: "like", + options: [ + { + text: "normal", + value: "normal", + }, + { + text: "iconsOnly", + value: "icons_only", + }, + { + text: "hidden", + value: "hidden", + }, + ], + tags: "hide,remove", + }, + hide_dislike_button: { + component: "select", + text: "dislike", + options: [ + { + text: "normal", + value: "normal", + }, + { + text: "iconsOnly", + value: "icons_only", + }, + { + text: "hidden", + value: "hidden", + }, + ], + tags: "hide,remove", + }, + hide_share_button: { + component: "select", + text: "share", + options: [ + { + text: "normal", + value: "normal", + }, + { + text: "iconsOnly", + value: "icons_only", + }, + { + text: "hidden", + value: "hidden", + }, + ], + tags: "hide,remove", + }, + hide_download_button: { + component: "select", + text: "download", + options: [ + { + text: "normal", + value: "normal", + }, + { + text: "iconsOnly", + value: "icons_only", + }, + { + text: "hidden", + value: "hidden", + }, + ], + tags: "hide,remove", + }, + hide_thanks_button: { + component: "select", + text: "thanks", + options: [ + { + text: "normal", + value: "normal", + }, + { + text: "iconsOnly", + value: "icons_only", + }, + { + text: "hidden", + value: "hidden", + }, + ], + tags: "hide,remove", + }, + hide_clip_button: { + component: "select", + text: "clip", + options: [ + { + text: "normal", + value: "normal", + }, + { + text: "iconsOnly", + value: "icons_only", + }, + { + text: "hidden", + value: "hidden", + }, + ], + tags: "hide,remove", + }, + hide_save_button: { + component: "select", + text: "save", + options: [ + { + text: "normal", + value: "normal", + }, + { + text: "iconsOnly", + value: "icons_only", + }, + { + text: "hidden", + value: "hidden", + }, + ], + tags: "hide,remove", + }, + hide_report_button: { + component: "switch", + text: "report", + tags: "hide,remove", + }, + hide_more_button: { + component: "switch", + text: "more", + tags: "hide,remove", + }, + }, + }, + }, + description: { + component: "select", + text: "description", + + options: [ + { + text: "normal", + value: "normal", + }, + { + text: "expanded", + value: "expanded", + }, + { + text: "hidden", + value: "hidden", + }, + ], + tags: "hide,remove", + }, + how_long_ago_the_video_was_uploaded: { + component: "switch", + text: "howLongAgoTheVideoWasUploaded", + }, + channel_videos_count: { + component: "switch", + text: "showChannelVideosCount", + }, + red_dislike_button: { + component: "switch", + text: "redDislikeButton", + }, + day_of_week: { + component: "switch", + text: "displayDayOfTheWeak", + }, + }, + }, }; - /*-------------------------------------------------------------- # COMMENTS --------------------------------------------------------------*/ extension.skeleton.main.layers.section.appearance.on.click.comments = { - component: 'button', - variant: 'comments', - text: 'comments', - on: { - click: { - component: 'section', - variant: 'card', - - comments: { - component: 'select', - text: 'comments', - - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'collapsed', - value: 'collapsed' - }, { - text: 'hidden', - value: 'hidden' - }] - }, - hide_author_avatars: { - component: 'switch', - text: 'Hide Avatars' - }, - hide_comments_count: { - component: 'switch', - text: 'hideCommentsCount', - tags: 'hide,remove' - } - } - } + component: "button", + variant: "comments", + text: "comments", + on: { + click: { + component: "section", + variant: "card", + + comments: { + component: "select", + text: "comments", + + options: [ + { + text: "normal", + value: "normal", + }, + { + text: "collapsed", + value: "collapsed", + }, + { + text: "hidden", + value: "hidden", + }, + ], + }, + hide_author_avatars: { + component: "switch", + text: "hideAvatars", + }, + hide_comments_count: { + component: "switch", + text: "hideCommentsCount", + tags: "hide,remove", + }, + }, + }, }; - /*-------------------------------------------------------------- # FOOTER --------------------------------------------------------------*/ extension.skeleton.main.layers.section.appearance.on.click.footer = { - component: 'button', - variant: 'footer', - text: 'footer', - on: { - click: { - component: 'section', - variant: 'card', - - hide_footer: { - component: 'switch', - text: 'hideFooter', - tags: 'bottom' - } - } - } + component: "button", + variant: "footer", + text: "footer", + on: { + click: { + component: "section", + variant: "card", + + hide_footer: { + component: "switch", + text: "hideFooter", + tags: "bottom", + }, + }, + }, }; - /*-------------------------------------------------------------- # SIDEBAR --------------------------------------------------------------*/ extension.skeleton.main.layers.section.appearance.on.click.sidebar = { - component: 'button', - variant: 'sidebar', - text: 'sidebar', - on: { - click: { - component: 'section', - variant: 'card', - - related_videos: { - component: 'select', - text: 'relatedVideos', - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'collapsed', - value: 'collapsed' - }, { - text: 'hidden', - value: 'hidden' - }], - tags: 'right' - }, - livechat: { - component: 'select', - text: 'liveChat', - - options: [{ - text: 'normal', - value: 'normal' - }, { - text: 'collapsed', - value: 'collapsed' - }, { - text: 'hidden', - value: 'hidden' - }] - }, - hide_playlist: { - component: 'switch', - text: 'hidePlaylist' - }, - sidebar_left: { - component: 'switch', - text: 'moveSidebarLeft' - }, - thumbnails_right: { - component: 'switch', - text: 'moveThumbnailsRight' - }, - thumbnails_hide: { - component: 'switch', - text: 'hideThumbnails' - } - } - } + component: "button", + variant: "sidebar", + text: "sidebar", + on: { + click: { + component: "section", + variant: "card", + + related_videos: { + component: "select", + text: "relatedVideos", + options: [ + { + text: "normal", + value: "normal", + }, + { + text: "collapsed", + value: "collapsed", + }, + { + text: "hidden", + value: "hidden", + }, + ], + tags: "right", + }, + livechat: { + component: "select", + text: "liveChat", + + options: [ + { + text: "normal", + value: "normal", + }, + { + text: "collapsed", + value: "collapsed", + }, + { + text: "hidden", + value: "hidden", + }, + ], + }, + hide_playlist: { + component: "switch", + text: "hidePlaylist", + }, + sidebar_left: { + component: "switch", + text: "moveSidebarLeft", + }, + thumbnails_right: { + component: "switch", + text: "moveThumbnailsRight", + }, + thumbnails_hide: { + component: "switch", + text: "hideThumbnails", + }, + }, + }, }; From dfa54a22db2f8dbd9c7400107f77563d2821d92b Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 30 Jan 2023 03:44:02 +0100 Subject: [PATCH 0776/1224] Update README.md --- .github/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/README.md b/.github/README.md index d4fdc3a02..b63dc12ab 100644 --- a/.github/README.md +++ b/.github/README.md @@ -49,8 +49,8 @@ For more info on how to contribute please see the Date: Sat, 11 Feb 2023 20:37:13 +0200 Subject: [PATCH 0779/1224] fixed issue #1516 --- background.js | 354 +++++++++-------- content-scripts/extension-context/init.js | 442 ++++++++++++---------- 2 files changed, 421 insertions(+), 375 deletions(-) diff --git a/background.js b/background.js index 0ce1c4d4e..0b9c0cadf 100644 --- a/background.js +++ b/background.js @@ -12,212 +12,230 @@ # LOCALE --------------------------------------------------------------*/ - function getLocale(language, callback) { - language = language.replace('-', '_'); - - fetch('_locales/' + language + '/messages.json').then(function (response) { - if (response.ok) { - response.json().then(callback); - } else { - getLocale('en', callback); - } - }).catch(function () { - getLocale('en', callback); - }); + language = language.replace("-", "_"); + + fetch("_locales/" + language + "/messages.json") + .then(function (response) { + if (response.ok) { + response.json().then(callback); + } else { + getLocale("en", callback); + } + }) + .catch(function () { + getLocale("en", callback); + }); } - /*-------------------------------------------------------------- # CONTEXT MENU --------------------------------------------------------------*/ function updateContextMenu(language) { - if (!language) { - language = chrome.i18n.getUILanguage(); - } - - getLocale(language, function (response) { - var items = [ - 'donate', - 'rateMe', - 'GitHub' - ]; - - chrome.contextMenus.removeAll(); - - for (var i = 0; i < 3; i++) { - var item = items[i], - text = response[item]; - - if (text) { - text = text.message; - } else { - text = item; - } - - chrome.contextMenus.create({ - id: String(i), - title: text, - contexts: ['action'] - }); - } - - chrome.contextMenus.onClicked.addListener(function (info) { - var links = [ - 'https://www.improvedtube.com/donate', - 'https://chrome.google.com/webstore/detail/improve-youtube-video-you/bnomihfieiccainjcjblhegjgglakjdd', - 'https://github.com/code4charity/YouTube-Extension' - ]; - - window.open(links[info.menuItemId]); - }); - }); + if (!language) { + language = chrome.i18n.getUILanguage(); + } + + getLocale(language, function (response) { + var items = ["donate", "rateMe", "GitHub"]; + + chrome.contextMenus.removeAll(); + + for (var i = 0; i < 3; i++) { + var item = items[i], + text = response[item]; + + if (text) { + text = text.message; + } else { + text = item; + } + + chrome.contextMenus.create({ + id: String(i), + title: text, + contexts: ["action"], + }); + } + + chrome.contextMenus.onClicked.addListener(function (info) { + var links = [ + "https://www.improvedtube.com/donate", + "https://chrome.google.com/webstore/detail/improve-youtube-video-you/bnomihfieiccainjcjblhegjgglakjdd", + "https://github.com/code4charity/YouTube-Extension", + ]; + + window.open(links[info.menuItemId]); + }); + }); } chrome.runtime.onInstalled.addListener(function (details) { - chrome.storage.local.get(function (items) { - var language = items.language; + chrome.storage.local.get(function (items) { + var language = items.language; - updateContextMenu(language); - }); + updateContextMenu(language); + }); }); chrome.storage.onChanged.addListener(function (changes) { - for (var key in changes) { - if (key === 'language') { - updateContextMenu(changes[key].newValue); - } - } + for (var key in changes) { + if (key === "language") { + updateContextMenu(changes[key].newValue); + } + } }); - /*-------------------------------------------------------------- # TAB FOCUS/BLUR --------------------------------------------------------------*/ chrome.tabs.onActivated.addListener(function (activeInfo) { - chrome.tabs.sendMessage(activeInfo.tabId, { - action: 'focus' - }); - - chrome.tabs.query({ - windowId: activeInfo.windowId - }, function (tabs) { - if (tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].id !== activeInfo.tabId) { - chrome.tabs.sendMessage(tabs[i].id, { - action: 'blur' - }); - } - } - } - }); + chrome.tabs.sendMessage(activeInfo.tabId, { + action: "focus", + }); + + chrome.tabs.query( + { + windowId: activeInfo.windowId, + }, + function (tabs) { + if (tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].id !== activeInfo.tabId) { + chrome.tabs.sendMessage(tabs[i].id, { + action: "blur", + }); + } + } + } + } + ); }); chrome.windows.onFocusChanged.addListener(function (windowId) { - chrome.windows.getAll(function (windows) { - for (var i = 0, l = windows.length; i < l; i++) { - if (windows[i].focused === true) { - chrome.tabs.query({ - windowId: windows[i].id - }, function (tabs) { - if (tabs) { - for (var j = 0, k = tabs.length; j < k; j++) { - var tab = tabs[j]; - - if (tab.active) { - chrome.tabs.sendMessage(tab.id, { - action: 'focus' - }); - } - } - } - }); - } else { - chrome.tabs.query({ - windowId: windows[i].id - }, function (tabs) { - if (tabs) { - for (var j = 0, k = tabs.length; j < k; j++) { - var tab = tabs[j]; - - chrome.tabs.sendMessage(tab.id, { - action: 'blur' - }); - } - } - }); - } - } - }); + chrome.windows.getAll(function (windows) { + for (var i = 0, l = windows.length; i < l; i++) { + if (windows[i].focused === true) { + chrome.tabs.query( + { + windowId: windows[i].id, + }, + function (tabs) { + if (tabs) { + for (var j = 0, k = tabs.length; j < k; j++) { + var tab = tabs[j]; + + if (tab.active) { + chrome.tabs.sendMessage(tab.id, { + action: "focus", + }); + } + } + } + } + ); + } else { + chrome.tabs.query( + { + windowId: windows[i].id, + }, + function (tabs) { + if (tabs) { + for (var j = 0, k = tabs.length; j < k; j++) { + var tab = tabs[j]; + + chrome.tabs.sendMessage(tab.id, { + action: "blur", + }); + } + } + } + ); + } + } + }); }); - /*-------------------------------------------------------------- # MESSAGE LISTENER --------------------------------------------------------------*/ chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { - var name = request.name; - - if (name === 'download') { - chrome.permissions.request({ - permissions: ['downloads'], - origins: ['https://www.youtube.com/*'] - }, function (granted) { - if (granted) { - try { - var blob = new Blob([JSON.stringify(request.value)], { - type: 'application/json;charset=utf-8' - }); - - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: request.filename, - saveAs: true - }); - } catch (error) { - console.error(error); - } - } else { - console.error('Permission is not granted.'); - } - }); - } + var name = request.name; + + if (name === "download") { + chrome.permissions.request( + { + permissions: ["downloads"], + origins: ["https://www.youtube.com/*"], + }, + function (granted) { + if (granted) { + try { + var blob = new Blob([JSON.stringify(request.value)], { + type: "application/json;charset=utf-8", + }); + + chrome.downloads.download({ + url: URL.createObjectURL(blob), + filename: request.filename, + saveAs: true, + }); + } catch (error) { + console.error(error); + } + } else { + console.error("Permission is not granted."); + } + } + ); + } }); +let prevTabsLength = 0; + chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) { - var action = message.action || message; - - if (action === 'play') { - chrome.tabs.query({}, function (tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - var tab = tabs[i]; - - if (sender.tab.id !== tab.id) { - chrome.tabs.sendMessage(tab.id, { - action: 'another-video-started-playing' - }); - } - } - }); - } else if (action === 'options-page-connected') { - sendResponse({ - isTab: sender.hasOwnProperty('tab') - }); - } else if (action === 'tab-connected') { - sendResponse({ - hostname: new URL(sender.url).hostname, - tabId: sender.tab.id - }); - } + var action = message.action || message; + + if (action === "play") { + chrome.tabs.query({}, function (tabs) { + if (tabs.length > prevTabsLength) { + prevTabsLength = tabs.length; + for (var i = 0, l = tabs.length; i < l; i++) { + var tab = tabs[i]; + chrome.tabs.sendMessage(tab.id, { + action: "new-tab-opened", + }); + } + } else { + prevTabsLength = tabs.length; + } + for (var i = 0, l = tabs.length; i < l; i++) { + var tab = tabs[i]; + + if (sender.tab.id !== tab.id) { + chrome.tabs.sendMessage(tab.id, { + action: "another-video-started-playing", + }); + } + } + }); + } else if (action === "options-page-connected") { + sendResponse({ + isTab: sender.hasOwnProperty("tab"), + }); + } else if (action === "tab-connected") { + sendResponse({ + hostname: new URL(sender.url).hostname, + tabId: sender.tab.id, + }); + } }); - /*-------------------------------------------------------------- # UNINSTALL URL --------------------------------------------------------------*/ -chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); +chrome.runtime.setUninstallURL("https://improvedtube.com/uninstalled"); diff --git a/content-scripts/extension-context/init.js b/content-scripts/extension-context/init.js index b5e2f21e6..47b51ee4a 100644 --- a/content-scripts/extension-context/init.js +++ b/content-scripts/extension-context/init.js @@ -2,232 +2,260 @@ >>> INITIALIZATION --------------------------------------------------------------*/ -extension.features.youtubeHomePage('init'); +extension.features.youtubeHomePage("init"); -document.documentElement.setAttribute('it-pathname', location.pathname); +document.documentElement.setAttribute("it-pathname", location.pathname); -window.addEventListener('yt-navigate-finish', function () { - document.documentElement.setAttribute('it-pathname', location.pathname); +window.addEventListener("yt-navigate-finish", function () { + document.documentElement.setAttribute("it-pathname", location.pathname); - extension.features.trackWatchedVideos(); - extension.features.thumbnailsQuality(); + extension.features.trackWatchedVideos(); + extension.features.thumbnailsQuality(); }); extension.messages.create(); extension.messages.listener(); -extension.events.on('init', function (resolve) { - extension.storage.listener(); - extension.storage.load(function () { - resolve(); - }); -}, { - async: true -}); +extension.events.on( + "init", + function (resolve) { + extension.storage.listener(); + extension.storage.load(function () { + resolve(); + }); + }, + { + async: true, + } +); function bodyReady() { - if (extension.ready && extension.domReady) { - extension.features.addScrollToTop(); - extension.features.font(); - extension.features.showHeaderOnSearch(); - } + if (extension.ready && extension.domReady) { + extension.features.addScrollToTop(); + extension.features.font(); + extension.features.showHeaderOnSearch(); + } } -extension.events.on('init', function () { - extension.features.bluelight(); - extension.features.dim(); - extension.features.youtubeHomePage(); - extension.features.collapseOfSubscriptionSections(); - extension.features.confirmationBeforeClosing(); - extension.features.defaultContentCountry(); - extension.features.popupWindowButtons(); - extension.features.markWatchedVideos(); - extension.features.relatedVideos(); - extension.features.comments(); - - bodyReady(); -}); - -chrome.runtime.sendMessage({ - action: 'tab-connected' -}, function (response) { - if (response) { - extension.tabId = response.tabId; - } +extension.events.on("init", function () { + extension.features.bluelight(); + extension.features.dim(); + extension.features.youtubeHomePage(); + extension.features.collapseOfSubscriptionSections(); + extension.features.confirmationBeforeClosing(); + extension.features.defaultContentCountry(); + extension.features.popupWindowButtons(); + extension.features.markWatchedVideos(); + extension.features.relatedVideos(); + extension.features.comments(); + + bodyReady(); }); -extension.inject([ - '/content-scripts/website-context/core.js', - '/content-scripts/website-context/functions.js', - '/content-scripts/website-context/youtube-features/appearance.js', - '/content-scripts/website-context/youtube-features/themes.js', - '/content-scripts/website-context/youtube-features/player.js', - '/content-scripts/website-context/youtube-features/playlist.js', - '/content-scripts/website-context/youtube-features/channel.js', - '/content-scripts/website-context/youtube-features/shortcuts.js', - '/content-scripts/website-context/youtube-features/blacklist.js', - '/content-scripts/website-context/youtube-features/settings.js', - '/content-scripts/website-context/init.js', - '/content-scripts/website-context/mutations.js' -], function () { - extension.ready = true; - - extension.events.trigger('init'); -}); - -document.addEventListener('DOMContentLoaded', function () { - extension.domReady = true; - - bodyReady(); +chrome.runtime.sendMessage( + { + action: "tab-connected", + }, + function (response) { + if (response) { + extension.tabId = response.tabId; + } + } +); + +extension.inject( + [ + "/content-scripts/website-context/core.js", + "/content-scripts/website-context/functions.js", + "/content-scripts/website-context/youtube-features/appearance.js", + "/content-scripts/website-context/youtube-features/themes.js", + "/content-scripts/website-context/youtube-features/player.js", + "/content-scripts/website-context/youtube-features/playlist.js", + "/content-scripts/website-context/youtube-features/channel.js", + "/content-scripts/website-context/youtube-features/shortcuts.js", + "/content-scripts/website-context/youtube-features/blacklist.js", + "/content-scripts/website-context/youtube-features/settings.js", + "/content-scripts/website-context/init.js", + "/content-scripts/website-context/mutations.js", + ], + function () { + extension.ready = true; + + extension.events.trigger("init"); + } +); + +document.addEventListener("DOMContentLoaded", function () { + extension.domReady = true; + + bodyReady(); }); +let prevRequestAction = ""; chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { - if (request.action === 'focus') { - extension.messages.send({ - focus: true - }); - } else if (request.action === 'blur') { - extension.messages.send({ - blur: true - }); - } else if (request.action === 'pause') { - extension.messages.send({ - pause: true - }); - } else if (request.action === 'set-volume') { - extension.messages.send({ - setVolume: request.value - }); - } else if (request.action === 'set-playback-speed') { - extension.messages.send({ - setPlaybackSpeed: request.value - }); - } else if (request.action === 'mixer') { - extension.messages.send({ - mixer: true - }, sendResponse, 'mixer'); - - return true; - } else if (request.action === 'delete-youtube-cookies') { - extension.messages.send({ - deleteCookies: true - }); - } else if (request.action === 'another-video-started-playing') { - extension.features.onlyOnePlayerInstancePlaying(); - } + if (request.action === "focus") { + extension.messages.send({ + focus: true, + }); + } else if (request.action === "blur") { + extension.messages.send({ + blur: true, + }); + } else if (request.action === "pause") { + extension.messages.send({ + pause: true, + }); + } else if (request.action === "set-volume") { + extension.messages.send({ + setVolume: request.value, + }); + } else if (request.action === "set-playback-speed") { + extension.messages.send({ + setPlaybackSpeed: request.value, + }); + } else if (request.action === "mixer") { + extension.messages.send( + { + mixer: true, + }, + sendResponse, + "mixer" + ); + + return true; + } else if (request.action === "delete-youtube-cookies") { + extension.messages.send({ + deleteCookies: true, + }); + } else if ( + request.action === "another-video-started-playing" && + prevRequestAction === "new-tab-opened" + ) { + console.log("Continue playing"); + } else if (request.action === "another-video-started-playing") { + extension.features.onlyOnePlayerInstancePlaying(); + } + + prevRequestAction = request.action; }); -document.addEventListener('it-message-from-youtube', function () { - var provider = document.querySelector('#it-messages-from-youtube'); - - if (provider) { - var message = provider.textContent; - - document.dispatchEvent(new CustomEvent('it-message-from-youtube--readed')); - - try { - message = JSON.parse(message); - } catch (error) { - console.log(error); - } - - //console.log(message); - - if (message.requestOptionsUrl === true) { - extension.messages.send({ - responseOptionsUrl: chrome.runtime.getURL('options-page/index.html') - }); - } else if (message.onlyOnePlayer === true) { - chrome.runtime.sendMessage({ - name: 'only-one-player' - }); - } else if (message.action === 'analyzer') { - if (extension.storage.data.analyzer_activation === true) { - var data = message.name, - date = new Date().toDateString(), - hours = new Date().getHours() + ':00'; - - if (!extension.storage.data.analyzer) { - extension.storage.data.analyzer = {}; - } - - if (!extension.storage.data.analyzer[date]) { - extension.storage.data.analyzer[date] = {}; - } - - if (!extension.storage.data.analyzer[date][hours]) { - extension.storage.data.analyzer[date][hours] = {}; - } - - if (!extension.storage.data.analyzer[date][hours][data]) { - extension.storage.data.analyzer[date][hours][data] = 0; - } - - extension.storage.data.analyzer[date][hours][data]++; - - chrome.storage.local.set({ - analyzer: extension.storage.data.analyzer - }); - } - } else if (message.action === 'blacklist') { - var type = message.type, - id = message.id, - title = message.title; - - if (!extension.storage.data.blacklist || typeof extension.storage.data.blacklist !== 'object') { - extension.storage.data.blacklist = {}; - } - - if (type === 'channel') { - if (!extension.storage.data.blacklist.channels) { - extension.storage.data.blacklist.channels = {}; - } - - extension.storage.data.blacklist.channels[id] = { - title: title, - preview: message.preview - }; - } - - if (type === 'video') { - if (!extension.storage.data.blacklist.videos) { - extension.storage.data.blacklist.videos = {}; - } - - extension.storage.data.blacklist.videos[id] = { - title: title - }; - } - - chrome.storage.local.set({ - blacklist: extension.storage.data.blacklist - }); - } else if (message.action === 'watched') { - if (!extension.storage.data.watched || typeof extension.storage.data.watched !== 'object') { - extension.storage.data.watched = {}; - } - - if (message.type === 'add') { - extension.storage.data.watched[message.id] = { - title: message.title - }; - } - - if (message.type === 'remove') { - delete extension.storage.data.watched[message.id]; - } - - chrome.storage.local.set({ - watched: extension.storage.data.watched - }); - } - } +document.addEventListener("it-message-from-youtube", function () { + var provider = document.querySelector("#it-messages-from-youtube"); + + if (provider) { + var message = provider.textContent; + + document.dispatchEvent(new CustomEvent("it-message-from-youtube--readed")); + + try { + message = JSON.parse(message); + } catch (error) { + console.log(error); + } + + //console.log(message); + + if (message.requestOptionsUrl === true) { + extension.messages.send({ + responseOptionsUrl: chrome.runtime.getURL("options-page/index.html"), + }); + } else if (message.onlyOnePlayer === true) { + chrome.runtime.sendMessage({ + name: "only-one-player", + }); + } else if (message.action === "analyzer") { + if (extension.storage.data.analyzer_activation === true) { + var data = message.name, + date = new Date().toDateString(), + hours = new Date().getHours() + ":00"; + + if (!extension.storage.data.analyzer) { + extension.storage.data.analyzer = {}; + } + + if (!extension.storage.data.analyzer[date]) { + extension.storage.data.analyzer[date] = {}; + } + + if (!extension.storage.data.analyzer[date][hours]) { + extension.storage.data.analyzer[date][hours] = {}; + } + + if (!extension.storage.data.analyzer[date][hours][data]) { + extension.storage.data.analyzer[date][hours][data] = 0; + } + + extension.storage.data.analyzer[date][hours][data]++; + + chrome.storage.local.set({ + analyzer: extension.storage.data.analyzer, + }); + } + } else if (message.action === "blacklist") { + var type = message.type, + id = message.id, + title = message.title; + + if ( + !extension.storage.data.blacklist || + typeof extension.storage.data.blacklist !== "object" + ) { + extension.storage.data.blacklist = {}; + } + + if (type === "channel") { + if (!extension.storage.data.blacklist.channels) { + extension.storage.data.blacklist.channels = {}; + } + + extension.storage.data.blacklist.channels[id] = { + title: title, + preview: message.preview, + }; + } + + if (type === "video") { + if (!extension.storage.data.blacklist.videos) { + extension.storage.data.blacklist.videos = {}; + } + + extension.storage.data.blacklist.videos[id] = { + title: title, + }; + } + + chrome.storage.local.set({ + blacklist: extension.storage.data.blacklist, + }); + } else if (message.action === "watched") { + if ( + !extension.storage.data.watched || + typeof extension.storage.data.watched !== "object" + ) { + extension.storage.data.watched = {}; + } + + if (message.type === "add") { + extension.storage.data.watched[message.id] = { + title: message.title, + }; + } + + if (message.type === "remove") { + delete extension.storage.data.watched[message.id]; + } + + chrome.storage.local.set({ + watched: extension.storage.data.watched, + }); + } + } }); -document.addEventListener('it-play', function (event) { - var videos = document.querySelectorAll('video'); +document.addEventListener("it-play", function (event) { + var videos = document.querySelectorAll("video"); - chrome.runtime.sendMessage({ - action: 'play' - }); -}); \ No newline at end of file + chrome.runtime.sendMessage({ + action: "play", + }); +}); From ece05fbfbbddce52dbdfd66fc91303fea0a28f9b Mon Sep 17 00:00:00 2001 From: Mohamed Lebda Date: Sun, 12 Feb 2023 03:58:06 +0200 Subject: [PATCH 0780/1224] fixed issue #1516 --- background.js | 313 ++++++++------- content-scripts/extension-context/init.js | 447 +++++++++++----------- 2 files changed, 367 insertions(+), 393 deletions(-) diff --git a/background.js b/background.js index 0b9c0cadf..140e143a9 100644 --- a/background.js +++ b/background.js @@ -12,186 +12,180 @@ # LOCALE --------------------------------------------------------------*/ -function getLocale(language, callback) { - language = language.replace("-", "_"); - fetch("_locales/" + language + "/messages.json") - .then(function (response) { - if (response.ok) { - response.json().then(callback); - } else { - getLocale("en", callback); - } - }) - .catch(function () { - getLocale("en", callback); - }); +function getLocale(language, callback) { + language = language.replace('-', '_'); + + fetch('_locales/' + language + '/messages.json').then(function (response) { + if (response.ok) { + response.json().then(callback); + } else { + getLocale('en', callback); + } + }).catch(function () { + getLocale('en', callback); + }); } + /*-------------------------------------------------------------- # CONTEXT MENU --------------------------------------------------------------*/ function updateContextMenu(language) { - if (!language) { - language = chrome.i18n.getUILanguage(); - } - - getLocale(language, function (response) { - var items = ["donate", "rateMe", "GitHub"]; - - chrome.contextMenus.removeAll(); - - for (var i = 0; i < 3; i++) { - var item = items[i], - text = response[item]; - - if (text) { - text = text.message; - } else { - text = item; - } - - chrome.contextMenus.create({ - id: String(i), - title: text, - contexts: ["action"], - }); - } - - chrome.contextMenus.onClicked.addListener(function (info) { - var links = [ - "https://www.improvedtube.com/donate", - "https://chrome.google.com/webstore/detail/improve-youtube-video-you/bnomihfieiccainjcjblhegjgglakjdd", - "https://github.com/code4charity/YouTube-Extension", - ]; - - window.open(links[info.menuItemId]); - }); - }); + if (!language) { + language = chrome.i18n.getUILanguage(); + } + + getLocale(language, function (response) { + var items = [ + 'donate', + 'rateMe', + 'GitHub' + ]; + + chrome.contextMenus.removeAll(); + + for (var i = 0; i < 3; i++) { + var item = items[i], + text = response[item]; + + if (text) { + text = text.message; + } else { + text = item; + } + + chrome.contextMenus.create({ + id: String(i), + title: text, + contexts: ['action'] + }); + } + + chrome.contextMenus.onClicked.addListener(function (info) { + var links = [ + 'https://www.improvedtube.com/donate', + 'https://chrome.google.com/webstore/detail/improve-youtube-video-you/bnomihfieiccainjcjblhegjgglakjdd', + 'https://github.com/code4charity/YouTube-Extension' + ]; + + window.open(links[info.menuItemId]); + }); + }); } chrome.runtime.onInstalled.addListener(function (details) { - chrome.storage.local.get(function (items) { - var language = items.language; + chrome.storage.local.get(function (items) { + var language = items.language; - updateContextMenu(language); - }); + updateContextMenu(language); + }); }); chrome.storage.onChanged.addListener(function (changes) { - for (var key in changes) { - if (key === "language") { - updateContextMenu(changes[key].newValue); - } - } + for (var key in changes) { + if (key === 'language') { + updateContextMenu(changes[key].newValue); + } + } }); + /*-------------------------------------------------------------- # TAB FOCUS/BLUR --------------------------------------------------------------*/ chrome.tabs.onActivated.addListener(function (activeInfo) { - chrome.tabs.sendMessage(activeInfo.tabId, { - action: "focus", - }); - - chrome.tabs.query( - { - windowId: activeInfo.windowId, - }, - function (tabs) { - if (tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].id !== activeInfo.tabId) { - chrome.tabs.sendMessage(tabs[i].id, { - action: "blur", - }); - } - } - } - } - ); + chrome.tabs.sendMessage(activeInfo.tabId, { + action: 'focus' + }); + + chrome.tabs.query({ + windowId: activeInfo.windowId + }, function (tabs) { + if (tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].id !== activeInfo.tabId) { + chrome.tabs.sendMessage(tabs[i].id, { + action: 'blur' + }); + } + } + } + }); }); chrome.windows.onFocusChanged.addListener(function (windowId) { - chrome.windows.getAll(function (windows) { - for (var i = 0, l = windows.length; i < l; i++) { - if (windows[i].focused === true) { - chrome.tabs.query( - { - windowId: windows[i].id, - }, - function (tabs) { - if (tabs) { - for (var j = 0, k = tabs.length; j < k; j++) { - var tab = tabs[j]; - - if (tab.active) { - chrome.tabs.sendMessage(tab.id, { - action: "focus", - }); - } - } - } - } - ); - } else { - chrome.tabs.query( - { - windowId: windows[i].id, - }, - function (tabs) { - if (tabs) { - for (var j = 0, k = tabs.length; j < k; j++) { - var tab = tabs[j]; - - chrome.tabs.sendMessage(tab.id, { - action: "blur", - }); - } - } - } - ); - } - } - }); + chrome.windows.getAll(function (windows) { + for (var i = 0, l = windows.length; i < l; i++) { + if (windows[i].focused === true) { + chrome.tabs.query({ + windowId: windows[i].id + }, function (tabs) { + if (tabs) { + for (var j = 0, k = tabs.length; j < k; j++) { + var tab = tabs[j]; + + if (tab.active) { + chrome.tabs.sendMessage(tab.id, { + action: 'focus' + }); + } + } + } + }); + } else { + chrome.tabs.query({ + windowId: windows[i].id + }, function (tabs) { + if (tabs) { + for (var j = 0, k = tabs.length; j < k; j++) { + var tab = tabs[j]; + + chrome.tabs.sendMessage(tab.id, { + action: 'blur' + }); + } + } + }); + } + } + }); }); + /*-------------------------------------------------------------- # MESSAGE LISTENER --------------------------------------------------------------*/ chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { - var name = request.name; - - if (name === "download") { - chrome.permissions.request( - { - permissions: ["downloads"], - origins: ["https://www.youtube.com/*"], - }, - function (granted) { - if (granted) { - try { - var blob = new Blob([JSON.stringify(request.value)], { - type: "application/json;charset=utf-8", - }); - - chrome.downloads.download({ - url: URL.createObjectURL(blob), - filename: request.filename, - saveAs: true, - }); - } catch (error) { - console.error(error); - } - } else { - console.error("Permission is not granted."); - } - } - ); - } + var name = request.name; + + if (name === 'download') { + chrome.permissions.request({ + permissions: ['downloads'], + origins: ['https://www.youtube.com/*'] + }, function (granted) { + if (granted) { + try { + var blob = new Blob([JSON.stringify(request.value)], { + type: 'application/json;charset=utf-8' + }); + + chrome.downloads.download({ + url: URL.createObjectURL(blob), + filename: request.filename, + saveAs: true + }); + } catch (error) { + console.error(error); + } + } else { + console.error('Permission is not granted.'); + } + }); + } }); let prevTabsLength = 0; @@ -222,20 +216,21 @@ chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) { } } }); - } else if (action === "options-page-connected") { - sendResponse({ - isTab: sender.hasOwnProperty("tab"), - }); - } else if (action === "tab-connected") { - sendResponse({ - hostname: new URL(sender.url).hostname, - tabId: sender.tab.id, - }); - } + } else if (action === 'options-page-connected') { + sendResponse({ + isTab: sender.hasOwnProperty('tab') + }); + } else if (action === 'tab-connected') { + sendResponse({ + hostname: new URL(sender.url).hostname, + tabId: sender.tab.id + }); + } }); + /*-------------------------------------------------------------- # UNINSTALL URL --------------------------------------------------------------*/ -chrome.runtime.setUninstallURL("https://improvedtube.com/uninstalled"); +chrome.runtime.setUninstallURL('https://improvedtube.com/uninstalled'); diff --git a/content-scripts/extension-context/init.js b/content-scripts/extension-context/init.js index 47b51ee4a..051a0e4c1 100644 --- a/content-scripts/extension-context/init.js +++ b/content-scripts/extension-context/init.js @@ -2,260 +2,239 @@ >>> INITIALIZATION --------------------------------------------------------------*/ -extension.features.youtubeHomePage("init"); +extension.features.youtubeHomePage('init'); -document.documentElement.setAttribute("it-pathname", location.pathname); +document.documentElement.setAttribute('it-pathname', location.pathname); -window.addEventListener("yt-navigate-finish", function () { - document.documentElement.setAttribute("it-pathname", location.pathname); +window.addEventListener('yt-navigate-finish', function () { + document.documentElement.setAttribute('it-pathname', location.pathname); - extension.features.trackWatchedVideos(); - extension.features.thumbnailsQuality(); + extension.features.trackWatchedVideos(); + extension.features.thumbnailsQuality(); }); extension.messages.create(); extension.messages.listener(); -extension.events.on( - "init", - function (resolve) { - extension.storage.listener(); - extension.storage.load(function () { - resolve(); - }); - }, - { - async: true, - } -); +extension.events.on('init', function (resolve) { + extension.storage.listener(); + extension.storage.load(function () { + resolve(); + }); +}, { + async: true +}); function bodyReady() { - if (extension.ready && extension.domReady) { - extension.features.addScrollToTop(); - extension.features.font(); - extension.features.showHeaderOnSearch(); - } + if (extension.ready && extension.domReady) { + extension.features.addScrollToTop(); + extension.features.font(); + extension.features.showHeaderOnSearch(); + } } -extension.events.on("init", function () { - extension.features.bluelight(); - extension.features.dim(); - extension.features.youtubeHomePage(); - extension.features.collapseOfSubscriptionSections(); - extension.features.confirmationBeforeClosing(); - extension.features.defaultContentCountry(); - extension.features.popupWindowButtons(); - extension.features.markWatchedVideos(); - extension.features.relatedVideos(); - extension.features.comments(); - - bodyReady(); +extension.events.on('init', function () { + extension.features.bluelight(); + extension.features.dim(); + extension.features.youtubeHomePage(); + extension.features.collapseOfSubscriptionSections(); + extension.features.confirmationBeforeClosing(); + extension.features.defaultContentCountry(); + extension.features.popupWindowButtons(); + extension.features.markWatchedVideos(); + extension.features.relatedVideos(); + extension.features.comments(); + + bodyReady(); +}); + +chrome.runtime.sendMessage({ + action: 'tab-connected' +}, function (response) { + if (response) { + extension.tabId = response.tabId; + } }); -chrome.runtime.sendMessage( - { - action: "tab-connected", - }, - function (response) { - if (response) { - extension.tabId = response.tabId; - } - } -); - -extension.inject( - [ - "/content-scripts/website-context/core.js", - "/content-scripts/website-context/functions.js", - "/content-scripts/website-context/youtube-features/appearance.js", - "/content-scripts/website-context/youtube-features/themes.js", - "/content-scripts/website-context/youtube-features/player.js", - "/content-scripts/website-context/youtube-features/playlist.js", - "/content-scripts/website-context/youtube-features/channel.js", - "/content-scripts/website-context/youtube-features/shortcuts.js", - "/content-scripts/website-context/youtube-features/blacklist.js", - "/content-scripts/website-context/youtube-features/settings.js", - "/content-scripts/website-context/init.js", - "/content-scripts/website-context/mutations.js", - ], - function () { - extension.ready = true; - - extension.events.trigger("init"); - } -); - -document.addEventListener("DOMContentLoaded", function () { - extension.domReady = true; - - bodyReady(); +extension.inject([ + '/content-scripts/website-context/core.js', + '/content-scripts/website-context/functions.js', + '/content-scripts/website-context/youtube-features/appearance.js', + '/content-scripts/website-context/youtube-features/themes.js', + '/content-scripts/website-context/youtube-features/player.js', + '/content-scripts/website-context/youtube-features/playlist.js', + '/content-scripts/website-context/youtube-features/channel.js', + '/content-scripts/website-context/youtube-features/shortcuts.js', + '/content-scripts/website-context/youtube-features/blacklist.js', + '/content-scripts/website-context/youtube-features/settings.js', + '/content-scripts/website-context/init.js', + '/content-scripts/website-context/mutations.js' +], function () { + extension.ready = true; + + extension.events.trigger('init'); }); +document.addEventListener('DOMContentLoaded', function () { + extension.domReady = true; + + bodyReady(); +}); let prevRequestAction = ""; chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { - if (request.action === "focus") { - extension.messages.send({ - focus: true, - }); - } else if (request.action === "blur") { - extension.messages.send({ - blur: true, - }); - } else if (request.action === "pause") { - extension.messages.send({ - pause: true, - }); - } else if (request.action === "set-volume") { - extension.messages.send({ - setVolume: request.value, - }); - } else if (request.action === "set-playback-speed") { - extension.messages.send({ - setPlaybackSpeed: request.value, - }); - } else if (request.action === "mixer") { - extension.messages.send( - { - mixer: true, - }, - sendResponse, - "mixer" - ); - - return true; - } else if (request.action === "delete-youtube-cookies") { - extension.messages.send({ - deleteCookies: true, - }); - } else if ( - request.action === "another-video-started-playing" && - prevRequestAction === "new-tab-opened" - ) { - console.log("Continue playing"); - } else if (request.action === "another-video-started-playing") { - extension.features.onlyOnePlayerInstancePlaying(); - } - - prevRequestAction = request.action; + if (request.action === 'focus') { + extension.messages.send({ + focus: true + }); + } else if (request.action === 'blur') { + extension.messages.send({ + blur: true + }); + } else if (request.action === 'pause') { + extension.messages.send({ + pause: true + }); + } else if (request.action === 'set-volume') { + extension.messages.send({ + setVolume: request.value + }); + } else if (request.action === 'set-playback-speed') { + extension.messages.send({ + setPlaybackSpeed: request.value + }); + } else if (request.action === 'mixer') { + extension.messages.send({ + mixer: true + }, sendResponse, 'mixer'); + + return true; + } else if (request.action === 'delete-youtube-cookies') { + extension.messages.send({ + deleteCookies: true + }); + } else if ( + request.action === "another-video-started-playing" && + prevRequestAction === "new-tab-opened" + ) { + console.log("Continue playing"); + } else if (request.action === "another-video-started-playing") { + extension.features.onlyOnePlayerInstancePlaying(); + } + + prevRequestAction = request.action; }); -document.addEventListener("it-message-from-youtube", function () { - var provider = document.querySelector("#it-messages-from-youtube"); - - if (provider) { - var message = provider.textContent; - - document.dispatchEvent(new CustomEvent("it-message-from-youtube--readed")); - - try { - message = JSON.parse(message); - } catch (error) { - console.log(error); - } - - //console.log(message); - - if (message.requestOptionsUrl === true) { - extension.messages.send({ - responseOptionsUrl: chrome.runtime.getURL("options-page/index.html"), - }); - } else if (message.onlyOnePlayer === true) { - chrome.runtime.sendMessage({ - name: "only-one-player", - }); - } else if (message.action === "analyzer") { - if (extension.storage.data.analyzer_activation === true) { - var data = message.name, - date = new Date().toDateString(), - hours = new Date().getHours() + ":00"; - - if (!extension.storage.data.analyzer) { - extension.storage.data.analyzer = {}; - } - - if (!extension.storage.data.analyzer[date]) { - extension.storage.data.analyzer[date] = {}; - } - - if (!extension.storage.data.analyzer[date][hours]) { - extension.storage.data.analyzer[date][hours] = {}; - } - - if (!extension.storage.data.analyzer[date][hours][data]) { - extension.storage.data.analyzer[date][hours][data] = 0; - } - - extension.storage.data.analyzer[date][hours][data]++; - - chrome.storage.local.set({ - analyzer: extension.storage.data.analyzer, - }); - } - } else if (message.action === "blacklist") { - var type = message.type, - id = message.id, - title = message.title; - - if ( - !extension.storage.data.blacklist || - typeof extension.storage.data.blacklist !== "object" - ) { - extension.storage.data.blacklist = {}; - } - - if (type === "channel") { - if (!extension.storage.data.blacklist.channels) { - extension.storage.data.blacklist.channels = {}; - } - - extension.storage.data.blacklist.channels[id] = { - title: title, - preview: message.preview, - }; - } - - if (type === "video") { - if (!extension.storage.data.blacklist.videos) { - extension.storage.data.blacklist.videos = {}; - } - - extension.storage.data.blacklist.videos[id] = { - title: title, - }; - } - - chrome.storage.local.set({ - blacklist: extension.storage.data.blacklist, - }); - } else if (message.action === "watched") { - if ( - !extension.storage.data.watched || - typeof extension.storage.data.watched !== "object" - ) { - extension.storage.data.watched = {}; - } - - if (message.type === "add") { - extension.storage.data.watched[message.id] = { - title: message.title, - }; - } - - if (message.type === "remove") { - delete extension.storage.data.watched[message.id]; - } - - chrome.storage.local.set({ - watched: extension.storage.data.watched, - }); - } - } +document.addEventListener('it-message-from-youtube', function () { + var provider = document.querySelector('#it-messages-from-youtube'); + + if (provider) { + var message = provider.textContent; + + document.dispatchEvent(new CustomEvent('it-message-from-youtube--readed')); + + try { + message = JSON.parse(message); + } catch (error) { + console.log(error); + } + + //console.log(message); + + if (message.requestOptionsUrl === true) { + extension.messages.send({ + responseOptionsUrl: chrome.runtime.getURL('options-page/index.html') + }); + } else if (message.onlyOnePlayer === true) { + chrome.runtime.sendMessage({ + name: 'only-one-player' + }); + } else if (message.action === 'analyzer') { + if (extension.storage.data.analyzer_activation === true) { + var data = message.name, + date = new Date().toDateString(), + hours = new Date().getHours() + ':00'; + + if (!extension.storage.data.analyzer) { + extension.storage.data.analyzer = {}; + } + + if (!extension.storage.data.analyzer[date]) { + extension.storage.data.analyzer[date] = {}; + } + + if (!extension.storage.data.analyzer[date][hours]) { + extension.storage.data.analyzer[date][hours] = {}; + } + + if (!extension.storage.data.analyzer[date][hours][data]) { + extension.storage.data.analyzer[date][hours][data] = 0; + } + + extension.storage.data.analyzer[date][hours][data]++; + + chrome.storage.local.set({ + analyzer: extension.storage.data.analyzer + }); + } + } else if (message.action === 'blacklist') { + var type = message.type, + id = message.id, + title = message.title; + + if (!extension.storage.data.blacklist || typeof extension.storage.data.blacklist !== 'object') { + extension.storage.data.blacklist = {}; + } + + if (type === 'channel') { + if (!extension.storage.data.blacklist.channels) { + extension.storage.data.blacklist.channels = {}; + } + + extension.storage.data.blacklist.channels[id] = { + title: title, + preview: message.preview + }; + } + + if (type === 'video') { + if (!extension.storage.data.blacklist.videos) { + extension.storage.data.blacklist.videos = {}; + } + + extension.storage.data.blacklist.videos[id] = { + title: title + }; + } + + chrome.storage.local.set({ + blacklist: extension.storage.data.blacklist + }); + } else if (message.action === 'watched') { + if (!extension.storage.data.watched || typeof extension.storage.data.watched !== 'object') { + extension.storage.data.watched = {}; + } + + if (message.type === 'add') { + extension.storage.data.watched[message.id] = { + title: message.title + }; + } + + if (message.type === 'remove') { + delete extension.storage.data.watched[message.id]; + } + + chrome.storage.local.set({ + watched: extension.storage.data.watched + }); + } + } }); -document.addEventListener("it-play", function (event) { - var videos = document.querySelectorAll("video"); +document.addEventListener('it-play', function (event) { + var videos = document.querySelectorAll('video'); - chrome.runtime.sendMessage({ - action: "play", - }); -}); + chrome.runtime.sendMessage({ + action: 'play' + }); +}); \ No newline at end of file From c597fb92d6b767bf90c11ef1f0cd9d2301450f1d Mon Sep 17 00:00:00 2001 From: x64 Date: Mon, 13 Feb 2023 18:16:53 +0100 Subject: [PATCH 0781/1224] Bugfix for #1555 --- .../extension-context/youtube-features/general/general.js | 1 + 1 file changed, 1 insertion(+) diff --git a/content-scripts/extension-context/youtube-features/general/general.js b/content-scripts/extension-context/youtube-features/general/general.js index 2d276aab8..bb74fc868 100644 --- a/content-scripts/extension-context/youtube-features/general/general.js +++ b/content-scripts/extension-context/youtube-features/general/general.js @@ -570,6 +570,7 @@ extension.features.showHeaderOnSearch = function (event) { search.addEventListener('focusout', function (e) { var origHeaderPos = document.documentElement.getAttribute('it-header-position-original'); + origHeaderPos === 'null' ? 'normal' : origHeaderPos; document.documentElement.setAttribute('it-header-position', origHeaderPos); }); From 081bd1fbde14a8edde8c04452cb107513d2ba22b Mon Sep 17 00:00:00 2001 From: Mohamed Lebda Date: Mon, 13 Feb 2023 20:41:28 +0200 Subject: [PATCH 0782/1224] fixed issue #1553 --- content-scripts/website-context/init.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/content-scripts/website-context/init.js b/content-scripts/website-context/init.js index 0f7e87873..698a37fad 100644 --- a/content-scripts/website-context/init.js +++ b/content-scripts/website-context/init.js @@ -104,7 +104,17 @@ document.addEventListener('improvedtube-player-loaded', function () { ImprovedTube.elements.player.parentNode.addEventListener('mouseenter', function () { ImprovedTube.playerControls(true); }); - + ImprovedTube.elements.player.parentNode.onmousemove = (function() { + let onmousestop = function() { + ImprovedTube.playerControls(false); + }, thread; + + return function() { + ImprovedTube.playerControls(true); + clearTimeout(thread); + thread = setTimeout(onmousestop, 1000); + }; + })(); ImprovedTube.elements.player.parentNode.addEventListener('mouseleave', function () { ImprovedTube.playerControls(false); }); From a8d646f6795b119afc71466bcb26836e63553cea Mon Sep 17 00:00:00 2001 From: Mohamed Lebda Date: Wed, 15 Feb 2023 22:27:44 +0200 Subject: [PATCH 0783/1224] modified issue #1553 --- content-scripts/website-context/core.js | 4 ++- content-scripts/website-context/init.js | 40 +++++++++++++------------ 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/content-scripts/website-context/core.js b/content-scripts/website-context/core.js index 4280f8b51..b4da33a1b 100644 --- a/content-scripts/website-context/core.js +++ b/content-scripts/website-context/core.js @@ -126,7 +126,9 @@ document.addEventListener('it-message-from-extension', function () { var camelized_key = message.camelizedKey; ImprovedTube.storage[message.key] = message.value; - + if(ImprovedTube.storage[message.key]==="when_paused"){ + ImprovedTube.whenPaused(); + }; if (camelized_key === 'blacklistActivate') { camelized_key = 'blacklist'; } else if (camelized_key === 'playerForcedPlaybackSpeed') { diff --git a/content-scripts/website-context/init.js b/content-scripts/website-context/init.js index 698a37fad..71e03ca64 100644 --- a/content-scripts/website-context/init.js +++ b/content-scripts/website-context/init.js @@ -99,23 +99,25 @@ window.addEventListener('load', function () { ImprovedTube.improvedtubeYoutubeIcon(); }); - -document.addEventListener('improvedtube-player-loaded', function () { - ImprovedTube.elements.player.parentNode.addEventListener('mouseenter', function () { - ImprovedTube.playerControls(true); - }); - ImprovedTube.elements.player.parentNode.onmousemove = (function() { - let onmousestop = function() { +ImprovedTube.whenPaused=()=>{ + ImprovedTube.elements.player.parentNode.addEventListener('mouseenter', function () { + ImprovedTube.playerControls(true); + }); + ImprovedTube.elements.player.parentNode.addEventListener('click', function () { + ImprovedTube.playerControls(true); + }); + ImprovedTube.elements.player.parentNode.onmousemove = (function() { + let onmousestop = function() { + ImprovedTube.playerControls(false); + }, thread; + + return function() { + ImprovedTube.playerControls(true); + clearTimeout(thread); + thread = setTimeout(onmousestop, 1000); + }; + })(); + ImprovedTube.elements.player.parentNode.addEventListener('mouseleave', function () { ImprovedTube.playerControls(false); - }, thread; - - return function() { - ImprovedTube.playerControls(true); - clearTimeout(thread); - thread = setTimeout(onmousestop, 1000); - }; - })(); - ImprovedTube.elements.player.parentNode.addEventListener('mouseleave', function () { - ImprovedTube.playerControls(false); - }); -}); \ No newline at end of file + }); +} \ No newline at end of file From bcbd7e907f6dd1fe260a8e03a1274462978db1d4 Mon Sep 17 00:00:00 2001 From: Mohamed Lebda Date: Wed, 15 Feb 2023 22:29:25 +0200 Subject: [PATCH 0784/1224] modified issue #1553 --- content-scripts/website-context/init.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content-scripts/website-context/init.js b/content-scripts/website-context/init.js index 71e03ca64..b1be3919f 100644 --- a/content-scripts/website-context/init.js +++ b/content-scripts/website-context/init.js @@ -120,4 +120,4 @@ ImprovedTube.whenPaused=()=>{ ImprovedTube.elements.player.parentNode.addEventListener('mouseleave', function () { ImprovedTube.playerControls(false); }); -} \ No newline at end of file +} From 3f4dbaf7ca842e8da2b2bae63a8e778ac0416ec6 Mon Sep 17 00:00:00 2001 From: Mohamed Lebda Date: Wed, 22 Feb 2023 04:29:44 +0200 Subject: [PATCH 0785/1224] fix issu 1508 --- _locales/vi/messages.json | 118 +++++++++--------- .../youtube-features/general/general.js | 1 + .../youtube-features/player.js | 6 +- 3 files changed, 64 insertions(+), 61 deletions(-) diff --git a/_locales/vi/messages.json b/_locales/vi/messages.json index 8812ae963..a9be85f14 100644 --- a/_locales/vi/messages.json +++ b/_locales/vi/messages.json @@ -51,7 +51,7 @@ "message": "Cho phép 60fps" }, "always": { - "message": "Always" + "message": "Luôn luôn" }, "alwaysActive": { "message": "Luôn luôn hoạt động" @@ -66,7 +66,7 @@ "message": "Bộ phân tích" }, "animations": { - "message": "Animations" + "message": "Hoạt ảnh" }, "appearance": { "message": "Diện mạo" @@ -96,16 +96,16 @@ "message": "Tự động phát" }, "avoidAv1": { - "message": "Avoid AV1" + "message": "Tránh AV1" }, "avoidAv1Vp8Vp9": { - "message": "Avoid AV1, VP8, VP9" + "message": "Tránh AV1, VP8, VP9" }, "avoidAv1Vp9": { - "message": "Avoid AV1, VP9" + "message": "Tránh AV1, VP9" }, "avoidCpuRenderingWhenPossible": { - "message": "Tránh hiển thị CPU khi có thể" + "message": "Tránh kết xuất bằng CPU khi có thể" }, "backgroundColor": { "message": "Màu nền" @@ -153,7 +153,7 @@ "message": "Xám xanh" }, "bluelight": { - "message": "Ánh sáng xanh" + "message": "Sáng xanh" }, "brown": { "message": "Nâu" @@ -192,7 +192,7 @@ "message": "Clip" }, "clipboard": { - "message": "Clipboard" + "message": "Bảng tạm" }, "codecH264": { "message": "Codec h.264" @@ -225,13 +225,13 @@ "message": "Tuỳ chỉnh" }, "customCss": { - "message": "Tuỳ chỉnh CSS" + "message": "Mã CSS tuỳ chỉnh" }, "customJs": { - "message": "Tuỳ chỉnh JS" + "message": "Mã JS tuỳ chỉnh" }, "customMiniPlayer": { - "message": "Tuỳ chỉnh Trình phát Mini" + "message": "Trình phát Mini tuỳ chỉnh" }, "cyan": { "message": "Xanh lơ" @@ -285,7 +285,7 @@ "message": "Làm cho YouTube gọn gàng+thông minh! YouTube video color ad skip volume speed channel tool style HD ads adblock adblocker tags keyword playlist" }, "desert": { - "message": "Rời đi" + "message": "Sa mạc" }, "details": { "message": "Chi tiết" @@ -306,16 +306,16 @@ "message": "Không thích" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Hiển thị ngày trong tuần" }, "doNotChange": { "message": "Đừng thay đổi" }, "donate": { - "message": "Quyên tặng" + "message": "Donate" }, "download": { - "message": "Download" + "message": "Tải xuống" }, "draggable": { "message": "Có thể kéo" @@ -324,7 +324,7 @@ "message": "Bóng đổ" }, "durationWithSpeed": { - "message": "Show time remaining with reference to playback speed" + "message": "Hiển thị thời gian còn lại tương đương với tốc độ phát hiện tại" }, "email": { "message": "Email" @@ -381,22 +381,22 @@ "message": "Bắt buộc SDR" }, "forcedPlayVideoFromTheBeginning": { - "message": "Bắt buộc phát video từ đầu" + "message": "Buộc phát video từ đầu" }, "forcedPlaybackSpeed": { - "message": "Tốc độ phát lại bắt buộc" + "message": "Buộc tốc độ phát" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "Buộc tốc độ phát cho âm nhạc" }, "forcedTheaterMode": { - "message": "Bắt buộc chế độ rạp hát" + "message": "Buộc chế độ rạp hát" }, "forcedVolume": { - "message": "Bắt buộc âm lượng" + "message": "Buộc mức âm lượng" }, "foundABug": { - "message": "Tìm thấy một lỗi?" + "message": "Tìm thấy lỗi (bug)?" }, "fullWindow": { "message": "Toàn cửa sổ" @@ -405,7 +405,7 @@ "message": "Chung" }, "geoPreference": { - "message": "Vị trí ưu thích" + "message": "Vị trí ưa thích" }, "github": { "message": "GitHub" @@ -414,16 +414,16 @@ "message": "Đi tới hộp tìm kiếm" }, "googleApiKey": { - "message": "Khóa API Google" + "message": "Key API Google" }, "gpu": { "message": "GPU" }, "green": { - "message": "Xanh lục" + "message": "Xanh lá cây" }, "hardwareInformation": { - "message": "Hardware information" + "message": "Thông tin phần cứng" }, "hd": { "message": "HD" @@ -432,10 +432,10 @@ "message": "Hình thu nhỏ HD" }, "header": { - "message": "Tiêu đề" + "message": "Phần đầu" }, "hidden": { - "message": "Ẩn giấu" + "message": "Ẩn" }, "hiddenOnVideoPage": { "message": "Ẩn trên trang video" @@ -450,10 +450,10 @@ "message": "Ẩn thẻ" }, "hideCategories": { - "message": "Hide categories" + "message": "Ẩn mục" }, "hideCommentsCount": { - "message": "Hide comments count" + "message": "Ẩn số lượng bình luận" }, "hideCountryCode": { "message": "Ẩn mã quốc gia" @@ -462,7 +462,7 @@ "message": "Ẩn ngày" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Ẩn nút chi tiết" }, "hideDetails": { "message": "Ẩn chi tiết" @@ -540,7 +540,7 @@ "message": "Nhập cài đặt" }, "improveLogo": { - "message": "Cải thiện logo" + "message": "Logo đã sửa" }, "improvedtubeButtons": { "message": "Nút ImprovedTube" @@ -549,13 +549,13 @@ "message": "Biểu tượng ImprovedTube trên YouTube" }, "improvedtubeLanguage": { - "message": "Ngôn ngữ ImprovedTube" + "message": "Ngôn ngữ của ImprovedTube" }, "improvedtubeVersion": { "message": "Phiên bản ImprovedTube" }, "increasePlaybackSpeed": { - "message": "Tăng tốc độ phát lại" + "message": "Tăng tốc độ phát" }, "increaseVolume": { "message": "Tăng âm lượng" @@ -573,7 +573,7 @@ "message": "Ngôn ngữ" }, "layerAnimationScale": { - "message": "Layer animation scale" + "message": "Tỉ lệ lớp hoạt ảnh" }, "layout": { "message": "Layout" @@ -600,10 +600,10 @@ "message": "Đã thích" }, "likes": { - "message": "Likes" + "message": "Thích" }, "lime": { - "message": "Chanh xanh" + "message": "Chanh" }, "limitPageWidth": { "message": "Giới hạn chiều rộng trang" @@ -639,10 +639,10 @@ "message": "Mixer" }, "more": { - "message": "More" + "message": "Thêm nữa" }, "mostViewedChannels": { - "message": "Most viewed channels" + "message": "Kênh được xem nhiều nhất" }, "moveSidebarLeft": { "message": "Di chuyển thanh bên sang trái" @@ -669,7 +669,7 @@ "message": "Đêm" }, "nightMode": { - "message": "Night mode" + "message": "Chế độ tối" }, "noActiveFeatures": { "message": "Không có tính năng hoạt động" @@ -684,7 +684,7 @@ "message": "Bình thường" }, "off": { - "message": "Off" + "message": "Tắt" }, "ok": { "message": "Ok" @@ -702,7 +702,7 @@ "message": "Chỉ hoạt động trên YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Chỉ một tab phát video" }, "openPopupPlayer": { "message": "Mở video/danh sách phát trong một cửa sổ mới" @@ -717,7 +717,7 @@ "message": "Khác" }, "outline": { - "message": "Đường nét" + "message": "Đường viền" }, "overlay": { "message": "Lớp phủ" @@ -726,7 +726,7 @@ "message": "Quyền" }, "pictureInPicture": { - "message": "Picture-in-Picture" + "message": "Ảnh trong ảnh" }, "pink": { "message": "Hồng" @@ -762,10 +762,10 @@ "message": "Danh sách phát" }, "popupPlayer": { - "message": "Trình phát popup" + "message": "Trình phát nổi" }, "popupWindowButtons": { - "message": "popup_window_buttons" + "message": "Nút cửa sổ nổi" }, "position": { "message": "Vị trí" @@ -804,7 +804,7 @@ "message": "Đỏ" }, "redDislikeButton": { - "message": "Nút hiển thị không thích màu đỏ" + "message": "Nút không thích màu đỏ" }, "relatedVideos": { "message": "Các video liên quan" @@ -819,10 +819,10 @@ "message": "Lặp lại" }, "report": { - "message": "Report" + "message": "Báo cáo" }, "reset": { - "message": "Cài đặt lại" + "message": "Đặt lại" }, "resetAllSettings": { "message": "Đặt lại tất cả các thiết lập" @@ -882,7 +882,7 @@ "message": "Đã nhập thành công cài đặt" }, "share": { - "message": "Share" + "message": "Chia sẻ" }, "shortcuts": { "message": "Phím tắt" @@ -903,28 +903,28 @@ "message": "Hiển thị thời lượng còn lại của video" }, "showVersion": { - "message": "Show version" + "message": "Hiển thị phiên bản" }, "shuffle": { - "message": "Xáo trộn" + "message": "Trộn" }, "sidebar": { "message": "Thanh bên" }, "softwareInformation": { - "message": "Software information" + "message": "Thông tin phần mềm" }, "spacebar": { "message": "Phím cách" }, "squaredUserImages": { - "message": "Squared user images" + "message": "Ảnh người dùng hình vuông" }, "static": { "message": "Tĩnh" }, "statsForNerds": { - "message": "Hiển thị số liệu thống kê cho Nerds" + "message": "Hiển thị số liệu thống kê" }, "step": { "message": "Bước" @@ -960,13 +960,13 @@ "message": "Tùy chọn hệ thống: sáng" }, "teal": { - "message": "Mòng két" + "message": "Xanh mòng két" }, "textColor": { "message": "Màu văn bản" }, "thanks": { - "message": "Thanks" + "message": "Cảm ơn" }, "themes": { "message": "Chủ đề" @@ -1068,10 +1068,10 @@ "message": "Thời gian xem" }, "whenPaused": { - "message": "When paused" + "message": "Khi tạm dừng" }, "whenTabIsChanged": { - "message": "Khi tab được thay đổi" + "message": "Khi thay đổi tab" }, "white": { "message": "Trắng" diff --git a/content-scripts/extension-context/youtube-features/general/general.js b/content-scripts/extension-context/youtube-features/general/general.js index 2d276aab8..bb74fc868 100644 --- a/content-scripts/extension-context/youtube-features/general/general.js +++ b/content-scripts/extension-context/youtube-features/general/general.js @@ -570,6 +570,7 @@ extension.features.showHeaderOnSearch = function (event) { search.addEventListener('focusout', function (e) { var origHeaderPos = document.documentElement.getAttribute('it-header-position-original'); + origHeaderPos === 'null' ? 'normal' : origHeaderPos; document.documentElement.setAttribute('it-header-position', origHeaderPos); }); diff --git a/content-scripts/website-context/youtube-features/player.js b/content-scripts/website-context/youtube-features/player.js index 90fd09e82..e61174cfd 100644 --- a/content-scripts/website-context/youtube-features/player.js +++ b/content-scripts/website-context/youtube-features/player.js @@ -10,11 +10,13 @@ ImprovedTube.autoplay = function () { var video = ImprovedTube.elements.player; if (ImprovedTube.video_url !== location.href) { ImprovedTube.allow_autoplay = false; + ImprovedTube.video_url = location.href } - + // if (allow autoplay is false) and (no ads playing) and + // ( there is a video and ( (it is not in a playlist and auto play is off ) or ( playlist auto play is off and it is not in a playlist ) ) ) or (if we are in a channel and the channel trailer autoplay is off) ) if (ImprovedTube.allow_autoplay === false && video.classList.contains('ad-showing') === false && ( - (document.documentElement.dataset.pageType === "video" && ((location.href.indexOf('list=') === -1 && ImprovedTube.storage.player_autoplay === false) || (ImprovedTube.storage.playlist_autoplay === false))) || + (document.documentElement.dataset.pageType === "video" && ((location.href.indexOf('list=') === -1 && ImprovedTube.storage.player_autoplay === false) || (ImprovedTube.storage.playlist_autoplay === false && location.href.indexOf('list=') !== -1))) || (document.documentElement.dataset.pageType === "channel" && ImprovedTube.storage.channel_trailer_autoplay === false) ) ) { From 360b43c738b0fa4514ba10d13fb6ff2ef803e225 Mon Sep 17 00:00:00 2001 From: Mohamed Lebda Date: Wed, 22 Feb 2023 04:47:12 +0200 Subject: [PATCH 0786/1224] fixed issu 1508 --- content-scripts/website-context/youtube-features/player.js | 1 + 1 file changed, 1 insertion(+) diff --git a/content-scripts/website-context/youtube-features/player.js b/content-scripts/website-context/youtube-features/player.js index e61174cfd..9808bf18c 100644 --- a/content-scripts/website-context/youtube-features/player.js +++ b/content-scripts/website-context/youtube-features/player.js @@ -27,6 +27,7 @@ ImprovedTube.autoplay = function () { }; + /*------------------------------------------------------------------------------ 4.4.2 FORCED PLAY VIDEO FROM THE BEGINNING ------------------------------------------------------------------------------*/ From 0974dd4eafa832e51efe516d3182a17a90ce29d1 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 23 Feb 2023 10:05:23 +0100 Subject: [PATCH 0787/1224] expand description. new css --- content-scripts/website-context/functions.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index fc3a60a95..828057a73 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -196,10 +196,17 @@ ImprovedTube.ytElementsHandler = function (node) { node.calculateNormalPlayerSize_ = node.calculateCurrentPlayerSize_; } + }else if (id ==='description-inner') { + if (document.documentElement.dataset.pageType === 'video'){ + setTimeout(function () { + ImprovedTube.description(node); + }, 750); + } + //old }else if (name === 'TP-YT-PAPER-BUTTON') { if (document.documentElement.dataset.pageType === 'video' && id === 'more' && node.parentNode.parentNode.id === 'container') { setTimeout(function () { - ImprovedTube.description(node); + ImprovedTube.description(node); }, 750); } } @@ -212,7 +219,7 @@ ImprovedTube.pageType = function () { document.documentElement.dataset.pageType = 'subscriptions'; } else if (/\/watch\?/.test(location.href)) { document.documentElement.dataset.pageType = 'video'; - } else if (/\/channel|\/user|\/c\/|\/@.*\//.test(location.href)) { + } else if (/\/channel|\/user|\/c\/|\/@/.test(location.href)) { document.documentElement.dataset.pageType = 'channel'; } else { document.documentElement.dataset.pageType = 'other'; @@ -534,4 +541,4 @@ ImprovedTube.showStatus = function (value) { }, 500); this.elements.player.appendChild(this.elements.status); -}; \ No newline at end of file +}; From 778419b53220fa4d762518de9f722c668d36b79e Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 23 Feb 2023 10:12:53 +0100 Subject: [PATCH 0788/1224] 'details' are "ytd-watch-metadata" now --- .../youtube-features/appearance/details/details.css | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/content-scripts/extension-context/youtube-features/appearance/details/details.css index 766ddafbb..e1dc082d4 100644 --- a/content-scripts/extension-context/youtube-features/appearance/details/details.css +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.css @@ -1,5 +1,5 @@ /*-------------------------------------------------------------- ->>> DETAILS +>>> DETAILS ---------------------------------------------------------------- # --------------------------------------------------------------*/ @@ -13,11 +13,12 @@ } /*-------------------------------------------------------------- -# HIDE DETAILS +# HIDE DETAILS --------------------------------------------------------------*/ html[it-hide-details='true'] ytd-video-primary-info-renderer, -html[it-hide-details='true'] ytd-video-secondary-info-renderer { +html[it-hide-details='true'] ytd-video-secondary-info-renderer, +html[it-hide-details='true'] ytd-watch-metadata { display: none !important; } @@ -27,7 +28,8 @@ html[it-hide-details='true'] ytd-video-secondary-info-renderer { --------------------------------------------------------------*/ html[it-hide-views-count='true'] #info #count, -html[it-hide-views-count='true'] #info #count + #info-strings>#dot { +html[it-hide-views-count='true'] #info #count + #info-strings>#dot, +html[it-hide-views-count='true'] ytd-watch-metadata #info>span:first-child { display: none !important; } @@ -44,7 +46,8 @@ html[it-hide-comments-count='true'] #comments #count { --------------------------------------------------------------*/ html[it-hide-date='true'] #info #count + #info-strings>yt-formatted-string, -html[it-hide-date='true'] #info #count + #info-strings>#dot { +html[it-hide-date='true'] #info #count + #info-strings>#dot, +html[it-hide-date='true'] ytd-watch-metadata #info>span:last-child { display: none !important; } From 89c3caafa578562b22cc07cc3e482f76145bb2b7 Mon Sep 17 00:00:00 2001 From: Improved Date: Thu, 23 Feb 2023 15:09:59 +0100 Subject: [PATCH 0789/1224] fix description --- .../appearance/details/details.css | 20 +++++++++---------- manifest.json | 2 +- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/content-scripts/extension-context/youtube-features/appearance/details/details.css index e1dc082d4..4057add91 100644 --- a/content-scripts/extension-context/youtube-features/appearance/details/details.css +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.css @@ -186,21 +186,19 @@ html[it-hide-more-button='hidden'] #menu yt-button-shape#button-shape { # DESCRIPTION --------------------------------------------------------------*/ +/* html[it-details-old-style=true] */ +.ytd-watch-flexy #info-contents, .ytd-watch-flexy #meta-contents { display: block !important; } +#below.ytd-watch-flexy { top:-20px; } + + html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, html[it-description=hidden] div#action-panel-details, -ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents { - display: none !important; +html[it-description=hidden] ytd-expander.ytd-video-secondary-info-renderer, +html[it-description=hidden] #description-inline-expander { + display: none !important; } -html[it-description=normal] ytd-watch-metadata, -html[it-description=expanded] ytd-watch-metadata { - display: none !important; -} - -html[it-description=normal] ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents, -html[it-description=expanded] ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents { - display: block !important; -} +div.style-scope.ytd-watch-flexy + ytd-watch-metadata { display: none !important;} /*-------------------------------------------------------------- diff --git a/manifest.json b/manifest.json index 9978f64aa..5a2939bea 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "manifest_version": 3, - "name": "ImprovedTube", + "name": "'Improve YouTube!' Video Tools", "description": "__MSG_description_ext__", "version": "4.0.1", "default_locale": "en", From 7c935a494d40a2be39d5b9d1ca7b558630d4d313 Mon Sep 17 00:00:00 2001 From: Mohamed Lebda Date: Thu, 23 Feb 2023 19:58:58 +0200 Subject: [PATCH 0790/1224] Modification to fix issue #1516 --- background.js | 34 ++++++++----------- content-scripts/extension-context/init.js | 11 ++---- .../appearance/details/details.css | 33 +++++++++--------- content-scripts/website-context/core.js | 3 ++ content-scripts/website-context/functions.js | 13 +++++-- manifest.json | 2 +- 6 files changed, 49 insertions(+), 47 deletions(-) diff --git a/background.js b/background.js index 140e143a9..e3669d451 100644 --- a/background.js +++ b/background.js @@ -196,25 +196,21 @@ chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) { if (action === "play") { chrome.tabs.query({}, function (tabs) { if (tabs.length > prevTabsLength) { - prevTabsLength = tabs.length; - for (var i = 0, l = tabs.length; i < l; i++) { - var tab = tabs[i]; - chrome.tabs.sendMessage(tab.id, { - action: "new-tab-opened", - }); - } - } else { - prevTabsLength = tabs.length; - } - for (var i = 0, l = tabs.length; i < l; i++) { - var tab = tabs[i]; - - if (sender.tab.id !== tab.id) { - chrome.tabs.sendMessage(tab.id, { - action: "another-video-started-playing", - }); - } - } + prevTabsLength++; + } else if (tabs.length < prevTabsLength){ + prevTabsLength--; + }else{ + for (var i = 0, l = tabs.length; i < l; i++) { + prevTabsLength = tabs.length; + var tab = tabs[i]; + + if (sender.tab.id !== tab.id) { + chrome.tabs.sendMessage(tab.id, { + action: "another-video-started-playing", + }); + } + } + } }); } else if (action === 'options-page-connected') { sendResponse({ diff --git a/content-scripts/extension-context/init.js b/content-scripts/extension-context/init.js index 051a0e4c1..87d2e8bd8 100644 --- a/content-scripts/extension-context/init.js +++ b/content-scripts/extension-context/init.js @@ -80,7 +80,7 @@ document.addEventListener('DOMContentLoaded', function () { bodyReady(); }); -let prevRequestAction = ""; + chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { if (request.action === 'focus') { extension.messages.send({ @@ -112,16 +112,11 @@ chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { extension.messages.send({ deleteCookies: true }); - } else if ( - request.action === "another-video-started-playing" && - prevRequestAction === "new-tab-opened" - ) { - console.log("Continue playing"); - } else if (request.action === "another-video-started-playing") { + } else if (request.action === "another-video-started-playing") { extension.features.onlyOnePlayerInstancePlaying(); } - prevRequestAction = request.action; + }); document.addEventListener('it-message-from-youtube', function () { diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/content-scripts/extension-context/youtube-features/appearance/details/details.css index 766ddafbb..4057add91 100644 --- a/content-scripts/extension-context/youtube-features/appearance/details/details.css +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.css @@ -1,5 +1,5 @@ /*-------------------------------------------------------------- ->>> DETAILS +>>> DETAILS ---------------------------------------------------------------- # --------------------------------------------------------------*/ @@ -13,11 +13,12 @@ } /*-------------------------------------------------------------- -# HIDE DETAILS +# HIDE DETAILS --------------------------------------------------------------*/ html[it-hide-details='true'] ytd-video-primary-info-renderer, -html[it-hide-details='true'] ytd-video-secondary-info-renderer { +html[it-hide-details='true'] ytd-video-secondary-info-renderer, +html[it-hide-details='true'] ytd-watch-metadata { display: none !important; } @@ -27,7 +28,8 @@ html[it-hide-details='true'] ytd-video-secondary-info-renderer { --------------------------------------------------------------*/ html[it-hide-views-count='true'] #info #count, -html[it-hide-views-count='true'] #info #count + #info-strings>#dot { +html[it-hide-views-count='true'] #info #count + #info-strings>#dot, +html[it-hide-views-count='true'] ytd-watch-metadata #info>span:first-child { display: none !important; } @@ -44,7 +46,8 @@ html[it-hide-comments-count='true'] #comments #count { --------------------------------------------------------------*/ html[it-hide-date='true'] #info #count + #info-strings>yt-formatted-string, -html[it-hide-date='true'] #info #count + #info-strings>#dot { +html[it-hide-date='true'] #info #count + #info-strings>#dot, +html[it-hide-date='true'] ytd-watch-metadata #info>span:last-child { display: none !important; } @@ -183,21 +186,19 @@ html[it-hide-more-button='hidden'] #menu yt-button-shape#button-shape { # DESCRIPTION --------------------------------------------------------------*/ +/* html[it-details-old-style=true] */ +.ytd-watch-flexy #info-contents, .ytd-watch-flexy #meta-contents { display: block !important; } +#below.ytd-watch-flexy { top:-20px; } + + html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, html[it-description=hidden] div#action-panel-details, -ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents { - display: none !important; +html[it-description=hidden] ytd-expander.ytd-video-secondary-info-renderer, +html[it-description=hidden] #description-inline-expander { + display: none !important; } -html[it-description=normal] ytd-watch-metadata, -html[it-description=expanded] ytd-watch-metadata { - display: none !important; -} - -html[it-description=normal] ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents, -html[it-description=expanded] ytd-watch-flexy #info-contents, ytd-watch-flexy #meta-contents { - display: block !important; -} +div.style-scope.ytd-watch-flexy + ytd-watch-metadata { display: none !important;} /*-------------------------------------------------------------- diff --git a/content-scripts/website-context/core.js b/content-scripts/website-context/core.js index b4da33a1b..1a1046db7 100644 --- a/content-scripts/website-context/core.js +++ b/content-scripts/website-context/core.js @@ -181,6 +181,9 @@ document.addEventListener('it-message-from-extension', function () { } } } + if(ImprovedTube.storage.only_one_player_instance_playing === true){ + ImprovedTube.storage = {...ImprovedTube.storage, player_autoplay: false, playlist_autoplay: false} + } }); /*-------------------------------------------------------------- diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index fc3a60a95..828057a73 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -196,10 +196,17 @@ ImprovedTube.ytElementsHandler = function (node) { node.calculateNormalPlayerSize_ = node.calculateCurrentPlayerSize_; } + }else if (id ==='description-inner') { + if (document.documentElement.dataset.pageType === 'video'){ + setTimeout(function () { + ImprovedTube.description(node); + }, 750); + } + //old }else if (name === 'TP-YT-PAPER-BUTTON') { if (document.documentElement.dataset.pageType === 'video' && id === 'more' && node.parentNode.parentNode.id === 'container') { setTimeout(function () { - ImprovedTube.description(node); + ImprovedTube.description(node); }, 750); } } @@ -212,7 +219,7 @@ ImprovedTube.pageType = function () { document.documentElement.dataset.pageType = 'subscriptions'; } else if (/\/watch\?/.test(location.href)) { document.documentElement.dataset.pageType = 'video'; - } else if (/\/channel|\/user|\/c\/|\/@.*\//.test(location.href)) { + } else if (/\/channel|\/user|\/c\/|\/@/.test(location.href)) { document.documentElement.dataset.pageType = 'channel'; } else { document.documentElement.dataset.pageType = 'other'; @@ -534,4 +541,4 @@ ImprovedTube.showStatus = function (value) { }, 500); this.elements.player.appendChild(this.elements.status); -}; \ No newline at end of file +}; diff --git a/manifest.json b/manifest.json index 9978f64aa..5a2939bea 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "manifest_version": 3, - "name": "ImprovedTube", + "name": "'Improve YouTube!' Video Tools", "description": "__MSG_description_ext__", "version": "4.0.1", "default_locale": "en", From fd1def1a26328b077123ed1cf6d95aa6ef460214 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 25 Feb 2023 20:34:22 +0800 Subject: [PATCH 0791/1224] Fix custom theme not working --- content-scripts/website-context/init.js | 1 + content-scripts/website-context/youtube-features/themes.js | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/content-scripts/website-context/init.js b/content-scripts/website-context/init.js index b1be3919f..1705520b6 100644 --- a/content-scripts/website-context/init.js +++ b/content-scripts/website-context/init.js @@ -42,6 +42,7 @@ new MutationObserver(function (mutationList) { ImprovedTube.init = function () { ImprovedTube.pageType(); + ImprovedTube.myColors(); var yt_player_updated = function () { document.dispatchEvent(new CustomEvent('improvedtube-player-loaded')); diff --git a/content-scripts/website-context/youtube-features/themes.js b/content-scripts/website-context/youtube-features/themes.js index abf02c0f7..7cd16cdb4 100644 --- a/content-scripts/website-context/youtube-features/themes.js +++ b/content-scripts/website-context/youtube-features/themes.js @@ -8,7 +8,7 @@ ImprovedTube.myColors = function () { if ( - this.storage.theme === 'my-colors' && + this.storage.theme === 'custom' && Array.isArray(this.storage.theme_primary_color) && Array.isArray(this.storage.theme_text_color) ) { @@ -68,6 +68,10 @@ ImprovedTube.myColors = function () { '--yt-spec-brand-subscribe-button-background:' + text_color + ' !important;' + '--yt-spec-wordmark-text:' + text_color + ' !important;' + '--yt-spec-selected-nav-text:' + text_color + ' !important;' + + '--yt-spec-base-background:' + primary_color + '!important;' + + '--yt-spec-raised-background:' + primary_color + '!important;' + + '--yt-spec-menu-background:' + primary_color + '!important;' + + '--yt-spec-inverted-background: #fff;' + '}'; this.elements.my_colors = style; From 7c9f0f1308eeec1e932102212878f78aca620b55 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 25 Feb 2023 21:40:10 +0800 Subject: [PATCH 0792/1224] Fix dark mode not working Now the theme will pick the youtube appearance by itself. --- content-scripts/website-context/core.js | 2 ++ content-scripts/website-context/init.js | 2 +- .../youtube-features/themes.js | 19 ++++++++++++++++--- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/content-scripts/website-context/core.js b/content-scripts/website-context/core.js index b4da33a1b..32032de58 100644 --- a/content-scripts/website-context/core.js +++ b/content-scripts/website-context/core.js @@ -133,6 +133,8 @@ document.addEventListener('it-message-from-extension', function () { camelized_key = 'blacklist'; } else if (camelized_key === 'playerForcedPlaybackSpeed') { camelized_key = 'playerPlaybackSpeed'; + } else if (camelized_key === 'theme') { + ImprovedTube.themes(); } if (ImprovedTube[camelized_key]) { diff --git a/content-scripts/website-context/init.js b/content-scripts/website-context/init.js index 1705520b6..65aa0e613 100644 --- a/content-scripts/website-context/init.js +++ b/content-scripts/website-context/init.js @@ -42,7 +42,7 @@ new MutationObserver(function (mutationList) { ImprovedTube.init = function () { ImprovedTube.pageType(); - ImprovedTube.myColors(); + ImprovedTube.themes(); var yt_player_updated = function () { document.dispatchEvent(new CustomEvent('improvedtube-player-loaded')); diff --git a/content-scripts/website-context/youtube-features/themes.js b/content-scripts/website-context/youtube-features/themes.js index 7cd16cdb4..d41525a5b 100644 --- a/content-scripts/website-context/youtube-features/themes.js +++ b/content-scripts/website-context/youtube-features/themes.js @@ -6,7 +6,7 @@ 4.3.1 MY COLORS ------------------------------------------------------------------------------*/ -ImprovedTube.myColors = function () { +ImprovedTube.themes = function () { if ( this.storage.theme === 'custom' && Array.isArray(this.storage.theme_primary_color) && @@ -77,7 +77,20 @@ ImprovedTube.myColors = function () { this.elements.my_colors = style; document.documentElement.appendChild(style); - } else if (this.elements.my_colors) { - this.elements.my_colors.remove(); + } else { + if (this.elements.my_colors) { + this.elements.my_colors.remove(); + } + if (this.storage.theme === 'dark' || this.storage.theme === 'black') { + if (!document.documentElement.hasAttribute('dark')) { + document.documentElement.setAttribute('dark', ''); + document.documentElement.removeAttribute('it-theme'); + } + } + else { + if (document.documentElement.hasAttribute('dark')) { + document.documentElement.removeAttribute('dark'); + } + } } }; \ No newline at end of file From 2f9023f95ad4c868589e9ef6f2f44b9f578fd2e4 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 25 Feb 2023 23:47:51 +0800 Subject: [PATCH 0793/1224] Fix youtube appearance setting is not set correctly when change theme The page will now reload when need to change appearance --- .../website-context/youtube-features/shortcuts.js | 3 +++ content-scripts/website-context/youtube-features/themes.js | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/content-scripts/website-context/youtube-features/shortcuts.js index e64a985f7..f2ad1521a 100644 --- a/content-scripts/website-context/youtube-features/shortcuts.js +++ b/content-scripts/website-context/youtube-features/shortcuts.js @@ -612,10 +612,13 @@ ImprovedTube.shortcutSubscribe = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutDarkTheme = function () { + const pref = document.cookie.match(/PREF\=.*(f6=[^\&]+)/)[0]; if (document.documentElement.hasAttribute('dark')) { + document.cookie = pref.replace(/(f6=)[^\&]+/, '$180000') + "; domain=.youtube.com"; document.documentElement.removeAttribute('dark'); document.documentElement.removeAttribute('it-theme'); } else { + document.cookie = pref.replace(/(f6=)[^\&]+/, '$1400') + "; domain=.youtube.com"; document.documentElement.setAttribute('dark', ''); document.documentElement.setAttribute('it-theme', 'true'); } diff --git a/content-scripts/website-context/youtube-features/themes.js b/content-scripts/website-context/youtube-features/themes.js index d41525a5b..a9b2c5cff 100644 --- a/content-scripts/website-context/youtube-features/themes.js +++ b/content-scripts/website-context/youtube-features/themes.js @@ -81,15 +81,19 @@ ImprovedTube.themes = function () { if (this.elements.my_colors) { this.elements.my_colors.remove(); } + const pref = document.cookie.match(/PREF\=.*(f6=[^\&]+)/)[0]; if (this.storage.theme === 'dark' || this.storage.theme === 'black') { if (!document.documentElement.hasAttribute('dark')) { + document.cookie = pref.replace(/(f6=)[^\&]+/, '$1400') + "; domain=.youtube.com"; document.documentElement.setAttribute('dark', ''); - document.documentElement.removeAttribute('it-theme'); + location.reload(); } } else { if (document.documentElement.hasAttribute('dark')) { + document.cookie = pref.replace(/(f6=)[^\&]+/, '$180000') + "; domain=.youtube.com"; document.documentElement.removeAttribute('dark'); + location.reload(); } } } From 0908dfe0b1d4d6f26d763cd0e55f54ec97cdff00 Mon Sep 17 00:00:00 2001 From: Mohamed Lebda Date: Sat, 25 Feb 2023 19:38:57 +0200 Subject: [PATCH 0794/1224] Merge changes from upstream --- background.js | 34 +++++++++++-------- content-scripts/extension-context/init.js | 11 ++++-- content-scripts/website-context/core.js | 3 -- .../youtube-features/appearance.js | 6 ++-- 4 files changed, 31 insertions(+), 23 deletions(-) diff --git a/background.js b/background.js index e3669d451..140e143a9 100644 --- a/background.js +++ b/background.js @@ -196,21 +196,25 @@ chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) { if (action === "play") { chrome.tabs.query({}, function (tabs) { if (tabs.length > prevTabsLength) { - prevTabsLength++; - } else if (tabs.length < prevTabsLength){ - prevTabsLength--; - }else{ - for (var i = 0, l = tabs.length; i < l; i++) { - prevTabsLength = tabs.length; - var tab = tabs[i]; - - if (sender.tab.id !== tab.id) { - chrome.tabs.sendMessage(tab.id, { - action: "another-video-started-playing", - }); - } - } - } + prevTabsLength = tabs.length; + for (var i = 0, l = tabs.length; i < l; i++) { + var tab = tabs[i]; + chrome.tabs.sendMessage(tab.id, { + action: "new-tab-opened", + }); + } + } else { + prevTabsLength = tabs.length; + } + for (var i = 0, l = tabs.length; i < l; i++) { + var tab = tabs[i]; + + if (sender.tab.id !== tab.id) { + chrome.tabs.sendMessage(tab.id, { + action: "another-video-started-playing", + }); + } + } }); } else if (action === 'options-page-connected') { sendResponse({ diff --git a/content-scripts/extension-context/init.js b/content-scripts/extension-context/init.js index 87d2e8bd8..051a0e4c1 100644 --- a/content-scripts/extension-context/init.js +++ b/content-scripts/extension-context/init.js @@ -80,7 +80,7 @@ document.addEventListener('DOMContentLoaded', function () { bodyReady(); }); - +let prevRequestAction = ""; chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { if (request.action === 'focus') { extension.messages.send({ @@ -112,11 +112,16 @@ chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { extension.messages.send({ deleteCookies: true }); - } else if (request.action === "another-video-started-playing") { + } else if ( + request.action === "another-video-started-playing" && + prevRequestAction === "new-tab-opened" + ) { + console.log("Continue playing"); + } else if (request.action === "another-video-started-playing") { extension.features.onlyOnePlayerInstancePlaying(); } - + prevRequestAction = request.action; }); document.addEventListener('it-message-from-youtube', function () { diff --git a/content-scripts/website-context/core.js b/content-scripts/website-context/core.js index 1a1046db7..b4da33a1b 100644 --- a/content-scripts/website-context/core.js +++ b/content-scripts/website-context/core.js @@ -181,9 +181,6 @@ document.addEventListener('it-message-from-extension', function () { } } } - if(ImprovedTube.storage.only_one_player_instance_playing === true){ - ImprovedTube.storage = {...ImprovedTube.storage, player_autoplay: false, playlist_autoplay: false} - } }); /*-------------------------------------------------------------- diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index c1967bd29..ff7249a21 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -284,9 +284,11 @@ ImprovedTube.channelVideosCount = function () { 4.2.3.3 DESCRIPTION ------------------------------------------------------------------------------*/ -ImprovedTube.description = function (el) { +ImprovedTube.description = function () { if (this.storage.description === "expanded") { - el.click(); + document.querySelector("#more").click(); + }else if(this.storage.description === "normal"){ + document.querySelector("#less").click(); } }; From 9afcc3213c10dd3e39c610b41e1aa137f19c4ef7 Mon Sep 17 00:00:00 2001 From: Mohamed Lebda Date: Sat, 25 Feb 2023 19:53:57 +0200 Subject: [PATCH 0795/1224] fixed issu #1400 --- background.js | 34 ++++++++----------- content-scripts/extension-context/init.js | 11 ++---- content-scripts/website-context/core.js | 3 ++ .../youtube-features/appearance.js | 6 ++-- 4 files changed, 23 insertions(+), 31 deletions(-) diff --git a/background.js b/background.js index 140e143a9..e3669d451 100644 --- a/background.js +++ b/background.js @@ -196,25 +196,21 @@ chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) { if (action === "play") { chrome.tabs.query({}, function (tabs) { if (tabs.length > prevTabsLength) { - prevTabsLength = tabs.length; - for (var i = 0, l = tabs.length; i < l; i++) { - var tab = tabs[i]; - chrome.tabs.sendMessage(tab.id, { - action: "new-tab-opened", - }); - } - } else { - prevTabsLength = tabs.length; - } - for (var i = 0, l = tabs.length; i < l; i++) { - var tab = tabs[i]; - - if (sender.tab.id !== tab.id) { - chrome.tabs.sendMessage(tab.id, { - action: "another-video-started-playing", - }); - } - } + prevTabsLength++; + } else if (tabs.length < prevTabsLength){ + prevTabsLength--; + }else{ + for (var i = 0, l = tabs.length; i < l; i++) { + prevTabsLength = tabs.length; + var tab = tabs[i]; + + if (sender.tab.id !== tab.id) { + chrome.tabs.sendMessage(tab.id, { + action: "another-video-started-playing", + }); + } + } + } }); } else if (action === 'options-page-connected') { sendResponse({ diff --git a/content-scripts/extension-context/init.js b/content-scripts/extension-context/init.js index 051a0e4c1..87d2e8bd8 100644 --- a/content-scripts/extension-context/init.js +++ b/content-scripts/extension-context/init.js @@ -80,7 +80,7 @@ document.addEventListener('DOMContentLoaded', function () { bodyReady(); }); -let prevRequestAction = ""; + chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { if (request.action === 'focus') { extension.messages.send({ @@ -112,16 +112,11 @@ chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { extension.messages.send({ deleteCookies: true }); - } else if ( - request.action === "another-video-started-playing" && - prevRequestAction === "new-tab-opened" - ) { - console.log("Continue playing"); - } else if (request.action === "another-video-started-playing") { + } else if (request.action === "another-video-started-playing") { extension.features.onlyOnePlayerInstancePlaying(); } - prevRequestAction = request.action; + }); document.addEventListener('it-message-from-youtube', function () { diff --git a/content-scripts/website-context/core.js b/content-scripts/website-context/core.js index b4da33a1b..1a1046db7 100644 --- a/content-scripts/website-context/core.js +++ b/content-scripts/website-context/core.js @@ -181,6 +181,9 @@ document.addEventListener('it-message-from-extension', function () { } } } + if(ImprovedTube.storage.only_one_player_instance_playing === true){ + ImprovedTube.storage = {...ImprovedTube.storage, player_autoplay: false, playlist_autoplay: false} + } }); /*-------------------------------------------------------------- diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index ff7249a21..c1967bd29 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -284,11 +284,9 @@ ImprovedTube.channelVideosCount = function () { 4.2.3.3 DESCRIPTION ------------------------------------------------------------------------------*/ -ImprovedTube.description = function () { +ImprovedTube.description = function (el) { if (this.storage.description === "expanded") { - document.querySelector("#more").click(); - }else if(this.storage.description === "normal"){ - document.querySelector("#less").click(); + el.click(); } }; From ad9bf7aa68eccc1c21496cdfc56a92bfac797f03 Mon Sep 17 00:00:00 2001 From: Mohamed Lebda Date: Sat, 25 Feb 2023 20:18:52 +0200 Subject: [PATCH 0796/1224] fix issue #1400 --- .../website-context/youtube-features/appearance.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index c1967bd29..7c19a05d7 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -286,15 +286,13 @@ ImprovedTube.channelVideosCount = function () { ImprovedTube.description = function (el) { if (this.storage.description === "expanded") { - el.click(); + document.querySelector("#more").click(); + }else if (this.storage.description === "normal") { + document.querySelector("#less").click(); } }; -/*------------------------------------------------------------------------------ -4.2.3.4 HIDE DETAIL BUTTON -------------------------------------------------------------------------------*/ - -ImprovedTube.hideDetailButton = function (el) { +/*------------------ailButton = function (el) { setTimeout(function () { for (var i = 2; i < el.length; i++) { tmp = el[i].querySelector("g.yt-icon path").attributes.d.textContent.split(" ")[0]; From 8b4be7871c7c2ddde0a3e0e2c4c6eaabc6625475 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 27 Feb 2023 01:23:31 +0100 Subject: [PATCH 0797/1224] Revert "Modification to fix issue #1516" --- background.js | 34 +++++++++++-------- content-scripts/extension-context/init.js | 11 ++++-- content-scripts/website-context/core.js | 3 -- .../youtube-features/appearance.js | 10 +++--- 4 files changed, 33 insertions(+), 25 deletions(-) diff --git a/background.js b/background.js index e3669d451..140e143a9 100644 --- a/background.js +++ b/background.js @@ -196,21 +196,25 @@ chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) { if (action === "play") { chrome.tabs.query({}, function (tabs) { if (tabs.length > prevTabsLength) { - prevTabsLength++; - } else if (tabs.length < prevTabsLength){ - prevTabsLength--; - }else{ - for (var i = 0, l = tabs.length; i < l; i++) { - prevTabsLength = tabs.length; - var tab = tabs[i]; - - if (sender.tab.id !== tab.id) { - chrome.tabs.sendMessage(tab.id, { - action: "another-video-started-playing", - }); - } - } - } + prevTabsLength = tabs.length; + for (var i = 0, l = tabs.length; i < l; i++) { + var tab = tabs[i]; + chrome.tabs.sendMessage(tab.id, { + action: "new-tab-opened", + }); + } + } else { + prevTabsLength = tabs.length; + } + for (var i = 0, l = tabs.length; i < l; i++) { + var tab = tabs[i]; + + if (sender.tab.id !== tab.id) { + chrome.tabs.sendMessage(tab.id, { + action: "another-video-started-playing", + }); + } + } }); } else if (action === 'options-page-connected') { sendResponse({ diff --git a/content-scripts/extension-context/init.js b/content-scripts/extension-context/init.js index 87d2e8bd8..051a0e4c1 100644 --- a/content-scripts/extension-context/init.js +++ b/content-scripts/extension-context/init.js @@ -80,7 +80,7 @@ document.addEventListener('DOMContentLoaded', function () { bodyReady(); }); - +let prevRequestAction = ""; chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { if (request.action === 'focus') { extension.messages.send({ @@ -112,11 +112,16 @@ chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { extension.messages.send({ deleteCookies: true }); - } else if (request.action === "another-video-started-playing") { + } else if ( + request.action === "another-video-started-playing" && + prevRequestAction === "new-tab-opened" + ) { + console.log("Continue playing"); + } else if (request.action === "another-video-started-playing") { extension.features.onlyOnePlayerInstancePlaying(); } - + prevRequestAction = request.action; }); document.addEventListener('it-message-from-youtube', function () { diff --git a/content-scripts/website-context/core.js b/content-scripts/website-context/core.js index 06b0ab75d..32032de58 100644 --- a/content-scripts/website-context/core.js +++ b/content-scripts/website-context/core.js @@ -183,9 +183,6 @@ document.addEventListener('it-message-from-extension', function () { } } } - if(ImprovedTube.storage.only_one_player_instance_playing === true){ - ImprovedTube.storage = {...ImprovedTube.storage, player_autoplay: false, playlist_autoplay: false} - } }); /*-------------------------------------------------------------- diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index 7c19a05d7..c1967bd29 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -286,13 +286,15 @@ ImprovedTube.channelVideosCount = function () { ImprovedTube.description = function (el) { if (this.storage.description === "expanded") { - document.querySelector("#more").click(); - }else if (this.storage.description === "normal") { - document.querySelector("#less").click(); + el.click(); } }; -/*------------------ailButton = function (el) { +/*------------------------------------------------------------------------------ +4.2.3.4 HIDE DETAIL BUTTON +------------------------------------------------------------------------------*/ + +ImprovedTube.hideDetailButton = function (el) { setTimeout(function () { for (var i = 2; i < el.length; i++) { tmp = el[i].querySelector("g.yt-icon path").attributes.d.textContent.split(" ")[0]; From 09e6e6b18213d048e4fdd466803384cb23578b4d Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Wed, 1 Mar 2023 08:53:54 +0100 Subject: [PATCH 0798/1224] Update manifest.json --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 5a2939bea..19f1016a7 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "'Improve YouTube!' Video Tools", "description": "__MSG_description_ext__", - "version": "4.0.1", + "version": "4.0.2", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From 7f6d66c7d2e2627ba932411c27198353fdfc6bc6 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 2 Mar 2023 08:39:42 +0100 Subject: [PATCH 0799/1224] Create manifest2.js --- manifest2.js | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 manifest2.js diff --git a/manifest2.js b/manifest2.js new file mode 100644 index 000000000..030c665d3 --- /dev/null +++ b/manifest2.js @@ -0,0 +1,83 @@ +{ + "manifest_version": 2, + "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", + "short_name": "ImprovedTube", + "description": "__MSG_description_ext__", + "version": "4.0.35", + "default_locale": "en", + "icons": { + + "16": "assets/icons/16.png", + "32": "assets/icons/32.png", + "48": "assets/icons/48.png", + "128": "assets/icons/128.png" + }, + "background": { + "scripts": [ + "background.js" + ] + }, + "browser_action": { + "default_popup": "options-page/index.html" + }, + "options_page": "options-page/index.html", + "content_scripts": [ + { + "all_frames": true, + "css": [ + "content-scripts/extension-context/youtube-features/content-styles.css", + "content-scripts/extension-context/youtube-features/night-mode/night-mode.css", + "content-scripts/extension-context/youtube-features/general/general.css", + "content-scripts/extension-context/youtube-features/appearance/header/header.css", + "content-scripts/extension-context/youtube-features/appearance/player/player.css", + "content-scripts/extension-context/youtube-features/appearance/details/details.css", + "content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css", + "content-scripts/extension-context/youtube-features/appearance/comments/comments.css", + "content-scripts/extension-context/youtube-features/appearance/footer/footer.css" + ], + "exclude_matches": [ + "https://www.youtube.com/audiolibrary/*", + "https://www.youtube.com/tv*" + ], + "js": [ + "assets/satus/satus.js", + "content-scripts/extension-context/core.js", + "content-scripts/extension-context/functions.js", + "content-scripts/extension-context/youtube-features/night-mode/night-mode.js", + "content-scripts/extension-context/youtube-features/general/general.js", + "content-scripts/extension-context/youtube-features/appearance/player/player.js", + "content-scripts/extension-context/youtube-features/appearance/details/details.js", + "content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.js", + "content-scripts/extension-context/youtube-features/appearance/comments/comments.js", + "content-scripts/extension-context/init.js" + ], + "matches": [ + "https://www.youtube.com/*" + ], + "run_at": "document_start" + } + ], + "offline_enabled": true, + "optional_permissions": [ + "downloads" + ], + "permissions": [ + "contextMenus", + "storage" + ], + "web_accessible_resources": [ + "options-page/index.html", + "content-scripts/website-context/core.js", + "content-scripts/website-context/functions.js", + "content-scripts/website-context/youtube-features/appearance.js", + "content-scripts/website-context/youtube-features/themes.js", + "content-scripts/website-context/youtube-features/player.js", + "content-scripts/website-context/youtube-features/playlist.js", + "content-scripts/website-context/youtube-features/channel.js", + "content-scripts/website-context/youtube-features/shortcuts.js", + "content-scripts/website-context/youtube-features/blacklist.js", + "content-scripts/website-context/youtube-features/settings.js", + "content-scripts/website-context/init.js", + "content-scripts/website-context/mutations.js" + ] +} From 849c5bc7889dbd0dc2abc580eb4f759e23132513 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 2 Mar 2023 08:40:06 +0100 Subject: [PATCH 0800/1224] Rename manifest2.js to manifest2.json --- manifest2.js => manifest2.json | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename manifest2.js => manifest2.json (100%) diff --git a/manifest2.js b/manifest2.json similarity index 100% rename from manifest2.js rename to manifest2.json From fa608e1955da2cdd852d54fa601a7b6b9c504da6 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 4 Mar 2023 00:37:58 +0100 Subject: [PATCH 0801/1224] quick remedy #1589 #1592 --- .../website-context/youtube-features/shortcuts.js | 6 +++--- content-scripts/website-context/youtube-features/themes.js | 6 +++--- manifest.json | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/content-scripts/website-context/youtube-features/shortcuts.js index f2ad1521a..f54370712 100644 --- a/content-scripts/website-context/youtube-features/shortcuts.js +++ b/content-scripts/website-context/youtube-features/shortcuts.js @@ -612,13 +612,13 @@ ImprovedTube.shortcutSubscribe = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutDarkTheme = function () { - const pref = document.cookie.match(/PREF\=.*(f6=[^\&]+)/)[0]; + //const pref = document.cookie.match(/PREF\=.*(f6=[^\&]+)/)[0]; if (document.documentElement.hasAttribute('dark')) { - document.cookie = pref.replace(/(f6=)[^\&]+/, '$180000') + "; domain=.youtube.com"; + //document.cookie = pref.replace(/(f6=)[^\&]+/, '$180000') + "; domain=.youtube.com"; document.documentElement.removeAttribute('dark'); document.documentElement.removeAttribute('it-theme'); } else { - document.cookie = pref.replace(/(f6=)[^\&]+/, '$1400') + "; domain=.youtube.com"; + //document.cookie = pref.replace(/(f6=)[^\&]+/, '$1400') + "; domain=.youtube.com"; document.documentElement.setAttribute('dark', ''); document.documentElement.setAttribute('it-theme', 'true'); } diff --git a/content-scripts/website-context/youtube-features/themes.js b/content-scripts/website-context/youtube-features/themes.js index a9b2c5cff..690836b53 100644 --- a/content-scripts/website-context/youtube-features/themes.js +++ b/content-scripts/website-context/youtube-features/themes.js @@ -81,17 +81,17 @@ ImprovedTube.themes = function () { if (this.elements.my_colors) { this.elements.my_colors.remove(); } - const pref = document.cookie.match(/PREF\=.*(f6=[^\&]+)/)[0]; + //const pref = document.cookie.match(/PREF\=.*(f6=[^\&]+)/)[0]; if (this.storage.theme === 'dark' || this.storage.theme === 'black') { if (!document.documentElement.hasAttribute('dark')) { - document.cookie = pref.replace(/(f6=)[^\&]+/, '$1400') + "; domain=.youtube.com"; + //document.cookie = pref.replace(/(f6=)[^\&]+/, '$1400') + "; domain=.youtube.com"; document.documentElement.setAttribute('dark', ''); location.reload(); } } else { if (document.documentElement.hasAttribute('dark')) { - document.cookie = pref.replace(/(f6=)[^\&]+/, '$180000') + "; domain=.youtube.com"; + //document.cookie = pref.replace(/(f6=)[^\&]+/, '$180000') + "; domain=.youtube.com"; document.documentElement.removeAttribute('dark'); location.reload(); } diff --git a/manifest.json b/manifest.json index 19f1016a7..fc63c0b40 100644 --- a/manifest.json +++ b/manifest.json @@ -1,8 +1,8 @@ { "manifest_version": 3, - "name": "'Improve YouTube!' Video Tools", + "name": "'Improve YouTube!' (for YouTube & Videos)", "description": "__MSG_description_ext__", - "version": "4.0.2", + "version": "4.0.36", "default_locale": "en", "icons": { "128": "assets/icons/128.png", From d765441f8a7601d3e44bfd158079f85dd8f38975 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 4 Mar 2023 00:52:19 +0100 Subject: [PATCH 0802/1224] title --- manifest.json | 2 +- manifest2.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/manifest.json b/manifest.json index fc63c0b40..a5fb34e83 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "manifest_version": 3, - "name": "'Improve YouTube!' (for YouTube & Videos)", + "name": "'Improve YouTube!'🎧(for YouTube & Videos)", "description": "__MSG_description_ext__", "version": "4.0.36", "default_locale": "en", diff --git a/manifest2.json b/manifest2.json index 030c665d3..654e4497a 100644 --- a/manifest2.json +++ b/manifest2.json @@ -1,9 +1,9 @@ { "manifest_version": 2, - "name": "'Improve YouTube!' (Video & YouTube Tools)🎧", + "name": "'Improve YouTube!'🎧(for YouTube & Videos)", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "4.0.35", + "version": "4.0.36", "default_locale": "en", "icons": { From 0bb3835c37cf1e0298ecd5876e70454ef364778f Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 4 Mar 2023 03:03:48 +0100 Subject: [PATCH 0803/1224] pageType regex & order optimization (+a remedy for #1456) --- content-scripts/website-context/functions.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index fc3a60a95..66f989999 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -206,13 +206,13 @@ ImprovedTube.ytElementsHandler = function (node) { }; ImprovedTube.pageType = function () { - if (location.pathname === '/') { + if (/^\/watch\?/.test(location.href)) { + document.documentElement.dataset.pageType = 'video'; + } else if (location.pathname === '/') { document.documentElement.dataset.pageType = 'home'; - } else if (/\/subscriptions\?/.test(location.href)) { + } else if (/^\/subscriptions\?/.test(location.href)) { document.documentElement.dataset.pageType = 'subscriptions'; - } else if (/\/watch\?/.test(location.href)) { - document.documentElement.dataset.pageType = 'video'; - } else if (/\/channel|\/user|\/c\/|\/@.*\//.test(location.href)) { + } else if (/^\/channel|\/user|\/c\/|\/@(?!video)/.test(location.href)) { document.documentElement.dataset.pageType = 'channel'; } else { document.documentElement.dataset.pageType = 'other'; From a7531a1e55aeb71524196cb52b8d8d8e6794ec82 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 4 Mar 2023 03:29:00 +0100 Subject: [PATCH 0804/1224] typo --- content-scripts/website-context/functions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index 66f989999..6e681c062 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -212,7 +212,7 @@ ImprovedTube.pageType = function () { document.documentElement.dataset.pageType = 'home'; } else if (/^\/subscriptions\?/.test(location.href)) { document.documentElement.dataset.pageType = 'subscriptions'; - } else if (/^\/channel|\/user|\/c\/|\/@(?!video)/.test(location.href)) { + } else if (/^\/channel|\/user|\/c\/|\/@(?!\/videos)/.test(location.href)) { document.documentElement.dataset.pageType = 'channel'; } else { document.documentElement.dataset.pageType = 'other'; From e37c55a986c326aef21790535bf243c4be29bdd7 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 4 Mar 2023 10:43:10 +0800 Subject: [PATCH 0805/1224] Fix theme cookie error Rewrite the whole theme cookie setting code, now it will use ImprovedTube.setCookie() --- .../youtube-features/shortcuts.js | 17 +++++++++++--- .../youtube-features/themes.js | 23 +++++++++++++------ 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/content-scripts/website-context/youtube-features/shortcuts.js index f54370712..6b3cfded4 100644 --- a/content-scripts/website-context/youtube-features/shortcuts.js +++ b/content-scripts/website-context/youtube-features/shortcuts.js @@ -612,16 +612,27 @@ ImprovedTube.shortcutSubscribe = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutDarkTheme = function () { - //const pref = document.cookie.match(/PREF\=.*(f6=[^\&]+)/)[0]; + pref = ''; + cookieValue = '400'; + if (document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)) { + pref = document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)[1]; + } + if (document.documentElement.hasAttribute('dark')) { - //document.cookie = pref.replace(/(f6=)[^\&]+/, '$180000') + "; domain=.youtube.com"; + cookieValue = '80000'; document.documentElement.removeAttribute('dark'); document.documentElement.removeAttribute('it-theme'); } else { - //document.cookie = pref.replace(/(f6=)[^\&]+/, '$1400') + "; domain=.youtube.com"; document.documentElement.setAttribute('dark', ''); document.documentElement.setAttribute('it-theme', 'true'); } + + if (pref.match(/(f6=)[^\&]+/)){ + cookieValue = pref.replace(/(f6=)[^\&]+/, cookieValue); + } else { + cookieValue = pref + "&f6=" + cookieValue; + } + ImprovedTube.setCookie('PREF', cookieValue); }; diff --git a/content-scripts/website-context/youtube-features/themes.js b/content-scripts/website-context/youtube-features/themes.js index 690836b53..79538df57 100644 --- a/content-scripts/website-context/youtube-features/themes.js +++ b/content-scripts/website-context/youtube-features/themes.js @@ -81,20 +81,29 @@ ImprovedTube.themes = function () { if (this.elements.my_colors) { this.elements.my_colors.remove(); } - //const pref = document.cookie.match(/PREF\=.*(f6=[^\&]+)/)[0]; + + pref = ''; + cookieValue = '400'; + if (document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)) { + pref = document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)[1]; + } + if (this.storage.theme === 'dark' || this.storage.theme === 'black') { if (!document.documentElement.hasAttribute('dark')) { - //document.cookie = pref.replace(/(f6=)[^\&]+/, '$1400') + "; domain=.youtube.com"; document.documentElement.setAttribute('dark', ''); - location.reload(); } - } - else { + } else { if (document.documentElement.hasAttribute('dark')) { - //document.cookie = pref.replace(/(f6=)[^\&]+/, '$180000') + "; domain=.youtube.com"; + cookieValue = '80000'; document.documentElement.removeAttribute('dark'); - location.reload(); } } + + if (pref.match(/(f6=)[^\&]+/)){ + cookieValue = pref.replace(/(f6=)[^\&]+/, cookieValue); + } else { + cookieValue = pref + "&f6=" + cookieValue; + } + ImprovedTube.setCookie('PREF', cookieValue); } }; \ No newline at end of file From 0e293ccabd4abec5e1e72c608327a95d9f55049d Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 4 Mar 2023 10:48:14 +0800 Subject: [PATCH 0806/1224] Fix player element overlap Port #1372 to V4 --- .../extension-context/youtube-features/general/general.css | 5 ----- 1 file changed, 5 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/general/general.css b/content-scripts/extension-context/youtube-features/general/general.css index eca711e60..31e8935f5 100644 --- a/content-scripts/extension-context/youtube-features/general/general.css +++ b/content-scripts/extension-context/youtube-features/general/general.css @@ -197,17 +197,12 @@ html[it-limit-page-width='false'] ytd-watch-flexy:not([fullscreen]) #primary.ytd html[it-limit-page-width='false'] ytd-watch-flexy:not([fullscreen]) #player-container-outer.ytd-watch-flexy { max-width: 100% !important; - max-height: var(--ytd-watch-flexy-max-player-height) !important; } html[it-limit-page-width='false'] ytd-watch-flexy:not([fullscreen]) #player-container-inner.ytd-watch-flexy { padding-top: calc(var(--ytd-watch-flexy-max-player-height) + 45px) !important; } -html[it-limit-page-width='false'] ytd-watch-flexy:not([fullscreen]) #player { - padding-bottom: 45px !important; -} - html[it-limit-page-width='false'] ytd-watch-flexy:not([fullscreen]) .html5-video-container { width: 100% !important; height: 100% !important; From 88094c853468f5eda22136a0287c5a8a25aca663 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 4 Mar 2023 04:43:04 +0100 Subject: [PATCH 0807/1224] 1. location.pathname is shorter to regex than location.href 2. new channel url update --- content-scripts/website-context/core.js | 6 +++--- content-scripts/website-context/functions.js | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/content-scripts/website-context/core.js b/content-scripts/website-context/core.js index 4280f8b51..f718a867b 100644 --- a/content-scripts/website-context/core.js +++ b/content-scripts/website-context/core.js @@ -30,12 +30,12 @@ var ImprovedTube = { blacklist_buttons: [] }, regex: { - channel: new RegExp('\/(user|channel|c)\/'), - channel_home_page: new RegExp('\/(\@|user\/|channel\/|c\/).+(\/featured)?\/?$'), + channel: new RegExp('\/(@|((channel|user|c)\/))'), + channel_home_page: new RegExp('\/(@|((channel|user|c)\/))[^/]+(\/featured)?\/?$'), channel_home_page_postfix: new RegExp('\/(featured)?\/?$'), thumbnail_quality: new RegExp('(default\.jpg|mqdefault\.jpg|hqdefault\.jpg|hq720\.jpg|sddefault\.jpg|maxresdefault\.jpg)+'), video_id: new RegExp('[?&]v=([^&]+)'), - channel_link: new RegExp('https:\/\/www.youtube.com\/(channel|user|c)\/') + channel_link: new RegExp('https:\/\/www.youtube.com\/(@|((channel|user|c)\/))') }, video_src: false, initialVideoUpdateDone: false, diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index 6e681c062..e24d828b4 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -26,7 +26,7 @@ ImprovedTube.ytElementsHandler = function (node) { if (node.className.indexOf('ytd-thumbnail') !== -1) { this.blacklist('video', node); } - if (node.href.match(/(channel|user|c)\/([^/]+)/)) { + if (node.href.match(/@|((channel|user|c)\/))([^/]+)/)) { this.blacklist('channel', node); } } @@ -206,13 +206,13 @@ ImprovedTube.ytElementsHandler = function (node) { }; ImprovedTube.pageType = function () { - if (/^\/watch\?/.test(location.href)) { + if (/^\/watch\?/.test(location.pathname)) { document.documentElement.dataset.pageType = 'video'; } else if (location.pathname === '/') { document.documentElement.dataset.pageType = 'home'; - } else if (/^\/subscriptions\?/.test(location.href)) { + } else if (/^\/subscriptions\?/.test(location.pathname)) { document.documentElement.dataset.pageType = 'subscriptions'; - } else if (/^\/channel|\/user|\/c\/|\/@(?!\/videos)/.test(location.href)) { + } else if (/^\/(@|((channel|user|c)\/))[^/]+(?!\/videos)/.test(location.pathname)) { document.documentElement.dataset.pageType = 'channel'; } else { document.documentElement.dataset.pageType = 'other'; From 9a2b2feab8ae0f1137ee89842f71885954cae679 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 4 Mar 2023 04:57:55 +0100 Subject: [PATCH 0808/1224] typo --- content-scripts/website-context/core.js | 6 +++--- content-scripts/website-context/functions.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/content-scripts/website-context/core.js b/content-scripts/website-context/core.js index f718a867b..3294118df 100644 --- a/content-scripts/website-context/core.js +++ b/content-scripts/website-context/core.js @@ -30,12 +30,12 @@ var ImprovedTube = { blacklist_buttons: [] }, regex: { - channel: new RegExp('\/(@|((channel|user|c)\/))'), - channel_home_page: new RegExp('\/(@|((channel|user|c)\/))[^/]+(\/featured)?\/?$'), + channel: new RegExp('\/(@|((channel|user|c)\/)))'), + channel_home_page: new RegExp('\/(@|((channel|user|c)\/)))[^/]+(\/featured)?\/?$'), channel_home_page_postfix: new RegExp('\/(featured)?\/?$'), thumbnail_quality: new RegExp('(default\.jpg|mqdefault\.jpg|hqdefault\.jpg|hq720\.jpg|sddefault\.jpg|maxresdefault\.jpg)+'), video_id: new RegExp('[?&]v=([^&]+)'), - channel_link: new RegExp('https:\/\/www.youtube.com\/(@|((channel|user|c)\/))') + channel_link: new RegExp('https:\/\/www.youtube.com\/(@|((channel|user|c)\/)))') }, video_src: false, initialVideoUpdateDone: false, diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index e24d828b4..fc3e710da 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -212,7 +212,7 @@ ImprovedTube.pageType = function () { document.documentElement.dataset.pageType = 'home'; } else if (/^\/subscriptions\?/.test(location.pathname)) { document.documentElement.dataset.pageType = 'subscriptions'; - } else if (/^\/(@|((channel|user|c)\/))[^/]+(?!\/videos)/.test(location.pathname)) { + } else if (/^\/(@|((channel|user|c)\/)))[^/]+(?!\/videos)/.test(location.pathname)) { document.documentElement.dataset.pageType = 'channel'; } else { document.documentElement.dataset.pageType = 'other'; From ee36bfc23c9818f847201036e801527211006a82 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 4 Mar 2023 12:41:02 +0800 Subject: [PATCH 0809/1224] Fixed hideDetailButton() error & update hide detail button CSS --- .../appearance/details/details.css | 60 +++++++++---------- content-scripts/website-context/functions.js | 8 ++- .../youtube-features/appearance.js | 25 +++----- 3 files changed, 44 insertions(+), 49 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/content-scripts/extension-context/youtube-features/appearance/details/details.css index 4057add91..2a2a94753 100644 --- a/content-scripts/extension-context/youtube-features/appearance/details/details.css +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.css @@ -56,13 +56,13 @@ html[it-hide-date='true'] ytd-watch-metadata #info>span:last-child { HIDE LIKE BUTTON --------------------------------------------------------------*/ -html[it-likes='hidden'] #info #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1), -html[it-likes='icons_only'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) div.cbox { +html[it-likes='hidden'] #top-level-buttons-computed #segmented-like-button ytd-toggle-button-renderer, +html[it-likes='icons_only'] #top-level-buttons-computed #segmented-like-button ytd-toggle-button-renderer div.cbox { display: none; } -html[it-likes='icons_only'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) .yt-spec-button-shape-next__icon, -html[it-likes='icons_only'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(1) button{ +html[it-likes='icons_only'] #top-level-buttons-computed #segmented-like-button ytd-toggle-button-renderer .yt-spec-button-shape-next__icon, +html[it-likes='icons_only'] #top-level-buttons-computed #segmented-like-button ytd-toggle-button-renderer button{ margin: 0; padding: 0 5px; } @@ -72,13 +72,13 @@ html[it-likes='icons_only'] #top-level-buttons-computed ytd-toggle-button-render HIDE DISLIKE BUTTON --------------------------------------------------------------*/ -html[it-hide-dislike-button='hidden'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2), -html[it-hide-dislike-button='icons_only'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) div.cbox { +html[it-hide-dislike-button='hidden'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer, +html[it-hide-dislike-button='icons_only'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer div.cbox { display: none; } -html[it-hide-dislike-button='icons_only'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) .yt-spec-button-shape-next__icon, -html[it-hide-dislike-button='icons_only'] #top-level-buttons-computed ytd-toggle-button-renderer:nth-child(2) button{ +html[it-hide-dislike-button='icons_only'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer .yt-spec-button-shape-next__icon, +html[it-hide-dislike-button='icons_only'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer button{ margin: 0; padding: 0 5px; } @@ -88,13 +88,13 @@ html[it-hide-dislike-button='icons_only'] #top-level-buttons-computed ytd-toggle # HIDE SHARE BUTTON --------------------------------------------------------------*/ -html[it-hide-share-button='hidden'] #top-level-buttons-computed ytd-button-renderer#Share-button, -html[it-hide-share-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Share-button div.cbox { +html[it-hide-share-button='hidden'] #top-level-buttons-computed ytd-button-renderer, +html[it-hide-share-button='icons_only'] #top-level-buttons-computed ytd-button-renderer div.cbox { display: none; } -html[it-hide-share-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Share-button .yt-spec-button-shape-next__icon, -html[it-hide-share-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Share-button button{ +html[it-hide-share-button='icons_only'] #top-level-buttons-computed ytd-button-renderer .yt-spec-button-shape-next__icon, +html[it-hide-share-button='icons_only'] #top-level-buttons-computed ytd-button-renderer button{ margin: 0; padding: 0 5px; } @@ -104,13 +104,13 @@ html[it-hide-share-button='icons_only'] #top-level-buttons-computed ytd-button-r # HIDE DOWNLOAD BUTTON --------------------------------------------------------------*/ -html[it-hide-download-button='hidden'] #top-level-buttons-computed ytd-download-button-renderer, -html[it-hide-download-button='icons_only'] #top-level-buttons-computed ytd-download-button-renderer div.cbox { +html[it-hide-download-button='hidden'] #flexible-item-buttons ytd-download-button-renderer, +html[it-hide-download-button='icons_only'] #flexible-item-buttons ytd-download-button-renderer div.cbox { display: none; } -html[it-hide-download-button='icons_only'] #top-level-buttons-computed ytd-download-button-renderer .yt-spec-button-shape-next__icon, -html[it-hide-download-button='icons_only'] #top-level-buttons-computed ytd-download-button-renderer button{ +html[it-hide-download-button='icons_only'] #flexible-item-buttons ytd-download-button-renderer .yt-spec-button-shape-next__icon, +html[it-hide-download-button='icons_only'] #flexible-item-buttons ytd-download-button-renderer button{ margin: 0; padding: 0 5px; } @@ -120,13 +120,13 @@ html[it-hide-download-button='icons_only'] #top-level-buttons-computed ytd-downl # HIDE THANKS BUTTON --------------------------------------------------------------*/ -html[it-hide-thanks-button='hidden'] #top-level-buttons-computed ytd-button-renderer#Thanks-button, -html[it-hide-thanks-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Thanks-button div.cbox { +html[it-hide-thanks-button='hidden'] #flexible-item-buttons ytd-button-renderer#Thanks-button, +html[it-hide-thanks-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Thanks-button div.cbox { display: none; } -html[it-hide-thanks-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Thanks-button .yt-spec-button-shape-next__icon, -html[it-hide-thanks-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Thanks-button button{ +html[it-hide-thanks-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Thanks-button .yt-spec-button-shape-next__icon, +html[it-hide-thanks-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Thanks-button button{ margin: 0; padding: 0 5px; } @@ -136,13 +136,13 @@ html[it-hide-thanks-button='icons_only'] #top-level-buttons-computed ytd-button- # HIDE CLIP BUTTON --------------------------------------------------------------*/ -html[it-hide-clip-button='hidden'] #top-level-buttons-computed ytd-button-renderer#Clip-button, -html[it-hide-clip-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Clip-button div.cbox { +html[it-hide-clip-button='hidden'] #flexible-item-buttons ytd-button-renderer#Clip-button, +html[it-hide-clip-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Clip-button div.cbox { display: none; } -html[it-hide-clip-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Clip-button .yt-spec-button-shape-next__icon, -html[it-hide-clip-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Clip-button button{ +html[it-hide-clip-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Clip-button .yt-spec-button-shape-next__icon, +html[it-hide-clip-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Clip-button button{ margin: 0; padding: 0 5px; } @@ -152,13 +152,13 @@ html[it-hide-clip-button='icons_only'] #top-level-buttons-computed ytd-button-re # HIDE SAVE BUTTON --------------------------------------------------------------*/ -html[it-hide-save-button='hidden'] #top-level-buttons-computed ytd-button-renderer#Save-button, -html[it-hide-save-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Save-button div.cbox { +html[it-hide-save-button='hidden'] #flexible-item-buttons ytd-button-renderer#Save-button, +html[it-hide-save-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Save-button div.cbox { display: none; } -html[it-hide-save-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Save-button .yt-spec-button-shape-next__icon, -html[it-hide-save-button='icons_only'] #top-level-buttons-computed ytd-button-renderer#Save-button button{ +html[it-hide-save-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Save-button .yt-spec-button-shape-next__icon, +html[it-hide-save-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Save-button button{ margin: 0; padding: 0 5px; } @@ -168,7 +168,7 @@ html[it-hide-save-button='icons_only'] #top-level-buttons-computed ytd-button-re # HIDE REPORT BUTTON --------------------------------------------------------------*/ -html[it-hide-report-button='hidden'] #top-level-buttons-computed ytd-button-renderer#Report-button { +html[it-hide-report-button='true'] #top-level-buttons-computed ytd-button-renderer#Report-button { display: none; } @@ -177,7 +177,7 @@ html[it-hide-report-button='hidden'] #top-level-buttons-computed ytd-button-rend # HIDE MORE BUTTON --------------------------------------------------------------*/ -html[it-hide-more-button='hidden'] #menu yt-button-shape#button-shape { +html[it-hide-more-button='true'] #menu yt-button-shape#button-shape { display: none; } diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index 828057a73..3db152e3a 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -69,9 +69,7 @@ ImprovedTube.ytElementsHandler = function (node) { this.improvedtubeYoutubeIcon(); this.improvedtubeYoutubeButtonsUnderPlayer(); - if(document.documentElement.dataset.pageType === 'video'){ - this.hideDetailButton(node.querySelector('#menu #top-level-buttons-computed').children); - } + } else if (name === 'YTD-VIDEO-SECONDARY-INFO-RENDERER') { this.elements.yt_channel_name = node.querySelector('ytd-channel-name'); this.elements.yt_channel_link = node.querySelector('ytd-channel-name a'); @@ -80,6 +78,10 @@ ImprovedTube.ytElementsHandler = function (node) { this.howLongAgoTheVideoWasUploaded(); this.channelVideosCount(); } + } else if (name === 'YTD-MENU-RENDERER' && node.classList.contains('ytd-video-primary-info-renderer')) { + if(document.documentElement.dataset.pageType === 'video'){ + this.hideDetailButton(node.$['flexible-item-buttons'].children); + } } else if (name === 'YTD-SUBSCRIBE-BUTTON-RENDERER') { if (node.className.indexOf('ytd-c4-tabbed-header-renderer') !== -1) { ImprovedTube.blacklist('channel', node); diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index c1967bd29..395a0c293 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -295,22 +295,15 @@ ImprovedTube.description = function (el) { ------------------------------------------------------------------------------*/ ImprovedTube.hideDetailButton = function (el) { - setTimeout(function () { - for (var i = 2; i < el.length; i++) { - tmp = el[i].querySelector("g.yt-icon path").attributes.d.textContent.split(" ")[0]; - if (tmp === "M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z") { - el[i].setAttribute("id", "Save-button"); - } else if (tmp === "M8,7c0,0.55-0.45,1-1,1S6,7.55,6,7c0-0.55,0.45-1,1-1S8,6.45,8,7z") { - el[i].setAttribute("id", "Clip-button"); - } else if (tmp === "M16.5,3C19.02,3,21,5.19,21,7.99c0,3.7-3.28,6.94-8.25,11.86L12,20.59l-0.74-0.73l-0.04-0.04C6.27,14.92,3,11.69,3,7.99") { - el[i].setAttribute("id", "Thanks-button"); - } else if (tmp === "M13.18,4l0.24,1.2L13.58,6h0.82H19v7h-5.18l-0.24-1.2L13.42,11H12.6H6V4H13.18") { - el[i].setAttribute("id", "Report-button"); - } else if (tmp === "M15,5.63L20.66,12L15,18.37V15v-1h-1c-3.96,0-7.14,1-9.75,3.09c1.84-4.07,5.11-6.4,9.89-7.1L15,9.86V9V5.63") { - el[i].setAttribute("id", "Share-button"); - } - } - }, 30); + if (el.length === 4) { + el[3].setAttribute("id", "Save-button"); + el[2].setAttribute("id", "Clip-button"); + el[1].setAttribute("id", "Thanks-button"); + } + else if (el.length === 3) { + el[2].setAttribute("id", "Save-button"); + el[1].setAttribute("id", "Clip-button"); + } }; /*-------------------------------------------------------------- From e9364a23c301b882c17bbce94fb9fdb6025b0bf2 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Sat, 4 Mar 2023 12:49:34 +0800 Subject: [PATCH 0810/1224] Fix ImprovedTube.description() error --- content-scripts/website-context/functions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index 3db152e3a..414874f1d 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -206,7 +206,7 @@ ImprovedTube.ytElementsHandler = function (node) { } //old }else if (name === 'TP-YT-PAPER-BUTTON') { - if (document.documentElement.dataset.pageType === 'video' && id === 'more' && node.parentNode.parentNode.id === 'container') { + if (document.documentElement.dataset.pageType === 'video' && id === 'more' && node.classList.contains('ytd-expander')) { setTimeout(function () { ImprovedTube.description(node); }, 750); From 92af3dfe94f2374a06bf240e87a09b659f0946c0 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 4 Mar 2023 07:14:52 +0100 Subject: [PATCH 0811/1224] fix --- .github/README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/README.md b/.github/README.md index b63dc12ab..9711db684 100644 --- a/.github/README.md +++ b/.github/README.md @@ -81,7 +81,7 @@ is a lightweight & powerful extension to enrich your experience & enable your ch - + - + - + - + - + @@ -59,8 +59,8 @@ For more info on how to contribute please see the -«Improve YouTube!»   

-/ImprovedTube/ +«Improve YouTube!»   

+/ImprovedTube/ is a lightweight & powerful extension to enrich your experience & enable your choice.

Date: Sun, 12 Mar 2023 14:38:11 +0100 Subject: [PATCH 0830/1224] Update README.md --- .github/README.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/README.md b/.github/README.md index c0f3b3d97..c670765bb 100644 --- a/.github/README.md +++ b/.github/README.md @@ -31,10 +31,7 @@

- - - -

Critiques

recommended by firefox -by (only ~ 100)
+by (only ~ 100)
'Might be the best YouTube Extension Ever'-
'enhances YouTube in meaningful ways'-
'Strong add-on, full control. Yet clear & easy'-
@@ -91,7 +91,7 @@ Big thanks ♡ to our

Roadmap

- + - Finding developers and patreons - All bugs & wishes - 🛈ToolTips & documentation @@ -109,6 +109,8 @@ Today adding something is easier & so motivating as there are 500 000 users. [[ - Smart player buttons for all \ - Smart content-filtering & discovery - Full-page GUI, watch-history, dashboard + - Integrating data [#1452](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1452), [SB](https://github.com/mchangrh/sb-mirror) / [NB](https://github.com/andrewzlee/NeuralBlock) etc. + - Integrating code / features like [YCS](https://github.com/sonigy/YCS), [YR](https://github.com/MarcGuiselin/youtube-refined), [NY](https://github.com/raingart/Nova-YouTube-extension), [IC](https://github.com/ThomasTavernier/Improve-Crunchyroll)
@@ -347,7 +349,7 @@ Do you need to run a popular extension, site, app or repo?
We'll love to chrome-web-store-linkChrome-users

-** Some ImprovedTube features**: +**Some ImprovedTube features**: - Video quality - Themes and customisation - Repeat-, screenshot-, rotate-buttons From 4c55c03dffd680062ba0e5806ff3519eb5d52628 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 4 Mar 2023 09:35:53 +0000 Subject: [PATCH 0812/1224] typo --- content-scripts/website-context/core.js | 6 +++--- content-scripts/website-context/functions.js | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/content-scripts/website-context/core.js b/content-scripts/website-context/core.js index 4069d2ffd..4a5e8925b 100644 --- a/content-scripts/website-context/core.js +++ b/content-scripts/website-context/core.js @@ -30,12 +30,12 @@ var ImprovedTube = { blacklist_buttons: [] }, regex: { - channel: new RegExp('\/(@|((channel|user|c)\/)))'), - channel_home_page: new RegExp('\/(@|((channel|user|c)\/)))[^/]+(\/featured)?\/?$'), + channel: new RegExp('\/@|((channel|user|c)\/)'), + channel_home_page: new RegExp('\/@|((channel|user|c)\/)[^/]+(\/featured)?\/?$'), channel_home_page_postfix: new RegExp('\/(featured)?\/?$'), thumbnail_quality: new RegExp('(default\.jpg|mqdefault\.jpg|hqdefault\.jpg|hq720\.jpg|sddefault\.jpg|maxresdefault\.jpg)+'), video_id: new RegExp('[?&]v=([^&]+)'), - channel_link: new RegExp('https:\/\/www.youtube.com\/(@|((channel|user|c)\/)))') + channel_link: new RegExp('https:\/\/www.youtube.com\/@|((channel|user|c)\/)') }, video_src: false, initialVideoUpdateDone: false, diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index 408936794..edcc99b83 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -26,7 +26,7 @@ ImprovedTube.ytElementsHandler = function (node) { if (node.className.indexOf('ytd-thumbnail') !== -1) { this.blacklist('video', node); } - if (node.href.match(/@|((channel|user|c)\/))([^/]+)/)) { + if (node.href.match(/@|((channel|user|c)\/)([^/]+)/)) { this.blacklist('channel', node); } } @@ -221,7 +221,7 @@ ImprovedTube.pageType = function () { document.documentElement.dataset.pageType = 'home'; } else if (/^\/subscriptions\?/.test(location.pathname)) { document.documentElement.dataset.pageType = 'subscriptions'; - } else if (/^\/(@|((channel|user|c)\/)))[^/]+(?!\/videos)/.test(location.pathname)) { + } else if (/^\/@|((channel|user|c)\/)[^/]+(?!\/videos)/.test(location.pathname)) { document.documentElement.dataset.pageType = 'channel'; } else { document.documentElement.dataset.pageType = 'other'; From 2dfc08377e7822a2568e6be29949548376600d60 Mon Sep 17 00:00:00 2001 From: Mohamed Lebda Date: Thu, 9 Mar 2023 12:41:59 +0200 Subject: [PATCH 0813/1224] issue #1552 --- content-scripts/website-context/functions.js | 6 +++--- .../website-context/youtube-features/appearance.js | 12 ++++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index edcc99b83..26a288c32 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -88,9 +88,9 @@ ImprovedTube.ytElementsHandler = function (node) { } ImprovedTube.elements.subscribe_button = node; - } else if (id === 'chat') { - this.elements.livechat.button = node.querySelector('ytd-toggle-button-renderer'); - + } else if (id === 'show-hide-button') { + this.elements.livechat.button = document.querySelector('[aria-label="Hide chat"]'); + console.log(document.querySelector('[aria-label="Hide chat"]')) this.livechat(); } else if (name === 'YTD-MASTHEAD') { if (!this.elements.masthead) { diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index 395a0c293..8e892ac45 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -156,10 +156,18 @@ ImprovedTube.playerRemainingDuration = function () { /*------------------------------------------------------------------------------ 4.2.2.1 LIVECHAT ------------------------------------------------------------------------------*/ - +let isCollapsed = false ImprovedTube.livechat = function () { if (this.storage.livechat === "collapsed") { - ImprovedTube.elements.livechat.button.click(); + if(ImprovedTube.elements.livechat && !isCollapsed){ + ImprovedTube.elements.livechat.button.click(); + isCollapsed = true + } + }else{ + if(isCollapsed){ + ImprovedTube.elements.livechat.button.click(); + isCollapsed = false + } } }; From ad016973276c2b986731e09ce0045a29b283055c Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 10 Mar 2023 02:53:57 +0100 Subject: [PATCH 0814/1224] uncommenting #1589 darkmode cookie --- content-scripts/website-context/functions.js | 2 +- .../website-context/youtube-features/shortcuts.js | 11 ++++++----- .../website-context/youtube-features/themes.js | 5 +++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index edcc99b83..6f2a86dc2 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -206,7 +206,7 @@ ImprovedTube.ytElementsHandler = function (node) { } //old }else if (name === 'TP-YT-PAPER-BUTTON') { - if (document.documentElement.dataset.pageType === 'video' && id === 'more' && node.classList.contains('ytd-expander')) { + if (document.documentElement.dataset.pageType === 'video' && id === 'more' && node.classList.contains('ytd-expander') || node.parentNode.parentNode.id === 'container') { setTimeout(function () { ImprovedTube.description(node); }, 750); diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/content-scripts/website-context/youtube-features/shortcuts.js index 6b3cfded4..f6722ae87 100644 --- a/content-scripts/website-context/youtube-features/shortcuts.js +++ b/content-scripts/website-context/youtube-features/shortcuts.js @@ -612,27 +612,28 @@ ImprovedTube.shortcutSubscribe = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutDarkTheme = function () { - pref = ''; +/* pref = ''; cookieValue = '400'; if (document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)) { pref = document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)[1]; } - +*/ if (document.documentElement.hasAttribute('dark')) { - cookieValue = '80000'; +// cookieValue = '80000'; document.documentElement.removeAttribute('dark'); document.documentElement.removeAttribute('it-theme'); } else { document.documentElement.setAttribute('dark', ''); document.documentElement.setAttribute('it-theme', 'true'); } - +/* if (pref.match(/(f6=)[^\&]+/)){ cookieValue = pref.replace(/(f6=)[^\&]+/, cookieValue); } else { cookieValue = pref + "&f6=" + cookieValue; } - ImprovedTube.setCookie('PREF', cookieValue); + ImprovedTube.setCookie('PREF', cookieValue); +*/ }; diff --git a/content-scripts/website-context/youtube-features/themes.js b/content-scripts/website-context/youtube-features/themes.js index 79538df57..10250b63a 100644 --- a/content-scripts/website-context/youtube-features/themes.js +++ b/content-scripts/website-context/youtube-features/themes.js @@ -81,7 +81,7 @@ ImprovedTube.themes = function () { if (this.elements.my_colors) { this.elements.my_colors.remove(); } - +/* pref = ''; cookieValue = '400'; if (document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)) { @@ -104,6 +104,7 @@ ImprovedTube.themes = function () { } else { cookieValue = pref + "&f6=" + cookieValue; } - ImprovedTube.setCookie('PREF', cookieValue); + ImprovedTube.setCookie('PREF', cookieValue); + */ } }; \ No newline at end of file From e5e794a55eb138150dd7349c5f902aa8b24dfe4c Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 10 Mar 2023 03:32:32 +0100 Subject: [PATCH 0815/1224] #1594 #1590 --- content-scripts/website-context/functions.js | 2 +- .../website-context/youtube-features/appearance.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index fc9c72743..bfdfba527 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -90,7 +90,7 @@ ImprovedTube.ytElementsHandler = function (node) { ImprovedTube.elements.subscribe_button = node; } else if (id === 'show-hide-button') { this.elements.livechat.button = document.querySelector('[aria-label="Hide chat"]'); - console.log(document.querySelector('[aria-label="Hide chat"]')) + // console.log(document.querySelector('[aria-label="Hide chat"]')) this.livechat(); } else if (name === 'YTD-MASTHEAD') { if (!this.elements.masthead) { diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index 8e892ac45..2f956cbb8 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -294,8 +294,9 @@ ImprovedTube.channelVideosCount = function () { ImprovedTube.description = function (el) { if (this.storage.description === "expanded") { - el.click(); - } + if(el){el.click();} else {document.querySelector("#more").click();} + } + else if (this.storage.description === "normal") {document.querySelector("#less").click();} }; /*------------------------------------------------------------------------------ From c23b0d01500690dedd9ba6a0c91872857a3a34b8 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 10 Mar 2023 20:15:23 +0800 Subject: [PATCH 0816/1224] Fix header theme not correct --- .../youtube-features/shortcuts.js | 17 ++-------------- .../youtube-features/themes.js | 20 ++++--------------- 2 files changed, 6 insertions(+), 31 deletions(-) diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/content-scripts/website-context/youtube-features/shortcuts.js index f6722ae87..0ad741beb 100644 --- a/content-scripts/website-context/youtube-features/shortcuts.js +++ b/content-scripts/website-context/youtube-features/shortcuts.js @@ -612,28 +612,15 @@ ImprovedTube.shortcutSubscribe = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutDarkTheme = function () { -/* pref = ''; - cookieValue = '400'; - if (document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)) { - pref = document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)[1]; - } -*/ if (document.documentElement.hasAttribute('dark')) { -// cookieValue = '80000'; document.documentElement.removeAttribute('dark'); + document.querySelector('ytd-masthead').removeAttribute('dark'); document.documentElement.removeAttribute('it-theme'); } else { document.documentElement.setAttribute('dark', ''); + document.querySelector('ytd-masthead').setAttribute('dark', ''); document.documentElement.setAttribute('it-theme', 'true'); } -/* - if (pref.match(/(f6=)[^\&]+/)){ - cookieValue = pref.replace(/(f6=)[^\&]+/, cookieValue); - } else { - cookieValue = pref + "&f6=" + cookieValue; - } - ImprovedTube.setCookie('PREF', cookieValue); -*/ }; diff --git a/content-scripts/website-context/youtube-features/themes.js b/content-scripts/website-context/youtube-features/themes.js index 10250b63a..b408e1665 100644 --- a/content-scripts/website-context/youtube-features/themes.js +++ b/content-scripts/website-context/youtube-features/themes.js @@ -81,30 +81,18 @@ ImprovedTube.themes = function () { if (this.elements.my_colors) { this.elements.my_colors.remove(); } -/* - pref = ''; - cookieValue = '400'; - if (document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)) { - pref = document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)[1]; - } - if (this.storage.theme === 'dark' || this.storage.theme === 'black') { if (!document.documentElement.hasAttribute('dark')) { document.documentElement.setAttribute('dark', ''); + document.querySelector('ytd-masthead').setAttribute('dark', ''); + document.documentElement.setAttribute('it-theme', 'true'); } } else { if (document.documentElement.hasAttribute('dark')) { - cookieValue = '80000'; document.documentElement.removeAttribute('dark'); + document.querySelector('ytd-masthead').removeAttribute('dark'); + document.documentElement.removeAttribute('it-theme'); } } - - if (pref.match(/(f6=)[^\&]+/)){ - cookieValue = pref.replace(/(f6=)[^\&]+/, cookieValue); - } else { - cookieValue = pref + "&f6=" + cookieValue; - } - ImprovedTube.setCookie('PREF', cookieValue); - */ } }; \ No newline at end of file From c0874a7d686066415f332956e9ad9199279a38b7 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 10 Mar 2023 21:54:59 +0800 Subject: [PATCH 0817/1224] Improved ImprovedTube.themes() We will let youtube to pick the theme for default theme now --- .../website-context/youtube-features/shortcuts.js | 4 ++-- .../website-context/youtube-features/themes.js | 13 ++++++++----- options-page/functions.js | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/content-scripts/website-context/youtube-features/shortcuts.js index 0ad741beb..04b5f726c 100644 --- a/content-scripts/website-context/youtube-features/shortcuts.js +++ b/content-scripts/website-context/youtube-features/shortcuts.js @@ -615,11 +615,11 @@ ImprovedTube.shortcutDarkTheme = function () { if (document.documentElement.hasAttribute('dark')) { document.documentElement.removeAttribute('dark'); document.querySelector('ytd-masthead').removeAttribute('dark'); - document.documentElement.removeAttribute('it-theme'); + document.documentElement.removeAttribute('it-themes'); } else { document.documentElement.setAttribute('dark', ''); document.querySelector('ytd-masthead').setAttribute('dark', ''); - document.documentElement.setAttribute('it-theme', 'true'); + document.documentElement.setAttribute('it-themes', 'true'); } }; diff --git a/content-scripts/website-context/youtube-features/themes.js b/content-scripts/website-context/youtube-features/themes.js index b408e1665..8cb34bc9e 100644 --- a/content-scripts/website-context/youtube-features/themes.js +++ b/content-scripts/website-context/youtube-features/themes.js @@ -81,17 +81,20 @@ ImprovedTube.themes = function () { if (this.elements.my_colors) { this.elements.my_colors.remove(); } - if (this.storage.theme === 'dark' || this.storage.theme === 'black') { + if (this.storage.theme === 'default' ){ + if (document.documentElement.hasAttribute('it-themes') === true){ + document.documentElement.setAttribute('it-themes', 'false'); + location.reload(); + } + } else if (this.storage.theme === 'dark' || this.storage.theme === 'black') { if (!document.documentElement.hasAttribute('dark')) { document.documentElement.setAttribute('dark', ''); - document.querySelector('ytd-masthead').setAttribute('dark', ''); - document.documentElement.setAttribute('it-theme', 'true'); + document.documentElement.setAttribute('it-themes', 'true'); } } else { if (document.documentElement.hasAttribute('dark')) { document.documentElement.removeAttribute('dark'); - document.querySelector('ytd-masthead').removeAttribute('dark'); - document.documentElement.removeAttribute('it-theme'); + document.documentElement.removeAttribute('it-themes'); } } } diff --git a/options-page/functions.js b/options-page/functions.js index 282dd952f..fca420609 100644 --- a/options-page/functions.js +++ b/options-page/functions.js @@ -17,7 +17,7 @@ extension.attributes = function () { title_version: true, it_general: true, it_appearance: true, - it_themes: true, + it_themes: false, it_player: true, it_playlist: true, it_channel: true, From a5d0aa6bf0191bddcdad8907068460e74bf011ac Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 10 Mar 2023 21:56:54 +0800 Subject: [PATCH 0818/1224] Fix ImprovedTube.description() bug Prevent "Uncaught TypeError: Cannot read properties of undefined (reading 'id')" --- content-scripts/website-context/functions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index bfdfba527..f8724c2b7 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -206,7 +206,7 @@ ImprovedTube.ytElementsHandler = function (node) { } //old }else if (name === 'TP-YT-PAPER-BUTTON') { - if (document.documentElement.dataset.pageType === 'video' && id === 'more' && node.classList.contains('ytd-expander') || node.parentNode.parentNode.id === 'container') { + if (document.documentElement.dataset.pageType === 'video' && id === 'more' && node.classList.contains('ytd-expander') || (node.parentNode.parentNode !== null && node.parentNode.parentNode.id === 'container')) { setTimeout(function () { ImprovedTube.description(node); }, 750); From 7ee7a83e95b15e078cdc2731f419c123418f000a Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 11 Mar 2023 02:53:47 +0100 Subject: [PATCH 0819/1224] English --- _locales/am/messages.json | 22 +++++++++++----------- _locales/ar/messages.json | 6 +++--- _locales/bg/messages.json | 22 +++++++++++----------- _locales/bn/messages.json | 8 ++++---- _locales/ca/messages.json | 22 +++++++++++----------- _locales/cs/messages.json | 22 +++++++++++----------- _locales/da/messages.json | 22 +++++++++++----------- _locales/de/messages.json | 2 +- _locales/el/messages.json | 8 ++++---- _locales/en/messages.json | 22 +++++++++++----------- _locales/en_GB/messages.json | 22 +++++++++++----------- _locales/en_US/messages.json | 22 +++++++++++----------- _locales/es/messages.json | 2 +- _locales/es_419/messages.json | 2 +- _locales/et/messages.json | 22 +++++++++++----------- _locales/fa/messages.json | 22 +++++++++++----------- _locales/fi/messages.json | 22 +++++++++++----------- _locales/fil/messages.json | 22 +++++++++++----------- _locales/fr/messages.json | 8 ++++---- _locales/gu/messages.json | 22 +++++++++++----------- _locales/he/messages.json | 22 +++++++++++----------- _locales/hi/messages.json | 8 ++++---- _locales/hr/messages.json | 6 +++--- _locales/hu/messages.json | 22 +++++++++++----------- _locales/id/messages.json | 10 +++++----- _locales/ja/messages.json | 2 +- _locales/kn/messages.json | 22 +++++++++++----------- _locales/ko/messages.json | 2 +- _locales/lt/messages.json | 22 +++++++++++----------- _locales/lv/messages.json | 22 +++++++++++----------- _locales/ml/messages.json | 22 +++++++++++----------- _locales/mr/messages.json | 22 +++++++++++----------- _locales/ms/messages.json | 22 +++++++++++----------- _locales/nb_NO/messages.json | 8 ++++---- _locales/nl/messages.json | 2 +- _locales/no/messages.json | 10 +++++----- _locales/pl/messages.json | 2 +- _locales/pt_BR/messages.json | 2 +- _locales/pt_PT/messages.json | 10 +++++----- _locales/ro/messages.json | 6 +++--- _locales/si/messages.json | 10 +++++----- _locales/sk/messages.json | 10 +++++----- _locales/sl/messages.json | 22 +++++++++++----------- _locales/sr/messages.json | 22 +++++++++++----------- _locales/sv/messages.json | 22 +++++++++++----------- _locales/sw/messages.json | 22 +++++++++++----------- _locales/ta/messages.json | 22 +++++++++++----------- _locales/te/messages.json | 22 +++++++++++----------- _locales/th/messages.json | 22 +++++++++++----------- _locales/uk/messages.json | 22 +++++++++++----------- _locales/zh_CN/messages.json | 8 ++++---- _locales/zh_TW/messages.json | 2 +- 52 files changed, 386 insertions(+), 386 deletions(-) diff --git a/_locales/am/messages.json b/_locales/am/messages.json index 6db8006c4..76326c13c 100644 --- a/_locales/am/messages.json +++ b/_locales/am/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Force video to play from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button in red" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index fa5824e82..0a78b68e1 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -309,7 +309,7 @@ "message": "لم يعجبنى" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "الإفتراضي" @@ -651,10 +651,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "ألواني" diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/bg/messages.json +++ b/_locales/bg/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index b7bf565a0..898e95e2a 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -306,7 +306,7 @@ "message": "অপছন্দ" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "পরিবর্তন করবেন না" @@ -378,7 +378,7 @@ "message": "পাদচরণ" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "জোর করে শুরু থেকে ভিডিও চালান" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "আমার রং" diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/ca/messages.json +++ b/_locales/ca/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/cs/messages.json +++ b/_locales/cs/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/da/messages.json b/_locales/da/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/da/messages.json +++ b/_locales/da/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 304c228ed..3e9aef83c 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -306,7 +306,7 @@ "message": "'Mag ich nicht'" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Nicht ändern" diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 94353cf35..ad9ed7025 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -306,7 +306,7 @@ "message": "Δε μου αρέσει" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Να μην αλλάξει" @@ -378,7 +378,7 @@ "message": "Υποσέλιδο" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "Τα χρώματά μου" diff --git a/_locales/en/messages.json b/_locales/en/messages.json index c9e8f1c86..a720e5425 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -96,7 +96,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -213,7 +213,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -321,7 +321,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -369,7 +369,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -393,7 +393,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Force video to play from the beginning" @@ -414,7 +414,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -663,10 +663,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -720,7 +720,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -822,7 +822,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button in red" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json index c01cfc4f3..7160b568f 100644 --- a/_locales/en_GB/messages.json +++ b/_locales/en_GB/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -87,7 +87,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -198,7 +198,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -303,7 +303,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -351,7 +351,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -375,7 +375,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Force video to play from the beginning" @@ -396,7 +396,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -624,10 +624,10 @@ "message": "More" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -678,7 +678,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -780,7 +780,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button in red" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json index c01cfc4f3..7160b568f 100644 --- a/_locales/en_US/messages.json +++ b/_locales/en_US/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -87,7 +87,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -198,7 +198,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -303,7 +303,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -351,7 +351,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -375,7 +375,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Force video to play from the beginning" @@ -396,7 +396,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -624,10 +624,10 @@ "message": "More" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -678,7 +678,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -780,7 +780,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button in red" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 121cd07c2..0b233ff8e 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "No cambiar" diff --git a/_locales/es_419/messages.json b/_locales/es_419/messages.json index 343949097..4d14dd242 100644 --- a/_locales/es_419/messages.json +++ b/_locales/es_419/messages.json @@ -303,7 +303,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "No cambiar" diff --git a/_locales/et/messages.json b/_locales/et/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/et/messages.json +++ b/_locales/et/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/fa/messages.json b/_locales/fa/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/fa/messages.json +++ b/_locales/fa/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/fi/messages.json b/_locales/fi/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/fi/messages.json +++ b/_locales/fi/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/fil/messages.json b/_locales/fil/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/fil/messages.json +++ b/_locales/fil/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index c183c1152..59feb8fae 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -306,7 +306,7 @@ "message": "Je n'aime pas" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Ne pas changer" @@ -378,7 +378,7 @@ "message": "Bas de page" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "Mes couleurs" diff --git a/_locales/gu/messages.json b/_locales/gu/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/gu/messages.json +++ b/_locales/gu/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/he/messages.json b/_locales/he/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/he/messages.json +++ b/_locales/he/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/hi/messages.json b/_locales/hi/messages.json index 1f470bf29..65eb0867e 100644 --- a/_locales/hi/messages.json +++ b/_locales/hi/messages.json @@ -303,7 +303,7 @@ "message": "नापसन्द" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "मत बदलो" @@ -375,7 +375,7 @@ "message": "पाद लेख" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "जबरदस्ती वीडियो शुरू से प्ले करें" @@ -642,10 +642,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "मेरे रंग" diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 69180e407..3f3a8c7f5 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -306,7 +306,7 @@ "message": "Ne sviđa mi se" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Nemoj mijenjati" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "Moje boje" diff --git a/_locales/hu/messages.json b/_locales/hu/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/hu/messages.json +++ b/_locales/hu/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/id/messages.json b/_locales/id/messages.json index f2e467899..6df9ec30f 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -306,7 +306,7 @@ "message": "Tidak Suka" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Jangan ubah" @@ -378,7 +378,7 @@ "message": "Catatan kaki" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "Warna saya" @@ -804,7 +804,7 @@ "message": "Merah" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Video terkait" diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index 79af0fa6e..d58413a0a 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -306,7 +306,7 @@ "message": "低評価" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "変更しない" diff --git a/_locales/kn/messages.json b/_locales/kn/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/kn/messages.json +++ b/_locales/kn/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index e5b8a210d..a1a71114f 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -446,7 +446,7 @@ "hideAnnotations": { "message": "설명 숨기기" }, - "hideAvatars": { + "Hide avatars": { "message": "사용자 사진 숨기기" }, "hideCards": { diff --git a/_locales/lt/messages.json b/_locales/lt/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/lt/messages.json +++ b/_locales/lt/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/lv/messages.json b/_locales/lv/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/lv/messages.json +++ b/_locales/lv/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/ml/messages.json b/_locales/ml/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/ml/messages.json +++ b/_locales/ml/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/mr/messages.json b/_locales/mr/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/mr/messages.json +++ b/_locales/mr/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/ms/messages.json b/_locales/ms/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/ms/messages.json +++ b/_locales/ms/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index cf221b4e3..918378831 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -303,7 +303,7 @@ "message": "Mislik" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Ikke endre" @@ -375,7 +375,7 @@ "message": "Bunntekst" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -642,10 +642,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "Mine farger" diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index cceb81f97..8d75601f3 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -306,7 +306,7 @@ "message": "Niet leuk vinden" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Niet aanpassen" diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 246f20465..f2fb01ce0 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -306,7 +306,7 @@ "message": "Mislik" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Ikke endre" @@ -378,7 +378,7 @@ "message": "Bunntekst" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "Mine farger" @@ -804,7 +804,7 @@ "message": "Rød" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Relaterte videoer" diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 46c25b31e..09087d8e3 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -306,7 +306,7 @@ "message": "Nie podoba mi się" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Nie zmieniaj" diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 2272988df..bf39223c1 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -306,7 +306,7 @@ "message": "Não Gostei." }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Não Alterar" diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 035d3bd3d..1ce2096a1 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -306,7 +306,7 @@ "message": "Não gostar" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Não mudes" @@ -378,7 +378,7 @@ "message": "Cabeçalho" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "Minhas cores" @@ -804,7 +804,7 @@ "message": "Vermelho" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Videos relacionados" diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 0248eec5f..00d9107d6 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -306,7 +306,7 @@ "message": "Nu îmi place" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Nu schimba" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "Culorile mele" diff --git a/_locales/si/messages.json b/_locales/si/messages.json index e44130780..b0f4d0687 100644 --- a/_locales/si/messages.json +++ b/_locales/si/messages.json @@ -303,7 +303,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "වෙනස් කරන්න එපා" @@ -351,7 +351,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -375,7 +375,7 @@ "message": "Footer එක" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "වීඩියෝව මුල සිට බලහත්කාරයෙන් play කරන්න" @@ -396,7 +396,7 @@ "message": "දෝෂයක් හම්බුනාද ඔයාට?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "සාමාන්‍ය" @@ -696,7 +696,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "video හෝ playlist new window එකකින් open කරන්න" diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 1d97a8f26..8b578d932 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Nemeniť" @@ -378,7 +378,7 @@ "message": "Pätička" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "Moje farby" @@ -804,7 +804,7 @@ "message": "Červená" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Súvisiace videá" diff --git a/_locales/sl/messages.json b/_locales/sl/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/sl/messages.json +++ b/_locales/sl/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/sr/messages.json +++ b/_locales/sr/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/sw/messages.json b/_locales/sw/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/sw/messages.json +++ b/_locales/sw/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/ta/messages.json b/_locales/ta/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/ta/messages.json +++ b/_locales/ta/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/te/messages.json b/_locales/te/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/te/messages.json +++ b/_locales/te/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/th/messages.json b/_locales/th/messages.json index b029c7aaf..263f1775f 100644 --- a/_locales/th/messages.json +++ b/_locales/th/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colors" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json index c5a3272e0..525020123 100644 --- a/_locales/uk/messages.json +++ b/_locales/uk/messages.json @@ -33,7 +33,7 @@ "message": "Activated features" }, "activeFeatures": { - "message": "Active features" + "message": "My active features" }, "addScrollToTop": { "message": "Add «Scroll to top»" @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Autopause when switching tabs" + "message": "Pause while not visible" }, "autoplay": { "message": "Autoplay" @@ -201,7 +201,7 @@ "message": "Codecs" }, "collapseOfSubscriptionSections": { - "message": "Collapse of subscription sections" + "message": "Fold subscriptions' sections (collapsed accordion)" }, "collapsed": { "message": "Collapsed" @@ -306,7 +306,7 @@ "message": "Dislike" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "Don't change" @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Fit to window" + "message": "Old alternative" }, "flash": { "message": "Flash" @@ -378,7 +378,7 @@ "message": "Footer" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -399,7 +399,7 @@ "message": "Found a bug?" }, "fullWindow": { - "message": "Full window" + "message": "Full height" }, "general": { "message": "General" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "My colours" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Only one player instance playing" + "message": "Don't let a 2nd video auto-start at once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -804,7 +804,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Show dislike button red colour" + "message": "Red DisLiked-button" }, "relatedVideos": { "message": "Related videos" diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 8b67646c6..262b0d76a 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -306,7 +306,7 @@ "message": "踩一下" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "不做改变" @@ -378,7 +378,7 @@ "message": "底部栏" }, "forceSDR": { - "message": "Force SDR" + "message": "Avoid HDR, keep SDR" }, "forcedPlayVideoFromTheBeginning": { "message": "Forced play video from the beginning" @@ -645,10 +645,10 @@ "message": "Most viewed channels" }, "moveSidebarLeft": { - "message": "Move sidebar left" + "message": "To the left!" }, "moveThumbnailsRight": { - "message": "Move thumbnails right" + "message": "Thumbnails to the right!" }, "myColors": { "message": "自定义颜色" diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index c90f83d57..dc53a681b 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -306,7 +306,7 @@ "message": "不喜歡" }, "displayDayOfTheWeak": { - "message": "Display day of the weak" + "message": "Display day of the week" }, "doNotChange": { "message": "不要改變" From c86a142b0d2545c141cc1ee09ced4b35e35e5e00 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 11 Mar 2023 17:11:39 +0100 Subject: [PATCH 0820/1224] English --- _locales/am/messages.json | 26 +++++++++++++------------- _locales/ar/messages.json | 8 ++++---- _locales/bg/messages.json | 24 ++++++++++++------------ _locales/bn/messages.json | 6 +++--- _locales/ca/messages.json | 24 ++++++++++++------------ _locales/cs/messages.json | 24 ++++++++++++------------ _locales/da/messages.json | 24 ++++++++++++------------ _locales/de/messages.json | 4 ++-- _locales/el/messages.json | 8 ++++---- _locales/en/messages.json | 26 +++++++++++++------------- _locales/en_GB/messages.json | 26 +++++++++++++------------- _locales/en_US/messages.json | 26 +++++++++++++------------- _locales/es/messages.json | 4 ++-- _locales/es_419/messages.json | 4 ++-- _locales/et/messages.json | 24 ++++++++++++------------ _locales/fa/messages.json | 24 ++++++++++++------------ _locales/fi/messages.json | 24 ++++++++++++------------ _locales/fil/messages.json | 24 ++++++++++++------------ _locales/fr/messages.json | 8 ++++---- _locales/gu/messages.json | 24 ++++++++++++------------ _locales/he/messages.json | 24 ++++++++++++------------ _locales/hi/messages.json | 6 +++--- _locales/hr/messages.json | 8 ++++---- _locales/hu/messages.json | 24 ++++++++++++------------ _locales/id/messages.json | 8 ++++---- _locales/it/messages.json | 2 +- _locales/ja/messages.json | 4 ++-- _locales/kn/messages.json | 24 ++++++++++++------------ _locales/lt/messages.json | 24 ++++++++++++------------ _locales/lv/messages.json | 24 ++++++++++++------------ _locales/ml/messages.json | 24 ++++++++++++------------ _locales/mr/messages.json | 24 ++++++++++++------------ _locales/ms/messages.json | 24 ++++++++++++------------ _locales/nb_NO/messages.json | 8 ++++---- _locales/nl/messages.json | 4 ++-- _locales/no/messages.json | 8 ++++---- _locales/pl/messages.json | 2 +- _locales/pt_BR/messages.json | 4 ++-- _locales/pt_PT/messages.json | 8 ++++---- _locales/ro/messages.json | 6 +++--- _locales/ru/messages.json | 2 +- _locales/si/messages.json | 8 ++++---- _locales/sk/messages.json | 8 ++++---- _locales/sl/messages.json | 24 ++++++++++++------------ _locales/sr/messages.json | 24 ++++++++++++------------ _locales/sv/messages.json | 24 ++++++++++++------------ _locales/sw/messages.json | 24 ++++++++++++------------ _locales/ta/messages.json | 24 ++++++++++++------------ _locales/te/messages.json | 24 ++++++++++++------------ _locales/th/messages.json | 24 ++++++++++++------------ _locales/tr/messages.json | 2 +- _locales/uk/messages.json | 22 +++++++++++----------- _locales/zh_CN/messages.json | 6 +++--- _locales/zh_TW/messages.json | 2 +- 54 files changed, 420 insertions(+), 420 deletions(-) diff --git a/_locales/am/messages.json b/_locales/am/messages.json index 76326c13c..d2bbf38da 100644 --- a/_locales/am/messages.json +++ b/_locales/am/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Force video to play from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" @@ -765,7 +765,7 @@ "message": "Popup player" }, "popupWindowButtons": { - "message": "Add popup Window buttons" + "message": "Add a popup player button to each thumbnail" }, "position": { "message": "Position" diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 0a78b68e1..ccc33d042 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -270,7 +270,7 @@ "message": "علامة تبويب القناة الافتراضية" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -390,7 +390,7 @@ "message": "تثبيت سرعة التشغيل" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "فرض وضع المسرح" @@ -465,7 +465,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "إخفاء التفاصيل" diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/bg/messages.json +++ b/_locales/bg/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/bn/messages.json b/_locales/bn/messages.json index 898e95e2a..1c5f6aab9 100644 --- a/_locales/bn/messages.json +++ b/_locales/bn/messages.json @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -387,7 +387,7 @@ "message": "জোর করে প্লেব্যাক গতি" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "জোর করে থিয়েটার মোড" @@ -462,7 +462,7 @@ "message": "তারিখ লুকান" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "আড়াল বিস্তারিত" diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/ca/messages.json +++ b/_locales/ca/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/cs/messages.json +++ b/_locales/cs/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/da/messages.json b/_locales/da/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/da/messages.json +++ b/_locales/da/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 3e9aef83c..21546d558 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -387,7 +387,7 @@ "message": "erzwungene Abspielgeschwindigkeit" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Kinomodus erzwingen" @@ -462,7 +462,7 @@ "message": "Datum ausblenden" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Details ausblenden" diff --git a/_locales/el/messages.json b/_locales/el/messages.json index ad9ed7025..99eeab957 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Προεπιλεγμένη καρτέλα καναλιού" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -387,7 +387,7 @@ "message": "Υποχρεωτική ταχύτητα αναπαραγωγής" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Υποχρεωτική λειτουργία κινηματογράφου" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Απόκρυψε τις λεπτομέρειες" diff --git a/_locales/en/messages.json b/_locales/en/messages.json index a720e5425..7c58ea2ff 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -138,7 +138,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -147,7 +147,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -279,7 +279,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "defaultPlaybackSpeed": { "message": "Default Playback Speed" @@ -399,10 +399,10 @@ "message": "Force video to play from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -477,7 +477,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -546,13 +546,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -711,16 +711,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -768,7 +768,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" @@ -783,7 +783,7 @@ "message": "Popup player" }, "popupWindowButtons": { - "message": "Add popup Window buttons" + "message": "Add a popup player button to each thumbnail" }, "position": { "message": "Position" diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json index 7160b568f..596843bd6 100644 --- a/_locales/en_GB/messages.json +++ b/_locales/en_GB/messages.json @@ -126,7 +126,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -135,7 +135,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -264,7 +264,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -381,10 +381,10 @@ "message": "Force video to play from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -453,7 +453,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -519,13 +519,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -669,16 +669,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -726,7 +726,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" @@ -741,7 +741,7 @@ "message": "Popup player" }, "popupWindowButtons": { - "message": "Add popup Window buttons" + "message": "Add a popup player button to each thumbnail" }, "position": { "message": "Position" diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json index 7160b568f..596843bd6 100644 --- a/_locales/en_US/messages.json +++ b/_locales/en_US/messages.json @@ -126,7 +126,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -135,7 +135,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -264,7 +264,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -381,10 +381,10 @@ "message": "Force video to play from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -453,7 +453,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -519,13 +519,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -669,16 +669,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -726,7 +726,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" @@ -741,7 +741,7 @@ "message": "Popup player" }, "popupWindowButtons": { - "message": "Add popup Window buttons" + "message": "Add a popup player button to each thumbnail" }, "position": { "message": "Position" diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 0b233ff8e..c0731f5bc 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -387,7 +387,7 @@ "message": "Forzar velocidad de reproducción" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forzar modo teatro" @@ -462,7 +462,7 @@ "message": "Ocultar fecha" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Ocultar detalles" diff --git a/_locales/es_419/messages.json b/_locales/es_419/messages.json index 4d14dd242..a051e0b78 100644 --- a/_locales/es_419/messages.json +++ b/_locales/es_419/messages.json @@ -384,7 +384,7 @@ "message": "Forzar velocidad de reproducción" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forzar modo teatro" @@ -453,7 +453,7 @@ "message": "Ocultar fecha" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Ocultar detalles" diff --git a/_locales/et/messages.json b/_locales/et/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/et/messages.json +++ b/_locales/et/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/fa/messages.json b/_locales/fa/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/fa/messages.json +++ b/_locales/fa/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/fi/messages.json b/_locales/fi/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/fi/messages.json +++ b/_locales/fi/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/fil/messages.json b/_locales/fil/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/fil/messages.json +++ b/_locales/fil/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 59feb8fae..d00907833 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Onglet par défaut d'une chaîne" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -387,7 +387,7 @@ "message": "Vitesse de lecture forcée" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forcer le mode théâtre" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Cacher les détails" diff --git a/_locales/gu/messages.json b/_locales/gu/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/gu/messages.json +++ b/_locales/gu/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/he/messages.json b/_locales/he/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/he/messages.json +++ b/_locales/he/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/hi/messages.json b/_locales/hi/messages.json index 65eb0867e..55748793a 100644 --- a/_locales/hi/messages.json +++ b/_locales/hi/messages.json @@ -135,7 +135,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -384,7 +384,7 @@ "message": "जबरन पार्श्व गति" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "जबरन थिएटर मोड" @@ -459,7 +459,7 @@ "message": "तारीख छुपाएं" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "जानकारी छिपाएँ" diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 3f3a8c7f5..2e90cc824 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Zadana kartica kanala" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -387,7 +387,7 @@ "message": "Prisiljena brzina reprodukcije" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Prisiljen kazališni način" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Sakrij detalje" diff --git a/_locales/hu/messages.json b/_locales/hu/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/hu/messages.json +++ b/_locales/hu/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 6df9ec30f..54b743b49 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Tab saluran standar" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -387,7 +387,7 @@ "message": "Paksa kecepatan pemutaran" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Paksa mode teater" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Sembunyikan detail" diff --git a/_locales/it/messages.json b/_locales/it/messages.json index 4a5a40419..07017091d 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -387,7 +387,7 @@ "message": "Velocità di riproduzione forzata" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Modalità cinema forzata" diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index d58413a0a..5b1df834c 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -387,7 +387,7 @@ "message": "再生速度を指定する" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "シアターモードにする" @@ -462,7 +462,7 @@ "message": "日付を隠す" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "詳細を隠す" diff --git a/_locales/kn/messages.json b/_locales/kn/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/kn/messages.json +++ b/_locales/kn/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/lt/messages.json b/_locales/lt/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/lt/messages.json +++ b/_locales/lt/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/lv/messages.json b/_locales/lv/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/lv/messages.json +++ b/_locales/lv/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/ml/messages.json b/_locales/ml/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/ml/messages.json +++ b/_locales/ml/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/mr/messages.json b/_locales/mr/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/mr/messages.json +++ b/_locales/mr/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/ms/messages.json b/_locales/ms/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/ms/messages.json +++ b/_locales/ms/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index 918378831..ad97a3a45 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -135,7 +135,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -264,7 +264,7 @@ "message": "Forvalgt kanalfane" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,7 +384,7 @@ "message": "Tvungen avspillingshastighet" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Tvunget teater-modus" @@ -459,7 +459,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Skjul detaljer" diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 8d75601f3..296218f25 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -387,7 +387,7 @@ "message": "Forceer afspeelsnelheid" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forceer Theatermodus" @@ -462,7 +462,7 @@ "message": "Verberg datum" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Verberg details" diff --git a/_locales/no/messages.json b/_locales/no/messages.json index f2fb01ce0..872888c20 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Standard kanalfane" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -387,7 +387,7 @@ "message": "Tvungen avspillingshastighet" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Tvunget teater-modus" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Skjul detaljer" diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index 09087d8e3..621200578 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -387,7 +387,7 @@ "message": "Wymuś prędkość odtwarzania" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Wymuś tryb kinowy" diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index bf39223c1..e0007b9fd 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -387,7 +387,7 @@ "message": " Velocidade do reprodução forçado" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Modo teatro forçado" @@ -462,7 +462,7 @@ "message": "Ocultar data" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Ocultar detalhes" diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index 1ce2096a1..a3c44bfe3 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Aba padrão do canal" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -387,7 +387,7 @@ "message": "Forçar velocidade de leitura" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forçar modo de cinema" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Esconder detalhes" diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 00d9107d6..e676cf803 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -267,7 +267,7 @@ "message": "Tab-ul implicit al canalului" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -387,7 +387,7 @@ "message": "Viteză de playback forțată" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Modul teatru forțat" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Ascunde detaliile" diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index f250126b7..34942ebb1 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -390,7 +390,7 @@ "message": "Принудительная скорость воспроизведения" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Принудительно переходить в режим кино" diff --git a/_locales/si/messages.json b/_locales/si/messages.json index b0f4d0687..8c3e44825 100644 --- a/_locales/si/messages.json +++ b/_locales/si/messages.json @@ -381,10 +381,10 @@ "message": "වීඩියෝව මුල සිට බලහත්කාරයෙන් play කරන්න" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -459,7 +459,7 @@ "message": "Date එක හංගන්න" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Details හංගන්න" @@ -696,7 +696,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "video හෝ playlist new window එකකින් open කරන්න" diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 8b578d932..f40b69423 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Predvolená karta kanálu" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -387,7 +387,7 @@ "message": "Vynútená rýchlosť prehrávania" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Vynútený divadelný režim" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Skryť detaily" diff --git a/_locales/sl/messages.json b/_locales/sl/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/sl/messages.json +++ b/_locales/sl/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/sr/messages.json +++ b/_locales/sr/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/sw/messages.json b/_locales/sw/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/sw/messages.json +++ b/_locales/sw/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/ta/messages.json b/_locales/ta/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/ta/messages.json +++ b/_locales/ta/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/te/messages.json b/_locales/te/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/te/messages.json +++ b/_locales/te/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/th/messages.json b/_locales/th/messages.json index 263f1775f..b0251f7fd 100644 --- a/_locales/th/messages.json +++ b/_locales/th/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theater mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" @@ -750,7 +750,7 @@ "message": "Player" }, "playerColor": { - "message": "Player color" + "message": "Progress bar color" }, "playerSize": { "message": "Player size" diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index eb3d90095..a4cacd779 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -387,7 +387,7 @@ "message": "Oynatma hızını uygulamaya zorla" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Sinema modunu zorla" diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json index 525020123..93eed2147 100644 --- a/_locales/uk/messages.json +++ b/_locales/uk/messages.json @@ -129,7 +129,7 @@ "message": "Blacklist" }, "blockAll": { - "message": "Block all" + "message": "Off (block or skip)" }, "blockAv1": { "message": "Block AV1" @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Default content country" + "message": "Country (virtual travel!)" }, "deleteWatchedVideos": { "message": "Delete watched videos" @@ -384,10 +384,10 @@ "message": "Forced play video from the beginning" }, "forcedPlaybackSpeed": { - "message": "Forced playback speed" + "message": "Forced playback speed, speed-watching" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "Forced theatre mode" @@ -462,7 +462,7 @@ "message": "Hide date" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "Hide details" @@ -528,13 +528,13 @@ "message": "Hover on video page" }, "howLongAgoTheVideoWasUploaded": { - "message": "How long ago the video was uploaded" + "message": "Show video's age (how long ago it was uploaded)" }, "icons": { "message": "Icons" }, "iconsOnly": { - "message": "Icons only" + "message": "Icon only" }, "importSettings": { "message": "Import settings" @@ -693,16 +693,16 @@ "message": "Old" }, "onAllVideos": { - "message": "On all videos" + "message": "On" }, "onSubscribedChannels": { - "message": "On subscribed channels" + "message": "Off, except on my subscribed channels" }, "onlyActiveOnYoutube": { "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd video auto-start at once" + "message": "Don't let a 2nd player instance play a once" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 262b0d76a..5437dea00 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -138,7 +138,7 @@ "message": "Block H.264" }, "blockMusic": { - "message": "Block music" + "message": "Skip ads while I play music" }, "blockVp8": { "message": "Block VP8" @@ -387,7 +387,7 @@ "message": "强制设置播放速度" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "强制设置剧场模式" @@ -462,7 +462,7 @@ "message": "隐藏日期" }, "hideDetailButton": { - "message": "Hide Detail Button" + "message": "Buttons" }, "hideDetails": { "message": "隐藏详细信息" diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index dc53a681b..ab3dc3d20 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -387,7 +387,7 @@ "message": "強制播放速度" }, "forcedPlaybackSpeedMusic": { - "message": "Force playback speed for music" + "message": "(Force playback speed even for music?)" }, "forcedTheaterMode": { "message": "強制劇院模式" From 3d3e5624e4e93e396442ce261cbc28a7eb90ab04 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 12 Mar 2023 02:00:28 +0100 Subject: [PATCH 0821/1224] English --- _locales/am/messages.json | 2 +- _locales/bg/messages.json | 2 +- _locales/ca/messages.json | 2 +- _locales/cs/messages.json | 2 +- _locales/da/messages.json | 2 +- _locales/en/messages.json | 2 +- _locales/en_GB/messages.json | 2 +- _locales/en_US/messages.json | 2 +- _locales/et/messages.json | 2 +- _locales/fa/messages.json | 2 +- _locales/fi/messages.json | 2 +- _locales/fil/messages.json | 2 +- _locales/gu/messages.json | 2 +- _locales/he/messages.json | 2 +- _locales/hu/messages.json | 2 +- _locales/kn/messages.json | 2 +- _locales/lt/messages.json | 2 +- _locales/lv/messages.json | 2 +- _locales/ml/messages.json | 2 +- _locales/mr/messages.json | 2 +- _locales/ms/messages.json | 2 +- _locales/si/messages.json | 2 +- _locales/sl/messages.json | 2 +- _locales/sr/messages.json | 2 +- _locales/sv/messages.json | 2 +- _locales/sw/messages.json | 2 +- _locales/ta/messages.json | 2 +- _locales/te/messages.json | 2 +- _locales/th/messages.json | 2 +- _locales/uk/messages.json | 2 +- 30 files changed, 30 insertions(+), 30 deletions(-) diff --git a/_locales/am/messages.json b/_locales/am/messages.json index d2bbf38da..a656ac9c8 100644 --- a/_locales/am/messages.json +++ b/_locales/am/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/bg/messages.json +++ b/_locales/bg/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/ca/messages.json +++ b/_locales/ca/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/cs/messages.json +++ b/_locales/cs/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/da/messages.json b/_locales/da/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/da/messages.json +++ b/_locales/da/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 7c58ea2ff..3444fd14e 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -369,7 +369,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json index 596843bd6..c23dcb56c 100644 --- a/_locales/en_GB/messages.json +++ b/_locales/en_GB/messages.json @@ -351,7 +351,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json index 596843bd6..c23dcb56c 100644 --- a/_locales/en_US/messages.json +++ b/_locales/en_US/messages.json @@ -351,7 +351,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/et/messages.json b/_locales/et/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/et/messages.json +++ b/_locales/et/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/fa/messages.json b/_locales/fa/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/fa/messages.json +++ b/_locales/fa/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/fi/messages.json b/_locales/fi/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/fi/messages.json +++ b/_locales/fi/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/fil/messages.json b/_locales/fil/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/fil/messages.json +++ b/_locales/fil/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/gu/messages.json b/_locales/gu/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/gu/messages.json +++ b/_locales/gu/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/he/messages.json b/_locales/he/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/he/messages.json +++ b/_locales/he/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/hu/messages.json b/_locales/hu/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/hu/messages.json +++ b/_locales/hu/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/kn/messages.json b/_locales/kn/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/kn/messages.json +++ b/_locales/kn/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/lt/messages.json b/_locales/lt/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/lt/messages.json +++ b/_locales/lt/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/lv/messages.json b/_locales/lv/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/lv/messages.json +++ b/_locales/lv/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/ml/messages.json b/_locales/ml/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/ml/messages.json +++ b/_locales/ml/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/mr/messages.json b/_locales/mr/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/mr/messages.json +++ b/_locales/mr/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/ms/messages.json b/_locales/ms/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/ms/messages.json +++ b/_locales/ms/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/si/messages.json b/_locales/si/messages.json index 8c3e44825..0a864a7a7 100644 --- a/_locales/si/messages.json +++ b/_locales/si/messages.json @@ -351,7 +351,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/sl/messages.json b/_locales/sl/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/sl/messages.json +++ b/_locales/sl/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/sr/messages.json +++ b/_locales/sr/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/sw/messages.json b/_locales/sw/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/sw/messages.json +++ b/_locales/sw/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/ta/messages.json b/_locales/ta/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/ta/messages.json +++ b/_locales/ta/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/te/messages.json b/_locales/te/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/te/messages.json +++ b/_locales/te/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/th/messages.json b/_locales/th/messages.json index b0251f7fd..6613a116a 100644 --- a/_locales/th/messages.json +++ b/_locales/th/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json index 93eed2147..d9ce466b0 100644 --- a/_locales/uk/messages.json +++ b/_locales/uk/messages.json @@ -354,7 +354,7 @@ "message": "Filters" }, "fitToWindow": { - "message": "Old alternative" + "message": "Old alternative ('Fit to window')" }, "flash": { "message": "Flash" From 80495abe2c029328a39b9b5ec255b8ae77430c8e Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 12 Mar 2023 02:00:52 +0100 Subject: [PATCH 0822/1224] Import & delete old settings --- background.js | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/background.js b/background.js index 140e143a9..51581d0b5 100644 --- a/background.js +++ b/background.js @@ -12,6 +12,30 @@ # LOCALE --------------------------------------------------------------*/ +/*--------------------------- +# IMPORTING OLD SETTINGS +-----------------------------*/ + + +chrome.runtime.onInstalled.addListener(function (installed){ + if(installed.reason == 'update'){ +// var thisVersion = chrome.runtime.getManifest().version; +// console.log("Updated from " + installed.previousVersion + " to " + thisVersion + "!"); + chrome.storage.local.get('limit_page_width', function (result) { + if (result.limit_page_width === false){ + chrome.storage.local.set({no_page_margin: true}); + chrome.storage.local.remove(['limit_page_width'], (i) => {}); + chrome.storage.local.get('player_size', function (r) { + if (r.player_size == 'full_window' || 'fit_to_window') { + chrome.storage.local.set({player_size: 'max_width'}); + }}); + } + }); +// } else if(installed.reason == 'install'){ console.log('Thanks for installing!'); + } + } +); + function getLocale(language, callback) { language = language.replace('-', '_'); @@ -228,7 +252,6 @@ chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) { } }); - /*-------------------------------------------------------------- # UNINSTALL URL --------------------------------------------------------------*/ From 35da9ffdab9e6e9ff8c861e2c9eb150b6302078e Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 12 Mar 2023 02:14:55 +0100 Subject: [PATCH 0823/1224] CSS fixes. Tidying options pages. --- _locales/am/messages.json | 2 +- _locales/en/messages.json | 2 +- _locales/en_GB/messages.json | 2 +- _locales/en_US/messages.json | 2 +- .../appearance/comments/comments.css | 17 +++-- .../appearance/details/details.css | 16 +++- .../appearance/player/player.css | 73 ++++++++++++++----- .../appearance/sidebar/sidebar.css | 56 ++++++++++---- .../youtube-features/general/general.css | 68 ++++++++--------- .../youtube-features/general/general.js | 4 +- content-scripts/website-context/functions.js | 6 +- manifest.json | 2 +- options-page/skeleton-parts/themes.js | 69 +++++++++++++++++- options-page/styles/appearance.css | 4 +- 14 files changed, 233 insertions(+), 90 deletions(-) diff --git a/_locales/am/messages.json b/_locales/am/messages.json index a656ac9c8..a7a2e96d2 100644 --- a/_locales/am/messages.json +++ b/_locales/am/messages.json @@ -765,7 +765,7 @@ "message": "Popup player" }, "popupWindowButtons": { - "message": "Add a popup player button to each thumbnail" + "message": "Add a popup-player-button to each thumbnail" }, "position": { "message": "Position" diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 3444fd14e..bfd52666a 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -783,7 +783,7 @@ "message": "Popup player" }, "popupWindowButtons": { - "message": "Add a popup player button to each thumbnail" + "message": "Add a popup-player-button to each thumbnail" }, "position": { "message": "Position" diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json index c23dcb56c..e960fdbb1 100644 --- a/_locales/en_GB/messages.json +++ b/_locales/en_GB/messages.json @@ -741,7 +741,7 @@ "message": "Popup player" }, "popupWindowButtons": { - "message": "Add a popup player button to each thumbnail" + "message": "Add a popup-player-button to each thumbnail" }, "position": { "message": "Position" diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json index c23dcb56c..e960fdbb1 100644 --- a/_locales/en_US/messages.json +++ b/_locales/en_US/messages.json @@ -741,7 +741,7 @@ "message": "Popup player" }, "popupWindowButtons": { - "message": "Add a popup player button to each thumbnail" + "message": "Add a popup-player-button to each thumbnail" }, "position": { "message": "Position" diff --git a/content-scripts/extension-context/youtube-features/appearance/comments/comments.css b/content-scripts/extension-context/youtube-features/appearance/comments/comments.css index aea268a18..eb3a8f608 100644 --- a/content-scripts/extension-context/youtube-features/appearance/comments/comments.css +++ b/content-scripts/extension-context/youtube-features/appearance/comments/comments.css @@ -4,13 +4,12 @@ # Comments # Collapsed # Hidden +# Squared User Images # Hide avatars --------------------------------------------------------------*/ - /*-------------------------------------------------------------- # COLLAPSED --------------------------------------------------------------*/ - html[it-comments='collapsed'] ytd-comments:not([it-activated]) ytd-comments-header-renderer::after { content: 'Show more' !important; } @@ -45,22 +44,26 @@ html[it-comments='collapsed'] ytd-comments:not([it-activated]) ytd-item-section- pointer-events: none !important; } - /*-------------------------------------------------------------- # HIDDEN --------------------------------------------------------------*/ - html[it-comments='hidden'] ytd-comments { display: none !important; } - /*-------------------------------------------------------------- # HIDE AVATARS --------------------------------------------------------------*/ - html[it-hide-author-avatars='true'] ytd-comments #author-thumbnail, html[it-hide-author-avatars='true'] ytd-comments #creator-thumbnail, html[it-hide-author-avatars='true'] ytd-comments #hearted-thumbnail { display: none !important; -} \ No newline at end of file +} +/*-------------------------------------------------------------- +# SQUARED USER IMAGES +--------------------------------------------------------------*/ +html[it-squared-user-images='true'] #avatar.ytd-shelf-renderer, +html[it-squared-user-images='true'] yt-img-shadow, +html[it-squared-user-images='true'] #yt-masthead-user .yt-masthead-user-icon { + border-radius: unset !important; +} diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/content-scripts/extension-context/youtube-features/appearance/details/details.css index 2a2a94753..60af4819b 100644 --- a/content-scripts/extension-context/youtube-features/appearance/details/details.css +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.css @@ -51,7 +51,18 @@ html[it-hide-date='true'] ytd-watch-metadata #info>span:last-child { display: none !important; } + /*-------------------------------------------------------------- +YouTube's detail buttons +--------------------------------------------------------------*/ +html[it-youtubesDetailButtons='remove_labels'] #menu ytd-button-renderer div:nth-child(2), +html[it-youtubesDetailButtons='remove_labels'] #menu ytd-button-renderer .cbox +{display:none;} +html[it-youtubesDetailButtons='hide_labels'] #menu ytd-button-renderer div:nth-child(2) {visibility:hidden} +html[it-youtubesDetailButtons='faint_transparent'] #menu button {opacity:0.5;} +html[it-youtubesDetailButtons='remove'] #menu button {display:none;} +html[it-youtubesDetailButtons='remove_icons'] #menu button div:first-child {display:none;} + /*-------------------------------------------------------------- HIDE LIKE BUTTON --------------------------------------------------------------*/ @@ -231,7 +242,6 @@ div.style-scope.ytd-watch-flexy + ytd-watch-metadata { display: none !important # SHOW DISLIKE RED COLOR --------------------------------------------------------------*/ -html[it-red-dislike-button='true'] #info .top-level-buttons>ytd-toggle-button-renderer:nth-child(2), -html[it-red-dislike-button='true'] #info .top-level-buttons>ytd-toggle-button-renderer:nth-child(2) yt-formatted-string { - color: #fc0000 !important; +html[it-red-dislike-button='true'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer *[aria-pressed='true'] yt-icon { + color: #f02200 !important; } diff --git a/content-scripts/extension-context/youtube-features/appearance/player/player.css b/content-scripts/extension-context/youtube-features/appearance/player/player.css index 332072dd3..3b69676b2 100644 --- a/content-scripts/extension-context/youtube-features/appearance/player/player.css +++ b/content-scripts/extension-context/youtube-features/appearance/player/player.css @@ -316,11 +316,6 @@ html[data-page-type=video][it-player-size='2160p'] * { --it-header-size: 0px !important; } - -/*-------------------------------------------------------------- -# FULL WINDOW ---------------------------------------------------------------*/ - html[data-page-type=video][it-player-size='240p'] { --it-player-size: 240px; } @@ -353,21 +348,69 @@ html[data-page-type=video][it-player-size='2160p'] { --it-player-size: 2160px; } +/*-------------------------------------------------------------- +# MAX WIDTH ON PAGE +--------------------------------------------------------------*/ + +html[data-page-type=video][it-player-size='max_width'] ytd-browse > ytd-two-column-browse-results-renderer { + width: auto !important; + max-width: auto !important;} + +html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #columns.ytd-watch-flexy, +html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #primary.ytd-watch-flexy { + max-width: 100% !important; margin: 2px !important; } + +html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #secondary.ytd-watch-flexy { + margin-right: -12px; } + +html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #below { + margin-left: calc(5vh + 4vw - 35px) !important; } + +html[data-page-type=video][it-player-size='max_width'] { + --it-player-size: 100vh;} + +html[data-page-type=video][it-player-size='max_width'] .ytp-fit-cover-video .html5-main-video { + object-fit: contain !important;} + +html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #player { + margin-top: -24px !important; object-fit: contain !important;} +html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #player-container-outer.ytd-watch-flexy { + max-width: 100% !important;} + +html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #player-container-inner.ytd-watch-flexy { + padding-top: calc(var(--ytd-watch-flexy-max-player-height) + 45px) !important;} + +html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) .html5-video-container { + width: 100% !important; + height: 100% !important;} + +html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) video { + position: static !important; + top: 0 !important; + left: 0 !important; + width: 100% !important; + height: 100% !important; + justify-content: center !important} + +/*-------------------------------------------------------------- +# FULL HEIGHT "Full window" +--------------------------------------------------------------*/ + html[data-page-type=video][it-player-size='full_window'] { - --it-player-size: 100vh; -} + --it-player-size: 100vh;} html[data-page-type=video][it-player-size='full_window'] .ytp-fit-cover-video .html5-main-video { - object-fit: contain !important; -} + object-fit: contain !important;} + +/*-------------------------------------------------------------- +# Max. Width / "FIT TO WINDOW" (needs update) +--------------------------------------------------------------*/ html[data-page-type=video][it-player-size='fit_to_window'] { - --it-player-size: 100vh; -} + --it-player-size: 100vh;} html[data-page-type=video][it-player-size='fit_to_window'] .ytp-fit-cover-video .html5-main-video { - object-fit: contain !important; -} + object-fit: contain !important;} /*-------------------------------------------------------------- # ELEMENTS @@ -408,10 +451,6 @@ html[data-page-type='video'][it-player-size]:not([it-player-size='do_not_change' } -/*-------------------------------------------------------------- -# FIT TO WINDOW ---------------------------------------------------------------*/ - /*-------------------------------------------------------------- # THEATER: ON --------------------------------------------------------------*/ diff --git a/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css b/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css index 7aa912223..c36c00c78 100644 --- a/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css +++ b/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css @@ -2,11 +2,11 @@ >>> SIDEBAR ---------------------------------------------------------------- # Related videos -# Livechat -# Hide playlist # Move sidebar left # Move thumbnails right # Hide thumbnails +# Livechat +# Hide playlist --------------------------------------------------------------*/ /*-------------------------------------------------------------- @@ -68,25 +68,33 @@ html[it-related-videos='collapsed'] #related > ytd-watch-next-secondary-results- pointer-events: none !important; } - /*-------------------------------------------------------------- -# LIVECHAT +# NO PAGE MARGIN --------------------------------------------------------------*/ -html[it-livechat='hidden'] ytd-live-chat-frame#chat { - display: none !important; -} +html[data-page-type=video][it-no-page-margin='true'] ytd-browse > ytd-two-column-browse-results-renderer { + width: auto !important; + max-width: auto !important; } +html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #columns.ytd-watch-flexy, +html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #primary.ytd-watch-flexy { + max-width: 98.5% !important; margin: 2px !important; } -/*-------------------------------------------------------------- -# HIDE PLAYLIST ---------------------------------------------------------------*/ +html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #secondary.ytd-watch-flexy { + margin-right: calc (-12px - 0.4vw -0.4vh) !important;} -html[it-hide-playlist='true'] ytd-playlist-panel-renderer#playlist { - display: none !important; -} +html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #below { + margin-left: calc(4vh + 3vw - 35px) !important;} + +html[data-page-type=video][it-player-size='max_width'] .ytp-fit-cover-video .html5-main-video { + object-fit: contain !important;} +html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #player { + margin-top: -12px !important; object-fit: contain !important;} +html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #player-container-outer.ytd-watch-flexy { + max-width: 98.5% !important;} + /*-------------------------------------------------------------- # MOVE SIDEBAR LEFT --------------------------------------------------------------*/ @@ -97,6 +105,8 @@ html[it-sidebar-left='true'] #head>#upnext order: 7 !important; } +html[it-sidebar-left='true'] #columns>#secondary {margin-left: calc(0.5vw + 4px); margin-right:0.2vw !important;} + /*-------------------------------------------------------------- # MOVE THUMBNAILS RIGHT @@ -114,4 +124,22 @@ html[it-thumbnails-right='true'] ytd-watch-next-secondary-results-renderer ytd-t html[it-thumbnails-hide='true'] ytd-watch-next-secondary-results-renderer ytd-thumbnail, html[it-thumbnails-hide='true'] ytd-watch-next-secondary-results-renderer ytd-playlist-thumbnail { display: none !important; -} \ No newline at end of file +} + + +/*-------------------------------------------------------------- +# LIVECHAT +--------------------------------------------------------------*/ + +html[it-livechat='hidden'] ytd-live-chat-frame#chat { + display: none !important; +} + + +/*-------------------------------------------------------------- +# HIDE PLAYLIST +--------------------------------------------------------------*/ + +html[it-hide-playlist='true'] ytd-playlist-panel-renderer#playlist { + display: none !important; +} diff --git a/content-scripts/extension-context/youtube-features/general/general.css b/content-scripts/extension-context/youtube-features/general/general.css index 31e8935f5..67117cf4f 100644 --- a/content-scripts/extension-context/youtube-features/general/general.css +++ b/content-scripts/extension-context/youtube-features/general/general.css @@ -179,47 +179,47 @@ html[it-scroll-to-top='true'] #it-scroll-to-top:hover { box-shadow: 0 1px 1px 0 #d60024, 0 1px 2px rgb(82, 0, 14, .32) !important; } - - /*-------------------------------------------------------------- -# LIMIT PAGE WIDTH +# NO PAGE MARGIN --------------------------------------------------------------*/ -html[it-limit-page-width='false'] ytd-browse > ytd-two-column-browse-results-renderer { +html[data-page-type=video][it-no-page-margin='true'] ytd-browse > ytd-two-column-browse-results-renderer { width: auto !important; - max-width: auto !important; -} - -html[it-limit-page-width='false'] ytd-watch-flexy:not([fullscreen]) #columns.ytd-watch-flexy, -html[it-limit-page-width='false'] ytd-watch-flexy:not([fullscreen]) #primary.ytd-watch-flexy { - max-width: 100% !important; -} - -html[it-limit-page-width='false'] ytd-watch-flexy:not([fullscreen]) #player-container-outer.ytd-watch-flexy { - max-width: 100% !important; -} - -html[it-limit-page-width='false'] ytd-watch-flexy:not([fullscreen]) #player-container-inner.ytd-watch-flexy { - padding-top: calc(var(--ytd-watch-flexy-max-player-height) + 45px) !important; -} - -html[it-limit-page-width='false'] ytd-watch-flexy:not([fullscreen]) .html5-video-container { - width: 100% !important; - height: 100% !important; -} - -html[it-limit-page-width='false'] ytd-watch-flexy:not([fullscreen]) video { - position: static !important; + max-width: auto !important; } + +html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #columns.ytd-watch-flexy, +html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #primary.ytd-watch-flexy { + max-width: 100% !important; margin: 2px !important; } + +html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #secondary.ytd-watch-flexy { + margin-right: -12px !important;} + +html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #below { + margin-left: calc(4vh + 3vw - 40px) !important;} + +html[data-page-type=video][it-player-size='max_width'] .ytp-fit-cover-video .html5-main-video { + object-fit: contain !important;} + +html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #player { + margin-top: -24px !important; object-fit: contain !important;} +html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #player-container-outer.ytd-watch-flexy { + max-width: 100% !important;} + +html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #player-container-inner.ytd-watch-flexy { + padding-top: calc(var(--ytd-watch-flexy-max-player-height) + 45px) !important;} + +html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) .html5-video-container { + width: 100% !important; + height: 100% !important;} + +html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) video { + position: static !important; top: 0 !important; - left: 0 !important; - + left: 0 !important; width: 100% !important; height: 100% !important; - - object-fit: contain !important; -} - - + justify-content: center !important} + /*-------------------------------------------------------------- # SQUARED USER IMAGES --------------------------------------------------------------*/ diff --git a/content-scripts/extension-context/youtube-features/general/general.js b/content-scripts/extension-context/youtube-features/general/general.js index bb74fc868..51e85b56c 100644 --- a/content-scripts/extension-context/youtube-features/general/general.js +++ b/content-scripts/extension-context/youtube-features/general/general.js @@ -2,8 +2,8 @@ >>> GENERAL: ---------------------------------------------------------------- # YouTube home page -# Collapse of subscription sections -# Only one player instance playing +# Fold subscriptions' sections (collapsed accordion) +# Don't let a second video auto-start at once # Add "Scroll to top" # Confirmation before closing # Default content country diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index bfdfba527..aaae70b2c 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -215,13 +215,13 @@ ImprovedTube.ytElementsHandler = function (node) { }; ImprovedTube.pageType = function () { - if (/^\/watch\?/.test(location.pathname)) { + if (/\/watch\?/.test(location.href)) { document.documentElement.dataset.pageType = 'video'; } else if (location.pathname === '/') { document.documentElement.dataset.pageType = 'home'; - } else if (/^\/subscriptions\?/.test(location.pathname)) { + } else if (/\/subscriptions\?/.test(location.href)) { document.documentElement.dataset.pageType = 'subscriptions'; - } else if (/^\/@|((channel|user|c)\/)[^/]+(?!\/videos)/.test(location.pathname)) { + } else if (/\/@|((channel|user|c)\/)[^/]+(?!\/videos)/.test(location.href)) { document.documentElement.dataset.pageType = 'channel'; } else { document.documentElement.dataset.pageType = 'other'; diff --git a/manifest.json b/manifest.json index a5fb34e83..e6ac9fb99 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "'Improve YouTube!'🎧(for YouTube & Videos)", "description": "__MSG_description_ext__", - "version": "4.0.36", + "version": "4.1", "default_locale": "en", "icons": { "128": "assets/icons/128.png", diff --git a/options-page/skeleton-parts/themes.js b/options-page/skeleton-parts/themes.js index 8672cdef1..1962d1a6c 100644 --- a/options-page/skeleton-parts/themes.js +++ b/options-page/skeleton-parts/themes.js @@ -45,7 +45,6 @@ extension.skeleton.main.layers.section.themes = { } }; - /*-------------------------------------------------------------- # THEMES --------------------------------------------------------------*/ @@ -75,11 +74,75 @@ extension.skeleton.main.layers.section.themes.on.click.section = { text: 'primaryColor', value: [200, 200, 200] }, - theme_text_color: { + + scroll_bar: { + component: 'select', + text: 'scrollBar', + options: [{ + text: 'default', + value: 'default' + }, { + text: 'hidden', + value: 'hidden' + }] + }, + font: { + component: 'select', + text: 'font', + options: [{ + text: 'default', + value: 'Default' + }, { + text: 'Comfortaa', + value: 'Comfortaa' + }, { + text: 'Lato', + value: 'Lato' + }, { + text: 'Marriweather', + value: 'Marriweather' + }, { + text: 'Montserrat', + value: 'Montserrat' + }, { + text: 'Noto Sans', + value: 'Noto+Sans' + }, { + text: 'Open Sans', + value: 'Open+Sans' + }, { + text: 'Oswald', + value: 'Oswald' + }, { + text: 'Poppins', + value: 'Poppins' + }, { + text: 'PT Sans', + value: 'PT+Sans' + }, { + text: 'Raleway', + value: 'Raleway' + }, { + text: 'Roboto Condensed', + value: 'Roboto+Condensed' + }, { + text: 'Roboto Mono', + value: 'Roboto+Mono' + }, { + text: 'Roboto Slab', + value: 'Roboto+Slab' + }, { + text: 'Source Sans Pro', + value: 'Source+Sans+Pro' + }] + }, + theme_text_color: { component: 'color-picker', text: 'textColor', value: [25, 25, 25] - } + }, + + } } } diff --git a/options-page/styles/appearance.css b/options-page/styles/appearance.css index 2988bf7ea..49d30d9ac 100644 --- a/options-page/styles/appearance.css +++ b/options-page/styles/appearance.css @@ -102,9 +102,9 @@ left: 16px; width: calc(70% - 32px); - height: 64px; + height: 32px; min-height: auto; -} +} .satus-section--appearance .satus-button--sidebar { top: 64px; From 3cf780ffa733412cf55c19053b4f329202aa11ca Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 12 Mar 2023 02:21:22 +0100 Subject: [PATCH 0824/1224] just a label --- options-page/skeleton-parts/appearance.js | 183 +++++++++++++-------- options-page/skeleton-parts/general.js | 190 +++++++--------------- options-page/skeleton-parts/player.js | 83 ++++++---- options-page/skeleton-parts/settings.js | 2 +- 4 files changed, 226 insertions(+), 232 deletions(-) diff --git a/options-page/skeleton-parts/appearance.js b/options-page/skeleton-parts/appearance.js index 0c6d17694..41e7fb27b 100644 --- a/options-page/skeleton-parts/appearance.js +++ b/options-page/skeleton-parts/appearance.js @@ -8,7 +8,6 @@ # Footer # Sidebar --------------------------------------------------------------*/ - extension.skeleton.main.layers.section.appearance = { component: "button", variant: "appearance", @@ -139,15 +138,15 @@ extension.skeleton.main.layers.section.appearance.on.click.player = { { text: "fullWindow", value: "full_window", + }, + { + text: "Max. width within the page", + value: "max_width", }, { text: "fitToWindow", value: "fit_to_window", }, - { - text: "144p", - value: "144p", - }, { text: "240p", value: "240p", @@ -442,32 +441,67 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { click: { component: "section", variant: "card", + description: { + component: "select", + text: "description", - hide_details: { - component: "switch", - text: "hideDetails", - tags: "hide,remove", - }, - hide_views_count: { - component: "switch", - text: "hideViewsCount", - tags: "hide,remove", - }, - hide_date: { - component: "switch", - text: "hideDate", + options: [ + { + text: "normal", + value: "normal", + }, + { + text: "expanded", + value: "expanded", + }, + { + text: "hidden", + value: "hidden", + }, + ], tags: "hide,remove", }, - hide_details_button: { + hide_details_button: { component: "button", text: "hideDetailButton", on: { click: { component: "section", variant: "card", - likes: { + youtubesdetailbuttons: { component: "select", - text: "like", + text: "YouTube's detail buttons", + options: [ + { + text: "normal", + value: "normal", + }, + { + text: "Remove names", + value: "remove_labels", + }, + { + text: "Faint/transparent", + value: "faint_transparent", + }, + { + text: "Remove", + value: "remove", + }, + { + text: "Hide names", + value: "hide_labels", + }, + { + text: "Remove icons", + value: "remove_icons", + }, + ], + tags: "hide,remove", + }, + likes: { + component: "select", + text: "'like'", options: [ { text: "normal", @@ -486,7 +520,7 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { }, hide_dislike_button: { component: "select", - text: "dislike", + text: "'dislike'", options: [ { text: "normal", @@ -503,9 +537,13 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { ], tags: "hide,remove", }, + red_dislike_button: { + component: "switch", + text: "redDislikeButton", + }, hide_share_button: { component: "select", - text: "share", + text: "'share'", options: [ { text: "normal", @@ -524,7 +562,7 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { }, hide_download_button: { component: "select", - text: "download", + text: "'download'", options: [ { text: "normal", @@ -543,7 +581,7 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { }, hide_thanks_button: { component: "select", - text: "thanks", + text: "'thanks'", options: [ { text: "normal", @@ -562,7 +600,7 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { }, hide_clip_button: { component: "select", - text: "clip", + text: "'clip'", options: [ { text: "normal", @@ -581,7 +619,7 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { }, hide_save_button: { component: "select", - text: "save", + text: "'save'", options: [ { text: "normal", @@ -600,54 +638,49 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { }, hide_report_button: { component: "switch", - text: "report", + text: "hide 'report'", tags: "hide,remove", }, hide_more_button: { component: "switch", - text: "more", + text: "hide 'more'", tags: "hide,remove", }, }, }, + }, + hide_views_count: { + component: "switch", + text: "hideViewsCount", + tags: "hide,remove", }, - description: { - component: "select", - text: "description", - - options: [ - { - text: "normal", - value: "normal", - }, - { - text: "expanded", - value: "expanded", - }, - { - text: "hidden", - value: "hidden", - }, - ], + hide_details: { + component: "switch", + text: "hideDetails", tags: "hide,remove", }, - how_long_ago_the_video_was_uploaded: { + day_of_week: { component: "switch", - text: "howLongAgoTheVideoWasUploaded", + text: "displayDayOfTheWeak", }, - channel_videos_count: { + hide_date: { component: "switch", - text: "showChannelVideosCount", + text: "hideDate", + tags: "hide,remove", }, - red_dislike_button: { + api: {component: 'section', + variant: 'card', + title: "(Currently requiring a YouTube-API-key: )", + + how_long_ago_the_video_was_uploaded: { component: "switch", - text: "redDislikeButton", + text: "howLongAgoTheVideoWasUploaded", }, - day_of_week: { + channel_videos_count: { component: "switch", - text: "displayDayOfTheWeak", + text: "showChannelVideosCount", }, - }, + },}, }, }; @@ -683,9 +716,14 @@ extension.skeleton.main.layers.section.appearance.on.click.comments = { }, ], }, + squared_user_images: { + component: 'switch', + text: 'squaredUserImages', + tags: 'avatar' + }, hide_author_avatars: { component: "switch", - text: "hideAvatars", + text: "Hide avatars", }, hide_comments_count: { component: "switch", @@ -749,6 +787,23 @@ extension.skeleton.main.layers.section.appearance.on.click.sidebar = { }, ], tags: "right", + }, + no_page_margin: { + component: 'switch', + text: 'To the side! (No page margin)', + value: false + }, + sidebar_left: { + component: "switch", + text: "moveSidebarLeft", + }, + thumbnails_right: { + component: "switch", + text: "moveThumbnailsRight", + }, + thumbnails_hide: { + component: "switch", + text: "hideThumbnails", }, livechat: { component: "select", @@ -772,19 +827,7 @@ extension.skeleton.main.layers.section.appearance.on.click.sidebar = { hide_playlist: { component: "switch", text: "hidePlaylist", - }, - sidebar_left: { - component: "switch", - text: "moveSidebarLeft", - }, - thumbnails_right: { - component: "switch", - text: "moveThumbnailsRight", - }, - thumbnails_hide: { - component: "switch", - text: "hideThumbnails", - }, + }, }, }, }; diff --git a/options-page/skeleton-parts/general.js b/options-page/skeleton-parts/general.js index 4ac2eb035..4a3c385ad 100644 --- a/options-page/skeleton-parts/general.js +++ b/options-page/skeleton-parts/general.js @@ -11,81 +11,7 @@ extension.skeleton.main.layers.section.general = { section_1: { component: 'section', variant: 'card', - - youtube_home_page: { - component: 'select', - text: 'youtubeHomePage', - options: [{ - text: 'home', - value: '/' - }, { - text: 'trending', - value: '/feed/trending' - }, { - text: 'subscriptions', - value: '/feed/subscriptions' - }, { - text: 'history', - value: '/feed/history' - }, { - text: 'watchLater', - value: '/playlist?list=WL' - }, { - text: 'search', - value: 'search' - }, { - text: 'liked', - value: '/playlist?list=LL' - }, { - text: 'library', - value: '/feed/library' - }], - tags: 'trending,subscriptions,history,watch,search' - }, - collapse_of_subscription_sections: { - component: 'switch', - text: 'collapseOfSubscriptionSections' - }, - remove_related_search_results: { - component: 'switch', - text: 'removeRelatedSearchResults' - }, - only_one_player_instance_playing: { - component: 'switch', - text: 'onlyOnePlayerInstancePlaying' - }, - scroll_bar: { - component: 'select', - text: 'scrollBar', - options: [{ - text: 'default', - value: 'default' - }, { - text: 'hidden', - value: 'hidden' - }] - }, - add_scroll_to_top: { - component: 'switch', - text: 'addScrollToTop', - tags: 'up' - }, - limit_page_width: { - component: 'switch', - text: 'limitPageWidth', - value: true - }, - squared_user_images: { - component: 'switch', - text: 'squaredUserImages', - tags: 'avatar' - }, - confirmation_before_closing: { - component: 'switch', - text: 'confirmationBeforeClosing', - tags: 'random prevent close exit' - }, - default_content_country: { +default_content_country: { component: 'select', text: 'defaultContentCountry', options: [{ @@ -1089,62 +1015,46 @@ extension.skeleton.main.layers.section.general = { value: "AX" } ] - }, - popup_window_buttons: { - component: 'switch', - text: 'popupWindowButtons', - }, - font: { + }, + youtube_home_page: { component: 'select', - text: 'font', + text: 'youtubeHomePage', options: [{ - text: 'default', - value: 'Default' - }, { - text: 'Comfortaa', - value: 'Comfortaa' - }, { - text: 'Lato', - value: 'Lato' - }, { - text: 'Marriweather', - value: 'Marriweather' - }, { - text: 'Montserrat', - value: 'Montserrat' - }, { - text: 'Noto Sans', - value: 'Noto+Sans' - }, { - text: 'Open Sans', - value: 'Open+Sans' - }, { - text: 'Oswald', - value: 'Oswald' + text: 'home', + value: '/' }, { - text: 'Poppins', - value: 'Poppins' + text: 'trending', + value: '/feed/trending' }, { - text: 'PT Sans', - value: 'PT+Sans' + text: 'subscriptions', + value: '/feed/subscriptions' }, { - text: 'Raleway', - value: 'Raleway' + text: 'history', + value: '/feed/history' }, { - text: 'Roboto Condensed', - value: 'Roboto+Condensed' + text: 'watchLater', + value: '/playlist?list=WL' }, { - text: 'Roboto Mono', - value: 'Roboto+Mono' + text: 'search', + value: 'search' }, { - text: 'Roboto Slab', - value: 'Roboto+Slab' + text: 'liked', + value: '/playlist?list=LL' }, { - text: 'Source Sans Pro', - value: 'Source+Sans+Pro' - }] - } - }, + text: 'library', + value: '/feed/library' + }], + tags: 'trending,subscriptions,history,watch,search' + }, + collapse_of_subscription_sections: { + component: 'switch', + text: 'collapseOfSubscriptionSections' + }, + remove_related_search_results: { + component: 'switch', + text: 'removeRelatedSearchResults' + }, + }, section_2: { component: 'section', variant: 'card', @@ -1230,7 +1140,20 @@ extension.skeleton.main.layers.section.general = { component: 'section', variant: 'card', title: 'thumbnails', - + hide_animated_thumbnails: { + component: 'switch', + text: 'hideAnimatedThumbnails', + tags: 'preview' + }, + popup_window_buttons: { + component: 'switch', + text: 'popupWindowButtons', + }, + hide_thumbnail_overlay: { + component: 'switch', + text: 'hideThumbnailOverlay', + tags: 'preview' + }, thumbnails_quality: { component: 'select', text: 'thumbnailsQuality', @@ -1254,17 +1177,22 @@ extension.skeleton.main.layers.section.general = { value: 'maxresdefault' }], tags: 'preview quality' - }, - hide_animated_thumbnails: { + } + }, + section_4: { + component: 'section', + variant: 'card', + title: 'more', + add_scroll_to_top: { component: 'switch', - text: 'hideAnimatedThumbnails', - tags: 'preview' + text: 'addScrollToTop', + tags: 'up' }, - hide_thumbnail_overlay: { + confirmation_before_closing: { component: 'switch', - text: 'hideThumbnailOverlay', - tags: 'preview' - } + text: 'confirmationBeforeClosing', + tags: 'random prevent close exit' + }, } } }, diff --git a/options-page/skeleton-parts/player.js b/options-page/skeleton-parts/player.js index b9dc00baf..68ba074ea 100644 --- a/options-page/skeleton-parts/player.js +++ b/options-page/skeleton-parts/player.js @@ -52,6 +52,51 @@ extension.skeleton.main.layers.section.player.on.click = { text: 'autoplay', value: true, storage: 'player_autoplay' + }, + only_one_player_instance_playing: { + component: 'switch', + text: 'onlyOnePlayerInstancePlaying', + on: { + click: function () { + if (satus.storage.get('only_one_player_instance_playing')) { + if (satus.storage.get('player_autopause_when_switching_tabs')) { + this.nextSibling.click(); + } + } + } + } + }, + autopause_when_switching_tabs: { + component: 'switch', + text: 'autopauseWhenSwitchingTabs', + storage: 'player_autopause_when_switching_tabs', + on: { click: function () { + if (satus.storage.get('player_autopause_when_switching_tabs')) { + if (satus.storage.get('only_one_player_instance_playing')) { + // this.previousSibling.click(); + } + } + } + } + }, + ads: { + text: 'ads', + component: 'select', + options: [{ + text: 'onAllVideos', + value: 'all_videos', + default: 'true' + }, { + text: 'blockAll', + value: 'block_all' + }, { + text: 'blockMusic', + value: 'block_music' + }, { + text: 'onSubscribedChannels', + value: 'subscribed_channels' + }], + storage: 'player_ads' }, quality: { component: 'select', @@ -104,6 +149,11 @@ extension.skeleton.main.layers.section.player.on.click = { max: 400, value: 100 }, + player_loudness_normalization: { + component: 'switch', + text: 'loudnessNormalization', + value: true + }, player_forced_playback_speed: { component: 'switch', text: 'forcedPlaybackSpeed', @@ -123,6 +173,7 @@ extension.skeleton.main.layers.section.player.on.click = { max: 8, step: .05 }, + forced_play_video_from_the_beginning: { component: 'switch', text: 'forcedPlayVideoFromTheBeginning' @@ -131,12 +182,7 @@ extension.skeleton.main.layers.section.player.on.click = { component: 'switch', text: 'autoFullscreen', storage: 'player_autofullscreen' - }, - autopause_when_switching_tabs: { - component: 'switch', - text: 'autopauseWhenSwitchingTabs', - storage: 'player_autopause_when_switching_tabs' - }, + }, subtitles: { component: 'button', text: 'subtitles', @@ -896,6 +942,7 @@ extension.skeleton.main.layers.section.player.on.click = { value: 'av1-vp8-vp9' } ] + }, player_60fps: { component: 'switch', @@ -908,30 +955,6 @@ extension.skeleton.main.layers.section.player.on.click = { value: false, storage: 'player_SDR' }, - player_loudness_normalization: { - component: 'switch', - text: 'loudnessNormalization', - value: true - }, - ads: { - text: 'ads', - component: 'select', - options: [{ - text: 'onAllVideos', - value: 'all_videos', - default: 'true' - }, { - text: 'onSubscribedChannels', - value: 'subscribed_channels' - }, { - text: 'blockMusic', - value: 'block_music' - }, { - text: 'blockAll', - value: 'block_all' - }], - storage: 'player_ads' - } }, section_2: { component: 'section', diff --git a/options-page/skeleton-parts/settings.js b/options-page/skeleton-parts/settings.js index ffe0016f8..7ee816344 100644 --- a/options-page/skeleton-parts/settings.js +++ b/options-page/skeleton-parts/settings.js @@ -197,7 +197,7 @@ extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.firstSectio layer_animation_scale: { component: 'select', text: 'layerAnimationScale', - value: 1, + value: 0, options: [{ text: '0x', value: 0 From f09dc31ba90a76cb151f286f86837a6aee84d1a1 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 12 Mar 2023 02:41:09 +0100 Subject: [PATCH 0825/1224] Update player.js --- options-page/skeleton-parts/player.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/options-page/skeleton-parts/player.js b/options-page/skeleton-parts/player.js index 68ba074ea..ae2b16af2 100644 --- a/options-page/skeleton-parts/player.js +++ b/options-page/skeleton-parts/player.js @@ -73,7 +73,7 @@ extension.skeleton.main.layers.section.player.on.click = { on: { click: function () { if (satus.storage.get('player_autopause_when_switching_tabs')) { if (satus.storage.get('only_one_player_instance_playing')) { - // this.previousSibling.click(); + this.previousSibling.click(); } } } From f41cbd902e541a6c4cda85a629bcf9b60efb5eb0 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 12 Mar 2023 02:43:35 +0100 Subject: [PATCH 0826/1224] Update player.js --- options-page/skeleton-parts/player.js | 28 +++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/options-page/skeleton-parts/player.js b/options-page/skeleton-parts/player.js index ae2b16af2..aa76718c9 100644 --- a/options-page/skeleton-parts/player.js +++ b/options-page/skeleton-parts/player.js @@ -52,6 +52,19 @@ extension.skeleton.main.layers.section.player.on.click = { text: 'autoplay', value: true, storage: 'player_autoplay' + }, + autopause_when_switching_tabs: { + component: 'switch', + text: 'autopauseWhenSwitchingTabs', + storage: 'player_autopause_when_switching_tabs', + on: { click: function () { + if (satus.storage.get('player_autopause_when_switching_tabs')) { + if (satus.storage.get('only_one_player_instance_playing')) { + this.nextSibling.click(); + } + } + } + } }, only_one_player_instance_playing: { component: 'switch', @@ -60,25 +73,12 @@ extension.skeleton.main.layers.section.player.on.click = { click: function () { if (satus.storage.get('only_one_player_instance_playing')) { if (satus.storage.get('player_autopause_when_switching_tabs')) { - this.nextSibling.click(); + this.previousSibling.click(); } } } } }, - autopause_when_switching_tabs: { - component: 'switch', - text: 'autopauseWhenSwitchingTabs', - storage: 'player_autopause_when_switching_tabs', - on: { click: function () { - if (satus.storage.get('player_autopause_when_switching_tabs')) { - if (satus.storage.get('only_one_player_instance_playing')) { - this.previousSibling.click(); - } - } - } - } - }, ads: { text: 'ads', component: 'select', From 08d414d38d1462b17d980543ba3d3788763b65a2 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 12 Mar 2023 03:17:04 +0100 Subject: [PATCH 0827/1224] haha --- _locales/am/messages.json | 2 +- _locales/bg/messages.json | 2 +- _locales/ca/messages.json | 2 +- _locales/cs/messages.json | 2 +- _locales/da/messages.json | 2 +- _locales/en/messages.json | 2 +- _locales/en_GB/messages.json | 2 +- _locales/en_US/messages.json | 2 +- _locales/et/messages.json | 2 +- _locales/fa/messages.json | 2 +- _locales/fi/messages.json | 2 +- _locales/fil/messages.json | 2 +- _locales/gu/messages.json | 2 +- _locales/he/messages.json | 2 +- _locales/hu/messages.json | 2 +- _locales/kn/messages.json | 2 +- _locales/lt/messages.json | 2 +- _locales/lv/messages.json | 2 +- _locales/ml/messages.json | 2 +- _locales/mr/messages.json | 2 +- _locales/ms/messages.json | 2 +- _locales/sl/messages.json | 2 +- _locales/sr/messages.json | 2 +- _locales/sv/messages.json | 2 +- _locales/sw/messages.json | 2 +- _locales/ta/messages.json | 2 +- _locales/te/messages.json | 2 +- _locales/th/messages.json | 2 +- _locales/uk/messages.json | 2 +- 29 files changed, 29 insertions(+), 29 deletions(-) diff --git a/_locales/am/messages.json b/_locales/am/messages.json index a7a2e96d2..5e951967c 100644 --- a/_locales/am/messages.json +++ b/_locales/am/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/bg/messages.json +++ b/_locales/bg/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/ca/messages.json +++ b/_locales/ca/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/cs/messages.json +++ b/_locales/cs/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/da/messages.json b/_locales/da/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/da/messages.json +++ b/_locales/da/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/en/messages.json b/_locales/en/messages.json index bfd52666a..7dc6e2a1f 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -96,7 +96,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json index e960fdbb1..6547017cc 100644 --- a/_locales/en_GB/messages.json +++ b/_locales/en_GB/messages.json @@ -87,7 +87,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json index e960fdbb1..6547017cc 100644 --- a/_locales/en_US/messages.json +++ b/_locales/en_US/messages.json @@ -87,7 +87,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/et/messages.json b/_locales/et/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/et/messages.json +++ b/_locales/et/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/fa/messages.json b/_locales/fa/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/fa/messages.json +++ b/_locales/fa/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/fi/messages.json b/_locales/fi/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/fi/messages.json +++ b/_locales/fi/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/fil/messages.json b/_locales/fil/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/fil/messages.json +++ b/_locales/fil/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/gu/messages.json b/_locales/gu/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/gu/messages.json +++ b/_locales/gu/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/he/messages.json b/_locales/he/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/he/messages.json +++ b/_locales/he/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/hu/messages.json b/_locales/hu/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/hu/messages.json +++ b/_locales/hu/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/kn/messages.json b/_locales/kn/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/kn/messages.json +++ b/_locales/kn/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/lt/messages.json b/_locales/lt/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/lt/messages.json +++ b/_locales/lt/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/lv/messages.json b/_locales/lv/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/lv/messages.json +++ b/_locales/lv/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/ml/messages.json b/_locales/ml/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/ml/messages.json +++ b/_locales/ml/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/mr/messages.json b/_locales/mr/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/mr/messages.json +++ b/_locales/mr/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/ms/messages.json b/_locales/ms/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/ms/messages.json +++ b/_locales/ms/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/sl/messages.json b/_locales/sl/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/sl/messages.json +++ b/_locales/sl/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/sr/messages.json +++ b/_locales/sr/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/sw/messages.json b/_locales/sw/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/sw/messages.json +++ b/_locales/sw/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/ta/messages.json b/_locales/ta/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/ta/messages.json +++ b/_locales/ta/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/te/messages.json b/_locales/te/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/te/messages.json +++ b/_locales/te/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/th/messages.json b/_locales/th/messages.json index 6613a116a..cf6b5703c 100644 --- a/_locales/th/messages.json +++ b/_locales/th/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json index d9ce466b0..10c7509c1 100644 --- a/_locales/uk/messages.json +++ b/_locales/uk/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Pause while not visible" + "message": "Auto-pause while I'm in another tab" }, "autoplay": { "message": "Autoplay" From 76d6008fc1ea27a0ac180f689fdec509c8d8f0cf Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 12 Mar 2023 07:25:00 +0100 Subject: [PATCH 0828/1224] English --- _locales/am/messages.json | 4 ++-- _locales/bg/messages.json | 4 ++-- _locales/ca/messages.json | 4 ++-- _locales/cs/messages.json | 4 ++-- _locales/da/messages.json | 4 ++-- _locales/en/messages.json | 4 ++-- _locales/en_GB/messages.json | 4 ++-- _locales/en_US/messages.json | 4 ++-- _locales/et/messages.json | 4 ++-- _locales/fa/messages.json | 4 ++-- _locales/fi/messages.json | 4 ++-- _locales/fil/messages.json | 4 ++-- _locales/gu/messages.json | 4 ++-- _locales/he/messages.json | 4 ++-- _locales/hu/messages.json | 4 ++-- _locales/kn/messages.json | 4 ++-- _locales/lt/messages.json | 4 ++-- _locales/lv/messages.json | 4 ++-- _locales/ml/messages.json | 4 ++-- _locales/mr/messages.json | 4 ++-- _locales/ms/messages.json | 4 ++-- _locales/si/messages.json | 2 +- _locales/sl/messages.json | 4 ++-- _locales/sr/messages.json | 4 ++-- _locales/sv/messages.json | 4 ++-- _locales/sw/messages.json | 4 ++-- _locales/ta/messages.json | 4 ++-- _locales/te/messages.json | 4 ++-- _locales/th/messages.json | 4 ++-- _locales/uk/messages.json | 4 ++-- 30 files changed, 59 insertions(+), 59 deletions(-) diff --git a/_locales/am/messages.json b/_locales/am/messages.json index 5e951967c..e09a061f4 100644 --- a/_locales/am/messages.json +++ b/_locales/am/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/bg/messages.json +++ b/_locales/bg/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/ca/messages.json +++ b/_locales/ca/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/cs/messages.json +++ b/_locales/cs/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/da/messages.json b/_locales/da/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/da/messages.json +++ b/_locales/da/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 7dc6e2a1f..fbe808c47 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -96,7 +96,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -720,7 +720,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json index 6547017cc..e81ad347e 100644 --- a/_locales/en_GB/messages.json +++ b/_locales/en_GB/messages.json @@ -87,7 +87,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -678,7 +678,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json index 6547017cc..e81ad347e 100644 --- a/_locales/en_US/messages.json +++ b/_locales/en_US/messages.json @@ -87,7 +87,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -678,7 +678,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/et/messages.json b/_locales/et/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/et/messages.json +++ b/_locales/et/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/fa/messages.json b/_locales/fa/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/fa/messages.json +++ b/_locales/fa/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/fi/messages.json b/_locales/fi/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/fi/messages.json +++ b/_locales/fi/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/fil/messages.json b/_locales/fil/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/fil/messages.json +++ b/_locales/fil/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/gu/messages.json b/_locales/gu/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/gu/messages.json +++ b/_locales/gu/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/he/messages.json b/_locales/he/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/he/messages.json +++ b/_locales/he/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/hu/messages.json b/_locales/hu/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/hu/messages.json +++ b/_locales/hu/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/kn/messages.json b/_locales/kn/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/kn/messages.json +++ b/_locales/kn/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/lt/messages.json b/_locales/lt/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/lt/messages.json +++ b/_locales/lt/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/lv/messages.json b/_locales/lv/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/lv/messages.json +++ b/_locales/lv/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/ml/messages.json b/_locales/ml/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/ml/messages.json +++ b/_locales/ml/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/mr/messages.json b/_locales/mr/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/mr/messages.json +++ b/_locales/mr/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/ms/messages.json b/_locales/ms/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/ms/messages.json +++ b/_locales/ms/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/si/messages.json b/_locales/si/messages.json index 0a864a7a7..61ccf3987 100644 --- a/_locales/si/messages.json +++ b/_locales/si/messages.json @@ -696,7 +696,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "video හෝ playlist new window එකකින් open කරන්න" diff --git a/_locales/sl/messages.json b/_locales/sl/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/sl/messages.json +++ b/_locales/sl/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/sr/messages.json +++ b/_locales/sr/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/sw/messages.json b/_locales/sw/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/sw/messages.json +++ b/_locales/sw/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/ta/messages.json b/_locales/ta/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/ta/messages.json +++ b/_locales/ta/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/te/messages.json b/_locales/te/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/te/messages.json +++ b/_locales/te/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/th/messages.json b/_locales/th/messages.json index cf6b5703c..b67342973 100644 --- a/_locales/th/messages.json +++ b/_locales/th/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json index 10c7509c1..fbc5e40d4 100644 --- a/_locales/uk/messages.json +++ b/_locales/uk/messages.json @@ -90,7 +90,7 @@ "message": "Auto-fullscreen" }, "autopauseWhenSwitchingTabs": { - "message": "Auto-pause while I'm in another tab" + "message": "Auto-pause while I'm not in the tab" }, "autoplay": { "message": "Autoplay" @@ -702,7 +702,7 @@ "message": "Only active on YouTube" }, "onlyOnePlayerInstancePlaying": { - "message": "Don't let a 2nd player instance play a once" + "message": "Pause while I watch a 2nd video" }, "openPopupPlayer": { "message": "Open video/playlist in a new window" From 53448ec0652f9600b34dfda714924e71d266a24e Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 12 Mar 2023 10:17:57 +0100 Subject: [PATCH 0829/1224] Version README.md --- .github/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/README.md b/.github/README.md index 9711db684..c0f3b3d97 100644 --- a/.github/README.md +++ b/.github/README.md @@ -14,23 +14,23 @@
Chrome Web Store4.0.1.174.1
Microsoft Edge Addons3.8004.1
Firefox Add-ons4.0.1.174.1
Opera Add-ons3.9204.1
Whale Store3.8004.1
or install manually latest
Whale Store 4.1
or install manuallylatest
+
or install manually : latest

Contributing

For more info on how to contribute please see the contribution wiki. @@ -68,7 +65,7 @@ is a lightweight & powerful extension to enrich your experience & enable your ch -

+

[Report a bug] From db9d6072b8311e61b2c5a410fd6f29063545ff2a Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 13 Mar 2023 20:22:17 +0100 Subject: [PATCH 0831/1224] Update manifest.json --- manifest.json => manifest3.json | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename manifest.json => manifest3.json (100%) diff --git a/manifest.json b/manifest3.json similarity index 100% rename from manifest.json rename to manifest3.json From 354c4f9993cf51414d672bd9ae68839814652e6f Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 13 Mar 2023 20:23:30 +0100 Subject: [PATCH 0832/1224] Update manifest2.json --- manifest2.json => manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename manifest2.json => manifest.json (99%) diff --git a/manifest2.json b/manifest.json similarity index 99% rename from manifest2.json rename to manifest.json index 654e4497a..5564bc39d 100644 --- a/manifest2.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!'🎧(for YouTube & Videos)", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "4.0.36", + "version": "4.1", "default_locale": "en", "icons": { From 4f79d56fad5e3ef42441e4afa720b1446269476f Mon Sep 17 00:00:00 2001 From: Mohamed Lebda Date: Wed, 15 Mar 2023 04:20:06 +0200 Subject: [PATCH 0833/1224] new option #1563 --- content-scripts/website-context/init.js | 3 ++- .../youtube-features/appearance.js | 15 +++++++++++++++ options-page/skeleton-parts/appearance.js | 4 ++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/content-scripts/website-context/init.js b/content-scripts/website-context/init.js index 65aa0e613..7c0e994e9 100644 --- a/content-scripts/website-context/init.js +++ b/content-scripts/website-context/init.js @@ -69,7 +69,8 @@ ImprovedTube.init = function () { document.addEventListener('yt-navigate-finish', function () { ImprovedTube.pageType(); - + ImprovedTube.commentsSidebarPosition(); + if (ImprovedTube.elements.player && ImprovedTube.elements.player.setPlaybackRate) { ImprovedTube.videoPageUpdate(); ImprovedTube.initPlayer(); diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index 2f956cbb8..47476b116 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -149,6 +149,21 @@ ImprovedTube.playerRemainingDuration = function () { } }; +/*------------------------------------------------------------------------------ +4.2.1.6 Comments position to sidebar +------------------------------------------------------------------------------*/ +ImprovedTube.commentsSidebarPosition=()=>{ + console.log("from new function") + if(ImprovedTube.storage.comments_sidebar_position){ + document.querySelector("#columns").appendChild(document.querySelector("#comments"),function() { + console.log("comments and its children have been appended to columns")}) + document.querySelector("#primary-inner").appendChild(document.querySelector("#secondary"),function() { + console.log("secondary and its children have been appended to primary-inner")}) + }else{ + document.querySelector("#columns").appendChild(document.querySelector("#secondary")) + document.querySelector("#below").appendChild(document.querySelector("#comments")) + } +} /*------------------------------------------------------------------------------ 4.2.2 SIDEBAR ------------------------------------------------------------------------------*/ diff --git a/options-page/skeleton-parts/appearance.js b/options-page/skeleton-parts/appearance.js index 41e7fb27b..d9fbb0604 100644 --- a/options-page/skeleton-parts/appearance.js +++ b/options-page/skeleton-parts/appearance.js @@ -425,6 +425,10 @@ extension.skeleton.main.layers.section.appearance.on.click.player = { text: "hideScrollForDetails", tags: "remove,hide", }, + comments_sidebar_position: { + component: "switch", + text: "commentsSidebarPosition", + }, }, }, }; From 22d68abb5a36318d7370abc8ba5b2fe382669b9c Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 16 Mar 2023 05:45:28 +0100 Subject: [PATCH 0834/1224] #1536 --- content-scripts/extension-context/init.js | 2 +- .../appearance/header/header.css | 6 ++-- .../youtube-features/general/general.js | 28 +------------------ .../youtube-features/shortcuts.js | 19 +++++++++++-- 4 files changed, 21 insertions(+), 34 deletions(-) diff --git a/content-scripts/extension-context/init.js b/content-scripts/extension-context/init.js index 051a0e4c1..f5a9d34c6 100644 --- a/content-scripts/extension-context/init.js +++ b/content-scripts/extension-context/init.js @@ -29,7 +29,7 @@ function bodyReady() { if (extension.ready && extension.domReady) { extension.features.addScrollToTop(); extension.features.font(); - extension.features.showHeaderOnSearch(); +// extension.features.showHeaderOnSearch(); } } diff --git a/content-scripts/extension-context/youtube-features/appearance/header/header.css b/content-scripts/extension-context/youtube-features/appearance/header/header.css index 8f4b95166..892b4bec1 100644 --- a/content-scripts/extension-context/youtube-features/appearance/header/header.css +++ b/content-scripts/extension-context/youtube-features/appearance/header/header.css @@ -11,9 +11,9 @@ /*-------------------------------------------------------------- # POSITION --------------------------------------------------------------*/ - +/*html[it-header-position=hidden] #masthead-container, + html[it-header-position=hidden_on_video_page][data-page-type=video] #masthead-container, */ html[it-header-position=hidden] tp-yt-app-drawer#guide #guide-spacer, -html[it-header-position=hidden] #masthead-container, html[it-header-position=hidden] tp-yt-app-drawer:not([opened]) #header ytd-topbar-logo-renderer, html[it-header-position=hidden] tp-yt-app-drawer:not([opened]) #header .it-button, html[it-header-position=hover] tp-yt-app-drawer#guide #guide-spacer, @@ -22,7 +22,6 @@ html[it-header-position=hover] tp-yt-app-drawer:not([opened]) #header .it-button html[it-header-position=static] tp-yt-app-drawer#guide #guide-spacer, html[it-header-position=static] tp-yt-app-drawer:not([opened]) #header ytd-topbar-logo-renderer, html[it-header-position=static] tp-yt-app-drawer:not([opened]) #header .it-button, -html[it-header-position=hidden_on_video_page][data-page-type=video] #masthead-container, html[it-header-position=hidden_on_video_page][data-page-type=video] tp-yt-app-drawer#guide #guide-spacer, html[it-header-position=hover_on_video_page][data-page-type=video] tp-yt-app-drawer#guide #guide-spacer { display: none; @@ -55,6 +54,7 @@ html[it-header-position=hover]:not([it-improvedtube-search=true]) #masthead-cont html[it-header-position=hover_on_video_page][data-page-type='video']:not([it-improvedtube-search=true]) #masthead-container { transition: all 250ms ease-in-out; transform: translateY(-75%); + height: 20%; opacity: 0; } diff --git a/content-scripts/extension-context/youtube-features/general/general.js b/content-scripts/extension-context/youtube-features/general/general.js index 51e85b56c..54c121f40 100644 --- a/content-scripts/extension-context/youtube-features/general/general.js +++ b/content-scripts/extension-context/youtube-features/general/general.js @@ -550,30 +550,4 @@ extension.features.thumbnailsQuality = function (anything) { this.thumbnailsQuality.observer.disconnect(); } } -}; - -/*-------------------------------------------------------------- -# SHOW HEADER ON "SEARCH" ---------------------------------------------------------------*/ - -extension.features.showHeaderOnSearch = function (event) { - var search = document.querySelector('input#search'); - if (search) { - - var headerPos = document.documentElement.getAttribute('it-header-position'); - document.documentElement.setAttribute('it-header-position-original', headerPos); - if (headerPos !== 'normal' && headerPos !== 'static') { - - search.addEventListener('focusin', function (e) { - document.documentElement.setAttribute('it-header-position', 'normal'); - }); - - search.addEventListener('focusout', function (e) { - var origHeaderPos = document.documentElement.getAttribute('it-header-position-original'); - origHeaderPos === 'null' ? 'normal' : origHeaderPos; - document.documentElement.setAttribute('it-header-position', origHeaderPos); - }); - - } - } -}; +}; \ No newline at end of file diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/content-scripts/website-context/youtube-features/shortcuts.js index 04b5f726c..20435ace8 100644 --- a/content-scripts/website-context/youtube-features/shortcuts.js +++ b/content-scripts/website-context/youtube-features/shortcuts.js @@ -532,18 +532,31 @@ ImprovedTube.shortcutResetPlaybackSpeed = function () { } }; - /*------------------------------------------------------------------------------ 4.7.19 GO TO SEARCH BOX ------------------------------------------------------------------------------*/ ImprovedTube.shortcutGoToSearchBox = function () { var search = document.querySelector('input#search'); - if (search) { search.focus(); + //SHOW HEADER ON "SEARCH" + var headerPos = document.documentElement.getAttribute('it-header-position'); + if (headerPos){if (headerPos !== 'normal' && headerPos !== 'static') { + document.documentElement.setAttribute('it-header-position-original', headerPos); + + + search.addEventListener('focusin', function (e) { + document.documentElement.setAttribute('it-header-position', 'normal'); + }); + + search.addEventListener('focusout', function (e) { + var origHeaderPos = document.documentElement.getAttribute('it-header-position-original'); + document.documentElement.setAttribute('it-header-position', origHeaderPos); + }); + }} } -}; +} /*------------------------------------------------------------------------------ From 2ec351b6ef38f79d14940fb35f3b25f01e6fc39b Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 16 Mar 2023 05:48:52 +0100 Subject: [PATCH 0835/1224] #1536 --- content-scripts/extension-context/init.js | 1 - content-scripts/website-context/youtube-features/shortcuts.js | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/content-scripts/extension-context/init.js b/content-scripts/extension-context/init.js index f5a9d34c6..312f0f11c 100644 --- a/content-scripts/extension-context/init.js +++ b/content-scripts/extension-context/init.js @@ -29,7 +29,6 @@ function bodyReady() { if (extension.ready && extension.domReady) { extension.features.addScrollToTop(); extension.features.font(); -// extension.features.showHeaderOnSearch(); } } diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/content-scripts/website-context/youtube-features/shortcuts.js index 20435ace8..6ae3cfa74 100644 --- a/content-scripts/website-context/youtube-features/shortcuts.js +++ b/content-scripts/website-context/youtube-features/shortcuts.js @@ -556,7 +556,7 @@ ImprovedTube.shortcutGoToSearchBox = function () { }); }} } -} +}; /*------------------------------------------------------------------------------ From cc5c1bd0e869a8ada0a87fc48ad4a801c4081aea Mon Sep 17 00:00:00 2001 From: Adachima Date: Thu, 16 Mar 2023 12:39:50 +0700 Subject: [PATCH 0836/1224] Fixed ratio bar not showing --- .../youtube-features/appearance/details/details.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/content-scripts/extension-context/youtube-features/appearance/details/details.css index 60af4819b..208889577 100644 --- a/content-scripts/extension-context/youtube-features/appearance/details/details.css +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.css @@ -199,8 +199,8 @@ html[it-hide-more-button='true'] #menu yt-button-shape#button-shape { /* html[it-details-old-style=true] */ .ytd-watch-flexy #info-contents, .ytd-watch-flexy #meta-contents { display: block !important; } -#below.ytd-watch-flexy { top:-20px; } - +ytd-menu-renderer[has-flexible-items] { overflow-y: unset !important; } +ytd-video-primary-info-renderer { padding-bottom: 14px !important; } html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, html[it-description=hidden] div#action-panel-details, From d3204aca6b76ee3ccc8d5dcd8a5483c4b8c93f2b Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 16 Mar 2023 23:23:28 +0100 Subject: [PATCH 0837/1224] #1607 fix --- _locales/ko/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index a1a71114f..e5b8a210d 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -446,7 +446,7 @@ "hideAnnotations": { "message": "설명 숨기기" }, - "Hide avatars": { + "hideAvatars": { "message": "사용자 사진 숨기기" }, "hideCards": { From 5ac43ab6f6c043068be77d038b36617e42e9635c Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 16 Mar 2023 23:31:53 +0100 Subject: [PATCH 0838/1224] Video Description (+Buttons) update (finally) --- .../appearance/details/details.css | 33 ++++++---- .../youtube-features/appearance.js | 10 +-- .../youtube-features/settings.js | 63 ++++++++++--------- options-page/skeleton-parts/appearance.js | 24 ++++--- 4 files changed, 77 insertions(+), 53 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/content-scripts/extension-context/youtube-features/appearance/details/details.css index 208889577..c4b0995e3 100644 --- a/content-scripts/extension-context/youtube-features/appearance/details/details.css +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.css @@ -198,19 +198,30 @@ html[it-hide-more-button='true'] #menu yt-button-shape#button-shape { --------------------------------------------------------------*/ /* html[it-details-old-style=true] */ -.ytd-watch-flexy #info-contents, .ytd-watch-flexy #meta-contents { display: block !important; } -ytd-menu-renderer[has-flexible-items] { overflow-y: unset !important; } -ytd-video-primary-info-renderer { padding-bottom: 14px !important; } - -html[it-description=hidden] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, -html[it-description=hidden] div#action-panel-details, -html[it-description=hidden] ytd-expander.ytd-video-secondary-info-renderer, -html[it-description=hidden] #description-inline-expander { + +html[it-description='normal'] { } +html[it-description='expanded'] { } + +html[it-description='classic'] .ytd-watch-flexy #info-contents, +html[it-description='classic'] .ytd-watch-flexy #meta-contents { display: block !important; } +html[it-description='classic'] #below.ytd-watch-flexy { top:-20px; } +html[it-description='classic'] ytd-menu-renderer[has-flexible-items] { overflow-y: unset !important; } +html[it-description='classic'] ytd-video-primary-info-renderer { padding-bottom: 14px !important; } + +html[it-description='classic_expanded'] .ytd-watch-flexy #info-contents, +html[it-description='classic_expanded'] .ytd-watch-flexy #meta-contents { display: block !important; } +html[it-description='classic_expanded'] #below.ytd-watch-flexy { top:-20px; } +html[it-description='classic_expanded'] ytd-menu-renderer[has-flexible-items] { overflow-y: unset !important; } +html[it-description='classic_expanded'] ytd-video-primary-info-renderer { padding-bottom: 14px !important; } + +html[it-description='hidden'] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, +html[it-description='hidden'] div#action-panel-details, +html[it-description='hidden'] ytd-expander.ytd-video-secondary-info-renderer, +html[it-description='hidden'] #description-inline-expander { display: none !important; } - -div.style-scope.ytd-watch-flexy + ytd-watch-metadata { display: none !important;} - +html[it-description='classic'] div.style-scope.ytd-watch-flexy + ytd-watch-metadata { display: none !important;} +html[it-description='classic_expanded'] div.style-scope.ytd-watch-flexy + ytd-watch-metadata { display: none !important;} /*-------------------------------------------------------------- # HOW LONG AGO THE VIDEO WAS UPLOADED diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index 47476b116..d893ee2df 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -308,10 +308,11 @@ ImprovedTube.channelVideosCount = function () { ------------------------------------------------------------------------------*/ ImprovedTube.description = function (el) { - if (this.storage.description === "expanded") { - if(el){el.click();} else {document.querySelector("#more").click();} - } - else if (this.storage.description === "normal") {document.querySelector("#less").click();} + if (this.storage.description === "classic_expanded" || this.storage.description === "expanded" ) { + if(el){el.click();} else {document.querySelector("#more").click() || document.querySelector("#expand").click() ;} + ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer();} + else if (this.storage.description === "normal") {document.querySelector("#less").click() || document.querySelector("#collapse").click() ; + ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer();} }; /*------------------------------------------------------------------------------ @@ -354,3 +355,4 @@ ImprovedTube.dayOfWeek = function () { element.remove(); } }; + diff --git a/content-scripts/website-context/youtube-features/settings.js b/content-scripts/website-context/youtube-features/settings.js index bcff5b735..2c1e433dd 100644 --- a/content-scripts/website-context/youtube-features/settings.js +++ b/content-scripts/website-context/youtube-features/settings.js @@ -159,29 +159,47 @@ ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { return false; } - var section = document.querySelector('#info #menu-container.ytd-video-primary-info-renderer'); + var section = document.querySelector('#flex.ytd-video-primary-info-renderer'); + if (this.storage.description === "normal" || this.storage.description === "expanded") + {var section = document.querySelector('#subscribe-button');} if (section && !document.querySelector('.improvedtube-player-button')) { - if (this.storage.below_player_screenshot !== false) { + + + if (this.storage.below_player_loop !== false) { var button = document.createElement('button'), svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); button.className = 'improvedtube-player-button'; - button.dataset.tooltip = 'Screenshot'; + button.dataset.tooltip = 'Loop'; + + svg.style.opacity = '.5'; svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'); + path.setAttributeNS(null, 'd', 'M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z'); - button.onclick = ImprovedTube.screenshot; + button.onclick = function () { + var video = ImprovedTube.elements.video, + svg = this.children[0]; + + if (video.hasAttribute('loop')) { + video.removeAttribute('loop'); + + svg.style.opacity = '.5'; + } else if (!/ad-showing/.test(ImprovedTube.elements.player.className)) { + video.setAttribute('loop', ''); + + svg.style.opacity = '1'; + } + }; svg.appendChild(path); button.appendChild(svg); - section.parentNode.insertBefore(button, section); + section.insertAdjacentElement('afterend', button) } - - if (this.storage.below_player_pip !== false) { + if (this.storage.below_player_pip !== false) { var button = document.createElement('button'), svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); @@ -203,41 +221,26 @@ ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { svg.appendChild(path); button.appendChild(svg); - section.parentNode.insertBefore(button, section); + section.insertAdjacentElement('afterend', button) } - - if (this.storage.below_player_loop !== false) { + + if (this.storage.below_player_screenshot !== false) { var button = document.createElement('button'), svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); button.className = 'improvedtube-player-button'; - button.dataset.tooltip = 'Loop'; - - svg.style.opacity = '.5'; + button.dataset.tooltip = 'Screenshot'; svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z'); - - button.onclick = function () { - var video = ImprovedTube.elements.video, - svg = this.children[0]; - - if (video.hasAttribute('loop')) { - video.removeAttribute('loop'); - - svg.style.opacity = '.5'; - } else if (!/ad-showing/.test(ImprovedTube.elements.player.className)) { - video.setAttribute('loop', ''); + path.setAttributeNS(null, 'd', 'M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'); - svg.style.opacity = '1'; - } - }; + button.onclick = ImprovedTube.screenshot; svg.appendChild(path); button.appendChild(svg); - section.parentNode.insertBefore(button, section); + section.insertAdjacentElement('afterend', button) } } }; diff --git a/options-page/skeleton-parts/appearance.js b/options-page/skeleton-parts/appearance.js index d9fbb0604..aa2faf110 100644 --- a/options-page/skeleton-parts/appearance.js +++ b/options-page/skeleton-parts/appearance.js @@ -134,14 +134,14 @@ extension.skeleton.main.layers.section.appearance.on.click.player = { { text: "doNotChange", value: "do_not_change", - }, - { - text: "fullWindow", - value: "full_window", }, { text: "Max. width within the page", value: "max_width", + }, + { + text: "fullWindow", + value: "full_window", }, { text: "fitToWindow", @@ -425,10 +425,6 @@ extension.skeleton.main.layers.section.appearance.on.click.player = { text: "hideScrollForDetails", tags: "remove,hide", }, - comments_sidebar_position: { - component: "switch", - text: "commentsSidebarPosition", - }, }, }, }; @@ -457,6 +453,14 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { { text: "expanded", value: "expanded", + }, + { + text: "Classic", + value: "classic", + }, + { + text: "Classic expanded", + value: "classic_expanded", }, { text: "hidden", @@ -719,6 +723,10 @@ extension.skeleton.main.layers.section.appearance.on.click.comments = { value: "hidden", }, ], + }, + comments_sidebar_position: { + component: "switch", + text: "SidebarPosition", }, squared_user_images: { component: 'switch', From 27e9f1c939457d2890f30919d3fb2b9414d69dd4 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 16 Mar 2023 23:32:56 +0100 Subject: [PATCH 0839/1224] no right margin, for all screen sizes --- .../appearance/player/player.css | 31 +++++++------ .../appearance/sidebar/sidebar.css | 45 ++++++++++--------- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/player/player.css b/content-scripts/extension-context/youtube-features/appearance/player/player.css index 3b69676b2..e32443db6 100644 --- a/content-scripts/extension-context/youtube-features/appearance/player/player.css +++ b/content-scripts/extension-context/youtube-features/appearance/player/player.css @@ -351,31 +351,24 @@ html[data-page-type=video][it-player-size='2160p'] { /*-------------------------------------------------------------- # MAX WIDTH ON PAGE --------------------------------------------------------------*/ - html[data-page-type=video][it-player-size='max_width'] ytd-browse > ytd-two-column-browse-results-renderer { width: auto !important; max-width: auto !important;} html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #columns.ytd-watch-flexy, html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #primary.ytd-watch-flexy { - max-width: 100% !important; margin: 2px !important; } - -html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #secondary.ytd-watch-flexy { - margin-right: -12px; } + max-width: 98.5% !important; margin: 2px !important; } html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #below { - margin-left: calc(5vh + 4vw - 35px) !important; } - -html[data-page-type=video][it-player-size='max_width'] { - --it-player-size: 100vh;} - -html[data-page-type=video][it-player-size='max_width'] .ytp-fit-cover-video .html5-main-video { - object-fit: contain !important;} + margin-left: max(18px, calc(21vw - 230px)) !important; + margin-right:max(18px, calc(13vw - 130px)) !important; + max-width: 1600px !important; + } html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #player { - margin-top: -24px !important; object-fit: contain !important;} + margin-top: -20px !important; object-fit: contain !important;} html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #player-container-outer.ytd-watch-flexy { - max-width: 100% !important;} + max-width: 98.5% !important;} html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #player-container-inner.ytd-watch-flexy { padding-top: calc(var(--ytd-watch-flexy-max-player-height) + 45px) !important;} @@ -392,6 +385,12 @@ html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([full height: 100% !important; justify-content: center !important} +html[data-page-type=video][it-player-size='max_width'] { + --it-player-size: 100vh;} + +html[data-page-type=video][it-player-size='max_width'] .ytp-fit-cover-video .html5-main-video { + object-fit: contain !important;} + /*-------------------------------------------------------------- # FULL HEIGHT "Full window" --------------------------------------------------------------*/ @@ -403,7 +402,7 @@ html[data-page-type=video][it-player-size='full_window'] .ytp-fit-cover-video .h object-fit: contain !important;} /*-------------------------------------------------------------- -# Max. Width / "FIT TO WINDOW" (needs update) +# "FIT TO WINDOW" (needs update) --------------------------------------------------------------*/ html[data-page-type=video][it-player-size='fit_to_window'] { @@ -411,7 +410,7 @@ html[data-page-type=video][it-player-size='fit_to_window'] { html[data-page-type=video][it-player-size='fit_to_window'] .ytp-fit-cover-video .html5-main-video { object-fit: contain !important;} - + /*-------------------------------------------------------------- # ELEMENTS --------------------------------------------------------------*/ diff --git a/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css b/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css index c36c00c78..9872a4e7a 100644 --- a/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css +++ b/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css @@ -72,27 +72,32 @@ html[it-related-videos='collapsed'] #related > ytd-watch-next-secondary-results- # NO PAGE MARGIN --------------------------------------------------------------*/ -html[data-page-type=video][it-no-page-margin='true'] ytd-browse > ytd-two-column-browse-results-renderer { - width: auto !important; - max-width: auto !important; } - html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #columns.ytd-watch-flexy, html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #primary.ytd-watch-flexy { - max-width: 98.5% !important; margin: 2px !important; } - -html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #secondary.ytd-watch-flexy { - margin-right: calc (-12px - 0.4vw -0.4vh) !important;} + max-width: 99% !important; margin: 1px !important; } -html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #below { - margin-left: calc(4vh + 3vw - 35px) !important;} - -html[data-page-type=video][it-player-size='max_width'] .ytp-fit-cover-video .html5-main-video { - object-fit: contain !important;} - -html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #player { - margin-top: -12px !important; object-fit: contain !important;} -html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #player-container-outer.ytd-watch-flexy { - max-width: 98.5% !important;} +@media screen and (max-width: 2300px) and (min-width: 1250px) { + html[data-page-type=video][it-no-page-margin='true'] ytd-browse > ytd-two-column-browse-results-renderer { + width: auto !important; + max-width: auto !important; } + html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #secondary.ytd-watch-flexy { + margin-right: calc (-12px - 0.4vw - 0.4vh) !important;} + html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #below { + margin-left: max(18px, calc(21vw - 230px)) !important; + margin-right:max(18px, calc(13vw - 130px)) !important; + max-width: 1280px !important; } +} + +@media screen and (min-width: 2301px) { + html[data-page-type=video][it-no-page-margin='true'][it-sidebar-left='true'] #secondary + {left: 15px !important;} + html[data-page-type=video][it-no-page-margin='true']:not([it-player-size='max_width']) #secondary + {position:absolute !important; right: 15px; } + html[data-page-type=video][it-no-page-margin='true']:not([it-player-size='1080p']):not([it-player-size='1440p']):not([it-player-size='2160p']):not([it-player-size='custom']):not([it-player-size='max_width']) ytd-watch-flexy:not([fullscreen]) #primary.ytd-watch-flexy { + max-width: 1280px !important; } + html[data-page-type=video][it-no-page-margin='true']:not([it-player-size='1080p']):not([it-player-size='1440p']):not([it-player-size='2160p']):not([it-player-size='custom']):not([it-player-size='max_width']) ytd-watch-flexy:not([fullscreen]) #below { + margin-left: 1px !important;} +} /*-------------------------------------------------------------- @@ -107,7 +112,6 @@ html[it-sidebar-left='true'] #head>#upnext html[it-sidebar-left='true'] #columns>#secondary {margin-left: calc(0.5vw + 4px); margin-right:0.2vw !important;} - /*-------------------------------------------------------------- # MOVE THUMBNAILS RIGHT --------------------------------------------------------------*/ @@ -116,7 +120,6 @@ html[it-thumbnails-right='true'] ytd-watch-next-secondary-results-renderer ytd-t order: 7 !important; } - /*-------------------------------------------------------------- # HIDE THUMBNAILS --------------------------------------------------------------*/ @@ -126,7 +129,6 @@ html[it-thumbnails-hide='true'] ytd-watch-next-secondary-results-renderer ytd-pl display: none !important; } - /*-------------------------------------------------------------- # LIVECHAT --------------------------------------------------------------*/ @@ -135,7 +137,6 @@ html[it-livechat='hidden'] ytd-live-chat-frame#chat { display: none !important; } - /*-------------------------------------------------------------- # HIDE PLAYLIST --------------------------------------------------------------*/ From 3ec8aad1d393a2c5abc13244e7d366db207bf11d Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 17 Mar 2023 00:32:00 +0100 Subject: [PATCH 0840/1224] Themes, [temporary] improvements #1597 #1604 thanks @dodieboy --- .../youtube-features/content-styles.css | 9 +- content-scripts/website-context/init.js | 4 +- .../youtube-features/appearance.js | 14 ++- .../youtube-features/shortcuts.js | 22 ++++- .../youtube-features/themes.js | 93 +++++++++++++++---- options-page/functions.js | 4 +- options-page/skeleton-parts/themes.js | 2 +- 7 files changed, 113 insertions(+), 35 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/content-styles.css b/content-scripts/extension-context/youtube-features/content-styles.css index 0ffd7b7da..5f914f2c6 100644 --- a/content-scripts/extension-context/youtube-features/content-styles.css +++ b/content-scripts/extension-context/youtube-features/content-styles.css @@ -31,6 +31,13 @@ /*------------------------------------------------------------------------------ 3.3 THEMES ------------------------------------------------------------------------------*/ +/*update*/ +[it-theme=block] #cinematics, +[it-theme=desert] #cinematics {display:none !important} +[it-theme=dawn] #cinematics, +[it-theme=sunset] #cinematics, +[it-theme=night] #cinematics { mix-blend-mode: lighten !important} +[it-theme=plain] #cinematics { filter:invert(100%) !important; mix-blend-mode: darken !important} /*BLACK*/ @@ -539,7 +546,7 @@ html[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=sy [it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, [data-system-color-scheme=dark][it-theme=desert][it-schedule=system_peference_dark] ytd-masthead, [data-system-color-scheme=light][it-theme=desert][it-schedule=system_peference_light] ytd-masthead { - background: #bee3db !important; + background: #ced3cb !important; --yt-swatch-primary: rgb(35, 35, 35) !important; --yt-swatch-primary-darker: rgb(32, 32, 32) !important; --yt-swatch-text: #555 !important; diff --git a/content-scripts/website-context/init.js b/content-scripts/website-context/init.js index 7c0e994e9..51f7c5d06 100644 --- a/content-scripts/website-context/init.js +++ b/content-scripts/website-context/init.js @@ -42,7 +42,7 @@ new MutationObserver(function (mutationList) { ImprovedTube.init = function () { ImprovedTube.pageType(); - ImprovedTube.themes(); + var yt_player_updated = function () { document.dispatchEvent(new CustomEvent('improvedtube-player-loaded')); @@ -64,7 +64,7 @@ ImprovedTube.init = function () { if (window.matchMedia) { document.documentElement.dataset.systemColorScheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; - } + } ImprovedTube.themes(); }; document.addEventListener('yt-navigate-finish', function () { diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index d893ee2df..8eebcd8fe 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -152,17 +152,16 @@ ImprovedTube.playerRemainingDuration = function () { /*------------------------------------------------------------------------------ 4.2.1.6 Comments position to sidebar ------------------------------------------------------------------------------*/ -ImprovedTube.commentsSidebarPosition=()=>{ - console.log("from new function") - if(ImprovedTube.storage.comments_sidebar_position){ +ImprovedTube.commentsSidebarPosition=()=>{ if(ImprovedTube.storage.comments_sidebar_position){ document.querySelector("#columns").appendChild(document.querySelector("#comments"),function() { - console.log("comments and its children have been appended to columns")}) + }) document.querySelector("#primary-inner").appendChild(document.querySelector("#secondary"),function() { - console.log("secondary and its children have been appended to primary-inner")}) + // console.log("secondary and its children have been appended to primary-inner") + }) }else{ document.querySelector("#columns").appendChild(document.querySelector("#secondary")) document.querySelector("#below").appendChild(document.querySelector("#comments")) - } + } } /*------------------------------------------------------------------------------ 4.2.2 SIDEBAR @@ -354,5 +353,4 @@ ImprovedTube.dayOfWeek = function () { } else if (element) { element.remove(); } -}; - +}; \ No newline at end of file diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/content-scripts/website-context/youtube-features/shortcuts.js index 6ae3cfa74..87e2cc4eb 100644 --- a/content-scripts/website-context/youtube-features/shortcuts.js +++ b/content-scripts/website-context/youtube-features/shortcuts.js @@ -558,7 +558,6 @@ ImprovedTube.shortcutGoToSearchBox = function () { } }; - /*------------------------------------------------------------------------------ 4.7.20 ACTIVATE FULLSCREEN ------------------------------------------------------------------------------*/ @@ -625,18 +624,37 @@ ImprovedTube.shortcutSubscribe = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutDarkTheme = function () { + pref = ''; + cookieValue = '400'; + if (document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)) { + pref = document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)[1]; + } + + if (document.documentElement.hasAttribute('dark')) { + cookieValue = '80000'; document.documentElement.removeAttribute('dark'); document.querySelector('ytd-masthead').removeAttribute('dark'); document.documentElement.removeAttribute('it-themes'); + document.getElementById("cinematics").style.visibility = 'hidden'; + } else { document.documentElement.setAttribute('dark', ''); document.querySelector('ytd-masthead').setAttribute('dark', ''); document.documentElement.setAttribute('it-themes', 'true'); + document.getElementById("cinematics").style.visibility = 'visibile'; + document.getElementById("cinematics").style.mixBlendMode = 'lighten'; } + + + if (pref.match(/(f6=)[^\&]+/)){ + cookieValue = pref.replace(/(f6=)[^\&]+/, cookieValue); + } else { + cookieValue = pref + "&f6=" + cookieValue; + } + ImprovedTube.setCookie('PREF', cookieValue); }; - /*------------------------------------------------------------------------------ 4.7.26 CUSTOM MINI PLAYER ------------------------------------------------------------------------------*/ diff --git a/content-scripts/website-context/youtube-features/themes.js b/content-scripts/website-context/youtube-features/themes.js index 8cb34bc9e..e6565ccca 100644 --- a/content-scripts/website-context/youtube-features/themes.js +++ b/content-scripts/website-context/youtube-features/themes.js @@ -71,31 +71,86 @@ ImprovedTube.themes = function () { '--yt-spec-base-background:' + primary_color + '!important;' + '--yt-spec-raised-background:' + primary_color + '!important;' + '--yt-spec-menu-background:' + primary_color + '!important;' + + 'ytd-masthead { background-color:' + primary_color + '!important;}' + '--yt-spec-inverted-background: #fff;' + - '}'; - + '}'; + + '#cinematics { visibility: hidden !important;}' + + '#cinematics { display: none !important;}' this.elements.my_colors = style; - - document.documentElement.appendChild(style); + document.documentElement.appendChild(style); + if (document.documentElement.hasAttribute('dark')) { + cookieValue = '80000'; document.documentElement.removeAttribute('dark'); + document.querySelector('ytd-masthead').removeAttribute('dark'); + document.getElementById("cinematics").style.visibility = 'hidden'; + document.getElementById("cinematics").style.display = 'none !important';} + document.querySelector('ytd-masthead').style.backgroundColor = ''+primary_color+''; } else { if (this.elements.my_colors) { this.elements.my_colors.remove(); } - if (this.storage.theme === 'default' ){ - if (document.documentElement.hasAttribute('it-themes') === true){ - document.documentElement.setAttribute('it-themes', 'false'); - location.reload(); - } - } else if (this.storage.theme === 'dark' || this.storage.theme === 'black') { - if (!document.documentElement.hasAttribute('dark')) { - document.documentElement.setAttribute('dark', ''); - document.documentElement.setAttribute('it-themes', 'true'); - } - } else { - if (document.documentElement.hasAttribute('dark')) { - document.documentElement.removeAttribute('dark'); - document.documentElement.removeAttribute('it-themes'); + if (this.storage.theme) { + if (this.storage.theme === 'default'){ + if (document.documentElement.hasAttribute('it-themes') === true){ + document.documentElement.removeAttribute('it-themes'); + document.documentElement.setAttribute('it-themes', 'false'); + } + if( document.documentElement.hasAttribute('dark') || document.querySelector('ytd-masthead').hasAttribute('dark')){ + cookieValue = '80000'; document.documentElement.removeAttribute('dark'); + document.querySelector('ytd-masthead').removeAttribute('dark'); + document.getElementById("cinematics").style.visibility = 'hidden'; + document.getElementById("cinematics").style.display = 'none !important'; + document.querySelector('ytd-masthead').style.backgroundColor ='#fffff7' ;} + } + else if (this.storage.theme === 'dark'){ cookieValue = '400'; document.documentElement.setAttribute('dark', ''); + document.querySelector('ytd-masthead').setAttribute('dark', '') + document.getElementById("cinematics").style.visibility = 'visible'; + document.querySelector('ytd-masthead').style.backgroundColor ='#000'; + } + else if (this.storage.theme === 'dawn' || this.storage.theme === 'sunset' || this.storage.theme === 'night' ){ + document.querySelector('ytd-masthead').removeAttribute('dark'); + document.getElementById("cinematics").style.mixBlendMode = 'lighten'; + document.getElementById("cinematics").style.visibility = 'visible'; + document.getElementById("cinematics").style.filter = 'invert(0)'; + } else if (this.storage.theme === 'plain'){ + document.querySelector('ytd-masthead').removeAttribute('dark'); + document.getElementById("cinematics").style.visibility = 'visible'; + document.getElementById("cinematics").style.filter = 'invert(1)'; + document.getElementById("cinematics").style.mixBlendMode = 'darken' + } else if (this.storage.theme === 'desert'){ + document.querySelector('ytd-masthead').removeAttribute('dark'); + document.getElementById("cinematics").style.visibility = 'hidden'; + document.getElementById("cinematics").style.display = 'none'; + } else if (this.storage.theme === 'black') { + document.documentElement.setAttribute('it-themes', 'true'); + document.getElementById("cinematics").style.visibility = 'hidden'; + document.getElementById("cinematics").style.display = 'none !important'; + document.querySelector('ytd-masthead').style.backgroundColor ='#000'; + cookieValue = '80000'; + document.querySelector('ytd-masthead').removeAttribute('dark'); + document.documentElement.removeAttribute('dark'); + } +} else {if (document.documentElement.hasAttribute('it-themes') === true){ + document.getElementById("cinematics").style.visibility = 'hidden'; + document.getElementById("cinematics").style.display = 'none !important'; } - } + if (document.documentElement.hasAttribute('dark') || document.querySelector('ytd-masthead').hasAttribute('dark')){ + cookieValue = '400'; document.documentElement.setAttribute('dark', ''); + document.querySelector('ytd-masthead').setAttribute('dark', ''); + document.getElementById("cinematics").style.visibility = 'visible'; } + }; +} + pref = ''; + if (cookieValue){ + if (document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)) { + pref = document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)[1]; + } + + + if (pref.match(/(f6=)[^\&]+/)){ + cookieValue = pref.replace(/(f6=)[^\&]+/, cookieValue); + } else { + cookieValue = pref + "&f6=" + cookieValue; + } + ImprovedTube.setCookie('PREF', cookieValue); } }; \ No newline at end of file diff --git a/options-page/functions.js b/options-page/functions.js index fca420609..e74995da5 100644 --- a/options-page/functions.js +++ b/options-page/functions.js @@ -17,14 +17,14 @@ extension.attributes = function () { title_version: true, it_general: true, it_appearance: true, - it_themes: false, + it_themes: true, it_player: true, it_playlist: true, it_channel: true, it_shortcuts: true, it_blacklist: true, it_analyzer: true, - layer_animation_scale: true + layer_animation_scale: false }; for (var attribute in attributes) { diff --git a/options-page/skeleton-parts/themes.js b/options-page/skeleton-parts/themes.js index 1962d1a6c..e978f722f 100644 --- a/options-page/skeleton-parts/themes.js +++ b/options-page/skeleton-parts/themes.js @@ -68,7 +68,7 @@ extension.skeleton.main.layers.section.themes.on.click.section = { section: { component: 'section', variant: 'card', - + group: 'theme', theme_primary_color: { component: 'color-picker', text: 'primaryColor', From e22f3049bd14479f030c3434cbd41c5ae1b79fdd Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 17 Mar 2023 02:02:10 +0100 Subject: [PATCH 0841/1224] debug --- .../youtube-features/themes.js | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/content-scripts/website-context/youtube-features/themes.js b/content-scripts/website-context/youtube-features/themes.js index e6565ccca..c40ef874b 100644 --- a/content-scripts/website-context/youtube-features/themes.js +++ b/content-scripts/website-context/youtube-features/themes.js @@ -78,30 +78,29 @@ ImprovedTube.themes = function () { '#cinematics { display: none !important;}' this.elements.my_colors = style; document.documentElement.appendChild(style); - if (document.documentElement.hasAttribute('dark')) { + if (document.documentElement.hasAttribute('dark') !== null && document.documentElement.hasAttribute('dark')) { cookieValue = '80000'; document.documentElement.removeAttribute('dark'); document.querySelector('ytd-masthead').removeAttribute('dark'); document.getElementById("cinematics").style.visibility = 'hidden'; document.getElementById("cinematics").style.display = 'none !important';} document.querySelector('ytd-masthead').style.backgroundColor = ''+primary_color+''; - } else { - if (this.elements.my_colors) { + } else if (this.elements.my_colors) { this.elements.my_colors.remove(); - } - if (this.storage.theme) { + if (this.storage.theme) { if (this.storage.theme === 'default'){ - if (document.documentElement.hasAttribute('it-themes') === true){ + if (document.documentElement.hasAttribute('it-themes') !== null && document.documentElement.hasAttribute('it-themes') === true){ document.documentElement.removeAttribute('it-themes'); document.documentElement.setAttribute('it-themes', 'false'); } - if( document.documentElement.hasAttribute('dark') || document.querySelector('ytd-masthead').hasAttribute('dark')){ + if( ( document.documentElement.hasAttribute('dark') !== null && document.documentElement.hasAttribute('dark') ) || ( document.querySelector('ytd-masthead').hasAttribute('dark') !== null && document.querySelector('ytd-masthead').hasAttribute('dark')) + ){ cookieValue = '80000'; document.documentElement.removeAttribute('dark'); document.querySelector('ytd-masthead').removeAttribute('dark'); document.getElementById("cinematics").style.visibility = 'hidden'; document.getElementById("cinematics").style.display = 'none !important'; document.querySelector('ytd-masthead').style.backgroundColor ='#fffff7' ;} } - else if (this.storage.theme === 'dark'){ cookieValue = '400'; document.documentElement.setAttribute('dark', ''); + else if (this.storage.theme === 'dark'){ c = '400'; document.documentElement.setAttribute('dark', ''); document.querySelector('ytd-masthead').setAttribute('dark', '') document.getElementById("cinematics").style.visibility = 'visible'; document.querySelector('ytd-masthead').style.backgroundColor ='#000'; @@ -128,19 +127,20 @@ ImprovedTube.themes = function () { cookieValue = '80000'; document.querySelector('ytd-masthead').removeAttribute('dark'); document.documentElement.removeAttribute('dark'); - } -} else {if (document.documentElement.hasAttribute('it-themes') === true){ + } } else {if (document.documentElement.hasAttribute('it-themes') !== null && document.documentElement.hasAttribute('it-themes') === true){ document.getElementById("cinematics").style.visibility = 'hidden'; document.getElementById("cinematics").style.display = 'none !important'; } - if (document.documentElement.hasAttribute('dark') || document.querySelector('ytd-masthead').hasAttribute('dark')){ + if ( (document.documentElement.hasAttribute('dark') !== null && document.documentElement.hasAttribute('dark') ) + || ( document.querySelector('ytd-masthead').hasAttribute('dark') !== null && document.querySelector('ytd-masthead').hasAttribute('dark') ) + ){ cookieValue = '400'; document.documentElement.setAttribute('dark', ''); document.querySelector('ytd-masthead').setAttribute('dark', ''); document.getElementById("cinematics").style.visibility = 'visible'; } - }; + } } pref = ''; - if (cookieValue){ + if (typeof cookieValue !== 'undefined'){ if (document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)) { pref = document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)[1]; } @@ -153,4 +153,4 @@ ImprovedTube.themes = function () { } ImprovedTube.setCookie('PREF', cookieValue); } -}; \ No newline at end of file +}; From 91d5e29eeec74bbd7c0c4ab2d501aa186babd15e Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 17 Mar 2023 04:06:14 +0100 Subject: [PATCH 0842/1224] (some new colors) & please check https://github.com/code-for-charity/SATUS/ --- assets/satus/satus.css | 3105 ++++++---- assets/satus/satus.js | 5196 +++++++++++------ .../youtube-features/content-styles.css | 19 +- .../youtube-features/appearance.js | 12 +- .../youtube-features/shortcuts.js | 9 +- .../youtube-features/themes.js | 4 +- 6 files changed, 5213 insertions(+), 3132 deletions(-) diff --git a/assets/satus/satus.css b/assets/satus/satus.css index c2bb6a476..43cd38a5a 100644 --- a/assets/satus/satus.css +++ b/assets/satus/satus.css @@ -1,1446 +1,2073 @@ -:where([class^="satus"])::-webkit-scrollbar { - width: 4px; -} -:where([class^="satus"])::-webkit-scrollbar:hover { - width: 8px; -} -:where([class^="satus"])::-webkit-scrollbar-thumb { - background: rgba(var(--satus-light), 0.2); -} -:where([class^="satus"])::-webkit-scrollbar-thumb:hover { - background: rgba(var(--satus-light), 0.3); -} +/*-------------------------------------------------------------- +# SCROLLBAR +--------------------------------------------------------------*/ + +:where([class^='satus'])::-webkit-scrollbar { + width: 4px; +} + +:where([class^='satus'])::-webkit-scrollbar:hover { + width: 8px; +} + +:where([class^='satus'])::-webkit-scrollbar-thumb { + background: rgba(var(--satus-light), .2); +} + +:where([class^='satus'])::-webkit-scrollbar-thumb:hover { + background: rgba(var(--satus-light), .3); +} +/*-------------------------------------------------------------- +# ANIMATIONS +--------------------------------------------------------------*/ + @keyframes fadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} + from { + opacity: 0; + } + to { + opacity: 1; + } +} + @keyframes fadeInLeft { - from { - opacity: 0; - transform: translateX(-100%); - } - to { - opacity: 1; - transform: translateX(0); - } -} + from { + opacity: 0; + transform: translateX(-100%); + } + to { + opacity: 1; + transform: translateX(0); + } +} + @keyframes fadeInRight { - from { - opacity: 0; - transform: translateX(100%); - } - to { - opacity: 1; - transform: translateX(0); - } -} + from { + opacity: 0; + transform: translateX(100%); + } + to { + opacity: 1; + transform: translateX(0); + } +} + @keyframes fadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - } -} + from { + opacity: 1; + } + to { + opacity: 0; + } +} + @keyframes fadeOutLeft { - from { - opacity: 1; - transform: translateX(0); - } - to { - opacity: 0; - transform: translateX(-50%); - } -} + from { + opacity: 1; + transform: translateX(0); + } + to { + opacity: 0; + transform: translateX(-50%); + } +} + @keyframes fadeOutRight { - from { - opacity: 1; - transform: translateX(0); - } - to { - opacity: 0; - transform: translateX(50%); - } -} + from { + opacity: 1; + transform: translateX(0); + } + to { + opacity: 0; + transform: translateX(50%); + } +} + @keyframes zoomIn { - from { - transform: scale(0.8); - opacity: 0; - } - to { - transform: scale(1); - opacity: 1; - } -} + from { + transform: scale(.8); + opacity: 0; + } + to { + transform: scale(1); + opacity: 1; + } +} + @keyframes zoomOut { - from { - transform: scale(1); - opacity: 1; - } - to { - transform: scale(0.8); - opacity: 0; - } -} + from { + transform: scale(1); + opacity: 1; + } + to { + transform: scale(.8); + opacity: 0; + } +} +/*-------------------------------------------------------------- +>>> THEMES +--------------------------------------------------------------*/ + .satus-base { - --satus-light: 0, 20, 82; - --satus-primary: #ff4158; - --satus-alert-background--error: #501616; - --satus-alert-border--error: 1px solid #6f1f1f; - --satus-alert-foreground--error: #d77070; - --satus-alert-background--success: rgb(246, 180, 101, 0.32); - --satus-alert-border--success: 1px solid rgb(246, 180, 101, 0.6); - --satus-alert-foreground--success: rgb(184, 115, 30); - --satus-base-background: #f3f4f6; - --satus-base-foreground: #565e76; - --satus-checkbox-background: #f3f4f6; - --satus-checkbox-border: #dcdfe5; - --satus-checkbox-foreground: rgb(255, 255, 255, 0.96); - --satus-divider: rgba(var(--satus-light), 0.1); - --satus-header-background: #fff; - --satus-header-foreground: inherit; - --satus-header-shadow: 0 1px 0 #dcdee5; - --satus-layers-background: var(--satus-base-background); - --satus-layers-foreground: inherit; - --satus-section-background: #fff; - --satus-section-border: #dcdee5; - --satus-section-foreground: inherit; - --satus-sidebar-background: #fff; - --satus-sidebar-foreground: inherit; - --satus-sidebar-shadow: #dcdee5; - --satus-modal-foreground: inherit; - --satus-modal-background: #fff; - --satus-modal-shadow: 0 1px 4px #7d86a1; - --satus-tabs-background: rgba(var(--satus-light), 0.04); - --satus-tabs-foreground: #fff; - --satus-text-field-background: #edf0f2; - --satus-text-field-border: #dcdee5; - --satus-text-field-color: #7d8ba1; - --satus-text-field-selection: rgb(149, 166, 178, 0.35); - --satus-text-field-cursor: #fa0; - --satus-switch-track: #e1e4ea; - --satus-switch-track--checked: var(--satus-primary); - --satus-switch-thumb: #fff; - --satus-input-text-background: #e8e8e3; - --satus-input-text-border: #d6d6cd; - --satus-input-text-text: #848471; -} -.satus-base[theme="dark"] { - --satus-light: 255, 255, 255; - --satus-primary: #3691bf; - --satus-alert-background--error: #501616; - --satus-alert-border--error: 1px solid #6f1f1f; - --satus-alert-foreground--error: #d77070; - --satus-alert-background--success: #143648; - --satus-alert-border--success: 1px solid #1d4f67; - --satus-alert-foreground--success: #50a4ce; - --satus-base-background: #151528; - --satus-base-foreground: #fafafa; - --satus-header-background: #313172; - --satus-header-shadow: transparent; - --satus-section-background: #232343; - --satus-section-border: #232343; - --satus-modal-background: #313172; - --satus-modal-shadow: 0 1px 4px #22222f; - --satus-switch-track: #52527a; -} -:where([class^="satus"]) { - box-sizing: border-box; -} -:where([class^="satus"])[hidden]:not([hidden="false"]) { - display: none; -} -:where([class^="satus"])[transparent] { - opacity: 0; -} + --satus-light: 0, 20, 82; + --satus-primary: #ff4158; + --satus-alert-background--error: #501616; + --satus-alert-border--error: 1px solid #6f1f1f; + --satus-alert-foreground--error: #d77070; + --satus-alert-background--success: rgb(246, 180, 101, .32); + --satus-alert-border--success: 1px solid rgb(246, 180, 101, .6); + --satus-alert-foreground--success: rgb(184, 115, 30); + --satus-base-background: #f3f4f6; + --satus-base-foreground: #565e76; + --satus-checkbox-background: #f3f4f6; + --satus-checkbox-border: #dcdfe5; + --satus-checkbox-foreground: rgb(255, 255, 255, .96); + --satus-divider: rgba(var(--satus-light), .1); + --satus-header-background: #fff; + --satus-header-foreground: inherit; + --satus-header-shadow: 0 1px 0 #dcdee5; + --satus-layers-background: var(--satus-base-background); + --satus-layers-foreground: inherit; + --satus-section-background: #fff; + --satus-section-border: #dcdee5; + --satus-section-foreground: inherit; + --satus-sidebar-background: #fff; + --satus-sidebar-foreground: inherit; + --satus-sidebar-shadow: #dcdee5; + --satus-modal-foreground: inherit; + --satus-modal-background: #fff; + --satus-modal-shadow: 0 1px 4px #7d86a1; + --satus-tabs-background: rgba(var(--satus-light), .04); + --satus-tabs-foreground: #fff; + --satus-text-field-background: #edf0f2; + --satus-text-field-border: #dcdee5; + --satus-text-field-color: #7d8ba1; + --satus-text-field-selection: rgb(149, 166, 178, .35); + --satus-text-field-cursor: #fa0; + --satus-switch-track: #e1e4ea; + --satus-switch-track--checked: var(--satus-primary); + --satus-switch-thumb: #fff; + --satus-input-text-background: #e8e8e3; + --satus-input-text-border: #d6d6cd; + --satus-input-text-text: #848471; +} + +.satus-base[theme=dark] { + --satus-light: 255, 255, 255; + --satus-primary: #3691bf; + --satus-alert-background--error: #501616; + --satus-alert-border--error: 1px solid #6f1f1f; + --satus-alert-foreground--error: #d77070; + --satus-alert-background--success: #143648; + --satus-alert-border--success: 1px solid #1d4f67; + --satus-alert-foreground--success: #50a4ce; + --satus-base-background: #151528; + --satus-base-foreground: #fafafa; + --satus-header-background: #313172; + --satus-header-shadow: transparent; + --satus-section-background: #232343; + --satus-section-border: #232343; + --satus-modal-background: #313172; + --satus-modal-shadow: 0 1px 4px #22222f; + --satus-switch-track: #52527a; +} +/*-------------------------------------------------------------- +>>> NORMALIZE +--------------------------------------------------------------*/ + +:where([class^='satus']) { + box-sizing: border-box; +} + +:where([class^='satus'])[hidden]:not([hidden='false']) { + display: none; +} + +:where([class^='satus'])[transparent] { + opacity: 0; +} +/*-------------------------------------------------------------- +>>> MODAL +---------------------------------------------------------------- +# Container +# Scrim +# Surface +# Variants + # Vertical menu +--------------------------------------------------------------*/ + + +/*-------------------------------------------------------------- +# CONTAINER +--------------------------------------------------------------*/ + .satus-modal { - position: fixed; - z-index: 9; - top: 0; - left: 0; - display: flex; - width: 100vw; - height: 100vh; - justify-content: center; - align-items: center; -} + position: fixed; + z-index: 9; + top: 0; + left: 0; + display: flex; + width: 100vw; + height: 100vh; + justify-content: center; + align-items: center; +} + + +/*-------------------------------------------------------------- +# SCRIM +--------------------------------------------------------------*/ + .satus-modal__scrim { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - animation: fadeIn 150ms linear forwards; - opacity: 0; - background: rgba(0, 0, 0, 0.16); - backdrop-filter: blur(8px); -} + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + animation: fadeIn 150ms linear forwards; + opacity: 0; + background: rgba(0, 0, 0, .16); + backdrop-filter: blur(8px); +} + .satus-modal--closing .satus-modal__scrim { - animation: fadeOut 70ms linear forwards; -} + animation: fadeOut 70ms linear forwards; +} + + +/*-------------------------------------------------------------- +# SURFACE +--------------------------------------------------------------*/ + .satus-modal__surface { - display: flex; - overflow-y: auto; - flex-direction: column; - box-sizing: border-box; - width: 95%; - min-width: 240px; - max-width: 560px; - max-height: 80%; - margin: 8px; - padding: 12px 16px; - transform: scale(0.8); - animation: zoomIn 150ms linear forwards; - animation-delay: 20ms; - opacity: 0; - color: var(--satus-modal-foreground); - border-radius: 3px; - background-color: var(--satus-modal-background); - box-shadow: var(--satus-modal-shadow); -} + display: flex; + overflow-y: auto; + flex-direction: column; + box-sizing: border-box; + width: 95%; + min-width: 240px; + max-width: 560px; + max-height: 80%; + margin: 8px; + padding: 12px 16px; + transform: scale(.8); + animation: zoomIn 150ms linear forwards; + animation-delay: 20ms; + opacity: 0; + color: var(--satus-modal-foreground); + border-radius: 3px; + background-color: var(--satus-modal-background); + box-shadow: var(--satus-modal-shadow); +} + .satus-modal--closing .satus-modal__surface { - animation: zoomOut 70ms linear forwards; + animation: zoomOut 70ms linear forwards; } + .satus-modal__content { - margin: 6px 0 12px; + margin: 6px 0 12px; } + .satus-section--actions { - justify-content: flex-end; -} -.satus-section--actions > :not(:first-child) { - margin-left: 8px; -} + justify-content: flex-end; +} +.satus-section--actions > *:not(:first-child) { + margin-left: 8px; +} + + +/*-------------------------------------------------------------- +# VARIANTS +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# VERTICAL MENU +--------------------------------------------------------------*/ + .satus-modal--vertical-menu .satus-modal__surface { - position: absolute; - top: 8px; - right: 8px; - left: auto; - min-width: 180px; - max-width: 180px; - margin: 0; - padding: 8px 0; - transform-origin: right top; -} -.satus-modal--vertical-menu - .satus-modal__surface - > [class^="satus"]:where(:not(.satus-divider)) { - height: 36px; - padding: 0 16px; - border-radius: 0; -} -.satus-modal--vertical-menu .satus-modal__surface > .satus-span { - font-size: 13px; - font-weight: 500; - margin: 6px 0; - padding: 0 12px; - height: auto; -} -.satus-modal--vertical-menu .satus-modal__surface > .satus-tabs { - margin: 0 12px; - border-radius: 3px; - height: 26px; - padding: 0; -} + position: absolute; + top: 8px; + right: 8px; + left: auto; + min-width: 180px; + max-width: 180px; + margin: 0; + padding: 8px 0; + transform-origin: right top; +} + +.satus-modal--vertical-menu .satus-modal__surface>[class^='satus']:where(:not(.satus-divider)) { + height: 36px; + padding: 0 16px; + border-radius: 0; +} + +.satus-modal--vertical-menu .satus-modal__surface>.satus-span { + font-size: 13px; + font-weight: 500; + margin: 6px 0; + padding: 0 12px; + height: auto; +} + +.satus-modal--vertical-menu .satus-modal__surface>.satus-tabs { + margin: 0 12px; + border-radius: 3px; + height: 26px; + padding: 0; +} + .satus-modal--vertical-menu .satus-select svg, .satus-modal--vertical-menu .satus-button svg { - margin: 0 14px 0 0; - opacity: 0.64; - flex: 0 0 18px; + margin: 0 14px 0 0; + opacity: .64; + flex: 0 0 18px; } + .satus-modal--vertical-menu .satus-button .satus-span { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; } + .satus-modal--vertical-menu .satus-switch:hover { - cursor: pointer; - background-color: rgba(var(--satus-light), 0.06); + cursor: pointer; + + background-color: rgba(var(--satus-light), .06); } + .satus-modal--vertical-menu .satus-switch:focus { - background-color: rgba(var(--satus-light), 0.08); + background-color: rgba(var(--satus-light), .08); } +/*-------------------------------------------------------------- +>>> GRID +--------------------------------------------------------------*/ + .satus-grid { - display: flex; - align-items: stretch; - height: 100%; - padding: 8px; -} + display: flex; + align-items: stretch; + height: 100%; + padding: 8px; +} +/*-------------------------------------------------------------- +>>> TEXT FIELD +---------------------------------------------------------------- +# Parts + # Container + # Input + # +# Syntax highlighting + # Regular expression +--------------------------------------------------------------*/ + .satus-text-field { - display: flex; - min-width: 240px; - height: 36px; - color: var(--satus-text-field-foreground, inherit); - border: 1px solid var(--satus-text-field-border); - border-radius: 4px; - background: var(--satus-text-field-background); - align-items: center; - justify-content: space-between; -} + display: flex; + + min-width: 240px; + height: 36px; + + color: var(--satus-text-field-foreground, inherit); + border: 1px solid var(--satus-text-field-border); + border-radius: 4px; + background: var(--satus-text-field-background); + + align-items: center; + justify-content: space-between; +} + .satus-text-field__container { - position: relative; - overflow: hidden; - height: 100%; - flex: 1; -} -.satus-text-field[line-numbers="false"] .satus-text-field__container { - margin-left: 8px; -} + position: relative; + + overflow: hidden; + + height: 100%; + + flex: 1; +} + +.satus-text-field[line-numbers=false] .satus-text-field__container { + margin-left: 8px; +} + .satus-text-field__textarea, .satus-text-field__input { - font: inherit; - position: absolute; - z-index: 9; - top: 0; - left: 0; - overflow: auto; - width: 100%; - min-width: 0; - max-width: none; - height: 100%; - min-height: 0; - max-height: none; - margin: 0; - padding: 0 12px; - white-space: pre; - opacity: 0; - color: inherit; - border: none; - border-radius: 4px; - outline: none; - appearance: none; - overflow-wrap: normal; -} + font: inherit; + + position: absolute; + z-index: 9; + top: 0; + left: 0; + + overflow: auto; + + width: 100%; + min-width: 0; + max-width: none; + height: 100%; + min-height: 0; + max-height: none; + margin: 0; + padding: 0 12px; + + white-space: pre; + + opacity: 0; + color: inherit; + border: none; + border-radius: 4px; + outline: none; + + appearance: none; + overflow-wrap: normal; +} + .satus-text-field__display { - position: absolute; - top: 0; - left: 0; - display: flex; - width: 100%; - height: 100%; -} + position: absolute; + top: 0; + left: 0; + + display: flex; + + width: 100%; + height: 100%; +} + .satus-text-field__line-numbers { - padding: 0 12px 0 0; - opacity: 0.5; -} -.satus-text-field__line-numbers > span { - font-size: inherit; - display: block; - width: 100%; - text-align: right; -} + padding: 0 12px 0 0; + + opacity: .5; +} + +.satus-text-field__line-numbers>span { + font-size: inherit; + + display: block; + + width: 100%; + + text-align: right; +} + .satus-text-field__pre { - font: inherit; - display: flex; - margin: 0; + font: inherit; + + display: flex; + + margin: 0; } + .satus-text-field__hidden-value { - font: inherit; - position: absolute; - overflow: auto; - white-space: pre; - pointer-events: none; - opacity: 0; - overflow-wrap: normal; -} + font: inherit; + + position: absolute; + + overflow: auto; + + white-space: pre; + pointer-events: none; + + opacity: 0; + + overflow-wrap: normal; +} + .satus-text-field__selection { - position: absolute; - top: 0; - left: 0; - display: none; - width: 0; - height: 22px; - margin: 6px 12px; - border: 1px solid var(--satus-text-field-selection); - border-radius: 3px; - background: var(--satus-text-field-selection); -} + position: absolute; + top: 0; + left: 0; + + display: none; + + width: 0; + height: 22px; + margin: 6px 12px; + + border: 1px solid var(--satus-text-field-selection); + border-radius: 3px; + background: var(--satus-text-field-selection); +} + .satus-text-field__cursor { - position: absolute; - top: 0; - left: 0; - display: none; - width: 2px; - height: 22px; - margin: -3px 0 0; - animation: blink 1s step-end 8; - background: var(--satus-text-field-cursor); -} -.satus-text-field__textarea:focus - + .satus-text-field__display - > .satus-text-field__cursor, -.satus-text-field__textarea:focus - + .satus-text-field__display - > .satus-text-field__selection:not([disabled]), -.satus-text-field__input:focus - + .satus-text-field__display - > .satus-text-field__cursor, -.satus-text-field__input:focus - + .satus-text-field__display - > .satus-text-field__selection:not([disabled]) { - display: block; -} + position: absolute; + top: 0; + left: 0; + + display: none; + + width: 2px; + height: 22px; + margin: -3px 0 0; + + animation: blink 1s step-end 8; + + background: var(--satus-text-field-cursor); +} + +.satus-text-field__textarea:focus+.satus-text-field__display>.satus-text-field__cursor, +.satus-text-field__textarea:focus+.satus-text-field__display>.satus-text-field__selection:not([disabled]), +.satus-text-field__input:focus+.satus-text-field__display>.satus-text-field__cursor, +.satus-text-field__input:focus+.satus-text-field__display>.satus-text-field__selection:not([disabled]) { + display: block; +} + @keyframes blink { - from, - to { - opacity: 1; - } - 50% { - opacity: 0; - } -} -.satus-text-field[multiline="false"] .satus-text-field__pre { - align-items: center; -} -.satus-text-field[multiline="false"] .satus-text-field__cursor { - top: calc(50% - 9px); -} -.satus-text-field__pre > .group { - color: #47ff47; - background-color: rgb(71, 255, 71, 0.16); -} -.satus-text-field__pre > .character-class { - color: #ffc247; - background-color: rgb(255, 170, 0, 0.16); -} -.satus-text-field__pre > .quantifier { - color: #47c2ff; - background-color: rgb(71, 194, 255, 0.16); -} -.satus-text-field__pre > .anchor { - color: #47c2ff; - background-color: rgb(71, 194, 255, 0.16); -} -.satus-text-field__pre > .metasequence { - color: #47ff47; - background-color: rgb(71, 255, 71, 0.16); -} -.satus-text-field__pre > .text { - color: #c4c4d4; - background-color: rgb(196, 196, 212, 0.16); -} + + from, + to { + opacity: 1; + } + + 50% { + opacity: 0; + } +} + + +/*-------------------------------------------------------------- +# MULTILINE: FALSE +--------------------------------------------------------------*/ + +.satus-text-field[multiline=false] .satus-text-field__pre { + align-items: center; +} + +.satus-text-field[multiline=false] .satus-text-field__cursor { + top: calc(50% - 9px); +} + + +/*-------------------------------------------------------------- +# SYNTAX HIGHLIGHTING +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# REGULAR EXPRESSION +--------------------------------------------------------------*/ + +.satus-text-field__pre>.group { + color: #47ff47; + background-color: rgb(71, 255, 71, .16); +} + +.satus-text-field__pre>.character-class { + color: #ffc247; + background-color: rgb(255, 170, 0, .16); +} + +.satus-text-field__pre>.quantifier { + color: #47c2ff; + background-color: rgb(71, 194, 255, .16); +} + +.satus-text-field__pre>.anchor { + color: #47c2ff; + background-color: rgb(71, 194, 255, .16); +} + +.satus-text-field__pre>.metasequence { + color: #47ff47; + background-color: rgb(71, 255, 71, .16); +} + +.satus-text-field__pre>.text { + color: #c4c4d4; + background-color: rgb(196, 196, 212, .16); +} +/*-------------------------------------------------------------- +>>> CHART +--------------------------------------------------------------*/ + .satus-chart { - font-size: 90%; - position: relative; - height: 128px; - margin: 4px 12px; - color: rgba(var(--satus-light), 0.32); - border: 1px dashed rgba(var(--satus-light), 0.2); - border-top: unset; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} + font-size: 90%; + + position: relative; + + height: 128px; + margin: 4px 12px; + + color: rgba(var(--satus-light), .32); + border: 1px dashed rgba(var(--satus-light), .2); + border-top: unset; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + .satus-chart__labels { - position: absolute; - top: 0; - left: 0; - display: flex; - width: 100%; - height: 100%; - justify-content: space-between; - align-items: stretch; -} + position: absolute; + top: 0; + left: 0; + + display: flex; + + width: 100%; + height: 100%; + + justify-content: space-between; + align-items: stretch; +} + .satus-chart__section { - padding: 4px; - flex: 1; + padding: 4px; + + flex: 1; } + .satus-chart__section:not(:last-child) { - border-right: 1px dashed rgba(var(--satus-light), 0.2); + border-right: 1px dashed rgba(var(--satus-light), .2); } + + .satus-chart__bars { - position: absolute; - top: 0; - left: 0; - display: flex; - width: 100%; - height: 100%; - justify-content: space-between; - align-items: stretch; -} + position: absolute; + top: 0; + left: 0; + + display: flex; + + width: 100%; + height: 100%; + + justify-content: space-between; + align-items: stretch; +} + .satus-chart__bar { - display: flex; - flex-direction: column; - margin: 0 1px; - flex: 1; - align-items: center; - justify-content: flex-end; -} + display: flex; + flex-direction: column; + + margin: 0 1px; + + flex: 1; + align-items: center; + justify-content: flex-end; +} + .satus-chart__piece { - width: 100%; + width: 100%; } + .satus-chart__piece:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; } +/*-------------------------------------------------------------- +>>> SELECT +--------------------------------------------------------------*/ + .satus-select { - position: relative; - display: flex; - cursor: pointer; - align-items: center; - justify-content: space-between; -} + position: relative; + + display: flex; + + cursor: pointer; + + align-items: center; + justify-content: space-between; +} + .satus-select:hover { - background-color: var(--satus-hover); + background-color: var(--satus-hover); } + .satus-select__content { - display: flex; - flex: 2; - overflow: hidden; - align-items: center; -} + display: flex; + + flex: 2; + overflow: hidden; + + align-items: center; +} + .satus-select svg { - width: 20px; - height: 18px; - margin: 0 14px 0 0; - opacity: 0.64; + width: 20px; + height: 18px; + margin: 0 14px 0 0; + + opacity: .64; } + .satus-select__content .satus-span { - overflow: hidden; - text-overflow: ellipsis; + overflow: hidden; + + text-overflow: ellipsis; } + .satus-select__value { - display: block; - overflow: hidden; - flex: 1; - margin-left: 8px; - text-align: right; - text-overflow: ellipsis; - opacity: 0.64; -} + display: block; + overflow: hidden; + + flex: 1; + margin-left: 8px; + + text-align: right; + text-overflow: ellipsis; + + opacity: .64; +} + .satus-select select { - font: inherit; - position: absolute; - z-index: 1; - top: 0; - left: 0; - width: 100%; - height: 100%; - margin: 0; - padding: inherit; - cursor: inherit; - opacity: 0; - border: none; - outline: none; - appearance: none; -} + font: inherit; + + position: absolute; + z-index: 1; + top: 0; + left: 0; + + width: 100%; + height: 100%; + margin: 0; + padding: inherit; + + cursor: inherit; + + opacity: 0; + border: none; + outline: none; + + appearance: none; +} + .satus-select:hover { - cursor: pointer; - background-color: rgba(var(--satus-light), 0.06); + cursor: pointer; + + background-color: rgba(var(--satus-light), .06); } + .satus-select:focus { - background-color: rgba(var(--satus-light), 0.08); + background-color: rgba(var(--satus-light), .08); } + .satus-select select::-webkit-scrollbar { - width: 4px; + width: 4px; } + .satus-select select::-webkit-scrollbar:hover { - width: 8px; + width: 8px; } + .satus-select select::-webkit-scrollbar-thumb { - background: rgba(0, 0, 0, 0.2); + background: rgba(0, 0, 0, .2); } + .satus-select select::-webkit-scrollbar-thumb:hover { - background: rgba(0, 0, 0, 0.3); + background: rgba(0, 0, 0, .3); } + .satus-select option { - color: var(--satus-select-text); - background: var(--satus-select-background); + color: var(--satus-select-text); + background: var(--satus-select-background); } +/*-------------------------------------------------------------- +>>> DIVIDER +--------------------------------------------------------------*/ + .satus-divider { - height: 1px; - margin: 16px 0 12px; - background: var(--satus-divider); -} + height: 1px; + margin: 16px 0 12px; + background: var(--satus-divider); +} +/*-------------------------------------------------------------- +>>> SECTION +---------------------------------------------------------------- +# Variants + # Align start + # Align end + # Card +# Media +--------------------------------------------------------------*/ + .satus-section { - display: flex; - flex-wrap: wrap; -} + display: flex; + + flex-wrap: wrap; +} + + +/*-------------------------------------------------------------- +# ALIGN START +--------------------------------------------------------------*/ + .satus-section--align-start { - align-items: center; -} -.satus-section--align-start > :not(:last-child) { - margin-right: 8px; -} + align-items: center; +} + +.satus-section--align-start>*:not(:last-child) { + margin-right: 8px; +} + + +/*-------------------------------------------------------------- +# ALIGN END +--------------------------------------------------------------*/ + .satus-section--align-end { - align-items: center; - justify-content: flex-end; -} -.satus-section--align-end > :not(:first-child) { - margin-left: 8px; -} + align-items: center; + justify-content: flex-end; +} + +.satus-section--align-end>*:not(:first-child) { + margin-left: 8px; +} + + +/*-------------------------------------------------------------- +# CARD +--------------------------------------------------------------*/ + .satus-section--card { - flex-direction: column; - max-width: 900px; - margin: 12px; - padding: 8px 0; - border: 1px solid var(--satus-section-border); - border-radius: 3px; - background: var(--satus-section-background); - color: var(--satus-section-foreground); -} + flex-direction: column; + + max-width: 900px; + margin: 12px; + padding: 8px 0; + + border: 1px solid var(--satus-section-border); + border-radius: 3px; + background: var(--satus-section-background); + color: var(--satus-section-foreground); +} + .satus-section--transparent-card { - max-width: 900px; - margin: 8px 12px; + max-width: 900px; + margin: 8px 12px; } + .satus-section--card[data-title], -.satus-section--transparent-card[data-title] { - position: relative; - margin-top: 32px; +.satus-section--transparent-card[data-title] +{ + position: relative; + + margin-top: 32px; } + .satus-section--card[data-title]::before, -.satus-section--transparent-card::before { - position: absolute; - top: -8px; - left: 0; - content: attr(data-title); - transform: translateY(-100%); -} -.satus-section--transparent-card > [class^="satus"] { - width: 100%; -} -.satus-section--card > [class^="satus"]:not(.satus-list):not(.satus-section) { - display: flex; - min-height: 48px; - padding: 8px 12px; - transition: background-color 0.18s cubic-bezier(0.25, 0.8, 0.5, 1); - text-align: left; - border-radius: 0; - align-items: center; -} -.satus-section--card - > [class^="satus"]:not(.satus-list):not(.satus-section):not(.satus-chart) { - width: 100%; -} -.satus-section--card - > [class^="satus"]:not(.satus-chart):not(.satus-list):not(.satus-span):hover { - background-color: rgba(var(--satus-light), 0.06); -} -.satus-section--card > .satus-button { - justify-content: flex-start; -} -.satus-section--card > .satus-button > svg, -.satus-section--card > .satus-select > svg { - width: 20px; - margin: 0 14px 0 0; - color: var(--satus-primary); -} -.satus-section--card > .satus-span { - display: flex; - align-items: center; -} +.satus-section--transparent-card::before +{ + position: absolute; + top: -8px; + left: 0; + + content: attr(data-title); + transform: translateY(-100%); +} + + +.satus-section--transparent-card > [class^='satus'] { + width: 100%; +} + +.satus-section--card>[class^='satus']:not(.satus-list):not(.satus-section) { + display: flex; + + min-height: 48px; + padding: 8px 12px; + + transition: background-color .18s cubic-bezier(.25, .8, .5, 1); + text-align: left; + + border-radius: 0; + + align-items: center; +} + +.satus-section--card>[class^='satus']:not(.satus-list):not(.satus-section):not(.satus-chart) { + width: 100%; +} + +.satus-section--card>[class^='satus']:not(.satus-chart):not(.satus-list):not(.satus-span):hover { + background-color: rgba(var(--satus-light), .06); +} + +.satus-section--card>.satus-button { + justify-content: flex-start; +} + +.satus-section--card>.satus-button>svg, +.satus-section--card>.satus-select>svg +{ + width: 20px; + margin: 0 14px 0 0; + + color: var(--satus-primary); +} + +.satus-section--card>.satus-span { + display: flex; + + align-items: center; +} + .satus-section--transparent { - background: unset; - border: unset; - padding: 0; - border-radius: unset; -} + background: unset; + border: unset; + padding: 0; + border-radius: unset; +} + + +/*-------------------------------------------------------------- +# MEDIA +--------------------------------------------------------------*/ + @media (min-width: 901px) { - .satus-section--card, - .satus-section--transparent-card { - margin-left: auto; - margin-right: auto; - } -} + .satus-section--card, + .satus-section--transparent-card { + margin-left: auto; + margin-right: auto; + } +} +/*-------------------------------------------------------------- +>>> BASE +--------------------------------------------------------------*/ + .satus-base { - display: flex; - flex-direction: column; - width: 100%; - height: 100%; - color: var(--satus-base-foreground); - background: var(--satus-base-background); -} + display: flex; + flex-direction: column; + + width: 100%; + height: 100%; + + color: var(--satus-base-foreground); + background: var(--satus-base-background); +} +/*-------------------------------------------------------------- +>>> ALERT +---------------------------------------------------------------- +# Media +--------------------------------------------------------------*/ + .satus-alert { - display: flex; - max-width: 900px; - min-height: 48px; - margin: 12px; - padding: 8px 12px; - border-radius: 3px; - align-items: center; -} + display: flex; + + max-width: 900px; + min-height: 48px; + margin: 12px; + padding: 8px 12px; + + border-radius: 3px; + + align-items: center; +} + .satus-alert--error { - color: var(--satus-alert-foreground--error); - border: var(--satus-alert-border--error); - background: var(--satus-alert-background--error); + color: var(--satus-alert-foreground--error); + border: var(--satus-alert-border--error); + background: var(--satus-alert-background--error); } + .satus-alert--success { - color: var(--satus-alert-foreground--success); - border: var(--satus-alert-border--success); - background: var(--satus-alert-background--success); -} + color: var(--satus-alert-foreground--success); + border: var(--satus-alert-border--success); + background: var(--satus-alert-background--success); +} + + +/*-------------------------------------------------------------- +# MEDIA +--------------------------------------------------------------*/ + @media (min-width: 901px) { - .satus-alert { - margin-right: auto; - margin-left: auto; - } -} -.satus-input[type="text"], -.satus-input[type="password"] { - font: inherit; - font-size: 16px; - box-sizing: border-box; - width: 100%; - height: 26px; - margin: 0; - margin: 8px 0; - padding: 0 8px; - color: var(--satus-input-text-foreground, inherit); - border: none; - border: 1px solid var(--satus-input-text-border); - border-radius: 4px; - outline: none; - background: none; - background-color: var(--satus-input-text-background); - appearance: none; -} -.satus-input--error[type="text"], -.satus-input--error[type="password"] { - outline: 2px solid rgba(255, 0, 0, 0.32); -} + .satus-alert { + margin-right: auto; + margin-left: auto; + } +} +/*-------------------------------------------------------------- +>>> INPUT +--------------------------------------------------------------*/ + +.satus-input[type=text], +.satus-input[type=password] { + font: inherit; + font-size: 16px; + + box-sizing: border-box; + width: 100%; + height: 26px; + margin: 0; + margin: 8px 0; + padding: 0 8px; + + color: var(--satus-input-text-foreground, inherit); + border: none; + + + + + + border: 1px solid var(--satus-input-text-border); + border-radius: 4px; + outline: none; + background: none; + background-color: var(--satus-input-text-background); + + appearance: none; +} + +.satus-input--error[type=text], +.satus-input--error[type=password] { + outline: 2px solid rgba(255, 0, 0, .32); +} +/*-------------------------------------------------------------- +>>> MAIN +--------------------------------------------------------------*/ + .satus-main { - display: flex; - flex: 1; -} + display: flex; + + flex: 1 +} +/*-------------------------------------------------------------- +>>> SIDEBAR +--------------------------------------------------------------*/ + .satus-sidebar { - z-index: 1; - display: flex; - flex-direction: column; - width: 56px; - padding: 12px 0; - color: var(--satus-sidebar-foreground); - background: var(--satus-sidebar-background); - box-shadow: 1px 0 0 var(--satus-sidebar-shadow); -} + z-index: 1; + display: flex; + flex-direction: column; + width: 56px; + padding: 12px 0; + color: var(--satus-sidebar-foreground); + background: var(--satus-sidebar-background); + box-shadow: 1px 0 0 var(--satus-sidebar-shadow) +} +/*-------------------------------------------------------------- +>>> LAYERS +--------------------------------------------------------------*/ + .satus-layers { - position: relative; - overflow: hidden; - flex: 1; + position: relative; + + overflow: hidden; + + flex: 1; } + .satus-layers__layer { - position: absolute; - top: 0; - left: 0; - overflow: auto; - width: 100%; - height: 100%; - color: var(--satus-layers-foreground); - background: var(--satus-layers-background); -} + position: absolute; + top: 0; + left: 0; + + overflow: auto; + + width: 100%; + height: 100%; + + color: var(--satus-layers-foreground); + background: var(--satus-layers-background); +} +/*-------------------------------------------------------------- +>>> LIST +--------------------------------------------------------------*/ + .satus-list { - margin: 0; - list-style: none; + margin: 0; + + list-style: none; } + .satus-list__item { - display: flex; - min-height: 48px; - padding: 0 16px; - align-items: center; - justify-content: space-between; -} -.satus-list__item > :not(:first-child) { - margin-left: 8px; -} -.satus-list__item > :last-child { - font-size: 92%; - text-align: right; - opacity: 0.64; -} + display: flex; + + min-height: 48px; + padding: 0 16px; + + align-items: center; + justify-content: space-between; +} + +.satus-list__item>*:not(:first-child) { + margin-left: 8px; +} + +.satus-list__item>*:last-child { + font-size: 92%; + + text-align: right; + + opacity: .64; +} +/*-------------------------------------------------------------- +>>> COLOR PICKER: +---------------------------------------------------------------- +# Button +# Modal +--------------------------------------------------------------*/ + + +/*-------------------------------------------------------------- +# BUTTON +--------------------------------------------------------------*/ + .satus-color-picker { - font-size: inherit; - position: relative; - display: flex; - box-sizing: border-box; - margin: 0; - cursor: pointer; - color: inherit; - border: none; - outline: none; - background-color: var(--satus-theme-button); - justify-content: space-between; - -webkit-tap-highlight-color: transparent; - align-items: center; - -webkit-appearance: none; -} + font-size: inherit; + + position: relative; + + display: flex; + + box-sizing: border-box; + margin: 0; + + cursor: pointer; + + color: inherit; + border: none; + outline: none; + background-color: var(--satus-theme-button); + + justify-content: space-between; + -webkit-tap-highlight-color: transparent; + align-items: center; + -webkit-appearance: none; +} + .satus-color-picker__value { - width: 22px; - height: 22px; - border: 2px solid rgba(0, 0, 0, 0.16); - border-radius: 50%; -} + width: 22px; + height: 22px; + + border: 2px solid rgba(0, 0, 0, .16); + border-radius: 50%; +} + + +/*-------------------------------------------------------------- +# MODAL +--------------------------------------------------------------*/ + .satus-modal--color-picker .satus-modal__surface { - padding: 8px; + padding: 8px; } + .satus-color-picker__palette { - position: relative; - overflow: hidden; - width: 100%; - height: 256px; - margin: 0 0 4px; - border-radius: 5px; - background-color: #f00; -} + position: relative; + + overflow: hidden; + + width: 100%; + height: 256px; + margin: 0 0 4px; + + border-radius: 5px; + background-color: #f00; +} + .satus-color-picker__palette:before { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - content: ""; - background-image: linear-gradient(0deg, black, transparent), - linear-gradient(90deg, white, transparent); -} + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + + background-image: linear-gradient(0deg, black, transparent), linear-gradient(90deg, white, transparent); +} + .satus-color-picker__cursor { - position: absolute; - width: 5px; - height: 5px; - transform: translate(-50%, -50%); - pointer-events: none; - border: 1px solid #fff; - border-radius: 50%; - box-shadow: 0 0 0 1px #000; -} + position: absolute; + + width: 5px; + height: 5px; + + transform: translate(-50%, -50%); + pointer-events: none; + + border: 1px solid #fff; + border-radius: 50%; + box-shadow: 0 0 0 1px #000; +} + .satus-modal--color-picker .satus-modal__surface .satus-section--color { - margin: 8px 4px; - align-items: center; + margin: 8px 4px; + + align-items: center; } + .satus-color-picker__color { - width: 32px; - height: 32px; - margin: 0 16px 0 0; - border: 2px solid rgba(0, 0, 0, 0.16); - border-radius: 50%; - background: #f00; -} + width: 32px; + height: 32px; + margin: 0 16px 0 0; + + border: 2px solid rgba(0, 0, 0, .16); + border-radius: 50%; + background: #f00; +} + .satus-slider.satus-color-picker__hue { - padding: 0; - flex: 1; + padding: 0; + + flex: 1; } + .satus-color-picker__hue .satus-slider__track-container { - height: 16px; - margin: 0; - border-radius: 4px; - background-image: linear-gradient( - 90deg, - #f00, - #ff2a00, - #f50, - #ff7f00, - #fa0, - #ffd400, - #ff0, - #d4ff00, - #af0, - #80ff00, - #5f0, - #2bff00, - #0f0, - #00ff2b, - #0f5, - #00ff80, - #0fa, - #00ffd5, - #0ff, - #00d4ff, - #0af, - #007fff, - #05f, - #002bff, - #00f, - #2a00ff, - #50f, - #7f00ff, - #a0f, - #d400ff, - #f0f, - #ff00d4, - #f0a, - #ff0080, - #f05, - #ff002b, - #f00 - ); + height: 16px; + margin: 0; + + border-radius: 4px; + background-image: linear-gradient(90deg, #f00, #ff2a00, #f50, #ff7f00, #fa0, #ffd400, #ff0, #d4ff00, #af0, #80ff00, #5f0, #2bff00, #0f0, #00ff2b, #0f5, #00ff80, #0fa, #00ffd5, #0ff, #00d4ff, #0af, #007fff, #05f, #002bff, #00f, #2a00ff, #50f, #7f00ff, #a0f, #d400ff, #f0f, #ff00d4, #f0a, #ff0080, #f05, #ff002b, #f00); } + .satus-color-picker__hue .satus-slider__track-container::before { - display: none; + display: none; } + .satus-color-picker__hue .satus-slider__track { - background: transparent; + background: transparent; } + .satus-color-picker__hue .satus-slider__track::after { - width: 16px; - height: 16px; - background: #fff; - box-shadow: 0 0 4px rgb(0, 0, 0, 0.64); -} + width: 16px; + height: 16px; + + background: #fff; + box-shadow: 0 0 4px rgb(0, 0, 0, .64); +} +/*-------------------------------------------------------------- +>>> SPAN +--------------------------------------------------------------*/ + .satus-span--title { - font-weight: 500; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - flex: 1; -} + font-weight: 500; + overflow: hidden; + + white-space: nowrap; + text-overflow: ellipsis; + + flex: 1; +} +/*-------------------------------------------------------------- +>>> BUTTON +---------------------------------------------------------------- +# Base +# Basic +# Icon +--------------------------------------------------------------*/ + + +/*-------------------------------------------------------------- +# BASE +--------------------------------------------------------------*/ + .satus-button { - font: inherit; - position: relative; - display: inline-flex; - overflow: hidden; - height: 36px; - padding: 8px; - transition: background-color 0.3s cubic-bezier(0.25, 0.8, 0.5, 1); - color: inherit; - border: none; - border-radius: 6px; - outline: none; - background: transparent; - appearance: none; - align-items: center; -} + font: inherit; + + position: relative; + + display: inline-flex; + overflow: hidden; + + height: 36px; + padding: 8px; + + transition: background-color .3s cubic-bezier(.25, .8, .5, 1); + + color: inherit; + border: none; + border-radius: 6px; + outline: none; + background: transparent; + + appearance: none; + align-items: center; +} + .satus-button:hover { - cursor: pointer; - background-color: rgba(var(--satus-light), 0.06); + cursor: pointer; + + background-color: rgba(var(--satus-light), .06); } + .satus-button:focus { - background-color: rgba(var(--satus-light), 0.08); + background-color: rgba(var(--satus-light), .08); } + .satus-button svg { - width: 100%; - max-width: 24px; - height: 100%; - max-height: 24px; -} + width: 100%; + max-width: 24px; + height: 100%; + max-height: 24px; +} + + +/*-------------------------------------------------------------- +# BASIC +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# ICON +--------------------------------------------------------------*/ + .satus-button--icon { - width: 40px; - height: 40px; - border-radius: 50%; + width: 40px; + height: 40px; + + border-radius: 50%; } + .satus-button--icon svg { - width: 24px; - height: 24px; + width: 24px; + height: 24px; } +/*-------------------------------------------------------------- +>>> HEADER +--------------------------------------------------------------*/ + .satus-header { - z-index: 1; - display: flex; - height: 56px; - padding: 0 12px; - color: var(--satus-header-foreground); - background: var(--satus-header-background); - box-shadow: var(--satus-header-shadow); - justify-content: space-between; - align-items: center; -} + z-index: 1; + + display: flex; + + height: 56px; + padding: 0 12px; + + color: var(--satus-header-foreground); + background: var(--satus-header-background); + box-shadow: var(--satus-header-shadow); + + justify-content: space-between; + align-items: center; +} +/*-------------------------------------------------------------- +>>> RADIO +--------------------------------------------------------------*/ + .satus-radio { - position: relative; - display: flex; + position: relative; + display: flex; } + .satus-radio__input { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - opacity: 0; - margin: 0; - z-index: 9; -} + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0; + margin: 0; + z-index: 9; +} + .satus-radio__content { - flex: 1; - padding: 0 12px; + flex: 1; + padding: 0 12px; } + .satus-radio__i { - width: 16px; - height: 16px; - border: 1px solid rgba(var(--satus-light), 0.64); - border-radius: 50%; - transition: 200ms; + width: 16px; + height: 16px; + border: 1px solid rgba(var(--satus-light),.64); + border-radius: 50%; + transition: 200ms; } + .satus-radio__input + .satus-radio__i::before { - width: 8px; - height: 8px; - margin: 3px; - border-radius: 50%; - background: var(--satus-primary); - content: ""; - display: block; - transform: scale(0); - transition: 200ms; -} + width: 8px; + height: 8px; + margin: 3px; + border-radius: 50%; + background: var(--satus-primary); + content: ''; + display: block; + transform: scale(0); + transition: 200ms; +} + .satus-radio__input:checked + .satus-radio__i { - border-color: var(--satus-primary); + border-color: var(--satus-primary); } + .satus-radio__input:checked + .satus-radio__i::before { - background: var(--satus-primary); - transform: scale(1); + background: var(--satus-primary); + transform: scale(1); } +/*-------------------------------------------------------------- +>>> SLIDER +--------------------------------------------------------------*/ + .satus-slider { - display: flex; - flex-wrap: wrap; + display: flex; + + flex-wrap: wrap; } + .satus-slider__content { - width: 100%; - display: flex; - justify-content: space-between; -} -.satus-slider__input[type="text"] { - appearance: none; - background: transparent; - border: none; - color: inherit; - font: inherit; - padding: 0; - margin: 0; - outline: none; - width: 64px; - text-align: right; -} + width: 100%; + display: flex; + justify-content: space-between; +} + +.satus-slider__input[type='text'] { + appearance: none; + background: transparent; + border: none; + color: inherit; + font: inherit; + padding: 0; + margin: 0; + outline: none; + width: 64px; + text-align: right; +} + .satus-slider__track-container { - position: relative; - width: 100%; - height: 20px; - margin: 10px 0 -2px; + position: relative; + + width: 100%; + height: 20px; + margin: 10px 0 -2px; } + .satus-slider__track-container::before { - position: absolute; - top: calc(50% - 1px); - left: 0; - width: 100%; - height: 2px; - content: ""; - opacity: 0.24; - background: var(--satus-primary); -} -.satus-slider__input[type="range"] { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - margin: 0; - opacity: 0; -} + position: absolute; + top: calc(50% - 1px); + left: 0; + + width: 100%; + height: 2px; + + content: ''; + + opacity: .24; + background: var(--satus-primary); +} + +.satus-slider__input[type='range'] { + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + margin: 0; + + opacity: 0; +} + .satus-slider__track { - position: absolute; - top: calc(50% - 1px); - left: 0; - width: 0; - height: 2px; - background: var(--satus-primary); - pointer-events: none; -} + position: absolute; + top: calc(50% - 1px); + left: 0; + + width: 0; + height: 2px; + + background: var(--satus-primary); + pointer-events: none; +} + .satus-slider__track::before { - position: absolute; - top: 50%; - right: 0; - transform: translate(50%, -50%); - display: block; - width: 16px; - height: 16px; - content: ""; - transition: width 200ms, height 200ms, opacity 200ms; - opacity: 0; - border-radius: 50%; - background: var(--satus-primary); + position: absolute; + top: 50%; + right: 0; + transform: translate(50%, -50%); + display: block; + width: 16px; + height: 16px; + content: ''; + transition: width 200ms, height 200ms, opacity 200ms; + opacity: 0; + border-radius: 50%; + background: var(--satus-primary); } + .satus-slider__input:focus + .satus-slider__track::before { - width: 24px; - height: 24px; - opacity: 0.16; + width: 24px; + height: 24px; + opacity: .16; } + .satus-slider__input:active + .satus-slider__track::before { - width: 26px; - height: 26px; - opacity: 0.16; + width: 26px; + height: 26px; + opacity: .16; } + .satus-slider__track::after { - position: absolute; - top: 50%; - right: 0; - transform: translate(50%, -50%); - width: 10px; - height: 10px; - content: ""; - border-radius: 50%; - background: var(--satus-primary); - pointer-events: none; - transition: width 200ms, height 200ms, opacity 200ms; -} -.satus-slider__input:active + .satus-slider__track::after { - width: 12px; - height: 12px; -} + position: absolute; + top: 50%; + right: 0; + transform: translate(50%, -50%); + + width: 10px; + height: 10px; + + content: ''; + + border-radius: 50%; + background: var(--satus-primary); + pointer-events: none; + transition: width 200ms, height 200ms, opacity 200ms; +} + +.satus-slider__input:active + .satus-slider__track::after +{ + width: 12px; + height: 12px; +} + + + + + .satus-slider--row { - flex-wrap: nowrap; - justify-content: space-between; + flex-wrap: nowrap; + justify-content: space-between; } + .satus-slider--row .satus-slider__track-container { - margin: 0 0 -2px 12px; - max-width: 50%; + margin: 0 0 -2px 12px; + max-width: 50%; } +/*-------------------------------------------------------------- +>>> TABS +--------------------------------------------------------------*/ + .satus-tabs { - position: relative; - display: flex; - border: 2px solid var(--satus-tabs-background); - border-radius: 4px; - background: var(--satus-tabs-background); -} + position: relative; + + display: flex; + + border: 2px solid var(--satus-tabs-background); + border-radius: 4px; + background: var(--satus-tabs-background); +} + .satus-tabs::before { - position: absolute; - top: 0; - left: calc(calc(100% / var(--satus-tabs-count)) * var(--satus-tabs-current)); - width: calc(100% / var(--satus-tabs-count)); - height: 100%; - content: ""; - transition: left 0.25s; - border-radius: 3px; - background: var(--satus-tabs-foreground); -} + position: absolute; + top: 0; + left: calc(calc(100% / var(--satus-tabs-count)) * var(--satus-tabs-current)); + + width: calc(100% / var(--satus-tabs-count)); + height: 100%; + + content: ''; + transition: left .25s; + + border-radius: 3px; + background: var(--satus-tabs-foreground); +} + .satus-tabs__button { - font: inherit; - position: relative; - z-index: 1; - overflow: hidden; - margin: 0; - padding: 0 8px; - text-overflow: ellipsis; - color: inherit; - border: none; - border-radius: 3px; - outline: none; - background: transparent; - flex: 1; - appearance: none; -} + font: inherit; + + position: relative; + z-index: 1; + + overflow: hidden; + + margin: 0; + padding: 0 8px; + + text-overflow: ellipsis; + + color: inherit; + border: none; + border-radius: 3px; + outline: none; + background: transparent; + + flex: 1; + appearance: none; +} +/*-------------------------------------------------------------- +>>> SHORTCUT: +---------------------------------------------------------------- +# +--------------------------------------------------------------*/ + .satus-shortcut__value { - font-size: 11px; - display: flex; - margin-left: 16px; - text-transform: uppercase; - align-items: center; - flex: 1; - justify-content: flex-end; -} + font-size: 11px; + + display: flex; + + margin-left: 16px; + + text-transform: uppercase; + + align-items: center; + flex: 1; + justify-content: flex-end; +} + .satus-shortcut__actions { - display: flex; - justify-content: flex-end; + display: flex; + + justify-content: flex-end; } + .satus-shortcut__actions .satus-button { - height: 32px; - margin: 8px 4px 0; - border-radius: 8px; - background: rgba(0, 0, 0, 0.15); + height: 32px; + margin: 8px 4px 0; + + border-radius: 8px; + background: rgba(0, 0, 0, .15); } + .satus-shortcut__actions .satus-button:hover { - background: rgba(0, 0, 0, 0.25); + background: rgba(0, 0, 0, .25); } + .satus-shortcut__primary { - display: flex; - height: 64px; - margin: 0 0 12px; - padding: 16px; - border-radius: 3px; - background: rgba(0, 0, 0, 0.16); - align-items: center; -} + display: flex; + + height: 64px; + margin: 0 0 12px; + padding: 16px; + + border-radius: 3px; + background: rgba(0, 0, 0, .16); + + align-items: center; +} + .satus-shortcut__key { - display: flex; - min-width: 32px; - height: 32px; - padding: 4px 8px; - border-radius: 4px; - background: #fff; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15), inset 0 -3px 0 rgba(0, 0, 0, 0.1); - align-items: center; - justify-content: center; -} -.satus-shortcut__value > .satus-shortcut__key { - font-size: 12px; - min-width: 24px; - height: 24px; -} + display: flex; + + min-width: 32px; + height: 32px; + padding: 4px 8px; + + + border-radius: 4px; + background: #fff; + box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); + + align-items: center; + justify-content: center; +} + +.satus-shortcut__value>.satus-shortcut__key { + font-size: 12px; + + min-width: 24px; + height: 24px; +} + .satus-shortcut__plus { - position: relative; - width: 12px; - height: 12px; - margin: 8px; + position: relative; + + width: 12px; + height: 12px; + margin: 8px; } + .satus-shortcut__plus::before { - position: absolute; - top: 0; - left: 5px; - width: 2px; - height: 12px; - content: ""; - background-color: #aaa; -} + position: absolute; + top: 0; + left: 5px; + + width: 2px; + height: 12px; + + content: ''; + + background-color: #aaa; +} + .satus-shortcut__plus::after { - position: absolute; - top: 5px; - left: 0; - width: 12px; - height: 2px; - content: ""; - background-color: #aaa; -} + position: absolute; + top: 5px; + left: 0; + + width: 12px; + height: 2px; + + content: ''; + + background-color: #aaa; +} + .satus-shortcut__mouse { - position: relative; - display: flex; - width: 28px; - height: 36px; - border-radius: 50%; - border-top-left-radius: 12px; - border-top-right-radius: 12px; - background: #fff; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15), inset 0 -3px 0 rgba(0, 0, 0, 0.1); -} -.satus-shortcut__value > .satus-shortcut__mouse { - width: 22px; - height: 28px; -} -.satus-shortcut__mouse > div { - position: absolute; - top: 0; - left: calc(50% - 1px); - width: 2px; - height: 11px; - border-radius: 2px; - background: #ccc; -} + position: relative; + + display: flex; + + width: 28px; + height: 36px; + + border-radius: 50%; + border-top-left-radius: 12px; + border-top-right-radius: 12px; + background: #fff; + box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); +} + +.satus-shortcut__value>.satus-shortcut__mouse { + width: 22px; + height: 28px; +} + +.satus-shortcut__mouse>div { + position: absolute; + top: 0; + left: calc(50% - 1px); + + width: 2px; + height: 11px; + + border-radius: 2px; + background: #ccc; +} + .satus-shortcut__mouse::before { - position: absolute; - top: -16%; - right: 14%; - width: 2px; - height: 60%; - content: ""; - background: #f96754; -} + position: absolute; + top: -16%; + right: 14%; + + width: 2px; + height: 60%; + + content: ''; + + background: #f96754; +} + .satus-shortcut__mouse.false::before { - top: -6%; + top: -6%; } + .satus-shortcut__mouse.false::after { - position: absolute; - top: -20%; - right: calc(14% - 4px); - width: 0; - height: 0; - content: ""; - border-right: 5px solid transparent; - border-bottom: 8px solid #f96754; - border-left: 5px solid transparent; -} + position: absolute; + top: -20%; + right: calc(14% - 4px); + + width: 0; + height: 0; + + content: ''; + + border-right: 5px solid transparent; + border-bottom: 8px solid #f96754; + border-left: 5px solid transparent; +} + .satus-shortcut__mouse.true::after { - position: absolute; - top: 40%; - right: calc(14% - 4px); - width: 0; - height: 0; - content: ""; - border-top: 8px solid #f96754; - border-right: 5px solid transparent; - border-left: 5px solid transparent; -} + position: absolute; + top: 40%; + right: calc(14% - 4px); + + width: 0; + height: 0; + + content: ''; + + border-top: 8px solid #f96754; + border-right: 5px solid transparent; + border-left: 5px solid transparent; +} + .satus-shortcut__mouse.click::before { - position: absolute; - top: 0; - left: -1px; - width: 10px; - height: 10px; - content: ""; - border-radius: 50%; - background: #f96754; -} + position: absolute; + top: 0; + left: -1px; + + width: 10px; + height: 10px; + + content: ''; + + border-radius: 50%; + background: #f96754; +} + .satus-shortcut__mouse.middle::before { - position: absolute; - z-index: 1; - top: 0; - left: 50%; - width: 10px; - height: 10px; - content: ""; - transform: translateX(-50%); - border-radius: 50%; - background: #f96754; -} + position: absolute; + z-index: 1; + top: 0; + left: 50%; + + width: 10px; + height: 10px; + + content: ''; + transform: translateX(-50%); + + border-radius: 50%; + background: #f96754; +} + .satus-shortcut__mouse.context::before { - position: absolute; - top: 0; - left: 15px; - width: 10px; - height: 10px; - content: ""; - border-radius: 50%; - background: #f96754; -} + position: absolute; + top: 0; + left: 15px; + + width: 10px; + height: 10px; + + content: ''; + + border-radius: 50%; + background: #f96754; +} + .satus-section_shortcut { - width: 100%; - margin: 8px 0 0; - justify-content: flex-end; + width: 100%; + margin: 8px 0 0; + + justify-content: flex-end; } + .satus-button_shortcut { - font-weight: 500; - overflow: hidden; - height: 28px; - min-height: 28px; - margin-right: 2px; - padding: 4px 8px; - text-transform: uppercase; - color: #f96754; - border-radius: 4px; -} + font-weight: 500; + + overflow: hidden; + + height: 28px; + min-height: 28px; + margin-right: 2px; + padding: 4px 8px; + + text-transform: uppercase; + + color: #f96754; + border-radius: 4px; +} +/*-------------------------------------------------------------- +>>> CHECKBOX +--------------------------------------------------------------*/ + .satus-checkbox { - position: relative; - display: flex; - cursor: pointer; - align-items: center; -} + position: relative; + + display: flex; + + cursor: pointer; + + align-items: center; +} + .satus-checkbox__input { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - margin: 0; - padding: 0; - opacity: 0; - border: none; - appearance: none; -} + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + margin: 0; + padding: 0; + + opacity: 0; + border: none; + + appearance: none; +} + .satus-checkbox__checkmark { - position: relative; - display: flex; - width: 16px; - min-width: 16px; - height: 16px; - min-height: 16px; - margin: 0 12px 0 0; - content: ""; - border: 1px solid var(--satus-checkbox-border); - border-radius: 3px; - background: var(--satus-checkbox-background); -} -.satus-checkbox[data-value="true"] .satus-checkbox__checkmark { - border-color: var(--satus-primary); - background: var(--satus-primary); -} -.satus-checkbox[data-value="true"] .satus-checkbox__checkmark::before { - position: absolute; - top: 3px; - left: 2px; - width: 8px; - height: 4px; - content: ""; - transform: rotate(-45deg); - border: 2px solid var(--satus-checkbox-foreground); - border-top: none; - border-right: none; -} + position: relative; + + display: flex; + + width: 16px; + min-width: 16px; + height: 16px; + min-height: 16px; + margin: 0 12px 0 0; + + content: ''; + + border: 1px solid var(--satus-checkbox-border); + border-radius: 3px; + background: var(--satus-checkbox-background); +} + +.satus-checkbox[data-value=true] .satus-checkbox__checkmark { + border-color: var(--satus-primary); + background: var(--satus-primary); +} + +.satus-checkbox[data-value=true] .satus-checkbox__checkmark::before { + position: absolute; + top: 3px; + left: 2px; + + width: 8px; + height: 4px; + + content: ''; + transform: rotate(-45deg); + + border: 2px solid var(--satus-checkbox-foreground); + border-top: none; + border-right: none; +} +/*-------------------------------------------------------------- +>>> SWITCH +---------------------------------------------------------------- +# Container +# Track +# Thumb +--------------------------------------------------------------*/ + + +/*-------------------------------------------------------------- +# CONTAINER +--------------------------------------------------------------*/ + .satus-switch { - font: inherit; - display: flex; - transition: background-color 75ms; - color: inherit; - border: none; - outline: none; - background-color: transparent; - justify-content: space-between; - align-items: center; -} + font: inherit; + + display: flex; + + transition: background-color 75ms; + + color: inherit; + border: none; + outline: none; + background-color: transparent; + + justify-content: space-between; + align-items: center; +} + .satus-switch:hover { - cursor: pointer; + cursor: pointer; } + .satus-switch__content { - display: flex; - align-items: center; -} -.satus-switch__content > svg { - width: 20px; - height: 18px; - margin: 0 14px 0 0; - opacity: 0.64; -} -.satus-switch > i { - width: 32px; - height: 18px; - transition: background-color 150ms; - border-radius: 18px; - background-color: var(--satus-switch-track); - flex: 0 0 32px; -} -.satus-section--card .satus-switch > i { - margin-left: 16px; -} -.satus-switch[data-value="true"] > i { - background-color: var(--satus-switch-track--checked); -} -.satus-switch > i::before { - display: block; - width: 14px; - height: 14px; - margin: 2px; - content: ""; - transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1); - border-radius: 50%; - background-color: var(--satus-switch-thumb); - will-change: transform; -} -.satus-switch[data-value="true"] > i::before { - transform: translateX(14px); -} + display: flex; + + align-items: center; +} + +.satus-switch__content>svg { + width: 20px; + height: 18px; + margin: 0 14px 0 0; + + opacity: .64; +} + + +/*-------------------------------------------------------------- +# TRACK +--------------------------------------------------------------*/ + +.satus-switch>i { + width: 32px; + height: 18px; + + transition: background-color 150ms; + + border-radius: 18px; + background-color: var(--satus-switch-track); + + flex: 0 0 32px; +} + +.satus-section--card .satus-switch>i { + margin-left: 16px; +} + +.satus-switch[data-value='true']>i { + background-color: var(--satus-switch-track--checked); +} + + +/*-------------------------------------------------------------- +# THUMB +--------------------------------------------------------------*/ + +.satus-switch>i::before { + display: block; + + width: 14px; + height: 14px; + margin: 2px; + + content: ''; + transition: transform 150ms cubic-bezier(.4, 0, .2, 1); + + border-radius: 50%; + background-color: var(--satus-switch-thumb); + + will-change: transform; +} + +.satus-switch[data-value='true']>i::before { + transform: translateX(14px); +} +/*-------------------------------------------------------------- +>>> CONTEXT MENU +--------------------------------------------------------------*/ + .satus-modal--contextmenu .satus-modal__scrim { - visibility: visible; - transform: none; - animation: none; - opacity: 1; - background: none; - backdrop-filter: none; -} + visibility: visible; + + transform: none; + animation: none; + + opacity: 1; + background: none; + + backdrop-filter: none; +} + .satus-modal--contextmenu .satus-modal__surface { - position: absolute; - visibility: visible; - min-width: 200px; - max-width: 200px; - margin: 0; - padding: 4px 0; - transform: none; - animation: none; - opacity: 1; - border-radius: 4px; - box-shadow: 0 0 0 1px rgba(var(--satus-light), 0.1); -} -.satus-modal--contextmenu .satus-modal__surface > * { - display: flex; - height: 32px; - padding: 0 16px; - align-items: center; -} + position: absolute; + + visibility: visible; + + min-width: 200px; + max-width: 200px; + margin: 0; + padding: 4px 0; + + transform: none; + animation: none; + + opacity: 1; + border-radius: 4px; + box-shadow: 0 0 0 1px rgba(var(--satus-light), .1); +} + +.satus-modal--contextmenu .satus-modal__surface>* { + display: flex; + + height: 32px; + padding: 0 16px; + + align-items: center; +} + .satus-modal--contextmenu .satus-modal__surface .satus-button svg { - width: 20px; - height: 18px; - margin: 0 14px 0 0; - opacity: 0.75; - fill: none; - stroke: var(--satus-primary); - flex: 0 0 20px; -} + width: 20px; + height: 18px; + margin: 0 14px 0 0; + + opacity: .75; + + fill: none; + stroke: var(--satus-primary); + flex: 0 0 20px; +} + .satus-modal--contextmenu .satus-modal__surface .satus-button .satus-span { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} + overflow: hidden; + + white-space: nowrap; + text-overflow: ellipsis; +} +/*-------------------------------------------------------------- +>>> SORTABLE +--------------------------------------------------------------*/ + .satus-sortable__chosen { - color: var(--satus-sortable-text) !important; - background-color: var(--satus-sortable-background) !important; + color: var(--satus-sortable-text) !important; + background-color: var(--satus-sortable-background) !important; } + .satus-sortable__ghost { - position: fixed !important; - z-index: 999 !important; - top: 0 !important; - left: 0 !important; - pointer-events: none !important; - opacity: 0.8 !important; - box-shadow: 0 1px 3px rgb(0, 0, 0, 0.2), 0 4px 8px rgb(0, 0, 0, 0.1), - inset 0 0 0 1px rgb(0, 0, 0, 0.16) !important; - will-change: transform !important; + position: fixed !important; + z-index: 999 !important; + top: 0 !important; + left: 0 !important; + + pointer-events: none !important; + + opacity: .8 !important; + box-shadow: 0 1px 3px rgb(0, 0, 0, .2), 0 4px 8px rgb(0, 0, 0, .1), inset 0 0 0 1px rgb(0, 0, 0, .16) !important; + + will-change: transform !important; } diff --git a/assets/satus/satus.js b/assets/satus/satus.js index 0bb332923..c76dfd206 100644 --- a/assets/satus/satus.js +++ b/assets/satus/satus.js @@ -1,1919 +1,3371 @@ +/*-------------------------------------------------------------- +>>> CORE +---------------------------------------------------------------- +# Global variable +# Animations duration +# Append +# Attr +# Camelize +# Snakelize +# Class +# Create element +# CSS +# Empty +# Element index +# Events +# Get property +# Is +# On +# Render +# Sort +# Storage + # Clear + # Get + # Import + # Set + # Remove + # On changed +# Localization +# Log +# Text +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# GLOBAL VARIABLE +--------------------------------------------------------------*/ + var satus = { components: {}, - events: { data: {} }, - locale: { data: {} }, - storage: { data: {}, type: "extension" }, - getAnimationDuration: function (e) { - return ( - 1e3 * - Number( - window - .getComputedStyle(e) - .getPropertyValue("animation-duration") - .replace(/[^0-9.]/g, "") - ) - ); + events: { + data: {} }, - append: function (e, t) { - (t || document.body).appendChild(e); + locale: { + data: {} }, - attr: function (e, t) { - if (t) - for (var n in t) { - var s = t[n]; - satus.isFunction(s) && (s = s()), - e.namespaceURI - ? !1 === s - ? e.removeAttributeNS(null, n) - : e.setAttributeNS(null, n, s) - : !1 === s - ? e.removeAttribute(n) - : e.setAttribute(n, s); + storage: { + data: {}, + type: 'extension' + } +}; + + +/*-------------------------------------------------------------- +# ANIMATION DURATION +--------------------------------------------------------------*/ + +satus.getAnimationDuration = function(element) { + return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; +}; + + +/*-------------------------------------------------------------- +# APPEND +--------------------------------------------------------------*/ + +satus.append = function(child, parent) { + (parent || document.body).appendChild(child); +}; + + +/*-------------------------------------------------------------- +# ATTR +--------------------------------------------------------------*/ + +satus.attr = function(element, attributes) { + if (attributes) { + for (var name in attributes) { + var value = attributes[name]; + + if (satus.isFunction(value)) { + value = value(); + } + + if (element.namespaceURI) { + if (value === false) { + element.removeAttributeNS(null, name); + } else { + element.setAttributeNS(null, name, value); + } + } else { + if (value === false) { + element.removeAttribute(name); + } else { + element.setAttribute(name, value); + } } - }, - camelize: function (e) { - for (var t = "", n = 0, s = e.length; n < s; n++) { - var a = e[n]; - t += "_" === a || "-" === a ? e[++n].toUpperCase() : a; } - return t; - }, - snakelize: function (e) { - return e.replace(/([A-Z])/g, "-$1").toLowerCase(); - }, - class: function (e, t) { - t && e.classList.add(t); - }, - clone: function (e) { - for ( - var t = e.cloneNode(!0), - n = window.getComputedStyle(e.parentNode), - s = window.getComputedStyle(e), - a = "", - o = 0, - r = s.length; - o < r; - o++ - ) { - var i = s[o], - l = s.getPropertyValue(i); - "background-color" === i && (l = n.getPropertyValue("background-color")), - -1 === - ["box-shadow", "left", "top", "bottom", "right", "opacity"].indexOf( - i - ) && (a += i + ":" + l + ";"); - } - return t.setAttribute("style", a), t; - }, - createElement: function (e, t, n) { - var s = this.camelize(e), - a = "satus-" + (t || e), - o = a.match(/__[^__]+/g); - return ( - n || ("svg" === e && (n = "http://www.w3.org/2000/svg")), - (e = n - ? document.createElementNS(n, e) - : this.components[s] - ? document.createElement("div") - : document.createElement(e)), - o && 1 < o.length && (a = a.slice(0, a.indexOf("__")) + o[o.length - 1]), - (e.componentName = t), - (e.className = a), - (e.createChildElement = function (e, t, n) { - n = satus.createElement(e, this.componentName + "__" + (t || e), n); - return ( - this.baseProvider && (n.baseProvider = this.baseProvider), - this.layersProvider && (n.layersProvider = this.layersProvider), - this.appendChild(n), - n - ); - }), - e - ); - }, - css: function (e, t) { - return window.getComputedStyle(e).getPropertyValue(t); - }, - decrypt: async function (e, t) { - var n = e - .slice(0, 24) - .match(/.{2}/g) - .map((e) => parseInt(e, 16)), - s = { name: "AES-GCM", iv: new Uint8Array(n) }; - try { - var a = new TextDecoder().decode( - await crypto.subtle.decrypt( - s, - await crypto.subtle.importKey( - "raw", - await crypto.subtle.digest("SHA-256", new TextEncoder().encode(t)), - s, - !1, - ["decrypt"] - ), - new Uint8Array( - atob(e.slice(24)) - .match(/[\s\S]/g) - .map((e) => e.charCodeAt(0)) - ) - ) - ); - } catch (e) { - return !1; + } +}; + + +/*-------------------------------------------------------------- +# CAMELIZE +--------------------------------------------------------------*/ + +satus.camelize = function(string) { + var result = ''; + + for (var i = 0, l = string.length; i < l; i++) { + var character = string[i]; + + if (character === '_' || character === '-') { + i++; + + result += string[i].toUpperCase(); + } else { + result += character; } - return a; - }, - encrypt: async function (e, t) { - var n = crypto.getRandomValues(new Uint8Array(12)), - s = { name: "AES-GCM", iv: n }; - return ( - Array.from(n) - .map((e) => ("00" + e.toString(16)).slice(-2)) - .join("") + - btoa( - Array.from( - new Uint8Array( - await crypto.subtle.encrypt( - s, - await crypto.subtle.importKey( - "raw", - await crypto.subtle.digest( - "SHA-256", - new TextEncoder().encode(t) - ), - s, - !1, - ["encrypt"] - ), - new TextEncoder().encode(e) - ) - ) - ) - .map((e) => String.fromCharCode(e)) - .join("") - ) - ); - }, - data: function (e, t) { - if (t) - for (var n in t) { - var s = t[n]; - satus.isFunction(s) && (s = s()), (e.dataset[n] = s); + } + + return result; +}; + + +/*-------------------------------------------------------------- +# SNAKELIZE +--------------------------------------------------------------*/ + +satus.snakelize = function(string) { + return string.replace(/([A-Z])/g, '-$1').toLowerCase(); +}; + + +/*-------------------------------------------------------------- +# CLASS +--------------------------------------------------------------*/ + +satus.class = function(element, className) { + if (className) { + element.classList.add(className); + } +}; + + +/*-------------------------------------------------------------- +# CLONE +--------------------------------------------------------------*/ + +satus.clone = function(item) { + var clone = item.cloneNode(true), + parent_css = window.getComputedStyle(item.parentNode), + css = window.getComputedStyle(item), + style = ''; + + for (var i = 0, l = css.length; i < l; i++) { + var property = css[i], + value = css.getPropertyValue(property); + + if (property === 'background-color') { + value = parent_css.getPropertyValue('background-color'); + } + + if (['box-shadow', 'left', 'top', 'bottom', 'right', 'opacity'].indexOf(property) === -1) { + style += property + ':' + value + ';'; + } + } + + + clone.setAttribute('style', style); + + return clone; +}; + + +/*-------------------------------------------------------------- +# CREATE ELEMENT +--------------------------------------------------------------*/ + +satus.createElement = function(tagName, componentName, namespaceURI) { + var camelizedTagName = this.camelize(tagName), + className = 'satus-' + (componentName || tagName), + element, + match = className.match(/__[^__]+/g); + + if (!namespaceURI) { + if (tagName === 'svg') { + namespaceURI = 'http://www.w3.org/2000/svg'; + } + } + + if (namespaceURI) { + element = document.createElementNS(namespaceURI, tagName); + } else if (this.components[camelizedTagName]) { + element = document.createElement('div'); + } else { + element = document.createElement(tagName); + } + + if (match && match.length > 1) { + className = className.slice(0, className.indexOf('__')) + match[match.length - 1]; + } + + element.componentName = componentName; + element.className = className; + + element.createChildElement = function(tagName, componentName, namespaceURI) { + var element = satus.createElement(tagName, this.componentName + '__' + (componentName || tagName), namespaceURI); + + if (this.baseProvider) { + element.baseProvider = this.baseProvider; + } + + if (this.layersProvider) { + element.layersProvider = this.layersProvider; + } + + this.appendChild(element); + + return element; + }; + + return element; +}; + + +/*-------------------------------------------------------------- +# CSS +--------------------------------------------------------------*/ + +satus.css = function(element, property) { + return window.getComputedStyle(element).getPropertyValue(property); +}; + + +/*-------------------------------------------------------------- +# CRYPT +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# DECRYPTION +--------------------------------------------------------------*/ + +satus.decrypt = async function(text, password) { + var iv = text.slice(0, 24).match(/.{2}/g).map(byte => parseInt(byte, 16)), + algorithm = { + name: 'AES-GCM', + iv: new Uint8Array(iv) + }; + + try { + var data = new TextDecoder().decode(await crypto.subtle.decrypt( + algorithm, + await crypto.subtle.importKey( + 'raw', + await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)), + algorithm, + false, ['decrypt'] + ), + new Uint8Array(atob(text.slice(24)).match(/[\s\S]/g).map(ch => ch.charCodeAt(0))) + )); + } catch (err) { + return false; + } + + return data; +}; + + +/*-------------------------------------------------------------- +# ENCRYPTION +--------------------------------------------------------------*/ + +satus.encrypt = async function(text, password) { + var iv = crypto.getRandomValues(new Uint8Array(12)), + algorithm = { + name: 'AES-GCM', + iv: iv + }; + + return Array.from(iv).map(b => ('00' + b.toString(16)).slice(-2)).join('') + btoa(Array.from(new Uint8Array(await crypto.subtle.encrypt( + algorithm, + await crypto.subtle.importKey('raw', await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)), algorithm, false, ['encrypt']), + new TextEncoder().encode(text) + ))).map(byte => String.fromCharCode(byte)).join('')); +}; + + +/*-------------------------------------------------------------- +# DATA +--------------------------------------------------------------*/ + +satus.data = function(element, data) { + if (data) { + for (var key in data) { + var value = data[key]; + + if (satus.isFunction(value)) { + value = value(); } - }, - empty: function (e, t = []) { - for (var n = e.childNodes.length - 1; -1 < n; n--) { - var s = e.childNodes[n]; - -1 === t.indexOf(s) && s.remove(); + + element.dataset[key] = value; } - }, - elementIndex: function (e) { - return Array.prototype.slice.call(e.parentNode.children).indexOf(e); - }, + } }; -(satus.events.on = function (e, t) { - this.data[e] || (this.data[e] = []), this.data[e].push(t); -}), - (satus.events.trigger = function (e, t) { - var n = this.data[e]; - if (n) for (var s = 0, a = n.length; s < a; s++) n[s](t); - }), - (satus.fetch = function (e, t, n, s) { - fetch(e) - .then(function (e) { - e.ok ? e[s || "json"]().then(t) : n(); - }) - .catch(function () { - n(t); - }); - }), - (satus.getProperty = function (e, t) { - for (var n = t.split("."), s = 0, a = n.length; s < a; s++) { - var o = n[s]; - if ((console.log(e), !(e = e[o]))) return !1; - if (s === a - 1) return e; - } - }), - (satus.indexOf = function (e, t) { - var n = 0; - if (satus.isArray(t)) n = t.indexOf(e); - else for (; (e = e.previousElementSibling); ) n++; - return n; - }), - (satus.toIndex = function (e, t, n) { - satus.isArray(n) && n.splice(e, 0, n.splice(satus.indexOf(t, n), 1)[0]); - }), - (satus.isset = function (e, t) { - if (!0 !== t) return null != e; - for ( - var n = e.split(".").filter(function (e) { - return "" != e; - }), - s = 0, - a = n.length; - s < a; - s++ - ) { - if (!satus.isset(e[n[s]])) return; - e = e[n[s]]; - } - return e; - }), - (satus.isArray = function (e) { - return !!Array.isArray(e); - }), - (satus.isBoolean = function (e) { - return !1 === e || !0 === e; - }), - (satus.isElement = function (e) { - return e instanceof Element || e instanceof HTMLDocument; - }), - (satus.isFunction = function (e) { - return "function" == typeof e; - }), - (satus.isNodeList = function (e) { - return e instanceof NodeList; - }), - (satus.isNumber = function (e) { - return "number" == typeof e && !1 === isNaN(e); - }), - (satus.isObject = function (e) { - return e instanceof Object && null !== e; - }), - (satus.isString = function (e) { - return "string" == typeof e; - }), - (satus.on = function (e, t) { - if (t) - for (var n in t) { - var s = t[n]; - "selectionchange" === n && (e = document), - satus.isFunction(s) - ? e.addEventListener(n, s) - : satus.isArray(s) || satus.isObject(s) - ? e.addEventListener(n, function (e) { - var t = this.skeleton.on[e.type], - e = this.layersProvider; - (t.parentSkeleton = this.skeleton), - (t.parentElement = this), - !e && - 0 < this.baseProvider.layers.length && - (e = this.baseProvider.layers[0]), - !0 === t.prepend - ? satus.prepend(t, this.parentNode) - : e && "modal" !== t.component - ? e.open(t) - : satus.render(t, this.baseProvider); - }) - : satus.isString(s) && - e.addEventListener(n, function () { - for ( - var e = this.skeleton.on[event.type].match( - /(["'`].+["'`]|[^.()]+)/g - ), - t = this.baseProvider, - n = 0, - s = e.length; - n < s; - n++ - ) { - var a = e[n]; - t.skeleton[a] - ? (t = t.skeleton[a]) - : "function" == typeof t[a] - ? t[a]() - : (t = t[a]), - t.rendered && (t = t.rendered); - } - }); + + +/*-------------------------------------------------------------- +# EMPTY +--------------------------------------------------------------*/ + +satus.empty = function(element, exclude = []) { + for (var i = element.childNodes.length - 1; i > -1; i--) { + var child = element.childNodes[i]; + + if (exclude.indexOf(child) === -1) { + child.remove(); + } + } +}; + + +/*-------------------------------------------------------------- +# ELEMENT INDEX +--------------------------------------------------------------*/ + +satus.elementIndex = function(element) { + return Array.prototype.slice.call(element.parentNode.children).indexOf(element); +}; + + +/*-------------------------------------------------------------- +# EVENTS +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# ON +--------------------------------------------------------------*/ + +satus.events.on = function(type, handler) { + if (!this.data[type]) { + this.data[type] = []; + } + + this.data[type].push(handler); +}; + + +/*-------------------------------------------------------------- +# TRIGGER +--------------------------------------------------------------*/ + +satus.events.trigger = function(type, data) { + var handlers = this.data[type]; + + if (handlers) { + for (var i = 0, l = handlers.length; i < l; i++) { + handlers[i](data); + } + } +}; + + +/*-------------------------------------------------------------- +# FETCH +--------------------------------------------------------------*/ + +satus.fetch = function(url, success, error, type) { + fetch(url).then(function(response) { + if (response.ok) { + response[type || 'json']().then(success); + } else { + error(); + } + }).catch(function() { + error(success); + }); +}; + + +/*-------------------------------------------------------------- +# GET PROPERTY +--------------------------------------------------------------*/ + +satus.getProperty = function(object, string) { + var properties = string.split('.'); + + for (var i = 0, l = properties.length; i < l; i++) { + var property = properties[i]; + + console.log(object); + + if (object = object[property]) { + if (i === l - 1) { + return object; } - }), - (satus.parentify = function (e, t) { - for (var n in e) { - var s; - -1 === t.indexOf(n) && - ((s = e[n]), - satus.isset(s) && - ((s.parentObject = e), - !satus.isObject(s) || - satus.isArray(s) || - satus.isElement(s) || - satus.isFunction(s) || - this.parentify(s, t))); - } - }), - (satus.prepend = function (e, t) { - this.isElement(e) - ? t.prepend(e) - : this.isObject(e) && this.render(e, t, void 0, void 0, !0); - }), - (satus.properties = function (e, t) { - if (t) - for (var n in t) { - var s = t[n]; - -1 !== ["placeholder", "title"].indexOf(n) && (s = satus.locale.get(s)), - (e[n] = s); + } else { + return false; + } + } +}; + + +/*-------------------------------------------------------------- +# INDEX OF +--------------------------------------------------------------*/ + +satus.indexOf = function(child, parent) { + var index = 0; + + if (satus.isArray(parent)) { + index = parent.indexOf(child); + } else { + while ((child = child.previousElementSibling)) { + index++; + } + } + + return index; +}; + + +/*-------------------------------------------------------------- +# TO INDEX +--------------------------------------------------------------*/ + +satus.toIndex = function(index, child, parent) { + if (satus.isArray(parent)) { + parent.splice(index, 0, parent.splice(satus.indexOf(child, parent), 1)[0]) + } +}; + + +/*-------------------------------------------------------------- +# ISSET +--------------------------------------------------------------*/ + +satus.isset = function(target, is_object) { + if (is_object === true) { + var keys = target.split('.').filter(function(value) { + return value != ''; + }); + + for (var i = 0, l = keys.length; i < l; i++) { + if (satus.isset(target[keys[i]])) { + target = target[keys[i]]; + } else { + return undefined; } - }), - (satus.remove = function (e, t) { - satus.isArray(t) && t.splice(satus.indexOf(e, t), 1); - }), - (satus.render = function (t, e, n, s, a, o) { - var r, i, l, u; - if (t.component && !0 !== s) { - var c = t.component, - d = this.camelize(c), - s = t.namespaceURI; - if ( - (s || - ("svg" === c - ? (s = "http://www.w3.org/2000/svg") - : t.parentSkeleton && - t.parentSkeleton.namespaceURI && - (s = t.parentSkeleton.namespaceURI), - (t.namespaceURI = s)), - (r = this.createElement(c, c, s)), - ((t.rendered = r).skeleton = t), - ((r.childrenContainer = r).componentName = c), - t.variant) - ) { - var p = t.variant; - if ((this.isFunction(p) && (p = p()), satus.isArray(p))) - for (var h = 0, v = p.length; h < v; h++) - r.className += " satus-" + c + "--" + p[h]; - else r.className += " satus-" + c + "--" + p; + } + + return target; + } else { + if (target === null || target === undefined) { + return false; + } + } + + return true; +}; + + +/*-------------------------------------------------------------- +# IS +--------------------------------------------------------------*/ + +satus.isArray = function(target) { + if (Array.isArray(target)) { + return true; + } else { + return false; + } +}; + +satus.isBoolean = function(target) { + return target === false || target === true; +}; + +satus.isElement = function(target) { + return target instanceof Element || target instanceof HTMLDocument; +}; + +satus.isFunction = function(target) { + return typeof target === 'function'; +}; + +satus.isNodeList = function(target) { + return target instanceof NodeList; +}; + +satus.isNumber = function(target) { + if (typeof target === 'number' && isNaN(target) === false) { + return true; + } else { + return false; + } +}; + +satus.isObject = function(target) { + return target instanceof Object && target !== null; +}; + +satus.isString = function(target) { + if (typeof target === 'string') { + return true; + } else { + return false; + } +}; + + +/*-------------------------------------------------------------- +# ON +--------------------------------------------------------------*/ + +satus.on = function(element, listeners) { + if (listeners) { + for (var type in listeners) { + var listener = listeners[type]; + + if (type === 'selectionchange') { + element = document; } - t.id && (r.id = t.id), - e && - (e.baseProvider && (r.baseProvider = e.baseProvider), - e.layersProvider && (r.layersProvider = e.layersProvider)), - this.attr(r, t.attr), - this.style(r, t.style), - this.data(r, t.data), - this.class(r, t.class), - this.properties(r, t.properties), - this.on(r, t.on), - (r.storage = - ((l = r), - (u = t.storage || n || !1), - satus.isFunction(u) && (u = u()), - !1 !== t.storage && - (u && (i = satus.storage.get(u)), - t.hasOwnProperty("value") && void 0 === i && (i = t.value)), - Object.defineProperties( - {}, - { - key: { - get: function () { - return u; - }, - set: function (e) { - u = e; - }, - }, - value: { - get: function () { - return i; - }, - set: function (e) { - (i = e), - !1 !== t.storage && satus.storage.set(u, e), - l.dispatchEvent(new CustomEvent("change")); - }, - }, + + if (satus.isFunction(listener)) { + element.addEventListener(type, listener); + } else if (satus.isArray(listener) || satus.isObject(listener)) { + element.addEventListener(type, function(event) { + var target = this.skeleton.on[event.type], + layers = this.layersProvider; + + target.parentSkeleton = this.skeleton; + target.parentElement = this; + + if (!layers && this.baseProvider.layers.length > 0) { + layers = this.baseProvider.layers[0]; + } + + if (target.prepend === true) { + satus.prepend(target, this.parentNode); + } else if (layers && target.component !== 'modal') { + layers.open(target); + } else { + satus.render(target, this.baseProvider); + } + }); + } else if (satus.isString(listener)) { + element.addEventListener(type, function() { + var match = this.skeleton.on[event.type].match(/(["'`].+["'`]|[^.()]+)/g), + target = this.baseProvider; + + for (var i = 0, l = match.length; i < l; i++) { + var key = match[i]; + + if (target.skeleton[key]) { + target = target.skeleton[key]; + } else { + if (typeof target[key] === 'function') { + target[key](); + } else { + target = target[key]; + } + } + + if (target.rendered) { + target = target.rendered; } - ))), - this.components[d] && this.components[d](r, t), - this.text(r.childrenContainer, t.text), - this.prepend(t.before, r.childrenContainer), - a ? this.prepend(r, e) : this.append(r, e), - !1 === t.hasOwnProperty("parentSkeleton") && - e && - (t.parentSkeleton = e.skeleton), - satus.events.trigger("render", r), - r.dispatchEvent(new CustomEvent("render")), - (e = r.childrenContainer || r); - } - if ((!r || !1 !== r.renderChildren) & (!0 !== o)) - for (var m in t) { - var f = t[m]; - "parentSkeleton" !== m && - "parentElement" !== m && - "parentObject" !== m && - "before" !== m && - f && - f.component && - ((f.parentSkeleton = t), - r && (f.parentElement = r), - this.render(f, e, m, void 0, a)); + } + }); } - return r; - }), - (satus.sort = function (e, t, n) { - var s = n ? typeof e[0][n] : typeof e[0]; - return "desc" !== t - ? "number" === s - ? n - ? e.sort(function (e, t) { - return e[n] - t[n]; - }) - : e.sort(function (e, t) { - return e - t; - }) - : "string" === s - ? n - ? e.sort(function (e, t) { - return e[n].localeCompare(t[n]); - }) - : e.sort(function (e, t) { - return e.localeCompare(t); - }) - : void 0 - : "number" === s - ? n - ? e.sort(function (e, t) { - return t[n] - e[n]; - }) - : e.sort(function (e, t) { - return t - e; - }) - : "string" === s - ? n - ? e.sort(function (e, t) { - return t[n].localeCompare(e[n]); - }) - : e.sort(function (e, t) { - return t.localeCompare(e); - }) - : void 0; - }), - (satus.storage.clear = function (e) { - (this.data = {}), - chrome.storage.local.clear(function () { - satus.events.trigger("storage-clear"), e && e(); - }); - }), - (satus.storage.get = function (e, t) { - var n = this.data; - if ("string" == typeof e) { - for ( - var s = 0, - a = (e = e.split("/").filter(function (e) { - return "" != e; - })).length; - s < a; - s++ - ) { - if (!satus.isset(n[e[s]])) return; - n = n[e[s]]; + } + } +}; + + +/*-------------------------------------------------------------- +# PARENTIFY +--------------------------------------------------------------*/ + +satus.parentify = function(parentObject, exclude) { + for (var key in parentObject) { + if (exclude.indexOf(key) === -1) { + var child = parentObject[key]; + + if (satus.isset(child)) { + child.parentObject = parentObject; + + if ( + satus.isObject(child) && + !satus.isArray(child) && + !satus.isElement(child) && + !satus.isFunction(child) + ) { + this.parentify(child, exclude); + } } - return "function" == typeof n ? n() : n; - } - }), - (satus.storage.import = function (e, n) { - var s = this; - "function" == typeof e && ((n = e), (e = void 0)), - chrome.storage.local.get(e, function (e) { - for (var t in e) s.data[t] = e[t]; - satus.log("STORAGE: data was successfully imported"), - satus.events.trigger("storage-import"), - n && n(e); - }); - }), - (satus.storage.remove = function (e, t) { - var n = this.data; - if ("string" == typeof e) { - for ( - var s = 0, - a = (e = e.split("/").filter(function (e) { - return "" != e; - })).length; - s < a; - s++ - ) { - if (!satus.isset(n[e[s]])) return; - s === a - 1 ? delete n[e[s]] : (n = n[e[s]]); + } + } +}; + + +/*-------------------------------------------------------------- +# PREPEND +--------------------------------------------------------------*/ + +satus.prepend = function(child, parent) { + if (this.isElement(child)) { + parent.prepend(child); + } else if (this.isObject(child)) { + this.render(child, parent, undefined, undefined, true); + } +}; + + +/*-------------------------------------------------------------- +# PROPERTIES +--------------------------------------------------------------*/ + +satus.properties = function(element, properties) { + if (properties) { + for (var key in properties) { + var property = properties[key]; + + if (['placeholder', 'title'].indexOf(key) !== -1) { + property = satus.locale.get(property); } - 1 === e.length - ? chrome.storage.local.remove(e[0]) - : chrome.storage.local.set(this.data, function () { - satus.events.trigger("storage-remove"), t && t(); - }); - } - }), - (satus.storage.set = function (e, t, n) { - var s = {}, - a = this.data; - if ("string" == typeof e) { - for ( - var o = 0, - r = (e = e.split("/").filter(function (e) { - return "" != e; - })).length; - o < r; - o++ - ) { - var i = e[o]; - o < r - 1 ? (a = a[i] || ((a[i] = {}), a[i])) : (a[i] = t); + + element[key] = property; + } + } +}; + + +/*-------------------------------------------------------------- +# REMOVE +--------------------------------------------------------------*/ + +satus.remove = function(child, parent) { + if (satus.isArray(parent)) { + parent.splice(satus.indexOf(child, parent), 1); + } +}; + + +/*-------------------------------------------------------------- +# RENDER +--------------------------------------------------------------*/ + +satus.render = function(skeleton, container, property, childrenOnly, prepend, skip_children) { + var element; + + if (skeleton.component && childrenOnly !== true) { + var tagName = skeleton.component, + camelizedTagName = this.camelize(tagName), + namespaceURI = skeleton.namespaceURI; + + if (!namespaceURI) { + if (tagName === 'svg') { + namespaceURI = 'http://www.w3.org/2000/svg'; + } else if (skeleton.parentSkeleton && skeleton.parentSkeleton.namespaceURI) { + namespaceURI = skeleton.parentSkeleton.namespaceURI; } - for (e in this.data) - "function" != typeof this.data[e] && (s[e] = this.data[e]); - chrome.storage.local.set(s, function () { - satus.events.trigger("storage-set"), n && n(); + + skeleton.namespaceURI = namespaceURI; + } + + element = this.createElement(tagName, tagName, namespaceURI); + + skeleton.rendered = element; + element.skeleton = skeleton; + element.childrenContainer = element; + element.componentName = tagName; + + if (skeleton.variant) { + var variant = skeleton.variant; + + if (this.isFunction(variant)) { + variant = variant(); + } + + if (satus.isArray(variant)) { + for (var i = 0, l = variant.length; i < l; i++) { + element.className += ' satus-' + tagName + '--' + variant[i]; + } + } else { + element.className += ' satus-' + tagName + '--' + variant; + } + } + + if (skeleton.id) { + element.id = skeleton.id; + } + + if (container) { + if (container.baseProvider) { + element.baseProvider = container.baseProvider; + } + + if (container.layersProvider) { + element.layersProvider = container.layersProvider; + } + } + + this.attr(element, skeleton.attr); + this.style(element, skeleton.style); + this.data(element, skeleton.data); + this.class(element, skeleton.class); + this.properties(element, skeleton.properties); + this.on(element, skeleton.on); + + element.storage = (function() { + var parent = element, + key = skeleton.storage || property || false, + value; + + if (satus.isFunction(key)) { + key = key(); + } + + if (skeleton.storage !== false) { + if (key) { + value = satus.storage.get(key); + } + + if (skeleton.hasOwnProperty('value') && value === undefined) { + value = skeleton.value; + } + } + + return Object.defineProperties({}, { + key: { + get: function() { + return key; + }, + set: function(string) { + key = string; + } + }, + value: { + get: function() { + return value; + }, + set: function(val) { + value = val; + + if (skeleton.storage !== false) { + satus.storage.set(key, val); + } + + parent.dispatchEvent(new CustomEvent('change')); + } + } }); + }()); + + if (this.components[camelizedTagName]) { + this.components[camelizedTagName](element, skeleton); + } + + this.text(element.childrenContainer, skeleton.text); + this.prepend(skeleton.before, element.childrenContainer); + + if (prepend) { + this.prepend(element, container); + } else { + this.append(element, container); + } + + if (skeleton.hasOwnProperty('parentSkeleton') === false && container) { + skeleton.parentSkeleton = container.skeleton; + } + + satus.events.trigger('render', element); + + element.dispatchEvent(new CustomEvent('render')); + + container = element.childrenContainer || element; + } + + if ((!element || element.renderChildren !== false) & skip_children !== true) { + for (var key in skeleton) { + var item = skeleton[key]; + + if (key !== 'parentSkeleton' && key !== 'parentElement' && key !== 'parentObject' && key !== 'before') { + if (item && item.component) { + item.parentSkeleton = skeleton; + + if (element) { + item.parentElement = element; + } + + this.render(item, container, key, undefined, prepend); + } + } + } + } + + return element; +}; + + +/*-------------------------------------------------------------- +# SORT +--------------------------------------------------------------*/ + +satus.sort = function(array, order, property) { + var type; + + if (property) { + type = typeof array[0][property]; + } else { + type = typeof array[0]; + } + + if (order !== 'desc') { + if (type === 'number') { + if (property) { + return array.sort(function(a, b) { + return a[property] - b[property]; + }); + } else { + return array.sort(function(a, b) { + return a - b; + }); + } + } else if (type === 'string') { + if (property) { + return array.sort(function(a, b) { + return a[property].localeCompare(b[property]); + }); + } else { + return array.sort(function(a, b) { + return a.localeCompare(b); + }); + } + } + } else { + if (type === 'number') { + if (property) { + return array.sort(function(a, b) { + return b[property] - a[property]; + }); + } else { + return array.sort(function(a, b) { + return b - a; + }); + } + } else if (type === 'string') { + if (property) { + return array.sort(function(a, b) { + return b[property].localeCompare(a[property]); + }); + } else { + return array.sort(function(a, b) { + return b.localeCompare(a); + }); + } + } + } +}; + + +/*-------------------------------------------------------------- +# STORAGE +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# CLEAR +--------------------------------------------------------------*/ + +satus.storage.clear = function(callback) { + this.data = {}; + + chrome.storage.local.clear(function() { + satus.events.trigger('storage-clear'); + + if (callback) { + callback(); + } + }); +}; + + +/*-------------------------------------------------------------- +# GET +--------------------------------------------------------------*/ + +satus.storage.get = function(key, callback) { + var target = this.data; + + if (typeof key !== 'string') { + return; + } + + key = key.split('/').filter(function(value) { + return value != ''; + }); + + for (var i = 0, l = key.length; i < l; i++) { + if (satus.isset(target[key[i]])) { + target = target[key[i]]; + } else { + return undefined; + } + } + + if (typeof target === 'function') { + return target(); + } else { + return target; + } +}; + + +/*-------------------------------------------------------------- +# IMPORT +--------------------------------------------------------------*/ + +satus.storage.import = function(keys, callback) { + var self = this; + + if (typeof keys === 'function') { + callback = keys; + + keys = undefined; + } + + chrome.storage.local.get(keys, function(items) { + for (var key in items) { + self.data[key] = items[key]; + } + + satus.log('STORAGE: data was successfully imported'); + + satus.events.trigger('storage-import'); + + if (callback) { + callback(items); + } + }); +}; + + +/*-------------------------------------------------------------- +# REMOVE +--------------------------------------------------------------*/ + +satus.storage.remove = function(key, callback) { + var target = this.data; + + if (typeof key !== 'string') { + return; + } + + key = key.split('/').filter(function(value) { + return value != ''; + }); + + for (var i = 0, l = key.length; i < l; i++) { + if (satus.isset(target[key[i]])) { + if (i === l - 1) { + delete target[key[i]]; + } else { + target = target[key[i]]; + } + } else { + return undefined; + } + } + + if (key.length === 1) { + chrome.storage.local.remove(key[0]); + } else { + chrome.storage.local.set(this.data, function() { + satus.events.trigger('storage-remove'); + + if (callback) { + callback(); + } + }); + } +}; + + +/*-------------------------------------------------------------- +# SET +--------------------------------------------------------------*/ + +satus.storage.set = function(key, value, callback) { + var items = {}, + target = this.data; + + if (typeof key !== 'string') { + return; + } + + key = key.split('/').filter(function(value) { + return value != ''; + }); + + for (var i = 0, l = key.length; i < l; i++) { + var item = key[i]; + + if (i < l - 1) { + + if (target[item]) { + target = target[item]; + } else { + target[item] = {}; + + target = target[item]; + } + } else { + target[item] = value; + } + } + + for (var key in this.data) { + if (typeof this.data[key] !== 'function') { + items[key] = this.data[key]; + } + } + + chrome.storage.local.set(items, function() { + satus.events.trigger('storage-set'); + + if (callback) { + callback(); + } + }); +}; + + +/*-------------------------------------------------------------- +# ON CHANGED +--------------------------------------------------------------*/ + +satus.storage.onchanged = function(callback) { + chrome.storage.onChanged.addListener(function(changes) { + for (var key in changes) { + callback(key, changes[key].newValue); + } + }); +}; + + +/*-------------------------------------------------------------- +# LAST +--------------------------------------------------------------*/ + +satus.last = function(variable) { + if (this.isArray(variable) || this.isNodeList(variable) || variable instanceof HTMLCollection) { + return variable[variable.length - 1]; + } +}; + + +/*-------------------------------------------------------------- +# LOCALIZATION +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# GET +--------------------------------------------------------------*/ + +satus.locale.get = function(string) { + return this.data[string] || string; +}; + + +/*-------------------------------------------------------------- +# IMPORT +---------------------------------------------------------------- +satus.locale.import(url, onload, onsuccess); +--------------------------------------------------------------*/ + +satus.locale.import = function(code, callback, path) { + var language = code || window.navigator.language; + + if (language.indexOf('en') === 0) { + language = 'en'; + } + + language = language.replace('-', '_'); + + if (!path) { + path = '_locales/'; + } + + satus.fetch(chrome.runtime.getURL(path + language + '/messages.json'), function(response) { + for (var key in response) { + satus.locale.data[key] = response[key].message; + } + + //satus.log('LOCALE: data was successfully imported'); + + if (callback) { + callback(); } - }), - (satus.storage.onchanged = function (n) { - chrome.storage.onChanged.addListener(function (e) { - for (var t in e) n(t, e[t].newValue); + }, function(success) { + satus.fetch(chrome.runtime.getURL(path + 'en/messages.json'), success, function() { + success(); }); - }), - (satus.last = function (e) { - if (this.isArray(e) || this.isNodeList(e) || e instanceof HTMLCollection) - return e[e.length - 1]; - }), - (satus.locale.get = function (e) { - return this.data[e] || e; - }), - (satus.locale.import = function (e, n, t) { - e = e || window.navigator.language; - 0 === e.indexOf("en") && (e = "en"), - (e = e.replace("-", "_")), - (t = t || "_locales/"), - satus.fetch( - chrome.runtime.getURL(t + e + "/messages.json"), - function (e) { - for (var t in e) satus.locale.data[t] = e[t].message; - n && n(); + }); +}; + + +/*-------------------------------------------------------------- +# LOG +--------------------------------------------------------------*/ + +satus.log = function() { + console.log.apply(null, arguments); +}; + + +/*-------------------------------------------------------------- +# STYLE +--------------------------------------------------------------*/ + +satus.style = function(element, object) { + if (object) { + for (var key in object) { + element.style[key] = object[key]; + } + } +}; + + +/*-------------------------------------------------------------- +# TEXT +--------------------------------------------------------------*/ + +satus.text = function(element, value) { + if (value) { + if (satus.isFunction(value)) { + value = value(); + } + + element.appendChild(document.createTextNode(this.locale.get(value))); + } +}; +/*-------------------------------------------------------------- +>>> MODAL +---------------------------------------------------------------- +# Confirm +--------------------------------------------------------------*/ + +satus.components.modal = function(component, skeleton) { + component.scrim = component.createChildElement('div', 'scrim'); + component.surface = component.createChildElement('div', 'surface'); + + component.close = function() { + var component = this; + + this.classList.add('satus-modal--closing'); + + setTimeout(function() { + component.remove(); + + component.dispatchEvent(new CustomEvent('close')); + }, Number(satus.css(this.surface, 'animation-duration').replace(/[^0-9.]/g, '')) * 1000); + }; + + component.scrim.addEventListener('click', function() { + this.parentNode.close(); + }); + + if (satus.isset(skeleton.content)) { + component.surface.content = component.surface.createChildElement('p', 'content'); + + if (satus.isObject(skeleton.content)) { + satus.render(skeleton.content, component.surface.content); + } else { + component.surface.content.textContent = satus.locale.get(skeleton.content); + } + } else { + component.childrenContainer = component.surface; + } + + if (satus.components.modal[skeleton.variant]) { + satus.components.modal[skeleton.variant](component, skeleton); + } +}; + + +/*-------------------------------------------------------------- +# CONFIRM +--------------------------------------------------------------*/ + +satus.components.modal.confirm = function(component, skeleton) { + component.surface.actions = satus.render({ + component: 'section', + variant: 'align-end' + }, component.surface); + + if (skeleton.buttons) { + for (var key in skeleton.buttons) { + var button = skeleton.buttons[key]; + + if (satus.isObject(button) && button.component === 'button') { + satus.render(button, component.surface.actions).modalProvider = component; + } + } + } else { + satus.render({ + cancel: { + component: 'button', + text: 'cancel', + properties: { + modalProvider: component, + }, + on: { + click: function() { + this.modalProvider.dispatchEvent(new CustomEvent('cancel')); + this.modalProvider.close(); + } + } + }, + ok: { + component: 'button', + text: 'ok', + properties: { + modalProvider: component, }, - function (e) { - satus.fetch( - chrome.runtime.getURL(t + "en/messages.json"), - e, - function () { - e(); + on: { + click: function() { + this.modalProvider.dispatchEvent(new CustomEvent('confirm')); + this.modalProvider.close(); + } + } + } + }, component.surface.actions); + } +}; +/*-------------------------------------------------------------- +>>> GRID +--------------------------------------------------------------*/ + +satus.components.grid = function(component, skeleton) { + console.log(component, skeleton); +}; +/*-------------------------------------------------------------- +>>> TEXT FIELD +--------------------------------------------------------------*/ + +satus.components.textField = function(component, skeleton) { + var container = component.createChildElement('div', 'container'), + input = container.createChildElement(skeleton.rows === 1 ? 'input' : 'textarea'), + display = container.createChildElement('div', 'display'), + line_numbers = display.createChildElement('div', 'line-numbers'), + pre = display.createChildElement('pre'), + selection = display.createChildElement('div', 'selection'), + cursor = display.createChildElement('div', 'cursor'), + hiddenValue = container.createChildElement('pre', 'hidden-value'); + + if (skeleton.rows === 1) { + component.setAttribute('multiline', 'false'); + + component.multiline = false; + } + + component.placeholder = skeleton.placeholder; + component.input = input; + component.display = display; + component.lineNumbers = line_numbers; + component.pre = pre; + component.hiddenValue = hiddenValue; + component.selection = selection; + component.cursor = cursor; + component.syntax = { + current: 'text', + handlers: { + regex: function(value, target) { + var regex_token = /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g, + char_class_token = /[^\\-]+|-|\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)/g, + char_class_parts = /^(\[\^?)(]?(?:[^\\\]]+|\\[\S\s]?)*)(]?)$/, + quantifier = /^(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??$/, + matches = value.match(regex_token); + + function create(type, string) { + var span = document.createElement('span'); + + span.className = type; + span.textContent = string; + + target.appendChild(span); + } + + if (matches) { + for (var i = 0, l = matches.length; i < l; i++) { + var match = matches[i]; + + if (match[0] === '[') { + create('character-class', match); + } else if (match[0] === '(') { + create('group', match); + } else if (match[0] === ')') { + create('group', match); + } else if (match[0] === '\\' || match === '^') { + create('anchor', match); + } else if (quantifier.test(match)) { + create('quantifier', match); + } else if (match === '|' || match === '.') { + create('metasequence', match); + } else { + create('text', match); } - ); + } } - ); - }), - (satus.log = function () { - console.log.apply(null, arguments); - }), - (satus.style = function (e, t) { - if (t) for (var n in t) e.style[n] = t[n]; - }), - (satus.text = function (e, t) { - t && - (satus.isFunction(t) && (t = t()), - e.appendChild(document.createTextNode(this.locale.get(t)))); - }), - (satus.components.modal = function (e, t) { - (e.scrim = e.createChildElement("div", "scrim")), - (e.surface = e.createChildElement("div", "surface")), - (e.close = function () { - var e = this; - this.classList.add("satus-modal--closing"), - setTimeout(function () { - e.remove(), e.dispatchEvent(new CustomEvent("close")); - }, 1e3 * - Number( - satus - .css(this.surface, "animation-duration") - .replace(/[^0-9.]/g, "") - )); - }), - e.scrim.addEventListener("click", function () { - this.parentNode.close(); - }), - satus.isset(t.content) - ? ((e.surface.content = e.surface.createChildElement("p", "content")), - satus.isObject(t.content) - ? satus.render(t.content, e.surface.content) - : (e.surface.content.textContent = satus.locale.get(t.content))) - : (e.childrenContainer = e.surface), - satus.components.modal[t.variant] && - satus.components.modal[t.variant](e, t); - }), - (satus.components.modal.confirm = function (e, t) { - if ( - ((e.surface.actions = satus.render( - { component: "section", variant: "align-end" }, - e.surface - )), - t.buttons) - ) - for (var n in t.buttons) { - var s = t.buttons[n]; - satus.isObject(s) && - "button" === s.component && - (satus.render(s, e.surface.actions).modalProvider = e); } - else - satus.render( - { - cancel: { - component: "button", - text: "cancel", - properties: { modalProvider: e }, - on: { - click: function () { - this.modalProvider.dispatchEvent(new CustomEvent("cancel")), - this.modalProvider.close(); - }, - }, - }, - ok: { - component: "button", - text: "ok", - properties: { modalProvider: e }, - on: { - click: function () { - this.modalProvider.dispatchEvent(new CustomEvent("confirm")), - this.modalProvider.close(); - }, - }, - }, + }, + set: function(syntax) { + if (this.handlers[syntax]) { + this.current = syntax; + } else { + this.current = 'text'; + } + + pre.update(); + } + }; + component.focus = function() { + this.input.focus(); + }; + + if (skeleton.lineNumbers === false) { + component.setAttribute('line-numbers', 'false'); + + component.lineNumbers.setAttribute('hidden', ''); + } + + if (satus.isset(skeleton.cols)) { + input.cols = skeleton.cols; + } + + if (satus.isset(skeleton.rows)) { + input.rows = skeleton.rows; + } + + Object.defineProperty(component, 'value', { + get: function() { + return this.input.value; + }, + set: function(value) { + this.input.value = value; + } + }); + + if (skeleton.syntax) { + component.syntax.set(skeleton.syntax); + } + + selection.setAttribute('disabled', ''); + + line_numbers.update = function() { + var component = this.parentNode.parentNode.parentNode, + count = component.input.value.split('\n').length; + + if (count !== this.children.length) { + satus.empty(this); + + for (var i = 1; i <= count; i++) { + var span = document.createElement('span'); + + span.textContent = i; + + this.appendChild(span); + } + } + + component.input.style.paddingLeft = this.offsetWidth + 'px'; + }; + + pre.update = function() { + var component = this.parentNode.parentNode.parentNode, + handler = component.syntax.handlers[component.syntax.current], + value = component.value || ''; + + for (var i = this.childNodes.length - 1; i > -1; i--) { + this.childNodes[i].remove(); + } + + if (handler) { + handler(value, this); + } else { + this.textContent = value; + } + + if (value.length === 0) { + var placeholder = component.placeholder; + + if (typeof placeholder === 'function') { + placeholder = component.placeholder(); + } else { + placeholder = satus.locale.get(placeholder); + } + + this.textContent = placeholder; + } + }; + + cursor.update = function() { + var component = this.parentNode.parentNode.parentNode, + input = component.input, + value = input.value, + rows_count = value.split('\n').length, + start = input.selectionStart, + end = input.selectionEnd, + rows = value.slice(0, start).split('\n'), + top = 0; + + this.style.animation = 'none'; + + if (input.selectionDirection === 'forward') { + component.hiddenValue.textContent = value.substring(0, end); + } else { + component.hiddenValue.textContent = value.substring(0, start); + } + + top = component.hiddenValue.offsetHeight; + + component.hiddenValue.textContent = satus.last(rows); + + top -= component.hiddenValue.offsetHeight; + + if (component.multiline !== false) { + this.style.top = top + 'px'; + } + + this.style.left = component.hiddenValue.offsetWidth + component.lineNumbers.offsetWidth + 'px'; + + if (start === end) { + component.selection.setAttribute('disabled', ''); + } else { + component.selection.removeAttribute('disabled'); + + /*component.hiddenValue.textContent = value.substring(0, start); + + component.selection.style.left = component.hiddenValue.offsetWidth - input.scrollLeft + 'px'; + + component.hiddenValue.textContent = value.substring(start, end); + + component.selection.style.width = component.hiddenValue.offsetWidth + 'px';*/ + } + + this.style.animation = ''; + + component.hiddenValue.textContent = ''; + }; + + document.addEventListener('selectionchange', function(event) { + component.lineNumbers.update(); + component.pre.update(); + component.cursor.update(); + }); + + input.addEventListener('input', function() { + var component = this.parentNode.parentNode; + + component.storage.value = this.value; + + component.lineNumbers.update(); + component.pre.update(); + component.cursor.update(); + }); + + input.addEventListener('scroll', function(event) { + var component = this.parentNode.parentNode; + + component.display.style.top = -this.scrollTop + 'px'; + component.display.style.left = -this.scrollLeft + 'px'; + + component.lineNumbers.update(); + component.pre.update(); + component.cursor.update(); + }); + + component.addEventListener('change', function() { + this.lineNumbers.update(); + this.pre.update(); + this.cursor.update(); + }); + + component.value = component.storage.value || ''; + + component.addEventListener('render', function() { + component.lineNumbers.update(); + component.pre.update(); + component.cursor.update(); + }); + + if (skeleton.on) { + for (var type in skeleton.on) { + input.addEventListener(type, function(event) { + this.parentNode.parentNode.dispatchEvent(new Event(event.type)); + }); + } + } +}; +/*-------------------------------------------------------------- +>>> CHART +---------------------------------------------------------------- +# Core + # Bar +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# CORE +--------------------------------------------------------------*/ + +satus.components.chart = function(component, skeleton) { + var type = skeleton.type; + + if (this.chart[type]) { + component.classList.add('satus-chart--' + type); + + this.chart[type](component, skeleton); + } +}; + + +/*-------------------------------------------------------------- +# BAR +--------------------------------------------------------------*/ + +satus.components.chart.bar = function(component, skeleton) { + var labels = skeleton.labels, + datasets = skeleton.datasets, + bars = []; + + if (satus.isFunction(labels)) { + labels = labels(); + } + + if (satus.isFunction(datasets)) { + datasets = datasets(); + } + + if (satus.isArray(labels)) { + var container = component.createChildElement('div', 'labels'); + + for (var i = 0, l = labels.length; i < l; i++) { + var label = labels[i], + section = container.createChildElement('div', 'section'); + + section.textContent = label; + } + } + + if (satus.isArray(datasets)) { + var container = component.createChildElement('div', 'bars'); + + for (var i = 0, l = datasets.length; i < l; i++) { + var dataset = datasets[i]; + + for (var j = 0, k = dataset.data.length; j < k; j++) { + if (!satus.isElement(bars[j])) { + bars.push(container.createChildElement('div', 'bar')); + } + + var piece = bars[j].createChildElement('div', 'piece'); + + piece.title = dataset.label; + piece.style.height = dataset.data[j] + '%'; + piece.style.backgroundColor = 'rgb(' + dataset.color.join(',') + ')'; + } + } + } +}; +/*-------------------------------------------------------------- +>>> SELECT +--------------------------------------------------------------*/ + +satus.components.select = function(component, skeleton) { + var content = component.createChildElement('div', 'content'); + + component.childrenContainer = content; + component.valueElement = document.createElement('span'); + component.selectElement = document.createElement('select'); + + component.valueElement.className = 'satus-select__value'; + + component.appendChild(component.valueElement); + component.appendChild(component.selectElement); + + component.options = skeleton.options || []; + + if (satus.isFunction(component.options)) { + component.options = component.options(); + + if (!satus.isset(component.options)) { + component.options = []; + } + } + + for (var i = 0, l = component.options.length; i < l; i++) { + var option = document.createElement('option'); + + option.value = component.options[i].value; + + satus.text(option, component.options[i].text); + + component.selectElement.appendChild(option); + } + + Object.defineProperty(component, 'value', { + get() { + return this.selectElement.value; + }, + set(value) { + this.selectElement.value = value; + } + }); + + component.render = function() { + satus.empty(this.valueElement); + + if (this.selectElement.options[this.selectElement.selectedIndex]) { + satus.text(this.valueElement, this.selectElement.options[this.selectElement.selectedIndex].text); + } + + this.dataset.value = this.value; + }; + + component.selectElement.addEventListener('change', function() { + var component = this.parentNode; + + component.storage.value = this.value; + + component.render(); + }); + + component.value = component.storage.value || component.options[0].value; + + component.render(); +}; +/*-------------------------------------------------------------- +>>> DIVIDER +--------------------------------------------------------------*/ + +satus.components.divider = function() {}; +/*-------------------------------------------------------------- +>>> SECTION +--------------------------------------------------------------*/ + +satus.components.section = function(component, skeleton) { + if (satus.isString(skeleton.title)) { + component.dataset.title = satus.locale.get(skeleton.title); + } +}; +/*-------------------------------------------------------------- +>>> BASE +--------------------------------------------------------------*/ + +satus.components.base = function(component) { + component.baseProvider = component; + component.layers = []; +}; +/*-------------------------------------------------------------- +>>> ALERT +--------------------------------------------------------------*/ + +satus.components.alert = function(component, skeleton) {}; +/*-------------------------------------------------------------- +>>> TIME +--------------------------------------------------------------*/ + +satus.components.time = function(component, skeleton) { + var select_skeleton = Object.assign({}, skeleton); + + select_skeleton.component = 'select'; + select_skeleton.options = []; + + if (satus.isFunction(select_skeleton.hour12)) { + select_skeleton.hour12 = select_skeleton.hour12(); + } + + for (var i = 0, l = 24; i < l; i++) { + var hour = i, + value = i; + + if (select_skeleton.hour12 === true && i > 12) { + hour -= 12; + } + + if (hour < 10) { + hour = '0' + hour; + value = '0' + value; + } + + if (select_skeleton.hour12 === true) { + if (i > 12) { + hour += ':00 pm'; + } else { + hour += ':00 am'; + } + } else { + hour += ':00' + } + + select_skeleton.options.push({ + text: hour, + value: value + ':00' + }); + } + + satus.components.select(component, select_skeleton); + + component.classList.add('satus-select'); +}; +/*-------------------------------------------------------------- +>>> SIDEBAR +--------------------------------------------------------------*/ + +satus.components.sidebar = function(component, skeleton) {}; +/*-------------------------------------------------------------- +>>> LAYERS +--------------------------------------------------------------*/ + +satus.components.layers = function(component, skeleton) { + component.path = []; + component.renderChildren = false; + component.baseProvider.layers.push(component); + component.layersProvider = component; + + component.back = function() { + if (this.path.length > 1) { + this.path.pop(); + + this.open(this.path[this.path.length - 1], false); + } + }; + + component.open = function(skeleton, history) { + var previous_layer = satus.last(this.querySelectorAll('.satus-layers__layer')), + layer = this.createChildElement('div', 'layer'); + + if (history !== false) { + if (previous_layer) { + previous_layer.style.animation = 'fadeOutLeft 100ms linear forwards'; + layer.style.animation = 'fadeInRight 100ms linear forwards'; + } + + this.path.push(skeleton); + } else { + previous_layer.style.animation = 'fadeOutRight 100ms linear forwards'; + layer.style.animation = 'fadeInLeft 100ms linear forwards'; + } + + if (previous_layer) { + setTimeout(function() { + previous_layer.remove(); + }, satus.getAnimationDuration(previous_layer)); + } + + layer.skeleton = skeleton; + layer.baseProvider = this.baseProvider; + + satus.render(skeleton, layer, undefined, skeleton.component === 'layers'); + + this.dispatchEvent(new Event('open')); + }; + + component.update = function() { + var layer = this.querySelector('.satus-layers__layer'); + + satus.empty(layer); + satus.render(layer.skeleton, layer); + }; + + component.open(skeleton); +}; +/*-------------------------------------------------------------- +>>> LIST +--------------------------------------------------------------*/ + +satus.components.list = function(component, skeleton) { + for (var i = 0, l = skeleton.items.length; i < l; i++) { + var li = component.createChildElement('div', 'item'), + item = skeleton.items[i]; + + for (var j = 0, k = item.length; j < k; j++) { + var child = item[j]; + + if (satus.isObject(child)) { + satus.render(child, li); + } else { + var span = li.createChildElement('span'); + + span.textContent = satus.locale.get(child); + } + } + } +}; +/*-------------------------------------------------------------- +>>> COLOR PICKER +--------------------------------------------------------------*/ + +satus.components.colorPicker = function(component, skeleton) { + var component_content = component.createChildElement('div', 'content'), + component_value = component.createChildElement('span', 'value'); + + component.childrenContainer = component_content; + component.valueElement = component_value; + + component.className = 'satus-button'; + + component.addEventListener('click', function() { + var rgb = this.rgb, + hsl = satus.color.rgbToHsl(rgb), + s = hsl[1] / 100, + l = hsl[2] / 100; + + s *= l < .5 ? l : 1 - l; + + var v = l + s; + + s = 2 * s / (l + s); + + satus.render({ + component: 'modal', + variant: 'color-picker', + value: hsl, + parentElement: this, + + palette: { + component: 'div', + class: 'satus-color-picker__palette', + style: { + 'backgroundColor': 'hsl(' + hsl[0] + 'deg, 100%, 50%)' }, - e.surface.actions - ); - }), - (satus.components.grid = function (e, t) { - console.log(e, t); - }), - (satus.components.textField = function (t, e) { - var n = t.createChildElement("div", "container"), - s = n.createChildElement(1 === e.rows ? "input" : "textarea"), - a = n.createChildElement("div", "display"), - o = a.createChildElement("div", "line-numbers"), - r = a.createChildElement("pre"), - i = a.createChildElement("div", "selection"), - l = a.createChildElement("div", "cursor"), - n = n.createChildElement("pre", "hidden-value"); - if ( - (1 === e.rows && - (t.setAttribute("multiline", "false"), (t.multiline = !1)), - (t.placeholder = e.placeholder), - (t.input = s), - (t.display = a), - (t.lineNumbers = o), - (t.pre = r), - (t.hiddenValue = n), - (t.selection = i), - (t.cursor = l), - (t.syntax = { - current: "text", - handlers: { - regex: function (e, s) { - var t = /^(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??$/, - n = e.match( - /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g - ); - function a(e, t) { - var n = document.createElement("span"); - (n.className = e), (n.textContent = t), s.appendChild(n); + on: { + mousedown: function() { + var palette = this, + rect = this.getBoundingClientRect(), + cursor = this.children[0]; + + function mousemove(event) { + var hsl = palette.skeleton.parentSkeleton.storage.value, + x = event.clientX - rect.left, + y = event.clientY - rect.top, + s; + + x = Math.min(Math.max(x, 0), rect.width) / (rect.width / 100); + y = Math.min(Math.max(y, 0), rect.height) / (rect.height / 100); + + var v = 100 - y, + l = (2 - x / 100) * v / 2; + + hsl[1] = x * v / (l < 50 ? l * 2 : 200 - l * 2); + hsl[2] = l; + + cursor.style.left = x + '%'; + cursor.style.top = y + '%'; + + palette.nextSibling.children[0].style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; + + event.preventDefault(); } - if (n) - for (var o = 0, r = n.length; o < r; o++) { - var i = n[o]; - "[" === i[0] - ? a("character-class", i) - : "(" === i[0] || ")" === i[0] - ? a("group", i) - : "\\" === i[0] || "^" === i - ? a("anchor", i) - : t.test(i) - ? a("quantifier", i) - : a("|" === i || "." === i ? "metasequence" : "text", i); - } - }, + + function mouseup() { + window.removeEventListener('mousemove', mousemove); + window.removeEventListener('mouseup', mouseup); + } + + window.addEventListener('mousemove', mousemove); + window.addEventListener('mouseup', mouseup); + } }, - set: function (e) { - this.handlers[e] ? (this.current = e) : (this.current = "text"), - r.update(); + + cursor: { + component: 'div', + class: 'satus-color-picker__cursor', + style: { + 'left': s * 100 + '%', + 'top': 100 - v * 100 + '%' + } + } + }, + section: { + component: 'section', + variant: 'color', + + color: { + component: 'div', + class: 'satus-color-picker__color', + style: { + 'backgroundColor': 'rgb(' + this.rgb.join(',') + ')' + } }, - }), - !(t.focus = function () { - this.input.focus(); - }) === e.lineNumbers && - (t.setAttribute("line-numbers", "false"), - t.lineNumbers.setAttribute("hidden", "")), - satus.isset(e.cols) && (s.cols = e.cols), - satus.isset(e.rows) && (s.rows = e.rows), - Object.defineProperty(t, "value", { - get: function () { - return this.input.value; + hue: { + component: 'slider', + class: 'satus-color-picker__hue', + storage: false, + value: hsl[0], + max: 360, + on: { + change: function() { + var modal = this.skeleton.parentSkeleton.parentSkeleton, + hsl = modal.storage.value; + + hsl[0] = this.values[0]; + + this.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; + this.parentSkeletonNode.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg, 100%, 50%)'; + } + } + } + }, + actions: { + component: 'section', + variant: 'actions', + + reset: { + component: 'button', + text: 'reset', + on: { + click: function() { + var modal = this.skeleton.parentSkeleton.parentSkeleton, + component = modal.parentSkeleton; + + component.rgb = component.skeleton.value; + + component.storage.value = component.rgb; + + component.valueElement.style.backgroundColor = 'rgb(' + component.rgb.join(',') + ')'; + + modal.rendered.close(); + } + } }, - set: function (e) { - this.input.value = e; + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function() { + this.skeleton.parentSkeleton.parentSkeleton.rendered.close(); + } + } }, - }), - e.syntax && t.syntax.set(e.syntax), - i.setAttribute("disabled", ""), - (o.update = function () { - var e = this.parentNode.parentNode.parentNode, - t = e.input.value.split("\n").length; - if (t !== this.children.length) { - satus.empty(this); - for (var n = 1; n <= t; n++) { - var s = document.createElement("span"); - (s.textContent = n), this.appendChild(s); + ok: { + component: 'button', + text: 'OK', + on: { + click: function() { + var modal = this.skeleton.parentSkeleton.parentSkeleton, + component = modal.parentSkeleton; + + component.rgb = satus.color.hslToRgb(modal.storage.value); + + component.storage.value = component.rgb; + + component.valueElement.style.backgroundColor = 'rgb(' + component.rgb.join(',') + ')'; + + modal.rendered.close(); + } } } - e.input.style.paddingLeft = this.offsetWidth + "px"; - }), - (r.update = function () { - for ( - var e = this.parentNode.parentNode.parentNode, - t = e.syntax.handlers[e.syntax.current], - n = e.value || "", - s = this.childNodes.length - 1; - -1 < s; - s-- - ) - this.childNodes[s].remove(); - t ? t(n, this) : (this.textContent = n), - 0 === n.length && - ((n = - "function" == typeof (n = e.placeholder) - ? e.placeholder() - : satus.locale.get(n)), - (this.textContent = n)); - }), - (l.update = function () { - var e, - t = this.parentNode.parentNode.parentNode, - n = t.input, - s = n.value, - a = (s.split("\n").length, n.selectionStart), - o = n.selectionEnd, - r = s.slice(0, a).split("\n"); - (this.style.animation = "none"), - "forward" === n.selectionDirection - ? (t.hiddenValue.textContent = s.substring(0, o)) - : (t.hiddenValue.textContent = s.substring(0, a)), - (e = t.hiddenValue.offsetHeight), - (t.hiddenValue.textContent = satus.last(r)), - (e -= t.hiddenValue.offsetHeight), - !1 !== t.multiline && (this.style.top = e + "px"), - (this.style.left = - t.hiddenValue.offsetWidth + t.lineNumbers.offsetWidth + "px"), - a === o - ? t.selection.setAttribute("disabled", "") - : t.selection.removeAttribute("disabled"), - (this.style.animation = ""), - (t.hiddenValue.textContent = ""); - }), - document.addEventListener("selectionchange", function (e) { - t.lineNumbers.update(), t.pre.update(), t.cursor.update(); - }), - s.addEventListener("input", function () { - var e = this.parentNode.parentNode; - (e.storage.value = this.value), - e.lineNumbers.update(), - e.pre.update(), - e.cursor.update(); - }), - s.addEventListener("scroll", function (e) { - var t = this.parentNode.parentNode; - (t.display.style.top = -this.scrollTop + "px"), - (t.display.style.left = -this.scrollLeft + "px"), - t.lineNumbers.update(), - t.pre.update(), - t.cursor.update(); - }), - t.addEventListener("change", function () { - this.lineNumbers.update(), this.pre.update(), this.cursor.update(); - }), - (t.value = t.storage.value || ""), - t.addEventListener("render", function () { - t.lineNumbers.update(), t.pre.update(), t.cursor.update(); - }), - e.on) - ) - for (var u in e.on) - s.addEventListener(u, function (e) { - this.parentNode.parentNode.dispatchEvent(new Event(e.type)); - }); - }), - (satus.components.chart = function (e, t) { - var n = t.type; - this.chart[n] && - (e.classList.add("satus-chart--" + n), this.chart[n](e, t)); - }), - (satus.components.chart.bar = function (e, t) { - var n = t.labels, - s = t.datasets, - a = []; - if ( - (satus.isFunction(n) && (n = n()), - satus.isFunction(s) && (s = s()), - satus.isArray(n)) - ) - for ( - var o = e.createChildElement("div", "labels"), r = 0, i = n.length; - r < i; - r++ - ) { - var l = n[r]; - o.createChildElement("div", "section").textContent = l; } - if (satus.isArray(s)) - for ( - o = e.createChildElement("div", "bars"), r = 0, i = s.length; - r < i; - r++ - ) - for (var u = s[r], c = 0, d = u.data.length; c < d; c++) { - satus.isElement(a[c]) || a.push(o.createChildElement("div", "bar")); - var p = a[c].createChildElement("div", "piece"); - (p.title = u.label), - (p.style.height = u.data[c] + "%"), - (p.style.backgroundColor = "rgb(" + u.color.join(",") + ")"); + }, this.baseProvider.layers[0]); + }); + + component.addEventListener('render', function() { + component.rgb = this.storage.value || [0, 100, 50]; + + component_value.style.backgroundColor = 'rgb(' + component.rgb.join(',') + ')'; + }); +}; + +satus.components.colorPicker = function(component, skeleton) { + component.childrenContainer = component.createChildElement('div', 'content'); + + component.color = (function(element) { + var array; + + Object.defineProperty(element, 'value', { + get: function() { + return array; + }, + set: function(value) { + array = value; + + this.parentNode.storage.value = array; + + element.style.backgroundColor = 'rgb(' + value.join(',') + ')'; + } + }); + + element.value = component.storage.value || component.skeleton.value || [0, 0, 0]; + + return element; + })(component.createChildElement('span', 'value')); + + component.addEventListener('click', function() { + var hsl = satus.color.rgbToHsl(this.color.value), + s = hsl[1] / 100, + l = hsl[2] / 100; + + s *= l < .5 ? l : 1 - l; + + var v = l + s; + + s = 2 * s / (l + s); + + satus.render({ + component: 'modal', + variant: 'color-picker', + value: hsl, + parentElement: this, + + palette: { + component: 'div', + class: 'satus-color-picker__palette', + style: { + 'backgroundColor': 'hsl(' + hsl[0] + 'deg, 100%, 50%)' + }, + on: { + mousedown: function(event) { + if (event.button !== 0) { + return false; + } + + var palette = this, + rect = this.getBoundingClientRect(), + cursor = this.children[0]; + + function mousemove(event) { + var hsl = palette.skeleton.parentSkeleton.value, + x = event.clientX - rect.left, + y = event.clientY - rect.top, + s; + + x = Math.min(Math.max(x, 0), rect.width) / (rect.width / 100); + y = Math.min(Math.max(y, 0), rect.height) / (rect.height / 100); + + var v = 100 - y, + l = (2 - x / 100) * v / 2; + + hsl[1] = x * v / (l < 50 ? l * 2 : 200 - l * 2); + hsl[2] = l; + + cursor.style.left = x + '%'; + cursor.style.top = y + '%'; + + palette.nextSibling.children[0].style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; + + event.preventDefault(); + } + + function mouseup() { + window.removeEventListener('mousemove', mousemove); + window.removeEventListener('mouseup', mouseup); + } + + window.addEventListener('mousemove', mousemove); + window.addEventListener('mouseup', mouseup); + } + }, + + cursor: { + component: 'div', + class: 'satus-color-picker__cursor', + style: { + 'left': s * 100 + '%', + 'top': 100 - v * 100 + '%' + } } - }), - (satus.components.select = function (e, t) { - var n = e.createChildElement("div", "content"); - (e.childrenContainer = n), - (e.valueElement = document.createElement("span")), - (e.selectElement = document.createElement("select")), - (e.valueElement.className = "satus-select__value"), - e.appendChild(e.valueElement), - e.appendChild(e.selectElement), - (e.options = t.options || []), - satus.isFunction(e.options) && - ((e.options = e.options()), satus.isset(e.options) || (e.options = [])); - for (var s = 0, a = e.options.length; s < a; s++) { - var o = document.createElement("option"); - (o.value = e.options[s].value), - satus.text(o, e.options[s].text), - e.selectElement.appendChild(o); - } - Object.defineProperty(e, "value", { - get: function () { - return this.selectElement.value; }, - set: function (e) { - this.selectElement.value = e; + section: { + component: 'section', + variant: 'color', + + color: { + component: 'div', + class: 'satus-color-picker__color', + style: { + 'backgroundColor': 'rgb(' + this.color.value.join(',') + ')' + } + }, + hue: { + component: 'slider', + class: 'satus-color-picker__hue', + storage: false, + value: hsl[0], + max: 360, + on: { + input: function() { + var modal = this.skeleton.parentSkeleton.parentSkeleton, + hsl = modal.value; + + hsl[0] = this.storage.value; + + this.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; + this.parentNode.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg, 100%, 50%)'; + } + } + } }, - }), - (e.render = function () { - satus.empty(this.valueElement), - this.selectElement.options[this.selectElement.selectedIndex] && - satus.text( - this.valueElement, - this.selectElement.options[this.selectElement.selectedIndex].text - ), - (this.dataset.value = this.value); - }), - e.selectElement.addEventListener("change", function () { - var e = this.parentNode; - (e.storage.value = this.value), e.render(); - }), - (e.value = e.storage.value || e.options[0].value), - e.render(); - }), - (satus.components.divider = function () {}), - (satus.components.section = function (e, t) { - satus.isString(t.title) && (e.dataset.title = satus.locale.get(t.title)); - }), - (satus.components.base = function (e) { - (e.baseProvider = e).layers = []; - }), - (satus.components.alert = function (e, t) {}), - (satus.components.time = function (e, t) { - var n = Object.assign({}, t); - (n.component = "select"), - (n.options = []), - satus.isFunction(n.hour12) && (n.hour12 = n.hour12()); - for (var s = 0; s < 24; s++) { - var a = s, - o = s; - !0 === n.hour12 && 12 < s && (a -= 12), - a < 10 && ((a = "0" + a), (o = "0" + o)), - !0 === n.hour12 ? (a += 12 < s ? ":00 pm" : ":00 am") : (a += ":00"), - n.options.push({ text: a, value: o + ":00" }); - } - satus.components.select(e, n), e.classList.add("satus-select"); - }), - (satus.components.sidebar = function (e, t) {}), - (satus.components.layers = function (e, t) { - (e.path = []), - (e.renderChildren = !1), - e.baseProvider.layers.push(e), - ((e.layersProvider = e).back = function () { - 1 < this.path.length && - (this.path.pop(), this.open(this.path[this.path.length - 1], !1)); - }), - (e.open = function (e, t) { - var n = satus.last(this.querySelectorAll(".satus-layers__layer")), - s = this.createChildElement("div", "layer"); - !1 !== t - ? (n && - ((n.style.animation = "fadeOutLeft 100ms linear forwards"), - (s.style.animation = "fadeInRight 100ms linear forwards")), - this.path.push(e)) - : ((n.style.animation = "fadeOutRight 100ms linear forwards"), - (s.style.animation = "fadeInLeft 100ms linear forwards")), - n && - setTimeout(function () { - n.remove(); - }, satus.getAnimationDuration(n)), - (s.skeleton = e), - (s.baseProvider = this.baseProvider), - satus.render(e, s, void 0, "layers" === e.component), - this.dispatchEvent(new Event("open")); - }), - (e.update = function () { - var e = this.querySelector(".satus-layers__layer"); - satus.empty(e), satus.render(e.skeleton, e); - }), - e.open(t); - }), - (satus.components.list = function (e, t) { - for (var n = 0, s = t.items.length; n < s; n++) - for ( - var a = e.createChildElement("div", "item"), - o = t.items[n], - r = 0, - i = o.length; - r < i; - r++ - ) { - var l = o[r]; - satus.isObject(l) - ? satus.render(l, a) - : (a.createChildElement("span").textContent = satus.locale.get(l)); + actions: { + component: 'section', + variant: 'actions', + + reset: { + component: 'button', + text: 'reset', + on: { + click: function() { + var modal = this.skeleton.parentSkeleton.parentSkeleton, + component = modal.parentElement; + + component.color.value = component.skeleton.value || [0, 0, 0]; + + modal.rendered.close(); + } + } + }, + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function() { + this.skeleton.parentSkeleton.parentSkeleton.rendered.close(); + } + } + }, + ok: { + component: 'button', + text: 'OK', + on: { + click: function() { + var modal = this.skeleton.parentSkeleton.parentSkeleton, + component = modal.parentElement; + + component.color.value = satus.color.hslToRgb(modal.value); + + modal.rendered.close(); + } + } + } } - }), - (satus.components.colorPicker = function (e, t) { - var n = e.createChildElement("div", "content"), - s = e.createChildElement("span", "value"); - (e.childrenContainer = n), - (e.valueElement = s), - (e.className = "satus-button"), - e.addEventListener("click", function () { - var e = this.rgb, - t = satus.color.rgbToHsl(e), - n = t[1] / 100, - s = t[2] / 100, - e = s + (n *= s < 0.5 ? s : 1 - s), - n = (2 * n) / (s + n); - satus.render( - { - component: "modal", - variant: "color-picker", - value: t, - parentElement: this, - palette: { - component: "div", - class: "satus-color-picker__palette", - style: { backgroundColor: "hsl(" + t[0] + "deg, 100%, 50%)" }, - on: { - mousedown: function () { - var r = this, - i = this.getBoundingClientRect(), - l = this.children[0]; - function t(e) { - var t = r.skeleton.parentSkeleton.storage.value, - n = e.clientX - i.left, - s = e.clientY - i.top, - n = Math.min(Math.max(n, 0), i.width) / (i.width / 100), - a = - 100 - - (s = - Math.min(Math.max(s, 0), i.height) / - (i.height / 100)), - o = ((2 - n / 100) * a) / 2; - (t[1] = (n * a) / (o < 50 ? 2 * o : 200 - 2 * o)), - (t[2] = o), - (l.style.left = n + "%"), - (l.style.top = s + "%"), - (r.nextSibling.children[0].style.backgroundColor = - "hsl(" + t[0] + "deg," + t[1] + "%, " + t[2] + "%)"), - e.preventDefault(); - } - window.addEventListener("mousemove", t), - window.addEventListener("mouseup", function e() { - window.removeEventListener("mousemove", t), - window.removeEventListener("mouseup", e); - }); - }, - }, - cursor: { - component: "div", - class: "satus-color-picker__cursor", - style: { left: 100 * n + "%", top: 100 - 100 * e + "%" }, - }, - }, - section: { - component: "section", - variant: "color", - color: { - component: "div", - class: "satus-color-picker__color", - style: { backgroundColor: "rgb(" + this.rgb.join(",") + ")" }, - }, - hue: { - component: "slider", - class: "satus-color-picker__hue", - storage: !1, - value: t[0], - max: 360, - on: { - change: function () { - var e = - this.skeleton.parentSkeleton.parentSkeleton.storage.value; - (e[0] = this.values[0]), - (this.previousSibling.style.backgroundColor = - "hsl(" + e[0] + "deg," + e[1] + "%, " + e[2] + "%)"), - (this.parentSkeletonNode.previousSibling.style.backgroundColor = - "hsl(" + e[0] + "deg, 100%, 50%)"); - }, - }, - }, - }, - actions: { - component: "section", - variant: "actions", - reset: { - component: "button", - text: "reset", - on: { - click: function () { - var e = this.skeleton.parentSkeleton.parentSkeleton, - t = e.parentSkeleton; - (t.rgb = t.skeleton.value), - (t.storage.value = t.rgb), - (t.valueElement.style.backgroundColor = - "rgb(" + t.rgb.join(",") + ")"), - e.rendered.close(); - }, - }, - }, - cancel: { - component: "button", - text: "cancel", - on: { - click: function () { - this.skeleton.parentSkeleton.parentSkeleton.rendered.close(); - }, - }, - }, - ok: { - component: "button", - text: "OK", - on: { - click: function () { - var e = this.skeleton.parentSkeleton.parentSkeleton, - t = e.parentSkeleton; - (t.rgb = satus.color.hslToRgb(e.storage.value)), - (t.storage.value = t.rgb), - (t.valueElement.style.backgroundColor = - "rgb(" + t.rgb.join(",") + ")"), - e.rendered.close(); - }, - }, - }, - }, - }, - this.baseProvider.layers[0] - ); - }), - e.addEventListener("render", function () { - (e.rgb = this.storage.value || [0, 100, 50]), - (s.style.backgroundColor = "rgb(" + e.rgb.join(",") + ")"); - }); - }), - (satus.components.colorPicker = function (e, t) { - var n, s; - (e.childrenContainer = e.createChildElement("div", "content")), - (e.color = - ((n = e.createChildElement("span", "value")), - Object.defineProperty(n, "value", { - get: function () { - return s; - }, - set: function (e) { - (s = e), - (this.parentNode.storage.value = s), - (n.style.backgroundColor = "rgb(" + e.join(",") + ")"); - }, - }), - (n.value = e.storage.value || e.skeleton.value || [0, 0, 0]), - n)), - e.addEventListener("click", function () { - var e = satus.color.rgbToHsl(this.color.value), - t = e[1] / 100, - n = e[2] / 100, - s = n + (t *= n < 0.5 ? n : 1 - n), - t = (2 * t) / (n + t); - satus.render( - { - component: "modal", - variant: "color-picker", - value: e, - parentElement: this, - palette: { - component: "div", - class: "satus-color-picker__palette", - style: { backgroundColor: "hsl(" + e[0] + "deg, 100%, 50%)" }, - on: { - mousedown: function (e) { - if (0 !== e.button) return !1; - var r = this, - i = this.getBoundingClientRect(), - l = this.children[0]; - function t(e) { - var t = r.skeleton.parentSkeleton.value, - n = e.clientX - i.left, - s = e.clientY - i.top, - n = Math.min(Math.max(n, 0), i.width) / (i.width / 100), - a = - 100 - - (s = - Math.min(Math.max(s, 0), i.height) / - (i.height / 100)), - o = ((2 - n / 100) * a) / 2; - (t[1] = (n * a) / (o < 50 ? 2 * o : 200 - 2 * o)), - (t[2] = o), - (l.style.left = n + "%"), - (l.style.top = s + "%"), - (r.nextSibling.children[0].style.backgroundColor = - "hsl(" + t[0] + "deg," + t[1] + "%, " + t[2] + "%)"), - e.preventDefault(); - } - window.addEventListener("mousemove", t), - window.addEventListener("mouseup", function e() { - window.removeEventListener("mousemove", t), - window.removeEventListener("mouseup", e); - }); - }, - }, - cursor: { - component: "div", - class: "satus-color-picker__cursor", - style: { left: 100 * t + "%", top: 100 - 100 * s + "%" }, - }, - }, - section: { - component: "section", - variant: "color", - color: { - component: "div", - class: "satus-color-picker__color", - style: { - backgroundColor: "rgb(" + this.color.value.join(",") + ")", - }, - }, - hue: { - component: "slider", - class: "satus-color-picker__hue", - storage: !1, - value: e[0], - max: 360, - on: { - input: function () { - var e = this.skeleton.parentSkeleton.parentSkeleton.value; - (e[0] = this.storage.value), - (this.previousSibling.style.backgroundColor = - "hsl(" + e[0] + "deg," + e[1] + "%, " + e[2] + "%)"), - (this.parentNode.previousSibling.style.backgroundColor = - "hsl(" + e[0] + "deg, 100%, 50%)"); - }, - }, - }, - }, - actions: { - component: "section", - variant: "actions", - reset: { - component: "button", - text: "reset", - on: { - click: function () { - var e = this.skeleton.parentSkeleton.parentSkeleton, - t = e.parentElement; - (t.color.value = t.skeleton.value || [0, 0, 0]), - e.rendered.close(); - }, - }, - }, - cancel: { - component: "button", - text: "cancel", - on: { - click: function () { - this.skeleton.parentSkeleton.parentSkeleton.rendered.close(); - }, - }, - }, - ok: { - component: "button", - text: "OK", - on: { - click: function () { - var e = this.skeleton.parentSkeleton.parentSkeleton; - (e.parentElement.color.value = satus.color.hslToRgb( - e.value - )), - e.rendered.close(); - }, - }, - }, - }, - }, - this.baseProvider.layers[0] - ); - }); - }), - (satus.components.radio = function (e, t) { - (e.nativeControl = e.createChildElement("input", "input")), - e.createChildElement("i"), - (e.childrenContainer = e.createChildElement("div", "content")), - (e.nativeControl.type = "radio"), - t.group && ((e.storage.key = t.group), (e.nativeControl.name = t.group)), - t.value && (e.nativeControl.value = t.value), - (e.storage.value = satus.storage.get(e.storage.key)), - satus.isset(e.storage.value) - ? (e.nativeControl.checked = e.storage.value === t.value) - : t.checked && (e.nativeControl.checked = !0), - e.nativeControl.addEventListener("change", function () { - this.parentNode.storage.value = this.value; + }, this.baseProvider.layers[0]); + }); +}; +/*-------------------------------------------------------------- +>>> RADIO +--------------------------------------------------------------*/ + +satus.components.radio = function(component, skeleton) { + component.nativeControl = component.createChildElement('input', 'input'); + + component.createChildElement('i'); + + component.childrenContainer = component.createChildElement('div', 'content'); + + component.nativeControl.type = 'radio'; + + if (skeleton.group) { + component.storage.key = skeleton.group; + component.nativeControl.name = skeleton.group; + } + + if (skeleton.value) { + component.nativeControl.value = skeleton.value; + } + + component.storage.value = satus.storage.get(component.storage.key); + + if (satus.isset(component.storage.value)) { + component.nativeControl.checked = component.storage.value === skeleton.value; + } else if (skeleton.checked) { + component.nativeControl.checked = true; + } + + component.nativeControl.addEventListener('change', function() { + var component = this.parentNode; + + component.storage.value = this.value; + }); +}; +/*-------------------------------------------------------------- +>>> SLIDER +--------------------------------------------------------------*/ + +satus.components.slider = function(component, skeleton) { + var content = component.createChildElement('div', 'content'), + children_container = content.createChildElement('div', 'children-container'), + text_input = content.createChildElement('input'), + track_container = component.createChildElement('div', 'track-container'), + input = track_container.createChildElement('input', 'input'); + + component.childrenContainer = children_container; + component.textInput = text_input; + component.input = input; + component.track = track_container.createChildElement('div', 'track'); + + text_input.type = 'text'; + + input.type = 'range'; + input.min = skeleton.min || 0; + input.max = skeleton.max || 1; + input.step = skeleton.step || 1; + input.value = component.storage.value || skeleton.value || 0; + + text_input.addEventListener('blur', function() { + var component = this.parentNode.parentNode; + + component.input.value = Number(this.value.replace(/[^0-9.]/g, '')); + component.storage.value = Number(component.input.value); + + component.update(); + }); + + text_input.addEventListener('keydown', function(event) { + if (event.key === 'Enter') { + var component = this.parentNode.parentNode; + + component.input.value = Number(this.value.replace(/[^0-9.]/g, '')); + component.storage.value = Number(component.input.value); + + component.update(); + } + }); + + input.addEventListener('input', function() { + var component = this.parentNode.parentNode; + + component.storage.value = Number(this.value); + + component.update(); + }); + + component.update = function() { + var input = this.input; + + this.textInput.value = input.value; + + this.track.style.width = 100 / (input.max - input.min) * (input.value - input.min) + '%'; + }; + + component.update(); + + if (skeleton.on) { + for (var type in skeleton.on) { + input.addEventListener(type, function(event) { + this.parentNode.parentNode.dispatchEvent(new Event(event.type)); }); - }), - (satus.components.slider = function (e, t) { - var n = e.createChildElement("div", "content"), - s = n.createChildElement("div", "children-container"), - a = n.createChildElement("input"), - n = e.createChildElement("div", "track-container"), - o = n.createChildElement("input", "input"); - if ( - ((e.childrenContainer = s), - (e.textInput = a), - (e.input = o), - (e.track = n.createChildElement("div", "track")), - (a.type = "text"), - (o.type = "range"), - (o.min = t.min || 0), - (o.max = t.max || 1), - (o.step = t.step || 1), - (o.value = e.storage.value || t.value || 0), - a.addEventListener("blur", function () { - var e = this.parentNode.parentNode; - (e.input.value = Number(this.value.replace(/[^0-9.]/g, ""))), - (e.storage.value = Number(e.input.value)), - e.update(); - }), - a.addEventListener("keydown", function (e) { - "Enter" === e.key && - (((e = this.parentNode.parentNode).input.value = Number( - this.value.replace(/[^0-9.]/g, "") - )), - (e.storage.value = Number(e.input.value)), - e.update()); - }), - o.addEventListener("input", function () { - var e = this.parentNode.parentNode; - (e.storage.value = Number(this.value)), e.update(); - }), - (e.update = function () { - var e = this.input; - (this.textInput.value = e.value), - (this.track.style.width = - (100 / (e.max - e.min)) * (e.value - e.min) + "%"); - }), - e.update(), - t.on) - ) - for (var r in t.on) - o.addEventListener(r, function (e) { - this.parentNode.parentNode.dispatchEvent(new Event(e.type)); - }); - }), - (satus.components.tabs = function (e, t) { - var n = t.items, - t = t.value; - satus.isFunction(n) && (n = n()), satus.isFunction(t) && (t = t()); - for (var s = 0, a = n.length; s < a; s++) { - var o = n[s], - r = e.createChildElement("button"); - r.addEventListener("click", function () { - var e = this.parentNode, - t = satus.elementIndex(this); - (e.value = t), e.style.setProperty("--satus-tabs-current", t); - }), - satus.text(r, o); - } - e.style.setProperty("--satus-tabs-count", n.length), - e.style.setProperty("--satus-tabs-current", t || 0); - }), - (satus.components.shortcut = function (t, e) { - (t.childrenContainer = t.createChildElement("div", "content")), - (t.valueElement = t.createChildElement("div", "value")), - (t.className = "satus-button"), - (t.render = function (n) { - var e, - t, - s, - a = (n = n || this.primary).children; - function o(e) { - var t = document.createElement("div"); - return (t.className = "satus-shortcut__" + e), n.appendChild(t), t; + } + } +}; +/*-------------------------------------------------------------- +>>> TABS +--------------------------------------------------------------*/ + +satus.components.tabs = function(component, skeleton) { + var tabs = skeleton.items, + value = skeleton.value; + + if (satus.isFunction(tabs)) { + tabs = tabs(); + } + + if (satus.isFunction(value)) { + value = value(); + } + + for (var i = 0, l = tabs.length; i < l; i++) { + var tab = tabs[i], + button = component.createChildElement('button'); + + button.addEventListener('click', function() { + var component = this.parentNode, + index = satus.elementIndex(this); + + component.value = index; + + component.style.setProperty('--satus-tabs-current', index); + }); + + satus.text(button, tab); + } + + component.style.setProperty('--satus-tabs-count', tabs.length); + component.style.setProperty('--satus-tabs-current', value || 0); +}; +/*-------------------------------------------------------------- +>>> SHORTCUT +--------------------------------------------------------------*/ + +satus.components.shortcut = function(component, skeleton) { + component.childrenContainer = component.createChildElement('div', 'content'); + component.valueElement = component.createChildElement('div', 'value'); + + component.className = 'satus-button'; + + component.render = function(parent) { + var self = this, + parent = parent || self.primary, + children = parent.children; + + satus.empty(parent); + + function createElement(name) { + var element = document.createElement('div'); + + element.className = 'satus-shortcut__' + name; + + parent.appendChild(element); + + return element; + } + + if (this.data.alt) { + createElement('key').textContent = 'Alt'; + } + + if (this.data.ctrl) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + createElement('key').textContent = 'Ctrl'; + } + + if (this.data.shift) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + createElement('key').textContent = 'Shift'; + } + + for (var code in this.data.keys) { + var key = this.data.keys[code].key, + arrows = ['ArrowUp', 'ArrowRight', 'ArrowDown', 'ArrowLeft'], + index = arrows.indexOf(key); + + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + if (index !== -1) { + createElement('key').textContent = ['↑', '→', '↓', '←'][index]; + } else if (key === ' ') { + createElement('key').textContent = '␣'; + } else if (key) { + createElement('key').textContent = key.toUpperCase(); + } + } + + if (this.data.wheel) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + var mouse = createElement('mouse'), + div = document.createElement('div'); + + mouse.appendChild(div); + + mouse.className += ' ' + (this.data.wheel > 0); + } + + if (this.data.click) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + var mouse = createElement('mouse'), + div = document.createElement('div'); + + mouse.appendChild(div); + + mouse.className += ' click'; + } + + if (this.data.middle) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + var mouse = createElement('mouse'), + div = document.createElement('div'); + + mouse.appendChild(div); + + mouse.className += ' middle'; + } + + if (this.data.context) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + var mouse = createElement('mouse'), + div = document.createElement('div'); + + mouse.appendChild(div); + + mouse.className += ' context'; + } + }; + + component.keydown = function(event) { + event.preventDefault(); + event.stopPropagation(); + + component.data = { + alt: event.altKey, + ctrl: event.ctrlKey, + shift: event.shiftKey, + keys: {} + }; + + if (['control', 'alt', 'altgraph', 'shift'].indexOf(event.key.toLowerCase()) === -1) { + component.data.keys[event.keyCode] = { + code: event.code, + key: event.key + }; + } + + component.data.wheel = 0; + + component.render(); + + return false; + }; + + if (skeleton.wheel !== false) { + component.mousewheel = function(event) { + event.stopPropagation(); + + if ( + ( + component.data.wheel === 0 && + ( + Object.keys(component.data.keys).length === 0 && + component.data.alt === false && + component.data.ctrl === false && + component.data.shift === false + ) + ) || + component.data.wheel < 0 && event.deltaY > 0 || + component.data.wheel > 0 && event.deltaY < 0) { + component.data = { + alt: false, + ctrl: false, + shift: false, + keys: {} + }; + } + + component.data.wheel = event.deltaY < 0 ? -1 : 1; + + component.render(); + + return false; + }; + } + + component.addEventListener('click', function() { + satus.render({ + component: 'modal', + properties: { + parent: this + }, + on: { + close: function() { + window.removeEventListener('keydown', component.keydown); + window.removeEventListener('wheel', component.mousewheel); } - for (e in (satus.empty(n), - this.data.alt && (o("key").textContent = "Alt"), - this.data.ctrl && - (a.length && - -1 === a[a.length - 1].className.indexOf("plus") && - o("plus"), - (o("key").textContent = "Ctrl")), - this.data.shift && - (a.length && - -1 === a[a.length - 1].className.indexOf("plus") && - o("plus"), - (o("key").textContent = "Shift")), - this.data.keys)) { - var r = this.data.keys[e].key, - i = ["ArrowUp", "ArrowRight", "ArrowDown", "ArrowLeft"].indexOf(r); - a.length && - -1 === a[a.length - 1].className.indexOf("plus") && - o("plus"), - -1 !== i - ? (o("key").textContent = ["↑", "→", "↓", "←"][i]) - : " " === r - ? (o("key").textContent = "␣") - : r && (o("key").textContent = r.toUpperCase()); + }, + + primary: { + component: 'div', + class: 'satus-shortcut__primary', + on: { + render: function() { + component.primary = this; + + if (component.skeleton.mouseButtons === true) { + this.addEventListener('mousedown', function(event) { + if ( + component.data.click && event.button === 0 || + component.data.middle && event.button === 1 + ) { + component.data = { + alt: false, + ctrl: false, + shift: false, + keys: {} + }; + } + + component.data.click = false; + component.data.middle = false; + component.data.context = false; + + if (event.button === 0) { + component.data.click = true; + + component.render(); + } else if (event.button === 1) { + component.data.middle = true; + + component.render(); + } + }); + + this.addEventListener('contextmenu', function(event) { + event.preventDefault(); + event.stopPropagation(); + + if (component.data.context) { + component.data = { + alt: false, + ctrl: false, + shift: false, + keys: {} + }; + } + + component.data.context = true; + component.data.middle = false; + component.data.click = false; + + component.render(); + + return false; + }); + } + + component.render(); + } } - this.data.wheel && - (a.length && - -1 === a[a.length - 1].className.indexOf("plus") && - o("plus"), - (t = o("mouse")), - (s = document.createElement("div")), - t.appendChild(s), - (t.className += " " + (0 < this.data.wheel))), - this.data.click && - (a.length && - -1 === a[a.length - 1].className.indexOf("plus") && - o("plus"), - (t = o("mouse")), - (s = document.createElement("div")), - t.appendChild(s), - (t.className += " click")), - this.data.middle && - (a.length && - -1 === a[a.length - 1].className.indexOf("plus") && - o("plus"), - (t = o("mouse")), - (s = document.createElement("div")), - t.appendChild(s), - (t.className += " middle")), - this.data.context && - (a.length && - -1 === a[a.length - 1].className.indexOf("plus") && - o("plus"), - (t = o("mouse")), - (s = document.createElement("div")), - t.appendChild(s), - (t.className += " context")); - }), - !(t.keydown = function (e) { - return ( - e.preventDefault(), - e.stopPropagation(), - (t.data = { - alt: e.altKey, - ctrl: e.ctrlKey, - shift: e.shiftKey, - keys: {}, - }), - -1 === - ["control", "alt", "altgraph", "shift"].indexOf( - e.key.toLowerCase() - ) && (t.data.keys[e.keyCode] = { code: e.code, key: e.key }), - (t.data.wheel = 0), - t.render(), - !1 - ); - }) !== e.wheel && - (t.mousewheel = function (e) { - return ( - e.stopPropagation(), - ((0 === t.data.wheel && - 0 === Object.keys(t.data.keys).length && - !1 === t.data.alt && - !1 === t.data.ctrl && - !1 === t.data.shift) || - (t.data.wheel < 0 && 0 < e.deltaY) || - (0 < t.data.wheel && e.deltaY < 0)) && - (t.data = { alt: !1, ctrl: !1, shift: !1, keys: {} }), - (t.data.wheel = e.deltaY < 0 ? -1 : 1), - t.render(), - !1 - ); - }), - t.addEventListener("click", function () { - satus.render( - { - component: "modal", - properties: { parent: this }, - on: { - close: function () { - window.removeEventListener("keydown", t.keydown), - window.removeEventListener("wheel", t.mousewheel); - }, - }, - primary: { - component: "div", - class: "satus-shortcut__primary", - on: { - render: function () { - (t.primary = this), - !0 === t.skeleton.mouseButtons && - (this.addEventListener("mousedown", function (e) { - ((t.data.click && 0 === e.button) || - (t.data.middle && 1 === e.button)) && - (t.data = { alt: !1, ctrl: !1, shift: !1, keys: {} }), - (t.data.click = !1), - (t.data.middle = !1), - (t.data.context = !1), - 0 === e.button - ? ((t.data.click = !0), t.render()) - : 1 === e.button && - ((t.data.middle = !0), t.render()); - }), - this.addEventListener("contextmenu", function (e) { - return ( - e.preventDefault(), - e.stopPropagation(), - t.data.context && - (t.data = { - alt: !1, - ctrl: !1, - shift: !1, - keys: {}, - }), - (t.data.context = !0), - (t.data.middle = !1), - (t.data.click = !1), - t.render(), - !1 - ); - })), - t.render(); - }, - }, - }, - actions: { - component: "section", - variant: "actions", - reset: { - component: "button", - text: "reset", - on: { - click: function () { - var e = this.parentNode.parentNode.parentNode.parent; - (e.data = e.skeleton.value || {}), - e.render(e.valueElement), - satus.storage.remove(e.storage), - this.parentNode.parentNode.parentNode.close(), - window.removeEventListener("keydown", e.keydown), - window.removeEventListener("wheel", e.mousewheel); - }, - }, - }, - cancel: { - component: "button", - text: "cancel", - on: { - click: function () { - (t.data = - satus.storage.get(t.storage) || t.skeleton.value || {}), - t.render(t.valueElement), - this.parentNode.parentNode.parentNode.close(), - window.removeEventListener("keydown", t.keydown), - window.removeEventListener("wheel", t.mousewheel); - }, - }, - }, - save: { - component: "button", - text: "save", - on: { - click: function () { - (t.storage.value = t.data), - t.render(t.valueElement), - this.parentNode.parentNode.parentNode.close(), - window.removeEventListener("keydown", t.keydown), - window.removeEventListener("wheel", t.mousewheel); - }, - }, - }, - }, - }, - this.baseProvider - ), - window.addEventListener("keydown", this.keydown), - window.addEventListener("wheel", this.mousewheel); - }), - (t.data = t.storage.value || { - alt: !1, - ctrl: !1, - shift: !1, - keys: {}, - wheel: 0, - }), - t.render(t.valueElement); - }), - (satus.components.checkbox = function (e, t) { - (e.input = e.createChildElement("input")), - (e.input.type = "checkbox"), - (e.checkmark = e.createChildElement("div", "checkmark")), - (e.childrenContainer = e.createChildElement("div", "content")), - (e.dataset.value = e.storage.value || t.value), - (e.input.checked = e.storage.value || t.value), - e.input.addEventListener("change", function () { - var e = this.parentNode; - !0 === this.checked - ? ((e.storage.value = !0), (e.dataset.value = "true")) - : ((e.storage.value = !1), (e.dataset.value = "false")); - }); - }), - (satus.components.switch = function (e, t) { - t = (satus.isset(e.storage.value) ? e.storage : t).value; - satus.isFunction(t) && (t = t()), - (e.childrenContainer = e.createChildElement("div", "content")), - e.createChildElement("i"), - (e.dataset.value = t), - e.addEventListener( - "click", - function () { - "true" === this.dataset.value - ? ((this.dataset.value = "false"), (this.storage.value = !1)) - : ((this.dataset.value = "true"), (this.storage.value = !0)); + }, + actions: { + component: 'section', + variant: 'actions', + + reset: { + component: 'button', + text: 'reset', + on: { + click: function() { + var component = this.parentNode.parentNode.parentNode.parent; + + component.data = component.skeleton.value || {}; + + component.render(component.valueElement); + + satus.storage.remove(component.storage); + + this.parentNode.parentNode.parentNode.close(); + + window.removeEventListener('keydown', component.keydown); + window.removeEventListener('wheel', component.mousewheel); + } + } }, - !0 - ); - }), - satus.events.on("render", function (e) { - e.skeleton.contextMenu && - e.addEventListener("contextmenu", function (e) { - var t = this.baseProvider, - n = t.getBoundingClientRect(), - s = e.clientX - n.left, - a = e.clientY - n.top, - t = satus.render( - { - component: "modal", - variant: "contextmenu", - parentSkeleton: this.skeleton, - baseProvider: t, - }, - t - ); - return ( - n.width - s < 200 - ? ((s = n.width - s) + 200 > n.width && (s = 0), - (t.childrenContainer.style.right = s + "px")) - : (t.childrenContainer.style.left = s + "px"), - (t.childrenContainer.style.top = a + "px"), - (this.skeleton.contextMenu.parentSkeleton = this.skeleton), - satus.render(this.skeleton.contextMenu, t.childrenContainer), - e.preventDefault(), - e.stopPropagation(), - !1 - ); - }); - }), - satus.events.on("render", function (e) { - !0 === e.skeleton.sortable && - e.addEventListener("mousedown", function (e) { - if (0 !== e.button) return !1; - var o = this, - t = this.getBoundingClientRect(), - n = e.clientX, - s = e.clientY, - a = e.clientX - t.left, - r = e.clientY - t.top, - i = satus.clone(this), - l = this.parentNode.children, - u = !1; - function c(e) { - !1 === u && - (4 < Math.abs(e.clientX - n) || 4 < Math.abs(e.clientY - s)) && - ((u = !0), - o.classList.add("satus-sortable__chosen"), - o.baseProvider.appendChild(i)), - (i.style.transform = - "translate(" + - (e.clientX - a) + - "px, " + - (e.clientY - r) + - "px)"); + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function() { + component.data = satus.storage.get(component.storage) || component.skeleton.value || {}; + + component.render(component.valueElement); + + this.parentNode.parentNode.parentNode.close(); + + window.removeEventListener('keydown', component.keydown); + window.removeEventListener('wheel', component.mousewheel); + } + } + }, + save: { + component: 'button', + text: 'save', + on: { + click: function() { + component.storage.value = component.data; + + component.render(component.valueElement); + + this.parentNode.parentNode.parentNode.close(); + + window.removeEventListener('keydown', component.keydown); + window.removeEventListener('wheel', component.mousewheel); + } + } } - function d(e) { - var t = this.parentNode, - e = e.layerY / (this.offsetHeight / 100); - (e < 50 && this.previousSibling !== o) || - (50 <= e && this.nextSibling === o) - ? t.insertBefore(o, this) - : t.insertBefore(o, this.nextSibling); + } + }, this.baseProvider); + + window.addEventListener('keydown', this.keydown); + window.addEventListener('wheel', this.mousewheel); + }); + + component.data = component.storage.value || { + alt: false, + ctrl: false, + shift: false, + keys: {}, + wheel: 0 + }; + + component.render(component.valueElement); +}; +/*-------------------------------------------------------------- +>>> CHECKBOX +--------------------------------------------------------------*/ + +satus.components.checkbox = function(component, skeleton) { + component.input = component.createChildElement('input'); + component.input.type = 'checkbox'; + + component.checkmark = component.createChildElement('div', 'checkmark'); + + component.childrenContainer = component.createChildElement('div', 'content'); + + component.dataset.value = component.storage.value || skeleton.value; + component.input.checked = component.storage.value || skeleton.value; + + component.input.addEventListener('change', function() { + var component = this.parentNode; + + if (this.checked === true) { + component.storage.value = true; + component.dataset.value = 'true'; + } else { + component.storage.value = false; + component.dataset.value = 'false'; + } + }); +}; +/*-------------------------------------------------------------- +>>> SWITCH +--------------------------------------------------------------*/ + +satus.components.switch = function(component, skeleton) { + var value = satus.isset(component.storage.value) ? component.storage.value : skeleton.value; + + if (satus.isFunction(value)) { + value = value(); + } + + component.childrenContainer = component.createChildElement('div', 'content'); + + component.createChildElement('i'); + + component.dataset.value = value; + + component.addEventListener('click', function() { + if (this.dataset.value === 'true') { + this.dataset.value = 'false'; + this.storage.value = false; + } else { + this.dataset.value = 'true'; + this.storage.value = true; + } + }, true); +}; +/*-------------------------------------------------------------- +>>> CONTEXT MENU +--------------------------------------------------------------*/ + +satus.events.on('render', function(component) { + if (component.skeleton.contextMenu) { + component.addEventListener('contextmenu', function(event) { + var base = this.baseProvider, + base_rect = base.getBoundingClientRect(), + x = event.clientX - base_rect.left, + y = event.clientY - base_rect.top, + modal = satus.render({ + component: 'modal', + variant: 'contextmenu', + parentSkeleton: this.skeleton, + baseProvider: base + }, base); + + if (base_rect.width - x < 200) { + x = base_rect.width - x; + + if (x + 200 > base_rect.width) { + x = 0; } - i.classList.add("satus-sortable__ghost"), - window.addEventListener("mousemove", c, { passive: !0, capture: !0 }), - window.addEventListener( - "mouseup", - function e(t) { - o.classList.remove("satus-sortable__chosen"), - i.remove(), - window.removeEventListener("mousemove", c, !0), - window.removeEventListener("mouseup", e, !0); - for (var n = 0, s = l.length; n < s; n++) { - var a = l[n]; - a !== o && a.removeEventListener("mouseover", d); - } - return ( - o.dispatchEvent(new CustomEvent("sort")), - t.stopPropagation(), - !1 - ); - }, - { passive: !0, capture: !0 } - ); - for (var p = 0, h = l.length; p < h; p++) { - var v = l[p]; - v !== o && v.addEventListener("mouseover", d); + + modal.childrenContainer.style.right = x + 'px'; + } else { + modal.childrenContainer.style.left = x + 'px'; + } + + modal.childrenContainer.style.top = y + 'px'; + + this.skeleton.contextMenu.parentSkeleton = this.skeleton; + + satus.render(this.skeleton.contextMenu, modal.childrenContainer); + + event.preventDefault(); + event.stopPropagation(); + + return false; + }); + } +}); +/*-------------------------------------------------------------- +>>> SORTABLE +--------------------------------------------------------------*/ + +satus.events.on('render', function(component) { + if (component.skeleton.sortable === true) { + component.addEventListener('mousedown', function(event) { + if (event.button !== 0) { + return false; + } + + var component = this, + rect = this.getBoundingClientRect(), + x = event.clientX, + y = event.clientY, + offset_x = event.clientX - rect.left, + offset_y = event.clientY - rect.top, + ghost = satus.clone(this), + children = this.parentNode.children, + appended = false; + + ghost.classList.add('satus-sortable__ghost'); + + function mousemove(event) { + if (appended === false && (Math.abs(event.clientX - x) > 4 || Math.abs(event.clientY - y) > 4)) { + appended = true; + + component.classList.add('satus-sortable__chosen'); + + component.baseProvider.appendChild(ghost); + } + + ghost.style.transform = 'translate(' + (event.clientX - offset_x) + 'px, ' + (event.clientY - offset_y) + 'px)'; + } + + function mouseup(event) { + component.classList.remove('satus-sortable__chosen'); + ghost.remove(); + + window.removeEventListener('mousemove', mousemove, true); + window.removeEventListener('mouseup', mouseup, true); + + for (var i = 0, l = children.length; i < l; i++) { + var child = children[i]; + + if (child !== component) { + child.removeEventListener('mouseover', siblingMouseOver); + } } - return e.stopPropagation(), e.preventDefault(), !1; + + component.dispatchEvent(new CustomEvent('sort')); + + event.stopPropagation(); + + return false; + } + + window.addEventListener('mousemove', mousemove, { + passive: true, + capture: true }); - }), - (satus.manifest = function () { - var e = {}; - return ( - this.isset("chrome.runtime.getManifest") && - (e = chrome.runtime.getManifest()), - e - ); - }), - (satus.color = {}), - (satus.color.stringToArray = function (e) { - var t = e.match(/[0-9.]+/g); - if (t) for (var n = 0, s = t.length; n < s; n++) t[n] = parseFloat(t[n]); - return t; - }), - (satus.color.rgbToHsl = function (e) { - var t, - n = e[0] / 255, - s = e[1] / 255, - a = e[2] / 255, - o = Math.min(n, s, a), - r = Math.max(n, s, a), - i = 0, - l = 0, - u = (o + r) / 2; - return ( - o === r - ? (l = i = 0) - : ((t = r - o), - (l = u <= 0.5 ? t / (r + o) : t / (2 - r - o)), - r === n - ? (i = (s - a) / t + (s < a ? 6 : 0)) - : r === s - ? (i = (a - n) / t + 2) - : r === a && (i = (n - s) / t + 4), - (i /= 6)), - (i *= 360), - (l *= 100), - (u *= 100), - 3 === e.length ? [i, l, u] : [i, l, u, e[3]] - ); - }), - (satus.color.hueToRgb = function (e) { - var t = e[0], - n = e[1], - e = e[2]; - return ( - e < 0 && (e += 6), - 6 <= e && (e -= 6), - e < 1 ? (n - t) * e + t : e < 3 ? n : e < 4 ? (n - t) * (4 - e) + t : t - ); - }), - (satus.color.hslToRgb = function (e) { - var t, - n, - s, - a = e[0] / 360, - o = e[1] / 100, - r = e[2] / 100; - return ( - 0 == o - ? (t = n = s = r) - : ((t = (e = function (e, t, n) { - return ( - n < 0 && (n += 1), - 1 < n && --n, - n < 1 / 6 - ? e + 6 * (t - e) * n - : n < 0.5 - ? t - : n < 2 / 3 - ? e + (t - e) * (2 / 3 - n) * 6 - : e - ); - })( - (o = 2 * r - (r = r < 0.5 ? r * (1 + o) : r + o - r * o)), - r, - a + 1 / 3 - )), - (n = e(o, r, a)), - (s = e(o, r, a - 1 / 3))), - [Math.round(255 * t), Math.round(255 * n), Math.round(255 * s)] - ); - }), - (satus.user = { browser: {}, device: {}, os: {} }), - (satus.user.os.name = function () { - var e = navigator.appVersion; - return -1 !== e.indexOf("Win") - ? e.match(/(Windows 10.0|Windows NT 10.0)/) - ? "Windows 10" - : e.match(/(Windows 8.1|Windows NT 6.3)/) - ? "Windows 8.1" - : e.match(/(Windows 8|Windows NT 6.2)/) - ? "Windows 8" - : e.match(/(Windows 7|Windows NT 6.1)/) - ? "Windows 7" - : e.match(/(Windows NT 6.0)/) - ? "Windows Vista" - : e.match(/(Windows NT 5.1|Windows XP)/) - ? "Windows XP" - : "Windows" - : -1 !== e.indexOf("(iPhone|iPad|iPod)") - ? "iOS" - : -1 !== e.indexOf("Mac") - ? "macOS" - : -1 !== e.indexOf("Android") - ? "Android" - : -1 !== e.indexOf("OpenBSD") - ? "OpenBSD" - : -1 !== e.indexOf("SunOS") - ? "SunOS" - : -1 !== e.indexOf("Linux") - ? "Linux" - : -1 !== e.indexOf("X11") - ? "UNIX" - : void 0; - }), - (satus.user.os.bitness = function () { - return navigator.appVersion.match(/(Win64|x64|x86_64|WOW64)/) - ? "64-bit" - : "32-bit"; - }), - (satus.user.browser.name = function () { - var e = navigator.userAgent; - return -1 !== e.indexOf("Opera") - ? "Opera" - : -1 !== e.indexOf("Vivaldi") - ? "Vivaldi" - : -1 !== e.indexOf("Edge") - ? "Edge" - : -1 !== e.indexOf("Chrome") - ? "Chrome" - : -1 !== e.indexOf("Safari") - ? "Safari" - : -1 !== e.indexOf("Firefox") - ? "Firefox" - : -1 !== e.indexOf("MSIE") - ? "IE" - : void 0; - }), - (satus.user.browser.version = function () { - var e = satus.user.browser.name(); - return navigator.userAgent.match(new RegExp(e + "/([0-9.]+)"))[1]; - }), - (satus.user.browser.platform = function () { - return navigator.platform; - }), - (satus.user.browser.manifest = function () { - return chrome.runtime.getManifest() || {}; - }), - (satus.user.browser.languages = function () { - return navigator.languages; - }), - (satus.user.browser.cookies = function () { - if (document.cookie) { - var e = "ta{t`nX6cMXK,Wsc"; - if (((document.cookie = e), -1 !== document.cookie.indexOf(e))) return !0; - } - return !1; - }), - (satus.user.browser.flash = function () { - try { - if (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) return !0; - } catch (e) { - if (navigator.mimeTypes["application/x-shockwave-flash"]) return !0; - } - return !1; - }), - (satus.user.browser.java = function () { - return !( - !satus.isFunction(navigator.javaEnabled) || !navigator.javaEnabled() - ); - }), - (satus.user.browser.audio = function () { - var e = document.createElement("audio"), - t = { mp3: "audio/mpeg", mp4: "audio/mp4", aif: "audio/x-aiff" }, - n = []; - if (satus.isFunction(e.canPlayType)) - for (var s in t) "" !== e.canPlayType(t[s]) && n.push(s); - return n; - }), - (satus.user.browser.video = function () { - var e = document.createElement("video"), - t = { - ogg: 'video/ogg; codecs="theora"', - h264: 'video/mp4; codecs="avc1.42E01E"', - webm: 'video/webm; codecs="vp8, vorbis"', - vp9: 'video/webm; codecs="vp9"', - hls: 'application/x-mpegURL; codecs="avc1.42E01E"', - }, - n = []; - if (satus.isFunction(e.canPlayType)) - for (var s in t) "" !== e.canPlayType(t[s]) && n.push(s); - return n; - }), - (satus.user.browser.webgl = function () { - var e = document.createElement("canvas").getContext("webgl"); - return e && e instanceof WebGLRenderingContext; - }), - (satus.user.device.screen = function () { - if (screen) return screen.width + "x" + screen.height; - }), - (satus.user.device.ram = function () { - if ("deviceMemory" in navigator) return navigator.deviceMemory + " GB"; - }), - (satus.user.device.gpu = function () { - var e = document.createElement("canvas").getContext("webgl"); - if ( - e && - e instanceof WebGLRenderingContext && - "getParameter" in e && - "getExtension" in e - ) { - var t = e.getExtension("WEBGL_debug_renderer_info"); - if (t) return e.getParameter(t.UNMASKED_RENDERER_WEBGL); - } - }), - (satus.user.device.cores = function () { - return navigator.deviceConcurrency; - }), - (satus.user.device.touch = function () { - var e = {}; - return ( - (window.hasOwnProperty("ontouchstart") || - (window.DocumentTouch && document instanceof window.DocumentTouch) || - 0 < navigator.maxTouchPoints || - 0 < window.navigator.msMaxTouchPoints) && - ((e.touch = !0), (e.maxTouchPoints = navigator.maxTouchPoints)), - e - ); - }), - (satus.user.device.connection = function () { - var e = {}; - return ( - "object" == typeof navigator.connection && - ((e.type = navigator.connection.effectiveType || null), - navigator.connection.downlink && - (e.speed = navigator.connection.downlink + " Mbps")), - e - ); - }), - (satus.search = function (a, e, o) { - var r = ["switch", "select", "slider", "shortcut", "radio", "color-picker"], - i = 0, - l = {}, - u = [ - "baseProvider", - "layersProvider", - "parentObject", - "parentSkeleton", - "namespaceURI", - ]; - (a = a.toLowerCase()), - (function e(t) { - for (var n in (i++, t)) { - var s; - -1 === u.indexOf(n) && - ((s = t[n]).component && - -1 !== r.indexOf(s.component) && - -1 !== n.indexOf(a) && - (l[n] = Object.assign({}, s)), - !satus.isObject(s) || - satus.isArray(s) || - satus.isElement(s) || - satus.isFunction(s) || - e(s)); + + window.addEventListener('mouseup', mouseup, { + passive: true, + capture: true + }); + + function siblingMouseOver(event) { + var parent = this.parentNode, + y = event.layerY / (this.offsetHeight / 100); + + if (y < 50 && this.previousSibling !== component || y >= 50 && this.nextSibling === component) { + parent.insertBefore(component, this); + } else { + parent.insertBefore(component, this.nextSibling); } - 0 == --i && o(l); - })(e); - }); + } + + for (var i = 0, l = children.length; i < l; i++) { + var child = children[i]; + + if (child !== component) { + child.addEventListener('mouseover', siblingMouseOver); + } + } + + event.stopPropagation(); + event.preventDefault(); + + return false; + }); + } +}); +/*-------------------------------------------------------------- +>>> MANIFEST +--------------------------------------------------------------*/ + +satus.manifest = function() { + var object = {}; + + if (this.isset('chrome.runtime.getManifest')) { + object = chrome.runtime.getManifest(); + } + + return object; +}; +/*-------------------------------------------------------------- +>>> COLOR: +---------------------------------------------------------------- +# String to array +# RGB to HSL +# HUE to RGB +# HSL to RGB +--------------------------------------------------------------*/ + +satus.color = {}; + + +/*-------------------------------------------------------------- +# STRING TO ARRAY +--------------------------------------------------------------*/ + +satus.color.stringToArray = function(string) { + var match = string.match(/[0-9.]+/g); + + if (match) { + for (var i = 0, l = match.length; i < l; i++) { + match[i] = parseFloat(match[i]); + } + } + + return match; +}; + + +/*-------------------------------------------------------------- +# RGB TO HSL +--------------------------------------------------------------*/ + +satus.color.rgbToHsl = function(array) { + var r = array[0] / 255, + g = array[1] / 255, + b = array[2] / 255, + min = Math.min(r, g, b), + max = Math.max(r, g, b), + h = 0, + s = 0, + l = (min + max) / 2; + + if (min === max) { + h = 0; + s = 0; + } else { + var delta = max - min; + + s = l <= 0.5 ? delta / (max + min) : delta / (2 - max - min); + + if (max === r) { + h = (g - b) / delta + (g < b ? 6 : 0); + } else if (max === g) { + h = (b - r) / delta + 2; + } else if (max === b) { + h = (r - g) / delta + 4; + } + + h /= 6; + } + + h *= 360; + s *= 100; + l *= 100; + + if (array.length === 3) { + return [h, s, l]; + } else { + return [h, s, l, array[3]]; + } +}; + + +/*-------------------------------------------------------------- +# HUE TO RGB +--------------------------------------------------------------*/ + +satus.color.hueToRgb = function(array) { + var t1 = array[0], + t2 = array[1], + hue = array[2]; + + if (hue < 0) { + hue += 6; + } + + if (hue >= 6) { + hue -= 6; + } + + if (hue < 1) { + return (t2 - t1) * hue + t1; + } else if (hue < 3) { + return t2; + } else if (hue < 4) { + return (t2 - t1) * (4 - hue) + t1; + } else { + return t1; + } +}; + + +/*-------------------------------------------------------------- +# HSL TO RGB +--------------------------------------------------------------*/ + +satus.color.hslToRgb = function(array) { + var h = array[0] / 360, + s = array[1] / 100, + l = array[2] / 100, + r, g, b; + + if (s == 0) { + r = g = b = l; + } else { + var hue2rgb = function(p, q, t) { + if (t < 0) t += 1; + if (t > 1) t -= 1; + if (t < 1 / 6) return p + (q - p) * 6 * t; + if (t < 1 / 2) return q; + if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; + return p; + }; + + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hue2rgb(p, q, h + 1 / 3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1 / 3); + } + + return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)]; +}; +/*-------------------------------------------------------------- +>>> USER +---------------------------------------------------------------- +# OS + # Name + # Bitness +# Browser + # Name + # Version + # Platform + # Manifest + # Languages + # Cookies + # Flash + # Java + # Audio + # Video + # WebGL +# Device + # Screen + # RAM + # GPU + # Cores + # Touch + # Connection +--------------------------------------------------------------*/ + +satus.user = { + browser: {}, + device: {}, + os: {} +}; + +/*-------------------------------------------------------------- +# OS +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# NAME +--------------------------------------------------------------*/ + +satus.user.os.name = function() { + var app_version = navigator.appVersion; + + if (app_version.indexOf('Win') !== -1) { + if (app_version.match(/(Windows 10.0|Windows NT 10.0)/)) { + return 'Windows 10'; + } else if (app_version.match(/(Windows 8.1|Windows NT 6.3)/)) { + return 'Windows 8.1'; + } else if (app_version.match(/(Windows 8|Windows NT 6.2)/)) { + return 'Windows 8'; + } else if (app_version.match(/(Windows 7|Windows NT 6.1)/)) { + return 'Windows 7'; + } else if (app_version.match(/(Windows NT 6.0)/)) { + return 'Windows Vista'; + } else if (app_version.match(/(Windows NT 5.1|Windows XP)/)) { + return 'Windows XP'; + } else { + return 'Windows'; + } + } else if (app_version.indexOf('(iPhone|iPad|iPod)') !== -1) { + return 'iOS'; + } else if (app_version.indexOf('Mac') !== -1) { + return 'macOS'; + } else if (app_version.indexOf('Android') !== -1) { + return 'Android'; + } else if (app_version.indexOf('OpenBSD') !== -1) { + return 'OpenBSD'; + } else if (app_version.indexOf('SunOS') !== -1) { + return 'SunOS'; + } else if (app_version.indexOf('Linux') !== -1) { + return 'Linux'; + } else if (app_version.indexOf('X11') !== -1) { + return 'UNIX'; + } +}; + + +/*-------------------------------------------------------------- +# BITNESS +--------------------------------------------------------------*/ + +satus.user.os.bitness = function() { + if (navigator.appVersion.match(/(Win64|x64|x86_64|WOW64)/)) { + return '64-bit'; + } else { + return '32-bit'; + } +}; + + +/*-------------------------------------------------------------- +# BROWSER +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# NAME +--------------------------------------------------------------*/ + +satus.user.browser.name = function() { + var user_agent = navigator.userAgent; + + if (user_agent.indexOf('Opera') !== -1) { + return 'Opera'; + } else if (user_agent.indexOf('Vivaldi') !== -1) { + return 'Vivaldi'; + } else if (user_agent.indexOf('Edge') !== -1) { + return 'Edge'; + } else if (user_agent.indexOf('Chrome') !== -1) { + return 'Chrome'; + } else if (user_agent.indexOf('Safari') !== -1) { + return 'Safari'; + } else if (user_agent.indexOf('Firefox') !== -1) { + return 'Firefox'; + } else if (user_agent.indexOf('MSIE') !== -1) { + return 'IE'; + } +}; + + +/*-------------------------------------------------------------- +# VERSION +--------------------------------------------------------------*/ + +satus.user.browser.version = function() { + var browser_name = satus.user.browser.name(), + browser_version = navigator.userAgent.match(new RegExp(browser_name + '/([0-9.]+)')); + + return browser_version[1]; +}; + + +/*-------------------------------------------------------------- +# PLATFORM +--------------------------------------------------------------*/ + +satus.user.browser.platform = function() { + return navigator.platform; +}; + + +/*-------------------------------------------------------------- +# MANIFEST +--------------------------------------------------------------*/ + +satus.user.browser.manifest = function() { + return chrome.runtime.getManifest() || {}; +}; + + +/*-------------------------------------------------------------- +# LANGUAGES +--------------------------------------------------------------*/ + +satus.user.browser.languages = function() { + return navigator.languages; +}; + + +/*-------------------------------------------------------------- +# COOKIES +--------------------------------------------------------------*/ + +satus.user.browser.cookies = function() { + if (document.cookie) { + var random_cookie = 'ta{t`nX6cMXK,Wsc'; + + document.cookie = random_cookie; + + if (document.cookie.indexOf(random_cookie) !== -1) { + return true; + } + } + + return false; +}; + + +/*-------------------------------------------------------------- +# FLASH +--------------------------------------------------------------*/ + +satus.user.browser.flash = function() { + try { + if (new ActiveXObject('ShockwaveFlash.ShockwaveFlash')) { + return true; + } + } catch (error) { + if (navigator.mimeTypes['application/x-shockwave-flash']) { + return true; + } + } + + return false; +}; + + +/*-------------------------------------------------------------- +# JAVA +--------------------------------------------------------------*/ + +satus.user.browser.java = function() { + if (satus.isFunction(navigator.javaEnabled) && navigator.javaEnabled()) { + return true; + } else { + return false; + } +}; + + +/*-------------------------------------------------------------- +# AUDIO +--------------------------------------------------------------*/ + +satus.user.browser.audio = function() { + var audio = document.createElement('audio'), + types = { + mp3: 'audio/mpeg', + mp4: 'audio/mp4', + aif: 'audio/x-aiff' + }, + result = []; + + if (satus.isFunction(audio.canPlayType)) { + for (var key in types) { + var can_play_type = audio.canPlayType(types[key]); + + if (can_play_type !== '') { + result.push(key); + } + } + } + + return result; +}; + + +/*-------------------------------------------------------------- +# VIDEO +--------------------------------------------------------------*/ + +satus.user.browser.video = function() { + var video = document.createElement('video'), + types = { + ogg: 'video/ogg; codecs="theora"', + h264: 'video/mp4; codecs="avc1.42E01E"', + webm: 'video/webm; codecs="vp8, vorbis"', + vp9: 'video/webm; codecs="vp9"', + hls: 'application/x-mpegURL; codecs="avc1.42E01E"' + }, + result = []; + + if (satus.isFunction(video.canPlayType)) { + for (var key in types) { + var can_play_type = video.canPlayType(types[key]); + + if (can_play_type !== '') { + result.push(key); + } + } + } + + return result; +}; + + +/*-------------------------------------------------------------- +# WEBGL +--------------------------------------------------------------*/ + +satus.user.browser.webgl = function() { + var cvs = document.createElement('canvas'), + ctx = cvs.getContext('webgl'); + + return ctx && ctx instanceof WebGLRenderingContext; +}; + + +/*-------------------------------------------------------------- +# HARDWARE +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# SCREEN +--------------------------------------------------------------*/ + +satus.user.device.screen = function() { + if (screen) { + return screen.width + 'x' + screen.height; + } +}; + + +/*-------------------------------------------------------------- +# RAM +--------------------------------------------------------------*/ + +satus.user.device.ram = function() { + if ('deviceMemory' in navigator) { + return navigator.deviceMemory + ' GB'; + } +}; + + +/*-------------------------------------------------------------- +# GPU +--------------------------------------------------------------*/ + +satus.user.device.gpu = function() { + var cvs = document.createElement('canvas'), + ctx = cvs.getContext('webgl'); + + if ( + ctx && + ctx instanceof WebGLRenderingContext && + 'getParameter' in ctx && + 'getExtension' in ctx + ) { + var info = ctx.getExtension('WEBGL_debug_renderer_info'); + + if (info) { + return ctx.getParameter(info.UNMASKED_RENDERER_WEBGL); + } + } +}; + + +/*-------------------------------------------------------------- +# CORES +--------------------------------------------------------------*/ + +satus.user.device.cores = function() { + return navigator.deviceConcurrency; +}; + + +/*-------------------------------------------------------------- +# TOUCH +--------------------------------------------------------------*/ + +satus.user.device.touch = function() { + var result = {}; + + if ( + window.hasOwnProperty('ontouchstart') || + window.DocumentTouch && document instanceof window.DocumentTouch || + navigator.maxTouchPoints > 0 || + window.navigator.msMaxTouchPoints > 0 + ) { + result.touch = true; + result.maxTouchPoints = navigator.maxTouchPoints; + } + + return result; +}; + + +/*-------------------------------------------------------------- +# CONNECTION +--------------------------------------------------------------*/ + +satus.user.device.connection = function() { + var result = {}; + + if (typeof navigator.connection === 'object') { + result.type = navigator.connection.effectiveType || null; + + if (navigator.connection.downlink) { + result.speed = navigator.connection.downlink + ' Mbps'; + } + } + + return result; +}; +/*-------------------------------------------------------------- +# SEARCH +--------------------------------------------------------------*/ + +satus.search = function(query, object, callback) { + var elements = ['switch', 'select', 'slider', 'shortcut', 'radio', 'color-picker'], + threads = 0, + results = {}, + excluded = [ + 'baseProvider', + 'layersProvider', + 'parentObject', + 'parentSkeleton', + 'namespaceURI' + ]; + + query = query.toLowerCase(); + + function parse(items, parent) { + threads++; + + for (var key in items) { + if (excluded.indexOf(key) === -1) { + var item = items[key]; + + if (item.component) { + //console.log(key, item.component); + + if (elements.indexOf(item.component) !== -1 && key.indexOf(query) !== -1) { + results[key] = Object.assign({}, item); + } + } + + if ( + satus.isObject(item) && + !satus.isArray(item) && + !satus.isElement(item) && + !satus.isFunction(item) + ) { + parse(item, items); + } + } + } + + threads--; + + if (threads === 0) { + callback(results); + } + } + + parse(object); +}; diff --git a/content-scripts/extension-context/youtube-features/content-styles.css b/content-scripts/extension-context/youtube-features/content-styles.css index 5f914f2c6..e949183ce 100644 --- a/content-scripts/extension-context/youtube-features/content-styles.css +++ b/content-scripts/extension-context/youtube-features/content-styles.css @@ -275,7 +275,7 @@ html[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=s --yt-swatch-logo-override: rgb(255, 255, 255) !important; --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; --yt-swatch-header-primary: #734; - --yt-spec-base-background: #734 !important; + --yt-spec-base-background: #d38255 !important; --yt-spec-raised-background: #734 !important; --yt-spec-menu-background: #734 !important; --yt-spec-inverted-background: #fff; @@ -320,7 +320,7 @@ html[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=s [it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, [data-system-color-scheme=dark][it-theme=dawn][it-schedule=system_peference_dark] ytd-masthead, [data-system-color-scheme=light][it-theme=dawn][it-schedule=system_peference_light] ytd-masthead { - background: #734 !important; + background: #b85282 !important; --yt-swatch-primary: rgb(35, 35, 35) !important; --yt-swatch-primary-darker: rgb(32, 32, 32) !important; --yt-swatch-text: rgb(255, 255, 255) !important; @@ -945,7 +945,7 @@ html[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=s --yt-swatch-logo-override: #666 !important; --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; --yt-swatch-header-primary: #d6d1b1; - --yt-spec-base-background: #c7efcf !important; + --yt-spec-base-background: #d3e1c6 !important; --yt-spec-raised-background: #c7efcf !important; --yt-spec-menu-background: #c7efcf !important; --yt-spec-inverted-background: #fff; @@ -990,7 +990,7 @@ html[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=s [it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, [data-system-color-scheme=dark][it-theme=plain][it-schedule=system_peference_dark] ytd-masthead, [data-system-color-scheme=light][it-theme=plain][it-schedule=system_peference_light] ytd-masthead { - background: #d6d1b1 !important; + background: #e4ccaa !important; --yt-swatch-primary: rgb(35, 35, 35) !important; --yt-swatch-primary-darker: rgb(32, 32, 32) !important; --yt-swatch-text: #666 !important; @@ -1149,7 +1149,6 @@ html[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=s --yt-blue-suggestive: transparent; } - /*SUNSET*/ [it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), @@ -1164,11 +1163,11 @@ html[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=s --yt-swatch-logo-override: rgb(255, 255, 255) !important; --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; --yt-swatch-header-primary: #f56264; - --yt-spec-base-background: #2f3364 !important; - --yt-spec-raised-background: #2f3364 !important; - --yt-spec-menu-background: #2f3364 !important; + --yt-spec-base-background: #24367f !important; + --yt-spec-raised-background: #3a4375 !important; + --yt-spec-menu-background: #2f335 !important; --yt-spec-inverted-background: #fff; - --yt-spec-brand-background-solid: #2f3364 !important; + --yt-spec-brand-background-solid: #1a2750 !important; --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; --yt-spec-general-background-a: #2f3364 !important; @@ -1209,7 +1208,7 @@ html[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=s [it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, [data-system-color-scheme=dark][it-theme=sunset][it-schedule=system_peference_dark] ytd-masthead, [data-system-color-scheme=light][it-theme=sunset][it-schedule=system_peference_light] ytd-masthead { - background: #f56264 !important; + background: #d35406 !important; --yt-swatch-primary: rgb(35, 35, 35) !important; --yt-swatch-primary-darker: rgb(32, 32, 32) !important; --yt-swatch-text: rgb(255, 255, 255) !important; diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index 8eebcd8fe..3bdffb23f 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -153,14 +153,12 @@ ImprovedTube.playerRemainingDuration = function () { 4.2.1.6 Comments position to sidebar ------------------------------------------------------------------------------*/ ImprovedTube.commentsSidebarPosition=()=>{ if(ImprovedTube.storage.comments_sidebar_position){ - document.querySelector("#columns").appendChild(document.querySelector("#comments"),function() { - }) - document.querySelector("#primary-inner").appendChild(document.querySelector("#secondary"),function() { - // console.log("secondary and its children have been appended to primary-inner") - }) + document.querySelector("#columns").appendChild(document.querySelector("#comments")); + document.querySelector("#primary-inner").appendChild(document.querySelector("#secondary")); + // console.log("secondary and its children have been appended to primary-inner") }else{ - document.querySelector("#columns").appendChild(document.querySelector("#secondary")) - document.querySelector("#below").appendChild(document.querySelector("#comments")) + document.querySelector("#columns").appendChild(document.querySelector("#secondary")); + document.querySelector("#below").appendChild(document.querySelector("#comments")); } } /*------------------------------------------------------------------------------ diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/content-scripts/website-context/youtube-features/shortcuts.js index 87e2cc4eb..525e81283 100644 --- a/content-scripts/website-context/youtube-features/shortcuts.js +++ b/content-scripts/website-context/youtube-features/shortcuts.js @@ -133,10 +133,15 @@ ImprovedTube.shortcuts = function () { }); document.addEventListener('improvedtube-player-loaded', function () { - ImprovedTube.elements.player.parentNode.addEventListener('mouseover', function () { + try{ImprovedTube.elements.player.parentNode.addEventListener('mouseover', function () { mouse.player = true; mouse.wheel = 0; - }, true); + }, true);} catch(err){console.log(err);} + finally { setTimeout( ImprovedTube.elements.player.parentNode.addEventListener('mouseover', function () { + mouse.player = true; + mouse.wheel = 0; + }, true), 300); + } ImprovedTube.elements.player.parentNode.addEventListener('mouseout', function () { mouse.player = false; diff --git a/content-scripts/website-context/youtube-features/themes.js b/content-scripts/website-context/youtube-features/themes.js index c40ef874b..1bbb2e0a8 100644 --- a/content-scripts/website-context/youtube-features/themes.js +++ b/content-scripts/website-context/youtube-features/themes.js @@ -97,8 +97,8 @@ ImprovedTube.themes = function () { cookieValue = '80000'; document.documentElement.removeAttribute('dark'); document.querySelector('ytd-masthead').removeAttribute('dark'); document.getElementById("cinematics").style.visibility = 'hidden'; - document.getElementById("cinematics").style.display = 'none !important'; - document.querySelector('ytd-masthead').style.backgroundColor ='#fffff7' ;} + document.getElementById("cinematics").style.display = 'none !important';} + document.querySelector('ytd-masthead').style.backgroundColor ='#fffff7' ; } else if (this.storage.theme === 'dark'){ c = '400'; document.documentElement.setAttribute('dark', ''); document.querySelector('ytd-masthead').setAttribute('dark', '') From 59daeaa93c33d7798e2f3a71eef9711732453e72 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 17 Mar 2023 04:52:05 +0100 Subject: [PATCH 0843/1224] quick debug --- assets/satus/satus.js | 4 ++-- content-scripts/extension-context/init.js | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/assets/satus/satus.js b/assets/satus/satus.js index c76dfd206..17e608dcd 100644 --- a/assets/satus/satus.js +++ b/assets/satus/satus.js @@ -353,7 +353,7 @@ satus.events.trigger = function(type, data) { if (handlers) { for (var i = 0, l = handlers.length; i < l; i++) { - handlers[i](data); + try {handlers[i](data);} catch(err){console.log(err);} finally{setTimeout(handlers[i](data),300);} } } }; @@ -1020,7 +1020,7 @@ satus.storage.set = function(key, value, callback) { } chrome.storage.local.set(items, function() { - satus.events.trigger('storage-set'); + try {satus.events.trigger('storage-set');} catch(err){console.log(err);} finally{setTimeout(satus.events.trigger('storage-set'),300);} if (callback) { callback(); diff --git a/content-scripts/extension-context/init.js b/content-scripts/extension-context/init.js index 312f0f11c..86bc61cda 100644 --- a/content-scripts/extension-context/init.js +++ b/content-scripts/extension-context/init.js @@ -232,8 +232,7 @@ document.addEventListener('it-message-from-youtube', function () { document.addEventListener('it-play', function (event) { var videos = document.querySelectorAll('video'); - - chrome.runtime.sendMessage({ - action: 'play' - }); -}); \ No newline at end of file + try {chrome.runtime.sendMessage({action: 'play'})} + catch(error){console.log(error); setTimeout(chrome.runtime.sendMessage({action: 'play'}),280)} + }); + \ No newline at end of file From 1ba3c07cc2756fa558f5fb9417309679c8b4042d Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 17 Mar 2023 04:58:14 +0100 Subject: [PATCH 0844/1224] version --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 5564bc39d..a4c74efd0 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!'🎧(for YouTube & Videos)", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "4.1", + "version": "4.2", "default_locale": "en", "icons": { From af603dc40ed4ff026196026b4c253697733c3f5a Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 17 Mar 2023 05:06:28 +0100 Subject: [PATCH 0845/1224] Update README.md --- .github/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/README.md b/.github/README.md index c670765bb..a3abce130 100644 --- a/.github/README.md +++ b/.github/README.md @@ -14,23 +14,23 @@

Chrome Web Store4.14.2
Microsoft Edge Addons4.14.2
Firefox Add-ons4.14.2
Opera Add-ons4.14.2
Whale Store4.14.2
or install manually : latest

Contributing

From 33f1c7faa6fcc37bec4a8280890d5bc79f56e0e0 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 17 Mar 2023 13:00:52 +0100 Subject: [PATCH 0846/1224] we dont have enough options ;) --- .../youtube-features/appearance/details/details.css | 10 +++++----- .../youtube-features/content-styles.css | 2 +- options-page/skeleton-parts/appearance.js | 8 ++++++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/content-scripts/extension-context/youtube-features/appearance/details/details.css index c4b0995e3..c42af1014 100644 --- a/content-scripts/extension-context/youtube-features/appearance/details/details.css +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.css @@ -56,12 +56,12 @@ YouTube's detail buttons --------------------------------------------------------------*/ html[it-youtubesDetailButtons='remove_labels'] #menu ytd-button-renderer div:nth-child(2), -html[it-youtubesDetailButtons='remove_labels'] #menu ytd-button-renderer .cbox -{display:none;} -html[it-youtubesDetailButtons='hide_labels'] #menu ytd-button-renderer div:nth-child(2) {visibility:hidden} -html[it-youtubesDetailButtons='faint_transparent'] #menu button {opacity:0.5;} -html[it-youtubesDetailButtons='remove'] #menu button {display:none;} +html[it-youtubesDetailButtons='remove_labels'] #menu ytd-button-renderer .cbox, +html[it-youtubesDetailButtons='remove'] #menu button, html[it-youtubesDetailButtons='remove_icons'] #menu button div:first-child {display:none;} +html[it-youtubesDetailButtons='hide_labels'] #menu ytd-button-renderer div:nth-child(2) {visibility:hidden} +html[it-youtubesDetailButtons='half_transparent'] #menu button {opacity:0.5;} +html[it-youtubesDetailButtons='transparent_background'] #menu button {background-color:rgba(0, 0, 0, 0) !important;} /*-------------------------------------------------------------- HIDE LIKE BUTTON diff --git a/content-scripts/extension-context/youtube-features/content-styles.css b/content-scripts/extension-context/youtube-features/content-styles.css index e949183ce..81eb15e04 100644 --- a/content-scripts/extension-context/youtube-features/content-styles.css +++ b/content-scripts/extension-context/youtube-features/content-styles.css @@ -275,7 +275,7 @@ html[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=s --yt-swatch-logo-override: rgb(255, 255, 255) !important; --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; --yt-swatch-header-primary: #734; - --yt-spec-base-background: #d38255 !important; + --yt-spec-base-background: #d58245 !important; --yt-spec-raised-background: #734 !important; --yt-spec-menu-background: #734 !important; --yt-spec-inverted-background: #fff; diff --git a/options-page/skeleton-parts/appearance.js b/options-page/skeleton-parts/appearance.js index aa2faf110..1030eae1d 100644 --- a/options-page/skeleton-parts/appearance.js +++ b/options-page/skeleton-parts/appearance.js @@ -489,13 +489,17 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { value: "remove_labels", }, { - text: "Faint/transparent", - value: "faint_transparent", + text: "Faint/half-transparent", + value: "half_transparent", }, { text: "Remove", value: "remove", }, + { + text: "Transparent background", + value: "transparent_background", + }, { text: "Hide names", value: "hide_labels", From e16caa45bbe248da36e517b018e615f5a6ae7bc7 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 18 Mar 2023 12:36:24 +0100 Subject: [PATCH 0847/1224] just to support manifest v2 & v3 --- background.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/background.js b/background.js index 51581d0b5..c6751b417 100644 --- a/background.js +++ b/background.js @@ -83,7 +83,7 @@ function updateContextMenu(language) { chrome.contextMenus.create({ id: String(i), title: text, - contexts: ['action'] + contexts: ['action','browser_action'] }); } From 72e64de3e6f382736ad790b9399481b870ee79bc Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 18 Mar 2023 15:11:45 +0100 Subject: [PATCH 0848/1224] fix #1621 --- .../youtube-features/appearance/header/header.css | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/header/header.css b/content-scripts/extension-context/youtube-features/appearance/header/header.css index 892b4bec1..82325d48f 100644 --- a/content-scripts/extension-context/youtube-features/appearance/header/header.css +++ b/content-scripts/extension-context/youtube-features/appearance/header/header.css @@ -11,8 +11,10 @@ /*-------------------------------------------------------------- # POSITION --------------------------------------------------------------*/ -/*html[it-header-position=hidden] #masthead-container, - html[it-header-position=hidden_on_video_page][data-page-type=video] #masthead-container, */ +html[it-header-position=hidden_on_video_page][data-page-type=video] #masthead-container, +html[it-header-position=hidden]:not([it-search-focus=true]) #masthead-container { + transform: translateY(-100%); +} html[it-header-position=hidden] tp-yt-app-drawer#guide #guide-spacer, html[it-header-position=hidden] tp-yt-app-drawer:not([opened]) #header ytd-topbar-logo-renderer, html[it-header-position=hidden] tp-yt-app-drawer:not([opened]) #header .it-button, @@ -66,10 +68,6 @@ html[it-header-position=hover_on_video_page][data-page-type='video'][it-search-f opacity: 1; } -html[it-header-position=hidden]:not([it-search-focus=true]) #masthead-container { - transform: translateY(-100%); -} - html[it-header-position=static] .ytd-app:not([masthead-hidden_]) #masthead-container { position: relative; z-index: 999999999999 !important; From bf5916c9763bf0ffd72fdcada17c367b8c9c7086 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 19 Mar 2023 02:35:21 +0100 Subject: [PATCH 0849/1224] little fixes --- assets/satus/satus.js | 6 +- content-scripts/extension-context/init.js | 5 +- .../youtube-features/content-styles.css | 32 +- .../youtube-features/general/general.css | 11 - content-scripts/website-context/core.js | 20 +- content-scripts/website-context/init.js | 5 +- .../youtube-features/appearance.js | 6 +- .../youtube-features/settings.js | 280 +++++++++--------- .../youtube-features/shortcuts.js | 16 +- .../youtube-features/themes.js | 85 ++---- 10 files changed, 215 insertions(+), 251 deletions(-) diff --git a/assets/satus/satus.js b/assets/satus/satus.js index 17e608dcd..165670eb6 100644 --- a/assets/satus/satus.js +++ b/assets/satus/satus.js @@ -353,7 +353,8 @@ satus.events.trigger = function(type, data) { if (handlers) { for (var i = 0, l = handlers.length; i < l; i++) { - try {handlers[i](data);} catch(err){console.log(err);} finally{setTimeout(handlers[i](data),300);} + try {handlers[i](data);} + catch(err){console.log(err);} } } }; @@ -1020,7 +1021,8 @@ satus.storage.set = function(key, value, callback) { } chrome.storage.local.set(items, function() { - try {satus.events.trigger('storage-set');} catch(err){console.log(err);} finally{setTimeout(satus.events.trigger('storage-set'),300);} + try {satus.events.trigger('storage-set');} + catch(err){console.log(err);} if (callback) { callback(); diff --git a/content-scripts/extension-context/init.js b/content-scripts/extension-context/init.js index 86bc61cda..4d6c70206 100644 --- a/content-scripts/extension-context/init.js +++ b/content-scripts/extension-context/init.js @@ -233,6 +233,5 @@ document.addEventListener('it-message-from-youtube', function () { document.addEventListener('it-play', function (event) { var videos = document.querySelectorAll('video'); try {chrome.runtime.sendMessage({action: 'play'})} - catch(error){console.log(error); setTimeout(chrome.runtime.sendMessage({action: 'play'}),280)} - }); - \ No newline at end of file + catch(error){console.log(error); chrome.runtime.sendMessage({action: 'play'}, function (response) { } ); } + }); \ No newline at end of file diff --git a/content-scripts/extension-context/youtube-features/content-styles.css b/content-scripts/extension-context/youtube-features/content-styles.css index 81eb15e04..e8806098e 100644 --- a/content-scripts/extension-context/youtube-features/content-styles.css +++ b/content-scripts/extension-context/youtube-features/content-styles.css @@ -24,15 +24,12 @@ 9.0 Blacklist ------------------------------------------------------------------------------*/ -/*------------------------------------------------------------------------------ -3.0 THEMES -------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------ 3.3 THEMES ------------------------------------------------------------------------------*/ -/*update*/ -[it-theme=block] #cinematics, + +/*update: cinematics */ +[it-theme=black] #cinematics, [it-theme=desert] #cinematics {display:none !important} [it-theme=dawn] #cinematics, [it-theme=sunset] #cinematics, @@ -262,7 +259,7 @@ html[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=s /*DAWN*/ - + [it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), [data-system-color-scheme=dark][it-theme=dawn][it-schedule=system_peference_dark], [data-system-color-scheme=light][it-theme=dawn][it-schedule=system_peference_light] { @@ -274,8 +271,8 @@ html[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=s --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; --yt-swatch-logo-override: rgb(255, 255, 255) !important; --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; - --yt-swatch-header-primary: #734; - --yt-spec-base-background: #d58245 !important; + --yt-swatch-header-primary: #a46; + --yt-spec-base-background: #734 !important; --yt-spec-raised-background: #734 !important; --yt-spec-menu-background: #734 !important; --yt-spec-inverted-background: #fff; @@ -320,7 +317,7 @@ html[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=s [it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, [data-system-color-scheme=dark][it-theme=dawn][it-schedule=system_peference_dark] ytd-masthead, [data-system-color-scheme=light][it-theme=dawn][it-schedule=system_peference_light] ytd-masthead { - background: #b85282 !important; + background: #835 !important; --yt-swatch-primary: rgb(35, 35, 35) !important; --yt-swatch-primary-darker: rgb(32, 32, 32) !important; --yt-swatch-text: rgb(255, 255, 255) !important; @@ -487,7 +484,7 @@ html[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=sy } -/*DESERT*/ +/*DESERT*/ [it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), [data-system-color-scheme=dark][it-theme=desert][it-schedule=system_peference_dark], @@ -1149,8 +1146,9 @@ html[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=s --yt-blue-suggestive: transparent; } -/*SUNSET*/ +/*SUNSET*/ + [it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), [data-system-color-scheme=dark][it-theme=sunset][it-schedule=system_peference_dark], [data-system-color-scheme=light][it-theme=sunset][it-schedule=system_peference_light] { @@ -1163,11 +1161,11 @@ html[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=s --yt-swatch-logo-override: rgb(255, 255, 255) !important; --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; --yt-swatch-header-primary: #f56264; - --yt-spec-base-background: #24367f !important; - --yt-spec-raised-background: #3a4375 !important; - --yt-spec-menu-background: #2f335 !important; + --yt-spec-base-background: #283567 !important; + --yt-spec-raised-background: #2f3364 !important; + --yt-spec-menu-background: #2f3364 !important; --yt-spec-inverted-background: #fff; - --yt-spec-brand-background-solid: #1a2750 !important; + --yt-spec-brand-background-solid: #2f3364 !important; --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; --yt-spec-general-background-a: #2f3364 !important; @@ -1208,7 +1206,7 @@ html[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=s [it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, [data-system-color-scheme=dark][it-theme=sunset][it-schedule=system_peference_dark] ytd-masthead, [data-system-color-scheme=light][it-theme=sunset][it-schedule=system_peference_light] ytd-masthead { - background: #d35406 !important; + background: #f56258 !important; --yt-swatch-primary: rgb(35, 35, 35) !important; --yt-swatch-primary-darker: rgb(32, 32, 32) !important; --yt-swatch-text: rgb(255, 255, 255) !important; diff --git a/content-scripts/extension-context/youtube-features/general/general.css b/content-scripts/extension-context/youtube-features/general/general.css index 67117cf4f..295fabc4d 100644 --- a/content-scripts/extension-context/youtube-features/general/general.css +++ b/content-scripts/extension-context/youtube-features/general/general.css @@ -220,17 +220,6 @@ html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([full height: 100% !important; justify-content: center !important} -/*-------------------------------------------------------------- -# SQUARED USER IMAGES ---------------------------------------------------------------*/ - -html[it-squared-user-images='true'] #avatar.ytd-shelf-renderer, -html[it-squared-user-images='true'] yt-img-shadow, -html[it-squared-user-images='true'] #yt-masthead-user .yt-masthead-user-icon { - border-radius: unset !important; -} - - /*-------------------------------------------------------------- # Popup Window Button --------------------------------------------------------------*/ diff --git a/content-scripts/website-context/core.js b/content-scripts/website-context/core.js index 4a5e8925b..77ff37bd5 100644 --- a/content-scripts/website-context/core.js +++ b/content-scripts/website-context/core.js @@ -127,16 +127,20 @@ document.addEventListener('it-message-from-extension', function () { ImprovedTube.storage[message.key] = message.value; if(ImprovedTube.storage[message.key]==="when_paused"){ - ImprovedTube.whenPaused(); + ImprovedTube.whenPaused(); }; if (camelized_key === 'blacklistActivate') { camelized_key = 'blacklist'; } else if (camelized_key === 'playerForcedPlaybackSpeed') { camelized_key = 'playerPlaybackSpeed'; } else if (camelized_key === 'theme') { - ImprovedTube.themes(); + ImprovedTube.myColors(); + ImprovedTube.setTheme(); + } + else if (camelized_key === 'description') { + if (ImprovedTube.storage.description === "normal") + {document.querySelector("#less").click() || document.querySelector("#collapse").click() ;} } - if (ImprovedTube[camelized_key]) { ImprovedTube[camelized_key](); } @@ -153,7 +157,7 @@ document.addEventListener('it-message-from-extension', function () { } else if (message.pause === true) { if (ImprovedTube.elements.player) { ImprovedTube.played_before_blur = ImprovedTube.elements.player.getPlayerState() === 1; - ImprovedTube.elements.player.pauseVideo(); + ImprovedTube.elements.player.pauseVideo(); } } else if (message.hasOwnProperty('setVolume')) { if (ImprovedTube.elements.player) { @@ -171,17 +175,17 @@ document.addEventListener('it-message-from-extension', function () { if (iframe) { iframe.src = message.responseOptionsUrl; } - } else if (message.hasOwnProperty('mixer')) { + } /* else if (message.hasOwnProperty('mixer')) { if (ImprovedTube.elements.player) { - /*document.documentElement.setAttribute('it-response', JSON.stringify({ + document.documentElement.setAttribute('it-response', JSON.stringify({ mixer: true, url: location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3), volume: ImprovedTube.elements.player.getVolume(), playbackRate: ImprovedTube.elements.player.getPlaybackRate(), title: document.title - }));*/ + })); } - } + } */ } }); diff --git a/content-scripts/website-context/init.js b/content-scripts/website-context/init.js index 51f7c5d06..1bcc9131f 100644 --- a/content-scripts/website-context/init.js +++ b/content-scripts/website-context/init.js @@ -64,7 +64,7 @@ ImprovedTube.init = function () { if (window.matchMedia) { document.documentElement.dataset.systemColorScheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; - } ImprovedTube.themes(); + } ImprovedTube.myColors(); }; document.addEventListener('yt-navigate-finish', function () { @@ -101,6 +101,7 @@ window.addEventListener('load', function () { ImprovedTube.improvedtubeYoutubeIcon(); }); + ImprovedTube.whenPaused=()=>{ ImprovedTube.elements.player.parentNode.addEventListener('mouseenter', function () { ImprovedTube.playerControls(true); @@ -122,4 +123,4 @@ ImprovedTube.whenPaused=()=>{ ImprovedTube.elements.player.parentNode.addEventListener('mouseleave', function () { ImprovedTube.playerControls(false); }); -} +} \ No newline at end of file diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index 3bdffb23f..e98fd9999 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -307,11 +307,9 @@ ImprovedTube.channelVideosCount = function () { ImprovedTube.description = function (el) { if (this.storage.description === "classic_expanded" || this.storage.description === "expanded" ) { if(el){el.click();} else {document.querySelector("#more").click() || document.querySelector("#expand").click() ;} - ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer();} - else if (this.storage.description === "normal") {document.querySelector("#less").click() || document.querySelector("#collapse").click() ; - ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer();} + } }; - + /*------------------------------------------------------------------------------ 4.2.3.4 HIDE DETAIL BUTTON ------------------------------------------------------------------------------*/ diff --git a/content-scripts/website-context/youtube-features/settings.js b/content-scripts/website-context/youtube-features/settings.js index 2c1e433dd..04ef4e41f 100644 --- a/content-scripts/website-context/youtube-features/settings.js +++ b/content-scripts/website-context/youtube-features/settings.js @@ -2,12 +2,151 @@ 4.10.0 SETTINGS ------------------------------------------------------------------------------*/ +/*------------------------------------------------------------------------------ +4.10.2 PLAYER BUTTONS +------------------------------------------------------------------------------*/ + +ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { + if (window.self !== window.top) { + return false; + } + + var section = document.querySelector('#flex.ytd-video-primary-info-renderer'); + if (this.storage.description === "normal" || this.storage.description === "expanded") + {var section = document.querySelector('#subscribe-button');} + + if (section && !document.querySelector('.improvedtube-player-button')) { + + + if (this.storage.below_player_loop !== false) { + var button = document.createElement('button'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + button.className = 'improvedtube-player-button'; + button.dataset.tooltip = 'Loop'; + + svg.style.opacity = '.5'; + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z'); + + button.onclick = function () { + var video = ImprovedTube.elements.video, + svg = this.children[0]; + + if (video.hasAttribute('loop')) { + video.removeAttribute('loop'); + + svg.style.opacity = '.5'; + } else if (!/ad-showing/.test(ImprovedTube.elements.player.className)) { + video.setAttribute('loop', ''); + + svg.style.opacity = '1'; + } + }; + + svg.appendChild(path); + button.appendChild(svg); + + section.insertAdjacentElement('afterend', button) + } + if (this.storage.below_player_pip !== false) { + var button = document.createElement('button'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + button.className = 'improvedtube-player-button'; + button.dataset.tooltip = 'Picture in picture'; + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M19 7h-8v6h8V7zm2-4H3C2 3 1 4 1 5v14c0 1 1 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 16H3V5h18v14z'); + + button.onclick = function () { + var video = document.querySelector('#movie_player video'); + + if (video) { + video.requestPictureInPicture(); + } + }; + + svg.appendChild(path); + button.appendChild(svg); + + section.insertAdjacentElement('afterend', button) + } + + if (this.storage.below_player_screenshot !== false) { + var button = document.createElement('button'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + button.className = 'improvedtube-player-button'; + button.dataset.tooltip = 'Screenshot'; + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'); + + button.onclick = ImprovedTube.screenshot; + + svg.appendChild(path); + button.appendChild(svg); + + section.insertAdjacentElement('afterend', button) + } + } +}; + + +/*----------------------------------------------------------------------------- +4.10.3 DELETE YOUTUBE COOKIES +-----------------------------------------------------------------------------*/ + +ImprovedTube.deleteYoutubeCookies = function () { + var cookies = document.cookie.split(';'); + + for (var i = 0, l = cookies.length; i < l; i++) { + var cookie = cookies[i], + eqPos = cookie.indexOf('='), + name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; + + document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; + } + + setTimeout(function () { + location.reload(); + }, 100); +}; + + +/*----------------------------------------------------------------------------- +4.10.4 YOUTUBE LANGUAGE +-----------------------------------------------------------------------------*/ + +ImprovedTube.youtubeLanguage = function () { + var value = this.storage.youtube_language; + + if (this.isset(value)) { + var pref = this.getCookieValueByName('PREF'); + + if (value !== 'default') { + var hl = this.getParam(pref, 'hl'); + + if (hl) { + this.setCookie('PREF', pref.replace('hl=' + hl, 'hl=' + value)); + } else { + this.setCookie('PREF', pref + '&hl=' + value); + } + } + } +}; + /*------------------------------------------------------------------------------ 4.10.1 IMPROVEDTUBE ICON ------------------------------------------------------------------------------*/ ImprovedTube.improvedtubeYoutubeIcon = function () { - var data = localStorage.getItem('improvedtube-button-position'), + var data = try{localStorage.getItem('improvedtube-button-position')}, x = 0, y = 0, option = this.storage.improvedtube_youtube_icon, @@ -149,142 +288,3 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { button.remove(); } }; - -/*------------------------------------------------------------------------------ -4.10.2 PLAYER BUTTONS -------------------------------------------------------------------------------*/ - -ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { - if (window.self !== window.top) { - return false; - } - - var section = document.querySelector('#flex.ytd-video-primary-info-renderer'); - if (this.storage.description === "normal" || this.storage.description === "expanded") - {var section = document.querySelector('#subscribe-button');} - - if (section && !document.querySelector('.improvedtube-player-button')) { - - - if (this.storage.below_player_loop !== false) { - var button = document.createElement('button'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - button.className = 'improvedtube-player-button'; - button.dataset.tooltip = 'Loop'; - - svg.style.opacity = '.5'; - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z'); - - button.onclick = function () { - var video = ImprovedTube.elements.video, - svg = this.children[0]; - - if (video.hasAttribute('loop')) { - video.removeAttribute('loop'); - - svg.style.opacity = '.5'; - } else if (!/ad-showing/.test(ImprovedTube.elements.player.className)) { - video.setAttribute('loop', ''); - - svg.style.opacity = '1'; - } - }; - - svg.appendChild(path); - button.appendChild(svg); - - section.insertAdjacentElement('afterend', button) - } - if (this.storage.below_player_pip !== false) { - var button = document.createElement('button'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - button.className = 'improvedtube-player-button'; - button.dataset.tooltip = 'Picture in picture'; - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M19 7h-8v6h8V7zm2-4H3C2 3 1 4 1 5v14c0 1 1 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 16H3V5h18v14z'); - - button.onclick = function () { - var video = document.querySelector('#movie_player video'); - - if (video) { - video.requestPictureInPicture(); - } - }; - - svg.appendChild(path); - button.appendChild(svg); - - section.insertAdjacentElement('afterend', button) - } - - if (this.storage.below_player_screenshot !== false) { - var button = document.createElement('button'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - button.className = 'improvedtube-player-button'; - button.dataset.tooltip = 'Screenshot'; - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'); - - button.onclick = ImprovedTube.screenshot; - - svg.appendChild(path); - button.appendChild(svg); - - section.insertAdjacentElement('afterend', button) - } - } -}; - - -/*----------------------------------------------------------------------------- -4.10.3 DELETE YOUTUBE COOKIES ------------------------------------------------------------------------------*/ - -ImprovedTube.deleteYoutubeCookies = function () { - var cookies = document.cookie.split(';'); - - for (var i = 0, l = cookies.length; i < l; i++) { - var cookie = cookies[i], - eqPos = cookie.indexOf('='), - name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; - - document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; - } - - setTimeout(function () { - location.reload(); - }, 100); -}; - - -/*----------------------------------------------------------------------------- -4.10.4 YOUTUBE LANGUAGE ------------------------------------------------------------------------------*/ - -ImprovedTube.youtubeLanguage = function () { - var value = this.storage.youtube_language; - - if (this.isset(value)) { - var pref = this.getCookieValueByName('PREF'); - - if (value !== 'default') { - var hl = this.getParam(pref, 'hl'); - - if (hl) { - this.setCookie('PREF', pref.replace('hl=' + hl, 'hl=' + value)); - } else { - this.setCookie('PREF', pref + '&hl=' + value); - } - } - } -}; \ No newline at end of file diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/content-scripts/website-context/youtube-features/shortcuts.js index 525e81283..d8d0c4744 100644 --- a/content-scripts/website-context/youtube-features/shortcuts.js +++ b/content-scripts/website-context/youtube-features/shortcuts.js @@ -136,19 +136,13 @@ ImprovedTube.shortcuts = function () { try{ImprovedTube.elements.player.parentNode.addEventListener('mouseover', function () { mouse.player = true; mouse.wheel = 0; - }, true);} catch(err){console.log(err);} - finally { setTimeout( ImprovedTube.elements.player.parentNode.addEventListener('mouseover', function () { + }, true);} catch(err){console.log(err); setTimeout(function(){ + ImprovedTube.elements.player.parentNode.addEventListener('mouseover', function () { mouse.player = true; mouse.wheel = 0; - }, true), 300); - } - - ImprovedTube.elements.player.parentNode.addEventListener('mouseout', function () { - mouse.player = false; - mouse.wheel = 0; - }, true); - }); - + }, true)}, 200); + } }); + document.addEventListener('improvedtube-blur', function () { keyboard.alt = false; keyboard.ctrl = false; diff --git a/content-scripts/website-context/youtube-features/themes.js b/content-scripts/website-context/youtube-features/themes.js index 1bbb2e0a8..ae4e6da65 100644 --- a/content-scripts/website-context/youtube-features/themes.js +++ b/content-scripts/website-context/youtube-features/themes.js @@ -6,7 +6,7 @@ 4.3.1 MY COLORS ------------------------------------------------------------------------------*/ -ImprovedTube.themes = function () { +ImprovedTube.myColors = function () { if ( this.storage.theme === 'custom' && Array.isArray(this.storage.theme_primary_color) && @@ -73,72 +73,51 @@ ImprovedTube.themes = function () { '--yt-spec-menu-background:' + primary_color + '!important;' + 'ytd-masthead { background-color:' + primary_color + '!important;}' + '--yt-spec-inverted-background: #fff;' + - '}'; + - '#cinematics { visibility: hidden !important;}' + - '#cinematics { display: none !important;}' + '}'; + this.elements.my_colors = style; document.documentElement.appendChild(style); - if (document.documentElement.hasAttribute('dark') !== null && document.documentElement.hasAttribute('dark')) { - cookieValue = '80000'; document.documentElement.removeAttribute('dark'); - document.querySelector('ytd-masthead').removeAttribute('dark'); - document.getElementById("cinematics").style.visibility = 'hidden'; - document.getElementById("cinematics").style.display = 'none !important';} - document.querySelector('ytd-masthead').style.backgroundColor = ''+primary_color+''; + (document.documentElement.hasAttribute('dark') !== null && document.documentElement.hasAttribute('dark') ) + {document.documentElement.removeAttribute('dark');} + if(document.getElementById("cinematics") !== null) + {document.getElementById("cinematics").style.visibility = 'hidden'; + document.getElementById("cinematics").style.display = 'none !important';} + if(document.querySelector('ytd-masthead') !== null) + {document.querySelector('ytd-masthead').style.backgroundColor = ''+primary_color+''; } + } else if (this.elements.my_colors) { - this.elements.my_colors.remove(); - if (this.storage.theme) { + this.elements.my_colors.remove();} + +}; + +ImprovedTube.setTheme = function () { if (this.storage.theme === 'default'){ if (document.documentElement.hasAttribute('it-themes') !== null && document.documentElement.hasAttribute('it-themes') === true){ document.documentElement.removeAttribute('it-themes'); document.documentElement.setAttribute('it-themes', 'false'); } - if( ( document.documentElement.hasAttribute('dark') !== null && document.documentElement.hasAttribute('dark') ) || ( document.querySelector('ytd-masthead').hasAttribute('dark') !== null && document.querySelector('ytd-masthead').hasAttribute('dark')) - ){ - cookieValue = '80000'; document.documentElement.removeAttribute('dark'); - document.querySelector('ytd-masthead').removeAttribute('dark'); - document.getElementById("cinematics").style.visibility = 'hidden'; - document.getElementById("cinematics").style.display = 'none !important';} - document.querySelector('ytd-masthead').style.backgroundColor ='#fffff7' ; + document.querySelector('ytd-masthead').style.backgroundColor ='rgba(0, 0, 0, 0)' ; } - else if (this.storage.theme === 'dark'){ c = '400'; document.documentElement.setAttribute('dark', ''); - document.querySelector('ytd-masthead').setAttribute('dark', '') + else if (this.storage.theme === 'dark'){ + if (document.documentElement.hasAttribute('dark') !== null && document.documentElement.hasAttribute('dark') ){ + cookieValue = '400'; + } document.documentElement.setAttribute('dark', ''); document.getElementById("cinematics").style.visibility = 'visible'; - document.querySelector('ytd-masthead').style.backgroundColor ='#000'; - } - else if (this.storage.theme === 'dawn' || this.storage.theme === 'sunset' || this.storage.theme === 'night' ){ + document.querySelector('ytd-masthead').style.backgroundColor ='#000'; + } else if (this.storage.theme === 'black') { + if (document.documentElement.hasAttribute('dark') !== null && document.documentElement.hasAttribute('dark') ){ + cookieValue = '400'; } document.documentElement.setAttribute('dark', ''); + document.documentElement.setAttribute('it-themes', 'true'); + document.getElementById("cinematics").style.visibility = 'hidden'; + document.getElementById("cinematics").style.display = 'none !important'; + document.querySelector('ytd-masthead').style.backgroundColor ='#000'; + } else if (this.storage.theme === 'dawn' || this.storage.theme === 'sunset' || this.storage.theme === 'night' ){ document.querySelector('ytd-masthead').removeAttribute('dark'); - document.getElementById("cinematics").style.mixBlendMode = 'lighten'; - document.getElementById("cinematics").style.visibility = 'visible'; - document.getElementById("cinematics").style.filter = 'invert(0)'; } else if (this.storage.theme === 'plain'){ document.querySelector('ytd-masthead').removeAttribute('dark'); - document.getElementById("cinematics").style.visibility = 'visible'; - document.getElementById("cinematics").style.filter = 'invert(1)'; - document.getElementById("cinematics").style.mixBlendMode = 'darken' } else if (this.storage.theme === 'desert'){ document.querySelector('ytd-masthead').removeAttribute('dark'); - document.getElementById("cinematics").style.visibility = 'hidden'; - document.getElementById("cinematics").style.display = 'none'; - } else if (this.storage.theme === 'black') { - document.documentElement.setAttribute('it-themes', 'true'); - document.getElementById("cinematics").style.visibility = 'hidden'; - document.getElementById("cinematics").style.display = 'none !important'; - document.querySelector('ytd-masthead').style.backgroundColor ='#000'; - cookieValue = '80000'; - document.querySelector('ytd-masthead').removeAttribute('dark'); - document.documentElement.removeAttribute('dark'); - } } else {if (document.documentElement.hasAttribute('it-themes') !== null && document.documentElement.hasAttribute('it-themes') === true){ - document.getElementById("cinematics").style.visibility = 'hidden'; - document.getElementById("cinematics").style.display = 'none !important'; - } - if ( (document.documentElement.hasAttribute('dark') !== null && document.documentElement.hasAttribute('dark') ) - || ( document.querySelector('ytd-masthead').hasAttribute('dark') !== null && document.querySelector('ytd-masthead').hasAttribute('dark') ) - ){ - cookieValue = '400'; document.documentElement.setAttribute('dark', ''); - document.querySelector('ytd-masthead').setAttribute('dark', ''); - document.getElementById("cinematics").style.visibility = 'visible'; } - } -} + } pref = ''; if (typeof cookieValue !== 'undefined'){ if (document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)) { @@ -153,4 +132,4 @@ ImprovedTube.themes = function () { } ImprovedTube.setCookie('PREF', cookieValue); } -}; +}; \ No newline at end of file From c3e3d092e04bc361d0105f408996de387d2f9a35 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 19 Mar 2023 02:39:20 +0100 Subject: [PATCH 0850/1224] Update settings.js --- .../youtube-features/settings.js | 280 +++++++++--------- 1 file changed, 140 insertions(+), 140 deletions(-) diff --git a/content-scripts/website-context/youtube-features/settings.js b/content-scripts/website-context/youtube-features/settings.js index 04ef4e41f..2c1e433dd 100644 --- a/content-scripts/website-context/youtube-features/settings.js +++ b/content-scripts/website-context/youtube-features/settings.js @@ -2,151 +2,12 @@ 4.10.0 SETTINGS ------------------------------------------------------------------------------*/ -/*------------------------------------------------------------------------------ -4.10.2 PLAYER BUTTONS -------------------------------------------------------------------------------*/ - -ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { - if (window.self !== window.top) { - return false; - } - - var section = document.querySelector('#flex.ytd-video-primary-info-renderer'); - if (this.storage.description === "normal" || this.storage.description === "expanded") - {var section = document.querySelector('#subscribe-button');} - - if (section && !document.querySelector('.improvedtube-player-button')) { - - - if (this.storage.below_player_loop !== false) { - var button = document.createElement('button'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - button.className = 'improvedtube-player-button'; - button.dataset.tooltip = 'Loop'; - - svg.style.opacity = '.5'; - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z'); - - button.onclick = function () { - var video = ImprovedTube.elements.video, - svg = this.children[0]; - - if (video.hasAttribute('loop')) { - video.removeAttribute('loop'); - - svg.style.opacity = '.5'; - } else if (!/ad-showing/.test(ImprovedTube.elements.player.className)) { - video.setAttribute('loop', ''); - - svg.style.opacity = '1'; - } - }; - - svg.appendChild(path); - button.appendChild(svg); - - section.insertAdjacentElement('afterend', button) - } - if (this.storage.below_player_pip !== false) { - var button = document.createElement('button'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - button.className = 'improvedtube-player-button'; - button.dataset.tooltip = 'Picture in picture'; - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M19 7h-8v6h8V7zm2-4H3C2 3 1 4 1 5v14c0 1 1 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 16H3V5h18v14z'); - - button.onclick = function () { - var video = document.querySelector('#movie_player video'); - - if (video) { - video.requestPictureInPicture(); - } - }; - - svg.appendChild(path); - button.appendChild(svg); - - section.insertAdjacentElement('afterend', button) - } - - if (this.storage.below_player_screenshot !== false) { - var button = document.createElement('button'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - button.className = 'improvedtube-player-button'; - button.dataset.tooltip = 'Screenshot'; - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'); - - button.onclick = ImprovedTube.screenshot; - - svg.appendChild(path); - button.appendChild(svg); - - section.insertAdjacentElement('afterend', button) - } - } -}; - - -/*----------------------------------------------------------------------------- -4.10.3 DELETE YOUTUBE COOKIES ------------------------------------------------------------------------------*/ - -ImprovedTube.deleteYoutubeCookies = function () { - var cookies = document.cookie.split(';'); - - for (var i = 0, l = cookies.length; i < l; i++) { - var cookie = cookies[i], - eqPos = cookie.indexOf('='), - name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; - - document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; - } - - setTimeout(function () { - location.reload(); - }, 100); -}; - - -/*----------------------------------------------------------------------------- -4.10.4 YOUTUBE LANGUAGE ------------------------------------------------------------------------------*/ - -ImprovedTube.youtubeLanguage = function () { - var value = this.storage.youtube_language; - - if (this.isset(value)) { - var pref = this.getCookieValueByName('PREF'); - - if (value !== 'default') { - var hl = this.getParam(pref, 'hl'); - - if (hl) { - this.setCookie('PREF', pref.replace('hl=' + hl, 'hl=' + value)); - } else { - this.setCookie('PREF', pref + '&hl=' + value); - } - } - } -}; - /*------------------------------------------------------------------------------ 4.10.1 IMPROVEDTUBE ICON ------------------------------------------------------------------------------*/ ImprovedTube.improvedtubeYoutubeIcon = function () { - var data = try{localStorage.getItem('improvedtube-button-position')}, + var data = localStorage.getItem('improvedtube-button-position'), x = 0, y = 0, option = this.storage.improvedtube_youtube_icon, @@ -288,3 +149,142 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { button.remove(); } }; + +/*------------------------------------------------------------------------------ +4.10.2 PLAYER BUTTONS +------------------------------------------------------------------------------*/ + +ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { + if (window.self !== window.top) { + return false; + } + + var section = document.querySelector('#flex.ytd-video-primary-info-renderer'); + if (this.storage.description === "normal" || this.storage.description === "expanded") + {var section = document.querySelector('#subscribe-button');} + + if (section && !document.querySelector('.improvedtube-player-button')) { + + + if (this.storage.below_player_loop !== false) { + var button = document.createElement('button'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + button.className = 'improvedtube-player-button'; + button.dataset.tooltip = 'Loop'; + + svg.style.opacity = '.5'; + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z'); + + button.onclick = function () { + var video = ImprovedTube.elements.video, + svg = this.children[0]; + + if (video.hasAttribute('loop')) { + video.removeAttribute('loop'); + + svg.style.opacity = '.5'; + } else if (!/ad-showing/.test(ImprovedTube.elements.player.className)) { + video.setAttribute('loop', ''); + + svg.style.opacity = '1'; + } + }; + + svg.appendChild(path); + button.appendChild(svg); + + section.insertAdjacentElement('afterend', button) + } + if (this.storage.below_player_pip !== false) { + var button = document.createElement('button'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + button.className = 'improvedtube-player-button'; + button.dataset.tooltip = 'Picture in picture'; + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M19 7h-8v6h8V7zm2-4H3C2 3 1 4 1 5v14c0 1 1 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 16H3V5h18v14z'); + + button.onclick = function () { + var video = document.querySelector('#movie_player video'); + + if (video) { + video.requestPictureInPicture(); + } + }; + + svg.appendChild(path); + button.appendChild(svg); + + section.insertAdjacentElement('afterend', button) + } + + if (this.storage.below_player_screenshot !== false) { + var button = document.createElement('button'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + button.className = 'improvedtube-player-button'; + button.dataset.tooltip = 'Screenshot'; + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'); + + button.onclick = ImprovedTube.screenshot; + + svg.appendChild(path); + button.appendChild(svg); + + section.insertAdjacentElement('afterend', button) + } + } +}; + + +/*----------------------------------------------------------------------------- +4.10.3 DELETE YOUTUBE COOKIES +-----------------------------------------------------------------------------*/ + +ImprovedTube.deleteYoutubeCookies = function () { + var cookies = document.cookie.split(';'); + + for (var i = 0, l = cookies.length; i < l; i++) { + var cookie = cookies[i], + eqPos = cookie.indexOf('='), + name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; + + document.cookie = name + '=; domain=.youtube.com; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; + } + + setTimeout(function () { + location.reload(); + }, 100); +}; + + +/*----------------------------------------------------------------------------- +4.10.4 YOUTUBE LANGUAGE +-----------------------------------------------------------------------------*/ + +ImprovedTube.youtubeLanguage = function () { + var value = this.storage.youtube_language; + + if (this.isset(value)) { + var pref = this.getCookieValueByName('PREF'); + + if (value !== 'default') { + var hl = this.getParam(pref, 'hl'); + + if (hl) { + this.setCookie('PREF', pref.replace('hl=' + hl, 'hl=' + value)); + } else { + this.setCookie('PREF', pref + '&hl=' + value); + } + } + } +}; \ No newline at end of file From 70b626ba5a9c53696a9cd140862bfa51fc56f0f2 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 19 Mar 2023 02:46:33 +0100 Subject: [PATCH 0851/1224] version --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index a4c74efd0..c9fa1f4e5 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!'🎧(for YouTube & Videos)", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "4.2", + "version": "4.3", "default_locale": "en", "icons": { From 453641a2f7bc0e57c217f5bc2ff842639c1d81c1 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 19 Mar 2023 05:55:55 +0100 Subject: [PATCH 0852/1224] Update core.js --- content-scripts/website-context/core.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content-scripts/website-context/core.js b/content-scripts/website-context/core.js index 77ff37bd5..2d923a748 100644 --- a/content-scripts/website-context/core.js +++ b/content-scripts/website-context/core.js @@ -138,7 +138,7 @@ document.addEventListener('it-message-from-extension', function () { ImprovedTube.setTheme(); } else if (camelized_key === 'description') { - if (ImprovedTube.storage.description === "normal") + if (ImprovedTube.storage.description === "normal" || ImprovedTube.storage.description === "classic" ) {document.querySelector("#less").click() || document.querySelector("#collapse").click() ;} } if (ImprovedTube[camelized_key]) { From 26e15eb4707f7558f5303774a89a5dcc5da22403 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 19 Mar 2023 09:16:34 +0100 Subject: [PATCH 0853/1224] #1563 --- .../youtube-features/appearance/comments/comments.css | 7 +++++++ .../website-context/youtube-features/appearance.js | 11 +++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/comments/comments.css b/content-scripts/extension-context/youtube-features/appearance/comments/comments.css index eb3a8f608..7b645cec2 100644 --- a/content-scripts/extension-context/youtube-features/appearance/comments/comments.css +++ b/content-scripts/extension-context/youtube-features/appearance/comments/comments.css @@ -1,12 +1,19 @@ /*-------------------------------------------------------------- >>> COMMENTS: ---------------------------------------------------------------- +# Sidebar # Comments # Collapsed # Hidden # Squared User Images # Hide avatars --------------------------------------------------------------*/ + +html[it-comments-sidebar-position='true'] #comments { max-width: min(1100px, 30vw) !important; margin-right: -10px !important; } +@media screen and (max-width: 2419px) and (min-width: 1438px) { +html[it-comments-sidebar-position='true'] #secondary {top:0px !important; margin-top: -10px !important; } +html[it-comments-sidebar-position='true'] #primary {top:0px !important; margin-left: 10px !important; } + /*-------------------------------------------------------------- # COLLAPSED --------------------------------------------------------------*/ diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index e98fd9999..d930a0ab9 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -154,12 +154,11 @@ ImprovedTube.playerRemainingDuration = function () { ------------------------------------------------------------------------------*/ ImprovedTube.commentsSidebarPosition=()=>{ if(ImprovedTube.storage.comments_sidebar_position){ document.querySelector("#columns").appendChild(document.querySelector("#comments")); - document.querySelector("#primary-inner").appendChild(document.querySelector("#secondary")); +// }else{document.querySelector("#columns").appendChild(document.querySelector("#secondary")); + if(window.matchMedia("(max-width: 1438px)").matches){ document.querySelector("#primary-inner").appendChild(document.querySelector("#secondary"));} // console.log("secondary and its children have been appended to primary-inner") - }else{ - document.querySelector("#columns").appendChild(document.querySelector("#secondary")); - document.querySelector("#below").appendChild(document.querySelector("#comments")); - } +// }else{ document.querySelector("#below").appendChild(document.querySelector("#comments")); + } } /*------------------------------------------------------------------------------ 4.2.2 SIDEBAR @@ -309,7 +308,7 @@ ImprovedTube.description = function (el) { if(el){el.click();} else {document.querySelector("#more").click() || document.querySelector("#expand").click() ;} } }; - + /*------------------------------------------------------------------------------ 4.2.3.4 HIDE DETAIL BUTTON ------------------------------------------------------------------------------*/ From 35cb859e055c7180616a1f55eead2cdf9d802eac Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 19 Mar 2023 16:09:57 +0100 Subject: [PATCH 0854/1224] Update README.md --- .github/README.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/README.md b/.github/README.md index a3abce130..089790149 100644 --- a/.github/README.md +++ b/.github/README.md @@ -14,23 +14,28 @@ Chrome Web Store - 4.2 + 4.3 + + + + Safari

*finally* + 4.3 Microsoft Edge Addons - 4.2 + 4.3 Firefox Add-ons - 4.2 + 4.3 Opera Add-ons - 4.2 + 4.3 Whale Store - 4.2 + 4.3 or install manually : latest

Contributing

From 3c4dbf7a6085eaf114cce931153829878cc02956 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 19 Mar 2023 16:10:44 +0100 Subject: [PATCH 0855/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index 089790149..2cf0f2996 100644 --- a/.github/README.md +++ b/.github/README.md @@ -18,7 +18,7 @@ - Safari

*finally* +

*finally* 4.3 From 42ad48ff8e959dec3d49afff70968e78db9b4ad1 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 19 Mar 2023 16:12:35 +0100 Subject: [PATCH 0856/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index 2cf0f2996..3e16c5906 100644 --- a/.github/README.md +++ b/.github/README.md @@ -18,7 +18,7 @@ -

*finally* + (finally) 4.3 From 433823a2b157f30a66c2b392c96399eee0cb665a Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 19 Mar 2023 16:17:58 +0100 Subject: [PATCH 0857/1224] Update README.md --- .github/README.md | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/README.md b/.github/README.md index 3e16c5906..a137d6e5f 100644 --- a/.github/README.md +++ b/.github/README.md @@ -43,14 +43,15 @@ For more info on how to contribute please see the

Roadmap

- + - Finding developers and patreons - - All bugs & wishes - - 🛈ToolTips & documentation - - Avoiding CPU-rendering by default + - All bugs & wishes + - ℹToolTips & documentation + - Avoiding CPU-rendering by default + - Smart player buttons for all \ - Smart content-filtering & discovery - - Full-page GUI, watch-history, dashboard + - Full-page GUI, watch-history, dashboard - Integrating data [#1452](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1452), [SB](https://github.com/mchangrh/sb-mirror) / [NB](https://github.com/andrewzlee/NeuralBlock) etc. - Integrating code / features like [YCS](https://github.com/sonigy/YCS), [YR](https://github.com/MarcGuiselin/youtube-refined), [NY](https://github.com/raingart/Nova-YouTube-extension), [IC](https://github.com/ThomasTavernier/Improve-Crunchyroll) From bb94254189375f0f9e906acd7597b90609aacb7b Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 19 Mar 2023 16:20:05 +0100 Subject: [PATCH 0858/1224] Update README.md --- .github/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/README.md b/.github/README.md index a137d6e5f..48e9dd696 100644 --- a/.github/README.md +++ b/.github/README.md @@ -48,7 +48,7 @@ For more info on how to contribute please see the
to refine your YouTube experience. A one-stop-shop with many powerful features to enhance YouTube, yet liteweight. A larger player & tidy YouTube UI / hiding distractions were the first loved feature. And there was so much left to build and are many clever features to come still.        ImprovedTube is designed with our own UI library: [Satus](https://github.com/victor-savinov/satus) (to manage your settings efficiently & create familiar apps/['cousins](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl) easily.)       Please spread the word: ImprovedTube is the only project of it's kind, because other open Youtube Extensions resigned. No other project provides so much CSS to adjust a website[🦄](https://github.com/search?q=stars%3A%3E700++size%3A%3E3000+++language%3ACSS++App+OR+Addon+OR+Extension+NOT+framework+NOT+apps&type=Repositories&s=updated&o=desc). +      is an extension we built to refine your YouTube experience. A powerful one-stop-shop with many features to enhance YouTube, yet liteweight. Be it a larger player or more tidy / studious YouTube UI, hiding distractions. And there was so much left to build and are many clever features to come still.        ImprovedTube is designed with our own UI library: [Satus](https://github.com/victor-savinov/satus) (to manage your settings efficiently & create familiar apps/['cousins](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl) easily.)       Please spread the word: ImprovedTube is the only project of it's kind, because other open Youtube Extensions resigned. No other project provides so much CSS to adjust a website[🦄](https://github.com/search?q=stars%3A%3E700++size%3A%3E3000+++language%3ACSS++App+OR+Addon+OR+Extension+NOT+framework+NOT+apps&type=Repositories&s=updated&o=desc).

chrome-web-store-linkChrome-users

From d44d2d82c73c87104035f04ad2d91c6b7c35e790 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 19 Mar 2023 19:27:36 +0100 Subject: [PATCH 0860/1224] typo --- .../youtube-features/appearance/comments/comments.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/comments/comments.css b/content-scripts/extension-context/youtube-features/appearance/comments/comments.css index 7b645cec2..2cfb4a8ac 100644 --- a/content-scripts/extension-context/youtube-features/appearance/comments/comments.css +++ b/content-scripts/extension-context/youtube-features/appearance/comments/comments.css @@ -13,7 +13,7 @@ html[it-comments-sidebar-position='true'] #comments { max-width: min(1100px, 30v @media screen and (max-width: 2419px) and (min-width: 1438px) { html[it-comments-sidebar-position='true'] #secondary {top:0px !important; margin-top: -10px !important; } html[it-comments-sidebar-position='true'] #primary {top:0px !important; margin-left: 10px !important; } - +} /*-------------------------------------------------------------- # COLLAPSED --------------------------------------------------------------*/ From 33e533377d6cde6461b0a8d477fe47f79cf422e5 Mon Sep 17 00:00:00 2001 From: Mohamed Lebda Date: Sun, 19 Mar 2023 23:39:24 +0200 Subject: [PATCH 0861/1224] fix issue-1626 --- .../website-context/youtube-features/shortcuts.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/content-scripts/website-context/youtube-features/shortcuts.js index d8d0c4744..aa43e8fe3 100644 --- a/content-scripts/website-context/youtube-features/shortcuts.js +++ b/content-scripts/website-context/youtube-features/shortcuts.js @@ -141,7 +141,12 @@ ImprovedTube.shortcuts = function () { mouse.player = true; mouse.wheel = 0; }, true)}, 200); - } }); + } + ImprovedTube.elements.player.parentNode.addEventListener('mouseout', function () { + mouse.player = false; + mouse.wheel = 0; + }, true); +}); document.addEventListener('improvedtube-blur', function () { keyboard.alt = false; From 3e91eaeebb813f511c8154ab945fb33a824cb557 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 19 Mar 2023 22:54:16 +0100 Subject: [PATCH 0862/1224] comments on the side --- .../appearance/comments/comments.css | 16 ++++++++++++---- .../youtube-features/appearance.js | 10 ++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/comments/comments.css b/content-scripts/extension-context/youtube-features/appearance/comments/comments.css index 2cfb4a8ac..efd84a5e0 100644 --- a/content-scripts/extension-context/youtube-features/appearance/comments/comments.css +++ b/content-scripts/extension-context/youtube-features/appearance/comments/comments.css @@ -9,11 +9,19 @@ # Hide avatars --------------------------------------------------------------*/ -html[it-comments-sidebar-position='true'] #comments { max-width: min(1100px, 30vw) !important; margin-right: -10px !important; } -@media screen and (max-width: 2419px) and (min-width: 1438px) { -html[it-comments-sidebar-position='true'] #secondary {top:0px !important; margin-top: -10px !important; } -html[it-comments-sidebar-position='true'] #primary {top:0px !important; margin-left: 10px !important; } +@media screen and (min-width: 1599px) { +html[data-page-type=video][it-comments-sidebar-position='true'] #secondary {top:0px !important; margin: -10px !important; } +html[data-page-type=video][it-comments-sidebar-position='true'] #primary {top:0px !important; margin-left: 0px !important; } +html[data-page-type=video][it-comments-sidebar-position='true'] #comments { max-width: min(1200px, 20vw) !important; } + +html[data-page-type=video][it-comments-sidebar-position='true'] ytd-watch-flexy:not([fullscreen]) #columns, +html[data-page-type=video][it-comments-sidebar-position='true'] ytd-watch-flexy:not([fullscreen]) #primary{ +max-width: 99.5% !important; } + +html[data-page-type=video][it-comments-sidebar-position='true']:not([it-player-size='1080p']):not([it-player-size='1440p']):not([it-player-size='2160p']):not([it-player-size='custom']):not([it-player-size='max_width']) ytd-watch-flexy:not([fullscreen]) #primary { +min-width: min(52%, 1280px) !important; max-width: 1280px !important; } } + /*-------------------------------------------------------------- # COLLAPSED --------------------------------------------------------------*/ diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index d930a0ab9..2fe20bb95 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -154,11 +154,13 @@ ImprovedTube.playerRemainingDuration = function () { ------------------------------------------------------------------------------*/ ImprovedTube.commentsSidebarPosition=()=>{ if(ImprovedTube.storage.comments_sidebar_position){ document.querySelector("#columns").appendChild(document.querySelector("#comments")); -// }else{document.querySelector("#columns").appendChild(document.querySelector("#secondary")); - if(window.matchMedia("(max-width: 1438px)").matches){ document.querySelector("#primary-inner").appendChild(document.querySelector("#secondary"));} + + if(window.matchMedia("(max-width: 1598px)").matches) + {document.querySelector("#primary-inner").appendChild(document.querySelector("#secondary"));} // console.log("secondary and its children have been appended to primary-inner") -// }else{ document.querySelector("#below").appendChild(document.querySelector("#comments")); - } + +} else{document.querySelector("#below").appendChild(document.querySelector("#comments")); + document.querySelector("#columns").appendChild(document.querySelector("#secondary"));} } /*------------------------------------------------------------------------------ 4.2.2 SIDEBAR From c2154ce639293599c173949f4d32ed5e5b04f1bc Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 19 Mar 2023 23:53:02 +0100 Subject: [PATCH 0863/1224] Update README.md --- .github/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/README.md b/.github/README.md index a40b873fd..baf4daf5c 100644 --- a/.github/README.md +++ b/.github/README.md @@ -46,7 +46,7 @@ For more info on how to contribute please see the - - - + +

@@ -94,10 +94,10 @@ Big thanks ♡ to our Spread the word [📣](Http://Twitter_Whatsapp_Discord_Youtube_Facebook_eMail_Telegram_Signal)         - @@ -107,7 +107,7 @@ Today adding something is easier & so motivating as there are 500 000 users. [[ - Finding developers and patreons - All bugs & wishes - - ℹToolTips & documentation + - (i) ToolTips & documentation - Avoiding CPU-rendering by default --- - Smart player buttons for all \ From 28d00f39887a2ecd4341d63518a2c59a95e4c4fb Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 20 Mar 2023 00:59:53 +0100 Subject: [PATCH 0864/1224] Update README.md --- .github/README.md | 65 ++++++++++++++--------------------------------- 1 file changed, 19 insertions(+), 46 deletions(-) diff --git a/.github/README.md b/.github/README.md index baf4daf5c..1843e1b4f 100644 --- a/.github/README.md +++ b/.github/README.md @@ -1,54 +1,24 @@

ImprovedTube

Powerful but lightweight extension to enrich your video experience & content selection.

Report a bug · -Request feature · +Request feature · Contribute · -Donate -
- -

Install

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StoreVersion
Chrome Web Store4.3
- (finally)4.3
Microsoft Edge Addons4.3
Firefox Add-ons4.3
Opera Add-ons4.3
Whale Store4.3
or install manually : latest +Donate

-

Contributing

-For more info on how to contribute please see the contribution wiki. -

Roadmap

-
+ + recommended by firefox
+ + + [](https://github.com/code-for-charity/ImprovedTube-for-YouTube/releases/latest "Last Github Release") +[`🧪`](https://github.com/code-for-charity/ImprovedTube-for-YouTube/archive/refs/heads/master.zip "Test Repo (latest.zip)") - - Finding developers and patreons - - All bugs +

Roadmap

+ + - (Finding developers / patreons) + - All bugs & some wishes - (i) ToolTips & documentation - Avoiding CPU-rendering by default - --- - Smart player buttons for all \ - Smart content-filtering & discovery - Full-page GUI, watch-history, dashboard @@ -56,17 +26,21 @@ For more info on how to contribute please see the contribution wiki. +
   

Long 'ugly' Readme.md:

- + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->

«Improve YouTube!»   

/ImprovedTube/ is a lightweight & powerful extension to enrich your experience & enable your choice.

- @@ -109,7 +83,6 @@ Today adding can be easier & so motivating as there are 500 000 users. [[👪Joi - All bugs & wishes - (i) ToolTips & documentation - Avoiding CPU-rendering by default - --- - Smart player buttons for all \ - Smart content-filtering & discovery - Full-page GUI, watch-history, dashboard From a1fc43675c6842ee5dcb4a1a22981af60f6d5d73 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 20 Mar 2023 02:06:36 +0100 Subject: [PATCH 0865/1224] undo typo --- .../website-context/youtube-features/shortcuts.js | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/content-scripts/website-context/youtube-features/shortcuts.js index aa43e8fe3..87e2cc4eb 100644 --- a/content-scripts/website-context/youtube-features/shortcuts.js +++ b/content-scripts/website-context/youtube-features/shortcuts.js @@ -133,21 +133,17 @@ ImprovedTube.shortcuts = function () { }); document.addEventListener('improvedtube-player-loaded', function () { - try{ImprovedTube.elements.player.parentNode.addEventListener('mouseover', function () { - mouse.player = true; - mouse.wheel = 0; - }, true);} catch(err){console.log(err); setTimeout(function(){ ImprovedTube.elements.player.parentNode.addEventListener('mouseover', function () { mouse.player = true; mouse.wheel = 0; - }, true)}, 200); - } - ImprovedTube.elements.player.parentNode.addEventListener('mouseout', function () { + }, true); + + ImprovedTube.elements.player.parentNode.addEventListener('mouseout', function () { mouse.player = false; mouse.wheel = 0; }, true); -}); - + }); + document.addEventListener('improvedtube-blur', function () { keyboard.alt = false; keyboard.ctrl = false; From d495869ec5bb30aca4eacce68ce02cfd51210b08 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 20 Mar 2023 02:37:37 +0100 Subject: [PATCH 0866/1224] Update manifest.json --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index c9fa1f4e5..b7063d3ba 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!'🎧(for YouTube & Videos)", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "4.3", + "version": "4.3.1", "default_locale": "en", "icons": { From b467b28faca50d761af06c880726cf5662db7ede Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 20 Mar 2023 20:24:38 +0100 Subject: [PATCH 0867/1224] transcript always. done #1545 + description finish re: #1590 --- content-scripts/website-context/core.js | 19 ++++++++++++---- content-scripts/website-context/functions.js | 18 ++++++++++----- .../youtube-features/appearance.js | 22 +++++++++++++++---- options-page/skeleton-parts/appearance.js | 6 ++++- 4 files changed, 50 insertions(+), 15 deletions(-) diff --git a/content-scripts/website-context/core.js b/content-scripts/website-context/core.js index 2d923a748..8c8a43846 100644 --- a/content-scripts/website-context/core.js +++ b/content-scripts/website-context/core.js @@ -122,7 +122,7 @@ document.addEventListener('it-message-from-extension', function () { ImprovedTube.storage = message.storage; ImprovedTube.init(); - } else if (message.action === 'storage-changed') { + } else if (message.action === 'storage-changed') { var camelized_key = message.camelizedKey; ImprovedTube.storage[message.key] = message.value; @@ -136,11 +136,22 @@ document.addEventListener('it-message-from-extension', function () { } else if (camelized_key === 'theme') { ImprovedTube.myColors(); ImprovedTube.setTheme(); - } - else if (camelized_key === 'description') { + } else if (camelized_key === 'description') { + if (ImprovedTube.storage.description === "expanded" || ImprovedTube.storage.description === "classic_expanded" ) + {document.querySelector("#more").click() || document.querySelector("#expand").click() ;} if (ImprovedTube.storage.description === "normal" || ImprovedTube.storage.description === "classic" ) {document.querySelector("#less").click() || document.querySelector("#collapse").click() ;} - } + } + else if (camelized_key === 'transcript') { + if (ImprovedTube.storage.transcript === true){ + document.querySelector('#below svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click(); + setTimeout(function(){ + try{document.querySelector('tp-yt-iron-dropdown svg path[d^="M5,11h2v2H5V11z M15,15H5v2h10V15z"]').closest("tp-yt-paper-item").click();} + catch(e){console.log(e); setTimeout(function(){ + try{document.querySelector('tp-yt-iron-dropdown svg path[d^="M5,11h2v2H5V11z M15,15H5v2h10V15z"]').closest("tp-yt-paper-item").click();} + catch{}},200);}},1) + } if (ImprovedTube.storage.transcript === false){document.querySelector('*[target-id*=transcript] #visibility-button button').click();} + } if (ImprovedTube[camelized_key]) { ImprovedTube[camelized_key](); } diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index ba900ee7d..7b6b6de81 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -202,14 +202,20 @@ ImprovedTube.ytElementsHandler = function (node) { if (document.documentElement.dataset.pageType === 'video'){ setTimeout(function () { ImprovedTube.description(node); - }, 750); + }, 300); } - //old - }else if (name === 'TP-YT-PAPER-BUTTON') { - if (document.documentElement.dataset.pageType === 'video' && id === 'more' && node.classList.contains('ytd-expander') || (node.parentNode.parentNode !== null && node.parentNode.parentNode.id === 'container')) { + }else if (id === 'meta') { + if (document.documentElement.dataset.pageType === 'video') { setTimeout(function () { - ImprovedTube.description(node); - }, 750); + ImprovedTube.description(node.querySelector('#more')); + }, 300); + } + } + else if (id === 'below') { + if (document.documentElement.dataset.pageType === 'video') { + setTimeout(function () { + ImprovedTube.transcript(node); + }, 400); } } }; diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index 2fe20bb95..860033523 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -165,6 +165,21 @@ ImprovedTube.commentsSidebarPosition=()=>{ if(ImprovedTube.storage.comments_side /*------------------------------------------------------------------------------ 4.2.2 SIDEBAR ------------------------------------------------------------------------------*/ +/*---------------------------------------------------------------- +# TRANSCRIPT +--------------------------------------------------------------*/ + +ImprovedTube.transcript = function (el){ +if (ImprovedTube.storage.transcript === true){ +try{el.querySelector('svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click();} +catch(e){console.log(e); +setTimeout(function(){try{el.querySelector('svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click();} +catch{}},800)}; +setTimeout(function(){try{document.querySelector('tp-yt-iron-dropdown svg path[d^="M5,11h2v2H5V11z M15,15H5v2h10V15z"]').closest("tp-yt-paper-item").click();} +catch{setTimeout(function(){try{document.querySelector('tp-yt-iron-dropdown svg path[d^="M5,11h2v2H5V11z M15,15H5v2h10V15z"]').closest("tp-yt-paper-item").click();} +catch{el.querySelector('svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click();}},300);} +},7); +}} /*------------------------------------------------------------------------------ 4.2.2.1 LIVECHAT @@ -306,10 +321,9 @@ ImprovedTube.channelVideosCount = function () { ------------------------------------------------------------------------------*/ ImprovedTube.description = function (el) { - if (this.storage.description === "classic_expanded" || this.storage.description === "expanded" ) { - if(el){el.click();} else {document.querySelector("#more").click() || document.querySelector("#expand").click() ;} - } -}; + if (this.storage.description === "classic_expanded" || this.storage.description === "expanded" ) + if(el)try{el.click()}catch{setTimeout(function(){el.click();},700);} + }; /*------------------------------------------------------------------------------ 4.2.3.4 HIDE DETAIL BUTTON diff --git a/options-page/skeleton-parts/appearance.js b/options-page/skeleton-parts/appearance.js index 1030eae1d..a910944fc 100644 --- a/options-page/skeleton-parts/appearance.js +++ b/options-page/skeleton-parts/appearance.js @@ -784,7 +784,11 @@ extension.skeleton.main.layers.section.appearance.on.click.sidebar = { click: { component: "section", variant: "card", - + transcript: { + component: 'switch', + text: 'Transcript', + value: false + }, related_videos: { component: "select", text: "relatedVideos", From eeacc571e824003c18ef5cebb4f2a5672c175009 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 20 Mar 2023 23:40:11 +0100 Subject: [PATCH 0868/1224] Update appearance.js --- options-page/skeleton-parts/appearance.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/options-page/skeleton-parts/appearance.js b/options-page/skeleton-parts/appearance.js index a910944fc..4d4d0ecc6 100644 --- a/options-page/skeleton-parts/appearance.js +++ b/options-page/skeleton-parts/appearance.js @@ -193,6 +193,8 @@ extension.skeleton.main.layers.section.appearance.on.click.player = { component: "text-field", placeholder: "1280", storage: "custom_player_size_width", + rows: 1, + lineNumbers: false }, x: { component: "span", @@ -202,6 +204,8 @@ extension.skeleton.main.layers.section.appearance.on.click.player = { component: "text-field", placeholder: "720", storage: "custom_player_size_height", + rows: 1, + lineNumbers: false }, }, hide_controls: { From 2c54b3d5e6d4e7e596d3689a2d1cf026946b0780 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 21 Mar 2023 02:29:50 +0100 Subject: [PATCH 0869/1224] #1538 #551 #1063 #274 #387 toDo: #680 #213 #1170 --- content-scripts/website-context/functions.js | 7 +++++++ content-scripts/website-context/youtube-features/player.js | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/content-scripts/website-context/functions.js b/content-scripts/website-context/functions.js index 7b6b6de81..8c31666d8 100644 --- a/content-scripts/website-context/functions.js +++ b/content-scripts/website-context/functions.js @@ -34,6 +34,13 @@ ImprovedTube.ytElementsHandler = function (node) { if (node.getAttribute('itemprop') === 'genre') { ImprovedTube.genre = node.content; } + if (node.getAttribute('name') === 'keywords') { + ImprovedTube.keywords = node.content; + } + if (node.getAttribute('itemprop') === 'name') { + ImprovedTube.title = node.content; + } + // if (node.getAttribute('name') === 'interactionCount') { ImprovedTube.likes = node.content; } } else if (name === 'YTD-TOGGLE-BUTTON-RENDERER' || name === 'YTD-PLAYLIST-LOOP-BUTTON-RENDERER') { if ( node.parentComponent && diff --git a/content-scripts/website-context/youtube-features/player.js b/content-scripts/website-context/youtube-features/player.js index 9808bf18c..8c6b63164 100644 --- a/content-scripts/website-context/youtube-features/player.js +++ b/content-scripts/website-context/youtube-features/player.js @@ -82,7 +82,11 @@ ImprovedTube.playerPlaybackSpeed = function (change) { if (this.storage.player_forced_playback_speed === true) { if (player.getVideoData().isLive === false && (this.storage.player_force_speed_on_music === true || - (location.href.indexOf('music') === -1 && document.querySelector('h3#title')?.innerText !== 'Music') + (document.querySelector('h3#title')?.innerText !== 'Music' + && (ImprovedTube.genre !== 'Music' || /interview|back[- ]?stage/i.test(ImprovedTube.keywords + ImprovedTube.title) ) + && !/official (music )?video|lyrics|cover[\)\]]|[\(\[]cover|cover version|karaoke|(sing|play)[- ]?along/i.test(ImprovedTube.title + ImprovedTube.keywords) + && location.href.indexOf('music') === -1 + ) )) { player.setPlaybackRate(Number(option)); video.playbackRate = Number(option); From 9bbbcae981d90321970c7e16b15e4f8578870945 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 21 Mar 2023 06:16:55 +0100 Subject: [PATCH 0870/1224] header hover #1629 #1624 --- .../appearance/details/details.css | 11 +--------- .../appearance/header/header.css | 20 ++++++++++--------- .../youtube-features/themes.js | 7 ++++--- manifest.json | 2 +- 4 files changed, 17 insertions(+), 23 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/content-scripts/extension-context/youtube-features/appearance/details/details.css index c42af1014..7160c9f03 100644 --- a/content-scripts/extension-context/youtube-features/appearance/details/details.css +++ b/content-scripts/extension-context/youtube-features/appearance/details/details.css @@ -1,9 +1,6 @@ /*-------------------------------------------------------------- >>> DETAILS ---------------------------------------------------------------- -# ---------------------------------------------------------------*/ - /*-------------------------------------------------------------- # General --------------------------------------------------------------*/ @@ -197,11 +194,6 @@ html[it-hide-more-button='true'] #menu yt-button-shape#button-shape { # DESCRIPTION --------------------------------------------------------------*/ -/* html[it-details-old-style=true] */ - -html[it-description='normal'] { } -html[it-description='expanded'] { } - html[it-description='classic'] .ytd-watch-flexy #info-contents, html[it-description='classic'] .ytd-watch-flexy #meta-contents { display: block !important; } html[it-description='classic'] #below.ytd-watch-flexy { top:-20px; } @@ -235,7 +227,6 @@ html[it-description='classic_expanded'] div.style-scope.ytd-watch-flexy + ytd-wa color: var(--yt-spec-text-secondary) !important; } - /*-------------------------------------------------------------- # SHOW CHANNEL VIDEOS COUNT --------------------------------------------------------------*/ @@ -255,4 +246,4 @@ html[it-description='classic_expanded'] div.style-scope.ytd-watch-flexy + ytd-wa html[it-red-dislike-button='true'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer *[aria-pressed='true'] yt-icon { color: #f02200 !important; -} +} \ No newline at end of file diff --git a/content-scripts/extension-context/youtube-features/appearance/header/header.css b/content-scripts/extension-context/youtube-features/appearance/header/header.css index 82325d48f..1b0ec95e6 100644 --- a/content-scripts/extension-context/youtube-features/appearance/header/header.css +++ b/content-scripts/extension-context/youtube-features/appearance/header/header.css @@ -11,9 +11,10 @@ /*-------------------------------------------------------------- # POSITION --------------------------------------------------------------*/ -html[it-header-position=hidden_on_video_page][data-page-type=video] #masthead-container, -html[it-header-position=hidden]:not([it-search-focus=true]) #masthead-container { - transform: translateY(-100%); + +html[it-header-position=hidden] #masthead-container:not([it-search-focus=true]), +html[it-header-position=hidden_on_video_page][data-page-type=video] #masthead-container:not([it-search-focus=true]) +{transform: translateY(-100%); } html[it-header-position=hidden] tp-yt-app-drawer#guide #guide-spacer, html[it-header-position=hidden] tp-yt-app-drawer:not([opened]) #header ytd-topbar-logo-renderer, @@ -26,7 +27,7 @@ html[it-header-position=static] tp-yt-app-drawer:not([opened]) #header ytd-topba html[it-header-position=static] tp-yt-app-drawer:not([opened]) #header .it-button, html[it-header-position=hidden_on_video_page][data-page-type=video] tp-yt-app-drawer#guide #guide-spacer, html[it-header-position=hover_on_video_page][data-page-type=video] tp-yt-app-drawer#guide #guide-spacer { - display: none; + display:none; } html[it-header-position=hover] #masthead-container, @@ -37,7 +38,7 @@ html[it-header-position=hover_on_video_page][data-page-type='video'] tp-yt-app-d html[it-header-position=hover_on_video_page][data-page-type='video'] ytd-mini-guide-renderer, html[it-header-position=static] tp-yt-app-drawer, html[it-header-position=static] ytd-mini-guide-renderer { - z-index: 2147483647 !important; + z-index: 2200 !important; } html[it-header-position=hidden] ytd-page-manager#page-manager, @@ -54,10 +55,10 @@ html[it-header-position=static] ytd-page-manager#page-manager { html[it-header-position=hover]:not([it-improvedtube-search=true]) #masthead-container, html[it-header-position=hover_on_video_page][data-page-type='video']:not([it-improvedtube-search=true]) #masthead-container { - transition: all 250ms ease-in-out; - transform: translateY(-75%); - height: 20%; - opacity: 0; + transition: all 320ms ease-in-out; + transform: translateY(-38%); + height: 68px; + opacity: 0 } html[it-header-position=hover] #masthead-container:hover, @@ -73,6 +74,7 @@ html[it-header-position=static] .ytd-app:not([masthead-hidden_]) #masthead-conta z-index: 999999999999 !important; } +html[it-header-position=hover_on_video_page]:not([data-page-type=video]) tp-yt-app-drawer:not([opened]) #header, html[it-header-position=hover]:not([data-page-type=video]) tp-yt-app-drawer:not([opened]) #header, html[it-header-position=hidden]:not([data-page-type=video]) tp-yt-app-drawer:not([opened]) #header, html[it-header-position=static]:not([data-page-type=video]) tp-yt-app-drawer:not([opened]) #header { diff --git a/content-scripts/website-context/youtube-features/themes.js b/content-scripts/website-context/youtube-features/themes.js index ae4e6da65..58073bb31 100644 --- a/content-scripts/website-context/youtube-features/themes.js +++ b/content-scripts/website-context/youtube-features/themes.js @@ -86,7 +86,7 @@ ImprovedTube.myColors = function () { {document.querySelector('ytd-masthead').style.backgroundColor = ''+primary_color+''; } } else if (this.elements.my_colors) { - this.elements.my_colors.remove();} + this.elements.my_colors.remove(); document.querySelector('ytd-masthead').style.backgroundColor ='rgba(255, 255, 255, 0.2)' ;} }; @@ -94,9 +94,10 @@ ImprovedTube.setTheme = function () { if (this.storage.theme === 'default'){ if (document.documentElement.hasAttribute('it-themes') !== null && document.documentElement.hasAttribute('it-themes') === true){ document.documentElement.removeAttribute('it-themes'); - document.documentElement.setAttribute('it-themes', 'false'); + document.documentElement.setAttribute('it-themes', 'false'); + document.querySelector('ytd-masthead').style.backgroundColor ='rgba(255, 255, 255, 0.5)'; } - document.querySelector('ytd-masthead').style.backgroundColor ='rgba(0, 0, 0, 0)' ; + } else if (this.storage.theme === 'dark'){ if (document.documentElement.hasAttribute('dark') !== null && document.documentElement.hasAttribute('dark') ){ diff --git a/manifest.json b/manifest.json index b7063d3ba..363475c0f 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "'Improve YouTube!'🎧(for YouTube & Videos)", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "4.3.1", + "version": "4.4", "default_locale": "en", "icons": { From dbb3ed0cfbb2d25d766bc8f13de47ef4860537cc Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 21 Mar 2023 13:29:01 +0100 Subject: [PATCH 0871/1224] finishing transcript --- .../appearance/sidebar/sidebar.css | 45 +++++++++++++++++-- content-scripts/website-context/core.js | 11 +++-- .../youtube-features/appearance.js | 4 +- .../youtube-features/player.js | 14 +++--- options-page/skeleton-parts/appearance.js | 42 ++++++++++++----- 5 files changed, 86 insertions(+), 30 deletions(-) diff --git a/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css b/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css index 9872a4e7a..79eb779bc 100644 --- a/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css +++ b/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css @@ -8,7 +8,6 @@ # Livechat # Hide playlist --------------------------------------------------------------*/ - /*-------------------------------------------------------------- # SIDEBAR AUTO SIZING --------------------------------------------------------------*/ @@ -26,6 +25,44 @@ div#secondary #playlist { min-width: var(--ytd-watch-flexy-sidebar-min-width); } +/*-------------------------------------------------------------- +# TRANSCRIPT +--------------------------------------------------------------*/ + +html[data-page-type=video][it-transcript='true'][it-sidebar-left='true'] body { overflow-x: hidden !important; } + +html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'], +html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'] ytd-engagement-panel-section-list-renderer #content +{ max-height: 77vh !important; } + + html[data-page-type=video][it-transcript='true'][it-sidebar-left='transcript'] ytd-watch-flexy:not([fullscreen]) #columns + { display:flex !important; max-width:88% !important; } + +@media screen and (min-width: 1599px) { +html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'], +html[data-page-type=video][it-transcript='true'] *[target-id*='transcript']:not([it-sidebar-left='true']) ytd-engagement-panel-section-list-renderer #content { +display:flex !important; max-width: 80%; min-width: clamp(390px, calc(31vw - 90px), 950px ); } +html[data-page-type=video][it-transcript='true'] ytd-watch-flexy:not([fullscreen]) #secondary +{ display:flex !important; max-width: 88% !important; } +html[data-page-type=video][it-transcript='true'] ytd-browse > ytd-two-column-browse-results-renderer { + object-fit: contain !important; max-width: 88% !important; margin: -5px; } +html[data-page-type=video][it-transcript='true']:not([it-player-size='1080p']):not([it-player-size='1440p']):not([it-player-size='2160p']):not([it-player-size='custom']):not([it-player-size='max_width']) ytd-watch-flexy:not([fullscreen]) #player{ +max-width: 1280px !important; right: -20px; align:right; content-align: right !important} + +html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) #secondary +{ direction: rtl; float: right;max-width: 600px !important; display:flex !important; object-fit: contain !important;} +html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) td-engagement-panel-section-list-renderer +{ text-align: right !important; direction: ltr; } +html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) #player + { left:-10px !important;} + +} + +/* ADS */ + +html[it-player-ads*='block'] *[target-id*='engagement-panel-ads'] {display: none !important;} +html[it-player-ads*='block'] .ytd-ad-slot-renderer {display: none !important;} + /*-------------------------------------------------------------- # RELATED VIDEOS --------------------------------------------------------------*/ @@ -74,12 +111,12 @@ html[it-related-videos='collapsed'] #related > ytd-watch-next-secondary-results- html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #columns.ytd-watch-flexy, html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #primary.ytd-watch-flexy { - max-width: 99% !important; margin: 1px !important; } + max-width: 99% !important; margin: 1px !important; } @media screen and (max-width: 2300px) and (min-width: 1250px) { html[data-page-type=video][it-no-page-margin='true'] ytd-browse > ytd-two-column-browse-results-renderer { width: auto !important; - max-width: auto !important; } + max-width: auto !important; overflow-x: hidden; } html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #secondary.ytd-watch-flexy { margin-right: calc (-12px - 0.4vw - 0.4vh) !important;} html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #below { @@ -96,7 +133,7 @@ html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullsc html[data-page-type=video][it-no-page-margin='true']:not([it-player-size='1080p']):not([it-player-size='1440p']):not([it-player-size='2160p']):not([it-player-size='custom']):not([it-player-size='max_width']) ytd-watch-flexy:not([fullscreen]) #primary.ytd-watch-flexy { max-width: 1280px !important; } html[data-page-type=video][it-no-page-margin='true']:not([it-player-size='1080p']):not([it-player-size='1440p']):not([it-player-size='2160p']):not([it-player-size='custom']):not([it-player-size='max_width']) ytd-watch-flexy:not([fullscreen]) #below { - margin-left: 1px !important;} + margin-left: 10px !important;} } diff --git a/content-scripts/website-context/core.js b/content-scripts/website-context/core.js index 8c8a43846..26d32ea55 100644 --- a/content-scripts/website-context/core.js +++ b/content-scripts/website-context/core.js @@ -145,11 +145,14 @@ document.addEventListener('it-message-from-extension', function () { else if (camelized_key === 'transcript') { if (ImprovedTube.storage.transcript === true){ document.querySelector('#below svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click(); - setTimeout(function(){ - try{document.querySelector('tp-yt-iron-dropdown svg path[d^="M5,11h2v2H5V11z M15,15H5v2h10V15z"]').closest("tp-yt-paper-item").click();} + setTimeout(function(){ + try{document.querySelector('tp-yt-iron-dropdown svg path[d^="M5,11h2v2H5V11z M15,15H5v2h10V15z"]').closest("tp-yt-paper-item").click(); + document.querySelector('tp-yt-iron-dropdown').style.setProperty('opacity', '0.1', 'important');} + catch(e){console.log(e); setTimeout(function(){ - try{document.querySelector('tp-yt-iron-dropdown svg path[d^="M5,11h2v2H5V11z M15,15H5v2h10V15z"]').closest("tp-yt-paper-item").click();} - catch{}},200);}},1) + try{document.querySelector('tp-yt-iron-dropdown svg path[d^="M5,11h2v2H5V11z M15,15H5v2h10V15z"]').closest("tp-yt-paper-item").click(); + document.querySelector('tp-yt-iron-dropdown').style.setProperty('opacity', '0.1', 'important');} + catch{}},300);}},1) } if (ImprovedTube.storage.transcript === false){document.querySelector('*[target-id*=transcript] #visibility-button button').click();} } if (ImprovedTube[camelized_key]) { diff --git a/content-scripts/website-context/youtube-features/appearance.js b/content-scripts/website-context/youtube-features/appearance.js index 860033523..31df85770 100644 --- a/content-scripts/website-context/youtube-features/appearance.js +++ b/content-scripts/website-context/youtube-features/appearance.js @@ -175,8 +175,8 @@ try{el.querySelector('svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("butt catch(e){console.log(e); setTimeout(function(){try{el.querySelector('svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click();} catch{}},800)}; -setTimeout(function(){try{document.querySelector('tp-yt-iron-dropdown svg path[d^="M5,11h2v2H5V11z M15,15H5v2h10V15z"]').closest("tp-yt-paper-item").click();} -catch{setTimeout(function(){try{document.querySelector('tp-yt-iron-dropdown svg path[d^="M5,11h2v2H5V11z M15,15H5v2h10V15z"]').closest("tp-yt-paper-item").click();} +setTimeout(function(){try{document.querySelector('tp-yt-iron-dropdown').style.setProperty('opacity', '0.1', 'important');document.querySelector('tp-yt-iron-dropdown svg path[d^="M5,11h2v2H5V11z M15,15H5v2h10V15z"]').closest("tp-yt-paper-item").click();} +catch{setTimeout(function(){try{document.querySelector('tp-yt-iron-dropdown').style.setProperty('opacity', '0.1', 'important');document.querySelector('tp-yt-iron-dropdown svg path[d^="M5,11h2v2H5V11z M15,15H5v2h10V15z"]').closest("tp-yt-paper-item").click();} catch{el.querySelector('svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click();}},300);} },7); }} diff --git a/content-scripts/website-context/youtube-features/player.js b/content-scripts/website-context/youtube-features/player.js index 8c6b63164..477b3c173 100644 --- a/content-scripts/website-context/youtube-features/player.js +++ b/content-scripts/website-context/youtube-features/player.js @@ -1,7 +1,6 @@ /*------------------------------------------------------------------------------ 4.4.0 PLAYER ------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------ 4.4.1 AUTOPLAY ------------------------------------------------------------------------------*/ @@ -27,7 +26,6 @@ ImprovedTube.autoplay = function () { }; - /*------------------------------------------------------------------------------ 4.4.2 FORCED PLAY VIDEO FROM THE BEGINNING ------------------------------------------------------------------------------*/ @@ -363,7 +361,6 @@ ImprovedTube.subtitlesFontOpacity = function () { } }; - /*------------------------------------------------------------------------------ 4.4.5 UP NEXT AUTOPLAY ------------------------------------------------------------------------------*/ @@ -391,19 +388,18 @@ ImprovedTube.playerAds = function (parent) { var button = parent.querySelector('.ytp-ad-skip-button.ytp-button'); if (button) { if (this.storage.player_ads === 'block_all') { - button.click(); + button.click(); querySelector("*[target-id*='engagement-panel-ads']").remove(); querySelector(".ytd-ad-slot-renderer").remove(); } else if (this.storage.player_ads === 'subscribed_channels') { if (!parent.querySelector('#meta paper-button[subscribed]')) { - button.click(); + button.click(); querySelector("*[target-id*='engagement-panel-ads']").remove(); querySelector(".ytd-ad-slot-renderer").remove(); } } else if (this.storage.player_ads === 'block_music') { if (ImprovedTube.elements.genre === 'music') { - button.click(); + button.click(); querySelector("*[target-id*='engagement-panel-ads']").remove(); querySelector(".ytd-ad-slot-renderer").remove(); } } - } -}; - + } +}; /*------------------------------------------------------------------------------ 4.4.7 CUSTOM MINI-PLAYER diff --git a/options-page/skeleton-parts/appearance.js b/options-page/skeleton-parts/appearance.js index 4d4d0ecc6..3925a88d9 100644 --- a/options-page/skeleton-parts/appearance.js +++ b/options-page/skeleton-parts/appearance.js @@ -791,8 +791,36 @@ extension.skeleton.main.layers.section.appearance.on.click.sidebar = { transcript: { component: 'switch', text: 'Transcript', - value: false - }, + value: false, + storage: 'transcript', + on: { click: function () { + if (satus.storage.get('transcript')) { + if (satus.storage.get('no_page_margin')) { + this.nextSibling.click(); + } + } + } + } + }, + no_page_margin: { + component: 'switch', + text: 'To the side! (No page margin)', + value: false, + on: { + click: function () { + if (satus.storage.get('no_page_margin')) { + if (satus.storage.get('transcript')) { + this.previousSibling.click(); + } + } + } + } + }, + sidebar_left: { + component: "switch", + text: "moveSidebarLeft", + }, + related_videos: { component: "select", text: "relatedVideos", @@ -812,15 +840,7 @@ extension.skeleton.main.layers.section.appearance.on.click.sidebar = { ], tags: "right", }, - no_page_margin: { - component: 'switch', - text: 'To the side! (No page margin)', - value: false - }, - sidebar_left: { - component: "switch", - text: "moveSidebarLeft", - }, + thumbnails_right: { component: "switch", text: "moveThumbnailsRight", From 0848ba38f690f1a08830f66e75c2188afd42caf1 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Wed, 22 Mar 2023 23:20:26 +0100 Subject: [PATCH 0872/1224] Update README.md --- .github/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/README.md b/.github/README.md index 1843e1b4f..4f8eb839e 100644 --- a/.github/README.md +++ b/.github/README.md @@ -7,11 +7,11 @@ - recommended by firefox
+ recommended by firefox - [](https://github.com/code-for-charity/ImprovedTube-for-YouTube/releases/latest "Last Github Release") -[`🧪`](https://github.com/code-for-charity/ImprovedTube-for-YouTube/archive/refs/heads/master.zip "Test Repo (latest.zip)") + [](https://github.com/code-for-charity/ImprovedTube-for-YouTube/releases/latest "Release.zip") + [`🧪`](https://github.com/code-for-charity/ImprovedTube-for-YouTube/archive/refs/heads/master.zip "Latest.zip")

Roadmap

From 4556fb073ed53954ab00e6e3d0985bdc752c1e98 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Wed, 22 Mar 2023 23:31:45 +0100 Subject: [PATCH 0873/1224] fix --- assets/satus/satus.js | 171 ------------------ .../appearance/sidebar/sidebar.css | 21 +-- .../youtube-features/player.js | 6 +- 3 files changed, 12 insertions(+), 186 deletions(-) diff --git a/assets/satus/satus.js b/assets/satus/satus.js index 165670eb6..b3a8f4f1a 100644 --- a/assets/satus/satus.js +++ b/assets/satus/satus.js @@ -1797,177 +1797,6 @@ satus.components.list = function(component, skeleton) { >>> COLOR PICKER --------------------------------------------------------------*/ -satus.components.colorPicker = function(component, skeleton) { - var component_content = component.createChildElement('div', 'content'), - component_value = component.createChildElement('span', 'value'); - - component.childrenContainer = component_content; - component.valueElement = component_value; - - component.className = 'satus-button'; - - component.addEventListener('click', function() { - var rgb = this.rgb, - hsl = satus.color.rgbToHsl(rgb), - s = hsl[1] / 100, - l = hsl[2] / 100; - - s *= l < .5 ? l : 1 - l; - - var v = l + s; - - s = 2 * s / (l + s); - - satus.render({ - component: 'modal', - variant: 'color-picker', - value: hsl, - parentElement: this, - - palette: { - component: 'div', - class: 'satus-color-picker__palette', - style: { - 'backgroundColor': 'hsl(' + hsl[0] + 'deg, 100%, 50%)' - }, - on: { - mousedown: function() { - var palette = this, - rect = this.getBoundingClientRect(), - cursor = this.children[0]; - - function mousemove(event) { - var hsl = palette.skeleton.parentSkeleton.storage.value, - x = event.clientX - rect.left, - y = event.clientY - rect.top, - s; - - x = Math.min(Math.max(x, 0), rect.width) / (rect.width / 100); - y = Math.min(Math.max(y, 0), rect.height) / (rect.height / 100); - - var v = 100 - y, - l = (2 - x / 100) * v / 2; - - hsl[1] = x * v / (l < 50 ? l * 2 : 200 - l * 2); - hsl[2] = l; - - cursor.style.left = x + '%'; - cursor.style.top = y + '%'; - - palette.nextSibling.children[0].style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; - - event.preventDefault(); - } - - function mouseup() { - window.removeEventListener('mousemove', mousemove); - window.removeEventListener('mouseup', mouseup); - } - - window.addEventListener('mousemove', mousemove); - window.addEventListener('mouseup', mouseup); - } - }, - - cursor: { - component: 'div', - class: 'satus-color-picker__cursor', - style: { - 'left': s * 100 + '%', - 'top': 100 - v * 100 + '%' - } - } - }, - section: { - component: 'section', - variant: 'color', - - color: { - component: 'div', - class: 'satus-color-picker__color', - style: { - 'backgroundColor': 'rgb(' + this.rgb.join(',') + ')' - } - }, - hue: { - component: 'slider', - class: 'satus-color-picker__hue', - storage: false, - value: hsl[0], - max: 360, - on: { - change: function() { - var modal = this.skeleton.parentSkeleton.parentSkeleton, - hsl = modal.storage.value; - - hsl[0] = this.values[0]; - - this.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; - this.parentSkeletonNode.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg, 100%, 50%)'; - } - } - } - }, - actions: { - component: 'section', - variant: 'actions', - - reset: { - component: 'button', - text: 'reset', - on: { - click: function() { - var modal = this.skeleton.parentSkeleton.parentSkeleton, - component = modal.parentSkeleton; - - component.rgb = component.skeleton.value; - - component.storage.value = component.rgb; - - component.valueElement.style.backgroundColor = 'rgb(' + component.rgb.join(',') + ')'; - - modal.rendered.close(); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function() { - this.skeleton.parentSkeleton.parentSkeleton.rendered.close(); - } - } - }, - ok: { - component: 'button', - text: 'OK', - on: { - click: function() { - var modal = this.skeleton.parentSkeleton.parentSkeleton, - component = modal.parentSkeleton; - - component.rgb = satus.color.hslToRgb(modal.storage.value); - - component.storage.value = component.rgb; - - component.valueElement.style.backgroundColor = 'rgb(' + component.rgb.join(',') + ')'; - - modal.rendered.close(); - } - } - } - } - }, this.baseProvider.layers[0]); - }); - - component.addEventListener('render', function() { - component.rgb = this.storage.value || [0, 100, 50]; - - component_value.style.backgroundColor = 'rgb(' + component.rgb.join(',') + ')'; - }); -}; - satus.components.colorPicker = function(component, skeleton) { component.childrenContainer = component.createChildElement('div', 'content'); diff --git a/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css b/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css index 79eb779bc..a7b5a523e 100644 --- a/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css +++ b/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css @@ -1,4 +1,6 @@ -/*-------------------------------------------------------------- +html {overflow-x: hidden !important; } /* WHY? doesnt this work with our [it-transcript='true'] */ + + /*-------------------------------------------------------------- >>> SIDEBAR ---------------------------------------------------------------- # Related videos @@ -28,15 +30,11 @@ div#secondary #playlist { /*-------------------------------------------------------------- # TRANSCRIPT --------------------------------------------------------------*/ - -html[data-page-type=video][it-transcript='true'][it-sidebar-left='true'] body { overflow-x: hidden !important; } - html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'], html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'] ytd-engagement-panel-section-list-renderer #content { max-height: 77vh !important; } - - html[data-page-type=video][it-transcript='true'][it-sidebar-left='transcript'] ytd-watch-flexy:not([fullscreen]) #columns - { display:flex !important; max-width:88% !important; } +html[data-page-type=video][it-transcript='true'][it-sidebar-left='transcript'] ytd-watch-flexy:not([fullscreen]) #columns + { display:flex !important; max-width:88% !important; } @media screen and (min-width: 1599px) { html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'], @@ -54,14 +52,13 @@ html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) td-engagement-panel-section-list-renderer { text-align: right !important; direction: ltr; } html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) #player - { left:-10px !important;} - + { left:-10px !important;} } /* ADS */ -html[it-player-ads*='block'] *[target-id*='engagement-panel-ads'] {display: none !important;} -html[it-player-ads*='block'] .ytd-ad-slot-renderer {display: none !important;} +html[it-player-ads="block_all"] *[target-id*='engagement-panel-ads'] {display: none !important;} +html[it-player-ads="block_all"] .ytd-ad-slot-renderer {display: none !important;} /*-------------------------------------------------------------- # RELATED VIDEOS @@ -116,7 +113,7 @@ html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullsc @media screen and (max-width: 2300px) and (min-width: 1250px) { html[data-page-type=video][it-no-page-margin='true'] ytd-browse > ytd-two-column-browse-results-renderer { width: auto !important; - max-width: auto !important; overflow-x: hidden; } + max-width: auto !important; overflow-x: hidden; } html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #secondary.ytd-watch-flexy { margin-right: calc (-12px - 0.4vw - 0.4vh) !important;} html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #below { diff --git a/content-scripts/website-context/youtube-features/player.js b/content-scripts/website-context/youtube-features/player.js index 477b3c173..0d3d2f034 100644 --- a/content-scripts/website-context/youtube-features/player.js +++ b/content-scripts/website-context/youtube-features/player.js @@ -388,14 +388,14 @@ ImprovedTube.playerAds = function (parent) { var button = parent.querySelector('.ytp-ad-skip-button.ytp-button'); if (button) { if (this.storage.player_ads === 'block_all') { - button.click(); querySelector("*[target-id*='engagement-panel-ads']").remove(); querySelector(".ytd-ad-slot-renderer").remove(); + button.click(); document.querySelector("*[target-id*='engagement-panel-ads']").remove(); document.querySelector(".ytd-ad-slot-renderer").remove(); } else if (this.storage.player_ads === 'subscribed_channels') { if (!parent.querySelector('#meta paper-button[subscribed]')) { - button.click(); querySelector("*[target-id*='engagement-panel-ads']").remove(); querySelector(".ytd-ad-slot-renderer").remove(); + button.click(); document.querySelector("*[target-id*='engagement-panel-ads']").remove(); document.querySelector(".ytd-ad-slot-renderer").remove(); } } else if (this.storage.player_ads === 'block_music') { if (ImprovedTube.elements.genre === 'music') { - button.click(); querySelector("*[target-id*='engagement-panel-ads']").remove(); querySelector(".ytd-ad-slot-renderer").remove(); + button.click(); document.querySelector("*[target-id*='engagement-panel-ads']").remove(); document.querySelector(".ytd-ad-slot-renderer").remove(); } } } From ab65d2d49c3d78a5d9116590241f3191eb27c2a5 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Wed, 22 Mar 2023 23:39:59 +0100 Subject: [PATCH 0874/1224] Create .gitmodules --- .gitmodules | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .gitmodules diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..85e0de653 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,5 @@ +[submodule "from ImprovedTube"] +path = assets/satus +url = https://github.com/code-for-charity/SATUS/blob/master/satus.js +url = https://github.com/code-for-charity/SATUS/blob/master/satus.css + \ No newline at end of file From ecc40a0106dd9ad91b445e4654b6cc7801b7a62f Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 23 Mar 2023 00:01:18 +0100 Subject: [PATCH 0875/1224] auto fetching satus repo --- .gitmodules | 4 +- assets/satus/satus.css | 2073 -------------------------- assets/satus/satus.js | 3202 ---------------------------------------- 3 files changed, 2 insertions(+), 5277 deletions(-) delete mode 100644 assets/satus/satus.css delete mode 100644 assets/satus/satus.js diff --git a/.gitmodules b/.gitmodules index 85e0de653..bf89d7435 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,5 +1,5 @@ [submodule "from ImprovedTube"] path = assets/satus -url = https://github.com/code-for-charity/SATUS/blob/master/satus.js -url = https://github.com/code-for-charity/SATUS/blob/master/satus.css +url = https://github.com/code-for-charity/SATUS +url = https://github.com/code-for-charity/SATUS \ No newline at end of file diff --git a/assets/satus/satus.css b/assets/satus/satus.css deleted file mode 100644 index 43cd38a5a..000000000 --- a/assets/satus/satus.css +++ /dev/null @@ -1,2073 +0,0 @@ -/*-------------------------------------------------------------- -# SCROLLBAR ---------------------------------------------------------------*/ - -:where([class^='satus'])::-webkit-scrollbar { - width: 4px; -} - -:where([class^='satus'])::-webkit-scrollbar:hover { - width: 8px; -} - -:where([class^='satus'])::-webkit-scrollbar-thumb { - background: rgba(var(--satus-light), .2); -} - -:where([class^='satus'])::-webkit-scrollbar-thumb:hover { - background: rgba(var(--satus-light), .3); -} -/*-------------------------------------------------------------- -# ANIMATIONS ---------------------------------------------------------------*/ - -@keyframes fadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} - -@keyframes fadeInLeft { - from { - opacity: 0; - transform: translateX(-100%); - } - to { - opacity: 1; - transform: translateX(0); - } -} - -@keyframes fadeInRight { - from { - opacity: 0; - transform: translateX(100%); - } - to { - opacity: 1; - transform: translateX(0); - } -} - -@keyframes fadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - } -} - -@keyframes fadeOutLeft { - from { - opacity: 1; - transform: translateX(0); - } - to { - opacity: 0; - transform: translateX(-50%); - } -} - -@keyframes fadeOutRight { - from { - opacity: 1; - transform: translateX(0); - } - to { - opacity: 0; - transform: translateX(50%); - } -} - -@keyframes zoomIn { - from { - transform: scale(.8); - opacity: 0; - } - to { - transform: scale(1); - opacity: 1; - } -} - -@keyframes zoomOut { - from { - transform: scale(1); - opacity: 1; - } - to { - transform: scale(.8); - opacity: 0; - } -} -/*-------------------------------------------------------------- ->>> THEMES ---------------------------------------------------------------*/ - -.satus-base { - --satus-light: 0, 20, 82; - --satus-primary: #ff4158; - --satus-alert-background--error: #501616; - --satus-alert-border--error: 1px solid #6f1f1f; - --satus-alert-foreground--error: #d77070; - --satus-alert-background--success: rgb(246, 180, 101, .32); - --satus-alert-border--success: 1px solid rgb(246, 180, 101, .6); - --satus-alert-foreground--success: rgb(184, 115, 30); - --satus-base-background: #f3f4f6; - --satus-base-foreground: #565e76; - --satus-checkbox-background: #f3f4f6; - --satus-checkbox-border: #dcdfe5; - --satus-checkbox-foreground: rgb(255, 255, 255, .96); - --satus-divider: rgba(var(--satus-light), .1); - --satus-header-background: #fff; - --satus-header-foreground: inherit; - --satus-header-shadow: 0 1px 0 #dcdee5; - --satus-layers-background: var(--satus-base-background); - --satus-layers-foreground: inherit; - --satus-section-background: #fff; - --satus-section-border: #dcdee5; - --satus-section-foreground: inherit; - --satus-sidebar-background: #fff; - --satus-sidebar-foreground: inherit; - --satus-sidebar-shadow: #dcdee5; - --satus-modal-foreground: inherit; - --satus-modal-background: #fff; - --satus-modal-shadow: 0 1px 4px #7d86a1; - --satus-tabs-background: rgba(var(--satus-light), .04); - --satus-tabs-foreground: #fff; - --satus-text-field-background: #edf0f2; - --satus-text-field-border: #dcdee5; - --satus-text-field-color: #7d8ba1; - --satus-text-field-selection: rgb(149, 166, 178, .35); - --satus-text-field-cursor: #fa0; - --satus-switch-track: #e1e4ea; - --satus-switch-track--checked: var(--satus-primary); - --satus-switch-thumb: #fff; - --satus-input-text-background: #e8e8e3; - --satus-input-text-border: #d6d6cd; - --satus-input-text-text: #848471; -} - -.satus-base[theme=dark] { - --satus-light: 255, 255, 255; - --satus-primary: #3691bf; - --satus-alert-background--error: #501616; - --satus-alert-border--error: 1px solid #6f1f1f; - --satus-alert-foreground--error: #d77070; - --satus-alert-background--success: #143648; - --satus-alert-border--success: 1px solid #1d4f67; - --satus-alert-foreground--success: #50a4ce; - --satus-base-background: #151528; - --satus-base-foreground: #fafafa; - --satus-header-background: #313172; - --satus-header-shadow: transparent; - --satus-section-background: #232343; - --satus-section-border: #232343; - --satus-modal-background: #313172; - --satus-modal-shadow: 0 1px 4px #22222f; - --satus-switch-track: #52527a; -} -/*-------------------------------------------------------------- ->>> NORMALIZE ---------------------------------------------------------------*/ - -:where([class^='satus']) { - box-sizing: border-box; -} - -:where([class^='satus'])[hidden]:not([hidden='false']) { - display: none; -} - -:where([class^='satus'])[transparent] { - opacity: 0; -} -/*-------------------------------------------------------------- ->>> MODAL ----------------------------------------------------------------- -# Container -# Scrim -# Surface -# Variants - # Vertical menu ---------------------------------------------------------------*/ - - -/*-------------------------------------------------------------- -# CONTAINER ---------------------------------------------------------------*/ - -.satus-modal { - position: fixed; - z-index: 9; - top: 0; - left: 0; - display: flex; - width: 100vw; - height: 100vh; - justify-content: center; - align-items: center; -} - - -/*-------------------------------------------------------------- -# SCRIM ---------------------------------------------------------------*/ - -.satus-modal__scrim { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - animation: fadeIn 150ms linear forwards; - opacity: 0; - background: rgba(0, 0, 0, .16); - backdrop-filter: blur(8px); -} - -.satus-modal--closing .satus-modal__scrim { - animation: fadeOut 70ms linear forwards; -} - - -/*-------------------------------------------------------------- -# SURFACE ---------------------------------------------------------------*/ - -.satus-modal__surface { - display: flex; - overflow-y: auto; - flex-direction: column; - box-sizing: border-box; - width: 95%; - min-width: 240px; - max-width: 560px; - max-height: 80%; - margin: 8px; - padding: 12px 16px; - transform: scale(.8); - animation: zoomIn 150ms linear forwards; - animation-delay: 20ms; - opacity: 0; - color: var(--satus-modal-foreground); - border-radius: 3px; - background-color: var(--satus-modal-background); - box-shadow: var(--satus-modal-shadow); -} - -.satus-modal--closing .satus-modal__surface { - animation: zoomOut 70ms linear forwards; -} - -.satus-modal__content { - margin: 6px 0 12px; -} - -.satus-section--actions { - justify-content: flex-end; -} -.satus-section--actions > *:not(:first-child) { - margin-left: 8px; -} - - -/*-------------------------------------------------------------- -# VARIANTS ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# VERTICAL MENU ---------------------------------------------------------------*/ - -.satus-modal--vertical-menu .satus-modal__surface { - position: absolute; - top: 8px; - right: 8px; - left: auto; - min-width: 180px; - max-width: 180px; - margin: 0; - padding: 8px 0; - transform-origin: right top; -} - -.satus-modal--vertical-menu .satus-modal__surface>[class^='satus']:where(:not(.satus-divider)) { - height: 36px; - padding: 0 16px; - border-radius: 0; -} - -.satus-modal--vertical-menu .satus-modal__surface>.satus-span { - font-size: 13px; - font-weight: 500; - margin: 6px 0; - padding: 0 12px; - height: auto; -} - -.satus-modal--vertical-menu .satus-modal__surface>.satus-tabs { - margin: 0 12px; - border-radius: 3px; - height: 26px; - padding: 0; -} - -.satus-modal--vertical-menu .satus-select svg, -.satus-modal--vertical-menu .satus-button svg { - margin: 0 14px 0 0; - opacity: .64; - flex: 0 0 18px; -} - -.satus-modal--vertical-menu .satus-button .satus-span { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - -.satus-modal--vertical-menu .satus-switch:hover { - cursor: pointer; - - background-color: rgba(var(--satus-light), .06); -} - -.satus-modal--vertical-menu .satus-switch:focus { - background-color: rgba(var(--satus-light), .08); -} -/*-------------------------------------------------------------- ->>> GRID ---------------------------------------------------------------*/ - -.satus-grid { - display: flex; - align-items: stretch; - height: 100%; - padding: 8px; -} -/*-------------------------------------------------------------- ->>> TEXT FIELD ----------------------------------------------------------------- -# Parts - # Container - # Input - # -# Syntax highlighting - # Regular expression ---------------------------------------------------------------*/ - -.satus-text-field { - display: flex; - - min-width: 240px; - height: 36px; - - color: var(--satus-text-field-foreground, inherit); - border: 1px solid var(--satus-text-field-border); - border-radius: 4px; - background: var(--satus-text-field-background); - - align-items: center; - justify-content: space-between; -} - -.satus-text-field__container { - position: relative; - - overflow: hidden; - - height: 100%; - - flex: 1; -} - -.satus-text-field[line-numbers=false] .satus-text-field__container { - margin-left: 8px; -} - -.satus-text-field__textarea, -.satus-text-field__input { - font: inherit; - - position: absolute; - z-index: 9; - top: 0; - left: 0; - - overflow: auto; - - width: 100%; - min-width: 0; - max-width: none; - height: 100%; - min-height: 0; - max-height: none; - margin: 0; - padding: 0 12px; - - white-space: pre; - - opacity: 0; - color: inherit; - border: none; - border-radius: 4px; - outline: none; - - appearance: none; - overflow-wrap: normal; -} - -.satus-text-field__display { - position: absolute; - top: 0; - left: 0; - - display: flex; - - width: 100%; - height: 100%; -} - -.satus-text-field__line-numbers { - padding: 0 12px 0 0; - - opacity: .5; -} - -.satus-text-field__line-numbers>span { - font-size: inherit; - - display: block; - - width: 100%; - - text-align: right; -} - -.satus-text-field__pre { - font: inherit; - - display: flex; - - margin: 0; -} - -.satus-text-field__hidden-value { - font: inherit; - - position: absolute; - - overflow: auto; - - white-space: pre; - pointer-events: none; - - opacity: 0; - - overflow-wrap: normal; -} - -.satus-text-field__selection { - position: absolute; - top: 0; - left: 0; - - display: none; - - width: 0; - height: 22px; - margin: 6px 12px; - - border: 1px solid var(--satus-text-field-selection); - border-radius: 3px; - background: var(--satus-text-field-selection); -} - -.satus-text-field__cursor { - position: absolute; - top: 0; - left: 0; - - display: none; - - width: 2px; - height: 22px; - margin: -3px 0 0; - - animation: blink 1s step-end 8; - - background: var(--satus-text-field-cursor); -} - -.satus-text-field__textarea:focus+.satus-text-field__display>.satus-text-field__cursor, -.satus-text-field__textarea:focus+.satus-text-field__display>.satus-text-field__selection:not([disabled]), -.satus-text-field__input:focus+.satus-text-field__display>.satus-text-field__cursor, -.satus-text-field__input:focus+.satus-text-field__display>.satus-text-field__selection:not([disabled]) { - display: block; -} - -@keyframes blink { - - from, - to { - opacity: 1; - } - - 50% { - opacity: 0; - } -} - - -/*-------------------------------------------------------------- -# MULTILINE: FALSE ---------------------------------------------------------------*/ - -.satus-text-field[multiline=false] .satus-text-field__pre { - align-items: center; -} - -.satus-text-field[multiline=false] .satus-text-field__cursor { - top: calc(50% - 9px); -} - - -/*-------------------------------------------------------------- -# SYNTAX HIGHLIGHTING ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# REGULAR EXPRESSION ---------------------------------------------------------------*/ - -.satus-text-field__pre>.group { - color: #47ff47; - background-color: rgb(71, 255, 71, .16); -} - -.satus-text-field__pre>.character-class { - color: #ffc247; - background-color: rgb(255, 170, 0, .16); -} - -.satus-text-field__pre>.quantifier { - color: #47c2ff; - background-color: rgb(71, 194, 255, .16); -} - -.satus-text-field__pre>.anchor { - color: #47c2ff; - background-color: rgb(71, 194, 255, .16); -} - -.satus-text-field__pre>.metasequence { - color: #47ff47; - background-color: rgb(71, 255, 71, .16); -} - -.satus-text-field__pre>.text { - color: #c4c4d4; - background-color: rgb(196, 196, 212, .16); -} -/*-------------------------------------------------------------- ->>> CHART ---------------------------------------------------------------*/ - -.satus-chart { - font-size: 90%; - - position: relative; - - height: 128px; - margin: 4px 12px; - - color: rgba(var(--satus-light), .32); - border: 1px dashed rgba(var(--satus-light), .2); - border-top: unset; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} - -.satus-chart__labels { - position: absolute; - top: 0; - left: 0; - - display: flex; - - width: 100%; - height: 100%; - - justify-content: space-between; - align-items: stretch; -} - -.satus-chart__section { - padding: 4px; - - flex: 1; -} - -.satus-chart__section:not(:last-child) { - border-right: 1px dashed rgba(var(--satus-light), .2); -} - - -.satus-chart__bars { - position: absolute; - top: 0; - left: 0; - - display: flex; - - width: 100%; - height: 100%; - - justify-content: space-between; - align-items: stretch; -} - -.satus-chart__bar { - display: flex; - flex-direction: column; - - margin: 0 1px; - - flex: 1; - align-items: center; - justify-content: flex-end; -} - -.satus-chart__piece { - width: 100%; -} - -.satus-chart__piece:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} -/*-------------------------------------------------------------- ->>> SELECT ---------------------------------------------------------------*/ - -.satus-select { - position: relative; - - display: flex; - - cursor: pointer; - - align-items: center; - justify-content: space-between; -} - -.satus-select:hover { - background-color: var(--satus-hover); -} - -.satus-select__content { - display: flex; - - flex: 2; - overflow: hidden; - - align-items: center; -} - -.satus-select svg { - width: 20px; - height: 18px; - margin: 0 14px 0 0; - - opacity: .64; -} - -.satus-select__content .satus-span { - overflow: hidden; - - text-overflow: ellipsis; -} - -.satus-select__value { - display: block; - overflow: hidden; - - flex: 1; - margin-left: 8px; - - text-align: right; - text-overflow: ellipsis; - - opacity: .64; -} - -.satus-select select { - font: inherit; - - position: absolute; - z-index: 1; - top: 0; - left: 0; - - width: 100%; - height: 100%; - margin: 0; - padding: inherit; - - cursor: inherit; - - opacity: 0; - border: none; - outline: none; - - appearance: none; -} - -.satus-select:hover { - cursor: pointer; - - background-color: rgba(var(--satus-light), .06); -} - -.satus-select:focus { - background-color: rgba(var(--satus-light), .08); -} - -.satus-select select::-webkit-scrollbar { - width: 4px; -} - -.satus-select select::-webkit-scrollbar:hover { - width: 8px; -} - -.satus-select select::-webkit-scrollbar-thumb { - background: rgba(0, 0, 0, .2); -} - -.satus-select select::-webkit-scrollbar-thumb:hover { - background: rgba(0, 0, 0, .3); -} - -.satus-select option { - color: var(--satus-select-text); - background: var(--satus-select-background); -} -/*-------------------------------------------------------------- ->>> DIVIDER ---------------------------------------------------------------*/ - -.satus-divider { - height: 1px; - margin: 16px 0 12px; - background: var(--satus-divider); -} -/*-------------------------------------------------------------- ->>> SECTION ----------------------------------------------------------------- -# Variants - # Align start - # Align end - # Card -# Media ---------------------------------------------------------------*/ - -.satus-section { - display: flex; - - flex-wrap: wrap; -} - - -/*-------------------------------------------------------------- -# ALIGN START ---------------------------------------------------------------*/ - -.satus-section--align-start { - align-items: center; -} - -.satus-section--align-start>*:not(:last-child) { - margin-right: 8px; -} - - -/*-------------------------------------------------------------- -# ALIGN END ---------------------------------------------------------------*/ - -.satus-section--align-end { - align-items: center; - justify-content: flex-end; -} - -.satus-section--align-end>*:not(:first-child) { - margin-left: 8px; -} - - -/*-------------------------------------------------------------- -# CARD ---------------------------------------------------------------*/ - -.satus-section--card { - flex-direction: column; - - max-width: 900px; - margin: 12px; - padding: 8px 0; - - border: 1px solid var(--satus-section-border); - border-radius: 3px; - background: var(--satus-section-background); - color: var(--satus-section-foreground); -} - -.satus-section--transparent-card { - max-width: 900px; - margin: 8px 12px; -} - -.satus-section--card[data-title], -.satus-section--transparent-card[data-title] -{ - position: relative; - - margin-top: 32px; -} - -.satus-section--card[data-title]::before, -.satus-section--transparent-card::before -{ - position: absolute; - top: -8px; - left: 0; - - content: attr(data-title); - transform: translateY(-100%); -} - - -.satus-section--transparent-card > [class^='satus'] { - width: 100%; -} - -.satus-section--card>[class^='satus']:not(.satus-list):not(.satus-section) { - display: flex; - - min-height: 48px; - padding: 8px 12px; - - transition: background-color .18s cubic-bezier(.25, .8, .5, 1); - text-align: left; - - border-radius: 0; - - align-items: center; -} - -.satus-section--card>[class^='satus']:not(.satus-list):not(.satus-section):not(.satus-chart) { - width: 100%; -} - -.satus-section--card>[class^='satus']:not(.satus-chart):not(.satus-list):not(.satus-span):hover { - background-color: rgba(var(--satus-light), .06); -} - -.satus-section--card>.satus-button { - justify-content: flex-start; -} - -.satus-section--card>.satus-button>svg, -.satus-section--card>.satus-select>svg -{ - width: 20px; - margin: 0 14px 0 0; - - color: var(--satus-primary); -} - -.satus-section--card>.satus-span { - display: flex; - - align-items: center; -} - -.satus-section--transparent { - background: unset; - border: unset; - padding: 0; - border-radius: unset; -} - - -/*-------------------------------------------------------------- -# MEDIA ---------------------------------------------------------------*/ - -@media (min-width: 901px) { - .satus-section--card, - .satus-section--transparent-card { - margin-left: auto; - margin-right: auto; - } -} -/*-------------------------------------------------------------- ->>> BASE ---------------------------------------------------------------*/ - -.satus-base { - display: flex; - flex-direction: column; - - width: 100%; - height: 100%; - - color: var(--satus-base-foreground); - background: var(--satus-base-background); -} -/*-------------------------------------------------------------- ->>> ALERT ----------------------------------------------------------------- -# Media ---------------------------------------------------------------*/ - -.satus-alert { - display: flex; - - max-width: 900px; - min-height: 48px; - margin: 12px; - padding: 8px 12px; - - border-radius: 3px; - - align-items: center; -} - -.satus-alert--error { - color: var(--satus-alert-foreground--error); - border: var(--satus-alert-border--error); - background: var(--satus-alert-background--error); -} - -.satus-alert--success { - color: var(--satus-alert-foreground--success); - border: var(--satus-alert-border--success); - background: var(--satus-alert-background--success); -} - - -/*-------------------------------------------------------------- -# MEDIA ---------------------------------------------------------------*/ - -@media (min-width: 901px) { - .satus-alert { - margin-right: auto; - margin-left: auto; - } -} -/*-------------------------------------------------------------- ->>> INPUT ---------------------------------------------------------------*/ - -.satus-input[type=text], -.satus-input[type=password] { - font: inherit; - font-size: 16px; - - box-sizing: border-box; - width: 100%; - height: 26px; - margin: 0; - margin: 8px 0; - padding: 0 8px; - - color: var(--satus-input-text-foreground, inherit); - border: none; - - - - - - border: 1px solid var(--satus-input-text-border); - border-radius: 4px; - outline: none; - background: none; - background-color: var(--satus-input-text-background); - - appearance: none; -} - -.satus-input--error[type=text], -.satus-input--error[type=password] { - outline: 2px solid rgba(255, 0, 0, .32); -} -/*-------------------------------------------------------------- ->>> MAIN ---------------------------------------------------------------*/ - -.satus-main { - display: flex; - - flex: 1 -} -/*-------------------------------------------------------------- ->>> SIDEBAR ---------------------------------------------------------------*/ - -.satus-sidebar { - z-index: 1; - display: flex; - flex-direction: column; - width: 56px; - padding: 12px 0; - color: var(--satus-sidebar-foreground); - background: var(--satus-sidebar-background); - box-shadow: 1px 0 0 var(--satus-sidebar-shadow) -} -/*-------------------------------------------------------------- ->>> LAYERS ---------------------------------------------------------------*/ - -.satus-layers { - position: relative; - - overflow: hidden; - - flex: 1; -} - -.satus-layers__layer { - position: absolute; - top: 0; - left: 0; - - overflow: auto; - - width: 100%; - height: 100%; - - color: var(--satus-layers-foreground); - background: var(--satus-layers-background); -} -/*-------------------------------------------------------------- ->>> LIST ---------------------------------------------------------------*/ - -.satus-list { - margin: 0; - - list-style: none; -} - -.satus-list__item { - display: flex; - - min-height: 48px; - padding: 0 16px; - - align-items: center; - justify-content: space-between; -} - -.satus-list__item>*:not(:first-child) { - margin-left: 8px; -} - -.satus-list__item>*:last-child { - font-size: 92%; - - text-align: right; - - opacity: .64; -} -/*-------------------------------------------------------------- ->>> COLOR PICKER: ----------------------------------------------------------------- -# Button -# Modal ---------------------------------------------------------------*/ - - -/*-------------------------------------------------------------- -# BUTTON ---------------------------------------------------------------*/ - -.satus-color-picker { - font-size: inherit; - - position: relative; - - display: flex; - - box-sizing: border-box; - margin: 0; - - cursor: pointer; - - color: inherit; - border: none; - outline: none; - background-color: var(--satus-theme-button); - - justify-content: space-between; - -webkit-tap-highlight-color: transparent; - align-items: center; - -webkit-appearance: none; -} - -.satus-color-picker__value { - width: 22px; - height: 22px; - - border: 2px solid rgba(0, 0, 0, .16); - border-radius: 50%; -} - - -/*-------------------------------------------------------------- -# MODAL ---------------------------------------------------------------*/ - -.satus-modal--color-picker .satus-modal__surface { - padding: 8px; -} - -.satus-color-picker__palette { - position: relative; - - overflow: hidden; - - width: 100%; - height: 256px; - margin: 0 0 4px; - - border-radius: 5px; - background-color: #f00; -} - -.satus-color-picker__palette:before { - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - - content: ''; - - background-image: linear-gradient(0deg, black, transparent), linear-gradient(90deg, white, transparent); -} - -.satus-color-picker__cursor { - position: absolute; - - width: 5px; - height: 5px; - - transform: translate(-50%, -50%); - pointer-events: none; - - border: 1px solid #fff; - border-radius: 50%; - box-shadow: 0 0 0 1px #000; -} - -.satus-modal--color-picker .satus-modal__surface .satus-section--color { - margin: 8px 4px; - - align-items: center; -} - -.satus-color-picker__color { - width: 32px; - height: 32px; - margin: 0 16px 0 0; - - border: 2px solid rgba(0, 0, 0, .16); - border-radius: 50%; - background: #f00; -} - -.satus-slider.satus-color-picker__hue { - padding: 0; - - flex: 1; -} - -.satus-color-picker__hue .satus-slider__track-container { - height: 16px; - margin: 0; - - border-radius: 4px; - background-image: linear-gradient(90deg, #f00, #ff2a00, #f50, #ff7f00, #fa0, #ffd400, #ff0, #d4ff00, #af0, #80ff00, #5f0, #2bff00, #0f0, #00ff2b, #0f5, #00ff80, #0fa, #00ffd5, #0ff, #00d4ff, #0af, #007fff, #05f, #002bff, #00f, #2a00ff, #50f, #7f00ff, #a0f, #d400ff, #f0f, #ff00d4, #f0a, #ff0080, #f05, #ff002b, #f00); -} - -.satus-color-picker__hue .satus-slider__track-container::before { - display: none; -} - -.satus-color-picker__hue .satus-slider__track { - background: transparent; -} - -.satus-color-picker__hue .satus-slider__track::after { - width: 16px; - height: 16px; - - background: #fff; - box-shadow: 0 0 4px rgb(0, 0, 0, .64); -} -/*-------------------------------------------------------------- ->>> SPAN ---------------------------------------------------------------*/ - -.satus-span--title { - font-weight: 500; - overflow: hidden; - - white-space: nowrap; - text-overflow: ellipsis; - - flex: 1; -} -/*-------------------------------------------------------------- ->>> BUTTON ----------------------------------------------------------------- -# Base -# Basic -# Icon ---------------------------------------------------------------*/ - - -/*-------------------------------------------------------------- -# BASE ---------------------------------------------------------------*/ - -.satus-button { - font: inherit; - - position: relative; - - display: inline-flex; - overflow: hidden; - - height: 36px; - padding: 8px; - - transition: background-color .3s cubic-bezier(.25, .8, .5, 1); - - color: inherit; - border: none; - border-radius: 6px; - outline: none; - background: transparent; - - appearance: none; - align-items: center; -} - -.satus-button:hover { - cursor: pointer; - - background-color: rgba(var(--satus-light), .06); -} - -.satus-button:focus { - background-color: rgba(var(--satus-light), .08); -} - -.satus-button svg { - width: 100%; - max-width: 24px; - height: 100%; - max-height: 24px; -} - - -/*-------------------------------------------------------------- -# BASIC ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# ICON ---------------------------------------------------------------*/ - -.satus-button--icon { - width: 40px; - height: 40px; - - border-radius: 50%; -} - -.satus-button--icon svg { - width: 24px; - height: 24px; -} -/*-------------------------------------------------------------- ->>> HEADER ---------------------------------------------------------------*/ - -.satus-header { - z-index: 1; - - display: flex; - - height: 56px; - padding: 0 12px; - - color: var(--satus-header-foreground); - background: var(--satus-header-background); - box-shadow: var(--satus-header-shadow); - - justify-content: space-between; - align-items: center; -} -/*-------------------------------------------------------------- ->>> RADIO ---------------------------------------------------------------*/ - -.satus-radio { - position: relative; - display: flex; -} - -.satus-radio__input { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - opacity: 0; - margin: 0; - z-index: 9; -} - -.satus-radio__content { - flex: 1; - padding: 0 12px; -} - -.satus-radio__i { - width: 16px; - height: 16px; - border: 1px solid rgba(var(--satus-light),.64); - border-radius: 50%; - transition: 200ms; -} - -.satus-radio__input + .satus-radio__i::before { - width: 8px; - height: 8px; - margin: 3px; - border-radius: 50%; - background: var(--satus-primary); - content: ''; - display: block; - transform: scale(0); - transition: 200ms; -} - -.satus-radio__input:checked + .satus-radio__i { - border-color: var(--satus-primary); -} - -.satus-radio__input:checked + .satus-radio__i::before { - background: var(--satus-primary); - transform: scale(1); -} -/*-------------------------------------------------------------- ->>> SLIDER ---------------------------------------------------------------*/ - -.satus-slider { - display: flex; - - flex-wrap: wrap; -} - -.satus-slider__content { - width: 100%; - display: flex; - justify-content: space-between; -} - -.satus-slider__input[type='text'] { - appearance: none; - background: transparent; - border: none; - color: inherit; - font: inherit; - padding: 0; - margin: 0; - outline: none; - width: 64px; - text-align: right; -} - -.satus-slider__track-container { - position: relative; - - width: 100%; - height: 20px; - margin: 10px 0 -2px; -} - -.satus-slider__track-container::before { - position: absolute; - top: calc(50% - 1px); - left: 0; - - width: 100%; - height: 2px; - - content: ''; - - opacity: .24; - background: var(--satus-primary); -} - -.satus-slider__input[type='range'] { - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - margin: 0; - - opacity: 0; -} - -.satus-slider__track { - position: absolute; - top: calc(50% - 1px); - left: 0; - - width: 0; - height: 2px; - - background: var(--satus-primary); - pointer-events: none; -} - -.satus-slider__track::before { - position: absolute; - top: 50%; - right: 0; - transform: translate(50%, -50%); - display: block; - width: 16px; - height: 16px; - content: ''; - transition: width 200ms, height 200ms, opacity 200ms; - opacity: 0; - border-radius: 50%; - background: var(--satus-primary); -} - -.satus-slider__input:focus + .satus-slider__track::before { - width: 24px; - height: 24px; - opacity: .16; -} - -.satus-slider__input:active + .satus-slider__track::before { - width: 26px; - height: 26px; - opacity: .16; -} - -.satus-slider__track::after { - position: absolute; - top: 50%; - right: 0; - transform: translate(50%, -50%); - - width: 10px; - height: 10px; - - content: ''; - - border-radius: 50%; - background: var(--satus-primary); - pointer-events: none; - transition: width 200ms, height 200ms, opacity 200ms; -} - -.satus-slider__input:active + .satus-slider__track::after -{ - width: 12px; - height: 12px; -} - - - - - -.satus-slider--row { - flex-wrap: nowrap; - justify-content: space-between; -} - -.satus-slider--row .satus-slider__track-container { - margin: 0 0 -2px 12px; - max-width: 50%; -} -/*-------------------------------------------------------------- ->>> TABS ---------------------------------------------------------------*/ - -.satus-tabs { - position: relative; - - display: flex; - - border: 2px solid var(--satus-tabs-background); - border-radius: 4px; - background: var(--satus-tabs-background); -} - -.satus-tabs::before { - position: absolute; - top: 0; - left: calc(calc(100% / var(--satus-tabs-count)) * var(--satus-tabs-current)); - - width: calc(100% / var(--satus-tabs-count)); - height: 100%; - - content: ''; - transition: left .25s; - - border-radius: 3px; - background: var(--satus-tabs-foreground); -} - -.satus-tabs__button { - font: inherit; - - position: relative; - z-index: 1; - - overflow: hidden; - - margin: 0; - padding: 0 8px; - - text-overflow: ellipsis; - - color: inherit; - border: none; - border-radius: 3px; - outline: none; - background: transparent; - - flex: 1; - appearance: none; -} -/*-------------------------------------------------------------- ->>> SHORTCUT: ----------------------------------------------------------------- -# ---------------------------------------------------------------*/ - -.satus-shortcut__value { - font-size: 11px; - - display: flex; - - margin-left: 16px; - - text-transform: uppercase; - - align-items: center; - flex: 1; - justify-content: flex-end; -} - -.satus-shortcut__actions { - display: flex; - - justify-content: flex-end; -} - -.satus-shortcut__actions .satus-button { - height: 32px; - margin: 8px 4px 0; - - border-radius: 8px; - background: rgba(0, 0, 0, .15); -} - -.satus-shortcut__actions .satus-button:hover { - background: rgba(0, 0, 0, .25); -} - -.satus-shortcut__primary { - display: flex; - - height: 64px; - margin: 0 0 12px; - padding: 16px; - - border-radius: 3px; - background: rgba(0, 0, 0, .16); - - align-items: center; -} - -.satus-shortcut__key { - display: flex; - - min-width: 32px; - height: 32px; - padding: 4px 8px; - - - border-radius: 4px; - background: #fff; - box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); - - align-items: center; - justify-content: center; -} - -.satus-shortcut__value>.satus-shortcut__key { - font-size: 12px; - - min-width: 24px; - height: 24px; -} - -.satus-shortcut__plus { - position: relative; - - width: 12px; - height: 12px; - margin: 8px; -} - -.satus-shortcut__plus::before { - position: absolute; - top: 0; - left: 5px; - - width: 2px; - height: 12px; - - content: ''; - - background-color: #aaa; -} - -.satus-shortcut__plus::after { - position: absolute; - top: 5px; - left: 0; - - width: 12px; - height: 2px; - - content: ''; - - background-color: #aaa; -} - -.satus-shortcut__mouse { - position: relative; - - display: flex; - - width: 28px; - height: 36px; - - border-radius: 50%; - border-top-left-radius: 12px; - border-top-right-radius: 12px; - background: #fff; - box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); -} - -.satus-shortcut__value>.satus-shortcut__mouse { - width: 22px; - height: 28px; -} - -.satus-shortcut__mouse>div { - position: absolute; - top: 0; - left: calc(50% - 1px); - - width: 2px; - height: 11px; - - border-radius: 2px; - background: #ccc; -} - -.satus-shortcut__mouse::before { - position: absolute; - top: -16%; - right: 14%; - - width: 2px; - height: 60%; - - content: ''; - - background: #f96754; -} - -.satus-shortcut__mouse.false::before { - top: -6%; -} - -.satus-shortcut__mouse.false::after { - position: absolute; - top: -20%; - right: calc(14% - 4px); - - width: 0; - height: 0; - - content: ''; - - border-right: 5px solid transparent; - border-bottom: 8px solid #f96754; - border-left: 5px solid transparent; -} - -.satus-shortcut__mouse.true::after { - position: absolute; - top: 40%; - right: calc(14% - 4px); - - width: 0; - height: 0; - - content: ''; - - border-top: 8px solid #f96754; - border-right: 5px solid transparent; - border-left: 5px solid transparent; -} - -.satus-shortcut__mouse.click::before { - position: absolute; - top: 0; - left: -1px; - - width: 10px; - height: 10px; - - content: ''; - - border-radius: 50%; - background: #f96754; -} - -.satus-shortcut__mouse.middle::before { - position: absolute; - z-index: 1; - top: 0; - left: 50%; - - width: 10px; - height: 10px; - - content: ''; - transform: translateX(-50%); - - border-radius: 50%; - background: #f96754; -} - -.satus-shortcut__mouse.context::before { - position: absolute; - top: 0; - left: 15px; - - width: 10px; - height: 10px; - - content: ''; - - border-radius: 50%; - background: #f96754; -} - -.satus-section_shortcut { - width: 100%; - margin: 8px 0 0; - - justify-content: flex-end; -} - -.satus-button_shortcut { - font-weight: 500; - - overflow: hidden; - - height: 28px; - min-height: 28px; - margin-right: 2px; - padding: 4px 8px; - - text-transform: uppercase; - - color: #f96754; - border-radius: 4px; -} -/*-------------------------------------------------------------- ->>> CHECKBOX ---------------------------------------------------------------*/ - -.satus-checkbox { - position: relative; - - display: flex; - - cursor: pointer; - - align-items: center; -} - -.satus-checkbox__input { - position: absolute; - top: 0; - left: 0; - - width: 100%; - height: 100%; - margin: 0; - padding: 0; - - opacity: 0; - border: none; - - appearance: none; -} - -.satus-checkbox__checkmark { - position: relative; - - display: flex; - - width: 16px; - min-width: 16px; - height: 16px; - min-height: 16px; - margin: 0 12px 0 0; - - content: ''; - - border: 1px solid var(--satus-checkbox-border); - border-radius: 3px; - background: var(--satus-checkbox-background); -} - -.satus-checkbox[data-value=true] .satus-checkbox__checkmark { - border-color: var(--satus-primary); - background: var(--satus-primary); -} - -.satus-checkbox[data-value=true] .satus-checkbox__checkmark::before { - position: absolute; - top: 3px; - left: 2px; - - width: 8px; - height: 4px; - - content: ''; - transform: rotate(-45deg); - - border: 2px solid var(--satus-checkbox-foreground); - border-top: none; - border-right: none; -} -/*-------------------------------------------------------------- ->>> SWITCH ----------------------------------------------------------------- -# Container -# Track -# Thumb ---------------------------------------------------------------*/ - - -/*-------------------------------------------------------------- -# CONTAINER ---------------------------------------------------------------*/ - -.satus-switch { - font: inherit; - - display: flex; - - transition: background-color 75ms; - - color: inherit; - border: none; - outline: none; - background-color: transparent; - - justify-content: space-between; - align-items: center; -} - -.satus-switch:hover { - cursor: pointer; -} - -.satus-switch__content { - display: flex; - - align-items: center; -} - -.satus-switch__content>svg { - width: 20px; - height: 18px; - margin: 0 14px 0 0; - - opacity: .64; -} - - -/*-------------------------------------------------------------- -# TRACK ---------------------------------------------------------------*/ - -.satus-switch>i { - width: 32px; - height: 18px; - - transition: background-color 150ms; - - border-radius: 18px; - background-color: var(--satus-switch-track); - - flex: 0 0 32px; -} - -.satus-section--card .satus-switch>i { - margin-left: 16px; -} - -.satus-switch[data-value='true']>i { - background-color: var(--satus-switch-track--checked); -} - - -/*-------------------------------------------------------------- -# THUMB ---------------------------------------------------------------*/ - -.satus-switch>i::before { - display: block; - - width: 14px; - height: 14px; - margin: 2px; - - content: ''; - transition: transform 150ms cubic-bezier(.4, 0, .2, 1); - - border-radius: 50%; - background-color: var(--satus-switch-thumb); - - will-change: transform; -} - -.satus-switch[data-value='true']>i::before { - transform: translateX(14px); -} -/*-------------------------------------------------------------- ->>> CONTEXT MENU ---------------------------------------------------------------*/ - -.satus-modal--contextmenu .satus-modal__scrim { - visibility: visible; - - transform: none; - animation: none; - - opacity: 1; - background: none; - - backdrop-filter: none; -} - -.satus-modal--contextmenu .satus-modal__surface { - position: absolute; - - visibility: visible; - - min-width: 200px; - max-width: 200px; - margin: 0; - padding: 4px 0; - - transform: none; - animation: none; - - opacity: 1; - border-radius: 4px; - box-shadow: 0 0 0 1px rgba(var(--satus-light), .1); -} - -.satus-modal--contextmenu .satus-modal__surface>* { - display: flex; - - height: 32px; - padding: 0 16px; - - align-items: center; -} - -.satus-modal--contextmenu .satus-modal__surface .satus-button svg { - width: 20px; - height: 18px; - margin: 0 14px 0 0; - - opacity: .75; - - fill: none; - stroke: var(--satus-primary); - flex: 0 0 20px; -} - -.satus-modal--contextmenu .satus-modal__surface .satus-button .satus-span { - overflow: hidden; - - white-space: nowrap; - text-overflow: ellipsis; -} -/*-------------------------------------------------------------- ->>> SORTABLE ---------------------------------------------------------------*/ - -.satus-sortable__chosen { - color: var(--satus-sortable-text) !important; - background-color: var(--satus-sortable-background) !important; -} - -.satus-sortable__ghost { - position: fixed !important; - z-index: 999 !important; - top: 0 !important; - left: 0 !important; - - pointer-events: none !important; - - opacity: .8 !important; - box-shadow: 0 1px 3px rgb(0, 0, 0, .2), 0 4px 8px rgb(0, 0, 0, .1), inset 0 0 0 1px rgb(0, 0, 0, .16) !important; - - will-change: transform !important; -} diff --git a/assets/satus/satus.js b/assets/satus/satus.js deleted file mode 100644 index b3a8f4f1a..000000000 --- a/assets/satus/satus.js +++ /dev/null @@ -1,3202 +0,0 @@ -/*-------------------------------------------------------------- ->>> CORE ----------------------------------------------------------------- -# Global variable -# Animations duration -# Append -# Attr -# Camelize -# Snakelize -# Class -# Create element -# CSS -# Empty -# Element index -# Events -# Get property -# Is -# On -# Render -# Sort -# Storage - # Clear - # Get - # Import - # Set - # Remove - # On changed -# Localization -# Log -# Text ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# GLOBAL VARIABLE ---------------------------------------------------------------*/ - -var satus = { - components: {}, - events: { - data: {} - }, - locale: { - data: {} - }, - storage: { - data: {}, - type: 'extension' - } -}; - - -/*-------------------------------------------------------------- -# ANIMATION DURATION ---------------------------------------------------------------*/ - -satus.getAnimationDuration = function(element) { - return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; -}; - - -/*-------------------------------------------------------------- -# APPEND ---------------------------------------------------------------*/ - -satus.append = function(child, parent) { - (parent || document.body).appendChild(child); -}; - - -/*-------------------------------------------------------------- -# ATTR ---------------------------------------------------------------*/ - -satus.attr = function(element, attributes) { - if (attributes) { - for (var name in attributes) { - var value = attributes[name]; - - if (satus.isFunction(value)) { - value = value(); - } - - if (element.namespaceURI) { - if (value === false) { - element.removeAttributeNS(null, name); - } else { - element.setAttributeNS(null, name, value); - } - } else { - if (value === false) { - element.removeAttribute(name); - } else { - element.setAttribute(name, value); - } - } - } - } -}; - - -/*-------------------------------------------------------------- -# CAMELIZE ---------------------------------------------------------------*/ - -satus.camelize = function(string) { - var result = ''; - - for (var i = 0, l = string.length; i < l; i++) { - var character = string[i]; - - if (character === '_' || character === '-') { - i++; - - result += string[i].toUpperCase(); - } else { - result += character; - } - } - - return result; -}; - - -/*-------------------------------------------------------------- -# SNAKELIZE ---------------------------------------------------------------*/ - -satus.snakelize = function(string) { - return string.replace(/([A-Z])/g, '-$1').toLowerCase(); -}; - - -/*-------------------------------------------------------------- -# CLASS ---------------------------------------------------------------*/ - -satus.class = function(element, className) { - if (className) { - element.classList.add(className); - } -}; - - -/*-------------------------------------------------------------- -# CLONE ---------------------------------------------------------------*/ - -satus.clone = function(item) { - var clone = item.cloneNode(true), - parent_css = window.getComputedStyle(item.parentNode), - css = window.getComputedStyle(item), - style = ''; - - for (var i = 0, l = css.length; i < l; i++) { - var property = css[i], - value = css.getPropertyValue(property); - - if (property === 'background-color') { - value = parent_css.getPropertyValue('background-color'); - } - - if (['box-shadow', 'left', 'top', 'bottom', 'right', 'opacity'].indexOf(property) === -1) { - style += property + ':' + value + ';'; - } - } - - - clone.setAttribute('style', style); - - return clone; -}; - - -/*-------------------------------------------------------------- -# CREATE ELEMENT ---------------------------------------------------------------*/ - -satus.createElement = function(tagName, componentName, namespaceURI) { - var camelizedTagName = this.camelize(tagName), - className = 'satus-' + (componentName || tagName), - element, - match = className.match(/__[^__]+/g); - - if (!namespaceURI) { - if (tagName === 'svg') { - namespaceURI = 'http://www.w3.org/2000/svg'; - } - } - - if (namespaceURI) { - element = document.createElementNS(namespaceURI, tagName); - } else if (this.components[camelizedTagName]) { - element = document.createElement('div'); - } else { - element = document.createElement(tagName); - } - - if (match && match.length > 1) { - className = className.slice(0, className.indexOf('__')) + match[match.length - 1]; - } - - element.componentName = componentName; - element.className = className; - - element.createChildElement = function(tagName, componentName, namespaceURI) { - var element = satus.createElement(tagName, this.componentName + '__' + (componentName || tagName), namespaceURI); - - if (this.baseProvider) { - element.baseProvider = this.baseProvider; - } - - if (this.layersProvider) { - element.layersProvider = this.layersProvider; - } - - this.appendChild(element); - - return element; - }; - - return element; -}; - - -/*-------------------------------------------------------------- -# CSS ---------------------------------------------------------------*/ - -satus.css = function(element, property) { - return window.getComputedStyle(element).getPropertyValue(property); -}; - - -/*-------------------------------------------------------------- -# CRYPT ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# DECRYPTION ---------------------------------------------------------------*/ - -satus.decrypt = async function(text, password) { - var iv = text.slice(0, 24).match(/.{2}/g).map(byte => parseInt(byte, 16)), - algorithm = { - name: 'AES-GCM', - iv: new Uint8Array(iv) - }; - - try { - var data = new TextDecoder().decode(await crypto.subtle.decrypt( - algorithm, - await crypto.subtle.importKey( - 'raw', - await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)), - algorithm, - false, ['decrypt'] - ), - new Uint8Array(atob(text.slice(24)).match(/[\s\S]/g).map(ch => ch.charCodeAt(0))) - )); - } catch (err) { - return false; - } - - return data; -}; - - -/*-------------------------------------------------------------- -# ENCRYPTION ---------------------------------------------------------------*/ - -satus.encrypt = async function(text, password) { - var iv = crypto.getRandomValues(new Uint8Array(12)), - algorithm = { - name: 'AES-GCM', - iv: iv - }; - - return Array.from(iv).map(b => ('00' + b.toString(16)).slice(-2)).join('') + btoa(Array.from(new Uint8Array(await crypto.subtle.encrypt( - algorithm, - await crypto.subtle.importKey('raw', await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)), algorithm, false, ['encrypt']), - new TextEncoder().encode(text) - ))).map(byte => String.fromCharCode(byte)).join('')); -}; - - -/*-------------------------------------------------------------- -# DATA ---------------------------------------------------------------*/ - -satus.data = function(element, data) { - if (data) { - for (var key in data) { - var value = data[key]; - - if (satus.isFunction(value)) { - value = value(); - } - - element.dataset[key] = value; - } - } -}; - - -/*-------------------------------------------------------------- -# EMPTY ---------------------------------------------------------------*/ - -satus.empty = function(element, exclude = []) { - for (var i = element.childNodes.length - 1; i > -1; i--) { - var child = element.childNodes[i]; - - if (exclude.indexOf(child) === -1) { - child.remove(); - } - } -}; - - -/*-------------------------------------------------------------- -# ELEMENT INDEX ---------------------------------------------------------------*/ - -satus.elementIndex = function(element) { - return Array.prototype.slice.call(element.parentNode.children).indexOf(element); -}; - - -/*-------------------------------------------------------------- -# EVENTS ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# ON ---------------------------------------------------------------*/ - -satus.events.on = function(type, handler) { - if (!this.data[type]) { - this.data[type] = []; - } - - this.data[type].push(handler); -}; - - -/*-------------------------------------------------------------- -# TRIGGER ---------------------------------------------------------------*/ - -satus.events.trigger = function(type, data) { - var handlers = this.data[type]; - - if (handlers) { - for (var i = 0, l = handlers.length; i < l; i++) { - try {handlers[i](data);} - catch(err){console.log(err);} - } - } -}; - - -/*-------------------------------------------------------------- -# FETCH ---------------------------------------------------------------*/ - -satus.fetch = function(url, success, error, type) { - fetch(url).then(function(response) { - if (response.ok) { - response[type || 'json']().then(success); - } else { - error(); - } - }).catch(function() { - error(success); - }); -}; - - -/*-------------------------------------------------------------- -# GET PROPERTY ---------------------------------------------------------------*/ - -satus.getProperty = function(object, string) { - var properties = string.split('.'); - - for (var i = 0, l = properties.length; i < l; i++) { - var property = properties[i]; - - console.log(object); - - if (object = object[property]) { - if (i === l - 1) { - return object; - } - } else { - return false; - } - } -}; - - -/*-------------------------------------------------------------- -# INDEX OF ---------------------------------------------------------------*/ - -satus.indexOf = function(child, parent) { - var index = 0; - - if (satus.isArray(parent)) { - index = parent.indexOf(child); - } else { - while ((child = child.previousElementSibling)) { - index++; - } - } - - return index; -}; - - -/*-------------------------------------------------------------- -# TO INDEX ---------------------------------------------------------------*/ - -satus.toIndex = function(index, child, parent) { - if (satus.isArray(parent)) { - parent.splice(index, 0, parent.splice(satus.indexOf(child, parent), 1)[0]) - } -}; - - -/*-------------------------------------------------------------- -# ISSET ---------------------------------------------------------------*/ - -satus.isset = function(target, is_object) { - if (is_object === true) { - var keys = target.split('.').filter(function(value) { - return value != ''; - }); - - for (var i = 0, l = keys.length; i < l; i++) { - if (satus.isset(target[keys[i]])) { - target = target[keys[i]]; - } else { - return undefined; - } - } - - return target; - } else { - if (target === null || target === undefined) { - return false; - } - } - - return true; -}; - - -/*-------------------------------------------------------------- -# IS ---------------------------------------------------------------*/ - -satus.isArray = function(target) { - if (Array.isArray(target)) { - return true; - } else { - return false; - } -}; - -satus.isBoolean = function(target) { - return target === false || target === true; -}; - -satus.isElement = function(target) { - return target instanceof Element || target instanceof HTMLDocument; -}; - -satus.isFunction = function(target) { - return typeof target === 'function'; -}; - -satus.isNodeList = function(target) { - return target instanceof NodeList; -}; - -satus.isNumber = function(target) { - if (typeof target === 'number' && isNaN(target) === false) { - return true; - } else { - return false; - } -}; - -satus.isObject = function(target) { - return target instanceof Object && target !== null; -}; - -satus.isString = function(target) { - if (typeof target === 'string') { - return true; - } else { - return false; - } -}; - - -/*-------------------------------------------------------------- -# ON ---------------------------------------------------------------*/ - -satus.on = function(element, listeners) { - if (listeners) { - for (var type in listeners) { - var listener = listeners[type]; - - if (type === 'selectionchange') { - element = document; - } - - if (satus.isFunction(listener)) { - element.addEventListener(type, listener); - } else if (satus.isArray(listener) || satus.isObject(listener)) { - element.addEventListener(type, function(event) { - var target = this.skeleton.on[event.type], - layers = this.layersProvider; - - target.parentSkeleton = this.skeleton; - target.parentElement = this; - - if (!layers && this.baseProvider.layers.length > 0) { - layers = this.baseProvider.layers[0]; - } - - if (target.prepend === true) { - satus.prepend(target, this.parentNode); - } else if (layers && target.component !== 'modal') { - layers.open(target); - } else { - satus.render(target, this.baseProvider); - } - }); - } else if (satus.isString(listener)) { - element.addEventListener(type, function() { - var match = this.skeleton.on[event.type].match(/(["'`].+["'`]|[^.()]+)/g), - target = this.baseProvider; - - for (var i = 0, l = match.length; i < l; i++) { - var key = match[i]; - - if (target.skeleton[key]) { - target = target.skeleton[key]; - } else { - if (typeof target[key] === 'function') { - target[key](); - } else { - target = target[key]; - } - } - - if (target.rendered) { - target = target.rendered; - } - } - }); - } - } - } -}; - - -/*-------------------------------------------------------------- -# PARENTIFY ---------------------------------------------------------------*/ - -satus.parentify = function(parentObject, exclude) { - for (var key in parentObject) { - if (exclude.indexOf(key) === -1) { - var child = parentObject[key]; - - if (satus.isset(child)) { - child.parentObject = parentObject; - - if ( - satus.isObject(child) && - !satus.isArray(child) && - !satus.isElement(child) && - !satus.isFunction(child) - ) { - this.parentify(child, exclude); - } - } - } - } -}; - - -/*-------------------------------------------------------------- -# PREPEND ---------------------------------------------------------------*/ - -satus.prepend = function(child, parent) { - if (this.isElement(child)) { - parent.prepend(child); - } else if (this.isObject(child)) { - this.render(child, parent, undefined, undefined, true); - } -}; - - -/*-------------------------------------------------------------- -# PROPERTIES ---------------------------------------------------------------*/ - -satus.properties = function(element, properties) { - if (properties) { - for (var key in properties) { - var property = properties[key]; - - if (['placeholder', 'title'].indexOf(key) !== -1) { - property = satus.locale.get(property); - } - - element[key] = property; - } - } -}; - - -/*-------------------------------------------------------------- -# REMOVE ---------------------------------------------------------------*/ - -satus.remove = function(child, parent) { - if (satus.isArray(parent)) { - parent.splice(satus.indexOf(child, parent), 1); - } -}; - - -/*-------------------------------------------------------------- -# RENDER ---------------------------------------------------------------*/ - -satus.render = function(skeleton, container, property, childrenOnly, prepend, skip_children) { - var element; - - if (skeleton.component && childrenOnly !== true) { - var tagName = skeleton.component, - camelizedTagName = this.camelize(tagName), - namespaceURI = skeleton.namespaceURI; - - if (!namespaceURI) { - if (tagName === 'svg') { - namespaceURI = 'http://www.w3.org/2000/svg'; - } else if (skeleton.parentSkeleton && skeleton.parentSkeleton.namespaceURI) { - namespaceURI = skeleton.parentSkeleton.namespaceURI; - } - - skeleton.namespaceURI = namespaceURI; - } - - element = this.createElement(tagName, tagName, namespaceURI); - - skeleton.rendered = element; - element.skeleton = skeleton; - element.childrenContainer = element; - element.componentName = tagName; - - if (skeleton.variant) { - var variant = skeleton.variant; - - if (this.isFunction(variant)) { - variant = variant(); - } - - if (satus.isArray(variant)) { - for (var i = 0, l = variant.length; i < l; i++) { - element.className += ' satus-' + tagName + '--' + variant[i]; - } - } else { - element.className += ' satus-' + tagName + '--' + variant; - } - } - - if (skeleton.id) { - element.id = skeleton.id; - } - - if (container) { - if (container.baseProvider) { - element.baseProvider = container.baseProvider; - } - - if (container.layersProvider) { - element.layersProvider = container.layersProvider; - } - } - - this.attr(element, skeleton.attr); - this.style(element, skeleton.style); - this.data(element, skeleton.data); - this.class(element, skeleton.class); - this.properties(element, skeleton.properties); - this.on(element, skeleton.on); - - element.storage = (function() { - var parent = element, - key = skeleton.storage || property || false, - value; - - if (satus.isFunction(key)) { - key = key(); - } - - if (skeleton.storage !== false) { - if (key) { - value = satus.storage.get(key); - } - - if (skeleton.hasOwnProperty('value') && value === undefined) { - value = skeleton.value; - } - } - - return Object.defineProperties({}, { - key: { - get: function() { - return key; - }, - set: function(string) { - key = string; - } - }, - value: { - get: function() { - return value; - }, - set: function(val) { - value = val; - - if (skeleton.storage !== false) { - satus.storage.set(key, val); - } - - parent.dispatchEvent(new CustomEvent('change')); - } - } - }); - }()); - - if (this.components[camelizedTagName]) { - this.components[camelizedTagName](element, skeleton); - } - - this.text(element.childrenContainer, skeleton.text); - this.prepend(skeleton.before, element.childrenContainer); - - if (prepend) { - this.prepend(element, container); - } else { - this.append(element, container); - } - - if (skeleton.hasOwnProperty('parentSkeleton') === false && container) { - skeleton.parentSkeleton = container.skeleton; - } - - satus.events.trigger('render', element); - - element.dispatchEvent(new CustomEvent('render')); - - container = element.childrenContainer || element; - } - - if ((!element || element.renderChildren !== false) & skip_children !== true) { - for (var key in skeleton) { - var item = skeleton[key]; - - if (key !== 'parentSkeleton' && key !== 'parentElement' && key !== 'parentObject' && key !== 'before') { - if (item && item.component) { - item.parentSkeleton = skeleton; - - if (element) { - item.parentElement = element; - } - - this.render(item, container, key, undefined, prepend); - } - } - } - } - - return element; -}; - - -/*-------------------------------------------------------------- -# SORT ---------------------------------------------------------------*/ - -satus.sort = function(array, order, property) { - var type; - - if (property) { - type = typeof array[0][property]; - } else { - type = typeof array[0]; - } - - if (order !== 'desc') { - if (type === 'number') { - if (property) { - return array.sort(function(a, b) { - return a[property] - b[property]; - }); - } else { - return array.sort(function(a, b) { - return a - b; - }); - } - } else if (type === 'string') { - if (property) { - return array.sort(function(a, b) { - return a[property].localeCompare(b[property]); - }); - } else { - return array.sort(function(a, b) { - return a.localeCompare(b); - }); - } - } - } else { - if (type === 'number') { - if (property) { - return array.sort(function(a, b) { - return b[property] - a[property]; - }); - } else { - return array.sort(function(a, b) { - return b - a; - }); - } - } else if (type === 'string') { - if (property) { - return array.sort(function(a, b) { - return b[property].localeCompare(a[property]); - }); - } else { - return array.sort(function(a, b) { - return b.localeCompare(a); - }); - } - } - } -}; - - -/*-------------------------------------------------------------- -# STORAGE ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# CLEAR ---------------------------------------------------------------*/ - -satus.storage.clear = function(callback) { - this.data = {}; - - chrome.storage.local.clear(function() { - satus.events.trigger('storage-clear'); - - if (callback) { - callback(); - } - }); -}; - - -/*-------------------------------------------------------------- -# GET ---------------------------------------------------------------*/ - -satus.storage.get = function(key, callback) { - var target = this.data; - - if (typeof key !== 'string') { - return; - } - - key = key.split('/').filter(function(value) { - return value != ''; - }); - - for (var i = 0, l = key.length; i < l; i++) { - if (satus.isset(target[key[i]])) { - target = target[key[i]]; - } else { - return undefined; - } - } - - if (typeof target === 'function') { - return target(); - } else { - return target; - } -}; - - -/*-------------------------------------------------------------- -# IMPORT ---------------------------------------------------------------*/ - -satus.storage.import = function(keys, callback) { - var self = this; - - if (typeof keys === 'function') { - callback = keys; - - keys = undefined; - } - - chrome.storage.local.get(keys, function(items) { - for (var key in items) { - self.data[key] = items[key]; - } - - satus.log('STORAGE: data was successfully imported'); - - satus.events.trigger('storage-import'); - - if (callback) { - callback(items); - } - }); -}; - - -/*-------------------------------------------------------------- -# REMOVE ---------------------------------------------------------------*/ - -satus.storage.remove = function(key, callback) { - var target = this.data; - - if (typeof key !== 'string') { - return; - } - - key = key.split('/').filter(function(value) { - return value != ''; - }); - - for (var i = 0, l = key.length; i < l; i++) { - if (satus.isset(target[key[i]])) { - if (i === l - 1) { - delete target[key[i]]; - } else { - target = target[key[i]]; - } - } else { - return undefined; - } - } - - if (key.length === 1) { - chrome.storage.local.remove(key[0]); - } else { - chrome.storage.local.set(this.data, function() { - satus.events.trigger('storage-remove'); - - if (callback) { - callback(); - } - }); - } -}; - - -/*-------------------------------------------------------------- -# SET ---------------------------------------------------------------*/ - -satus.storage.set = function(key, value, callback) { - var items = {}, - target = this.data; - - if (typeof key !== 'string') { - return; - } - - key = key.split('/').filter(function(value) { - return value != ''; - }); - - for (var i = 0, l = key.length; i < l; i++) { - var item = key[i]; - - if (i < l - 1) { - - if (target[item]) { - target = target[item]; - } else { - target[item] = {}; - - target = target[item]; - } - } else { - target[item] = value; - } - } - - for (var key in this.data) { - if (typeof this.data[key] !== 'function') { - items[key] = this.data[key]; - } - } - - chrome.storage.local.set(items, function() { - try {satus.events.trigger('storage-set');} - catch(err){console.log(err);} - - if (callback) { - callback(); - } - }); -}; - - -/*-------------------------------------------------------------- -# ON CHANGED ---------------------------------------------------------------*/ - -satus.storage.onchanged = function(callback) { - chrome.storage.onChanged.addListener(function(changes) { - for (var key in changes) { - callback(key, changes[key].newValue); - } - }); -}; - - -/*-------------------------------------------------------------- -# LAST ---------------------------------------------------------------*/ - -satus.last = function(variable) { - if (this.isArray(variable) || this.isNodeList(variable) || variable instanceof HTMLCollection) { - return variable[variable.length - 1]; - } -}; - - -/*-------------------------------------------------------------- -# LOCALIZATION ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# GET ---------------------------------------------------------------*/ - -satus.locale.get = function(string) { - return this.data[string] || string; -}; - - -/*-------------------------------------------------------------- -# IMPORT ----------------------------------------------------------------- -satus.locale.import(url, onload, onsuccess); ---------------------------------------------------------------*/ - -satus.locale.import = function(code, callback, path) { - var language = code || window.navigator.language; - - if (language.indexOf('en') === 0) { - language = 'en'; - } - - language = language.replace('-', '_'); - - if (!path) { - path = '_locales/'; - } - - satus.fetch(chrome.runtime.getURL(path + language + '/messages.json'), function(response) { - for (var key in response) { - satus.locale.data[key] = response[key].message; - } - - //satus.log('LOCALE: data was successfully imported'); - - if (callback) { - callback(); - } - }, function(success) { - satus.fetch(chrome.runtime.getURL(path + 'en/messages.json'), success, function() { - success(); - }); - }); -}; - - -/*-------------------------------------------------------------- -# LOG ---------------------------------------------------------------*/ - -satus.log = function() { - console.log.apply(null, arguments); -}; - - -/*-------------------------------------------------------------- -# STYLE ---------------------------------------------------------------*/ - -satus.style = function(element, object) { - if (object) { - for (var key in object) { - element.style[key] = object[key]; - } - } -}; - - -/*-------------------------------------------------------------- -# TEXT ---------------------------------------------------------------*/ - -satus.text = function(element, value) { - if (value) { - if (satus.isFunction(value)) { - value = value(); - } - - element.appendChild(document.createTextNode(this.locale.get(value))); - } -}; -/*-------------------------------------------------------------- ->>> MODAL ----------------------------------------------------------------- -# Confirm ---------------------------------------------------------------*/ - -satus.components.modal = function(component, skeleton) { - component.scrim = component.createChildElement('div', 'scrim'); - component.surface = component.createChildElement('div', 'surface'); - - component.close = function() { - var component = this; - - this.classList.add('satus-modal--closing'); - - setTimeout(function() { - component.remove(); - - component.dispatchEvent(new CustomEvent('close')); - }, Number(satus.css(this.surface, 'animation-duration').replace(/[^0-9.]/g, '')) * 1000); - }; - - component.scrim.addEventListener('click', function() { - this.parentNode.close(); - }); - - if (satus.isset(skeleton.content)) { - component.surface.content = component.surface.createChildElement('p', 'content'); - - if (satus.isObject(skeleton.content)) { - satus.render(skeleton.content, component.surface.content); - } else { - component.surface.content.textContent = satus.locale.get(skeleton.content); - } - } else { - component.childrenContainer = component.surface; - } - - if (satus.components.modal[skeleton.variant]) { - satus.components.modal[skeleton.variant](component, skeleton); - } -}; - - -/*-------------------------------------------------------------- -# CONFIRM ---------------------------------------------------------------*/ - -satus.components.modal.confirm = function(component, skeleton) { - component.surface.actions = satus.render({ - component: 'section', - variant: 'align-end' - }, component.surface); - - if (skeleton.buttons) { - for (var key in skeleton.buttons) { - var button = skeleton.buttons[key]; - - if (satus.isObject(button) && button.component === 'button') { - satus.render(button, component.surface.actions).modalProvider = component; - } - } - } else { - satus.render({ - cancel: { - component: 'button', - text: 'cancel', - properties: { - modalProvider: component, - }, - on: { - click: function() { - this.modalProvider.dispatchEvent(new CustomEvent('cancel')); - this.modalProvider.close(); - } - } - }, - ok: { - component: 'button', - text: 'ok', - properties: { - modalProvider: component, - }, - on: { - click: function() { - this.modalProvider.dispatchEvent(new CustomEvent('confirm')); - this.modalProvider.close(); - } - } - } - }, component.surface.actions); - } -}; -/*-------------------------------------------------------------- ->>> GRID ---------------------------------------------------------------*/ - -satus.components.grid = function(component, skeleton) { - console.log(component, skeleton); -}; -/*-------------------------------------------------------------- ->>> TEXT FIELD ---------------------------------------------------------------*/ - -satus.components.textField = function(component, skeleton) { - var container = component.createChildElement('div', 'container'), - input = container.createChildElement(skeleton.rows === 1 ? 'input' : 'textarea'), - display = container.createChildElement('div', 'display'), - line_numbers = display.createChildElement('div', 'line-numbers'), - pre = display.createChildElement('pre'), - selection = display.createChildElement('div', 'selection'), - cursor = display.createChildElement('div', 'cursor'), - hiddenValue = container.createChildElement('pre', 'hidden-value'); - - if (skeleton.rows === 1) { - component.setAttribute('multiline', 'false'); - - component.multiline = false; - } - - component.placeholder = skeleton.placeholder; - component.input = input; - component.display = display; - component.lineNumbers = line_numbers; - component.pre = pre; - component.hiddenValue = hiddenValue; - component.selection = selection; - component.cursor = cursor; - component.syntax = { - current: 'text', - handlers: { - regex: function(value, target) { - var regex_token = /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g, - char_class_token = /[^\\-]+|-|\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)/g, - char_class_parts = /^(\[\^?)(]?(?:[^\\\]]+|\\[\S\s]?)*)(]?)$/, - quantifier = /^(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??$/, - matches = value.match(regex_token); - - function create(type, string) { - var span = document.createElement('span'); - - span.className = type; - span.textContent = string; - - target.appendChild(span); - } - - if (matches) { - for (var i = 0, l = matches.length; i < l; i++) { - var match = matches[i]; - - if (match[0] === '[') { - create('character-class', match); - } else if (match[0] === '(') { - create('group', match); - } else if (match[0] === ')') { - create('group', match); - } else if (match[0] === '\\' || match === '^') { - create('anchor', match); - } else if (quantifier.test(match)) { - create('quantifier', match); - } else if (match === '|' || match === '.') { - create('metasequence', match); - } else { - create('text', match); - } - } - } - } - }, - set: function(syntax) { - if (this.handlers[syntax]) { - this.current = syntax; - } else { - this.current = 'text'; - } - - pre.update(); - } - }; - component.focus = function() { - this.input.focus(); - }; - - if (skeleton.lineNumbers === false) { - component.setAttribute('line-numbers', 'false'); - - component.lineNumbers.setAttribute('hidden', ''); - } - - if (satus.isset(skeleton.cols)) { - input.cols = skeleton.cols; - } - - if (satus.isset(skeleton.rows)) { - input.rows = skeleton.rows; - } - - Object.defineProperty(component, 'value', { - get: function() { - return this.input.value; - }, - set: function(value) { - this.input.value = value; - } - }); - - if (skeleton.syntax) { - component.syntax.set(skeleton.syntax); - } - - selection.setAttribute('disabled', ''); - - line_numbers.update = function() { - var component = this.parentNode.parentNode.parentNode, - count = component.input.value.split('\n').length; - - if (count !== this.children.length) { - satus.empty(this); - - for (var i = 1; i <= count; i++) { - var span = document.createElement('span'); - - span.textContent = i; - - this.appendChild(span); - } - } - - component.input.style.paddingLeft = this.offsetWidth + 'px'; - }; - - pre.update = function() { - var component = this.parentNode.parentNode.parentNode, - handler = component.syntax.handlers[component.syntax.current], - value = component.value || ''; - - for (var i = this.childNodes.length - 1; i > -1; i--) { - this.childNodes[i].remove(); - } - - if (handler) { - handler(value, this); - } else { - this.textContent = value; - } - - if (value.length === 0) { - var placeholder = component.placeholder; - - if (typeof placeholder === 'function') { - placeholder = component.placeholder(); - } else { - placeholder = satus.locale.get(placeholder); - } - - this.textContent = placeholder; - } - }; - - cursor.update = function() { - var component = this.parentNode.parentNode.parentNode, - input = component.input, - value = input.value, - rows_count = value.split('\n').length, - start = input.selectionStart, - end = input.selectionEnd, - rows = value.slice(0, start).split('\n'), - top = 0; - - this.style.animation = 'none'; - - if (input.selectionDirection === 'forward') { - component.hiddenValue.textContent = value.substring(0, end); - } else { - component.hiddenValue.textContent = value.substring(0, start); - } - - top = component.hiddenValue.offsetHeight; - - component.hiddenValue.textContent = satus.last(rows); - - top -= component.hiddenValue.offsetHeight; - - if (component.multiline !== false) { - this.style.top = top + 'px'; - } - - this.style.left = component.hiddenValue.offsetWidth + component.lineNumbers.offsetWidth + 'px'; - - if (start === end) { - component.selection.setAttribute('disabled', ''); - } else { - component.selection.removeAttribute('disabled'); - - /*component.hiddenValue.textContent = value.substring(0, start); - - component.selection.style.left = component.hiddenValue.offsetWidth - input.scrollLeft + 'px'; - - component.hiddenValue.textContent = value.substring(start, end); - - component.selection.style.width = component.hiddenValue.offsetWidth + 'px';*/ - } - - this.style.animation = ''; - - component.hiddenValue.textContent = ''; - }; - - document.addEventListener('selectionchange', function(event) { - component.lineNumbers.update(); - component.pre.update(); - component.cursor.update(); - }); - - input.addEventListener('input', function() { - var component = this.parentNode.parentNode; - - component.storage.value = this.value; - - component.lineNumbers.update(); - component.pre.update(); - component.cursor.update(); - }); - - input.addEventListener('scroll', function(event) { - var component = this.parentNode.parentNode; - - component.display.style.top = -this.scrollTop + 'px'; - component.display.style.left = -this.scrollLeft + 'px'; - - component.lineNumbers.update(); - component.pre.update(); - component.cursor.update(); - }); - - component.addEventListener('change', function() { - this.lineNumbers.update(); - this.pre.update(); - this.cursor.update(); - }); - - component.value = component.storage.value || ''; - - component.addEventListener('render', function() { - component.lineNumbers.update(); - component.pre.update(); - component.cursor.update(); - }); - - if (skeleton.on) { - for (var type in skeleton.on) { - input.addEventListener(type, function(event) { - this.parentNode.parentNode.dispatchEvent(new Event(event.type)); - }); - } - } -}; -/*-------------------------------------------------------------- ->>> CHART ----------------------------------------------------------------- -# Core - # Bar ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# CORE ---------------------------------------------------------------*/ - -satus.components.chart = function(component, skeleton) { - var type = skeleton.type; - - if (this.chart[type]) { - component.classList.add('satus-chart--' + type); - - this.chart[type](component, skeleton); - } -}; - - -/*-------------------------------------------------------------- -# BAR ---------------------------------------------------------------*/ - -satus.components.chart.bar = function(component, skeleton) { - var labels = skeleton.labels, - datasets = skeleton.datasets, - bars = []; - - if (satus.isFunction(labels)) { - labels = labels(); - } - - if (satus.isFunction(datasets)) { - datasets = datasets(); - } - - if (satus.isArray(labels)) { - var container = component.createChildElement('div', 'labels'); - - for (var i = 0, l = labels.length; i < l; i++) { - var label = labels[i], - section = container.createChildElement('div', 'section'); - - section.textContent = label; - } - } - - if (satus.isArray(datasets)) { - var container = component.createChildElement('div', 'bars'); - - for (var i = 0, l = datasets.length; i < l; i++) { - var dataset = datasets[i]; - - for (var j = 0, k = dataset.data.length; j < k; j++) { - if (!satus.isElement(bars[j])) { - bars.push(container.createChildElement('div', 'bar')); - } - - var piece = bars[j].createChildElement('div', 'piece'); - - piece.title = dataset.label; - piece.style.height = dataset.data[j] + '%'; - piece.style.backgroundColor = 'rgb(' + dataset.color.join(',') + ')'; - } - } - } -}; -/*-------------------------------------------------------------- ->>> SELECT ---------------------------------------------------------------*/ - -satus.components.select = function(component, skeleton) { - var content = component.createChildElement('div', 'content'); - - component.childrenContainer = content; - component.valueElement = document.createElement('span'); - component.selectElement = document.createElement('select'); - - component.valueElement.className = 'satus-select__value'; - - component.appendChild(component.valueElement); - component.appendChild(component.selectElement); - - component.options = skeleton.options || []; - - if (satus.isFunction(component.options)) { - component.options = component.options(); - - if (!satus.isset(component.options)) { - component.options = []; - } - } - - for (var i = 0, l = component.options.length; i < l; i++) { - var option = document.createElement('option'); - - option.value = component.options[i].value; - - satus.text(option, component.options[i].text); - - component.selectElement.appendChild(option); - } - - Object.defineProperty(component, 'value', { - get() { - return this.selectElement.value; - }, - set(value) { - this.selectElement.value = value; - } - }); - - component.render = function() { - satus.empty(this.valueElement); - - if (this.selectElement.options[this.selectElement.selectedIndex]) { - satus.text(this.valueElement, this.selectElement.options[this.selectElement.selectedIndex].text); - } - - this.dataset.value = this.value; - }; - - component.selectElement.addEventListener('change', function() { - var component = this.parentNode; - - component.storage.value = this.value; - - component.render(); - }); - - component.value = component.storage.value || component.options[0].value; - - component.render(); -}; -/*-------------------------------------------------------------- ->>> DIVIDER ---------------------------------------------------------------*/ - -satus.components.divider = function() {}; -/*-------------------------------------------------------------- ->>> SECTION ---------------------------------------------------------------*/ - -satus.components.section = function(component, skeleton) { - if (satus.isString(skeleton.title)) { - component.dataset.title = satus.locale.get(skeleton.title); - } -}; -/*-------------------------------------------------------------- ->>> BASE ---------------------------------------------------------------*/ - -satus.components.base = function(component) { - component.baseProvider = component; - component.layers = []; -}; -/*-------------------------------------------------------------- ->>> ALERT ---------------------------------------------------------------*/ - -satus.components.alert = function(component, skeleton) {}; -/*-------------------------------------------------------------- ->>> TIME ---------------------------------------------------------------*/ - -satus.components.time = function(component, skeleton) { - var select_skeleton = Object.assign({}, skeleton); - - select_skeleton.component = 'select'; - select_skeleton.options = []; - - if (satus.isFunction(select_skeleton.hour12)) { - select_skeleton.hour12 = select_skeleton.hour12(); - } - - for (var i = 0, l = 24; i < l; i++) { - var hour = i, - value = i; - - if (select_skeleton.hour12 === true && i > 12) { - hour -= 12; - } - - if (hour < 10) { - hour = '0' + hour; - value = '0' + value; - } - - if (select_skeleton.hour12 === true) { - if (i > 12) { - hour += ':00 pm'; - } else { - hour += ':00 am'; - } - } else { - hour += ':00' - } - - select_skeleton.options.push({ - text: hour, - value: value + ':00' - }); - } - - satus.components.select(component, select_skeleton); - - component.classList.add('satus-select'); -}; -/*-------------------------------------------------------------- ->>> SIDEBAR ---------------------------------------------------------------*/ - -satus.components.sidebar = function(component, skeleton) {}; -/*-------------------------------------------------------------- ->>> LAYERS ---------------------------------------------------------------*/ - -satus.components.layers = function(component, skeleton) { - component.path = []; - component.renderChildren = false; - component.baseProvider.layers.push(component); - component.layersProvider = component; - - component.back = function() { - if (this.path.length > 1) { - this.path.pop(); - - this.open(this.path[this.path.length - 1], false); - } - }; - - component.open = function(skeleton, history) { - var previous_layer = satus.last(this.querySelectorAll('.satus-layers__layer')), - layer = this.createChildElement('div', 'layer'); - - if (history !== false) { - if (previous_layer) { - previous_layer.style.animation = 'fadeOutLeft 100ms linear forwards'; - layer.style.animation = 'fadeInRight 100ms linear forwards'; - } - - this.path.push(skeleton); - } else { - previous_layer.style.animation = 'fadeOutRight 100ms linear forwards'; - layer.style.animation = 'fadeInLeft 100ms linear forwards'; - } - - if (previous_layer) { - setTimeout(function() { - previous_layer.remove(); - }, satus.getAnimationDuration(previous_layer)); - } - - layer.skeleton = skeleton; - layer.baseProvider = this.baseProvider; - - satus.render(skeleton, layer, undefined, skeleton.component === 'layers'); - - this.dispatchEvent(new Event('open')); - }; - - component.update = function() { - var layer = this.querySelector('.satus-layers__layer'); - - satus.empty(layer); - satus.render(layer.skeleton, layer); - }; - - component.open(skeleton); -}; -/*-------------------------------------------------------------- ->>> LIST ---------------------------------------------------------------*/ - -satus.components.list = function(component, skeleton) { - for (var i = 0, l = skeleton.items.length; i < l; i++) { - var li = component.createChildElement('div', 'item'), - item = skeleton.items[i]; - - for (var j = 0, k = item.length; j < k; j++) { - var child = item[j]; - - if (satus.isObject(child)) { - satus.render(child, li); - } else { - var span = li.createChildElement('span'); - - span.textContent = satus.locale.get(child); - } - } - } -}; -/*-------------------------------------------------------------- ->>> COLOR PICKER ---------------------------------------------------------------*/ - -satus.components.colorPicker = function(component, skeleton) { - component.childrenContainer = component.createChildElement('div', 'content'); - - component.color = (function(element) { - var array; - - Object.defineProperty(element, 'value', { - get: function() { - return array; - }, - set: function(value) { - array = value; - - this.parentNode.storage.value = array; - - element.style.backgroundColor = 'rgb(' + value.join(',') + ')'; - } - }); - - element.value = component.storage.value || component.skeleton.value || [0, 0, 0]; - - return element; - })(component.createChildElement('span', 'value')); - - component.addEventListener('click', function() { - var hsl = satus.color.rgbToHsl(this.color.value), - s = hsl[1] / 100, - l = hsl[2] / 100; - - s *= l < .5 ? l : 1 - l; - - var v = l + s; - - s = 2 * s / (l + s); - - satus.render({ - component: 'modal', - variant: 'color-picker', - value: hsl, - parentElement: this, - - palette: { - component: 'div', - class: 'satus-color-picker__palette', - style: { - 'backgroundColor': 'hsl(' + hsl[0] + 'deg, 100%, 50%)' - }, - on: { - mousedown: function(event) { - if (event.button !== 0) { - return false; - } - - var palette = this, - rect = this.getBoundingClientRect(), - cursor = this.children[0]; - - function mousemove(event) { - var hsl = palette.skeleton.parentSkeleton.value, - x = event.clientX - rect.left, - y = event.clientY - rect.top, - s; - - x = Math.min(Math.max(x, 0), rect.width) / (rect.width / 100); - y = Math.min(Math.max(y, 0), rect.height) / (rect.height / 100); - - var v = 100 - y, - l = (2 - x / 100) * v / 2; - - hsl[1] = x * v / (l < 50 ? l * 2 : 200 - l * 2); - hsl[2] = l; - - cursor.style.left = x + '%'; - cursor.style.top = y + '%'; - - palette.nextSibling.children[0].style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; - - event.preventDefault(); - } - - function mouseup() { - window.removeEventListener('mousemove', mousemove); - window.removeEventListener('mouseup', mouseup); - } - - window.addEventListener('mousemove', mousemove); - window.addEventListener('mouseup', mouseup); - } - }, - - cursor: { - component: 'div', - class: 'satus-color-picker__cursor', - style: { - 'left': s * 100 + '%', - 'top': 100 - v * 100 + '%' - } - } - }, - section: { - component: 'section', - variant: 'color', - - color: { - component: 'div', - class: 'satus-color-picker__color', - style: { - 'backgroundColor': 'rgb(' + this.color.value.join(',') + ')' - } - }, - hue: { - component: 'slider', - class: 'satus-color-picker__hue', - storage: false, - value: hsl[0], - max: 360, - on: { - input: function() { - var modal = this.skeleton.parentSkeleton.parentSkeleton, - hsl = modal.value; - - hsl[0] = this.storage.value; - - this.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; - this.parentNode.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg, 100%, 50%)'; - } - } - } - }, - actions: { - component: 'section', - variant: 'actions', - - reset: { - component: 'button', - text: 'reset', - on: { - click: function() { - var modal = this.skeleton.parentSkeleton.parentSkeleton, - component = modal.parentElement; - - component.color.value = component.skeleton.value || [0, 0, 0]; - - modal.rendered.close(); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function() { - this.skeleton.parentSkeleton.parentSkeleton.rendered.close(); - } - } - }, - ok: { - component: 'button', - text: 'OK', - on: { - click: function() { - var modal = this.skeleton.parentSkeleton.parentSkeleton, - component = modal.parentElement; - - component.color.value = satus.color.hslToRgb(modal.value); - - modal.rendered.close(); - } - } - } - } - }, this.baseProvider.layers[0]); - }); -}; -/*-------------------------------------------------------------- ->>> RADIO ---------------------------------------------------------------*/ - -satus.components.radio = function(component, skeleton) { - component.nativeControl = component.createChildElement('input', 'input'); - - component.createChildElement('i'); - - component.childrenContainer = component.createChildElement('div', 'content'); - - component.nativeControl.type = 'radio'; - - if (skeleton.group) { - component.storage.key = skeleton.group; - component.nativeControl.name = skeleton.group; - } - - if (skeleton.value) { - component.nativeControl.value = skeleton.value; - } - - component.storage.value = satus.storage.get(component.storage.key); - - if (satus.isset(component.storage.value)) { - component.nativeControl.checked = component.storage.value === skeleton.value; - } else if (skeleton.checked) { - component.nativeControl.checked = true; - } - - component.nativeControl.addEventListener('change', function() { - var component = this.parentNode; - - component.storage.value = this.value; - }); -}; -/*-------------------------------------------------------------- ->>> SLIDER ---------------------------------------------------------------*/ - -satus.components.slider = function(component, skeleton) { - var content = component.createChildElement('div', 'content'), - children_container = content.createChildElement('div', 'children-container'), - text_input = content.createChildElement('input'), - track_container = component.createChildElement('div', 'track-container'), - input = track_container.createChildElement('input', 'input'); - - component.childrenContainer = children_container; - component.textInput = text_input; - component.input = input; - component.track = track_container.createChildElement('div', 'track'); - - text_input.type = 'text'; - - input.type = 'range'; - input.min = skeleton.min || 0; - input.max = skeleton.max || 1; - input.step = skeleton.step || 1; - input.value = component.storage.value || skeleton.value || 0; - - text_input.addEventListener('blur', function() { - var component = this.parentNode.parentNode; - - component.input.value = Number(this.value.replace(/[^0-9.]/g, '')); - component.storage.value = Number(component.input.value); - - component.update(); - }); - - text_input.addEventListener('keydown', function(event) { - if (event.key === 'Enter') { - var component = this.parentNode.parentNode; - - component.input.value = Number(this.value.replace(/[^0-9.]/g, '')); - component.storage.value = Number(component.input.value); - - component.update(); - } - }); - - input.addEventListener('input', function() { - var component = this.parentNode.parentNode; - - component.storage.value = Number(this.value); - - component.update(); - }); - - component.update = function() { - var input = this.input; - - this.textInput.value = input.value; - - this.track.style.width = 100 / (input.max - input.min) * (input.value - input.min) + '%'; - }; - - component.update(); - - if (skeleton.on) { - for (var type in skeleton.on) { - input.addEventListener(type, function(event) { - this.parentNode.parentNode.dispatchEvent(new Event(event.type)); - }); - } - } -}; -/*-------------------------------------------------------------- ->>> TABS ---------------------------------------------------------------*/ - -satus.components.tabs = function(component, skeleton) { - var tabs = skeleton.items, - value = skeleton.value; - - if (satus.isFunction(tabs)) { - tabs = tabs(); - } - - if (satus.isFunction(value)) { - value = value(); - } - - for (var i = 0, l = tabs.length; i < l; i++) { - var tab = tabs[i], - button = component.createChildElement('button'); - - button.addEventListener('click', function() { - var component = this.parentNode, - index = satus.elementIndex(this); - - component.value = index; - - component.style.setProperty('--satus-tabs-current', index); - }); - - satus.text(button, tab); - } - - component.style.setProperty('--satus-tabs-count', tabs.length); - component.style.setProperty('--satus-tabs-current', value || 0); -}; -/*-------------------------------------------------------------- ->>> SHORTCUT ---------------------------------------------------------------*/ - -satus.components.shortcut = function(component, skeleton) { - component.childrenContainer = component.createChildElement('div', 'content'); - component.valueElement = component.createChildElement('div', 'value'); - - component.className = 'satus-button'; - - component.render = function(parent) { - var self = this, - parent = parent || self.primary, - children = parent.children; - - satus.empty(parent); - - function createElement(name) { - var element = document.createElement('div'); - - element.className = 'satus-shortcut__' + name; - - parent.appendChild(element); - - return element; - } - - if (this.data.alt) { - createElement('key').textContent = 'Alt'; - } - - if (this.data.ctrl) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - createElement('key').textContent = 'Ctrl'; - } - - if (this.data.shift) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - createElement('key').textContent = 'Shift'; - } - - for (var code in this.data.keys) { - var key = this.data.keys[code].key, - arrows = ['ArrowUp', 'ArrowRight', 'ArrowDown', 'ArrowLeft'], - index = arrows.indexOf(key); - - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - if (index !== -1) { - createElement('key').textContent = ['↑', '→', '↓', '←'][index]; - } else if (key === ' ') { - createElement('key').textContent = '␣'; - } else if (key) { - createElement('key').textContent = key.toUpperCase(); - } - } - - if (this.data.wheel) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - var mouse = createElement('mouse'), - div = document.createElement('div'); - - mouse.appendChild(div); - - mouse.className += ' ' + (this.data.wheel > 0); - } - - if (this.data.click) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - var mouse = createElement('mouse'), - div = document.createElement('div'); - - mouse.appendChild(div); - - mouse.className += ' click'; - } - - if (this.data.middle) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - var mouse = createElement('mouse'), - div = document.createElement('div'); - - mouse.appendChild(div); - - mouse.className += ' middle'; - } - - if (this.data.context) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - var mouse = createElement('mouse'), - div = document.createElement('div'); - - mouse.appendChild(div); - - mouse.className += ' context'; - } - }; - - component.keydown = function(event) { - event.preventDefault(); - event.stopPropagation(); - - component.data = { - alt: event.altKey, - ctrl: event.ctrlKey, - shift: event.shiftKey, - keys: {} - }; - - if (['control', 'alt', 'altgraph', 'shift'].indexOf(event.key.toLowerCase()) === -1) { - component.data.keys[event.keyCode] = { - code: event.code, - key: event.key - }; - } - - component.data.wheel = 0; - - component.render(); - - return false; - }; - - if (skeleton.wheel !== false) { - component.mousewheel = function(event) { - event.stopPropagation(); - - if ( - ( - component.data.wheel === 0 && - ( - Object.keys(component.data.keys).length === 0 && - component.data.alt === false && - component.data.ctrl === false && - component.data.shift === false - ) - ) || - component.data.wheel < 0 && event.deltaY > 0 || - component.data.wheel > 0 && event.deltaY < 0) { - component.data = { - alt: false, - ctrl: false, - shift: false, - keys: {} - }; - } - - component.data.wheel = event.deltaY < 0 ? -1 : 1; - - component.render(); - - return false; - }; - } - - component.addEventListener('click', function() { - satus.render({ - component: 'modal', - properties: { - parent: this - }, - on: { - close: function() { - window.removeEventListener('keydown', component.keydown); - window.removeEventListener('wheel', component.mousewheel); - } - }, - - primary: { - component: 'div', - class: 'satus-shortcut__primary', - on: { - render: function() { - component.primary = this; - - if (component.skeleton.mouseButtons === true) { - this.addEventListener('mousedown', function(event) { - if ( - component.data.click && event.button === 0 || - component.data.middle && event.button === 1 - ) { - component.data = { - alt: false, - ctrl: false, - shift: false, - keys: {} - }; - } - - component.data.click = false; - component.data.middle = false; - component.data.context = false; - - if (event.button === 0) { - component.data.click = true; - - component.render(); - } else if (event.button === 1) { - component.data.middle = true; - - component.render(); - } - }); - - this.addEventListener('contextmenu', function(event) { - event.preventDefault(); - event.stopPropagation(); - - if (component.data.context) { - component.data = { - alt: false, - ctrl: false, - shift: false, - keys: {} - }; - } - - component.data.context = true; - component.data.middle = false; - component.data.click = false; - - component.render(); - - return false; - }); - } - - component.render(); - } - } - }, - actions: { - component: 'section', - variant: 'actions', - - reset: { - component: 'button', - text: 'reset', - on: { - click: function() { - var component = this.parentNode.parentNode.parentNode.parent; - - component.data = component.skeleton.value || {}; - - component.render(component.valueElement); - - satus.storage.remove(component.storage); - - this.parentNode.parentNode.parentNode.close(); - - window.removeEventListener('keydown', component.keydown); - window.removeEventListener('wheel', component.mousewheel); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function() { - component.data = satus.storage.get(component.storage) || component.skeleton.value || {}; - - component.render(component.valueElement); - - this.parentNode.parentNode.parentNode.close(); - - window.removeEventListener('keydown', component.keydown); - window.removeEventListener('wheel', component.mousewheel); - } - } - }, - save: { - component: 'button', - text: 'save', - on: { - click: function() { - component.storage.value = component.data; - - component.render(component.valueElement); - - this.parentNode.parentNode.parentNode.close(); - - window.removeEventListener('keydown', component.keydown); - window.removeEventListener('wheel', component.mousewheel); - } - } - } - } - }, this.baseProvider); - - window.addEventListener('keydown', this.keydown); - window.addEventListener('wheel', this.mousewheel); - }); - - component.data = component.storage.value || { - alt: false, - ctrl: false, - shift: false, - keys: {}, - wheel: 0 - }; - - component.render(component.valueElement); -}; -/*-------------------------------------------------------------- ->>> CHECKBOX ---------------------------------------------------------------*/ - -satus.components.checkbox = function(component, skeleton) { - component.input = component.createChildElement('input'); - component.input.type = 'checkbox'; - - component.checkmark = component.createChildElement('div', 'checkmark'); - - component.childrenContainer = component.createChildElement('div', 'content'); - - component.dataset.value = component.storage.value || skeleton.value; - component.input.checked = component.storage.value || skeleton.value; - - component.input.addEventListener('change', function() { - var component = this.parentNode; - - if (this.checked === true) { - component.storage.value = true; - component.dataset.value = 'true'; - } else { - component.storage.value = false; - component.dataset.value = 'false'; - } - }); -}; -/*-------------------------------------------------------------- ->>> SWITCH ---------------------------------------------------------------*/ - -satus.components.switch = function(component, skeleton) { - var value = satus.isset(component.storage.value) ? component.storage.value : skeleton.value; - - if (satus.isFunction(value)) { - value = value(); - } - - component.childrenContainer = component.createChildElement('div', 'content'); - - component.createChildElement('i'); - - component.dataset.value = value; - - component.addEventListener('click', function() { - if (this.dataset.value === 'true') { - this.dataset.value = 'false'; - this.storage.value = false; - } else { - this.dataset.value = 'true'; - this.storage.value = true; - } - }, true); -}; -/*-------------------------------------------------------------- ->>> CONTEXT MENU ---------------------------------------------------------------*/ - -satus.events.on('render', function(component) { - if (component.skeleton.contextMenu) { - component.addEventListener('contextmenu', function(event) { - var base = this.baseProvider, - base_rect = base.getBoundingClientRect(), - x = event.clientX - base_rect.left, - y = event.clientY - base_rect.top, - modal = satus.render({ - component: 'modal', - variant: 'contextmenu', - parentSkeleton: this.skeleton, - baseProvider: base - }, base); - - if (base_rect.width - x < 200) { - x = base_rect.width - x; - - if (x + 200 > base_rect.width) { - x = 0; - } - - modal.childrenContainer.style.right = x + 'px'; - } else { - modal.childrenContainer.style.left = x + 'px'; - } - - modal.childrenContainer.style.top = y + 'px'; - - this.skeleton.contextMenu.parentSkeleton = this.skeleton; - - satus.render(this.skeleton.contextMenu, modal.childrenContainer); - - event.preventDefault(); - event.stopPropagation(); - - return false; - }); - } -}); -/*-------------------------------------------------------------- ->>> SORTABLE ---------------------------------------------------------------*/ - -satus.events.on('render', function(component) { - if (component.skeleton.sortable === true) { - component.addEventListener('mousedown', function(event) { - if (event.button !== 0) { - return false; - } - - var component = this, - rect = this.getBoundingClientRect(), - x = event.clientX, - y = event.clientY, - offset_x = event.clientX - rect.left, - offset_y = event.clientY - rect.top, - ghost = satus.clone(this), - children = this.parentNode.children, - appended = false; - - ghost.classList.add('satus-sortable__ghost'); - - function mousemove(event) { - if (appended === false && (Math.abs(event.clientX - x) > 4 || Math.abs(event.clientY - y) > 4)) { - appended = true; - - component.classList.add('satus-sortable__chosen'); - - component.baseProvider.appendChild(ghost); - } - - ghost.style.transform = 'translate(' + (event.clientX - offset_x) + 'px, ' + (event.clientY - offset_y) + 'px)'; - } - - function mouseup(event) { - component.classList.remove('satus-sortable__chosen'); - ghost.remove(); - - window.removeEventListener('mousemove', mousemove, true); - window.removeEventListener('mouseup', mouseup, true); - - for (var i = 0, l = children.length; i < l; i++) { - var child = children[i]; - - if (child !== component) { - child.removeEventListener('mouseover', siblingMouseOver); - } - } - - component.dispatchEvent(new CustomEvent('sort')); - - event.stopPropagation(); - - return false; - } - - window.addEventListener('mousemove', mousemove, { - passive: true, - capture: true - }); - - window.addEventListener('mouseup', mouseup, { - passive: true, - capture: true - }); - - function siblingMouseOver(event) { - var parent = this.parentNode, - y = event.layerY / (this.offsetHeight / 100); - - if (y < 50 && this.previousSibling !== component || y >= 50 && this.nextSibling === component) { - parent.insertBefore(component, this); - } else { - parent.insertBefore(component, this.nextSibling); - } - } - - for (var i = 0, l = children.length; i < l; i++) { - var child = children[i]; - - if (child !== component) { - child.addEventListener('mouseover', siblingMouseOver); - } - } - - event.stopPropagation(); - event.preventDefault(); - - return false; - }); - } -}); -/*-------------------------------------------------------------- ->>> MANIFEST ---------------------------------------------------------------*/ - -satus.manifest = function() { - var object = {}; - - if (this.isset('chrome.runtime.getManifest')) { - object = chrome.runtime.getManifest(); - } - - return object; -}; -/*-------------------------------------------------------------- ->>> COLOR: ----------------------------------------------------------------- -# String to array -# RGB to HSL -# HUE to RGB -# HSL to RGB ---------------------------------------------------------------*/ - -satus.color = {}; - - -/*-------------------------------------------------------------- -# STRING TO ARRAY ---------------------------------------------------------------*/ - -satus.color.stringToArray = function(string) { - var match = string.match(/[0-9.]+/g); - - if (match) { - for (var i = 0, l = match.length; i < l; i++) { - match[i] = parseFloat(match[i]); - } - } - - return match; -}; - - -/*-------------------------------------------------------------- -# RGB TO HSL ---------------------------------------------------------------*/ - -satus.color.rgbToHsl = function(array) { - var r = array[0] / 255, - g = array[1] / 255, - b = array[2] / 255, - min = Math.min(r, g, b), - max = Math.max(r, g, b), - h = 0, - s = 0, - l = (min + max) / 2; - - if (min === max) { - h = 0; - s = 0; - } else { - var delta = max - min; - - s = l <= 0.5 ? delta / (max + min) : delta / (2 - max - min); - - if (max === r) { - h = (g - b) / delta + (g < b ? 6 : 0); - } else if (max === g) { - h = (b - r) / delta + 2; - } else if (max === b) { - h = (r - g) / delta + 4; - } - - h /= 6; - } - - h *= 360; - s *= 100; - l *= 100; - - if (array.length === 3) { - return [h, s, l]; - } else { - return [h, s, l, array[3]]; - } -}; - - -/*-------------------------------------------------------------- -# HUE TO RGB ---------------------------------------------------------------*/ - -satus.color.hueToRgb = function(array) { - var t1 = array[0], - t2 = array[1], - hue = array[2]; - - if (hue < 0) { - hue += 6; - } - - if (hue >= 6) { - hue -= 6; - } - - if (hue < 1) { - return (t2 - t1) * hue + t1; - } else if (hue < 3) { - return t2; - } else if (hue < 4) { - return (t2 - t1) * (4 - hue) + t1; - } else { - return t1; - } -}; - - -/*-------------------------------------------------------------- -# HSL TO RGB ---------------------------------------------------------------*/ - -satus.color.hslToRgb = function(array) { - var h = array[0] / 360, - s = array[1] / 100, - l = array[2] / 100, - r, g, b; - - if (s == 0) { - r = g = b = l; - } else { - var hue2rgb = function(p, q, t) { - if (t < 0) t += 1; - if (t > 1) t -= 1; - if (t < 1 / 6) return p + (q - p) * 6 * t; - if (t < 1 / 2) return q; - if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; - return p; - }; - - var q = l < 0.5 ? l * (1 + s) : l + s - l * s; - var p = 2 * l - q; - r = hue2rgb(p, q, h + 1 / 3); - g = hue2rgb(p, q, h); - b = hue2rgb(p, q, h - 1 / 3); - } - - return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)]; -}; -/*-------------------------------------------------------------- ->>> USER ----------------------------------------------------------------- -# OS - # Name - # Bitness -# Browser - # Name - # Version - # Platform - # Manifest - # Languages - # Cookies - # Flash - # Java - # Audio - # Video - # WebGL -# Device - # Screen - # RAM - # GPU - # Cores - # Touch - # Connection ---------------------------------------------------------------*/ - -satus.user = { - browser: {}, - device: {}, - os: {} -}; - -/*-------------------------------------------------------------- -# OS ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# NAME ---------------------------------------------------------------*/ - -satus.user.os.name = function() { - var app_version = navigator.appVersion; - - if (app_version.indexOf('Win') !== -1) { - if (app_version.match(/(Windows 10.0|Windows NT 10.0)/)) { - return 'Windows 10'; - } else if (app_version.match(/(Windows 8.1|Windows NT 6.3)/)) { - return 'Windows 8.1'; - } else if (app_version.match(/(Windows 8|Windows NT 6.2)/)) { - return 'Windows 8'; - } else if (app_version.match(/(Windows 7|Windows NT 6.1)/)) { - return 'Windows 7'; - } else if (app_version.match(/(Windows NT 6.0)/)) { - return 'Windows Vista'; - } else if (app_version.match(/(Windows NT 5.1|Windows XP)/)) { - return 'Windows XP'; - } else { - return 'Windows'; - } - } else if (app_version.indexOf('(iPhone|iPad|iPod)') !== -1) { - return 'iOS'; - } else if (app_version.indexOf('Mac') !== -1) { - return 'macOS'; - } else if (app_version.indexOf('Android') !== -1) { - return 'Android'; - } else if (app_version.indexOf('OpenBSD') !== -1) { - return 'OpenBSD'; - } else if (app_version.indexOf('SunOS') !== -1) { - return 'SunOS'; - } else if (app_version.indexOf('Linux') !== -1) { - return 'Linux'; - } else if (app_version.indexOf('X11') !== -1) { - return 'UNIX'; - } -}; - - -/*-------------------------------------------------------------- -# BITNESS ---------------------------------------------------------------*/ - -satus.user.os.bitness = function() { - if (navigator.appVersion.match(/(Win64|x64|x86_64|WOW64)/)) { - return '64-bit'; - } else { - return '32-bit'; - } -}; - - -/*-------------------------------------------------------------- -# BROWSER ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# NAME ---------------------------------------------------------------*/ - -satus.user.browser.name = function() { - var user_agent = navigator.userAgent; - - if (user_agent.indexOf('Opera') !== -1) { - return 'Opera'; - } else if (user_agent.indexOf('Vivaldi') !== -1) { - return 'Vivaldi'; - } else if (user_agent.indexOf('Edge') !== -1) { - return 'Edge'; - } else if (user_agent.indexOf('Chrome') !== -1) { - return 'Chrome'; - } else if (user_agent.indexOf('Safari') !== -1) { - return 'Safari'; - } else if (user_agent.indexOf('Firefox') !== -1) { - return 'Firefox'; - } else if (user_agent.indexOf('MSIE') !== -1) { - return 'IE'; - } -}; - - -/*-------------------------------------------------------------- -# VERSION ---------------------------------------------------------------*/ - -satus.user.browser.version = function() { - var browser_name = satus.user.browser.name(), - browser_version = navigator.userAgent.match(new RegExp(browser_name + '/([0-9.]+)')); - - return browser_version[1]; -}; - - -/*-------------------------------------------------------------- -# PLATFORM ---------------------------------------------------------------*/ - -satus.user.browser.platform = function() { - return navigator.platform; -}; - - -/*-------------------------------------------------------------- -# MANIFEST ---------------------------------------------------------------*/ - -satus.user.browser.manifest = function() { - return chrome.runtime.getManifest() || {}; -}; - - -/*-------------------------------------------------------------- -# LANGUAGES ---------------------------------------------------------------*/ - -satus.user.browser.languages = function() { - return navigator.languages; -}; - - -/*-------------------------------------------------------------- -# COOKIES ---------------------------------------------------------------*/ - -satus.user.browser.cookies = function() { - if (document.cookie) { - var random_cookie = 'ta{t`nX6cMXK,Wsc'; - - document.cookie = random_cookie; - - if (document.cookie.indexOf(random_cookie) !== -1) { - return true; - } - } - - return false; -}; - - -/*-------------------------------------------------------------- -# FLASH ---------------------------------------------------------------*/ - -satus.user.browser.flash = function() { - try { - if (new ActiveXObject('ShockwaveFlash.ShockwaveFlash')) { - return true; - } - } catch (error) { - if (navigator.mimeTypes['application/x-shockwave-flash']) { - return true; - } - } - - return false; -}; - - -/*-------------------------------------------------------------- -# JAVA ---------------------------------------------------------------*/ - -satus.user.browser.java = function() { - if (satus.isFunction(navigator.javaEnabled) && navigator.javaEnabled()) { - return true; - } else { - return false; - } -}; - - -/*-------------------------------------------------------------- -# AUDIO ---------------------------------------------------------------*/ - -satus.user.browser.audio = function() { - var audio = document.createElement('audio'), - types = { - mp3: 'audio/mpeg', - mp4: 'audio/mp4', - aif: 'audio/x-aiff' - }, - result = []; - - if (satus.isFunction(audio.canPlayType)) { - for (var key in types) { - var can_play_type = audio.canPlayType(types[key]); - - if (can_play_type !== '') { - result.push(key); - } - } - } - - return result; -}; - - -/*-------------------------------------------------------------- -# VIDEO ---------------------------------------------------------------*/ - -satus.user.browser.video = function() { - var video = document.createElement('video'), - types = { - ogg: 'video/ogg; codecs="theora"', - h264: 'video/mp4; codecs="avc1.42E01E"', - webm: 'video/webm; codecs="vp8, vorbis"', - vp9: 'video/webm; codecs="vp9"', - hls: 'application/x-mpegURL; codecs="avc1.42E01E"' - }, - result = []; - - if (satus.isFunction(video.canPlayType)) { - for (var key in types) { - var can_play_type = video.canPlayType(types[key]); - - if (can_play_type !== '') { - result.push(key); - } - } - } - - return result; -}; - - -/*-------------------------------------------------------------- -# WEBGL ---------------------------------------------------------------*/ - -satus.user.browser.webgl = function() { - var cvs = document.createElement('canvas'), - ctx = cvs.getContext('webgl'); - - return ctx && ctx instanceof WebGLRenderingContext; -}; - - -/*-------------------------------------------------------------- -# HARDWARE ---------------------------------------------------------------*/ - -/*-------------------------------------------------------------- -# SCREEN ---------------------------------------------------------------*/ - -satus.user.device.screen = function() { - if (screen) { - return screen.width + 'x' + screen.height; - } -}; - - -/*-------------------------------------------------------------- -# RAM ---------------------------------------------------------------*/ - -satus.user.device.ram = function() { - if ('deviceMemory' in navigator) { - return navigator.deviceMemory + ' GB'; - } -}; - - -/*-------------------------------------------------------------- -# GPU ---------------------------------------------------------------*/ - -satus.user.device.gpu = function() { - var cvs = document.createElement('canvas'), - ctx = cvs.getContext('webgl'); - - if ( - ctx && - ctx instanceof WebGLRenderingContext && - 'getParameter' in ctx && - 'getExtension' in ctx - ) { - var info = ctx.getExtension('WEBGL_debug_renderer_info'); - - if (info) { - return ctx.getParameter(info.UNMASKED_RENDERER_WEBGL); - } - } -}; - - -/*-------------------------------------------------------------- -# CORES ---------------------------------------------------------------*/ - -satus.user.device.cores = function() { - return navigator.deviceConcurrency; -}; - - -/*-------------------------------------------------------------- -# TOUCH ---------------------------------------------------------------*/ - -satus.user.device.touch = function() { - var result = {}; - - if ( - window.hasOwnProperty('ontouchstart') || - window.DocumentTouch && document instanceof window.DocumentTouch || - navigator.maxTouchPoints > 0 || - window.navigator.msMaxTouchPoints > 0 - ) { - result.touch = true; - result.maxTouchPoints = navigator.maxTouchPoints; - } - - return result; -}; - - -/*-------------------------------------------------------------- -# CONNECTION ---------------------------------------------------------------*/ - -satus.user.device.connection = function() { - var result = {}; - - if (typeof navigator.connection === 'object') { - result.type = navigator.connection.effectiveType || null; - - if (navigator.connection.downlink) { - result.speed = navigator.connection.downlink + ' Mbps'; - } - } - - return result; -}; -/*-------------------------------------------------------------- -# SEARCH ---------------------------------------------------------------*/ - -satus.search = function(query, object, callback) { - var elements = ['switch', 'select', 'slider', 'shortcut', 'radio', 'color-picker'], - threads = 0, - results = {}, - excluded = [ - 'baseProvider', - 'layersProvider', - 'parentObject', - 'parentSkeleton', - 'namespaceURI' - ]; - - query = query.toLowerCase(); - - function parse(items, parent) { - threads++; - - for (var key in items) { - if (excluded.indexOf(key) === -1) { - var item = items[key]; - - if (item.component) { - //console.log(key, item.component); - - if (elements.indexOf(item.component) !== -1 && key.indexOf(query) !== -1) { - results[key] = Object.assign({}, item); - } - } - - if ( - satus.isObject(item) && - !satus.isArray(item) && - !satus.isElement(item) && - !satus.isFunction(item) - ) { - parse(item, items); - } - } - } - - threads--; - - if (threads === 0) { - callback(results); - } - } - - parse(object); -}; From 5b4cb4abeb0b7de81e3b6176ed30f3cf5c3fbece Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 23 Mar 2023 00:08:28 +0100 Subject: [PATCH 0876/1224] Update .gitmodules --- .gitmodules | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index bf89d7435..f336960e0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,5 +1,4 @@ -[submodule "from ImprovedTube"] +[submodule "SATUS lib"] path = assets/satus url = https://github.com/code-for-charity/SATUS -url = https://github.com/code-for-charity/SATUS - \ No newline at end of file + From 94fe08470d763be7ebb3c026cb9fb97c0780281a Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 23 Mar 2023 01:32:15 +0100 Subject: [PATCH 0877/1224] tidying --- .../extension}/core.js | 0 .../extension}/functions.js | 0 .../extension}/init.js | 24 +- .../appearance/comments/comments.css | 0 .../appearance/comments/comments.js | 0 .../appearance/details/details.css | 0 .../appearance/details/details.js | 0 .../appearance/footer/footer.css | 0 .../appearance/header/header.css | 0 .../appearance/player/player.css | 0 .../appearance/player/player.js | 0 .../appearance/sidebar/sidebar.css | 12 - .../appearance/sidebar/sidebar.js | 0 .../www.youtube.com}/general/general.css | 0 .../www.youtube.com}/general/general.js | 0 .../night-mode/night-mode.css | 0 .../www.youtube.com}/night-mode/night-mode.js | 0 .../extension/www.youtube.com/styles.css | 3291 ++++++++--------- JS/satus.css | 2073 +++++++++++ JS/satus.js | 3202 ++++++++++++++++ .../web-accessible}/core.js | 0 .../web-accessible}/functions.js | 0 .../web-accessible}/init.js | 0 .../web-accessible}/mutations.js | 0 .../www.youtube.com}/appearance.js | 0 .../www.youtube.com}/blacklist.js | 0 .../www.youtube.com}/channel.js | 0 .../web-accessible/www.youtube.com}/player.js | 0 .../www.youtube.com}/playlist.js | 0 .../www.youtube.com}/settings.js | 0 .../www.youtube.com}/shortcuts.js | 0 .../web-accessible/www.youtube.com}/themes.js | 0 manifest.json | 77 +- manifest3.json | 70 +- {assets => media}/fonts/Roboto-Light.ttf | Bin {assets => media}/fonts/Roboto-Medium.ttf | Bin {assets => media}/fonts/Roboto-Regular.ttf | Bin {assets => media}/icons/128.png | Bin {assets => media}/icons/16.png | Bin {assets => media}/icons/32.png | Bin {assets => media}/icons/48.png | Bin options-page/index.html | 4 +- 42 files changed, 7001 insertions(+), 1752 deletions(-) rename {content-scripts/extension-context => JS/extension}/core.js (100%) rename {content-scripts/extension-context => JS/extension}/functions.js (100%) rename {content-scripts/extension-context => JS/extension}/init.js (89%) rename {content-scripts/extension-context/youtube-features => JS/extension/www.youtube.com}/appearance/comments/comments.css (100%) rename {content-scripts/extension-context/youtube-features => JS/extension/www.youtube.com}/appearance/comments/comments.js (100%) rename {content-scripts/extension-context/youtube-features => JS/extension/www.youtube.com}/appearance/details/details.css (100%) rename {content-scripts/extension-context/youtube-features => JS/extension/www.youtube.com}/appearance/details/details.js (100%) rename {content-scripts/extension-context/youtube-features => JS/extension/www.youtube.com}/appearance/footer/footer.css (100%) rename {content-scripts/extension-context/youtube-features => JS/extension/www.youtube.com}/appearance/header/header.css (100%) rename {content-scripts/extension-context/youtube-features => JS/extension/www.youtube.com}/appearance/player/player.css (100%) rename {content-scripts/extension-context/youtube-features => JS/extension/www.youtube.com}/appearance/player/player.js (100%) rename {content-scripts/extension-context/youtube-features => JS/extension/www.youtube.com}/appearance/sidebar/sidebar.css (97%) rename {content-scripts/extension-context/youtube-features => JS/extension/www.youtube.com}/appearance/sidebar/sidebar.js (100%) rename {content-scripts/extension-context/youtube-features => JS/extension/www.youtube.com}/general/general.css (100%) rename {content-scripts/extension-context/youtube-features => JS/extension/www.youtube.com}/general/general.js (100%) rename {content-scripts/extension-context/youtube-features => JS/extension/www.youtube.com}/night-mode/night-mode.css (100%) rename {content-scripts/extension-context/youtube-features => JS/extension/www.youtube.com}/night-mode/night-mode.js (100%) rename content-scripts/extension-context/youtube-features/content-styles.css => JS/extension/www.youtube.com/styles.css (99%) create mode 100644 JS/satus.css create mode 100644 JS/satus.js rename {content-scripts/website-context => JS/web-accessible}/core.js (100%) rename {content-scripts/website-context => JS/web-accessible}/functions.js (100%) rename {content-scripts/website-context => JS/web-accessible}/init.js (100%) rename {content-scripts/website-context => JS/web-accessible}/mutations.js (100%) rename {content-scripts/website-context/youtube-features => JS/web-accessible/www.youtube.com}/appearance.js (100%) rename {content-scripts/website-context/youtube-features => JS/web-accessible/www.youtube.com}/blacklist.js (100%) rename {content-scripts/website-context/youtube-features => JS/web-accessible/www.youtube.com}/channel.js (100%) rename {content-scripts/website-context/youtube-features => JS/web-accessible/www.youtube.com}/player.js (100%) rename {content-scripts/website-context/youtube-features => JS/web-accessible/www.youtube.com}/playlist.js (100%) rename {content-scripts/website-context/youtube-features => JS/web-accessible/www.youtube.com}/settings.js (100%) rename {content-scripts/website-context/youtube-features => JS/web-accessible/www.youtube.com}/shortcuts.js (100%) rename {content-scripts/website-context/youtube-features => JS/web-accessible/www.youtube.com}/themes.js (100%) rename {assets => media}/fonts/Roboto-Light.ttf (100%) rename {assets => media}/fonts/Roboto-Medium.ttf (100%) rename {assets => media}/fonts/Roboto-Regular.ttf (100%) rename {assets => media}/icons/128.png (100%) rename {assets => media}/icons/16.png (100%) rename {assets => media}/icons/32.png (100%) rename {assets => media}/icons/48.png (100%) diff --git a/content-scripts/extension-context/core.js b/JS/extension/core.js similarity index 100% rename from content-scripts/extension-context/core.js rename to JS/extension/core.js diff --git a/content-scripts/extension-context/functions.js b/JS/extension/functions.js similarity index 100% rename from content-scripts/extension-context/functions.js rename to JS/extension/functions.js diff --git a/content-scripts/extension-context/init.js b/JS/extension/init.js similarity index 89% rename from content-scripts/extension-context/init.js rename to JS/extension/init.js index 4d6c70206..ada399745 100644 --- a/content-scripts/extension-context/init.js +++ b/JS/extension/init.js @@ -56,18 +56,18 @@ chrome.runtime.sendMessage({ }); extension.inject([ - '/content-scripts/website-context/core.js', - '/content-scripts/website-context/functions.js', - '/content-scripts/website-context/youtube-features/appearance.js', - '/content-scripts/website-context/youtube-features/themes.js', - '/content-scripts/website-context/youtube-features/player.js', - '/content-scripts/website-context/youtube-features/playlist.js', - '/content-scripts/website-context/youtube-features/channel.js', - '/content-scripts/website-context/youtube-features/shortcuts.js', - '/content-scripts/website-context/youtube-features/blacklist.js', - '/content-scripts/website-context/youtube-features/settings.js', - '/content-scripts/website-context/init.js', - '/content-scripts/website-context/mutations.js' + '/JS/web-accessible/core.js', + '/JS/web-accessible/functions.js', + '/JS/web-accessible/www.youtube.com/appearance.js', + '/JS/web-accessible/www.youtube.com/themes.js', + '/JS/web-accessible/www.youtube.com/player.js', + '/JS/web-accessible/www.youtube.com/playlist.js', + '/JS/web-accessible/www.youtube.com/channel.js', + '/JS/web-accessible/www.youtube.com/shortcuts.js', + '/JS/web-accessible/www.youtube.com/blacklist.js', + '/JS/web-accessible/www.youtube.com/settings.js', + '/JS/web-accessible/init.js', + '/JS/web-accessible/mutations.js' ], function () { extension.ready = true; diff --git a/content-scripts/extension-context/youtube-features/appearance/comments/comments.css b/JS/extension/www.youtube.com/appearance/comments/comments.css similarity index 100% rename from content-scripts/extension-context/youtube-features/appearance/comments/comments.css rename to JS/extension/www.youtube.com/appearance/comments/comments.css diff --git a/content-scripts/extension-context/youtube-features/appearance/comments/comments.js b/JS/extension/www.youtube.com/appearance/comments/comments.js similarity index 100% rename from content-scripts/extension-context/youtube-features/appearance/comments/comments.js rename to JS/extension/www.youtube.com/appearance/comments/comments.js diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.css b/JS/extension/www.youtube.com/appearance/details/details.css similarity index 100% rename from content-scripts/extension-context/youtube-features/appearance/details/details.css rename to JS/extension/www.youtube.com/appearance/details/details.css diff --git a/content-scripts/extension-context/youtube-features/appearance/details/details.js b/JS/extension/www.youtube.com/appearance/details/details.js similarity index 100% rename from content-scripts/extension-context/youtube-features/appearance/details/details.js rename to JS/extension/www.youtube.com/appearance/details/details.js diff --git a/content-scripts/extension-context/youtube-features/appearance/footer/footer.css b/JS/extension/www.youtube.com/appearance/footer/footer.css similarity index 100% rename from content-scripts/extension-context/youtube-features/appearance/footer/footer.css rename to JS/extension/www.youtube.com/appearance/footer/footer.css diff --git a/content-scripts/extension-context/youtube-features/appearance/header/header.css b/JS/extension/www.youtube.com/appearance/header/header.css similarity index 100% rename from content-scripts/extension-context/youtube-features/appearance/header/header.css rename to JS/extension/www.youtube.com/appearance/header/header.css diff --git a/content-scripts/extension-context/youtube-features/appearance/player/player.css b/JS/extension/www.youtube.com/appearance/player/player.css similarity index 100% rename from content-scripts/extension-context/youtube-features/appearance/player/player.css rename to JS/extension/www.youtube.com/appearance/player/player.css diff --git a/content-scripts/extension-context/youtube-features/appearance/player/player.js b/JS/extension/www.youtube.com/appearance/player/player.js similarity index 100% rename from content-scripts/extension-context/youtube-features/appearance/player/player.js rename to JS/extension/www.youtube.com/appearance/player/player.js diff --git a/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css b/JS/extension/www.youtube.com/appearance/sidebar/sidebar.css similarity index 97% rename from content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css rename to JS/extension/www.youtube.com/appearance/sidebar/sidebar.css index a7b5a523e..140e6b8b2 100644 --- a/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css +++ b/JS/extension/www.youtube.com/appearance/sidebar/sidebar.css @@ -55,15 +55,9 @@ html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it { left:-10px !important;} } -/* ADS */ - -html[it-player-ads="block_all"] *[target-id*='engagement-panel-ads'] {display: none !important;} -html[it-player-ads="block_all"] .ytd-ad-slot-renderer {display: none !important;} - /*-------------------------------------------------------------- # RELATED VIDEOS --------------------------------------------------------------*/ - html[it-related-videos='hidden'] #related > ytd-watch-next-secondary-results-renderer > #items, html[it-related-videos=hidden] div#secondary div#panels, html[it-related-videos=hidden] div#secondary div#donation-shelf { @@ -105,7 +99,6 @@ html[it-related-videos='collapsed'] #related > ytd-watch-next-secondary-results- /*-------------------------------------------------------------- # NO PAGE MARGIN --------------------------------------------------------------*/ - html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #columns.ytd-watch-flexy, html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #primary.ytd-watch-flexy { max-width: 99% !important; margin: 1px !important; } @@ -137,7 +130,6 @@ html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullsc /*-------------------------------------------------------------- # MOVE SIDEBAR LEFT --------------------------------------------------------------*/ - html[it-sidebar-left='true'] #columns>#primary, html[it-sidebar-left='true'] #head>#upnext { @@ -149,7 +141,6 @@ html[it-sidebar-left='true'] #columns>#secondary {margin-left: calc(0.5vw + 4px) /*-------------------------------------------------------------- # MOVE THUMBNAILS RIGHT --------------------------------------------------------------*/ - html[it-thumbnails-right='true'] ytd-watch-next-secondary-results-renderer ytd-thumbnail { order: 7 !important; } @@ -157,7 +148,6 @@ html[it-thumbnails-right='true'] ytd-watch-next-secondary-results-renderer ytd-t /*-------------------------------------------------------------- # HIDE THUMBNAILS --------------------------------------------------------------*/ - html[it-thumbnails-hide='true'] ytd-watch-next-secondary-results-renderer ytd-thumbnail, html[it-thumbnails-hide='true'] ytd-watch-next-secondary-results-renderer ytd-playlist-thumbnail { display: none !important; @@ -166,7 +156,6 @@ html[it-thumbnails-hide='true'] ytd-watch-next-secondary-results-renderer ytd-pl /*-------------------------------------------------------------- # LIVECHAT --------------------------------------------------------------*/ - html[it-livechat='hidden'] ytd-live-chat-frame#chat { display: none !important; } @@ -174,7 +163,6 @@ html[it-livechat='hidden'] ytd-live-chat-frame#chat { /*-------------------------------------------------------------- # HIDE PLAYLIST --------------------------------------------------------------*/ - html[it-hide-playlist='true'] ytd-playlist-panel-renderer#playlist { display: none !important; } diff --git a/content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.js b/JS/extension/www.youtube.com/appearance/sidebar/sidebar.js similarity index 100% rename from content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.js rename to JS/extension/www.youtube.com/appearance/sidebar/sidebar.js diff --git a/content-scripts/extension-context/youtube-features/general/general.css b/JS/extension/www.youtube.com/general/general.css similarity index 100% rename from content-scripts/extension-context/youtube-features/general/general.css rename to JS/extension/www.youtube.com/general/general.css diff --git a/content-scripts/extension-context/youtube-features/general/general.js b/JS/extension/www.youtube.com/general/general.js similarity index 100% rename from content-scripts/extension-context/youtube-features/general/general.js rename to JS/extension/www.youtube.com/general/general.js diff --git a/content-scripts/extension-context/youtube-features/night-mode/night-mode.css b/JS/extension/www.youtube.com/night-mode/night-mode.css similarity index 100% rename from content-scripts/extension-context/youtube-features/night-mode/night-mode.css rename to JS/extension/www.youtube.com/night-mode/night-mode.css diff --git a/content-scripts/extension-context/youtube-features/night-mode/night-mode.js b/JS/extension/www.youtube.com/night-mode/night-mode.js similarity index 100% rename from content-scripts/extension-context/youtube-features/night-mode/night-mode.js rename to JS/extension/www.youtube.com/night-mode/night-mode.js diff --git a/content-scripts/extension-context/youtube-features/content-styles.css b/JS/extension/www.youtube.com/styles.css similarity index 99% rename from content-scripts/extension-context/youtube-features/content-styles.css rename to JS/extension/www.youtube.com/styles.css index e8806098e..0e14f3704 100644 --- a/content-scripts/extension-context/youtube-features/content-styles.css +++ b/JS/extension/www.youtube.com/styles.css @@ -1,10 +1,6 @@ /*------------------------------------------------------------------------------ >>> TABLE OF CONTENTS: -------------------------------------------------------------------------------- -3.0 Themes - 3.1 Bluelight - 3.2 Dim - 3.3 Themes 4.0 Player 4.1 Crop chapter titles 4.2 Ads @@ -22,1637 +18,289 @@ 8.0 Settings 8.1 ImprovedTube icon on YouTube 9.0 Blacklist +3.0 Themes + 3.1 Bluelight + 3.2 Dim + 3.3 Themes +------------------------------------------------------------------------------*/ +/*------------------------------------------------------------------------------ +4.0 PLAYER ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ -3.3 THEMES +4.1 CROP CHAPTER TITLES ------------------------------------------------------------------------------*/ +html[it-player-crop-chapter-titles=false] .ytp-chapter-title { + width: auto !important; +} -/*update: cinematics */ -[it-theme=black] #cinematics, -[it-theme=desert] #cinematics {display:none !important} -[it-theme=dawn] #cinematics, -[it-theme=sunset] #cinematics, -[it-theme=night] #cinematics { mix-blend-mode: lighten !important} -[it-theme=plain] #cinematics { filter:invert(100%) !important; mix-blend-mode: darken !important} -/*BLACK*/ +/*------------------------------------------------------------------------------ +4.2 ADS +------------------------------------------------------------------------------*/ +html[it-player-ads=subscribed_channels] #related #player-ads, +html[it-player-ads=subscribed_channels] #masthead-ad, +html[it-player-ads=block_all] #related #player-ads, +html[it-player-ads=block_all] #masthead-ad, +html[it-player-ads=subscribed_channels] *[target-id*='engagement-panel-ads'], +html[it-player-ads=subscribed_channels] .ytd-ad-slot-renderer, +html[it-player-ads="block_all"] *[target-id*='engagement-panel-ads'], +html[it-player-ads="block_all"] .ytd-ad-slot-renderer { + display: none !important;} -[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), -[data-system-color-scheme=dark][it-theme=black][it-schedule=system_peference_dark], -[data-system-color-scheme=light][it-theme=black][it-schedule=system_peference_light] { - --yt-swatch-primary: #000 !important; - --yt-swatch-primary-darker: #000 !important; - --yt-swatch-text: rgb(255, 255, 255) !important; - --yt-swatch-important-text: rgb(255, 255, 255) !important; - --yt-swatch-input-text: rgba(255, 255, 255, 1) !important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; - --yt-swatch-logo-override: rgb(255, 255, 255) !important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; - --yt-swatch-header-primary: #000; - --yt-spec-base-background: #000 !important; - --yt-spec-raised-background: #000 !important; - --yt-spec-menu-background: #000 !important; - --yt-spec-inverted-background: #fff; - --yt-spec-brand-background-solid: #000 !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; - --yt-spec-general-background-a: #000 !important; - --yt-spec-general-background-b: #000 !important; - --yt-spec-general-background-c: #000 !important; - --yt-spec-error-background: #1f1f1f !important; - --yt-spec-text-primary: #aaa !important; - --yt-spec-text-primary-inverse: #003459 !important; - --yt-spec-text-secondary: #aaa !important; - --yt-spec-text-disabled: #aaa !important; - --yt-spec-call-to-action: #065fd4 !important; - --yt-spec-icon-active-other: #aaa !important; - --yt-spec-icon-inactive: #aaa !important; - --yt-spec-icon-disabled: #aaa !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, .05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, .15) !important; - --yt-spec-suggested-action: #f2f8ff !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, .10) !important; - --yt-spec-touch-response: #000 !important; - --yt-spec-filled-button-text: #aaa !important; - --yt-spec-call-to-action-inverse: #aaa !important; - --yt-spec-brand-icon-active: #aaa !important; - --yt-spec-brand-icon-inactive: #aaa !important; - --yt-spec-brand-button-background: #242424 !important; - --yt-spec-brand-link-text: #aaa !important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, .60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, .30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, .30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: #aaa !important; - --yt-spec-wordmark-text: #aaa !important; - --yt-spec-10-percent-layer: #242424 !important; - --yt-spec-selected-nav-text: #aaa !important; - --yt-spec-themed-blue: #065fd4 !important; - --yt-spec-themed-green: #107516 !important; +/*------------------------------------------------------------------------------ +4.3 MINIPLAYER +------------------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------------- +# POSITION & SIZE +-----------------------------------------------------------------------------*/ +.it-mini-player { + position: fixed !important; + z-index: 2006 !important; + top: 0 !important; + left: 0 !important; + max-width: 100vw !important; + max-height: calc(100vh - var(--it-header-size)) !important; + background: #000 !important; + box-shadow: rgba(0, 0, 0, .4) 0 2px 8px !important; + will-change: transform, width, height !important; } -html[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo, -[data-system-color-scheme=dark][it-theme=black][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo, -[data-system-color-scheme=light][it-theme=black][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); +.it-mini-player .html5-video-container { + height: 100% !important; } -[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, -[data-system-color-scheme=dark][it-theme=black][it-schedule=system_peference_dark] ytd-masthead, -[data-system-color-scheme=light][it-theme=black][it-schedule=system_peference_light] ytd-masthead { - background: #000 !important; - --yt-swatch-primary: rgb(35, 35, 35) !important; - --yt-swatch-primary-darker: rgb(32, 32, 32) !important; - --yt-swatch-text: rgb(255, 255, 255) !important; - --yt-swatch-important-text: rgb(255, 255, 255) !important; - --yt-swatch-input-text: rgba(255, 255, 255, 1) !important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; - --yt-swatch-logo-override: rgb(255, 255, 255) !important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; +.it-mini-player .ytp-miniplayer-button, +.it-mini-player .ytp-size-button { + display: none !important; } -[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=dark][it-theme=black][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-theme=black][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #000; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; +.it-mini-player video { + top: 0 !important; + left: 0 !important; + width: 100% !important; + height: 100% !important; } -[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], -[data-system-color-scheme=dark][it-theme=black][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-theme=black][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #000; - --yt-playlist-background-item: #000; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #000; - --paper-listbox-background-color: #000; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #000; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #000; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #000; - --yt-menu-focus-background-color: #000; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #000; - --yt-main-app-background: #000; - --yt-main-app-background-tmp: #000; - --yt-guide-background: #000; - --yt-dialog-background: #000; - --yt-searchbox-background: #000 !important; - --yt-channel-header-background: #000; - --yt-sidebar-background: #000; - --yt-transcript-background: #000; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #000; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #000; - --yt-blue-suggestive: transparent; +/*----------------------------------------------------------------------------- +# DRAGGING +-----------------------------------------------------------------------------*/ +.improvedtube-mini-player.dragging { + pointer-events: none !important; } - -/*DAWN*/ - -[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), -[data-system-color-scheme=dark][it-theme=dawn][it-schedule=system_peference_dark], -[data-system-color-scheme=light][it-theme=dawn][it-schedule=system_peference_light] { - --yt-swatch-primary: #d44d5c !important; - --yt-swatch-primary-darker: #d44d5c !important; - --yt-swatch-text: rgb(255, 255, 255) !important; - --yt-swatch-important-text: rgb(255, 255, 255) !important; - --yt-swatch-input-text: rgba(255, 255, 255, 1) !important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; - --yt-swatch-logo-override: rgb(255, 255, 255) !important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; - --yt-swatch-header-primary: #a46; - --yt-spec-base-background: #734 !important; - --yt-spec-raised-background: #734 !important; - --yt-spec-menu-background: #734 !important; - --yt-spec-inverted-background: #fff; - --yt-spec-brand-background-solid: #d44d5c !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; - --yt-spec-general-background-a: #d44d5c !important; - --yt-spec-general-background-b: #d44d5c !important; - --yt-spec-general-background-c: #d44d5c !important; - --yt-spec-error-background: #1f1f1f !important; - --yt-spec-text-primary: rgb(255, 255, 255) !important; - --yt-spec-text-primary-inverse: #003459 !important; - --yt-spec-text-secondary: rgb(255, 255, 255) !important; - --yt-spec-text-disabled: rgb(255, 255, 255) !important; - --yt-spec-call-to-action: #065fd4 !important; - --yt-spec-icon-active-other: rgb(255, 255, 255) !important; - --yt-spec-icon-inactive: rgb(255, 255, 255) !important; - --yt-spec-icon-disabled: rgb(255, 255, 255) !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, .05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, .15) !important; - --yt-spec-suggested-action: #f2f8ff !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, .10) !important; - --yt-spec-touch-response: #d44d5c !important; - --yt-spec-filled-button-text: rgb(255, 255, 255) !important; - --yt-spec-call-to-action-inverse: rgb(255, 255, 255) !important; - --yt-spec-brand-icon-active: rgb(255, 255, 255) !important; - --yt-spec-brand-icon-inactive: rgb(255, 255, 255) !important; - --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; - --yt-spec-brand-link-text: rgb(255, 255, 255) !important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, .60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, .30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, .30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: rgb(255, 255, 255) !important; - --yt-spec-wordmark-text: rgb(255, 255, 255) !important; - --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; - --yt-spec-selected-nav-text: rgb(255, 255, 255) !important; - --yt-spec-themed-blue: #065fd4 !important; - --yt-spec-themed-green: #107516 !important; +.improvedtube-mini-player.dragging *:not(.html5-video-container):not(video) { + visibility: hidden !important; } -[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, -[data-system-color-scheme=dark][it-theme=dawn][it-schedule=system_peference_dark] ytd-masthead, -[data-system-color-scheme=light][it-theme=dawn][it-schedule=system_peference_light] ytd-masthead { - background: #835 !important; - --yt-swatch-primary: rgb(35, 35, 35) !important; - --yt-swatch-primary-darker: rgb(32, 32, 32) !important; - --yt-swatch-text: rgb(255, 255, 255) !important; - --yt-swatch-important-text: rgb(255, 255, 255) !important; - --yt-swatch-input-text: rgba(255, 255, 255, 1) !important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; - --yt-swatch-logo-override: rgb(255, 255, 255) !important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; - --yt-spec-general-background-a: #d44d5c !important; - --yt-spec-general-background-b: #d44d5c !important; - --yt-spec-general-background-c: #d44d5c !important; +html[data-cursor='w-resize'], +html[data-cursor='w-resize'] * { + cursor: w-resize !important; } -[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=dark][it-theme=dawn][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-theme=dawn][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #d44d5c; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; +html[data-cursor='e-resize'], +html[data-cursor='e-resize'] * { + cursor: e-resize !important; } -[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], -[data-system-color-scheme=dark][it-theme=dawn][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-theme=dawn][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #d44d5c; - --yt-playlist-background-item: #d44d5c; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #d44d5c; - --paper-listbox-background-color: #d44d5c; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #d44d5c; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #d44d5c; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #d44d5c; - --yt-menu-focus-background-color: #d44d5c; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #d44d5c; - --yt-main-app-background: #d44d5c; - --yt-main-app-background-tmp: #d44d5c; - --yt-guide-background: #d44d5c; - --yt-dialog-background: #734; - --yt-searchbox-background: #672c3b; - --yt-channel-header-background: #d44d5c; - --yt-sidebar-background: #d44d5c; - --yt-transcript-background: #d44d5c; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #d44d5c; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #d44d5c; - --yt-blue-suggestive: transparent; - --yt-spec-text-secondary: #f5dbe2; +html[it-mini-player-cursor='n-resize']::after, +html[it-mini-player-cursor='e-resize']::after, +html[it-mini-player-cursor='s-resize']::after, +html[it-mini-player-cursor='w-resize']::after, +html[it-mini-player-cursor='ne-resize']::after, +html[it-mini-player-cursor='se-resize']::after, +html[it-mini-player-cursor='sw-resize']::after, +html[it-mini-player-cursor='nw-resize']::after { + position: fixed; + z-index: 2147483650; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + content: ''; } -html[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo, -[data-system-color-scheme=dark][it-theme=dawn][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo, -[data-system-color-scheme=light][it-theme=dawn][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { - -webkit-filter: grayscale(1) brightness(4); - filter: grayscale(1) brightness(4); +html[it-mini-player-cursor='n-resize']::after { + cursor: n-resize; } +html[it-mini-player-cursor='e-resize']::after { + cursor: e-resize; +} -/*DESERT*/ - -[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), -[data-system-color-scheme=dark][it-theme=desert][it-schedule=system_peference_dark], -[data-system-color-scheme=light][it-theme=desert][it-schedule=system_peference_light] { - --yt-swatch-primary: #faf9f9 !important; - --yt-swatch-primary-darker: #faf9f9 !important; - --yt-swatch-text: #555 !important; - --yt-swatch-important-text: #555 !important; - --yt-swatch-input-text: #555 !important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; - --yt-swatch-logo-override: #555 !important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; - --yt-swatch-header-primary: #bee3db; - --yt-spec-base-background: #faf9f9 !important; - --yt-spec-raised-background: #faf9f9 !important; - --yt-spec-menu-background: #faf9f9 !important; - --yt-spec-inverted-background: #fff; - --yt-spec-brand-background-solid: #faf9f9 !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; - --yt-spec-general-background-a: #faf9f9 !important; - --yt-spec-general-background-b: #faf9f9 !important; - --yt-spec-general-background-c: #faf9f9 !important; - --yt-spec-error-background: #1f1f1f !important; - --yt-spec-text-primary: #555 !important; - --yt-spec-text-primary-inverse: #003459 !important; - --yt-spec-text-secondary: #555 !important; - --yt-spec-text-disabled: #555 !important; - --yt-spec-call-to-action: #065fd4 !important; - --yt-spec-icon-active-other: #555 !important; - --yt-spec-icon-inactive: #555 !important; - --yt-spec-icon-disabled: #555 !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, .05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, .15) !important; - --yt-spec-suggested-action: #f2f8ff !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, .10) !important; - --yt-spec-touch-response: #faf9f9 !important; - --yt-spec-filled-button-text: #555 !important; - --yt-spec-call-to-action-inverse: #555 !important; - --yt-spec-brand-icon-active: #555 !important; - --yt-spec-brand-icon-inactive: #555 !important; - --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; - --yt-spec-brand-link-text: #555 !important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, .60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, .30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, .30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: #555 !important; - --yt-spec-wordmark-text: #555 !important; - --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; - --yt-spec-selected-nav-text: #555 !important; - --yt-spec-themed-blue: #065fd4 !important; - --yt-spec-themed-green: #107516 !important; +html[it-mini-player-cursor='s-resize']::after { + cursor: s-resize; } -[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, -[data-system-color-scheme=dark][it-theme=desert][it-schedule=system_peference_dark] ytd-masthead, -[data-system-color-scheme=light][it-theme=desert][it-schedule=system_peference_light] ytd-masthead { - background: #ced3cb !important; - --yt-swatch-primary: rgb(35, 35, 35) !important; - --yt-swatch-primary-darker: rgb(32, 32, 32) !important; - --yt-swatch-text: #555 !important; - --yt-swatch-important-text: #555 !important; - --yt-swatch-input-text: #555 !important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; - --yt-swatch-logo-override: #555 !important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; - --yt-spec-general-background-a: #faf9f9 !important; - --yt-spec-general-background-b: #faf9f9 !important; - --yt-spec-general-background-c: #faf9f9 !important; +html[it-mini-player-cursor='w-resize']::after { + cursor: w-resize; } -[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=dark][it-theme=desert][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-theme=desert][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #faf9f9; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: #555; - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; +html[it-mini-player-cursor='ne-resize']::after { + cursor: ne-resize; } -[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], -[data-system-color-scheme=dark][it-theme=desert][it-schedule=system_peference_dark]:not(.style-scope)[dark], -[data-system-color-scheme=light][it-theme=desert][it-schedule=system_peference_light]:not(.style-scope)[dark] { - --yt-spec-icon-inactive: #555; - --yt-spec-text-primary: #555; - --ytd-searchbox-border-color: #555; - --ytd-searchbox-legacy-border-color: #555; - --ytd-searchbox-legacy-border-shadow-color: #555; - --ytd-searchbox-legacy-button-color: #555; - --ytd-searchbox-legacy-button-border-color: #555; - --ytd-searchbox-legacy-button-focus-color: #555; - --ytd-searchbox-legacy-button-hover-color: #555; - --ytd-searchbox-legacy-button-hover-border-color: #555; - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: #555; - --ytd-moderation-panel-hover: #555; - --ytd-moderation-panel-comment-text: #555; - --ytd-moderation-panel-comment-metadata-text: #555; - --ytd-moderation-icon-color: #555; - --ytd-moderation-icon-hover-color: #555; - --ytd-comment-text-color: #555; - --ytd-comment-metadata-text-color: #555; - --ytd-watch-card-secondary-text-color: #555; - --ytd-watch-card-album-header-background: #555; - --ytd-backstage-metadata-text-color: #555; - --ytd-backstage-video-link-background-color: #555; - --ytd-backstage-image-alert-color: #555; - --ytd-backstage-cancel-background-color: #555; - --ytd-backstage-cancel-color: #555; - --ytd-backstage-creationbox-background-color: #555; - --ytd-backstage-creationbox-background-color-focus: #555; - --ytd-backstage-creationbox-inactive-color: #555; - --ytd-backstage-creationbox-text-color: #555; - --ytd-backstage-creationbox-input-text-color: #555; - --ytd-backstage-creationbox-disabled-button-color: #555; - --ytd-backstage-creationbox-disabled-button-text-color: #555; - --ytd-backstage-attachment-icon-hover-color: #555; - --ytd-sponsorships-background-color-focus: #555; - --ytd-badge-background: #555; - --ytd-badge-disabled-color: #555; - --ytd-collection-badge-color: #555; - --ytd-owner-badge-color: #555; - --ytd-simple-badge-color: #555; - --ytd-ad-badge-text-color: #555; - --ytd-shopping-product-info: #555; - --ytd-toggle-color: #555; - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: #555; - --ytd-transcript-toolbar-background-color: #555; - --ytd-transcript-toolbar-text: #555; - --ytd-video-publish-date-color: #555; - --ytd-vat-notice-text: #555; - --ytd-offer-background-color: #555; - --ytd-video-game-watch-card-logo-color: #555; - --ytd-watch-split-pane-sidebar-background-color: #555; - --yt-std-body-100: #555; - --yt-std-body-200: #555; - --yt-std-body-300: #555; - --yt-std-surface-200: #555; - --yt-std-surface-300: #555; - --yt-std-surface-400: #555; - --yt-primary-color: #555; - --yt-primary-text-color: #555; - --yt-hovered-text-color: #555; - --yt-secondary-text-color: #555; - --yt-tertiary-text-color: #555; - --yt-disabled-text-color: #555; - --yt-placeholder-text-color: #555; - --yt-border-color: #555; - --yt-commentbox-border-inactive: #555; - --yt-commentbox-border-active: #555; - --yt-alert-background: #555; - --yt-paper-button-ink-color: #555; - --yt-icon-color: #555; - --yt-icon-hover-color: #555; - --yt-icon-active-color: #555; - --yt-icon-disabled-color: #555; - --yt-endpoint-color: #555; - --yt-expand-color: #555; - --yt-metadata-color: #555; - --yt-channel-owner: #555; - --yt-placeholder-text: #555; - --yt-playlist-background-header: #faf9f9; - --yt-playlist-background-item: #faf9f9; - --yt-playlist-title-text: #555; - --yt-playlist-message-text: #555; - --yt-playlist-message-text-hover: #555; - --yt-subscribe-button-text-color: #555; - --yt-brand-color: #555; - --yt-button-text-color: #555; - --yt-button-payment-text-color: #555; - --yt-copyright-text: #555; - --yt-guide-entry-hover-background-color: #555; - --yt-thumbnail-placeholder-color: #555; - --yt-primary-disabled-button-text-color: #555; - --yt-featured-channel-title-text-color: #555; - --yt-formatted-string-deemphasize-color: #555; - --paper-menu-background-color: #faf9f9; - --paper-listbox-background-color: #faf9f9; - --paper-menu-color: #555; - --paper-listbox-color: #555; - --paper-dialog-background-color: #faf9f9; - --paper-toggle-button-unchecked-bar-color: #555; - --yt-simple-menu-header-background: #faf9f9; - --yt-item-section-header-color: #555; - --yt-menu-hover-backgound-color: #faf9f9; - --yt-menu-focus-background-color: #faf9f9; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: #555; - --yt-material-searchbox-active: #555; - --yt-material-searchbox-inactive-shadow: #555; - --yt-material-searchbox-active-shadow: #555; - --yt-material-searchbox-inset: #555; - --yt-material-searchbox-text-color: #555; - --yt-app-background: #faf9f9; - --yt-main-app-background: #faf9f9; - --yt-main-app-background-tmp: #faf9f9; - --yt-guide-background: #faf9f9; - --yt-dialog-background: #bee3db; - --yt-searchbox-background: #faf9f9; - --yt-channel-header-background: #faf9f9; - --yt-sidebar-background: #faf9f9; - --yt-transcript-background: #faf9f9; - --yt-chat-bubble-other-border-color: #555; - --yt-chat-bubble-other-background-color: #faf9f9; - --yt-chat-bubble-self-border-color: #555; - --yt-chat-bubble-self-background-color: #faf9f9; - --yt-blue-suggestive: transparent; +html[it-mini-player-cursor='se-resize']::after { + cursor: se-resize; } +html[it-mini-player-cursor='sw-resize']::after { + cursor: sw-resize; +} -/*NIGHT*/ +html[it-mini-player-cursor='nw-resize']::after { + cursor: nw-resize; +} -[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), -[data-system-color-scheme=dark][it-theme=night][it-schedule=system_peference_dark], -[data-system-color-scheme=light][it-theme=night][it-schedule=system_peference_light] { - --yt-swatch-primary: #003459 !important; - --yt-swatch-primary-darker: #003459 !important; - --yt-swatch-text: rgb(255, 255, 255) !important; - --yt-swatch-important-text: rgb(255, 255, 255) !important; - --yt-swatch-input-text: rgba(255, 255, 255, 1) !important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; - --yt-swatch-logo-override: rgb(255, 255, 255) !important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; - --yt-swatch-header-primary: #007ea7; - --yt-spec-base-background: #003459 !important; - --yt-spec-raised-background: #003459 !important; - --yt-spec-menu-background: #003459 !important; - --yt-spec-inverted-background: #fff; - --yt-spec-brand-background-solid: #003459 !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; - --yt-spec-general-background-a: #003459 !important; - --yt-spec-general-background-b: #003459 !important; - --yt-spec-general-background-c: #003459 !important; - --yt-spec-error-background: #1f1f1f !important; - --yt-spec-text-primary: #fff !important; - --yt-spec-text-primary-inverse: #003459 !important; - --yt-spec-text-secondary: #fff !important; - --yt-spec-text-disabled: #fff !important; - --yt-spec-call-to-action: #065fd4 !important; - --yt-spec-icon-active-other: #fff !important; - --yt-spec-icon-inactive: #fff !important; - --yt-spec-icon-disabled: #fff !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, .05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, .15) !important; - --yt-spec-suggested-action: #f2f8ff !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, .10) !important; - --yt-spec-touch-response: #003459 !important; - --yt-spec-filled-button-text: #fff !important; - --yt-spec-call-to-action-inverse: #fff !important; - --yt-spec-brand-icon-active: #fff !important; - --yt-spec-brand-icon-inactive: #fff !important; - --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; - --yt-spec-brand-link-text: #fff !important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, .60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, .30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, .30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: #fff !important; - --yt-spec-wordmark-text: #fff !important; - --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; - --yt-spec-selected-nav-text: #fff !important; - --yt-spec-themed-blue: #065fd4 !important; - --yt-spec-themed-green: #107516 !important; + +/*------------------------------------------------------------------------------ +# +------------------------------------------------------------------------------*/ +.it-player-button { + position: relative !important; + display: flex !important; + min-width: 40px !important; + padding: 0 !important; + justify-content: center !important; + align-items: center !important; } -html[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo, -[data-system-color-scheme=dark][it-theme=night][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo, -[data-system-color-scheme=light][it-theme=night][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { - -webkit-filter: grayscale(1) brightness(3.5); - filter: grayscale(1) brightness(3.5); +.it-player-button>svg { + width: 56% !important; + height: auto !important; + fill: #fff !important; } -[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, -[data-system-color-scheme=dark][it-theme=night][it-schedule=system_peference_dark] ytd-masthead, -[data-system-color-scheme=light][it-theme=night][it-schedule=system_peference_light] ytd-masthead { - background: #007ea7 !important; - --yt-swatch-primary: rgb(35, 35, 35) !important; - --yt-swatch-primary-darker: rgb(32, 32, 32) !important; - --yt-swatch-text: rgb(255, 255, 255) !important; - --yt-swatch-important-text: rgb(255, 255, 255) !important; - --yt-swatch-input-text: rgba(255, 255, 255, 1) !important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; - --yt-swatch-logo-override: rgb(255, 255, 255) !important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; - --yt-spec-general-background-a: #003459 !important; - --yt-spec-general-background-b: #003459 !important; - --yt-spec-general-background-c: #003459 !important; +.it-player-button--tooltip { + font-size: 13px !important; + font-weight: 500 !important; + line-height: 15px !important; + position: fixed !important; + padding: 5px 9px; + transform: translate(-50%, -150%) !important; + pointer-events: none !important; + color: #eee !important; + border-radius: 2px !important; + background-color: rgba(28, 28, 28, .9) !important; + text-shadow: 0 0 2px rgb(0, 0, 0, .5) !important; } -[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=dark][it-theme=night][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-theme=night][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #003459; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; +body.no-scroll .it-player-button--tooltip { + font-size: 20px !important; + line-height: 22px !important; + padding: 8px 9px !important; + transform: translate(-50%, -75%) !important; } -[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], -[data-system-color-scheme=dark][it-theme=night][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-theme=night][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: #fff; - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #003459; - --yt-playlist-background-item: #003459; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #003459; - --paper-listbox-background-color: #003459; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #003459; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #003459; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #003459; - --yt-menu-focus-background-color: #003459; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #003459; - --yt-main-app-background: #003459; - --yt-main-app-background-tmp: #003459; - --yt-guide-background: #003459; - --yt-dialog-background: #007ea7; - --yt-searchbox-background: #003459 !important; - --yt-channel-header-background: #003459; - --yt-sidebar-background: #003459; - --yt-transcript-background: #003459; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #003459; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #003459; - --yt-blue-suggestive: transparent; +/*------------------------------------------------------------------------------ +5.0 PLAYLIST +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +5.1 REVERSE +------------------------------------------------------------------------------*/ +#it-reverse-playlist { + width: 40px; + height: 40px; } +#it-reverse-playlist svg { + fill: var(--yt-spec-icon-inactive); +} -/*PLAIN*/ +#it-reverse-playlist.active svg { + fill: #f00; +} -[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), -[data-system-color-scheme=dark][it-theme=plain][it-schedule=system_peference_dark], -[data-system-color-scheme=light][it-theme=plain][it-schedule=system_peference_light] { - --yt-swatch-primary: #c7efcf !important; - --yt-swatch-primary-darker: #c7efcf !important; - --yt-swatch-text: #666 !important; - --yt-swatch-important-text: #666 !important; - --yt-swatch-input-text: #666 !important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; - --yt-swatch-logo-override: #666 !important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; - --yt-swatch-header-primary: #d6d1b1; - --yt-spec-base-background: #d3e1c6 !important; - --yt-spec-raised-background: #c7efcf !important; - --yt-spec-menu-background: #c7efcf !important; - --yt-spec-inverted-background: #fff; - --yt-spec-brand-background-solid: #c7efcf !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; - --yt-spec-general-background-a: #c7efcf !important; - --yt-spec-general-background-b: #c7efcf !important; - --yt-spec-general-background-c: #c7efcf !important; - --yt-spec-error-background: #1f1f1f !important; - --yt-spec-text-primary: #666 !important; - --yt-spec-text-primary-inverse: #003459 !important; - --yt-spec-text-secondary: #666 !important; - --yt-spec-text-disabled: #666 !important; - --yt-spec-call-to-action: #065fd4 !important; - --yt-spec-icon-active-other: #666 !important; - --yt-spec-icon-inactive: #666 !important; - --yt-spec-icon-disabled: #666 !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, .05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, .15) !important; - --yt-spec-suggested-action: #f2f8ff !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, .10) !important; - --yt-spec-touch-response: #c7efcf !important; - --yt-spec-filled-button-text: #666 !important; - --yt-spec-call-to-action-inverse: #666 !important; - --yt-spec-brand-icon-active: #666 !important; - --yt-spec-brand-icon-inactive: #666 !important; - --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; - --yt-spec-brand-link-text: #666 !important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, .60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, .30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, .30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: #666 !important; - --yt-spec-wordmark-text: #666 !important; - --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; - --yt-spec-selected-nav-text: #666 !important; - --yt-spec-themed-blue: #065fd4 !important; - --yt-spec-themed-green: #107516 !important; + +/*------------------------------------------------------------------------------ +6.0 CHANNEL +------------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ +6.1 PLAY ALL BUTTON +------------------------------------------------------------------------------*/ +.it-play-all-button { + font-size: 14px !important; + font-weight: 500 !important; + display: flex !important; + box-sizing: border-box !important; + height: 36px !important; + padding: 6px 36px !important; + cursor: pointer !important; + text-transform: uppercase !important; + color: var(--yt-button-color, var(--yt-spec-text-secondary)) !important; + align-items: center !important; + justify-content: center !important; + text-decoration: none !important; } -[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, -[data-system-color-scheme=dark][it-theme=plain][it-schedule=system_peference_dark] ytd-masthead, -[data-system-color-scheme=light][it-theme=plain][it-schedule=system_peference_light] ytd-masthead { - background: #e4ccaa !important; - --yt-swatch-primary: rgb(35, 35, 35) !important; - --yt-swatch-primary-darker: rgb(32, 32, 32) !important; - --yt-swatch-text: #666 !important; - --yt-swatch-important-text: #666 !important; - --yt-swatch-input-text: #666 !important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; - --yt-swatch-logo-override: #666 !important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; - --yt-spec-general-background-a: #c7efcf !important; - --yt-spec-general-background-b: #c7efcf !important; - --yt-spec-general-background-c: #c7efcf !important; +.it-play-all-button svg { + width: 24px !important; + height: 24px !important; + margin: 0 8px 0 0 !important; + fill: currentColor !important; } -[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=dark][it-theme=plain][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-theme=plain][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #c7efcf; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; + +/*------------------------------------------------------------------------------ +6.2 FEATURED CONTENT +------------------------------------------------------------------------------*/ +html[it-channel-hide-featured-content=true] #secondary #contents.style-scope.ytd-browse-secondary-contents-renderer, +html[it-channel-hide-featured-content=true] .branded-page-v2-secondary-col { + display: none !important; } -[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], -[data-system-color-scheme=dark][it-theme=plain][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-theme=plain][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { - --yt-spec-icon-inactive: #666; - --yt-spec-text-primary: #666; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #c7efcf; - --yt-playlist-background-item: #c7efcf; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #c7efcf; - --paper-listbox-background-color: #c7efcf; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #c7efcf; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #c7efcf; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #c7efcf; - --yt-menu-focus-background-color: #c7efcf; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #c7efcf; - --yt-main-app-background: #c7efcf; - --yt-main-app-background-tmp: #c7efcf; - --yt-guide-background: #c7efcf; - --yt-dialog-background: #d6d1b1; - --yt-searchbox-background: #c7efcf; - --yt-channel-header-background: #c7efcf; - --yt-sidebar-background: #c7efcf; - --yt-transcript-background: #c7efcf; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #c7efcf; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #c7efcf; - --yt-blue-suggestive: transparent; -} - - -/*SUNSET*/ - -[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), -[data-system-color-scheme=dark][it-theme=sunset][it-schedule=system_peference_dark], -[data-system-color-scheme=light][it-theme=sunset][it-schedule=system_peference_light] { - --yt-swatch-primary: #2f3364 !important; - --yt-swatch-primary-darker: #2f3364 !important; - --yt-swatch-text: rgb(255, 255, 255) !important; - --yt-swatch-important-text: rgb(255, 255, 255) !important; - --yt-swatch-input-text: rgba(255, 255, 255, 1) !important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; - --yt-swatch-logo-override: rgb(255, 255, 255) !important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; - --yt-swatch-header-primary: #f56264; - --yt-spec-base-background: #283567 !important; - --yt-spec-raised-background: #2f3364 !important; - --yt-spec-menu-background: #2f3364 !important; - --yt-spec-inverted-background: #fff; - --yt-spec-brand-background-solid: #2f3364 !important; - --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; - --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; - --yt-spec-general-background-a: #2f3364 !important; - --yt-spec-general-background-b: #2f3364 !important; - --yt-spec-general-background-c: #2f3364 !important; - --yt-spec-error-background: #1f1f1f !important; - --yt-spec-text-primary: #fff !important; - --yt-spec-text-primary-inverse: #003459 !important; - --yt-spec-text-secondary: #fff !important; - --yt-spec-text-disabled: #fff !important; - --yt-spec-call-to-action: #065fd4 !important; - --yt-spec-icon-active-other: #fff !important; - --yt-spec-icon-inactive: #fff !important; - --yt-spec-icon-disabled: #fff !important; - --yt-spec-badge-chip-background: rgba(0, 0, 0, .05) !important; - --yt-spec-verified-badge-background: rgba(0, 0, 0, .15) !important; - --yt-spec-suggested-action: #f2f8ff !important; - --yt-spec-button-chip-background-hover: rgba(0, 0, 0, .10) !important; - --yt-spec-touch-response: #2f3364 !important; - --yt-spec-filled-button-text: #fff !important; - --yt-spec-call-to-action-inverse: #fff !important; - --yt-spec-brand-icon-active: #fff !important; - --yt-spec-brand-icon-inactive: #fff !important; - --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; - --yt-spec-brand-link-text: #fff !important; - --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, .60) !important; - --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, .30) !important; - --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, .30) !important; - --yt-spec-inactive-text-button-focus-outline: #aaa !important; - --yt-spec-brand-subscribe-button-background: #fff !important; - --yt-spec-wordmark-text: #fff !important; - --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; - --yt-spec-selected-nav-text: #fff !important; - --yt-spec-themed-blue: #065fd4 !important; - --yt-spec-themed-green: #107516 !important; -} - -[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, -[data-system-color-scheme=dark][it-theme=sunset][it-schedule=system_peference_dark] ytd-masthead, -[data-system-color-scheme=light][it-theme=sunset][it-schedule=system_peference_light] ytd-masthead { - background: #f56258 !important; - --yt-swatch-primary: rgb(35, 35, 35) !important; - --yt-swatch-primary-darker: rgb(32, 32, 32) !important; - --yt-swatch-text: rgb(255, 255, 255) !important; - --yt-swatch-important-text: rgb(255, 255, 255) !important; - --yt-swatch-input-text: rgba(255, 255, 255, 1) !important; - --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; - --yt-swatch-logo-override: rgb(255, 255, 255) !important; - --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; - --yt-spec-general-background-a: #2f3364 !important; - --yt-spec-general-background-b: #2f3364 !important; - --yt-spec-general-background-c: #2f3364 !important; -} - -[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=dark][it-theme=sunset][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), -[data-system-color-scheme=light][it-theme=sunset][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { - --yt-live-chat-action-panel-background-color: #2f3364; - --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); - --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); - --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); - --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); - --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); - --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); - --yt-formatted-string-emoji-size: 24px; -} - -[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), -html[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], -[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], -[data-system-color-scheme=dark][it-theme=sunset][it-schedule=system_peference_dark]:not(.style-scope)[dark], -[data-system-color-scheme=light][it-theme=sunset][it-schedule=system_peference_light]:not(.style-scope)[dark] { - --yt-spec-icon-inactive: #fff; - --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); - --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); - --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); - --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); - --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); - --ytd-moderation-panel-hover: hsl(0, 0%, 11%); - --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); - --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-comment-text-color: hsla(0, 100%, 100%, .88); - --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); - --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); - --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); - --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); - --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); - --ytd-backstage-cancel-color: hsl(0, 0%, 100%); - --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); - --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); - --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); - --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); - --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); - --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); - --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); - --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); - --ytd-badge-background: hsla(0, 100%, 100%, .08); - --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); - --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); - --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); - --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); - --ytd-ad-badge-text-color: hsl(0, 0%, 7%); - --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); - --ytd-toggle-color: hsl(0, 0%, 93.3%); - --ytd-survey-button-color: var(--yt-primary-text-color); - --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); - --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); - --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); - --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); - --ytd-offer-background-color: hsl(0, 0%, 14%); - --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); - --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); - --yt-std-body-100: hsla(0, 100%, 100%, .08); - --yt-std-body-200: hsla(0, 100%, 100%, .26); - --yt-std-body-300: hsla(0, 100%, 100%, .5); - --yt-std-surface-200: hsl(0, 0%, 11%); - --yt-std-surface-300: hsl(0, 0%, 14%); - --yt-std-surface-400: hsl(0, 0%, 16%); - --yt-primary-color: hsla(0, 100%, 100%, .88); - --yt-primary-text-color: hsla(0, 100%, 100%, .88); - --yt-hovered-text-color: hsla(0, 100%, 100%, .74); - --yt-secondary-text-color: hsla(0, 100%, 100%, .5); - --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); - --yt-disabled-text-color: hsla(0, 100%, 100%, .26); - --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); - --yt-border-color: hsla(0, 100%, 100%, .08); - --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); - --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); - --yt-alert-background: hsla(0, 100%, 100%, .26); - --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); - --yt-icon-color: hsla(0, 100%, 100%, .5); - --yt-icon-hover-color: hsla(0, 100%, 100%, .74); - --yt-icon-active-color: hsla(0, 100%, 100%, .88); - --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); - --yt-endpoint-color: hsl(0, 0%, 53.3%); - --yt-expand-color: hsla(0, 0%, 100%, .6); - --yt-metadata-color: hsl(0, 0%, 53.3%); - --yt-channel-owner: hsla(0, 100%, 100%, .88); - --yt-placeholder-text: hsl(0, 0%, 93.3%); - --yt-playlist-background-header: #2f3364; - --yt-playlist-background-item: #2f3364; - --yt-playlist-title-text: hsla(0, 100%, 100%, .88); - --yt-playlist-message-text: hsl(0, 0%, 93.3%); - --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); - --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); - --yt-brand-color: hsla(0, 100%, 100%, .88); - --yt-button-text-color: hsla(0, 100%, 100%, .5); - --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); - --yt-copyright-text: hsla(0, 0%, 100%, .6); - --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); - --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); - --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); - --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); - --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); - --paper-menu-background-color: #2f3364; - --paper-listbox-background-color: #2f3364; - --paper-menu-color: hsla(0, 100%, 100%, .88); - --paper-listbox-color: hsla(0, 100%, 100%, .88); - --paper-dialog-background-color: #2f3364; - --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); - --yt-simple-menu-header-background: #2f3364; - --yt-item-section-header-color: hsl(0, 0%, 93.3%); - --yt-menu-hover-backgound-color: #2f3364; - --yt-menu-focus-background-color: #2f3364; - --yt-searchbox-text-color: var(--yt-primary-text-color); - --yt-material-searchbox-inactive: hsl(0, 0%, 7%); - --yt-material-searchbox-active: hsl(0, 0%, 100%); - --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); - --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); - --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); - --yt-app-background: #2f3364; - --yt-main-app-background: #2f3364; - --yt-main-app-background-tmp: #2f3364; - --yt-guide-background: #2f3364; - --yt-dialog-background: #d62828; - --yt-searchbox-background: #fa7965 !important; - --yt-channel-header-background: #2f3364; - --yt-sidebar-background: #2f3364; - --yt-transcript-background: #2f3364; - --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); - --yt-chat-bubble-other-background-color: #2f3364; - --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); - --yt-chat-bubble-self-background-color: #2f3364; - --yt-blue-suggestive: transparent; +html[it-channel-hide-featured-content=true] #secondary.ytd-two-column-browse-results-renderer, +html[it-channel-hide-featured-content=true] #secondary ytd-browse-secondary-contents-renderer { + width: fit-content; + height: fit-content; + padding: 0; } /*------------------------------------------------------------------------------ -4.0 PLAYER -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -4.1 CROP CHAPTER TITLES +7.0 SHORTCUTS ------------------------------------------------------------------------------*/ - -html[it-player-crop-chapter-titles=false] .ytp-chapter-title { - width: auto !important; +#it-status { + font-size: 40px; + position: absolute; + top: 2rem; + right: 3rem; + color: #0ff; + text-shadow: 1px 1px 2px #000; + z-index: 3000; } /*------------------------------------------------------------------------------ -4.2 ADS +8.0 SETTINGS ------------------------------------------------------------------------------*/ -html[it-player-ads=subscribed_channels] #related #player-ads, -html[it-player-ads=block_all] #related #player-ads, -html[it-player-ads=subscribed_channels] #masthead-ad, -html[it-player-ads=block_all] #masthead-ad { - display: none !important; -} - - /*------------------------------------------------------------------------------ -4.3 MINIPLAYER +8.1 IMPROVEDTUBE ICON ON YOUTUBE ------------------------------------------------------------------------------*/ - -/*----------------------------------------------------------------------------- -# POSITION & SIZE ------------------------------------------------------------------------------*/ - -.it-mini-player { - position: fixed !important; - z-index: 2006 !important; - top: 0 !important; - left: 0 !important; - max-width: 100vw !important; - max-height: calc(100vh - var(--it-header-size)) !important; - background: #000 !important; - box-shadow: rgba(0, 0, 0, .4) 0 2px 8px !important; - will-change: transform, width, height !important; -} - -.it-mini-player .html5-video-container { - height: 100% !important; +.it-button { + position: relative; + box-sizing: unset; + width: 24px; + height: 24px; + padding: 8px; + cursor: pointer; + border: none; + outline: none; + background: transparent; } -.it-mini-player .ytp-miniplayer-button, -.it-mini-player .ytp-size-button { - display: none !important; +.it-button--below-player { + position: relative; + top: -6px; } -.it-mini-player video { - top: 0 !important; - left: 0 !important; - width: 100% !important; - height: 100% !important; -} - - -/*----------------------------------------------------------------------------- -# DRAGGING ------------------------------------------------------------------------------*/ - -.improvedtube-mini-player.dragging { - pointer-events: none !important; -} - -.improvedtube-mini-player.dragging *:not(.html5-video-container):not(video) { - visibility: hidden !important; -} - -html[data-cursor='w-resize'], -html[data-cursor='w-resize'] * { - cursor: w-resize !important; -} - -html[data-cursor='e-resize'], -html[data-cursor='e-resize'] * { - cursor: e-resize !important; -} - -html[it-mini-player-cursor='n-resize']::after, -html[it-mini-player-cursor='e-resize']::after, -html[it-mini-player-cursor='s-resize']::after, -html[it-mini-player-cursor='w-resize']::after, -html[it-mini-player-cursor='ne-resize']::after, -html[it-mini-player-cursor='se-resize']::after, -html[it-mini-player-cursor='sw-resize']::after, -html[it-mini-player-cursor='nw-resize']::after { - position: fixed; - z-index: 2147483650; - top: 0; - left: 0; - width: 100vw; - height: 100vh; - content: ''; -} - -html[it-mini-player-cursor='n-resize']::after { - cursor: n-resize; -} - -html[it-mini-player-cursor='e-resize']::after { - cursor: e-resize; -} - -html[it-mini-player-cursor='s-resize']::after { - cursor: s-resize; -} - -html[it-mini-player-cursor='w-resize']::after { - cursor: w-resize; -} - -html[it-mini-player-cursor='ne-resize']::after { - cursor: ne-resize; -} - -html[it-mini-player-cursor='se-resize']::after { - cursor: se-resize; -} - -html[it-mini-player-cursor='sw-resize']::after { - cursor: sw-resize; -} - -html[it-mini-player-cursor='nw-resize']::after { - cursor: nw-resize; -} - - -/*------------------------------------------------------------------------------ -# -------------------------------------------------------------------------------*/ - -.it-player-button { - position: relative !important; - display: flex !important; - min-width: 40px !important; - padding: 0 !important; - justify-content: center !important; - align-items: center !important; -} - -.it-player-button>svg { - width: 56% !important; - height: auto !important; - fill: #fff !important; -} - -.it-player-button--tooltip { - font-size: 13px !important; - font-weight: 500 !important; - line-height: 15px !important; - position: fixed !important; - padding: 5px 9px; - transform: translate(-50%, -150%) !important; - pointer-events: none !important; - color: #eee !important; - border-radius: 2px !important; - background-color: rgba(28, 28, 28, .9) !important; - text-shadow: 0 0 2px rgb(0, 0, 0, .5) !important; -} - -body.no-scroll .it-player-button--tooltip { - font-size: 20px !important; - line-height: 22px !important; - padding: 8px 9px !important; - transform: translate(-50%, -75%) !important; -} - - -/*------------------------------------------------------------------------------ -5.0 PLAYLIST -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -5.1 REVERSE -------------------------------------------------------------------------------*/ - -#it-reverse-playlist { - width: 40px; - height: 40px; -} - -#it-reverse-playlist svg { - fill: var(--yt-spec-icon-inactive); -} - -#it-reverse-playlist.active svg { - fill: #f00; -} - - -/*------------------------------------------------------------------------------ -6.0 CHANNEL -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -6.1 PLAY ALL BUTTON -------------------------------------------------------------------------------*/ - -.it-play-all-button { - font-size: 14px !important; - font-weight: 500 !important; - display: flex !important; - box-sizing: border-box !important; - height: 36px !important; - padding: 6px 36px !important; - cursor: pointer !important; - text-transform: uppercase !important; - color: var(--yt-button-color, var(--yt-spec-text-secondary)) !important; - align-items: center !important; - justify-content: center !important; - text-decoration: none !important; -} - -.it-play-all-button svg { - width: 24px !important; - height: 24px !important; - margin: 0 8px 0 0 !important; - fill: currentColor !important; -} - - -/*------------------------------------------------------------------------------ -6.2 FEATURED CONTENT -------------------------------------------------------------------------------*/ - -html[it-channel-hide-featured-content=true] #secondary #contents.style-scope.ytd-browse-secondary-contents-renderer, -html[it-channel-hide-featured-content=true] .branded-page-v2-secondary-col { - display: none !important; -} - -html[it-channel-hide-featured-content=true] #secondary.ytd-two-column-browse-results-renderer, -html[it-channel-hide-featured-content=true] #secondary ytd-browse-secondary-contents-renderer { - width: fit-content; - height: fit-content; - padding: 0; -} - - -/*------------------------------------------------------------------------------ -7.0 SHORTCUTS -------------------------------------------------------------------------------*/ - -#it-status { - font-size: 40px; - position: absolute; - top: 2rem; - right: 3rem; - color: #0ff; - text-shadow: 1px 1px 2px #000; - z-index: 3000; -} - - -/*------------------------------------------------------------------------------ -8.0 SETTINGS -------------------------------------------------------------------------------*/ - -/*------------------------------------------------------------------------------ -8.1 IMPROVEDTUBE ICON ON YOUTUBE -------------------------------------------------------------------------------*/ - -.it-button { - position: relative; - box-sizing: unset; - width: 24px; - height: 24px; - padding: 8px; - cursor: pointer; - border: none; - outline: none; - background: transparent; -} - -.it-button--below-player { - position: relative; - top: -6px; -} - -.it-button>span { - display: none; - margin: 0 0 0 24px; +.it-button>span { + display: none; + margin: 0 0 0 24px; } .it-button::before { @@ -1755,7 +403,6 @@ ytd-guide-section-renderer .it-button::after { /*------------------------------------------------------------------------------ 9.0 BLACKLIST ------------------------------------------------------------------------------*/ - .it-add-to-blacklist { position: absolute; top: 4px; @@ -1798,110 +445,1450 @@ ytd-guide-section-renderer .it-button::after { width: 96px; } -.it-add-to-blacklist svg { - position: absolute; - top: 4px; - left: 4px; - width: 20px; - height: 20px; - fill: var(--yt-spec-icon-active-other, #fff); - pointer-events: none; -} +.it-add-to-blacklist svg { + position: absolute; + top: 4px; + left: 4px; + width: 20px; + height: 20px; + fill: var(--yt-spec-icon-active-other, #fff); + pointer-events: none; +} + +.it-add-channel-to-blacklist { + background-color: var(--yt-spec-badge-chip-background); + color: var(--yt-spec-text-secondary); + border-radius: 2px; + padding: var(--yt-button-padding); + margin: auto var(--ytd-subscribe-button-margin, 4px); + white-space: nowrap; + font-size: var(--ytd-tab-system_-_font-size); + font-weight: var(--ytd-tab-system_-_font-weight); + font-family: inherit; + letter-spacing: 0; + display: flex; + justify-content: center; + align-items: center; + border: none; + text-transform: uppercase; + cursor: pointer; +} + +*:hover>.it-add-to-blacklist { + visibility: visible; +} + +.it-blacklisted-video { + opacity: .1; +} + + +/*------------NEW---------------*/ + +.improvedtube-sidebar-a { + font-size: 1.4rem; + line-height: var(--yt-guide-highlight-line-height, 1.8rem); + position: relative; + display: flex; + box-sizing: border-box; + width: 100%; + height: 40px; + padding: 0 24px; + text-decoration: none; + color: var(--yt-spec-text-primary); + justify-content: flex-start; + align-items: center; +} + +.improvedtube-sidebar-a:hover { + background-color: var(--yt-spec-10-percent-layer); +} + +.improvedtube-sidebar-a::before { + width: 20px; + height: 20px; + margin: 2px 26px 2px 2px; + content: ''; + border-radius: 50%; + background: #f00; +} + +.improvedtube-sidebar-a::after { + position: absolute; + left: 33px; + display: block; + content: ''; + opacity: .9; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 8px solid rgb(255, 255, 255); +} + +.improvedtube-player-button { + position: relative; + width: 40px; + height: 36px; + margin: 0 8px; + padding: 6px; + cursor: pointer; + border: none; + outline: none; + background: none; + fill: var(--yt-spec-icon-inactive); +} + +.improvedtube-player-button:last-of-type { + margin-right: 24px; +} + +.improvedtube-player-button:hover::after { + position: absolute; + top: 150%; + left: 50%; + padding: 8px; + content: attr(data-tooltip); + transform: translateX(-50%); + color: var(--paper-tooltip-text-color, white); + border-radius: 2px; + background-color: var(--paper-tooltip-background, #616161); +} + +/*------------------------------------------------------------------------------ +3.0 THEMES +------------------------------------------------------------------------------*/ + +/*update: cinematics */ +[it-theme=black] #cinematics, +[it-theme=desert] #cinematics {display:none !important} +[it-theme=dawn] #cinematics, +[it-theme=sunset] #cinematics, +[it-theme=night] #cinematics { mix-blend-mode: lighten !important} +[it-theme=plain] #cinematics { filter:invert(100%) !important; mix-blend-mode: darken !important} + +/*BLACK*/ + +[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), +[data-system-color-scheme=dark][it-theme=black][it-schedule=system_peference_dark], +[data-system-color-scheme=light][it-theme=black][it-schedule=system_peference_light] { + --yt-swatch-primary: #000 !important; + --yt-swatch-primary-darker: #000 !important; + --yt-swatch-text: rgb(255, 255, 255) !important; + --yt-swatch-important-text: rgb(255, 255, 255) !important; + --yt-swatch-input-text: rgba(255, 255, 255, 1) !important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; + --yt-swatch-logo-override: rgb(255, 255, 255) !important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; + --yt-swatch-header-primary: #000; + --yt-spec-base-background: #000 !important; + --yt-spec-raised-background: #000 !important; + --yt-spec-menu-background: #000 !important; + --yt-spec-inverted-background: #fff; + --yt-spec-brand-background-solid: #000 !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; + --yt-spec-general-background-a: #000 !important; + --yt-spec-general-background-b: #000 !important; + --yt-spec-general-background-c: #000 !important; + --yt-spec-error-background: #1f1f1f !important; + --yt-spec-text-primary: #aaa !important; + --yt-spec-text-primary-inverse: #003459 !important; + --yt-spec-text-secondary: #aaa !important; + --yt-spec-text-disabled: #aaa !important; + --yt-spec-call-to-action: #065fd4 !important; + --yt-spec-icon-active-other: #aaa !important; + --yt-spec-icon-inactive: #aaa !important; + --yt-spec-icon-disabled: #aaa !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, .05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, .15) !important; + --yt-spec-suggested-action: #f2f8ff !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, .10) !important; + --yt-spec-touch-response: #000 !important; + --yt-spec-filled-button-text: #aaa !important; + --yt-spec-call-to-action-inverse: #aaa !important; + --yt-spec-brand-icon-active: #aaa !important; + --yt-spec-brand-icon-inactive: #aaa !important; + --yt-spec-brand-button-background: #242424 !important; + --yt-spec-brand-link-text: #aaa !important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, .60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, .30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, .30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #aaa !important; + --yt-spec-wordmark-text: #aaa !important; + --yt-spec-10-percent-layer: #242424 !important; + --yt-spec-selected-nav-text: #aaa !important; + --yt-spec-themed-blue: #065fd4 !important; + --yt-spec-themed-green: #107516 !important; +} + +html[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo, +[data-system-color-scheme=dark][it-theme=black][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo, +[data-system-color-scheme=light][it-theme=black][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { + -webkit-filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); +} + +[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, +[data-system-color-scheme=dark][it-theme=black][it-schedule=system_peference_dark] ytd-masthead, +[data-system-color-scheme=light][it-theme=black][it-schedule=system_peference_light] ytd-masthead { + background: #000 !important; + --yt-swatch-primary: rgb(35, 35, 35) !important; + --yt-swatch-primary-darker: rgb(32, 32, 32) !important; + --yt-swatch-text: rgb(255, 255, 255) !important; + --yt-swatch-important-text: rgb(255, 255, 255) !important; + --yt-swatch-input-text: rgba(255, 255, 255, 1) !important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; + --yt-swatch-logo-override: rgb(255, 255, 255) !important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; +} + +[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=dark][it-theme=black][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=black][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { + --yt-live-chat-action-panel-background-color: #000; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; +} + +[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-theme=black]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], +[data-system-color-scheme=dark][it-theme=black][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=black][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #000; + --yt-playlist-background-item: #000; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #000; + --paper-listbox-background-color: #000; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #000; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #000; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #000; + --yt-menu-focus-background-color: #000; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #000; + --yt-main-app-background: #000; + --yt-main-app-background-tmp: #000; + --yt-guide-background: #000; + --yt-dialog-background: #000; + --yt-searchbox-background: #000 !important; + --yt-channel-header-background: #000; + --yt-sidebar-background: #000; + --yt-transcript-background: #000; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #000; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #000; + --yt-blue-suggestive: transparent; +} + + +/*DAWN*/ + +[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), +[data-system-color-scheme=dark][it-theme=dawn][it-schedule=system_peference_dark], +[data-system-color-scheme=light][it-theme=dawn][it-schedule=system_peference_light] { + --yt-swatch-primary: #d44d5c !important; + --yt-swatch-primary-darker: #d44d5c !important; + --yt-swatch-text: rgb(255, 255, 255) !important; + --yt-swatch-important-text: rgb(255, 255, 255) !important; + --yt-swatch-input-text: rgba(255, 255, 255, 1) !important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; + --yt-swatch-logo-override: rgb(255, 255, 255) !important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; + --yt-swatch-header-primary: #a46; + --yt-spec-base-background: #734 !important; + --yt-spec-raised-background: #734 !important; + --yt-spec-menu-background: #734 !important; + --yt-spec-inverted-background: #fff; + --yt-spec-brand-background-solid: #d44d5c !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; + --yt-spec-general-background-a: #d44d5c !important; + --yt-spec-general-background-b: #d44d5c !important; + --yt-spec-general-background-c: #d44d5c !important; + --yt-spec-error-background: #1f1f1f !important; + --yt-spec-text-primary: rgb(255, 255, 255) !important; + --yt-spec-text-primary-inverse: #003459 !important; + --yt-spec-text-secondary: rgb(255, 255, 255) !important; + --yt-spec-text-disabled: rgb(255, 255, 255) !important; + --yt-spec-call-to-action: #065fd4 !important; + --yt-spec-icon-active-other: rgb(255, 255, 255) !important; + --yt-spec-icon-inactive: rgb(255, 255, 255) !important; + --yt-spec-icon-disabled: rgb(255, 255, 255) !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, .05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, .15) !important; + --yt-spec-suggested-action: #f2f8ff !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, .10) !important; + --yt-spec-touch-response: #d44d5c !important; + --yt-spec-filled-button-text: rgb(255, 255, 255) !important; + --yt-spec-call-to-action-inverse: rgb(255, 255, 255) !important; + --yt-spec-brand-icon-active: rgb(255, 255, 255) !important; + --yt-spec-brand-icon-inactive: rgb(255, 255, 255) !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: rgb(255, 255, 255) !important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, .60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, .30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, .30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: rgb(255, 255, 255) !important; + --yt-spec-wordmark-text: rgb(255, 255, 255) !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: rgb(255, 255, 255) !important; + --yt-spec-themed-blue: #065fd4 !important; + --yt-spec-themed-green: #107516 !important; +} + +[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, +[data-system-color-scheme=dark][it-theme=dawn][it-schedule=system_peference_dark] ytd-masthead, +[data-system-color-scheme=light][it-theme=dawn][it-schedule=system_peference_light] ytd-masthead { + background: #835 !important; + --yt-swatch-primary: rgb(35, 35, 35) !important; + --yt-swatch-primary-darker: rgb(32, 32, 32) !important; + --yt-swatch-text: rgb(255, 255, 255) !important; + --yt-swatch-important-text: rgb(255, 255, 255) !important; + --yt-swatch-input-text: rgba(255, 255, 255, 1) !important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; + --yt-swatch-logo-override: rgb(255, 255, 255) !important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; + --yt-spec-general-background-a: #d44d5c !important; + --yt-spec-general-background-b: #d44d5c !important; + --yt-spec-general-background-c: #d44d5c !important; +} + +[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=dark][it-theme=dawn][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=dawn][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { + --yt-live-chat-action-panel-background-color: #d44d5c; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; +} + +[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], +[data-system-color-scheme=dark][it-theme=dawn][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=dawn][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #d44d5c; + --yt-playlist-background-item: #d44d5c; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #d44d5c; + --paper-listbox-background-color: #d44d5c; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #d44d5c; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #d44d5c; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #d44d5c; + --yt-menu-focus-background-color: #d44d5c; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #d44d5c; + --yt-main-app-background: #d44d5c; + --yt-main-app-background-tmp: #d44d5c; + --yt-guide-background: #d44d5c; + --yt-dialog-background: #734; + --yt-searchbox-background: #672c3b; + --yt-channel-header-background: #d44d5c; + --yt-sidebar-background: #d44d5c; + --yt-transcript-background: #d44d5c; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #d44d5c; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #d44d5c; + --yt-blue-suggestive: transparent; + --yt-spec-text-secondary: #f5dbe2; +} + +html[it-theme=dawn]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo, +[data-system-color-scheme=dark][it-theme=dawn][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo, +[data-system-color-scheme=light][it-theme=dawn][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { + -webkit-filter: grayscale(1) brightness(4); + filter: grayscale(1) brightness(4); +} + + +/*DESERT*/ + +[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), +[data-system-color-scheme=dark][it-theme=desert][it-schedule=system_peference_dark], +[data-system-color-scheme=light][it-theme=desert][it-schedule=system_peference_light] { + --yt-swatch-primary: #faf9f9 !important; + --yt-swatch-primary-darker: #faf9f9 !important; + --yt-swatch-text: #555 !important; + --yt-swatch-important-text: #555 !important; + --yt-swatch-input-text: #555 !important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; + --yt-swatch-logo-override: #555 !important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; + --yt-swatch-header-primary: #bee3db; + --yt-spec-base-background: #faf9f9 !important; + --yt-spec-raised-background: #faf9f9 !important; + --yt-spec-menu-background: #faf9f9 !important; + --yt-spec-inverted-background: #fff; + --yt-spec-brand-background-solid: #faf9f9 !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; + --yt-spec-general-background-a: #faf9f9 !important; + --yt-spec-general-background-b: #faf9f9 !important; + --yt-spec-general-background-c: #faf9f9 !important; + --yt-spec-error-background: #1f1f1f !important; + --yt-spec-text-primary: #555 !important; + --yt-spec-text-primary-inverse: #003459 !important; + --yt-spec-text-secondary: #555 !important; + --yt-spec-text-disabled: #555 !important; + --yt-spec-call-to-action: #065fd4 !important; + --yt-spec-icon-active-other: #555 !important; + --yt-spec-icon-inactive: #555 !important; + --yt-spec-icon-disabled: #555 !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, .05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, .15) !important; + --yt-spec-suggested-action: #f2f8ff !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, .10) !important; + --yt-spec-touch-response: #faf9f9 !important; + --yt-spec-filled-button-text: #555 !important; + --yt-spec-call-to-action-inverse: #555 !important; + --yt-spec-brand-icon-active: #555 !important; + --yt-spec-brand-icon-inactive: #555 !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: #555 !important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, .60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, .30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, .30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #555 !important; + --yt-spec-wordmark-text: #555 !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: #555 !important; + --yt-spec-themed-blue: #065fd4 !important; + --yt-spec-themed-green: #107516 !important; +} + +[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, +[data-system-color-scheme=dark][it-theme=desert][it-schedule=system_peference_dark] ytd-masthead, +[data-system-color-scheme=light][it-theme=desert][it-schedule=system_peference_light] ytd-masthead { + background: #ced3cb !important; + --yt-swatch-primary: rgb(35, 35, 35) !important; + --yt-swatch-primary-darker: rgb(32, 32, 32) !important; + --yt-swatch-text: #555 !important; + --yt-swatch-important-text: #555 !important; + --yt-swatch-input-text: #555 !important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; + --yt-swatch-logo-override: #555 !important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; + --yt-spec-general-background-a: #faf9f9 !important; + --yt-spec-general-background-b: #faf9f9 !important; + --yt-spec-general-background-c: #faf9f9 !important; +} + +[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=dark][it-theme=desert][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=desert][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { + --yt-live-chat-action-panel-background-color: #faf9f9; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: #555; + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; +} + +[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-theme=desert]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], +[data-system-color-scheme=dark][it-theme=desert][it-schedule=system_peference_dark]:not(.style-scope)[dark], +[data-system-color-scheme=light][it-theme=desert][it-schedule=system_peference_light]:not(.style-scope)[dark] { + --yt-spec-icon-inactive: #555; + --yt-spec-text-primary: #555; + --ytd-searchbox-border-color: #555; + --ytd-searchbox-legacy-border-color: #555; + --ytd-searchbox-legacy-border-shadow-color: #555; + --ytd-searchbox-legacy-button-color: #555; + --ytd-searchbox-legacy-button-border-color: #555; + --ytd-searchbox-legacy-button-focus-color: #555; + --ytd-searchbox-legacy-button-hover-color: #555; + --ytd-searchbox-legacy-button-hover-border-color: #555; + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: #555; + --ytd-moderation-panel-hover: #555; + --ytd-moderation-panel-comment-text: #555; + --ytd-moderation-panel-comment-metadata-text: #555; + --ytd-moderation-icon-color: #555; + --ytd-moderation-icon-hover-color: #555; + --ytd-comment-text-color: #555; + --ytd-comment-metadata-text-color: #555; + --ytd-watch-card-secondary-text-color: #555; + --ytd-watch-card-album-header-background: #555; + --ytd-backstage-metadata-text-color: #555; + --ytd-backstage-video-link-background-color: #555; + --ytd-backstage-image-alert-color: #555; + --ytd-backstage-cancel-background-color: #555; + --ytd-backstage-cancel-color: #555; + --ytd-backstage-creationbox-background-color: #555; + --ytd-backstage-creationbox-background-color-focus: #555; + --ytd-backstage-creationbox-inactive-color: #555; + --ytd-backstage-creationbox-text-color: #555; + --ytd-backstage-creationbox-input-text-color: #555; + --ytd-backstage-creationbox-disabled-button-color: #555; + --ytd-backstage-creationbox-disabled-button-text-color: #555; + --ytd-backstage-attachment-icon-hover-color: #555; + --ytd-sponsorships-background-color-focus: #555; + --ytd-badge-background: #555; + --ytd-badge-disabled-color: #555; + --ytd-collection-badge-color: #555; + --ytd-owner-badge-color: #555; + --ytd-simple-badge-color: #555; + --ytd-ad-badge-text-color: #555; + --ytd-shopping-product-info: #555; + --ytd-toggle-color: #555; + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: #555; + --ytd-transcript-toolbar-background-color: #555; + --ytd-transcript-toolbar-text: #555; + --ytd-video-publish-date-color: #555; + --ytd-vat-notice-text: #555; + --ytd-offer-background-color: #555; + --ytd-video-game-watch-card-logo-color: #555; + --ytd-watch-split-pane-sidebar-background-color: #555; + --yt-std-body-100: #555; + --yt-std-body-200: #555; + --yt-std-body-300: #555; + --yt-std-surface-200: #555; + --yt-std-surface-300: #555; + --yt-std-surface-400: #555; + --yt-primary-color: #555; + --yt-primary-text-color: #555; + --yt-hovered-text-color: #555; + --yt-secondary-text-color: #555; + --yt-tertiary-text-color: #555; + --yt-disabled-text-color: #555; + --yt-placeholder-text-color: #555; + --yt-border-color: #555; + --yt-commentbox-border-inactive: #555; + --yt-commentbox-border-active: #555; + --yt-alert-background: #555; + --yt-paper-button-ink-color: #555; + --yt-icon-color: #555; + --yt-icon-hover-color: #555; + --yt-icon-active-color: #555; + --yt-icon-disabled-color: #555; + --yt-endpoint-color: #555; + --yt-expand-color: #555; + --yt-metadata-color: #555; + --yt-channel-owner: #555; + --yt-placeholder-text: #555; + --yt-playlist-background-header: #faf9f9; + --yt-playlist-background-item: #faf9f9; + --yt-playlist-title-text: #555; + --yt-playlist-message-text: #555; + --yt-playlist-message-text-hover: #555; + --yt-subscribe-button-text-color: #555; + --yt-brand-color: #555; + --yt-button-text-color: #555; + --yt-button-payment-text-color: #555; + --yt-copyright-text: #555; + --yt-guide-entry-hover-background-color: #555; + --yt-thumbnail-placeholder-color: #555; + --yt-primary-disabled-button-text-color: #555; + --yt-featured-channel-title-text-color: #555; + --yt-formatted-string-deemphasize-color: #555; + --paper-menu-background-color: #faf9f9; + --paper-listbox-background-color: #faf9f9; + --paper-menu-color: #555; + --paper-listbox-color: #555; + --paper-dialog-background-color: #faf9f9; + --paper-toggle-button-unchecked-bar-color: #555; + --yt-simple-menu-header-background: #faf9f9; + --yt-item-section-header-color: #555; + --yt-menu-hover-backgound-color: #faf9f9; + --yt-menu-focus-background-color: #faf9f9; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: #555; + --yt-material-searchbox-active: #555; + --yt-material-searchbox-inactive-shadow: #555; + --yt-material-searchbox-active-shadow: #555; + --yt-material-searchbox-inset: #555; + --yt-material-searchbox-text-color: #555; + --yt-app-background: #faf9f9; + --yt-main-app-background: #faf9f9; + --yt-main-app-background-tmp: #faf9f9; + --yt-guide-background: #faf9f9; + --yt-dialog-background: #bee3db; + --yt-searchbox-background: #faf9f9; + --yt-channel-header-background: #faf9f9; + --yt-sidebar-background: #faf9f9; + --yt-transcript-background: #faf9f9; + --yt-chat-bubble-other-border-color: #555; + --yt-chat-bubble-other-background-color: #faf9f9; + --yt-chat-bubble-self-border-color: #555; + --yt-chat-bubble-self-background-color: #faf9f9; + --yt-blue-suggestive: transparent; +} + + +/*NIGHT*/ + +[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), +[data-system-color-scheme=dark][it-theme=night][it-schedule=system_peference_dark], +[data-system-color-scheme=light][it-theme=night][it-schedule=system_peference_light] { + --yt-swatch-primary: #003459 !important; + --yt-swatch-primary-darker: #003459 !important; + --yt-swatch-text: rgb(255, 255, 255) !important; + --yt-swatch-important-text: rgb(255, 255, 255) !important; + --yt-swatch-input-text: rgba(255, 255, 255, 1) !important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; + --yt-swatch-logo-override: rgb(255, 255, 255) !important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; + --yt-swatch-header-primary: #007ea7; + --yt-spec-base-background: #003459 !important; + --yt-spec-raised-background: #003459 !important; + --yt-spec-menu-background: #003459 !important; + --yt-spec-inverted-background: #fff; + --yt-spec-brand-background-solid: #003459 !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; + --yt-spec-general-background-a: #003459 !important; + --yt-spec-general-background-b: #003459 !important; + --yt-spec-general-background-c: #003459 !important; + --yt-spec-error-background: #1f1f1f !important; + --yt-spec-text-primary: #fff !important; + --yt-spec-text-primary-inverse: #003459 !important; + --yt-spec-text-secondary: #fff !important; + --yt-spec-text-disabled: #fff !important; + --yt-spec-call-to-action: #065fd4 !important; + --yt-spec-icon-active-other: #fff !important; + --yt-spec-icon-inactive: #fff !important; + --yt-spec-icon-disabled: #fff !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, .05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, .15) !important; + --yt-spec-suggested-action: #f2f8ff !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, .10) !important; + --yt-spec-touch-response: #003459 !important; + --yt-spec-filled-button-text: #fff !important; + --yt-spec-call-to-action-inverse: #fff !important; + --yt-spec-brand-icon-active: #fff !important; + --yt-spec-brand-icon-inactive: #fff !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: #fff !important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, .60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, .30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, .30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #fff !important; + --yt-spec-wordmark-text: #fff !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: #fff !important; + --yt-spec-themed-blue: #065fd4 !important; + --yt-spec-themed-green: #107516 !important; +} + +html[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) #yt-masthead-logo-fragment .masthead-logo-renderer-logo, +[data-system-color-scheme=dark][it-theme=night][it-schedule=system_peference_dark] #yt-masthead-logo-fragment .masthead-logo-renderer-logo, +[data-system-color-scheme=light][it-theme=night][it-schedule=system_peference_light] #yt-masthead-logo-fragment .masthead-logo-renderer-logo { + -webkit-filter: grayscale(1) brightness(3.5); + filter: grayscale(1) brightness(3.5); +} + +[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, +[data-system-color-scheme=dark][it-theme=night][it-schedule=system_peference_dark] ytd-masthead, +[data-system-color-scheme=light][it-theme=night][it-schedule=system_peference_light] ytd-masthead { + background: #007ea7 !important; + --yt-swatch-primary: rgb(35, 35, 35) !important; + --yt-swatch-primary-darker: rgb(32, 32, 32) !important; + --yt-swatch-text: rgb(255, 255, 255) !important; + --yt-swatch-important-text: rgb(255, 255, 255) !important; + --yt-swatch-input-text: rgba(255, 255, 255, 1) !important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; + --yt-swatch-logo-override: rgb(255, 255, 255) !important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; + --yt-spec-general-background-a: #003459 !important; + --yt-spec-general-background-b: #003459 !important; + --yt-spec-general-background-c: #003459 !important; +} + +[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=dark][it-theme=night][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=night][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { + --yt-live-chat-action-panel-background-color: #003459; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; +} + +[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-theme=night]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], +[data-system-color-scheme=dark][it-theme=night][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=night][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: #fff; + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #003459; + --yt-playlist-background-item: #003459; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #003459; + --paper-listbox-background-color: #003459; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #003459; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #003459; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #003459; + --yt-menu-focus-background-color: #003459; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #003459; + --yt-main-app-background: #003459; + --yt-main-app-background-tmp: #003459; + --yt-guide-background: #003459; + --yt-dialog-background: #007ea7; + --yt-searchbox-background: #003459 !important; + --yt-channel-header-background: #003459; + --yt-sidebar-background: #003459; + --yt-transcript-background: #003459; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #003459; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #003459; + --yt-blue-suggestive: transparent; +} + -.it-add-channel-to-blacklist { - background-color: var(--yt-spec-badge-chip-background); - color: var(--yt-spec-text-secondary); - border-radius: 2px; - padding: var(--yt-button-padding); - margin: auto var(--ytd-subscribe-button-margin, 4px); - white-space: nowrap; - font-size: var(--ytd-tab-system_-_font-size); - font-weight: var(--ytd-tab-system_-_font-weight); - font-family: inherit; - letter-spacing: 0; - display: flex; - justify-content: center; - align-items: center; - border: none; - text-transform: uppercase; - cursor: pointer; -} +/*PLAIN*/ -*:hover>.it-add-to-blacklist { - visibility: visible; +[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), +[data-system-color-scheme=dark][it-theme=plain][it-schedule=system_peference_dark], +[data-system-color-scheme=light][it-theme=plain][it-schedule=system_peference_light] { + --yt-swatch-primary: #c7efcf !important; + --yt-swatch-primary-darker: #c7efcf !important; + --yt-swatch-text: #666 !important; + --yt-swatch-important-text: #666 !important; + --yt-swatch-input-text: #666 !important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; + --yt-swatch-logo-override: #666 !important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; + --yt-swatch-header-primary: #d6d1b1; + --yt-spec-base-background: #d3e1c6 !important; + --yt-spec-raised-background: #c7efcf !important; + --yt-spec-menu-background: #c7efcf !important; + --yt-spec-inverted-background: #fff; + --yt-spec-brand-background-solid: #c7efcf !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; + --yt-spec-general-background-a: #c7efcf !important; + --yt-spec-general-background-b: #c7efcf !important; + --yt-spec-general-background-c: #c7efcf !important; + --yt-spec-error-background: #1f1f1f !important; + --yt-spec-text-primary: #666 !important; + --yt-spec-text-primary-inverse: #003459 !important; + --yt-spec-text-secondary: #666 !important; + --yt-spec-text-disabled: #666 !important; + --yt-spec-call-to-action: #065fd4 !important; + --yt-spec-icon-active-other: #666 !important; + --yt-spec-icon-inactive: #666 !important; + --yt-spec-icon-disabled: #666 !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, .05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, .15) !important; + --yt-spec-suggested-action: #f2f8ff !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, .10) !important; + --yt-spec-touch-response: #c7efcf !important; + --yt-spec-filled-button-text: #666 !important; + --yt-spec-call-to-action-inverse: #666 !important; + --yt-spec-brand-icon-active: #666 !important; + --yt-spec-brand-icon-inactive: #666 !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: #666 !important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, .60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, .30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, .30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #666 !important; + --yt-spec-wordmark-text: #666 !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: #666 !important; + --yt-spec-themed-blue: #065fd4 !important; + --yt-spec-themed-green: #107516 !important; } -.it-blacklisted-video { - opacity: .1; +[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, +[data-system-color-scheme=dark][it-theme=plain][it-schedule=system_peference_dark] ytd-masthead, +[data-system-color-scheme=light][it-theme=plain][it-schedule=system_peference_light] ytd-masthead { + background: #e4ccaa !important; + --yt-swatch-primary: rgb(35, 35, 35) !important; + --yt-swatch-primary-darker: rgb(32, 32, 32) !important; + --yt-swatch-text: #666 !important; + --yt-swatch-important-text: #666 !important; + --yt-swatch-input-text: #666 !important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; + --yt-swatch-logo-override: #666 !important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; + --yt-spec-general-background-a: #c7efcf !important; + --yt-spec-general-background-b: #c7efcf !important; + --yt-spec-general-background-c: #c7efcf !important; } - -/*------------NEW---------------*/ - -.improvedtube-sidebar-a { - font-size: 1.4rem; - line-height: var(--yt-guide-highlight-line-height, 1.8rem); - position: relative; - display: flex; - box-sizing: border-box; - width: 100%; - height: 40px; - padding: 0 24px; - text-decoration: none; - color: var(--yt-spec-text-primary); - justify-content: flex-start; - align-items: center; +[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=dark][it-theme=plain][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=plain][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { + --yt-live-chat-action-panel-background-color: #c7efcf; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; } -.improvedtube-sidebar-a:hover { - background-color: var(--yt-spec-10-percent-layer); +[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-theme=plain]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], +[data-system-color-scheme=dark][it-theme=plain][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=plain][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) { + --yt-spec-icon-inactive: #666; + --yt-spec-text-primary: #666; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #c7efcf; + --yt-playlist-background-item: #c7efcf; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #c7efcf; + --paper-listbox-background-color: #c7efcf; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #c7efcf; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #c7efcf; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #c7efcf; + --yt-menu-focus-background-color: #c7efcf; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #c7efcf; + --yt-main-app-background: #c7efcf; + --yt-main-app-background-tmp: #c7efcf; + --yt-guide-background: #c7efcf; + --yt-dialog-background: #d6d1b1; + --yt-searchbox-background: #c7efcf; + --yt-channel-header-background: #c7efcf; + --yt-sidebar-background: #c7efcf; + --yt-transcript-background: #c7efcf; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #c7efcf; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #c7efcf; + --yt-blue-suggestive: transparent; } -.improvedtube-sidebar-a::before { - width: 20px; - height: 20px; - margin: 2px 26px 2px 2px; - content: ''; - border-radius: 50%; - background: #f00; -} -.improvedtube-sidebar-a::after { - position: absolute; - left: 33px; - display: block; - content: ''; - opacity: .9; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-left: 8px solid rgb(255, 255, 255); +/*SUNSET*/ + +[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]), +[data-system-color-scheme=dark][it-theme=sunset][it-schedule=system_peference_dark], +[data-system-color-scheme=light][it-theme=sunset][it-schedule=system_peference_light] { + --yt-swatch-primary: #2f3364 !important; + --yt-swatch-primary-darker: #2f3364 !important; + --yt-swatch-text: rgb(255, 255, 255) !important; + --yt-swatch-important-text: rgb(255, 255, 255) !important; + --yt-swatch-input-text: rgba(255, 255, 255, 1) !important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; + --yt-swatch-logo-override: rgb(255, 255, 255) !important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; + --yt-swatch-header-primary: #f56264; + --yt-spec-base-background: #283567 !important; + --yt-spec-raised-background: #2f3364 !important; + --yt-spec-menu-background: #2f3364 !important; + --yt-spec-inverted-background: #fff; + --yt-spec-brand-background-solid: #2f3364 !important; + --yt-spec-brand-background-primary: rgba(0, 0, 0, .98) !important; + --yt-spec-brand-background-secondary: rgba(0, 0, 0, .95) !important; + --yt-spec-general-background-a: #2f3364 !important; + --yt-spec-general-background-b: #2f3364 !important; + --yt-spec-general-background-c: #2f3364 !important; + --yt-spec-error-background: #1f1f1f !important; + --yt-spec-text-primary: #fff !important; + --yt-spec-text-primary-inverse: #003459 !important; + --yt-spec-text-secondary: #fff !important; + --yt-spec-text-disabled: #fff !important; + --yt-spec-call-to-action: #065fd4 !important; + --yt-spec-icon-active-other: #fff !important; + --yt-spec-icon-inactive: #fff !important; + --yt-spec-icon-disabled: #fff !important; + --yt-spec-badge-chip-background: rgba(0, 0, 0, .05) !important; + --yt-spec-verified-badge-background: rgba(0, 0, 0, .15) !important; + --yt-spec-suggested-action: #f2f8ff !important; + --yt-spec-button-chip-background-hover: rgba(0, 0, 0, .10) !important; + --yt-spec-touch-response: #2f3364 !important; + --yt-spec-filled-button-text: #fff !important; + --yt-spec-call-to-action-inverse: #fff !important; + --yt-spec-brand-icon-active: #fff !important; + --yt-spec-brand-icon-inactive: #fff !important; + --yt-spec-brand-button-background: rgba(136, 136, 136, 1) !important; + --yt-spec-brand-link-text: #fff !important; + --yt-spec-filled-button-focus-outline: rgba(0, 0, 0, .60) !important; + --yt-spec-call-to-action-button-focus-outline: rgba(0, 0, 0, .30) !important; + --yt-spec-brand-text-button-focus-outline: rgba(204, 0, 0, .30) !important; + --yt-spec-inactive-text-button-focus-outline: #aaa !important; + --yt-spec-brand-subscribe-button-background: #fff !important; + --yt-spec-wordmark-text: #fff !important; + --yt-spec-10-percent-layer: rgba(136, 136, 136, 1) !important; + --yt-spec-selected-nav-text: #fff !important; + --yt-spec-themed-blue: #065fd4 !important; + --yt-spec-themed-green: #107516 !important; } -.improvedtube-player-button { - position: relative; - width: 40px; - height: 36px; - margin: 0 8px; - padding: 6px; - cursor: pointer; - border: none; - outline: none; - background: none; - fill: var(--yt-spec-icon-inactive); +[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) ytd-masthead, +[data-system-color-scheme=dark][it-theme=sunset][it-schedule=system_peference_dark] ytd-masthead, +[data-system-color-scheme=light][it-theme=sunset][it-schedule=system_peference_light] ytd-masthead { + background: #f56258 !important; + --yt-swatch-primary: rgb(35, 35, 35) !important; + --yt-swatch-primary-darker: rgb(32, 32, 32) !important; + --yt-swatch-text: rgb(255, 255, 255) !important; + --yt-swatch-important-text: rgb(255, 255, 255) !important; + --yt-swatch-input-text: rgba(255, 255, 255, 1) !important; + --yt-swatch-textbox-bg: rgba(19, 19, 19, 1) !important; + --yt-swatch-logo-override: rgb(255, 255, 255) !important; + --yt-swatch-icon-color: rgba(136, 136, 136, 1) !important; + --yt-spec-general-background-a: #2f3364 !important; + --yt-spec-general-background-b: #2f3364 !important; + --yt-spec-general-background-c: #2f3364 !important; } -.improvedtube-player-button:last-of-type { - margin-right: 24px; +[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=dark][it-theme=sunset][it-schedule=system_peference_dark]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope), +[data-system-color-scheme=light][it-theme=sunset][it-schedule=system_peference_light]:not([style-scope]):not(.style-scope) *:not([style-scope]):not(.style-scope) { + --yt-live-chat-action-panel-background-color: #2f3364; + --yt-live-chat-action-panel-background-color-transparent: rgba(40, 40, 40, .8); + --yt-live-chat-primary-text-color: hsl(0, 0%, 100%); + --yt-live-chat-secondary-text-color: rgba(255, 255, 255, .7); + --yt-live-chat-tertiary-text-color: rgba(255, 255, 255, .54); + --yt-live-chat-disabled-icon-button-color: rgba(255, 255, 255, .3); + --yt-live-chat-picker-button-color: var(--yt-live-chat-tertiary-text-color); + --yt-formatted-string-emoji-size: 24px; } -.improvedtube-player-button:hover::after { - position: absolute; - top: 150%; - left: 50%; - padding: 8px; - content: attr(data-tooltip); - transform: translateX(-50%); - color: var(--paper-tooltip-text-color, white); - border-radius: 2px; - background-color: var(--paper-tooltip-background, #616161); +[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not([style-scope]):not(.style-scope), +html[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]):not(.style-scope)[dark], +[it-theme=sunset]:not([it-schedule=system_peference_dark]):not([it-schedule=system_peference_light]) :not(.style-scope)[dark], +[data-system-color-scheme=dark][it-theme=sunset][it-schedule=system_peference_dark]:not(.style-scope)[dark], +[data-system-color-scheme=light][it-theme=sunset][it-schedule=system_peference_light]:not(.style-scope)[dark] { + --yt-spec-icon-inactive: #fff; + --ytd-searchbox-border-color: hsla(0, 0%, 53.3%, .2); + --ytd-searchbox-legacy-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-border-shadow-color: hsla(0, 0%, 0%, 0); + --ytd-searchbox-legacy-button-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-focus-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-color: hsla(0, 0%, 100%, .08); + --ytd-searchbox-legacy-button-hover-border-color: hsl(0, 0%, 18.82%); + --ytd-searchbox-legacy-button-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-background: hsla(0, 0%, 11%, .8); + --ytd-moderation-panel-hover: hsl(0, 0%, 11%); + --ytd-moderation-panel-comment-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-panel-comment-metadata-text: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-color: hsla(0, 100%, 100%, .5); + --ytd-moderation-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-comment-text-color: hsla(0, 100%, 100%, .88); + --ytd-comment-metadata-text-color: hsl(0, 0%, 53.3%); + --ytd-watch-card-secondary-text-color: hsl(0, 0%, 93.3%); + --ytd-watch-card-album-header-background: hsl(0, 0%, 6.7%); + --ytd-backstage-metadata-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-video-link-background-color: hsl(0, 0%, 14%); + --ytd-backstage-image-alert-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-cancel-background-color: hsl(0, 0%, 14%); + --ytd-backstage-cancel-color: hsl(0, 0%, 100%); + --ytd-backstage-creationbox-background-color: hsl(0, 0%, 11%); + --ytd-backstage-creationbox-background-color-focus: hsl(0, 0%, 14%); + --ytd-backstage-creationbox-inactive-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-creationbox-text-color: hsla(0, 100%, 100%, .5); + --ytd-backstage-creationbox-input-text-color: hsla(0, 100%, 100%, .88); + --ytd-backstage-creationbox-disabled-button-color: hsla(0, 100%, 100%, .08); + --ytd-backstage-creationbox-disabled-button-text-color: hsla(0, 100%, 100%, .26); + --ytd-backstage-attachment-icon-hover-color: hsla(0, 100%, 100%, .74); + --ytd-sponsorships-background-color-focus: hsl(0, 0%, 11%); + --ytd-badge-background: hsla(0, 100%, 100%, .08); + --ytd-badge-disabled-color: hsla(0, 0%, 100%, .4); + --ytd-collection-badge-color: hsla(0, 0%, 100%, .8); + --ytd-owner-badge-color: hsla(0, 0%, 100%, .4); + --ytd-simple-badge-color: hsla(0, 0%, 100%, .6); + --ytd-ad-badge-text-color: hsl(0, 0%, 7%); + --ytd-shopping-product-info: hsla(0, 100%, 100%, .74); + --ytd-toggle-color: hsl(0, 0%, 93.3%); + --ytd-survey-button-color: var(--yt-primary-text-color); + --ytd-transcript-cue-hover-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-background-color: hsla(0, 0%, 53.3%, .4); + --ytd-transcript-toolbar-text: hsla(0, 100%, 100%, .88); + --ytd-video-publish-date-color: hsla(0, 0%, 100%, .6); + --ytd-vat-notice-text: hsla(0, 0%, 100%, .6); + --ytd-offer-background-color: hsl(0, 0%, 14%); + --ytd-video-game-watch-card-logo-color: hsl(0, 0%, 100%); + --ytd-watch-split-pane-sidebar-background-color: hsl(0, 0%, 11%); + --yt-std-body-100: hsla(0, 100%, 100%, .08); + --yt-std-body-200: hsla(0, 100%, 100%, .26); + --yt-std-body-300: hsla(0, 100%, 100%, .5); + --yt-std-surface-200: hsl(0, 0%, 11%); + --yt-std-surface-300: hsl(0, 0%, 14%); + --yt-std-surface-400: hsl(0, 0%, 16%); + --yt-primary-color: hsla(0, 100%, 100%, .88); + --yt-primary-text-color: hsla(0, 100%, 100%, .88); + --yt-hovered-text-color: hsla(0, 100%, 100%, .74); + --yt-secondary-text-color: hsla(0, 100%, 100%, .5); + --yt-tertiary-text-color: hsla(0, 100%, 100%, .5); + --yt-disabled-text-color: hsla(0, 100%, 100%, .26); + --yt-placeholder-text-color: hsla(0, 100%, 100%, .5); + --yt-border-color: hsla(0, 100%, 100%, .08); + --yt-commentbox-border-inactive: hsla(0, 100%, 100%, .5); + --yt-commentbox-border-active: hsla(0, 100%, 100%, .88); + --yt-alert-background: hsla(0, 100%, 100%, .26); + --yt-paper-button-ink-color: hsla(0, 0%, 100%, .2); + --yt-icon-color: hsla(0, 100%, 100%, .5); + --yt-icon-hover-color: hsla(0, 100%, 100%, .74); + --yt-icon-active-color: hsla(0, 100%, 100%, .88); + --yt-icon-disabled-color: hsla(0, 100%, 100%, .26); + --yt-endpoint-color: hsl(0, 0%, 53.3%); + --yt-expand-color: hsla(0, 0%, 100%, .6); + --yt-metadata-color: hsl(0, 0%, 53.3%); + --yt-channel-owner: hsla(0, 100%, 100%, .88); + --yt-placeholder-text: hsl(0, 0%, 93.3%); + --yt-playlist-background-header: #2f3364; + --yt-playlist-background-item: #2f3364; + --yt-playlist-title-text: hsla(0, 100%, 100%, .88); + --yt-playlist-message-text: hsl(0, 0%, 93.3%); + --yt-playlist-message-text-hover: hsla(0, 100%, 100%, .74); + --yt-subscribe-button-text-color: hsla(0, 100%, 100%, .88); + --yt-brand-color: hsla(0, 100%, 100%, .88); + --yt-button-text-color: hsla(0, 100%, 100%, .5); + --yt-button-payment-text-color: hsla(0, 100%, 100%, .88); + --yt-copyright-text: hsla(0, 0%, 100%, .6); + --yt-guide-entry-hover-background-color: hsla(0, 0%, 53.3%, .4); + --yt-thumbnail-placeholder-color: hsl(0, 0%, 16%); + --yt-primary-disabled-button-text-color: hsla(0, 0%, 100%, .2); + --yt-featured-channel-title-text-color: hsla(0, 100%, 100%, .5); + --yt-formatted-string-deemphasize-color: hsl(0, 0%, 53.3%); + --paper-menu-background-color: #2f3364; + --paper-listbox-background-color: #2f3364; + --paper-menu-color: hsla(0, 100%, 100%, .88); + --paper-listbox-color: hsla(0, 100%, 100%, .88); + --paper-dialog-background-color: #2f3364; + --paper-toggle-button-unchecked-bar-color: hsl(0, 0%, 53.3%); + --yt-simple-menu-header-background: #2f3364; + --yt-item-section-header-color: hsl(0, 0%, 93.3%); + --yt-menu-hover-backgound-color: #2f3364; + --yt-menu-focus-background-color: #2f3364; + --yt-searchbox-text-color: var(--yt-primary-text-color); + --yt-material-searchbox-inactive: hsl(0, 0%, 7%); + --yt-material-searchbox-active: hsl(0, 0%, 100%); + --yt-material-searchbox-inactive-shadow: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-active-shadow: hsla(0, 0%, 0%, .26); + --yt-material-searchbox-inset: hsla(0, 0%, 0%, .04); + --yt-material-searchbox-text-color: hsl(0, 0%, 6.7%); + --yt-app-background: #2f3364; + --yt-main-app-background: #2f3364; + --yt-main-app-background-tmp: #2f3364; + --yt-guide-background: #2f3364; + --yt-dialog-background: #d62828; + --yt-searchbox-background: #fa7965 !important; + --yt-channel-header-background: #2f3364; + --yt-sidebar-background: #2f3364; + --yt-transcript-background: #2f3364; + --yt-chat-bubble-other-border-color: hsla(0, 100%, 100%, .26); + --yt-chat-bubble-other-background-color: #2f3364; + --yt-chat-bubble-self-border-color: hsl(0, 0%, 14%); + --yt-chat-bubble-self-background-color: #2f3364; + --yt-blue-suggestive: transparent; } \ No newline at end of file diff --git a/JS/satus.css b/JS/satus.css new file mode 100644 index 000000000..43cd38a5a --- /dev/null +++ b/JS/satus.css @@ -0,0 +1,2073 @@ +/*-------------------------------------------------------------- +# SCROLLBAR +--------------------------------------------------------------*/ + +:where([class^='satus'])::-webkit-scrollbar { + width: 4px; +} + +:where([class^='satus'])::-webkit-scrollbar:hover { + width: 8px; +} + +:where([class^='satus'])::-webkit-scrollbar-thumb { + background: rgba(var(--satus-light), .2); +} + +:where([class^='satus'])::-webkit-scrollbar-thumb:hover { + background: rgba(var(--satus-light), .3); +} +/*-------------------------------------------------------------- +# ANIMATIONS +--------------------------------------------------------------*/ + +@keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +@keyframes fadeInLeft { + from { + opacity: 0; + transform: translateX(-100%); + } + to { + opacity: 1; + transform: translateX(0); + } +} + +@keyframes fadeInRight { + from { + opacity: 0; + transform: translateX(100%); + } + to { + opacity: 1; + transform: translateX(0); + } +} + +@keyframes fadeOut { + from { + opacity: 1; + } + to { + opacity: 0; + } +} + +@keyframes fadeOutLeft { + from { + opacity: 1; + transform: translateX(0); + } + to { + opacity: 0; + transform: translateX(-50%); + } +} + +@keyframes fadeOutRight { + from { + opacity: 1; + transform: translateX(0); + } + to { + opacity: 0; + transform: translateX(50%); + } +} + +@keyframes zoomIn { + from { + transform: scale(.8); + opacity: 0; + } + to { + transform: scale(1); + opacity: 1; + } +} + +@keyframes zoomOut { + from { + transform: scale(1); + opacity: 1; + } + to { + transform: scale(.8); + opacity: 0; + } +} +/*-------------------------------------------------------------- +>>> THEMES +--------------------------------------------------------------*/ + +.satus-base { + --satus-light: 0, 20, 82; + --satus-primary: #ff4158; + --satus-alert-background--error: #501616; + --satus-alert-border--error: 1px solid #6f1f1f; + --satus-alert-foreground--error: #d77070; + --satus-alert-background--success: rgb(246, 180, 101, .32); + --satus-alert-border--success: 1px solid rgb(246, 180, 101, .6); + --satus-alert-foreground--success: rgb(184, 115, 30); + --satus-base-background: #f3f4f6; + --satus-base-foreground: #565e76; + --satus-checkbox-background: #f3f4f6; + --satus-checkbox-border: #dcdfe5; + --satus-checkbox-foreground: rgb(255, 255, 255, .96); + --satus-divider: rgba(var(--satus-light), .1); + --satus-header-background: #fff; + --satus-header-foreground: inherit; + --satus-header-shadow: 0 1px 0 #dcdee5; + --satus-layers-background: var(--satus-base-background); + --satus-layers-foreground: inherit; + --satus-section-background: #fff; + --satus-section-border: #dcdee5; + --satus-section-foreground: inherit; + --satus-sidebar-background: #fff; + --satus-sidebar-foreground: inherit; + --satus-sidebar-shadow: #dcdee5; + --satus-modal-foreground: inherit; + --satus-modal-background: #fff; + --satus-modal-shadow: 0 1px 4px #7d86a1; + --satus-tabs-background: rgba(var(--satus-light), .04); + --satus-tabs-foreground: #fff; + --satus-text-field-background: #edf0f2; + --satus-text-field-border: #dcdee5; + --satus-text-field-color: #7d8ba1; + --satus-text-field-selection: rgb(149, 166, 178, .35); + --satus-text-field-cursor: #fa0; + --satus-switch-track: #e1e4ea; + --satus-switch-track--checked: var(--satus-primary); + --satus-switch-thumb: #fff; + --satus-input-text-background: #e8e8e3; + --satus-input-text-border: #d6d6cd; + --satus-input-text-text: #848471; +} + +.satus-base[theme=dark] { + --satus-light: 255, 255, 255; + --satus-primary: #3691bf; + --satus-alert-background--error: #501616; + --satus-alert-border--error: 1px solid #6f1f1f; + --satus-alert-foreground--error: #d77070; + --satus-alert-background--success: #143648; + --satus-alert-border--success: 1px solid #1d4f67; + --satus-alert-foreground--success: #50a4ce; + --satus-base-background: #151528; + --satus-base-foreground: #fafafa; + --satus-header-background: #313172; + --satus-header-shadow: transparent; + --satus-section-background: #232343; + --satus-section-border: #232343; + --satus-modal-background: #313172; + --satus-modal-shadow: 0 1px 4px #22222f; + --satus-switch-track: #52527a; +} +/*-------------------------------------------------------------- +>>> NORMALIZE +--------------------------------------------------------------*/ + +:where([class^='satus']) { + box-sizing: border-box; +} + +:where([class^='satus'])[hidden]:not([hidden='false']) { + display: none; +} + +:where([class^='satus'])[transparent] { + opacity: 0; +} +/*-------------------------------------------------------------- +>>> MODAL +---------------------------------------------------------------- +# Container +# Scrim +# Surface +# Variants + # Vertical menu +--------------------------------------------------------------*/ + + +/*-------------------------------------------------------------- +# CONTAINER +--------------------------------------------------------------*/ + +.satus-modal { + position: fixed; + z-index: 9; + top: 0; + left: 0; + display: flex; + width: 100vw; + height: 100vh; + justify-content: center; + align-items: center; +} + + +/*-------------------------------------------------------------- +# SCRIM +--------------------------------------------------------------*/ + +.satus-modal__scrim { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + animation: fadeIn 150ms linear forwards; + opacity: 0; + background: rgba(0, 0, 0, .16); + backdrop-filter: blur(8px); +} + +.satus-modal--closing .satus-modal__scrim { + animation: fadeOut 70ms linear forwards; +} + + +/*-------------------------------------------------------------- +# SURFACE +--------------------------------------------------------------*/ + +.satus-modal__surface { + display: flex; + overflow-y: auto; + flex-direction: column; + box-sizing: border-box; + width: 95%; + min-width: 240px; + max-width: 560px; + max-height: 80%; + margin: 8px; + padding: 12px 16px; + transform: scale(.8); + animation: zoomIn 150ms linear forwards; + animation-delay: 20ms; + opacity: 0; + color: var(--satus-modal-foreground); + border-radius: 3px; + background-color: var(--satus-modal-background); + box-shadow: var(--satus-modal-shadow); +} + +.satus-modal--closing .satus-modal__surface { + animation: zoomOut 70ms linear forwards; +} + +.satus-modal__content { + margin: 6px 0 12px; +} + +.satus-section--actions { + justify-content: flex-end; +} +.satus-section--actions > *:not(:first-child) { + margin-left: 8px; +} + + +/*-------------------------------------------------------------- +# VARIANTS +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# VERTICAL MENU +--------------------------------------------------------------*/ + +.satus-modal--vertical-menu .satus-modal__surface { + position: absolute; + top: 8px; + right: 8px; + left: auto; + min-width: 180px; + max-width: 180px; + margin: 0; + padding: 8px 0; + transform-origin: right top; +} + +.satus-modal--vertical-menu .satus-modal__surface>[class^='satus']:where(:not(.satus-divider)) { + height: 36px; + padding: 0 16px; + border-radius: 0; +} + +.satus-modal--vertical-menu .satus-modal__surface>.satus-span { + font-size: 13px; + font-weight: 500; + margin: 6px 0; + padding: 0 12px; + height: auto; +} + +.satus-modal--vertical-menu .satus-modal__surface>.satus-tabs { + margin: 0 12px; + border-radius: 3px; + height: 26px; + padding: 0; +} + +.satus-modal--vertical-menu .satus-select svg, +.satus-modal--vertical-menu .satus-button svg { + margin: 0 14px 0 0; + opacity: .64; + flex: 0 0 18px; +} + +.satus-modal--vertical-menu .satus-button .satus-span { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.satus-modal--vertical-menu .satus-switch:hover { + cursor: pointer; + + background-color: rgba(var(--satus-light), .06); +} + +.satus-modal--vertical-menu .satus-switch:focus { + background-color: rgba(var(--satus-light), .08); +} +/*-------------------------------------------------------------- +>>> GRID +--------------------------------------------------------------*/ + +.satus-grid { + display: flex; + align-items: stretch; + height: 100%; + padding: 8px; +} +/*-------------------------------------------------------------- +>>> TEXT FIELD +---------------------------------------------------------------- +# Parts + # Container + # Input + # +# Syntax highlighting + # Regular expression +--------------------------------------------------------------*/ + +.satus-text-field { + display: flex; + + min-width: 240px; + height: 36px; + + color: var(--satus-text-field-foreground, inherit); + border: 1px solid var(--satus-text-field-border); + border-radius: 4px; + background: var(--satus-text-field-background); + + align-items: center; + justify-content: space-between; +} + +.satus-text-field__container { + position: relative; + + overflow: hidden; + + height: 100%; + + flex: 1; +} + +.satus-text-field[line-numbers=false] .satus-text-field__container { + margin-left: 8px; +} + +.satus-text-field__textarea, +.satus-text-field__input { + font: inherit; + + position: absolute; + z-index: 9; + top: 0; + left: 0; + + overflow: auto; + + width: 100%; + min-width: 0; + max-width: none; + height: 100%; + min-height: 0; + max-height: none; + margin: 0; + padding: 0 12px; + + white-space: pre; + + opacity: 0; + color: inherit; + border: none; + border-radius: 4px; + outline: none; + + appearance: none; + overflow-wrap: normal; +} + +.satus-text-field__display { + position: absolute; + top: 0; + left: 0; + + display: flex; + + width: 100%; + height: 100%; +} + +.satus-text-field__line-numbers { + padding: 0 12px 0 0; + + opacity: .5; +} + +.satus-text-field__line-numbers>span { + font-size: inherit; + + display: block; + + width: 100%; + + text-align: right; +} + +.satus-text-field__pre { + font: inherit; + + display: flex; + + margin: 0; +} + +.satus-text-field__hidden-value { + font: inherit; + + position: absolute; + + overflow: auto; + + white-space: pre; + pointer-events: none; + + opacity: 0; + + overflow-wrap: normal; +} + +.satus-text-field__selection { + position: absolute; + top: 0; + left: 0; + + display: none; + + width: 0; + height: 22px; + margin: 6px 12px; + + border: 1px solid var(--satus-text-field-selection); + border-radius: 3px; + background: var(--satus-text-field-selection); +} + +.satus-text-field__cursor { + position: absolute; + top: 0; + left: 0; + + display: none; + + width: 2px; + height: 22px; + margin: -3px 0 0; + + animation: blink 1s step-end 8; + + background: var(--satus-text-field-cursor); +} + +.satus-text-field__textarea:focus+.satus-text-field__display>.satus-text-field__cursor, +.satus-text-field__textarea:focus+.satus-text-field__display>.satus-text-field__selection:not([disabled]), +.satus-text-field__input:focus+.satus-text-field__display>.satus-text-field__cursor, +.satus-text-field__input:focus+.satus-text-field__display>.satus-text-field__selection:not([disabled]) { + display: block; +} + +@keyframes blink { + + from, + to { + opacity: 1; + } + + 50% { + opacity: 0; + } +} + + +/*-------------------------------------------------------------- +# MULTILINE: FALSE +--------------------------------------------------------------*/ + +.satus-text-field[multiline=false] .satus-text-field__pre { + align-items: center; +} + +.satus-text-field[multiline=false] .satus-text-field__cursor { + top: calc(50% - 9px); +} + + +/*-------------------------------------------------------------- +# SYNTAX HIGHLIGHTING +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# REGULAR EXPRESSION +--------------------------------------------------------------*/ + +.satus-text-field__pre>.group { + color: #47ff47; + background-color: rgb(71, 255, 71, .16); +} + +.satus-text-field__pre>.character-class { + color: #ffc247; + background-color: rgb(255, 170, 0, .16); +} + +.satus-text-field__pre>.quantifier { + color: #47c2ff; + background-color: rgb(71, 194, 255, .16); +} + +.satus-text-field__pre>.anchor { + color: #47c2ff; + background-color: rgb(71, 194, 255, .16); +} + +.satus-text-field__pre>.metasequence { + color: #47ff47; + background-color: rgb(71, 255, 71, .16); +} + +.satus-text-field__pre>.text { + color: #c4c4d4; + background-color: rgb(196, 196, 212, .16); +} +/*-------------------------------------------------------------- +>>> CHART +--------------------------------------------------------------*/ + +.satus-chart { + font-size: 90%; + + position: relative; + + height: 128px; + margin: 4px 12px; + + color: rgba(var(--satus-light), .32); + border: 1px dashed rgba(var(--satus-light), .2); + border-top: unset; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +.satus-chart__labels { + position: absolute; + top: 0; + left: 0; + + display: flex; + + width: 100%; + height: 100%; + + justify-content: space-between; + align-items: stretch; +} + +.satus-chart__section { + padding: 4px; + + flex: 1; +} + +.satus-chart__section:not(:last-child) { + border-right: 1px dashed rgba(var(--satus-light), .2); +} + + +.satus-chart__bars { + position: absolute; + top: 0; + left: 0; + + display: flex; + + width: 100%; + height: 100%; + + justify-content: space-between; + align-items: stretch; +} + +.satus-chart__bar { + display: flex; + flex-direction: column; + + margin: 0 1px; + + flex: 1; + align-items: center; + justify-content: flex-end; +} + +.satus-chart__piece { + width: 100%; +} + +.satus-chart__piece:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} +/*-------------------------------------------------------------- +>>> SELECT +--------------------------------------------------------------*/ + +.satus-select { + position: relative; + + display: flex; + + cursor: pointer; + + align-items: center; + justify-content: space-between; +} + +.satus-select:hover { + background-color: var(--satus-hover); +} + +.satus-select__content { + display: flex; + + flex: 2; + overflow: hidden; + + align-items: center; +} + +.satus-select svg { + width: 20px; + height: 18px; + margin: 0 14px 0 0; + + opacity: .64; +} + +.satus-select__content .satus-span { + overflow: hidden; + + text-overflow: ellipsis; +} + +.satus-select__value { + display: block; + overflow: hidden; + + flex: 1; + margin-left: 8px; + + text-align: right; + text-overflow: ellipsis; + + opacity: .64; +} + +.satus-select select { + font: inherit; + + position: absolute; + z-index: 1; + top: 0; + left: 0; + + width: 100%; + height: 100%; + margin: 0; + padding: inherit; + + cursor: inherit; + + opacity: 0; + border: none; + outline: none; + + appearance: none; +} + +.satus-select:hover { + cursor: pointer; + + background-color: rgba(var(--satus-light), .06); +} + +.satus-select:focus { + background-color: rgba(var(--satus-light), .08); +} + +.satus-select select::-webkit-scrollbar { + width: 4px; +} + +.satus-select select::-webkit-scrollbar:hover { + width: 8px; +} + +.satus-select select::-webkit-scrollbar-thumb { + background: rgba(0, 0, 0, .2); +} + +.satus-select select::-webkit-scrollbar-thumb:hover { + background: rgba(0, 0, 0, .3); +} + +.satus-select option { + color: var(--satus-select-text); + background: var(--satus-select-background); +} +/*-------------------------------------------------------------- +>>> DIVIDER +--------------------------------------------------------------*/ + +.satus-divider { + height: 1px; + margin: 16px 0 12px; + background: var(--satus-divider); +} +/*-------------------------------------------------------------- +>>> SECTION +---------------------------------------------------------------- +# Variants + # Align start + # Align end + # Card +# Media +--------------------------------------------------------------*/ + +.satus-section { + display: flex; + + flex-wrap: wrap; +} + + +/*-------------------------------------------------------------- +# ALIGN START +--------------------------------------------------------------*/ + +.satus-section--align-start { + align-items: center; +} + +.satus-section--align-start>*:not(:last-child) { + margin-right: 8px; +} + + +/*-------------------------------------------------------------- +# ALIGN END +--------------------------------------------------------------*/ + +.satus-section--align-end { + align-items: center; + justify-content: flex-end; +} + +.satus-section--align-end>*:not(:first-child) { + margin-left: 8px; +} + + +/*-------------------------------------------------------------- +# CARD +--------------------------------------------------------------*/ + +.satus-section--card { + flex-direction: column; + + max-width: 900px; + margin: 12px; + padding: 8px 0; + + border: 1px solid var(--satus-section-border); + border-radius: 3px; + background: var(--satus-section-background); + color: var(--satus-section-foreground); +} + +.satus-section--transparent-card { + max-width: 900px; + margin: 8px 12px; +} + +.satus-section--card[data-title], +.satus-section--transparent-card[data-title] +{ + position: relative; + + margin-top: 32px; +} + +.satus-section--card[data-title]::before, +.satus-section--transparent-card::before +{ + position: absolute; + top: -8px; + left: 0; + + content: attr(data-title); + transform: translateY(-100%); +} + + +.satus-section--transparent-card > [class^='satus'] { + width: 100%; +} + +.satus-section--card>[class^='satus']:not(.satus-list):not(.satus-section) { + display: flex; + + min-height: 48px; + padding: 8px 12px; + + transition: background-color .18s cubic-bezier(.25, .8, .5, 1); + text-align: left; + + border-radius: 0; + + align-items: center; +} + +.satus-section--card>[class^='satus']:not(.satus-list):not(.satus-section):not(.satus-chart) { + width: 100%; +} + +.satus-section--card>[class^='satus']:not(.satus-chart):not(.satus-list):not(.satus-span):hover { + background-color: rgba(var(--satus-light), .06); +} + +.satus-section--card>.satus-button { + justify-content: flex-start; +} + +.satus-section--card>.satus-button>svg, +.satus-section--card>.satus-select>svg +{ + width: 20px; + margin: 0 14px 0 0; + + color: var(--satus-primary); +} + +.satus-section--card>.satus-span { + display: flex; + + align-items: center; +} + +.satus-section--transparent { + background: unset; + border: unset; + padding: 0; + border-radius: unset; +} + + +/*-------------------------------------------------------------- +# MEDIA +--------------------------------------------------------------*/ + +@media (min-width: 901px) { + .satus-section--card, + .satus-section--transparent-card { + margin-left: auto; + margin-right: auto; + } +} +/*-------------------------------------------------------------- +>>> BASE +--------------------------------------------------------------*/ + +.satus-base { + display: flex; + flex-direction: column; + + width: 100%; + height: 100%; + + color: var(--satus-base-foreground); + background: var(--satus-base-background); +} +/*-------------------------------------------------------------- +>>> ALERT +---------------------------------------------------------------- +# Media +--------------------------------------------------------------*/ + +.satus-alert { + display: flex; + + max-width: 900px; + min-height: 48px; + margin: 12px; + padding: 8px 12px; + + border-radius: 3px; + + align-items: center; +} + +.satus-alert--error { + color: var(--satus-alert-foreground--error); + border: var(--satus-alert-border--error); + background: var(--satus-alert-background--error); +} + +.satus-alert--success { + color: var(--satus-alert-foreground--success); + border: var(--satus-alert-border--success); + background: var(--satus-alert-background--success); +} + + +/*-------------------------------------------------------------- +# MEDIA +--------------------------------------------------------------*/ + +@media (min-width: 901px) { + .satus-alert { + margin-right: auto; + margin-left: auto; + } +} +/*-------------------------------------------------------------- +>>> INPUT +--------------------------------------------------------------*/ + +.satus-input[type=text], +.satus-input[type=password] { + font: inherit; + font-size: 16px; + + box-sizing: border-box; + width: 100%; + height: 26px; + margin: 0; + margin: 8px 0; + padding: 0 8px; + + color: var(--satus-input-text-foreground, inherit); + border: none; + + + + + + border: 1px solid var(--satus-input-text-border); + border-radius: 4px; + outline: none; + background: none; + background-color: var(--satus-input-text-background); + + appearance: none; +} + +.satus-input--error[type=text], +.satus-input--error[type=password] { + outline: 2px solid rgba(255, 0, 0, .32); +} +/*-------------------------------------------------------------- +>>> MAIN +--------------------------------------------------------------*/ + +.satus-main { + display: flex; + + flex: 1 +} +/*-------------------------------------------------------------- +>>> SIDEBAR +--------------------------------------------------------------*/ + +.satus-sidebar { + z-index: 1; + display: flex; + flex-direction: column; + width: 56px; + padding: 12px 0; + color: var(--satus-sidebar-foreground); + background: var(--satus-sidebar-background); + box-shadow: 1px 0 0 var(--satus-sidebar-shadow) +} +/*-------------------------------------------------------------- +>>> LAYERS +--------------------------------------------------------------*/ + +.satus-layers { + position: relative; + + overflow: hidden; + + flex: 1; +} + +.satus-layers__layer { + position: absolute; + top: 0; + left: 0; + + overflow: auto; + + width: 100%; + height: 100%; + + color: var(--satus-layers-foreground); + background: var(--satus-layers-background); +} +/*-------------------------------------------------------------- +>>> LIST +--------------------------------------------------------------*/ + +.satus-list { + margin: 0; + + list-style: none; +} + +.satus-list__item { + display: flex; + + min-height: 48px; + padding: 0 16px; + + align-items: center; + justify-content: space-between; +} + +.satus-list__item>*:not(:first-child) { + margin-left: 8px; +} + +.satus-list__item>*:last-child { + font-size: 92%; + + text-align: right; + + opacity: .64; +} +/*-------------------------------------------------------------- +>>> COLOR PICKER: +---------------------------------------------------------------- +# Button +# Modal +--------------------------------------------------------------*/ + + +/*-------------------------------------------------------------- +# BUTTON +--------------------------------------------------------------*/ + +.satus-color-picker { + font-size: inherit; + + position: relative; + + display: flex; + + box-sizing: border-box; + margin: 0; + + cursor: pointer; + + color: inherit; + border: none; + outline: none; + background-color: var(--satus-theme-button); + + justify-content: space-between; + -webkit-tap-highlight-color: transparent; + align-items: center; + -webkit-appearance: none; +} + +.satus-color-picker__value { + width: 22px; + height: 22px; + + border: 2px solid rgba(0, 0, 0, .16); + border-radius: 50%; +} + + +/*-------------------------------------------------------------- +# MODAL +--------------------------------------------------------------*/ + +.satus-modal--color-picker .satus-modal__surface { + padding: 8px; +} + +.satus-color-picker__palette { + position: relative; + + overflow: hidden; + + width: 100%; + height: 256px; + margin: 0 0 4px; + + border-radius: 5px; + background-color: #f00; +} + +.satus-color-picker__palette:before { + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + + background-image: linear-gradient(0deg, black, transparent), linear-gradient(90deg, white, transparent); +} + +.satus-color-picker__cursor { + position: absolute; + + width: 5px; + height: 5px; + + transform: translate(-50%, -50%); + pointer-events: none; + + border: 1px solid #fff; + border-radius: 50%; + box-shadow: 0 0 0 1px #000; +} + +.satus-modal--color-picker .satus-modal__surface .satus-section--color { + margin: 8px 4px; + + align-items: center; +} + +.satus-color-picker__color { + width: 32px; + height: 32px; + margin: 0 16px 0 0; + + border: 2px solid rgba(0, 0, 0, .16); + border-radius: 50%; + background: #f00; +} + +.satus-slider.satus-color-picker__hue { + padding: 0; + + flex: 1; +} + +.satus-color-picker__hue .satus-slider__track-container { + height: 16px; + margin: 0; + + border-radius: 4px; + background-image: linear-gradient(90deg, #f00, #ff2a00, #f50, #ff7f00, #fa0, #ffd400, #ff0, #d4ff00, #af0, #80ff00, #5f0, #2bff00, #0f0, #00ff2b, #0f5, #00ff80, #0fa, #00ffd5, #0ff, #00d4ff, #0af, #007fff, #05f, #002bff, #00f, #2a00ff, #50f, #7f00ff, #a0f, #d400ff, #f0f, #ff00d4, #f0a, #ff0080, #f05, #ff002b, #f00); +} + +.satus-color-picker__hue .satus-slider__track-container::before { + display: none; +} + +.satus-color-picker__hue .satus-slider__track { + background: transparent; +} + +.satus-color-picker__hue .satus-slider__track::after { + width: 16px; + height: 16px; + + background: #fff; + box-shadow: 0 0 4px rgb(0, 0, 0, .64); +} +/*-------------------------------------------------------------- +>>> SPAN +--------------------------------------------------------------*/ + +.satus-span--title { + font-weight: 500; + overflow: hidden; + + white-space: nowrap; + text-overflow: ellipsis; + + flex: 1; +} +/*-------------------------------------------------------------- +>>> BUTTON +---------------------------------------------------------------- +# Base +# Basic +# Icon +--------------------------------------------------------------*/ + + +/*-------------------------------------------------------------- +# BASE +--------------------------------------------------------------*/ + +.satus-button { + font: inherit; + + position: relative; + + display: inline-flex; + overflow: hidden; + + height: 36px; + padding: 8px; + + transition: background-color .3s cubic-bezier(.25, .8, .5, 1); + + color: inherit; + border: none; + border-radius: 6px; + outline: none; + background: transparent; + + appearance: none; + align-items: center; +} + +.satus-button:hover { + cursor: pointer; + + background-color: rgba(var(--satus-light), .06); +} + +.satus-button:focus { + background-color: rgba(var(--satus-light), .08); +} + +.satus-button svg { + width: 100%; + max-width: 24px; + height: 100%; + max-height: 24px; +} + + +/*-------------------------------------------------------------- +# BASIC +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# ICON +--------------------------------------------------------------*/ + +.satus-button--icon { + width: 40px; + height: 40px; + + border-radius: 50%; +} + +.satus-button--icon svg { + width: 24px; + height: 24px; +} +/*-------------------------------------------------------------- +>>> HEADER +--------------------------------------------------------------*/ + +.satus-header { + z-index: 1; + + display: flex; + + height: 56px; + padding: 0 12px; + + color: var(--satus-header-foreground); + background: var(--satus-header-background); + box-shadow: var(--satus-header-shadow); + + justify-content: space-between; + align-items: center; +} +/*-------------------------------------------------------------- +>>> RADIO +--------------------------------------------------------------*/ + +.satus-radio { + position: relative; + display: flex; +} + +.satus-radio__input { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0; + margin: 0; + z-index: 9; +} + +.satus-radio__content { + flex: 1; + padding: 0 12px; +} + +.satus-radio__i { + width: 16px; + height: 16px; + border: 1px solid rgba(var(--satus-light),.64); + border-radius: 50%; + transition: 200ms; +} + +.satus-radio__input + .satus-radio__i::before { + width: 8px; + height: 8px; + margin: 3px; + border-radius: 50%; + background: var(--satus-primary); + content: ''; + display: block; + transform: scale(0); + transition: 200ms; +} + +.satus-radio__input:checked + .satus-radio__i { + border-color: var(--satus-primary); +} + +.satus-radio__input:checked + .satus-radio__i::before { + background: var(--satus-primary); + transform: scale(1); +} +/*-------------------------------------------------------------- +>>> SLIDER +--------------------------------------------------------------*/ + +.satus-slider { + display: flex; + + flex-wrap: wrap; +} + +.satus-slider__content { + width: 100%; + display: flex; + justify-content: space-between; +} + +.satus-slider__input[type='text'] { + appearance: none; + background: transparent; + border: none; + color: inherit; + font: inherit; + padding: 0; + margin: 0; + outline: none; + width: 64px; + text-align: right; +} + +.satus-slider__track-container { + position: relative; + + width: 100%; + height: 20px; + margin: 10px 0 -2px; +} + +.satus-slider__track-container::before { + position: absolute; + top: calc(50% - 1px); + left: 0; + + width: 100%; + height: 2px; + + content: ''; + + opacity: .24; + background: var(--satus-primary); +} + +.satus-slider__input[type='range'] { + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + margin: 0; + + opacity: 0; +} + +.satus-slider__track { + position: absolute; + top: calc(50% - 1px); + left: 0; + + width: 0; + height: 2px; + + background: var(--satus-primary); + pointer-events: none; +} + +.satus-slider__track::before { + position: absolute; + top: 50%; + right: 0; + transform: translate(50%, -50%); + display: block; + width: 16px; + height: 16px; + content: ''; + transition: width 200ms, height 200ms, opacity 200ms; + opacity: 0; + border-radius: 50%; + background: var(--satus-primary); +} + +.satus-slider__input:focus + .satus-slider__track::before { + width: 24px; + height: 24px; + opacity: .16; +} + +.satus-slider__input:active + .satus-slider__track::before { + width: 26px; + height: 26px; + opacity: .16; +} + +.satus-slider__track::after { + position: absolute; + top: 50%; + right: 0; + transform: translate(50%, -50%); + + width: 10px; + height: 10px; + + content: ''; + + border-radius: 50%; + background: var(--satus-primary); + pointer-events: none; + transition: width 200ms, height 200ms, opacity 200ms; +} + +.satus-slider__input:active + .satus-slider__track::after +{ + width: 12px; + height: 12px; +} + + + + + +.satus-slider--row { + flex-wrap: nowrap; + justify-content: space-between; +} + +.satus-slider--row .satus-slider__track-container { + margin: 0 0 -2px 12px; + max-width: 50%; +} +/*-------------------------------------------------------------- +>>> TABS +--------------------------------------------------------------*/ + +.satus-tabs { + position: relative; + + display: flex; + + border: 2px solid var(--satus-tabs-background); + border-radius: 4px; + background: var(--satus-tabs-background); +} + +.satus-tabs::before { + position: absolute; + top: 0; + left: calc(calc(100% / var(--satus-tabs-count)) * var(--satus-tabs-current)); + + width: calc(100% / var(--satus-tabs-count)); + height: 100%; + + content: ''; + transition: left .25s; + + border-radius: 3px; + background: var(--satus-tabs-foreground); +} + +.satus-tabs__button { + font: inherit; + + position: relative; + z-index: 1; + + overflow: hidden; + + margin: 0; + padding: 0 8px; + + text-overflow: ellipsis; + + color: inherit; + border: none; + border-radius: 3px; + outline: none; + background: transparent; + + flex: 1; + appearance: none; +} +/*-------------------------------------------------------------- +>>> SHORTCUT: +---------------------------------------------------------------- +# +--------------------------------------------------------------*/ + +.satus-shortcut__value { + font-size: 11px; + + display: flex; + + margin-left: 16px; + + text-transform: uppercase; + + align-items: center; + flex: 1; + justify-content: flex-end; +} + +.satus-shortcut__actions { + display: flex; + + justify-content: flex-end; +} + +.satus-shortcut__actions .satus-button { + height: 32px; + margin: 8px 4px 0; + + border-radius: 8px; + background: rgba(0, 0, 0, .15); +} + +.satus-shortcut__actions .satus-button:hover { + background: rgba(0, 0, 0, .25); +} + +.satus-shortcut__primary { + display: flex; + + height: 64px; + margin: 0 0 12px; + padding: 16px; + + border-radius: 3px; + background: rgba(0, 0, 0, .16); + + align-items: center; +} + +.satus-shortcut__key { + display: flex; + + min-width: 32px; + height: 32px; + padding: 4px 8px; + + + border-radius: 4px; + background: #fff; + box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); + + align-items: center; + justify-content: center; +} + +.satus-shortcut__value>.satus-shortcut__key { + font-size: 12px; + + min-width: 24px; + height: 24px; +} + +.satus-shortcut__plus { + position: relative; + + width: 12px; + height: 12px; + margin: 8px; +} + +.satus-shortcut__plus::before { + position: absolute; + top: 0; + left: 5px; + + width: 2px; + height: 12px; + + content: ''; + + background-color: #aaa; +} + +.satus-shortcut__plus::after { + position: absolute; + top: 5px; + left: 0; + + width: 12px; + height: 2px; + + content: ''; + + background-color: #aaa; +} + +.satus-shortcut__mouse { + position: relative; + + display: flex; + + width: 28px; + height: 36px; + + border-radius: 50%; + border-top-left-radius: 12px; + border-top-right-radius: 12px; + background: #fff; + box-shadow: 0 1px 3px rgba(0, 0, 0, .15), inset 0 -3px 0 rgba(0, 0, 0, .1); +} + +.satus-shortcut__value>.satus-shortcut__mouse { + width: 22px; + height: 28px; +} + +.satus-shortcut__mouse>div { + position: absolute; + top: 0; + left: calc(50% - 1px); + + width: 2px; + height: 11px; + + border-radius: 2px; + background: #ccc; +} + +.satus-shortcut__mouse::before { + position: absolute; + top: -16%; + right: 14%; + + width: 2px; + height: 60%; + + content: ''; + + background: #f96754; +} + +.satus-shortcut__mouse.false::before { + top: -6%; +} + +.satus-shortcut__mouse.false::after { + position: absolute; + top: -20%; + right: calc(14% - 4px); + + width: 0; + height: 0; + + content: ''; + + border-right: 5px solid transparent; + border-bottom: 8px solid #f96754; + border-left: 5px solid transparent; +} + +.satus-shortcut__mouse.true::after { + position: absolute; + top: 40%; + right: calc(14% - 4px); + + width: 0; + height: 0; + + content: ''; + + border-top: 8px solid #f96754; + border-right: 5px solid transparent; + border-left: 5px solid transparent; +} + +.satus-shortcut__mouse.click::before { + position: absolute; + top: 0; + left: -1px; + + width: 10px; + height: 10px; + + content: ''; + + border-radius: 50%; + background: #f96754; +} + +.satus-shortcut__mouse.middle::before { + position: absolute; + z-index: 1; + top: 0; + left: 50%; + + width: 10px; + height: 10px; + + content: ''; + transform: translateX(-50%); + + border-radius: 50%; + background: #f96754; +} + +.satus-shortcut__mouse.context::before { + position: absolute; + top: 0; + left: 15px; + + width: 10px; + height: 10px; + + content: ''; + + border-radius: 50%; + background: #f96754; +} + +.satus-section_shortcut { + width: 100%; + margin: 8px 0 0; + + justify-content: flex-end; +} + +.satus-button_shortcut { + font-weight: 500; + + overflow: hidden; + + height: 28px; + min-height: 28px; + margin-right: 2px; + padding: 4px 8px; + + text-transform: uppercase; + + color: #f96754; + border-radius: 4px; +} +/*-------------------------------------------------------------- +>>> CHECKBOX +--------------------------------------------------------------*/ + +.satus-checkbox { + position: relative; + + display: flex; + + cursor: pointer; + + align-items: center; +} + +.satus-checkbox__input { + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + margin: 0; + padding: 0; + + opacity: 0; + border: none; + + appearance: none; +} + +.satus-checkbox__checkmark { + position: relative; + + display: flex; + + width: 16px; + min-width: 16px; + height: 16px; + min-height: 16px; + margin: 0 12px 0 0; + + content: ''; + + border: 1px solid var(--satus-checkbox-border); + border-radius: 3px; + background: var(--satus-checkbox-background); +} + +.satus-checkbox[data-value=true] .satus-checkbox__checkmark { + border-color: var(--satus-primary); + background: var(--satus-primary); +} + +.satus-checkbox[data-value=true] .satus-checkbox__checkmark::before { + position: absolute; + top: 3px; + left: 2px; + + width: 8px; + height: 4px; + + content: ''; + transform: rotate(-45deg); + + border: 2px solid var(--satus-checkbox-foreground); + border-top: none; + border-right: none; +} +/*-------------------------------------------------------------- +>>> SWITCH +---------------------------------------------------------------- +# Container +# Track +# Thumb +--------------------------------------------------------------*/ + + +/*-------------------------------------------------------------- +# CONTAINER +--------------------------------------------------------------*/ + +.satus-switch { + font: inherit; + + display: flex; + + transition: background-color 75ms; + + color: inherit; + border: none; + outline: none; + background-color: transparent; + + justify-content: space-between; + align-items: center; +} + +.satus-switch:hover { + cursor: pointer; +} + +.satus-switch__content { + display: flex; + + align-items: center; +} + +.satus-switch__content>svg { + width: 20px; + height: 18px; + margin: 0 14px 0 0; + + opacity: .64; +} + + +/*-------------------------------------------------------------- +# TRACK +--------------------------------------------------------------*/ + +.satus-switch>i { + width: 32px; + height: 18px; + + transition: background-color 150ms; + + border-radius: 18px; + background-color: var(--satus-switch-track); + + flex: 0 0 32px; +} + +.satus-section--card .satus-switch>i { + margin-left: 16px; +} + +.satus-switch[data-value='true']>i { + background-color: var(--satus-switch-track--checked); +} + + +/*-------------------------------------------------------------- +# THUMB +--------------------------------------------------------------*/ + +.satus-switch>i::before { + display: block; + + width: 14px; + height: 14px; + margin: 2px; + + content: ''; + transition: transform 150ms cubic-bezier(.4, 0, .2, 1); + + border-radius: 50%; + background-color: var(--satus-switch-thumb); + + will-change: transform; +} + +.satus-switch[data-value='true']>i::before { + transform: translateX(14px); +} +/*-------------------------------------------------------------- +>>> CONTEXT MENU +--------------------------------------------------------------*/ + +.satus-modal--contextmenu .satus-modal__scrim { + visibility: visible; + + transform: none; + animation: none; + + opacity: 1; + background: none; + + backdrop-filter: none; +} + +.satus-modal--contextmenu .satus-modal__surface { + position: absolute; + + visibility: visible; + + min-width: 200px; + max-width: 200px; + margin: 0; + padding: 4px 0; + + transform: none; + animation: none; + + opacity: 1; + border-radius: 4px; + box-shadow: 0 0 0 1px rgba(var(--satus-light), .1); +} + +.satus-modal--contextmenu .satus-modal__surface>* { + display: flex; + + height: 32px; + padding: 0 16px; + + align-items: center; +} + +.satus-modal--contextmenu .satus-modal__surface .satus-button svg { + width: 20px; + height: 18px; + margin: 0 14px 0 0; + + opacity: .75; + + fill: none; + stroke: var(--satus-primary); + flex: 0 0 20px; +} + +.satus-modal--contextmenu .satus-modal__surface .satus-button .satus-span { + overflow: hidden; + + white-space: nowrap; + text-overflow: ellipsis; +} +/*-------------------------------------------------------------- +>>> SORTABLE +--------------------------------------------------------------*/ + +.satus-sortable__chosen { + color: var(--satus-sortable-text) !important; + background-color: var(--satus-sortable-background) !important; +} + +.satus-sortable__ghost { + position: fixed !important; + z-index: 999 !important; + top: 0 !important; + left: 0 !important; + + pointer-events: none !important; + + opacity: .8 !important; + box-shadow: 0 1px 3px rgb(0, 0, 0, .2), 0 4px 8px rgb(0, 0, 0, .1), inset 0 0 0 1px rgb(0, 0, 0, .16) !important; + + will-change: transform !important; +} diff --git a/JS/satus.js b/JS/satus.js new file mode 100644 index 000000000..b3a8f4f1a --- /dev/null +++ b/JS/satus.js @@ -0,0 +1,3202 @@ +/*-------------------------------------------------------------- +>>> CORE +---------------------------------------------------------------- +# Global variable +# Animations duration +# Append +# Attr +# Camelize +# Snakelize +# Class +# Create element +# CSS +# Empty +# Element index +# Events +# Get property +# Is +# On +# Render +# Sort +# Storage + # Clear + # Get + # Import + # Set + # Remove + # On changed +# Localization +# Log +# Text +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# GLOBAL VARIABLE +--------------------------------------------------------------*/ + +var satus = { + components: {}, + events: { + data: {} + }, + locale: { + data: {} + }, + storage: { + data: {}, + type: 'extension' + } +}; + + +/*-------------------------------------------------------------- +# ANIMATION DURATION +--------------------------------------------------------------*/ + +satus.getAnimationDuration = function(element) { + return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; +}; + + +/*-------------------------------------------------------------- +# APPEND +--------------------------------------------------------------*/ + +satus.append = function(child, parent) { + (parent || document.body).appendChild(child); +}; + + +/*-------------------------------------------------------------- +# ATTR +--------------------------------------------------------------*/ + +satus.attr = function(element, attributes) { + if (attributes) { + for (var name in attributes) { + var value = attributes[name]; + + if (satus.isFunction(value)) { + value = value(); + } + + if (element.namespaceURI) { + if (value === false) { + element.removeAttributeNS(null, name); + } else { + element.setAttributeNS(null, name, value); + } + } else { + if (value === false) { + element.removeAttribute(name); + } else { + element.setAttribute(name, value); + } + } + } + } +}; + + +/*-------------------------------------------------------------- +# CAMELIZE +--------------------------------------------------------------*/ + +satus.camelize = function(string) { + var result = ''; + + for (var i = 0, l = string.length; i < l; i++) { + var character = string[i]; + + if (character === '_' || character === '-') { + i++; + + result += string[i].toUpperCase(); + } else { + result += character; + } + } + + return result; +}; + + +/*-------------------------------------------------------------- +# SNAKELIZE +--------------------------------------------------------------*/ + +satus.snakelize = function(string) { + return string.replace(/([A-Z])/g, '-$1').toLowerCase(); +}; + + +/*-------------------------------------------------------------- +# CLASS +--------------------------------------------------------------*/ + +satus.class = function(element, className) { + if (className) { + element.classList.add(className); + } +}; + + +/*-------------------------------------------------------------- +# CLONE +--------------------------------------------------------------*/ + +satus.clone = function(item) { + var clone = item.cloneNode(true), + parent_css = window.getComputedStyle(item.parentNode), + css = window.getComputedStyle(item), + style = ''; + + for (var i = 0, l = css.length; i < l; i++) { + var property = css[i], + value = css.getPropertyValue(property); + + if (property === 'background-color') { + value = parent_css.getPropertyValue('background-color'); + } + + if (['box-shadow', 'left', 'top', 'bottom', 'right', 'opacity'].indexOf(property) === -1) { + style += property + ':' + value + ';'; + } + } + + + clone.setAttribute('style', style); + + return clone; +}; + + +/*-------------------------------------------------------------- +# CREATE ELEMENT +--------------------------------------------------------------*/ + +satus.createElement = function(tagName, componentName, namespaceURI) { + var camelizedTagName = this.camelize(tagName), + className = 'satus-' + (componentName || tagName), + element, + match = className.match(/__[^__]+/g); + + if (!namespaceURI) { + if (tagName === 'svg') { + namespaceURI = 'http://www.w3.org/2000/svg'; + } + } + + if (namespaceURI) { + element = document.createElementNS(namespaceURI, tagName); + } else if (this.components[camelizedTagName]) { + element = document.createElement('div'); + } else { + element = document.createElement(tagName); + } + + if (match && match.length > 1) { + className = className.slice(0, className.indexOf('__')) + match[match.length - 1]; + } + + element.componentName = componentName; + element.className = className; + + element.createChildElement = function(tagName, componentName, namespaceURI) { + var element = satus.createElement(tagName, this.componentName + '__' + (componentName || tagName), namespaceURI); + + if (this.baseProvider) { + element.baseProvider = this.baseProvider; + } + + if (this.layersProvider) { + element.layersProvider = this.layersProvider; + } + + this.appendChild(element); + + return element; + }; + + return element; +}; + + +/*-------------------------------------------------------------- +# CSS +--------------------------------------------------------------*/ + +satus.css = function(element, property) { + return window.getComputedStyle(element).getPropertyValue(property); +}; + + +/*-------------------------------------------------------------- +# CRYPT +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# DECRYPTION +--------------------------------------------------------------*/ + +satus.decrypt = async function(text, password) { + var iv = text.slice(0, 24).match(/.{2}/g).map(byte => parseInt(byte, 16)), + algorithm = { + name: 'AES-GCM', + iv: new Uint8Array(iv) + }; + + try { + var data = new TextDecoder().decode(await crypto.subtle.decrypt( + algorithm, + await crypto.subtle.importKey( + 'raw', + await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)), + algorithm, + false, ['decrypt'] + ), + new Uint8Array(atob(text.slice(24)).match(/[\s\S]/g).map(ch => ch.charCodeAt(0))) + )); + } catch (err) { + return false; + } + + return data; +}; + + +/*-------------------------------------------------------------- +# ENCRYPTION +--------------------------------------------------------------*/ + +satus.encrypt = async function(text, password) { + var iv = crypto.getRandomValues(new Uint8Array(12)), + algorithm = { + name: 'AES-GCM', + iv: iv + }; + + return Array.from(iv).map(b => ('00' + b.toString(16)).slice(-2)).join('') + btoa(Array.from(new Uint8Array(await crypto.subtle.encrypt( + algorithm, + await crypto.subtle.importKey('raw', await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)), algorithm, false, ['encrypt']), + new TextEncoder().encode(text) + ))).map(byte => String.fromCharCode(byte)).join('')); +}; + + +/*-------------------------------------------------------------- +# DATA +--------------------------------------------------------------*/ + +satus.data = function(element, data) { + if (data) { + for (var key in data) { + var value = data[key]; + + if (satus.isFunction(value)) { + value = value(); + } + + element.dataset[key] = value; + } + } +}; + + +/*-------------------------------------------------------------- +# EMPTY +--------------------------------------------------------------*/ + +satus.empty = function(element, exclude = []) { + for (var i = element.childNodes.length - 1; i > -1; i--) { + var child = element.childNodes[i]; + + if (exclude.indexOf(child) === -1) { + child.remove(); + } + } +}; + + +/*-------------------------------------------------------------- +# ELEMENT INDEX +--------------------------------------------------------------*/ + +satus.elementIndex = function(element) { + return Array.prototype.slice.call(element.parentNode.children).indexOf(element); +}; + + +/*-------------------------------------------------------------- +# EVENTS +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# ON +--------------------------------------------------------------*/ + +satus.events.on = function(type, handler) { + if (!this.data[type]) { + this.data[type] = []; + } + + this.data[type].push(handler); +}; + + +/*-------------------------------------------------------------- +# TRIGGER +--------------------------------------------------------------*/ + +satus.events.trigger = function(type, data) { + var handlers = this.data[type]; + + if (handlers) { + for (var i = 0, l = handlers.length; i < l; i++) { + try {handlers[i](data);} + catch(err){console.log(err);} + } + } +}; + + +/*-------------------------------------------------------------- +# FETCH +--------------------------------------------------------------*/ + +satus.fetch = function(url, success, error, type) { + fetch(url).then(function(response) { + if (response.ok) { + response[type || 'json']().then(success); + } else { + error(); + } + }).catch(function() { + error(success); + }); +}; + + +/*-------------------------------------------------------------- +# GET PROPERTY +--------------------------------------------------------------*/ + +satus.getProperty = function(object, string) { + var properties = string.split('.'); + + for (var i = 0, l = properties.length; i < l; i++) { + var property = properties[i]; + + console.log(object); + + if (object = object[property]) { + if (i === l - 1) { + return object; + } + } else { + return false; + } + } +}; + + +/*-------------------------------------------------------------- +# INDEX OF +--------------------------------------------------------------*/ + +satus.indexOf = function(child, parent) { + var index = 0; + + if (satus.isArray(parent)) { + index = parent.indexOf(child); + } else { + while ((child = child.previousElementSibling)) { + index++; + } + } + + return index; +}; + + +/*-------------------------------------------------------------- +# TO INDEX +--------------------------------------------------------------*/ + +satus.toIndex = function(index, child, parent) { + if (satus.isArray(parent)) { + parent.splice(index, 0, parent.splice(satus.indexOf(child, parent), 1)[0]) + } +}; + + +/*-------------------------------------------------------------- +# ISSET +--------------------------------------------------------------*/ + +satus.isset = function(target, is_object) { + if (is_object === true) { + var keys = target.split('.').filter(function(value) { + return value != ''; + }); + + for (var i = 0, l = keys.length; i < l; i++) { + if (satus.isset(target[keys[i]])) { + target = target[keys[i]]; + } else { + return undefined; + } + } + + return target; + } else { + if (target === null || target === undefined) { + return false; + } + } + + return true; +}; + + +/*-------------------------------------------------------------- +# IS +--------------------------------------------------------------*/ + +satus.isArray = function(target) { + if (Array.isArray(target)) { + return true; + } else { + return false; + } +}; + +satus.isBoolean = function(target) { + return target === false || target === true; +}; + +satus.isElement = function(target) { + return target instanceof Element || target instanceof HTMLDocument; +}; + +satus.isFunction = function(target) { + return typeof target === 'function'; +}; + +satus.isNodeList = function(target) { + return target instanceof NodeList; +}; + +satus.isNumber = function(target) { + if (typeof target === 'number' && isNaN(target) === false) { + return true; + } else { + return false; + } +}; + +satus.isObject = function(target) { + return target instanceof Object && target !== null; +}; + +satus.isString = function(target) { + if (typeof target === 'string') { + return true; + } else { + return false; + } +}; + + +/*-------------------------------------------------------------- +# ON +--------------------------------------------------------------*/ + +satus.on = function(element, listeners) { + if (listeners) { + for (var type in listeners) { + var listener = listeners[type]; + + if (type === 'selectionchange') { + element = document; + } + + if (satus.isFunction(listener)) { + element.addEventListener(type, listener); + } else if (satus.isArray(listener) || satus.isObject(listener)) { + element.addEventListener(type, function(event) { + var target = this.skeleton.on[event.type], + layers = this.layersProvider; + + target.parentSkeleton = this.skeleton; + target.parentElement = this; + + if (!layers && this.baseProvider.layers.length > 0) { + layers = this.baseProvider.layers[0]; + } + + if (target.prepend === true) { + satus.prepend(target, this.parentNode); + } else if (layers && target.component !== 'modal') { + layers.open(target); + } else { + satus.render(target, this.baseProvider); + } + }); + } else if (satus.isString(listener)) { + element.addEventListener(type, function() { + var match = this.skeleton.on[event.type].match(/(["'`].+["'`]|[^.()]+)/g), + target = this.baseProvider; + + for (var i = 0, l = match.length; i < l; i++) { + var key = match[i]; + + if (target.skeleton[key]) { + target = target.skeleton[key]; + } else { + if (typeof target[key] === 'function') { + target[key](); + } else { + target = target[key]; + } + } + + if (target.rendered) { + target = target.rendered; + } + } + }); + } + } + } +}; + + +/*-------------------------------------------------------------- +# PARENTIFY +--------------------------------------------------------------*/ + +satus.parentify = function(parentObject, exclude) { + for (var key in parentObject) { + if (exclude.indexOf(key) === -1) { + var child = parentObject[key]; + + if (satus.isset(child)) { + child.parentObject = parentObject; + + if ( + satus.isObject(child) && + !satus.isArray(child) && + !satus.isElement(child) && + !satus.isFunction(child) + ) { + this.parentify(child, exclude); + } + } + } + } +}; + + +/*-------------------------------------------------------------- +# PREPEND +--------------------------------------------------------------*/ + +satus.prepend = function(child, parent) { + if (this.isElement(child)) { + parent.prepend(child); + } else if (this.isObject(child)) { + this.render(child, parent, undefined, undefined, true); + } +}; + + +/*-------------------------------------------------------------- +# PROPERTIES +--------------------------------------------------------------*/ + +satus.properties = function(element, properties) { + if (properties) { + for (var key in properties) { + var property = properties[key]; + + if (['placeholder', 'title'].indexOf(key) !== -1) { + property = satus.locale.get(property); + } + + element[key] = property; + } + } +}; + + +/*-------------------------------------------------------------- +# REMOVE +--------------------------------------------------------------*/ + +satus.remove = function(child, parent) { + if (satus.isArray(parent)) { + parent.splice(satus.indexOf(child, parent), 1); + } +}; + + +/*-------------------------------------------------------------- +# RENDER +--------------------------------------------------------------*/ + +satus.render = function(skeleton, container, property, childrenOnly, prepend, skip_children) { + var element; + + if (skeleton.component && childrenOnly !== true) { + var tagName = skeleton.component, + camelizedTagName = this.camelize(tagName), + namespaceURI = skeleton.namespaceURI; + + if (!namespaceURI) { + if (tagName === 'svg') { + namespaceURI = 'http://www.w3.org/2000/svg'; + } else if (skeleton.parentSkeleton && skeleton.parentSkeleton.namespaceURI) { + namespaceURI = skeleton.parentSkeleton.namespaceURI; + } + + skeleton.namespaceURI = namespaceURI; + } + + element = this.createElement(tagName, tagName, namespaceURI); + + skeleton.rendered = element; + element.skeleton = skeleton; + element.childrenContainer = element; + element.componentName = tagName; + + if (skeleton.variant) { + var variant = skeleton.variant; + + if (this.isFunction(variant)) { + variant = variant(); + } + + if (satus.isArray(variant)) { + for (var i = 0, l = variant.length; i < l; i++) { + element.className += ' satus-' + tagName + '--' + variant[i]; + } + } else { + element.className += ' satus-' + tagName + '--' + variant; + } + } + + if (skeleton.id) { + element.id = skeleton.id; + } + + if (container) { + if (container.baseProvider) { + element.baseProvider = container.baseProvider; + } + + if (container.layersProvider) { + element.layersProvider = container.layersProvider; + } + } + + this.attr(element, skeleton.attr); + this.style(element, skeleton.style); + this.data(element, skeleton.data); + this.class(element, skeleton.class); + this.properties(element, skeleton.properties); + this.on(element, skeleton.on); + + element.storage = (function() { + var parent = element, + key = skeleton.storage || property || false, + value; + + if (satus.isFunction(key)) { + key = key(); + } + + if (skeleton.storage !== false) { + if (key) { + value = satus.storage.get(key); + } + + if (skeleton.hasOwnProperty('value') && value === undefined) { + value = skeleton.value; + } + } + + return Object.defineProperties({}, { + key: { + get: function() { + return key; + }, + set: function(string) { + key = string; + } + }, + value: { + get: function() { + return value; + }, + set: function(val) { + value = val; + + if (skeleton.storage !== false) { + satus.storage.set(key, val); + } + + parent.dispatchEvent(new CustomEvent('change')); + } + } + }); + }()); + + if (this.components[camelizedTagName]) { + this.components[camelizedTagName](element, skeleton); + } + + this.text(element.childrenContainer, skeleton.text); + this.prepend(skeleton.before, element.childrenContainer); + + if (prepend) { + this.prepend(element, container); + } else { + this.append(element, container); + } + + if (skeleton.hasOwnProperty('parentSkeleton') === false && container) { + skeleton.parentSkeleton = container.skeleton; + } + + satus.events.trigger('render', element); + + element.dispatchEvent(new CustomEvent('render')); + + container = element.childrenContainer || element; + } + + if ((!element || element.renderChildren !== false) & skip_children !== true) { + for (var key in skeleton) { + var item = skeleton[key]; + + if (key !== 'parentSkeleton' && key !== 'parentElement' && key !== 'parentObject' && key !== 'before') { + if (item && item.component) { + item.parentSkeleton = skeleton; + + if (element) { + item.parentElement = element; + } + + this.render(item, container, key, undefined, prepend); + } + } + } + } + + return element; +}; + + +/*-------------------------------------------------------------- +# SORT +--------------------------------------------------------------*/ + +satus.sort = function(array, order, property) { + var type; + + if (property) { + type = typeof array[0][property]; + } else { + type = typeof array[0]; + } + + if (order !== 'desc') { + if (type === 'number') { + if (property) { + return array.sort(function(a, b) { + return a[property] - b[property]; + }); + } else { + return array.sort(function(a, b) { + return a - b; + }); + } + } else if (type === 'string') { + if (property) { + return array.sort(function(a, b) { + return a[property].localeCompare(b[property]); + }); + } else { + return array.sort(function(a, b) { + return a.localeCompare(b); + }); + } + } + } else { + if (type === 'number') { + if (property) { + return array.sort(function(a, b) { + return b[property] - a[property]; + }); + } else { + return array.sort(function(a, b) { + return b - a; + }); + } + } else if (type === 'string') { + if (property) { + return array.sort(function(a, b) { + return b[property].localeCompare(a[property]); + }); + } else { + return array.sort(function(a, b) { + return b.localeCompare(a); + }); + } + } + } +}; + + +/*-------------------------------------------------------------- +# STORAGE +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# CLEAR +--------------------------------------------------------------*/ + +satus.storage.clear = function(callback) { + this.data = {}; + + chrome.storage.local.clear(function() { + satus.events.trigger('storage-clear'); + + if (callback) { + callback(); + } + }); +}; + + +/*-------------------------------------------------------------- +# GET +--------------------------------------------------------------*/ + +satus.storage.get = function(key, callback) { + var target = this.data; + + if (typeof key !== 'string') { + return; + } + + key = key.split('/').filter(function(value) { + return value != ''; + }); + + for (var i = 0, l = key.length; i < l; i++) { + if (satus.isset(target[key[i]])) { + target = target[key[i]]; + } else { + return undefined; + } + } + + if (typeof target === 'function') { + return target(); + } else { + return target; + } +}; + + +/*-------------------------------------------------------------- +# IMPORT +--------------------------------------------------------------*/ + +satus.storage.import = function(keys, callback) { + var self = this; + + if (typeof keys === 'function') { + callback = keys; + + keys = undefined; + } + + chrome.storage.local.get(keys, function(items) { + for (var key in items) { + self.data[key] = items[key]; + } + + satus.log('STORAGE: data was successfully imported'); + + satus.events.trigger('storage-import'); + + if (callback) { + callback(items); + } + }); +}; + + +/*-------------------------------------------------------------- +# REMOVE +--------------------------------------------------------------*/ + +satus.storage.remove = function(key, callback) { + var target = this.data; + + if (typeof key !== 'string') { + return; + } + + key = key.split('/').filter(function(value) { + return value != ''; + }); + + for (var i = 0, l = key.length; i < l; i++) { + if (satus.isset(target[key[i]])) { + if (i === l - 1) { + delete target[key[i]]; + } else { + target = target[key[i]]; + } + } else { + return undefined; + } + } + + if (key.length === 1) { + chrome.storage.local.remove(key[0]); + } else { + chrome.storage.local.set(this.data, function() { + satus.events.trigger('storage-remove'); + + if (callback) { + callback(); + } + }); + } +}; + + +/*-------------------------------------------------------------- +# SET +--------------------------------------------------------------*/ + +satus.storage.set = function(key, value, callback) { + var items = {}, + target = this.data; + + if (typeof key !== 'string') { + return; + } + + key = key.split('/').filter(function(value) { + return value != ''; + }); + + for (var i = 0, l = key.length; i < l; i++) { + var item = key[i]; + + if (i < l - 1) { + + if (target[item]) { + target = target[item]; + } else { + target[item] = {}; + + target = target[item]; + } + } else { + target[item] = value; + } + } + + for (var key in this.data) { + if (typeof this.data[key] !== 'function') { + items[key] = this.data[key]; + } + } + + chrome.storage.local.set(items, function() { + try {satus.events.trigger('storage-set');} + catch(err){console.log(err);} + + if (callback) { + callback(); + } + }); +}; + + +/*-------------------------------------------------------------- +# ON CHANGED +--------------------------------------------------------------*/ + +satus.storage.onchanged = function(callback) { + chrome.storage.onChanged.addListener(function(changes) { + for (var key in changes) { + callback(key, changes[key].newValue); + } + }); +}; + + +/*-------------------------------------------------------------- +# LAST +--------------------------------------------------------------*/ + +satus.last = function(variable) { + if (this.isArray(variable) || this.isNodeList(variable) || variable instanceof HTMLCollection) { + return variable[variable.length - 1]; + } +}; + + +/*-------------------------------------------------------------- +# LOCALIZATION +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# GET +--------------------------------------------------------------*/ + +satus.locale.get = function(string) { + return this.data[string] || string; +}; + + +/*-------------------------------------------------------------- +# IMPORT +---------------------------------------------------------------- +satus.locale.import(url, onload, onsuccess); +--------------------------------------------------------------*/ + +satus.locale.import = function(code, callback, path) { + var language = code || window.navigator.language; + + if (language.indexOf('en') === 0) { + language = 'en'; + } + + language = language.replace('-', '_'); + + if (!path) { + path = '_locales/'; + } + + satus.fetch(chrome.runtime.getURL(path + language + '/messages.json'), function(response) { + for (var key in response) { + satus.locale.data[key] = response[key].message; + } + + //satus.log('LOCALE: data was successfully imported'); + + if (callback) { + callback(); + } + }, function(success) { + satus.fetch(chrome.runtime.getURL(path + 'en/messages.json'), success, function() { + success(); + }); + }); +}; + + +/*-------------------------------------------------------------- +# LOG +--------------------------------------------------------------*/ + +satus.log = function() { + console.log.apply(null, arguments); +}; + + +/*-------------------------------------------------------------- +# STYLE +--------------------------------------------------------------*/ + +satus.style = function(element, object) { + if (object) { + for (var key in object) { + element.style[key] = object[key]; + } + } +}; + + +/*-------------------------------------------------------------- +# TEXT +--------------------------------------------------------------*/ + +satus.text = function(element, value) { + if (value) { + if (satus.isFunction(value)) { + value = value(); + } + + element.appendChild(document.createTextNode(this.locale.get(value))); + } +}; +/*-------------------------------------------------------------- +>>> MODAL +---------------------------------------------------------------- +# Confirm +--------------------------------------------------------------*/ + +satus.components.modal = function(component, skeleton) { + component.scrim = component.createChildElement('div', 'scrim'); + component.surface = component.createChildElement('div', 'surface'); + + component.close = function() { + var component = this; + + this.classList.add('satus-modal--closing'); + + setTimeout(function() { + component.remove(); + + component.dispatchEvent(new CustomEvent('close')); + }, Number(satus.css(this.surface, 'animation-duration').replace(/[^0-9.]/g, '')) * 1000); + }; + + component.scrim.addEventListener('click', function() { + this.parentNode.close(); + }); + + if (satus.isset(skeleton.content)) { + component.surface.content = component.surface.createChildElement('p', 'content'); + + if (satus.isObject(skeleton.content)) { + satus.render(skeleton.content, component.surface.content); + } else { + component.surface.content.textContent = satus.locale.get(skeleton.content); + } + } else { + component.childrenContainer = component.surface; + } + + if (satus.components.modal[skeleton.variant]) { + satus.components.modal[skeleton.variant](component, skeleton); + } +}; + + +/*-------------------------------------------------------------- +# CONFIRM +--------------------------------------------------------------*/ + +satus.components.modal.confirm = function(component, skeleton) { + component.surface.actions = satus.render({ + component: 'section', + variant: 'align-end' + }, component.surface); + + if (skeleton.buttons) { + for (var key in skeleton.buttons) { + var button = skeleton.buttons[key]; + + if (satus.isObject(button) && button.component === 'button') { + satus.render(button, component.surface.actions).modalProvider = component; + } + } + } else { + satus.render({ + cancel: { + component: 'button', + text: 'cancel', + properties: { + modalProvider: component, + }, + on: { + click: function() { + this.modalProvider.dispatchEvent(new CustomEvent('cancel')); + this.modalProvider.close(); + } + } + }, + ok: { + component: 'button', + text: 'ok', + properties: { + modalProvider: component, + }, + on: { + click: function() { + this.modalProvider.dispatchEvent(new CustomEvent('confirm')); + this.modalProvider.close(); + } + } + } + }, component.surface.actions); + } +}; +/*-------------------------------------------------------------- +>>> GRID +--------------------------------------------------------------*/ + +satus.components.grid = function(component, skeleton) { + console.log(component, skeleton); +}; +/*-------------------------------------------------------------- +>>> TEXT FIELD +--------------------------------------------------------------*/ + +satus.components.textField = function(component, skeleton) { + var container = component.createChildElement('div', 'container'), + input = container.createChildElement(skeleton.rows === 1 ? 'input' : 'textarea'), + display = container.createChildElement('div', 'display'), + line_numbers = display.createChildElement('div', 'line-numbers'), + pre = display.createChildElement('pre'), + selection = display.createChildElement('div', 'selection'), + cursor = display.createChildElement('div', 'cursor'), + hiddenValue = container.createChildElement('pre', 'hidden-value'); + + if (skeleton.rows === 1) { + component.setAttribute('multiline', 'false'); + + component.multiline = false; + } + + component.placeholder = skeleton.placeholder; + component.input = input; + component.display = display; + component.lineNumbers = line_numbers; + component.pre = pre; + component.hiddenValue = hiddenValue; + component.selection = selection; + component.cursor = cursor; + component.syntax = { + current: 'text', + handlers: { + regex: function(value, target) { + var regex_token = /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g, + char_class_token = /[^\\-]+|-|\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)/g, + char_class_parts = /^(\[\^?)(]?(?:[^\\\]]+|\\[\S\s]?)*)(]?)$/, + quantifier = /^(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??$/, + matches = value.match(regex_token); + + function create(type, string) { + var span = document.createElement('span'); + + span.className = type; + span.textContent = string; + + target.appendChild(span); + } + + if (matches) { + for (var i = 0, l = matches.length; i < l; i++) { + var match = matches[i]; + + if (match[0] === '[') { + create('character-class', match); + } else if (match[0] === '(') { + create('group', match); + } else if (match[0] === ')') { + create('group', match); + } else if (match[0] === '\\' || match === '^') { + create('anchor', match); + } else if (quantifier.test(match)) { + create('quantifier', match); + } else if (match === '|' || match === '.') { + create('metasequence', match); + } else { + create('text', match); + } + } + } + } + }, + set: function(syntax) { + if (this.handlers[syntax]) { + this.current = syntax; + } else { + this.current = 'text'; + } + + pre.update(); + } + }; + component.focus = function() { + this.input.focus(); + }; + + if (skeleton.lineNumbers === false) { + component.setAttribute('line-numbers', 'false'); + + component.lineNumbers.setAttribute('hidden', ''); + } + + if (satus.isset(skeleton.cols)) { + input.cols = skeleton.cols; + } + + if (satus.isset(skeleton.rows)) { + input.rows = skeleton.rows; + } + + Object.defineProperty(component, 'value', { + get: function() { + return this.input.value; + }, + set: function(value) { + this.input.value = value; + } + }); + + if (skeleton.syntax) { + component.syntax.set(skeleton.syntax); + } + + selection.setAttribute('disabled', ''); + + line_numbers.update = function() { + var component = this.parentNode.parentNode.parentNode, + count = component.input.value.split('\n').length; + + if (count !== this.children.length) { + satus.empty(this); + + for (var i = 1; i <= count; i++) { + var span = document.createElement('span'); + + span.textContent = i; + + this.appendChild(span); + } + } + + component.input.style.paddingLeft = this.offsetWidth + 'px'; + }; + + pre.update = function() { + var component = this.parentNode.parentNode.parentNode, + handler = component.syntax.handlers[component.syntax.current], + value = component.value || ''; + + for (var i = this.childNodes.length - 1; i > -1; i--) { + this.childNodes[i].remove(); + } + + if (handler) { + handler(value, this); + } else { + this.textContent = value; + } + + if (value.length === 0) { + var placeholder = component.placeholder; + + if (typeof placeholder === 'function') { + placeholder = component.placeholder(); + } else { + placeholder = satus.locale.get(placeholder); + } + + this.textContent = placeholder; + } + }; + + cursor.update = function() { + var component = this.parentNode.parentNode.parentNode, + input = component.input, + value = input.value, + rows_count = value.split('\n').length, + start = input.selectionStart, + end = input.selectionEnd, + rows = value.slice(0, start).split('\n'), + top = 0; + + this.style.animation = 'none'; + + if (input.selectionDirection === 'forward') { + component.hiddenValue.textContent = value.substring(0, end); + } else { + component.hiddenValue.textContent = value.substring(0, start); + } + + top = component.hiddenValue.offsetHeight; + + component.hiddenValue.textContent = satus.last(rows); + + top -= component.hiddenValue.offsetHeight; + + if (component.multiline !== false) { + this.style.top = top + 'px'; + } + + this.style.left = component.hiddenValue.offsetWidth + component.lineNumbers.offsetWidth + 'px'; + + if (start === end) { + component.selection.setAttribute('disabled', ''); + } else { + component.selection.removeAttribute('disabled'); + + /*component.hiddenValue.textContent = value.substring(0, start); + + component.selection.style.left = component.hiddenValue.offsetWidth - input.scrollLeft + 'px'; + + component.hiddenValue.textContent = value.substring(start, end); + + component.selection.style.width = component.hiddenValue.offsetWidth + 'px';*/ + } + + this.style.animation = ''; + + component.hiddenValue.textContent = ''; + }; + + document.addEventListener('selectionchange', function(event) { + component.lineNumbers.update(); + component.pre.update(); + component.cursor.update(); + }); + + input.addEventListener('input', function() { + var component = this.parentNode.parentNode; + + component.storage.value = this.value; + + component.lineNumbers.update(); + component.pre.update(); + component.cursor.update(); + }); + + input.addEventListener('scroll', function(event) { + var component = this.parentNode.parentNode; + + component.display.style.top = -this.scrollTop + 'px'; + component.display.style.left = -this.scrollLeft + 'px'; + + component.lineNumbers.update(); + component.pre.update(); + component.cursor.update(); + }); + + component.addEventListener('change', function() { + this.lineNumbers.update(); + this.pre.update(); + this.cursor.update(); + }); + + component.value = component.storage.value || ''; + + component.addEventListener('render', function() { + component.lineNumbers.update(); + component.pre.update(); + component.cursor.update(); + }); + + if (skeleton.on) { + for (var type in skeleton.on) { + input.addEventListener(type, function(event) { + this.parentNode.parentNode.dispatchEvent(new Event(event.type)); + }); + } + } +}; +/*-------------------------------------------------------------- +>>> CHART +---------------------------------------------------------------- +# Core + # Bar +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# CORE +--------------------------------------------------------------*/ + +satus.components.chart = function(component, skeleton) { + var type = skeleton.type; + + if (this.chart[type]) { + component.classList.add('satus-chart--' + type); + + this.chart[type](component, skeleton); + } +}; + + +/*-------------------------------------------------------------- +# BAR +--------------------------------------------------------------*/ + +satus.components.chart.bar = function(component, skeleton) { + var labels = skeleton.labels, + datasets = skeleton.datasets, + bars = []; + + if (satus.isFunction(labels)) { + labels = labels(); + } + + if (satus.isFunction(datasets)) { + datasets = datasets(); + } + + if (satus.isArray(labels)) { + var container = component.createChildElement('div', 'labels'); + + for (var i = 0, l = labels.length; i < l; i++) { + var label = labels[i], + section = container.createChildElement('div', 'section'); + + section.textContent = label; + } + } + + if (satus.isArray(datasets)) { + var container = component.createChildElement('div', 'bars'); + + for (var i = 0, l = datasets.length; i < l; i++) { + var dataset = datasets[i]; + + for (var j = 0, k = dataset.data.length; j < k; j++) { + if (!satus.isElement(bars[j])) { + bars.push(container.createChildElement('div', 'bar')); + } + + var piece = bars[j].createChildElement('div', 'piece'); + + piece.title = dataset.label; + piece.style.height = dataset.data[j] + '%'; + piece.style.backgroundColor = 'rgb(' + dataset.color.join(',') + ')'; + } + } + } +}; +/*-------------------------------------------------------------- +>>> SELECT +--------------------------------------------------------------*/ + +satus.components.select = function(component, skeleton) { + var content = component.createChildElement('div', 'content'); + + component.childrenContainer = content; + component.valueElement = document.createElement('span'); + component.selectElement = document.createElement('select'); + + component.valueElement.className = 'satus-select__value'; + + component.appendChild(component.valueElement); + component.appendChild(component.selectElement); + + component.options = skeleton.options || []; + + if (satus.isFunction(component.options)) { + component.options = component.options(); + + if (!satus.isset(component.options)) { + component.options = []; + } + } + + for (var i = 0, l = component.options.length; i < l; i++) { + var option = document.createElement('option'); + + option.value = component.options[i].value; + + satus.text(option, component.options[i].text); + + component.selectElement.appendChild(option); + } + + Object.defineProperty(component, 'value', { + get() { + return this.selectElement.value; + }, + set(value) { + this.selectElement.value = value; + } + }); + + component.render = function() { + satus.empty(this.valueElement); + + if (this.selectElement.options[this.selectElement.selectedIndex]) { + satus.text(this.valueElement, this.selectElement.options[this.selectElement.selectedIndex].text); + } + + this.dataset.value = this.value; + }; + + component.selectElement.addEventListener('change', function() { + var component = this.parentNode; + + component.storage.value = this.value; + + component.render(); + }); + + component.value = component.storage.value || component.options[0].value; + + component.render(); +}; +/*-------------------------------------------------------------- +>>> DIVIDER +--------------------------------------------------------------*/ + +satus.components.divider = function() {}; +/*-------------------------------------------------------------- +>>> SECTION +--------------------------------------------------------------*/ + +satus.components.section = function(component, skeleton) { + if (satus.isString(skeleton.title)) { + component.dataset.title = satus.locale.get(skeleton.title); + } +}; +/*-------------------------------------------------------------- +>>> BASE +--------------------------------------------------------------*/ + +satus.components.base = function(component) { + component.baseProvider = component; + component.layers = []; +}; +/*-------------------------------------------------------------- +>>> ALERT +--------------------------------------------------------------*/ + +satus.components.alert = function(component, skeleton) {}; +/*-------------------------------------------------------------- +>>> TIME +--------------------------------------------------------------*/ + +satus.components.time = function(component, skeleton) { + var select_skeleton = Object.assign({}, skeleton); + + select_skeleton.component = 'select'; + select_skeleton.options = []; + + if (satus.isFunction(select_skeleton.hour12)) { + select_skeleton.hour12 = select_skeleton.hour12(); + } + + for (var i = 0, l = 24; i < l; i++) { + var hour = i, + value = i; + + if (select_skeleton.hour12 === true && i > 12) { + hour -= 12; + } + + if (hour < 10) { + hour = '0' + hour; + value = '0' + value; + } + + if (select_skeleton.hour12 === true) { + if (i > 12) { + hour += ':00 pm'; + } else { + hour += ':00 am'; + } + } else { + hour += ':00' + } + + select_skeleton.options.push({ + text: hour, + value: value + ':00' + }); + } + + satus.components.select(component, select_skeleton); + + component.classList.add('satus-select'); +}; +/*-------------------------------------------------------------- +>>> SIDEBAR +--------------------------------------------------------------*/ + +satus.components.sidebar = function(component, skeleton) {}; +/*-------------------------------------------------------------- +>>> LAYERS +--------------------------------------------------------------*/ + +satus.components.layers = function(component, skeleton) { + component.path = []; + component.renderChildren = false; + component.baseProvider.layers.push(component); + component.layersProvider = component; + + component.back = function() { + if (this.path.length > 1) { + this.path.pop(); + + this.open(this.path[this.path.length - 1], false); + } + }; + + component.open = function(skeleton, history) { + var previous_layer = satus.last(this.querySelectorAll('.satus-layers__layer')), + layer = this.createChildElement('div', 'layer'); + + if (history !== false) { + if (previous_layer) { + previous_layer.style.animation = 'fadeOutLeft 100ms linear forwards'; + layer.style.animation = 'fadeInRight 100ms linear forwards'; + } + + this.path.push(skeleton); + } else { + previous_layer.style.animation = 'fadeOutRight 100ms linear forwards'; + layer.style.animation = 'fadeInLeft 100ms linear forwards'; + } + + if (previous_layer) { + setTimeout(function() { + previous_layer.remove(); + }, satus.getAnimationDuration(previous_layer)); + } + + layer.skeleton = skeleton; + layer.baseProvider = this.baseProvider; + + satus.render(skeleton, layer, undefined, skeleton.component === 'layers'); + + this.dispatchEvent(new Event('open')); + }; + + component.update = function() { + var layer = this.querySelector('.satus-layers__layer'); + + satus.empty(layer); + satus.render(layer.skeleton, layer); + }; + + component.open(skeleton); +}; +/*-------------------------------------------------------------- +>>> LIST +--------------------------------------------------------------*/ + +satus.components.list = function(component, skeleton) { + for (var i = 0, l = skeleton.items.length; i < l; i++) { + var li = component.createChildElement('div', 'item'), + item = skeleton.items[i]; + + for (var j = 0, k = item.length; j < k; j++) { + var child = item[j]; + + if (satus.isObject(child)) { + satus.render(child, li); + } else { + var span = li.createChildElement('span'); + + span.textContent = satus.locale.get(child); + } + } + } +}; +/*-------------------------------------------------------------- +>>> COLOR PICKER +--------------------------------------------------------------*/ + +satus.components.colorPicker = function(component, skeleton) { + component.childrenContainer = component.createChildElement('div', 'content'); + + component.color = (function(element) { + var array; + + Object.defineProperty(element, 'value', { + get: function() { + return array; + }, + set: function(value) { + array = value; + + this.parentNode.storage.value = array; + + element.style.backgroundColor = 'rgb(' + value.join(',') + ')'; + } + }); + + element.value = component.storage.value || component.skeleton.value || [0, 0, 0]; + + return element; + })(component.createChildElement('span', 'value')); + + component.addEventListener('click', function() { + var hsl = satus.color.rgbToHsl(this.color.value), + s = hsl[1] / 100, + l = hsl[2] / 100; + + s *= l < .5 ? l : 1 - l; + + var v = l + s; + + s = 2 * s / (l + s); + + satus.render({ + component: 'modal', + variant: 'color-picker', + value: hsl, + parentElement: this, + + palette: { + component: 'div', + class: 'satus-color-picker__palette', + style: { + 'backgroundColor': 'hsl(' + hsl[0] + 'deg, 100%, 50%)' + }, + on: { + mousedown: function(event) { + if (event.button !== 0) { + return false; + } + + var palette = this, + rect = this.getBoundingClientRect(), + cursor = this.children[0]; + + function mousemove(event) { + var hsl = palette.skeleton.parentSkeleton.value, + x = event.clientX - rect.left, + y = event.clientY - rect.top, + s; + + x = Math.min(Math.max(x, 0), rect.width) / (rect.width / 100); + y = Math.min(Math.max(y, 0), rect.height) / (rect.height / 100); + + var v = 100 - y, + l = (2 - x / 100) * v / 2; + + hsl[1] = x * v / (l < 50 ? l * 2 : 200 - l * 2); + hsl[2] = l; + + cursor.style.left = x + '%'; + cursor.style.top = y + '%'; + + palette.nextSibling.children[0].style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; + + event.preventDefault(); + } + + function mouseup() { + window.removeEventListener('mousemove', mousemove); + window.removeEventListener('mouseup', mouseup); + } + + window.addEventListener('mousemove', mousemove); + window.addEventListener('mouseup', mouseup); + } + }, + + cursor: { + component: 'div', + class: 'satus-color-picker__cursor', + style: { + 'left': s * 100 + '%', + 'top': 100 - v * 100 + '%' + } + } + }, + section: { + component: 'section', + variant: 'color', + + color: { + component: 'div', + class: 'satus-color-picker__color', + style: { + 'backgroundColor': 'rgb(' + this.color.value.join(',') + ')' + } + }, + hue: { + component: 'slider', + class: 'satus-color-picker__hue', + storage: false, + value: hsl[0], + max: 360, + on: { + input: function() { + var modal = this.skeleton.parentSkeleton.parentSkeleton, + hsl = modal.value; + + hsl[0] = this.storage.value; + + this.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; + this.parentNode.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg, 100%, 50%)'; + } + } + } + }, + actions: { + component: 'section', + variant: 'actions', + + reset: { + component: 'button', + text: 'reset', + on: { + click: function() { + var modal = this.skeleton.parentSkeleton.parentSkeleton, + component = modal.parentElement; + + component.color.value = component.skeleton.value || [0, 0, 0]; + + modal.rendered.close(); + } + } + }, + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function() { + this.skeleton.parentSkeleton.parentSkeleton.rendered.close(); + } + } + }, + ok: { + component: 'button', + text: 'OK', + on: { + click: function() { + var modal = this.skeleton.parentSkeleton.parentSkeleton, + component = modal.parentElement; + + component.color.value = satus.color.hslToRgb(modal.value); + + modal.rendered.close(); + } + } + } + } + }, this.baseProvider.layers[0]); + }); +}; +/*-------------------------------------------------------------- +>>> RADIO +--------------------------------------------------------------*/ + +satus.components.radio = function(component, skeleton) { + component.nativeControl = component.createChildElement('input', 'input'); + + component.createChildElement('i'); + + component.childrenContainer = component.createChildElement('div', 'content'); + + component.nativeControl.type = 'radio'; + + if (skeleton.group) { + component.storage.key = skeleton.group; + component.nativeControl.name = skeleton.group; + } + + if (skeleton.value) { + component.nativeControl.value = skeleton.value; + } + + component.storage.value = satus.storage.get(component.storage.key); + + if (satus.isset(component.storage.value)) { + component.nativeControl.checked = component.storage.value === skeleton.value; + } else if (skeleton.checked) { + component.nativeControl.checked = true; + } + + component.nativeControl.addEventListener('change', function() { + var component = this.parentNode; + + component.storage.value = this.value; + }); +}; +/*-------------------------------------------------------------- +>>> SLIDER +--------------------------------------------------------------*/ + +satus.components.slider = function(component, skeleton) { + var content = component.createChildElement('div', 'content'), + children_container = content.createChildElement('div', 'children-container'), + text_input = content.createChildElement('input'), + track_container = component.createChildElement('div', 'track-container'), + input = track_container.createChildElement('input', 'input'); + + component.childrenContainer = children_container; + component.textInput = text_input; + component.input = input; + component.track = track_container.createChildElement('div', 'track'); + + text_input.type = 'text'; + + input.type = 'range'; + input.min = skeleton.min || 0; + input.max = skeleton.max || 1; + input.step = skeleton.step || 1; + input.value = component.storage.value || skeleton.value || 0; + + text_input.addEventListener('blur', function() { + var component = this.parentNode.parentNode; + + component.input.value = Number(this.value.replace(/[^0-9.]/g, '')); + component.storage.value = Number(component.input.value); + + component.update(); + }); + + text_input.addEventListener('keydown', function(event) { + if (event.key === 'Enter') { + var component = this.parentNode.parentNode; + + component.input.value = Number(this.value.replace(/[^0-9.]/g, '')); + component.storage.value = Number(component.input.value); + + component.update(); + } + }); + + input.addEventListener('input', function() { + var component = this.parentNode.parentNode; + + component.storage.value = Number(this.value); + + component.update(); + }); + + component.update = function() { + var input = this.input; + + this.textInput.value = input.value; + + this.track.style.width = 100 / (input.max - input.min) * (input.value - input.min) + '%'; + }; + + component.update(); + + if (skeleton.on) { + for (var type in skeleton.on) { + input.addEventListener(type, function(event) { + this.parentNode.parentNode.dispatchEvent(new Event(event.type)); + }); + } + } +}; +/*-------------------------------------------------------------- +>>> TABS +--------------------------------------------------------------*/ + +satus.components.tabs = function(component, skeleton) { + var tabs = skeleton.items, + value = skeleton.value; + + if (satus.isFunction(tabs)) { + tabs = tabs(); + } + + if (satus.isFunction(value)) { + value = value(); + } + + for (var i = 0, l = tabs.length; i < l; i++) { + var tab = tabs[i], + button = component.createChildElement('button'); + + button.addEventListener('click', function() { + var component = this.parentNode, + index = satus.elementIndex(this); + + component.value = index; + + component.style.setProperty('--satus-tabs-current', index); + }); + + satus.text(button, tab); + } + + component.style.setProperty('--satus-tabs-count', tabs.length); + component.style.setProperty('--satus-tabs-current', value || 0); +}; +/*-------------------------------------------------------------- +>>> SHORTCUT +--------------------------------------------------------------*/ + +satus.components.shortcut = function(component, skeleton) { + component.childrenContainer = component.createChildElement('div', 'content'); + component.valueElement = component.createChildElement('div', 'value'); + + component.className = 'satus-button'; + + component.render = function(parent) { + var self = this, + parent = parent || self.primary, + children = parent.children; + + satus.empty(parent); + + function createElement(name) { + var element = document.createElement('div'); + + element.className = 'satus-shortcut__' + name; + + parent.appendChild(element); + + return element; + } + + if (this.data.alt) { + createElement('key').textContent = 'Alt'; + } + + if (this.data.ctrl) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + createElement('key').textContent = 'Ctrl'; + } + + if (this.data.shift) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + createElement('key').textContent = 'Shift'; + } + + for (var code in this.data.keys) { + var key = this.data.keys[code].key, + arrows = ['ArrowUp', 'ArrowRight', 'ArrowDown', 'ArrowLeft'], + index = arrows.indexOf(key); + + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + if (index !== -1) { + createElement('key').textContent = ['↑', '→', '↓', '←'][index]; + } else if (key === ' ') { + createElement('key').textContent = '␣'; + } else if (key) { + createElement('key').textContent = key.toUpperCase(); + } + } + + if (this.data.wheel) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + var mouse = createElement('mouse'), + div = document.createElement('div'); + + mouse.appendChild(div); + + mouse.className += ' ' + (this.data.wheel > 0); + } + + if (this.data.click) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + var mouse = createElement('mouse'), + div = document.createElement('div'); + + mouse.appendChild(div); + + mouse.className += ' click'; + } + + if (this.data.middle) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + var mouse = createElement('mouse'), + div = document.createElement('div'); + + mouse.appendChild(div); + + mouse.className += ' middle'; + } + + if (this.data.context) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + var mouse = createElement('mouse'), + div = document.createElement('div'); + + mouse.appendChild(div); + + mouse.className += ' context'; + } + }; + + component.keydown = function(event) { + event.preventDefault(); + event.stopPropagation(); + + component.data = { + alt: event.altKey, + ctrl: event.ctrlKey, + shift: event.shiftKey, + keys: {} + }; + + if (['control', 'alt', 'altgraph', 'shift'].indexOf(event.key.toLowerCase()) === -1) { + component.data.keys[event.keyCode] = { + code: event.code, + key: event.key + }; + } + + component.data.wheel = 0; + + component.render(); + + return false; + }; + + if (skeleton.wheel !== false) { + component.mousewheel = function(event) { + event.stopPropagation(); + + if ( + ( + component.data.wheel === 0 && + ( + Object.keys(component.data.keys).length === 0 && + component.data.alt === false && + component.data.ctrl === false && + component.data.shift === false + ) + ) || + component.data.wheel < 0 && event.deltaY > 0 || + component.data.wheel > 0 && event.deltaY < 0) { + component.data = { + alt: false, + ctrl: false, + shift: false, + keys: {} + }; + } + + component.data.wheel = event.deltaY < 0 ? -1 : 1; + + component.render(); + + return false; + }; + } + + component.addEventListener('click', function() { + satus.render({ + component: 'modal', + properties: { + parent: this + }, + on: { + close: function() { + window.removeEventListener('keydown', component.keydown); + window.removeEventListener('wheel', component.mousewheel); + } + }, + + primary: { + component: 'div', + class: 'satus-shortcut__primary', + on: { + render: function() { + component.primary = this; + + if (component.skeleton.mouseButtons === true) { + this.addEventListener('mousedown', function(event) { + if ( + component.data.click && event.button === 0 || + component.data.middle && event.button === 1 + ) { + component.data = { + alt: false, + ctrl: false, + shift: false, + keys: {} + }; + } + + component.data.click = false; + component.data.middle = false; + component.data.context = false; + + if (event.button === 0) { + component.data.click = true; + + component.render(); + } else if (event.button === 1) { + component.data.middle = true; + + component.render(); + } + }); + + this.addEventListener('contextmenu', function(event) { + event.preventDefault(); + event.stopPropagation(); + + if (component.data.context) { + component.data = { + alt: false, + ctrl: false, + shift: false, + keys: {} + }; + } + + component.data.context = true; + component.data.middle = false; + component.data.click = false; + + component.render(); + + return false; + }); + } + + component.render(); + } + } + }, + actions: { + component: 'section', + variant: 'actions', + + reset: { + component: 'button', + text: 'reset', + on: { + click: function() { + var component = this.parentNode.parentNode.parentNode.parent; + + component.data = component.skeleton.value || {}; + + component.render(component.valueElement); + + satus.storage.remove(component.storage); + + this.parentNode.parentNode.parentNode.close(); + + window.removeEventListener('keydown', component.keydown); + window.removeEventListener('wheel', component.mousewheel); + } + } + }, + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function() { + component.data = satus.storage.get(component.storage) || component.skeleton.value || {}; + + component.render(component.valueElement); + + this.parentNode.parentNode.parentNode.close(); + + window.removeEventListener('keydown', component.keydown); + window.removeEventListener('wheel', component.mousewheel); + } + } + }, + save: { + component: 'button', + text: 'save', + on: { + click: function() { + component.storage.value = component.data; + + component.render(component.valueElement); + + this.parentNode.parentNode.parentNode.close(); + + window.removeEventListener('keydown', component.keydown); + window.removeEventListener('wheel', component.mousewheel); + } + } + } + } + }, this.baseProvider); + + window.addEventListener('keydown', this.keydown); + window.addEventListener('wheel', this.mousewheel); + }); + + component.data = component.storage.value || { + alt: false, + ctrl: false, + shift: false, + keys: {}, + wheel: 0 + }; + + component.render(component.valueElement); +}; +/*-------------------------------------------------------------- +>>> CHECKBOX +--------------------------------------------------------------*/ + +satus.components.checkbox = function(component, skeleton) { + component.input = component.createChildElement('input'); + component.input.type = 'checkbox'; + + component.checkmark = component.createChildElement('div', 'checkmark'); + + component.childrenContainer = component.createChildElement('div', 'content'); + + component.dataset.value = component.storage.value || skeleton.value; + component.input.checked = component.storage.value || skeleton.value; + + component.input.addEventListener('change', function() { + var component = this.parentNode; + + if (this.checked === true) { + component.storage.value = true; + component.dataset.value = 'true'; + } else { + component.storage.value = false; + component.dataset.value = 'false'; + } + }); +}; +/*-------------------------------------------------------------- +>>> SWITCH +--------------------------------------------------------------*/ + +satus.components.switch = function(component, skeleton) { + var value = satus.isset(component.storage.value) ? component.storage.value : skeleton.value; + + if (satus.isFunction(value)) { + value = value(); + } + + component.childrenContainer = component.createChildElement('div', 'content'); + + component.createChildElement('i'); + + component.dataset.value = value; + + component.addEventListener('click', function() { + if (this.dataset.value === 'true') { + this.dataset.value = 'false'; + this.storage.value = false; + } else { + this.dataset.value = 'true'; + this.storage.value = true; + } + }, true); +}; +/*-------------------------------------------------------------- +>>> CONTEXT MENU +--------------------------------------------------------------*/ + +satus.events.on('render', function(component) { + if (component.skeleton.contextMenu) { + component.addEventListener('contextmenu', function(event) { + var base = this.baseProvider, + base_rect = base.getBoundingClientRect(), + x = event.clientX - base_rect.left, + y = event.clientY - base_rect.top, + modal = satus.render({ + component: 'modal', + variant: 'contextmenu', + parentSkeleton: this.skeleton, + baseProvider: base + }, base); + + if (base_rect.width - x < 200) { + x = base_rect.width - x; + + if (x + 200 > base_rect.width) { + x = 0; + } + + modal.childrenContainer.style.right = x + 'px'; + } else { + modal.childrenContainer.style.left = x + 'px'; + } + + modal.childrenContainer.style.top = y + 'px'; + + this.skeleton.contextMenu.parentSkeleton = this.skeleton; + + satus.render(this.skeleton.contextMenu, modal.childrenContainer); + + event.preventDefault(); + event.stopPropagation(); + + return false; + }); + } +}); +/*-------------------------------------------------------------- +>>> SORTABLE +--------------------------------------------------------------*/ + +satus.events.on('render', function(component) { + if (component.skeleton.sortable === true) { + component.addEventListener('mousedown', function(event) { + if (event.button !== 0) { + return false; + } + + var component = this, + rect = this.getBoundingClientRect(), + x = event.clientX, + y = event.clientY, + offset_x = event.clientX - rect.left, + offset_y = event.clientY - rect.top, + ghost = satus.clone(this), + children = this.parentNode.children, + appended = false; + + ghost.classList.add('satus-sortable__ghost'); + + function mousemove(event) { + if (appended === false && (Math.abs(event.clientX - x) > 4 || Math.abs(event.clientY - y) > 4)) { + appended = true; + + component.classList.add('satus-sortable__chosen'); + + component.baseProvider.appendChild(ghost); + } + + ghost.style.transform = 'translate(' + (event.clientX - offset_x) + 'px, ' + (event.clientY - offset_y) + 'px)'; + } + + function mouseup(event) { + component.classList.remove('satus-sortable__chosen'); + ghost.remove(); + + window.removeEventListener('mousemove', mousemove, true); + window.removeEventListener('mouseup', mouseup, true); + + for (var i = 0, l = children.length; i < l; i++) { + var child = children[i]; + + if (child !== component) { + child.removeEventListener('mouseover', siblingMouseOver); + } + } + + component.dispatchEvent(new CustomEvent('sort')); + + event.stopPropagation(); + + return false; + } + + window.addEventListener('mousemove', mousemove, { + passive: true, + capture: true + }); + + window.addEventListener('mouseup', mouseup, { + passive: true, + capture: true + }); + + function siblingMouseOver(event) { + var parent = this.parentNode, + y = event.layerY / (this.offsetHeight / 100); + + if (y < 50 && this.previousSibling !== component || y >= 50 && this.nextSibling === component) { + parent.insertBefore(component, this); + } else { + parent.insertBefore(component, this.nextSibling); + } + } + + for (var i = 0, l = children.length; i < l; i++) { + var child = children[i]; + + if (child !== component) { + child.addEventListener('mouseover', siblingMouseOver); + } + } + + event.stopPropagation(); + event.preventDefault(); + + return false; + }); + } +}); +/*-------------------------------------------------------------- +>>> MANIFEST +--------------------------------------------------------------*/ + +satus.manifest = function() { + var object = {}; + + if (this.isset('chrome.runtime.getManifest')) { + object = chrome.runtime.getManifest(); + } + + return object; +}; +/*-------------------------------------------------------------- +>>> COLOR: +---------------------------------------------------------------- +# String to array +# RGB to HSL +# HUE to RGB +# HSL to RGB +--------------------------------------------------------------*/ + +satus.color = {}; + + +/*-------------------------------------------------------------- +# STRING TO ARRAY +--------------------------------------------------------------*/ + +satus.color.stringToArray = function(string) { + var match = string.match(/[0-9.]+/g); + + if (match) { + for (var i = 0, l = match.length; i < l; i++) { + match[i] = parseFloat(match[i]); + } + } + + return match; +}; + + +/*-------------------------------------------------------------- +# RGB TO HSL +--------------------------------------------------------------*/ + +satus.color.rgbToHsl = function(array) { + var r = array[0] / 255, + g = array[1] / 255, + b = array[2] / 255, + min = Math.min(r, g, b), + max = Math.max(r, g, b), + h = 0, + s = 0, + l = (min + max) / 2; + + if (min === max) { + h = 0; + s = 0; + } else { + var delta = max - min; + + s = l <= 0.5 ? delta / (max + min) : delta / (2 - max - min); + + if (max === r) { + h = (g - b) / delta + (g < b ? 6 : 0); + } else if (max === g) { + h = (b - r) / delta + 2; + } else if (max === b) { + h = (r - g) / delta + 4; + } + + h /= 6; + } + + h *= 360; + s *= 100; + l *= 100; + + if (array.length === 3) { + return [h, s, l]; + } else { + return [h, s, l, array[3]]; + } +}; + + +/*-------------------------------------------------------------- +# HUE TO RGB +--------------------------------------------------------------*/ + +satus.color.hueToRgb = function(array) { + var t1 = array[0], + t2 = array[1], + hue = array[2]; + + if (hue < 0) { + hue += 6; + } + + if (hue >= 6) { + hue -= 6; + } + + if (hue < 1) { + return (t2 - t1) * hue + t1; + } else if (hue < 3) { + return t2; + } else if (hue < 4) { + return (t2 - t1) * (4 - hue) + t1; + } else { + return t1; + } +}; + + +/*-------------------------------------------------------------- +# HSL TO RGB +--------------------------------------------------------------*/ + +satus.color.hslToRgb = function(array) { + var h = array[0] / 360, + s = array[1] / 100, + l = array[2] / 100, + r, g, b; + + if (s == 0) { + r = g = b = l; + } else { + var hue2rgb = function(p, q, t) { + if (t < 0) t += 1; + if (t > 1) t -= 1; + if (t < 1 / 6) return p + (q - p) * 6 * t; + if (t < 1 / 2) return q; + if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; + return p; + }; + + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hue2rgb(p, q, h + 1 / 3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1 / 3); + } + + return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)]; +}; +/*-------------------------------------------------------------- +>>> USER +---------------------------------------------------------------- +# OS + # Name + # Bitness +# Browser + # Name + # Version + # Platform + # Manifest + # Languages + # Cookies + # Flash + # Java + # Audio + # Video + # WebGL +# Device + # Screen + # RAM + # GPU + # Cores + # Touch + # Connection +--------------------------------------------------------------*/ + +satus.user = { + browser: {}, + device: {}, + os: {} +}; + +/*-------------------------------------------------------------- +# OS +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# NAME +--------------------------------------------------------------*/ + +satus.user.os.name = function() { + var app_version = navigator.appVersion; + + if (app_version.indexOf('Win') !== -1) { + if (app_version.match(/(Windows 10.0|Windows NT 10.0)/)) { + return 'Windows 10'; + } else if (app_version.match(/(Windows 8.1|Windows NT 6.3)/)) { + return 'Windows 8.1'; + } else if (app_version.match(/(Windows 8|Windows NT 6.2)/)) { + return 'Windows 8'; + } else if (app_version.match(/(Windows 7|Windows NT 6.1)/)) { + return 'Windows 7'; + } else if (app_version.match(/(Windows NT 6.0)/)) { + return 'Windows Vista'; + } else if (app_version.match(/(Windows NT 5.1|Windows XP)/)) { + return 'Windows XP'; + } else { + return 'Windows'; + } + } else if (app_version.indexOf('(iPhone|iPad|iPod)') !== -1) { + return 'iOS'; + } else if (app_version.indexOf('Mac') !== -1) { + return 'macOS'; + } else if (app_version.indexOf('Android') !== -1) { + return 'Android'; + } else if (app_version.indexOf('OpenBSD') !== -1) { + return 'OpenBSD'; + } else if (app_version.indexOf('SunOS') !== -1) { + return 'SunOS'; + } else if (app_version.indexOf('Linux') !== -1) { + return 'Linux'; + } else if (app_version.indexOf('X11') !== -1) { + return 'UNIX'; + } +}; + + +/*-------------------------------------------------------------- +# BITNESS +--------------------------------------------------------------*/ + +satus.user.os.bitness = function() { + if (navigator.appVersion.match(/(Win64|x64|x86_64|WOW64)/)) { + return '64-bit'; + } else { + return '32-bit'; + } +}; + + +/*-------------------------------------------------------------- +# BROWSER +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# NAME +--------------------------------------------------------------*/ + +satus.user.browser.name = function() { + var user_agent = navigator.userAgent; + + if (user_agent.indexOf('Opera') !== -1) { + return 'Opera'; + } else if (user_agent.indexOf('Vivaldi') !== -1) { + return 'Vivaldi'; + } else if (user_agent.indexOf('Edge') !== -1) { + return 'Edge'; + } else if (user_agent.indexOf('Chrome') !== -1) { + return 'Chrome'; + } else if (user_agent.indexOf('Safari') !== -1) { + return 'Safari'; + } else if (user_agent.indexOf('Firefox') !== -1) { + return 'Firefox'; + } else if (user_agent.indexOf('MSIE') !== -1) { + return 'IE'; + } +}; + + +/*-------------------------------------------------------------- +# VERSION +--------------------------------------------------------------*/ + +satus.user.browser.version = function() { + var browser_name = satus.user.browser.name(), + browser_version = navigator.userAgent.match(new RegExp(browser_name + '/([0-9.]+)')); + + return browser_version[1]; +}; + + +/*-------------------------------------------------------------- +# PLATFORM +--------------------------------------------------------------*/ + +satus.user.browser.platform = function() { + return navigator.platform; +}; + + +/*-------------------------------------------------------------- +# MANIFEST +--------------------------------------------------------------*/ + +satus.user.browser.manifest = function() { + return chrome.runtime.getManifest() || {}; +}; + + +/*-------------------------------------------------------------- +# LANGUAGES +--------------------------------------------------------------*/ + +satus.user.browser.languages = function() { + return navigator.languages; +}; + + +/*-------------------------------------------------------------- +# COOKIES +--------------------------------------------------------------*/ + +satus.user.browser.cookies = function() { + if (document.cookie) { + var random_cookie = 'ta{t`nX6cMXK,Wsc'; + + document.cookie = random_cookie; + + if (document.cookie.indexOf(random_cookie) !== -1) { + return true; + } + } + + return false; +}; + + +/*-------------------------------------------------------------- +# FLASH +--------------------------------------------------------------*/ + +satus.user.browser.flash = function() { + try { + if (new ActiveXObject('ShockwaveFlash.ShockwaveFlash')) { + return true; + } + } catch (error) { + if (navigator.mimeTypes['application/x-shockwave-flash']) { + return true; + } + } + + return false; +}; + + +/*-------------------------------------------------------------- +# JAVA +--------------------------------------------------------------*/ + +satus.user.browser.java = function() { + if (satus.isFunction(navigator.javaEnabled) && navigator.javaEnabled()) { + return true; + } else { + return false; + } +}; + + +/*-------------------------------------------------------------- +# AUDIO +--------------------------------------------------------------*/ + +satus.user.browser.audio = function() { + var audio = document.createElement('audio'), + types = { + mp3: 'audio/mpeg', + mp4: 'audio/mp4', + aif: 'audio/x-aiff' + }, + result = []; + + if (satus.isFunction(audio.canPlayType)) { + for (var key in types) { + var can_play_type = audio.canPlayType(types[key]); + + if (can_play_type !== '') { + result.push(key); + } + } + } + + return result; +}; + + +/*-------------------------------------------------------------- +# VIDEO +--------------------------------------------------------------*/ + +satus.user.browser.video = function() { + var video = document.createElement('video'), + types = { + ogg: 'video/ogg; codecs="theora"', + h264: 'video/mp4; codecs="avc1.42E01E"', + webm: 'video/webm; codecs="vp8, vorbis"', + vp9: 'video/webm; codecs="vp9"', + hls: 'application/x-mpegURL; codecs="avc1.42E01E"' + }, + result = []; + + if (satus.isFunction(video.canPlayType)) { + for (var key in types) { + var can_play_type = video.canPlayType(types[key]); + + if (can_play_type !== '') { + result.push(key); + } + } + } + + return result; +}; + + +/*-------------------------------------------------------------- +# WEBGL +--------------------------------------------------------------*/ + +satus.user.browser.webgl = function() { + var cvs = document.createElement('canvas'), + ctx = cvs.getContext('webgl'); + + return ctx && ctx instanceof WebGLRenderingContext; +}; + + +/*-------------------------------------------------------------- +# HARDWARE +--------------------------------------------------------------*/ + +/*-------------------------------------------------------------- +# SCREEN +--------------------------------------------------------------*/ + +satus.user.device.screen = function() { + if (screen) { + return screen.width + 'x' + screen.height; + } +}; + + +/*-------------------------------------------------------------- +# RAM +--------------------------------------------------------------*/ + +satus.user.device.ram = function() { + if ('deviceMemory' in navigator) { + return navigator.deviceMemory + ' GB'; + } +}; + + +/*-------------------------------------------------------------- +# GPU +--------------------------------------------------------------*/ + +satus.user.device.gpu = function() { + var cvs = document.createElement('canvas'), + ctx = cvs.getContext('webgl'); + + if ( + ctx && + ctx instanceof WebGLRenderingContext && + 'getParameter' in ctx && + 'getExtension' in ctx + ) { + var info = ctx.getExtension('WEBGL_debug_renderer_info'); + + if (info) { + return ctx.getParameter(info.UNMASKED_RENDERER_WEBGL); + } + } +}; + + +/*-------------------------------------------------------------- +# CORES +--------------------------------------------------------------*/ + +satus.user.device.cores = function() { + return navigator.deviceConcurrency; +}; + + +/*-------------------------------------------------------------- +# TOUCH +--------------------------------------------------------------*/ + +satus.user.device.touch = function() { + var result = {}; + + if ( + window.hasOwnProperty('ontouchstart') || + window.DocumentTouch && document instanceof window.DocumentTouch || + navigator.maxTouchPoints > 0 || + window.navigator.msMaxTouchPoints > 0 + ) { + result.touch = true; + result.maxTouchPoints = navigator.maxTouchPoints; + } + + return result; +}; + + +/*-------------------------------------------------------------- +# CONNECTION +--------------------------------------------------------------*/ + +satus.user.device.connection = function() { + var result = {}; + + if (typeof navigator.connection === 'object') { + result.type = navigator.connection.effectiveType || null; + + if (navigator.connection.downlink) { + result.speed = navigator.connection.downlink + ' Mbps'; + } + } + + return result; +}; +/*-------------------------------------------------------------- +# SEARCH +--------------------------------------------------------------*/ + +satus.search = function(query, object, callback) { + var elements = ['switch', 'select', 'slider', 'shortcut', 'radio', 'color-picker'], + threads = 0, + results = {}, + excluded = [ + 'baseProvider', + 'layersProvider', + 'parentObject', + 'parentSkeleton', + 'namespaceURI' + ]; + + query = query.toLowerCase(); + + function parse(items, parent) { + threads++; + + for (var key in items) { + if (excluded.indexOf(key) === -1) { + var item = items[key]; + + if (item.component) { + //console.log(key, item.component); + + if (elements.indexOf(item.component) !== -1 && key.indexOf(query) !== -1) { + results[key] = Object.assign({}, item); + } + } + + if ( + satus.isObject(item) && + !satus.isArray(item) && + !satus.isElement(item) && + !satus.isFunction(item) + ) { + parse(item, items); + } + } + } + + threads--; + + if (threads === 0) { + callback(results); + } + } + + parse(object); +}; diff --git a/content-scripts/website-context/core.js b/JS/web-accessible/core.js similarity index 100% rename from content-scripts/website-context/core.js rename to JS/web-accessible/core.js diff --git a/content-scripts/website-context/functions.js b/JS/web-accessible/functions.js similarity index 100% rename from content-scripts/website-context/functions.js rename to JS/web-accessible/functions.js diff --git a/content-scripts/website-context/init.js b/JS/web-accessible/init.js similarity index 100% rename from content-scripts/website-context/init.js rename to JS/web-accessible/init.js diff --git a/content-scripts/website-context/mutations.js b/JS/web-accessible/mutations.js similarity index 100% rename from content-scripts/website-context/mutations.js rename to JS/web-accessible/mutations.js diff --git a/content-scripts/website-context/youtube-features/appearance.js b/JS/web-accessible/www.youtube.com/appearance.js similarity index 100% rename from content-scripts/website-context/youtube-features/appearance.js rename to JS/web-accessible/www.youtube.com/appearance.js diff --git a/content-scripts/website-context/youtube-features/blacklist.js b/JS/web-accessible/www.youtube.com/blacklist.js similarity index 100% rename from content-scripts/website-context/youtube-features/blacklist.js rename to JS/web-accessible/www.youtube.com/blacklist.js diff --git a/content-scripts/website-context/youtube-features/channel.js b/JS/web-accessible/www.youtube.com/channel.js similarity index 100% rename from content-scripts/website-context/youtube-features/channel.js rename to JS/web-accessible/www.youtube.com/channel.js diff --git a/content-scripts/website-context/youtube-features/player.js b/JS/web-accessible/www.youtube.com/player.js similarity index 100% rename from content-scripts/website-context/youtube-features/player.js rename to JS/web-accessible/www.youtube.com/player.js diff --git a/content-scripts/website-context/youtube-features/playlist.js b/JS/web-accessible/www.youtube.com/playlist.js similarity index 100% rename from content-scripts/website-context/youtube-features/playlist.js rename to JS/web-accessible/www.youtube.com/playlist.js diff --git a/content-scripts/website-context/youtube-features/settings.js b/JS/web-accessible/www.youtube.com/settings.js similarity index 100% rename from content-scripts/website-context/youtube-features/settings.js rename to JS/web-accessible/www.youtube.com/settings.js diff --git a/content-scripts/website-context/youtube-features/shortcuts.js b/JS/web-accessible/www.youtube.com/shortcuts.js similarity index 100% rename from content-scripts/website-context/youtube-features/shortcuts.js rename to JS/web-accessible/www.youtube.com/shortcuts.js diff --git a/content-scripts/website-context/youtube-features/themes.js b/JS/web-accessible/www.youtube.com/themes.js similarity index 100% rename from content-scripts/website-context/youtube-features/themes.js rename to JS/web-accessible/www.youtube.com/themes.js diff --git a/manifest.json b/manifest.json index 363475c0f..e1630c7a9 100644 --- a/manifest.json +++ b/manifest.json @@ -5,12 +5,11 @@ "description": "__MSG_description_ext__", "version": "4.4", "default_locale": "en", - "icons": { - - "16": "assets/icons/16.png", - "32": "assets/icons/32.png", - "48": "assets/icons/48.png", - "128": "assets/icons/128.png" + "icons": { + "16": "media/icons/16.png", + "32": "media/icons/32.png", + "48": "media/icons/48.png", + "128": "media/icons/128.png" }, "background": { "scripts": [ @@ -24,32 +23,32 @@ "content_scripts": [ { "all_frames": true, - "css": [ - "content-scripts/extension-context/youtube-features/content-styles.css", - "content-scripts/extension-context/youtube-features/night-mode/night-mode.css", - "content-scripts/extension-context/youtube-features/general/general.css", - "content-scripts/extension-context/youtube-features/appearance/header/header.css", - "content-scripts/extension-context/youtube-features/appearance/player/player.css", - "content-scripts/extension-context/youtube-features/appearance/details/details.css", - "content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css", - "content-scripts/extension-context/youtube-features/appearance/comments/comments.css", - "content-scripts/extension-context/youtube-features/appearance/footer/footer.css" + "css": [ + "JS/extension/www.youtube.com/styles.css", + "JS/extension/www.youtube.com/night-mode/night-mode.css", + "JS/extension/www.youtube.com/general/general.css", + "JS/extension/www.youtube.com/appearance/header/header.css", + "JS/extension/www.youtube.com/appearance/player/player.css", + "JS/extension/www.youtube.com/appearance/details/details.css", + "JS/extension/www.youtube.com/appearance/sidebar/sidebar.css", + "JS/extension/www.youtube.com/appearance/comments/comments.css", + "JS/extension/www.youtube.com/appearance/footer/footer.css" ], "exclude_matches": [ "https://www.youtube.com/audiolibrary/*", "https://www.youtube.com/tv*" ], "js": [ - "assets/satus/satus.js", - "content-scripts/extension-context/core.js", - "content-scripts/extension-context/functions.js", - "content-scripts/extension-context/youtube-features/night-mode/night-mode.js", - "content-scripts/extension-context/youtube-features/general/general.js", - "content-scripts/extension-context/youtube-features/appearance/player/player.js", - "content-scripts/extension-context/youtube-features/appearance/details/details.js", - "content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.js", - "content-scripts/extension-context/youtube-features/appearance/comments/comments.js", - "content-scripts/extension-context/init.js" + "JS/satus.js", + "JS/extension/core.js", + "JS/extension/functions.js", + "JS/extension/www.youtube.com/night-mode/night-mode.js", + "JS/extension/www.youtube.com/general/general.js", + "JS/extension/www.youtube.com/appearance/player/player.js", + "JS/extension/www.youtube.com/appearance/details/details.js", + "JS/extension/www.youtube.com/appearance/sidebar/sidebar.js", + "JS/extension/www.youtube.com/appearance/comments/comments.js", + "JS/extension/init.js" ], "matches": [ "https://www.youtube.com/*" @@ -67,17 +66,17 @@ ], "web_accessible_resources": [ "options-page/index.html", - "content-scripts/website-context/core.js", - "content-scripts/website-context/functions.js", - "content-scripts/website-context/youtube-features/appearance.js", - "content-scripts/website-context/youtube-features/themes.js", - "content-scripts/website-context/youtube-features/player.js", - "content-scripts/website-context/youtube-features/playlist.js", - "content-scripts/website-context/youtube-features/channel.js", - "content-scripts/website-context/youtube-features/shortcuts.js", - "content-scripts/website-context/youtube-features/blacklist.js", - "content-scripts/website-context/youtube-features/settings.js", - "content-scripts/website-context/init.js", - "content-scripts/website-context/mutations.js" + "JS/web-accessible/core.js", + "JS/web-accessible/functions.js", + "JS/web-accessible/www.youtube.com/appearance.js", + "JS/web-accessible/www.youtube.com/themes.js", + "JS/web-accessible/www.youtube.com/player.js", + "JS/web-accessible/www.youtube.com/playlist.js", + "JS/web-accessible/www.youtube.com/channel.js", + "JS/web-accessible/www.youtube.com/shortcuts.js", + "JS/web-accessible/www.youtube.com/blacklist.js", + "JS/web-accessible/www.youtube.com/settings.js", + "JS/web-accessible/init.js", + "JS/web-accessible/mutations.js" ] -} +} \ No newline at end of file diff --git a/manifest3.json b/manifest3.json index e6ac9fb99..1c26db119 100644 --- a/manifest3.json +++ b/manifest3.json @@ -5,10 +5,10 @@ "version": "4.1", "default_locale": "en", "icons": { - "128": "assets/icons/128.png", - "16": "assets/icons/16.png", - "32": "assets/icons/32.png", - "48": "assets/icons/48.png" + "128": "media/icons/128.png", + "16": "media/icons/16.png", + "32": "media/icons/32.png", + "48": "media/icons/48.png" }, "background": { "service_worker": "background.js" @@ -21,31 +21,31 @@ { "all_frames": true, "css": [ - "content-scripts/extension-context/youtube-features/content-styles.css", - "content-scripts/extension-context/youtube-features/night-mode/night-mode.css", - "content-scripts/extension-context/youtube-features/general/general.css", - "content-scripts/extension-context/youtube-features/appearance/header/header.css", - "content-scripts/extension-context/youtube-features/appearance/player/player.css", - "content-scripts/extension-context/youtube-features/appearance/details/details.css", - "content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.css", - "content-scripts/extension-context/youtube-features/appearance/comments/comments.css", - "content-scripts/extension-context/youtube-features/appearance/footer/footer.css" + "JS/extension/www.youtube.com/styles.css", + "JS/extension/www.youtube.com/night-mode/night-mode.css", + "JS/extension/www.youtube.com/general/general.css", + "JS/extension/www.youtube.com/appearance/header/header.css", + "JS/extension/www.youtube.com/appearance/player/player.css", + "JS/extension/www.youtube.com/appearance/details/details.css", + "JS/extension/www.youtube.com/appearance/sidebar/sidebar.css", + "JS/extension/www.youtube.com/appearance/comments/comments.css", + "JS/extension/www.youtube.com/appearance/footer/footer.css" ], "exclude_matches": [ "https://www.youtube.com/audiolibrary/*", "https://www.youtube.com/tv*" ], "js": [ - "assets/satus/satus.js", - "content-scripts/extension-context/core.js", - "content-scripts/extension-context/functions.js", - "content-scripts/extension-context/youtube-features/night-mode/night-mode.js", - "content-scripts/extension-context/youtube-features/general/general.js", - "content-scripts/extension-context/youtube-features/appearance/player/player.js", - "content-scripts/extension-context/youtube-features/appearance/details/details.js", - "content-scripts/extension-context/youtube-features/appearance/sidebar/sidebar.js", - "content-scripts/extension-context/youtube-features/appearance/comments/comments.js", - "content-scripts/extension-context/init.js" + "JS/satus.js", + "JS/extension/core.js", + "JS/extension/functions.js", + "JS/extension/www.youtube.com/night-mode/night-mode.js", + "JS/extension/www.youtube.com/general/general.js", + "JS/extension/www.youtube.com/appearance/player/player.js", + "JS/extension/www.youtube.com/appearance/details/details.js", + "JS/extension/www.youtube.com/appearance/sidebar/sidebar.js", + "JS/extension/www.youtube.com/appearance/comments/comments.js", + "JS/extension/init.js" ], "matches": [ "https://www.youtube.com/*" @@ -65,18 +65,18 @@ { "resources": [ "options-page/index.html", - "content-scripts/website-context/core.js", - "content-scripts/website-context/functions.js", - "content-scripts/website-context/youtube-features/appearance.js", - "content-scripts/website-context/youtube-features/themes.js", - "content-scripts/website-context/youtube-features/player.js", - "content-scripts/website-context/youtube-features/playlist.js", - "content-scripts/website-context/youtube-features/channel.js", - "content-scripts/website-context/youtube-features/shortcuts.js", - "content-scripts/website-context/youtube-features/blacklist.js", - "content-scripts/website-context/youtube-features/settings.js", - "content-scripts/website-context/init.js", - "content-scripts/website-context/mutations.js" + "JS/web-accessible/core.js", + "JS/web-accessible/functions.js", + "JS/web-accessible/www.youtube.com/appearance.js", + "JS/web-accessible/www.youtube.com/themes.js", + "JS/web-accessible/www.youtube.com/player.js", + "JS/web-accessible/www.youtube.com/playlist.js", + "JS/web-accessible/www.youtube.com/channel.js", + "JS/web-accessible/www.youtube.com/shortcuts.js", + "JS/web-accessible/www.youtube.com/blacklist.js", + "JS/web-accessible/www.youtube.com/settings.js", + "JS/web-accessible/init.js", + "JS/web-accessible/mutations.js" ], "matches": [ "https://www.youtube.com/*" diff --git a/assets/fonts/Roboto-Light.ttf b/media/fonts/Roboto-Light.ttf similarity index 100% rename from assets/fonts/Roboto-Light.ttf rename to media/fonts/Roboto-Light.ttf diff --git a/assets/fonts/Roboto-Medium.ttf b/media/fonts/Roboto-Medium.ttf similarity index 100% rename from assets/fonts/Roboto-Medium.ttf rename to media/fonts/Roboto-Medium.ttf diff --git a/assets/fonts/Roboto-Regular.ttf b/media/fonts/Roboto-Regular.ttf similarity index 100% rename from assets/fonts/Roboto-Regular.ttf rename to media/fonts/Roboto-Regular.ttf diff --git a/assets/icons/128.png b/media/icons/128.png similarity index 100% rename from assets/icons/128.png rename to media/icons/128.png diff --git a/assets/icons/16.png b/media/icons/16.png similarity index 100% rename from assets/icons/16.png rename to media/icons/16.png diff --git a/assets/icons/32.png b/media/icons/32.png similarity index 100% rename from assets/icons/32.png rename to media/icons/32.png diff --git a/assets/icons/48.png b/media/icons/48.png similarity index 100% rename from assets/icons/48.png rename to media/icons/48.png diff --git a/options-page/index.html b/options-page/index.html index dd8dd27dc..6be28b145 100644 --- a/options-page/index.html +++ b/options-page/index.html @@ -11,7 +11,7 @@ margin: 0 } - + @@ -26,7 +26,7 @@ - + From 97962aea4a11e54642684bf2f269dd781052a811 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 24 Mar 2023 01:56:20 +0100 Subject: [PATCH 0878/1224] fix & update --- .gitmodules | 4 - {JS => js&css}/extension/core.js | 0 {JS => js&css}/extension/functions.js | 0 {JS => js&css}/extension/init.js | 26 +++--- .../appearance/comments/comments.css | 0 .../appearance/comments/comments.js | 0 .../appearance/details/details.css | 0 .../appearance/details/details.js | 0 .../appearance/footer/footer.css | 0 .../appearance/header/header.css | 2 + .../appearance/player/player.css | 0 .../appearance/player/player.js | 0 .../appearance/sidebar/sidebar.css | 0 .../appearance/sidebar/sidebar.js | 0 .../www.youtube.com/general/general.css | 0 .../www.youtube.com/general/general.js | 0 .../www.youtube.com/night-mode/night-mode.css | 0 .../www.youtube.com/night-mode/night-mode.js | 0 .../extension/www.youtube.com/styles.css | 0 {JS => js&css}/satus.css | 0 {JS => js&css}/satus.js | 25 +++--- {JS => js&css}/web-accessible/core.js | 0 {JS => js&css}/web-accessible/functions.js | 0 {JS => js&css}/web-accessible/init.js | 0 {JS => js&css}/web-accessible/mutations.js | 0 .../www.youtube.com/appearance.js | 0 .../www.youtube.com/blacklist.js | 0 .../web-accessible/www.youtube.com/channel.js | 0 .../web-accessible/www.youtube.com/player.js | 0 .../www.youtube.com/playlist.js | 0 .../www.youtube.com/settings.js | 4 +- .../www.youtube.com/shortcuts.js | 0 .../web-accessible/www.youtube.com/themes.js | 9 +- manifest.json | 78 +++++++++--------- manifest3.json | 76 ++++++++--------- {options-page => menu}/functions.js | 0 {options-page => menu}/index.html | 4 +- {options-page => menu}/index.js | 0 .../skeleton-parts/active-features.js | 0 .../skeleton-parts/analyzer.js | 0 .../skeleton-parts/appearance.js | 4 + .../skeleton-parts/blacklist.js | 0 .../skeleton-parts/channel.js | 0 .../skeleton-parts/general.js | 0 .../skeleton-parts/mixer.js | 0 .../skeleton-parts/night-mode.js | 0 .../skeleton-parts/player.js | 0 .../skeleton-parts/playlist.js | 0 .../skeleton-parts/search.js | 0 .../skeleton-parts/settings.js | 4 +- .../skeleton-parts/shortcuts.js | 0 .../skeleton-parts/themes.js | 0 {options-page => menu}/skeleton.js | 0 {options-page => menu}/styles/analyzer.css | 0 {options-page => menu}/styles/appearance.css | 0 {options-page => menu}/styles/blacklist.css | 0 {options-page => menu}/styles/fonts.css | 0 {options-page => menu}/styles/header.css | 0 {options-page => menu}/styles/home.css | 0 {options-page => menu}/styles/mixer.css | 0 {options-page => menu}/styles/night-mode.css | 0 {options-page => menu}/styles/player.css | 0 {options-page => menu}/styles/search.css | 0 {options-page => menu}/styles/settings.css | 0 {options-page => menu}/styles/themes.css | 0 {media => stuff}/fonts/Roboto-Light.ttf | Bin {media => stuff}/fonts/Roboto-Medium.ttf | Bin {media => stuff}/fonts/Roboto-Regular.ttf | Bin {media => stuff}/icons/128.png | Bin {media => stuff}/icons/16.png | Bin {media => stuff}/icons/32.png | Bin {media => stuff}/icons/48.png | Bin 72 files changed, 118 insertions(+), 118 deletions(-) delete mode 100644 .gitmodules rename {JS => js&css}/extension/core.js (100%) rename {JS => js&css}/extension/functions.js (100%) rename {JS => js&css}/extension/init.js (89%) rename {JS => js&css}/extension/www.youtube.com/appearance/comments/comments.css (100%) rename {JS => js&css}/extension/www.youtube.com/appearance/comments/comments.js (100%) rename {JS => js&css}/extension/www.youtube.com/appearance/details/details.css (100%) rename {JS => js&css}/extension/www.youtube.com/appearance/details/details.js (100%) rename {JS => js&css}/extension/www.youtube.com/appearance/footer/footer.css (100%) rename {JS => js&css}/extension/www.youtube.com/appearance/header/header.css (98%) rename {JS => js&css}/extension/www.youtube.com/appearance/player/player.css (100%) rename {JS => js&css}/extension/www.youtube.com/appearance/player/player.js (100%) rename {JS => js&css}/extension/www.youtube.com/appearance/sidebar/sidebar.css (100%) rename {JS => js&css}/extension/www.youtube.com/appearance/sidebar/sidebar.js (100%) rename {JS => js&css}/extension/www.youtube.com/general/general.css (100%) rename {JS => js&css}/extension/www.youtube.com/general/general.js (100%) rename {JS => js&css}/extension/www.youtube.com/night-mode/night-mode.css (100%) rename {JS => js&css}/extension/www.youtube.com/night-mode/night-mode.js (100%) rename {JS => js&css}/extension/www.youtube.com/styles.css (100%) rename {JS => js&css}/satus.css (100%) rename {JS => js&css}/satus.js (99%) rename {JS => js&css}/web-accessible/core.js (100%) rename {JS => js&css}/web-accessible/functions.js (100%) rename {JS => js&css}/web-accessible/init.js (100%) rename {JS => js&css}/web-accessible/mutations.js (100%) rename {JS => js&css}/web-accessible/www.youtube.com/appearance.js (100%) rename {JS => js&css}/web-accessible/www.youtube.com/blacklist.js (100%) rename {JS => js&css}/web-accessible/www.youtube.com/channel.js (100%) rename {JS => js&css}/web-accessible/www.youtube.com/player.js (100%) rename {JS => js&css}/web-accessible/www.youtube.com/playlist.js (100%) rename {JS => js&css}/web-accessible/www.youtube.com/settings.js (99%) rename {JS => js&css}/web-accessible/www.youtube.com/shortcuts.js (100%) rename {JS => js&css}/web-accessible/www.youtube.com/themes.js (96%) rename {options-page => menu}/functions.js (100%) rename {options-page => menu}/index.html (94%) rename {options-page => menu}/index.js (100%) rename {options-page => menu}/skeleton-parts/active-features.js (100%) rename {options-page => menu}/skeleton-parts/analyzer.js (100%) rename {options-page => menu}/skeleton-parts/appearance.js (99%) rename {options-page => menu}/skeleton-parts/blacklist.js (100%) rename {options-page => menu}/skeleton-parts/channel.js (100%) rename {options-page => menu}/skeleton-parts/general.js (100%) rename {options-page => menu}/skeleton-parts/mixer.js (100%) rename {options-page => menu}/skeleton-parts/night-mode.js (100%) rename {options-page => menu}/skeleton-parts/player.js (100%) rename {options-page => menu}/skeleton-parts/playlist.js (100%) rename {options-page => menu}/skeleton-parts/search.js (100%) rename {options-page => menu}/skeleton-parts/settings.js (98%) rename {options-page => menu}/skeleton-parts/shortcuts.js (100%) rename {options-page => menu}/skeleton-parts/themes.js (100%) rename {options-page => menu}/skeleton.js (100%) rename {options-page => menu}/styles/analyzer.css (100%) rename {options-page => menu}/styles/appearance.css (100%) rename {options-page => menu}/styles/blacklist.css (100%) rename {options-page => menu}/styles/fonts.css (100%) rename {options-page => menu}/styles/header.css (100%) rename {options-page => menu}/styles/home.css (100%) rename {options-page => menu}/styles/mixer.css (100%) rename {options-page => menu}/styles/night-mode.css (100%) rename {options-page => menu}/styles/player.css (100%) rename {options-page => menu}/styles/search.css (100%) rename {options-page => menu}/styles/settings.css (100%) rename {options-page => menu}/styles/themes.css (100%) rename {media => stuff}/fonts/Roboto-Light.ttf (100%) rename {media => stuff}/fonts/Roboto-Medium.ttf (100%) rename {media => stuff}/fonts/Roboto-Regular.ttf (100%) rename {media => stuff}/icons/128.png (100%) rename {media => stuff}/icons/16.png (100%) rename {media => stuff}/icons/32.png (100%) rename {media => stuff}/icons/48.png (100%) diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index f336960e0..000000000 --- a/.gitmodules +++ /dev/null @@ -1,4 +0,0 @@ -[submodule "SATUS lib"] -path = assets/satus -url = https://github.com/code-for-charity/SATUS - diff --git a/JS/extension/core.js b/js&css/extension/core.js similarity index 100% rename from JS/extension/core.js rename to js&css/extension/core.js diff --git a/JS/extension/functions.js b/js&css/extension/functions.js similarity index 100% rename from JS/extension/functions.js rename to js&css/extension/functions.js diff --git a/JS/extension/init.js b/js&css/extension/init.js similarity index 89% rename from JS/extension/init.js rename to js&css/extension/init.js index ada399745..8fdbfa66c 100644 --- a/JS/extension/init.js +++ b/js&css/extension/init.js @@ -56,18 +56,18 @@ chrome.runtime.sendMessage({ }); extension.inject([ - '/JS/web-accessible/core.js', - '/JS/web-accessible/functions.js', - '/JS/web-accessible/www.youtube.com/appearance.js', - '/JS/web-accessible/www.youtube.com/themes.js', - '/JS/web-accessible/www.youtube.com/player.js', - '/JS/web-accessible/www.youtube.com/playlist.js', - '/JS/web-accessible/www.youtube.com/channel.js', - '/JS/web-accessible/www.youtube.com/shortcuts.js', - '/JS/web-accessible/www.youtube.com/blacklist.js', - '/JS/web-accessible/www.youtube.com/settings.js', - '/JS/web-accessible/init.js', - '/JS/web-accessible/mutations.js' + '/js&css/web-accessible/core.js', + '/js&css/web-accessible/functions.js', + '/js&css/web-accessible/www.youtube.com/appearance.js', + '/js&css/web-accessible/www.youtube.com/themes.js', + '/js&css/web-accessible/www.youtube.com/player.js', + '/js&css/web-accessible/www.youtube.com/playlist.js', + '/js&css/web-accessible/www.youtube.com/channel.js', + '/js&css/web-accessible/www.youtube.com/shortcuts.js', + '/js&css/web-accessible/www.youtube.com/blacklist.js', + '/js&css/web-accessible/www.youtube.com/settings.js', + '/js&css/web-accessible/init.js', + '/js&css/web-accessible/mutations.js' ], function () { extension.ready = true; @@ -141,7 +141,7 @@ document.addEventListener('it-message-from-youtube', function () { if (message.requestOptionsUrl === true) { extension.messages.send({ - responseOptionsUrl: chrome.runtime.getURL('options-page/index.html') + responseOptionsUrl: chrome.runtime.getURL('menu/index.html') }); } else if (message.onlyOnePlayer === true) { chrome.runtime.sendMessage({ diff --git a/JS/extension/www.youtube.com/appearance/comments/comments.css b/js&css/extension/www.youtube.com/appearance/comments/comments.css similarity index 100% rename from JS/extension/www.youtube.com/appearance/comments/comments.css rename to js&css/extension/www.youtube.com/appearance/comments/comments.css diff --git a/JS/extension/www.youtube.com/appearance/comments/comments.js b/js&css/extension/www.youtube.com/appearance/comments/comments.js similarity index 100% rename from JS/extension/www.youtube.com/appearance/comments/comments.js rename to js&css/extension/www.youtube.com/appearance/comments/comments.js diff --git a/JS/extension/www.youtube.com/appearance/details/details.css b/js&css/extension/www.youtube.com/appearance/details/details.css similarity index 100% rename from JS/extension/www.youtube.com/appearance/details/details.css rename to js&css/extension/www.youtube.com/appearance/details/details.css diff --git a/JS/extension/www.youtube.com/appearance/details/details.js b/js&css/extension/www.youtube.com/appearance/details/details.js similarity index 100% rename from JS/extension/www.youtube.com/appearance/details/details.js rename to js&css/extension/www.youtube.com/appearance/details/details.js diff --git a/JS/extension/www.youtube.com/appearance/footer/footer.css b/js&css/extension/www.youtube.com/appearance/footer/footer.css similarity index 100% rename from JS/extension/www.youtube.com/appearance/footer/footer.css rename to js&css/extension/www.youtube.com/appearance/footer/footer.css diff --git a/JS/extension/www.youtube.com/appearance/header/header.css b/js&css/extension/www.youtube.com/appearance/header/header.css similarity index 98% rename from JS/extension/www.youtube.com/appearance/header/header.css rename to js&css/extension/www.youtube.com/appearance/header/header.css index 1b0ec95e6..d42008896 100644 --- a/JS/extension/www.youtube.com/appearance/header/header.css +++ b/js&css/extension/www.youtube.com/appearance/header/header.css @@ -8,6 +8,8 @@ # Hide voice search button --------------------------------------------------------------*/ +html[it-header-transparent=true] ytd-masthead { background-color: rgba(255, 255, 255, 0.2) !important;} + /*-------------------------------------------------------------- # POSITION --------------------------------------------------------------*/ diff --git a/JS/extension/www.youtube.com/appearance/player/player.css b/js&css/extension/www.youtube.com/appearance/player/player.css similarity index 100% rename from JS/extension/www.youtube.com/appearance/player/player.css rename to js&css/extension/www.youtube.com/appearance/player/player.css diff --git a/JS/extension/www.youtube.com/appearance/player/player.js b/js&css/extension/www.youtube.com/appearance/player/player.js similarity index 100% rename from JS/extension/www.youtube.com/appearance/player/player.js rename to js&css/extension/www.youtube.com/appearance/player/player.js diff --git a/JS/extension/www.youtube.com/appearance/sidebar/sidebar.css b/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css similarity index 100% rename from JS/extension/www.youtube.com/appearance/sidebar/sidebar.css rename to js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css diff --git a/JS/extension/www.youtube.com/appearance/sidebar/sidebar.js b/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.js similarity index 100% rename from JS/extension/www.youtube.com/appearance/sidebar/sidebar.js rename to js&css/extension/www.youtube.com/appearance/sidebar/sidebar.js diff --git a/JS/extension/www.youtube.com/general/general.css b/js&css/extension/www.youtube.com/general/general.css similarity index 100% rename from JS/extension/www.youtube.com/general/general.css rename to js&css/extension/www.youtube.com/general/general.css diff --git a/JS/extension/www.youtube.com/general/general.js b/js&css/extension/www.youtube.com/general/general.js similarity index 100% rename from JS/extension/www.youtube.com/general/general.js rename to js&css/extension/www.youtube.com/general/general.js diff --git a/JS/extension/www.youtube.com/night-mode/night-mode.css b/js&css/extension/www.youtube.com/night-mode/night-mode.css similarity index 100% rename from JS/extension/www.youtube.com/night-mode/night-mode.css rename to js&css/extension/www.youtube.com/night-mode/night-mode.css diff --git a/JS/extension/www.youtube.com/night-mode/night-mode.js b/js&css/extension/www.youtube.com/night-mode/night-mode.js similarity index 100% rename from JS/extension/www.youtube.com/night-mode/night-mode.js rename to js&css/extension/www.youtube.com/night-mode/night-mode.js diff --git a/JS/extension/www.youtube.com/styles.css b/js&css/extension/www.youtube.com/styles.css similarity index 100% rename from JS/extension/www.youtube.com/styles.css rename to js&css/extension/www.youtube.com/styles.css diff --git a/JS/satus.css b/js&css/satus.css similarity index 100% rename from JS/satus.css rename to js&css/satus.css diff --git a/JS/satus.js b/js&css/satus.js similarity index 99% rename from JS/satus.js rename to js&css/satus.js index b3a8f4f1a..b05520c4b 100644 --- a/JS/satus.js +++ b/js&css/satus.js @@ -1256,7 +1256,6 @@ satus.components.textField = function(component, skeleton) { if (skeleton.rows === 1) { component.setAttribute('multiline', 'false'); - component.multiline = false; } @@ -1435,13 +1434,16 @@ satus.components.textField = function(component, skeleton) { } else { component.selection.removeAttribute('disabled'); - /*component.hiddenValue.textContent = value.substring(0, start); + component.hiddenValue.textContent = value.substring(0, start); +console.log(value.substring(0, start)); component.selection.style.left = component.hiddenValue.offsetWidth - input.scrollLeft + 'px'; - +console.log(component.hiddenValue.offsetWidth); +console.log( input.scrollLeft ) component.hiddenValue.textContent = value.substring(start, end); - - component.selection.style.width = component.hiddenValue.offsetWidth + 'px';*/ +console.log(component.hiddenValue.textContent); + component.selection.style.width = component.hiddenValue.offsetWidth + 'px'; +console.log(component.hiddenValue.offsetWidth); } this.style.animation = ''; @@ -1508,7 +1510,6 @@ satus.components.textField = function(component, skeleton) { /*-------------------------------------------------------------- # CORE --------------------------------------------------------------*/ - satus.components.chart = function(component, skeleton) { var type = skeleton.type; @@ -1523,7 +1524,6 @@ satus.components.chart = function(component, skeleton) { /*-------------------------------------------------------------- # BAR --------------------------------------------------------------*/ - satus.components.chart.bar = function(component, skeleton) { var labels = skeleton.labels, datasets = skeleton.datasets, @@ -1571,7 +1571,6 @@ satus.components.chart.bar = function(component, skeleton) { /*-------------------------------------------------------------- >>> SELECT --------------------------------------------------------------*/ - satus.components.select = function(component, skeleton) { var content = component.createChildElement('div', 'content'); @@ -1635,11 +1634,12 @@ satus.components.select = function(component, skeleton) { component.render(); }; + /*-------------------------------------------------------------- >>> DIVIDER --------------------------------------------------------------*/ - satus.components.divider = function() {}; + /*-------------------------------------------------------------- >>> SECTION --------------------------------------------------------------*/ @@ -1665,7 +1665,6 @@ satus.components.alert = function(component, skeleton) {}; /*-------------------------------------------------------------- >>> TIME --------------------------------------------------------------*/ - satus.components.time = function(component, skeleton) { var select_skeleton = Object.assign({}, skeleton); @@ -1709,15 +1708,15 @@ satus.components.time = function(component, skeleton) { component.classList.add('satus-select'); }; + /*-------------------------------------------------------------- >>> SIDEBAR --------------------------------------------------------------*/ - satus.components.sidebar = function(component, skeleton) {}; + /*-------------------------------------------------------------- >>> LAYERS --------------------------------------------------------------*/ - satus.components.layers = function(component, skeleton) { component.path = []; component.renderChildren = false; @@ -2938,7 +2937,7 @@ satus.user.browser.languages = function() { satus.user.browser.cookies = function() { if (document.cookie) { - var random_cookie = 'ta{t`nX6cMXK,Wsc'; + var random_cookie = 'nX6cMXKWsc'; document.cookie = random_cookie; diff --git a/JS/web-accessible/core.js b/js&css/web-accessible/core.js similarity index 100% rename from JS/web-accessible/core.js rename to js&css/web-accessible/core.js diff --git a/JS/web-accessible/functions.js b/js&css/web-accessible/functions.js similarity index 100% rename from JS/web-accessible/functions.js rename to js&css/web-accessible/functions.js diff --git a/JS/web-accessible/init.js b/js&css/web-accessible/init.js similarity index 100% rename from JS/web-accessible/init.js rename to js&css/web-accessible/init.js diff --git a/JS/web-accessible/mutations.js b/js&css/web-accessible/mutations.js similarity index 100% rename from JS/web-accessible/mutations.js rename to js&css/web-accessible/mutations.js diff --git a/JS/web-accessible/www.youtube.com/appearance.js b/js&css/web-accessible/www.youtube.com/appearance.js similarity index 100% rename from JS/web-accessible/www.youtube.com/appearance.js rename to js&css/web-accessible/www.youtube.com/appearance.js diff --git a/JS/web-accessible/www.youtube.com/blacklist.js b/js&css/web-accessible/www.youtube.com/blacklist.js similarity index 100% rename from JS/web-accessible/www.youtube.com/blacklist.js rename to js&css/web-accessible/www.youtube.com/blacklist.js diff --git a/JS/web-accessible/www.youtube.com/channel.js b/js&css/web-accessible/www.youtube.com/channel.js similarity index 100% rename from JS/web-accessible/www.youtube.com/channel.js rename to js&css/web-accessible/www.youtube.com/channel.js diff --git a/JS/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js similarity index 100% rename from JS/web-accessible/www.youtube.com/player.js rename to js&css/web-accessible/www.youtube.com/player.js diff --git a/JS/web-accessible/www.youtube.com/playlist.js b/js&css/web-accessible/www.youtube.com/playlist.js similarity index 100% rename from JS/web-accessible/www.youtube.com/playlist.js rename to js&css/web-accessible/www.youtube.com/playlist.js diff --git a/JS/web-accessible/www.youtube.com/settings.js b/js&css/web-accessible/www.youtube.com/settings.js similarity index 99% rename from JS/web-accessible/www.youtube.com/settings.js rename to js&css/web-accessible/www.youtube.com/settings.js index 2c1e433dd..98357e357 100644 --- a/JS/web-accessible/www.youtube.com/settings.js +++ b/js&css/web-accessible/www.youtube.com/settings.js @@ -158,6 +158,7 @@ ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { if (window.self !== window.top) { return false; } + if (document.documentElement.dataset.pageType === 'video') { var section = document.querySelector('#flex.ytd-video-primary-info-renderer'); if (this.storage.description === "normal" || this.storage.description === "expanded") @@ -242,7 +243,8 @@ ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { section.insertAdjacentElement('afterend', button) } - } + } + } }; diff --git a/JS/web-accessible/www.youtube.com/shortcuts.js b/js&css/web-accessible/www.youtube.com/shortcuts.js similarity index 100% rename from JS/web-accessible/www.youtube.com/shortcuts.js rename to js&css/web-accessible/www.youtube.com/shortcuts.js diff --git a/JS/web-accessible/www.youtube.com/themes.js b/js&css/web-accessible/www.youtube.com/themes.js similarity index 96% rename from JS/web-accessible/www.youtube.com/themes.js rename to js&css/web-accessible/www.youtube.com/themes.js index 58073bb31..a1ad0f2ba 100644 --- a/JS/web-accessible/www.youtube.com/themes.js +++ b/js&css/web-accessible/www.youtube.com/themes.js @@ -86,18 +86,15 @@ ImprovedTube.myColors = function () { {document.querySelector('ytd-masthead').style.backgroundColor = ''+primary_color+''; } } else if (this.elements.my_colors) { - this.elements.my_colors.remove(); document.querySelector('ytd-masthead').style.backgroundColor ='rgba(255, 255, 255, 0.2)' ;} - + this.elements.my_colors.remove();} }; ImprovedTube.setTheme = function () { if (this.storage.theme === 'default'){ if (document.documentElement.hasAttribute('it-themes') !== null && document.documentElement.hasAttribute('it-themes') === true){ document.documentElement.removeAttribute('it-themes'); - document.documentElement.setAttribute('it-themes', 'false'); - document.querySelector('ytd-masthead').style.backgroundColor ='rgba(255, 255, 255, 0.5)'; - } - + document.documentElement.setAttribute('it-themes', 'false'); + } } else if (this.storage.theme === 'dark'){ if (document.documentElement.hasAttribute('dark') !== null && document.documentElement.hasAttribute('dark') ){ diff --git a/manifest.json b/manifest.json index e1630c7a9..ee444f12b 100644 --- a/manifest.json +++ b/manifest.json @@ -3,13 +3,13 @@ "name": "'Improve YouTube!'🎧(for YouTube & Videos)", "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "4.4", + "version": "4.5", "default_locale": "en", "icons": { - "16": "media/icons/16.png", - "32": "media/icons/32.png", - "48": "media/icons/48.png", - "128": "media/icons/128.png" + "16": "stuff/icons/16.png", + "32": "stuff/icons/32.png", + "48": "stuff/icons/48.png", + "128": "stuff/icons/128.png" }, "background": { "scripts": [ @@ -17,38 +17,38 @@ ] }, "browser_action": { - "default_popup": "options-page/index.html" + "default_popup": "menu/index.html" }, - "options_page": "options-page/index.html", + "options_page": "menu/index.html", "content_scripts": [ { "all_frames": true, "css": [ - "JS/extension/www.youtube.com/styles.css", - "JS/extension/www.youtube.com/night-mode/night-mode.css", - "JS/extension/www.youtube.com/general/general.css", - "JS/extension/www.youtube.com/appearance/header/header.css", - "JS/extension/www.youtube.com/appearance/player/player.css", - "JS/extension/www.youtube.com/appearance/details/details.css", - "JS/extension/www.youtube.com/appearance/sidebar/sidebar.css", - "JS/extension/www.youtube.com/appearance/comments/comments.css", - "JS/extension/www.youtube.com/appearance/footer/footer.css" + "js&css/extension/www.youtube.com/styles.css", + "js&css/extension/www.youtube.com/night-mode/night-mode.css", + "js&css/extension/www.youtube.com/general/general.css", + "js&css/extension/www.youtube.com/appearance/header/header.css", + "js&css/extension/www.youtube.com/appearance/player/player.css", + "js&css/extension/www.youtube.com/appearance/details/details.css", + "js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css", + "js&css/extension/www.youtube.com/appearance/comments/comments.css", + "js&css/extension/www.youtube.com/appearance/footer/footer.css" ], "exclude_matches": [ "https://www.youtube.com/audiolibrary/*", "https://www.youtube.com/tv*" ], "js": [ - "JS/satus.js", - "JS/extension/core.js", - "JS/extension/functions.js", - "JS/extension/www.youtube.com/night-mode/night-mode.js", - "JS/extension/www.youtube.com/general/general.js", - "JS/extension/www.youtube.com/appearance/player/player.js", - "JS/extension/www.youtube.com/appearance/details/details.js", - "JS/extension/www.youtube.com/appearance/sidebar/sidebar.js", - "JS/extension/www.youtube.com/appearance/comments/comments.js", - "JS/extension/init.js" + "js&css/satus.js", + "js&css/extension/core.js", + "js&css/extension/functions.js", + "js&css/extension/www.youtube.com/night-mode/night-mode.js", + "js&css/extension/www.youtube.com/general/general.js", + "js&css/extension/www.youtube.com/appearance/player/player.js", + "js&css/extension/www.youtube.com/appearance/details/details.js", + "js&css/extension/www.youtube.com/appearance/sidebar/sidebar.js", + "js&css/extension/www.youtube.com/appearance/comments/comments.js", + "js&css/extension/init.js" ], "matches": [ "https://www.youtube.com/*" @@ -65,18 +65,18 @@ "storage" ], "web_accessible_resources": [ - "options-page/index.html", - "JS/web-accessible/core.js", - "JS/web-accessible/functions.js", - "JS/web-accessible/www.youtube.com/appearance.js", - "JS/web-accessible/www.youtube.com/themes.js", - "JS/web-accessible/www.youtube.com/player.js", - "JS/web-accessible/www.youtube.com/playlist.js", - "JS/web-accessible/www.youtube.com/channel.js", - "JS/web-accessible/www.youtube.com/shortcuts.js", - "JS/web-accessible/www.youtube.com/blacklist.js", - "JS/web-accessible/www.youtube.com/settings.js", - "JS/web-accessible/init.js", - "JS/web-accessible/mutations.js" + "menu/index.html", + "js&css/web-accessible/core.js", + "js&css/web-accessible/functions.js", + "js&css/web-accessible/www.youtube.com/appearance.js", + "js&css/web-accessible/www.youtube.com/themes.js", + "js&css/web-accessible/www.youtube.com/player.js", + "js&css/web-accessible/www.youtube.com/playlist.js", + "js&css/web-accessible/www.youtube.com/channel.js", + "js&css/web-accessible/www.youtube.com/shortcuts.js", + "js&css/web-accessible/www.youtube.com/blacklist.js", + "js&css/web-accessible/www.youtube.com/settings.js", + "js&css/web-accessible/init.js", + "js&css/web-accessible/mutations.js" ] } \ No newline at end of file diff --git a/manifest3.json b/manifest3.json index 1c26db119..ab456cf49 100644 --- a/manifest3.json +++ b/manifest3.json @@ -5,47 +5,47 @@ "version": "4.1", "default_locale": "en", "icons": { - "128": "media/icons/128.png", - "16": "media/icons/16.png", - "32": "media/icons/32.png", - "48": "media/icons/48.png" + "128": "stuff/icons/128.png", + "16": "stuff/icons/16.png", + "32": "stuff/icons/32.png", + "48": "stuff/icons/48.png" }, "background": { "service_worker": "background.js" }, "action": { - "default_popup": "options-page/index.html" + "default_popup": "menu/index.html" }, - "options_page": "options-page/index.html", + "options_page": "menu/index.html", "content_scripts": [ { "all_frames": true, "css": [ - "JS/extension/www.youtube.com/styles.css", - "JS/extension/www.youtube.com/night-mode/night-mode.css", - "JS/extension/www.youtube.com/general/general.css", - "JS/extension/www.youtube.com/appearance/header/header.css", - "JS/extension/www.youtube.com/appearance/player/player.css", - "JS/extension/www.youtube.com/appearance/details/details.css", - "JS/extension/www.youtube.com/appearance/sidebar/sidebar.css", - "JS/extension/www.youtube.com/appearance/comments/comments.css", - "JS/extension/www.youtube.com/appearance/footer/footer.css" + "js&css/extension/www.youtube.com/styles.css", + "js&css/extension/www.youtube.com/night-mode/night-mode.css", + "js&css/extension/www.youtube.com/general/general.css", + "js&css/extension/www.youtube.com/appearance/header/header.css", + "js&css/extension/www.youtube.com/appearance/player/player.css", + "js&css/extension/www.youtube.com/appearance/details/details.css", + "js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css", + "js&css/extension/www.youtube.com/appearance/comments/comments.css", + "js&css/extension/www.youtube.com/appearance/footer/footer.css" ], "exclude_matches": [ "https://www.youtube.com/audiolibrary/*", "https://www.youtube.com/tv*" ], "js": [ - "JS/satus.js", - "JS/extension/core.js", - "JS/extension/functions.js", - "JS/extension/www.youtube.com/night-mode/night-mode.js", - "JS/extension/www.youtube.com/general/general.js", - "JS/extension/www.youtube.com/appearance/player/player.js", - "JS/extension/www.youtube.com/appearance/details/details.js", - "JS/extension/www.youtube.com/appearance/sidebar/sidebar.js", - "JS/extension/www.youtube.com/appearance/comments/comments.js", - "JS/extension/init.js" + "js&css/satus.js", + "js&css/extension/core.js", + "js&css/extension/functions.js", + "js&css/extension/www.youtube.com/night-mode/night-mode.js", + "js&css/extension/www.youtube.com/general/general.js", + "js&css/extension/www.youtube.com/appearance/player/player.js", + "js&css/extension/www.youtube.com/appearance/details/details.js", + "js&css/extension/www.youtube.com/appearance/sidebar/sidebar.js", + "js&css/extension/www.youtube.com/appearance/comments/comments.js", + "js&css/extension/init.js" ], "matches": [ "https://www.youtube.com/*" @@ -64,19 +64,19 @@ "web_accessible_resources": [ { "resources": [ - "options-page/index.html", - "JS/web-accessible/core.js", - "JS/web-accessible/functions.js", - "JS/web-accessible/www.youtube.com/appearance.js", - "JS/web-accessible/www.youtube.com/themes.js", - "JS/web-accessible/www.youtube.com/player.js", - "JS/web-accessible/www.youtube.com/playlist.js", - "JS/web-accessible/www.youtube.com/channel.js", - "JS/web-accessible/www.youtube.com/shortcuts.js", - "JS/web-accessible/www.youtube.com/blacklist.js", - "JS/web-accessible/www.youtube.com/settings.js", - "JS/web-accessible/init.js", - "JS/web-accessible/mutations.js" + "menu/index.html", + "js&css/web-accessible/core.js", + "js&css/web-accessible/functions.js", + "js&css/web-accessible/www.youtube.com/appearance.js", + "js&css/web-accessible/www.youtube.com/themes.js", + "js&css/web-accessible/www.youtube.com/player.js", + "js&css/web-accessible/www.youtube.com/playlist.js", + "js&css/web-accessible/www.youtube.com/channel.js", + "js&css/web-accessible/www.youtube.com/shortcuts.js", + "js&css/web-accessible/www.youtube.com/blacklist.js", + "js&css/web-accessible/www.youtube.com/settings.js", + "js&css/web-accessible/init.js", + "js&css/web-accessible/mutations.js" ], "matches": [ "https://www.youtube.com/*" diff --git a/options-page/functions.js b/menu/functions.js similarity index 100% rename from options-page/functions.js rename to menu/functions.js diff --git a/options-page/index.html b/menu/index.html similarity index 94% rename from options-page/index.html rename to menu/index.html index 6be28b145..cee91e542 100644 --- a/options-page/index.html +++ b/menu/index.html @@ -11,7 +11,7 @@ margin: 0 } - + @@ -26,7 +26,7 @@ - + diff --git a/options-page/index.js b/menu/index.js similarity index 100% rename from options-page/index.js rename to menu/index.js diff --git a/options-page/skeleton-parts/active-features.js b/menu/skeleton-parts/active-features.js similarity index 100% rename from options-page/skeleton-parts/active-features.js rename to menu/skeleton-parts/active-features.js diff --git a/options-page/skeleton-parts/analyzer.js b/menu/skeleton-parts/analyzer.js similarity index 100% rename from options-page/skeleton-parts/analyzer.js rename to menu/skeleton-parts/analyzer.js diff --git a/options-page/skeleton-parts/appearance.js b/menu/skeleton-parts/appearance.js similarity index 99% rename from options-page/skeleton-parts/appearance.js rename to menu/skeleton-parts/appearance.js index 3925a88d9..5bddbe789 100644 --- a/options-page/skeleton-parts/appearance.js +++ b/menu/skeleton-parts/appearance.js @@ -99,6 +99,10 @@ extension.skeleton.main.layers.section.appearance.on.click.header = { component: "switch", text: "hideRightButtons", tags: "user", + }, + header_transparent: { + component: "switch", + text: "Transparent", }, header_hide_country_code: { component: "switch", diff --git a/options-page/skeleton-parts/blacklist.js b/menu/skeleton-parts/blacklist.js similarity index 100% rename from options-page/skeleton-parts/blacklist.js rename to menu/skeleton-parts/blacklist.js diff --git a/options-page/skeleton-parts/channel.js b/menu/skeleton-parts/channel.js similarity index 100% rename from options-page/skeleton-parts/channel.js rename to menu/skeleton-parts/channel.js diff --git a/options-page/skeleton-parts/general.js b/menu/skeleton-parts/general.js similarity index 100% rename from options-page/skeleton-parts/general.js rename to menu/skeleton-parts/general.js diff --git a/options-page/skeleton-parts/mixer.js b/menu/skeleton-parts/mixer.js similarity index 100% rename from options-page/skeleton-parts/mixer.js rename to menu/skeleton-parts/mixer.js diff --git a/options-page/skeleton-parts/night-mode.js b/menu/skeleton-parts/night-mode.js similarity index 100% rename from options-page/skeleton-parts/night-mode.js rename to menu/skeleton-parts/night-mode.js diff --git a/options-page/skeleton-parts/player.js b/menu/skeleton-parts/player.js similarity index 100% rename from options-page/skeleton-parts/player.js rename to menu/skeleton-parts/player.js diff --git a/options-page/skeleton-parts/playlist.js b/menu/skeleton-parts/playlist.js similarity index 100% rename from options-page/skeleton-parts/playlist.js rename to menu/skeleton-parts/playlist.js diff --git a/options-page/skeleton-parts/search.js b/menu/skeleton-parts/search.js similarity index 100% rename from options-page/skeleton-parts/search.js rename to menu/skeleton-parts/search.js diff --git a/options-page/skeleton-parts/settings.js b/menu/skeleton-parts/settings.js similarity index 98% rename from options-page/skeleton-parts/settings.js rename to menu/skeleton-parts/settings.js index 7ee816344..143008605 100644 --- a/options-page/skeleton-parts/settings.js +++ b/menu/skeleton-parts/settings.js @@ -593,7 +593,7 @@ extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSecti if (location.href.indexOf('/index.html?action=import-settings') !== -1) { extension.importSettings(); } else { - window.open(chrome.runtime.getURL('options-page/index.html?action=import-settings'), '_blank'); + window.open(chrome.runtime.getURL('menu/index.html?action=import-settings'), '_blank'); } } } @@ -606,7 +606,7 @@ extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSecti if (location.href.indexOf('/index.html?action=export-settings') !== -1) { extension.exportSettings(); } else { - window.open(chrome.runtime.getURL('options-page/index.html?action=export-settings'), '_blank'); + window.open(chrome.runtime.getURL('menu/index.html?action=export-settings'), '_blank'); } } } diff --git a/options-page/skeleton-parts/shortcuts.js b/menu/skeleton-parts/shortcuts.js similarity index 100% rename from options-page/skeleton-parts/shortcuts.js rename to menu/skeleton-parts/shortcuts.js diff --git a/options-page/skeleton-parts/themes.js b/menu/skeleton-parts/themes.js similarity index 100% rename from options-page/skeleton-parts/themes.js rename to menu/skeleton-parts/themes.js diff --git a/options-page/skeleton.js b/menu/skeleton.js similarity index 100% rename from options-page/skeleton.js rename to menu/skeleton.js diff --git a/options-page/styles/analyzer.css b/menu/styles/analyzer.css similarity index 100% rename from options-page/styles/analyzer.css rename to menu/styles/analyzer.css diff --git a/options-page/styles/appearance.css b/menu/styles/appearance.css similarity index 100% rename from options-page/styles/appearance.css rename to menu/styles/appearance.css diff --git a/options-page/styles/blacklist.css b/menu/styles/blacklist.css similarity index 100% rename from options-page/styles/blacklist.css rename to menu/styles/blacklist.css diff --git a/options-page/styles/fonts.css b/menu/styles/fonts.css similarity index 100% rename from options-page/styles/fonts.css rename to menu/styles/fonts.css diff --git a/options-page/styles/header.css b/menu/styles/header.css similarity index 100% rename from options-page/styles/header.css rename to menu/styles/header.css diff --git a/options-page/styles/home.css b/menu/styles/home.css similarity index 100% rename from options-page/styles/home.css rename to menu/styles/home.css diff --git a/options-page/styles/mixer.css b/menu/styles/mixer.css similarity index 100% rename from options-page/styles/mixer.css rename to menu/styles/mixer.css diff --git a/options-page/styles/night-mode.css b/menu/styles/night-mode.css similarity index 100% rename from options-page/styles/night-mode.css rename to menu/styles/night-mode.css diff --git a/options-page/styles/player.css b/menu/styles/player.css similarity index 100% rename from options-page/styles/player.css rename to menu/styles/player.css diff --git a/options-page/styles/search.css b/menu/styles/search.css similarity index 100% rename from options-page/styles/search.css rename to menu/styles/search.css diff --git a/options-page/styles/settings.css b/menu/styles/settings.css similarity index 100% rename from options-page/styles/settings.css rename to menu/styles/settings.css diff --git a/options-page/styles/themes.css b/menu/styles/themes.css similarity index 100% rename from options-page/styles/themes.css rename to menu/styles/themes.css diff --git a/media/fonts/Roboto-Light.ttf b/stuff/fonts/Roboto-Light.ttf similarity index 100% rename from media/fonts/Roboto-Light.ttf rename to stuff/fonts/Roboto-Light.ttf diff --git a/media/fonts/Roboto-Medium.ttf b/stuff/fonts/Roboto-Medium.ttf similarity index 100% rename from media/fonts/Roboto-Medium.ttf rename to stuff/fonts/Roboto-Medium.ttf diff --git a/media/fonts/Roboto-Regular.ttf b/stuff/fonts/Roboto-Regular.ttf similarity index 100% rename from media/fonts/Roboto-Regular.ttf rename to stuff/fonts/Roboto-Regular.ttf diff --git a/media/icons/128.png b/stuff/icons/128.png similarity index 100% rename from media/icons/128.png rename to stuff/icons/128.png diff --git a/media/icons/16.png b/stuff/icons/16.png similarity index 100% rename from media/icons/16.png rename to stuff/icons/16.png diff --git a/media/icons/32.png b/stuff/icons/32.png similarity index 100% rename from media/icons/32.png rename to stuff/icons/32.png diff --git a/media/icons/48.png b/stuff/icons/48.png similarity index 100% rename from media/icons/48.png rename to stuff/icons/48.png From 5da5d5194d76929975e9b61b0217331407d86205 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 24 Mar 2023 16:47:26 +0100 Subject: [PATCH 0879/1224] music detection fixed & internationalized --- js&css/web-accessible/functions.js | 2 +- js&css/web-accessible/init.js | 2 +- js&css/web-accessible/www.youtube.com/appearance.js | 2 +- js&css/web-accessible/www.youtube.com/player.js | 12 ++++++------ menu/skeleton-parts/appearance.js | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/js&css/web-accessible/functions.js b/js&css/web-accessible/functions.js index 8c31666d8..91eb2d377 100644 --- a/js&css/web-accessible/functions.js +++ b/js&css/web-accessible/functions.js @@ -32,7 +32,7 @@ ImprovedTube.ytElementsHandler = function (node) { } } else if (name === 'META') { if (node.getAttribute('itemprop') === 'genre') { - ImprovedTube.genre = node.content; + ImprovedTube.category = node.content; } if (node.getAttribute('name') === 'keywords') { ImprovedTube.keywords = node.content; diff --git a/js&css/web-accessible/init.js b/js&css/web-accessible/init.js index 1bcc9131f..25a0b3d53 100644 --- a/js&css/web-accessible/init.js +++ b/js&css/web-accessible/init.js @@ -69,7 +69,7 @@ ImprovedTube.init = function () { document.addEventListener('yt-navigate-finish', function () { ImprovedTube.pageType(); - ImprovedTube.commentsSidebarPosition(); + ImprovedTube.commentsSidebar(); if (ImprovedTube.elements.player && ImprovedTube.elements.player.setPlaybackRate) { ImprovedTube.videoPageUpdate(); diff --git a/js&css/web-accessible/www.youtube.com/appearance.js b/js&css/web-accessible/www.youtube.com/appearance.js index 31df85770..a1cd8bc60 100644 --- a/js&css/web-accessible/www.youtube.com/appearance.js +++ b/js&css/web-accessible/www.youtube.com/appearance.js @@ -152,7 +152,7 @@ ImprovedTube.playerRemainingDuration = function () { /*------------------------------------------------------------------------------ 4.2.1.6 Comments position to sidebar ------------------------------------------------------------------------------*/ -ImprovedTube.commentsSidebarPosition=()=>{ if(ImprovedTube.storage.comments_sidebar_position){ +ImprovedTube.commentsSidebar=()=>{ if(ImprovedTube.storage.comments_sidebar){ document.querySelector("#columns").appendChild(document.querySelector("#comments")); if(window.matchMedia("(max-width: 1598px)").matches) diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index 0d3d2f034..16a92fbe9 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -80,11 +80,11 @@ ImprovedTube.playerPlaybackSpeed = function (change) { if (this.storage.player_forced_playback_speed === true) { if (player.getVideoData().isLive === false && (this.storage.player_force_speed_on_music === true || - (document.querySelector('h3#title')?.innerText !== 'Music' - && (ImprovedTube.genre !== 'Music' || /interview|back[- ]?stage/i.test(ImprovedTube.keywords + ImprovedTube.title) ) - && !/official (music )?video|lyrics|cover[\)\]]|[\(\[]cover|cover version|karaoke|(sing|play)[- ]?along/i.test(ImprovedTube.title + ImprovedTube.keywords) - && location.href.indexOf('music') === -1 - ) + document.querySelector('h3#title')?.innerText !== 'Music' // (=buyable/registered music table) + || ( + (ImprovedTube.elements.category !== 'Music' && !/official (music )?video|lyrics|cover[\)\]]|[\(\[]cover|cover version|karaok|(sing|play)[- ]?along|卡拉OK|卡拉OK|الكاريوكيкараоке|カラオケ|노래방/i.test(ImprovedTube.elements.title + ImprovedTube.elements.keywords) + ) || /do[ck]u|interv[iyj]|back[- ]?stage|インタビュー|entrevista|面试|面試|회견|wawancara|مقابلة|интервью|entretien|기록한 것|记录|記錄|ドキュメンタリ|وثائقي|документальный/i.test(ImprovedTube.elements.keywords + ImprovedTube.elements.title) + ) // && location.href.indexOf('music') === -1 // (=only running on www.youtube.com anyways) )) { player.setPlaybackRate(Number(option)); video.playbackRate = Number(option); @@ -394,7 +394,7 @@ ImprovedTube.playerAds = function (parent) { button.click(); document.querySelector("*[target-id*='engagement-panel-ads']").remove(); document.querySelector(".ytd-ad-slot-renderer").remove(); } } else if (this.storage.player_ads === 'block_music') { - if (ImprovedTube.elements.genre === 'music') { + if (ImprovedTube.elements.category === 'music') { button.click(); document.querySelector("*[target-id*='engagement-panel-ads']").remove(); document.querySelector(".ytd-ad-slot-renderer").remove(); } } diff --git a/menu/skeleton-parts/appearance.js b/menu/skeleton-parts/appearance.js index 5bddbe789..8efc466f2 100644 --- a/menu/skeleton-parts/appearance.js +++ b/menu/skeleton-parts/appearance.js @@ -738,7 +738,7 @@ extension.skeleton.main.layers.section.appearance.on.click.comments = { }, comments_sidebar_position: { component: "switch", - text: "SidebarPosition", + text: "sidebar", }, squared_user_images: { component: 'switch', From a2f6d024769a25841b5e7b38af7dc4912a65a219 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 24 Mar 2023 23:36:19 +0100 Subject: [PATCH 0880/1224] Update README.md --- .github/README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/README.md b/.github/README.md index 4f8eb839e..69ab7c424 100644 --- a/.github/README.md +++ b/.github/README.md @@ -17,13 +17,16 @@ - (Finding developers / patreons) - All bugs & some wishes - - (i) ToolTips & documentation + - (i) ToolTips & documentation - Avoiding CPU-rendering by default - Smart player buttons for all \ - Smart content-filtering & discovery - Full-page GUI, watch-history, dashboard - Integrating data [#1452](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1452), [SB](https://github.com/mchangrh/sb-mirror) / [NB](https://github.com/andrewzlee/NeuralBlock) etc. - - Integrating code / features like [YCS](https://github.com/sonigy/YCS), [YR](https://github.com/MarcGuiselin/youtube-refined), [NY](https://github.com/raingart/Nova-YouTube-extension), [IC](https://github.com/ThomasTavernier/Improve-Crunchyroll) + - Integrating code / features like [YCS](https://github.com/sonigy/YCS), [YR](https://github.com/MarcGuiselin/youtube-refined), [NY](https://github.com/raingart/Nova-YouTube-extension); [IC](https://github.com/ThomasTavernier/Improve-Crunchyroll) + - Run on m.youtube.com, hide what wont work + - Ask Samsung Browser to list us. +

Contributing

From 496d61844fdc5da118099484be3e8028cdcad162 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 24 Mar 2023 23:44:53 +0100 Subject: [PATCH 0881/1224] Update building for browser stores.md --- py/building for browser stores.md | 36 ++++++++++++++++--------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/py/building for browser stores.md b/py/building for browser stores.md index 66a836837..b4caba80b 100644 --- a/py/building for browser stores.md +++ b/py/building for browser stores.md @@ -1,31 +1,33 @@ -### For every Browser extension, a builder / build.py should consider these rules per browser-store: -- Edge: doesnt allow a chrome update url - - update URL edge: https://edge.microsoft.com/extensionwebstorebase/v1/crx , replace chrome: https://clients2.google.com/service/update2/crx +- Microsoft store has a bug/complification with languages https://github.com/code4charity/YouTube-Extension/discussions/966#discussioncomment-963315 -##### Extension name (title in manifest.js) +### Our build script should consider these rules per browser&store: - - Edge & Whale deny ' (Replace ' with *) - - Whale denies '&' (replace with '+') - - Opera denies Emoji (delete) - -- Microsoft store has a bug/complification with languages https://github.com/code4charity/YouTube-Extension/discussions/966#discussioncomment-963315 ##### FIREFOX: -- Security: remove or comment-out: "remote content" (googleapis.com/youtube) called as dynamic innerHtml +- [ ] Comment out PiP button in code and menu. Or at least dont set it by defaults. - Version 3.2: Firefox has commented-out // video.parentNode.parentNode.pauseVideo(); (fixes autoplay-bug) +- Security: remove or comment-out: "remote content" (googleapis.com/youtube) called as dynamic innerHtml + - [x] code changed -#### Firefox & Opera : +##### Extension name (title in manifest.js) -- Require moving google analytics. However it can be added / remain when generating the google webstore version. + - [ ] Edge & Whale deny ' (Replace ' with *) + - [ ] Whale denies '&' (Replace with '+') + - Opera removes Emoji automatically + +#### Firefox & Opera ---- ---- +- [ ] Require moving google analytics. Can be added differently in Firefox. Could always remain in Webstore. -#### ImprovedTube only: -- The repo should include m.youtube (firefox addons are available on phones) +#### ImprovedTube: +- [ ]We should include m.youtube. AND *.youtube.com + global permission, to work for all \'s. -
besides as of now only our Google Webstore version should remains with www.youtube, until we announce change +
besides right now only our Google Webstore version should remains with www.youtube, until we announce change + +#### Edge: doesnt allow a chrome update url + - update URL edge: https://edge.microsoft.com/extensionwebstorebase/v1/crx , replace chrome: https://clients2.google.com/service/update2/crx + - [x] update URL removed. (any downside?) From c9d62790900eb4842482e62ce382ab77f39b10e0 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 25 Mar 2023 04:36:31 +0100 Subject: [PATCH 0882/1224] Chapters&Transcript Always&Toggle Shortcut --- .../appearance/sidebar/sidebar.css | 7 ++-- js&css/web-accessible/core.js | 22 +++++------- js&css/web-accessible/functions.js | 31 +++++++--------- .../www.youtube.com/appearance.js | 23 ++++++------ .../web-accessible/www.youtube.com/player.js | 2 +- .../www.youtube.com/shortcuts.js | 36 ++++++++++++++++--- menu/skeleton-parts/appearance.js | 4 +++ menu/skeleton-parts/shortcuts.js | 16 +++++++-- 8 files changed, 85 insertions(+), 56 deletions(-) diff --git a/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css b/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css index 140e6b8b2..cd221719e 100644 --- a/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css +++ b/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css @@ -26,7 +26,6 @@ div#secondary #playlist { width: var(--ytd-watch-flexy-sidebar-width); min-width: var(--ytd-watch-flexy-sidebar-min-width); } - /*-------------------------------------------------------------- # TRANSCRIPT --------------------------------------------------------------*/ @@ -34,16 +33,16 @@ html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'], html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'] ytd-engagement-panel-section-list-renderer #content { max-height: 77vh !important; } html[data-page-type=video][it-transcript='true'][it-sidebar-left='transcript'] ytd-watch-flexy:not([fullscreen]) #columns - { display:flex !important; max-width:88% !important; } + { display:flex !important; max-width:95% !important; } @media screen and (min-width: 1599px) { html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'], html[data-page-type=video][it-transcript='true'] *[target-id*='transcript']:not([it-sidebar-left='true']) ytd-engagement-panel-section-list-renderer #content { display:flex !important; max-width: 80%; min-width: clamp(390px, calc(31vw - 90px), 950px ); } html[data-page-type=video][it-transcript='true'] ytd-watch-flexy:not([fullscreen]) #secondary -{ display:flex !important; max-width: 88% !important; } +{ display:flex !important; max-width: 95% !important; } html[data-page-type=video][it-transcript='true'] ytd-browse > ytd-two-column-browse-results-renderer { - object-fit: contain !important; max-width: 88% !important; margin: -5px; } + object-fit: contain !important; max-width: 95% !important; margin: -5px; } html[data-page-type=video][it-transcript='true']:not([it-player-size='1080p']):not([it-player-size='1440p']):not([it-player-size='2160p']):not([it-player-size='custom']):not([it-player-size='max_width']) ytd-watch-flexy:not([fullscreen]) #player{ max-width: 1280px !important; right: -20px; align:right; content-align: right !important} diff --git a/js&css/web-accessible/core.js b/js&css/web-accessible/core.js index 26d32ea55..b37c3ea61 100644 --- a/js&css/web-accessible/core.js +++ b/js&css/web-accessible/core.js @@ -143,20 +143,16 @@ document.addEventListener('it-message-from-extension', function () { {document.querySelector("#less").click() || document.querySelector("#collapse").click() ;} } else if (camelized_key === 'transcript') { - if (ImprovedTube.storage.transcript === true){ - document.querySelector('#below svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click(); - setTimeout(function(){ - try{document.querySelector('tp-yt-iron-dropdown svg path[d^="M5,11h2v2H5V11z M15,15H5v2h10V15z"]').closest("tp-yt-paper-item").click(); - document.querySelector('tp-yt-iron-dropdown').style.setProperty('opacity', '0.1', 'important');} - - catch(e){console.log(e); setTimeout(function(){ - try{document.querySelector('tp-yt-iron-dropdown svg path[d^="M5,11h2v2H5V11z M15,15H5v2h10V15z"]').closest("tp-yt-paper-item").click(); - document.querySelector('tp-yt-iron-dropdown').style.setProperty('opacity', '0.1', 'important');} - catch{}},300);}},1) - } if (ImprovedTube.storage.transcript === false){document.querySelector('*[target-id*=transcript] #visibility-button button').click();} - } + if (ImprovedTube.storage.transcript === true) {try{document.querySelector('*[target-id*=transcript]').removeAttribute('visibility');}catch{} + } if (ImprovedTube.storage.transcript === false){try{document.querySelector('*[target-id*=transcript] #visibility-button button').click();}catch{}} + } + else if (camelized_key === 'chapters') { + if (ImprovedTube.storage.chapters === true){try{document.querySelector('*[target-id*=chapters]').removeAttribute('visibility');}catch{} + } if (ImprovedTube.storage.chapters === false){try{document.querySelector('*[target-id*=chapters] #visibility-button button').click();}catch{}} + } + if (ImprovedTube[camelized_key]) { - ImprovedTube[camelized_key](); + try{ImprovedTube[camelized_key]()}catch{}; } } else if (message.focus === true && ImprovedTube.elements.player) { ImprovedTube.focus = true; diff --git a/js&css/web-accessible/functions.js b/js&css/web-accessible/functions.js index 91eb2d377..90dd0b0bf 100644 --- a/js&css/web-accessible/functions.js +++ b/js&css/web-accessible/functions.js @@ -205,26 +205,19 @@ ImprovedTube.ytElementsHandler = function (node) { node.calculateNormalPlayerSize_ = node.calculateCurrentPlayerSize_; } - }else if (id ==='description-inner') { - if (document.documentElement.dataset.pageType === 'video'){ - setTimeout(function () { + }else if (document.documentElement.dataset.pageType === 'video'){ + if (id ==='description-inner') { + setTimeout(function () { ImprovedTube.description(node); - }, 300); - } - }else if (id === 'meta') { - if (document.documentElement.dataset.pageType === 'video') { - setTimeout(function () { - ImprovedTube.description(node.querySelector('#more')); - }, 300); - } - } - else if (id === 'below') { - if (document.documentElement.dataset.pageType === 'video') { - setTimeout(function () { - ImprovedTube.transcript(node); - }, 400); - } - } + }, 300); + }else if (id === 'meta') {setTimeout(function () { ImprovedTube.description(node.querySelector('#more')); }, 300); + }else if (id === 'below' ){setTimeout(function () { }, 0); + }else if (id === 'panels'){setTimeout(function () { + ImprovedTube.transcript(node); + ImprovedTube.chapters(node); }, 300); + } + } + }; ImprovedTube.pageType = function () { diff --git a/js&css/web-accessible/www.youtube.com/appearance.js b/js&css/web-accessible/www.youtube.com/appearance.js index a1cd8bc60..519446870 100644 --- a/js&css/web-accessible/www.youtube.com/appearance.js +++ b/js&css/web-accessible/www.youtube.com/appearance.js @@ -168,19 +168,16 @@ ImprovedTube.commentsSidebar=()=>{ if(ImprovedTube.storage.comments_sidebar){ /*---------------------------------------------------------------- # TRANSCRIPT --------------------------------------------------------------*/ - -ImprovedTube.transcript = function (el){ -if (ImprovedTube.storage.transcript === true){ -try{el.querySelector('svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click();} -catch(e){console.log(e); -setTimeout(function(){try{el.querySelector('svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click();} -catch{}},800)}; -setTimeout(function(){try{document.querySelector('tp-yt-iron-dropdown').style.setProperty('opacity', '0.1', 'important');document.querySelector('tp-yt-iron-dropdown svg path[d^="M5,11h2v2H5V11z M15,15H5v2h10V15z"]').closest("tp-yt-paper-item").click();} -catch{setTimeout(function(){try{document.querySelector('tp-yt-iron-dropdown').style.setProperty('opacity', '0.1', 'important');document.querySelector('tp-yt-iron-dropdown svg path[d^="M5,11h2v2H5V11z M15,15H5v2h10V15z"]').closest("tp-yt-paper-item").click();} -catch{el.querySelector('svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click();}},300);} -},7); -}} - +ImprovedTube.transcript = function (el){ if (ImprovedTube.storage.transcript === true){ +try{el.querySelector('*[target-id*=transcript]').removeAttribute('visibility');} +catch{}}} +/*---------------------------------------------------------------- +# CHAPTERS +--------------------------------------------------------------*/ +ImprovedTube.chapters = function (el){ if (ImprovedTube.storage.chapters === true){ +try{node.querySelector('*[target-id*=chapters]').removeAttribute('visibility');} +catch{}} +} /*------------------------------------------------------------------------------ 4.2.2.1 LIVECHAT ------------------------------------------------------------------------------*/ diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index 16a92fbe9..34ebdb764 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -385,7 +385,7 @@ ImprovedTube.upNextAutoplay = function () { ------------------------------------------------------------------------------*/ ImprovedTube.playerAds = function (parent) { - var button = parent.querySelector('.ytp-ad-skip-button.ytp-button'); + try{var button = parent.querySelector('.ytp-ad-skip-button.ytp-button');}catch{} if (button) { if (this.storage.player_ads === 'block_all') { button.click(); document.querySelector("*[target-id*='engagement-panel-ads']").remove(); document.querySelector(".ytd-ad-slot-renderer").remove(); diff --git a/js&css/web-accessible/www.youtube.com/shortcuts.js b/js&css/web-accessible/www.youtube.com/shortcuts.js index 87e2cc4eb..f61781e85 100644 --- a/js&css/web-accessible/www.youtube.com/shortcuts.js +++ b/js&css/web-accessible/www.youtube.com/shortcuts.js @@ -580,7 +580,20 @@ ImprovedTube.shortcutActivateCaptions = function () { player.toggleSubtitlesOn(); } }; - +/*------Chapters------*/ + +ImprovedTube.shortcutChapters = function () { + try{var height = document.querySelector('*[target-id*=chapters]').clientHeight;}catch{} + if (height) {try{document.querySelector('*[target-id*=chapters] #visibility-button button').click();}catch{}} + else { try{document.querySelector('*[target-id*=chapters]').removeAttribute('visibility');}catch{} } +}; + +/*------Transcript------*/ +ImprovedTube.shortcutTranscript = function () { + try{var height = document.querySelector('*[target-id*=transcript]').clientHeight;}catch{} + if (height) {try{document.querySelector('*[target-id*=transcript] #visibility-button button').click();}catch{}} + else { try{document.querySelector('*[target-id*=transcript]').removeAttribute('visibility');}catch{} } +}; /*------------------------------------------------------------------------------ 4.7.22 LIKE @@ -588,7 +601,6 @@ ImprovedTube.shortcutActivateCaptions = function () { ImprovedTube.shortcutLike = function () { var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer button')[0]); - if (like) { like.click(); } @@ -601,12 +613,27 @@ ImprovedTube.shortcutLike = function () { ImprovedTube.shortcutDislike = function () { var like = (document.querySelectorAll('#menu #top-level-buttons-computed ytd-toggle-button-renderer button')[1]); - if (like) { like.click(); } }; +/*------Report------*/ + +ImprovedTube.shortcutReport = function () { +try{document.querySelector('svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click();} +catch(e){console.log(e); +setTimeout(function(){try{document.querySelector('svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click();} +catch{}},800)}; +setTimeout(function(){try{document.querySelector('tp-yt-iron-dropdown').style.setProperty('opacity', '0.1', 'important');document.querySelector('tp-yt-iron-dropdown svg path[d^="M13.18,4l0.24,1.2L13.58,6h0.82H19v7h-5.18l-0"]').closest("tp-yt-paper-item").click();} + catch{setTimeout(function() + {try{document.querySelector('tp-yt-iron-dropdown').style.setProperty('opacity', '0.1', 'important');document.querySelector('tp-yt-iron-dropdown svg path[d^="M13.18,4l0.24,1.2L13.58,6h0.82H19v7h-5.18l-0"]').closest("tp-yt-paper-item").click();} + catch{document.querySelector('svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click();} +},500); +} +},7); +} + /*------------------------------------------------------------------------------ 4.7.24 SUBSCRIBE @@ -702,4 +729,5 @@ ImprovedTube.shortcutPopupPlayer = function () { window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(player.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + player.offsetWidth + ',height=' + player.offsetHeight); } -}; \ No newline at end of file +}; + diff --git a/menu/skeleton-parts/appearance.js b/menu/skeleton-parts/appearance.js index 8efc466f2..be56e4bd0 100644 --- a/menu/skeleton-parts/appearance.js +++ b/menu/skeleton-parts/appearance.js @@ -792,6 +792,10 @@ extension.skeleton.main.layers.section.appearance.on.click.sidebar = { click: { component: "section", variant: "card", + chapters: { + component: 'switch', + text: 'Chapters', + }, transcript: { component: 'switch', text: 'Transcript', diff --git a/menu/skeleton-parts/shortcuts.js b/menu/skeleton-parts/shortcuts.js index 1318987e1..64a01b8a4 100644 --- a/menu/skeleton-parts/shortcuts.js +++ b/menu/skeleton-parts/shortcuts.js @@ -324,14 +324,26 @@ extension.skeleton.main.layers.section.shortcuts = { } } }, - shortcut_like_shortcut: { + shortcut_chapters: { + component: 'shortcut', + text: 'Chapters' + }, + shortcut_transcript: { + component: 'shortcut', + text: 'Transcript' + }, + shortcut_like: { component: 'shortcut', text: 'like' }, - shortcut_dislike_shortcut: { + shortcut_dislike: { component: 'shortcut', text: 'dislike' }, + shortcut_report: { + component: 'shortcut', + text: 'report' + }, shortcut_subscribe: { component: 'shortcut', text: 'subscribe' From 618751c75998408d310f9980163f258f95af76b2 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 25 Mar 2023 13:32:09 +0100 Subject: [PATCH 0883/1224] boring update --- background.js | 11 +++++-- .../appearance/details/details.css | 13 ++++++-- js&css/satus.js | 5 +-- js&css/web-accessible/functions.js | 6 ++-- .../www.youtube.com/shortcuts.js | 32 ++++++++++--------- menu/skeleton-parts/appearance.js | 5 +++ 6 files changed, 47 insertions(+), 25 deletions(-) diff --git a/background.js b/background.js index c6751b417..0eac6f564 100644 --- a/background.js +++ b/background.js @@ -21,6 +21,7 @@ chrome.runtime.onInstalled.addListener(function (installed){ if(installed.reason == 'update'){ // var thisVersion = chrome.runtime.getManifest().version; // console.log("Updated from " + installed.previousVersion + " to " + thisVersion + "!"); + chrome.storage.local.get('limit_page_width', function (result) { if (result.limit_page_width === false){ chrome.storage.local.set({no_page_margin: true}); @@ -30,10 +31,14 @@ chrome.runtime.onInstalled.addListener(function (installed){ chrome.storage.local.set({player_size: 'max_width'}); }}); } - }); -// } else if(installed.reason == 'install'){ console.log('Thanks for installing!'); + }); + if(navigator.userAgent.indexOf("Firefox") != -1){chrome.storage.local.set({below_player_pip: false})}; } - } +else if(installed.reason == 'install'){if(navigator.userAgent.indexOf("Firefox") != -1){chrome.storage.local.set({below_player_pip: false})};}; +// else if(installed.reason == 'install'){ console.log('Thanks for installing!'); +} + + ); diff --git a/js&css/extension/www.youtube.com/appearance/details/details.css b/js&css/extension/www.youtube.com/appearance/details/details.css index 7160c9f03..7344db0b4 100644 --- a/js&css/extension/www.youtube.com/appearance/details/details.css +++ b/js&css/extension/www.youtube.com/appearance/details/details.css @@ -206,14 +206,23 @@ html[it-description='classic_expanded'] #below.ytd-watch-flexy { top:-20px; } html[it-description='classic_expanded'] ytd-menu-renderer[has-flexible-items] { overflow-y: unset !important; } html[it-description='classic_expanded'] ytd-video-primary-info-renderer { padding-bottom: 14px !important; } +html[it-description='classic_hidden'] .ytd-watch-flexy #info-contents { display: block !important; } +html[it-description='classic_hidden'] #below.ytd-watch-flexy { top:-20px; } +html[it-description='classic_hidden'] ytd-menu-renderer[has-flexible-items] { overflow-y: unset !important; } +html[it-description='classic_hidden'] ytd-video-primary-info-renderer { padding-bottom: 14px !important; } + html[it-description='hidden'] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, html[it-description='hidden'] div#action-panel-details, html[it-description='hidden'] ytd-expander.ytd-video-secondary-info-renderer, html[it-description='hidden'] #description-inline-expander { display: none !important; } -html[it-description='classic'] div.style-scope.ytd-watch-flexy + ytd-watch-metadata { display: none !important;} -html[it-description='classic_expanded'] div.style-scope.ytd-watch-flexy + ytd-watch-metadata { display: none !important;} +html[it-description='classic'] div.style-scope.ytd-watch-flexy + ytd-watch-metadata, +html[it-description='classic_expanded'] div.style-scope.ytd-watch-flexy + ytd-watch-metadata, +html[it-description='classic_hidden'] div.style-scope.ytd-watch-flexy + ytd-watch-metadata +{display: none !important;} + + /*-------------------------------------------------------------- # HOW LONG AGO THE VIDEO WAS UPLOADED diff --git a/js&css/satus.js b/js&css/satus.js index b05520c4b..451ea0c58 100644 --- a/js&css/satus.js +++ b/js&css/satus.js @@ -2873,8 +2873,9 @@ satus.user.os.bitness = function() { satus.user.browser.name = function() { var user_agent = navigator.userAgent; - - if (user_agent.indexOf('Opera') !== -1) { + if (!!navigator.brave) { + return 'Brave'; + } else if (user_agent.indexOf("Opera") != -1 || user_agent.indexOf('OPR') != -1) { return 'Opera'; } else if (user_agent.indexOf('Vivaldi') !== -1) { return 'Vivaldi'; diff --git a/js&css/web-accessible/functions.js b/js&css/web-accessible/functions.js index 90dd0b0bf..9cba8f2c3 100644 --- a/js&css/web-accessible/functions.js +++ b/js&css/web-accessible/functions.js @@ -210,11 +210,11 @@ ImprovedTube.ytElementsHandler = function (node) { setTimeout(function () { ImprovedTube.description(node); }, 300); - }else if (id === 'meta') {setTimeout(function () { ImprovedTube.description(node.querySelector('#more')); }, 300); + }else if (id === 'meta') {setTimeout(function () { ImprovedTube.description(node.querySelector('#more')); }, 200); }else if (id === 'below' ){setTimeout(function () { }, 0); }else if (id === 'panels'){setTimeout(function () { ImprovedTube.transcript(node); - ImprovedTube.chapters(node); }, 300); + ImprovedTube.chapters(node); }, 200); } } @@ -227,7 +227,7 @@ ImprovedTube.pageType = function () { document.documentElement.dataset.pageType = 'home'; } else if (/\/subscriptions\?/.test(location.href)) { document.documentElement.dataset.pageType = 'subscriptions'; - } else if (/\/@|((channel|user|c)\/)[^/]+(?!\/videos)/.test(location.href)) { + } else if (/\/@|(\/(channel|user|c)\/)[^/]+(?!\/videos)/.test(location.href)) { document.documentElement.dataset.pageType = 'channel'; } else { document.documentElement.dataset.pageType = 'other'; diff --git a/js&css/web-accessible/www.youtube.com/shortcuts.js b/js&css/web-accessible/www.youtube.com/shortcuts.js index f61781e85..99b531c50 100644 --- a/js&css/web-accessible/www.youtube.com/shortcuts.js +++ b/js&css/web-accessible/www.youtube.com/shortcuts.js @@ -651,29 +651,31 @@ ImprovedTube.shortcutSubscribe = function () { ------------------------------------------------------------------------------*/ ImprovedTube.shortcutDarkTheme = function () { - pref = ''; - cookieValue = '400'; - if (document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)) { - pref = document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)[1]; - } - - + if (document.documentElement.hasAttribute('dark')) { cookieValue = '80000'; document.documentElement.removeAttribute('dark'); document.querySelector('ytd-masthead').removeAttribute('dark'); - document.documentElement.removeAttribute('it-themes'); document.getElementById("cinematics").style.visibility = 'hidden'; + document.querySelector('ytd-masthead').style.backgroundColor ='#fff'; + ImprovedTube.setTheme(); ImprovedTube.myColors(); } else { - document.documentElement.setAttribute('dark', ''); - document.querySelector('ytd-masthead').setAttribute('dark', ''); - document.documentElement.setAttribute('it-themes', 'true'); - document.getElementById("cinematics").style.visibility = 'visibile'; - document.getElementById("cinematics").style.mixBlendMode = 'lighten'; - } - + document.documentElement.setAttribute('dark', ''); + if (this.storage.theme === 'custom' ){ this.elements.my_colors.remove(); } + if (this.storage.theme === 'dawn' ){ this.elements.dawn.remove(); } + if (document.documentElement.hasAttribute('it-themes') !== null && document.documentElement.hasAttribute('it-themes') === true){ + document.documentElement.removeAttribute('it-themes'); + document.documentElement.setAttribute('it-themes', 'false'); + } + document.querySelector('ytd-masthead').style.cssText = 'background-color: #000;'; + document.getElementById("cinematics").style.visibility = 'visible'; + +} pref = ''; + if (document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)) { + pref = document.cookie.match(/PREF\=([^\s]*(?=\;)|[^\s]*$)/)[1];} + cookieValue = '400'; if (pref.match(/(f6=)[^\&]+/)){ cookieValue = pref.replace(/(f6=)[^\&]+/, cookieValue); } else { diff --git a/menu/skeleton-parts/appearance.js b/menu/skeleton-parts/appearance.js index be56e4bd0..85078d54e 100644 --- a/menu/skeleton-parts/appearance.js +++ b/menu/skeleton-parts/appearance.js @@ -469,6 +469,11 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { { text: "Classic expanded", value: "classic_expanded", + + }, + { + text: "Classic hidden", + value: "classic_hidden", }, { text: "hidden", From 6ac3a18944240c504eddbceb029e6346ee3508be Mon Sep 17 00:00:00 2001 From: Mohamed Lebda Date: Sat, 25 Mar 2023 19:31:40 +0200 Subject: [PATCH 0884/1224] toggle-PIP --- js&css/web-accessible/www.youtube.com/shortcuts.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/js&css/web-accessible/www.youtube.com/shortcuts.js b/js&css/web-accessible/www.youtube.com/shortcuts.js index 99b531c50..86423c63a 100644 --- a/js&css/web-accessible/www.youtube.com/shortcuts.js +++ b/js&css/web-accessible/www.youtube.com/shortcuts.js @@ -235,7 +235,11 @@ ImprovedTube.shortcutQuality = function (key) { ImprovedTube.shortcutPictureInPicture = function () { if (this.elements.video) { - this.elements.video.requestPictureInPicture(); + if (document.pictureInPictureElement) { + document.exitPictureInPicture(); + } else if (document.pictureInPictureEnabled) { + this.elements.video.requestPictureInPicture(); + } } }; From 507246bb364c1e32369cf46b50c09e3e3a7635d7 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 25 Mar 2023 19:11:31 +0100 Subject: [PATCH 0885/1224] Update background.js Switching off PiP in firefox: Done --- background.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/background.js b/background.js index 0eac6f564..e8f960538 100644 --- a/background.js +++ b/background.js @@ -32,7 +32,7 @@ chrome.runtime.onInstalled.addListener(function (installed){ }}); } }); - if(navigator.userAgent.indexOf("Firefox") != -1){chrome.storage.local.set({below_player_pip: false})}; + //if(navigator.userAgent.indexOf("Firefox") != -1){chrome.storage.local.set({below_player_pip: false})}; } else if(installed.reason == 'install'){if(navigator.userAgent.indexOf("Firefox") != -1){chrome.storage.local.set({below_player_pip: false})};}; // else if(installed.reason == 'install'){ console.log('Thanks for installing!'); From d2ab4348fcd23520746cade7471c4b3d572d4e39 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 25 Mar 2023 23:20:56 +0100 Subject: [PATCH 0886/1224] fix #1585 --- js&css/web-accessible/www.youtube.com/player.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index 34ebdb764..fcd2907bb 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -9,7 +9,6 @@ ImprovedTube.autoplay = function () { var video = ImprovedTube.elements.player; if (ImprovedTube.video_url !== location.href) { ImprovedTube.allow_autoplay = false; - ImprovedTube.video_url = location.href } // if (allow autoplay is false) and (no ads playing) and // ( there is a video and ( (it is not in a playlist and auto play is off ) or ( playlist auto play is off and it is not in a playlist ) ) ) or (if we are in a channel and the channel trailer autoplay is off) ) @@ -388,14 +387,14 @@ ImprovedTube.playerAds = function (parent) { try{var button = parent.querySelector('.ytp-ad-skip-button.ytp-button');}catch{} if (button) { if (this.storage.player_ads === 'block_all') { - button.click(); document.querySelector("*[target-id*='engagement-panel-ads']").remove(); document.querySelector(".ytd-ad-slot-renderer").remove(); + button.click(); } else if (this.storage.player_ads === 'subscribed_channels') { if (!parent.querySelector('#meta paper-button[subscribed]')) { - button.click(); document.querySelector("*[target-id*='engagement-panel-ads']").remove(); document.querySelector(".ytd-ad-slot-renderer").remove(); + button.click(); } } else if (this.storage.player_ads === 'block_music') { if (ImprovedTube.elements.category === 'music') { - button.click(); document.querySelector("*[target-id*='engagement-panel-ads']").remove(); document.querySelector(".ytd-ad-slot-renderer").remove(); + button.click(); } } } From 7e3bfa6a5e0f780f9b5ff3116cd211e611f016fe Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 26 Mar 2023 00:14:31 +0100 Subject: [PATCH 0887/1224] tidy --- .../appearance/details/details.css | 20 ++-- .../appearance/header/header.css | 16 ++- .../appearance/sidebar/sidebar.css | 11 +- js&css/satus.js | 14 +-- js&css/web-accessible/core.js | 4 +- .../www.youtube.com/appearance.js | 6 +- .../www.youtube.com/settings.js | 2 +- .../www.youtube.com/shortcuts.js | 6 +- manifest.json | 4 +- manifest3.json | 3 +- menu/index.html | 2 +- menu/skeleton-parts/appearance.js | 7 +- menu/skeleton-parts/general.js | 86 +++++++++++++- menu/skeleton-parts/settings.js | 107 +++++++----------- menu/skeleton-parts/shortcuts.js | 4 +- menu/skeleton-parts/themes.js | 62 ---------- menu/styles/header.css | 4 +- 17 files changed, 182 insertions(+), 176 deletions(-) diff --git a/js&css/extension/www.youtube.com/appearance/details/details.css b/js&css/extension/www.youtube.com/appearance/details/details.css index 7344db0b4..c23892a68 100644 --- a/js&css/extension/www.youtube.com/appearance/details/details.css +++ b/js&css/extension/www.youtube.com/appearance/details/details.css @@ -52,13 +52,19 @@ html[it-hide-date='true'] ytd-watch-metadata #info>span:last-child { YouTube's detail buttons --------------------------------------------------------------*/ -html[it-youtubesDetailButtons='remove_labels'] #menu ytd-button-renderer div:nth-child(2), -html[it-youtubesDetailButtons='remove_labels'] #menu ytd-button-renderer .cbox, -html[it-youtubesDetailButtons='remove'] #menu button, -html[it-youtubesDetailButtons='remove_icons'] #menu button div:first-child {display:none;} -html[it-youtubesDetailButtons='hide_labels'] #menu ytd-button-renderer div:nth-child(2) {visibility:hidden} -html[it-youtubesDetailButtons='half_transparent'] #menu button {opacity:0.5;} -html[it-youtubesDetailButtons='transparent_background'] #menu button {background-color:rgba(0, 0, 0, 0) !important;} +html[it-youtubeDetailButtons='remove_labels'] #menu ytd-button-renderer div:nth-child(2), +html[it-youtubeDetailButtons='remove_labels'] #menu ytd-button-renderer .cbox, +html[it-youtubeDetailButtons='remove'] #menu button, +html[it-youtubeDetailButtons='remove_icons'] #menu button div:first-child {display:none;} +html[it-youtubeDetailButtons='hide_labels'] #menu ytd-button-renderer div:nth-child(2) {visibility:hidden} +html[it-youtubeDetailButtons='half_transparent'] #menu button {opacity:0.5;} +html[it-youtubeDetailButtons='transparent_background'] #menu button {background-color:rgba(0, 0, 0, 0) !important;} + + + /*-------------------------------------------------------------- +HIDE SUBSCRIBE +--------------------------------------------------------------*/ +html[it-hideSubscribe='true'] #subscribe-button {display: none !important;} /*-------------------------------------------------------------- HIDE LIKE BUTTON diff --git a/js&css/extension/www.youtube.com/appearance/header/header.css b/js&css/extension/www.youtube.com/appearance/header/header.css index d42008896..b794a6ea3 100644 --- a/js&css/extension/www.youtube.com/appearance/header/header.css +++ b/js&css/extension/www.youtube.com/appearance/header/header.css @@ -57,23 +57,29 @@ html[it-header-position=static] ytd-page-manager#page-manager { html[it-header-position=hover]:not([it-improvedtube-search=true]) #masthead-container, html[it-header-position=hover_on_video_page][data-page-type='video']:not([it-improvedtube-search=true]) #masthead-container { + transition: all 320ms ease-in-out; transform: translateY(-38%); height: 68px; - opacity: 0 + opacity: 0; } html[it-header-position=hover] #masthead-container:hover, html[it-header-position=hover][it-search-focus=true] #masthead-container, html[it-header-position=hover_on_video_page][data-page-type='video'] #masthead-container:hover, -html[it-header-position=hover_on_video_page][data-page-type='video'][it-search-focus=true] #masthead-container { - transform: translateY(0%); - opacity: 1; +html[it-header-position=hover_on_video_page][data-page-type='video'][it-search-focus=true] #masthead-container, +html[it-header-position=hover] #masthead-container:hover #background, +html[it-header-position=hover][it-search-focus=true] #masthead-container #background, +html[it-header-position=hover_on_video_page][data-page-type='video'] #masthead-container:hover #background, +html[it-header-position=hover_on_video_page][data-page-type='video'][it-search-focus=true] #masthead-container #background { + transform: translateY(0%); + opacity: 1 !important; } + html[it-header-position=static] .ytd-app:not([masthead-hidden_]) #masthead-container { position: relative; - z-index: 999999999999 !important; + z-index: 7000 !important; } html[it-header-position=hover_on_video_page]:not([data-page-type=video]) tp-yt-app-drawer:not([opened]) #header, diff --git a/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css b/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css index cd221719e..1bea54ba7 100644 --- a/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css +++ b/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css @@ -34,18 +34,17 @@ html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'] ytd { max-height: 77vh !important; } html[data-page-type=video][it-transcript='true'][it-sidebar-left='transcript'] ytd-watch-flexy:not([fullscreen]) #columns { display:flex !important; max-width:95% !important; } + html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'], +html[data-page-type=video][it-transcript='true'] *[target-id*='transcript']:not([it-sidebar-left='true']) ytd-engagement-panel-section-list-renderer #content { +min-width: max(450px,15vw) !important; max-width: min(24vw,750px) !important; } +html[data-page-type=video][it-transcript='true']:not([it-player-size='1080p']):not([it-player-size='1440p']):not([it-player-size='2160p']):not([it-player-size='custom']):not([it-player-size='max_width']) ytd-watch-flexy:not([fullscreen]) #player{ +max-width: 1280px !important; right: -18px; align:right; content-align: right !important} @media screen and (min-width: 1599px) { -html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'], -html[data-page-type=video][it-transcript='true'] *[target-id*='transcript']:not([it-sidebar-left='true']) ytd-engagement-panel-section-list-renderer #content { -display:flex !important; max-width: 80%; min-width: clamp(390px, calc(31vw - 90px), 950px ); } html[data-page-type=video][it-transcript='true'] ytd-watch-flexy:not([fullscreen]) #secondary { display:flex !important; max-width: 95% !important; } html[data-page-type=video][it-transcript='true'] ytd-browse > ytd-two-column-browse-results-renderer { object-fit: contain !important; max-width: 95% !important; margin: -5px; } -html[data-page-type=video][it-transcript='true']:not([it-player-size='1080p']):not([it-player-size='1440p']):not([it-player-size='2160p']):not([it-player-size='custom']):not([it-player-size='max_width']) ytd-watch-flexy:not([fullscreen]) #player{ -max-width: 1280px !important; right: -20px; align:right; content-align: right !important} - html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) #secondary { direction: rtl; float: right;max-width: 600px !important; display:flex !important; object-fit: contain !important;} html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) td-engagement-panel-section-list-renderer diff --git a/js&css/satus.js b/js&css/satus.js index 451ea0c58..cd3954a78 100644 --- a/js&css/satus.js +++ b/js&css/satus.js @@ -1434,16 +1434,10 @@ satus.components.textField = function(component, skeleton) { } else { component.selection.removeAttribute('disabled'); - component.hiddenValue.textContent = value.substring(0, start); -console.log(value.substring(0, start)); - - component.selection.style.left = component.hiddenValue.offsetWidth - input.scrollLeft + 'px'; -console.log(component.hiddenValue.offsetWidth); -console.log( input.scrollLeft ) - component.hiddenValue.textContent = value.substring(start, end); -console.log(component.hiddenValue.textContent); - component.selection.style.width = component.hiddenValue.offsetWidth + 'px'; -console.log(component.hiddenValue.offsetWidth); + component.hiddenValue.textContent = value.substring(0, start); //console.log(value.substring(0, start)); + component.selection.style.left = component.hiddenValue.offsetWidth - input.scrollLeft + 'px'; //console.log(component.hiddenValue.offsetWidth); console.log( input.scrollLeft ) + component.hiddenValue.textContent = value.substring(start, end); //console.log(component.hiddenValue.textContent); + component.selection.style.width = component.hiddenValue.offsetWidth + 'px'; //console.log(component.hiddenValue.offsetWidth); } this.style.animation = ''; diff --git a/js&css/web-accessible/core.js b/js&css/web-accessible/core.js index b37c3ea61..0c52ff362 100644 --- a/js&css/web-accessible/core.js +++ b/js&css/web-accessible/core.js @@ -138,9 +138,9 @@ document.addEventListener('it-message-from-extension', function () { ImprovedTube.setTheme(); } else if (camelized_key === 'description') { if (ImprovedTube.storage.description === "expanded" || ImprovedTube.storage.description === "classic_expanded" ) - {document.querySelector("#more").click() || document.querySelector("#expand").click() ;} + {try{document.querySelector("#more").click() || document.querySelector("#expand").click() ;} catch{} } if (ImprovedTube.storage.description === "normal" || ImprovedTube.storage.description === "classic" ) - {document.querySelector("#less").click() || document.querySelector("#collapse").click() ;} + {try{document.querySelector("#less").click() || document.querySelector("#collapse").click();} catch{}} } else if (camelized_key === 'transcript') { if (ImprovedTube.storage.transcript === true) {try{document.querySelector('*[target-id*=transcript]').removeAttribute('visibility');}catch{} diff --git a/js&css/web-accessible/www.youtube.com/appearance.js b/js&css/web-accessible/www.youtube.com/appearance.js index 519446870..edda34eb2 100644 --- a/js&css/web-accessible/www.youtube.com/appearance.js +++ b/js&css/web-accessible/www.youtube.com/appearance.js @@ -17,7 +17,7 @@ ImprovedTube.playerSize = function () { height = Number(this.storage.custom_player_size_height) || 720, style = this.elements.player_size_style || document.createElement("style"); - style.textContent = '[data-page-type="video"][it-player-size="custom"] {'; + style.textContent = ':root {'; style.textContent += "--it-player-width:" + width + "px;"; style.textContent += "--it-player-height:" + height + "px;"; style.textContent += "}"; @@ -318,8 +318,8 @@ ImprovedTube.channelVideosCount = function () { ------------------------------------------------------------------------------*/ ImprovedTube.description = function (el) { - if (this.storage.description === "classic_expanded" || this.storage.description === "expanded" ) - if(el)try{el.click()}catch{setTimeout(function(){el.click();},700);} + if (this.storage.description === "expanded" || this.storage.description === "classic_expanded" ) + if(el)try{el.click()}catch{setTimeout(function(){el.click();},1000);} }; /*------------------------------------------------------------------------------ diff --git a/js&css/web-accessible/www.youtube.com/settings.js b/js&css/web-accessible/www.youtube.com/settings.js index 98357e357..b764eb594 100644 --- a/js&css/web-accessible/www.youtube.com/settings.js +++ b/js&css/web-accessible/www.youtube.com/settings.js @@ -161,7 +161,7 @@ ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { if (document.documentElement.dataset.pageType === 'video') { var section = document.querySelector('#flex.ytd-video-primary-info-renderer'); - if (this.storage.description === "normal" || this.storage.description === "expanded") + if (this.storage.description !== "classic" && this.storage.description !== "classic_expanded" && this.storage.description !== "classic_hidden" ) {var section = document.querySelector('#subscribe-button');} if (section && !document.querySelector('.improvedtube-player-button')) { diff --git a/js&css/web-accessible/www.youtube.com/shortcuts.js b/js&css/web-accessible/www.youtube.com/shortcuts.js index 86423c63a..99b531c50 100644 --- a/js&css/web-accessible/www.youtube.com/shortcuts.js +++ b/js&css/web-accessible/www.youtube.com/shortcuts.js @@ -235,11 +235,7 @@ ImprovedTube.shortcutQuality = function (key) { ImprovedTube.shortcutPictureInPicture = function () { if (this.elements.video) { - if (document.pictureInPictureElement) { - document.exitPictureInPicture(); - } else if (document.pictureInPictureEnabled) { - this.elements.video.requestPictureInPicture(); - } + this.elements.video.requestPictureInPicture(); } }; diff --git a/manifest.json b/manifest.json index ee444f12b..dd6928435 100644 --- a/manifest.json +++ b/manifest.json @@ -1,9 +1,9 @@ { "manifest_version": 2, + "short_name" : "ImprovedTube", "name": "'Improve YouTube!'🎧(for YouTube & Videos)", - "short_name": "ImprovedTube", "description": "__MSG_description_ext__", - "version": "4.5", + "version": "4.6", "default_locale": "en", "icons": { "16": "stuff/icons/16.png", diff --git a/manifest3.json b/manifest3.json index ab456cf49..e741f6a17 100644 --- a/manifest3.json +++ b/manifest3.json @@ -1,8 +1,9 @@ { "manifest_version": 3, + "short_name" : "ImprovedTube", "name": "'Improve YouTube!'🎧(for YouTube & Videos)", "description": "__MSG_description_ext__", - "version": "4.1", + "version": "4.6", "default_locale": "en", "icons": { "128": "stuff/icons/128.png", diff --git a/menu/index.html b/menu/index.html index cee91e542..2ae4bb889 100644 --- a/menu/index.html +++ b/menu/index.html @@ -31,8 +31,8 @@ - + diff --git a/menu/skeleton-parts/appearance.js b/menu/skeleton-parts/appearance.js index 85078d54e..e233fd6e2 100644 --- a/menu/skeleton-parts/appearance.js +++ b/menu/skeleton-parts/appearance.js @@ -481,6 +481,11 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { }, ], tags: "hide,remove", + }, + hideSubscribe: { + component: "switch", + text: "Hide Subscribe", + tags: "hide,remove,subscribe-button", }, hide_details_button: { component: "button", @@ -489,7 +494,7 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { click: { component: "section", variant: "card", - youtubesdetailbuttons: { + youtubeDetailButtons: { component: "select", text: "YouTube's detail buttons", options: [ diff --git a/menu/skeleton-parts/general.js b/menu/skeleton-parts/general.js index 4a3c385ad..846063b32 100644 --- a/menu/skeleton-parts/general.js +++ b/menu/skeleton-parts/general.js @@ -11,7 +11,30 @@ extension.skeleton.main.layers.section.general = { section_1: { component: 'section', variant: 'card', -default_content_country: { + improvedtube_youtube_icon: { + text: 'improvedtubeIconOnYoutube', + component: 'select', + options: [{ + text: 'disabled', + value: 'disabled' + }, { + text: 'draggable', + value: 'draggable' + }, { + text: 'youtubeHeaderLeft', + value: 'header_left' + }, { + text: 'youtubeHeaderRight', + value: 'header_right' + }, { + text: 'sidebar', + value: 'sidebar' + }, { + text: 'belowPlayer', + value: 'below_player' + }] + }, + default_content_country: { component: 'select', text: 'defaultContentCountry', options: [{ @@ -1183,6 +1206,67 @@ default_content_country: { component: 'section', variant: 'card', title: 'more', + font: { + component: 'select', + text: 'font', + options: [{ + text: 'default', + value: 'Default' + }, { + text: 'Comfortaa', + value: 'Comfortaa' + }, { + text: 'Lato', + value: 'Lato' + }, { + text: 'Marriweather', + value: 'Marriweather' + }, { + text: 'Montserrat', + value: 'Montserrat' + }, { + text: 'Noto Sans', + value: 'Noto+Sans' + }, { + text: 'Open Sans', + value: 'Open+Sans' + }, { + text: 'Oswald', + value: 'Oswald' + }, { + text: 'Poppins', + value: 'Poppins' + }, { + text: 'PT Sans', + value: 'PT+Sans' + }, { + text: 'Raleway', + value: 'Raleway' + }, { + text: 'Roboto Condensed', + value: 'Roboto+Condensed' + }, { + text: 'Roboto Mono', + value: 'Roboto+Mono' + }, { + text: 'Roboto Slab', + value: 'Roboto+Slab' + }, { + text: 'Source Sans Pro', + value: 'Source+Sans+Pro' + }] + }, + scroll_bar: { + component: 'select', + text: 'scrollBar', + options: [{ + text: 'default', + value: 'default' + }, { + text: 'hidden', + value: 'hidden' + }] + }, add_scroll_to_top: { component: 'switch', text: 'addScrollToTop', diff --git a/menu/skeleton-parts/settings.js b/menu/skeleton-parts/settings.js index 143008605..bf01d56ef 100644 --- a/menu/skeleton-parts/settings.js +++ b/menu/skeleton-parts/settings.js @@ -92,7 +92,8 @@ extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.firstSectio title_version: { component: 'switch', - text: 'showVersion' + text: 'showVersion', + value: true } }, home: { @@ -165,29 +166,6 @@ extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.firstSectio } } }, - improvedtube_youtube_icon: { - text: 'improvedtubeIconOnYoutube', - component: 'select', - options: [{ - text: 'disabled', - value: 'disabled' - }, { - text: 'youtubeHeaderLeft', - value: 'header_left' - }, { - text: 'youtubeHeaderRight', - value: 'header_right' - }, { - text: 'sidebar', - value: 'sidebar' - }, { - text: 'draggable', - value: 'draggable' - }, { - text: 'belowPlayer', - value: 'below_player' - }] - } }, animations: { component: 'section', @@ -518,44 +496,6 @@ extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSecti }; -/*-------------------------------------------------------------- -# DATE & TIME ---------------------------------------------------------------*/ - -extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSection.dateAndTime = { - component: 'button', - text: 'dateAndTime', - before: { - svg: { - component: 'svg', - attr: { - 'viewBox': '0 0 24 24', - 'fill': 'currentColor' - }, - - path: { - component: 'path', - attr: { - 'd': 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm-.2-13c-.5 0-.8.3-.8.7v4.7c0 .4.2.7.5.9l4.1 2.5c.4.2.8 0 1-.3.2-.3.1-.7-.2-1l-3.9-2.2V7.7c0-.4-.3-.7-.7-.7z' - } - } - } - }, - on: { - click: { - component: 'section', - variant: 'card', - - use_24_hour_format: { - component: 'switch', - text: 'use24HourFormat', - value: true - } - } - } -}; - - /*-------------------------------------------------------------- # BACKUP & RESET --------------------------------------------------------------*/ @@ -776,7 +716,7 @@ extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSecti extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSection.about = { component: 'button', - text: 'about', + text: 'Specs', before: { svg: { component: 'svg', @@ -802,7 +742,7 @@ extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSecti list: { component: 'list', items: [ - ['name', satus.user.browser.manifest().name], + ['name', satus.user.browser.manifest().short_name], ['version', satus.user.browser.manifest().version_name || satus.user.browser.manifest().version], ['permissions', satus.user.browser.manifest().permissions.join(', ').replace('https://www.youtube.com/', 'YouTube')] ] @@ -875,4 +815,41 @@ extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSecti } } } -}; \ No newline at end of file +}; + +/*-------------------------------------------------------------- +# DATE & TIME +--------------------------------------------------------------*/ + +extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSection.dateAndTime = { + component: 'button', + text: 'dateAndTime', + before: { + svg: { + component: 'svg', + attr: { + 'viewBox': '0 0 24 24', + 'fill': 'currentColor' + }, + + path: { + component: 'path', + attr: { + 'd': 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm-.2-13c-.5 0-.8.3-.8.7v4.7c0 .4.2.7.5.9l4.1 2.5c.4.2.8 0 1-.3.2-.3.1-.7-.2-1l-3.9-2.2V7.7c0-.4-.3-.7-.7-.7z' + } + } + } + }, + on: { + click: { + component: 'section', + variant: 'card', + + use_24_hour_format: { + component: 'switch', + text: 'use24HourFormat', + value: true + } + } + } +}; diff --git a/menu/skeleton-parts/shortcuts.js b/menu/skeleton-parts/shortcuts.js index 64a01b8a4..a98261b92 100644 --- a/menu/skeleton-parts/shortcuts.js +++ b/menu/skeleton-parts/shortcuts.js @@ -326,11 +326,11 @@ extension.skeleton.main.layers.section.shortcuts = { }, shortcut_chapters: { component: 'shortcut', - text: 'Chapters' + text: 'chapters' }, shortcut_transcript: { component: 'shortcut', - text: 'Transcript' + text: 'transcript' }, shortcut_like: { component: 'shortcut', diff --git a/menu/skeleton-parts/themes.js b/menu/skeleton-parts/themes.js index e978f722f..b8a819e38 100644 --- a/menu/skeleton-parts/themes.js +++ b/menu/skeleton-parts/themes.js @@ -74,68 +74,6 @@ extension.skeleton.main.layers.section.themes.on.click.section = { text: 'primaryColor', value: [200, 200, 200] }, - - scroll_bar: { - component: 'select', - text: 'scrollBar', - options: [{ - text: 'default', - value: 'default' - }, { - text: 'hidden', - value: 'hidden' - }] - }, - font: { - component: 'select', - text: 'font', - options: [{ - text: 'default', - value: 'Default' - }, { - text: 'Comfortaa', - value: 'Comfortaa' - }, { - text: 'Lato', - value: 'Lato' - }, { - text: 'Marriweather', - value: 'Marriweather' - }, { - text: 'Montserrat', - value: 'Montserrat' - }, { - text: 'Noto Sans', - value: 'Noto+Sans' - }, { - text: 'Open Sans', - value: 'Open+Sans' - }, { - text: 'Oswald', - value: 'Oswald' - }, { - text: 'Poppins', - value: 'Poppins' - }, { - text: 'PT Sans', - value: 'PT+Sans' - }, { - text: 'Raleway', - value: 'Raleway' - }, { - text: 'Roboto Condensed', - value: 'Roboto+Condensed' - }, { - text: 'Roboto Mono', - value: 'Roboto+Mono' - }, { - text: 'Roboto Slab', - value: 'Roboto+Slab' - }, { - text: 'Source Sans Pro', - value: 'Source+Sans+Pro' - }] - }, theme_text_color: { component: 'color-picker', text: 'textColor', diff --git a/menu/styles/header.css b/menu/styles/header.css index cd6c4a9af..c4385ee1c 100644 --- a/menu/styles/header.css +++ b/menu/styles/header.css @@ -6,7 +6,7 @@ max-width: calc(100% - 96px); } -.satus-base[title-version='true'] .satus-span--title::after { +.satus-base .satus-span--title::after { font: 700 10px sans-serif; margin: 0 0 0 4px; @@ -14,7 +14,7 @@ content: attr(data-version); opacity: .6; -} +} .satus-base[title-version='false'] .satus-span--title::after { display:none;} .satus-modal--vertical-menu .satus-button svg { stroke: var(--satus-primary); From b1dd99ad843d0bf2eabb18cc2c62f17889d1ff83 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 27 Mar 2023 03:45:13 +0200 Subject: [PATCH 0888/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index 69ab7c424..1e5754cee 100644 --- a/.github/README.md +++ b/.github/README.md @@ -67,7 +67,7 @@ by
Big thanks ♡ to our contributors, dodieboy,
-translators/wiki-authors & donators :bowtie:
+translators/wiki-authors & donators :bowtie:
From 5830b32d8b5e8a00132a1afd2629fae0562d1e85 Mon Sep 17 00:00:00 2001 From: Mohamed Lebda Date: Mon, 27 Mar 2023 20:29:35 +0200 Subject: [PATCH 0889/1224] new-pip --- js&css/web-accessible/functions.js | 1 + .../web-accessible/www.youtube.com/player.js | 18 ++++++++++++++++++ .../www.youtube.com/shortcuts.js | 1 - menu/skeleton-parts/player.js | 5 +++++ menu/skeleton-parts/shortcuts.js | 5 +++++ 5 files changed, 29 insertions(+), 1 deletion(-) diff --git a/js&css/web-accessible/functions.js b/js&css/web-accessible/functions.js index 9cba8f2c3..06ee72d23 100644 --- a/js&css/web-accessible/functions.js +++ b/js&css/web-accessible/functions.js @@ -236,6 +236,7 @@ ImprovedTube.pageType = function () { ImprovedTube.pageOnFocus = function () { ImprovedTube.playerAutopauseWhenSwitchingTabs(); + ImprovedTube.playerAutoPip(); }; ImprovedTube.videoPageUpdate = function () { diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index 34ebdb764..0173ee96b 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -56,6 +56,24 @@ ImprovedTube.playerAutopauseWhenSwitchingTabs = function () { }; +/*------------------------------------------------------------------------------ +4.4.2 AUTO PIP WHEN SWITCHING TABS +------------------------------------------------------------------------------*/ + +ImprovedTube.playerAutoPip = function () { + const video = ImprovedTube.elements.video; + + if (this.storage.player_autoPip === true && video) { + (async () => { + try { + await video.requestPictureInPicture(); + } catch (error) { + console.error('Failed to enter Picture-in-Picture mode', error); + } + })(); + } +}; + /*------------------------------------------------------------------------------ 4.4.3 FORCED PLAYBACK SPEED ------------------------------------------------------------------------------*/ diff --git a/js&css/web-accessible/www.youtube.com/shortcuts.js b/js&css/web-accessible/www.youtube.com/shortcuts.js index 86423c63a..0b2db1a0e 100644 --- a/js&css/web-accessible/www.youtube.com/shortcuts.js +++ b/js&css/web-accessible/www.youtube.com/shortcuts.js @@ -243,7 +243,6 @@ ImprovedTube.shortcutPictureInPicture = function () { } }; - /*------------------------------------------------------------------------------ 4.7.3 TOGGLE CONTROLS ------------------------------------------------------------------------------*/ diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index aa76718c9..01bbdc0d2 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -154,6 +154,11 @@ extension.skeleton.main.layers.section.player.on.click = { text: 'loudnessNormalization', value: true }, + player_autoPip: { + component: 'switch', + text: 'autoPip', + value: false + }, player_forced_playback_speed: { component: 'switch', text: 'forcedPlaybackSpeed', diff --git a/menu/skeleton-parts/shortcuts.js b/menu/skeleton-parts/shortcuts.js index 64a01b8a4..ed3c4904b 100644 --- a/menu/skeleton-parts/shortcuts.js +++ b/menu/skeleton-parts/shortcuts.js @@ -290,6 +290,11 @@ extension.skeleton.main.layers.section.shortcuts = { text: 'pictureInPicture', storage: 'shortcut_picture_in_picture' }, + auto_picture_in_picture: { + component: 'shortcut', + text: 'autoPictureInPicture', + storage: 'shortcut_auto_picture_in_picture' + }, shortcut_screenshot: { component: 'shortcut', text: 'screenshot' From 5acb78352a8a1aa753ac94646706dbc52ea9f304 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 27 Mar 2023 22:24:33 +0200 Subject: [PATCH 0890/1224] Update README.md --- .github/README.md | 294 +++++++++++++++++++--------------------------- 1 file changed, 121 insertions(+), 173 deletions(-) diff --git a/.github/README.md b/.github/README.md index 1e5754cee..55f362a1b 100644 --- a/.github/README.md +++ b/.github/README.md @@ -1,19 +1,23 @@ -

ImprovedTube

-

Powerful but lightweight extension to enrich your video experience & content selection.

+ + + +

ImprovedTube

+

Powerful but lightweight extension to enrich your video experience & enable your content selection.

+ Report a bug · Request feature · Contribute · Donate

- - recommended by firefox - - - [](https://github.com/code-for-charity/ImprovedTube-for-YouTube/releases/latest "Release.zip") - [`🧪`](https://github.com/code-for-charity/ImprovedTube-for-YouTube/archive/refs/heads/master.zip "Latest.zip") + recommended by firefox + +[ ](https://github.com/code-for-charity/ImprovedTube-for-YouTube/releases/latest "Release.zip") +[`🧪`](https://github.com/code-for-charity/ImprovedTube-for-YouTube/archive/refs/heads/master.zip "Latest.zip") -

Roadmap

+

Roadmap

- (Finding developers / patreons) - All bugs & some wishes @@ -27,142 +31,18 @@ - Run on m.youtube.com, hide what wont work - Ask Samsung Browser to list us. -
- -

Contributing

-For more info on how to contribute please see the contribution wiki. - - -
   

Long 'ugly' Readme.md:

- -

-«Improve YouTube!»   

-/ImprovedTube/ -is a lightweight & powerful extension to enrich your experience & enable your choice.

-

- - - - - -

- -

- [Report a bug] - · [Request feature] - · [Donate] - · [Features] -

- -

YouTube Extension

- -

Critiques

-recommended by firefox -by (only ~ 100)
-'Might be the best YouTube Extension Ever'-
-'enhances YouTube in meaningful ways'-
-'Strong add-on, full control. Yet clear & easy'-
-
-Big thanks ♡ to our contributors, dodieboy,
-translators/wiki-authors & donators :bowtie:
-
- - -### Strong Youtube Extension / 80 features / Only one of a kind - Since 2012 we have gradually been adding lightweight features & keeping up with Youtube changes. -(throughout the years we witnessed the birth & fall of other promising & open YouTube Extensions [1](https://github.com/YePpHa/YouTubeCenter "YouTubeCenter"), [2](https://github.com/ParticleCore/Iridium "Iridium"), ... ) -Today adding can be easier & so motivating as there are 500 000 users. [[👪Join us]](https://github.com/code-for-charity/YouTube-Extension/discussions/1006 "github.com/Code-for-Charity"). - -#####
Spread the word [📣](Http://Twitter_Whatsapp_Discord_Youtube_Facebook_eMail_Telegram_Signal)
-        - -**W**hy arent there millions of users yet? We didn't write a guide or manual, let alone ads. This project can still fly much higher through your word of mouth & eventually enable us to work on all wishes & immediate fixes around the clock 🌱 - -

Roadmap

- - - Finding developers and patreons - - All bugs & wishes - - (i) ToolTips & documentation - - Avoiding CPU-rendering by default - - Smart player buttons for all \ - - Smart content-filtering & discovery - - Full-page GUI, watch-history, dashboard - - Integrating data [#1452](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1452), [SB](https://github.com/mchangrh/sb-mirror) / [NB](https://github.com/andrewzlee/NeuralBlock) etc. - - Integrating code / features like [YCS](https://github.com/sonigy/YCS), [YR](https://github.com/MarcGuiselin/youtube-refined), [NY](https://github.com/raingart/Nova-YouTube-extension), [IC](https://github.com/ThomasTavernier/Improve-Crunchyroll) -
- - -

   -🏝🏕 To-DoList

  
- -##### **0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer some bug bounty. [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "especially if you are at a cheap/poor place ❤️") .)
-##### **1.** **[ ]** [**Documentation, wiki, screenshots, video, ...**](https://github.com/code-for-charity/YouTube-Extension/wiki "We need to help people learning as easily as possible about our 90+ features. (Drafts welcome. This will become 🛈tooltips in the extension too!") -> We need to help people to learn as easily as possible about our [90+ features](https://github.com/ImprovedTube/ImprovedTube/wiki/Features). (Drafts welcome. This will become **🛈ToolTips** in the extension!")
+**[ ]**[Updating translations](https://github.com/code-for-charity/YouTube-Extension/wiki/Translation-HowTo " - some language files miss additions.") +**[ ]**proofreading [eng](https://github.com/ImprovedTube/ImprovedTube/blob/master/_locales/en/messages.json) -#### **2.** [ ][**Plans / Specifications 🧩**](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues?q=is%3Aissue+sort%3Acomments-desc+is%3Aopen+label%3A%22%F0%9F%A7%A9Plan+ready%22++-label%3A%22not+Goo.+Chrome%22+ "often unique & relevant (special)")
   **&**    [ ] [**organizational Discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=category%3AToDo++category%3AOrganization+ "Future & Structure") -##### **3.** [ ] [**Feature Requests🌟🧚**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3A%22Feature+Request%22+sort%3Acomments-desc+is%3Aopen+-label%3A_++-label%3A%22not+Goo.+Chrome%22+ "- sometimes easy / CSS") - sometimes easy / CSS
     **+** [ ]  [**Wishes in discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=-category%3AToDo+-category%3AOrganization+ "Wishes, Ideas, Questions, News") - -###### **0.1. [ ]** Tidy: [(Rest/Unsorted 'issues')](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+is%3Aopen+-label%3Abug+-label%3A%22Feature+Request%22+-label%3A%F0%9F%A7%A9Plan%20ready+-label%3A_+-label%3A%22not+Goo.+Chrome%22+sort%3Acreated-desc++-label%3A"Niche%2Frare+usecase%3F%2Ffun%3F"++-label%3Aunclear "Our github issues, which are not yet labled yet to appear in one of the ToDo-categories above") -> Further reading: [***"Contributing without programming"***](https://github.com/ImprovedTube/YouTube-Extension/discussions/753) & [*"Our CSS, JavaScript, json"*](https://github.com/ImprovedTube/ImprovedTube/pull/371#issuecomment-669725163) ( ***outdated**)* (*Newcomers are [we](https://github.com/ImprovedTube/ImprovedTube/issues/387#issuecomment-664980078)lcome tho! We review all edits & love to collaborate*) -
- - -

- 🎁Extensions & Projects

- -#### [**`History Manager`**] [[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)] [**unLock me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse)] [[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent)] [[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)] -##### Research: [[Regex (Search)](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] -#### **Video / Media:** (**to be integrated in ImprovedTube**...) [[**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper)] [[**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame)] [[**`unBlob`**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob)] (Equalizer[](https://github.com/code-for-charity/equalizer)) - -##### Home: (Start Page to be uploaded ) [[`TextEditor`]([https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka?hl=de))[](https://github.com/code-for-charity/Editor)] [[`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo)] [[`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)")] - ---- - -#### **Development:** [[**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library] [[**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library] ([TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player)) - -#### Git Community: [🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex")] [🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot)] - -
- -

     -🧰 Features      

- - - Fit Video to window, default resolution or pop-up player - - Hiding distractions - - Youtube Themes, Colors & night schedule - - Video Repeat-, screenshot-, rotate-buttons - - Customizable hotkeys / shortcuts - -
- -

      -🔧 Install from source

 
- -1.) **Download & extract the [[latest🧪version]](https://github.com/code4charity/YouTube-Extension/archive/refs/heads/master.zip) or [[release]](https://github.com/code-for-charity/YouTube-Extension/releases)** -- **Safari**: - - 2.) [**#494**](https://github.com/code4charity/YouTube-Extension/issues/494#issuecomment-675098753) - -- **Chrome / Chromium / Brave / Edge / Vivaldi** - - 2.) Go to your Browser's Extensions page (*chrome://extensions/*) - - 3.) Activate `Developer mode` - - 4.) Click the `Load unpacked` button & Select the extracted folder - -- **Firefox / LibreWolf / Waterfox / IceCat** - - 2.) Go to `Add-ons` (*about:addons*) - - 3.) Click on `Extensions` tab - - 4.) Click on `Debug Add-ons` (*about:debugging#/runtime/this-firefox*) - - 5.) Click on `Load Temporary Add-on…` - - 6.) Select the `manifest.json` file from unzipped folder -
- - - -

-🌎 Translators

+

Critiques

+recommended by firefox (~ Top100) -
+'Might be the best YouTube Extension Ever' -
+'enhances YouTube in meaningful ways' -
+'Strong Add-on, full control. Yet clear & easy' - +
+Thanks ♡ to our contributors, Dodieboy, +
translators & potential wiki-authors / donators :bowtie:
+

Translators                              🌎

✔️EN en_GB : -KorbinCode +KorbinCode
Proofreaders:___ (You?)
✔️CN(zh_CN) : niceRAM, @@ -263,12 +143,9 @@ Today adding can be easier & so motivating as there are 500 000 users. [[👪Joi Catalan, Valencian : (You?)
Estonian : -(You?)
-
- = missing some additions/updates -
- -
The following popular languages are
+(You?)
+ = missing some additions/updates

+The following popular languages are
spoken mainly. But dont hesitate to add
one of them. (Even if just for fun)

Urdu Nigerian Pidgin (English Creole)
@@ -289,39 +166,81 @@ speakers than English + Spanish + Hindi.
And more second-language speakers than
Chinese + Hindi + Spanish)

-
+ - -

     -📟 "Ticker"

  
- -###### ❔[**ImprovedTube controls** in, under or around the video player or cursor](https://github.com/code4charity/YouTube-Extension/issues/1445).
❔[**Meaningful/Most similar extensions**? Social-Fixer, Youtube Enhancer, Simplify, ...](https://github.com/code4charity/YouTube-Extension/issues/1016).
📟 We are focused on updates, bugs & UX but please keep up your wishes for Features!
📟 Enjoy **our projects: global** [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl), to tweak CSS everywhere + Theme engine in the making, ...
📟 **2021:** Firefox, Edge, Opera, Whale added (please try&rate) -
+

Contributing

+For more info on how to contribute please see the contribution wiki. +


-#####
💡 Got great ideas?
+

+Improve YoutubeImprove Youtube 2Improve Youtube 3 +

-We'll work on novel (new & unique) projects [github/**Wish-Factory**](https://github.com/code-for-charity/wish-factory "💡🎁") -
(or ideas@improvedtube.com) +

+Original introduction

-

     -🌾👩‍💻 "Behind the scenes"

  
+

+«Improve YouTube!»   

+/ImprovedTube/ is a strong & lightweight extension! - 80 features / the only one of a kind

-web store -web store analytics -youtube recommmendation -
-Do you need to run a popular extension, site, app or repo?
We'll love to help meaningful projects@improvedtube.com -
+ Since several years we have gradually been adding lightweight features & keeping up with Youtube changes. +(throughout the years we witnessed the birth & fall of other promising & open YouTube Extensions [1](https://github.com/YePpHa/YouTubeCenter "YouTubeCenter"), [2](https://github.com/ParticleCore/Iridium "Iridium"), ... ) +Today adding features can be easier & so motivating as there are 500 000 users. [[👪Join us]](https://github.com/code-for-charity/YouTube-Extension/discussions/1006 "github.com/Code-for-Charity"). +#####
Spread the word [📣](Http://Twitter_Whatsapp_Discord_Youtube_Facebook_eMail_Telegram_Signal)
+        - +**W**hy arent there millions of users yet? We didn't write a guide or manual, let alone ads. This project can "fly much higher" through your word of mouth & eventually enable us to work on all wishes & immediate fixes around the clock 🌱 +
+ +

+🎁Extensions & Projects

+ +#### [**`History Manager`**] [[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)] [**unLock me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse)] [[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent)] [[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)] +##### Research: [[Regex (Search)](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] +#### **Video / Media:** (**to be integrated in ImprovedTube**...) [[**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper)] [[**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame)] [[**`unBlob`**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob)] (Equalizer[](https://github.com/code-for-charity/equalizer)) + +##### Home: (Start Page to be uploaded ) [[`TextEditor`]([https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka?hl=de))[](https://github.com/code-for-charity/Editor)] [[`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo)] [[`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)")] +--- +#### **Development:** [[**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library] [[**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library] ([TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player)) +#### Git Community: [🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex")] [🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot)] +
+####
💡 Got great ideas?
+
+ +We might work on novel (new & unique) projects [github/**Wish-Factory**](https://github.com/code-for-charity/wish-factory "💡🎁")
+(or ideas@improvedtube.com)
+
+👩‍💻 "Behind the scenes" + +web store +web store analytics +youtube recommmendation +
+Do you need to run a popular extension, site, app or repo?
We'll love to help meaningful projects@improvedtube.com +

+🏝🏕 Issue-Filters // To-Do List>

+##### **0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer some bug bounty. [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "especially if you are at a cheap/poor place ❤️") .) +##### **1.** **[ ]** [**Documentation, wiki, screenshots, video, ...**](https://github.com/code-for-charity/YouTube-Extension/wiki "We need to help people learning as easily as possible about our 90+ features. (Drafts welcome. This will become 🛈tooltips in the extension too!") +> We need to help people to learn as easily as possible about our [90+ features](https://github.com/ImprovedTube/ImprovedTube/wiki/Features). (Drafts welcome. This can become **🛈ToolTips** in the extension!")
+**[ ]**[Updating translations](https://github.com/code-for-charity/YouTube-Extension/wiki/Translation-HowTo " - some language files miss additions.") +**[ ]**proofreading [eng](https://github.com/ImprovedTube/ImprovedTube/blob/master/_locales/en/messages.json) +#### **2.** [ ][**Plans / Specifications 🧩**](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues?q=is%3Aissue+sort%3Acomments-desc+is%3Aopen+label%3A%22%F0%9F%A7%A9Plan+ready%22++-label%3A%22not+Goo.+Chrome%22+ "often unique & relevant (special)")
   **&**    [ ] [**organizational Discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=category%3AToDo++category%3AOrganization+ "Future & Structure") +##### **3.** [ ] [**Feature Requests🌟🧚**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3A%22Feature+Request%22+sort%3Acomments-desc+is%3Aopen+-label%3A_++-label%3A%22not+Goo.+Chrome%22+ "- sometimes easy / CSS") - sometimes easy / CSS
     **+** [ ]  [**Wishes in discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=-category%3AToDo+-category%3AOrganization+ "Wishes, Ideas, Questions, News") +###### **0.1. [ ]** Tidy: [(Rest/Unsorted 'issues')](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+is%3Aopen+-label%3Abug+-label%3A%22Feature+Request%22+-label%3A%F0%9F%A7%A9Plan%20ready+-label%3A_+-label%3A%22not+Goo.+Chrome%22+sort%3Acreated-desc++-label%3A"Niche%2Frare+usecase%3F%2Ffun%3F"++-label%3Aunclear "Our github issues, which are not yet labled yet to appear in one of the ToDo-categories above") +> Further reading: [***"Contributing without programming"***](https://github.com/ImprovedTube/YouTube-Extension/discussions/753) & [*"Our CSS, JavaScript, json"*](https://github.com/ImprovedTube/ImprovedTube/pull/371#issuecomment-669725163) ( ***outdated**)* (*Newcomers are [we](https://github.com/ImprovedTube/ImprovedTube/issues/387#issuecomment-664980078)lcome tho! We review all edits & love to collaborate*) +
+
+📟 "ImprovedTube Ticker 2022 / Pinned Issues" + +###### ❔[**ImprovedTube controls** in, under or around the video player or cursor](https://github.com/code4charity/YouTube-Extension/issues/1445).
❔[**Meaningful/Most similar extensions**? Social-Fixer, Youtube Enhancer, Simplify, ...](https://github.com/code4charity/YouTube-Extension/issues/1016).
📟 We are focused on updates, bugs & UX but please keep up your wishes for Features!
📟 Enjoy **our projects: global** [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl), to tweak CSS everywhere + Theme engine in the making, ...
📟 **2021:** Firefox, Edge, Opera, Whale added (please try&rate) +
-


     -📜Old Introduction:

     
+
+📜Historic Introduction [ImprovedTube](https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd),       is an extension we built to refine your YouTube experience. A powerful one-stop-shop with many features to enhance YouTube, yet liteweight. Be it a larger player or more tidy / studious YouTube UI, hiding distractions. And there was so much left to build and are many clever features to come still.        ImprovedTube is designed with our own UI library: [Satus](https://github.com/victor-savinov/satus) (to manage your settings efficiently & create familiar apps/['cousins](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl) easily.)       Please spread the word: ImprovedTube is the only project of it's kind, because other open Youtube Extensions resigned. No other project provides so much CSS to adjust a website[🦄](https://github.com/search?q=stars%3A%3E700++size%3A%3E3000+++language%3ACSS++App+OR+Addon+OR+Extension+NOT+framework+NOT+apps&type=Repositories&s=updated&o=desc). @@ -363,8 +282,37 @@ _[Full list](https://github.com/ImprovedTube/YouTube/wiki/Features)_ #### Web browser support |[Brave](https://brave.com)
Brave | [Chromium](https://github.com/chromium/chromium)
Chromium | [Chrome](https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd)
Chrome | [Edge](https://www.microsoft.com/edge)
Edge | [Firefox](https://foundation.mozilla.org)
Firefox | [Opera](https://addons.opera.com/en/extensions/details/install-chrome-extensions/)
Opera| [Safari](https://www.apple.com/safari/)
Safari | [Vivaldi](https://github.com/ric2b/Vivaldi-browser)
Vivaldi | | --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | -| 0.52+ | 49.0+ | 49.0+ | 79.0+ | 44.0+ | 36.0+ | x.x+ | 1.0+ | -
- - +| 0.52+ | 49.0+ | 49.0+ | 79.0+ | 44.0+ | 36.0+ | x.x+ | 1.0+ | +

+🧰 Features

+ + - Fit Video to window, default resolution or pop-up player + - Hiding distractions + - Youtube Themes, Colors & night schedule + - Video Repeat-, screenshot-, rotate-buttons + - Customizable hotkeys / shortcuts +
+
+🔧 Install from source + +1.) **Download & extract the [[latest🧪version]](https://github.com/code4charity/YouTube-Extension/archive/refs/heads/master.zip) or [[release]](https://github.com/code-for-charity/YouTube-Extension/releases)** +- **Safari**: + - 2.) [**#494**](https://github.com/code4charity/YouTube-Extension/issues/494#issuecomment-675098753) + +- **Chrome / Chromium / Brave / Edge / Vivaldi** + - 2.) Go to your Browser's Extensions page (*chrome://extensions/*) + - 3.) Activate `Developer mode` + - 4.) Click the `Load unpacked` button & Select the extracted folder + +- **Firefox / LibreWolf / Waterfox / IceCat** + - 2.) Go to `Add-ons` (*about:addons*) + - 3.) Click on `Extensions` tab + - 4.) Click on `Debug Add-ons` (*about:debugging#/runtime/this-firefox*) + - 5.) Click on `Load Temporary Add-on…` + - 6.) Select the `manifest.json` file from unzipped folder +
+ + + + From 8b49f3f3b70e7786161fc3ec08324a57349e1e47 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 27 Mar 2023 22:28:15 +0200 Subject: [PATCH 0891/1224] Update README.md --- .github/README.md | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/.github/README.md b/.github/README.md index 55f362a1b..bdbd7f6d8 100644 --- a/.github/README.md +++ b/.github/README.md @@ -191,7 +191,6 @@ Today adding features can be easier & so motivating as there are 500 000 users.         - **W**hy arent there millions of users yet? We didn't write a guide or manual, let alone ads. This project can "fly much higher" through your word of mouth & eventually enable us to work on all wishes & immediate fixes around the clock 🌱
-

🎁Extensions & Projects

@@ -218,11 +217,10 @@ We might work on novel (new & unique) projects [github/**Wish-Factory**](https:/ web store web store analytics +
D
We'll love to help meaningful projects@improvedtube.com youtube recommmendation -
-Do you need to run a popular extension, site, app or repo?
We'll love to help meaningful projects@improvedtube.com

-🏝🏕 Issue-Filters // To-Do List>

+🏝🏕 Issue-Filters // To-Do List ##### **0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer some bug bounty. [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "especially if you are at a cheap/poor place ❤️") .) ##### **1.** **[ ]** [**Documentation, wiki, screenshots, video, ...**](https://github.com/code-for-charity/YouTube-Extension/wiki "We need to help people learning as easily as possible about our 90+ features. (Drafts welcome. This will become 🛈tooltips in the extension too!") @@ -232,14 +230,11 @@ Do you need to run a popular extension, site, app or repo?
We'll love to ###### **0.1. [ ]** Tidy: [(Rest/Unsorted 'issues')](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+is%3Aopen+-label%3Abug+-label%3A%22Feature+Request%22+-label%3A%F0%9F%A7%A9Plan%20ready+-label%3A_+-label%3A%22not+Goo.+Chrome%22+sort%3Acreated-desc++-label%3A"Niche%2Frare+usecase%3F%2Ffun%3F"++-label%3Aunclear "Our github issues, which are not yet labled yet to appear in one of the ToDo-categories above") > Further reading: [***"Contributing without programming"***](https://github.com/ImprovedTube/YouTube-Extension/discussions/753) & [*"Our CSS, JavaScript, json"*](https://github.com/ImprovedTube/ImprovedTube/pull/371#issuecomment-669725163) ( ***outdated**)* (*Newcomers are [we](https://github.com/ImprovedTube/ImprovedTube/issues/387#issuecomment-664980078)lcome tho! We review all edits & love to collaborate*) -
-
+
📟 "ImprovedTube Ticker 2022 / Pinned Issues" ###### ❔[**ImprovedTube controls** in, under or around the video player or cursor](https://github.com/code4charity/YouTube-Extension/issues/1445).
❔[**Meaningful/Most similar extensions**? Social-Fixer, Youtube Enhancer, Simplify, ...](https://github.com/code4charity/YouTube-Extension/issues/1016).
📟 We are focused on updates, bugs & UX but please keep up your wishes for Features!
📟 Enjoy **our projects: global** [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl), to tweak CSS everywhere + Theme engine in the making, ...
📟 **2021:** Firefox, Edge, Opera, Whale added (please try&rate) -
- -
+
📜Historic Introduction [ImprovedTube](https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd), @@ -282,8 +277,7 @@ _[Full list](https://github.com/ImprovedTube/YouTube/wiki/Features)_ #### Web browser support |[Brave](https://brave.com)
Brave | [Chromium](https://github.com/chromium/chromium)
Chromium | [Chrome](https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd)
Chrome | [Edge](https://www.microsoft.com/edge)
Edge | [Firefox](https://foundation.mozilla.org)
Firefox | [Opera](https://addons.opera.com/en/extensions/details/install-chrome-extensions/)
Opera| [Safari](https://www.apple.com/safari/)
Safari | [Vivaldi](https://github.com/ric2b/Vivaldi-browser)
Vivaldi | | --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | -| 0.52+ | 49.0+ | 49.0+ | 79.0+ | 44.0+ | 36.0+ | x.x+ | 1.0+ | -

+| 0.52+ | 49.0+ | 49.0+ | 79.0+ | 44.0+ | 36.0+ | x.x+ | 1.0+ |

🧰 Features

- Fit Video to window, default resolution or pop-up player @@ -292,8 +286,7 @@ _[Full list](https://github.com/ImprovedTube/YouTube/wiki/Features)_ - Video Repeat-, screenshot-, rotate-buttons - Customizable hotkeys / shortcuts -
-
+
🔧 Install from source 1.) **Download & extract the [[latest🧪version]](https://github.com/code4charity/YouTube-Extension/archive/refs/heads/master.zip) or [[release]](https://github.com/code-for-charity/YouTube-Extension/releases)** From 44d1b068b53cafacfd96cb45f676f61d2230fdb1 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 27 Mar 2023 22:31:51 +0200 Subject: [PATCH 0892/1224] Update README.md --- .github/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/README.md b/.github/README.md index bdbd7f6d8..8dabe2df6 100644 --- a/.github/README.md +++ b/.github/README.md @@ -27,7 +27,7 @@ - Smart content-filtering & discovery - Full-page GUI, watch-history, dashboard - Integrating data [#1452](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1452), [SB](https://github.com/mchangrh/sb-mirror) / [NB](https://github.com/andrewzlee/NeuralBlock) etc. - - Integrating code / features like [YCS](https://github.com/sonigy/YCS), [YR](https://github.com/MarcGuiselin/youtube-refined), [NY](https://github.com/raingart/Nova-YouTube-extension); [IC](https://github.com/ThomasTavernier/Improve-Crunchyroll) + - Integrating code /features like [YCS](https://github.com/sonigy/YCS), [YR](https://github.com/MarcGuiselin/youtube-refined), [NY](https://github.com/raingart/Nova-YouTube-extension); [IC](https://github.com/ThomasTavernier/Improve-Crunchyroll) - Run on m.youtube.com, hide what wont work - Ask Samsung Browser to list us. @@ -39,7 +39,7 @@
Thanks ♡ to our contributors, Dodieboy,
translators & potential wiki-authors / donators :bowtie:
-

Translators                              🌎

+

Translators                             🌎

✔️EN en_GB : KorbinCode @@ -216,9 +216,9 @@ We might work on novel (new & unique) projects [github/**Wish-Factory**](https:/ 👩‍💻 "Behind the scenes" web store -web store analytics +web store analytics
D
We'll love to help meaningful projects@improvedtube.com -youtube recommmendation +youtube recommmendation

🏝🏕 Issue-Filters // To-Do List

From 12c32af629d8ed62a1c821082819c3e5270101dd Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 27 Mar 2023 22:33:32 +0200 Subject: [PATCH 0893/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index 8dabe2df6..00de51e8b 100644 --- a/.github/README.md +++ b/.github/README.md @@ -217,7 +217,7 @@ We might work on novel (new & unique) projects [github/**Wish-Factory**](https:/ web store web store analytics -
D
We'll love to help meaningful projects@improvedtube.com +
Do you need to run a popular extension, site, app or repo?
We'd love to help meaningful projects@improvedtube.com youtube recommmendation

🏝🏕 Issue-Filters // To-Do List

From 467fe9fd9f7f6b6662301c7f51fb2347f8009190 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 27 Mar 2023 22:35:27 +0200 Subject: [PATCH 0894/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index 00de51e8b..b00d64126 100644 --- a/.github/README.md +++ b/.github/README.md @@ -173,7 +173,7 @@ For more info on how to contribute please see the -Improve YoutubeImprove Youtube 2Improve Youtube 3 +Improve Youtube 2Improve Youtube 3Improve Youtube

From 0ece4522bd3c6ae6b6b5fee11f953eb964381528 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 27 Mar 2023 22:48:00 +0200 Subject: [PATCH 0895/1224] Update README.md --- .github/README.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/.github/README.md b/.github/README.md index b00d64126..a7ad0ee11 100644 --- a/.github/README.md +++ b/.github/README.md @@ -12,7 +12,7 @@ Donate

- recommended by firefox + recommended by firefox [ ](https://github.com/code-for-charity/ImprovedTube-for-YouTube/releases/latest "Release.zip") [`🧪`](https://github.com/code-for-charity/ImprovedTube-for-YouTube/archive/refs/heads/master.zip "Latest.zip") @@ -27,8 +27,8 @@ - Smart content-filtering & discovery - Full-page GUI, watch-history, dashboard - Integrating data [#1452](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1452), [SB](https://github.com/mchangrh/sb-mirror) / [NB](https://github.com/andrewzlee/NeuralBlock) etc. - - Integrating code /features like [YCS](https://github.com/sonigy/YCS), [YR](https://github.com/MarcGuiselin/youtube-refined), [NY](https://github.com/raingart/Nova-YouTube-extension); [IC](https://github.com/ThomasTavernier/Improve-Crunchyroll) - - Run on m.youtube.com, hide what wont work + - Continuously Integrating code /features
like: [YCS](https://github.com/sonigy/YCS), [YR](https://github.com/MarcGuiselin/youtube-refined), [NY](https://github.com/raingart/Nova-YouTube-extension); [IC](https://github.com/ThomasTavernier/Improve-Crunchyroll) + - Run on m.youtube.com (grey-out some) - Ask Samsung Browser to list us.

Critiques

@@ -38,8 +38,8 @@ 'Strong Add-on, full control. Yet clear & easy' -
Thanks ♡ to our contributors, Dodieboy, -
translators & potential wiki-authors / donators :bowtie:
-

Translators                             🌎

+
translators (+ wiki-authors? +donators?):bowtie: +

Translators                          🌎

✔️EN en_GB : KorbinCode @@ -181,17 +181,16 @@ Original introduction

«Improve YouTube!»   

-/ImprovedTube/ is a strong & lightweight extension! - 80 features / the only one of a kind

+/ImprovedTube/
is a strong & lightweight extension! - 80 features / the only one of a kind!

Since several years we have gradually been adding lightweight features & keeping up with Youtube changes. (throughout the years we witnessed the birth & fall of other promising & open YouTube Extensions [1](https://github.com/YePpHa/YouTubeCenter "YouTubeCenter"), [2](https://github.com/ParticleCore/Iridium "Iridium"), ... ) -Today adding features can be easier & so motivating as there are 500 000 users. [[👪Join us]](https://github.com/code-for-charity/YouTube-Extension/discussions/1006 "github.com/Code-for-Charity"). +Today adding features can be easier & so motivating as there are 500 000 users.
[[👪Join us]](https://github.com/code-for-charity/YouTube-Extension/discussions/1006 "github.com/Code-for-Charity"). #####
Spread the word [📣](Http://Twitter_Whatsapp_Discord_Youtube_Facebook_eMail_Telegram_Signal)
        - -**W**hy arent there millions of users yet? We didn't write a guide or manual, let alone ads. This project can "fly much higher" through your word of mouth & eventually enable us to work on all wishes & immediate fixes around the clock 🌱 -
-

+**W**hy arent there millions of users yet? We didn't write a guide or manual, let alone ads. This project can "fly much higher" through your word of mouth & eventually enable us to work on all wishes & immediate fixes around the clock
🌱 +

🎁Extensions & Projects

#### [**`History Manager`**] [[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)] [**unLock me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse)] [[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent)] [[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)] From 0e0ca9abf82a266a69bef0a07b50f6aaedeb306d Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 27 Mar 2023 23:20:35 +0200 Subject: [PATCH 0896/1224] Update README.md --- .github/README.md | 75 +++++++++++++++++++++++------------------------ 1 file changed, 37 insertions(+), 38 deletions(-) diff --git a/.github/README.md b/.github/README.md index a7ad0ee11..76ec2b7d7 100644 --- a/.github/README.md +++ b/.github/README.md @@ -2,20 +2,21 @@ - -

ImprovedTube

-

Powerful but lightweight extension to enrich your video experience & enable your content selection.

- +
+ Report a bug · Request feature · Contribute · -Donate

+Donate · [🧪](https://github.com/code-for-charity/ImprovedTube-for-YouTube/archive/refs/heads/master.zip "Latest.zip")
+ +

ImprovedTube

+

Powerful but lightweight extension to enrich your video experience & enable your content selection.

- recommended by firefox + [ ](https://github.com/code-for-charity/ImprovedTube-for-YouTube/releases/latest "Release.zip") -[`🧪`](https://github.com/code-for-charity/ImprovedTube-for-YouTube/archive/refs/heads/master.zip "Latest.zip") +

Roadmap

@@ -170,40 +171,39 @@ Chinese + Hindi + Spanish)

Contributing

For more info on how to contribute please see the contribution wiki. -


- -

-Improve Youtube 2Improve Youtube 3Improve Youtube -

- -

-Original introduction

+
+
+
+
+
+Original introduction

«Improve YouTube!»   

-/ImprovedTube/ is a strong & lightweight extension! - 80 features / the only one of a kind!

- - Since several years we have gradually been adding lightweight features & keeping up with Youtube changes. + +/ImprovedTube/ is a strong & lightweight extension! - 80 features / the only one of a kind!

+ Since 2012 we have gradually been adding lightweight features, while keeping up with Youtube changes. (throughout the years we witnessed the birth & fall of other promising & open YouTube Extensions [1](https://github.com/YePpHa/YouTubeCenter "YouTubeCenter"), [2](https://github.com/ParticleCore/Iridium "Iridium"), ... ) -Today adding features can be easier & so motivating as there are 500 000 users.
[[👪Join us]](https://github.com/code-for-charity/YouTube-Extension/discussions/1006 "github.com/Code-for-Charity"). +Today adding features can be easier & so motivating as there are 500 000 users. [[👪Join us]](https://github.com/code-for-charity/YouTube-Extension/discussions/1006 "github.com/Code-for-Charity").

+Improve Youtube 2Improve Youtube 3Improve Youtube +

#####
Spread the word [📣](Http://Twitter_Whatsapp_Discord_Youtube_Facebook_eMail_Telegram_Signal)
        - -**W**hy arent there millions of users yet? We didn't write a guide or manual, let alone ads. This project can "fly much higher" through your word of mouth & eventually enable us to work on all wishes & immediate fixes around the clock
🌱 +**W**hy arent there millions of users yet? We didn't write a guide or manual, let alone ads. This project can "fly much higher" through your word of mouth & eventually enable us to work on all wishes & immediate fixes around the clock🌱 +

🎁Extensions & Projects

- -#### [**`History Manager`**] [[**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode)] [**unLock me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse)] [[**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent)] [[`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)] -##### Research: [[Regex (Search)](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] -#### **Video / Media:** (**to be integrated in ImprovedTube**...) [[**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper)] [[**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame)] [[**`unBlob`**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob)] (Equalizer[](https://github.com/code-for-charity/equalizer)) - -##### Home: (Start Page to be uploaded ) [[`TextEditor`]([https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka?hl=de))[](https://github.com/code-for-charity/Editor)] [[`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo)] [[`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)")] + +[**`History Manager`**] [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode) [**unLock me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse) [**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent) +
Research: [ Ultimate Regex (Search) & Replace](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] ([`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)) +
**Video / Media:** (**to be integrated in ImprovedTube**...) [**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper) [**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame) [`unBlob`](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob "please fix/adopt me!") (Equalizer[](https://github.com/code-for-charity/equalizer)) +
Home: (Start Page to be uploaded ) [`TextEditor`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka) [](https://github.com/code-for-charity/Editor)] [`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo) [`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)") --- -#### **Development:** [[**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library] [[**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library] ([TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player)) - -#### Git Community: [🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex")] [🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot)] +**Development:** [**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library | [**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library ([TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player))
+**Git Community:** 🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") | [🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot)
####
💡 Got great ideas?
@@ -216,18 +216,17 @@ We might work on novel (new & unique) projects [github/**Wish-Factory**](https:/ web store web store analytics -
Do you need to run a popular extension, site, app or repo?
We'd love to help meaningful projects@improvedtube.com -youtube recommmendation -

+

youtube recommmendation

Do you need to run a popular extension, site, app or repo?
We'd love to help meaningful projects@improvedtube.com +

🏝🏕 Issue-Filters // To-Do List

-##### **0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer some bug bounty. [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "especially if you are at a cheap/poor place ❤️") .) -##### **1.** **[ ]** [**Documentation, wiki, screenshots, video, ...**](https://github.com/code-for-charity/YouTube-Extension/wiki "We need to help people learning as easily as possible about our 90+ features. (Drafts welcome. This will become 🛈tooltips in the extension too!") +**0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer some bug bounty. [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "especially if you are at a cheap/poor place ❤️") .) +
**1.** **[ ]** [**Documentation, wiki, screenshots, video, ...**](https://github.com/code-for-charity/YouTube-Extension/wiki "We need to help people learning as easily as possible about our 90+ features. (Drafts welcome. This will become 🛈tooltips in the extension too!") > We need to help people to learn as easily as possible about our [90+ features](https://github.com/ImprovedTube/ImprovedTube/wiki/Features). (Drafts welcome. This can become **🛈ToolTips** in the extension!")
+**[ ]**[Updating translations](https://github.com/code-for-charity/YouTube-Extension/wiki/Translation-HowTo " - some language files miss additions.") +**[ ]**proofreading [eng](https://github.com/ImprovedTube/ImprovedTube/blob/master/_locales/en/messages.json) -#### **2.** [ ][**Plans / Specifications 🧩**](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues?q=is%3Aissue+sort%3Acomments-desc+is%3Aopen+label%3A%22%F0%9F%A7%A9Plan+ready%22++-label%3A%22not+Goo.+Chrome%22+ "often unique & relevant (special)")
   **&**    [ ] [**organizational Discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=category%3AToDo++category%3AOrganization+ "Future & Structure") -##### **3.** [ ] [**Feature Requests🌟🧚**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3A%22Feature+Request%22+sort%3Acomments-desc+is%3Aopen+-label%3A_++-label%3A%22not+Goo.+Chrome%22+ "- sometimes easy / CSS") - sometimes easy / CSS
     **+** [ ]  [**Wishes in discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=-category%3AToDo+-category%3AOrganization+ "Wishes, Ideas, Questions, News") - -###### **0.1. [ ]** Tidy: [(Rest/Unsorted 'issues')](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+is%3Aopen+-label%3Abug+-label%3A%22Feature+Request%22+-label%3A%F0%9F%A7%A9Plan%20ready+-label%3A_+-label%3A%22not+Goo.+Chrome%22+sort%3Acreated-desc++-label%3A"Niche%2Frare+usecase%3F%2Ffun%3F"++-label%3Aunclear "Our github issues, which are not yet labled yet to appear in one of the ToDo-categories above") +
**2.** [ ][**Plans / Specifications 🧩**](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues?q=is%3Aissue+sort%3Acomments-desc+is%3Aopen+label%3A%22%F0%9F%A7%A9Plan+ready%22++-label%3A%22not+Goo.+Chrome%22+ "often unique & relevant (special)")
   **&**    [ ] [**organizational Discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=category%3AToDo++category%3AOrganization+ "Future & Structure") +
**3.** [ ] [**Feature Requests🌟🧚**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3A%22Feature+Request%22+sort%3Acomments-desc+is%3Aopen+-label%3A_++-label%3A%22not+Goo.+Chrome%22+ "- sometimes easy / CSS") - sometimes easy / CSS
     **+** [ ]  [**Wishes in discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=-category%3AToDo+-category%3AOrganization+ "Wishes, Ideas, Questions, News") + +
**0.1. [ ]** Tidy: [(Rest/Unsorted 'issues')](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+is%3Aopen+-label%3Abug+-label%3A%22Feature+Request%22+-label%3A%F0%9F%A7%A9Plan%20ready+-label%3A_+-label%3A%22not+Goo.+Chrome%22+sort%3Acreated-desc++-label%3A"Niche%2Frare+usecase%3F%2Ffun%3F"++-label%3Aunclear "Our github issues, which are not yet labled yet to appear in one of the ToDo-categories above") > Further reading: [***"Contributing without programming"***](https://github.com/ImprovedTube/YouTube-Extension/discussions/753) & [*"Our CSS, JavaScript, json"*](https://github.com/ImprovedTube/ImprovedTube/pull/371#issuecomment-669725163) ( ***outdated**)* (*Newcomers are [we](https://github.com/ImprovedTube/ImprovedTube/issues/387#issuecomment-664980078)lcome tho! We review all edits & love to collaborate*)
📟 "ImprovedTube Ticker 2022 / Pinned Issues" From 506ef76034d34606235c5a37b532cffd8a0d516b Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 27 Mar 2023 23:30:40 +0200 Subject: [PATCH 0897/1224] Update README.md --- .github/README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/README.md b/.github/README.md index 76ec2b7d7..77d572ef2 100644 --- a/.github/README.md +++ b/.github/README.md @@ -170,7 +170,7 @@ Chinese + Hindi + Spanish)

Contributing

-For more info on how to contribute please see the contribution wiki. +For more info on how to contribute,
please see the contribution wiki.


@@ -195,10 +195,10 @@ Today adding features can be easier & so motivating as there are 500 000 users.

🎁Extensions & Projects

-[**`History Manager`**] [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode) [**unLock me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse) [**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent) +[**unFreeze me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse) [**`History Manager`**] [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode) [**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent)
Research: [ Ultimate Regex (Search) & Replace](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] ([`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm))
**Video / Media:** (**to be integrated in ImprovedTube**...) [**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper) [**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame) [`unBlob`](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob "please fix/adopt me!") (Equalizer[](https://github.com/code-for-charity/equalizer)) -
Home: (Start Page to be uploaded ) [`TextEditor`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka) [](https://github.com/code-for-charity/Editor)] [`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo) [`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)") +
Home: (Start Page to be uploaded ) [`TextEditor`](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka) [](https://github.com/code-for-charity/Editor) [`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo) [`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)") --- @@ -206,11 +206,10 @@ Today adding features can be easier & so motivating as there are 500 000 users. **Git Community:** 🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") | [🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot)
-####
💡 Got great ideas?
-
+#### 💡 Got great ideas? -We might work on novel (new & unique) projects [github/**Wish-Factory**](https://github.com/code-for-charity/wish-factory "💡🎁")
-(or ideas@improvedtube.com)
+We might work on novel (new & unique)
projects at [github/**Wish-Factory**](https://github.com/code-for-charity/wish-factory "💡🎁")
+(or ideas@improvedtube.com)
👩‍💻 "Behind the scenes" @@ -223,7 +222,8 @@ We might work on novel (new & unique) projects [github/**Wish-Factory**](https:/ **0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer some bug bounty. [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "especially if you are at a cheap/poor place ❤️") .)
**1.** **[ ]** [**Documentation, wiki, screenshots, video, ...**](https://github.com/code-for-charity/YouTube-Extension/wiki "We need to help people learning as easily as possible about our 90+ features. (Drafts welcome. This will become 🛈tooltips in the extension too!") > We need to help people to learn as easily as possible about our [90+ features](https://github.com/ImprovedTube/ImprovedTube/wiki/Features). (Drafts welcome. This can become **🛈ToolTips** in the extension!")
+**[ ]**[Updating translations](https://github.com/code-for-charity/YouTube-Extension/wiki/Translation-HowTo " - some language files miss additions.") +**[ ]**proofreading [eng](https://github.com/ImprovedTube/ImprovedTube/blob/master/_locales/en/messages.json) -
**2.** [ ][**Plans / Specifications 🧩**](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues?q=is%3Aissue+sort%3Acomments-desc+is%3Aopen+label%3A%22%F0%9F%A7%A9Plan+ready%22++-label%3A%22not+Goo.+Chrome%22+ "often unique & relevant (special)")
   **&**    [ ] [**organizational Discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=category%3AToDo++category%3AOrganization+ "Future & Structure") + +**2.** [ ][**Plans / Specifications 🧩**](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues?q=is%3Aissue+sort%3Acomments-desc+is%3Aopen+label%3A%22%F0%9F%A7%A9Plan+ready%22++-label%3A%22not+Goo.+Chrome%22+ "often unique & relevant (special)")
   **&**    [ ] [**organizational Discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=category%3AToDo++category%3AOrganization+ "Future & Structure")
**3.** [ ] [**Feature Requests🌟🧚**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3A%22Feature+Request%22+sort%3Acomments-desc+is%3Aopen+-label%3A_++-label%3A%22not+Goo.+Chrome%22+ "- sometimes easy / CSS") - sometimes easy / CSS
     **+** [ ]  [**Wishes in discussions**](https://github.com/code-for-charity/YouTube-Extension/discussions?discussions_q=-category%3AToDo+-category%3AOrganization+ "Wishes, Ideas, Questions, News")
**0.1. [ ]** Tidy: [(Rest/Unsorted 'issues')](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+is%3Aopen+-label%3Abug+-label%3A%22Feature+Request%22+-label%3A%F0%9F%A7%A9Plan%20ready+-label%3A_+-label%3A%22not+Goo.+Chrome%22+sort%3Acreated-desc++-label%3A"Niche%2Frare+usecase%3F%2Ffun%3F"++-label%3Aunclear "Our github issues, which are not yet labled yet to appear in one of the ToDo-categories above") From 5c935dd68c063c739fdcf63acfae8fdd1766cccb Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 27 Mar 2023 23:32:49 +0200 Subject: [PATCH 0898/1224] Update README.md --- .github/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index 77d572ef2..945510a20 100644 --- a/.github/README.md +++ b/.github/README.md @@ -275,7 +275,8 @@ _[Full list](https://github.com/ImprovedTube/YouTube/wiki/Features)_ #### Web browser support |[Brave](https://brave.com)
Brave | [Chromium](https://github.com/chromium/chromium)
Chromium | [Chrome](https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd)
Chrome | [Edge](https://www.microsoft.com/edge)
Edge | [Firefox](https://foundation.mozilla.org)
Firefox | [Opera](https://addons.opera.com/en/extensions/details/install-chrome-extensions/)
Opera| [Safari](https://www.apple.com/safari/)
Safari | [Vivaldi](https://github.com/ric2b/Vivaldi-browser)
Vivaldi | | --------- | --------- | --------- | --------- | --------- | --------- | --------- | --------- | -| 0.52+ | 49.0+ | 49.0+ | 79.0+ | 44.0+ | 36.0+ | x.x+ | 1.0+ |

+| 0.52+ | 49.0+ | 49.0+ | 79.0+ | 44.0+ | 36.0+ | x.x+ | 1.0+ | +

🧰 Features

- Fit Video to window, default resolution or pop-up player From a7084836b82462ea7fd4b8b76c6743b7cf0a609b Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 27 Mar 2023 23:35:50 +0200 Subject: [PATCH 0899/1224] Update README.md --- .github/README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/README.md b/.github/README.md index 945510a20..febd4c920 100644 --- a/.github/README.md +++ b/.github/README.md @@ -32,15 +32,16 @@ - Run on m.youtube.com (grey-out some) - Ask Samsung Browser to list us. -

Critiques

+

Critiques

recommended by firefox (~ Top100) -
'Might be the best YouTube Extension Ever' -
'enhances YouTube in meaningful ways' -
'Strong Add-on, full control. Yet clear & easy' - -
-Thanks ♡ to our contributors, Dodieboy, +
+ +**Thanks** ♡ to our contributors, Dodieboy,
translators (+ wiki-authors? +donators?):bowtie:
-

Translators                          🌎

+

Translators                          🌎

✔️EN en_GB : KorbinCode From 8882b85ac19089d756b06a48e4553f640f920120 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 27 Mar 2023 23:55:51 +0200 Subject: [PATCH 0900/1224] Update manifest.json --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index dd6928435..174efeb21 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "short_name" : "ImprovedTube", - "name": "'Improve YouTube!'🎧(for YouTube & Videos)", + "name": "'Improve YouTube!' 🎧 (for YouTube & Videos)", "description": "__MSG_description_ext__", "version": "4.6", "default_locale": "en", From a5067b326710b87cef8d4bfda7480fe764e1997e Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 28 Mar 2023 02:07:24 +0200 Subject: [PATCH 0901/1224] Update README.md --- .github/README.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/.github/README.md b/.github/README.md index febd4c920..3b4eb0681 100644 --- a/.github/README.md +++ b/.github/README.md @@ -21,11 +21,11 @@

Roadmap

- (Finding developers / patreons) - - All bugs & some wishes - - (i) ToolTips & documentation - - Avoiding CPU-rendering by default - - Smart player buttons for all \ - - Smart content-filtering & discovery + - All bugs & many wishes + - [i] ToolTips & documentation + - [Auto](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1211) Avoiding CPU-rendering + - Smart [Player buttons](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1445) for all \ + - Smart [content-filtering & discovery](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1451) + [#x](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1463) - Full-page GUI, watch-history, dashboard - Integrating data [#1452](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1452), [SB](https://github.com/mchangrh/sb-mirror) / [NB](https://github.com/andrewzlee/NeuralBlock) etc. - Continuously Integrating code /features
like: [YCS](https://github.com/sonigy/YCS), [YR](https://github.com/MarcGuiselin/youtube-refined), [NY](https://github.com/raingart/Nova-YouTube-extension); [IC](https://github.com/ThomasTavernier/Improve-Crunchyroll) @@ -172,10 +172,9 @@ Chinese + Hindi + Spanish)

Contributing

For more info on how to contribute,
please see the contribution wiki. -
-
-
-
+ +




+
Original introduction From bfe37fe651091cf91d25364635c8fc95f5458196 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 28 Mar 2023 02:45:52 +0200 Subject: [PATCH 0902/1224] Update README.md --- .github/README.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/README.md b/.github/README.md index 3b4eb0681..f35640d96 100644 --- a/.github/README.md +++ b/.github/README.md @@ -41,7 +41,7 @@ **Thanks** ♡ to our contributors, Dodieboy,
translators (+ wiki-authors? +donators?):bowtie: -

Translators                          🌎

+

Translators                          🌎

✔️EN en_GB : KorbinCode @@ -145,7 +145,7 @@ Catalan, Valencian : (You?)
Estonian : -(You?)
+(You?)
= missing some additions/updates

The following popular languages are
spoken mainly. But dont hesitate to add
one of them. (Even if just for fun)

@@ -304,7 +304,3 @@ _[Full list](https://github.com/ImprovedTube/YouTube/wiki/Features)_ - 5.) Click on `Load Temporary Add-on…` - 6.) Select the `manifest.json` file from unzipped folder - - - - From 424d609b14da9479f38db42795e474ca2ba75771 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 28 Mar 2023 02:46:29 +0200 Subject: [PATCH 0903/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index f35640d96..47b3e9b35 100644 --- a/.github/README.md +++ b/.github/README.md @@ -44,7 +44,7 @@

Translators                          🌎

✔️EN en_GB : -KorbinCode +KorbinCode
Proofreaders:___ (You?)
✔️CN(zh_CN) : niceRAM, From 0d2ce9aa8e5ab9addff49e905130dc65a05bfebb Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 28 Mar 2023 23:52:20 +0200 Subject: [PATCH 0904/1224] Update README.md --- .github/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/README.md b/.github/README.md index 47b3e9b35..b3edfc3e0 100644 --- a/.github/README.md +++ b/.github/README.md @@ -193,7 +193,7 @@ Today adding features can be easier & so motivating as there are 500 000 users. **W**hy arent there millions of users yet? We didn't write a guide or manual, let alone ads. This project can "fly much higher" through your word of mouth & eventually enable us to work on all wishes & immediate fixes around the clock🌱

-🎁Extensions & Projects

+🎁More Extensions & Projects [**unFreeze me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse) [**`History Manager`**] [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode) [**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent)
Research: [ Ultimate Regex (Search) & Replace](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] ([`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)) @@ -228,7 +228,7 @@ We might work on novel (new & unique)
projects at [github/**Wish-Factory**]
**0.1. [ ]** Tidy: [(Rest/Unsorted 'issues')](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+is%3Aopen+-label%3Abug+-label%3A%22Feature+Request%22+-label%3A%F0%9F%A7%A9Plan%20ready+-label%3A_+-label%3A%22not+Goo.+Chrome%22+sort%3Acreated-desc++-label%3A"Niche%2Frare+usecase%3F%2Ffun%3F"++-label%3Aunclear "Our github issues, which are not yet labled yet to appear in one of the ToDo-categories above") > Further reading: [***"Contributing without programming"***](https://github.com/ImprovedTube/YouTube-Extension/discussions/753) & [*"Our CSS, JavaScript, json"*](https://github.com/ImprovedTube/ImprovedTube/pull/371#issuecomment-669725163) ( ***outdated**)* (*Newcomers are [we](https://github.com/ImprovedTube/ImprovedTube/issues/387#issuecomment-664980078)lcome tho! We review all edits & love to collaborate*) -
+

📟 "ImprovedTube Ticker 2022 / Pinned Issues" ###### ❔[**ImprovedTube controls** in, under or around the video player or cursor](https://github.com/code4charity/YouTube-Extension/issues/1445).
❔[**Meaningful/Most similar extensions**? Social-Fixer, Youtube Enhancer, Simplify, ...](https://github.com/code4charity/YouTube-Extension/issues/1016).
📟 We are focused on updates, bugs & UX but please keep up your wishes for Features!
📟 Enjoy **our projects: global** [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl), to tweak CSS everywhere + Theme engine in the making, ...
📟 **2021:** Firefox, Edge, Opera, Whale added (please try&rate) @@ -285,8 +285,8 @@ _[Full list](https://github.com/ImprovedTube/YouTube/wiki/Features)_ - Video Repeat-, screenshot-, rotate-buttons - Customizable hotkeys / shortcuts -
-🔧 Install from source +


+🔧 (Installing from source) 1.) **Download & extract the [[latest🧪version]](https://github.com/code4charity/YouTube-Extension/archive/refs/heads/master.zip) or [[release]](https://github.com/code-for-charity/YouTube-Extension/releases)** - **Safari**: From dc2fe683028363c65e4f343de11c9178165d32e7 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Wed, 29 Mar 2023 14:30:13 +0200 Subject: [PATCH 0905/1224] Update README.md --- .github/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/README.md b/.github/README.md index b3edfc3e0..6b409dceb 100644 --- a/.github/README.md +++ b/.github/README.md @@ -5,9 +5,9 @@
Report a bug · -Request feature · +Wish a feature · Contribute · -Donate · [🧪](https://github.com/code-for-charity/ImprovedTube-for-YouTube/archive/refs/heads/master.zip "Latest.zip")
+Donate · [Test🧪](https://github.com/code-for-charity/ImprovedTube-for-YouTube/archive/refs/heads/master.zip "Latest.zip")

ImprovedTube

Powerful but lightweight extension to enrich your video experience & enable your content selection.

From 739f9ed0b20e94920a4f28d5baede69bfe0c6b1d Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 30 Mar 2023 21:01:34 +0200 Subject: [PATCH 0906/1224] Update README.md --- .github/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/README.md b/.github/README.md index 6b409dceb..fd167e266 100644 --- a/.github/README.md +++ b/.github/README.md @@ -32,14 +32,14 @@ - Run on m.youtube.com (grey-out some) - Ask Samsung Browser to list us. -

Critiques

-recommended by firefox (~ Top100) -
+

Critiques

+recommended by firefox (~ Top100) -
'Might be the best YouTube Extension Ever' -
'enhances YouTube in meaningful ways' -
'Strong Add-on, full control. Yet clear & easy' -
-**Thanks** ♡ to our contributors, Dodieboy, +Thanks ♡ to our contributors, Dodieboy,
translators (+ wiki-authors? +donators?):bowtie:

Translators                          🌎

✔️EN From 76c91d43875737de1e2f6802b102b3ee681d7ff5 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 1 Apr 2023 20:30:49 +0200 Subject: [PATCH 0907/1224] 1. need 1ms since JS executes faster than firefox storage 2. better UX --- menu/skeleton-parts/appearance.js | 8 ++++---- menu/skeleton-parts/player.js | 32 ++++++++++++++++++++----------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/menu/skeleton-parts/appearance.js b/menu/skeleton-parts/appearance.js index e233fd6e2..0897d84da 100644 --- a/menu/skeleton-parts/appearance.js +++ b/menu/skeleton-parts/appearance.js @@ -811,13 +811,13 @@ extension.skeleton.main.layers.section.appearance.on.click.sidebar = { text: 'Transcript', value: false, storage: 'transcript', - on: { click: function () { + on: { click: function () { setTimeout(() => { if (satus.storage.get('transcript')) { if (satus.storage.get('no_page_margin')) { this.nextSibling.click(); } } - } + }, "250"); } } }, no_page_margin: { @@ -825,13 +825,13 @@ extension.skeleton.main.layers.section.appearance.on.click.sidebar = { text: 'To the side! (No page margin)', value: false, on: { - click: function () { + click: function () { setTimeout(() => { if (satus.storage.get('no_page_margin')) { if (satus.storage.get('transcript')) { this.previousSibling.click(); } } - } + }, "250"); } } }, sidebar_left: { diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index 01bbdc0d2..3126f3668 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -57,28 +57,43 @@ extension.skeleton.main.layers.section.player.on.click = { component: 'switch', text: 'autopauseWhenSwitchingTabs', storage: 'player_autopause_when_switching_tabs', - on: { click: function () { + on: { click: function () { setTimeout(() => { + if (satus.storage.get('player_autopause_when_switching_tabs')) { if (satus.storage.get('only_one_player_instance_playing')) { this.nextSibling.click(); } } - } + }, "250"); } } }, only_one_player_instance_playing: { component: 'switch', text: 'onlyOnePlayerInstancePlaying', on: { - click: function () { + click: function () { setTimeout(() => { if (satus.storage.get('only_one_player_instance_playing')) { if (satus.storage.get('player_autopause_when_switching_tabs')) { this.previousSibling.click(); } } - } + }, "250"); } } - }, + }, + player_autoPip: { + component: 'switch', + text: 'autoPip', + value: false, + on: { + click: function () { setTimeout(() => { + if (satus.storage.get('player_autoPip')) { + if (satus.storage.get('player_autopause_when_switching_tabs')) { + this.previousSibling.click(); + } + } + }, "250"); } + } + }, ads: { text: 'ads', component: 'select', @@ -154,11 +169,6 @@ extension.skeleton.main.layers.section.player.on.click = { text: 'loudnessNormalization', value: true }, - player_autoPip: { - component: 'switch', - text: 'autoPip', - value: false - }, player_forced_playback_speed: { component: 'switch', text: 'forcedPlaybackSpeed', @@ -175,7 +185,7 @@ extension.skeleton.main.layers.section.player.on.click = { textarea: true, value: 1, min: .1, - max: 8, + max: 4, step: .05 }, From de0e6e75e14d09ae3306ca4e8009de0a8ea22c55 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 1 Apr 2023 20:38:07 +0200 Subject: [PATCH 0908/1224] tweaks --- .../appearance/sidebar/sidebar.css | 12 +++++---- menu/index.html | 2 +- menu/styles/appearance.css | 27 +++++++++---------- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css b/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css index 1bea54ba7..8ca62713f 100644 --- a/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css +++ b/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css @@ -32,19 +32,21 @@ div#secondary #playlist { html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'], html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'] ytd-engagement-panel-section-list-renderer #content { max-height: 77vh !important; } +html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'] #title +{ opacity: 0.3; } html[data-page-type=video][it-transcript='true'][it-sidebar-left='transcript'] ytd-watch-flexy:not([fullscreen]) #columns - { display:flex !important; max-width:95% !important; } + { display:flex !important; max-width:98% !important; } html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'], html[data-page-type=video][it-transcript='true'] *[target-id*='transcript']:not([it-sidebar-left='true']) ytd-engagement-panel-section-list-renderer #content { -min-width: max(450px,15vw) !important; max-width: min(24vw,750px) !important; } +min-width: max(450px,15vw) !important; max-width: min(24vw,750px) !important; transform: translateX(-18px);} html[data-page-type=video][it-transcript='true']:not([it-player-size='1080p']):not([it-player-size='1440p']):not([it-player-size='2160p']):not([it-player-size='custom']):not([it-player-size='max_width']) ytd-watch-flexy:not([fullscreen]) #player{ -max-width: 1280px !important; right: -18px; align:right; content-align: right !important} +max-width: 1280px !important; } @media screen and (min-width: 1599px) { html[data-page-type=video][it-transcript='true'] ytd-watch-flexy:not([fullscreen]) #secondary -{ display:flex !important; max-width: 95% !important; } +{ display:flex !important; max-width: 98% !important; } html[data-page-type=video][it-transcript='true'] ytd-browse > ytd-two-column-browse-results-renderer { - object-fit: contain !important; max-width: 95% !important; margin: -5px; } + object-fit: contain !important; max-width: 98% !important; margin: -5px; } html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) #secondary { direction: rtl; float: right;max-width: 600px !important; display:flex !important; object-fit: contain !important;} html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) td-engagement-panel-section-list-renderer diff --git a/menu/index.html b/menu/index.html index 2ae4bb889..cee91e542 100644 --- a/menu/index.html +++ b/menu/index.html @@ -31,8 +31,8 @@ - + diff --git a/menu/styles/appearance.css b/menu/styles/appearance.css index 49d30d9ac..770ccba74 100644 --- a/menu/styles/appearance.css +++ b/menu/styles/appearance.css @@ -46,9 +46,9 @@ .satus-section--appearance .satus-button--header { top: 16px; left: 16px; - + font-size: 13px; width: calc(100% - 32px); - height: 40px; + height: 33px; min-height: auto; } @@ -57,13 +57,12 @@ } .satus-section--appearance .satus-button--player { - top: 64px; + top: 57px; left: 16px; - width: calc(70% - 32px); height: 96px; min-height: auto; - + font-size: 17px; color: #eee; border-color: #333; background-color: #444; @@ -80,36 +79,36 @@ } .satus-section--appearance .satus-button--details { - top: 168px; + top: 161px; left: 16px; - + font-size: 16.5px; width: calc(70% - 32px); height: 56px; min-height: auto; } .satus-section--appearance .satus-button--comments { - top: 232px; + top: 225px; left: 16px; width: calc(70% - 32px); - height: 80px; + height: 57px; min-height: auto; } .satus-section--appearance .satus-button--footer { - top: 320px; + top: 290px; left: 16px; - + font-size: 7px; width: calc(70% - 32px); - height: 32px; min-height: auto; + height: 21px; + opacity: 0.4; } .satus-section--appearance .satus-button--sidebar { - top: 64px; + top: 57px; left: calc(70% - 8px); - width: calc(30% - 8px); height: 160px; } From 73fcaf5b2a5a72b2945c217183224c3b6552de23 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 1 Apr 2023 21:37:46 +0200 Subject: [PATCH 0909/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index fd167e266..16eda35c9 100644 --- a/.github/README.md +++ b/.github/README.md @@ -7,7 +7,7 @@ Report a bug · Wish a feature · Contribute · -Donate · [Test🧪](https://github.com/code-for-charity/ImprovedTube-for-YouTube/archive/refs/heads/master.zip "Latest.zip")
+Donate · [Test🧪](https://github.com/code-for-charity/ImprovedTube-for-YouTube/archive/refs/heads/master.zip "Latest.zip")

ImprovedTube

Powerful but lightweight extension to enrich your video experience & enable your content selection.

From fe95808397427940e4600f9d97a59502a64547ce Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 2 Apr 2023 05:20:31 +0200 Subject: [PATCH 0910/1224] #1331 #1572 #1553 @JuniorGenius @MohamedLebda @Matr0x finally --- js&css/web-accessible/functions.js | 2 +- js&css/web-accessible/init.js | 23 --------- .../web-accessible/www.youtube.com/player.js | 48 ++++++++++++------- 3 files changed, 32 insertions(+), 41 deletions(-) diff --git a/js&css/web-accessible/functions.js b/js&css/web-accessible/functions.js index 06ee72d23..ad3a6dfd2 100644 --- a/js&css/web-accessible/functions.js +++ b/js&css/web-accessible/functions.js @@ -359,8 +359,8 @@ ImprovedTube.playerOnPause = function (event) { time: ImprovedTube.played_time }); } - ImprovedTube.played_time = 0; + ImprovedTube.playerControls(); }; ImprovedTube.playerOnEnded = function (event) { diff --git a/js&css/web-accessible/init.js b/js&css/web-accessible/init.js index 25a0b3d53..9386fce27 100644 --- a/js&css/web-accessible/init.js +++ b/js&css/web-accessible/init.js @@ -101,26 +101,3 @@ window.addEventListener('load', function () { ImprovedTube.improvedtubeYoutubeIcon(); }); - -ImprovedTube.whenPaused=()=>{ - ImprovedTube.elements.player.parentNode.addEventListener('mouseenter', function () { - ImprovedTube.playerControls(true); - }); - ImprovedTube.elements.player.parentNode.addEventListener('click', function () { - ImprovedTube.playerControls(true); - }); - ImprovedTube.elements.player.parentNode.onmousemove = (function() { - let onmousestop = function() { - ImprovedTube.playerControls(false); - }, thread; - - return function() { - ImprovedTube.playerControls(true); - clearTimeout(thread); - thread = setTimeout(onmousestop, 1000); - }; - })(); - ImprovedTube.elements.player.parentNode.addEventListener('mouseleave', function () { - ImprovedTube.playerControls(false); - }); -} \ No newline at end of file diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index 9deb5c73c..64e7844dc 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -1158,22 +1158,36 @@ ImprovedTube.playerSDR = function () { 4.4.19 Hide controls ------------------------------------------------------------------------------*/ -ImprovedTube.playerControls = function (mouseIn=false) { - var player = this.elements.player; - - if (player) { - if (this.storage.player_hide_controls === 'always') { +ImprovedTube.playerControls = function (pause=false) { + var player = this.elements.player; if (player) { + let hide = this.storage.player_hide_controls; + if (hide === 'always') { player.hideControls(); - } else if(this.storage.player_hide_controls === 'off') { + } else if(hide === 'off') { player.showControls(); - } else if(this.storage.player_hide_controls === 'when_paused') { - if(this.elements.video.paused) { - if(mouseIn) { - player.showControls(); - } else { - player.hideControls(); - } - } - } - } -}; \ No newline at end of file + } else if(hide === 'when_paused') { + if(this.elements.video.paused){ + player.hideControls( ); + + ImprovedTube.elements.player.parentNode.addEventListener('mouseenter', function () { + player.showControls();}); + ImprovedTube.elements.player.parentNode.addEventListener('mouseleave', function () { + player.hideControls( );}); + + + ImprovedTube.elements.player.parentNode.onmousemove = (function() { + let onmousestop = function() { + player.hideControls( ); + }, thread; + + return function() { + player.showControls(); + clearTimeout(thread); + thread = setTimeout(onmousestop, 1000); + }; + })(); + }} else { player.showControls(); } +} +}; + + From 12500a1532bfee0b36e29a6d7e9a65ae364d081d Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 2 Apr 2023 06:41:35 +0200 Subject: [PATCH 0911/1224] polish --- js&css/satus.js | 2 +- .../www.youtube.com/shortcuts.js | 34 +++++++++++-------- menu/index.html | 2 +- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/js&css/satus.js b/js&css/satus.js index cd3954a78..2a24ab883 100644 --- a/js&css/satus.js +++ b/js&css/satus.js @@ -71,7 +71,7 @@ satus.append = function(child, parent) { # ATTR --------------------------------------------------------------*/ -satus.attr = function(element, attributes) { +satus.setAttributes = satus.attr = function(element, attributes) { if (attributes) { for (var name in attributes) { var value = attributes[name]; diff --git a/js&css/web-accessible/www.youtube.com/shortcuts.js b/js&css/web-accessible/www.youtube.com/shortcuts.js index d10112f5c..5c7388b3c 100644 --- a/js&css/web-accessible/www.youtube.com/shortcuts.js +++ b/js&css/web-accessible/www.youtube.com/shortcuts.js @@ -239,6 +239,7 @@ ImprovedTube.shortcutPictureInPicture = function () { } }; + /*------------------------------------------------------------------------------ 4.7.3 TOGGLE CONTROLS ------------------------------------------------------------------------------*/ @@ -579,19 +580,20 @@ ImprovedTube.shortcutActivateCaptions = function () { player.toggleSubtitlesOn(); } }; + /*------Chapters------*/ ImprovedTube.shortcutChapters = function () { try{var height = document.querySelector('*[target-id*=chapters]').clientHeight;}catch{} - if (height) {try{document.querySelector('*[target-id*=chapters] #visibility-button button').click();}catch{}} - else { try{document.querySelector('*[target-id*=chapters]').removeAttribute('visibility');}catch{} } + if (height) {try{document.querySelector('*[target-id*=chapters] #visibility-button button').click(); console.log("chapters shortcut close")} catch{}} + else { try{document.querySelector('*[target-id*=chapters]').removeAttribute('visibility'); console.log("chapters shortcut open")} catch{} } }; /*------Transcript------*/ ImprovedTube.shortcutTranscript = function () { try{var height = document.querySelector('*[target-id*=transcript]').clientHeight;}catch{} - if (height) {try{document.querySelector('*[target-id*=transcript] #visibility-button button').click();}catch{}} - else { try{document.querySelector('*[target-id*=transcript]').removeAttribute('visibility');}catch{} } + if (height) {try{document.querySelector('*[target-id*=transcript] #visibility-button button').click(); console.log("transcriptshortcut close")} catch{}} + else { try{document.querySelector('*[target-id*=transcript]').removeAttribute('visibility'); console.log("transcriptshortcut open")} catch{} } }; /*------------------------------------------------------------------------------ @@ -620,17 +622,19 @@ ImprovedTube.shortcutDislike = function () { /*------Report------*/ ImprovedTube.shortcutReport = function () { -try{document.querySelector('svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click();} -catch(e){console.log(e); -setTimeout(function(){try{document.querySelector('svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click();} -catch{}},800)}; -setTimeout(function(){try{document.querySelector('tp-yt-iron-dropdown').style.setProperty('opacity', '0.1', 'important');document.querySelector('tp-yt-iron-dropdown svg path[d^="M13.18,4l0.24,1.2L13.58,6h0.82H19v7h-5.18l-0"]').closest("tp-yt-paper-item").click();} - catch{setTimeout(function() - {try{document.querySelector('tp-yt-iron-dropdown').style.setProperty('opacity', '0.1', 'important');document.querySelector('tp-yt-iron-dropdown svg path[d^="M13.18,4l0.24,1.2L13.58,6h0.82H19v7h-5.18l-0"]').closest("tp-yt-paper-item").click();} - catch{document.querySelector('svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click();} -},500); -} -},7); +try{document.querySelectorAll("tp-yt-iron-dropdown").forEach(el => el.style.opacity = 0); + document.querySelector('svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click();document.querySelectorAll("tp-yt-iron-dropdown").forEach(el => el.style.opacity = 0)} + catch{console.log("'...' failed"); setTimeout(function(){try{document.querySelector('svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click();document.querySelectorAll("tp-yt-iron-dropdown").forEach(el => el.style.opacity = 0)} +catch{console.log("'...' failed2")}},100) } + +setTimeout(function(){try{document.querySelectorAll("tp-yt-iron-dropdown").forEach(el => el.style.opacity = 0); document.querySelector('tp-yt-iron-dropdown svg path[d^="M13.18,4l0.24,1.2L13.58,6h0.82H19v7h-5.18l-0"]').closest("tp-yt-paper-item").click();} + catch{console.log("report failed");setTimeout(function() {try{document.querySelector('tp-yt-iron-dropdown svg path[d^="M13.18,4l0.24,1.2L13.58,6h0.82H19v7h-5.18l-0"]').closest("tp-yt-paper-item").click();} + catch{console.log("report failed2");document.querySelector('svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]').closest("button").click();}},800); + } +},200); + +setTimeout(function(){try{document.querySelectorAll("tp-yt-iron-dropdown").forEach(el => el.style.opacity = 1)}catch{console.log("dropdown visible failed"); + setTimeout(function(){try{document.querySelectorAll("tp-yt-iron-dropdown").forEach(el => el.style.opacity = 1)}catch{console.log("dropdown visible failed2");}},1700)}},700) } diff --git a/menu/index.html b/menu/index.html index cee91e542..2ae4bb889 100644 --- a/menu/index.html +++ b/menu/index.html @@ -31,8 +31,8 @@ - + From f3cee7f3df1b53b2495bb215fda9fdaa1425d299 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 2 Apr 2023 07:11:20 +0200 Subject: [PATCH 0912/1224] fix (custom player size) --- js&css/web-accessible/functions.js | 2 +- .../web-accessible/www.youtube.com/appearance.js | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/js&css/web-accessible/functions.js b/js&css/web-accessible/functions.js index ad3a6dfd2..efcd2c059 100644 --- a/js&css/web-accessible/functions.js +++ b/js&css/web-accessible/functions.js @@ -130,7 +130,6 @@ ImprovedTube.ytElementsHandler = function (node) { ImprovedTube.elements.player_left_controls = node.querySelector('.ytp-left-controls'); ImprovedTube.elements.player_thumbnail = node.querySelector('.ytp-cued-thumbnail-overlay-image'); ImprovedTube.elements.player_subtitles_button = node.querySelector('.ytp-subtitles-button'); - ImprovedTube.playerSize(); new MutationObserver(function (mutationList) { @@ -264,6 +263,7 @@ ImprovedTube.videoPageUpdate = function () { ImprovedTube.playerRotateButton(); ImprovedTube.playerPopupButton(); ImprovedTube.playerControls(); + ImprovedTube.playerSize(); } }; diff --git a/js&css/web-accessible/www.youtube.com/appearance.js b/js&css/web-accessible/www.youtube.com/appearance.js index edda34eb2..c106968c2 100644 --- a/js&css/web-accessible/www.youtube.com/appearance.js +++ b/js&css/web-accessible/www.youtube.com/appearance.js @@ -11,21 +11,19 @@ ------------------------------------------------------------------------------*/ ImprovedTube.playerSize = function () { - if (this.storage.player_size === "custom") { - console.log("yes"); + if (this.storage.player_size === "custom") { var width = Number(this.storage.custom_player_size_width) || 1280, height = Number(this.storage.custom_player_size_height) || 720, style = this.elements.player_size_style || document.createElement("style"); - - style.textContent = ':root {'; + + style.textContent = ':root {'; style.textContent += "--it-player-width:" + width + "px;"; style.textContent += "--it-player-height:" + height + "px;"; style.textContent += "}"; - + document.body.appendChild(style); - - window.dispatchEvent(new Event("resize")); - } + window.dispatchEvent(new Event('resize')); + } }; /*------------------------------------------------------------------------------ From e8bb3f8e3df33285e8b3ab46b84c0cd675d87022 Mon Sep 17 00:00:00 2001 From: PraneshBK <44346322+PraneshBalasubramaniam@users.noreply.github.com> Date: Sun, 2 Apr 2023 12:05:29 +0530 Subject: [PATCH 0913/1224] #1648 solved issue the search bar hover not open when in focus --- js&css/extension/www.youtube.com/appearance/header/header.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/js&css/extension/www.youtube.com/appearance/header/header.css b/js&css/extension/www.youtube.com/appearance/header/header.css index b794a6ea3..7ed15d3c8 100644 --- a/js&css/extension/www.youtube.com/appearance/header/header.css +++ b/js&css/extension/www.youtube.com/appearance/header/header.css @@ -65,12 +65,16 @@ html[it-header-position=hover_on_video_page][data-page-type='video']:not([it-imp } html[it-header-position=hover] #masthead-container:hover, +html[it-header-position=hover] #masthead-container:focus-within, html[it-header-position=hover][it-search-focus=true] #masthead-container, html[it-header-position=hover_on_video_page][data-page-type='video'] #masthead-container:hover, +html[it-header-position=hover_on_video_page][data-page-type='video'] #masthead-container:focus-within, html[it-header-position=hover_on_video_page][data-page-type='video'][it-search-focus=true] #masthead-container, html[it-header-position=hover] #masthead-container:hover #background, +html[it-header-position=hover] #masthead-container:focus-within #background, html[it-header-position=hover][it-search-focus=true] #masthead-container #background, html[it-header-position=hover_on_video_page][data-page-type='video'] #masthead-container:hover #background, +html[it-header-position=hover_on_video_page][data-page-type='video'] #masthead-container:focus-within #background, html[it-header-position=hover_on_video_page][data-page-type='video'][it-search-focus=true] #masthead-container #background { transform: translateY(0%); opacity: 1 !important; From a6e39061ff1b7410e56f75912de0cd3704f25b0d Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 2 Apr 2023 10:47:30 +0200 Subject: [PATCH 0914/1224] "js2css" #1650 #1536 https://github.com/code-charity/youtube/commit/22d68abb5a36318d7370abc8ba5b2fe382669b9c --- .../www.youtube.com/appearance/header/header.css | 4 +++- .../web-accessible/www.youtube.com/shortcuts.js | 15 --------------- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/js&css/extension/www.youtube.com/appearance/header/header.css b/js&css/extension/www.youtube.com/appearance/header/header.css index 7ed15d3c8..bb83597aa 100644 --- a/js&css/extension/www.youtube.com/appearance/header/header.css +++ b/js&css/extension/www.youtube.com/appearance/header/header.css @@ -8,7 +8,7 @@ # Hide voice search button --------------------------------------------------------------*/ -html[it-header-transparent=true] ytd-masthead { background-color: rgba(255, 255, 255, 0.2) !important;} +html[it-header-transparent=true] ytd-masthead { background-color: rgba(230, 230, 230, 0.1) !important;} /*-------------------------------------------------------------- # POSITION @@ -64,6 +64,8 @@ html[it-header-position=hover_on_video_page][data-page-type='video']:not([it-imp opacity: 0; } +html[it-header-position=hidden] #masthead-container:not([it-search-focus=true]):focus-within, +html[it-header-position=hidden_on_video_page][data-page-type=video] #masthead-container:not([it-search-focus=true]):focus-within, html[it-header-position=hover] #masthead-container:hover, html[it-header-position=hover] #masthead-container:focus-within, html[it-header-position=hover][it-search-focus=true] #masthead-container, diff --git a/js&css/web-accessible/www.youtube.com/shortcuts.js b/js&css/web-accessible/www.youtube.com/shortcuts.js index 5c7388b3c..93bd6b9e2 100644 --- a/js&css/web-accessible/www.youtube.com/shortcuts.js +++ b/js&css/web-accessible/www.youtube.com/shortcuts.js @@ -540,21 +540,6 @@ ImprovedTube.shortcutGoToSearchBox = function () { var search = document.querySelector('input#search'); if (search) { search.focus(); - //SHOW HEADER ON "SEARCH" - var headerPos = document.documentElement.getAttribute('it-header-position'); - if (headerPos){if (headerPos !== 'normal' && headerPos !== 'static') { - document.documentElement.setAttribute('it-header-position-original', headerPos); - - - search.addEventListener('focusin', function (e) { - document.documentElement.setAttribute('it-header-position', 'normal'); - }); - - search.addEventListener('focusout', function (e) { - var origHeaderPos = document.documentElement.getAttribute('it-header-position-original'); - document.documentElement.setAttribute('it-header-position', origHeaderPos); - }); - }} } }; From 9b612c4f4547299a100b6270c8b9b14ea600be3a Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 3 Apr 2023 23:03:01 +0200 Subject: [PATCH 0915/1224] fix --- js&css/web-accessible/core.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/js&css/web-accessible/core.js b/js&css/web-accessible/core.js index 0c52ff362..85a102e18 100644 --- a/js&css/web-accessible/core.js +++ b/js&css/web-accessible/core.js @@ -121,7 +121,8 @@ document.addEventListener('it-message-from-extension', function () { if (message.action === 'storage-loaded') { ImprovedTube.storage = message.storage; - ImprovedTube.init(); +// FEEDBACK WHEN THE USER CHANGED A SETTING + ImprovedTube.init(); } else if (message.action === 'storage-changed') { var camelized_key = message.camelizedKey; @@ -150,7 +151,13 @@ document.addEventListener('it-message-from-extension', function () { if (ImprovedTube.storage.chapters === true){try{document.querySelector('*[target-id*=chapters]').removeAttribute('visibility');}catch{} } if (ImprovedTube.storage.chapters === false){try{document.querySelector('*[target-id*=chapters] #visibility-button button').click();}catch{}} } - + else if (camelized_key === 'commentsSidebar') { + if(ImprovedTube.storage.comments_sidebar === false) + {document.querySelector("#below").appendChild(document.querySelector("#comments")); + document.querySelector("#secondary").appendChild(document.querySelector("#related")); } + else{ImprovedTube.commentsSidebar();} + } + if (ImprovedTube[camelized_key]) { try{ImprovedTube[camelized_key]()}catch{}; } From 746a27bd5a552ffa45aef63cec1285f6c5637a35 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 3 Apr 2023 23:32:44 +0200 Subject: [PATCH 0916/1224] little fixes & tidy --- .../appearance/comments/comments.css | 12 +- .../appearance/sidebar/sidebar.css | 34 ++- .../www.youtube.com/general/general.css | 41 --- .../www.youtube.com/appearance.js | 248 ++++++++++++------ .../www.youtube.com/settings.js | 96 ------- menu/skeleton-parts/appearance.js | 2 +- menu/skeleton-parts/settings.js | 51 +++- 7 files changed, 248 insertions(+), 236 deletions(-) diff --git a/js&css/extension/www.youtube.com/appearance/comments/comments.css b/js&css/extension/www.youtube.com/appearance/comments/comments.css index efd84a5e0..116d14d18 100644 --- a/js&css/extension/www.youtube.com/appearance/comments/comments.css +++ b/js&css/extension/www.youtube.com/appearance/comments/comments.css @@ -10,15 +10,13 @@ --------------------------------------------------------------*/ @media screen and (min-width: 1599px) { -html[data-page-type=video][it-comments-sidebar-position='true'] #secondary {top:0px !important; margin: -10px !important; } -html[data-page-type=video][it-comments-sidebar-position='true'] #primary {top:0px !important; margin-left: 0px !important; } -html[data-page-type=video][it-comments-sidebar-position='true'] #comments { max-width: min(1200px, 20vw) !important; } +html[data-page-type=video][it-comments-sidebar='true'] #players {top:0px !important; margin-left: -20px !important; } +html[data-page-type=video][it-comments-sidebar='true'] #comments { max-width: min(900px, 18vw) !important; } +html[data-page-type=video][it-comments-sidebar='true']:not([it-sidebar-left='true']) #secondary {top:0px !important; margin-right: -18px !important; } -html[data-page-type=video][it-comments-sidebar-position='true'] ytd-watch-flexy:not([fullscreen]) #columns, -html[data-page-type=video][it-comments-sidebar-position='true'] ytd-watch-flexy:not([fullscreen]) #primary{ -max-width: 99.5% !important; } -html[data-page-type=video][it-comments-sidebar-position='true']:not([it-player-size='1080p']):not([it-player-size='1440p']):not([it-player-size='2160p']):not([it-player-size='custom']):not([it-player-size='max_width']) ytd-watch-flexy:not([fullscreen]) #primary { + +html[data-page-type=video][it-comments-sidebar='true']:not([it-player-size='1080p']):not([it-player-size='1440p']):not([it-player-size='2160p']):not([it-player-size='custom']):not([it-player-size='max_width']) ytd-watch-flexy:not([fullscreen]) #primary { min-width: min(52%, 1280px) !important; max-width: 1280px !important; } } diff --git a/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css b/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css index 8ca62713f..a0d043b61 100644 --- a/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css +++ b/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css @@ -99,18 +99,20 @@ html[it-related-videos='collapsed'] #related > ytd-watch-next-secondary-results- /*-------------------------------------------------------------- # NO PAGE MARGIN --------------------------------------------------------------*/ -html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #columns.ytd-watch-flexy, -html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #primary.ytd-watch-flexy { - max-width: 99% !important; margin: 1px !important; } + +html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #columns.ytd-watch-flexy, +html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #primary.ytd-watch-flexy, +html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #secondary.ytd-watch-flexy { + max-width: 100% !important; } +html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #below { + margin-left: calc(4vh + 3vw - 40px) !important;} @media screen and (max-width: 2300px) and (min-width: 1250px) { - html[data-page-type=video][it-no-page-margin='true'] ytd-browse > ytd-two-column-browse-results-renderer { - width: auto !important; - max-width: auto !important; overflow-x: hidden; } + html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #secondary.ytd-watch-flexy { margin-right: calc (-12px - 0.4vw - 0.4vh) !important;} html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #below { - margin-left: max(18px, calc(21vw - 230px)) !important; + margin-left: max(18px, calc(19vw - 230px)) !important; margin-right:max(18px, calc(13vw - 130px)) !important; max-width: 1280px !important; } } @@ -126,17 +128,25 @@ html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullsc margin-left: 10px !important;} } +html[data-page-type=video][it-no-page-margin='true'] ytd-browse > ytd-two-column-browse-results-renderer { + width: auto !important; + max-width: auto !important; } + + + + + /*-------------------------------------------------------------- # MOVE SIDEBAR LEFT --------------------------------------------------------------*/ html[it-sidebar-left='true'] #columns>#primary, -html[it-sidebar-left='true'] #head>#upnext -{ - order: 7 !important; -} +html[it-sidebar-left='true'] #head>#upnext{ + order: 5 !important;} +html[it-sidebar-left='true'][it-comments-sidebar='true'] #comments{order: 6 !important;} + -html[it-sidebar-left='true'] #columns>#secondary {margin-left: calc(0.5vw + 4px); margin-right:0.2vw !important;} +html[it-sidebar-left='true'] #columns>#secondary>#related {margin-left: calc(0.5vw + 4px); margin-right:1vw !important;} /*-------------------------------------------------------------- # MOVE THUMBNAILS RIGHT diff --git a/js&css/extension/www.youtube.com/general/general.css b/js&css/extension/www.youtube.com/general/general.css index 295fabc4d..67ff6d1d2 100644 --- a/js&css/extension/www.youtube.com/general/general.css +++ b/js&css/extension/www.youtube.com/general/general.css @@ -179,47 +179,6 @@ html[it-scroll-to-top='true'] #it-scroll-to-top:hover { box-shadow: 0 1px 1px 0 #d60024, 0 1px 2px rgb(82, 0, 14, .32) !important; } -/*-------------------------------------------------------------- -# NO PAGE MARGIN ---------------------------------------------------------------*/ - -html[data-page-type=video][it-no-page-margin='true'] ytd-browse > ytd-two-column-browse-results-renderer { - width: auto !important; - max-width: auto !important; } - -html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #columns.ytd-watch-flexy, -html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #primary.ytd-watch-flexy { - max-width: 100% !important; margin: 2px !important; } - -html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #secondary.ytd-watch-flexy { - margin-right: -12px !important;} - -html[data-page-type=video][it-no-page-margin='true'] ytd-watch-flexy:not([fullscreen]) #below { - margin-left: calc(4vh + 3vw - 40px) !important;} - -html[data-page-type=video][it-player-size='max_width'] .ytp-fit-cover-video .html5-main-video { - object-fit: contain !important;} - -html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #player { - margin-top: -24px !important; object-fit: contain !important;} -html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #player-container-outer.ytd-watch-flexy { - max-width: 100% !important;} - -html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) #player-container-inner.ytd-watch-flexy { - padding-top: calc(var(--ytd-watch-flexy-max-player-height) + 45px) !important;} - -html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) .html5-video-container { - width: 100% !important; - height: 100% !important;} - -html[data-page-type=video][it-player-size='max_width'] ytd-watch-flexy:not([fullscreen]) video { - position: static !important; - top: 0 !important; - left: 0 !important; - width: 100% !important; - height: 100% !important; - justify-content: center !important} - /*-------------------------------------------------------------- # Popup Window Button --------------------------------------------------------------*/ diff --git a/js&css/web-accessible/www.youtube.com/appearance.js b/js&css/web-accessible/www.youtube.com/appearance.js index c106968c2..64fe70a1a 100644 --- a/js&css/web-accessible/www.youtube.com/appearance.js +++ b/js&css/web-accessible/www.youtube.com/appearance.js @@ -1,13 +1,11 @@ /*------------------------------------------------------------------------------ -4.2.0 APPEARANCE + APPEARANCE ------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------ -4.2.1 PLAYER + PLAYER ------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------ -4.2.1.1 PLAYER SIZE + PLAYER SIZE ------------------------------------------------------------------------------*/ ImprovedTube.playerSize = function () { @@ -20,14 +18,14 @@ ImprovedTube.playerSize = function () { style.textContent += "--it-player-width:" + width + "px;"; style.textContent += "--it-player-height:" + height + "px;"; style.textContent += "}"; - + document.body.appendChild(style); window.dispatchEvent(new Event('resize')); } }; /*------------------------------------------------------------------------------ -4.2.1.2 FORCED THEATER MODE + FORCED THEATER MODE ------------------------------------------------------------------------------*/ ImprovedTube.forcedTheaterMode = function () { @@ -45,7 +43,7 @@ ImprovedTube.forcedTheaterMode = function () { }; /*------------------------------------------------------------------------------ -4.2.1.3 HD THUMBNAIL + HD THUMBNAIL ------------------------------------------------------------------------------*/ ImprovedTube.playerHdThumbnail = function () { @@ -59,7 +57,7 @@ ImprovedTube.playerHdThumbnail = function () { }; /*------------------------------------------------------------------------------ -4.2.1.4 ALWAYS SHOW PROGRESS BAR + ALWAYS SHOW PROGRESS BAR ------------------------------------------------------------------------------*/ ImprovedTube.alwaysShowProgressBar = function () { @@ -110,7 +108,7 @@ ImprovedTube.alwaysShowProgressBar = function () { }; /*------------------------------------------------------------------------------ -4.2.1.5 VIDEO REMAINING DURATION + VIDEO REMAINING DURATION ------------------------------------------------------------------------------*/ ImprovedTube.formatSecond = function (rTime) { @@ -148,36 +146,36 @@ ImprovedTube.playerRemainingDuration = function () { }; /*------------------------------------------------------------------------------ -4.2.1.6 Comments position to sidebar + Comments Sidebar ------------------------------------------------------------------------------*/ -ImprovedTube.commentsSidebar=()=>{ if(ImprovedTube.storage.comments_sidebar){ - document.querySelector("#columns").appendChild(document.querySelector("#comments")); - - if(window.matchMedia("(max-width: 1598px)").matches) - {document.querySelector("#primary-inner").appendChild(document.querySelector("#secondary"));} - // console.log("secondary and its children have been appended to primary-inner") - -} else{document.querySelector("#below").appendChild(document.querySelector("#comments")); - document.querySelector("#columns").appendChild(document.querySelector("#secondary"));} +ImprovedTube.commentsSidebar = function() { if(ImprovedTube.storage.comments_sidebar === true){ + if(window.matchMedia("(min-width: 1599px)").matches) { + document.querySelector("#primary").insertAdjacentElement('afterend', document.querySelector("#comments"));} + if(window.matchMedia("(max-width: 1598px)").matches) { + document.querySelector("#related").insertAdjacentElement('beforebegin', document.querySelector("#comments")); + setTimeout(function () { + document.querySelector("#primary-inner").appendChild(document.querySelector("#related"));} + );} + } } /*------------------------------------------------------------------------------ -4.2.2 SIDEBAR + SIDEBAR ------------------------------------------------------------------------------*/ /*---------------------------------------------------------------- -# TRANSCRIPT + TRANSCRIPT --------------------------------------------------------------*/ ImprovedTube.transcript = function (el){ if (ImprovedTube.storage.transcript === true){ try{el.querySelector('*[target-id*=transcript]').removeAttribute('visibility');} catch{}}} /*---------------------------------------------------------------- -# CHAPTERS + CHAPTERS --------------------------------------------------------------*/ ImprovedTube.chapters = function (el){ if (ImprovedTube.storage.chapters === true){ try{node.querySelector('*[target-id*=chapters]').removeAttribute('visibility');} catch{}} } /*------------------------------------------------------------------------------ -4.2.2.1 LIVECHAT + LIVECHAT ------------------------------------------------------------------------------*/ let isCollapsed = false ImprovedTube.livechat = function () { @@ -195,11 +193,157 @@ ImprovedTube.livechat = function () { }; /*------------------------------------------------------------------------------ -4.2.3 DETAILS + DETAILS +------------------------------------------------------------------------------*/ +/*------------------------------------------------------------------------------ + PLAYER BUTTONS +------------------------------------------------------------------------------*/ + +ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { + if (window.self !== window.top) { + return false; + } + if (document.documentElement.dataset.pageType === 'video') { + + var section = document.querySelector('#subscribe-button'); + if (this.storage.description == "classic" || this.storage.description == "classic_expanded" || this.storage.description !== "classic_hidden" ) + {var section = document.querySelector('#flex.ytd-video-primary-info-renderer');} + + if (section && !document.querySelector('.improvedtube-player-button')) { + + + if (this.storage.below_player_loop !== false) { + var button = document.createElement('button'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + button.className = 'improvedtube-player-button'; + button.dataset.tooltip = 'Loop'; + + svg.style.opacity = '.5'; + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z'); + + button.onclick = function () { + var video = ImprovedTube.elements.video, + svg = this.children[0]; + + if (video.hasAttribute('loop')) { + video.removeAttribute('loop'); + + svg.style.opacity = '.5'; + } else if (!/ad-showing/.test(ImprovedTube.elements.player.className)) { + video.setAttribute('loop', ''); + + svg.style.opacity = '1'; + } + }; + + svg.appendChild(path); + button.appendChild(svg); + + section.insertAdjacentElement('afterend', button) + } + if (this.storage.below_player_pip !== false) { + var button = document.createElement('button'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + button.className = 'improvedtube-player-button'; + button.dataset.tooltip = 'Picture in picture'; + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M19 7h-8v6h8V7zm2-4H3C2 3 1 4 1 5v14c0 1 1 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 16H3V5h18v14z'); + + button.onclick = function () { + var video = document.querySelector('#movie_player video'); + + if (video) { + video.requestPictureInPicture(); + } + }; + + svg.appendChild(path); + button.appendChild(svg); + + section.insertAdjacentElement('afterend', button) + } + + if (this.storage.below_player_screenshot !== false) { + var button = document.createElement('button'), + svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + button.className = 'improvedtube-player-button'; + button.dataset.tooltip = 'Screenshot'; + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'); + + button.onclick = ImprovedTube.screenshot; + + svg.appendChild(path); + button.appendChild(svg); + + section.insertAdjacentElement('afterend', button) + } + } + } +}; + +/*------------------------------------------------------------------------------ + DESCRIPTION ------------------------------------------------------------------------------*/ +ImprovedTube.description = function (el) { + if (this.storage.description === "expanded" || this.storage.description === "classic_expanded" ) + if(el)try{el.click()}catch{setTimeout(function(){el.click();},1000);} + }; + /*------------------------------------------------------------------------------ -4.2.3.1 HOW LONG AGO THE VIDEO WAS UPLOADED + HIDE DETAIL BUTTON +------------------------------------------------------------------------------*/ + +ImprovedTube.hideDetailButton = function (el) { + if (el.length === 4) { + el[3].setAttribute("id", "Save-button"); + el[2].setAttribute("id", "Clip-button"); + el[1].setAttribute("id", "Thanks-button"); + } + else if (el.length === 3) { + el[2].setAttribute("id", "Save-button"); + el[1].setAttribute("id", "Clip-button"); + } +}; + +/*-------------------------------------------------------------- + DAY OF WEEK +--------------------------------------------------------------*/ + +ImprovedTube.dayOfWeek = function () { + var element = document.querySelector(".ytd-day-of-week"); + if (this.storage.day_of_week === true) { + var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; + setTimeout(function () { + var videoDate = document.querySelector("[itemprop=datePublished]").content; + var tempDate = new Date(videoDate); + if (!element) { + var label = document.createElement("span"); + label.textContent = " , " + days[tempDate.getDay() + 1]; + label.className = "ytd-day-of-week"; + document.querySelector("ytd-video-primary-info-renderer #info #info-strings yt-formatted-string").append(label); + } else { + element.textContent = days[tempDate.getDay() + 1] + ", "; + } + }, 25); + } else if (element) { + element.remove(); + } +}; + +/*------------------------------------------------------------------------------ + HOW LONG AGO THE VIDEO WAS UPLOADED ------------------------------------------------------------------------------*/ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { @@ -260,7 +404,7 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { }; /*------------------------------------------------------------------------------ -4.2.3.2 SHOW CHANNEL VIDEOS COUNT + SHOW CHANNEL VIDEOS COUNT ------------------------------------------------------------------------------*/ ImprovedTube.channelVideosCount = function () { @@ -310,53 +454,3 @@ ImprovedTube.channelVideosCount = function () { xhr.send(); } }; - -/*------------------------------------------------------------------------------ -4.2.3.3 DESCRIPTION -------------------------------------------------------------------------------*/ - -ImprovedTube.description = function (el) { - if (this.storage.description === "expanded" || this.storage.description === "classic_expanded" ) - if(el)try{el.click()}catch{setTimeout(function(){el.click();},1000);} - }; - -/*------------------------------------------------------------------------------ -4.2.3.4 HIDE DETAIL BUTTON -------------------------------------------------------------------------------*/ - -ImprovedTube.hideDetailButton = function (el) { - if (el.length === 4) { - el[3].setAttribute("id", "Save-button"); - el[2].setAttribute("id", "Clip-button"); - el[1].setAttribute("id", "Thanks-button"); - } - else if (el.length === 3) { - el[2].setAttribute("id", "Save-button"); - el[1].setAttribute("id", "Clip-button"); - } -}; - -/*-------------------------------------------------------------- -4.2.3.5 DAY OF WEEK ---------------------------------------------------------------*/ - -ImprovedTube.dayOfWeek = function () { - var element = document.querySelector(".ytd-day-of-week"); - if (this.storage.day_of_week === true) { - var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; - setTimeout(function () { - var videoDate = document.querySelector("[itemprop=datePublished]").content; - var tempDate = new Date(videoDate); - if (!element) { - var label = document.createElement("span"); - label.textContent = " , " + days[tempDate.getDay() + 1]; - label.className = "ytd-day-of-week"; - document.querySelector("ytd-video-primary-info-renderer #info #info-strings yt-formatted-string").append(label); - } else { - element.textContent = days[tempDate.getDay() + 1] + ", "; - } - }, 25); - } else if (element) { - element.remove(); - } -}; \ No newline at end of file diff --git a/js&css/web-accessible/www.youtube.com/settings.js b/js&css/web-accessible/www.youtube.com/settings.js index b764eb594..cba4831b7 100644 --- a/js&css/web-accessible/www.youtube.com/settings.js +++ b/js&css/web-accessible/www.youtube.com/settings.js @@ -150,102 +150,6 @@ ImprovedTube.improvedtubeYoutubeIcon = function () { } }; -/*------------------------------------------------------------------------------ -4.10.2 PLAYER BUTTONS -------------------------------------------------------------------------------*/ - -ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { - if (window.self !== window.top) { - return false; - } - if (document.documentElement.dataset.pageType === 'video') { - - var section = document.querySelector('#flex.ytd-video-primary-info-renderer'); - if (this.storage.description !== "classic" && this.storage.description !== "classic_expanded" && this.storage.description !== "classic_hidden" ) - {var section = document.querySelector('#subscribe-button');} - - if (section && !document.querySelector('.improvedtube-player-button')) { - - - if (this.storage.below_player_loop !== false) { - var button = document.createElement('button'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - button.className = 'improvedtube-player-button'; - button.dataset.tooltip = 'Loop'; - - svg.style.opacity = '.5'; - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z'); - - button.onclick = function () { - var video = ImprovedTube.elements.video, - svg = this.children[0]; - - if (video.hasAttribute('loop')) { - video.removeAttribute('loop'); - - svg.style.opacity = '.5'; - } else if (!/ad-showing/.test(ImprovedTube.elements.player.className)) { - video.setAttribute('loop', ''); - - svg.style.opacity = '1'; - } - }; - - svg.appendChild(path); - button.appendChild(svg); - - section.insertAdjacentElement('afterend', button) - } - if (this.storage.below_player_pip !== false) { - var button = document.createElement('button'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - button.className = 'improvedtube-player-button'; - button.dataset.tooltip = 'Picture in picture'; - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M19 7h-8v6h8V7zm2-4H3C2 3 1 4 1 5v14c0 1 1 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 16H3V5h18v14z'); - - button.onclick = function () { - var video = document.querySelector('#movie_player video'); - - if (video) { - video.requestPictureInPicture(); - } - }; - - svg.appendChild(path); - button.appendChild(svg); - - section.insertAdjacentElement('afterend', button) - } - - if (this.storage.below_player_screenshot !== false) { - var button = document.createElement('button'), - svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); - - button.className = 'improvedtube-player-button'; - button.dataset.tooltip = 'Screenshot'; - - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'); - - button.onclick = ImprovedTube.screenshot; - - svg.appendChild(path); - button.appendChild(svg); - - section.insertAdjacentElement('afterend', button) - } - } - } -}; /*----------------------------------------------------------------------------- diff --git a/menu/skeleton-parts/appearance.js b/menu/skeleton-parts/appearance.js index 0897d84da..16d09b45e 100644 --- a/menu/skeleton-parts/appearance.js +++ b/menu/skeleton-parts/appearance.js @@ -746,7 +746,7 @@ extension.skeleton.main.layers.section.appearance.on.click.comments = { }, ], }, - comments_sidebar_position: { + comments_sidebar: { component: "switch", text: "sidebar", }, diff --git a/menu/skeleton-parts/settings.js b/menu/skeleton-parts/settings.js index bf01d56ef..234fa702f 100644 --- a/menu/skeleton-parts/settings.js +++ b/menu/skeleton-parts/settings.js @@ -555,8 +555,55 @@ extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSecti reset: { component: 'section', variant: 'card', - - resetAllSettings: { + delete_youtube_cookies: { + component: 'button', + text: 'deleteYoutubeCookies', + + on: { + click: { + component: 'modal', + + message: { + component: 'span', + text: 'thisWillRemoveAllYouTubeCookies' + }, + section: { + component: 'section', + variant: 'actions', + + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.parentNode.parentNode.parentNode.close(); + } + } + }, + accept: { + component: 'button', + text: 'accept', + on: { + click: function () { + chrome.tabs.query({}, function (tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + action: 'delete-youtube-cookies' + }); + } + } + }); + + this.parentNode.parentNode.parentNode.close(); + } + } + } + } + } + } + }, + resetAllSettings: { component: 'button', text: 'resetAllSettings', on: { From 2428298816daa0170a7a0f4ca3f7b6b7f6023a6e Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 4 Apr 2023 00:02:21 +0200 Subject: [PATCH 0917/1224] #1544 #1652 undoing 402d705ad6a1ff5df11b293d43010434f661289a @dodieboy --- js&css/web-accessible/init.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/js&css/web-accessible/init.js b/js&css/web-accessible/init.js index 9386fce27..1de110d36 100644 --- a/js&css/web-accessible/init.js +++ b/js&css/web-accessible/init.js @@ -41,8 +41,10 @@ new MutationObserver(function (mutationList) { }); ImprovedTube.init = function () { - ImprovedTube.pageType(); - + + window.addEventListener('yt-page-data-updated', function () { + ImprovedTube.pageType(); + }); var yt_player_updated = function () { document.dispatchEvent(new CustomEvent('improvedtube-player-loaded')); @@ -60,7 +62,11 @@ ImprovedTube.init = function () { this.onkeydown(); this.onmousedown(); this.youtubeLanguage(); - + + if (ImprovedTube.elements.player && ImprovedTube.elements.player.setPlaybackRate) { + ImprovedTube.videoPageUpdate(); + ImprovedTube.initPlayer(); + } if (window.matchMedia) { document.documentElement.dataset.systemColorScheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; From 238ff1c1c67af8a48ee855e2838477a56b3a0705 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 4 Apr 2023 01:20:25 +0200 Subject: [PATCH 0918/1224] Revert "#1544 #1652 undoing 402d705ad6a1ff5df11b293d43010434f661289a @dodieboy" This reverts commit 2428298816daa0170a7a0f4ca3f7b6b7f6023a6e. --- js&css/web-accessible/init.js | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/js&css/web-accessible/init.js b/js&css/web-accessible/init.js index 1de110d36..9386fce27 100644 --- a/js&css/web-accessible/init.js +++ b/js&css/web-accessible/init.js @@ -41,10 +41,8 @@ new MutationObserver(function (mutationList) { }); ImprovedTube.init = function () { - - window.addEventListener('yt-page-data-updated', function () { - ImprovedTube.pageType(); - }); + ImprovedTube.pageType(); + var yt_player_updated = function () { document.dispatchEvent(new CustomEvent('improvedtube-player-loaded')); @@ -62,11 +60,7 @@ ImprovedTube.init = function () { this.onkeydown(); this.onmousedown(); this.youtubeLanguage(); - - if (ImprovedTube.elements.player && ImprovedTube.elements.player.setPlaybackRate) { - ImprovedTube.videoPageUpdate(); - ImprovedTube.initPlayer(); - } + if (window.matchMedia) { document.documentElement.dataset.systemColorScheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; From cabff6f1ca93656ea785ce555e4769b271ed581a Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 4 Apr 2023 01:21:17 +0200 Subject: [PATCH 0919/1224] #1652 ? --- js&css/web-accessible/core.js | 2 +- js&css/web-accessible/www.youtube.com/player.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/js&css/web-accessible/core.js b/js&css/web-accessible/core.js index 85a102e18..c42ac08bf 100644 --- a/js&css/web-accessible/core.js +++ b/js&css/web-accessible/core.js @@ -121,8 +121,8 @@ document.addEventListener('it-message-from-extension', function () { if (message.action === 'storage-loaded') { ImprovedTube.storage = message.storage; -// FEEDBACK WHEN THE USER CHANGED A SETTING ImprovedTube.init(); +// FEEDBACK WHEN THE USER CHANGED A SETTING } else if (message.action === 'storage-changed') { var camelized_key = message.camelizedKey; diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index 64e7844dc..6aaf4eb7a 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -30,7 +30,7 @@ ImprovedTube.autoplay = function () { ------------------------------------------------------------------------------*/ ImprovedTube.forcedPlayVideoFromTheBeginning = function () { - if (this.storage.forced_play_video_from_the_beginning === true) { + if (this.storage.forced_play_video_from_the_beginning === true && document.documentElement.dataset.pageType === 'video') { this.elements.player.seekTo(0); } }; From cea030697ea17df3c5b5f86328a1e9d5ea92f282 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 4 Apr 2023 03:02:41 +0200 Subject: [PATCH 0920/1224] Revert "#1652 ?" This reverts commit cabff6f1ca93656ea785ce555e4769b271ed581a. --- js&css/web-accessible/core.js | 2 +- js&css/web-accessible/www.youtube.com/player.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/js&css/web-accessible/core.js b/js&css/web-accessible/core.js index c42ac08bf..85a102e18 100644 --- a/js&css/web-accessible/core.js +++ b/js&css/web-accessible/core.js @@ -121,8 +121,8 @@ document.addEventListener('it-message-from-extension', function () { if (message.action === 'storage-loaded') { ImprovedTube.storage = message.storage; +// FEEDBACK WHEN THE USER CHANGED A SETTING ImprovedTube.init(); -// FEEDBACK WHEN THE USER CHANGED A SETTING } else if (message.action === 'storage-changed') { var camelized_key = message.camelizedKey; diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index 6aaf4eb7a..64e7844dc 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -30,7 +30,7 @@ ImprovedTube.autoplay = function () { ------------------------------------------------------------------------------*/ ImprovedTube.forcedPlayVideoFromTheBeginning = function () { - if (this.storage.forced_play_video_from_the_beginning === true && document.documentElement.dataset.pageType === 'video') { + if (this.storage.forced_play_video_from_the_beginning === true) { this.elements.player.seekTo(0); } }; From f9bf0a5e8edf47829bc7e4a99146fcec38e6f92f Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 4 Apr 2023 03:02:46 +0200 Subject: [PATCH 0921/1224] Revert "Revert "#1544 #1652 undoing 402d705ad6a1ff5df11b293d43010434f661289a @dodieboy"" This reverts commit 238ff1c1c67af8a48ee855e2838477a56b3a0705. --- js&css/web-accessible/init.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/js&css/web-accessible/init.js b/js&css/web-accessible/init.js index 9386fce27..1de110d36 100644 --- a/js&css/web-accessible/init.js +++ b/js&css/web-accessible/init.js @@ -41,8 +41,10 @@ new MutationObserver(function (mutationList) { }); ImprovedTube.init = function () { - ImprovedTube.pageType(); - + + window.addEventListener('yt-page-data-updated', function () { + ImprovedTube.pageType(); + }); var yt_player_updated = function () { document.dispatchEvent(new CustomEvent('improvedtube-player-loaded')); @@ -60,7 +62,11 @@ ImprovedTube.init = function () { this.onkeydown(); this.onmousedown(); this.youtubeLanguage(); - + + if (ImprovedTube.elements.player && ImprovedTube.elements.player.setPlaybackRate) { + ImprovedTube.videoPageUpdate(); + ImprovedTube.initPlayer(); + } if (window.matchMedia) { document.documentElement.dataset.systemColorScheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; From 1da31a76700f80e23524f9e6c07dfdc683986db5 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 4 Apr 2023 06:20:46 +0200 Subject: [PATCH 0922/1224] details : buttons #1597 #1411 --- _locales/en/messages.json | 2 +- background.js | 6 +- .../appearance/details/details.css | 106 +++++++++++------- menu/skeleton-parts/appearance.js | 67 +++++++++-- menu/skeleton-parts/player.js | 21 ---- 5 files changed, 127 insertions(+), 75 deletions(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index fbe808c47..c057524bc 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -822,7 +822,7 @@ "message": "Red" }, "redDislikeButton": { - "message": "Red DisLiked-button" + "message": "Red when disliked" }, "relatedVideos": { "message": "Related videos" diff --git a/background.js b/background.js index e8f960538..bd2a86bd8 100644 --- a/background.js +++ b/background.js @@ -21,7 +21,7 @@ chrome.runtime.onInstalled.addListener(function (installed){ if(installed.reason == 'update'){ // var thisVersion = chrome.runtime.getManifest().version; // console.log("Updated from " + installed.previousVersion + " to " + thisVersion + "!"); - + chrome.storage.local.get('hideSubscribe', function (result) {if (result.hideSubscribe === true){ chrome.storage.local.set({subscribe: 'hidden'}); chrome.storage.local.get('limit_page_width', function (result) { if (result.limit_page_width === false){ chrome.storage.local.set({no_page_margin: true}); @@ -32,10 +32,10 @@ chrome.runtime.onInstalled.addListener(function (installed){ }}); } }); - //if(navigator.userAgent.indexOf("Firefox") != -1){chrome.storage.local.set({below_player_pip: false})}; + if(navigator.userAgent.indexOf("Firefox") != -1){chrome.storage.local.set({below_player_pip: false})}; } else if(installed.reason == 'install'){if(navigator.userAgent.indexOf("Firefox") != -1){chrome.storage.local.set({below_player_pip: false})};}; -// else if(installed.reason == 'install'){ console.log('Thanks for installing!'); +// console.log('Thanks for installing!'); } diff --git a/js&css/extension/www.youtube.com/appearance/details/details.css b/js&css/extension/www.youtube.com/appearance/details/details.css index c23892a68..af75b844c 100644 --- a/js&css/extension/www.youtube.com/appearance/details/details.css +++ b/js&css/extension/www.youtube.com/appearance/details/details.css @@ -54,17 +54,25 @@ YouTube's detail buttons html[it-youtubeDetailButtons='remove_labels'] #menu ytd-button-renderer div:nth-child(2), html[it-youtubeDetailButtons='remove_labels'] #menu ytd-button-renderer .cbox, +html[it-youtubeDetailButtons='remove_labels'] #subscribe-button .cbox, html[it-youtubeDetailButtons='remove'] #menu button, +html[it-youtubeDetailButtons='remove'] #subscribe-button button, html[it-youtubeDetailButtons='remove_icons'] #menu button div:first-child {display:none;} +html[it-youtubeDetailButtons='hide_labels'] #subscribe-button .cbox, html[it-youtubeDetailButtons='hide_labels'] #menu ytd-button-renderer div:nth-child(2) {visibility:hidden} +html[it-youtubeDetailButtons='half_transparent'] #subscribe-button button, html[it-youtubeDetailButtons='half_transparent'] #menu button {opacity:0.5;} -html[it-youtubeDetailButtons='transparent_background'] #menu button {background-color:rgba(0, 0, 0, 0) !important;} - - +html[it-youtubeDetailButtons='transparent_background'] #subscribe-button button, +html[it-youtubeDetailButtons='transparent_background'] #menu button {background-color:rgba(0, 0, 0, 0.01) !important;} +html[it-youtubeDetailButtons='transparent_background'] #subscribe-button button {color:#111 !important;} + /*-------------------------------------------------------------- HIDE SUBSCRIBE --------------------------------------------------------------*/ -html[it-hideSubscribe='true'] #subscribe-button {display: none !important;} +html[it-subscribe='hidden'] #subscribe-button {display: none !important;} +html[it-subscribe='grey'] #subscribe-button button { background-color: #DDD !important; color:#111 !important; } +html[it-subscribe='transparent'] #subscribe-button button {background-color:rgba(0, 0, 0, 0) !important; color:#111 !important; } + /*-------------------------------------------------------------- HIDE LIKE BUTTON @@ -102,15 +110,14 @@ html[it-hide-dislike-button='icons_only'] #top-level-buttons-computed #segmented # HIDE SHARE BUTTON --------------------------------------------------------------*/ -html[it-hide-share-button='hidden'] #top-level-buttons-computed ytd-button-renderer, -html[it-hide-share-button='icons_only'] #top-level-buttons-computed ytd-button-renderer div.cbox { +html[it-hide-share-button='hidden'] #menu button:has(svg path[d^="M15,5.63L20.66,12L15,18.37V15v"]), +html[it-hide-share-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M15,5.63L20.66,12L15,18.37V15v"]) { display: none; } -html[it-hide-share-button='icons_only'] #top-level-buttons-computed ytd-button-renderer .yt-spec-button-shape-next__icon, -html[it-hide-share-button='icons_only'] #top-level-buttons-computed ytd-button-renderer button{ - margin: 0; - padding: 0 5px; +html[it-hide-share-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M15,5.63L20.66,12L15,18.37V15v"]) div:nth-child(2), +html[it-hide-share-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M15,5.63L20.66,12L15,18.37V15v"]) .cbox{ + display: none; } @@ -118,47 +125,42 @@ html[it-hide-share-button='icons_only'] #top-level-buttons-computed ytd-button-r # HIDE DOWNLOAD BUTTON --------------------------------------------------------------*/ -html[it-hide-download-button='hidden'] #flexible-item-buttons ytd-download-button-renderer, -html[it-hide-download-button='icons_only'] #flexible-item-buttons ytd-download-button-renderer div.cbox { +html[it-hide-download-button='hidden'] #menu button:has(svg path[d^="M17 18V19H6V18H17ZM16.5 11.4"]), +html[it-hide-download-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M17 18V19H6V18H17ZM16.5 11.4"]) { display: none; } -html[it-hide-download-button='icons_only'] #flexible-item-buttons ytd-download-button-renderer .yt-spec-button-shape-next__icon, -html[it-hide-download-button='icons_only'] #flexible-item-buttons ytd-download-button-renderer button{ - margin: 0; - padding: 0 5px; +html[it-hide-download-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M17 18V19H6V18H17ZM16.5 11.4"]) div:nth-child(2), +html[it-hide-download-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M17 18V19H6V18H17ZM16.5 11.4"]) .cbox{ + display: none; } - /*-------------------------------------------------------------- # HIDE THANKS BUTTON --------------------------------------------------------------*/ -html[it-hide-thanks-button='hidden'] #flexible-item-buttons ytd-button-renderer#Thanks-button, -html[it-hide-thanks-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Thanks-button div.cbox { +html[it-hide-thanks-button='hidden'] #menu button:has(svg path[d^="M16.5,3C19.02,3,21,5.19,21,7.99c"]), +html[it-hide-thanks-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M16.5,3C19.02,3,21,5.19,21,7.99c"]) { display: none; } -html[it-hide-thanks-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Thanks-button .yt-spec-button-shape-next__icon, -html[it-hide-thanks-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Thanks-button button{ - margin: 0; - padding: 0 5px; +html[it-hide-thanks-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M16.5,3C19.02,3,21,5.19,21,7.99c"]) div:nth-child(2), +html[it-hide-thanks-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M16.5,3C19.02,3,21,5.19,21,7.99c"]) .cbox{ + display: none; } - /*-------------------------------------------------------------- # HIDE CLIP BUTTON --------------------------------------------------------------*/ -html[it-hide-clip-button='hidden'] #flexible-item-buttons ytd-button-renderer#Clip-button, -html[it-hide-clip-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Clip-button div.cbox { +html[it-hide-clip-button='hidden'] #menu button:has(svg path[d^="M8,7c0,0.55-0.45,1-1,1S6,7."]), +html[it-hide-clip-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M8,7c0,0.55-0.45,1-1,1S6,7."]) { display: none; } -html[it-hide-clip-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Clip-button .yt-spec-button-shape-next__icon, -html[it-hide-clip-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Clip-button button{ - margin: 0; - padding: 0 5px; +html[it-hide-clip-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M8,7c0,0.55-0.45,1-1,1S6,7."]) div:nth-child(2), +html[it-hide-clip-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M8,7c0,0.55-0.45,1-1,1S6,7."]) .cbox{ + display: none; } @@ -166,15 +168,14 @@ html[it-hide-clip-button='icons_only'] #flexible-item-buttons ytd-button-rendere # HIDE SAVE BUTTON --------------------------------------------------------------*/ -html[it-hide-save-button='hidden'] #flexible-item-buttons ytd-button-renderer#Save-button, -html[it-hide-save-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Save-button div.cbox { +html[it-hide-save-button='hidden'] #menu button:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]), +html[it-hide-save-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]) { display: none; } -html[it-hide-save-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Save-button .yt-spec-button-shape-next__icon, -html[it-hide-save-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Save-button button{ - margin: 0; - padding: 0 5px; +html[it-hide-save-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]) div:nth-child(2), +html[it-hide-save-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]) .cbox{ + display: none; } @@ -182,7 +183,8 @@ html[it-hide-save-button='icons_only'] #flexible-item-buttons ytd-button-rendere # HIDE REPORT BUTTON --------------------------------------------------------------*/ -html[it-hide-report-button='true'] #top-level-buttons-computed ytd-button-renderer#Report-button { +html[it-hide-report-button='true'] #menu button:has(svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]), +html[it-hide-report-button='true'] #flexible-item-buttons button:has(svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]) { display: none; } @@ -191,7 +193,35 @@ html[it-hide-report-button='true'] #top-level-buttons-computed ytd-button-render # HIDE MORE BUTTON --------------------------------------------------------------*/ -html[it-hide-more-button='true'] #menu yt-button-shape#button-shape { +html[it-hide-more-button='true'] #menu button:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]), +html[it-hide-more-button='true'] #flexible-item-buttons button:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]) { + display: none; +} + +/*-------------------------------------------------------------- +# HIDE THANKS BUTTON +--------------------------------------------------------------*/ + +html[it-hide-thanks-button='hidden'] #flexible-item-buttons ytd-button-renderer#Thanks-button, +html[it-hide-thanks-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Thanks-button div.cbox { + display: none; +} + +/*-------------------------------------------------------------- +# HIDE CLIP BUTTON +--------------------------------------------------------------*/ + +html[it-hide-clip-button='hidden'] #flexible-item-buttons ytd-button-renderer#Clip-button, +html[it-hide-clip-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Clip-button div.cbox { + display: none; +} + +/*-------------------------------------------------------------- +# HIDE SAVE BUTTON +--------------------------------------------------------------*/ + +html[it-hide-save-button='hidden'] #flexible-item-buttons ytd-button-renderer#Save-button, +html[it-hide-save-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Save-button div.cbox { display: none; } diff --git a/menu/skeleton-parts/appearance.js b/menu/skeleton-parts/appearance.js index 16d09b45e..cb4811465 100644 --- a/menu/skeleton-parts/appearance.js +++ b/menu/skeleton-parts/appearance.js @@ -482,21 +482,37 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { ], tags: "hide,remove", }, - hideSubscribe: { - component: "switch", - text: "Hide Subscribe", - tags: "hide,remove,subscribe-button", - }, - hide_details_button: { - component: "button", + hide_detail_button: { + component: "Buttons", text: "hideDetailButton", on: { click: { - component: "section", - variant: "card", + extraButtons: { + component: 'section', + variant: 'card', + title: 'Extra buttons', + + below_player_screenshot: { + component: 'switch', + text: 'screenshot', + value: true + }, + below_player_pip: { + component: 'switch', + text: 'pictureInPicture', + value: true + }, + below_player_loop: { + component: 'switch', + text: 'loop', + value: true + } + }, + component: 'section', + variant: 'card', youtubeDetailButtons: { component: "select", - text: "YouTube's detail buttons", + text: "YouTube's buttons", options: [ { text: "normal", @@ -528,7 +544,33 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { }, ], tags: "hide,remove", - }, + }, + detailButtons: { + component: 'section', + variant: 'card', + subscribe: { + component: "select", + text: "'Subscribe'", + options: [ + { + text: "normal", + value: "normal", + }, + { + text: "grey", + value: "grey", + }, + { + text: "transparent", + value: "transparent", + }, + { + text: "hidden", + value: "hidden", + }, + ], + tags: "hide,remove,subscribe-button", + }, likes: { component: "select", text: "'like'", @@ -676,7 +718,8 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { text: "hide 'more'", tags: "hide,remove", }, - }, + }, + }, }, }, hide_views_count: { diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index 3126f3668..99a3d184c 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -1030,25 +1030,4 @@ extension.skeleton.main.layers.section.player.on.click = { text: 'popupPlayer' } }, - section_3: { - component: 'section', - variant: 'card', - title: 'Buttons below the player', - - below_player_screenshot: { - component: 'switch', - text: 'screenshot', - value: true - }, - below_player_pip: { - component: 'switch', - text: 'pictureInPicture', - value: true - }, - below_player_loop: { - component: 'switch', - text: 'loop', - value: true - } - } }; From 7aaf48f6f2dd13247f39e9f02012557f766e01e2 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 4 Apr 2023 06:21:33 +0200 Subject: [PATCH 0923/1224] #1652 --- js&css/web-accessible/www.youtube.com/player.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index 64e7844dc..6aaf4eb7a 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -30,7 +30,7 @@ ImprovedTube.autoplay = function () { ------------------------------------------------------------------------------*/ ImprovedTube.forcedPlayVideoFromTheBeginning = function () { - if (this.storage.forced_play_video_from_the_beginning === true) { + if (this.storage.forced_play_video_from_the_beginning === true && document.documentElement.dataset.pageType === 'video') { this.elements.player.seekTo(0); } }; From 2d849e65087d53ebc8b9da1de65939e8d62a3715 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 4 Apr 2023 12:28:11 +0200 Subject: [PATCH 0924/1224] better transcript, , embed #867, ... --- .../appearance/footer/footer.css | 11 ++--- .../appearance/sidebar/sidebar.css | 46 ++++++++++++------- .../www.youtube.com/general/general.css | 7 ++- js&css/extension/www.youtube.com/styles.css | 21 +++++---- js&css/web-accessible/functions.js | 43 +++++++++++------ js&css/web-accessible/init.js | 11 ++--- .../www.youtube.com/appearance.js | 5 +- .../web-accessible/www.youtube.com/player.js | 10 ++-- menu/skeleton-parts/appearance.js | 9 +++- menu/skeleton-parts/general.js | 40 +++++++++++++++- menu/skeleton-parts/player.js | 20 -------- menu/styles/appearance.css | 33 +++++++------ 12 files changed, 159 insertions(+), 97 deletions(-) diff --git a/js&css/extension/www.youtube.com/appearance/footer/footer.css b/js&css/extension/www.youtube.com/appearance/footer/footer.css index 6adddce18..5ddd8d9d0 100644 --- a/js&css/extension/www.youtube.com/appearance/footer/footer.css +++ b/js&css/extension/www.youtube.com/appearance/footer/footer.css @@ -4,10 +4,9 @@ # Hide --------------------------------------------------------------*/ -/*-------------------------------------------------------------- -# HIDE ---------------------------------------------------------------*/ +html[it-hide-footer='true'] ytd-guide-renderer #footer, +html[it-hide-footer='true'] yt-mealbar-promo-renderer { + display: none !important; +} + -html[it-hide-footer='true'] ytd-guide-renderer #footer { - display: none !important; -} \ No newline at end of file diff --git a/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css b/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css index a0d043b61..be3a28ee1 100644 --- a/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css +++ b/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css @@ -33,28 +33,44 @@ html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'], html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'] ytd-engagement-panel-section-list-renderer #content { max-height: 77vh !important; } html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'] #title -{ opacity: 0.3; } +{ opacity: 0.4; } html[data-page-type=video][it-transcript='true'][it-sidebar-left='transcript'] ytd-watch-flexy:not([fullscreen]) #columns - { display:flex !important; max-width:98% !important; } + { display:flex !important; max-width:99% !important; } html[data-page-type=video][it-transcript='true'] *[target-id*='transcript'], html[data-page-type=video][it-transcript='true'] *[target-id*='transcript']:not([it-sidebar-left='true']) ytd-engagement-panel-section-list-renderer #content { -min-width: max(450px,15vw) !important; max-width: min(24vw,750px) !important; transform: translateX(-18px);} +min-width: max(445px,17vw) !important; max-width: min(24vw,650px) !important; margin-left: -20px !important;} html[data-page-type=video][it-transcript='true']:not([it-player-size='1080p']):not([it-player-size='1440p']):not([it-player-size='2160p']):not([it-player-size='custom']):not([it-player-size='max_width']) ytd-watch-flexy:not([fullscreen]) #player{ max-width: 1280px !important; } @media screen and (min-width: 1599px) { html[data-page-type=video][it-transcript='true'] ytd-watch-flexy:not([fullscreen]) #secondary -{ display:flex !important; max-width: 98% !important; } +{ display:flex !important; max-width: 99% !important; } html[data-page-type=video][it-transcript='true'] ytd-browse > ytd-two-column-browse-results-renderer { - object-fit: contain !important; max-width: 98% !important; margin: -5px; } -html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) #secondary -{ direction: rtl; float: right;max-width: 600px !important; display:flex !important; object-fit: contain !important;} -html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) td-engagement-panel-section-list-renderer -{ text-align: right !important; direction: ltr; } -html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) #player - { left:-10px !important;} + object-fit: contain !important; max-width: 99% !important; margin: -5px; } + html[data-page-type=video][it-transcript='true'][it-sidebar-left='true'] *[target-id*='transcript'], +html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) *[target-id*='transcript'] { min-width: 440px !important; max-width 440px !important; object-fit: contain !important; overflow-x: hidden !important; float: right; /* direction: rtl; */ +} html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) td-engagement-panel-section-list-renderer +{ !important; text-align: right !important; /* direction: ltr; */ +} html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) #player + { z-index:1000 !important; left:-10px !important;} } +html[data-page-type=video][it-transcript='true'] ytd-transcript-segment-renderer:hover { overflow-x: visible !important; } +html[data-page-type=video][it-transcript='true'] ytd-transcript-segment-renderer:has(+ ytd-transcript-segment-renderer.active) yt-formatted-string + {margin-bottom:-5px !important; margin-top:-5px !important; font-size:1.25em !important;} +html[data-page-type=video][it-transcript='true'] ytd-transcript-segment-renderer.active yt-formatted-string + {margin-bottom:-5px !important; margin-top:-5px !important; font-size:1.35em !important;} +html[data-page-type=video][it-transcript='true'] ytd-transcript-segment-renderer.active + ytd-transcript-segment-renderer yt-formatted-string + {margin-bottom:-5px !important; margin-top:-5px !important; font-size:1.3em !important;} +html[data-page-type=video][it-transcript='true'] ytd-transcript-segment-renderer.active + ytd-transcript-segment-renderer + ytd-transcript-segment-renderer yt-formatted-string + {margin-bottom:-5px !important; margin-top:-5px !important; font-size:1.25em !important;} + +html[data-page-type=video][it-compactSpacing='true'] *[target-id*='transcript'] ytd-transcript-segment-renderer * { max-height: 15px !important; margin-bottom:-5px !important; margin-top:-5px !important; } +html[data-page-type=video][it-compactSpacing='true'] *[target-id*='transcript'], +html[data-page-type=video][it-compactSpacing='true'] *[target-id*='transcript'] ytd-engagement-panel-section-list-renderer #content +{ max-height: 69vh !important; margin-top:40px !important; } + + /*-------------------------------------------------------------- # RELATED VIDEOS --------------------------------------------------------------*/ @@ -133,26 +149,22 @@ html[data-page-type=video][it-no-page-margin='true'] ytd-browse > ytd-two-column max-width: auto !important; } - - - - /*-------------------------------------------------------------- # MOVE SIDEBAR LEFT --------------------------------------------------------------*/ html[it-sidebar-left='true'] #columns>#primary, html[it-sidebar-left='true'] #head>#upnext{ order: 5 !important;} + html[it-sidebar-left='true'][it-comments-sidebar='true'] #comments{order: 6 !important;} - html[it-sidebar-left='true'] #columns>#secondary>#related {margin-left: calc(0.5vw + 4px); margin-right:1vw !important;} /*-------------------------------------------------------------- # MOVE THUMBNAILS RIGHT --------------------------------------------------------------*/ html[it-thumbnails-right='true'] ytd-watch-next-secondary-results-renderer ytd-thumbnail { - order: 7 !important; + order: 5 !important; } /*-------------------------------------------------------------- diff --git a/js&css/extension/www.youtube.com/general/general.css b/js&css/extension/www.youtube.com/general/general.css index 67ff6d1d2..d8c11df98 100644 --- a/js&css/extension/www.youtube.com/general/general.css +++ b/js&css/extension/www.youtube.com/general/general.css @@ -322,4 +322,9 @@ html[it-hide-animated-thumbnails='true'] #preview>ytd-video-preview { html[it-hide-thumbnail-overlay='true'] #hover-overlays { display: none !important; -} \ No newline at end of file +} + + +html[it-embeddedHidePauseOverlay='true'] .ytp-pause-overlay {display:none !important} +html[it-embeddedHideYoutubeLogo='true'] a.ytp-youtube-button svg path {display:none !important} +html[it-embeddedHideShare='true'] .ytp-share-button-visible:has(.ytp-share-icon) {display:none !important} \ No newline at end of file diff --git a/js&css/extension/www.youtube.com/styles.css b/js&css/extension/www.youtube.com/styles.css index 0e14f3704..d2d40e8e5 100644 --- a/js&css/extension/www.youtube.com/styles.css +++ b/js&css/extension/www.youtube.com/styles.css @@ -34,19 +34,20 @@ html[it-player-crop-chapter-titles=false] .ytp-chapter-title { width: auto !important; } - /*------------------------------------------------------------------------------ 4.2 ADS ------------------------------------------------------------------------------*/ -html[it-player-ads=subscribed_channels] #related #player-ads, -html[it-player-ads=subscribed_channels] #masthead-ad, -html[it-player-ads=block_all] #related #player-ads, -html[it-player-ads=block_all] #masthead-ad, -html[it-player-ads=subscribed_channels] *[target-id*='engagement-panel-ads'], -html[it-player-ads=subscribed_channels] .ytd-ad-slot-renderer, -html[it-player-ads="block_all"] *[target-id*='engagement-panel-ads'], -html[it-player-ads="block_all"] .ytd-ad-slot-renderer { - display: none !important;} +html[it-ads=subscribed_channels] #related #player-ads, +html[it-ads=subscribed_channels] #masthead-ad, +html[it-ads=subscribed_channels] *[target-id*='engagement-panel-ads'], +html[it-ads=subscribed_channels] .ytd-ad-slot-renderer, +html[it-ads=subscribed_channels] yt-mealbar-promo-renderer, +html[it-ads=block_all] #related #player-ads, +html[it-ads=block_all] #masthead-ad, +html[it-ads=block_all] *[target-id*='engagement-panel-ads'], +html[it-ads=block_all] .ytd-ad-slot-renderer, +html[it-ads=block_all] yt-mealbar-promo-renderer { +display: none !important;} /*------------------------------------------------------------------------------ 4.3 MINIPLAYER diff --git a/js&css/web-accessible/functions.js b/js&css/web-accessible/functions.js index efcd2c059..a6b7a6d6c 100644 --- a/js&css/web-accessible/functions.js +++ b/js&css/web-accessible/functions.js @@ -31,16 +31,24 @@ ImprovedTube.ytElementsHandler = function (node) { } } } else if (name === 'META') { - if (node.getAttribute('itemprop') === 'genre') { - ImprovedTube.category = node.content; - } - if (node.getAttribute('name') === 'keywords') { - ImprovedTube.keywords = node.content; - } - if (node.getAttribute('itemprop') === 'name') { - ImprovedTube.title = node.content; - } - // if (node.getAttribute('name') === 'interactionCount') { ImprovedTube.likes = node.content; } + if(node.getAttribute('name') === 'themeColor') {ImprovedTube.themeColor = node.content;} + //if(node.getAttribute('name') === 'title') {ImprovedTube.title = node.content;} + //if(node.getAttribute('name') === 'description') {ImprovedTube.description = node.content;} + if(node.getAttribute('name') === 'keywords') {ImprovedTube.keywords = node.content;} + if(node.getAttribute('itemprop') === 'name') {ImprovedTube.title = node.content;} + if(node.getAttribute('itemprop') === 'description') {ImprovedTube.description = node.content;} + if(node.getAttribute('itemprop') === 'paid') {ImprovedTube.paid = node.content;} + if(node.getAttribute('itemprop') === 'channelId') {ImprovedTube.channelId = node.content;} + if(node.getAttribute('itemprop') === 'videoId') {ImprovedTube.videoId = node.content;} + if(node.getAttribute('itemprop') === 'unlisted') {ImprovedTube.unlisted = node.content;} + // if(node.getAttribute('itemprop') === 'regionsAllowed'){ImprovedTube.regionsAllowed = node.content;} + if(node.getAttribute('itemprop') === 'duration') {ImprovedTube.duration = node.content;} + if(node.getAttribute('itemprop') === 'isFamilyFriendly'){ImprovedTube.isFamilyFriendly = node.content;} + if(node.getAttribute('itemprop') === 'interactionCount'){ImprovedTube.views = node.content;} + if(node.getAttribute('itemprop') === 'datePublished' ){ImprovedTube.datePublished = node.content;} + if(node.getAttribute('itemprop') === 'uploadDate') {ImprovedTube.uploadDate = node.content;} + if(node.getAttribute('itemprop') === 'genre') {ImprovedTube.category = node.content;} + } else if (name === 'YTD-TOGGLE-BUTTON-RENDERER' || name === 'YTD-PLAYLIST-LOOP-BUTTON-RENDERER') { if ( node.parentComponent && @@ -207,9 +215,9 @@ ImprovedTube.ytElementsHandler = function (node) { }else if (document.documentElement.dataset.pageType === 'video'){ if (id ==='description-inner') { setTimeout(function () { - ImprovedTube.description(node); + ImprovedTube.descriptionLayout(node); }, 300); - }else if (id === 'meta') {setTimeout(function () { ImprovedTube.description(node.querySelector('#more')); }, 200); + }else if (id === 'meta') {setTimeout(function () { ImprovedTube.descriptionLayout(node.querySelector('#more')); }, 200); }else if (id === 'below' ){setTimeout(function () { }, 0); }else if (id === 'panels'){setTimeout(function () { ImprovedTube.transcript(node); @@ -258,12 +266,13 @@ ImprovedTube.videoPageUpdate = function () { ImprovedTube.channelVideosCount(); ImprovedTube.upNextAutoplay(); ImprovedTube.playerAutofullscreen(); + ImprovedTube.playerSize(); + ImprovedTube.playerScreenshotButton(); ImprovedTube.playerRepeatButton(); ImprovedTube.playerRotateButton(); ImprovedTube.playerPopupButton(); ImprovedTube.playerControls(); - ImprovedTube.playerSize(); } }; @@ -313,6 +322,11 @@ ImprovedTube.initPlayer = function () { ImprovedTube.subtitlesBackgroundOpacity(); ImprovedTube.playerQuality(); ImprovedTube.playerVolume(); + ImprovedTube.playerScreenshotButton(); + ImprovedTube.playerRepeatButton(); + ImprovedTube.playerRotateButton(); + ImprovedTube.playerPopupButton(); + ImprovedTube.playerControls(); setTimeout(function () { ImprovedTube.forcedTheaterMode(); @@ -320,7 +334,8 @@ ImprovedTube.initPlayer = function () { if (location.href.indexOf('/embed/') === -1) { ImprovedTube.miniPlayer(); - } + } else { setTimeout(function() { document.querySelectorAll('a.ytp-youtube-button').remove(); + document.querySelector('a.ytp-youtube-button svg path').setAttribute("d","m 45.405 11.073 m -37.302 -0.407 L 10.96 20.86 L 10.96 25.82 L 13.42 25.82 L 13.42 20.86 L 16.32 10.56 L 13.83 10.56 L 12.78 15.25 C 12.49 16.62 12.31 17.59 12.23 18.17 L 12.16 18.17 C 12.097 17.529 11.84 16.38 11.59 15.23 L 10.59 10.56 L 8.1 10.56 Z m 22 0 L 30.1 12.58 L 32.59 12.58 L 32.59 25.82 L 35.06 25.82 L 35.06 12.58 l 2.49 0 l 0 -2.02 l -7.45 0", "important" ) },3000) } } }; diff --git a/js&css/web-accessible/init.js b/js&css/web-accessible/init.js index 1de110d36..65a6ed442 100644 --- a/js&css/web-accessible/init.js +++ b/js&css/web-accessible/init.js @@ -41,11 +41,10 @@ new MutationObserver(function (mutationList) { }); ImprovedTube.init = function () { - - window.addEventListener('yt-page-data-updated', function () { + window.addEventListener('yt-page-data-updated', function () { ImprovedTube.pageType(); }); - + ImprovedTube.pageType(); var yt_player_updated = function () { document.dispatchEvent(new CustomEvent('improvedtube-player-loaded')); @@ -54,20 +53,20 @@ ImprovedTube.init = function () { window.addEventListener('yt-player-updated', yt_player_updated); + this.playerOnPlay(); this.playerH264(); this.player60fps(); this.playerSDR(); this.shortcuts(); - this.playerOnPlay(); this.onkeydown(); this.onmousedown(); this.youtubeLanguage(); - + if (ImprovedTube.elements.player && ImprovedTube.elements.player.setPlaybackRate) { ImprovedTube.videoPageUpdate(); ImprovedTube.initPlayer(); } - + if (window.matchMedia) { document.documentElement.dataset.systemColorScheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; } ImprovedTube.myColors(); diff --git a/js&css/web-accessible/www.youtube.com/appearance.js b/js&css/web-accessible/www.youtube.com/appearance.js index 64fe70a1a..216688918 100644 --- a/js&css/web-accessible/www.youtube.com/appearance.js +++ b/js&css/web-accessible/www.youtube.com/appearance.js @@ -171,9 +171,10 @@ catch{}}} CHAPTERS --------------------------------------------------------------*/ ImprovedTube.chapters = function (el){ if (ImprovedTube.storage.chapters === true){ -try{node.querySelector('*[target-id*=chapters]').removeAttribute('visibility');} +try{el.querySelector('*[target-id*=chapters]').removeAttribute('visibility');} catch{}} } + /*------------------------------------------------------------------------------ LIVECHAT ------------------------------------------------------------------------------*/ @@ -296,7 +297,7 @@ ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { DESCRIPTION ------------------------------------------------------------------------------*/ -ImprovedTube.description = function (el) { +ImprovedTube.descriptionLayout = function (el) { if (this.storage.description === "expanded" || this.storage.description === "classic_expanded" ) if(el)try{el.click()}catch{setTimeout(function(){el.click();},1000);} }; diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index 6aaf4eb7a..3270d93f2 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -18,9 +18,9 @@ ImprovedTube.autoplay = function () { (document.documentElement.dataset.pageType === "channel" && ImprovedTube.storage.channel_trailer_autoplay === false) ) ) { - setTimeout(function () { - video.pauseVideo(); - }); + setTimeout(function () {console.log("autoplayyOFFFF"); + video.pauseVideo(); + }); } }; @@ -959,10 +959,10 @@ ImprovedTube.screenshot = function () { cvs.toBlob(function (blob) { if (ImprovedTube.storage.player_screenshot_save_as !== 'clipboard') { var a = document.createElement('a'); - +console.log("screeeeeeen"); a.href = URL.createObjectURL(blob); - a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) + '-' + new Date(ImprovedTube.elements.player.getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; + a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) || location.href.match(/()embed\/[^&]+/)[0].substr(3) || improvedTube.videoID || location.href.match + '-' + new Date(ImprovedTube.elements.player.getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; a.click(); } else { diff --git a/menu/skeleton-parts/appearance.js b/menu/skeleton-parts/appearance.js index cb4811465..453bcd092 100644 --- a/menu/skeleton-parts/appearance.js +++ b/menu/skeleton-parts/appearance.js @@ -854,15 +854,20 @@ extension.skeleton.main.layers.section.appearance.on.click.sidebar = { text: 'Transcript', value: false, storage: 'transcript', + id: 'transcript', on: { click: function () { setTimeout(() => { if (satus.storage.get('transcript')) { if (satus.storage.get('no_page_margin')) { - this.nextSibling.click(); + this.nextSibling.nextSibling.click(); } } }, "250"); } } }, + compactSpacing: { + component: "switch", + text: "Compact spacing", + }, no_page_margin: { component: 'switch', text: 'To the side! (No page margin)', @@ -871,7 +876,7 @@ extension.skeleton.main.layers.section.appearance.on.click.sidebar = { click: function () { setTimeout(() => { if (satus.storage.get('no_page_margin')) { if (satus.storage.get('transcript')) { - this.previousSibling.click(); + this.previousSibling.previousSibling.click(); } } }, "250"); } diff --git a/menu/skeleton-parts/general.js b/menu/skeleton-parts/general.js index 846063b32..db88f13c7 100644 --- a/menu/skeleton-parts/general.js +++ b/menu/skeleton-parts/general.js @@ -1039,6 +1039,25 @@ extension.skeleton.main.layers.section.general = { } ] }, + ads: { + text: 'ads', + component: 'select', + options: [{ + text: 'onAllVideos', + value: 'all_videos', + default: 'true' + }, { + text: 'blockAll', + value: 'block_all' + }, { + text: 'blockMusic', + value: 'block_music' + }, { + text: 'onSubscribedChannels', + value: 'subscribed_channels' + }], + storage: 'ads' + }, youtube_home_page: { component: 'select', text: 'youtubeHomePage', @@ -1077,7 +1096,26 @@ extension.skeleton.main.layers.section.general = { component: 'switch', text: 'removeRelatedSearchResults' }, - }, + }, + embed: { + component: 'section', + variant: 'card', + title: 'Emdedded Youtube', + + embeddedHidePauseOverlay: { + component: 'switch', + text: 'Hide Pause Overlay', + + }, + embeddedHideYoutubeLogo: { + component: 'switch', + text: 'Hide YouTube Logo' + }, + embeddedHideShare: { + component: 'switch', + text: "Hide 'Share'" + }, + }, section_2: { component: 'section', variant: 'card', diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index 99a3d184c..b6fc8d56f 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -94,25 +94,6 @@ extension.skeleton.main.layers.section.player.on.click = { }, "250"); } } }, - ads: { - text: 'ads', - component: 'select', - options: [{ - text: 'onAllVideos', - value: 'all_videos', - default: 'true' - }, { - text: 'blockAll', - value: 'block_all' - }, { - text: 'blockMusic', - value: 'block_music' - }, { - text: 'onSubscribedChannels', - value: 'subscribed_channels' - }], - storage: 'player_ads' - }, quality: { component: 'select', text: 'quality', @@ -177,7 +158,6 @@ extension.skeleton.main.layers.section.player.on.click = { player_force_speed_on_music: { component: 'switch', text: 'forcedPlaybackSpeedMusic', - id: 'forced-playback-speed-music' }, player_playback_speed: { component: 'slider', diff --git a/menu/styles/appearance.css b/menu/styles/appearance.css index 770ccba74..ac8cad1bc 100644 --- a/menu/styles/appearance.css +++ b/menu/styles/appearance.css @@ -46,9 +46,9 @@ .satus-section--appearance .satus-button--header { top: 16px; left: 16px; - font-size: 13px; + font-size: 11px; width: calc(100% - 32px); - height: 33px; + height: 29px; min-height: auto; } @@ -57,7 +57,7 @@ } .satus-section--appearance .satus-button--player { - top: 57px; + top: 53px; left: 16px; width: calc(70% - 32px); height: 96px; @@ -79,7 +79,7 @@ } .satus-section--appearance .satus-button--details { - top: 161px; + top: 157px; left: 16px; font-size: 16.5px; width: calc(70% - 32px); @@ -88,7 +88,7 @@ } .satus-section--appearance .satus-button--comments { - top: 225px; + top: 222px; left: 16px; width: calc(70% - 32px); @@ -97,20 +97,19 @@ } .satus-section--appearance .satus-button--footer { - top: 290px; + top: 286px; left: 16px; - font-size: 7px; - width: calc(70% - 32px); + font-size: 11px; + width: calc(37% - 32px); min-height: auto; - height: 21px; - opacity: 0.4; + height: 38px; } .satus-section--appearance .satus-button--sidebar { - top: 57px; + top: 53px; left: calc(70% - 8px); width: calc(30% - 8px); - height: 160px; + height: 180px; } @@ -159,6 +158,13 @@ content: 'x'; } + /*-------------------------------------------------------------- +transcript compact spacing +--------------------------------------------------------------*/ + +#transcript:not([data-value='true']) + .satus-switch + {display:none} + /*-------------------------------------------------------------- DURATION WITH SPEED @@ -166,4 +172,5 @@ DURATION WITH SPEED #show-remaining-duration:not([data-value='true']) + .satus-switch { display: none; -} \ No newline at end of file +} + From a3a1c23ff4e9411edd1e7c98e485d327f957232a Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 4 Apr 2023 12:31:51 +0200 Subject: [PATCH 0925/1224] version --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 174efeb21..cf08fbbc2 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "short_name" : "ImprovedTube", "name": "'Improve YouTube!' 🎧 (for YouTube & Videos)", "description": "__MSG_description_ext__", - "version": "4.6", + "version": "4.8", "default_locale": "en", "icons": { "16": "stuff/icons/16.png", From ce58c449cc14b25ff5b864720b56e5c489db6b32 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 4 Apr 2023 14:14:53 +0200 Subject: [PATCH 0926/1224] fix comments sidebar --- .../appearance/comments/comments.css | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/js&css/extension/www.youtube.com/appearance/comments/comments.css b/js&css/extension/www.youtube.com/appearance/comments/comments.css index 116d14d18..39786dfef 100644 --- a/js&css/extension/www.youtube.com/appearance/comments/comments.css +++ b/js&css/extension/www.youtube.com/appearance/comments/comments.css @@ -10,14 +10,15 @@ --------------------------------------------------------------*/ @media screen and (min-width: 1599px) { -html[data-page-type=video][it-comments-sidebar='true'] #players {top:0px !important; margin-left: -20px !important; } -html[data-page-type=video][it-comments-sidebar='true'] #comments { max-width: min(900px, 18vw) !important; } -html[data-page-type=video][it-comments-sidebar='true']:not([it-sidebar-left='true']) #secondary {top:0px !important; margin-right: -18px !important; } - - +html[data-page-type=video][it-comments-sidebar='true'] #player { margin-left: -20px !important;} +html[data-page-type=video][it-comments-sidebar='true'] #columns { display:flex !important; max-width:100% !important;} +html[data-page-type=video][it-comments-sidebar='true'] #comments { max-width: min(850px, 19vw) !important; margin-left:-12px; } +html[data-page-type=video][it-comments-sidebar='true'][it-sidebar-left='true'] #comments { max-right: -25px !important; } +html[data-page-type=video][it-comments-sidebar='true'] #related { margin-right: -22px !important; max-width: max(360px, 18vw) !important; } +html[data-page-type=video][it-comments-sidebar='true'] #secondary { margin-right: -22px !important; max-width: max(360px, 18vw) !important; } html[data-page-type=video][it-comments-sidebar='true']:not([it-player-size='1080p']):not([it-player-size='1440p']):not([it-player-size='2160p']):not([it-player-size='custom']):not([it-player-size='max_width']) ytd-watch-flexy:not([fullscreen]) #primary { -min-width: min(52%, 1280px) !important; max-width: 1280px !important; } +min-width: min(calc(100vw - 1000px), 1260px) !important; max-width: 1260px !important; } } /*-------------------------------------------------------------- From 523964fdf190174854fdbab48b9e6f29d315c64e Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 4 Apr 2023 14:28:12 +0200 Subject: [PATCH 0927/1224] typo --- background.js | 2 +- .../extension/www.youtube.com/appearance/sidebar/sidebar.css | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/background.js b/background.js index bd2a86bd8..bb84308f4 100644 --- a/background.js +++ b/background.js @@ -21,7 +21,7 @@ chrome.runtime.onInstalled.addListener(function (installed){ if(installed.reason == 'update'){ // var thisVersion = chrome.runtime.getManifest().version; // console.log("Updated from " + installed.previousVersion + " to " + thisVersion + "!"); - chrome.storage.local.get('hideSubscribe', function (result) {if (result.hideSubscribe === true){ chrome.storage.local.set({subscribe: 'hidden'}); + chrome.storage.local.get('hideSubscribe', function (result) {if (result.hideSubscribe === true){ chrome.storage.local.set({subscribe: 'hidden'})); chrome.storage.local.get('limit_page_width', function (result) { if (result.limit_page_width === false){ chrome.storage.local.set({no_page_margin: true}); diff --git a/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css b/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css index be3a28ee1..0b658dc50 100644 --- a/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css +++ b/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css @@ -47,8 +47,8 @@ html[data-page-type=video][it-transcript='true'] ytd-watch-flexy:not([fullscree { display:flex !important; max-width: 99% !important; } html[data-page-type=video][it-transcript='true'] ytd-browse > ytd-two-column-browse-results-renderer { object-fit: contain !important; max-width: 99% !important; margin: -5px; } - html[data-page-type=video][it-transcript='true'][it-sidebar-left='true'] *[target-id*='transcript'], -html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) *[target-id*='transcript'] { min-width: 440px !important; max-width 440px !important; object-fit: contain !important; overflow-x: hidden !important; float: right; /* direction: rtl; */ +html[data-page-type=video][it-transcript='true'][it-sidebar-left='true'] *[target-id*='transcript'], +html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) *[target-id*='transcript'] { min-width: 440px !important; max-width:440px !important; object-fit: contain !important; overflow-x: hidden !important; float: right; /* direction: rtl; */ } html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) td-engagement-panel-section-list-renderer { !important; text-align: right !important; /* direction: ltr; */ } html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) #player From 66dc73053eadbdc90da6ce5503fa5a9f51f7fd34 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 4 Apr 2023 14:42:18 +0200 Subject: [PATCH 0928/1224] Update README.md --- .github/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/README.md b/.github/README.md index 16eda35c9..a263a4e0c 100644 --- a/.github/README.md +++ b/.github/README.md @@ -173,7 +173,7 @@ Chinese + Hindi + Spanish)

Contributing

For more info on how to contribute,
please see the contribution wiki. -




+



Original introduction @@ -204,7 +204,7 @@ Today adding features can be easier & so motivating as there are 500 000 users. **Development:** [**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library | [**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library ([TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player))
**Git Community:** 🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") | [🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot) -
+
#### 💡 Got great ideas? @@ -216,7 +216,7 @@ We might work on novel (new & unique)
projects at [github/**Wish-Factory**] web store web store analytics

youtube recommmendation

Do you need to run a popular extension, site, app or repo?
We'd love to help meaningful projects@improvedtube.com -

+

🏝🏕 Issue-Filters // To-Do List

**0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer some bug bounty. [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "especially if you are at a cheap/poor place ❤️") .) @@ -228,11 +228,11 @@ We might work on novel (new & unique)
projects at [github/**Wish-Factory**]
**0.1. [ ]** Tidy: [(Rest/Unsorted 'issues')](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+is%3Aopen+-label%3Abug+-label%3A%22Feature+Request%22+-label%3A%F0%9F%A7%A9Plan%20ready+-label%3A_+-label%3A%22not+Goo.+Chrome%22+sort%3Acreated-desc++-label%3A"Niche%2Frare+usecase%3F%2Ffun%3F"++-label%3Aunclear "Our github issues, which are not yet labled yet to appear in one of the ToDo-categories above") > Further reading: [***"Contributing without programming"***](https://github.com/ImprovedTube/YouTube-Extension/discussions/753) & [*"Our CSS, JavaScript, json"*](https://github.com/ImprovedTube/ImprovedTube/pull/371#issuecomment-669725163) ( ***outdated**)* (*Newcomers are [we](https://github.com/ImprovedTube/ImprovedTube/issues/387#issuecomment-664980078)lcome tho! We review all edits & love to collaborate*) -

+


📟 "ImprovedTube Ticker 2022 / Pinned Issues" ###### ❔[**ImprovedTube controls** in, under or around the video player or cursor](https://github.com/code4charity/YouTube-Extension/issues/1445).
❔[**Meaningful/Most similar extensions**? Social-Fixer, Youtube Enhancer, Simplify, ...](https://github.com/code4charity/YouTube-Extension/issues/1016).
📟 We are focused on updates, bugs & UX but please keep up your wishes for Features!
📟 Enjoy **our projects: global** [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl), to tweak CSS everywhere + Theme engine in the making, ...
📟 **2021:** Firefox, Edge, Opera, Whale added (please try&rate) -
+


📜Historic Introduction [ImprovedTube](https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd), @@ -285,8 +285,8 @@ _[Full list](https://github.com/ImprovedTube/YouTube/wiki/Features)_ - Video Repeat-, screenshot-, rotate-buttons - Customizable hotkeys / shortcuts -


-🔧 (Installing from source) +
+🔧 Installing from source 1.) **Download & extract the [[latest🧪version]](https://github.com/code4charity/YouTube-Extension/archive/refs/heads/master.zip) or [[release]](https://github.com/code-for-charity/YouTube-Extension/releases)** - **Safari**: From f42cd69bb96dcaf36139dec5635ff1a125b90d8e Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 4 Apr 2023 14:28:12 +0200 Subject: [PATCH 0929/1224] typo --- background.js | 2 +- .../www.youtube.com/appearance/sidebar/sidebar.css | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/background.js b/background.js index bd2a86bd8..d34033d8e 100644 --- a/background.js +++ b/background.js @@ -21,7 +21,7 @@ chrome.runtime.onInstalled.addListener(function (installed){ if(installed.reason == 'update'){ // var thisVersion = chrome.runtime.getManifest().version; // console.log("Updated from " + installed.previousVersion + " to " + thisVersion + "!"); - chrome.storage.local.get('hideSubscribe', function (result) {if (result.hideSubscribe === true){ chrome.storage.local.set({subscribe: 'hidden'}); + chrome.storage.local.get('hideSubscribe', function (result) {if (result.hideSubscribe === true){ chrome.storage.local.set({subscribe: 'hidden'}); }}); chrome.storage.local.get('limit_page_width', function (result) { if (result.limit_page_width === false){ chrome.storage.local.set({no_page_margin: true}); diff --git a/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css b/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css index be3a28ee1..b8270b4f7 100644 --- a/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css +++ b/js&css/extension/www.youtube.com/appearance/sidebar/sidebar.css @@ -47,10 +47,10 @@ html[data-page-type=video][it-transcript='true'] ytd-watch-flexy:not([fullscree { display:flex !important; max-width: 99% !important; } html[data-page-type=video][it-transcript='true'] ytd-browse > ytd-two-column-browse-results-renderer { object-fit: contain !important; max-width: 99% !important; margin: -5px; } - html[data-page-type=video][it-transcript='true'][it-sidebar-left='true'] *[target-id*='transcript'], -html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) *[target-id*='transcript'] { min-width: 440px !important; max-width 440px !important; object-fit: contain !important; overflow-x: hidden !important; float: right; /* direction: rtl; */ +html[data-page-type=video][it-transcript='true'][it-sidebar-left='true'] *[target-id*='transcript'], +html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) *[target-id*='transcript'] { min-width: 440px !important; max-width:440px !important; object-fit: contain !important; overflow-x: hidden !important; float: right; /* direction: rtl; */ } html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) td-engagement-panel-section-list-renderer -{ !important; text-align: right !important; /* direction: ltr; */ +{ /* text-align: right !important; direction: ltr; */ } html[data-page-type=video][it-transcript='true'][it-sidebar-left='true']:not([it-player-size='max_width']) #player { z-index:1000 !important; left:-10px !important;} } From 6a1da6ac1aa6f7666777401979fb56562cd21a78 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Wed, 5 Apr 2023 16:50:39 +0200 Subject: [PATCH 0930/1224] typo+language --- _locales/am/messages.json | 2 +- _locales/ar/messages.json | 2 +- _locales/bg/messages.json | 2 +- _locales/ca/messages.json | 2 +- _locales/cs/messages.json | 2 +- _locales/da/messages.json | 2 +- _locales/el/messages.json | 2 +- _locales/en/messages.json | 2 +- _locales/en_GB/messages.json | 2 +- _locales/en_US/messages.json | 2 +- _locales/et/messages.json | 2 +- _locales/fa/messages.json | 2 +- _locales/fi/messages.json | 2 +- _locales/fil/messages.json | 2 +- _locales/fr/messages.json | 2 +- _locales/gu/messages.json | 2 +- _locales/he/messages.json | 2 +- _locales/hr/messages.json | 2 +- _locales/hu/messages.json | 2 +- _locales/id/messages.json | 2 +- _locales/kn/messages.json | 2 +- _locales/lt/messages.json | 2 +- _locales/lv/messages.json | 2 +- _locales/ml/messages.json | 2 +- _locales/mr/messages.json | 2 +- _locales/ms/messages.json | 2 +- _locales/nb_NO/messages.json | 2 +- _locales/no/messages.json | 2 +- _locales/pt_PT/messages.json | 2 +- _locales/ro/messages.json | 2 +- _locales/sk/messages.json | 2 +- _locales/sl/messages.json | 2 +- _locales/sr/messages.json | 2 +- _locales/sv/messages.json | 2 +- _locales/sw/messages.json | 2 +- _locales/ta/messages.json | 2 +- _locales/te/messages.json | 2 +- _locales/th/messages.json | 2 +- _locales/uk/messages.json | 2 +- js&css/web-accessible/core.js | 2 +- js&css/web-accessible/functions.js | 4 ++-- js&css/web-accessible/www.youtube.com/player.js | 4 ++-- menu/skeleton-parts/general.js | 2 +- 43 files changed, 45 insertions(+), 45 deletions(-) diff --git a/_locales/am/messages.json b/_locales/am/messages.json index e09a061f4..5b57f5ea0 100644 --- a/_locales/am/messages.json +++ b/_locales/am/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index ccc33d042..03b6a2f66 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -270,7 +270,7 @@ "message": "علامة تبويب القناة الافتراضية" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json index b67342973..980c64741 100644 --- a/_locales/bg/messages.json +++ b/_locales/bg/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json index b67342973..980c64741 100644 --- a/_locales/ca/messages.json +++ b/_locales/ca/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json index b67342973..980c64741 100644 --- a/_locales/cs/messages.json +++ b/_locales/cs/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/da/messages.json b/_locales/da/messages.json index b67342973..980c64741 100644 --- a/_locales/da/messages.json +++ b/_locales/da/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 99eeab957..720281c22 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -267,7 +267,7 @@ "message": "Προεπιλεγμένη καρτέλα καναλιού" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/en/messages.json b/_locales/en/messages.json index c057524bc..50e1c4e0a 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -279,7 +279,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "defaultPlaybackSpeed": { "message": "Default Playback Speed" diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json index e81ad347e..78e5622d4 100644 --- a/_locales/en_GB/messages.json +++ b/_locales/en_GB/messages.json @@ -264,7 +264,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/en_US/messages.json b/_locales/en_US/messages.json index e81ad347e..78e5622d4 100644 --- a/_locales/en_US/messages.json +++ b/_locales/en_US/messages.json @@ -264,7 +264,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/et/messages.json b/_locales/et/messages.json index b67342973..980c64741 100644 --- a/_locales/et/messages.json +++ b/_locales/et/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/fa/messages.json b/_locales/fa/messages.json index b67342973..980c64741 100644 --- a/_locales/fa/messages.json +++ b/_locales/fa/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/fi/messages.json b/_locales/fi/messages.json index b67342973..980c64741 100644 --- a/_locales/fi/messages.json +++ b/_locales/fi/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/fil/messages.json b/_locales/fil/messages.json index b67342973..980c64741 100644 --- a/_locales/fil/messages.json +++ b/_locales/fil/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index d00907833..14d936886 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -267,7 +267,7 @@ "message": "Onglet par défaut d'une chaîne" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/gu/messages.json b/_locales/gu/messages.json index b67342973..980c64741 100644 --- a/_locales/gu/messages.json +++ b/_locales/gu/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/he/messages.json b/_locales/he/messages.json index b67342973..980c64741 100644 --- a/_locales/he/messages.json +++ b/_locales/he/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index 2e90cc824..9a7e3eed2 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -267,7 +267,7 @@ "message": "Zadana kartica kanala" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/hu/messages.json b/_locales/hu/messages.json index b67342973..980c64741 100644 --- a/_locales/hu/messages.json +++ b/_locales/hu/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/id/messages.json b/_locales/id/messages.json index 54b743b49..7829ba9f5 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -267,7 +267,7 @@ "message": "Tab saluran standar" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/kn/messages.json b/_locales/kn/messages.json index b67342973..980c64741 100644 --- a/_locales/kn/messages.json +++ b/_locales/kn/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/lt/messages.json b/_locales/lt/messages.json index b67342973..980c64741 100644 --- a/_locales/lt/messages.json +++ b/_locales/lt/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/lv/messages.json b/_locales/lv/messages.json index b67342973..980c64741 100644 --- a/_locales/lv/messages.json +++ b/_locales/lv/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/ml/messages.json b/_locales/ml/messages.json index b67342973..980c64741 100644 --- a/_locales/ml/messages.json +++ b/_locales/ml/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/mr/messages.json b/_locales/mr/messages.json index b67342973..980c64741 100644 --- a/_locales/mr/messages.json +++ b/_locales/mr/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/ms/messages.json b/_locales/ms/messages.json index b67342973..980c64741 100644 --- a/_locales/ms/messages.json +++ b/_locales/ms/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/nb_NO/messages.json b/_locales/nb_NO/messages.json index ad97a3a45..28e3cd6e6 100644 --- a/_locales/nb_NO/messages.json +++ b/_locales/nb_NO/messages.json @@ -264,7 +264,7 @@ "message": "Forvalgt kanalfane" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/no/messages.json b/_locales/no/messages.json index 872888c20..ee65d6bf5 100644 --- a/_locales/no/messages.json +++ b/_locales/no/messages.json @@ -267,7 +267,7 @@ "message": "Standard kanalfane" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json index a3c44bfe3..48c14ad62 100644 --- a/_locales/pt_PT/messages.json +++ b/_locales/pt_PT/messages.json @@ -267,7 +267,7 @@ "message": "Aba padrão do canal" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index e676cf803..e7e62c762 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -267,7 +267,7 @@ "message": "Tab-ul implicit al canalului" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index f40b69423..894b0b708 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -267,7 +267,7 @@ "message": "Predvolená karta kanálu" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/sl/messages.json b/_locales/sl/messages.json index b67342973..980c64741 100644 --- a/_locales/sl/messages.json +++ b/_locales/sl/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json index b67342973..980c64741 100644 --- a/_locales/sr/messages.json +++ b/_locales/sr/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index b67342973..980c64741 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/sw/messages.json b/_locales/sw/messages.json index b67342973..980c64741 100644 --- a/_locales/sw/messages.json +++ b/_locales/sw/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/ta/messages.json b/_locales/ta/messages.json index b67342973..980c64741 100644 --- a/_locales/ta/messages.json +++ b/_locales/ta/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/te/messages.json b/_locales/te/messages.json index b67342973..980c64741 100644 --- a/_locales/te/messages.json +++ b/_locales/te/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/th/messages.json b/_locales/th/messages.json index b67342973..980c64741 100644 --- a/_locales/th/messages.json +++ b/_locales/th/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/_locales/uk/messages.json b/_locales/uk/messages.json index fbc5e40d4..597081f02 100644 --- a/_locales/uk/messages.json +++ b/_locales/uk/messages.json @@ -267,7 +267,7 @@ "message": "Default channel tab" }, "defaultContentCountry": { - "message": "Country (virtual travel!)" + "message": "Country (virtual travel)" }, "deleteWatchedVideos": { "message": "Delete watched videos" diff --git a/js&css/web-accessible/core.js b/js&css/web-accessible/core.js index 85a102e18..a152069f9 100644 --- a/js&css/web-accessible/core.js +++ b/js&css/web-accessible/core.js @@ -44,7 +44,7 @@ var ImprovedTube = { focus: false, played_before_blur: false, played_time: 0, - allow_autoplay: false, + ignore_autoplay_off: false, mini_player__mode: false, mini_player__move: false, mini_player__cursor: '', diff --git a/js&css/web-accessible/functions.js b/js&css/web-accessible/functions.js index a6b7a6d6c..aa64bcbf7 100644 --- a/js&css/web-accessible/functions.js +++ b/js&css/web-accessible/functions.js @@ -396,7 +396,7 @@ ImprovedTube.onkeydown = function () { ImprovedTube.elements.player && ImprovedTube.elements.player.className.indexOf('ad-showing') === -1 ) { - ImprovedTube.allow_autoplay = true; + ImprovedTube.ignore_autoplay_off = true; } }, true); }; @@ -415,7 +415,7 @@ ImprovedTube.onmousedown = function (event) { path[i].className.indexOf('ytp-play-button') !== -1 ) ) { - ImprovedTube.allow_autoplay = true; + ImprovedTube.ignore_autoplay_off = true; } } } diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index 3270d93f2..c6c082277 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -8,11 +8,11 @@ ImprovedTube.autoplay = function () { var video = ImprovedTube.elements.player; if (ImprovedTube.video_url !== location.href) { - ImprovedTube.allow_autoplay = false; + ImprovedTube.ignore_autoplay_off = false; } // if (allow autoplay is false) and (no ads playing) and // ( there is a video and ( (it is not in a playlist and auto play is off ) or ( playlist auto play is off and it is not in a playlist ) ) ) or (if we are in a channel and the channel trailer autoplay is off) ) - if (ImprovedTube.allow_autoplay === false && video.classList.contains('ad-showing') === false && + if (ImprovedTube.ignore_autoplay_off === false && video.classList.contains('ad-showing') === false && ( (document.documentElement.dataset.pageType === "video" && ((location.href.indexOf('list=') === -1 && ImprovedTube.storage.player_autoplay === false) || (ImprovedTube.storage.playlist_autoplay === false && location.href.indexOf('list=') !== -1))) || (document.documentElement.dataset.pageType === "channel" && ImprovedTube.storage.channel_trailer_autoplay === false) diff --git a/menu/skeleton-parts/general.js b/menu/skeleton-parts/general.js index db88f13c7..cfdb20601 100644 --- a/menu/skeleton-parts/general.js +++ b/menu/skeleton-parts/general.js @@ -1100,7 +1100,7 @@ extension.skeleton.main.layers.section.general = { embed: { component: 'section', variant: 'card', - title: 'Emdedded Youtube', + title: 'Embedded YouTube', embeddedHidePauseOverlay: { component: 'switch', From 28cbbbf51a6c2b5e8c280f7021158b06756548d3 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Wed, 5 Apr 2023 20:49:26 +0200 Subject: [PATCH 0931/1224] #1647 --- .../web-accessible/www.youtube.com/player.js | 1263 ++++++++--------- menu/skeleton-parts/general.js | 4 +- menu/styles/player.css | 11 +- 3 files changed, 592 insertions(+), 686 deletions(-) diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index c6c082277..8b8e14c33 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -1,10 +1,6 @@ /*------------------------------------------------------------------------------ -4.4.0 PLAYER +AUTOPLAY ------------------------------------------------------------------------------*/ -/*------------------------------------------------------------------------------ -4.4.1 AUTOPLAY -------------------------------------------------------------------------------*/ - ImprovedTube.autoplay = function () { var video = ImprovedTube.elements.player; if (ImprovedTube.video_url !== location.href) { @@ -23,23 +19,18 @@ ImprovedTube.autoplay = function () { }); } }; - - /*------------------------------------------------------------------------------ -4.4.2 FORCED PLAY VIDEO FROM THE BEGINNING +FORCED PLAY VIDEO FROM THE BEGINNING ------------------------------------------------------------------------------*/ - ImprovedTube.forcedPlayVideoFromTheBeginning = function () { if (this.storage.forced_play_video_from_the_beginning === true && document.documentElement.dataset.pageType === 'video') { this.elements.player.seekTo(0); } }; - /*------------------------------------------------------------------------------ -4.4.2 AUTOPAUSE WHEN SWITCHING TABS +AUTOPAUSE WHEN SWITCHING TABS ------------------------------------------------------------------------------*/ - ImprovedTube.playerAutopauseWhenSwitchingTabs = function () { var player = ImprovedTube.elements.player; @@ -53,12 +44,9 @@ ImprovedTube.playerAutopauseWhenSwitchingTabs = function () { } } }; - - /*------------------------------------------------------------------------------ -4.4.2 AUTO PIP WHEN SWITCHING TABS +AUTO PIP WHEN SWITCHING TABS ------------------------------------------------------------------------------*/ - ImprovedTube.playerAutoPip = function () { const video = ImprovedTube.elements.video; @@ -72,11 +60,9 @@ ImprovedTube.playerAutoPip = function () { })(); } }; - /*------------------------------------------------------------------------------ -4.4.3 FORCED PLAYBACK SPEED +FORCED PLAYBACK SPEED ------------------------------------------------------------------------------*/ - ImprovedTube.playerPlaybackSpeed = function (change) { var player = this.elements.player, video = player.querySelector('video'), @@ -111,12 +97,9 @@ ImprovedTube.playerPlaybackSpeed = function (change) { } }, intervalMs); }; - - /*------------------------------------------------------------------------------ -4.4.4 SUBTITLES +SUBTITLES ------------------------------------------------------------------------------*/ - ImprovedTube.subtitles = function () { if (this.storage.player_subtitles === true) { var player = this.elements.player; @@ -125,17 +108,12 @@ ImprovedTube.subtitles = function () { player.toggleSubtitlesOn(); } } -}; - - +}; /*------------------------------------------------------------------------------ -4.4.4.1 SUBTITLES LANGUAGE +SUBTITLES LANGUAGE ------------------------------------------------------------------------------*/ - ImprovedTube.subtitlesLanguage = function () { - var option = this.storage.subtitles_language, - autoGenerate = this.storage.auto_generate; - + var option = this.storage.subtitles_language; if (this.isset(option) && option !== 'default') { var player = this.elements.player, button = this.elements.player_subtitles_button; @@ -148,25 +126,19 @@ ImprovedTube.subtitlesLanguage = function () { var matchTrack = false; for (var i =0, l = tracklist.length; i= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.elements.player.classList.contains('ytp-player-minimized') === false) { - ImprovedTube.mini_player__mode = true; + player.setPlaybackQualityRange(quality); + player.setPlaybackQuality(quality); + player.dataset.defaultQuality = quality; + } + } +}; +/*------------------------------------------------------------------------------ +CODEC H.264 +------------------------------------------------------------------------------*/ +ImprovedTube.playerH264 = function () { + if (this.storage.player_h264 === true) { + var canPlayType = HTMLMediaElement.prototype.canPlayType; - ImprovedTube.mini_player__original_width = ImprovedTube.elements.player.offsetWidth; - ImprovedTube.mini_player__original_height = ImprovedTube.elements.player.offsetHeight; + function overwrite(self, callback, mime) { + if (/webm|vp8|vp9/.test(mime)) { + return false; + } else { + return callback.call(self, mime); + } + } - ImprovedTube.elements.player.classList.add('it-mini-player'); + if (window.MediaSource) { + var isTypeSupported = window.MediaSource.isTypeSupported; - ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); - ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); + window.MediaSource.isTypeSupported = function (mime) { + return overwrite(this, isTypeSupported, mime); + }; + } - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); + HTMLMediaElement.prototype.canPlayType = function (mime) { + var status = overwrite(this, canPlayType, mime); - ImprovedTube.elements.player.style.transform = 'translate(' + ImprovedTube.mini_player__x + 'px, ' + ImprovedTube.mini_player__y + 'px)'; + if (!status) { + return ''; + } else { + return status; + } + }; + } +}; +/*------------------------------------------------------------------------------ +ALLOW 60FPS +------------------------------------------------------------------------------*/ +ImprovedTube.player60fps = function () { + if (this.storage.player_60fps === false) { + var canPlayType = HTMLMediaElement.prototype.canPlayType; - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height, true, true); + function overwrite(self, callback, mime) { + var match = /framerate=(\d+)/.exec(mime); - window.addEventListener('mousedown', ImprovedTube.miniPlayer_mouseDown); - window.addEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); + if (match && match[1] > 30) { + return ''; + } else { + return callback.call(self, mime); + } + } - window.dispatchEvent(new Event('resize')); - } else if (window.scrollY < 256 && ImprovedTube.mini_player__mode === true || ImprovedTube.elements.player.classList.contains('ytp-player-minimized') === true) { - ImprovedTube.mini_player__mode = false; - ImprovedTube.elements.player.classList.remove('it-mini-player'); - ImprovedTube.mini_player__move = false; - ImprovedTube.elements.player.style.transform = 'translate(' + 0 + 'px, ' + 0 + 'px)'; - ImprovedTube.elements.player.style.width = ''; - ImprovedTube.elements.player.style.height = ''; + if (window.MediaSource) { + var isTypeSupported = window.MediaSource.isTypeSupported; - ImprovedTube.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); + window.MediaSource.isTypeSupported = function (mime) { + return overwrite(this, isTypeSupported, mime); + }; + } - window.removeEventListener('mousedown', ImprovedTube.miniPlayer_mouseDown); - window.removeEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); + HTMLMediaElement.prototype.canPlayType = function (mime) { + var status = overwrite(this, canPlayType, mime); - window.dispatchEvent(new Event('resize')); + if (!status) { + return ''; + } else { + return status; + } + }; } }; +/*------------------------------------------------------------------------------ +FORCED VOLUME +------------------------------------------------------------------------------*/ +ImprovedTube.playerVolume = function () { + if (this.storage.player_forced_volume === true) { + var volume = this.storage.player_volume; -ImprovedTube.miniPlayer_mouseDown = function (event) { - if (event.button !== 0) { - return false; - } + if (!this.isset(volume)) { + volume = 100; + } else { + volume = Number(volume); + } - if (ImprovedTube.miniPlayer_resize() === true) { - return false; + this.elements.player.setVolume(volume); } +}; +/*------------------------------------------------------------------------------ +LOUDNESS NORMALIZATION +------------------------------------------------------------------------------*/ +ImprovedTube.onvolumechange = function (event) { + if (document.querySelector('.ytp-volume-panel') && ImprovedTube.storage.player_loudness_normalization === false) { + var volume = Number(document.querySelector('.ytp-volume-panel').getAttribute('aria-valuenow')); - var is_player = false, - path = event.composedPath(); - - for (var i = 0, l = path.length; i < l; i++) { - if ((path[i].classList && path[i].classList.contains('it-mini-player')) === true) { - is_player = true; - } + this.volume = volume / 100; } +}; - if (is_player === false) { - return false; - } +ImprovedTube.playerLoudnessNormalization = function () { + var video = this.elements.video; - event.preventDefault(); + if (video) { + video.removeEventListener('volumechange', this.onvolumechange); + video.addEventListener('volumechange', this.onvolumechange); + } - var bcr = ImprovedTube.elements.player.getBoundingClientRect(); + if (this.storage.player_loudness_normalization === false) { + try { + var local_storage = localStorage['yt-player-volume']; - ImprovedTube.miniPlayer_mouseDown_x = event.clientX; - ImprovedTube.miniPlayer_mouseDown_y = event.clientY; - ImprovedTube.mini_player__width = bcr.width; - ImprovedTube.mini_player__height = bcr.height; + if (this.isset(Number(this.storage.player_volume)) && this.storage.player_forced_volume === true) { - ImprovedTube.mini_player__player_offset_x = event.clientX - bcr.x; - ImprovedTube.mini_player__player_offset_y = event.clientY - bcr.y; + } else if (local_storage) { + local_storage = JSON.parse(JSON.parse(local_storage).data); - ImprovedTube.mini_player__max_x = document.body.offsetWidth - ImprovedTube.mini_player__width; - ImprovedTube.mini_player__max_y = window.innerHeight - ImprovedTube.mini_player__height; + local_storage = Number(local_storage.volume); - window.addEventListener('mouseup', ImprovedTube.miniPlayer_mouseUp); - window.addEventListener('mousemove', ImprovedTube.miniPlayer_mouseMove); + video.volume = local_storage / 100; + } else { + video.volume = 100; + } + } catch (err) {} + } }; +/*------------------------------------------------------------------------------ +SCREENSHOT +------------------------------------------------------------------------------*/ +ImprovedTube.screenshot = function () { + var video = ImprovedTube.elements.video, + style = document.createElement('style'), + cvs = document.createElement('canvas'), + ctx = cvs.getContext('2d'); -ImprovedTube.miniPlayer_mouseUp = function () { - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; + style.textContent = 'video{width:' + video.videoWidth + 'px !important;height:' + video.videoHeight + 'px !important}'; - strg.x = ImprovedTube.mini_player__x; - strg.y = ImprovedTube.mini_player__y; - - localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - - window.removeEventListener('mouseup', ImprovedTube.miniPlayer_mouseUp); - window.removeEventListener('mousemove', ImprovedTube.miniPlayer_mouseMove); - - ImprovedTube.mini_player__move = false; - - setTimeout(function () { - window.removeEventListener('click', ImprovedTube.miniPlayer_click, true); - }); -}; - -ImprovedTube.miniPlayer_click = function (event) { - event.stopPropagation(); - event.preventDefault(); -}; - -ImprovedTube.miniPlayer_mouseMove = function (event) { - if ( - event.clientX < ImprovedTube.miniPlayer_mouseDown_x - 5 || - event.clientY < ImprovedTube.miniPlayer_mouseDown_y - 5 || - event.clientX > ImprovedTube.miniPlayer_mouseDown_x + 5 || - event.clientY > ImprovedTube.miniPlayer_mouseDown_y + 5 - ) { - var x = event.clientX - ImprovedTube.mini_player__player_offset_x, - y = event.clientY - ImprovedTube.mini_player__player_offset_y; - - if (ImprovedTube.mini_player__move === false) { - ImprovedTube.mini_player__move = true; - - window.addEventListener('click', ImprovedTube.miniPlayer_click, true); - } - - if (x < 0) { - x = 0; - } - - if (y < 0) { - y = 0; - } - - if (x > ImprovedTube.mini_player__max_x) { - x = ImprovedTube.mini_player__max_x; - } - - if (y > ImprovedTube.mini_player__max_y) { - y = ImprovedTube.mini_player__max_y; - } - - ImprovedTube.mini_player__x = x; - ImprovedTube.mini_player__y = y; - - ImprovedTube.elements.player.style.transform = 'translate(' + x + 'px, ' + y + 'px)'; - } -}; - -ImprovedTube.miniPlayer_cursorUpdate = function (event) { - var x = event.clientX, - y = event.clientY, - c = ImprovedTube.mini_player__cursor; - - if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.miniPlayer_resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.miniPlayer_resize_offset - ) { - c = 'ne-resize'; - } else if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.miniPlayer_resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.miniPlayer_resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'se-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.miniPlayer_resize_offset && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.miniPlayer_resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'sw-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.miniPlayer_resize_offset && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.miniPlayer_resize_offset - ) { - c = 'nw-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.miniPlayer_resize_offset - ) { - c = 'n-resize'; - } else if ( - x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.miniPlayer_resize_offset && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'e-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && - y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.miniPlayer_resize_offset && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 's-resize'; - } else if ( - x >= ImprovedTube.mini_player__x && - x <= ImprovedTube.mini_player__x + ImprovedTube.miniPlayer_resize_offset && - y >= ImprovedTube.mini_player__y && - y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ) { - c = 'w-resize'; - } else { - c = ''; - } - - if (ImprovedTube.mini_player__cursor !== c) { - ImprovedTube.mini_player__cursor = c; - - document.documentElement.setAttribute('it-mini-player-cursor', ImprovedTube.mini_player__cursor); - } -}; - -ImprovedTube.miniPlayer_resize = function (event) { - if (ImprovedTube.mini_player__cursor !== '') { - window.removeEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); - window.addEventListener('mouseup', ImprovedTube.miniPlayer_resizeMouseUp); - window.addEventListener('mousemove', ImprovedTube.miniPlayer_resizeMouseMove); - - return true; - } -}; - -ImprovedTube.miniPlayer_resizeMouseMove = function (event) { - if (ImprovedTube.mini_player__cursor === 'n-resize') { - ImprovedTube.elements.player.style.transform = 'translate(' + ImprovedTube.mini_player__x + 'px, ' + event.clientY + 'px)'; - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); - } else if (ImprovedTube.mini_player__cursor === 'e-resize') { - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__height); - } else if (ImprovedTube.mini_player__cursor === 's-resize') { - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, event.clientY - ImprovedTube.mini_player__y); - } else if (ImprovedTube.mini_player__cursor === 'w-resize') { - ImprovedTube.elements.player.style.transform = 'translate(' + event.clientX + 'px, ' + ImprovedTube.mini_player__y + 'px)'; - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__height); - } else if (ImprovedTube.mini_player__cursor === 'ne-resize') { - ImprovedTube.elements.player.style.transform = 'translate(' + ImprovedTube.mini_player__x + 'px, ' + event.clientY + 'px)'; - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY, true); - } else if (ImprovedTube.mini_player__cursor === 'se-resize') { - ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, event.clientY - ImprovedTube.mini_player__y, true); - } else if (ImprovedTube.mini_player__cursor === 'sw-resize') { - ImprovedTube.elements.player.style.transform = 'translate(' + event.clientX + 'px, ' + ImprovedTube.mini_player__y + 'px)'; - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, event.clientY - ImprovedTube.mini_player__y, true); - } else if (ImprovedTube.mini_player__cursor === 'nw-resize') { - ImprovedTube.elements.player.style.transform = 'translate(' + event.clientX + 'px, ' + event.clientY + 'px)'; - ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY, true); - } -}; - -ImprovedTube.miniPlayer_resizeMouseUp = function (event) { - var bcr = ImprovedTube.elements.player.getBoundingClientRect(); - - ImprovedTube.mini_player__x = bcr.left; - ImprovedTube.mini_player__y = bcr.top; - ImprovedTube.mini_player__width = bcr.width; - ImprovedTube.mini_player__height = bcr.height; - - window.dispatchEvent(new Event('resize')); - - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - - strg.width = ImprovedTube.mini_player__width; - strg.height = ImprovedTube.mini_player__height; - - localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - - window.addEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); - window.removeEventListener('mouseup', ImprovedTube.miniPlayer_resizeMouseUp); - window.removeEventListener('mousemove', ImprovedTube.miniPlayer_resizeMouseMove); -}; - -ImprovedTube.miniPlayer = function () { - if (this.storage.mini_player === true) { - var data = localStorage.getItem('improedtube-mini-player'); - - try { - if (this.isset(data)) { - data = JSON.parse(data); - } else { - data = {}; - } - } catch (error) { - data = {}; - } - - data.x = data.x || 16; - data.y = data.y || 16; - data.width = data.width || 200; - data.height = data.height || 150; - - this.mini_player__x = data.x; - this.mini_player__y = data.y; - this.mini_player__width = data.width; - this.mini_player__height = data.height; - - window.removeEventListener('scroll', this.miniPlayer_scroll); - window.addEventListener('scroll', this.miniPlayer_scroll); - } else { - this.mini_player__mode = false; - this.elements.player.classList.remove('it-mini-player'); - this.mini_player__move = false; - - this.elements.player.style.width = ''; - this.elements.player.style.height = ''; - this.elements.player.style.transform = 'translate(' + 0 + 'px, ' + 0 + 'px)'; - - this.elements.player.classList.remove('it-mini-player'); - - this.mini_player__cursor = ''; - document.documentElement.removeAttribute('it-mini-player-cursor'); - - window.dispatchEvent(new Event('resize')); - - window.removeEventListener('mousedown', this.miniPlayer_mouseDown); - window.removeEventListener('mousemove', this.miniPlayer_mouseMove); - window.removeEventListener('mouseup', this.miniPlayer_mouseUp); - window.removeEventListener('click', this.miniPlayer_click); - window.removeEventListener('scroll', this.miniPlayer_scroll); - window.removeEventListener('mousemove', this.miniPlayer_cursorUpdate); - } -}; - - -/*------------------------------------------------------------------------------ -4.4.8 AUTO FULLSCREEN -------------------------------------------------------------------------------*/ - -ImprovedTube.playerAutofullscreen = function () { - if ( - this.storage.player_autofullscreen === true && - document.documentElement.dataset.pageType === 'video' && - !document.fullscreenElement - ) { - this.elements.player.toggleFullscreen(); - } -}; - - -/*------------------------------------------------------------------------------ -4.4.9 QUALITY -------------------------------------------------------------------------------*/ - -ImprovedTube.playerQuality = function () { - var player = this.elements.player, - quality = this.storage.player_quality; - - if (player && player.getAvailableQualityLevels && !player.dataset.defaultQuality) { - var available_quality_levels = player.getAvailableQualityLevels(); - - if (quality && quality !== 'auto') { - if (available_quality_levels.includes(quality) === false) { - quality = available_quality_levels[0]; - } - - player.setPlaybackQualityRange(quality); - player.setPlaybackQuality(quality); - player.dataset.defaultQuality = quality; - } - } -}; - - -/*------------------------------------------------------------------------------ -4.4.10 CODEC H.264 -------------------------------------------------------------------------------*/ - -ImprovedTube.playerH264 = function () { - if (this.storage.player_h264 === true) { - var canPlayType = HTMLMediaElement.prototype.canPlayType; - - function overwrite(self, callback, mime) { - if (/webm|vp8|vp9/.test(mime)) { - return false; - } else { - return callback.call(self, mime); - } - } - - if (window.MediaSource) { - var isTypeSupported = window.MediaSource.isTypeSupported; - - window.MediaSource.isTypeSupported = function (mime) { - return overwrite(this, isTypeSupported, mime); - }; - } - - HTMLMediaElement.prototype.canPlayType = function (mime) { - var status = overwrite(this, canPlayType, mime); - - if (!status) { - return ''; - } else { - return status; - } - }; - } -}; - - -/*------------------------------------------------------------------------------ -4.4.11 ALLOW 60FPS -------------------------------------------------------------------------------*/ - -ImprovedTube.player60fps = function () { - if (this.storage.player_60fps === false) { - var canPlayType = HTMLMediaElement.prototype.canPlayType; - - function overwrite(self, callback, mime) { - var match = /framerate=(\d+)/.exec(mime); - - if (match && match[1] > 30) { - return ''; - } else { - return callback.call(self, mime); - } - } - - if (window.MediaSource) { - var isTypeSupported = window.MediaSource.isTypeSupported; - - window.MediaSource.isTypeSupported = function (mime) { - return overwrite(this, isTypeSupported, mime); - }; - } - - HTMLMediaElement.prototype.canPlayType = function (mime) { - var status = overwrite(this, canPlayType, mime); - - if (!status) { - return ''; - } else { - return status; - } - }; - } -}; - - -/*------------------------------------------------------------------------------ -4.4.12 FORCED VOLUME -------------------------------------------------------------------------------*/ - -ImprovedTube.playerVolume = function () { - if (this.storage.player_forced_volume === true) { - var volume = this.storage.player_volume; - - if (!this.isset(volume)) { - volume = 100; - } else { - volume = Number(volume); - } - - this.elements.player.setVolume(volume); - } -}; - - -/*------------------------------------------------------------------------------ -4.4.13 LOUDNESS NORMALIZATION -------------------------------------------------------------------------------*/ - -ImprovedTube.onvolumechange = function (event) { - if (document.querySelector('.ytp-volume-panel') && ImprovedTube.storage.player_loudness_normalization === false) { - var volume = Number(document.querySelector('.ytp-volume-panel').getAttribute('aria-valuenow')); - - this.volume = volume / 100; - } -}; - -ImprovedTube.playerLoudnessNormalization = function () { - var video = this.elements.video; - - if (video) { - video.removeEventListener('volumechange', this.onvolumechange); - video.addEventListener('volumechange', this.onvolumechange); - } - - if (this.storage.player_loudness_normalization === false) { - try { - var local_storage = localStorage['yt-player-volume']; - - if (this.isset(Number(this.storage.player_volume)) && this.storage.player_forced_volume === true) { - - } else if (local_storage) { - local_storage = JSON.parse(JSON.parse(local_storage).data); - - local_storage = Number(local_storage.volume); - - video.volume = local_storage / 100; - } else { - video.volume = 100; - } - } catch (err) {} - } -}; - - -/*------------------------------------------------------------------------------ -4.4.14 SCREENSHOT -------------------------------------------------------------------------------*/ - -ImprovedTube.screenshot = function () { - var video = ImprovedTube.elements.video, - style = document.createElement('style'), - cvs = document.createElement('canvas'), - ctx = cvs.getContext('2d'); - - style.textContent = 'video{width:' + video.videoWidth + 'px !important;height:' + video.videoHeight + 'px !important}'; - - cvs.width = video.videoWidth; - cvs.height = video.videoHeight; + cvs.width = video.videoWidth; + cvs.height = video.videoHeight; document.body.appendChild(style); @@ -999,12 +578,9 @@ ImprovedTube.playerScreenshotButton = function () { this.elements.buttons['it-screenshot-styles'].remove(); } }; - - /*------------------------------------------------------------------------------ -4.4.15 REPEAT +REPEAT ------------------------------------------------------------------------------*/ - ImprovedTube.playerRepeatButton = function (node) { if (this.storage.player_repeat_button === true) { var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), @@ -1045,12 +621,9 @@ ImprovedTube.playerRepeatButton = function (node) { this.elements.buttons['it-repeat-styles'].remove(); } }; - - /*------------------------------------------------------------------------------ -4.4.16 ROTATE +ROTATE ------------------------------------------------------------------------------*/ - ImprovedTube.playerRotateButton = function () { if (this.storage.player_rotate_button === true) { var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), @@ -1071,123 +644,453 @@ ImprovedTube.playerRotateButton = function () { rotate = Number(document.body.dataset.itRotate) || 0, transform = ''; - rotate += 90; + rotate += 90; + + if (rotate === 360) { + rotate = 0; + } + + document.body.dataset.itRotate = rotate; + + transform += 'rotate(' + rotate + 'deg)'; + + if (rotate == 90 || rotate == 270) { + var is_vertical_video = video.videoHeight > video.videoWidth; + + transform += ' scale(' + (is_vertical_video ? player.clientWidth : player.clientHeight) / (is_vertical_video ? player.clientHeight : player.clientWidth) + ')'; + } + + if (!ImprovedTube.elements.buttons['it-rotate-styles']) { + var style = document.createElement('style'); + + ImprovedTube.elements.buttons['it-rotate-styles'] = style; + + document.body.appendChild(style); + } + + ImprovedTube.elements.buttons['it-rotate-styles'].textContent = 'video{transform:' + transform + '}'; + }, + title: 'Rotate' + }); + } else if (this.elements.buttons['it-rotate-button']) { + this.elements.buttons['it-rotate-button'].remove(); + this.elements.buttons['it-rotate-styles'].remove(); + } +}; +/*------------------------------------------------------------------------------ +POPUP PLAYER +------------------------------------------------------------------------------*/ +ImprovedTube.playerPopupButton = function () { + if (this.storage.player_popup_button === true) { + var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + + svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); + path.setAttributeNS(null, 'd', 'M19 7h-8v6h8V7zm2-4H3C2 3 1 4 1 5v14c0 1 1 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 16H3V5h18v14z'); + + svg.appendChild(path); + + this.createPlayerButton({ + id: 'it-popup-player-button', + child: svg, + opacity: 1, + onclick: function () { + var player = ImprovedTube.elements.player; + + player.pauseVideo(); + + window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(player.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + player.offsetWidth + ',height=' + player.offsetHeight); + }, + title: 'Popup' + }); + } else if (this.elements.buttons['it-popup-player-button']) { + this.elements.buttons['it-popup-player-button'].remove(); + } +}; +/*------------------------------------------------------------------------------ +Force SDR +------------------------------------------------------------------------------*/ +ImprovedTube.playerSDR = function () { + if (this.storage.player_SDR === true) { + Object.defineProperty(window.screen, 'pixelDepth', { + enumerable: true, + configurable: true, + value: 24 + }); + } +}; +/*------------------------------------------------------------------------------ +Hide controls +------------------------------------------------------------------------------*/ +ImprovedTube.playerControls = function (pause=false) { + var player = this.elements.player; if (player) { + let hide = this.storage.player_hide_controls; + if (hide === 'always') { + player.hideControls(); + } else if(hide === 'off') { + player.showControls(); + } else if(hide === 'when_paused') { + if(this.elements.video.paused){ + player.hideControls( ); + + ImprovedTube.elements.player.parentNode.addEventListener('mouseenter', function () { + player.showControls();}); + ImprovedTube.elements.player.parentNode.addEventListener('mouseleave', function () { + player.hideControls( );}); + + + ImprovedTube.elements.player.parentNode.onmousemove = (function() { + let onmousestop = function() { + player.hideControls( ); + }, thread; + + return function() { + player.showControls(); + clearTimeout(thread); + thread = setTimeout(onmousestop, 1000); + }; + })(); + }} else { player.showControls(); } +} +}; +/*------------------------------------------------------------------------------ +CUSTOM MINI-PLAYER +------------------------------------------------------------------------------*/ +ImprovedTube.mini_player__setSize = function (width, height, keep_ar, keep_area) { + if (keep_ar) { + const aspect_ratio = ImprovedTube.elements.video.style.width.replace('px', '') / ImprovedTube.elements.video.style.height.replace('px', ''); + if (keep_area) { + height = Math.sqrt((width * height) / aspect_ratio); + width = height * aspect_ratio; + } else { + height = width / aspect_ratio; + } + } + + ImprovedTube.elements.player.style.width = width + 'px'; + ImprovedTube.elements.player.style.height = height + 'px'; +}; + +ImprovedTube.miniPlayer_scroll = function () { + if (window.scrollY >= 256 && ImprovedTube.mini_player__mode === false && ImprovedTube.elements.player.classList.contains('ytp-player-minimized') === false) { + ImprovedTube.mini_player__mode = true; + + ImprovedTube.mini_player__original_width = ImprovedTube.elements.player.offsetWidth; + ImprovedTube.mini_player__original_height = ImprovedTube.elements.player.offsetHeight; + + ImprovedTube.elements.player.classList.add('it-mini-player'); + + ImprovedTube.mini_player__x = Math.max(0, Math.min(ImprovedTube.mini_player__x, document.body.offsetWidth - ImprovedTube.mini_player__width)); + ImprovedTube.mini_player__y = Math.max(0, Math.min(ImprovedTube.mini_player__y, window.innerHeight - ImprovedTube.mini_player__height)); + + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); + + ImprovedTube.elements.player.style.transform = 'translate(' + ImprovedTube.mini_player__x + 'px, ' + ImprovedTube.mini_player__y + 'px)'; + + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__height, true, true); + + window.addEventListener('mousedown', ImprovedTube.miniPlayer_mouseDown); + window.addEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); + + window.dispatchEvent(new Event('resize')); + } else if (window.scrollY < 256 && ImprovedTube.mini_player__mode === true || ImprovedTube.elements.player.classList.contains('ytp-player-minimized') === true) { + ImprovedTube.mini_player__mode = false; + ImprovedTube.elements.player.classList.remove('it-mini-player'); + ImprovedTube.mini_player__move = false; + ImprovedTube.elements.player.style.transform = 'translate(' + 0 + 'px, ' + 0 + 'px)'; + ImprovedTube.elements.player.style.width = ''; + ImprovedTube.elements.player.style.height = ''; + + ImprovedTube.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); + + window.removeEventListener('mousedown', ImprovedTube.miniPlayer_mouseDown); + window.removeEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); + + window.dispatchEvent(new Event('resize')); + } +}; + +ImprovedTube.miniPlayer_mouseDown = function (event) { + if (event.button !== 0) { + return false; + } + + if (ImprovedTube.miniPlayer_resize() === true) { + return false; + } + + var is_player = false, + path = event.composedPath(); + + for (var i = 0, l = path.length; i < l; i++) { + if ((path[i].classList && path[i].classList.contains('it-mini-player')) === true) { + is_player = true; + } + } + + if (is_player === false) { + return false; + } + + event.preventDefault(); + + var bcr = ImprovedTube.elements.player.getBoundingClientRect(); + + ImprovedTube.miniPlayer_mouseDown_x = event.clientX; + ImprovedTube.miniPlayer_mouseDown_y = event.clientY; + ImprovedTube.mini_player__width = bcr.width; + ImprovedTube.mini_player__height = bcr.height; + + ImprovedTube.mini_player__player_offset_x = event.clientX - bcr.x; + ImprovedTube.mini_player__player_offset_y = event.clientY - bcr.y; + + ImprovedTube.mini_player__max_x = document.body.offsetWidth - ImprovedTube.mini_player__width; + ImprovedTube.mini_player__max_y = window.innerHeight - ImprovedTube.mini_player__height; + + window.addEventListener('mouseup', ImprovedTube.miniPlayer_mouseUp); + window.addEventListener('mousemove', ImprovedTube.miniPlayer_mouseMove); +}; + +ImprovedTube.miniPlayer_mouseUp = function () { + var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; + + strg.x = ImprovedTube.mini_player__x; + strg.y = ImprovedTube.mini_player__y; + + localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); + + window.removeEventListener('mouseup', ImprovedTube.miniPlayer_mouseUp); + window.removeEventListener('mousemove', ImprovedTube.miniPlayer_mouseMove); + + ImprovedTube.mini_player__move = false; + + setTimeout(function () { + window.removeEventListener('click', ImprovedTube.miniPlayer_click, true); + }); +}; + +ImprovedTube.miniPlayer_click = function (event) { + event.stopPropagation(); + event.preventDefault(); +}; + +ImprovedTube.miniPlayer_mouseMove = function (event) { + if ( + event.clientX < ImprovedTube.miniPlayer_mouseDown_x - 5 || + event.clientY < ImprovedTube.miniPlayer_mouseDown_y - 5 || + event.clientX > ImprovedTube.miniPlayer_mouseDown_x + 5 || + event.clientY > ImprovedTube.miniPlayer_mouseDown_y + 5 + ) { + var x = event.clientX - ImprovedTube.mini_player__player_offset_x, + y = event.clientY - ImprovedTube.mini_player__player_offset_y; + + if (ImprovedTube.mini_player__move === false) { + ImprovedTube.mini_player__move = true; + + window.addEventListener('click', ImprovedTube.miniPlayer_click, true); + } + + if (x < 0) { + x = 0; + } + + if (y < 0) { + y = 0; + } + + if (x > ImprovedTube.mini_player__max_x) { + x = ImprovedTube.mini_player__max_x; + } - if (rotate === 360) { - rotate = 0; - } + if (y > ImprovedTube.mini_player__max_y) { + y = ImprovedTube.mini_player__max_y; + } - document.body.dataset.itRotate = rotate; + ImprovedTube.mini_player__x = x; + ImprovedTube.mini_player__y = y; - transform += 'rotate(' + rotate + 'deg)'; + ImprovedTube.elements.player.style.transform = 'translate(' + x + 'px, ' + y + 'px)'; + } +}; - if (rotate == 90 || rotate == 270) { - var is_vertical_video = video.videoHeight > video.videoWidth; +ImprovedTube.miniPlayer_cursorUpdate = function (event) { + var x = event.clientX, + y = event.clientY, + c = ImprovedTube.mini_player__cursor; - transform += ' scale(' + (is_vertical_video ? player.clientWidth : player.clientHeight) / (is_vertical_video ? player.clientHeight : player.clientWidth) + ')'; - } + if ( + x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.miniPlayer_resize_offset && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.miniPlayer_resize_offset + ) { + c = 'ne-resize'; + } else if ( + x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.miniPlayer_resize_offset && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.miniPlayer_resize_offset && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'se-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.miniPlayer_resize_offset && + y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.miniPlayer_resize_offset && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'sw-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.miniPlayer_resize_offset && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.miniPlayer_resize_offset + ) { + c = 'nw-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.miniPlayer_resize_offset + ) { + c = 'n-resize'; + } else if ( + x >= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - ImprovedTube.miniPlayer_resize_offset && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'e-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.mini_player__width && + y >= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - ImprovedTube.miniPlayer_resize_offset && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 's-resize'; + } else if ( + x >= ImprovedTube.mini_player__x && + x <= ImprovedTube.mini_player__x + ImprovedTube.miniPlayer_resize_offset && + y >= ImprovedTube.mini_player__y && + y <= ImprovedTube.mini_player__y + ImprovedTube.mini_player__height + ) { + c = 'w-resize'; + } else { + c = ''; + } - if (!ImprovedTube.elements.buttons['it-rotate-styles']) { - var style = document.createElement('style'); + if (ImprovedTube.mini_player__cursor !== c) { + ImprovedTube.mini_player__cursor = c; - ImprovedTube.elements.buttons['it-rotate-styles'] = style; + document.documentElement.setAttribute('it-mini-player-cursor', ImprovedTube.mini_player__cursor); + } +}; - document.body.appendChild(style); - } +ImprovedTube.miniPlayer_resize = function (event) { + if (ImprovedTube.mini_player__cursor !== '') { + window.removeEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); + window.addEventListener('mouseup', ImprovedTube.miniPlayer_resizeMouseUp); + window.addEventListener('mousemove', ImprovedTube.miniPlayer_resizeMouseMove); - ImprovedTube.elements.buttons['it-rotate-styles'].textContent = 'video{transform:' + transform + '}'; - }, - title: 'Rotate' - }); - } else if (this.elements.buttons['it-rotate-button']) { - this.elements.buttons['it-rotate-button'].remove(); - this.elements.buttons['it-rotate-styles'].remove(); + return true; } }; +ImprovedTube.miniPlayer_resizeMouseMove = function (event) { + if (ImprovedTube.mini_player__cursor === 'n-resize') { + ImprovedTube.elements.player.style.transform = 'translate(' + ImprovedTube.mini_player__x + 'px, ' + event.clientY + 'px)'; + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY); + } else if (ImprovedTube.mini_player__cursor === 'e-resize') { + ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__height); + } else if (ImprovedTube.mini_player__cursor === 's-resize') { + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__width, event.clientY - ImprovedTube.mini_player__y); + } else if (ImprovedTube.mini_player__cursor === 'w-resize') { + ImprovedTube.elements.player.style.transform = 'translate(' + event.clientX + 'px, ' + ImprovedTube.mini_player__y + 'px)'; + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__height); + } else if (ImprovedTube.mini_player__cursor === 'ne-resize') { + ImprovedTube.elements.player.style.transform = 'translate(' + ImprovedTube.mini_player__x + 'px, ' + event.clientY + 'px)'; + ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY, true); + } else if (ImprovedTube.mini_player__cursor === 'se-resize') { + ImprovedTube.mini_player__setSize(event.clientX - ImprovedTube.mini_player__x, event.clientY - ImprovedTube.mini_player__y, true); + } else if (ImprovedTube.mini_player__cursor === 'sw-resize') { + ImprovedTube.elements.player.style.transform = 'translate(' + event.clientX + 'px, ' + ImprovedTube.mini_player__y + 'px)'; + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, event.clientY - ImprovedTube.mini_player__y, true); + } else if (ImprovedTube.mini_player__cursor === 'nw-resize') { + ImprovedTube.elements.player.style.transform = 'translate(' + event.clientX + 'px, ' + event.clientY + 'px)'; + ImprovedTube.mini_player__setSize(ImprovedTube.mini_player__x + ImprovedTube.mini_player__width - event.clientX, ImprovedTube.mini_player__y + ImprovedTube.mini_player__height - event.clientY, true); + } +}; -/*------------------------------------------------------------------------------ -4.4.17 POPUP PLAYER -------------------------------------------------------------------------------*/ +ImprovedTube.miniPlayer_resizeMouseUp = function (event) { + var bcr = ImprovedTube.elements.player.getBoundingClientRect(); -ImprovedTube.playerPopupButton = function () { - if (this.storage.player_popup_button === true) { - var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'), - path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + ImprovedTube.mini_player__x = bcr.left; + ImprovedTube.mini_player__y = bcr.top; + ImprovedTube.mini_player__width = bcr.width; + ImprovedTube.mini_player__height = bcr.height; - svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); - path.setAttributeNS(null, 'd', 'M19 7h-8v6h8V7zm2-4H3C2 3 1 4 1 5v14c0 1 1 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 16H3V5h18v14z'); + window.dispatchEvent(new Event('resize')); - svg.appendChild(path); + var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; - this.createPlayerButton({ - id: 'it-popup-player-button', - child: svg, - opacity: 1, - onclick: function () { - var player = ImprovedTube.elements.player; + strg.width = ImprovedTube.mini_player__width; + strg.height = ImprovedTube.mini_player__height; - player.pauseVideo(); + localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); - window.open('//www.youtube.com/embed/' + location.href.match(/watch\?v=([A-Za-z0-9\-\_]+)/g)[0].slice(8) + '?start=' + parseInt(player.getCurrentTime()) + '&autoplay=' + (ImprovedTube.storage.player_autoplay == false ? '0' : '1'), '_blank', 'directories=no,toolbar=no,location=no,menubar=no,status=no,titlebar=no,scrollbars=no,resizable=no,width=' + player.offsetWidth + ',height=' + player.offsetHeight); - }, - title: 'Popup' - }); - } else if (this.elements.buttons['it-popup-player-button']) { - this.elements.buttons['it-popup-player-button'].remove(); - } + window.addEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); + window.removeEventListener('mouseup', ImprovedTube.miniPlayer_resizeMouseUp); + window.removeEventListener('mousemove', ImprovedTube.miniPlayer_resizeMouseMove); }; +ImprovedTube.miniPlayer = function () { + if (this.storage.mini_player === true) { + var data = localStorage.getItem('improedtube-mini-player'); -/*------------------------------------------------------------------------------ -4.4.18 Force SDR -------------------------------------------------------------------------------*/ + try { + if (this.isset(data)) { + data = JSON.parse(data); + } else { + data = {}; + } + } catch (error) { + data = {}; + } -ImprovedTube.playerSDR = function () { - if (this.storage.player_SDR === true) { - Object.defineProperty(window.screen, 'pixelDepth', { - enumerable: true, - configurable: true, - value: 24 - }); - } -}; + data.x = data.x || 16; + data.y = data.y || 16; + data.width = data.width || 200; + data.height = data.height || 150; + this.mini_player__x = data.x; + this.mini_player__y = data.y; + this.mini_player__width = data.width; + this.mini_player__height = data.height; -/*------------------------------------------------------------------------------ -4.4.19 Hide controls -------------------------------------------------------------------------------*/ + window.removeEventListener('scroll', this.miniPlayer_scroll); + window.addEventListener('scroll', this.miniPlayer_scroll); + } else { + this.mini_player__mode = false; + this.elements.player.classList.remove('it-mini-player'); + this.mini_player__move = false; -ImprovedTube.playerControls = function (pause=false) { - var player = this.elements.player; if (player) { - let hide = this.storage.player_hide_controls; - if (hide === 'always') { - player.hideControls(); - } else if(hide === 'off') { - player.showControls(); - } else if(hide === 'when_paused') { - if(this.elements.video.paused){ - player.hideControls( ); - - ImprovedTube.elements.player.parentNode.addEventListener('mouseenter', function () { - player.showControls();}); - ImprovedTube.elements.player.parentNode.addEventListener('mouseleave', function () { - player.hideControls( );}); + this.elements.player.style.width = ''; + this.elements.player.style.height = ''; + this.elements.player.style.transform = 'translate(' + 0 + 'px, ' + 0 + 'px)'; - - ImprovedTube.elements.player.parentNode.onmousemove = (function() { - let onmousestop = function() { - player.hideControls( ); - }, thread; - - return function() { - player.showControls(); - clearTimeout(thread); - thread = setTimeout(onmousestop, 1000); - }; - })(); - }} else { player.showControls(); } -} -}; + this.elements.player.classList.remove('it-mini-player'); + this.mini_player__cursor = ''; + document.documentElement.removeAttribute('it-mini-player-cursor'); + + window.dispatchEvent(new Event('resize')); + window.removeEventListener('mousedown', this.miniPlayer_mouseDown); + window.removeEventListener('mousemove', this.miniPlayer_mouseMove); + window.removeEventListener('mouseup', this.miniPlayer_mouseUp); + window.removeEventListener('click', this.miniPlayer_click); + window.removeEventListener('scroll', this.miniPlayer_scroll); + window.removeEventListener('mousemove', this.miniPlayer_cursorUpdate); + } +}; diff --git a/menu/skeleton-parts/general.js b/menu/skeleton-parts/general.js index cfdb20601..fb4137c11 100644 --- a/menu/skeleton-parts/general.js +++ b/menu/skeleton-parts/general.js @@ -1125,13 +1125,13 @@ extension.skeleton.main.layers.section.general = { component: 'switch', text: 'markWatchedVideos', on: { - click: function () { + click: function () { setTimeout(() => { if (satus.storage.get('mark_watched_videos')) { if (!satus.storage.get('track_watched_videos')) { this.nextSibling.click(); } } - } + } , "250"); } } }, track_watched_videos: { diff --git a/menu/styles/player.css b/menu/styles/player.css index 14698d864..d1b3b3670 100644 --- a/menu/styles/player.css +++ b/menu/styles/player.css @@ -1,9 +1,12 @@ /*-------------------------------------------------------------- >>> PLAYER --------------------------------------------------------------*/ - #forced-volume:not([data-value='true']) + .satus-slider, #forced-playback-speed:not([data-value='true']) + .satus-switch, -#forced-playback-speed:not([data-value='true']) + .satus-switch + .satus-slider { - display: none; -} \ No newline at end of file +#forced-playback-speed:not([data-value='true']) + .satus-switch + .satus-slider + {display: none;} + /*-------------------------------------------------------------- +SUBTITLES +--------------------------------------------------------------*/ +#subtitles-language[data-value='default'] + .satus-switch + {display:none} From af37ce9c758cc55a524f1e4f354f14c0ff90e200 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 6 Apr 2023 15:05:05 +0200 Subject: [PATCH 0932/1224] fix #1532 --- .../www.youtube.com/appearance/comments/comments.css | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/js&css/extension/www.youtube.com/appearance/comments/comments.css b/js&css/extension/www.youtube.com/appearance/comments/comments.css index 39786dfef..58447d7b4 100644 --- a/js&css/extension/www.youtube.com/appearance/comments/comments.css +++ b/js&css/extension/www.youtube.com/appearance/comments/comments.css @@ -24,15 +24,15 @@ min-width: min(calc(100vw - 1000px), 1260px) !important; max-width: 1260px !impo /*-------------------------------------------------------------- # COLLAPSED --------------------------------------------------------------*/ -html[it-comments='collapsed'] ytd-comments:not([it-activated]) ytd-comments-header-renderer::after { +html[it-comments='collapsed'][data-page-type=video] ytd-comments:not([it-activated]) ytd-comments-header-renderer::after { content: 'Show more' !important; } -html[it-comments='collapsed'] ytd-comments[it-activated] ytd-comments-header-renderer::after { +html[it-comments='collapsed'][data-page-type=video] ytd-comments[it-activated] ytd-comments-header-renderer::after { content: 'Show less' !important; } -html[it-comments='collapsed'] ytd-comments ytd-comments-header-renderer::after { +html[it-comments='collapsed'][data-page-type=video] ytd-comments ytd-comments-header-renderer::after { font-family: inherit !important; font-size: 1.6rem !important; font-weight: 400 !important; @@ -50,9 +50,9 @@ html[it-comments='collapsed'] ytd-comments ytd-comments-header-renderer::after { align-items: center !important; } -html[it-comments='collapsed'] ytd-comments:not([it-activated]) ytd-item-section-renderer>#spinner-container, -html[it-comments='collapsed'] ytd-comments:not([it-activated]) ytd-item-section-renderer>#contents, -html[it-comments='collapsed'] ytd-comments:not([it-activated]) ytd-item-section-renderer>#continuations { +html[it-comments='collapsed'][data-page-type=video] ytd-comments:not([it-activated]) ytd-item-section-renderer>#spinner-container, +html[it-comments='collapsed'][data-page-type=video] ytd-comments:not([it-activated]) ytd-item-section-renderer>#contents, +html[it-comments='collapsed'][data-page-type=video] ytd-comments:not([it-activated]) ytd-item-section-renderer>#continuations { visibility: hidden !important; pointer-events: none !important; From 34872ee017583d3bc2f755dc917e69d2b3a11ff3 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Thu, 6 Apr 2023 15:11:42 +0200 Subject: [PATCH 0933/1224] little fixes/updates/polish --- js&css/extension/www.youtube.com/styles.css | 8 +++++++- js&css/web-accessible/functions.js | 3 +-- js&css/web-accessible/www.youtube.com/player.js | 10 +++++----- menu/skeleton-parts/player.js | 9 +++++---- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/js&css/extension/www.youtube.com/styles.css b/js&css/extension/www.youtube.com/styles.css index d2d40e8e5..dbbd2b789 100644 --- a/js&css/extension/www.youtube.com/styles.css +++ b/js&css/extension/www.youtube.com/styles.css @@ -42,11 +42,17 @@ html[it-ads=subscribed_channels] #masthead-ad, html[it-ads=subscribed_channels] *[target-id*='engagement-panel-ads'], html[it-ads=subscribed_channels] .ytd-ad-slot-renderer, html[it-ads=subscribed_channels] yt-mealbar-promo-renderer, +html[it-ads=subscribed_channels] #player .ytp-ad-image-overlay, +html[it-ads=subscribed_channels] #player .video-ads, +html[it-ads=subscribed_channels] #player .ytp-ad-module, html[it-ads=block_all] #related #player-ads, html[it-ads=block_all] #masthead-ad, html[it-ads=block_all] *[target-id*='engagement-panel-ads'], html[it-ads=block_all] .ytd-ad-slot-renderer, -html[it-ads=block_all] yt-mealbar-promo-renderer { +html[it-ads=block_all] yt-mealbar-promo-renderer, +html[it-ads=block_all] #player .ytp-ad-image-overlay, +html[it-ads=block_all] #player .video-ads, +html[it-ads=block_all] #player .ytp-ad-module { display: none !important;} /*------------------------------------------------------------------------------ diff --git a/js&css/web-accessible/functions.js b/js&css/web-accessible/functions.js index aa64bcbf7..1db4426fe 100644 --- a/js&css/web-accessible/functions.js +++ b/js&css/web-accessible/functions.js @@ -334,8 +334,7 @@ ImprovedTube.initPlayer = function () { if (location.href.indexOf('/embed/') === -1) { ImprovedTube.miniPlayer(); - } else { setTimeout(function() { document.querySelectorAll('a.ytp-youtube-button').remove(); - document.querySelector('a.ytp-youtube-button svg path').setAttribute("d","m 45.405 11.073 m -37.302 -0.407 L 10.96 20.86 L 10.96 25.82 L 13.42 25.82 L 13.42 20.86 L 16.32 10.56 L 13.83 10.56 L 12.78 15.25 C 12.49 16.62 12.31 17.59 12.23 18.17 L 12.16 18.17 C 12.097 17.529 11.84 16.38 11.59 15.23 L 10.59 10.56 L 8.1 10.56 Z m 22 0 L 30.1 12.58 L 32.59 12.58 L 32.59 25.82 L 35.06 25.82 L 35.06 12.58 l 2.49 0 l 0 -2.02 l -7.45 0", "important" ) },3000) } + } } }; diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index 8b8e14c33..bed646a71 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -854,12 +854,12 @@ ImprovedTube.miniPlayer_mouseDown = function (event) { }; ImprovedTube.miniPlayer_mouseUp = function () { - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; + var strg = JSON.parse(localStorage.getItem('improvedtube-mini-player')) || {}; strg.x = ImprovedTube.mini_player__x; strg.y = ImprovedTube.mini_player__y; - localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); + localStorage.setItem('improvedtube-mini-player', JSON.stringify(strg)); window.removeEventListener('mouseup', ImprovedTube.miniPlayer_mouseUp); window.removeEventListener('mousemove', ImprovedTube.miniPlayer_mouseMove); @@ -1032,12 +1032,12 @@ ImprovedTube.miniPlayer_resizeMouseUp = function (event) { window.dispatchEvent(new Event('resize')); - var strg = JSON.parse(localStorage.getItem('improedtube-mini-player')) || {}; + var strg = JSON.parse(localStorage.getItem('improvedtube-mini-player')) || {}; strg.width = ImprovedTube.mini_player__width; strg.height = ImprovedTube.mini_player__height; - localStorage.setItem('improedtube-mini-player', JSON.stringify(strg)); + localStorage.setItem('improvedtube-mini-player', JSON.stringify(strg)); window.addEventListener('mousemove', ImprovedTube.miniPlayer_cursorUpdate); window.removeEventListener('mouseup', ImprovedTube.miniPlayer_resizeMouseUp); @@ -1046,7 +1046,7 @@ ImprovedTube.miniPlayer_resizeMouseUp = function (event) { ImprovedTube.miniPlayer = function () { if (this.storage.mini_player === true) { - var data = localStorage.getItem('improedtube-mini-player'); + var data = localStorage.getItem('improvedtube-mini-player'); try { if (this.isset(data)) { diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index b6fc8d56f..18dd3496f 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -190,13 +190,10 @@ extension.skeleton.main.layers.section.player.on.click = { component: 'switch', text: 'subtitles' }, - auto_generate: { - component: 'switch', - text: 'Allow auto generate' - }, subtitles_language: { component: 'select', text: 'language', + id: 'subtitles-language', options: [{ value: 'default', text: 'default' @@ -639,6 +636,10 @@ extension.skeleton.main.layers.section.player.on.click = { } ] }, + auto_generate: { + component: 'switch', + text: 'Allow auto generate' + }, subtitles_font_family: { component: 'select', text: 'fontFamily', From 0bc821245347fa29dc035330f55574280de06a4b Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 7 Apr 2023 20:51:27 +0200 Subject: [PATCH 0934/1224] cosmetics & #1544 --- .../appearance/details/details.css | 134 +++++------------- js&css/web-accessible/core.js | 3 +- js&css/web-accessible/functions.js | 32 +++-- .../www.youtube.com/appearance.js | 37 +---- .../web-accessible/www.youtube.com/player.js | 11 +- menu/styles/appearance.css | 22 +-- 6 files changed, 77 insertions(+), 162 deletions(-) diff --git a/js&css/extension/www.youtube.com/appearance/details/details.css b/js&css/extension/www.youtube.com/appearance/details/details.css index af75b844c..91c8d6eda 100644 --- a/js&css/extension/www.youtube.com/appearance/details/details.css +++ b/js&css/extension/www.youtube.com/appearance/details/details.css @@ -2,56 +2,45 @@ >>> DETAILS ---------------------------------------------------------------- /*-------------------------------------------------------------- -# General +General --------------------------------------------------------------*/ #info #info-text { max-height: 6rem; display: block; } - /*-------------------------------------------------------------- -# HIDE DETAILS +HIDE DETAILS --------------------------------------------------------------*/ - html[it-hide-details='true'] ytd-video-primary-info-renderer, html[it-hide-details='true'] ytd-video-secondary-info-renderer, html[it-hide-details='true'] ytd-watch-metadata { display: none !important; } - - /*-------------------------------------------------------------- -# HIDE VIEWS COUNT +HIDE VIEWS COUNT --------------------------------------------------------------*/ - html[it-hide-views-count='true'] #info #count, html[it-hide-views-count='true'] #info #count + #info-strings>#dot, html[it-hide-views-count='true'] ytd-watch-metadata #info>span:first-child { display: none !important; } - /*-------------------------------------------------------------- -# HIDE COMMENTS COUNT +HIDE COMMENTS COUNT --------------------------------------------------------------*/ - html[it-hide-comments-count='true'] #comments #count { display: none !important; } - /*-------------------------------------------------------------- -# HIDE DATE +HIDE DATE --------------------------------------------------------------*/ - html[it-hide-date='true'] #info #count + #info-strings>yt-formatted-string, html[it-hide-date='true'] #info #count + #info-strings>#dot, html[it-hide-date='true'] ytd-watch-metadata #info>span:last-child { display: none !important; } - - /*-------------------------------------------------------------- +/*-------------------------------------------------------------- YouTube's detail buttons --------------------------------------------------------------*/ - html[it-youtubeDetailButtons='remove_labels'] #menu ytd-button-renderer div:nth-child(2), html[it-youtubeDetailButtons='remove_labels'] #menu ytd-button-renderer .cbox, html[it-youtubeDetailButtons='remove_labels'] #subscribe-button .cbox, @@ -65,19 +54,15 @@ html[it-youtubeDetailButtons='half_transparent'] #menu button {opacity:0.5;} html[it-youtubeDetailButtons='transparent_background'] #subscribe-button button, html[it-youtubeDetailButtons='transparent_background'] #menu button {background-color:rgba(0, 0, 0, 0.01) !important;} html[it-youtubeDetailButtons='transparent_background'] #subscribe-button button {color:#111 !important;} - - /*-------------------------------------------------------------- + /*-------------------------------------------------------------- HIDE SUBSCRIBE --------------------------------------------------------------*/ html[it-subscribe='hidden'] #subscribe-button {display: none !important;} html[it-subscribe='grey'] #subscribe-button button { background-color: #DDD !important; color:#111 !important; } html[it-subscribe='transparent'] #subscribe-button button {background-color:rgba(0, 0, 0, 0) !important; color:#111 !important; } - - - /*-------------------------------------------------------------- +/*-------------------------------------------------------------- HIDE LIKE BUTTON --------------------------------------------------------------*/ - html[it-likes='hidden'] #top-level-buttons-computed #segmented-like-button ytd-toggle-button-renderer, html[it-likes='icons_only'] #top-level-buttons-computed #segmented-like-button ytd-toggle-button-renderer div.cbox { display: none; @@ -88,71 +73,60 @@ html[it-likes='icons_only'] #top-level-buttons-computed #segmented-like-button y margin: 0; padding: 0 5px; } - - /*-------------------------------------------------------------- HIDE DISLIKE BUTTON --------------------------------------------------------------*/ - html[it-hide-dislike-button='hidden'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer, html[it-hide-dislike-button='icons_only'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer div.cbox { display: none; } - html[it-hide-dislike-button='icons_only'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer .yt-spec-button-shape-next__icon, html[it-hide-dislike-button='icons_only'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer button{ margin: 0; padding: 0 5px; } - - /*-------------------------------------------------------------- -# HIDE SHARE BUTTON +DISLIKED in RED +--------------------------------------------------------------*/ +html[it-red-dislike-button='true'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer *[aria-pressed='true'] yt-icon { + color: #f02200 !important; +} +/*-------------------------------------------------------------- +HIDE SHARE BUTTON --------------------------------------------------------------*/ - html[it-hide-share-button='hidden'] #menu button:has(svg path[d^="M15,5.63L20.66,12L15,18.37V15v"]), html[it-hide-share-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M15,5.63L20.66,12L15,18.37V15v"]) { display: none; } - html[it-hide-share-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M15,5.63L20.66,12L15,18.37V15v"]) div:nth-child(2), html[it-hide-share-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M15,5.63L20.66,12L15,18.37V15v"]) .cbox{ display: none; } - - /*-------------------------------------------------------------- -# HIDE DOWNLOAD BUTTON +HIDE DOWNLOAD BUTTON --------------------------------------------------------------*/ - html[it-hide-download-button='hidden'] #menu button:has(svg path[d^="M17 18V19H6V18H17ZM16.5 11.4"]), html[it-hide-download-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M17 18V19H6V18H17ZM16.5 11.4"]) { display: none; } - html[it-hide-download-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M17 18V19H6V18H17ZM16.5 11.4"]) div:nth-child(2), html[it-hide-download-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M17 18V19H6V18H17ZM16.5 11.4"]) .cbox{ display: none; } - /*-------------------------------------------------------------- -# HIDE THANKS BUTTON +HIDE THANKS BUTTON --------------------------------------------------------------*/ - html[it-hide-thanks-button='hidden'] #menu button:has(svg path[d^="M16.5,3C19.02,3,21,5.19,21,7.99c"]), html[it-hide-thanks-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M16.5,3C19.02,3,21,5.19,21,7.99c"]) { display: none; } - html[it-hide-thanks-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M16.5,3C19.02,3,21,5.19,21,7.99c"]) div:nth-child(2), html[it-hide-thanks-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M16.5,3C19.02,3,21,5.19,21,7.99c"]) .cbox{ display: none; } - /*-------------------------------------------------------------- -# HIDE CLIP BUTTON +HIDE CLIP BUTTON --------------------------------------------------------------*/ - html[it-hide-clip-button='hidden'] #menu button:has(svg path[d^="M8,7c0,0.55-0.45,1-1,1S6,7."]), html[it-hide-clip-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M8,7c0,0.55-0.45,1-1,1S6,7."]) { display: none; @@ -162,74 +136,61 @@ html[it-hide-clip-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^ html[it-hide-clip-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M8,7c0,0.55-0.45,1-1,1S6,7."]) .cbox{ display: none; } - - /*-------------------------------------------------------------- -# HIDE SAVE BUTTON +HIDE SAVE BUTTON --------------------------------------------------------------*/ - html[it-hide-save-button='hidden'] #menu button:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]), html[it-hide-save-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]) { display: none; } - html[it-hide-save-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]) div:nth-child(2), html[it-hide-save-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]) .cbox{ display: none; } - - /*-------------------------------------------------------------- -# HIDE REPORT BUTTON +HIDE REPORT BUTTON --------------------------------------------------------------*/ - -html[it-hide-report-button='true'] #menu button:has(svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]), -html[it-hide-report-button='true'] #flexible-item-buttons button:has(svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]) { +html[it-hide-report-button='true'] #menu button:has(svg path[d^="M13.18,4l0.24,1.2L13.58,"]), +html[it-hide-report-button='true'] #flexible-item-buttons button:has(svg path[d^="M13.18,4l0.24,1.2L13.58,"]) { display: none; } - - /*-------------------------------------------------------------- -# HIDE MORE BUTTON +HIDE MORE BUTTON --------------------------------------------------------------*/ - -html[it-hide-more-button='true'] #menu button:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]), -html[it-hide-more-button='true'] #flexible-item-buttons button:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]) { +html[it-hide-more-button='true'] #menu button:has(svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]), +html[it-hide-more-button='true'] #flexible-item-buttons button:has(svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]) { display: none; } - /*-------------------------------------------------------------- -# HIDE THANKS BUTTON +HIDE THANKS BUTTON --------------------------------------------------------------*/ - html[it-hide-thanks-button='hidden'] #flexible-item-buttons ytd-button-renderer#Thanks-button, html[it-hide-thanks-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Thanks-button div.cbox { display: none; } - /*-------------------------------------------------------------- -# HIDE CLIP BUTTON +HIDE CLIP BUTTON --------------------------------------------------------------*/ - html[it-hide-clip-button='hidden'] #flexible-item-buttons ytd-button-renderer#Clip-button, html[it-hide-clip-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Clip-button div.cbox { display: none; } - /*-------------------------------------------------------------- -# HIDE SAVE BUTTON +HIDE SAVE BUTTON --------------------------------------------------------------*/ - html[it-hide-save-button='hidden'] #flexible-item-buttons ytd-button-renderer#Save-button, html[it-hide-save-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Save-button div.cbox { display: none; } - - /*-------------------------------------------------------------- -# DESCRIPTION +DESCRIPTION --------------------------------------------------------------*/ - +html[it-description='hidden'] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, +html[it-description='hidden'] div#action-panel-details, +html[it-description='hidden'] ytd-expander.ytd-video-secondary-info-renderer, +html[it-description='hidden'] #description-inline-expander { + display: none !important; +} html[it-description='classic'] .ytd-watch-flexy #info-contents, html[it-description='classic'] .ytd-watch-flexy #meta-contents { display: block !important; } html[it-description='classic'] #below.ytd-watch-flexy { top:-20px; } @@ -247,23 +208,13 @@ html[it-description='classic_hidden'] #below.ytd-watch-flexy { top:-20px; } html[it-description='classic_hidden'] ytd-menu-renderer[has-flexible-items] { overflow-y: unset !important; } html[it-description='classic_hidden'] ytd-video-primary-info-renderer { padding-bottom: 14px !important; } -html[it-description='hidden'] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, -html[it-description='hidden'] div#action-panel-details, -html[it-description='hidden'] ytd-expander.ytd-video-secondary-info-renderer, -html[it-description='hidden'] #description-inline-expander { - display: none !important; -} html[it-description='classic'] div.style-scope.ytd-watch-flexy + ytd-watch-metadata, html[it-description='classic_expanded'] div.style-scope.ytd-watch-flexy + ytd-watch-metadata, html[it-description='classic_hidden'] div.style-scope.ytd-watch-flexy + ytd-watch-metadata {display: none !important;} - - - /*-------------------------------------------------------------- -# HOW LONG AGO THE VIDEO WAS UPLOADED +HOW LONG AGO THE VIDEO WAS UPLOADED --------------------------------------------------------------*/ - .it-how-long-ago-the-video-was-uploaded { float: right !important; @@ -271,24 +222,13 @@ html[it-description='classic_hidden'] div.style-scope.ytd-watch-flexy + ytd-watc color: var(--yt-spec-text-secondary) !important; } - /*-------------------------------------------------------------- -# SHOW CHANNEL VIDEOS COUNT +SHOW CHANNEL VIDEOS COUNT --------------------------------------------------------------*/ - .it-channel-videos-count { display: inline-block !important; margin-left: 4px !important; color: var(--yt-spec-text-secondary) !important; -} - - -/*-------------------------------------------------------------- -# SHOW DISLIKE RED COLOR ---------------------------------------------------------------*/ - -html[it-red-dislike-button='true'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer *[aria-pressed='true'] yt-icon { - color: #f02200 !important; } \ No newline at end of file diff --git a/js&css/web-accessible/core.js b/js&css/web-accessible/core.js index a152069f9..109691bc4 100644 --- a/js&css/web-accessible/core.js +++ b/js&css/web-accessible/core.js @@ -138,10 +138,11 @@ document.addEventListener('it-message-from-extension', function () { ImprovedTube.myColors(); ImprovedTube.setTheme(); } else if (camelized_key === 'description') { - if (ImprovedTube.storage.description === "expanded" || ImprovedTube.storage.description === "classic_expanded" ) + if (ImprovedTube.storage.description === "expanded" || ImprovedTube.storage.description === "classic_expanded" ) {try{document.querySelector("#more").click() || document.querySelector("#expand").click() ;} catch{} } if (ImprovedTube.storage.description === "normal" || ImprovedTube.storage.description === "classic" ) {try{document.querySelector("#less").click() || document.querySelector("#collapse").click();} catch{}} + ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer(); } else if (camelized_key === 'transcript') { if (ImprovedTube.storage.transcript === true) {try{document.querySelector('*[target-id*=transcript]').removeAttribute('visibility');}catch{} diff --git a/js&css/web-accessible/functions.js b/js&css/web-accessible/functions.js index 1db4426fe..e10f27361 100644 --- a/js&css/web-accessible/functions.js +++ b/js&css/web-accessible/functions.js @@ -59,17 +59,33 @@ ImprovedTube.ytElementsHandler = function (node) { var index = Array.prototype.indexOf.call(node.parentNode.children, node); if (index === 0) { - this.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode; - - this.playlistReverse(); + if (this.storage.playlist_reverse === true) { + try{this.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode;} + catch{try{this.elements.playlist.actions = node.parentNode.parentNode.parentNode;} + catch{try{this.elements.playlist.actions = node.parentNode.parentNode;} + catch{try{this.elements.playlist.actions = node.parentNode;} + catch{try{this.elements.playlist.actions = node;}catch{}} + } + } + } + } + this.playlistReversess(); } else if (index === 1) { this.elements.playlist.shuffle_button = node; this.playlistShuffle(); - this.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode; - - this.playlistReverse(); + if (this.storage.playlist_reverse === true) { + try{this.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode;} + catch{try{this.elements.playlist.actions = node.parentNode.parentNode.parentNode;} + catch{try{this.elements.playlist.actions = node.parentNode.parentNode;} + catch{try{this.elements.playlist.actions = node.parentNode;} + catch{try{this.elements.playlist.actions = node;}catch{}} + } + } + } + } + this.playlistReversess(); } } } else if (name === 'YTD-GUIDE-SECTION-RENDERER') { @@ -215,9 +231,9 @@ ImprovedTube.ytElementsHandler = function (node) { }else if (document.documentElement.dataset.pageType === 'video'){ if (id ==='description-inner') { setTimeout(function () { - ImprovedTube.descriptionLayout(node); + ImprovedTube.expandDescription(node); }, 300); - }else if (id === 'meta') {setTimeout(function () { ImprovedTube.descriptionLayout(node.querySelector('#more')); }, 200); + }else if (id === 'meta') {setTimeout(function () { ImprovedTube.expandDescription(node.querySelector('#more')); }, 200); }else if (id === 'below' ){setTimeout(function () { }, 0); }else if (id === 'panels'){setTimeout(function () { ImprovedTube.transcript(node); diff --git a/js&css/web-accessible/www.youtube.com/appearance.js b/js&css/web-accessible/www.youtube.com/appearance.js index 216688918..19e6eb43d 100644 --- a/js&css/web-accessible/www.youtube.com/appearance.js +++ b/js&css/web-accessible/www.youtube.com/appearance.js @@ -7,7 +7,6 @@ /*------------------------------------------------------------------------------ PLAYER SIZE ------------------------------------------------------------------------------*/ - ImprovedTube.playerSize = function () { if (this.storage.player_size === "custom") { var width = Number(this.storage.custom_player_size_width) || 1280, @@ -23,11 +22,9 @@ ImprovedTube.playerSize = function () { window.dispatchEvent(new Event('resize')); } }; - /*------------------------------------------------------------------------------ FORCED THEATER MODE ------------------------------------------------------------------------------*/ - ImprovedTube.forcedTheaterMode = function () { if (ImprovedTube.storage.forced_theater_mode === true && ImprovedTube.elements.ytd_watch && ImprovedTube.elements.player) { var button = ImprovedTube.elements.player.querySelector("button.ytp-size-button"); @@ -41,11 +38,9 @@ ImprovedTube.forcedTheaterMode = function () { } } }; - /*------------------------------------------------------------------------------ HD THUMBNAIL ------------------------------------------------------------------------------*/ - ImprovedTube.playerHdThumbnail = function () { if (this.storage.player_hd_thumbnail === true) { var thumbnail = ImprovedTube.elements.player_thumbnail; @@ -55,11 +50,9 @@ ImprovedTube.playerHdThumbnail = function () { } } }; - /*------------------------------------------------------------------------------ ALWAYS SHOW PROGRESS BAR ------------------------------------------------------------------------------*/ - ImprovedTube.alwaysShowProgressBar = function () { if (this.storage.always_show_progress_bar === true) { var player = ImprovedTube.elements.player; @@ -106,11 +99,9 @@ ImprovedTube.alwaysShowProgressBar = function () { } } }; - /*------------------------------------------------------------------------------ VIDEO REMAINING DURATION ------------------------------------------------------------------------------*/ - ImprovedTube.formatSecond = function (rTime) { var time = new Date(null); if (this.storage.duration_with_speed === true) { @@ -144,7 +135,6 @@ ImprovedTube.playerRemainingDuration = function () { element.remove(); } }; - /*------------------------------------------------------------------------------ Comments Sidebar ------------------------------------------------------------------------------*/ @@ -174,7 +164,6 @@ ImprovedTube.chapters = function (el){ if (ImprovedTube.storage.chapters === tru try{el.querySelector('*[target-id*=chapters]').removeAttribute('visibility');} catch{}} } - /*------------------------------------------------------------------------------ LIVECHAT ------------------------------------------------------------------------------*/ @@ -192,14 +181,12 @@ ImprovedTube.livechat = function () { } } }; - /*------------------------------------------------------------------------------ DETAILS ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ PLAYER BUTTONS ------------------------------------------------------------------------------*/ - ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { if (window.self !== window.top) { return false; @@ -207,7 +194,8 @@ ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { if (document.documentElement.dataset.pageType === 'video') { var section = document.querySelector('#subscribe-button'); - if (this.storage.description == "classic" || this.storage.description == "classic_expanded" || this.storage.description !== "classic_hidden" ) + if (this.storage.description == "classic" + || this.storage.description == "classic_expanded" || this.storage.description == "classic_hidden" ) {var section = document.querySelector('#flex.ytd-video-primary-info-renderer');} if (section && !document.querySelector('.improvedtube-player-button')) { @@ -252,8 +240,8 @@ ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); button.className = 'improvedtube-player-button'; - button.dataset.tooltip = 'Picture in picture'; - + button.dataset.tooltip = 'PiP'; + svg.style.opacity = '.64'; svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); path.setAttributeNS(null, 'd', 'M19 7h-8v6h8V7zm2-4H3C2 3 1 4 1 5v14c0 1 1 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 16H3V5h18v14z'); @@ -278,10 +266,9 @@ ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { button.className = 'improvedtube-player-button'; button.dataset.tooltip = 'Screenshot'; - + svg.style.opacity = '.55'; svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); path.setAttributeNS(null, 'd', 'M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'); - button.onclick = ImprovedTube.screenshot; svg.appendChild(path); @@ -292,20 +279,16 @@ ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { } } }; - /*------------------------------------------------------------------------------ - DESCRIPTION + EXPAND DESCRIPTION ------------------------------------------------------------------------------*/ - -ImprovedTube.descriptionLayout = function (el) { +ImprovedTube.expandDescription = function (el) { if (this.storage.description === "expanded" || this.storage.description === "classic_expanded" ) if(el)try{el.click()}catch{setTimeout(function(){el.click();},1000);} }; - /*------------------------------------------------------------------------------ HIDE DETAIL BUTTON ------------------------------------------------------------------------------*/ - ImprovedTube.hideDetailButton = function (el) { if (el.length === 4) { el[3].setAttribute("id", "Save-button"); @@ -317,11 +300,9 @@ ImprovedTube.hideDetailButton = function (el) { el[1].setAttribute("id", "Clip-button"); } }; - /*-------------------------------------------------------------- DAY OF WEEK --------------------------------------------------------------*/ - ImprovedTube.dayOfWeek = function () { var element = document.querySelector(".ytd-day-of-week"); if (this.storage.day_of_week === true) { @@ -342,11 +323,9 @@ ImprovedTube.dayOfWeek = function () { element.remove(); } }; - /*------------------------------------------------------------------------------ HOW LONG AGO THE VIDEO WAS UPLOADED ------------------------------------------------------------------------------*/ - ImprovedTube.howLongAgoTheVideoWasUploaded = function () { if (this.storage.how_long_ago_the_video_was_uploaded === true && this.elements.yt_channel_name) { var xhr = new XMLHttpRequest(), @@ -403,11 +382,9 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { xhr.send(); } }; - /*------------------------------------------------------------------------------ SHOW CHANNEL VIDEOS COUNT ------------------------------------------------------------------------------*/ - ImprovedTube.channelVideosCount = function () { if (this.storage.channel_videos_count === true && this.elements.yt_channel_link) { var key = this.storage["google-api-key"] || ImprovedTube.defaultApiKey; diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index bed646a71..7db1f82fa 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -537,9 +537,8 @@ ImprovedTube.screenshot = function () { cvs.toBlob(function (blob) { if (ImprovedTube.storage.player_screenshot_save_as !== 'clipboard') { - var a = document.createElement('a'); -console.log("screeeeeeen"); - a.href = URL.createObjectURL(blob); + var a = document.createElement('a'); + a.href = URL.createObjectURL(blob); console.log("screeeeeeenshot tada!"); a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) || location.href.match(/()embed\/[^&]+/)[0].substr(3) || improvedTube.videoID || location.href.match + '-' + new Date(ImprovedTube.elements.player.getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; @@ -570,7 +569,7 @@ ImprovedTube.playerScreenshotButton = function () { this.createPlayerButton({ id: 'it-screenshot-button', child: svg, - opacity: 1, + opacity: 0.64, onclick: this.screenshot, title: 'Screenshot' }); @@ -637,7 +636,7 @@ ImprovedTube.playerRotateButton = function () { this.createPlayerButton({ id: 'it-rotate-button', child: svg, - opacity: 1, + opacity: 0.85, onclick: function () { var player = ImprovedTube.elements.player, video = ImprovedTube.elements.video, @@ -693,7 +692,7 @@ ImprovedTube.playerPopupButton = function () { this.createPlayerButton({ id: 'it-popup-player-button', child: svg, - opacity: 1, + opacity: 0.8, onclick: function () { var player = ImprovedTube.elements.player; diff --git a/menu/styles/appearance.css b/menu/styles/appearance.css index ac8cad1bc..f26819d81 100644 --- a/menu/styles/appearance.css +++ b/menu/styles/appearance.css @@ -5,23 +5,18 @@ # Custom player size # Hide Detail Button --------------------------------------------------------------*/ - /*-------------------------------------------------------------- # BUTTONS --------------------------------------------------------------*/ - .satus-section--appearance { position: relative; - width: 100%; - max-width: 900px; + width: 100%; max-width: 900px; height: 100%; margin: auto; } - .satus-section--appearance .satus-button { position: absolute; - display: block; transition: transform .5s, box-shadow .5s; @@ -29,11 +24,10 @@ text-align: center; border: 1px solid var(--it-appearance-shadow-color); - border-radius: 3px; + border-radius: 3px; background: var(--satus-section-background); box-shadow: 0 0 2px 0 rgb(0 0 0 / 0%); } - .satus-section--appearance .satus-button:hover { z-index: 9; @@ -42,7 +36,6 @@ box-shadow: 1px 1px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 2px 2px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 3px 3px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 4px 4px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 5px 6px 4px 0 rgba(0, 0, 0, .1); } - .satus-section--appearance .satus-button--header { top: 16px; left: 16px; @@ -51,11 +44,9 @@ height: 29px; min-height: auto; } - .satus-section--appearance .satus-button--header:hover { transform: scale(1.03) translate(-9px, -4px); } - .satus-section--appearance .satus-button--player { top: 53px; left: 16px; @@ -111,12 +102,9 @@ width: calc(30% - 8px); height: 180px; } - - /*-------------------------------------------------------------- # CUSTOM PLAYER SIZE --------------------------------------------------------------*/ - .satus-section--custom-player-size { position: relative; @@ -157,20 +145,14 @@ content: 'x'; } - /*-------------------------------------------------------------- transcript compact spacing --------------------------------------------------------------*/ - #transcript:not([data-value='true']) + .satus-switch {display:none} - - /*-------------------------------------------------------------- DURATION WITH SPEED --------------------------------------------------------------*/ - #show-remaining-duration:not([data-value='true']) + .satus-switch { display: none; } - From 878cc16d0d43a41b8493939019e75cd5c0e6c8b3 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 7 Apr 2023 20:51:27 +0200 Subject: [PATCH 0935/1224] cosmetics & #1544 --- .../appearance/details/details.css | 134 +++++------------- js&css/web-accessible/core.js | 3 +- js&css/web-accessible/functions.js | 28 +++- .../www.youtube.com/appearance.js | 37 +---- .../web-accessible/www.youtube.com/player.js | 11 +- menu/styles/appearance.css | 22 +-- 6 files changed, 75 insertions(+), 160 deletions(-) diff --git a/js&css/extension/www.youtube.com/appearance/details/details.css b/js&css/extension/www.youtube.com/appearance/details/details.css index af75b844c..91c8d6eda 100644 --- a/js&css/extension/www.youtube.com/appearance/details/details.css +++ b/js&css/extension/www.youtube.com/appearance/details/details.css @@ -2,56 +2,45 @@ >>> DETAILS ---------------------------------------------------------------- /*-------------------------------------------------------------- -# General +General --------------------------------------------------------------*/ #info #info-text { max-height: 6rem; display: block; } - /*-------------------------------------------------------------- -# HIDE DETAILS +HIDE DETAILS --------------------------------------------------------------*/ - html[it-hide-details='true'] ytd-video-primary-info-renderer, html[it-hide-details='true'] ytd-video-secondary-info-renderer, html[it-hide-details='true'] ytd-watch-metadata { display: none !important; } - - /*-------------------------------------------------------------- -# HIDE VIEWS COUNT +HIDE VIEWS COUNT --------------------------------------------------------------*/ - html[it-hide-views-count='true'] #info #count, html[it-hide-views-count='true'] #info #count + #info-strings>#dot, html[it-hide-views-count='true'] ytd-watch-metadata #info>span:first-child { display: none !important; } - /*-------------------------------------------------------------- -# HIDE COMMENTS COUNT +HIDE COMMENTS COUNT --------------------------------------------------------------*/ - html[it-hide-comments-count='true'] #comments #count { display: none !important; } - /*-------------------------------------------------------------- -# HIDE DATE +HIDE DATE --------------------------------------------------------------*/ - html[it-hide-date='true'] #info #count + #info-strings>yt-formatted-string, html[it-hide-date='true'] #info #count + #info-strings>#dot, html[it-hide-date='true'] ytd-watch-metadata #info>span:last-child { display: none !important; } - - /*-------------------------------------------------------------- +/*-------------------------------------------------------------- YouTube's detail buttons --------------------------------------------------------------*/ - html[it-youtubeDetailButtons='remove_labels'] #menu ytd-button-renderer div:nth-child(2), html[it-youtubeDetailButtons='remove_labels'] #menu ytd-button-renderer .cbox, html[it-youtubeDetailButtons='remove_labels'] #subscribe-button .cbox, @@ -65,19 +54,15 @@ html[it-youtubeDetailButtons='half_transparent'] #menu button {opacity:0.5;} html[it-youtubeDetailButtons='transparent_background'] #subscribe-button button, html[it-youtubeDetailButtons='transparent_background'] #menu button {background-color:rgba(0, 0, 0, 0.01) !important;} html[it-youtubeDetailButtons='transparent_background'] #subscribe-button button {color:#111 !important;} - - /*-------------------------------------------------------------- + /*-------------------------------------------------------------- HIDE SUBSCRIBE --------------------------------------------------------------*/ html[it-subscribe='hidden'] #subscribe-button {display: none !important;} html[it-subscribe='grey'] #subscribe-button button { background-color: #DDD !important; color:#111 !important; } html[it-subscribe='transparent'] #subscribe-button button {background-color:rgba(0, 0, 0, 0) !important; color:#111 !important; } - - - /*-------------------------------------------------------------- +/*-------------------------------------------------------------- HIDE LIKE BUTTON --------------------------------------------------------------*/ - html[it-likes='hidden'] #top-level-buttons-computed #segmented-like-button ytd-toggle-button-renderer, html[it-likes='icons_only'] #top-level-buttons-computed #segmented-like-button ytd-toggle-button-renderer div.cbox { display: none; @@ -88,71 +73,60 @@ html[it-likes='icons_only'] #top-level-buttons-computed #segmented-like-button y margin: 0; padding: 0 5px; } - - /*-------------------------------------------------------------- HIDE DISLIKE BUTTON --------------------------------------------------------------*/ - html[it-hide-dislike-button='hidden'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer, html[it-hide-dislike-button='icons_only'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer div.cbox { display: none; } - html[it-hide-dislike-button='icons_only'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer .yt-spec-button-shape-next__icon, html[it-hide-dislike-button='icons_only'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer button{ margin: 0; padding: 0 5px; } - - /*-------------------------------------------------------------- -# HIDE SHARE BUTTON +DISLIKED in RED +--------------------------------------------------------------*/ +html[it-red-dislike-button='true'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer *[aria-pressed='true'] yt-icon { + color: #f02200 !important; +} +/*-------------------------------------------------------------- +HIDE SHARE BUTTON --------------------------------------------------------------*/ - html[it-hide-share-button='hidden'] #menu button:has(svg path[d^="M15,5.63L20.66,12L15,18.37V15v"]), html[it-hide-share-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M15,5.63L20.66,12L15,18.37V15v"]) { display: none; } - html[it-hide-share-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M15,5.63L20.66,12L15,18.37V15v"]) div:nth-child(2), html[it-hide-share-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M15,5.63L20.66,12L15,18.37V15v"]) .cbox{ display: none; } - - /*-------------------------------------------------------------- -# HIDE DOWNLOAD BUTTON +HIDE DOWNLOAD BUTTON --------------------------------------------------------------*/ - html[it-hide-download-button='hidden'] #menu button:has(svg path[d^="M17 18V19H6V18H17ZM16.5 11.4"]), html[it-hide-download-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M17 18V19H6V18H17ZM16.5 11.4"]) { display: none; } - html[it-hide-download-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M17 18V19H6V18H17ZM16.5 11.4"]) div:nth-child(2), html[it-hide-download-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M17 18V19H6V18H17ZM16.5 11.4"]) .cbox{ display: none; } - /*-------------------------------------------------------------- -# HIDE THANKS BUTTON +HIDE THANKS BUTTON --------------------------------------------------------------*/ - html[it-hide-thanks-button='hidden'] #menu button:has(svg path[d^="M16.5,3C19.02,3,21,5.19,21,7.99c"]), html[it-hide-thanks-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M16.5,3C19.02,3,21,5.19,21,7.99c"]) { display: none; } - html[it-hide-thanks-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M16.5,3C19.02,3,21,5.19,21,7.99c"]) div:nth-child(2), html[it-hide-thanks-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M16.5,3C19.02,3,21,5.19,21,7.99c"]) .cbox{ display: none; } - /*-------------------------------------------------------------- -# HIDE CLIP BUTTON +HIDE CLIP BUTTON --------------------------------------------------------------*/ - html[it-hide-clip-button='hidden'] #menu button:has(svg path[d^="M8,7c0,0.55-0.45,1-1,1S6,7."]), html[it-hide-clip-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M8,7c0,0.55-0.45,1-1,1S6,7."]) { display: none; @@ -162,74 +136,61 @@ html[it-hide-clip-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^ html[it-hide-clip-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M8,7c0,0.55-0.45,1-1,1S6,7."]) .cbox{ display: none; } - - /*-------------------------------------------------------------- -# HIDE SAVE BUTTON +HIDE SAVE BUTTON --------------------------------------------------------------*/ - html[it-hide-save-button='hidden'] #menu button:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]), html[it-hide-save-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]) { display: none; } - html[it-hide-save-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]) div:nth-child(2), html[it-hide-save-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]) .cbox{ display: none; } - - /*-------------------------------------------------------------- -# HIDE REPORT BUTTON +HIDE REPORT BUTTON --------------------------------------------------------------*/ - -html[it-hide-report-button='true'] #menu button:has(svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]), -html[it-hide-report-button='true'] #flexible-item-buttons button:has(svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]) { +html[it-hide-report-button='true'] #menu button:has(svg path[d^="M13.18,4l0.24,1.2L13.58,"]), +html[it-hide-report-button='true'] #flexible-item-buttons button:has(svg path[d^="M13.18,4l0.24,1.2L13.58,"]) { display: none; } - - /*-------------------------------------------------------------- -# HIDE MORE BUTTON +HIDE MORE BUTTON --------------------------------------------------------------*/ - -html[it-hide-more-button='true'] #menu button:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]), -html[it-hide-more-button='true'] #flexible-item-buttons button:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]) { +html[it-hide-more-button='true'] #menu button:has(svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]), +html[it-hide-more-button='true'] #flexible-item-buttons button:has(svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]) { display: none; } - /*-------------------------------------------------------------- -# HIDE THANKS BUTTON +HIDE THANKS BUTTON --------------------------------------------------------------*/ - html[it-hide-thanks-button='hidden'] #flexible-item-buttons ytd-button-renderer#Thanks-button, html[it-hide-thanks-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Thanks-button div.cbox { display: none; } - /*-------------------------------------------------------------- -# HIDE CLIP BUTTON +HIDE CLIP BUTTON --------------------------------------------------------------*/ - html[it-hide-clip-button='hidden'] #flexible-item-buttons ytd-button-renderer#Clip-button, html[it-hide-clip-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Clip-button div.cbox { display: none; } - /*-------------------------------------------------------------- -# HIDE SAVE BUTTON +HIDE SAVE BUTTON --------------------------------------------------------------*/ - html[it-hide-save-button='hidden'] #flexible-item-buttons ytd-button-renderer#Save-button, html[it-hide-save-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Save-button div.cbox { display: none; } - - /*-------------------------------------------------------------- -# DESCRIPTION +DESCRIPTION --------------------------------------------------------------*/ - +html[it-description='hidden'] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, +html[it-description='hidden'] div#action-panel-details, +html[it-description='hidden'] ytd-expander.ytd-video-secondary-info-renderer, +html[it-description='hidden'] #description-inline-expander { + display: none !important; +} html[it-description='classic'] .ytd-watch-flexy #info-contents, html[it-description='classic'] .ytd-watch-flexy #meta-contents { display: block !important; } html[it-description='classic'] #below.ytd-watch-flexy { top:-20px; } @@ -247,23 +208,13 @@ html[it-description='classic_hidden'] #below.ytd-watch-flexy { top:-20px; } html[it-description='classic_hidden'] ytd-menu-renderer[has-flexible-items] { overflow-y: unset !important; } html[it-description='classic_hidden'] ytd-video-primary-info-renderer { padding-bottom: 14px !important; } -html[it-description='hidden'] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, -html[it-description='hidden'] div#action-panel-details, -html[it-description='hidden'] ytd-expander.ytd-video-secondary-info-renderer, -html[it-description='hidden'] #description-inline-expander { - display: none !important; -} html[it-description='classic'] div.style-scope.ytd-watch-flexy + ytd-watch-metadata, html[it-description='classic_expanded'] div.style-scope.ytd-watch-flexy + ytd-watch-metadata, html[it-description='classic_hidden'] div.style-scope.ytd-watch-flexy + ytd-watch-metadata {display: none !important;} - - - /*-------------------------------------------------------------- -# HOW LONG AGO THE VIDEO WAS UPLOADED +HOW LONG AGO THE VIDEO WAS UPLOADED --------------------------------------------------------------*/ - .it-how-long-ago-the-video-was-uploaded { float: right !important; @@ -271,24 +222,13 @@ html[it-description='classic_hidden'] div.style-scope.ytd-watch-flexy + ytd-watc color: var(--yt-spec-text-secondary) !important; } - /*-------------------------------------------------------------- -# SHOW CHANNEL VIDEOS COUNT +SHOW CHANNEL VIDEOS COUNT --------------------------------------------------------------*/ - .it-channel-videos-count { display: inline-block !important; margin-left: 4px !important; color: var(--yt-spec-text-secondary) !important; -} - - -/*-------------------------------------------------------------- -# SHOW DISLIKE RED COLOR ---------------------------------------------------------------*/ - -html[it-red-dislike-button='true'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer *[aria-pressed='true'] yt-icon { - color: #f02200 !important; } \ No newline at end of file diff --git a/js&css/web-accessible/core.js b/js&css/web-accessible/core.js index a152069f9..109691bc4 100644 --- a/js&css/web-accessible/core.js +++ b/js&css/web-accessible/core.js @@ -138,10 +138,11 @@ document.addEventListener('it-message-from-extension', function () { ImprovedTube.myColors(); ImprovedTube.setTheme(); } else if (camelized_key === 'description') { - if (ImprovedTube.storage.description === "expanded" || ImprovedTube.storage.description === "classic_expanded" ) + if (ImprovedTube.storage.description === "expanded" || ImprovedTube.storage.description === "classic_expanded" ) {try{document.querySelector("#more").click() || document.querySelector("#expand").click() ;} catch{} } if (ImprovedTube.storage.description === "normal" || ImprovedTube.storage.description === "classic" ) {try{document.querySelector("#less").click() || document.querySelector("#collapse").click();} catch{}} + ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer(); } else if (camelized_key === 'transcript') { if (ImprovedTube.storage.transcript === true) {try{document.querySelector('*[target-id*=transcript]').removeAttribute('visibility');}catch{} diff --git a/js&css/web-accessible/functions.js b/js&css/web-accessible/functions.js index 1db4426fe..3e13caee9 100644 --- a/js&css/web-accessible/functions.js +++ b/js&css/web-accessible/functions.js @@ -59,16 +59,32 @@ ImprovedTube.ytElementsHandler = function (node) { var index = Array.prototype.indexOf.call(node.parentNode.children, node); if (index === 0) { - this.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode; - + if (this.storage.playlist_reverse === true) { + try{this.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode;} + catch{try{this.elements.playlist.actions = node.parentNode.parentNode.parentNode;} + catch{try{this.elements.playlist.actions = node.parentNode.parentNode;} + catch{try{this.elements.playlist.actions = node.parentNode;} + catch{try{this.elements.playlist.actions = node;}catch{}} + } + } + } + } this.playlistReverse(); } else if (index === 1) { this.elements.playlist.shuffle_button = node; this.playlistShuffle(); - this.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode; - + if (this.storage.playlist_reverse === true) { + try{this.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode;} + catch{try{this.elements.playlist.actions = node.parentNode.parentNode.parentNode;} + catch{try{this.elements.playlist.actions = node.parentNode.parentNode;} + catch{try{this.elements.playlist.actions = node.parentNode;} + catch{try{this.elements.playlist.actions = node;}catch{}} + } + } + } + } this.playlistReverse(); } } @@ -215,9 +231,9 @@ ImprovedTube.ytElementsHandler = function (node) { }else if (document.documentElement.dataset.pageType === 'video'){ if (id ==='description-inner') { setTimeout(function () { - ImprovedTube.descriptionLayout(node); + ImprovedTube.expandDescription(node); }, 300); - }else if (id === 'meta') {setTimeout(function () { ImprovedTube.descriptionLayout(node.querySelector('#more')); }, 200); + }else if (id === 'meta') {setTimeout(function () { ImprovedTube.expandDescription(node.querySelector('#more')); }, 200); }else if (id === 'below' ){setTimeout(function () { }, 0); }else if (id === 'panels'){setTimeout(function () { ImprovedTube.transcript(node); diff --git a/js&css/web-accessible/www.youtube.com/appearance.js b/js&css/web-accessible/www.youtube.com/appearance.js index 216688918..19e6eb43d 100644 --- a/js&css/web-accessible/www.youtube.com/appearance.js +++ b/js&css/web-accessible/www.youtube.com/appearance.js @@ -7,7 +7,6 @@ /*------------------------------------------------------------------------------ PLAYER SIZE ------------------------------------------------------------------------------*/ - ImprovedTube.playerSize = function () { if (this.storage.player_size === "custom") { var width = Number(this.storage.custom_player_size_width) || 1280, @@ -23,11 +22,9 @@ ImprovedTube.playerSize = function () { window.dispatchEvent(new Event('resize')); } }; - /*------------------------------------------------------------------------------ FORCED THEATER MODE ------------------------------------------------------------------------------*/ - ImprovedTube.forcedTheaterMode = function () { if (ImprovedTube.storage.forced_theater_mode === true && ImprovedTube.elements.ytd_watch && ImprovedTube.elements.player) { var button = ImprovedTube.elements.player.querySelector("button.ytp-size-button"); @@ -41,11 +38,9 @@ ImprovedTube.forcedTheaterMode = function () { } } }; - /*------------------------------------------------------------------------------ HD THUMBNAIL ------------------------------------------------------------------------------*/ - ImprovedTube.playerHdThumbnail = function () { if (this.storage.player_hd_thumbnail === true) { var thumbnail = ImprovedTube.elements.player_thumbnail; @@ -55,11 +50,9 @@ ImprovedTube.playerHdThumbnail = function () { } } }; - /*------------------------------------------------------------------------------ ALWAYS SHOW PROGRESS BAR ------------------------------------------------------------------------------*/ - ImprovedTube.alwaysShowProgressBar = function () { if (this.storage.always_show_progress_bar === true) { var player = ImprovedTube.elements.player; @@ -106,11 +99,9 @@ ImprovedTube.alwaysShowProgressBar = function () { } } }; - /*------------------------------------------------------------------------------ VIDEO REMAINING DURATION ------------------------------------------------------------------------------*/ - ImprovedTube.formatSecond = function (rTime) { var time = new Date(null); if (this.storage.duration_with_speed === true) { @@ -144,7 +135,6 @@ ImprovedTube.playerRemainingDuration = function () { element.remove(); } }; - /*------------------------------------------------------------------------------ Comments Sidebar ------------------------------------------------------------------------------*/ @@ -174,7 +164,6 @@ ImprovedTube.chapters = function (el){ if (ImprovedTube.storage.chapters === tru try{el.querySelector('*[target-id*=chapters]').removeAttribute('visibility');} catch{}} } - /*------------------------------------------------------------------------------ LIVECHAT ------------------------------------------------------------------------------*/ @@ -192,14 +181,12 @@ ImprovedTube.livechat = function () { } } }; - /*------------------------------------------------------------------------------ DETAILS ------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------ PLAYER BUTTONS ------------------------------------------------------------------------------*/ - ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { if (window.self !== window.top) { return false; @@ -207,7 +194,8 @@ ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { if (document.documentElement.dataset.pageType === 'video') { var section = document.querySelector('#subscribe-button'); - if (this.storage.description == "classic" || this.storage.description == "classic_expanded" || this.storage.description !== "classic_hidden" ) + if (this.storage.description == "classic" + || this.storage.description == "classic_expanded" || this.storage.description == "classic_hidden" ) {var section = document.querySelector('#flex.ytd-video-primary-info-renderer');} if (section && !document.querySelector('.improvedtube-player-button')) { @@ -252,8 +240,8 @@ ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); button.className = 'improvedtube-player-button'; - button.dataset.tooltip = 'Picture in picture'; - + button.dataset.tooltip = 'PiP'; + svg.style.opacity = '.64'; svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); path.setAttributeNS(null, 'd', 'M19 7h-8v6h8V7zm2-4H3C2 3 1 4 1 5v14c0 1 1 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 16H3V5h18v14z'); @@ -278,10 +266,9 @@ ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { button.className = 'improvedtube-player-button'; button.dataset.tooltip = 'Screenshot'; - + svg.style.opacity = '.55'; svg.setAttributeNS(null, 'viewBox', '0 0 24 24'); path.setAttributeNS(null, 'd', 'M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'); - button.onclick = ImprovedTube.screenshot; svg.appendChild(path); @@ -292,20 +279,16 @@ ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer = function () { } } }; - /*------------------------------------------------------------------------------ - DESCRIPTION + EXPAND DESCRIPTION ------------------------------------------------------------------------------*/ - -ImprovedTube.descriptionLayout = function (el) { +ImprovedTube.expandDescription = function (el) { if (this.storage.description === "expanded" || this.storage.description === "classic_expanded" ) if(el)try{el.click()}catch{setTimeout(function(){el.click();},1000);} }; - /*------------------------------------------------------------------------------ HIDE DETAIL BUTTON ------------------------------------------------------------------------------*/ - ImprovedTube.hideDetailButton = function (el) { if (el.length === 4) { el[3].setAttribute("id", "Save-button"); @@ -317,11 +300,9 @@ ImprovedTube.hideDetailButton = function (el) { el[1].setAttribute("id", "Clip-button"); } }; - /*-------------------------------------------------------------- DAY OF WEEK --------------------------------------------------------------*/ - ImprovedTube.dayOfWeek = function () { var element = document.querySelector(".ytd-day-of-week"); if (this.storage.day_of_week === true) { @@ -342,11 +323,9 @@ ImprovedTube.dayOfWeek = function () { element.remove(); } }; - /*------------------------------------------------------------------------------ HOW LONG AGO THE VIDEO WAS UPLOADED ------------------------------------------------------------------------------*/ - ImprovedTube.howLongAgoTheVideoWasUploaded = function () { if (this.storage.how_long_ago_the_video_was_uploaded === true && this.elements.yt_channel_name) { var xhr = new XMLHttpRequest(), @@ -403,11 +382,9 @@ ImprovedTube.howLongAgoTheVideoWasUploaded = function () { xhr.send(); } }; - /*------------------------------------------------------------------------------ SHOW CHANNEL VIDEOS COUNT ------------------------------------------------------------------------------*/ - ImprovedTube.channelVideosCount = function () { if (this.storage.channel_videos_count === true && this.elements.yt_channel_link) { var key = this.storage["google-api-key"] || ImprovedTube.defaultApiKey; diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index bed646a71..7db1f82fa 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -537,9 +537,8 @@ ImprovedTube.screenshot = function () { cvs.toBlob(function (blob) { if (ImprovedTube.storage.player_screenshot_save_as !== 'clipboard') { - var a = document.createElement('a'); -console.log("screeeeeeen"); - a.href = URL.createObjectURL(blob); + var a = document.createElement('a'); + a.href = URL.createObjectURL(blob); console.log("screeeeeeenshot tada!"); a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) || location.href.match(/()embed\/[^&]+/)[0].substr(3) || improvedTube.videoID || location.href.match + '-' + new Date(ImprovedTube.elements.player.getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; @@ -570,7 +569,7 @@ ImprovedTube.playerScreenshotButton = function () { this.createPlayerButton({ id: 'it-screenshot-button', child: svg, - opacity: 1, + opacity: 0.64, onclick: this.screenshot, title: 'Screenshot' }); @@ -637,7 +636,7 @@ ImprovedTube.playerRotateButton = function () { this.createPlayerButton({ id: 'it-rotate-button', child: svg, - opacity: 1, + opacity: 0.85, onclick: function () { var player = ImprovedTube.elements.player, video = ImprovedTube.elements.video, @@ -693,7 +692,7 @@ ImprovedTube.playerPopupButton = function () { this.createPlayerButton({ id: 'it-popup-player-button', child: svg, - opacity: 1, + opacity: 0.8, onclick: function () { var player = ImprovedTube.elements.player; diff --git a/menu/styles/appearance.css b/menu/styles/appearance.css index ac8cad1bc..f26819d81 100644 --- a/menu/styles/appearance.css +++ b/menu/styles/appearance.css @@ -5,23 +5,18 @@ # Custom player size # Hide Detail Button --------------------------------------------------------------*/ - /*-------------------------------------------------------------- # BUTTONS --------------------------------------------------------------*/ - .satus-section--appearance { position: relative; - width: 100%; - max-width: 900px; + width: 100%; max-width: 900px; height: 100%; margin: auto; } - .satus-section--appearance .satus-button { position: absolute; - display: block; transition: transform .5s, box-shadow .5s; @@ -29,11 +24,10 @@ text-align: center; border: 1px solid var(--it-appearance-shadow-color); - border-radius: 3px; + border-radius: 3px; background: var(--satus-section-background); box-shadow: 0 0 2px 0 rgb(0 0 0 / 0%); } - .satus-section--appearance .satus-button:hover { z-index: 9; @@ -42,7 +36,6 @@ box-shadow: 1px 1px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 2px 2px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 3px 3px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 4px 4px 0 0 var(--main-appearance-shadow, var(--it-appearance-shadow-color)), 5px 6px 4px 0 rgba(0, 0, 0, .1); } - .satus-section--appearance .satus-button--header { top: 16px; left: 16px; @@ -51,11 +44,9 @@ height: 29px; min-height: auto; } - .satus-section--appearance .satus-button--header:hover { transform: scale(1.03) translate(-9px, -4px); } - .satus-section--appearance .satus-button--player { top: 53px; left: 16px; @@ -111,12 +102,9 @@ width: calc(30% - 8px); height: 180px; } - - /*-------------------------------------------------------------- # CUSTOM PLAYER SIZE --------------------------------------------------------------*/ - .satus-section--custom-player-size { position: relative; @@ -157,20 +145,14 @@ content: 'x'; } - /*-------------------------------------------------------------- transcript compact spacing --------------------------------------------------------------*/ - #transcript:not([data-value='true']) + .satus-switch {display:none} - - /*-------------------------------------------------------------- DURATION WITH SPEED --------------------------------------------------------------*/ - #show-remaining-duration:not([data-value='true']) + .satus-switch { display: none; } - From f7b0979d77c7656ef9d6f98ebd8f377dfb816577 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 7 Apr 2023 22:59:16 +0200 Subject: [PATCH 0936/1224] Update README.md --- .github/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/README.md b/.github/README.md index a263a4e0c..49113de43 100644 --- a/.github/README.md +++ b/.github/README.md @@ -25,10 +25,10 @@ - [i] ToolTips & documentation - [Auto](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1211) Avoiding CPU-rendering - Smart [Player buttons](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1445) for all \ - - Smart [content-filtering & discovery](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1451) + [#x](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1463) + - Smart [content-filtering & discovery](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1451) + [#X](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1463) - Full-page GUI, watch-history, dashboard - Integrating data [#1452](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1452), [SB](https://github.com/mchangrh/sb-mirror) / [NB](https://github.com/andrewzlee/NeuralBlock) etc. - - Continuously Integrating code /features
like: [YCS](https://github.com/sonigy/YCS), [YR](https://github.com/MarcGuiselin/youtube-refined), [NY](https://github.com/raingart/Nova-YouTube-extension); [IC](https://github.com/ThomasTavernier/Improve-Crunchyroll) + - Continuously Integrating code /features
like: [YCS](https://github.com/sonigy/YCS), [YR](https://github.com/MarcGuiselin/youtube-refined), [NY](https://github.com/raingart/Nova-YouTube-extension) ([ppixiv](https://github.com/ppixiv/ppixiv), [IC](https://github.com/ThomasTavernier/Improve-Crunchyroll)) - Run on m.youtube.com (grey-out some) - Ask Samsung Browser to list us. From ebce25b7e4ae53bebf86f81430b798fcae3c1c79 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Fri, 7 Apr 2023 23:16:32 +0200 Subject: [PATCH 0937/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index 49113de43..04c416a8d 100644 --- a/.github/README.md +++ b/.github/README.md @@ -28,7 +28,7 @@ - Smart [content-filtering & discovery](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1451) + [#X](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1463) - Full-page GUI, watch-history, dashboard - Integrating data [#1452](https://github.com/code-for-charity/ImprovedTube-for-YouTube/issues/1452), [SB](https://github.com/mchangrh/sb-mirror) / [NB](https://github.com/andrewzlee/NeuralBlock) etc. - - Continuously Integrating code /features
like: [YCS](https://github.com/sonigy/YCS), [YR](https://github.com/MarcGuiselin/youtube-refined), [NY](https://github.com/raingart/Nova-YouTube-extension) ([ppixiv](https://github.com/ppixiv/ppixiv), [IC](https://github.com/ThomasTavernier/Improve-Crunchyroll)) + - Continuously Integrating code /features
like: [YCS](https://github.com/sonigy/YCS), [YR](https://github.com/MarcGuiselin/youtube-refined), [NY](https://github.com/raingart/Nova-YouTube-extension) (, [ppixiv](https://github.com/ppixiv/ppixiv), [IC](https://github.com/ThomasTavernier/Improve-Crunchyroll)) - Run on m.youtube.com (grey-out some) - Ask Samsung Browser to list us. From 1225c2bec13f429ce27d0dd34639c9cd753e066d Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 8 Apr 2023 03:30:29 +0200 Subject: [PATCH 0938/1224] quickly sorting, no new code. --- js&css/satus.js | 579 ++++++++++++++++++++++++------------------------ 1 file changed, 286 insertions(+), 293 deletions(-) diff --git a/js&css/satus.js b/js&css/satus.js index 2a24ab883..adc7ac7ff 100644 --- a/js&css/satus.js +++ b/js&css/satus.js @@ -1,39 +1,110 @@ /*-------------------------------------------------------------- ->>> CORE +>>> 1. CORE ---------------------------------------------------------------- -# Global variable -# Animations duration -# Append -# Attr -# Camelize -# Snakelize -# Class -# Create element -# CSS -# Empty -# Element index -# Events -# Get property -# Is -# On -# Render -# Sort -# Storage - # Clear - # Get - # Import - # Set - # Remove - # On changed -# Localization -# Log -# Text +# GLOBAL VARIABLE: +# BASICS: camelize(string) snakelize(string) + isset(target, is_object) log() + sort(array, order, property) + data(element, data) + +# DOM: append(child, parent) + setAttributes(element, attributes) =attr() + createElement(tagName, componentName, namespaceURI) + empty(element, exclude = []) + elementIndex(element) + +# CSS: css(element, property) + addClass(element, className) =class() + satus.style(element, object) + getAnimationDuration(element) + +# CRYPTION (async): decrypt(text, password) + encrypt(text, password) + +Events.on(type, handler) +Events.trigger(type, data) + +fetch(url, success, error, type) + getProperty(object, string) +indexOf(child, parent) + toIndex(index, child, parent) + +# IS: isArray(target) isBoolean() + isElement() isFunction() isNodeList() + isNumber() isObject() isString() + +# ON: on(element, listeners) + +parentify(parentObject, exclude) +prepend(child, parent) +properties(element, properties) +remove(child, parent) +render(skeleton, container, property, childrenOnly, prepend, skip_children) + +# STORAGE +storage.clear(callback) +storage.get(key, callback) +storage.import(keys, callback) +storage.remove(key, callback) +storage.set(key, value, callback) +storage.onchanged = function(callback) + +last(variable) + +# LOCALIZATION +locale.get(string) +locale.import = function(code, callback, path) + //satus.locale.import(url, onload, onsuccess); + +text(element, value) + // We always try to run values as functions? + // isFunction(value) appears 6 times in satus.js + +---------------------------------------------------------------- + +>>> 2. COMPONENTS + +components.modal(component, skeleton) +components.modal.confirm +components.grid +components.textField + chart chart.bar + select +components.divider() base(component) section + alert time sidebar + layers + list + colorPicker + radio slider + tabs + shortcut + checkbox switch +---------------------------------------------------------------- +>>> COLOR: +String to array +RGB2HSL HUE2RGB HSL2RGB +---------------------------------------------------------------- +>>> USER +# HARDWARE and SOFTWARE values + # OS: Name Bitness + # Browser: Name Version Platform + Manifest Languages + Cookies + Flash Java Audio + Video WebGL + # Device: Screen + RAM GPU Cores + Touch Connection +---------------------------------------------------------------- +>>> SEARCH +// TO-DO or integrate with JS search libs --------------------------------------------------------------*/ + + /*-------------------------------------------------------------- # GLOBAL VARIABLE --------------------------------------------------------------*/ - var satus = { components: {}, events: { @@ -47,30 +118,145 @@ var satus = { type: 'extension' } }; - - /*-------------------------------------------------------------- -# ANIMATION DURATION +# BASICS --------------------------------------------------------------*/ +/*--CAMELIZE--------------------------------------------------*/ +satus.camelize = function(string) { + var result = ''; + for (var i = 0, l = string.length; i < l; i++) { + var character = string[i]; -satus.getAnimationDuration = function(element) { - return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; + if (character === '_' || character === '-') { + i++; + + result += string[i].toUpperCase(); + } else { + result += character; + } + } + return result; +}; +/*---SNAKELIZE-------------------------------------------------*/ +satus.snakelize = function(string) { + return string.replace(/([A-Z])/g, '-$1').toLowerCase(); +}; +/*---# ISSET-----------------------------------------------------*/ +satus.isset = function(target, is_object) { + if (is_object === true) { + var keys = target.split('.').filter(function(value) { + return value != ''; + }); + + for (var i = 0, l = keys.length; i < l; i++) { + if (satus.isset(target[keys[i]])) { + target = target[keys[i]]; + } else { + return undefined; + } + } + + return target; + } else { + if (target === null || target === undefined) { + return false; + } + } + + return true; +}; +/*---LOG------------------------------------------------------*/ +satus.log = function() { + console.log.apply(null, arguments); +}; +/*---SORT------------------------------------------------------*/ +satus.sort = function(array, order, property) { + var type; + + if (property) { + type = typeof array[0][property]; + } else { + type = typeof array[0]; + } + + if (order !== 'desc') { + if (type === 'number') { + if (property) { + return array.sort(function(a, b) { + return a[property] - b[property]; + }); + } else { + return array.sort(function(a, b) { + return a - b; + }); + } + } else if (type === 'string') { + if (property) { + return array.sort(function(a, b) { + return a[property].localeCompare(b[property]); + }); + } else { + return array.sort(function(a, b) { + return a.localeCompare(b); + }); + } + } + } else { + if (type === 'number') { + if (property) { + return array.sort(function(a, b) { + return b[property] - a[property]; + }); + } else { + return array.sort(function(a, b) { + return b - a; + }); + } + } else if (type === 'string') { + if (property) { + return array.sort(function(a, b) { + return b[property].localeCompare(a[property]); + }); + } else { + return array.sort(function(a, b) { + return b.localeCompare(a); + }); + } + } + } +}; +/*---data------------------------------------------------------*/ +satus.data = function(element, data) { + if (data) { + for (var key in data) { + var value = data[key]; + + if (satus.isFunction(value)) { + value = value(); + } + + element.dataset[key] = value; + } + } }; +/*-------------------------------------------------------------- + + +# DOM + + +--------------------------------------------------------------*/ /*-------------------------------------------------------------- # APPEND --------------------------------------------------------------*/ - satus.append = function(child, parent) { (parent || document.body).appendChild(child); }; - - /*-------------------------------------------------------------- -# ATTR +# ATTR setAttributes --------------------------------------------------------------*/ - satus.setAttributes = satus.attr = function(element, attributes) { if (attributes) { for (var name in attributes) { @@ -96,55 +282,9 @@ satus.setAttributes = satus.attr = function(element, attributes) { } } }; - - -/*-------------------------------------------------------------- -# CAMELIZE ---------------------------------------------------------------*/ - -satus.camelize = function(string) { - var result = ''; - - for (var i = 0, l = string.length; i < l; i++) { - var character = string[i]; - - if (character === '_' || character === '-') { - i++; - - result += string[i].toUpperCase(); - } else { - result += character; - } - } - - return result; -}; - - -/*-------------------------------------------------------------- -# SNAKELIZE ---------------------------------------------------------------*/ - -satus.snakelize = function(string) { - return string.replace(/([A-Z])/g, '-$1').toLowerCase(); -}; - - -/*-------------------------------------------------------------- -# CLASS ---------------------------------------------------------------*/ - -satus.class = function(element, className) { - if (className) { - element.classList.add(className); - } -}; - - /*-------------------------------------------------------------- # CLONE --------------------------------------------------------------*/ - satus.clone = function(item) { var clone = item.cloneNode(true), parent_css = window.getComputedStyle(item.parentNode), @@ -164,17 +304,13 @@ satus.clone = function(item) { } } - clone.setAttribute('style', style); return clone; }; - - /*-------------------------------------------------------------- # CREATE ELEMENT --------------------------------------------------------------*/ - satus.createElement = function(tagName, componentName, namespaceURI) { var camelizedTagName = this.camelize(tagName), className = 'satus-' + (componentName || tagName), @@ -220,25 +356,70 @@ satus.createElement = function(tagName, componentName, namespaceURI) { return element; }; +/*-------------------------------------------------------------- +# EMPTY +--------------------------------------------------------------*/ +satus.empty = function(element, exclude = []) { + for (var i = element.childNodes.length - 1; i > -1; i--) { + var child = element.childNodes[i]; + if (exclude.indexOf(child) === -1) { + child.remove(); + } + } +}; /*-------------------------------------------------------------- -# CSS +# ELEMENT INDEX --------------------------------------------------------------*/ +satus.elementIndex = function(element) { + return Array.prototype.slice.call(element.parentNode.children).indexOf(element); +}; + +/*-------------------------------------------------------------- + +# CSS + + +--------------------------------------------------------------*/ satus.css = function(element, property) { return window.getComputedStyle(element).getPropertyValue(property); }; +/*-------------------------------------------------------------- +# CLASS +--------------------------------------------------------------*/ +satus.addClass = satus.class = function(element, className) { + if (className) { + element.classList.add(className); + } +}; +/*-------------------------------------------------------------- +# STYLE +--------------------------------------------------------------*/ +satus.style = function(element, object) { + if (object) { + for (var key in object) { + element.style[key] = object[key]; + } + } +}; +/*-------------------------------------------------------------- +# ANIMATION DURATION +--------------------------------------------------------------*/ +satus.getAnimationDuration = function(element) { + return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; +}; /*-------------------------------------------------------------- -# CRYPT ---------------------------------------------------------------*/ +# CRYPTION + +--------------------------------------------------------------*/ /*-------------------------------------------------------------- # DECRYPTION --------------------------------------------------------------*/ - satus.decrypt = async function(text, password) { var iv = text.slice(0, 24).match(/.{2}/g).map(byte => parseInt(byte, 16)), algorithm = { @@ -263,8 +444,6 @@ satus.decrypt = async function(text, password) { return data; }; - - /*-------------------------------------------------------------- # ENCRYPTION --------------------------------------------------------------*/ @@ -283,58 +462,14 @@ satus.encrypt = async function(text, password) { ))).map(byte => String.fromCharCode(byte)).join('')); }; - -/*-------------------------------------------------------------- -# DATA ---------------------------------------------------------------*/ - -satus.data = function(element, data) { - if (data) { - for (var key in data) { - var value = data[key]; - - if (satus.isFunction(value)) { - value = value(); - } - - element.dataset[key] = value; - } - } -}; - - /*-------------------------------------------------------------- -# EMPTY ---------------------------------------------------------------*/ - -satus.empty = function(element, exclude = []) { - for (var i = element.childNodes.length - 1; i > -1; i--) { - var child = element.childNodes[i]; - - if (exclude.indexOf(child) === -1) { - child.remove(); - } - } -}; -/*-------------------------------------------------------------- -# ELEMENT INDEX ---------------------------------------------------------------*/ - -satus.elementIndex = function(element) { - return Array.prototype.slice.call(element.parentNode.children).indexOf(element); -}; - - -/*-------------------------------------------------------------- # EVENTS ---------------------------------------------------------------*/ -/*-------------------------------------------------------------- -# ON ---------------------------------------------------------------*/ +--------------------------------------------------------------*/ +/*-- ON ------------------------------------------------------*/ satus.events.on = function(type, handler) { if (!this.data[type]) { this.data[type] = []; @@ -343,11 +478,7 @@ satus.events.on = function(type, handler) { this.data[type].push(handler); }; - -/*-------------------------------------------------------------- -# TRIGGER ---------------------------------------------------------------*/ - +/*-- TRIGGER ------------------------------------------------*/ satus.events.trigger = function(type, data) { var handlers = this.data[type]; @@ -359,11 +490,9 @@ satus.events.trigger = function(type, data) { } }; - /*-------------------------------------------------------------- # FETCH --------------------------------------------------------------*/ - satus.fetch = function(url, success, error, type) { fetch(url).then(function(response) { if (response.ok) { @@ -376,11 +505,9 @@ satus.fetch = function(url, success, error, type) { }); }; - /*-------------------------------------------------------------- # GET PROPERTY --------------------------------------------------------------*/ - satus.getProperty = function(object, string) { var properties = string.split('.'); @@ -429,40 +556,11 @@ satus.toIndex = function(index, child, parent) { } }; - /*-------------------------------------------------------------- -# ISSET ---------------------------------------------------------------*/ - -satus.isset = function(target, is_object) { - if (is_object === true) { - var keys = target.split('.').filter(function(value) { - return value != ''; - }); - for (var i = 0, l = keys.length; i < l; i++) { - if (satus.isset(target[keys[i]])) { - target = target[keys[i]]; - } else { - return undefined; - } - } - - return target; - } else { - if (target === null || target === undefined) { - return false; - } - } - - return true; -}; - - -/*-------------------------------------------------------------- # IS ---------------------------------------------------------------*/ +--------------------------------------------------------------*/ satus.isArray = function(target) { if (Array.isArray(target)) { return true; @@ -596,12 +694,9 @@ satus.parentify = function(parentObject, exclude) { } } }; - - /*-------------------------------------------------------------- # PREPEND --------------------------------------------------------------*/ - satus.prepend = function(child, parent) { if (this.isElement(child)) { parent.prepend(child); @@ -609,12 +704,9 @@ satus.prepend = function(child, parent) { this.render(child, parent, undefined, undefined, true); } }; - - /*-------------------------------------------------------------- # PROPERTIES --------------------------------------------------------------*/ - satus.properties = function(element, properties) { if (properties) { for (var key in properties) { @@ -628,23 +720,17 @@ satus.properties = function(element, properties) { } } }; - - /*-------------------------------------------------------------- # REMOVE --------------------------------------------------------------*/ - satus.remove = function(child, parent) { if (satus.isArray(parent)) { parent.splice(satus.indexOf(child, parent), 1); } }; - - /*-------------------------------------------------------------- # RENDER --------------------------------------------------------------*/ - satus.render = function(skeleton, container, property, childrenOnly, prepend, skip_children) { var element; @@ -797,72 +883,13 @@ satus.render = function(skeleton, container, property, childrenOnly, prepend, sk return element; }; - /*-------------------------------------------------------------- -# SORT ---------------------------------------------------------------*/ -satus.sort = function(array, order, property) { - var type; - - if (property) { - type = typeof array[0][property]; - } else { - type = typeof array[0]; - } - if (order !== 'desc') { - if (type === 'number') { - if (property) { - return array.sort(function(a, b) { - return a[property] - b[property]; - }); - } else { - return array.sort(function(a, b) { - return a - b; - }); - } - } else if (type === 'string') { - if (property) { - return array.sort(function(a, b) { - return a[property].localeCompare(b[property]); - }); - } else { - return array.sort(function(a, b) { - return a.localeCompare(b); - }); - } - } - } else { - if (type === 'number') { - if (property) { - return array.sort(function(a, b) { - return b[property] - a[property]; - }); - } else { - return array.sort(function(a, b) { - return b - a; - }); - } - } else if (type === 'string') { - if (property) { - return array.sort(function(a, b) { - return b[property].localeCompare(a[property]); - }); - } else { - return array.sort(function(a, b) { - return b.localeCompare(a); - }); - } - } - } -}; +# STORAGE -/*-------------------------------------------------------------- -# STORAGE --------------------------------------------------------------*/ - /*-------------------------------------------------------------- # CLEAR --------------------------------------------------------------*/ @@ -914,7 +941,6 @@ satus.storage.get = function(key, callback) { /*-------------------------------------------------------------- # IMPORT --------------------------------------------------------------*/ - satus.storage.import = function(keys, callback) { var self = this; @@ -939,11 +965,9 @@ satus.storage.import = function(keys, callback) { }); }; - /*-------------------------------------------------------------- # REMOVE --------------------------------------------------------------*/ - satus.storage.remove = function(key, callback) { var target = this.data; @@ -980,11 +1004,9 @@ satus.storage.remove = function(key, callback) { } }; - /*-------------------------------------------------------------- # SET --------------------------------------------------------------*/ - satus.storage.set = function(key, value, callback) { var items = {}, target = this.data; @@ -1030,11 +1052,9 @@ satus.storage.set = function(key, value, callback) { }); }; - /*-------------------------------------------------------------- # ON CHANGED --------------------------------------------------------------*/ - satus.storage.onchanged = function(callback) { chrome.storage.onChanged.addListener(function(changes) { for (var key in changes) { @@ -1056,9 +1076,10 @@ satus.last = function(variable) { /*-------------------------------------------------------------- + # LOCALIZATION ---------------------------------------------------------------*/ +--------------------------------------------------------------*/ /*-------------------------------------------------------------- # GET --------------------------------------------------------------*/ @@ -1067,7 +1088,6 @@ satus.locale.get = function(string) { return this.data[string] || string; }; - /*-------------------------------------------------------------- # IMPORT ---------------------------------------------------------------- @@ -1105,28 +1125,6 @@ satus.locale.import = function(code, callback, path) { }; -/*-------------------------------------------------------------- -# LOG ---------------------------------------------------------------*/ - -satus.log = function() { - console.log.apply(null, arguments); -}; - - -/*-------------------------------------------------------------- -# STYLE ---------------------------------------------------------------*/ - -satus.style = function(element, object) { - if (object) { - for (var key in object) { - element.style[key] = object[key]; - } - } -}; - - /*-------------------------------------------------------------- # TEXT --------------------------------------------------------------*/ @@ -1141,11 +1139,12 @@ satus.text = function(element, value) { } }; /*-------------------------------------------------------------- + + >>> MODAL ----------------------------------------------------------------- -# Confirm ---------------------------------------------------------------*/ + +--------------------------------------------------------------*/ satus.components.modal = function(component, skeleton) { component.scrim = component.createChildElement('div', 'scrim'); component.surface = component.createChildElement('div', 'surface'); @@ -1182,12 +1181,9 @@ satus.components.modal = function(component, skeleton) { satus.components.modal[skeleton.variant](component, skeleton); } }; - - /*-------------------------------------------------------------- # CONFIRM --------------------------------------------------------------*/ - satus.components.modal.confirm = function(component, skeleton) { component.surface.actions = satus.render({ component: 'section', @@ -1236,14 +1232,13 @@ satus.components.modal.confirm = function(component, skeleton) { /*-------------------------------------------------------------- >>> GRID --------------------------------------------------------------*/ - satus.components.grid = function(component, skeleton) { console.log(component, skeleton); }; + /*-------------------------------------------------------------- >>> TEXT FIELD --------------------------------------------------------------*/ - satus.components.textField = function(component, skeleton) { var container = component.createChildElement('div', 'container'), input = container.createChildElement(skeleton.rows === 1 ? 'input' : 'textarea'), @@ -1637,7 +1632,6 @@ satus.components.divider = function() {}; /*-------------------------------------------------------------- >>> SECTION --------------------------------------------------------------*/ - satus.components.section = function(component, skeleton) { if (satus.isString(skeleton.title)) { component.dataset.title = satus.locale.get(skeleton.title); @@ -1707,7 +1701,6 @@ satus.components.time = function(component, skeleton) { >>> SIDEBAR --------------------------------------------------------------*/ satus.components.sidebar = function(component, skeleton) {}; - /*-------------------------------------------------------------- >>> LAYERS --------------------------------------------------------------*/ From 1b09812591ff8646ea44876bdf12ef2718bdfcdb Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 9 Apr 2023 04:08:49 +0200 Subject: [PATCH 0939/1224] structure --- js&css/satus.js | 132 +++++++++++++++++------------------------------- 1 file changed, 45 insertions(+), 87 deletions(-) diff --git a/js&css/satus.js b/js&css/satus.js index cc8d39e82..4e64db981 100644 --- a/js&css/satus.js +++ b/js&css/satus.js @@ -3,10 +3,13 @@ ---------------------------------------------------------------- # GLOBAL VARIABLE: # BASICS: camelize(string) snakelize(string) - isset(target, is_object) log() - sort(array, order, property) - data(element, data) - + sort(array, order, property) + data(element, data) + isset(target, is_object) + isFunction(target) + is_________target) Array Object Boolean + Element NodeList Number String + log() # DOM: append(child, parent) setAttributes(element, attributes) =attr() createElement(tagName, componentName, namespaceURI) @@ -29,9 +32,6 @@ fetch(url, success, error, type) indexOf(child, parent) toIndex(index, child, parent) -# IS: isArray(target) isBoolean() - isElement() isFunction() isNodeList() - isNumber() isObject() isString() # ON: on(element, listeners) @@ -59,7 +59,6 @@ locale.import = function(code, callback, path) text(element, value) // We always try to run values as functions? // isFunction(value) appears 6 times in satus.js - ---------------------------------------------------------------- >>> 2. COMPONENTS @@ -141,34 +140,6 @@ satus.camelize = function(string) { satus.snakelize = function(string) { return string.replace(/([A-Z])/g, '-$1').toLowerCase(); }; -/*---# ISSET-----------------------------------------------------*/ -satus.isset = function(target, is_object) { - if (is_object === true) { - var keys = target.split('.').filter(function(value) { - return value != ''; - }); - - for (var i = 0, l = keys.length; i < l; i++) { - if (satus.isset(target[keys[i]])) { - target = target[keys[i]]; - } else { - return undefined; - } - } - - return target; - } else { - if (target === null || target === undefined) { - return false; - } - } - - return true; -}; -/*---LOG------------------------------------------------------*/ -satus.log = function() { - console.log.apply(null, arguments); -}; /*---SORT------------------------------------------------------*/ satus.sort = function(array, order, property) { var type; @@ -239,7 +210,45 @@ satus.data = function(element, data) { } } }; +/*---# ISSET-----------------------------------------------------*/ +satus.isset = function(target, is_object) { + if (is_object === true) { + var keys = target.split('.').filter(function(value) { + return value != ''; + }); + + for (var i = 0, l = keys.length; i < l; i++) { + if (satus.isset(target[keys[i]])) { + target = target[keys[i]]; + } else { + return undefined; + } + } + + return target; + } else { + if (target === null || target === undefined) { + return false; + } + } + + return true; +}; +/*------------------------------------------------------------- + # is___(target) +--------------------------------------------------------------*/ +satus.isFunction =function(target){return typeof target ==='function';}; + +satus.isArray =function(t){if(Array.isArray(t)) {return true;}else{return false;}}; +satus.isString =function(t){if(typeof t ==='string') {return true;}else{return false;}}; +satus.isNumber =function(t){if(typeof t ==='number'&&isNaN(t)===false){return true;}else{return false;}}; +satus.isObject =function(t){return t instanceof Object && t !==null;}; +satus.isElement =function(t){return t instanceof Element || t instanceof HTMLDocument;}; +satus.isNodeList =function(t){return t instanceof NodeList;}; +satus.isBoolean =function(t){return t ===false || t ===true;}; +/*---LOG------------------------------------------------------*/ +satus.log =function(){console.log.apply(null, arguments);}; /*-------------------------------------------------------------- @@ -555,57 +564,6 @@ satus.toIndex = function(index, child, parent) { parent.splice(index, 0, parent.splice(satus.indexOf(child, parent), 1)[0]) } }; - -/*-------------------------------------------------------------- - -# IS - ---------------------------------------------------------------*/ -satus.isArray = function(target) { - if (Array.isArray(target)) { - return true; - } else { - return false; - } -}; - -satus.isBoolean = function(target) { - return target === false || target === true; -}; - -satus.isElement = function(target) { - return target instanceof Element || target instanceof HTMLDocument; -}; - -satus.isFunction = function(target) { - return typeof target === 'function'; -}; - -satus.isNodeList = function(target) { - return target instanceof NodeList; -}; - -satus.isNumber = function(target) { - if (typeof target === 'number' && isNaN(target) === false) { - return true; - } else { - return false; - } -}; - -satus.isObject = function(target) { - return target instanceof Object && target !== null; -}; - -satus.isString = function(target) { - if (typeof target === 'string') { - return true; - } else { - return false; - } -}; - - /*-------------------------------------------------------------- # ON --------------------------------------------------------------*/ From 73cbd813f4db2b283343e23ef664ae07fff6afe4 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sat, 29 Apr 2023 03:33:00 +0200 Subject: [PATCH 0940/1224] Update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 4 ++-- .github/ISSUE_TEMPLATE/feature-request---suggestion---idea.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 09e27ff0e..104db4b25 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -2,8 +2,8 @@ name: Bug report about: Create a report to help us improve title: '' -labels: Bug, help wanted -assignees: '' +labels: Bug, Feature request, good first issue, help wanted, up-for-grabs +assignees: ImprovedTube --- diff --git a/.github/ISSUE_TEMPLATE/feature-request---suggestion---idea.md b/.github/ISSUE_TEMPLATE/feature-request---suggestion---idea.md index 734119dbe..a080ab136 100644 --- a/.github/ISSUE_TEMPLATE/feature-request---suggestion---idea.md +++ b/.github/ISSUE_TEMPLATE/feature-request---suggestion---idea.md @@ -2,7 +2,7 @@ name: Feature request / suggestion / idea about: Suggest an idea for this project title: '' -labels: Feature request, help wanted +labels: Feature request, good first issue, help wanted, up-for-grabs assignees: '' --- From f5d8593eb588925d86f06c228561ccd61f14fb3c Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Tue, 2 May 2023 05:05:59 +0200 Subject: [PATCH 0941/1224] working CODEC/30FPS override --- js&css/web-accessible/core.js | 100 ++++++++++++++++++++++++++-------- 1 file changed, 78 insertions(+), 22 deletions(-) diff --git a/js&css/web-accessible/core.js b/js&css/web-accessible/core.js index 109691bc4..b41a525bb 100644 --- a/js&css/web-accessible/core.js +++ b/js&css/web-accessible/core.js @@ -66,6 +66,37 @@ var ImprovedTube = { defaultApiKey: 'AIzaSyCXRRCFwKAXOiF1JkUBmibzxJF1cPuKNwA' }; +/*-------------------------------------------------------------- +CODEC || 30FPS +---------------------------------------------------------------- + Do not move, needs to be on top of first injected content + file to patch HTMLMediaElement before YT player uses it. +--------------------------------------------------------------*/ +if (localStorage['it-codec'] || localStorage['it-player30fps']) { + function overwrite(self, callback, mime) { + if (localStorage['it-codec']) { + var re = new RegExp(localStorage['it-codec']); + // /webm|vp8|vp9/av01/ + if (re.test(mime)) return ''; + } + if (localStorage['it-player30fps']) { + var match = /framerate=(\d+)/.exec(mime); + if (match && match[1] > 30) return ''; + } + return callback.call(self, mime); + } + + if (window.MediaSource) { + var isTypeSupported = window.MediaSource.isTypeSupported; + window.MediaSource.isTypeSupported = function (mime) { + return overwrite(this, isTypeSupported, mime); + } + } + var canPlayType = HTMLMediaElement.prototype.canPlayType; + HTMLMediaElement.prototype.canPlayType = function (mime) { + return overwrite(this, canPlayType, mime); + } +}; /*-------------------------------------------------------------- # MESSAGES @@ -120,15 +151,40 @@ document.addEventListener('it-message-from-extension', function () { if (message.action === 'storage-loaded') { ImprovedTube.storage = message.storage; + + if (ImprovedTube.storage.player_h264) { + localStorage['it-codec'] = "/webm|vp8|vp9|av01/"; + } else { + localStorage.removeItem('it-codec'); + } + if (!ImprovedTube.storage.player_60fps) { + localStorage['it-player30fps'] = true; + } else { + localStorage.removeItem('it-player30fps'); + } // FEEDBACK WHEN THE USER CHANGED A SETTING - ImprovedTube.init(); - } else if (message.action === 'storage-changed') { + ImprovedTube.init(); + } else if (message.action === 'storage-changed') { var camelized_key = message.camelizedKey; ImprovedTube.storage[message.key] = message.value; + if(message.key==="player_h264"){ + if (ImprovedTube.storage.player_h264) { + localStorage['it-codec'] = "/webm|vp8|vp9|av01/"; + } else { + localStorage.removeItem('it-codec'); + } + } + if(message.key==="player_60fps"){ + if (!ImprovedTube.storage.player_60fps) { + localStorage['it-player30fps'] = true; + } else { + localStorage.removeItem('it-player30fps'); + } + } if(ImprovedTube.storage[message.key]==="when_paused"){ - ImprovedTube.whenPaused(); + ImprovedTube.whenPaused(); }; if (camelized_key === 'blacklistActivate') { camelized_key = 'blacklist'; @@ -138,27 +194,27 @@ document.addEventListener('it-message-from-extension', function () { ImprovedTube.myColors(); ImprovedTube.setTheme(); } else if (camelized_key === 'description') { - if (ImprovedTube.storage.description === "expanded" || ImprovedTube.storage.description === "classic_expanded" ) - {try{document.querySelector("#more").click() || document.querySelector("#expand").click() ;} catch{} } - if (ImprovedTube.storage.description === "normal" || ImprovedTube.storage.description === "classic" ) - {try{document.querySelector("#less").click() || document.querySelector("#collapse").click();} catch{}} + if (ImprovedTube.storage.description === "expanded" || ImprovedTube.storage.description === "classic_expanded" ) + {try{document.querySelector("#more").click() || document.querySelector("#expand").click() ;} catch{} } + if (ImprovedTube.storage.description === "normal" || ImprovedTube.storage.description === "classic" ) + {try{document.querySelector("#less").click() || document.querySelector("#collapse").click();} catch{}} ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer(); - } - else if (camelized_key === 'transcript') { - if (ImprovedTube.storage.transcript === true) {try{document.querySelector('*[target-id*=transcript]').removeAttribute('visibility');}catch{} + } + else if (camelized_key === 'transcript') { + if (ImprovedTube.storage.transcript === true) {try{document.querySelector('*[target-id*=transcript]').removeAttribute('visibility');}catch{} } if (ImprovedTube.storage.transcript === false){try{document.querySelector('*[target-id*=transcript] #visibility-button button').click();}catch{}} - } - else if (camelized_key === 'chapters') { - if (ImprovedTube.storage.chapters === true){try{document.querySelector('*[target-id*=chapters]').removeAttribute('visibility');}catch{} + } + else if (camelized_key === 'chapters') { + if (ImprovedTube.storage.chapters === true){try{document.querySelector('*[target-id*=chapters]').removeAttribute('visibility');}catch{} } if (ImprovedTube.storage.chapters === false){try{document.querySelector('*[target-id*=chapters] #visibility-button button').click();}catch{}} - } - else if (camelized_key === 'commentsSidebar') { - if(ImprovedTube.storage.comments_sidebar === false) - {document.querySelector("#below").appendChild(document.querySelector("#comments")); - document.querySelector("#secondary").appendChild(document.querySelector("#related")); } + } + else if (camelized_key === 'commentsSidebar') { + if(ImprovedTube.storage.comments_sidebar === false) + {document.querySelector("#below").appendChild(document.querySelector("#comments")); + document.querySelector("#secondary").appendChild(document.querySelector("#related")); } else{ImprovedTube.commentsSidebar();} - } - + } + if (ImprovedTube[camelized_key]) { try{ImprovedTube[camelized_key]()}catch{}; } @@ -175,7 +231,7 @@ document.addEventListener('it-message-from-extension', function () { } else if (message.pause === true) { if (ImprovedTube.elements.player) { ImprovedTube.played_before_blur = ImprovedTube.elements.player.getPlayerState() === 1; - ImprovedTube.elements.player.pauseVideo(); + ImprovedTube.elements.player.pauseVideo(); } } else if (message.hasOwnProperty('setVolume')) { if (ImprovedTube.elements.player) { @@ -223,4 +279,4 @@ ImprovedTube.messages.send = function (message) { document.dispatchEvent(new CustomEvent('it-message-from-youtube')); } -}; \ No newline at end of file +}; From 14204a688b9c38c1c69744976cace760c737fde2 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Tue, 2 May 2023 05:07:54 +0200 Subject: [PATCH 0942/1224] working CODEC/30FPS override --- js&css/web-accessible/init.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/js&css/web-accessible/init.js b/js&css/web-accessible/init.js index 65a6ed442..7726150db 100644 --- a/js&css/web-accessible/init.js +++ b/js&css/web-accessible/init.js @@ -54,8 +54,6 @@ ImprovedTube.init = function () { window.addEventListener('yt-player-updated', yt_player_updated); this.playerOnPlay(); - this.playerH264(); - this.player60fps(); this.playerSDR(); this.shortcuts(); this.onkeydown(); From c225de2a92957f9e2e5e026ef2894ee5da2caa02 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Tue, 2 May 2023 05:08:53 +0200 Subject: [PATCH 0943/1224] working CODEC/30FPS override --- .../web-accessible/www.youtube.com/player.js | 120 ++++-------------- 1 file changed, 25 insertions(+), 95 deletions(-) diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index 7db1f82fa..fa8bb954f 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -15,8 +15,8 @@ ImprovedTube.autoplay = function () { ) ) { setTimeout(function () {console.log("autoplayyOFFFF"); - video.pauseVideo(); - }); + video.pauseVideo(); + }); } }; /*------------------------------------------------------------------------------ @@ -49,7 +49,7 @@ AUTO PIP WHEN SWITCHING TABS ------------------------------------------------------------------------------*/ ImprovedTube.playerAutoPip = function () { const video = ImprovedTube.elements.video; - + if (this.storage.player_autoPip === true && video) { (async () => { try { @@ -57,7 +57,7 @@ ImprovedTube.playerAutoPip = function () { } catch (error) { console.error('Failed to enter Picture-in-Picture mode', error); } - })(); + })(); } }; /*------------------------------------------------------------------------------ @@ -84,8 +84,8 @@ ImprovedTube.playerPlaybackSpeed = function (change) { if (player.getVideoData().isLive === false && (this.storage.player_force_speed_on_music === true || document.querySelector('h3#title')?.innerText !== 'Music' // (=buyable/registered music table) - || ( - (ImprovedTube.elements.category !== 'Music' && !/official (music )?video|lyrics|cover[\)\]]|[\(\[]cover|cover version|karaok|(sing|play)[- ]?along|卡拉OK|卡拉OK|الكاريوكيкараоке|カラオケ|노래방/i.test(ImprovedTube.elements.title + ImprovedTube.elements.keywords) + || ( + (ImprovedTube.elements.category !== 'Music' && !/official (music )?video|lyrics|cover[\)\]]|[\(\[]cover|cover version|karaok|(sing|play)[- ]?along|卡拉OK|卡拉OK|الكاريوكيкараоке|カラオケ|노래방/i.test(ImprovedTube.elements.title + ImprovedTube.elements.keywords) ) || /do[ck]u|interv[iyj]|back[- ]?stage|インタビュー|entrevista|面试|面試|회견|wawancara|مقابلة|интервью|entretien|기록한 것|记录|記錄|ドキュメンタリ|وثائقي|документальный/i.test(ImprovedTube.elements.keywords + ImprovedTube.elements.title) ) // && location.href.indexOf('music') === -1 // (=only running on www.youtube.com anyways) )) { @@ -98,7 +98,7 @@ ImprovedTube.playerPlaybackSpeed = function (change) { }, intervalMs); }; /*------------------------------------------------------------------------------ -SUBTITLES +SUBTITLES ------------------------------------------------------------------------------*/ ImprovedTube.subtitles = function () { if (this.storage.player_subtitles === true) { @@ -108,7 +108,7 @@ ImprovedTube.subtitles = function () { player.toggleSubtitlesOn(); } } -}; +}; /*------------------------------------------------------------------------------ SUBTITLES LANGUAGE ------------------------------------------------------------------------------*/ @@ -129,7 +129,7 @@ ImprovedTube.subtitlesLanguage = function () { if( false === tracklist[i].vss_id.includes("a.") || true === this.storage.auto_generate){ this.elements.player.setOption('captions', 'track', tracklist[i]); matchTrack = true; break; - } + } } } // if (!matchTrack){ player.toggleSubtitles(); } @@ -348,18 +348,18 @@ ImprovedTube.playerAds = function (parent) { try{var button = parent.querySelector('.ytp-ad-skip-button.ytp-button');}catch{} if (button) { if (this.storage.player_ads === 'block_all') { - button.click(); + button.click(); } else if (this.storage.player_ads === 'subscribed_channels') { if (!parent.querySelector('#meta paper-button[subscribed]')) { - button.click(); + button.click(); } } else if (this.storage.player_ads === 'block_music') { if (ImprovedTube.elements.category === 'music') { - button.click(); + button.click(); } } - } -}; + } +}; /*------------------------------------------------------------------------------ AUTO FULLSCREEN ------------------------------------------------------------------------------*/ @@ -394,76 +394,6 @@ ImprovedTube.playerQuality = function () { } }; /*------------------------------------------------------------------------------ -CODEC H.264 -------------------------------------------------------------------------------*/ -ImprovedTube.playerH264 = function () { - if (this.storage.player_h264 === true) { - var canPlayType = HTMLMediaElement.prototype.canPlayType; - - function overwrite(self, callback, mime) { - if (/webm|vp8|vp9/.test(mime)) { - return false; - } else { - return callback.call(self, mime); - } - } - - if (window.MediaSource) { - var isTypeSupported = window.MediaSource.isTypeSupported; - - window.MediaSource.isTypeSupported = function (mime) { - return overwrite(this, isTypeSupported, mime); - }; - } - - HTMLMediaElement.prototype.canPlayType = function (mime) { - var status = overwrite(this, canPlayType, mime); - - if (!status) { - return ''; - } else { - return status; - } - }; - } -}; -/*------------------------------------------------------------------------------ -ALLOW 60FPS -------------------------------------------------------------------------------*/ -ImprovedTube.player60fps = function () { - if (this.storage.player_60fps === false) { - var canPlayType = HTMLMediaElement.prototype.canPlayType; - - function overwrite(self, callback, mime) { - var match = /framerate=(\d+)/.exec(mime); - - if (match && match[1] > 30) { - return ''; - } else { - return callback.call(self, mime); - } - } - - if (window.MediaSource) { - var isTypeSupported = window.MediaSource.isTypeSupported; - - window.MediaSource.isTypeSupported = function (mime) { - return overwrite(this, isTypeSupported, mime); - }; - } - - HTMLMediaElement.prototype.canPlayType = function (mime) { - var status = overwrite(this, canPlayType, mime); - - if (!status) { - return ''; - } else { - return status; - } - }; - } -}; -/*------------------------------------------------------------------------------ FORCED VOLUME ------------------------------------------------------------------------------*/ ImprovedTube.playerVolume = function () { @@ -537,7 +467,7 @@ ImprovedTube.screenshot = function () { cvs.toBlob(function (blob) { if (ImprovedTube.storage.player_screenshot_save_as !== 'clipboard') { - var a = document.createElement('a'); + var a = document.createElement('a'); a.href = URL.createObjectURL(blob); console.log("screeeeeeenshot tada!"); a.download = location.href.match(/(\?|\&)v=[^&]+/)[0].substr(3) || location.href.match(/()embed\/[^&]+/)[0].substr(3) || improvedTube.videoID || location.href.match + '-' + new Date(ImprovedTube.elements.player.getCurrentTime() * 1000).toISOString().substr(11, 8).replace(/:/g, '-') + '.png'; @@ -728,21 +658,21 @@ ImprovedTube.playerControls = function (pause=false) { player.hideControls(); } else if(hide === 'off') { player.showControls(); - } else if(hide === 'when_paused') { - if(this.elements.video.paused){ - player.hideControls( ); - - ImprovedTube.elements.player.parentNode.addEventListener('mouseenter', function () { + } else if(hide === 'when_paused') { + if(this.elements.video.paused){ + player.hideControls( ); + + ImprovedTube.elements.player.parentNode.addEventListener('mouseenter', function () { player.showControls();}); - ImprovedTube.elements.player.parentNode.addEventListener('mouseleave', function () { + ImprovedTube.elements.player.parentNode.addEventListener('mouseleave', function () { player.hideControls( );}); - - ImprovedTube.elements.player.parentNode.onmousemove = (function() { + + ImprovedTube.elements.player.parentNode.onmousemove = (function() { let onmousestop = function() { player.hideControls( ); }, thread; - + return function() { player.showControls(); clearTimeout(thread); @@ -767,7 +697,7 @@ ImprovedTube.mini_player__setSize = function (width, height, keep_ar, keep_area) } ImprovedTube.elements.player.style.width = width + 'px'; - ImprovedTube.elements.player.style.height = height + 'px'; + ImprovedTube.elements.player.style.height = height + 'px'; }; ImprovedTube.miniPlayer_scroll = function () { From 90a1b5894c40b63962e4c661f84c72fb6573021a Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Wed, 3 May 2023 01:35:57 +0200 Subject: [PATCH 0944/1224] Update core.js typo in comment, missing semicolon, spaces to tabs --- js&css/web-accessible/core.js | 84 +++++++++++++++++------------------ 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/js&css/web-accessible/core.js b/js&css/web-accessible/core.js index b41a525bb..d818dd578 100644 --- a/js&css/web-accessible/core.js +++ b/js&css/web-accessible/core.js @@ -69,22 +69,22 @@ var ImprovedTube = { /*-------------------------------------------------------------- CODEC || 30FPS ---------------------------------------------------------------- - Do not move, needs to be on top of first injected content - file to patch HTMLMediaElement before YT player uses it. + Do not move, needs to be on top of first injected content + file to patch HTMLMediaElement before YT player uses it. --------------------------------------------------------------*/ if (localStorage['it-codec'] || localStorage['it-player30fps']) { function overwrite(self, callback, mime) { - if (localStorage['it-codec']) { - var re = new RegExp(localStorage['it-codec']); - // /webm|vp8|vp9/av01/ - if (re.test(mime)) return ''; - } - if (localStorage['it-player30fps']) { - var match = /framerate=(\d+)/.exec(mime); - if (match && match[1] > 30) return ''; - } + if (localStorage['it-codec']) { + var re = new RegExp(localStorage['it-codec']); + // /webm|vp8|vp9|av01/ + if (re.test(mime)) return ''; + } + if (localStorage['it-player30fps']) { + var match = /framerate=(\d+)/.exec(mime); + if (match && match[1] > 30) return ''; + } return callback.call(self, mime); - } + }; if (window.MediaSource) { var isTypeSupported = window.MediaSource.isTypeSupported; @@ -151,38 +151,38 @@ document.addEventListener('it-message-from-extension', function () { if (message.action === 'storage-loaded') { ImprovedTube.storage = message.storage; - - if (ImprovedTube.storage.player_h264) { - localStorage['it-codec'] = "/webm|vp8|vp9|av01/"; - } else { - localStorage.removeItem('it-codec'); - } - if (!ImprovedTube.storage.player_60fps) { - localStorage['it-player30fps'] = true; - } else { - localStorage.removeItem('it-player30fps'); - } + + if (ImprovedTube.storage.player_h264) { + localStorage['it-codec'] = "/webm|vp8|vp9|av01/"; + } else { + localStorage.removeItem('it-codec'); + } + if (!ImprovedTube.storage.player_60fps) { + localStorage['it-player30fps'] = true; + } else { + localStorage.removeItem('it-player30fps'); + } -// FEEDBACK WHEN THE USER CHANGED A SETTING +// FEEDBACK WHEN THE USER CHANGED A SETTING ImprovedTube.init(); } else if (message.action === 'storage-changed') { var camelized_key = message.camelizedKey; ImprovedTube.storage[message.key] = message.value; - if(message.key==="player_h264"){ - if (ImprovedTube.storage.player_h264) { - localStorage['it-codec'] = "/webm|vp8|vp9|av01/"; - } else { - localStorage.removeItem('it-codec'); - } - } - if(message.key==="player_60fps"){ - if (!ImprovedTube.storage.player_60fps) { - localStorage['it-player30fps'] = true; - } else { - localStorage.removeItem('it-player30fps'); - } - } + if(message.key==="player_h264"){ + if (ImprovedTube.storage.player_h264) { + localStorage['it-codec'] = "/webm|vp8|vp9|av01/"; + } else { + localStorage.removeItem('it-codec'); + } + } + if(message.key==="player_60fps"){ + if (!ImprovedTube.storage.player_60fps) { + localStorage['it-player30fps'] = true; + } else { + localStorage.removeItem('it-player30fps'); + } + } if(ImprovedTube.storage[message.key]==="when_paused"){ ImprovedTube.whenPaused(); }; @@ -195,20 +195,20 @@ document.addEventListener('it-message-from-extension', function () { ImprovedTube.setTheme(); } else if (camelized_key === 'description') { if (ImprovedTube.storage.description === "expanded" || ImprovedTube.storage.description === "classic_expanded" ) - {try{document.querySelector("#more").click() || document.querySelector("#expand").click() ;} catch{} } + {try{document.querySelector("#more").click() || document.querySelector("#expand").click() ;} catch{} } if (ImprovedTube.storage.description === "normal" || ImprovedTube.storage.description === "classic" ) {try{document.querySelector("#less").click() || document.querySelector("#collapse").click();} catch{}} ImprovedTube.improvedtubeYoutubeButtonsUnderPlayer(); } - else if (camelized_key === 'transcript') { - if (ImprovedTube.storage.transcript === true) {try{document.querySelector('*[target-id*=transcript]').removeAttribute('visibility');}catch{} + else if (camelized_key === 'transcript') { + if (ImprovedTube.storage.transcript === true) {try{document.querySelector('*[target-id*=transcript]').removeAttribute('visibility');}catch{} } if (ImprovedTube.storage.transcript === false){try{document.querySelector('*[target-id*=transcript] #visibility-button button').click();}catch{}} } else if (camelized_key === 'chapters') { if (ImprovedTube.storage.chapters === true){try{document.querySelector('*[target-id*=chapters]').removeAttribute('visibility');}catch{} } if (ImprovedTube.storage.chapters === false){try{document.querySelector('*[target-id*=chapters] #visibility-button button').click();}catch{}} } - else if (camelized_key === 'commentsSidebar') { + else if (camelized_key === 'commentsSidebar') { if(ImprovedTube.storage.comments_sidebar === false) {document.querySelector("#below").appendChild(document.querySelector("#comments")); document.querySelector("#secondary").appendChild(document.querySelector("#related")); } From d19aa5ce15d6d2736bfcecb970af254141a8ac9e Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Wed, 3 May 2023 03:15:40 +0200 Subject: [PATCH 0945/1224] Update player.js alignment, spaces to tabs --- menu/skeleton-parts/player.js | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index 18dd3496f..bce767a22 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -53,47 +53,47 @@ extension.skeleton.main.layers.section.player.on.click = { value: true, storage: 'player_autoplay' }, - autopause_when_switching_tabs: { + autopause_when_switching_tabs: { component: 'switch', text: 'autopauseWhenSwitchingTabs', storage: 'player_autopause_when_switching_tabs', - on: { click: function () { setTimeout(() => { - + on: { click: function () { setTimeout(() => { + if (satus.storage.get('player_autopause_when_switching_tabs')) { if (satus.storage.get('only_one_player_instance_playing')) { this.nextSibling.click(); } } }, "250"); } - } + } }, - only_one_player_instance_playing: { + only_one_player_instance_playing: { component: 'switch', text: 'onlyOnePlayerInstancePlaying', on: { - click: function () { setTimeout(() => { + click: function () { setTimeout(() => { if (satus.storage.get('only_one_player_instance_playing')) { if (satus.storage.get('player_autopause_when_switching_tabs')) { this.previousSibling.click(); } } - }, "250"); } - } + }, "250"); } + } }, - player_autoPip: { + player_autoPip: { component: 'switch', text: 'autoPip', value: false, on: { - click: function () { setTimeout(() => { + click: function () { setTimeout(() => { if (satus.storage.get('player_autoPip')) { if (satus.storage.get('player_autopause_when_switching_tabs')) { this.previousSibling.click(); } } - }, "250"); } - } - }, + }, "250"); } + } + }, quality: { component: 'select', text: 'quality', @@ -177,7 +177,7 @@ extension.skeleton.main.layers.section.player.on.click = { component: 'switch', text: 'autoFullscreen', storage: 'player_autofullscreen' - }, + }, subtitles: { component: 'button', text: 'subtitles', @@ -938,7 +938,7 @@ extension.skeleton.main.layers.section.player.on.click = { value: 'av1-vp8-vp9' } ] - + }, player_60fps: { component: 'switch', From 30be349c33e8297dc45426ad2a5fe7df9d90ec3c Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Wed, 3 May 2023 03:37:20 +0200 Subject: [PATCH 0946/1224] Update player.js more code alignment --- menu/skeleton-parts/player.js | 54 +++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index bce767a22..64690ea26 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -57,42 +57,48 @@ extension.skeleton.main.layers.section.player.on.click = { component: 'switch', text: 'autopauseWhenSwitchingTabs', storage: 'player_autopause_when_switching_tabs', - on: { click: function () { setTimeout(() => { - - if (satus.storage.get('player_autopause_when_switching_tabs')) { - if (satus.storage.get('only_one_player_instance_playing')) { - this.nextSibling.click(); - } + on: { + click: function () { + setTimeout(() => { + if (satus.storage.get('player_autopause_when_switching_tabs')) { + if (satus.storage.get('only_one_player_instance_playing')) { + this.nextSibling.click(); } - }, "250"); } - } + } + }, "250"); + } + } }, only_one_player_instance_playing: { component: 'switch', text: 'onlyOnePlayerInstancePlaying', - on: { - click: function () { setTimeout(() => { - if (satus.storage.get('only_one_player_instance_playing')) { - if (satus.storage.get('player_autopause_when_switching_tabs')) { - this.previousSibling.click(); - } + on: { + click: function () { + setTimeout(() => { + if (satus.storage.get('only_one_player_instance_playing')) { + if (satus.storage.get('player_autopause_when_switching_tabs')) { + this.previousSibling.click(); } - }, "250"); } - } + } + }, "250"); + } + } }, player_autoPip: { component: 'switch', text: 'autoPip', value: false, - on: { - click: function () { setTimeout(() => { - if (satus.storage.get('player_autoPip')) { - if (satus.storage.get('player_autopause_when_switching_tabs')) { - this.previousSibling.click(); - } + on: { + click: function () { + setTimeout(() => { + if (satus.storage.get('player_autoPip')) { + if (satus.storage.get('player_autopause_when_switching_tabs')) { + this.previousSibling.click(); } - }, "250"); } - } + } + }, "250"); + } + } }, quality: { component: 'select', From 674912c5a701ce333afcf936c932ba565ed1988c Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Wed, 3 May 2023 03:41:00 +0200 Subject: [PATCH 0947/1224] Update player.js 'up next autoplay' moved next to autoplay, quality moved next to codec options --- menu/skeleton-parts/player.js | 88 +++++++++++++++++------------------ 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index 64690ea26..111e807e3 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -53,6 +53,11 @@ extension.skeleton.main.layers.section.player.on.click = { value: true, storage: 'player_autoplay' }, + up_next_autoplay: { + component: 'switch', + text: 'upNextAutoplay', + value: true + }, autopause_when_switching_tabs: { component: 'switch', text: 'autopauseWhenSwitchingTabs', @@ -100,45 +105,6 @@ extension.skeleton.main.layers.section.player.on.click = { } } }, - quality: { - component: 'select', - text: 'quality', - options: [{ - text: 'auto', - value: 'auto' - }, { - text: '144p', - value: 'tiny' - }, { - text: '240p', - value: 'small' - }, { - text: '360p', - value: 'medium' - }, { - text: '480p', - value: 'large' - }, { - text: '720p', - value: 'hd720' - }, { - text: '1080p', - value: 'hd1080' - }, { - text: '1440p', - value: 'hd1440' - }, { - text: '2160p', - value: 'hd2160' - }, { - text: '2880p', - value: 'hd2880' - }, { - text: '4320p', - value: 'highres' - }], - storage: 'player_quality' - }, player_forced_volume: { component: 'switch', text: 'forcedVolume', @@ -838,15 +804,49 @@ extension.skeleton.main.layers.section.player.on.click = { value: true, storage: 'player_crop_chapter_titles' }, - up_next_autoplay: { - component: 'switch', - text: 'upNextAutoplay', - value: true - }, mini_player: { component: 'switch', text: 'customMiniPlayer' }, + quality: { + component: 'select', + text: 'quality', + options: [{ + text: 'auto', + value: 'auto' + }, { + text: '144p', + value: 'tiny' + }, { + text: '240p', + value: 'small' + }, { + text: '360p', + value: 'medium' + }, { + text: '480p', + value: 'large' + }, { + text: '720p', + value: 'hd720' + }, { + text: '1080p', + value: 'hd1080' + }, { + text: '1440p', + value: 'hd1440' + }, { + text: '2160p', + value: 'hd2160' + }, { + text: '2880p', + value: 'hd2880' + }, { + text: '4320p', + value: 'highres' + }], + storage: 'player_quality' + }, h264: { component: 'switch', text: 'codecH264', From e3d67d02f1f89658af40d3774b0284ee68e9b32c Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Wed, 3 May 2023 13:40:53 +0200 Subject: [PATCH 0948/1224] Update player.js added helper modal function, "Codec h.264" sets "Codecs", "Codecs" disable "Codec h.264" --- menu/skeleton-parts/player.js | 113 +++++++++++++++++++++++----------- 1 file changed, 77 insertions(+), 36 deletions(-) diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index 111e807e3..d682db3ea 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -37,6 +37,39 @@ extension.skeleton.main.layers.section.player = { } }; +/*-------------------------------------------------------------- +# ModalHelper +--------------------------------------------------------------*/ + +function ModalHelper(where, ok, cancel) { + satus.render({ + component: 'modal', + + message: { + component: 'text', + text: 'youtubeLimitsVideoQualityTo1080pForH264Codec' + }, + actions: { + component: 'section', + variant: 'actions', + + ok: { + component: 'button', + text: 'OK', + on: { + click: ok + } + }, + cancel: { + component: 'button', + text: 'cancel', + on: { + click: cancel + } + } + } + }, where.parentNode.parentNode.parentNode); +}; /*-------------------------------------------------------------- # SECTION @@ -855,38 +888,19 @@ extension.skeleton.main.layers.section.player.on.click = { click: function () { if (this.dataset.value === 'true') { var component = this; - satus.render({ - component: 'modal', - - message: { - component: 'text', - text: 'youtubeLimitsVideoQualityTo1080pForH264Codec' - }, - actions: { - component: 'section', - variant: 'actions', - - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - component.click(); - this.parentNode.parentNode.parentNode.close() - } - } - }, - ok: { - component: 'button', - text: 'OK', - on: { - click: function () { - this.parentNode.parentNode.parentNode.close() - } - } - } + ModalHelper(this, function(){ + satus.storage.set('block_vp8', true); + satus.storage.set('block_vp9', true); + satus.storage.set('block_av1', true); + this.parentNode.parentNode.parentNode.close(); + satus.storage.set('block_h264', false); + }, + function(){ + component.click(); + if (this.componentName) { + this.parentNode.parentNode.parentNode.close(); } - },this.parentNode.parentNode.parentNode); + }); } } } @@ -899,22 +913,49 @@ extension.skeleton.main.layers.section.player.on.click = { section: { component: 'section', variant: 'card', - block_h264: { component: 'switch', - text: 'blockH264' + text: 'blockH264', + on: { + click: function () { + if (this.dataset.value === 'true' && satus.storage.get('player_h264')) { + satus.storage.set('player_h264', false); + } + } + } }, block_vp8: { component: 'switch', - text: 'blockVp8' + text: 'blockVp8', + on: { + click: function () { + if (this.dataset.value === 'false' && satus.storage.get('player_h264')) { + satus.storage.set('player_h264', false); + } + } + } }, block_vp9: { component: 'switch', - text: 'blockVp9' + text: 'blockVp9', + on: { + click: function () { + if (this.dataset.value === 'false' && satus.storage.get('player_h264')) { + satus.storage.set('player_h264', false); + } + } + } }, block_av1: { component: 'switch', - text: 'blockAv1' + text: 'blockAv1', + on: { + click: function () { + if (this.dataset.value === 'false' && satus.storage.get('player_h264')) { + satus.storage.set('player_h264', false); + } + } + } } } } From 415deefbbc8aadb5b7ee8e67502e3802dbe2bad8 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Wed, 3 May 2023 13:46:38 +0200 Subject: [PATCH 0949/1224] Update satus.js Improved modal dialog handling, clicking outside tries to Cancel, previously clicking outside just force removed dialog. --- js&css/satus.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/js&css/satus.js b/js&css/satus.js index 4e64db981..ff9a82066 100644 --- a/js&css/satus.js +++ b/js&css/satus.js @@ -1110,6 +1110,16 @@ satus.components.modal = function(component, skeleton) { component.close = function() { var component = this; + component.close = function(outside) { + var component = this; + + //try calling cancel when clicked outside of modal dialog + if (outside) { + //not sure if bug free so better trap this for now + try { if (skeleton.actions.cancel.on.click) skeleton.actions.cancel.on.click(); } + catch(err){console.log(err);} + } + this.classList.add('satus-modal--closing'); setTimeout(function() { @@ -1120,7 +1130,8 @@ satus.components.modal = function(component, skeleton) { }; component.scrim.addEventListener('click', function() { - this.parentNode.close(); + //this is someone clicking outside of modal dialog + this.parentNode.close(true); }); if (satus.isset(skeleton.content)) { From 811c612707863fd4664a48a135a86b056651d608 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Wed, 3 May 2023 14:22:19 +0200 Subject: [PATCH 0950/1224] Update satus.js fixing previous commit duplicate lines --- js&css/satus.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/js&css/satus.js b/js&css/satus.js index ff9a82066..fbc8189e3 100644 --- a/js&css/satus.js +++ b/js&css/satus.js @@ -1107,9 +1107,6 @@ satus.components.modal = function(component, skeleton) { component.scrim = component.createChildElement('div', 'scrim'); component.surface = component.createChildElement('div', 'surface'); - component.close = function() { - var component = this; - component.close = function(outside) { var component = this; From 3bd48581ecf7a852fc2c22fe67b6a806e75477d3 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Thu, 4 May 2023 01:07:16 +0200 Subject: [PATCH 0951/1224] Update core.js removing "block_vp8", YT doesnt use it anymore. "Codecs" works now, can pick individual codecs to block. --- js&css/web-accessible/core.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/js&css/web-accessible/core.js b/js&css/web-accessible/core.js index d818dd578..43e843752 100644 --- a/js&css/web-accessible/core.js +++ b/js&css/web-accessible/core.js @@ -152,13 +152,15 @@ document.addEventListener('it-message-from-extension', function () { if (message.action === 'storage-loaded') { ImprovedTube.storage = message.storage; - if (ImprovedTube.storage.player_h264) { - localStorage['it-codec'] = "/webm|vp8|vp9|av01/"; + if (ImprovedTube.storage.block_vp9 || ImprovedTube.storage.block_av1 || ImprovedTube.storage.block_h264) { + let atlas = {block_vp9:'vp9|vp09', block_h264:'avc1', block_av1:'av01'} + localStorage['it-codec'] = Object.keys(atlas).reduce(function (all, key) { + return ImprovedTube.storage[key] ? ((all?all+'|':'') + atlas[key]) : all}, ''); } else { localStorage.removeItem('it-codec'); } if (!ImprovedTube.storage.player_60fps) { - localStorage['it-player30fps'] = true; + localStorage['it-player30fps'] = true; } else { localStorage.removeItem('it-player30fps'); } @@ -169,10 +171,11 @@ document.addEventListener('it-message-from-extension', function () { var camelized_key = message.camelizedKey; ImprovedTube.storage[message.key] = message.value; - if(message.key==="player_h264"){ - if (ImprovedTube.storage.player_h264) { - localStorage['it-codec'] = "/webm|vp8|vp9|av01/"; - } else { + if(['block_vp9', 'block_h264', 'block_av1'].includes(message.key)){ + let atlas = {block_vp9:'vp9|vp09', block_h264:'avc1', block_av1:'av01'} + localStorage['it-codec'] = Object.keys(atlas).reduce(function (all, key) { + return ImprovedTube.storage[key] ? ((all?all+'|':'') + atlas[key]) : all}, ''); + if (!localStorage['it-codec']) { localStorage.removeItem('it-codec'); } } From 909e92affc30708c0383bd1919fc21642c87da02 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Thu, 4 May 2023 01:09:12 +0200 Subject: [PATCH 0952/1224] Update player.js removed block_vp8 --- menu/skeleton-parts/player.js | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index d682db3ea..6558c760f 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -889,7 +889,6 @@ extension.skeleton.main.layers.section.player.on.click = { if (this.dataset.value === 'true') { var component = this; ModalHelper(this, function(){ - satus.storage.set('block_vp8', true); satus.storage.set('block_vp9', true); satus.storage.set('block_av1', true); this.parentNode.parentNode.parentNode.close(); @@ -924,17 +923,6 @@ extension.skeleton.main.layers.section.player.on.click = { } } }, - block_vp8: { - component: 'switch', - text: 'blockVp8', - on: { - click: function () { - if (this.dataset.value === 'false' && satus.storage.get('player_h264')) { - satus.storage.set('player_h264', false); - } - } - } - }, block_vp9: { component: 'switch', text: 'blockVp9', From 23aa7e854e488f59a61100c199018d1cad67fe81 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Thu, 4 May 2023 07:48:17 +0200 Subject: [PATCH 0953/1224] Update player.js more work on ModalHelper, popup warnings for disabling all video decoders. --- menu/skeleton-parts/player.js | 37 ++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index 6558c760f..55de58219 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -41,13 +41,13 @@ extension.skeleton.main.layers.section.player = { # ModalHelper --------------------------------------------------------------*/ -function ModalHelper(where, ok, cancel) { +function ModalHelper(where, what, ok, cancel) { satus.render({ component: 'modal', message: { component: 'text', - text: 'youtubeLimitsVideoQualityTo1080pForH264Codec' + text: what }, actions: { component: 'section', @@ -57,14 +57,23 @@ function ModalHelper(where, ok, cancel) { component: 'button', text: 'OK', on: { - click: ok + click: function () { + ok(); + this.parentNode.parentNode.parentNode.close(); + } } }, cancel: { component: 'button', text: 'cancel', on: { - click: cancel + click: function () { + where.click(); + cancel(); + if (this.componentName) { + this.parentNode.parentNode.parentNode.close(); + } + } } } } @@ -887,18 +896,12 @@ extension.skeleton.main.layers.section.player.on.click = { on: { click: function () { if (this.dataset.value === 'true') { - var component = this; - ModalHelper(this, function(){ + ModalHelper(this, 'youtubeLimitsVideoQualityTo1080pForH264Codec', function(){ satus.storage.set('block_vp9', true); satus.storage.set('block_av1', true); - this.parentNode.parentNode.parentNode.close(); satus.storage.set('block_h264', false); }, function(){ - component.click(); - if (this.componentName) { - this.parentNode.parentNode.parentNode.close(); - } }); } } @@ -920,6 +923,12 @@ extension.skeleton.main.layers.section.player.on.click = { if (this.dataset.value === 'true' && satus.storage.get('player_h264')) { satus.storage.set('player_h264', false); } + if (this.dataset.value === 'true' && satus.storage.get('block_vp9')) { + ModalHelper(this, 'You need either VP9 or H264 enabled for Youtube to work. Disabling both will break Video.', function(){ + }, + function(){ + }); + } } } }, @@ -931,6 +940,12 @@ extension.skeleton.main.layers.section.player.on.click = { if (this.dataset.value === 'false' && satus.storage.get('player_h264')) { satus.storage.set('player_h264', false); } + if (this.dataset.value === 'true' && satus.storage.get('block_h264')) { + ModalHelper(this, 'You need either VP9 or H264 enabled for Youtube to work. Disabling both will break Video.', function(){ + }, + function(){ + }); + } } } }, From 7a25a59c590c4f1da8c99321660d191487ec2c65 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Thu, 4 May 2023 13:53:15 +0200 Subject: [PATCH 0954/1224] Update player.js more h264/codec interaction work, now switching one automatically updates another. Preliminary optimize_codec_for_hardware_acceleration implementation. Needs a list of GPUs with supported hardware codecs. --- menu/skeleton-parts/player.js | 103 ++++++++++++++++++++++++++-------- 1 file changed, 79 insertions(+), 24 deletions(-) diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index 55de58219..b54c64929 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -38,7 +38,8 @@ extension.skeleton.main.layers.section.player = { }; /*-------------------------------------------------------------- -# ModalHelper +# ModalHelper, like satus.components.modal.confirm but lets you + pass callback functions --------------------------------------------------------------*/ function ModalHelper(where, what, ok, cancel) { @@ -895,14 +896,30 @@ extension.skeleton.main.layers.section.player.on.click = { storage: 'player_h264', on: { click: function () { + //always refresh player_codecs element when clicking here + let skeleton = this.parentNode.skeleton; + refresh = function () { + skeleton.player_codecs.list.rendered.dispatchEvent(new CustomEvent('refresh')); + skeleton.optimize_codec_for_hardware_acceleration.list.rendered.dispatchEvent(new CustomEvent('refresh')); + } if (this.dataset.value === 'true') { ModalHelper(this, 'youtubeLimitsVideoQualityTo1080pForH264Codec', function(){ satus.storage.set('block_vp9', true); satus.storage.set('block_av1', true); satus.storage.set('block_h264', false); + refresh(); }, function(){ + satus.storage.set('block_vp9', false); + satus.storage.set('block_av1', false); + satus.storage.set('block_h264', false); + refresh(); }); + } else { + satus.storage.set('block_vp9', false); + satus.storage.set('block_av1', false); + satus.storage.set('block_h264', false); + refresh(); } } } @@ -910,6 +927,9 @@ extension.skeleton.main.layers.section.player.on.click = { player_codecs: { component: 'button', text: 'codecs', + style: { + justifyContent: 'space-between' + }, on: { click: { section: { @@ -962,33 +982,68 @@ extension.skeleton.main.layers.section.player.on.click = { } } } + }, + list: { + component: 'span', + style: { + opacity: .64 + }, + on: { + refresh: function () { this.skeleton.on.render() }, + render: function () { + var codecs = (satus.storage.get('block_h264') ? '' : 'h.264 ') + (satus.storage.get('block_vp9') ? '' : 'vp9 ') + (satus.storage.get('block_av1') ? '' : 'av1'); + var here = this.parentObject ? this.parentObject.rendered : this; + + if (codecs) { + here.style = ''; + here.textContent = codecs; + } else { + here.style = 'color: red!important; font-weight: bold;'; + here.textContent = 'none'; + } + } + } } }, - avoid_cpu_rendering_when_possible: { - component: 'select', - text: 'avoidCpuRenderingWhenPossible', - options: [{ - text: 'disabled', - value: 'disabled' - }, - { - text: 'auto', - value: 'auto' - }, - { - text: 'avoidAv1', - value: 'av1' - }, - { - text: 'avoidAv1Vp9', - value: 'av1-vp9' - }, - { - text: 'avoidAv1Vp8Vp9', - value: 'av1-vp8-vp9' + optimize_codec_for_hardware_acceleration: { + component: 'button', + text: 'Optimize Codec for hardware acceleration', + style: { + justifyContent: 'space-between' + }, + on: { + click: function () { + //put some code here } - ] + }, + list: { + component: 'span', + style: { + opacity: .64 + }, + on: { + refresh: function () { this.skeleton.on.render() }, + render: function () { + // put some code here looking up GPU capabilities and comparing to currrent codec selection + var codecs = (satus.storage.get('block_h264') ? '' : 'h.264 ') + (satus.storage.get('block_vp9') ? '' : 'vp9 ') + (satus.storage.get('block_av1') ? '' : 'av1'); + var here = this.parentObject ? this.parentObject.rendered : this; + if (1) { // todo + here.style = ''; + here.textContent = 'Feature not yet available'; + } else if (2) { // todo + here.style = ''; + here.textContent = 'unknown GPU'; + } else if (codecs) { + here.style = 'color: greenimportant; font-weight: bold;'; + here.textContent = 'Optimal'; + } else { + here.style = 'color: red!important; font-weight: bold;'; + here.textContent = 'Not optimal'; + } + } + } + } }, player_60fps: { component: 'switch', From 0e6cd7cc70327a1177b68e1c7d0bc54d312d17a7 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Thu, 4 May 2023 22:36:17 +0200 Subject: [PATCH 0955/1224] player.js issues/1666 fix, when quality not available try the closest one instead of highest --- .../web-accessible/www.youtube.com/player.js | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index fa8bb954f..9f9a01ed1 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -376,6 +376,19 @@ ImprovedTube.playerAutofullscreen = function () { QUALITY ------------------------------------------------------------------------------*/ ImprovedTube.playerQuality = function () { + function closest (num, arr) { + let curr = arr[0]; + let diff = Math.abs (num - curr); + for (let val = 0; val < arr.length; val++) { + let newdiff = Math.abs (num - arr[val]); + if (newdiff < diff) { + diff = newdiff; + curr = arr[val]; + } + } + return curr; + }; + var player = this.elements.player, quality = this.storage.player_quality; @@ -384,7 +397,14 @@ ImprovedTube.playerQuality = function () { if (quality && quality !== 'auto') { if (available_quality_levels.includes(quality) === false) { - quality = available_quality_levels[0]; + let label = ['tiny', 'small', 'medium', 'large', 'hd720', 'hd1080', 'hd1440', 'hd2160', 'hd2880', 'highres']; + let resolution = ['144', '240', '360', '480', '720', '1080', '1440', '2160', '2880', '4320']; + let availableresolutions = available_quality_levels.reduce(function (array, elem) { + array.push(resolution[label.indexOf(elem)]); return array; + }, []); + + quality = closest (resolution[label.indexOf(quality)], availableresolutions); + quality = label[resolution.indexOf(quality)]; } player.setPlaybackQualityRange(quality); From e618c6d0cbf400d199acece17576583fbcfc363d Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Thu, 4 May 2023 22:39:55 +0200 Subject: [PATCH 0956/1224] player.js issues/1666 fix, when quality not available try the closest one instead of highest --- .../web-accessible/www.youtube.com/player.js | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/js&css/web-accessible/www.youtube.com/player.js b/js&css/web-accessible/www.youtube.com/player.js index fa8bb954f..9f9a01ed1 100644 --- a/js&css/web-accessible/www.youtube.com/player.js +++ b/js&css/web-accessible/www.youtube.com/player.js @@ -376,6 +376,19 @@ ImprovedTube.playerAutofullscreen = function () { QUALITY ------------------------------------------------------------------------------*/ ImprovedTube.playerQuality = function () { + function closest (num, arr) { + let curr = arr[0]; + let diff = Math.abs (num - curr); + for (let val = 0; val < arr.length; val++) { + let newdiff = Math.abs (num - arr[val]); + if (newdiff < diff) { + diff = newdiff; + curr = arr[val]; + } + } + return curr; + }; + var player = this.elements.player, quality = this.storage.player_quality; @@ -384,7 +397,14 @@ ImprovedTube.playerQuality = function () { if (quality && quality !== 'auto') { if (available_quality_levels.includes(quality) === false) { - quality = available_quality_levels[0]; + let label = ['tiny', 'small', 'medium', 'large', 'hd720', 'hd1080', 'hd1440', 'hd2160', 'hd2880', 'highres']; + let resolution = ['144', '240', '360', '480', '720', '1080', '1440', '2160', '2880', '4320']; + let availableresolutions = available_quality_levels.reduce(function (array, elem) { + array.push(resolution[label.indexOf(elem)]); return array; + }, []); + + quality = closest (resolution[label.indexOf(quality)], availableresolutions); + quality = label[resolution.indexOf(quality)]; } player.setPlaybackQualityRange(quality); From 5a57522c293ebf1035d704d528a1732c8c2075de Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 8 May 2023 07:15:06 +0200 Subject: [PATCH 0957/1224] Update details.css just format --- .../appearance/details/details.css | 82 ++++++++++--------- 1 file changed, 44 insertions(+), 38 deletions(-) diff --git a/js&css/extension/www.youtube.com/appearance/details/details.css b/js&css/extension/www.youtube.com/appearance/details/details.css index 91c8d6eda..9926fab9b 100644 --- a/js&css/extension/www.youtube.com/appearance/details/details.css +++ b/js&css/extension/www.youtube.com/appearance/details/details.css @@ -2,14 +2,14 @@ >>> DETAILS ---------------------------------------------------------------- /*-------------------------------------------------------------- -General +# General --------------------------------------------------------------*/ #info #info-text { max-height: 6rem; display: block; } /*-------------------------------------------------------------- -HIDE DETAILS +# HIDE DETAILS --------------------------------------------------------------*/ html[it-hide-details='true'] ytd-video-primary-info-renderer, html[it-hide-details='true'] ytd-video-secondary-info-renderer, @@ -17,7 +17,7 @@ html[it-hide-details='true'] ytd-watch-metadata { display: none !important; } /*-------------------------------------------------------------- -HIDE VIEWS COUNT +# HIDE VIEWS COUNT --------------------------------------------------------------*/ html[it-hide-views-count='true'] #info #count, html[it-hide-views-count='true'] #info #count + #info-strings>#dot, @@ -25,20 +25,21 @@ html[it-hide-views-count='true'] ytd-watch-metadata #info>span:first-child { display: none !important; } /*-------------------------------------------------------------- -HIDE COMMENTS COUNT +# HIDE COMMENTS COUNT --------------------------------------------------------------*/ html[it-hide-comments-count='true'] #comments #count { display: none !important; } + /*-------------------------------------------------------------- -HIDE DATE +# HIDE DATE --------------------------------------------------------------*/ html[it-hide-date='true'] #info #count + #info-strings>yt-formatted-string, html[it-hide-date='true'] #info #count + #info-strings>#dot, html[it-hide-date='true'] ytd-watch-metadata #info>span:last-child { display: none !important; } -/*-------------------------------------------------------------- + /*-------------------------------------------------------------- YouTube's detail buttons --------------------------------------------------------------*/ html[it-youtubeDetailButtons='remove_labels'] #menu ytd-button-renderer div:nth-child(2), @@ -54,13 +55,15 @@ html[it-youtubeDetailButtons='half_transparent'] #menu button {opacity:0.5;} html[it-youtubeDetailButtons='transparent_background'] #subscribe-button button, html[it-youtubeDetailButtons='transparent_background'] #menu button {background-color:rgba(0, 0, 0, 0.01) !important;} html[it-youtubeDetailButtons='transparent_background'] #subscribe-button button {color:#111 !important;} - /*-------------------------------------------------------------- + + /*-------------------------------------------------------------- HIDE SUBSCRIBE --------------------------------------------------------------*/ html[it-subscribe='hidden'] #subscribe-button {display: none !important;} html[it-subscribe='grey'] #subscribe-button button { background-color: #DDD !important; color:#111 !important; } html[it-subscribe='transparent'] #subscribe-button button {background-color:rgba(0, 0, 0, 0) !important; color:#111 !important; } -/*-------------------------------------------------------------- + + /*-------------------------------------------------------------- HIDE LIKE BUTTON --------------------------------------------------------------*/ html[it-likes='hidden'] #top-level-buttons-computed #segmented-like-button ytd-toggle-button-renderer, @@ -86,63 +89,60 @@ html[it-hide-dislike-button='icons_only'] #top-level-buttons-computed #segmented padding: 0 5px; } /*-------------------------------------------------------------- -DISLIKED in RED +# SHOW DISLIKE RED COLOR --------------------------------------------------------------*/ html[it-red-dislike-button='true'] #top-level-buttons-computed #segmented-dislike-button ytd-toggle-button-renderer *[aria-pressed='true'] yt-icon { color: #f02200 !important; } + /*-------------------------------------------------------------- -HIDE SHARE BUTTON +# HIDE SHARE BUTTON --------------------------------------------------------------*/ html[it-hide-share-button='hidden'] #menu button:has(svg path[d^="M15,5.63L20.66,12L15,18.37V15v"]), -html[it-hide-share-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M15,5.63L20.66,12L15,18.37V15v"]) { - display: none; -} +html[it-hide-share-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M15,5.63L20.66,12L15,18.37V15v"]), + html[it-hide-share-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M15,5.63L20.66,12L15,18.37V15v"]) div:nth-child(2), html[it-hide-share-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M15,5.63L20.66,12L15,18.37V15v"]) .cbox{ display: none; } /*-------------------------------------------------------------- -HIDE DOWNLOAD BUTTON +# HIDE DOWNLOAD BUTTON --------------------------------------------------------------*/ html[it-hide-download-button='hidden'] #menu button:has(svg path[d^="M17 18V19H6V18H17ZM16.5 11.4"]), html[it-hide-download-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M17 18V19H6V18H17ZM16.5 11.4"]) { display: none; } + html[it-hide-download-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M17 18V19H6V18H17ZM16.5 11.4"]) div:nth-child(2), html[it-hide-download-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M17 18V19H6V18H17ZM16.5 11.4"]) .cbox{ display: none; } /*-------------------------------------------------------------- -HIDE THANKS BUTTON +# HIDE THANKS BUTTON --------------------------------------------------------------*/ html[it-hide-thanks-button='hidden'] #menu button:has(svg path[d^="M16.5,3C19.02,3,21,5.19,21,7.99c"]), -html[it-hide-thanks-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M16.5,3C19.02,3,21,5.19,21,7.99c"]) { - display: none; -} +html[it-hide-thanks-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M16.5,3C19.02,3,21,5.19,21,7.99c"]), + html[it-hide-thanks-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M16.5,3C19.02,3,21,5.19,21,7.99c"]) div:nth-child(2), html[it-hide-thanks-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M16.5,3C19.02,3,21,5.19,21,7.99c"]) .cbox{ display: none; } /*-------------------------------------------------------------- -HIDE CLIP BUTTON +# HIDE CLIP BUTTON --------------------------------------------------------------*/ html[it-hide-clip-button='hidden'] #menu button:has(svg path[d^="M8,7c0,0.55-0.45,1-1,1S6,7."]), -html[it-hide-clip-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M8,7c0,0.55-0.45,1-1,1S6,7."]) { - display: none; -} +html[it-hide-clip-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M8,7c0,0.55-0.45,1-1,1S6,7."]), html[it-hide-clip-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M8,7c0,0.55-0.45,1-1,1S6,7."]) div:nth-child(2), html[it-hide-clip-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M8,7c0,0.55-0.45,1-1,1S6,7."]) .cbox{ display: none; } /*-------------------------------------------------------------- -HIDE SAVE BUTTON +# HIDE SAVE BUTTON --------------------------------------------------------------*/ html[it-hide-save-button='hidden'] #menu button:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]), -html[it-hide-save-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]) { - display: none; -} +html[it-hide-save-button='hidden'] #flexible-item-buttons button:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]), + html[it-hide-save-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]) div:nth-child(2), html[it-hide-save-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^="M22,13h-4v4h-2v-4h-4v-2h4V7h2v4h4V13z"]) .cbox{ display: none; @@ -150,6 +150,7 @@ html[it-hide-save-button='icons_only'] #menu ytd-button-renderer:has(svg path[d^ /*-------------------------------------------------------------- HIDE REPORT BUTTON --------------------------------------------------------------*/ +html[it-hide-report-button='true'] #top-level-buttons-computed ytd-button-renderer#Report-button, html[it-hide-report-button='true'] #menu button:has(svg path[d^="M13.18,4l0.24,1.2L13.58,"]), html[it-hide-report-button='true'] #flexible-item-buttons button:has(svg path[d^="M13.18,4l0.24,1.2L13.58,"]) { display: none; @@ -157,40 +158,37 @@ html[it-hide-report-button='true'] #flexible-item-buttons button:has(svg path[d^ /*-------------------------------------------------------------- HIDE MORE BUTTON --------------------------------------------------------------*/ +html[it-hide-more-button='true'] #menu yt-button-shape#button-shape, html[it-hide-more-button='true'] #menu button:has(svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]), html[it-hide-more-button='true'] #flexible-item-buttons button:has(svg path[d^="M7.5,12c0,0.83-0.67,1.5-1.5"]) { display: none; } /*-------------------------------------------------------------- -HIDE THANKS BUTTON +# HIDE THANKS BUTTON --------------------------------------------------------------*/ html[it-hide-thanks-button='hidden'] #flexible-item-buttons ytd-button-renderer#Thanks-button, html[it-hide-thanks-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Thanks-button div.cbox { display: none; } + /*-------------------------------------------------------------- -HIDE CLIP BUTTON +# HIDE CLIP BUTTON --------------------------------------------------------------*/ html[it-hide-clip-button='hidden'] #flexible-item-buttons ytd-button-renderer#Clip-button, html[it-hide-clip-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Clip-button div.cbox { display: none; } /*-------------------------------------------------------------- -HIDE SAVE BUTTON +# HIDE SAVE BUTTON --------------------------------------------------------------*/ html[it-hide-save-button='hidden'] #flexible-item-buttons ytd-button-renderer#Save-button, html[it-hide-save-button='icons_only'] #flexible-item-buttons ytd-button-renderer#Save-button div.cbox { display: none; } /*-------------------------------------------------------------- -DESCRIPTION +# DESCRIPTION --------------------------------------------------------------*/ -html[it-description='hidden'] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, -html[it-description='hidden'] div#action-panel-details, -html[it-description='hidden'] ytd-expander.ytd-video-secondary-info-renderer, -html[it-description='hidden'] #description-inline-expander { - display: none !important; -} + html[it-description='classic'] .ytd-watch-flexy #info-contents, html[it-description='classic'] .ytd-watch-flexy #meta-contents { display: block !important; } html[it-description='classic'] #below.ytd-watch-flexy { top:-20px; } @@ -208,12 +206,19 @@ html[it-description='classic_hidden'] #below.ytd-watch-flexy { top:-20px; } html[it-description='classic_hidden'] ytd-menu-renderer[has-flexible-items] { overflow-y: unset !important; } html[it-description='classic_hidden'] ytd-video-primary-info-renderer { padding-bottom: 14px !important; } +html[it-description='hidden'] ytd-video-secondary-info-renderer ytd-expander.ytd-video-secondary-info-renderer, +html[it-description='hidden'] div#action-panel-details, +html[it-description='hidden'] ytd-expander.ytd-video-secondary-info-renderer, +html[it-description='hidden'] #description-inline-expander { + display: none !important; +} html[it-description='classic'] div.style-scope.ytd-watch-flexy + ytd-watch-metadata, html[it-description='classic_expanded'] div.style-scope.ytd-watch-flexy + ytd-watch-metadata, html[it-description='classic_hidden'] div.style-scope.ytd-watch-flexy + ytd-watch-metadata {display: none !important;} + /*-------------------------------------------------------------- -HOW LONG AGO THE VIDEO WAS UPLOADED +# HOW LONG AGO THE VIDEO WAS UPLOADED --------------------------------------------------------------*/ .it-how-long-ago-the-video-was-uploaded { float: right !important; @@ -222,8 +227,9 @@ HOW LONG AGO THE VIDEO WAS UPLOADED color: var(--yt-spec-text-secondary) !important; } + /*-------------------------------------------------------------- -SHOW CHANNEL VIDEOS COUNT +# SHOW CHANNEL VIDEOS COUNT --------------------------------------------------------------*/ .it-channel-videos-count { display: inline-block !important; From 8d8230caae4311632f69b1d48b7addfe2e29539d Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 8 May 2023 14:49:32 +0200 Subject: [PATCH 0958/1224] Update player.js --- menu/skeleton-parts/player.js | 93 ++++++++++++++++++----------------- 1 file changed, 47 insertions(+), 46 deletions(-) diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index b54c64929..5e8e067df 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -890,40 +890,6 @@ extension.skeleton.main.layers.section.player.on.click = { }], storage: 'player_quality' }, - h264: { - component: 'switch', - text: 'codecH264', - storage: 'player_h264', - on: { - click: function () { - //always refresh player_codecs element when clicking here - let skeleton = this.parentNode.skeleton; - refresh = function () { - skeleton.player_codecs.list.rendered.dispatchEvent(new CustomEvent('refresh')); - skeleton.optimize_codec_for_hardware_acceleration.list.rendered.dispatchEvent(new CustomEvent('refresh')); - } - if (this.dataset.value === 'true') { - ModalHelper(this, 'youtubeLimitsVideoQualityTo1080pForH264Codec', function(){ - satus.storage.set('block_vp9', true); - satus.storage.set('block_av1', true); - satus.storage.set('block_h264', false); - refresh(); - }, - function(){ - satus.storage.set('block_vp9', false); - satus.storage.set('block_av1', false); - satus.storage.set('block_h264', false); - refresh(); - }); - } else { - satus.storage.set('block_vp9', false); - satus.storage.set('block_av1', false); - satus.storage.set('block_h264', false); - refresh(); - } - } - } - }, player_codecs: { component: 'button', text: 'codecs', @@ -933,22 +899,17 @@ extension.skeleton.main.layers.section.player.on.click = { on: { click: { section: { + component: 'section', variant: 'card', - block_h264: { + block_av1: { component: 'switch', - text: 'blockH264', + text: 'blockAv1', on: { click: function () { - if (this.dataset.value === 'true' && satus.storage.get('player_h264')) { + if (this.dataset.value === 'false' && satus.storage.get('player_h264')) { satus.storage.set('player_h264', false); } - if (this.dataset.value === 'true' && satus.storage.get('block_vp9')) { - ModalHelper(this, 'You need either VP9 or H264 enabled for Youtube to work. Disabling both will break Video.', function(){ - }, - function(){ - }); - } } } }, @@ -969,14 +930,20 @@ extension.skeleton.main.layers.section.player.on.click = { } } }, - block_av1: { + block_h264: { component: 'switch', - text: 'blockAv1', + text: 'blockH264', on: { click: function () { - if (this.dataset.value === 'false' && satus.storage.get('player_h264')) { + if (this.dataset.value === 'true' && satus.storage.get('player_h264')) { satus.storage.set('player_h264', false); } + if (this.dataset.value === 'true' && satus.storage.get('block_vp9')) { + ModalHelper(this, 'You need either VP9 or H264 enabled for Youtube to work. Disabling both will break Video.', function(){ + }, + function(){ + }); + } } } } @@ -1005,6 +972,40 @@ extension.skeleton.main.layers.section.player.on.click = { } } }, + h264: { + component: 'switch', + text: 'codecH264', + storage: 'player_h264', + on: { + click: function () { + //always refresh player_codecs element when clicking here + let skeleton = this.parentNode.skeleton; + refresh = function () { + skeleton.player_codecs.list.rendered.dispatchEvent(new CustomEvent('refresh')); + skeleton.optimize_codec_for_hardware_acceleration.list.rendered.dispatchEvent(new CustomEvent('refresh')); + } + if (this.dataset.value === 'true') { + ModalHelper(this, 'youtubeLimitsVideoQualityTo1080pForH264Codec', function(){ + satus.storage.set('block_vp9', true); + satus.storage.set('block_av1', true); + satus.storage.set('block_h264', false); + refresh(); + }, + function(){ + satus.storage.set('block_vp9', false); + satus.storage.set('block_av1', false); + satus.storage.set('block_h264', false); + refresh(); + }); + } else { + satus.storage.set('block_vp9', false); + satus.storage.set('block_av1', false); + satus.storage.set('block_h264', false); + refresh(); + } + } + } + }, optimize_codec_for_hardware_acceleration: { component: 'button', text: 'Optimize Codec for hardware acceleration', From 7e56c0c0005240da1bc2f9b5aa2a31e527410eeb Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 9 May 2023 17:40:55 +0200 Subject: [PATCH 0959/1224] Update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 104db4b25..b9872c86f 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -2,7 +2,7 @@ name: Bug report about: Create a report to help us improve title: '' -labels: Bug, Feature request, good first issue, help wanted, up-for-grabs +labels: Bug, good first issue, help wanted, up-for-grabs assignees: ImprovedTube --- From 94bd68583408e5b20dba0315a9edefeb168723d2 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Wed, 10 May 2023 11:23:13 +0200 Subject: [PATCH 0960/1224] compatibility --- js&css/satus.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js&css/satus.js b/js&css/satus.js index fbc8189e3..47df68e82 100644 --- a/js&css/satus.js +++ b/js&css/satus.js @@ -3062,7 +3062,7 @@ satus.user.device.gpu = function() { --------------------------------------------------------------*/ satus.user.device.cores = function() { - return navigator.deviceConcurrency; + return navigator.deviceConcurrency || navigator.hardwareConcurrency; }; From dc13e07d6f002d95e8e9c10f88b29c640d698db5 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Thu, 11 May 2023 19:01:21 +0200 Subject: [PATCH 0961/1224] Update index.js fix for TypeError: handlers[i] is not a function at satus.events.trigger (satus.js:499:21) at satus.js:1007:20 --- menu/index.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/menu/index.js b/menu/index.js index 9741582c5..c23083ecc 100644 --- a/menu/index.js +++ b/menu/index.js @@ -44,9 +44,8 @@ satus.storage.import(function (items) { ]); extension.attributes(); + satus.events.on('storage-set', extension.attributes); }, '_locales/'); - - satus.events.on('storage-set', extension.attributes); }); chrome.runtime.sendMessage({ @@ -55,4 +54,4 @@ chrome.runtime.sendMessage({ if (response.isTab) { document.body.setAttribute('tab', ''); } -}); \ No newline at end of file +}); From 5ceefbf801bbecf7827ad2dd27b01321c8b20e14 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Thu, 11 May 2023 19:11:57 +0200 Subject: [PATCH 0962/1224] Update satus.js fix for TypeError: handlers[i] is not a function at satus.events.trigger (satus.js:499:21) at satus.js:1007:20 --- js&css/satus.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/js&css/satus.js b/js&css/satus.js index 47df68e82..6cd338035 100644 --- a/js&css/satus.js +++ b/js&css/satus.js @@ -493,8 +493,7 @@ satus.events.trigger = function(type, data) { if (handlers) { for (var i = 0, l = handlers.length; i < l; i++) { - try {handlers[i](data);} - catch(err){console.log(err);} + handlers[i](data); } } }; @@ -1001,8 +1000,7 @@ satus.storage.set = function(key, value, callback) { } chrome.storage.local.set(items, function() { - try {satus.events.trigger('storage-set');} - catch(err){console.log(err);} + satus.events.trigger('storage-set'); if (callback) { callback(); From 6f88ba33618404adcc200bbbbe3e8ec699d86559 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Sat, 13 May 2023 17:32:00 +0200 Subject: [PATCH 0963/1224] Update satus.css dont display clickable cursor outside of modal box --- js&css/satus.css | 1 + 1 file changed, 1 insertion(+) diff --git a/js&css/satus.css b/js&css/satus.css index 4909bc69e..e98517f03 100644 --- a/js&css/satus.css +++ b/js&css/satus.css @@ -211,6 +211,7 @@ height: 100vh; justify-content: center; align-items: center; + cursor: default; } From 8463279210d4a211b0759fb2267b27ca08d95308 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 14 May 2023 11:05:07 +0200 Subject: [PATCH 0964/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index 04c416a8d..f3637ae0e 100644 --- a/.github/README.md +++ b/.github/README.md @@ -196,7 +196,7 @@ Today adding features can be easier & so motivating as there are 500 000 users. 🎁More Extensions & Projects [**unFreeze me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse) [**`History Manager`**] [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode) [**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent) -
Research: [ Ultimate Regex (Search) & Replace](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] ([`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)) +
Research: [ Ultimate Regex (Search & Replace, markup to come?)](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] ([`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm))
**Video / Media:** (**to be integrated in ImprovedTube**...) [**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper) [**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame) [`unBlob`](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob "please fix/adopt me!") (Equalizer[](https://github.com/code-for-charity/equalizer))
Home: (Start Page to be uploaded ) [`TextEditor`](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka) [](https://github.com/code-for-charity/Editor) [`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo) [`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)") From c50edcde1bd1ef1b02df591b1e070e545a497459 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 14 May 2023 11:42:52 +0200 Subject: [PATCH 0965/1224] Update README.md --- .github/README.md | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/.github/README.md b/.github/README.md index f3637ae0e..afb096a72 100644 --- a/.github/README.md +++ b/.github/README.md @@ -192,24 +192,21 @@ Today adding features can be easier & so motivating as there are 500 000 users.         - **W**hy arent there millions of users yet? We didn't write a guide or manual, let alone ads. This project can "fly much higher" through your word of mouth & eventually enable us to work on all wishes & immediate fixes around the clock🌱 -

-🎁More Extensions & Projects

+

+

🎁Our Extensions:

-[**unFreeze me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse) [**`History Manager`**] [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode) [**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent) -
Research: [ Ultimate Regex (Search & Replace, markup to come?)](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex)] ([`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)) -
**Video / Media:** (**to be integrated in ImprovedTube**...) [**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper) [**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame) [`unBlob`](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob "please fix/adopt me!") (Equalizer[](https://github.com/code-for-charity/equalizer)) -
Home: (Start Page to be uploaded ) [`TextEditor`](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka) [](https://github.com/code-for-charity/Editor) [`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo) [`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)") - ---- +**Superb:** [**History Manager**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj) **Filter:** [**unFreeze me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse) & [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode) + Research: [ Ultimate Regex (Search & Replace, markup to come?)](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex) ([`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)) **Browser:** [**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent) & [`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)") +
**Video / Media:** (**to be integrated in ImprovedTube**...) [**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper) [**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame) [`unBlob`](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob "please fix/adopt me!") (Equalizer[](https://github.com/code-for-charity/equalizer)) +
Home: (Start Page tabs to be uploaded ), [`TextEditor`](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka) [](https://github.com/code-for-charity/Editor), [`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo) + **Development:** [**`Satus`**](https://github.com/code-for-charity/satus) (Our JS library) | [**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library ([Endless grid](https://github.com/code-for-charity/pluviam), [CodeEditor](https://github.com/code-for-charity/code-editor), [TE](https://github.com/code-for-charity/theme-engine), [Viscum Player](https://github.com/code-for-charity/viscum-player) - video.js?)
-**Development:** [**`Satus`**](https://github.com/code-for-charity/satus) - Our UI library | [**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library ([TE](https://github.com/victor-savinov/theme-engine),[P](https://github.com/victor-savinov/pluviam),[CodeEdit](https://github.com/victor-savinov/code-editor), [Viscum Player](https://github.com/victor-savinov/viscum-player))
-**Git Community:** 🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") | [🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot) -
+#### We can help more projects at once! : [github/Universal-UserTweaks](https://github.com/code-charity/Universal-UserTweaks) +#### Initative for Open-source Dev-efficiency:: 🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot) (+ 🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") #### 💡 Got great ideas? -We might work on novel (new & unique)
projects at [github/**Wish-Factory**](https://github.com/code-for-charity/wish-factory "💡🎁")
-(or ideas@improvedtube.com) +We might work on novel (new & unique)
projects at [github/**Wish-Factory**](https://github.com/code-for-charity/wish-factory "💡🎁") (or ideas@improvedtube.com)
👩‍💻 "Behind the scenes" @@ -232,11 +229,11 @@ We might work on novel (new & unique)
projects at [github/**Wish-Factory**] 📟 "ImprovedTube Ticker 2022 / Pinned Issues" ###### ❔[**ImprovedTube controls** in, under or around the video player or cursor](https://github.com/code4charity/YouTube-Extension/issues/1445).
❔[**Meaningful/Most similar extensions**? Social-Fixer, Youtube Enhancer, Simplify, ...](https://github.com/code4charity/YouTube-Extension/issues/1016).
📟 We are focused on updates, bugs & UX but please keep up your wishes for Features!
📟 Enjoy **our projects: global** [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl), to tweak CSS everywhere + Theme engine in the making, ...
📟 **2021:** Firefox, Edge, Opera, Whale added (please try&rate) -


+

---
📜Historic Introduction [ImprovedTube](https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd), -      is an extension we built to refine your YouTube experience. A powerful one-stop-shop with many features to enhance YouTube, yet liteweight. Be it a larger player or more tidy / studious YouTube UI, hiding distractions. And there was so much left to build and are many clever features to come still.        ImprovedTube is designed with our own UI library: [Satus](https://github.com/victor-savinov/satus) (to manage your settings efficiently & create familiar apps/['cousins](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl) easily.)       Please spread the word: ImprovedTube is the only project of it's kind, because other open Youtube Extensions resigned. No other project provides so much CSS to adjust a website[🦄](https://github.com/search?q=stars%3A%3E700++size%3A%3E3000+++language%3ACSS++App+OR+Addon+OR+Extension+NOT+framework+NOT+apps&type=Repositories&s=updated&o=desc). +      is an extension we built to refine your YouTube experience. A powerful one-stop-shop with many features to enhance YouTube, yet liteweight. Be it a larger player or more tidy / studious YouTube UI, hiding distractions. And there was so much left to build and are many clever features to come still.        ImprovedTube is designed with our own UI library: [Satus](https://github.com/code-for-charity/satus) (to manage your settings efficiently & create familiar apps/['cousins](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl) easily.)       Please spread the word: ImprovedTube is the only project of it's kind, because other open Youtube Extensions resigned. No other project provides so much CSS to adjust a website[🦄](https://github.com/search?q=stars%3A%3E700++size%3A%3E3000+++language%3ACSS++App+OR+Addon+OR+Extension+NOT+framework+NOT+apps&type=Repositories&s=updated&o=desc).

chrome-web-store-linkChrome-users

From 1fd69a7fdc5266aae976c921812ccb932eb25e01 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 14 May 2023 12:01:13 +0200 Subject: [PATCH 0966/1224] Update README.md tidy --- .github/README.md | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/.github/README.md b/.github/README.md index afb096a72..3c66fc346 100644 --- a/.github/README.md +++ b/.github/README.md @@ -172,8 +172,7 @@ Chinese + Hindi + Spanish)

Contributing

For more info on how to contribute,
please see the contribution wiki. - -



+


Original introduction @@ -193,7 +192,14 @@ Today adding features can be easier & so motivating as there are 500 000 users. **W**hy arent there millions of users yet? We didn't write a guide or manual, let alone ads. This project can "fly much higher" through your word of mouth & eventually enable us to work on all wishes & immediate fixes around the clock🌱

-

🎁Our Extensions:

+ +#### Vision for user-styles- & modding-Communities": +Instead of just tweaking@home we can for the world well priotized: [github/Universal-UserTweaks](https://github.com/code-charity/Universal-UserTweaks) + +#### Initiative for (small) Open-Source Efficiency: 🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot) +(+[`regEx Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") ? ) + +

🎁Our Extensions:

**Superb:** [**History Manager**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj) **Filter:** [**unFreeze me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse) & [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode) Research: [ Ultimate Regex (Search & Replace, markup to come?)](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex) ([`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)) **Browser:** [**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent) & [`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)") @@ -201,12 +207,11 @@ Today adding features can be easier & so motivating as there are 500 000 users.
Home: (Start Page tabs to be uploaded ), [`TextEditor`](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka) [](https://github.com/code-for-charity/Editor), [`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo) **Development:** [**`Satus`**](https://github.com/code-for-charity/satus) (Our JS library) | [**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library ([Endless grid](https://github.com/code-for-charity/pluviam), [CodeEditor](https://github.com/code-for-charity/code-editor), [TE](https://github.com/code-for-charity/theme-engine), [Viscum Player](https://github.com/code-for-charity/viscum-player) - video.js?)
-#### We can help more projects at once! : [github/Universal-UserTweaks](https://github.com/code-charity/Universal-UserTweaks) -#### Initative for Open-source Dev-efficiency:: 🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot) (+ 🐣[`Regex Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") + #### 💡 Got great ideas? -We might work on novel (new & unique)
projects at [github/**Wish-Factory**](https://github.com/code-for-charity/wish-factory "💡🎁") (or ideas@improvedtube.com) +We might work on novel (new & unique)
projects at [github/**Wish-Factory**](https://github.com/code-for-charity/wish-factory "💡🎁") (or ideas@improvedtube.com)


👩‍💻 "Behind the scenes" @@ -228,9 +233,8 @@ We might work on novel (new & unique)
projects at [github/**Wish-Factory**]


📟 "ImprovedTube Ticker 2022 / Pinned Issues" -###### ❔[**ImprovedTube controls** in, under or around the video player or cursor](https://github.com/code4charity/YouTube-Extension/issues/1445).
❔[**Meaningful/Most similar extensions**? Social-Fixer, Youtube Enhancer, Simplify, ...](https://github.com/code4charity/YouTube-Extension/issues/1016).
📟 We are focused on updates, bugs & UX but please keep up your wishes for Features!
📟 Enjoy **our projects: global** [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl), to tweak CSS everywhere + Theme engine in the making, ...
📟 **2021:** Firefox, Edge, Opera, Whale added (please try&rate) -

---
-📜Historic Introduction +###### ❔[**ImprovedTube controls** in, under or around the video player or cursor](https://github.com/code4charity/YouTube-Extension/issues/1445).
❔[**Meaningful/Most similar extensions**? Social-Fixer, Youtube Enhancer, Simplify, ...](https://github.com/code4charity/YouTube-Extension/issues/1016).
📟 We are focused on updates, bugs & UX but please keep up your wishes for Features!
📟 Enjoy **our projects: global** [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl), to tweak CSS everywhere + Theme engine in the making, ...
📟 **2021:** Firefox, Edge, Opera, Whale added (please try&rate)


+
📜Historic Introduction [ImprovedTube](https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd),       is an extension we built to refine your YouTube experience. A powerful one-stop-shop with many features to enhance YouTube, yet liteweight. Be it a larger player or more tidy / studious YouTube UI, hiding distractions. And there was so much left to build and are many clever features to come still.        ImprovedTube is designed with our own UI library: [Satus](https://github.com/code-for-charity/satus) (to manage your settings efficiently & create familiar apps/['cousins](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl) easily.)       Please spread the word: ImprovedTube is the only project of it's kind, because other open Youtube Extensions resigned. No other project provides so much CSS to adjust a website[🦄](https://github.com/search?q=stars%3A%3E700++size%3A%3E3000+++language%3ACSS++App+OR+Addon+OR+Extension+NOT+framework+NOT+apps&type=Repositories&s=updated&o=desc). From 32cf41d0619f1abf7a6770a6cf01521bd368f2db Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 14 May 2023 12:04:05 +0200 Subject: [PATCH 0967/1224] Update README.md --- .github/README.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/README.md b/.github/README.md index 3c66fc346..026b45005 100644 --- a/.github/README.md +++ b/.github/README.md @@ -193,13 +193,13 @@ Today adding features can be easier & so motivating as there are 500 000 users.

-#### Vision for user-styles- & modding-Communities": -Instead of just tweaking@home we can for the world well priotized: [github/Universal-UserTweaks](https://github.com/code-charity/Universal-UserTweaks) +#### Vision for Tweaking-, Userstyle- & Modding-Community": +Instead of mostly tweaking@home we can do so for the world, well priotized: [github/Universal-UserTweaks](https://github.com/code-charity/Universal-UserTweaks) -#### Initiative for (small) Open-Source Efficiency: 🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot) -(+[`regEx Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") ? ) +#### Initiative for (small) Open-Source Efficiency: 🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot) +(+ [`regEx Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") ? ) -

🎁Our Extensions:

+

🎁Our Extensions:

**Superb:** [**History Manager**](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj) **Filter:** [**unFreeze me**](https://chrome.google.com/webstore/detail/ctrl-f-freedom-%20-right-cl/ijngdimmjkngoglcjaheoadciaalbafl " - Unlock your Right-Click, Ctrl+F, Selection anywhere!")[](https://github.com/code-for-charity/unlock-keyboard-and-mouse) & [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl " - Universal dark-mode!") [](https://github.com/code-for-charity/dark-mode) Research: [ Ultimate Regex (Search & Replace, markup to come?)](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex) ([`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)) **Browser:** [**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent) & [`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)") @@ -207,8 +207,6 @@ Instead of just tweaking@home we can for the world well priotized: [github/Unive
Home: (Start Page tabs to be uploaded ), [`TextEditor`](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka) [](https://github.com/code-for-charity/Editor), [`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo) **Development:** [**`Satus`**](https://github.com/code-for-charity/satus) (Our JS library) | [**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library ([Endless grid](https://github.com/code-for-charity/pluviam), [CodeEditor](https://github.com/code-for-charity/code-editor), [TE](https://github.com/code-for-charity/theme-engine), [Viscum Player](https://github.com/code-for-charity/viscum-player) - video.js?)
- - #### 💡 Got great ideas? We might work on novel (new & unique)
projects at [github/**Wish-Factory**](https://github.com/code-for-charity/wish-factory "💡🎁") (or ideas@improvedtube.com)


From 541c6f4863687a34b99fc8264dde564edfc85bb4 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 14 May 2023 12:13:45 +0200 Subject: [PATCH 0968/1224] Update README.md tidy --- .github/README.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/README.md b/.github/README.md index 026b45005..e0b3e7749 100644 --- a/.github/README.md +++ b/.github/README.md @@ -172,7 +172,7 @@ Chinese + Hindi + Spanish)

Contributing

For more info on how to contribute,
please see the contribution wiki. -


+



Original introduction @@ -189,12 +189,10 @@ Today adding features can be easier & so motivating as there are 500 000 users. #####
Spread the word [📣](Http://Twitter_Whatsapp_Discord_Youtube_Facebook_eMail_Telegram_Signal)
        - -**W**hy arent there millions of users yet? We didn't write a guide or manual, let alone ads. This project can "fly much higher" through your word of mouth & eventually enable us to work on all wishes & immediate fixes around the clock🌱 - -

+**W**hy arent there millions of users yet? We didn't write a guide or manual, let alone ads. This project can "fly much higher" through your word of mouth & eventually enable us to work on all wishes & immediate fixes around the clock🌱


-#### Vision for Tweaking-, Userstyle- & Modding-Community": -Instead of mostly tweaking@home we can do so for the world, well priotized: [github/Universal-UserTweaks](https://github.com/code-charity/Universal-UserTweaks) +#### Vision for the "tweaking-/userStyle-/modding-Community": +Insteada mostly 'tweakin@home like Sisyphos', we could simultaneously do so for the world greatly priotized: [github/Universal-UserTweaks](https://github.com/code-charity/Universal-UserTweaks) #### Initiative for (small) Open-Source Efficiency: 🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot) (+ [`regEx Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") ? ) @@ -207,7 +205,7 @@ Instead of mostly tweaking@home we can do so for the world, well priotized: [git
Home: (Start Page tabs to be uploaded ), [`TextEditor`](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka) [](https://github.com/code-for-charity/Editor), [`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo) **Development:** [**`Satus`**](https://github.com/code-for-charity/satus) (Our JS library) | [**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library ([Endless grid](https://github.com/code-for-charity/pluviam), [CodeEditor](https://github.com/code-for-charity/code-editor), [TE](https://github.com/code-for-charity/theme-engine), [Viscum Player](https://github.com/code-for-charity/viscum-player) - video.js?)
-#### 💡 Got great ideas? +### 💡 Got great/er ideas? We might work on novel (new & unique)
projects at [github/**Wish-Factory**](https://github.com/code-for-charity/wish-factory "💡🎁") (or ideas@improvedtube.com)


@@ -217,7 +215,7 @@ We might work on novel (new & unique)
projects at [github/**Wish-Factory**] web store analytics

youtube recommmendation

Do you need to run a popular extension, site, app or repo?
We'd love to help meaningful projects@improvedtube.com

-🏝🏕 Issue-Filters // To-Do List

+🏝🏕 Github-Issue-Filters (= dynamic To-Do List) **0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer some bug bounty. [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "especially if you are at a cheap/poor place ❤️") .)
**1.** **[ ]** [**Documentation, wiki, screenshots, video, ...**](https://github.com/code-for-charity/YouTube-Extension/wiki "We need to help people learning as easily as possible about our 90+ features. (Drafts welcome. This will become 🛈tooltips in the extension too!") From b14fbde5b1179f1e5554fc06edd5cfc62834b3c8 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 14 May 2023 12:15:34 +0200 Subject: [PATCH 0969/1224] Update README.md --- .github/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/README.md b/.github/README.md index e0b3e7749..1f8dac4d7 100644 --- a/.github/README.md +++ b/.github/README.md @@ -191,8 +191,8 @@ Today adding features can be easier & so motivating as there are 500 000 users.         - **W**hy arent there millions of users yet? We didn't write a guide or manual, let alone ads. This project can "fly much higher" through your word of mouth & eventually enable us to work on all wishes & immediate fixes around the clock🌱


-#### Vision for the "tweaking-/userStyle-/modding-Community": -Insteada mostly 'tweakin@home like Sisyphos', we could simultaneously do so for the world greatly priotized: [github/Universal-UserTweaks](https://github.com/code-charity/Universal-UserTweaks) +#### Vision for the (tweaking-/userStyle-/modding-)Community: +'Insteada mostly only tweakin@home like Sisyphos', we can start to simultaneously do so for the world greatly priotized: [github/Universal-UserTweaks](https://github.com/code-charity/Universal-UserTweaks) #### Initiative for (small) Open-Source Efficiency: 🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot) (+ [`regEx Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") ? ) From a8b03d4bfc8282fe9228a61a882e7d2c73fffe7e Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 14 May 2023 12:16:59 +0200 Subject: [PATCH 0970/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index 1f8dac4d7..4b9e0096d 100644 --- a/.github/README.md +++ b/.github/README.md @@ -203,7 +203,7 @@ Today adding features can be easier & so motivating as there are 500 000 users. Research: [ Ultimate Regex (Search & Replace, markup to come?)](https://chrome.google.com/webstore/detail/regex-search/pmihaiejckejbpjdnildimfkpcpnohlo)("Ctrl+F+Shift")[](https://github.com/code-for-charity/regex) ([`Regex Replace`](https://chrome.google.com/webstore/detail/regex-replace/ihcaaefaoebbcklmolaflgllidfamfgm)) **Browser:** [**`Custom user agent`**](https://chrome.google.com/webstore/detail/custom-user-agent/ncgbkkljbaojkhljombpjejedphfhdjj)[](https://github.com/code-for-charity/user-agent) & [`auto-scroll`](https://chrome.google.com/webstore/detail/auto-scroll/kpfalbhnppkbokafignonoppegdndlch "(missing in Linux)")
**Video / Media:** (**to be integrated in ImprovedTube**...) [**Looper**](https://chrome.google.com/webstore/detail/looper/hlnfnoahfgnjnbkdckfnolacbmoknlmi)[](https://github.com/code-for-charity/looper) [**Frame by Frame**](https://chrome.google.com/webstore/detail/frame-by-frame/cclnaabdfgnehogonpeddbgejclcjneh)[](https://github.com/code-for-charity/frame-by-frame) [`unBlob`](https://chrome.google.com/webstore/detail/unblob-alpha/odognhgojidbcgconbcipmgffjcmfaoj)[](https://github.com/code-for-charity/unblob "please fix/adopt me!") (Equalizer[](https://github.com/code-for-charity/equalizer))
Home: (Start Page tabs to be uploaded ), [`TextEditor`](https://chrome.google.com/webstore/detail/text-editor/bnbgafdjiinlgnjaedmfaablklnafpka) [](https://github.com/code-for-charity/Editor), [`ToDo`](https://chrome.google.com/webstore/detail/to-do/mniboiicchcpkffcdlaocnkfpbdihgii)[](https://github.com/code-for-charity/todo) - **Development:** [**`Satus`**](https://github.com/code-for-charity/satus) (Our JS library) | [**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library ([Endless grid](https://github.com/code-for-charity/pluviam), [CodeEditor](https://github.com/code-for-charity/code-editor), [TE](https://github.com/code-for-charity/theme-engine), [Viscum Player](https://github.com/code-for-charity/viscum-player) - video.js?)
+ **Development:** [**`Satus`**](https://github.com/code-for-charity/satus) (Our JS library) | [**`WebGL.js`**](https://github.com/code-for-charity/webgl.js) - WebGL Library | [endless grid](https://github.com/code-for-charity/pluviam), [CodeEditor](https://github.com/code-for-charity/code-editor), [TE](https://github.com/code-for-charity/theme-engine), [Viscum Player](https://github.com/code-for-charity/viscum-player) - video.js?)
### 💡 Got great/er ideas? From fd5f20937e5a48ac43d92b3e098c6f3c1a028275 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 14 May 2023 15:14:44 +0200 Subject: [PATCH 0971/1224] Update README.md --- .github/README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/README.md b/.github/README.md index 4b9e0096d..0179790a0 100644 --- a/.github/README.md +++ b/.github/README.md @@ -214,8 +214,11 @@ We might work on novel (new & unique)
projects at [github/**Wish-Factory**] web store web store analytics

youtube recommmendation

Do you need to run a popular extension, site, app or repo?
We'd love to help meaningful projects@improvedtube.com -

-🏝🏕 Github-Issue-Filters (= dynamic To-Do List)

+
+ +### Our Labels, ordered by amount: [labels?sort=count](https://github.com/code-charity/youtube/labels?sort=count-desc) + +

🏝🏕 To-Do ( - Label Filters & exclusions: Dynamic To-Do lists)

**0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer some bug bounty. [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "especially if you are at a cheap/poor place ❤️") .)
**1.** **[ ]** [**Documentation, wiki, screenshots, video, ...**](https://github.com/code-for-charity/YouTube-Extension/wiki "We need to help people learning as easily as possible about our 90+ features. (Drafts welcome. This will become 🛈tooltips in the extension too!") @@ -226,7 +229,7 @@ We might work on novel (new & unique)
projects at [github/**Wish-Factory**]
**0.1. [ ]** Tidy: [(Rest/Unsorted 'issues')](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+is%3Aopen+-label%3Abug+-label%3A%22Feature+Request%22+-label%3A%F0%9F%A7%A9Plan%20ready+-label%3A_+-label%3A%22not+Goo.+Chrome%22+sort%3Acreated-desc++-label%3A"Niche%2Frare+usecase%3F%2Ffun%3F"++-label%3Aunclear "Our github issues, which are not yet labled yet to appear in one of the ToDo-categories above") > Further reading: [***"Contributing without programming"***](https://github.com/ImprovedTube/YouTube-Extension/discussions/753) & [*"Our CSS, JavaScript, json"*](https://github.com/ImprovedTube/ImprovedTube/pull/371#issuecomment-669725163) ( ***outdated**)* (*Newcomers are [we](https://github.com/ImprovedTube/ImprovedTube/issues/387#issuecomment-664980078)lcome tho! We review all edits & love to collaborate*) -


+


📟 "ImprovedTube Ticker 2022 / Pinned Issues" ###### ❔[**ImprovedTube controls** in, under or around the video player or cursor](https://github.com/code4charity/YouTube-Extension/issues/1445).
❔[**Meaningful/Most similar extensions**? Social-Fixer, Youtube Enhancer, Simplify, ...](https://github.com/code4charity/YouTube-Extension/issues/1016).
📟 We are focused on updates, bugs & UX but please keep up your wishes for Features!
📟 Enjoy **our projects: global** [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl), to tweak CSS everywhere + Theme engine in the making, ...
📟 **2021:** Firefox, Edge, Opera, Whale added (please try&rate)


From ee0de83adb8bc5b5385c9e0ae298a1595648575f Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Sun, 14 May 2023 15:19:54 +0200 Subject: [PATCH 0972/1224] Update README.md --- .github/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/README.md b/.github/README.md index 0179790a0..b2a4c9365 100644 --- a/.github/README.md +++ b/.github/README.md @@ -207,18 +207,18 @@ Today adding features can be easier & so motivating as there are 500 000 users. ### 💡 Got great/er ideas? -We might work on novel (new & unique)
projects at [github/**Wish-Factory**](https://github.com/code-for-charity/wish-factory "💡🎁") (or ideas@improvedtube.com)


+We might work on novel (new & unique)
projects at [github/**Wish-Factory**](https://github.com/code-for-charity/wish-factory "💡🎁") (or ideas@improvedtube.com)
👩‍💻 "Behind the scenes" web store web store analytics

youtube recommmendation

Do you need to run a popular extension, site, app or repo?
We'd love to help meaningful projects@improvedtube.com -
+


-### Our Labels, ordered by amount: [labels?sort=count](https://github.com/code-charity/youtube/labels?sort=count-desc) +### Our Labels, by amount: [?sort=count](https://github.com/code-charity/youtube/labels?sort=count-desc) -

🏝🏕 To-Do ( - Label Filters & exclusions: Dynamic To-Do lists)

+

🏝🏕 To-Do


(Label Filters & exclusions: Dynamic To-Do lists)
**0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer some bug bounty. [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "especially if you are at a cheap/poor place ❤️") .)
**1.** **[ ]** [**Documentation, wiki, screenshots, video, ...**](https://github.com/code-for-charity/YouTube-Extension/wiki "We need to help people learning as easily as possible about our 90+ features. (Drafts welcome. This will become 🛈tooltips in the extension too!") @@ -229,10 +229,10 @@ We might work on novel (new & unique)
projects at [github/**Wish-Factory**]
**0.1. [ ]** Tidy: [(Rest/Unsorted 'issues')](https://github.com/code4charity/YouTube-Extension/issues?q=is%3Aissue+is%3Aopen+-label%3Abug+-label%3A%22Feature+Request%22+-label%3A%F0%9F%A7%A9Plan%20ready+-label%3A_+-label%3A%22not+Goo.+Chrome%22+sort%3Acreated-desc++-label%3A"Niche%2Frare+usecase%3F%2Ffun%3F"++-label%3Aunclear "Our github issues, which are not yet labled yet to appear in one of the ToDo-categories above") > Further reading: [***"Contributing without programming"***](https://github.com/ImprovedTube/YouTube-Extension/discussions/753) & [*"Our CSS, JavaScript, json"*](https://github.com/ImprovedTube/ImprovedTube/pull/371#issuecomment-669725163) ( ***outdated**)* (*Newcomers are [we](https://github.com/ImprovedTube/ImprovedTube/issues/387#issuecomment-664980078)lcome tho! We review all edits & love to collaborate*) -


-📟 "ImprovedTube Ticker 2022 / Pinned Issues" +

+📟 "ImprovedTube Ticker 2022" /Pinned Issues -###### ❔[**ImprovedTube controls** in, under or around the video player or cursor](https://github.com/code4charity/YouTube-Extension/issues/1445).
❔[**Meaningful/Most similar extensions**? Social-Fixer, Youtube Enhancer, Simplify, ...](https://github.com/code4charity/YouTube-Extension/issues/1016).
📟 We are focused on updates, bugs & UX but please keep up your wishes for Features!
📟 Enjoy **our projects: global** [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl), to tweak CSS everywhere + Theme engine in the making, ...
📟 **2021:** Firefox, Edge, Opera, Whale added (please try&rate)


+###### ❔[**ImprovedTube controls** in, under or around the video player or cursor](https://github.com/code4charity/YouTube-Extension/issues/1445).
❔[**Meaningful/Most similar extensions**? Social-Fixer, Youtube Enhancer, Simplify, ...](https://github.com/code4charity/YouTube-Extension/issues/1016).
📟 We are focused on updates, bugs & UX but please keep up your wishes for Features!
📟 Enjoy **our projects: global** [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl), to tweak CSS everywhere + Theme engine in the making, ...
📟 **2021:** Firefox, Edge, Opera, Whale added (please try&rate)



📜Historic Introduction [ImprovedTube](https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd), From ab551b00e4f6139980a73fd820c33ee423b3e55e Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Mon, 15 May 2023 12:30:59 +0200 Subject: [PATCH 0973/1224] Update appearance.js fix mixing naming conventions --- menu/skeleton-parts/appearance.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/menu/skeleton-parts/appearance.js b/menu/skeleton-parts/appearance.js index 453bcd092..fccbc1b42 100644 --- a/menu/skeleton-parts/appearance.js +++ b/menu/skeleton-parts/appearance.js @@ -864,9 +864,10 @@ extension.skeleton.main.layers.section.appearance.on.click.sidebar = { }, "250"); } } }, - compactSpacing: { + compact_spacing: { component: "switch", text: "Compact spacing", + storage: 'compactSpacing' }, no_page_margin: { component: 'switch', From eed0960d5a23136048d45e34c49be5a3e668671c Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Mon, 15 May 2023 13:41:25 +0200 Subject: [PATCH 0974/1224] Update appearance.js spaces to tabs, unified formatting --- menu/skeleton-parts/appearance.js | 1573 ++++++++++++++--------------- 1 file changed, 735 insertions(+), 838 deletions(-) diff --git a/menu/skeleton-parts/appearance.js b/menu/skeleton-parts/appearance.js index fccbc1b42..9704db7bd 100644 --- a/menu/skeleton-parts/appearance.js +++ b/menu/skeleton-parts/appearance.js @@ -9,41 +9,41 @@ # Sidebar --------------------------------------------------------------*/ extension.skeleton.main.layers.section.appearance = { - component: "button", - variant: "appearance", - category: true, - on: { - click: { - component: "section", - variant: "appearance", - }, - }, + component: "button", + variant: "appearance", + category: true, + on: { + click: { + component: "section", + variant: "appearance" + } + }, - icon: { - component: "span", + icon: { + component: "span", - svg: { - component: "svg", - attr: { - viewBox: "0 0 24 24", - fill: "transparent", - stroke: "currentColor", - "stroke-linecap": "round", - "stroke-width": "1.75", - }, + svg: { + component: "svg", + attr: { + viewBox: "0 0 24 24", + fill: "transparent", + stroke: "currentColor", + "stroke-linecap": "round", + "stroke-width": "1.75" + }, - path: { - component: "path", - attr: { - d: "M17 3a2.83 2.83 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z", - }, - }, - }, - }, - label: { - component: "span", - text: "appearance", - }, + path: { + component: "path", + attr: { + d: "M17 3a2.83 2.83 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z" + } + } + } + }, + label: { + component: "span", + text: "appearance" + } }; /*-------------------------------------------------------------- @@ -51,70 +51,63 @@ extension.skeleton.main.layers.section.appearance = { --------------------------------------------------------------*/ extension.skeleton.main.layers.section.appearance.on.click.header = { - component: "button", - variant: "header", - text: "header", - on: { - click: { - component: "section", - variant: "card", + component: "button", + variant: "header", + text: "header", + on: { + click: { + component: "section", + variant: "card", - header_position: { - component: "select", - text: "position", - options: [ - { - text: "normal", - value: "normal", - }, - { - text: "hidden", - value: "hidden", - }, - { - text: "hover", - value: "hover", - }, - { - text: "hiddenOnVideoPage", - value: "hidden_on_video_page", - }, - { - text: "hoverOnVideoPage", - value: "hover_on_video_page", - }, - { - text: "static", - value: "static", - }, - ], - tags: "hide,hover,static,top", - }, - header_improve_logo: { - component: "switch", - text: "improveLogo", - tags: "youtube", - }, - header_hide_right_buttons: { - component: "switch", - text: "hideRightButtons", - tags: "user", - }, + header_position: { + component: "select", + text: "position", + options: [{ + text: "normal", + value: "normal" + }, { + text: "hidden", + value: "hidden" + }, { + text: "hover", + value: "hover" + }, { + text: "hiddenOnVideoPage", + value: "hidden_on_video_page" + }, { + text: "hoverOnVideoPage", + value: "hover_on_video_page" + }, { + text: "static", + value: "static" + }], + tags: "hide,hover,static,top" + }, + header_improve_logo: { + component: "switch", + text: "improveLogo", + tags: "youtube" + }, + header_hide_right_buttons: { + component: "switch", + text: "hideRightButtons", + tags: "user" + }, header_transparent: { - component: "switch", - text: "Transparent", - }, - header_hide_country_code: { - component: "switch", - text: "hideCountryCode", - tags: "country,code", - }, - hide_voice_search_button: { - component: "switch", - text: "hideVoiceSearchButton", - }, - }, - }, + component: "switch", + text: "Transparent" + }, + header_hide_country_code: { + component: "switch", + text: "hideCountryCode", + tags: "country,code" + }, + hide_voice_search_button: { + component: "switch", + text: "hideVoiceSearchButton" + } + } + } }; /*-------------------------------------------------------------- @@ -122,319 +115,281 @@ extension.skeleton.main.layers.section.appearance.on.click.header = { --------------------------------------------------------------*/ extension.skeleton.main.layers.section.appearance.on.click.player = { - component: "button", - variant: "player", - text: "player", - on: { - click: { - component: "section", - variant: "card", + component: "button", + variant: "player", + text: "player", + on: { + click: { + component: "section", + variant: "card", - player_size: { - component: "select", - variant: "player-size", - text: "playerSize", - options: [ - { - text: "doNotChange", - value: "do_not_change", - }, - { - text: "Max. width within the page", - value: "max_width", - }, - { - text: "fullWindow", - value: "full_window", - }, - { - text: "fitToWindow", - value: "fit_to_window", - }, - { - text: "240p", - value: "240p", - }, - { - text: "360p", - value: "360p", - }, - { - text: "480p", - value: "480p", - }, - { - text: "576p", - value: "576p", - }, - { - text: "720p", - value: "720p", - }, - { - text: "1080p", - value: "1080p", - }, - { - text: "1440p", - value: "1440p", - }, - { - text: "2160p", - value: "2160p", - }, - { - text: "custom", - value: "custom", - }, - ], - }, - customPlayerSizeSection: { - component: "section", - variant: "custom-player-size", + player_size: { + component: "select", + variant: "player-size", + text: "playerSize", + options: [{ + text: "doNotChange", + value: "do_not_change" + }, { + text: "Max. width within the page", + value: "max_width" + }, { + text: "fullWindow", + value: "full_window" + }, { + text: "fitToWindow", + value: "fit_to_window" + }, { + text: "240p", + value: "240p" + }, { + text: "360p", + value: "360p" + }, { + text: "480p", + value: "480p" + }, { + text: "576p", + value: "576p" + }, { + text: "720p", + value: "720p" + }, { + text: "1080p", + value: "1080p" + }, { + text: "1440p", + value: "1440p" + }, { + text: "2160p", + value: "2160p" + }, { + text: "custom", + value: "custom" + }] + }, + customPlayerSizeSection: { + component: "section", + variant: "custom-player-size", - custom_player_size_width: { - component: "text-field", - placeholder: "1280", - storage: "custom_player_size_width", + custom_player_size_width: { + component: "text-field", + placeholder: "1280", + storage: "custom_player_size_width", rows: 1, lineNumbers: false - }, - x: { - component: "span", - text: "x", - }, - custom_player_size_height: { - component: "text-field", - placeholder: "720", - storage: "custom_player_size_height", + }, + x: { + component: "span", + text: "x" + }, + custom_player_size_height: { + component: "text-field", + placeholder: "720", + storage: "custom_player_size_height", rows: 1, lineNumbers: false - }, - }, - hide_controls: { - component: "select", - text: "hidePlayerControlsBar", - options: [ - { - text: "off", - value: "off", - default: "true", - }, - { - text: "whenPaused", - value: "when_paused", - }, - { - text: "always", - value: "always", - }, - ], - storage: "player_hide_controls", - }, - player_hide_controls_options: { - component: "button", - text: "hidePlayerControlsBarButtons", - on: { - click: { - component: "section", - variant: "card", + } + }, + hide_controls: { + component: "select", + text: "hidePlayerControlsBar", + options: [{ + text: "off", + value: "off", + default: "true" + }, { + text: "whenPaused", + value: "when_paused" + }, { + text: "always", + value: "always" + }], + storage: "player_hide_controls" + }, + player_hide_controls_options: { + component: "button", + text: "hidePlayerControlsBarButtons", + on: { + click: { + component: "section", + variant: "card", - player_play_button: { - component: "switch", - text: "playPause", - }, - player_previous_button: { - component: "switch", - text: "previousVideo", - }, - player_next_button: { - component: "switch", - text: "nextVideo", - }, - player_volume_button: { - component: "switch", - text: "volume", - }, - player_autoplay_button: { - component: "switch", - text: "autoplay", - }, - player_settings_button: { - component: "switch", - text: "settings", - }, - player_subtitles_button: { - component: "switch", - text: "subtitles", - }, - player_miniplayer_button: { - component: "switch", - text: "nativeMiniPlayer", - }, - player_view_button: { - component: "switch", - text: "viewMode", - }, - player_screen_button: { - component: "switch", - text: "screen", - }, - player_remote_button: { - component: "switch", - text: "remote", - }, - }, - }, - }, - forced_theater_mode: { - component: "switch", - text: "forcedTheaterMode", - tags: "wide", - }, - hide_gradient_bottom: { - component: "switch", - text: "hideGradientBottom", - }, - player_hide_skip_overlay: { - component: "switch", - text: "hideSkipOverlay", - value: false, - tags: "remove,hide", - }, - player_remaining_duration: { - component: "switch", - text: "showRemainingDuration", - id: "show-remaining-duration", - value: false, - }, - duration_with_speed: { - component: "switch", - text: "durationWithSpeed", - value: false, - }, - always_show_progress_bar: { - component: "switch", - text: "alwaysShowProgressBar", - }, - player_color: { - component: "select", - text: "playerColor", - options: [ - { - text: "red", - value: "red", - }, - { - text: "pink", - value: "pink", - }, - { - text: "purple", - value: "purple", - }, - { - text: "deepPurple", - value: "deep_purple", - }, - { - text: "indigo", - value: "indigo", - }, - { - text: "blue", - value: "blue", - }, - { - text: "lightBlue", - value: "light_blue", - }, - { - text: "cyan", - value: "cyan", - }, - { - text: "teal", - value: "teal", - }, - { - text: "green", - value: "green", - }, - { - text: "lightGreen", - value: "light_green", - }, - { - text: "lime", - value: "lime", - }, - { - text: "yellow", - value: "yellow", - }, - { - text: "amber", - value: "amber", - }, - { - text: "orange", - value: "orange", - }, - { - text: "deepOrange", - value: "deep_orange", - }, - { - text: "brown", - value: "brown", - }, - { - text: "blueGray", - value: "blue_gray", - }, - { - text: "white", - value: "white", - }, - ], - tags: "style", - }, - player_transparent_background: { - component: "switch", - text: "transparentBackground", - }, - player_hide_annotations: { - component: "switch", - text: "hideAnnotations", - tags: "hide,remove,elements", - }, - player_hide_cards: { - component: "switch", - text: "hideCards", - tags: "hide,remove,elements", - }, - player_show_cards_on_mouse_hover: { - component: "switch", - text: "showCardsOnMouseHover", - tags: "hide,remove,elements", - }, - player_hide_endscreen: { - component: "switch", - text: "hideEndscreen", - }, - player_hd_thumbnail: { - component: "switch", - text: "hdThumbnail", - tags: "preview", - }, - hide_scroll_for_details: { - component: "switch", - text: "hideScrollForDetails", - tags: "remove,hide", - }, - }, - }, + player_play_button: { + component: "switch", + text: "playPause" + }, + player_previous_button: { + component: "switch", + text: "previousVideo" + }, + player_next_button: { + component: "switch", + text: "nextVideo" + }, + player_volume_button: { + component: "switch", + text: "volume" + }, + player_autoplay_button: { + component: "switch", + text: "autoplay" + }, + player_settings_button: { + component: "switch", + text: "settings" + }, + player_subtitles_button: { + component: "switch", + text: "subtitles" + }, + player_miniplayer_button: { + component: "switch", + text: "nativeMiniPlayer" + }, + player_view_button: { + component: "switch", + text: "viewMode" + }, + player_screen_button: { + component: "switch", + text: "screen" + }, + player_remote_button: { + component: "switch", + text: "remote" + } + } + } + }, + forced_theater_mode: { + component: "switch", + text: "forcedTheaterMode", + tags: "wide" + }, + hide_gradient_bottom: { + component: "switch", + text: "hideGradientBottom" + }, + player_hide_skip_overlay: { + component: "switch", + text: "hideSkipOverlay", + value: false, + tags: "remove,hide" + }, + player_remaining_duration: { + component: "switch", + text: "showRemainingDuration", + id: "show-remaining-duration", + value: false + }, + duration_with_speed: { + component: "switch", + text: "durationWithSpeed", + value: false + }, + always_show_progress_bar: { + component: "switch", + text: "alwaysShowProgressBar" + }, + player_color: { + component: "select", + text: "playerColor", + options: [{ + text: "red", + value: "red" + }, { + text: "pink", + value: "pink" + }, { + text: "purple", + value: "purple" + }, { + text: "deepPurple", + value: "deep_purple" + }, { + text: "indigo", + value: "indigo" + }, { + text: "blue", + value: "blue" + }, { + text: "lightBlue", + value: "light_blue" + }, { + text: "cyan", + value: "cyan" + }, { + text: "teal", + value: "teal" + }, { + text: "green", + value: "green" + }, { + text: "lightGreen", + value: "light_green" + }, { + text: "lime", + value: "lime" + }, { + text: "yellow", + value: "yellow" + }, { + text: "amber", + value: "amber" + }, { + text: "orange", + value: "orange" + }, { + text: "deepOrange", + value: "deep_orange" + }, { + text: "brown", + value: "brown" + }, { + text: "blueGray", + value: "blue_gray" + }, { + text: "white", + value: "white" + }], + tags: "style" + }, + player_transparent_background: { + component: "switch", + text: "transparentBackground" + }, + player_hide_annotations: { + component: "switch", + text: "hideAnnotations", + tags: "hide,remove,elements" + }, + player_hide_cards: { + component: "switch", + text: "hideCards", + tags: "hide,remove,elements" + }, + player_show_cards_on_mouse_hover: { + component: "switch", + text: "showCardsOnMouseHover", + tags: "hide,remove,elements" + }, + player_hide_endscreen: { + component: "switch", + text: "hideEndscreen" + }, + player_hd_thumbnail: { + component: "switch", + text: "hdThumbnail", + tags: "preview" + }, + hide_scroll_for_details: { + component: "switch", + text: "hideScrollForDetails", + tags: "remove,hide" + } + } + } }; /*-------------------------------------------------------------- @@ -442,319 +397,272 @@ extension.skeleton.main.layers.section.appearance.on.click.player = { --------------------------------------------------------------*/ extension.skeleton.main.layers.section.appearance.on.click.details = { - component: "button", - variant: "details", - text: "details", - on: { - click: { - component: "section", - variant: "card", + component: "button", + variant: "details", + text: "details", + on: { + click: { + component: "section", + variant: "card", description: { - component: "select", - text: "description", + component: "select", + text: "description", - options: [ - { - text: "normal", - value: "normal", - }, - { - text: "expanded", - value: "expanded", - }, - { - text: "Classic", - value: "classic", - }, - { - text: "Classic expanded", - value: "classic_expanded", - - }, - { - text: "Classic hidden", - value: "classic_hidden", - }, - { - text: "hidden", - value: "hidden", - }, - ], - tags: "hide,remove", - }, + options: [{ + text: "normal", + value: "normal" + }, { + text: "expanded", + value: "expanded" + }, { + text: "Classic", + value: "classic" + }, { + text: "Classic expanded", + value: "classic_expanded" + }, { + text: "Classic hidden", + value: "classic_hidden" + }, { + text: "hidden", + value: "hidden" + }], + tags: "hide,remove" + }, hide_detail_button: { - component: "Buttons", - text: "hideDetailButton", - on: { - click: { - extraButtons: { + component: "Buttons", + text: "hideDetailButton", + on: { + click: { + component: 'section', + variant: 'card', + extraButtons: { component: 'section', variant: 'card', title: 'Extra buttons', - below_player_screenshot: { + below_player_screenshot: { component: 'switch', text: 'screenshot', value: true - }, - below_player_pip: { + }, + below_player_pip: { component: 'switch', text: 'pictureInPicture', value: true - }, - below_player_loop: { + }, + below_player_loop: { component: 'switch', text: 'loop', value: true - } - }, - component: 'section', - variant: 'card', + } + }, youtubeDetailButtons: { - component: "select", - text: "YouTube's buttons", - options: [ - { - text: "normal", - value: "normal", - }, - { - text: "Remove names", - value: "remove_labels", - }, - { - text: "Faint/half-transparent", - value: "half_transparent", - }, - { - text: "Remove", - value: "remove", - }, - { - text: "Transparent background", - value: "transparent_background", - }, - { - text: "Hide names", - value: "hide_labels", - }, - { - text: "Remove icons", - value: "remove_icons", - }, - ], - tags: "hide,remove", - }, - detailButtons: { - component: 'section', - variant: 'card', - subscribe: { component: "select", - text: "'Subscribe'", - options: [ - { - text: "normal", - value: "normal", - }, - { - text: "grey", - value: "grey", - }, - { - text: "transparent", - value: "transparent", - }, - { - text: "hidden", - value: "hidden", - }, - ], - tags: "hide,remove,subscribe-button", - }, - likes: { - component: "select", - text: "'like'", - options: [ - { - text: "normal", - value: "normal", - }, - { - text: "iconsOnly", - value: "icons_only", - }, - { - text: "hidden", - value: "hidden", - }, - ], - tags: "hide,remove", - }, - hide_dislike_button: { - component: "select", - text: "'dislike'", - options: [ - { - text: "normal", - value: "normal", - }, - { - text: "iconsOnly", - value: "icons_only", - }, - { - text: "hidden", - value: "hidden", - }, - ], - tags: "hide,remove", - }, - red_dislike_button: { - component: "switch", - text: "redDislikeButton", + text: "YouTube's buttons", + options: [{ + text: "normal", + value: "normal" + }, { + text: "Remove names", + value: "remove_labels" + }, { + text: "Faint/half-transparent", + value: "half_transparent" + }, { + text: "Remove", + value: "remove" + }, { + text: "Transparent background", + value: "transparent_background" + }, { + text: "Hide names", + value: "hide_labels" + }, { + text: "Remove icons", + value: "remove_icons" + }], + tags: "hide,remove" }, - hide_share_button: { - component: "select", - text: "'share'", - options: [ - { - text: "normal", - value: "normal", - }, - { - text: "iconsOnly", - value: "icons_only", - }, - { - text: "hidden", - value: "hidden", - }, - ], - tags: "hide,remove", - }, - hide_download_button: { - component: "select", - text: "'download'", - options: [ - { - text: "normal", - value: "normal", - }, - { - text: "iconsOnly", - value: "icons_only", - }, - { - text: "hidden", - value: "hidden", - }, - ], - tags: "hide,remove", - }, - hide_thanks_button: { - component: "select", - text: "'thanks'", - options: [ - { - text: "normal", - value: "normal", - }, - { - text: "iconsOnly", - value: "icons_only", - }, - { - text: "hidden", - value: "hidden", - }, - ], - tags: "hide,remove", - }, - hide_clip_button: { - component: "select", - text: "'clip'", - options: [ - { - text: "normal", - value: "normal", - }, - { - text: "iconsOnly", - value: "icons_only", - }, - { - text: "hidden", - value: "hidden", - }, - ], - tags: "hide,remove", - }, - hide_save_button: { - component: "select", - text: "'save'", - options: [ - { - text: "normal", - value: "normal", - }, - { - text: "iconsOnly", - value: "icons_only", - }, - { - text: "hidden", - value: "hidden", - }, - ], - tags: "hide,remove", - }, - hide_report_button: { - component: "switch", - text: "hide 'report'", - tags: "hide,remove", - }, - hide_more_button: { - component: "switch", - text: "hide 'more'", - tags: "hide,remove", - }, - }, - }, - }, - }, + detailButtons: { + component: 'section', + variant: 'card', + subscribe: { + component: "select", + text: "'Subscribe'", + options: [{ + text: "normal", + value: "normal" + }, { + text: "grey", + value: "grey" + }, { + text: "transparent", + value: "transparent" + }, { + text: "hidden", + value: "hidden" + }], + tags: "hide,remove,subscribe-button" + }, + likes: { + component: "select", + text: "'like'", + options: [{ + text: "normal", + value: "normal" + }, { + text: "iconsOnly", + value: "icons_only" + }, { + text: "hidden", + value: "hidden" + }], + tags: "hide,remove" + }, + hide_dislike_button: { + component: "select", + text: "'dislike'", + options: [{ + text: "normal", + value: "normal" + }, { + text: "iconsOnly", + value: "icons_only" + }, { + text: "hidden", + value: "hidden" + }], + tags: "hide,remove" + }, + red_dislike_button: { + component: "switch", + text: "redDislikeButton" + }, + hide_share_button: { + component: "select", + text: "'share'", + options: [{ + text: "normal", + value: "normal" + }, { + text: "iconsOnly", + value: "icons_only" + }, { + text: "hidden", + value: "hidden" + }], + tags: "hide,remove" + }, + hide_download_button: { + component: "select", + text: "'download'", + options: [{ + text: "normal", + value: "normal" + }, { + text: "iconsOnly", + value: "icons_only" + }, { + text: "hidden", + value: "hidden" + }], + tags: "hide,remove" + }, + hide_thanks_button: { + component: "select", + text: "'thanks'", + options: [{ + text: "normal", + value: "normal" + }, { + text: "iconsOnly", + value: "icons_only" + }, { + text: "hidden", + value: "hidden" + }], + tags: "hide,remove" + }, + hide_clip_button: { + component: "select", + text: "'clip'", + options: [{ + text: "normal", + value: "normal" + }, { + text: "iconsOnly", + value: "icons_only" + }, { + text: "hidden", + value: "hidden" + }], + tags: "hide,remove" + }, + hide_save_button: { + component: "select", + text: "'save'", + options: [{ + text: "normal", + value: "normal" + }, { + text: "iconsOnly", + value: "icons_only" + }, { + text: "hidden", + value: "hidden" + }], + tags: "hide,remove" + }, + hide_report_button: { + component: "switch", + text: "hide 'report'", + tags: "hide,remove" + }, + hide_more_button: { + component: "switch", + text: "hide 'more'", + tags: "hide,remove" + } + } + } + } + }, hide_views_count: { - component: "switch", - text: "hideViewsCount", - tags: "hide,remove", - }, + component: "switch", + text: "hideViewsCount", + tags: "hide,remove" + }, hide_details: { - component: "switch", - text: "hideDetails", - tags: "hide,remove", - }, - day_of_week: { - component: "switch", - text: "displayDayOfTheWeak", - }, - hide_date: { - component: "switch", - text: "hideDate", - tags: "hide,remove", - }, - api: {component: 'section', - variant: 'card', - title: "(Currently requiring a YouTube-API-key: )", - - how_long_ago_the_video_was_uploaded: { - component: "switch", - text: "howLongAgoTheVideoWasUploaded", - }, - channel_videos_count: { - component: "switch", - text: "showChannelVideosCount", - }, - },}, - }, + component: "switch", + text: "hideDetails", + tags: "hide,remove" + }, + day_of_week: { + component: "switch", + text: "displayDayOfTheWeak" + }, + hide_date: { + component: "switch", + text: "hideDate", + tags: "hide,remove" + }, + api: { + component: 'section', + variant: 'card', + title: "(Currently requiring a YouTube-API-key: )", + + how_long_ago_the_video_was_uploaded: { + component: "switch", + text: "howLongAgoTheVideoWasUploaded" + }, + channel_videos_count: { + component: "switch", + text: "showChannelVideosCount" + } + } + } + } }; /*-------------------------------------------------------------- @@ -762,53 +670,49 @@ extension.skeleton.main.layers.section.appearance.on.click.details = { --------------------------------------------------------------*/ extension.skeleton.main.layers.section.appearance.on.click.comments = { - component: "button", - variant: "comments", - text: "comments", - on: { - click: { - component: "section", - variant: "card", + component: "button", + variant: "comments", + text: "comments", + on: { + click: { + component: "section", + variant: "card", - comments: { - component: "select", - text: "comments", + comments: { + component: "select", + text: "comments", - options: [ - { - text: "normal", - value: "normal", - }, - { - text: "collapsed", - value: "collapsed", - }, - { - text: "hidden", - value: "hidden", - }, - ], - }, - comments_sidebar: { - component: "switch", - text: "sidebar", - }, + options: [{ + text: "normal", + value: "normal" + }, { + text: "collapsed", + value: "collapsed" + }, { + text: "hidden", + value: "hidden" + }] + }, + comments_sidebar: { + component: "switch", + text: "sidebar" + }, squared_user_images: { component: 'switch', text: 'squaredUserImages', tags: 'avatar' - }, - hide_author_avatars: { - component: "switch", - text: "Hide avatars", - }, - hide_comments_count: { - component: "switch", - text: "hideCommentsCount", - tags: "hide,remove", - }, - }, - }, + }, + hide_author_avatars: { + component: "switch", + text: "Hide avatars" + }, + hide_comments_count: { + component: "switch", + text: "hideCommentsCount", + tags: "hide,remove" + } + } + } }; /*-------------------------------------------------------------- @@ -816,21 +720,21 @@ extension.skeleton.main.layers.section.appearance.on.click.comments = { --------------------------------------------------------------*/ extension.skeleton.main.layers.section.appearance.on.click.footer = { - component: "button", - variant: "footer", - text: "footer", - on: { - click: { - component: "section", - variant: "card", + component: "button", + variant: "footer", + text: "footer", + on: { + click: { + component: "section", + variant: "card", - hide_footer: { - component: "switch", - text: "hideFooter", - tags: "bottom", - }, - }, - }, + hide_footer: { + component: "switch", + text: "hideFooter", + tags: "bottom" + } + } + } }; /*-------------------------------------------------------------- @@ -838,107 +742,100 @@ extension.skeleton.main.layers.section.appearance.on.click.footer = { --------------------------------------------------------------*/ extension.skeleton.main.layers.section.appearance.on.click.sidebar = { - component: "button", - variant: "sidebar", - text: "sidebar", - on: { - click: { - component: "section", - variant: "card", + component: "button", + variant: "sidebar", + text: "sidebar", + on: { + click: { + component: "section", + variant: "card", chapters: { - component: 'switch', - text: 'Chapters', + component: 'switch', + text: 'Chapters' }, transcript: { - component: 'switch', - text: 'Transcript', - value: false, - storage: 'transcript', - id: 'transcript', - on: { click: function () { setTimeout(() => { - if (satus.storage.get('transcript')) { - if (satus.storage.get('no_page_margin')) { - this.nextSibling.nextSibling.click(); - } + component: 'switch', + text: 'Transcript', + value: false, + storage: 'transcript', + id: 'transcript', + on: { + click: function () { setTimeout(() => { + if (satus.storage.get('transcript')) { + if (satus.storage.get('no_page_margin')) { + this.nextSibling.nextSibling.click(); } - }, "250"); } - } + } + }, 250); } + } }, compact_spacing: { - component: "switch", - text: "Compact spacing", + component: "switch", + text: "Compact spacing", storage: 'compactSpacing' - }, + }, no_page_margin: { - component: 'switch', - text: 'To the side! (No page margin)', - value: false, - on: { - click: function () { setTimeout(() => { - if (satus.storage.get('no_page_margin')) { - if (satus.storage.get('transcript')) { - this.previousSibling.previousSibling.click(); - } + component: 'switch', + text: 'To the side! (No page margin)', + value: false, + on: { + click: function () { setTimeout(() => { + if (satus.storage.get('no_page_margin')) { + if (satus.storage.get('transcript')) { + this.previousSibling.previousSibling.click(); } - }, "250"); } - } + } + }, 250); } + } + }, + sidebar_left: { + component: "switch", + text: "moveSidebarLeft" }, - sidebar_left: { - component: "switch", - text: "moveSidebarLeft", - }, - - related_videos: { - component: "select", - text: "relatedVideos", - options: [ - { - text: "normal", - value: "normal", - }, - { - text: "collapsed", - value: "collapsed", - }, - { - text: "hidden", - value: "hidden", - }, - ], - tags: "right", - }, - thumbnails_right: { - component: "switch", - text: "moveThumbnailsRight", - }, - thumbnails_hide: { - component: "switch", - text: "hideThumbnails", - }, - livechat: { - component: "select", - text: "liveChat", + related_videos: { + component: "select", + text: "relatedVideos", + options: [{ + text: "normal", + value: "normal" + }, { + text: "collapsed", + value: "collapsed" + }, { + text: "hidden", + value: "hidden" + }], + tags: "right" + }, - options: [ - { - text: "normal", - value: "normal", - }, - { - text: "collapsed", - value: "collapsed", - }, - { - text: "hidden", - value: "hidden", - }, - ], - }, - hide_playlist: { - component: "switch", - text: "hidePlaylist", - }, - }, - }, + thumbnails_right: { + component: "switch", + text: "moveThumbnailsRight" + }, + thumbnails_hide: { + component: "switch", + text: "hideThumbnails" + }, + livechat: { + component: "select", + text: "liveChat", + + options: [{ + text: "normal", + value: "normal" + }, { + text: "collapsed", + value: "collapsed" + }, { + text: "hidden", + value: "hidden" + }], + }, + hide_playlist: { + component: "switch", + text: "hidePlaylist" + } + } + } }; From cc9e4a5b552bbd964f32de77b67e493fd039f952 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Mon, 15 May 2023 14:45:04 +0200 Subject: [PATCH 0975/1224] Update appearance.js removing redundant defined storage, reverting hide_controls gui section back to more logical player_hide_controls --- menu/skeleton-parts/appearance.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/menu/skeleton-parts/appearance.js b/menu/skeleton-parts/appearance.js index 9704db7bd..09f326f0f 100644 --- a/menu/skeleton-parts/appearance.js +++ b/menu/skeleton-parts/appearance.js @@ -175,7 +175,6 @@ extension.skeleton.main.layers.section.appearance.on.click.player = { custom_player_size_width: { component: "text-field", placeholder: "1280", - storage: "custom_player_size_width", rows: 1, lineNumbers: false }, @@ -186,12 +185,11 @@ extension.skeleton.main.layers.section.appearance.on.click.player = { custom_player_size_height: { component: "text-field", placeholder: "720", - storage: "custom_player_size_height", rows: 1, lineNumbers: false } }, - hide_controls: { + player_hide_controls: { component: "select", text: "hidePlayerControlsBar", options: [{ @@ -204,8 +202,7 @@ extension.skeleton.main.layers.section.appearance.on.click.player = { }, { text: "always", value: "always" - }], - storage: "player_hide_controls" + }] }, player_hide_controls_options: { component: "button", @@ -757,7 +754,6 @@ extension.skeleton.main.layers.section.appearance.on.click.sidebar = { component: 'switch', text: 'Transcript', value: false, - storage: 'transcript', id: 'transcript', on: { click: function () { setTimeout(() => { From d977138631616057c9b4a0888a07c3807b6fdc6d Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Mon, 15 May 2023 15:11:58 +0200 Subject: [PATCH 0976/1224] Update player.js more formatting, reverting gui section names to get rid of redundant storage declarations --- menu/skeleton-parts/player.js | 805 +++++++++++++++------------------- 1 file changed, 346 insertions(+), 459 deletions(-) diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index 5e8e067df..be9f9be7a 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -61,20 +61,20 @@ function ModalHelper(where, what, ok, cancel) { click: function () { ok(); this.parentNode.parentNode.parentNode.close(); - } + } } }, cancel: { component: 'button', text: 'cancel', on: { - click: function () { + click: function () { where.click(); cancel(); if (this.componentName) { this.parentNode.parentNode.parentNode.close(); - } } + } } } } @@ -113,7 +113,7 @@ extension.skeleton.main.layers.section.player.on.click = { this.nextSibling.click(); } } - }, "250"); + }, 250); } } }, @@ -128,7 +128,7 @@ extension.skeleton.main.layers.section.player.on.click = { this.previousSibling.click(); } } - }, "250"); + }, 250); } } }, @@ -144,7 +144,7 @@ extension.skeleton.main.layers.section.player.on.click = { this.previousSibling.click(); } } - }, "250"); + }, 250); } } }, @@ -172,7 +172,7 @@ extension.skeleton.main.layers.section.player.on.click = { }, player_force_speed_on_music: { component: 'switch', - text: 'forcedPlaybackSpeedMusic', + text: 'forcedPlaybackSpeedMusic' }, player_playback_speed: { component: 'slider', @@ -210,446 +210,336 @@ extension.skeleton.main.layers.section.player.on.click = { text: 'language', id: 'subtitles-language', options: [{ - value: 'default', - text: 'default' - }, - { - value: 'af', - text: 'Afrikaans' - }, - { - value: 'sq', - text: 'Albanian' - }, - { - value: 'am', - text: 'Amharic' - }, - { - value: 'ar', - text: 'Arabic' - }, - { - value: 'hy', - text: 'Armenian' - }, - { - value: 'az', - text: 'Azerbaijani' - }, - { - value: 'bn', - text: 'Bangla' - }, - { - value: 'eu', - text: 'Basque' - }, - { - value: 'be', - text: 'Belarusian' - }, - { - value: 'bs', - text: 'Bosnian' - }, - { - value: 'bg', - text: 'Bulgarian' - }, - { - value: 'my', - text: 'Burmese' - }, - { - value: 'ca', - text: 'Catalan' - }, - { - value: 'ceb', - text: 'Cebuano' - }, - { - value: 'zh-Hans', - text: 'Chinese (Simplified)' - }, - { - value: 'zh-Hant', - text: 'Chinese (Traditional)' - }, - { - value: 'co', - text: 'Corsican' - }, - { - value: 'hr', - text: 'Croatian' - }, - { - value: 'cs', - text: 'Czech' - }, - { - value: 'da', - text: 'Danish' - }, - { - value: 'nl', - text: 'Dutch' - }, - { - value: 'en', - text: 'English' - }, - { - value: 'eo', - text: 'Esperanto' - }, - { - value: 'et', - text: 'Estonian' - }, - { - value: 'fil', - text: 'Filipino' - }, - { - value: 'fi', - text: 'Finnish' - }, - { - value: 'fr', - text: 'French' - }, - { - value: 'gl', - text: 'Galician' - }, - { - value: 'ka', - text: 'Georgian' - }, - { - value: 'de', - text: 'German' - }, - { - value: 'el', - text: 'Greek' - }, - { - value: 'gu', - text: 'Gujarati' - }, - { - value: 'ht', - text: 'Haitian Creole' - }, - { - value: 'ha', - text: 'Hausa' - }, - { - value: 'haw', - text: 'Hawaiian' - }, - { - value: 'iw', - text: 'Hebrew' - }, - { - value: 'hi', - text: 'Hindi' - }, - { - value: 'hmn', - text: 'Hmong' - }, - { - value: 'hu', - text: 'Hungarian' - }, - { - value: 'is', - text: 'Icelandic' - }, - { - value: 'ig', - text: 'Igbo' - }, - { - value: 'id', - text: 'Indonesian' - }, - { - value: 'ga', - text: 'Irish' - }, - { - value: 'it', - text: 'Italian' - }, - { - value: 'ja', - text: 'Japanese' - }, - { - value: 'jv', - text: 'Javanese' - }, - { - value: 'kn', - text: 'Kannada' - }, - { - value: 'kk', - text: 'Kazakh' - }, - { - value: 'km', - text: 'Khmer' - }, - { - value: 'rw', - text: 'Kinyarwanda' - }, - { - value: 'ko', - text: 'Korean' - }, - { - value: 'ku', - text: 'Kurdish' - }, - { - value: 'ky', - text: 'Kyrgyz' - }, - { - value: 'lo', - text: 'Lao' - }, - { - value: 'la', - text: 'Latin' - }, - { - value: 'lv', - text: 'Latvian' - }, - { - value: 'lt', - text: 'Lithuanian' - }, - { - value: 'lb', - text: 'Luxembourgish' - }, - { - value: 'mk', - text: 'Macedonian' - }, - { - value: 'mg', - text: 'Malagasy' - }, - { - value: 'ms', - text: 'Malay' - }, - { - value: 'ml', - text: 'Malayalam' - }, - { - value: 'mt', - text: 'Maltese' - }, - { - value: 'mi', - text: 'Maori' - }, - { - value: 'mr', - text: 'Marathi' - }, - { - value: 'mn', - text: 'Mongolian' - }, - { - value: 'ne', - text: 'Nepali' - }, - { - value: 'no', - text: 'Norwegian' - }, - { - value: 'ny', - text: 'Nyanja' - }, - { - value: 'or', - text: 'Odia' - }, - { - value: 'ps', - text: 'Pashto' - }, - { - value: 'fa', - text: 'Persian' - }, - { - value: 'pl', - text: 'Polish' - }, - { - value: 'pt', - text: 'Portuguese' - }, - { - value: 'pa', - text: 'Punjabi' - }, - { - value: 'ro', - text: 'Romanian' - }, - { - value: 'ru', - text: 'Russian' - }, - { - value: 'sm', - text: 'Samoan' - }, - { - value: 'gd', - text: 'Scottish Gaelic' - }, - { - value: 'sr', - text: 'Serbian' - }, - { - value: 'sn', - text: 'Shona' - }, - { - value: 'sd', - text: 'Sindhi' - }, - { - value: 'si', - text: 'Sinhala' - }, - { - value: 'sk', - text: 'Slovak' - }, - { - value: 'sl', - text: 'Slovenian' - }, - { - value: 'so', - text: 'Somali' - }, - { - value: 'st', - text: 'Southern Sotho' - }, - { - value: 'es', - text: 'Spanish' - }, - { - value: 'su', - text: 'Sundanese' - }, - { - value: 'sw', - text: 'Swahili' - }, - { - value: 'sv', - text: 'Swedish' - }, - { - value: 'tg', - text: 'Tajik' - }, - { - value: 'ta', - text: 'Tamil' - }, - { - value: 'tt', - text: 'Tatar' - }, - { - value: 'te', - text: 'Telugu' - }, - { - value: 'th', - text: 'Thai' - }, - { - value: 'tr', - text: 'Turkish' - }, - { - value: 'tk', - text: 'Turkmen' - }, - { - value: 'uk', - text: 'Ukrainian' - }, - { - value: 'ur', - text: 'Urdu' - }, - { - value: 'ug', - text: 'Uyghur' - }, - { - value: 'uz', - text: 'Uzbek' - }, - { - value: 'vi', - text: 'Vietnamese' - }, - { - value: 'cy', - text: 'Welsh' - }, - { - value: 'fy', - text: 'Western Frisian' - }, - { - value: 'xh', - text: 'Xhosa' - }, - { - value: 'yi', - text: 'Yiddish' - }, - { - value: 'yo', - text: 'Yoruba' - }, - { - value: 'zu', - text: 'Zulu' - } - ] + value: 'default', + text: 'default' + }, { + value: 'af', + text: 'Afrikaans' + }, { + value: 'sq', + text: 'Albanian' + }, { + value: 'am', + text: 'Amharic' + }, { + value: 'ar', + text: 'Arabic' + }, { + value: 'hy', + text: 'Armenian' + }, { + value: 'az', + text: 'Azerbaijani' + }, { + value: 'bn', + text: 'Bangla' + }, { + value: 'eu', + text: 'Basque' + }, { + value: 'be', + text: 'Belarusian' + }, { + value: 'bs', + text: 'Bosnian' + }, { + value: 'bg', + text: 'Bulgarian' + }, { + value: 'my', + text: 'Burmese' + }, { + value: 'ca', + text: 'Catalan' + }, { + value: 'ceb', + text: 'Cebuano' + }, { + value: 'zh-Hans', + text: 'Chinese (Simplified)' + }, { + value: 'zh-Hant', + text: 'Chinese (Traditional)' + }, { + value: 'co', + text: 'Corsican' + }, { + value: 'hr', + text: 'Croatian' + }, { + value: 'cs', + text: 'Czech' + }, { + value: 'da', + text: 'Danish' + }, { + value: 'nl', + text: 'Dutch' + }, { + value: 'en', + text: 'English' + }, { + value: 'eo', + text: 'Esperanto' + }, { + value: 'et', + text: 'Estonian' + }, { + value: 'fil', + text: 'Filipino' + }, { + value: 'fi', + text: 'Finnish' + }, { + value: 'fr', + text: 'French' + }, { + value: 'gl', + text: 'Galician' + }, { + value: 'ka', + text: 'Georgian' + }, { + value: 'de', + text: 'German' + }, { + value: 'el', + text: 'Greek' + }, { + value: 'gu', + text: 'Gujarati' + }, { + value: 'ht', + text: 'Haitian Creole' + }, { + value: 'ha', + text: 'Hausa' + }, { + value: 'haw', + text: 'Hawaiian' + }, { + value: 'iw', + text: 'Hebrew' + }, { + value: 'hi', + text: 'Hindi' + }, { + value: 'hmn', + text: 'Hmong' + }, { + value: 'hu', + text: 'Hungarian' + }, { + value: 'is', + text: 'Icelandic' + }, { + value: 'ig', + text: 'Igbo' + }, { + value: 'id', + text: 'Indonesian' + }, { + value: 'ga', + text: 'Irish' + }, { + value: 'it', + text: 'Italian' + }, { + value: 'ja', + text: 'Japanese' + }, { + value: 'jv', + text: 'Javanese' + }, { + value: 'kn', + text: 'Kannada' + }, { + value: 'kk', + text: 'Kazakh' + }, { + value: 'km', + text: 'Khmer' + }, { + value: 'rw', + text: 'Kinyarwanda' + }, { + value: 'ko', + text: 'Korean' + }, { + value: 'ku', + text: 'Kurdish' + }, { + value: 'ky', + text: 'Kyrgyz' + }, { + value: 'lo', + text: 'Lao' + }, { + value: 'la', + text: 'Latin' + }, { + value: 'lv', + text: 'Latvian' + }, { + value: 'lt', + text: 'Lithuanian' + }, { + value: 'lb', + text: 'Luxembourgish' + }, { + value: 'mk', + text: 'Macedonian' + }, { + value: 'mg', + text: 'Malagasy' + }, { + value: 'ms', + text: 'Malay' + }, { + value: 'ml', + text: 'Malayalam' + }, { + value: 'mt', + text: 'Maltese' + }, { + value: 'mi', + text: 'Maori' + }, { + value: 'mr', + text: 'Marathi' + }, { + value: 'mn', + text: 'Mongolian' + }, { + value: 'ne', + text: 'Nepali' + }, { + value: 'no', + text: 'Norwegian' + }, { + value: 'ny', + text: 'Nyanja' + }, { + value: 'or', + text: 'Odia' + }, { + value: 'ps', + text: 'Pashto' + }, { + value: 'fa', + text: 'Persian' + }, { + value: 'pl', + text: 'Polish' + }, { + value: 'pt', + text: 'Portuguese' + }, { + value: 'pa', + text: 'Punjabi' + }, { + value: 'ro', + text: 'Romanian' + }, { + value: 'ru', + text: 'Russian' + }, { + value: 'sm', + text: 'Samoan' + }, { + value: 'gd', + text: 'Scottish Gaelic' + }, { + value: 'sr', + text: 'Serbian' + }, { + value: 'sn', + text: 'Shona' + }, { + value: 'sd', + text: 'Sindhi' + }, { + value: 'si', + text: 'Sinhala' + }, { + value: 'sk', + text: 'Slovak' + }, { + value: 'sl', + text: 'Slovenian' + }, { + value: 'so', + text: 'Somali' + }, { + value: 'st', + text: 'Southern Sotho' + }, { + value: 'es', + text: 'Spanish' + }, { + value: 'su', + text: 'Sundanese' + }, { + value: 'sw', + text: 'Swahili' + }, { + value: 'sv', + text: 'Swedish' + }, { + value: 'tg', + text: 'Tajik' + }, { + value: 'ta', + text: 'Tamil' + }, { + value: 'tt', + text: 'Tatar' + }, { + value: 'te', + text: 'Telugu' + }, { + value: 'th', + text: 'Thai' + }, { + value: 'tr', + text: 'Turkish' + }, { + value: 'tk', + text: 'Turkmen' + }, { + value: 'uk', + text: 'Ukrainian' + }, { + value: 'ur', + text: 'Urdu' + }, { + value: 'ug', + text: 'Uyghur' + }, { + value: 'uz', + text: 'Uzbek' + }, { + value: 'vi', + text: 'Vietnamese' + }, { + value: 'cy', + text: 'Welsh' + }, { + value: 'fy', + text: 'Western Frisian' + }, { + value: 'xh', + text: 'Xhosa' + }, { + value: 'yi', + text: 'Yiddish' + }, { + value: 'yo', + text: 'Yoruba' + }, { + value: 'zu', + text: 'Zulu' + }] }, auto_generate: { component: 'switch', @@ -841,17 +731,16 @@ extension.skeleton.main.layers.section.player.on.click = { } } }, - crop_chapter_titles: { + player_crop_chapter_titles: { component: 'switch', text: 'cropChapterTitles', - value: true, - storage: 'player_crop_chapter_titles' + value: true }, mini_player: { component: 'switch', text: 'customMiniPlayer' }, - quality: { + player_quality: { component: 'select', text: 'quality', options: [{ @@ -887,8 +776,7 @@ extension.skeleton.main.layers.section.player.on.click = { }, { text: '4320p', value: 'highres' - }], - storage: 'player_quality' + }] }, player_codecs: { component: 'button', @@ -899,7 +787,6 @@ extension.skeleton.main.layers.section.player.on.click = { on: { click: { section: { - component: 'section', variant: 'card', block_av1: { @@ -924,7 +811,7 @@ extension.skeleton.main.layers.section.player.on.click = { if (this.dataset.value === 'true' && satus.storage.get('block_h264')) { ModalHelper(this, 'You need either VP9 or H264 enabled for Youtube to work. Disabling both will break Video.', function(){ }, - function(){ + function(){ }); } } @@ -941,7 +828,7 @@ extension.skeleton.main.layers.section.player.on.click = { if (this.dataset.value === 'true' && satus.storage.get('block_vp9')) { ModalHelper(this, 'You need either VP9 or H264 enabled for Youtube to work. Disabling both will break Video.', function(){ }, - function(){ + function(){ }); } } @@ -991,7 +878,7 @@ extension.skeleton.main.layers.section.player.on.click = { satus.storage.set('block_h264', false); refresh(); }, - function(){ + function(){ satus.storage.set('block_vp9', false); satus.storage.set('block_av1', false); satus.storage.set('block_h264', false); @@ -1056,7 +943,7 @@ extension.skeleton.main.layers.section.player.on.click = { text: 'forceSDR', value: false, storage: 'player_SDR' - }, + } }, section_2: { component: 'section', @@ -1116,5 +1003,5 @@ extension.skeleton.main.layers.section.player.on.click = { component: 'switch', text: 'popupPlayer' } - }, + } }; From ffd495d4bf23dd27c8268370c885c17c57abb93f Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Mon, 15 May 2023 15:25:29 +0200 Subject: [PATCH 0977/1224] Update themes.js formatting --- menu/skeleton-parts/themes.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/menu/skeleton-parts/themes.js b/menu/skeleton-parts/themes.js index b8a819e38..3b3cf6b30 100644 --- a/menu/skeleton-parts/themes.js +++ b/menu/skeleton-parts/themes.js @@ -74,13 +74,11 @@ extension.skeleton.main.layers.section.themes.on.click.section = { text: 'primaryColor', value: [200, 200, 200] }, - theme_text_color: { + theme_text_color: { component: 'color-picker', text: 'textColor', value: [25, 25, 25] - }, - - + } } } } @@ -175,4 +173,4 @@ extension.skeleton.main.layers.section.themes.on.click.section = { value: 'black' } } -}; \ No newline at end of file +}; From 02b6ed6c7411a458a236e424861e21c77edebdaf Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Mon, 15 May 2023 15:28:33 +0200 Subject: [PATCH 0978/1224] Update general.js formatting, redundant storage --- menu/skeleton-parts/general.js | 2059 ++++++++++++++++---------------- 1 file changed, 1028 insertions(+), 1031 deletions(-) diff --git a/menu/skeleton-parts/general.js b/menu/skeleton-parts/general.js index fb4137c11..d5fb4f9a0 100644 --- a/menu/skeleton-parts/general.js +++ b/menu/skeleton-parts/general.js @@ -38,1026 +38,1024 @@ extension.skeleton.main.layers.section.general = { component: 'select', text: 'defaultContentCountry', options: [{ - text: "default", - value: "default" - }, - { - text: "Afghanistan", - value: "AF" - }, - { - text: "Albania", - value: "AL" - }, - { - text: "Algeria", - value: "DZ" - }, - { - text: "American Samoa", - value: "AS" - }, - { - text: "Andorra", - value: "AD" - }, - { - text: "Angola", - value: "AO" - }, - { - text: "Anguilla", - value: "AI" - }, - { - text: "Antarctica", - value: "AQ" - }, - { - text: "Antigua and Barbuda", - value: "AG" - }, - { - text: "Argentina", - value: "AR" - }, - { - text: "Armenia", - value: "AM" - }, - { - text: "Aruba", - value: "AW" - }, - { - text: "Australia", - value: "AU" - }, - { - text: "Austria", - value: "AT" - }, - { - text: "Azerbaijan", - value: "AZ" - }, - { - text: "Bahrain", - value: "BH" - }, - { - text: "Bailiwick of Guernsey", - value: "GG" - }, - { - text: "Bangladesh", - value: "BD" - }, - { - text: "Barbados", - value: "BB" - }, - { - text: "Belarus", - value: "BY" - }, - { - text: "Belgium", - value: "BE" - }, - { - text: "Belize", - value: "BZ" - }, - { - text: "Benin", - value: "BJ" - }, - { - text: "Bermuda", - value: "BM" - }, - { - text: "Bhutan", - value: "BT" - }, - { - text: "Bolivia", - value: "BO" - }, - { - text: "Bonaire", - value: "BQ" - }, - { - text: "Bosnia and Herzegovina", - value: "BA" - }, - { - text: "Botswana", - value: "BW" - }, - { - text: "Bouvet Island", - value: "BV" - }, - { - text: "Brazil", - value: "BR" - }, - { - text: "British Indian Ocean Territory", - value: "IO" - }, - { - text: "British Virgin Islands", - value: "VG" - }, - { - text: "Brunei", - value: "BN" - }, - { - text: "Bulgaria", - value: "BG" - }, - { - text: "Burkina Faso", - value: "BF" - }, - { - text: "Burundi", - value: "BI" - }, - { - text: "Cambodia", - value: "KH" - }, - { - text: "Cameroon", - value: "CM" - }, - { - text: "Canada", - value: "CA" - }, - { - text: "Cape Verde", - value: "CV" - }, - { - text: "Cayman Islands", - value: "KY" - }, - { - text: "Central African Republic", - value: "CF" - }, - { - text: "Chad", - value: "TD" - }, - { - text: "Chile", - value: "CL" - }, - { - text: "China", - value: "CN" - }, - { - text: "Christmas Island", - value: "CX" - }, - { - text: "Cocos (Keeling) Islands", - value: "CC" - }, - { - text: "Collectivity of Saint Martin", - value: "MF" - }, - { - text: "Colombia", - value: "CO" - }, - { - text: "Comoros", - value: "KM" - }, - { - text: "Cook Islands", - value: "CK" - }, - { - text: "Costa Rica", - value: "CR" - }, - { - text: "Croatia", - value: "HR" - }, - { - text: "Cuba", - value: "CU" - }, - { - text: "Curaçao", - value: "CW" - }, - { - text: "Cyprus", - value: "CY" - }, - { - text: "Czech Republic", - value: "CZ" - }, - { - text: "Democratic Republic of the Congo", - value: "CD" - }, - { - text: "Denmark", - value: "DK" - }, - { - text: "Djibouti", - value: "DJ" - }, - { - text: "Dominica", - value: "DM" - }, - { - text: "Dominican Republic", - value: "DO" - }, - { - text: "East Timor", - value: "TL" - }, - { - text: "Ecuador", - value: "EC" - }, - { - text: "Egypt", - value: "EG" - }, - { - text: "El Salvador", - value: "SV" - }, - { - text: "Equatorial Guinea", - value: "GQ" - }, - { - text: "Eritrea", - value: "ER" - }, - { - text: "Estonia", - value: "EE" - }, - { - text: "Eswatini", - value: "SZ" - }, - { - text: "Ethiopia", - value: "ET" - }, - { - text: "Falkland Islands", - value: "FK" - }, - { - text: "Faroe Islands", - value: "FO" - }, - { - text: "Federated States of Micronesia", - value: "FM" - }, - { - text: "Fiji", - value: "FJ" - }, - { - text: "Finland", - value: "FI" - }, - { - text: "France", - value: "FR" - }, - { - text: "French Guiana", - value: "GF" - }, - { - text: "French Polynesia", - value: "PF" - }, - { - text: "French Southern and Antarctic Lands", - value: "TF" - }, - { - text: "Gabon", - value: "GA" - }, - { - text: "Georgia (country)", - value: "GE" - }, - { - text: "Germany", - value: "DE" - }, - { - text: "Ghana", - value: "GH" - }, - { - text: "Gibraltar", - value: "GI" - }, - { - text: "Greece", - value: "GR" - }, - { - text: "Greenland", - value: "GL" - }, - { - text: "Grenada", - value: "GD" - }, - { - text: "Guadeloupe", - value: "GP" - }, - { - text: "Guam", - value: "GU" - }, - { - text: "Guatemala", - value: "GT" - }, - { - text: "Guinea", - value: "GN" - }, - { - text: "Guinea-Bissau", - value: "GW" - }, - { - text: "Guyana", - value: "GY" - }, - { - text: "Haiti", - value: "HT" - }, - { - text: "Heard Island and McDonald Islands", - value: "HM" - }, - { - text: "Holy See", - value: "VA" - }, - { - text: "Honduras", - value: "HN" - }, - { - text: "Hong Kong", - value: "HK" - }, - { - text: "Hungary", - value: "HU" - }, - { - text: "Iceland", - value: "IS" - }, - { - text: "India", - value: "IN" - }, - { - text: "Indonesia", - value: "ID" - }, - { - text: "Iran", - value: "IR" - }, - { - text: "Iraq", - value: "IQ" - }, - { - text: "Isle of Man", - value: "IM" - }, - { - text: "Israel", - value: "IL" - }, - { - text: "Italy", - value: "IT" - }, - { - text: "Ivory Coast", - value: "CI" - }, - { - text: "Jamaica", - value: "JM" - }, - { - text: "Japan", - value: "JP" - }, - { - text: "Jersey", - value: "JE" - }, - { - text: "Jordan", - value: "JO" - }, - { - text: "Kazakhstan", - value: "KZ" - }, - { - text: "Kenya", - value: "KE" - }, - { - text: "Kiribati", - value: "KI" - }, - { - text: "Kuwait", - value: "KW" - }, - { - text: "Kyrgyzstan", - value: "KG" - }, - { - text: "Laos", - value: "LA" - }, - { - text: "Latvia", - value: "LV" - }, - { - text: "Lebanon", - value: "LB" - }, - { - text: "Lesotho", - value: "LS" - }, - { - text: "Liberia", - value: "LR" - }, - { - text: "Libya", - value: "LY" - }, - { - text: "Liechtenstein", - value: "LI" - }, - { - text: "Lithuania", - value: "LT" - }, - { - text: "Luxembourg", - value: "LU" - }, - { - text: "Macau", - value: "MO" - }, - { - text: "Madagascar", - value: "MG" - }, - { - text: "Malawi", - value: "MW" - }, - { - text: "Malaysia", - value: "MY" - }, - { - text: "Maldives", - value: "MV" - }, - { - text: "Mali", - value: "ML" - }, - { - text: "Malta", - value: "MT" - }, - { - text: "Marshall Islands", - value: "MH" - }, - { - text: "Martinique", - value: "MQ" - }, - { - text: "Mauritania", - value: "MR" - }, - { - text: "Mauritius", - value: "MU" - }, - { - text: "Mayotte", - value: "YT" - }, - { - text: "Mexico", - value: "MX" - }, - { - text: "Moldova", - value: "MD" - }, - { - text: "Monaco", - value: "MC" - }, - { - text: "Mongolia", - value: "MN" - }, - { - text: "Montenegro", - value: "ME" - }, - { - text: "Montserrat", - value: "MS" - }, - { - text: "Morocco", - value: "MA" - }, - { - text: "Mozambique", - value: "MZ" - }, - { - text: "Myanmar", - value: "MM" - }, - { - text: "Namibia", - value: "NA" - }, - { - text: "Nauru", - value: "NR" - }, - { - text: "Nepal", - value: "NP" - }, - { - text: "Netherlands", - value: "NL" - }, - { - text: "New Caledonia", - value: "NC" - }, - { - text: "New Zealand", - value: "NZ" - }, - { - text: "Nicaragua", - value: "NI" - }, - { - text: "Niger", - value: "NE" - }, - { - text: "Nigeria", - value: "NG" - }, - { - text: "Niue", - value: "NU" - }, - { - text: "Norfolk Island", - value: "NF" - }, - { - text: "North Korea", - value: "KP" - }, - { - text: "North Macedonia", - value: "MK" - }, - { - text: "Northern Mariana Islands", - value: "MP" - }, - { - text: "Norway", - value: "NO" - }, - { - text: "Oman", - value: "OM" - }, - { - text: "Pakistan", - value: "PK" - }, - { - text: "Palau", - value: "PW" - }, - { - text: "Panama", - value: "PA" - }, - { - text: "Papua New Guinea", - value: "PG" - }, - { - text: "Paraguay", - value: "PY" - }, - { - text: "Peru", - value: "PE" - }, - { - text: "Philippines", - value: "PH" - }, - { - text: "Pitcairn Islands", - value: "PN" - }, - { - text: "Poland", - value: "PL" - }, - { - text: "Portugal", - value: "PT" - }, - { - text: "Puerto Rico", - value: "PR" - }, - { - text: "Qatar", - value: "QA" - }, - { - text: "Republic of Ireland", - value: "IE" - }, - { - text: "Republic of the Congo", - value: "CG" - }, - { - text: "Romania", - value: "RO" - }, - { - text: "Russia", - value: "RU" - }, - { - text: "Rwanda", - value: "RW" - }, - { - text: "Réunion", - value: "RE" - }, - { - text: "Saint Barthélemy", - value: "BL" - }, - { - text: "Saint Helena", - value: "SH" - }, - { - text: "Saint Kitts and Nevis", - value: "KN" - }, - { - text: "Saint Lucia", - value: "LC" - }, - { - text: "Saint Pierre and Miquelon", - value: "PM" - }, - { - text: "Saint Vincent and the Grenadines", - value: "VC" - }, - { - text: "Samoa", - value: "WS" - }, - { - text: "San Marino", - value: "SM" - }, - { - text: "Saudi Arabia", - value: "SA" - }, - { - text: "Senegal", - value: "SN" - }, - { - text: "Serbia", - value: "RS" - }, - { - text: "Seychelles", - value: "SC" - }, - { - text: "Sierra Leone", - value: "SL" - }, - { - text: "Singapore", - value: "SG" - }, - { - text: "Sint Maarten", - value: "SX" - }, - { - text: "Slovakia", - value: "SK" - }, - { - text: "Slovenia", - value: "SI" - }, - { - text: "Solomon Islands", - value: "SB" - }, - { - text: "Somalia", - value: "SO" - }, - { - text: "South Africa", - value: "ZA" - }, - { - text: "South Georgia and the South Sandwich Islands", - value: "GS" - }, - { - text: "South Korea", - value: "KR" - }, - { - text: "South Sudan", - value: "SS" - }, - { - text: "Spain", - value: "ES" - }, - { - text: "Sri Lanka", - value: "LK" - }, - { - text: "State of Palestine", - value: "PS" - }, - { - text: "Sudan", - value: "SD" - }, - { - text: "Suriname", - value: "SR" - }, - { - text: "Svalbard", - value: "SJ" - }, - { - text: "Sweden", - value: "SE" - }, - { - text: "Switzerland", - value: "CH" - }, - { - text: "Syria", - value: "SY" - }, - { - text: "São Tomé and Príncipe", - value: "ST" - }, - { - text: "Taiwan", - value: "TW" - }, - { - text: "Tajikistan", - value: "TJ" - }, - { - text: "Tanzania", - value: "TZ" - }, - { - text: "Thailand", - value: "TH" - }, - { - text: "The Bahamas", - value: "BS" - }, - { - text: "The Gambia", - value: "GM" - }, - { - text: "Togo", - value: "TG" - }, - { - text: "Tokelau", - value: "TK" - }, - { - text: "Tonga", - value: "TO" - }, - { - text: "Trinidad and Tobago", - value: "TT" - }, - { - text: "Tunisia", - value: "TN" - }, - { - text: "Turkey", - value: "TR" - }, - { - text: "Turkmenistan", - value: "TM" - }, - { - text: "Turks and Caicos Islands", - value: "TC" - }, - { - text: "Tuvalu", - value: "TV" - }, - { - text: "Uganda", - value: "UG" - }, - { - text: "Ukraine", - value: "UA" - }, - { - text: "United Arab Emirates", - value: "AE" - }, - { - text: "United Kingdom", - value: "GB" - }, - { - text: "United States Virgin Islands", - value: "VI" - }, - { - text: "United States", - value: "UM" - }, - { - text: "United States", - value: "US" - }, - { - text: "Uruguay", - value: "UY" - }, - { - text: "Uzbekistan", - value: "UZ" - }, - { - text: "Vanuatu", - value: "VU" - }, - { - text: "Venezuela", - value: "VE" - }, - { - text: "Vietnam", - value: "VN" - }, - { - text: "Wallis and Futuna", - value: "WF" - }, - { - text: "Western Sahara", - value: "EH" - }, - { - text: "Yemen", - value: "YE" - }, - { - text: "Zambia", - value: "ZM" - }, - { - text: "Zimbabwe", - value: "ZW" - }, - { - text: "Åland Islands", - value: "AX" - } - ] - }, - ads: { - text: 'ads', - component: 'select', - options: [{ - text: 'onAllVideos', - value: 'all_videos', - default: 'true' - }, { - text: 'blockAll', - value: 'block_all' - }, { - text: 'blockMusic', - value: 'block_music' - }, { - text: 'onSubscribedChannels', - value: 'subscribed_channels' - }], - storage: 'ads' - }, + text: "default", + value: "default" + }, { + + text: "Afghanistan", + value: "AF" + }, { + + text: "Albania", + value: "AL" + }, { + + text: "Algeria", + value: "DZ" + }, { + + text: "American Samoa", + value: "AS" + }, { + + text: "Andorra", + value: "AD" + }, { + + text: "Angola", + value: "AO" + }, { + + text: "Anguilla", + value: "AI" + }, { + + text: "Antarctica", + value: "AQ" + }, { + + text: "Antigua and Barbuda", + value: "AG" + }, { + + text: "Argentina", + value: "AR" + }, { + + text: "Armenia", + value: "AM" + }, { + + text: "Aruba", + value: "AW" + }, { + + text: "Australia", + value: "AU" + }, { + + text: "Austria", + value: "AT" + }, { + + text: "Azerbaijan", + value: "AZ" + }, { + + text: "Bahrain", + value: "BH" + }, { + + text: "Bailiwick of Guernsey", + value: "GG" + }, { + + text: "Bangladesh", + value: "BD" + }, { + + text: "Barbados", + value: "BB" + }, { + + text: "Belarus", + value: "BY" + }, { + + text: "Belgium", + value: "BE" + }, { + + text: "Belize", + value: "BZ" + }, { + + text: "Benin", + value: "BJ" + }, { + + text: "Bermuda", + value: "BM" + }, { + + text: "Bhutan", + value: "BT" + }, { + + text: "Bolivia", + value: "BO" + }, { + + text: "Bonaire", + value: "BQ" + }, { + + text: "Bosnia and Herzegovina", + value: "BA" + }, { + + text: "Botswana", + value: "BW" + }, { + + text: "Bouvet Island", + value: "BV" + }, { + + text: "Brazil", + value: "BR" + }, { + + text: "British Indian Ocean Territory", + value: "IO" + }, { + + text: "British Virgin Islands", + value: "VG" + }, { + + text: "Brunei", + value: "BN" + }, { + + text: "Bulgaria", + value: "BG" + }, { + + text: "Burkina Faso", + value: "BF" + }, { + + text: "Burundi", + value: "BI" + }, { + + text: "Cambodia", + value: "KH" + }, { + + text: "Cameroon", + value: "CM" + }, { + + text: "Canada", + value: "CA" + }, { + + text: "Cape Verde", + value: "CV" + }, { + + text: "Cayman Islands", + value: "KY" + }, { + + text: "Central African Republic", + value: "CF" + }, { + + text: "Chad", + value: "TD" + }, { + + text: "Chile", + value: "CL" + }, { + + text: "China", + value: "CN" + }, { + + text: "Christmas Island", + value: "CX" + }, { + + text: "Cocos (Keeling) Islands", + value: "CC" + }, { + + text: "Collectivity of Saint Martin", + value: "MF" + }, { + + text: "Colombia", + value: "CO" + }, { + + text: "Comoros", + value: "KM" + }, { + + text: "Cook Islands", + value: "CK" + }, { + + text: "Costa Rica", + value: "CR" + }, { + + text: "Croatia", + value: "HR" + }, { + + text: "Cuba", + value: "CU" + }, { + + text: "Curaçao", + value: "CW" + }, { + + text: "Cyprus", + value: "CY" + }, { + + text: "Czech Republic", + value: "CZ" + }, { + + text: "Democratic Republic of the Congo", + value: "CD" + }, { + + text: "Denmark", + value: "DK" + }, { + + text: "Djibouti", + value: "DJ" + }, { + + text: "Dominica", + value: "DM" + }, { + + text: "Dominican Republic", + value: "DO" + }, { + + text: "East Timor", + value: "TL" + }, { + + text: "Ecuador", + value: "EC" + }, { + + text: "Egypt", + value: "EG" + }, { + + text: "El Salvador", + value: "SV" + }, { + + text: "Equatorial Guinea", + value: "GQ" + }, { + + text: "Eritrea", + value: "ER" + }, { + + text: "Estonia", + value: "EE" + }, { + + text: "Eswatini", + value: "SZ" + }, { + + text: "Ethiopia", + value: "ET" + }, { + + text: "Falkland Islands", + value: "FK" + }, { + + text: "Faroe Islands", + value: "FO" + }, { + + text: "Federated States of Micronesia", + value: "FM" + }, { + + text: "Fiji", + value: "FJ" + }, { + + text: "Finland", + value: "FI" + }, { + + text: "France", + value: "FR" + }, { + + text: "French Guiana", + value: "GF" + }, { + + text: "French Polynesia", + value: "PF" + }, { + + text: "French Southern and Antarctic Lands", + value: "TF" + }, { + + text: "Gabon", + value: "GA" + }, { + + text: "Georgia (country)", + value: "GE" + }, { + + text: "Germany", + value: "DE" + }, { + + text: "Ghana", + value: "GH" + }, { + + text: "Gibraltar", + value: "GI" + }, { + + text: "Greece", + value: "GR" + }, { + + text: "Greenland", + value: "GL" + }, { + + text: "Grenada", + value: "GD" + }, { + + text: "Guadeloupe", + value: "GP" + }, { + + text: "Guam", + value: "GU" + }, { + + text: "Guatemala", + value: "GT" + }, { + + text: "Guinea", + value: "GN" + }, { + + text: "Guinea-Bissau", + value: "GW" + }, { + + text: "Guyana", + value: "GY" + }, { + + text: "Haiti", + value: "HT" + }, { + + text: "Heard Island and McDonald Islands", + value: "HM" + }, { + + text: "Holy See", + value: "VA" + }, { + + text: "Honduras", + value: "HN" + }, { + + text: "Hong Kong", + value: "HK" + }, { + + text: "Hungary", + value: "HU" + }, { + + text: "Iceland", + value: "IS" + }, { + + text: "India", + value: "IN" + }, { + + text: "Indonesia", + value: "ID" + }, { + + text: "Iran", + value: "IR" + }, { + + text: "Iraq", + value: "IQ" + }, { + + text: "Isle of Man", + value: "IM" + }, { + + text: "Israel", + value: "IL" + }, { + + text: "Italy", + value: "IT" + }, { + + text: "Ivory Coast", + value: "CI" + }, { + + text: "Jamaica", + value: "JM" + }, { + + text: "Japan", + value: "JP" + }, { + + text: "Jersey", + value: "JE" + }, { + + text: "Jordan", + value: "JO" + }, { + + text: "Kazakhstan", + value: "KZ" + }, { + + text: "Kenya", + value: "KE" + }, { + + text: "Kiribati", + value: "KI" + }, { + + text: "Kuwait", + value: "KW" + }, { + + text: "Kyrgyzstan", + value: "KG" + }, { + + text: "Laos", + value: "LA" + }, { + + text: "Latvia", + value: "LV" + }, { + + text: "Lebanon", + value: "LB" + }, { + + text: "Lesotho", + value: "LS" + }, { + + text: "Liberia", + value: "LR" + }, { + + text: "Libya", + value: "LY" + }, { + + text: "Liechtenstein", + value: "LI" + }, { + + text: "Lithuania", + value: "LT" + }, { + + text: "Luxembourg", + value: "LU" + }, { + + text: "Macau", + value: "MO" + }, { + + text: "Madagascar", + value: "MG" + }, { + + text: "Malawi", + value: "MW" + }, { + + text: "Malaysia", + value: "MY" + }, { + + text: "Maldives", + value: "MV" + }, { + + text: "Mali", + value: "ML" + }, { + + text: "Malta", + value: "MT" + }, { + + text: "Marshall Islands", + value: "MH" + }, { + + text: "Martinique", + value: "MQ" + }, { + + text: "Mauritania", + value: "MR" + }, { + + text: "Mauritius", + value: "MU" + }, { + + text: "Mayotte", + value: "YT" + }, { + + text: "Mexico", + value: "MX" + }, { + + text: "Moldova", + value: "MD" + }, { + + text: "Monaco", + value: "MC" + }, { + + text: "Mongolia", + value: "MN" + }, { + + text: "Montenegro", + value: "ME" + }, { + + text: "Montserrat", + value: "MS" + }, { + + text: "Morocco", + value: "MA" + }, { + + text: "Mozambique", + value: "MZ" + }, { + + text: "Myanmar", + value: "MM" + }, { + + text: "Namibia", + value: "NA" + }, { + + text: "Nauru", + value: "NR" + }, { + + text: "Nepal", + value: "NP" + }, { + + text: "Netherlands", + value: "NL" + }, { + + text: "New Caledonia", + value: "NC" + }, { + + text: "New Zealand", + value: "NZ" + }, { + + text: "Nicaragua", + value: "NI" + }, { + + text: "Niger", + value: "NE" + }, { + + text: "Nigeria", + value: "NG" + }, { + + text: "Niue", + value: "NU" + }, { + + text: "Norfolk Island", + value: "NF" + }, { + + text: "North Korea", + value: "KP" + }, { + + text: "North Macedonia", + value: "MK" + }, { + + text: "Northern Mariana Islands", + value: "MP" + }, { + + text: "Norway", + value: "NO" + }, { + + text: "Oman", + value: "OM" + }, { + + text: "Pakistan", + value: "PK" + }, { + + text: "Palau", + value: "PW" + }, { + + text: "Panama", + value: "PA" + }, { + + text: "Papua New Guinea", + value: "PG" + }, { + + text: "Paraguay", + value: "PY" + }, { + + text: "Peru", + value: "PE" + }, { + + text: "Philippines", + value: "PH" + }, { + + text: "Pitcairn Islands", + value: "PN" + }, { + + text: "Poland", + value: "PL" + }, { + + text: "Portugal", + value: "PT" + }, { + + text: "Puerto Rico", + value: "PR" + }, { + + text: "Qatar", + value: "QA" + }, { + + text: "Republic of Ireland", + value: "IE" + }, { + + text: "Republic of the Congo", + value: "CG" + }, { + + text: "Romania", + value: "RO" + }, { + + text: "Russia", + value: "RU" + }, { + + text: "Rwanda", + value: "RW" + }, { + + text: "Réunion", + value: "RE" + }, { + + text: "Saint Barthélemy", + value: "BL" + }, { + + text: "Saint Helena", + value: "SH" + }, { + + text: "Saint Kitts and Nevis", + value: "KN" + }, { + + text: "Saint Lucia", + value: "LC" + }, { + + text: "Saint Pierre and Miquelon", + value: "PM" + }, { + + text: "Saint Vincent and the Grenadines", + value: "VC" + }, { + + text: "Samoa", + value: "WS" + }, { + + text: "San Marino", + value: "SM" + }, { + + text: "Saudi Arabia", + value: "SA" + }, { + + text: "Senegal", + value: "SN" + }, { + + text: "Serbia", + value: "RS" + }, { + + text: "Seychelles", + value: "SC" + }, { + + text: "Sierra Leone", + value: "SL" + }, { + + text: "Singapore", + value: "SG" + }, { + + text: "Sint Maarten", + value: "SX" + }, { + + text: "Slovakia", + value: "SK" + }, { + + text: "Slovenia", + value: "SI" + }, { + + text: "Solomon Islands", + value: "SB" + }, { + + text: "Somalia", + value: "SO" + }, { + + text: "South Africa", + value: "ZA" + }, { + + text: "South Georgia and the South Sandwich Islands", + value: "GS" + }, { + + text: "South Korea", + value: "KR" + }, { + + text: "South Sudan", + value: "SS" + }, { + + text: "Spain", + value: "ES" + }, { + + text: "Sri Lanka", + value: "LK" + }, { + + text: "State of Palestine", + value: "PS" + }, { + + text: "Sudan", + value: "SD" + }, { + + text: "Suriname", + value: "SR" + }, { + + text: "Svalbard", + value: "SJ" + }, { + + text: "Sweden", + value: "SE" + }, { + + text: "Switzerland", + value: "CH" + }, { + + text: "Syria", + value: "SY" + }, { + + text: "São Tomé and Príncipe", + value: "ST" + }, { + + text: "Taiwan", + value: "TW" + }, { + + text: "Tajikistan", + value: "TJ" + }, { + + text: "Tanzania", + value: "TZ" + }, { + + text: "Thailand", + value: "TH" + }, { + + text: "The Bahamas", + value: "BS" + }, { + + text: "The Gambia", + value: "GM" + }, { + + text: "Togo", + value: "TG" + }, { + + text: "Tokelau", + value: "TK" + }, { + + text: "Tonga", + value: "TO" + }, { + + text: "Trinidad and Tobago", + value: "TT" + }, { + + text: "Tunisia", + value: "TN" + }, { + + text: "Turkey", + value: "TR" + }, { + + text: "Turkmenistan", + value: "TM" + }, { + + text: "Turks and Caicos Islands", + value: "TC" + }, { + + text: "Tuvalu", + value: "TV" + }, { + + text: "Uganda", + value: "UG" + }, { + + text: "Ukraine", + value: "UA" + }, { + + text: "United Arab Emirates", + value: "AE" + }, { + + text: "United Kingdom", + value: "GB" + }, { + + text: "United States Virgin Islands", + value: "VI" + }, { + + text: "United States", + value: "UM" + }, { + + text: "United States", + value: "US" + }, { + + text: "Uruguay", + value: "UY" + }, { + + text: "Uzbekistan", + value: "UZ" + }, { + + text: "Vanuatu", + value: "VU" + }, { + + text: "Venezuela", + value: "VE" + }, { + + text: "Vietnam", + value: "VN" + }, { + + text: "Wallis and Futuna", + value: "WF" + }, { + + text: "Western Sahara", + value: "EH" + }, { + + text: "Yemen", + value: "YE" + }, { + + text: "Zambia", + value: "ZM" + }, { + + text: "Zimbabwe", + value: "ZW" + }, { + + text: "Åland Islands", + value: "AX" + }] + }, + ads: { + text: 'ads', + component: 'select', + options: [{ + text: 'onAllVideos', + value: 'all_videos', + default: 'true' + }, { + text: 'blockAll', + value: 'block_all' + }, { + text: 'blockMusic', + value: 'block_music' + }, { + text: 'onSubscribedChannels', + value: 'subscribed_channels' + }] + }, youtube_home_page: { component: 'select', text: 'youtubeHomePage', @@ -1087,7 +1085,7 @@ extension.skeleton.main.layers.section.general = { value: '/feed/library' }], tags: 'trending,subscriptions,history,watch,search' - }, + }, collapse_of_subscription_sections: { component: 'switch', text: 'collapseOfSubscriptionSections' @@ -1095,9 +1093,9 @@ extension.skeleton.main.layers.section.general = { remove_related_search_results: { component: 'switch', text: 'removeRelatedSearchResults' - }, - }, - embed: { + } + }, + embed: { component: 'section', variant: 'card', title: 'Embedded YouTube', @@ -1105,7 +1103,6 @@ extension.skeleton.main.layers.section.general = { embeddedHidePauseOverlay: { component: 'switch', text: 'Hide Pause Overlay', - }, embeddedHideYoutubeLogo: { component: 'switch', @@ -1114,8 +1111,8 @@ extension.skeleton.main.layers.section.general = { embeddedHideShare: { component: 'switch', text: "Hide 'Share'" - }, - }, + } + }, section_2: { component: 'section', variant: 'card', @@ -1131,7 +1128,7 @@ extension.skeleton.main.layers.section.general = { this.nextSibling.click(); } } - } , "250"); } + } , 250); } } }, track_watched_videos: { @@ -1244,7 +1241,7 @@ extension.skeleton.main.layers.section.general = { component: 'section', variant: 'card', title: 'more', - font: { + font: { component: 'select', text: 'font', options: [{ @@ -1314,7 +1311,7 @@ extension.skeleton.main.layers.section.general = { component: 'switch', text: 'confirmationBeforeClosing', tags: 'random prevent close exit' - }, + } } } }, @@ -1344,4 +1341,4 @@ extension.skeleton.main.layers.section.general = { component: 'span', text: 'general' } -}; \ No newline at end of file +}; From f427341e1b5f5d3b36901cf95c9ff3f24636b089 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Mon, 15 May 2023 15:40:02 +0200 Subject: [PATCH 0979/1224] Update settings.js text alignment --- menu/skeleton-parts/settings.js | 579 ++++++++++++++++---------------- 1 file changed, 288 insertions(+), 291 deletions(-) diff --git a/menu/skeleton-parts/settings.js b/menu/skeleton-parts/settings.js index 234fa702f..8bee33ed3 100644 --- a/menu/skeleton-parts/settings.js +++ b/menu/skeleton-parts/settings.js @@ -231,249 +231,246 @@ extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSecti component: 'section', variant: 'card', languages: [{ - value: 'default', - text: 'default' - }, - { - value: "en", - text: "English" - }, { - value: "es", - text: "Español (España)" - }, { - value: "es-419", - text: "Español (Latinoamérica)" - }, { - value: "es-US", - text: "Español (US)" - }, { - value: "ru", - text: "Русский" - }, { - value: "de", - text: "Deutsch" - }, { - value: "pt-PT", - text: "Português" - }, { - value: "pt", - text: "Português (Brasil)" - }, { - value: "fr", - text: "Français" - }, { - value: "pl", - text: "Polski" - }, { - value: "ja", - text: "日本語" - }, { - value: "af", - text: "Afrikaans" - }, { - value: "az", - text: "Azərbaycan" - }, { - value: "id", - text: "Bahasa Indonesia" - }, { - value: "ms", - text: "Bahasa Malaysia" - }, { - value: "bs", - text: "Bosanski" - }, { - value: "ca", - text: "Català" - }, { - value: "cs", - text: "Čeština" - }, { - value: "da", - text: "Dansk" - }, { - value: "et", - text: "Eesti" - }, { - value: "eu", - text: "Euskara" - }, { - value: "fil", - text: "Filipino" - }, { - value: "fr-CA", - text: "Français (Canada)" - }, { - value: "gl", - text: "Galego" - }, { - value: "hr", - text: "Hrvatski" - }, { - value: "zu", - text: "IsiZulu" - }, { - value: "is", - text: "Íslenska" - }, { - value: "it", - text: "Italiano" - }, { - value: "sw", - text: "Kiswahili" - }, { - value: "lv", - text: "Latviešu valoda" - }, { - value: "lt", - text: "Lietuvių" - }, { - value: "hu", - text: "Magyar" - }, { - value: "nl", - text: "Nederlands" - }, { - value: "no", - text: "Norsk" - }, { - value: "uz", - text: "O‘zbek" - }, { - value: "ro", - text: "Română" - }, { - value: "sq", - text: "Shqip" - }, { - value: "sk", - text: "Slovenčina" - }, { - value: "sl", - text: "Slovenščina" - }, { - value: "sr-Latn", - text: "Srpski" - }, { - value: "fi", - text: "Suomi" - }, { - value: "sv", - text: "Svenska" - }, { - value: "vi", - text: "Tiếng Việt" - }, { - value: "tr", - text: "Türkçe" - }, { - value: "be", - text: "Беларуская" - }, { - value: "bg", - text: "Български" - }, { - value: "ky", - text: "Кыргызча" - }, { - value: "kk", - text: "Қазақ Тілі" - }, { - value: "mk", - text: "Македонски" - }, { - value: "mn", - text: "Монгол" - }, { - value: "sr", - text: "Српски" - }, { - value: "uk", - text: "Українська" - }, { - value: "el", - text: "Ελληνικά" - }, { - value: "hy", - text: "Հայերեն" - }, { - value: "iw", - text: "עברית" - }, { - value: "ur", - text: "اردو" - }, { - value: "ar", - text: "العربية" - }, { - value: "fa", - text: "فارسی" - }, { - value: "ne", - text: "नेपाली" - }, { - value: "mr", - text: "मराठी" - }, { - value: "hi", - text: "हिन्दी" - }, { - value: "bn", - text: "বাংলা" - }, { - value: "pa", - text: "ਪੰਜਾਬੀ" - }, { - value: "gu", - text: "ગુજરાતી" - }, { - value: "ta", - text: "தமிழ்" - }, { - value: "te", - text: "తెలుగు" - }, { - value: "kn", - text: "ಕನ್ನಡ" - }, { - value: "ml", - text: "മലയാളം" - }, { - value: "si", - text: "සිංහල" - }, { - value: "th", - text: "ภาษาไทย" - }, { - value: "lo", - text: "ລາວ" - }, { - value: "my", - text: "ဗမာ" - }, { - value: "ka", - text: "ქართული" - }, { - value: "am", - text: "አማርኛ" - }, { - value: "km", - text: "ខ្មែរ" - }, { - value: "zh-CN", - text: "中文 (简体)" - }, { - value: "zh-TW", - text: "中文 (繁體)" - }, { - value: "zh-HK", - text: "中文 (香港)" - }, { - value: "ko", - text: "한국어" - } - ], - + value: 'default', + text: 'default' + }, { + value: "en", + text: "English" + }, { + value: "es", + text: "Español (España)" + }, { + value: "es-419", + text: "Español (Latinoamérica)" + }, { + value: "es-US", + text: "Español (US)" + }, { + value: "ru", + text: "Русский" + }, { + value: "de", + text: "Deutsch" + }, { + value: "pt-PT", + text: "Português" + }, { + value: "pt", + text: "Português (Brasil)" + }, { + value: "fr", + text: "Français" + }, { + value: "pl", + text: "Polski" + }, { + value: "ja", + text: "日本語" + }, { + value: "af", + text: "Afrikaans" + }, { + value: "az", + text: "Azərbaycan" + }, { + value: "id", + text: "Bahasa Indonesia" + }, { + value: "ms", + text: "Bahasa Malaysia" + }, { + value: "bs", + text: "Bosanski" + }, { + value: "ca", + text: "Català" + }, { + value: "cs", + text: "Čeština" + }, { + value: "da", + text: "Dansk" + }, { + value: "et", + text: "Eesti" + }, { + value: "eu", + text: "Euskara" + }, { + value: "fil", + text: "Filipino" + }, { + value: "fr-CA", + text: "Français (Canada)" + }, { + value: "gl", + text: "Galego" + }, { + value: "hr", + text: "Hrvatski" + }, { + value: "zu", + text: "IsiZulu" + }, { + value: "is", + text: "Íslenska" + }, { + value: "it", + text: "Italiano" + }, { + value: "sw", + text: "Kiswahili" + }, { + value: "lv", + text: "Latviešu valoda" + }, { + value: "lt", + text: "Lietuvių" + }, { + value: "hu", + text: "Magyar" + }, { + value: "nl", + text: "Nederlands" + }, { + value: "no", + text: "Norsk" + }, { + value: "uz", + text: "O‘zbek" + }, { + value: "ro", + text: "Română" + }, { + value: "sq", + text: "Shqip" + }, { + value: "sk", + text: "Slovenčina" + }, { + value: "sl", + text: "Slovenščina" + }, { + value: "sr-Latn", + text: "Srpski" + }, { + value: "fi", + text: "Suomi" + }, { + value: "sv", + text: "Svenska" + }, { + value: "vi", + text: "Tiếng Việt" + }, { + value: "tr", + text: "Türkçe" + }, { + value: "be", + text: "Беларуская" + }, { + value: "bg", + text: "Български" + }, { + value: "ky", + text: "Кыргызча" + }, { + value: "kk", + text: "Қазақ Тілі" + }, { + value: "mk", + text: "Македонски" + }, { + value: "mn", + text: "Монгол" + }, { + value: "sr", + text: "Српски" + }, { + value: "uk", + text: "Українська" + }, { + value: "el", + text: "Ελληνικά" + }, { + value: "hy", + text: "Հայերեն" + }, { + value: "iw", + text: "עברית" + }, { + value: "ur", + text: "اردو" + }, { + value: "ar", + text: "العربية" + }, { + value: "fa", + text: "فارسی" + }, { + value: "ne", + text: "नेपाली" + }, { + value: "mr", + text: "मराठी" + }, { + value: "hi", + text: "हिन्दी" + }, { + value: "bn", + text: "বাংলা" + }, { + value: "pa", + text: "ਪੰਜਾਬੀ" + }, { + value: "gu", + text: "ગુજરાતી" + }, { + value: "ta", + text: "தமிழ்" + }, { + value: "te", + text: "తెలుగు" + }, { + value: "kn", + text: "ಕನ್ನಡ" + }, { + value: "ml", + text: "മലയാളം" + }, { + value: "si", + text: "සිංහල" + }, { + value: "th", + text: "ภาษาไทย" + }, { + value: "lo", + text: "ລາວ" + }, { + value: "my", + text: "ဗမာ" + }, { + value: "ka", + text: "ქართული" + }, { + value: "am", + text: "አማርኛ" + }, { + value: "km", + text: "ខ្មែរ" + }, { + value: "zh-CN", + text: "中文 (简体)" + }, { + value: "zh-TW", + text: "中文 (繁體)" + }, { + value: "zh-HK", + text: "中文 (香港)" + }, { + value: "ko", + text: "한국어" + }], improvedtube: { component: 'select', text: 'ImprovedTube', @@ -556,54 +553,54 @@ extension.skeleton.header.sectionEnd.menu.on.click.settings.on.click.secondSecti component: 'section', variant: 'card', delete_youtube_cookies: { - component: 'button', - text: 'deleteYoutubeCookies', - - on: { - click: { - component: 'modal', - - message: { - component: 'span', - text: 'thisWillRemoveAllYouTubeCookies' - }, - section: { - component: 'section', - variant: 'actions', - - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - this.parentNode.parentNode.parentNode.close(); - } - } - }, - accept: { - component: 'button', - text: 'accept', - on: { - click: function () { - chrome.tabs.query({}, function (tabs) { - for (var i = 0, l = tabs.length; i < l; i++) { - if (tabs[i].hasOwnProperty('url')) { - chrome.tabs.sendMessage(tabs[i].id, { - action: 'delete-youtube-cookies' - }); - } - } - }); - - this.parentNode.parentNode.parentNode.close(); - } - } - } - } - } - } - }, - resetAllSettings: { + component: 'button', + text: 'deleteYoutubeCookies', + + on: { + click: { + component: 'modal', + + message: { + component: 'span', + text: 'thisWillRemoveAllYouTubeCookies' + }, + section: { + component: 'section', + variant: 'actions', + + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function () { + this.parentNode.parentNode.parentNode.close(); + } + } + }, + accept: { + component: 'button', + text: 'accept', + on: { + click: function () { + chrome.tabs.query({}, function (tabs) { + for (var i = 0, l = tabs.length; i < l; i++) { + if (tabs[i].hasOwnProperty('url')) { + chrome.tabs.sendMessage(tabs[i].id, { + action: 'delete-youtube-cookies' + }); + } + } + }); + + this.parentNode.parentNode.parentNode.close(); + } + } + } + } + } + } + }, + resetAllSettings: { component: 'button', text: 'resetAllSettings', on: { From e8fb14cfe78ae58fe8b49cc9ceb5e80768ab4c68 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 15 May 2023 19:16:36 +0200 Subject: [PATCH 0980/1224] Update README.md --- .github/README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/README.md b/.github/README.md index b2a4c9365..11e8a0b44 100644 --- a/.github/README.md +++ b/.github/README.md @@ -216,9 +216,11 @@ We might work on novel (new & unique)
projects at [github/**Wish-Factory**]

youtube recommmendation

Do you need to run a popular extension, site, app or repo?
We'd love to help meaningful projects@improvedtube.com


-### Our Labels, by amount: [?sort=count](https://github.com/code-charity/youtube/labels?sort=count-desc) +

🏝🏕 To-Do

-

🏝🏕 To-Do


(Label Filters & exclusions: Dynamic To-Do lists)
+### 🏷️ Our Labels, by amount: [?sort=count](https://github.com/code-charity/youtube/labels?sort=count-desc) + +

(Label Filters & exclusions: Dynamic To-Do list)

**0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer some bug bounty. [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "especially if you are at a cheap/poor place ❤️") .)
**1.** **[ ]** [**Documentation, wiki, screenshots, video, ...**](https://github.com/code-for-charity/YouTube-Extension/wiki "We need to help people learning as easily as possible about our 90+ features. (Drafts welcome. This will become 🛈tooltips in the extension too!") @@ -232,7 +234,7 @@ We might work on novel (new & unique)
projects at [github/**Wish-Factory**]

📟 "ImprovedTube Ticker 2022" /Pinned Issues -###### ❔[**ImprovedTube controls** in, under or around the video player or cursor](https://github.com/code4charity/YouTube-Extension/issues/1445).
❔[**Meaningful/Most similar extensions**? Social-Fixer, Youtube Enhancer, Simplify, ...](https://github.com/code4charity/YouTube-Extension/issues/1016).
📟 We are focused on updates, bugs & UX but please keep up your wishes for Features!
📟 Enjoy **our projects: global** [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl), to tweak CSS everywhere + Theme engine in the making, ...
📟 **2021:** Firefox, Edge, Opera, Whale added (please try&rate)



+###### ❔[**ImprovedTube controls** in, under or around the video player or cursor](https://github.com/code4charity/YouTube-Extension/issues/1445).
❔[**Meaningful/Most similar extensions**? Social-Fixer, Youtube Enhancer, Simplify, ...](https://github.com/code4charity/YouTube-Extension/issues/1016).
📟 We are focused on updates, bugs & UX but please keep up your wishes for Features!
📟 Enjoy **our projects: global** [**Dark Mode**](https://chrome.google.com/webstore/detail/dark-mode/declgfomkjdohhjbcfemjklfebflhefl), to tweak CSS everywhere + Theme engine in the making, ...
📟 **2021:** Firefox, Edge, Opera, Whale added (please try&rate)


📜Historic Introduction [ImprovedTube](https://chrome.google.com/webstore/detail/improve-youtube-open-sour/bnomihfieiccainjcjblhegjgglakjdd), From 6b463281b5374ddf14f066d8f7f051a13e54d611 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Mon, 15 May 2023 19:25:53 +0200 Subject: [PATCH 0981/1224] Update README.md --- .github/README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/README.md b/.github/README.md index 11e8a0b44..aa78a91ee 100644 --- a/.github/README.md +++ b/.github/README.md @@ -216,10 +216,7 @@ We might work on novel (new & unique)
projects at [github/**Wish-Factory**]

youtube recommmendation

Do you need to run a popular extension, site, app or repo?
We'd love to help meaningful projects@improvedtube.com


-

🏝🏕 To-Do

- -### 🏷️ Our Labels, by amount: [?sort=count](https://github.com/code-charity/youtube/labels?sort=count-desc) - +### 🏝🏕 To-Do:
Our Labels by amount: [🏷️?sort=count](https://github.com/code-charity/youtube/labels?sort=count-desc)

(Label Filters & exclusions: Dynamic To-Do list)

**0.** [ ] [**Bugs🐞**](https://github.com/code4charity/YouTube-Extension/issues?q=label%3Abug+sort%3Acomments-desc+is%3Aopen+-label%3A_+ "we aim to offer some bug-bounties. Please ask") (we try to offer some bug bounty. [Please ask](mailto:bugs@improvedtube.com?subject=TODO_BOUNTY_LINK "especially if you are at a cheap/poor place ❤️") .) From a3146f5d184f144347cd99089ddda29444489bed Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 16 May 2023 18:00:11 +0200 Subject: [PATCH 0982/1224] Update README.md --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index aa78a91ee..4cd0d5ca6 100644 --- a/.github/README.md +++ b/.github/README.md @@ -194,7 +194,7 @@ Today adding features can be easier & so motivating as there are 500 000 users. #### Vision for the (tweaking-/userStyle-/modding-)Community: 'Insteada mostly only tweakin@home like Sisyphos', we can start to simultaneously do so for the world greatly priotized: [github/Universal-UserTweaks](https://github.com/code-charity/Universal-UserTweaks) -#### Initiative for (small) Open-Source Efficiency: 🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot) +#### Initiative for Open-Source Efficiency: 🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot)
(will especially help medium-size projects) (+ [`regEx Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") ? )

🎁Our Extensions:

From d4781e783c3f7aa6781a211daedabdbaa59bbb85 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Tue, 16 May 2023 18:10:58 +0200 Subject: [PATCH 0983/1224] Update README.md --- .github/README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/README.md b/.github/README.md index 4cd0d5ca6..42ab40f1c 100644 --- a/.github/README.md +++ b/.github/README.md @@ -190,12 +190,14 @@ Today adding features can be easier & so motivating as there are 500 000 users. #####
Spread the word [📣](Http://Twitter_Whatsapp_Discord_Youtube_Facebook_eMail_Telegram_Signal)
        - **W**hy arent there millions of users yet? We didn't write a guide or manual, let alone ads. This project can "fly much higher" through your word of mouth & eventually enable us to work on all wishes & immediate fixes around the clock🌱


- + + +#### Initiative for Open-Source Efficiency: 🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot) +(will especially help medium-size projects) (+ [`regEx Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") ? )
#### Vision for the (tweaking-/userStyle-/modding-)Community: -'Insteada mostly only tweakin@home like Sisyphos', we can start to simultaneously do so for the world greatly priotized: [github/Universal-UserTweaks](https://github.com/code-charity/Universal-UserTweaks) +We can start to optimize things for the world, greatly priotized: [github/Universal-UserTweaks](https://github.com/code-charity/Universal-UserTweaks) "insteada mostly only tweakin@home like Sisyphos" +
-#### Initiative for Open-Source Efficiency: 🌱[`Pull Requests bots`](https://github.com/code4charity/Open-Source-Bot--Github-Git-Pull-Request-Bot)
(will especially help medium-size projects) -(+ [`regEx Collector`](https://github.com/code4charity/the-RegEx-Collector--Queries--Patterns " - community-list of Regex") ? )

🎁Our Extensions:

From 693265f2250618ab3651e6c0bd6ec4eee0dbc5e7 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Wed, 17 May 2023 01:30:58 +0200 Subject: [PATCH 0984/1224] Update player.js ModalHelper no longer needed after fixing up modal.confirm default ok/cancel dialog Added new switch 'custom' property. Disables default click handler, lets us display modal dialog without switching underlying option, cancelling modal dialog means underlying switch is never touched. --- menu/skeleton-parts/player.js | 161 +++++++++++++++++----------------- 1 file changed, 81 insertions(+), 80 deletions(-) diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index be9f9be7a..cd85e0ac8 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -37,50 +37,6 @@ extension.skeleton.main.layers.section.player = { } }; -/*-------------------------------------------------------------- -# ModalHelper, like satus.components.modal.confirm but lets you - pass callback functions ---------------------------------------------------------------*/ - -function ModalHelper(where, what, ok, cancel) { - satus.render({ - component: 'modal', - - message: { - component: 'text', - text: what - }, - actions: { - component: 'section', - variant: 'actions', - - ok: { - component: 'button', - text: 'OK', - on: { - click: function () { - ok(); - this.parentNode.parentNode.parentNode.close(); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function () { - where.click(); - cancel(); - if (this.componentName) { - this.parentNode.parentNode.parentNode.close(); - } - } - } - } - } - }, where.parentNode.parentNode.parentNode); -}; - /*-------------------------------------------------------------- # SECTION --------------------------------------------------------------*/ @@ -796,6 +752,8 @@ extension.skeleton.main.layers.section.player.on.click = { click: function () { if (this.dataset.value === 'false' && satus.storage.get('player_h264')) { satus.storage.set('player_h264', false); + } else if (this.dataset.value === 'true' && !satus.storage.get('player_h264')) { + satus.storage.set('player_h264', true); } } } @@ -803,16 +761,33 @@ extension.skeleton.main.layers.section.player.on.click = { block_vp9: { component: 'switch', text: 'blockVp9', + custom: true, on: { click: function () { - if (this.dataset.value === 'false' && satus.storage.get('player_h264')) { - satus.storage.set('player_h264', false); - } - if (this.dataset.value === 'true' && satus.storage.get('block_h264')) { - ModalHelper(this, 'You need either VP9 or H264 enabled for Youtube to work. Disabling both will break Video.', function(){ - }, - function(){ - }); + if (this.dataset.value === 'false') { + if (satus.storage.get('block_h264')) { + let where = this; + satus.render({ + component: 'modal', + variant: 'confirm', + content: 'You need either VP9 or H.264 enabled for Youtube to work. Disabling both will break Video.', + ok: function () { + where.flip(true); + }, + cancel: function () { + } + }, extension.skeleton.rendered); + } else { + this.flip(true); + if (satus.storage.get('block_av1')) { + satus.storage.set('player_h264', true); + } + } + } else { + this.flip(false); + if (satus.storage.get('player_h264')) { + satus.storage.set('player_h264', false); + } } } } @@ -820,16 +795,33 @@ extension.skeleton.main.layers.section.player.on.click = { block_h264: { component: 'switch', text: 'blockH264', + custom: true, on: { click: function () { - if (this.dataset.value === 'true' && satus.storage.get('player_h264')) { - satus.storage.set('player_h264', false); - } - if (this.dataset.value === 'true' && satus.storage.get('block_vp9')) { - ModalHelper(this, 'You need either VP9 or H264 enabled for Youtube to work. Disabling both will break Video.', function(){ - }, - function(){ - }); + if (this.dataset.value === 'false') { + if (satus.storage.get('block_vp9')) { + let where = this; + satus.render({ + component: 'modal', + variant: 'confirm', + content: 'You need either VP9 or H.264 enabled for Youtube to work. Disabling both will break Video.', + ok: function () { + where.flip(true); + }, + cancel: function () { + } + }, extension.skeleton.rendered); + } else { + this.flip(true); + if (satus.storage.get('block_av1')) { + satus.storage.set('player_h264', true); + } + } + } else { + this.flip(false); + if (!satus.storage.get('player_h264')) { + satus.storage.set('player_h264', true); + } } } } @@ -839,11 +831,11 @@ extension.skeleton.main.layers.section.player.on.click = { }, list: { component: 'span', + id: 'player_codecs', style: { opacity: .64 }, on: { - refresh: function () { this.skeleton.on.render() }, render: function () { var codecs = (satus.storage.get('block_h264') ? '' : 'h.264 ') + (satus.storage.get('block_vp9') ? '' : 'vp9 ') + (satus.storage.get('block_av1') ? '' : 'av1'); var here = this.parentObject ? this.parentObject.rendered : this; @@ -863,28 +855,37 @@ extension.skeleton.main.layers.section.player.on.click = { component: 'switch', text: 'codecH264', storage: 'player_h264', + custom: true, on: { click: function () { - //always refresh player_codecs element when clicking here let skeleton = this.parentNode.skeleton; + // refresh player_codecs/optimize_codec_for_hardware_acceleration elements when we change codecs refresh = function () { - skeleton.player_codecs.list.rendered.dispatchEvent(new CustomEvent('refresh')); - skeleton.optimize_codec_for_hardware_acceleration.list.rendered.dispatchEvent(new CustomEvent('refresh')); + document.getElementById('player_codecs').dispatchEvent(new CustomEvent('render')); + document.getElementById('optimize_codec_for_hardware_acceleration').dispatchEvent(new CustomEvent('render')); } - if (this.dataset.value === 'true') { - ModalHelper(this, 'youtubeLimitsVideoQualityTo1080pForH264Codec', function(){ - satus.storage.set('block_vp9', true); - satus.storage.set('block_av1', true); - satus.storage.set('block_h264', false); - refresh(); - }, - function(){ - satus.storage.set('block_vp9', false); - satus.storage.set('block_av1', false); - satus.storage.set('block_h264', false); - refresh(); - }); + if (this.dataset.value === 'false') { + let where = this; + satus.render({ + component: 'modal', + variant: 'confirm', + content: 'youtubeLimitsVideoQualityTo1080pForH264Codec', + ok: function () { + // manually turn switch ON + where.flip(true); + satus.storage.set('block_vp9', true); + satus.storage.set('block_av1', true); + satus.storage.set('block_h264', false); + refresh(); + }, + cancel: function () { + // nothing happens when we cancel + } + }, extension.skeleton.rendered); } else { + // manually turn switch OFF + this.flip(false); + // reset all codecs to unlocked state satus.storage.set('block_vp9', false); satus.storage.set('block_av1', false); satus.storage.set('block_h264', false); @@ -906,11 +907,11 @@ extension.skeleton.main.layers.section.player.on.click = { }, list: { component: 'span', + id: 'optimize_codec_for_hardware_acceleration', style: { opacity: .64 }, on: { - refresh: function () { this.skeleton.on.render() }, render: function () { // put some code here looking up GPU capabilities and comparing to currrent codec selection var codecs = (satus.storage.get('block_h264') ? '' : 'h.264 ') + (satus.storage.get('block_vp9') ? '' : 'vp9 ') + (satus.storage.get('block_av1') ? '' : 'av1'); @@ -921,9 +922,9 @@ extension.skeleton.main.layers.section.player.on.click = { here.textContent = 'Feature not yet available'; } else if (2) { // todo here.style = ''; - here.textContent = 'unknown GPU'; + here.textContent = 'GPU not in database'; } else if (codecs) { - here.style = 'color: greenimportant; font-weight: bold;'; + here.style = 'color: green!important; font-weight: bold;'; here.textContent = 'Optimal'; } else { here.style = 'color: red!important; font-weight: bold;'; From 7b79678dfe8966810edb86a5353da6da1e94f421 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Wed, 17 May 2023 01:43:54 +0200 Subject: [PATCH 0985/1224] Update satus.js adding switch.flip(), lets us manually change switch position --- js&css/satus.js | 40 ++++++++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/js&css/satus.js b/js&css/satus.js index 6cd338035..e0087ae78 100644 --- a/js&css/satus.js +++ b/js&css/satus.js @@ -2433,16 +2433,36 @@ satus.components.switch = function(component, skeleton) { component.createChildElement('i'); component.dataset.value = value; - - component.addEventListener('click', function() { - if (this.dataset.value === 'true') { - this.dataset.value = 'false'; - this.storage.value = false; - } else { - this.dataset.value = 'true'; - this.storage.value = true; - } - }, true); + component.flip = satus.components.switch.flip; + + // 'custom' disables default onclick, user provided function should handle this functionality manually + if (!skeleton.custom) { + component.addEventListener('click', function() { + this.flip(); + }, true); + } +}; + +satus.components.switch.flip = function(val) { + switch(val) { + case true: + this.dataset.value = 'true'; + this.storage.value = true; + break; + case false: + this.dataset.value = 'false'; + this.storage.value = false; + break; + case undefined: + if (this.dataset.value === 'true') { + this.dataset.value = 'false'; + this.storage.value = false; + } else { + this.dataset.value = 'true'; + this.storage.value = true; + } + break; + } }; /*-------------------------------------------------------------- >>> CONTEXT MENU From d17a391b5de48d96fe6b37f69808a5b6bbefef3f Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Wed, 17 May 2023 01:46:11 +0200 Subject: [PATCH 0986/1224] Update satus.js formatting, spaces to tabs --- js&css/satus.js | 4420 ++++++++++++++++++++++++----------------------- 1 file changed, 2211 insertions(+), 2209 deletions(-) diff --git a/js&css/satus.js b/js&css/satus.js index e0087ae78..e02eb7173 100644 --- a/js&css/satus.js +++ b/js&css/satus.js @@ -2,34 +2,34 @@ >>> 1. CORE ---------------------------------------------------------------- # GLOBAL VARIABLE: -# BASICS: camelize(string) snakelize(string) - sort(array, order, property) - data(element, data) - isset(target, is_object) - isFunction(target) - is_________target) Array Object Boolean +# BASICS: camelize(string) snakelize(string) + sort(array, order, property) + data(element, data) + isset(target, is_object) + isFunction(target) + is_________target) Array Object Boolean Element NodeList Number String - log() -# DOM: append(child, parent) - setAttributes(element, attributes) =attr() - createElement(tagName, componentName, namespaceURI) - empty(element, exclude = []) - elementIndex(element) - + log() +# DOM: append(child, parent) + setAttributes(element, attributes) =attr() + createElement(tagName, componentName, namespaceURI) + empty(element, exclude = []) + elementIndex(element) + # CSS: css(element, property) - addClass(element, className) =class() - satus.style(element, object) - getAnimationDuration(element) - -# CRYPTION (async): decrypt(text, password) - encrypt(text, password) + addClass(element, className) =class() + satus.style(element, object) + getAnimationDuration(element) + +# CRYPTION (async): decrypt(text, password) + encrypt(text, password) Events.on(type, handler) Events.trigger(type, data) -fetch(url, success, error, type) +fetch(url, success, error, type) getProperty(object, string) -indexOf(child, parent) +indexOf(child, parent) toIndex(index, child, parent) @@ -53,12 +53,12 @@ last(variable) # LOCALIZATION locale.get(string) -locale.import = function(code, callback, path) - //satus.locale.import(url, onload, onsuccess); +locale.import = function(code, callback, path) + //satus.locale.import(url, onload, onsuccess); text(element, value) - // We always try to run values as functions? - // isFunction(value) appears 6 times in satus.js + // We always try to run values as functions? + // isFunction(value) appears 6 times in satus.js ---------------------------------------------------------------- >>> 2. COMPONENTS @@ -67,21 +67,23 @@ components.modal(component, skeleton) components.modal.confirm components.grid components.textField - chart chart.bar - select -components.divider() base(component) section - alert time sidebar - layers - list - colorPicker - radio slider - tabs - shortcut - checkbox switch + chart chart.bar + select +components.divider() base(component) section + alert time sidebar + layers + list + colorPicker + radio slider + tabs + shortcut + checkbox +components.switch +components.switch.flip ---------------------------------------------------------------- >>> COLOR: String to array -RGB2HSL HUE2RGB HSL2RGB +RGB2HSL HUE2RGB HSL2RGB ---------------------------------------------------------------- >>> USER # HARDWARE and SOFTWARE values @@ -91,7 +93,7 @@ RGB2HSL HUE2RGB HSL2RGB Cookies Flash Java Audio Video WebGL - # Device: Screen + # Device: Screen RAM GPU Cores Touch Connection ---------------------------------------------------------------- @@ -105,146 +107,146 @@ RGB2HSL HUE2RGB HSL2RGB # GLOBAL VARIABLE --------------------------------------------------------------*/ var satus = { - components: {}, - events: { - data: {} - }, - locale: { - data: {} - }, - storage: { - data: {}, - type: 'extension' - } + components: {}, + events: { + data: {} + }, + locale: { + data: {} + }, + storage: { + data: {}, + type: 'extension' + } }; /*-------------------------------------------------------------- # BASICS --------------------------------------------------------------*/ /*--CAMELIZE--------------------------------------------------*/ satus.camelize = function(string) { - var result = ''; - for (var i = 0, l = string.length; i < l; i++) { - var character = string[i]; + var result = ''; + for (var i = 0, l = string.length; i < l; i++) { + var character = string[i]; - if (character === '_' || character === '-') { - i++; + if (character === '_' || character === '-') { + i++; - result += string[i].toUpperCase(); - } else { - result += character; - } - } - return result; + result += string[i].toUpperCase(); + } else { + result += character; + } + } + return result; }; /*---SNAKELIZE-------------------------------------------------*/ satus.snakelize = function(string) { - return string.replace(/([A-Z])/g, '-$1').toLowerCase(); + return string.replace(/([A-Z])/g, '-$1').toLowerCase(); }; /*---SORT------------------------------------------------------*/ satus.sort = function(array, order, property) { - var type; - - if (property) { - type = typeof array[0][property]; - } else { - type = typeof array[0]; - } - - if (order !== 'desc') { - if (type === 'number') { - if (property) { - return array.sort(function(a, b) { - return a[property] - b[property]; - }); - } else { - return array.sort(function(a, b) { - return a - b; - }); - } - } else if (type === 'string') { - if (property) { - return array.sort(function(a, b) { - return a[property].localeCompare(b[property]); - }); - } else { - return array.sort(function(a, b) { - return a.localeCompare(b); - }); - } - } - } else { - if (type === 'number') { - if (property) { - return array.sort(function(a, b) { - return b[property] - a[property]; - }); - } else { - return array.sort(function(a, b) { - return b - a; - }); - } - } else if (type === 'string') { - if (property) { - return array.sort(function(a, b) { - return b[property].localeCompare(a[property]); - }); - } else { - return array.sort(function(a, b) { - return b.localeCompare(a); - }); - } - } - } + var type; + + if (property) { + type = typeof array[0][property]; + } else { + type = typeof array[0]; + } + + if (order !== 'desc') { + if (type === 'number') { + if (property) { + return array.sort(function(a, b) { + return a[property] - b[property]; + }); + } else { + return array.sort(function(a, b) { + return a - b; + }); + } + } else if (type === 'string') { + if (property) { + return array.sort(function(a, b) { + return a[property].localeCompare(b[property]); + }); + } else { + return array.sort(function(a, b) { + return a.localeCompare(b); + }); + } + } + } else { + if (type === 'number') { + if (property) { + return array.sort(function(a, b) { + return b[property] - a[property]; + }); + } else { + return array.sort(function(a, b) { + return b - a; + }); + } + } else if (type === 'string') { + if (property) { + return array.sort(function(a, b) { + return b[property].localeCompare(a[property]); + }); + } else { + return array.sort(function(a, b) { + return b.localeCompare(a); + }); + } + } + } }; /*---data------------------------------------------------------*/ satus.data = function(element, data) { - if (data) { - for (var key in data) { - var value = data[key]; + if (data) { + for (var key in data) { + var value = data[key]; - if (satus.isFunction(value)) { - value = value(); - } + if (satus.isFunction(value)) { + value = value(); + } - element.dataset[key] = value; - } - } + element.dataset[key] = value; + } + } }; /*---# ISSET-----------------------------------------------------*/ satus.isset = function(target, is_object) { - if (is_object === true) { - var keys = target.split('.').filter(function(value) { - return value != ''; - }); - - for (var i = 0, l = keys.length; i < l; i++) { - if (satus.isset(target[keys[i]])) { - target = target[keys[i]]; - } else { - return undefined; - } - } + if (is_object === true) { + var keys = target.split('.').filter(function(value) { + return value != ''; + }); + + for (var i = 0, l = keys.length; i < l; i++) { + if (satus.isset(target[keys[i]])) { + target = target[keys[i]]; + } else { + return undefined; + } + } - return target; - } else { - if (target === null || target === undefined) { - return false; - } - } + return target; + } else { + if (target === null || target === undefined) { + return false; + } + } - return true; + return true; }; /*------------------------------------------------------------- - # is___(target) + # is___(target) --------------------------------------------------------------*/ satus.isFunction =function(target){return typeof target ==='function';}; -satus.isArray =function(t){if(Array.isArray(t)) {return true;}else{return false;}}; -satus.isString =function(t){if(typeof t ==='string') {return true;}else{return false;}}; +satus.isArray =function(t){if(Array.isArray(t)) {return true;}else{return false;}}; +satus.isString =function(t){if(typeof t ==='string') {return true;}else{return false;}}; satus.isNumber =function(t){if(typeof t ==='number'&&isNaN(t)===false){return true;}else{return false;}}; satus.isObject =function(t){return t instanceof Object && t !==null;}; -satus.isElement =function(t){return t instanceof Element || t instanceof HTMLDocument;}; +satus.isElement =function(t){return t instanceof Element || t instanceof HTMLDocument;}; satus.isNodeList =function(t){return t instanceof NodeList;}; satus.isBoolean =function(t){return t ===false || t ===true;}; /*---LOG------------------------------------------------------*/ @@ -261,128 +263,128 @@ satus.log =function(){console.log.apply(null, arguments);}; # APPEND --------------------------------------------------------------*/ satus.append = function(child, parent) { - (parent || document.body).appendChild(child); + (parent || document.body).appendChild(child); }; /*-------------------------------------------------------------- -# ATTR setAttributes +# ATTR setAttributes --------------------------------------------------------------*/ satus.setAttributes = satus.attr = function(element, attributes) { - if (attributes) { - for (var name in attributes) { - var value = attributes[name]; - - if (satus.isFunction(value)) { - value = value(); - } - - if (element.namespaceURI) { - if (value === false) { - element.removeAttributeNS(null, name); - } else { - element.setAttributeNS(null, name, value); - } - } else { - if (value === false) { - element.removeAttribute(name); - } else { - element.setAttribute(name, value); - } - } - } - } + if (attributes) { + for (var name in attributes) { + var value = attributes[name]; + + if (satus.isFunction(value)) { + value = value(); + } + + if (element.namespaceURI) { + if (value === false) { + element.removeAttributeNS(null, name); + } else { + element.setAttributeNS(null, name, value); + } + } else { + if (value === false) { + element.removeAttribute(name); + } else { + element.setAttribute(name, value); + } + } + } + } }; /*-------------------------------------------------------------- # CLONE --------------------------------------------------------------*/ satus.clone = function(item) { - var clone = item.cloneNode(true), - parent_css = window.getComputedStyle(item.parentNode), - css = window.getComputedStyle(item), - style = ''; - - for (var i = 0, l = css.length; i < l; i++) { - var property = css[i], - value = css.getPropertyValue(property); - - if (property === 'background-color') { - value = parent_css.getPropertyValue('background-color'); - } - - if (['box-shadow', 'left', 'top', 'bottom', 'right', 'opacity'].indexOf(property) === -1) { - style += property + ':' + value + ';'; - } - } + var clone = item.cloneNode(true), + parent_css = window.getComputedStyle(item.parentNode), + css = window.getComputedStyle(item), + style = ''; + + for (var i = 0, l = css.length; i < l; i++) { + var property = css[i], + value = css.getPropertyValue(property); + + if (property === 'background-color') { + value = parent_css.getPropertyValue('background-color'); + } + + if (['box-shadow', 'left', 'top', 'bottom', 'right', 'opacity'].indexOf(property) === -1) { + style += property + ':' + value + ';'; + } + } - clone.setAttribute('style', style); + clone.setAttribute('style', style); - return clone; + return clone; }; /*-------------------------------------------------------------- # CREATE ELEMENT --------------------------------------------------------------*/ satus.createElement = function(tagName, componentName, namespaceURI) { - var camelizedTagName = this.camelize(tagName), - className = 'satus-' + (componentName || tagName), - element, - match = className.match(/__[^__]+/g); - - if (!namespaceURI) { - if (tagName === 'svg') { - namespaceURI = 'http://www.w3.org/2000/svg'; - } - } + var camelizedTagName = this.camelize(tagName), + className = 'satus-' + (componentName || tagName), + element, + match = className.match(/__[^__]+/g); + + if (!namespaceURI) { + if (tagName === 'svg') { + namespaceURI = 'http://www.w3.org/2000/svg'; + } + } - if (namespaceURI) { - element = document.createElementNS(namespaceURI, tagName); - } else if (this.components[camelizedTagName]) { - element = document.createElement('div'); - } else { - element = document.createElement(tagName); - } + if (namespaceURI) { + element = document.createElementNS(namespaceURI, tagName); + } else if (this.components[camelizedTagName]) { + element = document.createElement('div'); + } else { + element = document.createElement(tagName); + } - if (match && match.length > 1) { - className = className.slice(0, className.indexOf('__')) + match[match.length - 1]; - } + if (match && match.length > 1) { + className = className.slice(0, className.indexOf('__')) + match[match.length - 1]; + } - element.componentName = componentName; - element.className = className; + element.componentName = componentName; + element.className = className; - element.createChildElement = function(tagName, componentName, namespaceURI) { - var element = satus.createElement(tagName, this.componentName + '__' + (componentName || tagName), namespaceURI); + element.createChildElement = function(tagName, componentName, namespaceURI) { + var element = satus.createElement(tagName, this.componentName + '__' + (componentName || tagName), namespaceURI); - if (this.baseProvider) { - element.baseProvider = this.baseProvider; - } + if (this.baseProvider) { + element.baseProvider = this.baseProvider; + } - if (this.layersProvider) { - element.layersProvider = this.layersProvider; - } + if (this.layersProvider) { + element.layersProvider = this.layersProvider; + } - this.appendChild(element); + this.appendChild(element); - return element; - }; + return element; + }; - return element; + return element; }; /*-------------------------------------------------------------- # EMPTY --------------------------------------------------------------*/ satus.empty = function(element, exclude = []) { - for (var i = element.childNodes.length - 1; i > -1; i--) { - var child = element.childNodes[i]; + for (var i = element.childNodes.length - 1; i > -1; i--) { + var child = element.childNodes[i]; - if (exclude.indexOf(child) === -1) { - child.remove(); - } - } + if (exclude.indexOf(child) === -1) { + child.remove(); + } + } }; /*-------------------------------------------------------------- # ELEMENT INDEX --------------------------------------------------------------*/ satus.elementIndex = function(element) { - return Array.prototype.slice.call(element.parentNode.children).indexOf(element); + return Array.prototype.slice.call(element.parentNode.children).indexOf(element); }; /*-------------------------------------------------------------- @@ -393,31 +395,31 @@ satus.elementIndex = function(element) { --------------------------------------------------------------*/ satus.css = function(element, property) { - return window.getComputedStyle(element).getPropertyValue(property); + return window.getComputedStyle(element).getPropertyValue(property); }; /*-------------------------------------------------------------- # CLASS --------------------------------------------------------------*/ satus.addClass = satus.class = function(element, className) { - if (className) { - element.classList.add(className); - } + if (className) { + element.classList.add(className); + } }; /*-------------------------------------------------------------- # STYLE --------------------------------------------------------------*/ satus.style = function(element, object) { - if (object) { - for (var key in object) { - element.style[key] = object[key]; - } - } + if (object) { + for (var key in object) { + element.style[key] = object[key]; + } + } }; /*-------------------------------------------------------------- # ANIMATION DURATION --------------------------------------------------------------*/ satus.getAnimationDuration = function(element) { - return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; + return Number(window.getComputedStyle(element).getPropertyValue('animation-duration').replace(/[^0-9.]/g, '')) * 1000; }; @@ -430,45 +432,45 @@ satus.getAnimationDuration = function(element) { # DECRYPTION --------------------------------------------------------------*/ satus.decrypt = async function(text, password) { - var iv = text.slice(0, 24).match(/.{2}/g).map(byte => parseInt(byte, 16)), - algorithm = { - name: 'AES-GCM', - iv: new Uint8Array(iv) - }; - - try { - var data = new TextDecoder().decode(await crypto.subtle.decrypt( - algorithm, - await crypto.subtle.importKey( - 'raw', - await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)), - algorithm, - false, ['decrypt'] - ), - new Uint8Array(atob(text.slice(24)).match(/[\s\S]/g).map(ch => ch.charCodeAt(0))) - )); - } catch (err) { - return false; - } - - return data; + var iv = text.slice(0, 24).match(/.{2}/g).map(byte => parseInt(byte, 16)), + algorithm = { + name: 'AES-GCM', + iv: new Uint8Array(iv) + }; + + try { + var data = new TextDecoder().decode(await crypto.subtle.decrypt( + algorithm, + await crypto.subtle.importKey( + 'raw', + await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)), + algorithm, + false, ['decrypt'] + ), + new Uint8Array(atob(text.slice(24)).match(/[\s\S]/g).map(ch => ch.charCodeAt(0))) + )); + } catch (err) { + return false; + } + + return data; }; /*-------------------------------------------------------------- # ENCRYPTION --------------------------------------------------------------*/ satus.encrypt = async function(text, password) { - var iv = crypto.getRandomValues(new Uint8Array(12)), - algorithm = { - name: 'AES-GCM', - iv: iv - }; + var iv = crypto.getRandomValues(new Uint8Array(12)), + algorithm = { + name: 'AES-GCM', + iv: iv + }; - return Array.from(iv).map(b => ('00' + b.toString(16)).slice(-2)).join('') + btoa(Array.from(new Uint8Array(await crypto.subtle.encrypt( - algorithm, - await crypto.subtle.importKey('raw', await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)), algorithm, false, ['encrypt']), - new TextEncoder().encode(text) - ))).map(byte => String.fromCharCode(byte)).join('')); + return Array.from(iv).map(b => ('00' + b.toString(16)).slice(-2)).join('') + btoa(Array.from(new Uint8Array(await crypto.subtle.encrypt( + algorithm, + await crypto.subtle.importKey('raw', await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)), algorithm, false, ['encrypt']), + new TextEncoder().encode(text) + ))).map(byte => String.fromCharCode(byte)).join('')); }; /*-------------------------------------------------------------- @@ -480,58 +482,58 @@ satus.encrypt = async function(text, password) { --------------------------------------------------------------*/ /*-- ON ------------------------------------------------------*/ satus.events.on = function(type, handler) { - if (!this.data[type]) { - this.data[type] = []; - } + if (!this.data[type]) { + this.data[type] = []; + } - this.data[type].push(handler); + this.data[type].push(handler); }; /*-- TRIGGER ------------------------------------------------*/ satus.events.trigger = function(type, data) { - var handlers = this.data[type]; + var handlers = this.data[type]; - if (handlers) { - for (var i = 0, l = handlers.length; i < l; i++) { - handlers[i](data); - } - } + if (handlers) { + for (var i = 0, l = handlers.length; i < l; i++) { + handlers[i](data); + } + } }; /*-------------------------------------------------------------- # FETCH --------------------------------------------------------------*/ satus.fetch = function(url, success, error, type) { - fetch(url).then(function(response) { - if (response.ok) { - response[type || 'json']().then(success); - } else { - error(); - } - }).catch(function() { - error(success); - }); + fetch(url).then(function(response) { + if (response.ok) { + response[type || 'json']().then(success); + } else { + error(); + } + }).catch(function() { + error(success); + }); }; /*-------------------------------------------------------------- # GET PROPERTY --------------------------------------------------------------*/ satus.getProperty = function(object, string) { - var properties = string.split('.'); + var properties = string.split('.'); - for (var i = 0, l = properties.length; i < l; i++) { - var property = properties[i]; + for (var i = 0, l = properties.length; i < l; i++) { + var property = properties[i]; - console.log(object); + console.log(object); - if (object = object[property]) { - if (i === l - 1) { - return object; - } - } else { - return false; - } - } + if (object = object[property]) { + if (i === l - 1) { + return object; + } + } else { + return false; + } + } }; @@ -540,17 +542,17 @@ satus.getProperty = function(object, string) { --------------------------------------------------------------*/ satus.indexOf = function(child, parent) { - var index = 0; - - if (satus.isArray(parent)) { - index = parent.indexOf(child); - } else { - while ((child = child.previousElementSibling)) { - index++; - } - } + var index = 0; + + if (satus.isArray(parent)) { + index = parent.indexOf(child); + } else { + while ((child = child.previousElementSibling)) { + index++; + } + } - return index; + return index; }; @@ -559,71 +561,71 @@ satus.indexOf = function(child, parent) { --------------------------------------------------------------*/ satus.toIndex = function(index, child, parent) { - if (satus.isArray(parent)) { - parent.splice(index, 0, parent.splice(satus.indexOf(child, parent), 1)[0]) - } + if (satus.isArray(parent)) { + parent.splice(index, 0, parent.splice(satus.indexOf(child, parent), 1)[0]) + } }; /*-------------------------------------------------------------- # ON --------------------------------------------------------------*/ satus.on = function(element, listeners) { - if (listeners) { - for (var type in listeners) { - var listener = listeners[type]; - - if (type === 'selectionchange') { - element = document; - } - - if (satus.isFunction(listener)) { - element.addEventListener(type, listener); - } else if (satus.isArray(listener) || satus.isObject(listener)) { - element.addEventListener(type, function(event) { - var target = this.skeleton.on[event.type], - layers = this.layersProvider; - - target.parentSkeleton = this.skeleton; - target.parentElement = this; - - if (!layers && this.baseProvider.layers.length > 0) { - layers = this.baseProvider.layers[0]; - } - - if (target.prepend === true) { - satus.prepend(target, this.parentNode); - } else if (layers && target.component !== 'modal') { - layers.open(target); - } else { - satus.render(target, this.baseProvider); - } - }); - } else if (satus.isString(listener)) { - element.addEventListener(type, function() { - var match = this.skeleton.on[event.type].match(/(["'`].+["'`]|[^.()]+)/g), - target = this.baseProvider; - - for (var i = 0, l = match.length; i < l; i++) { - var key = match[i]; - - if (target.skeleton[key]) { - target = target.skeleton[key]; - } else { - if (typeof target[key] === 'function') { - target[key](); - } else { - target = target[key]; - } - } - - if (target.rendered) { - target = target.rendered; - } - } - }); - } - } - } + if (listeners) { + for (var type in listeners) { + var listener = listeners[type]; + + if (type === 'selectionchange') { + element = document; + } + + if (satus.isFunction(listener)) { + element.addEventListener(type, listener); + } else if (satus.isArray(listener) || satus.isObject(listener)) { + element.addEventListener(type, function(event) { + var target = this.skeleton.on[event.type], + layers = this.layersProvider; + + target.parentSkeleton = this.skeleton; + target.parentElement = this; + + if (!layers && this.baseProvider.layers.length > 0) { + layers = this.baseProvider.layers[0]; + } + + if (target.prepend === true) { + satus.prepend(target, this.parentNode); + } else if (layers && target.component !== 'modal') { + layers.open(target); + } else { + satus.render(target, this.baseProvider); + } + }); + } else if (satus.isString(listener)) { + element.addEventListener(type, function() { + var match = this.skeleton.on[event.type].match(/(["'`].+["'`]|[^.()]+)/g), + target = this.baseProvider; + + for (var i = 0, l = match.length; i < l; i++) { + var key = match[i]; + + if (target.skeleton[key]) { + target = target.skeleton[key]; + } else { + if (typeof target[key] === 'function') { + target[key](); + } else { + target = target[key]; + } + } + + if (target.rendered) { + target = target.rendered; + } + } + }); + } + } + } }; @@ -632,212 +634,212 @@ satus.on = function(element, listeners) { --------------------------------------------------------------*/ satus.parentify = function(parentObject, exclude) { - for (var key in parentObject) { - if (exclude.indexOf(key) === -1) { - var child = parentObject[key]; - - if (satus.isset(child)) { - child.parentObject = parentObject; - - if ( - satus.isObject(child) && - !satus.isArray(child) && - !satus.isElement(child) && - !satus.isFunction(child) - ) { - this.parentify(child, exclude); - } - } - } - } + for (var key in parentObject) { + if (exclude.indexOf(key) === -1) { + var child = parentObject[key]; + + if (satus.isset(child)) { + child.parentObject = parentObject; + + if ( + satus.isObject(child) && + !satus.isArray(child) && + !satus.isElement(child) && + !satus.isFunction(child) + ) { + this.parentify(child, exclude); + } + } + } + } }; /*-------------------------------------------------------------- # PREPEND --------------------------------------------------------------*/ satus.prepend = function(child, parent) { - if (this.isElement(child)) { - parent.prepend(child); - } else if (this.isObject(child)) { - this.render(child, parent, undefined, undefined, true); - } + if (this.isElement(child)) { + parent.prepend(child); + } else if (this.isObject(child)) { + this.render(child, parent, undefined, undefined, true); + } }; /*-------------------------------------------------------------- # PROPERTIES --------------------------------------------------------------*/ satus.properties = function(element, properties) { - if (properties) { - for (var key in properties) { - var property = properties[key]; + if (properties) { + for (var key in properties) { + var property = properties[key]; - if (['placeholder', 'title'].indexOf(key) !== -1) { - property = satus.locale.get(property); - } + if (['placeholder', 'title'].indexOf(key) !== -1) { + property = satus.locale.get(property); + } - element[key] = property; - } - } + element[key] = property; + } + } }; /*-------------------------------------------------------------- # REMOVE --------------------------------------------------------------*/ satus.remove = function(child, parent) { - if (satus.isArray(parent)) { - parent.splice(satus.indexOf(child, parent), 1); - } + if (satus.isArray(parent)) { + parent.splice(satus.indexOf(child, parent), 1); + } }; /*-------------------------------------------------------------- # RENDER --------------------------------------------------------------*/ satus.render = function(skeleton, container, property, childrenOnly, prepend, skip_children) { - var element; - - if (skeleton.component && childrenOnly !== true) { - var tagName = skeleton.component, - camelizedTagName = this.camelize(tagName), - namespaceURI = skeleton.namespaceURI; - - if (!namespaceURI) { - if (tagName === 'svg') { - namespaceURI = 'http://www.w3.org/2000/svg'; - } else if (skeleton.parentSkeleton && skeleton.parentSkeleton.namespaceURI) { - namespaceURI = skeleton.parentSkeleton.namespaceURI; - } - - skeleton.namespaceURI = namespaceURI; - } - - element = this.createElement(tagName, tagName, namespaceURI); - - skeleton.rendered = element; - element.skeleton = skeleton; - element.childrenContainer = element; - element.componentName = tagName; - - if (skeleton.variant) { - var variant = skeleton.variant; - - if (this.isFunction(variant)) { - variant = variant(); - } - - if (satus.isArray(variant)) { - for (var i = 0, l = variant.length; i < l; i++) { - element.className += ' satus-' + tagName + '--' + variant[i]; - } - } else { - element.className += ' satus-' + tagName + '--' + variant; - } - } - - if (skeleton.id) { - element.id = skeleton.id; - } - - if (container) { - if (container.baseProvider) { - element.baseProvider = container.baseProvider; - } - - if (container.layersProvider) { - element.layersProvider = container.layersProvider; - } - } - - this.attr(element, skeleton.attr); - this.style(element, skeleton.style); - this.data(element, skeleton.data); - this.class(element, skeleton.class); - this.properties(element, skeleton.properties); - this.on(element, skeleton.on); - - element.storage = (function() { - var parent = element, - key = skeleton.storage || property || false, - value; - - if (satus.isFunction(key)) { - key = key(); - } - - if (skeleton.storage !== false) { - if (key) { - value = satus.storage.get(key); - } - - if (skeleton.hasOwnProperty('value') && value === undefined) { - value = skeleton.value; - } - } - - return Object.defineProperties({}, { - key: { - get: function() { - return key; - }, - set: function(string) { - key = string; - } - }, - value: { - get: function() { - return value; - }, - set: function(val) { - value = val; - - if (skeleton.storage !== false) { - satus.storage.set(key, val); - } - - parent.dispatchEvent(new CustomEvent('change')); - } - } - }); - }()); - - if (this.components[camelizedTagName]) { - this.components[camelizedTagName](element, skeleton); - } - - this.text(element.childrenContainer, skeleton.text); - this.prepend(skeleton.before, element.childrenContainer); - - if (prepend) { - this.prepend(element, container); - } else { - this.append(element, container); - } - - if (skeleton.hasOwnProperty('parentSkeleton') === false && container) { - skeleton.parentSkeleton = container.skeleton; - } - - satus.events.trigger('render', element); - - element.dispatchEvent(new CustomEvent('render')); - - container = element.childrenContainer || element; - } - - if ((!element || element.renderChildren !== false) & skip_children !== true) { - for (var key in skeleton) { - var item = skeleton[key]; - - if (key !== 'parentSkeleton' && key !== 'parentElement' && key !== 'parentObject' && key !== 'before') { - if (item && item.component) { - item.parentSkeleton = skeleton; - - if (element) { - item.parentElement = element; - } - - this.render(item, container, key, undefined, prepend); - } - } - } - } + var element; + + if (skeleton.component && childrenOnly !== true) { + var tagName = skeleton.component, + camelizedTagName = this.camelize(tagName), + namespaceURI = skeleton.namespaceURI; + + if (!namespaceURI) { + if (tagName === 'svg') { + namespaceURI = 'http://www.w3.org/2000/svg'; + } else if (skeleton.parentSkeleton && skeleton.parentSkeleton.namespaceURI) { + namespaceURI = skeleton.parentSkeleton.namespaceURI; + } - return element; + skeleton.namespaceURI = namespaceURI; + } + + element = this.createElement(tagName, tagName, namespaceURI); + + skeleton.rendered = element; + element.skeleton = skeleton; + element.childrenContainer = element; + element.componentName = tagName; + + if (skeleton.variant) { + var variant = skeleton.variant; + + if (this.isFunction(variant)) { + variant = variant(); + } + + if (satus.isArray(variant)) { + for (var i = 0, l = variant.length; i < l; i++) { + element.className += ' satus-' + tagName + '--' + variant[i]; + } + } else { + element.className += ' satus-' + tagName + '--' + variant; + } + } + + if (skeleton.id) { + element.id = skeleton.id; + } + + if (container) { + if (container.baseProvider) { + element.baseProvider = container.baseProvider; + } + + if (container.layersProvider) { + element.layersProvider = container.layersProvider; + } + } + + this.attr(element, skeleton.attr); + this.style(element, skeleton.style); + this.data(element, skeleton.data); + this.class(element, skeleton.class); + this.properties(element, skeleton.properties); + this.on(element, skeleton.on); + + element.storage = (function() { + var parent = element, + key = skeleton.storage || property || false, + value; + + if (satus.isFunction(key)) { + key = key(); + } + + if (skeleton.storage !== false) { + if (key) { + value = satus.storage.get(key); + } + + if (skeleton.hasOwnProperty('value') && value === undefined) { + value = skeleton.value; + } + } + + return Object.defineProperties({}, { + key: { + get: function() { + return key; + }, + set: function(string) { + key = string; + } + }, + value: { + get: function() { + return value; + }, + set: function(val) { + value = val; + + if (skeleton.storage !== false) { + satus.storage.set(key, val); + } + + parent.dispatchEvent(new CustomEvent('change')); + } + } + }); + }()); + + if (this.components[camelizedTagName]) { + this.components[camelizedTagName](element, skeleton); + } + + this.text(element.childrenContainer, skeleton.text); + this.prepend(skeleton.before, element.childrenContainer); + + if (prepend) { + this.prepend(element, container); + } else { + this.append(element, container); + } + + if (skeleton.hasOwnProperty('parentSkeleton') === false && container) { + skeleton.parentSkeleton = container.skeleton; + } + + satus.events.trigger('render', element); + + element.dispatchEvent(new CustomEvent('render')); + + container = element.childrenContainer || element; + } + + if ((!element || element.renderChildren !== false) & skip_children !== true) { + for (var key in skeleton) { + var item = skeleton[key]; + + if (key !== 'parentSkeleton' && key !== 'parentElement' && key !== 'parentObject' && key !== 'before') { + if (item && item.component) { + item.parentSkeleton = skeleton; + + if (element) { + item.parentElement = element; + } + + this.render(item, container, key, undefined, prepend); + } + } + } + } + + return element; }; /*-------------------------------------------------------------- @@ -852,15 +854,15 @@ satus.render = function(skeleton, container, property, childrenOnly, prepend, sk --------------------------------------------------------------*/ satus.storage.clear = function(callback) { - this.data = {}; + this.data = {}; - chrome.storage.local.clear(function() { - satus.events.trigger('storage-clear'); + chrome.storage.local.clear(function() { + satus.events.trigger('storage-clear'); - if (callback) { - callback(); - } - }); + if (callback) { + callback(); + } + }); }; @@ -869,29 +871,29 @@ satus.storage.clear = function(callback) { --------------------------------------------------------------*/ satus.storage.get = function(key, callback) { - var target = this.data; + var target = this.data; - if (typeof key !== 'string') { - return; - } + if (typeof key !== 'string') { + return; + } - key = key.split('/').filter(function(value) { - return value != ''; - }); + key = key.split('/').filter(function(value) { + return value != ''; + }); - for (var i = 0, l = key.length; i < l; i++) { - if (satus.isset(target[key[i]])) { - target = target[key[i]]; - } else { - return undefined; - } - } + for (var i = 0, l = key.length; i < l; i++) { + if (satus.isset(target[key[i]])) { + target = target[key[i]]; + } else { + return undefined; + } + } - if (typeof target === 'function') { - return target(); - } else { - return target; - } + if (typeof target === 'function') { + return target(); + } else { + return target; + } }; @@ -899,124 +901,124 @@ satus.storage.get = function(key, callback) { # IMPORT --------------------------------------------------------------*/ satus.storage.import = function(keys, callback) { - var self = this; + var self = this; - if (typeof keys === 'function') { - callback = keys; + if (typeof keys === 'function') { + callback = keys; - keys = undefined; - } + keys = undefined; + } - chrome.storage.local.get(keys, function(items) { - for (var key in items) { - self.data[key] = items[key]; - } + chrome.storage.local.get(keys, function(items) { + for (var key in items) { + self.data[key] = items[key]; + } - satus.log('STORAGE: data was successfully imported'); + satus.log('STORAGE: data was successfully imported'); - satus.events.trigger('storage-import'); + satus.events.trigger('storage-import'); - if (callback) { - callback(items); - } - }); + if (callback) { + callback(items); + } + }); }; /*-------------------------------------------------------------- # REMOVE --------------------------------------------------------------*/ satus.storage.remove = function(key, callback) { - var target = this.data; - - if (typeof key !== 'string') { - return; - } - - key = key.split('/').filter(function(value) { - return value != ''; - }); - - for (var i = 0, l = key.length; i < l; i++) { - if (satus.isset(target[key[i]])) { - if (i === l - 1) { - delete target[key[i]]; - } else { - target = target[key[i]]; - } - } else { - return undefined; - } - } - - if (key.length === 1) { - chrome.storage.local.remove(key[0]); - } else { - chrome.storage.local.set(this.data, function() { - satus.events.trigger('storage-remove'); - - if (callback) { - callback(); - } - }); - } + var target = this.data; + + if (typeof key !== 'string') { + return; + } + + key = key.split('/').filter(function(value) { + return value != ''; + }); + + for (var i = 0, l = key.length; i < l; i++) { + if (satus.isset(target[key[i]])) { + if (i === l - 1) { + delete target[key[i]]; + } else { + target = target[key[i]]; + } + } else { + return undefined; + } + } + + if (key.length === 1) { + chrome.storage.local.remove(key[0]); + } else { + chrome.storage.local.set(this.data, function() { + satus.events.trigger('storage-remove'); + + if (callback) { + callback(); + } + }); + } }; /*-------------------------------------------------------------- # SET --------------------------------------------------------------*/ satus.storage.set = function(key, value, callback) { - var items = {}, - target = this.data; + var items = {}, + target = this.data; - if (typeof key !== 'string') { - return; - } + if (typeof key !== 'string') { + return; + } - key = key.split('/').filter(function(value) { - return value != ''; - }); + key = key.split('/').filter(function(value) { + return value != ''; + }); - for (var i = 0, l = key.length; i < l; i++) { - var item = key[i]; + for (var i = 0, l = key.length; i < l; i++) { + var item = key[i]; - if (i < l - 1) { + if (i < l - 1) { - if (target[item]) { - target = target[item]; - } else { - target[item] = {}; + if (target[item]) { + target = target[item]; + } else { + target[item] = {}; - target = target[item]; - } - } else { - target[item] = value; - } - } + target = target[item]; + } + } else { + target[item] = value; + } + } - for (var key in this.data) { - if (typeof this.data[key] !== 'function') { - items[key] = this.data[key]; - } - } + for (var key in this.data) { + if (typeof this.data[key] !== 'function') { + items[key] = this.data[key]; + } + } - chrome.storage.local.set(items, function() { - satus.events.trigger('storage-set'); + chrome.storage.local.set(items, function() { + satus.events.trigger('storage-set'); - if (callback) { - callback(); - } - }); + if (callback) { + callback(); + } + }); }; /*-------------------------------------------------------------- # ON CHANGED --------------------------------------------------------------*/ satus.storage.onchanged = function(callback) { - chrome.storage.onChanged.addListener(function(changes) { - for (var key in changes) { - callback(key, changes[key].newValue); - } - }); + chrome.storage.onChanged.addListener(function(changes) { + for (var key in changes) { + callback(key, changes[key].newValue); + } + }); }; @@ -1025,9 +1027,9 @@ satus.storage.onchanged = function(callback) { --------------------------------------------------------------*/ satus.last = function(variable) { - if (this.isArray(variable) || this.isNodeList(variable) || variable instanceof HTMLCollection) { - return variable[variable.length - 1]; - } + if (this.isArray(variable) || this.isNodeList(variable) || variable instanceof HTMLCollection) { + return variable[variable.length - 1]; + } }; @@ -1041,7 +1043,7 @@ satus.last = function(variable) { --------------------------------------------------------------*/ satus.locale.get = function(string) { - return this.data[string] || string; + return this.data[string] || string; }; /*-------------------------------------------------------------- @@ -1051,33 +1053,33 @@ satus.locale.import(url, onload, onsuccess); --------------------------------------------------------------*/ satus.locale.import = function(code, callback, path) { - var language = code || window.navigator.language; + var language = code || window.navigator.language; - if (language.indexOf('en') === 0) { - language = 'en'; - } + if (language.indexOf('en') === 0) { + language = 'en'; + } - language = language.replace('-', '_'); + language = language.replace('-', '_'); - if (!path) { - path = '_locales/'; - } + if (!path) { + path = '_locales/'; + } - satus.fetch(chrome.runtime.getURL(path + language + '/messages.json'), function(response) { - for (var key in response) { - satus.locale.data[key] = response[key].message; - } + satus.fetch(chrome.runtime.getURL(path + language + '/messages.json'), function(response) { + for (var key in response) { + satus.locale.data[key] = response[key].message; + } - //satus.log('LOCALE: data was successfully imported'); + //satus.log('LOCALE: data was successfully imported'); - if (callback) { - callback(); - } - }, function(success) { - satus.fetch(chrome.runtime.getURL(path + 'en/messages.json'), success, function() { - success(); - }); - }); + if (callback) { + callback(); + } + }, function(success) { + satus.fetch(chrome.runtime.getURL(path + 'en/messages.json'), success, function() { + success(); + }); + }); }; @@ -1086,376 +1088,376 @@ satus.locale.import = function(code, callback, path) { --------------------------------------------------------------*/ satus.text = function(element, value) { - if (value) { - if (satus.isFunction(value)) { - value = value(); - } + if (value) { + if (satus.isFunction(value)) { + value = value(); + } - element.appendChild(document.createTextNode(this.locale.get(value))); - } + element.appendChild(document.createTextNode(this.locale.get(value))); + } }; /*-------------------------------------------------------------- - - >>> MODAL - - --------------------------------------------------------------*/ satus.components.modal = function(component, skeleton) { - component.scrim = component.createChildElement('div', 'scrim'); - component.surface = component.createChildElement('div', 'surface'); - - component.close = function(outside) { - var component = this; - - //try calling cancel when clicked outside of modal dialog - if (outside) { - //not sure if bug free so better trap this for now - try { if (skeleton.actions.cancel.on.click) skeleton.actions.cancel.on.click(); } - catch(err){console.log(err);} - } - - this.classList.add('satus-modal--closing'); - - setTimeout(function() { - component.remove(); - - component.dispatchEvent(new CustomEvent('close')); - }, Number(satus.css(this.surface, 'animation-duration').replace(/[^0-9.]/g, '')) * 1000); - }; - - component.scrim.addEventListener('click', function() { - //this is someone clicking outside of modal dialog - this.parentNode.close(true); - }); - - if (satus.isset(skeleton.content)) { - component.surface.content = component.surface.createChildElement('p', 'content'); - - if (satus.isObject(skeleton.content)) { - satus.render(skeleton.content, component.surface.content); - } else { - component.surface.content.textContent = satus.locale.get(skeleton.content); - } - } else { - component.childrenContainer = component.surface; - } - - if (satus.components.modal[skeleton.variant]) { - satus.components.modal[skeleton.variant](component, skeleton); - } + component.scrim = component.createChildElement('div', 'scrim'); + component.surface = component.createChildElement('div', 'surface'); + + component.close = function(outside) { + var component = this; + + //try calling cancel when clicked outside of modal dialog + if (outside) { + //not sure if bug free so better trap this for now + try { if (skeleton.actions.cancel.on.click) skeleton.actions.cancel.on.click(); } + catch(err){console.log(err);} + } + + this.classList.add('satus-modal--closing'); + + setTimeout(function() { + component.remove(); + + component.dispatchEvent(new CustomEvent('close')); + }, Number(satus.css(this.surface, 'animation-duration').replace(/[^0-9.]/g, '')) * 1000); + }; + + component.scrim.addEventListener('click', function() { + //this is someone clicking outside of modal dialog + this.parentNode.close(true); + }); + + if (satus.isset(skeleton.content)) { + component.surface.content = component.surface.createChildElement('p', 'content'); + + if (satus.isObject(skeleton.content)) { + satus.render(skeleton.content, component.surface.content); + } else { + component.surface.content.textContent = satus.locale.get(skeleton.content); + } + } else { + component.childrenContainer = component.surface; + } + + if (satus.components.modal[skeleton.variant]) { + satus.components.modal[skeleton.variant](component, skeleton); + } }; /*-------------------------------------------------------------- # CONFIRM --------------------------------------------------------------*/ satus.components.modal.confirm = function(component, skeleton) { - component.surface.actions = satus.render({ - component: 'section', - variant: 'align-end' - }, component.surface); - - if (skeleton.buttons) { - for (var key in skeleton.buttons) { - var button = skeleton.buttons[key]; - - if (satus.isObject(button) && button.component === 'button') { - satus.render(button, component.surface.actions).modalProvider = component; - } - } - } else { - satus.render({ - cancel: { - component: 'button', - text: 'cancel', - properties: { - modalProvider: component, - }, - on: { - click: function() { - this.modalProvider.dispatchEvent(new CustomEvent('cancel')); - this.modalProvider.close(); - } - } - }, - ok: { - component: 'button', - text: 'ok', - properties: { - modalProvider: component, - }, - on: { - click: function() { - this.modalProvider.dispatchEvent(new CustomEvent('confirm')); - this.modalProvider.close(); - } - } - } - }, component.surface.actions); - } + component.surface.actions = satus.render({ + component: 'section', + variant: 'align-end' + }, component.surface); + + if (skeleton.buttons) { + for (var key in skeleton.buttons) { + var button = skeleton.buttons[key]; + + if (satus.isObject(button) && button.component === 'button') { + satus.render(button, component.surface.actions).modalProvider = component; + } + } + } else { + satus.render({ + cancel: { + component: 'button', + text: 'cancel', + properties: { + modalProvider: component, + }, + on: { + click: function() { + // no listeners for this Event currently exist in the codebase + this.modalProvider.dispatchEvent(new CustomEvent('cancel')); + this.modalProvider.skeleton.cancel(); + this.modalProvider.close(); + } + } + }, + ok: { + component: 'button', + text: 'ok', + properties: { + modalProvider: component, + }, + on: { + click: function() { + // no listeners for this Event currently exist in the codebase + this.modalProvider.dispatchEvent(new CustomEvent('confirm')); + this.modalProvider.skeleton.ok(); + this.modalProvider.close(); + } + } + } + }, component.surface.actions); + } }; /*-------------------------------------------------------------- >>> GRID --------------------------------------------------------------*/ satus.components.grid = function(component, skeleton) { - console.log(component, skeleton); + console.log(component, skeleton); }; /*-------------------------------------------------------------- >>> TEXT FIELD --------------------------------------------------------------*/ satus.components.textField = function(component, skeleton) { - var container = component.createChildElement('div', 'container'), - input = container.createChildElement(skeleton.rows === 1 ? 'input' : 'textarea'), - display = container.createChildElement('div', 'display'), - line_numbers = display.createChildElement('div', 'line-numbers'), - pre = display.createChildElement('pre'), - selection = display.createChildElement('div', 'selection'), - cursor = display.createChildElement('div', 'cursor'), - hiddenValue = container.createChildElement('pre', 'hidden-value'); - - if (skeleton.rows === 1) { - component.setAttribute('multiline', 'false'); - component.multiline = false; - } - - component.placeholder = skeleton.placeholder; - component.input = input; - component.display = display; - component.lineNumbers = line_numbers; - component.pre = pre; - component.hiddenValue = hiddenValue; - component.selection = selection; - component.cursor = cursor; - component.syntax = { - current: 'text', - handlers: { - regex: function(value, target) { - var regex_token = /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g, - char_class_token = /[^\\-]+|-|\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)/g, - char_class_parts = /^(\[\^?)(]?(?:[^\\\]]+|\\[\S\s]?)*)(]?)$/, - quantifier = /^(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??$/, - matches = value.match(regex_token); - - function create(type, string) { - var span = document.createElement('span'); - - span.className = type; - span.textContent = string; - - target.appendChild(span); - } - - if (matches) { - for (var i = 0, l = matches.length; i < l; i++) { - var match = matches[i]; - - if (match[0] === '[') { - create('character-class', match); - } else if (match[0] === '(') { - create('group', match); - } else if (match[0] === ')') { - create('group', match); - } else if (match[0] === '\\' || match === '^') { - create('anchor', match); - } else if (quantifier.test(match)) { - create('quantifier', match); - } else if (match === '|' || match === '.') { - create('metasequence', match); - } else { - create('text', match); - } - } - } - } - }, - set: function(syntax) { - if (this.handlers[syntax]) { - this.current = syntax; - } else { - this.current = 'text'; - } - - pre.update(); - } - }; - component.focus = function() { - this.autofocus = true; this.input.focus(); - }; - - if (skeleton.lineNumbers === false) { - component.setAttribute('line-numbers', 'false'); - - component.lineNumbers.setAttribute('hidden', ''); - } - - if (satus.isset(skeleton.cols)) { - input.cols = skeleton.cols; - } - - if (satus.isset(skeleton.rows)) { - input.rows = skeleton.rows; - } - - Object.defineProperty(component, 'value', { - get: function() { - return this.input.value; - }, - set: function(value) { - this.input.value = value; - } - }); - - if (skeleton.syntax) { - component.syntax.set(skeleton.syntax); - } - - selection.setAttribute('disabled', ''); - - line_numbers.update = function() { - var component = this.parentNode.parentNode.parentNode, - count = component.input.value.split('\n').length; - - if (count !== this.children.length) { - satus.empty(this); - - for (var i = 1; i <= count; i++) { - var span = document.createElement('span'); - - span.textContent = i; - - this.appendChild(span); - } - } - - component.input.style.paddingLeft = this.offsetWidth + 'px'; - }; - - pre.update = function() { - var component = this.parentNode.parentNode.parentNode, - handler = component.syntax.handlers[component.syntax.current], - value = component.value || ''; - - for (var i = this.childNodes.length - 1; i > -1; i--) { - this.childNodes[i].remove(); - } - - if (handler) { - handler(value, this); - } else { - this.textContent = value; - } - - if (value.length === 0) { - var placeholder = component.placeholder; - - if (typeof placeholder === 'function') { - placeholder = component.placeholder(); - } else { - placeholder = satus.locale.get(placeholder); - } - - this.textContent = placeholder; - } - }; - - cursor.update = function() { - var component = this.parentNode.parentNode.parentNode, - input = component.input, - value = input.value, - rows_count = value.split('\n').length, - start = input.selectionStart, - end = input.selectionEnd, - rows = value.slice(0, start).split('\n'), - top = 0; - - this.style.animation = 'none'; - - if (input.selectionDirection === 'forward') { - component.hiddenValue.textContent = value.substring(0, end); - } else { - component.hiddenValue.textContent = value.substring(0, start); - } + var container = component.createChildElement('div', 'container'), + input = container.createChildElement(skeleton.rows === 1 ? 'input' : 'textarea'), + display = container.createChildElement('div', 'display'), + line_numbers = display.createChildElement('div', 'line-numbers'), + pre = display.createChildElement('pre'), + selection = display.createChildElement('div', 'selection'), + cursor = display.createChildElement('div', 'cursor'), + hiddenValue = container.createChildElement('pre', 'hidden-value'); + + if (skeleton.rows === 1) { + component.setAttribute('multiline', 'false'); + component.multiline = false; + } - top = component.hiddenValue.offsetHeight; + component.placeholder = skeleton.placeholder; + component.input = input; + component.display = display; + component.lineNumbers = line_numbers; + component.pre = pre; + component.hiddenValue = hiddenValue; + component.selection = selection; + component.cursor = cursor; + component.syntax = { + current: 'text', + handlers: { + regex: function(value, target) { + var regex_token = /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g, + char_class_token = /[^\\-]+|-|\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)/g, + char_class_parts = /^(\[\^?)(]?(?:[^\\\]]+|\\[\S\s]?)*)(]?)$/, + quantifier = /^(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??$/, + matches = value.match(regex_token); + + function create(type, string) { + var span = document.createElement('span'); + + span.className = type; + span.textContent = string; + + target.appendChild(span); + } + + if (matches) { + for (var i = 0, l = matches.length; i < l; i++) { + var match = matches[i]; + + if (match[0] === '[') { + create('character-class', match); + } else if (match[0] === '(') { + create('group', match); + } else if (match[0] === ')') { + create('group', match); + } else if (match[0] === '\\' || match === '^') { + create('anchor', match); + } else if (quantifier.test(match)) { + create('quantifier', match); + } else if (match === '|' || match === '.') { + create('metasequence', match); + } else { + create('text', match); + } + } + } + } + }, + set: function(syntax) { + if (this.handlers[syntax]) { + this.current = syntax; + } else { + this.current = 'text'; + } - component.hiddenValue.textContent = satus.last(rows); + pre.update(); + } + }; + component.focus = function() { + this.autofocus = true; this.input.focus(); + }; - top -= component.hiddenValue.offsetHeight; + if (skeleton.lineNumbers === false) { + component.setAttribute('line-numbers', 'false'); - if (component.multiline !== false) { - this.style.top = top + 'px'; - } + component.lineNumbers.setAttribute('hidden', ''); + } - this.style.left = component.hiddenValue.offsetWidth + component.lineNumbers.offsetWidth + 'px'; + if (satus.isset(skeleton.cols)) { + input.cols = skeleton.cols; + } - if (start === end) { - component.selection.setAttribute('disabled', ''); - } else { - component.selection.removeAttribute('disabled'); + if (satus.isset(skeleton.rows)) { + input.rows = skeleton.rows; + } - component.hiddenValue.textContent = value.substring(0, start); - //console.log(value.substring(0, start)); - component.selection.style.left = component.hiddenValue.offsetWidth - input.scrollLeft + 'px'; - //console.log(component.hiddenValue.offsetWidth); console.log( input.scrollLeft ) - component.hiddenValue.textContent = value.substring(start, end); -//console.log(component.hiddenValue.textContent); - component.selection.style.width = component.hiddenValue.offsetWidth + 'px'; - //console.log(component.hiddenValue.offsetWidth); - } + Object.defineProperty(component, 'value', { + get: function() { + return this.input.value; + }, + set: function(value) { + this.input.value = value; + } + }); + + if (skeleton.syntax) { + component.syntax.set(skeleton.syntax); + } - this.style.animation = ''; + selection.setAttribute('disabled', ''); - component.hiddenValue.textContent = ''; - }; + line_numbers.update = function() { + var component = this.parentNode.parentNode.parentNode, + count = component.input.value.split('\n').length; - document.addEventListener('selectionchange', function(event) { - component.lineNumbers.update(); - component.pre.update(); - component.cursor.update(); - }); + if (count !== this.children.length) { + satus.empty(this); - input.addEventListener('input', function() { - var component = this.parentNode.parentNode; + for (var i = 1; i <= count; i++) { + var span = document.createElement('span'); - component.storage.value = this.value; + span.textContent = i; - component.lineNumbers.update(); - component.pre.update(); - component.cursor.update(); - }); + this.appendChild(span); + } + } - input.addEventListener('scroll', function(event) { - var component = this.parentNode.parentNode; + component.input.style.paddingLeft = this.offsetWidth + 'px'; + }; - component.display.style.top = -this.scrollTop + 'px'; - component.display.style.left = -this.scrollLeft + 'px'; + pre.update = function() { + var component = this.parentNode.parentNode.parentNode, + handler = component.syntax.handlers[component.syntax.current], + value = component.value || ''; - component.lineNumbers.update(); - component.pre.update(); - component.cursor.update(); - }); + for (var i = this.childNodes.length - 1; i > -1; i--) { + this.childNodes[i].remove(); + } - component.addEventListener('change', function() { - this.lineNumbers.update(); - this.pre.update(); - this.cursor.update(); - }); + if (handler) { + handler(value, this); + } else { + this.textContent = value; + } - component.value = component.storage.value || ''; + if (value.length === 0) { + var placeholder = component.placeholder; - component.addEventListener('render', function() { - component.lineNumbers.update(); - component.pre.update(); - component.cursor.update(); - }); + if (typeof placeholder === 'function') { + placeholder = component.placeholder(); + } else { + placeholder = satus.locale.get(placeholder); + } - if (skeleton.on) { - for (var type in skeleton.on) { - input.addEventListener(type, function(event) { - this.parentNode.parentNode.dispatchEvent(new Event(event.type)); - }); - } - } + this.textContent = placeholder; + } + }; + + cursor.update = function() { + var component = this.parentNode.parentNode.parentNode, + input = component.input, + value = input.value, + rows_count = value.split('\n').length, + start = input.selectionStart, + end = input.selectionEnd, + rows = value.slice(0, start).split('\n'), + top = 0; + + this.style.animation = 'none'; + + if (input.selectionDirection === 'forward') { + component.hiddenValue.textContent = value.substring(0, end); + } else { + component.hiddenValue.textContent = value.substring(0, start); + } + + top = component.hiddenValue.offsetHeight; + + component.hiddenValue.textContent = satus.last(rows); + + top -= component.hiddenValue.offsetHeight; + + if (component.multiline !== false) { + this.style.top = top + 'px'; + } + + this.style.left = component.hiddenValue.offsetWidth + component.lineNumbers.offsetWidth + 'px'; + + if (start === end) { + component.selection.setAttribute('disabled', ''); + } else { + component.selection.removeAttribute('disabled'); + + component.hiddenValue.textContent = value.substring(0, start); + //console.log(value.substring(0, start)); + component.selection.style.left = component.hiddenValue.offsetWidth - input.scrollLeft + 'px'; + //console.log(component.hiddenValue.offsetWidth); console.log( input.scrollLeft ) + component.hiddenValue.textContent = value.substring(start, end); +//console.log(component.hiddenValue.textContent); + component.selection.style.width = component.hiddenValue.offsetWidth + 'px'; + //console.log(component.hiddenValue.offsetWidth); + } + + this.style.animation = ''; + + component.hiddenValue.textContent = ''; + }; + + document.addEventListener('selectionchange', function(event) { + component.lineNumbers.update(); + component.pre.update(); + component.cursor.update(); + }); + + input.addEventListener('input', function() { + var component = this.parentNode.parentNode; + + component.storage.value = this.value; + + component.lineNumbers.update(); + component.pre.update(); + component.cursor.update(); + }); + + input.addEventListener('scroll', function(event) { + var component = this.parentNode.parentNode; + + component.display.style.top = -this.scrollTop + 'px'; + component.display.style.left = -this.scrollLeft + 'px'; + + component.lineNumbers.update(); + component.pre.update(); + component.cursor.update(); + }); + + component.addEventListener('change', function() { + this.lineNumbers.update(); + this.pre.update(); + this.cursor.update(); + }); + + component.value = component.storage.value || ''; + + component.addEventListener('render', function() { + component.lineNumbers.update(); + component.pre.update(); + component.cursor.update(); + }); + + if (skeleton.on) { + for (var type in skeleton.on) { + input.addEventListener(type, function(event) { + this.parentNode.parentNode.dispatchEvent(new Event(event.type)); + }); + } + } }; /*-------------------------------------------------------------- >>> CHART @@ -1468,13 +1470,13 @@ satus.components.textField = function(component, skeleton) { # CORE --------------------------------------------------------------*/ satus.components.chart = function(component, skeleton) { - var type = skeleton.type; + var type = skeleton.type; - if (this.chart[type]) { - component.classList.add('satus-chart--' + type); + if (this.chart[type]) { + component.classList.add('satus-chart--' + type); - this.chart[type](component, skeleton); - } + this.chart[type](component, skeleton); + } }; @@ -1482,114 +1484,114 @@ satus.components.chart = function(component, skeleton) { # BAR --------------------------------------------------------------*/ satus.components.chart.bar = function(component, skeleton) { - var labels = skeleton.labels, - datasets = skeleton.datasets, - bars = []; + var labels = skeleton.labels, + datasets = skeleton.datasets, + bars = []; - if (satus.isFunction(labels)) { - labels = labels(); - } + if (satus.isFunction(labels)) { + labels = labels(); + } - if (satus.isFunction(datasets)) { - datasets = datasets(); - } + if (satus.isFunction(datasets)) { + datasets = datasets(); + } - if (satus.isArray(labels)) { - var container = component.createChildElement('div', 'labels'); + if (satus.isArray(labels)) { + var container = component.createChildElement('div', 'labels'); - for (var i = 0, l = labels.length; i < l; i++) { - var label = labels[i], - section = container.createChildElement('div', 'section'); + for (var i = 0, l = labels.length; i < l; i++) { + var label = labels[i], + section = container.createChildElement('div', 'section'); - section.textContent = label; - } - } + section.textContent = label; + } + } - if (satus.isArray(datasets)) { - var container = component.createChildElement('div', 'bars'); + if (satus.isArray(datasets)) { + var container = component.createChildElement('div', 'bars'); - for (var i = 0, l = datasets.length; i < l; i++) { - var dataset = datasets[i]; + for (var i = 0, l = datasets.length; i < l; i++) { + var dataset = datasets[i]; - for (var j = 0, k = dataset.data.length; j < k; j++) { - if (!satus.isElement(bars[j])) { - bars.push(container.createChildElement('div', 'bar')); - } + for (var j = 0, k = dataset.data.length; j < k; j++) { + if (!satus.isElement(bars[j])) { + bars.push(container.createChildElement('div', 'bar')); + } - var piece = bars[j].createChildElement('div', 'piece'); + var piece = bars[j].createChildElement('div', 'piece'); - piece.title = dataset.label; - piece.style.height = dataset.data[j] + '%'; - piece.style.backgroundColor = 'rgb(' + dataset.color.join(',') + ')'; - } - } - } + piece.title = dataset.label; + piece.style.height = dataset.data[j] + '%'; + piece.style.backgroundColor = 'rgb(' + dataset.color.join(',') + ')'; + } + } + } }; /*-------------------------------------------------------------- >>> SELECT --------------------------------------------------------------*/ satus.components.select = function(component, skeleton) { - var content = component.createChildElement('div', 'content'); + var content = component.createChildElement('div', 'content'); - component.childrenContainer = content; - component.valueElement = document.createElement('span'); - component.selectElement = document.createElement('select'); + component.childrenContainer = content; + component.valueElement = document.createElement('span'); + component.selectElement = document.createElement('select'); - component.valueElement.className = 'satus-select__value'; + component.valueElement.className = 'satus-select__value'; - component.appendChild(component.valueElement); - component.appendChild(component.selectElement); + component.appendChild(component.valueElement); + component.appendChild(component.selectElement); - component.options = skeleton.options || []; + component.options = skeleton.options || []; - if (satus.isFunction(component.options)) { - component.options = component.options(); + if (satus.isFunction(component.options)) { + component.options = component.options(); - if (!satus.isset(component.options)) { - component.options = []; - } - } + if (!satus.isset(component.options)) { + component.options = []; + } + } - for (var i = 0, l = component.options.length; i < l; i++) { - var option = document.createElement('option'); + for (var i = 0, l = component.options.length; i < l; i++) { + var option = document.createElement('option'); - option.value = component.options[i].value; + option.value = component.options[i].value; - satus.text(option, component.options[i].text); + satus.text(option, component.options[i].text); - component.selectElement.appendChild(option); - } + component.selectElement.appendChild(option); + } - Object.defineProperty(component, 'value', { - get() { - return this.selectElement.value; - }, - set(value) { - this.selectElement.value = value; - } - }); + Object.defineProperty(component, 'value', { + get() { + return this.selectElement.value; + }, + set(value) { + this.selectElement.value = value; + } + }); - component.render = function() { - satus.empty(this.valueElement); + component.render = function() { + satus.empty(this.valueElement); - if (this.selectElement.options[this.selectElement.selectedIndex]) { - satus.text(this.valueElement, this.selectElement.options[this.selectElement.selectedIndex].text); - } + if (this.selectElement.options[this.selectElement.selectedIndex]) { + satus.text(this.valueElement, this.selectElement.options[this.selectElement.selectedIndex].text); + } - this.dataset.value = this.value; - }; + this.dataset.value = this.value; + }; - component.selectElement.addEventListener('change', function() { - var component = this.parentNode; + component.selectElement.addEventListener('change', function() { + var component = this.parentNode; - component.storage.value = this.value; + component.storage.value = this.value; - component.render(); - }); + component.render(); + }); - component.value = component.storage.value || component.options[0].value; + component.value = component.storage.value || component.options[0].value; - component.render(); + component.render(); }; /*-------------------------------------------------------------- @@ -1601,17 +1603,17 @@ satus.components.divider = function() {}; >>> SECTION --------------------------------------------------------------*/ satus.components.section = function(component, skeleton) { - if (satus.isString(skeleton.title)) { - component.dataset.title = satus.locale.get(skeleton.title); - } + if (satus.isString(skeleton.title)) { + component.dataset.title = satus.locale.get(skeleton.title); + } }; /*-------------------------------------------------------------- >>> BASE --------------------------------------------------------------*/ satus.components.base = function(component) { - component.baseProvider = component; - component.layers = []; + component.baseProvider = component; + component.layers = []; }; /*-------------------------------------------------------------- >>> ALERT @@ -1622,47 +1624,47 @@ satus.components.alert = function(component, skeleton) {}; >>> TIME --------------------------------------------------------------*/ satus.components.time = function(component, skeleton) { - var select_skeleton = Object.assign({}, skeleton); + var select_skeleton = Object.assign({}, skeleton); - select_skeleton.component = 'select'; - select_skeleton.options = []; + select_skeleton.component = 'select'; + select_skeleton.options = []; - if (satus.isFunction(select_skeleton.hour12)) { - select_skeleton.hour12 = select_skeleton.hour12(); - } - - for (var i = 0, l = 24; i < l; i++) { - var hour = i, - value = i; + if (satus.isFunction(select_skeleton.hour12)) { + select_skeleton.hour12 = select_skeleton.hour12(); + } - if (select_skeleton.hour12 === true && i > 12) { - hour -= 12; - } + for (var i = 0, l = 24; i < l; i++) { + var hour = i, + value = i; - if (hour < 10) { - hour = '0' + hour; - value = '0' + value; - } + if (select_skeleton.hour12 === true && i > 12) { + hour -= 12; + } - if (select_skeleton.hour12 === true) { - if (i > 12) { - hour += ':00 pm'; - } else { - hour += ':00 am'; - } - } else { - hour += ':00' - } + if (hour < 10) { + hour = '0' + hour; + value = '0' + value; + } - select_skeleton.options.push({ - text: hour, - value: value + ':00' - }); - } + if (select_skeleton.hour12 === true) { + if (i > 12) { + hour += ':00 pm'; + } else { + hour += ':00 am'; + } + } else { + hour += ':00' + } + + select_skeleton.options.push({ + text: hour, + value: value + ':00' + }); + } - satus.components.select(component, select_skeleton); + satus.components.select(component, select_skeleton); - component.classList.add('satus-select'); + component.classList.add('satus-select'); }; /*-------------------------------------------------------------- @@ -1673,766 +1675,766 @@ satus.components.sidebar = function(component, skeleton) {}; >>> LAYERS --------------------------------------------------------------*/ satus.components.layers = function(component, skeleton) { - component.path = []; - component.renderChildren = false; - component.baseProvider.layers.push(component); - component.layersProvider = component; - - component.back = function() { - if (this.path.length > 1) { - this.path.pop(); - - this.open(this.path[this.path.length - 1], false); - } - }; - - component.open = function(skeleton, history) { - var previous_layer = satus.last(this.querySelectorAll('.satus-layers__layer')), - layer = this.createChildElement('div', 'layer'); - - if (history !== false) { - if (previous_layer) { - previous_layer.style.animation = 'fadeOutLeft 100ms linear forwards'; - layer.style.animation = 'fadeInRight 100ms linear forwards'; - } + component.path = []; + component.renderChildren = false; + component.baseProvider.layers.push(component); + component.layersProvider = component; + + component.back = function() { + if (this.path.length > 1) { + this.path.pop(); + + this.open(this.path[this.path.length - 1], false); + } + }; + + component.open = function(skeleton, history) { + var previous_layer = satus.last(this.querySelectorAll('.satus-layers__layer')), + layer = this.createChildElement('div', 'layer'); + + if (history !== false) { + if (previous_layer) { + previous_layer.style.animation = 'fadeOutLeft 100ms linear forwards'; + layer.style.animation = 'fadeInRight 100ms linear forwards'; + } - this.path.push(skeleton); - } else { - previous_layer.style.animation = 'fadeOutRight 100ms linear forwards'; - layer.style.animation = 'fadeInLeft 100ms linear forwards'; - } + this.path.push(skeleton); + } else { + previous_layer.style.animation = 'fadeOutRight 100ms linear forwards'; + layer.style.animation = 'fadeInLeft 100ms linear forwards'; + } - if (previous_layer) { - setTimeout(function() { - previous_layer.remove(); - }, satus.getAnimationDuration(previous_layer)); - } + if (previous_layer) { + setTimeout(function() { + previous_layer.remove(); + }, satus.getAnimationDuration(previous_layer)); + } - layer.skeleton = skeleton; - layer.baseProvider = this.baseProvider; + layer.skeleton = skeleton; + layer.baseProvider = this.baseProvider; - satus.render(skeleton, layer, undefined, skeleton.component === 'layers'); + satus.render(skeleton, layer, undefined, skeleton.component === 'layers'); - this.dispatchEvent(new Event('open')); - }; + this.dispatchEvent(new Event('open')); + }; - component.update = function() { - var layer = this.querySelector('.satus-layers__layer'); + component.update = function() { + var layer = this.querySelector('.satus-layers__layer'); - satus.empty(layer); - satus.render(layer.skeleton, layer); - }; + satus.empty(layer); + satus.render(layer.skeleton, layer); + }; - component.open(skeleton); + component.open(skeleton); }; /*-------------------------------------------------------------- >>> LIST --------------------------------------------------------------*/ satus.components.list = function(component, skeleton) { - for (var i = 0, l = skeleton.items.length; i < l; i++) { - var li = component.createChildElement('div', 'item'), - item = skeleton.items[i]; + for (var i = 0, l = skeleton.items.length; i < l; i++) { + var li = component.createChildElement('div', 'item'), + item = skeleton.items[i]; - for (var j = 0, k = item.length; j < k; j++) { - var child = item[j]; + for (var j = 0, k = item.length; j < k; j++) { + var child = item[j]; - if (satus.isObject(child)) { - satus.render(child, li); - } else { - var span = li.createChildElement('span'); + if (satus.isObject(child)) { + satus.render(child, li); + } else { + var span = li.createChildElement('span'); - span.textContent = satus.locale.get(child); - } - } - } + span.textContent = satus.locale.get(child); + } + } + } }; /*-------------------------------------------------------------- >>> COLOR PICKER --------------------------------------------------------------*/ satus.components.colorPicker = function(component, skeleton) { - component.childrenContainer = component.createChildElement('div', 'content'); - - component.color = (function(element) { - var array; - - Object.defineProperty(element, 'value', { - get: function() { - return array; - }, - set: function(value) { - array = value; - - this.parentNode.storage.value = array; - - element.style.backgroundColor = 'rgb(' + value.join(',') + ')'; - } - }); - - element.value = component.storage.value || component.skeleton.value || [0, 0, 0]; - - return element; - })(component.createChildElement('span', 'value')); - - component.addEventListener('click', function() { - var hsl = satus.color.rgbToHsl(this.color.value), - s = hsl[1] / 100, - l = hsl[2] / 100; - - s *= l < .5 ? l : 1 - l; - - var v = l + s; - - s = 2 * s / (l + s); - - satus.render({ - component: 'modal', - variant: 'color-picker', - value: hsl, - parentElement: this, - - palette: { - component: 'div', - class: 'satus-color-picker__palette', - style: { - 'backgroundColor': 'hsl(' + hsl[0] + 'deg, 100%, 50%)' - }, - on: { - mousedown: function(event) { - if (event.button !== 0) { - return false; - } - - var palette = this, - rect = this.getBoundingClientRect(), - cursor = this.children[0]; - - function mousemove(event) { - var hsl = palette.skeleton.parentSkeleton.value, - x = event.clientX - rect.left, - y = event.clientY - rect.top, - s; - - x = Math.min(Math.max(x, 0), rect.width) / (rect.width / 100); - y = Math.min(Math.max(y, 0), rect.height) / (rect.height / 100); - - var v = 100 - y, - l = (2 - x / 100) * v / 2; - - hsl[1] = x * v / (l < 50 ? l * 2 : 200 - l * 2); - hsl[2] = l; - - cursor.style.left = x + '%'; - cursor.style.top = y + '%'; - - palette.nextSibling.children[0].style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; - - event.preventDefault(); - } - - function mouseup() { - window.removeEventListener('mousemove', mousemove); - window.removeEventListener('mouseup', mouseup); - } - - window.addEventListener('mousemove', mousemove); - window.addEventListener('mouseup', mouseup); - } - }, - - cursor: { - component: 'div', - class: 'satus-color-picker__cursor', - style: { - 'left': s * 100 + '%', - 'top': 100 - v * 100 + '%' - } - } - }, - section: { - component: 'section', - variant: 'color', - - color: { - component: 'div', - class: 'satus-color-picker__color', - style: { - 'backgroundColor': 'rgb(' + this.color.value.join(',') + ')' - } - }, - hue: { - component: 'slider', - class: 'satus-color-picker__hue', - storage: false, - value: hsl[0], - max: 360, - on: { - input: function() { - var modal = this.skeleton.parentSkeleton.parentSkeleton, - hsl = modal.value; - - hsl[0] = this.storage.value; - - this.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; - this.parentNode.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg, 100%, 50%)'; - } - } - } - }, - actions: { - component: 'section', - variant: 'actions', - - reset: { - component: 'button', - text: 'reset', - on: { - click: function() { - var modal = this.skeleton.parentSkeleton.parentSkeleton, - component = modal.parentElement; - - component.color.value = component.skeleton.value || [0, 0, 0]; - - modal.rendered.close(); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function() { - this.skeleton.parentSkeleton.parentSkeleton.rendered.close(); - } - } - }, - ok: { - component: 'button', - text: 'OK', - on: { - click: function() { - var modal = this.skeleton.parentSkeleton.parentSkeleton, - component = modal.parentElement; - - component.color.value = satus.color.hslToRgb(modal.value); - - modal.rendered.close(); - } - } - } - } - }, this.baseProvider.layers[0]); - }); + component.childrenContainer = component.createChildElement('div', 'content'); + + component.color = (function(element) { + var array; + + Object.defineProperty(element, 'value', { + get: function() { + return array; + }, + set: function(value) { + array = value; + + this.parentNode.storage.value = array; + + element.style.backgroundColor = 'rgb(' + value.join(',') + ')'; + } + }); + + element.value = component.storage.value || component.skeleton.value || [0, 0, 0]; + + return element; + })(component.createChildElement('span', 'value')); + + component.addEventListener('click', function() { + var hsl = satus.color.rgbToHsl(this.color.value), + s = hsl[1] / 100, + l = hsl[2] / 100; + + s *= l < .5 ? l : 1 - l; + + var v = l + s; + + s = 2 * s / (l + s); + + satus.render({ + component: 'modal', + variant: 'color-picker', + value: hsl, + parentElement: this, + + palette: { + component: 'div', + class: 'satus-color-picker__palette', + style: { + 'backgroundColor': 'hsl(' + hsl[0] + 'deg, 100%, 50%)' + }, + on: { + mousedown: function(event) { + if (event.button !== 0) { + return false; + } + + var palette = this, + rect = this.getBoundingClientRect(), + cursor = this.children[0]; + + function mousemove(event) { + var hsl = palette.skeleton.parentSkeleton.value, + x = event.clientX - rect.left, + y = event.clientY - rect.top, + s; + + x = Math.min(Math.max(x, 0), rect.width) / (rect.width / 100); + y = Math.min(Math.max(y, 0), rect.height) / (rect.height / 100); + + var v = 100 - y, + l = (2 - x / 100) * v / 2; + + hsl[1] = x * v / (l < 50 ? l * 2 : 200 - l * 2); + hsl[2] = l; + + cursor.style.left = x + '%'; + cursor.style.top = y + '%'; + + palette.nextSibling.children[0].style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; + + event.preventDefault(); + } + + function mouseup() { + window.removeEventListener('mousemove', mousemove); + window.removeEventListener('mouseup', mouseup); + } + + window.addEventListener('mousemove', mousemove); + window.addEventListener('mouseup', mouseup); + } + }, + + cursor: { + component: 'div', + class: 'satus-color-picker__cursor', + style: { + 'left': s * 100 + '%', + 'top': 100 - v * 100 + '%' + } + } + }, + section: { + component: 'section', + variant: 'color', + + color: { + component: 'div', + class: 'satus-color-picker__color', + style: { + 'backgroundColor': 'rgb(' + this.color.value.join(',') + ')' + } + }, + hue: { + component: 'slider', + class: 'satus-color-picker__hue', + storage: false, + value: hsl[0], + max: 360, + on: { + input: function() { + var modal = this.skeleton.parentSkeleton.parentSkeleton, + hsl = modal.value; + + hsl[0] = this.storage.value; + + this.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg,' + hsl[1] + '%, ' + hsl[2] + '%)'; + this.parentNode.previousSibling.style.backgroundColor = 'hsl(' + hsl[0] + 'deg, 100%, 50%)'; + } + } + } + }, + actions: { + component: 'section', + variant: 'actions', + + reset: { + component: 'button', + text: 'reset', + on: { + click: function() { + var modal = this.skeleton.parentSkeleton.parentSkeleton, + component = modal.parentElement; + + component.color.value = component.skeleton.value || [0, 0, 0]; + + modal.rendered.close(); + } + } + }, + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function() { + this.skeleton.parentSkeleton.parentSkeleton.rendered.close(); + } + } + }, + ok: { + component: 'button', + text: 'OK', + on: { + click: function() { + var modal = this.skeleton.parentSkeleton.parentSkeleton, + component = modal.parentElement; + + component.color.value = satus.color.hslToRgb(modal.value); + + modal.rendered.close(); + } + } + } + } + }, this.baseProvider.layers[0]); + }); }; /*-------------------------------------------------------------- >>> RADIO --------------------------------------------------------------*/ satus.components.radio = function(component, skeleton) { - component.nativeControl = component.createChildElement('input', 'input'); + component.nativeControl = component.createChildElement('input', 'input'); - component.createChildElement('i'); + component.createChildElement('i'); - component.childrenContainer = component.createChildElement('div', 'content'); + component.childrenContainer = component.createChildElement('div', 'content'); - component.nativeControl.type = 'radio'; + component.nativeControl.type = 'radio'; - if (skeleton.group) { - component.storage.key = skeleton.group; - component.nativeControl.name = skeleton.group; - } + if (skeleton.group) { + component.storage.key = skeleton.group; + component.nativeControl.name = skeleton.group; + } - if (skeleton.value) { - component.nativeControl.value = skeleton.value; - } + if (skeleton.value) { + component.nativeControl.value = skeleton.value; + } - component.storage.value = satus.storage.get(component.storage.key); + component.storage.value = satus.storage.get(component.storage.key); - if (satus.isset(component.storage.value)) { - component.nativeControl.checked = component.storage.value === skeleton.value; - } else if (skeleton.checked) { - component.nativeControl.checked = true; - } + if (satus.isset(component.storage.value)) { + component.nativeControl.checked = component.storage.value === skeleton.value; + } else if (skeleton.checked) { + component.nativeControl.checked = true; + } - component.nativeControl.addEventListener('change', function() { - var component = this.parentNode; + component.nativeControl.addEventListener('change', function() { + var component = this.parentNode; - component.storage.value = this.value; - }); + component.storage.value = this.value; + }); }; /*-------------------------------------------------------------- >>> SLIDER --------------------------------------------------------------*/ satus.components.slider = function(component, skeleton) { - var content = component.createChildElement('div', 'content'), - children_container = content.createChildElement('div', 'children-container'), - text_input = content.createChildElement('input'), - track_container = component.createChildElement('div', 'track-container'), - input = track_container.createChildElement('input', 'input'); + var content = component.createChildElement('div', 'content'), + children_container = content.createChildElement('div', 'children-container'), + text_input = content.createChildElement('input'), + track_container = component.createChildElement('div', 'track-container'), + input = track_container.createChildElement('input', 'input'); - component.childrenContainer = children_container; - component.textInput = text_input; - component.input = input; - component.track = track_container.createChildElement('div', 'track'); + component.childrenContainer = children_container; + component.textInput = text_input; + component.input = input; + component.track = track_container.createChildElement('div', 'track'); - text_input.type = 'text'; + text_input.type = 'text'; - input.type = 'range'; - input.min = skeleton.min || 0; - input.max = skeleton.max || 1; - input.step = skeleton.step || 1; - input.value = component.storage.value || skeleton.value || 0; + input.type = 'range'; + input.min = skeleton.min || 0; + input.max = skeleton.max || 1; + input.step = skeleton.step || 1; + input.value = component.storage.value || skeleton.value || 0; - text_input.addEventListener('blur', function() { - var component = this.parentNode.parentNode; + text_input.addEventListener('blur', function() { + var component = this.parentNode.parentNode; - component.input.value = Number(this.value.replace(/[^0-9.]/g, '')); - component.storage.value = Number(component.input.value); + component.input.value = Number(this.value.replace(/[^0-9.]/g, '')); + component.storage.value = Number(component.input.value); - component.update(); - }); + component.update(); + }); - text_input.addEventListener('keydown', function(event) { - if (event.key === 'Enter') { - var component = this.parentNode.parentNode; + text_input.addEventListener('keydown', function(event) { + if (event.key === 'Enter') { + var component = this.parentNode.parentNode; - component.input.value = Number(this.value.replace(/[^0-9.]/g, '')); - component.storage.value = Number(component.input.value); + component.input.value = Number(this.value.replace(/[^0-9.]/g, '')); + component.storage.value = Number(component.input.value); - component.update(); - } - }); + component.update(); + } + }); - input.addEventListener('input', function() { - var component = this.parentNode.parentNode; + input.addEventListener('input', function() { + var component = this.parentNode.parentNode; - component.storage.value = Number(this.value); + component.storage.value = Number(this.value); - component.update(); - }); + component.update(); + }); - component.update = function() { - var input = this.input; + component.update = function() { + var input = this.input; - this.textInput.value = input.value; + this.textInput.value = input.value; - this.track.style.width = 100 / (input.max - input.min) * (input.value - input.min) + '%'; - }; + this.track.style.width = 100 / (input.max - input.min) * (input.value - input.min) + '%'; + }; - component.update(); + component.update(); - if (skeleton.on) { - for (var type in skeleton.on) { - input.addEventListener(type, function(event) { - this.parentNode.parentNode.dispatchEvent(new Event(event.type)); - }); - } - } + if (skeleton.on) { + for (var type in skeleton.on) { + input.addEventListener(type, function(event) { + this.parentNode.parentNode.dispatchEvent(new Event(event.type)); + }); + } + } }; /*-------------------------------------------------------------- >>> TABS --------------------------------------------------------------*/ satus.components.tabs = function(component, skeleton) { - var tabs = skeleton.items, - value = skeleton.value; + var tabs = skeleton.items, + value = skeleton.value; - if (satus.isFunction(tabs)) { - tabs = tabs(); - } + if (satus.isFunction(tabs)) { + tabs = tabs(); + } - if (satus.isFunction(value)) { - value = value(); - } + if (satus.isFunction(value)) { + value = value(); + } - for (var i = 0, l = tabs.length; i < l; i++) { - var tab = tabs[i], - button = component.createChildElement('button'); + for (var i = 0, l = tabs.length; i < l; i++) { + var tab = tabs[i], + button = component.createChildElement('button'); - button.addEventListener('click', function() { - var component = this.parentNode, - index = satus.elementIndex(this); + button.addEventListener('click', function() { + var component = this.parentNode, + index = satus.elementIndex(this); - component.value = index; + component.value = index; - component.style.setProperty('--satus-tabs-current', index); - }); + component.style.setProperty('--satus-tabs-current', index); + }); - satus.text(button, tab); - } + satus.text(button, tab); + } - component.style.setProperty('--satus-tabs-count', tabs.length); - component.style.setProperty('--satus-tabs-current', value || 0); + component.style.setProperty('--satus-tabs-count', tabs.length); + component.style.setProperty('--satus-tabs-current', value || 0); }; /*-------------------------------------------------------------- >>> SHORTCUT --------------------------------------------------------------*/ satus.components.shortcut = function(component, skeleton) { - component.childrenContainer = component.createChildElement('div', 'content'); - component.valueElement = component.createChildElement('div', 'value'); + component.childrenContainer = component.createChildElement('div', 'content'); + component.valueElement = component.createChildElement('div', 'value'); + + component.className = 'satus-button'; + + component.render = function(parent) { + var self = this, + parent = parent || self.primary, + children = parent.children; + + satus.empty(parent); + + function createElement(name) { + var element = document.createElement('div'); + + element.className = 'satus-shortcut__' + name; + + parent.appendChild(element); + + return element; + } + + if (this.data.alt) { + createElement('key').textContent = 'Alt'; + } + + if (this.data.ctrl) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + createElement('key').textContent = 'Ctrl'; + } + + if (this.data.shift) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + createElement('key').textContent = 'Shift'; + } + + for (var code in this.data.keys) { + var key = this.data.keys[code].key, + arrows = ['ArrowUp', 'ArrowRight', 'ArrowDown', 'ArrowLeft'], + index = arrows.indexOf(key); + + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } + + if (index !== -1) { + createElement('key').textContent = ['↑', '→', '↓', '←'][index]; + } else if (key === ' ') { + createElement('key').textContent = '␣'; + } else if (key) { + createElement('key').textContent = key.toUpperCase(); + } + } - component.className = 'satus-button'; + if (this.data.wheel) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } - component.render = function(parent) { - var self = this, - parent = parent || self.primary, - children = parent.children; + var mouse = createElement('mouse'), + div = document.createElement('div'); - satus.empty(parent); + mouse.appendChild(div); - function createElement(name) { - var element = document.createElement('div'); + mouse.className += ' ' + (this.data.wheel > 0); + } - element.className = 'satus-shortcut__' + name; + if (this.data.click) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } - parent.appendChild(element); + var mouse = createElement('mouse'), + div = document.createElement('div'); - return element; - } + mouse.appendChild(div); - if (this.data.alt) { - createElement('key').textContent = 'Alt'; - } + mouse.className += ' click'; + } - if (this.data.ctrl) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } + if (this.data.middle) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } - createElement('key').textContent = 'Ctrl'; - } + var mouse = createElement('mouse'), + div = document.createElement('div'); - if (this.data.shift) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } + mouse.appendChild(div); - createElement('key').textContent = 'Shift'; - } + mouse.className += ' middle'; + } - for (var code in this.data.keys) { - var key = this.data.keys[code].key, - arrows = ['ArrowUp', 'ArrowRight', 'ArrowDown', 'ArrowLeft'], - index = arrows.indexOf(key); + if (this.data.context) { + if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { + createElement('plus'); + } - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } + var mouse = createElement('mouse'), + div = document.createElement('div'); + + mouse.appendChild(div); + + mouse.className += ' context'; + } + }; + + component.keydown = function(event) { + event.preventDefault(); + event.stopPropagation(); + + component.data = { + alt: event.altKey, + ctrl: event.ctrlKey, + shift: event.shiftKey, + keys: {} + }; + + if (['control', 'alt', 'altgraph', 'shift'].indexOf(event.key.toLowerCase()) === -1) { + component.data.keys[event.keyCode] = { + code: event.code, + key: event.key + }; + } + + component.data.wheel = 0; + + component.render(); + + return false; + }; + + if (skeleton.wheel !== false) { + component.mousewheel = function(event) { + event.stopPropagation(); + + if ( + ( + component.data.wheel === 0 && + ( + Object.keys(component.data.keys).length === 0 && + component.data.alt === false && + component.data.ctrl === false && + component.data.shift === false + ) + ) || + component.data.wheel < 0 && event.deltaY > 0 || + component.data.wheel > 0 && event.deltaY < 0) { + component.data = { + alt: false, + ctrl: false, + shift: false, + keys: {} + }; + } - if (index !== -1) { - createElement('key').textContent = ['↑', '→', '↓', '←'][index]; - } else if (key === ' ') { - createElement('key').textContent = '␣'; - } else if (key) { - createElement('key').textContent = key.toUpperCase(); - } - } - - if (this.data.wheel) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } + component.data.wheel = event.deltaY < 0 ? -1 : 1; - var mouse = createElement('mouse'), - div = document.createElement('div'); + component.render(); + + return false; + }; + } + + component.addEventListener('click', function() { + satus.render({ + component: 'modal', + properties: { + parent: this + }, + on: { + close: function() { + window.removeEventListener('keydown', component.keydown); + window.removeEventListener('wheel', component.mousewheel); + } + }, + + primary: { + component: 'div', + class: 'satus-shortcut__primary', + on: { + render: function() { + component.primary = this; + + if (component.skeleton.mouseButtons === true) { + this.addEventListener('mousedown', function(event) { + if ( + component.data.click && event.button === 0 || + component.data.middle && event.button === 1 + ) { + component.data = { + alt: false, + ctrl: false, + shift: false, + keys: {} + }; + } + + component.data.click = false; + component.data.middle = false; + component.data.context = false; + + if (event.button === 0) { + component.data.click = true; + + component.render(); + } else if (event.button === 1) { + component.data.middle = true; + + component.render(); + } + }); + + this.addEventListener('contextmenu', function(event) { + event.preventDefault(); + event.stopPropagation(); + + if (component.data.context) { + component.data = { + alt: false, + ctrl: false, + shift: false, + keys: {} + }; + } + + component.data.context = true; + component.data.middle = false; + component.data.click = false; + + component.render(); + + return false; + }); + } + + component.render(); + } + } + }, + actions: { + component: 'section', + variant: 'actions', + + reset: { + component: 'button', + text: 'reset', + on: { + click: function() { + var component = this.parentNode.parentNode.parentNode.parent; + + component.data = component.skeleton.value || {}; + + component.render(component.valueElement); + + satus.storage.remove(component.storage); + + this.parentNode.parentNode.parentNode.close(); + + window.removeEventListener('keydown', component.keydown); + window.removeEventListener('wheel', component.mousewheel); + } + } + }, + cancel: { + component: 'button', + text: 'cancel', + on: { + click: function() { + component.data = satus.storage.get(component.storage) || component.skeleton.value || {}; + + component.render(component.valueElement); + + this.parentNode.parentNode.parentNode.close(); + + window.removeEventListener('keydown', component.keydown); + window.removeEventListener('wheel', component.mousewheel); + } + } + }, + save: { + component: 'button', + text: 'save', + on: { + click: function() { + component.storage.value = component.data; + + component.render(component.valueElement); + + this.parentNode.parentNode.parentNode.close(); + + window.removeEventListener('keydown', component.keydown); + window.removeEventListener('wheel', component.mousewheel); + } + } + } + } + }, this.baseProvider); - mouse.appendChild(div); + window.addEventListener('keydown', this.keydown); + window.addEventListener('wheel', this.mousewheel); + }); - mouse.className += ' ' + (this.data.wheel > 0); - } + component.data = component.storage.value || { + alt: false, + ctrl: false, + shift: false, + keys: {}, + wheel: 0 + }; - if (this.data.click) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - var mouse = createElement('mouse'), - div = document.createElement('div'); - - mouse.appendChild(div); - - mouse.className += ' click'; - } - - if (this.data.middle) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - var mouse = createElement('mouse'), - div = document.createElement('div'); - - mouse.appendChild(div); - - mouse.className += ' middle'; - } - - if (this.data.context) { - if (children.length && children[children.length - 1].className.indexOf('plus') === -1) { - createElement('plus'); - } - - var mouse = createElement('mouse'), - div = document.createElement('div'); - - mouse.appendChild(div); - - mouse.className += ' context'; - } - }; - - component.keydown = function(event) { - event.preventDefault(); - event.stopPropagation(); - - component.data = { - alt: event.altKey, - ctrl: event.ctrlKey, - shift: event.shiftKey, - keys: {} - }; - - if (['control', 'alt', 'altgraph', 'shift'].indexOf(event.key.toLowerCase()) === -1) { - component.data.keys[event.keyCode] = { - code: event.code, - key: event.key - }; - } - - component.data.wheel = 0; - - component.render(); - - return false; - }; - - if (skeleton.wheel !== false) { - component.mousewheel = function(event) { - event.stopPropagation(); - - if ( - ( - component.data.wheel === 0 && - ( - Object.keys(component.data.keys).length === 0 && - component.data.alt === false && - component.data.ctrl === false && - component.data.shift === false - ) - ) || - component.data.wheel < 0 && event.deltaY > 0 || - component.data.wheel > 0 && event.deltaY < 0) { - component.data = { - alt: false, - ctrl: false, - shift: false, - keys: {} - }; - } - - component.data.wheel = event.deltaY < 0 ? -1 : 1; - - component.render(); - - return false; - }; - } - - component.addEventListener('click', function() { - satus.render({ - component: 'modal', - properties: { - parent: this - }, - on: { - close: function() { - window.removeEventListener('keydown', component.keydown); - window.removeEventListener('wheel', component.mousewheel); - } - }, - - primary: { - component: 'div', - class: 'satus-shortcut__primary', - on: { - render: function() { - component.primary = this; - - if (component.skeleton.mouseButtons === true) { - this.addEventListener('mousedown', function(event) { - if ( - component.data.click && event.button === 0 || - component.data.middle && event.button === 1 - ) { - component.data = { - alt: false, - ctrl: false, - shift: false, - keys: {} - }; - } - - component.data.click = false; - component.data.middle = false; - component.data.context = false; - - if (event.button === 0) { - component.data.click = true; - - component.render(); - } else if (event.button === 1) { - component.data.middle = true; - - component.render(); - } - }); - - this.addEventListener('contextmenu', function(event) { - event.preventDefault(); - event.stopPropagation(); - - if (component.data.context) { - component.data = { - alt: false, - ctrl: false, - shift: false, - keys: {} - }; - } - - component.data.context = true; - component.data.middle = false; - component.data.click = false; - - component.render(); - - return false; - }); - } - - component.render(); - } - } - }, - actions: { - component: 'section', - variant: 'actions', - - reset: { - component: 'button', - text: 'reset', - on: { - click: function() { - var component = this.parentNode.parentNode.parentNode.parent; - - component.data = component.skeleton.value || {}; - - component.render(component.valueElement); - - satus.storage.remove(component.storage); - - this.parentNode.parentNode.parentNode.close(); - - window.removeEventListener('keydown', component.keydown); - window.removeEventListener('wheel', component.mousewheel); - } - } - }, - cancel: { - component: 'button', - text: 'cancel', - on: { - click: function() { - component.data = satus.storage.get(component.storage) || component.skeleton.value || {}; - - component.render(component.valueElement); - - this.parentNode.parentNode.parentNode.close(); - - window.removeEventListener('keydown', component.keydown); - window.removeEventListener('wheel', component.mousewheel); - } - } - }, - save: { - component: 'button', - text: 'save', - on: { - click: function() { - component.storage.value = component.data; - - component.render(component.valueElement); - - this.parentNode.parentNode.parentNode.close(); - - window.removeEventListener('keydown', component.keydown); - window.removeEventListener('wheel', component.mousewheel); - } - } - } - } - }, this.baseProvider); - - window.addEventListener('keydown', this.keydown); - window.addEventListener('wheel', this.mousewheel); - }); - - component.data = component.storage.value || { - alt: false, - ctrl: false, - shift: false, - keys: {}, - wheel: 0 - }; - - component.render(component.valueElement); + component.render(component.valueElement); }; /*-------------------------------------------------------------- >>> CHECKBOX --------------------------------------------------------------*/ satus.components.checkbox = function(component, skeleton) { - component.input = component.createChildElement('input'); - component.input.type = 'checkbox'; + component.input = component.createChildElement('input'); + component.input.type = 'checkbox'; - component.checkmark = component.createChildElement('div', 'checkmark'); + component.checkmark = component.createChildElement('div', 'checkmark'); - component.childrenContainer = component.createChildElement('div', 'content'); + component.childrenContainer = component.createChildElement('div', 'content'); - component.dataset.value = component.storage.value || skeleton.value; - component.input.checked = component.storage.value || skeleton.value; + component.dataset.value = component.storage.value || skeleton.value; + component.input.checked = component.storage.value || skeleton.value; - component.input.addEventListener('change', function() { - var component = this.parentNode; + component.input.addEventListener('change', function() { + var component = this.parentNode; - if (this.checked === true) { - component.storage.value = true; - component.dataset.value = 'true'; - } else { - component.storage.value = false; - component.dataset.value = 'false'; - } - }); + if (this.checked === true) { + component.storage.value = true; + component.dataset.value = 'true'; + } else { + component.storage.value = false; + component.dataset.value = 'false'; + } + }); }; /*-------------------------------------------------------------- >>> SWITCH --------------------------------------------------------------*/ satus.components.switch = function(component, skeleton) { - var value = satus.isset(component.storage.value) ? component.storage.value : skeleton.value; + var value = satus.isset(component.storage.value) ? component.storage.value : skeleton.value; - if (satus.isFunction(value)) { - value = value(); - } + if (satus.isFunction(value)) { + value = value(); + } - component.childrenContainer = component.createChildElement('div', 'content'); + component.childrenContainer = component.createChildElement('div', 'content'); - component.createChildElement('i'); + component.createChildElement('i'); - component.dataset.value = value; + component.dataset.value = value; component.flip = satus.components.switch.flip; // 'custom' disables default onclick, user provided function should handle this functionality manually @@ -2469,149 +2471,149 @@ satus.components.switch.flip = function(val) { --------------------------------------------------------------*/ satus.events.on('render', function(component) { - if (component.skeleton.contextMenu) { - component.addEventListener('contextmenu', function(event) { - var base = this.baseProvider, - base_rect = base.getBoundingClientRect(), - x = event.clientX - base_rect.left, - y = event.clientY - base_rect.top, - modal = satus.render({ - component: 'modal', - variant: 'contextmenu', - parentSkeleton: this.skeleton, - baseProvider: base - }, base); - - if (base_rect.width - x < 200) { - x = base_rect.width - x; - - if (x + 200 > base_rect.width) { - x = 0; - } - - modal.childrenContainer.style.right = x + 'px'; - } else { - modal.childrenContainer.style.left = x + 'px'; - } - - modal.childrenContainer.style.top = y + 'px'; - - this.skeleton.contextMenu.parentSkeleton = this.skeleton; - - satus.render(this.skeleton.contextMenu, modal.childrenContainer); - - event.preventDefault(); - event.stopPropagation(); - - return false; - }); - } + if (component.skeleton.contextMenu) { + component.addEventListener('contextmenu', function(event) { + var base = this.baseProvider, + base_rect = base.getBoundingClientRect(), + x = event.clientX - base_rect.left, + y = event.clientY - base_rect.top, + modal = satus.render({ + component: 'modal', + variant: 'contextmenu', + parentSkeleton: this.skeleton, + baseProvider: base + }, base); + + if (base_rect.width - x < 200) { + x = base_rect.width - x; + + if (x + 200 > base_rect.width) { + x = 0; + } + + modal.childrenContainer.style.right = x + 'px'; + } else { + modal.childrenContainer.style.left = x + 'px'; + } + + modal.childrenContainer.style.top = y + 'px'; + + this.skeleton.contextMenu.parentSkeleton = this.skeleton; + + satus.render(this.skeleton.contextMenu, modal.childrenContainer); + + event.preventDefault(); + event.stopPropagation(); + + return false; + }); + } }); /*-------------------------------------------------------------- >>> SORTABLE --------------------------------------------------------------*/ satus.events.on('render', function(component) { - if (component.skeleton.sortable === true) { - component.addEventListener('mousedown', function(event) { - if (event.button !== 0) { - return false; - } - - var component = this, - rect = this.getBoundingClientRect(), - x = event.clientX, - y = event.clientY, - offset_x = event.clientX - rect.left, - offset_y = event.clientY - rect.top, - ghost = satus.clone(this), - children = this.parentNode.children, - appended = false; - - ghost.classList.add('satus-sortable__ghost'); - - function mousemove(event) { - if (appended === false && (Math.abs(event.clientX - x) > 4 || Math.abs(event.clientY - y) > 4)) { - appended = true; + if (component.skeleton.sortable === true) { + component.addEventListener('mousedown', function(event) { + if (event.button !== 0) { + return false; + } - component.classList.add('satus-sortable__chosen'); + var component = this, + rect = this.getBoundingClientRect(), + x = event.clientX, + y = event.clientY, + offset_x = event.clientX - rect.left, + offset_y = event.clientY - rect.top, + ghost = satus.clone(this), + children = this.parentNode.children, + appended = false; - component.baseProvider.appendChild(ghost); - } + ghost.classList.add('satus-sortable__ghost'); - ghost.style.transform = 'translate(' + (event.clientX - offset_x) + 'px, ' + (event.clientY - offset_y) + 'px)'; - } + function mousemove(event) { + if (appended === false && (Math.abs(event.clientX - x) > 4 || Math.abs(event.clientY - y) > 4)) { + appended = true; - function mouseup(event) { - component.classList.remove('satus-sortable__chosen'); - ghost.remove(); + component.classList.add('satus-sortable__chosen'); - window.removeEventListener('mousemove', mousemove, true); - window.removeEventListener('mouseup', mouseup, true); + component.baseProvider.appendChild(ghost); + } - for (var i = 0, l = children.length; i < l; i++) { - var child = children[i]; + ghost.style.transform = 'translate(' + (event.clientX - offset_x) + 'px, ' + (event.clientY - offset_y) + 'px)'; + } - if (child !== component) { - child.removeEventListener('mouseover', siblingMouseOver); - } - } + function mouseup(event) { + component.classList.remove('satus-sortable__chosen'); + ghost.remove(); - component.dispatchEvent(new CustomEvent('sort')); + window.removeEventListener('mousemove', mousemove, true); + window.removeEventListener('mouseup', mouseup, true); - event.stopPropagation(); + for (var i = 0, l = children.length; i < l; i++) { + var child = children[i]; - return false; - } + if (child !== component) { + child.removeEventListener('mouseover', siblingMouseOver); + } + } - window.addEventListener('mousemove', mousemove, { - passive: true, - capture: true - }); + component.dispatchEvent(new CustomEvent('sort')); - window.addEventListener('mouseup', mouseup, { - passive: true, - capture: true - }); + event.stopPropagation(); - function siblingMouseOver(event) { - var parent = this.parentNode, - y = event.layerY / (this.offsetHeight / 100); + return false; + } - if (y < 50 && this.previousSibling !== component || y >= 50 && this.nextSibling === component) { - parent.insertBefore(component, this); - } else { - parent.insertBefore(component, this.nextSibling); - } - } + window.addEventListener('mousemove', mousemove, { + passive: true, + capture: true + }); + + window.addEventListener('mouseup', mouseup, { + passive: true, + capture: true + }); + + function siblingMouseOver(event) { + var parent = this.parentNode, + y = event.layerY / (this.offsetHeight / 100); + + if (y < 50 && this.previousSibling !== component || y >= 50 && this.nextSibling === component) { + parent.insertBefore(component, this); + } else { + parent.insertBefore(component, this.nextSibling); + } + } - for (var i = 0, l = children.length; i < l; i++) { - var child = children[i]; + for (var i = 0, l = children.length; i < l; i++) { + var child = children[i]; - if (child !== component) { - child.addEventListener('mouseover', siblingMouseOver); - } - } + if (child !== component) { + child.addEventListener('mouseover', siblingMouseOver); + } + } - event.stopPropagation(); - event.preventDefault(); + event.stopPropagation(); + event.preventDefault(); - return false; - }); - } + return false; + }); + } }); /*-------------------------------------------------------------- >>> MANIFEST --------------------------------------------------------------*/ satus.manifest = function() { - var object = {}; + var object = {}; - if (this.isset('chrome.runtime.getManifest')) { - object = chrome.runtime.getManifest(); - } + if (this.isset('chrome.runtime.getManifest')) { + object = chrome.runtime.getManifest(); + } - return object; + return object; }; /*-------------------------------------------------------------- >>> COLOR: @@ -2630,15 +2632,15 @@ satus.color = {}; --------------------------------------------------------------*/ satus.color.stringToArray = function(string) { - var match = string.match(/[0-9.]+/g); + var match = string.match(/[0-9.]+/g); - if (match) { - for (var i = 0, l = match.length; i < l; i++) { - match[i] = parseFloat(match[i]); - } - } + if (match) { + for (var i = 0, l = match.length; i < l; i++) { + match[i] = parseFloat(match[i]); + } + } - return match; + return match; }; @@ -2647,43 +2649,43 @@ satus.color.stringToArray = function(string) { --------------------------------------------------------------*/ satus.color.rgbToHsl = function(array) { - var r = array[0] / 255, - g = array[1] / 255, - b = array[2] / 255, - min = Math.min(r, g, b), - max = Math.max(r, g, b), - h = 0, - s = 0, - l = (min + max) / 2; - - if (min === max) { - h = 0; - s = 0; - } else { - var delta = max - min; - - s = l <= 0.5 ? delta / (max + min) : delta / (2 - max - min); - - if (max === r) { - h = (g - b) / delta + (g < b ? 6 : 0); - } else if (max === g) { - h = (b - r) / delta + 2; - } else if (max === b) { - h = (r - g) / delta + 4; - } - - h /= 6; - } + var r = array[0] / 255, + g = array[1] / 255, + b = array[2] / 255, + min = Math.min(r, g, b), + max = Math.max(r, g, b), + h = 0, + s = 0, + l = (min + max) / 2; + + if (min === max) { + h = 0; + s = 0; + } else { + var delta = max - min; + + s = l <= 0.5 ? delta / (max + min) : delta / (2 - max - min); + + if (max === r) { + h = (g - b) / delta + (g < b ? 6 : 0); + } else if (max === g) { + h = (b - r) / delta + 2; + } else if (max === b) { + h = (r - g) / delta + 4; + } + + h /= 6; + } - h *= 360; - s *= 100; - l *= 100; + h *= 360; + s *= 100; + l *= 100; - if (array.length === 3) { - return [h, s, l]; - } else { - return [h, s, l, array[3]]; - } + if (array.length === 3) { + return [h, s, l]; + } else { + return [h, s, l, array[3]]; + } }; @@ -2692,27 +2694,27 @@ satus.color.rgbToHsl = function(array) { --------------------------------------------------------------*/ satus.color.hueToRgb = function(array) { - var t1 = array[0], - t2 = array[1], - hue = array[2]; + var t1 = array[0], + t2 = array[1], + hue = array[2]; - if (hue < 0) { - hue += 6; - } + if (hue < 0) { + hue += 6; + } - if (hue >= 6) { - hue -= 6; - } + if (hue >= 6) { + hue -= 6; + } - if (hue < 1) { - return (t2 - t1) * hue + t1; - } else if (hue < 3) { - return t2; - } else if (hue < 4) { - return (t2 - t1) * (4 - hue) + t1; - } else { - return t1; - } + if (hue < 1) { + return (t2 - t1) * hue + t1; + } else if (hue < 3) { + return t2; + } else if (hue < 4) { + return (t2 - t1) * (4 - hue) + t1; + } else { + return t1; + } }; @@ -2721,63 +2723,63 @@ satus.color.hueToRgb = function(array) { --------------------------------------------------------------*/ satus.color.hslToRgb = function(array) { - var h = array[0] / 360, - s = array[1] / 100, - l = array[2] / 100, - r, g, b; - - if (s == 0) { - r = g = b = l; - } else { - var hue2rgb = function(p, q, t) { - if (t < 0) t += 1; - if (t > 1) t -= 1; - if (t < 1 / 6) return p + (q - p) * 6 * t; - if (t < 1 / 2) return q; - if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; - return p; - }; - - var q = l < 0.5 ? l * (1 + s) : l + s - l * s; - var p = 2 * l - q; - r = hue2rgb(p, q, h + 1 / 3); - g = hue2rgb(p, q, h); - b = hue2rgb(p, q, h - 1 / 3); - } - - return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)]; + var h = array[0] / 360, + s = array[1] / 100, + l = array[2] / 100, + r, g, b; + + if (s == 0) { + r = g = b = l; + } else { + var hue2rgb = function(p, q, t) { + if (t < 0) t += 1; + if (t > 1) t -= 1; + if (t < 1 / 6) return p + (q - p) * 6 * t; + if (t < 1 / 2) return q; + if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; + return p; + }; + + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hue2rgb(p, q, h + 1 / 3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1 / 3); + } + + return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)]; }; /*-------------------------------------------------------------- >>> USER ---------------------------------------------------------------- # OS - # Name - # Bitness + # Name + # Bitness # Browser - # Name - # Version - # Platform - # Manifest - # Languages - # Cookies - # Flash - # Java - # Audio - # Video - # WebGL + # Name + # Version + # Platform + # Manifest + # Languages + # Cookies + # Flash + # Java + # Audio + # Video + # WebGL # Device - # Screen - # RAM - # GPU - # Cores - # Touch - # Connection + # Screen + # RAM + # GPU + # Cores + # Touch + # Connection --------------------------------------------------------------*/ satus.user = { - browser: {}, - device: {}, - os: {} + browser: {}, + device: {}, + os: {} }; /*-------------------------------------------------------------- @@ -2789,39 +2791,39 @@ satus.user = { --------------------------------------------------------------*/ satus.user.os.name = function() { - var app_version = navigator.appVersion; - - if (app_version.indexOf('Win') !== -1) { - if (app_version.match(/(Windows 10.0|Windows NT 10.0)/)) { - return 'Windows 10'; - } else if (app_version.match(/(Windows 8.1|Windows NT 6.3)/)) { - return 'Windows 8.1'; - } else if (app_version.match(/(Windows 8|Windows NT 6.2)/)) { - return 'Windows 8'; - } else if (app_version.match(/(Windows 7|Windows NT 6.1)/)) { - return 'Windows 7'; - } else if (app_version.match(/(Windows NT 6.0)/)) { - return 'Windows Vista'; - } else if (app_version.match(/(Windows NT 5.1|Windows XP)/)) { - return 'Windows XP'; - } else { - return 'Windows'; - } - } else if (app_version.indexOf('(iPhone|iPad|iPod)') !== -1) { - return 'iOS'; - } else if (app_version.indexOf('Mac') !== -1) { - return 'macOS'; - } else if (app_version.indexOf('Android') !== -1) { - return 'Android'; - } else if (app_version.indexOf('OpenBSD') !== -1) { - return 'OpenBSD'; - } else if (app_version.indexOf('SunOS') !== -1) { - return 'SunOS'; - } else if (app_version.indexOf('Linux') !== -1) { - return 'Linux'; - } else if (app_version.indexOf('X11') !== -1) { - return 'UNIX'; - } + var app_version = navigator.appVersion; + + if (app_version.indexOf('Win') !== -1) { + if (app_version.match(/(Windows 10.0|Windows NT 10.0)/)) { + return 'Windows 10'; + } else if (app_version.match(/(Windows 8.1|Windows NT 6.3)/)) { + return 'Windows 8.1'; + } else if (app_version.match(/(Windows 8|Windows NT 6.2)/)) { + return 'Windows 8'; + } else if (app_version.match(/(Windows 7|Windows NT 6.1)/)) { + return 'Windows 7'; + } else if (app_version.match(/(Windows NT 6.0)/)) { + return 'Windows Vista'; + } else if (app_version.match(/(Windows NT 5.1|Windows XP)/)) { + return 'Windows XP'; + } else { + return 'Windows'; + } + } else if (app_version.indexOf('(iPhone|iPad|iPod)') !== -1) { + return 'iOS'; + } else if (app_version.indexOf('Mac') !== -1) { + return 'macOS'; + } else if (app_version.indexOf('Android') !== -1) { + return 'Android'; + } else if (app_version.indexOf('OpenBSD') !== -1) { + return 'OpenBSD'; + } else if (app_version.indexOf('SunOS') !== -1) { + return 'SunOS'; + } else if (app_version.indexOf('Linux') !== -1) { + return 'Linux'; + } else if (app_version.indexOf('X11') !== -1) { + return 'UNIX'; + } }; @@ -2830,11 +2832,11 @@ satus.user.os.name = function() { --------------------------------------------------------------*/ satus.user.os.bitness = function() { - if (navigator.appVersion.match(/(Win64|x64|x86_64|WOW64)/)) { - return '64-bit'; - } else { - return '32-bit'; - } + if (navigator.appVersion.match(/(Win64|x64|x86_64|WOW64)/)) { + return '64-bit'; + } else { + return '32-bit'; + } }; @@ -2847,24 +2849,24 @@ satus.user.os.bitness = function() { --------------------------------------------------------------*/ satus.user.browser.name = function() { - var user_agent = navigator.userAgent; - if (!!navigator.brave) { - return 'Brave'; - } else if (user_agent.indexOf("Opera") != -1 || user_agent.indexOf('OPR') != -1) { - return 'Opera'; - } else if (user_agent.indexOf('Vivaldi') !== -1) { - return 'Vivaldi'; - } else if (user_agent.indexOf('Edge') !== -1) { - return 'Edge'; - } else if (user_agent.indexOf('Chrome') !== -1) { - return 'Chrome'; - } else if (user_agent.indexOf('Safari') !== -1) { - return 'Safari'; - } else if (user_agent.indexOf('Firefox') !== -1) { - return 'Firefox'; - } else if (user_agent.indexOf('MSIE') !== -1) { - return 'IE'; - } + var user_agent = navigator.userAgent; + if (!!navigator.brave) { + return 'Brave'; + } else if (user_agent.indexOf("Opera") != -1 || user_agent.indexOf('OPR') != -1) { + return 'Opera'; + } else if (user_agent.indexOf('Vivaldi') !== -1) { + return 'Vivaldi'; + } else if (user_agent.indexOf('Edge') !== -1) { + return 'Edge'; + } else if (user_agent.indexOf('Chrome') !== -1) { + return 'Chrome'; + } else if (user_agent.indexOf('Safari') !== -1) { + return 'Safari'; + } else if (user_agent.indexOf('Firefox') !== -1) { + return 'Firefox'; + } else if (user_agent.indexOf('MSIE') !== -1) { + return 'IE'; + } }; @@ -2873,10 +2875,10 @@ satus.user.browser.name = function() { --------------------------------------------------------------*/ satus.user.browser.version = function() { - var browser_name = satus.user.browser.name(), - browser_version = navigator.userAgent.match(new RegExp(browser_name + '/([0-9.]+)')); + var browser_name = satus.user.browser.name(), + browser_version = navigator.userAgent.match(new RegExp(browser_name + '/([0-9.]+)')); - return browser_version[1]; + return browser_version[1]; }; @@ -2885,7 +2887,7 @@ satus.user.browser.version = function() { --------------------------------------------------------------*/ satus.user.browser.platform = function() { - return navigator.platform; + return navigator.platform; }; @@ -2894,7 +2896,7 @@ satus.user.browser.platform = function() { --------------------------------------------------------------*/ satus.user.browser.manifest = function() { - return chrome.runtime.getManifest() || {}; + return chrome.runtime.getManifest() || {}; }; @@ -2903,7 +2905,7 @@ satus.user.browser.manifest = function() { --------------------------------------------------------------*/ satus.user.browser.languages = function() { - return navigator.languages; + return navigator.languages; }; @@ -2912,17 +2914,17 @@ satus.user.browser.languages = function() { --------------------------------------------------------------*/ satus.user.browser.cookies = function() { - if (document.cookie) { - var random_cookie = 'nX6cMXKWsc'; + if (document.cookie) { + var random_cookie = 'nX6cMXKWsc'; - document.cookie = random_cookie; + document.cookie = random_cookie; - if (document.cookie.indexOf(random_cookie) !== -1) { - return true; - } - } + if (document.cookie.indexOf(random_cookie) !== -1) { + return true; + } + } - return false; + return false; }; @@ -2931,17 +2933,17 @@ satus.user.browser.cookies = function() { --------------------------------------------------------------*/ satus.user.browser.flash = function() { - try { - if (new ActiveXObject('ShockwaveFlash.ShockwaveFlash')) { - return true; - } - } catch (error) { - if (navigator.mimeTypes['application/x-shockwave-flash']) { - return true; - } - } + try { + if (new ActiveXObject('ShockwaveFlash.ShockwaveFlash')) { + return true; + } + } catch (error) { + if (navigator.mimeTypes['application/x-shockwave-flash']) { + return true; + } + } - return false; + return false; }; @@ -2950,11 +2952,11 @@ satus.user.browser.flash = function() { --------------------------------------------------------------*/ satus.user.browser.java = function() { - if (satus.isFunction(navigator.javaEnabled) && navigator.javaEnabled()) { - return true; - } else { - return false; - } + if (satus.isFunction(navigator.javaEnabled) && navigator.javaEnabled()) { + return true; + } else { + return false; + } }; @@ -2963,25 +2965,25 @@ satus.user.browser.java = function() { --------------------------------------------------------------*/ satus.user.browser.audio = function() { - var audio = document.createElement('audio'), - types = { - mp3: 'audio/mpeg', - mp4: 'audio/mp4', - aif: 'audio/x-aiff' - }, - result = []; - - if (satus.isFunction(audio.canPlayType)) { - for (var key in types) { - var can_play_type = audio.canPlayType(types[key]); - - if (can_play_type !== '') { - result.push(key); - } - } - } + var audio = document.createElement('audio'), + types = { + mp3: 'audio/mpeg', + mp4: 'audio/mp4', + aif: 'audio/x-aiff' + }, + result = []; + + if (satus.isFunction(audio.canPlayType)) { + for (var key in types) { + var can_play_type = audio.canPlayType(types[key]); + + if (can_play_type !== '') { + result.push(key); + } + } + } - return result; + return result; }; @@ -2990,27 +2992,27 @@ satus.user.browser.audio = function() { --------------------------------------------------------------*/ satus.user.browser.video = function() { - var video = document.createElement('video'), - types = { - ogg: 'video/ogg; codecs="theora"', - h264: 'video/mp4; codecs="avc1.42E01E"', - webm: 'video/webm; codecs="vp8, vorbis"', - vp9: 'video/webm; codecs="vp9"', - hls: 'application/x-mpegURL; codecs="avc1.42E01E"' - }, - result = []; - - if (satus.isFunction(video.canPlayType)) { - for (var key in types) { - var can_play_type = video.canPlayType(types[key]); - - if (can_play_type !== '') { - result.push(key); - } - } - } + var video = document.createElement('video'), + types = { + ogg: 'video/ogg; codecs="theora"', + h264: 'video/mp4; codecs="avc1.42E01E"', + webm: 'video/webm; codecs="vp8, vorbis"', + vp9: 'video/webm; codecs="vp9"', + hls: 'application/x-mpegURL; codecs="avc1.42E01E"' + }, + result = []; + + if (satus.isFunction(video.canPlayType)) { + for (var key in types) { + var can_play_type = video.canPlayType(types[key]); + + if (can_play_type !== '') { + result.push(key); + } + } + } - return result; + return result; }; @@ -3019,10 +3021,10 @@ satus.user.browser.video = function() { --------------------------------------------------------------*/ satus.user.browser.webgl = function() { - var cvs = document.createElement('canvas'), - ctx = cvs.getContext('webgl'); + var cvs = document.createElement('canvas'), + ctx = cvs.getContext('webgl'); - return ctx && ctx instanceof WebGLRenderingContext; + return ctx && ctx instanceof WebGLRenderingContext; }; @@ -3035,9 +3037,9 @@ satus.user.browser.webgl = function() { --------------------------------------------------------------*/ satus.user.device.screen = function() { - if (screen) { - return screen.width + 'x' + screen.height; - } + if (screen) { + return screen.width + 'x' + screen.height; + } }; @@ -3046,9 +3048,9 @@ satus.user.device.screen = function() { --------------------------------------------------------------*/ satus.user.device.ram = function() { - if ('deviceMemory' in navigator) { - return navigator.deviceMemory + ' GB'; - } + if ('deviceMemory' in navigator) { + return navigator.deviceMemory + ' GB'; + } }; @@ -3057,21 +3059,21 @@ satus.user.device.ram = function() { --------------------------------------------------------------*/ satus.user.device.gpu = function() { - var cvs = document.createElement('canvas'), - ctx = cvs.getContext('webgl'); - - if ( - ctx && - ctx instanceof WebGLRenderingContext && - 'getParameter' in ctx && - 'getExtension' in ctx - ) { - var info = ctx.getExtension('WEBGL_debug_renderer_info'); - - if (info) { - return ctx.getParameter(info.UNMASKED_RENDERER_WEBGL); - } - } + var cvs = document.createElement('canvas'), + ctx = cvs.getContext('webgl'); + + if ( + ctx && + ctx instanceof WebGLRenderingContext && + 'getParameter' in ctx && + 'getExtension' in ctx + ) { + var info = ctx.getExtension('WEBGL_debug_renderer_info'); + + if (info) { + return ctx.getParameter(info.UNMASKED_RENDERER_WEBGL); + } + } }; @@ -3080,7 +3082,7 @@ satus.user.device.gpu = function() { --------------------------------------------------------------*/ satus.user.device.cores = function() { - return navigator.deviceConcurrency || navigator.hardwareConcurrency; + return navigator.deviceConcurrency || navigator.hardwareConcurrency; }; @@ -3089,19 +3091,19 @@ satus.user.device.cores = function() { --------------------------------------------------------------*/ satus.user.device.touch = function() { - var result = {}; - - if ( - window.hasOwnProperty('ontouchstart') || - window.DocumentTouch && document instanceof window.DocumentTouch || - navigator.maxTouchPoints > 0 || - window.navigator.msMaxTouchPoints > 0 - ) { - result.touch = true; - result.maxTouchPoints = navigator.maxTouchPoints; - } + var result = {}; + + if ( + window.hasOwnProperty('ontouchstart') || + window.DocumentTouch && document instanceof window.DocumentTouch || + navigator.maxTouchPoints > 0 || + window.navigator.msMaxTouchPoints > 0 + ) { + result.touch = true; + result.maxTouchPoints = navigator.maxTouchPoints; + } - return result; + return result; }; @@ -3110,68 +3112,68 @@ satus.user.device.touch = function() { --------------------------------------------------------------*/ satus.user.device.connection = function() { - var result = {}; + var result = {}; - if (typeof navigator.connection === 'object') { - result.type = navigator.connection.effectiveType || null; + if (typeof navigator.connection === 'object') { + result.type = navigator.connection.effectiveType || null; - if (navigator.connection.downlink) { - result.speed = navigator.connection.downlink + ' Mbps'; - } - } + if (navigator.connection.downlink) { + result.speed = navigator.connection.downlink + ' Mbps'; + } + } - return result; + return result; }; /*-------------------------------------------------------------- # SEARCH --------------------------------------------------------------*/ satus.search = function(query, object, callback) { - var elements = ['switch', 'select', 'slider', 'shortcut', 'radio', 'color-picker'], - threads = 0, - results = {}, - excluded = [ - 'baseProvider', - 'layersProvider', - 'parentObject', - 'parentSkeleton', - 'namespaceURI' - ]; - - query = query.toLowerCase(); - - function parse(items, parent) { - threads++; - - for (var key in items) { - if (excluded.indexOf(key) === -1) { - var item = items[key]; - - if (item.component) { - //console.log(key, item.component); - - if (elements.indexOf(item.component) !== -1 && key.indexOf(query) !== -1) { - results[key] = Object.assign({}, item); - } - } - - if ( - satus.isObject(item) && - !satus.isArray(item) && - !satus.isElement(item) && - !satus.isFunction(item) - ) { - parse(item, items); - } - } - } - - threads--; - - if (threads === 0) { - callback(results); - } - } - - parse(object); + var elements = ['switch', 'select', 'slider', 'shortcut', 'radio', 'color-picker'], + threads = 0, + results = {}, + excluded = [ + 'baseProvider', + 'layersProvider', + 'parentObject', + 'parentSkeleton', + 'namespaceURI' + ]; + + query = query.toLowerCase(); + + function parse(items, parent) { + threads++; + + for (var key in items) { + if (excluded.indexOf(key) === -1) { + var item = items[key]; + + if (item.component) { + //console.log(key, item.component); + + if (elements.indexOf(item.component) !== -1 && key.indexOf(query) !== -1) { + results[key] = Object.assign({}, item); + } + } + + if ( + satus.isObject(item) && + !satus.isArray(item) && + !satus.isElement(item) && + !satus.isFunction(item) + ) { + parse(item, items); + } + } + } + + threads--; + + if (threads === 0) { + callback(results); + } + } + + parse(object); }; From 1eb52743ba49b5713c1b146300230b87098f159f Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Wed, 17 May 2023 04:11:19 +0200 Subject: [PATCH 0987/1224] Update player.js player_quality reflects 1080p resolution limit when player_h264 is enabled --- menu/skeleton-parts/player.js | 49 ++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 15 deletions(-) diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index cd85e0ac8..89db90c2e 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -699,6 +699,7 @@ extension.skeleton.main.layers.section.player.on.click = { player_quality: { component: 'select', text: 'quality', + id: 'player_quality', options: [{ text: 'auto', value: 'auto' @@ -732,7 +733,26 @@ extension.skeleton.main.layers.section.player.on.click = { }, { text: '4320p', value: 'highres' - }] + }], + on: { + render: function () { + if (satus.storage.get('player_h264')) { + if (this.childNodes[2].selectedIndex >6) { + this.childNodes[1].style = 'color: red!important; font-weight: bold;'; + this.childNodes[1].textContent = '1080p'; + } + for (let index =7; index <= 10; index++) { + this.childNodes[2].childNodes[index].style = 'color: red!important; font-weight: bold;'; + } + } else { + this.childNodes[1].style = ''; + this.childNodes[1].textContent = this.childNodes[2].options[this.childNodes[2].selectedIndex].text; + for (let index =7; index <= 10; index++) { + this.childNodes[2].childNodes[index].style = ''; + } + } + } + } }, player_codecs: { component: 'button', @@ -838,14 +858,13 @@ extension.skeleton.main.layers.section.player.on.click = { on: { render: function () { var codecs = (satus.storage.get('block_h264') ? '' : 'h.264 ') + (satus.storage.get('block_vp9') ? '' : 'vp9 ') + (satus.storage.get('block_av1') ? '' : 'av1'); - var here = this.parentObject ? this.parentObject.rendered : this; if (codecs) { - here.style = ''; - here.textContent = codecs; + this.style = ''; + this.textContent = codecs; } else { - here.style = 'color: red!important; font-weight: bold;'; - here.textContent = 'none'; + this.style = 'color: red!important; font-weight: bold;'; + this.textContent = 'none'; } } } @@ -861,6 +880,7 @@ extension.skeleton.main.layers.section.player.on.click = { let skeleton = this.parentNode.skeleton; // refresh player_codecs/optimize_codec_for_hardware_acceleration elements when we change codecs refresh = function () { + document.getElementById('player_quality').dispatchEvent(new CustomEvent('render')); document.getElementById('player_codecs').dispatchEvent(new CustomEvent('render')); document.getElementById('optimize_codec_for_hardware_acceleration').dispatchEvent(new CustomEvent('render')); } @@ -915,20 +935,19 @@ extension.skeleton.main.layers.section.player.on.click = { render: function () { // put some code here looking up GPU capabilities and comparing to currrent codec selection var codecs = (satus.storage.get('block_h264') ? '' : 'h.264 ') + (satus.storage.get('block_vp9') ? '' : 'vp9 ') + (satus.storage.get('block_av1') ? '' : 'av1'); - var here = this.parentObject ? this.parentObject.rendered : this; if (1) { // todo - here.style = ''; - here.textContent = 'Feature not yet available'; + this.style = ''; + this.textContent = 'Feature not yet available'; } else if (2) { // todo - here.style = ''; - here.textContent = 'GPU not in database'; + this.style = ''; + this.textContent = 'GPU not in database'; } else if (codecs) { - here.style = 'color: green!important; font-weight: bold;'; - here.textContent = 'Optimal'; + this.style = 'color: green!important; font-weight: bold;'; + this.textContent = 'Optimal'; } else { - here.style = 'color: red!important; font-weight: bold;'; - here.textContent = 'Not optimal'; + this.style = 'color: red!important; font-weight: bold;'; + this.textContent = 'Not optimal'; } } } From 222016129c6955cf4ee7616aeb39a3237b3ae125 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Wed, 17 May 2023 04:57:48 +0200 Subject: [PATCH 0988/1224] Update player.js use id to directly switch linked options instead of relying on previousSibling/nextSibling --- menu/skeleton-parts/player.js | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index 89db90c2e..d27fd66ec 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -61,46 +61,37 @@ extension.skeleton.main.layers.section.player.on.click = { component: 'switch', text: 'autopauseWhenSwitchingTabs', storage: 'player_autopause_when_switching_tabs', + id: 'autopause_when_switching_tabs', on: { click: function () { - setTimeout(() => { - if (satus.storage.get('player_autopause_when_switching_tabs')) { - if (satus.storage.get('only_one_player_instance_playing')) { - this.nextSibling.click(); - } - } - }, 250); + if (this.dataset.value === 'true' && satus.storage.get('only_one_player_instance_playing')) { + document.getElementById('only_one_player_instance_playing').flip(false); + } } } }, only_one_player_instance_playing: { component: 'switch', text: 'onlyOnePlayerInstancePlaying', + id: 'only_one_player_instance_playing', on: { click: function () { - setTimeout(() => { - if (satus.storage.get('only_one_player_instance_playing')) { - if (satus.storage.get('player_autopause_when_switching_tabs')) { - this.previousSibling.click(); - } - } - }, 250); + if (this.dataset.value === 'true' && satus.storage.get('player_autopause_when_switching_tabs')) { + document.getElementById('autopause_when_switching_tabs').flip(false); + } } } }, player_autoPip: { component: 'switch', text: 'autoPip', + id: 'player_autoPip', value: false, on: { click: function () { - setTimeout(() => { - if (satus.storage.get('player_autoPip')) { - if (satus.storage.get('player_autopause_when_switching_tabs')) { - this.previousSibling.click(); - } - } - }, 250); + if (this.dataset.value === 'true' && satus.storage.get('player_autopause_when_switching_tabs')) { + document.getElementById('only_one_player_instance_playing').flip(false); + } } } }, From 1a866b11bbb4ec4d9d9ed43fac5d3d4bed163fb4 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Wed, 17 May 2023 06:09:59 +0200 Subject: [PATCH 0989/1224] Update player.js moved repeating code in player_codecs into common function player_quality now clearly shows Video wont work when codecs are disabled. --- menu/skeleton-parts/player.js | 42 ++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index d27fd66ec..aee7181b3 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -728,13 +728,19 @@ extension.skeleton.main.layers.section.player.on.click = { on: { render: function () { if (satus.storage.get('player_h264')) { - if (this.childNodes[2].selectedIndex >6) { + if (this.childNodes[1].textContent === 'Video disabled') { + this.childNodes[1].style = ''; + this.childNodes[1].textContent = this.childNodes[2].options[this.childNodes[2].selectedIndex].text; + } else if (this.childNodes[2].selectedIndex >6) { this.childNodes[1].style = 'color: red!important; font-weight: bold;'; this.childNodes[1].textContent = '1080p'; } for (let index =7; index <= 10; index++) { this.childNodes[2].childNodes[index].style = 'color: red!important; font-weight: bold;'; } + } else if (satus.storage.get('block_vp9') && satus.storage.get('block_av1') && satus.storage.get('block_h264')) { + this.childNodes[1].style = 'color: red!important; font-weight: bold;'; + this.childNodes[1].textContent = 'Video disabled'; } else { this.childNodes[1].style = ''; this.childNodes[1].textContent = this.childNodes[2].options[this.childNodes[2].selectedIndex].text; @@ -761,11 +767,7 @@ extension.skeleton.main.layers.section.player.on.click = { text: 'blockAv1', on: { click: function () { - if (this.dataset.value === 'false' && satus.storage.get('player_h264')) { - satus.storage.set('player_h264', false); - } else if (this.dataset.value === 'true' && !satus.storage.get('player_h264')) { - satus.storage.set('player_h264', true); - } + this.parentElement.skeleton.sanitize(); } } }, @@ -784,21 +786,18 @@ extension.skeleton.main.layers.section.player.on.click = { content: 'You need either VP9 or H.264 enabled for Youtube to work. Disabling both will break Video.', ok: function () { where.flip(true); + where.parentElement.skeleton.sanitize(); }, cancel: function () { } }, extension.skeleton.rendered); } else { this.flip(true); - if (satus.storage.get('block_av1')) { - satus.storage.set('player_h264', true); - } + this.parentElement.skeleton.sanitize(); } } else { this.flip(false); - if (satus.storage.get('player_h264')) { - satus.storage.set('player_h264', false); - } + this.parentElement.skeleton.sanitize(); } } } @@ -818,24 +817,31 @@ extension.skeleton.main.layers.section.player.on.click = { content: 'You need either VP9 or H.264 enabled for Youtube to work. Disabling both will break Video.', ok: function () { where.flip(true); + where.parentElement.skeleton.sanitize(); }, cancel: function () { } }, extension.skeleton.rendered); } else { this.flip(true); - if (satus.storage.get('block_av1')) { - satus.storage.set('player_h264', true); - } + this.parentElement.skeleton.sanitize(); } } else { this.flip(false); - if (!satus.storage.get('player_h264')) { - satus.storage.set('player_h264', true); - } + this.parentElement.skeleton.sanitize(); } } } + }, + sanitize: function () { + if (satus.storage.get('player_h264')) { + if ((!satus.storage.get('block_vp9') || !satus.storage.get('block_av1') && satus.storage.get('block_h264')) || + (satus.storage.get('block_vp9') && satus.storage.get('block_av1') && satus.storage.get('block_h264'))) { + satus.storage.set('player_h264', false); + } + } else if (satus.storage.get('block_vp9') && satus.storage.get('block_av1') && !satus.storage.get('block_h264')) { + satus.storage.set('player_h264', true); + } } } } From 1dab5f38f9d74afab9c3fa63ad5f1f2a4b2f84ee Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Wed, 17 May 2023 20:08:23 +0200 Subject: [PATCH 0990/1224] Update satus.js Better handling for clicking outside modal.confirm, try cancel() first. Explanation comment for reason behind "values as functions isFunction(value)" --- js&css/satus.js | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/js&css/satus.js b/js&css/satus.js index e02eb7173..52c44e09f 100644 --- a/js&css/satus.js +++ b/js&css/satus.js @@ -57,8 +57,10 @@ locale.import = function(code, callback, path) //satus.locale.import(url, onload, onsuccess); text(element, value) - // We always try to run values as functions? - // isFunction(value) appears 6 times in satus.js + +// We always try to run values as functions to allow for dynamic content +// for example menu/skeleton-parts/analyzer.js datasets: is being generated +// from stored staticstics on the spot. ---------------------------------------------------------------- >>> 2. COMPONENTS @@ -1103,16 +1105,9 @@ satus.components.modal = function(component, skeleton) { component.scrim = component.createChildElement('div', 'scrim'); component.surface = component.createChildElement('div', 'surface'); - component.close = function(outside) { + component.close = function() { var component = this; - //try calling cancel when clicked outside of modal dialog - if (outside) { - //not sure if bug free so better trap this for now - try { if (skeleton.actions.cancel.on.click) skeleton.actions.cancel.on.click(); } - catch(err){console.log(err);} - } - this.classList.add('satus-modal--closing'); setTimeout(function() { @@ -1123,8 +1118,11 @@ satus.components.modal = function(component, skeleton) { }; component.scrim.addEventListener('click', function() { - //this is someone clicking outside of modal dialog - this.parentNode.close(true); + // this is someone clicking outside of modal dialog, try cancel() first if default modal.confirm + if (skeleton.cancel && satus.isFunction(skeleton.cancel)) { + skeleton.cancel(); + } + this.parentNode.close(); }); if (satus.isset(skeleton.content)) { From 2faea78aaa4f41e3443abc80ed664cee639e1b9e Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Wed, 17 May 2023 20:40:42 +0200 Subject: [PATCH 0991/1224] Update satus.js https://github.com/code-charity/SATUS/issues/7 passing key instead of object --- js&css/satus.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js&css/satus.js b/js&css/satus.js index 52c44e09f..a41498fc5 100644 --- a/js&css/satus.js +++ b/js&css/satus.js @@ -2332,7 +2332,7 @@ satus.components.shortcut = function(component, skeleton) { component.render(component.valueElement); - satus.storage.remove(component.storage); + satus.storage.remove(component.storage.key); this.parentNode.parentNode.parentNode.close(); @@ -2346,7 +2346,7 @@ satus.components.shortcut = function(component, skeleton) { text: 'cancel', on: { click: function() { - component.data = satus.storage.get(component.storage) || component.skeleton.value || {}; + component.data = satus.storage.get(component.storage.key) || component.skeleton.value || {}; component.render(component.valueElement); From 6788588963d6651488035b47854c7c659d9d4164 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Wed, 17 May 2023 21:06:11 +0200 Subject: [PATCH 0992/1224] Update analyzer.css https://github.com/code-charity/SATUS/issues/8 --- menu/styles/analyzer.css | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/menu/styles/analyzer.css b/menu/styles/analyzer.css index 8d37df7cf..b921e8ca4 100644 --- a/menu/styles/analyzer.css +++ b/menu/styles/analyzer.css @@ -4,13 +4,9 @@ .analyzer-watch-time { font-size: 13px; - display: flex; - margin: 16px 6px 0; - opacity: .72; - justify-content: space-between; } @@ -19,12 +15,9 @@ } .satus-switch--activation { - margin: 12px; padding: 12px; - border-radius: 3px; background: rgba(var(--satus-light), .08); - --satus-switch-track: rgba(var(--satus-light), .1); } @@ -38,4 +31,4 @@ .satus-switch--activation[data-value='true']>.satus-switch__i { opacity: .88; -} \ No newline at end of file +} From c47a095cdffcf629db0116d22586c66be162de8a Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Wed, 17 May 2023 21:48:18 +0200 Subject: [PATCH 0993/1224] Update analyzer.js make analyzer show up in 'My active features' https://github.com/code-charity/SATUS/issues/8 --- menu/skeleton-parts/analyzer.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/menu/skeleton-parts/analyzer.js b/menu/skeleton-parts/analyzer.js index a1a83e20e..5576906ad 100644 --- a/menu/skeleton-parts/analyzer.js +++ b/menu/skeleton-parts/analyzer.js @@ -5,6 +5,7 @@ extension.skeleton.main.layers.section.analyzer = { component: 'button', variant: 'analyzer', + category: true, on: { click: { analyzer_activation: { @@ -216,4 +217,4 @@ extension.skeleton.main.layers.section.analyzer = { component: 'span', text: 'analyzer' } -}; \ No newline at end of file +}; From 25f7d56b0b56d473539e8db0569984f19782dcb1 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Wed, 17 May 2023 22:04:33 +0200 Subject: [PATCH 0994/1224] Update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index b9872c86f..4d7293dce 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -3,7 +3,7 @@ name: Bug report about: Create a report to help us improve title: '' labels: Bug, good first issue, help wanted, up-for-grabs -assignees: ImprovedTube +assignees: '' --- From 8bd2be2550241c1621b1861b324c3dbeefddc9b9 Mon Sep 17 00:00:00 2001 From: ImprovedTube Date: Wed, 17 May 2023 23:50:15 +0200 Subject: [PATCH 0995/1224] returning previous behavior --- manifest.json | 2 +- menu/skeleton-parts/player.js | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 550ca2b04..1dfc07a29 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "short_name" : "ImprovedTube", "name": "'Improve YouTube!' 🎧 (for YouTube & Videos)", "description": "__MSG_description_ext__", - "version": "4.9", + "version": "4.11", "default_locale": "en", "icons": { "16": "stuff/icons/16.png", diff --git a/menu/skeleton-parts/player.js b/menu/skeleton-parts/player.js index aee7181b3..76e5684b0 100644 --- a/menu/skeleton-parts/player.js +++ b/menu/skeleton-parts/player.js @@ -67,6 +67,9 @@ extension.skeleton.main.layers.section.player.on.click = { if (this.dataset.value === 'true' && satus.storage.get('only_one_player_instance_playing')) { document.getElementById('only_one_player_instance_playing').flip(false); } + if (this.dataset.value === 'true' && satus.storage.get('player_autoPip')) { + document.getElementById('player_autoPip').flip(false); + } } } }, @@ -90,7 +93,8 @@ extension.skeleton.main.layers.section.player.on.click = { on: { click: function () { if (this.dataset.value === 'true' && satus.storage.get('player_autopause_when_switching_tabs')) { - document.getElementById('only_one_player_instance_playing').flip(false); + document.getElementById('only_one_player_instance_playing').flip(true); + document.getElementById('autopause_when_switching_tabs').flip(false); } } } From a4e22ab0b09edbb9831ec0927504ada8bda39e05 Mon Sep 17 00:00:00 2001 From: Rasz_pl Date: Thu, 18 May 2023 02:56:48 +0200 Subject: [PATCH 0996/1224] Update satus.css https://github.com/code-charity/SATUS/issues/9 --- js&css/satus.css | 1 + 1 file changed, 1 insertion(+) diff --git a/js&css/satus.css b/js&css/satus.css index e98517f03..9bb9018bf 100644 --- a/js&css/satus.css +++ b/js&css/satus.css @@ -1858,6 +1858,7 @@ As our Syntax markup isnt read for